From xen-devel-bounces@lists.xenproject.org Fri May 01 07:23:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 May 2026 07:23:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1298553.1573750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIiDS-0000x0-4I; Fri, 01 May 2026 07:23:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1298553.1573750; Fri, 01 May 2026 07:23:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIiDS-0000wt-1f; Fri, 01 May 2026 07:23:14 +0000
Received: by outflank-mailman (input) for mailman id 1298553;
 Fri, 01 May 2026 07:23:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wIiDR-0000wm-7I
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 07:23:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wIiDQ-001EoX-4Z
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 09:23:12 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f454da-bab6-0a2a0a5309dd-0a2a450cd658-30
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 09:23:12 +0200
Received: from [209.85.167.42] (helo=mail-lf1-f42.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f454df-62f1-0a2a450c0019-d155a72ae430-3
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 09:23:12 +0200
Received: by mail-lf1-f42.google.com with SMTP id
 2adb3069b0e04-5a40502e63bso1685451e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 00:23:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1777620191; cv=none;
        d=google.com; s=arc-20240605;
        b=JZhdxVuZDXPvN03djPwCx0Kr4LtBR5GNa9YfWsUr1he8JQBHqCI+yZtiiES4BACUpd
         HCPDhhsiZzGfAA0vnMWfgsl9OTl6WctJh8WJR7TY5xaWXWfwDHX+u1nWE9CADxeWtzZy
         rFlZHl6cuJQ8fCUBX2QGtG7SUL8PqQu56OE3NHfhsWdOzTV4rI18RY71qQuQY3JUzf8x
         zLtdxBTHuqncvrzDM9wAdTkbvmdVAmFmbWbTLn7qTBXmd69TSQIthRCe3N9AdKwK8hjG
         +ry4fkIobcrym3HEo3mdGqGNl6M27KOqL2I/x+Z+BL6Q0Bv+emS0tmFcjuYm6cE1sHA+
         eGoA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=Fy55Gi26L4UtTkEp2TW9ApDaRUteQFmsL32LkYDwn7w=;
        fh=zL8KVAj6rSaYbk/102rEWeOa69wm5cw+i9nXMzeM8z8=;
        b=ax5TMk4fazuu2Tdvi1/krAqYqGH3LAwB0VxobH4Q7i1R0vA2Brfo36tjtX3F9fKOJ+
         ZW9Ze7Pa7A8ph4JJfHEzMLujqiTef2c5iPrboBen0W56UEfFM2ijRplg8OGKtEL9wsNc
         fQlj6RywLV9XzEbDS6p/81UZzDjJQNfDyk5z9Y7df4RH0P8XgTYvqeuvWpZEFKO1PalV
         ENX5Ojvrwy2wRkrhsx39ilFnZ+YhxYHpJoOn6ek4MtFvMd7k04wURDagi4SR/7c9BhJ6
         z3+iIh66ue6wg3rILvZ9pOC9/Elwu0X/KtiBalOu07SX0HYiZTK1MfIPzCyHbklWi9qP
         ktjA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777620191; x=1778224991; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Fy55Gi26L4UtTkEp2TW9ApDaRUteQFmsL32LkYDwn7w=;
        b=VLtd5sN1wJyDlfEsAUv4M0fd1vYZRXnPtVpVDyzpD1qrhrvZm3lY8gh/LcmM2OIJoI
         8+e+bjJDfcBpYQWQWpxCC9sSiEzfKNG1eqCuQw//518Uh4qdXUVmg9QJVpjAHDgBxBES
         mGk6UU8YqPA5FatYxDP7/0sI4kJIqtoewE+4p6Iozu1lA1nfApClmHRdHqO68/Wk6V+J
         GtITuLdC6DfZ2k4EnHUZFl2oZv8/SmZpVyizfLz6OsCPEzjVCnxlyw9z5QL7mqsOiYMY
         58Qtw9E7DGrW7Sl5+coE6flzQcnqjT6zN1DtTewlrzTrcf+dppbuAUX1QFVmdI8odoyk
         LXbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777620191; x=1778224991;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Fy55Gi26L4UtTkEp2TW9ApDaRUteQFmsL32LkYDwn7w=;
        b=HfnLWQx6N+2cIrF10iNJPXTz0fOTLNoquzTQ2BGtpiRYmqhsac8nz8xSntHNR5XEwk
         hfGqx26rDes0vSr1FyYUeFj+3jqtubrVdo/mIUwrk5noa4WhRMAZyEwbV4pNztsjqhZE
         rgGauBJRkgViTMcsRy6PqVOdZCvLhjUNGoLHdjBV5mkKzoQm0kTLN8NkbhxHoxTxItnN
         oDSCrWYY0yKLm5pPaYnGZZfkWrmOgTn6MD18NRoFatWPnmOAmSzTP1feaO/6Dsm4Atpj
         pzA/wZuIG1PUJ9hYHGlWUiMb2DKlgWtyj2NjbX7Yklltnef6YB2RR8HtW5X6SMfKfJPV
         87pA==
X-Gm-Message-State: AOJu0YyGMEzws/n1A80++Kl86Ph5dN2KM/8s/2lNqg0eLJAu0fDyyKJl
	Hbmum3sTmcSGfPqDBlNGHoXVRzjA+2GVtFYWSczTcFB7j0s9x6kzMrx4Gnrrn2dNtgsssKPE4PQ
	jJLj5+noT2xySEU429kds0fiaWyBVeZA=
X-Gm-Gg: AeBDies+UqAknvitNNF3+G+48Vb093yOqwR6ey4cqTZz8Lul7Umf9k9+bCCUnFOC6aq
	Rkwhk8jpdgsIV2cx3H+OyzCpc/WczTfFjH8KBxbRCVxe+NNudOP7WBIB4nf8ffHX/ei43ehyJ3D
	tO68Cfl1s8MGVL6r54Onfi6bC53517qnFz51tfzY73218g4e5CoX9jEFpxOQmmV3X8bViKRgKlX
	YRAoJbHuH3urL7ma5/cXoi2BGnKLFpsNcr0QO2gfXHfPH8pllb53OwKiX6KwLoNL1a5QQs8qnJZ
	oa+f2x/R5sCXSbZv
X-Received: by 2002:a05:6512:3e0b:b0:5a7:47d8:337f with SMTP id
 2adb3069b0e04-5a8522b9a14mr2057001e87.9.1777620190959; Fri, 01 May 2026
 00:23:10 -0700 (PDT)
MIME-Version: 1.0
References: <18c5532816d852fca073d0552dcb6d497730a6c2.1777377278.git.mykola_kvach@epam.com>
 <59548223-99d7-4a11-ac81-39eee6474562@amd.com>
In-Reply-To: <59548223-99d7-4a11-ac81-39eee6474562@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 1 May 2026 10:22:59 +0300
X-Gm-Features: AVHnY4Jg7wsotp_WVEbJIS2b0dMXEBHMbNKBBcE6O3vHIq4294XeOfKYTvjEgUQ
Message-ID: <CAGeoDV_mjLPUD2m+hmKm3aEaG=Vc8hjW=YqbRmzBXPMB+OXdLA@mail.gmail.com>
Subject: Re: [PATCH v2] xen/arm: gic-v2: disable interrupt bypass on CPU shutdown
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d25034/1777620192-F5403CF5-77CD04DB/0/0
X-purgate-type: clean
X-purgate-size: 7812

Hi Michal,

On Wed, Apr 29, 2026 at 11:20=E2=80=AFAM Orzel, Michal <michal.orzel@amd.co=
m> wrote:
>
>
>
> On 28-Apr-26 13:57, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > The GICv2 CPU shutdown path currently writes 0 to GICC_CTLR.
> >
> > Per IHI0048B.b section 2.3.1, clearing the architected bypass-disable
> > bits 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, then setting the bypass-disable bits and
> > clearing the group-enable bits that are architecturally defined for the
> > current GICC_CTLR view before writing the value back. When Security
> > Extensions are implemented Xen accesses the Non-secure copy of
> > GICC_CTLR, where IRQBypDisGrp1 and FIQBypDisGrp1 are at bits [6:5] and
> > bits [8:7] are reserved.
> >
> > Without Security Extensions there is no separate Secure/Non-secure CPU
> > interface view, so disabling both group-enable bits affects the shared
> > interface state. This is still appropriate for the CPU shutdown path,
> > which is expected to stop normal interrupt delivery through the interfa=
ce
> > and rely only on the architecturally separate wakeup event signaling.
> >
> > 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@epam.com>
> >
> > ---
> > Changes in v2:
> > - derive the shutdown masks from the active GICC_CTLR layout
> > - use the Non-secure GICC_CTLR layout when GICD_TYPER.SecurityExtn is s=
et
> > - stop writing reserved bits [8:7] on Security Extensions systems
> > ---
> >  xen/arch/arm/gic-v2.c          | 16 +++++++++++++++-
> >  xen/arch/arm/include/asm/gic.h | 25 +++++++++++++++++++++++--
> >  2 files changed, 38 insertions(+), 3 deletions(-)
> >
> > diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
> > index 014f955967..241c1ff5c5 100644
> > --- a/xen/arch/arm/gic-v2.c
> > +++ b/xen/arch/arm/gic-v2.c
> > @@ -408,7 +408,21 @@ static void gicv2_cpu_init(void)
> >
> >  static void gicv2_cpu_disable(void)
> >  {
> > -    writel_gicc(0x0, GICC_CTLR);
> > +    uint32_t ctlr =3D readl_gicc(GICC_CTLR);
> > +
> > +    if ( readl_gicd(GICD_TYPER) & GICD_TYPE_SEC )
> > +    {
> > +        ctlr |=3D GICC_NS_CTLR_BYPASS_DISABLE_GRP1_MASK;
> > +        ctlr &=3D ~GICC_CTL_ENABLE;
> > +    }
> > +    else
> > +    {
> > +        ctlr |=3D GICC_CTLR_BYPASS_DISABLE_GRP0_MASK |
> > +                GICC_CTLR_BYPASS_DISABLE_GRP1_MASK;
> > +        ctlr &=3D ~(GICC_CTL_ENABLE | GICC_CTL_ENABLE_GRP1);
> > +    }
> I don't understand why you want to set both G0 and G1,
> Bits 5-6 in the NS view control Group 1, while the same bits in the
> Secure/single-security-state view control Group 0. So in the latter case =
you
> don't need to set G1. Without security extensions all interrupts are G0 a=
nd with
> security extensions (NS access) all interrupts are G1. The spec guarantee=
s the
> functional mapping.

I agree that this is not about Xen using both interrupt groups during
normal operation.

There are two separate points here.

For the group-enable bits, Xen currently only enables bit 0 in
gicv2_cpu_init(). So, in today's code, EnableGrp1 is expected to be clear
already. However, the old shutdown path wrote 0 to GICC_CTLR, which also
cleared every group-enable bit visible in the current view. Since this
patch changes the shutdown path from a plain zero write to a
read/modify/write, I wanted to preserve that part of the old shutdown
semantics and avoid leaving any normal interrupt delivery enabled in the
common GICC_CTLR view.

For the bypass-disable bits, the reason for setting both groups in the
single-security-state/common view is the GICv2 bypass logic, not normal
interrupt delivery. Once the group-enable bits are clear, the CPU
interface is no longer driving the physical IRQ/FIQ outputs through
normal GIC delivery. At that point, the bypass-disable bits decide
whether those outputs are deasserted or driven by the legacy inputs.

For example, with EnableGrp1 =3D=3D 0, EnableGrp0 =3D=3D 0 and FIQEn =3D=3D=
 0,
Table 2-2 requires IRQBypDisGrp1 to be set for the IRQ output to be
deasserted. Similarly, Table 2-3 requires both FIQBypDisGrp0 and
FIQBypDisGrp1 to be set for the FIQ output to be deasserted. This is why
the common-view case disables the bypass paths for both groups.

This is also not meant to make FIQ a supported delivery mode for Xen. It
is the opposite: when the CPU interface is disabled, the final state
should not allow the physical FIQ output to be driven by the legacy
bypass input. Arm32 has some fallback plumbing for FIQ exceptions, but Xen
does not configure FIQ as its normal GICv2 interrupt delivery mode.

So the intent is:

* with Security Extensions, touch only the Non-secure view bits visible
  to Xen;
* without Security Extensions, preserve the old "no normal delivery"
  shutdown behaviour, while changing the bypass-disable bits so that
  the physical outputs are deasserted rather than falling back to
  legacy bypass.

If you prefer, I can also make v3 more conservative and only clear the
group-enable bit that Xen currently sets in gicv2_cpu_init(), i.e.
EnableGrp0 in the common view / EnableGrp1 in the Non-secure view. The
bypass-disable bits would still be set for all bypass paths visible in
the current GICC_CTLR view, because that part is about the physical
IRQ/FIQ outputs after normal delivery has been disabled, not about which
interrupt group Xen normally uses.

Thanks,
Mykola

>
> ~Michal
>
>
> > +
> > +    writel_gicc(ctlr, GICC_CTLR);
> >  }
> >
> >  static void gicv2_hyp_init(void)
> > diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/=
gic.h
> > index 8e713aa477..ff22dea40d 100644
> > --- a/xen/arch/arm/include/asm/gic.h
> > +++ b/xen/arch/arm/include/asm/gic.h
> > @@ -102,8 +102,29 @@
> >  #define GICD_TYPE_SEC   0x400
> >  #define GICD_TYPER_DVIS (1U << 18)
> >
> > -#define GICC_CTL_ENABLE 0x1
> > -#define GICC_CTL_EOI    (0x1 << 9)
> > +/*
> > + * Xen runs in the Non-secure world. When Security Extensions are pres=
ent,
> > + * Xen accesses the Non-secure GICC_CTLR view, where bit[0] is EnableG=
rp1
> > + * and bits[6:5] are the Group 1 bypass-disable bits. Otherwise Xen se=
es the
> > + * common GICC_CTLR layout, where bit[0] is EnableGrp0, bit[1] is Enab=
leGrp1,
> > + * bits[6:5] are the Group 0 bypass-disable bits, and bits[8:7] are th=
e
> > + * Group 1 bypass-disable bits.
> > + */
> > +#define GICC_CTL_ENABLE        (0x1 << 0)
> > +#define GICC_CTL_ENABLE_GRP1   (0x1 << 1)
> > +#define GICC_CTL_FIQBypDisGrp0 (0x1 << 5)
> > +#define GICC_CTL_IRQBypDisGrp0 (0x1 << 6)
> > +#define GICC_CTL_FIQBypDisGrp1 (0x1 << 7)
> > +#define GICC_CTL_IRQBypDisGrp1 (0x1 << 8)
> > +
> > +#define GICC_CTLR_BYPASS_DISABLE_GRP0_MASK              \
> > +    (GICC_CTL_FIQBypDisGrp0 | GICC_CTL_IRQBypDisGrp0)
> > +#define GICC_CTLR_BYPASS_DISABLE_GRP1_MASK              \
> > +    (GICC_CTL_FIQBypDisGrp1 | GICC_CTL_IRQBypDisGrp1)
> > +#define GICC_NS_CTLR_BYPASS_DISABLE_GRP1_MASK           \
> > +    GICC_CTLR_BYPASS_DISABLE_GRP0_MASK
> > +
> > +#define GICC_CTL_EOI           (0x1 << 9)
> >
> >  #define GICC_IA_IRQ       0x03ff
> >  #define GICC_IA_CPU_MASK  0x1c00
>


From xen-devel-bounces@lists.xenproject.org Fri May 01 08:40:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 May 2026 08:40:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1298579.1573759 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIjQC-0004pS-Q8; Fri, 01 May 2026 08:40:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1298579.1573759; Fri, 01 May 2026 08:40:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIjQC-0004pL-Mw; Fri, 01 May 2026 08:40:28 +0000
Received: by outflank-mailman (input) for mailman id 1298579;
 Fri, 01 May 2026 08:40:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1wIjQB-0004pD-6a
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 08:40:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wIjQA-00BT7p-Hd
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 10:40:26 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69f466f2-2eae-0a2a0a5409dd-0a2a4501e39c-6
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 10:40:26 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69f466fa-c1f2-0a2a45010019-d155dd2bd4ee-3
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 10:40:26 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-44985f4ab0fso687483f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 01:40:26 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-44a8ea7cf6asm3622211f8f.8.2026.05.01.01.40.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 May 2026 01:40:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1777624826; x=1778229626; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=qHyImPMpP5f7T3SzA9ViYvBqtERzuKjGfwrkNJWUECc=;
        b=jF3/tg1BY5Ai/bPz47PvUBKFQ11qJOjB1LxOAR8BcDf7yzYNKnmS1NzXSBAwr0sND+
         E5uPJ3gCuQvLoOxzb9sKyArZqP0EEqfUbcwEZWpiJG0SmMAbnZNg0xo3zcQMbNCaAYk9
         jcJKbIcJXxahHSYaY7YOsmdQFlthUgC0281vg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777624826; x=1778229626;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qHyImPMpP5f7T3SzA9ViYvBqtERzuKjGfwrkNJWUECc=;
        b=ZKk3CzXbIIbQ2Y9rN2LlRBBd40w1+29sqhhdtn+Br/FATU7mNWl4QaqlBLFy088b8a
         QXXUkbWp/p90TEXtqxxfTf88KnbC5m70ShoXWVHtkctHgLMqaDBglyR27+G11rPwqK6X
         kxZc3IhEzxS3ejsZZJH9jsDw2ZP4HMcnN1OG7MH8RvrE7vrj6q2uZQU3XNZ0VgsILl5M
         Sa+cA8153uv/fWOz6G5rHDJexueuOV5m/PeX1IxWmiX9YSc9SfkrwH2j6LifuFX6agm4
         A0fWA/sK1ceHt5KaSB/KfXtpFg90b/nnukkrN/d836I5ZXYCne8+oYeGxfoSLoq7vW34
         6iug==
X-Gm-Message-State: AOJu0YyJEdIvMoBc16KaIQlBarcdV8NB3MIiW7dDOyuGYhX7rIQE6O9K
	5xI4yp3HaHiXIgO+RDyttByg89RU//w4pTDs/iZ0mdyo/BkiHqaCE+56Se2Rc5tdCXsMB5AVXWe
	j7EdCsi0=
X-Gm-Gg: AeBDievkhXI+yc91jBVbzYQ4tw7n4eGWQwOsKb2kzWnt/z5UVV2xNSH1LcERulkObAP
	Hzyl8eYIZdPvz8xQB4dkf6vgUTn2mUezW1pQ+SUoVdmma2GcMuhpeOuaxgcroilde9BXTSusMd9
	1ZxKnTdLZKICA0Oy+PT0uCRfdv1stv60i3pIiCdSrYgJkVBEZrTlTFGyrzh8mxJpKtUxoAnpWmY
	R+Ep+d7r9/3OBJy14/uN6mmOJbWaCc/mT7B/s8sf1QfI/b61a/ftddr0lHiNlCJnX5fN251pIDk
	IoHQYYZRAqiR6QM94Ih3rkYfBFV0rDxjiWHjwJvQfjKAaiRd0zLpcfe9jLLhIrR4UBxOPeNwYBr
	nG0nBWhF7msv2UxkViP/5uPpt7fs/2g+kxrokPH8CRnn2B6B8ojcEB+Xmz7ZjpqN71tDt3pqTUD
	1LYkfHjeFk9HBwwXs7E2QJ0zw1tlP4fhZ22r3aRXCMLL0/rveAaqLBGkQ2G7UUETt6TxYp6Ib+f
	X3S+/NRsAq24UhZsuPn13+XMw==
X-Received: by 2002:a05:6000:2f8a:b0:441:1cf9:4f06 with SMTP id ffacd0b85a97d-4493fed64c0mr10420396f8f.31.1777624825478;
        Fri, 01 May 2026 01:40:25 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH] x86/pdx: Undef the correct macro
Date: Fri,  1 May 2026 09:40:23 +0100
Message-Id: <20260501084023.1195353-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1777624826-B6265FF4-2329BAE9/0/0
X-purgate-type: clean
X-purgate-size: 936

This was caused by a renamne during review.

No functional change.

Reported-by: Luca Fancellu <luca.fancellu@arm.com>
Fixes: bd0b3a876d80 ("pdx: allow per-arch optimization of PDX conversion helpers")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <jbeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Teddy Astie <teddy.astie@vates.tech>
CC: Luca Fancellu <luca.fancellu@arm.com>
---
 xen/arch/x86/include/asm/pdx.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/pdx.h b/xen/arch/x86/include/asm/pdx.h
index 6be7e1185eb1..6c10234ecfa9 100644
--- a/xen/arch/x86/include/asm/pdx.h
+++ b/xen/arch/x86/include/asm/pdx.h
@@ -57,7 +57,7 @@ static inline paddr_t directmapoff_to_maddr(unsigned long offset)
     return offset;
 }
 
-#undef PDX_ASM_GOTO_SKIP
+#undef PDX_ASM_GOTO
 
 #endif /* X86_PDX_H */
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 01 08:44:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 May 2026 08:44:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1298588.1573768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIjTb-0005Mu-AD; Fri, 01 May 2026 08:43:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1298588.1573768; Fri, 01 May 2026 08:43:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIjTb-0005Mn-6K; Fri, 01 May 2026 08:43:59 +0000
Received: by outflank-mailman (input) for mailman id 1298588;
 Fri, 01 May 2026 08:43:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wIjTZ-0005Mh-Rw
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 08:43:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wIjTX-008xx3-IV
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 10:43:57 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69f467bd-e002-0a2a0a5209dd-0a2a4508d79a-10
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 10:43:56 +0200
Received: from [40.107.159.61]
 (helo=OSPPR02CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69f467cb-63b5-0a2a45080019-286b9f3d2fe3-3
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 10:43:55 +0200
Received: from DU2PR04CA0273.eurprd04.prod.outlook.com (2603:10a6:10:28c::8)
 by AM9PR08MB5953.eurprd08.prod.outlook.com (2603:10a6:20b:2d8::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.22; Fri, 1 May
 2026 08:43:50 +0000
Received: from DU2PEPF0001E9BF.eurprd03.prod.outlook.com
 (2603:10a6:10:28c:cafe::3f) by DU2PR04CA0273.outlook.office365.com
 (2603:10a6:10:28c::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.22 via Frontend Transport; Fri,
 1 May 2026 08:43:50 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU2PEPF0001E9BF.mail.protection.outlook.com (10.167.8.68) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.22 via
 Frontend Transport; Fri, 1 May 2026 08:43:50 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AMDPR08MB11308.eurprd08.prod.outlook.com (2603:10a6:20b:71f::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.20; Fri, 1 May
 2026 08:42:47 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9870.016; Fri, 1 May 2026
 08:42:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=HLbphWxRyBDSdDmrhd0VIcZHcPT7+O3r36+wW2B2dulJh+tlGCORdY+E+rhU/Oxpj7Wk6jsGcXeySSnt217sJHoEh2d1yQDh0YLy7YWb5FHZAvdlMhOBENQzZ6OrDuIOHlTyK7ZRUSiWQ8dVPxn61Q2FOPgmPpxLGu3lwxVJlAYl2CiMSucIkpkg8b8NEcRTGAFTbZ2JKNUpamC2l8U7p0j8ipzCx+9bmrEZbXA32LDK5NNc/a9/gKKMfQRsNA729UP851lXA/SkRRd6ky6JG//v2hAnnjQbFvK+XCkNr4Qvku2wcKhfFC4WvVzUOxlySBI18y6CedlEhj2MIA8irA==
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=z+eL7sx16NpzAMervcue5ZnImAY2o0Ceg+QcxkJy/Lo=;
 b=dRmDDJ46aAoChwlyg2W39X6Al668h3AS78UXja6RFYBGHin2SczsSc9j84FF5/6qJxd9Cs8iv3cHNCmi9XAyz0zubU5zj+7a/ug+6ZPQ5FPBJhPA56vX/AumIOjC6LPtsDX4hXpyj12DQsF0Kcl/voRkAaahiEPNMXsJ/+wprp0S2WqgE62G+r6HWdgF85WUqNVhTFDTjWJVKtzJhn6NQX/mg6gzkocXPLue6bkbNXYh7i6J8dpVOfAiWaZIskwV7+Yt98EsYo0laTyzMl1hrCAGRieWcBYoyt4xgazEXAn7q3uiCHccKByW9/bKnJMshVsFd4cPkdv3bOE6+ku+rw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=z+eL7sx16NpzAMervcue5ZnImAY2o0Ceg+QcxkJy/Lo=;
 b=kONzDHzx3JXnPb+UMSHpBU2lRtruHPU695/CpWFPaAGGLa6ZV4Wrvrw5WBTfAgVR+YvfZWDrenAAHBdgSKocEmzVmPd/g0gNDNlXDT9wZOjTxd+TjqRpMcGU9O4CtWClxYtu/+V1t+kxB1dA0WpetYldpRN/6k+RoeqBKlVVf8M=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GbArLqmy6ON+skh/ugL2rc8Yd5Z+Oa8R8GQT55A4NqXc2Ow/5a7gKP24gbZ6UIZ8UbtewVRpV4k1Yv4L1TZePkeQozRpjxY57mAgrzF62MWN/XNjIx0vPEEmoTikv4pkWyVF7j9O6V0i/tQq5iletf+cnqbDOUANVQ31CJPZAP7TE50m3GxKFfA0yxKfIDUSGACGL9H4+cOfdYqZl5+T9cf5vRtMphXwFkV5U0bR/2QWkQrNq5ARTMs9uP0hYbYGIs66PBxhbkf0KblS2K/iUtEiCg5tqfLfGr7TPv31pq1Cdvqmm9zmnDwU6wHY/W1CYEBaPCAbMCSoeop6R1M4tg==
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=z+eL7sx16NpzAMervcue5ZnImAY2o0Ceg+QcxkJy/Lo=;
 b=gUj5G6JKT6RvPa8DjK7WbBuu9N9k+6i29iUxyuF+hVjrl5ihVeGcb5b0yqw4Ukcpw4EjeQXTRDewsG7r6JJ2Twt7NJYXE2G18boB+/P0x4AKuoKToeZtKzy1Tk7DIohhiffT+PSpW1dLtZlJqNg5uiad4/Gw2g1fHlhuKafaXYB7r7FmVKieBrBxzh7pFe3zV6MUeyLqe/db1s9v8l/voSloFboZEOVhIBIVfNrd5POVb6sx1HSFGo0Y/0bzji/qyTj3vGWXvCf6061essROJzpynT/0w07McFMzbkILl/ocZRwlD/YqSFc7Li1r3FwPLXZHZibZKvuMuokmdf2eNg==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=z+eL7sx16NpzAMervcue5ZnImAY2o0Ceg+QcxkJy/Lo=;
 b=kONzDHzx3JXnPb+UMSHpBU2lRtruHPU695/CpWFPaAGGLa6ZV4Wrvrw5WBTfAgVR+YvfZWDrenAAHBdgSKocEmzVmPd/g0gNDNlXDT9wZOjTxd+TjqRpMcGU9O4CtWClxYtu/+V1t+kxB1dA0WpetYldpRN/6k+RoeqBKlVVf8M=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
	<jbeulich@suse.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86/pdx: Undef the correct macro
Thread-Topic: [PATCH] x86/pdx: Undef the correct macro
Thread-Index: AQHc2UYqbfaUw2RH2EuVGUbnBMCcnLX42kcA
Date: Fri, 1 May 2026 08:42:46 +0000
Message-ID: <CCE39E98-189C-412E-AC50-C510429C6457@arm.com>
References: <20260501084023.1195353-1-andrew.cooper3@citrix.com>
In-Reply-To: <20260501084023.1195353-1-andrew.cooper3@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AMDPR08MB11308:EE_|DU2PEPF0001E9BF:EE_|AM9PR08MB5953:EE_
X-MS-Office365-Filtering-Correlation-Id: 125393c4-2f12-4e56-2c0c-08dea75dc47d
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|366016|376014|56012099003|22082099003|18002099003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 gZau6ns4rXmWn/A+3uWklUuOvTT0gKkfvueILNbNhsay0m0ZYS4OZvjl2eo2sOIa65W9rZ5NcVgPCMpsAQnqWCXcR7dgTVI1i4ADaCrtZmIlEfK00C2bQlAX2slGgVQOj/cOLdYInfZzY3bjiJw4aaAfdH+w1yCmovRsvsbqMMmMRusnZdWKGOaYRRCHD3NYYuz3YLVhdt57ohOV5r3FjwuI34FhyaDr+3CSCzgbOoIv9YQuOT5XYnFrABkHLQyJ3Qt+yu5uzSP7NPlzuEtV46H0F+1LpfaWBTmHCHrAwJnoFAdWxp86vi36xq+2nU0tMdWB1EkBLbrrjzSpg2OZTqPujfuRIBm11vQtbqPWEzhHpGYIpfB692efu1/m4ZHHSAAym5MOTkHXv2H8yiTA/HXKTCm2SX1Y7UzK468mvvFPKAvDf2GSuAtpcvfLtl7PTuH7qfmtZgimrDUahY0kK6+r2uvJifSDtL4Lb/2TNV/OrYVr9LCkns82huuPKjflyJHunpZGwd6LTWTD/+Iu/RhzWXDB9CTNkzKu0ath18XJLRwxbV5T2ZsWMBHBQd+QQ8dSqmL/d7mGs1J/CW6+aXI3lNNcB/+fO4IfAWxelQSV1WW1FAgnX2HrMfFB9116fr+93XHlCf/9gOOdVeLKJrofi84TipDCXi8zgt5GKD/u2YN2xRijGYlrfEA4dqC7HXA8WF6wDXksG5TYRgKHAXVgUceAEMmXjTs27HZV34ESIaReJk+K621MkAEX/aPs
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <303FDE715184BD4B9EF3176C0CA53703@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 ITd8Dj7PE8BiMzgX8jn8Gzwp3p6XbE5232hVjFUSa+Dg+ROFG8sVaxreOZPFpKrfNeXMnHTpctS9jA9jti3Pkxn71kF5Y4AVMRbyXsrmiogdpIlRN1XTC/9b8TR/UPwM0TTOSbQCp5ce4+2vYRZ8x5nx19zCzGU067UrtUTOl2G0NWjMdP/clr/easnhbbMnMu2bY40zCxYCS+ettwI0t5V0AadEFVjKpB7NebCUEQ9TuQQwFYmvwdCRs+Y/OnqwREAQbtsaxiPSg3W1lg8Uu0GFqbQih6ItDrw5C3KIjEpt869PlAAI7vvReIWj28nBBDARNobVGxyltIuru2/TMQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMDPR08MB11308
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF0001E9BF.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	10c60836-0350-4659-f808-08dea75d9e9e
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|14060799003|35042699022|376014|36860700016|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	csnRpfqZTuMqpwTfimxq6G/M1+EB0gazLebOyuLzZgaPgBsAHPVrC+hDCEJM4VNeiML4Ie6BR997n1FdxT9OyQZT2hast3m57gROMhpBOuHhJH6QMFtFaw4alSj5uvExOzG6zOgcuBH1625UoDYsIpWZ57IUrSbkOIN1IydEiRkjeNa5KAcm9yiSDrZCbwAcTEtooJeFelHteP12c3p9rx4fXx5jG+ObbM8sh1qqHIBowk/tFo3BfEdWj7YvKV6cVJ+ACqRnNZCowHC3TwyP6L5F2AMI7K7oRr57w2tkC95fiKo1d+Iw54XDBxSnOQdtEqZSfuOr1+iVnoDXD0wiwPTfb+WMcqjgbQqu0d7c/COI2yQG0tX5DdO8A+VoeIq0h6Xa2F3IRkbmbY9HIsvSlX+z8W4SeGKF46PIHsl65abu6PLfkiEsmH/oR0fBqZOrJx7H+qqRdLLP74kEo0eI2z8vbE49d+pOW09wLm9mk1AbyBMdfykKsonniRpClPWn0Q1NHKHd244nTVwh4VMc9iIWrUvf4XcSfO4jI/5bhY+pwS2M9s8bXCFIWUl5oIW0YEMckVM3CV//cWB8UmkyE/8SfcOtnmUWHRi1h0nb0PpEwvEn6+irENIoynhVQr5L0Aqi1d5mBThx7uWLG25mLPKFWqxEWkQRgoVKmUGn9bZQ32lkM6KqzdlVHXbnzbr1iRD5PDOTLCz1iIz9wpwbBzOVtpFB3PmEMV/BHYSc6MY=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(14060799003)(35042699022)(376014)(36860700016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	T+p4bN54255CN+V68RpdaYSI/Tcf8IxEvqmbXCW5lodDOijvGVSmVtjEByVZV9KyBnFpUSs1Eq2sAV6MjjnZsi/NNYpET1eRzZ23W7yNlaHlVNeWIyVlHUVdABHYihk0zdCiTei7iuwr7D4SE5DHDLVm97xtdw1b+8Y7ERqaSZkU9wioOQveD+HvL7/U0l521IwyiTwGYil+K32lcFakSpu+7Jp7XoMySlgvucKktSLXb3mjLPLjyUoMblhXUiYppSGHpr9XEck+YYitKQZGPDH7ll/R7VjqvBMSJISLBJCZiQVpGWwEa0OHKAUM1qHg4pBfa8zHx9nqsh6P723sDo43smSmjznSsKctFN6VhIJ30HufF8fjuzrj/cKAJ+m3fqnm5KbQVUjXnEr0Wpv/HdPO5AnsQcKT7C1LIWRWbpcLlgwzS5f56xzA2TUktjdB
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 May 2026 08:43:50.2543
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 125393c4-2f12-4e56-2c0c-08dea75dc47d
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU2PEPF0001E9BF.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB5953
X-purgate-ID: tlsNG-c1860d/1777625036-3AB74DB1-EE3E89D2/0/0
X-purgate-type: clean
X-purgate-size: 1634

SGkgQW5kcmV3LA0KDQo+IE9uIDEgTWF5IDIwMjYsIGF0IDA5OjQwLCBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IFRoaXMgd2FzIGNhdXNlZCBi
eSBhIHJlbmFtbmUgZHVyaW5nIHJldmlldy4NCg0KTklUOiBUeXBvIHMvcmVuYW1uZS9yZW5hbWUv
DQoNCj4gDQo+IE5vIGZ1bmN0aW9uYWwgY2hhbmdlLg0KPiANCj4gUmVwb3J0ZWQtYnk6IEx1Y2Eg
RmFuY2VsbHUgPGx1Y2EuZmFuY2VsbHVAYXJtLmNvbT4NCj4gRml4ZXM6IGJkMGIzYTg3NmQ4MCAo
InBkeDogYWxsb3cgcGVyLWFyY2ggb3B0aW1pemF0aW9uIG9mIFBEWCBjb252ZXJzaW9uIGhlbHBl
cnMiKQ0KPiBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy
aXguY29tPg0KPiAtLS0NCj4gQ0M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4g
Q0M6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPg0KPiBDQzogVGVkZHkg
QXN0aWUgPHRlZGR5LmFzdGllQHZhdGVzLnRlY2g+DQo+IENDOiBMdWNhIEZhbmNlbGx1IDxsdWNh
LmZhbmNlbGx1QGFybS5jb20+DQo+IC0tLQ0KPiB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGR4
LmggfCAyICstDQo+IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigt
KQ0KPiANCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZHguaCBiL3hl
bi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZHguaA0KPiBpbmRleCA2YmU3ZTExODVlYjEuLjZjMTAy
MzRlY2ZhOSAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BkeC5oDQo+
ICsrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZHguaA0KPiBAQCAtNTcsNyArNTcsNyBA
QCBzdGF0aWMgaW5saW5lIHBhZGRyX3QgZGlyZWN0bWFwb2ZmX3RvX21hZGRyKHVuc2lnbmVkIGxv
bmcgb2Zmc2V0KQ0KPiAgICAgcmV0dXJuIG9mZnNldDsNCj4gfQ0KPiANCj4gLSN1bmRlZiBQRFhf
QVNNX0dPVE9fU0tJUA0KPiArI3VuZGVmIFBEWF9BU01fR09UTw0KPiANCj4gI2VuZGlmIC8qIFg4
Nl9QRFhfSCAqLw0KPiANCj4gLS0gDQo+IDIuMzkuNQ0KPiANCg0KUmV2aWV3ZWQtYnk6IEx1Y2Eg
RmFuY2VsbHUgPGx1Y2EuZmFuY2VsbHVAYXJtLmNvbT4NCg0KQ2hlZXJzLA0KTHVjYQ0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri May 01 08:44:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 May 2026 08:44:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1298599.1573777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIjUQ-0005tM-MQ; Fri, 01 May 2026 08:44:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1298599.1573777; Fri, 01 May 2026 08:44:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIjUQ-0005tD-Ij; Fri, 01 May 2026 08:44:50 +0000
Received: by outflank-mailman (input) for mailman id 1298599;
 Fri, 01 May 2026 08:44:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wIjUP-0005sv-LX
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 08:44:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wIjUN-008y3a-Fp
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 10:44:49 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69f467e4-e002-0a2a0a5209dd-0a2a450cdf98-24
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 10:44:48 +0200
Received: from [52.101.201.45]
 (helo=PH7PR06CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69f467fe-62f1-0a2a450c0019-3465c92da071-4
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 10:44:48 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN9PR03MB6059.namprd03.prod.outlook.com (2603:10b6:408:118::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.26; Fri, 1 May
 2026 08:44:43 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9870.022; Fri, 1 May 2026
 08:44:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hxm710yWG4zHVDH6z8bcu6jkwdsHqgLI+h8dMl1Mwrs5WukhKK3TiajDLHweZoSUijTqPabFZ2UyorDmJ/LCaioX7+2u4KxlXGUexC/8VkTwfbbtxCWLG0xFqM0nxioDOqbC2dgXv+eknUYABZ1IMWfkYHIqOMkfW51p3c+nzTsJBUJo3ffeYNVdjgZ9wLWFatxe2O2USaD37UfgHYp3zfFSmKeSy5Dfvy4EMqEtheGU6I/TNDx9ALiFpMBj5FF/M20McexfNNTicbi+WjulXDil2Ro0BlLuz8qG4AnrFHzd9cwYfZKs68lBcMdDY9r3IU2nGYuMlMKIr5iWTjI/Zw==
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=Z3nB5mVYtDLaX9x9FgEfrEvaM1Hav8GpdYyoRO8GmJE=;
 b=FcKFPKIlGXqzZu4oPWR/qFPlD6Vre5Z0dglZRvt3IXblSCbeNBD9ujZ2FeHIS2vNNJ7Lvk09QMjesohsq/vHHNhFeA0Uo630hMIr/z8jeJQmSaZ3YWXaNEU0q5viWilNM8hMlNXEEX7d/bmMn4SmFsR+L3E4HFzaS9KbGjCtD/8E8V1CDzhoii+8GfA/Nm6A7P/rMDcrNRyf3Ek36foZjX8b/wF6D050QWtixWNLgVbmLLbVpnNGNuGR10WtG3O/JrSyRY/5A0/bccHKmM4ILYFstfdvTFjPIdgz42jR+l3LtB6wKODc6UuzUpohLv1barLgz6N1f/jjFX/8+xCFoQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Z3nB5mVYtDLaX9x9FgEfrEvaM1Hav8GpdYyoRO8GmJE=;
 b=pX7CUxKqCU2n579I7HjEfzAj0DT043gQMwQn6BCLd5XAU8cEGHNYScPtoP97bASQQmNmKmI63nak6veUsKbZdkVfpYWgukgTs45Fg6/MQXdfXCH1N7fIPk8+6LXmoxMrt1zr4viAz1hv13xAtpS7B21cL1DLd6dEkVodtTyyNxU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a1ee1a97-d589-4658-b40f-650a8afa8846@citrix.com>
Date: Fri, 1 May 2026 09:44:39 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86/pdx: Undef the correct macro
To: Luca Fancellu <Luca.Fancellu@arm.com>
References: <20260501084023.1195353-1-andrew.cooper3@citrix.com>
 <CCE39E98-189C-412E-AC50-C510429C6457@arm.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <CCE39E98-189C-412E-AC50-C510429C6457@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0325.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18c::6) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BN9PR03MB6059:EE_
X-MS-Office365-Filtering-Correlation-Id: 288ee640-4058-4031-086c-08dea75de42d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	qiY8gOlSRBnCk+UTKoS0yfCNKGLxZh57qUlZMQrPwUUpx4MDz4U1wyH5eRdJRpzxYDWs3d2lm+A6ZWzHoZr5HdOGC/eb+4NXRko7BiEPE2bfSi/BW07CcjO0AQnS2lEpCNS9P/hQQbNE5Y0r5e4l5fyngpWJiMC77Zql6smOs+JtYmpciXmNQdLgFrHcfd2kPkgzrTZMebbDv57fG3CjKm0Y5tz8AVrBs0mK3SpVqvkHdI0/vw/ipgbMYnPJpp133Yf94rX6635bJyPVbzhANeMyxtC+xcN7li1PH95+iNB+mk/9kXDuB2pWzkMzy+xfVvVUVaHzVQNasbo6hUH8QVQo9PmkA033feypdueHSeTx5DO43txUDJnlx9GfisOL9gHdyUf5kGlS8F11yMXDT8UbiaiQSK6RiXyULQwqVskrYMd/SMa9P9kCOcMuEvX9ejLRkJuosLZ7nAMZbocU/wsyQ/+YoqInm+8KYPt6NhXskGpnsBFqObcOC4WQVvu/023Mcr3eTDY3dzh06ng1GUNcuXh+jXMScCIPp7OYYcf4k2S+BvDtgQ0QBXDmLdzMzwoAYDz3TWuup8XUS61JHVhZ2Ye1raj8hrMFgl8MZLmI6KuYDluW54icAUT24KSdjonXEw3qhDNdBuO9wWzw7/TLz9G+Hmx0JAwgKhrZ5EumKO566TMTBbDsKd2vucrh
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SjNic2ZVcnVSUEVXTTlSbjgzcDlyZlJNKytxQjhKdVJjMWNaQzErdGlKQzFx?=
 =?utf-8?B?WmRSMkJ6Y1VKaGVna1pIM2FyVEc0eUhYMGpyQ1RCTWErSmJQUGNieTJXRk0r?=
 =?utf-8?B?K3RiS0NlSGx5Q3NveURYZVNJTy92YVVJM1BnTWU5SlFpWHkvb3k0WVlRemdX?=
 =?utf-8?B?MkhGd0F4VzE5OWJpYWlmT2ZsUENyTjZUT0dVYWwzZ3pqMlgzUlBtZlBWOFNE?=
 =?utf-8?B?U0g0Nnk3TDRCN0M5STVPWWwzQzI1R0VLYWNSMFB3MmhFc3NkUFpRL1QvT04r?=
 =?utf-8?B?KytyRlVJbFR4alVkNFZUakVDNDZrTHEyUytHQks3TkIyQVJWMDd4NTJ3WnJr?=
 =?utf-8?B?Tk8vZFFjTXRUczhpZmJ3WkdpZE41d01tcW9SNGNTOTJEb3g3aWduZ015QTBy?=
 =?utf-8?B?NjlTc3dFaWdPU3FtaTIxVDAwK1JCOFFuU0ZzNDg2TlhudG5CTTlBemVmRWhG?=
 =?utf-8?B?K2E0VDgvTDl4TlBRWk1DTTZZK2Z3bmNPWkpleUFIaHBmMWxZVHN4Y2MvSllY?=
 =?utf-8?B?RWNPZkU1WkNtVGhVUjVGVjdQQXlIS1VGMUo3SzdkejN6U09FSlJxcWVxT3Jk?=
 =?utf-8?B?Qyt5NkFkUWVNdnZLTzJ0cHJ3cEpHMUIxQVZBQ1R1am1sdWZJMUpudDVyc1Rj?=
 =?utf-8?B?cCtJUjBXd25UZFA5eTN4cGxoS1Q5TTJpNEx1MUdoT01kRFZJVzVGNWFHMW1B?=
 =?utf-8?B?QXlRYnhmUjg0WmxHSjN1VWFEK1ovLzh0aEJPemJvMHhueVRFZ0RnN04xVVZS?=
 =?utf-8?B?S0dNSm41UHNmWXV1VmMxT2hGcytCTFpSRE1aemlqcG5jd1pkWTBuMFVONEpn?=
 =?utf-8?B?OFFMQWNFRWVnM2UyMFBlYkdneHB4T3M3STRISWJ5QUV2UTd4dzVxT0RFUU5X?=
 =?utf-8?B?MDRWUmZnb0ZCaVFaSHRCYUt4a3dCV0liaTBaVHVUVGNpd2xuZHNuRlBJa21v?=
 =?utf-8?B?eHBJemdZa3Y0N2p0QnJiWThMK3hhb3pGVVBzZ2s5RS93dERFUVZsaWNnY3RT?=
 =?utf-8?B?QTdqWWNkN3FzRm9OeklOdlhpME9ReUNrRXR3MkdlREg5bWlzT3d4bVB3NjZ2?=
 =?utf-8?B?V2p0RWRxNVZkaEt0a1pBZ05xdktlNUdLcXpBOUJBSFdNY0h1QUUzTnIvYXJZ?=
 =?utf-8?B?cFdIdUlNVGdOWGRqZEJTV0daekhPT3dIaXUwbGFqMUlVcHlvVUFJWHFzQjRJ?=
 =?utf-8?B?T1BzZFlnT0h5R0VIeGYxZVZNU2gyNkRzbTB5MUVXM1ZzRFJMaTdjZys3SWVv?=
 =?utf-8?B?UkErZllVSWdTT29FVGF5MDBxbUxaRTR1VXFMN2lud1JrMC8veFBMU1ZQc1Z5?=
 =?utf-8?B?NjRZNjJ0SXdSdUQwWkFaRXdLVzcybWx2djJDTUJ3dUE2KzNGTm1aVFFCQ0c3?=
 =?utf-8?B?eVhnSUhDa0pyckJkK3JjNmdydTN3UEVpa0taWUxJWkhOK2tIandES2RoOTBY?=
 =?utf-8?B?SW1mVWFhbG1WOVVQVGhaa0JRUFh4cXo3c3hKVTV3cC9VZEhXR2VjZUlkY2J4?=
 =?utf-8?B?NUVyTU9vQU15S2dqRit0SzMwcjJqM2l2OVBMRnR1bDd2dy9EY2hadnB5MHRS?=
 =?utf-8?B?SitRK0ZLQ2Z2OEh4L1Jram9uNVg5eU5LdkljSnEzWEpNOXVGb1BtQmNldFJt?=
 =?utf-8?B?TTNGSy9RNHhzQ1NiNVBTaFhMMzlrczN1SUs4eHdpU25zdys4WHh0ZEtZdWo2?=
 =?utf-8?B?OXdoNjRCZkxSU3B0T01leTVCM2c4SlJJdnRTQWZiQTNOSGdnUjVRTXVESEI5?=
 =?utf-8?B?Q2FaQUdWaUlHY2pPaTdOLzJVTURsaFlSdk1kdnoxbExkbGdKUGNRaHZ5dTdt?=
 =?utf-8?B?elZkQ2NFS09JSHlnd0lZQVFETWZFTTFEMDl2ZERadXlWckZ1d1hjMHBLMVNX?=
 =?utf-8?B?bHltR1VMcks1R1FKQjRFVVlrRlQ3MTJLaGpiaDBUaUpyZGtnT3JmazhuVDl1?=
 =?utf-8?B?ci9kZUREZThqOUUxd0NrVmpGMytuR09mY3hydFR0bFB5R2tiME83aldWUXh5?=
 =?utf-8?B?ZXNPQlA2Qmk5R3haZTZSR0FJQ3pSa21XWExhb1lEWlBydlNvcmZNQXhvWnRt?=
 =?utf-8?B?ako2aE1GYlJ2RUhWVDAveGRGZjRVOXBmc3hUcUhsUEJIOSt0czZPbjFFbGdJ?=
 =?utf-8?B?dGM2ZjU0UWh3NXJTbWNIQkxSNDlzZUFNWjlyY2ZaRCsrTWx5WG9aUHorN1R3?=
 =?utf-8?B?ellFNXZDMU10RlF2ODZaOUl4TDhhOVNVNDhTUXpXVE11NFFrZXI4ODJEbFdn?=
 =?utf-8?B?M3ZlbTlhTVpobmxqQTRBT2Ruem91SE5PK0RQakwrSEpiQUp5YTNwQ3loRHNn?=
 =?utf-8?B?Y2RtRzNGbnJKTTRNd3grY2JqLys5VlhrR1Q2b3AycHRYenc2QjZ4S2prZlZa?=
 =?utf-8?Q?I3bBCSvF8Wk9Nkzo=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 288ee640-4058-4031-086c-08dea75de42d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 May 2026 08:44:43.6840
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ZgtKeNJvZABA5Y1EFYezaymZDUhPfkbBae9bf2omwT64iulcAEG4VWTXPTAyVEGO8U2amozRn3rXWg8w472Kc+vqANgZlVeKS6A59+t5rBg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR03MB6059
X-purgate-ID: tlsNG-d25034/1777625088-F4E06CF5-8434A334/0/0
X-purgate-type: clean
X-purgate-size: 1300

On 01/05/2026 9:42 am, Luca Fancellu wrote:
> Hi Andrew,
>
>> On 1 May 2026, at 09:40, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>>
>> This was caused by a renamne during review.
> NIT: Typo s/renamne/rename/

Oops.  I need more coffee.

>
>> No functional change.
>>
>> Reported-by: Luca Fancellu <luca.fancellu@arm.com>
>> Fixes: bd0b3a876d80 ("pdx: allow per-arch optimization of PDX conversion helpers")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <jbeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Teddy Astie <teddy.astie@vates.tech>
>> CC: Luca Fancellu <luca.fancellu@arm.com>
>> ---
>> xen/arch/x86/include/asm/pdx.h | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/xen/arch/x86/include/asm/pdx.h b/xen/arch/x86/include/asm/pdx.h
>> index 6be7e1185eb1..6c10234ecfa9 100644
>> --- a/xen/arch/x86/include/asm/pdx.h
>> +++ b/xen/arch/x86/include/asm/pdx.h
>> @@ -57,7 +57,7 @@ static inline paddr_t directmapoff_to_maddr(unsigned long offset)
>>     return offset;
>> }
>>
>> -#undef PDX_ASM_GOTO_SKIP
>> +#undef PDX_ASM_GOTO
>>
>> #endif /* X86_PDX_H */
>>
>> -- 
>> 2.39.5
>>
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri May 01 09:43:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 May 2026 09:43:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1298623.1573785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIkOg-0005ul-Lj; Fri, 01 May 2026 09:42:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1298623.1573785; Fri, 01 May 2026 09:42:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIkOg-0005ue-J8; Fri, 01 May 2026 09:42:58 +0000
Received: by outflank-mailman (input) for mailman id 1298623;
 Fri, 01 May 2026 09:42:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wIkOf-0005uY-J9
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 09:42:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wIkOe-00AXpc-VM
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 11:42:56 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69f47593-e002-0a2a0a5209dd-0a2a4504b3a4-10
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 11:42:56 +0200
Received: from [52.101.69.42]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69f475a0-1dec-0a2a45040019-3465452a896b-3
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 11:42:56 +0200
Received: from DUZP191CA0011.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f9::9) by
 AS4PR08MB7733.eurprd08.prod.outlook.com (2603:10a6:20b:510::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.22; Fri, 1 May
 2026 09:42:53 +0000
Received: from DU2PEPF00028D01.eurprd03.prod.outlook.com
 (2603:10a6:10:4f9:cafe::17) by DUZP191CA0011.outlook.office365.com
 (2603:10a6:10:4f9::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.22 via Frontend Transport; Fri,
 1 May 2026 09:42:53 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU2PEPF00028D01.mail.protection.outlook.com (10.167.242.185) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.22
 via Frontend Transport; Fri, 1 May 2026 09:42:52 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AM8PR08MB6546.eurprd08.prod.outlook.com (2603:10a6:20b:355::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.23; Fri, 1 May
 2026 09:41:50 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9870.016; Fri, 1 May 2026
 09:41:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=C6TALPBkLk9TvCMawRS7C0Tt0VXRCyJHDncwBXQjjTA0gWamtC71Nv7j/ECTXNP6fVRPfULHbSOAtUM6C7Mmmf6YPfFliA8ZZrQbV7DefSNFzjrh7wZUHQpVvKKknK1QjXvy7WxZMvr79gqCWjUBy+pYchIBZ+gAE8tgJETEwcRnPfwbYrf95A23x57vcdWpy2LcZra5vk22dUu9SqDDNiSP/GjL26OXM77Im3zXDZtC3f1jkuPzby0apDu2sDTV4zRn6Hqd/y+zLICG3/8l2sK82ogtJeJGzCZ+YLEiwyVuI7eKyxfv5z6sRIANcuUY1R27CcYLdaK+S7yNsDvS4Q==
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=k8iLryvx1fW21SxdaNFfhYgHa51F0iStH0NN+Yobfn8=;
 b=aDFsbDWDjQ9dq03m2u46nMgEt004vZdDXeieghRNhWFUbZ2QRTlrgYigdjiaWXDwMl8970gawfHZ9SMXXIszjMubM544OT83B/Sq7jnAwtZfoEv2EWtl9Rerl0C1rj3m9x7CAhHWvzbvpBpu/lipBUCrpJQmAoPphj4aSxoAskzw9s6fh43GShRLee1TUAsj8/smqYkXnZ+i5ZMLwIl+ROTAlPn2zXRr6DyzyvJgPnO/eQ2fb1KTd9Ymk73ssiD4P28P2ztlFSDCsbcq6Q6giqC51KlmCyusgu6DUpa2Qa3OAWq8ntkLiApQwlnmBo1RWNgGob4eagDVzvftg2LrHQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=k8iLryvx1fW21SxdaNFfhYgHa51F0iStH0NN+Yobfn8=;
 b=Ao7HsU3uKRbf2w3Y9gTOZvbzP7VG1JV4xh4fbpAbLaJSRafWBavOjj8TJEcY2GNsHGCZaJ09izxTiwoh9Pt1dsYc3Aey2AHiQsAeoSmYzAnIt174r3lKcFZXuoLxnF13cSOOyt28RqeHeL6ggTsq8sO21kf0pyxaWGfImngtI+Y=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QoagBfiCZ/5XXawhdC0RW7m9bPIP1/Ohq0V/fG+OAjuG5suxj7A2nfrcoiPxgyKhw4Nwvxj5p/FU6uUAen8GYwjKxYDyig8hV08OIewCNnY0KG75NX8TkKwkaPR9FHcDozs5dH7taGzqvhxKBfKWvgVB5+oRHqYqIDBBbKvCq6Tqf/94JfqiydiWlckxp+mmFL4MKDeAMPMPxEiunzGYWSIRZX9paafDdybitG7RRdhYD1Rmq1eD5gOp9eiYIhHwAuhVr9eZ+ZGb++Ven5xwou3h6Me3PsrVGKMc2HcS8Akq22r84+AbWm7StorwOLV3QhwPCVAMt8/A/eFqvB96Fg==
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=k8iLryvx1fW21SxdaNFfhYgHa51F0iStH0NN+Yobfn8=;
 b=a50HFlASlE1XeNIiki7ipbOZ93ktDeQxALMBO4N8W98N5DsU5eDzfGnhIFcPkYuk8V6EczEzq/IZeIDVW2NnL8DlP8BugWg3c/HAhCw5dtC0FvgaAjJOIYWe4LeyIVR6mSXVfYMtiA+pNbYm/YLFvxpK6q1c3WCINjSXqkGcnR2ezygW5RoE4amborO4RJO/GSNN0a1clnCrbhklalJxEl2lcqYh0WC4hLxnfL3IBSCqY/bt+nQRnpJNZ4gnO06VRpQtY4ydjkxZY0q3H7M2cNKr3iAexPBshaq5P83XkuUpvaj8lOZwSmy7miHA++aZnRY15RMJ3UrD6HNxKHnAAQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=k8iLryvx1fW21SxdaNFfhYgHa51F0iStH0NN+Yobfn8=;
 b=Ao7HsU3uKRbf2w3Y9gTOZvbzP7VG1JV4xh4fbpAbLaJSRafWBavOjj8TJEcY2GNsHGCZaJ09izxTiwoh9Pt1dsYc3Aey2AHiQsAeoSmYzAnIt174r3lKcFZXuoLxnF13cSOOyt28RqeHeL6ggTsq8sO21kf0pyxaWGfImngtI+Y=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Michal Orzel <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
Thread-Topic: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
Thread-Index: AQHc2KAtk6uvg3kMbkmyodn66STuo7X47BMA
Date: Fri, 1 May 2026 09:41:50 +0000
Message-ID: <9CEA7814-0ED6-401A-A5E9-2361278D9859@arm.com>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
In-Reply-To: <20260430125103.401811-2-michal.orzel@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AM8PR08MB6546:EE_|DU2PEPF00028D01:EE_|AS4PR08MB7733:EE_
X-MS-Office365-Filtering-Correlation-Id: df9030e1-93f0-4cce-d91f-08dea76603d8
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|7416014|1800799024|38070700021|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info-Original:
 8sG4KCIr9blKr7m7Xg7nTVLTVs3GSGJGYHoBFwtJdSCb60fDHgusDXXS9vae/omSbWEUZ3RCImMZIvIKmxbPetbxTUywWS3kgbcg+0KqLktqvou0zBxh293KbrCeDtjC7Q+1hqIe/too4OXF637gQu1Icj6pyHOfrRJZD+mAwVkADwjgOXLDnZX4fDG2F8oQRLqbiX0FY5A11Vym4U/cAcUPA0N7hN5uHQoKrnXY6k+OmSM/ppNOB6ZnyzAwFX+y8cZELek+kjDBHJ47pgHY1pJf/xeiyyqvDPhy5mZpe1Y6yvtodn45PadfTYZQbCI4Pnt6j/wXTonjNwQRekOLs/xUGlkgzSQr0tXAXgpvYO5WyHTXUzIUvACMKXC5n9E/nWZruXiOM35++59ihpDJXsVw3fx99R92+IKlphNCNb3WKQ0dPCtfETRHQTDyDr45Uqb5CymWevN5SnUHgGR7jMg3wf5yuqUbFpLRqjyOV4gw/svM+UkoUHiC6RDfylJpu4DpOdacXY8eRTbnvBQ8pOleqGOh9BOdI0LoKLKuYkbQHvZrOE3NC66Q0xIO761a63ZTEViOIXJMcY9KDhDZcJXMJkMuArCs1a2o+nmhnwpY145g3AQVx5B63ub99a6rhEOaIBMDtXl73c/ZYOhPLUIL6Qp8kLu+oKkz9PIoJZjLQZwIpXL5055/tus1QhaWmFciEmaPxo1tuoYIsGOhxs83CYg91zpqXm9g1qyS6KTTgHGEsZXUf7DkQXYGP08t
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(38070700021)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <7A1E8F5BB114A945A6BF41B992BDE68A@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 CX0iTbej7ZpPkMh7a2B6tvp1MvgdH0LYypMstPE2a+2MftS1vHjLS714p1c+01sALjQJXLzXTi7dAsna9T6qXdqel+8OiWsHjmZa40ahiMnJOrcg/mlgcl4fs2JjCDNNXmfYdb3HqDhWaJ1R0vbRkfVi/srGNAdzKawONSJZwNKQiHnhxtd6HdskA7c47fWKPfslpdiqJrWVBO+HfGm5ODQySXY/If9Sby7YAyyQfjelq69qqgYNfyWDkEPeBFkOfVyPfPnzYXwL7bfomCrQZRHNOKzIps/3bq24NnYE6GYGospu6ijDHa6lR9zX4YrEF5qmzSepgGivdeDI0L2l1A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6546
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF00028D01.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	7c10437f-ac00-41dd-07ae-08dea765dec4
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700016|14060799003|376014|7416014|82310400026|35042699022|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	Ax/5GjjXVVfplnKnYAesiwkN4yj0e+SsMvDjoI3WvDWotoDyZQm1qMPZwC26ZZDtr4Um9U6DVhdA7qfkSGaOd7ZjFod6Kct2aua+ADjk/kRTcLXw+FXs/quuDtejV7bAGeHW7FZwL79GbtUS/wp8CsJmpTOJZ9ShWk4Y29TUw+eSmJ9NZRhDzfqon8A1iSJKID7aYr9mHaL7KFWjk5XLlv9Jv60NpxrB7Z5ImXB6ULRCjXP/yAzYIjulC8SBWlU/U/BwZTO9whL0gZEJ/Pb9LT+wK5AB8lbSb5C3ft7mtC3ZSZdQYZ91A/fJ122F9ifG9AU+EE7cejws7CbV9C9mig5bL1npeYdnGxbXUh6rek6ObB9HHc68yd1JJceZBw68wCoyrGbe+7W5GpR/hS1iWc7foJef/4uBFMkKTJ72bdvYxOunmyXdS+69L67fSVvZt8CqOjweHXjTu77zPhWSRxZfAvQTjky+i2+qbcv9+MYkKunV23J9CbveAndt+EX5bJSRPbN8mAnykyMH/CHGmTCH1osgso8dyy3H1Q9pAXErrzJWIz/MJCZYiklLQfeN/xCfg9eCR2DUAjcTiTiMeSQzMjgYdRkX1prQNL6J6zg7hhSn7FYMFrdgM6HOnGvaCbHo44N+q0QAgq5kuagQhBhyhXeLn8XEKhQHgggOmw8xJPsEIHfVtFJiCWKx8aJfE27d7m+wGCjKZDhZU832faYyy99fHHzWAOt3hjxToEw=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(14060799003)(376014)(7416014)(82310400026)(35042699022)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	4qWB/I9QxwugBtBukn2B5HQH++y0/y/eYyEHe6hj5DIjTy9IJP6TBT0uyIz6nl0wZanhUBycX0W5xbsvGosQ/8DmDIJE1wMLszIVpHpgS/oiprzCzDVhugbfrrjApKfQIr25YzpzGEP3gNVxK3i9FMfgVuqrd6dQ64W9LHY6R0Ki8WCpK2rdjbVULZ31Qet/TQbcAaAnYwnr7XXczoAtISKHP0NrDNtgbZWaW/IApz7oSy/V+Qe8i9uq1uYoFDh2crPHlNEqQ4nJ1FFnTLaeF8BvpsxQK1Qh0BkWCvkH04Sk6TQKXT8r7l6qZweUkpxbHNL5abKjzwqjx3EnuFbxP1L1s4hHqsdXOp/AieICCUlV5cRUwEkvYxQMCRAmPmCOYMtgyOR9IePQUgaL7DcoVkUteqluO2g/TR7OEVR+nE13YtVNizEnOJU3ZiSfG+40
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 May 2026 09:42:52.5261
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: df9030e1-93f0-4cce-d91f-08dea76603d8
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU2PEPF00028D01.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7733
X-purgate-ID: tlsNG-ebf023/1777628576-300413FF-39A645E5/0/0
X-purgate-type: clean
X-purgate-size: 2492

SGkgTWljaGFsLA0KDQo+IE9uIDMwIEFwciAyMDI2LCBhdCAxMzo1MSwgTWljaGFsIE9yemVsIDxt
aWNoYWwub3J6ZWxAYW1kLmNvbT4gd3JvdGU6DQo+IA0KPiBUaGUgZ2VuZXJpYyBwZHhfdG9fcGFn
ZSgpIGFuZCBwYWdlX3RvX3BkeCgpIG1hY3JvcyBpbiB4ZW4vcGR4LmggYXNzdW1lDQo+IHRoZSBm
cmFtZSB0YWJsZSBzdGFydHMgYXQgUERYIDAsIHdoaWNoIGlzIG9ubHkgdHJ1ZSBvbiB4ODYuIEFS
TQ0KPiB1c2VzIGEgbm9uLXplcm8gZnJhbWV0YWJsZV9iYXNlX3BkeCB0byBvZmZzZXQgaW50byB0
aGUgZnJhbWUgdGFibGUgKFBQQyBhbHNvDQo+IGRlZmluZXMgaXQpLg0KPiANCj4gRml4IHRoZSBn
ZW5lcmljIG1hY3JvcyB0byBzdWJ0cmFjdC9hZGQgZnJhbWV0YWJsZV9iYXNlX3BkeCwgZGVmYXVs
dGluZw0KPiB0byAwIHdoZW4gdGhlIGFyY2ggZG9lcyBub3QgZGVmaW5lIGl0LiBUaGlzIG1ha2Vz
IHRoZSBnZW5lcmljIG1hY3Jvcw0KPiBjb3JyZWN0IGZvciBhbGwgYXJjaGl0ZWN0dXJlcywgZXZl
biB0aG91Z2ggdGhleSBhcmUgb25seSB1c2VkIG9uIHg4Ng0KDQrigJxjb3JyZWN0IGZvciBhbGwg
YXJjaGl0ZWN0dXJlc+KAnSBJIHRoaW5rIG9ubHkgUklTQy1WIG5lZWRzIHNvbWUgd29yayB0byBl
dmVudHVhbGx5DQpiZSBhYmxlIHRvIHVzZSB0aGUgZ2VuZXJpYyBtYWNyb3M/DQoNCj4gdG9kYXku
DQo+IA0KPiBXaGlsZSBhdCBpdCwgY29uc29saWRhdGUgdGhlIGFyY2gtc3BlY2lmaWMgUERYIGRl
ZmluaXRpb25zDQo+IChmcmFtZXRhYmxlX2Jhc2VfcGR4IGFuZCBQRFhfR1JPVVBfU0hJRlQpIGZy
b20gdGhlIGFyY2ggbW0uaCBoZWFkZXJzDQo+IGludG8gbmV3IGFzbS9wZHguaCBoZWFkZXJzIGZv
ciBBUk0gYW5kIFBQQy4gVGhlIGFzbS9wZHguaCBpcyBpbmNsdWRlZA0KPiBlYXJsaWVyIGluIHhl
bi9wZHguaCB2aWEgX19oYXNfaW5jbHVkZSwgbWFraW5nIHRoZXNlIGRlZmluaXRpb25zIGF2YWls
YWJsZQ0KPiBiZWZvcmUgdGhleSBhcmUgbmVlZGVkLg0KPiANCj4gQWxzbyBkZWNvdXBsZSB0aGUg
X19oYXNfaW5jbHVkZSg8YXNtL3BkeC5oPikgY2hlY2sgZnJvbSB0aGUgUEZOLXRvLVBEWA0KPiB0
cmFuc2xhdGlvbiBvdmVycmlkZSBtZWNoYW5pc20uIFByZXZpb3VzbHksIHRoZSBleGlzdGVuY2Ug
b2YgYXNtL3BkeC5oDQo+IHdhcyB0YWtlbiB0byBtZWFuIHRoZSBhcmNoIHByb3ZpZGVzIGN1c3Rv
bSBwZHhfdG9fcGZuIC8gcGZuX3RvX3BkeA0KPiBpbXBsZW1lbnRhdGlvbnMuIFRoaXMgY29uZmxh
dGlvbiB3b3VsZCBwcmV2ZW50IEFSTSBhbmQgUFBDIGZyb20gaGF2aW5nDQo+IGFzbS9wZHguaCAo
Zm9yIGZyYW1ldGFibGVfYmFzZV9wZHgpIHdpdGhvdXQgYWxzbyBiZWluZyBmb3JjZWQgdG8gZGVm
aW5lDQo+IHRoZSB0cmFuc2xhdGlvbiBoZWxwZXJzLiBSZXBsYWNlIHRoZSBfX2hhc19pbmNsdWRl
IGdhdGUgd2l0aCBhbiBleHBsaWNpdA0KPiBBUkNIX0RFRklORVNfUERYX1hMQVRFIHNlbnRpbmVs
IHRoYXQgb25seSB4ODYgZGVmaW5lcy4NCj4gDQo+IE5vIGZ1bmN0aW9uYWwgY2hhbmdlLg0KPiAN
Cj4gU2lnbmVkLW9mZi1ieTogTWljaGFsIE9yemVsIDxtaWNoYWwub3J6ZWxAYW1kLmNvbT4NCj4g
LS0tDQoNClRoZSBjaGFuZ2VzIGxvb2tzIGdvb2QgdG8gbWUsIGZvciB0aGUgQXJtIGFuZCBjb21t
b24gcGFydDoNCg0KUmV2aWV3ZWQtYnk6IEx1Y2EgRmFuY2VsbHUgPGx1Y2EuZmFuY2VsbHVAYXJt
LmNvbT4gIyBhcm0sIGNvbW1vbg0KDQpJ4oCZdmUgYWxzbyB0ZXN0ZWQgb24gQXJtNjQsIEFybTMy
LCB4ODZfNjQgd2l0aCB2aXJ0dWFsIHBsYXRmb3Jtcy4NCg0KQ2hlZXJzLA0KTHVjYQ0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri May 01 14:17:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 May 2026 14:17:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1298717.1573807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIogH-0006WW-5y; Fri, 01 May 2026 14:17:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1298717.1573807; Fri, 01 May 2026 14:17:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIogH-0006WP-2q; Fri, 01 May 2026 14:17:25 +0000
Received: by outflank-mailman (input) for mailman id 1298717;
 Fri, 01 May 2026 14:17:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wIogG-0006WJ-4f
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 14:17:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wIogD-009dAi-4j
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 16:17:22 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 69f4b5c9-2eae-0a2a0a5409dd-0a2a4505b5f2-40
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 16:17:22 +0200
Received: from [52.101.84.119]
 (helo=DB3PR0202CU003.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 69f4b5f2-aaa8-0a2a45050019-34655477325b-3
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 16:17:22 +0200
Received: from PAXPR03MB7531.eurprd03.prod.outlook.com (2603:10a6:102:1da::11)
 by DU0PR03MB9126.eurprd03.prod.outlook.com (2603:10a6:10:465::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.23; Fri, 1 May
 2026 14:17:20 +0000
Received: from PAXPR03MB7531.eurprd03.prod.outlook.com
 ([fe80::77bc:127a:5664:10e]) by PAXPR03MB7531.eurprd03.prod.outlook.com
 ([fe80::77bc:127a:5664:10e%4]) with mapi id 15.20.9870.022; Fri, 1 May 2026
 14:17:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ii+pq10ayKs8KB6Fg6kqkclOn3jPk+nqrby1wd2HMXLOficVZge7TiJy+rWLM2De6YspOcQavQt7QHSAnT4zD4m8ofo8GBeleaA7wJD/z61tiKRiDkGrwMWQO6aBb41YvPt4OEdEcrO6DzA/osAGBX1314j+zX+GSmVO9lduVgWfHgrXbUpA3pX43S5YF0L8M47YjhkitZ+5JV1eyDHnm3IVUY7eHGRBPGW0SEnzXSyBHumbG/nT9mb44AgXJj16SV1dz5L+D+qhPLAHQXmnYUsvYIjPIkBKUjRMulAo5vOPZO0vo3qp278xN8uNhKyyUc6nArappsGPXNOR8jeu5w==
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=zFS4Uoz58OBCQEa7Qjp2XgT59HlgHljPSPD0uXJkA3s=;
 b=LhkPUWINUZemKpjvkUIuVYPvjCDSmr9K9Nvaf42RJnXy2IAwiOWw1CPzQf6moiFToJaVpHrPSi6vUODo/42XpJWEHm91ADwg3lQobrqh2CJ3vXOZq863sf6/eFSetipV+kDntT1VFbEXQXZpTGgP3oqzYDkW0mMum+uAQ7aTjsZGN6fzlhfJcrRNDq4cS8VSWSSsxNmaUoXePVTlK/TGlfdcAYXmHojFK4WPjgFWRCQP9qWw21kP6hjqQh7vVz3DqOLC7iUSUDb9G1OyOd0Y/JphX2kDPdKIn5PUl8FrqnqzzjKp831S4Qgt1IS0ZVJQsmq87O4drgvPG/HPnvldKA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zFS4Uoz58OBCQEa7Qjp2XgT59HlgHljPSPD0uXJkA3s=;
 b=P3CREPevDJL3I5Uja/DZxCdq38QHuHr0oDxvZh4ZGWisstxTIpBhUlW0sDgj8H7mQvT8wajdquaFJMefi0Y2pSaC+T4useSPtYgO2bhXMajhhXeZ18gMGVH4Xu3X0Cd2avcDHKGnCSVE/+XOvLWT3s5mjsVGyKFvXU4MznZ+G6tUW2qzcfJNkafRjVRAtcVK/Va429CFvCfwjHlFXsAeWhW1l0y15L7pHxrQRFSg3FTmknX6xzp7YbFUC+UvOACiekPW1TcQjW0dub4IhFvScnByfgHjd2nzD4HGysSql+ui8ukgw+3zlep0xLkGJhuVi6J8JjFkfCV5R9F8LLC/jg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH] xsm/flask: Fix undefined behaviour in avc_dump_av()
Thread-Topic: [PATCH] xsm/flask: Fix undefined behaviour in avc_dump_av()
Thread-Index: AQHc2XU4ZcEAsUoy1EuhfVMBY8DBFw==
Date: Fri, 1 May 2026 14:17:19 +0000
Message-ID:
 <43fc4b4ed45858b2cebbc37bbbf3b70e664a0661.1777642449.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAXPR03MB7531:EE_|DU0PR03MB9126:EE_
x-ms-office365-filtering-correlation-id: c57c9c8c-345b-4109-c13d-08dea78c5b4d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|42112799006|38070700021|18002099003|56012099003;
x-microsoft-antispam-message-info:
 pkdQAbRYZyvQBloAaA5o0gRNQTEPg4eozlmOVb4aSuNzD/+/uLDfYoqoIv0vKQCJ1hAGJOAnoGpQTKX6AkrSbRPSWYoktbJEXbhFoY7VnYGMJKZ93sP8CjWr0xDTbeQ1CmpcDprEzSpyvb94XhN1XLBUrnuWKovxCc+b8eSv/64A1PhYz094LoUX8luAcGPitGKGmZJULrhoEyDcDUzNDhfJSNmtm/gCE3J9SA67fjvUzyIVWQ102MCs51tw4jss9z1uSZqSiXbshq9rN03ApxC2/+oln7YuFXG6dubwxoqWx+d1DcsY4xRZavyZ5kp4nLm27iNcSuPVPk9XgnB9i7SjmP5eQGDv77DlS5wemUaEsqdHfUxgJaDqOesO1BAZWv68RZuPzA/pFouXqQ2yvOvFEIcmj3W32AJYOBokSS+Gkt1/JWEmwlBUyd/8YkLt6NlsbC0wOLGj0JvXaYon56eqDz33n85etHSs9f71BTZxFeTMdS7/auQNoL7aStWewmmSBbBEe0+UKbSd3JE0+x/HhJa7VxljgaJ9oam1OXDxc0nJ+r3R6xxajGKP2F4kDcaPoYQjhrcltMk0yCN9N9sJMvzkDV8cFQlHG4JaWlyXDX6uy2WIl6TBGvS2f1EIA/bOZktdTEkDUXvCkxGdZPmwgmDwyo9/3BPfYaGkH+qzRBdT+xdi/HcI/1+IlCtzI3cb4HCRAJc5QKFj+PTtzp+G4uueKIGw81Fg7GSeV42CdwPuMgmPaiHUtyh0EG/r
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR03MB7531.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(42112799006)(38070700021)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?BVb7YGOib+Hkno32zbf/hbInhAJXBcmg1L0luA+v/TY+udfMAQxwQfyqV2?=
 =?iso-8859-1?Q?zSwox2MSa11bwBWi+A5b48vxgKWBtteqm1xEoN7VaWX04WHbHO0Rrs6OYK?=
 =?iso-8859-1?Q?CHbM0ReiNbRxRUfCHo1MvTXOd958mjNPuZbpmQ8Hink326KdJR6RaYxupg?=
 =?iso-8859-1?Q?pvbfj7nAd0+uUQX73R9/2qcUgaw2wRe69GhlwiorPT8gRcgp0mtdDPYtWC?=
 =?iso-8859-1?Q?EqLAaZWs+dAUnNMNu6z9NhOcWnZ4xSAhS+jdekASRpIonSYOMlHJM4PsKC?=
 =?iso-8859-1?Q?VAH5l2Zf37A7cyyiSVxnOA/oFzeIAwHIg602upYtgnbFkwb6Ns6x64PNrn?=
 =?iso-8859-1?Q?D1bSXwdf+Z47MQGoYhQ6gOIl4psRgtgHPH8ppOuJ7XGx0xmgDyqaKzbXka?=
 =?iso-8859-1?Q?FU6RMEIQSiV/sJhMEOrfimJyMtGPqi+iIug1hWFxcnvjkN6Z/qfZ1bvENm?=
 =?iso-8859-1?Q?gyS5kMCaX1hQzFVTlW5aQbn6W4mDoQqompeI8zL94Ul7NLqYHXytxpsblM?=
 =?iso-8859-1?Q?IopBsAw2c/CF//9xGHYr2nnIfNL+AQyjkR7mlpuArlvohfUjt0Mvb1W4nT?=
 =?iso-8859-1?Q?0AXtNQmsvqrsfiDMbR5zA0bDM5f164dUF27w28n19P8Tv5wAsRfrQDqLVo?=
 =?iso-8859-1?Q?0ir6rDbdiYKk/adSjOrLSKCgGIWgW/wboiP8sLE84P1jrnBg2k4HyhoQnZ?=
 =?iso-8859-1?Q?Jrein5/hn7jhQSc0ZhAT/mZUfKMDGgpW7Am2jR9P70B4MzooHp9f6/v0R5?=
 =?iso-8859-1?Q?4gqOnCdRi9aUOVRbg2DxJAHbhtDs2fI/BMRNAWREcPELc+z+dguepxcXkZ?=
 =?iso-8859-1?Q?N6F4lz4Jc92JZR/QjSe/a1oDqBw0CnBQT+5O6Y2RxDEaBHyrfk2YlxUiE+?=
 =?iso-8859-1?Q?2eZp0AnquPrwXGA1pwQB61sTb+nfMKbpKg6WmtNsENuAVr1YfeC9MyDo13?=
 =?iso-8859-1?Q?pusGK2N/0XRjiPT0ggJsXg8XRLrOOeRZwKK1s6iL+lDpA+kcymhdFNyb7k?=
 =?iso-8859-1?Q?noBE4CGLTdgikYmMYbCWEtstHcijEJkM720n2BRHAaNdXt16PAv6Z6u974?=
 =?iso-8859-1?Q?r0Y327tHdFo+fC+Qe9ZFRk1+jf1YIL58yy/Pzt9RfZRR7KPB+CLP92zgVG?=
 =?iso-8859-1?Q?v22p2UM3ZmKsvO2Ih7m/2SDYJ/3ViFm/UjK6RPGGVeiQgnoa44gunqW739?=
 =?iso-8859-1?Q?yVviO4sfI0/VUrcxlfAnEqGh83ooPFYgaFBLLJqaKrkjJHVxCFtDoIMQoP?=
 =?iso-8859-1?Q?ad3pfd4VvWr30tj+Dwh4J5Nj+MR5+zBEwHSCHa9wA+7XEu1xwlCfL7es8o?=
 =?iso-8859-1?Q?2NVYvI6aksNqkCgzljrHN2sEMj81+7D8bEkDrXdY/nZg9cZPAyfvwcgMHu?=
 =?iso-8859-1?Q?pQayeQB95mXlOBFkc5r1Vxul14wOMrxmsMhc2RyD9scIgJ4FZ+Y/AD8ZjJ?=
 =?iso-8859-1?Q?V+NRYe1vAZ1gYL6s4Oyb5mW/i1KoIJd8CagDizNYx5lSfoVvg7TqBE6T5q?=
 =?iso-8859-1?Q?JcH86DYwe/5H8z9SvQB/He2/PYZCsdVw33FaLp3Dpp9nh6HCTh99ivp0cE?=
 =?iso-8859-1?Q?uIKa6j4Hpy9WT0PCNP2qQgyMWYbBY7yRsiMzZOSe5bmCFMNsqUNn4/KEqM?=
 =?iso-8859-1?Q?m6y6hCrG6AfIBzpV7jd7daGWKqKXy/0HBVA6ZaHBFkLEFMPnuo0e8z5azm?=
 =?iso-8859-1?Q?q7bIK55WaQGf12XaulvAShYeiPfuXP2uTfvCaVVD69y0WmSL0V4cvNqyOm?=
 =?iso-8859-1?Q?IeowPCDiPekfutcXHb2E+DfIHD++pOv6CTZ9PraigBwH4crC+AqndL3Ee8?=
 =?iso-8859-1?Q?uK4uzEk3wPR5LvIhpRnisenIW+PRUEA=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAXPR03MB7531.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c57c9c8c-345b-4109-c13d-08dea78c5b4d
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 May 2026 14:17:20.2157
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 76zOn3VIGr115XF5xSu33mBdTalXwEsgU4QVZfUS2ROiMXzhB64Nxs8v+txsQLCVRYjeLRKu+tc/M82jw+hPy0zqKBlx5K3FiRmhr6cng9Q=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9126
X-purgate-ID: tlsNG-c201ff/1777645042-2BD67443-91B88523/0/0
X-purgate-type: clean
X-purgate-size: 2127

When booting Xen with CONFIG_USBAN=3Dy and CONFIG_XSM_FLASK=3Dy,
UBSAN reports undefined behaviour in avc_dump_av() due to a left
shift on a signed int:

(XEN) [    1.104348] =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
(XEN) [    1.105096] UBSAN: Undefined behaviour in xsm/flask/avc.c:184:14
(XEN) [    1.106052] left shift of 1073741824 by 1 places cannot be represe=
nted in type 'int'
(XEN) [    1.107546] Xen WARN at common/ubsan/ubsan.c:176
(XEN) [    1.108295] ----[ Xen-4.21.1  arm64  debug=3Dy ubsan=3Dy  Not tain=
ted ]----
(XEN) [    1.108848] CPU:    0
(XEN) [    1.109147] PC:     00000a00002f64fc ubsan.c#ubsan_epilogue+0x10/0=
xd4
[...]
(XEN) [    1.146320] Xen call trace:
(XEN) [    1.146663]    [<00000a00002f64fc>] ubsan.c#ubsan_epilogue+0x10/0x=
d4 (PC)
(XEN) [    1.147227]    [<00000a00002f7bc4>] __ubsan_handle_shift_out_of_bo=
unds+0x1a0/0x290 (LR)
(XEN) [    1.147868]
(XEN) [    1.148177] =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

This can be solved by making 'perm' an unsigned 32-bit type (u32).

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2493649109
---
 xen/xsm/flask/avc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/xsm/flask/avc.c b/xen/xsm/flask/avc.c
index 3d39e55cae..9c3ffdc070 100644
--- a/xen/xsm/flask/avc.c
+++ b/xen/xsm/flask/avc.c
@@ -152,7 +152,8 @@ static void __attribute__ ((format (printf, 2, 3)))
  */
 static void avc_dump_av(struct avc_dump_buf *buf, u16 tclass, u32 av)
 {
-    int i, i2, perm;
+    int i, i2;
+    u32 perm;
=20
     if ( av =3D=3D 0 )
     {
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Fri May 01 14:27:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 May 2026 14:27:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1298734.1573815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIoq8-0008KR-37; Fri, 01 May 2026 14:27:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1298734.1573815; Fri, 01 May 2026 14:27:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIoq8-0008KK-0B; Fri, 01 May 2026 14:27:36 +0000
Received: by outflank-mailman (input) for mailman id 1298734;
 Fri, 01 May 2026 14:27:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wIoq6-0008KE-Gk
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 14:27:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wIoq5-00C7hB-I9
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 16:27:33 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69f4b816-2eae-0a2a0a5409dd-0a2a45049c66-38
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 16:27:33 +0200
Received: from [52.101.62.68]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69f4b853-1dec-0a2a45040019-34653e44a2f8-3
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 16:27:33 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MW4PR03MB6346.namprd03.prod.outlook.com (2603:10b6:303:11d::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.23; Fri, 1 May
 2026 14:27:28 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9870.022; Fri, 1 May 2026
 14:27:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PGdvfVXBOTal0cY+79BU99wCl4sWBbaeHTbuRmmbW1cUxDQrvwnTS4iue5Bcgu3BZxpyl/pFgKnRUdrl3QUvngXbi1JQ2SkJlDZEKYpTXqCNlD3GbKR+YABDJbevYbVcOYJZAop/tlstpE+J2drEfFQG9KsYNsp3nUOyh7gu99M3st3XceaGag1PfBoLBEQVbQXT4Av6zTRzwRNg8g6edyEC2WQAzs3KgJXyVd9o/zfbPLneMHD6rYDOwq4Da/c1P0DZWJEYgMk5kBEaYK9obZ/dLAAACACnYdXVVT+6eflX+GEjPdZcBrAXvaZiJ57r+Xw4UfPERSjBuTbT9UJ4wg==
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=TWl7oNrlUO7K4+EhdXYJHT0/IPByFYiJbp9RdZZK5Lw=;
 b=MJbIEba9cpAISLFdPSXRcap/8AMyMwpO2GyKSAkUjkc19ka4fiY1Fyt6By32esL5Dd17g6JulZpa7lYr9gGVzBr19nT9j0dpw9VdZHO7OOs/X8EPblBSqddcW2sh1xuC5N+hE9A5awGJ5aT5o9bqAR9z0Yu6B6BYGcNu7M3O/jPe7jdiZIgFyMbMmrUtJnt0RNVWxqUbaRa2SRCW1lTECl+uGq1t6JFQr/bFsLmVSPNygdteyiTRFH+giPh4KithwiWroQGJJuky623amHIbd5ZZVxEdpzMepf/LhnsInDdrKnYUo843MM7ByxZSYzskjJXfEEYDYaclncTRT/tTaw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TWl7oNrlUO7K4+EhdXYJHT0/IPByFYiJbp9RdZZK5Lw=;
 b=dsmyHgd3llGd01JmEZs6E0jcFCwcHMP0ry0CnqfYZMIsJcSfdUCp3L+pDyrOhipH6WlNKkhZcvK982LlK9SI9SaGFM3Obu/FLo1GnU3QQi19YDq9PyYbgj976ofiEmQ2KXEejH6GzUmRUC7kZBFzm2v5U2LAdlSDyruKOy5jjpQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <beadc1e6-a98b-40e0-85f4-dffc7b2945b2@citrix.com>
Date: Fri, 1 May 2026 15:27:25 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH] xsm/flask: Fix undefined behaviour in avc_dump_av()
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <43fc4b4ed45858b2cebbc37bbbf3b70e664a0661.1777642449.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <43fc4b4ed45858b2cebbc37bbbf3b70e664a0661.1777642449.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0667.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:316::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MW4PR03MB6346:EE_
X-MS-Office365-Filtering-Correlation-Id: e6e0c9b1-c481-4eab-8513-08dea78dc5e1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	IFtD4cCFDQ7ITrQLNRSHm3dfNHUeTNPdut3M3Bx6zu5AViHng/tIrzsbRBcEZBIZnRyzm4MdUbuCNxndGUtl6bFh4e8M0dLUkGQv9xFdso1av4BteN0jzImjZfAVYLlvAuIipjIvQfgVnJHNa7k9GbrE+8cRXkX6Zv4FW2vh6r9d5b4S/b4VeEnKoo1fm34j+jkW14kjm6sewVEA1cDyQbv6fyB96Hu9HT6FFdLpCEXmYAS7TXtuUJyGyq6rfPnriwLKmiHputcrHIgrsWv0RuxTUzernbzZYFJQUZRfvwM5xUxSDwdsObHigacyGNBA+3w8z40U6PEK8kY8k7JYhZlmYBG9vZDEaMoALugVey2RniBtn9E5jRhJBkZbLHXTTCGjq2gaeKpyoeC5/6GaDgmVa92TknT4ZbQ2kVgoyPc43+mCOu4HfLvk3QvDRgq5cW++OrFnRLVKHqOycDjL6wydCVi5eQhymnXXv1cyLrqWX2nD0bQzYTNui8xIBgz1Z2fvkO39yNs8zPTYXLOxWnD8ZCuGU6zDujKL2eA9awo+5RshnzM2R9HMzvGK0rNCyZxP1mu+mh+LH129Em69ONCl6oxor/xjXtE5ixAS0D9FyL9ci+v5/hic+hwYm9qvCF7ZsGw8ok5Jys8AnGGlL+HaEXwZ08OQU91mgtuEtR2Qw3msea1FOb5/jaI+KMxV
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?L2p2anBCcmtaamNBR203cml6SktkT3ROTFVXVFVpSHAwbTZvY2FJemNPNkds?=
 =?utf-8?B?ZWE0d0lTWFRmZ0JxMmhNRDJwMWNVUjRneVNMeCs5eWtHSWdmZ1dvQmlRamwv?=
 =?utf-8?B?eno2Q2ZHTzN5UjBHLzRUOHNheWRkWUd1Sm9LZ2gwWVJ4L2dVTXJkaWhLSGdq?=
 =?utf-8?B?bzB2dG9hbjU5cmE1dlJHb0Y5UThLOXZmNCswMEVWMy9qbDBzVk9RSlhZRkJH?=
 =?utf-8?B?YS9RcFMxc3JzbVNHRWRXWmJyUXcwTmp1OFBmVXhOZmRucy9QL2p1dGJMNy9V?=
 =?utf-8?B?OW9TSWlMa2JJNmhSN1E2MjUxTFhkL3M4Wm8reC9jSjZEYUh6ci9qcjNLbXRU?=
 =?utf-8?B?VGZ3dkxxdHhKRHo0SDBKVlA3dGNjOEdZU25xTEJRaGVRb3JNZ3JvWDRQWjVw?=
 =?utf-8?B?Mlp5dU05WDVEeE9DUUJZckpQTjhRVFZ5Zmo4TmwvYlpYREh0MS9sd0ZOVUNz?=
 =?utf-8?B?Y2Q5U3ZKZ2pUczF0LzhwMEJRenF1TnlGQnR0dDNaTithUGlRaUJRZkpoMXF5?=
 =?utf-8?B?aFNTOExPYnZidUg1K1lBQzYxamt5cFBSUi9rUzN5dFhFOWhKKzhPRSs0MUJH?=
 =?utf-8?B?SVRrUGdOVnVEcG5CdTloaGFlSkdQNFlaRzZzdlR2QWNmUmFyZEw4RlFiejRt?=
 =?utf-8?B?TXRLUndqRGVSUG1Gam05S3JHcUQrNUF1Z29aTGV6RllQWVNVQUI5WUN1cStk?=
 =?utf-8?B?NDZkK25ZbUdncUlvZ1VkR3hVVXV5THUvL2JaMmZMMTlnbys0MU52N0Q3dTdx?=
 =?utf-8?B?QXpGeUZUT0loSE9GYlV0OEV0eEVaYnpweUhCTVdoNHRQVTFvNk5FbE9lc3VP?=
 =?utf-8?B?U3RpWisvOXdjNFd0R2ZVK3lMVkJvTHd4RXpPQ2lyZlpzeCtla01jYU56c1Fp?=
 =?utf-8?B?dnErc0E4b3RodHJ3ZU1vdy8xZTNFS3d5MitYaklDL051bHZveGZxOWM4OUFT?=
 =?utf-8?B?WCtROEJRMlducDRuZUNVdkZSUjBWT1ZjNzdUU3N1M2ZnUzByQWd3OXIxTENt?=
 =?utf-8?B?WWRabktNb0c4NEhNN3lmY1l1N0FRZ3BOOGE4Ymp0ZFY2MzRCdnZNb2prRlhD?=
 =?utf-8?B?clY1eUt1RlNueXdCQ0c0UnVFaUpMRGdaTGZQdWRrdDVUeXNMWU1zYzZzcXJs?=
 =?utf-8?B?d0k5ekM1U2hzWStxbVhONERlMjljQTBSL0t0NEVYL3NrcGhMUXpaZ01vYnY5?=
 =?utf-8?B?Qmp1V3VIaGxYZncvRnNOaThrTmRhd3U3SDFBNVBoZmI4ZkliRVFRREdHM24z?=
 =?utf-8?B?SXRxQkZEQ0p3dlN5eGYySTdVYVJPS3NtV2g0TVprQVBXQ01lZ2V3Wi82ekhV?=
 =?utf-8?B?MWtmd1dUYlh2VzZsTmliczV3cWVzUC9vN3JxYXhOMUtrS3k2ZWNaanJtUEJ1?=
 =?utf-8?B?M1F4ejVrYlBVdE1DVGZpNzhKWFZ6T2FsWkR5QTIyTEJRa0JwWHpwb21LVmJT?=
 =?utf-8?B?WC9ZbXNKdW9ya1Z4eHhIQ2ZRT05iQmJDSWE2RjhVdCtlZElycTUzdGxyUXlm?=
 =?utf-8?B?SG1aOElZOFNWY0ZrUmNQRWx6emErTytGSHc0Y2FSSW5xeE9lSHRqYytWanEx?=
 =?utf-8?B?UDlpN2lrOVluYzV3U05iM21jM1NuOTcrM0x2Wk1rVmIvVzBLTGsyQ1o0U2c3?=
 =?utf-8?B?UnF3anpjSFk5M0E1dTBtczNsTnEwYW5FWk5KV0wwVTJWaW5WbTRNdk1Qdmww?=
 =?utf-8?B?WG9mM0JZOGNRTS9TL2lXQ25vallXQnFnQXZyNi9jSXBLbEZLQzZ3N29ib2N2?=
 =?utf-8?B?azE2RFRxWTYxck9ES0NtNkw5bkh6WEFPbjF0WUZvU2JFQ3hvTjRtKzFJYWIz?=
 =?utf-8?B?SkRyc3RGVUxkRzhuZ0psUCtnR3dYd3pYU09Ta1dXcHlnQ0srTzJRQ0RQOEtv?=
 =?utf-8?B?VkhYVVYyZHZyK1pTNnc3VjFxTmNrRTRKZExFSEJiQmtKbURPMTVnb3g4azA2?=
 =?utf-8?B?NkFrN1pSU29rdWNad1VrSlpDK3hSanRrdUdxdldrMDNQU0N6M2pxcUpVUzlD?=
 =?utf-8?B?TnVFVHVmSW5KUFNqd0xXOE1UaHgzdEpHbWtxclFlemFkUVlrRDFncHRqczlM?=
 =?utf-8?B?Q25odGl0dFlDS3RZRjRwa3BGVFdsUmtDekNSRnJxdzArTVFKYTZEcU9XV0ZI?=
 =?utf-8?B?cE9zck9hbWtkUUcvTUk1REwrTE5JVEFIR0F6NVZxSng0ajVnbWJJVjh1ME9L?=
 =?utf-8?B?ZDJNN1Q2SW5RM3MxRnAxdTlYTXNjZjlvMzBhVnJMNWVGdXBucW5qZy9BbEFX?=
 =?utf-8?B?QjdRYjhFV3RwMWJMUHRCZWVVeDhCak4rYm5TNjVlVzR4M1l5c3ZYaGJlNWhK?=
 =?utf-8?B?VzZ2TW1iSjdZSkx5YTRiTzFzTHlML3BFS3E3ZkZ4REF5RWJwQ01RTlpBcEpu?=
 =?utf-8?Q?5taNigUqcN+vJvjU=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e6e0c9b1-c481-4eab-8513-08dea78dc5e1
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 May 2026 14:27:28.6169
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SkWBRFEbGfIAc/nb7bKcSV/MdpAbp9p1JHG5i+C2oIOholo9bRhsXkYJDIB+sAuHLkpkJzGgINBbC5OITBKtM8zAAxELS3fNZ8zP5v4wPb0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6346
X-purgate-ID: tlsNG-ebf023/1777645653-316483FF-15C3A693/0/0
X-purgate-type: clean
X-purgate-size: 2058

On 01/05/2026 3:17 pm, Dmytro Prokopchuk1 wrote:
> When booting Xen with CONFIG_USBAN=y and CONFIG_XSM_FLASK=y,
> UBSAN reports undefined behaviour in avc_dump_av() due to a left
> shift on a signed int:
>
> (XEN) [    1.104348] ================================================================================
> (XEN) [    1.105096] UBSAN: Undefined behaviour in xsm/flask/avc.c:184:14
> (XEN) [    1.106052] left shift of 1073741824 by 1 places cannot be represented in type 'int'
> (XEN) [    1.107546] Xen WARN at common/ubsan/ubsan.c:176
> (XEN) [    1.108295] ----[ Xen-4.21.1  arm64  debug=y ubsan=y  Not tainted ]----
> (XEN) [    1.108848] CPU:    0
> (XEN) [    1.109147] PC:     00000a00002f64fc ubsan.c#ubsan_epilogue+0x10/0xd4
> [...]
> (XEN) [    1.146320] Xen call trace:
> (XEN) [    1.146663]    [<00000a00002f64fc>] ubsan.c#ubsan_epilogue+0x10/0xd4 (PC)
> (XEN) [    1.147227]    [<00000a00002f7bc4>] __ubsan_handle_shift_out_of_bounds+0x1a0/0x290 (LR)
> (XEN) [    1.147868]
> (XEN) [    1.148177] ================================================================================
>
> This can be solved by making 'perm' an unsigned 32-bit type (u32).
>
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> Test CI pipeline:
> https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2493649109
> ---
>  xen/xsm/flask/avc.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/xen/xsm/flask/avc.c b/xen/xsm/flask/avc.c
> index 3d39e55cae..9c3ffdc070 100644
> --- a/xen/xsm/flask/avc.c
> +++ b/xen/xsm/flask/avc.c
> @@ -152,7 +152,8 @@ static void __attribute__ ((format (printf, 2, 3)))
>   */
>  static void avc_dump_av(struct avc_dump_buf *buf, u16 tclass, u32 av)
>  {
> -    int i, i2, perm;
> +    int i, i2;
> +    u32 perm;
>  
>      if ( av == 0 )
>      {

The fix is fine, but wants to be uint32_t.  (The existing code is
already inconsistent, and wants fixing up towards Xen's preferred style.)

Can be fixed on commit.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri May 01 15:01:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 May 2026 15:01:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1298752.1573825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIpMf-0005oX-GP; Fri, 01 May 2026 15:01:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1298752.1573825; Fri, 01 May 2026 15:01:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIpMf-0005oQ-DV; Fri, 01 May 2026 15:01:13 +0000
Received: by outflank-mailman (input) for mailman id 1298752;
 Fri, 01 May 2026 15:01:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wIpMd-0005oK-6e
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 15:01:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wIpMc-00BBdS-9Y
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 17:01:10 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69f4c033-5cb7-0a2a0a5109dd-0a2a45078a26-12
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 17:01:09 +0200
Received: from [52.101.83.19]
 (helo=GVXPR05CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69f4c034-229c-0a2a45070019-34655313756f-3
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 17:01:08 +0200
Received: from CWLP123CA0012.GBRP123.PROD.OUTLOOK.COM (2603:10a6:401:56::24)
 by AMBPR08MB11618.eurprd08.prod.outlook.com (2603:10a6:20b:735::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.20; Fri, 1 May
 2026 15:01:05 +0000
Received: from AMS0EPF000001B7.eurprd05.prod.outlook.com
 (2603:10a6:401:56:cafe::f7) by CWLP123CA0012.outlook.office365.com
 (2603:10a6:401:56::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.30 via Frontend Transport; Fri,
 1 May 2026 15:01:04 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001B7.mail.protection.outlook.com (10.167.16.171) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Fri, 1 May 2026 15:01:04 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AS2PR08MB8288.eurprd08.prod.outlook.com (2603:10a6:20b:557::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.18; Fri, 1 May
 2026 15:00:00 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9870.016; Fri, 1 May 2026
 15:00:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=dACI7pCUSe/QBgSqu/vxLR6wAY5Vl7D29BTqpKJA9SQ+8EUXaOywcjhnNLOXRuo+xAblLPJfFOXWfqTwUzvdOsFqrN4DMY6ZYuwPkeNfsH9mgt2fII2If1fb2056sJNop5G4JuUNnrkui91mgCfcjsqmpfx6EoxQmrtPocsQ/xxBsSvMkqx8PAv9JE1GPhZSYCsZb9rFvx16ejTjIpXbQKG1UnfYnZwAcZKUjhvHxN13ETMsN5zP1V+Q/hrX9rWvlyKGy3nRM42Xz6f3H1cz3QmCZNycPgzHxPovJX0PxRSphliNxKiaG7dAzcSimp4355pEUNIPwBF0DewF2/ATeQ==
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=1QeZMlERVZEBLSBXUlnnwQ5D1Zpa7DcRdDVOqv/XFQw=;
 b=psNualF/1reMgDe7+C7OXB6za4ORRQQOz5evT0rAI7Lx3AbNlw/HGtQht9aasHtxEcgiVpa55o//oK2zg1peqBb336sW+WV9wOMXCF5pX7a+mdXOmE2KPtFZ2EezWbV1uVj1TqIdfa45ROh3kXhKI/ZncnGM34g7gWLv55d5pNpeljnHivyek0DQTsrpzFKPThpg4Y5EepFj1rVPkmdpVqtSmqNtx1kCLjd1Ys6rm+FZCTWK+rYebOAnrVQc7Qv2rh0ualmmG2ggZF37NszdS16JGJ4/CA2qnnVL4MIr+Y9AEsSAalDt/cDr35jhS1vieEr2gd/9NLdwKDwKVF3M2A==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1QeZMlERVZEBLSBXUlnnwQ5D1Zpa7DcRdDVOqv/XFQw=;
 b=XiBl8gtBaFUETPR10F17kkTqFyDUj1CidpVq+pmlgiLzhm8CkxLSmHxiggKwf+Ua2kjo0l49zzVi0aQ5YJY9kiBfRx6R5pSo9fpVaqZDl+L7h6hJ3CgAZne5OOHuSkh8VKkWycycCFLbdr40acZ3u2neA/xHviN10lpr+imHLQ4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d69OLrlVoc2r5hCkcYmCmVUInZfR60jNF47GbPw22+IK/0CBgIFn8FPyhUnn0Q4Fg30hvQ46qMZhoS8TeeJV0xYuqpS9D1lCv/Kb8R6EPG2kRbG5FY/Q197MeNEzN8x4csVO1w5QfGOqp5tZ+LcFQQnl69/9LTJ0KMYfBgxKqxAzVhTHuG1ju5Z7D1z0ubuPRridNpD9qpoWKc42hQq6W4ix1dbiYmSE/0xwZ6FP+P/juWTcytI1RpCVOa3Ru0Bh7WRJ6RmA1NsYXuAne0gX1VLyCu58pSFCgC7QcUcP85G/rh2Kkw3Ry8Q2wpMPJjaNZWp0ZV1Gvz83ImMfA0xmaw==
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=1QeZMlERVZEBLSBXUlnnwQ5D1Zpa7DcRdDVOqv/XFQw=;
 b=roxTJdWuvIP5LpJ9VaXs7Cpc+EP/F3cSuoZ05rUCAUbuH5TfpU8GN1MxabYPGl8tDxp1qTB6t/4q5urFcf4sRQkhK38UGcJMDSwpOnsuhqvFjp5Q6R0abPxyQX1mYjMIeC7aCM4xPvG9xHfVGcCM1FDq715Lx1v18NQufnaV9WprdeTxvuPbuu/zcM5XtlnirD+4mntjWtl7oPgMWrShSGraJlShnycl9lYKUqkdBhLrBDelZ1P+ITqnxB7SR2oJYGTgSBOPkxk1aUdgnW0e/XyNYj1H16zaLbIZvCZJRCw3w2IbpOO0xA9XykcXh2VTVU4yqnYb0er9fHQgj4n1ww==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1QeZMlERVZEBLSBXUlnnwQ5D1Zpa7DcRdDVOqv/XFQw=;
 b=XiBl8gtBaFUETPR10F17kkTqFyDUj1CidpVq+pmlgiLzhm8CkxLSmHxiggKwf+Ua2kjo0l49zzVi0aQ5YJY9kiBfRx6R5pSo9fpVaqZDl+L7h6hJ3CgAZne5OOHuSkh8VKkWycycCFLbdr40acZ3u2neA/xHviN10lpr+imHLQ4=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Michal Orzel <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2 2/2] xen/arm: skip holes in physical address space when
 setting up frametable
Thread-Topic: [PATCH v2 2/2] xen/arm: skip holes in physical address space
 when setting up frametable
Thread-Index: AQHc2KCxQvKgH2FypkCKt5lrj84l4LX5RPgA
Date: Fri, 1 May 2026 15:00:00 +0000
Message-ID: <42E57541-C0A9-4E19-A8F1-825E83A856DB@arm.com>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-3-michal.orzel@amd.com>
In-Reply-To: <20260430125103.401811-3-michal.orzel@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AS2PR08MB8288:EE_|AMS0EPF000001B7:EE_|AMBPR08MB11618:EE_
X-MS-Office365-Filtering-Correlation-Id: e4efed46-2952-4c8b-31f4-08dea7927798
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 fxV0Du0kpCT4MK1Xudfi6XP8FL6PqRnweKaWslQmAcQPxO5BdjTk6asl6EgHnUrAr24dskqs/IR8DtihnOStPBSAS92zSRaDArafSUEJ7Fqb5V4Dszsw+mOA8HWPzvGHJSA0l5qLLgurAVz4uQPOfJT1pHiQtPmvITlqXdJAVebZIxfrLVYOvkgrVhEbvpXC4gm9MzxdugrWaqU7bMvE2gPW6jCzAHJs189gVn+MuBnVYURkgcUjwNaYWMCzoQfyTdWMjDKegt8+Q3hCmwvp9zD5AJdFjKe8yKcQqyAB9+OwBra/rSp9u0dH/GW12j1lRZgl42mwAXlMudzonlqGTmaOimzpiiLzUK9IY7NRBy6U1t6HwlTBdpzgBD5QkqBij6M2Hqoapwa2MdJMdzDQll68rMpYbkm1Hat3hFCbUv3CpMzgLoIgaBVMGyG7qPiibJdbNbv6vMhxFE5z2Jsnl6TppFUrwNOrYCP5dfP245RU9XTe91kZ4oGiKmvc9+NUr0e8TjPk97bjdp7ogtu7dzQHPcy8CNIhnMoV4VYdVisOpN8xNSsLQAWeVTGmQUc0uc2Z44Z5l3Fwc4JI1yxoUnFzenCjP1XlhjJK827ghQRPFlC2FOve231Nh7YWWOr9/JDy7ZZrY5kaS0k2dvvuz3AMEdligrbGfpNlWruUbNtA8qHoKZBAkiA+UKa5CaTxSKs/7nGT3MCCwPNqR1ykaGdXz7EiITvrNp8qC+s4bVgJ8KDJDtFDsv6hNktMoVPR
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <3CD3F7B12DFD9B45A754404F2846A7E1@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 gayoKDwFq57UB/31FNABWUPG1yC/eRiQqVCrQHNKdpbYnxkqOvfFXIWDRAdndXrQNizKJI4bkBCgLGJ27hek8DL7Z4lfv+mRXypVEzmxnyeMloxfUq0MtVi0i7eSAi90y40Vqs8L6x5SFZu2y9y+4ot+TPNvM/I3wb4nKqkZDWTgxeREyeYqr/N+bt/mLZBzPntXYFNaMv8W7WqPhCdf741CyCMKVmVVy2qpKH2p/9N2WN/VpaxcUorI/RphkzLQWSsgYPeJCcx+l3FsxOvBGnPITDYb/6q0trEzCj+y35M40SfMBCCbFyaGWBVKwPN0s7Xs+dNHTJ4vOFF4+r6kRg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8288
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001B7.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	268f19de-83d3-4c5d-5510-08dea792515e
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700016|35042699022|1800799024|82310400026|376014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	Uyc3h5s99JwWvQRKDS571pHe+8/R9GFL6JUXhcUoVj9jt0yfcPXCzqYSXhwVnrFOgKgwIqs7qEoPfJyxLXblKPPUxLOCIe6ZRUZGoVICYr2zbWvnxLLA/HZM/pX6xXRe5ZHkxBBpfoPXGvR6Npd2Hcgbn5ILQuKnsyBpE1/vCA+pIgP3Y59xkoUbfDvMV7V6DJCBggBmUQ9DZOa4gtdAPqzdDFosHMaaY9oor9wCBHIgR/9u19xjGcIV++xjUj84KLN9Q2C3/PrNSWao/lOXDw4j273maXUIgA7WPWSY45hUsmvfQzTGXT6V8d020WRmUn4rgSvlPHNd24kOp4pmZv7hB2huVP0BYZ3qsXab5wQLhicVAQQUVAhuC8PbH1qeIYOs3Mn4rDhB0fWXR3FaceUIvdksZ1OIVnW7tNB5tq6fHBBpYhGL9RHjzOxeKGZp6ivmO+YU1S+wTXaEIsg6Lnk4GWmfkDjSTOOrdKz2mpGXq1cV4Cn5XIxNfAeL+IUyRkLW+xEDmFI+AOI1QGikKEwgS5+RHWAZEZT2MVNTTiICpDfD5U0/QeuvduSuqA3NQ5ZQlvwkfDVFCIkND+F9Y8gOItgsHUuAX2budx4b7bKACEVwnEMKpFZSyDPUtCtTJ/qrsH3V6lDdweVa79XiqwxYD/QwNn5Y1TQdn3/W42s8HbnzcIC1381zNdqUX9IyjZMSFlr0uW4fX2RhRDnV4Ba0rmhMU/SJrzhSoZ1sPPA=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(36860700016)(35042699022)(1800799024)(82310400026)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ZQY+dv3UQ9LnUtxi/1bedp1s45wl96SpDNcyfuMAdmv5Y2jFh17l547axSK0nZfcOvKHNyK5nBsP7TtMeCrjBUV40lKfcIW27nZgMfLsWm+ELzWZ/4DwBfB8uVJMnuAmIGXIizYyLzSfIiPCLeQoO2hT8s6BZAb9ewl8pnVpf5ykotHtCjJD5jUQEfQsDtHxyeAmbVQ7gJwwe/473QMnI2P44NIrkrwWc7Zku2qn1ehoxqJ0cSap7G/yICr0jxf8E4+PHdFtKXzRF1fA0CoOVWPfS/ZQtjeYJ72M0YdBmpdmH0AElBpYl4vjIRVC4WkYaKizdqVkFwb/KhwUlqlsBqU9zwDCAk7uZz4qVaLMUnXSw8Cx0YQru8fCdGCCdAqDoVy8Xxhvn2sPiqUOjhw0gsX5dyG5U7zIO5pS7KX+eENfckjyCDJfkvmvcqMGz2iA
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 May 2026 15:01:04.5858
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e4efed46-2952-4c8b-31f4-08dea7927798
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001B7.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR08MB11618
X-purgate-ID: tlsNG-ef75cf/1777647668-ADF6EC48-1D2C6F8F/0/0
X-purgate-type: clean
X-purgate-size: 3720

SGkgTWljaGFsLA0KDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vbW0uYyBiL3hlbi9hcmNo
L2FybS9tbS5jDQo+IGluZGV4IGZhZWYwZWZiMzI3Yy4uNzI5N2NjYTAxNTUxIDEwMDY0NA0KPiAt
LS0gYS94ZW4vYXJjaC9hcm0vbW0uYw0KPiArKysgYi94ZW4vYXJjaC9hcm0vbW0uYw0KPiBAQCAt
NjMsNyArNjMsNyBAQCB2b2lkIF9faW5pdCBzZXR1cF9tbSh2b2lkKQ0KPiANCj4gICAgIHNldHVw
X21tX2hlbHBlcigpOw0KPiANCj4gLSAgICBzZXR1cF9mcmFtZXRhYmxlX21hcHBpbmdzKHJhbV9z
dGFydCwgcmFtX2VuZCk7DQo+ICsgICAgaW5pdF9mcmFtZXRhYmxlKHJhbV9zdGFydCk7DQoNCkkg
dGhpbmsgdGhhdCBub3cgcmFtX2VuZCBhbmQgYmFua19lbmQgY2FuIGJlIHJlbW92ZWQNCg0KPiAN
Cj4gICAgIGluaXRfc3RhdGljbWVtX3BhZ2VzKCk7DQo+ICAgICBpbml0X3NoYXJlZG1lbV9wYWdl
cygpOw0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL21tdS9tbS5jIGIveGVuL2FyY2gvYXJt
L21tdS9tbS5jDQo+IGluZGV4IDY2MDRmM2JmNGU2YS4uZGZjODg4YzhlZTBlIDEwMDY0NA0KPiAt
LS0gYS94ZW4vYXJjaC9hcm0vbW11L21tLmMNCj4gKysrIGIveGVuL2FyY2gvYXJtL21tdS9tbS5j
DQo+IEBAIC02LDE4ICs2LDQ1IEBADQo+ICNpbmNsdWRlIDx4ZW4vbW0uaD4NCj4gI2luY2x1ZGUg
PHhlbi9tbS1mcmFtZS5oPg0KPiAjaW5jbHVkZSA8eGVuL3BkeC5oPg0KPiArI2luY2x1ZGUgPHhl
bi9zaXplcy5oPg0KPiAjaW5jbHVkZSA8eGVuL3N0cmluZy5oPg0KPiANCj4gLS8qIE1hcCBhIGZy
YW1lIHRhYmxlIHRvIGNvdmVyIHBoeXNpY2FsIGFkZHJlc3NlcyBwcyB0aHJvdWdoIHBlICovDQo+
IC12b2lkIF9faW5pdCBzZXR1cF9mcmFtZXRhYmxlX21hcHBpbmdzKHBhZGRyX3QgcHMsIHBhZGRy
X3QgcGUpDQo+ICtzdGF0aWMgdm9pZCBfX2luaXQgaW5pdF9mcmFtZXRhYmxlX2NodW5rKHVuc2ln
bmVkIGxvbmcgcGR4X3MsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGxvbmcgcGR4X2UpDQo+IHsNCj4gLSAgICB1bnNpZ25lZCBsb25nIG5yX3Bk
eHMgPSBtZm5fdG9fcGR4KG1mbl9hZGQobWFkZHJfdG9fbWZuKHBlKSwgLTEpKSAtDQo+IC0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3RvX3BkeChtYWRkcl90b19tZm4ocHMpKSArIDE7
DQo+IC0gICAgdW5zaWduZWQgbG9uZyBmcmFtZXRhYmxlX3NpemUgPSBucl9wZHhzICogc2l6ZW9m
KHN0cnVjdCBwYWdlX2luZm8pOw0KPiAtICAgIG1mbl90IGJhc2VfbWZuOw0KPiAtICAgIGNvbnN0
IHVuc2lnbmVkIGxvbmcgbWFwcGluZ19zaXplID0gZnJhbWV0YWJsZV9zaXplIDwgTUIoMzIpID8g
TUIoMikNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA6IE1CKDMyKTsNCj4gKyAgICB1bnNpZ25lZCBsb25nIG5yX3BkeHMg
PSBwZHhfZSAtIHBkeF9zOw0KPiArICAgIHVuc2lnbmVkIGxvbmcgY2h1bmtfc2l6ZSA9IG5yX3Bk
eHMgKiBzaXplb2Yoc3RydWN0IHBhZ2VfaW5mbyk7DQo+ICsgICAgdW5zaWduZWQgbG9uZyB2aXJ0
Ow0KPiAgICAgaW50IHJjOw0KPiArICAgIG1mbl90IGJhc2VfbWZuOw0KPiArDQo+ICsgICAgLyoN
Cj4gKyAgICAgKiBJbi1sb29wIGNodW5rcyBzcGFuIHdob2xlIFBEWCBncm91cHMsIHdoaWNoIGFy
ZSBhbHdheXMgcGFnZS1zaXplDQo+ICsgICAgICogYWxpZ25lZC4gVGhlIGxhc3QgY2h1bmsgZW5k
aW5nIGF0IG1heF9wZHggbWF5IG5vdCBiZSwgc28gcm91bmQgdXAuDQo+ICsgICAgICovDQo+ICsg
ICAgY2h1bmtfc2l6ZSA9IFJPVU5EVVAoY2h1bmtfc2l6ZSwgUEFHRV9TSVpFKTsNCj4gKw0KPiAr
ICAgIC8qDQo+ICsgICAgICogQWxpZ24gdGhlIGFsbG9jYXRpb24gdG8gdGhlIGNvbnRpZ3VvdXMg
bWFwcGluZyBzaXplIHNvIHRoYXQNCj4gKyAgICAgKiBtYXBfcGFnZXNfdG9feGVuKCkgY2FuIHVz
ZSB0aGUgY29udGlndW91cyBiaXQuDQo+ICsgICAgICovDQo+ICsgICAgYmFzZV9tZm4gPSBhbGxv
Y19ib290X3BhZ2VzKGNodW5rX3NpemUgPj4gUEFHRV9TSElGVCwNCj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTUIoMzIpID4+IFBBR0VfU0hJRlQpOw0KDQpUaGlzIGZpeGVkIDMy
TWIgYWxpZ25tZW50IGZlZWxzIGEgYml0IG1vcmUgdGhhbiB3ZSBuZWVkLCBJZiBmb3IgZXhhbXBs
ZSB0aGUNCmNodW5rIGlzIGxlc3MgdGhhbiAzMk1iPyBJZiB3ZSBoYWQgc29tZSB2YXJpYWJsZSBh
bGlnbm1lbnQgZm9yIGNodW5rcyBsZXNzDQp0aGFuIDMyTUIgd2Ugd291bGQgbWF5YmUgaGVscCBh
bGxvY19ib290X3BhZ2VzIGpvYiwgaW4gdGhlIGVuZCBpZiB0aGUgY2h1bmsNCmlzIGxlc3MgdGhh
biAzMk1iIGl0IHdvbuKAmXQgZ2V0IHRoZSBjb250aWd1b3VzIGJpdCBhbnl3YXkuDQoNCkJ1dCBJ
4oCZbSBmaW5lIGFsc28gaWYgeW91IGxlYXZlIGl0IGFzIGl0IGlzLg0KDQpXaXRoIHRoZSBhYm92
ZSBmaXhlZDoNCg0KUmV2aWV3ZWQtYnk6IEx1Y2EgRmFuY2VsbHUgPGx1Y2EuZmFuY2VsbHVAYXJt
LmNvbT4NClRlc3RlZC1ieTogTHVjYSBGYW5jZWxsdSA8bHVjYS5mYW5jZWxsdUBhcm0uY29tPg0K
DQpJ4oCZdmUgYWxzbyB0ZXN0ZWQgb24gQXJtNjQgTU1VLCBBcm0zMiBNTVUsIEFybTY0IE1QVSB2
aXJ0dWFsIHBsYXRmb3Jtcy4NCg0KQ2hlZXJzLA0KTHVjYQ0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri May 01 17:08:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 May 2026 17:08:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1298809.1573834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIrLg-0005oj-Bg; Fri, 01 May 2026 17:08:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1298809.1573834; Fri, 01 May 2026 17:08:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIrLg-0005ob-6j; Fri, 01 May 2026 17:08:20 +0000
Received: by outflank-mailman (input) for mailman id 1298809;
 Fri, 01 May 2026 17:08:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wIrLe-0005oV-RR
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 17:08:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wIrLc-009ywS-ID
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 19:08:18 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69f4ddbe-2eae-0a2a0a5409dd-0a2a4504adaa-46
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 19:08:17 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69f4de00-1dec-0a2a45040019-aceafc1fbdb6-3
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 19:08:17 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id A1E0C419CE;
 Fri,  1 May 2026 17:08:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 20073C2BCB4;
 Fri,  1 May 2026 17:08:15 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1777655295;
	bh=XcC+ppb7QWoUQwvJACnJzBK0iM4QcyPixryI8dPC6M0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=iZQqXWfkJ7G/uX0MQD43Cy2mng+g7WQ6MeFXlQkzUb5bXXAxv4lYU5yunWFJMq7YB
	 8dIcGhNMyig1jlYOtsC0cID+ztrgyj+efmnVQMIlqA8xGCc7fKvByNSQIKnohxPhqp
	 mpQNijy4yT0DGYH4aljQE/W5PuLtsEvLkD4Jy2M+JzOQXKEJsv4kPwkdoEIhrzCRKE
	 lJL04CGQcmLHjM3og8wgP4RTlxs3jeKfoIPe93LijZg3KH3c541wrX8Ud4Q7rJs3BT
	 qPEebeq541mcid6qhU5DLITB8VnVJn1afS9H3M6Av0f3mgXUzOHA542m+AYk8PPz2X
	 L4/7D6CYej7/A==
Date: Fri, 1 May 2026 10:08:14 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <Luca.Fancellu@arm.com>
cc: Michal Orzel <michal.orzel@amd.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <Bertrand.Marquis@arm.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Timothy Pearson <tpearson@raptorengineering.com>, 
    Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
In-Reply-To: <9CEA7814-0ED6-401A-A5E9-2361278D9859@arm.com>
Message-ID: <alpine.DEB.2.22.394.2605011008010.512397@ubuntu-linux-20-04-desktop>
References: <20260430125103.401811-1-michal.orzel@amd.com> <20260430125103.401811-2-michal.orzel@amd.com> <9CEA7814-0ED6-401A-A5E9-2361278D9859@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1693967578-1777655295=:512397"
X-purgate-ID: tlsNG-ebf023/1777655297-28F753FF-84C3535E/0/0
X-purgate-type: clean
X-purgate-size: 622

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1693967578-1777655295=:512397
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Fri, 1 May 2026, Luca Fancellu wrote:
> The changes looks good to me, for the Arm and common part:
> 
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com> # arm, common
> 
> I’ve also tested on Arm64, Arm32, x86_64 with virtual platforms.

Acked-by: Stefano Stabellini <sstabellini@kernel.org>
--8323329-1693967578-1777655295=:512397--


From xen-devel-bounces@lists.xenproject.org Fri May 01 17:08:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 May 2026 17:08:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1298812.1573843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIrM1-00068a-Hj; Fri, 01 May 2026 17:08:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1298812.1573843; Fri, 01 May 2026 17:08:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIrM1-00068T-Eg; Fri, 01 May 2026 17:08:41 +0000
Received: by outflank-mailman (input) for mailman id 1298812;
 Fri, 01 May 2026 17:08:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wIrLz-00065N-Ni
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 17:08:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wIrLx-009ywS-IG
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 19:08:39 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69f4ddd7-2eae-0a2a0a5409dd-0a2a450c8d3e-34
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 19:08:39 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69f4de16-62f1-0a2a450c0019-ac6904feb828-3
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 19:08:38 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 451E36011F;
 Fri,  1 May 2026 17:08:37 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BA466C2BCB4;
 Fri,  1 May 2026 17:08:36 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1777655317;
	bh=ZKvnwmGodYs6HnVjN+oPgadh7nyz/qEnXV9PluO6LT8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=GgjuUTd8WAeB5/wQ/e4MQnFtEMFztzkxlg6PyS9qCh7wZXAB541Lo05jdMLhczG67
	 99Yp6I7awijWAdA5KD6XR/7ew6uBmMSHm1Q1SeDYGX5+10zrE2bG8o2e9Xschlk7jv
	 blVpN5KS4WG6CQTZGuVxXUfehnlEouvMzqryTl08Lfym8FrPodc7gJAR3zGnpDSj9L
	 Jb9cPatUY2YVfkhbL/xHNCjACXjjwLvGaFrDZsiPzNoHBUnRr0eBdzEfzJID8aSYA+
	 aOA3s8xhGFpd9LAcqN2n+Gc+k3GLH24laCntiGRM4sU0r7q5drO997qvmvaYTerI0c
	 7YB5YFkZyfyzA==
Date: Fri, 1 May 2026 10:08:36 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <Luca.Fancellu@arm.com>
cc: Michal Orzel <michal.orzel@amd.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <Bertrand.Marquis@arm.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2 2/2] xen/arm: skip holes in physical address space
 when setting up frametable
In-Reply-To: <42E57541-C0A9-4E19-A8F1-825E83A856DB@arm.com>
Message-ID: <alpine.DEB.2.22.394.2605011008180.512397@ubuntu-linux-20-04-desktop>
References: <20260430125103.401811-1-michal.orzel@amd.com> <20260430125103.401811-3-michal.orzel@amd.com> <42E57541-C0A9-4E19-A8F1-825E83A856DB@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1916185994-1777655317=:512397"
X-purgate-ID: tlsNG-d25034/1777655319-F7811CF5-F83D828C/0/0
X-purgate-type: clean
X-purgate-size: 985

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1916185994-1777655317=:512397
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Fri, 1 May 2026, Luca Fancellu wrote:
> This fixed 32Mb alignment feels a bit more than we need, If for example the
> chunk is less than 32Mb? If we had some variable alignment for chunks less
> than 32MB we would maybe help alloc_boot_pages job, in the end if the chunk
> is less than 32Mb it won’t get the contiguous bit anyway.
> 
> But I’m fine also if you leave it as it is.
> 
> With the above fixed:
> 
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> Tested-by: Luca Fancellu <luca.fancellu@arm.com>
> 
> I’ve also tested on Arm64 MMU, Arm32 MMU, Arm64 MPU virtual platforms.

Acked-by: Stefano Stabellini <sstabellini@kernel.org>
--8323329-1916185994-1777655317=:512397--


From xen-devel-bounces@lists.xenproject.org Fri May 01 19:10:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 May 2026 19:10:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1298878.1573852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wItFy-00069I-ND; Fri, 01 May 2026 19:10:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1298878.1573852; Fri, 01 May 2026 19:10:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wItFy-00069B-JU; Fri, 01 May 2026 19:10:34 +0000
Received: by outflank-mailman (input) for mailman id 1298878;
 Fri, 01 May 2026 19:10:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1wItFx-000695-0l
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 19:10:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wItFv-00Bf5u-UY
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 21:10:31 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69f4faa7-e002-0a2a0a5209dd-0a2a450891a0-0
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 21:10:31 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69f4faa7-63b5-0a2a45080019-d1558033e02a-3
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 21:10:31 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-488b0e1b870so35222345e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 12:10:31 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a82308d77sm170781835e9.14.2026.05.01.12.10.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 May 2026 12:10:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1777662631; x=1778267431; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=6aloAp7jHnwZ3WXl4y8dNSH+C8JTIu98fW6pgEvDoyk=;
        b=MrpYICRWH+glcx43E3o4WWDFW35MwCs3nei7y4a2DNjQILvJ1VAfS9eY0vZtn16sc6
         oklq/sJgiooxr1W/Qoz7BHqEgUqhW9cMzC22wFn1MoIfQKagX0Iz2BKwKawDnGWin0zG
         7lf8zKjKNgJpPMBCNMx+TYJHg6jEdUKcn2lTU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777662631; x=1778267431;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6aloAp7jHnwZ3WXl4y8dNSH+C8JTIu98fW6pgEvDoyk=;
        b=np4KkM+3XOd3im+CwrEuNBHt2KqxpF9QFBn1FwUz54qKZ+K/47z5h0FyDcc3drdQe6
         QWH5WNqGEI1YFk0PihsRnQaz6pRgZzTtfoiOpAVA8AUqSO4SMa1IQIHiwS7PFZ3M7KMX
         h/yWaYKQKdikanUzLkyi9e22+zy2jqak/IeAb77zJRpwxWrRGjStP/Ymel871z/AY2mS
         YwrWkon2eybLHOrOjSibozvCC7q4wu0OUqTZqsOfzTTrTJzUskiGHxfo1p3+7xmWt4H6
         GFKATc6MR5qSXBLwUgWWI/0GSZ6cWK3MN3XX7nEwcneQQ2CCDH3Cra/HnzNW8vOgpFeI
         0Yhg==
X-Gm-Message-State: AOJu0YxOW3um6WJ2p4V9hf5ZSqubAiQClEDlv+83BUDVt0NQdpk4W2Y1
	hHEtGWFBlvwQ8zQBbLvQD3mb83CEFpIRRmocyLJ9Q/eFOiqmZaQxmhJxdIdChAzSvDQdYGYqGXx
	Na/Od
X-Gm-Gg: AeBDievIpviGp64p20h+JuvxNoO7vzcUzF7UYAqXl9ruzBqs9J902KPQbe2bBOfaOVU
	+/hRVqp2tJa0PD+vsa4LjCyO7XqslrKcrIt05MI3Z8UijZyiLKavQwZvTGnGVmJuNtM+DxVyick
	QpZeUx5BHa4eiywWx28jmpCEAWFmxNvCMSloL8NrUPJNxAOdSP5GlHOHwJLkoNUH8O+pdD7lEYG
	OCK74RMUM0WSIhlxuARHJEmPlix8BytDGSkTNw8DEBSBA900GIpYK94vqqjxrfAGn0yPciVAE+q
	32eBdj9Edz1F34LDIaAuIEFozSjBTWp5RP4nXjKWwm+m8LsAmsvJf68W36TUaynYa7eW1tBzdP6
	FOaao79YZnNOjIlfwlyb8SolY7UE7MkW8QknLeCu0MW70bKT3bpqlym/ly2qLB0e0s/1rSgBnX0
	pupO3d7VkVc9e6tBoOu+26E9ux9S5szjmj3hntci0JLOFpPa8ojFodRhGB6EYa5IYRF0vQhKt8x
	4PwpaLR6MD/kyM=
X-Received: by 2002:a05:600c:608a:b0:488:acbc:b2e with SMTP id 5b1f17b1804b1-48a9865d2ddmr5509405e9.17.1777662630692;
        Fri, 01 May 2026 12:10:30 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH] x86/boot: Disable interrupts when establishing SSP
Date: Fri,  1 May 2026 20:10:28 +0100
Message-Id: <20260501191028.1250225-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1777662631-C0D63DB1-924C0444/0/0
X-purgate-type: clean
X-purgate-size: 4465

Gitlab CI reported a crash on boot on Alder Lake hardware.  The bug is years
old, making it an incredibly rare occurance:

  (XEN) *** DOUBLE FAULT ***
  (XEN) ----[ Xen-4.22-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
  (XEN) CPU:    0
  (XEN) RIP:    e008:[<ffff82d04077bbc4>] arch/x86/setup.c#reinit_bsp_stack+0xfa/0x160
  (XEN) RFLAGS: 0000000000010202   CONTEXT: hypervisor
  (XEN) rax: 0000000000000007   rbx: ffff83049a4b0000   rcx: 00000000000006a2
  (XEN) rdx: 0000000000000000   rsi: 0000000000000000   rdi: 0000000000000000
  (XEN) rbp: ffff83049a4b7f00   rsp: ffff83049a4b7ef8   r8:  ffff830497e47000
  (XEN) r9:  00000000ffffffff   r10: 00000000900c2121   r11: 000000009a392956
  (XEN) r12: ffff830497e47000   r13: ffff830497e49f40   r14: 0000000000000000
  (XEN) r15: ffff82d0407dad10   cr0: 0000000080050033   cr4: 0000000000f526e0
  (XEN) cr3: 0000000043c16000   cr2: fffffffffffffffc
  (XEN) fsb: 0000000000000000   gsb: 0000000000000000   gss: 0000000000000000
  (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: e008
  (XEN) Xen code around <ffff82d04077bbc4> (arch/x86/setup.c#reinit_bsp_stack+0xfa/0x160):
  (XEN)  00 b9 a2 06 00 00 0f 30 <80> 3d 71 26 f1 ff 00 74 3e 48 8d 93 f8 5f 00 00
  (XEN) Valid stack range: ffff83049a4b6000-ffff83049a4b8000, sp=ffff83049a4b7ef8, tss.rsp0=ffff83049a4b7fb0
  (XEN) No stack overflow detected. Skipping stack trace.
  (XEN)
  (XEN) ****************************************
  (XEN) Panic on CPU 0:
  (XEN) DOUBLE FAULT -- system shutdown
  (XEN) ****************************************

This is on the instruction boundary after enabling CET (writing MSR_S_CET) and
prior to establishing SSP.  Despite identifying this as a critical window
where any fault was deadly (the CPU tries to push a shadow stack frame at 0,
hence the CR2 value wrapping around to the top of the address space), I
clearly forgot that this meant interrupts too, which are enabled.

Along with regular interrupts, NMIs are a problem.  Unlike other cases needing
NMI safety, we can't use a self NMI and callback, as the stack needs to be
empty at the point of enabling Shadow Stacks.

Disable interrupts, and turn off the watchdog if it's configured.

Note that watchdog_{en,dis}able() do not work here.  They cause the watchdog
NMI to be ignored; they do not inhibit the generation of NMIs.

Fixes: b60ab42db2f0 ("x86/shstk: Activate Supervisor Shadow Stacks")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <jbeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Teddy Astie <teddy.astie@vates.tech>

The only way I can think of doing this in NMI context is to have the NMI LRET
off the NMI stack back to the interrupted context.  But this is horrible to
arrange, not to mention different between IDT and FRED.

Also, the {disable,setup}_lapic_nmi_watchdog() API is horrible but I don't
have time to make it sane right now, and this needs backporting a long way.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2494069238
---
 xen/arch/x86/setup.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index d041cbd5f6f1..95ac36beab37 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -908,6 +908,19 @@ static void __init noreturn reinit_bsp_stack(void)
 
     if ( cpu_has_xen_shstk )
     {
+        bool watchdog = (nmi_watchdog == NMI_LOCAL_APIC);
+
+        /*
+         * Between enabling CET and establishing SSP, any fault or interrupt
+         * is fatal.  We must arrange for none to happen.
+         *
+         * TODO: Figure out how to perform CET enablement in NMI context,
+         *       given the constraint that the stack must be empty.
+         */
+        if ( watchdog )
+            disable_lapic_nmi_watchdog();
+        local_irq_disable();
+
         wrmsrl(MSR_S_CET, xen_msr_s_cet_value());
 
         /*
@@ -932,6 +945,13 @@ static void __init noreturn reinit_bsp_stack(void)
         }
         else
             asm volatile ( "setssbsy" ::: "memory" );
+
+        local_irq_enable();
+        if ( watchdog )
+        {
+            nmi_watchdog = NMI_LOCAL_APIC;
+            setup_apic_nmi_watchdog();
+        }
     }
 
     reset_stack_and_jump(init_done);

base-commit: 61f957d48c78df6c5254b6f54d6170d3bd3d717e
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 01 21:38:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 May 2026 21:38:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1298928.1573861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIvZ8-00083j-QX; Fri, 01 May 2026 21:38:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1298928.1573861; Fri, 01 May 2026 21:38:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIvZ8-00083c-Mk; Fri, 01 May 2026 21:38:30 +0000
Received: by outflank-mailman (input) for mailman id 1298928;
 Fri, 01 May 2026 21:38:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1wIvZ7-00083W-Gr
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 21:38:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wIvZ5-00AT3D-AC
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 23:38:28 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69f51d33-2eae-0a2a0a5409dd-0a2a4502dc1a-16
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 23:38:28 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69f51d54-af86-0a2a45020019-d1558035d46c-3
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 23:38:28 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-4852a9c6309so18648615e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 14:38:28 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a822c3422sm137436495e9.8.2026.05.01.14.38.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 May 2026 14:38:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1777671508; x=1778276308; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=CcrVhPKL924+HX0LUqaF9tbfBrxLJHzpVSLiSNTCUME=;
        b=WeUPjyZg3muJqydiM/zUlYgvCYOGDx8H9Zr0v0SNUp9MnDX6ZpHwdbHS97ZRVmajTp
         9gnugnBr4bJvdW4Um5zCXt0GPtUBsgJfICF0LcxEOQZFMeU1zJL389zGpQ9jwriuyMpR
         /u4rAJXLE+weFViyY8aJDBadgctruA98QuAJc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777671508; x=1778276308;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CcrVhPKL924+HX0LUqaF9tbfBrxLJHzpVSLiSNTCUME=;
        b=aHftFpdk02x0dFGrAWJfNIfdWe8w7JpFX0FX/j8JfXc2fK5zuYZ3WcBgvNrFd0W/Nu
         FS1UVCGKc4xzBQTWlml+t7KPLtkjSxvqas7Mp1NyeNh6cJWQzkGWnmy6+yJpxMQUhrza
         vvk8+8f2vmQ73kzpEhUG6lz2dq6u2nrDXTql8xDrUI+MqgNCA/0CjB/KSDBQhaPA5Gl6
         BCXUuOB4bPaYFPIEEoFuHu3WdVHIKl73XdBTbvJFCy7+nQjV7lMCnXu/O89q/DPN8JGw
         xNTKw4pVC9m9cEHBlAmFl26gVlU54fwxlelFHUsqPk0hHjEWlixp5UtLV+My+2UZzsyK
         YagQ==
X-Gm-Message-State: AOJu0YzkHPB1JcG+4bSryRC40/ztzZmj7iglHMBMrMoSB6aEVedX9BaV
	rHB9j972MHAevAH8JckpCEZXGoycSdfTWqG+wq3UonlfrHPze5urHUyII6DXDHkxck2gPi9N9Bj
	2g4RD/yA=
X-Gm-Gg: AeBDietmFabkXjZbNLT+8o+fpewcR/H3dM+2mEQLPuvhJQZ/F0bpNp+pCgb8iLBnFPu
	yieluak7f0LeDo0hNqeszqi8ICEkQl6wdN5R/vTi3bZPIxYKvgHnVnYSPKvaC/aQbOIXdCjqKE8
	rq5c9HVymol8/AEvW3RNQATi4Ir+xTPjjoWRmj2s79XAWb85G68eV5hwt44mlyKqXDK0+tk6Y0e
	Qd4G/9lre+SOAkvw0hvXCPC5WqociGENBn00/IukohFifNoR77iPwSakYBBxTOnaFZPHm1bgGmk
	U3fVNq22y9Xs3o3Hf7vBZQGwIx2zNu46NyWO8tSUDn8Xe/C/uoxzc9JYi1UegF4Ne3/21CAP/42
	/++5SGW8QIscr/G5hMBFPbSmsqXHen5h292r3NfcgJc6egaQSJPijjX/nL3OlXRiKlqJFmR94l+
	86djlRvdws6MwZpYuiH1UF5AaH3Jlla9plr+UCXP5Ur6pBSl4iz6qYXKnhM6I2nL5pbknO1QnRE
	xcU2HfZY2cV2UQ=
X-Received: by 2002:a05:600c:a118:b0:489:ecee:c4ef with SMTP id 5b1f17b1804b1-48a9865daacmr7747625e9.13.1777671507797;
        Fri, 01 May 2026 14:38:27 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH] x86/svm: Always sync guest CR2 on VMExit
Date: Fri,  1 May 2026 22:38:26 +0100
Message-Id: <20260501213826.1291860-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1777671508-894CD161-47778207/0/0
X-purgate-type: clean
X-purgate-size: 1761

Under SVM, there are two copies of guest CR2.  One is v->arch.hvm.guest_cr[2]
and one is in the VMCB.

Xen doesn't intercept CR2 accesses, so this mostly goes unnoticed; hardware
loads and saves the guest CR2 across VMRUN/VMExit.

For HAP guests (where #PF is not intercepted, and therefore we don't typically
inject #PF either), this causes the guest CR2 value to be lost on migrate.  As
migration is cooperative and not done from the #PF handler, this also goes
unoticed by guests.

It also means that an emulated MOV-from-CR2 reads a stale value.

Reported-by: Stefano Stabellini <sstabellini@kernel.org>
Fixes: d1bd157fbc9b ("Big merge the HVM full-virtualisation abstractions.")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <jbeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Teddy Astie <teddy.astie@vates.tech>
CC: Stefano Stabellini <sstabellini@kernel.org>

It also also works around the QEMU bug that triggered the investigion, where
the CR2 intercepts trigger despite Xen requesting CR2 not to be intercepted.
---
 xen/arch/x86/hvm/svm/svm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index ced616684732..f49d2ebbfdd5 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -2505,6 +2505,7 @@ void asmlinkage svm_vmexit_handler(void)
     hvm_sanitize_regs_fields(
         regs, !(vmcb_get_efer(vmcb) & EFER_LMA) || !(vmcb->cs.l));
 
+    v->arch.hvm.guest_cr[2] = vmcb_get_cr2(vmcb);
     if ( paging_mode_hap(v->domain) )
         v->arch.hvm.guest_cr[3] = v->arch.hvm.hw_cr[3] = vmcb_get_cr3(vmcb);
 

base-commit: 61f957d48c78df6c5254b6f54d6170d3bd3d717e
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 01 21:44:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 May 2026 21:44:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1298936.1573870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIvem-0001AD-Cz; Fri, 01 May 2026 21:44:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1298936.1573870; Fri, 01 May 2026 21:44:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIvem-0001A6-A6; Fri, 01 May 2026 21:44:20 +0000
Received: by outflank-mailman (input) for mailman id 1298936;
 Fri, 01 May 2026 21:44:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wIvek-00019z-Mt
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 21:44:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wIvej-00GKNo-GX
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 23:44:17 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69f51ea0-bab6-0a2a0a5309dd-0a2a45068022-6
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 23:44:16 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69f51eb0-7371-0a2a45060019-ac6904fea5dc-3
 for <xen-devel@lists.xenproject.org>; Fri, 01 May 2026 23:44:16 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 57B2C6011F;
 Fri,  1 May 2026 21:44:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D1944C2BCB4;
 Fri,  1 May 2026 21:44:14 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1777671855;
	bh=A+LTyI3f9+3qLvGzTxEcV/j8RwMj7X0W1mRk/y3DSSc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fBAC/kDmJh5cjHCnsCdoCU7jq1jyYKJk94Ya6jhstFoSN7iM9KcovMMXggX3czxM6
	 CznZbEPh/vCEJprzEVtQBziK/xNEX2ltxGNCW3XRxkAFa5q0eZu0+h44eL4GVF1s92
	 aBTI11hfdWfe+AT8vw6dV4GFvN5b0hsducdeQ1hp8khD4XJRgWiPLVYFNIBwvzLyTk
	 X5RYf7KPtm4+qoG0zCVD0mPgxAl7Q3D5eoqYl2Q/yj2XUlhH7nKSy4jfGSVdWZDyvD
	 zuafWS0YTLO+8/H9K0e/uD/f+3Pw5R/0GfhKUvCUrtmBgHpJYdCWAXC8+7miugC5AH
	 Wqjb2IV+hVSfA==
Date: Fri, 1 May 2026 14:44:14 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Andrew Cooper <andrew.cooper3@citrix.com>
cc: Xen-devel <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86/svm: Always sync guest CR2 on VMExit
In-Reply-To: <20260501213826.1291860-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2605011443580.512397@ubuntu-linux-20-04-desktop>
References: <20260501213826.1291860-1-andrew.cooper3@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-528818502-1777671855=:512397"
X-purgate-ID: tlsNG-16d1c6/1777671856-52974D75-F130C741/0/0
X-purgate-type: clean
X-purgate-size: 2268

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-528818502-1777671855=:512397
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Fri, 1 May 2026, Andrew Cooper wrote:
> Under SVM, there are two copies of guest CR2.  One is v->arch.hvm.guest_cr[2]
> and one is in the VMCB.
> 
> Xen doesn't intercept CR2 accesses, so this mostly goes unnoticed; hardware
> loads and saves the guest CR2 across VMRUN/VMExit.
> 
> For HAP guests (where #PF is not intercepted, and therefore we don't typically
> inject #PF either), this causes the guest CR2 value to be lost on migrate.  As
> migration is cooperative and not done from the #PF handler, this also goes
> unoticed by guests.
> 
> It also means that an emulated MOV-from-CR2 reads a stale value.
> 
> Reported-by: Stefano Stabellini <sstabellini@kernel.org>
> Fixes: d1bd157fbc9b ("Big merge the HVM full-virtualisation abstractions.")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Tested-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> CC: Jan Beulich <jbeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Teddy Astie <teddy.astie@vates.tech>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> 
> It also also works around the QEMU bug that triggered the investigion, where
> the CR2 intercepts trigger despite Xen requesting CR2 not to be intercepted.
> ---
>  xen/arch/x86/hvm/svm/svm.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
> index ced616684732..f49d2ebbfdd5 100644
> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -2505,6 +2505,7 @@ void asmlinkage svm_vmexit_handler(void)
>      hvm_sanitize_regs_fields(
>          regs, !(vmcb_get_efer(vmcb) & EFER_LMA) || !(vmcb->cs.l));
>  
> +    v->arch.hvm.guest_cr[2] = vmcb_get_cr2(vmcb);
>      if ( paging_mode_hap(v->domain) )
>          v->arch.hvm.guest_cr[3] = v->arch.hvm.hw_cr[3] = vmcb_get_cr3(vmcb);
>  
> 
> base-commit: 61f957d48c78df6c5254b6f54d6170d3bd3d717e
> -- 
> 2.39.5
> 
--8323329-528818502-1777671855=:512397--


From xen-devel-bounces@lists.xenproject.org Fri May 01 22:22:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 May 2026 22:22:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1298955.1573879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIwF8-0006lC-82; Fri, 01 May 2026 22:21:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1298955.1573879; Fri, 01 May 2026 22:21:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wIwF8-0006l5-5Q; Fri, 01 May 2026 22:21:54 +0000
Received: by outflank-mailman (input) for mailman id 1298955;
 Fri, 01 May 2026 22:21:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wIwF6-0006kz-Mm
 for xen-devel@lists.xenproject.org; Fri, 01 May 2026 22:21:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wIwF6-00CwaW-0t
 for xen-devel@lists.xenproject.org; Sat, 02 May 2026 00:21:52 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69f5277f-e002-0a2a0a5209dd-0a2a45079900-0
 for <xen-devel@lists.xenproject.org>; Sat, 02 May 2026 00:21:51 +0200
Received: from [52.101.61.46]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69f5277e-229c-0a2a45070019-34653d2ed72e-3
 for <xen-devel@lists.xenproject.org>; Sat, 02 May 2026 00:21:51 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB6979.namprd03.prod.outlook.com (2603:10b6:510:169::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.22; Fri, 1 May
 2026 22:21:47 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9870.022; Fri, 1 May 2026
 22:21:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cRVeK+xZkuNnBnWhK+eOPazaXK0IrmVSWYOXoWE0WQopm1oYlW1PQlVBmO9v5iSR3AK87EjOA7Z6bQHpUbg5n6xBjiSIhZZU1fqBWm/wh0iQUSiNCisLP5vbYWhicPLfc7zQ71ougWvfsQqwbhDraaWqWpdsBNPGHGk9MsuYVhOZcUixFKNPXX4ldhpaGN1a4LXbGReiYJvMd1pNp6Q3C9QMiY+LNsgASlDYiSK+mLekL4LVyL5xn5mhKWmeBaLPBD+P8txTs+JuS/WUBv0ChnX0BhcZtEWZ+cv2WnvQACgZoltQQ8wXLreae6tQu90ixlTsaxXRcc7m3fw85hMhKQ==
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=L38TbsMue7FujU3ZRudU7Pw2syw+ljgeIFgee/ytrgI=;
 b=CAI2mBcxejXBwhk2qtyhuQ4xJzBPWS6ZSjlwGTB/sKZ0WyT/ayrquH6cs2FSdiSyECCfkQ2LksS3Zo1hyxsRYEpotxjuuB2g7kedzYFVjx/BSyR1wmMO7b6u7mVk15JK2bnKLsAeWONoW5lXooR6FvQpHL2ZyDPV1Wu+R1a70eUqSMAf8A+qVOjk7JO757mXMGxwAIQlUSRmvuF6R/Egiz6kUXv4N8b/H0EKpEiGySzWM2CKpvQVxcVSr6WOlKeKO+wcolKJSUepG82taTB3xEI6ZROVd4HtYvNX2CnkC4qkvPC7UMWSvOAOAbWwbMNzZtym+8z/vfLg0wafo/QaXg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L38TbsMue7FujU3ZRudU7Pw2syw+ljgeIFgee/ytrgI=;
 b=icN8GEwyLXhIcaX0GoHxCbyMoVfuroy3QlzV11INr0xGrwnzvvgP2Ej52xU1trR+cG4QiB2fRh695cNSRcM2z9SrKDj0wfcVZe0lK2awKmuXQQNDCdI8K2dRSvRJR6nXatkI5Dadp4FZDg/YfJ6FOt9VwDuUxG4aFb7Usl/PbNM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <981a0dad-dcbb-42c8-a840-6f228eb89be1@citrix.com>
Date: Fri, 1 May 2026 23:21:44 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86/svm: Always sync guest CR2 on VMExit
To: Stefano Stabellini <sstabellini@kernel.org>
References: <20260501213826.1291860-1-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2605011443580.512397@ubuntu-linux-20-04-desktop>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <alpine.DEB.2.22.394.2605011443580.512397@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0430.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18b::21) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB6979:EE_
X-MS-Office365-Filtering-Correlation-Id: 0d2a120f-d221-41e8-8461-08dea7d0089a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	cJZ1ktdN5XI9AcJKLA8rKJMlxHWo/cckWot70mQzilGYo0+COG9dBBAui9oYzs5oq+1QqILriv49I/FLk3lFC/4wm4Appu3T4Jm7XgBI3x1htY+KyGGxYwnb2iDN8vj2yOFapvlrYut/1ibF9kV9BBiMkfGDt12VvDjNFVvvkVqEGYX009rw7FugJxfc5i6JsC8RXF9I4ABMPKV3JZXnyH0KTYvuY4fr1QVNimi8qGHq13d1xXsWIjSsRuocDIbqJRTRaKucJUpM9+jrIq1URI237/Re7hJF5EUxX+cy/oqT0ulGhsmkfvsXLRn7KFtULvqIhSsdl/dz4kLqA3NtT1kHkJ3EKalkoyKyDoTWbGV6gI8evtglGcIxchipT1cKJ3Esd6DY1On/sO1xaWgBiZkQjN6miURXY8rMeiELxHi5DWSPYwueOykSwgDuInZz1Tl/c7dg0z4LreMcml/KD+ak8nB1H1AWMTeytH7DbW2Lz4hsxBjsgVVSD452KF53Wc2z+Z6FqV+93THyoyhFEfX7fD5YK77DbjEXDezA8ZDGDROMy7IUpASGeYinw2tSleMh8NlXhGJwrEWCezoIpFJOhzsaMOh5WA+wWUidl+RjBJbjaR7YmzL+lXBMpi9wvOu+DzcOIAmUeug1CDjUNXyZy5zH+bBn4EpMEV0E5AsG2Ie7YHPuzGL6zlfURkuc
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WkIzTnpWMHdqd2tRb3JHVGJ3RVdQbUtyMlRiNDBzdkJ5ZEd0WXpRajF1aEEr?=
 =?utf-8?B?NkxRbEhTVkprUFFsQzI4Qi9FcTc4RGRDbTZkemcyWGxNOEQ2emExcEJxVmsy?=
 =?utf-8?B?eHFYTG1QTStwR1RHL012VXNYYlZhWnd1TlBlT3FFa3d5bnh0T1JxZW44c0gv?=
 =?utf-8?B?a0JnWXpmUGZycWZKdjhWRmlhZ056M3RjbGZFaFVSaGhkWXB5ZThSK0tJSVV3?=
 =?utf-8?B?NytBc1JuMTFScWRUNGZyaG9zbXlUOUpyei93Zy9LZjBnRGxoM0w4TjJIdHBK?=
 =?utf-8?B?eWFvVy9oUVBRSjlIUTNNeVllcnZzWmZETGQ2NTk0Z2puZzJqbXVCb2JyZkE5?=
 =?utf-8?B?d3FnMU1mS3RWbWxjb0Q1dDd4NGJ6Qm83V1dKTkV5TlNGMHZNdTJoRUQzWGNW?=
 =?utf-8?B?dFY2STlWK1NxaEswNk94S1JUWnBmRndCRHhIdllBc1FiUEovV3pwaUhlVXNU?=
 =?utf-8?B?TnpqeFhNbDNCY0kydTJQd2tzczJMSmUxM2JmeTZ1K3NWS1FNMzdORmFKdDFH?=
 =?utf-8?B?cm5LVzEwWThSNEo0TU9IWGUzbHo1eGdVUS9oZkk5UWZ1NjByaVlLU0pkaGJo?=
 =?utf-8?B?Z29HOFpwaWFSdVBoeTVqMmQ4Wk5mRHBTYlA2RU5Vb25QTUxYZ0xORU5oRXRL?=
 =?utf-8?B?K2ZEZ1pIbU50MjJRRjdJQXhqYzFjMUhJd296ZHVMRWNPeDA4eGU4Zm9jS09Z?=
 =?utf-8?B?dmxBRCs1RkJOc2t6ZXpMVitRNk15dFQrNU43b2hwUEY1bjNmeUF6YU9pVnZ2?=
 =?utf-8?B?Rk1vWEhRNWxqeThjZ0Mwc2M3VUxiQTllRmdETitEaTYvUWhpQjh2ZHV6amhH?=
 =?utf-8?B?blJVaXQwL003RkNRWUtENjZXb251ZnU1UlVpUDd2czdXVGs5QStTbDJkbUFi?=
 =?utf-8?B?eGl5eFJZRHFUc1ZLNlJCSEFxUkllUy9yZ3lUYXZsekhjZ0ZpNVRUZSt4OXpU?=
 =?utf-8?B?NEExbzhNekUxSm11QVQzYndySVF4ZUxPMjF6bkhyaUg1MHd4c1B0NXR4Tm4z?=
 =?utf-8?B?Vi9NVVdnYUdwUzIySnF5V1ZudW9Fb1FnRHp4MEljZVl5ZFFYZklmN1RVRVlR?=
 =?utf-8?B?bllycDAvakJoNHZCai9hYmIrRGxTampjOHFMT3Brb3c3RSt4TVBtbFo1V1NF?=
 =?utf-8?B?cTl3Z0svWXYyNzk4RlFxQkRSTEw4ekpuTzk0aTlZZmc5Q3Z0U3pQUS80L3JF?=
 =?utf-8?B?LzM1S2cwVnFxR01YQnpwMEphVjhpcE5HMDFPaVYrOHNuTGlSWHdoZUFuZCtr?=
 =?utf-8?B?RjUyNUs4Ym9IVWpYMjh6UzdZN0p0dktadEUyTjVqUmFJMEprRGdMSnY3MGFx?=
 =?utf-8?B?SEZpT3o2UDJmRmtlQVo2T3lmUnRoNVl1eU5NVzk2SXBqV1kxeUZpOUNrUmtm?=
 =?utf-8?B?by9RVjhEY3NJN3FyYzVtdTJSWjZhZHRYbnJRMXB6MkVuVW1Ga0UyampMM1U1?=
 =?utf-8?B?QkFNSjNJMjFXWHd6ZmVNTDBrZUV4RjBoTzFCN1QvTDZaRlNlMzhNM0VsWE51?=
 =?utf-8?B?cUZRWnpZM1B1ZnBGYVdQdDA3QlVCUmh6d0lGQVEraTk0cGREcmNmM2o0TnZz?=
 =?utf-8?B?UG55V0lhMGRPTjBST2Q4cjQ1WHlsZ0FNaDBraVQxU2x2cmFnTHo5eVJzTkpC?=
 =?utf-8?B?OTVjL0FKZHR1b29EaXpTRC9vanFXOEw2bFJ1Y1B0Q2VJQXZIKzNnMDRobU5J?=
 =?utf-8?B?YUNDWWlqT0tobUdSU3V3VGpNcmNOeU4wY1JXNVd4ZkFrNTRmcHg2VlFPanVo?=
 =?utf-8?B?YXA4RFo4NWhIblh3N3pLM1dac1NDNFM0YTJyVnB1VmJYdEg0dzUxeGVrNVVn?=
 =?utf-8?B?TWF1UDhWd3B0UTNwZm1PM25TSThMd3Jjdzl4c1cvcmtHejVPRDY5dnBlVHBh?=
 =?utf-8?B?SWdWTk51Mk5qOFhUcVNpekQ5VWViVTRjUitSeUdvNFF2UUNMMVdFSitXMmhm?=
 =?utf-8?B?bS9oaTFTbU5aSlpRZmtTNHludjNpOW5lRlJSZEpGSE1wVjVEWkhmSkNjcTVD?=
 =?utf-8?B?MUxLQXMyZCt2MHl4VDVVcVROS3pxTmpjTXl1ZlRDdXBmNEh3bnJCaUdVVmNv?=
 =?utf-8?B?Ymg2QUtMdTBDTWRjTFNMN0tJb096bHlEaVNtY3M3Uk9Yd3NvaGhxdHFmSFFY?=
 =?utf-8?B?T045UWd1ZzdkdG5YZFhZaGt2QWVoTDdKcklLaFZuY1V3L0F5VVBUSzR1RFJO?=
 =?utf-8?B?VjhSUVM0dDhkSnpQYnh2Wk1qSTZrZDhzTUExVGE4d1lYUTlqbTRjWXlpdUEr?=
 =?utf-8?B?WENWWk1ZcVpoTkRlUXVnaEhsYkZKdG9Ha1dzTytvbGdxUUlxQ0FENDdiRysr?=
 =?utf-8?B?Z0NRQTI3OFE5KzBlMlpXaitFcFVqTTluM3hJOEZuNWhBWThKV2szeHhGTkZM?=
 =?utf-8?Q?ychMhjY2ljrLG114=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d2a120f-d221-41e8-8461-08dea7d0089a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 May 2026 22:21:47.3449
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: L9OeV+rYwViclXNtvURUVbn/xgc7tjigZz87ehrKr6u65il4IcfsLxsCVqhM9F1/XpTQNngExWhdn0VOUpaFKxJsK5+uausxnK+ymvP+1x8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6979
X-purgate-ID: tlsNG-ef75cf/1777674111-23D7FC48-101C7482/0/0
X-purgate-type: clean
X-purgate-size: 1254

On 01/05/2026 10:44 pm, Stefano Stabellini wrote:
> On Fri, 1 May 2026, Andrew Cooper wrote:
>> Under SVM, there are two copies of guest CR2.  One is v->arch.hvm.guest_cr[2]
>> and one is in the VMCB.
>>
>> Xen doesn't intercept CR2 accesses, so this mostly goes unnoticed; hardware
>> loads and saves the guest CR2 across VMRUN/VMExit.
>>
>> For HAP guests (where #PF is not intercepted, and therefore we don't typically
>> inject #PF either), this causes the guest CR2 value to be lost on migrate.  As
>> migration is cooperative and not done from the #PF handler, this also goes
>> unoticed by guests.
>>
>> It also means that an emulated MOV-from-CR2 reads a stale value.
>>
>> Reported-by: Stefano Stabellini <sstabellini@kernel.org>
>> Fixes: d1bd157fbc9b ("Big merge the HVM full-virtualisation abstractions.")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Tested-by: Stefano Stabellini <sstabellini@kernel.org>

Thanks, sadly I made the mistake of extending my XTF PoC for this.

There are also bugs on the emulated MOV-to-CR2 side, and they're far
harder to untangle.

This patch probably wants to go in in this form, accepting that there
are issues still to be addressed on the other side.

~Andrew


From xen-devel-bounces@lists.xenproject.org Sat May 02 07:55:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 May 2026 07:55:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1298999.1573889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJ5Bq-000652-ME; Sat, 02 May 2026 07:55:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1298999.1573889; Sat, 02 May 2026 07:55:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJ5Bq-00064v-Hn; Sat, 02 May 2026 07:55:06 +0000
Received: by outflank-mailman (input) for mailman id 1298999;
 Sat, 02 May 2026 07:55:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wJ5Bp-00064p-24
 for xen-devel@lists.xenproject.org; Sat, 02 May 2026 07:55:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJ5Bo-002yog-E6
 for xen-devel@lists.xenproject.org; Sat, 02 May 2026 09:55:04 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 69f5ad62-5cb7-0a2a0a5109dd-0a2a4502ea30-26
 for <xen-devel@lists.xenproject.org>; Sat, 02 May 2026 09:55:04 +0200
Received: from [52.101.69.108]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 69f5add7-af86-0a2a45020019-3465456c91ae-3
 for <xen-devel@lists.xenproject.org>; Sat, 02 May 2026 09:55:04 +0200
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by PA1PR03MB10747.eurprd03.prod.outlook.com (2603:10a6:102:48f::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.23; Sat, 2 May
 2026 07:55:01 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.20.9870.022; Sat, 2 May 2026
 07:55:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QasLJ0sAVJX0yCdy/VJO2ju4NwtMZUZCwc5GCXB7gulxgdt21NWUpdyF5JoMJXor2E+wdYC/Py9oUgK6RJdG2+Zy++O6XudhWh2gHcBd7+I3Au9T8dLsqztZY3GNSzWzUJFwsCN1cdFMbtJShcamHGa9AouRYpq6w8L1MITA/vJtNPnasoF8J4JH6j8eCihDY8VaVAJxXlSbxPa9Wuk4H0YJEZ6OxCT5YJful/RlS+sa86/ZBSANvAc1lM7cb6Wni7ABe4oyOFqLQOohqsxAjJI+0Ee9f0E1z2eqGNZcR2jYhZj0/DCNUfmLb4eLL/4rpzXAiO9QofAWkSXJ7UXLIg==
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=XBMnCU8HRfN7uFjeSa0ezCfezBIqszeeqV7olHwkzbM=;
 b=NJpln+C/A8V2OTCFuWuRuNBxYnHqNWCM0yEPGypKf/hNLzSz2gSOAdemFZ78in3WoTlhmwUc5CWUUeInrqr8OWCoRCL3FVAUYnmw12nXwGpgpR3bJSY14t83WrEo681tiUvUBANnSIHY9g2nM/5hoG7mYb6ysvuvU3rI1zF/a9s5oeA3jhn1qoBaCVeGrrOQWg1zpoK5aYtAcKeCqn4nIYnyI5D/lmG6TFbDBsr4/bbDWd7WO9Fv4oq/+pcVL0oGKa2KZsDeCwkEkjP8YP5lPQDsISVx32ex6l9EbvNEtD6EMWfQJ/NWB1VxCP30/oEYSHCac0ba3eTWyuxts3et5g==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XBMnCU8HRfN7uFjeSa0ezCfezBIqszeeqV7olHwkzbM=;
 b=IgJIo9AWhck6tAVcv8lybhJPaa/+jGCDdsTAi4VsgIAVA003F8kanasWq8IBG6IN8avc/Ivcq2c/39kIQptzsUUUw1W5qpWrsyzhCPTAG25Np3rcrvnNp3l978fXRMBmNpZ5TymYGKmqQ/Jk90pRsvoNZLt/R9UUofpCg+7d+jBXNp5TwS8WZWOQYl0b1DfYI8fFa4zR6/WOns2a/lwoPFDswBj5wnZ/DOYhdu0KRiozMioaMOXAeBtSmzmZamMig4a/h3K3BTQB1hLPRpad090mYftbdYt0Qldt27Aq1+OxZGxZRjb0IxZOgyPdKtdVFpLKgyVtGyINiT75mJmLHg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH] xsm/flask: Fix undefined behaviour in avc_dump_av()
Thread-Topic: [PATCH] xsm/flask: Fix undefined behaviour in avc_dump_av()
Thread-Index: AQHc2XU4ZcEAsUoy1EuhfVMBY8DBF7X5OliAgAEkr4A=
Date: Sat, 2 May 2026 07:55:00 +0000
Message-ID: <4c4745e3-14bf-49e5-aa35-a525ae42bab7@epam.com>
References:
 <43fc4b4ed45858b2cebbc37bbbf3b70e664a0661.1777642449.git.dmytro_prokopchuk1@epam.com>
 <beadc1e6-a98b-40e0-85f4-dffc7b2945b2@citrix.com>
In-Reply-To: <beadc1e6-a98b-40e0-85f4-dffc7b2945b2@citrix.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|PA1PR03MB10747:EE_
x-ms-office365-filtering-correlation-id: e99bed8d-61d7-4de5-8d75-08dea8201cc7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|42112799006|38070700021|18002099003|22082099003|56012099003;
x-microsoft-antispam-message-info:
 n3Pz3veY1B5hpu47k0ukZEHvmxe8xP/Jug4/A39iHhoF5xNphZG3jvz9opsTFswX7Wk5MknjS5ZId/C+5eodj7/kXoIS16iwwBLOyonGBwIgVp5tk8uwbFkfGB8jfxitqec0UqdbgNMvy0BcBXKIzWZGtpjNUxHm8sPCLA4wk/fnJz9puPSFblTAosC4ZizDhVfcQduiOI4HBjzgFcfHf22O4W9Gup/tq4ZlxO6YE4hxYiIA0AR8KK8XRcw9K265Q75dzrvyRZdknjBr05RWuRr52uNlLQP4jOkyMT6fDcAZRVsraCVVyxxR0UkzP0sht7Sv3lCgtb77e5M7N6+fZRxPgsB4KmzsOln0P3ZEnc1nXZMi1m/TZ7NVqP8Md/MahFQV2zQfQHHq8ne9kWKY2URQslvbP4iMpZKMsNGbHIbcR6ts1KOMVmuQK88IbUSIhUsvVD/dA8pXrTKFCsE8TcoPlvDFR1yLTaPcmtvrlTr//hJbZmFkJMqkmJd+SAUhtXb72FoxtxJGb36RNOeLxpq4Xhf6/nfYtFDZm8i34SHo6tvZyzdOhd/fNhZ6zYiic9uZUByG0o/VFv4XGXOnT/hSdUKbNLzFynHCQlQWhgPkkhKU0UjDDP3N6t5hjHoSqV/qZ3154/2mPt5uNrfXzxGyM/Aw1/jcIl8Z8/KEOu0ea7YOEOUBIWqPG6LWgIXv4cafeUIYjs99T07QL0bk60ni08+sUinnNAu0KjxHvT0OZRA7VTQcNJcRlGhynVFZ
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(42112799006)(38070700021)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ajNQOHNJMmVZcXRSV3FJMXl1KzB6bUdDdnpHSDJmRVpCek5vcFdRbmhlS2Y5?=
 =?utf-8?B?MmRuWURFVklqY0RhSmU0dVVhRFJyT3ZxalR5dElBdGFmcDdnbDVDWElwRENu?=
 =?utf-8?B?VHdRRlBmN2tEcWJlazdHNlk2VTNvalBmM3l0OWhYQXdJMkZOM1Jyekk2cXZs?=
 =?utf-8?B?OUtJVGhDT1ZtNHRDQjFUMGRpRi9LYmFnY04yQ1ZSNU5QK0xkS1Y2RWJtc09P?=
 =?utf-8?B?dUhrbkNTSzlodmd6OEpuY01IaEszSWhnUTkwU1NsenZuT0F2UjR6RUZ6VldF?=
 =?utf-8?B?ZEZpUllaNnVud05QalVIVVVMM0M5QUVkVVlyWmhINndHTHJ0cFE4TGl2elpE?=
 =?utf-8?B?b2R4d1BQNURsSVB6aHMyZUdHdnFycGp6anBEbytwR3d5czlGTDBhOFUyZlg5?=
 =?utf-8?B?NUhkYjVHYVpQUFNvbGNQL1lOc1JYc0tjZjV2dHpYL0lBeVhVeFp0Z3U0V0ZH?=
 =?utf-8?B?YjVHRDlYUkNreWpQam9PbVNrSGZPTEJaRFprYWwxL2cwaDNwZXF1WDduY1Nn?=
 =?utf-8?B?ckErWkJMOG9lelFuenZtM1VKMHBSYk1ZK3ZrVjgrZ1JXOWE1TkZDaXI2dnFa?=
 =?utf-8?B?dmQzNWJaUmsycGFyNWtRbXJDYmI4aStHa0dIUHRVMEttTXRQQ291UUhYMnM0?=
 =?utf-8?B?eElWQWgzSklXSmR4QUlYVmx4dmlnWlA4SWZmelFoV0NwVEZmbE56ZDdwTGdL?=
 =?utf-8?B?UjRPa0JYSEc4Z0hVSWVyaUR2b1JiVENvYnM1Uk5XNTZsMVRDV3h5cHdPaitO?=
 =?utf-8?B?SU9GSWpORGtWK2k3WUpzaW1tVzlBRHdOMGpPbjgwSVlEZC9KL3NnbnJ4Y292?=
 =?utf-8?B?ZmptK2huV1JRSzNjUmhYTHBTSExMNDB6UmFkSCtNZjdVbE81eW9BU1JwemQ0?=
 =?utf-8?B?ZlArVzlnWnE0ZFI2WUQ4R3k0bDRXVmFOazlyRHlhNnBCOVpxd0JkUitmSFNR?=
 =?utf-8?B?Wnc5clVXYm9ZbFV4ODR0S3F3Wk1MeGVhc2R4K3gxZG9oSWdPRDQ0UHVtaGxu?=
 =?utf-8?B?MUtMT3A0QWl2eG1vaHNBZUQzTTVrUnNWRHZFK2x1Uk9BSElkS1hVSnM4OGNM?=
 =?utf-8?B?a3FUKy9lNmNOam5KclZTd21QeXE1OG1xeUp2YXBUSllOZWN3R3FJQjVnQnlU?=
 =?utf-8?B?Nk5DSy9qcStIemNpbmVCalJJSmFqVVptM1NIZVdBaEJCeG92UGhLUHJaeTBJ?=
 =?utf-8?B?Z2VRNFRkVGZkbmN1aG1JOE9BL0dzczFMell2NDF3b1JZU3BhYnpUWkRaZ3pk?=
 =?utf-8?B?Q3lwQVBrd2d0cTdyK0U1S0lDV1A1QmdKZzZwczVqREZQNXA3U2NWTHlaMXhL?=
 =?utf-8?B?WGx3UVRLamZ2RW5DdGFXTTVRc2FaR2p0RHZkV3Q1SU1RNUdlQzd6b1paU05V?=
 =?utf-8?B?V2tJZEpONTBGL1JOeloxaHVpMkNPQThhRzNVcDFGQUp4SHJSWkR3ZWdEbmhN?=
 =?utf-8?B?QkhZd3RjNWlHZVJuQVhmMGx1ZjVHR2tRMWR4dE5Kazdwa3kzTmdmSEl0Qi9E?=
 =?utf-8?B?MmlXMWFaMDltMU9UdTVtMVFKeCtGYUNFc3UvWXFLcFF4Qm1DSEtyS29hZGJC?=
 =?utf-8?B?dEQ1NHBoWEFHS1NSZWFqeDRkU095NUpaejF3RStGd2d3RHY0OUNDL3NyOFRp?=
 =?utf-8?B?dUxtUEtuWTNIL29BMW5sT0pOajRZZmx3aEVBTnVsdmFoY1dCZTNnYTZJM2Rq?=
 =?utf-8?B?UW12UTY2WnFudkFTUzg1d1lLdEpGNFNQR2RVSVdXT3diVzhvckgyNzdmUjUr?=
 =?utf-8?B?NnFxTk1HNFR2VWg4ZDh2R201TW9GQ0w5TkVTb3l6UVFBL0N3Tmg2bmNFelNC?=
 =?utf-8?B?ZjdQTGhwcUgyOHR2NmhMREpxY0tvd2F6dzRBVXZ6N0xMdllsaUFFNlRheUxW?=
 =?utf-8?B?Y0g0akJFbk53WDhVY2haWHczdmJMV0hlWlZtR09zbXQ0bDFoTmx1eHlqWlla?=
 =?utf-8?B?RlNPeVBSZTJDRTB1eU5KLzk4OWFlYlFhVEtua0FncU1TblVnU2FyeDNGdFZt?=
 =?utf-8?B?aldqc0EybTg3bjVBSG8wSThQc3VidGxjdys0MmJnblc5bmM1M3hvelRWRjgv?=
 =?utf-8?B?dXdEMzdmK3M5Z3Rac3d4dnhRTEJvYi96WGlVM2xCN1JzY0hxcDIzWDZ0RkUy?=
 =?utf-8?B?UnB2Q0QwTzNScXZpWlJ1Lzc0cWQ5RFBiWmlzMGg1TE5JN3hkRDVPT3pEUlMx?=
 =?utf-8?B?UCtRcUtsRnlkV1dkQzJEVE5LMndGRE1RcmdJVGtNdWcyQVNIdURTZVc1SnR2?=
 =?utf-8?B?d05yeEtYbWFJR3ZjVmlzbzdETmNzMFBUeGgrcG1LWW4rc2xrNUc1Ry9nWDdy?=
 =?utf-8?B?WDdwMzRyb3gxNVI2Q1c4N3F5dnZRSUZRVktaeVNPMjJnb0t1dU9MRVB1Zzdq?=
 =?utf-8?Q?xWXp9OUKTK4+L6YI=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <7A2E6EF0AF91BF4CB165149D33C5DC20@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e99bed8d-61d7-4de5-8d75-08dea8201cc7
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2026 07:55:00.8015
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: +5V2BpPqS3P+HPyMRXh018An48fYEpy3MxX/l9qhQFFPcnPEncpSKh15VUJYR/dp6Cibb8cQh/zTYYRarXxcgvdoXgbHCi7IyghR96TWYyY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR03MB10747
X-purgate-ID: tlsNG-720697/1777708504-892CE161-5B59AB30/0/0
X-purgate-type: clean
X-purgate-size: 3030

DQoNCk9uIDUvMS8yNiAxNzoyNywgQW5kcmV3IENvb3BlciB3cm90ZToNCj4gT24gMDEvMDUvMjAy
NiAzOjE3IHBtLCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBXaGVuIGJvb3RpbmcgWGVu
IHdpdGggQ09ORklHX1VTQkFOPXkgYW5kIENPTkZJR19YU01fRkxBU0s9eSwNCj4+IFVCU0FOIHJl
cG9ydHMgdW5kZWZpbmVkIGJlaGF2aW91ciBpbiBhdmNfZHVtcF9hdigpIGR1ZSB0byBhIGxlZnQN
Cj4+IHNoaWZ0IG9uIGEgc2lnbmVkIGludDoNCj4+DQo+PiAoWEVOKSBbICAgIDEuMTA0MzQ4XSA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KPj4gKFhFTikgWyAgICAxLjEwNTA5Nl0gVUJTQU46IFVu
ZGVmaW5lZCBiZWhhdmlvdXIgaW4geHNtL2ZsYXNrL2F2Yy5jOjE4NDoxNA0KPj4gKFhFTikgWyAg
ICAxLjEwNjA1Ml0gbGVmdCBzaGlmdCBvZiAxMDczNzQxODI0IGJ5IDEgcGxhY2VzIGNhbm5vdCBi
ZSByZXByZXNlbnRlZCBpbiB0eXBlICdpbnQnDQo+PiAoWEVOKSBbICAgIDEuMTA3NTQ2XSBYZW4g
V0FSTiBhdCBjb21tb24vdWJzYW4vdWJzYW4uYzoxNzYNCj4+IChYRU4pIFsgICAgMS4xMDgyOTVd
IC0tLS1bIFhlbi00LjIxLjEgIGFybTY0ICBkZWJ1Zz15IHVic2FuPXkgIE5vdCB0YWludGVkIF0t
LS0tDQo+PiAoWEVOKSBbICAgIDEuMTA4ODQ4XSBDUFU6ICAgIDANCj4+IChYRU4pIFsgICAgMS4x
MDkxNDddIFBDOiAgICAgMDAwMDBhMDAwMDJmNjRmYyB1YnNhbi5jI3Vic2FuX2VwaWxvZ3VlKzB4
MTAvMHhkNA0KPj4gWy4uLl0NCj4+IChYRU4pIFsgICAgMS4xNDYzMjBdIFhlbiBjYWxsIHRyYWNl
Og0KPj4gKFhFTikgWyAgICAxLjE0NjY2M10gICAgWzwwMDAwMGEwMDAwMmY2NGZjPl0gdWJzYW4u
YyN1YnNhbl9lcGlsb2d1ZSsweDEwLzB4ZDQgKFBDKQ0KPj4gKFhFTikgWyAgICAxLjE0NzIyN10g
ICAgWzwwMDAwMGEwMDAwMmY3YmM0Pl0gX191YnNhbl9oYW5kbGVfc2hpZnRfb3V0X29mX2JvdW5k
cysweDFhMC8weDI5MCAoTFIpDQo+PiAoWEVOKSBbICAgIDEuMTQ3ODY4XQ0KPj4gKFhFTikgWyAg
ICAxLjE0ODE3N10gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4+DQo+PiBUaGlzIGNhbiBiZSBz
b2x2ZWQgYnkgbWFraW5nICdwZXJtJyBhbiB1bnNpZ25lZCAzMi1iaXQgdHlwZSAodTMyKS4NCj4+
DQo+PiBTaWduZWQtb2ZmLWJ5OiBEbXl0cm8gUHJva29wY2h1ayA8ZG15dHJvX3Byb2tvcGNodWsx
QGVwYW0uY29tPg0KPj4gLS0tDQo+PiBUZXN0IENJIHBpcGVsaW5lOg0KPj4gaHR0cHM6Ly9naXRs
YWIuY29tL3hlbi1wcm9qZWN0L3Blb3BsZS9kaW1hcHJrcDRrL3hlbi8tL3BpcGVsaW5lcy8yNDkz
NjQ5MTA5DQo+PiAtLS0NCj4+ICAgeGVuL3hzbS9mbGFzay9hdmMuYyB8IDMgKystDQo+PiAgIDEg
ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4+DQo+PiBkaWZm
IC0tZ2l0IGEveGVuL3hzbS9mbGFzay9hdmMuYyBiL3hlbi94c20vZmxhc2svYXZjLmMNCj4+IGlu
ZGV4IDNkMzllNTVjYWUuLjljM2ZmZGMwNzAgMTAwNjQ0DQo+PiAtLS0gYS94ZW4veHNtL2ZsYXNr
L2F2Yy5jDQo+PiArKysgYi94ZW4veHNtL2ZsYXNrL2F2Yy5jDQo+PiBAQCAtMTUyLDcgKzE1Miw4
IEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18gKChmb3JtYXQgKHByaW50ZiwgMiwgMykpKQ0K
Pj4gICAgKi8NCj4+ICAgc3RhdGljIHZvaWQgYXZjX2R1bXBfYXYoc3RydWN0IGF2Y19kdW1wX2J1
ZiAqYnVmLCB1MTYgdGNsYXNzLCB1MzIgYXYpDQo+PiAgIHsNCj4+IC0gICAgaW50IGksIGkyLCBw
ZXJtOw0KPj4gKyAgICBpbnQgaSwgaTI7DQo+PiArICAgIHUzMiBwZXJtOw0KPj4NCj4+ICAgICAg
IGlmICggYXYgPT0gMCApDQo+PiAgICAgICB7DQo+DQo+IFRoZSBmaXggaXMgZmluZSwgYnV0IHdh
bnRzIHRvIGJlIHVpbnQzMl90LiAgKFRoZSBleGlzdGluZyBjb2RlIGlzDQo+IGFscmVhZHkgaW5j
b25zaXN0ZW50LCBhbmQgd2FudHMgZml4aW5nIHVwIHRvd2FyZHMgWGVuJ3MgcHJlZmVycmVkIHN0
eWxlLikNCj4NCj4gQ2FuIGJlIGZpeGVkIG9uIGNvbW1pdC4NCj4NCj4gfkFuZHJldw0KDQpIZWxs
bywNCg0KSSdtIGZpbmUgd2l0aCB0aGF0Lg0KDQpUaGFua3MsIERteXRyby4NCg==


From xen-devel-bounces@lists.xenproject.org Sun May 03 10:39:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 May 2026 10:39:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299307.1573909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJUDg-0003aL-NQ; Sun, 03 May 2026 10:38:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299307.1573909; Sun, 03 May 2026 10:38:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJUDg-0003a1-Hs; Sun, 03 May 2026 10:38:40 +0000
Received: by outflank-mailman (input) for mailman id 1299307;
 Sun, 03 May 2026 10:38:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1wJUDe-0003Zt-MR
 for xen-devel@lists.xenproject.org; Sun, 03 May 2026 10:38:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJUDd-002KpM-Ka
 for xen-devel@lists.xenproject.org; Sun, 03 May 2026 12:38:37 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69f72592-2eae-0a2a0a5409dd-0a2a450ccd5e-26
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 12:38:37 +0200
Received: from [52.101.70.99]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69f725ad-62f1-0a2a450c0019-34654663c12c-4
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 12:38:37 +0200
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com (2603:10a6:20b:595::7)
 by PAVPR03MB9797.eurprd03.prod.outlook.com (2603:10a6:102:311::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.26; Sun, 3 May
 2026 10:38:34 +0000
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5]) by AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5%4]) with mapi id 15.20.9870.023; Sun, 3 May 2026
 10:38:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mMfFRqoqGHLB6yzkJ1vg2m3Cg3gAsz+4Fj8sPNkKnm+Z13SMGZWY+V5y7Z9oXmH3Eyt7eTeb6XKkOVaKSUFd4jxJAZIIWjhmwH3Mn61eUGZV8w+7TCneypa42uv6giO3YTr09EOIl8f8WgxPl1ZzZhRVwSb+ucYAXMNoIZ95ABrbdImEi6yO2ZgvGtcOmrgwv8kZMVZW55lzsGyvaLoCfe3OUzQOeBBSb3f3Ggw6uBzX4UB3fi3SS+P9/1SQum0E7yACQM/h7eUYK72EFGxZqBTnqRwhDAFL6JT58mY5qTRfvEfK9YD+GbFrCS7lcmHtecwsXTJYt+WqwXVIZPXgjw==
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=MOiPT3jRF1eMPh/hdxWJHGEFbDNmd8Of8OktvXY2qu4=;
 b=FwMRFRoL7/xqIyTJvdH3/ZCTVtRC+8GLEnkSByUJNMwFWORfn3pOWWaP+H7e5Nvib6rTB0WHZnzYcQj5NEKGP2S5vdn+UeEgD9nSC3xf06c7QlGgtMNZHozo7yc/sIBnA437Kl+6u+WbkMYvspGRj6/3L5hq9H/BRlJFJkPthgAtq31AaavvebkKXkMqEP/rUHWe1L+Jl1Tc138VBkOCMvVn5C6cQ1lmWkB8mGxywD86rXyL8WbJ1fqq+xlMBYIUsaYaN0sgpdx5OBuUskl6dvdSRKOQknOUtVlVt/EiAq9/f6Wkh6GP3f9iKR9kkgKz/tsxtu40tBD+dyEDavg+aQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MOiPT3jRF1eMPh/hdxWJHGEFbDNmd8Of8OktvXY2qu4=;
 b=J0b0qa/syFNES+EpofEIymFGxdRAWV/NeVUnhJzmSeZzDjcVTswBRV6gJUlVgYzHqwdxsuoPc7pVqnXK9NE+8Afd5XaSFccHIzEZ4ivrdnpnZg8qtIsVuRjdmYyGoittvYlIbMeZacOM9X+gG1QadFr4dwHMWGIYNTNeAv5j767bHgarzPEFWqrMOURy319TqnUKBJSb7iXHbS/nyjg/X8rRmVIPQMFjOEdLReXda85xHxdX49hmKHY+ZREtOlIaAaP3CDli1ElF3EUapW/JFSgTsoiYUbOdpq6YgEczrMuTzl2+JkPPf51sSh51SuBXoIaglGeN8WVLyR9XlMUpoA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <1f498863-d07b-4013-bcef-d178376a4693@epam.com>
Date: Sun, 3 May 2026 12:38:32 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 04/23] xen/arm: vIOMMU: add generic vIOMMU framework
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Rahul Singh <Rahul.Singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
 <c12f84b9306a2b74a555c710f21f5362120205ed.1774918270.git.milan_djokic@epam.com>
 <A7C7C3F0-7359-4851-9325-B65C289C02CF@arm.com>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <A7C7C3F0-7359-4851-9325-B65C289C02CF@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: VIZP296CA0025.AUTP296.PROD.OUTLOOK.COM
 (2603:10a6:800:2a8::15) To AS2PR03MB9587.eurprd03.prod.outlook.com
 (2603:10a6:20b:595::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB9587:EE_|PAVPR03MB9797:EE_
X-MS-Office365-Filtering-Correlation-Id: f2d89dc2-7fdb-4610-c279-08dea9002065
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|7416014|376014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	WfFkbJkwbCCUmYzW7ohzzf+JE+8BnSp0TtXjlZZMx7wgnVNFJIsVjFbHEFTlTJFGbXh8HcgmxVZ6bQFR4/yy4IOOxCkIUkl/mNi09TetgcJO6yeLXK2lYgnH3olY78Sf6HdkVxavNdpolvAglukJVYWJPEudENyP+8jIRwHfiWej/CrpCMn1QL87p9My9dfLWl7VvuoXInbt9E6GnqdWjwaaHovDUkkI8P1r1LWyMXWYufa2918ajO0pxor1KLbT7xZd7OXM2JcUNCb4tybNeFdx22xhMwmeEWJmBen+wQAXnuBczWGYyS5SUkuU60xwwGKuxFQLT/+GJm8h/tP51LprLLSxQYz0M13bFMreqrAhhWrGznn7hzpqU9h9Qd/thz+Pjf4WpNxHcYAqH00fpzo6ynP/CvB06opDU9UJ7AiuwC9A9SfpB6rhdKuKcxwhghDFT8RHrNhkWVtKYOvuK129hy0fLhi8OzEJ0kExeU17Zn5eHotLk0SPNSK/U9/hktvxGtxmax5iwfbOcGv0YbGj0q38CBQcsfRHp6f6nnxhwWCxB5pyytw2W0gxGvP56xzqgISUsk5efJaNhVyl0ff5jqWkfSZyK+EH4TsQ7k1xkzdjTTGowo563uBhvy12rJpYU8bqlXo/HcHl/19AxSfoJEAmBOP20CJwtc51ntBGvB7uaOxOd72xmVuqPeAA
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB9587.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?My9KQ2lFRG5FYmpDcnBSdG5RRUxLZ3FLUDZiTXVxMlhXZytZY0h0T1FOTDdV?=
 =?utf-8?B?T1g0Z2pDOFRMV0hmaWVqQmpxQWdtczM1T21raTBiMWdENU00MjZxRjVSUzBE?=
 =?utf-8?B?WXA4Rzc4U1d5eXl5aHBINHhYWUFmVTFvVmFkRXhyekR2cC96aTRhajVVcUlP?=
 =?utf-8?B?ajBrZ0NJK2w3a3pRdFpJb1o1ZnB5S2prM1JDRE5OdkFwWlROakFGOUF1SGdN?=
 =?utf-8?B?UTRHaXlPQjUyVjRwOGpIMVpPb29FejUrWkxnc1pzK2xDSmZhRTBsaXpzQmk5?=
 =?utf-8?B?Q3U4dlVrZGRkVzdnclo5SlhYOWxFTFYwejkzVmdVMWFuaFV3SXd1T3l0ZS80?=
 =?utf-8?B?RGhBcis3S0JKTUJUeU5YQnVKMjFWRE8yeGpCOEQ1OVZNQ05neFY0RUNFV0Jp?=
 =?utf-8?B?L3daSXBkbmI4N1JsTFJoSmE2eVhERVRlV3ViVU9UWW43a05WNG9YdkFKSGZy?=
 =?utf-8?B?eGtlS0hWQXlqSytlc3JlbUdWbFFDYSsxcmNZSDZyN3FjcHR3SXkrdkJwdXd1?=
 =?utf-8?B?RGU5RUh0WEt6RDRLWUxwRks3aENrOWZuOEU3SVdEc2s4NzZmcFFBUUt1UW5B?=
 =?utf-8?B?cU45aWQyeHduVyt1Z2VIcm91Vm41MDRGcGJMNkVzMlJFKzNCUmdNUW11TnJM?=
 =?utf-8?B?bFAybVA4MWd3RkdTTTYvdWdhOEdMcy83UEk2Wm9seE14ekNjakRSdUJJT0c3?=
 =?utf-8?B?blJkTEhpeUQzNGVNRVc4cGNSWFVPZU9zQzArQ3R4Z0RWbTRSRlZFQ2hjbzR0?=
 =?utf-8?B?OGMvK3pRaHhzZysvNU5RVzVtd3A4UDRvd3hWVFdRdnV2ZVZlMjZnQ0U3Zk5Z?=
 =?utf-8?B?RXEzcFphZ3FUZzBtQ3NDOFlsNFRRRnNOSXFIR0ZkdXR4QW9nQWRleEFiVXk5?=
 =?utf-8?B?Q0YxY3NCZnRiamp5SVNPQ3lIYUJKdzVldk1ldzg0Qytnc0lNaXpBajZKNE5U?=
 =?utf-8?B?OGVvbTZ4dWdyc016VGVEem9mN2h3MDFLdm1HdTdSbmtXbFg1ZUsyTU12Nkx0?=
 =?utf-8?B?c1JTZmU0Kzl3dUVTVE1hL2NCV1RTcGdETnZqSEhEU0RLUkZuZWl3QjhTOVc0?=
 =?utf-8?B?V2RJbmJjWUMvQVVuN0VWRkxLOW1BNXIxUUVaS3dkWnFFN1FXYng1T0pkaXdk?=
 =?utf-8?B?OEhTdkRMb2IrZzZQTlpKYUdzQjMwSjFDeDRKNUt5eVZqQlprU3B1NjdDMjRU?=
 =?utf-8?B?SWM0VVlDbzZuYWlVcHk3QS9UK3pEeUx4WGpQbG5nUW5Ua0lWMjlOYWRhcU5t?=
 =?utf-8?B?akRWZlNUakN3YlI2UTBqK2FSZzJsWlBNeUpmdi81ajQ5TDc1V2YvOWhOQzJG?=
 =?utf-8?B?T2pwdGkwM3p5WWUrdjNCY21qQW5RM2ltZXVYY3p6dmI4Y3hyS1I4VytaNkpQ?=
 =?utf-8?B?cndXK0Z6eXVuZlBxYWYzVkNpZERoTjRHd3UyMG1sbnBRNWxNK0NxYk1lMGNl?=
 =?utf-8?B?T1lBRUVXaTR4d1pRSzZFeFVCMkk2Q0dHYW5DQk1jY1p5NUNKM3B3L0c3ZUti?=
 =?utf-8?B?OGhhSHAraGtTQTEvaGk3VEt6MUVPM0p6elZmYVkxVnEvRkZJVWFLcUcwQ05x?=
 =?utf-8?B?c0VLcVdMRWdIK1IvTUk2c2paM2hWN0k2VmZqZnJnY0lTclRqTnRsQm91bnFU?=
 =?utf-8?B?VS8zNk4xSFFxNmNEbWt2Mlk2V0J2VVIxMmM4TVNrVXU4Rm1KVWkvajZWN3Zo?=
 =?utf-8?B?WCtuL1BwSHEvazBNRDFCYXA0U29xcVBJMm9CSFQ5bElHaDZPemJiMFRRSXVq?=
 =?utf-8?B?RGp0OG5jSG8rSjYrTkpJUkNKNlc1RTFodTYzc25hb1lJbVR1c0ZhMmw3ZmJG?=
 =?utf-8?B?L2F6NkFCSi9Nbitlc2taN2I3ekVtVUJhblAwckhsM0o5RmpZR1NzRnZzaENK?=
 =?utf-8?B?ZWVQeElMckJyQng2OVVlRks5SEpOdUlsNUZkMTlNRmc1Q3V5Nk1BMXhTTTdL?=
 =?utf-8?B?SGRyOTlJZXFLeG84OWJQcHBsTE9wQU5OT2owRUUybjlETzhEUkh1OHloRnUv?=
 =?utf-8?B?TlBubVhYS3dKbHVHUHo3dTNYZytTbEd3alFwb1RXWlUzTEVYcG9IZzZWSGhN?=
 =?utf-8?B?QndFT09oVGp1L0JaUS9tRHRtYkNEYlh5Z00xbCt3ZjRlcWtjMzlQZnpFM1lx?=
 =?utf-8?B?NEo1aUtkTlk2bmVFMEtNYjEvZmVSbzF3VXp1U05aZG5DQ1BBMDdoODZCdHM5?=
 =?utf-8?B?ZnZKZ1dWVG1iWUpEeU1EbFBwRHBRTlE4akRKcTRUZFc1TG56NGs0MFRydlJ4?=
 =?utf-8?B?VjhaMWRpZjNPOGxtUDkrTEZJcFNQMjZEYkFUdGlwekU5OThZMFI3WWFsclMr?=
 =?utf-8?B?VjhUaHV1UVBYTzI0OWwvVVovbU9MRzB6SGdiTUNZMDBwMXFBRzQyQT09?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f2d89dc2-7fdb-4610-c279-08dea9002065
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB9587.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2026 10:38:34.4329
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dSgkTrXSSMwfYrqG+Abe90za1IqVbas6XGD6JCGH3+zTa5usEgGDl/YLRr/rhfvK+ls/IGWpn4DwEeWU+MsVng==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9797
X-purgate-ID: tlsNG-d25034/1777804717-6CB64CF5-4A076ACF/0/0
X-purgate-type: clean
X-purgate-size: 615

Hi Luca,

On 4/10/26 13:39, Luca Fancellu wrote:
> HI Milan,
> 
> apologies I missed one bit in this patch
> 
>>
>> @@ -721,6 +745,9 @@ int arch_domain_create(struct domain *d,
>>      if ( (rc = sci_domain_init(d, config)) != 0 )
>>          goto fail;
>>
>> +    if ( (rc = domain_viommu_init(d, config->arch.viommu_type)) != 0 )
>> +        goto fail;
>> +
> 
> Here if this fails, we call arch_domain_destroy(), however in that function we don’t call
> viommu_relinquish_resources()
> 

Yes, this is missing. I will add it in the updated version.

> Cheers,
> Luca
> 

BR,
Milan



From xen-devel-bounces@lists.xenproject.org Sun May 03 10:44:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 May 2026 10:44:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299316.1573919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJUJO-00057C-8s; Sun, 03 May 2026 10:44:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299316.1573919; Sun, 03 May 2026 10:44:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJUJO-000575-4a; Sun, 03 May 2026 10:44:34 +0000
Received: by outflank-mailman (input) for mailman id 1299316;
 Sun, 03 May 2026 10:44:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1wJUJM-00056j-6N
 for xen-devel@lists.xenproject.org; Sun, 03 May 2026 10:44:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJUJL-00GOIg-Cz
 for xen-devel@lists.xenproject.org; Sun, 03 May 2026 12:44:31 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69f72699-5cb7-0a2a0a5109dd-0a2a4508d41e-38
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 12:44:31 +0200
Received: from [52.101.70.104]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69f7270f-63b5-0a2a45080019-34654668c8dc-3
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 12:44:31 +0200
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com (2603:10a6:20b:595::7)
 by PAVPR03MB9797.eurprd03.prod.outlook.com (2603:10a6:102:311::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.26; Sun, 3 May
 2026 10:44:29 +0000
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5]) by AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5%4]) with mapi id 15.20.9870.023; Sun, 3 May 2026
 10:44:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KgULP06lPKMsad0NthR5U7hcFM3s0QCUqQFnVxmYjCseE3E71dCtZWbtaNormf6j+Xw2N4EjAxgNSdTEaCUjvQht2buYqk7JFpB4pqf9v+xHSfSqJB66st/NNRj7NHAH0EWKf74fuck9MgcBmUxgFfDoX0YjRhKTIZIvXQqfxcws0ZbccUCDFEtmi82vfzsNGfvyUMBwv37zlLWDE+snol04vaqpgC1yWos/yuGOfrb8WWNgK4nYoIXCkqnWG76QqwHXCLSQXsSSG5+/5oL6CR+a47fwMVv9bbnoTiwbx4iYk6E01VkZjvxGbp7LSP2/YzoQ9cERwQ2bFh+TqiTDzA==
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=dkN442Bce/wFxp5ggxMBYftfeg6APOxnMx5BVsNf6eM=;
 b=gOgM6USwo6tYwkqgZd3qFb49VFYDkg9zDCa2Tqu2OGLE2IMWO0cTuvozCMt2Q/RPaJPLq30nsgfHLKWbAiagJdUBGzHo4dxzA4mGVvQnyukLpjWwn1W14Fd6RnHotNeuSbRSLol1HBhDbIiRxvI/AbIhTyGGFvZ36L/Nwqgp/2LJaeUAWDuGNaDgiBqT5ftk/OD+7oLfIlb5L+nqcP46e92mXf6apEDTogbl3hQ538dD3n/W2glNCLAvE1DdfrKwS4hQhxCzkHuVLG4HftAB/KlZR8CWZnW3R0Qi1XkjioiekO6xVlDb4lejxbyxp2hy8VfHyNHBl0VPHOtRxZzrQw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dkN442Bce/wFxp5ggxMBYftfeg6APOxnMx5BVsNf6eM=;
 b=o1V3skWkrJkqBX9SMr9W+o4Lm+wC2wLbqDvg4wlxxkLWBHTx2s6DD0wjilJDZN4gK8F7DkCwysdT2ra6XYkHyx8RqXndp9xPJMwF1e2UiwMKUd6p0yIdYx4BlDSWxaBHXltNNIH9Ude+mvF36mnP6b4+igky3UcWkIEdy97zQbOMRVs02F7V2Mv7RIft9i7KQLoGs0gLGWxZg6gWo8vN7Oag2+1PGO8Pwh0XEEbXqPtH6pLBNtekePI8vfUOlhakqgXm+Avo5pVi+ixjUDb0muC55ol/I3EUnWJ/hsKHYloSkzrN0rPZDNnM6Ifc2eG3lQ+vT/ZzVXmynMKBkl49Pw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <723292e9-5e2c-4899-ab91-80fc992e4597@epam.com>
Date: Sun, 3 May 2026 12:44:28 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 04/23] xen/arm: vIOMMU: add generic vIOMMU framework
To: Julien Grall <julien@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
 <c12f84b9306a2b74a555c710f21f5362120205ed.1774918270.git.milan_djokic@epam.com>
 <8cb4ca97-e605-4416-b532-a8df4816a0ee@xen.org>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <8cb4ca97-e605-4416-b532-a8df4816a0ee@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: VI1PR08CA0242.eurprd08.prod.outlook.com
 (2603:10a6:803:dc::15) To AS2PR03MB9587.eurprd03.prod.outlook.com
 (2603:10a6:20b:595::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB9587:EE_|PAVPR03MB9797:EE_
X-MS-Office365-Filtering-Correlation-Id: 6d4c0a53-257f-4837-4e3c-08dea900f40f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|7416014|376014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	im4RpiXINgwUoteRHpgYpE2NDbmElYW8LzyVIioOIPDB3aWGpltGRjefb2Z/zJYD/XakwskwhufhakzOH9e0yCY2kC8umVixKVY9BICkrpG4cq4ohSLiQpk9fA8pKm6/6lV5fYlbelsWN96RzJYMDMmSK6VFYD9Gowp1uVyx2furTSSweNcYURw5ZZgrkWx5LPwBi/+C3xYWX6YoTQk5MGWYekpJwWyuVwvilz09i7zKncpB1PEji+LGeU08i41aP+vaLjjLE24GMX0lxb8Uz1RBskjobwSC0S/4KquC1ydTI0tFGT1hR11ISQxtpmckBnUgdVkQlwco1VKB6ioOCS3ndj7ZF0wN2UybFvS4+j8QJ/NoXT7hJBJ+H2YFwDbcf/R7eDnCu4O/ir2WMqkeIx9EqfzD0fY84MJJjHVd8X/U4enL6G+gBUDhpf5jx7csUJlk7AGUs06omTSN9IUD2RraCHlBDs/zmt61lU/a2nMm6wr2PSCD3dm9qKUj3p4VtgDPFOysJ6b70/de3TdIas+KMDztCzZfbohLvD1X9Kw7LD5UY06LE9oE3fIREiJ1SAgLue34bCRlRb+LF6ZFoeh38+sZ+cStKm73i1llCD7Vf8+oKA1vIMML2Px5dt4gbeTMTi3m+UKmUSk+hvwsxnflTvKki0EI8oft35Pkgra0oeK6rjM0kv8HDcxH6w+J
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB9587.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MEVMZXhodzMzSUNWWG4xNVY1VjdYUDRQV0NYSmx1c0RHUnY0RzdmK3gzeEd4?=
 =?utf-8?B?eDkybVBwYW1zN3NCTEsyQm9GQTZ1R01NUjF6NVUvaEJMWEQ0dld3bm4zc1NG?=
 =?utf-8?B?dXJOWi85VEpGcGYvNjZQZWtqUk82MWNHcFFBa28wSy9Zd1QzVUhsMytJZU1L?=
 =?utf-8?B?U1dKMnlBYk9nVzYwL3pqZnZENW5ZZmo5bHlxQjBFSFJhOW1OejBEUXp2TnBv?=
 =?utf-8?B?cldiUEt5Y3NPZnJqTU1qVEQ2cmc5UTlTZXkvZGNSZTQzQTcxRmx0dkQ0V0pj?=
 =?utf-8?B?RW1xUHF1T09PVkF4UHlqcnRaQVVkcUhObCtMRU50RVRWaTI2UklPNmVDSGlG?=
 =?utf-8?B?d09uR2Rha1hTYlh2K3FVOUpBcWhGaHJGWlFEVGM0MG1YTTFPQ0xadGt3bVM2?=
 =?utf-8?B?L3prYllHTG1TcVdDOVpNNHdHbmVQa0IrTW9mVUxVeThnS29aNHZkUXY3QWxa?=
 =?utf-8?B?U0luWmpEdGxNc3VudG5STEQvb3FmK1pRaUFrbGh3SG44Z2NSZGs1b054YmNG?=
 =?utf-8?B?bTU5bWhZRFpSSlIrQXBRV0l4RSs2WGlDRGh1dHNCa3NDSzN5TjJQUDhlRHEr?=
 =?utf-8?B?SXV6U1FvQWJYOWcxN1V2czFXdDUyVjJ6clRtNHErR0VRR1NhWEQ0bEgzVVZN?=
 =?utf-8?B?SEF4cXJBQk1qay93MUhRWE1mckdzZVlqRWdiOTJRNWk4Q3pDQWtZa3J3T3FI?=
 =?utf-8?B?emJwM1oyQ0MxMXhSdnJtZHBjT3YwWVRZVnNtRkhiS1ZzN2F3bkdxbVowdHQ1?=
 =?utf-8?B?RkNadURQZld5M1Zqa0JkNi8vNGFnK2Vpb0dTZUhZS2NTRHJtdXVkc1ZzRXFx?=
 =?utf-8?B?TDl2RXJZS2tacjFpRGpmR2dTT0tCY2JiZ0VtY0p3U0VlSXdFdm03WUsySkZP?=
 =?utf-8?B?YkZxU0ZsaGVGd1ZINXEzdFFjWTVwVUgwMDR5VWc4VDhUcmxDYVBPMnVhTHZY?=
 =?utf-8?B?RGxhTFZBY2x0YVRIcjBpRUxuUEY4N3hYTHVVU2hJOTlEQW5NNFZPQzNDYzZZ?=
 =?utf-8?B?cjlEWFNsUVpWcE5DUkRYM212bVJiQjU3cnhwWHRVRmNmNUpYeHptSzRMYkVZ?=
 =?utf-8?B?WkxQbmpHeFJZeWErSElMWC9IRU1oSHpPdlVtS1BDTk9CNjA4S0M5ZElVUGlr?=
 =?utf-8?B?SkFHZndWYVlhTmJYdGJPMFgvT0IyMXMxUjUxMlUweG9zd0lVSzNXRjJYeTJP?=
 =?utf-8?B?djA5Z1FIZ3U0MCtoNGhqcnlJM0hKRmtQNnVGbmFVdlhtUktFMy9WUlhPUWtD?=
 =?utf-8?B?MTQ0NHBRREE4RURKY2lzNHNOUnU3SUJHV0NycGJuNEJYTGhuNlI3ZHVzZ3M2?=
 =?utf-8?B?TDVVTGJnYkdmc1lxOENhcldvVXFmZS9BRjROWlYzWUh1UmxGUHhWQnJVWmlC?=
 =?utf-8?B?R05IUk9WUnFlSXUyeE4xeEdBRC9qN0JRaU5iM3Vnd3BIWDFVbDAycDNFMFFt?=
 =?utf-8?B?Qko3STZoTGNEU0dTOWw4N01paUdKQVJFa3F6VEdKc1FHS1YrY2VhRXAyOUFy?=
 =?utf-8?B?YktCR1lxTW1DRyswa3hCRkhZLzhBMTEwMnZiSGdaeWRBb3cya2JGUTkrUlpM?=
 =?utf-8?B?eWl2amI2TWJvUERBeXpBR1gzZmltaVNIOVhScXBMd0hzRnI0YnFSMEdxcTdz?=
 =?utf-8?B?T3B5MjdiL3JzOHJBRWVJUkN0RWcwSU1YbnJzLzJnZjRoT0RqeG5sUFV6RTBR?=
 =?utf-8?B?eVExZ1VsMEZuK2hEYm1teXEybDZPb010VWZHc0tHdVozOW5mekIvYWx3dUQ5?=
 =?utf-8?B?Tk1NeDRidXpJZk1Dd2ZsM25hSmJ1Q0FEUmkwWDRLeVExaTQwYWdETy9jMWpm?=
 =?utf-8?B?R2x1NHYvejhlNy9lTFJaOHJOdGtiTGkyc2FPWWZaOXZRb2tkWm5obTRkSXRm?=
 =?utf-8?B?NnlOcEZxc1RKWThSK25zbGZRVThya2l6cXZsWmQ3Y0FjVWI1aTNXNUNoTEpq?=
 =?utf-8?B?ZzhXVmxUK0VlNzBCVDRidlk0MFFvS0xEcVR0Sm5VNFBUWGMzN2hxamNQVW5v?=
 =?utf-8?B?Szh2NE9Lc1NRZVBROHlYU1Y4NU9nb1ZwL0ZFSHRDQlZHYnVaSFBnZmNXeFdh?=
 =?utf-8?B?WDRNUUl2aEpIbllIdUt5cHZla0p0TUpGeDVHK3JPWTZVUmROZk81ZEhPNVJV?=
 =?utf-8?B?eExSa2hKVVVlVWpUYkhpZlNuNkoyWEpWcjFvYlppMVpvQjUzRVlZcGhFSU1Z?=
 =?utf-8?B?SUdnd2kwT1lucTlKcXZ1M3RqUVArZTRIaEY0Tk1CSC9IaVNFNm1nelNVS0VP?=
 =?utf-8?B?L2dNZmJSRnhndUVMWWV6WWN2cVhIMFZZNDRndmFwR0lTVzNJZFZneXd4eEsr?=
 =?utf-8?B?ZGw3UGJ0YW90SGFBNHQrS2pORCtuSzhtUHoxeW5OQ3AzY0FzeG1aQT09?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6d4c0a53-257f-4837-4e3c-08dea900f40f
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB9587.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2026 10:44:29.3760
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vO6ovfMCc3B/9OHulBpC+lck9suCoeJcllU8MAq2o2FTmdvmNUfIo7rmqyHevIbr2U6Eym+kXtn3jUT+BZddhQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9797
X-purgate-ID: tlsNG-c1860d/1777805071-C3370DB1-D35D668D/0/0
X-purgate-type: clean
X-purgate-size: 12167

Hi Julien,

On 4/14/26 08:15, Julien Grall wrote:
> Hi Milan,
> 
> On 31/03/2026 10:52, Milan Djokic wrote:
>> From: Rahul Singh <rahul.singh@arm.com>
>>
>> This patch adds basic framework for vIOMMU.
>>
>> Signed-off-by: Rahul Singh <rahul.singh@arm.com>
>> Signed-off-by: Milan Djokic <milan_djokic@epam.com>
>> ---
>>    xen/arch/arm/dom0less-build.c        |  2 +
>>    xen/arch/arm/domain.c                | 33 +++++++++++++
>>    xen/arch/arm/domain_build.c          |  2 +
>>    xen/arch/arm/include/asm/viommu.h    | 70 ++++++++++++++++++++++++++++
>>    xen/drivers/passthrough/Kconfig      |  5 ++
>>    xen/drivers/passthrough/arm/Makefile |  1 +
>>    xen/drivers/passthrough/arm/viommu.c | 48 +++++++++++++++++++
>>    xen/include/public/arch-arm.h        |  5 ++
>>    xen/include/public/domctl.h          |  4 +-
>>    9 files changed, 168 insertions(+), 2 deletions(-)
>>    create mode 100644 xen/arch/arm/include/asm/viommu.h
>>    create mode 100644 xen/drivers/passthrough/arm/viommu.c
>>
>> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
>> index 4181c10538..067835e5d0 100644
>> --- a/xen/arch/arm/dom0less-build.c
>> +++ b/xen/arch/arm/dom0less-build.c
>> @@ -23,6 +23,7 @@
>>    #include <asm/arm64/sve.h>
>>    #include <asm/domain_build.h>
>>    #include <asm/firmware/sci.h>
>> +#include <asm/viommu.h>
>>    #include <asm/grant_table.h>
>>    #include <asm/setup.h>
>>    
>> @@ -317,6 +318,7 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
>>        uint32_t val;
>>    
>>        d_cfg->arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE;
>> +    d_cfg->arch.viommu_type = viommu_get_type();
>>        d_cfg->flags |= XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap;
>>    
>>        if ( domu_dt_sci_parse(node, d_cfg) )
>> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
>> index 94b9858ad2..241f87386b 100644
>> --- a/xen/arch/arm/domain.c
>> +++ b/xen/arch/arm/domain.c
>> @@ -28,6 +28,7 @@
>>    #include <asm/tee/tee.h>
>>    #include <asm/vfp.h>
>>    #include <asm/vgic.h>
>> +#include <asm/viommu.h>
>>    #include <asm/vtimer.h>
>>    
>>    #include "vpci.h"
>> @@ -550,6 +551,14 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>>            return -EINVAL;
>>        }
>>    
>> +    /* Check config structure padding */
>> +    if ( config->arch.pad )
>> +    {
>> +        dprintk(XENLOG_INFO,
>> +            "Invalid input config, padding must be zero\n");
>> +        return -EINVAL;
>> +    }
>> +
>>        /* Check feature flags */
>>        if ( sve_vl_bits > 0 )
>>        {
>> @@ -626,6 +635,21 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>>            return -EINVAL;
>>        }
>>    
>> +    if ( !(config->flags & XEN_DOMCTL_CDF_iommu) &&
>> +         config->arch.viommu_type != XEN_DOMCTL_CONFIG_VIOMMU_NONE )
>> +    {
>> +        dprintk(XENLOG_INFO,
>> +                "vIOMMU requested while iommu not enabled for domain\n");
>> +        return -EINVAL;
>> +    }
>> +
>> +    if ( config->arch.viommu_type != XEN_DOMCTL_CONFIG_VIOMMU_NONE )
>> +    {
>> +        dprintk(XENLOG_INFO,
>> +                "vIOMMU type requested not supported by the platform or Xen\n");
>> +        return -EINVAL;
>> +    }
>> +
>>        return sci_domain_sanitise_config(config);
>>    }
>>    
>> @@ -721,6 +745,9 @@ int arch_domain_create(struct domain *d,
>>        if ( (rc = sci_domain_init(d, config)) != 0 )
>>            goto fail;
>>    
>> +    if ( (rc = domain_viommu_init(d, config->arch.viommu_type)) != 0 )
>> +        goto fail;
>> +
>>        return 0;
>>    
>>    fail:
>> @@ -965,6 +992,7 @@ enum {
>>        PROG_pci = 1,
>>        PROG_sci,
>>        PROG_tee,
>> +    PROG_viommu,
> 
> I am not entirely sure about the position. Is the intention to
> relinquish the viommu state *after* the devices are detached? If so, it
> would be better to move this call just after 'PROG_pci' and add a
> comment indicating the dependency.
> 

Yes, viommu cleanup should be performed after the devices are released.
After the rebase, it ended up in the wrong place because new components 
were added in the meantime.
I will update this and add a note for dependecy.

>>        PROG_xen,
>>        PROG_page,
>>        PROG_mapping,
>> @@ -1021,6 +1049,11 @@ int domain_relinquish_resources(struct domain *d)
>>            if (ret )
>>                return ret;
>>    
>> +    PROGRESS(viommu):
>> +        ret = viommu_relinquish_resources(d);
>> +        if (ret )
>> +            return ret;
>> +
>>        PROGRESS(xen):
>>            ret = relinquish_memory(d, &d->xenpage_list);
>>            if ( ret )
>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>> index e8795745dd..a51563ee3d 100644
>> --- a/xen/arch/arm/domain_build.c
>> +++ b/xen/arch/arm/domain_build.c
>> @@ -35,6 +35,7 @@
>>    #include <asm/arm64/sve.h>
>>    #include <asm/cpufeature.h>
>>    #include <asm/domain_build.h>
>> +#include <asm/viommu.h>
>>    #include <xen/event.h>
>>    
>>    #include <xen/irq.h>
>> @@ -1946,6 +1947,7 @@ void __init create_dom0(void)
>>        dom0_cfg.arch.nr_spis = vgic_def_nr_spis();
>>        dom0_cfg.arch.tee_type = tee_get_type();
>>        dom0_cfg.max_vcpus = dom0_max_vcpus();
>> +    dom0_cfg.arch.viommu_type = viommu_get_type();
>>    
>>        if ( iommu_enabled )
>>            dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
>> diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/include/asm/viommu.h
>> new file mode 100644
>> index 0000000000..4598f543b8
>> --- /dev/null
>> +++ b/xen/arch/arm/include/asm/viommu.h
>> @@ -0,0 +1,70 @@
>> +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
>> +#ifndef __ARCH_ARM_VIOMMU_H__
>> +#define __ARCH_ARM_VIOMMU_H__
>> +
>> +#ifdef CONFIG_ARM_VIRTUAL_IOMMU
>> +
>> +#include <xen/lib.h>
>> +#include <xen/types.h>
>> +#include <public/xen.h>
>> +
>> +struct viommu_ops {
>> +    /*
>> +     * Called during domain construction if toolstack requests to enable
>> +     * vIOMMU support.
>> +     */
>> +    int (*domain_init)(struct domain *d);
>> +
>> +    /*
>> +     * Called during domain destruction to free resources used by vIOMMU.
>> +     */
>> +    int (*relinquish_resources)(struct domain *d);
>> +};
>> +
>> +struct viommu_desc {
>> +    /* vIOMMU domains init/free operations described above. */
>> +    const struct viommu_ops *ops;
>> +
>> +    /*
>> +     * ID of vIOMMU. Corresponds to xen_arch_domainconfig.viommu_type.
>> +     * Should be one of XEN_DOMCTL_CONFIG_VIOMMU_xxx
>> +     */
>> +    uint16_t viommu_type;
> 
> Below, you define viommu_type as 'uint8_t'. So shouldn't this also be
> 'uint8_t'?
> 

Should be uint8_t, will fix it.

>> +};
>> +
>> +int domain_viommu_init(struct domain *d, uint16_t viommu_type);
>> +int viommu_relinquish_resources(struct domain *d);
>> +uint16_t viommu_get_type(void);
>> +
>> +#else
>> +
>> +static inline uint8_t viommu_get_type(void)
>> +{
>> +    return XEN_DOMCTL_CONFIG_VIOMMU_NONE;
>> +}
>> +
>> +static inline int domain_viommu_init(struct domain *d, uint16_t viommu_type)
>> +{
>> +    if ( likely(viommu_type == XEN_DOMCTL_CONFIG_VIOMMU_NONE) )
>> +        return 0;
>> +
>> +    return -ENODEV;
>> +}
>> +
>> +static inline int viommu_relinquish_resources(struct domain *d)
>> +{
>> +    return 0;
>> +}
>> +
>> +#endif /* CONFIG_ARM_VIRTUAL_IOMMU */
>> +
>> +#endif /* __ARCH_ARM_VIOMMU_H__ */
>> +
>> +/*
>> + * Local variables:
>> + * mode: C
>> + * c-file-style: "BSD"
>> + * c-basic-offset: 4
>> + * indent-tabs-mode: nil
>> + * End:
>> + */
>> diff --git a/xen/drivers/passthrough/Kconfig b/xen/drivers/passthrough/Kconfig
>> index b413c33a4c..3c174bc87b 100644
>> --- a/xen/drivers/passthrough/Kconfig
>> +++ b/xen/drivers/passthrough/Kconfig
>> @@ -35,6 +35,11 @@ config IPMMU_VMSA
>>    	  (H3 ES3.0, M3-W+, etc) or Gen4 SoCs which IPMMU hardware supports stage 2
>>    	  translation table format and is able to use CPU's P2M table as is.
>>    
>> +config ARM_VIRTUAL_IOMMU
>> +	bool "Virtual IOMMU Support (UNSUPPORTED)" if UNSUPPORTED
>> +	help
>> +	 Support virtual IOMMU infrastructure to implement vIOMMU.
>> +
>>    endif
>>    
>>    config AMD_IOMMU
>> diff --git a/xen/drivers/passthrough/arm/Makefile b/xen/drivers/passthrough/arm/Makefile
>> index c5fb3b58a5..c3783188e3 100644
>> --- a/xen/drivers/passthrough/arm/Makefile
>> +++ b/xen/drivers/passthrough/arm/Makefile
>> @@ -2,3 +2,4 @@ obj-y += iommu.o iommu_helpers.o iommu_fwspec.o
>>    obj-$(CONFIG_ARM_SMMU) += smmu.o
>>    obj-$(CONFIG_IPMMU_VMSA) += ipmmu-vmsa.o
>>    obj-$(CONFIG_ARM_SMMU_V3) += smmu-v3.o
>> +obj-$(CONFIG_ARM_VIRTUAL_IOMMU) += viommu.o
>> diff --git a/xen/drivers/passthrough/arm/viommu.c b/xen/drivers/passthrough/arm/viommu.c
>> new file mode 100644
>> index 0000000000..7ab6061e34
>> --- /dev/null
>> +++ b/xen/drivers/passthrough/arm/viommu.c
>> @@ -0,0 +1,48 @@
>> +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
>> +
>> +#include <xen/errno.h>
>> +#include <xen/init.h>
>> +#include <xen/types.h>
>> +
>> +#include <asm/viommu.h>
>> +
>> +const struct viommu_desc __read_mostly *cur_viommu;
> 
> You don't seem to define 'cur_viommmu' in the header. So shouldn't this
> be 'static'? Also, AFAICT, 'cur_viommu' would be set only once at boot.
> So rather than using __read_mostly, you probably want to use
> '__ro_after_init'.
> 

I will update the 'cur_viommu' properties and add a set function for it.


>> +
>> +int domain_viommu_init(struct domain *d, uint16_t viommu_type)
>> +{
>> +    if ( viommu_type == XEN_DOMCTL_CONFIG_VIOMMU_NONE )
>> +        return 0;
>> +
>> +    if ( !cur_viommu )
>> +        return -ENODEV;
>> +
>> +    if ( cur_viommu->viommu_type != viommu_type )
>> +        return -EINVAL;
>> +
>> +    return cur_viommu->ops->domain_init(d);
>> +}
>> +
>> +int viommu_relinquish_resources(struct domain *d)
>> +{
>> +    if ( !cur_viommu )
>> +        return 0;
>> +
>> +    return cur_viommu->ops->relinquish_resources(d);
>> +}
>> +
>> +uint16_t viommu_get_type(void)
>> +{
>> +    if ( !cur_viommu )
>> +        return XEN_DOMCTL_CONFIG_VIOMMU_NONE;
>> +
>> +    return cur_viommu->viommu_type;
>> +}
>> +
>> +/*
>> + * Local variables:
>> + * mode: C
>> + * c-file-style: "BSD"
>> + * c-basic-offset: 4
>> + * indent-tabs-mode: nil
>> + * End:
>> + */
>> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
>> index cd563cf706..d4953d40fd 100644
>> --- a/xen/include/public/arch-arm.h
>> +++ b/xen/include/public/arch-arm.h
>> @@ -330,6 +330,8 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
>>    #define XEN_DOMCTL_CONFIG_ARM_SCI_NONE      0
>>    #define XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC  1
>>    
>> +#define XEN_DOMCTL_CONFIG_VIOMMU_NONE   0
>> +
>>    struct xen_arch_domainconfig {
>>        /* IN/OUT */
>>        uint8_t gic_version;
>> @@ -355,6 +357,9 @@ struct xen_arch_domainconfig {
>>        uint32_t clock_frequency;
>>        /* IN */
>>        uint8_t arm_sci_type;
>> +    /* IN */
>> +    uint8_t viommu_type;
>> +    uint16_t pad;
>>    };
>>    #endif /* __XEN__ || __XEN_TOOLS__ */
>>    
>> diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
>> index 8f6708c0a7..23124547f3 100644
>> --- a/xen/include/public/domctl.h
>> +++ b/xen/include/public/domctl.h
>> @@ -30,9 +30,9 @@
>>     * fields) don't require a change of the version.
>>     * Stable ops are NOT covered by XEN_DOMCTL_INTERFACE_VERSION!
>>     *
>> - * Last version bump: Xen 4.19
>> + * Last version bump: Xen 4.22
>>     */
>> -#define XEN_DOMCTL_INTERFACE_VERSION 0x00000017
>> +#define XEN_DOMCTL_INTERFACE_VERSION 0x00000018
>>    
>>    /*
>>     * NB. xen_domctl.domain is an IN/OUT parameter for this operation.
> 
> Cheers,
> 

BR,
Milan



From xen-devel-bounces@lists.xenproject.org Sun May 03 11:05:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 May 2026 11:05:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299330.1573928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJUdD-00086R-2x; Sun, 03 May 2026 11:05:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299330.1573928; Sun, 03 May 2026 11:05:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJUdC-00086I-UZ; Sun, 03 May 2026 11:05:02 +0000
Received: by outflank-mailman (input) for mailman id 1299330;
 Sun, 03 May 2026 11:05:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1wJUdB-000869-Vx
 for xen-devel@lists.xenproject.org; Sun, 03 May 2026 11:05:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJUdA-00FgdB-Sq
 for xen-devel@lists.xenproject.org; Sun, 03 May 2026 13:05:00 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69f72b9f-e002-0a2a0a5209dd-0a2a4502ccbe-22
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 13:05:00 +0200
Received: from [52.101.72.110]
 (helo=AM0PR02CU008.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69f72bdc-af86-0a2a45020019-3465486e8925-3
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 13:05:00 +0200
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com (2603:10a6:20b:595::7)
 by DU0PR03MB9080.eurprd03.prod.outlook.com (2603:10a6:10:467::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Sun, 3 May
 2026 11:04:57 +0000
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5]) by AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5%4]) with mapi id 15.20.9870.023; Sun, 3 May 2026
 11:04:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HsAENn8+C/70MlembmHeiCdPgwJpRofQmJIXpWmikOtpLGbxJ4cDvfRQ6v4nWXWijrCkvbK/kCX/azlud7zhzl1cNQNQCuQ61k9Irjqjzcn7vw9Fbh4MslI8NFGOwrysAA+xytNlRyPs7mp3NcG4wef35LRyj/cqwYdrzG21ySUocf0yF+XpAEvDvlpyOZfpWTl3Lsa9pEHYCnJF6x03Cm0uROc/s69aLirLNKYcVB9BXBaHxMdDfhUTuARc3PTS+SXXdPGSCv9jpcEXNXBA8TP27foI3Ao7I+yUCxxTAxhZxuWOGQ2d4encDRb0CYwewPxuBnL/G3Gy304CYawmzg==
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=W0mlhXQDrnEd0jGP34J37YE6/XNOg5kxp8uDHpTU51M=;
 b=MjXeOST2jzPLQr+tZdAMVfwhn6Zj59ZRcmc5VnV9fYPK6OTTrv4z0QjH0OEPM21r0zcCYctjoFxl+owdNlPKFk+Rl9NH2+3/Vd7MSgM8yKEhmI0/Cg3hBkDAxF1IaPHfoKzJ2Emm3i/uWKArH/Ir0CurBVNZom0x80JsaNfNTWdD/HS+VRyjau/yYFwjzkNGTXdTbvbh3EN5xLjXDLGjp+RjiZkGGY6LcOKTCY2lJCCQjt05c8HiYL0MY9zbeme8ASEzmiNjKQHigNY/dPFRRA2g5FHs1K6CLsH7P8YlTeU6lDp+nc55emiW0m0GOCKhmjHqTE3fbfM6BFBIj4j4Bg==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=W0mlhXQDrnEd0jGP34J37YE6/XNOg5kxp8uDHpTU51M=;
 b=PyCT7AeDqFq+Lyi8+1qQW8z03aN6jLCz7cXl9S84/GiIvY3R/v4ZDhEDD+kXh/yMZI5nUW8mlBLGdg/U5kY4iB9U1exCFbZ7kx4n2tZ4Ka/DzV2PC4YleKxFfPylPkbFPDnYMP3hhrryjf6LcpyrR1A+gq8dgqtA1dpEvISiPCgSdueMf3A6YWIvOzlX7uF9NOcoiThEoK7c9TfIV1qOpTB6Ps2CDLVm6RkcbZ3HM7jXDvE9ZUJ1V/9/qprhSJEndWaJFwVkY8mKKrMavRjpwc+gCIP8z8WSfLdiZpPkGHTf2LTbZXGM1E/ThuRP8ktlihiH4hrLTwizMZ5hf626kw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <25bf16a0-0462-484b-8ce0-690315d8a36f@epam.com>
Date: Sun, 3 May 2026 13:04:55 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/23] xen/arm: vsmmuv3: Add dummy support for virtual
 SMMUv3 for guests
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Rahul Singh <Rahul.Singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
 <97aa20fdcec324bb58c6869ddcba5fcf29bf75b3.1774918270.git.milan_djokic@epam.com>
 <B816D34B-290F-4C1C-A66A-9124A26AE07F@arm.com>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <B816D34B-290F-4C1C-A66A-9124A26AE07F@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: VI1PR07CA0241.eurprd07.prod.outlook.com
 (2603:10a6:802:58::44) To AS2PR03MB9587.eurprd03.prod.outlook.com
 (2603:10a6:20b:595::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB9587:EE_|DU0PR03MB9080:EE_
X-MS-Office365-Filtering-Correlation-Id: 04e4ae87-08c7-49e9-cca6-08dea903d01d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	54M5urPuLyAq/KCNSm2b7g8sipkPxL+BotrtYG7hOcvsm+A5/2o6aGQMALfzQyqAkVZThBFZSSk+HsTLk9r/0dzpRng9XU5Vsuec3PsjZ2YPisSJAVqT53nTKDCHePiZNpTL0l3l39akGM5rugugcoz7lDW2X2QwM3H5C8Bj7mGJSFv30+F1sdw8bub2pLK6YUoVBG1CMDmblFhGQsmaFmXpp8z49DMjQRNsArjk4qlTGxH/SK9zyFQLO3oCWA83NH1zGkXFmHrcBUxCySuyGEBRjCkSFz8YdzBa7lth06HrKPoXS17yt13X499fGZvw+siG2pFSOUYhagckyiF6GuXRczvRfw+rfSTDJNIo2cGOK9/9mYU/QzFzGD+5qqE+TK+1x7TYS1uAYS264GXTqpLknpUEYH1ccyvfxYd9gNvAWmf2DVp9xiKfhbLRBvZYvtzC3faloZjH8X+vGnzafSTTZDe0EfKmwq+G5MHOWTRL6DqpJsdEu101NzFzvyv+WAs3bQ+YaGkudBL5VMTqnbHNsBH57FYBL60fVGpt24511PUETasZuVaAyFLE/NcfPGjjaXP1E+rFoIZjRDRqMCvXRaOTDjILJXczMYMy2LLVWASRBlstQE2Xu64Ei5khMAZ47flF54dYWJrMnTKIcpx+IYJQ3kHCshyBI/NeGY+niiB9GhSQ7QxXhi3CBWbw
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB9587.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MTBTL1lBMkZMUUJjaGZEUVdVcnBsVUJFR1JlanRlUFFKV3Fnanc0a0NBNCs1?=
 =?utf-8?B?bW1NUy9NeUFjemg3b3lhNTVURkhhaHFaY2JhRjArWU1nSVFxeFdMQ0txOGk2?=
 =?utf-8?B?MEtFRUpaTGZqbkZRZmR5anVncUFpdjRLVGVFbC94cEx4OXJiTjN0azU2Z1Zw?=
 =?utf-8?B?YVhRRXhrblJFZDhjVTVLa2tKSGhwMSt4dEdVcUlGNW4zOVRiODg0M1QyVHI4?=
 =?utf-8?B?VFhQNThYQjJreU4ybk9oTXZDNm1QUlQ2S3dpRXhtRFhMTEZ3RklzbG9QalBl?=
 =?utf-8?B?dUNxNXBzSVpTYllaRW9XVExaV29QZzJURUFzd1kycmhwQ0prSHZuTTY0bTdP?=
 =?utf-8?B?RUJEbzNnTmQzby9BY000KzBPekMxTGJvWlJwMEpVdlpaVXBaeTlSbGp2Z3BC?=
 =?utf-8?B?WnBab3o1bnhYU3V3VlVzUmprOXU1QW8reHBaSVlqcVBPT0VPaFJUd29BUXFj?=
 =?utf-8?B?NXY3TGNNaklGeExCL0lRRUpuWmpZSWNRK05xR3JHYjFOTWpFS0dFOGhwdzhC?=
 =?utf-8?B?S2pNdlQySWNzeCt0c0lXVWZwMkRKZW5EM2t4eFdRbG5mRndsbG9DeURkamlI?=
 =?utf-8?B?emdpWEJQOGNzTTZOY3JCSmRLb3F5UHRqT3VVbkMxRjlQVHZEdHJNdmxSRFhl?=
 =?utf-8?B?RnljRjE1Q3l3VEhENnhzWk01bi93SnJoNXA5QThTaG4wQVNxSXJhTGZQb2RG?=
 =?utf-8?B?RDh4UFpqOFFqRVdlbi9oei9uUkpDZm1YK1pQcmdEc2lyNWFpM0dZb0JLUmVr?=
 =?utf-8?B?Ukllc3ZGblF0KzVHSEFmemtnSTFaR0pwOFRuaWFLbTQveC94cnRrcVg5TUcy?=
 =?utf-8?B?QTEyK1BHTzcyVEVEZmpyUEx3OSt0bHZRYnBmdUg2QzBrRGxmQUtTeDRpcllW?=
 =?utf-8?B?RWE0dVdWSFNPNlZXK0hkSk9JaHllTnZOSkpVUkszellpS3lSQUlSODlySkdO?=
 =?utf-8?B?dmJIL2s1OW4xUFBzVTFUUUJBakNjMmNScHlFYm9TL2ozbU13Y1I2NG1PNWZK?=
 =?utf-8?B?eGsvejZMRFVIZERucFkrcnhrTTV5NkNlODMrcjlqMks5azRkRmxXOE5wVWZ2?=
 =?utf-8?B?c3dITGloRkkzWTdaNWE2M2RZVHRSVjZ5dk12N2ZYTVozVVFVaEQ2TkZqM25P?=
 =?utf-8?B?V2VUcDhHcStVRjNqY3ZVaVFxdzArS1k0R0JtcHc0S3dSQ01abzBuQVkxdEE2?=
 =?utf-8?B?c2VyWWlzRmkzc3VyWWp0NGZGbjNvWlpXTXlXeEZsUnJFYzlYU1BNNEQ0MmI5?=
 =?utf-8?B?bEZMTmJ6ZHRMUHVsam9YSnBCcUhYWGEvV1ZWSW01Z2ZBQzJ1TlBUb2FmZ3FO?=
 =?utf-8?B?SXY0QnI5N2RtWGhJcDZVYmJkZm5FYzlmYTlOYUx2K1ArL1pDRC9NUGtsWEFP?=
 =?utf-8?B?aERWcDY0amtKK0tXRU0xWXNwMlQ1emdQOFRDTkhuYkNNR3dtczJTZXR4YXRP?=
 =?utf-8?B?K1JnSk0wT29ZeXF4R3VEa2hxNUZaQnR0YmRPQnlSdlNManRYVmJPZDN2QjAz?=
 =?utf-8?B?Q0E1T1BHdWFHRGpsMDBrN05aUnFNOTJnQyt1bkJleDY2bEFsM1d1TDVkMzdF?=
 =?utf-8?B?OEZZMUJLUGR2ZjhiUWViSlJ6TkJtVjQ1Z21SMTR1RzdvSnFBWW9EcytvNWRx?=
 =?utf-8?B?dk1BdHhwRVFwdEYzQzN5d3YzcGY0M3JHbEJJcUJHYjZVTGlHK2xqY0R1S1U0?=
 =?utf-8?B?UVpjZkwyVlBiSDM3eFlldFVod2VpZjVhVHd2RGpHODgrRmd4VmNqQWI0eVg2?=
 =?utf-8?B?b0pnZklXeHFONG1FVFFuMUw2SnJ3ZlRBN2xvaWpRN3JKeWI0VUhQcWZxRnE4?=
 =?utf-8?B?bHJoazF5YnVsV0FRbk84VG9PaFkxYmJiVy9OOW5BbHRhbnpRTVFhcTRma2hh?=
 =?utf-8?B?NGdPWEYycC9IeTUvdEZhNG44WStaYTNvaSsyMUxhckRjM0FERzBMOTFWYnB5?=
 =?utf-8?B?UCtsd1VSNnhmZ3ZFQi9sNGJBb1h1ZGJXQkt2cnBKSTlkTVpZbkZCa1UvdENC?=
 =?utf-8?B?MmE0TjhlTVlXc3VNVnBpajZMMUhyNUdaakJYaVMxa3FzU0V6a1VLaWFubFNj?=
 =?utf-8?B?aFlpWHlOUjZsOHNPM09EdFVCdmlrZzBkRllXakFqMndtRnBFZTAxekVIK3h1?=
 =?utf-8?B?OTVOTjE0K3pGa09BOWRuVWtsSXBtQ3BTQllzL2phQi80ZllqTDlKYm9PV3Fp?=
 =?utf-8?B?aFBnTlJwS25KQm55RjVJZFRsbno1ZUMvNkFlNzFtcGkxclZSTm9MTzVpN2tM?=
 =?utf-8?B?ajBJUUdFQnArM1lTSnpUQThLMmluY3ZaYVdid0EzRE9JcjJiczdyQ2h0TFhX?=
 =?utf-8?B?VHFud3phZTYyUVRDL1VFZTA2Mkd2aHg4Y2F4bmZWaW93R0FZUU43UT09?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 04e4ae87-08c7-49e9-cca6-08dea903d01d
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB9587.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2026 11:04:57.6182
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hG/yqsVV/2bYUVEjJ43x/0yNylNTLeZ4Ig4DT0V9zTD88DI4/eWj4336mxjf+vN2hlPLJY94IxxNyUWaMBrEYg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9080
X-purgate-ID: tlsNG-720697/1777806300-89CC1161-3C275D95/0/0
X-purgate-type: clean
X-purgate-size: 4556

Hi Luca,

On 4/10/26 13:59, Luca Fancellu wrote:
> Hi Milan,
> 
> 
>>
>> diff --git a/xen/drivers/passthrough/arm/viommu.c b/xen/drivers/passthrough/arm/viommu.c
>> index 7ab6061e34..53ae46349a 100644
>> --- a/xen/drivers/passthrough/arm/viommu.c
>> +++ b/xen/drivers/passthrough/arm/viommu.c
>> @@ -2,12 +2,42 @@
>>
>> #include <xen/errno.h>
>> #include <xen/init.h>
>> +#include <xen/irq.h>
>> #include <xen/types.h>
>>
>> #include <asm/viommu.h>
>>
>> +/* List of all host IOMMUs */
>> +LIST_HEAD(host_iommu_list);
>> +
>> const struct viommu_desc __read_mostly *cur_viommu;
>>
>> +/* Common function for adding to host_iommu_list */
>> +void add_to_host_iommu_list(paddr_t addr, paddr_t size,
>> +                            const struct dt_device_node *node)
>> +{
>> +    struct host_iommu *iommu_data;
>> +
>> +    iommu_data = xzalloc(struct host_iommu);
>> +    if ( !iommu_data )
>> +        panic("vIOMMU: Cannot allocate memory for host IOMMU data\n");
>> +
>> +    iommu_data->addr = addr;
>> +    iommu_data->size = size;
>> +    iommu_data->dt_node = node;
>> +    iommu_data->irq = platform_get_irq(node, 0);
>> +    if ( iommu_data->irq < 0 )
>> +    {
>> +        gdprintk(XENLOG_ERR,
>> +                 "vIOMMU: Cannot find a valid IOMMU irq\n");
> 
> We need to free iommu_data here
> 

Yes, will fix this.

>> +        return;
>> +    }
>> +
>> +    printk("vIOMMU: Found IOMMU @0x%"PRIx64"\n", addr);
>> +
>> +    list_add_tail(&iommu_data->entry, &host_iommu_list);
>> +}
>> +
>> int domain_viommu_init(struct domain *d, uint16_t viommu_type)
>> {
>>      if ( viommu_type == XEN_DOMCTL_CONFIG_VIOMMU_NONE )
>> diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrough/arm/vsmmu-v3.c
>> new file mode 100644
>> index 0000000000..6b4009e5ef
>> --- /dev/null
>> +++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
>> @@ -0,0 +1,124 @@
>> +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
>> +
>> +#include <xen/param.h>
>> +#include <xen/sched.h>
>> +#include <asm/mmio.h>
>> +#include <asm/viommu.h>
>> +
>> +/* Struct to hold the vIOMMU ops and vIOMMU type */
>> +extern const struct viommu_desc __read_mostly *cur_viommu;
>> +
>> +struct virt_smmu {
>> +    struct      domain *d;
>> +    struct      list_head viommu_list;
>> +};
>> +
>> +static int vsmmuv3_mmio_write(struct vcpu *v, mmio_info_t *info,
>> +                              register_t r, void *priv)
>> +{
>> +    return IO_HANDLED;
>> +}
>> +
>> +static int vsmmuv3_mmio_read(struct vcpu *v, mmio_info_t *info,
>> +                             register_t *r, void *priv)
>> +{
>> +    return IO_HANDLED;
> 
> If this has to be treated for now as RAZ, being a dummy implementation,
> I would add *r = 0;
> 

As suggested in later comments, I will insert BUG_ON("unimplemented") 
for functions which are not complete at this point.

>> +}
>> +
>> +static const struct mmio_handler_ops vsmmuv3_mmio_handler = {
>> +    .read  = vsmmuv3_mmio_read,
>> +    .write = vsmmuv3_mmio_write,
>> +};
>> +
>> +static int vsmmuv3_init_single(struct domain *d, paddr_t addr, paddr_t size)
>> +{
>> +    struct virt_smmu *smmu;
>> +
>> +    smmu = xzalloc(struct virt_smmu);
>> +    if ( !smmu )
>> +        return -ENOMEM;
>> +
>> +    smmu->d = d;
>> +
>> +    register_mmio_handler(d, &vsmmuv3_mmio_handler, addr, size, smmu);
>> +
>> +    /* Register the vIOMMU to be able to clean it up later. */
>> +    list_add_tail(&smmu->viommu_list, &d->arch.viommu_list);
>> +
>> +    return 0;
>> +}
>> +
>> +int domain_vsmmuv3_init(struct domain *d)
>> +{
>> +    int ret;
>> +    INIT_LIST_HEAD(&d->arch.viommu_list);
>> +
>> +    if ( is_hardware_domain(d) )
>> +    {
>> +        struct host_iommu *hw_iommu;
>> +
>> +        list_for_each_entry(hw_iommu, &host_iommu_list, entry)
>> +        {
>> +            ret = vsmmuv3_init_single(d, hw_iommu->addr, hw_iommu->size);
>> +            if ( ret )
>> +                return ret;
>> +        }
>> +    }
>> +    else
>> +    {
>> +        ret = vsmmuv3_init_single(d, GUEST_VSMMUV3_BASE, GUEST_VSMMUV3_SIZE);
>> +        if ( ret )
>> +            return ret;
>> +    }
>> +
>> +    return 0;
>> +}
>> +
>> +int vsmmuv3_relinquish_resources(struct domain *d)
>> +{
>> +    struct virt_smmu *pos, *temp;
>> +
>> +    /* Cope with unitialized vIOMMU */
> 
> Typo s/unitialized/uninitialized/
> 
> 
> Cheers,
> Luca
> 
> 

BR,
Milan



From xen-devel-bounces@lists.xenproject.org Sun May 03 18:38:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 May 2026 18:38:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299396.1573936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJbhh-0002sd-76; Sun, 03 May 2026 18:38:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299396.1573936; Sun, 03 May 2026 18:38:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJbhh-0002sV-1z; Sun, 03 May 2026 18:38:09 +0000
Received: by outflank-mailman (input) for mailman id 1299396;
 Sun, 03 May 2026 18:38:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1wJbhf-0002sP-5j
 for xen-devel@lists.xenproject.org; Sun, 03 May 2026 18:38:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJbhb-00EyDe-Jc
 for xen-devel@lists.xenproject.org; Sun, 03 May 2026 20:38:05 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69f795f2-2eae-0a2a0a5409dd-0a2a450a942a-6
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 20:38:05 +0200
Received: from [52.101.84.87]
 (helo=DB3PR0202CU003.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69f7960c-56b3-0a2a450a0019-3465545772e9-3
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 20:38:04 +0200
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com (2603:10a6:20b:595::7)
 by DB9PR03MB7323.eurprd03.prod.outlook.com (2603:10a6:10:1fc::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Sun, 3 May
 2026 18:38:03 +0000
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5]) by AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5%4]) with mapi id 15.20.9870.023; Sun, 3 May 2026
 18:38:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nLc4q5dFvGM0YTsnHMAiAU9QURkGxvifYr/Q6ET5Qdwz1zqrg2K6O07Ez+YKV0sctJ6qAqy54b/ztsPNiTAWNHGfY8UQj0DmYtrYjRD3aNUq7NyG2NLEAJdRSsqxHWH/9yqNbtR7/TDWsMiH6pyFIHjsmOZ6I2UTzILjgMpEiCVxu7e2BNniBcOidgtFAcY+fqLPSbuRZCzsUretC5OWCOta7sIo/f79Lp+Ch739veqYGQgeSe073ltCbqa19HgBar1HQTo5QrnRNsO1XLJJfSEJ0RCn1lXzXeocCdPDc/4ojQO9ZLZxdPoezV+sf1xDFTUq00ClxXYmsJ0Sa6pKgQ==
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=cBi9RZgg+KAKbV99g5KWNq/L+nyJTJhanarj1Z/mYPI=;
 b=u0/A02PNyrIh8OhPWXC2tjSLM9MCVUr+bR8+i/KIG/uUx+qZaunUUigJPvvVb/uZuR4lhsynv429ggzE7tFoyRW7qz6mvOMsb0W3Y6d15smwjZJJTsCqJmB4JIxBwd57F7hRHOvSb6j+hWdsKwJKfty4ItkW9aBJ10LzcHI5fQA3pfAhYwGOYRQscXJGscReeToR4xLKZGJu9oLybmNvlHblggWppitSqlvr7iJHQzKmsSKrpsSYN6qVGahHmvez7EmXeW4X+fDUnX9cxqshdlpe3QtbxOwsWmPDLDP4QQUNqkxZWbdAxWrHmueGohyWLQqNBGZpSMbY7KVI7LRu9A==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cBi9RZgg+KAKbV99g5KWNq/L+nyJTJhanarj1Z/mYPI=;
 b=dlimKn3rHKBKXnVfjyly5mJXyC5/diffx6OQp4AP5FS8n8OJH1EWYhGGTR4aR4Px615OOzvUAYAA9/3SwJSLhVHaVJi/ZmpjSiqJtG3kJjXqLUS9E6LaGchP0QmKdqJqzPGBt3+9DomjVrZteqVSi1Go0tPYFfHD24QrV/BIvZquJ+zWdt2E/zT0Aes2YwEnj4rt8njIXiyYGk37OJmiYtYf0armuncrexdohb5C53pvBH22Nd+NL2EIdyRVwlixG4dukjpm8ooAmZ9bfhlUN+5+8w2Q8K2KNZj7IlsoME9xlt69fQXStir5DlKnYC9IyPhyBpXaaafQa8+NZg9NYQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <c8d683f1-eba2-4ec9-beca-84e6b5e80914@epam.com>
Date: Sun, 3 May 2026 20:38:01 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/23] xen/arm: vsmmuv3: Add dummy support for virtual
 SMMUv3 for guests
To: Julien Grall <julien@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
 <97aa20fdcec324bb58c6869ddcba5fcf29bf75b3.1774918270.git.milan_djokic@epam.com>
 <1dcec397-a265-4972-8f2c-fd10c6e0b6ad@xen.org>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <1dcec397-a265-4972-8f2c-fd10c6e0b6ad@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0289.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e7::18) To AS2PR03MB9587.eurprd03.prod.outlook.com
 (2603:10a6:20b:595::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB9587:EE_|DB9PR03MB7323:EE_
X-MS-Office365-Filtering-Correlation-Id: a84d04b1-ae78-4164-9eb9-08dea9431b96
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	xc3fbEBqgGBxsL4QqNFLuAXJErTAINibWhb+Om6VJcTAm50gRAzlUKn1y8+6XwhSdmxXbhq1jotJBuiQjCC56iTb2TvVXFJNsK4JFRr7dF6oBDLPtg8R8/PXBKC9iRto3s1FrcX94smvuooT5ZepAYj2W9fxsBU3/Vr2fHYBT4iYGxCVPaWSZc5C2t9FjgHaj50GsMUqBA5y+trsLAhl+VojLLUdr0ojnX/YMrQJmxMUk/e+tfGGlB2XRZruMN3fJTlqV0/skPqe11bHNCd2Bn2MAn98ZySs4c/8fM9+78noNJTQKgfLw7Ma6XvLHQK6Hgpw48g0Ne2jZ2dOO0ap1TOMKHK6O+Gsgvr8vN1lUt2c3ECmc6zEBjaUUqDNQpsD2nhk9QA+Vd41xzbvs96LZ87fxnJ8jIa3pjtypCjqmFzo4Mbdg0YPJkJfZMygsalCN2y6yzN32Q6aT2zpLZTNskxDf440xGm+FYDNjlIlmwAt0culFPtVclSMMbm6qxAzPNOJGMaTCKQLMRhIGX1Ab8ZQyLNvpegjLA8w4lwfZL53m28RbIF3CcwmUb4w7hEg7qMgBIGxNLPUvyNyWQDiPxcpa+Y2S5hhl78AgdZFybjVmHfw2xuTJvBksGzgWqmSv/bXo8LHOADuZrXDEM9DxSE9gRZaNOo5ZTSQqjVyAyMcPzEi4gkUHMWUMbFgw+iA
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB9587.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a2FKNy9iTXEwMDdnUWJmSy9xWG5rallNaVJVcEpMOFBvV3JxZW90a0thZkEx?=
 =?utf-8?B?TlduTlE1VHpZYU9nYlluRytZV3pOeEFXRTJ6NU12cTFXb00xUjlpV0wybUlk?=
 =?utf-8?B?dFJNUFJYaGdGOGVZRGtrU3ZIVS8vMlpBSW51VEEyeW85TDZVZkNBUTFvS0RT?=
 =?utf-8?B?S3lWOFFqdTRITzdhQ0RqblhTUXU4emxDSGd5VnZCUzE5S2tRWXFvdWV2c3Vy?=
 =?utf-8?B?Q3JRZFJZa1ZzNjlGSkdSZ0ZseTIxbUJHSnNZNlBIWDY3OVYrU2MwTHBRM09l?=
 =?utf-8?B?ZXJMS2dYbmc2WVZIcUttbHpGZlh3d1diUVBCSHdZN3QvZlVGNEFGOVd5MUlh?=
 =?utf-8?B?eVZCMWpoY2tGNDdxR25TU2paRTRZQ0tpRkY0OTE0UjlzUUpNOSthWkhOTlRr?=
 =?utf-8?B?T0V0ZFBnN0w2WThOak5mY0dwS2QvNUhLbDQ1ZjQ1ek1PWjBwWlk3OGpaRGJN?=
 =?utf-8?B?MzdLSDg3Y0VFbCt4bEVDdElXSWZDNEdHRUZ3ODBad1R0cUNFK1pTZlkxQVYv?=
 =?utf-8?B?Qnk0Q3ZrZTdIeFBTdlkvb0tDajJvQkFMK1NWbEUyVGZYbVdKOEtzTmF3SXRG?=
 =?utf-8?B?YXdMM21OcXd2ZFE0THIzMlRwTGlGMHBiLzBkRGk0cFQvL1B2ZU1hR08yRlhF?=
 =?utf-8?B?ajZzeVZza29HeVBwUWppNnoyK2IyV0ZjeXVnQ0pyTFI3SjZDUjZaWDU1ZVpH?=
 =?utf-8?B?Z3dweDhVUU12ZUZYcGFXN2N3bjhnZnh4WWlsSDVZYlVMaDJLb3FjRmFuOUJH?=
 =?utf-8?B?aW1QRkpOZ09CbWRKM09XREoxclM4aG9hUVVxdDl5SVZOMVRmcVJoeUI3cW42?=
 =?utf-8?B?Q3BhRHdoOWsyaTZmL0h0ZnlSQzQ3YzlWRjNOV1VtUzhxRjNERTFIaDlPeCsv?=
 =?utf-8?B?OUIwaTBqSVZOQTJ5VDFwc3JXSGE3SXJwN0lDVDhyL21lUGFwaU1TNHArVDE1?=
 =?utf-8?B?dXZmYWdRMHhOL25zbXUrNDBjNlR6RTBDOTg2ZFN0V1YzMEoyRlBoQWt5VXlI?=
 =?utf-8?B?MzJ3REZkU3lQWThENVlqaDhPanNmU1Qza2RwaVlGVEN4aDh2TVBJa3pRclJD?=
 =?utf-8?B?ekpKNlA2SWM1aXl6NlkySytyYVQ0ZFA1cTB0L3RTanNtYkQxbXEvSXFEUzdz?=
 =?utf-8?B?QStXRkZGR0IwZzZhdk9SeU1yaWNaL29mV0FKejJzRW80bGRRbzNsMmlsazlV?=
 =?utf-8?B?a3FBMnJUSjdBVUlVRHJvRS9VcktSY01SYVVGK2VSckpvTDBZK1ZNd3Z6OWdL?=
 =?utf-8?B?aUtsd2ViTEMxMno3MVl4WHdnNFRobTl6VitwaHo5WUkyUTR5L2QxdjllZjda?=
 =?utf-8?B?L09keW1TcnpvYlBiOUtrcTloUldrRXUzTjUzcXhaTmNzbk5WRHFIaVIyb1M1?=
 =?utf-8?B?enBjd3BjWnJ5QkNoRGFQbUpTWGdHVFE0T2FsL2Y1bytTWVIzL2FEM1dQeTdr?=
 =?utf-8?B?MEtMSHBHNFFiaFhKMG1FNlF2Y01jOGlOd2k2dmFXaE9jcFNnM2VUNkNGWklE?=
 =?utf-8?B?UVQ0MnhseUdSbU0veEI2VDcyNmdRQTIwNjB2SThVYXNvSW01L1hrdVNOeTd5?=
 =?utf-8?B?WnF5L3lwaE5Yb0V4cHBSM0dFVFhhazJiL1FFZVJQVDM5MXFSRWxXMFNmVG5B?=
 =?utf-8?B?Q3ZUb2NYMlQ5Vy9CbmJyZmErNzVLMmhlYjd6L1N2bFZYUERwOVhxdzBtN3Mz?=
 =?utf-8?B?eVJBU1drckIrQ3JEbUR2QnVTVHFHU0NtVjc0YlRjeFhrT0tHVU5mMkFnc0t5?=
 =?utf-8?B?WTBrUURqYlFRcUsybTh2NFVoNVhFZ3QrQjdyOVZSUlRRLzliTUZqQ1BwMW1P?=
 =?utf-8?B?RGc1bmRZM2QzaTdaK3hkdW81SzVXTWRJNytSdW9ZVDhyWHFwMFJ1TEhMQTc2?=
 =?utf-8?B?ZmJ6V0xXUCsxWGlrc1oxTW5UOTM2QTBlOURyVFZvVGtuYzRrdXlDVThzK0RN?=
 =?utf-8?B?S3k4Mm5mcXdzL3RseXlDZkhCR1p6bDg4a2J2VlZuVyt2eGxreW9HdHVhbHE2?=
 =?utf-8?B?TCtRS0tmZ1hjckJwZzgrcnF1MUwwOFVSZ0M1R3FjalRyV1hFdCtydEc5eE56?=
 =?utf-8?B?aW5MTU5MYWZnREdoWDN0c3BwaFo5cVFzc09nUWtQRWM5SkRvbzl3QVFTQ2pY?=
 =?utf-8?B?d2xWS1JzT3c5US9JNGh1VlJDS0s2RmVVZUw3QXlXQU5hYTJ1SEd4RkNock9I?=
 =?utf-8?B?VGdOUlo3SHBFYmJ5ZzlTSllFeEFwdTBlYjZDdTV0S1hhbkgyYU9USGZCTC9M?=
 =?utf-8?B?OWZBV0RCenZJMzRweUdZMFlJSitaTjVSSHJKWHhlL3VZSHhnV1VlSlBGL3Y2?=
 =?utf-8?B?THBydWwzeHQ0d1ZkVlVDaGYxTDg3bVZlVzdxZ1c1bXFvUVowZ3gzZz09?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a84d04b1-ae78-4164-9eb9-08dea9431b96
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB9587.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2026 18:38:02.7099
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UNW4LqfEVwJuwsDH4U4jtFkFsi0ULt2UHtO1+4DT3WOLQhudbMj9dfyJ2nKuSqV854kH2kRu52KohxAnZDX9Vw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7323
X-purgate-ID: tlsNG-4011c0/1777833485-CE7758B7-114FAA22/0/0
X-purgate-type: clean
X-purgate-size: 17478

Hi Julien,

On 4/14/26 09:09, Julien Grall wrote:
> Hi Milan,
> 
> On 31/03/2026 10:52, Milan Djokic wrote:
>> From: Rahul Singh <rahul.singh@arm.com>
>>
>> domain_viommu_init() will be called during domain creation and will add
>> the dummy trap handler for virtual IOMMUs for guests.
>>
>> A host IOMMU list will be created when host IOMMU devices are probed
>> and this list will be used to create the IOMMU device tree node for
>> dom0. For dom0, 1-1 mapping will be established between vIOMMU in dom0
>> and physical IOMMU.
>>
>> For domUs, the 1-N mapping will be established between domU and physical
>> IOMMUs. A new area has been reserved in the arm guest physical map at
>> which the emulated vIOMMU node is created in the device tree.
>>
>> Also set the vIOMMU type to vSMMUv3 to enable vIOMMU framework to call
>> vSMMUv3 domain creation/destroy functions.
>>
>> Signed-off-by: Rahul Singh <rahul.singh@arm.com>
>> Signed-off-by: Milan Djokic <milan_djokic@epam.com>
>> ---
>>    xen/arch/arm/domain.c                  |   3 +-
>>    xen/arch/arm/include/asm/domain.h      |   4 +
>>    xen/arch/arm/include/asm/viommu.h      |  20 ++++
>>    xen/drivers/passthrough/Kconfig        |   8 ++
>>    xen/drivers/passthrough/arm/Makefile   |   1 +
>>    xen/drivers/passthrough/arm/smmu-v3.c  |   7 ++
>>    xen/drivers/passthrough/arm/viommu.c   |  30 ++++++
>>    xen/drivers/passthrough/arm/vsmmu-v3.c | 124 +++++++++++++++++++++++++
>>    xen/drivers/passthrough/arm/vsmmu-v3.h |  20 ++++
>>    xen/include/public/arch-arm.h          |   7 +-
>>    10 files changed, 222 insertions(+), 2 deletions(-)
>>    create mode 100644 xen/drivers/passthrough/arm/vsmmu-v3.c
>>    create mode 100644 xen/drivers/passthrough/arm/vsmmu-v3.h
>>
>> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
>> index 241f87386b..b982d79b3b 100644
>> --- a/xen/arch/arm/domain.c
>> +++ b/xen/arch/arm/domain.c
>> @@ -643,7 +643,8 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>>            return -EINVAL;
>>        }
>>    
>> -    if ( config->arch.viommu_type != XEN_DOMCTL_CONFIG_VIOMMU_NONE )
>> +    if ( config->arch.viommu_type != XEN_DOMCTL_CONFIG_VIOMMU_NONE &&
>> +         config->arch.viommu_type != viommu_get_type() )
>>        {
>>            dprintk(XENLOG_INFO,
>>                    "vIOMMU type requested not supported by the platform or Xen\n");
>> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
>> index 758ad807e4..61108d0068 100644
>> --- a/xen/arch/arm/include/asm/domain.h
>> +++ b/xen/arch/arm/include/asm/domain.h
>> @@ -126,6 +126,10 @@ struct arch_domain
>>        void *sci_data;
>>    #endif
>>    
>> +#ifdef CONFIG_ARM_VIRTUAL_IOMMU
>> +    struct list_head viommu_list;     /* List of virtual IOMMUs */
>> +#endif
>> +
>>    }  __cacheline_aligned;
>>    
>>    struct arch_vcpu
>> diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/include/asm/viommu.h
>> index 4598f543b8..2a6742de73 100644
>> --- a/xen/arch/arm/include/asm/viommu.h
>> +++ b/xen/arch/arm/include/asm/viommu.h
>> @@ -5,9 +5,21 @@
>>    #ifdef CONFIG_ARM_VIRTUAL_IOMMU
>>    
>>    #include <xen/lib.h>
>> +#include <xen/list.h>
>>    #include <xen/types.h>
>>    #include <public/xen.h>
>>    
>> +extern struct list_head host_iommu_list;
>> +
>> +/* data structure for each hardware IOMMU */
>> +struct host_iommu {
>> +    struct list_head entry;
>> +    const struct dt_device_node *dt_node;
>> +    paddr_t addr;
>> +    paddr_t size;
>> +    uint32_t irq;
> 
> You don't seem to use ``irq`` in this patch. What is this meant to be
> used for?
> 

This field will be used for vIOMMU event queue creation for the hardware 
domain in a later patch (xen/arm: vsmmuv3: Add support for event queue 
and global error). The emulated IRQ and MMIO region for the hardware 
domain vIOMMU will match those of the host IOMMU.

>> +};
>> +
>>    struct viommu_ops {
>>        /*
>>         * Called during domain construction if toolstack requests to enable
>> @@ -35,6 +47,8 @@ struct viommu_desc {
>>    int domain_viommu_init(struct domain *d, uint16_t viommu_type);
>>    int viommu_relinquish_resources(struct domain *d);
>>    uint16_t viommu_get_type(void);
>> +void add_to_host_iommu_list(paddr_t addr, paddr_t size,
>> +                            const struct dt_device_node *node);
>>    
>>    #else
>>    
>> @@ -56,6 +70,12 @@ static inline int viommu_relinquish_resources(struct domain *d)
>>        return 0;
>>    }
>>    
>> +static inline void add_to_host_iommu_list(paddr_t addr, paddr_t size,
>> +                                          const struct dt_device_node *node)
>> +{
>> +    return;
>> +}
>> +
>>    #endif /* CONFIG_ARM_VIRTUAL_IOMMU */
>>    
>>    #endif /* __ARCH_ARM_VIOMMU_H__ */
>> diff --git a/xen/drivers/passthrough/Kconfig b/xen/drivers/passthrough/Kconfig
>> index 3c174bc87b..9c48e7415e 100644
>> --- a/xen/drivers/passthrough/Kconfig
>> +++ b/xen/drivers/passthrough/Kconfig
>> @@ -40,6 +40,14 @@ config ARM_VIRTUAL_IOMMU
>>    	help
>>    	 Support virtual IOMMU infrastructure to implement vIOMMU.
>>    
>> +config VIRTUAL_ARM_SMMU_V3
>> +	bool "ARM Ltd. Virtual SMMUv3 Support (UNSUPPORTED)"
>> +	depends on ARM_SMMU_V3 && ARM_VIRTUAL_IOMMU
>> +	help
>> +	 Support for implementations of the virtual ARM System MMU architecture
>> +	 version 3. Virtual SMMUv3 is unsupported feature and should not be used
>> +	 in production.
>> +
>>    endif
>>    
>>    config AMD_IOMMU
>> diff --git a/xen/drivers/passthrough/arm/Makefile b/xen/drivers/passthrough/arm/Makefile
>> index c3783188e3..c8f0a5f802 100644
>> --- a/xen/drivers/passthrough/arm/Makefile
>> +++ b/xen/drivers/passthrough/arm/Makefile
>> @@ -3,3 +3,4 @@ obj-$(CONFIG_ARM_SMMU) += smmu.o
>>    obj-$(CONFIG_IPMMU_VMSA) += ipmmu-vmsa.o
>>    obj-$(CONFIG_ARM_SMMU_V3) += smmu-v3.o
>>    obj-$(CONFIG_ARM_VIRTUAL_IOMMU) += viommu.o
>> +obj-$(CONFIG_VIRTUAL_ARM_SMMU_V3) += vsmmu-v3.o
>> diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
>> index 19e55b6c9b..87612df21d 100644
>> --- a/xen/drivers/passthrough/arm/smmu-v3.c
>> +++ b/xen/drivers/passthrough/arm/smmu-v3.c
>> @@ -93,6 +93,7 @@
>>    #include <asm/platform.h>
>>    
>>    #include "smmu-v3.h"
>> +#include "vsmmu-v3.h"
>>    
>>    #define ARM_SMMU_VTCR_SH_IS		3
>>    #define ARM_SMMU_VTCR_RGN_WBWA		1
>> @@ -2727,6 +2728,9 @@ static int __init arm_smmu_device_probe(struct platform_device *pdev)
>>    	list_add(&smmu->devices, &arm_smmu_devices);
>>    	spin_unlock(&arm_smmu_devices_lock);
>>    
>> +    /* Add to host IOMMU list to initialize vIOMMU for dom0 */
> 
> The indentation looks odd. Is this correctly aligned?
> 

Yes, it's wrong, will fix it.

>> +	add_to_host_iommu_list(ioaddr, iosize, dev_to_dt(pdev));
>> +
>>    	return 0;
>>    
>>    
>> @@ -3058,6 +3062,9 @@ static __init int arm_smmu_dt_init(struct dt_device_node *dev,
>>    
>>    	platform_features &= smmu->features;
>>    
>> +	/* Set vIOMMU type to SMMUv3 */
>> +	vsmmuv3_set_type();
>> +
>>    	return 0;
>>    }
>>    
>> diff --git a/xen/drivers/passthrough/arm/viommu.c b/xen/drivers/passthrough/arm/viommu.c
>> index 7ab6061e34..53ae46349a 100644
>> --- a/xen/drivers/passthrough/arm/viommu.c
>> +++ b/xen/drivers/passthrough/arm/viommu.c
>> @@ -2,12 +2,42 @@
>>    
>>    #include <xen/errno.h>
>>    #include <xen/init.h>
>> +#include <xen/irq.h>
>>    #include <xen/types.h>
>>    
>>    #include <asm/viommu.h>
>>    
>> +/* List of all host IOMMUs */
>> +LIST_HEAD(host_iommu_list);
> 
> I don't quite follow why this is part of the common code. That said, why
> do we need to register the host IOMMU? Wouldn't it be simpler to go
> through the list of pIOMMU in the vSMMU v3 implementation?
> 

``host_iommu_list`` is part of the generic code to allow reuse for other 
IOMMU types in the future. For example, it can be reused for Renesas 
IPMMU, rather than duplicating it.
As for why we need to register IOMMUs, it seems more suitable to create 
this list at initialization and add IOMMUs with the necessary properties 
when the pIOMMU is probed.
We can't reuse the same list from the SMMU driver because vIOMMU needs 
raw DT properties (address, size), which I don't think we can extract 
from the host driver list.


>> +
>>    const struct viommu_desc __read_mostly *cur_viommu;
>>    
>> +/* Common function for adding to host_iommu_list */
>> +void add_to_host_iommu_list(paddr_t addr, paddr_t size,
>> +                            const struct dt_device_node *node)
> 
> Is this supposed to only be called during __init? If so, this will help
> to justify the ...
> 
>> +{
>> +    struct host_iommu *iommu_data;
>> +
>> +    iommu_data = xzalloc(struct host_iommu);
>> +    if ( !iommu_data )
>> +        panic("vIOMMU: Cannot allocate memory for host IOMMU data\n");
> 
> ... panic(). If not, then this function needs to return an error.
> 

Yes, this is called during init, on pIOMMU driver probe 
(arm_smmu_device_probe())

>> +
>> +    iommu_data->addr = addr;
>> +    iommu_data->size = size;
>> +    iommu_data->dt_node = node;
>> +    iommu_data->irq = platform_get_irq(node, 0);
>> +    if ( iommu_data->irq < 0 )
>> +    {
>> +        gdprintk(XENLOG_ERR,
>> +                 "vIOMMU: Cannot find a valid IOMMU irq\n");
> 
> Shouldn't you free the allocated memory? That said, why is it ok to
> ignore the vIOMMU in this case?
> 

Yes, this is missing. We ignore the host IOMMU with an invalid IRQ 
because event queue emulation won't work in this case.

>> +        return;
>> +    }
>> +
>> +    printk("vIOMMU: Found IOMMU @0x%"PRIx64"\n", addr);
>> +
>> +    list_add_tail(&iommu_data->entry, &host_iommu_list);
>> +}
>> +
>>    int domain_viommu_init(struct domain *d, uint16_t viommu_type)
>>    {
>>        if ( viommu_type == XEN_DOMCTL_CONFIG_VIOMMU_NONE )
>> diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrough/arm/vsmmu-v3.c
>> new file mode 100644
>> index 0000000000..6b4009e5ef
>> --- /dev/null
>> +++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
>> @@ -0,0 +1,124 @@
>> +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
>> +
>> +#include <xen/param.h>
>> +#include <xen/sched.h>
>> +#include <asm/mmio.h>
>> +#include <asm/viommu.h>
>> +
>> +/* Struct to hold the vIOMMU ops and vIOMMU type */
>> +extern const struct viommu_desc __read_mostly *cur_viommu;
> 
> Why is this defined in the C file? Shouldn't this be defined in
> ``viomum.h``? That said, looking at the use, I think we want to
> introduce a helper to set the cur_viommu and not export ``cur_viommu``.
> 

I will introduce a helper, set function for ``cur_viommu``. After this 
is done, there's no need to move its definition to ``viommu.h``, since 
it should remain private to the vIOMMU code.

>> +
>> +struct virt_smmu {
>> +    struct      domain *d;
>> +    struct      list_head viommu_list;
>> +};
>> +
>> +static int vsmmuv3_mmio_write(struct vcpu *v, mmio_info_t *info,
>> +                              register_t r, void *priv)
>> +{
>> +    return IO_HANDLED;
>> +}
>> +
>> +static int vsmmuv3_mmio_read(struct vcpu *v, mmio_info_t *info,
>> +                             register_t *r, void *priv)
>> +{
>> +    return IO_HANDLED;
>> +}
> 
> I undertand that both helpers are meant to be updated in a later patch.
> However, I think it makes quite difficult to know whether the code is
> complete by the end of the series. I would strongly recommend adding
> 'BUG_ON("unimplemented");' so we can easily grep whether there is
> anything missing by the end.
> 

Sure, I'll add BUG_ON() for the unimplemented functions.

>> +
>> +static const struct mmio_handler_ops vsmmuv3_mmio_handler = {
>> +    .read  = vsmmuv3_mmio_read,
>> +    .write = vsmmuv3_mmio_write,
>> +};
>> +
>> +static int vsmmuv3_init_single(struct domain *d, paddr_t addr, paddr_t size)
>> +{
>> +    struct virt_smmu *smmu;
>> +
>> +    smmu = xzalloc(struct virt_smmu);
>> +    if ( !smmu )
>> +        return -ENOMEM;
>> +
>> +    smmu->d = d;
>> +
>> +    register_mmio_handler(d, &vsmmuv3_mmio_handler, addr, size, smmu);
> 
> I can't seem to find a place where the number of handler supported is
> incremented (see domain_io_init()) for the vIOMMU. Are you sure we
> always have enough space today?
> 

I'll fix this. The handler count should be incremented during domain 
creation if vIOMMU is enabled.

>> +
>> +    /* Register the vIOMMU to be able to clean it up later. */
>> +    list_add_tail(&smmu->viommu_list, &d->arch.viommu_list);
>> +
>> +    return 0;
>> +}
>> +
>> +int domain_vsmmuv3_init(struct domain *d)
>> +{
>> +    int ret;
> 
> Coding style: newline missing.
> 
>> +    INIT_LIST_HEAD(&d->arch.viommu_list);
>> +
>> +    if ( is_hardware_domain(d) )
>> +    {
>> +        struct host_iommu *hw_iommu;
>> +
>> +        list_for_each_entry(hw_iommu, &host_iommu_list, entry)
>> +        {
>> +            ret = vsmmuv3_init_single(d, hw_iommu->addr, hw_iommu->size);
>> +            if ( ret )
>> +                return ret;
>> +        }
>> +    }
>> +    else
>> +    {
>> +        ret = vsmmuv3_init_single(d, GUEST_VSMMUV3_BASE, GUEST_VSMMUV3_SIZE);
>> +        if ( ret )
>> +            return ret;
>> +    }
>> +
>> +    return 0;
>> +}
>> +
>> +int vsmmuv3_relinquish_resources(struct domain *d)
>> +{
>> +    struct virt_smmu *pos, *temp;
>> +
>> +    /* Cope with unitialized vIOMMU */
>> +    if ( list_head_is_null(&d->arch.viommu_list) )
>> +        return 0;
>> +
>> +    list_for_each_entry_safe(pos, temp, &d->arch.viommu_list, viommu_list )
>> +    {
>> +        list_del(&pos->viommu_list);
>> +        xfree(pos);
>> +    }
>> +
>> +    return 0;
>> +}
>> +
>> +static const struct viommu_ops vsmmuv3_ops = {
>> +    .domain_init = domain_vsmmuv3_init,
>> +    .relinquish_resources = vsmmuv3_relinquish_resources,
>> +};
>> +
>> +static const struct viommu_desc vsmmuv3_desc = {
>> +    .ops = &vsmmuv3_ops,
>> +    .viommu_type = XEN_DOMCTL_CONFIG_VIOMMU_SMMUV3,
>> +};
>> +
>> +void __init vsmmuv3_set_type(void)
>> +{
>> +    const struct viommu_desc *desc = &vsmmuv3_desc;
>> +
>> +    if ( cur_viommu && (cur_viommu != desc) )
>> +    {
>> +        printk("WARNING: Cannot set vIOMMU, already set to a different value\n");
>> +        return;
>> +    }
>> +
>> +    cur_viommu = desc;
>> +}
>> +
>> +/*
>> + * Local variables:
>> + * mode: C
>> + * c-file-style: "BSD"
>> + * c-basic-offset: 4
>> + * indent-tabs-mode: nil
>> + * End:
>> + */
>> diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.h b/xen/drivers/passthrough/arm/vsmmu-v3.h
>> new file mode 100644
>> index 0000000000..e11f85b431
>> --- /dev/null
>> +++ b/xen/drivers/passthrough/arm/vsmmu-v3.h
>> @@ -0,0 +1,20 @@
>> +/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
>> +#ifndef __ARCH_ARM_VSMMU_V3_H__
>> +#define __ARCH_ARM_VSMMU_V3_H__
>> +
>> +#include <asm/viommu.h>
>> +
>> +#ifdef CONFIG_VIRTUAL_ARM_SMMU_V3
>> +
>> +void vsmmuv3_set_type(void);
>> +
>> +#else
>> +
>> +static inline void vsmmuv3_set_type(void)
>> +{
>> +    return;
>> +}
>> +
>> +#endif /* CONFIG_VIRTUAL_ARM_SMMU_V3 */
>> +
>> +#endif /* __ARCH_ARM_VSMMU_V3_H__ */
>> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
>> index d4953d40fd..ebac02ed63 100644
>> --- a/xen/include/public/arch-arm.h
>> +++ b/xen/include/public/arch-arm.h
>> @@ -330,7 +330,8 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
>>    #define XEN_DOMCTL_CONFIG_ARM_SCI_NONE      0
>>    #define XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC  1
>>    
>> -#define XEN_DOMCTL_CONFIG_VIOMMU_NONE   0
>> +#define XEN_DOMCTL_CONFIG_VIOMMU_NONE       0
> 
> I am generally against trying to align values because this is just
> introducing unnecessary churn in the code.
> 
>> +#define XEN_DOMCTL_CONFIG_VIOMMU_SMMUV3     1
>>    
>>    struct xen_arch_domainconfig {
>>        /* IN/OUT */
>> @@ -456,6 +457,10 @@ typedef uint64_t xen_callback_t;
>>    #define GUEST_GICV3_GICR0_BASE     xen_mk_ullong(0x03020000) /* vCPU0..127 */
>>    #define GUEST_GICV3_GICR0_SIZE     xen_mk_ullong(0x01000000)
>>    
>> +/* vsmmuv3 ITS mappings */
> 
> What is ITS stand for in this context?
> 

This is wrong, should be MMIO mappings instead of ITS. I'll fix this.

>> +#define GUEST_VSMMUV3_BASE     xen_mk_ullong(0x04040000)
>> +#define GUEST_VSMMUV3_SIZE     xen_mk_ullong(0x00040000)
> 
> If I am not mistaken, you are reserving 256KiB. However, looking at the
> SMMU spec (section 6.1, ARM IHI 0070 H.a), the minimum is 128 KiB. Are
> you intending to expose additional features?
> 

You're correct, there are no additional features exposed. The size was 
chosen during the early implementation, but I don't think we need to 
reserve more than the architectural minimum at this point.

>> +
>>    /*
>>     * 256 MB is reserved for VPCI configuration space based on calculation
>>     * 256 buses x 32 devices x 8 functions x 4 KB = 256 MB
> 
> Cheers,
> 

Best regards,
Milan


From xen-devel-bounces@lists.xenproject.org Sun May 03 21:21:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 May 2026 21:21:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299408.1573945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJeFb-0005r8-DQ; Sun, 03 May 2026 21:21:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299408.1573945; Sun, 03 May 2026 21:21:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJeFb-0005r1-Ab; Sun, 03 May 2026 21:21:19 +0000
Received: by outflank-mailman (input) for mailman id 1299408;
 Sun, 03 May 2026 21:21:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wJeFZ-0005qv-TA
 for xen-devel@lists.xenproject.org; Sun, 03 May 2026 21:21:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJeFY-00GhAp-0W
 for xen-devel@lists.xenproject.org; Sun, 03 May 2026 23:21:16 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f7bc0d-2eae-0a2a0a5409dd-0a2a45019980-10
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 23:21:15 +0200
Received: from [103.168.172.149] (helo=fout-a6-smtp.messagingengine.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f7bc4a-c1f2-0a2a45010019-67a8ac959d43-3
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 23:21:14 +0200
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.phl.internal (Postfix) with ESMTP id CAE51EC0122;
 Sun,  3 May 2026 17:21:13 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-01.internal (MEProxy); Sun, 03 May 2026 17:21:13 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun,
 3 May 2026 17:21:12 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm2; t=1777843273;
	 x=1777929673; bh=LbAibiXl37U+LtHIHL0spSBU25Ad9Cjf/ZBzAVYM5OQ=; b=
	ruOnwgmo7XW+kVGJp6nZxVJXDTT+7hXSMWE0Tj6ZytuB/esNCa7BPpWxlTSG1H5d
	cGCN7Kpj9FTx2r1nTotE/+gykUXY0WXIUgtmKs91zx/8JKUp5VSKBulLhKQQlxTT
	Y+7cWPAw9nr0NuqvDltwot/4m08G5HSSz08yzipizy3LfPjtPXMTjtMWwK1x5qpa
	+KhTvXKObnRvql2+szLmhF+w16VPtVZp25amCo6aA8+z6LXpRIJ7MCRFO2+SmbsY
	9M7aQwVzr+10Nc1wnjLuJxajtAbvgioh+UHqNWJFG4v2k2S5q/nXUz7xMrQPv9Ui
	fV+2+p0gCZVpF4CM5BAizQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=
	1777843273; x=1777929673; bh=LbAibiXl37U+LtHIHL0spSBU25Ad9Cjf/ZB
	zAVYM5OQ=; b=Eyoe3yOjaO6KB9Y1YW0OY8NvR/u0SvjZz5TLUTUJfXfjef9Fn93
	7C7sKKPLYPeQoP4YnLfmRIvsgkcEMbOygmMJ3uoQ10NR9Nnkpfj/fP7fAp/O3bkA
	i/aDh0veiLSJOb8Vi4l8Cxz7N+dmOMo2WoA70PsFLu9mGCy6YBGig4aOpFwGJuPp
	A+NiugRqjcL14mphoqdA6IpD4EW1hZWK5laN5qn9msPJhNOmcs3HPmpTSdcrHh0p
	4PvVMXsUo4D2BzeITwBQS2FZdsNUvtVUK61l66KNB8AM0xTvwG7WLl0zast5vLJL
	33MSeieFmLuC6tg13gBJ/9rJ74FWo9TqV1Q==
X-ME-Sender: <xms:Sbz3acbG7GSGZ3-x2kc_acYrQLlMddn_XRs1XupB-AJvBlW6ezufow>
    <xme:Sbz3aeRsG8GIG-PaSwR0D28uHDAcq7xD2-sK8ZDHw9YkQLCHDmCVHFACb87hyD-mT
    x8Gd-lSfW2XGi8-FQlsbJCLESdpsitS-DQzzVoxMLCeYfpz>
X-ME-Received: <xmr:Sbz3afTHxJn56dm2cFch6qLwmrD05cOLofsMRRZy0s28LlnL-osTgly4ja5kpR0CkZqqjWPvJKRlCnlPzii2JRjE1yIf6n2myAE>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdeljedtvdcutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeevueejteeg
    leelteduueevhfetgfffjeevtddvgfeiveehteehleegueelvdejveenucffohhmrghinh
    epghhithhlrggsrdgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehm
    rghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsg
    drtghomhdpnhgspghrtghpthhtohephedpmhhouggvpehsmhhtphhouhhtpdhrtghpthht
    ohepmhhitghhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtohepgigvnhdqug
    gvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrg
    gsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghu
    segtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:Sbz3aSSF_7ZwaxYiZ_vasZrDnVaPMmYDicR5XN6rZs0b_HO8C7rR2g>
    <xmx:Sbz3aU7Fr6Y2FZS7ytjJOCitCLEAi7SKn7C1xELUGDL0mF89qz9l9A>
    <xmx:Sbz3ae1v_28RmoKkHyyhd5OF24oy19VSvGaNdG1i8qQSiwa5Yeizjw>
    <xmx:Sbz3afDdBjkt6GIrVhRa006VST2y3Ra-4Pn1q4ARlsUjuoYtwtPu7A>
    <xmx:Sbz3aWbbPeANNk_cww6oZyzYibhh323LTl2vaOSwYI5n5D0xoSpWTkMR>
Feedback-ID: i1568416f:Fastmail
Date: Sun, 3 May 2026 23:21:10 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH test-artifacts v3 02/13] Switch Linux builds to use
 Alpine 3.22 container
Message-ID: <afe8RoMFDdI1fLft@mail-itl>
References: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
 <652a2f219b370af5364d8ef29264acc33a89f676.1774999132.git-series.marmarek@invisiblethingslab.com>
 <bf843de8-dbfb-436c-ac33-ea801ac61b53@amd.com>
 <aczB_KRjioY3KCtA@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="aTnhuwifSrVovotV"
Content-Disposition: inline
In-Reply-To: <aczB_KRjioY3KCtA@mail-itl>
X-purgate-ID: tlsNG-d62444/1777843275-BEE63FF4-44483B73/0/0
X-purgate-type: clean
X-purgate-size: 2020


--aTnhuwifSrVovotV
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sun, 3 May 2026 23:21:10 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH test-artifacts v3 02/13] Switch Linux builds to use
 Alpine 3.22 container

On Wed, Apr 01, 2026 at 08:58:04AM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> On Wed, Apr 01, 2026 at 08:46:02AM +0200, Orzel, Michal wrote:
> > Why not 3.23 if it's already there?
>=20
> Because it wasn't yet when I prepared this patch series :)
>=20
> I can update again and see if any other changes are needed with 3.23.
> Other patches are independent of this change.

So, Linux 6.6.56 fails to build there:
https://gitlab.com/xen-project/people/marmarek/test-artifacts/-/jobs/141912=
60643

This is fixed in Linux 6.6.95, but I can't just drop 6.6.56 as stable
branches still use it. Alternatively, I could keep this one building on
Alpine 3.18, as it needs to stay anyway for the same reason.

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--aTnhuwifSrVovotV
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmn3vEYACgkQ24/THMrX
1yxGxwgAhzEnNXzZ8HzXn+on2k7551wKouzGewas3ilx/uQh6xAB/FQtptAu93Kw
3dYJ1x9b2nNrupOv+Xiwl/wh8jujBnsQ/HYlYSug3ieTid8TiL5dEk9iJIf2R0g5
J2dX9gNZA6Uu/0LpheHMYC5s/5Jr+zzn1JoXDu+y9U5JJu9j4C8sn5326ztT1UnD
OrmOblehPYkpQ29pm+y3CfQy1GkZeSyUqf5pninXmX1ycHZ3oCUuJRAZiVxznPkp
T8uiVEIyNOvspb9Ajl5lJeQwNz7BFEV6j0a/m1mHkv82BkF/0Zs35qsfxmAwCmms
sINU/w4iom9fCcN28/0Z4SROx+dkfg==
=YDxd
-----END PGP SIGNATURE-----

--aTnhuwifSrVovotV--


From xen-devel-bounces@lists.xenproject.org Mon May 04 05:14:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 05:14:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299427.1573954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJldF-0003IW-Ai; Mon, 04 May 2026 05:14:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299427.1573954; Mon, 04 May 2026 05:14:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJldF-0003IE-4Y; Mon, 04 May 2026 05:14:13 +0000
Received: by outflank-mailman (input) for mailman id 1299427;
 Mon, 04 May 2026 05:14:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJldE-0003I8-3y
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 05:14:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJldC-007IuY-Kf
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 07:14:10 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f82b16-2eae-0a2a0a5409dd-0a2a4507ee38-26
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:14:10 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f82b22-229c-0a2a45070019-d1558036cde2-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:14:10 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-48896199cbaso32314295e9.1
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 22:14:10 -0700 (PDT)
Received: from ?IPV6:2003:ca:b72b:870a:8d83:125f:d0c4:4383?
 (p200300cab72b870a8d83125fd0c44383.dip0.t-ipconnect.de.
 [2003:ca:b72b:870a:8d83:125f:d0c4:4383])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8fee4f79sm68254765e9.20.2026.05.03.22.14.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 03 May 2026 22:14:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777871650; x=1778476450; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AtowkhyPRGWDHxAfF0IBdnr6lRIaISsKeQXivwSe6uE=;
        b=BnPo8PV8bUrgGTSyU3DhdgoU6imNgl2YMO0/F5XkmLoGlv1vcsz2wRGd95FRfoLUgr
         CiARojRlqECYugdWQsqyzFRwaH6/o0mdDHYxYxKDhTpXOOiC9S2H30MDaKH8Z/YSwkSD
         78lraIgZbXxETybcmKACNhAlsDevEJwjbsmB+kdO3LdeF3RrsxmQGkRSpEXzvjhX2FJa
         Sj/okaZG8FFG5tdO0L1lkl8EdXKg5Ndp4bP3NZgjNs+ufB2aYp026uimSFyGlW3TsheX
         bL9lSe37Y+o/umXL5Rm3Y8whxS+W4OrCDaNIqk9pFtQakwguOTGaKWv+0zPN4iOJTf7G
         qJ3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777871650; x=1778476450;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AtowkhyPRGWDHxAfF0IBdnr6lRIaISsKeQXivwSe6uE=;
        b=YkIMCK1zbLP04FLoLiw+ZLMlmeUmqbMy777iUyvIB6z52nhv+wDjG5UuRrWjbi/jaD
         ml7mNKEiyNygFyzh3EFZvPLI2ERWJdapTd0uoar5qQKyzb1oVZhOc3bJuA8tkpxqWW89
         UfPFLX3H90bQMhPj3QVNiM7W6qfdwGXdvBtFHXOZ+wwHv7589gEj+2/lqqD+JejvsnDV
         5a6hkl8UaHTPSsRzxJY6vF8CjVtPBEvSJJdVRXgnfFlLiCzsJlffJ3Q6WrBTWBpYzONI
         AqibJBSt5Z6vQW15A8Bl1vX2JYWVZ18z1Wf8jwgKEXfKMo5pqHw1olCWUjPIaS4s9fyU
         iwTg==
X-Gm-Message-State: AOJu0Yzy46b34/BdcKv/CheVnrh7WuO5q10wQoV0MjtoiII953VXqAqu
	YkXc3JUCxKiCQuFwRzALSD7V7bC02C+7x0KladEou0sEY0TsC5vrxvduzLco83hupQ==
X-Gm-Gg: AeBDietbgx2JDXabU9ialFDhmDoPdcp8m0FryHP1TzvOufDUF8QvUsXzznveB1JneCd
	1iO0rVNssJiHaOPxmYjkPkhuzYIDV0L0sqxA9Tsoe4vZQWOJOh7pJYj07tiAywIICKGZEEBmeib
	JG9Qw7B9MJKAWPRJXTkBRiCKhxeuZiLgqZi85Mwkl8diaYsMciTiOIC3FK7y63kkUdZgIA1ajSS
	e/D4AUxTgTjhZEL3njOa0SrrM0wNk7fxWudP7uzwggghbKk4tlWQ/KK5sD6RVIfy07nSvvrpiJR
	TeTYvWnlX5ZjDZkaMadMN6HHGEIovZh6zwDwjQFgbJDjyvgPmGFgsyj50vaG0gYfUa7pHnysr3A
	Y7GISsp36VEJ5nyUTI+RxRPRElvARgTIUjMfkcnliQX9fYVnc4iW9SRiu85CMiDrSu8svnzkqKg
	7wpBwhev/MlyCudDTyjNMXioUNfpdR4mX14ybgaJLHK9hKXf1pO5ewmqX58f8R680tBtV/vwtlH
	z4x76Q+QzpPi4mFhnYpetlDojR1XniUSPlccWVrvyaCXnjn2VqF1tlRdOvSkZ9atQyGwyE=
X-Received: by 2002:a05:600c:1604:b0:48a:66a8:9981 with SMTP id 5b1f17b1804b1-48d0562f7efmr31502105e9.27.1777871649736;
        Sun, 03 May 2026 22:14:09 -0700 (PDT)
Message-ID: <53c4fb20-8cb9-440a-b37a-d829ec940e1b@suse.com>
Date: Mon, 4 May 2026 07:14:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/svm: Always sync guest CR2 on VMExit
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20260501213826.1291860-1-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2605011443580.512397@ubuntu-linux-20-04-desktop>
 <981a0dad-dcbb-42c8-a840-6f228eb89be1@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <981a0dad-dcbb-42c8-a840-6f228eb89be1@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1777871650-16E67C48-E2DFA8EB/0/0
X-purgate-type: clean
X-purgate-size: 1428

On 02.05.2026 00:21, Andrew Cooper wrote:
> On 01/05/2026 10:44 pm, Stefano Stabellini wrote:
>> On Fri, 1 May 2026, Andrew Cooper wrote:
>>> Under SVM, there are two copies of guest CR2.  One is v->arch.hvm.guest_cr[2]
>>> and one is in the VMCB.
>>>
>>> Xen doesn't intercept CR2 accesses, so this mostly goes unnoticed; hardware
>>> loads and saves the guest CR2 across VMRUN/VMExit.
>>>
>>> For HAP guests (where #PF is not intercepted, and therefore we don't typically
>>> inject #PF either), this causes the guest CR2 value to be lost on migrate.  As
>>> migration is cooperative and not done from the #PF handler, this also goes
>>> unoticed by guests.
>>>
>>> It also means that an emulated MOV-from-CR2 reads a stale value.
>>>
>>> Reported-by: Stefano Stabellini <sstabellini@kernel.org>
>>> Fixes: d1bd157fbc9b ("Big merge the HVM full-virtualisation abstractions.")
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Tested-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> Thanks, sadly I made the mistake of extending my XTF PoC for this.
> 
> There are also bugs on the emulated MOV-to-CR2 side, and they're far
> harder to untangle.

Any slightly closer details as to what?

> This patch probably wants to go in in this form, accepting that there
> are issues still to be addressed on the other side.

I agree:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 05:17:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 05:17:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299434.1573963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJlgs-0003uc-M3; Mon, 04 May 2026 05:17:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299434.1573963; Mon, 04 May 2026 05:17:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJlgs-0003uV-JN; Mon, 04 May 2026 05:17:58 +0000
Received: by outflank-mailman (input) for mailman id 1299434;
 Mon, 04 May 2026 05:17:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJlgr-0003uN-2m
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 05:17:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJlgq-00ETi1-Ez
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 07:17:56 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f82be6-5cb7-0a2a0a5109dd-0a2a4503b72c-48
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:17:56 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f82c04-672d-0a2a45030019-d1558029b1b2-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:17:56 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-4893940bb5eso18379465e9.3
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 22:17:56 -0700 (PDT)
Received: from ?IPV6:2003:ca:b72b:870a:8d83:125f:d0c4:4383?
 (p200300cab72b870a8d83125fd0c44383.dip0.t-ipconnect.de.
 [2003:ca:b72b:870a:8d83:125f:d0c4:4383])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a82301ad1sm463374825e9.9.2026.05.03.22.17.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 03 May 2026 22:17:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777871876; x=1778476676; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Llu90yKy3gS4BzO/309sV4bIWAV1PcDaqAAryX6doug=;
        b=MdSI1Cmgr5KzL+YyJJRZ1XKSSh9FIM3cU6XwHg8z7fXdQ1XhX5BOZBtMH8DisvxcsV
         k76Bhin3v6jtXzPM5va4na7QI+kg1Pqjy7s5zIalM0jQpyZvfAvB0/FqUS0IpAscXxJb
         ueWnZiWFkdwyw2wszs00cSZH1iBS5nxLD+H+5wXG4b6Mhsbwoy/XGmDNzh/QakWQSS73
         U5XO0iYLg7ji3HeXZmkv3xfWIs1tePyETELqhvKTCAOX2jU5T9JoQ7j2ENYfphL3qwQ1
         nJdgdJZ4OEZbl+kHqf9SZDF6RXrJ+iIDoPJR/sezk64wHw4KV98BE029alQph0AA/gTg
         rq4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777871876; x=1778476676;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Llu90yKy3gS4BzO/309sV4bIWAV1PcDaqAAryX6doug=;
        b=So72yv/f1FYbJx+DXGLV+93Yai6RnDe0vD37mskaI6W16rR/FPKLOwinw0ICMhp/rD
         LjjSO7jrRcyoNr8Ou8thOCnxDVdKBC0vpXsZXHy8PQw0ws5ofIHFUx18OXaOduoJtltK
         8LQ91NuglHQTOgM74VD3LGX4MIl8VMZ2kHGc/hcvhOZjTe9Z66miIT4tZzpRfdKvmmRQ
         eQnBp9ar1+urZ6n5eTg/JSLVbaUkzFfpbcx15alzzoh8gIoU1wmxekvsx2lrciZ37I+k
         V/QNcLDhpUPjRrjC5Z/L7SA8iQ2HbDVBZwEKkgWbU4/V7suVf09zjRWSzzyEytxXrvQa
         /BdA==
X-Forwarded-Encrypted: i=1; AFNElJ+qgGA275qnVNAipxWrAv85hUG0m4Ln7Q7/dXqL94VxyUzAF+OtcSSK6hzKkMx22acVY2AlUTjBQEU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yys8vnoBlbnMINZLl1D6McbQd3NfgzMgY1su8lp0e4d7ffAcXoD
	WiFTk4YVzZiGebvFaaHWFOVqENu5KyPgLe4XRwcPHRnBxOW5REVTpV7sDSOsYvd94Q==
X-Gm-Gg: AeBDietClT4AqPevPxPg/cb8a+WfK2vT0OGRf/j32YOmr/f2XD9ubDDu+JJfLOJ96iR
	dPiDHYZquIZJmk3NFmWkCP2I2S5U8v8+ZNeLIl/TSzUyJq5SAEw3Y/8ecqWK4YofUL76eFSA06P
	gpZ5nNg81y78VmzhXisOTlmKFEn0bf5S7lNOWBHNTjjQnHcZexbvyu0l6l8atEh7r479OSrM7Th
	ALUowwO7u56/9t19Nplu4l0Q/nKUDvnUIxJX4YEjccItBWzT+kBs0IQMPYD1SHZcip+daedQ/Q7
	UkFmSLhuZdDjLV2tp4jgQjRsm3rRPEI+4KH/M2l1UJe/rTPktoLaWnZ6LWArcGJTZIMDKdBL+2w
	HW0Xmx5KnR8ChmhJSe0ZYUdtGUDbIfck409+3XtHM/L99NbU211FY2nbzKV7G/YFVt32PUbUQd6
	PehBaIBOdeaFzU51ueRW2bHZNgHVZ4GyfpTp2R2EtKU/beY+Pq+yxOr+latoJ++n8dbf0C+JYoy
	SrfvB7YmjBYV/A9ekcpf9JSIthQdRKIWVmswsbLjJeUdOYFmLUO2YufALtggouQvE0lhRc=
X-Received: by 2002:a05:600c:4342:b0:485:2a85:e5ec with SMTP id 5b1f17b1804b1-48c6d455f69mr64308955e9.2.1777871875897;
        Sun, 03 May 2026 22:17:55 -0700 (PDT)
Message-ID: <e17cd134-a214-4f37-a03b-c71a54098d38@suse.com>
Date: Mon, 4 May 2026 07:17:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] hypfs: add ASSERT_UNREACHABLE() in
 hypfs_get_entry_rel()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Juergen Gross <jgross@suse.com>,
 Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <6db49190e85a30c0129f251ce718d50923baba8d.1777387070.git.dmytro_prokopchuk1@epam.com>
 <83b1e26a-cd17-4f64-ae82-dbf56f95b4ad@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <83b1e26a-cd17-4f64-ae82-dbf56f95b4ad@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1777871876-2BD6B938-9EF1472B/0/0
X-purgate-type: clean
X-purgate-size: 2095

On 29.04.2026 11:44, Andrew Cooper wrote:
> On 28/04/2026 7:19 pm, Dmytro Prokopchuk1 wrote:
>> The statement 'return ERR_PTR(-ENOENT);' on the final line of the
>> function 'hypfs_get_entry_rel()' is unreachable because the logic within
>> the infinite loop 'for (;;)' provides all possible exit paths for the
>> function. So there is no execution path to exit the loop and reach the
>> final that statement.
>>
>> This unreachable code violates MISRA C Rule 2.1 which states: "A project
>> shall not contain unreachable code".
>>
>> To fix that and potential compilers "control reaches end of non-void
>> function" warning, mark the code path as unreachable using macro
>> 'ASSERT_UNREACHABLE()'.
>>
>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
>> ---
>> Changes in v2:
>> - add ASSERT_UNREACHABLE() before the final return statement instead of removing it
>> Test CI pipeline:
>> https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2485661910
>> Link to v1:
>> https://patchew.org/Xen/341811ced2943fb79d0235c27781c564c7bdaf02.1775749146.git.dmytro._5Fprokopchuk1@epam.com/
>> ---
>>  xen/common/hypfs.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/xen/common/hypfs.c b/xen/common/hypfs.c
>> index cdf4ee0171..02fb234568 100644
>> --- a/xen/common/hypfs.c
>> +++ b/xen/common/hypfs.c
>> @@ -348,6 +348,7 @@ static struct hypfs_entry *hypfs_get_entry_rel(struct hypfs_entry_dir *dir,
>>          dir = container_of(entry, struct hypfs_entry_dir, e);
>>      }
>>  
>> +    ASSERT_UNREACHABLE();
>>      return ERR_PTR(-ENOENT);
>>  }
>>  
> 
> No.  This is absurd.

Why?

> Not to mention that you are *definitely* not fixing the stated MISRA rule.

Correct. It is instead deviating that rule for this code instance. I'm pretty
sure we have a few other similar pieces of code elsewhere.

In any event - your reply isn't really actionable. If you want things done
differently, then please make a concrete suggestion. Otherwise, in a couple
of days, I'll commit this with Jürgen's R-b.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 05:27:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 05:27:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299441.1573971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJlqB-0005dM-Gi; Mon, 04 May 2026 05:27:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299441.1573971; Mon, 04 May 2026 05:27:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJlqB-0005dF-Do; Mon, 04 May 2026 05:27:35 +0000
Received: by outflank-mailman (input) for mailman id 1299441;
 Mon, 04 May 2026 05:27:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJlq9-0005d9-VZ
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 05:27:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJlq8-00BJ2Z-Qr
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 07:27:32 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f82e2b-e002-0a2a0a5209dd-0a2a4504a5ae-44
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:27:32 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f82e44-1dec-0a2a45040019-d1558033c1f1-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:27:32 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-4838c15e3cbso27760785e9.3
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 22:27:32 -0700 (PDT)
Received: from ?IPV6:2003:ca:b72b:870a:8d83:125f:d0c4:4383?
 (p200300cab72b870a8d83125fd0c44383.dip0.t-ipconnect.de.
 [2003:ca:b72b:870a:8d83:125f:d0c4:4383])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8ebb2fa5sm208836175e9.12.2026.05.03.22.27.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 03 May 2026 22:27:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777872452; x=1778477252; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rjxSBoBLt1lh8wmf/z6M3GTIG7nXPk8x67V+aMiRv/0=;
        b=ZZPjNc6LJjQXiBZ7lY1r0onK3jTYTsit44y+a11jGdDqIeD7soOb06ITmi9tPJ+AXX
         bzT2cgMsDQiDXKq5XDr9M4WJM3oyadCRkavktCyg/jYcsFWFsRBbpfibsfyBmyGobYUW
         oHIWAfBB6Ayzifde9i+FRBX3DjiMVKHhzJ+Mkx5ayumlxKYhe7hHetP5rHwQC5lSj66/
         ZU74NbCCCB/lDUYwbJcSlKKMJDluqpWU95ax1imUALw0N2Yl/dfSmaFE4oCx672Hn5A8
         MyDDeki9+2ZvSZwktWk2AphLikxBlZIHzsTvyq1dKEbmFvZ987XXFt+y08EthGoCQD6d
         sypA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777872452; x=1778477252;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rjxSBoBLt1lh8wmf/z6M3GTIG7nXPk8x67V+aMiRv/0=;
        b=Hg/my6k3w3ap0sAzIATtCEShLUZn64u3OhFS0+rY33LfnJmo16WQOIs0sRTjjrf+rK
         UGL5nqG0xBAMGhmMwLts8xqOU/7FNaO3kBxMGbNUE/RgO9jcyiSJnJ6gHSjcn6NB0b06
         Ve8aqViVyc1e/0R+G4b+si0dbylkMYw1KTlAzBzRaAfZmNas5xFLINoEwMlJFfvHbx7P
         Al4EEqRaGSiqJQLC3fgie2T7rc5fWbZU8JLj2NQb9l77A2Yx6HrXJ0cW6MSHWmbGsT4J
         7qdKjjFlga21hXKZ8DttAAtLV/q6x38qzWznCxwhpgMotlXnxpmkBrcYr0T6ejowywxp
         AbVA==
X-Forwarded-Encrypted: i=1; AFNElJ9yv88wn92ZtLGIH6v97wDfnR2y2jowFeBPeVGpJaEnTgMzIkzgYgMWJsga1qWgAkp5cxwoE7HtYqw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYD6D46YJUKxeGGUH/Ho/5DGa2fxn18ZvYXdaTR2wd4t98Coou
	T31x7XvXxsTCzACHWyy300VON8r9KdXvMHs5GV6WQYj3rMXCrM+rf46eFC0WLz1wZw==
X-Gm-Gg: AeBDiesCu6JLR3Sa5KQXRLISHQ1GgpuK0V0RZQR+EHvhJRcqzvFGZk5X3gN1KiDUw+x
	xRMx16ofnQVHmQ/jXJrSAoVT0m7A9yUzC/Ls0dI6GV+r35yXQc8vn7O6Hh2iIe6TEjZgl051APG
	tMfdXRexZ0DsFgeRIsOw5JlmgTDGAt8SjbTWVgfp/uYvrjKRTlW7LbcJanpPnHcz11U+oQGhsaB
	rHhs9PkuOEAY5LToMAl/V/rzgRVCqyLq4Iu+yMfbYsOkag0cv/6L9rJEPzxwussf/r6s4OYJSOE
	pVIfFsfiSyLCJlHyUCSmtQKIuAAiVKYaEcHEFXpfY7tlLDepX7IznJN8iWikIWUDqeJh6j1BzcV
	JLtizCcfrBxAdaRm/0YvQAT2HPKrLaoC0ufjPlcyosRhvixmSnfu0o+UzxWQi1g2zgENGx2mfG2
	nhbBGeFeYXzdMTII9L+BaeGhJJ5YtrLyrZttKAh5+FBVslC51pIx9fq0huhzrq6JB4A0So0oQL9
	/Q2sBvtfRn3lckrkktgCUA3onSWUfmrSeoQ9plOyUeJ5RWf89PUU/hYLe4e1t6fQjtB3Dc=
X-Received: by 2002:a05:600c:4e04:b0:48a:906a:9050 with SMTP id 5b1f17b1804b1-48a98638cebmr141791825e9.10.1777872452018;
        Sun, 03 May 2026 22:27:32 -0700 (PDT)
Message-ID: <693724d7-2427-474e-aff5-c23ad9e2791d@suse.com>
Date: Mon, 4 May 2026 07:27:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Improved reStructuredText formatting of Misra C Rules
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <c6dffce6d424e98911a8a12ad0a868ff00c89345.1777447317.git.bernhard.kaindl@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c6dffce6d424e98911a8a12ad0a868ff00c89345.1777447317.git.bernhard.kaindl@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1777872452-2BB6B3FF-AC9BD6F0/0/0
X-purgate-type: clean
X-purgate-size: 4594

On 29.04.2026 09:22, Bernhard Kaindl wrote:
> Code blocks in the RFC rules can be converted as C syntax-highlighted
> pretty pieces of code using `.. code:: C` inline elements:
> https://docutils.sourceforge.io/docs/ref/rst/directives.html#code
> 
> For reference, the current formatting used are 'Indented Literal Blocks':
> https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#toc-entry-23
> 
> In this example, docs/misra/rules.rst, line 128 starts an Indented
> Literal Block by ending the paragraph with "violations::"
> (note the :: at then end of the paragraph which is enables it):
> 
>          - Functions that are no-return due to calls to the `ASSERT_UNREACHABLE()`
>            macro in debug build configurations are not considered violations::
> 
>               static inline bool
>               arch_vcpu_ioreq_completion(enum vio_completion completion)
>               {
>                   ASSERT_UNREACHABLE();
>                   return false;
>               }
> 
> Format such code blocks as C code blocks and apply ``function()`` around
> functions to make them inline linterals for monospace formatting.

Nit: literal

> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -115,20 +115,29 @@ maintainers if you want to suggest a change.
>       - Required
>       - A project shall not contain unreachable code
>       - The following are allowed:
> -         - Invariantly constant conditions, e.g. if(IS_ENABLED(CONFIG_HVM)) { S; }
> +         - Invariantly constant conditions, e.g.
> +
> +           .. code:: C
> +
> +              if ( IS_ENABLED(CONFIG_HVM) ) {
> +                S;
> +              }

If already you reformat like this, then please fully to proper Xen style.

>           - Switch with a controlling value statically determined not to
>             match one or more case statements
>           - Functions that are intended to be referenced only from
> -           assembly code (e.g. 'do_trap_fiq')
> -         - asm-offsets.c, as they are not linked deliberately, because
> +           assembly code (e.g. ``do_trap_fiq``)
> +         - ``asm-offsets.c``, as they are not linked deliberately, because

This is a file name, not code?

>             they are used to generate definitions for asm modules
>           - Declarations without initializer are safe, as they are not
>             executed
> -         - Functions that are no-return due to calls to the `ASSERT_UNREACHABLE()`
> -           macro in debug build configurations are not considered violations::
> +         - Functions that are no-return due to calls to the ``ASSERT_UNREACHABLE()``
> +           macro in debug build configurations are not considered violations:
> +
> +           .. code:: C
>  
>                static inline bool
> -              arch_vcpu_ioreq_completion(enum vio_completion completion)
> +              arch_vcpu_ioreq_completion(int c)

I don't agree with making a change making an example not match actual code.
If you truly want to abstract this (to shorten the line) then please also
change the function name.

> @@ -207,16 +216,20 @@ maintainers if you want to suggest a change.
>  
>         Clashes between bitops functions and macro names are allowed
>         because they are used for input validation and error handling.
> -       Example::
> +       Example:
>  
> -           static inline void set_bit(int nr, volatile void *addr)
> +       .. code:: C
> +
> +           static inline void set_bit(int nr, volatile void *a)
>             {
> -               asm volatile ( "lock btsl %1,%0"
> -                              : "+m" (ADDR) : "Ir" (nr) : "memory");
> +               asm volatile ( "lock btsl %1,%0 "

Why the new trailing blank in the string literal?

> +                              : "+m" (a)
> +                              : "Ir" (nr) : "memory");

Where you want to add a blank while re-flowing is before the parenthesis
here.

>             }
> -           #define set_bit(nr, addr) ({                            \
> -               if ( bitop_bad_size(addr) ) __bitop_bad_size();     \
> -               set_bit(nr, addr);                                  \
> +
> +           #define set_bit(nr, addr) ({                       \
> +               if ( bitop_bad_size(addr) ) __bitop_bad_size();\

There wants to be a blank before the semicolon. To better shorten line
length:

               if ( bitop_bad_size(addr) ) \
                   __bitop_bad_size();     \

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 05:30:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 05:30:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299451.1573982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJlsn-00077Q-1b; Mon, 04 May 2026 05:30:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299451.1573982; Mon, 04 May 2026 05:30:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJlsm-00077J-Tc; Mon, 04 May 2026 05:30:16 +0000
Received: by outflank-mailman (input) for mailman id 1299451;
 Mon, 04 May 2026 05:30:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJlsl-00077C-Rc
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 05:30:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJlsl-000lXg-7o
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 07:30:15 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f82ee4-5cb7-0a2a0a5109dd-0a2a45028e54-18
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:30:15 +0200
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f82ee6-af86-0a2a45020019-d155dd32d0c8-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:30:15 +0200
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-44ccbd3290aso1044417f8f.2
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 22:30:15 -0700 (PDT)
Received: from ?IPV6:2003:ca:b72b:870a:8d83:125f:d0c4:4383?
 (p200300cab72b870a8d83125fd0c44383.dip0.t-ipconnect.de.
 [2003:ca:b72b:870a:8d83:125f:d0c4:4383])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-44a8ea7cf97sm26878502f8f.6.2026.05.03.22.30.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 03 May 2026 22:30:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777872614; x=1778477414; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=T7JyXY5NZkmu9/6RGLXJGddgZg0NDceorMZVSok/X0s=;
        b=THiroiKaF7wfOdWeh2Th6YZ3AYgibV7cfdOGBREqpXITME25b53g/e1+GJiIabokSa
         f6qqmO4HenFzNwFYLV0ZXX15ZXefMaC65jfiGwDgWihFw6iDFxPicHVAvScYCsqD2StH
         tRDvnuSvq/jyb2UoqQKhhil7lbvj4gDOI4Rf9rBjM6M/71XWi+yv1MyYctaAtuafT+Nu
         0peJ88yk7OjQEZ0ppKy0q/YZvyx99XIeFqXtWENP+o05wNnGHQ8Qyx5D1dkgZ/cNAnOh
         VNfelnS3rYhaK+XtduyKp/4TW4nyoMst8Agfd+CY2KQL5DMvbxQulER1/wrsHultxDMD
         52qA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777872614; x=1778477414;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=T7JyXY5NZkmu9/6RGLXJGddgZg0NDceorMZVSok/X0s=;
        b=KjNBxnQzAFYnlBRHvKDAEkOC4ZXd9GnXujRXcWLZaxtUHXau4k27GsJfBYJVBAo1cp
         O2I/8837wp/vhO+GerPxy6anepDdRPTIkVlzyui624taIQTVk/auyfkKiXjZLkYopz80
         OZsE9bou2BGErM5Z3ZLu4rvdi8FKekW61qfXNbYuhDE3NcLHTyQ0rzIp0RRaXRFt+dBV
         mAiIELF/QTGy9ySLN+iZHLeq+44VsOXjTa0JIVCimbmWf/hjXFkDiMwu1PNQtKi45b+7
         Ew3QQ3nJoXm8A9ikhg3w9kN7L01cpdiR40qWgsNc3Z4HXBTCHXf3AoDr9bo06ohSkONc
         DJ0w==
X-Gm-Message-State: AOJu0Yz4EpWwMLnQAVhxAsMDtWOQO0n5dS3f8xa6hgrH913P27JNcMMZ
	gufgD1b4uNwCJnLvGwh8R00uI4gHblH64KUVJtK/HVCh2pHiYZcyDGP6CIsY6kywEQ==
X-Gm-Gg: AeBDieu1+WqyDpwhBkKF3Q6cwKwVUHIYby0RIvqHGiZPLx2V5VU4LHapUTqCSmwmZRB
	iwif3f3Q7kF7h2ERTqXtpCwKKl/Dl7Rl39qtI0X3fKmSG7xnFCicHJ7du6HkT+NvRLe/ScWiYSW
	uYs8gu3XqHRlWxIK1SJDS6V8WGceoxftbr48Vg20Zs+JJPSMN2uhEWhHlg7tXbLzWhaRIYlxKxf
	gXJDLRGyhj3d0AYDCkxvsq60MimR/efFwBTLYl+hB+JOprrqYInE8LIh07GQrQF6es9Wz2gV2eX
	gL8uYMq4x7Mut/yv8t5+PDFRb74PVX5EtrxHDgPb08kyfTWcxzcoPLXNlqEeqPyjszuTtPeAFn0
	I6qbFzHDXpGna3pvOBuPSJHP8KBmUnX6tPlLQoxZFUgtQwse9B+IrY/afGgdIXG2uJ68lC8CF0O
	sInyglPnWNkLL5nB9eC5Hwf8i3Og3CHMEnzxlbOjt77cqIDeuSyXomfJveG2tOWhraRkiJ872v9
	V9f3TJJeaXcnoVPH1qn4OeyP8Guto/58dhp1sbcCAQOiRgoJNbYDj+pIZ1t/moOZESeCIY=
X-Received: by 2002:a05:6000:2313:b0:43d:77f4:7145 with SMTP id ffacd0b85a97d-44bb5680d79mr13383761f8f.19.1777872614474;
        Sun, 03 May 2026 22:30:14 -0700 (PDT)
Message-ID: <edfb6bc3-ad1a-4185-9966-29bb126a6b3f@suse.com>
Date: Mon, 4 May 2026 07:30:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/11] xen: arm: fix len type for guest copy functions
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <e29e6176063f8e7c612a4bfa44ac072d7a686b81.1777303844.git.oleksii.kurochko@gmail.com>
 <53BD54C0-E493-4D04-9CB1-D16B148CA3A9@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <53BD54C0-E493-4D04-9CB1-D16B148CA3A9@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1777872615-82F6E161-4F5ADBE9/0/0
X-purgate-type: clean
X-purgate-size: 1217

On 29.04.2026 12:08, Luca Fancellu wrote:
>> @@ -136,7 +136,7 @@ unsigned long raw_copy_from_guest(void *to, const void __user *from,
>> unsigned long copy_to_guest_phys_flush_dcache(struct domain *d,
>>                                               paddr_t gpa,
>>                                               void *buf,
>> -                                              unsigned int len)
>> +                                              unsigned long len)
>> {
> 
> Now that we do this, potentially we could have truncation in the places where we store its return value
> inside an int:

Those would suffer from truncation before and after this change, wouldn't they?
Just that where the truncation occurs does move. I.e. if necessary they would
want dealing with separately.

Jan

> https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/arch/arm/kernel.c;h=7544fd50a20f08b5ba31cad7b94925112fdee956;hb=refs/heads/staging#l131
> 
> https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/common/device-tree/domain-build.c;h=c51520ebadf9950311f6c071e7e07042c7076a27;hb=refs/heads/staging#l442
> 
> Could you check and let me know if I’m correct or not?
> 
> Cheers,
> Luca
> 
> 
> 



From xen-devel-bounces@lists.xenproject.org Mon May 04 05:38:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 05:38:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299459.1573991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJm0E-0007vN-RI; Mon, 04 May 2026 05:37:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299459.1573991; Mon, 04 May 2026 05:37:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJm0E-0007vG-Ne; Mon, 04 May 2026 05:37:58 +0000
Received: by outflank-mailman (input) for mailman id 1299459;
 Mon, 04 May 2026 05:37:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJm0C-0007vA-WF
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 05:37:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJm0B-000epT-UT
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 07:37:55 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f830a9-2eae-0a2a0a5409dd-0a2a4506a0b2-28
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:37:55 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f830b3-7371-0a2a45060019-d155802fbded-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:37:55 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-488b0046078so28196235e9.1
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 22:37:55 -0700 (PDT)
Received: from ?IPV6:2003:ca:b72b:870a:8d83:125f:d0c4:4383?
 (p200300cab72b870a8d83125fd0c44383.dip0.t-ipconnect.de.
 [2003:ca:b72b:870a:8d83:125f:d0c4:4383])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8eb69698sm436637455e9.1.2026.05.03.22.37.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 03 May 2026 22:37:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777873075; x=1778477875; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qDtGVv1vn8v2JQN4/+C31OwW8o/xPineQ1nRIC7bTH4=;
        b=AFE5PTaZkE6D24QBHzfEdUJdttjracpO7mLhA9Ua8UZ+2Q2wPi/Doa1mw1JTNWUDmO
         pCh3dlLcaIRGsRD59KMwct9iZpfnBrDi9Hzvk7m/mf5Tl5leqy+0YCv0wvGSKUvi039O
         ztmOPUi0hvMm9NNYV8Qe1e9wuRqYKMuOgpC0NZRoLsbM90pypLmA96RIoQbOFQK4jopn
         S99l2BN9VcfUF5B1PYMQrGpk3d/waWLeHW/rHwewmxIjjyU/dY+fZvjp2Po80qYyUG+y
         gddGCJ07jii/hC9qe78e8wSR6onmHNAhSD67O5Me3pOUE9bwZVXFIBz1nSF4ZbDGVU31
         N/PA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777873075; x=1778477875;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qDtGVv1vn8v2JQN4/+C31OwW8o/xPineQ1nRIC7bTH4=;
        b=UkkJ4ESiBrgc3+ddRlVnAw2ocQPdsxjGzFEPnRjaYdQRgMMUZQL2/vZEaUo9SvUD1l
         O2h9BVyr0oBzd34vpE/pBNONoh9i6rIl6jfEOs1jjbtEOZkOzTixd8ZWcmWoRwCmZQiF
         F3Yyw6urzuDxiJDzHiFOCyqNVkIPXOqy6QscBtn83yTRdVLIJOEwNn2AkZ/xUsqZ4G0d
         sGHjTbOvruhmeKJPdQk7v/84HjhZ3vBjhfWWrr8hB0euF3pWcTonGtSRTckSGh+0FOYB
         AgfX7l7Y9Nv0hyP5I0ecM+pqb9vQabVUj9UCSuadr2gOpJu6CpDLE64PZE1xeAO5am5A
         G2hA==
X-Forwarded-Encrypted: i=1; AFNElJ9i2dpW8Umgcts8c6kk2ssOEfl/LV6Ml+pHj5pKktqG6LYXUubLGr6kIKtvLMplIOd3SXK7r5iMopo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwQOvUNEBK4H/dd8J+ABFFDR3bNAqCLM5IdNkiVZxXt8Ttd9fAW
	t3LFd9e7UX8TPFptN4nH3xoABOw3AYZybmjJjMLTI1/L2Gw3ITS9f2b4wHv8Cqm2Sg==
X-Gm-Gg: AeBDieuvBr5gr3ynnNASCvCh+ftRlPWOG7cxMLW4XaIZ5C4AFtIE7Ps8SeMTKIe+wL3
	QALMHznSM+12C0fs/He9ZXsD6BxDCHA81vHtE1ZtwBb34XxeLk39ftxzRFqTSeQYWT4MhcX9Mtw
	lshXYbXLS9HUx5erEa8aNIx/ppqhhlxAxpUwWR+U2VCMzx9akmIuH70gnjoXxg6ueccok1ok0/c
	H+XT/tnWIh9EO/BFLaaOvL7E4qZoPhZOD9USwWN5fHOGgkfhPQJkX3Vhx7+TsPNpLJ2EygGbOke
	NLSM8WjY8c7tRk+vjYxoV/2Hxb9ubNL34OfgpVM1GFHxFd+qTBEQZT+RLPzH56cRWGz8y1ZgO5C
	59wVTB8MZC4sL9aEXEGnKOo0D9BhLbDeTKjTkRvMlls0u+wf5ZxsL6wAjn18XUuyrcbIaQ37Zee
	TIhtTn/TEwtUpILQp0GBf9LGsOnG3pXU7lxmXqEXj1IeYQfQeETVVIX3kQJUwpKziB0F+s/m/tY
	T4Hd1jqJGVi3UuqC2BCtdGn4lhXu65uKRlpRbRyo9ikgIpWa7w6RnViSXT2zAv2vWgqKQ8=
X-Received: by 2002:a05:600c:444c:b0:488:a824:fdff with SMTP id 5b1f17b1804b1-48a9866dcd9mr132888835e9.22.1777873075187;
        Sun, 03 May 2026 22:37:55 -0700 (PDT)
Message-ID: <efb254c2-f52a-408d-b225-e4e03935d05e@suse.com>
Date: Mon, 4 May 2026 07:37:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <cover.1775742115.git.mykyta_poturai@epam.com>
 <a0abd984989237d2f36e1628db577fb25af1cdbe.1775742115.git.mykyta_poturai@epam.com>
 <5efddecc-3665-4a53-9eaa-b117370cc0e4@suse.com>
 <5168207f-33ed-4fc4-918e-6c3b454b0efa@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5168207f-33ed-4fc4-918e-6c3b454b0efa@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1777873075-CFD7AD75-BD6035A0/0/0
X-purgate-type: clean
X-purgate-size: 4201

On 23.04.2026 12:12, Mykyta Poturai wrote:
> On 4/21/26 17:43, Jan Beulich wrote:
>> On 09.04.2026 16:01, Mykyta Poturai wrote:
>>> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>
>>> This code is expected to only be used by privileged domains,
>>> unprivileged domains should not get access to the SR-IOV capability.
>>>
>>> Implement RW handlers for PCI_SRIOV_CTRL register to dynamically
>>> map/unmap VF BARS. Recalculate BAR sizes before mapping VFs to account
>>> for possible changes in the system page size register. Also force VFs to
>>> always use emulated reads for command register, this is needed to
>>> prevent some drivers accidentally unmapping BARs.
>>
>> This apparently refers to the change to vpci_init_header(). Writes are
>> already intercepted. How would a read lead to accidental BAR unmap? Even
>> for writes I don't see how a VF driver could accidentally unmap BARs, as
>> the memory decode bit there is hardwired to 0.
>>
>>> Discovery of VFs is
>>> done by Dom0, which must register them with Xen.
>>
>> If we intercept control register writes, why would we still require
>> Dom0 to report the VFs that appear?
>>
> 
> Sorry, I don't understand this question. You specifically requested this 
> to be done this way in V2. Quoting your reply from V2 below.
> 
>  > Aren't you effectively busy-waiting for these 100ms, by simply 
> returning "true"
>  > from vpci_process_pending() until the time has passed? This imo is a 
> no-go. You
>  > want to set a timer and put the vCPU to sleep, to wake it up again 
> when the
>  > timer has expired. That'll then eliminate the need for the 
> not-so-nice patch 4.
> 
>  > Question is whether we need to actually go this far (right away). I 
> expect you
>  > don't mean to hand PFs to DomU-s. As long as we keep them in the hardware
>  > domain, can't we trust it to set things up correctly, just like we 
> trust it in
>  > a number of other aspects?

How's any of this related to the question I raised here, or your reply
thereto? If we intercept PCI_SRIOV_CTRL, we know when VFs are created.
Why still demand Dom0 to report them then?

>>> +static int map_vfs(const struct pci_dev *pf_pdev, uint16_t cmd)
>>> +{
>>> +    struct pci_dev *vf_pdev;
>>> +    int rc;
>>> +
>>> +    ASSERT(rw_is_write_locked(&pf_pdev->domain->pci_lock));
>>> +
>>> +    list_for_each_entry(vf_pdev, &pf_pdev->vf_list, vf_list)
>>> +    {
>>> +        rc = vpci_modify_bars(vf_pdev, cmd, false);
>>> +        if ( rc )
>>> +        {
>>> +            gprintk(XENLOG_ERR, "failed to %s VF %pp: %d\n",
>>> +                    (cmd & PCI_COMMAND_MEMORY) ? "map" : "unmap",
>>> +                    &vf_pdev->sbdf, rc);
>>> +            return rc;
>>> +        }
>>> +
>>> +        vf_pdev->vpci->header.guest_cmd &= ~PCI_COMMAND_MEMORY;
>>> +        vf_pdev->vpci->header.guest_cmd |= (cmd & PCI_COMMAND_MEMORY);
>>
>> As mentioned elsewhere as well, this bit is supposed to be 0 for VFs.
> 
> There are some devices that expose VFs with the same VID/DID as in the 
> PF, causing Linux to use normal driver for them and threat them like 
> normal devices. At some point, those normal drivers try to do a 
> read-modify-update of the command register and end up writing 0 to 
> PCI_COMMAND_MEMORY, causing cmd_write to unmap the BARS of that device. 
> I am not sure, maybe it would be better to just ignore cmd writes for VFs?

No. We should treat r/o bits as r/o (which for this bit implies it not
controlling BAR mapping).

>>> +    sriov_pos = pci_find_ext_capability(pf_pdev, PCI_EXT_CAP_ID_SRIOV);
>>> +    ctrl = pci_conf_read16(pf_pdev->sbdf, sriov_pos + PCI_SRIOV_CTRL);
>>> +
>>> +    if ( (pf_pdev->domain == vf_pdev->domain) && (ctrl & PCI_SRIOV_CTRL_MSE) )
>>> +    {
>>> +        rc = vpci_modify_bars(vf_pdev, PCI_COMMAND_MEMORY, false);
>>
>> Doesn't VF enable also need to be set for the BARs to be mapped?
> 
> I don't think so. Enabling memory space logically maps very well to 
> mapping memory to the guest. I don’t see any benefit of also requiring 
> VFE bit here.

Iirc the spec is quite explicit in this regard.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 05:39:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 05:39:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299467.1573998 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJm1k-0008Om-3Z; Mon, 04 May 2026 05:39:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299467.1573998; Mon, 04 May 2026 05:39:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJm1k-0008Of-0t; Mon, 04 May 2026 05:39:32 +0000
Received: by outflank-mailman (input) for mailman id 1299467;
 Mon, 04 May 2026 05:39:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wJm1i-0008OZ-Qk
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 05:39:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJm1i-008Z8S-6X
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 07:39:30 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f830ff-5cb7-0a2a0a5109dd-0a2a450ad1ea-12
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:39:30 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f83111-56b3-0a2a450a0019-d155802be025-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:39:29 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-488b0e1b870so59199975e9.2
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 22:39:29 -0700 (PDT)
Received: from ?IPV6:2003:ca:b72b:870a:8d83:125f:d0c4:4383?
 (p200300cab72b870a8d83125fd0c44383.dip0.t-ipconnect.de.
 [2003:ca:b72b:870a:8d83:125f:d0c4:4383])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8fede418sm87724495e9.6.2026.05.03.22.39.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 03 May 2026 22:39:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777873169; x=1778477969; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+drOKvTOt2K36rAMHWDvB1x2sJqP6GEdY2GVV39dNcQ=;
        b=BMIi10WwdBV6ZtqUBulUY+iX8NknGD9uWBqD4gycvhAzwgfxeMmGvOHBIaMExipjts
         6pz9pVujpGuqrZjNGkO66IFdbeuI2hTlwce6vCkKEWExebMXGD4q4wUXo5wXTQ8ytwv4
         XkwA/7UimEk47/EwloUfnoZU7/e3QjRtABqb6uYMwpTKLHXy2sLBZVd7+qSsNdKPmQ1X
         yf/5MFJFQk9DT+93ErKb6LvkGwpX/Z15qha2VVHeTF+3ftaQpIpq6vboUKLSnMWdDVcw
         d6WxOEZpJoJev8cxqRHqOrn4HAzLpCie/KSENvGfwyvK9SzCKLfAPoyV7Rni+UbftOnw
         /NSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777873169; x=1778477969;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+drOKvTOt2K36rAMHWDvB1x2sJqP6GEdY2GVV39dNcQ=;
        b=X7DdkYiBWWIeS+KQVz9SlR9Gp9z8qWOenYw7dsRjEZv+JYvd1pWrErLcbqMP2URTqW
         tzGdGpb3S66oNCSurRbSd5CMfcag4Kaz/Xs2NA9ovN+mrmbAqIbSeg5oRTXILdW4PIhD
         vxWr+sKzuDfeSA721ZVNEeYr6WpylMB/FWHOHbZZ39XyHVk22Mg5bWLLIESWn1noDjOl
         1fASbQYo1/QyKOMx5KkMMr9wCqA9/SbLHHMRcABO0XFAp4LmzCcQZUYzCp0AU9iq00zc
         uFTk8ksOiwlX1KBXtK0iieAKta352gFnxsQMQJyf0swmWIckbNlDNT5F2E0dAlQLELny
         nMqA==
X-Forwarded-Encrypted: i=1; AFNElJ+MXyV6IN2gsK02EOzE9rJDQo68ZijfV2/CXsImLpfpbOvMY63vTIebOrVtDlIj4Jf5cRAcrR8R8X0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw7IVUk35z/gAUHq6zMSW9By5M8V6Ki+mVWsYmo2ArJlI8lnlXh
	t6QPu4H4vnQH6yD1NrKLypcBcQhdSYySdYXMZwQMioHLB4Zt+xmitcN+hLjZwjwbxg==
X-Gm-Gg: AeBDietWwZSobhrCws2ZPw65Qxg+yJR2UqxPBjSTs9ddRdKgCX4NWgkz7UmA//vikby
	RMo5pa5d99S/2ptxKbkeZiHOfzrh/2DrQjgwJR53p3drB3qHopQa2IqcW6PrZHHpk6L7FZ4c3Og
	azXOJN+SP5EKmOY1phyvMbpq37uluUtM1PV2SvpG31pkqRyUJgCmOaqg1Mb47i3KgF1sfMHbquv
	ZM4SsvJhOqoA+fGySTUetWC7MddYi+RufPDkgygkxG0JmDQEAtYC176nV1eTnl/fJ2y2fhaa5EX
	zR370UFYtQMW+p9CalJHpQhnH7EOsWhgPhnzhg5AL9+IKPWtRgj31h9Sdj6PFqODjaNJPKYEU1/
	/0LrSXuntD7KFpNvzNVEpqVFsRKPAfTcCMBBFlgzAuHps8WYymstVLylfBL46ep0nsMFSL83lQN
	3oGUy2pOvP3fI71SIEBK7FC2u+UOOdQFy54wIUkB8A57s0DrIDgGP817wamBYCnijyWFjEO7U8F
	RVFvT48T2fuVPf2ngRsMmJIv3tkHeuvUEZeJqpAtL0vruU7hK+sXiYy0Ahp+BQNScObmtbyRrL4
	NnxTYQ==
X-Received: by 2002:a05:600c:6389:b0:48a:5501:7995 with SMTP id 5b1f17b1804b1-48a9865d1femr128330705e9.18.1777873169384;
        Sun, 03 May 2026 22:39:29 -0700 (PDT)
Message-ID: <6bad1f16-5b9f-4358-b4a2-6b5edafd0bb3@suse.com>
Date: Mon, 4 May 2026 07:39:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 10/12] xen/riscv: introduce p2m_gpa_bits
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1775836193.git.oleksii.kurochko@gmail.com>
 <87d8050f252fb76e241a40809763e60d9874e902.1775836193.git.oleksii.kurochko@gmail.com>
 <14ae97df-cb9b-4b43-bb39-6b9395ad918b@suse.com>
 <cde7a080-4501-4641-8848-2035e2370ab3@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <cde7a080-4501-4641-8848-2035e2370ab3@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1777873169-4576D8B7-FED8BDD7/10/73395122804
X-purgate-type: spam
X-purgate-size: 1127

On 23.04.2026 15:47, Oleksii Kurochko wrote:
> On 4/21/26 11:46 AM, Jan Beulich wrote:
>> On 10.04.2026 17:54, Oleksii Kurochko wrote:
>>> common/device-tree/domain-build.c uses p2m_gpa_bits to determine the
>>> upper bound of the GPA space when searching for unused regions, so it
>>> must be defined when CONFIG_DOMAIN_BUILD_HELPERS=y.
>>>
>>> The variable is initialised to PADDR_BITS and narrowed in p2m_init() to
>>> the GPA width of the selected G-stage mode, allowing an external entity
>>> (e.g. an IOMMU) to restrict it further if needed.
>>>
>>> p2m_gpa_bits is a global rather than a per-domain value, which is
>>> acceptable for now because all domains are required to use the same
>>> G-stage MMU mode, as dom0less common code allocates it per all
>>> domains.
>>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>
>> Pretty hesitantly:
> 
> Could you please clarify what specifically you don't like here?

As per earlier comments, this not being per-guest, and implications thereof.

Jan

>> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> Thanks.
> 
> ~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon May 04 05:41:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 05:41:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299475.1574007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJm3N-0001Rc-EM; Mon, 04 May 2026 05:41:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299475.1574007; Mon, 04 May 2026 05:41:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJm3N-0001RV-BW; Mon, 04 May 2026 05:41:13 +0000
Received: by outflank-mailman (input) for mailman id 1299475;
 Mon, 04 May 2026 05:41:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJm3L-0001RN-S9
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 05:41:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJm3L-000fVS-87
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 07:41:11 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f83177-2eae-0a2a0a5409dd-0a2a450cebae-0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:41:11 +0200
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f83177-62f1-0a2a450c0019-d155dd29ed0b-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:41:11 +0200
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-44b330c5cc6so1267469f8f.1
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 22:41:11 -0700 (PDT)
Received: from ?IPV6:2003:ca:b72b:870a:8d83:125f:d0c4:4383?
 (p200300cab72b870a8d83125fd0c44383.dip0.t-ipconnect.de.
 [2003:ca:b72b:870a:8d83:125f:d0c4:4383])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-44a981ded99sm23569370f8f.18.2026.05.03.22.41.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 03 May 2026 22:41:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777873271; x=1778478071; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7uLqXK0QO5OwSLDJ+OQUKZ1P2pF7WJHM3X6jU4+oSWY=;
        b=Ch7AyjlHfgFjJQqjDltCvHnKI+1Og+E992AyAlOseyLip4jtoDnA+0j+vdNftIOr7q
         XDnZg/ZEsQbi+2vFrkXfQxgZvt2hTYfqF6LIsidKM8wy+q1M+BSnBC/VspXd2WsYeYid
         xT/JjZ/I74Oj1xTvHzACiIBm9BPXK5GCioOfmGW/uadGSi9IG+kHXO2+kWD95XA4+LZw
         Xw+DuWGj6vl5I1V4pegA1BOGYUvdTfpwvj/z4O3k39KDBYkpIzju/EQTrYuVtnwCXz23
         Hh8o0JwAN9aGl2a5eIWHKxPHoRBgY+pjhEk5Z6J34wA4nXCm0JBxQwu8BeWn0IWO6gp0
         cBWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777873271; x=1778478071;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7uLqXK0QO5OwSLDJ+OQUKZ1P2pF7WJHM3X6jU4+oSWY=;
        b=K5ygg3BHcMCfp7DNAMO4FPg0+sKXUPU7exM/yH47m1WovkqVKGQsMY8GfbvpMzuN3O
         8pd9awzhY12OQ7VvNoyweyfys/8udHY7Ku9/xo41+aj3wfFGyZ/FXaWUFYxO/3cV2UO/
         ILcMoDmxWlBzwS2WG1kzrZfGCSeSpcwwe38MzD/EDxfdT4lgUmq24NCq47gk5BbCWBy3
         I0gYmNREF0Q4MAHXOnZugMRF999LhNjhxCkTWr+BDvnqmhvyrR5yzpIm35yLV4hjdqAm
         1OBoHfOMrVq+YvLn+SKglAQ2MAhh5MIVYbzaUFdFTxxo2bgSo4Jokc2QnK+JrN2uXJOo
         GDEQ==
X-Forwarded-Encrypted: i=1; AFNElJ8US+H56KAkYWV3+BPGXnQ5poqky1gAfcksNwPnXiyIfC66+LUJyPQ/nRZGQEOjvTxIcj9qX6EIWS0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxb01IUwHEC2k1h+qRpl/NNOOXTXUmAndPKY6QI+txeckOwJ8sn
	bYiJn+l/c/KmY/ktZ2ZIwhi+RCQb2QmpYxA7QQI6+PgydLHR9fDllKXARwzmz8j5VA==
X-Gm-Gg: AeBDiesWHucgxgQFeBLsRkZzXtsMEQHZPEmGYyT4nVeaPnMZz3Pq15jCne7BWei7Lkf
	ySeJgSiYK9KYj5HLcUah98xfgTE2dK5UU09TItxPXyx3rpTPNJR3SfsxBaWsb1A/atMkii6R8tD
	x5GEYW63xqQUic/YZd6ttLCu1W1i7Hee5GQL2R8nL4vaB0F/9ENovTRtdYVd/oG09HAQrTn5qry
	F7E/ajR3OSe8kahCWHrjePtzlRHXgBKsfG7PyGT7PuM4EWxLRlQcFYbumvll0xlroeecGzteLN5
	lLgqbwsAoS8Pd2LMXNk/HD6OJG6m43DIxsenjHQ+rfemzyse0Tb9566JvrxDfiZTlvWcpsklGm4
	SwVK2U7BK9hLDwQy4O5aD46qAX+aOVuDrcPPgcwCIP96jOq9DXMPC5QwGTjbmhETbea7oXFoj6H
	5/OO3ya/IXlHnyWbPZlqXmHxiuroDzMIFHeCl5WNtDD852lu817uI61qhPfTeLf4+o1XRjpdYb0
	mCHxHlshxj3PsJjcr8eTtUo+KcacAKRDlERilZ3pWZOgX7m8cP3e/0a44SOFXR39nlbV58=
X-Received: by 2002:a05:6000:2382:b0:439:b8b2:fad0 with SMTP id ffacd0b85a97d-44bb36d1837mr13360954f8f.5.1777873270655;
        Sun, 03 May 2026 22:41:10 -0700 (PDT)
Message-ID: <3867aa2d-ed58-44dd-bc06-94643ee5918c@suse.com>
Date: Mon, 4 May 2026 07:41:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 1/7] xen/mm: Refactor claim deduction for later
 functional changes
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: Andrew Cooper <andrew.cooper@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Roger Pau Monne <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1776172526.git.bernhard.kaindl@citrix.com>
 <5302d33e7e896347acc7a8212df4f28ea098e28e.1776172526.git.bernhard.kaindl@citrix.com>
 <3df7352b-7502-4c2a-bc3f-0cb4fa7014cf@suse.com>
 <LV3PR03MB7707C0637B5F73CA26E3F4D4872D2@LV3PR03MB7707.namprd03.prod.outlook.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <LV3PR03MB7707C0637B5F73CA26E3F4D4872D2@LV3PR03MB7707.namprd03.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1777873271-6D96DCF5-CAB26606/0/0
X-purgate-type: clean
X-purgate-size: 2692

On 22.04.2026 16:35, Bernhard Kaindl wrote:
> 
> Jan Beulich wrote:
> 
>> As to the rename to deduct_global_claims(): With that, wouldn't its 2nd
>> parameter then better also change to "deduction"? Furthermore, "global" in
>> the name is ambiguous: It may mean "not per-node", but it may also mean
>> "not per-domain". The v4 name didn't have such an issue.
> 
> I see the point about 'global'. While the struct domain argument provides
> context, the term is indeed too generic.
> 
> In this logic, 'global' was intended to refer to the opposite of
> node-specific claims. While the legacy codebase uses 'no-node' or
> NUMA_NO_NODE as a sentinel, I find those terms ambiguous for this new
> logic; they often imply a "missing" assignment rather than an explicit
> "any-node" policy.
> 
> 'Node-agnostic' better describes the architectural intent: that these
> claims are valid regardless of node locality. To resolve the ambiguity,
> I will replace 'global' with 'node-agnostic' across the board (design
> documentation, code, and tests).
> 
> Specifically, I will:
> 
>     Rename the function to deduct_node_agnostic_claims().

Or deduct_host_claims() (short for deduct_host_wide_claims())?

Jan

>     Update the second parameter to 'deduction' for consistency.
> 
>     Update the function comment to explicitly define the scope.
> 
> /* Deduct from the domain's node-agnostic (non-per-node) claims pool */
> static unsigned long deduct_node_agnostic_claims(struct domain *d,
>                                                  unsigned long deduction)
> 
> While 'global' was shorter, 'node-agnostic' is much more descriptive of
> the actual logic and the node-locality (or lack thereof) being addressed,
> avoiding the potential confusion associated with 'no-node'.
> 
> For consistency, the corresponding renames across the series will be:
> 
> +--------------------------------+---------------------------------------+
> | Original Term                  | New Term                              |
> +--------------------------------+---------------------------------------+
> | "global claims"                | "node-agnostic claims"                |
> | d->global_claims               | d->node_agnostic_claims               |
> | XEN_DOMCTL_CLAIM_MEMORY_GLOBAL | XEN_DOMCTL_CLAIM_MEMORY_NODE_AGNOSTIC |
> | deduct_global_claims()         | deduct_node_agnostic_claims()         |
> +--------------------------------+---------------------------------------+
> 
> I believe these changes result in less ambiguous language universally.
> Jan, could you Ack these renames for the next version of the series?
> 
> Bernhard
> 



From xen-devel-bounces@lists.xenproject.org Mon May 04 05:42:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 05:42:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299484.1574017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJm4R-00020N-QO; Mon, 04 May 2026 05:42:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299484.1574017; Mon, 04 May 2026 05:42:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJm4R-00020G-NB; Mon, 04 May 2026 05:42:19 +0000
Received: by outflank-mailman (input) for mailman id 1299484;
 Mon, 04 May 2026 05:42:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wJm4Q-000208-Ab
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 05:42:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJm4P-008Zbp-Mq
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 07:42:17 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f831b3-5cb7-0a2a0a5109dd-0a2a4502a092-16
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:42:17 +0200
Received: from [209.85.208.181] (helo=mail-lj1-f181.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f831b9-af86-0a2a45020019-d155d0b5f13d-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:42:17 +0200
Received: by mail-lj1-f181.google.com with SMTP id
 38308e7fff4ca-38be5e86918so46007351fa.3
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 22:42:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1777873337; cv=none;
        d=google.com; s=arc-20240605;
        b=NSJRtmcVucXmUo77Fj2FJ6jfbnuXynPNG/3SD6x5plcnuj3gT+8lXM2+oridY7HvkQ
         N83ZMvFege4aB9KAleDbL6oEVa8ShPC/lnQsbbuXKkG6AMlQcqWHVnTvBs/6yJm5vh7w
         b5Bw+x5xpe8g07eA71a3ArNTkyu5LrpOpXs50Gl0E403IAx5zXvqerrjweCbc5N9AqBc
         OT8Vkn99ywo3jZz2rIq+jNLeuKNQ4ZAGQbvNNoOUNVVcC7p+w0xY3f7oYI8ApVEtcHnI
         SKjRlTDtBDcOAWw/3wN2DnaGll4s5u9PPlWA2fKCtq44oKJbvR2fSwAKCNu00oX/eczI
         cGsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=4Ql+HNFX+IDACIwSmBhpGWBF5IWTFNIkIC+9GIsGyqs=;
        fh=EIGH5a1h9+gxzNGHDCq59FJvzGr+rE6xe+v8ON7OIfQ=;
        b=V3hidyR1y1blqpTA4VE+BW5RdY8kCDN7581I4oTOvZHwFwwAkSi+3Hsg1uNN65zBaA
         EBRbD1FMJ92SIUDHV8Pw+jB7Jv0cZJ71YkI90IFoKNk3YjCymrDcXiaujGZKDmrI4rLq
         El4uwqjhQAg87p+LcuXFba8w/3kXr4ErTs1yK2Og/D/73G4PT+jheRb95qMdPyX1EqNL
         hdtEPA8G39wL1Nt0aTe53u86x+ApFTPyOoKCehunxXDPItdG3eyyAHJMkaVdLcUbsdC7
         K2xkxizo5AcmaEFDHIxxrxkHVUBXhN6lw0JdjEgbyrddhTOP2fpKxbZJv4f3IcmtTERq
         713g==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777873337; x=1778478137; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4Ql+HNFX+IDACIwSmBhpGWBF5IWTFNIkIC+9GIsGyqs=;
        b=mXlmMsaUNoacaC5N3r/w85QStV4ARdBzyb74d9wvm2IHraVULpJEKq8jOzsUTJkFMS
         W5gzBNlhSZHwcuP6bp8iMcZLFW/CetaAvYm1b+67+oMVZmdPuRjUQB0kukb/sbctZNAG
         952OXsmezOCthClNUxZLmqPbkNXzwo3SLq3qZI9ECSjNllY9fOh+91Xd7JJcxHaipFow
         YHew9S/2BAq+F9C9MImYB3h117jmFxI1OP5dFPikZYJA9YivDivXBcdOlos7A55k056/
         fLP/LTK9JrjSzEN0HzTbBZW5pDqjQ5Tgtd/FntrTZczGr1IUWgFE9PQYrMFEHmlQs9K5
         s/oA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777873337; x=1778478137;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=4Ql+HNFX+IDACIwSmBhpGWBF5IWTFNIkIC+9GIsGyqs=;
        b=ZiIgYwWpPeLC85i03iEUJfazCsl10GNaEyIZeZCo7lVhqpDRff03OXpUcAHyq0tlI4
         Oc4mE0yx5RfgIjU/lmTHiaKGXaPWhYrTqpaldtQ307FRFAhzP017i/XT7ttBFZ0iD+Lc
         VKcdWXgVYftRSqp9A1Dr5uYFdJj014sbykXFQFjX6kaPyQUZcshepsnQX7Vf0m++baWI
         I1tGR7dZ+C/EG+4fe1694MCqHXYFV+2uI4WhEbtTTEFjAHnpTaO2pra8eJTTbqt/KkXK
         6Cfq4rvqohfAbt+BZzH426aMMlG7bfTEgV311hDHGjOLpuSV1MLXLf6fCgDt7B6AAsJE
         uMVA==
X-Forwarded-Encrypted: i=1; AFNElJ9N0E4VcAyaVoSdH0UJLfqA033l3/er1LFumulToMGKz/aNFYAbJnDECLIprP9jxk1Zxo4jgA1wtnM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwXC6UuLXj0wMWuEmNRbO2zG5orQRizm3ZaRGsPW/YjUv7l6wgo
	rZxHvt+uyY2f7eLpUcMoAesirZwqJftuNPmvHltDCD+/wBNZxmJHbTEDAPZ/cKA/DWnsUyBD1n6
	yew1kyWoF0ltDa1l2f0ZS4R+gjoTKBkw=
X-Gm-Gg: AeBDiet7GAiaAHtZpxhV/IwrYfwb7E2Xnt0LhX4va4RQXCqnzDK/hXMZMcPjIieFLbq
	zF3pXH1ZuH2HUehWapmgwTpeITGeo74G1S98KaDkw1q1TPOTPSL79ZHcADUUlCgEw57HXW7vxkF
	bnbrm1HdXVZA+MM74QWvctJBMDH9o7N+q9ywrYjFAn0K0X8CHwQLMi0F/9nW+/Rf5Gb8RZkoCq8
	zWGHw/QHWcGZ/wE7YwWdSRaWxxk2TQKvEZlG4dOttskEiULjfts6yfFLXqd9+AT7zQgLD2HIO5N
	NlXAqPNzqjYIAKPu
X-Received: by 2002:a2e:bcc7:0:b0:38c:c36b:8221 with SMTP id
 38308e7fff4ca-3937823d9c4mr25437281fa.0.1777873336511; Sun, 03 May 2026
 22:42:16 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1774431310.git.mykola_kvach@epam.com> <5b68fa0a8403ea60db3047f6505876bc03a41f3f.1774431310.git.mykola_kvach@epam.com>
 <87bjgcvul6.fsf@epam.com> <CAGeoDV87irnVf8k+Z2L6=k41p87N9O6DpLCFdkMwErzDpXB9KA@mail.gmail.com>
 <20eaa31d-a105-440e-9add-968fc9786180@gmail.com>
In-Reply-To: <20eaa31d-a105-440e-9add-968fc9786180@gmail.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 4 May 2026 08:42:05 +0300
X-Gm-Features: AVHnY4LxpGmCNxUVBBFWVnmhQTmaKrIGVIqNzprrjOoi1MwdIOk9eBgmUwzsiAc
Message-ID: <CAGeoDV9r7-nXrOhZx3KB1jASFXv9cCaPXiu29KrMpediATgqnw@mail.gmail.com>
Subject: Re: [PATCH 1/4] xen/arm: its: collect quirk flags and honor dma-noncoherent
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
Cc: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <Mykola_Kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-720697/1777873337-AB961161-11339ADA/0/0
X-purgate-type: clean
X-purgate-size: 8439

Hi Oleksandr,

Thank you for the review.

On Tue, Apr 28, 2026 at 9:42=E2=80=AFPM Oleksandr Tyshchenko
<olekstysh@gmail.com> wrote:
>
>
>
> On 3/25/26 17:47, Mykola Kvach wrote:
> > Hi Volodymyr,
>
> Hello Mykola and Volodymyr
>
>
> >
> > Thank you for the review.
> >
> > On Wed, Mar 25, 2026 at 4:42=E2=80=AFPM Volodymyr Babchuk
> > <Volodymyr_Babchuk@epam.com> wrote:
> >>
> >> Hi Mykola,
> >>
> >> Mykola Kvach <xakep.amatop@gmail.com> writes:
> >>
> >>> From: Mykola Kvach <mykola_kvach@epam.com>
> >>>
> >>> Replace the per-quirk init callback with declarative flags in
> >>> struct its_quirk, and introduce gicv3_its_collect_quirks() to gather
> >>> the effective workaround flags from both the IIDR-matched quirk entry
> >>> and the "dma-noncoherent" device-tree property.
> >>>
> >>> This lets non-coherent platforms force non-cacheable ITS table
> >>> attributes even when no IIDR quirk entry matches.
> >>>
> >>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> >>> ---
> >>>   xen/arch/arm/gic-v3-its.c | 70 ++++++++++++++++++++++++------------=
---
> >>>   1 file changed, 43 insertions(+), 27 deletions(-)
> >>>
> >>> diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> >>> index 9ba068c46f..00524b43a3 100644
> >>> --- a/xen/arch/arm/gic-v3-its.c
> >>> +++ b/xen/arch/arm/gic-v3-its.c
> >>> @@ -57,71 +57,87 @@ struct its_device {
> >>>    */
> >>>   struct its_quirk {
> >>>       const char *desc;
> >>> -    bool (*init)(struct host_its *hw_its);
> >>>       uint32_t iidr;
> >>>       uint32_t mask;
> >>> +    uint32_t flags;
> >>>   };
> >>>
> >>>   static uint32_t __ro_after_init its_quirk_flags;
> >>>
> >>> -static bool gicv3_its_enable_quirk_gen4(struct host_its *hw_its)
> >>> -{
> >>> -    its_quirk_flags |=3D HOST_ITS_WORKAROUND_NC_NS |
> >>> -        HOST_ITS_WORKAROUND_32BIT_ADDR;
> >>> -
> >>> -    return true;
> >>> -}
> >>> -
> >>>   static const struct its_quirk its_quirks[] =3D {
> >>>       {
> >>> -        .desc        =3D "R-Car Gen4",
> >>> -        .iidr        =3D 0x0201743b,
> >>> -        .mask        =3D 0xffffffffU,
> >>> -        .init        =3D gicv3_its_enable_quirk_gen4,
> >>> +        .desc  =3D "R-Car Gen4",
> >>> +        .iidr  =3D 0x0201743b,
> >>> +        .mask  =3D 0xffffffffU,
> >>> +        .flags =3D HOST_ITS_WORKAROUND_NC_NS |
> >>> +                 HOST_ITS_WORKAROUND_32BIT_ADDR,
> >>>       },
> >>>       {
> >>>           /* Sentinel. */
> >>>       }
> >>>   };
> >>>
> >>> -static struct its_quirk* gicv3_its_find_quirk(uint32_t iidr)
> >>> +static const struct its_quirk *gicv3_its_find_quirk(uint32_t iidr)
> >>>   {
> >>> -    const struct its_quirk *quirks =3D its_quirks;
> >>> +    const struct its_quirk *quirk =3D its_quirks;
> >>>
> >>> -    for ( ; quirks->desc; quirks++ )
> >>> +    for ( ; quirk->desc; quirk++ )
> >>>       {
> >>> -        if ( quirks->iidr =3D=3D (quirks->mask & iidr) )
> >>> -            return (struct its_quirk *)quirks;
> >>> +        if ( quirk->iidr !=3D (quirk->mask & iidr) )
> >>> +            continue;
> >>> +
> >>> +        return quirk;
> >>>       }
> >>>
> >>>       return NULL;
> >>>   }
> >>>
> >>> -static void gicv3_its_enable_quirks(struct host_its *hw_its)
> >>> +static uint32_t gicv3_its_collect_quirks(const struct host_its *hw_i=
ts,
> >>> +                                         const struct its_quirk **ma=
tched_quirk)
> >>>   {
> >>> +    const struct its_quirk *quirk;
> >>> +    uint32_t flags =3D 0;
> >>>       uint32_t iidr =3D readl_relaxed(hw_its->its_base + GITS_IIDR);
> >>> -    const struct its_quirk *quirk =3D gicv3_its_find_quirk(iidr);
> >>>
> >>> -    if ( quirk && quirk->init(hw_its) )
> >>> +    quirk =3D gicv3_its_find_quirk(iidr);
> >>> +    if ( quirk )
> >>> +        flags |=3D quirk->flags;
> >>> +
> >>> +    if ( hw_its->dt_node &&
> >>> +         dt_property_read_bool(hw_its->dt_node, "dma-noncoherent") )
> >>> +        flags |=3D HOST_ITS_WORKAROUND_NC_NS;
> >>> +
> >>> +    if ( matched_quirk )
> >>> +        *matched_quirk =3D quirk;
> >>> +
> >>> +    return flags;
> >>> +}
> >>> +
> >>> +static void gicv3_its_enable_quirks(struct host_its *hw_its)
> >>> +{
> >>> +    const struct its_quirk *quirk;
> >>> +
> >>> +    its_quirk_flags =3D gicv3_its_collect_quirks(hw_its, &quirk);
> >>> +
> >>> +    if ( quirk )
> >>>           printk("GICv3: enabling workaround for ITS: %s\n", quirk->d=
esc);
> >>>   }
> >>>
> >>>   static void gicv3_its_validate_quirks(void)
> >>>   {
> >>> -    const struct its_quirk *quirk =3D NULL, *prev =3D NULL;
> >>> +    uint32_t quirks, prev_quirks;
> >>>       const struct host_its *hw_its;
> >>>
> >>>       if ( list_empty(&host_its_list) )
> >>>           return;
> >>>
> >>>       hw_its =3D list_first_entry(&host_its_list, struct host_its, en=
try);
> >>> -    prev =3D gicv3_its_find_quirk(readl_relaxed(hw_its->its_base + G=
ITS_IIDR));
> >>> +    prev_quirks =3D gicv3_its_collect_quirks(hw_its, NULL);
> >>>
> >>> -    list_for_each_entry(hw_its, &host_its_list, entry)
> >>> +    list_for_each_entry_continue(hw_its, &host_its_list, entry)
> >>>       {
> >>> -        quirk =3D gicv3_its_find_quirk(readl_relaxed(hw_its->its_bas=
e + GITS_IIDR));
> >>> -        BUG_ON(quirk !=3D prev);
> >>> -        prev =3D quirk;
> >>> +        quirks =3D gicv3_its_collect_quirks(hw_its, NULL);
> >>> +        BUG_ON(quirks !=3D prev_quirks);
> >>
> >> I know it was in the previous version, but as you are already touching
> >> this... This is not Xen BUG(). This is a platform problem. So you need
> >> to panic here. Something like
> >>
> >>   if (quirks !=3D prev_quirks)
> >>          panic("Different ITS instances has different quirks")
> >
> > Ack.
> >
> >
>
> I agree that a quirk mismatch is a platform problem. Yes, the current
> design uses global flags, making it unable to handle mixed quirks,
> leading to the failure on mismatch.
>
> Please note, I am not saying a panic() is wrong here and I am not
> requesting any changes here; I was just wondering why this is handled
> differently than the SMMUv3 driver. I am just thinking out loud.
>
> SMMUv3 driver handles feature mismatches by gracefully degrading. When
> it finds an SMMU device that does not support ARM_SMMU_FEAT_COHERENCY,
> it disables that feature for the entire platform (so the P2M code has to
> clean the cache when updating ptes). It does not panic. How the ITS and
> SMMUv3 drivers are different in that regard? Why could not we apply the
> same "worst-case" logic here?
> For example:
> - if any ITS device requires non-cacheable memory, then all ITS memory
> allocations should use non-cacheable memory.
> - if any ITS device requires 32-bit addresses, then all ITS memory
> allocations should be constrained to 32-bits.
>
> This would be consistent with the SMMU precedent and would allow the
> system to boot and function correctly, but with the performance
> characteristics of the worst ITS device in the system.
>
> Or I really missed something?

Yes, I think this makes sense.

The current series still treats the ITS workaround state as global.
Patch 4 only moves the quirk setup earlier, before the LPI tables are
allocated. However, the effective flags are still taken from a single
ITS instance, and the validation logic still requires all ITS instances
to report the same flag set.

For the currently supported quirks this is probably too strict. Both
HOST_ITS_WORKAROUND_NC_NS and HOST_ITS_WORKAROUND_32BIT_ADDR are
conservative restrictions on memory attributes/allocation. Using
non-cacheable attributes for all ITS-related allocations, or constraining
them to 32-bit addresses, should also be safe for ITS instances that do
not require these restrictions.

So I agree that the SMMUv3-style worst-case policy is a better fit here.
I will rework this in v2 so that Xen aggregates the effective flags from
all host ITS instances instead of requiring exact equality.

I will also document that this aggregation is only valid for conservative
workaround flags. A future non-composable quirk should either remain
per-ITS or get explicit validation logic.

Thanks for pointing out the SMMUv3 precedent.

Best regards,
Mykola

>
>
>
>
>
>
>
>
>
>
>
> [snip]


From xen-devel-bounces@lists.xenproject.org Mon May 04 05:45:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 05:45:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299491.1574026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJm7k-0002XU-7y; Mon, 04 May 2026 05:45:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299491.1574026; Mon, 04 May 2026 05:45:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJm7k-0002XN-4e; Mon, 04 May 2026 05:45:44 +0000
Received: by outflank-mailman (input) for mailman id 1299491;
 Mon, 04 May 2026 05:45:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJm7j-0002XH-1f
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 05:45:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJm7g-00G3qu-No
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 07:45:42 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8326b-e002-0a2a0a5209dd-0a2a450787fe-36
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:45:42 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f83285-229c-0a2a45070019-d155802cc04b-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:45:42 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-488a9033b2cso31630585e9.2
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 22:45:41 -0700 (PDT)
Received: from ?IPV6:2003:ca:b72b:870a:8d83:125f:d0c4:4383?
 (p200300cab72b870a8d83125fd0c44383.dip0.t-ipconnect.de.
 [2003:ca:b72b:870a:8d83:125f:d0c4:4383])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8feb0cbfsm102663265e9.2.2026.05.03.22.45.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 03 May 2026 22:45:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777873541; x=1778478341; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=I5jaxdTlW6GXQMnEt7sFJoGWFKaarJ+FNjRxLD7lDfU=;
        b=OJrdwGH/dZqt/U3KojZSAuQXh//G9UWKiX/lvplhPPPkrpm/i/f43E8EIAYfB5d7Mi
         CugHONOjgPi3Oc1+eFdd3gVP8KyNrk2bmr5UNM3DiKAE4AjKqVjdf5tuCT4uoKg0Txcc
         oRrRTiPaUICfaKWD8BY8K5RQGW7xeIbotvnwKr+o+qqRsDWCsKhxDBgQn7qMgaUlx/2a
         iWJGRIoy/3zof+mSW0OZEyI2QFryUjq5bDXGaUkQpgwqCI1AjQiq5mTNFa0GWAyEG69j
         EVs4iWFADbzuZgELrOXzOPHfZXuLCrTZ5HgEtx40tp+6doJUulma/Hjps8njzqiCw0/x
         9bmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777873541; x=1778478341;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=I5jaxdTlW6GXQMnEt7sFJoGWFKaarJ+FNjRxLD7lDfU=;
        b=mEVxfkeIiaJOHstI7WdQbuXskWLCq59RNW5BRyg/gAZMpYP1+1dnCLEqAEU1Lynszw
         iYYh/nFT7qorSZBBLiVvH96VEHPt7y/hqii1ruKFM4REZfJ8pQMYytCzF9NUiYgxPy2S
         TEXrnYrJjpEskL8+/TwBQ//RhINyhfrg/M88f87aurWkPS+C/0bV+Sd6a5ZNG7jK1AWL
         cNufBEmxxRJXpHPBlnHth0Dl0qrXTzcWgMvAY1Kj6qNQkcpc4mzBIRybVxHFcxHi90m+
         zHzcljTK0B/UlMn38TRA/KtuamNgq83Jlw4ROMTOfzinvDX9WahPHXN4aM6JM6nevIqa
         3Y6g==
X-Forwarded-Encrypted: i=1; AFNElJ/QTHM4Ogv9JuU8xCvL8dMSbBIhU7y5fFCaLZqvwJ0G2dvrRrPXbmTcdHvd4IK4p2k+N+IX8khcavk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZPzX+z+XxIn5NqRksiVRgehmILNneFcoTU0EdoRu5CD5rghea
	AiK4ui6TwbFaMz8LPe175S0pBovpgLCNej/YHYjMhn6dr3yg05eGRqiT31md9YL4wA==
X-Gm-Gg: AeBDievSIdP+bFT/SS5rLq0+cCQC6uGWOWmp9TK/bey2K6eqeZwVaQ6ToT0DQX5DT+o
	vgAL5z2fRvpmal65DA2OGESluBb0lgzgucqgnzN8XWm3ojvmbMkr2gE87ox8EokJlFhgAXtgV8g
	pImJI+9NJ9+UgwhVWT+T1OLCHDgJ0piCm2bEnpQP2DvQOmL3sNMPSzIJ+NJDTWnXFP/EkEeI0B6
	KjB+TWa5nnWCMvM6kAPWavSVO/5TrT4oo3dh5obY7pqWkSETvwa8dyfc6EH149JhsCLTX1v+xdX
	6m8oQ3+dVuLB6NDyZ/Xh8+s/C4tPY1kj1I1y7GG0Yn4VPKA72LDopOksqQ0DafP+4Ng9T3jY151
	Zx+9mNICmMdgF9QB3emr1mlgrLB5JaHOhW/Et2rrQxplTl30kYUc82yDO6snclvDOKqFMJrCiBn
	VH1hHKzDhd4Vt2FR/alKizI7MDKI7Kq/+FV+OLZQHbuxmEvMk1oXhbBxidUrfWCMBQIh8YckTyI
	qiMC7pYacq3+TrXVOA5EYev+TUgp5I1/CNiWe635lGr0xUUFs5gOG+tH7E7xcuKzpJc+G4=
X-Received: by 2002:a05:600c:33a2:b0:48a:5342:36b5 with SMTP id 5b1f17b1804b1-48d0640ec5emr32780275e9.21.1777873541529;
        Sun, 03 May 2026 22:45:41 -0700 (PDT)
Message-ID: <ef24286f-cdef-4b73-9121-d05ee05798e4@suse.com>
Date: Mon, 4 May 2026 07:45:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Disable interrupts when establishing SSP
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260501191028.1250225-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260501191028.1250225-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1777873542-1625DC48-8DE29D46/0/0
X-purgate-type: clean
X-purgate-size: 3177

On 01.05.2026 21:10, Andrew Cooper wrote:
> Gitlab CI reported a crash on boot on Alder Lake hardware.  The bug is years
> old, making it an incredibly rare occurance:
> 
>   (XEN) *** DOUBLE FAULT ***
>   (XEN) ----[ Xen-4.22-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
>   (XEN) CPU:    0
>   (XEN) RIP:    e008:[<ffff82d04077bbc4>] arch/x86/setup.c#reinit_bsp_stack+0xfa/0x160
>   (XEN) RFLAGS: 0000000000010202   CONTEXT: hypervisor
>   (XEN) rax: 0000000000000007   rbx: ffff83049a4b0000   rcx: 00000000000006a2
>   (XEN) rdx: 0000000000000000   rsi: 0000000000000000   rdi: 0000000000000000
>   (XEN) rbp: ffff83049a4b7f00   rsp: ffff83049a4b7ef8   r8:  ffff830497e47000
>   (XEN) r9:  00000000ffffffff   r10: 00000000900c2121   r11: 000000009a392956
>   (XEN) r12: ffff830497e47000   r13: ffff830497e49f40   r14: 0000000000000000
>   (XEN) r15: ffff82d0407dad10   cr0: 0000000080050033   cr4: 0000000000f526e0
>   (XEN) cr3: 0000000043c16000   cr2: fffffffffffffffc
>   (XEN) fsb: 0000000000000000   gsb: 0000000000000000   gss: 0000000000000000
>   (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: e008
>   (XEN) Xen code around <ffff82d04077bbc4> (arch/x86/setup.c#reinit_bsp_stack+0xfa/0x160):
>   (XEN)  00 b9 a2 06 00 00 0f 30 <80> 3d 71 26 f1 ff 00 74 3e 48 8d 93 f8 5f 00 00
>   (XEN) Valid stack range: ffff83049a4b6000-ffff83049a4b8000, sp=ffff83049a4b7ef8, tss.rsp0=ffff83049a4b7fb0
>   (XEN) No stack overflow detected. Skipping stack trace.
>   (XEN)
>   (XEN) ****************************************
>   (XEN) Panic on CPU 0:
>   (XEN) DOUBLE FAULT -- system shutdown
>   (XEN) ****************************************
> 
> This is on the instruction boundary after enabling CET (writing MSR_S_CET) and
> prior to establishing SSP.  Despite identifying this as a critical window
> where any fault was deadly (the CPU tries to push a shadow stack frame at 0,
> hence the CR2 value wrapping around to the top of the address space), I
> clearly forgot that this meant interrupts too, which are enabled.
> 
> Along with regular interrupts, NMIs are a problem.  Unlike other cases needing
> NMI safety, we can't use a self NMI and callback, as the stack needs to be
> empty at the point of enabling Shadow Stacks.
> 
> Disable interrupts, and turn off the watchdog if it's configured.
> 
> Note that watchdog_{en,dis}able() do not work here.  They cause the watchdog
> NMI to be ignored; they do not inhibit the generation of NMIs.
> 
> Fixes: b60ab42db2f0 ("x86/shstk: Activate Supervisor Shadow Stacks")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
preferably ...

> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -908,6 +908,19 @@ static void __init noreturn reinit_bsp_stack(void)
>  
>      if ( cpu_has_xen_shstk )
>      {
> +        bool watchdog = (nmi_watchdog == NMI_LOCAL_APIC);
> +
> +        /*
> +         * Between enabling CET and establishing SSP, any fault or interrupt
> +         * is fatal.  We must arrange for none to happen.

... with a note regarding #MC added here.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 05:49:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 05:49:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299421.1574035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJmBK-0003Ln-Lq; Mon, 04 May 2026 05:49:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299421.1574035; Mon, 04 May 2026 05:49:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJmBK-0003Lg-JA; Mon, 04 May 2026 05:49:26 +0000
Received: by outflank-mailman (input) for mailman id 1299421;
 Mon, 04 May 2026 03:24:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Samuel.Montgomery61@protonmail.com>)
 id 1wJjvJ-0007UD-0F
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 03:24:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJjvH-008I3R-5a
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 05:24:43 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Samuel.Montgomery61@protonmail.com>)
 id 69f81128-5cb7-0a2a0a5109dd-0a2a4503b54e-44
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 05:24:42 +0200
Received: from [185.70.43.167] (helo=mail-43167.protonmail.ch)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Samuel.Montgomery61@protonmail.com>)
 id 69f8117a-672d-0a2a45030019-b9462ba74be5-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 05:24:42 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=protonmail3 header.d=protonmail.com header.i="@protonmail.com" header.h="Date:To:From:Subject:Message-ID:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
	s=protonmail3; t=1777865082; x=1778124282;
	bh=n6IY1A1TFjd+nC/H+/Qn+1wFazhEj+IW+F2zlnlaC6A=;
	h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector;
	b=OT0JjJsBw63hd1V8ouI9ocYkxuQIk9ZKyjRFTOxqcMKXwAZpHRxrNILWPQ3l/vxRY
	 iqORFufSNOM+gGuxFXefzt6xNSqBGd2R7TVFmoum1FmKohUOGWgv67upMboM6WUFO+
	 G0JE+LfpPh1RXO4eEpmJ5t7yQFu99LU/fzWoz32M05GXR+Y/ZZc06sZfNDacaqGswe
	 x6t4L7ZiJK8sqo4EIQuh65qjYzco0ecUMoB14bfy0/0D0LzeIONUsy8MixX0TfF+Rj
	 JyobtkjXUrgsFoD60s3Rka2LVRS7eVMCe96o8XGnEc3fUlQVbMx1QaeM1DLEvzkdke
	 URnYxmyKFqvGg==
Date: Mon, 04 May 2026 03:24:40 +0000
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: "Samuel.Montgomery61" <Samuel.Montgomery61@protonmail.com>
Subject: [RFC] Skip boot memory scrub on platforms with full-memory encryption
Message-ID: <xJXmemuuJ0kqnGWQ9PWwfFn8_KZVhYSbsAyHFGvDeiqpxUK1Q-ar7Lab7ttRPx-tcEHduS26pU9BkIifbhznT1Qc06vyHfovl1-IXC0cWUU=@protonmail.com>
Feedback-ID: 16446063:user:proton
X-Pm-Message-ID: 4204f4dcf239f86d163e20ff008378053a34d9f0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-33051d/1777865082-A2766938-F8C2C498/0/0
X-purgate-type: clean
X-purgate-size: 2305

Hello,

Xen's boot-time memory scrub is one of the more time-consuming steps
during boot, particularly on systems with large amounts of RAM. I'd
like to propose skipping it on systems with hardware full-memory
encryption (e.g., Intel TME, AMD TSME).

These features encrypt all DRAM transparently using an ephemeral key
generated by the CPU at each boot. The key is not accessible to
software and does not persist across reboots. This means residual data
from any previous session where encryption was active is unreadable --
the same property that boot scrubbing exists to provide.

The important nuance is that Xen needs to confirm encryption has been
continuously active since the last scrub, not just that it is active
now. If encryption was only recently enabled in firmware, residual
plaintext from prior unencrypted sessions could still be present in
pages that were never overwritten. Possible approaches:

  - Record "encryption active" to an EFI variable each boot; skip the
    scrub only if the flag is present from the previous boot.
  - Expose a command-line option for administrators to assert that
    encryption has been consistently enabled.
  - Some combination of the two.

The optimization would apply only to the cross-reboot case. Runtime
scrubbing when domains shut down would be unaffected, since all domains
share the same key during a running session.

Edge cases worth considering:

  - Memory written by firmware before encryption activation.
  - Crash/kexec without a full hardware reset (key may not change).
  - Suspend/resume (some implementations restore the prior key).
  - Interaction with existing bootscrub=3D command-line options.

As a broader note, multi-key extensions to full-memory encryption (such
as those used by AMD SEV and Intel TME-MK) could eventually eliminate
the need for runtime scrubbing as well, by giving each domain its own
key. This is relevant to the confidential computing work currently
underway (Teddy Astie's recent AMD SEV RFC), though the boot-scrub
optimization proposed here is independent and much simpler.

Feedback welcome on whether the reasoning is sound and whether there
are edge cases I've missed.

Thanks,

Sam

ps. I'm not subscribed to the list, so please CC me in replies.


From xen-devel-bounces@lists.xenproject.org Mon May 04 05:52:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 05:52:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299508.1574044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJmEN-0004uN-8z; Mon, 04 May 2026 05:52:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299508.1574044; Mon, 04 May 2026 05:52:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJmEN-0004uG-4x; Mon, 04 May 2026 05:52:35 +0000
Received: by outflank-mailman (input) for mailman id 1299508;
 Mon, 04 May 2026 05:52:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJmEM-0004uA-Bj
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 05:52:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJmEL-008b44-KI
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 07:52:33 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f83411-5cb7-0a2a0a5109dd-0a2a4502a792-48
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:52:33 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f83421-af86-0a2a45020019-d155802dd575-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:52:33 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-488ba840146so30575075e9.1
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 22:52:33 -0700 (PDT)
Received: from ?IPV6:2003:ca:b72b:870a:8d83:125f:d0c4:4383?
 (p200300cab72b870a8d83125fd0c44383.dip0.t-ipconnect.de.
 [2003:ca:b72b:870a:8d83:125f:d0c4:4383])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a82307f7csm308484405e9.12.2026.05.03.22.52.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 03 May 2026 22:52:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777873953; x=1778478753; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=V6YnH8dpYeNFgJV3DXIivVeD1klIgbNAMdKqlU3iJZ8=;
        b=Z6k9AZXvyr9nDu/HbDLBmfETs2F0KyNr2dlWqaP6VLK0BmE3rHuV0EAWh2alNroOFQ
         7qwEv/Lh1jyCWWON4tB+iRnyW7ULYNPYuNRZ8fJBYcSNqI1xzJyzd6NfiUNEgqvNkae7
         JfLfsZBcQx/4p9rgkO2/h3PHvOBvjGOlJZ4FGBOJjWe3HYkeW04JX2iP65JDBchOFJba
         lGGiLk2zc9Om3dx2SBrC5kp9Pc+gjOlSM0RhTuA1CMKyRRldtTd7vm31MVh+Q41PBmLQ
         ADZm/5iAkOvgvtA4KFJyUJf1pkeXJXB6Fy1ecb4N8Q33JIb1i5yK3DDAjfOHAw5EgzmD
         9y3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777873953; x=1778478753;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=V6YnH8dpYeNFgJV3DXIivVeD1klIgbNAMdKqlU3iJZ8=;
        b=Bfygw8kEVw0hjBTNPNkR7IzIwc8pGsUeJmrDoIYGg00/CL49HGX2zYCmRjfM4sqGWY
         TbLkmDe0SucF1tOaJ9YsvmRvQtIc9mpi45YRTojNQLgulSwT3VCI40XMtcIbvtqArHQJ
         xk5evI56FPt60JbV7Tw1itaunUh6dWco/WvXSClDxC5Sh6+L4kJj0vA09dsje2TVNGYh
         GdK0+ZjXO6+SBQESu63NHYiNbv76lajUvDfwvi1ScMqQVXU6j559qXcgl5cggF6hg3kh
         fOpVMmtcHI7BV3TW5hI58fZIU1ZoCrnt0w2W/IFA1D/68yiToa33eFjczs0biI1rVpfj
         RxRA==
X-Gm-Message-State: AOJu0Yyst6UH74rCcRZLLSgN6K75NEQkA/XEYaUmUZ680Da3LT4GF37Y
	mXEFl9kFI1zbv7foC6tx/FVjQsWUdgwRWagTFyF92w44P31Fsay5wXRhMTkwvg2Szg==
X-Gm-Gg: AeBDieuYwrcpeFx52RLGFlgwnH0aD8OYuC1BJx4NeDrzn+UxX+idWvdzM5xOfKUEzD+
	rVZBCmqEeErFSqAsJQGO/D8+uQTy2uXfaRrrCPbyAvNQGPf/jDirdGxaTTNCcZoeYb/EJzttzuD
	s9RpBGU5gHAYHlfWReqHjmXT8v/JqKsGg8iOvjzRNPdxq5Ww6HJoXl6AI/BD4dj/irolkhdNaMe
	OMnCZeoUpwxMvA5p7IdasgtBxT8H568szZH0bfFiY+MilTZdTE3ZVAVUZ6wxjetsb4u1jknRtZF
	U1SrF0IboRkhcMONgFs3xc+d4c/mw5KIgPH3ZlrRMNO5LkrHghyO8VxdHrTilhVLCirt98R2zbu
	oYZBCFTMKLn/vA+pzHzkUb2UfngY2+Ndo155L5YPks4v+lJ0RrVvLsXQ2KWO/2e1ASvhseE/sOF
	BmZhoV5FdcaeWu4pDts5f4WSm8Rm0H9KVuO5WnF92IRc0MzlkEc95Z2yeqhNpErj5JwBE8TcyZV
	gAVHJGBjy+O7+etJRFNsUEb5A51HP6duaLOV/GQlAk/tyRHiMRltYG50e72nocAbY0ZaJA=
X-Received: by 2002:a05:600c:c4b8:b0:488:79a3:f04c with SMTP id 5b1f17b1804b1-48a98675ca0mr130444065e9.27.1777873952875;
        Sun, 03 May 2026 22:52:32 -0700 (PDT)
Message-ID: <48b9dae9-7161-4693-b86b-1448fe79005d@suse.com>
Date: Mon, 4 May 2026 07:52:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/4] vpci: allow 32-bit BAR writes with memory decoding
 enabled
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <20260406191203.97662-1-stewart.hildebrand@amd.com>
 <20260406191203.97662-5-stewart.hildebrand@amd.com>
 <aesu7sCLTaodcyWL@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aesu7sCLTaodcyWL@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1777873953-B3762161-8CBFA387/0/0
X-purgate-type: clean
X-purgate-size: 2427

On 24.04.2026 10:50, Roger Pau Monné wrote:
> On Mon, Apr 06, 2026 at 03:11:58PM -0400, Stewart Hildebrand wrote:
>> --- a/xen/drivers/vpci/header.c
>> +++ b/xen/drivers/vpci/header.c
>> @@ -670,6 +670,7 @@ static void cf_check bar_write(
>>  {
>>      struct vpci_bar *bar = data;
>>      bool hi = false;
>> +    uint16_t cmd = 0;
>>  
>>      ASSERT(is_hardware_domain(pdev->domain));
>>  
>> @@ -683,19 +684,29 @@ static void cf_check bar_write(
>>          val &= PCI_BASE_ADDRESS_MEM_MASK;
>>  
>>      /*
>> -     * Xen only cares whether the BAR is mapped into the p2m, so allow BAR
>> -     * writes as long as the BAR is not mapped into the p2m.
>> +     * Allow 64-bit BAR writes only when the BAR is not mapped in p2m. Always
>> +     * allow 32-bit BAR writes.
>>       */
>>      if ( bar->enabled )
>>      {
>> -        /* If the value written is the current one avoid printing a warning. */
>> -        if ( val != (uint32_t)(bar->addr >> (hi ? 32 : 0)) )
>> -            gprintk(XENLOG_WARNING,
>> -                    "%pp: ignored BAR %zu write while mapped\n",
>> -                    &pdev->sbdf, bar - pdev->vpci->header.bars + hi);
>> -        return;
>> -    }
>> +        if ( bar->type == VPCI_BAR_MEM32 )
>> +        {
>> +            if ( val == bar->addr )
>> +                return;
>>  
>> +            cmd = pci_conf_read16(pdev->sbdf, PCI_COMMAND);
>> +            modify_bars(pdev, cmd, false, false);
>> +        }
>> +        else
>> +        {
>> +            /* If the value written is the same avoid printing a warning. */
>> +            if ( val != (uint32_t)(bar->addr >> (hi ? 32 : 0)) )
>> +                gprintk(XENLOG_WARNING,
>> +                        "%pp: ignored BAR %zu write while mapped\n",
>> +                        &pdev->sbdf, bar - pdev->vpci->header.bars + hi);
>> +            return;
>> +        }
>> +    }
>>  
>>      /*
>>       * Update the cached address, so that when memory decoding is enabled
>> @@ -715,6 +726,9 @@ static void cf_check bar_write(
>>      }
>>  
>>      pci_conf_write32(pdev->sbdf, reg, val);
> 
> I don't think it matters a lot, but here we are changing the position
> of the BAR in the host memory map while the mappings are still active.

It would matter if the original address space could be re-used for another
purpose while those mappings are still there?

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 06:34:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 06:34:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299517.1574053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJmsF-0001tH-Bo; Mon, 04 May 2026 06:33:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299517.1574053; Mon, 04 May 2026 06:33:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJmsF-0001tA-8H; Mon, 04 May 2026 06:33:47 +0000
Received: by outflank-mailman (input) for mailman id 1299517;
 Mon, 04 May 2026 06:33:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wJmsD-0001sl-Sm
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 06:33:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJmsC-000pKi-Et
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 08:33:44 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f83dc6-5cb7-0a2a0a5109dd-0a2a45049d5c-6
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 08:33:44 +0200
Received: from [209.85.167.50] (helo=mail-lf1-f50.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f83dc7-1dec-0a2a45040019-d155a732c99c-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 08:33:44 +0200
Received: by mail-lf1-f50.google.com with SMTP id
 2adb3069b0e04-5a8704dc3a8so577781e87.3
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 23:33:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1777876423; cv=none;
        d=google.com; s=arc-20240605;
        b=ZI+G/1YnQ5jihPZRQqLoeW8Aqr29IpeM487nR+DZedStMYiwnNhLQFSUFsE/cwykMm
         1riy1psmDFwxWaPJPL5KSiEsHUvyfcxHDgh3Gc52ss4jGETzrWuiYFOekWGYO/3pIJ+f
         8mzA9sgINv5iJ5qWOWZwfMH6T84rXeqGTq1FbRgYc5x8oLsYY+g+lc6vmuNL5CGmkRwu
         GqVy4akJtlM1LTig0DIMOv5KaruStjOLZAUN+5xsDoB9c8qYcYJOIR0XXCdjTjlrgu4O
         AtCLGPcVtVbEWKuboeFyWJl70izW6ty+QANTfu0z+eEwmc0jR5MvIAi2HlDWQtgE1mwe
         z65w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=emm0nOW7AT35luFuC0TZis7rdQbPFoLws99ueDOFLuw=;
        fh=SFtdlMni3BnFH+oTSZbVgVF1hLyFxrwlVmTI+BqD6+c=;
        b=QCZhPOI2TDjypF37lXZg+j8F86ZFErnS7ZEtNITGllEL/+jpFrfJbg9XQndx++f8Yu
         9APzfCAhScfPwHiw9si4VEIJwdoYcwarQNNPYQrficDAZ85KN8MRmKBQrLDcoGtJ6/Bq
         1lqKFlWUyHEOL1FpjhA6m/4DRz5rkN+OI/vfxPnCxgxXVR+7LsQLiPNYARgyzevyXJFJ
         3Y8uu/2YqE/XSjBS2e5XXec1waNATRDX9+NdObfQaO12Qo2fD55UoGR6/PrQUBcA1TUZ
         qz6I572gzxFKVK/5gylLqCm6xs5bsaFTtx8p2qiGFBaPFpZbnIwVl1KPd6kqf+JLt+zW
         TKUw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777876423; x=1778481223; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=emm0nOW7AT35luFuC0TZis7rdQbPFoLws99ueDOFLuw=;
        b=PB+7twfr6TWWXyN42FKFzKJF3S5bBq5HMaER7fWj3MObRj9M/iaTACaI1jI9ixBAVa
         y7O6oEOaKxxjmZCqHWOjkc1MmJGYy10LYpkvPY0vQPxH2sAuZMZNNBZtklFzBYg0ofYi
         Q6EehQ6qmhdayWMxispu4Fi/jhqz0BQxjULTsBi9TYoOKMoqTTnmyoA1Z21tXQFXLrKn
         1bkcoFPOJnbFNLIvGuX7pTcss3+HebPF6CXuI3EHSAjhgHjeAgYCDbkIGSAAGDMyvxOE
         5aOs8uWGiBGLqCAp+oqhNYYhbfGN0nlKXUrxphxrd7X4OKVCmAo3yti3tRklJVtZEvmB
         L7DA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777876423; x=1778481223;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=emm0nOW7AT35luFuC0TZis7rdQbPFoLws99ueDOFLuw=;
        b=kBBboaTlguePemOX5i3SfIiroHsvMuGbq43/bA3aYDebdF2e/gW4n+PKgsOjTxsmO7
         ICpIe/Ut4PMeQ5ghRBRYWupr0UFg5WIAK1+hjirtKWWIw+KWY+xRHoxZ/yDN3V5iVd9I
         JG5UU79NwdQ2yqDaSBakW/ezdhqKzt7yBYaOluXISihpax3QaHONrRSvYSlOmFUf/BRw
         1OuqECUfvcp++avaKU1PhyAR6dPYGzBQ9u/JUNTnViZ4NApLV1lNyyGvfUsSPl1COnJA
         vcDTcSX/pE9fvvoHlmZ1G2a09UEeaqDfIuRM1VJ7GtcWCkaxIIf8z1CAXNFQq/0KSiQU
         pQ7w==
X-Gm-Message-State: AOJu0YxrimonyJxSKUgzlYrS11VyKx5HfhjIUhwSJPTSDpBNFiraPr3J
	93uO8G+XqDdXWmQX1BXoYoSwxTphp6zWksr1kOxTGN+x5PZgO9p+3T6h6mHoI3XqFEK9U24iO5K
	jFaEpxypehrQoN8pIEi9fQydMlO4fmPw=
X-Gm-Gg: AeBDiesZXf+gT0+LzsJoMGWDYAQuDwBcudrTOS2DeJbGx1kzgF16G8EIJ7zjLPvrcv6
	6kxdmVgqiwjsUopKgCdX4F5TUvNNeGAA0a8ubQP/AuVGVOSNxoHiAW1aREW4ssFnUzpK0//EXr7
	mTbhFPx32l3QdI9UEpWKp/7uHLSTkUodU0HsiVaqwLviOFTlBsibfsO0oSmO9sqsq3ZT83e0NJK
	hakSk3bNb3bwrOJdMxdhDBRpScJ8aM5o2VsxZpmbzm3lkZEH0pO4GaW6v6tLE+oKWcLZgGdqzsh
	H4jXYrZdPEyMZ9x9
X-Received: by 2002:a05:6512:696:b0:5a8:707f:904 with SMTP id
 2adb3069b0e04-5a8707f0a67mr1226440e87.0.1777876423318; Sun, 03 May 2026
 23:33:43 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1774431310.git.mykola_kvach@epam.com> <a7732487959e777ff1de318cb28c588db69fbaa1.1774431311.git.mykola_kvach@epam.com>
 <6b78dcf3-7e4c-4568-a0fd-58d5c860e4fa@gmail.com>
In-Reply-To: <6b78dcf3-7e4c-4568-a0fd-58d5c860e4fa@gmail.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 4 May 2026 09:33:32 +0300
X-Gm-Features: AVHnY4K0n5-M1EGmt3OlTmRiQa2Or5e4EMXWv7ABjjvb9VOrLd6oBZjuvaFxXlQ
Message-ID: <CAGeoDV8KK0Uv=gT2j-SqQhTJHVfzi3w_42ctGZP=9=ncw++cyw@mail.gmail.com>
Subject: Re: [PATCH 4/4] xen/arm: its: pre-initialize ITS quirks before LPI setup
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ebf023/1777876424-310493FF-9C9D6481/0/0
X-purgate-type: clean
X-purgate-size: 8981

Hi Oleksandr,

Thank you for the review.

On Tue, Apr 28, 2026 at 7:31=E2=80=AFPM Oleksandr Tyshchenko
<olekstysh@gmail.com> wrote:
>
>
>
> On 3/25/26 12:38, Mykola Kvach wrote:
>
> Hello Mykola
>
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > In the current initialization flow, gicv3_init() calls gicv3_dist_init(=
)
> > before gicv3_its_init().
> >
> > When LPIs are supported, gicv3_dist_init() calls
> > gicv3_lpi_init_host_lpis(), which initializes host LPI state and alloca=
tes
> > the boot CPU pending table before ITS quirk flags are computed. Non-boo=
t
> > CPUs allocate their pending tables later from the CPU_UP_PREPARE notifi=
er,
> > while redistributor LPI programming happens separately in
> > gicv3_lpi_init_rdist().
> >
> > This means the boot CPU LPI setup can observe default ITS memory attrib=
utes
> > before dma-noncoherent and other ITS quirks are applied.
> >
> > Introduce gicv3_its_preinit() and call it before gicv3_dist_init(). Thi=
s
> > keeps the actual ITS hardware initialization in gicv3_its_init(), but m=
oves
> > ITS discovery, quirk validation and quirk flag setup early enough for t=
he
> > subsequent LPI initialization to use the correct attributes.
>
>
> Have you considered an alternative approach that might be less invasive?
> I am thinking of something the other way around: perhaps we could
> allocate the LPI pending table for the boot CPU later.
>
> Would a diff below work?
>
>
> ---
>   xen/arch/arm/gic-v3-lpi.c             | 9 +++++++++
>   xen/arch/arm/gic-v3.c                 | 2 ++
>   xen/arch/arm/include/asm/gic_v3_its.h | 6 ++++++
>   3 files changed, 17 insertions(+)
>
> diff --git a/xen/arch/arm/gic-v3-lpi.c b/xen/arch/arm/gic-v3-lpi.c
> index 9ee338edc2..61cc45d347 100644
> --- a/xen/arch/arm/gic-v3-lpi.c
> +++ b/xen/arch/arm/gic-v3-lpi.c
> @@ -450,6 +450,15 @@ int gicv3_lpi_init_host_lpis(unsigned int
> host_lpi_bits)
>
>       printk("GICv3: using at most %lu LPIs on the host.\n",
> MAX_NR_HOST_LPIS);
>
> +    return rc;
> +}
> +
> +int gicv3_lpi_post_init_host_lpis(void)
> +{
> +    int rc;
> +
> +    ASSERT(smp_processor_id() =3D=3D 0);
> +
>       /* Register the CPU notifier and allocate memory for the boot CPU *=
/
>       register_cpu_notifier(&cpu_nfb);
>       rc =3D gicv3_lpi_allocate_pendtable(smp_processor_id());
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index 7f365cdbe9..8b9059c5c9 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -1981,6 +1981,8 @@ static int __init gicv3_init(void)
>           res =3D gicv3_its_init();
>           if ( res )
>               panic("GICv3: ITS: initialization failed: %d\n", res);
> +
> +        gicv3_lpi_post_init_host_lpis();
>       }
>
>       res =3D gicv3_cpu_init();
> diff --git a/xen/arch/arm/include/asm/gic_v3_its.h
> b/xen/arch/arm/include/asm/gic_v3_its.h
> index fc5a84892c..288cc1d42f 100644
> --- a/xen/arch/arm/include/asm/gic_v3_its.h
> +++ b/xen/arch/arm/include/asm/gic_v3_its.h
> @@ -156,6 +156,7 @@ int gicv3_lpi_init_rdist(void __iomem * rdist_base);
>
>   /* Initialize the host structures for LPIs and the host ITSes. */
>   int gicv3_lpi_init_host_lpis(unsigned int host_lpi_bits);
> +int gicv3_lpi_post_init_host_lpis(void);
>   int gicv3_its_init(void);
>
>   /* Store the physical address and ID for each redistributor as read
> from DT. */
> @@ -245,6 +246,11 @@ static inline int gicv3_lpi_init_host_lpis(unsigned
> int host_lpi_bits)
>       return 0;
>   }
>
> +static inline int gicv3_lpi_post_init_host_lpis(void)
> +{
> +    return 0;
> +}
> +
>   static inline int gicv3_its_init(void)
>   {
>       return 0;

Yes, I think this direction is better and less invasive.
Thank you for the suggestion.

Best regards,
Mykola

> --
> 2.34.1
>
>
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > TODO: Think about separating Redistributor/LPI attributes from ITS.
> > ---
> >   xen/arch/arm/gic-v3-its.c             | 36 +++++++++++++++++---------=
-
> >   xen/arch/arm/gic-v3.c                 |  7 ++++++
> >   xen/arch/arm/include/asm/gic_v3_its.h |  5 ++++
> >   3 files changed, 35 insertions(+), 13 deletions(-)
> >
> > diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> > index ee432088cd..0251d91630 100644
> > --- a/xen/arch/arm/gic-v3-its.c
> > +++ b/xen/arch/arm/gic-v3-its.c
> > @@ -63,6 +63,7 @@ struct its_quirk {
> >       uint32_t flags;
> >   };
> >
> > +/* TODO: Separate Redistributor/LPI attributes from ITS quirks. */
> >   static uint32_t __ro_after_init its_quirk_flags;
> >
> >   static bool gicv3_its_match_quirk_gen4(const struct host_its *hw_its)
> > @@ -148,9 +149,15 @@ static uint32_t gicv3_its_collect_quirks(const str=
uct host_its *hw_its,
> >       return flags;
> >   }
> >
> > -static void gicv3_its_enable_quirks(struct host_its *hw_its)
> > +static void gicv3_its_enable_quirks(void)
> >   {
> >       const struct its_quirk *quirk;
> > +    const struct host_its *hw_its;
> > +
> > +    if ( list_empty(&host_its_list) )
> > +        return;
> > +
> > +    hw_its =3D list_first_entry(&host_its_list, struct host_its, entry=
);
> >
> >       its_quirk_flags =3D gicv3_its_collect_quirks(hw_its, &quirk);
> >
> > @@ -603,16 +610,10 @@ static int gicv3_its_init_single_its(struct host_=
its *hw_its)
> >       uint64_t reg;
> >       int i, ret;
> >
> > -    hw_its->its_base =3D ioremap_nocache(hw_its->addr, hw_its->size);
> > -    if ( !hw_its->its_base )
> > -        return -ENOMEM;
> > -
> >       ret =3D gicv3_disable_its(hw_its);
> >       if ( ret )
> >           return ret;
> >
> > -    gicv3_its_enable_quirks(hw_its);
> > -
> >       reg =3D readq_relaxed(hw_its->its_base + GITS_TYPER);
> >       hw_its->devid_bits =3D GITS_TYPER_DEVICE_ID_BITS(reg);
> >       hw_its->evid_bits =3D GITS_TYPER_EVENT_ID_BITS(reg);
> > @@ -1161,6 +1162,11 @@ static void add_to_host_its_list(paddr_t addr, p=
addr_t size,
> >       its_data->size =3D size;
> >       its_data->dt_node =3D node;
> >
> > +    its_data->its_base =3D ioremap_nocache(its_data->addr, its_data->s=
ize);
> > +    if ( !its_data->its_base )
> > +        panic("GICv3: Cannot map ITS frame: 0x%lx, 0x%lx\n",
> > +            its_data->addr, its_data->size);
> > +
> >       printk("GICv3: Found ITS @0x%lx\n", addr);
> >
> >       list_add_tail(&its_data->entry, &host_its_list);
> > @@ -1238,16 +1244,22 @@ static void gicv3_its_acpi_init(void)
> >
> >   #endif
> >
> > -int gicv3_its_init(void)
> > +void __init gicv3_its_preinit(void)
> >   {
> > -    struct host_its *hw_its;
> > -    int ret;
> > -
> >       if ( acpi_disabled )
> >           gicv3_its_dt_init(dt_interrupt_controller);
> >       else
> >           gicv3_its_acpi_init();
> >
> > +    gicv3_its_validate_quirks();
> > +    gicv3_its_enable_quirks();
> > +}
> > +
> > +int gicv3_its_init(void)
> > +{
> > +    struct host_its *hw_its;
> > +    int ret;
> > +
> >       list_for_each_entry(hw_its, &host_its_list, entry)
> >       {
> >           ret =3D gicv3_its_init_single_its(hw_its);
> > @@ -1255,8 +1267,6 @@ int gicv3_its_init(void)
> >               return ret;
> >       }
> >
> > -    gicv3_its_validate_quirks();
> > -
> >       return 0;
> >   }
> >
> > diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> > index bc07f97c16..6e44d23d64 100644
> > --- a/xen/arch/arm/gic-v3.c
> > +++ b/xen/arch/arm/gic-v3.c
> > @@ -1974,6 +1974,13 @@ static int __init gicv3_init(void)
> >
> >       spin_lock(&gicv3.lock);
> >
> > +    if ( gic_dist_supports_lpis() )
> > +        /*
> > +         * Apply ITS quirks before gicv3_dist_init() sets up host LPIs=
,
> > +         * so pending tables use the correct ITS memory attributes.
> > +         */
> > +        gicv3_its_preinit();
> > +
> >       gicv3_dist_init();
> >
> >       if ( gic_dist_supports_lpis() )
> > diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/inclu=
de/asm/gic_v3_its.h
> > index fc5a84892c..e1d7522ea5 100644
> > --- a/xen/arch/arm/include/asm/gic_v3_its.h
> > +++ b/xen/arch/arm/include/asm/gic_v3_its.h
> > @@ -156,6 +156,7 @@ int gicv3_lpi_init_rdist(void __iomem * rdist_base)=
;
> >
> >   /* Initialize the host structures for LPIs and the host ITSes. */
> >   int gicv3_lpi_init_host_lpis(unsigned int host_lpi_bits);
> > +void gicv3_its_preinit(void);
> >   int gicv3_its_init(void);
> >
> >   /* Store the physical address and ID for each redistributor as read f=
rom DT. */
> > @@ -219,6 +220,10 @@ static inline int gicv3_its_deny_access(struct dom=
ain *d)
> >       return 0;
> >   }
> >
> > +static inline void gicv3_its_preinit(void)
> > +{
> > +}
> > +
> >   static inline bool gicv3_its_host_has_its(void)
> >   {
> >       return false;
>


From xen-devel-bounces@lists.xenproject.org Mon May 04 06:46:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 06:46:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299524.1574061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJn4Y-0003al-Bs; Mon, 04 May 2026 06:46:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299524.1574061; Mon, 04 May 2026 06:46:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJn4Y-0003ae-92; Mon, 04 May 2026 06:46:30 +0000
Received: by outflank-mailman (input) for mailman id 1299524;
 Mon, 04 May 2026 06:46:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wJn4W-0003aY-SL
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 06:46:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJn4V-000t0Z-Q5
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 08:46:27 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f840c1-e002-0a2a0a5209dd-0a2a4502b22a-16
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 08:46:27 +0200
Received: from [209.85.208.182] (helo=mail-lj1-f182.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f840c3-af86-0a2a45020019-d155d0b6d848-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 08:46:27 +0200
Received: by mail-lj1-f182.google.com with SMTP id
 38308e7fff4ca-39380e79936so14187561fa.2
 for <xen-devel@lists.xenproject.org>; Sun, 03 May 2026 23:46:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1777877187; cv=none;
        d=google.com; s=arc-20240605;
        b=dB2AtvMAyFGNn4HIdCOXjiHVAnP6l3jeZOD0v5WdyCLvvmiK9+k5/+2ylVKXjoo3hp
         kNHpykHoqxKZH3xVDoE2WTal5B+iU0OOODaUSHRkO6s9rofQattsXJyxaKLlCREXzhOH
         83+7gO2fSKNWvewowJwbS88j/OjA/YCzwEMAUkgt2ctSMMHQXy9IqN78lko363GnoWFg
         hdDFotuaRdtHyVDsjuGTIQfwybxofcFL0/WgyNP9m9vjjF3i3sNUEiz2O3lL/xJKD2sL
         UUCVED9ab0m6XXgs8L0XGr5E+dVLSTqVMX5i8hjoli7WzSIAdr6KcLJjcg8h3vLyU8WI
         GfLA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=hl7+8bj11o7w8ySG0svFpcCKviuJf6j1XMQI0d4D6G0=;
        fh=UkW1QsykQMC33yWXr4pJKF3hWw8k7K8wwFcwAAasZs8=;
        b=anMoty4zWM9KXvdfmv7bhAGNp0RaprBiJJq2I9fdQIf696oucwlr6ift7qfEZuE0Do
         EhoRg07QLk5V9BBVyynZAmc4tgVaZ7639aE54DqEk/KqlHHaoNAeZsOcPCi4yf44KhbC
         7pRNanhwLYW5Vxoux/x26/D2K3jGv3nwSGFvkEsanVJdIOr2ff+sSFRqFCh1bjGWo07p
         NnE/rs5eGF5RrSTDW9HB1AmVD97PVG7egkYKi4vCS/CXuAZ+xr4G4vqxS+H5CPHyiFfP
         jYecirjRFnHvQtMLaoyzuV/lFFUW4rUgd0Z2/R10t5PbqYal2qNVTb7RCHlGSMJCSg8O
         7pbw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777877187; x=1778481987; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hl7+8bj11o7w8ySG0svFpcCKviuJf6j1XMQI0d4D6G0=;
        b=Szwa1rxkj02uOHkPZZv6Txqjjy169YjqoJDH+8JcL+gxhNgVPS6FjSQe7PdoWiGLXx
         i4NLHCcizeg9GGzZDw8FU8f/gkLpbO9pkm/lbWNbc+LQfz22Asxl2GEZ1e5aSwGiI4Le
         be90HVUukqEQsq3BrcrjHE8R+6donnR65poy9xK/eMKdT3KYZiBAGGULZqC5cOx7b6p4
         +gN3PnWfOncgH8dE5vneubCA2m+KF8kzxkIBijEcL2VBNf8RF8S7vsS3HhMiV+ZjCAgJ
         Nkt4eRzVVNbP65jQ/Rrlvx1+zn2PYT35JSkaUTyhzQOcBggK6hDWDtk3oPWB4/rfTp07
         b+bw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777877187; x=1778481987;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=hl7+8bj11o7w8ySG0svFpcCKviuJf6j1XMQI0d4D6G0=;
        b=G9fozv/QI6KdHnFdIAOg7Mbq2OfliAgIi7t4bpaRMucVuTHMqj2MAyOuuurKU7pBws
         7LaBfGfdSnQTlohvKWB07GCWJdWyxzgy/Ap3dgau7nkGCLLck9AuF5B7F7VugrvE96iF
         DxTn2ZjlAl1axFZpwyRKU4iN7DBod/WqE8JbwJ+3/DP5Kh8Tv0zMdnMpn0cWMzaxh4u/
         4+cu028lUNYHt3E5KMuHCdEq0ahIi8E2MxBlB0f65jkqAUtBQHJ6jRaA9DcX2zL47FwD
         elAF9PHTemIwDd9yBrVLTD+c+1NDFvghznKgc/avg/xrcx09EzdBpQgabzGEObSJaQBb
         ClnQ==
X-Forwarded-Encrypted: i=1; AFNElJ+QJU4fCE0YAkP//71MglrqEIDGh9zC99aLZajQWOpcA2KBsgp4cQJghTbnllXOQFZJBt7zd3rWeXs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZwawQFJ5grQFZgMsmh805idQaeFC2C6jyFbb2CsxKIe/mm894
	KsD20J1RX4fLusvQqymf9BWQWlKM92OZVh63z9M9NZwci8qnHrv/tfSxjExPV7/MeVqfYDUfUfN
	fi/wKgNSjaeMk5kJ9u3rZ6LaqmoyFSQI=
X-Gm-Gg: AeBDievvbAzBDSNE8dxq377sTgxB7qIqxEu5FFVxtn1Ml8+s9TQ8uFYpkB0o3A9++gn
	4R5iiffVXaOHW6cFp2ltyTfnHKXGrDndunru57ySv1LxQsCAbg06NVNOWCTc384zrphNr00/rgp
	b+GyVtO8OXew0XmPk9DNe+2a//P7dZw8QWeyN4ub/bfu8mB2dvvHneQeorHHh8NWp+HlTI1wynC
	Hc7idZKmoKOIjFJ1GLR6kyIx0mgILj41LTuyY4DXMYeSu239GXGVyrD/6EgpwzMLeT8VVXighdw
	Q9dYmlhHF2bTfQPWS5oltiPtSzE=
X-Received: by 2002:a05:651c:1588:b0:38e:4810:4f36 with SMTP id
 38308e7fff4ca-393784ab329mr21544591fa.9.1777877186540; Sun, 03 May 2026
 23:46:26 -0700 (PDT)
MIME-Version: 1.0
References: <e1d18d55557ebe232fd62174f186b1cf228e48e5.1774981189.git.mykola_kvach@epam.com>
 <dc5550d7-5a2d-4ca1-85de-5a17c24aeac4@suse.com> <CAGeoDV-ffZsOW+Cu0-oPA1obBOv_1nWU8_PAdaqaoy6=YUHGig@mail.gmail.com>
 <5b16e00e-9a4d-4a18-8a5e-dde10b42a043@suse.com> <CAGeoDV_Cdpa6beFemKaVcCguwmo95x0g0rsRYbS1x5dAUxFPLQ@mail.gmail.com>
 <5fb9b5ee-ee71-49ec-b545-62c8ec27fc15@suse.com> <CAGeoDV-HCKUXZ-CZBASLik=xkR02w-n=5+HVsYGwfDf4zD-3zA@mail.gmail.com>
 <425cdc68-5e25-4e01-b5d9-6469e2d08abb@suse.com> <DDF9A244-22CB-416E-A855-D85FECE0A3C2@arm.com>
 <CAGeoDV_0r8_-dB33G5U81+Q1yncgzgLgMF5Ar_rmVt5h8-rgZQ@mail.gmail.com>
In-Reply-To: <CAGeoDV_0r8_-dB33G5U81+Q1yncgzgLgMF5Ar_rmVt5h8-rgZQ@mail.gmail.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 4 May 2026 09:46:15 +0300
X-Gm-Features: AVHnY4Jw3kqRt7TJitevrk3OlcM1c5n1EjC3wDuFDI48sg8R8MMzH8eUCqfFhW4
Message-ID: <CAGeoDV-FWcrCHnE92s6Y+gpoVqa6vJDzB63Z6uXtL2T6Jfr7xw@mail.gmail.com>
Subject: Ping: Re: [PATCH v3] xen/arm: vpsci: ignore upper 32 bits for SMC32
 PSCI arguments
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: Jan Beulich <jbeulich@suse.com>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-720697/1777877187-83563161-A7876D74/0/0
X-purgate-type: clean
X-purgate-size: 8388

Hi all,

Gentle ping on this patch.

Bertrand has re-confirmed his Reviewed-by, and the previous discussion
looks resolved from my side.

Could this be picked up if there are no remaining concerns?

Best regards,
Mykola

On Thu, Apr 23, 2026 at 8:13=E2=80=AFAM Mykola Kvach <xakep.amatop@gmail.co=
m> wrote:
>
> Hi Bertrand,
>
> On Wed, Apr 15, 2026 at 3:31=E2=80=AFPM Bertrand Marquis
> <Bertrand.Marquis@arm.com> wrote:
> >
> > Hi Jan and Mykola,
> >
> > > On 1 Apr 2026, at 14:24, Jan Beulich <jbeulich@suse.com> wrote:
> > >
> > > On 01.04.2026 11:51, Mykola Kvach wrote:
> > >> On Wed, Apr 1, 2026 at 12:22=E2=80=AFPM Jan Beulich <jbeulich@suse.c=
om> wrote:
> > >>> On 01.04.2026 10:49, Mykola Kvach wrote:
> > >>>> On Wed, Apr 1, 2026 at 11:14=E2=80=AFAM Jan Beulich <jbeulich@suse=
.com> wrote:
> > >>>>> On 01.04.2026 09:13, Mykola Kvach wrote:
> > >>>>>> On Wed, Apr 1, 2026 at 9:29=E2=80=AFAM Jan Beulich <jbeulich@sus=
e.com> wrote:
> > >>>>>>> On 31.03.2026 20:31, Mykola Kvach wrote:
> > >>>>>>>> From: Mykola Kvach <mykola_kvach@epam.com>
> > >>>>>>>>
> > >>>>>>>> SMCCC DEN0028G, section 3.1, states that for AArch64 SMC/HVC c=
alls
> > >>>>>>>> using Wn, only the least significant 32 bits are significant a=
nd the
> > >>>>>>>> upper 32 bits must be ignored by the implementation.
> > >>>>>>>>
> > >>>>>>>> So for SMC32 PSCI calls, Xen must not treat non-zero upper bit=
s in the
> > >>>>>>>> argument registers as an error. Instead, they should be discar=
ded when
> > >>>>>>>> decoding the arguments.
> > >>>>>>>>
> > >>>>>>>> Arm ARM DDI 0487J.a (D1-5406) also notes that the upper 32 bit=
s may be
> > >>>>>>>> implementation defined when entering from AArch32. Xen zeros t=
hem on
> > >>>>>>>> entry, but that guarantee is only relevant for 32-bit domains.
> > >>>>>>>>
> > >>>>>>>> Update PSCI v0.2+ CPU_ON, CPU_SUSPEND, AFFINITY_INFO and SYSTE=
M_SUSPEND
> > >>>>>>>> to read SMC32 arguments via PSCI_ARG32(), while keeping the SM=
C64
> > >>>>>>>> handling unchanged.
> > >>>>>>>>
> > >>>>>>>> No functional change is intended for PSCI 0.1.
> > >>>>>>>>
> > >>>>>>>> Suggested-by: Julien Grall <julien@xen.org>
> > >>>>>>>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > >>>>>>>> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
> > >>>>>>>
> > >>>>>>> I thought I might as well include this in my next commit sweep,=
 but isn't
> > >>>>>>> this R-b being invalidated by ...
> > >>>>>>>
> > >>>>>>>> ---
> > >>>>>>>> v3:
> > >>>>>>>> - use PSCI_ARG_CONV for SYSTEM_SUSPEND
> > >>>>>>>
> > >>>>>>> ... this change. That's ...
> > >>>>>>>
> > >>>>>>>> @@ -422,14 +427,8 @@ bool do_vpsci_0_2_call(struct cpu_user_re=
gs *regs, uint32_t fid)
> > >>>>>>>>     case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> > >>>>>>>>     case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> > >>>>>>>>     {
> > >>>>>>>> -        register_t epoint =3D PSCI_ARG(regs, 1);
> > >>>>>>>> -        register_t cid =3D PSCI_ARG(regs, 2);
> > >>>>>>>> -
> > >>>>>>>> -        if ( fid =3D=3D PSCI_1_0_FN32_SYSTEM_SUSPEND )
> > >>>>>>>> -        {
> > >>>>>>>> -            epoint &=3D GENMASK(31, 0);
> > >>>>>>>> -            cid &=3D GENMASK(31, 0);
> > >>>>>>>> -        }
> > >>>>>>>> +        register_t epoint =3D PSCI_ARG_CONV(regs, 1, is_conv_=
64);
> > >>>>>>>> +        register_t cid =3D PSCI_ARG_CONV(regs, 2, is_conv_64)=
;
> > >>>>>>>>
> > >>>>>>>>         perfc_incr(vpsci_system_suspend);
> > >>>>>>>>         PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoin=
t, cid));
> > >>>>>>>
> > >>>>>>> ... this hunk aiui, which is far from merely cosmetic imo. Whil=
e
> > >>>>>>
> > >>>>>> Nobody said that the change had to be purely cosmetic in order t=
o keep
> > >>>>>> the tag. I understood it differently from the official Xen
> > >>>>>> documentation pages.
> > >>>>>>
> > >>>>>>> behavior looks to remain the same for PSCI_1_0_FN32_SYSTEM_SUSP=
END, it
> > >>>>>>
> > >>>>>> Exactly. If the changes are not substantial, I do not see a reas=
on to
> > >>>>>> drop the tag ...
> > >>>>>>
> > >>>>>>> clearly changes for PSCI_1_0_FN64_SYSTEM_SUSPEND. That may be i=
ntended
> > >>>>>>> and for the better, but the change clearly wasn't reviewed by B=
ertrand,
> > >>>>>>> nor - when offering the R-b - did he ask for this extra change.
> > >>>>>>
> > >>>>>> ... and this is also how I understood the Xen patch submission
> > >>>>>> guidelines [1], which say:
> > >>>>>>
> > >>>>>> "Note that if there are several revisions of a patch, you ought =
to
> > >>>>>> copy tags that have accumulated during the review. For example, =
if
> > >>>>>> person A and person B added a Reviewed-by: tag to v1 of your pat=
ch,
> > >>>>>> include it into v2 of your patch. If you make substantial change=
s
> > >>>>>> after certain tags were already applied, you will want to consid=
er
> > >>>>>> which ones are no longer applicable (and may require re-providin=
g)."
> > >>>>>>
> > >>>>>> So my understanding was that tags should normally be kept across
> > >>>>>> revisions, unless the changes are substantial enough to make the=
m no
> > >>>>>> longer applicable.
> > >>>>>
> > >>>>> Maybe our understanding of "substantial" differs. To me that's an=
ything
> > >>>>> changing functionality. Style adjustments, typo corrections, and =
alike
> > >>>>> generally aren't substantial (albeit even then there may be excep=
tions).
> > >>>>
> > >>>> Thanks for clarifying what you consider substantial.
> > >>>>
> > >>>> Even under that interpretation, I do not see a functionality chang=
e
> > >>>> here. "Refactoring" seems like the more accurate term in this case=
:
> > >>>> the internal form changes, but the intended external behavior does
> > >>>> not.
> > >>>>
> > >>>> It may be that we are using "functional change" in slightly differ=
ent
> > >>>> senses here.
> > >>>>
> > >>>> For v3, the switch to PSCI_ARG_CONV() in SYSTEM_SUSPEND was meant =
to
> > >>>> make this case consistent with the helper-based argument decoding =
used
> > >>>> elsewhere, not to change behavior.
> > >>>>
> > >>>> In particular, I do not see a functional change for
> > >>>> PSCI_1_0_FN64_SYSTEM_SUSPEND: v2 used PSCI_ARG(regs, 1/2), and in =
v3
> > >>>> PSCI_ARG_CONV(regs, 1/2, is_conv_64) should resolve to the same th=
ing
> > >>>> when is_conv_64 is true.
> > >>>
> > >>> Isn't the whole point of the patch to alter behavior when is_conv_6=
4 is
> > >>> false? For that case PSCI_1_0_FN64_SYSTEM_SUSPEND behavior looks to
> > >>> change in v3, when it didn't in v2. Whereas for
> > >>> PSCI_1_0_FN32_SYSTEM_SUSPEND the v3 change indeed only eliminates o=
pen-
> > >>> coding, which one may or may not regard as "substantial".
> > >>
> > >> I think the point I was trying to make is slightly narrower: in this
> > >> code path, is_conv_64 is derived directly from fid via
> > >> smccc_is_conv_64(fid) before the switch (fid).
> > >>
> > >> So for PSCI_1_0_FN64_SYSTEM_SUSPEND, I do not see how
> > >> is_conv_64 =3D=3D false could arise here: if we are in the FN64 case=
,
> > >> the function ID already encodes the 64-bit convention.
> > >>
> > >> Conversely, if is_conv_64 is false here, then this cannot be the
> > >> FN64 case.
> > >
> > > Ah, I see. To figure that out, I would have had to do a proper review=
. I
> > > was after committing only, which ought to be an entirely mechanical s=
tep.
> > >
> > >> On that basis, I do not see a behavioral change for the FN64
> > >> SYSTEM_SUSPEND case in v3.
> > >
> > > I agree (now). I'm still not going to pick up that patch, but rather
> > > leave it to the Arm maintainers. While not as clear cut as it first
> > > seemed to me, I still consider it within the grey area.
> >
> > Sorry for the delay, this felt through in my filters as it was reviewed=
-by already.
> >
> > I am ok with the changes done which make sense (mask is now done
> > directly).
> >
> > Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
>
> Thank you for taking another look.
>
> With your Reviewed-by in place, and since I do not expect any further
> changes from my side, I believe this patch should now be ready for the
> Arm maintainers to pick up.
>
> Best regards,
> Mykola
>
> >
> > Cheers
> > Bertrand
> >
> > >
> > > Jan
> >
> >


From xen-devel-bounces@lists.xenproject.org Mon May 04 06:50:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 06:50:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299532.1574071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJn8R-0005Fo-U8; Mon, 04 May 2026 06:50:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299532.1574071; Mon, 04 May 2026 06:50:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJn8R-0005Fh-RG; Mon, 04 May 2026 06:50:31 +0000
Received: by outflank-mailman (input) for mailman id 1299532;
 Mon, 04 May 2026 06:50:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wJn8Q-0005Fb-5o
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 06:50:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJn8P-0011GQ-Fm
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 08:50:29 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f841b2-2eae-0a2a0a5409dd-0a2a4507d964-14
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 08:50:28 +0200
Received: from [40.93.196.11]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f841b3-229c-0a2a45070019-285dc40b14da-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 08:50:28 +0200
Received: from PH8P221CA0002.NAMP221.PROD.OUTLOOK.COM (2603:10b6:510:2d8::27)
 by MW6PR12MB9018.namprd12.prod.outlook.com (2603:10b6:303:241::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Mon, 4 May
 2026 06:50:22 +0000
Received: from MW1PEPF00016160.namprd21.prod.outlook.com
 (2603:10b6:510:2d8:cafe::85) by PH8P221CA0002.outlook.office365.com
 (2603:10b6:510:2d8::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.25 via Frontend Transport; Mon,
 4 May 2026 06:50:18 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MW1PEPF00016160.mail.protection.outlook.com (10.167.249.91) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.1 via Frontend Transport; Mon, 4 May 2026 06:50:18 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 4 May
 2026 01:50:17 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 4 May
 2026 01:50:17 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 4 May 2026 01:50:16 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rpNlU/vZtwTTFv7XXQQ3Io7TfBTY/yvlnf2/VAwuNca4Y3ffc0ZUWFN3ggD1T3BJVBfeyzjjockCR04heu0HSQftxh9g/xuwydiR4NUSJNSd+hxXTrNphChL5MnWBZ+w097+gen9ndjT63uAqoiCviK4Ob0wXu1dGk0OIQ64761jau5675svekawaLg+psLdmamEeZyluouCCbqXJnfpJ/dk6elWFD4+VcAO7VgxwY637OGUQAjlEIhYh3OJIzWoBgSdfbeR9nglma2uScreLyYMimokGoPwVNscRODbDN66Di104W2OTUi1SDNsEFgWXtnRcWhbCjB910pmmLRm6A==
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=QpqUjFKiK1Aqh68TRvb9+tr1IbfG89bWxVthJX3f/vw=;
 b=ieAAcemGFrGjShai2KBsxcyshf8j6PyjKLbXalhlQ1prr/hgiCvNzZFaW4g1jpOQviPuaO+v8rqW4huk1McCAu0Rj5Yraa+tRLooM+kJBGGPAcBvvWNrvuN/s9TgoWGZJXum7md3HqDPMNBLCoX6t62fgoCzSWjycAHnetyVr5Dwh9m7J89fF67HCtspIo2SIAddpB2CmFc6mM0hWhV/NEvpJg9fpLQ76c77IwS2rjKphknFAgaHCKQCsmL9CvG/+MvaDBIEUIHtdLtPE+fxp2vXFJsi/ZxpBZuJ201nzRFdO3WcnSfDxVH7yjdlBQ/IdSh4EYssTbWaAl1UNsklcQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QpqUjFKiK1Aqh68TRvb9+tr1IbfG89bWxVthJX3f/vw=;
 b=Zt2CVqZDej5B2kEaS7JSH9WTvKYmijBFR0TBxucgBZV+zbShC3ZLDIVwYYF1sLUgqVd9gWQbq2uQk8i5YemqvbBOVdOmoMnDhbRM3IWS7H9DlgCBWx24UUvNyRns2yik1umcjbnKd8FFEDKiz7dc72guySrcoL1xa3n4NLzOaVs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <b0a340a9-a10e-4256-9f38-c804767b0bfd@amd.com>
Date: Mon, 4 May 2026 08:50:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Ping: Re: [PATCH v3] xen/arm: vpsci: ignore upper 32 bits for
 SMC32 PSCI arguments
To: Mykola Kvach <xakep.amatop@gmail.com>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>
CC: Jan Beulich <jbeulich@suse.com>, Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <e1d18d55557ebe232fd62174f186b1cf228e48e5.1774981189.git.mykola_kvach@epam.com>
 <dc5550d7-5a2d-4ca1-85de-5a17c24aeac4@suse.com>
 <CAGeoDV-ffZsOW+Cu0-oPA1obBOv_1nWU8_PAdaqaoy6=YUHGig@mail.gmail.com>
 <5b16e00e-9a4d-4a18-8a5e-dde10b42a043@suse.com>
 <CAGeoDV_Cdpa6beFemKaVcCguwmo95x0g0rsRYbS1x5dAUxFPLQ@mail.gmail.com>
 <5fb9b5ee-ee71-49ec-b545-62c8ec27fc15@suse.com>
 <CAGeoDV-HCKUXZ-CZBASLik=xkR02w-n=5+HVsYGwfDf4zD-3zA@mail.gmail.com>
 <425cdc68-5e25-4e01-b5d9-6469e2d08abb@suse.com>
 <DDF9A244-22CB-416E-A855-D85FECE0A3C2@arm.com>
 <CAGeoDV_0r8_-dB33G5U81+Q1yncgzgLgMF5Ar_rmVt5h8-rgZQ@mail.gmail.com>
 <CAGeoDV-FWcrCHnE92s6Y+gpoVqa6vJDzB63Z6uXtL2T6Jfr7xw@mail.gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <CAGeoDV-FWcrCHnE92s6Y+gpoVqa6vJDzB63Z6uXtL2T6Jfr7xw@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MW1PEPF00016160:EE_|MW6PR12MB9018:EE_
X-MS-Office365-Filtering-Correlation-Id: 958da7ae-83f7-4302-13a3-08dea9a967ae
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|376014|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	fcN8WGEL+cbm85dq80DHl8QVxsvPRZmCjIWkhFLshbZHzr/t1Wa4l5YszEjO8Eh9tcF/fZXrwFifaODVW7gr6tX4EKOtxyxCbXWgZfTor7XhPwrLZT3aCPuTrrjZgSL0ktfkRnSZUjZ84cQPiBz/rnsaDhLwSgbJpDsbcXhYbGAbkOYL2BdfvJUPLyLrlIEnLTnt79SXGb1FMsoCBnwABA/gXAWn54S0hZngy45jexnAGqWHPIx3Eh4MiJtYbhViMvdiZpGoE+1wwT/ZLzHTFlUMz8HM1onYPUuxjcRhGQ8AMTmt4nn6mNXDZ9qBom3GfOyDlshCePe/qiAeWOS640cgWip3lEIZvSpOMS0/+vYx0AYUv4g/7wn0lL46kSpVoL4gvFDnNfw8GpN6t2+lEbgHI2sh8KsA3GDWiDHF9XA34YY+c3+bgj8hqhn8vT2Q0XZkG7op2s0alhCN09akmh0iPkzD3kxV2Sjf3XfuLXj7Kn0Ejd/g8NNux0ELmiDcvSEcbxTibsnS0Tp0KtZHooxVG9TwHwqElVk+Q5FHydPGaAuwna/gmBL5EMwLSUAxCiLOcpVjJ9cQOcQ3HzJ6WhwU21Aa1cFsRh/iFcXgjzhfrd0yeS+FuLYedasjPmhJ2f+BQK1p61O3Lp98r5FoVlDlklKT6CJ9KxgjH9u5NHQTtt9Jl72hupouo2LasSCm0fSXNv55IYPBE7Wihn5mw/cgakIUAhs6r6Mjs+DdQmg=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(376014)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	9YbTnO57pNUKr9fEwJZkFjQ6xtvlPMjdrE+nHHvIT9uedPa358n6B5suqnaVbBV9ea3WrONUGMD4BCbzVJZQ4+PL5UX8hqSZ2nkr9kN/63CSy5fR3xoxwby/h80AKN/q8LT0TX9B/MhRS056NEZtWlV07YVR3VDKVK2OIw0JbvhHSnEMIWhek8hjgmh7eK4ByMvI8DDn7yZTjRdfUr0SoQXuSXYjKl3MQXa6z6fFIQaAV3eFqYa+owkkFqlckUzvzc7XVAZ7vo3rdjXQWKbjuPF0mEiA0SEoLngetjDifB/CTTuayjeA+gwlQ19OzMdqCtNm4t2sO/ExH4eE10cFVDz6RAzf3KPLJtT1rEg/Sx7uLq5OWU8G3o3k9umowP4CVckCX4kXgWO4K4GpkMle7xfGe73FfHbFIco3WSLswJ6GJ85mp+xCHdvmLBzpWQiO
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2026 06:50:18.5858
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 958da7ae-83f7-4302-13a3-08dea9a967ae
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MW1PEPF00016160.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB9018
X-purgate-ID: tlsNG-ef75cf/1777877428-14E57C48-02439D3C/0/0
X-purgate-type: clean
X-purgate-size: 306



On 04-May-26 08:46, Mykola Kvach wrote:
> Hi all,
> 
> Gentle ping on this patch.
> 
> Bertrand has re-confirmed his Reviewed-by, and the previous discussion
> looks resolved from my side.
> 
> Could this be picked up if there are no remaining concerns?
Yes, I'll merge it soon.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 04 07:19:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 07:19:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299539.1574080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJnag-0008OT-4r; Mon, 04 May 2026 07:19:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299539.1574080; Mon, 04 May 2026 07:19:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJnag-0008OM-1W; Mon, 04 May 2026 07:19:42 +0000
Received: by outflank-mailman (input) for mailman id 1299539;
 Mon, 04 May 2026 07:19:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wJnae-0008OG-Vi
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 07:19:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJnad-007kx3-Ri
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 09:19:39 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f84889-2eae-0a2a0a5409dd-0a2a450790f0-10
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 09:19:39 +0200
Received: from [52.101.61.32]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f84889-229c-0a2a45070019-34653d20df22-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 09:19:39 +0200
Received: from DS7P220CA0073.NAMP220.PROD.OUTLOOK.COM (2603:10b6:8:259::7) by
 DS4PR12MB9771.namprd12.prod.outlook.com (2603:10b6:8:29b::10) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9870.25; Mon, 4 May 2026 07:19:34 +0000
Received: from SA2PEPF000015CD.namprd03.prod.outlook.com
 (2603:10b6:8:259:cafe::9d) by DS7P220CA0073.outlook.office365.com
 (2603:10b6:8:259::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.25 via Frontend Transport; Mon,
 4 May 2026 07:19:34 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF000015CD.mail.protection.outlook.com (10.167.241.203) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Mon, 4 May 2026 07:19:34 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Mon, 4 May
 2026 02:19:33 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 4 May
 2026 02:19:33 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 4 May 2026 02:19:32 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZlHZ6pXKNf8pvMuzGgm3PlytlH3Dkk9MGJWqbRasl5o3x28kdlTHaASy6WMsKstSfixjTPB/1bpf8+RCYh9cCpDEJZlhaaQO59OpYld5RuXisbdm+DtGNy4wyJXx9TdidJXoTduC0RTax+uhy0yueCqgVpXuOEfKgZ43OHfHQYrRmr3NaPWDavKXp/K/PmRmlmmgxSXbwebCZYnKO7LG7qpuC/NqJihJ4Jel1tDYqFMp9Ft9N4mUAAYfB51ljuQ80Wn+RmLUNeXN5Vz5gxVkeV7pJA6F3YT18iExiLlx6ndeFPhUk77Z9mHjTsCV4Y5uoXwULzsBc9dRO7HBhLhlNA==
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=EjANja2UfiFdrkJpuQH5eqDAx8TC73u35uA3TFNcvv4=;
 b=o27ghDcHd7VJLdTntG+zvyjD16ik7sugFnnt6hhAtL8NSL1ktueKcKWpZqwCl8TD7Z4LgwywZ8mryO2kFAby83yb18Ykv45g1rM2aiOWSl9fH2x6NmVFaowNEIKl+QbArDZWA0kq4J4gOMmC/7gLHItE0AhaORVKLQAfhLoQZ/82EoFyQ5/3rCZNs3bgpT9Cy2wtd5+PWZ2eCdN41jYrBXQlcKaLLxE0ME4whurjTMeA19DYswednuCkRfqPRSsY26sQzjzI9DQ0LUpozxwCqpDmbcX4Iud2+EMQzD2qTO0BU07qBdx0rqQg9ynJpxJpCQJmjbaDyxrk2XqbLKYEWQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EjANja2UfiFdrkJpuQH5eqDAx8TC73u35uA3TFNcvv4=;
 b=jusnRcPLMh/DgXyDutjBp+GvRdxZYMIVVZnk5WGVTPgt7LDCob0PH54FaPSZhEnE17B+d7rnchawXTWMH4/K7Y0baBaR6UDMpTzaaC9uhEvNod1rMLwFW1oqaybkMJVf+vkjRWeDGYjQhP8JI8uA3PRuPgIweRfGGVZn8qsS+e4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <50371416-8acf-4204-ae83-469602037e60@amd.com>
Date: Mon, 4 May 2026 09:19:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/arm: gic-v2: disable interrupt bypass on CPU
 shutdown
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <18c5532816d852fca073d0552dcb6d497730a6c2.1777377278.git.mykola_kvach@epam.com>
 <59548223-99d7-4a11-ac81-39eee6474562@amd.com>
 <CAGeoDV_mjLPUD2m+hmKm3aEaG=Vc8hjW=YqbRmzBXPMB+OXdLA@mail.gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <CAGeoDV_mjLPUD2m+hmKm3aEaG=Vc8hjW=YqbRmzBXPMB+OXdLA@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CD:EE_|DS4PR12MB9771:EE_
X-MS-Office365-Filtering-Correlation-Id: 59aa99fa-7128-43a9-4aea-08dea9ad7e0d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700016|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	Ju88cTFoZ5Ieik26TG9XGXRr6eF3PWg4qOw6GKvOy6q6OC43Z16u07W3xkL3byKA5h9eD1nW/SVFeZPmmUxc3Xq0T0oU+omtwURfq2GhvA+ms4OLr3cYQeKJQpbpofuvTSWUwgWOED1smDRwRsEzSJdnC5e/vM3FWTv4Jwwkt0145vT5pBWD1FNEr0tLJ5TCyuhyHdfbKcEL85Oz89y6Sef24karmzfdhu77e0BztYgFf4rU/euCdKcOwz/KGlOnpGaC2UQx+7wNbxblVNazTM7vSWOquasvrm1hkkHiN9O5sp9/DfqsblsG/559efpp505bXqSBUGM/Ibn6txgG4qnXoit3/dLmquiwZC1R6l8Z7mnIJHOjukqfiMt/VWXnrA6dsUf/AbQ+9WzglQXGtHnd2oOuu0Sp/J3JFZRIAWc3hifZe1X6Nm3evPGgtaCxOX4uiD2Ifm6EVNm1kCTeb10V4Y9hlc0wR0VGOenOTEwdGWPjkuWRh4DWNSmyA8zagQynCby0wvoo7WzMtSnsjXkkM/9UTaHcbn4JZGgt+q2+130moJPIU/DbSHyN06X2kJgCxIpIEuOJzjYs73PHGFnL3g9QDMIjQr6i31UdWliIH4s2u5wE/YCW6RgyKyI9VcBFI6BRq6YbVYJXRdu7EnLX8tg06nhj5ig1MsDDczrshrMxZIH7uFIdNwo2CsPVYHPMvw35iZZfLyhQBeNhMLEhv8ZkBjCRMNMRFYUydYk=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700016)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	kRyGOyf2rERRCssi91P9KbU0RTlPanteEf9TN3gn/ko6zabSWtuneieBkR24uLPGkNwokqlnQkGasC4DVA8hqQqcgRCLop02DoA3i79A4V4ucd2ICslhEbVOlywGDlY4AErJdJuFKv9wFhJ5MHKiZ9p+W72uk2XrA3gPgajran8aFjKeDoFQgHbc/3jtnM9UAF9myxUDZQljve3yOQ0EPw+6SkZS5xZIunlGzvdB3GhYa4rY57lZrRmjhlekzunYwGwqTdgF7haBdEvLynLl7zbz4mrXMO0vCdgw8iPtA3C7DE5M+sWNAKnNNyTlXWvEDg8TuSSy0YxnC4LALhnBHIn5yHNbt39gTK6/nQCWIn/f+GttkEJKMj1SO++2YYvPjwShsmRP29z4jSKBfrM/H18Wi+y4tXxFZFqQjIaqc/FYeaRbtf9gRMeEXYAfpdTf
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2026 07:19:34.1671
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 59aa99fa-7128-43a9-4aea-08dea9ad7e0d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CD.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9771
X-purgate-ID: tlsNG-ef75cf/1777879179-14856C48-F4DB32A1/0/0
X-purgate-type: clean
X-purgate-size: 6351



On 01-May-26 09:22, Mykola Kvach wrote:
> Hi Michal,
> 
> On Wed, Apr 29, 2026 at 11:20 AM Orzel, Michal <michal.orzel@amd.com> wrote:
>>
>>
>>
>> On 28-Apr-26 13:57, Mykola Kvach wrote:
>>> From: Mykola Kvach <mykola_kvach@epam.com>
>>>
>>> The GICv2 CPU shutdown path currently writes 0 to GICC_CTLR.
>>>
>>> Per IHI0048B.b section 2.3.1, clearing the architected bypass-disable
>>> bits 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, then setting the bypass-disable bits and
>>> clearing the group-enable bits that are architecturally defined for the
>>> current GICC_CTLR view before writing the value back. When Security
>>> Extensions are implemented Xen accesses the Non-secure copy of
>>> GICC_CTLR, where IRQBypDisGrp1 and FIQBypDisGrp1 are at bits [6:5] and
>>> bits [8:7] are reserved.
>>>
>>> Without Security Extensions there is no separate Secure/Non-secure CPU
>>> interface view, so disabling both group-enable bits affects the shared
>>> interface state. This is still appropriate for the CPU shutdown path,
>>> which is expected to stop normal interrupt delivery through the interface
>>> and rely only on the architecturally separate wakeup event signaling.
>>>
>>> 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@epam.com>
>>>
>>> ---
>>> Changes in v2:
>>> - derive the shutdown masks from the active GICC_CTLR layout
>>> - use the Non-secure GICC_CTLR layout when GICD_TYPER.SecurityExtn is set
>>> - stop writing reserved bits [8:7] on Security Extensions systems
>>> ---
>>>  xen/arch/arm/gic-v2.c          | 16 +++++++++++++++-
>>>  xen/arch/arm/include/asm/gic.h | 25 +++++++++++++++++++++++--
>>>  2 files changed, 38 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
>>> index 014f955967..241c1ff5c5 100644
>>> --- a/xen/arch/arm/gic-v2.c
>>> +++ b/xen/arch/arm/gic-v2.c
>>> @@ -408,7 +408,21 @@ static void gicv2_cpu_init(void)
>>>
>>>  static void gicv2_cpu_disable(void)
>>>  {
>>> -    writel_gicc(0x0, GICC_CTLR);
>>> +    uint32_t ctlr = readl_gicc(GICC_CTLR);
>>> +
>>> +    if ( readl_gicd(GICD_TYPER) & GICD_TYPE_SEC )
>>> +    {
>>> +        ctlr |= GICC_NS_CTLR_BYPASS_DISABLE_GRP1_MASK;
>>> +        ctlr &= ~GICC_CTL_ENABLE;
>>> +    }
>>> +    else
>>> +    {
>>> +        ctlr |= GICC_CTLR_BYPASS_DISABLE_GRP0_MASK |
>>> +                GICC_CTLR_BYPASS_DISABLE_GRP1_MASK;
>>> +        ctlr &= ~(GICC_CTL_ENABLE | GICC_CTL_ENABLE_GRP1);
>>> +    }
>> I don't understand why you want to set both G0 and G1,
>> Bits 5-6 in the NS view control Group 1, while the same bits in the
>> Secure/single-security-state view control Group 0. So in the latter case you
>> don't need to set G1. Without security extensions all interrupts are G0 and with
>> security extensions (NS access) all interrupts are G1. The spec guarantees the
>> functional mapping.
> 
> I agree that this is not about Xen using both interrupt groups during
> normal operation.
> 
> There are two separate points here.
> 
> For the group-enable bits, Xen currently only enables bit 0 in
> gicv2_cpu_init(). So, in today's code, EnableGrp1 is expected to be clear
> already. However, the old shutdown path wrote 0 to GICC_CTLR, which also
> cleared every group-enable bit visible in the current view. Since this
> patch changes the shutdown path from a plain zero write to a
> read/modify/write, I wanted to preserve that part of the old shutdown
> semantics and avoid leaving any normal interrupt delivery enabled in the
> common GICC_CTLR view.
> 
> For the bypass-disable bits, the reason for setting both groups in the
> single-security-state/common view is the GICv2 bypass logic, not normal
> interrupt delivery. Once the group-enable bits are clear, the CPU
> interface is no longer driving the physical IRQ/FIQ outputs through
> normal GIC delivery. At that point, the bypass-disable bits decide
> whether those outputs are deasserted or driven by the legacy inputs.
> 
> For example, with EnableGrp1 == 0, EnableGrp0 == 0 and FIQEn == 0,
> Table 2-2 requires IRQBypDisGrp1 to be set for the IRQ output to be
> deasserted. Similarly, Table 2-3 requires both FIQBypDisGrp0 and
> FIQBypDisGrp1 to be set for the FIQ output to be deasserted. This is why
> the common-view case disables the bypass paths for both groups.
> 
> This is also not meant to make FIQ a supported delivery mode for Xen. It
> is the opposite: when the CPU interface is disabled, the final state
> should not allow the physical FIQ output to be driven by the legacy
> bypass input. Arm32 has some fallback plumbing for FIQ exceptions, but Xen
> does not configure FIQ as its normal GICv2 interrupt delivery mode.
> 
> So the intent is:
> 
> * with Security Extensions, touch only the Non-secure view bits visible
>   to Xen;
> * without Security Extensions, preserve the old "no normal delivery"
>   shutdown behaviour, while changing the bypass-disable bits so that
>   the physical outputs are deasserted rather than falling back to
>   legacy bypass.
> 
> If you prefer, I can also make v3 more conservative and only clear the
> group-enable bit that Xen currently sets in gicv2_cpu_init(), i.e.
> EnableGrp0 in the common view / EnableGrp1 in the Non-secure view. The
> bypass-disable bits would still be set for all bypass paths visible in
> the current GICC_CTLR view, because that part is about the physical
> IRQ/FIQ outputs after normal delivery has been disabled, not about which
> interrupt group Xen normally uses.
The bypass argument is valid according to the tables. However, clearing G1 is
unnecessary, so it should be dropped. I can do that on commit if you agree. With
that:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 04 08:08:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 08:08:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299554.1574089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJoLw-0006lQ-Qc; Mon, 04 May 2026 08:08:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299554.1574089; Mon, 04 May 2026 08:08:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJoLw-0006lJ-NI; Mon, 04 May 2026 08:08:32 +0000
Received: by outflank-mailman (input) for mailman id 1299554;
 Mon, 04 May 2026 08:08:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wJoLu-0006lD-Vo
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 08:08:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJoLt-007wPo-Rx
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 10:08:29 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f853f6-e002-0a2a0a5209dd-0a2a4502e9e0-20
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 10:08:29 +0200
Received: from [209.85.167.47] (helo=mail-lf1-f47.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f853fd-af86-0a2a45020019-d155a72fec8d-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 10:08:29 +0200
Received: by mail-lf1-f47.google.com with SMTP id
 2adb3069b0e04-5a3d1561e38so3275015e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 01:08:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1777882109; cv=none;
        d=google.com; s=arc-20240605;
        b=iuInSDAqgn1jKRkJ6/ilgsTjm6tokvsvfuRPcF+TECg/Oup7XZ1TP2ozaFnNaikSnd
         vvGOvWjaLi8dq64O/m/DrXcCwzQiwWJcRYf0YjYuogUhi8veeOiwKtYglELXwDwf/LBR
         sVnkFfi7YMlqsojSzPSHrGAQk8cfCkpqG8kxH8nzgVhsam00GtekvpG38bNNwOViogz9
         1xl6xVbJmRd0jPCXCLC/CHnXZhcYXyL9EBPmOXHFZxvCuZxzZRq5OuNcWcP42R/lxuO2
         oOfPdEmqtKruDgY3AZjQr3BGC4Fcp/R8IgAVP/WXHP5HMZZnWCi1zyAZQDbOWgjYSANc
         oudg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=5qQDStmkrzvq8XjTGSV1q9ECeJq2d4zPRhDt/U4aOC0=;
        fh=jkSoJREO5h14KpMBT/ljS/ekmr5J1UsD5sXqYKYrHT4=;
        b=cIo+K5NVc+IITDGpVpDLsBuWnMi0noQlUOBqrSgVMCBaRZmLbG6vjGyNCqH3DaLQb0
         7AzUFtsGBmnsCHGLfNKnjmkBpeD2AosrzlpyuUyb/rHDQjcw/8eOS0kPppJ/k2gUPLHN
         ItsP13g0CQJP84VUWZ1exZ8WDigYtDyqfZWmj/VzgL5VfM1ONbvBOJIU5zDQ+ZCrENfg
         CyMsD9nkh4wHmbWaritdDvsOBX15oqQrNMoV5qzBt8vj/y3ee0FCBbL20hTh1az7r5jM
         AJ9QzumH1TGskmXji7H+ZLVMjIBMXctlbQEMEH3hfh7gwt+dPYkAn0hplfVAllupL21z
         3R7g==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777882109; x=1778486909; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5qQDStmkrzvq8XjTGSV1q9ECeJq2d4zPRhDt/U4aOC0=;
        b=VBH+yeaJHFdWKFeAjc2QfUmVt7oI8VgFa1VzaY6cfzEAXHklnPiCVkdjZ9V7KOY1Az
         JiI2EP0IEnbfWiyKl+Siwf+K9oZ+2/uGRa2J5IqsM80PsWt4iuuG5/cmuGHCaJwIJwBO
         hJ5yyXCdvYmreZoQxnQVitLV1qaGaI9ugreQpMR2mKBJalOsP2qgl5BTNtLeD1FKGfau
         /SBytfahpd2Q47dfLsePqQQ2MKGUqiz95ejjkuYYi7Pf5+4rnBIvd8RSm4kOYtP58BE4
         LUk0xnc0Hp93+iiThf1Gavz1JxFxQuOwFGy6ZY7+JmkwfuxateFXXE2Uj+0qt0kcjYe+
         2NsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777882109; x=1778486909;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=5qQDStmkrzvq8XjTGSV1q9ECeJq2d4zPRhDt/U4aOC0=;
        b=hp1mGiWe5TrnPgeBhNqUKHdxVNtrYCSrCy5DHBSuw2kV0RgL66SsN2Du28zJHk2Mog
         IKZtloQLxCG8ZpKoZ56Xa7WmP6LhzHLwWjAAN2a4OUjGLiZnRkjZQmmTaAIvR+jKc6+T
         Ku2Dhv41YUZY5k6SrChW9X9UhMiXhHI0QLE/SF4k0HstQXo0GF4b8HcP9faxNINCXbNs
         ig4DuT3L0E4wrSzVMvRNDbhS4I8eRkaLS8hnAk4aW+0LrvW4R3I/UDCdTUWuu7wGlpkC
         jcLSGqyD1VTAj+oy0xg1Z1X89b3g8qj+QYozy4/SQyo+AHVSs6trb/+GGgadK8xnNyjz
         oaBg==
X-Forwarded-Encrypted: i=1; AFNElJ/ohvC4FLm+jQon7QKR864BDu4MQOeirnLISspaxbIk+bIO7gYbocPEI9ZyOAIqkY0Fw+DvOYklSJc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzGa0wnbx+xu7qBqACpU7XN4PS6gmGQJtySjUKADmmIK6FuoP3o
	83b3JwT/ok5hWmEQVWhQMxIthzq0q0slTWcnwsWCDN+bNgvuUJ5L/tBBSs1G9kMToPwu5LHSByr
	+rU/757405J1P0vB6hGjRP3msEUtjw9U=
X-Gm-Gg: AeBDiet50D1c+1eYSUA8oCtXFYrmOo2z/r8O0/l7vz/nXYwPr0TXi8f/wjWRVcZEKWZ
	TSZ5Qp5IJdS/EEwyzbmLX5SS3awyWQHendvz/fTOBbtaQLzaSjO6uJCDckVwbUz7N0yYXsfibHC
	KoA5JTCAWrkDUynYG6MH/etA+wQlBx/TgFJD/DAmr2CftLxFSvgNTJzttCNmAtSUo8FW57aIsOd
	40oSve/I9qbdzZQtSDwRNjTZ8SkxN8OQAETKdWakXAyLkuJCf4RBoqsiufROSgCX/4qKsmxwLlg
	yhTZDldYkgg1iB1W
X-Received: by 2002:a05:6512:b86:b0:5a8:6d5d:ca7f with SMTP id
 2adb3069b0e04-5a86d5dcb02mr1606805e87.29.1777882108766; Mon, 04 May 2026
 01:08:28 -0700 (PDT)
MIME-Version: 1.0
References: <e1d18d55557ebe232fd62174f186b1cf228e48e5.1774981189.git.mykola_kvach@epam.com>
 <dc5550d7-5a2d-4ca1-85de-5a17c24aeac4@suse.com> <CAGeoDV-ffZsOW+Cu0-oPA1obBOv_1nWU8_PAdaqaoy6=YUHGig@mail.gmail.com>
 <5b16e00e-9a4d-4a18-8a5e-dde10b42a043@suse.com> <CAGeoDV_Cdpa6beFemKaVcCguwmo95x0g0rsRYbS1x5dAUxFPLQ@mail.gmail.com>
 <5fb9b5ee-ee71-49ec-b545-62c8ec27fc15@suse.com> <CAGeoDV-HCKUXZ-CZBASLik=xkR02w-n=5+HVsYGwfDf4zD-3zA@mail.gmail.com>
 <425cdc68-5e25-4e01-b5d9-6469e2d08abb@suse.com> <DDF9A244-22CB-416E-A855-D85FECE0A3C2@arm.com>
 <CAGeoDV_0r8_-dB33G5U81+Q1yncgzgLgMF5Ar_rmVt5h8-rgZQ@mail.gmail.com>
 <CAGeoDV-FWcrCHnE92s6Y+gpoVqa6vJDzB63Z6uXtL2T6Jfr7xw@mail.gmail.com> <b0a340a9-a10e-4256-9f38-c804767b0bfd@amd.com>
In-Reply-To: <b0a340a9-a10e-4256-9f38-c804767b0bfd@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 4 May 2026 11:08:16 +0300
X-Gm-Features: AVHnY4LhPAhpglB-N2_E_vD6t5WrzzH982qcwDTAGw6WmvSp3NvoeRqEQ-55FkM
Message-ID: <CAGeoDV-1CzoSHdXNVqVGSEEoGe2OR3tpJTfjELUvDF0upnCB1A@mail.gmail.com>
Subject: Re: Ping: Re: [PATCH v3] xen/arm: vpsci: ignore upper 32 bits for
 SMC32 PSCI arguments
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: Bertrand Marquis <Bertrand.Marquis@arm.com>, Jan Beulich <jbeulich@suse.com>, 
	Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-720697/1777882109-890CF161-736875D4/0/0
X-purgate-type: clean
X-purgate-size: 507

Hi Michal,

On Mon, May 4, 2026 at 9:50=E2=80=AFAM Orzel, Michal <michal.orzel@amd.com>=
 wrote:
>
>
>
> On 04-May-26 08:46, Mykola Kvach wrote:
> > Hi all,
> >
> > Gentle ping on this patch.
> >
> > Bertrand has re-confirmed his Reviewed-by, and the previous discussion
> > looks resolved from my side.
> >
> > Could this be picked up if there are no remaining concerns?
> Yes, I'll merge it soon.

Thank you for the update. Much appreciated.

Best regards,
Mykola

>
> ~Michal
>


From xen-devel-bounces@lists.xenproject.org Mon May 04 08:10:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 08:10:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299563.1574098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJoNi-0008GI-BA; Mon, 04 May 2026 08:10:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299563.1574098; Mon, 04 May 2026 08:10:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJoNi-0008GB-7Y; Mon, 04 May 2026 08:10:22 +0000
Received: by outflank-mailman (input) for mailman id 1299563;
 Mon, 04 May 2026 08:10:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wJoNh-0008G2-5q
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 08:10:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJoNg-007wsD-HL
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 10:10:20 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f8546c-5cb7-0a2a0a5109dd-0a2a450894ce-2
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 10:10:20 +0200
Received: from [209.85.167.48] (helo=mail-lf1-f48.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f8546c-63b5-0a2a45080019-d155a730b9d5-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 10:10:20 +0200
Received: by mail-lf1-f48.google.com with SMTP id
 2adb3069b0e04-5a87782588cso194529e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 01:10:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1777882220; cv=none;
        d=google.com; s=arc-20240605;
        b=d8ctxHhJZiANAcPK/4jYWehqxWggDWJKfFCrFqNj8iHmdn21lyNfBdWOLFg8kzzSmT
         Ang/MCRZCYYwQbPCRuk/+kvIUET6woQVNNOJEjgB2NqJUnrBuizA1IZIK+DwL1A2aseQ
         DLb7zHaPRPUlxCoq8WL/6MY9GSNXwmyKu8t+mO0zRh+odPIah32OFeE0/e+R5HTwHAEq
         TsyCCvsCo0uXXEh6XA+omnhfNaozvfHGAOSb+W53OZlEKglNuvpFabEPsY1Ey11Fyws3
         yasGTAr5nY38bNMgbR1rJKfEvFjZMUhZFNlLdGFwENv1w6HxQvqnfPdIPbfjEFmBjSqT
         Qzsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=zqMuJTjbYjXKX8muAXj/d6rJHV8iD5Yw7Jd6w7gmWcA=;
        fh=zL8KVAj6rSaYbk/102rEWeOa69wm5cw+i9nXMzeM8z8=;
        b=PvAX6k4wUiAGuDU5p708vqOy3vzFCc2pxyC8thmJY74736D31VpgLFCRSAV5JNwuCw
         r/H2cHOUNQ/NMY+EosJhBzNooTG64anyxnMT/4gX0JBKxtaKGqMs2mp2LoQC1mgzN5X6
         ZrjAne7MiwiSd/tJbKrGfj5IZjU5gvkfLIkurvlLlcGb0WeLnmL2bgKvjPtEhdH3k4kI
         VbfWOA76fltHYtrIAQPeYrSfL2uqiUGkXhOK5pGDL5uubRA8NuhCogARWF6daNKTLntJ
         CptG/KsdeL7roZTZJT5TeiEiaRavNLkM0ch3iPuCRT4sGyAq+jPXEHBbkHGcn996tDFZ
         gIhw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777882220; x=1778487020; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zqMuJTjbYjXKX8muAXj/d6rJHV8iD5Yw7Jd6w7gmWcA=;
        b=FZGJ6spd3KvmTJqSWfCSozVxhRD/5gh43Bd+emHxcPtNY3uZ7ddp1hX+lsG4tyZ4GX
         RoFXj//VqJke96sN0f+ikSvrNRIhXl2ocGncZNJ0KOeydlBUqzXxXy7cHFJSyvF84It2
         SKjOJi9lPdrQ9Q5fQveEDqV+H+p6SfjINJX4NS2Ko4vISvtg3VH1N1JLBPgbyoQjoSwX
         LrZFXlHaqwUOiZ+rjnI3OHBe3UcZ3KcpLC3v4cZhBW1GME82jgygYr56cQs915Noc03+
         +gDGGqAK3MJv16AZHA8bq21oXGXvgpIBiWPnfA+369YybZY+kc7N1h3G0ERLqlV4FMFZ
         fCpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777882220; x=1778487020;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=zqMuJTjbYjXKX8muAXj/d6rJHV8iD5Yw7Jd6w7gmWcA=;
        b=RRELlScwImHzOi1ik2vZkplt/jijGJgAAV6cex19Lx5IwPO9YZ9xTEUzMBjx3CsIvw
         +9PxCWh2Alhhd5ZnkuA3txvWyXl+FpAP/Va7yrcEXax1KtHuw1nJ0KpiyrekOKqXmHOr
         hIsQgHOFXP44t2peWB2kqrntWKaiAoWZEmUiehyzW+bmEdPrLHjiIQPFHdOcMt86nmXX
         kVi8qiUrmKXaTcLSJ4FCV0zxmfUL0fOXhdEIDHDmjSA0def4ZcyXp1WjSWBVLaOBkAa+
         hKkd8smTCXWqHSMlcvJ/Br49Q03HtusTGFi4358a4yWtg2LD8vZX75S/2Ln9bd5LEPbi
         Jouw==
X-Gm-Message-State: AOJu0YyAxWpx2y4h+tpcMywqzH7pkeprp8qT0l0zgU3emOWlcC6aZHnT
	N8bSp9XvP7w7h5Bmjb75fHqhjZgEehEuR8Tv2c5qxYF+avL1b4nqQU+ODyY9nGgSvutqCTtASek
	afHVUay6ALaQPV9yOEKPZ3t/BTMT9fVE=
X-Gm-Gg: AeBDieuXZQQP9WdUkyyXNfKc3ocLfjOrvz0spV83aQPa371pWjc7Lub4MpIiMtnj2uQ
	L4lTxt2kLcJvVp5TRSbSK4tGgAlOeW90/2+rYjJDZdl7mQ8Mw5NypM0WS2Ca3z9Tid+aPTFPc1g
	wKU7v0LkxG0HF7soVY9e8Ruke8ZaCaUB6o7ogAYtP9xFIjx18pjF9TfnOrZKTTGh1LNXkESsQDv
	E+6ubyNX63WvgivchZqMakR+s1wvABj1Ldx254rbU8N/mRScB3+tcSL4jZuNDBPSnnM96rAMYFJ
	457cH7Z6+sN6iebf
X-Received: by 2002:a05:6512:2253:b0:5a4:17a6:9780 with SMTP id
 2adb3069b0e04-5a862fbcd27mr2405062e87.14.1777882219269; Mon, 04 May 2026
 01:10:19 -0700 (PDT)
MIME-Version: 1.0
References: <18c5532816d852fca073d0552dcb6d497730a6c2.1777377278.git.mykola_kvach@epam.com>
 <59548223-99d7-4a11-ac81-39eee6474562@amd.com> <CAGeoDV_mjLPUD2m+hmKm3aEaG=Vc8hjW=YqbRmzBXPMB+OXdLA@mail.gmail.com>
 <50371416-8acf-4204-ae83-469602037e60@amd.com>
In-Reply-To: <50371416-8acf-4204-ae83-469602037e60@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 4 May 2026 11:10:08 +0300
X-Gm-Features: AVHnY4Lvp0A6YNCsGb-A6_HyiVqwRT8cWgHeDvY8l6NPOxpz4IfcSc588mOX25k
Message-ID: <CAGeoDV-_qoap77nj=bwuzibEr_rA=_-LK=EgyWrT3hCUD82Ktg@mail.gmail.com>
Subject: Re: [PATCH v2] xen/arm: gic-v2: disable interrupt bypass on CPU shutdown
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c1860d/1777882220-39161DB1-4FD0F04A/0/0
X-purgate-type: clean
X-purgate-size: 6971

On Mon, May 4, 2026 at 10:19=E2=80=AFAM Orzel, Michal <michal.orzel@amd.com=
> wrote:
>
>
>
> On 01-May-26 09:22, Mykola Kvach wrote:
> > Hi Michal,
> >
> > On Wed, Apr 29, 2026 at 11:20=E2=80=AFAM Orzel, Michal <michal.orzel@am=
d.com> wrote:
> >>
> >>
> >>
> >> On 28-Apr-26 13:57, Mykola Kvach wrote:
> >>> From: Mykola Kvach <mykola_kvach@epam.com>
> >>>
> >>> The GICv2 CPU shutdown path currently writes 0 to GICC_CTLR.
> >>>
> >>> Per IHI0048B.b section 2.3.1, clearing the architected bypass-disable
> >>> bits selects bypass rather than deasserted interrupt outputs when the
> >>> CPU interface stops driving them. Tables 2-2 and 2-3 show that a zero=
ed
> >>> GICC_CTLR can fall back to the legacy IRQ/FIQ inputs instead of fully
> >>> disabling the interface.
> >>>
> >>> Fix this by reading GICC_CTLR, then setting the bypass-disable bits a=
nd
> >>> clearing the group-enable bits that are architecturally defined for t=
he
> >>> current GICC_CTLR view before writing the value back. When Security
> >>> Extensions are implemented Xen accesses the Non-secure copy of
> >>> GICC_CTLR, where IRQBypDisGrp1 and FIQBypDisGrp1 are at bits [6:5] an=
d
> >>> bits [8:7] are reserved.
> >>>
> >>> Without Security Extensions there is no separate Secure/Non-secure CP=
U
> >>> interface view, so disabling both group-enable bits affects the share=
d
> >>> interface state. This is still appropriate for the CPU shutdown path,
> >>> which is expected to stop normal interrupt delivery through the inter=
face
> >>> and rely only on the architecturally separate wakeup event signaling.
> >>>
> >>> 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@epam.com>
> >>>
> >>> ---
> >>> Changes in v2:
> >>> - derive the shutdown masks from the active GICC_CTLR layout
> >>> - use the Non-secure GICC_CTLR layout when GICD_TYPER.SecurityExtn is=
 set
> >>> - stop writing reserved bits [8:7] on Security Extensions systems
> >>> ---
> >>>  xen/arch/arm/gic-v2.c          | 16 +++++++++++++++-
> >>>  xen/arch/arm/include/asm/gic.h | 25 +++++++++++++++++++++++--
> >>>  2 files changed, 38 insertions(+), 3 deletions(-)
> >>>
> >>> diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
> >>> index 014f955967..241c1ff5c5 100644
> >>> --- a/xen/arch/arm/gic-v2.c
> >>> +++ b/xen/arch/arm/gic-v2.c
> >>> @@ -408,7 +408,21 @@ static void gicv2_cpu_init(void)
> >>>
> >>>  static void gicv2_cpu_disable(void)
> >>>  {
> >>> -    writel_gicc(0x0, GICC_CTLR);
> >>> +    uint32_t ctlr =3D readl_gicc(GICC_CTLR);
> >>> +
> >>> +    if ( readl_gicd(GICD_TYPER) & GICD_TYPE_SEC )
> >>> +    {
> >>> +        ctlr |=3D GICC_NS_CTLR_BYPASS_DISABLE_GRP1_MASK;
> >>> +        ctlr &=3D ~GICC_CTL_ENABLE;
> >>> +    }
> >>> +    else
> >>> +    {
> >>> +        ctlr |=3D GICC_CTLR_BYPASS_DISABLE_GRP0_MASK |
> >>> +                GICC_CTLR_BYPASS_DISABLE_GRP1_MASK;
> >>> +        ctlr &=3D ~(GICC_CTL_ENABLE | GICC_CTL_ENABLE_GRP1);
> >>> +    }
> >> I don't understand why you want to set both G0 and G1,
> >> Bits 5-6 in the NS view control Group 1, while the same bits in the
> >> Secure/single-security-state view control Group 0. So in the latter ca=
se you
> >> don't need to set G1. Without security extensions all interrupts are G=
0 and with
> >> security extensions (NS access) all interrupts are G1. The spec guaran=
tees the
> >> functional mapping.
> >
> > I agree that this is not about Xen using both interrupt groups during
> > normal operation.
> >
> > There are two separate points here.
> >
> > For the group-enable bits, Xen currently only enables bit 0 in
> > gicv2_cpu_init(). So, in today's code, EnableGrp1 is expected to be cle=
ar
> > already. However, the old shutdown path wrote 0 to GICC_CTLR, which als=
o
> > cleared every group-enable bit visible in the current view. Since this
> > patch changes the shutdown path from a plain zero write to a
> > read/modify/write, I wanted to preserve that part of the old shutdown
> > semantics and avoid leaving any normal interrupt delivery enabled in th=
e
> > common GICC_CTLR view.
> >
> > For the bypass-disable bits, the reason for setting both groups in the
> > single-security-state/common view is the GICv2 bypass logic, not normal
> > interrupt delivery. Once the group-enable bits are clear, the CPU
> > interface is no longer driving the physical IRQ/FIQ outputs through
> > normal GIC delivery. At that point, the bypass-disable bits decide
> > whether those outputs are deasserted or driven by the legacy inputs.
> >
> > For example, with EnableGrp1 =3D=3D 0, EnableGrp0 =3D=3D 0 and FIQEn =
=3D=3D 0,
> > Table 2-2 requires IRQBypDisGrp1 to be set for the IRQ output to be
> > deasserted. Similarly, Table 2-3 requires both FIQBypDisGrp0 and
> > FIQBypDisGrp1 to be set for the FIQ output to be deasserted. This is wh=
y
> > the common-view case disables the bypass paths for both groups.
> >
> > This is also not meant to make FIQ a supported delivery mode for Xen. I=
t
> > is the opposite: when the CPU interface is disabled, the final state
> > should not allow the physical FIQ output to be driven by the legacy
> > bypass input. Arm32 has some fallback plumbing for FIQ exceptions, but =
Xen
> > does not configure FIQ as its normal GICv2 interrupt delivery mode.
> >
> > So the intent is:
> >
> > * with Security Extensions, touch only the Non-secure view bits visible
> >   to Xen;
> > * without Security Extensions, preserve the old "no normal delivery"
> >   shutdown behaviour, while changing the bypass-disable bits so that
> >   the physical outputs are deasserted rather than falling back to
> >   legacy bypass.
> >
> > If you prefer, I can also make v3 more conservative and only clear the
> > group-enable bit that Xen currently sets in gicv2_cpu_init(), i.e.
> > EnableGrp0 in the common view / EnableGrp1 in the Non-secure view. The
> > bypass-disable bits would still be set for all bypass paths visible in
> > the current GICC_CTLR view, because that part is about the physical
> > IRQ/FIQ outputs after normal delivery has been disabled, not about whic=
h
> > interrupt group Xen normally uses.
> The bypass argument is valid according to the tables. However, clearing G=
1 is
> unnecessary, so it should be dropped. I can do that on commit if you agre=
e. With
> that:
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>

Yes, I agree. Dropping the unnecessary clearing of G1 on commit is fine wit=
h me.

Thank you for the review and for taking care of the commit.

Best regards,
Mykola

>
> ~Michal
>


From xen-devel-bounces@lists.xenproject.org Mon May 04 08:21:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 08:21:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299573.1574106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJoY9-0001XI-4I; Mon, 04 May 2026 08:21:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299573.1574106; Mon, 04 May 2026 08:21:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJoY9-0001XB-1W; Mon, 04 May 2026 08:21:09 +0000
Received: by outflank-mailman (input) for mailman id 1299573;
 Mon, 04 May 2026 08:21:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJoY8-0001X5-B9
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 08:21:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJoY7-001Oxm-2T
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 10:21:07 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f856e7-bab6-0a2a0a5309dd-0a2a4503e41c-44
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 10:21:06 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f856f2-672d-0a2a45030019-d155802ba43c-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 10:21:06 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-4891f625344so39270975e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 01:21:06 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a822be902sm335881215e9.6.2026.05.04.01.21.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 01:21:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777882866; x=1778487666; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eHFVDyNDq1ujDxrMsv0Lv9h3MSVMOHBLP1wcBWvdh0U=;
        b=WEWShAUom1Rqee6X3llbBTzTGuCSdpAe0wVn4crzQW3JfkwxCAQ0a08FWVwlzhXd7o
         4F5eEimMvhMsDLAJUksu6NqBmYKWXeQGm7eJj0dUfL8LA46uYqOaK6CMS/xmWEN/ILh6
         9wYhsIBQ1BKASeW1SJmxaHwMjwJahT6AE6tEceFFVh/3w2cX+WQ4ga7OMToNbXdF8/Hy
         EVcmxRY3esrWdr1R/p8RPoJBWoXlsK4897Cyou12dNphWOqXZHGKUPPFQo2XFmq8KiLL
         DaG4Vu0zo2qAUt7D1deW6+BlUnH6L4b1/Yf1fyIFTlHq1pDRKGXLwhUqkzRerdO6tcnc
         KN+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777882866; x=1778487666;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eHFVDyNDq1ujDxrMsv0Lv9h3MSVMOHBLP1wcBWvdh0U=;
        b=SiW0brAvigcqXnTm6m+SiqDDrfXcNqZZafo5bmcs8W7913BvzDx4n0jkGYoixKXlGo
         YwTGBnJsHUwk06oEXH74Dq36kzYDddirNyC+jSnhM6hiFJmEiciJvtdJSBhPvfbCGlg0
         EhTQPulERosCqZabN+4StuujrY511a2ie37RWGtNCFvhedWqgivO1fKxOiNBWZcsgfVo
         6rruJx4XYtrHtuC6O+NYknm2OsSnasvTLg2A+V+oLTbyZWeM9QycnwwuaZnFID6WNK8P
         TULsqAKRTLa3C8JL6CJKrwXAOGmfZV1AkAMg3Q3CmJ6JfVCxEIl4j4JAF7HDcXAZxPIm
         fuKQ==
X-Gm-Message-State: AOJu0YzMMSyM68ALCdfWv1tfj2CwOpLmc+/YRNizad1+aMPUQlZhBYaq
	NQ2QiwWd+UxBWpR1t1UQjWOeCOsxuuX19PsJpPP0SBkchC59wRL56v5+C66dt1P6iowz24MkowX
	JtPs=
X-Gm-Gg: AeBDietrEk8pAeZcxUUjqku13mmx/D5d2MOkrS5gfQ2NZvHsiiV5bGoyRCp3t3z48tp
	TPt+7a4bA7XvyuCwvpqb6m062I8vT813I1tnCvD6SLK3Qo6NNKG/1QkgLXTyymY7MF6ua1F6opN
	P/3FUcQ9tKs21ycNcgrj39z+bNrXQKG1xAkkfSOMpZmOHmDEmjWuiln3DCJmusRQnf/xAARFgU6
	CjjmfF8Ip6feLZon44nSuFaR1iaRmEz12jtOnjPpBHCllRotdbEQHxBuoO9ZeSP1VkFCrg/uomj
	LwYbyJaeawqjJh0xE7YfBVVsQeZtvUK48ECPcQxrfRiSTc4PWTbtxcvRbcGuekIlM3vPdN9wSCH
	Mh8MDcH+dbAmXNpVYvZSa/mkqHBQmb8M5dBaKwl27hqXOCY9rdOlVvBmRuxKjLUc1Ld+DDbJvAG
	24GFYJQqA3Cwbgp4d1+HLR5EzG10F23YNOn+EpGYYT7FSm/u1bB/C9ULuYUv0159JkJbizNQD1p
	KypevTmb1YmKoVb/kpMYImo8Q==
X-Received: by 2002:a05:600c:2a92:b0:48d:50a:6ef4 with SMTP id 5b1f17b1804b1-48d050a6f3amr45007275e9.11.1777882866191;
        Mon, 04 May 2026 01:21:06 -0700 (PDT)
Message-ID: <f733f3a6-dc39-4b8f-8c7c-f0ed235050f0@suse.com>
Date: Mon, 4 May 2026 10:21:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/shadow: unlock P2M slightly earlier in
 shadow_track_dirty_vram()
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <5149ab32-7d03-4ae5-9af0-e62dd5836329@suse.com>
 <c6aa40de-11b2-4725-b18c-8a982e43f0f0@suse.com>
 <ae8im__1Wrn420MH@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ae8im__1Wrn420MH@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1777882866-2A965938-2BE86944/0/0
X-purgate-type: clean
X-purgate-size: 1501

On 27.04.2026 10:47, Roger Pau Monné wrote:
> On Tue, Feb 03, 2026 at 05:49:35PM +0100, Jan Beulich wrote:
>> There's no need to call vfree() with the lock still held.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

>> ---
>> In fact for the purposes of the function the P2M lock could really be
>> obtained merely in read mode, and it could be dropped immediately in both
>> the main "if()" and its "else if()". If only there wasn't the error
>> handling after copy_to_guest(): Dropping the paging lock ahead of that
>> call, we rely solely on the P2M lock to also guard the changing of
>> d->arch.hvm.dirty_vram.sh and what it points to. Question is why dropping
>> the paging lock (but continuing to hold the P2M lock) is necessary there
>> in the first place.
> 
> I wouldn't spend a lot of time trying to optimize this, we already
> know HVM shadow is ATM not very optimized, and generally recommend
> HAP.
> 
> If we could turn the p2m lock into read-mode, maybe at the expense of
> expanding the paging locked region that would likely be slightly better?

I fear holding the paging lock across copy_to_guest() is a no-go, as a
pagefault there could invoke shadow code. Thinking about it, that lock
is a recursive one, so it may be possible to leverage that. Would
require making sure that all code paths potentially involved in #PF
handling would also use the recursive locking form.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 08:39:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 08:39:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299584.1574124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJoqA-0003Xq-Kp; Mon, 04 May 2026 08:39:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299584.1574124; Mon, 04 May 2026 08:39:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJoqA-0003Xj-IE; Mon, 04 May 2026 08:39:46 +0000
Received: by outflank-mailman (input) for mailman id 1299584;
 Mon, 04 May 2026 08:39:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJoq9-0003Xd-BX
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 08:39:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJoq7-00Gi8z-5z
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 10:39:44 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f85b4c-bab6-0a2a0a5309dd-0a2a4501b3c4-20
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 10:39:44 +0200
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f85b50-c1f2-0a2a45010019-d1558034a5c7-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 10:39:44 +0200
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-48a3e9862f0so24459525e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 01:39:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a81ed6bafsm549494985e9.2.2026.05.04.01.39.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 01:39:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777883984; x=1778488784; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FBV20dI4JF5uAxpxygyU3MCASAakyVoRxUKszAD4B5w=;
        b=Oi61nxcZ28b1edwXZGD4UZj+a4mS17LnDnjw0zYcLFrnqhgY/shW8OFMlhBLbWeBWF
         3vOSbbf/66l7qBhlvYgZwDnSerMr5TaCcNSLPVl784aRukk1xpA3dK7h81ZaK/s96Tpl
         gRnZ7vZvC8wbppfoRRjGeLoBY0lo3KZIsuaPxKJIS4cAU/NDIgXuuc2PeMUYRY7bCYCe
         BpPd9zqqMSDbeEhKuUv1jdG3KhiBw7gF/n84/sp+V9VnpYZQaz1WxBliL1xI50+yr3mD
         Kqh69VUKuVexTjzWOzA8DwMXTcPYzBTbprG36KreZbW6W/3SKNmPSUfGnrEPYEE0DMg+
         iJXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777883984; x=1778488784;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FBV20dI4JF5uAxpxygyU3MCASAakyVoRxUKszAD4B5w=;
        b=KiEvv3vHPWmCn1ZenanP8CxSO7eUa0oDU5vKoJO7KcjLTTh53HKDToJI7X+imCSvpo
         ArlVaqpqQwbmHI+Xmgv7izXj8OI1pJJqnTf+DJO4IsqcDwuDuo07Feq4onTQafZ7mLto
         2yWJF7PmcqxB+wsTBubRl1YRVojWGk7/rAZTjQwEltR2/0mrIZcV1gwCirLGmZTRlekR
         HLsfiDXVzUO16f0sjVgXVYp557NVEqnX9GKmLqJifhuk8x9v6eOO4DZRmWvMTbF9f4vQ
         uSaQhXWjb5rVc0WJ1AMinb50Iun5AdsEH2pzZW90uacDei8WrmaQJIRqMDYJq0D/su6k
         Rg7g==
X-Gm-Message-State: AOJu0YxdhdXq64A8gg3cpVyb7T+n1SBH/0pltLlkYpJC2qsfJRDG2A3O
	xTahDTeZTsDaPGgAT+bdN12XINheazup5MQ41+a8s1ef/GRYn8npy+cvhzsTzGVSeQ==
X-Gm-Gg: AeBDieuiNonmH3d02zU1XMIs4XbLLYepDSSrmaf+XhnnzbE2wZ9RuMy8Q24WEs6XegN
	22lwvDJPxlNlUxcELLZ0ZYjgRqZ3Db6kzzsLghmvaqG//3uHkLqtpUDO0iZfo+MZhoOeZud50KU
	qRRfAMVUjVOHU1iYVcwe/Trv4dEgumCwgTlP+IoVgQdD4flhkVX+EWRrTZHNcTyRPo/scTGZVDO
	deQW1FeXmbljw1Fe5KnDeYVt5dB1AnsG3HSE8uVf0UdOuCmqfzuSvXwG/R2foFEVCOd7eHdiiPd
	Lej/oSWBxcxScIfNWqNJMG4EyOjHHm1pi/PM4yJs3irkErR2plWRgtuGRD3KrLZijpOBjduvCTH
	8Cd05LAePe1mwTxTXio+vUDFwts1PTU0+O496mNTIXjWKxYgQi/kNAlEyhhdkotKeVajXl4WdjX
	ZjZkunvmGOBJq5t0S0bRvyZJy01bOrtPjroiGv9rM0052umz8eicuFzxW2KicnKf5mKUZoTedf8
	t6fa03aF25tLUjzAnFqI4x0Kw==
X-Received: by 2002:a05:600c:83ce:b0:486:f893:56c6 with SMTP id 5b1f17b1804b1-48a970eae79mr118564055e9.10.1777883984006;
        Mon, 04 May 2026 01:39:44 -0700 (PDT)
Message-ID: <eba10bd9-064b-437a-bf42-7a627fda464b@suse.com>
Date: Mon, 4 May 2026 10:39:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/shadow: VRAM last_dirty tagging
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <5149ab32-7d03-4ae5-9af0-e62dd5836329@suse.com>
 <8559db88-5f1d-4ced-980c-e71c4e229c7c@suse.com>
 <ae8sMiXAWjeXI3o1@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ae8sMiXAWjeXI3o1@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1777883984-BEA61FF4-11056CE2/0/0
X-purgate-type: clean
X-purgate-size: 2888

On 27.04.2026 11:28, Roger Pau Monné wrote:
> On Tue, Feb 03, 2026 at 05:49:55PM +0100, Jan Beulich wrote:
>> --- a/xen/arch/x86/mm/shadow/hvm.c
>> +++ b/xen/arch/x86/mm/shadow/hvm.c
>> @@ -1087,18 +1087,18 @@ int shadow_track_dirty_vram(struct domai
>>          if ( (dirty_vram->dirty_bitmap = xzalloc_array(uint8_t, dirty_size)) == NULL )
>>              goto out_sl1ma;
>>  
>> -        dirty_vram->last_dirty = NOW();
>> +        dirty_vram->last_dirty = -1;
>>  
>>          /* Tell the caller that this time we could not track dirty bits. */
>>          rc = -ENODATA;
>>      }
>> -    else if ( dirty_vram->last_dirty == -1 )
>> -        /* still completely clean, just copy our empty bitmap */
>> -        memcpy(dirty_bitmap, dirty_vram->dirty_bitmap, dirty_size);
>> -    else
>> +    /* Nothing to do when the bitmap is still completely clean. */
>> +    else if ( dirty_vram->last_dirty != -1 )
>>      {
>>          mfn_t map_mfn = INVALID_MFN;
>>          void *map_sl1p = NULL;
>> +        bool any_dirty = false;
>> +        s_time_t now;
>>  
>>          /* Iterate over VRAM to track dirty bits. */
>>          for ( i = 0; i < nr_frames; i++ )
>> @@ -1174,16 +1174,20 @@ int shadow_track_dirty_vram(struct domai
>>              if ( dirty )
>>              {
>>                  dirty_vram->dirty_bitmap[i / 8] |= 1 << (i % 8);
>> -                dirty_vram->last_dirty = NOW();
>> +                any_dirty = true;
>>              }
>>          }
>>  
>> +        now = NOW();
>> +        if ( any_dirty )
>> +            dirty_vram->last_dirty = now;
> 
> I'm a bit confused with the setting of ->last_dirty here ...
> 
>> +
>>          if ( map_sl1p )
>>              unmap_domain_page(map_sl1p);
>>  
>>          memcpy(dirty_bitmap, dirty_vram->dirty_bitmap, dirty_size);
>>          memset(dirty_vram->dirty_bitmap, 0, dirty_size);
> 
> ... as here the bitmap is zeroed, and hence ->last_dirty should be set
> to -1?

That's not how I understand the field is used. Aiui it identifies "was
clean for more than 2 seconds". That's not the case here. Hence the
setting to -1 only conditionally a few lines down from here.

>> @@ -1216,6 +1220,7 @@ int shadow_track_dirty_vram(struct domai
>>          paging_lock(d);
>>          for ( i = 0; i < dirty_size; i++ )
>>              dirty_vram->dirty_bitmap[i] |= dirty_bitmap[i];
>> +        dirty_vram->last_dirty = NOW();
> 
> I think this is doesn't deserve a 'Fixes:' tag because the setting of
> ->last_dirty unconditionally to NOW() regardless of whether the bitmap
> is zeroed?

There was (and is) no unconditional setting of ->last_dirty. Technically
maybe a Fixes: tag might be appropriate, but this is an error path which
should never be taken (assuming a well behaved DM). Do you think I should
dig out the offending commit?

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 08:48:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 08:48:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299593.1574133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJoys-0005HP-HC; Mon, 04 May 2026 08:48:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299593.1574133; Mon, 04 May 2026 08:48:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJoys-0005HI-Dt; Mon, 04 May 2026 08:48:46 +0000
Received: by outflank-mailman (input) for mailman id 1299593;
 Mon, 04 May 2026 08:48:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJoyq-0005HC-Po
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 08:48:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJoyp-0051Ij-MK
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 10:48:43 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f85d54-e002-0a2a0a5209dd-0a2a4505aafc-42
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 10:48:43 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f85d6b-aaa8-0a2a45050019-d1558030a411-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 10:48:43 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-4891f625344so39629025e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 01:48:43 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8ebb2fa5sm219896165e9.12.2026.05.04.01.48.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 01:48:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Cc:Content-Language:References:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777884523; x=1778489323; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vbgbYCz/JWTeo05X+V/PquPUE1/R1Os3MOYFeqM1sQw=;
        b=QxHGSdlKoMKsMUs0e1F04sJNyYKmkQ0NcoKWt1qiI7qTryasZhQ/jirCYqw6zNM4YP
         bw9vvkR3JSfc/fFc/U+f/ZlE+/X7u04lEyeYGdUIK+uNxvViZjzmQmdhxpvmBfiIhSPx
         +I/lMlkLE947FFgWjZQMYZChZ/QI7HX3GaXRuPuOJyl6pXmydkh8nZVgJke+6FpeMwOd
         tyl1kVZRk31YOzh7Mh9O2OxOFMCTNtCoc1k+E2qMW3cmvwVQImQe529MwQoYtQqVw3HI
         nWqKshO12o+FZWGXPcoQ5fp1HbB2coWoC2XZ6iCdBCZrc7QasUbCKCXU6ZBmol4ndxnb
         eltQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777884523; x=1778489323;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vbgbYCz/JWTeo05X+V/PquPUE1/R1Os3MOYFeqM1sQw=;
        b=hFxWKdmyDLmPN6wjVRaaVbH1XNjilY+AK9eU5qC5Kt+wxC+8JS947PghIm0WDXo2XB
         kepd6uQRdF8TV3rKpr88iOjtOdXCNPFJKGd9akzsfO5y0A15WcBDghzd3iZIzpzU6l8S
         TJoHHqCR4oV13HBhfPX17F4VXpp7317QptsyYc+kk/olHYNSXYXdxULhXJzv9O4um0xS
         B0CxlyBexZkGOdi953Dquf07d/+lz0NK18ncFnbk4aSxAyStcofK/lUfg0cwi63wgAKj
         oa3qOnuinWnosFMMqiw9H3PDFxpjdDYpyi5WCLOvIKnHF0x2M0hL7AWufqhYqf6cU+xP
         Fl8w==
X-Gm-Message-State: AOJu0YxhiS05Srw94rGlFo7RY7xuOpBOqlJBm4GMF75WnQ9daIKHxjki
	Q4ozzfLjqCFejYtbODwnnFZSTpJOgx7BArfCHmBm3AUwWQWsIHh69ESth9QV8z5x1Q==
X-Gm-Gg: AeBDieulsrmQNiSYSESdAVIE4j/URB+9qX1unQsVyEv+7zbh9R8Ia5dnFRGzNaLLI6L
	zwZcG4blZHb/kXL+VvFmj+pKjXIDO4fb7wY4zlX0cqA8p72eEofikwydLpONUqyPEh+ZSWTMY++
	1DRv6GjJRtz9LCiPrrOKR4D3JuSJJTJSMirGvt73Y+elNh0aEhS4VhydaHTTYaikJON9qacQmKh
	9N588BJKwVtsQmcf9tXbO72JjJMXUyDKzKsbcQHzEyY5X5odrLFWqtdVLPToxBzDOS1ZHbmNLUM
	IGNqiKlRh5ZgTJi2pCFxB0hUbS0QJbyIeqJByupfunMF0Z3b853NOsk8PYKOLSSTpOTF2JJ1Nil
	To6ozAgXTeIF/mPKQ58IlyGybKR3w8NsdP6VC3sRbzydz7jogKebTtBXH2dujW9Hp7iSNrKPccG
	3gcgQspsGar1gx9wDW3PeHhpCw5xTaO5U43SMG7sF1JG09YgT41+Nlwn3mBBWFlVWqMwpz9gh4k
	Dl348ySEj6Mt8rJu6TFY/MDGg==
X-Received: by 2002:a05:600c:6087:b0:485:3cef:d6ea with SMTP id 5b1f17b1804b1-48a970fe6e2mr138711185e9.13.1777884522787;
        Mon, 04 May 2026 01:48:42 -0700 (PDT)
Message-ID: <8c619af2-0dbd-468f-aa17-c1224d315304@suse.com>
Date: Mon, 4 May 2026 10:48:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] Skip boot memory scrub on platforms with full-memory
 encryption
To: "Samuel.Montgomery61" <Samuel.Montgomery61@protonmail.com>
References: <xJXmemuuJ0kqnGWQ9PWwfFn8_KZVhYSbsAyHFGvDeiqpxUK1Q-ar7Lab7ttRPx-tcEHduS26pU9BkIifbhznT1Qc06vyHfovl1-IXC0cWUU=@protonmail.com>
Content-Language: en-US
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <xJXmemuuJ0kqnGWQ9PWwfFn8_KZVhYSbsAyHFGvDeiqpxUK1Q-ar7Lab7ttRPx-tcEHduS26pU9BkIifbhznT1Qc06vyHfovl1-IXC0cWUU=@protonmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1777884523-E3B60443-6D2E7520/0/0
X-purgate-type: clean
X-purgate-size: 2787

On 04.05.2026 05:24, Samuel.Montgomery61 wrote:
> Hello,
> 
> Xen's boot-time memory scrub is one of the more time-consuming steps
> during boot, particularly on systems with large amounts of RAM. I'd
> like to propose skipping it on systems with hardware full-memory
> encryption (e.g., Intel TME, AMD TSME).
> 
> These features encrypt all DRAM transparently using an ephemeral key
> generated by the CPU at each boot. The key is not accessible to
> software and does not persist across reboots. This means residual data
> from any previous session where encryption was active is unreadable --
> the same property that boot scrubbing exists to provide.
> 
> The important nuance is that Xen needs to confirm encryption has been
> continuously active since the last scrub, not just that it is active
> now. If encryption was only recently enabled in firmware, residual
> plaintext from prior unencrypted sessions could still be present in
> pages that were never overwritten. Possible approaches:
> 
>   - Record "encryption active" to an EFI variable each boot; skip the
>     scrub only if the flag is present from the previous boot.
>   - Expose a command-line option for administrators to assert that
>     encryption has been consistently enabled.

As you point out, there are issues with default-disabling. We already
have the "bootscrub=" command line option. Is there a reason this can't
be used here as well? I.e. is there a strong reason to put in (perhaps
significant) effort to identify and cover all the corner cases
associated with default-disabling?

Jan

>   - Some combination of the two.
> 
> The optimization would apply only to the cross-reboot case. Runtime
> scrubbing when domains shut down would be unaffected, since all domains
> share the same key during a running session.
> 
> Edge cases worth considering:
> 
>   - Memory written by firmware before encryption activation.
>   - Crash/kexec without a full hardware reset (key may not change).
>   - Suspend/resume (some implementations restore the prior key).
>   - Interaction with existing bootscrub= command-line options.
> 
> As a broader note, multi-key extensions to full-memory encryption (such
> as those used by AMD SEV and Intel TME-MK) could eventually eliminate
> the need for runtime scrubbing as well, by giving each domain its own
> key. This is relevant to the confidential computing work currently
> underway (Teddy Astie's recent AMD SEV RFC), though the boot-scrub
> optimization proposed here is independent and much simpler.
> 
> Feedback welcome on whether the reasoning is sound and whether there
> are edge cases I've missed.
> 
> Thanks,
> 
> Sam
> 
> ps. I'm not subscribed to the list, so please CC me in replies.
> 



From xen-devel-bounces@lists.xenproject.org Mon May 04 09:02:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 09:02:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299602.1574141 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJpBg-000818-Hu; Mon, 04 May 2026 09:02:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299602.1574141; Mon, 04 May 2026 09:02:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJpBg-000811-FL; Mon, 04 May 2026 09:02:00 +0000
Received: by outflank-mailman (input) for mailman id 1299602;
 Mon, 04 May 2026 09:01:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJpBf-00080t-4f
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 09:01:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJpBd-001aH3-9a
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 11:01:57 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f86079-5cb7-0a2a0a5109dd-0a2a450ad4a6-38
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 11:01:57 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f86085-56b3-0a2a450a0019-d155802ff067-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 11:01:57 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-488d2079582so41666985e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 02:01:57 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8fee325asm91162065e9.7.2026.05.04.02.01.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 02:01:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777885316; x=1778490116; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SyQvWaYl+H5COMVL8nm+snI1bQDSN5m1ZItnEsFHn6M=;
        b=B3Xv6gUmE55LdGmnjn7Mo/T9lxtRwI3qAHz71YumOF+UnkPDrlwT6RQuCr5FWlKuWR
         0ozNLomY/ySfDuELydbldvwNcqZuHBWAokSWWKy6QpIYjtmRrEMZWlEYT9S4hbsqbvRp
         XQnNEElmw25BUSTctQFzhQr/8R8axFwSKnQHIAuxvjUIYcpBvumLCRMH8/lfyGiTe3LM
         Jv023QWn5ktR3B0Uer3UPHVBMgB791AK0UCv5yaGbjbn0/tQCYRk4dYkeZP7lLwh2Z/a
         BVDdNKeewHPLGFWGolh0uVv+h5z/wARxJGzKSEzVeVrAR1N27Pq3hniYZMqkj/mCKlpP
         A3pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777885316; x=1778490116;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SyQvWaYl+H5COMVL8nm+snI1bQDSN5m1ZItnEsFHn6M=;
        b=m5kQzItMGgmAAQ0V9pzXoY3ecNm+NT1p1FV2msjJxyqMSV7idYMV5UR0x9eaVhyT4M
         /i4XjclFe3guB+hZWynoTrASmj9m+Usa2zkJy8adKgKCt/6Un/mUN6Z+3d8RW5x1O/TS
         fTZuy/3620PSvVKrvNRR79kVgAjavmD/+hp8JDTY8HVdFEJcvlTxqtQrhRnio3sGxZhS
         sGRQLgcjzq+Rad5XI5ca8XdLGrLerqkg6e3sdwe4Y4j1Q5AQnnWikoz4Y+UQNWhRskhS
         bZn+zzDtFQBANLL/dZuqlsSFsx8bZNlq7WlnYi8NfhVmizUak/HsovMtz9k7H6vkoAma
         qhfA==
X-Gm-Message-State: AOJu0YxBwh8iG5fH8VFuKIiz08mFjE1zP1Wc46NorHDbDAyTgUWIjv+j
	Q2muCGxJM1vzrKb/AAHlELy5BkeDJ0tfDdrXuTYpIhqlrHPpjOPoKqk0pRD7cgU0Ig==
X-Gm-Gg: AeBDietrwVK8InEBy87i6FUbJ2ZSssRWDEfLa223UpYy7i2bU8FkZfCsnoL3/grwESL
	5lomAKWKMOSO33QfIMTSCfhtiXxme2qcqYuzH3JJvcxMWUw8e42aeBBkXQ7q8dcHGHy0YokWUI4
	+zIWm7g22k2po+mSxVwmehYvCzRrQapcP8YPX3g4l7IncrdjrLAWrLBjDjLVFFsGkb/9nneFBMZ
	u31f9gfadYaCZ5RwC43CTM48G3/myQvBnTPoTg1iu8lFzm5o7PFrvGL/qpJ+9FyZkNQJGgLpows
	+2kHSkM21ygemj/+Hq7lY4nBk7CdhR0EvIOmH9951THQmttdXEfvC0EKaGQ/lu9MaU1gzCT0IDd
	ShgL3FVbTpxkSjQQBm0zFBBLNUCjQ+UsPakoy3R0fWx8+a+fmIafDepUh7XoIfXxM/5RvAL8YH/
	vkfx4/Mroe8wukmsgDq/cL74J2xgIvKNzizoI1pGnWm4tFtI7NZnWA7Iol4gLuXsqMwJorrfZuT
	w7CB7yHw9ok9kI7kHho27wqSzojAio3qK7L
X-Received: by 2002:a05:600c:45d5:b0:488:a2ac:a334 with SMTP id 5b1f17b1804b1-48a9853c933mr138258015e9.3.1777885316429;
        Mon, 04 May 2026 02:01:56 -0700 (PDT)
Message-ID: <f215fb5a-84f3-4c90-8827-285d024a0ef1@suse.com>
Date: Mon, 4 May 2026 11:02:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/9] x86/mwait-idle: arrange for BSP MSR adjustments
 during S3 resume
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
 <e5e03239-1d4e-4ab2-8f16-83d280f23b24@suse.com>
 <aet_X0c504QvcqGT@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aet_X0c504QvcqGT@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1777885317-CDD688B7-9C43BF84/0/0
X-purgate-type: clean
X-purgate-size: 3198

On 24.04.2026 16:34, Roger Pau Monné wrote:
> On Thu, Mar 12, 2026 at 05:54:30PM +0100, Jan Beulich wrote:
>> mwait_idle_cpu_init() is only called for APs, yet MSR writes will
>> typically need re-doing post-S3 even for the BSP. When multiple cores /
>> threads are present (and to come back online) in a package, for package
>> scope MSRs this may be covered by APs doing the writes, but we can't rely
>> on that.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> --- a/xen/arch/x86/acpi/power.c
>> +++ b/xen/arch/x86/acpi/power.c
>> @@ -28,6 +28,7 @@
>>  #include <asm/io_apic.h>
>>  #include <asm/irq.h>
>>  #include <asm/microcode.h>
>> +#include <asm/mwait.h>
>>  #include <asm/prot-key.h>
>>  #include <asm/spec_ctrl.h>
>>  #include <asm/tboot.h>
>> @@ -299,6 +300,7 @@ static int enter_state(u32 state)
>>      acpi_sleep_post(state);
>>      if ( hvm_cpu_up() )
>>          BUG();
>> +    mwait_idle_resume();
>>      cpufreq_add_cpu(0);
>>  
>>   enable_cpu:
>> --- a/xen/arch/x86/cpu/mwait-idle.c
>> +++ b/xen/arch/x86/cpu/mwait-idle.c
>> @@ -1680,6 +1680,28 @@ static int __init mwait_idle_probe(void)
>>  	return 0;
>>  }
>>  
>> +static void mwait_idle_cpu_tweak(unsigned int cpu)
>> +{
>> +	if (icpu->auto_demotion_disable_flags)
>> +		on_selected_cpus(cpumask_of(cpu), auto_demotion_disable, NULL, 1);
>> +
>> +	if (icpu->byt_auto_demotion_disable_flag)
>> +		on_selected_cpus(cpumask_of(cpu), byt_auto_demotion_disable, NULL, 1);
>> +
>> +	switch (icpu->c1e_promotion) {
>> +	case C1E_PROMOTION_DISABLE:
>> +		on_selected_cpus(cpumask_of(cpu), c1e_promotion_disable, NULL, 1);
>> +		break;
>> +
>> +	case C1E_PROMOTION_ENABLE:
>> +		on_selected_cpus(cpumask_of(cpu), c1e_promotion_enable, NULL, 1);
>> +		break;
>> +
>> +	case C1E_PROMOTION_PRESERVE:
>> +		break;
>> +	}
>> +}
>> +
>>  static int cf_check mwait_idle_cpu_init(
>>      struct notifier_block *nfb, unsigned long action, void *hcpu)
>>  {
>> @@ -1762,24 +1784,7 @@ static int cf_check mwait_idle_cpu_init(
>>  		dev->count++;
>>  	}
>>  
>> -	if (icpu->auto_demotion_disable_flags)
>> -		on_selected_cpus(cpumask_of(cpu), auto_demotion_disable, NULL, 1);
>> -
>> -	if (icpu->byt_auto_demotion_disable_flag)
>> -		on_selected_cpus(cpumask_of(cpu), byt_auto_demotion_disable, NULL, 1);
>> -
>> -	switch (icpu->c1e_promotion) {
>> -	case C1E_PROMOTION_DISABLE:
>> -		on_selected_cpus(cpumask_of(cpu), c1e_promotion_disable, NULL, 1);
>> -		break;
>> -
>> -	case C1E_PROMOTION_ENABLE:
>> -		on_selected_cpus(cpumask_of(cpu), c1e_promotion_enable, NULL, 1);
>> -		break;
> 
> I'm possibly missing some context here, but why do we use
> on_selected_cpus and the CPU_ONLINE hook?  Won't it be easier to use
> CPU_STARTING and avoid the use of on_selected_cpus(), as CPU_STARTING
> runs in the context of the CPU being onlined.

CPU_STARTING happens pretty early, e.g. before IRQs are first enabled. I
consider use of that notifier to generally be restricted to pretty
special purposes. But yes, technically switching over may be possible.
However, in any event what you're suggesting is imo an entirely separate
change.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 09:07:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 09:07:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299609.1574150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJpGc-00007a-33; Mon, 04 May 2026 09:07:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299609.1574150; Mon, 04 May 2026 09:07:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJpGb-00007T-WE; Mon, 04 May 2026 09:07:06 +0000
Received: by outflank-mailman (input) for mailman id 1299609;
 Mon, 04 May 2026 09:07:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJpGa-00007N-3d
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 09:07:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJpGZ-0056Pn-BI
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 11:07:03 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f861b5-e002-0a2a0a5209dd-0a2a4508a590-8
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 11:07:03 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f861b7-63b5-0a2a45080019-d155802dc17f-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 11:07:03 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-4838c15e3cbso29743715e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 02:07:03 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8fee8751sm124105855e9.9.2026.05.04.02.07.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 02:07:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777885623; x=1778490423; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IDNdKbz4/mVge7LIb2ZjTaQ0/+HfE9dBeBLZ+RTYE78=;
        b=CUIBGH3Ybw4/9vekcjcrzMHlQQXz/5DXnbUqnuJAvvUOuPAYfX3SexUQg/IXEsHD+I
         mvoqOiWXjaZ8MnsCNd/W0Qha8NgzRKjRrkVAsf1E467dWgtXwjw96egEXyHG8OPkW8sZ
         +BWx3hQuZy6lteJhtIoaXVOQ+hSt8eYB3vVpgOTW+VL6vptOUPXD6Tl3Fh8yS/EN+rgy
         /OI8+ooAWRfRMElUtTcG7kKMI2AwtIKOzGqsqbLn5v7KyWXNqmH4dnq7vAMjJ/ncIq6Y
         A71oMsSa9UNC9daFAPtI/lgbp28DoRPvrzsKMVgpV8+Gd3cr1v5iHKuwIRTxHkNdI7Sn
         g+aA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777885623; x=1778490423;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IDNdKbz4/mVge7LIb2ZjTaQ0/+HfE9dBeBLZ+RTYE78=;
        b=ilEemSL+qt9w7zHmSN2MR8MKIFv7BAhxzgQtZ+reMijdbs8EFF0s4tYwIAu1AmHyu8
         1qNHQhTsHNu11lppODd66Npoz2vIWLte4MhaqZ1v3er/ax2WvIqeJcwlj3wwVpz+OPR9
         o907M59XfmFm9K+wF36NO10HDFbBapdkP13uwEv/x4azQkZK9kE+c0GozEqf+h8L2raz
         7A/Mkk6Mk/RQky7h0H+HoBPNC2CnZdbjUEKsvM0DQ4kqUQ5S/HFj/hXtdTGdNNX7+osZ
         SqNUoKp90skXq8Y0IR37Rddmbh8wGn6calBoYP5tJwkTeffHl2N0WXOz0fAf1dwqh1IQ
         SSGA==
X-Gm-Message-State: AOJu0Yzv1gQHUey3hhexCshSrMgLGzqXUaTqgHTaxzTItdrc03rcDX0Z
	dd95vq0PzXyUSiDsKCbGuFm0unSKBIn0Ck5K7ui2bv6z6PupLh03fU6Gt62B2bRM/JEuQRXhdJn
	E5Mk=
X-Gm-Gg: AeBDieuh76QnzSle/Llrc/ukTyK5eFFILt9piDqPR84+JwdHiZLGTAhazIVJUESdwlo
	8vRutcB5GzcBUWkacgSlPrd7fU30f421yPDB1Ncaj0LLoc0xm7tM8ok/6wLZ/AQPcinFOwurfZy
	NtqAvT7vDWDnxFaiTlzDI67O1cUwkJLapDbdxFiuZrgrg37xExr8ht+ihsYj9RQAST+djYC7Dtv
	XnKJIe0ceQVULq/45frYVZdgCcJKDbHzbbf0iIyEkl9S7brQzVIZZSMo0CpyAD/Vpzk+Yuu7+0W
	CT2iC51OQPWL5Fw4JnBIeqAK6y+O9j59yqUx4usDsC59Nt8juB/DPVPX0LJFNjUp3sY8UWSJy8M
	SLLdjIUC0Kc+vfOREAUiiZsL37Kms1DocVLCF2QSczeNOaMjPm8MLrGpnGLqbhN98xVndcUwuP5
	W5wVNsTn1qSFFHaNbBuXDdL/viVRn+FIkvvlEp9q8RuPabzZby1dLQjcyCCxVJ59iwhOrKgKobU
	zyeVJNYnAxmj6ilQReoo3/Dpg==
X-Received: by 2002:a05:600c:a302:b0:48a:568f:ae8a with SMTP id 5b1f17b1804b1-48a98638a65mr100195835e9.8.1777885622564;
        Mon, 04 May 2026 02:07:02 -0700 (PDT)
Message-ID: <64d45064-de32-47f3-b4b8-809b3cc4cc16@suse.com>
Date: Mon, 4 May 2026 11:07:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/9] x86/mwait-idle: clean up BYT/CHT auto demotion
 disable
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
 <b906c3d5-5256-4ddf-9186-b52d8280e2ec@suse.com>
 <aeuCcSSBJ4H9UwOB@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aeuCcSSBJ4H9UwOB@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1777885623-C3171DB1-EA58A83C/0/0
X-purgate-type: clean
X-purgate-size: 914

On 24.04.2026 16:47, Roger Pau Monné wrote:
> On Thu, Mar 12, 2026 at 05:54:56PM +0100, Jan Beulich wrote:
>> @@ -1700,12 +1694,24 @@ static void mwait_idle_cpu_tweak(unsigne
>>  	case C1E_PROMOTION_PRESERVE:
>>  		break;
>>  	}
>> +
>> +	/* Pkg-scope MSRs on 1-socket-only systems need writing only once. */
>> +	if (!bsp)
>> +		return;
>> +
>> +	switch (boot_cpu_data.vfm) {
>> +	case INTEL_ATOM_SILVERMONT:
>> +	case INTEL_ATOM_AIRMONT:
>> +		byt_cht_auto_demotion_disable();
>> +		break;
>> +	}
>>  }
>>  
>>  static int cf_check mwait_idle_cpu_init(
>>      struct notifier_block *nfb, unsigned long action, void *hcpu)
>>  {
>>  	unsigned int cpu = (unsigned long)hcpu, cstate;
>> +	static bool first;
> 
> I think you want to init first = true here, so that after the first
> call to mwait_idle_cpu_tweak() it gets set to false for future calls?

Ouch, yes, definitely.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 09:14:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 09:14:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299618.1574159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJpNa-0001nF-O6; Mon, 04 May 2026 09:14:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299618.1574159; Mon, 04 May 2026 09:14:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJpNa-0001n8-LU; Mon, 04 May 2026 09:14:18 +0000
Received: by outflank-mailman (input) for mailman id 1299618;
 Mon, 04 May 2026 09:14:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJpNZ-0001n2-Jr
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 09:14:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJpNY-0058hn-Ha
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 11:14:16 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f86367-e002-0a2a0a5209dd-0a2a4508e3dc-6
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 11:14:16 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f86368-63b5-0a2a45080019-d155dd2bc8b3-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 11:14:16 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-43d77f6092eso2244818f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 02:14:16 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-44a8ef50becsm24692384f8f.11.2026.05.04.02.14.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 02:14:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777886056; x=1778490856; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tgdU+lXpIifqYpavTpC6veHBypFdkxGGvDjCotHnqIo=;
        b=E7qXpEjEdUJAn90uzxqaM1exXsmcdQqTiXArpLHqguWu89AmIS3gN5NZke5c9af0X/
         AYfioCjQA+ZVpCCLHIOuOHC625kpA+23YNkTMOQOJ4wfT0f352StXAfqcSVCsH9e3dzE
         8GD9CzwJl0IhiEH/YhO3hhfU1nWJ1nSlMYii41B9P7RAPWZ6fg4UKFbI7Zsd9o55CTPa
         dCHCLxqqsgFnaUm/gybnox8Y7FTRRXHxXpmchisRWoK+dCk4qcLKxWhSeyxo+k1P8xKt
         tctZXfXT9FJ1ETP11b2aY7xDBe/PH7waCoB00j12/Mq01Uq39g6pHqe3xyuHYHTlgkUs
         yrqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777886056; x=1778490856;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tgdU+lXpIifqYpavTpC6veHBypFdkxGGvDjCotHnqIo=;
        b=Og+gyBts+8SjMxIg2JsQDQaVdyvM3EY0keuskmeBt2bifqzTsKMfXrWFoHDZZ8oKgY
         STZsv/mwFKhEIK/vhOdNXXeDqEFCmlZvfdTK+SIu+2EAFuOTr501foQ/cpzaqEdV3zmN
         HB6EtbrNQPd/MyRlL/BUMMQDycNEFKm/YzVvJAHaYSfN92oanJl7V+vnoDHMDcGhb5KN
         Y0nlUotfFvpmMna6wii0ixnTQGPdBeuGJIeQW7nq3PZiMQypHWTgPCM+JDePhfXpfo6J
         3OH58Bj+JTTToPLiuzrrFWJ+aOvfQHKYfFZ3jouORDd2bhpwQWMeYGa/w0nvVL16d7ZR
         31Aw==
X-Gm-Message-State: AOJu0YyTeoBiAK8W0dZaH03Mhi8N7HPXbhviXtjRD/t2vcuAenIUHoGX
	C/LySdCMbWOVtMfo2AA4EI+bAGCOCEwWFlHxmcQyvLwUwZk2OB0ELapTblCeaP+oARcRAjl05qC
	KHYE=
X-Gm-Gg: AeBDieuuQZHa5IUks+5WBsf15rsz5r+XxIjudnnd0aqDqPk/mmvJzcZUEUJ3ToBrApw
	p3fw/2zKJLK9Imuftw32qvXMpzd/AF9X32QHGmaHdoSX1EX/hYFV/QuwxDkM5H/eXifb10oqEnw
	6zC7p9jsOOkgKXjfNDgdS+Z2kbaqqPp34Jpi61gAR6Xk8GHLUvax4GevEPU5MY2LLnBXOTTMfFO
	XX1O4WM24RjTNklCZriAqLkEwDmiu2RRlCR6PzLV2mwMKoGxRto5HHL79bO1jIVPEmwyaXBfgAE
	rSmJHWe0zLmJlT588ZgSYizEX+qf+DONmNQDPsPVJw8Mfi/rM411ih6fntmTJmvgL6tHmaBBxYn
	WiH3JkkgnSDYFeYVPmAQl94ykYrIKVQx0mRKJq/a9QohW41VGjEjVHowCJklwpVQvoeI0U/OFww
	DgYzG6bqR4GzJVqaXCE8bBbTKPdoWUnjnsi6/Ui4ELf7GrG+cw1493UH49JorRu0Gm9GanzXfKB
	bO+WALRAGlivaxbuuZBL7Qvzw==
X-Received: by 2002:a05:6000:2484:b0:43d:7b7b:ab77 with SMTP id ffacd0b85a97d-44bb34e69cemr15149779f8f.11.1777886055851;
        Mon, 04 May 2026 02:14:15 -0700 (PDT)
Message-ID: <98c6c506-59eb-4b5d-bfae-6d92d9bb777d@suse.com>
Date: Mon, 4 May 2026 11:14:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 7/9] x86/mwait-idle: drop const from struct cpuidle_state
 arrays
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
 <5516d0a1-8fac-48ff-bbe1-85726b730e94@suse.com>
 <aeuvI_ojCxA9BR36@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aeuvI_ojCxA9BR36@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1777886056-3B370DB1-5F4B2BCE/0/0
X-purgate-type: clean
X-purgate-size: 787

On 24.04.2026 19:57, Roger Pau Monné wrote:
> On Thu, Mar 12, 2026 at 05:57:18PM +0100, Jan Beulich wrote:
>> A subsequent change will want to be able to alter them based on a new
>> command line option. (Note that some were __ro_after_init already.)
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> I wonder if we could also move all the cstate tables to .init section,
> as after boot we would only use one of those.

I think we could, at the price of introducing a compile-time upper bound
to the size of those arrays. We'd need to copy the one we want to use at
runtime, and hence we'd need to reserve enough space (or use a runtime
allocation).

>  Anyway, for the change
> here:
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 09:21:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 09:21:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299627.1574168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJpUL-0003WI-Gz; Mon, 04 May 2026 09:21:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299627.1574168; Mon, 04 May 2026 09:21:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJpUL-0003WB-EQ; Mon, 04 May 2026 09:21:17 +0000
Received: by outflank-mailman (input) for mailman id 1299627;
 Mon, 04 May 2026 09:21:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wJpUK-0003W5-R0
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 09:21:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJpUK-00FQPa-33
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 11:21:16 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f86509-5cb7-0a2a0a5109dd-0a2a450a9314-10
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 11:21:16 +0200
Received: from [209.85.208.44] (helo=mail-ed1-f44.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f8650b-56b3-0a2a450a0019-d155d02cb0db-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 11:21:16 +0200
Received: by mail-ed1-f44.google.com with SMTP id
 4fb4d7f45d1cf-67389cf78b0so7569258a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 02:21:16 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.216])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-67b86caae44sm3140490a12.12.2026.05.04.02.21.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 May 2026 02:21:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777886475; x=1778491275; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=wkyQEgJUNM3LgfrP5sMqaw1jbx8pNrvLd2PNokV1c2g=;
        b=cQAbONbbhKykHzbLCOt5MJjd5Dd59g/WmLotIBtyZ8oUNtt/9ZCHwvjyBsYDEXrwiU
         dK9FAhycHsJFOn5OIID839DNfm2h31meEAsvdzM1x5j3kssmcffHkVWB01LZeMr5gIal
         QUA3kfIiUovrl2sOIHkux9K4kej5ZUEQeeYFyaHdMEA1q0wpJ5QcOYPKNeRNIchND7Dw
         Mlpnj3ZsiEoPdd/3uY6ppd9/P7TNqfuStPjTcatIH7f8uhyZz3oHbHRMvTyLNTlGF9pP
         /c+BOUnBRQgDY4PHGZQjwjdNI3iKk64K8eLTmxqS18e/uBLlDz0484CitRwkZ6YhwsiW
         Qp+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777886475; x=1778491275;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wkyQEgJUNM3LgfrP5sMqaw1jbx8pNrvLd2PNokV1c2g=;
        b=W0GWa07CXaoYKxHV8+48rmktqaTf+RYIybJmxmtvz4XAp94lyjD3Hc1UOzYN5KiLLO
         k0cAQs5mpUmRyPsWf3bEHKu599idZ8aZIzeZNQkywXKx3cdsZ81/lkj3cLuy0Na6Lh61
         xYsuIXw/6mZ8rCD99rv4Ti2ewQNiOZZrjTSqylAMC+G9jOdMJe44K/C6fJDLT/HzcKcC
         2D8IDFCyiQxUn8d8XwBXprRmDXU2b5u2/Nh1g6qxIwC8QVggoaJic3Aewewfb/sZj0eP
         Y0wpR8BVoJXHXZ8LpHaJrJeoY7bEtNVXj1szpkEZE91kfGzZ1FHVkrPAzUfKi+bg1d6w
         vtKQ==
X-Gm-Message-State: AOJu0Yw+QK4oWhwFfQtod5z0SV9rA8f7WwgboWkq8PH3uZu3rY9BJk+6
	BZ73PTuQPtryM5LpEmVgyfHznBkArPuf+hn7EOZT23WgfTp4pXS8NIJ8CqBpdFvg
X-Gm-Gg: AeBDieudiW+Mscr8jUUC4sP+zsWYXAMGmsEXaoB9Ka4Ylb8iDtCYrx8xV5vH8fb9cNR
	NQmYsi6TE49K21g7Ttcr2q2kPCFr0ABGFaJbnIaPgNCsgwOei5NGaeZSEEiPbFLZT/TH9QPx6i8
	4HbL8edsJo9QdEMEFibEtP38fxxomfmPMz70rgpCn/y+uaf46UtMg2PGFyeIykvh+r1y6Km2eks
	F2fTRB1PFCZPB6cmmYS13b8QSlKv8cdvBGWhNp5fTFucOIDLisr/I6HuHPrjb103qLuMvItGVSL
	G+eRazLr/f7NCDvQGoAyCrJxE0D0AYJRDQUigADci0uxvYmNTOZnm6PEGARE1HVPFFvZD+gdhxu
	SQwkRLMNM6m3i76WyjCY8Re984m4Ej1tJr3v6cwQFcql7Iqz1RWf3MK9o8A/mHHNRp33FNdSB2Y
	HKJfyhJi+AdMzI3eD33rROV9xirZGCRO0lzKZwJg==
X-Received: by 2002:a05:6402:5057:b0:676:6e7c:2e3b with SMTP id 4fb4d7f45d1cf-67c18122342mr2813961a12.7.1777886475082;
        Mon, 04 May 2026 02:21:15 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] xen/arm: scan CLIDR Ctype fields upwards when probing LLC
Date: Mon,  4 May 2026 12:19:06 +0300
Message-ID: <998162706f89bb3100bda409d8fde3c8b143eae6.1777886129.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1777886476-4797E8B7-60F9D5E0/0/0
X-purgate-type: clean
X-purgate-size: 3387

From: Mykola Kvach <mykola_kvach@epam.com>

get_llc_way_size() currently scans CLIDR_EL1 Ctype fields from the
highest level downwards and stops at the first unified cache it finds.

However, CLIDR_EL1 describes the cache hierarchy from Ctype1 upwards.
Arm ARM DDI 0487J.a, D19.2.27 says that once software has seen a
Ctype value of 0b000 while reading from Ctype1 upwards, no caches
manageable by the architected set/way maintenance instructions exist at
further-out levels, and the higher Ctype fields must be ignored.

The current reverse scan can therefore select a unified cache level from
a Ctype field above the first no-cache level. Such a field is not part of
the architecturally described CLIDR/CCSIDR cache hierarchy and should not
be used for selecting the CCSIDR level.

Scan Ctype fields from L1 upwards, stop at the first no-cache level, and
keep the outermost unified cache observed before that point.

This preserves the result for regular cache hierarchies, while avoiding
selection of an architecturally ignored Ctype field.

Fixes: f4985fce6f0b ("xen/arm: add initial support for LLC coloring on arm64")
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
This patch follows the xen-devel discussion:
https://lists.xenproject.org/archives/html/xen-devel/2026-01/msg00345.html

In that thread, Michal noted that the reverse scan was a simplification
rather than an intentional requirement, and that changing the
implementation would be fine.

Testing performed:
- standalone synthetic CLIDR tests covered both regular and pathological
  Ctype sequences and showed that the forward scan ignores unified cache
  levels above the first Ctype == 0b000 while the reverse scan can pick
  them
- Renesas H3ULCB booted with llc-coloring=on
---
 xen/arch/arm/llc-coloring.c | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/llc-coloring.c b/xen/arch/arm/llc-coloring.c
index 6f78817c57..3783f4c824 100644
--- a/xen/arch/arm/llc-coloring.c
+++ b/xen/arch/arm/llc-coloring.c
@@ -22,21 +22,33 @@ unsigned int __init get_llc_way_size(void)
     register_t id_aa64mmfr2_el1 = READ_SYSREG(ID_AA64MMFR2_EL1);
     uint32_t ccsidr_numsets_shift = CCSIDR_NUMSETS_SHIFT;
     uint32_t ccsidr_numsets_mask = CCSIDR_NUMSETS_MASK;
-    unsigned int n, line_size, num_sets;
-
-    for ( n = CLIDR_CTYPEn_LEVELS; n != 0; n-- )
+    unsigned int n, line_size, num_sets, llc_level = 0;
+
+    /*
+     * CLIDR_EL1 Ctype fields are interpreted from Ctype1 upwards. Once a
+     * no-cache level is seen, higher Ctype fields are architecturally ignored
+     * for the CLIDR/CCSIDR set/way manageable cache hierarchy.
+     *
+     * Keep the outermost unified cache before that point.
+     */
+    for ( n = 1; n <= CLIDR_CTYPEn_LEVELS; n++ )
     {
         uint8_t ctype_n = (clidr_el1 >> CLIDR_CTYPEn_SHIFT(n)) &
                            CLIDR_CTYPEn_MASK;
 
+        if ( ctype_n == 0b000 )
+            break;
+
         /* Unified cache (see Arm ARM DDI 0487J.a D19.2.27) */
         if ( ctype_n == 0b100 )
-            break;
+            llc_level = n;
     }
 
-    if ( n == 0 )
+    if ( !llc_level )
         return 0;
 
+    n = llc_level;
+
     WRITE_SYSREG((n - 1) << CSSELR_LEVEL_SHIFT, CSSELR_EL1);
     isb();
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon May 04 09:29:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 09:29:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299634.1574178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJpcK-0004Gv-A4; Mon, 04 May 2026 09:29:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299634.1574178; Mon, 04 May 2026 09:29:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJpcK-0004Go-6R; Mon, 04 May 2026 09:29:32 +0000
Received: by outflank-mailman (input) for mailman id 1299634;
 Mon, 04 May 2026 09:29:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJpcJ-0004Gi-3I
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 09:29:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJpcI-008Egl-0V
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 11:29:30 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f866f3-e002-0a2a0a5209dd-0a2a4504e994-32
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 11:29:29 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f866f9-1dec-0a2a45040019-d1558029d133-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 11:29:29 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-4891cd41959so30884935e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 02:29:29 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8feee4d2sm76721535e9.26.2026.05.04.02.29.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 02:29:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777886969; x=1778491769; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=m7ir4sJX0R8COqJqp7hyIddCROBwbnpLjpkfB7ysk6s=;
        b=WIUbfZzf0jj+f2szI5dVlYX/+keNnqUMidbcNHqnUpM2KFo1LpFzMyosuEBqGKf9eS
         0f9lJuiWH6hF5rC+NLyTjQPlg7L7msEfOWo/IbzWYoMz2qRYiuhReXuS0nkG2R3rzWol
         JuX8I4tKApzaz6gTrVe7KMxeg58AVxcGMuc/mZhozw25aFh98gzXpZnpE+uHvlJZtOQB
         WT11MjvFz+ZyYsXx7Olr3QyBMSwZ1FXKRvu6XtquN1KvDk/0GlODeqj4nOqZJxyBAiTN
         9WvU/MvDZQ56KHDZn7D99ecKTuWkLTSzw3cNzUllqr2pQYDHxRyyxLR793TaZLn3RMRi
         60zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777886969; x=1778491769;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=m7ir4sJX0R8COqJqp7hyIddCROBwbnpLjpkfB7ysk6s=;
        b=NukAv5GsSsNQpRUf0s1uHI6M/nELY8/7CBSNHzRnYOxNUJj947iR4zOQVCr6Mc75ZC
         4IHkNTeL0ntdfcBbMvVUDdVEW1KOk74qEgkTrWmjfVSI8t9ReX5367U+dJY8W9gjiHwU
         QzXhAsblkHz9ngN8/Ueza4a04l9lxhWSKfncJjz1T631a4B6EVcgXcmUXf9aaFeRHywM
         n8tFXTT9w1x4gBoDh8gfyxrQ07kUEZamPBCzId+RtSeZtKCUBDDMlCeEs0BU6zHrAmsV
         G1odzKQ5TVnpK7qMXmVPSPtl40mj8xbKTZODXUg3yqwTrsXeTseLhQ5IEYXXX5Zrc6xG
         XrTg==
X-Gm-Message-State: AOJu0YzuUGoi4mTRcoeGS/1DYV9PGbZtPejIX0CQezVfzL46c8GKGGUV
	zLE93zv0rZZ0lMKt//fjF3nmQwZ5neObE2+84lEn5SadqnUE6nOme5dvYB1BJEDr7Q==
X-Gm-Gg: AeBDietNO5mYAYz55Zb+YdoM2Q/OzXDQNqYp4I5FiBRSYXFgTpPNmhN0+p9xozr1Jxz
	KuO6tewIeb5WnUl/rPhIPZAIoyJXUGmbIZliozKra911iUymcW81/VIJofxwm1PbNVWgKEpDFtt
	5u6aRlgbejhtZkEjA41j05dxs36z4PCCdBLNoLO0SlbNfT1tdBq/w8l4Y/5U9zX0WfKMt6kW8LP
	LabjucpaCYStjeajQTgYKPjkd7DyrVfVYNzM3JQTky3rtJjYRZAN6PJAZZ5b1OsBQNh53+YTsVI
	dejQLPvId7vrcO3sg/Z2TOdxjkSMOYxo9w6Be7N/Soxg7ETa1wGsGr4i+CG8V9zPSlj+mdX2py/
	n+Tk1e5uDiijTw/sapQ8zr2An68KYR4l8TjxgBLkJJ2fpThfFVViPW16T2qwuZ04zlLhMaDuUOZ
	Eq7qtz3PImS0LTCE/Jh9r4qZMgNrgr6LBiXVDKF2aS0Eu8sZLN1U+tPyH4jAX3SQNhMpFcehvcI
	JFERILjOJvWOelbL19Fw2Dk7w==
X-Received: by 2002:a05:600c:a118:b0:488:ffad:6728 with SMTP id 5b1f17b1804b1-48a9865f342mr100889455e9.19.1777886969173;
        Mon, 04 May 2026 02:29:29 -0700 (PDT)
Message-ID: <45103b7e-301f-4769-bfdb-1b8b5a4a4fb3@suse.com>
Date: Mon, 4 May 2026 11:29:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 8/9] x86/mwait-idle: Add cmdline option to adjust C-states
 table
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
 <addfdc9f-7f03-4b84-b998-1fdbef2edc78@suse.com>
 <aevALCPvNRlRf91N@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aevALCPvNRlRf91N@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1777886969-2AF653FF-B74C191C/0/0
X-purgate-type: clean
X-purgate-size: 4464

On 24.04.2026 21:10, Roger Pau Monné wrote:
> On Thu, Mar 12, 2026 at 05:57:53PM +0100, Jan Beulich wrote:
>> --- a/docs/misc/xen-command-line.pandoc
>> +++ b/docs/misc/xen-command-line.pandoc
>> @@ -1928,6 +1928,23 @@ Print boot time MTRR state.
>>  Use the MWAIT idle driver (with model specific C-state knowledge) instead
>>  of the ACPI based one.
>>  
>> +### mwait-idle.table (x86)
> 
> The .table suffix is kind of weird, as we don't use it elsewhere.  It
> might feel more natural given the naming of the existing command line
> options to use mwait-idle-table?

I thought it might be better to follow the Linux way of naming per-module
sub-options, when we "inherit" them. See also "mtrr.show".

>> +static void __init cmdline_table_adjust(void)
>> +{
>> +	char *args = cmdline_table_str;
>> +	struct cpuidle_state *state;
>> +	unsigned int i, state_count;
>> +
>> +	if (args[0] == '\0')
>> +		/* The 'mwait-idle.table' module parameter was not specified */
>> +		return;
>> +
>> +	/* Create a copy of the C-states table */
>> +	for (i = 0;
>> +	     i < ARRAY_SIZE(cmdline_states) && icpu.state_table[i].name[0];
>> +	     i++)
>> +		cmdline_states[i] = icpu.state_table[i];
>> +
>> +	state_count = i;
>> +
>> +	/*
>> +	 * Adjust the C-states table copy with data from the 'mwait-idle.table'
>> +	 * module parameter.
>> +	 */
>> +	while (args) {
>> +		char *fields, *name, *val;
>> +
>> +		/*
>> +		 * Get the next C-state definition, which is expected to be
>> +		 * '<name>:<latency_us>:<target_residency_us>'. Treat "empty"
>> +		 * fields as unchanged. For example,
>> +		 * '<name>::<target_residency_us>' leaves the latency unchanged.
>> +		 */
>> +		args = get_cmdline_field(args, &fields, ',');
>> +
>> +		/* name */
>> +		fields = get_cmdline_field(fields, &name, ':');
>> +		if (!fields)
>> +			goto error;
>> +
>> +		/* Find the C-state by its name */
>> +		state = NULL;
>> +		for (i = 0; i < state_count; i++) {
>> +			if (!strcmp(name, cmdline_states[i].name)) {
>> +				state = &cmdline_states[i];
>> +				break;
>> +			}
>> +		}
>> +
>> +		if (!state) {
>> +			printk(XENLOG_ERR PREFIX "C-state '%s' was not found\n",
>> +			       name);
>> +			continue;
>> +		}
>> +
>> +		/* Latency */
>> +		fields = get_cmdline_field(fields, &val, ':');
>> +		if (!fields)
>> +			goto error;
>> +
>> +		if (*val) {
>> +			const char *end;
>> +			unsigned long n = simple_strtoul(val, &end, 0);
>> +
>> +			state->exit_latency = n;
>> +			if (*end || state->exit_latency != n)
>> +				goto error;
>> +		}
>> +
>> +		/* Target residency */
>> +		fields = get_cmdline_field(fields, &val, ':');
>> +
>> +		if (*val) {
>> +			const char *end;
>> +			unsigned long n = simple_strtoul(val, &end, 0);
>> +
>> +			state->target_residency = n;
>> +			if (*end || state->target_residency != n)
>> +				goto error;
>> +		}
>> +
>> +		/*
>> +		 * Allow for 3 more fields, but ignore them. Helps to make
>> +		 * possible future extensions of the cmdline format backward
>> +		 * compatible.
>> +		 */
>> +		for (i = 0; fields && i < 3; i++) {
>> +			fields = get_cmdline_field(fields, &val, ':');
>> +			if (!fields)
>> +				break;
>> +		}
> 
> This seems a bit arbitrary for my taste.  I would rather ignore the
> extra fields (and print a message about it), and proceed with the next
> state.

I think we want to stick to the original Linux behavior here. If you
think that wants adjustment, imo doing so would call for going through
Linux first.

>> +
>> +		if (fields) {
>> +			printk(XENLOG_ERR PREFIX
>> +			       "Too many fields for C-state '%s'\n",
>> +			       state->name);
>> +			goto error;
>> +		}
>> +
>> +		printk(XENLOG_INFO PREFIX
>> +		       "C-state from cmdline: name=%s, latency=%u, residency=%u\n",
>> +		       state->name, state->exit_latency, state->target_residency);
>> +	}
>> +
>> +	/* Copy the adjusted C-states table back */
>> +	for (i = 0; i < state_count; i++)
>> +		icpu.state_table[i] = cmdline_states[i];
>> +
>> +	printk(XENLOG_INFO PREFIX
>> +	       "Adjusted C-states with data from 'mwait-idle.table'\n");
>> +	return;
>> +
>> + error:
>> +	printk(PREFIX
> 
> XENLOG_ERR maybe?

It's pr_info() in the Linux original, so ERR would feel like going too
far. And WARNING is the default anyway. I can switch to XENLOG_WARNING
if you think we want to make this explicit.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 09:34:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 09:34:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299643.1574195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJphB-0005uB-Sb; Mon, 04 May 2026 09:34:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299643.1574195; Mon, 04 May 2026 09:34:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJphB-0005u4-PY; Mon, 04 May 2026 09:34:33 +0000
Received: by outflank-mailman (input) for mailman id 1299643;
 Mon, 04 May 2026 09:34:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJphA-0005tu-5S
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 09:34:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJph7-00Gukd-Sf
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 11:34:31 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f86823-bab6-0a2a0a5309dd-0a2a450ac6c6-24
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 11:34:31 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f86827-56b3-0a2a450a0019-d155802fe51d-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 11:34:31 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso27295105e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 02:34:31 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8eb69698sm464402615e9.1.2026.05.04.02.34.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 02:34:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777887271; x=1778492071; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XzwYg0ZYJm2i5yNiHCwc4qY4sZgpTOT5lCIQdD2BHo0=;
        b=c3cm497qITi+Wk+szLh8uUJktLugldbqtdXuB57XbEJmx+DzkoExsfdql4PIyNZGeg
         foQt4XN+5Y02tdhQlnw6WQ92aSJVAilrHK8jjy3QtOZwujTaXHslRXq1aEcLZUTJo4/9
         7OhWf/boSsDzkUetm+vn6nHaTZVdsXMh79fFGqZ575T40GgGt8kZGpQG6WNe9DBJ4X4C
         3OK4zfxk931WEydQA+osr944OZYOyq4Wz+Jpgy95+GvAd5uLqreeppVpwPtRIkbkWJwz
         pZXZbF64BOqwXK7uzhpg2pCYoDmMrYgC+sVeUeQx5PpyNrBmKGxOSjgmkKqz9I3t0kqN
         iOnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777887271; x=1778492071;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XzwYg0ZYJm2i5yNiHCwc4qY4sZgpTOT5lCIQdD2BHo0=;
        b=py8XwKqK0zQazVZoxgqi3ypOuu4IH17sG9Y7yd2Gc3d6W18rZc6iNeA2IfKvektP5V
         EBUYOikGIAW2KRLtjCBPxcertuXda0Q0JmqSLoCNxWKM7Dbo55fyXXKpGun9Zg0Fv35U
         M9weH/86e1dls0EMDIjCEwSUXzKALlkOcXAcE/ND3pVIY1rbk/6OfsveuHFJ94uzzsEW
         TAYetFi0oQlQ6j/0p2Fb5lvC/00b7BiC20ZsUaaGCKqbpOcqByJRF5a620+Zl4Y1p1ZM
         7d/4r770Pr5bTNelc0qXtLbZEnsMVCciltJQUr6nJaTkGSJpHXKmD2o42As/dnEudsvQ
         BMeQ==
X-Gm-Message-State: AOJu0Yx+WpOsoSkzWsl1ZAF8cxkdPY5Y9Xg3muSNiuigMr818uCrqGYI
	5vebdvxsHxOtIB1w8XHCxmUJMLVTxn2wri8IYnoxyoAgXYHwHuhCvL3U3hkFvVlzpQ==
X-Gm-Gg: AeBDieueJjVxG3SGutPQxZNq7dHqyZEnKhCUndQq3FK+HvOv0IemGlelOtAf/kIsrj3
	8IM+6ypEYDeHXJ3bUCTJWwFdm0emqj4ah0eW4iUZmdT/eOuXqRerXspVe6+8sd74ajiqGL80HIl
	D/Ws6EoJqRJVPbqJJj248ZhEWGnJE43QK7Cv9skNwY3dD8Qa54k+5E+3bPTI/clLnAoeteXLJrg
	m+J9X6YP/2/42arV5yyvCPTzR+bcs8VWNzfORTS9V9zFUmsteRkNj/VD7c0ZUxO201HzYWsN6it
	4LSTjODFV1dn5VZoQRV7u4Cacz3ftIkbI5WJuznWZFnG6UmSPvYWi8rpFxWbXLhTMsg6JOvAuw3
	pHsUKAfsMdvjTECyWF/uwa3xA5frXkwLJNDR9NCw89hfFuJfz2PJApCbw5j3p/GA+N/C16GQcvV
	PxUWcykk6ubzXhEx0gSBQSY7xn+C6b01+Ki97ZW1Aq6r9ogsT8rVkucXe0RHSXNzYVSbGAGEahf
	G6+z86Iamd80O7AMePGafaNujuanwXWHMRy
X-Received: by 2002:a05:600c:2d4a:b0:48d:5c1:bc47 with SMTP id 5b1f17b1804b1-48d05c1bda8mr39466325e9.15.1777887270677;
        Mon, 04 May 2026 02:34:30 -0700 (PDT)
Message-ID: <57233a5d-3944-433c-a7c5-a1a491a2c1dd@suse.com>
Date: Mon, 4 May 2026 11:34:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 9/9] x86/mwait-idle: Add C-states validation
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
 <d13912c9-8820-44e7-8aad-d8ee9ea17980@suse.com>
 <aevBUh77IeMuXjw4@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aevBUh77IeMuXjw4@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1777887271-45F698B7-55AD6BBB/0/0
X-purgate-type: clean
X-purgate-size: 1886

On 24.04.2026 21:15, Roger Pau Monné wrote:
> On Thu, Mar 12, 2026 at 05:58:21PM +0100, Jan Beulich wrote:
>> @@ -1589,6 +1594,41 @@ static char *__init get_cmdline_field(ch
>>  }
>>  
>>  /**
>> + * validate_cmdline_cstate - Validate a C-state from cmdline.
>> + * @state: The C-state to validate.
>> + * @prev_state: The previous C-state in the table or NULL.
>> + *
>> + * Return: 0 if the C-state is valid or -EINVAL otherwise.
> 
> Hm, I know we picked this up from upstream, but this function would
> better return a boolean, rather than 0 or -EINVAL.

I agree, but I didn't want to deviate from their code purely for cosmetic
reasons.

>> +static int __init validate_cmdline_cstate(struct cpuidle_state *state,
>> +					  struct cpuidle_state *prev_state)
>> +{
>> +	if (state->exit_latency == 0)
>> +		/* Exit latency 0 can only be used for the POLL state */
>> +		return -EINVAL;
>> +
>> +	if (state->exit_latency > MAX_CMDLINE_LATENCY_US)
>> +		return -EINVAL;
>> +
>> +	if (state->target_residency > MAX_CMDLINE_RESIDENCY_US)
>> +		return -EINVAL;
>> +
>> +	if (state->target_residency < state->exit_latency)
>> +		return -EINVAL;
>> +
>> +	if (!prev_state)
>> +		return 0;
>> +
>> +	if (state->exit_latency <= prev_state->exit_latency)
>> +		return -EINVAL;
>> +
>> +	if (state->target_residency <= prev_state->target_residency)
>> +		return -EINVAL;
> 
> I'm not an expert on C-states, but isn't this checking against the
> previous value kind of defeating part of the purpose of the command
> line?

I don't know. The question would need raising to the author.

> Also, it might help to also write down those limits in the command
> line documentation.

What do you mean there? Some of the values are universal, but some
checks are against model-specific values. I don't think you mean to
enumerate them all?

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 10:35:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 10:35:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299655.1574204 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJqe5-0005KT-0r; Mon, 04 May 2026 10:35:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299655.1574204; Mon, 04 May 2026 10:35:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJqe4-0005KM-US; Mon, 04 May 2026 10:35:24 +0000
Received: by outflank-mailman (input) for mailman id 1299655;
 Mon, 04 May 2026 10:35:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJqe3-0005KG-O7
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 10:35:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJqe3-00FhK1-3w
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:35:23 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f87661-2eae-0a2a0a5409dd-0a2a4504b17c-16
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 12:35:22 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8766a-1dec-0a2a45040019-d155802ee9e5-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 12:35:22 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-4891d7164ddso19443815e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 03:35:22 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-44a981ded99sm25482246f8f.18.2026.05.04.03.35.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 03:35:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777890922; x=1778495722; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iFeFbHt16mOzgiyoIATFoHaNCn8YVz4jgJIMEFh5n9I=;
        b=Cnv4eYPyIqDMv0I1x+7XrNdpHszRJunfwQADj12wx462scHQ1TR9gq+wOtFfOPqkRW
         OjktzpqlPtZVFKQGIVaRSXTJeAU/Dy2BMpgLWCNjtEbKfC6USROvpyML097q+kIaYQmo
         JH19blUzn7z/j9ESN3NfUCqtrdj6rvqHb0BkboPxnAdE9pATj5EBEqpk56S6uCDTOI5v
         EIAeynTylBXh2Z5MC8EUYSLFLdspugjlVzZ3oJim6ve3XWEwTXnumxhgwSJtc4fLubYW
         pXrpbiwEBws/bNseVY779MDlC0MhtXX/DHKW8PBdDlq+eRQBAd3wWkiKK/1n96yLGGkl
         mhag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777890922; x=1778495722;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iFeFbHt16mOzgiyoIATFoHaNCn8YVz4jgJIMEFh5n9I=;
        b=oenGEmGHi7bO+KAlXkD5EQyNl8DTTlgU83Bwdy6a10pYM5JTMrWh+xRw08qzepwFQZ
         0qAgzV/lnK7Xh6a+zcVv7C8OnRE0oJ837EjWzgHiIss+ZV7vfA8BoKYF/boGSoKb5XWE
         bfGdF16D2PTPOWk9Fz3XBdSyRcUZ9ADKHBt0rgEA5lmoL0s2U3yUW56oS0VqVMMkwFy8
         4ItVK1hL8hqEFtyo9AU98ygcLz58DNIxAYnUMfRHdqSwKwZ8Xrkd8iQun2nx/bwL+ZSh
         lbrlH3A7cACUxE+tlbOteshLPEMzYFMJUhwacsKRBBSWrdyKbEGGZTCCiPUSnlfuDgWs
         jG/g==
X-Forwarded-Encrypted: i=1; AFNElJ+w9QDrreI9SvaXHQ9zJ9hpx4gXRK58LX5ZHuoWBjvvUVq0RcUKdAtcSMLADzL9MU3Gfm4MAzdRc4g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyErWVHUHMda76r57OR52Ezd/D5Ak8uwPqC7mWzHFBSxC6xOvjf
	HyhQ983+GYMGwGJWZ2JrJ2JfSHc9CqbwKGieF8TFzwhR3AZQ3Zfowx2C+HVvo5LDjQ==
X-Gm-Gg: AeBDieuayANFJ2TkEo3Vf7h/+UHiu1iRQwMBnz5SIkM/HSeBiYcTLHYyyfoHG1tFM7Z
	U3brjRSYUoomw8jT2QEU2BMyOqWpJppi3pW1ZsEjFgoDqVRwhQY6aCa4rY48loGXMEaQQyvO4vm
	rEDnK51c5oQAe9weHJRVOttaC8SbQwnOr9j3hghhG92pqIDmhB88YZ+fXLWwYU/7Y7f6mD7cDce
	Eo3WZkM/zOUoA5JzE1CN+skUOopG7CRqKPvMmgx67SeL7l1oMB7XbFZNSb3+CgFdYlwkDL7UH2T
	01DFv0xHrMXK8cPhl6s/cDpZq6z9XJ1mlGcXDMtNVCctH9ipo8YOItZyPEQZK9AotVIZTZDbO03
	0isnXJd4ouKD3kaNfxf72WFm86nNhIJIPs6xx3SgKmzS9sOo2eXa/oO47LSyRzZ+jRjHF93KzC0
	uGxcbiY98NrTO9ej9aHYM4N9wsouWm0/o69NDtzajSppkdMLYP6ZSPxLoEaEtHMMFN7jfVfNzc8
	Nj9gQVNgAf2Rd/OaCuqProIeq4hw1P3ZvGe
X-Received: by 2002:a05:600c:1386:b0:488:ac01:72de with SMTP id 5b1f17b1804b1-48a988716c5mr143453095e9.5.1777890921037;
        Mon, 04 May 2026 03:35:21 -0700 (PDT)
Message-ID: <085c1968-6863-4948-b1e1-7b0bad2bc1ec@suse.com>
Date: Mon, 4 May 2026 12:35:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/amd: Drop allow_unsafe parameter, tune down XSA-9
 mitigations
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <1776877188.8631fc262581453bbf619ec5b2062170.19db6223737000f373@vates.tech>
 <60c94a2c-a414-4ba5-b22e-54beae3c25f3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <60c94a2c-a414-4ba5-b22e-54beae3c25f3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1777890922-28B733FF-6534CF25/0/0
X-purgate-type: clean
X-purgate-size: 1987

On 24.04.2026 11:18, Andrew Cooper wrote:
> On 22/04/2026 5:58 pm, Teddy Astie wrote:
>> XSA-9 mitigations prevents Xen from properly running if a affected CPU
>> is detected. While the vulnerability has no mitigations (aside not running
>> 64-bits PV guests), it's only outcome is a DoS.
>>
>> There is no real point in preventing Xen from working here and it would
>> be preferable to just log the vulnerability to the user so it can act
>> appropriately.
>>
>> Also reword the errata message regarding that it only affects PV64 guests.
>>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> ---
>> It's hard to tell whether or not we would want to drop allow_unsafe, but
>> currently, Xen is allowed to boot with XSA-304 mitigations disabled
>> (intentionnaly) which has a similar outcome than this one.
>>
>> From a user standpoint, preventing the system to boot or starting guests is
>> too extreme and would be in practice seen as a bug, even if it's justified
>> policy which can be overriden.
> 
> There is a lot of history here, including for why the panic() is
> actually completely unreachable.

Deliberately so, as described in 0c7a69665110: The change done allows for
a trivial 1-line change restoring prior default behavior (in distros which
may want this).

> I actually have a very similar patch, from almost certainly more than a
> decade ago.  The difference is that now I'm a maintainer and in a better
> position to say that this logic really shouldn't have been taken;
> certainly not in this form.
> 
> Perhaps an easier justification is that there have been issues like AMD
> erratum #121 prior (e.g. Pentium LOCK CMPXCHG) and post (Zen1 has a
> related errata, can't remember it off the top of my head) that went
> unaddressed.

I agree it would be better if we were consistent in treatment of errata
(somewhat) similar in effect. I'm less sure which direction we should go
in order to achieve consistency.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 10:37:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 10:37:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299665.1574214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJqgB-0005wt-GC; Mon, 04 May 2026 10:37:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299665.1574214; Mon, 04 May 2026 10:37:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJqgB-0005wm-CS; Mon, 04 May 2026 10:37:35 +0000
Received: by outflank-mailman (input) for mailman id 1299665;
 Mon, 04 May 2026 10:37:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJqgA-0005we-79
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 10:37:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJqg9-001yJ3-JF
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:37:33 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f876ed-bab6-0a2a0a5309dd-0a2a450ba2aa-0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 12:37:33 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f876ed-212f-0a2a450b0019-d155802acc05-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 12:37:33 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-48984d29fe3so58396125e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 03:37:33 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a824f9f0dsm304990745e9.15.2026.05.04.03.37.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 03:37:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777891053; x=1778495853; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jFBFUxRRnx2d7iC3ohvdmBuZ958Fk6ZgZe3pZ58w8n0=;
        b=CoxgN7ncoahAlSzH/ZAIoNEcgt0WpTXu20kjauPZXpWrcOvi2tDuYM5Aq8wikLL11l
         MuODMOohrbOkHquI0L/QWBiub75PsnMDxiSkHcGpAPQWgknWjspPh9Wv8MSAaznX/7Xl
         a7V4ebEVqRb15vw5xf7xH1OwwqTHddLFRoF4SWLB/4IK7dSjvBSVRJgg8ruZqwq2ddxp
         MjrB/ksAer1aQ6gDslHyJMGlXd+dqpSldFb7gQMSUE5/HKuZb8Bo+1ZLC8iJx3Hvk8Us
         O+lTbzh1TMpiQVAzBnV4eAJSHyWgzwvm1bSCbyYi0GRM8D/US0lfCctxi6fyVzEMarng
         I6eg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777891053; x=1778495853;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jFBFUxRRnx2d7iC3ohvdmBuZ958Fk6ZgZe3pZ58w8n0=;
        b=e2otKE2eRL+rATgfdYfrmqs3HZToX94ossVvHLLSteKpFtNHOa6d3rYwZvRtPxIkOQ
         sr4LoVlgF8gJ97uKVNn7rDO91X8By/zcxiomaRTJy2vZPhWn9Ngcd1YFyLZh661cG1z1
         0hL8xSYLt7cSrA6Kgn6ImjG55vzLDYoe9bUZLUtOwncvEajWLc97pCr9kEkbrNImBYSE
         /o8DF4QfNyyXc9m5b1A2+9SlN2pGvLIfOJdAsOm3i7/kvRcwaaYSW/aQUsWsRHHoHD6g
         LB94wx5n2UZtJ2s0DMJH9Kg0Jbt8v8JvhJL/lWrNZQzCek4mf/ykCTEH3/2x4Kn9ve6A
         hAYg==
X-Forwarded-Encrypted: i=1; AFNElJ8eiXi7gywoFzdSeRoqhCVdBnSO8P5ZxuYG/Ly0WUV7J96n46ra+qQdqmTlL3nt8qTt4/1AdfjzRiw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YylAO3AYzedHZQaKeWsjW59EAWulhsY0RRCvy4Sl7/XWIvRiKHk
	rY80wBMmh5Qr/PMIOyFKTJx+/B1E313VbJhQrZIeapScRReat2ltRm2jH6k+SFhL4g==
X-Gm-Gg: AeBDieuv4S5vwG6cBe6ir3n/KBK3QvrwGWIQAS1AR1og6QYpK0FUm2UM1Upu2sOAu4L
	UcG4oQalMEdRc9Av6vRt4PSdnlR5wclnjEQXEaRAky3G9NyB1wQSXKdXd8yBQXuQ54DaVNhUFdL
	Z0MWvUPa7zXY6teUEtDV+ZxvkFtDO9KrAceKG3ogl0DpUA4nOSp7/3IhK+QMBJMdB70S3iPvZPe
	wNfcZ8riOi+WdJ8hWkqUD+9rDxS9TO/g8CeMkeHW6n3PYQQWi8mJcEUsp6Qge91KPqhTC7KjNnV
	FNLIvFHCVWlrP2X4e0+QcdnpkqZxndKQ5j26TmxJ6amYQrpD9NSoNOYaUsBojgHxXBz+5R8wfU5
	auYFQzEBujAsXdZ5qzSAhj02kfp8W/qJwofm/ZKE1tqveflK0db/YTjR+0pZATcBK36eWjGiMPo
	K31oG4Pg8jW0aSoyj0DAKx37D2LrmINqODKoAKpaSAimQSk2mMQfYdvfrTYcfhYeRQNmXkkAk7G
	wjEBnbQJbL4gW5Syre2uyeLaA==
X-Received: by 2002:a05:600c:4445:b0:488:9ed3:1492 with SMTP id 5b1f17b1804b1-48a986360b6mr148808015e9.10.1777891053002;
        Mon, 04 May 2026 03:37:33 -0700 (PDT)
Message-ID: <fda8cb13-4ac6-4575-aba5-b2fcc3b4e1f9@suse.com>
Date: Mon, 4 May 2026 12:37:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/amd: Drop allow_unsafe parameter, tune down XSA-9
 mitigations
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <1776877188.8631fc262581453bbf619ec5b2062170.19db6223737000f373@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1776877188.8631fc262581453bbf619ec5b2062170.19db6223737000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1777891053-7ED77F3B-DB7FA3D0/0/0
X-purgate-type: clean
X-purgate-size: 1244

On 22.04.2026 18:58, Teddy Astie wrote:
> @@ -1205,19 +1201,12 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
>  	if (c->family == 0x10)
>  		__clear_bit(X86_FEATURE_MONITOR, c->x86_capability);
>  
> -	if (!cpu_has_amd_erratum(c, AMD_ERRATUM_121))
> -		opt_allow_unsafe = 1;
> -	else if (opt_allow_unsafe < 0)
> -		panic("Xen will not boot on this CPU for security reasons"
> -		      "Pass \"allow_unsafe\" if you're trusting all your"
> -		      " (PV) guest kernels.\n");
> -	else if (!opt_allow_unsafe && c == &boot_cpu_data)
> +	if (cpu_has_amd_erratum(c, AMD_ERRATUM_121))
> +	{

Nit: Misplaced brace (it's Linux style here). But really I don't see why
braces are added in the first place.

>  		printk(KERN_WARNING
> -		       "*** Xen will not allow creation of DomU-s on"
> -		       " this CPU for security reasons. ***\n"
> -		       KERN_WARNING
> -		       "*** Pass \"allow_unsafe\" if you're trusting"
> -		       " all your (PV) guest kernels. ***\n");
> +			   "*** This CPU is affected with erratum 121"
> +			   " 64-bits PV guests are able to cause a DoS (XSA-9) ***\n");

Why the change in indentation?

There's also punctuation missing between both parts of the log message.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 10:45:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 10:45:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299672.1574222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJqnd-0007Uz-4m; Mon, 04 May 2026 10:45:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299672.1574222; Mon, 04 May 2026 10:45:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJqnd-0007Us-1B; Mon, 04 May 2026 10:45:17 +0000
Received: by outflank-mailman (input) for mailman id 1299672;
 Mon, 04 May 2026 10:45:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJqnc-0007Ul-2Z
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 10:45:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJqnb-005Qt3-0T
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:45:15 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f878b4-5cb7-0a2a0a5109dd-0a2a450487b0-12
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 12:45:14 +0200
Received: from [209.85.221.48] (helo=mail-wr1-f48.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f878ba-1dec-0a2a45040019-d155dd30dc50-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 12:45:14 +0200
Received: by mail-wr1-f48.google.com with SMTP id
 ffacd0b85a97d-44a044cb827so2550517f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 03:45:14 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-44a8ea7d035sm23137117f8f.5.2026.05.04.03.45.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 03:45:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777891514; x=1778496314; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ozdnvLUBDYRoeiwhZVo7iyYPpMTn3OxsGkSSMKZ/6UM=;
        b=FeqNC0XeiyMlc8sZklwNmzceNLbOOiE47o3Zt0fOcfEWzlrhxOsxr3jtzwdDEaqNk0
         fCmlajdZ3c78+WUxu8Q9I/UM9lyEL0ZmZeLqP7Gw2OCE6cbjZI2TKhBPBjreFa/U5mgY
         I4uDeq+AwMxWtlcCtFTzbamsHBAf4kALYgmTaeiXkCEvahdaMi3tJmxyzVkJ+Kw9zpXM
         TJXHAd6LB03jBwhgpGnQQq+9TX1bVHNm9SjYhcVai80ssuGrAoTsFfFDiZ+vSbZQBFmQ
         KTBORbJ4qtuUDZadgYCEEbbxbf6JF2rE3TD2dnEx6s9vQnNujNQ0pnx5r8NE3iBYOWp2
         Rk3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777891514; x=1778496314;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ozdnvLUBDYRoeiwhZVo7iyYPpMTn3OxsGkSSMKZ/6UM=;
        b=sYjw6TuJQbZEQV568dwdf0njyUGaUpy/gz0TCScZGq8a4NdyoBpTHd5iaNVrLuyz7R
         YnluI7Cf95RL1DvFW95YenYIonilVnCCQ6yWerVjPj3Z5lK4SqFduNK7840JNfrdaX+u
         c5e6ixtioV7mlAsfBHraYyY7qDkcTngKN1eF7lPVNgZnYhX0boCpuRvi/v18NbPVjZNt
         NFY3H5/YuzTupRtwP52bgTRYRgdkLe6+P+jXmwHkZIsw+VUoQ1D4miFvPMiiRxnpYMy5
         pRLXakOtf8UYqOFwGVLHUVhyCppsI0N/Y/iwdMpZLsZntaaqTYUaoGpssw+dpKYK4KCJ
         /9nA==
X-Gm-Message-State: AOJu0YySuntRwjyV34XBMzTJY/JU8Ha0B4yercZyGIYd3W5W76gEPC2x
	84YrT9ASMapzdz+c/pwYJ8ia3ZzYlod7TjrY1j/kCao0NE5zNj5L/Nx/Et5HIBAvyQ==
X-Gm-Gg: AeBDievOY9aTlUr4Q0jbYyBYQaJe140Na/J1XfdK9X3cyFjHRvuNu332jytIJlBrp/G
	witjjnNrDTDK7opuqdLBcCsDUVRan3/bmj9FgmT3EsMVdAnfEqwGLn1GISyaCtV1++GA4iN+7Y9
	XzSSZfFNbKj/hqlN62nCM+8VHgvGLYiI2KxVYOhHfn6EHiXEqJs4vC1AsKOfd6lI8MGqx6ExMRw
	DvchIIoCeE8LeDMl2ZgEJAlirmdjJlaRMD5zhnCrz0D/O8s5rYFuTVn7SxfdaFmEr2RGhOvOuZo
	THidAk1klMVY51MZwnaFkDAVEy5hn3rw85pWPK7iiU67fPzF3XNsThfIKfvkKqbCI7WzvuvclL2
	Ax+lKF5L+aM5dArlAmUNowdhUnfO0zbuIN1LpgNR22xOIQFdSvQuzLWawIi/a/POtnzQAhaLVSF
	a5nX1z7wBUFrmJvh2pzJEx7gw++aR+jPTZK2hP9TeNcp8othDJunf/MDfTxjZrnm0GlLyEdIw5O
	4T7wJ4kV8FTOCseJFfaQc2vew==
X-Received: by 2002:a05:6000:220e:b0:43e:a8ad:975e with SMTP id ffacd0b85a97d-44bb66d6554mr14946138f8f.27.1777891514027;
        Mon, 04 May 2026 03:45:14 -0700 (PDT)
Message-ID: <99756799-27be-45ae-99be-eae5b0c41a11@suse.com>
Date: Mon, 4 May 2026 12:45:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/17] Q35 initial support for HVM guests
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Thierry Escande <thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <afBmWSFsyrwy_Ru1@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <afBmWSFsyrwy_Ru1@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1777891514-2B96A3FF-1F20E47F/0/0
X-purgate-type: clean
X-purgate-size: 1038

On 28.04.2026 09:48, Roger Pau Monné wrote:
> On Fri, Mar 13, 2026 at 04:35:01PM +0000, Thierry Escande wrote:
>> This series introduces initial Q35 chipset support for HVM guests, based on the
>> patchset at [1] by Alexey Gerasimenko.
>>
>> Basic support means that this patchset allows to start an HVM guest that
>> emulates a Q35 chipset via Qemu and implements access to PCIe extended
>> configuration space for such devices emulated by Qemu.
>>
>> Support for PCIe device passthrough is not implemented yet. This is planned but
>> implies modifications in the hypervisor and the firmwares, mainly for the
>> support of multiple PCI buses.
> 
> Why do you need multi bus support to expose PCIe capabilities?  I'm
> not seeing the relation between those two.  You could still expose a
> single bus on the MCFG table.

Can a valid PCIe topology be expressed with just bus 0? If an endpoint
to be handed to a guest isn't root complex integrated, would it be valid
to make it appear so by putting it on bus 0?

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 10:58:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 10:58:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299684.1574233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJr06-0000xx-7G; Mon, 04 May 2026 10:58:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299684.1574233; Mon, 04 May 2026 10:58:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJr06-0000xq-48; Mon, 04 May 2026 10:58:10 +0000
Received: by outflank-mailman (input) for mailman id 1299684;
 Mon, 04 May 2026 10:58:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJr04-0000xh-Bj
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 10:58:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJr03-00166t-9G
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:58:07 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f87bb1-e002-0a2a0a5209dd-0a2a4507b824-20
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 12:58:07 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f87bbe-229c-0a2a45070019-d155802bb52a-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 12:58:07 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-488b150559bso26431175e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 03:58:07 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8ff04927sm91439065e9.36.2026.05.04.03.58.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 03:58:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777892286; x=1778497086; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LKIQ3agNmn+xFm+fXKIGvWBnaZMUiberlBJm7WNgPCI=;
        b=ObIGMd24PjD8SXfC5mIPtsSomvTYrEBKVQm51GUhL+AtiCg7VvZEufKWYCnWNyWFST
         CnknArXTsYCKlF/OkK9YrlMvBF1HTsaUE1wvtAmtpQB6gj3JEK9aYwNAjm/NGiDzIzhi
         ov75MTk9bz9S011QWgP2ZQGzz9s4kOCHYWIoFraRFa1Qxj+PspN25yITKBF44KvyVJSi
         RB6HkpVv+LHOUKTICXoYJPjeDmig5Z6d2ZHEHtifSyQPyYwErFIh2Coz/vEuG3VOG4R3
         eKO2eqUJ71KaOETtK4Yw+f95gKT1Zq7iUNHX/tJ0tBwRDBS9JOJukhS+Pj+30Vw2IjDZ
         /VIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777892286; x=1778497086;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LKIQ3agNmn+xFm+fXKIGvWBnaZMUiberlBJm7WNgPCI=;
        b=WvQ14JFp7ULTkaVuQz+1JasAKtk/qEO5OJnM0MzJw7hgAMp0amuzkmd+YIZ7vMsgH4
         dhxdipZ446k3rBldtRcpdiy/UqkTyp4y45q813mIGiQJ05fXBYonDYIdRr5+1dhLFpe+
         hPGOg8y/Hpc9msqipcNEbC/8prj/iT7vQmxjuX+vmuTwiHG/gjzBibb4L0AxwN0ClmtM
         ulNBnX6tlEYL0b/egu+Cfo5wKKYHqVWurttGd6vMTjo8sJ/QGLPLyEm0aXZpa8meAdCz
         9trZip9MvVNRhxHVYjNcdfGDwafK7Qudt6kHNXip4kcmIQsy/bQDTk7vFB0i70BfqkeS
         z4wQ==
X-Gm-Message-State: AOJu0YysNq4/n/Odbz/kEaTWDfXR6WbNXZ8x12Ziyx4EDkSUPghBZRTB
	Z8otkW2t4+47dZbXh7h/BTunZtlF2nylc2CXK+rtI36Gg2eK8sZ4vRmOJ86BXbfGCg==
X-Gm-Gg: AeBDietO1OVTRqmLaRQ0Dq0mGyWtUCedaaRnwPwigbSuntTGVeRPC0TQ4iOJdgPvXf8
	2gKXOwA3qVvHQBM0V6hzjbsCz10/3urxYE78ng425CkXjbzbtsszd0+Gnp/pXYPLNLIN58vLJ46
	D3VfMV/E51dGhNdZo6M9Si26adhJhaMJAxgtLigCsPgIBTqKcy4wpjoYstEYxy+JnMzt3c1A63R
	ccpRoLdrTUzDLSb7rFswJp0vlIIzoYtP4qSifNXF/SC2O2U/Sa7jGhdTOl2BnsHKxOvoko1B/ik
	RzRaCxRKVCaYGVvPsGj1xzpmSWkrvKJel9VaEmUIFwLWzV5AOk4Frb4psIPLpF1za5KSCtdkgBP
	KG7gEJCmvQ+JNqY/8gM9Svh3ZUimr08Fz2tbzKPeadt/umTbMAcX9EJy/b9HZOBUtk4SQjSKZk/
	D6kFlwnwk4rn9jXsXB5W3/Wf2d2aufUCMPnvGViCVTRoLYddv0j0MDqUTwKItxn47aYNjg7SYtN
	+Xz20XikSnYo3UjWIu2l095+Q==
X-Received: by 2002:a05:600c:8906:b0:48a:5574:3a5b with SMTP id 5b1f17b1804b1-48a9867a7dfmr106922375e9.27.1777892286525;
        Mon, 04 May 2026 03:58:06 -0700 (PDT)
Message-ID: <40c2ea90-e3ab-4d4d-b8a9-8d8efb2869ff@suse.com>
Date: Mon, 4 May 2026 12:58:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/17] hvmloader: add function to set the emulated machine
 type (i440/Q35)
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Alexey Gerasimenko <x1917x@gmail.com>,
 Thierry Escande <thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <20260313163455.790692-4-thierry.escande@vates.tech>
 <afCOS0Ufbk790t8J@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <afCOS0Ufbk790t8J@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1777892287-16C64C48-961970F4/0/0
X-purgate-type: clean
X-purgate-size: 2888

On 28.04.2026 12:39, Roger Pau Monné wrote:
> On Fri, Mar 13, 2026 at 04:35:01PM +0000, Thierry Escande wrote:
>> --- a/tools/firmware/hvmloader/pci_regs.h
>> +++ b/tools/firmware/hvmloader/pci_regs.h
>> @@ -107,6 +107,10 @@
>>  
>>  #define PCI_INTEL_OPREGION 0xfc /* 4 bits */
>>  
>> +#define PCI_VENDOR_ID_INTEL              0x8086
>> +#define PCI_DEVICE_ID_INTEL_82441        0x1237
>> +#define PCI_DEVICE_ID_INTEL_Q35_MCH      0x29c0
> 
> In Xen we have a separate file for vendor and device IDs, called
> pci_ids.h.  Maybe it would be better to use a similar approach in
> hvmloader, and keep pci_regs.h only containing PCI register offsets.

Can't hvmloader simply re-use Xen's header(s)?

>> --- a/tools/firmware/hvmloader/util.c
>> +++ b/tools/firmware/hvmloader/util.c
>> @@ -22,6 +22,7 @@
>>  #include "hypercall.h"
>>  #include "ctype.h"
>>  #include "vnuma.h"
>> +#include "pci_regs.h"
>>  #include <acpi2_0.h>
>>  #include <libacpi.h>
>>  #include <stdint.h>
>> @@ -648,6 +649,47 @@ void __bug(const char *file, int line)
>>      crash();
>>  }
>>  
>> +machine_type_t machine_type;
>> +
>> +void init_pc_machine_type(void)
> 
> Since detection is done based on PCI device IDs, it might be better
> placed in pci.c, and so you don't need to include pci_regs.h in
> util.c.
> 
>> +{
>> +    uint16_t vendor_id;
>> +    uint16_t device_id;
>> +
>> +    if ( machine_type != MACHINE_TYPE_UNDEFINED )
>> +        return;
>> +
>> +    vendor_id = pci_readw(0, PCI_VENDOR_ID);
>> +    device_id = pci_readw(0, PCI_DEVICE_ID);
>> +
>> +    /* only Intel platforms are emulated currently */
>> +    if ( vendor_id != PCI_VENDOR_ID_INTEL )
>> +        goto error;
>> +
>> +    switch ( device_id )
>> +    {
>> +    case PCI_DEVICE_ID_INTEL_82441:
>> +        machine_type = MACHINE_TYPE_I440;
>> +        printf("Detected i440 chipset\n");
>> +        break;
>> +
>> +    case PCI_DEVICE_ID_INTEL_Q35_MCH:
>> +        machine_type = MACHINE_TYPE_Q35;
>> +        printf("Detected Q35 chipset\n");
>> +        break;
>> +
>> +    default:
>> +        goto error;
>> +    }
>> +
>> +    return;
>> +
>> +error:
>> +    printf("Unknown emulated chipset encountered, VID=%04Xh, DID=%04Xh\n",
> 
> We don't usually use the h suffix in hex numbers in hvmloader, it's
> more common to prefix them with 0x, so I would recommend to use the %#06x
> formatter instead.

I'd generally advise against use of # with a width specifier, as that ends
up awkward for 0. That is, %#x is fine and generally to be preferred, but
for a specific with it might better be 0x%0<n>x (with n=4 here). Arguably
here we don't really expect either of the values to be 0, so the suggested
use may indeed be okay in this case (while still introducing an example
which later may be copied elsewhere without much thought).

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 11:09:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 11:09:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299692.1574242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJrBC-0002im-71; Mon, 04 May 2026 11:09:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299692.1574242; Mon, 04 May 2026 11:09:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJrBC-0002if-40; Mon, 04 May 2026 11:09:38 +0000
Received: by outflank-mailman (input) for mailman id 1299692;
 Mon, 04 May 2026 11:09:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJrBA-0002iZ-Ml
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 11:09:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJrB9-005XRw-JW
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 13:09:35 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f87e6e-e002-0a2a0a5209dd-0a2a450adfcc-4
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 13:09:35 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f87e6f-56b3-0a2a450a0019-d155802ee4e2-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 13:09:35 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-488ad135063so35221425e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 04:09:35 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-44b63d78692sm21473485f8f.27.2026.05.04.04.09.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 04:09:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777892975; x=1778497775; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GV6gOGLf9tk9qH5BYp/3y7eNhugFp4R5MsRVDKmonG0=;
        b=SjEh739bED3yPUfeutJZAzvBSjXY1hbe7b+vYrbXE8Lg/ui2zK546fKR0qGilumQSS
         ATPQcDsMeUUh2Tw6zl23MQKL1OToyOrbUKwgcLSdnqB53u8CYSMrsUB29L2uS479djlE
         i+hHgxNH3kY9ITAklZoQfGgmjOQn59XI3J/MD2C2CCgGbfEAZW3U21RxQSwEQlKT8NdM
         c3J2RsE1+AcZyu+hmH3m0jIJBsBF3nh8ZzklMirEKBOO4zu1bJSNPGVpxyKVetoBIDp+
         nXPUgzOFlo+VzINebmCuU0u+KLDD+gtq5XGgH6RBm/K59FnfDvLMb3irHf0DSs24llyz
         YKmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777892975; x=1778497775;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GV6gOGLf9tk9qH5BYp/3y7eNhugFp4R5MsRVDKmonG0=;
        b=DEetxSdNhnnJUAdt1w9tget4TnNk2BO0fj4eBi8Tj+eBPiJoBW/cyZwKaAr3TWXlnq
         eChtYfZx4LqXy0VhUJIB179z7CWvx9kVjj1eb0yD6FCoW4uLm29GK3pue0bSPXHBvxik
         QA1rtKcTRHpSTN5tWwc/wqY1xTUQ9QjJt479LCFADEMRFeL4YLldvTN9uNT0XMnzSB9N
         7U/cHwbZdTyWNIzJw4JoW87pPK/cArZwkkcb77Fbb7KW3beDPwO0dttzpGXQV0Z3bphF
         MMuiA/I+Qpu3iD6NSTnI92b5XJ7kvqTuCqEcauEI/2BUbb6FXUtIXDWF7Dq/X4GJSH+R
         AvQw==
X-Gm-Message-State: AOJu0YwxZnXml64C1G3o0JT+47zmOPo6DH8CDKrR8Ao57kjJb7eKOwSQ
	+IYN4zMc+cpMtwXDSpg50lFgDW2mVHZS5PC3crx8n5t4xfK16Y4fFhJw0RAOstex1g==
X-Gm-Gg: AeBDiet9x2OIEzypDuH9LaDe5VDwZwU6lB3xLECka3Bq7v4vbBkKmxz10CYRUz3NJjv
	P5D9CuMrHKG+poJE9/EzGqh6IRWUQcVc7UEE0l4+UIisZpicXxm46xyHrWx3WvA8Q25ZiWWsaRc
	bKqzVsZF5y1rUgPPAPVf7P2W0zMHmf0esR5cf/prUoakKo2zt6dk0tJCKM7EXXpE/4ehIXf5D2e
	8moof5kErMb3jvT6ZlNApPh1vf4SmAqY07G2zHck9p072ifJNDNjg59HRAwK1JF+048X0w6r0GE
	dqgAB5MOnS3npotD7kFgCGLMZ9euzA2E1+hi5NaaCqsvWyGl9AhIyFLASf3lfOA7sfbvyFMraZZ
	EgkXJ/Tsks3iijqKsZnfEClXuThXS351saYYq76t+2oTJZdFrQxv0x+tkW0YSwbuTQK4ARZJ9HB
	qKYWfwQCejXvdU0ZCv6xf3SEwgEbQRhdYo7WM4b/6HILxO57bSj85v2CPNPDMjbKLyaYcMWI7wj
	ieP6Ep+s1C6n9deOl0Y8CFrTg==
X-Received: by 2002:a05:600c:628d:b0:48a:56de:d620 with SMTP id 5b1f17b1804b1-48a988a223emr161931735e9.14.1777892974787;
        Mon, 04 May 2026 04:09:34 -0700 (PDT)
Message-ID: <f0bcede9-159b-4440-8bae-f6784da3e14c@suse.com>
Date: Mon, 4 May 2026 13:09:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/17] xev/hvm: Add HVMOP_get|set_ecam_space hypercalls
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Thierry Escande <thierry.escande@vates.tech>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <20260313163455.790692-10-thierry.escande@vates.tech>
 <afC9XAtGOkug0qFB@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <afC9XAtGOkug0qFB@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1777892975-453638B7-FCB79E61/0/0
X-purgate-type: clean
X-purgate-size: 2590

On 28.04.2026 15:59, Roger Pau Monné wrote:
> On Fri, Mar 13, 2026 at 04:35:03PM +0000, Thierry Escande wrote:
>> --- a/xen/arch/x86/hvm/hvm.c
>> +++ b/xen/arch/x86/hvm/hvm.c
>> @@ -5195,6 +5195,58 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
>>          rc = current->hcall_compat ? compat_altp2m_op(arg) : do_altp2m_op(arg);
>>          break;
>>  
>> +    case HVMOP_set_ecam_space: {
>> +        xen_hvm_ecam_space_t ecam;
>> +        struct domain *d;
>> +
>> +        if ( copy_from_guest( &ecam, guest_handle_cast(arg, xen_hvm_ecam_space_t), 1 ) )
>                                 ^ extra space, here and at the
>                                   closing parenthesis.
> 
> Line length is also past the 80 character limit, same below in
> HVMOP_get_ecam_space.
> 
>> +            return -EFAULT;
> 
> This operation (and the matching get variant) needs an XSM check.
> 
>> +
>> +        d = rcu_lock_domain_by_any_id(ecam.domid);
>> +        if ( d == NULL )
>> +            return -ESRCH;
>> +
>> +        if ( d->arch.ecam_addr ) {
> 
> Coding style, opening braces should be on a new line.
> 
>> +            rcu_unlock_domain(d);
>> +            return -EFAULT;
> 
> This would better return -EBUSY

I agree, yet I'd like to suggest that this may want changing further: If
one can "set" the address, shouldn't one also be able to "clear" it? That
could (pretty) naturally be expressed by ecam.addr being 0 in the request.
Which would then require permitting non-0 .ecam_addr in that specific
case.

>> +        if ( (ecam.size >> 28) || (!ecam.addr) ) {
>                                      ^ the parenthesis here are
>                                      unneeded.
> 
>> +            rcu_unlock_domain(d);
>> +            return -EINVAL;
>> +        }
>> +
>> +        d->arch.ecam_addr = ecam.addr;
>> +        d->arch.ecam_size = ecam.size;
> 
> I'm a bit worried about a domain being able to set it's own ECAM hole,
> assessing all the side-effects of this might be complex.
> 
> Won't the code here better check the region passed in the hypercall is
> indeed not mapped in the p2m, so that trapping of ECAM accesses works
> as expected?
> 
> Also, how does the ECAM hole get setup on native?  I assume there are
> some magic registers in the PCI config space of a platform device that
> the firmware uses to position the ECAM space?

That may even be outside of any device's config space, e.g. custom MMIO.
I didn't check, but I guess that may also be the case for Q35.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 11:11:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 11:11:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299702.1574252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJrD7-0004Ej-O5; Mon, 04 May 2026 11:11:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299702.1574252; Mon, 04 May 2026 11:11:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJrD7-0004Ec-Jh; Mon, 04 May 2026 11:11:37 +0000
Received: by outflank-mailman (input) for mailman id 1299702;
 Mon, 04 May 2026 11:11:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJrD6-0004EU-Py
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 11:11:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJrD6-008du0-5K
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 13:11:36 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f87edb-e002-0a2a0a5209dd-0a2a45019314-18
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 13:11:36 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f87ee7-c1f2-0a2a45010019-d1558030c577-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 13:11:36 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-488af9fdaa7so19585905e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 04:11:36 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8fee325asm94758735e9.7.2026.05.04.04.11.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 04:11:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777893095; x=1778497895; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hlCTRef2XAgV4wftupmArr2/pP1EMbJR9+xydPHNSxs=;
        b=UH9r4FQqFzQsz1r5XYtkuLYwSZgc074w1DUFTCfXIokHPFjMhABulm3u+jv2j1fE0a
         sXW/vZqdU4g8dfiyBJBP5dNL/4TsL94uDn2XNj8eOG9PTb/ekUl8JbwN97+8GDlTtFdE
         JE9C/r0n47Z9qL2lLSTuLAMHZFIdJ7dUetq+hU15PP7piFnBFVuKLQhvbGTegwYJO/8a
         clsS0MImcKp0mGifbdNklDm8aSzOc+05Pz6E8p2AchdTi7VQ3WkfMzIvLhwbrWWgrm26
         jN975OdeFobAOcRDGC/+B2MLc2SmPv4kzijNKXsigy8AEoXq7XEzRWps0zR4yIITk2MJ
         xyWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777893095; x=1778497895;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hlCTRef2XAgV4wftupmArr2/pP1EMbJR9+xydPHNSxs=;
        b=LAPrWWEok/+tuLHXcYVB6GKwzAtZa1MrWHOTHjOP5ClZIewPZVupKMk20M/zVQnwSt
         SSM2IwOwVrq3NLBZUZCXwsQxiBA7cYn7i7bE9uLX6zvpm7FTvkGThS5+CgJl+QhJ13MG
         yq/mPboKwwarzAnCXUnZgTPsw9fRlItqe1ivdfECYGB5PiWurQJIYS/mq1Zj0yq6ZdZj
         nGsnTYuiQn8yl3rNH58zPW5ZuJvubsIKgolqKekg+yi8CRFZ2BoVYCktDle0Euiu40Dt
         BILcnY7+lMIQriBmZruet3lfH0L+0XIqfMg0i1Q8Pim4hL1PQQBmSA0Jr1QXK9RK0iq3
         +oqw==
X-Gm-Message-State: AOJu0YxhMbtK4RxPlOsvTQt7yyZ8hf4PqVpb8+ASkQHleHIuGaDBM+eS
	YWxxsxBOg8wSuCt9cYugN3/K6yYs4jQA027Kp2AF2NR/wJYy1w5HujSaCooV+T+bDA==
X-Gm-Gg: AeBDietdTRCP7/XOAFMqkMTG698ClOaVy40gDgHDtoqtnTESBPRoQBzvEoP1pmR1lnB
	w67qLE4rtyVC0puwHbsFxvtHTjucl58R0UB4ZL2XXyIGII7CvMKD3rnBv7bFm+kKwz52qTG0dJ5
	8408sXwFFXa/INbK29zaW2EZseHZHt4fKmT9vIg97lFxM09twopRWyplf0324iDLJD4L0SjYw9q
	r9u/6hEAWA9LN2PPdusTBY7s1MecNYTOeC5t2U3id/H0wf71fr4BHS+8WcxdCdjj6UTRvjbzMBH
	x6wGXVInDal9vQ51UNYw/9HkQFxm4UhjkGEqzgpWguJDEVLVGnbKIca8zbj0xHk2H+iva/RWRNA
	YKq/5Kq/NYgtEqQLx7xpgzlMjBzrTuNDSqe0TXSC8VVrkZfwJT5LsC65dg+br+1LQyORiVFZtOO
	bknIPQW2q57W8gPYLjxlI/B4OwvvxmXEiWo/PG8RogkikYwXDVLLIx28fYy+xa2dOn4H4LMXt78
	KlzWbASg+X66syEZgBYrS3Z3g==
X-Received: by 2002:a05:600c:c119:b0:48a:563c:c8c0 with SMTP id 5b1f17b1804b1-48a9853c91dmr119587575e9.7.1777893095479;
        Mon, 04 May 2026 04:11:35 -0700 (PDT)
Message-ID: <f6521590-e51c-4f00-bcf8-faee79a5d3a5@suse.com>
Date: Mon, 4 May 2026 13:11:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 11/17] hvmloader: allocate MMCONFIG area in the MMIO hole
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Alexey Gerasimenko <x1917x@gmail.com>,
 Thierry Escande <thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <20260313163455.790692-12-thierry.escande@vates.tech>
 <afHPdxc72FDGnQoq@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <afHPdxc72FDGnQoq@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1777893096-AFF50FF4-589AEF2C/0/0
X-purgate-type: clean
X-purgate-size: 2387

On 29.04.2026 11:29, Roger Pau Monné wrote:
> On Fri, Mar 13, 2026 at 04:35:04PM +0000, Thierry Escande wrote:
>> --- a/tools/firmware/hvmloader/pci.c
>> +++ b/tools/firmware/hvmloader/pci.c
>> @@ -413,6 +413,58 @@ void pci_setup(void)
>>          pci_devfn_decode_type[devfn] |= PCI_COMMAND_MASTER;
>>      }
>>  
>> +    /*
>> +     *  Calculate MMCONFIG area size and squeeze it into the bars array
>> +     *  for assigning a slot in the MMIO hole
>> +     */
>> +    if ( is_running_on_q35 )
>> +    {
>> +        /* disable PCIEXBAR decoding for now */
>> +        pci_writel(PCI_MCH_DEVFN, PCI_MCH_PCIEXBAR, 0);
>> +        pci_writel(PCI_MCH_DEVFN, PCI_MCH_PCIEXBAR + 4, 0);
>> +
>> +        switch ( PCI_MAX_MCFG_BUSES )
>> +        {
>> +        case 64:
>> +            bar_data = PCIEXBAR_64_BUSES | PCIEXBAR_ENABLE;
>> +            bar_sz = MB(64);
>> +            break;
>> +
>> +        case 128:
>> +            bar_data = PCIEXBAR_128_BUSES | PCIEXBAR_ENABLE;
>> +            bar_sz = MB(128);
>> +            break;
>> +
>> +        case 256:
>> +            bar_data = PCIEXBAR_256_BUSES | PCIEXBAR_ENABLE;
>> +            bar_sz = MB(256);
>> +            break;
>> +
>> +        default:
>> +            /* unsupported number of buses specified */
>> +            BUG();
>> +        }
>> +
>> +        addr_mask = ~(bar_sz - 1);
>> +
>> +        for ( i = 0; i < nr_bars; i++ )
>> +            if ( bars[i].bar_sz < bar_sz )
>> +                break;
>> +
>> +        if ( i != nr_bars )
>> +            memmove(&bars[i+1], &bars[i], (nr_bars-i) * sizeof(*bars));
>> +
>> +        bars[i].is_mem    = 1;
>> +        bars[i].devfn     = PCI_MCH_DEVFN;
>> +        bars[i].bar_reg   = PCI_MCH_PCIEXBAR;
>> +        bars[i].bar_sz    = bar_sz;
>> +        bars[i].addr_mask = addr_mask;
>> +        bars[i].bar_data  = bar_data;
>> +
>> +        mmio_total += bar_sz;
>> +        nr_bars++;
>> +    }
> 
> I think it might be best if the ECAM fake BAR is the first element in
> the bars array, so we ensure it's the first item to consume memory
> from the low MMIO hole.  Not sure how that will work with the current
> sorting of the resources based on their size, but it's imperative for
> hvmloader to attempt to position ECAM ahead of the other device
> resources IMO.

Why would this be?

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 11:31:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 11:31:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299711.1574260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJrWK-0007A7-68; Mon, 04 May 2026 11:31:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299711.1574260; Mon, 04 May 2026 11:31:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJrWK-0007A0-2k; Mon, 04 May 2026 11:31:28 +0000
Received: by outflank-mailman (input) for mailman id 1299711;
 Mon, 04 May 2026 11:31:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJrWJ-00079u-28
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 11:31:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJrWI-002415-Dw
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 13:31:26 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f88389-e002-0a2a0a5209dd-0a2a4505b0b0-26
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 13:31:26 +0200
Received: from [209.85.221.42] (helo=mail-wr1-f42.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8838e-aaa8-0a2a45050019-d155dd2ae5ef-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 13:31:26 +0200
Received: by mail-wr1-f42.google.com with SMTP id
 ffacd0b85a97d-44a5174670eso1433550f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 04:31:26 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-44a98b768fdsm24604851f8f.33.2026.05.04.04.31.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 04:31:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777894286; x=1778499086; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0hxkgJFS9D2umZb9rFCDQc6z7aiWZ7JxYsZ+KZkGIA8=;
        b=VoPtVb0dQqvJj4fN2WlvUG413Yl2w8VKhQgN7pzytkClkwH+9zyimOT+iIVT4B6mZw
         EPplpTAwFMDwsQmKzqb58MNs6JBOOYgdKGNOQVIPAQbufFRe5qyzHV47fZ7QRNJFGzPW
         WN0PAOaE7kGykqwDr/gDatg7p89WoZnD5ip1PwVWMeyrAC9K6W8TpQyJXtx4X0vZp+9R
         BFpgH+CBslRWFjx2VDCUv6J4NvoVRz8ctw4700rEzDd2v7RLjeiqI6Svs2m1cW789x1A
         V2qnupi/5FzCs3najCL7/MP+3tR0ew5QftnTGlvDIOYqjLM4C2VAjNg606/y2bL5bV6k
         2WqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777894286; x=1778499086;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0hxkgJFS9D2umZb9rFCDQc6z7aiWZ7JxYsZ+KZkGIA8=;
        b=SBevbBNW5moVW9p/ninPaX7MLrQp5PcYT2WoBkEl+cKhHgAjWk8qY4HHHT+A+VDTsc
         gP0p10gLLNpVC0wYpfm127Er7xX0T4pz3I+rTpX/5D1KLA7tPg19OAP2nlrExv4k8QAQ
         EEtcXysfDZtFPeVicSS4x85TAU94iEO6JQWvh5zznKXQLQyLC/24CoW2yaSsf3W3SNTl
         c+H7tY2LIO53CPBfroCzow9nM3Z8N6jc3kO5HAGkhZ8yo8pkwB9mJh7CUpPRZI3eTjsC
         s/3Y5qYnu0KpPs7lHIITk7Ym2x7j6ZJvueivqioYSCNwqGK1mXqEB9hKOy0DLhdiudsK
         ckfg==
X-Forwarded-Encrypted: i=1; AFNElJ/TUjwmSiuVBpbMchlIQDkOrM6B5g5MFeO+FYhYO6UW73qDdR8YOwTMzlnTmwXn4YXT+pJt3+wv6pU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvZ0tfOvRJTH9X0IjTQoE6R50WKzGC5bbtKvRRusu5asZ2ir86
	rA0nvQXT5kbGCCOv529AFJlGjOkey0WfsRVMP8N3Cpy/hj77B5GTtj58GxuOXwBppg==
X-Gm-Gg: AeBDievHqvcc+dD+GZaAdee5MUsNpY8IBvVgnk6227OtTEbp83cdDHQiaCk5iXf73PS
	WLnhn2evMqWXVW9Z/zyJqD1GYdpRNUjIBd/29kTH3Bn1NjMp7JrAxTC6ovboxVILw9yyM/kCsY4
	1bYEMxMU+evtuhmszSF+aiv4OSi7lsl7E5EBu2409e4ER9v0qYl7c8G/WrBGADGiaXIqlulkRrj
	4VEZ1KO8k9/MBajJjD6FFMl62oh4b4YClovPsw5YD9ROvmlsCZ6J7OhYxeRrlSJW3oZ023+hdRG
	pAFer8JlK3DqpL0XaDmYdS2IZzkHPk/bgBzt24i2O3LLb7xLXwXWaqTZNNlUASz7ViXIyz/hlxQ
	a1X0zntBESVzDcT/KCcHRZoFzSYgfyYQP5uhLvWhyoOR5C3VlR0PvYtet5U+uqGbgN1cft9u1+m
	ekgTKu0uLlmNEb6Tl1xoza+F6Of7rqCvZ/eXS6YN43V++apA70Ev5f5fdH6paOFpciUjkFApiJT
	h7reJYYVuzl/PT2BfoK3z1QKA==
X-Received: by 2002:a05:6000:18a5:b0:44a:b0a3:7c1a with SMTP id ffacd0b85a97d-44bb558c806mr14889417f8f.24.1777894285631;
        Mon, 04 May 2026 04:31:25 -0700 (PDT)
Message-ID: <62ae456f-3ed2-450d-aaf2-bd9cd10fbec7@suse.com>
Date: Mon, 4 May 2026 13:31:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/cpu: identify uninitialized CPU data using BAD_APICID
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <20260430114647.94526-1-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260430114647.94526-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1777894286-E2969443-43CF1002/0/0
X-purgate-type: clean
X-purgate-size: 1562

On 30.04.2026 13:46, Roger Pau Monne wrote:
> Uninitialized cpu_data[] entries have the apicid field set to BAD_APICID,
> not boot_cpu_data.apicid.  Fix the check in cpu_smpboot_free() to use the
> correct condition.
> 
> Fixes: 7126b7f806d5 ("x86/CPU: re-work populating of cpu_data[]")

I think this isn't correct, and the issue here is me having overlooked a
dependency between that commit and the one introducing the line which
you change: 8c15d3d18725 ("x86/SMP: guard socket_cpumask[] access in
cpu_smpboot_free()"). Both changes were committed close together, but
they were entirely separate submissions (well over a year apart). Hence
as an individual patch that latter commit was correct, but on top of
7126b7f806d5 it would have needed adjustment. Since 7126b7f806d5 wasn't
backported (while 8c15d3d18725 was), the fix here also shouldn't be
backported to anything earlier than 4.21 (which indeed the Fixes: tag
better expresses).

Jan

> --- a/xen/arch/x86/smpboot.c
> +++ b/xen/arch/x86/smpboot.c
> @@ -961,8 +961,7 @@ static void cpu_smpboot_free(unsigned int cpu, bool remove)
>       * In that case the socket number cannot be relied upon, but the respective
>       * socket_cpumask[] slot also wouldn't have been set.
>       */
> -    if ( c[cpu].apicid != boot_cpu_data.apicid &&
> -         cpumask_empty(socket_cpumask[socket]) )
> +    if ( c[cpu].apicid != BAD_APICID && cpumask_empty(socket_cpumask[socket]) )
>      {
>          xfree(socket_cpumask[socket]);
>          socket_cpumask[socket] = NULL;



From xen-devel-bounces@lists.xenproject.org Mon May 04 12:22:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:22:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299725.1574268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsJ5-00054f-Q5; Mon, 04 May 2026 12:21:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299725.1574268; Mon, 04 May 2026 12:21:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsJ5-00054Y-NN; Mon, 04 May 2026 12:21:51 +0000
Received: by outflank-mailman (input) for mailman id 1299725;
 Mon, 04 May 2026 12:21:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wJsJ4-00054S-7H
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:21:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsJ3-00AA5l-JJ
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:21:49 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f88f5b-bab6-0a2a0a5309dd-0a2a4504d154-14
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:21:49 +0200
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f88f5d-1dec-0a2a45040019-d1558034c0ad-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:21:49 +0200
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-488a9033b2cso35344395e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 05:21:49 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8eb69698sm484713845e9.1.2026.05.04.05.21.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 05:21:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777897309; x=1778502109; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PxU+OSxiodLlJNzcCPRbI/gsNDodvvuMMev8AecihVI=;
        b=cOLp35oxFsQK8PRpbA8wYil6ZcHWUNqmVjNcvNRwyZ5bUDhZvRavJStRhI7HGGL8bR
         iKmEMeDSVSjheG9feFfmU9IEnaM6EDQOFwTWugHcJMQz3V07tOjVTFIJEOVlFJGhQ5BJ
         vuxSQI1Y/x6ASCf/awfTWW87hcFbJ3lyE4dPtz+hrsoZ/+4zOJpZw+pDSHQ+71DFT3t2
         wm2zO/X9EQ2so9KPdkUKTJKL3O6L0dk6mfNN3ax94clQmGNvWrXQrw0T3JFncKOn0Y+P
         cQfALiNJ0dkQVQYgvRd30LB7CUPi9sRfLa4Hv2ntB5B8JUr1r4PzZyoDGbMBxuVKJmJJ
         jCxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777897309; x=1778502109;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PxU+OSxiodLlJNzcCPRbI/gsNDodvvuMMev8AecihVI=;
        b=raBCaKNb0HzfiUMaMlzspMjAd1Td5zuGsk4vq/Cmki78CIh+RaOJB/jzpqJAxnL8m6
         4t5fh6NbshJEwZmYqwOvLEKYtZfs5l80g6bMxyG0G9W9KpxHiu1KEWddltb/TSdylHPe
         oe7Ol08iC5xiYrLAjvOaBYUKOvoaHwUS3YnNGfz2TiTPack1+EFIN8VRDYPZ3+5yb30a
         CpirZ8Qmk/bejbtSWfZqTh/bOezLhWWBMHMH5icoc2JZ4Ro3gQFRP0HRwaIrnRXCFkIb
         t755/z0ZmnMeomY0nSmPwWXLHzEWcHlMoqc1KphT0UUBNiIbcYtmWwCb9J3iahMzLjxt
         GIFA==
X-Forwarded-Encrypted: i=1; AFNElJ/Th+YjK2tP9rGHqfwUjsE+5lxDFNdoaFsbG1dvVp3tdlaZZ7PzL7S+pEjsSGCTdkuvibyxVp5FeCw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqOfsnp8jIxDX27DxWM2YlUDcCSCpvVxZReX/52D5ZWikjPS4c
	37Z0sN/6IpM/FuvNlDj/7hLP5V+DY0fjmp7QxBQE6JsW3qzWovuQQ1X2QiLDn+guaQ==
X-Gm-Gg: AeBDievrBwH5YsrfPIzUjAupe/auh+zTPBEJfajsHrlNi7YDBO/o5QmHQiuJCKe8SFP
	aB4agT1hGWT2Z2cnFyPYH9Kx7t520iLHLytIozJs8+tyMskryK9EkOV5Fr09TLeoPIchbp64K5w
	UtFXaVurg4Uys9WrLY3uC9rSFUXaUxA46ZJ9cV9Q7qtnBUS06a4loxR0VviJgTXl6m/5ur3AKjb
	F0QuIGBREJB35B4b/LYjHiEhD1oFk2/2cKVh2vvSEGCUu/65yArESdYrge5e9WxrVHPQDXY1g6B
	ek8tPSuxqJeMlEehWoRgoHTVHo+Hdcu17Ktz/oufbKPuyaYslPNwx+5A8G/YVJk6G5oPmEVbGQI
	oE0gSt5z6HPvWerqqKE+nfnErzLDvQ/rzBxfIMRxvulVXtfPkZXFZ5xGmA9rnExgVwS5lT2I77U
	7/qUxDE4/V1VUyxFX/ehFBOjGMIAi3mAFvuOuxEAsTqrTr3stk9nCgHXYwYd0YlezxpaGKajkfT
	wSAE6wiGNpaeMJ6YPhJVqdRmA==
X-Received: by 2002:a05:600c:4f91:b0:489:1ba8:5be9 with SMTP id 5b1f17b1804b1-48a98676b26mr146849365e9.29.1777897308629;
        Mon, 04 May 2026 05:21:48 -0700 (PDT)
Message-ID: <5daeb8f7-cf0f-4ea7-a686-93df36b43a30@suse.com>
Date: Mon, 4 May 2026 14:21:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/3] xen: introduce CONFIG_HAS_DOMAIN_TYPE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1777296786.git.oleksii.kurochko@gmail.com>
 <7c91e1a705e1046be4af1c5671a8d91cf3557013.1777296786.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <7c91e1a705e1046be4af1c5671a8d91cf3557013.1777296786.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1777897309-291763FF-8F5BC056/10/73395122804
X-purgate-type: spam
X-purgate-size: 2577

On 27.04.2026 17:34, Oleksii Kurochko wrote:
> As domain type is part of common code now there is no any reason
> to have architecture-specific set_domain_type() functions so
> it is dropped.
> 
> Change the guard around access of kinfo->type to CONFIG_HAS_DOMAIN_TYPE
> for consistency. Also, drop and add some parentheses to be aligned
> with the similar if() below.
> 
> x86 with CONFIG_64BIT=y shouldn't use is_{32,64}bit_domain() as
> x86 doesn't have support of CONFIG_HAS_DOMAIN_TYPE. Since x86_32 Xen no
> longer builds, the fallback is currently only relevant for arm32.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>

In principle:
Acked-by: Jan Beulich <jbeulich@suse.com>

However, still a few remarks:

> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -13,6 +13,19 @@ struct guest_area {
>      void *map;
>  };
>  
> +#ifdef CONFIG_HAS_DOMAIN_TYPE
> +enum __packed domain_type {
> +    DOMAIN_32BIT,
> +    DOMAIN_64BIT,
> +};
> +#define is_32bit_domain(d) ((d)->type == DOMAIN_32BIT)
> +#define is_64bit_domain(d) ((d)->type == DOMAIN_64BIT)
> +#elif !defined(CONFIG_64BIT)
> +/* At the moment on 32-bit-only platforms all domains are 32-bit. */
> +#define is_32bit_domain(d) (true)
> +#define is_64bit_domain(d) (false)

I think it would be nice if the excess parentheses were dropped from here.

> --- a/xen/include/xen/fdt-domain-build.h
> +++ b/xen/include/xen/fdt-domain-build.h
> @@ -7,6 +7,7 @@
>  #include <xen/device_tree.h>
>  #include <xen/fdt-kernel.h>
>  #include <xen/mm.h>
> +#include <xen/sched.h>
>  #include <xen/types.h>
>  
>  struct domain;
> @@ -69,6 +70,14 @@ static inline uint32_t alloc_phandle(struct kernel_info *kinfo)
>      return kinfo->next_phandle >= GUEST_PHANDLE_GIC ? 0 : kinfo->next_phandle++;
>  }
>  
> +static inline void set_domain_type(struct domain *d, struct kernel_info *kinfo)

Pointer-to-const for the 2nd parameter?

> +{
> +#ifdef CONFIG_HAS_DOMAIN_TYPE
> +    /* Type must be set before allocate memory */

This comment would be more prominent if it lived outside of the #ifdef,
perhaps (read on) ahead of the function. I wonder though why it's only
a comment, and not e.g. an assertion. If an assertion was possible to
add, the comment would want to live next to it. Without an assertion
putting it ahead of the function may be better.

Depending on how far to go, changes could be made while committing, or a
proper v5 may want submitting.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:23:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:23:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299733.1574278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsKd-0005ZB-3t; Mon, 04 May 2026 12:23:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299733.1574278; Mon, 04 May 2026 12:23:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsKd-0005Z4-0x; Mon, 04 May 2026 12:23:27 +0000
Received: by outflank-mailman (input) for mailman id 1299733;
 Mon, 04 May 2026 12:23:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wJsKb-0005Yu-NP
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:23:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsKb-005qLq-3B
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:23:25 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f88fb2-bab6-0a2a0a5309dd-0a2a45098874-38
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:23:24 +0200
Received: from [52.101.43.0]
 (helo=SJ2PR03CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f88fba-2497-0a2a45090019-34652b00fc8e-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:23:24 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MW4PR03MB6522.namprd03.prod.outlook.com (2603:10b6:303:125::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Mon, 4 May
 2026 12:23:17 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9870.023; Mon, 4 May 2026
 12:23:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CYYd4Xn1DQWMxx6fwrlaLb8VTfdhyM1RuJQvDZ/ra48wFQNxmo9RGey8a+abVQGRZGr6AhaAFZLDoMsT2/pYCwR3At4QQ10GN9qAuhSXP9EO/vXEv4clTYsXXMJv8zrM2Nkn7AC/Fp8qMTtJpsbi2k2WxrXDmJJp3s4xGuON9bi0a2vCTykbz6D397em3D6PDTPLZOlsXQtAEweNGMNsrBLpDT9GoweGw10eFvb8yduvdkY+2S4yh0iXvbvLfzEMihJNVRbR0Rvg0RnyFZOFPFtJdAhAUxjRE3h7QOMmEdxmsp/MLYYiK7vXUiMIrPw53hSIhFEgkahSeussFwwR4w==
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=GomDykBq408lyJL8ud2XmrL8OIhvktO9VLyenyVpQzI=;
 b=Dm5LvH/5WA3BN4D2dief14THMAUIWb6SL5zoohCQFBJM7mnTvyaG6UZFDQ9BLGm7f9xSgyZRf3/fS0VBLpemS7CXbu+uq0aP6mpuIB9dUkplxG7OjSt2BJvFp0VR5Mt/iIA1WR0MAh7BHtJln+B/pWc9NBPcL/9kcohzmqdPUc4rhGJAaapf+fbNNGhWsyqUD9nNIRheqwZXYSfV0Bxb8Sve+LPgNO4PJp3DaSR6Pj5r+kG539F17gHYetH+V/b8xaF3t7Rb6CvwFBl4/SZ5eCz7P9cR5kFG11oQMUkQEaH0k33Typz1GNdDVe3XJhhcY7fh6mg8upDPoF3LZ1nt4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GomDykBq408lyJL8ud2XmrL8OIhvktO9VLyenyVpQzI=;
 b=PA6kYVjiGvm7IAoWzZW3MG9UFF1dQhr/CTGE+cMPq56A3bhfskdzGZNGVPQRwV3exyI3x02tTj0XmGMsOJ3wJPqoBRE4L7R1kOyhSfkuxZw9hZmf6Fvt537v9BjLhtsfVMclLWK3zGq5xhVkVow8DTlbiCS6jLcRZQ5g+6idlTE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 4 May 2026 14:23:14 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Alexey Gerasimenko <x1917x@gmail.com>,
	Thierry Escande <thierry.escande@vates.tech>
Subject: Re: [PATCH 11/17] hvmloader: allocate MMCONFIG area in the MMIO hole
Message-ID: <afiPsnPYJCtm7VmH@macbook.local>
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <20260313163455.790692-12-thierry.escande@vates.tech>
 <afHPdxc72FDGnQoq@macbook.local>
 <f6521590-e51c-4f00-bcf8-faee79a5d3a5@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f6521590-e51c-4f00-bcf8-faee79a5d3a5@suse.com>
X-ClientProxiedBy: BN8PR04CA0056.namprd04.prod.outlook.com
 (2603:10b6:408:d4::30) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MW4PR03MB6522:EE_
X-MS-Office365-Filtering-Correlation-Id: 1927999c-d389-4537-b75e-08dea9d7ebc6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	9nopWrCKDkSYcb/5IawlsMDK428d36IsLWYaWNZihL4E0smE1Jy8xq3rLBcHh9Hz8GY1zviUoYDE/fTo7IjGecS8rGpHt0KrWvDFjB5hBwyRZu1sXVJej3PgcP05b2Z40ZoXUSpbBu+oiOSepkhk/KfOeWM8bgIw2XymlAgHV8buvT4cnf6EK2BXRcu0jr6ilYxioxj5j40qdsiR9Jq9HVI/7grEh7xPo14vb0cvKyAMr73RD0v6heaVAanEUtm5Rv7s6zb0ZDuwePBszAF/VG6BZhtSPURlA1d3gWWBCfL8qnUK+mp5vhrAKkgkt4KzY+IcW1YkAtAXHmL0zn4pjR8s4ESeNwk4EVyqDgGbynV17xmx39JIjwFe2h8MdNQEGoYZKZVS748tI/2CbGPtMyGWCHtAFK5x2BRtGgIg0N3XJmgVt0c9Z/86d4j/YE8hETHygJr8xZeQOikLE5LepILzzafshoEcgpZZcd32wvcBr7PZjsT4/k7gLrCDzsb3/9+WlFEPg4mCl/oa14hZDcOUZoVT0r8nerZFkYQwn3F2uMwSxHV7ufwRzJ5Blow8kYURKMrnEvCMOz893iPPuXnrw+yAv7TqTPLC7Ai5Ub41jLBXwek79j96N3CQ4yzPu4/FhdvWeMrVABP46fgnZepHNuEMxBkAynrkc3IUm9fhWkA5j5FBAS7pMT+CeEhn
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eFdGZk1hZ3hkQUI2alp1bU9OYWdXQm00aE9IM1hsSkVWYkRVNUtTeE9MUGJ4?=
 =?utf-8?B?Yk4zSDRoTmxSZEk1U3ZWeWhoU1ZOSFVOVlY2VHQ3aENKc3FaNUZReVJFR2Yv?=
 =?utf-8?B?dW81WmdRWC9rT2VubDE1OXViRktzSDlMOVg4ZFkyNThlYzBmcDEyKzRYRTdS?=
 =?utf-8?B?KytPVHkzNVdub25yWFpPNHJnWVBYaytRcXpUVVRmVFZQNjhvRjBQWjk1eHBV?=
 =?utf-8?B?NGVuUE1JK096VkNyM1hOQURubGdqejI1Z1UwMUxPL2F2aW1tc05PNzl3V0F4?=
 =?utf-8?B?UjZqeXdUY05remRsQjc4NkJUS0dvaDF0VktHbWxMV3RiZGx5M2xVVDBPR0R6?=
 =?utf-8?B?R0hwQzcvSXJxSk9yd3NHQURVbHJJK3kzR3JFTGVreGZqcWNuMW1qVDJEUXdU?=
 =?utf-8?B?bGhHbGdjckQ3M2V2ZnY0c3AxYmNQam4wNFhrR2xNbGsyT0RGNG42cWQ5KzZo?=
 =?utf-8?B?eVN6MDRVUitZSXVRMnAzdzFzWEdEQllNcVNMMkdMV3UvNWhNbld4SjVMUHli?=
 =?utf-8?B?YWt4YkpnN3Q5WGZ5Z2F6V0RQMFRUMnBxT0dUcHpKeG1LNnZVWnlmOVFaL0lE?=
 =?utf-8?B?VGFJMWdKc0RCYXF0UnkwUVZONXBJTDMxY3VRK1ltSk5iRFpLcGp3M2NxNkJK?=
 =?utf-8?B?emhxaHFka1hWSVVoV1JlaEFzZWRWRllWN0tTREd6aFVEcTR0YXRkT1h4ends?=
 =?utf-8?B?dmZmeTd4c2lSb0l5cjFveFNwUnZ0ZlczZUJGR1R0aXVDYXNseERKMTRDT0RX?=
 =?utf-8?B?NFZCQzhldGk4UFpvQnJZMEg4U2tzVE5RRGdnNkczTjlVU1BxRkpSaGI1Qms4?=
 =?utf-8?B?TWZLWnphanJrM090RmZ1dVZzc2VXeUdRVTJybmZ5QkJoSzZwVXh4Yksyb0dD?=
 =?utf-8?B?clhOWCtIdEJSaTJYNXhCc2JKTk1wZXE1ZFNRbk9peCtwT1RPYk1Ha3RLZ2d4?=
 =?utf-8?B?M1R4WTZiK01PaHFITFFTR0Fla1dYMlA2QU40Z0NoNzhBeTFWVm56VytjNHdm?=
 =?utf-8?B?a3dXUjE5MEl0eEM5cDRsYjNXcVJITjUwK1dveWVaYUJJVmF3ZUwrcE85WTZN?=
 =?utf-8?B?UktCa0c3QlBiUjFNRkIrdVBGQ2ZYbXpOMjBjamVxK0dYV0MreGFPSVFPUmxU?=
 =?utf-8?B?THFIWWxEUW9NV2pucUFhdmhqd2d1YUY5b1FVSy9oN0dlQS9yZWMrL3V6b0Q0?=
 =?utf-8?B?QjdzemVKeDNSYkJORzdPZ3RmMU1YVlhHSnlVQ25FeDJSOGJIeG5VT044SDBM?=
 =?utf-8?B?OGhMTFRlWndRRjd5Y2hEakVDcGZTOHFENWlIaDhNakNSN1dyTkkvZ3FwaWFJ?=
 =?utf-8?B?bm9DVXlKaTZsSE5WeHBMOE1HWW1MZVd3UDRraEtPUFBHZXBOeGZFR2VkdDNT?=
 =?utf-8?B?cHRtTDFtY3hIYk9oTTJHa3FRdDRUR3dIdGNvbTZ3ZEdUbUszNVpLT3dEeFlZ?=
 =?utf-8?B?R0g5UkVjcDh1Mm1QRGY1dy9BU3M5OVZjaTdia0JYY1g4aUEvTGN5eUtRcnBT?=
 =?utf-8?B?WW9LTkpCUGlDc3ozdDBieml6eDUzeFNsQUNFTTF3NFJoZXk0aElnVUo2cUYr?=
 =?utf-8?B?N290Z0NjL1lGT05XQUExaDd6SjBablVPT09JRk9WK2lZV3NENVR5ZHlsdXhN?=
 =?utf-8?B?SzU3aXJlY3ZKQTNWaU5VMTUvQk5ScEZCMDdSS0g0dUE4L2UxV2xIbDcwUk9y?=
 =?utf-8?B?SmNxQ1F6V1VsU3hnWERmRUt4NEdjdDdvUEhicGFzWFl1cDVUWXhZQVZlSThN?=
 =?utf-8?B?ODVPUDNOdXNtcTNOMnVEVVkvNjVUSU1tNzV1Z0F6djJ0QVZoYkJQbS9BcURE?=
 =?utf-8?B?TDhRSmllVUZ1L2V1TU1xQXhIczZJcDRkbjJWdWhoVHFrbzRKNWoybklEQ2Vl?=
 =?utf-8?B?Y0RlaXFnR092aWNYcUdnVzNoVkRuMXVPY2hHQkZ0T1FKSGdpeFdOamViZ1F5?=
 =?utf-8?B?TjNUTExQSDB0TDFXc0JwNmJ3U0hPZzlJeERlY0Y1VllHY0NpZlk1dEkyOURZ?=
 =?utf-8?B?RzAvVG1yZWN6VHdQalVka0JLK0JVUGFleHdjaC9vU1luclZrbC93cFA0Mjky?=
 =?utf-8?B?MmlUVWdSZEFMdTVoVFR1N2hsQkhGM3E0ZCtrYzVHc0VXemFJekMrU0lWRHFy?=
 =?utf-8?B?YWNkYksyL2ZFVjFUZEsrNHRuQ0h1UWZkbGFtSXVZVzBnNTZMUzFTTVcxV2dC?=
 =?utf-8?B?MXZIcTlWNjBJazFId3ZmVHBkYXlIbXM4MUFaWmNmKzZTdFVENS9LS0dUL2dp?=
 =?utf-8?B?bUpBWHNEd2NqUFpLVjRqbUxFYTFsdGg1OHdvaDQ2SzhaTmNlcnE2Lzhwd0hR?=
 =?utf-8?B?U0ZtRlF0ck9RYXFlUENSeTlPZGpsR1FIbjFpclNWb1ZtVzdVMkFMUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1927999c-d389-4537-b75e-08dea9d7ebc6
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2026 12:23:17.4611
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: IsSK5AnMQ3FeAN5jmx4wXhtvDu2q0CM3oD+OKk01PK9bzObUSl9V41BM6IhDTyztiw83efk0qMChsjix8Gp7Bw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6522
X-purgate-ID: tlsNG-bad1c0/1777897404-9236CA53-E77E88C8/0/0
X-purgate-type: clean
X-purgate-size: 2928

On Mon, May 04, 2026 at 01:11:44PM +0200, Jan Beulich wrote:
> On 29.04.2026 11:29, Roger Pau Monné wrote:
> > On Fri, Mar 13, 2026 at 04:35:04PM +0000, Thierry Escande wrote:
> >> --- a/tools/firmware/hvmloader/pci.c
> >> +++ b/tools/firmware/hvmloader/pci.c
> >> @@ -413,6 +413,58 @@ void pci_setup(void)
> >>          pci_devfn_decode_type[devfn] |= PCI_COMMAND_MASTER;
> >>      }
> >>  
> >> +    /*
> >> +     *  Calculate MMCONFIG area size and squeeze it into the bars array
> >> +     *  for assigning a slot in the MMIO hole
> >> +     */
> >> +    if ( is_running_on_q35 )
> >> +    {
> >> +        /* disable PCIEXBAR decoding for now */
> >> +        pci_writel(PCI_MCH_DEVFN, PCI_MCH_PCIEXBAR, 0);
> >> +        pci_writel(PCI_MCH_DEVFN, PCI_MCH_PCIEXBAR + 4, 0);
> >> +
> >> +        switch ( PCI_MAX_MCFG_BUSES )
> >> +        {
> >> +        case 64:
> >> +            bar_data = PCIEXBAR_64_BUSES | PCIEXBAR_ENABLE;
> >> +            bar_sz = MB(64);
> >> +            break;
> >> +
> >> +        case 128:
> >> +            bar_data = PCIEXBAR_128_BUSES | PCIEXBAR_ENABLE;
> >> +            bar_sz = MB(128);
> >> +            break;
> >> +
> >> +        case 256:
> >> +            bar_data = PCIEXBAR_256_BUSES | PCIEXBAR_ENABLE;
> >> +            bar_sz = MB(256);
> >> +            break;
> >> +
> >> +        default:
> >> +            /* unsupported number of buses specified */
> >> +            BUG();
> >> +        }
> >> +
> >> +        addr_mask = ~(bar_sz - 1);
> >> +
> >> +        for ( i = 0; i < nr_bars; i++ )
> >> +            if ( bars[i].bar_sz < bar_sz )
> >> +                break;
> >> +
> >> +        if ( i != nr_bars )
> >> +            memmove(&bars[i+1], &bars[i], (nr_bars-i) * sizeof(*bars));
> >> +
> >> +        bars[i].is_mem    = 1;
> >> +        bars[i].devfn     = PCI_MCH_DEVFN;
> >> +        bars[i].bar_reg   = PCI_MCH_PCIEXBAR;
> >> +        bars[i].bar_sz    = bar_sz;
> >> +        bars[i].addr_mask = addr_mask;
> >> +        bars[i].bar_data  = bar_data;
> >> +
> >> +        mmio_total += bar_sz;
> >> +        nr_bars++;
> >> +    }
> > 
> > I think it might be best if the ECAM fake BAR is the first element in
> > the bars array, so we ensure it's the first item to consume memory
> > from the low MMIO hole.  Not sure how that will work with the current
> > sorting of the resources based on their size, but it's imperative for
> > hvmloader to attempt to position ECAM ahead of the other device
> > resources IMO.
> 
> Why would this be?

I would assume it's best to have ECAM access in the low 4G (for 32bit
OSes) at the expense of some 32bit BARs possibly not fitting in the
32bit space.  But the ECAM space could be placed above 4G, and 32bit
OSes might not care much about extended address space capabilities.

Should is_64bar be set for the MCFG "fake" BAR?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:31:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:31:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299742.1574287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsSC-0007Dv-PT; Mon, 04 May 2026 12:31:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299742.1574287; Mon, 04 May 2026 12:31:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsSC-0007Do-Mp; Mon, 04 May 2026 12:31:16 +0000
Received: by outflank-mailman (input) for mailman id 1299742;
 Mon, 04 May 2026 12:31:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19df2f88b2d000f373@swg.vates.tech>)
 id 1wJsSA-0007Di-QC
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:31:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsS9-005sZq-Nl
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:31:13 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19df2f88b2d000f373@swg.vates.tech>)
 id 69f8918b-2eae-0a2a0a5409dd-0a2a4507a760-16
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:31:13 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19df2f88b2d000f373@swg.vates.tech>)
 id 69f89191-229c-0a2a45070019-b9ff1c22ae57-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:31:13 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19df2f88b2d000f373.004 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 04 May 2026 12:31:08 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id 3234F86252;
 Mon,  4 May 2026 14:31:07 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=OD8or3s/QJOBGyJXhNyPrhSlXzO3yXnn83xmBgN2eC0=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=ahtiHU5PNIRMtB1/kbHTDrX/+wnCl3yBJGbLWwLJYy8VwIDd3inPZBb3fl271R+ZMviBDg+W3
 0gJWHe0gbxrTWwSX6eThaWxwZmPjxHOivIqaQBQuJ/PdLn1utMxf4+FJ5fLEuTDJ8RMGov7of9H
 cUze2wM+4G7J4suuXYmTUQqa24G6kdy+e7HR03B8/l8lhPvamMV1OGw95fzBMaRtZRepyyoq0bb
 LvM1qo5jGsdRgJiZGvFxrP/dOQNtA1iDq/GGezQSV0zGP55K2lCX3d4anMKdNMZ39MS3L6sZJvy
 e41Xsns3dIq5nP4N0A/nK8n16Vy5C6PH+qiW0FG8IUmA==
X-Zone-Loop: 0abed36351d139258a29ce56ece0f803a8627e19dfba
x-campaign-type: default
x-transaction-id: a95e3892-1a3d-498d-8321-958c38e8c396
x-swg-uid: 01-078d159b-7268-49e0-bc4c-bd8d12c4052a
X-Mailer: Sweego
Message-ID:
 <1777897868.8631fc262581453bbf619ec5b2062170.19df2f88b2d000f373@vates.tech>
x-swg-bid: 1777897868.8631fc262581453bbf619ec5b2062170.19df2f88b2d000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Mon, 4 May 2026 14:31:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/svm: Always sync guest CR2 on VMExit
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20260501213826.1291860-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
In-Reply-To: <20260501213826.1291860-1-andrew.cooper3@citrix.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.d6.93e06ccba025c343.19df2f88826.86241822aa36c9ae=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1777897867307
X-purgate-ID: tlsNG-ef75cf/1777897873-AEB70C48-375E36DA/0/0
X-purgate-type: clean
X-purgate-size: 2387

---=Part.d6.93e06ccba025c343.19df2f88826.86241822aa36c9ae=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 01/05/2026 =C3=A0 23:43, Andrew Cooper a =C3=A9crit=C2=A0:
> Under SVM, there are two copies of guest CR2=2E  One is v->arch=2Ehvm=2E=
guest_cr[2]
> and one is in the VMCB=2E
>=20
> Xen doesn't intercept CR2 accesses, so this mostly goes unnoticed; hardw=
are
> loads and saves the guest CR2 across VMRUN/VMExit=2E
>=20
> For HAP guests (where #PF is not intercepted, and therefore we don't typ=
ically
> inject #PF either), this causes the guest CR2 value to be lost on migrat=
e=2E  As
> migration is cooperative and not done from the #PF handler, this also go=
es
> unoticed by guests=2E
>=20
> It also means that an emulated MOV-from-CR2 reads a stale value=2E
>=20
> Reported-by: Stefano Stabellini <sstabellini@kernel=2Eorg>
> Fixes: d1bd157fbc9b ("Big merge the HVM full-virtualisation abstractions=
=2E")
> Signed-off-by: Andrew Cooper <andrew=2Ecooper3@citrix=2Ecom>
> ---
> CC: Jan Beulich <jbeulich@suse=2Ecom>
> CC: Roger Pau Monn=C3=A9 <roger=2Epau@citrix=2Ecom>
> CC: Teddy Astie <teddy=2Eastie@vates=2Etech>
> CC: Stefano Stabellini <sstabellini@kernel=2Eorg>
>=20
> It also also works around the QEMU bug that triggered the investigion, w=
here
> the CR2 intercepts trigger despite Xen requesting CR2 not to be intercep=
ted=2E
> ---
>   xen/arch/x86/hvm/svm/svm=2Ec | 1 +
>   1 file changed, 1 insertion(+)
>=20
> diff --git a/xen/arch/x86/hvm/svm/svm=2Ec b/xen/arch/x86/hvm/svm/svm=2Ec
> index ced616684732=2E=2Ef49d2ebbfdd5 100644
> --- a/xen/arch/x86/hvm/svm/svm=2Ec
> +++ b/xen/arch/x86/hvm/svm/svm=2Ec
> @@ -2505,6 +2505,7 @@ void asmlinkage svm_vmexit_handler(void)
>       hvm_sanitize_regs_fields(
>           regs, !(vmcb_get_efer(vmcb) & EFER_LMA) || !(vmcb->cs=2El));
>  =20
> +    v->arch=2Ehvm=2Eguest_cr[2] =3D vmcb_get_cr2(vmcb);
>       if ( paging_mode_hap(v->domain) )
>           v->arch=2Ehvm=2Eguest_cr[3] =3D v->arch=2Ehvm=2Ehw_cr[3] =3D v=
mcb_get_cr3(vmcb);
>  =20
>=20
> base-commit: 61f957d48c78df6c5254b6f54d6170d3bd3d717e

Reviewed-by: Teddy Astie <teddy=2Eastie@vates=2Etech>


-- 
 | Vates 

XCP-ng & Xen Orchestra - Vates solutions

web: https://vate=
s=2Etech
---=Part.d6.93e06ccba025c343.19df2f88826.86241822aa36c9ae=---


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:33:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:33:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299749.1574295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsUJ-0007jn-3x; Mon, 04 May 2026 12:33:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299749.1574295; Mon, 04 May 2026 12:33:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsUJ-0007jg-12; Mon, 04 May 2026 12:33:27 +0000
Received: by outflank-mailman (input) for mailman id 1299749;
 Mon, 04 May 2026 12:33:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19df2fa95a7000f373@swg.vates.tech>)
 id 1wJsUI-0007ja-G4
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:33:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsUH-005tC9-Rk
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:33:25 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19df2fa95a7000f373@swg.vates.tech>)
 id 69f8920a-2eae-0a2a0a5409dd-0a2a4509df14-24
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:33:24 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19df2fa95a7000f373@swg.vates.tech>)
 id 69f89214-2497-0a2a45090019-b9ff1c22adf5-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:33:24 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19df2fa95a7000f373.003 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 04 May 2026 12:33:21 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id 3F1E682C7B;
 Mon,  4 May 2026 14:33:21 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=z1SahcxJS9PEhd9nLCjwMi74YvkGkujJc5tcAM5h/cg=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=DgyM5Ng4Ps72VGAYzzpWoq3QdzlPPY6t02VsQgfXkBE2vb4bTTeI41awOP/dQIB06OKoZmzsy
 x260i7Cj0Ccgawp75DmlJzENlv/+Xa0/pol2f2pgiUXb+5B8hYAj7vXM6aBuoflzWo2QKXj4LQU
 HWwE8EvgJv8Pw/v4Ujloui4h8RWhas4JowGP9jUhG7VjRbgZOYiisn9eJVDJ1ITMsdgVfjWhPI5
 yByY9w5dYZ9JnwsaHmOq4bPoPIGf1X4UNwxeIJ5d2DxcvFqXmuWRE3HFROXCYEEpQRhMJz4x846
 y7FKObK2hUvg8+a6XQYcuiaG+WZCSpzHQLgkyxFKFyPQ==
X-Zone-Loop: 639d19f8d8251d1d763f59e389c23f386502cb7888a1
x-campaign-type: default
x-transaction-id: 72b9757b-341d-472b-a8cd-f38d541b56d4
x-swg-uid: 01-6f80c560-cf2f-424d-aeca-d5d275a3f892
X-Mailer: Sweego
Message-ID:
 <1777898001.8631fc262581453bbf619ec5b2062170.19df2fa95a7000f373@vates.tech>
x-swg-bid: 1777898001.8631fc262581453bbf619ec5b2062170.19df2fa95a7000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Mon, 4 May 2026 14:33:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Disable interrupts when establishing SSP
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20260501191028.1250225-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
In-Reply-To: <20260501191028.1250225-1-andrew.cooper3@citrix.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.d8.e997219826f44562.19df2fa93bf.8d0c5c40427badda=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1777898001343
X-purgate-ID: tlsNG-bad1c0/1777898004-496B0A53-1C87D334/0/0
X-purgate-type: clean
X-purgate-size: 5340

---=Part.d8.e997219826f44562.19df2fa93bf.8d0c5c40427badda=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 01/05/2026 =C3=A0 21:14, Andrew Cooper a =C3=A9crit=C2=A0:
> Gitlab CI reported a crash on boot on Alder Lake hardware=2E  The bug is=
 years
> old, making it an incredibly rare occurance:
>=20
>    (XEN) *** DOUBLE FAULT ***
>    (XEN) ----[ Xen-4=2E22-unstable  x86_64  debug=3Dy ubsan=3Dy  Not tai=
nted ]----
>    (XEN) CPU:    0
>    (XEN) RIP:    e008:[<ffff82d04077bbc4>] arch/x86/setup=2Ec#reinit_bsp=
_stack+0xfa/0x160
>    (XEN) RFLAGS: 0000000000010202   CONTEXT: hypervisor
>    (XEN) rax: 0000000000000007   rbx: ffff83049a4b0000   rcx: 0000000000=
0006a2
>    (XEN) rdx: 0000000000000000   rsi: 0000000000000000   rdi: 0000000000=
000000
>    (XEN) rbp: ffff83049a4b7f00   rsp: ffff83049a4b7ef8   r8:  ffff830497=
e47000
>    (XEN) r9:  00000000ffffffff   r10: 00000000900c2121   r11: 000000009a=
392956
>    (XEN) r12: ffff830497e47000   r13: ffff830497e49f40   r14: 0000000000=
000000
>    (XEN) r15: ffff82d0407dad10   cr0: 0000000080050033   cr4: 0000000000=
f526e0
>    (XEN) cr3: 0000000043c16000   cr2: fffffffffffffffc
>    (XEN) fsb: 0000000000000000   gsb: 0000000000000000   gss: 0000000000=
000000
>    (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: e008
>    (XEN) Xen code around <ffff82d04077bbc4> (arch/x86/setup=2Ec#reinit_b=
sp_stack+0xfa/0x160):
>    (XEN)  00 b9 a2 06 00 00 0f 30 <80> 3d 71 26 f1 ff 00 74 3e 48 8d 93 =
f8 5f 00 00
>    (XEN) Valid stack range: ffff83049a4b6000-ffff83049a4b8000, sp=3Dffff=
83049a4b7ef8, tss=2Ersp0=3Dffff83049a4b7fb0
>    (XEN) No stack overflow detected=2E Skipping stack trace=2E
>    (XEN)
>    (XEN) ****************************************
>    (XEN) Panic on CPU 0:
>    (XEN) DOUBLE FAULT -- system shutdown
>    (XEN) ****************************************
>=20
> This is on the instruction boundary after enabling CET (writing MSR_S_CE=
T) and
> prior to establishing SSP=2E  Despite identifying this as a critical win=
dow
> where any fault was deadly (the CPU tries to push a shadow stack frame a=
t 0,
> hence the CR2 value wrapping around to the top of the address space), I
> clearly forgot that this meant interrupts too, which are enabled=2E
>=20
> Along with regular interrupts, NMIs are a problem=2E  Unlike other cases=
 needing
> NMI safety, we can't use a self NMI and callback, as the stack needs to =
be
> empty at the point of enabling Shadow Stacks=2E
>=20
> Disable interrupts, and turn off the watchdog if it's configured=2E
>=20
> Note that watchdog_{en,dis}able() do not work here=2E  They cause the wa=
tchdog
> NMI to be ignored; they do not inhibit the generation of NMIs=2E
>=20
> Fixes: b60ab42db2f0 ("x86/shstk: Activate Supervisor Shadow Stacks")
> Signed-off-by: Andrew Cooper <andrew=2Ecooper3@citrix=2Ecom>
> ---
> CC: Jan Beulich <jbeulich@suse=2Ecom>
> CC: Roger Pau Monn=C3=A9 <roger=2Epau@citrix=2Ecom>
> CC: Teddy Astie <teddy=2Eastie@vates=2Etech>
>=20
> The only way I can think of doing this in NMI context is to have the NMI=
 LRET
> off the NMI stack back to the interrupted context=2E  But this is horrib=
le to
> arrange, not to mention different between IDT and FRED=2E
>=20
> Also, the {disable,setup}_lapic_nmi_watchdog() API is horrible but I don=
't
> have time to make it sane right now, and this needs backporting a long w=
ay=2E
>=20
> https://gitlab=2Ecom/xen-project/hardware/xen-staging/-/pipelines/249406=
9238
> ---
>   xen/arch/x86/setup=2Ec | 20 ++++++++++++++++++++
>   1 file changed, 20 insertions(+)
>=20
> diff --git a/xen/arch/x86/setup=2Ec b/xen/arch/x86/setup=2Ec
> index d041cbd5f6f1=2E=2E95ac36beab37 100644
> --- a/xen/arch/x86/setup=2Ec
> +++ b/xen/arch/x86/setup=2Ec
> @@ -908,6 +908,19 @@ static void __init noreturn reinit_bsp_stack(void)
>  =20
>       if ( cpu_has_xen_shstk )
>       {
> +        bool watchdog =3D (nmi_watchdog =3D=3D NMI_LOCAL_APIC);
> +
> +        /*
> +         * Between enabling CET and establishing SSP, any fault or inte=
rrupt
> +         * is fatal=2E  We must arrange for none to happen=2E
> +         *
> +         * TODO: Figure out how to perform CET enablement in NMI contex=
t,
> +         *       given the constraint that the stack must be empty=2E
> +         */
> +        if ( watchdog )
> +            disable_lapic_nmi_watchdog();
> +        local_irq_disable();
> +
>           wrmsrl(MSR_S_CET, xen_msr_s_cet_value());
>  =20
>           /*
> @@ -932,6 +945,13 @@ static void __init noreturn reinit_bsp_stack(void)
>           }
>           else
>               asm volatile ( "setssbsy" ::: "memory" );
> +
> +        local_irq_enable();
> +        if ( watchdog )
> +        {
> +            nmi_watchdog =3D NMI_LOCAL_APIC;
> +            setup_apic_nmi_watchdog();
> +        }
>       }
>  =20
>       reset_stack_and_jump(init_done);
>=20
> base-commit: 61f957d48c78df6c5254b6f54d6170d3bd3d717e

Reviewed-by: Teddy Astie <teddy=2Eastie@vates=2Etech>


-- 
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates s=
olutions

web: https://vates=2Etech
---=Part.d8.e997219826f44562.19df2fa93bf.8d0c5c40427badda=---


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:36:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:36:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299759.1574305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsXO-0008JL-LG; Mon, 04 May 2026 12:36:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299759.1574305; Mon, 04 May 2026 12:36:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsXO-0008JE-Hr; Mon, 04 May 2026 12:36:38 +0000
Received: by outflank-mailman (input) for mailman id 1299759;
 Mon, 04 May 2026 12:36:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJsXN-0008J8-PL
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:36:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsXM-00AD9B-TQ
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:36:36 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f892d4-e002-0a2a0a5209dd-0a2a45078104-0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:36:36 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f892d4-229c-0a2a45070019-d1558030e85a-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:36:36 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-488ff90d6c7so38349935e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 05:36:36 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8fe93166sm77518115e9.7.2026.05.04.05.36.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 05:36:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777898196; x=1778502996; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uFMYZYyyXm+4Js+sJJbb4IVsuzxzO7AOUyEVnxpYh8w=;
        b=GXNZUM0o3DMV/AafJk48dLvwh72FgTF6QJTfGg0ZXkmSDoWiZh5DSTISP2oedy6cxk
         VzerwcE2pP0fPLYcb2DepLmEU9Qg3CnJsQn1A2kNlHOwj+sFJJ0kLNAuY2BiGtXjZ4z5
         KInHEbEWtlgCTp3Xd/KNuXZMpunJAlTbN3TAKmL30aAm1O6YDiQyJDBt4pBWa8vcDhoK
         Hez8j16py3mhMeMjLquwS40fUJz5T2gnwct/3WvewAk0UaLF4g2+sKQtx9Z8MuJVbEpp
         vngYTxdyUlwcrQmIj+x5SLcib2D7CwhIBjBlB0r1tztVP5TulNyGWEqnUHQAC0Xz3hP9
         9lZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777898196; x=1778502996;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uFMYZYyyXm+4Js+sJJbb4IVsuzxzO7AOUyEVnxpYh8w=;
        b=hMeASOSHqX5H/8OAsbVT8PlW6Qf2dceziBVSrOIgdfzglFtjwCwUYfxPFz39BLMoeb
         UJK2y+MI4RaSBGgXC1DuwumHl76113cBsGxyMPnjFjyxjNA4aMIwf+9yP0oy1RXGU56w
         ui/N2zF1ykqX0ZL0bCQNO7FXUO7FcbR8+3lDlGstjs+HoUIWszW672Ksu88+hrIHwymu
         IJQ+yjYN5Mb49NLKJ8vX1oJffUmDbmohQFlEs2wOq1B+KoaeIUawyXitecO8853tIkbp
         Jr3fJkBmbFNCV0wUiVD1Y1B9ixhouzRj1hcb1X7nX4lieD3XjENYa8/dSs8oN0Gl2NyY
         1hmQ==
X-Gm-Message-State: AOJu0Ywvrd3M/EJWaAONrwQbNy7fh6JuES9x579CDmEjHHu7MX5OMalU
	CGwRMgpZQGkAqT2MALkt//dWgZEh/o2FuXnabPIYtG5ke06DkU8zlNEvMP/QX9n9bw==
X-Gm-Gg: AeBDiev24u/ywgnFow5lR4dqg6NelFo6U3bXtjgmbjF5NXM9XypAKprpb+Cv0VpYvzK
	HHEgWSaNtYM8BNdLKUrZsOJzchZJXyoZDQFocj8nJwLPxnIy58BJqoOmc/llXzNQn4CvCMZu57y
	JXcLqrQ0Kwk31X6HxbOgSAH4WLbhuQlQqzYUjjQ85FT2SiT9Qy7jAXYJETg5i+HEqshCix0PnpZ
	nUVKA8mq8F9d9tiIJjVSspv2h+qHuPs9+btwAq/0DCk0AbbgMNciPND/E1DquOrEJ0ru2QW+Qeb
	cMVVw+d5cgXH+ih3eRS9YIa88q+QQ0kBW2+EwGaaSrOxgon7S3U+1kPOXuMDeHpIVGY4Vy4VMs0
	8V/1REPQw5kevj0RFGIU+l1DGuWZF6u5imgHsVAEwWTL1mJgq1K8oVrupye16WdvQlPUJD4Yx3g
	B8qw88/Uf8cn9JoQDdLltgEUuz0XlKdZ73CseN1y8LdriPXruheHQqvc7M7S7ci3DNnI/Uo9f2h
	FtPyS+ZQJCpcmLxu8HtL+aG+g==
X-Received: by 2002:a05:600c:5296:b0:489:1b10:d896 with SMTP id 5b1f17b1804b1-48d12f9147emr2915995e9.0.1777898196237;
        Mon, 04 May 2026 05:36:36 -0700 (PDT)
Message-ID: <2945a61e-dcf8-40eb-a3e4-3c8e977f9ebf@suse.com>
Date: Mon, 4 May 2026 14:36:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 11/17] hvmloader: allocate MMCONFIG area in the MMIO hole
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Alexey Gerasimenko <x1917x@gmail.com>,
 Thierry Escande <thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <20260313163455.790692-12-thierry.escande@vates.tech>
 <afHPdxc72FDGnQoq@macbook.local>
 <f6521590-e51c-4f00-bcf8-faee79a5d3a5@suse.com>
 <afiPsnPYJCtm7VmH@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <afiPsnPYJCtm7VmH@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1777898196-1565BC48-A22DFFBF/0/0
X-purgate-type: clean
X-purgate-size: 3591

On 04.05.2026 14:23, Roger Pau Monné wrote:
> On Mon, May 04, 2026 at 01:11:44PM +0200, Jan Beulich wrote:
>> On 29.04.2026 11:29, Roger Pau Monné wrote:
>>> On Fri, Mar 13, 2026 at 04:35:04PM +0000, Thierry Escande wrote:
>>>> --- a/tools/firmware/hvmloader/pci.c
>>>> +++ b/tools/firmware/hvmloader/pci.c
>>>> @@ -413,6 +413,58 @@ void pci_setup(void)
>>>>          pci_devfn_decode_type[devfn] |= PCI_COMMAND_MASTER;
>>>>      }
>>>>  
>>>> +    /*
>>>> +     *  Calculate MMCONFIG area size and squeeze it into the bars array
>>>> +     *  for assigning a slot in the MMIO hole
>>>> +     */
>>>> +    if ( is_running_on_q35 )
>>>> +    {
>>>> +        /* disable PCIEXBAR decoding for now */
>>>> +        pci_writel(PCI_MCH_DEVFN, PCI_MCH_PCIEXBAR, 0);
>>>> +        pci_writel(PCI_MCH_DEVFN, PCI_MCH_PCIEXBAR + 4, 0);
>>>> +
>>>> +        switch ( PCI_MAX_MCFG_BUSES )
>>>> +        {
>>>> +        case 64:
>>>> +            bar_data = PCIEXBAR_64_BUSES | PCIEXBAR_ENABLE;
>>>> +            bar_sz = MB(64);
>>>> +            break;
>>>> +
>>>> +        case 128:
>>>> +            bar_data = PCIEXBAR_128_BUSES | PCIEXBAR_ENABLE;
>>>> +            bar_sz = MB(128);
>>>> +            break;
>>>> +
>>>> +        case 256:
>>>> +            bar_data = PCIEXBAR_256_BUSES | PCIEXBAR_ENABLE;
>>>> +            bar_sz = MB(256);
>>>> +            break;
>>>> +
>>>> +        default:
>>>> +            /* unsupported number of buses specified */
>>>> +            BUG();
>>>> +        }
>>>> +
>>>> +        addr_mask = ~(bar_sz - 1);
>>>> +
>>>> +        for ( i = 0; i < nr_bars; i++ )
>>>> +            if ( bars[i].bar_sz < bar_sz )
>>>> +                break;
>>>> +
>>>> +        if ( i != nr_bars )
>>>> +            memmove(&bars[i+1], &bars[i], (nr_bars-i) * sizeof(*bars));
>>>> +
>>>> +        bars[i].is_mem    = 1;
>>>> +        bars[i].devfn     = PCI_MCH_DEVFN;
>>>> +        bars[i].bar_reg   = PCI_MCH_PCIEXBAR;
>>>> +        bars[i].bar_sz    = bar_sz;
>>>> +        bars[i].addr_mask = addr_mask;
>>>> +        bars[i].bar_data  = bar_data;
>>>> +
>>>> +        mmio_total += bar_sz;
>>>> +        nr_bars++;
>>>> +    }
>>>
>>> I think it might be best if the ECAM fake BAR is the first element in
>>> the bars array, so we ensure it's the first item to consume memory
>>> from the low MMIO hole.  Not sure how that will work with the current
>>> sorting of the resources based on their size, but it's imperative for
>>> hvmloader to attempt to position ECAM ahead of the other device
>>> resources IMO.
>>
>> Why would this be?
> 
> I would assume it's best to have ECAM access in the low 4G (for 32bit
> OSes) at the expense of some 32bit BARs possibly not fitting in the
> 32bit space.  But the ECAM space could be placed above 4G, and 32bit
> OSes might not care much about extended address space capabilities.

This doesn't require it to be 1st, though? Ideally we would try to put
it below 4G if possible (i.e. if all other BARs which aren't 64-bit
capable still fit), but fall back to putting it above 4G otherwise. In
all of this it would still be put in the slot that its size demands.
If we put it first, a significant gap could result between it and the
first "real" BAR. (Then again a significant gap could also result if
the number of buses to cover wasn't a power of 2.) Properly making use
of such a gap would further complicate the code, I expect.

> Should is_64bar be set for the MCFG "fake" BAR?

As per above, maybe when making a 2nd (retry) pass.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:45:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:45:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299767.1574313 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgE-0001Ye-FF; Mon, 04 May 2026 12:45:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299767.1574313; Mon, 04 May 2026 12:45:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgE-0001YX-C0; Mon, 04 May 2026 12:45:46 +0000
Received: by outflank-mailman (input) for mailman id 1299767;
 Mon, 04 May 2026 12:45:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wJsgC-0001YK-GY
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:45:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsgB-002Q5C-Dt
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:45:43 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894f6-2eae-0a2a0a5409dd-0a2a45069204-6
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:43 +0200
Received: from [202.12.124.154] (helo=fhigh-b3-smtp.messagingengine.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894f5-7371-0a2a45060019-ca0c7c9a8653-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:42 +0200
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 5E80E7A0088;
 Mon,  4 May 2026 08:45:41 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-01.internal (MEProxy); Mon, 04 May 2026 08:45:41 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 May 2026 08:45:39 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:Message-ID:MIME-Version:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:message-id:mime-version:reply-to:subject:subject:to:to; s=fm2;
	 t=1777898741; x=1777985141; bh=7iadlLD7o7T5q9oaPaN3Fuvzh8+f85PP
	/NJE+PPPmb8=; b=eoJL885QK7PYjTCxK/YqPr+jDf092UDw7xOjdXwqCmOTrKhZ
	OtKUGa0e8GtMNypY1LqKqW81X+pb27tE2fmDJWiZ8Jdb/GHoIxUFUxYR6B/oJZYl
	l95za0rf+qOQrVVJgnNJ64F8NOhX7Isd5/IO5tMeuXT7ih+qYlTr9A0Xly46LyYu
	yAl4NamYb9m6owp1ce72ce290TXA0VRKFN//nA4UiX5NZBNZDpvRl0PABTQ+hevO
	vi0jdhMz3vZJ5eh6ObCpJXivn6Rdl83b2crGarGK+KnbFyhXNI2srQX0bTR2Ji4+
	6iHjosrWCNvcwLmLv33qmmVMutWepL1cDuMijQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:message-id:mime-version:reply-to:subject
	:subject:to:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm3; t=1777898741; x=1777985141; bh=7iadlLD7o7T5q9oaPaN3Fuvzh8+f
	85PP/NJE+PPPmb8=; b=Vd5F+0COL/gebIfuXaBDBtot5kzYBBjALdFp2xNmEwap
	XYwztbLa8AdHG0HAoSNBSroD+6uCKWL94z095gnQuYULnN2PBsrzzJFINek0jZp5
	nufi5DVBV70DLhuQGurtQ5XOVM5+DOQRACQY5MckERRr1sKD/CobagnoYRHSNdLk
	TBrD9+kvB6pj4TVIFvn5DVL7LqQ+TCkNWMPd2x8S1SviHBfuJPPUvOw3jiYjssVY
	E8+sv3kJ8wwlpy8v6qNIUW0ERmgiYfQYRMkjAP+qzNJ+CyCcbwksa+rLAwRYuXrv
	MefozsU+OlgaJH7Nfc8Pz53vnmqi/OVlzS+d5OVBkw==
X-ME-Sender: <xms:9JT4aSXOaIKl2NCHYUVdQzYoXU75nbZLa5_xTSBivE8elw4YHS9ryw>
    <xme:9JT4aaGWA3OkVNT3nyPT2UEvlNHnmLoHwgK6l29C0mrCEZYIb0L32wehsvvvIKaAY
    mYsmXKgZf0G0HL8ekZA6tK2VIhZxs84x2izAWgv-zkbygqAx1I>
X-ME-Received: <xmr:9JT4ac3y6DGTUybWnrzqqVRTuh-Brjdl9rsXrg958Z2nVWjBLy6Fu2xN6Ww4RwrreofEazK-BYMtvp5m1hQ1cBAG1lkDAZ-jfeB0W7whoR4>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdelkeekjecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefhvfevufffkffogggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcuofgr
    rhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepffeutdekgeeh
    fedvtdfftdfgffeugfehuefhgeevvdeugeevvefhkeeuveeugeejnecuffhomhgrihhnpe
    hgihhtlhgrsgdrtghomhdpkhgvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihiivgep
    tdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslh
    gvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmhhouggvpehsmhht
    phhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojh
    gvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhi
    gidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrgh
    dprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthho
    pehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:9JT4aUNMZVpKgt4z1moEfLeXVX8mmd4G8NU0Jnm4pV8L4jLlIXI0zQ>
    <xmx:9ZT4aT4EZuuazsay3vsQ0EnFFfPAjB_MotzNPtNtv15K3TPc5noPJA>
    <xmx:9ZT4aW3KoOXpYJMGfYznIsHO_O8BESI6Pzq0mY8CNYnyhYPy3YV_hA>
    <xmx:9ZT4acxfQVXJ2SStFGUSR4yoGE8aep8R3cTlhQb09E1hQokW0DE0Hg>
    <xmx:9ZT4adSKktatCQkd8qxfNTFrUvNUrutdeqSjaGQ9KNxJdHhhMIY5dQ5T>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4 00/13] Changes for several CI improvements
Date: Mon,  4 May 2026 14:35:39 +0200
Message-ID: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1777898743-52D72D75-2D626FAF/0/0
X-purgate-type: clean
X-purgate-size: 4887

- Alpine update
- Debian trixie
- test arbitrary linux branch
- Linux stubdom
- enable SSH access

Green pipeline: https://gitlab.com/xen-project/people/marmarek/test-artifacts/-/pipelines/2498055947

Example Linux test:

Linux-next (20260504):
    https://gitlab.com/xen-project/people/marmarek/test-artifacts/-/pipelines/2496653697

A few genuine failures there:
- kbl-pci-pv-x86_64-gcc-debug:
   domU gets:

   (domU) [    0.449203] pcifront pci-0: xenbus: state reset occurred, reconnecting
   (domU) [    0.449426] pcifront pci-0: 22 freeing event channel 8

   and no PCI device ever appears

- zen3p-pvshim-x86-64-gcc-debug

    [    1.133364] ------------[ cut here ]------------
    [    1.133398] WARNING: arch/x86/xen/multicalls.c:190 at xen_mc_flush+0x198/0x240, CPU#0: swapper/0/1
    [    1.133457] Modules linked in:
    [    1.133488] CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 7.1.0-rc1-next-20260430-gb9303e6bff70 #1 PREEMPT(lazy)
    [    1.133552] RIP: e030:xen_mc_flush+0x198/0x240
    [    1.133588] Code: 48 8b 43 10 48 8b 7b 20 4c 8b 53 38 4c 8b 43 40 e8 9d 85 14 01 48 89 43 18 48 85 c0 0f 89 1b ff ff ff 8b 3b be 01 00 00 00 90 <0f> 0b 90 65 8b 0d 02 9a 94 02 89 fa 48 c7 c7 78 b5 c1 82 e8 10 6e
    [    1.133693] RSP: e02b:ffffc9004000bcc0 EFLAGS: 00010086
    [    1.133730] RAX: ffffffffffffffff RBX: ffff88801da16c40 RCX: ffff88801da17450
    [    1.133778] RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000001
    [    1.133826] RBP: ffff88801da16c40 R08: 0000000000000000 R09: 0000000000000001
    [    1.133874] R10: 0000000000007ff0 R11: ffffc90040015fff R12: ffff888006570280
    [    1.133936] R13: 0000000000000000 R14: ffffc90040016000 R15: 8000000000000073
    [    1.133992] FS:  0000000000000000(0000) GS:ffff888099e14000(0000) knlGS:0000000000000000
    [    1.134040] CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
    [    1.134045] CR2: ffffc9000083f000 CR3: 0000000003034000 CR4: 0000000000050660
    [    1.134045] Call Trace:
    [    1.134045]  <TASK>
    [    1.134045]  ? xen_mc_issue+0x24/0x90
    [    1.134045]  xen_leave_lazy_mmu+0x10/0x50
    [    1.134045]  vmap_range_noflush+0x54d/0x7b0
    [    1.134045]  __ioremap_caller.isra.0+0x174/0x290
    [    1.134045]  ? print_s5_reset_status_mmio+0x1c/0x90
    [    1.134045]  ? __pfx_print_s5_reset_status_mmio+0x10/0x10
    [    1.134045]  print_s5_reset_status_mmio+0x1c/0x90
    [    1.134045]  do_one_initcall+0x58/0x240
    [    1.134045]  kernel_init_freeable+0x1e2/0x240
    [    1.134045]  ? __pfx_kernel_init+0x10/0x10
    [    1.134045]  kernel_init+0x15/0x130
    [    1.134045]  ret_from_fork+0x17e/0x240
    [    1.134045]  ? __pfx_kernel_init+0x10/0x10
    [    1.134045]  ret_from_fork_asm+0x1a/0x30
    [    1.134045]  </TASK>
    [    1.134045] ---[ end trace 0000000000000000 ]---

    Kinda similar to https://lore.kernel.org/xen-devel/aaBH3EAchUwKhrUA@mail-itl/
    (which is still not solved)

- zen3p-smoke-x86-64-dom0pvh-gcc-debug and few other PVH dom0 - dom0 crash without printing panic message

Marek Marczykowski-Górecki (13):
  Add Alpine 3.23 containers
  Switch Linux builds to use Alpine 3.23 container
  Add debian rootfs artifact
  Enable CONFIG_USB_RTL8152 in kernel for hw12 runner
  Include git in the ARM64 build container too
  Support building arbitrary Linux branch/tag/commit
  Add linux-6.12.79-x86_64
  Save Linux config to artifacts too
  Add trigger-test job, to run test on a Linux built from a branch/tag
  Add linux-stubdom dependencies
  Prepare grub for booting x86_64 HVM domU from a disk
  Prepare grub for booting x86_64 HVM domU from a cdrom
  Setup ssh access to test systems

 .gitlab-ci.yml                             |  82 ++++++++++++++++--
 containerize                               |   6 +-
 images/alpine/3.18-arm64-build.dockerfile  |   1 +-
 images/alpine/3.23-arm64-base.dockerfile   |   6 +-
 images/alpine/3.23-arm64-build.dockerfile  |  31 +++++++-
 images/alpine/3.23-x86_64-base.dockerfile  |   6 +-
 images/alpine/3.23-x86_64-build.dockerfile |  43 +++++++++-
 images/debian/13-x86_64-base.dockerfile    |   4 +-
 scripts/alpine-rootfs.sh                   |  24 +++++-
 scripts/build-linux.sh                     |  26 ++++--
 scripts/debian-rootfs.sh                   | 100 ++++++++++++++++++++++-
 11 files changed, 316 insertions(+), 13 deletions(-)
 create mode 100644 images/alpine/3.23-arm64-base.dockerfile
 create mode 100644 images/alpine/3.23-arm64-build.dockerfile
 create mode 100644 images/alpine/3.23-x86_64-base.dockerfile
 create mode 100644 images/alpine/3.23-x86_64-build.dockerfile
 create mode 100644 images/debian/13-x86_64-base.dockerfile
 create mode 100755 scripts/debian-rootfs.sh

base-commit: 76894a5929bc604fb5bdb4aff2f94a6a9df68cdb
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:45:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:45:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299769.1574332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgG-0001yj-1z; Mon, 04 May 2026 12:45:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299769.1574332; Mon, 04 May 2026 12:45:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgF-0001yc-Vh; Mon, 04 May 2026 12:45:47 +0000
Received: by outflank-mailman (input) for mailman id 1299769;
 Mon, 04 May 2026 12:45:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wJsgF-0001kP-5x
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:45:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsgE-001PV9-D1
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:45:46 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894f8-e002-0a2a0a5209dd-0a2a4504ca26-8
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:46 +0200
Received: from [202.12.124.146] (helo=fout-b3-smtp.messagingengine.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894f9-1dec-0a2a45040019-ca0c7c9297d7-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:46 +0200
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfout.stl.internal (Postfix) with ESMTP id C7D731D0007D;
 Mon,  4 May 2026 08:45:44 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-05.internal (MEProxy); Mon, 04 May 2026 08:45:44 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 May 2026 08:45:43 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1777898744; x=1777985144; bh=lDurhCnEVx
	k5QBuNDNgcwnaqx3Wd1t33ua2Ae6U5h5Y=; b=B6p2GnSnMe6AZ9zcJw2SfwTVVT
	Nuq6S7BY+oXpUAkqe3kvJZR9SugIUQPvjW6JqGxn+q0Evpmgq9SA8UtG66LeDT7U
	vFJNud8tSVL5a++J0psfrvv0DkDCUCkFta/nBbFnHZwp3l2XhWx79vz/ZOqmpQ1s
	lQFnXGWJ5IizNUx+ogM80eOYYvkLpD9iwiW+jEHOxqHDe+sOtcijJLKB9t5elcbg
	obGKJeSrm5HN1Y8bPtWSyj/55LqWkAbl9fYtUW3CK8XfebE3UJqeoYcju1ejuNR2
	yiouZr6SKMBYSJiSbbPnPHaOAteaahtgzip4N5hiboMmbjLPelJ5131i7elg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1777898744; x=
	1777985144; bh=lDurhCnEVxk5QBuNDNgcwnaqx3Wd1t33ua2Ae6U5h5Y=; b=M
	cU+zisRjC/V4N4IHRzfMDG4Uth2PttqZt/uSKSs97HJJlO5Nr9s4EmvcvnyapQX3
	8xk7zECV85S98/pnohD2/u3kem1JoA8y3Nf1FNppfHGivHtRW/MG3f5aVaDoHPuG
	cHPvaEf/WCF1o1n9iFkYe0NeJELz/nIMIjHE+TYwmmEns/qwUN4Ru6GkPzhSpWeZ
	29Rac4PMW/DAg2MtTwIc407GgyRDQPd/T0CfihRlQvy07Y6TQ8gIqZAjHt4fOamh
	bfwuE+y1gtcyn72mpD6hQd5czuhwvqsa1rQyHs73HkUMvhJ0x2TTEIk5WhvkWfPW
	mgIsEnzy6uPx6/i5QJdLg==
X-ME-Sender: <xms:-JT4acTqwixw2NJ0eml8Pcp6YMV877QKI0E_bh_f5j8vTk26NXl_oA>
    <xme:-JT4aQr0xq3l3P0B9wXOTE2FU48pXsZyXwrI4JiCt8YZDRFQxWuM65kJUwY6jkZi0
    E2B2HNfpqB1Raw2acXUkQTrRGh6R6jqBP1t4whzxnxBbXSH1w>
X-ME-Received: <xmr:-JT4aSJ3QQVibd2y-eyJobvCCA-P5OPU682s2FcjTBZth_HzAJHUMJHltz4UBHmHCMKGRv_3FLb8U0JNkmu4rXF5yQwudRDu84We-SZYDwM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdelkeekjecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeuudeh
    gfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdr
    gigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrh
    efsegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghr
    nhgvlhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
    dprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggs
    rdgtohhm
X-ME-Proxy: <xmx:-JT4abpv4eI4t1jXVS500yZnemWlajZWDNROHtyB0VRe2C4ucxE-JQ>
    <xmx:-JT4aSxr66QmtrUjrQcwMglYApyslYl-rr-NxOF16FSahLACNfi5Kg>
    <xmx:-JT4aXODErMV7Iy5-RBA_O4b2KN5OwV90Y3B-ifWAeyLCem-I4jySQ>
    <xmx:-JT4af6ROB_8LvS_dEzzbgYzF_l0kLIyGjQpONQ8DegzGSumpVU-xQ>
    <xmx:-JT4aaf80cQQak_J8iDY-4D-xBNnzLQaR3qMnM1jrX59YYUBprHYQP0P>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4 02/13] Switch Linux builds to use Alpine 3.23 container
Date: Mon,  4 May 2026 14:35:41 +0200
Message-ID: <23fbf2c275cfb021161688eb5f0e9013bfb4aa83.1777898148.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1777898746-32E743FF-0F06FFE7/0/0
X-purgate-type: clean
X-purgate-size: 1350

Slowly phase out 3.18 one.

But keep Linux 6.6 on Alpine 3.18 containers - it fails to build on
Alpine 3.23 (due to GCC 15 defaulting to -std=c23).

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v4:
- Alpine 3.23
- Keep Linux 6.6 on Alpine 3.18
---
 .gitlab-ci.yml | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b86d9aa..5281c1f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -21,14 +21,14 @@ stages:
   tags:
     - arm64
   variables:
-    CONTAINER: alpine:3.18-arm64-build
+    CONTAINER: alpine:3.23-arm64-build
 
 .x86_64-artifacts:
   extends: .artifacts
   tags:
     - x86_64
   variables:
-    CONTAINER: alpine:3.18-x86_64-build
+    CONTAINER: alpine:3.23-x86_64-build
 
 #
 # ARM64 artifacts
@@ -52,6 +52,7 @@ linux-6.6.86-arm64:
   script: ./scripts/build-linux.sh
   variables:
     LINUX_VERSION: 6.6.86
+    CONTAINER: alpine:3.18-arm64-build
 
 #
 # x86_64 artifacts
@@ -77,6 +78,7 @@ linux-6.6.56-x86_64:
     LINUX_VERSION: 6.6.56
     ARGO_SHA: "cf73819cacc945baca1a7421e5836d1bd481739b"
     ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
+    CONTAINER: alpine:3.18-x86_64-build
 
 microcode-x86:
   extends: .x86_64-artifacts
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:45:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:45:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299768.1574320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgE-0001be-PH; Mon, 04 May 2026 12:45:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299768.1574320; Mon, 04 May 2026 12:45:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgE-0001bU-J3; Mon, 04 May 2026 12:45:46 +0000
Received: by outflank-mailman (input) for mailman id 1299768;
 Mon, 04 May 2026 12:45:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wJsgD-0001YR-C2
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:45:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsgC-00AF4e-No
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:45:44 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894f6-bab6-0a2a0a5309dd-0a2a450285aa-18
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:44 +0200
Received: from [202.12.124.146] (helo=fout-b3-smtp.messagingengine.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894f7-af86-0a2a45020019-ca0c7c9299d9-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:44 +0200
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfout.stl.internal (Postfix) with ESMTP id 2E9E61D00072;
 Mon,  4 May 2026 08:45:43 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Mon, 04 May 2026 08:45:43 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 May 2026 08:45:41 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1777898743; x=1777985143; bh=Nqcj1coJ3a
	zx/jiKYdqjenpPAF4yXwqZcKoRg2bnT1k=; b=X6C8lIebmOB9+4XKmqk1Av6hzl
	fUHNvj7eSfbIYjwq1aZhasqPubw+q0bbWROBC+iZtC/Kn5SduSmPfp9SlLa9z8es
	GwNyvuk36uxwVA+LQhamvwEgWM6wcb4IItLIdIuwUScfD2NH546gd85sE4M/xxvx
	0SDXqwqr0zpOmDsQit/qr9jNn+xBmGP6YBCm1tBjXXl/rxR5UrYKBpQFrvku5w2M
	rHUxA5J/XopINmeu1YDrylTQO1Y61gaKiEqCJQViW/0EZmQAq58D5HDd7GrEctRu
	ejmFDGj1aA3McVAjERkRZ1C4GvkbjWUIwex8dtI0H299u4fJ3fViGRr9FGew==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1777898743; x=
	1777985143; bh=Nqcj1coJ3azx/jiKYdqjenpPAF4yXwqZcKoRg2bnT1k=; b=u
	CHo96kktDXK2nlXXYkLq0U7X7nKt9nU2Fs8RUwx3nTrZM0UvYcsUT7fDJuWftcnN
	qMLatvUMG9OWGie0pujFr6NCJNfYsn2Y0Zucwv8n6bpeCYE/dcLpQOJ+n5sCDv4v
	a8SUZhsXWFV7Q9X1zWwkJ/9GnPGGIr5QsUG/m+uUTfiCH/moLOqesmIQrJ8xgJv3
	JTMK2+5Qr0vl/oKA5ACYBewpoyCOUKSuvF1nXnSibjOicwhWVaJvpBhbfTKvtF+V
	zuTcMFNPOotWnSnm4cHS5sOE1M5mUqCMSDQSfvfviGD1zd8CBFtQNh0m4OC5Jep5
	xmJg3XLiQSLfQcAuixSSw==
X-ME-Sender: <xms:9pT4acZwb4HAeC3QQsGGFgphEBuZ8n7xS-atHT9riEvs9Q2XMRATsw>
    <xme:9pT4aeTOeQHoXoSoQ9xKyxAQc8U-lvmdTAIYDr0Qc3_wcmZOl-6CLAdr5BOu0WIZH
    AVCuXigMYA-h9kQaH25tcV-e1b_ujEFKKNa5OeqpbVeZBuR7w>
X-ME-Received: <xmr:9pT4afSBACbIZtMJDjX-51OINIp6IQ0o1Qt_mNtf5zl8zxz3jcr3hoz7nigCDvJ-uQ1rpVpUwpDF28PQZwtMoFItVn-1duASsoV7vNeCsro>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdelkeekjecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeuudeh
    gfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdr
    gigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrh
    efsegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghr
    nhgvlhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
    dprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggs
    rdgtohhm
X-ME-Proxy: <xmx:9pT4aSS3iY2WkwnX9rsvDqBXW9eTNjfCo6lLhEDlxUnSWNDRvw7fFw>
    <xmx:9pT4aU4Pc0Auh00Y9_XTihbdpIWSlWH5x-a8B4EBvwNx6kT-m3JvRA>
    <xmx:9pT4ae3xoZQZUnMiDne71asYyuj82U9DLuNCQB2vPVxdu_ypbZm2wQ>
    <xmx:9pT4afA3BKsiKuLz5Sx5nL8pzRqHX6LUz7B_ijrh3LG7lcpH047OPw>
    <xmx:95T4aeEHgd8iLB7qZ_oSaPxVrCfAXHOgGlM-DYEa7dbc3pCyXqQouboT>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4 01/13] Add Alpine 3.23 containers
Date: Mon,  4 May 2026 14:35:40 +0200
Message-ID: <d778b5c5936932fa0925ffa3bf3e1656da26bbaf.1777898148.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1777898744-82374161-B98F688F/10/63158204843
X-purgate-type: spam
X-purgate-size: 6307

Add it in all variants:
- base container
- build container
- initramfs archive

libdw used to be part of libelf in Alpine 3.18, but it's a separate
package in 3.23.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v4:
- Update to Alpine 3.23
- Fix alpine-3.22-arm64-rootfs
- Adjust default in containerize script
Changes in v3:
- add comment about libdw
---
 .gitlab-ci.yml                             | 14 +++++++-
 containerize                               |  6 ++-
 images/alpine/3.23-arm64-base.dockerfile   |  6 +++-
 images/alpine/3.23-arm64-build.dockerfile  | 31 +++++++++++++++++-
 images/alpine/3.23-x86_64-base.dockerfile  |  6 +++-
 images/alpine/3.23-x86_64-build.dockerfile | 43 +++++++++++++++++++++++-
 scripts/alpine-rootfs.sh                   |  6 +++-
 7 files changed, 111 insertions(+), 1 deletion(-)
 create mode 100644 images/alpine/3.23-arm64-base.dockerfile
 create mode 100644 images/alpine/3.23-arm64-build.dockerfile
 create mode 100644 images/alpine/3.23-x86_64-base.dockerfile
 create mode 100644 images/alpine/3.23-x86_64-build.dockerfile

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c698612..b86d9aa 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -40,6 +40,13 @@ alpine-3.18-arm64-rootfs:
   variables:
     CONTAINER: alpine:3.18-arm64-base
 
+alpine-3.23-arm64-rootfs:
+  extends: .arm64-artifacts
+  script:
+    - ./scripts/alpine-rootfs.sh
+  variables:
+    CONTAINER: alpine:3.23-arm64-base
+
 linux-6.6.86-arm64:
   extends: .arm64-artifacts
   script: ./scripts/build-linux.sh
@@ -56,6 +63,13 @@ alpine-3.18-x86_64-rootfs:
   variables:
     CONTAINER: alpine:3.18-x86_64-base
 
+alpine-3.23-x86_64-rootfs:
+  extends: .x86_64-artifacts
+  script:
+    - ./scripts/alpine-rootfs.sh
+  variables:
+    CONTAINER: alpine:3.23-x86_64-base
+
 linux-6.6.56-x86_64:
   extends: .x86_64-artifacts
   script: ./scripts/build-linux.sh
diff --git a/containerize b/containerize
index 38a434a..a74ef45 100755
--- a/containerize
+++ b/containerize
@@ -27,7 +27,11 @@ case "_${CONTAINER}" in
     _alpine-3.18-arm64-base) CONTAINER="${BASE}/alpine:3.18-arm64-base" ;;
     _alpine-3.18-arm64-build) CONTAINER="${BASE}/alpine:3.18-arm64-build" ;;
     _alpine-3.18-x86_64-base) CONTAINER="${BASE}/alpine:3.18-x86_64-base" ;;
-    _alpine-3.18-x86_64-build|_) CONTAINER="${BASE}/alpine:3.18-x86_64-build" ;;
+    _alpine-3.18-x86_64-build) CONTAINER="${BASE}/alpine:3.18-x86_64-build" ;;
+    _alpine-3.23-arm64-base) CONTAINER="${BASE}/alpine:3.23-arm64-base" ;;
+    _alpine-3.23-arm64-build) CONTAINER="${BASE}/alpine:3.23-arm64-build" ;;
+    _alpine-3.23-x86_64-base) CONTAINER="${BASE}/alpine:3.23-x86_64-base" ;;
+    _alpine-3.23-x86_64-build|_) CONTAINER="${BASE}/alpine:3.23-x86_64-build" ;;
 esac
 
 # Use this variable to control whether root should be used
diff --git a/images/alpine/3.23-arm64-base.dockerfile b/images/alpine/3.23-arm64-base.dockerfile
new file mode 100644
index 0000000..5899803
--- /dev/null
+++ b/images/alpine/3.23-arm64-base.dockerfile
@@ -0,0 +1,6 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/arm64/v8 alpine:3.23
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+RUN apk --no-cache add bash
diff --git a/images/alpine/3.23-arm64-build.dockerfile b/images/alpine/3.23-arm64-build.dockerfile
new file mode 100644
index 0000000..1e04b3a
--- /dev/null
+++ b/images/alpine/3.23-arm64-build.dockerfile
@@ -0,0 +1,31 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/arm64/v8 alpine:3.23
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+RUN apk --no-cache add bash
+
+RUN <<EOF
+#!/bin/bash
+      set -eu
+
+      adduser -D user --shell /bin/bash
+
+      DEPS=(# Base environment
+            build-base
+            curl
+            git
+
+            # Linux build deps
+            bison
+            findutils
+            flex
+            openssl-dev
+            perl
+      )
+
+      apk add --no-cache "${DEPS[@]}"
+EOF
+
+USER user
+WORKDIR /build
diff --git a/images/alpine/3.23-x86_64-base.dockerfile b/images/alpine/3.23-x86_64-base.dockerfile
new file mode 100644
index 0000000..4c5807f
--- /dev/null
+++ b/images/alpine/3.23-x86_64-base.dockerfile
@@ -0,0 +1,6 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 alpine:3.23
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+RUN apk --no-cache add bash
diff --git a/images/alpine/3.23-x86_64-build.dockerfile b/images/alpine/3.23-x86_64-build.dockerfile
new file mode 100644
index 0000000..b938d7b
--- /dev/null
+++ b/images/alpine/3.23-x86_64-build.dockerfile
@@ -0,0 +1,43 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 alpine:3.23
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+RUN apk --no-cache add bash
+
+RUN <<EOF
+#!/bin/bash
+      set -eu
+
+      adduser -D user --shell /bin/bash
+
+      DEPS=(# Base environment
+            build-base
+            curl
+            git
+
+            # Linux build deps
+            bison
+            diffutils
+            elfutils-dev
+            findutils
+            flex
+            gawk
+            linux-headers
+            openssl-dev
+            perl
+
+            # Microcode
+            jq
+
+            # Argo build deps
+            autoconf
+            automake
+            libtool
+      )
+
+      apk add --no-cache "${DEPS[@]}"
+EOF
+
+USER user
+WORKDIR /build
diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index 6fa1d56..3cd3ab9 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -40,6 +40,12 @@ case $UNAME in
             # QEMU
             libelf
             )
+        # libdw used to be part of libelf in Alpine 3.18, but it's a separate
+        # package in 3.22.
+        if ! grep -q VERSION_ID=3.18 /etc/os-release; then
+            # QEMU
+            PKGS+=( libdw )
+        fi
         ;;
 
     aarch64)
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:45:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:45:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299771.1574341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgI-0002Dc-9u; Mon, 04 May 2026 12:45:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299771.1574341; Mon, 04 May 2026 12:45:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgI-0002DV-5U; Mon, 04 May 2026 12:45:50 +0000
Received: by outflank-mailman (input) for mailman id 1299771;
 Mon, 04 May 2026 12:45:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wJsgH-0002CB-7Q
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:45:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsgG-001PV9-JB
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:45:48 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894f0-e002-0a2a0a5209dd-0a2a45018504-40
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:48 +0200
Received: from [202.12.124.154] (helo=fhigh-b3-smtp.messagingengine.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894fa-c1f2-0a2a45010019-ca0c7c9ae9db-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:47 +0200
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 876DC7A0095;
 Mon,  4 May 2026 08:45:46 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-05.internal (MEProxy); Mon, 04 May 2026 08:45:46 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 May 2026 08:45:45 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1777898746; x=1777985146; bh=9tevKSqDRz
	difcUXtJIijWe/rZ834b3pQcdRCdRtHlc=; b=S9sLNcyvYBrJ5cMZAa85vLBC4W
	5fJPMRZTwHnEAKUKrtOMgJPGIaL2S79kC26+7Ez8NHnSM+2eYBXsj4g+w+INjFuv
	v9tdOlWrT+UEOfl8faD7Z2BFmlZ4HLRqlewCSG7sN3OV5SlbbrOE1TXB8EaO/Mbc
	/pnjq5UsR0wfHBnJbe5bMJFSlyJzyLTo+4frH+HkaM88iBJNrRkdq0umswI2ncOu
	j8NS26Cxp8+K0awPs49sXyJ091z47S0wsjKTRO9ih0RUT/anmW2/gV7CPKJ/ntL5
	J6L7ExRDSezhruLu57001pXfp4VFP79PfbZiLfosuayYmlBcnErmBnc4SvGA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1777898746; x=
	1777985146; bh=9tevKSqDRzdifcUXtJIijWe/rZ834b3pQcdRCdRtHlc=; b=Y
	Myom1NrGaBMFEuUksG3QcTiJDEwZlLtd6e1RhmsspzmZJclQsNsixUIP7odxhgUc
	8mov59jEGaoFkEIbM8MhCDXFHrzsXi2qquqzIY/nsJ3PjJHhIEclUo5n2oIG9Q4L
	Hqe4riRcnIj5SsDw/UMmWg3JxiUhRE0If/QBL65pRXkBF7Ig0gXoQa3e7bibo90J
	l9k72yIRpOvkmbccFkep7yjfAObEEWHA4XMEYP7ySr3aAuf8bcHpkL3ZOZ/hZaE8
	OEn6yRxj/j6+4+6zOYZNcwdNRxwF9hrC0HlXAmkeK3+oDPL5yRuiV1s1SBHXLV1v
	hDF85Y+I2SBmZS63vDiaA==
X-ME-Sender: <xms:-pT4aa6Im53zFJ_7UDPPVRk1yxjGRzuwf3Zo9CCFP5l358RfBXa5Yw>
    <xme:-pT4aXnH3rObNYUTDYJan_uqDsPf3ivtxf6A8CLJhjwJ-Wdnezdy7MOdymmmJTmGd
    kEqpr1WqWz7GlmULZZYBkz_FuyOWzSmiQP3l4l5rpUKIr_-PA>
X-ME-Received: <xmr:-pT4aTT_YNcNS90BIDvGOyCy4SYGWXTTHOntJxkNCglwEH8nhRRpsLR4ZwYZ8zR3rxuiaUMou0JjAdtUaNgRqO0szhBul01-0FR1J5MxN_g>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdelkeekkecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeuudeh
    gfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepiedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdr
    gigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrh
    efsegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghr
    nhgvlhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
    dprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggs
    rdgtohhmpdhrtghpthhtoheprghnthhhohhnhidrphgvrhgrrhgusehvrghtvghsrdhtvg
    gthh
X-ME-Proxy: <xmx:-pT4aeHQchlvh7J4mLVf4BDI9PGO74n66wLN1q4fsX4qyxigoG8fRw>
    <xmx:-pT4aQHlbhFfkFMfPBT6CAK7a8UPTuyD-OHzz93gHxcRpfC-b9RPaQ>
    <xmx:-pT4aUSGEpinw5D_-sg-m2RfRweqsn2pUzYWy6bHDYnx1PNerPaVUw>
    <xmx:-pT4aZK5PDFUs5_FryCos4nbHkXpHAlBCRMZ1LgdqzMmwrb9H2K-Lw>
    <xmx:-pT4aRoesoKHOOHxy9SfCXKFx16_7eVOes8iYd-cfWREnty2-CWiT6Sp>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v4 03/13] Add debian rootfs artifact
Date: Mon,  4 May 2026 14:35:42 +0200
Message-ID: <2247b496ddb5fa94fad000bc4be65c2b3fc89b00.1777898148.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1777898748-BC617FF4-CE8D8A4F/10/63158204843
X-purgate-type: spam
X-purgate-size: 4332

Will be used as dom0/domU in some tests.

Install systemd, but set it up to start scripts in /etc/local.d/ too, so
tests don't need different paths for Alpine and Debian.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
---
Changes in v4:
- disable persistent journal via config
Changes in v3:
- fix typo and missing dropbear args
Changes in v2:
- Use systemd
- update to trixie
- disable systemd-journal-catalog-update.service,
  systemd-modules-load.service and persistent journal to save boot time

---
---
 .gitlab-ci.yml                          |   7 ++-
 images/debian/13-x86_64-base.dockerfile |   4 +-
 scripts/debian-rootfs.sh                | 100 +++++++++++++++++++++++++-
 3 files changed, 111 insertions(+)
 create mode 100644 images/debian/13-x86_64-base.dockerfile
 create mode 100755 scripts/debian-rootfs.sh

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5281c1f..4147be5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -71,6 +71,13 @@ alpine-3.23-x86_64-rootfs:
   variables:
     CONTAINER: alpine:3.23-x86_64-base
 
+debian-13-x86_64-rootfs:
+  extends: .x86_64-artifacts
+  script:
+    - ./scripts/debian-rootfs.sh
+  variables:
+    CONTAINER: debian:13-x86_64-base
+
 linux-6.6.56-x86_64:
   extends: .x86_64-artifacts
   script: ./scripts/build-linux.sh
diff --git a/images/debian/13-x86_64-base.dockerfile b/images/debian/13-x86_64-base.dockerfile
new file mode 100644
index 0000000..f98355f
--- /dev/null
+++ b/images/debian/13-x86_64-base.dockerfile
@@ -0,0 +1,4 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 debian:trixie-slim
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
diff --git a/scripts/debian-rootfs.sh b/scripts/debian-rootfs.sh
new file mode 100755
index 0000000..1da54a5
--- /dev/null
+++ b/scripts/debian-rootfs.sh
@@ -0,0 +1,100 @@
+#!/bin/bash
+
+set -eu
+
+WORKDIR="${PWD}"
+COPYDIR="${WORKDIR}/binaries"
+UNAME=$(uname -m)
+
+apt-get update
+
+PKGS=(
+    # System
+    bridge-utils
+    dropbear
+    udev
+    systemd-sysv
+    iproute2
+    inetutils-ping
+    util-linux
+    cpio
+
+    # Xen toolstack runtime deps
+    libbz2-1.0
+    libuuid1
+    liblzo2-2
+    liblzma5
+    libyajl2
+
+    # Xen Test Framework
+    python3
+
+    # QEMU
+    libglib2.0-0
+    libaio1t64
+    libpixman-1-0
+    )
+
+case $UNAME in
+    x86_64)
+        PKGS+=(
+            # System
+            pciutils
+
+            # QEMU
+            libelf1
+            )
+        ;;
+
+    aarch64)
+        PKGS+=(
+            # Xen
+            libfdt
+            )
+        ;;
+esac
+
+apt-get -y install "${PKGS[@]}"
+
+# Xen
+cd /
+# Minimal ramdisk environment in case of cpio output
+echo "ttyS0" >> /etc/securetty
+echo "hvc0" >> /etc/securetty
+echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab
+echo "hvc0::respawn:/sbin/getty -L hvc0 115200 vt100" >> /etc/inittab
+echo "rc_verbose=yes" >> /etc/rc.conf
+echo "DROPBEAR_EXTRA_ARGS=\"-R\"" >> /etc/default/dropbear
+echo > /etc/modules
+# disable unneded services
+rm -f etc/systemd/system/timers.target.wants/apt-daily*.timer
+rm -f etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service
+rm -f usr/lib/systemd/system/sysinit.target.wants/systemd-journal-catalog-update.service
+rm -f usr/lib/systemd/system/sysinit.target.wants/systemd-modules-load.service
+# don't need persistent logging, avoid journal flush service
+mkdir -p etc/systemd/journald.conf.d
+cat >> etc/systemd/journald.conf.d/storage.conf <<EOF
+[Journal]
+Storage=volatile
+EOF
+# Tests install a startup script as /etc/local.d/xen.start
+cat > /etc/rc.local << EOF
+#!/bin/sh
+
+for f in /etc/local.d/*.start; do
+    \$f
+done
+EOF
+chmod +x /etc/rc.local
+passwd -d root
+
+# Create rootfs
+cd /
+{
+    PATHS="bin etc home init lib lib64 mnt opt root sbin srv tmp usr var"
+    find $PATHS -print0
+    echo -ne "dev\0proc\0run\0sys\0"
+} | cpio -0 -H newc -o | gzip > "${COPYDIR}/rootfs.cpio.gz"
+
+# Print the contents for the build log
+zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:45:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:45:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299772.1574350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgJ-0002SS-Ga; Mon, 04 May 2026 12:45:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299772.1574350; Mon, 04 May 2026 12:45:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgJ-0002SE-Cm; Mon, 04 May 2026 12:45:51 +0000
Received: by outflank-mailman (input) for mailman id 1299772;
 Mon, 04 May 2026 12:45:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wJsgI-0002EG-Hb
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:45:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsgH-002Q9j-Qw
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:45:49 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894f4-2eae-0a2a0a5409dd-0a2a4505bc9c-42
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:49 +0200
Received: from [202.12.124.146] (helo=fout-b3-smtp.messagingengine.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894fc-aaa8-0a2a45050019-ca0c7c92c031-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:49 +0200
Received: from phl-compute-07.internal (phl-compute-07.internal [10.202.2.47])
 by mailfout.stl.internal (Postfix) with ESMTP id 597721D000D3;
 Mon,  4 May 2026 08:45:48 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-07.internal (MEProxy); Mon, 04 May 2026 08:45:48 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 May 2026 08:45:46 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1777898748; x=1777985148; bh=RrCBw/kdRl
	dmMfpbhnl07n1mcjH5lkh9QXsoy56IYxc=; b=mtzpJuHRxo9VqbwOLCFwY0yqR3
	o9K/AcG2SAks6VfoE82h2Jg1BvyShyXGIJ/li+Cih9vVp2qhbvkKks5fnrDWEe60
	1O0i+u6H+PQYeS4Dml3k9XgrWcR33o87GYb05KqQLOAGWDKQv68yj7IoxGCMaNC2
	PCL9Lo5ug161JKu0Wcb2/vt4GoT0HNlGv18SkBjxx6JcutCVB4sOrmpFDJusdMCa
	idVO2y3qTN0+dHw2R8tuN97oSFWSkJkb7us8GBeZUb29dHDFOEw90ksKx8FT13wL
	SdjSGOUyRmoDV991W+IRF2p7Vrc4iqnOrhoJQfUIANrpK/Vst38oQzMloDFQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1777898748; x=
	1777985148; bh=RrCBw/kdRldmMfpbhnl07n1mcjH5lkh9QXsoy56IYxc=; b=D
	igvE7G9Unsk4XHhbE7oDpV0jKsyBJke/uwLJdkbRtaUW2MUKeUTaJfmwqGCPdw9c
	sY4IDuhwRh5JDb1fK4WqS7RQp44lF9o7Wv17bQt0S0jOUmH0QeebiuOsK+5ZAbPq
	fJo5SHqCo13PVUk5LzPnI1LyPZ1lBN+GgxVyIC8EdKR4bTx5Ty5NZxBh1NCccovQ
	AKH+qiy3d/lfwPiOG555onH4PvjMnAs4lLZWnj11tfP7+TsmmhE2vRaFp2VyZik0
	tKDZSBt0gBHbZUkMSE3r2oejtLb8qr9YTeLUkNcQ6oDhfv32q0paf8CS8UJEMl+n
	kuecYYKkxAHzRGFRq+7lg==
X-ME-Sender: <xms:-5T4aVmFcu1THMbD7HKPmuDCYAStxPut1bHAqvZsfI-fP5X6umYrXw>
    <xme:-5T4aXujyTQFuBNub8McL82rLzr-EtJLOB675ilyopzvi7mgzf4dMHHb1eyq8FxWc
    Dq99qihqgjX_W-BZu2iJVQhxzIetdt_9jO6vA4okMVaN7TcwS8>
X-ME-Received: <xmr:-5T4aT-wMaVRLzDwHQmCFjCIYEonrATKdkOXHTzb9UoUN0Oht6r15YYPXedVVWC6tvjEs6jhXAoULS5LdZI6F3j0wHzOl6nNc-9CwtEwV54>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdelkeekkecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepffeitdeg
    veffteelvdeghffhvefghfefkeelheeujeejgedvvdfgffejuedtvdelnecuffhomhgrih
    hnpehkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprh
    gtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghp
    thhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoheprh
    hoghgvrhdrphgruhestghithhrihigrdgtohhmpdhrtghpthhtohepmhgrrhhmrghrvghk
    sehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
X-ME-Proxy: <xmx:-5T4aRPPNZwjeQ5kkp5VgoxqV7axjZ7BGj5RDTXAlXF9RCZlD3SjhA>
    <xmx:-5T4aRH6jW_jeF7mJ3MYr39gu2zBrV1WlzhhLRnj73pphUGfPZHaXQ>
    <xmx:-5T4afQYx1chyXUsLtg1zJXeX4HpqevBrjZRmJddA4wJdTxGbh4-Og>
    <xmx:-5T4aesfWi_czuu2JBDctsi0orw5pKk-1ijcXSAreFWtIvyJwUwR-A>
    <xmx:_JT4aQjQjbCA2zB2uaqp2FYTgsOuO-aX1Ah3O1UUH1R7_qecxUdznq5w>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4 04/13] Enable CONFIG_USB_RTL8152 in kernel for hw12 runner
Date: Mon,  4 May 2026 14:35:43 +0200
Message-ID: <e2c1ff1c83ea1fa58af486aa6e90073b7c74c788.1777898148.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1777898749-E3563443-53F9635C/0/0
X-purgate-type: clean
X-purgate-size: 808

It uses this USB network interface.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
This was posted before at https://lore.kernel.org/xen-devel/20250411203336.585215-1-marmarek@invisiblethingslab.com/
---
 scripts/build-linux.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index 441b872..cf0e744 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -32,6 +32,7 @@ case $UNAME in
             | grep 'XEN' \
             | grep '=m' \
             | sed 's/=m/=y/g' >> .config
+        ./scripts/config --enable USB_RTL8152
         ;;
 
     aarch64)
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:45:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:45:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299773.1574360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgL-0002jY-RD; Mon, 04 May 2026 12:45:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299773.1574360; Mon, 04 May 2026 12:45:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgL-0002jN-LJ; Mon, 04 May 2026 12:45:53 +0000
Received: by outflank-mailman (input) for mailman id 1299773;
 Mon, 04 May 2026 12:45:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wJsgK-0002a2-4S
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:45:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsgJ-002Q9j-GW
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:45:51 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894eb-2eae-0a2a0a5409dd-0a2a450c8f4e-46
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:51 +0200
Received: from [202.12.124.146] (helo=fout-b3-smtp.messagingengine.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894fe-62f1-0a2a450c0019-ca0c7c928a8f-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:51 +0200
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfout.stl.internal (Postfix) with ESMTP id 08D161D000DB;
 Mon,  4 May 2026 08:45:50 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-06.internal (MEProxy); Mon, 04 May 2026 08:45:50 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 May 2026 08:45:48 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1777898749; x=1777985149; bh=aH/QFTCDK+
	4uref1LKMXrUhKJWfLK5QJxoF2YksRrqE=; b=CiMazIxvPelcygMfosrox7rgIq
	DcAYVDjavFKbHOxToo5XMNf3dBBx8J95HdnmwQWuDUsrz2QMf4Q4+PnPr75rpB38
	a6JsRsueuN+Ta5am4q4C+6zFGJWCOsh/1eeeP6RubesR9AaxJ91XHS8ho2ZxCljO
	yn2CrOr0YaWyc5yRmZ3zJecnFT7vNNkYo3/cEDM2qG2VyLhFkn7VQ6NiQQ5h755o
	XnYFAVYDDCG5KKlv3SXug+BC12rPyo15w1ys4/9nqeUqGs3OEXYPQZoCjr17v/mi
	w0GkRRNmG5Pk23LNvUcBTZ2Thsq/k0vqKcWObCHIE2Buy26zADHl1sCOPMbQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1777898749; x=
	1777985149; bh=aH/QFTCDK+4uref1LKMXrUhKJWfLK5QJxoF2YksRrqE=; b=F
	K23RcqzWHjTbdfVzKZAkcqOn0xG0LO9vFYJEY2boGPlSWF5I4wfsLjHyCk0arbrH
	sgG0pDUagp4e65krWwMZ3c/eS79RIlDGXPIGBH7j2JnD/E/xYNp6aHDNYwhAqoDN
	nRkAIgKf5bZPEGXd1nfkS6nHY1sInCsiU7ZgtLP6NPM+dyOAssydntaCEftFPO2z
	uBFRe5619433bGnyhNkGQpHQvH7NQUbtgc3es7Bou5tjzHEFi1fiUsubXCW6K32a
	pP6DUKRyOPEba+XBm8CilX4/RDBumzA8Wi1kvGwqapH9i4ByZaO+V5+dkR2mscxO
	H2X3x9kuIetOqpeua+ASw==
X-ME-Sender: <xms:_ZT4aflTe_qt7ODm9aNOePwUJmcjyn9hHXq8KcnfIuDhQjKNWfXelg>
    <xme:_ZT4aeUJk26AX5DmfbYiIv0WMtKz0J--8G56fWyDa5RXYtq8qOW7eJRrDhCLPHxnW
    tmwTKxIuISSCRcu1PtF0DdBws43Ne9rBK81nh_tSBy4S1uNxA>
X-ME-Received: <xmr:_ZT4acEePGoco8l3yrwGzvG-4wnEHd3abcMsh1LlkY5t_7GyT2nKRNP0yLwAKPcWs0CT2zpoQorUoGcyPQSFaKM4nyhLVnXgBkRGIuol30U>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdelkeekjecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeuudeh
    gfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdr
    gigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrh
    efsegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghr
    nhgvlhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
    dprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggs
    rdgtohhm
X-ME-Proxy: <xmx:_ZT4aSc7PCxDFSFEx_zHhpRO0WTpxgwoe3XwSSjJ-R_BJdV3aS3jPw>
    <xmx:_ZT4aVKTulDPz58jyfYZb2Lw-CgSNVSs0Qrlw7Ta29B2rxccEXKZXQ>
    <xmx:_ZT4afGtnUFKz6MJJqd4WyyVVGiCEjQtbX9FukV3-FpcC-bM-ORXvQ>
    <xmx:_ZT4aQDXBup1kgkmgIsbT_qeCIAmjxJtC01rN51gqeaHL6Hcr86tXg>
    <xmx:_ZT4adi15_KzkTQfFbS4p9je70vxi3s3FZA_-RTeiRcv58G43yCBRqUG>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4 05/13] Include git in the ARM64 build container too
Date: Mon,  4 May 2026 14:35:44 +0200
Message-ID: <7ddce46d356128e4aa3b27a8c82da83a6317898b.1777898148.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1777898751-6CF62CF5-4C0A0A05/0/0
X-purgate-type: clean
X-purgate-size: 761

It will be used for fetching some Linux versions.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
---
 images/alpine/3.18-arm64-build.dockerfile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/images/alpine/3.18-arm64-build.dockerfile b/images/alpine/3.18-arm64-build.dockerfile
index 25a8dbd..38464c9 100644
--- a/images/alpine/3.18-arm64-build.dockerfile
+++ b/images/alpine/3.18-arm64-build.dockerfile
@@ -14,6 +14,7 @@ RUN <<EOF
       DEPS=(# Base environment
             build-base
             curl
+            git
 
             # Linux build deps
             bison
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:45:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:45:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299774.1574368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgN-00030O-D0; Mon, 04 May 2026 12:45:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299774.1574368; Mon, 04 May 2026 12:45:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgN-000309-75; Mon, 04 May 2026 12:45:55 +0000
Received: by outflank-mailman (input) for mailman id 1299774;
 Mon, 04 May 2026 12:45:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wJsgL-0002jD-PM
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:45:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsgL-00AF8N-4b
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:45:53 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894fd-bab6-0a2a0a5309dd-0a2a4507d572-24
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:53 +0200
Received: from [202.12.124.154] (helo=fhigh-b3-smtp.messagingengine.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894ff-229c-0a2a45070019-ca0c7c9ad00d-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:52 +0200
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 9F5257A0095;
 Mon,  4 May 2026 08:45:51 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Mon, 04 May 2026 08:45:51 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 May 2026 08:45:50 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1777898751; x=1777985151; bh=tD30M4kLq4
	1eZNf2YXsYIAJSLodDcoJVNKG5LxCYvCU=; b=vebFS+rIUtTsgsHuCVXhb34nqD
	0sDHscOpX28AXFwrPGd98eS+9CgoZJlU6/j8Qpr9wxDB6Y/OVRi6sWucdbHqlkV0
	pndLeVmZIExU3EK9ScGMq8PlUdpliTeaWrR9JiEXwAG5qmU2i5HAqfo9EHQTYdBf
	lYawxLdnIqlMQtI9QDfPI6dsPqSxBOwbbs6TR+rM6FjnJ8fTArU9LTJJvC98m4WV
	Ee0ZT/2UPhAGbArvJFN788JyGX/w8JOgT0NVGsYuqR9JYdaE25uHg2AfulOumtac
	372yjh+z9ObQTvhE3TqmzMXdexrRkWUTAPNEAsV4ZnbQsTvQS+kD/+VdluBw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1777898751; x=
	1777985151; bh=tD30M4kLq41eZNf2YXsYIAJSLodDcoJVNKG5LxCYvCU=; b=B
	ipOC5PID10pTO0FITfA0xWq+bqT8RftD8O3BVmn/U25dhoHxVe7aWxYbRjIkmsc8
	GbYfnvEk/FwKb8UZUfjiLR6ESn+AaiwVqIP1tLTc0h4ji3XrSc+q98JghsqyOFEC
	9YEYZmarH9lF0yweWcIxwkUUEbdN+j8aVWJDKhShIeIXGRZHN0ZO4mFbKTvVHhi7
	BfgEjd87nDLWGAwHJiZIlOeEjRQgIGH2vehHzmpfg+ojfsOAJhlrYSM7PlvVwRaG
	hVoVUiQIXIvQOFxVj82sRbZH3DeUew2K/l/5hOMSGhsfyDnFyPC1b3FLw79u4slW
	M9ffwYN+mH+4jhcu4P3OQ==
X-ME-Sender: <xms:_5T4aQmDNGN1PEyY9K_F8yGgrvwOctkvoSurcioSBi5PNVidnTZGww>
    <xme:_5T4aWvHjiDPGZj71uIwsyiKxAK_llqwWxaPWw3G8VXFdFQ0NZ4FBdDtBpF6QmJpE
    hixGnRf-21M-rWDrHaRwLH-IANQLtWlv6oyflzBdnF507r1c0g>
X-ME-Received: <xmr:_5T4aW-dq2fX6osIdV7cSsNfRmnG2juRDeUDFJh9vbday1Q9wgJgfObStT3yk4mHECJLXZLjYTtLJMnIi_K2kwWBI1PDowx68EzsFSuvvAQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdelkeekjecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfelgffg
    ueffgeejudehieegteeugeefkeejtefghfdvieffieeijefgudeikeegnecuffhomhgrih
    hnpehgihhtlhgrsgdrtghomhdpkhgvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihii
    vgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmhhouggvpehs
    mhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprh
    hojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihht
    rhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdroh
    hrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphht
    thhopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:_5T4aYPseD2Y-Nyla1oUdwv0V6mAg3zzOoGNTZ8weAsRZaZimYrMUQ>
    <xmx:_5T4acEi1Kgqk_ya5FwfRS_Dp5TOkNO67gKHDWO-LiGse8v5rS-yeQ>
    <xmx:_5T4aeSLdOUJiLN7FWdFCFeQyMktFouqZtAjqdlibP0n-gO92KA-1A>
    <xmx:_5T4aRuwt2wYF-CYY7mZhq1Gd6CPJ5sqI3h9ZzMN03VGC3PBNYQDxg>
    <xmx:_5T4afgEqNNHEwXBGzfhOgS-tdtcuUWDIZpzeKIpvfqgMsBu56rDFvYM>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4 06/13] Support building arbitrary Linux branch/tag/commit
Date: Mon,  4 May 2026 14:35:45 +0200
Message-ID: <9440095275dd9313f7f8e2a41384e1275be0fcaa.1777898148.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1777898753-15C5CC48-FB090AA6/0/0
X-purgate-type: clean
X-purgate-size: 4305

Change how kernel version is given to the script - use arguments, to
avoid confusion between pipeline level variables and job level ones.

The build-linux.sh now can take either just the kernel version (used to be
LINUX_VERSION variable), or git branch/tag/commit name + git URL (new feature).
Go with "git init" + "git fetch" instead of "git clone" to support any
of branch/tag/commit.

This also defines optional linux-git-* jobs which will build the thing
if LINUX_GIT_VERSION and LINUX_GIT_URL variables are provided for the
pipeline.

The idea is to define separate CI schedules for the test-artifacts repo
with LINUX_GIT_URL/LINUX_GIT_VERSION pointing at Linux trees to be
tested (for example linux-next), and then trigger matching pipelines in
the xen repo for testing with that version.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v4:
- Adjust error message on missing version
- Extract kernel version from job name
Changes in v3:
- pass kernel version via script arguments, not variables
---
 .gitlab-ci.yml         | 29 +++++++++++++++++++++++++----
 scripts/build-linux.sh | 23 +++++++++++++++++------
 2 files changed, 42 insertions(+), 10 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4147be5..45006d4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,9 @@
 variables:
   REGISTRY: registry.gitlab.com/xen-project/hardware/test-artifacts
+  LINUX_GIT_VERSION:
+    description: "branch/tag/commit for the linux-git jobs"
+  LINUX_GIT_URL:
+    description: "git url for the linux-git jobs"
 
 stages:
   - build
@@ -30,6 +34,13 @@ stages:
   variables:
     CONTAINER: alpine:3.23-x86_64-build
 
+.linux-tpl:
+  script: &linux-script
+  - linux_version="${CI_JOB_NAME}"
+  - linux_version="${linux_version#linux-}"
+  - linux_version="${linux_version%%-*}"
+  - ./scripts/build-linux.sh "${linux_version}"
+
 #
 # ARM64 artifacts
 #
@@ -49,11 +60,16 @@ alpine-3.23-arm64-rootfs:
 
 linux-6.6.86-arm64:
   extends: .arm64-artifacts
-  script: ./scripts/build-linux.sh
+  script: *linux-script
   variables:
-    LINUX_VERSION: 6.6.86
     CONTAINER: alpine:3.18-arm64-build
 
+linux-git-arm64:
+  extends: .arm64-artifacts
+  script: ./scripts/build-linux.sh "$LINUX_GIT_VERSION" "$LINUX_GIT_URL"
+  rules:
+  - if: $LINUX_GIT_VERSION && $LINUX_GIT_URL
+
 #
 # x86_64 artifacts
 #
@@ -80,13 +96,18 @@ debian-13-x86_64-rootfs:
 
 linux-6.6.56-x86_64:
   extends: .x86_64-artifacts
-  script: ./scripts/build-linux.sh
+  script: *linux-script
   variables:
-    LINUX_VERSION: 6.6.56
     ARGO_SHA: "cf73819cacc945baca1a7421e5836d1bd481739b"
     ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
     CONTAINER: alpine:3.18-x86_64-build
 
+linux-git-x86_64:
+  extends: .x86_64-artifacts
+  script: ./scripts/build-linux.sh "$LINUX_GIT_VERSION" "$LINUX_GIT_URL"
+  rules:
+  - if: $LINUX_GIT_VERSION && $LINUX_GIT_URL
+
 microcode-x86:
   extends: .x86_64-artifacts
   script: ./scripts/x86-microcode.sh
diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index cf0e744..e01b517 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -1,8 +1,11 @@
 #!/usr/bin/env bash
 
+LINUX_VERSION="$1"
+LINUX_GIT_URL="$2"
+
 if test -z "${LINUX_VERSION}"
 then
-    >&2 echo "LINUX_VERSION must be set"; exit 1
+    >&2 echo "Version argument missing"; exit 1
 fi
 
 set -ex -o pipefail
@@ -12,11 +15,19 @@ COPYDIR="${WORKDIR}/binaries"
 UNAME=$(uname -m)
 
 # Build Linux
-MAJOR=${LINUX_VERSION%%.*}
-curl -fsSLO \
-    https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
-tar xf linux-"${LINUX_VERSION}".tar.xz
-cd linux-"${LINUX_VERSION}"
+if [[ -n "${LINUX_GIT_URL}" ]]; then
+    mkdir linux
+    cd linux
+    git init
+    git fetch --depth=1 "${LINUX_GIT_URL}" "${LINUX_VERSION}"
+    git checkout FETCH_HEAD
+else
+    MAJOR=${LINUX_VERSION%%.*}
+    curl -fsSLO \
+        https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
+    tar xf linux-"${LINUX_VERSION}".tar.xz
+    cd linux-"${LINUX_VERSION}"
+fi
 
 make defconfig
 ./scripts/config --enable BRIDGE
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:45:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:45:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299775.1574377 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgO-0003FL-Mw; Mon, 04 May 2026 12:45:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299775.1574377; Mon, 04 May 2026 12:45:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgO-0003En-Fa; Mon, 04 May 2026 12:45:56 +0000
Received: by outflank-mailman (input) for mailman id 1299775;
 Mon, 04 May 2026 12:45:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wJsgN-0002zJ-9q
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:45:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsgM-00AF8N-Lg
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:45:54 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f89500-bab6-0a2a0a5309dd-0a2a45059892-12
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:54 +0200
Received: from [202.12.124.154] (helo=fhigh-b3-smtp.messagingengine.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f89501-aaa8-0a2a45050019-ca0c7c9a81fd-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:54 +0200
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 31D957A00A9;
 Mon,  4 May 2026 08:45:53 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Mon, 04 May 2026 08:45:53 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 May 2026 08:45:51 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1777898753; x=1777985153; bh=6N28n/OuOK
	FC0lV13jcrj5ZtQAQhOnik8wiu6mipkKI=; b=im8mSYKyU/w3PnUQyU4ZE7Osl0
	lNThkUuSLHX5hoUAxjK7XlLM4Ref1zz/i1lrXFxKdOFCfbyIMKAw+kTOfG8g8X5g
	CzPTNHHuHx5giKkl7mN8Jmu3Yyrtr8whbnpLwfXE+tU71mkwn6ag9voXj63H/TTQ
	t/1qvSBRI4dlZJTiGlTnMTGHBh+vca82SA3/5VzGfw50qoPWC1VJZryoKUaQwlKY
	7hPQhUx6kOSSaqu5FoftrRsuGEbbr+7ssN1toF0X/NF9Ezbd7u3A3Sp5rJd3mupI
	nTWmhh25UiMDwx7GR6gFemlprt1RlZMo0JXuioqKAg5VUJXuawgcYvsi4VyA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1777898753; x=
	1777985153; bh=6N28n/OuOKFC0lV13jcrj5ZtQAQhOnik8wiu6mipkKI=; b=m
	cpYSfP9GT0TaLDKtKpxkPSdnvgrLg/0qr3O4FalT4KkTus1E7Ja7Ag2aU7XDLI43
	oO9D0+UYexZwSu44aBmnfePAwCr1V5/JhvnxQ9EK4m/Krec2KHalPPvUsdjjiq1U
	6h/URf+32m5jaXibdT8pjt1OSvysPex0Y8M/7TCqYjfL3wC0k33w6tHxsWjbAMLy
	bl91peWWfvFbIehU5GyFZ2dFr6xjH8r/s4cepxXBCfm3llA28odQ7IxTv3OIYX2y
	hWUDq2OTeD69UP1+LmgWbw6MRS08Sr9fYYIrVcYcHbJsXh1VjabsrwUyo8lOgvDA
	R+S/WfLh4Fqj5jXykRJvA==
X-ME-Sender: <xms:AZX4adn8VuruvZy0UIXLbkLv3x6NLrAkq0O5envrRgn5YlZ3PQa16Q>
    <xme:AZX4afuEbU9C22FwVoDXtc2D3dzmA2yhYJfWjKKA9etD84ZfyGuJL1d0bWZ0wpFwI
    ULpsEysx_mYjmodizfA3CcNm4Ij-NXi_4ffH1J5hnDPDq5ocQ>
X-ME-Received: <xmr:AZX4ab-zkRsl2jA5tGlLabTbxmA_HnLnEps4hCQdoJ4pHQzpA8x-9KripH6ATb4qn1TSqcRn2pOK-tjiyo-0YurQCc2SDVFE6x_7P4Tn1CU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdelkeekkecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeuudeh
    gfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdr
    gigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrh
    efsegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghr
    nhgvlhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
    dprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggs
    rdgtohhm
X-ME-Proxy: <xmx:AZX4aZNMPIC6EauEG8pObJXQSmfevSTpI4gE0ScXzE2zd3D4zuFLBw>
    <xmx:AZX4aZFpEg1q7UnTV_6G1aujrsFX1teFyUEhxJN6Jbj3LpyjenTbsQ>
    <xmx:AZX4aXSSVy8Qep129rImUV0sKCzbRVV6Ab4Ly6pUqMppQe4k1DWmng>
    <xmx:AZX4aWvbBseKEpXPUc9ZuEmObxEHxHRYKQE1Y0odLGd6CCVCrK8TIQ>
    <xmx:AZX4aYgZBPHqAqVQ33yOHc2ydwgyDXsmXES3DhNjfVzFclfxfnsJAhnc>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4 07/13] Add linux-6.12.79-x86_64
Date: Mon,  4 May 2026 14:35:46 +0200
Message-ID: <731be3ebc522aeaaf08ee150bc566abc339b501b.1777898148.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1777898754-E0DA3443-225C71AA/0/0
X-purgate-type: clean
X-purgate-size: 1009

This is necessary for new Zen4 runner.
Do not include Argo module in this build, as it isn't compatible with
6.12 yet.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Changes in v2:
- update 6.12.34 to 6.12.60, retaining acks
Changes in v3:
- update 6.12.60 to 6.12.79, retaining acks
---
 .gitlab-ci.yml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 45006d4..3ba8a31 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -102,6 +102,10 @@ linux-6.6.56-x86_64:
     ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
     CONTAINER: alpine:3.18-x86_64-build
 
+linux-6.12.79-x86_64:
+  extends: .x86_64-artifacts
+  script: *linux-script
+
 linux-git-x86_64:
   extends: .x86_64-artifacts
   script: ./scripts/build-linux.sh "$LINUX_GIT_VERSION" "$LINUX_GIT_URL"
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:45:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:45:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299778.1574386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgQ-0003WJ-3n; Mon, 04 May 2026 12:45:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299778.1574386; Mon, 04 May 2026 12:45:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgP-0003W4-T0; Mon, 04 May 2026 12:45:57 +0000
Received: by outflank-mailman (input) for mailman id 1299778;
 Mon, 04 May 2026 12:45:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wJsgO-0003FQ-QZ
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:45:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsgO-001PY4-5k
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:45:56 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894f8-e002-0a2a0a5209dd-0a2a4504ca26-38
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:56 +0200
Received: from [202.12.124.154] (helo=fhigh-b3-smtp.messagingengine.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f89503-1dec-0a2a45040019-ca0c7c9ac5bd-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:56 +0200
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfhigh.stl.internal (Postfix) with ESMTP id B0DA17A0095;
 Mon,  4 May 2026 08:45:54 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-01.internal (MEProxy); Mon, 04 May 2026 08:45:54 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 May 2026 08:45:53 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1777898754; x=1777985154; bh=/PEOatfv3G
	Fp83oMsDqhOsTKAuwjohfiS/0nM0aij44=; b=cKJvQnkojqRgJoBdKX6ORGdlpt
	oIKjuMHKfvbFptqOuSVmBkXcHd3MNQqFcjJf7jcQ0eG6CM6VgKjpc/EoBdrwzbeJ
	EYg+JZK0o+5ibffSvz94GZvx+MXGd4tMz95lxNIyTW+EANqjGL33FJkaqmymfnoC
	QDxK6N9iZyepj/pl4UvMFaHpjBT5PQKjaDrBowmWI7zTycm4s0xPmMH7JrFV7Mtt
	5D4Gp9bVa4NEpDz7RKBb4pCQcRMZjgR7KfxkA6RvKT6prdB6CbHGJAi15GqoVYWz
	LdoLlp44lRzELoEzX3bPSpLREq28/3Mz3gNrhajQbj8QNUqx5SBIhqGG46tw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1777898754; x=
	1777985154; bh=/PEOatfv3GFp83oMsDqhOsTKAuwjohfiS/0nM0aij44=; b=u
	ieaaRiy6TEb43kCPF5ZKSrJ/40aZLjhT4ceCr789z33JHEel1Oo2gG0VCBvHD4Mv
	Kdd3oUH8gNfQJIP1q/0/EVKLuWwQngZb+t/OqwUybLjfgTYgR2+aY+KDPBlXpATH
	rtTNtXOPSEK6ofy1URDa+cuGB6YeiJeIeFhLHjjTK/pDiHI1k8NNDraL0qY0nfIt
	m5+x/SOsJWIJ8hiGM6qXqlvgQ93a1V0sv7CLpxarOB9OVIR+Jf3S2AjuZHfVHcvb
	yu1fVdyuOP2s7uah5vtYD4Lauirevj0EjvarRwziansTzK2eY0AlRUBRgbkCexlT
	4vJJnJJNIuZZceshaLolQ==
X-ME-Sender: <xms:ApX4aZpBoKqdwzGgm_jBOiuCR4eKh07VxQH7kqzKaUILedD43NFm7Q>
    <xme:ApX4aSgxUcIoa0Kfnxjh2BpIqoCemfG6Upp5w38TaS5t2aQ8_HgDKU2-uu8-REQ47
    MAAjCbfFw-G4_8xJ1i7Uy4lS0Q8uuakfxefTEdxWTzTuSHS70Y>
X-ME-Received: <xmr:ApX4aehwrlIYZCQq7hKbJ_8hK5dfRseqImAy7xzLE_i5MY99qV4nVt0_9DjNnmpy7XHUvFh_M4uyGo91uCSJthFDYnN3eH3L_1jVwY6nz40>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdelkeekjecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeuudeh
    gfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdr
    gigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrh
    efsegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghr
    nhgvlhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
    dprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggs
    rdgtohhm
X-ME-Proxy: <xmx:ApX4aQitN7l_HC0t2w_BeLjK90Nz6yozBKY8KwanstSaMpuk2CZZKQ>
    <xmx:ApX4aWKZn4oj7SWRGj0V_7gtKYMkjF3KBSNZl_W-gSnn1XFlweckXg>
    <xmx:ApX4aXG0FtAAryU64ySFFhoieBem9HYDkeXR6HUmUV_KzYpgqhBOmA>
    <xmx:ApX4aSSiLaz_dvz87yxKQF28UWmrWkr32bj82dPvkWQoFAAQDvTf-A>
    <xmx:ApX4aeUxpEEfR3bTzf9bz3NXIvPTCIARE8SBHjCJ210PYy7bXGc9XIZg>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4 08/13] Save Linux config to artifacts too
Date: Mon,  4 May 2026 14:35:47 +0200
Message-ID: <678529fd15fbe1f863bbdcd89e28ff2af0a8dae5.1777898148.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1777898756-43D6C3FF-29F885DB/0/0
X-purgate-type: clean
X-purgate-size: 542

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 scripts/build-linux.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index e01b517..c51e45d 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -53,6 +53,8 @@ esac
 
 make olddefconfig
 
+cp .config "${COPYDIR}/linux.config"
+
 case $UNAME in
     x86_64)
         make -j$(nproc) bzImage
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:46:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:46:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299779.1574395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgT-0003wf-Cq; Mon, 04 May 2026 12:46:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299779.1574395; Mon, 04 May 2026 12:46:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgT-0003w9-7B; Mon, 04 May 2026 12:46:01 +0000
Received: by outflank-mailman (input) for mailman id 1299779;
 Mon, 04 May 2026 12:45:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wJsgQ-0003im-VN
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:45:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsgQ-002Q9j-Ak
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:45:58 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f89502-2eae-0a2a0a5409dd-0a2a450cd58e-12
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:58 +0200
Received: from [202.12.124.146] (helo=fout-b3-smtp.messagingengine.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f89504-62f1-0a2a450c0019-ca0c7c92868f-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:57 +0200
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.stl.internal (Postfix) with ESMTP id 343A31D0007D;
 Mon,  4 May 2026 08:45:56 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-01.internal (MEProxy); Mon, 04 May 2026 08:45:56 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 May 2026 08:45:55 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1777898756; x=1777985156; bh=ve9wb5iJ3q
	hyIrumeuNlQiZMz9wNHWfL9RFUX8Adii8=; b=RPsStvbo/PzmF5TMgHDYeNxsTF
	M9JOlM3b4J+U9ucy6AUqnAsapi5bl5jH4Eule8j3uFS/Thr4FQ1ts9u2uHoTlc+r
	iBX0g2e1yRYB56HAxtKmHkvS3pPEinTSXTuDg7XgDvNDZqAPi03TGbSefopQ6rR3
	LMrKmQiLAkjViTXP4XsZaYOb9ayWTTvtZD1k7RbMOp/nzTobxn1GF5hD1qhS1MCL
	O0LVYdf8LsD+PBF8oErHvc7/odyIsC26tkb9xMTPHRXrBVdunePfSciquG0FrOrm
	t5sN717mpNrtXTGXU4U/lyWhz3PSFi7PBDwCaXt0rJ7N8puO5PiIPyxJFaOQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1777898756; x=
	1777985156; bh=ve9wb5iJ3qhyIrumeuNlQiZMz9wNHWfL9RFUX8Adii8=; b=J
	lUijjRKDLhGzu3x0aZAlLpDHDDsGEK+Z+clfWVayU0FY01mu44kuZiEayx9iYKI+
	KJmTi+jKdMpuXLauRcIMc1kgu4uG+QwuWxczX4GUhHbfG8l2iSjV3jf0lTxyyFdn
	DHoknauGxZatFr0MPlucOIH/qCHprqKZy0BWxb0x2lazGgNzbazyAZ/E4UC2xpEZ
	6FZNQTmaxAui9sC5rJvGFn2Xu/VqMgPODkLutHU/EVc0xV9xmIDFrYw9b5mLhax0
	JgDZFKkdQbTgFUyu7Xe7trAcedwWmAc3YMPuotEa+nsBkXItQUmIeMeeMnaa/JUC
	Y7PCdyJ4o1bznqKTKG4Pw==
X-ME-Sender: <xms:BJX4aU13NEBncIpgc6pFO5fzVJJujIerv-tw8DzXWv9oUi2L7WWS6g>
    <xme:BJX4aV_grlXtr_fGWdu7Q8X3ianLWhzmuZM-7WEpE6HLLXaEPiyagQtB3JJRuGury
    wP1vi3ON_qCjmmiQt45vBr7QijJkXEHPVTnpRx8sSXm4OZpBA>
X-ME-Received: <xmr:BJX4aVN1sXVpHY_3Snp4sCNSyskvJoZykb086iI_q5Fx7MVTgIMTVzvwaSx6o2fTN26dEsVQ7nSlgKrn7WbCK7RwcDAa5okgyVogYMZcD-M>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdelkeekjecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepffeitdeg
    veffteelvdeghffhvefghfefkeelheeujeejgedvvdfgffejuedtvdelnecuffhomhgrih
    hnpehkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprh
    gtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghp
    thhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoheprh
    hoghgvrhdrphgruhestghithhrihigrdgtohhmpdhrtghpthhtohepmhgrrhhmrghrvghk
    sehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
X-ME-Proxy: <xmx:BJX4aZewHDTIk5fZxvMVNoQUGcG8PrXvs7-R3DupygNU-mJiZOhowA>
    <xmx:BJX4aUWXKOlywvLD7ZANrrqh5Wy_xKd0d6hAQLZS-itLMzVesUAMYQ>
    <xmx:BJX4aRjAyAu6mwJQVnVBFSeWY3mNUBJFB4CWlpAJlz5ZwpAcCA1PVg>
    <xmx:BJX4aT-iaJ0LWYgpLwKkKXWwdpUgpMyl9dFE5iKl8NBwhttc2CMauA>
    <xmx:BJX4aawKrsd5meplNHDzItJJPdGV7TZ4zr77fU5Wnn4ExyTzjHzOlkX9>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4 09/13] Add trigger-test job, to run test on a Linux built from a branch/tag
Date: Mon,  4 May 2026 14:35:48 +0200
Message-ID: <4fdfa09a7ff699f5d51ab9beb95b18ccbd0c0be3.1777898148.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1777898757-F7015CF5-4F876756/0/0
X-purgate-type: clean
X-purgate-size: 2195

When scheduling pipeline in test-artifacts repo, it can get also
TEST_TRIGGER_REPO and TEST_TRIGGER_BRANCH variables, to trigger relevant
pipeline to test just built artifacts.
Pass ARTIFACTS_REPO+ARTIFACTS_BRANCH to the child pipeline to ensure it
fetches artifacts from the right job, but avoid xen test pipeline
inheriting other variables, as they might have unintended consequences
(for example REGISTRY one).
For example, to build linux-next and test Xen staging on it, the
pipeline could be triggered with:

    LINUX_GIT_URL=https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
    LINUX_GIT_VERSION=master
    TEST_TRIGGER_REPO=xen-project/hardware/xen
    TEST_TRIGGER_BRANCH=staging

The triggered xen test pipeline will skip most build jobs.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

---
Changes in v4:
- add inherit:variables:false
---
 .gitlab-ci.yml | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3ba8a31..b3c2b65 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,9 +4,14 @@ variables:
     description: "branch/tag/commit for the linux-git jobs"
   LINUX_GIT_URL:
     description: "git url for the linux-git jobs"
+  TEST_TRIGGER_REPO:
+    description: "gitlab repo on which test just built linux, for example 'xen-project/hardware/xen'"
+  TEST_TRIGGER_BRANCH:
+    description: "branch in TEST_TRIGGER_REPO to test on, for example 'staging'"
 
 stages:
   - build
+  - deploy
 
 .artifacts:
   stage: build
@@ -115,3 +120,20 @@ linux-git-x86_64:
 microcode-x86:
   extends: .x86_64-artifacts
   script: ./scripts/x86-microcode.sh
+
+trigger-test:
+  stage: deploy
+  trigger:
+    project: $TEST_TRIGGER_REPO
+    branch: $TEST_TRIGGER_BRANCH
+    strategy: mirror
+  inherit:
+    variables: false
+  variables:
+    ARTIFACTS_REPO: $CI_PROJECT_PATH
+    ARTIFACTS_BRANCH: $CI_COMMIT_REF_NAME
+    LINUX_JOB_X86_64: linux-git-x86_64
+    LINUX_JOB_ARM64: linux-git-arm64
+    BUILD_FOR_TESTS_ONLY: 1
+  rules:
+  - if: $TEST_TRIGGER_REPO && $TEST_TRIGGER_BRANCH
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:46:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:46:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299780.1574399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgT-00040D-Pj; Mon, 04 May 2026 12:46:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299780.1574399; Mon, 04 May 2026 12:46:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgT-0003zB-KL; Mon, 04 May 2026 12:46:01 +0000
Received: by outflank-mailman (input) for mailman id 1299780;
 Mon, 04 May 2026 12:45:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wJsgR-0003qf-Pr
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:45:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsgR-00AFBL-5K
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:45:59 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894f6-2eae-0a2a0a5409dd-0a2a45069204-44
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:59 +0200
Received: from [202.12.124.146] (helo=fout-b3-smtp.messagingengine.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f89506-7371-0a2a45060019-ca0c7c92de8f-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:45:59 +0200
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfout.stl.internal (Postfix) with ESMTP id AB64E1D000DB;
 Mon,  4 May 2026 08:45:57 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-05.internal (MEProxy); Mon, 04 May 2026 08:45:57 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 May 2026 08:45:56 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1777898757; x=1777985157; bh=JzEDyjPRPU
	xC57KHDouSD/8yuPWNMyeGIMSfhE5EUM4=; b=s7vTZMUnNGrTKYlT8ZY+vksdNv
	t8rwet8wZu7tD2RKHT8GH8uWpT7JzgRz4TWprXJAOxTf2yO6w9oUoukH6H3Ez1r9
	/VWtpl+DFLpMdJs5ew8SBZepvDWgMkhmkpWdnUD66IRwCeSOzqcVUJ0W5gNXI0d7
	FivB+VNscRrGEc3+37OXdN9WHgQZ01AertXVkXuQ+YX4ivjzI+yBf8cozvohbBpy
	MVTEc+wMLUgw/sunMr4wFxFR3+j7iCWEbzD60vjAl/CjvTtwaBDBCUjcbm47Xwaq
	1/Lqu2l5F/icNFp7FvpgrcuCWIY/Kr6sPHTuFRFDhPYs4HXuoEJ9C1UBAStg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1777898757; x=
	1777985157; bh=JzEDyjPRPUxC57KHDouSD/8yuPWNMyeGIMSfhE5EUM4=; b=Y
	7lHbZzEAa+PRli0pRZjEUzBfX/kHiRco4mdPxbcgquonhbdeIgZG7Pts5WjJiIZ6
	mMIcjSgIWhLcNDdg1oW8n7PSjsyKItraVqOTaULY9pDn43l6awfx9zpDe1Qt66KW
	s1Iveq3/PQ+yawpETHoYK/pT4WiQhTLM9aNvGxfecVMy5HUuDDoKG52uLiXF2pKl
	FbnMdlhFCFjQHcGICftLEp3en+gzN5XFdUnOaPjTBywYYk5X9f34GeVsRfo4gA1g
	fhstOryRVuHGFQ/2FNwlOdzA4xpl8ClL3eO0+4BlHxkuk4PdfDuWsZkTG6c1r/3I
	As79O5CTJPEZM84JwD9PA==
X-ME-Sender: <xms:BZX4aUjsPbU_q9vTKcVauh9eRCn9gB3sKjSlA9wLuEnCO4HVM5KG2w>
    <xme:BZX4aT4xMyuNtv85ReF9jd7xwWm0RWZlDjp3ev67bvZsSGfLPzyKSDU3iScGNLm5h
    qJmcXmERKdVzRk2lxHBDLRHjK8Hxh982a9PY6PRAL8Q95w8o9Y>
X-ME-Received: <xmr:BZX4aUY-RC8LNqzJ_J8MEowD824orVbcS6T3kocH1IOzIvZnHulGpclLbmf8X3mjBGxyyL8vtpSHCsreWU_qBtaTZcHezjPdrb4RCKg-nrs>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdelkeekkecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeuudeh
    gfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluhhsth
    gvrhfuihiivgepudenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdr
    gigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrh
    efsegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghr
    nhgvlhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
    dprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggs
    rdgtohhm
X-ME-Proxy: <xmx:BZX4aQ6SKhKux9w0EsfM7qXZy1-QT4BKLwiAVckNGIs1r22pb3T-zw>
    <xmx:BZX4afCAVvnaKDWxBc2B6PAWsjeud5aohZQJ_w82XtX-F82-mhPPLw>
    <xmx:BZX4aeff6OK8kkuMGXxdaRP072BEMu2zdBtlgvcSkHoAeya5ma1UdQ>
    <xmx:BZX4aWInfueGM6ST8fUBKOJbPRy2fxt6SUnZCBh-TCxX5BpA_Zt5qA>
    <xmx:BZX4aZuigBqg0CdAWhZ9Fir4LLlNX2OlrXSLSmI56CIqwAvRu5VIgrPA>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4 10/13] Add linux-stubdom dependencies
Date: Mon,  4 May 2026 14:35:49 +0200
Message-ID: <11ddf37d6acc5ef3274f3d09f7ea2f0b64b62243.1777898148.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1777898759-CF77FD75-6FF29069/0/0
X-purgate-type: clean
X-purgate-size: 623

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 scripts/alpine-rootfs.sh | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index 3cd3ab9..2671ab5 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -39,6 +39,10 @@ case $UNAME in
 
             # QEMU
             libelf
+
+            # Stubdomain
+            grub-bios
+            libseccomp
             )
         # libdw used to be part of libelf in Alpine 3.18, but it's a separate
         # package in 3.22.
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:46:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:46:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299784.1574406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgU-0004Eg-QH; Mon, 04 May 2026 12:46:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299784.1574406; Mon, 04 May 2026 12:46:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgU-0004CB-GC; Mon, 04 May 2026 12:46:02 +0000
Received: by outflank-mailman (input) for mailman id 1299784;
 Mon, 04 May 2026 12:46:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wJsgT-0003vv-At
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:46:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsgS-002QAe-Md
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:46:00 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f894f8-5cb7-0a2a0a5109dd-0a2a4508c074-32
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:46:00 +0200
Received: from [202.12.124.154] (helo=fhigh-b3-smtp.messagingengine.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f89507-63b5-0a2a45080019-ca0c7c9adeaf-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:46:00 +0200
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 37CF97A00A5;
 Mon,  4 May 2026 08:45:59 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-05.internal (MEProxy); Mon, 04 May 2026 08:45:59 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 May 2026 08:45:57 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1777898759; x=1777985159; bh=AO5G90pFBx
	jSjPmnC9JaB7F6HUPav+M3PPDEti/IWr0=; b=is1HC3S54Zve+k6VTxN4yd+rp9
	Om6nSdnb3cAg5RNzFNu9NKfEhwy8uxcTlw5yWdyZ+BjVlPg3WSP90Q/YwhoJbcbK
	M+RjxxgsF26j2KpWHKdFG+XmnIQg7kWV6nQ6CqUK6d8EQR+4IzV9jCV5Me1fUTkT
	xvpU+2EE1QB3xcxc46Ikxq+ik5tyNCjB6LBJj7DtujB5g9tOKY29K8SsNrg4b0BO
	I2xylb0uKxUuAQIZmh8qIoB3PIWq+BnqhyNRJCdz29VybLnkegqBw4/sRSLIwjn6
	q9ucRqkdrDncr4/04ZV+TBgik8K53jYZlkOcxT6wCajm8QgfMW4A+05Ea30g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1777898759; x=
	1777985159; bh=AO5G90pFBxjSjPmnC9JaB7F6HUPav+M3PPDEti/IWr0=; b=Y
	5P/ySTYsl650uJKavS68h+fbpM6vgCjw2f70/o1R86aKOC5bw0tkKVS3MxxzkXNX
	gvzy7TN2purf5ILNTKx8UiJdoE61W29uM1LQCCntoN0w7OdapIZOqlbKEl3+JQhp
	nj5tuqryJU95K0U1NSrQgC1bxMX5bZLcs5mqGiviIIp9b9a2Wx5LgBslyQUNSV4P
	S0VsSrujtUSDi/KBTHBwrIhwwffYW0cXbZ/zIIN1QoGpHTd9p0WgFZSxk+dX987m
	nYAGWi3mtOG15vvhkLz6R4yrePQCyO0GKHCUfo3Ns1GZbqb163oEIIbvoJsuPrA4
	Cp2HWtOb0qF/pnFfxCAiw==
X-ME-Sender: <xms:B5X4aRKFN65RMhVEgERbFo4jYLcI4hpGAif8TTrkU4qsIrmmgIdQHA>
    <xme:B5X4aUC79nLE5kRPNeLPLW4mbxoxqj3Qo3MzVxaDVCXZvG9XJfKtP_llh2KrDfBxo
    3iFLslaOc97QnX8fCCCSqFCYt6rMDT_jHxUGYd_XL_jK5yDoA>
X-ME-Received: <xmr:B5X4aSDNW2FNcIApqSgBb7FGEQVZ01J6GYQZhfez_WjomhemToPOs44xvP2WwHueirADekyws0vHa72Gx-yPPCdn05i1YN_5r2Di3DpNOGM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdelkeekkecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeuudeh
    gfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluhhsth
    gvrhfuihiivgepudenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdr
    gigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrh
    efsegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghr
    nhgvlhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
    dprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggs
    rdgtohhm
X-ME-Proxy: <xmx:B5X4aeBAgk1vUAcL2G3pT9owrePCfg_-cgTVPNLl9T7BTSolcqkOkw>
    <xmx:B5X4aVqcVEp0JiVUZBGiwhkPbW4RTwGFuEYqjffZtvkrl8vnYwwcEA>
    <xmx:B5X4aQnIc92R_g_xgmpTVAdUdwEpLdG7rjtIp4EHGbXXtQkv_m2Erw>
    <xmx:B5X4adyJidyTraGH6UDcWPkm3CuMPmWABiGezeGTB5ugG9ipbBJEKw>
    <xmx:B5X4aX0iNhxdiMAwQ9KSlFVqWfWkF80_DLpqLQPbtPsBmmPmp56u9RTw>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4 11/13] Prepare grub for booting x86_64 HVM domU from a disk
Date: Mon,  4 May 2026 14:35:50 +0200
Message-ID: <00344b97286d79b76334622611da48ceda7e7e8f.1777898148.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1777898760-C176EDB1-B29018E4/0/0
X-purgate-type: clean
X-purgate-size: 849

The stubdomain test will use it

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 scripts/alpine-rootfs.sh | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index 2671ab5..18f43e6 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -96,5 +96,12 @@ cd /
     echo -ne "dev\0proc\0run\0sys\0"
 } | cpio -0 -R 0:0 -H newc -o | gzip > "${COPYDIR}/rootfs.cpio.gz"
 
+if [ "$UNAME" = "x86_64" ]; then
+    # Prepare boot sector for HVM disk
+    grub-mkimage -o ${COPYDIR}/grub-core.img \
+        -O i386-pc -p '(hd0,msdos1)/boot/grub2' \
+        boot part_msdos ext2 linux biosdisk configfile normal
+fi
+
 # Print the contents for the build log
 zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:46:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:46:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299785.1574422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgX-0004qA-5L; Mon, 04 May 2026 12:46:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299785.1574422; Mon, 04 May 2026 12:46:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgW-0004pk-VY; Mon, 04 May 2026 12:46:04 +0000
Received: by outflank-mailman (input) for mailman id 1299785;
 Mon, 04 May 2026 12:46:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wJsgU-0004EC-P1
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:46:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsgU-008wGN-3n
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:46:02 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f89506-5cb7-0a2a0a5109dd-0a2a4507cc76-24
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:46:02 +0200
Received: from [202.12.124.154] (helo=fhigh-b3-smtp.messagingengine.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f89509-229c-0a2a45070019-ca0c7c9ac7b5-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:46:01 +0200
Received: from phl-compute-07.internal (phl-compute-07.internal [10.202.2.47])
 by mailfhigh.stl.internal (Postfix) with ESMTP id B1CA47A00A9;
 Mon,  4 May 2026 08:46:00 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-07.internal (MEProxy); Mon, 04 May 2026 08:46:00 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 May 2026 08:45:59 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1777898760; x=1777985160; bh=XX0Dg/7YfK
	rsJr0bP1RqDlxPQIUTpCyaHF1UQw2fWRQ=; b=nkRlkLPC/WA0AHbfJhP6DjBSEO
	Saa4DJsoeTnjolHYnKw3wXIVcgBO7z49UgDkqlT/ct9+nKDy4+YFFO4CzOvSaRLO
	V7M08+YxwAx/oE7RqyoYbZtX0Ra5Vkim/xQYyRYLLYjvRqh14JfLvbpGVPMdqZyL
	na0hf6SGhO+IY3Mj91zGm5Ed8XmNaRK6tzWUAcihTOjcJDoGRlxTt1pu8FQlDK60
	E1UQS8AzrHaY0eHySzMLRsXL4Ni7YRNEgWBS51tEEWDkv1KCJzuthUWuoCqBNapt
	P9r+XgzPhMteOaJMRMSMCvFqpi3vgpe+hM32zI7wJ/j9xgGq+eBeiPnS2jvw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1777898760; x=
	1777985160; bh=XX0Dg/7YfKrsJr0bP1RqDlxPQIUTpCyaHF1UQw2fWRQ=; b=N
	27uBja9WafF7tXG3QkODmosMFQiAaPVt9nSIFCeKpLhLUZUrIy4iZUQOecpB2Cwk
	+50VwAX0hc0pcw4gkjtvxeZRv17eA1uKXGXvOaWG+c/bIIN8F9OJKiLGkX4DvSmt
	bnjD6nyhArc63nwCIbPLDQqeQ65dELy+RzYHYmH/OwHJWVxkpnaB2rToS6VMSu3y
	9X8HViY6bpnG4IwjrfF1p4nB1P/1ijkmwn+4BKZDJN4RzDhL6XdznUNQLRWaFKET
	0qh2m0CCGth1uPzJlzWPrjfpfzpgDkUlui++EtzH9v3TZM82BpFZd1iIe2dFxSkq
	a9ywreUarTSgahtoRGI8w==
X-ME-Sender: <xms:CJX4aQaxbMtpP6yfv0bSck5cZH5U8AKzsfBIevDiaui1GRbOiY2eZw>
    <xme:CJX4aSSqB8VyW68_l4I9r2YSNsDMDKE0_blY9lWmMjFloHd7vvgPq2kgE75sR9ZYx
    yv8BOKG-hnaBWNf9VLqfu3GpJNF6aBnG_t3JtsrG9DBS0EYnQ>
X-ME-Received: <xmr:CJX4aTRcYntFSjIoyJlEXg5j5bfc9plX_OsccEqO-6lx0KZiroE0DlUX4BGiTFhGCUkAiTuSt4Y6MNvC2RFceE_7eHWvqVuyuOAVTQxdhL0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdelkeekkecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeuudeh
    gfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdr
    gigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrh
    efsegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghr
    nhgvlhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
    dprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggs
    rdgtohhm
X-ME-Proxy: <xmx:CJX4aWQkSYWQ9FSNM7eqvlCbLgUqSoHPj3h4Q0CmsNwagawYGt6XWQ>
    <xmx:CJX4aY4THPDo5Q-x2Bk_VEeEgJGeFwTGLcvvcEVQ7TcvV9p0pt1zTA>
    <xmx:CJX4aS1BaqSudc4Vt1b4nN9C5oR2JNLPSg1wdHlZ7128zJrz7Q-h9w>
    <xmx:CJX4aTB2gemWTV99xfxJdWsgKckbr2aJ5eWOMQOLrGl5gwaJv8AzdQ>
    <xmx:CJX4aSHv7HohQ34Zwt5Uxi57ir3oPZZ3Ymxw7eMXkClu6oZM6KnIAxYu>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4 12/13] Prepare grub for booting x86_64 HVM domU from a cdrom
Date: Mon,  4 May 2026 14:35:51 +0200
Message-ID: <4aa490a4f8a26ec86397cef30091cdd3f3598c30.1777898148.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1777898762-2B77AC48-D4272D76/0/0
X-purgate-type: clean
X-purgate-size: 825

The stubdomain test will use it.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 scripts/alpine-rootfs.sh | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index 18f43e6..f649550 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -101,6 +101,9 @@ if [ "$UNAME" = "x86_64" ]; then
     grub-mkimage -o ${COPYDIR}/grub-core.img \
         -O i386-pc -p '(hd0,msdos1)/boot/grub2' \
         boot part_msdos ext2 linux biosdisk configfile normal
+    grub-mkimage -o ${COPYDIR}/grub-core-eltorito.img \
+        -O i386-pc-eltorito -p '(cd)/boot/grub2' \
+        boot part_msdos ext2 linux biosdisk configfile normal iso9660
 fi
 
 # Print the contents for the build log
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:46:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:46:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299789.1574430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgY-00059N-MN; Mon, 04 May 2026 12:46:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299789.1574430; Mon, 04 May 2026 12:46:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgY-00058i-EW; Mon, 04 May 2026 12:46:06 +0000
Received: by outflank-mailman (input) for mailman id 1299789;
 Mon, 04 May 2026 12:46:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wJsgW-0004hA-KS
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:46:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsgV-008wGN-V4
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:46:03 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f89506-5cb7-0a2a0a5109dd-0a2a4507cc76-40
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:46:03 +0200
Received: from [202.12.124.146] (helo=fout-b3-smtp.messagingengine.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69f8950a-229c-0a2a45070019-ca0c7c92b73f-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:46:03 +0200
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfout.stl.internal (Postfix) with ESMTP id 4419D1D00072;
 Mon,  4 May 2026 08:46:02 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-05.internal (MEProxy); Mon, 04 May 2026 08:46:02 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 May 2026 08:46:01 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1777898762; x=1777985162; bh=/ymJBx8GTx
	CdivGqgtTD1zSfg4O+MOsuDgVQ5lv9Mo8=; b=IoLAfBpHrE9+vgcJr+XguJYmO5
	sPSgkofYKMKErZXztKRdI3jBEDjASIn0Oa+rSAOyh0rp8ZGFx9m+lR9zR0pmdOni
	bMpiOn5QM9M7euI/iK/9/kTAlUCMPlzS57TOCNcCSO164tjvlCjVmHANCjQ4Ldr3
	D4OGgqQnCzJeK4soRMYkFz/8FvPFQYIdJ9mNaa2VuPHrJJZ5NDFd7YkmlyzbWTRO
	9VWLBwLZmUuobcb8txDz+dNYV2PoHA3PRMdvToDxpTRQyt/2mqurmpNEpqEMJQ/9
	anoTC9aEbKD3nLGNQG+cf0WJucYznSwld501AXuiuVyUeZiQ2z2IMLbYwi4Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1777898762; x=
	1777985162; bh=/ymJBx8GTxCdivGqgtTD1zSfg4O+MOsuDgVQ5lv9Mo8=; b=R
	vAmDOmYsF1CM4FqU5KEb8VBYiCi8hBkEgnLklPMz8tRX9g1JvQfmm/RMB5ibf4gd
	60WNcjLn1eCVg/V/OnouYU9ZwkRFDrs41Bpofdk+8dLOd6MDjAcGHSH9LtrAwkIX
	/uj3X7dfTMaB+CxpSgXRoQdmQif0jkkK8zQ0bcpSPtG+InvaRz8Q1TelJXWmjXhX
	xtdDqd+ujvAKp0YTWDFs18zXrUj6/MNu9Sdft35J16bl7NlMIIPI2u6aN/vj1QAP
	4/QBZDOJBnkdjdwtl1OguSUszKT1w4MWrxKwdPRxjOSBuV3Re4qVD/xZakmwToeQ
	rvG74nnQCPTj1WzuLgbqg==
X-ME-Sender: <xms:CpX4aWuOWafVUGj--21TZNVRYQds5YyZLF1K3Nk4Zsdtk5YBLe6sbg>
    <xme:CpX4aSWs5ub1Ilf3QWRIiWzBzpRDlgARW8AF3Hh2l2OvaZuWrTWQQkNzRr0qMpq2f
    gkLU90Ri_JYDKjJdFAN2qeuIL4xUIuqyG4jCG2ga0ZweRfwDQ>
X-ME-Received: <xmr:CpX4aaEcD_oROZDbTrabNIzgkn52yeC6vGWvT2XaVnq8Vbqxn1Dn34WW6n9O-T2V8g_RZfRPnRAGQrv9PEycQw_h0rRAnYlQ_PcTOW41NiE>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdelkeekkecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpefhvfevufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfeuudeh
    gfdvfeehhedujeehfeduveeugefhkefhheelgeevudetueeiudfggfffnecuvehluhhsth
    gvrhfuihiivgepfeenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdr
    gigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrh
    efsegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghr
    nhgvlhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
    dprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggs
    rdgtohhm
X-ME-Proxy: <xmx:CpX4ac0ANZRGTxRmhQEZsxCIYOCqRGTZjhlNRT5JOZLdbgQVH3KWQw>
    <xmx:CpX4aUNCW3FgORfWVkP8t1NRuktSiP5zVnTM1oWhDYmt4Akn3UnuzA>
    <xmx:CpX4aT7CI3Wwq5ViH1TFjwHFBYdOSuOPTsPVG00K4bx-Ka5O25v3SA>
    <xmx:CpX4aW2wHiw0vNBQFFsq_ynehOg9f_m4xCeUlSI6O8alvJDPfDiPGQ>
    <xmx:CpX4aRIc0DCDWHZDCDcCNDP6ZV7Ig8bIHJO9M5jXY4oZwtbrNlnPQzTs>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4 13/13] Setup ssh access to test systems
Date: Mon,  4 May 2026 14:35:52 +0200
Message-ID: <13f837cd9f394d3b4eddb4849156b8ed5d06d31b.1777898148.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1777898763-1505AC48-0BB3A418/0/0
X-purgate-type: clean
X-purgate-size: 1527

For this add also bridge package, so xenbr0 can be configured with
/etc/network/interfaces.
This allows extracting more logs out of the test system.

Create empty /etc/network/interfaces, so the 'networking' service starts
cleanly even if no interfaces are configured this way. This is
necessary, as dropbear service depends on networking.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v4:
- adjust commit message
- drop DROPBEAR_OPTS=\"-R\"
Changes in v2:
- do not allow passwordless login
---
 scripts/alpine-rootfs.sh | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index f649550..c7fee4b 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -10,6 +10,8 @@ apk --no-cache upgrade
 
 PKGS=(
     # System
+    bridge
+    dropbear
     libgcc
     openrc
     udev
@@ -72,6 +74,7 @@ rc-update add loopback sysinit
 rc-update add bootmisc boot
 rc-update add devfs sysinit
 rc-update add dmesg sysinit
+rc-update add dropbear boot
 rc-update add hostname boot
 rc-update add hwclock boot
 rc-update add hwdrivers sysinit
@@ -85,6 +88,7 @@ echo "hvc0" >> /etc/securetty
 echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab
 echo "hvc0::respawn:/sbin/getty -L hvc0 115200 vt100" >> /etc/inittab
 echo "rc_verbose=yes" >> /etc/rc.conf
+touch /etc/network/interfaces
 echo > /etc/modules
 passwd -d "root" root
 
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:46:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:46:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299850.1574441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgp-0007K2-AG; Mon, 04 May 2026 12:46:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299850.1574441; Mon, 04 May 2026 12:46:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJsgp-0007Jt-4L; Mon, 04 May 2026 12:46:23 +0000
Received: by outflank-mailman (input) for mailman id 1299850;
 Mon, 04 May 2026 12:46:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19df306664a000f373@swg.vates.tech>)
 id 1wJsgn-00078H-K0
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:46:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJsgm-008wOo-W5
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:46:21 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19df306664a000f373@swg.vates.tech>)
 id 69f89518-5cb7-0a2a0a5109dd-0a2a450aa660-16
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:46:20 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19df306664a000f373@swg.vates.tech>)
 id 69f8951c-56b3-0a2a450a0019-b9ff1c228e6d-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:46:20 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19df306664a000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 04 May 2026 12:46:16 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id 7642186532;
 Mon,  4 May 2026 14:46:15 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=q1TgSmZVUf3dXKf9bf2uUFbwIpA7FlTLhGnt2rhwGps=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=lUySsOR0jgGmF+HhEUUYa3qzA7m3FUIq1kyUE8gFrhvPinhTOux4sL67xxL7F31lnehIZzPz2
 kuZMx2B5uG/AjDU5be0wyFohKWRtQWNKH09jZJeQT9lyTQy7Ec5CEGoRGetrLuAmk1jyUdlnF2q
 vKO8Grb+CRO1unGhEyczgMeA033mCCA6pM7XIUsawlLm+59TOq4taYe4uJ6KSjqxeMBi1TKB1er
 KkCjRa1/rgRF7IRxOV/vQJOon6iaBx3VzfnKPqqXIpVsJDWosiYabBXPSFTs4y+TPQ5/ixeTB48
 ex68kzEl9aEkGG+8ymJpr8tV8k72sArqdB3hjoipAejw==
X-Zone-Loop: 8d9832def169c1c8b2a41beffa9570fc5dc448829fb3
x-campaign-type: default
x-transaction-id: 3f9e383b-2881-450b-a3bd-1d7ddc0a7667
x-swg-uid: 01-92df888f-1250-4cb6-92dd-ab9d4f8d3731
X-Mailer: Sweego
Message-ID:
 <1777898776.8631fc262581453bbf619ec5b2062170.19df306664a000f373@vates.tech>
x-swg-bid: 1777898776.8631fc262581453bbf619ec5b2062170.19df306664a000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Mon, 4 May 2026 14:46:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/amd: Drop allow_unsafe parameter, tune down XSA-9
 mitigations
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <1776877188.8631fc262581453bbf619ec5b2062170.19db6223737000f373@vates.tech>
 <fda8cb13-4ac6-4575-aba5-b2fcc3b4e1f9@suse.com>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
In-Reply-To: <fda8cb13-4ac6-4575-aba5-b2fcc3b4e1f9@suse.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.110.5812edc7bc0bfa36.19df306644a.2fcdf0beede501cf=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1777898775627
X-purgate-ID: tlsNG-4011c0/1777898780-44F618B7-10128DD2/0/0
X-purgate-type: clean
X-purgate-size: 1939

---=Part.110.5812edc7bc0bfa36.19df306644a.2fcdf0beede501cf=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 04/05/2026 =C3=A0 12:39, Jan Beulich a =C3=A9crit=C2=A0:
> On 22=2E04=2E2026 18:58, Teddy Astie wrote:
>> @@ -1205,19 +1201,12 @@ static void cf_check init_amd(struct cpuinfo_x8=
6 *c)
>>   	if (c->family =3D=3D 0x10)
>>   		__clear_bit(X86_FEATURE_MONITOR, c->x86_capability);
>>  =20
>> -	if (!cpu_has_amd_erratum(c, AMD_ERRATUM_121))
>> -		opt_allow_unsafe =3D 1;
>> -	else if (opt_allow_unsafe < 0)
>> -		panic("Xen will not boot on this CPU for security reasons"
>> -		      "Pass \"allow_unsafe\" if you're trusting all your"
>> -		      " (PV) guest kernels=2E\n");
>> -	else if (!opt_allow_unsafe && c =3D=3D &boot_cpu_data)
>> +	if (cpu_has_amd_erratum(c, AMD_ERRATUM_121))
>> +	{
>=20
> Nit: Misplaced brace (it's Linux style here)=2E But really I don't see w=
hy
> braces are added in the first place=2E
>=20

Yes, they can be removed here=2E

>>   		printk(KERN_WARNING
>> -		       "*** Xen will not allow creation of DomU-s on"
>> -		       " this CPU for security reasons=2E ***\n"
>> -		       KERN_WARNING
>> -		       "*** Pass \"allow_unsafe\" if you're trusting"
>> -		       " all your (PV) guest kernels=2E ***\n");
>> +			   "*** This CPU is affected with erratum 121"
>> +			   " 64-bits PV guests are able to cause a DoS (XSA-9) ***\n");
>=20
> Why the change in indentation?
>=20

Looks like my editor got confused with the mixed indentation of the=20
file=2E I can fix this case for the next version of the patch=2E

> There's also punctuation missing between both parts of the log message=
=2E
>=20

ok

> Jan
>=20

Teddy


-- 
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates s=
olutions

web: https://vates=2Etech
---=Part.110.5812edc7bc0bfa36.19df306644a.2fcdf0beede501cf=---


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:50:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:50:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299887.1574449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJskV-0002U8-O4; Mon, 04 May 2026 12:50:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299887.1574449; Mon, 04 May 2026 12:50:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJskV-0002U1-LE; Mon, 04 May 2026 12:50:11 +0000
Received: by outflank-mailman (input) for mailman id 1299887;
 Mon, 04 May 2026 12:50:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJskU-0002Tt-IO
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:50:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJskT-00G88V-Uk
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:50:09 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f89601-bab6-0a2a0a5309dd-0a2a4503e5e0-4
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:50:09 +0200
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f89601-672d-0a2a45030019-d155dd32cc85-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:50:09 +0200
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-44ce78ab5feso1365929f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 05:50:09 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-44a981defb3sm34625260f8f.20.2026.05.04.05.50.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 05:50:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777899009; x=1778503809; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=odkks9yDAvJdDgZY2aqAR0zCAOsXe4P4ox0r0pQAHE0=;
        b=FEZvpZqQGsCFee+rKwBkfnNz2+vDfJEPmCBM3FHSjFlGxSZOElTZoE3E45LHnlTOZ0
         mLw9b3NJoIPU2LSsNsfehD840QTuy12mhWNRewdEuFi8eIDYIxmkh6qGwjHRfsGIjJtm
         0H/4DGvkZvUplkO0lDXznN20FSlDhtPuAv7wDzibdc0Ev5p1CrxqK5/KTbjcwCPxzfGS
         x76si2ePsc/SmXw1dUxSCE2QZQGUpwZufmlX4pg2xLvCNk9hHKKhpDbRkv9Ku6h/abAF
         VswwpNZ3v5rPUqeucMMz1XD7gOg/9c6f5ZqcJ/7g+42mRprDRPR22en1YQim4v0QdVIs
         YhZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777899009; x=1778503809;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=odkks9yDAvJdDgZY2aqAR0zCAOsXe4P4ox0r0pQAHE0=;
        b=ODr5ZbsmX/WRfsoaIfVm2KepHJlzX+U0zZjmeqQzJB2lREf2RzE1cjwVY7B16ngxkq
         J0lPMT3LB3HZ+SHeP+M3eA8CvG/esMXRXNrOY/oxV0kppxcOGrvabUPrP/WaSvJENinA
         Rxajg6cXPmj+7GPgGdkgiMNmDUdC4toM6hhRusFQZx8o2Zyl0CjvNuryEALPpP3v9Q0X
         NE8mOHWhSWd5UcPwezpgE5oBViEmhkBB4XfcJx56SXGdWkRGPcbfLx5KrA6kcOqqabhR
         JV6FNZFpee/RlexagOvHrSIsi9RWKaDSJcQ8pKnF4LS6ud8ZVBk7NL6qRja4QpeoOY6O
         j9SA==
X-Forwarded-Encrypted: i=1; AFNElJ8TXHm2D/Z5nnXzO+NUDhXKFaBpLKIOV7EVOplYBQdPOq5NmP6TMvV3gzPgN9ewAMaBlcNR8L8+034=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywqt90vkqs1HYlF7uZKifjcNoV+HkJM5v8aoJvd1CajTDK0qHKU
	DGzAL24hHKVxZ59gmxhA2d8gEfYO54Q0zNQj9C7yz2x+31bhGn5HvSsEX8O0OYserA==
X-Gm-Gg: AeBDiestVQ+E7NGtwASVeLJSMLWKIlttjYNj/MqLaEPdN6h3vbA86KcXekcVCNxXI6O
	FuxMAI0d1H0UOq3yr2hoS7O18L55kHCirOPG7ogkWpclSsA8KRSD7VFMxUl4mqVnLOguTD2H1/j
	NvtMsZjk749TKeDCwUmyLxXVceoixYWZvdBVZ95bhToqqDPQHTlzwOMlk2YxOqcLq4GlF7//Rkp
	Xlxyhe6UOxRbjQXh4RhvygY4h+RA9cB5/odWnmrJCj9tcAatWCUKR+5iMBSanQ0nQL07qXurNJO
	Up5s9QqZtcyx0SYcwrTGq5t7heJhsMkV5Xm4f+PyIOIhjrjW4SBdc5ZMIUO5bZ0CMvZgWyzNkFZ
	5kly4Uf69NuadfsUaaTlT5E6CQG0ddP5eGPVIsn1T2NG2OinGrQD+8Mxacx0VCgR5CdqgQxKbas
	5LXVXNwpd1SYQ8cMngkXjNsUcE2HlrD8MhR+3bdRRb8tAieyGeSuEwxmOdUSFDqRpuJMetKMY/f
	963KYWR9TY=
X-Received: by 2002:a05:6000:2001:b0:43f:debd:feb1 with SMTP id ffacd0b85a97d-44bb6e8e001mr16624118f8f.39.1777899008883;
        Mon, 04 May 2026 05:50:08 -0700 (PDT)
Message-ID: <5109e43f-168a-4522-ac24-bd334df129e0@suse.com>
Date: Mon, 4 May 2026 14:50:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/1] xen/mm: normalize page count types to unsigned long
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <6fd2be46d934688b19b5c84c53c745230cd345d6.1776871968.git.bernhard.kaindl@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <6fd2be46d934688b19b5c84c53c745230cd345d6.1776871968.git.bernhard.kaindl@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1777899009-2B56F938-CA744A03/0/0
X-purgate-type: clean
X-purgate-size: 1788

On 22.04.2026 17:33, Bernhard Kaindl wrote:
> The current use of long for total_avail_pages and outstanding_claims
> creates an unnecessary mix of signed and unsigned types during page
> allocation calculations. This necessitates awkward constructs
> like '+ 0UL' to satisfy type matching in macros such as min().
> 
> Address this by normalizing `total_avail_pages` and `outstanding_claims`
> from `long` to `unsigned long`.
> 
> As a direct consequence of making `total_avail_pages` unsigned, the
> post-decrement assertions checking for `>= 0` are no longer logically
> sound. Adjust those assertions to pre-decrement checks.
> 
> No functional change intended.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>

Just to mention - my original comment was quite a bit wider. It was
specifically made in context of a use of d->outstanding_pages. Yet of
course I don't mind this as a 1st step.

> Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>

> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -484,10 +484,11 @@ static heap_by_zone_and_order_t *_heap[MAX_NUMNODES];
>  static unsigned long node_need_scrub[MAX_NUMNODES];
>  
>  static unsigned long *avail[MAX_NUMNODES];
> -static long total_avail_pages;
> +static unsigned long total_avail_pages;
>  
>  static DEFINE_SPINLOCK(heap_lock);
> -static long outstanding_claims; /* total outstanding claims by all domains */
> +/* total outstanding claims by all domains */
> +static unsigned long outstanding_claims;

Moving the comment is certainly fine, yet while doing so would you mind
also correcting style? (I'll make the adjustment while committing, but
going forward please remember doing so yourself.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 12:59:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 12:59:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299897.1574458 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJstF-0003kS-Hx; Mon, 04 May 2026 12:59:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299897.1574458; Mon, 04 May 2026 12:59:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJstF-0003kL-Ea; Mon, 04 May 2026 12:59:13 +0000
Received: by outflank-mailman (input) for mailman id 1299897;
 Mon, 04 May 2026 12:59:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wJstE-0003iw-4k
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 12:59:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJstD-00G9N5-21
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:59:11 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f89819-5cb7-0a2a0a5109dd-0a2a4509e9dc-30
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:59:10 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8981e-2497-0a2a45090019-d1558033cdd7-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 14:59:10 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-48896199cbaso36306855e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 05:59:10 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-44a8ea7d035sm23960546f8f.5.2026.05.04.05.59.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 05:59:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777899550; x=1778504350; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GP43b9Z5tMemuOZBWC17D6oVT4FU12xTRNjr+Xzrrv4=;
        b=AQ2EF3Or55HujdDbG9JyQHyS9d37HIMQDmDr92tZkNwpMJNnOSITdQgKdCxVqiVyXm
         wmv8A8+vg03pGydACvTLTETrpOTpy4s7Yg9fvm9WtHOEi+AcuMNXsc0EIgVjR2PLvHGn
         0itUggNtMU0aODmjOSc/Nqs3eILhv0l8cA2d7b3W9sWz8gg/8XtTUKnGfu8PwppKiM/f
         DudjE8SkQLa813m3V8AQ3yFgXPoB8tO4m5v4GuLX45WOD67NhO6PAxMqaRbh7aOqP9x/
         WiOIOmm10r5KXZOvt/sEB+k3qL8FkhNKeF6tg2if+T27GntsvCeEU1kDk1rjFVxYSQ7q
         DZAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777899550; x=1778504350;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GP43b9Z5tMemuOZBWC17D6oVT4FU12xTRNjr+Xzrrv4=;
        b=fo7RdCsgo/jQG1TPjuENZ9YpJulZiwf2grzYnW9dvgkFUfyzJ4AG7yiecLUQQ8Cl+k
         s6K3ZQTAu+c000rAofTwtnKGLg0yTabJx0NxXDAOfT4Y3pSYF/87vInECPj+mdaWrKpg
         lSSK/uusykFTGEdVIivihM12vIILaOhYS04qVy88+cdS7Q+uMVHmBgq0Xr4QlaqjGrjh
         BiUZ0tFjbVTog9iU4A6mpjzwSTTAMENj/urimizrWWeOyvOAwBRtOR0G1kHb3QweUS2f
         aafEcPcxACszZVK4GKmCMckL6jZJjbfw+D8d4pu+e4kpK/R33W8SwBLZZyFOAGA6I35J
         SU6Q==
X-Forwarded-Encrypted: i=1; AFNElJ+LlqjPQ4HxmjfTXilF94CViHq4HmbX4k1yv3Ju7T4Ng/yilgjQxKoxBwGmlthalufblrP6OxS3Ka0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyTP9VYhaL7PKF3urFU3+xy/e+U2vosqKXY5MCCCh9GFArzo3bN
	QYk+TIL8Sqad9vnN1a8c8PAzNbKUaMBFIsEcrJSo2B4VwlO7isO4I+MWATH0OWLjDA==
X-Gm-Gg: AeBDievLBS401Vv/oaMxryrpVJw69kP3LMu/5Y6eqFOUZBZgNNlmohNgt8dNMtAnS6c
	YO6MwUcQxIcRTOxjGbF+sVdOulBAdMuPpp3rCg9erw42hUo0y9Tzkyz7/3TBEFXLdKgCWxDheIQ
	RIlPLyLTaQ0skQyipUjOwtADuRFsDOlV71wLkCgQ7PG7Z4JTmzLnsk5wrHtJopH5w7NYIAJ0EqC
	Hs290wupnn+RkeWimGie9/Do+PHJVtU5d/raN7AWdBJvfWsEysT+DZuxT+OcaB4AOD6OOhCf8gD
	DuAsGUsIWrXcyYscsnK8oh40W6a9pIII+XdJuFyonCs50Jg2VybveC4kHLktwt8nGLE4Fcsjbys
	8fitWRhRdyAMxY7Hg9WNnRHbvAGJZO2VEk3Jy8whVIdvVjKeClsTF2IMx5H7dSl6Ycgu9oJNEVH
	6rBCy3OjwNo9Fm7fx7YodJVKZbSCKmTKkoOpV6swBmoIk4FjkDbEKm3lDD2gV1Qol7Io75DZ3rn
	lxcvL2iH+BafrGytBEBg3vNaQ==
X-Received: by 2002:a05:600c:348b:b0:48a:592c:e632 with SMTP id 5b1f17b1804b1-48a986589e9mr167660415e9.16.1777899550482;
        Mon, 04 May 2026 05:59:10 -0700 (PDT)
Message-ID: <80f67b9a-2b42-409f-90d8-587a07d57d26@suse.com>
Date: Mon, 4 May 2026 14:59:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/11] xen: introduce domain-layout.h with common
 domain_use_host_layout()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <2577e757d32f85fb8b3308863e6d7a53d70636dc.1777303844.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2577e757d32f85fb8b3308863e6d7a53d70636dc.1777303844.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1777899550-42F76A53-C00D81B2/10/73395122804
X-purgate-type: spam
X-purgate-size: 1701

On 28.04.2026 16:33, Oleksii Kurochko wrote:
> domain_use_host_layout() is not architecture-specific and may be needed
> on x86 [1]. Replace the ARM-specific macro in asm/domain.h with a common
> static inline in a new dedicated header, xen/domain-layout.h.
> 
> xen/domain.h would be the natural home, but placing it there would
> require including xen/paging.h (for paging_mode_translate()) and
> xen/sched.h (for is_hardware_domain()), which would introduce circular
> dependencies. A separate header that callers opt into avoids this.
> 
> Adjust the implementation to take paging_mode_translate() into account
> so it works correctly for all architectures, including x86. Some extra
> details about implementation [2] and [3].
> 
> [1] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602161038120.359097@ubuntu-linux-20-04-desktop/
> [2] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602271742400.3148344@ubuntu-linux-20-04-desktop/
> [3] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602271750190.3148344@ubuntu-linux-20-04-desktop/
> 
> Suggested-by: Stefano Stabellini <sstabellini@kernel.org>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

With the SPDX tag added as indicated by Luca:
Acked-by: Jan Beulich <jbeulich@suse.com>

One further minor remark:

> --- /dev/null
> +++ b/xen/include/xen/domain-layout.h
> @@ -0,0 +1,27 @@
> +#ifndef __XEN_DOMAIN_LAYOUT_H__
> +#define __XEN_DOMAIN_LAYOUT_H__
> +
> +#include <xen/domain.h>

This isn't really needed. It is ...

> +#include <xen/paging.h>
> +#include <xen/sched.h>

... included by this one anyway (pretty much unavoidably right now, I
guess).

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 13:27:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 13:27:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299911.1574467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJtKI-0000Pk-JI; Mon, 04 May 2026 13:27:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299911.1574467; Mon, 04 May 2026 13:27:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJtKI-0000Pd-GM; Mon, 04 May 2026 13:27:10 +0000
Received: by outflank-mailman (input) for mailman id 1299911;
 Mon, 04 May 2026 13:27:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksii_Moisieiev@epam.com>) id 1wJtKG-0000PV-Go
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 13:27:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJtKF-0096Tr-3I
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 15:27:07 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69f89eaa-2eae-0a2a0a5409dd-0a2a4501bd48-2
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 15:27:06 +0200
Received: from [40.107.130.113]
 (helo=MRWPR03CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69f89eaa-c1f2-0a2a45010019-286b8271bc38-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 15:27:06 +0200
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com (2603:10a6:10:519::5)
 by DBBPR03MB10342.eurprd03.prod.outlook.com (2603:10a6:10:52d::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Mon, 4 May
 2026 13:27:04 +0000
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908]) by DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908%5]) with mapi id 15.20.9870.023; Mon, 4 May 2026
 13:27:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eSdQmT42pIeuHixXFF/RQ9AdONHNB/TMmsww45CThuduq5CS9+lCSf/31ZmNjs2T1LISVgiQktBvS6E6UfW2EKcTZL0Tdlp0ZZTULWg6D+1atPOBFusYmf1FPPQJcBwiU3taheLbYzDqu7ZwARaCboFkiraUvLhBRlXsGpRfMooMAstI140XXUpGP1AYOS18MaIhyOx9fyEUQ3fDonH+k+asdjp+qM4c+vyfcdc3zyqfb2d3k/yvxTs5TrJfJARKyJFx2MoNYliPKryD4Das04Gu0IEQPirxUjvljKOHdwf5eZp8aSnYkOXWaQkrnDZ/NWEMIlFbS+F1ZuKMavVWTQ==
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=0pO07kbOLrBNf+2yh/pHl7wgNCy7tM4/oLXNW8eAzfo=;
 b=HnrktoUAKy6Ri1HhdJA1JwkkgqMwd+5iSps456MVgXJEU96s0WIQqGZ+4JA0dlK070CqbnZKV7yTZD4j5QrfTnVb7702mJejK2f+aCzvxi/xygpqYQ0G+Xn2fmt5a32xgoFcHxJ218rlTULyZUa7CU30g9juoJnb/by3czsb+C4Z8faKfEX/QSouAt4Zoxzx2rXJ+YFaL81CvtkWccDw99NAbbnYIRV6AbxALPQczRKMZqdCjYJ5SZdwMBXk9vnj6EF9x8yTQIeR0kGcjh0ZnJTFuo0Wfb76TWscHHxCERJ/HCg7qElbStew4nr+ESMf1HIUrIPD2RO06vIK6mi3dg==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0pO07kbOLrBNf+2yh/pHl7wgNCy7tM4/oLXNW8eAzfo=;
 b=WyZNJJ3Vdmim9gvwByFpz3SCHEag7MPAndrnxQ6Zir0foTyODKETE8pWN+OJGJl9uisNtaYrCUr95m74gXKWSUfVrzNhsO4cFf/3/Pun2mqIA73qf36VIC8lrevDOuDH91C7hFj0bIXrAE/yx4NGlHx4bshWEko+1zSIl8pvk2kFz9LPzKiVtHBPPTCU8vdXMUmhfizzsSaZVwdEtkwtZQgUtKx8XHdlTaiQleN2vCus+ZwkYC4NYkVfdUoiyAUldNdnpUmTgdPnOUi3cFs3GgS5w4diLxYg5h8Hd6MQjOJaxqyuJtiFOo2x6vDbm4lHsOkc7SRLhnni1USgOLnBpQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <85710400-d4bf-4c4c-bd3a-7f6929e37fe2@epam.com>
Date: Mon, 4 May 2026 16:27:02 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/sched: rtds: re-arm repl_timer after timer
 re-initialization
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Meng Xu <mengxu@cis.upenn.edu>
References: <548ea03cc3c3287b1f5dcd101b3c2990ebc08089.1775208527.git.oleksii_moisieiev@epam.com>
 <775bc23d-7cd4-43b4-9e5f-0c70204b4262@suse.com>
 <66b7eaff-f7b9-4737-b32b-ca9ff7b661c1@epam.com>
 <fd394d84-4d8c-4fe2-9e51-58041dc09c69@suse.com>
 <ff983469-db32-46fb-a18a-aed3cda06209@suse.com>
 <ad43c0a3-a0bc-4943-b617-83200ac91ccc@epam.com>
 <ac3e1b58-3f81-406d-824d-4cdae7c7a76c@suse.com>
Content-Language: en-US
From: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
In-Reply-To: <ac3e1b58-3f81-406d-824d-4cdae7c7a76c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0038.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::8) To DU5PR03MB10263.eurprd03.prod.outlook.com
 (2603:10a6:10:519::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU5PR03MB10263:EE_|DBBPR03MB10342:EE_
X-MS-Office365-Filtering-Correlation-Id: 086d9219-3169-4557-1572-08dea9e0d4f0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	RO1dqWJz+N/fTQ/8scMYu58D9xM/qafsoQpPzqgr4Nl/yanyXM/KXDiu17hDvXICXQej0oXRnY2FzI8ksntCjVpTIMIn5nY9sudxt3p11iHpyx3fL+Ia9Ua6uzHW4GUgE0LI6se7zvoXxq6oLvxCnN8zkYpDue7pWS/0ZimBUllu6ZVdhU1G7ul2Sf2jVQrzsTzum2uqZHNMgWHzQBBIsRk1crU667OMKhc3H3jZPltbwB7jhDM3P0OLyz7aOxTelqYnlt4ah7VLRwSz9sfwM8eABaZwBIG1n5RQLCPZNZL49/YwEJKbeW0dq2K5Newj9TJ18nlKpVRerIRcMZD3d0SVg70+sVNzmsbbnxD3vAfXhDmgu8qZzdYKF20K+w8KxoNVy+PiVJuN3dOtyWDVFfYS4c+j8rFKYVnFETbI+Kmd4qTyhadbi0onosI4yz8YtErUg9ApMbwoY2qjVNi19NTlNgY2JiZQ16qsKtTStXVhhWBu6hjZsVmH9aVAFYzjsYNMEjCrijhhpm7zUwiZfuoaoo4Chkv/Z8ZW77M1Dn2X9i0SsCtsfkp75tPwldd4H8pl7pfLB+faD06A+WITrYKkE25ccxQrM05b2TiudWbqJGz4Cao9qIxGVNmoSnhrf/5nMPyp93HcP2Fbrlcu2KTYpijjJDT3XJNcouST36fN7DQWYYH+jLASNOwUat/k
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10263.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YXdzcGRVbUVKekFFc3FpNWRVd2lRNnJwdnV5V2oyNXY1T2dGdUEwdnZzazBx?=
 =?utf-8?B?c2IvbUxuRGpLVnR5YXdFMjQrUDdHaHN4bEQ2c3FzaXZ2VkkyMXBzeDM5ZStJ?=
 =?utf-8?B?WlkzY2NhOXdYTFpuM0VTUW9sSWlvZmFOaFhmNEw0TytaZVM2ZE1VYzVJdEJy?=
 =?utf-8?B?ejdlRWNFczNZM2dUL2IvYlY2V2NJSEpIWWx6ajhVNm1xbFFNVkdvaG5wTzFs?=
 =?utf-8?B?bC9yc2pNbEJwY1gzWlRDc2NtbjRHdWI5M2RmdFZPbS9UdzErNTdIelZCVWgv?=
 =?utf-8?B?TU9ZSUxiR0orZUNlRGlpd1k4N0RqZjFJMjRNOFkyTy9Ja2VKRUY0OERLdDhI?=
 =?utf-8?B?M04vS1FGTWg3OWZGSFZJZ1lZN3FBaTViRWsvTDUrRWFHb01uTi9PcnZvQjN4?=
 =?utf-8?B?UUVVR1ZMeCt4VWt0c3Z2eUJDQVNGZUpzUjk5TUdqTDhKQWVWc2lUSGxPYVY1?=
 =?utf-8?B?bVlCMlZJNmJ0aUFGaHpLRXprV0FwcGpNLzNNWmkrYlBGTGNBR0hvb1pBckM2?=
 =?utf-8?B?OENTd0h5eW9NQmpOWFRDdHdoUk0vdlRFRW93bDJVdk0vL0JDZkRndVlqdzV5?=
 =?utf-8?B?RUdxR0lOejJ6Qm9Sbks2UzBqTFlmUldjUWNmcU40bCtETGhzcEVkbGRsK0dn?=
 =?utf-8?B?RUx1M3p6dWExbWlOY09kRjQ1cTYvRFkrb1Q3ZDhPUDFaazh5ZVpDVVc1WE5K?=
 =?utf-8?B?U2dKS0JsOE5XYWJ5Uk1kVExQbjA3Tzk3UTJBMlNPL0puTEw4QzV0TzNISldt?=
 =?utf-8?B?T2VHbDJMUUI2OVdyc2RaS3JHVVBEbE4wRFNzL0dGazdmNEQrU3A2WlFtY3pD?=
 =?utf-8?B?cnYwRFQwc3FCcjdqOTVVUFlwVlJyVUlTOHlDTlBJMnArQkUwT2VhT0I2SGR3?=
 =?utf-8?B?dFJmVnI3UUs5ZnJTQjNPQ1prTjlPVnVNSnRQVkNIS3drTUJOTjlvaTQ1Z1JY?=
 =?utf-8?B?K2VMRmMxZzdtZ3Qyb1BnS3RRVjgycUNPVXh5SlpUTHpKdU1ZejNTNEFJaUxB?=
 =?utf-8?B?bGVZbERKcWpYWTRITWZkTVI1VkVuNzBvNVRBbjhiUHRvQnpLR1JUTWxDaU9T?=
 =?utf-8?B?MWNBbXhUOFRrSWptZHFCU0dPTEZ2Y3prd3RvbXJrMWJDVVFLbGZxaUVXWXVw?=
 =?utf-8?B?ZWhqYWZRMUN6UU1waXppMmkyU01mU0dvaUUxZXVKbmQyZ2RjN1ZKNnhQR2xZ?=
 =?utf-8?B?UXNQRmxlK010V21tUklMSTlBcnFWUzZhUk5KZWNoZ3AzRllCeTN4SWVpYkx5?=
 =?utf-8?B?L25KVmFLNHhFbUxtWDBXUmdScnY4YjV6QnFCWGszV2tSRERSOFJwTkxSaVg2?=
 =?utf-8?B?KzJlNFdoTTU3Rkx5NTg1cG1PRnhZRlNVWGtnL252Z1lqV2tHK1dkWUJyT2lJ?=
 =?utf-8?B?dklEN0NiTDNNV2NHeFI1cEcvbVBzdmRkWnRVR3BZQnMyTFpWcWJINGhHejRI?=
 =?utf-8?B?OHNaNGlvZ1d0eEpOUVdaeitvNHNQeTNHSEd0d0NtV1BuMjNZWHYxMHFwNEpa?=
 =?utf-8?B?MExwNHZPY1VKYmxIcXBxbUxjbUFVREZ5YU4zRkU1K2tLcEVuT0ZSOE9MU0VB?=
 =?utf-8?B?ajdoV0M0RjZOUVJtOFc4QjVrU1E4LzE4d2gyNHFoWlVDWW5abklkWmJqMnFC?=
 =?utf-8?B?eDh1bEl5aUJEOGpVYSsrWGhYb1dWWjB1TVZ1UTF4dVNPS3B4eDVOUWlLL2ZF?=
 =?utf-8?B?ZzZJUU1jdDJ5MG1KUE1FWlhUbmd2cE5yYVdqLzhRUmRSQlMra1pOU2JzTWkr?=
 =?utf-8?B?VXY4VUxzWlp2cDNYQVA5Vk5Ga3lxcjI0Zm5lZXN1eDZjNHhVVmU1Y0dEY1F4?=
 =?utf-8?B?V1J4dlpNTEFRVWoxamhQRTJSQmlyUFhnbWswYjFCbUhTTXZJVjF0MmhlSEZn?=
 =?utf-8?B?UjBkQU00T2NWRURMcXBEbWdWblg1SWxvZ1dtdXZNOUxJdjhCaWNXd2hJQkor?=
 =?utf-8?B?U3g3ZVpLQ0JTcDhSWGVxa254Wm5SVnZqNExYYXZUby9UUWJlWmxTT3lsK2lK?=
 =?utf-8?B?cjAxMzJlMFRMcys4b0VIcXZacUFPQUxVOUNVRkVDMGRxSnVqc2EzMjRWekRQ?=
 =?utf-8?B?Z3ptcTl4Y0NxMkpyMmtYTTZ3bXFZZVFkV2E5YmU3NHVzU2RjVUFxMUFOWTlT?=
 =?utf-8?B?MzJwOEE5WW9XaDczUnU0VTZqeXR6bjVhWVhGblg0anJyckppcldacVV1QlRM?=
 =?utf-8?B?cXY1dDZERE1sdmRFbkRyMm45SDBTMHNXcWlkYUQvdy9jWUJsSXRLc3gzWDhl?=
 =?utf-8?B?OC9tdVFKZENUcW1xL0xTK21hTGcydXVHenhNaWlMc2pwSTA4SWs5YXN1K1RR?=
 =?utf-8?B?S2RzZWlWN21MN1kzQWlVcDIwdFZtTnQ5YmlVRE5rZEJyb1JiTmFLUT09?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 086d9219-3169-4557-1572-08dea9e0d4f0
X-MS-Exchange-CrossTenant-AuthSource: DU5PR03MB10263.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2026 13:27:04.6066
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: AiCX4igb1gF3zKwaopBdgLxAz5NmYClZPKMN3zqQeINdK/IiKyZjI1Ec8VlgCjYCzdOjVDi1SxeszQ7uqUv3n4zwnJJStZ0Mp3XeBQtWJVY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB10342
X-purgate-ID: tlsNG-d62444/1777901226-B787AFF4-CFFC35C0/0/0
X-purgate-type: clean
X-purgate-size: 2834


On 10/04/2026 18:19, Jürgen Groß wrote:
> On 10.04.26 17:12, Oleksii Moisieiev wrote:
>>
>> On 10/04/2026 15:16, Juergen Gross wrote:
>>> On 10.04.26 14:13, Juergen Gross wrote:
>>>> On 10.04.26 14:04, Oleksii Moisieiev wrote:
>>>>> Hi Juergen,
>>>>>
>>>>> During our safety certification analysis work, we identified this 
>>>>> as a potential
>>>>> issue. While we haven't encountered this problem in practice yet, 
>>>>> it could occur
>>>>> in the future, so I believe it should be addressed proactively.
>>>>
>>>> For being able to occur in future, the handling of removing a cpu 
>>>> from a
>>>> cpupool would need to be changed. Considering the refusal to remove 
>>>> the
>>>> last cpu from a populated cpupool is on purpose (this avoids leaving a
>>>> domain without any cpu to run on), adding the code as you suggest 
>>>> would
>>>> just be an addition without any benefit.
>>>>
>>>> It isn't doing any harm (other than adding code without purpose), so I
>>>> won't explicitly NAK the patch, but I won't Ack it either.
>>>
>>> One further remark: I would ack the addition of an 
>>> ASSERT(list_empty(replq))
>>> instead of the conditional set_timer() call.
>>>
>> You're right: with the current cpupool semantics, when the timer is 
>> re- initialized in this path, replq is expected to be empty. In that 
>> case there is nothing to re-arm, and the timer can be programmed 
>> later when a new replenishment event is queued.
>>
>> Now I see that it would probably be better to update the cpupool 
>> logic to prohibit removing the last pCPU from a cpupool. In that 
>> case, this fix — even with the ASSERT — seems to be no longer relevant.
>>
>> I think I'd rather post an update for the cpupool semantics and drop 
>> this patch. Or I can send a v3 with the ASSERT if you think that is 
>> still reasonable.
>
> The cpupool semantics are already existing. I have written it this way 
> when I
> introduced cpupools.
>
>
> Juergen

Hi Juergen,

You're right, thanks for the pointer. I went back and re-checked
cpupool_unassign_cpu_start() in xen/common/sched/cpupool.c and the guard
is indeed already there: when n_dom > 0 and the cpu being removed is the
last one in c->cpu_valid, all domains are moved to cpupool0 first, and
the call returns -EBUSY if any domain is still alive while the system is
active. So by the time the last RTDS pCPU is actually unassigned, no
units remain in the pool and replq is guaranteed empty when
rt_switch_sched() later re-initializes repl_timer.

That makes the conditional set_timer() in v2 unreachable under the
current (and intended) cpupool semantics, so there is no need to touch
cpupool either.

I'll send a v3 that replaces the conditional set_timer() with
ASSERT(list_empty(replq))

-- 

Oleksii



From xen-devel-bounces@lists.xenproject.org Mon May 04 13:30:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 13:30:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299920.1574476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJtNf-0002Hq-4Y; Mon, 04 May 2026 13:30:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299920.1574476; Mon, 04 May 2026 13:30:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJtNf-0002Hj-1d; Mon, 04 May 2026 13:30:39 +0000
Received: by outflank-mailman (input) for mailman id 1299920;
 Mon, 04 May 2026 13:30:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJtNe-0002Hd-77
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 13:30:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJtNd-002Zyk-JK
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 15:30:37 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f89f79-2eae-0a2a0a5409dd-0a2a450a806e-36
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 15:30:37 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f89f7d-56b3-0a2a450a0019-d155dd31ad5e-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 15:30:37 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-44da2de25f3so714429f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 06:30:37 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-44a8ea7d0e7sm24523595f8f.3.2026.05.04.06.30.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 06:30:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777901437; x=1778506237; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QOOkiFGObE6BjGpDRahVyzy6YvLgLYMk5N0pRRQKYb0=;
        b=UA4JIvb4HNNAX1YEZUktuG9H17XjnSWCFOh20HztY1hWN+mqL8ibgshWTr428PS2az
         V0rznFKd87xaivEVPJX/5cf1fA0lERfLq6ggAhdIA0i3VIQwWapJCYwbdh0oR1BKt2fg
         eKJnKlbTI4mhDkEpBOyRnxLlXMfodIgmxBEGdLg9+at6VQuxPqB7kEvJekaE9JSMXtDO
         95gaAOph8UCoJz7vsdWHcxpF1jvS3uCU+pn0KDrlSUkecmnazRAvusDJlrOxIQxBADMF
         +/MROI9nyxml3/634e8HrHaAVWbKUfsi/5h/0/0rVItUhTJbctMYHvuFy58Pfl9CZJFJ
         E62A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777901437; x=1778506237;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QOOkiFGObE6BjGpDRahVyzy6YvLgLYMk5N0pRRQKYb0=;
        b=lIiaEmlxTy9Fkv3HZQu7zaWvZHiCxQkMoI8nZRNjxmZMUDYYl0rrVjbBY/etMtgT7V
         zmBsWPnAH1AIHL/Hy2do0/XmdIoiPP91ekUKpiXqm8r4nvrWu8P69KWlkr61MnGQZVkG
         moZgH4BUGf06cjKo3am1PqsY/51GSKLLEPxwnbyiTKZQmDyx/VbS8SgdWddxboqZIAb3
         n2t7AYcmIXRglPMm6C16jJDDZ1G0ORzaVdAKlt4e6KFDsiUkU0UX8UNfM4H59w8I32x/
         Rd4VSd16tdNXIesD9FUw/vrmlVV/6Tk1B+bQce88Nfi+1Am4+Z4WCcc5tocl2XDA+HkQ
         E2Cg==
X-Forwarded-Encrypted: i=1; AFNElJ99EWeOAF4GYTqexylGjyHCdWtRJCAwBgWgTx4IzSY7rjzCsYipvynFY5Q3x/YZZcJwL95ZVTxOuv8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzV84xBihLcQjNafMBckdlv+31ooWuOJirt079QbnTDadwzIWeY
	ZfukWduKXx/vo74BWBpA7swVujkjWMQqPWXKcREFZoYhb3PjJwbmd6SORM7BN1PN0Q==
X-Gm-Gg: AeBDievZpKXV037XPhTb9i+ENujWL7TXVDnV8lYEWGJDxRhpoZwD7K75ULK2I8u+Od7
	s6wnrpJem8KpZfL3e6gY+JmP7LHAmTePzOtJaBbvJGVc9Mp57WROAdteBGCttU8eHghsxahELEJ
	XCl/rhk2Lryp+O84SNadaxDQbpp5JYN8wqTadQDBasBVLDMkoShagOVgvPJZnvkFrfAxiR/aPg6
	PSqzFTFVfnGy/UKPcmuLrb0CIWEG3zx1Bgm7jzEytkHFJQTGNMMsgtBrPfeKAZlHp9w56IhLU9v
	gSsHISxNip3oopo8GALCzFFuaGW05T69xIFYQ98IPCADo7kiviHGz0akdXeZeGIRDP7RtS6XLhr
	20A9mQKSj6LqzidE5wF/Lvkj3UOJpqh2k91IvySEO5DECnNwG3PNTXWUcbO/4+K6tKTl+ILxsb4
	EOQXrn1lIPSYGfT5W36Dy+RCjb+AfX1pUpuzOWJXVU//dUIvjq6k08Xc7P2fbzHOml2yA5h5gRv
	HtDHbPT99YDo+JVvI6QvAtqRw==
X-Received: by 2002:a05:6000:2088:b0:44a:b931:f32a with SMTP id ffacd0b85a97d-44bb586d065mr16610158f8f.27.1777901435408;
        Mon, 04 May 2026 06:30:35 -0700 (PDT)
Message-ID: <d22d841f-a694-4527-bc50-235e2525a0d3@suse.com>
Date: Mon, 4 May 2026 15:30:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Ping: [PATCH] EFI: adjust cfg file buffer freeing
From: Jan Beulich <jbeulich@suse.com>
To: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Daniel Smith <dpsmith@apertussolutions.com>
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <bf990673-83c3-44c3-a76a-3b0c36108ec5@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <bf990673-83c3-44c3-a76a-3b0c36108ec5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1777901437-4556C8B7-25AD20AB/0/0
X-purgate-type: clean
X-purgate-size: 2641

On 22.04.2026 13:51, Jan Beulich wrote:
> The boot services FreePages() needs passing the size. Since we allocated
> one more byte to put a trailing nul there, we also need to bump the size
> passed there. Make a small helper function to centralize this.
> 
> Note that there's no permanent memory leak because of the oversight: The
> allocation is done using EfiLoaderData, and all memory of that type is
> later reclaimed anyway.
> 
> Fixes: df75f77092c1 ("EFI: avoid OOB config file reads")
> Reported-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Marek, Daniel?

Thanks, Jan

> ---
> This is an alternative proposal to
> https://lists.xen.org/archives/html/xen-devel/2026-04/msg01044.html.
> 
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -778,6 +778,16 @@ static void __init efi_relocate_esrt(EFI
>   */
>  #include "efi-boot.h"
>  
> +static void __init free_cfg(void)
> +{
> +    if ( !cfg.need_to_free )
> +        return;
> +
> +    /* One extra byte was allocated to put a nul character there. */
> +    efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size + 1));
> +    cfg.need_to_free = false;
> +}
> +
>  void __init noreturn blexit(const CHAR16 *str)
>  {
>      if ( str )
> @@ -787,8 +797,7 @@ void __init noreturn blexit(const CHAR16
>      if ( !efi_bs )
>          efi_arch_halt();
>  
> -    if ( cfg.need_to_free )
> -        efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
> +    free_cfg();
>      if ( kernel.need_to_free )
>          efi_bs->FreePages(kernel.addr, PFN_UP(kernel.size));
>      if ( ramdisk.need_to_free )
> @@ -1557,11 +1566,7 @@ void EFIAPI __init noreturn efi_start(EF
>              name.s = get_value(&cfg, "global", "chain");
>              if ( !name.s )
>                  break;
> -            if ( cfg.need_to_free )
> -            {
> -                efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
> -                cfg.need_to_free = false;
> -            }
> +            free_cfg();
>              if ( !read_file(dir_handle, s2w(&name), &cfg, NULL) )
>              {
>                  PrintStr(L"Chained configuration file '");
> @@ -1631,11 +1636,7 @@ void EFIAPI __init noreturn efi_start(EF
>  
>          efi_arch_cfg_file_late(loaded_image, dir_handle, section.s);
>  
> -        if ( cfg.need_to_free )
> -        {
> -            efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
> -            cfg.need_to_free = false;
> -        }
> +        free_cfg();
>  
>          if ( dir_handle )
>              dir_handle->Close(dir_handle);



From xen-devel-bounces@lists.xenproject.org Mon May 04 13:35:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 13:35:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299927.1574485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJtSD-0002qW-Lf; Mon, 04 May 2026 13:35:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299927.1574485; Mon, 04 May 2026 13:35:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJtSD-0002qP-Hx; Mon, 04 May 2026 13:35:21 +0000
Received: by outflank-mailman (input) for mailman id 1299927;
 Mon, 04 May 2026 13:35:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJtSC-0002qJ-NM
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 13:35:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJtSB-00993s-Ro
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 15:35:19 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8a090-2eae-0a2a0a5409dd-0a2a450b9c14-46
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 15:35:19 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8a097-212f-0a2a450b0019-d155dd31c069-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 15:35:19 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-43d7badbd7dso1844507f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 06:35:19 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-44a981ded99sm26669965f8f.18.2026.05.04.06.35.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 06:35:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777901719; x=1778506519; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7gSJuGpSdqYwflAgAB1ocz08ydzzTqCwQ7xCeAzakzw=;
        b=PJD4VzPFuAoLQZCmN9IZoS0wcK/WFRUqBKd+aHRBHRFipUvJIYXHAGL+dyY6mCBCar
         eP2nPJxFV9bR7TeZLvcKK5AXB5aF017RDEdLFspTVWV5m78tMbAOae3/qNDLU05U/osw
         bFd0DTRhQr3NMK7hkaoutB+eXnrug3T3ax9NWnyR4mV4M5ygZUyE25TsNmh3qudNUi3Y
         xT1K/kIuod+V/XriOzSh7mywLofknxBMr5RdvNui/I9oNqdXxMvSrX2cM6vkKHmuPMJw
         NhpvZoVYTsVLup0gaNC3dcasoMoouwoPZVSh6Wx2ICzjnwTGpallC1TtmzAyV02pyXkz
         tBJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777901719; x=1778506519;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7gSJuGpSdqYwflAgAB1ocz08ydzzTqCwQ7xCeAzakzw=;
        b=UegSDvmiC+UtMvEWLNVDaPhJfIJtgJX5l8TdqRoE6QS5z7sOMT4sbOXYX/NKTK571m
         qCHi55r1ajpRdVqm0AIiwwBbGtWA1UIc4mETbovdKdFO1EFTu/n6O3GSDGN1zKB+IbIB
         q6kH8tiyaFX+RQ+u2Gr7IGXK+mOi5NnobgQsH0qfhfdoKgq39XF7SVi213OxFliD8G4t
         lXk+Y4zpBJwrQTKTJSWQ4PK8QW4CxkZtWPJ0GitnYCN422GGPdxMwx8QBOddDTJ/BPN5
         jpHH77woROoNT5oChP4ubHPFwI4ibUJgSskOxZS4ezB4OndzRJTQKxfbIUKFZWY7v4h+
         xHOA==
X-Forwarded-Encrypted: i=1; AFNElJ/vV5x/8dWP7IW+OArHNxZAA0BL+AG0jxhDorG1wBSaIeqMevXJoflmaoZAgzJ+DKd97yXVjTe0YQQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGa8eGBOOSaYLxGLph0XZZ9QQuXzq8veB8apS2pgjNM/uySE0i
	ayrFFrVvNnhp49pB+k57fHavMEMSHpXybuVuPBgAAEeDnmzJSZXrJeRCwDCrpwPwfQ==
X-Gm-Gg: AeBDievZrE5a0v2g77s9VYNNmm4laR0m4yl8EpD/NM1DYrTZp60BR3fJaQdakfv0up5
	pjiI7icRR2iUVW3RT8GSMcjxi6h0DR+/GuCt0AXWy78zJzNrQZufs8C6rDBTbLE0Uj7VnMvULFI
	U5w0gGbSpuqGo5k2kpwcak5AbwnQc8g7Oo2GfrnYwrHhmRjcEjzhdmfmsTwJOH+/apdtnPe5d/k
	eojCREkVS+rr+Vip1LQ4E1hsPHBsO27uHy4XOFP6+/PatcoE6+oGF0aA+c2MHfA9fh4brcaq1J6
	Q4zNRCoMxJoYcHxJB2bbXR/emZKuYwBJD9/s7jquFzDrr9/ki9BCWVUjFGvst3lJvB6DTknVuQo
	X4z4VgVRGNWxR10Bgwu73ijptdkVngN5m2rL6gTN8CSC8W4ry0HBtigVAFMbvQ2A7ZNlypwRJZt
	XjyeLA2Q6H0oxXYfNMEHNLycc2jk7f1Dry7ZqMy7spkLq20HTm4YfQyEEA9J/4B9wZ05HBIU3G8
	DgKpi3xkMJXEM5Ebq9m6hpJeA==
X-Received: by 2002:a05:6000:24c9:b0:43d:21a:9a3e with SMTP id ffacd0b85a97d-44bb65dfc18mr15115451f8f.32.1777901717935;
        Mon, 04 May 2026 06:35:17 -0700 (PDT)
Message-ID: <23c6c675-70fd-415d-9b3e-6af68258f32d@suse.com>
Date: Mon, 4 May 2026 15:35:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 8/9] hvm/ioreq: Negotiate extended destination ID
 support per ioreq server
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Julian Vetter <julian.vetter@vates.tech>, xen-devel@lists.xenproject.org
References: <20260427135406.1281424-1-julian.vetter@vates.tech>
 <1777298081.8631fc262581453bbf619ec5b2062170.19dcf3886cc000f373@vates.tech>
 <1777394145.8631fc262581453bbf619ec5b2062170.19dd4f256ec000f373@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1777394145.8631fc262581453bbf619ec5b2062170.19dd4f256ec000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1777901719-246B7F3B-6C0DFED6/0/0
X-purgate-type: clean
X-purgate-size: 3236

On 28.04.2026 18:35, Teddy Astie wrote:
> Le 27/04/2026 à 15:57, Julian Vetter a écrit :
>> Add a per-server capability flag in XEN_DMOP_create_ioreq_server to
>> signal extended destination ID support. Repurpose the first byte of the
>> existing pad[3] as a flags field, and define
>> XEN_DMOP_IOREQ_SERVER_EXT_DEST_ID (bit 0) for a server to signal it will
>> use XEN_DMOP_bind_pt_msi_irq for all passthrough MSI bindings.
>>
>> Track the flag in struct ioreq_server ext_dest_id.
>> hvm_ext_dest_id_enabled() returns true only if all registered ioreq
>> servers have opted in and at least one server is present. A single
>> server without the flag is sufficient to suppress the feature.
>>
>> Lock the feature at domain creation time:
>> arch_domain_creation_finished() computes the levelled result into struct
>> hvm_domain.ext_dest_id using OR to preserve any value previously
>> restored from an HVM save record. After creation_finished,
>> arch_ioreq_server_create_check() rejects new servers that lack
>> XEN_DMOP_IOREQ_SERVER_EXT_DEST_ID if the feature was already advertised
>> to the guest.
>>
>> Persist the locked state in a new HVM_SAVE_TYPE(EXT_DEST_ID) record so
>> that migration preserves the guest-visible CPUID bit independently of
>> when the device model re-registers its ioreq servers on the destination
>> host.
>>
>> On restore, ioapic_check() uses d->arch.hvm.ext_dest_id (restored from
>> the EXT_DEST_ID record) rather than the per-server dynamic check, since
>> the DM has not yet re-registered its servers at that point.
>>
>> Update xendevicemodel_create_ioreq_server() in libxendevicemodel to
>> accept the new flags parameter, remove
>> xendevicemodel_enable_ext_dest_id(), and fix the
>> xc_hvm_create_ioreq_server() compat wrapper to pass zero flags.
>>
>> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
> 
> That has somewhat already being discussed previously, but AFAIU, 
> extended destination ID is only meaningful when guest APIC IDs cannot be 
> represented with the "non-extended" model which can only happen in 
> practice when having more than 128 vCPUs in the guest.

As Andrew has been pointing out many times, we need to stop thinking in
terms of 128 vCPU-s being the limit because of the vCPU ID times 2
calculation for the APIC IDs. With a non-HT topology, more than 128
vCPU-s would already be possible from an APIC ID perspective. Hence
tying "extended dest ID" to the vCPU count is unlikely to be viable.

Jan

> I don't think we need to check for device model support unless the guest 
> can have more than 128 vCPUs, where in such case it becomes mandatory 
> (unless some form of interrupt remapping is implemented).
> 
> So I would rather check if domain->max_vcpus is more than 128 and 
> require device models to implement support for extended destination ID 
> in these cases.
> 
> In some way, that would imply that extended destination ID is only 
> exposed to guests with domain->max_vcpus > 128.
> 
> Overall, what I propose would be to keep the new 
> XEN_DMOP_IOREQ_SERVER_EXT_DEST_ID flag, and if d->max_vcpus > 128, we 
> require the device model to support XEN_DMOP_IOREQ_SERVER_EXT_DEST_ID.


From xen-devel-bounces@lists.xenproject.org Mon May 04 13:40:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 13:40:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299935.1574494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJtXY-0004fX-69; Mon, 04 May 2026 13:40:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299935.1574494; Mon, 04 May 2026 13:40:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJtXY-0004fQ-2k; Mon, 04 May 2026 13:40:52 +0000
Received: by outflank-mailman (input) for mailman id 1299935;
 Mon, 04 May 2026 13:40:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksii_Moisieiev@epam.com>) id 1wJtXW-0004f4-8Y
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 13:40:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJtXV-00GJlD-1v
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 15:40:49 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69f8a1e1-e002-0a2a0a5209dd-0a2a4507b602-0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 15:40:49 +0200
Received: from [52.101.70.94]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69f8a1e0-229c-0a2a45070019-3465465eaa83-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 15:40:48 +0200
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com (2603:10a6:10:519::5)
 by PAWPR03MB9106.eurprd03.prod.outlook.com (2603:10a6:102:33e::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Mon, 4 May
 2026 13:40:45 +0000
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908]) by DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908%5]) with mapi id 15.20.9870.023; Mon, 4 May 2026
 13:40:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KnpLMBPYLUMp8lFyGBUJVAcoDoDpxi1dJHF2LfZ71SoMZ2b4eI8p2vorjT+pcudW2pKFrE6hkuPOTsqVFF+XAT2yUiU4+JLOmmjfvbsrlrOe+nLfE01eTbLAAXafEdIO+64Yj4Vq81D0PUZkfig62er9HxcSyXNgmlU5bDWDxsUPk49TwF/hjuWZHpc3fquDCY4kshXfLGoqYXGgr6fg+RvS0aoY2JTJFg3BABLaMgaoWTG6IjtIa5OOWZ0t8hDKvd+h1M55Sg5qutV2QMAb+60aqw9M59vb34V8oOYiQFpsRnTTt/LIasDtuRBMM1qHiwjootDmVOZMdIShw4DEEA==
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=JbrAVut94sJ6tMqG9N+0US2Yjz7n+raoSKn/WWaiOuc=;
 b=cKFoIWwFGZZSYwEzroloyp/izkuLTGKXmoaaT8Yv3oNh5x7t5GB0ST5YhlNlZ7Tnj2A9hsLDfzX/EGmk3On9m+gWMAST+0m2hfLehlRdt69qRsMVSmh8hdgu+t1bArMbNwMstldBrYRKvKGmj/uUBb05qh6laL9oEWAEcJJZYqCVRcwil6+A9fJAmlXR46+zLIyPgKaEoSQZq0FR7bMOaRM0tuVCaKo4vA7lMRZ5D79h51RGDrewUp/BybqF+pHPWD9fmyW7nwVx/LhhWp1t9gbY5leyy0Mt4xKJCuoIvWtxJwM78FuoJlGU4CuSb7tx0W3d59WQxj3D+oqucSL/nQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JbrAVut94sJ6tMqG9N+0US2Yjz7n+raoSKn/WWaiOuc=;
 b=XVUCLuJpvKhvU9ogZSpeVO4CTOHidFNJeyMN60lAJOKquNh0jiQRZzKHcK7GUvydPzl7vb+iqWql4sB53hTsxlZX+o1Z5OB43U0slWl7njpLXtoIz/LkM0+vc4Si4adCmrymSCTCLKBvOq1SH9vuAq+VzthH9qmB0Y/SqQKqDjFy6h9gwxe80Yt54KQ3KtTEFuCzaWkaGYubtCWzD+yYPmr/dlwPvyZ/QoprADCzV82nzUPxKCLUy/jEZ9HSd0OM6EywlE4no13S+CdI35C2X3GKVustnR3tA0SNsXKC6G9RW9sjl0mkCsBs7y+b8IiMWxoXJYC0IRC+IZsesQBOGQ==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
	Juergen Gross <jgross@suse.com>, Meng Xu <mengxu@cis.upenn.edu>, Oleksii
 Moisieiev <Oleksii_Moisieiev@epam.com>
Subject: [PATCH v3] xen/sched: rtds: assert replq is empty on timer (re-)init
Thread-Topic: [PATCH v3] xen/sched: rtds: assert replq is empty on timer
 (re-)init
Thread-Index: AQHc28ubWcgbGgaJskq0Bya4iIMSqw==
Date: Mon, 4 May 2026 13:40:44 +0000
Message-ID:
 <f751db3a02efa96d737235e58eb7bfb35e6218bb.1777901826.git.oleksii_moisieiev@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DU5PR03MB10263:EE_|PAWPR03MB9106:EE_
x-ms-office365-filtering-correlation-id: d6fee17f-6e06-4712-058d-08dea9e2bdf9
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|56012099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 4yG6IpwEc7oYc5FjpTakcGWKkE4H6Ntw1pb9R0RxmGN/IqSG4tPtYqn4uI6oEkEt0YOucVKLL20lxvd6H/YAhPANeZbPxjzqlsXbdqK7SFUxB2bI65CoJqPDFZQkvWIZ7jMSQAA0xyb2pKCHk0tc4IN05Ud0uPhh5jopB+hke1Q4AYfLjQkNs8MTkzI1CiDJWB+xshH25NZsxBc6Mc/s/Q/U/qCMMQsjtqJvlNLGtPD9AiZo72TGwPR18NLv/lBE9Z0tTTvL0Rc3LtVdRizyzQYc93chmnfX0JSWLRqu39bOBCiFSiJ9AJUqjp1A46MZ8SaDOMO8o6CSzNKj42ccgSxqxPjVotFKZfR2i3qO4Y/Tz3kTneRgSLdUUBc8sikk0xus/sW/pNX/iwGzqat7PIYZd6xxmswuern27C0/PEqnpOr0GcY8MEjMr6Mb34SdxEMTKWkd/lGo+xD+OOGcNVeMCwDkmhCsA/OPwcMm3pFYLJvIXlHodt4KWS36kWadqEven7QWU0C1onGOZSQyWMFJgCPzS7uiV0G6j7q24lVmyTR/gjEighvNRqqDd6ILl0KmihuOFcf/SFuxHPJpVukxNE6IL/autp86tKk8nc0Tgd4FIp162eKgVD5ujchndDRO2nlLB7cSDnLOO9UiuuAan9IHEDLq2gufDdtAah9eeaQstKAJXwZGFn/q+jLcWaTTkArvaiSyxXBxGHduqxMWZz0sqR5mWS2Yb+WiDki8VnwRMyAJS9Uac1npODiN
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10263.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(56012099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?/iuDqoJXOK1dK08SlFxhgL8KiPcUUXtSPC037zxOXeetsUfh5Okmc6owWB?=
 =?iso-8859-1?Q?Ma9Di20Vtc8qOY4kXv63h9Xt6Fu1jZZJDtvjMeP3WGRd8qKNhOWjShzofG?=
 =?iso-8859-1?Q?xLwPR2jViJME5t50xgAvHLwugYIq5F6AznAILz0Ua8dYxy9PKcvCyEwzYu?=
 =?iso-8859-1?Q?0SIOvtl60EQk5lSuIzRsN9sU1Hsb9romxCRz8a9ueZj2XopQZoiaUgX5wa?=
 =?iso-8859-1?Q?2sr6OvK4LiT26cxqaz6QpQuZ8FlB0pOnzgFqXdcG7zuUvZ3IZKTtktLfFQ?=
 =?iso-8859-1?Q?92elZ+dNFV0SUNAIn2x7xnCAzkbxM+sLt4Q73MWrwzc3r0rV0HtQgFlN+0?=
 =?iso-8859-1?Q?R0ea4UfbgzODdoqjYs1gK9a5vGZ9u2xZ5yHZ+j5lw9KM2lcYG/D0Oe3huu?=
 =?iso-8859-1?Q?hFT7BYiiuAZx2/3b5+8fx5SD+cT0UqOIdYZ9RbxAu/Ungn318VLPZSYFyz?=
 =?iso-8859-1?Q?jDvri22a0XYI9MoupKlbPv4kgGGfHIBKKwu0PTgemBa74eVnaF0YQqm7pa?=
 =?iso-8859-1?Q?gWA6XOzXaH5qrMMvU1HP9Z4pob2SHljZp/3C7oDaGRCEt+jHAszAg0swbw?=
 =?iso-8859-1?Q?5OfxR52xoXrAVs+l6x11brIirZqcMusN9v+GNfVj6FXbvI0broiliJP1rT?=
 =?iso-8859-1?Q?HZCENB8Awr1+vJa2GeElLdoE+iBLwYRODTSkWxUsZPf2Qs+3Br5/urzSs9?=
 =?iso-8859-1?Q?DS9WBH/43xuqPQocB31rWm2K+pvyn4KcyyPNEOnAcTSRqF00j0uHtEVa1C?=
 =?iso-8859-1?Q?1blyFmTLNTlLGN23/FiGsGEKPiqsT++mcTb9Boxz2lQar4vznpk0fmQtAE?=
 =?iso-8859-1?Q?Wyo82guDh85Wx86VknApox5VipUBcWAZJcorMNe0u5pPLmqNZYSVJYHFMh?=
 =?iso-8859-1?Q?Y/sXakoVHjLRZPCuOkbOQAE4fYhpzqTbTlclaEhWJGQONlKXZR5Ut+cwn2?=
 =?iso-8859-1?Q?C+eokKkbrBTbcL1WCHDrwHFuEnXe06sazixrinng2Enj7YCTgf3yHPLjPC?=
 =?iso-8859-1?Q?Jo/kw+D1Rcwvya+ecAL00TtnoSLCjkHNyRRwdQ9IeviGAQhv2qIHoP3vsf?=
 =?iso-8859-1?Q?nJcfbpizBBa9bmLVWPQTzgUScz8l9RqdkDpCtQXmTxmH/Y74FbwIgpg7vv?=
 =?iso-8859-1?Q?/cNFQ7218raJV6nmiTmk4LbtLm4/5Zbx+MTAWwzF1RDsCrLYDbGeote3FA?=
 =?iso-8859-1?Q?rAqHZdrJOkGOruzhCCKbMLoSdRY04LztpclWvo9E7RCjqvbM1uzZwq4vt6?=
 =?iso-8859-1?Q?oQXkHJaR46I1CGZislthi+eEj8blHJtmsyrI6zLTe68heIBJ9gZsS4BVZE?=
 =?iso-8859-1?Q?Tk00MOO+xMT5k+7xEduAkxmjXAxRBQc9B7xmEoV45DvyOnB9dRMMSf/EzR?=
 =?iso-8859-1?Q?Y2GD3zakG0lAsPQ1wqDH//0m3LBVl3QRPd80vOlCA8S1lNViKVrFCEqWIG?=
 =?iso-8859-1?Q?aM+dBjMXeJC9pq7pewzXE2jzeO4cJWsJeNJfprgFcx4WkJp6gy+XoTSiOD?=
 =?iso-8859-1?Q?S9VcFbwBPM2tYrXIoFJIG8lLPmoGx8V6J5AsG3s2bbIjdbtIfZq5owVxJF?=
 =?iso-8859-1?Q?X+2FyGMP3d+PtDLcupWg4ZoTgGQbhJVN3zZEHjEnmSkurPR8NUFD0QOVFt?=
 =?iso-8859-1?Q?Tu3PugJTpXucwdxFrjnBGFkw6Z5LKsFWheRu4aucDt7NM6ChJ7OFzPJTj+?=
 =?iso-8859-1?Q?n4O1G/SP+TW9iXUjXCuCD+P2V4XjxmLw8G2+nV/8lAS+ljlqoV6+3Nk7+4?=
 =?iso-8859-1?Q?ethnLbAXQN71TIePWJvwmjwDUHZT0rkb40gBD5SoWUlMlWg3KBWHOVlnRu?=
 =?iso-8859-1?Q?ZY1X5FYo0+wuyDn06ks85VpTgm7uLC0=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DU5PR03MB10263.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d6fee17f-6e06-4712-058d-08dea9e2bdf9
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2026 13:40:44.7891
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: KqUr9WanAyxOBty5aFohxkP/fJUt2rZMXD4FrTu5VrhUJd8CChRr7V8pVuhjuFI+7qjkwQ9/ZiwUd5JuhzgXJig4ehmH9qaVvL6blDNHYkk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9106
X-purgate-ID: tlsNG-ef75cf/1777902048-ACD67C48-B9557FFE/0/0
X-purgate-type: clean
X-purgate-size: 2231

In RTDS, removing the last eligible pCPU kills repl_timer. When a pCPU
is later re-added, rt_switch_sched() reinitializes the timer object.

cpupool_unassign_cpu_start() refuses to remove the last pCPU from a
populated cpupool: if any domain is still alive while the system is
active it returns -EBUSY, otherwise all domains are first moved to
cpupool0. Consequently, by the time the killed-timer branch runs, no
units remain in the pool and replq is guaranteed to be empty.

Document this invariant by asserting list_empty(replq) right after
init_timer(). This catches any future regression in cpupool semantics
that would leave pending replenishment events behind across a
TIMER_STATUS_killed -> init_timer() transition, where the timer would
otherwise stay disarmed until an unrelated event reprogrammed it.

Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
---

Changes in v3:
- rework patch according to the comments. Since cpupools functionality
rejects last pCPU from removing so re-arm functionality doesn't make
sence. So patch was reworked to check that replq is empty after timer init.

Changes in v2:
- update commit description, remove unneeded paragraph

 xen/common/sched/rt.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
index 7b1f64a779..4b643eda30 100644
--- a/xen/common/sched/rt.c
+++ b/xen/common/sched/rt.c
@@ -743,6 +743,14 @@ rt_switch_sched(struct scheduler *new_ops, unsigned in=
t cpu,
     {
         init_timer(&prv->repl_timer, repl_timer_handler, (void *)new_ops, =
cpu);
         dprintk(XENLOG_DEBUG, "RTDS: timer initialized on cpu %u\n", cpu);
+
+        /*
+         * cpupool_unassign_cpu_start() refuses to remove the last pCPU fr=
om
+         * a populated cpupool, so by the time this path runs (timer was
+         * killed because all RTDS pCPUs were removed) the pool must have
+         * been empty of domains, which implies replq is empty too.
+         */
+        ASSERT(list_empty(rt_replq(new_ops)));
     }
=20
     sched_idle_unit(cpu)->priv =3D vdata;
--=20
2.43.0

base-commit: 680da952ac1ddfc94f9d1cd4dfa1815badae5302
branch: amoi_rtds_rearmv3=


From xen-devel-bounces@lists.xenproject.org Mon May 04 13:40:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 13:40:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299936.1574503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJtXe-0004uM-Ej; Mon, 04 May 2026 13:40:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299936.1574503; Mon, 04 May 2026 13:40:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJtXe-0004uF-C3; Mon, 04 May 2026 13:40:58 +0000
Received: by outflank-mailman (input) for mailman id 1299936;
 Mon, 04 May 2026 13:40:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wJtXc-0004tT-Uy
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 13:40:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJtXc-009ALg-8W
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 15:40:56 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f8a1e7-bab6-0a2a0a5309dd-0a2a450a9ba6-2
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 15:40:56 +0200
Received: from [40.107.209.56]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f8a1e5-56b3-0a2a450a0019-286bd1388b9b-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 15:40:55 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB7100.namprd03.prod.outlook.com (2603:10b6:806:339::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Mon, 4 May
 2026 13:40:50 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9870.023; Mon, 4 May 2026
 13:40:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ScRXDbi23dSU22vcjON62LG2tWaQL8NFfuzpaMTZg3ZHAEehZUGN7SJXXFq3Xxy5c2xl/tu+Yqac+EGk7SRmqIJjqsLLd2fTPWu8YCchSr3LDm/oN5l9EXCDiPnP9Nn5X++o8u7zoWn449lznMbO+cYNHpFt8kSF16nqo/dgSmAge9DIln51PMxACyZVTJG4lK+Sw3XYJyHPmMscTmgRdJt9lDcTeBk+GodY+WTc12NCyQhn3uBjsCRM5g0MstITNOYN2dcdtrbrVv7LFCUMGAGHh+iVXMo2Ez4eWhFuN9hu3vrag7pGDCAUQg38QHSUHjllCUNpWkUQPZOLwrFBeA==
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=T5ZUK99qPY3GpLSFKztsC/WhCwWerXVYqX5C3Giv6Qw=;
 b=H/BcGYgKUwm9d9e50es6fRiVab8ZpVTwlmKo6P5w9VtONR6A2EpVoZmdwVxA9GEw2m+zlHXGlZkV6h6mSzVi2WiOSJQIoGENmB8Qfo5Ax1UL6XNBr0HRYMy4qQ38FHmbuiNHqxUdxNR38necZrWMq623IgvgBl7JZ10lJC673zsjP4VA0i0xNfAkB5YcBWXA1hCwNMNyvl+4YOBuNqkeH6ruYxa635cOW72PHo5syXXueCyJmonJYxAyJI51tiwoLBIWzn+ExVS5B/30TD5/PUPGVbOCydayEW27cBJ2Llb4vGCJYoCm3JfbjRGdG1tISckNbajCE8melLCCR/0c6Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=T5ZUK99qPY3GpLSFKztsC/WhCwWerXVYqX5C3Giv6Qw=;
 b=rxL8aiBBFbXHG/KxjuNK4KbofqJM3GhEJQVRIceMyRgvXasQnbOEhKV07nrNnL46rQOq7GfilZp4ovK6pjWuCjJyGTm4pnjk0w+LCNoL84cj4rQ2sG450RLOPFZbImnlvXLgKl7D06FfJCTHcWwrvQv9gHEht7+8BckQUnturGc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 4 May 2026 15:40:45 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/cpu: identify uninitialized CPU data using BAD_APICID
Message-ID: <afih3TENGGZCFKLs@macbook.local>
References: <20260430114647.94526-1-roger.pau@citrix.com>
 <62ae456f-3ed2-450d-aaf2-bd9cd10fbec7@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <62ae456f-3ed2-450d-aaf2-bd9cd10fbec7@suse.com>
X-ClientProxiedBy: MR1P264CA0014.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::19) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB7100:EE_
X-MS-Office365-Filtering-Correlation-Id: 6d59c27a-0eb6-4853-a621-08dea9e2c0c6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	ftWegplcZe1vXUIP+pR5EiG1FRap5wk5xzYTh9VpadVw8beKlUdhbjO8YeitbzQcLwMOptL2VqDV/vSQBRaOy1ng7K9qJWIiYloL7riy6M3j3K/kMVRIrTAnMoDmttrOllJDZ5KJAhdzPJ32dCe311H3gEH2Cukkhp92A+uX2hLpCY+BTKybaeMIUR8n/8HjEEPKXgTLzE+hHEm8hbG/G/aA9az9LUelIEaLNrOHFZUQLMSlkIsDvrNrWPwVGVxvqLHYk5Z+VKdiG+yoieDTAiNOd9T60xMIi5nV7QjXdluJjXDq8/Y4jfaIbCZSeDW3/eGX//8VgOOPvYMPWX1Dj2fhQPQEek+YIk+O0vZUMbXQTTXdrVO9PCcE+ouofyFlJA2QX/6Wu8SfFgonS0aqSXRhkKUUd76qn/EYWqNb5w4ip1kOoTmfC9tIOWp3Raux2Gx55vxZSYenqFHX1NBDKjcoVXggKgZORDVAdz1VTGD43kxiTBLx5yA4HsOTFTEbmWBn5EE08kwSp7746qHlSte5q8aKW8X6ih3O187G6K/Fh4YNsGdxlyez8s4EvGd9qHHxAFiN10exzs1Wl/s3zXjDvs7dVX2Y3+IUiNKBO9nU99I8xpn47IO8JvLOfBNezxuePRB/NlI7xmEDfc1rz2KZZzoeXYqpUaXRcbvRnE/QzWffL9HjvejigVe48Rl4
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UTlwbHNTTVE5dW84dzVqa0RHbXN3cTU0REFhNWdTNzNCRkd1VUQzVkg2dThF?=
 =?utf-8?B?YTU0S0hveFV3T3ZHNTdKNVJPem5lYUZqak5mSkZDek43WHZXZjhjU2VseHNK?=
 =?utf-8?B?YXNJWWVWOHhsUEg5WmZWL2VYSnhONHgvT0RwcXBvVkZvRXZxem9id0UvV0NH?=
 =?utf-8?B?RllhVEpJZE8xODA4cnlBd0dkRmI4bmdYdDVWSjNsZUxvTG8rMWFiMkFMQVgr?=
 =?utf-8?B?ZWxObms1WFAwQUhyZFBPOTM0VkJDbE9WSnlDNzMyRDMzcG82TjRDVVNQeVBW?=
 =?utf-8?B?bzdrUTRIb0w5UzlWL0hjTytLQkNkVzJERXVlSm5xc3kvM09vNVN5eHJkWi9L?=
 =?utf-8?B?VTdwMGlsOE1jc25KOHNlbGYxOE44RjBkZWtoWWp2MGM2UUZteUxXd2lkSXJG?=
 =?utf-8?B?V3N3ZnFNVXRMNTFOT2NVMjBXY2c3SWQzdWtEWFlrQUo4R3BINXlvRWNjSU1o?=
 =?utf-8?B?WE5QMjRsRnZHMEorYjBIMFNhdjJobWo5NnFtdnlXWXlpOXdOcDF4TC8wVHFm?=
 =?utf-8?B?Q3BOQWpuN3hONXpYWWpnMzR3RytRV250MTBpUXhGYTR5bnBIblpkVSt2bzBM?=
 =?utf-8?B?RDYwWDdMa2oyK0Y3NW1vMXhoVWREckV0NXJObUtMUjZ6cE5DZW8zR2xCVDZ0?=
 =?utf-8?B?ZkhvQjBoQ3Q4WlpvcVAxSmNQVytjUkhGdksvMXRJL2pyTG1OMVpHaDQvdktJ?=
 =?utf-8?B?QVhsNnE5THV1V2sxUXZ5T3d3UUQ2SzdrVERaaVFJSHJUemViV1hSeENmS1I2?=
 =?utf-8?B?RkRheVlGRzAxM01hdjZwbWxCVkFVWnNVdjIrSVJqYk1TczRjN1d6U1BwOW0r?=
 =?utf-8?B?SWduMnpsWWdvck41d09ZNE1ncG1FYzl4U1cydUk3YlZ0UVhHdVdVb3Zpc0wz?=
 =?utf-8?B?WnVPUFNhUmVwL0hVQ0JuTHN3dEFzY3hBY0lpNUg0T2ZpdFFVZ2J3MzFCUjMw?=
 =?utf-8?B?N1IwZ2JPNUpFUlQwM0Z5S0hHUDNRcnM1Tm5ZQlM1Qm9GVlYzNFhFUHJydWIv?=
 =?utf-8?B?cFpJelNiV3g0UkVCMDdWTVA4Y2JQZWRlYkEySW16ZW9rME1XaXdkNFFpSk5p?=
 =?utf-8?B?QUNzbG5rbzE4WGlXT0pJNWI1bG92Sjg3SGNYKzhNM1NuaWlTYm5UM3lhejB4?=
 =?utf-8?B?UllrSjhBS0NnMjk1NG85Qzd1Z29xb2hvS29tcHpjSmRkQTd2MjdXeXM2SzFp?=
 =?utf-8?B?U01RU0NpMWdhdzBrQUxUaFBSM1ROWTVXVFp5ZkxIc1FrL0g1T21La0pldXU0?=
 =?utf-8?B?RVNpTWU4QW9DSG5CS0hYUndFcWhDdTM2QXZwcDNCRkQrdk5UM2JNL3BudWFB?=
 =?utf-8?B?Z3dHOTgrcGxvWGFXNUJZazNKcmNIMU5JTFZqTWRyTlFOR1JlZFdsMXduZDBC?=
 =?utf-8?B?a1lyY3R4ZFYwU0xFRVo1MGdiMEkzNmZhU01GZkwyalJLL2xzM1RtcW85anpv?=
 =?utf-8?B?b203VjQ0UXE4enptWDJmZWcyciswTlEwTUZxd0VQMzNwYVR6clptdWJxZlNW?=
 =?utf-8?B?S2VkS010YjB0Si8ycWJPRENrSVUvSEg5TnBML211L0JaOWhwWjVLbW5tdENR?=
 =?utf-8?B?TDJaMUkxMklRSlZoQnhvOTNPdWhoaVMwZkVRODMwYXNtM2dSZDNCNEt0aHQ0?=
 =?utf-8?B?NVp6R0pjYjA1ckZWMUViNnp2dVNZdWlpeUgzRG8xYk4rU3NPWVNZWklacDVX?=
 =?utf-8?B?ZzRmdWZqd1M2Wmk0RmFGSW9sMzJGMjk2WXhEZk9UQnA4VzRhRHVXMHZvWTN4?=
 =?utf-8?B?blo3RWxCdXI0V3lLMTZneWR6TmZCNGVRSnpYNjBOajc2VmZWRW1LeEd3bmdo?=
 =?utf-8?B?VlJodW15b1FxVUtoZ0w5cHZreFp1VVNMKzNpYmsxQXErN2NHMW91aVpXcWlo?=
 =?utf-8?B?YzcrUTdMMFdZeTNJMElYOHU2MU9KSXBqMDFKMG5vNDJMOGszS3RrNURRNU1N?=
 =?utf-8?B?TjNkcjNPWERKWFZaWDZ3dlZ3WGxveXhLeWpvZ216UGUyY1BGc0VFSTVHNVgv?=
 =?utf-8?B?TDhONmJPWHJwY1pLVXVsemlhckIxaG0rYjlOaHZtaUs3ckJhandFeGViZTNQ?=
 =?utf-8?B?VC9YKzA2b092U09odEhpZEZsSDNkOFRMV3YzcHJYRUJ4YndRNGNsNGs5T25O?=
 =?utf-8?B?OFc2ZS82ajg1dUQvcE1pZUc1WHQycm9JWktiWjR6aS9POUtsSXJVUUdRYm85?=
 =?utf-8?B?UUNLRTI4cVVzYW5rVHE0OTZaKy9DUXErLytoemJiNkhGQmpiUi9sQTRCTXkw?=
 =?utf-8?B?WnFGNDhldUZQVnJyUXpHYnREMHdIWkIzZ0lwRGRubXFvUTVYY3JMbjlJcito?=
 =?utf-8?B?WXdZc0FZNFdzNUVzQVZ2VEtqelBQdTFZbnQ3Nm9QMkxlMXJxTE5sUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6d59c27a-0eb6-4853-a621-08dea9e2c0c6
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2026 13:40:49.9256
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: L8p0o1uy6ur2bteBEPv1NcJdFrS0u1Ra1jaW0v5LJMZx1vmG0BTNYrwPkeBElpLb/iewr+Ql09y/zuao9QA2Jg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB7100
X-purgate-ID: tlsNG-4011c0/1777902056-80C788B7-A88E5DD4/0/0
X-purgate-type: clean
X-purgate-size: 1390

On Mon, May 04, 2026 at 01:31:34PM +0200, Jan Beulich wrote:
> On 30.04.2026 13:46, Roger Pau Monne wrote:
> > Uninitialized cpu_data[] entries have the apicid field set to BAD_APICID,
> > not boot_cpu_data.apicid.  Fix the check in cpu_smpboot_free() to use the
> > correct condition.
> > 
> > Fixes: 7126b7f806d5 ("x86/CPU: re-work populating of cpu_data[]")
> 
> I think this isn't correct, and the issue here is me having overlooked a
> dependency between that commit and the one introducing the line which
> you change: 8c15d3d18725 ("x86/SMP: guard socket_cpumask[] access in
> cpu_smpboot_free()"). Both changes were committed close together, but
> they were entirely separate submissions (well over a year apart). Hence
> as an individual patch that latter commit was correct, but on top of
> 7126b7f806d5 it would have needed adjustment. Since 7126b7f806d5 wasn't
> backported (while 8c15d3d18725 was), the fix here also shouldn't be
> backported to anything earlier than 4.21 (which indeed the Fixes: tag
> better expresses).

I see, right, in the git history 8c15d3d18725 is indeed later than
7126b7f806d5, and hence 7126b7f806d5 was correct when introduced.  The
bug in cpu_smpboot_free() was there, but 7126b7f806d5 made it no
worse.  It was 8c15d3d18725 that would indeed need to be adjusted to
pick up the new initialization value.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon May 04 14:05:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 14:05:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299955.1574512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJtvY-0000O0-6M; Mon, 04 May 2026 14:05:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299955.1574512; Mon, 04 May 2026 14:05:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJtvY-0000Nt-36; Mon, 04 May 2026 14:05:40 +0000
Received: by outflank-mailman (input) for mailman id 1299955;
 Mon, 04 May 2026 14:05:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJtvW-0000Nl-Du
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:05:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJtvV-00D8JZ-B1
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 16:05:37 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8a7a1-bab6-0a2a0a5309dd-0a2a4508c4a0-38
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:05:37 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8a7b1-63b5-0a2a45080019-d155802ee452-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:05:37 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-488ad135063so37708655e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:05:37 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-44a981defb3sm35237598f8f.20.2026.05.04.07.05.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 07:05:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777903537; x=1778508337; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=c4m3MIC0nMI1OHNqDpdo5HlaLrVVNbzjQ00s9cmcKZk=;
        b=YiJWndg3cjoj1Pg/Ikvjc6geoSQSr3kQVwxBxluPxrkY7L6G1+M5LxiEgyxTNE/4ZR
         jp79FbKuyLzZchtqQp9M5YsF6T8EcXUaTEa7lE+Gb7GheQsE/r61TQDAOhHRnh6z+tu/
         CvhcJa5Ype1MNd+XCCC6l6uTR22/7BvembZhHt6fhILi/eLJ6gkJKBMGvi+MnaSQqXRr
         hssnRzKN32wVdVNE4h5zHMxeWd6XcJoqHdCjLf+JYYWb11lZEH3asSMyKmAhkgDuNnf5
         hSNed893XaCd6NcFTs0sGWtefzrO3fmlGCIpFS8e0SGNI+V6N1fN7osRlx2Nw9v14WHC
         OvyA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777903537; x=1778508337;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=c4m3MIC0nMI1OHNqDpdo5HlaLrVVNbzjQ00s9cmcKZk=;
        b=oUQ3NUQCFbzhI8P51wDBORXITfg/hl5hcjx+1YQo1bXxQHIP5n8wMSEA8ibxVT1JKv
         Nn3AzjycUrkDSWNzdGNGHPaKc/9B9h0HdnDM48nCGiuPF7qWdVKc40mEWXYKLwxbI9Z/
         tV+0R4IWUzlrY5wjOVrj303AIdG2NIDDNjUzClOqgpvsvlggJPAejsC5ySV8AX0rH9Kn
         ebvhs6tu9ex3cHV/m8rrrIkQiby0BEb6Eg5qDxrm7efeBPLVuzwGmK8u22VLD1HDHZP9
         KHbi//bVAbl7RLFkoCHPRw0/ZJZsPJK7101u9gScjKCyGQsyZmBmfw0IkyJHQRyx4RfP
         4hWw==
X-Forwarded-Encrypted: i=1; AFNElJ9WOT3ObpjnyX5vHQ1XrOTH+zfR6+OM6cuBgljboTEyZZKxPMblm5vx3J+/cGgkmJK5Oeg9T1IAipo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YysNRkEKyl4N2a+aEQynFJayTfbk9+G3r70RgqUtQpMpVrmfCx1
	5TK4/ilAxEh5oSoWVtA4szETNpbKiLbLJ2Og+gKjLA359SIo8hSX5JiOR7jiGvBfpg==
X-Gm-Gg: AeBDietw4DDLUDuw7HYZb5114LWOLZtgcuFygqPWWjJSTg5hz4OuFzhjeCdjhw4fcpt
	8fwAZuiIk7jqdLkTP9Qu6vLiC5A47A7ZiRZ2horMUnRWKAZUaeBXaEYElI5Fx5UVSYNFanGdlmg
	7U3MTwTb/kkjIoLI/1RXwA+pZTOorKBBtOL20VaKuo3EUWlOaSOI7zOKWaw9XI7ZxzKEldEL//G
	hyW5i9MdlBPqaKGGuvgs8d5h73FgcKxCg30dvsytGou4EfnEHD87AWabmfp8ni4v6WpEGOwdKlZ
	tFeaqL/iyoPf0rUfJLCr7U2UV3yZS7ssDrSg1JkvdoEiXwuF4c/Yw/6QxlEQqs/9WOvfMLlVbea
	lKns6uRbpyt/HZZIYr4eyR19pOaJA9oH9TlwEfOVAwETkkxcXAS69BfUCzEjjOnyqBJEbBfw7NZ
	bx8ARPI6qEcM//iQO8BQ5eN2+qrYi9VBwpLmjV6rKo2ovkreKyvTufqfLN22ixeUCR4BlOZpa6A
	tRqLlX4HkQKcU6yv1ANW1loxw==
X-Received: by 2002:a05:600c:628c:b0:489:1ba8:5bf0 with SMTP id 5b1f17b1804b1-48a988be16emr171857205e9.21.1777903536543;
        Mon, 04 May 2026 07:05:36 -0700 (PDT)
Message-ID: <f61ddc8f-88a6-4f61-a470-c9c82b8b9b52@suse.com>
Date: Mon, 4 May 2026 16:05:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/11] xen/riscv: add Linux kernel loading support
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <af89f0b696c5a1ae477dc0903a9a99b84df26f7a.1777303844.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <af89f0b696c5a1ae477dc0903a9a99b84df26f7a.1777303844.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1777903537-C2975DB1-C3FDBB87/0/0
X-purgate-type: clean
X-purgate-size: 7653

On 28.04.2026 16:33, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/kernel.c
> @@ -0,0 +1,242 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/bug.h>
> +#include <xen/compiler.h>
> +#include <xen/errno.h>
> +#include <xen/fdt-kernel.h>
> +#include <xen/guest_access.h>
> +#include <xen/init.h>
> +#include <xen/libfdt/libfdt.h>
> +#include <xen/mm.h>
> +#include <xen/types.h>
> +#include <xen/vmap.h>
> +
> +#include <asm/setup.h>
> +
> +#define IMAGE64_MAGIC_V2 0x05435352 /* Magic number 2, le, "RSC\x05" */
> +
> +static void __init place_modules(struct kernel_info *info, paddr_t kernbase,
> +                                 paddr_t kernend)
> +{
> +    const struct boot_module *mod = info->bd.initrd;
> +    const struct membanks *banks = kernel_info_get_mem_const(info);
> +    const paddr_t initrd_len = ROUNDUP(mod ? mod->size : 0,
> +                                       KERNEL_LOAD_ADDR_ALIGNMENT);
> +    const paddr_t dtb_len = ROUNDUP(fdt_totalsize(info->fdt),
> +                                    KERNEL_LOAD_ADDR_ALIGNMENT);

Why would modules need to be this strongly aligned?

> +    const paddr_t modsize = initrd_len + dtb_len;
> +    unsigned int bi = banks->nr_banks;
> +
> +    BUG_ON(modsize < initrd_len);

Where's the earlier check that allows this to be BUG_ON()?

> +    /*
> +     * Place modules as high in RAM as possible, scanning banks from
> +     * last to first so that the end of the last bank is preferred.
> +     */
> +    while ( bi-- > 0 )
> +    {
> +        const struct membank *bank = &banks->bank[bi];
> +        const paddr_t bank_end = bank->start + bank->size;
> +        paddr_t modbase;
> +
> +        if ( modsize > bank->size )
> +            continue;
> +
> +        modbase = ROUNDDOWN(bank_end - modsize, KERNEL_LOAD_ADDR_ALIGNMENT);

Same question here.

> +        if ( modbase < bank->start )
> +            continue;
> +
> +        /*
> +         * If modules would overlap the kernel, try placing them below it.
> +         */

With how kernel_image_place() works, and with the heavy alignment applied
above, is this even possible to succeed? Oh, wait, yes - for the not-
position-independent case.

> +        if ( (modbase < ROUNDUP(kernend, KERNEL_LOAD_ADDR_ALIGNMENT)) &&
> +             (modbase + modsize > kernbase) )
> +        {
> +            modbase = ROUNDDOWN(kernbase - modsize, KERNEL_LOAD_ADDR_ALIGNMENT);

What prevents this subtraction from underflowing?

> +static paddr_t __init kernel_image_place(struct kernel_info *info)
> +{
> +    paddr_t load_addr = INVALID_PADDR;
> +    uint64_t image_size = info->image.image_size ?: info->image.len;
> +    const struct membanks *banks = kernel_info_get_mem_const(info);
> +    unsigned int nr_banks = banks->nr_banks;
> +    unsigned int bi;
> +
> +    dprintk(XENLOG_DEBUG, "nr_banks(%u)\n", nr_banks);

Did you mean to drop this before submitting?

> +    /*
> +     * At the moment, RISC-V's Linux kernel should be always position
> +     * independent based on "Per-MMU execution" of boot.rst:
> +     *   https://docs.kernel.org/arch/riscv/boot.html#pre-mmu-execution
> +     *
> +     * But just for the case when RISC-V's Linux kernel isn't position
> +     * independent it is needed to take load address from
> +     * info->image.start.
> +     *
> +     * If `start` is zero, the Image is position independent.
> +     */
> +    if ( likely(!info->image.start) )
> +    {
> +        for ( bi = 0; bi != nr_banks; bi++ )
> +        {
> +            const struct membank *bank = &banks->bank[bi];
> +            paddr_t bank_start = bank->start;
> +            /*
> +             * According to boot.rst kernel load address should be properly
> +             * aligned:
> +             *   https://docs.kernel.org/arch/riscv/boot.html#kernel-location
> +             *
> +             * As Image in this case is PIC we can ignore
> +             * info->image.text_offset.
> +             */
> +            paddr_t aligned_start = ROUNDUP(bank_start, KERNEL_LOAD_ADDR_ALIGNMENT);
> +            paddr_t bank_end = bank_start + bank->size;
> +            paddr_t bank_size;
> +
> +            if ( aligned_start > bank_end )
> +                continue;
> +
> +            bank_size = bank_end - aligned_start;
> +
> +            dprintk(XENLOG_DEBUG, "bank[%u].start=%"PRIpaddr"\n", bi, bank->start);

And this one? (I also find it puzzling that ->start would be of (primary) interest
here, when ...

> +            if ( image_size <= bank_size )

... bank_size is what's relevant.

> +/* Check if the image is a 64-bit Image */
> +static int __init kernel_image64_probe(struct kernel_info *info,
> +                                       paddr_t addr, paddr_t size)
> +{
> +    /* https://www.kernel.org/doc/Documentation/riscv/boot-image-header.rst */
> +    struct {
> +        uint32_t code0;         /* Executable code */
> +        uint32_t code1;         /* Executable code */
> +        uint64_t text_offset;   /* Image load offset, little endian */
> +        uint64_t image_size;    /* Effective Image size, little endian */
> +        uint64_t flags;         /* kernel flags, little endian */
> +        uint32_t version;       /* Version of this header */
> +        uint32_t res1;          /* Reserved */
> +        uint64_t res2;          /* Reserved */
> +        uint64_t magic;         /* Deprecated: Magic number, little endian, "RISCV" */
> +        uint32_t magic2;        /* Magic number 2, little endian, "RSC\x05" */
> +        uint32_t res3;          /* Reserved for PE COFF offset */
> +    } image;
> +    uint64_t effective_size;
> +
> +    if ( size < sizeof(image) )
> +        return -EINVAL;
> +
> +    copy_from_paddr(&image, addr, sizeof(image));
> +
> +    /* Magic v1 is deprecated and may be removed.  Only use v2 */
> +    if ( le32_to_cpu(image.magic2) != IMAGE64_MAGIC_V2 )
> +        return -EINVAL;
> +
> +    effective_size = le64_to_cpu(image.image_size);
> +
> +    if ( effective_size && size > effective_size )
> +        return -EINVAL;

Is the rhs of the && the wrong way round? If effective_size > size,
aren't you in trouble? Question of course is what "effective" really
means. Yet in any event it seems dubious to me that effective_size <
size would really be a problem. IOW this will want commenting upon
if the check is to stay.

Actually ...

> +    info->image.kernel_addr = addr;
> +    /* Actual size in the binary file */
> +    info->image.len = size;
> +    /* Total memory the kernel occupies at runtime */
> +    info->image.image_size = effective_size;

... this looks to suggest something .bss-like.

> --- a/xen/include/xen/fdt-kernel.h
> +++ b/xen/include/xen/fdt-kernel.h
> @@ -59,8 +59,15 @@ struct kernel_info {
>          struct {
>              paddr_t kernel_addr;
>              paddr_t len;
> -#if defined(CONFIG_ARM_64) || defined(CONFIG_RISCV_64)
> -            paddr_t text_offset; /* 64-bit Image only */
> +#if defined(CONFIG_ARM_64) || defined(CONFIG_RISCV)
> +            /*
> +             * ARM: 64-bit Image only.
> +             * RISC-V: both 32-bit and 64-bit Images.
> +             */
> +            paddr_t text_offset;
> +#endif
> +#if defined(CONFIG_RISCV)
> +            uint64_t image_size; /* Effective size of Image */

As this (apparently) is for both RV64 and RV32 - can the latter really have
wider than 32-bit image sizes? If not - use size_t or unsigned long here?

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 14:23:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 14:23:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299966.1574522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuCk-0003LI-JS; Mon, 04 May 2026 14:23:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299966.1574522; Mon, 04 May 2026 14:23:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuCk-0003LB-Fc; Mon, 04 May 2026 14:23:26 +0000
Received: by outflank-mailman (input) for mailman id 1299966;
 Mon, 04 May 2026 14:23:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJuCj-0003L5-9m
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:23:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJuCi-00GTJl-FK
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 16:23:24 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8abd6-2eae-0a2a0a5409dd-0a2a4503b8cc-20
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:23:24 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8abdc-672d-0a2a45030019-d155802eac0c-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:23:24 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-488a14c31eeso30583025e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:23:24 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8eb75fc1sm286878635e9.7.2026.05.04.07.23.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 07:23:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777904604; x=1778509404; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=u3m/qInxC49xlMZSE9dc97iQE9ZpWisKeFNR3YNzlUo=;
        b=GQynzwNovqeGY1cLCwGizidS1LWOJhgLmlsOieeJjTpwpA3BJqjJaw97zUNg71ZCSB
         zvEuv1SqEErVVfKe52ITxQSb2JJuVMcSRqGnmJmRajit3WDc8BdD0tDwSyBFRvFiOhvh
         1DSqnd8z3Oq0s9K9x4U3DatZEoKgYPCSD7XU74PHpzYoaP4JERNxC18lV0Jcb2IpNtql
         uOle6nsN0l6p7X5+3Ws7zDrrJiAGBX7QksYCihwMWQHkPqG2mdRSIVhZJwBoEn0Qw1mr
         Lu2E63O8d3RZSKUlsmAKq0CY8WABdZiBT9cq746blxTT/XiroT1urdHuaAom/qP1s8tA
         tSXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777904604; x=1778509404;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=u3m/qInxC49xlMZSE9dc97iQE9ZpWisKeFNR3YNzlUo=;
        b=dN6XfAwqvbogjrgC+DfLKYdcBnEkBxjAjfKQkSU3ndTGnAAuFKW9FYhIdmA+rxOtc+
         CaqBgvMnLvkrkOlpFY/u4iSEROtn63PxKjUxPn33iA39O7HEvN8ZkFGFVOWAORLRSZqs
         Fph7UrnNdSVJn6kw7Qnbh5OAUA7Bu2b8rfmd6QvMsCtd3yYGtkPn0EHPU5JrIMQFnjeX
         oV935luxv0uACoDaxxnSD186bwdaMHPqFffp5gbB+3Y4qC38nXA/R3oIpjo8qdP7hk/D
         DP29ii1SHPfng5fLJAKJzODTXSAV8fAQLfCHeY17yJfeg/IvGblijdfrbJ0p6Uxuxufx
         tKxw==
X-Forwarded-Encrypted: i=1; AFNElJ9bDZIn//pC0VI0Y42F6CSK9YZKHrHOTBG2u80u6j0i8f35hRVZXv7uU3+WIhPOBTApIGrqah1FcPI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxHVYjzh2lIsC1tH7sNJqUPer29BToe3fD4Dq3o5atjRpBl3rRN
	Afw6E2Mj5j2i3co2d8ICafoOWE19mTp+jkDEQaRe4M/EUpt9mVzqNcq3YfL4fuuncA==
X-Gm-Gg: AeBDietHGItGTl99v9Wf0J9Ytb6CIO+/H9Wh1O1Q8yXhX6WFwLLPdJqsmDXyjE5YgCd
	II1K+QwbnwHuJzvo7bfZlz8jsZwfaRkI0hIEHzNZ2IQr1TizyytLWFgN83CTkrFfcbXnmG4lN2l
	68Y1+M4r10yhiTZ86yBuuXHyxpxPVzM1wsYx75PkcFLPVk6diib9kIPS4MxOQIglaAuptzzy7Zr
	a0Ry+qyz9IepKpjnMsNO5pJffBXYSviGXt7nMhdJRu+MjwD1X37li/U+WSZCuOlNzbKv0Pv1IOz
	ilZJs55m8xJuotZsrhKjBikQ4XvEZOGjhKciI8+eY4+liy1cTFviSnxadi7T7l69/XfdUv9v+Gc
	7mD5QIpmSLPQHw2zZu6wiIaYoDDt4nbM84BGHzi6wEzTInhCHaI9+d4FGMjPgMSQhCXhPWSJQt3
	frlJPAPIhZm3s0HJBHM+m1EvHAHliV/Itlqks9aFh680B64Yy+YRzgAi9A1ZQHB25IuHh4voFV7
	5AzH0xnz4CqDAA8oAegy1f75g==
X-Received: by 2002:a05:600c:8903:b0:489:e696:8362 with SMTP id 5b1f17b1804b1-48a98894fe0mr109634555e9.13.1777904603806;
        Mon, 04 May 2026 07:23:23 -0700 (PDT)
Message-ID: <aec349c3-ae88-4b8c-940e-6d3fd9c115f8@suse.com>
Date: Mon, 4 May 2026 16:23:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/11] xen/riscv: rework G-stage mode handling
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <865ed71ece75e850cdcb47ce9157a668a46a4c4d.1777303844.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <865ed71ece75e850cdcb47ce9157a668a46a4c4d.1777303844.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1777904604-A1F7A938-A8522B78/0/0
X-purgate-type: clean
X-purgate-size: 6013

On 28.04.2026 16:33, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/dom0less-build.c
> @@ -0,0 +1,70 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/bootfdt.h>
> +#include <xen/device_tree.h>
> +#include <xen/init.h>
> +
> +#include <asm/p2m.h>
> +
> +int __init arch_parse_dom0less_node(struct dt_device_node *node,
> +                                    struct boot_domain *bd)
> +{
> +    const char *mmu_type;
> +    unsigned long bits;
> +    const char *end;
> +
> +    if ( dt_property_read_string(node, "mmu-type", &mmu_type) )
> +    {
> +        dprintk(XENLOG_WARNING, "mmu-type property is missing in guest domain "
> +                "node. %s will be used as fallback\n", max_gstage_mode->name);
> +
> +        bits = P2M_GFN_LEVEL_SHIFT(max_gstage_mode->paging_levels + 1);
> +
> +        goto out;
> +    }
> +
> +    if ( !strcasecmp(mmu_type, "riscv,none") )
> +    {
> +        dprintk(XENLOG_ERR, "Bare mode isn't supported by Xen\n");
> +
> +        return -EOPNOTSUPP;
> +    }
> +
> +    if ( strncasecmp(mmu_type, "riscv,sv", 8) )
> +    {
> +        dprintk(XENLOG_ERR, "mmu-type value \"%s\" is incorrect\n", mmu_type);
> +
> +        return -EINVAL;
> +    }
> +
> +    bits = simple_strtoul(mmu_type + 8, &end, 10);
> +    if ( (*end != '\0') || (end == mmu_type + 8) )
> +    {
> +        dprintk(XENLOG_ERR, "mmu-type value \"%s\" is incorrect\n", mmu_type);
> +
> +        return -EINVAL;
> +    }
> +
> + out:
> +    if ( bits > (UINT8_MAX - P2M_ROOT_EXTRA_BITS) )
> +    {
> +        dprintk(XENLOG_ERR, "gstage addr bits value overflows uint8\n");
> +
> +        return -EINVAL;
> +    }
> +    /*
> +     * The correct value of bits will be checked in p2m_init() by call of
> +     * find_gstage_mode_by_bits().
> +     *
> +     * As mmu-type property contains one of string:
> +     *  - riscv,sv32
> +     *  - riscv,sv39
> +     *  - riscv,sv48
> +     *  - riscv,sv57

Or about any other riscv,sv<N> with N up to somewhere around 250. I see
that ...

> +     * it is needed to add '+P2M_ROOT_EXTRA_BITS' as for G-stage mode GPAs
> +     * are extended by P2M_ROOT_EXTRA_BITS.
> +     */
> +    bd->create_cfg.arch.gstage_addr_bits = bits + P2M_ROOT_EXTRA_BITS;

... the value calculated here is later checked for validity, so it's
really only the comment which may want clarifying a little.

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -45,12 +45,27 @@ struct p2m_pte_ctx {
>      unsigned int level;          /* Paging level at which the PTE resides. */
>  };
>  
> -static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
> -    .mode = HGATP_MODE_OFF,
> -    .paging_levels = 0,
> -    .name = "Bare",
> +/* Values should be sorted by ->mode in this array */
> +static const struct gstage_mode_desc gstage_modes[] = {
> +    /*
> +     * Based on the RISC-V spec:
> +     *   Bare mode is always supported, regardless of SXLEN.
> +     *   When SXLEN=32, the only other valid setting for MODE is Sv32.
> +     *   When SXLEN=64, three paged virtual-memory schemes are defined:
> +     *   Sv39, Sv48, and Sv57.
> +     */
> +    { HGATP_MODE_OFF,    0, "none" },
> +#ifdef CONFIG_RISCV_32
> +    { HGATP_MODE_SV32X4, 1, "sv32" },
> +#else
> +    { HGATP_MODE_SV39X4, 2, "sv39" },
> +    { HGATP_MODE_SV48X4, 3, "sv48" },
> +    { HGATP_MODE_SV57X4, 4, "sv57" },
> +#endif
>  };
>  
> +const struct gstage_mode_desc * __ro_after_init max_gstage_mode = &gstage_modes[0];

Nit: Overlong line (and, strictly speaking, a stray blank after *).

> @@ -331,8 +324,35 @@ static int p2m_alloc_root_table(struct p2m_domain *p2m)
>      return 0;
>  }
>  
> -int p2m_init(struct domain *d)
> +static const struct gstage_mode_desc *find_gstage_mode_by_bits(

Is "_by_bits" adding much value to the function name? Especially ...

> +    unsigned char gpa_bits)

... seeing that the parameter name is making things pretty clear?

> +int p2m_init(struct domain *d, const struct xen_domctl_createdomain *config)
>  {
> +    /*
> +     * TODO: This static is a temporary constraint: all guests must use the
> +     * same MMU mode because p2m_gpa_bits is not yet per-domain.
> +     * Drop this once per-domain p2m_gpa_bits is introduced.
> +     */
> +    static const struct gstage_mode_desc __ro_after_init *m = &gstage_modes[0];
>      struct p2m_domain *p2m = p2m_get_hostp2m(d);
>  
>      /*
> @@ -341,6 +361,33 @@ int p2m_init(struct domain *d)
>       */
>      p2m->domain = d;
>  
> +    if ( !config )
> +    {
> +        dprintk(XENLOG_ERR, "NULL config is passed\n");
> +        return -EINVAL;
> +    }
> +
> +    p2m->mode = find_gstage_mode_by_bits(config->arch.gstage_addr_bits);
> +
> +    if ( !p2m->mode )
> +    {
> +        dprintk(XENLOG_ERR,
> +                "Unsupported or unavailable gstage addr bits: %u\n",
> +                config->arch.gstage_addr_bits);
> +
> +        return -EINVAL;
> +    }
> +
> +    if ( m->mode == HGATP_MODE_OFF )
> +        m = p2m->mode;
> +
> +    if ( m->mode != p2m->mode->mode )

Since m always points into gstage_modes[], do you really need the extra
indirection to compare the two ->mode fields? You could simply compare
the pointers, couldn't you?

> --- a/xen/include/public/arch-riscv.h
> +++ b/xen/include/public/arch-riscv.h
> @@ -56,6 +56,11 @@ typedef struct vcpu_guest_context vcpu_guest_context_t;
>  DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
>  
>  struct xen_arch_domainconfig {
> +    /*
> +     * G-stage GPA address width in bits.
> +     * Valid values: 34 (sv32x4), 41 (sv39x4), 50 (sv48x4), 59 (sv57x4).
> +     */
> +    unsigned char gstage_addr_bits;

Fixed-width types only in the public interface please.

Also, isn't the field effectively describing the maximum width of a
guest (physical) address? In which case - simply gaddr_bits?

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 14:34:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 14:34:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299976.1574530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuNX-00058X-LT; Mon, 04 May 2026 14:34:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299976.1574530; Mon, 04 May 2026 14:34:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuNX-00058Q-IJ; Mon, 04 May 2026 14:34:35 +0000
Received: by outflank-mailman (input) for mailman id 1299976;
 Mon, 04 May 2026 14:34:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJuNW-00058K-N4
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:34:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJuNU-009MVJ-IC
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 16:34:32 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8ae67-bab6-0a2a0a5309dd-0a2a450687f4-32
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:34:32 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8ae78-7371-0a2a45060019-d1558031d07f-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:34:32 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-488e1a8ac40so40207825e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:34:32 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a81ed69fasm392677415e9.3.2026.05.04.07.34.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 07:34:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777905272; x=1778510072; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZlzH9Zj2lvjyN9VPiYFcCnJseQHPzyvLtGosuDMEynY=;
        b=L0kqsSsQ9OaV4Xo608Q72tUfKVoIEAXNYX4uqOSAs1WS5Z7PEjcen6A33YgLXhkXip
         eQBAjXMTt2lYGY7CJ7Zvop9eIRbQLPi+3bblfm+MSVMlnTUGehQifGPszuwjakBdHkfh
         jmTazxlbWTAB2cPdyauToRon/yVrEXhuVtDKUBTQI9O+ASsyqMFMlZaBgb6MsjtwjkC9
         x6sqxQF5gV8fuNKO23IebpTlzYCwzAnYESJJtcR7OFGkP5vJc0F1ME9TXstBF4DIFzcs
         Il8yEVBAbwh795B/0t/H8Ot87XDzO5/RuLtn3fXMM2GVKdSLksb28HUzjZcLgTsTXC36
         x08w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777905272; x=1778510072;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZlzH9Zj2lvjyN9VPiYFcCnJseQHPzyvLtGosuDMEynY=;
        b=VrgrN8/xeXKiGDgmA6iy7J7t11ZrmUqj9DddO+7EiHAAwiqO3gITPurOgqNzuvDTv+
         W7uKJnZB8TMFUnlgjocaQ2EMF7sIj7PtIJlG1eNsVnGEWzTgt7IpKVRrIffjuyvzt4Ds
         JcgjewLDS5++u/L4GkAXcktbnvJCH9skngRNanoH2MH5hWzLncRT74taQpr4iLc7zRF+
         KoD5+UCod9S1nJl6BbGcssYQSHgM60jGWqajO6OjF/YtDne2M2fblTgmtCubRNJDUuJv
         br8sWBPyJXLEz0qbOSsb3FMKs8NxzpMpMGMBbojtfqCljwVcdJvYGz0ZEDBur5rvmLV6
         k5mA==
X-Forwarded-Encrypted: i=1; AFNElJ/CmxXvQhXhGZFgm6NQX5DEqKut5W+Qjd2R174L+JllYZH2KdKxh8X8VOTDHj5nmqXBrmDDfx0iZfU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyUmDUA0c1h88oPcj9brSUXhpPHNkIuAQv2tq72snrhAnHV/Oo4
	aep7+KSZ/d1SIVsshO7TEaKOE3g7O2OzPufk/FJIdQSRbpoGpS9WrLT+s2jyfKVVCA==
X-Gm-Gg: AeBDieuIbQiSwgQxbhyPl/FjaewfFNFaMXHTB1yFK178n3AkDESYcGDr6NRThDTCBix
	lptmu7owpuNK2+dhsgXDiU15M9kAffoeV26BS7H55qW9TPT6/iNdH0N/4iLlRupzaXbfP7MR7LN
	pqsIk7mxLyNz+51QAmVFR+o9ZVCujScDC+StsB2K+bJyVsr0lLZLbiGZ8P4nYp20JNBqAvTzsoo
	xaC3tkgc9Ds8oyWpYMkpQY9GvNbLhiNjYI6IB3gl0z3/eAtq4R3Ru+FWkOh4U3EGUSrkAwsxK5n
	brDj5jOg3KjUAjOTxwd0zub8WHiiBRm2J51QbNeUnlmEDSpDemODu0qjk2esgVkimQF57hjyBJw
	+DBxzDlb7Gp7NjSRBHy62UnGmGMEnAO1MUiZpS4xznb90EJETSR0iQiV0tW+dAO04qqqcKRDCct
	aVPadUoUgeN/Lb1ZcYr6cyauMntnzU3mQKaUHuBk8NN+uoEPsQUackbx6MWN/DNs8CPiDPlCO9M
	HZCCS07fqFCy1TxfC7pdiM92L7Yaq7nS2Io
X-Received: by 2002:a05:600c:5303:b0:48a:53ea:13eb with SMTP id 5b1f17b1804b1-48a9852c5c0mr180294885e9.5.1777905271874;
        Mon, 04 May 2026 07:34:31 -0700 (PDT)
Message-ID: <58d73d7e-49e8-4bcb-ad6b-ba92dbf0ce0d@suse.com>
Date: Mon, 4 May 2026 16:34:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/17] libacpi: Split dsdt.asl file and extract i440
 specific parts
To: Thierry Escande <thierry.escande@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <20260313163455.790692-2-thierry.escande@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260313163455.790692-2-thierry.escande@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1777905272-53F7BD75-1D312A2C/0/0
X-purgate-type: clean
X-purgate-size: 509

On 13.03.2026 17:35, Thierry Escande wrote:
> --- a/tools/firmware/hvmloader/Makefile
> +++ b/tools/firmware/hvmloader/Makefile
> @@ -78,7 +78,7 @@ rombios.o: roms.inc
>  smbios.o: CFLAGS += -D__SMBIOS_DATE__="\"$(SMBIOS_REL_DATE)\""
>  
>  ACPI_PATH = ../../libacpi
> -DSDT_FILES += dsdt_anycpu_qemu_xen.c
> +DSDT_FILES += dsdt_i440_anycpu_qemu_xen.c

Instead of merely adding the i440 infix, could we perhaps replace the anycpu
one (which doesn't serve any purpose here anymore, afaics)?

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 14:35:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 14:35:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299984.1574538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuOg-0005ah-Ud; Mon, 04 May 2026 14:35:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299984.1574538; Mon, 04 May 2026 14:35:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuOg-0005aa-S3; Mon, 04 May 2026 14:35:46 +0000
Received: by outflank-mailman (input) for mailman id 1299984;
 Mon, 04 May 2026 14:35:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJuOf-0005aQ-8J
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:35:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJuOe-002kNW-KN
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 16:35:44 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8aeb0-2eae-0a2a0a5409dd-0a2a450aa908-26
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:35:44 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8aec0-56b3-0a2a450a0019-d1558036d05b-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:35:44 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-488e1a8ac40so40224405e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:35:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8feec2b6sm80259785e9.25.2026.05.04.07.35.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 07:35:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777905344; x=1778510144; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Qntpk/nMtvFjJuNiDNbWyBm0EJqsC4q2Qt+eXA1yoP4=;
        b=ANGvkv5fysRnmys8g05CU1owp/3um67GmFKXiRIM54ocbozRmCkR2tgoEWHnhteVHZ
         Ge802ae4rSlSf3RPma40b9xdAytdaVElD5kaIbIvSl0E4vGuA2TY39HRWfAjAy+rIvmz
         Xo+JBdjZ1JpmN/5TujZ3hWtsc+9M35OM4SpaoLv06qRoJ5aAxcyOpcBfF79cFo7hG9JX
         JF4THKkpwHbA9eLSTIX6WussURj3xQKPrPLR8TCwEp0gQ0xuicKe/2Ueuc5Lb8uPA66L
         ksP0bvSqJrBJCIXHZW5y13G6lJ1oKa7R6KEaxcstM3U6dpoaOwoQpARJaQFk/SwD293J
         rRfA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777905344; x=1778510144;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Qntpk/nMtvFjJuNiDNbWyBm0EJqsC4q2Qt+eXA1yoP4=;
        b=QXvyccbh6id2XmAxkue9ZpqL9Ke46SOojtJqtvCoIu6ARg97KqKpVNXTZxfyImK0Jh
         TQ4sr7Mjs7ocd9m2w8VC50YKIJIAZS8aTbVwMOQiXA0MRHUHzbpdQ1B8vx37OhSCtaYi
         O0ktcA7CjBtBs35t4G7RwUqXcaLXL+RZIPZuVmFgQMNm5rHEX2Yh5RJPplGcChWeEFAz
         2BdyEzJU9m6Lrgnl8Sl6rxCPG/nLkhv2Mi8KuWjapHuZSOCrZPZHRG9hZx7lIEWN0p9a
         xXUO1ATCfQPcnSnywjwlb9SJFuoRvA42xyWpDyXh494AtQJBh2PDaMBQhS1SHE7qYR/J
         rUfA==
X-Forwarded-Encrypted: i=1; AFNElJ+9uzMoBOOxLMzoGIuLQqGLWUbxTHPO0LUvheiFgCK10op74yWcYPvCPebtBBu2LsnSEcz4lovqRHs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzHpPNp7LrCabdTt5n43IE6/hRE3W0wq3SJtTOAOsdJMI1nvJbf
	LNg84r/JaKBWw02vhEM9QJEzy10VGmqZQVg1LAhC9gHmqFd8LIS+rvB3nZQt3lfHJQ==
X-Gm-Gg: AeBDieuViwhhCcK5L4rSHLe1PcAutQk2LGG9OwNZeFnrfkZ48Q9asXNT+X7xQWbHUVS
	Ztk4QRj7mOa99K1mzsP8IbnNUJahDw1Uf/HJfpgZGnV+VQYAzwBGJmeLAVdNCqWENoXFx3VWMHS
	R5IAvzeosQhTh0iH+WEcPVKj1zaFzLB8XNBYLPcEIQDtSQfuMV1s804HF3tosOY8rMWsrHTqbbU
	j+H1b6ipmxlkZoNDT81KaDRc+wSLgcH0EudH+1tHGo6K9Oio0pKANDbSkFLCSNp6VjgWOjdgf8Q
	t5ixnzidIB/5FQGaM8dX8ww2ELEWcfPBh+ahvIy60okQe10uOxo8pLRMLj8aDGNNZcd+OQWI1fk
	OKmjEk7ca0AV/tmi6HeoucN/bdnLyqYjIVo9dOyqF5xNFqBpWoCdUvYx5Rm1NSqqn0n7qiuXR5Z
	hgPv/ORudKVqEBQ4S9dHbhGKuTdYTB6AN7mwOJLVVxKN90reG50VYa0JT3mw4fHvdON2txnNPQ9
	ByYKlC/1jnwzinHehQyKnN3Fw==
X-Received: by 2002:a05:600c:c0c5:b0:485:30d4:6b9e with SMTP id 5b1f17b1804b1-48a98662e71mr133672405e9.21.1777905344106;
        Mon, 04 May 2026 07:35:44 -0700 (PDT)
Message-ID: <904df363-2f46-40fa-be05-7c1998b98c17@suse.com>
Date: Mon, 4 May 2026 16:35:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/17] libacpi: Split dsdt.asl file and extract i440
 specific parts
From: Jan Beulich <jbeulich@suse.com>
To: Thierry Escande <thierry.escande@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <20260313163455.790692-2-thierry.escande@vates.tech>
 <58d73d7e-49e8-4bcb-ad6b-ba92dbf0ce0d@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <58d73d7e-49e8-4bcb-ad6b-ba92dbf0ce0d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1777905344-CF77D8B7-5443444C/0/0
X-purgate-type: clean
X-purgate-size: 674

On 04.05.2026 16:34, Jan Beulich wrote:
> On 13.03.2026 17:35, Thierry Escande wrote:
>> --- a/tools/firmware/hvmloader/Makefile
>> +++ b/tools/firmware/hvmloader/Makefile
>> @@ -78,7 +78,7 @@ rombios.o: roms.inc
>>  smbios.o: CFLAGS += -D__SMBIOS_DATE__="\"$(SMBIOS_REL_DATE)\""
>>  
>>  ACPI_PATH = ../../libacpi
>> -DSDT_FILES += dsdt_anycpu_qemu_xen.c
>> +DSDT_FILES += dsdt_i440_anycpu_qemu_xen.c
> 
> Instead of merely adding the i440 infix, could we perhaps replace the anycpu
> one (which doesn't serve any purpose here anymore, afaics)?

Thinking about it, qemu and xen perhaps fall into the same category, and could
perhaps also be dropped.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 14:39:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 14:39:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299991.1574549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuS1-0006OA-DU; Mon, 04 May 2026 14:39:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299991.1574549; Mon, 04 May 2026 14:39:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuS1-0006O3-9X; Mon, 04 May 2026 14:39:13 +0000
Received: by outflank-mailman (input) for mailman id 1299991;
 Mon, 04 May 2026 14:39:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJuS0-0006Nx-5l
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:39:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJuRz-009Nj6-9t
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 16:39:11 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8af84-bab6-0a2a0a5309dd-0a2a4504ea02-46
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:39:11 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8af8e-1dec-0a2a45040019-d1558029ed20-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:39:11 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-4891e86fabeso52215195e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:39:11 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8ebb3dc1sm292515695e9.14.2026.05.04.07.39.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 07:39:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777905550; x=1778510350; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZXjX1Lhb0v6AYepyVL7QRxIlkB7gqW18XlxJifqMb1k=;
        b=bE9C8BOWWNx6hUluWhH7edPNqlI1SnKV8pQyXMeBTthJgFf3fYeFSqIMWR/k80RNPJ
         e2yEpWtiTV3e/zgnU+vYm/KMKgZEXvNCqwlk7LZKOE9DCGZjtoIASyCeiO/7o/mbqsCU
         jRSYlmiaPLRt7HCWsisRbTLOucQiwq6arS8PxpDhJGnLfmeyxz+xcP+P8/aZCFOHv9ta
         b2Jg90PAVjwbrDt5NX3pE7Q7CcODOKKuH2O75Tn4XhjTl5LC8RRt354uoypH93UlW89N
         WlGdgR85ZtaQKXeLY4HPEz2WGPSj+SKnMxDPYOLys4esbe6UaLprR4CNg1lmSwUFrzq2
         d0eQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777905550; x=1778510350;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZXjX1Lhb0v6AYepyVL7QRxIlkB7gqW18XlxJifqMb1k=;
        b=MqW/yknekVIKanEy33Rx8vG/3z/zsyngM1qmIiPj4CEnCOLd4I+Badgr1LuOExGjAV
         rH8mVJLtAmqLuDlOJ7purBS/KkjR8K1uP/NbCPk1sQ/dovI6B5D4x9MLF5ja5bx6vvlK
         KFyEHZXcTelNNZXkAynFoO9GB/r9NYNFPXyH2ri7qTx0FMsJIK/cuuFqx06ABKroHjXR
         MeMmNyy3+ITdlAjUm1cjMEAmfvHOO/5+zI+e3Z5XW3ldLtFI4Y1SrHmKFvI+e9HaAYtj
         symhcAZwbBC5NqIiH5Uwh473iecfePrwYdWTuoWwpnVEAdF9oEwL5QHA08PjMunA2fip
         ajZw==
X-Forwarded-Encrypted: i=1; AFNElJ/PmvXZuKF1EdcTxIKTW1/j2smUpXHxSX287YcyH1TCJcPAMuEJhMOG2D/J1XR7LZBCG8lZA/qxGyE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzd10zYbuXe7eYiQ8+BEfLZx/wrJz2bP5EyxugNs1s7kHK5Z63X
	TTk/ttVcsfAc1aTOYoU39dRQuXkZyckbSbVvPPq7g2HL5JHMhlEb57/eKougre20WA==
X-Gm-Gg: AeBDievvun6BtQw7tuaYkeikb4Nj6P7DxmNAZKoPxEaGsyRQn4wPIYilPEk+9ZjRsV5
	QYWcsx8CbA50Oeeyf0VB1NrKN+/M03AX4Qw5hXbQVYvIMkdSRMXxYfBdvbAqwJiK1XymiOBpVAn
	JGn6mYlQcjqUshDXbAE40SwqXjN2ma9Shc1IVXAitBGxV1tCuYufznuoNuXkTk+GrTGNta7vcJ9
	sssEoyCYPK3d+2jygfFSgq11SxCQ4HQpWzWqJZlbovaWFKvGl9rnGFDZk9ytmhycqPs9ap650vj
	dDNrRPU2cyhRNbZconcfFdtvaJfmCQXO1zDNGUvTa/wFX5tRGn0fI0K4zpWXQQMCfLfIDHiugHi
	dpUB+IHR0+L49hanDlQmVfUqSKKnmLLpITi2LSEa5P14smcksrkTStxxAAwLFtIqD6UHwYrBP2w
	iiBLzH/P14ZKsxwBBxAkWELFpAQkYlnEnkdHBUHO7OEgVhPC1JfpHOJJkfcyYeeQA34S/PDwP6o
	OUfmYSXU+8LMKW+uR/fEwpcQQ==
X-Received: by 2002:a05:600c:4e8e:b0:489:6c22:e081 with SMTP id 5b1f17b1804b1-48a980fc4ffmr167744885e9.0.1777905550567;
        Mon, 04 May 2026 07:39:10 -0700 (PDT)
Message-ID: <a40af68f-9aec-4dd3-ba23-dedbc6467648@suse.com>
Date: Mon, 4 May 2026 16:39:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/17] libacpi: new DSDT ACPI table for Q35
To: Thierry Escande <thierry.escande@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Alexey Gerasimenko <x1917x@gmail.com>, xen-devel@lists.xenproject.org
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <20260313163455.790692-3-thierry.escande@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260313163455.790692-3-thierry.escande@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1777905551-297793FF-E87A1700/0/0
X-purgate-type: clean
X-purgate-size: 603

On 13.03.2026 17:35, Thierry Escande wrote:
> --- a/tools/libacpi/Makefile
> +++ b/tools/libacpi/Makefile
> @@ -11,7 +11,7 @@ endif
>  
>  MK_DSDT = $(ACPI_BUILD_DIR)/mk_dsdt
>  
> -C_SRC-$(CONFIG_X86) = dsdt_anycpu.c dsdt_15cpu.c dsdt_i440_anycpu_qemu_xen.c dsdt_pvh.c
> +C_SRC-$(CONFIG_X86) = dsdt_anycpu.c dsdt_15cpu.c dsdt_i440_anycpu_qemu_xen.c dsdt_q35_anycpu_qemu_xen.c dsdt_pvh.c

This line's now definitely getting too long. Maybe with the suggested name
change (see patch 1, to be extended to here) it would remain tolerable as
a single line. Otherwise it wants splitting.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 14:43:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 14:43:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1299999.1574556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuW7-0007uI-SB; Mon, 04 May 2026 14:43:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1299999.1574556; Mon, 04 May 2026 14:43:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuW7-0007uB-PM; Mon, 04 May 2026 14:43:27 +0000
Received: by outflank-mailman (input) for mailman id 1299999;
 Mon, 04 May 2026 14:43:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJuW6-0007u5-Gn
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:43:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJuW5-002lvK-On
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 16:43:25 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8b079-bab6-0a2a0a5309dd-0a2a45038074-34
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:43:25 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8b08d-672d-0a2a45030019-d1558029ac28-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:43:25 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-488a14c31eeso30811585e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:43:25 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8eba865fsm251681015e9.10.2026.05.04.07.43.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 07:43:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777905805; x=1778510605; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=C7w+PpYVk+AtGjOQatFfu+bU13YOIpXKMwIU4apBv50=;
        b=IM+7DC7ZoIHyYMZOddvvCKkCYs8doYLCG0zybe8+p3Y4O9HW7ZZlh6RfLNBpnpn7sz
         b3Kn3CrJ87hlVv0tU6j22YcTuE2l/Con+dY4KpgMrHzirwUiVYaoRZNB8EZ6IMAhD1mM
         4ls2qeBD5E2YPusAeEla7dtIO6CBD7AZ6IbTGiLMU56K7y4wKJYsv/F0lT5ttOEo3UYo
         SAF6kWA9UuE0dSq9qs/L3KiJX1PfnBG0lfVbFYIOm8e7aYwPVGQrq2Bnm2+f+8LZ9/TS
         TQZMmZCMxRJ28b+fhtx2/++mr2Gw23VL7PORV/cILMjgoJwYC85ICyay7vKAyOZdJJxk
         sEwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777905805; x=1778510605;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=C7w+PpYVk+AtGjOQatFfu+bU13YOIpXKMwIU4apBv50=;
        b=iCmZjOCVsU5uwOU7nxYanK526IWyrp0J60i20brHXRQaY/hBasMqn5JV0xZ3g6B6gP
         GUPLHLn3gvug69ZBc9Ornkrr2MZNYpHexL8yHZpT7DnkAuR00CgHEnLG9gg4i5dF5lVF
         QUF9AYj/jrX0UeYV30loz0jNk6ea+wBBF3790b5iBd1Q54sF6QICcS37MuNaklGxRm12
         iBuQMD79m2TBU3mL15RIB+MNR4yOfKPX4RhbjwgfN3SSjf/uknFP3N4tcpbEnO5yFYMr
         /WJn3bqsM0GX3mskQ5vx+Hn8a6LePJu34ZbaHad+Z0OhiEosj8yalXa2ZZPCynB/PP3y
         vR0A==
X-Forwarded-Encrypted: i=1; AFNElJ9k7xmUz/vkjn4a7REbX1jfujUQjctAEWnScnCv/ibUP/hCe9v1bfBiJujYSDJJxk/KNkWT2tj/kn8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwE7hvxZHw6gfd4uavS6qWEmZ76gcHhFq2tRWJOzOWSalhaRo0V
	JxcGYa+OGr3fOpJTh+9P+IcWKh5AMVBWoqFYcNJ1PvEbDF7N/OOe1uCgFYq+JyH3og==
X-Gm-Gg: AeBDiev66opgHA3gg2mLX/9gGM/TKiwDQQhHAeJ7r1nWTn1vXmklqiV4PKgogdiPAY0
	IxZW9IZRyxgfpRn5PWxpnbY9P1j6FuOLqwZFHjRUxYhJWS+F0rWoP8xzPQJh6DdJATyh+RprtMT
	Gio7gsx9BUImqqSD36hDAShf5Wbdl6+a5ZKA4xakObnN4fSrCjVcWf7O2ZPEQAUj64FetZ0hbwI
	bysuwER20cwkNMElNUjw03bakCFm2pwOl7PJQRSmrZZY1yXxvxba8hcZDpeC1dwAH7LeTzi9Z0J
	wSppglnrxAkY4+LcAzlrmDYdgxSEsL7ndMbufSMA/gAE/eVDwwCLU6zwW7PcmLI7u77TRrgtIKy
	8tr3ZNaYdeK8aw6Nby70bRlhLUi4tdbgUsA8QmeLBHnxiTQxmCPVTpLIpFSoFaVFj8sPvU+5Vv3
	5tf0HDt3z63slnpvXImc8braU8xdg9LsTicz9JMB1wXgjHnd8cj+JNTSvdHSzqVIrvnebmrtVnp
	s6ox57FpFIJqIa9B9uHBQpqSw==
X-Received: by 2002:a05:600c:4450:b0:489:fec9:a17e with SMTP id 5b1f17b1804b1-48a98874d1emr158495175e9.12.1777905804959;
        Mon, 04 May 2026 07:43:24 -0700 (PDT)
Message-ID: <9f67c3ee-4450-4d4b-b03c-66ac1aa63014@suse.com>
Date: Mon, 4 May 2026 16:43:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/17] hvmloader: add function to set the emulated machine
 type (i440/Q35)
To: Thierry Escande <thierry.escande@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Alexey Gerasimenko <x1917x@gmail.com>, xen-devel@lists.xenproject.org
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <20260313163455.790692-4-thierry.escande@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260313163455.790692-4-thierry.escande@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1777905805-29370938-4D88B0C0/0/0
X-purgate-type: clean
X-purgate-size: 1348

On 13.03.2026 17:35, Thierry Escande wrote:
> @@ -648,6 +649,47 @@ void __bug(const char *file, int line)
>      crash();
>  }
>  
> +machine_type_t machine_type;
> +
> +void init_pc_machine_type(void)
> +{
> +    uint16_t vendor_id;
> +    uint16_t device_id;
> +
> +    if ( machine_type != MACHINE_TYPE_UNDEFINED )
> +        return;
> +
> +    vendor_id = pci_readw(0, PCI_VENDOR_ID);
> +    device_id = pci_readw(0, PCI_DEVICE_ID);
> +
> +    /* only Intel platforms are emulated currently */

Nit: Comment style.

> +    if ( vendor_id != PCI_VENDOR_ID_INTEL )
> +        goto error;
> +
> +    switch ( device_id )
> +    {
> +    case PCI_DEVICE_ID_INTEL_82441:
> +        machine_type = MACHINE_TYPE_I440;
> +        printf("Detected i440 chipset\n");
> +        break;
> +
> +    case PCI_DEVICE_ID_INTEL_Q35_MCH:
> +        machine_type = MACHINE_TYPE_Q35;
> +        printf("Detected Q35 chipset\n");
> +        break;
> +
> +    default:
> +        goto error;
> +    }
> +
> +    return;
> +
> +error:

Nit: Labels indented by at least one blank please.

> +    printf("Unknown emulated chipset encountered, VID=%04Xh, DID=%04Xh\n",
> +           vendor_id, device_id);
> +    BUG();

Can't this be moved up into the default case, thus avoiding "goto" and label
altogether?

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 14:46:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 14:46:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300009.1574565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuYr-0008Um-DO; Mon, 04 May 2026 14:46:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300009.1574565; Mon, 04 May 2026 14:46:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuYr-0008Uf-AH; Mon, 04 May 2026 14:46:17 +0000
Received: by outflank-mailman (input) for mailman id 1300009;
 Mon, 04 May 2026 14:46:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wJuYq-0008UZ-8j
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:46:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJuYp-00DGL1-Aa
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 16:46:15 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f8b12e-5cb7-0a2a0a5109dd-0a2a4506afba-14
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:46:14 +0200
Received: from [40.93.194.19]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f8b135-7371-0a2a45060019-285dc213695f-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:46:14 +0200
Received: from BN9PR03CA0724.namprd03.prod.outlook.com (2603:10b6:408:110::9)
 by DS0PR12MB6437.namprd12.prod.outlook.com (2603:10b6:8:cb::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Mon, 4 May
 2026 14:46:09 +0000
Received: from BN1PEPF0000468D.namprd05.prod.outlook.com
 (2603:10b6:408:110:cafe::fd) by BN9PR03CA0724.outlook.office365.com
 (2603:10b6:408:110::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.25 via Frontend Transport; Mon,
 4 May 2026 14:46:09 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN1PEPF0000468D.mail.protection.outlook.com (10.167.243.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Mon, 4 May 2026 14:46:08 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Mon, 4 May
 2026 09:46:08 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 4 May
 2026 09:46:08 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 4 May 2026 09:46:07 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rBhcClR3tBuLLoUIFt7oy/K5FGNSppWFTMQegJZmL0mtwad23n8knUPchYzs/BFlp3YAyA/zL0lKfuG+sIk/LfJnWsfetZRE0HHOpj0bmYLTttTvLWyH2CZlGK4ajztQNdvrH0MTMmEVT/aqYW0Y0uLCsMmIfaG/ibq/eXAb2e1NcGSxWmtB31qz7Tb9A5iY4NtUjqxfVnwsRXi+xsknzx7FbzckUsMXQZfARexQvGXe4iA4is+N5ML5BKHkXEw0ElQsjQ69890svJMcxgtFl/cFRj0avy2/E/5L6MpUpfQb6wEAK5ko7OHiJJXKr0RUsR1sQpUT3be+nzq/qcaaeQ==
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=qeu0C7yFDtU2qsVJ6OUoEtzQRQj/QaIlxDJII66T0r4=;
 b=ebgSUc+xi6E1uBlGS7seUTgK4xUfA12AX2XI5kROF+kes5vMMZAEpANkMmZvCRrHGMQRjlA+E31BnRseCQo4+hU0fzgbaLzd7Fb6nsWxT4Dd8SVax3cH17mMzOU1+Qe9NchlNVxbElcVWE94MkFK4A+regiFWWQQ5Xo3Uf8UNJTV3VFolOAmtX85Fe6uqSChX4cBnaCRG7KMgEvQwzHBEj1N3+oCTSVsHvc8YN6F4zEEg0vrfxQgg8MTb4h4SdSFGFsrWLBQIMYQnXA9aGk6hI+YTzou8wxprPbPrq/KW2zhUbBZ+kAo66cOEoXJpBdhr+vRlXns7bFw3FhMizWKTQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qeu0C7yFDtU2qsVJ6OUoEtzQRQj/QaIlxDJII66T0r4=;
 b=LOHjMMQsfiVlfxWQK12EXIYld1UD6jKb6eu/TC+QTcNjJu2bTDl0kwGgT0G9CobR07JX8PY3oQUmHzbxcQ/VCjq+v6WRBjZmHXT4DWytZJLV17t6V6wMp8HSPuhLk1fghwvZ9jz27xZvaB0JhkYTqR7HUasbwf/xoeCT36LEa1Q=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <934afe1f-a55f-4335-ad2e-98346ea8b19a@amd.com>
Date: Mon, 4 May 2026 16:46:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] xen/arm: skip holes in physical address space when
 setting up frametable
To: Luca Fancellu <Luca.Fancellu@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	"Bertrand Marquis" <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-3-michal.orzel@amd.com>
 <42E57541-C0A9-4E19-A8F1-825E83A856DB@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <42E57541-C0A9-4E19-A8F1-825E83A856DB@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF0000468D:EE_|DS0PR12MB6437:EE_
X-MS-Office365-Filtering-Correlation-Id: 9a4f9662-684e-4f04-d367-08dea9ebe0f6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700016|376014|82310400026|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	8RzDGTR7lxs4ufwP0ci8FRHKWNv9tOJGoNFcRq7NnD4JjDg4KIS+2+HTMLSsvHNjomqwpjakh6kLhlTYyLNWjHUi38hfgU9/HGo3pgZ2aGmKwTrk0IpQt4KW+EuvP5xtpaDFckl357VwG7XIDUEXvH65gh9pn/o8m5VGLaTe9gTdkj9aKQLYcKUeyyysm+W+Mxle6/PqejHRwIIMG2Ksek+zMVH6mcjD1EVU44c9XlOuOfdHPe2QgP/MQxruzsUqaTPmaHTLhwfpj2IkxD4DVrbvXYQgBwqTQIU9yhb3a9yJqLX4jGZY6NM9Vfd1FB3Ki4CfOZ4NDpMfz7URvDg5HkFba5Do+sKhJ6p7rn92cGOA4L++lPcLmFxwk/IblDIiqegUO9atMgDC/f0Juz42qMy/ziLy0aCWEU4puMa6wKVnzAxz7k7riKRYFvQ11JIZRycP6ewW1jF9sYB2raOeHjH/9UowuGbuD/Bltl9kVciQxtrMB6HwBkb+seQB/UtgAJp5HkU8zTcQqFvaNF6AETW7eCZqymL21uNNI/T9DOukgOIkICQiQW8qvh9rddldFw8L80xJv1qq/fFXFFXEZBZGgqpVuZDbz5AFLI8+E5YQ+cwZva45xI5gcC7jivyQgD/luOAMgoQn7HlV6wGaN0oc+JFKPef3iLiYdNj+QLcXC3hPQAi4eMl078EJ9riUdQyFToQjj2keGo/QHNaUM9Z662ajv+8MGbk4JEPgg1c=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(376014)(82310400026)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	iG+SeXs4jwddpmtMADlwJgEVHHv6YdgtE2PfDpsUlaEowPlaqMDibq7/ju6RNqN/W1DO86oW3UirSogBl3dik0NyuObOeexg1TrxjuZOjJhDHhobp3S5VZT0udl+bQD7lpfr6e64M4dF/XGJeT1pqdeoxNdF0VuJ4DengxlQCL5bVWwMyHm+C0DKO3CCmtOoBEgplLavXYvM8NUJdWqwXASeG07xbTOPLNKUTkjtnxXJKW0B7SeWoyCAbccKNDmUIO3pr3afXsdqXmF6r4zoNnDkcwpEOsWgnqf9N0f4iRIeY+LFW9HO5dFPAYrk9+bjFTajGQHM13oY6+h3DTRwDUYeYGxA5N1X/fJA4knwf0XRYcAlSMBD3pSZmTHe7Xp/+wzdlG/Lb86EoASu4lH8K7BMNJPzXGMwNSu9jI5+AN3aH3atJBSi8g1P8HEdE2rA
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2026 14:46:08.9427
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9a4f9662-684e-4f04-d367-08dea9ebe0f6
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF0000468D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6437
X-purgate-ID: tlsNG-16d1c6/1777905974-CE777D75-99A1D41D/0/0
X-purgate-type: clean
X-purgate-size: 3004



On 01-May-26 17:00, Luca Fancellu wrote:
> Hi Michal,
> 
>> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
>> index faef0efb327c..7297cca01551 100644
>> --- a/xen/arch/arm/mm.c
>> +++ b/xen/arch/arm/mm.c
>> @@ -63,7 +63,7 @@ void __init setup_mm(void)
>>
>>     setup_mm_helper();
>>
>> -    setup_frametable_mappings(ram_start, ram_end);
>> +    init_frametable(ram_start);
> 
> I think that now ram_end and bank_end can be removed
Right, will do.

> 
>>
>>     init_staticmem_pages();
>>     init_sharedmem_pages();
>> diff --git a/xen/arch/arm/mmu/mm.c b/xen/arch/arm/mmu/mm.c
>> index 6604f3bf4e6a..dfc888c8ee0e 100644
>> --- a/xen/arch/arm/mmu/mm.c
>> +++ b/xen/arch/arm/mmu/mm.c
>> @@ -6,18 +6,45 @@
>> #include <xen/mm.h>
>> #include <xen/mm-frame.h>
>> #include <xen/pdx.h>
>> +#include <xen/sizes.h>
>> #include <xen/string.h>
>>
>> -/* Map a frame table to cover physical addresses ps through pe */
>> -void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
>> +static void __init init_frametable_chunk(unsigned long pdx_s,
>> +                                         unsigned long pdx_e)
>> {
>> -    unsigned long nr_pdxs = mfn_to_pdx(mfn_add(maddr_to_mfn(pe), -1)) -
>> -                            mfn_to_pdx(maddr_to_mfn(ps)) + 1;
>> -    unsigned long frametable_size = nr_pdxs * sizeof(struct page_info);
>> -    mfn_t base_mfn;
>> -    const unsigned long mapping_size = frametable_size < MB(32) ? MB(2)
>> -                                                                : MB(32);
>> +    unsigned long nr_pdxs = pdx_e - pdx_s;
>> +    unsigned long chunk_size = nr_pdxs * sizeof(struct page_info);
>> +    unsigned long virt;
>>     int rc;
>> +    mfn_t base_mfn;
>> +
>> +    /*
>> +     * In-loop chunks span whole PDX groups, which are always page-size
>> +     * aligned. The last chunk ending at max_pdx may not be, so round up.
>> +     */
>> +    chunk_size = ROUNDUP(chunk_size, PAGE_SIZE);
>> +
>> +    /*
>> +     * Align the allocation to the contiguous mapping size so that
>> +     * map_pages_to_xen() can use the contiguous bit.
>> +     */
>> +    base_mfn = alloc_boot_pages(chunk_size >> PAGE_SHIFT,
>> +                                MB(32) >> PAGE_SHIFT);
> 
> This fixed 32Mb alignment feels a bit more than we need, If for example the
> chunk is less than 32Mb? If we had some variable alignment for chunks less
> than 32MB we would maybe help alloc_boot_pages job, in the end if the chunk
> is less than 32Mb it won’t get the contiguous bit anyway.
Good point. On Arm64 this affects any chunk spanning fewer than 3 valid PDX
groups (~14MB per group). I'll use 32MB if chunk size >= 32MB, 2MB otherwise.

> 
> But I’m fine also if you leave it as it is.
> 
> With the above fixed:
> 
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
I can take this one but ...

> Tested-by: Luca Fancellu <luca.fancellu@arm.com>
not this one given the change.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 04 14:49:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 14:49:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300015.1574574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJubZ-0000qD-Qq; Mon, 04 May 2026 14:49:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300015.1574574; Mon, 04 May 2026 14:49:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJubZ-0000q6-O0; Mon, 04 May 2026 14:49:05 +0000
Received: by outflank-mailman (input) for mailman id 1300015;
 Mon, 04 May 2026 14:49:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wJubY-0000q0-Ik
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:49:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJubX-006OqB-NR
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 16:49:03 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69f8b1de-2eae-0a2a0a5409dd-0a2a450bba4e-6
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:49:03 +0200
Received: from [209.85.208.47] (helo=mail-ed1-f47.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69f8b1de-212f-0a2a450b0019-d155d02fb939-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:49:02 +0200
Received: by mail-ed1-f47.google.com with SMTP id
 4fb4d7f45d1cf-67c2d57a5ceso2730628a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:49:02 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-67b88473402sm3364805a12.29.2026.05.04.07.49.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 07:49:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777906142; x=1778510942; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=IG2GDhZ+ukpgyCQshd4A7iw8w+BVwo0Y+oMP0IJ7qS8=;
        b=cDyyNRqrf1ydLDyd6msXd9mrmEI0s0tWzNDWjStKDrqdXyb4RJ5GXBDueihIR3V2V4
         Vm3BW4GGo9hQQz7TD1L5KSPBBgo/2HrfW7znnmbaIKLTtH6SzqN79zQLdkLC39tHjoyy
         0EzDJYZyXR/YmeUaI/movn+AJq9/kr+6f2d/SQNtz502OFn3mWxCig4NXb5HyAtDXSco
         V5gTUa40IyOn3/ceLbo4iYgadLKEEOvdecZFdhqZALEKDq9VnwPg+mbxhw5VL1iMgPAW
         O2wb3DmdrbB4Qr1N6a0k2O0H6NVTlK8aNdZkHM1qMZ71A5R3tdeVawygy5lEjccaxAJb
         cjYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777906142; x=1778510942;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=IG2GDhZ+ukpgyCQshd4A7iw8w+BVwo0Y+oMP0IJ7qS8=;
        b=eaxep92+so+X8CdsgtcwqHBBwsdQKRsi+pwYx7i0DMurx92HoOfFHxXu8ym/zL7zBw
         blD/pwgDJJDMvrPPHSoM5UyUzk3DAZ04PZp7PIhC0+BQfVEDjzAXXo853hll/EuKHhCN
         fZCzOTaAqWWHpMoWSlMiQKM9zEf6+Ww2oNUIdGywvojzmmtLnQviiOqfuLJXqdOtCAXL
         3xS6o+qWYkSY3QTxGragIMyoHp+nMaojmPxmvnWgPoR/Dv1p7wW+Sc9uHVndo1cILv/S
         EF0gbmc+2pDcEBQcIAae6LNGBqkxmIk4F2vSOqrGhcJ/aEZ0uMl1w+FzpKjPdtSMFyNJ
         jCVQ==
X-Forwarded-Encrypted: i=1; AFNElJ9QeTtvAJZ9gziu7ipk8zUi3AeAtURVewR/QMns/GqfO/PuXb/PjUtsQAgACwAIWkphPMz3fAcHxzs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzEJ1DtguSvsCd2qHyIGzqk6oGNJqcd+7TYd0/i8KKv58OLET5n
	1DA9Rn8YeFVRW/WisupZWATeogtAyqgtyZrIId1dW+KVbGVZ/Su2w4KjeRj/6HRUQuc=
X-Gm-Gg: AeBDieu07J2yjnxiyYOilyVA2fdYDpg61plm3pW6PXaopzUbZNV+ADf0PgGBSGV4N5X
	hAZGL5AxWnbL/eKQfZzVJ/+Lo18d3bsw0ztNVzHH+zBIK8N3B0V3MBdNeKQOLSXRf0dgeHk7Z/R
	uClexC40AtKwbyIb6a/IvPCVVgdWMcq4GT6e8jiamTrNsfFcSxRg2ayDLFdY/1nvfo5fxX2RSg4
	gUHxb0QehHdlIoSbwGKkrFMmllG4wz7WN0Begxx9Rke+BQuKo9u1tlQC7eKhSl0M2opJe9CCHp9
	SEd8BtaskgLCRYWWS/bLKgz9IaeXekJAAD8xAT8NVL47mg9Q9VURzfWTsXDPHq0IwRvurOvOuUi
	eBYhVw7CdVBZCzYMnD6fw4q1V3UhliJ1yXKahpv8oxiK5vWcjaO3QWiEgUq0fGwshASuu9wiXjE
	ePuuzUrDM5V7FvMrNvgCzHEuJ1pCyfJTQPzuxVdGJLlK9QtyxvUVrlNC7TGHfc6A+JLDmiCIzOz
	LcXmxjqcIGMdmmE1WHTKTCSegjflEB6DNN7mBNj8Rzm99ibKMYvynLjQRPF7Eji
X-Received: by 2002:a05:6402:528a:b0:67c:7718:4995 with SMTP id 4fb4d7f45d1cf-67c77184d8fmr2069478a12.7.1777906142089;
        Mon, 04 May 2026 07:49:02 -0700 (PDT)
Message-ID: <a6144bf8-fc32-4a68-a6b8-11d1d6af809e@suse.com>
Date: Mon, 4 May 2026 16:49:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/sched: rtds: assert replq is empty on timer
 (re-)init
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Meng Xu <mengxu@cis.upenn.edu>
References: <f751db3a02efa96d737235e58eb7bfb35e6218bb.1777901826.git.oleksii_moisieiev@epam.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <f751db3a02efa96d737235e58eb7bfb35e6218bb.1777901826.git.oleksii_moisieiev@epam.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------FmEsF2wU0CXSO9ss0NxYriMh"
X-purgate-ID: tlsNG-42698a/1777906142-0556BF3B-F7503A46/0/0
X-purgate-type: clean
X-purgate-size: 7401

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------FmEsF2wU0CXSO9ss0NxYriMh
Content-Type: multipart/mixed; boundary="------------Gij5Y8stQiKzBLx0HIJdSjyo";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Meng Xu <mengxu@cis.upenn.edu>
Message-ID: <a6144bf8-fc32-4a68-a6b8-11d1d6af809e@suse.com>
Subject: Re: [PATCH v3] xen/sched: rtds: assert replq is empty on timer
 (re-)init
References: <f751db3a02efa96d737235e58eb7bfb35e6218bb.1777901826.git.oleksii_moisieiev@epam.com>
In-Reply-To: <f751db3a02efa96d737235e58eb7bfb35e6218bb.1777901826.git.oleksii_moisieiev@epam.com>

--------------Gij5Y8stQiKzBLx0HIJdSjyo
Content-Type: multipart/mixed; boundary="------------gGU6UUSGt95jH4GuiFkA7RG1"

--------------gGU6UUSGt95jH4GuiFkA7RG1
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMDQuMDUuMjYgMTU6NDAsIE9sZWtzaWkgTW9pc2llaWV2IHdyb3RlOg0KPiBJbiBSVERT
LCByZW1vdmluZyB0aGUgbGFzdCBlbGlnaWJsZSBwQ1BVIGtpbGxzIHJlcGxfdGltZXIuIFdo
ZW4gYSBwQ1BVDQo+IGlzIGxhdGVyIHJlLWFkZGVkLCBydF9zd2l0Y2hfc2NoZWQoKSByZWlu
aXRpYWxpemVzIHRoZSB0aW1lciBvYmplY3QuDQo+IA0KPiBjcHVwb29sX3VuYXNzaWduX2Nw
dV9zdGFydCgpIHJlZnVzZXMgdG8gcmVtb3ZlIHRoZSBsYXN0IHBDUFUgZnJvbSBhDQo+IHBv
cHVsYXRlZCBjcHVwb29sOiBpZiBhbnkgZG9tYWluIGlzIHN0aWxsIGFsaXZlIHdoaWxlIHRo
ZSBzeXN0ZW0gaXMNCj4gYWN0aXZlIGl0IHJldHVybnMgLUVCVVNZLCBvdGhlcndpc2UgYWxs
IGRvbWFpbnMgYXJlIGZpcnN0IG1vdmVkIHRvDQo+IGNwdXBvb2wwLiBDb25zZXF1ZW50bHks
IGJ5IHRoZSB0aW1lIHRoZSBraWxsZWQtdGltZXIgYnJhbmNoIHJ1bnMsIG5vDQo+IHVuaXRz
IHJlbWFpbiBpbiB0aGUgcG9vbCBhbmQgcmVwbHEgaXMgZ3VhcmFudGVlZCB0byBiZSBlbXB0
eS4NCj4gDQo+IERvY3VtZW50IHRoaXMgaW52YXJpYW50IGJ5IGFzc2VydGluZyBsaXN0X2Vt
cHR5KHJlcGxxKSByaWdodCBhZnRlcg0KPiBpbml0X3RpbWVyKCkuIFRoaXMgY2F0Y2hlcyBh
bnkgZnV0dXJlIHJlZ3Jlc3Npb24gaW4gY3B1cG9vbCBzZW1hbnRpY3MNCj4gdGhhdCB3b3Vs
ZCBsZWF2ZSBwZW5kaW5nIHJlcGxlbmlzaG1lbnQgZXZlbnRzIGJlaGluZCBhY3Jvc3MgYQ0K
PiBUSU1FUl9TVEFUVVNfa2lsbGVkIC0+IGluaXRfdGltZXIoKSB0cmFuc2l0aW9uLCB3aGVy
ZSB0aGUgdGltZXIgd291bGQNCj4gb3RoZXJ3aXNlIHN0YXkgZGlzYXJtZWQgdW50aWwgYW4g
dW5yZWxhdGVkIGV2ZW50IHJlcHJvZ3JhbW1lZCBpdC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6
IE9sZWtzaWkgTW9pc2llaWV2IDxvbGVrc2lpX21vaXNpZWlldkBlcGFtLmNvbT4NCg0KUmV2
aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCg0KDQpKdWVyZ2Vu
DQo=
--------------gGU6UUSGt95jH4GuiFkA7RG1
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------gGU6UUSGt95jH4GuiFkA7RG1--

--------------Gij5Y8stQiKzBLx0HIJdSjyo--

--------------FmEsF2wU0CXSO9ss0NxYriMh
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmn4sd0FAwAAAAAACgkQsN6d1ii/Ey/k
rwf8C0pT+EBLuLS8gUwM2Ih1kjdhAkeu7Wj5rwbZ6L+b+Jcfhzwd+OasuUhNQvUGKYCY68anVht/
b50DPeUBePwve40Q0m+Jftj4cu02nmkX8WbSRNTCEE6SQZ8U6JJjSDah7HpYNEgrJ5mcoLdBzUXv
/XJ48/XzJGKDu8x/3TZsOHGBvshGjAeF0CgEYe9JtyfCkPzYABR838k+fNVWztUzt8ytprlTGshp
hrTJP6thZJggG8ax0dyTLpfaSf95HFNFHnbkAC8WIXtMSA0Z8C2nm7cuGVy/9yMk3zA1oNd2kqRA
yTb+rkaC5ujUqrq216472UUT9m1B9glfsperS7ZqLQ==
=GOaw
-----END PGP SIGNATURE-----

--------------FmEsF2wU0CXSO9ss0NxYriMh--


From xen-devel-bounces@lists.xenproject.org Mon May 04 14:52:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 14:52:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300024.1574584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJueU-0002Kh-7a; Mon, 04 May 2026 14:52:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300024.1574584; Mon, 04 May 2026 14:52:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJueU-0002Ka-4s; Mon, 04 May 2026 14:52:06 +0000
Received: by outflank-mailman (input) for mailman id 1300024;
 Mon, 04 May 2026 14:52:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJueT-0002KU-4r
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:52:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJueS-00Aind-Dh
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 16:52:04 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8b287-bab6-0a2a0a5309dd-0a2a4505d8f2-24
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:52:04 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8b293-aaa8-0a2a45050019-d1558033c125-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:52:03 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-4838c15e3cbso33434635e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:52:03 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8fea68b4sm82333865e9.9.2026.05.04.07.52.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 07:52:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777906323; x=1778511123; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1m3jlV9rqWsjSfAK0KgGGIc/ay1iVJIguL20ysXzZac=;
        b=Fnf9hIY0GtEklS6hlAySWKESSACwieq0gz+Z7eo1BZMhVaQaYO3C9RmRWD261H1BMC
         M0Dy1Z11Nsp17utiLjG7Q7hNqtZffQXXLHnIAYv8agm4t0FOQ/7IT5uLFy52uFCFI9H7
         zJNuBkp7sNUkXXdDjXDBYQfZEXpIvKQG6537KdE5FCZsoPgrKjiM0pkUS/p5OCfTFiuV
         PXBJf5B2cKQZS5nXwtFq80i9fuqnIMbPVH6p7ikPkgcE3huACS5SeYVZPRkyrreTFMSZ
         hLz5i92rb195zaEDd/ybH2G0YhMtUzT2xYqSMxNegTjer3Xila2+Ung4Icj4eg7I8v1J
         2q2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777906323; x=1778511123;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1m3jlV9rqWsjSfAK0KgGGIc/ay1iVJIguL20ysXzZac=;
        b=RZljZZe1QjVkJnyI9wWHLq1wtXeBFRS5eqHI/iN6Cb0QIV5RrW9l/+Bf8tPbapuFNJ
         cT4VtUL+6doa7zfkxkxTm9DHaH6CLnaXJ2SHIteEsKDqzPiBsaLE8q0DQxmxH8qNikq5
         zpVwDH06owpTYHFIqktDWyRKI+EhAj69seVW6NROAJMPAeoe9icGT7LEpXXzGfVMDnCO
         LbRKzArsQggGl+9mq8H4P3yGed0nps41ds7t+nfqdnvid2S0UvbOQFFJ+zz+ZWAJWxLQ
         Zg9r1qU1kNTbW1/mk+Ru1j0yCj0u9PCw4svrIBxi+ZF0wnUm/nJ3VMiC+4eOHPFHtNr/
         Aw4Q==
X-Forwarded-Encrypted: i=1; AFNElJ+NuYVWut1zcPu44RoSxuMpCINBuKrKxNdAMfQTusJqnErHOjvhIXxaZ/lyOrvibmWW2xUuHbEux54=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyF3AZSXzicancqxDiN2JMxbbDM85x8Lfu5dyrk1SO13xWm3ivV
	YT5dEIgqPZvuaXVV/GO55TTErr09IVBfaM5Xg9/omuXNpTzIc2YrC7/BEE3YS+Y/xQ==
X-Gm-Gg: AeBDiesnIoxliXYUL9yCn6q9b0wfbCgPI80GMT8uecZgWv9cea/FrnR4BzLCuQMbyYi
	GcoEMhv6pGn/S1eZlZWvJAB94kXBRiq/0fIqO2as7JP/ehnpWdtrEFtCsVQWpDaGHsO586jtbZu
	psVd0BlGZCoBgFCglKs6Ia8DL/5YmOMHFdgmcvkqzA43RCc4Jg7wOyKbb0FBJQ8HaWmvchA1UUl
	frxFcxknfZlkiF8en3SGSt3BKWbZD1w4HpoT8kahS/QfKA2xTJZKQUYShykqvnTD31n3sUcNaBZ
	SD1s82g5AjE2vA37/9Ecm+LNx4+81y5XOyjz0EJgB7CzR6v9fe4lpTkG5muK841rOlmc1Ssf8et
	QvLP2feFYvNKId3JhjU60f047whvLaay2HepJ8zg6fA+7BOmyjLQryremCOP3STL5y4WFxFrHQF
	5nZEtjP4G/8Gs5v2RMi/mLgoHtWN5VFarK9AZ6wTfLDRVqT25UxmmXL6XEtR9uqee1cuj3gNWN+
	oRgPdj7EWtS2LIKvaXl327yXA==
X-Received: by 2002:a05:600c:6097:b0:489:1c2d:211e with SMTP id 5b1f17b1804b1-48a9852f571mr158496335e9.5.1777906322972;
        Mon, 04 May 2026 07:52:02 -0700 (PDT)
Message-ID: <99783d58-00b5-4f3e-9393-c713eb6f2606@suse.com>
Date: Mon, 4 May 2026 16:52:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/17] hvmloader: Move pci devices setup to a separate
 function
To: Thierry Escande <thierry.escande@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <20260313163455.790692-7-thierry.escande@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260313163455.790692-7-thierry.escande@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1777906323-E2B68443-B36544AE/0/0
X-purgate-type: clean
X-purgate-size: 451

On 13.03.2026 17:35, Thierry Escande wrote:
>  void pci_setup(void)
>  {
>      uint8_t is_64bar, using_64bar, bar64_relocate = 0;
>      uint32_t devfn, bar_reg, cmd, bar_data, bar_data_upper;
>      uint64_t base, bar_sz, bar_sz_upper, mmio_total = 0;
> -    uint32_t vga_devfn = 256;
> +    uint8_t vga_devfn = 0xff;

This change (and the related ones elsewhere) looks bogus to me: 0xff is
a valid devfn value, whereas 256 isn't.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 14:55:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 14:55:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300033.1574592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuhH-0002w2-Nz; Mon, 04 May 2026 14:54:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300033.1574592; Mon, 04 May 2026 14:54:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuhH-0002vv-KQ; Mon, 04 May 2026 14:54:59 +0000
Received: by outflank-mailman (input) for mailman id 1300033;
 Mon, 04 May 2026 14:54:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJuhF-0002vp-SJ
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 14:54:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJuhF-001nhN-3B
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 16:54:57 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8b33c-2eae-0a2a0a5409dd-0a2a45068c94-12
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:54:56 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8b340-7371-0a2a45060019-d1558035e037-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 16:54:56 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-488b0e1b870so67872985e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 07:54:56 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8fede418sm102714615e9.6.2026.05.04.07.54.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 07:54:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777906496; x=1778511296; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HYxFyw/SHcO8z5+lUDVlO7zXso1mT3OfOg+su8s6PHs=;
        b=UJSsDHRkdoMwNHqecxyYcx0E+he3G4G78umbwqToiZRno58flf8SBznZv1EwPfGIpH
         xLxT0pguRmPBsuba2FbstZPRO/W624zceiCn5Z6p2OWapVKFsOWQDXJooz5CD3UMI4+A
         GeMGz2eRQ3r3wb3wluc9XxaW4eSipTDp+rRZSBZc6nFWhCWKwsB75yj1NYxYR5JtzIbb
         grOBHS2Ph9WpStihKGsgtQ/VhoL0WlNVywaFgJn9VQIoEjS4rXGXo4Og0EZSl2Q1B1pH
         kSUT+ollCFXD9nwX3aVL65bkaeluAY5HSsrGo5P2aCTZLXKNVe4a+AoIwKIMQf37V4eL
         isCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777906496; x=1778511296;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HYxFyw/SHcO8z5+lUDVlO7zXso1mT3OfOg+su8s6PHs=;
        b=fmEwbdn4NpzJNEQagGjkEuSzW1A2NBWwWraUUM1aqs57h233Ozexygrw2ruFyPc3tA
         qSB44CDN5pCOhIJEsGpjtKzOL39WZ3wVkHuhHkfzdSIY0v0rWdLTt1qo9Izp8wBv+KDD
         nI+bPzHLcjN5Z/E56pr66hDF0bW/YlyRk2VcsTOuh582lH8mCcTHbnCUDw94RW3f1DhL
         8h3zVo7gJ4VWLET31Wyyc2M2Iz7Sr2QBGlGEJhnMgi7gNpNCpe2ZA2YDsmdxgMHUMxP9
         6aIxFkOsvEKGjg14P0f9CdXM1VVbbJujUg5D9wkY1pCmXQK3EjziQ7FJn1EpPm70bVNs
         L4qA==
X-Forwarded-Encrypted: i=1; AFNElJ9cC9Kt/AvGoaFZMtWrBoW/3Dzs/fNbzgZFYxHavbbpZShu1rDFXV022oOIyanZ5ZYvv+e6itpayqw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwA9FL6LaOYbZ8jabJXu7JqMOnblxMKFbEgV4tl+FO4SiisIXY2
	Epd1HdQl3eAyxpRMqJZFdtbE93d4XDwDUhetKAH3da75/ca2tzSDNFH6fy6iD0TErQ==
X-Gm-Gg: AeBDievSRPkDI+18H3Dm1dyFceOWHCUm31/r1xh/BZ1nhL8+1P1+atMMNFUUXhvGsVr
	LgnVUufNx0m2/OvDpLMl5xIZ3fANSJB4M9LAddOZEwAhK0GT+gkMH74o7hvqlREtAzOS5w2olY6
	Cuf5QjDoKv23WQyHhlA32uDI1r6IFdphiY9u8pT2RyBTUsxaHVHpiihJ2NZ3jNrsdRGQ8KuE1CV
	+BYGjWPePgWN4/PRHHP8wzSt75+Yl/9Jypq64HGoMXk/vnMlNuWeeOhmx4RtbiuRsjpFgZJNHwj
	86u5LALZc+Z1OSiVwF/PMia+/2bB5V6dXl5KU00F9ifpDfePGC+6tJQit1vzkAQqvEWOXW7WGTq
	Mrhc+zJWnlKA5sP/WbWvmfj8Zy4048JcW62bZeOrzUM6qg5R+SIywJij6I33M86P1k1xy4ZK2rn
	C4lJ80ruMqmA47K5HHIKo+ujIQ9TgVDtGZXW5Ohbf1xWIpTt+YWe78LTWfkx8Y7gJW0tmaEpD7I
	/eaxAWX8jjg9RV6Ntv0Rv17cVQ5LgMXPI1T
X-Received: by 2002:a05:600c:4ed2:b0:488:a882:c7 with SMTP id 5b1f17b1804b1-48a98671da2mr173194135e9.25.1777906496238;
        Mon, 04 May 2026 07:54:56 -0700 (PDT)
Message-ID: <06f93b9e-e70e-4c92-92c8-e7835103356d@suse.com>
Date: Mon, 4 May 2026 16:55:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/17] hvmloader: add basic Q35 support
To: Thierry Escande <thierry.escande@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Alexey Gerasimenko <x1917x@gmail.com>, xen-devel@lists.xenproject.org
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <20260313163455.790692-8-thierry.escande@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260313163455.790692-8-thierry.escande@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1777906496-CFF7BD75-392FDA4A/0/0
X-purgate-type: clean
X-purgate-size: 582

On 13.03.2026 17:35, Thierry Escande wrote:
> @@ -209,7 +225,16 @@ void pci_setup(void)
>      {
>          do { isa_irq = (isa_irq + 1) & 15;
>          } while ( !(PCI_ISA_IRQ_MASK & (1U << isa_irq)) );
> -        pci_writeb(PCI_ISA_DEVFN, 0x60 + link, isa_irq);
> +
> +        if ( is_running_on_q35 )
> +        {
> +            pci_writeb(PCI_ICH9_LPC_DEVFN, 0x60 + link, isa_irq);
> +        }
> +        else
> +        {
> +            pci_writeb(PCI_ISA_DEVFN, 0x60 + link, isa_irq);
> +        }

Nit: Easier to read imo without the figure braces.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 15:01:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 15:01:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300042.1574601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJunm-0004kr-By; Mon, 04 May 2026 15:01:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300042.1574601; Mon, 04 May 2026 15:01:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJunm-0004kk-8d; Mon, 04 May 2026 15:01:42 +0000
Received: by outflank-mailman (input) for mailman id 1300042;
 Mon, 04 May 2026 15:01:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJunk-0004kc-RF
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 15:01:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJunj-00AkzT-NF
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 17:01:39 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8b4cc-5cb7-0a2a0a5109dd-0a2a450cabc6-40
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 17:01:39 +0200
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8b4d3-62f1-0a2a450c0019-d155dd33e593-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 17:01:39 +0200
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-44a5174670eso1576696f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 08:01:39 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-44a8ea7cfd2sm25079037f8f.2.2026.05.04.08.01.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 08:01:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777906899; x=1778511699; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=D0+U2Qlhu0zsgoOlZz7Zfm6W/943g1qXYwCKWtOa7bg=;
        b=KSs/scSX7+d7pZ5BAA7wKOS+ArJ0TJpIu5rA+PfC5hYNDGwmglI+zOWlLSCm1+K4E7
         ZYQ/7qQooj4ju3Eu8jKeCeECyicEVKaOe8B4jFHIXHfo7+G0onAnEBH/NKq43nliDUJZ
         srKSgXOzrIYgGG6dOfd+sfO4DQjJIcft6xmsF0FiPGdAnTLbf51VN+yVAGXbrJ86FqZS
         vKuP3I6lsnghYrXAaJPcugrDH2Ho9/zsIZXld7W+hgBEBrnyPMvz9jB4iPRrF2bmvtKL
         VcgTuw9z9KZcw6xwbllc1138YhqIGfwtNorwOqW1SoCvMjjJ5oFyyyCBLDB4OptIssKg
         3QLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777906899; x=1778511699;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=D0+U2Qlhu0zsgoOlZz7Zfm6W/943g1qXYwCKWtOa7bg=;
        b=f6wUIJzDvokRm6XqDDsouXqMu385yETQ7mId6ZMqBP4krenrD1K1CC/KgubZ4YhYOx
         HznHAqSxnY17NdPW6L5YpPuJfURu8dBCZkbEen7DUNOpqT/+XbsxgFKu6B6iTmY8S2vA
         IgM9hmDOPBMviwpBRxixwjcQwMKG8/70L7YC74tckeY/vSksjFk4I3ZzpLlDuIAYxX5/
         dvtLVBng9L4AcHjZJWd3AFeMvfXlQhcXmjJCYgTE4UW9+28TGbLPqJynIzRjZDrS6Ca2
         7BpNZQ/Gm4kk0dW1PgsJh7qzE+oTCbiL4NGxZ9b2KbA1lg3S8fx6hjAEZEYdO5nGg+Xr
         n6dA==
X-Forwarded-Encrypted: i=1; AFNElJ//kQwq3WoE7vUsERnD/e88hB7IkkZYgrDAPUQOMjWZNxqN1OFXWb+BeVIZznQrHwFL/XvQ5JNoGi4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyBTqxEJsBq8ZziTZ/4mZZ6gS+cHySkXXkFSk7zIaSYL5ojsUzl
	6QZ4vobssJ8FCjzciZfO5i7Fu27Pj3SbjWhqWcfCZOrYPryfrPrKSbKYOsGsRIk38Q==
X-Gm-Gg: AeBDievFRVKTReY55LJZxUPXwMyWkEQh9wG6xooNKE29Y3dTi92nVJRPdVS0j3UslXF
	J7pgtioZqLlUdyNw+HFDHPcqBZNs1SV8oREJaCzzCK7pmhrTlpuleH1VsumFiA0gJ310O8dM7ut
	39kht7noENIcLmbWYSpcrOOrKEfRm8ukH87C264L93tru+yPD7LF2luY3xK7AKVy6qtdXrJyncc
	5FXLtySVsUkva+3BNBmdXWMNn6WKpaZFf+BIgMcRwOP1imBUpy3Gle9nRJHwH3D/2Sc3h4T+MOZ
	CoTR4TGxGeC4/NymTMVhyiabY/PG8usVaGOlVv9x9v2rc2nKRalRbIZcwK3tKwDTwuV0OsdN7fr
	YZx1uIGvSwgJTEdcJ/ib+z9W4EU24lC6ISFa1rzbO2DS2J6OZY1taXI7pLqqBgFsHAsXdY8Cfkb
	cNZ9cpUzTbnAzteVVYgNBTI5yEiZ0M6pVyL7ESQgnO9IBNn9qXlJj6nCBbkgAofxYvUfg7Przqo
	huKCW6llePlvzpOwppd/pNXKQ==
X-Received: by 2002:a05:6000:1869:b0:43e:a69b:d810 with SMTP id ffacd0b85a97d-44bb6205dc0mr16361177f8f.38.1777906898702;
        Mon, 04 May 2026 08:01:38 -0700 (PDT)
Message-ID: <9d2470a7-18a3-43da-838e-85b1981ebc79@suse.com>
Date: Mon, 4 May 2026 17:01:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/17] hvmloader: Extend PCI BAR struct
To: Thierry Escande <thierry.escande@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Alexey Gerasimenko <x1917x@gmail.com>, xen-devel@lists.xenproject.org
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <20260313163455.790692-9-thierry.escande@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260313163455.790692-9-thierry.escande@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1777906899-6D360CF5-14B01F25/0/0
X-purgate-type: clean
X-purgate-size: 1269

On 13.03.2026 17:35, Thierry Escande wrote:
> @@ -176,10 +177,13 @@ void pci_setup(void)
>  
>      /* Create a list of device BARs in descending order of size. */
>      struct bars {
> -        uint32_t is_64bar;
>          uint32_t devfn;
>          uint32_t bar_reg;
>          uint64_t bar_sz;
> +        uint64_t addr_mask; /* which bits of the base address can be written */
> +        uint32_t bar_data;  /* initial value - BAR flags here */

Nit: Comment style again (also elsewhere).

> @@ -278,13 +282,21 @@ void pci_setup(void)
>                  bar_reg = PCI_ROM_ADDRESS;
>  
>              bar_data = pci_readl(devfn, bar_reg);
> +
> +            is_mem = !!(((bar_data & PCI_BASE_ADDRESS_SPACE) ==
> +                       PCI_BASE_ADDRESS_SPACE_MEMORY) ||
> +                       (bar_reg == PCI_ROM_ADDRESS));

Nit: Indentation (pending open parentheses want to be reflected by extra
indenting blanks). With, as requested by Roger, is_mem switched to bool,
the !! also can go away, and with it perhaps one pair of parentheses.

(I realize pre-existing code further down has similar issues, yet when
such code is touched - and even more so when new code is added - this
wants getting right, to aid readability.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 15:12:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 15:12:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300050.1574612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuy5-0006im-8k; Mon, 04 May 2026 15:12:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300050.1574612; Mon, 04 May 2026 15:12:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJuy5-0006if-5I; Mon, 04 May 2026 15:12:21 +0000
Received: by outflank-mailman (input) for mailman id 1300050;
 Mon, 04 May 2026 15:12:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJuy4-0006iZ-0o
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 15:12:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJuy2-002tva-Sb
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 17:12:18 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8b742-bab6-0a2a0a5309dd-0a2a4507b148-24
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 17:12:18 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8b752-229c-0a2a45070019-d1558030b51c-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 17:12:18 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-488b150559bso28646155e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 08:12:18 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8fe93166sm80430365e9.7.2026.05.04.08.12.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 08:12:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777907538; x=1778512338; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=n2CidWxDlU6SIZM8V1WJC85VvMNijs8Wq+ouLKoasgQ=;
        b=DN+R+ViB6INFLWXx3fT0eJtfbFG+xs/YTRhiZgqTQQmS2KGXwed9MqW6qYYpRBf3D5
         nrpa2ca/1NNW/+zNiLZaZjsKf2Qpi6rPp01Oj09WiLh59/8BrTU3E76CaMkryB0wdQCb
         z3YPU5TSG2YRb94IVDxnO1Ix/CRpjcufanLyawdz+1neBELRYOaSz3T+DreQ0OmW0qSQ
         yg3qHYsQThLZK7JMVKdkruXeDulQS+5FcO66ApLpswiQSUDux0GxLWiL43Yti4pmGYHO
         Pk1BTFvst6nIODwlNj+XpyaYy4GBg7Kd+CiDnE7sR76Sjchy14mWZ2+W5sFxd6n5LA6/
         VOEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777907538; x=1778512338;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=n2CidWxDlU6SIZM8V1WJC85VvMNijs8Wq+ouLKoasgQ=;
        b=PbypTlszUevLLK1SW8J+pExsxrSuOr3me/qPfK7T/gw4ZKsKadw7a6+Y2UcLrNH1F+
         JcME3Xh17KT2Atr7dUNwNJCKPNOpuu1yknSNhJSqGlMLi9ovfM/XhBafZCUJXZpdq2Py
         kOY84o4vsXWHgumUrhK7iXURxrBjf76xWl9xmW96Rc41AZCqBjxHXk+D6OQvpdGuRowY
         RWW6jFRWg1bxuXgt7VURLLkT4a6cAy846whDjekNkiMZCxsQ85RJd03333L0xx/cEJPF
         2an5Tc/hhfzuVqVQbP3RijQiei6mMb06Iu0KhE3eWDu5gclHObjR4IPlzpuKu9r6kC4L
         Ew/w==
X-Forwarded-Encrypted: i=1; AFNElJ+qhxzfMpDMPJiDjLzVEfpsOXpQFe9A7hBq1HSuMASHMLsz2kXSiv4MMvNZDWXdLrVGDwlhbODVFh8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzW3qCGncjWKK8rYZcmuOOVAwgfHZfJkTTs6Hd/sn1PUB3HvJlH
	KUDYgzkLNi8nIIInJb3jbsiOUalt73KI3nfBL7JJMK6iAPUWPfeQFK2DYd99aa6sCA==
X-Gm-Gg: AeBDieuIe5DwbJfJjiy5sWroWX2SmqLBrkOmVaWh78dwn7at2IFrdIkgevJedYhFbOp
	rnIlBAocrdfOPFqCWaHfRaWoNqXG+Zlol4EmG6VPtVYAz/zFAGRxV34ugQq+FA9rMCTyDlLEdtb
	3ANYJvYVXPCDE+O9BQUKc5tbTgraUnzxsRDjazqRIiKUKONz41uMyhAbYA71858GdPJ/gE1weHc
	BMfRUvNDL6XhNTb1wd2RyNRsdpSyrGVQwt0iy5acKxcGxY6F5Sg8ytIWzvQR2h0R+AIwUWW3Phv
	6pJtzhrKKZ0O8acACOiwbmxreMpiU4g4loakbwNLy1vnrPTXH/SELBsx5jLTtBouQcWq6pzVGuN
	LhomcUDrJkVRy1SCBGcyUhVeqILV8ecCkB1CXMphWaWfmxk7OUBJMD93T0YsN3e4iOx2F2rJUDl
	4wRz3dp1dLVpXpRHOP/b6loBafT3xc32cilRJsbt7WsQxfIFoB61cE4R1wNO6W2Z94/bDRTUlfC
	CReYbsV/Lf/WxPhJ549L7Z1QA==
X-Received: by 2002:a05:600c:a111:b0:48a:568f:ae6d with SMTP id 5b1f17b1804b1-48a98634d87mr118618085e9.8.1777907537996;
        Mon, 04 May 2026 08:12:17 -0700 (PDT)
Message-ID: <df1aff17-1fb1-4ae3-995f-944a1750659b@suse.com>
Date: Mon, 4 May 2026 17:12:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/17] xev/hvm: Add HVMOP_get|set_ecam_space hypercalls
To: Thierry Escande <thierry.escande@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <20260313163455.790692-10-thierry.escande@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260313163455.790692-10-thierry.escande@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1777907538-AC563C48-ECD8A3C7/0/0
X-purgate-type: clean
X-purgate-size: 2640

On 13.03.2026 17:35, Thierry Escande wrote:
> This patch adds 2 HVMOP hypercalls, HVMOP_get|set_ecam_space, used to
> set and get the base address and size of the PCIe ECAM space as
> configured by hvmloader.
> 
> Signed-off-by: Thierry Escande <thierry.escande@vates.tech>

Just in case we want to stick to these (see Roger's earlier comments
throughout the series), a few remarks here:

> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -5195,6 +5195,58 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
>          rc = current->hcall_compat ? compat_altp2m_op(arg) : do_altp2m_op(arg);
>          break;
>  
> +    case HVMOP_set_ecam_space: {
> +        xen_hvm_ecam_space_t ecam;
> +        struct domain *d;
> +
> +        if ( copy_from_guest( &ecam, guest_handle_cast(arg, xen_hvm_ecam_space_t), 1 ) )
> +            return -EFAULT;
> +
> +        d = rcu_lock_domain_by_any_id(ecam.domid);
> +        if ( d == NULL )
> +            return -ESRCH;
> +
> +        if ( d->arch.ecam_addr ) {
> +            rcu_unlock_domain(d);
> +            return -EFAULT;
> +        }
> +
> +        if ( (ecam.size >> 28) || (!ecam.addr) ) {
> +            rcu_unlock_domain(d);
> +            return -EINVAL;
> +        }
> +
> +        d->arch.ecam_addr = ecam.addr;
> +        d->arch.ecam_size = ecam.size;

Shorter (and easier to follow as well as less error prone as to the
rcu_unlock_domain())

        if ( d->arch.ecam_addr )
            rc = -E...;
        else if ( (ecam.size >> 28) || !ecam.addr )
            rc = -EINVAL;
        else
        {
            d->arch.ecam_addr = ecam.addr;
            d->arch.ecam_size = ecam.size;
        }

all utilizing ...

> +        rcu_unlock_domain(d);

... this.

The magic 28 also needs (a) explaining and/or (b) abstracting (a
suitably named #define might address both).

> --- a/xen/include/public/hvm/hvm_op.h
> +++ b/xen/include/public/hvm/hvm_op.h
> @@ -166,6 +166,17 @@ struct xen_hvm_get_mem_type {
>  typedef struct xen_hvm_get_mem_type xen_hvm_get_mem_type_t;
>  DEFINE_XEN_GUEST_HANDLE(xen_hvm_get_mem_type_t);
>  
> +#define HVMOP_set_ecam_space    16
> +#define HVMOP_get_ecam_space    17
> +struct xen_hvm_ecam_space {
> +    domid_t  domid;
> +    uint16_t pad[3]; /* align next field on 8-byte boundary */

The comment, as is, is wrong for 32-bit HVM guests: There ...

> +    uint64_t addr;

... this is only 4-byte aligned, and hence the entire structure only
has 4-byte alignment, and hence the padding also only guarantees 4-
byte alignment.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 15:22:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 15:22:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300058.1574620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJv8A-0000CG-3s; Mon, 04 May 2026 15:22:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300058.1574620; Mon, 04 May 2026 15:22:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJv8A-0000C9-0p; Mon, 04 May 2026 15:22:46 +0000
Received: by outflank-mailman (input) for mailman id 1300058;
 Mon, 04 May 2026 15:22:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJv89-0000Bz-A3
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 15:22:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJv88-009Wx2-4T
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 17:22:44 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8b9c4-5cb7-0a2a0a5109dd-0a2a450886ea-0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 17:22:44 +0200
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8b9c3-63b5-0a2a45080019-d155dd33c518-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 17:22:43 +0200
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-445795cf6f1so2500705f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 08:22:43 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8ebc4201sm447598155e9.15.2026.05.04.08.22.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 08:22:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777908163; x=1778512963; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TVW8Pe+K/LVN3HUZVZ16irKgUerdqb5H6RqVp0VpNsI=;
        b=QXwtUP6KTx05snlmkQKsxGyFI0n2wwCaUS2MipJ9R6LzB6e4KBVSgxsZhMQ5VkvgHL
         IiptrX8wnzN7gBO4cEFGRe8NHS15q0ZwF95pcaYCAqicsRuDcGobwX1i72ABl38HKmIQ
         XMQM65I4V9ra4xdDpqz+P4gbvz/L/TGIguiM1tKKQF3QfO7RSrKEc1+i2XijrAnwicvX
         1gP7zec7vzoUVm4PQxmUeFFsYKb/Lc6g0i1cYsla5HmZBWkeuzwT3eONYb+jmoR3Gxwp
         crwysNho6BiGYwIDkgbpBXZRBW65RmLas/jy+YFPtCS2FILd4SVJmKd0UoelBzukmWbl
         +nWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777908163; x=1778512963;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TVW8Pe+K/LVN3HUZVZ16irKgUerdqb5H6RqVp0VpNsI=;
        b=SpGSM4rwiw6drKGRG5/bmI8evDpuwmi1WV4+Igpes1ZYJASaC4ymsQurKAmT6Erl8O
         oTysjIRX81HPILJh/+8L28kU3fj4/3V76yVZf1gJomFJ0vlhvf6sBwNEZJICmD/5pmbx
         M2wzi8mVlBwBxktmjhiqFXiXK9tIofPRnYmSs4j1kxk/tUexr06xOU8u6tyOuYCk4qhT
         560vUwgu95oTRthbuZgzHsbcPhmdiJgoH1Jko1wNFS4YtImSnT7JE+yGHzAMDJpsnf35
         frL0U8WKvav86Yz0lIG45Fr8n0TOQ9URns6s4NuXSZd0HrwxzjPMANmAsBt/cbaNQ2lt
         hMvg==
X-Forwarded-Encrypted: i=1; AFNElJ8qvrdH77iHf6mZCltouhQHRuY0llQPxwOSS/vkAml9PAcDVe228/uXEKbLKV+8DInLNKgC+DJvRuA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxkyhi+tEjuS553hBdemSgtvZXHQJP5Nt4wnv6DhqnIhuLPnVWt
	FQAqQc8ssNdoRQZ7nCPlcXIDRkhPGq4C8XMXjwT6g+HacNbbC+8XBhGs3/aCjsRJzA==
X-Gm-Gg: AeBDieuqKTzyLGu9lgtJH3SlEjwzhVrMoSvigUOP4fFFMNS3LDovFESL+1BQViJlgf/
	S2N/xIsNXHRJ3575wtdvYsyICeRQVaGHt0eJn4Ot8g791tg5Ip9su3EOHUrdtZNNan5Zjw9GNKs
	Rr+PIZvR8WqDjgtggbq9UWofzVyOncdK9dSRtno74Ho0FRWXjhFNQRLmMXraOpuM+mJ5wZKf6LN
	J8bbo8B8oJjuD1dApkxmi7/cm4zx9OjLw/d6pVHKOdi4F0Oh5mTsCNUOUrQGNvtv9oON9u76jhr
	0pqqBNJWwf485K19NKiMegRFLS60KUWcS5wpIzyWs9pC8VKQR2LawhiG4KgZA66eqMqFb4wSSG/
	AW1Z76zqsjOR1nCAtBoHy2mJOL60lo6WH5JipbjAeE6vth7SVCKa4dined6lLAqEO5f+ehPTr0T
	XgvpPBdIF5LU1YYiGh22Whl/83XCTkgF2KoSto+dfJtIU4dG3gIt/oSlsvLQiBfQ7iFNldNoQoE
	iT5NkT/T9JuqiWPxyiLdvCupA==
X-Received: by 2002:a05:600c:c3d9:b0:486:fd5c:2b35 with SMTP id 5b1f17b1804b1-48a9865b083mr133296745e9.13.1777908163475;
        Mon, 04 May 2026 08:22:43 -0700 (PDT)
Message-ID: <aacea333-6ae7-415e-aac0-353382ad34dd@suse.com>
Date: Mon, 4 May 2026 17:22:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 16/17] Handle PCIe ECAM space access from guests
To: Thierry Escande <thierry.escande@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <20260313163455.790692-17-thierry.escande@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260313163455.790692-17-thierry.escande@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1777908164-C0159DB1-D871B689/0/0
X-purgate-type: clean
X-purgate-size: 869

On 13.03.2026 17:35, Thierry Escande wrote:
> @@ -298,6 +300,19 @@ bool arch_ioreq_server_get_type_addr(const struct domain *d,
>                  *addr |= CF8_ADDR_HI(cf8);
>          }
>      }
> +    else if ( p->type == IOREQ_TYPE_COPY &&
> +              (mmio_start >= d->arch.ecam_addr &&
> +               mmio_start < (d->arch.ecam_addr + d->arch.ecam_size)) )
> +    {
> +        pci_sbdf_t sbdf;
> +        unsigned int reg = mmio_start & ~PAGE_MASK;

If you use PAGE_MASK here, ...

> +        sbdf.bdf =  (((mmio_start - d->arch.ecam_addr) & 0x0ffff000) >> 12);

... why not PAGE_SHIFT here? And why the masking by 0x0ffff000? Doesn't the
earlier range check make this unnecessary (as long as .ecam_size is plausible)?

Finally, nit: There's a stray blank after the =, and one pair of parentheses
could perhaps also be dropped.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 15:28:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 15:28:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300067.1574629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJvDs-00015c-Q7; Mon, 04 May 2026 15:28:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300067.1574629; Mon, 04 May 2026 15:28:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJvDs-00015V-NE; Mon, 04 May 2026 15:28:40 +0000
Received: by outflank-mailman (input) for mailman id 1300067;
 Mon, 04 May 2026 15:28:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wJvDr-00015P-4G
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 15:28:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJvDq-00DNpg-CT
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 17:28:38 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f8bb26-bab6-0a2a0a5309dd-0a2a450adeb4-2
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 17:28:38 +0200
Received: from [40.93.198.22]
 (helo=CY7PR03CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f8bb24-56b3-0a2a450a0019-285dc6162b39-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 17:28:37 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Mon, 4 May
 2026 15:28:32 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9870.023; Mon, 4 May 2026
 15:28:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ecBERiwbEX7cCaGadpqgDDjvr0B3CEEMTFfyd/9/7ksB7AVBfAJ9e/02gRVvQUL1jWZR5Nb31CYYqzdgCbjsX3n3OJ17NgkmgQnkchd3kjHvWwBLdA5WyHuCcTTjcP8x9eJyZUb+4ex3ECp5uh9JG1AHaFMrpmkhxpcOJDta4YOOdVRylbTNQRqMYY22JdjNMVP6v+SaBC3l00xM+OgBS0lGRifK8zU47SNaCkb9t+08slGFSB1eiUxRyczuX0nbBrKj0ep91HAEBAOBZLTsUDcH2jzfC1mgFAm67M2tmY1JnUp03gZHGcH61TKSJSbneG5qoXEd1fu4vf9Qu10O3A==
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=7JAb9tEbw9b2g2PZcWBDD4654VCnxzMyv7lXoltvcyE=;
 b=l2wpPga0YNMXdAxzP5x6P4sntkfWliTir+DvDN+1ZKRoUQomYmRhNffe7qHTasJZrHDjVDe8Dz6V+z8HLs0/h+WII94LWVtggN8ebi2yUhKtUeJ9Wnvjsdb1kQtB88oJ807VEQ4n7bzTPzL6hPlo/EpHMa5Za1sKn6+TGiD3ggxhGA16M2DQ8+fSZeTMIzlXroi2sYGW6ipPZLVWUdd7vmTItjceXJ9XjN9iaVT+KP/7rvLonyMHAWPsvpsGa259JSMzTkruFFh+5PHStREZin5L/wzbI8AQzd95GcCwp6Q0ADc7wdeyTE8882VO/RBDnkYf90n47KbdSg8hyPo7mQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7JAb9tEbw9b2g2PZcWBDD4654VCnxzMyv7lXoltvcyE=;
 b=Dt0OMrVOHHafO8aIB3EeG1eLRf1t7jnol5mIV8gHXxVCF+fwl6BJxJhgbfqpORrzPsF0V0dcheHnqWY7PgVR8eIy9OWy2od0gMES7Wj+dqK9RG8eYzxNj3d9q0KHa59NJ0uP5aTtbGR4G+SyFy4YHFcvWIuGBv+RiVg2/rv1zMY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 4 May 2026 17:28:29 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Michal Orzel <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
Message-ID: <afi7HUFoDYabM9VV@macbook.local>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260430125103.401811-2-michal.orzel@amd.com>
X-ClientProxiedBy: MA3P292CA0067.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::8) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH8PR03MB8275:EE_
X-MS-Office365-Filtering-Correlation-Id: 506a0db5-3ad0-4ef2-375c-08dea9f1cd01
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|7416014|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	Ho8JL65yeem9gvil0hrQLOxzpMrSw8hvHqY+QAIszwh5Fxs93nnqRcKGr0BarRNgdouOKrGAnIXvMDeulr4nzgZvfcekvIMTremky+xTEt5XcgNJ8EaqVJE9u3gaFtqf+4cftA5jbkXrXIG+x4s4DHObjCE+Y/jK7DJN9p3ulv0uFM/ir77+U9M0zecCqCdw27kpA896rd4oszUcsMMKIF127XAxmpY0BumkKmRgpakLlQOR+diaLw8thnR+BRcvs4WlWkYBGGmTs5nsP1gj1u9Kb8of4lYZNG5I5CQsDsxl5dKw8M8XQkaMgJxgBpu7+sGEecc+eAReINK8ChRYMP45/5Y7E5hmKZzZsjWvkw/WxaY1u7j5UCqUIetunavZssPzH9kdaqThEn7Fv8bTtGa5c2ALwuMN6Ds/qnpADKnT8RLjoLHrEy/1bNxU2pL/6mpD3+jgEqMYo4V8hp56ZyQ6shLIMd8+G2m2JMSkNWgu0hn6dLm/x/M9CyBoHQsToXUC9spXt6+Pb1jsXYpd2E2ciqha/ToffGVY5lUTxwqXIJIupuRjS1i29CX1TPey43ESaveC6NGHIVdS8VG4Fn9xuOk/tiE50Jrip+w+NqM6zw/dak06EVBv0Aq0xOFcvPFVBAbSQ4mzZVoZJe/a0U2rht26nublkI4OoeFaEnf+Q93jJi1Vsq+di8NEUhCA
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Qjg5aEk2VTZwVjR1ZVNOSnpLMnNRdk04Wnh1eVVmWGtNTUhxMjA0aUY0azJN?=
 =?utf-8?B?YS9RRU5aTXdTSE1qOVQ0K1lKdmFaeVFWM2dUUzBqci9oMjZHSmhidEhNUjdY?=
 =?utf-8?B?VzN3c3N0TkJjbUowMCtVMS9iYm5mSzJ0cjhFSnRRS0Q2YnhCUUxIbHdkbmQ4?=
 =?utf-8?B?SFVsOEN1b0NySVlxSEtoOTZrSjM1UHBSd3VsMDMxU2xmazdNNkt3b1cwMXFO?=
 =?utf-8?B?RjN3SFRWKzlqNmF6NkFyTE52bUhnbHdKZjRLM2s3cUpkeVVCV0NnZVZ4RWhX?=
 =?utf-8?B?UTkyZ2NQVDNySDBnTzJrWWpsKzZwK1drYnJtNVg0alVHYXd6NU8vbHJ0bUVJ?=
 =?utf-8?B?Q2htQlphbTAvUEUvM3A5Ym5tTlFNYWVub1JJbWhhbTdJSUw4SC9mWTJsWVRE?=
 =?utf-8?B?VFI1eGlYMHNNWVNiR253b0dHVTlMZGNST0dSRzJFQmRXbTI3eHpuQW8zeFp6?=
 =?utf-8?B?RHFwUWllMDB6eTc5eFhsc1hPUmhxV2NjeE5Rd2REMW9MQzhocWs0bktGR1VF?=
 =?utf-8?B?ZldnU2hocDEybnN1cWY5TkJEdEQ3cUVWWGFGZlJ5N3JVLzk3M0NHMXFVUjNV?=
 =?utf-8?B?a1FHUSt0YzhtNlFHYWRmb2llUzBCMHJLc2dIdHJpbGVJL0ZIUWY4cXNpenpI?=
 =?utf-8?B?eUx5ZklFUitpM3Arb3VQc09EL1Q3dlhRWFQ2WXdwRTJnZGNOVmRFOHBrRVk3?=
 =?utf-8?B?Z1dsV1ZzenJ4U3JiQnBhNTlEaVJ5L0UzN3QzeDZHc3NCWjVGM1dwY0tmV25t?=
 =?utf-8?B?V1pkQnVpbXpGRk5Jdzh2SXl4cTMybUJsZFVFblhMMko2MVdScTl5dXN2a2FE?=
 =?utf-8?B?ZXZ1NTF0RzBWSG5mL0oxcEkyRzY5RHpYdmthYmU3QURodi93b003a0xlNFRN?=
 =?utf-8?B?TEdkNzZoSkIrY3BlQlk2OUZhSW52NlNUeG1qUERnbkswaHI2V0psUGJUbk96?=
 =?utf-8?B?UzRxYlBISHJYMDJpODQ5dy9LZHFrREtZcURJWjdTc2NJTTh5YUxaWFZONWZF?=
 =?utf-8?B?d0MxNmJWbzB0cElUM0VwSG8xc3FRT0Fwclh2bElyRDlPZVdybXo2OWRIanhU?=
 =?utf-8?B?bGYyVVFjT3NQM0IrZTZOUTVvek85L0ZSQWtMRnlPbEhXVUNLUnpGemxsdXEy?=
 =?utf-8?B?VEFLbHdnbi9MS2Y5TkR1SGZ1bjF6SGZwRXJuS1V2eE8wWTJIeTU3RWlBeHNx?=
 =?utf-8?B?VExYcHhDWnpDN0FSTE1UOHR0andXWE1hcGpZMy9sMXJ6VFgxZnZuZ3JuVWw0?=
 =?utf-8?B?VUlsSlY4T09MaTJlWStsMDVmSzB2N1J4RjJzL2psRkx6TWJIK3JSK3RBYU4v?=
 =?utf-8?B?MHQ5M0pKRkt6OEg5VktDNHZXandhY0tCUDVNU3loYzlrNXkvYU9kS2RaTTh6?=
 =?utf-8?B?Y3ZvTjFoakE3S2pMN2hkYVZ3RGpmbFlZZTBuMmF2RFhhN1Y2MnNjcFpJQTYx?=
 =?utf-8?B?dk1VNDVUU1MvaXF6VWdkZXZuQ09UR1FyeWNpU0Fwa2JCYW5tUkNqTUl3UDl5?=
 =?utf-8?B?RktkUDFyRlpPM1VmM3kxZTR3Q2pKNHo4SXpabG5tQkFFZHpYQlNNTkhSTHlo?=
 =?utf-8?B?aXpPaHZXQ1lSRHdBTVhManhkeDVaK29VZlpVWUxGSmNiSHErR1hIdWxFMmpt?=
 =?utf-8?B?S3g5dUhKak9tSDg0WUtqTDVJeVF3Szd2bW9GRDRKNkh0eFQxWlVBNzNkWG0r?=
 =?utf-8?B?MmUxK1hHV1IxMk9zSTZiWlNoOVFFZ3NFK0VHbWdPbVI5UnU3QVRZTnBGNDFz?=
 =?utf-8?B?VWRRUGRxVHdhRXNoZEhlbXpyTThuMklLcmFDVktNZEgycUR2TTUyNlNXMkZn?=
 =?utf-8?B?dXJ5T3dVSXpRSXFvOERiaHMxSk9wODRMUHZBbFhUTlBFcUE4NktWRU83Tjhh?=
 =?utf-8?B?VnJza0N0U3A1aE53aHdxaGJ4WFhtMUVtNWJQS0Vrbm12aFRPTTl0OXVZd1pp?=
 =?utf-8?B?SG9zMnRid3lIMnNCMUJMd0pMTU14TUVTYUFxQ0cya3I5U3ZTU2MzOXZwVXlJ?=
 =?utf-8?B?Ymw3eC9hUjk4MExhWDFnTGtFZ25KWE1DZ0Ezc2NoRVF2NmgzNEFlSEJBMUpB?=
 =?utf-8?B?bXJERUpPN0dLbVVueUxKTFc1ZmRnN1VMcjRqdkdkUjFpbUJSNzlZYWIzeHp4?=
 =?utf-8?B?ZEhxWjd5dGtHZ0dTWldQdFo5dXJBWEJ1SXpHV0hCb0k3L1Z1cGRZaHJiN0dy?=
 =?utf-8?B?NHJMVk5BZzd5VFFlUFdERThWNHZnVXBpNGY3cTFVSFRISXJEL1czUlpJenJN?=
 =?utf-8?B?UUU2Y1dKb3FJNmFBbTlUVlE5aUNyVER4ay9zcGJzWXJPU0dwL3ErT2FWUFh6?=
 =?utf-8?B?K1VMdFNpV2pMR1JUT2twWWlEMW10YUp1Rzd6amhHdjVVVHRjVmx0Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 506a0db5-3ad0-4ef2-375c-08dea9f1cd01
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2026 15:28:32.6835
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: V48/uX798n1xr5hJ9jx6XZDdWEH6dmZDltF5A2bioi/yQUuhuExFx6uVaqrThl03v0ftnjFvVDj5VuauCyImnw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH8PR03MB8275
X-purgate-ID: tlsNG-4011c0/1777908518-47F798B7-6D7B0768/0/0
X-purgate-type: clean
X-purgate-size: 1033

On Thu, Apr 30, 2026 at 02:51:02PM +0200, Michal Orzel wrote:
> The generic pdx_to_page() and page_to_pdx() macros in xen/pdx.h assume
> the frame table starts at PDX 0, which is only true on x86. ARM
> uses a non-zero frametable_base_pdx to offset into the frame table (PPC also
> defines it).
> 
> Fix the generic macros to subtract/add frametable_base_pdx, defaulting
> to 0 when the arch does not define it. This makes the generic macros
> correct for all architectures, even though they are only used on x86
> today.

Hm, I assume this offset was added because the original mask PDX
compression won't (usually) compress the gap between 0 and the start
of RAM.  However the newish offset PDX compression should be able to
compress from 0 to start of RAM, and hence you don't need to apply
an extra PDX offset there?

If that's indeed the case it might be better to integrate
frametable_base_pdx into the mask compression algorithm itself, so
that on some arches it's a mask plus a decrease.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon May 04 15:42:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 15:42:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300075.1574638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJvQe-0003rw-Sj; Mon, 04 May 2026 15:41:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300075.1574638; Mon, 04 May 2026 15:41:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJvQe-0003rp-Pe; Mon, 04 May 2026 15:41:52 +0000
Received: by outflank-mailman (input) for mailman id 1300075;
 Mon, 04 May 2026 15:41:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJvQd-0003rQ-Nh
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 15:41:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJvQc-006Xuq-VQ
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 17:41:50 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8be21-e002-0a2a0a5209dd-0a2a4509b524-48
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 17:41:50 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8be3e-2497-0a2a45090019-d155802aada0-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 17:41:50 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-4891c0620bcso30193525e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 08:41:50 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a81ed69fasm397905975e9.3.2026.05.04.08.41.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 08:41:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777909310; x=1778514110; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=00PbRVofBXLJIarDJGGwrlLIELLVE6trVcwdeljioX4=;
        b=RK8KYWE6jHGVJla6L6uiN5P11XnS1n3uCIHt0sVNfXWchvm3R5EBNRJauKkJ8TZ073
         utm0h5LoOCe2CAPVZwd3E4eSsRYVhkXiNIAInDgHtemkEClxNBu6xRPCCSjM+dKRl+6l
         K/bPjb+Snu5hJTiHJWfV4In9jdqv+Bs/AYxpfFxAv289VdsQDVeWAZ7cAcXObtlE2Elg
         DMEhFi9rFkOtv6MJpI1DuVqoIhEuS1j5SwOnmMIciW8rCOj0uFHWikk+Yytcjv99WDsP
         3wxmiUEJdXbchp7aMyIEHJrxxgge8t2qqZMoqGIjjzX7LFWxZIsgKi3udZ43obR/bqbk
         W0yg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777909310; x=1778514110;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=00PbRVofBXLJIarDJGGwrlLIELLVE6trVcwdeljioX4=;
        b=hNvp1dxrCV6DKzqw1itOYkpxjamOeCG6vk5NTV9A1m1M7FemsN9izOrK+9D83Uadwv
         YMwXq/0+3HwXykgCM4lnGBC+nuEej2duoV/3g5BSvcwnKgDz9e/VwctASKi9Jj5qj6oO
         i8JMhIkrcaldscK3PmhAwP5J5l1VdTi5pfYPilhZ/ykU9gwV9Ui6BPYrFpI2SqOXbk2R
         C2GLKth+gQzNW1RyOkbUM4nutjFHoiLgd5S72bv3yanlqLnJGISotrS67FGDe22Fjp00
         Hem0UeGh2rMbLABGDuRg/1S7h/lhyBmDXOcQNHuYbQRsc7rD6hhqg/K6hrTjL/8+BW2u
         LlDg==
X-Forwarded-Encrypted: i=1; AFNElJ8SbwiD6KNJzxzZa0Y7TnMp5eEQdMYbZSBhkvvYXKnU/e9aNtPGDMCQRny+53rQzh7dPQJV0jADxfw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx5n6jFNO8tZoQBhgEjGm2/zteLjbilBUpggFtx385g6eTu4Wzp
	Ws1HffRyLAQtC40krlesabrsXG0AWT7Utt8aisNpgz0lUbf9foUwZ79wqcY3xYwAVg==
X-Gm-Gg: AeBDietLfp76Ld99eYRJwpouOod/R2lr0Yz1mMchZ/U3c9g8A2GlBzdoorSBisoGHIk
	x94fqLPlXHp2tzNrgBftUibbAQp50eZ6pOkt0Pjc+upjJA1yiaUTK//vaYA3SaSQpDMzxOyHhP3
	sMC83xgzHXM3egMrNfCdyGSSaudn9b+Dw7PSlT3gNJmpe4oXmqzFiPU+kpwUvawPLJI0Ew9gO9m
	Ij1+Nc5sYbCXPJDzVQuz1YhDsYGSB3n5ftHSNZNJR86/4/DrToWTWPGcJlEYEBmIY2FmC3yqNZ6
	NsqtfKLkmvLhLrLo76RKwfp/FbHjPHfhagJoUIUf9GJN4SkWUstgdwTkcWy5WKnvTkIdJuZOqTe
	NxEohF2ZMwSV4nirQ8L4I37yGpOaYCJ/SpQNlLjPXqkSzw8IVl/A2FdsLGb9DnF1JTS5/bmQYQ1
	Og5wUVDERZrFCICt6nXjFyCWFOyL3DNGDQfY0vjfZSanejWPSd0ZKvljAKxA5oC+ZWN4uYo+Jml
	dSbERM0rZQ=
X-Received: by 2002:a05:600c:45c5:b0:488:a916:14a8 with SMTP id 5b1f17b1804b1-48a98871959mr168578835e9.10.1777909309920;
        Mon, 04 May 2026 08:41:49 -0700 (PDT)
Message-ID: <13283cac-7a52-4db2-8542-056248149fa7@suse.com>
Date: Mon, 4 May 2026 17:41:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 1/7] vmx: Introduce vcpu single context VPID
 invalidation
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1776259594.git.teddy.astie@vates.tech>
 <50c96e2306538eb7cd28ddfcb21163c628fae0a4.1776259594.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <50c96e2306538eb7cd28ddfcb21163c628fae0a4.1776259594.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1777909310-4236CA53-5356D623/0/0
X-purgate-type: clean
X-purgate-size: 1725

On 15.04.2026 15:32, Teddy Astie wrote:
> Introduce vpid_sync_vcpu_context to do a single-context invalidation
> on the vpid attached to the vcpu as a alternative to per-gva and all-context
> invlidations.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
>  xen/arch/x86/include/asm/hvm/vmx/vmx.h | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
> 
> diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> index da04752e17..3524cb3536 100644
> --- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> @@ -452,6 +452,27 @@ static inline void ept_sync_all(void)
>  
>  void ept_sync_domain(struct p2m_domain *p2m);
>  
> +static inline void vpid_sync_vcpu_context(const struct vcpu *v)
> +{
> +    int type = INVVPID_SINGLE_CONTEXT;
> +
> +    /*
> +     * If single context invalidation is not supported, we escalate to
> +     * use all context invalidation.
> +     */
> +    if ( likely(cpu_has_vmx_vpid_invvpid_single_context) )
> +        goto execute_invvpid;
> +
> +    /*
> +     * If single context invalidation is not supported, we escalate to
> +     * use all context invalidation.
> +     */
> +    type = INVVPID_ALL_CONTEXT;
> +
> +execute_invvpid:
> +    __invvpid(type, v->arch.hvm.n1asid.asid, 0);
> +}

I think this (such) better would be introduced with a user (else the
description wants to say what it's going to be needed for). I further think
that this (such) would better be done without goto (else at the very least
the label wants to conform to ./CODING_STYLE). And finally I think that the
local variable would better be of an unsigned type.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 15:49:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 15:49:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300082.1574646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJvYF-0004bO-Jf; Mon, 04 May 2026 15:49:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300082.1574646; Mon, 04 May 2026 15:49:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJvYF-0004bH-GL; Mon, 04 May 2026 15:49:43 +0000
Received: by outflank-mailman (input) for mailman id 1300082;
 Mon, 04 May 2026 15:49:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJvYD-0004bB-KJ
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 15:49:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJvYA-000Vuo-K5
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 17:49:40 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8c013-5cb7-0a2a0a5109dd-0a2a450ca604-8
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 17:49:40 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8c013-62f1-0a2a450c0019-d155802ab8cf-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 17:49:39 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-488a88aeec9so48079985e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 08:49:39 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8eba8487sm277308085e9.11.2026.05.04.08.49.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 08:49:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777909779; x=1778514579; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YkXvSUoW7PbksZ3ZDl8pofh44Ds7A3iK1SJHGng/AIg=;
        b=fTeYWb376fwDrBuX53y1NUvYkJNf7PlBArfFOnoTry3yOEXN4CzwaeaRHQnAUFTnco
         laVqWOXsR+ovTHjwG7i2YaWYpOfNkJzhn/oZ0ph1I1/E6lqCOvTtE7QTeCk6tuzA5ZO7
         WZ7TXL5J+vcOXJCPF7oIjaE/W5CGDGrNsXiSqTxbxeKZjnqmFXaOhPYF5ySKmzkiyMGF
         xXHhtBctTs/RG73n0PtbeRFhru3cLwWc/1HdH0ka7aW49VODNWHNQWEkRt6Px6q425gj
         p5hqu1lWOvkHOdJkN7+/l5OGZz2tMiXlzbTwVPDuY9cftIXPY4MvJqNoi189VduGIHXF
         qtsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777909779; x=1778514579;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YkXvSUoW7PbksZ3ZDl8pofh44Ds7A3iK1SJHGng/AIg=;
        b=AJt7+R/FL/B9dOMZyihsU+mx/qInx/d0ZGSjdOmKit0O/HXLoIskUgOoObJHoRYbKp
         UzGE5PjZYUNXw3X3ZtS+bFs0AHD8K5emm7pvII1a5Nc2+uFErck4j4xJ2ME1mSS0osJC
         +lkAruGQlTfml/1G8B7D64m8qh31TCmT4Lf4YpuxTOm6Eo7MY6Um8n9gwAoPRE/3wZjh
         B/8ZT7xJtg1zvqH4WKjUgKK3U3z6QOGMPWrP/QheVocjI308WCpE+wqBahMX1TBebiqR
         ywrnSZz7CREUXYqOuEINmzuk9K+VuOR+jxS1lwTDqz1lb2arWyQyhefNaQB7VR6liE9R
         TlYA==
X-Forwarded-Encrypted: i=1; AFNElJ9UVvsndoJsn/tfZtuch/JFM0eq2NULHp9dniMkFgYkAGngOADSsOjlK4PZPelGPBjIpg7pL9FSJQs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxSe/GsdQBp1KKwqglnGNC9Mz6oTju2FTM6n4Xqb6/Qp/CVmHNG
	co98CLqbR/CZx9dBhVP4vd1zZ+amIRrTfxmYYtGIO2+Xi5awmsvJK99uttCN6L/BjA==
X-Gm-Gg: AeBDiev9iWdzD/pLPZuIeEE6+bavnNTx4J03Yilusy1n6TNulSE+hmqO7yhXbGBRCe0
	9JGR7z8wFX6n3FH4/I+IdvokmBuhcY9JfnxGZPRNX6FlQG5As3Nc5jU6ZEZ0c+n/vr/WTlIxHSS
	SL/y34dIsm6ZAB5tioHaVRcP7VM6YsxeJFxgqSOzi9sF9auJHHBo2Zt0ZzpzDkYuOD7LP/jodsp
	3GFzpu0gpcw/jD9A+sExUr2SA978ZbE7Gne1ibTrbZTTjhHJ7vvt8/BP333s5Bh1RjpMrrJ1YJw
	Qeow3PWY26XSHsuT7WgL9m4JccI1P3BCM3td99NE9t3ckVzdXyarNlaCLyoA2xweAFIcXU2C6ub
	Zdr/5ijzW74ZbtwNp/7k0wFDKAx08X+rgVcccKbcU/ViB27Wc80GFGXOsv9KzuzevEq/VlQWtDH
	eUw7910E7O1L9BVBgGmFYMJUt1fLIEmavvuHma6wYnygjIR14GnS6fShRWWFImHloTbHvPhhkj7
	PxOE1KjX1ypo6wsmATxLPGlxw==
X-Received: by 2002:a05:600c:828a:b0:489:5022:39a4 with SMTP id 5b1f17b1804b1-48a98638119mr169182825e9.9.1777909779294;
        Mon, 04 May 2026 08:49:39 -0700 (PDT)
Message-ID: <a191bebd-aa7a-46e4-b3f2-a7a93c389480@suse.com>
Date: Mon, 4 May 2026 17:49:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 2/7] common: Track latest pCPU that ran the vCPU
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1776259594.git.teddy.astie@vates.tech>
 <f127344e083d224d2203b83c701375ca15e6368b.1776259594.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f127344e083d224d2203b83c701375ca15e6368b.1776259594.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1777909779-6C567CF5-B1E9A1A7/0/0
X-purgate-type: clean
X-purgate-size: 1521

On 15.04.2026 15:32, Teddy Astie wrote:
> Track on which pCPU each vCPU of a domain ran. This will
> be used to know whether a TLB flush is required or not
> when the vCPU is migrated on another pCPU.

Somewhat related tracking already exists - see the dirty_cpumask field.
But what title and description say doesn't match ...

> @@ -977,6 +978,8 @@ void asmlinkage svm_vmenter_helper(void)
>  
>      svm_sync_vmcb(curr, vmcb_needs_vmsave);
>  
> +    curr->domain->latest_vcpu[cpu] = curr->vcpu_id;

... the implementation anyway: You track which vCPU last ran on a given
pCPU. Since the same pCPU may have run multiple vCPU-s which then weren't
scheduled again, you lose data afaict.

> @@ -992,6 +993,13 @@ struct domain *domain_create(domid_t domid,
>      if ( !zalloc_cpumask_var(&d->dirty_cpumask) )
>          goto fail;
>  
> +    err = -ENOMEM;
> +    d->latest_vcpu = xmalloc_array(int, nr_cpu_ids);

xvmalloc_array() please, as this can be huge. It possibly being huge is
also of concern.

> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -567,6 +567,10 @@ struct domain
>      /* Bitmask of CPUs which are holding onto this domain's state. */
>      cpumask_var_t    dirty_cpumask;
>  
> +    /* Mapping of the latest vCPU that ran on a specific CPU
> +     * (-1 if the vCPU hasn't ran yet) */
> +    int *latest_vcpu;

Why plain int? You don't really leverage -1 as a sentinel, and any
unsigned value >= nr_cpu_ids would do in its stead.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 15:54:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 15:54:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300091.1574655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJvdB-00067h-3o; Mon, 04 May 2026 15:54:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300091.1574655; Mon, 04 May 2026 15:54:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJvdB-00067a-18; Mon, 04 May 2026 15:54:49 +0000
Received: by outflank-mailman (input) for mailman id 1300091;
 Mon, 04 May 2026 15:54:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wJvd9-00067U-Lo
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 15:54:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJvd8-009cXr-TH
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 17:54:46 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8c13e-2eae-0a2a0a5409dd-0a2a450bc4e2-6
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 17:54:46 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f8c146-212f-0a2a450b0019-d155802ddcd9-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 17:54:46 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-48909558b3aso45771245e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 08:54:46 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a822c3422sm309985025e9.8.2026.05.04.08.54.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 08:54:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777910086; x=1778514886; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NmvwynO5uu5Ho03hYMoe5uJgfCpVHw+QR3AFPgHKed0=;
        b=aupwdaNXSmO3CGhcz//FUh6dXQROf+Sq3qgt+jRg0EUcgDk/A3s2YjjcIxO7ib2DZk
         1oIBdK5tgUuiCbUZnl0skJxN4PPoCXkkSpAh0RqhXhgFUUj/mgE3KvIR4fctZs91zyl5
         YdcyhOq1QdR0WNaIM882RfeNack2qSYQKU7CkOlqTrAYzbS7BlJRh65xKpRkCRnAki2l
         Oy8dfOAAXZKatnX3yA915W21w8FwqHcqqGvs3dTd8iudBr0YFNoCzXMwOAvL9oo6eMp3
         WkjQysKIQ3Nv40g6yuICrx01qUw4sw56yKqBX9mBC4rBV7Q1vSHuDEYUKOryaw+xDele
         9ylg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777910086; x=1778514886;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NmvwynO5uu5Ho03hYMoe5uJgfCpVHw+QR3AFPgHKed0=;
        b=A+g+VitkgzL5cZZ9gV3eR5ajc4ZKu3Vl39B5vzYlYypweM8QOUdeakajitF5RPwRAw
         O62nOsPYB/agXhTQZ/5SUtl4sqEhfq4HbNFpke9z5WraDH7H9jfH8Dq0RoulP+JyGi5w
         +VrQXw+VoNzy0NLK4v2YFB6e9cznT2r2TFMLBKuTKzSER61aKe+OeCMpNGNTL4fuQdsI
         bJ7qFqn+CAdcDjacHOXJdW16KPRCigPjcQYCCfzKOulxnwRrjEmIYkHtp3aKHwuS5QVB
         6vqlrKszWxafGPHUmJiUA280bYw3QfaBj8FDzFKZ6DFxfTm41CO07VCGC+cZO/2NKydh
         gUsw==
X-Forwarded-Encrypted: i=1; AFNElJ+DLTu8y0BuYzKRLJT8nCvD/k21AacI1FUur4m8YeKK28/RpA1qJ4x554+jrjpLDWZU3fau3VTIWWc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzKWujrr6UGodSfULa1yxparBz8WL8V09IjcAnNvgfzMPNgQDSU
	vqrwOjuEixsytlGEcZYwWcZHVSUjGWR0xy1LKGBQMKCETmVXX/vyXE2P1lw1koCPdA==
X-Gm-Gg: AeBDieuhv0KbcCEF18MN2iABlYZ8mX4QjDAsBJlZgN8o8EmtsA9CgFf6lUWGtUays3E
	aef27T/ia73omx8FS0bdi51jDXCI7nFOkVRAjgVUEazIFAomgqVD2hcYMHAQJOmcggvl/3AtTxd
	6+qKtNhpdtXc42dS+6X+UYICaTF1XwVGHNioGhTuWeLOwhIVx19K1FKpmk5HtH9UGGu+rEunAAC
	mu4hWpfRE+jjLav1TpdYfUN7Iftd4UsPw9LZ7Zkt0h2r59iF3d/lt7pXFCh245ExJDDlDK/uLSo
	hMauhaLcMicQ/aTNL0HlU8rK5hOu527BOHsLubu+EI9XMHue04Pxt6iW8d8xqb0/CtaQQjU6uIP
	JVbPLSUxt+h0MHD+QbqJyGWQdwCmUWrkZ9FE9gbXlsYwajm4v0vZIbGa09TM/BAY1skfUhnNe64
	LJJkHjwNFQTHSLq4I3bFuwsAxa2PlJoZqosoa/CZmixUFeSyz910/dR7gnhpVyPceJ5MBhSROMj
	O5oS7T5tqixA3Kt8jEUc7hFdA==
X-Received: by 2002:a05:600c:a411:b0:488:b14f:b8ed with SMTP id 5b1f17b1804b1-48a980fc5d0mr122491545e9.0.1777910086231;
        Mon, 04 May 2026 08:54:46 -0700 (PDT)
Message-ID: <139ab590-27d1-4ffa-b95d-2f6be15aa3f1@suse.com>
Date: Mon, 4 May 2026 17:54:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 3/7] common: Introduce needs_tlb_flush vcpu field
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1776259594.git.teddy.astie@vates.tech>
 <76d570a1b444a0bf2308389d9ed8bef8878b0c96.1776259594.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <76d570a1b444a0bf2308389d9ed8bef8878b0c96.1776259594.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1777910086-07979F3B-BC976202/0/0
X-purgate-type: clean
X-purgate-size: 1562

On 15.04.2026 15:32, Teddy Astie wrote:
> This field is meant to be used to schedule a TLB flush on the vCPU
> before waking it up. This field can be set from another vCPU at any
> time.
> 
> Schedule a TLB flush when the vCPU is migrated to another CPU.
> This is needed as the vCPU-related TLB entries may be out of sync
> with what happened on another core.

While not an issue with ...

> --- a/xen/common/sched/core.c
> +++ b/xen/common/sched/core.c
> @@ -1188,7 +1188,12 @@ static void sched_unit_migrate_finish(struct sched_unit *unit)
>  
>      /* Wake on new CPU. */
>      for_each_sched_unit_vcpu ( unit, v )
> +    {
> +        if ( old_cpu != new_cpu )
> +            /* Migrating to another CPU needs TLB flush */
> +            v->needs_tlb_flush = true;

... this setting of the flag, for almost any other place (which apparently
the next patch is going to introduce, judging by its title) the immediate
question is: What if the vCPU is presently running? The flag is meant to
only take effect on migration to another pCPU. IOW the overall purpose
doesn't become quite clear.

> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -224,6 +224,8 @@ struct vcpu
>      bool             defer_shutdown;
>      /* VCPU is paused following shutdown request (d->is_shutting_down)? */
>      bool             paused_for_shutdown;
> +    /* VCPU needs its TLB flushed before waking. */
> +    bool             needs_tlb_flush;

If only x86 is going to use the field, why is it being put here?

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 04 16:18:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 16:18:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300101.1574665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJw04-0001VL-VT; Mon, 04 May 2026 16:18:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300101.1574665; Mon, 04 May 2026 16:18:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJw04-0001VD-SV; Mon, 04 May 2026 16:18:28 +0000
Received: by outflank-mailman (input) for mailman id 1300101;
 Mon, 04 May 2026 16:18:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Samuel.Montgomery61@protonmail.com>)
 id 1wJw03-0001V7-MC
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 16:18:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJw02-0032bR-B4
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 18:18:26 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Samuel.Montgomery61@protonmail.com>)
 id 69f8c6c1-bab6-0a2a0a5309dd-0a2a450383d6-12
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 18:18:26 +0200
Received: from [79.135.106.104] (helo=mail-106104.protonmail.ch)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Samuel.Montgomery61@protonmail.com>)
 id 69f8c6d1-672d-0a2a45030019-4f876a688269-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 18:18:26 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=protonmail3 header.d=protonmail.com header.i="@protonmail.com" header.h="Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
	s=protonmail3; t=1777911504; x=1778170704;
	bh=V7sg3EXKpe3ODgXm7r8fn96NbeRoTXzy0BmXoYu5iro=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector;
	b=Ye0W3KCa++iIUGUF3iIpcsiNqkRul8sSVVRzUwbTh4fbbNz89zM7aGxi1PkC3yjoG
	 d/4zplRy3SZktObsP4VaF30a3spGQFinrF3MG7yZ1mvCyijvnwxcG+OqSvVCHKsEHk
	 0o10G5l7LPQn9wWm82KVtypmIj98ceVh024aJOpkq67e2jPqJ9Us7uPConfkgWO9BM
	 SQ3NE11wuDN3Lan2IPnGYP6a2c9qcLbvpKqiIBsrO/Vwnhn6R9eQu804K1ybQTxyGS
	 VL0B2RNzbEpIAxE70f7EIKgMSSKfH7/9q1+m3+e2xrPCZStZiBOCdJXLNyZRSFegd1
	 zKDX+wGu0dY5A==
Date: Mon, 04 May 2026 16:18:19 +0000
To: Jan Beulich <jbeulich@suse.com>
From: "Samuel.Montgomery61" <Samuel.Montgomery61@protonmail.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [RFC] Skip boot memory scrub on platforms with full-memory encryption
Message-ID: <v8BgcMuI474dKhLADWT2nMnQYi_m5b1mw7vAZIbRv2ffDY0bh2h_d9Qst_Q-4HUT3DOyYk8WHVpyih_2wlIgvVkbYoLsHY5_jYUPgQnkC1g=@protonmail.com>
In-Reply-To: <8c619af2-0dbd-468f-aa17-c1224d315304@suse.com>
References: <xJXmemuuJ0kqnGWQ9PWwfFn8_KZVhYSbsAyHFGvDeiqpxUK1Q-ar7Lab7ttRPx-tcEHduS26pU9BkIifbhznT1Qc06vyHfovl1-IXC0cWUU=@protonmail.com> <8c619af2-0dbd-468f-aa17-c1224d315304@suse.com>
Feedback-ID: 16446063:user:proton
X-Pm-Message-ID: 4d95ca6219795bd954c22c823b5a6cdcc807f4d1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-33051d/1777911506-2AD63938-A42898DC/0/0
X-purgate-type: clean
X-purgate-size: 1624

On 04.05.2026 XX:XX, Jan Beulich wrote:
> As you point out, there are issues with default-disabling. We already
> have the "bootscrub=3D" command line option. Is there a reason this can't
> be used here as well? I.e. is there a strong reason to put in (perhaps
> significant) effort to identify and cover all the corner cases
> associated with default-disabling?
=20
A skilled admin could certainly use bootscrub=3Doff today. But I come at
this from the Qubes OS project, where most users expect the system to
work out of the box. Your average Qubes user won't know how or when to
pass a Xen command line option. Having Xen detect encryption and do the
right thing automatically would substantially benefit the project.
=20
I also forgot to mention in my previous email that there's a broader
opportunity with multi-key encryption (SEV, TME-MK). In this case, Xen
could skip runtime scrubbing as well, since a domain's pages become
unreadable the moment its key is destroyed. That's a separate feature,
but I think it makes the case for Xen understanding and acting on the
encryption capabilities of the platform rather than leaving it to users
to set the right combination of options.
=20
I believe the edge cases actually support the case for automatic
configuration, since any user manually disabling the scrub would need
to reason about kexec without a full hardware reset, suspend/resume
restoring the previous key, and firmware writing to memory before
encryption is activated, at very least. Auto-detection could handle
these transparently rather than leaving them to the user.
=20
Sam



From xen-devel-bounces@lists.xenproject.org Mon May 04 16:25:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 16:25:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300111.1574673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJw6K-00034d-LP; Mon, 04 May 2026 16:24:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300111.1574673; Mon, 04 May 2026 16:24:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJw6K-00034W-Io; Mon, 04 May 2026 16:24:56 +0000
Received: by outflank-mailman (input) for mailman id 1300111;
 Mon, 04 May 2026 16:24:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wJw6J-00034Q-7L
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 16:24:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJw6I-00Gqov-Fy
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 18:24:54 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69f8c84f-e002-0a2a0a5209dd-0a2a4502ab22-14
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 18:24:54 +0200
Received: from [40.107.209.63]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69f8c854-af86-0a2a45020019-286bd13f2e23-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 18:24:54 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA2PR03MB5690.namprd03.prod.outlook.com (2603:10b6:806:110::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Mon, 4 May
 2026 16:24:50 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9870.023; Mon, 4 May 2026
 16:24:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BEY6pk+Ogd7jOuRPatvJSwnlkJU9pyXQmTKy15xMPwMoqo37ZItbNm19fFGPmuTfqRyqfp5YdRn9K2MQBYpRHKL6p58oOK7q8TuaGtMeHO+WCzhqWtwWKOwikQuRA+N0M4fUc3QkrcFuINwRZ3r3cz2w1M498TyPvmvpoXtDuwooZgXS+3BHAEquQGfo00dQOOvZm4PU1ClXaN6vzjP4VHNtt1pL4ucQluTh3fEPr/onxyOE5ZmPR69lartNaeEOVXs57jo+8vCkcrozPvRYwhZFDoCYoV9rC3isC7eKIFSpUr0nanT7dckiNvUpOJssHRYiCnsW68wthz/ZQc/DGg==
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=mSuJ8mTX7X0XYzNa7VFBmyxs+az8RPbafPdBCOBSDNc=;
 b=EftqP0RzwrsycLjm5UJnk4/8f8rFMyaN8M4Q4R2jPskd0rJq6sKTGgyB/aCjQIA8ujZtU5aNdgMWx0GBVA22D61fgnQCoVnyoqIZD7Ws5cZQ5M7b9jj1zgQUNyI9O4nEu5FDZA6x8zK01ijbw5h7ucF0hsCVfTlOnO+1S8XJyQZlkH1/wxAJgG5dFw3jUzIWyOVaBRcU2J7co7YpSB5urUvbtdVzPjW0oj7xnHhpTFj/M0pyq4K2a3plLZRgu7+KHu9Eip5HAJlfNcyL6ujXhVPHKTF8yJbbTsqh+OvF21gwWPbXu4++JwImezyHlm0YJSpMslwUsmpwHiTxw2RyRQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mSuJ8mTX7X0XYzNa7VFBmyxs+az8RPbafPdBCOBSDNc=;
 b=S3M6paIj8Kivj7Oz+5O4QtYj2BwhGeFdZr3rOYCLVtMzCti+//xbtiOZqkWTmC4IxrjKONfSSp9XfYgC+UoEgJ6vZCv6mmLwYdxiACUWlofgarR2mQeYd99KzUOVjf8A75+eOZXoucuxbyUyg4p+6eIYuObEmFIErneiHuAtaZs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e1166c38-114f-4d37-bbd9-b4e1a534aaa5@citrix.com>
Date: Mon, 4 May 2026 17:24:47 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] x86/svm: Always sync guest CR2 on VMExit
To: Jan Beulich <jbeulich@suse.com>
References: <20260501213826.1291860-1-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2605011443580.512397@ubuntu-linux-20-04-desktop>
 <981a0dad-dcbb-42c8-a840-6f228eb89be1@citrix.com>
 <53c4fb20-8cb9-440a-b37a-d829ec940e1b@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <53c4fb20-8cb9-440a-b37a-d829ec940e1b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0362.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18e::7) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA2PR03MB5690:EE_
X-MS-Office365-Filtering-Correlation-Id: e5c63716-895a-446c-0ac2-08dea9f9aa86
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	c4zOpc/bkcnwHnPBK20wa8nsjtftP2sWobtxj8lQUTOXT5Qg8kW/aTW+XD1eP4ErhI/sqnCPvhCMJpVfP2d7EMNoxC0U0ZL8DFbNJymJ9DTgrECLhHfwlPgltcjSWCs3msq6w/FsxW2qDSPKVm2udDGb1a7ncWlsvq1drUsVmV6IqBiMtGUEQpNf9DMFh5Qh413a+djKdAapyok/VTb36OpxWn9iLo5QjOSG67P2xfjFnrHn8ARXJMP5XYlr95zRnc84Gj8hKOvpGWIhiu8rau1BQLXefl6yZCRRn2ZEE401NRZdrNb9jKqeqhQ+HdD9t/NeCIPXu0YHICwN2DCdntwPSqkDmJJbdax+iYg07FW0gi8fQoviuVY8bTZ5MQ+Agvebxtn1dHXS08e/zAXzBsZA9skIz4ddWcTqjR+JXmY5J1Q+Y6B/eNaIIjGIzprKUToV2+i5ynwaX/qoT9fle8X8Lxhf7e9FGRliLIR1JOeKWuoMo54yHOiMKeJix4j4rGYX02fgD2PIz0e44cKuN+BscQ0bQH+qIEdDrZ/OYdPpUDGpOr5gIw7wKmte25wOOB9Z93YeK0wE1n7x6TLbk6qfcFuRXzYszxHYRKg01YIkIlAO13fzoYk0LIxS/7w+/c+QGCqKnhUVpuHf6SfS8GJQlU5OZyXodiOqnFwwQ1Ek7800CnTyfG24LQI2yVEA
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WXhRNy9zeXJVWU12bCtwUy9iVHRTVXN2RlNYN1ZvUU94SFFaNHgrdllJN09X?=
 =?utf-8?B?SUxLVUNaclVXdy91SXJVajdma3JiNkNwaldPVGZJSjBuaGNSZnJ4Ym5ZNVIz?=
 =?utf-8?B?VTVLRHIzeFM1aDNWL0ZEdkFnWHhOanNoK282L1VtWnRBaFJoNzVIZStaUzhD?=
 =?utf-8?B?dVZ1MHJBL0p4aDAzNlJwdkFidDNpNC9iL0ZSVWJ2SUtLYnFtOGdhWHRoT0FV?=
 =?utf-8?B?SG9kb3hOeEJKRkwydWlkZFQ1SmU5YWZBK2xNR281WmR0TmE4Tit1YkJMbG9I?=
 =?utf-8?B?cU5tOFg0ekRIN2ZwdG1XbVVFL2ZpRUYyaENUVTVjeGFsR1U2YkFQaUJzMm1N?=
 =?utf-8?B?a0orOExDUi9CendLdkhySzVMb2tpVjJoWEJlbFlHWTlpQ2lQdkt4dHA4alpJ?=
 =?utf-8?B?eiszUFNtTkcwMzZlUGp0S3ViVExaSkxJYmI1eE1LZ2phMjVDNHJFYkc2YTNh?=
 =?utf-8?B?M3grc2xzcGtETXp6eW93QVNma0lWVndZRWFiVTF5b1BkSFRXQTlRYVRpU1dw?=
 =?utf-8?B?U05Ld3Izei9CSjN2N3c1T0M5VE0xN2QwL1FqYmNIaTRWM1pFSm8rdDBYWGJK?=
 =?utf-8?B?TEEvNGxlWVlubkdkYW12KzBuYm9Qc0NZQndLSVBuMzRFWnRzNjIzekhueGtR?=
 =?utf-8?B?N0pkem8zTklqb3o4Vm5KZmtmL3NGYjQ1RVd2ZTdQMUtmUVhNNXlvWEdoNnA5?=
 =?utf-8?B?bVA0SS9MRDQwWVl0RHNuZ1U3VHRuQk5kZS8zRnFkVHRmQWNNN3lVQTl6ejFp?=
 =?utf-8?B?bWdNQTljN1ZkK0lyUG5ycmg0S25WYUhHNkVXY1RWWEV0RlNManJGclRLTmRJ?=
 =?utf-8?B?Z3ZmWSs5aDZCWUpldGNWTFIrd0NxY2dzMjFUZ0hIUzZHSlB4MXJBUXBJL0Jn?=
 =?utf-8?B?QlkwMmsxMk9mRXZvVXZUZjV5TERKZHAvYS9tK1hYaWlBN0EzbjNLRjdDZGZm?=
 =?utf-8?B?aUo0SW9rUlFjQnoyWTZaY1BuMmRndHphc2hFN3Ixb2dIME90UkJ0QUtiUE5Z?=
 =?utf-8?B?dWtIcGgrNG4wN0cwRDc2b2h2TFdCRjVKendxUzU5VldIMmF5MmZtbXRZRU1N?=
 =?utf-8?B?S3RJRFpSV0VabHdMR0lrQlVSdnB3MlhnVnd0V0ZiNHM0VldaaWJhcldCaWNW?=
 =?utf-8?B?aVpCZkJTdUF5ME1IV25Jbkk0bXZzWXNGVFg4NkZOOGsxaEhrUTIwS2tBRWFa?=
 =?utf-8?B?ZUtZWEs1Wnk2emJpUXkxZzZzWnlCZ1F5QS84Rk4zWjk2MG5OLzd6OHJ1aU9F?=
 =?utf-8?B?K1dLalpIMVRWY0NjRzYraVJ2Qm14bjZtK210a3o5OXl4eEVHRlM1ckdBUS9a?=
 =?utf-8?B?NVNzSktZWnhvM1lPZXFvVDdNQ084bVN2U1l2T2tOSVNjQ3hNVkVkdGZNL2Jl?=
 =?utf-8?B?NUdZVTlIekdRdnZYUzNFYUd6WVlmRkJBaXFuQzlldFRudHQ4M2F0aVBKOHp1?=
 =?utf-8?B?RkpPenVJQnk1SUxJTlV0YUFESnQxS0JGSkxkUkRaczhHRTBielkwektRYU1Z?=
 =?utf-8?B?VUFmVGxHaE4rRnFsMDBVQTBteWN4dnpnSXg5OFF3TzJ6c3dJYVFIRW9QOXpZ?=
 =?utf-8?B?UmFyR2MrOU16VkVaTGg5dHVGTnJvSWc0RnRkSS9lQjlNaS93Qm1SOE1qejNh?=
 =?utf-8?B?K2R5NnlLeGlzRGZmcXFmaFg5QXJPOEhrVHNKUVhuTm1oTXJER0pUMFlqT0tz?=
 =?utf-8?B?dWxMc2hXYTZGemVKdmx0Sk4zTnhKZVM5M20yU1JIQVVJYjFJTzR6aDc5WG9W?=
 =?utf-8?B?Y1ExOTlBbzN2emRIUG9SSCtxeGdFZ0hkcDg0OFZHTVdkSVBSd0JBMUlUK2Rp?=
 =?utf-8?B?aXFQWURYRUFGdUtGVmdUV2xmZVFtWnduejJpTk02VkNJa3hBM3dhZFBEKytY?=
 =?utf-8?B?MklLa1VLWVlvQjdlcTV5QVdGRzIyTDF6ZElzTG95UDcxaldRQ2RLYm8rRFlW?=
 =?utf-8?B?WWtvSGhBQzN6U2RWSzMvSElacUE1TjgyOUtOVHlZUFBhU2xPRXlhcVJuWnRt?=
 =?utf-8?B?UXpJeUV1dkF0R21OVXBNRk9MRXNoMjdaRVRWeE5EVUlaL0N0NlZZYlBLeFZ3?=
 =?utf-8?B?NXQ1dS9RdXpIRUJSb2pLYjIxSDJDM1ErYzdXMjVqd3ZuYk9qSkNPMEFISjJT?=
 =?utf-8?B?bStveGd1WUdqZkw1ZGo2Rnp2VEJSWllQaVh4SXE1a2V6emJvc0tlZU1rR3lL?=
 =?utf-8?B?bnFoOE9IaW1waWxDc00zN0V6R2pPR0c0cllIRGlVenZ2MlRBM1R1aXBaankr?=
 =?utf-8?B?VGJBVGpmY0JvaWVyWlM5SnB6aktqWFZMSUZBUElQOUJhTEFaY0hRMFlSL2pO?=
 =?utf-8?B?dDVCTnpNRytpaVpraE9OUFZHMTFpVHIrMjdCci9MUFEvd3NTaUFuRlhDeFly?=
 =?utf-8?Q?HlxMBiCUHa9lnsvQ=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e5c63716-895a-446c-0ac2-08dea9f9aa86
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2026 16:24:50.7919
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DJbZUPJK110Ndzp8VvMKN8Gw2w0Skm30WNYd3Z3ZFlXLL4qMESGkSggnRodXcSfETVKB0s6KTeBwwmbWSHFaclDrN+fmjmycrnUEBrdtvZo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5690
X-purgate-ID: tlsNG-720697/1777911894-89AC2161-AB56BB12/0/0
X-purgate-type: clean
X-purgate-size: 2279

On 04/05/2026 6:14 am, Jan Beulich wrote:
> On 02.05.2026 00:21, Andrew Cooper wrote:
>> On 01/05/2026 10:44 pm, Stefano Stabellini wrote:
>>> On Fri, 1 May 2026, Andrew Cooper wrote:
>>>> Under SVM, there are two copies of guest CR2.  One is v->arch.hvm.guest_cr[2]
>>>> and one is in the VMCB.
>>>>
>>>> Xen doesn't intercept CR2 accesses, so this mostly goes unnoticed; hardware
>>>> loads and saves the guest CR2 across VMRUN/VMExit.
>>>>
>>>> For HAP guests (where #PF is not intercepted, and therefore we don't typically
>>>> inject #PF either), this causes the guest CR2 value to be lost on migrate.  As
>>>> migration is cooperative and not done from the #PF handler, this also goes
>>>> unoticed by guests.
>>>>
>>>> It also means that an emulated MOV-from-CR2 reads a stale value.
>>>>
>>>> Reported-by: Stefano Stabellini <sstabellini@kernel.org>
>>>> Fixes: d1bd157fbc9b ("Big merge the HVM full-virtualisation abstractions.")
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Tested-by: Stefano Stabellini <sstabellini@kernel.org>
>> Thanks, sadly I made the mistake of extending my XTF PoC for this.
>>
>> There are also bugs on the emulated MOV-to-CR2 side, and they're far
>> harder to untangle.
> Any slightly closer details as to what?

hvmemul_write_cr() updates guest_cr[2] but doesn't sync it into the
VMCB.  This doesn't show up on Intel because CR2 is switched explicitly
in RAX across VMEntry/exit.

But, it's not the only problem path.

svm_vmexit_do_cr_access() is the fasthpath exit for CR intercepts when
decode assists are available.  hvm_mov_to_cr() and hvm_mov_from_cr() are
asymmetric in their handling of CR2.  mov_from will read from
guest_cr[2] but mov_to will domain crash.

However, case 2 ought to be unreachable in hvm_mov_from_cr() because of
how we program the intercepts, yet the QEMU bug which caused this to get
noticed will trigger an ASSERT() if I were to put one in.

So, do I fix up both to account for the fact we know QEMU is buggy with
intercepts?

>
>> This patch probably wants to go in in this form, accepting that there
>> are issues still to be addressed on the other side.
> I agree:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon May 04 16:42:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 16:42:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300119.1574682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJwNM-00062a-2D; Mon, 04 May 2026 16:42:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300119.1574682; Mon, 04 May 2026 16:42:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJwNL-00062T-VN; Mon, 04 May 2026 16:42:31 +0000
Received: by outflank-mailman (input) for mailman id 1300119;
 Mon, 04 May 2026 16:42:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wJwNK-00062N-9Z
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 16:42:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJwNJ-0023XA-4y
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 18:42:29 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69f8cc61-2eae-0a2a0a5409dd-0a2a4508c992-24
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 18:42:29 +0200
Received: from [40.107.200.65]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69f8cc73-63b5-0a2a45080019-286bc841a6da-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 18:42:28 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB5797.namprd03.prod.outlook.com (2603:10b6:510:30::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Mon, 4 May
 2026 16:42:25 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9870.023; Mon, 4 May 2026
 16:42:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mWCKeEfQmUSHcYtr2SN1djiSgQI+Vct7Hi8XfqaChJdP8OvjWq5FZNF7gASqWcl3xvpLw/SMBAhSdlqndm6vdUych7eOs5E4c+tm64cGsoF9vRNFNuGe0pAkjIBrIn9j40YY/Y85eSrDUCQJ6viIe7MLDKLL8zdp0pOQRGbMPIbsqEgnu2xXSDsKtzqp9ljkLCcT4hBbbvOnopSln1HvilvaHElzzFjEItuhrihvwrzXDyJy/ltL5Okdha1X6AgdHeODdXozqu2IlTPCpqZD8+mR3NrzTIhCi8JQrXlx1TLB8QY4fdyvDkkZzjimxbAG6Rq4TK/SCCKcO72gDuq1vg==
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=9WuQocakr2qTmXhVi+giYnmPFsuHTelL70lvLF6h/CI=;
 b=wPniXDFb+Jv9dJXfvK3F5fIsGxGs6S/mb8FK55Ao45A7X8I4HNdKVzkFLwpDOHzSC+GxQv6gLahHV8sSZVf9LaLn6ckrbSvqhGlHkq7kienkg+hFoshMQUOuLWAH27vf8T6iUBTx36ft6giOR7rp7a6FVJL8TBXOsrqD7xVTY4DGqZnyrY8+2sP/T1jxq37XOy85xEpLNiXa++AA2PBc3JvXODGGm8IsN/kwsuAeLj6Y5TjCIUXdBdjtLVMp6yyaO80CJHdx847ripYIPvec6UgNC5wsH8LK/Ywm/LNtApKDNAdT4sPeDmcfwJnJVLdPqj9sLqLSSDZJ1WnuUg/zDw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9WuQocakr2qTmXhVi+giYnmPFsuHTelL70lvLF6h/CI=;
 b=lKnX6WWcRDkSi2QnhIrUYp9xgXma5MgYhisdoSkOlokHLBis2T+pR3safWgM/AlPfz6BpryPqF8V+MX8zoIKTLuqR7wnuPnH7eoQ0so+IKwVd1w9jDK3pUewLd5nrkfNNR++G1LZRENXXkvPbgX62WjVYPvKgEJs/RqphkOxfpc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b94777e1-4f4e-4468-8320-ed622cde0bf1@citrix.com>
Date: Mon, 4 May 2026 17:42:21 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [RFC] Skip boot memory scrub on platforms with full-memory
 encryption
To: "Samuel.Montgomery61" <Samuel.Montgomery61@protonmail.com>,
 Jan Beulich <jbeulich@suse.com>
References: <xJXmemuuJ0kqnGWQ9PWwfFn8_KZVhYSbsAyHFGvDeiqpxUK1Q-ar7Lab7ttRPx-tcEHduS26pU9BkIifbhznT1Qc06vyHfovl1-IXC0cWUU=@protonmail.com>
 <8c619af2-0dbd-468f-aa17-c1224d315304@suse.com>
 <v8BgcMuI474dKhLADWT2nMnQYi_m5b1mw7vAZIbRv2ffDY0bh2h_d9Qst_Q-4HUT3DOyYk8WHVpyih_2wlIgvVkbYoLsHY5_jYUPgQnkC1g=@protonmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <v8BgcMuI474dKhLADWT2nMnQYi_m5b1mw7vAZIbRv2ffDY0bh2h_d9Qst_Q-4HUT3DOyYk8WHVpyih_2wlIgvVkbYoLsHY5_jYUPgQnkC1g=@protonmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0290.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:370::8) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB5797:EE_
X-MS-Office365-Filtering-Correlation-Id: 465aac89-5678-45ef-8429-08dea9fc1f2c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	wfV2jqHPvWGPlqcq+J/i8RB/ZqrAh6+JBfQruJSrEDCbvHse2+1uvqiVQ+UxGbTvb8DudD6k9hrFCe52I8Kikjbr9WVahebb2b3MbxmIroMrLm+mruCzx1AMMjusl7lgi+Qmlb/ILoNZVJsj9syAiPkjAu9vOtEz8wYg7eKrB3uBf0IEOlDon76xOa7yKLaB6HBoe8jJxAniK7Wv5niZWHkcIEcj0U7GrvYb0oFiVcHIKAaPnvwYnbU+T5ogh4PtH334kVZjbn/FxgsfGtNIfB+D0XIbRH1TiRl37YkSAJ1rs2EjBKgao/qhd/Sexg67m9r3mUBYliFBxKEIzAG0tt9/uT1um4WteYj2jU44lA4AZi5pvlHm0n5WPBGVYKYix2V0Bu1+ozJGKYfCknxGeLRsViaprblb/DLirXaWouOI3oa2PJWcBjOZ3f2YM8eDyPE4+AMqbPvJ2AkW4/kBv3/OWIHFScxv80l/daORJeyzWg8+FgMR3rbfSZ+VHWEilhRZC1fhNGfduLz+LWJVm8Ek2Q4yxGu+71rsic02jYGMvW38JTx05spzQCwA2LVP2fMmrNy43zD+Tn9JWP6du4NG9j7iMhuubU/p8EJ6u5dKD1vNAEpShsw7hGv4NoDCwc7bXf78JgNHZnUAa/Xd1Yh9y7SgNDk/EqnYEZ1g0bnUyUzXOyL5rPJMvDm7tZpi
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Ym9UL0NWK0g0eUNKMzVQaS9mVStHeXJoWktPTDQzM3A3bVdLREJyZkhKK29E?=
 =?utf-8?B?elpnZTNUMFk5VWpFOUxYRnFtRnREcG9yUzJaUDlhTlFZME01QlpWREJQbllm?=
 =?utf-8?B?R1dwRlIvYVMxTDZpV1BuTnBacENZRHk1NGlaemFIV1p1RS94SEpOSHlJbDhB?=
 =?utf-8?B?QVBUdWg5T3kwNURjR0ZQYm04Nk45dzNrbGhrSnJnWEZEaGxtRVFqenBQZTFW?=
 =?utf-8?B?c0J6UEQ2b1g5OWtBS2NQQi93VkZQUVJjZUd6bGdrOW5yaFFITndsNmVKbDBD?=
 =?utf-8?B?ZG1aS0h1c3JmckozUDh4MlpVU3lCdVRQUi9xVG9pNWgzcUJqZnZhR2JZNksz?=
 =?utf-8?B?a3BFclNmT0RQL3QxRE5FbjBzNU00NWovMWpJdUhVMjRwTnQzWVpCUDByRnJ4?=
 =?utf-8?B?S1VwVjcyMFBVOEx2VExNVGR5NnkwcGxZRjJWdERIR0ZSV0JVWTMzOTJZekMy?=
 =?utf-8?B?SWRKQU94bGJ6NW1QYWRxVEd0SGNSa0pzZlZUYkdpWCt0U1FYWE9uQy84eUhi?=
 =?utf-8?B?L2RVVnBaekNEL21ic3pIRVh0OVhUTDhnYUhFVTFYQ0NURGxsQklPSXdtbE1i?=
 =?utf-8?B?RmlhUktwNTAvdEIyYnhtVlRkM2N2TnRXemU3MmZsMnQ1YjN2V05wM3hrWFFu?=
 =?utf-8?B?d2dnalg3MUtzN1QxR01PbUVVcHBGNCt4U0dudXluS1UzZ3k1NFE5ZzBjS2Vt?=
 =?utf-8?B?dW12eVEzQmQreTBzS2Q5UkhOTVRKL2NUUW02UjVvUWxxRVNYVk40WCtGUmo3?=
 =?utf-8?B?SE9DZTd0dGpnRGovR25BN2M3eFhkYVZhZ0lkc29IZ0NXTmZYVkJqMUJNRVdw?=
 =?utf-8?B?WHVKdEpPRkR3SThzWTdOQy9PWEJDZVVOUUE4Qmx6NHAxQk02bDh0cWZrTWxn?=
 =?utf-8?B?NURSakh4MUhqU1FnVjd0QzIyeC96S0o2TkovNU0yQmJNaVQyVnZiZFFoRjhB?=
 =?utf-8?B?TEpES1pDSEJIckdvbSt1NjJhbnpIcngvNllPZzQ4cGI1c2ExU05iajQ1V1dq?=
 =?utf-8?B?VURsb1Y2WWh2cUhuNnV0Yi8rTmdUVHdUOXV5V3QxNnRRUGtEN3FzZHRSQTBp?=
 =?utf-8?B?ZWFGVk5UVkM5dkQ1YU9rbm9JM0NPb0RTenRUbllaOHU0cmhiMnZWOGRzTFZE?=
 =?utf-8?B?elY4dzc0ZGsxdTlhTEUzTjN1TDdzSDdDRDBac0pjbndZT3h4OTFiN2RJUjNI?=
 =?utf-8?B?R29RRlc1Uldob016dkNSeVA5WlR4QnJJTFZTbW9xZDdTQlVXL0NaekFpc1hD?=
 =?utf-8?B?ZzJIUE5YZXBFRUJ2bzlsdmM5b2tqL3hnaklqcUZVbWFKdlJiMDM1dDEzcVZm?=
 =?utf-8?B?Y3Nra0lnZ2k3N2FUOWhFL3c1RVROZ0JWcHFST3BPZG94dVlBdlpWeXNKbHd2?=
 =?utf-8?B?RThyNDRpeGd2TEhoWXZYcVBXWnhLUHJvWVMzNDd1b242U2lCSWRDRTRFWTgy?=
 =?utf-8?B?cUJYUHI2L3FPb2VnNjgyYVhQYVFsQ0hJK1ZhRmcxRDNNQlRmSCt1RXM2cEpW?=
 =?utf-8?B?aVhXRXJzTlYwN3Z1cWMvVFlGL2RSTGt0YndYQWZaWXdsSERNUWgyLytJQ3A2?=
 =?utf-8?B?cnlOTEpVaDJtSGVWZ25PWkxod0p0QkpIS3ZXMVRIY3lybW13Y2ZsVUIyNVB1?=
 =?utf-8?B?YUdLbUJCRmpVV0d1RDNvUmRyTU9OUTF0Tk9MR1lHVG1Tb2VoeXNSK0x0YkVz?=
 =?utf-8?B?YVNFa3RRanJObnJvR2pnRDF4TFJCODlCU3U4aENTOUJOYlFtbHhUTGFEV2tu?=
 =?utf-8?B?OGZHUW0zTm1MVnN2TU1MeG9LQkRjU0VWWk1aWS9mT1dGSUt1Qk5zeks0REZ2?=
 =?utf-8?B?Y2JDQzV2Rm5YQzY0N0ZpSWdiN0wrTUdTRDUxQURxbWZGbzRFVDdSNUtQaXdG?=
 =?utf-8?B?NHZqNDdLci91VE5oVlZGaHpYY240eGFwOE5Qc0RsZmZweGt2ZFhJZnBIUEg5?=
 =?utf-8?B?bXlGcUtrdnp0NkI0VWJ4N0RnTTMvTmo5TmRQaXR6ZS9mRWNqbERFVXI3bTJJ?=
 =?utf-8?B?NzJVcTBNOVRoWmw0OGdFUFF4dWZYSWNhTnBNS2dyUlJIMTZFSmMyZFBpRjQ4?=
 =?utf-8?B?WEZPV2NtdFlRaHBrdDN3MGVUV2IreU5mWndXS0psdERib3J1NkVDMkxMN2p0?=
 =?utf-8?B?Nlh4NmppNzZkdFlGYTAyNnF6OExuV1J1dWU3b2JrNU9QdkhzbEhTR2Y2QnVZ?=
 =?utf-8?B?ZDJxN2YvaTk2d2p0N20yQ3JqeFJoais1Z2hLYUJUeVQydU15aU9LK0tzcHlk?=
 =?utf-8?B?OU9OcDZZMGJZT00rejVuWUF2VktpV1NqQUM2RjNiSTQ2MlBvWVhvTk8yUmo0?=
 =?utf-8?B?VDhZeG1qTVFacm9za2NIT01oNnNRTkhwSkZVbUxoclVXbDYvbG9XR1c2LzU2?=
 =?utf-8?Q?43hD7x3XnYpwMODg=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 465aac89-5678-45ef-8429-08dea9fc1f2c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2026 16:42:25.4808
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: G4/wZWWtwtSNAwm2W8s+q9Ku9a7MA0JOvA1+pQRNVaZu6UulaUOyJ80i/ERoV5sGOPZp/zcMHS9DSWiRB72Mm+RxRvWgQ+QFmDIoObAOMQU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5797
X-purgate-ID: tlsNG-c1860d/1777912949-C1B6CDB1-5107D739/0/0
X-purgate-type: clean
X-purgate-size: 2796

On 04/05/2026 5:18 pm, Samuel.Montgomery61 wrote:
> On 04.05.2026 XX:XX, Jan Beulich wrote:
>> As you point out, there are issues with default-disabling. We already
>> have the "bootscrub=" command line option. Is there a reason this can't
>> be used here as well? I.e. is there a strong reason to put in (perhaps
>> significant) effort to identify and cover all the corner cases
>> associated with default-disabling?
>  
> A skilled admin could certainly use bootscrub=off today. But I come at
> this from the Qubes OS project, where most users expect the system to
> work out of the box. Your average Qubes user won't know how or when to
> pass a Xen command line option. Having Xen detect encryption and do the
> right thing automatically would substantially benefit the project.
>  
> I also forgot to mention in my previous email that there's a broader
> opportunity with multi-key encryption (SEV, TME-MK). In this case, Xen
> could skip runtime scrubbing as well, since a domain's pages become
> unreadable the moment its key is destroyed. That's a separate feature,
> but I think it makes the case for Xen understanding and acting on the
> encryption capabilities of the platform rather than leaving it to users
> to set the right combination of options.
>  
> I believe the edge cases actually support the case for automatic
> configuration, since any user manually disabling the scrub would need
> to reason about kexec without a full hardware reset, suspend/resume
> restoring the previous key, and firmware writing to memory before
> encryption is activated, at very least. Auto-detection could handle
> these transparently rather than leaving them to the user.

What exists in Xen right now is a mess.

Scrubbing is ill-defined.  One part of it says "make sure after a crash
we don't have old guest data around in memory", and encryption is
specifically irrelevant for this case; the ephemeral key doesn't change
on warm reset.

Something relevant to QubeOS is that for DRTM (Anti Evil Maid), it is
required (by the TXT spec at least) that Xen scrub memory between
receiving a shutdown request and actioning it.  Failure to do so causes
firmware to zero everything on the way back up.  Fixing this is an open
TODO.

Another aspect is to populate Xen's free memory pool with ready-to-go
memory.  Here we have a weird split, because when scrubbing in Xen's
idle loop as introduced, the boot time scrub was not disabled.  Except
that doing this in the idle loop during boot is bad because it
interferes with microcode loading during AP boot, which is why it's
delayed until the machine is mostly up.

There probably is room to tweak a little, but "RAM being encrypted" has
no baring on the other safety justifications.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon May 04 18:50:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 18:50:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300138.1574691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJyN3-0005Cn-4g; Mon, 04 May 2026 18:50:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300138.1574691; Mon, 04 May 2026 18:50:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJyN3-0005Cf-15; Mon, 04 May 2026 18:50:21 +0000
Received: by outflank-mailman (input) for mailman id 1300138;
 Mon, 04 May 2026 18:50:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wJyN1-0005CZ-Tc
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 18:50:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJyN1-006xFx-2A
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 20:50:19 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f8ea62-2eae-0a2a0a5409dd-0a2a4508841a-14
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 20:50:18 +0200
Received: from [40.107.200.1]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f8ea69-63b5-0a2a45080019-286bc801c69d-4
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 20:50:18 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB5648.namprd03.prod.outlook.com (2603:10b6:a03:288::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Mon, 4 May
 2026 18:50:14 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9870.023; Mon, 4 May 2026
 18:50:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NF/+zWGuhdgTrreeA22LxP2eRmiwTeKShxIWZVUpJe/byKB6mNoENU8vMp4BAGNYHRkEIKYE5ryRyKRJqMMMM5Y8VpD4GQQBFdVQttR01olkGBfS1i9cn+ILl1i2uhoyffjxk+c+IzGlUyLgvJUji2cTsXtmffCUHpW+zzxXB0A+iK8NLR+dgRqQmJmrZAjPcudi2QGAkc/7WxpqggxdgVmdH0EDJrbeyBfy7T9s+QiB1TeUw8jxh+3SV3JiIj+wdk5f/Shq2qQC9K0S8PFTO8UeHsGx5sTWkKhNyFA1VUjQK8oVHB0ktqjmjw56ZPH1UaswqF8mmw4sqsF0d/nYNw==
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=wK2J98RAAZ1rAXqXA9NJ92KQw9R8ghhK/EqTrN5XSiA=;
 b=xjI1mhdUFbS9HJvDR518fI+C1QTVf0d0s0yBajqWQy/+lFkQCvJQX1g86alB2PQ1837CQDagT27wK3vva6wiOFOcPwResVlNm/jnKLzrJDgyBS92PYwVGTJaKK12+MlW4wCdWnhqznwoF739kyHIZ8jeFYh00JmhALytzwYdPZ24kjXnQJOgM55UDP2AaAA465RHbMOcp2YHTWolDsG4038cCtCsLfrHKKA72BzNlSTz3KEk2+d5EaaZQOFXNvusYI9z75OYRIT5kovIM9iJz/oD6RTEn3oD8e6P1nw1E3p+6KUCbZMC4zqsVut2l/o0yBl0jbo7nBSLaM4cMl9Hjg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wK2J98RAAZ1rAXqXA9NJ92KQw9R8ghhK/EqTrN5XSiA=;
 b=rXfI3nDWs9FFJzsz9EbfpQhUYS3iKf6AxVtVodRbWCppQuXGykHQx2/pWSbc4ZIGqTeW03X0j5l8Liu6Nzv0tP/HUNud4+kkaoEsZQJ5Up2l16lTYiK3xSZ3A6XXmCCX5sbALoT4KrVpFKYBBPxFaZ9HBD5grqcu1AP/lS1VbhU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 4 May 2026 20:50:10 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bertrand Marquis <bertrand.marquis@arm.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] automation/gitlab: introduce macOS build jobs
Message-ID: <afjqYhnrTt5PAqvg@macbook.local>
References: <20260423190459.93299-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260423190459.93299-1-roger.pau@citrix.com>
X-ClientProxiedBy: MR2P264CA0168.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:1::31) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB5648:EE_
X-MS-Office365-Filtering-Correlation-Id: 7e0bec7d-62e5-4687-7815-08deaa0dfa38
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	D2K1DYlZBPLQAoZeHm7dfesdxM2JRIrzS6TDDu7Ko70BJ+BhP8EjCOOkAfFjLz9/r5JLbyYfdfmZd7T2VPpzuWTn/vvZm5FfDykGajUTXuMKtgbLe3yNZeAKi3J1EV+KZkhT8AVCUlURoBdVSraO/WIfbJ3pQT336UQAGOtBBtb/JZE14hmKoQiRP1B17E+89DsRdtee2B6q9pNEiShuasKgQ3VFTgVUbeI6+46nXmA4VmzXwhAxIX+UnhjaHyKweqe0fNb+Nmbmo9q3/ub6wxPOCAgL8P7r/hQo/N+8Vpro08S2lPIjJCotpkji3VbymFZioEImO5I1/D/y/+sEAI9A/0a2RVaAt5CDSHpqn4vzsuAcmP3ACIM9/gKQ/faYQ4zMml8ZceVqCbhlUuRuV3Q1JwH8C6vHOi4h8qZt2MA1BVDVjsRZWNQBSBdoNJQULU82fCmHSRgJC8ur0YxLzTH/eEjorfKlsDyJBFeSLby/Ge3JItD5UeNKJTBhTzeuKuRrC5zAX0vMXEZny8Gfq9s59/RWfWbMbh0tkLYNw0dsgevCBS5HgMHX34lCRK3/AP/tpyDkI94Yq/krFvikqbuHsWYw2+XCM98T2aF17HwxyZPQ2ERuJ3GKbA24n/m9geZi58XVqAye2NtjhyCC3rGWQ08AUeDy3GEGBc+NTU+rtJJZ4a6iQwTl4RkCDLqPjlciSfUx5EtRhXlaQ0uibA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bnJDVFFFV3BjRlJUeHlyZENmMWdQVHB3Q1BPSitXSnQvTE83VnpFQ2tFM0ZX?=
 =?utf-8?B?MVNnMjlXa3ZKbzZvcFBjNDVxYXBNSjgzZkRleDUzOGhvTzYvbDgva080Qkhy?=
 =?utf-8?B?Q3Q4TEJYRWpqN3ZtSjdrNjRXK2szMFF6citXUXFsT3gzS2JsVlNpYWNFOTVn?=
 =?utf-8?B?aEd1UDdrVk5Yb1g0NGttbVNNNHJrUDRmT1ZHYmdwYXpVWkdmZ3ZFdFlNcnRh?=
 =?utf-8?B?WGl2VVBNT0ZPQlNEWUQwNFdPSUNUWWZyVWZPVnZ4cEF5VXFXcEZXZ0poZzR4?=
 =?utf-8?B?RmN6VnRNaDkvSG5FQ2t5L1hlM2xQZm9MbHBTT0hYMk8xUUx2bUdTUHovV0lz?=
 =?utf-8?B?QkFBY1d4dmYzQUlZeW42REo2R1JXYnJDZnpvaHh0eml1Q21ITDJ4YURacXI0?=
 =?utf-8?B?bHljQTlsM2s5NUhWcDNFVGFLYWh4RUg2anVFUVlZOE9vQ3BTQ1VMSkdqN3d5?=
 =?utf-8?B?ZlUvcnVOYk1ieWd4NEFoT3hVUU9LOG1jWngwUCszUjB1WDVSNXYwSXRySnkw?=
 =?utf-8?B?bEhDWU9uRWZZakxwd0hualV3NkR0b0dwUnlqSWk5MWM5bnBiRGFxVCthNmVO?=
 =?utf-8?B?VEFNVk9UcDFLTThYc05nVktmL3RabEowcnF3eERET0NOOTdmUG9RMzFKTTFl?=
 =?utf-8?B?TlF5S3dYQUNleTBaTkRGbnRDQ1c1QUU1a0JuSjhxUlFtSlQ0emFLODcwVGV1?=
 =?utf-8?B?UHlSMjg3eHc2Rjd6NWprQkhZRldwUERyVmFvVUhlQ09xMDNYN1ZkVis4cVAw?=
 =?utf-8?B?eGJHbElqYUJZM0J1UDVlYXJsdkNTekZwZ0dXQ1VhL3lNYU1LUmUwbkRDVm5p?=
 =?utf-8?B?aWhsL2ZTRmJVOXBhZFNqbURoRnV3dUNlaGhlYWdkWEEyMnNLSjdBSXJaak40?=
 =?utf-8?B?WXpYN213VFdZR0xmQXZSQU1DUEU3MXZoMm5seW5raDB4TGN2ckM3bXBWWFVY?=
 =?utf-8?B?b0VIdWJ4UnVXUjFlZENBcnhENlRLK2ZKWlg1MVRUMWZ1bU1aUnpXVmhmSFBj?=
 =?utf-8?B?S21ZM3FRRGtDL0Y5cWhLVDlUNHRiaXNDS3N0ekpqblBJamovTWsrS0FTRU1I?=
 =?utf-8?B?dVd0T3l1YjY5Ykt6N0VYdEh5WUF3ZmZDVTZtc2dGYzVma1o0UStOTngvLzZt?=
 =?utf-8?B?KzdjMXlvNlRVOHRqN084T1JUU3pHVVlrYjhUQ1o4dmFHY0EzNkxybkNQTTdT?=
 =?utf-8?B?WHN1R005QVpoVWVzSEp6SEwvL2ttOVdRWWt2WnBROE1YUi9XcDQ1dzAwZE9v?=
 =?utf-8?B?OGRmTlNBRW9lZnhZSUZibHNqTDRKMjhFaVdJZi9xZVcyRDlYdk1KZ3c5U3M3?=
 =?utf-8?B?TW5odGQ2UmhuVW53NnoxQTNNeHl6Zmx2ckpCQ0pHWlZzUTc1U0NXdDhURjdM?=
 =?utf-8?B?c2tiaUs5SXExK0I0ZkZ5b1Jvd0o4ekF3R0w4emZJUEJtdk5Ick5ZMktQbkh3?=
 =?utf-8?B?YzBoUnVDQmNuNDBwQW8vNnF2YW95VVpCNGdKQ01qS1I5b0xYbUVSOXhGT21O?=
 =?utf-8?B?YXl0MWhhQVRhNTExcjZ6SEhrOGZ5cVFCL1lJVmdOR2I1YmI1Mi91NFVVS2pw?=
 =?utf-8?B?VEpDZGpKYy9pQ2VSLzUrcXRaM3JhY2tGYnVxdFp4NmZBajVndmYxVWxCeFBV?=
 =?utf-8?B?Z09jaVhOWmpDMW9Xb2c5Rnp5NGhMRjVVOWpjWFZ0b2tBeW10U1F4cFhrTVJT?=
 =?utf-8?B?alZOR2Z5L1UxUThEeSt4NjJzTnBQUDV5TGF2SnUzdWJkV0xnYzJrK1ViNXho?=
 =?utf-8?B?UERJNWlGSzdHdjhqT1V4ZXY0aG52Rm44d01oTUFkZk5UaWhuTDg5ZHRKTkcy?=
 =?utf-8?B?bUVnMHozZjNmelhrTDFDcjRJemVxM3Y5bjhacHpOVHNUZUppbUFkUGY1aEtD?=
 =?utf-8?B?T0Fqa2t5UmpvWDljVkZGUlFSUC9paGhLK2NiU0U1RDgvZWJHaS9kZitzL29X?=
 =?utf-8?B?aUJkWFIyQm9VbXRtcTFZU1p0VU5iaTZOd3FxeEFranhmMWQ0UE9Ib0dOT2FC?=
 =?utf-8?B?aFMzRVFWenNwOWNMMVVOZUR0R0VUUTVqeVNVMy95bVpzTGJxUFA0VG9UaVdq?=
 =?utf-8?B?YjdDRlZESUZHMVp4dkUrRzBjWU15ZzZzRkUyeEpRU2xGMXVjSmNQZ01tUENx?=
 =?utf-8?B?UWJoMzYwZThiZ0d3ZDUycUZIekdkUTZoSDEyVElTOUtaaVVSVGR4dmZZTXc5?=
 =?utf-8?B?VXJlK244Mkx3ZFI1c0dKcWxqb2NKazZLeVNqMUk1aktwcXBQbURCUHd3b0M1?=
 =?utf-8?B?N0Y2WGc0ZzJJZk4vYU1JQlRYYlFsRmhMc0djbWN4NFJydm05dE5jK3RFRXdt?=
 =?utf-8?B?OFMydDhWTDBlSjlNYk5QbU5hVTJrd2dRZjhpVWYvaGp4clNBeWpQZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7e0bec7d-62e5-4687-7815-08deaa0dfa38
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2026 18:50:14.5583
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: zyQaQLkWusXqnWASCIXSWaFWFydC3sfaTInUWEdQNRZm5ZVjou3GlRPZ+j4Wfd6QMVtOvU+kwF3JofSV7bEzIg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5648
X-purgate-ID: tlsNG-c1860d/1777920618-C2B74DB1-4B3B6670/0/0
X-purgate-type: clean
X-purgate-size: 710

On Thu, Apr 23, 2026 at 09:04:59PM +0200, Roger Pau Monne wrote:
> With the imminent decommission of CirrusCI we will lose the limited macOS
> build testing done there.  Introduce two Gitlab macOS build jobs that
> reproduce the ones present on CirrusCI.
> 
> According to the "Community programs" Gitlab documentation [0] we get
> 50,000 compute minutes per month.  The arm64 job takes ~1m 15s, and the
> x86_64 one ~2m.  I think it's likely enough given the amount of minutes we
> have available.  We might need to reconsider if we add more tasks that
> consume compute minutes.
> 
> [0] https://docs.gitlab.com/subscriptions/community_programs/#gitlab-for-open-source

Ping?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon May 04 19:51:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 May 2026 19:51:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300152.1574700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJzJy-0004Ok-CY; Mon, 04 May 2026 19:51:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300152.1574700; Mon, 04 May 2026 19:51:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wJzJy-0004Od-9x; Mon, 04 May 2026 19:51:14 +0000
Received: by outflank-mailman (input) for mailman id 1300152;
 Mon, 04 May 2026 19:51:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Samuel.Montgomery61@protonmail.com>)
 id 1wJzJw-0004OX-SP
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 19:51:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wJzJu-00HGra-Np
 for xen-devel@lists.xenproject.org; Mon, 04 May 2026 21:51:10 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Samuel.Montgomery61@protonmail.com>)
 id 69f8f890-bab6-0a2a0a5309dd-0a2a450a8fc8-42
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 21:51:10 +0200
Received: from [79.135.106.103] (helo=mail-106103.protonmail.ch)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Samuel.Montgomery61@protonmail.com>)
 id 69f8f8ae-56b3-0a2a450a0019-4f876a67b98f-3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 21:51:10 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=protonmail3 header.d=protonmail.com header.i="@protonmail.com" header.h="Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
	s=protonmail3; t=1777924268; x=1778183468;
	bh=2cNEIrg6yvrC6l7wVPRLypp8fTO1uZhpKDrUZobMLno=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector;
	b=je26RxX8WUbwpdqO4benbbu3niagzNZxdal6hZUfoNbf2QqxO+it9fe6mLE2LQpeg
	 XEGS00Knl0otLtrx2TpBhMVxr3S88H+EPNzpSoxaL+Hnl8EMMZNeahhFgpcWBmBNAF
	 DkxQsQ/penOwSNE+q7qjYje4DmR4C+hMMdXuY8yDhQtxw1n1wxMhoKChmlPex7MVDE
	 UNQaA4mNSTtyTyT9cGuMMkZyGpkIJcFLrFU4l+vTO8UpTdNs9MwMAf2FdzFqneJBUc
	 zyfaOj7uUTX9jh27/4PcHCvdxpnC92PWkMT7OjxZBP2O+bYGNu7fqc4ClHNGNz90VW
	 IBCPT8JmnzmJA==
Date: Mon, 04 May 2026 19:51:02 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
From: "Samuel.Montgomery61" <Samuel.Montgomery61@protonmail.com>
Cc: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [RFC] Skip boot memory scrub on platforms with full-memory encryption
Message-ID: <ZYwseRBKWS_aeuKq6CUZBrH7n0zXfIMqN-vpOWEc-auwg3TkKHLNmVc02q36wINrsxNFHeKU56TQaiZupVoxJhBitWqcb8v5nae4hi2UWTY=@protonmail.com>
In-Reply-To: <b94777e1-4f4e-4468-8320-ed622cde0bf1@citrix.com>
References: <xJXmemuuJ0kqnGWQ9PWwfFn8_KZVhYSbsAyHFGvDeiqpxUK1Q-ar7Lab7ttRPx-tcEHduS26pU9BkIifbhznT1Qc06vyHfovl1-IXC0cWUU=@protonmail.com> <8c619af2-0dbd-468f-aa17-c1224d315304@suse.com> <v8BgcMuI474dKhLADWT2nMnQYi_m5b1mw7vAZIbRv2ffDY0bh2h_d9Qst_Q-4HUT3DOyYk8WHVpyih_2wlIgvVkbYoLsHY5_jYUPgQnkC1g=@protonmail.com> <b94777e1-4f4e-4468-8320-ed622cde0bf1@citrix.com>
Feedback-ID: 16446063:user:proton
X-Pm-Message-ID: 75318f11224ff374b7543e77aabf6c69a2df8c65
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-4011c0/1777924270-4757C8B7-531F4C19/0/0
X-purgate-type: clean
X-purgate-size: 1220

On XX.05.2026 XX:XX, Andrew Cooper wrote:
> One part of it says "make sure after a crash
> we don't have old guest data around in memory", and encryption is
> specifically irrelevant for this case; the ephemeral key doesn't change
> on warm reset.
=20
Could you clarify this? My understanding is that firmware re-runs on a
warm reset and re-initializes TME with a new key. The key would only
persist across kexec, where the CPU is never reset and firmware doesn't
re-run. Am I wrong about that?
=20
> Something relevant to QubeOS is that for DRTM (Anti Evil Maid), it is
> required (by the TXT spec at least) that Xen scrub memory between
> receiving a shutdown request and actioning it.
=20
Agreed, but that's shutdown scrubbing, not boot scrubbing. A separate
problem.
=20
> Another aspect is to populate Xen's free memory pool with ready-to-go
> memory.
=20
I don't think "ready-to-go" requires zeroed pages. bootscrub=3Doff
already hands out unscrubbed pages, and the debug build specifically
poisons pages with a non-zero pattern to catch code that relies on
them being zeroed. So the functional requirement is that pages are
safe to hand out, which encryption satisfies, right?
=20
Sam


From xen-devel-bounces@lists.xenproject.org Tue May 05 05:48:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 05:48:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300176.1574710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wK8dv-0007et-IS; Tue, 05 May 2026 05:48:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300176.1574710; Tue, 05 May 2026 05:48:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wK8dv-0007eg-DW; Tue, 05 May 2026 05:48:27 +0000
Received: by outflank-mailman (input) for mailman id 1300176;
 Tue, 05 May 2026 05:48:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wK8dt-0007ea-LS
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 05:48:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wK8ds-003UP4-QM
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 07:48:24 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f984a7-e002-0a2a0a5209dd-0a2a4509d070-2
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 07:48:24 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f984a8-2497-0a2a45090019-d1558035f1fd-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 07:48:24 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-488ab2db91aso57761085e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 22:48:24 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8eba8487sm319028455e9.11.2026.05.04.22.48.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 22:48:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777960103; x=1778564903; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QgSGjnreW2ZJQwSnI8cPBrFd3TzH9yHxoTB4dYZzJUk=;
        b=OhodeEqXwEbifdIaT3UkbtMnBNmhP2mBa5+ZfOER6+tA7ULIJhBPtXHS9L/XliH6BE
         064NWI9FFeo7qRBt2q43NKFIzbXUypqY64nTYR05eeniGFw0C7QBXMDMH5XdUKl4KOsX
         Hz//6yyohGLFrvp8uqXRNjToTm1ILu5JpS+dKiLGpJsz5d9yeVUU97BjlBukTih2+k5y
         bY7ftl34juZhjCMmQv+cmfk/y39D7tX3KRg6YAEIgHjFYPW2W8YqzXKb+6iXKW0x28cB
         YQ6qzm+MvmbNDpy/QJd0CjQ5uSZtmoaCLPI+nAsiZCyvYV0YAZVv7dPAW7fa70LaQBMt
         9EkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777960103; x=1778564903;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QgSGjnreW2ZJQwSnI8cPBrFd3TzH9yHxoTB4dYZzJUk=;
        b=UCuWj+Kzp7pV5Qul8Y815X1hfIfi3ObKkrOAIChaqK7K/DBh2TlybHMIwUDBnc8mga
         OcI8M+TC3OWd38jrd76nCpTimyZiEgcaOOI2uFueMg3qRxquaJhJaj7MWU0vQ/a7ToXa
         8dcguL7vqytE4iqlQD7yfBLFP1qP4+8kn7g6b6h79eSF+yBG1rp8VpHTkuyBgd9Nrh9a
         B23khwTU/KVxfD5qKONXhxh4mK2MKRyq1Rf6itQpbkwzo8csa+HbYkQy772F1fdLayPH
         Vexq6r3GjwheqvAhpcCm2luJ6D9WSP23E+UyiwM7LJQyLTsEwqT+QilKJkk88CJYdOcx
         4nrg==
X-Gm-Message-State: AOJu0Yw/TPQ0wvZCzZsdovvpUPXYQnzvShmKnBzMPhoWAGjmeJto5MB0
	ABCAv6w2j0MoVj8f320AgR1G+X0zRXYWXtpxdjw9GQvtTQOW6qlDpeo/kDMIAeQB6A==
X-Gm-Gg: AeBDieupV3MhhiicDxO9A/zTW44/h7yOgn6VyUp9/8BC6QkWpG+4RNOSwZTKHv87dUc
	LPQOWWNM1pDLA08fqdFtUTfI0nbBqcPl/RWTZcpVaGmULL4WavvLfa67gdt87517wnugmlS0nVG
	CqN9KbQRrnpHVza5IcB5c7rZwMU2Lqg9R28osyAInQINwgDlaMqFk8a5UwAdIt0dyQBfmK8lPxy
	/pdun95dj3ywKEAKLVr8x6ZdbHaeHSrP/VluaUUxitV+PR/3d8YTsmsFlstrOt4PZwdSyfkYiXs
	uB7alqkgbYX5bOsCvZ7eTXLu0T6TuK9S7Gl/JdVcke7CqzfdEPedHAjgJyaYi0jOYUsDoIgAEyF
	7MlfGzsVDfgleKWJsv66uu2YyGEa1dVGEGC+9w+6Ejbx4LDzi88GyfuC+2tGBeDsX7u+crF4tDB
	XjbzG3ig62gsEQkcFQ1J17cDIuEMlKbp+Edu+uLvoADe8zFkJFUIhbPJh4BXYbVMnRaMgXqmF8C
	4EF/dY+20tWVeF8Y7Lbb28l5JMoW3pJS2Ad
X-Received: by 2002:a05:600c:c174:b0:48d:1a94:56c with SMTP id 5b1f17b1804b1-48d1a94087dmr18732045e9.18.1777960103674;
        Mon, 04 May 2026 22:48:23 -0700 (PDT)
Message-ID: <89ac0d3b-d155-4916-a943-156b1f7c7e2f@suse.com>
Date: Tue, 5 May 2026 07:48:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/17] Q35 initial support for HVM guests
From: Jan Beulich <jbeulich@suse.com>
To: Thierry Escande <thierry.escande@vates.tech>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <afBmWSFsyrwy_Ru1@macbook.local>
 <99756799-27be-45ae-99be-eae5b0c41a11@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <99756799-27be-45ae-99be-eae5b0c41a11@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1777960104-4216DA53-2EC43815/0/0
X-purgate-type: clean
X-purgate-size: 1379

On 04.05.2026 12:45, Jan Beulich wrote:
> On 28.04.2026 09:48, Roger Pau Monné wrote:
>> On Fri, Mar 13, 2026 at 04:35:01PM +0000, Thierry Escande wrote:
>>> This series introduces initial Q35 chipset support for HVM guests, based on the
>>> patchset at [1] by Alexey Gerasimenko.
>>>
>>> Basic support means that this patchset allows to start an HVM guest that
>>> emulates a Q35 chipset via Qemu and implements access to PCIe extended
>>> configuration space for such devices emulated by Qemu.
>>>
>>> Support for PCIe device passthrough is not implemented yet. This is planned but
>>> implies modifications in the hypervisor and the firmwares, mainly for the
>>> support of multiple PCI buses.
>>
>> Why do you need multi bus support to expose PCIe capabilities?  I'm
>> not seeing the relation between those two.  You could still expose a
>> single bus on the MCFG table.
> 
> Can a valid PCIe topology be expressed with just bus 0? If an endpoint
> to be handed to a guest isn't root complex integrated, would it be valid
> to make it appear so by putting it on bus 0?

We discussed this with Roger on our x86 call, and we came to the agreement
that for the time being putting everything on bus 0 may be good enough.
Introducing of bridge(s) and anything else that's required for multi-bus
support will want to be a separate piece of work.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 05 05:50:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 05:50:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300183.1574719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wK8fQ-000879-QS; Tue, 05 May 2026 05:50:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300183.1574719; Tue, 05 May 2026 05:50:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wK8fQ-000872-N9; Tue, 05 May 2026 05:50:00 +0000
Received: by outflank-mailman (input) for mailman id 1300183;
 Tue, 05 May 2026 05:49:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wK8fP-00086w-In
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 05:49:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wK8fO-004V5v-VA
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 07:49:58 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f984fb-bab6-0a2a0a5309dd-0a2a45039e54-28
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 07:49:58 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f98506-672d-0a2a45030019-d1558029a4cb-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 07:49:58 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-4891f625344so51185705e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 22:49:58 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48d17ff628esm17210955e9.1.2026.05.04.22.49.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 22:49:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777960198; x=1778564998; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tqLTAoRrClCBzaf8mQU+WziuZhB8bkImmo+2bNAvqks=;
        b=OMKo4zTmM5X0/c/zW44o+tFxklZ3zIgQdU3lPZxOie7ikSkJbJYG5N+IpkQg6K6Fy2
         LYsjXEKsmM3w/sKhR52Oxrpn9ckrO3ZOUSqVXY9uFCwMU321mB1yf0vw+KRIpbYJAiSz
         kVi2iXUPEhrzJzzq0AYdrmgZ6TT4jr5oP7tP9IRNILseGzxVAGjbZeBrLhzLp/ietB8o
         qRrIrK3L/Ix1WUSMuVcjnSEox99jDIyRlv2f2Ohi2Y71D7EJIZjtVYALdLeaRUB5/dV6
         +g5QaSpOIUIuO4KTNuLdMKjH9xz85U+/tpt5BKSIFtmsUVpoeAPc0lUHdslcuVS/77uO
         t8VA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777960198; x=1778564998;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tqLTAoRrClCBzaf8mQU+WziuZhB8bkImmo+2bNAvqks=;
        b=mGOKBw37rfGesdyPVIsSaug8VNay7lzC8ttdE4TO9O/raJcv8HLTDGKIGTOmKTB6/R
         xhUxBIPdiqFIEzzlR4GhW6UIi77n8SZ0EK0php8YmFVuk748Rq4LZCpx1FhEicjp/aZJ
         Xbyczx7gXLq8hgk/EzpSL4829gkCAlLJQlwIK8JUUmngAAM5a579u+3cuWz6Z3NYIYcC
         Cr/5LN4QSVmoWmRqBAye/cmAnHZEJc1OsCXvr2FFkX7A0MdmCYPIK0mt2bo/XTpktHR+
         oFHfpKHv8EraAptlZT+L9GQ4tDNfRh91kqJG1E4apOyrOmbX56du85hv4wwBjdnvipe8
         bAGw==
X-Gm-Message-State: AOJu0Yw+LmAI5+8lowExax0KhMXg55CSTP3E8U+PNxqvunyBXXvVtsXy
	QDg6MQH8asfoiCCM6cnXOzO+03LAb9JzL2WawxhBdZRm4H1D2CXwo6QkJOx9KrV+iQ==
X-Gm-Gg: AeBDietWOKsHyiMRL1KGwbo+AX6D86ZX49loqaeN4LL0M03SqTkjNmTTRl080zUlzbg
	Q3lxxDzwqkwjpxBVEVcLs8goW2cZWp+3F/kGr1YPUIfffLAlTYXGH2rNmNax623Hd81/EoWEZRA
	eeb9E1HschDBvOotPb20zDcM+nrou+3kCP0dAxDrKCJFnorl1P2qb0d8F+BvqLknN0O+rq9zNYU
	46EJtPGTz0K7rwx/Gj7GNeYCfDgwGcWrR5Xe2FGNwJnqs1+4X+DrF22LcKq5SeO7657X18XLsoQ
	GNDUHFsda99jW77G7u+bEW/NVhP1MbILR/wZQs3zMvc1iqM7Ew4665eZ+eOsslQS5PkMYscJEIo
	0vWCWxi+VMr7I8gBWwmZct7izj9FlsVGcx1+fGIQGu14AlPKPkN09wlr5uC4rrYabM6q7VLHeBd
	s4xerTYVLCV52W4s6HEu+Gil6ccw22W9nOZGKHPpZ/MWKJ04WjsZ516OVxNbEDoTxqM0HhP3ges
	J4Mg2TSk3l4yFPxO5QU1Z1mGaV652zplsqo
X-Received: by 2002:a05:600c:45cd:b0:48a:5339:a46 with SMTP id 5b1f17b1804b1-48d1424f973mr33871025e9.9.1777960198429;
        Mon, 04 May 2026 22:49:58 -0700 (PDT)
Message-ID: <e8a1f255-5c55-4364-997a-6e687021554f@suse.com>
Date: Tue, 5 May 2026 07:49:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/17] Q35 initial support for HVM guests
From: Jan Beulich <jbeulich@suse.com>
To: Thierry Escande <thierry.escande@vates.tech>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <afBmWSFsyrwy_Ru1@macbook.local>
 <99756799-27be-45ae-99be-eae5b0c41a11@suse.com>
 <89ac0d3b-d155-4916-a943-156b1f7c7e2f@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <89ac0d3b-d155-4916-a943-156b1f7c7e2f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1777960198-A3161938-70672F11/0/0
X-purgate-type: clean
X-purgate-size: 1583

On 05.05.2026 07:48, Jan Beulich wrote:
> On 04.05.2026 12:45, Jan Beulich wrote:
>> On 28.04.2026 09:48, Roger Pau Monné wrote:
>>> On Fri, Mar 13, 2026 at 04:35:01PM +0000, Thierry Escande wrote:
>>>> This series introduces initial Q35 chipset support for HVM guests, based on the
>>>> patchset at [1] by Alexey Gerasimenko.
>>>>
>>>> Basic support means that this patchset allows to start an HVM guest that
>>>> emulates a Q35 chipset via Qemu and implements access to PCIe extended
>>>> configuration space for such devices emulated by Qemu.
>>>>
>>>> Support for PCIe device passthrough is not implemented yet. This is planned but
>>>> implies modifications in the hypervisor and the firmwares, mainly for the
>>>> support of multiple PCI buses.
>>>
>>> Why do you need multi bus support to expose PCIe capabilities?  I'm
>>> not seeing the relation between those two.  You could still expose a
>>> single bus on the MCFG table.
>>
>> Can a valid PCIe topology be expressed with just bus 0? If an endpoint
>> to be handed to a guest isn't root complex integrated, would it be valid
>> to make it appear so by putting it on bus 0?
> 
> We discussed this with Roger on our x86 call, and we came to the agreement
> that for the time being putting everything on bus 0 may be good enough.
> Introducing of bridge(s) and anything else that's required for multi-bus
> support will want to be a separate piece of work.

Oh, and: Where applicable this (deliberate) restriction (or should I say
mistreatment) will want calling out in description(s).

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 05 06:01:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 06:01:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300198.1574728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wK8q2-0002X7-SD; Tue, 05 May 2026 06:00:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300198.1574728; Tue, 05 May 2026 06:00:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wK8q2-0002X0-Oi; Tue, 05 May 2026 06:00:58 +0000
Received: by outflank-mailman (input) for mailman id 1300198;
 Tue, 05 May 2026 06:00:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wK8q1-0002Wu-AE
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 06:00:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wK8q0-000fJX-87
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 08:00:56 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f98791-2eae-0a2a0a5409dd-0a2a450cc36c-34
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 08:00:56 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f98797-62f1-0a2a450c0019-d155dd2cbc5e-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 08:00:55 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-43d7e23defbso2689486f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 23:00:55 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-450524833e1sm1893763f8f.2.2026.05.04.23.00.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 May 2026 23:00:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777960855; x=1778565655; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xtUVewt/R03FxOqaGFMrHIUdEoTCyLXNODTxb3YDv3A=;
        b=aoAP2uv0VesnN92tZO1zZ5g/NeCgZX7awIJ8h3/Vv1OvZf32r9hLmx9B2TPZ4CjRoV
         7WLFP1/nOr4vd9v4kxsp5DFepYV9rznVk1du0Cw7m3ZLg98DcCtYrWQx8amJDpzzoQtq
         FXCk9WgjuSBqE9LYji/AAoRYrc3i96/V48iRtwJYbq3rSAUiYszo6ZolbDO4Obj0mliZ
         mHXC+e9W4LsqAjg09mgZOGX4wd4ctSHHCejpPCNQ8oN52kqRZIVMNWWUpQ3cncF5P4B5
         CIHIn5jDVs0nQWWK2mDn0TLmXXhSa3iq9p8+MFoK8oADO0Bb0iLO+mo2uz4cbpWJhuT1
         cd7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777960855; x=1778565655;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xtUVewt/R03FxOqaGFMrHIUdEoTCyLXNODTxb3YDv3A=;
        b=NGonEGXnHcsTIxYAYZDb+5YbYAmoqiCfHUdEzq75tGp1je/AwC7imPMydOGKIHvqVr
         8nuo/tS+nfVnvK6dTeirI0XwUxew/MQpeKvvL/YaxWT9WleScK1dsb7kjESo3EkuJJFl
         nSatkGa9jJ7G6ixKf5DDSsOm2umZm+KMYk6YXPoa02EhQmKb4iOLfiYSSC9US/ZTzU0n
         pySwNE3mc8nFnmxyYojzss5B5HCJ9nt113eOIxZXLi7IyL5hjlB/WTG84vQtMNX0QYyu
         /xCijrG4cvVJECv0XcpJpUY5eSzheCRqt7Q7Xo9HBE/jWnsClXvkh5/mUIiH+laaWFJK
         DD+w==
X-Gm-Message-State: AOJu0YwPsb1DPioWC0ykesf4nzyUHMHFxS9HO7ho7pg6XaK+lNMfSHJe
	/QIpLegkyNuB5XbVQksfUeK3FWVNmgSa5DiiR0hdjpfUtiwMdhj7xPeIOUtJsk0ooEJAWyEM2cD
	G1f0=
X-Gm-Gg: AeBDievlh3Af5zOaTd3fRChJuQjvkf25BOziVVxoJI1RGPTa7uZKhfxn2TypLP7tIbB
	CFrWjyDTTM7v6kraph2C6jGG6bNaUjNDBkszVH6wETLHzAeSpqunq966JYVAKYD9BcAO2PWbvgL
	qcLvYfF1R0QW6Z+RPWlqCEx8kegiJVO4nq73dzyIdEbjad/d0A8oa76MIHErTKcbGJHFt7yxPaE
	2INaN7AbzyCul/fDBRYAqmSb2GWo3AyPvX/K7HstM0LuZCNs4YONZOA3IMj/SXFehjnxsaFDjT1
	p/bYXXXJSknbbdeYnTtBgfllOxQts6/f5b0Iq0AMxsitX7blcOuihR0HQuApTRAtk3LpAQIfyP3
	Z3dkwhDYBwtItdw+2zeIP7i90E93RYq3s4q1At7TVusGjyjqjxrRCGejbcdE0Zfsf8XWclrS1VP
	65G6WhbU/8FXTeZjo2Y8ecJtRPSpVYO4K45enDqNv0spZySzaTU+b/dSZ1w+/Iqnurqo/EIyKle
	PlSSvEcAaclsfQVaueFrLtDUg==
X-Received: by 2002:a05:6000:3110:b0:43d:1c4a:37c with SMTP id ffacd0b85a97d-44bb2e2eefamr21513703f8f.4.1777960855102;
        Mon, 04 May 2026 23:00:55 -0700 (PDT)
Message-ID: <d8d50b12-40c8-4103-a852-d7cc50aa4910@suse.com>
Date: Tue, 5 May 2026 08:00:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/svm: Always sync guest CR2 on VMExit
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20260501213826.1291860-1-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2605011443580.512397@ubuntu-linux-20-04-desktop>
 <981a0dad-dcbb-42c8-a840-6f228eb89be1@citrix.com>
 <53c4fb20-8cb9-440a-b37a-d829ec940e1b@suse.com>
 <e1166c38-114f-4d37-bbd9-b4e1a534aaa5@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e1166c38-114f-4d37-bbd9-b4e1a534aaa5@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1777960855-F5204CF5-BA79FEE4/0/0
X-purgate-type: clean
X-purgate-size: 2233

On 04.05.2026 18:24, Andrew Cooper wrote:
> On 04/05/2026 6:14 am, Jan Beulich wrote:
>> On 02.05.2026 00:21, Andrew Cooper wrote:
>>> On 01/05/2026 10:44 pm, Stefano Stabellini wrote:
>>>> On Fri, 1 May 2026, Andrew Cooper wrote:
>>>>> Under SVM, there are two copies of guest CR2.  One is v->arch.hvm.guest_cr[2]
>>>>> and one is in the VMCB.
>>>>>
>>>>> Xen doesn't intercept CR2 accesses, so this mostly goes unnoticed; hardware
>>>>> loads and saves the guest CR2 across VMRUN/VMExit.
>>>>>
>>>>> For HAP guests (where #PF is not intercepted, and therefore we don't typically
>>>>> inject #PF either), this causes the guest CR2 value to be lost on migrate.  As
>>>>> migration is cooperative and not done from the #PF handler, this also goes
>>>>> unoticed by guests.
>>>>>
>>>>> It also means that an emulated MOV-from-CR2 reads a stale value.
>>>>>
>>>>> Reported-by: Stefano Stabellini <sstabellini@kernel.org>
>>>>> Fixes: d1bd157fbc9b ("Big merge the HVM full-virtualisation abstractions.")
>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> Tested-by: Stefano Stabellini <sstabellini@kernel.org>
>>> Thanks, sadly I made the mistake of extending my XTF PoC for this.
>>>
>>> There are also bugs on the emulated MOV-to-CR2 side, and they're far
>>> harder to untangle.
>> Any slightly closer details as to what?
> 
> hvmemul_write_cr() updates guest_cr[2] but doesn't sync it into the
> VMCB.  This doesn't show up on Intel because CR2 is switched explicitly
> in RAX across VMEntry/exit.
> 
> But, it's not the only problem path.
> 
> svm_vmexit_do_cr_access() is the fasthpath exit for CR intercepts when
> decode assists are available.  hvm_mov_to_cr() and hvm_mov_from_cr() are
> asymmetric in their handling of CR2.  mov_from will read from
> guest_cr[2] but mov_to will domain crash.
> 
> However, case 2 ought to be unreachable in hvm_mov_from_cr() because of
> how we program the intercepts, yet the QEMU bug which caused this to get
> noticed will trigger an ASSERT() if I were to put one in.
> 
> So, do I fix up both to account for the fact we know QEMU is buggy with
> intercepts?

I think that's going to be (about) the best we can do.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 05 06:06:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 06:06:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300207.1574737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wK8vO-00037L-E4; Tue, 05 May 2026 06:06:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300207.1574737; Tue, 05 May 2026 06:06:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wK8vO-00037E-BC; Tue, 05 May 2026 06:06:30 +0000
Received: by outflank-mailman (input) for mailman id 1300207;
 Tue, 05 May 2026 06:06:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wK8vM-000378-UV
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 06:06:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wK8vM-000gia-7I
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 08:06:28 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f988e3-e002-0a2a0a5209dd-0a2a450cbd0e-8
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 08:06:28 +0200
Received: from [209.85.208.170] (helo=mail-lj1-f170.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f988e3-62f1-0a2a450c0019-d155d0aacc67-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 08:06:27 +0200
Received: by mail-lj1-f170.google.com with SMTP id
 38308e7fff4ca-39393ec4ed0so23528261fa.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 May 2026 23:06:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1777961187; cv=none;
        d=google.com; s=arc-20240605;
        b=XpTyLF2KJKHRVwWxqw3smaGi6u0N0Spf4zgXOySrm08f9qhxNXx4grSwHIifoqGyx/
         fnhPPJmKJ4Yyb/ixEp6svNb/HYidR9T1G4TMu0pzONgvyHD3+fDI/PpRvcYNIWLf6aNm
         wyA7A5BRWTOQQaBUA+0jq0AuJuWAT1/V5/5s9qNQucL2ApvWWFEBz97d3Zf6sdmlZGn7
         v36zAqCfz8Iza6RMOvY76jIkgUXMFp5Tl6VzmtzCYI2rQHX5+4Gk5U1BNYo1lGi1N04+
         aAkFEOusjNhCjpQ+uL2NESvGt8qWZWxP7WYLSnH+UB4nWtXR4VmQnWuJj+QgXJRELbGv
         alaw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=DFFOXtk38hAz46vOIiuiR5vJQlqZM0Bfd9SfSoYLs4g=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=SWHTs1g4sIDS5pKb7SCGPOc7UoiFxjCN2rRK33qML9eKZOVCUZliFm0asuQm/oy7/I
         uQsOzrKG2pjPsRpJI6pv0N1eq6lCA/Ijn+1+jGBz02R7JoieEVaD4iSaYMk+F0hb6djo
         X9Qrvv/cj41hJDFFbGEY4pJ3SXxmhPrm2AuEeJt3YXKWcrorz1HzqQ8dA8gtXvHlAF62
         WcnZnnk29PC8+ALBbSTcogogafufq9LsKjx61RdnjtuNz+P9cmQo11s26LhMeJgR5Mpz
         qMP8Dfd+dGSEv++rPZp8fA8nF4HijzOHnI3jwIL+x566fmHj3hCe0GCvA+K+DfAO3J02
         bN0w==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777961187; x=1778565987; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DFFOXtk38hAz46vOIiuiR5vJQlqZM0Bfd9SfSoYLs4g=;
        b=GEvMc5FXPt/2QE4sc6wKk2Gj4SHrDbjmGT4MdLenXSZ1SYIkj/8XRoyuhE+j4fSDTa
         /sRk+VGnqkWyuNhIltGMxHrMky7jyWVJ5o4eIt4upGeVa2RVScDfl24ndoB0KTppwRhE
         NYPJoyIVpBfmyFBFxF7oz83GOlZSD6EKKVgLa9m91K0mqof19CnGGN7pF3k9xtX/74zq
         mXc7RfcNQdYQFpUvJf8btN5jl1SrFsM14K9Ta2MlffYDkGuQ3mBRE5kjAv8o4G+Ns0jo
         6nJvJTU9/wiP2sbGqUETQ6HWC1lRRBbpLaC+kYgvQBYjGYVG+UTzXx/gOpuGmnTbtuxK
         +lcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777961187; x=1778565987;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=DFFOXtk38hAz46vOIiuiR5vJQlqZM0Bfd9SfSoYLs4g=;
        b=R4m466d0BAHintINs5qAzl/F2HRxSYwWooPTN4YHOK8G++vHjRw1OzAEsDsJ2z4DDg
         UbV7Hs7QxGPSWIycQEU0f70L78YhVE7NAi4pryUyAqsjdRKzZHik/9j7b0EqmeWIOZfJ
         JRmyf2+i1isWwh/mzdDRXsP+AonZB/DtXblysjLEq65EgOzHUKfzqdq+BMoYmxryX3Gc
         wziOfLrxIk6gDHsD47kMl72kQ+lHp1e3jYOdg61DKy+jORi7MoxN+gRwli3tnvXJeckG
         kowQGvWqaPNOnCijBnKE4zU+8hjBntX0pgUHx+K/68SzoAXmUofMZmOYPpazGYzJTF5H
         aXoA==
X-Gm-Message-State: AOJu0Yx8aiTlI2Msl+W5l8HLc2J9jSKvYEG41FmA4UPpDjN/qNPX91iC
	CeOkJiU+WzBdM4ZCWDcSOgIut3o++ljzX+SUR/a71k9jB9M25mxMjwX2qQAEqOtRnh70iBC0S7N
	rVZwQ7uADpVeFPJip9PkjIzI6jCSio20=
X-Gm-Gg: AeBDieseQ1d4WQaWGTrgXOsfz5HVMbpTosPqcLWHo7Z23dXLAfCFDe2lmw4QVYgPmOg
	MRf2RcfyjVDC0luZhIXLFVCUg4lpM4pEzTFgnuiskXbdqUV6Nx5fkBC1Fppluj9C7Vh/GVBri6k
	KgnuHqiDPGlqIcvE1HbaTIMvR/kURZcU7LbxQ/bYK+xuBQMWLHEwP2AoY/JcUzcnCbBd4BX0u+d
	SsOVyPabmTZCC8MBiMBopHWTBTe68iithmW8LsIERkBBTF0272PmqL7OM8ZJG//htwiTagRjS2S
	17QNj2xAIr3sOjGJ
X-Received: by 2002:a05:6512:b82:b0:5a4:d4:5c5a with SMTP id
 2adb3069b0e04-5a87f1f8830mr648703e87.28.1777961186323; Mon, 04 May 2026
 23:06:26 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <df183c2bc095ec611cff03e15ac1e358f0faa982.1775125380.git.mykola_kvach@epam.com>
 <3235FD35-5EF1-4E77-B30E-AABEABCC081C@arm.com>
In-Reply-To: <3235FD35-5EF1-4E77-B30E-AABEABCC081C@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 5 May 2026 09:06:15 +0300
X-Gm-Features: AVHnY4KGuXuIJPXZ56mqKw7xhaX19h8vIRKNSJ_Ys9-_ZZRDHVjaIz2EsfxTdIA
Message-ID: <CAGeoDV-uWWVC_NiU6EN8qOCavxH=KaYE7coLoT5qXaOZQKAd4A@mail.gmail.com>
Subject: Re: [PATCH v8 03/13] xen/arm: gic-v3: tolerate retained redistributor
 LPI state across CPU_OFF
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d25034/1777961187-F620CCF5-ECEF7BE5/0/0
X-purgate-type: clean
X-purgate-size: 5250

Hi Luca,

Thank you for the review.

On Wed, Apr 22, 2026 at 6:57=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> > +
> > +static int gicv3_lpi_disable_lpis(void __iomem *rdist_base)
> > +{
> > +    uint32_t reg =3D readl_relaxed(rdist_base + GICR_CTLR);
> > +    int ret;
> > +
> > +    if ( !(reg & GICR_CTLR_ENABLE_LPIS) )
> > +        return 0;
> > +
> > +    writel_relaxed(reg & ~GICR_CTLR_ENABLE_LPIS, rdist_base + GICR_CTL=
R);
> > +
> > +    /*
> > +     * The spec only guarantees programmability when we have observed =
the bit
> > +     * cleared. Where clearing is supported, RWP must reach 0 before t=
ouching
> > +     * PROPBASER/PENDBASER again.
> > +     */
> > +    wmb();
> > +
> > +    ret =3D gicv3_do_wait_for_rwp(rdist_base);
>
> I=E2=80=99m looking into the implementation of gicv3_do_wait_for_rwp() an=
d I see
> it=E2=80=99s polling on bit 31 (UWP) instead of bit 3 (RWP)?
>
> Not related to this patch but I feel we need to raise this.

Good catch, thanks.

UWP does have SGI-related semantics, but it is not the same as redistributo=
r
RWP. The existing helper is used as an RWP wait helper after redistributor
register writes, so the redistributor path should poll GICR_CTLR.RWP rather
than GICR_CTLR.UWP.

I will send a separate prerequisite patch to make the redistributor
path use GICR_CTLR_RWP.

>
> > +    if ( ret )
> > +        return ret;
> > +
> > +    reg =3D readl_relaxed(rdist_base + GICR_CTLR);
> > +    if ( reg & GICR_CTLR_ENABLE_LPIS )
> > +        return -EBUSY;
> > +
> > +    return 0;
> > +}
> > +
> > /*
> >  * Tell a redistributor about the (shared) property table, allocating o=
ne
> >  * if not already done.
> > @@ -373,7 +434,21 @@ int gicv3_lpi_init_rdist(void __iomem * rdist_base=
)
> >     /* Make sure LPIs are disabled before setting up the tables. */
> >     reg =3D readl_relaxed(rdist_base + GICR_CTLR);
> >     if ( reg & GICR_CTLR_ENABLE_LPIS )
> > -        return -EBUSY;
> > +    {
> > +        if ( gicv3_lpi_tables_match(rdist_base) )
> > +            return -EBUSY;
> > +
> > +        ret =3D gicv3_lpi_disable_lpis(rdist_base);
> > +        if ( ret =3D=3D -EBUSY )
> > +        {
> > +            printk(XENLOG_ERR
> > +                   "GICv3: CPU%d: LPIs still enabled with unexpected r=
edistributor tables\n",
> > +                   smp_processor_id());
> > +            return -EINVAL;
> > +        }
> > +        if ( ret )
> > +            return ret;
> > +    }
> >
> >     ret =3D gicv3_lpi_set_pendtable(rdist_base);
> >     if ( ret )
> > diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> > index bc07f97c16..34fb065afc 100644
> > --- a/xen/arch/arm/gic-v3.c
> > +++ b/xen/arch/arm/gic-v3.c
> > @@ -274,8 +274,8 @@ static void gicv3_enable_sre(void)
> >     isb();
> > }
> >
> > -/* Wait for completion of a distributor change */
> > -static void gicv3_do_wait_for_rwp(void __iomem *base)
> > +/* Wait for completion of a distributor/redistributor write-pending ch=
ange. */
> > +int gicv3_do_wait_for_rwp(void __iomem *base)
> > {
> >     uint32_t val;
> >     bool timeout =3D false;
> > @@ -295,17 +295,22 @@ static void gicv3_do_wait_for_rwp(void __iomem *b=
ase)
> >     } while ( 1 );
> >
> >     if ( timeout )
> > +    {
> >         dprintk(XENLOG_ERR, "RWP timeout\n");
> > +        return -ETIMEDOUT;
> > +    }
> > +
> > +    return 0;
> > }
> >
> > static void gicv3_dist_wait_for_rwp(void)
> > {
> > -    gicv3_do_wait_for_rwp(GICD);
> > +    (void)gicv3_do_wait_for_rwp(GICD);
> > }
> >
> > static void gicv3_redist_wait_for_rwp(void)
> > {
> > -    gicv3_do_wait_for_rwp(GICD_RDIST_BASE);
> > +    (void)gicv3_do_wait_for_rwp(GICD_RDIST_BASE);
> > }
> >
> > static void gicv3_wait_for_rwp(int irq)
> > @@ -925,7 +930,7 @@ static int __init gicv3_populate_rdist(void)
> >                     gicv3_set_redist_address(rdist_addr, procnum);
> >
> >                     ret =3D gicv3_lpi_init_rdist(ptr);
> > -                    if ( ret && ret !=3D -ENODEV )
> > +                    if ( ret && ret !=3D -ENODEV && ret !=3D -EBUSY )
> >                     {
> >                         printk("GICv3: CPU%d: Cannot initialize LPIs: %=
u\n=E2=80=9D,
>
> This should be the other way around? %u for smp_processor_id() and %d for=
 ret?

You're right, thanks. I will fix the format string.

>
> >                                smp_processor_id(), ret);
> > diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/inclu=
de/asm/gic_v3_its.h
> > index fc5a84892c..081bd19180 100644
> > --- a/xen/arch/arm/include/asm/gic_v3_its.h
> > +++ b/xen/arch/arm/include/asm/gic_v3_its.h
>
> Why this header and not gic.h?

You're right, this prototype is not ITS-specific. I will move it to gic.h.

Best regards,
Mykola

>
> > @@ -133,6 +133,7 @@ struct host_its {
> >
> > /* Map a collection for this host CPU to each host ITS. */
> > int gicv3_its_setup_collection(unsigned int cpu);
> > +int gicv3_do_wait_for_rwp(void __iomem *base);
> >
> > #ifdef CONFIG_HAS_ITS
> >
> >
>
> The rest looks ok to me!
>
> Cheers,
> Luca
>
>
>


From xen-devel-bounces@lists.xenproject.org Tue May 05 06:48:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 06:48:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300218.1574746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wK9a9-0000E1-EY; Tue, 05 May 2026 06:48:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300218.1574746; Tue, 05 May 2026 06:48:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wK9a9-0000Do-B6; Tue, 05 May 2026 06:48:37 +0000
Received: by outflank-mailman (input) for mailman id 1300218;
 Tue, 05 May 2026 06:48:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wK9a7-0000Di-E2
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 06:48:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wK9a5-000ohL-4H
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 08:48:33 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f992c0-2eae-0a2a0a5409dd-0a2a450ba5c6-0
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 08:48:32 +0200
Received: from [52.101.201.60]
 (helo=PH7PR06CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f992bc-212f-0a2a450b0019-3465c93c2737-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 08:48:29 +0200
Received: from SJ0PR03CA0109.namprd03.prod.outlook.com (2603:10b6:a03:333::24)
 by DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 06:48:24 +0000
Received: from MWH0EPF000C6184.namprd02.prod.outlook.com
 (2603:10b6:a03:333:cafe::1c) by SJ0PR03CA0109.outlook.office365.com
 (2603:10b6:a03:333::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.25 via Frontend Transport; Tue,
 5 May 2026 06:48:24 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MWH0EPF000C6184.mail.protection.outlook.com (10.167.249.116) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Tue, 5 May 2026 06:48:23 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 5 May
 2026 01:48:23 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 4 May
 2026 23:48:23 -0700
Received: from [10.71.196.80] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 5 May 2026 01:48:21 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=P72EIXPXhlpOBhWUt16BkLcX6aW5s7phcrZMctaTLSOINc3gSfGPHjQpuUOELg5JVMV3Ap/fpM3RA0dWMlaTOXjzqBPayVGtQnrBlue+y3uoGrVgJuWbau99WD0E2A1Xh9Dje08Yj0jbhZAuHaLQBPmuZenEMdOcTBReIRt42kLxCkqF94Y2cO054WbZRUIacvdxDZohFAUiSM59AHIRcBMkDfb6+ruQqSnXWQwzwfl8Tb8H4cAT6zfroniP33I0UTy/h0amg+2W3EyhEvMMPjTpm3eXK/wJgJzQYL2s0FxXxYtmt5x6tzE11SqsmPPEC7DP7MncxIrHuxvC2xLN/g==
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=KgFvu6n7dTdYcri9lLZhZEKLMUEdQbz2ewQ/EV+CiKI=;
 b=SYM6ImdQPCWffs08TLHhMkZMI/s4cgmy9RM9z4fUReizfrCazWIIKgPqHicmHlbps6bB6eMq2+CaKW5v1GMkAvCQbyC7FTDgFQKRf0ywrL3Ok7lyRjUYDRWa2C7+nH6pu72DNMg01VgbwzBt7Qp/uHQrA97M8NED1jeXwqC6lO+D7RufJyM/l7WMdXQmdBKCTaDe+EA0050JQUY56J1PNQ8Xwth1rDx1dJ+lxpD9em/5UAyG48mYytBmNLRd/Ci6Esy4yQ7O6z2LDJ4TX51NrNpNogK+rQQm5Yz9UyXaffeylTh/GHSAkDyFdNr3UsaxmRWZ60erax9uw1xD5f2trA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KgFvu6n7dTdYcri9lLZhZEKLMUEdQbz2ewQ/EV+CiKI=;
 b=CFFS9Yp0oh5ETDCqkU1yaZyynKtuMjOyE5d02Gy9aEc9DoL4MUuA9egFngYV0ActSVGbd9EEVVcUzfCFap9D6IwkClantIiY7L6g+8Y1IdZ1q4QAcHQ1fZtwboig2m68hQnPKJGz06/UvxdoFPsIUliLb222nPVZNiNaRRQg7kg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <65ecf1c0-0844-4ba9-a250-a94aeaf4d251@amd.com>
Date: Tue, 5 May 2026 08:48:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
CC: <xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Teddy Astie <teddy.astie@vates.tech>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
 <afi7HUFoDYabM9VV@macbook.local>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <afi7HUFoDYabM9VV@macbook.local>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000C6184:EE_|DM4PR12MB8451:EE_
X-MS-Office365-Filtering-Correlation-Id: 4337b790-5199-4aaa-8f73-08deaa724da8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|36860700016|82310400026|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	TVa+i9Bwm+q0VAWcejyOp6p+jJTFpaCuGDPDZgr6zuyvyIwXrAVbvIvMqZJw+WBOEcOuJbZAN8NwFwMEMjg4SmWMRjDnmdMoVhhffWXWz6pMLejNRpjmMjOkaUBFFx1jblZgPikucJcLZPU8fpZEW8LjOYO2JHuxRD+QH9F2rGCO0PnrefRLveY2otA8sGXkpTB4pfnyZR4SZBfTuHKGLXZ+wkJmplnN94KFOAqJxSra4EFBp0+2Pj0Lj+qy0v5KK3Ac2jXd65nKobptdEPdwidY1Wbwy0mqwBjA99bTQ27XSeGVJjGWoFygGh7c4/1twpTxRXDFxvIotLJf4GJPIbUfM0egedmmK3c+ImAfNHHtX/pcP6Ms/FkJkgXQSY8tUAaWB6hMIzZfdOv57xF5EmLqbYyUoueB7CgweVfbow/uaLIBjum6KPvmzsTq+CU5xp5tO1o20PzZyF5K0aaD4QOYOXVYVsvCyaX1rD2ow8g+2lmt/NEj+KHBdlSPP1QtnFyGweQX3dYjICS00AeFGofoiQUPGG3Er0Ib0J61+NZ0S2EqgKxOroZC02IT7pwIq//iWDD5JPt4A1safkf8A4D/k3i5jQpTuZQzFQMed4d5jiAaOTD1uSmk4lBiYGn5MUm5H3rFBDoyKgNXckeJ2I9bfKFjAZSqw3hV2bHy7xv57ZIpbvcLMdMeET1s1vBvOs+ItPVJFtp1JrR3GJ2AG6vk3LUO/Loefa0rN+GgIe0=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(36860700016)(82310400026)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	0/sFvgQfzg7e+mtzbxdwkEpQLW0wyPUyCO3YAW5FMz7cxcfmiDU1iSYkXNw6lAKUI+VrBoHQ2zwMHc7QN6eirZRM4C2F/XV4s3/9MRzpraj81HcGpF0EHbxE85RvqE3w5NkHRc4ah3fcjqBIoeA5Qu1mXKp6CEfMF7Z1paxtXh+9iBzp452MNoUaV5tcsXiHxpO8SKUncEpLl/Sl40x6lXuKGVaigI90ib7Kx9wdQSseTkGSHZcW15lQpIEmAVNoee/NBbo/54RrV0eF43OHLssT5kK8RbWAf/KG9Mu9kv2cOiYlPM3tPQmtnlwr0tDkxSajMubVZYKd1Lkw+PKZgzaXtcpDqdnaQwwSYnzeivpUk69HkOPIOZJnwlbhsz+6RLVBv1ztra+l+9bKPl8U2IHaP9KeppZWcYlGmIXiGclRWDpIzAisNZBo3P9Mjqh6
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 06:48:23.7740
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4337b790-5199-4aaa-8f73-08deaa724da8
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C6184.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8451
X-purgate-ID: tlsNG-42698a/1777963710-7D165F3B-908CECB4/0/0
X-purgate-type: clean
X-purgate-size: 1570



On 04-May-26 17:28, Roger Pau Monné wrote:
> On Thu, Apr 30, 2026 at 02:51:02PM +0200, Michal Orzel wrote:
>> The generic pdx_to_page() and page_to_pdx() macros in xen/pdx.h assume
>> the frame table starts at PDX 0, which is only true on x86. ARM
>> uses a non-zero frametable_base_pdx to offset into the frame table (PPC also
>> defines it).
>>
>> Fix the generic macros to subtract/add frametable_base_pdx, defaulting
>> to 0 when the arch does not define it. This makes the generic macros
>> correct for all architectures, even though they are only used on x86
>> today.
> 
> Hm, I assume this offset was added because the original mask PDX
> compression won't (usually) compress the gap between 0 and the start
> of RAM.  However the newish offset PDX compression should be able to
> compress from 0 to start of RAM, and hence you don't need to apply
> an extra PDX offset there?
> 
> If that's indeed the case it might be better to integrate
> frametable_base_pdx into the mask compression algorithm itself, so
> that on some arches it's a mask plus a decrease.
The offset is needed regardless of whether compression is used. With
CONFIG_PDX_NONE (no compression, PDX == MFN), if RAM starts at e.g.
0x80000000, the first valid PDX is 0x80000. Without frametable_base_pdx
the frame table would have to be indexed from 0, wasting
0x80000 * sizeof(page_info) of memory just to cover the hole before RAM.

So frametable_base_pdx is really a frame table indexing offset, not
something tied to the compression algorithm.

~Michal




From xen-devel-bounces@lists.xenproject.org Tue May 05 07:13:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 07:13:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300230.1574755 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wK9xx-0004K4-EH; Tue, 05 May 2026 07:13:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300230.1574755; Tue, 05 May 2026 07:13:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wK9xx-0004Jx-Bd; Tue, 05 May 2026 07:13:13 +0000
Received: by outflank-mailman (input) for mailman id 1300230;
 Tue, 05 May 2026 07:13:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wK9xw-0004Jr-Rf
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 07:13:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wK9xv-004oYC-Lh
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 09:13:11 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f99886-e002-0a2a0a5209dd-0a2a4502c106-4
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 09:13:11 +0200
Received: from [40.107.208.61]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f99885-af86-0a2a45020019-286bd03d6d90-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 09:13:11 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB5752.namprd03.prod.outlook.com (2603:10b6:510:36::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 07:13:07 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9870.023; Tue, 5 May 2026
 07:13:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d9tPYAqimQSJIyPCJGvZ5liD+68yhqk/RtsxgcyOffrwFU0zojyJE1+xZguNmI/Up9UnuVzAxL9m70mw7SEfgwd59PYo7igWW4u4uOZ7Rl6eA+S1QHJ3n7SQBp8+VaMgGoxzqN1Ay7lAJXXfr9V58CmAPP4XHNufw3l1m7qNEhYT/1R+w8zGx97QXU9Q/dpKI3QRvYvNYKodlhaQ9qZWAbJZeLL3NeqJcO9p2EtxoQuc3h6F2ayhJojjSIBRehReJotzVDVUtxqvR4ImUPPrD5JfOqlt61Ap33YUEim6Ut7iz5qHPR8dUTHdza8VlsTEa4vGvMbBz1P2IoyqSEUAkQ==
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=t+AV+3QmT/PFKL1SK27tSCTKbimpMTh3lGCPVS+KyJU=;
 b=mPv4nHiNyrzjFopRdfG0/mJVGc9BtJwmTiU7Gyacg6bBBZjQj47DBl3iVWCj0n1Z9+f2X4KtSg2urxPImbM9gYQ0pUrU0ymbd4/+NrB+2SP6VzPx3CIJPU/BwnFgYG6+KwrKHlRQEstlBywdiwkt10pDy2m+o0+6MfDlxgm53p3Yd/qanB5xdqxjlcJzrDDfeiLowEDUoFh0UuBj4FLkufmYLOECfgz3NhTd7HubKv6nztBdLsnLkQSvcOHseaX/ZNeJm9XktEA6Z9019XY01yeyu8LKdSX/jglryixL44BDbUW63grIrki0GvZj9oLSRAJ3ROmzZxIYS4a9K3YYGA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=t+AV+3QmT/PFKL1SK27tSCTKbimpMTh3lGCPVS+KyJU=;
 b=gzE6ckc9wbBAnp77YUefY5Fx2AQYi/N5s0+eMq+01R+sN8mOk9xuOwWCabxq0+4C6QNrUc0ldPlUsXHhjW5epVsmwfEbXdAeeFmzkKT/+sm3LD9rbByEwW2gQ+lelmwM3tH4SWYGDqR+oS5sI9RIPB2n5qeYazApuLxz/HHgPPQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 5 May 2026 09:13:03 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
Message-ID: <afmYf-ldUxWQXRDL@macbook.local>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
 <afi7HUFoDYabM9VV@macbook.local>
 <65ecf1c0-0844-4ba9-a250-a94aeaf4d251@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <65ecf1c0-0844-4ba9-a250-a94aeaf4d251@amd.com>
X-ClientProxiedBy: MA3P292CA0014.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::15) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB5752:EE_
X-MS-Office365-Filtering-Correlation-Id: 112036f2-ac58-4d03-395e-08deaa75c191
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|7416014|1800799024|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	XGe7eV4k4k/7hQ/YEf152hQQKbl54Cy9ElmU/nInFuNuFJfwJoHbokwIaljwB2VpdIDA+5iZkpqAo4yhwQauuogmW6qCTuuDoQRgPqCW4FZUnFIq8vmK4CXlIG5Az8SLZ3msDvNk4nJXvbnch3ijfFoArzmHzzL9tJOXZ9FKtz4Hl50TrzdhzUUFJgt7ex2uwCOvE0zt8KYm++a1PXpWHIAe0wp/uzUdbUoI5/EwhwePVtemWuQoICMy9u1dM56pwefTBBwshlnnDOl33d5Pu/wKrJJ1sg5w4R4OSSdrmdhNDUvnZm3KUNsLfY4tJBCv2Uuf5ipIrVvWpzSmxOszCimNY9syGKsRjt05WLij5rhZEm3utEq34WmG6qRArha8OSlEdAXAMUy9X1DdMHc7OKyTtQMhdRBkLUVjO0SmOX614Ni8oQPdk9RbIDCBjePFEXc631E/k9v7roHNdgOOiItRjod/BF5JXzN86SBdczJ994p5vPFgli1paa25fGHJyy/5nPMUGtgfjt8qmn3bsMW1R3qS+3dEnUvPFj1mh/S7oJ0ItdefJKjvy3fpgUbpjskIbFC9m5UdUGT7/uR/9GA/NwtnkR5OYGvijkQFh7gUY4qhxHNj0p6wO18rnqGDRAaiceAmbqhK4+3f2OSvD1mDVnGdLBakXvoiWMldYpW3/dhwwwCmwzsf1mENN7iW
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dUJLWk9UYmd0TXEvRW9tQ2l0Q1pHaWNRUXhCQkhmMzFtYXd5OGN2MStKMkYr?=
 =?utf-8?B?WW53NXFRcGJsaThjSVJUSEpmVUVVZzVoZkw0Vk1ZNXI0R2dQTzVYVGFQRk1y?=
 =?utf-8?B?cUZJYS85V3pjMlh6bFlEbEh6RVYydnZtNFN2TjgyOEtFdjRQK2ZiallhUUl2?=
 =?utf-8?B?eCs5L0Z1aWdPelZIdDZoUmJqN0xTOG4wQzhVZmZrbjBiUFJoRjdKN3lSZ2px?=
 =?utf-8?B?cGhtY2RlaUY2QUZqRVhCa1cydUFjMXo2R1piUHA3TnJhb0xBQ2NRUWwzN05B?=
 =?utf-8?B?bVMrRlVlSTNmSjlYbkxQbmtnU3psYnIxOXk1THRhN3VET1NjY0VhUVd0Szda?=
 =?utf-8?B?b2E3WUlyRWl0QmxYdFNnWnF4eUE3bisvbzREK2dFWGJQU2ZqeFV6N2ROdi9v?=
 =?utf-8?B?WFh3UDc1RWhMdE1MaTZqVHEvRlU0N3NScWNhbmF0dVQ3ditEeTJ2KzNLZW1U?=
 =?utf-8?B?NVVsNUpkcFFoeDBQUGNsc0VLUGpkSnFoc0EzUWF3VTFzdVVZNkNhd3owcXQ4?=
 =?utf-8?B?djJwKytPMzE1bXA1WmVZREduZk03QlpkNlM1SVFVZW5Wei9TSzdZVmNOZWgy?=
 =?utf-8?B?dU9LYU1Fa1ZPTm5TSFZkc0ltSTl3cmFtdGNiZTlFUDdqL1NYQWtiZHZtL2lp?=
 =?utf-8?B?SnV4dzhPcXNpTXg3T0xac1EzSEdiWktXN0RETHZDNGFGUkxZNVpHSVNxVW1H?=
 =?utf-8?B?UHJKYVRoUHdmTjhSNWI3S1EwVjFlSGlsakRqd2Z4dlBaUElSM0Z2RkpsZGVx?=
 =?utf-8?B?L2d3bDVhMDZybUdEY3A4VVg3Y2YyTVlLVUI2S2xqeklEMjIxaFp0UlFtWnNi?=
 =?utf-8?B?K2x6YndzSFIzK3NENTE2MGNOdWNYRGhMUmFzTGtJS1pDZXluc2pVbXAwM3hX?=
 =?utf-8?B?cE84U29TaEJJckpoL2cxWGREMFBJZXE5OVV5dkpubFhYQkdyOHdDVkVWTVJV?=
 =?utf-8?B?cDBIKy9IUHVvWjR1eHd2N1NTUnhVdnpRa1hDWHZPd1pKeGlJVDlEZmNWL1Bw?=
 =?utf-8?B?OUtOMVp5ZllscFVFcnFsM3ZiaWkvSWFiYVphNXRTc3N1cG0rSnZNRmZUcG1F?=
 =?utf-8?B?TXgrd2xJeXRDNzhGTU4wcC9xZTc3VDdheUVPU0dpU1gxbUJEMlBVL3hkUmJG?=
 =?utf-8?B?dlZ4REZBblFEZ0ROSjhpRnM2Z21nb2ZTd0hUT3NuSHVuOGdsMlBFZWFHTzZn?=
 =?utf-8?B?MHZ4QmVseUtiZ2g3L0tRbFNtdlQ4TjZhQjJsR2Q5ZTFkK2ZTenUyVW5GUTRS?=
 =?utf-8?B?Z0JwY0FEc051SC80SjUwQW5jN3JYNTlDeFNQUnZwVUR1T1JMNEdISmk2RGdv?=
 =?utf-8?B?aHN0OWIranMrMzdSSVJzZnJaelhxYjBxWXVBV1pHbU1xajNxVFdVTit2N09D?=
 =?utf-8?B?Y1lUTnQxN3FmT08yZVhkeEZBY3pmMER0Qm9XcWhUSXZ2K1lRZU5pbElmRUsr?=
 =?utf-8?B?aWdiVmVQczFlYU9JNHAzTExTQ0h6aXdFS0ExMlVPRGJ4WFpSSG1VbS91NDZ0?=
 =?utf-8?B?VzgzMGUzQlZ4L2J6WGtET01nSkdHZ2NoWXVSSmltUjcxVzNQUmRrR21lc1g3?=
 =?utf-8?B?b1pDUG4xT0VmdkJFeGlzd29WbFl4bmJLcVVLNStnVHN5b3RRbzd3aXZzdU11?=
 =?utf-8?B?c1RFd3hOZHJzaFR5RCt1cjRTOWswMHcvRTZ1UnFWVVZpTzBQNGplbWN2QVVY?=
 =?utf-8?B?eWRQZUVsdjM2NjZGd2NVelRSa1pKLzJGMnNNZW5Kc2JOdERXUlhVVk9vQU9l?=
 =?utf-8?B?K3ptNk5PL0FmaFc0VTk1b00vR1k2OGlsYkd2eVU2MEIxWGpnSzdCdHplcmho?=
 =?utf-8?B?Z1FxbGcrYVVuUmpEWXVydksva2NIR3RZTjMwdndTc1NjcTJrd1cxdzRpZFF5?=
 =?utf-8?B?NFIyYjk4NldobVlTZ20yR3E5YlpyY29ibE9pOWREeUI5eXdoTXpCUmRjbTBU?=
 =?utf-8?B?bHBNWE1jdGJDaWhPZWZhM2Eyb0E0cVk3cUNhbkxaNzA0WlJjdDg3elliakda?=
 =?utf-8?B?b2tvTFlxRGR6bGt6bm1IMEF1TjBDMkN2Vmh5SzJRdEJMcmZvVys5bzhBR3o3?=
 =?utf-8?B?clJFR1l3WkhqcGw5aVRpdzZqY1hoNUpPVW0vSWVDSkFDZCs4bDhqenBiMlRl?=
 =?utf-8?B?TzNRRUJpNWw2ZVdpMkdhRm9Id1YwaC8zTSs2MXpldGhjWjBWdWlKeW1NZWIx?=
 =?utf-8?B?bEM5WnlaSWFiWWdMQXBxMm94dWFDK1lTWmxLOGw0MWllaUFTWWUxeDc2Y0JS?=
 =?utf-8?B?NlpzM3o3aUJUSW1ZSTFUa2F3UDJCM1ZKc2h0UG8zYmZxYWFmUDlLOU1ReW9M?=
 =?utf-8?B?TTNXVGovcVV1czIra2I5cTFFWGhHWEhhTWsxWmptQzdvQnpWSmxPdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 112036f2-ac58-4d03-395e-08deaa75c191
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 07:13:07.0933
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: h87a38DH2uw52hpMTX7I67I2fvgTric9mRzCLdQ0BUHQSw3mGwYG40vNChTipRjc6KYtGKBQ1Q5eufeK1Bst3A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5752
X-purgate-ID: tlsNG-720697/1777965191-B3563161-C92E432A/0/0
X-purgate-type: clean
X-purgate-size: 2527

On Tue, May 05, 2026 at 08:48:15AM +0200, Orzel, Michal wrote:
> 
> 
> On 04-May-26 17:28, Roger Pau Monné wrote:
> > On Thu, Apr 30, 2026 at 02:51:02PM +0200, Michal Orzel wrote:
> >> The generic pdx_to_page() and page_to_pdx() macros in xen/pdx.h assume
> >> the frame table starts at PDX 0, which is only true on x86. ARM
> >> uses a non-zero frametable_base_pdx to offset into the frame table (PPC also
> >> defines it).
> >>
> >> Fix the generic macros to subtract/add frametable_base_pdx, defaulting
> >> to 0 when the arch does not define it. This makes the generic macros
> >> correct for all architectures, even though they are only used on x86
> >> today.
> > 
> > Hm, I assume this offset was added because the original mask PDX
> > compression won't (usually) compress the gap between 0 and the start
> > of RAM.  However the newish offset PDX compression should be able to
> > compress from 0 to start of RAM, and hence you don't need to apply
> > an extra PDX offset there?
> > 
> > If that's indeed the case it might be better to integrate
> > frametable_base_pdx into the mask compression algorithm itself, so
> > that on some arches it's a mask plus a decrease.
> The offset is needed regardless of whether compression is used. With
> CONFIG_PDX_NONE (no compression, PDX == MFN), if RAM starts at e.g.
> 0x80000000, the first valid PDX is 0x80000.

OK, so you are doing some (kind of) address space compression (removing
the leading empty range to the first RAM region) even when PDX is
disabled.

> Without frametable_base_pdx
> the frame table would have to be indexed from 0, wasting
> 0x80000 * sizeof(page_info) of memory just to cover the hole before RAM.

But you don't really "waste" memory, just address space?  Oh, maybe
not on ARM as it doesn't use pdx_group_valid?  And so you
unconditionally populate the frametable from PDX 0 to max PDX.

> So frametable_base_pdx is really a frame table indexing offset, not
> something tied to the compression algorithm.

Right, it just seems odd to do that extra subtraction when using
offset compression, as in that case the compression logic itself
should remove that leading gap when RAM doesn't start at 0.

Instead of generalizing and expanding the usage of frametable_base_pdx
it might be better to implement support for pdx_group_valid when
populating the frame table, and switch by default to the offset
compression method that will already remove any leading unpopulated
spaces?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue May 05 07:26:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 07:26:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300239.1574763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKAB4-00062H-HR; Tue, 05 May 2026 07:26:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300239.1574763; Tue, 05 May 2026 07:26:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKAB4-00062A-Ep; Tue, 05 May 2026 07:26:46 +0000
Received: by outflank-mailman (input) for mailman id 1300239;
 Tue, 05 May 2026 07:26:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wKAB3-000624-IU
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 07:26:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKAB2-00BQcD-UD
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 09:26:44 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f99bb1-bab6-0a2a0a5309dd-0a2a450ba790-14
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 09:26:44 +0200
Received: from [209.85.167.44] (helo=mail-lf1-f44.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f99bb4-212f-0a2a450b0019-d155a72cc13f-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 09:26:44 +0200
Received: by mail-lf1-f44.google.com with SMTP id
 2adb3069b0e04-5a86c1fe573so3345260e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 00:26:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1777966004; cv=none;
        d=google.com; s=arc-20240605;
        b=Huwg4e0zbCTcfdwM9V6WTz77WhFRgwjTm9riaSqcSqo4urI7vKjcG/Jyw9xU2bP6q9
         y0kFJF7D1+WRpWiiYx6HWqBaH2TtmvOeQWT+xG1FxCDRDQ03dSXRHouaeTCtwxs2joMv
         Cj4TNRWUFkzNJDHVSheIm2KXMGtvfQ/A1fHLBdbQVafAm4fWtajrsHTaJwZCctOgr43P
         AgcB4T1XN5JlRTuKja7S1oOJb93Mj43co/SrJwB+oJdgqgCPxk2s6Z4FDjzeo9IDycF9
         EOmdSVkcLrlCdDJQpEsl5tiPwT4UmPPzPLYajXWQYEldqvWLq3uklc8KOt5edplyWmrX
         Czsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=uJxBCTgTohl1pMx8+6kEX1CK8xPhaZnIMEyskNzn4a4=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=WKScqAsni3FR11J/5KSR3rL2zBLrLopjmTA51Hqp4HOmpEzLyWZdvIWiQ+dVRXwJKd
         OX5GOaGNkYBk3GXSI2zM+N/3Uh4i7CkKbUKJzj5w2bSAqoOGOEk/GFKo5AcwdGMMeaxd
         x92WywLfYioOG3B3iHqKTPSsbBTMqQ8ww9BojB9acmtvmsXtBf5FDvCk3HQGs8yStWm7
         JQRJqhQ6GdXpAKY+nQrAkdT8uskV0IDs7OG91o9Nks9MzYZKG/hFLZg99Ew1KbPn6B7g
         ILL272l+7I1Pnzhq+TfVnkZW+C0lz8Ygohir3YL5eoNPZgZ0B+46mv4My0BoklV6S3Vs
         EDJQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777966004; x=1778570804; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uJxBCTgTohl1pMx8+6kEX1CK8xPhaZnIMEyskNzn4a4=;
        b=EwIloe7z8Es7LEhc5k7/3IQoW+nbMBn7bvm6lIUzHLLAOpLm5d/d+Xwmiy54b9wepB
         CUBvIaPNi9rKbyO+I02HqsajdHDbG/52caDow6iX1khy4H6nO95cpPtZDbImMgbrE7wJ
         b1Ff93yqsasBq4g6vKkRMIIbNYHcprUo7JHmSC/IEZnR78Edt/K+cukRL/IehVktqYlJ
         B7HmYNhfI5O9oJoNzqUNKtDO3w/yKtnceQUIg2Lw37a9YsEIoNO/l5/ErArLbL5JuA9k
         N4Vz2A2PyvxW3MkZ3XLB9iOYuagjjNdDAJpW/YWpy5n7BC4Tm5lF4SNVd1W1mNSV6uhk
         WPCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777966004; x=1778570804;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=uJxBCTgTohl1pMx8+6kEX1CK8xPhaZnIMEyskNzn4a4=;
        b=rL/A4pJTSrzMce3z23cssgZi3kho6OtfXTfaE1hb8GsbzgTy0DksCp7lAaf6wF8Xhq
         VCR7kseRjxU4szkBldtmHLU7KPDW3fRMwTurPFPw7Cg96wxhensKakdnq6br8zdIjSZJ
         L9gUQMCdLwp2VCUvCSsFFECKJBCfcFmgX1o3tC7WjZ7zjW5qFKRZhwI0YOBousBTucPd
         KcbYWc1FJA5owJtJUPAWvxIl/EQl+Y/a4XrCphRDqFzJ7lsAsnWbvKjZHs+tVCpOXh5Z
         oN/ls4DYfeG+jW8T8+J3JqtxRPbYS09DnvK7iEhyFwE5BQQ+JyV3KlbEbK1lzXeAJ0sP
         Lplw==
X-Gm-Message-State: AOJu0YyYyOb7+1tJ3XBeEgveNRdvk+Y0oAWTzig/yki6Tsox0kFRGaDB
	Tio7ITBa6Um58GQ0DnZee2NGrwwl/p21YnRrToAUpOQX4YNEC0fSSmdR2nMsBUMjZrlM4BV6wLJ
	2PzkgH4fpNPCuuHYJDQYoVwifO3WypNA=
X-Gm-Gg: AeBDieuGUNfkfweAykE7EZIa0jc7uuFdQ/QYPPWDyka1/y3A3rn+QCqi/Bb74LRDewY
	IO4qUQgbQhBA5jeCfC+XRLshmzZlMioClYl8RvWmXshXxgF19g4mSq8wQs8zDCHu9/oVx7UgI4O
	qYrF1Xo9Ou+XPNJ1ge/tGAntB+vJJivpBtngaUwJrr1XXoaC2LJLvWyZGXjN38+PMnXUyfHPpYk
	x6JMRxY38WZNrhgSYRMUxnMpODmNc02DQW4wfg0i7hXNjFeji5g+zVcEB9/j4E2prp2mw37/q4c
	YINy99s7ztwrJtl6
X-Received: by 2002:a05:6512:31c8:b0:5a2:abe6:7bcd with SMTP id
 2adb3069b0e04-5a8631bac61mr3764812e87.19.1777966003685; Tue, 05 May 2026
 00:26:43 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <d3398c62b8604bb869c204e3786f0b0246de7375.1775125380.git.mykola_kvach@epam.com>
 <EA1567BB-4ED9-41C7-BDD9-9DABAA2D2855@arm.com>
In-Reply-To: <EA1567BB-4ED9-41C7-BDD9-9DABAA2D2855@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 5 May 2026 10:26:31 +0300
X-Gm-Features: AVHnY4Ky8uJFLCBFZxjqUatpRvUbmjeQYVNb3WJbGYVqkHisl24pBjVF68cIxuo
Message-ID: <CAGeoDV_ahBPZg1EW5zTYug4xLAFZe0SU2Wk9=ysuBP3+5QZXzg@mail.gmail.com>
Subject: Re: [PATCH v8 04/13] xen/arm: gic-v3: Implement GICv3 suspend/resume functions
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-42698a/1777966004-7F57BF3B-15AC97D2/0/0
X-purgate-type: clean
X-purgate-size: 16123

Hi Luca,

Thank you for the review.

On Thu, Apr 23, 2026 at 2:29=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> > diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> > index 34fb065afc..d182a71478 100644
> > --- a/xen/arch/arm/gic-v3.c
> > +++ b/xen/arch/arm/gic-v3.c
> > @@ -1072,12 +1072,12 @@ out:
> >     return res;
> > }
> >
> > -static void gicv3_hyp_disable(void)
> > +static void gicv3_hyp_enable(bool enable)
> > {
> >     register_t hcr;
> >
> >     hcr =3D READ_SYSREG(ICH_HCR_EL2);
> > -    hcr &=3D ~GICH_HCR_EN;
> > +    hcr =3D enable ? (hcr | GICH_HCR_EN) : (hcr & ~GICH_HCR_EN);
> >     WRITE_SYSREG(hcr, ICH_HCR_EL2);
> >     isb();
> > }
> > @@ -1184,7 +1184,7 @@ static void gicv3_disable_interface(void)
> >     spin_lock(&gicv3.lock);
> >
> >     gicv3_cpu_disable();
> > -    gicv3_hyp_disable();
> > +    gicv3_hyp_enable(false);
> >
> >     spin_unlock(&gicv3.lock);
> > }
> > @@ -1920,6 +1920,313 @@ static bool gic_dist_supports_lpis(void)
> >     return (readl_relaxed(GICD + GICD_TYPER) & GICD_TYPE_LPIS);
> > }
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +/* This struct represent block of 32 IRQs */
>
> NIT: s/represent/represents

Ack.

>
> > +struct dist_irq_block {
> > +    uint32_t icfgr[2];
> > +    uint32_t ipriorityr[8];
> > +    uint64_t irouter[32];
> > +    uint32_t isactiver;
> > +    uint32_t isenabler;
> > +};
> > +
> > +struct redist_ctx {
> > +    uint32_t ctlr;
> > +    uint32_t icfgr; /* only PPIs stored */
> > +    uint32_t igroupr;
>
> I think Xen writes also GICD_IGROUPR<n>E, we are not saving it so in case=
 of a reset
> we would have GICD_IGROUPR<n>E containing the reset value which is zero.
> Or we could decide to re-initialise it in the same way Xen does (all 1s).

Yes, good point.

For the normal SPI range I re-initialise GICD_IGROUPR to all 1s during resu=
me,
but I missed doing the same for the eSPI range. I will add the correspondin=
g
GICD_IGROUPR<n>E re-initialisation, matching the normal Xen initialisation =
path.

>
> > +    uint32_t ipriorityr[8];
> > +    uint32_t isactiver;
> > +    uint32_t isenabler;
> > +
> > +    uint64_t pendbase;
> > +    uint64_t propbase;
> > +};
> > +
> > +/* GICv3 registers to be saved/restored on system suspend/resume */
> > +struct gicv3_ctx {
> > +    struct dist_ctx {
> > +        uint32_t ctlr;
> > +        struct dist_irq_block *irqs, *espi_irqs;
>
> NIT: I would declare them one after the other and not in the same line, b=
ut this is a matter of taste
> maybe so I will leave the decision to the maintainers.

Ack.

>
> > +    } dist;
> > +
> > +    /* have only one rdist structure for last running CPU during suspe=
nd */
> > +    struct redist_ctx rdist;
> > +
> > +    struct cpu_ctx {
> > +        uint32_t ctlr;
> > +        uint32_t pmr;
> > +        uint32_t bpr;
> > +        uint32_t sre_el2;
> > +        uint32_t grpen;
> > +    } cpu;
> > +};
> > +
> > +static struct gicv3_ctx gicv3_ctx;
> > +
> > +static void __init gicv3_alloc_context(void)
> > +{
> > +    uint32_t blocks =3D DIV_ROUND_UP(gicv3_info.nr_lines, 32);
> > +
> > +    /* The spec allows for systems without any SPIs */
> > +    if ( blocks > 1 )
> > +    {
> > +        gicv3_ctx.dist.irqs =3D xzalloc_array(struct dist_irq_block, b=
locks - 1);
> > +        if ( !gicv3_ctx.dist.irqs )
> > +            panic("Failed to allocate memory for GICv3 suspend context=
\n");
> > +    }
> > +
> > +#ifdef CONFIG_GICV3_ESPI
> > +    if ( !gic_number_espis() )
> > +        return;
> > +
> > +    blocks =3D gic_number_espis() / 32;
> > +    gicv3_ctx.dist.espi_irqs =3D xzalloc_array(struct dist_irq_block, =
blocks);
> > +    if ( !gicv3_ctx.dist.espi_irqs )
> > +        panic("Failed to allocate memory for GICv3 eSPI suspend contex=
t\n");
> > +#endif
> > +}
> > +
> > +static int gicv3_disable_redist(void)
> > +{
> > +    void __iomem *waker =3D GICD_RDIST_BASE + GICR_WAKER;
> > +    s_time_t deadline;
> > +
> > +    /*
> > +     * Avoid infinite loop if Non-secure does not have access to GICR_=
WAKER.
> > +     * See Arm IHI 0069H.b, 12.11.42 GICR_WAKER:
> > +     *     When GICD_CTLR.DS =3D=3D 0 and an access is Non-secure acce=
sses to this
> > +     *     register are RAZ/WI.
> > +     */
> > +    if ( !(readl_relaxed(GICD + GICD_CTLR) & GICD_CTLR_DS) )
> > +        return 0;
> > +
> > +    deadline =3D NOW() + MILLISECS(1000);
> > +
> > +    writel_relaxed(readl_relaxed(waker) | GICR_WAKER_ProcessorSleep, w=
aker);
> > +    while ( (readl_relaxed(waker) & GICR_WAKER_ChildrenAsleep) =3D=3D =
0 )
> > +    {
> > +        if ( NOW() > deadline )
> > +        {
> > +            printk("GICv3: Timeout waiting for redistributor to sleep\=
n");
> > +            return -ETIMEDOUT;
> > +        }
> > +        cpu_relax();
> > +        udelay(10);
> > +    }
> > +
> > +    return 0;
> > +}
> > +
> > +#define GET_SPI_REG_OFFSET(name, is_espi) \
> > +    ((is_espi) ? GICD_##name##nE : GICD_##name)
> > +
> > +static void gicv3_store_spi_irq_block(struct dist_irq_block *irqs,
> > +                                      unsigned int i, bool is_espi)
> > +{
> > +    void __iomem *base;
> > +    unsigned int irq;
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ICFGR, is_espi) + i * sizeof(ir=
qs->icfgr);
> > +    irqs->icfgr[0] =3D readl_relaxed(base);
> > +    irqs->icfgr[1] =3D readl_relaxed(base + 4);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(IPRIORITYR, is_espi);
> > +    base +=3D i * sizeof(irqs->ipriorityr);
> > +    for ( irq =3D 0; irq < ARRAY_SIZE(irqs->ipriorityr); irq++ )
> > +        irqs->ipriorityr[irq] =3D readl_relaxed(base + 4 * irq);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(IROUTER, is_espi);
> > +    base +=3D i * sizeof(irqs->irouter);
> > +    for ( irq =3D 0; irq < ARRAY_SIZE(irqs->irouter); irq++ )
> > +        irqs->irouter[irq] =3D readq_relaxed_non_atomic(base + 8 * irq=
);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ISACTIVER, is_espi);
> > +    base +=3D i * sizeof(irqs->isactiver);
> > +    irqs->isactiver =3D readl_relaxed(base);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ISENABLER, is_espi);
> > +    base +=3D i * sizeof(irqs->isenabler);
> > +    irqs->isenabler =3D readl_relaxed(base);
> > +}
> > +
> > +static void gicv3_restore_spi_irq_block(struct dist_irq_block *irqs,
> > +                                        unsigned int i, bool is_espi)
> > +{
> > +    void __iomem *base;
> > +    unsigned int irq;
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ICFGR, is_espi) + i * sizeof(ir=
qs->icfgr);
> > +    writel_relaxed(irqs->icfgr[0], base);
> > +    writel_relaxed(irqs->icfgr[1], base + 4);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(IPRIORITYR, is_espi);
> > +    base +=3D i * sizeof(irqs->ipriorityr);
> > +    for ( irq =3D 0; irq < ARRAY_SIZE(irqs->ipriorityr); irq++ )
> > +        writel_relaxed(irqs->ipriorityr[irq], base + 4 * irq);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(IROUTER, is_espi);
> > +    base +=3D i * sizeof(irqs->irouter);
> > +    for ( irq =3D 0; irq < ARRAY_SIZE(irqs->irouter); irq++ )
> > +        writeq_relaxed_non_atomic(irqs->irouter[irq], base + 8 * irq);
>
>
> The [1] 12.9.22 GICD_IROUTER<n> says "these registers are used only when =
affinity routing is enabled.
> When affinity routing is not enabled: These registers are RES0. An implem=
entation is permitted to make
> the register RAZ/WI in this case=E2=80=9D
>
> So I think these needs to be written after we set GICD_CTLR or we are goi=
ng to loose anything written there
> and also the configuration won=E2=80=99t be restored.

You are right. Restoring IROUTER before restoring the affinity-routing stat=
e is
not safe, because these registers are only meaningful when affinity routing=
 is
enabled.

I will fix the restore ordering in the next version.

>
>
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ICENABLER, is_espi) + i * 4;
> > +    writel_relaxed(GENMASK(31, 0), base);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ISENABLER, is_espi);
> > +    base +=3D i * sizeof(irqs->isenabler);
> > +    writel_relaxed(irqs->isenabler, base);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ICACTIVER, is_espi) + i * 4;
> > +    writel_relaxed(GENMASK(31, 0), base);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ISACTIVER, is_espi);
> > +    base +=3D i * sizeof(irqs->isactiver);
> > +    writel_relaxed(irqs->isactiver, base);
> > +}
> > +
> > +static int gicv3_suspend(void)
> > +{
> > +    unsigned int i;
> > +    void __iomem *base;
> > +    int ret;
> > +    struct redist_ctx *rdist =3D &gicv3_ctx.rdist;
> > +
> > +    /* Save GICC configuration */
> > +    gicv3_ctx.cpu.ctlr     =3D READ_SYSREG(ICC_CTLR_EL1);
> > +    gicv3_ctx.cpu.pmr      =3D READ_SYSREG(ICC_PMR_EL1);
> > +    gicv3_ctx.cpu.bpr      =3D READ_SYSREG(ICC_BPR1_EL1);
> > +    gicv3_ctx.cpu.sre_el2  =3D READ_SYSREG(ICC_SRE_EL2);
> > +    gicv3_ctx.cpu.grpen    =3D READ_SYSREG(ICC_IGRPEN1_EL1);
> > +
> > +    gicv3_disable_interface();
>
> this one is calling also gicv3_cpu_disable() that will zero ICC_IGRPEN1_E=
L1 ...
>
> > +
> > +    ret =3D gicv3_disable_redist();
> > +    if ( ret )
> > +        goto out_enable_iface;
>
> =E2=80=A6 but when we fail here ...
>
> > +
> > +    /* Save GICR configuration */
> > +    gicv3_redist_wait_for_rwp();
> > +
> > +    base =3D GICD_RDIST_BASE;
> > +
> > +    rdist->ctlr =3D readl_relaxed(base + GICR_CTLR);
> > +
> > +    rdist->propbase =3D readq_relaxed(base + GICR_PROPBASER);
> > +    rdist->pendbase =3D readq_relaxed(base + GICR_PENDBASER);
> > +
> > +    base =3D GICD_RDIST_SGI_BASE;
> > +
> > +    /* Save priority on PPI and SGI interrupts */
> > +    for ( i =3D 0; i < NR_GIC_LOCAL_IRQS / 4; i++ )
> > +        rdist->ipriorityr[i] =3D readl_relaxed(base + GICR_IPRIORITYR0=
 + 4 * i);
> > +
> > +    rdist->isactiver =3D readl_relaxed(base + GICR_ISACTIVER0);
> > +    rdist->isenabler =3D readl_relaxed(base + GICR_ISENABLER0);
> > +    rdist->igroupr   =3D readl_relaxed(base + GICR_IGROUPR0);
> > +    rdist->icfgr     =3D readl_relaxed(base + GICR_ICFGR1);
> > +
> > +    /* Save GICD configuration */
> > +    gicv3_dist_wait_for_rwp();
> > +    gicv3_ctx.dist.ctlr =3D readl_relaxed(GICD + GICD_CTLR);
> > +
> > +    for ( i =3D 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ )
> > +        gicv3_store_spi_irq_block(gicv3_ctx.dist.irqs + i - 1, i, fals=
e);
> > +
> > +#ifdef CONFIG_GICV3_ESPI
> > +    for ( i =3D 0; i < gic_number_espis() / 32; i++ )
> > +        gicv3_store_spi_irq_block(gicv3_ctx.dist.espi_irqs + i, i, tru=
e);
> > +#endif
> > +
> > +    return 0;
> > +
> > + out_enable_iface:
> > +    gicv3_hyp_enable(true);
> > +    WRITE_SYSREG(gicv3_ctx.cpu.ctlr, ICC_CTLR_EL1);
>
> we don=E2=80=99t recover ICC_IGRPEN1_EL1

Yes, you are right.

This series missed the change introduced by commit 18b718b6af3d ("xen/arm:
gic-v3: disable Group 1 before CPU power-down"). Since gicv3_cpu_disable() =
now
disables ICC_IGRPEN1_EL1, the error path needs to restore it before returni=
ng.

I will fix this in the next version.

Best regards,
Mykola

>
> > +    isb();
> > +
> > +    return ret;
> > +}
> > +
> > +static void gicv3_resume(void)
> > +{
> > +    int ret;
> > +    unsigned int i;
> > +    void __iomem *base;
> > +    struct redist_ctx *rdist =3D &gicv3_ctx.rdist;
> > +
> > +    writel_relaxed(0, GICD + GICD_CTLR);
> > +
> > +    for ( i =3D NR_GIC_LOCAL_IRQS; i < gicv3_info.nr_lines; i +=3D 32 =
)
> > +        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) =
* 4);
> > +
> > +    for ( i =3D 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ )
> > +        gicv3_restore_spi_irq_block(gicv3_ctx.dist.irqs + i - 1, i, fa=
lse);
> > +
> > +#ifdef CONFIG_GICV3_ESPI
> > +    for ( i =3D 0; i < gic_number_espis() / 32; i++ )
> > +        gicv3_restore_spi_irq_block(gicv3_ctx.dist.espi_irqs + i, i, t=
rue);
> > +#endif
> > +
> > +    writel_relaxed(gicv3_ctx.dist.ctlr, GICD + GICD_CTLR);
> > +    gicv3_dist_wait_for_rwp();
> > +
> > +    ret =3D gicv3_lpi_init_rdist(GICD_RDIST_BASE);
> > +    /*
> > +     * If LPIs are already enabled, assume firmware or the still-power=
ed
> > +     * redistributor has valid PROPBASER/PENDBASER and skip reprogramm=
ing.
> > +     * Return -EBUSY so callers can ignore this case.
> > +     */
> > +    if ( ret && ret !=3D -ENODEV && ret !=3D -EBUSY )
> > +        panic("GICv3: Failed to re-initialize LPIs during resume\n");
> > +    else if ( ret =3D=3D -EBUSY ) /* extra checks, just to be sure */
> > +    {
> > +        base =3D GICD_RDIST_BASE;
> > +        if ( readq_relaxed(base + GICR_PROPBASER) !=3D rdist->propbase=
 ||
> > +             readq_relaxed(base + GICR_PENDBASER) !=3D rdist->pendbase=
 )
> > +        {
> > +            panic("GICv3: LPIs already enabled with unexpected PROPBAS=
ER/PENDBASER during resume\n");
> > +        }
> > +    }
> > +
> > +    /* Restore GICR (Redistributor) configuration */
> > +    if ( gicv3_enable_redist() )
> > +        panic("GICv3: Failed to re-enable redistributor during resume\=
n");
> > +
> > +    base =3D GICD_RDIST_SGI_BASE;
> > +
> > +    writel_relaxed(GENMASK(31, 0), base + GICR_ICENABLER0);
> > +    gicv3_redist_wait_for_rwp();
> > +
> > +    for ( i =3D 0; i < NR_GIC_LOCAL_IRQS / 4; i++ )
> > +        writel_relaxed(rdist->ipriorityr[i], base + GICR_IPRIORITYR0 +=
 i * 4);
> > +
> > +    writel_relaxed(rdist->isactiver, base + GICR_ISACTIVER0);
> > +    writel_relaxed(rdist->igroupr,   base + GICR_IGROUPR0);
> > +    writel_relaxed(rdist->icfgr,     base + GICR_ICFGR1);
> > +
> > +    gicv3_redist_wait_for_rwp();
> > +
> > +    writel_relaxed(rdist->isenabler, base + GICR_ISENABLER0);
> > +    writel_relaxed(rdist->ctlr, GICD_RDIST_BASE + GICR_CTLR);
> > +
> > +    gicv3_redist_wait_for_rwp();
> > +
> > +    WRITE_SYSREG(gicv3_ctx.cpu.sre_el2, ICC_SRE_EL2);
> > +    isb();
> > +
> > +    /* Restore CPU interface (System registers) */
> > +    WRITE_SYSREG(gicv3_ctx.cpu.pmr,   ICC_PMR_EL1);
> > +    WRITE_SYSREG(gicv3_ctx.cpu.bpr,   ICC_BPR1_EL1);
> > +    WRITE_SYSREG(gicv3_ctx.cpu.ctlr,  ICC_CTLR_EL1);
> > +    WRITE_SYSREG(gicv3_ctx.cpu.grpen, ICC_IGRPEN1_EL1);
> > +    isb();
> > +
> > +    gicv3_hyp_init();
> > +}
> > +
> > +#endif /* CONFIG_SYSTEM_SUSPEND */
> > +
> > /* Set up the GIC */
> > static int __init gicv3_init(void)
> > {
> > @@ -1994,6 +2301,10 @@ static int __init gicv3_init(void)
> >
> >     gicv3_hyp_init();
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +    gicv3_alloc_context();
> > +#endif
> > +
> > out:
> >     spin_unlock(&gicv3.lock);
> >
> > @@ -2033,6 +2344,10 @@ static const struct gic_hw_operations gicv3_ops =
=3D {
> > #endif
> >     .iomem_deny_access   =3D gicv3_iomem_deny_access,
> >     .do_LPI              =3D gicv3_do_LPI,
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +    .suspend             =3D gicv3_suspend,
> > +    .resume              =3D gicv3_resume,
> > +#endif
> > };
> >
> > static int __init gicv3_dt_preinit(struct dt_device_node *node, const v=
oid *data)
> > diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/incl=
ude/asm/gic_v3_defs.h
> > index c373b94d19..992c8f9c2f 100644
> > --- a/xen/arch/arm/include/asm/gic_v3_defs.h
> > +++ b/xen/arch/arm/include/asm/gic_v3_defs.h
> > @@ -94,6 +94,7 @@
> > #define GICD_TYPE_LPIS               (1U << 17)
> >
> > #define GICD_CTLR_RWP                (1UL << 31)
> > +#define GICD_CTLR_DS                 (1U << 6)
> > #define GICD_CTLR_ARE_NS             (1U << 4)
> > #define GICD_CTLR_ENABLE_G1A         (1U << 1)
> > #define GICD_CTLR_ENABLE_G1          (1U << 0)
> >
>
> Cheers,
> Luca
>
>
>
>


From xen-devel-bounces@lists.xenproject.org Tue May 05 07:35:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 07:35:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300253.1574773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKAJO-0007q8-E4; Tue, 05 May 2026 07:35:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300253.1574773; Tue, 05 May 2026 07:35:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKAJO-0007q1-B2; Tue, 05 May 2026 07:35:22 +0000
Received: by outflank-mailman (input) for mailman id 1300253;
 Tue, 05 May 2026 07:35:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wKAJM-0007pv-JR
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 07:35:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKAJL-00Cpvh-JS
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 09:35:19 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f99da5-e002-0a2a0a5209dd-0a2a4509de12-42
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 09:35:18 +0200
Received: from [52.101.85.49]
 (helo=BYAPR05CU005.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f99db5-2497-0a2a45090019-34655531b3e8-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 09:35:18 +0200
Received: from CY5PR13CA0096.namprd13.prod.outlook.com (2603:10b6:930:a::16)
 by SA1PR12MB9492.namprd12.prod.outlook.com (2603:10b6:806:459::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 07:35:14 +0000
Received: from CY4PEPF0000E9CD.namprd03.prod.outlook.com
 (2603:10b6:930:a:cafe::b1) by CY5PR13CA0096.outlook.office365.com
 (2603:10b6:930:a::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.14 via Frontend Transport; Tue,
 5 May 2026 07:35:14 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CY4PEPF0000E9CD.mail.protection.outlook.com (10.167.241.132) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Tue, 5 May 2026 07:35:13 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 5 May
 2026 02:35:08 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 5 May 2026 02:35:07 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=y0It1EC1G3ufCyMA5Ws0UIy+s0NXZPgLIRViRnVrfUZmr6DHQCuPQie3j9oaHC66hon4WZ4iATxyY++q/ovkJh1BkreGYiXpjvo+JItBrLyrYIVj2yRIESHqmb0a00eHRVSLq5fQBbrArCn686mUrYnYD6GACMUBi2ub7kL8UYiotn7Q143SwRZKwGUdrX8evOzNwKNqyL2n7864knzqS9RViXbsMqF+nWG6yk6TGcwGvamydpUF9Odrz2hg9bI1URraSaFZYSrMCV96JpJuwbOK/wUETyfjhwUq6Zaul28Blj/j1AufULo+RBrAdGqWIqvQSh4/St90qLYgdGDXqg==
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=bIQ6B5QXxPXvMZAEqD+pNtNTZG1nBhilZB1wzodtdWQ=;
 b=ohCiVgPOKQ4QKVwjxgRHvYYQ6LNGBMPH0ChSvEJamqm6T30Jw4W+Ti8Vy2mndbzHc3Y5JUuxJObgVIy0PkgvIzL81P1T0vulM4IiDHzJnLXwga30FYzm01rQLjJHPFg3DVzJ3w2BxhRpB5bQXYE5Yi9hEN0iOdxvVrhObNowhU9Hbol+J5rFVnvu0PWkzXizkrpyXmFveYK2DbmBtYGL0r2ZBMMP8nVB5GEYzuzovtV0JpodvKTVVOqEJuK/y0Dn5txrZS6hSWCB5LgA+2Wmg9exCWdXK5yYQ74w/DtoASCksBawes2WBgAbYt4LkP2DUnTStyVKA7j5fVtj6fJMhw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bIQ6B5QXxPXvMZAEqD+pNtNTZG1nBhilZB1wzodtdWQ=;
 b=vw8uMB/QxiHbyK+iNor5i5aZT/jTv9neGt01MDedjzPP0hUm5iwFWOLMwpdfObURQQ74wVp8+udP7qCbZLhbJEpKMvorsN7LKBYZUyNhWdCxktWzE3YknBLENke1YUCGqKlNLd9sS7ORHCM8CQTKnNATRHO6LUrv2LcecrXShn0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <309b2ff6-c200-47d0-be3f-ec289df641c6@amd.com>
Date: Tue, 5 May 2026 09:35:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
CC: <xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Teddy Astie <teddy.astie@vates.tech>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
 <afi7HUFoDYabM9VV@macbook.local>
 <65ecf1c0-0844-4ba9-a250-a94aeaf4d251@amd.com>
 <afmYf-ldUxWQXRDL@macbook.local>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <afmYf-ldUxWQXRDL@macbook.local>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9CD:EE_|SA1PR12MB9492:EE_
X-MS-Office365-Filtering-Correlation-Id: e4444458-816b-42d3-e7f2-08deaa78d8a3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|7416014|82310400026|1800799024|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	jrvBht3DVdMwkvlJt91nj9mZBKfHAeB3Dl+GXPzXJ6Qu/qoinKpjBN+GkV1PB/FQ7oPWsU1CE16u+NY8S7jjDUaB0EpWmP9tmD8F3Px8paWh8PQ9fXt8FXdoEyc6d/91o23v0k1bbhV8Einak/+Emi8qfyewzY9JsAPvwlVFupBvRgDsaayPkHLD1QNpBIeSK6jHIhaA62mqRnjLEaq1OV3dojFHAOm8SMeymRTBeayWCgoMqd82hRyJVlZ49KJLsrUlTA+oJDRnCqQgFB6L8fiUdXKECiPBaSmslHIZkWjTxcISfhjFnyVt/lTDGzzZHLob19OiO+KVOQhRYzFhqhqHMOBabcp0UhYP8rQXFEmImNzryOvmJRk13D62KPLYjVJiZ4F/7+vRZC5wa5WEpzr6v1Nt8EJBGD+jPxUaJ2eOdlQVeSOOrngje7lFxhLTp/4+yVXYFs7INsT9WTPGZ19yWINMpLehqkE76gJWDBFHQ304cONIowjCIhqlR/7yxdNrOdeGtMXkGRJduuWUpTvVVktf+gpWjqk9XTt60N0yxkxOkj0Ko6/1XbHqfOCIQKUsyU7vOb5deHy3GcGQ5x7vkTg1mTQEd55TtHHmfX7b1uH2I6Dls2zpplLIKYa1RyUD/SUmf2C3g0Kn7+NaJ9EcSrjmIh6fBDz0iMYv9EFpC/8GiCC1a9n/XU963fr68zh/pE5zKqaF5jdDZ/zgSbsNgrnB1QFtuzf+YTfPVso=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(7416014)(82310400026)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	UCC6pGxMKUHVU6s3G5rEyrJx77K8Phxhkit3D8xfKHkzNkBu81ZZzMfx3qLV2EoL+JpPuWdpdaI4lCgHoyoNqUyUeqlonPFDYQv4IZNwx7Bl9eYDKmEp21lN4n739Rkz0Lj4lzD9tp8oJFRHj18+Ixxa01pSFveTP7Z6oKYPHYCR2ks7vPdqIK93/nsHpR73AiHFyWtaFsrQGrfKZxJMtFfQVc/6Qawraqh484fHWwyYIRGmnjcp0W8NifWVizIEZNYYsf2BhOq88GIoQX1TWs6aJtb8ZbBOfNwrjO7MDzd/dye8sMdtVxVVliGVyLGRfkrJ+qUDYstHuNgjIgxsQ+hp5pJHbFtBwR8eNYiOuFqOW6yv4buuL8hBrBZehNMuVJaabPHqDoegwWNunRzC7+4AZLITN3YOBj3rmp+zxJVmremZlbP4l5l7wS9xtKVr
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 07:35:13.9109
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e4444458-816b-42d3-e7f2-08deaa78d8a3
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9CD.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB9492
X-purgate-ID: tlsNG-bad1c0/1777966518-486A8A53-D82A06C7/0/0
X-purgate-type: clean
X-purgate-size: 3533



On 05-May-26 09:13, Roger Pau Monné wrote:
> On Tue, May 05, 2026 at 08:48:15AM +0200, Orzel, Michal wrote:
>>
>>
>> On 04-May-26 17:28, Roger Pau Monné wrote:
>>> On Thu, Apr 30, 2026 at 02:51:02PM +0200, Michal Orzel wrote:
>>>> The generic pdx_to_page() and page_to_pdx() macros in xen/pdx.h assume
>>>> the frame table starts at PDX 0, which is only true on x86. ARM
>>>> uses a non-zero frametable_base_pdx to offset into the frame table (PPC also
>>>> defines it).
>>>>
>>>> Fix the generic macros to subtract/add frametable_base_pdx, defaulting
>>>> to 0 when the arch does not define it. This makes the generic macros
>>>> correct for all architectures, even though they are only used on x86
>>>> today.
>>>
>>> Hm, I assume this offset was added because the original mask PDX
>>> compression won't (usually) compress the gap between 0 and the start
>>> of RAM.  However the newish offset PDX compression should be able to
>>> compress from 0 to start of RAM, and hence you don't need to apply
>>> an extra PDX offset there?
>>>
>>> If that's indeed the case it might be better to integrate
>>> frametable_base_pdx into the mask compression algorithm itself, so
>>> that on some arches it's a mask plus a decrease.
>> The offset is needed regardless of whether compression is used. With
>> CONFIG_PDX_NONE (no compression, PDX == MFN), if RAM starts at e.g.
>> 0x80000000, the first valid PDX is 0x80000.
> 
> OK, so you are doing some (kind of) address space compression (removing
> the leading empty range to the first RAM region) even when PDX is
> disabled.
> 
>> Without frametable_base_pdx
>> the frame table would have to be indexed from 0, wasting
>> 0x80000 * sizeof(page_info) of memory just to cover the hole before RAM.
> 
> But you don't really "waste" memory, just address space?  Oh, maybe
> not on ARM as it doesn't use pdx_group_valid?  And so you
> unconditionally populate the frametable from PDX 0 to max PDX.
With pdx_group_valid (which this series adds) we wouldn't waste
physical memory for the leading gap. But we'd still waste virtual address
space and the FRAMETABLE_NR check (max_pdx > FRAMETABLE_NR) becomes tighter
because the full range from PDX 0 must fit. For example with RAM starting at 5TB
the virtual offset before the first usable entry would be ~70GB — more than the
entire 32GB FRAMETABLE_SIZE on ARM64.

> 
>> So frametable_base_pdx is really a frame table indexing offset, not
>> something tied to the compression algorithm.
> 
> Right, it just seems odd to do that extra subtraction when using
> offset compression, as in that case the compression logic itself
> should remove that leading gap when RAM doesn't start at 0.
> 
> Instead of generalizing and expanding the usage of frametable_base_pdx
> it might be better to implement support for pdx_group_valid when
> populating the frame table, and switch by default to the offset
> compression method that will already remove any leading unpopulated
> spaces?
Switching the compression method would be a bigger change, and with feature
freeze on Friday I'd prefer not to get into that now. The current approach
is minimal and self-contained and works with mask and no-pdx which is what we
use nowadays: frametable_base_pdx already existed on ARM and PPC, we're just
making the generic macros aware of it as Julien requested (in v1 I just
overwrote the macro in local file). We can revisit the compression strategy as a
follow-up next release.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue May 05 08:07:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 08:07:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300293.1574814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKAo0-0004bF-EH; Tue, 05 May 2026 08:07:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300293.1574814; Tue, 05 May 2026 08:07:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKAo0-0004b8-BL; Tue, 05 May 2026 08:07:00 +0000
Received: by outflank-mailman (input) for mailman id 1300293;
 Tue, 05 May 2026 08:06:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wKAny-0004b2-TK
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 08:06:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKAny-0054uZ-4y
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:06:58 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69f9a513-e002-0a2a0a5209dd-0a2a450792aa-48
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 10:06:57 +0200
Received: from [195.135.223.131] (helo=smtp-out2.suse.de)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69f9a521-229c-0a2a45070019-c387df83ce10-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 10:06:57 +0200
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 97BE35C57E;
 Tue,  5 May 2026 08:06:57 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 5A644593A3;
 Tue,  5 May 2026 08:06:57 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 7q3WFCGl+WkYaAAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 05 May 2026 08:06:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1777968417; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=NTn/SLA/xstL2gHJnsf3LMIqdLycLGiM0cMPirzKlrc=;
	b=DZjtO7swahR8wcnvYPbdAIc3QHLc9AGM6GYBUE0ygarRoXh7hSXzpmahMLZRT0L7bANpBw
	45IADU8KPyAWRFmKEJekPKRXSP20PQimNUgMvPBmtLvGGIf3JjDbUUFzpHe1E4CKL+CQOq
	5pjSCEuwOCndNzYzzzzIfsntqY+vyB4=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=DZjtO7sw
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1777968417; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=NTn/SLA/xstL2gHJnsf3LMIqdLycLGiM0cMPirzKlrc=;
	b=DZjtO7swahR8wcnvYPbdAIc3QHLc9AGM6GYBUE0ygarRoXh7hSXzpmahMLZRT0L7bANpBw
	45IADU8KPyAWRFmKEJekPKRXSP20PQimNUgMvPBmtLvGGIf3JjDbUUFzpHe1E4CKL+CQOq
	5pjSCEuwOCndNzYzzzzIfsntqY+vyB4=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH] x86/xen: Fix a potential problem in xen_e820_resolve_conflicts()
Date: Tue,  5 May 2026 10:06:53 +0200
Message-ID: <20260505080653.197775-1-jgross@suse.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Rspamd-Action: no action
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	RCPT_COUNT_SEVEN(0.00)[10];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RCVD_TLS_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email,suse.com:mid,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Queue-Id: 97BE35C57E
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-purgate-ID: tlsNG-ef75cf/1777968417-AFF7EC48-8D82EF96/0/0
X-purgate-type: clean
X-purgate-size: 1311

When fixing a conflict in xen_e820_resolve_conflicts(), the loop over
the E820 map entries needs to be restarted, as the E820 map will have
been modified by the fix. Otherwise entries might be skipped by
accident.

Fixes: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory")
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/setup.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index ac8021c3a997..bb95a05259b8 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -695,17 +695,22 @@ static void __init xen_e820_resolve_conflicts(phys_addr_t start,
 		return;
 
 	end = start + size;
-	entry = xen_e820_table.entries;
+	mapcnt = 0;
 
-	for (mapcnt = 0; mapcnt < xen_e820_table.nr_entries; mapcnt++) {
+	while (mapcnt < xen_e820_table.nr_entries) {
+		entry = xen_e820_table.entries + mapcnt;
 		if (entry->addr >= end)
 			return;
 
 		if (entry->addr + entry->size > start &&
-		    entry->type == E820_TYPE_NVS)
+		    entry->type == E820_TYPE_NVS) {
 			xen_e820_swap_entry_with_ram(entry);
+			/* E820 map has been changed, restart loop! */
+			mapcnt = 0;
+			continue;
+		}
 
-		entry++;
+		mapcnt++;
 	}
 }
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 05 08:16:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 08:16:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300301.1574823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKAx1-0006JL-7h; Tue, 05 May 2026 08:16:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300301.1574823; Tue, 05 May 2026 08:16:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKAx1-0006JE-55; Tue, 05 May 2026 08:16:19 +0000
Received: by outflank-mailman (input) for mailman id 1300301;
 Tue, 05 May 2026 08:16:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wKAwz-0006J8-QO
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 08:16:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKAwx-002cXv-4I
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:16:16 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69f9a749-5cb7-0a2a0a5109dd-0a2a450bd27c-36
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 10:16:16 +0200
Received: from [52.101.43.46]
 (helo=SJ2PR03CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69f9a74d-212f-0a2a450b0019-34652b2ede37-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 10:16:16 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY1PR03MB7995.namprd03.prod.outlook.com (2603:10b6:a03:5b5::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Tue, 5 May
 2026 08:16:10 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9870.023; Tue, 5 May 2026
 08:16:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=i71HiaoN8VtOpk1MkvSEMJusXa1eTXg/oFT8fKLOpkuVw/cF0MgmurqIceI+pilr81+sJk2Jhy46B0vFXqZ4nb/P96Wxy7upy7dIGnebhgg2OeAG1cGJQjIhCXXEv4saN9zTt8t4fYHcOaNWfvIZ2ma53nEaHqwcyaW9c4adqImmY69/9X+7YPUjpGm5lrl1V7gyzVa0ZpV9X1+LUvmwrYE7JoataI4g3+tKQLvKMUfljoltNEtKXwINyhZKUF9+5ne+67RQ3X1xFI2ta6fmd46mq2wKwMwcfWiG32Ju4BXMqzswL1W35bvJS9AwKdJlExdDRie78vTuNLkUjh4j7w==
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=07Wv5Bmst8cKRp/HkDBPbJSksEA0V9WFSAavQ8B7/kc=;
 b=sH/evFpJmvRWZ6jYIXtOGcPVQhkm+R8eV26zVlA1tRpPYyoVfKR1wKYgZhhJH84fe3mnqtGF1JqlUDvBR/YWzI3UDqNZ2SF+ZHUsFMLynYaq3qr4v2baurK5XWf9bTheYHbuxQt7PF3OhFlPNZw2CarkgvlU0/O1fP0auCg/4kgjSTkEaUxgu3qq2Dqz5zzzYfk744Wzun4bWZUPNmxeNaKV1jVJ9irGstR8+PoCgvKqtzRlDKEXbholSxdysVUOXbNpgzx33sNICT4jaTEhc1eTa9vxtvBys12xKAovZAR4VGC4bZnciD5/S/3IW016vwU9u03ZVgQ3eoKHVAODdg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=07Wv5Bmst8cKRp/HkDBPbJSksEA0V9WFSAavQ8B7/kc=;
 b=VMZs6SEpy0neI9+zM4u6hTxQ3o017kGESt5IVsfbPRz186bl4xKU8mBPl36bkwbw7Q3THWZ7YvwuS1K/tD/0JiZxCmzS9huYbV5dC1a0tpyevrN9Bkei5Z8dcmyjeNc+WnpihzXxh9FA5+/Lkhcr1TSpAXIuzwM4BTkBrv31jv8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b15ac2b5-7468-4e73-bf9d-c8121033691c@citrix.com>
Date: Tue, 5 May 2026 09:16:06 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86/boot: Disable interrupts when establishing SSP
To: Xen-devel <xen-devel@lists.xenproject.org>
References: <20260501191028.1250225-1-andrew.cooper3@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20260501191028.1250225-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PA7P264CA0196.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:36d::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BY1PR03MB7995:EE_
X-MS-Office365-Filtering-Correlation-Id: adc82a79-1377-488b-c869-08deaa7e906a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	MwXZP2HXi1udahIJ1OVb2l6e4FJjCULdFVYtcDLSTUCeRnZqKBCf/p3ZU3YIFZ+SEr+cQju6XnCysQa6N3ci3lTMZz9qHYQAd2Uj/q5YxfyH/1P7N0670kSRMOMOAEJwoy4E4F5BTsati1/zqfVKSIsADtrwPmik/cZb0yqjjOooWYIrql8KP7q9YFAnCVMIhxEapFDhottc8YmW1MMEedzDYbRjz+jYFikN0m+UsoTu3kkRutzicdqNHiIqQ+StRIBOW0Aour9OYw3u65CXn/G0GKoLNBxK0eiZf8MWE6YS13dN4BTc1vo4qatQOmP2ZBzIj3bGdQkY7h59Dr7oBrTyFuiNaO+ds3lA61mw50SfVPO7gk7YjaVkaolSPkgJNNBJNjVPDLJjPMYNlvoX0/U3NTCBFB1Uz+8DdKmjXggZCEVTFtAGj4IYQM0dvUhLsTmVU5oP0P0xfckrH9lOVhAeGEpzbyUVuSAM6xx11HlGGuyxo8JMX/JagrFcFJELJV0DMiF6st4Qm5jAIuer4l2w3UJeSBsIRFyccJH8kMSHpJ5FXgWHJBO20OA8V7s11XZT5Mi8JM7p/2dAG16lMftVL4SetHT9FjCr6hf+Wb4JtrDVlHd/af+/313gwtxu+oag/IqjblPFY2t0zGvuc3JceENkQJPFK3hvBlG9MkOcOBAlvHPjN4crLzAjBds2
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?c295TGZDMldibU04VTNkZElxZHpURkdGTk5IaitTVVUxbHN0amUxdGdZUGFv?=
 =?utf-8?B?VW9rVlQvSll5YkJSSmc4My9aNkdScnJHMVNKcFhRbE5KTlY4eUpKaURLdFBm?=
 =?utf-8?B?OXh6VlEzWlpGeDMvMDBxZER6MTBPTHV0MXlMZTQ0UW95QnI3MGdhdnFGdExm?=
 =?utf-8?B?bmIrVXlJV3EwL1BVVHg1Skkyb20xSGRwaVRTMWdQcGFEbDcyVUlQYk5YNnVR?=
 =?utf-8?B?UXZqOHR2TlF1WTNodzFFYlF5ZlV6L09MenNPWTFMNlpMejNCL0ZJY3AzZ0FW?=
 =?utf-8?B?VlFXU0pKSmljOExYSGh5ZzJDaHpLaGxacmZFbTZlWDJPMVBEajVDNGlEMm5O?=
 =?utf-8?B?T255bUYvUm8wKzdaUGdEYTZLVllDNzZJdnhyYTNMVjB6VDA5MlNuZTRjRUpu?=
 =?utf-8?B?UXNvQXJYNUJlUTBGZzdqV2QzYXVHV0hKRVl4aFY0NWFDMFllOTd2UVZLWTl2?=
 =?utf-8?B?cDFXSGZxV0tad24zNUdFU2VxbmFrTDl1UG1jb3hKSzliTUlUa0dKZDdIYzRu?=
 =?utf-8?B?OFErdEp2c0ZzS2pMQko2YS9KeGhod3hrNUdkeityZFUzblVUSUwrWFM2SzJl?=
 =?utf-8?B?WTF0d0dSWGIwS1MzbG1DN09VZVhjNy9WTWllQVJ6TE5UM0VTeTJlM2dub2Fh?=
 =?utf-8?B?RG1MQkVvYjZJYWlVS1ZKWVh4OXVxc25xY1l0S3J1TTRQSUZVR1RTVFJNeTdr?=
 =?utf-8?B?QVhkbFd3bEhDbW5TTG81ZktLYW5EbEVLLzkyY2VCYkFlVXpZOENRRGYvSFJJ?=
 =?utf-8?B?bjNLbTlsbG0vZHRDbHRlazNpYSs4bEF3b0crdGFlejhkUGVBMVh2SXB1Ync1?=
 =?utf-8?B?YTNRaURLWXBpODEwbVZyUnk1MWdOeEZoYlhZdlpJYlB3czE4a0FoL1hVcko5?=
 =?utf-8?B?Ri9md1A3VngyQkdGZE9wODlJL0U2WjF6UW02SmZlUjFVY1N4ZXVDWG1Ibzhu?=
 =?utf-8?B?bFNDaUZSNGh3UWQxa1NZRGMyWURBUmg3dnU3T3A2cTVoU2VxeDUxTG1oQlcz?=
 =?utf-8?B?cjI0UnhYNHAwUzhUdjNkV1l0Y0xETFRKdEQ1Z0tLOWp6REoxRkpodHE4cFNX?=
 =?utf-8?B?UEQ2T3hwZHNjL2NWMmpyMEVkUHR3NG8xTGlhWno0eUtKTWh1bWp1cDN4N3dK?=
 =?utf-8?B?aDdKcmdZKzBOMHk0YjZmeGlvaTduNWpKRWpuc1lTSlVZNjh3KzFXRER2VmpX?=
 =?utf-8?B?blBWWFdhRGhzRjR0L0VJNko1aGFXY21BaFZVektqZ04yR0tkVGZscTJZR0ZH?=
 =?utf-8?B?SlpYaFBDYnNySHJWNCsvU0QxN1N6VHJ2SUMzclYzcTBSbG5heExDNVNXbk1p?=
 =?utf-8?B?d3ZMYXUrWGZKTUxwcXF3QU1yQzJyZlVVRUlCci91NVpmcHJ0RXN1VnRSbXdT?=
 =?utf-8?B?RVpFMUhEaWh5YzNQOVhOeCtzSC92NGJJYlFKQnNtakxTTmpHbUtFbWtobVBo?=
 =?utf-8?B?dXFFS2lQWWE3eExZa1E2NU5NeWF0L2RqVnhSMHpUZjhSRjgyMEs4SHVkR015?=
 =?utf-8?B?QW9BdlNHZ21aTXFOUHljSTJPaTBsVHJBSGpzYi9zRXhTRHNHcWE1TG5xR3Ru?=
 =?utf-8?B?cnZpMTJpZWZUVnhCeE9EVGU4aFRUV2czY3djSVg4QWNPUzVpSGJBb3NxelZN?=
 =?utf-8?B?ejROUUxSMndNTlkyMytxa0grS2dzNEVYMzFybTVCK3JVN3FuWndwdlZsb0hm?=
 =?utf-8?B?SzJpMUszTERZSnFBNVFrL2d6aXBhNk5Gc1hHS0gvQzVkT2Rwb0Via2I4K25K?=
 =?utf-8?B?MU5lQkplSjZXb01tWG9FNnMxVzhjU1N5SHNLVG96Ulc2N3F4cEZDMTBYbjEr?=
 =?utf-8?B?MmZOUi92aFU1elREdVhTU1FpNVJ0d3YvUkVkb3JGN2FPS0V3ZExkYzduU3U4?=
 =?utf-8?B?SThFUWRvTTNhVFluQWR4TlJ1eStrbWtTbWtueHN4YWxnOCtHeW1ZN09ZV1Iz?=
 =?utf-8?B?eXNwWEZHYUp2bnpPL0cvWWxRQ28weDFSRFZGb2VLMnFqSkNDUlB3d2hONTVD?=
 =?utf-8?B?MjVUQzFzNXc0c3l0MjNjM0hnbDF2UkZiTVNYajQwOVFZRFQrYldRd3daZkhx?=
 =?utf-8?B?bGV3bzNvVjByc3FrZEVzV1hsVnF2K1VSa3Y2UEFSbXhZdHVBNXFleG9tQURB?=
 =?utf-8?B?TjRtaytaN0NqMS90ZGFXWFNEMUZDRWc5ejRMVm81aVJFQWg4dXdXUm5iMkg3?=
 =?utf-8?B?Q0tvdk1UZ296SVhOamRNU2FXRStHNU1FZjRGV0NRcisxZ3VhUGhZV1VJb0hT?=
 =?utf-8?B?c3dFeHl0dlQ2SnNkV0pNWE8vb3JtcW5PczJwNFF5cjhWWVQ2MTFrSzJnSGFl?=
 =?utf-8?B?NXhEbjlRRml2UWM2SWNCQVkzYkRxcEFBOSs3ZFBzbGVtWWJMamJpcFdURGRB?=
 =?utf-8?Q?YxXDjCZ5ezpqAqgU=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: adc82a79-1377-488b-c869-08deaa7e906a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 08:16:10.0564
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: WlVPQjzsz2ueYVc+SNBH6/aiXS11YeAB92Mhb+SHtgZ8mHPMR3TnMwn0D0Pt7BjOMxAknxqhRHx4aDyvFoLWgk5fczmsYji6y3OLHj7Rglc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7995
X-purgate-ID: tlsNG-42698a/1777968976-24AB5F3B-6C08E82B/0/0
X-purgate-type: clean
X-purgate-size: 2261

On 01/05/2026 8:10 pm, Andrew Cooper wrote:
> Gitlab CI reported a crash on boot on Alder Lake hardware.  The bug is years
> old, making it an incredibly rare occurance:
>
>   (XEN) *** DOUBLE FAULT ***
>   (XEN) ----[ Xen-4.22-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
>   (XEN) CPU:    0
>   (XEN) RIP:    e008:[<ffff82d04077bbc4>] arch/x86/setup.c#reinit_bsp_stack+0xfa/0x160
>   (XEN) RFLAGS: 0000000000010202   CONTEXT: hypervisor
>   (XEN) rax: 0000000000000007   rbx: ffff83049a4b0000   rcx: 00000000000006a2
>   (XEN) rdx: 0000000000000000   rsi: 0000000000000000   rdi: 0000000000000000
>   (XEN) rbp: ffff83049a4b7f00   rsp: ffff83049a4b7ef8   r8:  ffff830497e47000
>   (XEN) r9:  00000000ffffffff   r10: 00000000900c2121   r11: 000000009a392956
>   (XEN) r12: ffff830497e47000   r13: ffff830497e49f40   r14: 0000000000000000
>   (XEN) r15: ffff82d0407dad10   cr0: 0000000080050033   cr4: 0000000000f526e0
>   (XEN) cr3: 0000000043c16000   cr2: fffffffffffffffc
>   (XEN) fsb: 0000000000000000   gsb: 0000000000000000   gss: 0000000000000000
>   (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: e008
>   (XEN) Xen code around <ffff82d04077bbc4> (arch/x86/setup.c#reinit_bsp_stack+0xfa/0x160):
>   (XEN)  00 b9 a2 06 00 00 0f 30 <80> 3d 71 26 f1 ff 00 74 3e 48 8d 93 f8 5f 00 00
>   (XEN) Valid stack range: ffff83049a4b6000-ffff83049a4b8000, sp=ffff83049a4b7ef8, tss.rsp0=ffff83049a4b7fb0
>   (XEN) No stack overflow detected. Skipping stack trace.
>   (XEN)
>   (XEN) ****************************************
>   (XEN) Panic on CPU 0:
>   (XEN) DOUBLE FAULT -- system shutdown
>   (XEN) ****************************************
>
> This is on the instruction boundary after enabling CET (writing MSR_S_CET) and
> prior to establishing SSP.  Despite identifying this as a critical window
> where any fault was deadly (the CPU tries to push a shadow stack frame at 0,
> hence the CR2 value wrapping around to the top of the address space), I
> clearly forgot that this meant interrupts too, which are enabled.
>
> Along with regular interrupts, NMIs are a problem.

No they're not.

NMI (and #MC for that matter) are IST and will operate just fine like
the #DF handler did.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue May 05 08:22:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 08:22:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300312.1574833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKB34-00087F-0Q; Tue, 05 May 2026 08:22:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300312.1574833; Tue, 05 May 2026 08:22:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKB33-000878-Sg; Tue, 05 May 2026 08:22:33 +0000
Received: by outflank-mailman (input) for mailman id 1300312;
 Tue, 05 May 2026 08:22:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <tip-bot2@linutronix.de>) id 1wKB32-000872-2P
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 08:22:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKB31-00Bd9G-9s
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:22:31 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <tip-bot2@linutronix.de>)
 id 69f9a8c1-2eae-0a2a0a5409dd-0a2a4508a534-16
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 10:22:31 +0200
Received: from [193.142.43.55] (helo=galois.linutronix.de)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <tip-bot2@linutronix.de>)
 id 69f9a8c6-63b5-0a2a45080019-c18e2b379026-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 10:22:30 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=2020 header.d=linutronix.de header.i="@linutronix.de" header.h="From:Sender:Reply-to:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:In-Reply-To:References"; dkim=permerror header.s=2020e header.d=linutronix.de header.i="@linutronix.de"
Date: Tue, 05 May 2026 08:22:28 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1777969350;
	h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date:
	 message-id:message-id:to:to:cc:cc:mime-version:mime-version:
	 content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=NfJ1YduhltV+uaN4L6tWu1N+7FQbIUL59Zqc4X2ZkGQ=;
	b=BLC5MlbLbTtsTdDUzIrgvGle47013JfO2P/gEVbfxVRGNqTkmkoWfpuFBPyo8A2zvRwx3V
	pemz6g+A+NPc5JyB1R8Bjwqi6yzFBzlJHw84q5SxCgDxKOjZIfJSQbcIQct+T6VyvElDww
	HHlPE6rIYYWt8VzlQNE8unryG5ndPjS0HOivgYPoJq/fK4UdIsAcNPJ5NdQvx8l74M2Lxv
	KOWINWXnEYKVQSJtb7ytgRyZdIK+mB2t6SfsOanNI0UErzijCu1/1s/+DH2EOPJ25AnbS4
	AfRCnZXsR0Myknv/jI3vs5u5CG1I8o5KF8I63OcWtFnbiX48GuTdaCpmNu9vlA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1777969350;
	h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date:
	 message-id:message-id:to:to:cc:cc:mime-version:mime-version:
	 content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=NfJ1YduhltV+uaN4L6tWu1N+7FQbIUL59Zqc4X2ZkGQ=;
	b=S/w43rLBt5Tlyfy2AJR2F2D4w9Nnj9xNeQTvWXi6LzsE3IlB0iWK0QJRapaesXJcLpCvzi
	HeHF3ogJfKcy7ZBA==
From: "tip-bot2 for Juergen Gross" <tip-bot2@linutronix.de>
Sender: tip-bot2@linutronix.de
Reply-to: linux-kernel@vger.kernel.org
To: linux-tip-commits@vger.kernel.org
Subject: [tip: x86/urgent] x86/xen: Fix a potential problem in
 xen_e820_resolve_conflicts()
Cc: Juergen Gross <jgross@suse.com>, Ingo Molnar <mingo@kernel.org>,
 xen-devel@lists.xenproject.org, x86@kernel.org, linux-kernel@vger.kernel.org
In-Reply-To: <20260505080653.197775-1-jgross@suse.com>
References: <20260505080653.197775-1-jgross@suse.com>
MIME-Version: 1.0
Message-ID: <177796934897.424702.11107616066849971102.tip-bot2@tip-bot2>
Robot-ID: <tip-bot2@linutronix.de>
Robot-Unsubscribe:
 Contact <mailto:tglx@kernel.org> to get blacklisted from these emails
Precedence: bulk
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c1860d/1777969351-C2975DB1-57E2DF78/0/0
X-purgate-type: clean
X-purgate-size: 1961

The following commit has been merged into the x86/urgent branch of tip:

Commit-ID:     5f8719945244dd65b5fa06195f4600db62581610
Gitweb:        https://git.kernel.org/tip/5f8719945244dd65b5fa06195f4600db625=
81610
Author:        Juergen Gross <jgross@suse.com>
AuthorDate:    Tue, 05 May 2026 10:06:53 +02:00
Committer:     Ingo Molnar <mingo@kernel.org>
CommitterDate: Tue, 05 May 2026 10:17:00 +02:00

x86/xen: Fix a potential problem in xen_e820_resolve_conflicts()

When fixing a conflict in xen_e820_resolve_conflicts(), the loop over
the E820 map entries needs to be restarted, as the E820 map will have
been modified by the fix. Otherwise entries might be skipped by
accident.

Fixes: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allo=
cated memory")
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: xen-devel@lists.xenproject.org
Link: https://patch.msgid.link/20260505080653.197775-1-jgross@suse.com
---
 arch/x86/xen/setup.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index ac8021c..bb95a05 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -695,17 +695,22 @@ static void __init xen_e820_resolve_conflicts(phys_addr=
_t start,
 		return;
=20
 	end =3D start + size;
-	entry =3D xen_e820_table.entries;
+	mapcnt =3D 0;
=20
-	for (mapcnt =3D 0; mapcnt < xen_e820_table.nr_entries; mapcnt++) {
+	while (mapcnt < xen_e820_table.nr_entries) {
+		entry =3D xen_e820_table.entries + mapcnt;
 		if (entry->addr >=3D end)
 			return;
=20
 		if (entry->addr + entry->size > start &&
-		    entry->type =3D=3D E820_TYPE_NVS)
+		    entry->type =3D=3D E820_TYPE_NVS) {
 			xen_e820_swap_entry_with_ram(entry);
+			/* E820 map has been changed, restart loop! */
+			mapcnt =3D 0;
+			continue;
+		}
=20
-		entry++;
+		mapcnt++;
 	}
 }
=20


From xen-devel-bounces@lists.xenproject.org Tue May 05 08:29:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 08:29:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300320.1574841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKB9O-0000RA-Kj; Tue, 05 May 2026 08:29:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300320.1574841; Tue, 05 May 2026 08:29:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKB9O-0000R3-Hj; Tue, 05 May 2026 08:29:06 +0000
Received: by outflank-mailman (input) for mailman id 1300320;
 Tue, 05 May 2026 08:29:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wKB9M-0000Qx-MV
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 08:29:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKB9L-008l7R-KD
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:29:03 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69f9aa44-bab6-0a2a0a5309dd-0a2a4502e736-16
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 10:29:02 +0200
Received: from [52.101.69.21]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69f9aa4e-af86-0a2a45020019-34654515bb56-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 10:29:02 +0200
Received: from AS9PR0301CA0004.eurprd03.prod.outlook.com
 (2603:10a6:20b:468::7) by GV2PR08MB8678.eurprd08.prod.outlook.com
 (2603:10a6:150:b6::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 08:28:58 +0000
Received: from AMS0EPF000001A8.eurprd05.prod.outlook.com
 (2603:10a6:20b:468:cafe::75) by AS9PR0301CA0004.outlook.office365.com
 (2603:10a6:20b:468::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.27 via Frontend Transport; Tue,
 5 May 2026 08:28:58 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001A8.mail.protection.outlook.com (10.167.16.148) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Tue, 5 May 2026 08:28:57 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DU0PR08MB9323.eurprd08.prod.outlook.com (2603:10a6:10:41e::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 08:27:52 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9870.023; Tue, 5 May 2026
 08:27:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=HP7CsRbg0ElU8DUxJv8A2RM886cZuCigGXzppC023C7VusyxUlnE9AGNPAm71PvjYaB1nQh6Yi6muhxKa3Oy2e771vYsB9HJzI9QP85LV812MRTtf98DyJ9p6ebDjNOk9vXfB+8WLhdSwtolEwAXaKxLHWbc5JBBA1OPROBGhSjf9Bzmk12xObfDphVl0LfgU5tYcmUbc04i+n0SDaHkQ5PEGcZAKFuhJZrPdKbHHpmmCcNUliLhbLIjAfnIlMmneLtzANaFIeVGq7STeUiaS0f8LGca4/AN/HeILbZf1Qgo3YHx6MHOzbBW8Hm20mlTP7SzYJnVXTpwZxYXPVdlpg==
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=uph7Gb0cdNhliHJ085f/SvQ437L6B+bXLdooKxlZok8=;
 b=RZQ2BeKYzVKxZPhCn6iwVNYpZTpQLik6p4V7Lw3OMnqOFzeneYEIX7ez2fNa/nfsD2r1moiNvYsioVlSvNKQZrExS6RKRH3M0EYIWJQXYke/HblubC4UBJEh0ZH5cYSHGalOFhB9CXvBKDoiuqY2bGh3FPW77qI13quRsd0iKDFXSs/AfXkBGme6iNOo3pTF+peZb5LXDILQOpaUmUnaWuHjdKHQRp5Cif5CSyND+vL5Ph+/OOi5BDAICYc++9qKxFMvlNrFeQ3l/mCjNyod1TtbWqIl9y3uI2vyyUKOT+fYGyAPsbqZ3oE+N0rA1lfheg3dMoGuftVj/ppvks1kUA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=suse.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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uph7Gb0cdNhliHJ085f/SvQ437L6B+bXLdooKxlZok8=;
 b=FV8uwLI6AcXqwn+mQIERrAhh6W99PIH75Ar5TqyaMAN/67erUS+M+pZlSu4aLmiJhZ5U+0W66f/rwzgTvQ7v11EMsppdI2pyN1N/XDfvwJTS9Xbf0OfPVOTJr9Duu/Tss3xuNDy1hco9tZJEkilBDeNg9YBRLSDEVa/S3er8NL4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZFX2h76rSP9XivF5IOy/vmgoAC0CpcHpQ2Dfb+egUo7a73rlPPKGfTXNUGXzYRn3X59Jhq2u9GQPF/4N2ryeRfsiD62TuUh/H9Q/2+TlRG/MibVuBPjBgQ+B5891cD1Ez5ScTiofG/pl7mE++wYKAcTw7CXpkxk32wm1foRAWul2v6tS//grybteHqPLx9i2zqEfqtsVRbMRb7ByaPqabchuYwliJAny5qO8qZybDE5l7kB+3Hsd7azqiG5ntwwUZ0Xst8pMuj6qfZvGsWuOXPGsc9eZbHetxnxnobz0WSE5/WI2CPjLWg7s6chy1k2XOqBFm0Ymb11gGUtMH1kwwg==
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=uph7Gb0cdNhliHJ085f/SvQ437L6B+bXLdooKxlZok8=;
 b=ACuc6b6bNJZAyOANvWY4wRkRqUkHIEIwEOgJgQXGOsjd9ERpweoTC4RK54YuJsw0KwzSQFpuvbVi2G7F6/xmx+RLGj2pZREqUnZJJUL6BDOITN6WUkRJnNkENBfHiMtpNDD5Tlmmhko9iPAYyx/d5sUeouh5AXJLb78VAcgzfGnXGoXS1ba+O5ESQi6O4IhKSyw5psKPbUKewAX3zgq9OCzyoOWKltoYnWyiAFX+bEG809CkcHc4KPRydxlZETsKNh68fHgwCLYNmBticcmHsVaoFBSVwePCOJudTfRZF7UrDJXjQze8jBzN7vq5+ecYEG87ZdGYC17Kq93g+bkXxQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uph7Gb0cdNhliHJ085f/SvQ437L6B+bXLdooKxlZok8=;
 b=FV8uwLI6AcXqwn+mQIERrAhh6W99PIH75Ar5TqyaMAN/67erUS+M+pZlSu4aLmiJhZ5U+0W66f/rwzgTvQ7v11EMsppdI2pyN1N/XDfvwJTS9Xbf0OfPVOTJr9Duu/Tss3xuNDy1hco9tZJEkilBDeNg9YBRLSDEVa/S3er8NL4=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Romain
 Caritey <Romain.Caritey@microchip.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v4 01/11] xen: arm: fix len type for guest copy functions
Thread-Topic: [PATCH v4 01/11] xen: arm: fix len type for guest copy functions
Thread-Index: AQHc1xwXYYBcuLui0UypBKVcqnkF/bX10fCAgAeOAYCAAcPSgA==
Date: Tue, 5 May 2026 08:27:51 +0000
Message-ID: <F9DB9C27-810C-41DB-95DD-D00772CE4385@arm.com>
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <e29e6176063f8e7c612a4bfa44ac072d7a686b81.1777303844.git.oleksii.kurochko@gmail.com>
 <53BD54C0-E493-4D04-9CB1-D16B148CA3A9@arm.com>
 <edfb6bc3-ad1a-4185-9966-29bb126a6b3f@suse.com>
In-Reply-To: <edfb6bc3-ad1a-4185-9966-29bb126a6b3f@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DU0PR08MB9323:EE_|AMS0EPF000001A8:EE_|GV2PR08MB8678:EE_
X-MS-Office365-Filtering-Correlation-Id: f752a4c9-c74f-4b80-df5e-08deaa805a42
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|7416014|22082099003|18002099003|56012099003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 tT6W6Y9+XJFC0/9KNpT8EiPlyYSTQ7OCgN9w1Nz0RiDq7Bn5Bmjs8H/i9zbHsoLlkWV9aiuNlMYiN8B3OIBoW3W6neq5/5lkeuoHwtJr9synxg0cxM5AUtI9KBuHLb/0p87lKnrLnMyx7WA0L80cgYky8cL/N7oqKW9Tn2VgPQCejm9oOBrnxaK+1fqx/a1PTsZTNHNEhaYUTtH4QqQ1eSgFiIw5DXyzfIPjdc1pIe6ntujzDC0WubYy8Kmh4g5KglAcZ4wMaVMATuFAT33KmQOr3oQoa5FAdvJlGAQTg2RBXSDlM7iiGGm9jfui6x5Ty0jB5CM3DTYIsV623q8IVwt+z27CLa2ggIKVeqLluW/zGGuRp6iFFsweN1smKnMPrSTfDXjr9BM8/q/PMQz3pMYWolpOBihoufrYwZgMGxKPjwA342UHmfKVPX/L2yNe37TgbFfWmHobSTMc8nMwaPCOpZfBuCqZ0tnTPuCVKYsBsLPoKkLiT836xw6h+OfoX5JnzTVR9mXQ5tMPy4o5KwGrpmYw5bFmDdtlK8k1x0AHrzm+90lbkKPxOfcfJ5dVFzMMGdL8i6xo4dId3ewxgY/v+5kc0mYXaxsscfAYsucV2Y0ZTd/MNVrixIGgc8wCS0qlZOtGMdSCsnWojFERGvVhGqz6a+huBkt97V/LCNL9Kc4mqstEvNNOt04jgPUtsM+RGa1e/kLqNqBNs2TEnP0LhyGUVE9q9azVwp/yZ7BfAO6eWbEzUQ/vGKIp6KB1
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(22082099003)(18002099003)(56012099003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <17642A2E6BDB7642A70C7FE0AE383100@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 VAUl//w3spxgS22/0oLOxqdDGYCOcsxT01ziySXsi5K6M5r2ezfCJ13hkqoxSkaIMT0jzl4yzcLQymHlzClG5jkmk+KsVD9dnGreiWRiyFaqAh13UdtOrgFCR2CDPtlAbwr6svYK78h0ZkLYP0jD3ADEIOgpqoAJ8/5+GHuWUrqIIh0xN2gmiLceqsF0Xx48xX5XaOLI6Tl0m8Zm6FL3Ac6XoR7hMMRHWl3DIiSqsadSRk2w8S+Ee48LZjFgeSq9/DSADdw41/YkbtqJQkeOnDHYDweyrUekwpyy61Z1vMj8i5HcX57+eCCaeBPMn9DUI42/NKbBJF6Vn2nNmC8X0g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9323
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001A8.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	9a3e6b0d-1a62-4af5-e1c1-08deaa8032da
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|1800799024|14060799003|35042699022|82310400026|36860700016|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	pJOAhQ5K/FK6/FVkox4SiYMjctPdLBApsqMCIzZEK86/5qNqOUyzT4iGxzTOWakkhzhD4LFQ6bq/PZ9yU2Qim7RymZFjNVeStsMt67x5BeTgIaapjMG0CbfUSDxTtMX1yz+i3jNb+Moy/Rew6v7MgFKoogs6+abvIZNvP92G8S2GvopIGcdZF+Il7GGwsv3jvkueNLfaeazKmh68q0iWvTzjOnkTaQRAzGG3Okhup2fPWOGO243mArdDw3dZX3u/jci1inQbluv/RnQR216+Z/WuRAG4aDl1byi6HzkrTevze8zf1AimvEUKQDRROruZ37wj5VHqE1bSRDb3e+L0gc6ovJ3QGQ1HBJ1V7xohjzowKsQaBGY+9/en+VweUu9qJp69HKTCtv0pRkG95H6kNgpNd4FCPWrSBY6NSKKZFFKoPiQXoMGCWGAvebHasTtco3RfafLta1a3/GXmZgNgeyY6kFAy5tKaexLz6iZSjBA9lUoBWnHkzb5YA24M3BDEUcJOO/t/JQDiZy63SrI+QnDjEw2P+lUSCSEhvUm8P0gN29muixR9L9u1LvsymtJT3RhKCzJg0vH9jTlXgL7ZtD4QKLK6ojmpGhB+PCzbwB4UFlEoioRNdYhh5l7pOq+mAdY0l98wtppMR0fLE4iO+OKZp35qpJevMgpbK6DhKPs/uk//GIMZYt/uMtgJeL/Fr+Gqor+c/715J+51ls6rE+50YrkeYUremmD71twlzGA=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(14060799003)(35042699022)(82310400026)(36860700016)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Mqnay1g4BqLf0Y2lFBKQTPwMY38BGhsdQLW7nhD87mr/HPVm0hMyOiA0YQ+qqeDqDN1QZvkECowxZDGzLE6zJxwjpoi/LcM1dbQdNtDEqFEs09lf2hiFNCZfLwEXDBbgrWnxn3QUNxvem8rBFXOgdsncpnlvQ0idPtQoAuPK4dyZT+/a+AH1uHfKrRD5KRs3REtCCMEBrqGLedchtgctoqCcV7ADRMiSzaZQjqxJdDl/pTC+hX2tQbj/y0F7N/4G+JezvlLW+wLC3+G/f6GWpzetV6qcl1aT/Ub75HAcfsHgNqkDHfTP3AV3e4Ndqn9X/zOSv7bIyadwPtFkvew5QiTCrL0M4kWGAVG2aKen3IQNxpgG25r10KvH5KJRQJgI6/YCIH2cIrlj9eQluJQLJwbTwYZAWZpjjFD+NZdErWfO6UeQHEHCbMI0JYBxF5yO
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 08:28:57.9145
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f752a4c9-c74f-4b80-df5e-08deaa805a42
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001A8.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8678
X-purgate-ID: tlsNG-720697/1777969742-82374161-31ADEA75/0/0
X-purgate-type: clean
X-purgate-size: 1454

SGkgSmFuLA0KDQo+IE9uIDQgTWF5IDIwMjYsIGF0IDA2OjMwLCBKYW4gQmV1bGljaCA8amJldWxp
Y2hAc3VzZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMjkuMDQuMjAyNiAxMjowOCwgTHVjYSBGYW5j
ZWxsdSB3cm90ZToNCj4+PiBAQCAtMTM2LDcgKzEzNiw3IEBAIHVuc2lnbmVkIGxvbmcgcmF3X2Nv
cHlfZnJvbV9ndWVzdCh2b2lkICp0bywgY29uc3Qgdm9pZCBfX3VzZXIgKmZyb20sDQo+Pj4gdW5z
aWduZWQgbG9uZyBjb3B5X3RvX2d1ZXN0X3BoeXNfZmx1c2hfZGNhY2hlKHN0cnVjdCBkb21haW4g
KmQsDQo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFk
ZHJfdCBncGEsDQo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdm9pZCAqYnVmLA0KPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaW50IGxlbikNCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbGVuKQ0KPj4+IHsNCj4+IA0KPj4g
Tm93IHRoYXQgd2UgZG8gdGhpcywgcG90ZW50aWFsbHkgd2UgY291bGQgaGF2ZSB0cnVuY2F0aW9u
IGluIHRoZSBwbGFjZXMgd2hlcmUgd2Ugc3RvcmUgaXRzIHJldHVybiB2YWx1ZQ0KPj4gaW5zaWRl
IGFuIGludDoNCj4gDQo+IFRob3NlIHdvdWxkIHN1ZmZlciBmcm9tIHRydW5jYXRpb24gYmVmb3Jl
IGFuZCBhZnRlciB0aGlzIGNoYW5nZSwgd291bGRuJ3QgdGhleT8NCj4gSnVzdCB0aGF0IHdoZXJl
IHRoZSB0cnVuY2F0aW9uIG9jY3VycyBkb2VzIG1vdmUuIEkuZS4gaWYgbmVjZXNzYXJ5IHRoZXkg
d291bGQNCj4gd2FudCBkZWFsaW5nIHdpdGggc2VwYXJhdGVseS4NCg0KeWVzIHRoYXTigJlzIHRy
dWUsIHRydW5jYXRpb24gd2FzIGFscmVhZHkgdGhlcmUgaW4gZGlmZmVyZW50IHBsYWNlcywgZG8g
eW91IHdhbnQgdG8gZGVhbCB3aXRoIGl0IHNlcGFyYXRlbHkgc28gdGhhdA0Kd2UgaGF2ZSBhIEZp
eGVzIHRhZyBmb3IgaXQ/DQoNCkNoZWVycywNCkx1Y2ENCg0K


From xen-devel-bounces@lists.xenproject.org Tue May 05 08:34:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 08:34:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300328.1574849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKBEa-0001zA-5W; Tue, 05 May 2026 08:34:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300328.1574849; Tue, 05 May 2026 08:34:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKBEa-0001z3-2w; Tue, 05 May 2026 08:34:28 +0000
Received: by outflank-mailman (input) for mailman id 1300328;
 Tue, 05 May 2026 08:34:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKBEY-0001yx-0T
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 08:34:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKBEX-008muR-57
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:34:25 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f9ab89-2eae-0a2a0a5409dd-0a2a4504d07c-32
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 10:34:24 +0200
Received: from [52.101.61.53]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f9ab8f-1dec-0a2a45040019-34653d35181b-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 10:34:24 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS7PR03MB5557.namprd03.prod.outlook.com (2603:10b6:5:2d3::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 08:34:22 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9870.023; Tue, 5 May 2026
 08:34:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aZ4wRp2256WGh8Pgm/KR8d2qx3luhM19Q+Nyj4J4oV7St9tn7B4fDxOWnFNq2qWxKLJeU4hNUIztuHM6uGfjCq5zFk+ciI1RwrYzRnCEKiT/YIY6kQlnjvtXD4P3hkHrlpMOoqGvGbrWgU1nm6CiwahJeCSjg1/s59PSnkShGeL4y2P17rc+zD0pAGzlHrqAFZ/yxn/fbFMkjuemZxeht8JnUQE9Ov+DnoiKBx7gzOnpUm1AzKVqjlhKgqZoXzB15lhDoTB0Ngdey9GLxnSokCxYCGOjuhDm7zyybX9tTGZ5015nTd6HgtftL/eje2WJxE/DFdN5PMBxFjx08znsoA==
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=pk3n9BBrrz940PS1Weg4RwHQn4IQ6ftkRLGqvtv9UJ8=;
 b=nhBZeFs8ELRDY0cglcY9nTN6uXFbRjb5Hu4Ck9s/SPOUtx3qCqDNWDLc+cuGr8GZpDqm0dR7gbu2VW3E4lFrCsWEXa5zvezrAWW/WlWWzBIcMjQ5kJY3M31SvCdJJfhNEQuH6TCNWAL+Zpat3GSs1Ck0fD+S6IMhucQpyUsb1JGM47jDtk3Vq+15dGLTCIdiAKjFbkMEpFWea/YnyKVOygKPcP02HzGQ3r2aj9UmtsTo1TjuFqd0yq4J+3wuAQouFxf1NG0YuixT2kE83VLzKfog3hL0VKArzEajN1XAQxLEGfZi4bk0sVpEY69aYmc/HpdWgYOuhWlnIAflwnT5Vg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pk3n9BBrrz940PS1Weg4RwHQn4IQ6ftkRLGqvtv9UJ8=;
 b=DCBTlhiTBgb3li5zj9RBxxbSd8RCWePZgZnouNnJ6ZoK8z09LGEo0MAqDKtnqrroRZXB990k1Dj08u/xt9xB2HBefFQt9C2MgNV60ymlkN2+VTKjdsItXP0AsI73CBSNJbYwv1CrC5S3fHp2SduCwLCLBbSNHqq7Fb7IjB4zr5k=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 5 May 2026 10:34:19 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
Message-ID: <afmrizI1osLJLqqh@macbook.local>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
 <afi7HUFoDYabM9VV@macbook.local>
 <65ecf1c0-0844-4ba9-a250-a94aeaf4d251@amd.com>
 <afmYf-ldUxWQXRDL@macbook.local>
 <309b2ff6-c200-47d0-be3f-ec289df641c6@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <309b2ff6-c200-47d0-be3f-ec289df641c6@amd.com>
X-ClientProxiedBy: MA3P292CA0020.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB5557:EE_
X-MS-Office365-Filtering-Correlation-Id: 2d519f52-a8f3-4945-ea2a-08deaa811b64
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|7416014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	zmwEhmJQ5IpIiUp7ZXCYSnOu3HdphoqvFkoNI57dVZveoeYKNlUuIuzahCQVvAVpFEl5kgoYbFZDg2SENbCmHMaYRwJlrnlj5gZpFMGbsykH8vAvpnAMARFqJA9q4saC96Xz3LMv4fFQCodkaL5e3Wgp4LzlT2oXlR+ZbDc0WZQ9fB6ySfrskzjm+kMXZycNz+obOuHJxPH4D1flIXeqBGedzU2XSdDMGQqQbzMxx4G+c0Ok2x6MjrECKg31F1RWexxDW3V8qO/gGFK2LOy+WV7Z1HebhVjZd9SPZX9EQmrKYc08SffP2XLC7Lc60+Z+Qx8CqlzXpHr7znwWfqXcCGtmiuWdNxwpcYF9LLdGVtwcD4AgCjE+UAeXLMGDuTt/jIL0SanjRFxAJoohUans63TaWx3I0CZwN3BggF6vxmSEj5m7Cjx39weMmkpserZHIsovW7PbZ9qAXMowDFe982Xm0erycGLD4EB+OoTfBb0901i94gPekIPAoJPeJ6MCVgtLrBgVmIvKHYwu3Sf0gE3MN3qlhjYo5ftG1N6x3UT/pSX4Z4ihBHQx7dC4NcAeVZ+4lJnhJFwqeJ/BG0rOCPCSX0ddDV/EXX50Sv7f+KG/H/Q2FI5BQh2Yx9ZAIOAm+3ljls7rGGZFF7nxpI3lPVasi9RFYnXWUt56m2P/I8oYeQQEH/TC5YSW0fY+U8gu
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UmYyOHV4ZnVmSDlPVjVWU2ZyamdZTWIwM1FSK05ISVZKSWpuZE5UN0hNOFVh?=
 =?utf-8?B?OGlFT0lxWjYvZldWSnBNSWRKYXNEcUJBY0pvS1ZXczFBQ1hkLzF6Tk0rYWtZ?=
 =?utf-8?B?d2llYVFJcEVQbktMUThCRktaZjlqa3hiTTQxbTBMZDR3YXhCN0szRGd1WHNS?=
 =?utf-8?B?bkxKQnhyMmViYnZQaWpiYjFzbWg4NGt4YTA5VW5HRVJ1MHpIdVljaEUvb1Zn?=
 =?utf-8?B?ZXJlYis5WDd0SmpYTXc1a2x6U2czYUZuZ2NVMEp6bUI2VVlxMW55Qjg0dXFr?=
 =?utf-8?B?VzVKOG05eldPa3I5OFBPY2pwaEFkdEo0a2J1dFIvdERLS1dyZHczNzZuRmN3?=
 =?utf-8?B?ekV2MW9FejRWa1I4RUc5Ly84V0w2dS9tQTczWWx1c0dWc0ZPZWJGMy9hVEpD?=
 =?utf-8?B?Q1lLSzdxYURldlNjMW05Z25mQXR0ZU5MeTNWZU9mVnVDNWorRkozTnB3WlB3?=
 =?utf-8?B?WnZ5Qk5nbUh4Umt4SDdjRHkrNUFPT21LWTN3RE54RHQwZ3NpU3pMcmhKYVNn?=
 =?utf-8?B?OFhMMnZ2Z0tIMmVmMzBoMVVxY292eFB3S3hNcjNlUUtWbUR4WFZ2U1ZQNWhy?=
 =?utf-8?B?clZoOU5PZU9iYkE2cmFFNnJwOUh4R0xwdUhQcjV2N29FT3FqaWlLUloyRTRr?=
 =?utf-8?B?cXcrK3RPSG12eW40bmQ5cE91MnZmb3p5dDhIRFZMdjdIeEwwREx1ZkI1RUFk?=
 =?utf-8?B?bnNEeHlSVWZOZDVlR2IwejRMUE5FMGxnL0ZkKzdwL2ljRmNEZWdXU2lEaFZD?=
 =?utf-8?B?dmgwd3E3ZjJKdDdOMGhBM0RGU0FKMStIdDN6ZzJiNmNNRnFjUDhrYXBMNzlU?=
 =?utf-8?B?Q29aeUMrQVkyOVlNTWtPU2p3aXZkYURnNGhFVUZNRm03RXNwYit6aWc2STFO?=
 =?utf-8?B?SkRiTDVWRVZOYmFNcE03VVBwMzM0U25LMkZyMVgzd25FUzhjZDJIcEplUXN1?=
 =?utf-8?B?c25pdjRMbzVXd0JoK2hMUE5Nb05BeU84U3hFa3phNThiSUJzVXJ6VlFmRk1J?=
 =?utf-8?B?SXdXOWpYWDlOaGRpNkRnd2lwNktmNXc5RVd6Q2xueS9QUlp1OGR4UWNPSkli?=
 =?utf-8?B?MkN6K21zV0oxOEU2SVhOL3V1UVpuR3B4Y0dZVFFyd2NWVWhGTjRvN2tlclFT?=
 =?utf-8?B?STRRUHRpUitzeExoVGZ6Vmx5RDBUU2pQNHhmQU5Ya2ZjODduaHJRbUhNSjho?=
 =?utf-8?B?VndMWEpqWUZndVF1b0hTZkx6aTIralBUNVBhMXhnd3IvcTBVaW5kZkNlc2J0?=
 =?utf-8?B?Q2d3SWdFMGFmQUVpaHVjWGJxUEh3THNXNEFvYm4xUUhHT1dMVmdTUHpxSWhO?=
 =?utf-8?B?VmlCUWtjR2ZMa25ScHNWVTJVMkJFa3FrMGQ0NnpDeXJxeUNmK0FVYVRvelRZ?=
 =?utf-8?B?Q2JEVEx1WTFEdUY2akpaRkg3REN2WWtFSjcySTZNVU13TytpNVVxUVo3TW02?=
 =?utf-8?B?WTlEbXd1NW81aXA0TldRL0E0a1VQcVFtVnBrVHNJbUJjdlIwcGR4dkVtMUFU?=
 =?utf-8?B?LytFZ2hYbjVRR3R3S3lBM1pvZGhkNXBoU3lhandkZXRvTjdDT29mYXpJUnUy?=
 =?utf-8?B?TjBPdWptSEdubzVHNW9IcXlOb0Erem03c2hGdklwNzQ1dWhsS0UwYm5YaVRX?=
 =?utf-8?B?ZUpWeEQ4WGxkMEZYclZMYUk2bWdFcXFnMW9ySVhVVHpPWmFhZnNzeXg0N3Zl?=
 =?utf-8?B?NG5jNVg1Z2cxN0kzMms4VWQ0K0E0N3RMMXREVjY3M0V4TUZZSzNteERyNlhs?=
 =?utf-8?B?UmtHTGZzSHFtbWNZSjFjSGdFaGlPUmE0WVBienJZMjNQbDBxTk1kcGlMaUp3?=
 =?utf-8?B?OEhXR3JPN2JpOWYybkhWT0phRjEzWnhsMzROR1gwU2FhSTVVdUpQaUNhNnZt?=
 =?utf-8?B?THV5RDhDUGtzR0lxb0djUGRyeERzOFVpSDNjTDVBNzR5NkFmR3JSQjBmVEh5?=
 =?utf-8?B?YXRyUkpqTXJublhsZllQODNJVFpHYzgxc0NWWFlKbGJzdWNUQjBaQVhEdCtB?=
 =?utf-8?B?cS9SclNRN0NZSTFndWtVMlZsbGVQeW80SE1oTG42ZUJaMHdSM01hTXkwRFZJ?=
 =?utf-8?B?QUtYRUszaVBTL1NaY2hkTHRuTzcwazZxTm41ZFpjTnVUM2pxazBrMkZSaUFR?=
 =?utf-8?B?VzNzMHVzNGxJbzBBNnd6MG1aK0E2aFNZOXdqUW5RZ2FjYVlvc3EvRGpRaThH?=
 =?utf-8?B?SW1VbWdhQ1dWMDdacktFeXZ4cjUzQU5xQjdjQXFlUEdEQm1SLytFODIzeDZB?=
 =?utf-8?B?cStuTjlXQlNYZStISEl0YVc0ZTFlN2JZV2IwUEZ5TlJyNXJScHRXVGV2b0Za?=
 =?utf-8?B?T0Rva01oRjZDeWROcVBCdGY3VnBWcUYwOHRBODN2TjMxRG9UNHduZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2d519f52-a8f3-4945-ea2a-08deaa811b64
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 08:34:22.2189
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SVViFm+B9Mwqc4DzBpgBKv72xy5gL17TqDFTbNn2cE/lFmajQPp8cNGVM6mgfblNyaz5mMPVkLkAYY+pAyLrtA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5557
X-purgate-ID: tlsNG-ebf023/1777970064-2A5603FF-E8A580F7/0/0
X-purgate-type: clean
X-purgate-size: 4637

On Tue, May 05, 2026 at 09:35:05AM +0200, Orzel, Michal wrote:
> 
> 
> On 05-May-26 09:13, Roger Pau Monné wrote:
> > On Tue, May 05, 2026 at 08:48:15AM +0200, Orzel, Michal wrote:
> >>
> >>
> >> On 04-May-26 17:28, Roger Pau Monné wrote:
> >>> On Thu, Apr 30, 2026 at 02:51:02PM +0200, Michal Orzel wrote:
> >>>> The generic pdx_to_page() and page_to_pdx() macros in xen/pdx.h assume
> >>>> the frame table starts at PDX 0, which is only true on x86. ARM
> >>>> uses a non-zero frametable_base_pdx to offset into the frame table (PPC also
> >>>> defines it).
> >>>>
> >>>> Fix the generic macros to subtract/add frametable_base_pdx, defaulting
> >>>> to 0 when the arch does not define it. This makes the generic macros
> >>>> correct for all architectures, even though they are only used on x86
> >>>> today.
> >>>
> >>> Hm, I assume this offset was added because the original mask PDX
> >>> compression won't (usually) compress the gap between 0 and the start
> >>> of RAM.  However the newish offset PDX compression should be able to
> >>> compress from 0 to start of RAM, and hence you don't need to apply
> >>> an extra PDX offset there?
> >>>
> >>> If that's indeed the case it might be better to integrate
> >>> frametable_base_pdx into the mask compression algorithm itself, so
> >>> that on some arches it's a mask plus a decrease.
> >> The offset is needed regardless of whether compression is used. With
> >> CONFIG_PDX_NONE (no compression, PDX == MFN), if RAM starts at e.g.
> >> 0x80000000, the first valid PDX is 0x80000.
> > 
> > OK, so you are doing some (kind of) address space compression (removing
> > the leading empty range to the first RAM region) even when PDX is
> > disabled.
> > 
> >> Without frametable_base_pdx
> >> the frame table would have to be indexed from 0, wasting
> >> 0x80000 * sizeof(page_info) of memory just to cover the hole before RAM.
> > 
> > But you don't really "waste" memory, just address space?  Oh, maybe
> > not on ARM as it doesn't use pdx_group_valid?  And so you
> > unconditionally populate the frametable from PDX 0 to max PDX.
> With pdx_group_valid (which this series adds) we wouldn't waste
> physical memory for the leading gap. But we'd still waste virtual address
> space and the FRAMETABLE_NR check (max_pdx > FRAMETABLE_NR) becomes tighter
> because the full range from PDX 0 must fit. For example with RAM starting at 5TB
> the virtual offset before the first usable entry would be ~70GB — more than the
> entire 32GB FRAMETABLE_SIZE on ARM64.

Right, you need to use a PDX compression to fit.  My preference IMO
would be to add the leading offset into the PDX mask compression
algorithm if that's what ARM uses by default now.  The generic case
really means no compression, and that's a 1:1 map between physical
addresses and PDX.  Anything that's not an identity mapping between
those two address spaces implies some kind of compression.

> > 
> >> So frametable_base_pdx is really a frame table indexing offset, not
> >> something tied to the compression algorithm.
> > 
> > Right, it just seems odd to do that extra subtraction when using
> > offset compression, as in that case the compression logic itself
> > should remove that leading gap when RAM doesn't start at 0.
> > 
> > Instead of generalizing and expanding the usage of frametable_base_pdx
> > it might be better to implement support for pdx_group_valid when
> > populating the frame table, and switch by default to the offset
> > compression method that will already remove any leading unpopulated
> > spaces?
> Switching the compression method would be a bigger change, and with feature
> freeze on Friday I'd prefer not to get into that now. The current approach
> is minimal and self-contained and works with mask and no-pdx which is what we
> use nowadays: frametable_base_pdx already existed on ARM and PPC, we're just
> making the generic macros aware of it as Julien requested (in v1 I just
> overwrote the macro in local file). We can revisit the compression strategy as a
> follow-up next release.

Right, I'm not going to oppose to this, but I also don't think it's
the right way to go.  This seems like a bodge on the side of PDX
compression, when it should have instead been integrated into it.  The
more that the offset compression logic will already do that removal of
the leading empty space up to the first RAM region, and hence such
adjustment of PDX values in that case is redundant at best.

Also, you only do this PDX adjustment for the frametable, but not the
direct map?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue May 05 08:43:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 08:43:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300339.1574860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKBNG-0003up-6J; Tue, 05 May 2026 08:43:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300339.1574860; Tue, 05 May 2026 08:43:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKBNG-0003ui-1T; Tue, 05 May 2026 08:43:26 +0000
Received: by outflank-mailman (input) for mailman id 1300339;
 Tue, 05 May 2026 08:43:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1wKBNE-0003uc-RJ
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 08:43:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKBNE-004B1V-2D
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:43:24 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69f9ada4-e002-0a2a0a5209dd-0a2a4508d7cc-16
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 10:43:23 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69f9adab-63b5-0a2a45080019-d1558032cd22-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 10:43:23 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-48896199cbaso43993305e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 01:43:23 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45055f2203csm3129448f8f.37.2026.05.05.01.43.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 May 2026 01:43:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1777970603; x=1778575403; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=ZCEstcyqOgvtQBuu40Qq5pjD4taxfu2oU876lLvB0OE=;
        b=O7MuPv5ywFaS6KH9WSESkFehRLWy6B9+gIpsaydnGbbTojURYTp9596W6SETPnHHDz
         oyLL8vqEW0k2gSZx0gKLEhhnxfiwfMsWARCQPdxm+/8T8JA7DD57jAD9UOeNpM/dndbP
         e6AicyysjRqMfwEQwkaGTKgUbhfB4jiYMtqcE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777970603; x=1778575403;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZCEstcyqOgvtQBuu40Qq5pjD4taxfu2oU876lLvB0OE=;
        b=WDEvq4/XLd3Fl/7NJV+g6kNq/q7CAK9SH0swDKiCJwjgsjeRLnNOGxL8xyajej+JAs
         U9XyDmofqzjfw502znTDx+YRS7v9aasLEfL4G64jEdXR41ZIFbzjbrllHV7pNbnnAIyy
         v3h9roAd87M8yfV5U7AFrUrVPrbWNAj/8e2CfBwM/pg9gup710a5aHr+cR328yMmxL1+
         aYzQnsfWCHw4S5lQepWSdEN4TPCL2iATXNNoqQP+wb643Fuk7ZeToVCJK/03i3j0emyi
         jo42ySDczSLHgI6svY9g4hHGmzl7jkMokl1kCSwjf8VZL6feUL3nfzQSgtfm4GuNW9Jm
         zICQ==
X-Gm-Message-State: AOJu0YxLOY/JV/raBEoYSADQ7iTlxUWUvwFtbgRB7EkSqOnKlnlC4m8q
	5oE4WQUcH4RDaFMUEFtKQRbid+9ShvPXdYjCfRmEkhCW/uCJFkbxCd3XoG5gw08YRlnswvHJ53m
	7S2Qp
X-Gm-Gg: AeBDieuxBWcX4250x5Ed+HG0sIP0EJ+I21wMCo/UwXK03lugmcJcYSGwKc++4SuWP/n
	7pwkrG7+AZa08jZqWyD1zX4zwbAgR4s3oDxRxmDmpB+rl8lyGgRB93fqsVKuM68Em221X8J4hJH
	M0HEJSn/U73mQ/irw3s/PoyIFdNZyryaxxA0VgctEsNrQvRPkpLKq7Nri+ilyXdnTB22We16Z2t
	jIM+vjXTIAiXZc6gfOwwB0EYl9y9NeezKpjjPonHqiFD0JcSZEoay2Ji6IdBNxMw5MM4oM5WffY
	mCLCoEpYanuecnyYaAPpjqkmO4uv/YO4ofrZOq6A/cGQLS9zkv9alurB152LvX5820hL/99yBa1
	oNvn9HAcuymjHtm36OvcGJQosQXqQo27UDG7t14prkcJaUAmccfP2goyBq0Xv+kRsLB7W7XjNo3
	cswCjZmHFjov117uMpN9Mnapc7zhbKLOCUZYJB1qK74EvazVPtlNsuiTTbmSMbIhbjRVEP2yA2q
	SHQjuLhNbLsL1poDIjXsywJJw==
X-Received: by 2002:a05:600d:8496:20b0:48a:592c:e632 with SMTP id 5b1f17b1804b1-48d18be5b3emr19816295e9.16.1777970602835;
        Tue, 05 May 2026 01:43:22 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v2] x86/boot: Disable interrupts when establishing SSP
Date: Tue,  5 May 2026 09:43:15 +0100
Message-Id: <20260505084315.1350002-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1777970603-C86D4DB1-ECDD6CBA/0/0
X-purgate-type: clean
X-purgate-size: 3366

Gitlab CI reported a crash on boot on Alder Lake hardware.  The bug is years
old, making it an incredibly rare occurance:

  (XEN) *** DOUBLE FAULT ***
  (XEN) ----[ Xen-4.22-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
  (XEN) CPU:    0
  (XEN) RIP:    e008:[<ffff82d04077bbc4>] arch/x86/setup.c#reinit_bsp_stack+0xfa/0x160
  (XEN) RFLAGS: 0000000000010202   CONTEXT: hypervisor
  (XEN) rax: 0000000000000007   rbx: ffff83049a4b0000   rcx: 00000000000006a2
  (XEN) rdx: 0000000000000000   rsi: 0000000000000000   rdi: 0000000000000000
  (XEN) rbp: ffff83049a4b7f00   rsp: ffff83049a4b7ef8   r8:  ffff830497e47000
  (XEN) r9:  00000000ffffffff   r10: 00000000900c2121   r11: 000000009a392956
  (XEN) r12: ffff830497e47000   r13: ffff830497e49f40   r14: 0000000000000000
  (XEN) r15: ffff82d0407dad10   cr0: 0000000080050033   cr4: 0000000000f526e0
  (XEN) cr3: 0000000043c16000   cr2: fffffffffffffffc
  (XEN) fsb: 0000000000000000   gsb: 0000000000000000   gss: 0000000000000000
  (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: e008
  (XEN) Xen code around <ffff82d04077bbc4> (arch/x86/setup.c#reinit_bsp_stack+0xfa/0x160):
  (XEN)  00 b9 a2 06 00 00 0f 30 <80> 3d 71 26 f1 ff 00 74 3e 48 8d 93 f8 5f 00 00
  (XEN) Valid stack range: ffff83049a4b6000-ffff83049a4b8000, sp=ffff83049a4b7ef8, tss.rsp0=ffff83049a4b7fb0
  (XEN) No stack overflow detected. Skipping stack trace.
  (XEN)
  (XEN) ****************************************
  (XEN) Panic on CPU 0:
  (XEN) DOUBLE FAULT -- system shutdown
  (XEN) ****************************************

This is on the instruction boundary after enabling CET (writing MSR_S_CET) and
prior to establishing SSP.  Despite identifying this as a critical window
where any fault was deadly (the CPU tries to push a shadow stack frame at 0,
hence the CR2 value wrapping around to the top of the address space), I
clearly forgot that this meant interrupts too, which are enabled.

Disable interrupts during the critical period.

Fixes: b60ab42db2f0 ("x86/shstk: Activate Supervisor Shadow Stacks")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <jbeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Teddy Astie <teddy.astie@vates.tech>

v2:
 * Only disable regular interrupts.  NMIs are fine.
---
 xen/arch/x86/setup.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index d041cbd5f6f1..19ee857abfb8 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -908,6 +908,13 @@ static void __init noreturn reinit_bsp_stack(void)
 
     if ( cpu_has_xen_shstk )
     {
+        /*
+         * Immediately after enabling CET, SSP is 0 and most interrupts and
+         * exceptions are fatal.  Like the SYSCALL/SYSENTER gaps, IST vectors
+         * (including NMI and #MC) are safe owing to IST switching the shstk.
+         */
+        local_irq_disable();
+
         wrmsrl(MSR_S_CET, xen_msr_s_cet_value());
 
         /*
@@ -932,6 +939,8 @@ static void __init noreturn reinit_bsp_stack(void)
         }
         else
             asm volatile ( "setssbsy" ::: "memory" );
+
+        local_irq_enable();
     }
 
     reset_stack_and_jump(init_done);

base-commit: f4af571dd70bea97d8de82d7aa39c62c530db897
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue May 05 08:43:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 08:43:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300341.1574868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKBNV-0004Bx-Aw; Tue, 05 May 2026 08:43:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300341.1574868; Tue, 05 May 2026 08:43:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKBNV-0004Bq-7w; Tue, 05 May 2026 08:43:41 +0000
Received: by outflank-mailman (input) for mailman id 1300341;
 Tue, 05 May 2026 08:43:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKBNT-0004BE-Tc
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 08:43:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKBNT-008p5B-9P
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:43:39 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9adb2-bab6-0a2a0a5309dd-0a2a450b8962-36
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 10:43:39 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9adba-212f-0a2a450b0019-d155802dcdd9-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 10:43:39 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-48896199cbaso43995265e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 01:43:38 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48d1a98247fsm17639875e9.0.2026.05.05.01.43.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 01:43:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777970618; x=1778575418; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0//ladv0CDpbweCjcqd+Fj+nnO8JuT9nkhnkBOafoa0=;
        b=O03MCs4JJvlb4yFy1ILujIjPxReLEAIrlfxkRkSjXKcabrjfVevN2Re6cmPHqWBzNA
         xBmvt5otX1C+r1oDJJdQEFcmlucwasDIExgaOQfQBLgr+um0y5Q2VRpwLKdTWfI3t+4l
         ktv70Gusw1kxbVAcjmdTHQQzLdZmUMbKf0OmAeimdf7bXfQdIKNNqGqtzAx73H1+Brav
         EXeLB9v+Ir3x54thKsinmORTseO3DtkjT47MqK+UowV9dek2ZgjjbAeZpcH7pLbQocTj
         E9YVWIlpnrK1weyTSHnx5nvonX4PVEGywzFBg+MRJJkcUDNOan1TpUjAux1gyRCty12m
         ozPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777970618; x=1778575418;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0//ladv0CDpbweCjcqd+Fj+nnO8JuT9nkhnkBOafoa0=;
        b=EMzgoCi0K0Hw1QUK9JKqT0fIZ0zDLY71RV3SXxQk8qpG5uGEOH507p4yyzy2TzKPhd
         ix0zFK4QYl4jIXsEuL1IJUSZzVIP7MlEXWc60W4oI2MvuH7lE+x1Q9tMRQxL1Av9OI/R
         n83+TCNwK4b1fByB57SJAtNbectP8mYYV5PxO1Wz34SdQlz6VblaPO0N3k/MAcSvS0ID
         mSfvGcS+3kDwH7TSgrBF2Nb5YVGhfeo3yl09LYEL5ao01DwksUGiyclV7JIL3/9YQUKz
         7+aSF3WWUoYa23CouFxZXNYquBnbP8bDYqnBCf9z/d2DlvyUunwkWpufGoSsg1NKqLO6
         mhuw==
X-Forwarded-Encrypted: i=1; AFNElJ8ihXsptA4E2TYHi3uuP/WgiC00Id8eNxqVtV+kZbhTj0uxehR/qslTY+kFwAqb/pV7synG/QpOAi0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YykuQxUU1eV+/dxJFheA17N+P6/30o9NyfFz/AJ01+fl9WJxw5v
	s5kapDd295eHWjhLui1Re2n4gh7ientYhsPNLSOl9Q7fjIYP7WZRV7QmBrVxjRqFDw==
X-Gm-Gg: AeBDieu/4drHtkIBthAvui17oc3evCmPQmpTLjOuZJuxK1IoKYgVuDBQZUCoU4AbIzs
	7q0YzZsurugU9rQLuvR/qjVZYaMe4oU/OwHbH3s3ybG7cAPvsFcL7rPQnGgxgKXWSboo4dhhtpR
	x9N0rM/HC+6L+FyhRIcTnJdboZFRpIJ+MbpZb2F7CVKSoUPEAmIQZHXh6N1HrJP7sPZF48EDBrS
	BH+LgTzraUHJbk2zbhUIKRgselAo1eT3U/M7wlBdx+cF8vtfpTTCnRQgAFNewfnIPutxfZH+56Z
	wnX+dARUHymTLDC2wdXj7qOzz9u0+DVJlS/BTB/mf9YFJCaHddIEu9ZnSwvvYUr6d9jkDaA7W3y
	DLpreP+wpNK8GvU6eJjbgmI7PtPpF7HetvhsCbAB34D5rNb9OKw5VOeQCdY6EKxCN3Lm70Xfzt4
	k/gtE74Js3+UgDq/lfj+2sS/U8y2Ax2sK/0XBbhwlezRDBErswlziV2bhJSKsBZaAklOD9g8zrX
	3ihSsimRkKBRB0+TlDRlnTU8Q==
X-Received: by 2002:a05:600c:a30a:b0:485:30d4:6b9e with SMTP id 5b1f17b1804b1-48d18ce275fmr22165355e9.21.1777970618561;
        Tue, 05 May 2026 01:43:38 -0700 (PDT)
Message-ID: <6b241236-ed6d-4ada-beac-8f660bd55185@suse.com>
Date: Tue, 5 May 2026 10:43:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Fix a potential problem in
 xen_e820_resolve_conflicts()
To: Juergen Gross <jgross@suse.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org, x86@kernel.org
References: <20260505080653.197775-1-jgross@suse.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260505080653.197775-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1777970619-7DB68F3B-5902DA93/0/0
X-purgate-type: clean
X-purgate-size: 2539

On 05.05.2026 10:06, Juergen Gross wrote:
> When fixing a conflict in xen_e820_resolve_conflicts(), the loop over
> the E820 map entries needs to be restarted, as the E820 map will have
> been modified by the fix. Otherwise entries might be skipped by
> accident.
> 
> Fixes: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory")
> Signed-off-by: Juergen Gross <jgross@suse.com>

First, while trying to review this, isn't there another issue in
xen_e820_swap_entry_with_ram(), in that

			entry->addr = entry_end - swap_size +
				      swap_addr - swap_entry->addr;


really means to be

			entry->addr = entry_end - swap_size +
				      swap_entry->addr - swap_addr;

(affecting non-page-aligned E820 entries)?

Further, that function converts swap_entry to the page-aligned superset
of the passed in range. How is it guaranteed that this new range won't
overlap with the predecessor and/or successor one? Wouldn't that need
to be conversion to the page-aligned subset instead?

And then, is passing the page-aligned superset to xen_add_remap_nonram()
really appropriate? Why would any leading or trailing space there be
subject to remapping?

> --- a/arch/x86/xen/setup.c
> +++ b/arch/x86/xen/setup.c
> @@ -695,17 +695,22 @@ static void __init xen_e820_resolve_conflicts(phys_addr_t start,
>  		return;
>  
>  	end = start + size;
> -	entry = xen_e820_table.entries;
> +	mapcnt = 0;
>  
> -	for (mapcnt = 0; mapcnt < xen_e820_table.nr_entries; mapcnt++) {
> +	while (mapcnt < xen_e820_table.nr_entries) {
> +		entry = xen_e820_table.entries + mapcnt;
>  		if (entry->addr >= end)
>  			return;
>  
>  		if (entry->addr + entry->size > start &&
> -		    entry->type == E820_TYPE_NVS)
> +		    entry->type == E820_TYPE_NVS) {
>  			xen_e820_swap_entry_with_ram(entry);
> +			/* E820 map has been changed, restart loop! */
> +			mapcnt = 0;
> +			continue;
> +		}
>  
> -		entry++;
> +		mapcnt++;
>  	}
>  }

Given what exactly xen_e820_swap_entry_with_ram() does, restarting from
entry 0 looks to be needed only if the non-RAM entry ended up moving down
(strictly speaking even there it wouldn't need to be entry 0). If it
moved up, simply not incrementing mapcnt would look to suffice. Since the
extra overhead is likely tolerable here (with simplicity of the code
being more important), this may want mentioning in a code comment (or at
least the description). Preferably with that:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 05 09:00:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 09:00:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300375.1574909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKBdw-0007w4-1S; Tue, 05 May 2026 09:00:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300375.1574909; Tue, 05 May 2026 09:00:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKBdv-0007vx-UF; Tue, 05 May 2026 09:00:39 +0000
Received: by outflank-mailman (input) for mailman id 1300375;
 Tue, 05 May 2026 09:00:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKBdu-0007vr-Ch
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 09:00:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKBdt-00DBYk-Cp
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 11:00:37 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9b1b1-5cb7-0a2a0a5109dd-0a2a45058ccc-26
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 11:00:37 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9b1b4-aaa8-0a2a45050019-d155dd2ba938-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 11:00:36 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-43d75312379so3383430f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 02:00:36 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45054b02abbsm2968453f8f.18.2026.05.05.02.00.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 02:00:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777971636; x=1778576436; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gcZjCWxHIEsDl+ZoSeiR/KjJakZqMTM+f6ZDOXWO9AQ=;
        b=VklbncsOkxVO3qE7LWgHzb1LCUUZ11gNS/t7HQabur0+LjR+mxru0jG6ZXLbs4xuP1
         4bTmXLkJgSDBrvvytQ4ZQKZIQaMOgvSk9TUdsyLhGI9OqFb5B7o1SeDnyEJ43i3Uci7z
         IbrrLpEvgzs+sHEJzuI460k79wHDnh1o0UiS/aU1velNuo4qPBNk6nj1xlkyrCaSownM
         LgATQ4B/PWxVkrJm7fMNNfyEGU2fFqhzppb9X58FUjpjcUSyhYPDHbEhpLM1RJ2DEF8V
         /CDT/PqiyhsD7N9YU1chZ6gguPTB7aBVUsEBYt1swTtmNO/WwSWdyC0jFsT6XC6oJD2D
         aikw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777971636; x=1778576436;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gcZjCWxHIEsDl+ZoSeiR/KjJakZqMTM+f6ZDOXWO9AQ=;
        b=h5aYAOnYxCg/7ZUUOZvubVxxbDoeIeNOvoQK0DAqWx3gJauIK8IPbkgXw8shY67eOE
         87Vg/GIhZkqS3Rz0+on8fnLwh/VBvrb6/aIKEnJhdsmam2NuX9kZTFhFJf9XkWNch7wk
         wbIbNvR4Z0vLwQWtPT1mGMIOTjReu6UD1C3nYadJ78oyG/8QsIWrcsYINjSyMto61P3I
         FRxmlZEMmCS+hgTxRZnG4AsHqCp6psWM9TW46ugja8L9ZP4tJ9EN0evxZweo9s+rP/tE
         rE9YR4/9N7q3LDNZjc8CQhT8iB0+vaYhNmITxEp/5d30nSTbxyrNYrnK14cdhV+B+jnx
         x2Vg==
X-Forwarded-Encrypted: i=1; AFNElJ8ymljW720E3Wy5CE4NR1jRn0FJMOh0IYzm6wmy9VjxhM4OUHANNOreGjchGEnMIN7Zv9QRcRe76wE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw2nwf83O22I5kO0zQUN2NNfbE0Y8qwXtw7nj1CwuyNn7YaTxAj
	nEyV5nIoiIW9yiBNYvBZ99aA9JD/vyPyqScQdgcCHwdxRX6GZ6dYAdb7bz0WR7LIwaZ1XV/mSTn
	ufJU=
X-Gm-Gg: AeBDievCv7cC8vSQ12QsRw2A893XRMuS4R3DYUbhrIGYN0MH1mWyugnTGKv/S+qUzXV
	iQm6MG4fw8AlgGMIAbCSvT3TWUzJIB14x05XvEwB7JGMW0N6l8FPT22Bd6hl3bLWVCcp4oZml/x
	B9UxAT7grNb4qquOYoG/BbHJtVSxRpT9RrYTl4xaM7NtYSvgeXtIF7RWkUYWuoI/uY80R5mPEtW
	CbnIr8Budz/ch38Sd3/46VplZQiSo3kN86YmtwdijwoXEKTQZQfMtQ8KBh0hO+4RWF21pJ5+AjI
	jvSYUKIyhf/bMP2WJZu75lKMWWK3RrzO3iUhFq93Le+GTT35Fgk2RF2dtLEWSGXsqB3L2d/u9cW
	QLBvtYrpzkFmHoV8+teV/VCVVrhRYh623DsGcTO4SXKy3jx1b7ZdPdUGABrA5YiNpRdcDLEI59f
	gPCnQclghgpTmRPJUD/M7g8Vs+obL8wUC+PUr0gklknHgOUe3S5wPzzctjC+b9NAQWRGZa7jvwz
	WSaVqutuTeZp3DdDp3S9dkmTg==
X-Received: by 2002:a5d:648c:0:b0:43d:7086:b03 with SMTP id ffacd0b85a97d-44fdb5977dfmr3302330f8f.1.1777971636104;
        Tue, 05 May 2026 02:00:36 -0700 (PDT)
Message-ID: <ba9facaa-84e1-4c61-8e47-9ef76067a922@suse.com>
Date: Tue, 5 May 2026 11:00:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/boot: Disable interrupts when establishing SSP
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260505084315.1350002-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260505084315.1350002-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1777971636-E93A0443-12747E49/0/0
X-purgate-type: clean
X-purgate-size: 2559

On 05.05.2026 10:43, Andrew Cooper wrote:
> Gitlab CI reported a crash on boot on Alder Lake hardware.  The bug is years
> old, making it an incredibly rare occurance:
> 
>   (XEN) *** DOUBLE FAULT ***
>   (XEN) ----[ Xen-4.22-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
>   (XEN) CPU:    0
>   (XEN) RIP:    e008:[<ffff82d04077bbc4>] arch/x86/setup.c#reinit_bsp_stack+0xfa/0x160
>   (XEN) RFLAGS: 0000000000010202   CONTEXT: hypervisor
>   (XEN) rax: 0000000000000007   rbx: ffff83049a4b0000   rcx: 00000000000006a2
>   (XEN) rdx: 0000000000000000   rsi: 0000000000000000   rdi: 0000000000000000
>   (XEN) rbp: ffff83049a4b7f00   rsp: ffff83049a4b7ef8   r8:  ffff830497e47000
>   (XEN) r9:  00000000ffffffff   r10: 00000000900c2121   r11: 000000009a392956
>   (XEN) r12: ffff830497e47000   r13: ffff830497e49f40   r14: 0000000000000000
>   (XEN) r15: ffff82d0407dad10   cr0: 0000000080050033   cr4: 0000000000f526e0
>   (XEN) cr3: 0000000043c16000   cr2: fffffffffffffffc
>   (XEN) fsb: 0000000000000000   gsb: 0000000000000000   gss: 0000000000000000
>   (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: e008
>   (XEN) Xen code around <ffff82d04077bbc4> (arch/x86/setup.c#reinit_bsp_stack+0xfa/0x160):
>   (XEN)  00 b9 a2 06 00 00 0f 30 <80> 3d 71 26 f1 ff 00 74 3e 48 8d 93 f8 5f 00 00
>   (XEN) Valid stack range: ffff83049a4b6000-ffff83049a4b8000, sp=ffff83049a4b7ef8, tss.rsp0=ffff83049a4b7fb0
>   (XEN) No stack overflow detected. Skipping stack trace.
>   (XEN)
>   (XEN) ****************************************
>   (XEN) Panic on CPU 0:
>   (XEN) DOUBLE FAULT -- system shutdown
>   (XEN) ****************************************
> 
> This is on the instruction boundary after enabling CET (writing MSR_S_CET) and
> prior to establishing SSP.  Despite identifying this as a critical window
> where any fault was deadly (the CPU tries to push a shadow stack frame at 0,
> hence the CR2 value wrapping around to the top of the address space), I
> clearly forgot that this meant interrupts too, which are enabled.
> 
> Disable interrupts during the critical period.
> 
> Fixes: b60ab42db2f0 ("x86/shstk: Activate Supervisor Shadow Stacks")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <jbeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Teddy Astie <teddy.astie@vates.tech>
> 
> v2:
>  * Only disable regular interrupts.  NMIs are fine.

Much neater a fix as a result:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 05 09:05:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 09:05:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300384.1574918 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKBiZ-0008W6-Is; Tue, 05 May 2026 09:05:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300384.1574918; Tue, 05 May 2026 09:05:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKBiZ-0008Vz-FJ; Tue, 05 May 2026 09:05:27 +0000
Received: by outflank-mailman (input) for mailman id 1300384;
 Tue, 05 May 2026 09:05:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKBiY-0008Vt-WC
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 09:05:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKBiW-005GRI-M1
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 11:05:24 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9b2d4-bab6-0a2a0a5309dd-0a2a4502dace-0
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 11:05:24 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9b2d3-af86-0a2a45020019-d1558035e024-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 11:05:24 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-488b0e1b870so79238275e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 02:05:24 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a820c8556sm378553705e9.4.2026.05.05.02.05.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 02:05:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777971923; x=1778576723; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bJxNjvN6LpH1cYninMNyGJU1LRrWL7z2/RVNF62y98c=;
        b=WVee4XNdxLAxnOt7Y0w8RCN2uKSREtDaubcXBVxxyQ2OO1Z/EFsMyj1TaFmidycDaB
         OUobM5D8Q+2vs7hIvVaSo5PhdsZnuVHtsf7r5/mm8OPWq3gz+eSEplye47wVdRWCdoG9
         LODVUW9PS8BcWaTKbS9GeQRAhv9XZGZw63LR10cl+bzZ7MftrPzS0BLGItPli29Pe0ty
         9y4TFzk3LPIy3WtFOpCUSeEFQL4IQx2lTcvwcNbPFAPrtkEyngMu4jPBbKaR5hB7HMal
         xhMZpVBu+lIArcJWgb7WYTPzgNiNKtEKfXGiT3FZ2xoXOPzaqDihvwX5IIiBhaerbNB6
         04rQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777971923; x=1778576723;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bJxNjvN6LpH1cYninMNyGJU1LRrWL7z2/RVNF62y98c=;
        b=sUdQpMtu3+691T/0Ez3QrAsmSyKmvwbRhbXmS52QKbMVXaFik28/nixZnoizQ6YaEh
         VXMS0PGagUqfRp7tI/t+UNNaWbz8/k0wTWjNsU77i5QwneZIakm4Fyo1PweHUqpa0Veo
         FQ2munPjdzaTOZqzuo6HdCYN6lzyi+/itYFPeX+EXDTRAV/0TlZYKDWAxLo30yJtgz+D
         8v4noOeqDv87J73qnUk3d2oo+2NEZZZ6C3RfdadTkiCEw627W2E1rGAByc5+XLBD6rz6
         rMgd6I9IYNgMaDqFEC4QiJfDYldSF+zm62aq09pAnBuILrIcgjkTY4F/vloSwCABBXPB
         1wdg==
X-Gm-Message-State: AOJu0Yx72Oj2zRHLhEiCUSPHa/EzZmL8p+0Ujc625ekwD8dqvdrFehw2
	5RaZcnUsHsjZt0KV0ck1Y3b2+fUCOaTrH8kTkjWx/Eno/6i73sZBk7rd9mWAPRspmQ==
X-Gm-Gg: AeBDiesam1EHLrtyhANFi6kxMu0wvbVj3JUu9LQ7SdTfOxCBmNMd6VtXTO1ND4jU2wa
	6rOExWq1twpm06I74auTyUxMbE0v4ylexA9LhS0UUKT0B1elOrL2nd7t3AO9npB3nqFcUzzK0eD
	iTGu3eB8aDTC2cHZ1F7aY3qZ9CSM4hFFCvLvU06AI7+YQoVRglp7nzyd6ucfFELO5NkZZ2Rr2HO
	H+j9VZ6ynpVPvqj1EVyyvsAeoT+jjlAzStj96IQjXlNtaJh7iAqR+jdhE8XvPoYrV20zOmbh2/L
	t7wf1xdaXBCbC0FHANRMPw/wah/IyEQ2OiRECoDwtJTxYkYdce1CmYmIaXWbDAcay6Kccp1e0Sq
	3j962c1s4PczNbEX2/ZzazGc1A4AByNOvaZ6PIi3xxLPpiKe4lGfj+ecO3QWUfABuwu3YL8ebEh
	Mbg/a+/7Z9QC5BqhUzhcaIz5lYJ8fjf0QV2iPbSgQeAiaJ+e8WXC7EJFraoTfqReerEj7HgN+sv
	r0dscA4uOkcKVSbQi4t29IEaw==
X-Received: by 2002:a05:600c:444c:b0:489:1fa4:50c6 with SMTP id 5b1f17b1804b1-48a986691ebmr216651375e9.20.1777971923451;
        Tue, 05 May 2026 02:05:23 -0700 (PDT)
Message-ID: <32eddac5-73c7-46c4-8944-99cfe970c803@suse.com>
Date: Tue, 5 May 2026 11:05:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/11] xen: arm: fix len type for guest copy functions
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <e29e6176063f8e7c612a4bfa44ac072d7a686b81.1777303844.git.oleksii.kurochko@gmail.com>
 <53BD54C0-E493-4D04-9CB1-D16B148CA3A9@arm.com>
 <edfb6bc3-ad1a-4185-9966-29bb126a6b3f@suse.com>
 <F9DB9C27-810C-41DB-95DD-D00772CE4385@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <F9DB9C27-810C-41DB-95DD-D00772CE4385@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1777971924-890CF161-5E0D81A8/0/0
X-purgate-type: clean
X-purgate-size: 1169

On 05.05.2026 10:27, Luca Fancellu wrote:
>> On 4 May 2026, at 06:30, Jan Beulich <jbeulich@suse.com> wrote:
>> On 29.04.2026 12:08, Luca Fancellu wrote:
>>>> @@ -136,7 +136,7 @@ unsigned long raw_copy_from_guest(void *to, const void __user *from,
>>>> unsigned long copy_to_guest_phys_flush_dcache(struct domain *d,
>>>>                                              paddr_t gpa,
>>>>                                              void *buf,
>>>> -                                              unsigned int len)
>>>> +                                              unsigned long len)
>>>> {
>>>
>>> Now that we do this, potentially we could have truncation in the places where we store its return value
>>> inside an int:
>>
>> Those would suffer from truncation before and after this change, wouldn't they?
>> Just that where the truncation occurs does move. I.e. if necessary they would
>> want dealing with separately.
> 
> yes that’s true, truncation was already there in different places, do you want to deal with it separately so that
> we have a Fixes tag for it?

I already said I'd like that to be dealt with separately, didn't I?

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 05 09:13:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 09:13:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300395.1574927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKBqS-00024k-Dh; Tue, 05 May 2026 09:13:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300395.1574927; Tue, 05 May 2026 09:13:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKBqS-00024d-9x; Tue, 05 May 2026 09:13:36 +0000
Received: by outflank-mailman (input) for mailman id 1300395;
 Tue, 05 May 2026 09:13:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wKBqR-00024X-L6
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 09:13:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKBqR-004Jiv-0q
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 11:13:35 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69f9b4bd-e002-0a2a0a5209dd-0a2a45088f46-2
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 11:13:34 +0200
Received: from [209.85.218.51] (helo=mail-ej1-f51.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69f9b4be-63b5-0a2a45080019-d155da33e9bc-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 11:13:34 +0200
Received: by mail-ej1-f51.google.com with SMTP id
 a640c23a62f3a-bc177ebda91so395005066b.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 02:13:34 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-67cd91ea07dsm218439a12.31.2026.05.05.02.13.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 02:13:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777972414; x=1778577214; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=2Y/xQS/8peQaeFzRGmtIZFAj4XQpcEVQElamu0wDVcY=;
        b=Ws+IoQzxS5eBpI2JigdgQWgSRMMgtfPcAe4ww8J6BB6OhWJUMurp2WvXWP+qhj9eu2
         dTZ8qvNR9KVBSstVMc1XIfTPuv5pr3GlM8rPQmoxnsXwzehN3TmzJhpXkHUryHeXGKV6
         ZlZU6ratsRXRBR+WCq7m8XoTb5rH2NbT9fqgFv1+eVqpNhm+exS526j5awTIGp4aaQ5H
         DUmZbgTEjFcrNr7XMY2omwPOZNzzjAvxUcPwqu7CUcFkZj2N6st03W+jWq5gnzXK1frc
         MTQMSmTMSN53+OrT5mcmZLBLvrYIF+xBSpBR8OYBakCZlxfxgxqWCa39RpJdFbZL8xPK
         GxMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777972414; x=1778577214;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=2Y/xQS/8peQaeFzRGmtIZFAj4XQpcEVQElamu0wDVcY=;
        b=Jk6LlFVKcgoW6MIw9cgG0gsZLk1aTuH1l6zJORlIzUP9ldtsoHHB17mYbmvBI5ZSoh
         +lem3JleVb2oAA1zHwwJ7Hm6IsVvlOtGbjt7bW2sm89qyaDd/KSR+EW1qNGkcM/k67K3
         3iN6Wb6h9+68iFiTaqIHS6xZgo77R7sUEgPFFq3d5Q5uy2YF75Dp1rKCkJNGuDV7N+uI
         UIiw6QpBuMIYzK0eujN4S1+XvyhHw03rKUWKz1FbTZRXsdcv2Y1zPDYWRXeCj+YBAJQ9
         36XoC76Z1q4PyG2x3O8aQYMpSApBcJjJpohDfU2MOfMpd2bWww1QFHm0911k6pzpXGeA
         Q0nA==
X-Forwarded-Encrypted: i=1; AFNElJ/aoyWd0i6m3a+ccnC3Bt/koD1UB+/LF8bw0Cdch4xPhQD9zRyownx8QAyoRmrLXKhPoNm96r/Stls=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwNS1oq7fykDDQgByX/XW7o4hVJqHvBUCq4G+6eaLx8lIHn4Wwq
	8rm1dfwnQFQj9DngFaFBwP8zt9lg1VaFGFZ60toF8+0t61zwcZ0F3x1jg2qJYt+JKIc=
X-Gm-Gg: AeBDiesQvCFtTWdLeFC1kxPjPlDsCkzNrY8thD6EwW3IYDSgyiow6WirPdriVw5HKSv
	EXtNdvN5A+1sSTB6rdAfzd/hq4mWXax94dITE4Tq6gkyIM5SpLYtP0C5kItft3EqvSZ34TNq9AA
	rGx5fxmeos+wQ4q1KwmUHS3jkU8IQ5t/30JGo6Muy2xxOpaD04cTPIvSluy1z2r6ZVwpcTEg3Gt
	B8Ozu4oS3KEf5WUGFzEy22E1dFFj1g5kPaz+XeK37tkm//Lc63ZdAlrLuTkyi8fFJlcvdi1a2Yi
	+UKbCjEVnHzzFwGCyfM4bU3Vo9uP6zt9PNd5BQEclqDIxhCnPYWjNk+2/wqVZ25vXuFfV4B17YX
	8WFkt9GMREC6fYXzGMy56yF/x8O8Vm+7G1wPDAkQz40HOONydZPWsJpYNXCYoKML0b4JOw+7dOG
	CeJHvmeodpzSKfCwCN0OBbn8CMK57V2YAdCXcT7L2EvN07RZXD6Xtlc6aXHjCRJmyuRjZH6mgPt
	TrBGcMW/oO8asEk2qdKPhHBsv+wiLEiOpuC/gpl7jtTHGJWfPOF147aPxozZm8d
X-Received: by 2002:a17:907:3d4a:b0:ba9:aeaa:fd01 with SMTP id a640c23a62f3a-bbffd4cbca3mr766766966b.43.1777972413875;
        Tue, 05 May 2026 02:13:33 -0700 (PDT)
Message-ID: <59b953ce-4b51-4a47-8dba-9895dea33d41@suse.com>
Date: Tue, 5 May 2026 11:13:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Fix a potential problem in
 xen_e820_resolve_conflicts()
To: Jan Beulich <jbeulich@suse.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org, x86@kernel.org
References: <20260505080653.197775-1-jgross@suse.com>
 <6b241236-ed6d-4ada-beac-8f660bd55185@suse.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <6b241236-ed6d-4ada-beac-8f660bd55185@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------dAewGUNv0qm8HdmceafrUiMz"
X-purgate-ID: tlsNG-c1860d/1777972414-C2368DB1-54DE0D6E/0/0
X-purgate-type: clean
X-purgate-size: 12396

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------dAewGUNv0qm8HdmceafrUiMz
Content-Type: multipart/mixed; boundary="------------JiQauVkPK1gsx2X8jgppe5kb";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org, x86@kernel.org
Message-ID: <59b953ce-4b51-4a47-8dba-9895dea33d41@suse.com>
Subject: Re: [PATCH] x86/xen: Fix a potential problem in
 xen_e820_resolve_conflicts()
References: <20260505080653.197775-1-jgross@suse.com>
 <6b241236-ed6d-4ada-beac-8f660bd55185@suse.com>
In-Reply-To: <6b241236-ed6d-4ada-beac-8f660bd55185@suse.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------JiQauVkPK1gsx2X8jgppe5kb
Content-Type: multipart/mixed; boundary="------------sHBvnREvYxzRavgDWAi07Ppt"

--------------sHBvnREvYxzRavgDWAi07Ppt
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMDUuMDUuMjYgMTA6NDMsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNS4wNS4yMDI2
IDEwOjA2LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gV2hlbiBmaXhpbmcgYSBjb25mbGlj
dCBpbiB4ZW5fZTgyMF9yZXNvbHZlX2NvbmZsaWN0cygpLCB0aGUgbG9vcCBvdmVyDQo+PiB0
aGUgRTgyMCBtYXAgZW50cmllcyBuZWVkcyB0byBiZSByZXN0YXJ0ZWQsIGFzIHRoZSBFODIw
IG1hcCB3aWxsIGhhdmUNCj4+IGJlZW4gbW9kaWZpZWQgYnkgdGhlIGZpeC4gT3RoZXJ3aXNl
IGVudHJpZXMgbWlnaHQgYmUgc2tpcHBlZCBieQ0KPj4gYWNjaWRlbnQuDQo+Pg0KPj4gRml4
ZXM6IGJlMzVkOTFjODg4MCAoInhlbjogdG9sZXJhdGUgQUNQSSBOVlMgbWVtb3J5IG92ZXJs
YXBwaW5nIHdpdGggWGVuIGFsbG9jYXRlZCBtZW1vcnkiKQ0KPj4gU2lnbmVkLW9mZi1ieTog
SnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KPiANCj4gRmlyc3QsIHdoaWxlIHRy
eWluZyB0byByZXZpZXcgdGhpcywgaXNuJ3QgdGhlcmUgYW5vdGhlciBpc3N1ZSBpbg0KPiB4
ZW5fZTgyMF9zd2FwX2VudHJ5X3dpdGhfcmFtKCksIGluIHRoYXQNCj4gDQo+IAkJCWVudHJ5
LT5hZGRyID0gZW50cnlfZW5kIC0gc3dhcF9zaXplICsNCj4gCQkJCSAgICAgIHN3YXBfYWRk
ciAtIHN3YXBfZW50cnktPmFkZHI7DQo+IA0KPiANCj4gcmVhbGx5IG1lYW5zIHRvIGJlDQo+
IA0KPiAJCQllbnRyeS0+YWRkciA9IGVudHJ5X2VuZCAtIHN3YXBfc2l6ZSArDQo+IAkJCQkg
ICAgICBzd2FwX2VudHJ5LT5hZGRyIC0gc3dhcF9hZGRyOw0KPiANCj4gKGFmZmVjdGluZyBu
b24tcGFnZS1hbGlnbmVkIEU4MjAgZW50cmllcyk/DQoNClllcywgeW91IGFyZSByaWdodC4N
Cg0KPiANCj4gRnVydGhlciwgdGhhdCBmdW5jdGlvbiBjb252ZXJ0cyBzd2FwX2VudHJ5IHRv
IHRoZSBwYWdlLWFsaWduZWQgc3VwZXJzZXQNCj4gb2YgdGhlIHBhc3NlZCBpbiByYW5nZS4g
SG93IGlzIGl0IGd1YXJhbnRlZWQgdGhhdCB0aGlzIG5ldyByYW5nZSB3b24ndA0KPiBvdmVy
bGFwIHdpdGggdGhlIHByZWRlY2Vzc29yIGFuZC9vciBzdWNjZXNzb3Igb25lPyBXb3VsZG4n
dCB0aGF0IG5lZWQNCj4gdG8gYmUgY29udmVyc2lvbiB0byB0aGUgcGFnZS1hbGlnbmVkIHN1
YnNldCBpbnN0ZWFkPw0KDQpUaGlzIGlzIHN1YnRsZS4gOi0pDQoNCldlIGFyZSBjb252ZXJ0
aW5nIHRvIFJBTSAodXNhYmxlKSwgc28gdGhlIHR5cGUgdmFsdWUgaXMgMS4gZTgyMF9fdXBk
YXRlX3RhYmxlKCkNCndpbGwgaGFuZGxlIG92ZXJsYXBzIGp1c3QgZmluZSwgd2l0aCBoaWdo
ZXIgdHlwZSB2YWx1ZXMgIndpbm5pbmciIGFnYWluc3QgbG93ZXINCm9uZXMuIFNvIGFueSBv
dGhlciByZWdpb24gb3ZlcmxhcHBpbmcgd2l0aCB0aGUgbmV3IFJBTSByZWdpb24gd2lsbCBy
ZXN1bHQgaW4NCmFub3RoZXIgY29uZmxpY3QgaW4gdGhlIG5leHQgbG9vcCBpdGVyYXRpb24u
DQoNClVzaW5nIHRoZSBwYWdlLWFsaWduZWQgc3Vic2V0IHdvdWxkIHJlc3VsdCBpbiBwb3Nz
aWJsZSBtZW1vcnkgaG9sZXMsIHdoaWNoIHdvdWxkDQpiZSBwcm9ibGVtYXRpYyAodGhlIGtl
cm5lbCBvciBwYWdlIHRhYmxlcyBzaG91bGRuJ3QgaGF2ZSBob2xlcywgYWZ0ZXIgYWxsKS4N
Cg0KPiANCj4gQW5kIHRoZW4sIGlzIHBhc3NpbmcgdGhlIHBhZ2UtYWxpZ25lZCBzdXBlcnNl
dCB0byB4ZW5fYWRkX3JlbWFwX25vbnJhbSgpDQo+IHJlYWxseSBhcHByb3ByaWF0ZT8gV2h5
IHdvdWxkIGFueSBsZWFkaW5nIG9yIHRyYWlsaW5nIHNwYWNlIHRoZXJlIGJlDQo+IHN1Ympl
Y3QgdG8gcmVtYXBwaW5nPw0KDQpIb3cgd291bGQgeW91IHdhbnQgdG8gcmVtYXAgYSBzdWIt
cGFnZSBwaHlzaWNhbCBtZW1vcnkgYXJlYSB0byBhbm90aGVyIGxvY2F0aW9uDQp3aXRob3V0
IGFmZmVjdGluZyB0aGUgcmVzdCBvZiB0aGUgcGFnZT8gV2UgYXJlIHJld29ya2luZyB0aGUg
ZmluYWwgcDJtIG1hcCBoZXJlLg0KDQo+IA0KPj4gLS0tIGEvYXJjaC94ODYveGVuL3NldHVw
LmMNCj4+ICsrKyBiL2FyY2gveDg2L3hlbi9zZXR1cC5jDQo+PiBAQCAtNjk1LDE3ICs2OTUs
MjIgQEAgc3RhdGljIHZvaWQgX19pbml0IHhlbl9lODIwX3Jlc29sdmVfY29uZmxpY3RzKHBo
eXNfYWRkcl90IHN0YXJ0LA0KPj4gICAJCXJldHVybjsNCj4+ICAgDQo+PiAgIAllbmQgPSBz
dGFydCArIHNpemU7DQo+PiAtCWVudHJ5ID0geGVuX2U4MjBfdGFibGUuZW50cmllczsNCj4+
ICsJbWFwY250ID0gMDsNCj4+ICAgDQo+PiAtCWZvciAobWFwY250ID0gMDsgbWFwY250IDwg
eGVuX2U4MjBfdGFibGUubnJfZW50cmllczsgbWFwY250KyspIHsNCj4+ICsJd2hpbGUgKG1h
cGNudCA8IHhlbl9lODIwX3RhYmxlLm5yX2VudHJpZXMpIHsNCj4+ICsJCWVudHJ5ID0geGVu
X2U4MjBfdGFibGUuZW50cmllcyArIG1hcGNudDsNCj4+ICAgCQlpZiAoZW50cnktPmFkZHIg
Pj0gZW5kKQ0KPj4gICAJCQlyZXR1cm47DQo+PiAgIA0KPj4gICAJCWlmIChlbnRyeS0+YWRk
ciArIGVudHJ5LT5zaXplID4gc3RhcnQgJiYNCj4+IC0JCSAgICBlbnRyeS0+dHlwZSA9PSBF
ODIwX1RZUEVfTlZTKQ0KPj4gKwkJICAgIGVudHJ5LT50eXBlID09IEU4MjBfVFlQRV9OVlMp
IHsNCj4+ICAgCQkJeGVuX2U4MjBfc3dhcF9lbnRyeV93aXRoX3JhbShlbnRyeSk7DQo+PiAr
CQkJLyogRTgyMCBtYXAgaGFzIGJlZW4gY2hhbmdlZCwgcmVzdGFydCBsb29wISAqLw0KPj4g
KwkJCW1hcGNudCA9IDA7DQo+PiArCQkJY29udGludWU7DQo+PiArCQl9DQo+PiAgIA0KPj4g
LQkJZW50cnkrKzsNCj4+ICsJCW1hcGNudCsrOw0KPj4gICAJfQ0KPj4gICB9DQo+IA0KPiBH
aXZlbiB3aGF0IGV4YWN0bHkgeGVuX2U4MjBfc3dhcF9lbnRyeV93aXRoX3JhbSgpIGRvZXMs
IHJlc3RhcnRpbmcgZnJvbQ0KPiBlbnRyeSAwIGxvb2tzIHRvIGJlIG5lZWRlZCBvbmx5IGlm
IHRoZSBub24tUkFNIGVudHJ5IGVuZGVkIHVwIG1vdmluZyBkb3duDQo+IChzdHJpY3RseSBz
cGVha2luZyBldmVuIHRoZXJlIGl0IHdvdWxkbid0IG5lZWQgdG8gYmUgZW50cnkgMCkuIElm
IGl0DQo+IG1vdmVkIHVwLCBzaW1wbHkgbm90IGluY3JlbWVudGluZyBtYXBjbnQgd291bGQg
bG9vayB0byBzdWZmaWNlLiBTaW5jZSB0aGUNCj4gZXh0cmEgb3ZlcmhlYWQgaXMgbGlrZWx5
IHRvbGVyYWJsZSBoZXJlICh3aXRoIHNpbXBsaWNpdHkgb2YgdGhlIGNvZGUNCj4gYmVpbmcg
bW9yZSBpbXBvcnRhbnQpLCB0aGlzIG1heSB3YW50IG1lbnRpb25pbmcgaW4gYSBjb2RlIGNv
bW1lbnQgKG9yIGF0DQo+IGxlYXN0IHRoZSBkZXNjcmlwdGlvbikuIFByZWZlcmFibHkgd2l0
aCB0aGF0Og0KPiBSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29t
Pg0KDQpUaGFua3MsDQoNCg0KSnVlcmdlbg0K
--------------sHBvnREvYxzRavgDWAi07Ppt
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------sHBvnREvYxzRavgDWAi07Ppt--

--------------JiQauVkPK1gsx2X8jgppe5kb--

--------------dAewGUNv0qm8HdmceafrUiMz
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmn5tL0FAwAAAAAACgkQsN6d1ii/Ey+M
2wf/ZdhzFiiteUpSVRo4BGyVpMhKkPv+7/ZtOcLSumpAkSxzB9o0lDMjYKiyjx5AMDcBwlcv3Age
f5P+Tia+jdtE59+BQA0AWHqJ1Xy6APU2iFuMeUI3E45ovcdGOAHMWG3eF7McO3iid9Kc9rmO3o4e
17ElN8RZVrS7WjMiIyDlXSQ8KCN5GVJgNAFnu/Mn8l6ktQ4NuOlGtdJJdVB6mSSWNotx+f/xxQX4
hzKf7MPRAhlTvuOvjbf49wd/HSSE+n+6dXmJyv9zvkfMkjqf6UKN/mRB2DlzhqP0RPu9jQNL1Mps
9slfyg/v0cKI8Gs+xp/xX06PA7uY/61YU+5SF/qoIw==
=XkA8
-----END PGP SIGNATURE-----

--------------dAewGUNv0qm8HdmceafrUiMz--


From xen-devel-bounces@lists.xenproject.org Tue May 05 09:22:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 09:22:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300404.1574937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKByo-0003wJ-74; Tue, 05 May 2026 09:22:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300404.1574937; Tue, 05 May 2026 09:22:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKByo-0003wC-33; Tue, 05 May 2026 09:22:14 +0000
Received: by outflank-mailman (input) for mailman id 1300404;
 Tue, 05 May 2026 09:22:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jens.wiklander@linaro.org>) id 1wKByn-0003w6-2W
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 09:22:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKBym-005KFX-Ee
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 11:22:12 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jens.wiklander@linaro.org>)
 id 69f9b6af-e002-0a2a0a5209dd-0a2a45079eba-36
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 11:22:12 +0200
Received: from [209.85.160.54] (helo=mail-oa1-f54.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jens.wiklander@linaro.org>)
 id 69f9b6c3-229c-0a2a45070019-d155a036c589-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 11:22:12 +0200
Received: by mail-oa1-f54.google.com with SMTP id
 586e51a60fabf-4232323a7daso1875815fac.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 02:22:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=linaro.org header.i="@linaro.org" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1777972930; cv=none;
        d=google.com; s=arc-20240605;
        b=A/dEKqpTmqOy9MnOG16YKWoUnkVKgc7MkorRydrIc+gJxM2tLZ6hDtaPxtVH5noF12
         h+hU3F9PLp4ohDoq5lWOgQKCGDc9sqc75G/TkaNwLWeg0rciPrJv5ApyHvuiPpatdArx
         bAj+1EIcAJJzUQVRo1cL+4qM4TyhVP/TWikafTuwAYV2iQf4MPsoVkBTO305k1QEp0fm
         xJwYR29JNeQE+kEVZ2pbLiXPJUikkQv2BV26qMQoWakPIg+ukRuB5jegm0RQ8XC/6jSA
         cLLuQUBsv6ATqNqO7miLvXc6pOn3Swydk0DpHrH2k8ctyMs3v8kHvJ4YEolxwkAPHvDx
         ZGnA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=bF2MhqEkmPDfOhZHwctv0kDz2MF4bZE20UsKIaTdzEM=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=XDnfQJYWadJ4jtutVAFepRlB32nhhDXnWaHd48Jcad/6Ombi0zYF/GCS54AtpyUS8K
         Q+cxmiosDHXrsPjZzDL+WNqsVSd2Tc+jPxsTiwUOxK/ABFy9ucKcEmv5MOSAcASa6fY7
         1QWEesae8XOEsciSG2FD3gSe2PLWVzIIWzLD7dx1GIlK9b5N/qsywhlKOULlFyhTRt1c
         fU3S+SkBfLliD1hRpn7XYV3FfxEuCW7ldNFMOdiZnzcdaz2M+uGEJJCsUBmlAB2ux3wF
         jyar47eNHA9A3CBg5m5QxyVgnlBifTaE68FoVbU4YtGim13SyURxzPXxlzo5dOkCMw79
         GN+g==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1777972930; x=1778577730; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bF2MhqEkmPDfOhZHwctv0kDz2MF4bZE20UsKIaTdzEM=;
        b=nUz4D8jT7jEcu0Pv8i3/r1z7HZ601LFDX/jC/xtpucVuCi2jwRNt+IBxPDX2zl8mTl
         4PBX+8KuFAoHYeIvp0FUfPIvI3HHUWicdcgD0SZxXnkyWc7oZoXLrt6NKES1UASdf+MX
         XhaTi30Q8V12b/m70W4UVdvE09CQo60RWYJiN4lk+i4IKByR7fH5NtBEy+1pjiYDoKtF
         fl1TS0t7xRw97i0EipfynP37kbmcYdHN/n00JLqDFof3B/XzCu5NQzus8Liys7UqKDUj
         UGEGuGyFV2GJlDLl4E0ONlHoz6dvDOwLtn3cRGYKc3ycNtMeopj/y/YSPMRFomhCr3Xn
         ysHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777972930; x=1778577730;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=bF2MhqEkmPDfOhZHwctv0kDz2MF4bZE20UsKIaTdzEM=;
        b=cGji5GxUdwLgMeq97inu9NMmlE6XDnAjY4IqjYTtBqfq9ByzOUS73EqSWSJ+L+4tFB
         qQM2XWVa+AcSWX3BJp5Kp2GLL3V02zPdGzSb+GdEb68lls23cstPVrwT2jSuRC61fNTr
         5kxsrQEDa/mzjf2oM7wVcosZUkTsT+QVfzKupctRWE/v6lq7QxQ0Pei4b3kiHZR2XvB8
         e/8uxfxPPSOGO4VDQaWAh/iuaYoA9EiX/3bYOZEwIVGRNEWA/FUMyV6EpidGB7q5M1cI
         9jfTO66zA5wAqp7Dzlzq9gZHqarg/bhOxvyHF2BwovZEf1SjEiJqSOxsoDVdePn4aqU3
         msSw==
X-Gm-Message-State: AOJu0YwhNruBu8cN9OI/jQguVtBE4Py+m9o99tuBhz4+NYbeVDMfaqdG
	TreTOEcS3XcsrxhjA8OE1CyXMl65ujF195AZoEJrFSnd62nHZbhR2bagl7XV3h/iN5RFbUBkWfP
	Ne5VqhmbO585trlw9GrJ0G9UMzR5lBnBru/hGiRDhdg==
X-Gm-Gg: AeBDievB2V04ayCnz9mBBqPWVMa1ud5VEfcACPg6YGUW/NKMiRZuksven2thuSC5zmU
	ipJiXkV7VEfP3UDK5oPoG/960lzHTToh2QFTdSilkX1e2mLiQ+OfkBFoHXpvQvBQpJBuiL3AOZu
	oTt0861wzJEHSHwj/A1YTmSjuf6RKBQwNah3S9nGgAW807S66TifC0UczrB1zl9esVSxARbqt3g
	bvNrdIHgoI6urp2PrwrsqDrfNsM/GURyGTLaCtFDoeo1XAPjRUyysaxDDdz1hRxFn4QCbxgw9qA
	/XjSpfRju6oik0g8UUBooFjj08k+k1oQ9BQxvU218vL+fh0+
X-Received: by 2002:a05:6871:829:b0:434:2752:34db with SMTP id
 586e51a60fabf-434d3f64953mr1256227fac.5.1777972930369; Tue, 05 May 2026
 02:22:10 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1776955622.git.bertrand.marquis@arm.com> <1ead2af7182a0501f16e7b4e9ad3e58ccd8f538c.1776955622.git.bertrand.marquis@arm.com>
In-Reply-To: <1ead2af7182a0501f16e7b4e9ad3e58ccd8f538c.1776955622.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 5 May 2026 11:21:57 +0200
X-Gm-Features: AVHnY4IxbheL-Y6kED6xjiouZiMz263rlg7LJlyow8jkhaTaKdqkJ3po73KqXvQ
Message-ID: <CAHUa44ES1LD6wgDic8Y6zm7+AzWFg6x7pSZhY6NkneW3mse+wA@mail.gmail.com>
Subject: Re: [PATCH v2 6/6] xen/arm: ffa: Deliver VM-to-VM notifications locally
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ef75cf/1777972932-16062C48-9F58A8FB/0/0
X-purgate-type: clean
X-purgate-size: 10679

Hi Bertrand,

On Wed, Apr 29, 2026 at 7:44=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> VM notification binding and pending tracking exist for non-secure
> endpoints, but FFA_NOTIFICATION_SET still only forwards secure
> destinations to the SPMC. Non-secure VMs therefore cannot receive
> notifications from other VMs. Local NPI delivery also needs explicit
> re-arm tracking so repeated raises are not lost while the interrupt is
> already pending.
>
> Add a local VM notification delivery path for non-secure destinations.
> notification_set_vm() resolves the destination endpoint, verifies that
> every requested bit is bound to the sender, sets the receiver's
> vm_pending bitmap under notif_lock, and raises an NPI only when local
> pending state is not already armed.
>
> Track whether a local NPI is already armed with notif_irq_raised,
> clear that state once both VM and hypervisor pending bitmaps are
> drained, and keep notif_lock held across the VM notification injection
> attempt. If no destination vCPU is online, leave the pending bits set
> and keep notif_irq_raised clear so delivery can be retried later.
> Also expose firmware notification availability so FFA_FEATURES only
> advertises notification support when it is actually provided by the
> firmware or by CONFIG_FFA_VM_TO_VM.
>
> Functional impact: when CONFIG_FFA_VM_TO_VM is enabled, non-secure
> FFA_NOTIFICATION_SET delivers VM-to-VM notifications locally and keeps
> NPI delivery reliable across repeated raises.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes since v1:
> - serialize notification_set_vm() state updates with the NPI attempt
> - keep pending VM notifications set when local injection fails
> ---
>  xen/arch/arm/tee/ffa.c         | 24 ++++++++--
>  xen/arch/arm/tee/ffa_notif.c   | 82 ++++++++++++++++++++++++++++++++--
>  xen/arch/arm/tee/ffa_private.h | 17 ++++---
>  3 files changed, 107 insertions(+), 16 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 1fe33f26454a..7fe021049cba 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -39,8 +39,13 @@
>   * o FFA_MSG_SEND_DIRECT_REQ:
>   *   - only supported from a VM to an SP
>   * o FFA_NOTIFICATION_*:
> + *   - only supported when firmware notifications are enabled or VM-to-V=
M
> + *     support is built in
>   *   - only supports global notifications, that is, per vCPU notificatio=
ns
> - *     are not supported
> + *     are not supported and secure per-vCPU notification information is
> + *     not forwarded
> + *   - the source endpoint ID reported for a notification may no longer
> + *     exist by the time the receiver consumes it
>   *   - doesn't support signalling the secondary scheduler of pending
>   *     notification for secure partitions
>   *   - doesn't support notifications for Xen itself
> @@ -245,6 +250,8 @@ static void handle_features(struct cpu_user_regs *reg=
s)
>      uint32_t a1 =3D get_user_reg(regs, 1);
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
> +    bool notif_supported =3D IS_ENABLED(CONFIG_FFA_VM_TO_VM) ||
> +                           ffa_notif_fw_enabled();
>
>      /*
>       * FFA_FEATURES defines w2 as input properties only for specific
> @@ -343,10 +350,16 @@ static void handle_features(struct cpu_user_regs *r=
egs)
>
>          break;
>      case FFA_FEATURE_NOTIF_PEND_INTR:
> -        ffa_set_regs_success(regs, GUEST_FFA_NOTIF_PEND_INTR_ID, 0);
> +        if ( notif_supported )
> +            ffa_set_regs_success(regs, GUEST_FFA_NOTIF_PEND_INTR_ID, 0);
> +        else
> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
>          break;
>      case FFA_FEATURE_SCHEDULE_RECV_INTR:
> -        ffa_set_regs_success(regs, GUEST_FFA_SCHEDULE_RECV_INTR_ID, 0);
> +        if ( notif_supported )
> +            ffa_set_regs_success(regs, GUEST_FFA_SCHEDULE_RECV_INTR_ID, =
0);
> +        else
> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
>          break;
>      case FFA_PARTITION_INFO_GET_REGS:
>          if ( ACCESS_ONCE(ctx->guest_vers) >=3D FFA_VERSION_1_2 )
> @@ -361,7 +374,10 @@ static void handle_features(struct cpu_user_regs *re=
gs)
>      case FFA_NOTIFICATION_SET:
>      case FFA_NOTIFICATION_INFO_GET_32:
>      case FFA_NOTIFICATION_INFO_GET_64:
> -        ffa_set_regs_success(regs, 0, 0);
> +        if ( notif_supported )
> +            ffa_set_regs_success(regs, 0, 0);
> +        else
> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
>          break;
>      default:
>          ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
> index a841c8f8d747..b29d948a7110 100644
> --- a/xen/arch/arm/tee/ffa_notif.c
> +++ b/xen/arch/arm/tee/ffa_notif.c
> @@ -21,6 +21,11 @@ static bool __ro_after_init fw_notif_enabled;
>  static unsigned int __ro_after_init notif_sri_irq;
>  static DEFINE_SPINLOCK(notif_info_lock);
>
> +bool ffa_notif_fw_enabled(void)
> +{
> +    return fw_notif_enabled;
> +}
> +
>  static bool inject_notif_pending(struct domain *d)
>  {
>      struct vcpu *v;
> @@ -107,6 +112,55 @@ out_unlock:
>      return ret;
>  }
>
> +/*
> + * Deliver a VM-to-VM notification. ctx->notif.notif_lock protects
> + * vm_bind/vm_pending so callers must not hold it already.
> + */
> +static int32_t notification_set_vm(uint16_t dst_id, uint16_t src_id,
> +                                   uint32_t flags, uint64_t bitmap)
> +{
> +    struct domain *dst_d;
> +    struct ffa_ctx *dst_ctx;
> +    unsigned int id;
> +    int32_t ret;
> +
> +    if ( flags )
> +        return FFA_RET_INVALID_PARAMETERS;
> +
> +    ret =3D ffa_endpoint_domain_lookup(dst_id, &dst_d, &dst_ctx);
> +    if ( ret )
> +        return ret;
> +
> +    ret =3D FFA_RET_OK;
> +
> +    spin_lock(&dst_ctx->notif.notif_lock);
> +
> +    for ( id =3D 0; id < FFA_NUM_VM_NOTIF; id++ )
> +    {
> +        if ( !(bitmap & BIT(id, ULL)) )
> +            continue;
> +
> +        if ( dst_ctx->notif.vm_bind[id] !=3D src_id )
> +        {
> +            ret =3D FFA_RET_DENIED;
> +            goto out_unlock;
> +        }
> +    }
> +
> +    dst_ctx->notif.vm_pending |=3D bitmap;
> +    if ( !dst_ctx->notif.notif_irq_raised &&
> +         (dst_ctx->notif.vm_pending || dst_ctx->notif.hyp_pending) &&
> +         inject_notif_pending(dst_d) )
> +        dst_ctx->notif.notif_irq_raised =3D true;
> +
> +out_unlock:
> +    spin_unlock(&dst_ctx->notif.notif_lock);
> +
> +    rcu_unlock_domain(dst_d);
> +
> +    return ret;
> +}
> +
>  int32_t ffa_handle_notification_bind(struct cpu_user_regs *regs)
>  {
>      struct domain *d =3D current->domain;
> @@ -288,6 +342,8 @@ void ffa_handle_notification_get(struct cpu_user_regs=
 *regs)
>
>      if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
>      {
> +        bool pending;
> +
>          spin_lock(&ctx->notif.notif_lock);
>
>          if ( (flags & FFA_NOTIF_FLAG_BITMAP_HYP) && ctx->notif.hyp_pendi=
ng )
> @@ -298,6 +354,18 @@ void ffa_handle_notification_get(struct cpu_user_reg=
s *regs)
>                  ctx->notif.notif_irq_raised =3D false;
>          }
>
> +        if ( (flags & FFA_NOTIF_FLAG_BITMAP_VM) && ctx->notif.vm_pending=
 )
> +        {
> +            w4 =3D (uint32_t)(ctx->notif.vm_pending & GENMASK(31, 0));
> +            w5 =3D (uint32_t)((ctx->notif.vm_pending >> 32) & GENMASK(31=
, 0));
> +            ctx->notif.vm_pending =3D 0;
> +        }
> +
> +        pending =3D (ctx->notif.hyp_pending !=3D 0) ||
> +                  (ctx->notif.vm_pending !=3D 0);
> +        if ( !pending )
> +            ctx->notif.notif_irq_raised =3D false;

This seems to take care of clearing notif_irq_raised for all cases. Do
we still need the one just above this block (copied here):
            if ( !ctx->notif.vm_pending )
                ctx->notif.notif_irq_raised =3D false;
?

Cheers,
Jens

> +
>          spin_unlock(&ctx->notif.notif_lock);
>      }
>
> @@ -323,9 +391,17 @@ int32_t ffa_handle_notification_set(struct cpu_user_=
regs *regs)
>      if ( flags )
>          return FFA_RET_INVALID_PARAMETERS;
>
> -    if ( FFA_ID_IS_SECURE(dest_id) && fw_notif_enabled )
> -        return ffa_simple_call(FFA_NOTIFICATION_SET, src_dst, flags, bit=
map_lo,
> -                               bitmap_hi);
> +    if ( FFA_ID_IS_SECURE(dest_id) )
> +    {
> +        if ( fw_notif_enabled )
> +            return ffa_simple_call(FFA_NOTIFICATION_SET, src_dst, flags,
> +                                   bitmap_lo, bitmap_hi);
> +    }
> +    else if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> +    {
> +        return notification_set_vm(dest_id, caller_id, flags,
> +                                   ((uint64_t)bitmap_hi << 32) | bitmap_=
lo);
> +    }
>
>      return FFA_RET_NOT_SUPPORTED;
>  }
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 78a0a9815d56..923a071a9d7c 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -340,20 +340,18 @@ struct ffa_ctx_notif {
>      uint64_t vm_pending;
>
>      /*
> -     * Source endpoint bound to each VM notification ID (0 means unbound=
).
> +     * Tracks whether an NPI has been raised for local pending notificat=
ions.
> +     * Protected by notif_lock.
>       */
> -    uint16_t vm_bind[FFA_NUM_VM_NOTIF];
> +    bool notif_irq_raised;
>
>      /*
> -     * Lock protecting the hypervisor-managed notification state.
> +     * Source endpoint bound to each VM notification ID (0 means unbound=
).
>       */
> -    spinlock_t notif_lock;
> +    uint16_t vm_bind[FFA_NUM_VM_NOTIF];
>
> -    /*
> -     * Tracks whether a local notification pending interrupt was raised.
> -     * Protected by notif_lock.
> -     */
> -    bool notif_irq_raised;
> +    /* Lock protecting local notification state. */
> +    spinlock_t notif_lock;
>
>      /*
>       * Bitmap of pending hypervisor notifications (for HYP bitmap querie=
s).
> @@ -495,6 +493,7 @@ void ffa_notif_init(void);
>  void ffa_notif_init_interrupt(void);
>  int ffa_notif_domain_init(struct domain *d);
>  void ffa_notif_domain_destroy(struct domain *d);
> +bool ffa_notif_fw_enabled(void);
>
>  int32_t ffa_handle_notification_bind(struct cpu_user_regs *regs);
>  int32_t ffa_handle_notification_unbind(struct cpu_user_regs *regs);
> --
> 2.53.0
>


From xen-devel-bounces@lists.xenproject.org Tue May 05 09:52:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 09:52:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300420.1574946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCRc-0000BX-JD; Tue, 05 May 2026 09:52:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300420.1574946; Tue, 05 May 2026 09:52:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCRc-0000BO-EW; Tue, 05 May 2026 09:52:00 +0000
Received: by outflank-mailman (input) for mailman id 1300420;
 Tue, 05 May 2026 09:51:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wKCRa-0000BH-Ud
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 09:51:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKCRa-00BuH5-8R
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 11:51:58 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69f9bdbe-e002-0a2a0a5209dd-0a2a450bead6-0
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 11:51:58 +0200
Received: from [40.93.195.5]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69f9bdbc-212f-0a2a450b0019-285dc30517df-4
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 11:51:57 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM6PR03MB5226.namprd03.prod.outlook.com (2603:10b6:5:229::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 09:51:54 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9870.023; Tue, 5 May 2026
 09:51:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=t+FqDgr4qEDLO095/q7GD8adPNmA9n3YCHxxhotqeL4DVUkaM0+AOrUHxdkZwALyKWPf5jV+xZfUc4oL6Gdxx+Fg7Zxal16m50Ale3frD75KWgRo2ERKg3nY+KNYdc1xeDRkDiGc3wXEG8/50DVsDhGGhhMc8NdMVEnFrnmAMDiuMIN5AcJkkbH6IA1zKB8D3MOCAGpqMU2uSAR8iqJto2n571y3hoi6aETWzEL8/LCuPE1+UNX34ntCkVtBSuesNsbLcfO5sy2yHXZJly2qaTmxs0jrQ0qhzFzuFH8djV/BioxV8YBQqw+xS3LMqRCD2XeB6lww2xZ/LZTbQDCplA==
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=x04ahgBByQJsXXmBoTLtnTDW8y+6xS92mrsbssJR3us=;
 b=rqxT6jW8TV7mjgO3GDBRBB9kJ8N8UT5GlQALjGfSGRwB5vvtuE7EyS2AFuCAuJvjNcg+OK4LR0oU9dthSOte+NzfzSlXWbpzBG17nhLC2RYa0YOxM5ETJXnF82q+2bFBnaELpsUgi18e7Z78T0T31RNkSNQz+5vGFSFXxDNziPCXqwEXGf7ez8ln7ru3KlgXGl2+ahEZJtx+PWcZ8lEgfkM6fwW4/eTetfPteLyvSVwRs4EZntFGJK0KTVM7p5O+KJiM4zHoyBqnaxn1bIj5B8vBFHZEvp47XJyUUXERuKZ7TbIivhbph8bPDSFBpL3+PLNundM5khKJWCre6ACHGg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=x04ahgBByQJsXXmBoTLtnTDW8y+6xS92mrsbssJR3us=;
 b=aL2pWyFvB7HseKTFnXtJRs/9CRh9PRHuirX+CYg3XAgKj95uCj8EjX9RotKBEtHWxzPFAZ7o0o0SWxVZwtzCI+PA2FtgDf87kKlM6jPR9y63mbpejd2D7OntUXX7rAeIDUO1Y7ixd4j3wMAUvdzZJRx+GUDZW7rYG1h8A3xQNbE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <97213bec-14f0-45e0-ac22-c01b4db5df6e@citrix.com>
Date: Tue, 5 May 2026 10:51:51 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2] x86/boot: Disable interrupts when establishing SSP
To: Jan Beulich <jbeulich@suse.com>
References: <20260505084315.1350002-1-andrew.cooper3@citrix.com>
 <ba9facaa-84e1-4c61-8e47-9ef76067a922@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <ba9facaa-84e1-4c61-8e47-9ef76067a922@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0189.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a4::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DM6PR03MB5226:EE_
X-MS-Office365-Filtering-Correlation-Id: ae9600c3-fb7a-4b38-b2f6-08deaa8bf066
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	NtAkir2KtG38XqabWn7byg1+z7rmgc8IrR3WRCrXB4akVAXGsOUnQbHeETQSHxdtXkFHRMiCXzb4uQGOoqaS/+DTXTJQraXvkgIlmpRSdiPVmd+4wDsVop3XrOAfVa/IhphPyCLAw04O8tNx74aOpT7zhDGd+wM6uFK5OBDuwfKwM8gWC1Fu9mPQby5Jc4qmauLpF4mlVZK+42vUYJ49hNgtsbfHVcpYo868jtZYy9S1cPds/dUCH8WA9e2dtFTwQgQXlOFmUmPZcDIFz+n3+jXLoZyLtY3K2ma1pcXbB4pp4Toi+up0GLxO8puWhnO4yqDHVljAoXAECGyLGPqR9ttRUiRNjzVtmXQSzayeYh/AebHh1i0s91PwrsTIRU656k24FFMgURzw1kj+3AycLKRHlxClA7ngZCDZRr6/0CohrEHankUuw1Mkw9QNV3/S6g7bazCly5iTzfYLKNjxVl9deoJDAPj/865It5AFVQnaTZsnZf2gefFwIXJ+eVClLsB1K7sxsjgdBWIOoNHq8QuxkFM+UNvAjY+8tIj2poM2UWAJLexDkb4GiQnSqCpYDq2AcZifPy1ab4WgByQIb76epcfFH14+y3h71IAaH2vJs5jrk/glgK2BZsKmbplbVC6fbLEN20OxdiXnIJyDRNHBYUd4gB0MKjHTzRiFOo5EuUsOFKHXgHEXRenR+u3q
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?STY5YmxMRi9iQk9iSFRncXBsZ2ZTV1l6b2t3dmRiYzVFRmo2MndSdmNXS29S?=
 =?utf-8?B?R2pEalNVcUpta3ZXeldnUGRudWlaYmJWWEQrbkduN2daQlBURXJqY042NlhP?=
 =?utf-8?B?Z3lUamVqOFFxNXVLOEFKVWp0U2g5NEhidWxqanF2YThZQU9ZMlNsbFN1MUMr?=
 =?utf-8?B?QmQ3TC9aRCtCWnMrZ2tuaHA5ZGwvT0lGMjZTWGZoZEdoU2R2amZ5NndWT0ZX?=
 =?utf-8?B?WUxPTjVwWU1saXFzMEVBTkZBU1U4eVp5RmhNc0xobTBlZ05TUnAwQVRlVm9V?=
 =?utf-8?B?MHU2bXNkNHoyUCszdzFUWHdRd2pvNVB0UFZ0OWEyYnZVLzhMNTFxMVQxNWVk?=
 =?utf-8?B?OWtMZ1VnS001RHlMdS85MXh5TS9qMjh6dzYzQlA0dmxMWjdQRFhYV1NvZHFS?=
 =?utf-8?B?VUFxU0czTlEySm9jQThnVDlMUTAza3pBUVBUNjVRVE9BM290S2FIUFpnYmxu?=
 =?utf-8?B?RVdjeTF6aFlNeWZKaTFyZHB4T1pYbUgzL1E2UjZrdUhEc0I3U0lWblNjOFZ4?=
 =?utf-8?B?SzRWY1JXN2Y5Yll5RWhVQzVMNDYxRXA4RHVuRFRVb28vUTNRSnMzYnQ1QmtS?=
 =?utf-8?B?bko4SjJwbUJuQit1MlU1cG81aHVvbFE0dmVweVR3SWdKNnllaHhYUzg4OHNS?=
 =?utf-8?B?aENjRWZxQk1uRVNsWm1veksyampkQVltaXBEWENvYTFoTWRQL1lBTTYwVlhm?=
 =?utf-8?B?YThXbUJRK2dmSlRRdzRWWlRkais0V21sb0szZEc1ZW9uQTJFU3RTdHlGZ1V2?=
 =?utf-8?B?bkw3bktNdnQ0TlNNWkRFSE9UL0diN1BhM3RMa0MySzkxc3J5ZGNiOW9ZZHla?=
 =?utf-8?B?aW0yS1IxeXV1cjkyUmppK2dsc3l5VmlVMC92ZW8wN3ZUcVljb08yOE9WSE5n?=
 =?utf-8?B?elJXUWNUbFpUQXRpeTc2Snd4c1hrTVBJaUpKQTllVEV6ZWg5T3VrN1hpamU0?=
 =?utf-8?B?TThuT0IzNWJsUkk0dVBVaUZXTVM3MDR2NGl1OFRucWhPdThmZGhpRjhLNFhw?=
 =?utf-8?B?Y05wNTN5a2MvVnNHcWV1a2xBVkFkd01jUSt4WGI0VmtXZktFeHQwNGZWQm1j?=
 =?utf-8?B?N3g5UU4xSXlMODh3ZEk1VU0vY0xSOHNCVTh4M1NqczFwYmo0Ym55eG5LY1dk?=
 =?utf-8?B?RnFpODBuYTllS1RhUzg2TjZ5cTUzaTh5ZllJSUVoeDY0UTFyN0greEIwYk1v?=
 =?utf-8?B?RGh2T1FHSlgxM2M3WHJhY2VrUDQ0bmVncFJuUmdsZFlKb0E1VnpKTGFSQXJv?=
 =?utf-8?B?RzVmZll4ZVU1OEJTRGY5a0xFWWUyaS9XQVpERXlhUVlxTFF3UE93dHZWaDN0?=
 =?utf-8?B?bmdOTkRzdVJwTHB0TDNwN3BFbXgveHozd0YvUE5CWGYwUFFXM2FOaGVtakRE?=
 =?utf-8?B?am9FaHBjcVk1MHl4SXk4NTVITHEwMnRyNVgvR05CbkE0VjhJTG5kMkdOU3Nm?=
 =?utf-8?B?WHN2Rkl1T0lqaUo0UjdvRzVGVmlOb3dRZzlXc3BRSUpyUENMWXMzTHFoZWcx?=
 =?utf-8?B?Z0NkVWhuQlJ0T2szMFcrclVIVU1RTEkzZXVNTVVuUlR1bzJRZ0pCTzhWWURO?=
 =?utf-8?B?UnJGMlNCMVZNMmdlNmEwUzQxenRNcmZsVjV6anVBUnl5UDQzWHNMVEtwVzh1?=
 =?utf-8?B?VGRUU3lNNmNyblVKN3kyQXIwRVhlbHc0YzlLVlRmaWNTYm1Bb0VZNTYzMTFv?=
 =?utf-8?B?TlFWR0ZMeDlmTy9waGRuZUFrZGQyRUtxRkRvLzMxbmxCdUsxeVp2TFNNWllC?=
 =?utf-8?B?STljTDhhaHpJZzh5aldkc3g5OGoyQmVXazBsK1NIdDA0TTdnTnFDOEdhakhu?=
 =?utf-8?B?MEVmVXF1bUtvUUdTb1ErQVhzUmJLenNOdWp1YVMyNVVKbmIxRVdpZ255Qzcr?=
 =?utf-8?B?NzlQM2RlRmFiY2J5QlZkcnhlbUxiY2QzRGNoSnZTd1F5enZ4aGo4OG52WGto?=
 =?utf-8?B?VGJSaU5OTkl6RnZadjd0VnU2SnhaZE9xZlh6cU85VHZ4U1B4T2xFeHpuTUxt?=
 =?utf-8?B?bVVLNVNHZnZoUlhKUVkwaTdnQnl0ZUN3VUIydFB1bkErbVlFbHlJR3c3YlNK?=
 =?utf-8?B?WUdpcStDYUQ1OWZIeGZlS0E5ancxSlh3dVdFK2NXRzhpVlVEemJMclEvMVEx?=
 =?utf-8?B?TCtsdnljZGRmWWZrTEZEdXltT1ZXczhHV1U4NTZuWkhKOWttbXdINmxVdVRD?=
 =?utf-8?B?WnNSNHZ5MU1KSnNmdjRYVmw4Z2Z3UnpGVmF5UnI5Rzl3bUMzTFhuam52Kys3?=
 =?utf-8?B?d3pjQnNsWmtUYldZWFNyTmppK01TeTNMcTAyeFM3NklJM3hWVnlZZC9TSEoy?=
 =?utf-8?B?TjdoV2hybCs2Tm83VVpKSEk2NzA1WE5haERJVjNXTW9RV3ROM2FFRzNROFUr?=
 =?utf-8?Q?Pknf9v3KaHpYGJes=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ae9600c3-fb7a-4b38-b2f6-08deaa8bf066
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 09:51:54.5552
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: arBCga74yqnmRg6tR+zk0nlUcXOVCyOYVCLM3NHxoDaq5oGW0Net/SRKfGBjXBxCBRcbrLFU6vTeK6M2mNQjoliy5ffUHD6vHyJRL4P2z6E=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5226
X-purgate-ID: tlsNG-42698a/1777974718-07374F3B-FB5F275F/0/0
X-purgate-type: clean
X-purgate-size: 2819

On 05/05/2026 10:00 am, Jan Beulich wrote:
> On 05.05.2026 10:43, Andrew Cooper wrote:
>> Gitlab CI reported a crash on boot on Alder Lake hardware.  The bug is years
>> old, making it an incredibly rare occurance:
>>
>>   (XEN) *** DOUBLE FAULT ***
>>   (XEN) ----[ Xen-4.22-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
>>   (XEN) CPU:    0
>>   (XEN) RIP:    e008:[<ffff82d04077bbc4>] arch/x86/setup.c#reinit_bsp_stack+0xfa/0x160
>>   (XEN) RFLAGS: 0000000000010202   CONTEXT: hypervisor
>>   (XEN) rax: 0000000000000007   rbx: ffff83049a4b0000   rcx: 00000000000006a2
>>   (XEN) rdx: 0000000000000000   rsi: 0000000000000000   rdi: 0000000000000000
>>   (XEN) rbp: ffff83049a4b7f00   rsp: ffff83049a4b7ef8   r8:  ffff830497e47000
>>   (XEN) r9:  00000000ffffffff   r10: 00000000900c2121   r11: 000000009a392956
>>   (XEN) r12: ffff830497e47000   r13: ffff830497e49f40   r14: 0000000000000000
>>   (XEN) r15: ffff82d0407dad10   cr0: 0000000080050033   cr4: 0000000000f526e0
>>   (XEN) cr3: 0000000043c16000   cr2: fffffffffffffffc
>>   (XEN) fsb: 0000000000000000   gsb: 0000000000000000   gss: 0000000000000000
>>   (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: e008
>>   (XEN) Xen code around <ffff82d04077bbc4> (arch/x86/setup.c#reinit_bsp_stack+0xfa/0x160):
>>   (XEN)  00 b9 a2 06 00 00 0f 30 <80> 3d 71 26 f1 ff 00 74 3e 48 8d 93 f8 5f 00 00
>>   (XEN) Valid stack range: ffff83049a4b6000-ffff83049a4b8000, sp=ffff83049a4b7ef8, tss.rsp0=ffff83049a4b7fb0
>>   (XEN) No stack overflow detected. Skipping stack trace.
>>   (XEN)
>>   (XEN) ****************************************
>>   (XEN) Panic on CPU 0:
>>   (XEN) DOUBLE FAULT -- system shutdown
>>   (XEN) ****************************************
>>
>> This is on the instruction boundary after enabling CET (writing MSR_S_CET) and
>> prior to establishing SSP.  Despite identifying this as a critical window
>> where any fault was deadly (the CPU tries to push a shadow stack frame at 0,
>> hence the CR2 value wrapping around to the top of the address space), I
>> clearly forgot that this meant interrupts too, which are enabled.
>>
>> Disable interrupts during the critical period.
>>
>> Fixes: b60ab42db2f0 ("x86/shstk: Activate Supervisor Shadow Stacks")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <jbeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Teddy Astie <teddy.astie@vates.tech>
>>
>> v2:
>>  * Only disable regular interrupts.  NMIs are fine.
> Much neater a fix as a result:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks, and yes; I'm rather embarrassed at how long it took to realise
it was exactly the same as the SYSCALL gap, and therefore the same
safety reasoning applied.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue May 05 10:02:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:02:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300428.1574954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCbS-00023H-EK; Tue, 05 May 2026 10:02:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300428.1574954; Tue, 05 May 2026 10:02:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCbS-00023A-BT; Tue, 05 May 2026 10:02:10 +0000
Received: by outflank-mailman (input) for mailman id 1300428;
 Tue, 05 May 2026 10:02:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19df7967376000f373@swg.vates.tech>)
 id 1wKCbQ-000234-ID
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:02:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKCbP-004Vqs-Gt
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:02:07 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19df7967376000f373@swg.vates.tech>)
 id 69f9c01e-e002-0a2a0a5209dd-0a2a4505ddd8-8
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:02:07 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19df7967376000f373@swg.vates.tech>)
 id 69f9c01f-aaa8-0a2a45050019-b9ff1c2298bf-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:02:07 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19df7967376000f373.003 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 05 May 2026 10:02:05 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id C7A1E80FC6;
 Tue,  5 May 2026 12:02:04 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=9EKhUjDGkc0lKvm0VFMt5U/6Pn0SUg0vhtKq20wqv04=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=hPfzH9OymzsTBOF1Hj3uMDjBB94XY1zlMfyOAOcSi4EdGiC/JB4fZyV5nC3VhBAevN27d3NEZ
 YSWYBOlyzoilNWUdG0uY2/UIZR9KZyMcMKpTaJh6+Qkxf1pTOtZR0AgRXqz1uUpzoWxajeOIF3H
 zHmVK/zZf2G92/zz79MaUJbkL4EvWfhLyN6RC5B4nJfgy9Yxwwgc10kkzw/kkj1UoEDLcK9UnaF
 dLWCcMB1ajC7lYpZl6Z5sdWwFrgFnYzxtDr3FQZ8O9q78l8mZ47IA59LIVGWvgLdSH48gFtN9FG
 t/zWGHiHXsb6bT9VbQ7l2LVojwNFyGM9DGakYC2wM3Dg==
X-Zone-Loop: 3c645d950c25f51d5696d2956fab20b3754c1770632e
x-campaign-type: default
x-transaction-id: 8b8a0012-926f-4cbd-b0ac-ac8375a083a5
x-swg-uid: 01-b6927106-73c9-4261-9f1e-b8906e19fc75
X-Mailer: Sweego
Message-ID:
 <1777975325.8631fc262581453bbf619ec5b2062170.19df7967376000f373@vates.tech>
x-swg-bid: 1777975325.8631fc262581453bbf619ec5b2062170.19df7967376000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Tue, 5 May 2026 12:02:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/boot: Disable interrupts when establishing SSP
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20260505084315.1350002-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
Autocrypt: addr=teddy.astie@vates.tech; keydata=
 xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7LTBVHV/XO
 Zw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJT4ny+OGntnJntUoR
 KRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJAWicutjkkUgd28Bh6HV9EIumH
 tCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaT
 VqMdqul07o72m3eA2mf+LMu9a04FX/d4wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/
 EoucejoZ5SH49ksmVAmKOLktOaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+S
 PhHar7TPKjFz0G3DPNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89
 MXfQXZ3qt1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
 LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWjmoACGwME
 CwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNzuyOVCskwfUZPla6Z
 pd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp0x0HfuhcYfAYPR46XHTvjaJE
 v99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuROxdK8G+YHccJY8PvWSq2K2yiae2KGiAv
 1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhP
 eP3IdpfWc8cyRLXF06Rk46YMYCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcT
 UwgnYlFRk2FLq0QeKEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9
 Egr/Wmu3MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
 f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEMAKiQiZa3
 yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ3DbVf+en3/FvdVZg
 2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTmetSG5/52AjtmPFtlXAk0NmLv
 fJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0s3109sJeXT5ImVdphFs9cvyZyBT9t1Pb
 Rowv58EgV0zE4hbAeVkULAbxFV5b/ExTjjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKb
 Yu6NCfiHfEyB3Xyg9hfdrRgjMRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ov
 XoK4jm+Py0FiUGUaA6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/
 eVtR2Q1wZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
 IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWjmoACGwwA
 CgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiVoUiHYN5QwhnbZnsa
 JDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764QxyX6rld2f2RcWkDuBHun55ZWXj
 by8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk/dS0XTOQi2wVUb17sW/+ybCEokdVacZG
 zOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fuoGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+
 lOWSvdNHgoEkWR0RXBPQjnGmLKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/Off
 O485NOTKwGOxyWb006cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR
 8ULR9nX0LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
 x9fhaZEsniw8/bYgC3igkk5YJiOa
In-Reply-To: <20260505084315.1350002-1-andrew.cooper3@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------d5LENjm7gWSBOfIrz7H8vIUy"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1777975324915
X-purgate-ID: tlsNG-c201ff/1777975327-E81A9443-EE0A9D78/0/0
X-purgate-type: clean
X-purgate-size: 9913

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------d5LENjm7gWSBOfIrz7H8vIUy
Content-Type: multipart/mixed; boundary="------------RPqqEVBnck7zQ25taWQJJjep";
 protected-headers="v1"
From: Teddy Astie <teddy.astie@vates.tech>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Message-ID: <bd84f288-7a95-411f-8f02-36eefeed11ed@vates.tech>
Subject: Re: [PATCH v2] x86/boot: Disable interrupts when establishing SSP
References: <20260505084315.1350002-1-andrew.cooper3@citrix.com>
In-Reply-To: <20260505084315.1350002-1-andrew.cooper3@citrix.com>

--------------RPqqEVBnck7zQ25taWQJJjep
Content-Type: multipart/mixed; boundary="------------GSm3FYIZ18c0K6XG6dIKNTig"

--------------GSm3FYIZ18c0K6XG6dIKNTig
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

TGUgMDUvMDUvMjAyNiDDoCAxMDo0NiwgQW5kcmV3IENvb3BlciBhIMOpY3JpdMKgOg0KPiBH
aXRsYWIgQ0kgcmVwb3J0ZWQgYSBjcmFzaCBvbiBib290IG9uIEFsZGVyIExha2UgaGFyZHdh
cmUuICBUaGUgYnVnIGlzIHllYXJzDQo+IG9sZCwgbWFraW5nIGl0IGFuIGluY3JlZGlibHkg
cmFyZSBvY2N1cmFuY2U6DQo+IA0KPiAgICAoWEVOKSAqKiogRE9VQkxFIEZBVUxUICoqKg0K
PiAgICAoWEVOKSAtLS0tWyBYZW4tNC4yMi11bnN0YWJsZSAgeDg2XzY0ICBkZWJ1Zz15IHVi
c2FuPXkgIE5vdCB0YWludGVkIF0tLS0tDQo+ICAgIChYRU4pIENQVTogICAgMA0KPiAgICAo
WEVOKSBSSVA6ICAgIGUwMDg6WzxmZmZmODJkMDQwNzdiYmM0Pl0gYXJjaC94ODYvc2V0dXAu
YyNyZWluaXRfYnNwX3N0YWNrKzB4ZmEvMHgxNjANCj4gICAgKFhFTikgUkZMQUdTOiAwMDAw
MDAwMDAwMDEwMjAyICAgQ09OVEVYVDogaHlwZXJ2aXNvcg0KPiAgICAoWEVOKSByYXg6IDAw
MDAwMDAwMDAwMDAwMDcgICByYng6IGZmZmY4MzA0OWE0YjAwMDAgICByY3g6IDAwMDAwMDAw
MDAwMDA2YTINCj4gICAgKFhFTikgcmR4OiAwMDAwMDAwMDAwMDAwMDAwICAgcnNpOiAwMDAw
MDAwMDAwMDAwMDAwICAgcmRpOiAwMDAwMDAwMDAwMDAwMDAwDQo+ICAgIChYRU4pIHJicDog
ZmZmZjgzMDQ5YTRiN2YwMCAgIHJzcDogZmZmZjgzMDQ5YTRiN2VmOCAgIHI4OiAgZmZmZjgz
MDQ5N2U0NzAwMA0KPiAgICAoWEVOKSByOTogIDAwMDAwMDAwZmZmZmZmZmYgICByMTA6IDAw
MDAwMDAwOTAwYzIxMjEgICByMTE6IDAwMDAwMDAwOWEzOTI5NTYNCj4gICAgKFhFTikgcjEy
OiBmZmZmODMwNDk3ZTQ3MDAwICAgcjEzOiBmZmZmODMwNDk3ZTQ5ZjQwICAgcjE0OiAwMDAw
MDAwMDAwMDAwMDAwDQo+ICAgIChYRU4pIHIxNTogZmZmZjgyZDA0MDdkYWQxMCAgIGNyMDog
MDAwMDAwMDA4MDA1MDAzMyAgIGNyNDogMDAwMDAwMDAwMGY1MjZlMA0KPiAgICAoWEVOKSBj
cjM6IDAwMDAwMDAwNDNjMTYwMDAgICBjcjI6IGZmZmZmZmZmZmZmZmZmZmMNCj4gICAgKFhF
TikgZnNiOiAwMDAwMDAwMDAwMDAwMDAwICAgZ3NiOiAwMDAwMDAwMDAwMDAwMDAwICAgZ3Nz
OiAwMDAwMDAwMDAwMDAwMDAwDQo+ICAgIChYRU4pIGRzOiAwMDAwICAgZXM6IDAwMDAgICBm
czogMDAwMCAgIGdzOiAwMDAwICAgc3M6IDAwMDAgICBjczogZTAwOA0KPiAgICAoWEVOKSBY
ZW4gY29kZSBhcm91bmQgPGZmZmY4MmQwNDA3N2JiYzQ+IChhcmNoL3g4Ni9zZXR1cC5jI3Jl
aW5pdF9ic3Bfc3RhY2srMHhmYS8weDE2MCk6DQo+ICAgIChYRU4pICAwMCBiOSBhMiAwNiAw
MCAwMCAwZiAzMCA8ODA+IDNkIDcxIDI2IGYxIGZmIDAwIDc0IDNlIDQ4IDhkIDkzIGY4IDVm
IDAwIDAwDQo+ICAgIChYRU4pIFZhbGlkIHN0YWNrIHJhbmdlOiBmZmZmODMwNDlhNGI2MDAw
LWZmZmY4MzA0OWE0YjgwMDAsIHNwPWZmZmY4MzA0OWE0YjdlZjgsIHRzcy5yc3AwPWZmZmY4
MzA0OWE0YjdmYjANCj4gICAgKFhFTikgTm8gc3RhY2sgb3ZlcmZsb3cgZGV0ZWN0ZWQuIFNr
aXBwaW5nIHN0YWNrIHRyYWNlLg0KPiAgICAoWEVOKQ0KPiAgICAoWEVOKSAqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+ICAgIChYRU4pIFBhbmljIG9uIENQ
VSAwOg0KPiAgICAoWEVOKSBET1VCTEUgRkFVTFQgLS0gc3lzdGVtIHNodXRkb3duDQo+ICAg
IChYRU4pICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4gDQo+
IFRoaXMgaXMgb24gdGhlIGluc3RydWN0aW9uIGJvdW5kYXJ5IGFmdGVyIGVuYWJsaW5nIENF
VCAod3JpdGluZyBNU1JfU19DRVQpIGFuZA0KPiBwcmlvciB0byBlc3RhYmxpc2hpbmcgU1NQ
LiAgRGVzcGl0ZSBpZGVudGlmeWluZyB0aGlzIGFzIGEgY3JpdGljYWwgd2luZG93DQo+IHdo
ZXJlIGFueSBmYXVsdCB3YXMgZGVhZGx5ICh0aGUgQ1BVIHRyaWVzIHRvIHB1c2ggYSBzaGFk
b3cgc3RhY2sgZnJhbWUgYXQgMCwNCj4gaGVuY2UgdGhlIENSMiB2YWx1ZSB3cmFwcGluZyBh
cm91bmQgdG8gdGhlIHRvcCBvZiB0aGUgYWRkcmVzcyBzcGFjZSksIEkNCj4gY2xlYXJseSBm
b3Jnb3QgdGhhdCB0aGlzIG1lYW50IGludGVycnVwdHMgdG9vLCB3aGljaCBhcmUgZW5hYmxl
ZC4NCj4gDQo+IERpc2FibGUgaW50ZXJydXB0cyBkdXJpbmcgdGhlIGNyaXRpY2FsIHBlcmlv
ZC4NCj4gDQo+IEZpeGVzOiBiNjBhYjQyZGIyZjAgKCJ4ODYvc2hzdGs6IEFjdGl2YXRlIFN1
cGVydmlzb3IgU2hhZG93IFN0YWNrcyIpDQo+IFNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29w
ZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQo+IC0tLQ0KPiBDQzogSmFuIEJldWxp
Y2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiBDQzogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIu
cGF1QGNpdHJpeC5jb20+DQo+IENDOiBUZWRkeSBBc3RpZSA8dGVkZHkuYXN0aWVAdmF0ZXMu
dGVjaD4NCj4gDQo+IHYyOg0KPiAgICogT25seSBkaXNhYmxlIHJlZ3VsYXIgaW50ZXJydXB0
cy4gIE5NSXMgYXJlIGZpbmUuDQo+IC0tLQ0KPiAgIHhlbi9hcmNoL3g4Ni9zZXR1cC5jIHwg
OSArKysrKysrKysNCj4gICAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspDQo+IA0K
PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NldHVwLmMgYi94ZW4vYXJjaC94ODYvc2V0
dXAuYw0KPiBpbmRleCBkMDQxY2JkNWY2ZjEuLjE5ZWU4NTdhYmZiOCAxMDA2NDQNCj4gLS0t
IGEveGVuL2FyY2gveDg2L3NldHVwLmMNCj4gKysrIGIveGVuL2FyY2gveDg2L3NldHVwLmMN
Cj4gQEAgLTkwOCw2ICs5MDgsMTMgQEAgc3RhdGljIHZvaWQgX19pbml0IG5vcmV0dXJuIHJl
aW5pdF9ic3Bfc3RhY2sodm9pZCkNCj4gICANCj4gICAgICAgaWYgKCBjcHVfaGFzX3hlbl9z
aHN0ayApDQo+ICAgICAgIHsNCj4gKyAgICAgICAgLyoNCj4gKyAgICAgICAgICogSW1tZWRp
YXRlbHkgYWZ0ZXIgZW5hYmxpbmcgQ0VULCBTU1AgaXMgMCBhbmQgbW9zdCBpbnRlcnJ1cHRz
IGFuZA0KPiArICAgICAgICAgKiBleGNlcHRpb25zIGFyZSBmYXRhbC4gIExpa2UgdGhlIFNZ
U0NBTEwvU1lTRU5URVIgZ2FwcywgSVNUIHZlY3RvcnMNCj4gKyAgICAgICAgICogKGluY2x1
ZGluZyBOTUkgYW5kICNNQykgYXJlIHNhZmUgb3dpbmcgdG8gSVNUIHN3aXRjaGluZyB0aGUg
c2hzdGsuDQo+ICsgICAgICAgICAqLw0KPiArICAgICAgICBsb2NhbF9pcnFfZGlzYWJsZSgp
Ow0KPiArDQo+ICAgICAgICAgICB3cm1zcmwoTVNSX1NfQ0VULCB4ZW5fbXNyX3NfY2V0X3Zh
bHVlKCkpOw0KPiAgIA0KPiAgICAgICAgICAgLyoNCj4gQEAgLTkzMiw2ICs5MzksOCBAQCBz
dGF0aWMgdm9pZCBfX2luaXQgbm9yZXR1cm4gcmVpbml0X2JzcF9zdGFjayh2b2lkKQ0KPiAg
ICAgICAgICAgfQ0KPiAgICAgICAgICAgZWxzZQ0KPiAgICAgICAgICAgICAgIGFzbSB2b2xh
dGlsZSAoICJzZXRzc2JzeSIgOjo6ICJtZW1vcnkiICk7DQo+ICsNCj4gKyAgICAgICAgbG9j
YWxfaXJxX2VuYWJsZSgpOw0KPiAgICAgICB9DQo+ICAgDQo+ICAgICAgIHJlc2V0X3N0YWNr
X2FuZF9qdW1wKGluaXRfZG9uZSk7DQo+IA0KPiBiYXNlLWNvbW1pdDogZjRhZjU3MWRkNzBi
ZWE5N2Q4ZGU4MmQ3YWEzOWM2MmM1MzBkYjg5Nw0KDQpSZXZpZXdlZC1ieTogVGVkZHkgQXN0
aWUgPHRlZGR5LmFzdGllQHZhdGVzLnRlY2g+DQoNCihhbHNvIHRha2luZyB0aGUgb3Bwb3J0
dW5pdHkgdG8gdGVzdCBPcGVuUEdQIHNpZ25pbmcgdG8gYXZvaWQgbWFpbCANCnByb3ZpZGVy
IGlzc3VlcykNCg0KVGVkZHkNCg==
--------------GSm3FYIZ18c0K6XG6dIKNTig
Content-Type: application/pgp-keys; name="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Disposition: attachment; filename="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7L
TBVHV/XOZw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJ
T4ny+OGntnJntUoRKRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJA
WicutjkkUgd28Bh6HV9EIumHtCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO
8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaTVqMdqul07o72m3eA2mf+LMu9a04FX/d4
wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/EoucejoZ5SH49ksmVAmKOLkt
OaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+SPhHar7TPKjFz0G3D
PNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89MXfQXZ3q
t1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWj
moACGwMECwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNz
uyOVCskwfUZPla6Zpd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp
0x0HfuhcYfAYPR46XHTvjaJEv99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuR
OxdK8G+YHccJY8PvWSq2K2yiae2KGiAv1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50
wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhPeP3IdpfWc8cyRLXF06Rk46YM
YCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcTUwgnYlFRk2FLq0Qe
KEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9Egr/Wmu3
MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEM
AKiQiZa3yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ
3DbVf+en3/FvdVZg2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTm
etSG5/52AjtmPFtlXAk0NmLvfJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0
s3109sJeXT5ImVdphFs9cvyZyBT9t1PbRowv58EgV0zE4hbAeVkULAbxFV5b/ExT
jjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKbYu6NCfiHfEyB3Xyg9hfdrRgj
MRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ovXoK4jm+Py0FiUGUa
A6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/eVtR2Q1w
ZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWj
moACGwwACgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiV
oUiHYN5QwhnbZnsaJDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764Qxy
X6rld2f2RcWkDuBHun55ZWXjby8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk
/dS0XTOQi2wVUb17sW/+ybCEokdVacZGzOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fu
oGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+lOWSvdNHgoEkWR0RXBPQjnGm
LKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/OffO485NOTKwGOxyWb0
06cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR8ULR9nX0
LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
x9fhaZEsniw8/bYgC3igkk5YJiOa
=3DlUIA
-----END PGP PUBLIC KEY BLOCK-----

--------------GSm3FYIZ18c0K6XG6dIKNTig--

--------------RPqqEVBnck7zQ25taWQJJjep--

--------------d5LENjm7gWSBOfIrz7H8vIUy
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5wBwFAwAAAAAACgkQZg+p0QLLz9Da
KAwAlvGaSIAJfhRj9NcovpOyYV48T3Lyx/rDS8XqNymEovmSeCz+IiILgeOUjOSXwUyOreSF9QtD
QTB5Ue/mEHSsRm2Snr7LSAgGQtsAQmUZXxk2ZTvBTvYTaTB854ijV1GZiLc3XmWsjxSKoBw4SSL2
qrVddhx6RtlsrRL6IARsT98OLg1edpicjbY3NtosJf8WeleAytJpGwvO3mg+V4fQlI4BTpW7nFrm
6BUNGi2a97grC8T/16bOwHmINEYHN/YGvKJVY0Nndz14oaplrIw53XTI0p/ceqgMVehWgAgWD8Ni
j0tGzlLsGDzsNaAFTd/rsulmpjgHwmC0tviWuRv9VZodj2S+8yg4TrxDZAvMYq5/Y4wtOO+iK70f
RTEiVWZjwX3eUjXq5kxMdb5wGA9HNL6fX4uvEdlQ6XNrA9kBX7IlAv+5/uf8XEK2Y9jHJQWOruBf
qv6WfDWAsq4BtRehdST036LWAyk/OI6cq8BDzCgESn9cvAAC4Qmo6F0fVAAb
=3Xki
-----END PGP SIGNATURE-----

--------------d5LENjm7gWSBOfIrz7H8vIUy--


From xen-devel-bounces@lists.xenproject.org Tue May 05 10:09:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:09:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300438.1574963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCi2-0002rt-6O; Tue, 05 May 2026 10:08:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300438.1574963; Tue, 05 May 2026 10:08:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCi2-0002rm-3T; Tue, 05 May 2026 10:08:58 +0000
Received: by outflank-mailman (input) for mailman id 1300438;
 Tue, 05 May 2026 10:08:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wKCi1-0002rg-3P
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:08:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKCi0-001ct8-B4
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:08:56 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69f9c1af-bab6-0a2a0a5309dd-0a2a450bc524-46
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:08:55 +0200
Received: from [52.101.66.32]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69f9c1b7-212f-0a2a450b0019-346542209049-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:08:55 +0200
Received: from AS4P190CA0008.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:5de::14)
 by AM8PR08MB6402.eurprd08.prod.outlook.com (2603:10a6:20b:363::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 10:08:51 +0000
Received: from AMS0EPF000001A1.eurprd05.prod.outlook.com
 (2603:10a6:20b:5de:cafe::b6) by AS4P190CA0008.outlook.office365.com
 (2603:10a6:20b:5de::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.25 via Frontend Transport; Tue,
 5 May 2026 10:08:51 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001A1.mail.protection.outlook.com (10.167.16.231) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Tue, 5 May 2026 10:08:50 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DB4PR08MB9407.eurprd08.prod.outlook.com (2603:10a6:10:3f1::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 10:07:47 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9870.023; Tue, 5 May 2026
 10:07:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=AClbXW/MN3yaIiLsO8rpPsP3rDk2RACtPdfpFHbHzQcbBe7VfUYd1gowCe9XRsANIgOMz6/MjxfXBYCi2Mf/+GFwem/Ap8NWo0zWttJsyAiUS4vWj2jML8qZso+V82WkfcOrpCC0uwDnK9jOxgINhKUCSppawgPmig7xS+w0zNdGfsrkkPjB1uZ3NDluo5KmaVN4FVRWPlL+2jWi6KOfs1fAz02lG2VnVvpQxgFnqaLgCKpJYQl3YCNugY9qWkSHuw7x+Ih+dJBYygCmMQLdrENhBzbA+ToMkG1fD1DPwHd++4BNKWgweQzB7zkmpVjEa80AQkeh72cDK/E5Zja4AQ==
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=rTdTpntTu8gQNXtZOEc4phtBrG77MBT7zFAnDu8JKF8=;
 b=OdG/Ezc6IGl5Awmi97rsAp16aH5P0HK2AbnDRW2fI2mRP3NlSrgqWWqCsgeAMPbN847yzMCbvBk1sv9Puo8SfS0kg0tVt0QCs9MG4aY3U3UxD0IMlUu0m92Lw0mBZtCkTF2wKSY291Eco5guWnOwfbBpfJXHx5jcYTq8nfoAW8PHIYOq5S/aVFrEPMqmPmGdUHwcZIzHHf1s6vXNEp0nwKl8iGLBR2jFKLjNTKPctYDaqV0Xcz0L0UCQ0zqkCKuwGYS0rGlZ+9ztG38cvhN+OnIfYj3ZRtYwHqDh4mKXD3VTsASIR3orVaRFanJKPJBCrNLsyG/rbKxoCdY1BMhXsg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=suse.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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rTdTpntTu8gQNXtZOEc4phtBrG77MBT7zFAnDu8JKF8=;
 b=eRzHLN108WHWuhpk75XXZQgMaFhqXOnevtwl0xsu8WQ1KvxkI7misCvf0d40c3pzCkljtRJ+RPxJfw+UsiDWemOw8RsufygQMaZp5h56VKbpwADwJJl6qUQ8b+sHOttwVErJhVeanPPxL7v2UOREDEqf1h2Uv3VRoXccrGY1UPg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=f9OZhFCeM9EU65Ne3Pzi8fMbzczZGhA/+ZrKeDpJPRS5wWMAJ5B+qp8o1362gYJguMZSHFDYtEc//sUiqVPj9jIu5RHNPCDBx0iaBJrHMVaBJPwld8OSOQtXXU+Fk/JzhMuZ3xrdhf00txXY+TxrJ1HPF9IZ1nXhLmxI27oDz2ujbx2eJvQoL98I7qRDhLIoOQ6TnkLMkZ94dsQYoDOdaMxt75sIxUKDMpvAoVsbj7WeAOu7ljVVX8p1gXarFUUi5xYdX264+2baA+6m4cMlG7RqDZCXLKK/hbFnkPUs6pcYDxmos5NXgFVmPjJpo42AWABu6VFrWMfMTgdX9ZDYpw==
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=rTdTpntTu8gQNXtZOEc4phtBrG77MBT7zFAnDu8JKF8=;
 b=VyJqXYfi0G4KmdLhMakzZZ5l7oLbBsmTL5i96fCbdFjavhwo0+odTpwQyf8NR17KByU+DrfNE3gxXOtJ0oDaNJIz7rAM2+hWd6sVQoEYq3eECu+SrYZ/dJ8xjfAENqgtCHJxR0PtOi/2/kvuZUU6z3y7FNw9Vnv4PZS/pgE4B5FQ7V36c2m2ukHwKzFtWOyg7cqZdCffrjKmELyBm5DwcGjzyIkeICAkhu23apuykEUrYtSFrhmvNfFY9JMTEctZyOJ5HFK0Luqo4Julu1P4NP01hTCytxoN0kYqVbGf6v6ZG4qboZqgQb3tEaYqc0F2xzggPH726p8Yh4QToReKJQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rTdTpntTu8gQNXtZOEc4phtBrG77MBT7zFAnDu8JKF8=;
 b=eRzHLN108WHWuhpk75XXZQgMaFhqXOnevtwl0xsu8WQ1KvxkI7misCvf0d40c3pzCkljtRJ+RPxJfw+UsiDWemOw8RsufygQMaZp5h56VKbpwADwJJl6qUQ8b+sHOttwVErJhVeanPPxL7v2UOREDEqf1h2Uv3VRoXccrGY1UPg=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Romain
 Caritey <Romain.Caritey@microchip.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v4 01/11] xen: arm: fix len type for guest copy functions
Thread-Topic: [PATCH v4 01/11] xen: arm: fix len type for guest copy functions
Thread-Index: AQHc1xwXYYBcuLui0UypBKVcqnkF/bX10fCAgAeOAYCAAcPSgIAACp8AgAARTAA=
Date: Tue, 5 May 2026 10:07:46 +0000
Message-ID: <5B084D26-4FE9-4C1A-8C3A-298FB73F34CB@arm.com>
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <e29e6176063f8e7c612a4bfa44ac072d7a686b81.1777303844.git.oleksii.kurochko@gmail.com>
 <53BD54C0-E493-4D04-9CB1-D16B148CA3A9@arm.com>
 <edfb6bc3-ad1a-4185-9966-29bb126a6b3f@suse.com>
 <F9DB9C27-810C-41DB-95DD-D00772CE4385@arm.com>
 <32eddac5-73c7-46c4-8944-99cfe970c803@suse.com>
In-Reply-To: <32eddac5-73c7-46c4-8944-99cfe970c803@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DB4PR08MB9407:EE_|AMS0EPF000001A1:EE_|AM8PR08MB6402:EE_
X-MS-Office365-Filtering-Correlation-Id: 3d1552af-c00b-439d-0e40-08deaa8e4e60
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|7416014|376014|18002099003|22082099003|38070700021|56012099003;
X-Microsoft-Antispam-Message-Info-Original:
 df5khPqnWXyiNqlQM0EWqZo0+gRjIhsq/VeellmqDkZZSXclFqOCYNquiBBYKYTJcRWOrRBaQzVacoWzGQqmpm7ZEKFqe0HOSpsGjtbivRJqFQU9Vx/JMQyyW/SNA89dEkfoysiuSz8CXwAvTBtf7kS/iQBdCCA2rrwvrt+i3CP27PPJnbMVqiM2d9zICpT5RSacO0WIpogBSzunRTQCSJNEMC3xf1tdzfHj7gacU8TVxOMoqsikKJ6S0kStHH8KWpMnlgDJESSjkZsnNx9oWLLWP47fs1KOhrgW6ZCsj+nBoLmEoem58x4Sr4yk8EpqSEwOjyGSKBVnvEOgbPf2LmpGVBN2T+Xz9OpjJ3SNtJvdjM64apMg1mYTEHZiKLCxlFd1NogWV5+LrODfLW3fW+EPxbMJlw+d/NwfwvbA31A8ZhtxnQPVwUFTXxbSh+6tGV/9zwjztc36gJod0JSXVxPwSMWALnJ11+JSCLaw21FoKfPJk3bS9HOL/uyRKlc8kzanWZsKoIDQG7+rU6tEVw6iqrziyK2nEfY4t8ZVD31MZfYAKJv1LOvcDpxRNi04wtbacsLEYFFURLiTQzKrGaWOHkHz7h5J49bE/i+1zwsv/nGsjnXHFhz2bij4ZO5+WYIJwjkifz0S66k33tpPnqZsGRoC18lkNpBn15gMOM/ZmiVN02Cb+YPd2McPNGjoEdL43R8J9ockFPqAnXXZCwG5kAuOJC9dCnexto9Zmq7KGaJ5/WDlV34O3Y7AQZkD
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(18002099003)(22082099003)(38070700021)(56012099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <28737EC8363311479E897DE3B2501000@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 LJHvf/FNXN5REVuZOmWEI6YFhlVkj+Fc61oXsGtP4aovN92b92TfrFXCYvfCO0yJmpiXtw03egVkI7Q5aT+ZFPwUPnQiJ+UyGmhjsbEbLa34d6RybrkKtTc0Uw/OyV75AIB1O2mpeWR8kVdedxH+wSXy5ovJwlQbB6QiBQ00/kX3kVvDxgwuL4YBwtGfwbaCOc6XHaHxvyjk4OSK6kw+LIRYKjBx4hEHJmoFzWvEAk51Ech1xVOHXkdPXFyhkbXeCqJptOtKDQQIi9JtbnjUA7+tmMrb3NVTNDknK8I8LRIXgFWSqfdatbA5KZbEMyJ0KdRl3XlRQfLXMpPPxSvNig==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB9407
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001A1.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	48a3c68e-61a9-4177-f41f-08deaa8e2820
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|14060799003|36860700016|35042699022|82310400026|7416014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	k1vqNbPm0T5qKHgQ/ETx5XNEA5X2dvbZ4tLQXLNCvLeSI3neKJ/5lkFLje8BdT9QvvaZy1zDSbSNXrF8womktWoNAi71O+XzLG6cwkxPdu6P8mUY6x/d0m0kWD5zoI75BMq5opgLRo786AyAgghQpe8Z3wxD69JQjEaj3jHBYJPVkQ0Ty5J9BSHUOtimKPpVSfXpU53LPkkcHxthm3YiHawkYQ8hWupH1hg3tgtWl7lqlFN15k5IFuIefBwafYcuYhsYmGlg8c/eiD51CYVH9ji1ni64hHBS441pE3dK+1IlsVqyHw/5kp1n9IGB/RNWINuNipY9+cRLWg+UMPXhdwsm83KIX2324CuPsTo1lrws5UBsC3y5iCJmpndAAs2OxtNmORhm5lnz0GP33GB1P3hRrXfhjTk+qIDEZf9oYbvxRouMGTDCVboMBgq25kpWpjt1p7ZQNxpvVWsKDqnF7XYBdvuPLJOj9CkwbJ0lvFrl4CIO57ZMVtRnsEuQYzABrvRKh9MoxgBp18xLFF22OAXwayOTUOENaVab7gUDsQKdmtxIQHwn3SK41X17qFxBRMjlq2OkBwDUYH9yEt1A8vFeJIIOvc4aJHX9shFhNN8sV0SFKLkLHR1q2yWxGrrbz6rno9Y+WY5YPsIxq1g2RT81qNi7Td7b4X4tGF1NCJ3r2ySR7WZMQk9MyUe7SaiZ/DosCJ8g+ypWvHflJmlsI4VrHkc1nyby+2+TGYgNW5E=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(14060799003)(36860700016)(35042699022)(82310400026)(7416014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	fHPLgxZJ2mg73vjgAgpUiHAyDVT+i6obdo3ub+ysS5it98VqhNDIM/JXUdB6Fr6tFRLylPUAaCTCGHIJ9Xz7UE3q6EG7A/lyaXeZ4sdc17v0TUb8mDIkgmFdiFYSCA9qbL8X9Du/+w5huNrga0CBWbNURMsM2pgLb22bEJPyewJhgE8SKV0I5Wr78jHajJ1uGsIf+rndz++3AG+983tcHh29bTzJecaHfzxtkcT3ATCp1oHeZiCAkYkBXLLZo+pIARdfbmhrQXHMXWGeJWBylDB/xq44w559EdU9NcTAIaBcZ6JbOm4AjdhGIlUMlSn1cUOJ1mNmQ30PLoTOoO7h7WirwQMo8yQJrq7ttWwHPS/M2VKETM9SVLB/pcWK81AdgLLGgueEJy2bgjlIgv7BdCLDJhdOSjV0eQgsl+B56co2MePXx4AqQePigz6NktYl
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 10:08:50.9202
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3d1552af-c00b-439d-0e40-08deaa8e4e60
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001A1.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6402
X-purgate-ID: tlsNG-42698a/1777975735-05D6FF3B-AA4C4FE1/0/0
X-purgate-type: clean
X-purgate-size: 2346

DQoNCj4gT24gNSBNYXkgMjAyNiwgYXQgMTA6MDUsIEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4gd3JvdGU6DQo+IA0KPiBPbiAwNS4wNS4yMDI2IDEwOjI3LCBMdWNhIEZhbmNlbGx1IHdy
b3RlOg0KPj4+IE9uIDQgTWF5IDIwMjYsIGF0IDA2OjMwLCBKYW4gQmV1bGljaCA8amJldWxpY2hA
c3VzZS5jb20+IHdyb3RlOg0KPj4+IE9uIDI5LjA0LjIwMjYgMTI6MDgsIEx1Y2EgRmFuY2VsbHUg
d3JvdGU6DQo+Pj4+PiBAQCAtMTM2LDcgKzEzNiw3IEBAIHVuc2lnbmVkIGxvbmcgcmF3X2NvcHlf
ZnJvbV9ndWVzdCh2b2lkICp0bywgY29uc3Qgdm9pZCBfX3VzZXIgKmZyb20sDQo+Pj4+PiB1bnNp
Z25lZCBsb25nIGNvcHlfdG9fZ3Vlc3RfcGh5c19mbHVzaF9kY2FjaGUoc3RydWN0IGRvbWFpbiAq
ZCwNCj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFk
ZHJfdCBncGEsDQo+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZvaWQgKmJ1ZiwNCj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgaW50IGxlbikNCj4+Pj4+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsZW4pDQo+Pj4+PiB7DQo+
Pj4+IA0KPj4+PiBOb3cgdGhhdCB3ZSBkbyB0aGlzLCBwb3RlbnRpYWxseSB3ZSBjb3VsZCBoYXZl
IHRydW5jYXRpb24gaW4gdGhlIHBsYWNlcyB3aGVyZSB3ZSBzdG9yZSBpdHMgcmV0dXJuIHZhbHVl
DQo+Pj4+IGluc2lkZSBhbiBpbnQ6DQo+Pj4gDQo+Pj4gVGhvc2Ugd291bGQgc3VmZmVyIGZyb20g
dHJ1bmNhdGlvbiBiZWZvcmUgYW5kIGFmdGVyIHRoaXMgY2hhbmdlLCB3b3VsZG4ndCB0aGV5Pw0K
Pj4+IEp1c3QgdGhhdCB3aGVyZSB0aGUgdHJ1bmNhdGlvbiBvY2N1cnMgZG9lcyBtb3ZlLiBJLmUu
IGlmIG5lY2Vzc2FyeSB0aGV5IHdvdWxkDQo+Pj4gd2FudCBkZWFsaW5nIHdpdGggc2VwYXJhdGVs
eS4NCj4+IA0KPj4geWVzIHRoYXTigJlzIHRydWUsIHRydW5jYXRpb24gd2FzIGFscmVhZHkgdGhl
cmUgaW4gZGlmZmVyZW50IHBsYWNlcywgZG8geW91IHdhbnQgdG8gZGVhbCB3aXRoIGl0IHNlcGFy
YXRlbHkgc28gdGhhdA0KPj4gd2UgaGF2ZSBhIEZpeGVzIHRhZyBmb3IgaXQ/DQo+IA0KPiBJIGFs
cmVhZHkgc2FpZCBJJ2QgbGlrZSB0aGF0IHRvIGJlIGRlYWx0IHdpdGggc2VwYXJhdGVseSwgZGlk
bid0IEk/DQoNCkkgdW5kZXJzdG9vZCB0aGUg4oCcc2VwYXJhdGVseeKAnSBwYXJ0Lg0KDQpXaGF0
IEkgd2FzIGFza2luZyBpcyB3aGV0aGVyIHRoZSByZWFzb24gaXMgdGhhdCB0aGlzIHNob3VsZCBi
ZSBpdHMgb3duIGZpeCwgd2l0aCBpdHMgb3duIEZpeGVzIHRhZywgc2luY2UgdGhlIHRydW5jYXRp
b24gcHJlZGF0ZXMgdGhpcyBwYXRjaC4NCg0KSeKAmW0gYXNraW5nIHRvIHVuZGVyc3RhbmQgeW91
ciByZWFzb25pbmcgYW5kIGNhbGlicmF0ZSBteSByZXZpZXdzIGFjY29yZGluZ2x5LiBXaGVuIHRo
ZSByZWFzb25pbmcgaXMgbm90IHN0YXRlZCwgaXQgaXMgaGFyZCB0byB0ZWxsIHdoZXRoZXINCnRo
aXMgaXMgYSBnZW5lcmFsIHJldmlldyBydWxlIEkgc2hvdWxkIGFwcGx5IGluIHNpbWlsYXIgY2Fz
ZXMgb3IganVzdCBhIHByZWZlcmVuY2UgZm9yIHRoaXMgcGF0Y2guDQoNCkNoZWVycywNCkx1Y2EN
Cg0K


From xen-devel-bounces@lists.xenproject.org Tue May 05 10:09:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:09:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300444.1574972 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCin-0003Je-Ez; Tue, 05 May 2026 10:09:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300444.1574972; Tue, 05 May 2026 10:09:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCin-0003JX-Bd; Tue, 05 May 2026 10:09:45 +0000
Received: by outflank-mailman (input) for mailman id 1300444;
 Tue, 05 May 2026 10:09:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wKCim-0003JP-9v
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:09:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKCik-0035VL-0O
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:09:43 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f9c1e4-bab6-0a2a0a5309dd-0a2a450c9314-8
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:09:43 +0200
Received: from [209.85.208.173] (helo=mail-lj1-f173.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f9c1e7-62f1-0a2a450c0019-d155d0ade5bb-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:09:43 +0200
Received: by mail-lj1-f173.google.com with SMTP id
 38308e7fff4ca-3938d17d6c5so23225521fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 03:09:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1777975783; cv=none;
        d=google.com; s=arc-20240605;
        b=fRAlpKczIekO5NkUY5I8FI1+7bO2ZGy/u9cWmYbnfVQbTEagS5y2e4Fwyuj0/f9E2y
         0CD+HefMoqqdVtBIbLYBCixy3HoFHLHF9uugxc2dDdW9PzPG/BjswLNzfXztlqkZJyap
         hVhcVl3khBZ7DGS7jv+d8hsFvJv6Kg34vsyk/Ane1Kub4XYkOAimNpVexndKku1ZzHzp
         8f+rqsP5u3CKQOBLRH2jo5CWge22pH5ns+toqHN1WWr60Rha+UNKKxauhqEHQZPT0eym
         3Za996Lft9sVGdOBIZH7bLiU9XFYOgBCotsJ6bdgIRm+qxbEOhWgM55MvWS3Yu/zPSiy
         FH0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=ubUxc2UgV5FQSM7BgjCzZ28UKumn5+tYQ8/ylDMe6Hc=;
        fh=URHEk7klKxjqc5bXwxtPgt12zwbJaOVjsCphaVnE7cw=;
        b=P9O74Np/pY1MndYznybXKEaxlSXYxxmtQSHkygBtHbPV3Ch8T2rl2xkE+HfQlIAYCj
         HbwqlIEWkekD138//U1EAjirSejtUB+Thh46DKikEgBLwaH5mc2pTxDGawhjQD+nprps
         gTGL3XGEEqicP2xOGsbs+dTjgGqyWp3OBm8tfOYyuaSY5/WMuTd3jkYNgE+lRWL5tCvP
         MEf+XrdeqzJuexy7vkRG7m8n345BXaJ+HIxsBsgTxA/pVRGM+E+iyTtgLRVWV7Fj6/Q3
         wNaNEhge/iTZ729b85JVeIaHI4EuWG5cQKzoAR8hQge4tT9Iyp291v8TLM6V6S7X3+2j
         9BAw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777975783; x=1778580583; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ubUxc2UgV5FQSM7BgjCzZ28UKumn5+tYQ8/ylDMe6Hc=;
        b=n0POY9FJ9L6cUXBxb9ZDaqTEsApuNbjevTzacPZTmT/w/Wo1u6wUOjnjCiCIOoRcaB
         2cMI5g6Ajew2dnq52uVjIEoCxFTJKYbmUnAtdWTzPMWnygGGXYGdTMgedOgcA3MokVOS
         wJPCe1IAiQRRVAvbBThFumdaiQgy98qJP1WS/HY/TPgbT+LeCtkCzo4Vv7r52lVlOw/g
         rW1P/acALJRLUftZjoww8rKPDuvNqMaMgVUncvba32Ze8qDh0SZeDXd3W8hP3UvU4Pa3
         kFX/8P1lId6UejB8SfGfCMACrmoF+TAMT0fQ+6MJRpGB4B9G3nbwtp/etaJNLPMI+jeE
         xm5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777975783; x=1778580583;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ubUxc2UgV5FQSM7BgjCzZ28UKumn5+tYQ8/ylDMe6Hc=;
        b=h549v/ZAQFKo3AEgwIJorT5rIV9vQFw2FzNiPPgf8ydiO0h3JHOswbgAw/nNxgF8Fj
         n+VMPpDnQ7ptxAJHJRnYkxCWs2KqDfxjIbcnyVj6fEuZgJsxYDF2gewwuVmZOGPIqTv+
         23ACbBonW4QO0MqCrPOXnkkFLj/zKE7LQjkg8DjX+oCjZ86GGlLXPA2N+NhrIT+OlowS
         aKviuywjQYWVMRbXFsvEFP3RhwZUzqBKUbwrGrI+PbwgAjFoHkXTXCcbsklr0bWUElzL
         TZI4b06idfKMHsVt5o0wFuawvTHCU40iqV6v1HlaYbuibxHnlVmn7MYLFrA0acDkzkQX
         1Frg==
X-Gm-Message-State: AOJu0YyRbeSc75ZeCccS9QrkCE8Qt72kZjC8JD24lru0hnrBKoNi6+vm
	HR3KxcpP86eBgpTJVCMFbRHBxXaM2mZKR33Bq2A62kCtP/oROD5O0qMMsNm9OfCwPPY4KfXvDeV
	lbb0YwNq4IPoV8LEltEzpkchEW8nyHZo=
X-Gm-Gg: AeBDiet/95bIhiQUhvcmBtKsHRoWULJlzswY9eJsSt6WjqjVQZRc60mOne3K6vhnEbt
	WkWzyyy7CzAl5CxGgddfuFqTzSaaoaSW1Gk/p+cXOnAc/q3Ud8WqlA97l8wqhv6uaKghM3ncDj+
	dzMQwjUnjlfEjwDg2V2Y6Ikw9RF2op6QkGPfayERzq+RXWOn3M8uGefmKHWujwFs933/YUMZ6o+
	Mh8UjBXyV2J08jUCmQzGsp3U1Ti2TsdEYt5Wk+ZLqCHYoZZqNbnctEJ6j9pCwBhC8anEbRsrSKz
	VQFWeFH5iXUVghrN
X-Received: by 2002:a2e:a802:0:b0:393:7987:5862 with SMTP id
 38308e7fff4ca-39379875e33mr45872251fa.19.1777975782305; Tue, 05 May 2026
 03:09:42 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <5a42b7c32fadf21262b8342f27e685916d0e5812.1775125380.git.mykola_kvach@epam.com>
 <FDA8FF59-989D-42A8-9E75-1300E0B5EBD0@arm.com>
In-Reply-To: <FDA8FF59-989D-42A8-9E75-1300E0B5EBD0@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 5 May 2026 13:09:30 +0300
X-Gm-Features: AVHnY4JhWkbLY0_2SqeXFrOSTkFxupjeVNP9Dy0mDpQdrzGqbniy_ZLQ99nMdsI
Message-ID: <CAGeoDV_OkizsZj0hNXM3W84FpoeVjgSnzoRmAr3YtZj1Ri_3eA@mail.gmail.com>
Subject: Re: [PATCH v8 05/13] xen/arm: gic-v3: add ITS suspend/resume support
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d25034/1777975783-6ED73CF5-1C07ADAC/0/0
X-purgate-type: clean
X-purgate-size: 9123

Hi Luca,

Thank you for the review.

On Fri, Apr 24, 2026 at 1:54=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> > On 2 Apr 2026, at 11:45, Mykola Kvach <xakep.amatop@gmail.com> wrote:
> >
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > Handle system suspend/resume for GICv3 with an ITS present so LPIs keep
> > working after firmware powers the GIC down. Snapshot the CPU interface,
> > distributor and last-CPU redistributor state, disable the ITS to cache =
its
> > CTLR/CBASER/BASER registers, then restore everything and re-arm the
> > collection on resume.
> >
> > Add list_for_each_entry_continue_reverse() in list.h for the ITS suspen=
d
> > error path that needs to roll back partially saved state.
> >
> > Based on Linux commit dba0bc7b76dc ("irqchip/gic-v3-its: Add ability to=
 save/restore ITS state")
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Changes in V8:
> > - Reword the CBASER/CWRITER comment to match Xen and drop the stale Lin=
ux
> >  cmd_write reference.
> > - Clarify the list_for_each_entry_continue_reverse() comment.
> > - Factor out per-ITS helpers for collection setup and resume.
> > - Restore each ITS and re-establish its collection mapping in the same
> >  loop, so a failed ITS resume is not followed by MAPC/SYNC on that
> >  un-restored instance.
> > - panic in case when resume of an ITS failed
> > - cleanup baser cache during suspend
> > ---
> > xen/arch/arm/gic-v3-its.c             | 126 ++++++++++++++++++++++++--
> > xen/arch/arm/gic-v3.c                 |  15 ++-
> > xen/arch/arm/include/asm/gic_v3_its.h |  23 +++++
> > xen/include/xen/list.h                |  14 +++
> > 4 files changed, 166 insertions(+), 12 deletions(-)
> >
> > diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> > index 9ba068c46f..fe2865eac9 100644
> > --- a/xen/arch/arm/gic-v3-its.c
> > +++ b/xen/arch/arm/gic-v3-its.c
> > @@ -335,6 +335,22 @@ static int its_send_cmd_inv(struct host_its *its,
> >     return its_send_command(its, cmd);
> > }
> >
> > +static int gicv3_its_setup_collection_single(struct host_its *its,
> > +                                             unsigned int cpu)
> > +{
> > +    int ret;
> > +
> > +    ret =3D its_send_cmd_mapc(its, cpu, cpu);
> > +    if ( ret )
> > +        return ret;
> > +
> > +    ret =3D its_send_cmd_sync(its, cpu);
> > +    if ( ret )
> > +        return ret;
> > +
> > +    return gicv3_its_wait_commands(its);
> > +}
> > +
> > /* Set up the (1:1) collection mapping for the given host CPU. */
> > int gicv3_its_setup_collection(unsigned int cpu)
> > {
> > @@ -343,15 +359,7 @@ int gicv3_its_setup_collection(unsigned int cpu)
> >
> >     list_for_each_entry(its, &host_its_list, entry)
> >     {
> > -        ret =3D its_send_cmd_mapc(its, cpu, cpu);
> > -        if ( ret )
> > -            return ret;
> > -
> > -        ret =3D its_send_cmd_sync(its, cpu);
> > -        if ( ret )
> > -            return ret;
> > -
> > -        ret =3D gicv3_its_wait_commands(its);
> > +        ret =3D gicv3_its_setup_collection_single(its, cpu);
> >         if ( ret )
> >             return ret;
> >     }
> > @@ -1209,6 +1217,106 @@ int gicv3_its_init(void)
> >     return 0;
> > }
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +int gicv3_its_suspend(void)
> > +{
> > +    struct host_its *its;
> > +    int ret;
> > +
> > +    list_for_each_entry(its, &host_its_list, entry)
>
> NIT: codestyle, spaces after and before the parenthesis

Ack, I will fix the coding style.

>
> > +    {
> > +        unsigned int i;
> > +        void __iomem *base =3D its->its_base;
> > +
> > +        its->suspend_ctx.ctlr =3D readl_relaxed(base + GITS_CTLR);
> > +        ret =3D gicv3_disable_its(its);
>
> This is called from system_suspend(), along the path iommu_suspend and
> console_suspend() are called, finally reaching gic_suspend() and this one=
.
>
> In the IHI 0069H.b, 5.6.2 Disabling an ITS, it says:
> =E2=80=9CEnsure that all interrupts that target the ITS that is being pow=
ered down are
> either redirected or disabled=E2=80=9D, is it correct to assume all the I=
TS targeting source
> at this point are disabled because domains should be already suspended?

Yes, that is the assumption here.

Before Xen reaches this path, each domain must already have entered
SHUTDOWN_suspend. In other words, the guest OS has already requested
SYSTEM_SUSPEND only after completing its own suspend flow, so the
ITS-targeting interrupt sources owned by that OS are expected to be
quiesced at this point.

So this code relies on the owning OS having disabled or otherwise
quiesced those sources before issuing SYSTEM_SUSPEND, rather than Xen
explicitly doing that in gicv3_its_suspend().

>
>
> > +        if ( ret )
> > +        {
> > +            writel_relaxed(its->suspend_ctx.ctlr, base + GITS_CTLR);
>
> here and in the other places we write GITS_CTLR, this reg has Quiescent a=
s RO,
> maybe we should mask the write to only the other bits that are writable?

Yes, this was inherited from the Linux ITS suspend/resume code, which resto=
res
the saved GITS_CTLR value directly.

That said, masking the write to the writable bits is cleaner, and I will do
that in the next version.

>
> > +            goto err;
> > +        }
> > +
> > +        its->suspend_ctx.cbaser =3D readq_relaxed(base + GITS_CBASER);
> > +
> > +        for (i =3D 0; i < GITS_BASER_NR_REGS; i++)
>
> NIT: codestyle on the spaces and parenthesis
>
> > +        {
> > +            uint64_t baser =3D readq_relaxed(base + GITS_BASER0 + i * =
8);
> > +
> > +            its->suspend_ctx.baser[i] =3D 0;
> > +
> > +            if ( !(baser & GITS_VALID_BIT) )
> > +                continue;
> > +
> > +            its->suspend_ctx.baser[i] =3D baser;
> > +        }
> > +    }
> > +
> > +    return 0;
> > +
> > + err:
> > +    list_for_each_entry_continue_reverse(its, &host_its_list, entry)
> > +        writel_relaxed(its->suspend_ctx.ctlr, its->its_base + GITS_CTL=
R);
> > +
> > +    return ret;
> > +}
> > +
> > +static int gicv3_its_resume_single(struct host_its *its, unsigned int =
cpu)
> > +{
> > +    void __iomem *base =3D its->its_base;
> > +    unsigned int i;
> > +    int ret;
> > +
> > +    /*
> > +     * Make sure that the ITS is disabled. If it fails to quiesce,
> > +     * don't restore it since writing to CBASER or BASER<n>
> > +     * registers is undefined according to the GIC v3 ITS
> > +     * Specification.
> > +     */
> > +    WARN_ON(readl_relaxed(base + GITS_CTLR) & GITS_CTLR_ENABLE);
> > +    ret =3D gicv3_disable_its(its);
> > +    if ( ret )
> > +        return ret;
> > +
> > +    writeq_relaxed(its->suspend_ctx.cbaser, base + GITS_CBASER);
> > +
> > +    /*
> > +     * Writing CBASER resets CREADR to 0, so reset CWRITER to
> > +     * keep the command queue pointers aligned.
> > +     */
> > +    writeq_relaxed(0, base + GITS_CWRITER);
> > +
> > +    /* Restore GITS_BASER from the value cache. */
> > +    for ( i =3D 0; i < GITS_BASER_NR_REGS; i++ )
> > +    {
> > +        uint64_t baser =3D its->suspend_ctx.baser[i];
> > +
> > +        if ( !(baser & GITS_VALID_BIT) )
> > +            continue;
> > +
> > +        writeq_relaxed(baser, base + GITS_BASER0 + i * 8);
> > +    }
> > +
> > +    writel_relaxed(its->suspend_ctx.ctlr, base + GITS_CTLR);
> > +
> > +    return gicv3_its_setup_collection_single(its, cpu);
> > +}
> > +
> > +void gicv3_its_resume(void)
> > +{
> > +    struct host_its *its;
> > +    unsigned int cpu =3D smp_processor_id();
> > +    int ret;
> > +
> > +    list_for_each_entry(its, &host_its_list, entry)
> > +    {
> > +        ret =3D gicv3_its_resume_single(its, cpu);
> > +        if ( ret )
> > +            panic("GICv3: ITS@%"PRIpaddr": failed to restore during re=
sume: %d\n",
> > +                   its->addr, ret);
> > +    }
> > +}
> > +
> > +#endif /* CONFIG_SYSTEM_SUSPEND */
> >
> > /*
> >  * Local variables:
> > diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> > index d182a71478..ef8318dd50 100644
> > --- a/xen/arch/arm/gic-v3.c
> > +++ b/xen/arch/arm/gic-v3.c
> > @@ -862,7 +862,7 @@ static bool gicv3_enable_lpis(void)
> >     return true;
> > }
> >
> > -static int __init gicv3_populate_rdist(void)
> > +static int gicv3_populate_rdist(void)
> > {
> >     int i;
> >     uint32_t aff;
> > @@ -932,7 +932,7 @@ static int __init gicv3_populate_rdist(void)
> >                     ret =3D gicv3_lpi_init_rdist(ptr);
> >                     if ( ret && ret !=3D -ENODEV && ret !=3D -EBUSY )
> >                     {
> > -                        printk("GICv3: CPU%d: Cannot initialize LPIs: =
%u\n",
> > +                        printk("GICv3: CPU%d: Cannot initialize LPIs: =
%d\n",
>
> this is to fix the mistake of a patch before,

Yes, I will fold this into the previous patch.

Best regards,
Mykola

>
> Cheers,
> Luca
>


From xen-devel-bounces@lists.xenproject.org Tue May 05 10:14:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:14:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300455.1574981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCmm-0004x7-0T; Tue, 05 May 2026 10:13:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300455.1574981; Tue, 05 May 2026 10:13:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCml-0004x0-U0; Tue, 05 May 2026 10:13:51 +0000
Received: by outflank-mailman (input) for mailman id 1300455;
 Tue, 05 May 2026 10:13:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKCmk-0004wu-5e
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:13:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKCmh-004YFm-L0
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:13:47 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9c2d9-2eae-0a2a0a5409dd-0a2a450cbb26-12
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:13:47 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9c2db-62f1-0a2a450c0019-d155802ae9af-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:13:47 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-4891d7164ddso26283565e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 03:13:47 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45055f249bbsm3106616f8f.36.2026.05.05.03.13.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 03:13:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777976027; x=1778580827; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=A4BnYR3EAgJVTUnUNZV4aFtblgZoPDgGxh0x6Xg3Ztg=;
        b=a0PioNfcbTPkdNhFr6hctZn6nRkUJwHw8AlTwXrEiUH1z6CSthFKEoTTgelmTq71GH
         7AyqfHR2O36Z3X4gU3QAGTA6n4uJm1KuhqBj7Hmu0MT2pdW0Dj/VojwTgZLCZR+kefSZ
         XaLK2/0OcwB58RB5AouAYFDXQXS6dqD8A7wFgcD2xKTmdsFsPY82+jBX0vPOdICyJnC3
         GLcC5sMYAWQ4qpsEYu9N6DAyxwoIkakGUorfPpdHcAI7h6vMtrvggKNQFQwkMgycDZxp
         UVGL+dAo7y8LH0oNrm9oGcVARMtAKW48krxZ/j1CoB0kUXMW8gLxWwY6n4CKkH4k2yoi
         hCLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777976027; x=1778580827;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A4BnYR3EAgJVTUnUNZV4aFtblgZoPDgGxh0x6Xg3Ztg=;
        b=go8B0WGWSjbaD5qpAIKSdluy8tA8ksNBM1Np3VHWIjpQlJTf8NRQIKqu3VxKL+8mCr
         nOUT7HladYhI1gDzpKRn/QeBaSiBJm4djlrOwHV7r8HsASbgtoFC5sVv8eLnUziyAjKX
         habsNplPWqeAqvs2hR6aFTXDfzyGHs6hOLlmh5lfTnsnh8qz9mkOMX3/f4PWeK17xDp7
         3O9vsLLej5d1wN6Or6ZvEjVnULdp8/2KoI6wIwXBoyrwOvV7EZzdU/BH6DuMs/m6mBn7
         lMJdg+J7mpIlXaFkqhU5/w9TKq+vr4QYbZ4mwk2ME2TUzr8vLFehkPMiFXhp2j1CStGB
         ++WA==
X-Gm-Message-State: AOJu0YxTGTTQc/pTDZHSVKkwBVXlFDf8m9Wks4UWKYS5PEy95R1QR1hs
	XqoTOR5EjoDvLnVY3wGOYZ5xBtEeKYzOHx96oxlr7G3yTkdT/jcPzBXirYDc+OfY2Q==
X-Gm-Gg: AeBDieuwSKfbY9Nki1tCQO2dRrVO3NEzIF4pIf1afgcX0aZjyoqI1c+WqnI/d/rkbYM
	YkAhRJVrqVpOeo+s82XF49pdWiJNTlZypher7VfO0fj+r1yvOYujeuafFVQP0WUfLg2Yl4baz+u
	WSiaiKLEBsAAX1Bp8Ae3cpkZ7PAoRWUL59tzy5eKJkGS0VLCdEK83XDSrmOymX7NJZD+pV+HNab
	QCYWMBqeQ1wdC78W1XIoNi251imoOsNrmd4pvlRVVoyZ1gHRrB1imbufOrtI+C08jpEo988dPq/
	8VZkpke8iah4/DFtI7KjH6LkwjmYOHW8Mhdqna5eeCOGJNFJr0f4a9uutodqDFd6/qLp8qLyu6g
	5nn5NiJF4ZA80yIRYCtTc6XNDCg9tsAKWzT/s6o2kap1AsYiNqXOyylzrDXL3gIkvrpWkfv9ycU
	vxN8htGAfyeuC829oZp0hC9ZyFeCgnXEXhW/6oo2o6xrznM8DKl7A9ZqBrCGDknAAAZRSOtCV3V
	znb1B9Y4DfGSDZEj6iIWgfKKg==
X-Received: by 2002:a05:600c:16c9:b0:48d:35e:84a0 with SMTP id 5b1f17b1804b1-48d035e84damr109509905e9.28.1777976026971;
        Tue, 05 May 2026 03:13:46 -0700 (PDT)
Message-ID: <3953265a-2bfc-4853-bda5-3450c096ebb2@suse.com>
Date: Tue, 5 May 2026 12:13:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/11] xen: arm: fix len type for guest copy functions
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <e29e6176063f8e7c612a4bfa44ac072d7a686b81.1777303844.git.oleksii.kurochko@gmail.com>
 <53BD54C0-E493-4D04-9CB1-D16B148CA3A9@arm.com>
 <edfb6bc3-ad1a-4185-9966-29bb126a6b3f@suse.com>
 <F9DB9C27-810C-41DB-95DD-D00772CE4385@arm.com>
 <32eddac5-73c7-46c4-8944-99cfe970c803@suse.com>
 <5B084D26-4FE9-4C1A-8C3A-298FB73F34CB@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5B084D26-4FE9-4C1A-8C3A-298FB73F34CB@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1777976027-6EB74CF5-A400962C/0/0
X-purgate-type: clean
X-purgate-size: 1708

On 05.05.2026 12:07, Luca Fancellu wrote:
> 
> 
>> On 5 May 2026, at 10:05, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 05.05.2026 10:27, Luca Fancellu wrote:
>>>> On 4 May 2026, at 06:30, Jan Beulich <jbeulich@suse.com> wrote:
>>>> On 29.04.2026 12:08, Luca Fancellu wrote:
>>>>>> @@ -136,7 +136,7 @@ unsigned long raw_copy_from_guest(void *to, const void __user *from,
>>>>>> unsigned long copy_to_guest_phys_flush_dcache(struct domain *d,
>>>>>>                                             paddr_t gpa,
>>>>>>                                             void *buf,
>>>>>> -                                              unsigned int len)
>>>>>> +                                              unsigned long len)
>>>>>> {
>>>>>
>>>>> Now that we do this, potentially we could have truncation in the places where we store its return value
>>>>> inside an int:
>>>>
>>>> Those would suffer from truncation before and after this change, wouldn't they?
>>>> Just that where the truncation occurs does move. I.e. if necessary they would
>>>> want dealing with separately.
>>>
>>> yes that’s true, truncation was already there in different places, do you want to deal with it separately so that
>>> we have a Fixes tag for it?
>>
>> I already said I'd like that to be dealt with separately, didn't I?
> 
> I understood the “separately” part.
> 
> What I was asking is whether the reason is that this should be its own fix, with its own Fixes tag, since the truncation predates this patch.

The reason isn't so much the Fixes: tag, but independent issues generally
wanting independent fixes. This also helps with backporting (in general;
maybe not so much here).

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 05 10:17:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:17:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300463.1574990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCq5-0005Ur-EJ; Tue, 05 May 2026 10:17:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300463.1574990; Tue, 05 May 2026 10:17:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCq5-0005Uk-Ag; Tue, 05 May 2026 10:17:17 +0000
Received: by outflank-mailman (input) for mailman id 1300463;
 Tue, 05 May 2026 10:17:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19df7a441f3000f373@swg.vates.tech>)
 id 1wKCq3-0005Ts-Q0
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:17:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKCq3-00BzXX-5Z
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:17:15 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19df7a441f3000f373@swg.vates.tech>)
 id 69f9c3ab-5cb7-0a2a0a5109dd-0a2a4505a020-0
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:17:15 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19df7a441f3000f373@swg.vates.tech>)
 id 69f9c3aa-aaa8-0a2a45050019-b9ff1c22b10d-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:17:15 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19df7a441f3000f373.006 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 05 May 2026 10:17:10 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id AF63B866DA;
 Tue,  5 May 2026 12:17:09 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=ejqwXSH3YUQDdzwSSU7aB20J1TIUlv3p9Uh+iMSGDr4=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=VOF4LUpz8QcfZWjgIpmDEv1JR0RXJ1m7qi/K/IRJWjSCueBMNyTEU7JEYv97Dn+4S2yzBLT9/
 uK6Ta8oJWHnD+AkbRlgIIUKL1AwpP6mGyM2z4ub55J9MBpYKHXKDgUTf1Ha/cfufrY21A0eCCTe
 fTWA0ntjiIS7FVYgAZ5uvZDAAA3rcsDMfTPbOV5+GcWI5gTe3r/RsHTOlyYqWeQ4yDH9B+xrswI
 MYmRBIVrAULMuC3btH1xgu9XkFd6J2wKApQMXHtisXH51VLm5NjewjZ2tN/ASraYKMKZW5wjwZn
 Bq5AnhdeuqZC/zbNmX1luSUtqwtN3hT3GpUTavpvolfg==
X-Zone-Loop: 5d3c9fe6be2a8669ea89f7a289f314c1bafbb27f00fe
x-campaign-type: default
x-transaction-id: 0f0ab0bc-f694-439c-9d6f-08ee1f61d033
x-swg-uid: 01-6d97bc24-c86b-43df-b189-46cc9aeac1ba
X-Mailer: Sweego
Message-ID:
 <1777976230.8631fc262581453bbf619ec5b2062170.19df7a441f3000f373@vates.tech>
x-swg-bid: 1777976230.8631fc262581453bbf619ec5b2062170.19df7a441f3000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Tue, 5 May 2026 12:17:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 2/7] common: Track latest pCPU that ran the vCPU
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1776259594.git.teddy.astie@vates.tech>
 <f127344e083d224d2203b83c701375ca15e6368b.1776259594.git.teddy.astie@vates.tech>
 <a191bebd-aa7a-46e4-b3f2-a7a93c389480@suse.com>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
Autocrypt: addr=teddy.astie@vates.tech; keydata=
 xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7LTBVHV/XO
 Zw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJT4ny+OGntnJntUoR
 KRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJAWicutjkkUgd28Bh6HV9EIumH
 tCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaT
 VqMdqul07o72m3eA2mf+LMu9a04FX/d4wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/
 EoucejoZ5SH49ksmVAmKOLktOaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+S
 PhHar7TPKjFz0G3DPNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89
 MXfQXZ3qt1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
 LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWjmoACGwME
 CwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNzuyOVCskwfUZPla6Z
 pd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp0x0HfuhcYfAYPR46XHTvjaJE
 v99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuROxdK8G+YHccJY8PvWSq2K2yiae2KGiAv
 1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhP
 eP3IdpfWc8cyRLXF06Rk46YMYCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcT
 UwgnYlFRk2FLq0QeKEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9
 Egr/Wmu3MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
 f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEMAKiQiZa3
 yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ3DbVf+en3/FvdVZg
 2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTmetSG5/52AjtmPFtlXAk0NmLv
 fJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0s3109sJeXT5ImVdphFs9cvyZyBT9t1Pb
 Rowv58EgV0zE4hbAeVkULAbxFV5b/ExTjjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKb
 Yu6NCfiHfEyB3Xyg9hfdrRgjMRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ov
 XoK4jm+Py0FiUGUaA6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/
 eVtR2Q1wZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
 IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWjmoACGwwA
 CgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiVoUiHYN5QwhnbZnsa
 JDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764QxyX6rld2f2RcWkDuBHun55ZWXj
 by8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk/dS0XTOQi2wVUb17sW/+ybCEokdVacZG
 zOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fuoGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+
 lOWSvdNHgoEkWR0RXBPQjnGmLKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/Off
 O485NOTKwGOxyWb006cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR
 8ULR9nX0LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
 x9fhaZEsniw8/bYgC3igkk5YJiOa
In-Reply-To: <a191bebd-aa7a-46e4-b3f2-a7a93c389480@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------WxsKrHIy2P2sQMdeKd48j1Af"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1777976229876
X-purgate-ID: tlsNG-c201ff/1777976235-E81A9443-39341F1D/0/0
X-purgate-type: clean
X-purgate-size: 8052

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------WxsKrHIy2P2sQMdeKd48j1Af
Content-Type: multipart/mixed; boundary="------------nm7svcn9d4CJ82sy0tb5BVHD";
 protected-headers="v1"
From: Teddy Astie <teddy.astie@vates.tech>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-ID: <f372ae23-0c03-4cea-bea4-b76edb77aa31@vates.tech>
Subject: Re: [RFC PATCH 2/7] common: Track latest pCPU that ran the vCPU
References: <cover.1776259594.git.teddy.astie@vates.tech>
 <f127344e083d224d2203b83c701375ca15e6368b.1776259594.git.teddy.astie@vates.tech>
 <a191bebd-aa7a-46e4-b3f2-a7a93c389480@suse.com>
In-Reply-To: <a191bebd-aa7a-46e4-b3f2-a7a93c389480@suse.com>

--------------nm7svcn9d4CJ82sy0tb5BVHD
Content-Type: multipart/mixed; boundary="------------aAoJrQUmbXy0LM6Dvf0W0hOB"

--------------aAoJrQUmbXy0LM6Dvf0W0hOB
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

TGUgMDQvMDUvMjAyNiDDoCAxNzo1MSwgSmFuIEJldWxpY2ggYSDDqWNyaXTCoDoNCj4gT24g
MTUuMDQuMjAyNiAxNTozMiwgVGVkZHkgQXN0aWUgd3JvdGU6DQo+PiBUcmFjayBvbiB3aGlj
aCBwQ1BVIGVhY2ggdkNQVSBvZiBhIGRvbWFpbiByYW4uIFRoaXMgd2lsbA0KPj4gYmUgdXNl
ZCB0byBrbm93IHdoZXRoZXIgYSBUTEIgZmx1c2ggaXMgcmVxdWlyZWQgb3Igbm90DQo+PiB3
aGVuIHRoZSB2Q1BVIGlzIG1pZ3JhdGVkIG9uIGFub3RoZXIgcENQVS4NCj4gDQo+IFNvbWV3
aGF0IHJlbGF0ZWQgdHJhY2tpbmcgYWxyZWFkeSBleGlzdHMgLSBzZWUgdGhlIGRpcnR5X2Nw
dW1hc2sgZmllbGQuDQoNCkkndmUgc2VlbiBpdCwgYnV0IEknbSBub3Qgc3VyZSBob3cgaXQg
Y2FuIGJlIGxldmVyYWdlZCBoZXJlLg0KDQpJIHdpbGwgdHJ5IHRvIHRha2UgYSBjbG9zZXIg
bG9vayBpZiB0aGF0IGNvdWxkIGJlIHVzZWQgaW5zdGVhZC4NCg0KPiBCdXQgd2hhdCB0aXRs
ZSBhbmQgZGVzY3JpcHRpb24gc2F5IGRvZXNuJ3QgbWF0Y2ggLi4uDQo+IA0KPj4gQEAgLTk3
Nyw2ICs5NzgsOCBAQCB2b2lkIGFzbWxpbmthZ2Ugc3ZtX3ZtZW50ZXJfaGVscGVyKHZvaWQp
DQo+PiAgIA0KPj4gICAgICAgc3ZtX3N5bmNfdm1jYihjdXJyLCB2bWNiX25lZWRzX3Ztc2F2
ZSk7DQo+PiAgIA0KPj4gKyAgICBjdXJyLT5kb21haW4tPmxhdGVzdF92Y3B1W2NwdV0gPSBj
dXJyLT52Y3B1X2lkOw0KPiANCj4gLi4uIHRoZSBpbXBsZW1lbnRhdGlvbiBhbnl3YXk6IFlv
dSB0cmFjayB3aGljaCB2Q1BVIGxhc3QgcmFuIG9uIGEgZ2l2ZW4NCj4gcENQVS4gU2luY2Ug
dGhlIHNhbWUgcENQVSBtYXkgaGF2ZSBydW4gbXVsdGlwbGUgdkNQVS1zIHdoaWNoIHRoZW4g
d2VyZW4ndA0KPiBzY2hlZHVsZWQgYWdhaW4sIHlvdSBsb3NlIGRhdGEgYWZhaWN0Lg0KPiAN
Cg0KSSBtaXhlZCB1cCB0aGUgd29yZGluZy4gQnV0IHRoZSBpbXBsZW1lbnRhdGlvbiBpcyB0
aGUgcHJvcGVyIGludGVudC4NCg0KSXQncyBtb3JlDQoNCiAgIFRyYWNrIHdoaWNoIHZDUFUg
b2YgdGhlIGRvbWFpbiBlYWNoIHBDUFUgcmFuLg0KDQo+PiBAQCAtOTkyLDYgKzk5MywxMyBA
QCBzdHJ1Y3QgZG9tYWluICpkb21haW5fY3JlYXRlKGRvbWlkX3QgZG9taWQsDQo+PiAgICAg
ICBpZiAoICF6YWxsb2NfY3B1bWFza192YXIoJmQtPmRpcnR5X2NwdW1hc2spICkNCj4+ICAg
ICAgICAgICBnb3RvIGZhaWw7DQo+PiAgIA0KPj4gKyAgICBlcnIgPSAtRU5PTUVNOw0KPj4g
KyAgICBkLT5sYXRlc3RfdmNwdSA9IHhtYWxsb2NfYXJyYXkoaW50LCBucl9jcHVfaWRzKTsN
Cj4gDQo+IHh2bWFsbG9jX2FycmF5KCkgcGxlYXNlLCBhcyB0aGlzIGNhbiBiZSBodWdlLiBJ
dCBwb3NzaWJseSBiZWluZyBodWdlIGlzDQo+IGFsc28gb2YgY29uY2Vybi4NCj4gDQo+PiAt
LS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaA0KPj4gKysrIGIveGVuL2luY2x1ZGUveGVu
L3NjaGVkLmgNCj4+IEBAIC01NjcsNiArNTY3LDEwIEBAIHN0cnVjdCBkb21haW4NCj4+ICAg
ICAgIC8qIEJpdG1hc2sgb2YgQ1BVcyB3aGljaCBhcmUgaG9sZGluZyBvbnRvIHRoaXMgZG9t
YWluJ3Mgc3RhdGUuICovDQo+PiAgICAgICBjcHVtYXNrX3Zhcl90ICAgIGRpcnR5X2NwdW1h
c2s7DQo+PiAgIA0KPj4gKyAgICAvKiBNYXBwaW5nIG9mIHRoZSBsYXRlc3QgdkNQVSB0aGF0
IHJhbiBvbiBhIHNwZWNpZmljIENQVQ0KPj4gKyAgICAgKiAoLTEgaWYgdGhlIHZDUFUgaGFz
bid0IHJhbiB5ZXQpICovDQo+PiArICAgIGludCAqbGF0ZXN0X3ZjcHU7DQo+IA0KPiBXaHkg
cGxhaW4gaW50PyBZb3UgZG9uJ3QgcmVhbGx5IGxldmVyYWdlIC0xIGFzIGEgc2VudGluZWws
IGFuZCBhbnkNCj4gdW5zaWduZWQgdmFsdWUgPj0gbnJfY3B1X2lkcyB3b3VsZCBkbyBpbiBp
dHMgc3RlYWQuDQo+IA0KDQppbnQgaXMgbm90IHJlYWxseSByZXF1aXJlZCBoZXJlIGluIHBy
YWN0aWNlLiBJdCdzIG1vcmUgaGVyZSB0byBleHByZXNzIGEgDQppbnZhbGlkIHN0YXRlIGlu
c3RlYWQgb2YgbGVhdmluZyAwICh3aGljaCB3b3VsZCBiZSBmaXJzdCBwQ1BVKSBldmVuIGlm
IA0KaXQgd291bGQgbm90IGNoYW5nZSB0aGUgb3ZlcmFsbCBiZWhhdmlvci4gVXNpbmcgfjAg
Y291bGQgYWxzbyB3b3JrIA0KYWx0ZXJuYXRpdmVseS4NCg0KPiBKYW4NCj4gDQoNClRlZGR5
DQo=
--------------aAoJrQUmbXy0LM6Dvf0W0hOB
Content-Type: application/pgp-keys; name="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Disposition: attachment; filename="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7L
TBVHV/XOZw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJ
T4ny+OGntnJntUoRKRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJA
WicutjkkUgd28Bh6HV9EIumHtCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO
8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaTVqMdqul07o72m3eA2mf+LMu9a04FX/d4
wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/EoucejoZ5SH49ksmVAmKOLkt
OaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+SPhHar7TPKjFz0G3D
PNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89MXfQXZ3q
t1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWj
moACGwMECwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNz
uyOVCskwfUZPla6Zpd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp
0x0HfuhcYfAYPR46XHTvjaJEv99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuR
OxdK8G+YHccJY8PvWSq2K2yiae2KGiAv1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50
wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhPeP3IdpfWc8cyRLXF06Rk46YM
YCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcTUwgnYlFRk2FLq0Qe
KEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9Egr/Wmu3
MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEM
AKiQiZa3yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ
3DbVf+en3/FvdVZg2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTm
etSG5/52AjtmPFtlXAk0NmLvfJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0
s3109sJeXT5ImVdphFs9cvyZyBT9t1PbRowv58EgV0zE4hbAeVkULAbxFV5b/ExT
jjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKbYu6NCfiHfEyB3Xyg9hfdrRgj
MRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ovXoK4jm+Py0FiUGUa
A6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/eVtR2Q1w
ZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWj
moACGwwACgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiV
oUiHYN5QwhnbZnsaJDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764Qxy
X6rld2f2RcWkDuBHun55ZWXjby8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk
/dS0XTOQi2wVUb17sW/+ybCEokdVacZGzOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fu
oGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+lOWSvdNHgoEkWR0RXBPQjnGm
LKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/OffO485NOTKwGOxyWb0
06cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR8ULR9nX0
LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
x9fhaZEsniw8/bYgC3igkk5YJiOa
=3DlUIA
-----END PGP PUBLIC KEY BLOCK-----

--------------aAoJrQUmbXy0LM6Dvf0W0hOB--

--------------nm7svcn9d4CJ82sy0tb5BVHD--

--------------WxsKrHIy2P2sQMdeKd48j1Af
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD4BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5w6UFAwAAAAAACgkQZg+p0QLLz9B1
wwv3UfjQJgAX0OlB7EtcmUGHeKztJQPy8ah5dhGUFJkQlUIBrTO1P6bHo6PdcXyGbsNt7HNAO5tx
ZQIns0gVV0g3H5M5ICFr1nw86/DKGm+eSbeEQGG8FL2x69A7hLtm2yFtbtyEFUiYUsvzRk3OdF+m
YMVPaf4M74vJCUlRobh7BKToOsas+u4UlEJMgmKT1OvAOekmHqkHL/EBRUa6xmYYLzaIEtmiJUyr
7ydA/dkLc17nH6H6POd5X5geVJxZUgN4jrfzXWuvhEPMrJJ9Q0GnGRyfrvw+aqa1epyu5Uyz9qzK
IlGhsO07aiGHS2k35hVsefzqf2G9OMILOXUvTbxobgsUzYyzjC8Mh8q7S90lUnLqKADTez57Z4ph
+ipdpS1ZYWM5XYXbMlnWtBV11TIhheNa6+Se91X8l/qP/QdOlsdMjGZNJ7oQ3xIsguNU42DPy0BG
2QncxRU5KY99tGm66D1dsraAzHLrJHkiAjcduKJj6YWvdVXN+UhN364UYWc=
=F0pZ
-----END PGP SIGNATURE-----

--------------WxsKrHIy2P2sQMdeKd48j1Af--


From xen-devel-bounces@lists.xenproject.org Tue May 05 10:17:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:17:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300470.1575000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCqU-000686-Np; Tue, 05 May 2026 10:17:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300470.1575000; Tue, 05 May 2026 10:17:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCqU-00067z-Iu; Tue, 05 May 2026 10:17:42 +0000
Received: by outflank-mailman (input) for mailman id 1300470;
 Tue, 05 May 2026 10:17:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wKCqU-00067p-5c
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:17:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKCqT-001ef6-Hd
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:17:41 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69f9c3c4-5cb7-0a2a0a5109dd-0a2a4504ae9a-16
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:17:41 +0200
Received: from [40.107.159.27]
 (helo=OSPPR02CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69f9c3c4-1dec-0a2a45040019-286b9f1b1974-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:17:40 +0200
Received: from DUZPR01CA0156.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4bd::19) by DU0PR08MB8322.eurprd08.prod.outlook.com
 (2603:10a6:10:40d::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 10:17:31 +0000
Received: from DU6PEPF0000A7E3.eurprd02.prod.outlook.com
 (2603:10a6:10:4bd:cafe::48) by DUZPR01CA0156.outlook.office365.com
 (2603:10a6:10:4bd::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.27 via Frontend Transport; Tue,
 5 May 2026 10:17:31 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF0000A7E3.mail.protection.outlook.com (10.167.8.41) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9 via
 Frontend Transport; Tue, 5 May 2026 10:17:30 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AS4PR08MB8071.eurprd08.prod.outlook.com (2603:10a6:20b:58a::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Tue, 5 May
 2026 10:16:27 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9870.023; Tue, 5 May 2026
 10:16:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=QSNMVL6mEltWiugyZ4OK8Bx80LAq7MZMbZ7SD/CN+qJ8xU4AFi4xMzAQGQdCgND5SWCLYPc0//9hT+gXjpr43WIVvXJ1GCWaXiVLh50xrudSsoLwxBI5DrDg1ybY14P7/2+7ALKt7j8/iliX5WWc+2ppaobPCLPeGvnjLu6a4Zp4NhQ4I4kZlRkdr6WNcK6VqmAaI/MSnAbwT8rjZWA2C62+FMB5GHTFKknbIDXiSo5HKecZ3n3JEkRJH6hKLuhh3oMFBJBcuD6786jlfYXFriXssu/CbYqkCfsrQfqsN4wa1L1JAk9jFxiajmwrLnP/qL7ZyN7oH8+8fuaEodY8LA==
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=6uFyHf5/hq6YqtL7puLplGKtjI5wCkmPtCDmUXyg/2k=;
 b=D4ZJhB/gTTkVI51m9bPWw8R9uVEDGDOn9SE2/T5ta/1+qsPouJ/UudhNmJDFg7hDNKO0EzICVwDKw+a1vn2xhXRZVeSSNgaOHBINKrZifJYPLr3jgFgjwaQCqtfRCMfSHWawg05nAmaVDkL6jseST0w/yidggwSZWEccd+WNUNKrcGl+Lqq+d+j3IREz210YGN2MZSaFDIBLJjLVH11gElAmybRB8D4PGw9BkjejsCxCrLTYmkrEj806k7vNvAF6fxqSP4HbdVuGrCOmnoZUQCTcMT9WHQAlb0s9R/jyHrzhN1LmWLca4CNAU3s9M0AJll0HbAtW+e3BsfoHQrSgQA==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6uFyHf5/hq6YqtL7puLplGKtjI5wCkmPtCDmUXyg/2k=;
 b=DKn4hEdh0QRoUU6vqVKzR7tbrA9Nqmeh1MN2c8KsUQACUzRFhs22TLMWOJzEkcenynwl5bmRMzFx0y8Ru1q0OonRcBUdX7SU0nBhHd9R84UXB4bozfnSNuzWiDSlbcX/kQgdI4rX8Omt6rqevFBONeqkTJcxYA5fTIWKLh00bcc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uu8fiDOb6eHPPdejl9tK7R0z95vHl5EGgLMijz27OItoVDxqRD1Fru1lhWr9u5QvhDGuebqplts/nVzHLV8tHmDtGtb6X8BCwIvuvde/VkoJd7A+zJlYkJufTLd9/TudIMdotRht8H5wd/q+s0UCduYsPyuOtDQI4LHq8wXugxtaVUyRQU/ypTveTqN19fHIjQwNT+IYw/LUhQ0+dUw/pIjHNfdz+kowVI9dP352t4UMQmEzNrJlZGlQzTmnsHPz9RTzPc1XTLQPqZ2ZPnXMqXwkYk7C+UhKoDDa+8i8AfU9eA66pCiKtNdaGIdr2DrNqiITcj/BImFU7s+x0pqlLw==
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=6uFyHf5/hq6YqtL7puLplGKtjI5wCkmPtCDmUXyg/2k=;
 b=awpwRE9iMU/9ZKIoqdrdN7hAp1zUdBbsVeuFyxheMNaAqrggRvkrJf9iW+euAFF2/iFwBkK5gNqgsUY05Q31QTPGHnfoZyDcEm37+4Me9RMdbJFstMgLfJLbzUhXFWvJNofKaHo7IxUxf48HSJgoOfFbDc3C9l+3H1GG/SDG6MQTZbw93SzJZSE8Fs1Ot675UNZhC6qhjPnjLeiPPt1+ajh8RZVGhQJ/+2VBdcIaLz0Rlita0W7WEPFPuF5s4vsGxLObk2xydu53f0CDC9At1kbyHzAGh8drrxl9ZVeLUMZ0WCZIT61ydqnFU8dRM/fa/cAdctIZAcSN/z6jajshsA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6uFyHf5/hq6YqtL7puLplGKtjI5wCkmPtCDmUXyg/2k=;
 b=DKn4hEdh0QRoUU6vqVKzR7tbrA9Nqmeh1MN2c8KsUQACUzRFhs22TLMWOJzEkcenynwl5bmRMzFx0y8Ru1q0OonRcBUdX7SU0nBhHd9R84UXB4bozfnSNuzWiDSlbcX/kQgdI4rX8Omt6rqevFBONeqkTJcxYA5fTIWKLh00bcc=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Romain
 Caritey <Romain.Caritey@microchip.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Jan Beulich
	<jbeulich@suse.com>
Subject: Re: [PATCH v4 01/11] xen: arm: fix len type for guest copy functions
Thread-Topic: [PATCH v4 01/11] xen: arm: fix len type for guest copy functions
Thread-Index:
 AQHc1xwXYYBcuLui0UypBKVcqnkF/bX10fCAgAeOAYCAAcPSgIAACp8AgAARTACAAAHQgIAAAJwA
Date: Tue, 5 May 2026 10:16:27 +0000
Message-ID: <433FDA7B-FF8B-44A5-94CD-6244BE0102C4@arm.com>
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <e29e6176063f8e7c612a4bfa44ac072d7a686b81.1777303844.git.oleksii.kurochko@gmail.com>
 <53BD54C0-E493-4D04-9CB1-D16B148CA3A9@arm.com>
 <edfb6bc3-ad1a-4185-9966-29bb126a6b3f@suse.com>
 <F9DB9C27-810C-41DB-95DD-D00772CE4385@arm.com>
 <32eddac5-73c7-46c4-8944-99cfe970c803@suse.com>
 <5B084D26-4FE9-4C1A-8C3A-298FB73F34CB@arm.com>
 <3953265a-2bfc-4853-bda5-3450c096ebb2@suse.com>
In-Reply-To: <3953265a-2bfc-4853-bda5-3450c096ebb2@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AS4PR08MB8071:EE_|DU6PEPF0000A7E3:EE_|DU0PR08MB8322:EE_
X-MS-Office365-Filtering-Correlation-Id: 7176aaf4-4694-43a8-62ee-08deaa8f8440
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|7416014|376014|1800799024|38070700021|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info-Original:
 i0n3S8lRAy/3RadB8eyD1HJRVQjwnsFppkOuD8dXtUaxFGEpbVbqQq6BPE95RsWZQFzWtYHvUhYN+vNguOCoezllmd2NTAwbLtmLr9nZ1H6VwNIjUjMRZgVdq/XdoYoSuf7nmqWIOiABLbjW6vtYO93a4CeuVjL2b6y8lKc5Di1XnUNEOierKkR8BsPv4+evSerP2gA29grr+O82upjYQXh7Ch4SOwBp0faAb++EgskysPBSs5KWBsFg77S+vqOc++zxXBZnM6fhCIzVPvlhnBnH+Sski6zKbeMuQP0wftt6JMhJ80df9hFjBVDs8cgK3eGJc0jUDqx91cg1hOgctmdy97hzCOGoEjD9edY9e3rca5nkLlfPfssGjEnes/2f9ArK4pzQMv+tgT/LldgRKDX/1wqbL3b5G5bTBCgWhj2eVNRXWLgfEeHqUzxcH+G16kjE7ak2scB5/9D0pcGoz3v9Jf2iP2xGR1E6NQ+0fHg5256G7mk2NVTWI2UbK2Bft5rga9s1e5UoSTZ4VdsII7a3bXJJlV6GrOH7r3qbN5klcGwC1NR2JYnQyRNDYCbeQp+z7jWQ0Sb606YaBCZQbOZ3xf78dDCXu41dUCPn6Y2aw5itf71DHFprbG77yeWUeL+9k+2dyJTpRLwMBjN8RFFN5Q+qsjO4jbg2w2WMsH84yAa13y/DGE67AYjrDIqzkIVXRrNX+TCebsBwQH9SFv2aZ0Gu5ola+lfdejeCQOFYFlY2TdwI84+nSZBcCIdw
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <7304610B24F69845B301EA95579F95D4@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 awwYyadso9LZK+paW3XDO2rBwcrkbKLTC55rAyq9vkkwnNVh291+LViE1hVgY8fNP4NNowVjw8nBal38b67KxMtJUC6fIHWV2cLfbejIyRQeltNFdwM5OSG/kC4Mw5d8Q+yTnSmfSp1n7/TwejBIhWXY0l+wT+ZX0Fz9POLXY9F7kLGdZCzQSR+TQHYgHKG1Nx7PzupQLmKuXH9yob+J2gsmaQMLfy/EFaa4jP8YPTBiakRMjAEZqkB86n3hwy5CAWo2GqXKQxgMh0/0e/te8X2vt9cIUbA/KRHJ2Km917u6cT5fhLgI5RFbcGBOvDAYyVRb8MFjsC8uMGQEen3Gog==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB8071
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000A7E3.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	12a35bf7-5610-43d4-dc29-08deaa8f5e4f
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|14060799003|82310400026|35042699022|1800799024|7416014|376014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	0fdGneR3hzq10hYsOGCgTNv96mtSMezIFV0j2MoFGPFKrv5VrwnVVsrB+5NogVcDwr1PAAGl5XWpS9idpjEH0sPZuitiGyL8LtYHx9yFxWeyYPA6q58TWxdsGdUNLfV8tPB89lFISzNkEogNCYHtskIut2c0/IbgrRAbsVOndNf+6SwrwILONyGijMI1OFOb2GF91E+Au0A9UlCUUWl0xUzWQ3X1pkElNmQ+Q8ujm2r5b1il2nkDg4dqM1BZrMwr2wQ3IrTE2+fDbQ4aUWRW+obZ9ZBGu240Z5EMewUISmfCdXX2ZSdAlFVl4LJaHV/Huy3crtRMwhibCI18btRSj6fYfOqtWxxbxKoIk6b7jxkZvj/ou3C4zT3c9EHD2fbIRNN4mttAJ9C1MI70wGNNTK67e1uQBoMbxzixdVENpx2fMYnB1K2mFqnm/lqotvQZVIFrqkOmQhfqRleOcS4j7Tgz4ohBzS5oNLy81+NkSE2VdyAXCDHK9czUSPJ+or9hYEcWciehBnVnFCiqeL8wcAYjZTFD6jshvX9RCR5MmC2PzDHmHdrgMA43dvHGm/SgLNR35VLZ8HPeoJ0UQ60vMCH6jbAixGaw3FczJC9qNCzu12ssMjTTpC7P+pm2ekdCSGwneQNHEGYMICsB/nYZIfdHnVBcqT2Bdcqh7ZgH7shMJm/PydSDXYEt7Q8a8ydyEt35SXahYaZUbNWD0RWaxsyv/0pOXTvOGJ+T3V79KEA=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(14060799003)(82310400026)(35042699022)(1800799024)(7416014)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	DEo2TuZa236UUb7+pPIomGQmeFJsCV8vNIX3Y+rDiKMnjwlNqI27b2FlH0lhYKFrtWzd+LMbqvRKWLKNCMAAK+f3GZjUjiuVBxoWKswZGQxhuItoLU8r6ZGS0PVk2e+3sBKOj91kSEOka2iFP6+Nd0kshwVpxbFT2prVCboKE/5h3eWBpBOlwPOiwo3QmkRg+FF4McKp1pI9grMcBi/PihJi7Yut1I3FaG12TidrsE+SHqXI6xL9IA8Q1IKjclGDMctzAERgLruitdmOteEaAlFAcG4VXHa351OylpHdPzEMyGQVYZesSC1QG+5+wUzJNlb0SXygPLT7O0S/8ZmZcvngI20Qg0lz9htWJZQ+JMIjMyoUXJZ1SY2qPQCQG1KGtA8uOTxVO06lY2ns6s0jjVMETqKLlTgA1U+XkNIzqzwwKypYOxQYwQeUmhu6w3aP
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 10:17:30.8063
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7176aaf4-4694-43a8-62ee-08deaa8f8440
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU6PEPF0000A7E3.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8322
X-purgate-ID: tlsNG-ebf023/1777976260-2B1663FF-9010D2A6/0/0
X-purgate-type: clean
X-purgate-size: 2608

DQoNCj4gT24gNSBNYXkgMjAyNiwgYXQgMTE6MTMsIEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4gd3JvdGU6DQo+IA0KPiBPbiAwNS4wNS4yMDI2IDEyOjA3LCBMdWNhIEZhbmNlbGx1IHdy
b3RlOg0KPj4gDQo+PiANCj4+PiBPbiA1IE1heSAyMDI2LCBhdCAxMDowNSwgSmFuIEJldWxpY2gg
PGpiZXVsaWNoQHN1c2UuY29tPiB3cm90ZToNCj4+PiANCj4+PiBPbiAwNS4wNS4yMDI2IDEwOjI3
LCBMdWNhIEZhbmNlbGx1IHdyb3RlOg0KPj4+Pj4gT24gNCBNYXkgMjAyNiwgYXQgMDY6MzAsIEph
biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4gd3JvdGU6DQo+Pj4+PiBPbiAyOS4wNC4yMDI2
IDEyOjA4LCBMdWNhIEZhbmNlbGx1IHdyb3RlOg0KPj4+Pj4+PiBAQCAtMTM2LDcgKzEzNiw3IEBA
IHVuc2lnbmVkIGxvbmcgcmF3X2NvcHlfZnJvbV9ndWVzdCh2b2lkICp0bywgY29uc3Qgdm9pZCBf
X3VzZXIgKmZyb20sDQo+Pj4+Pj4+IHVuc2lnbmVkIGxvbmcgY29weV90b19ndWVzdF9waHlzX2Zs
dXNoX2RjYWNoZShzdHJ1Y3QgZG9tYWluICpkLA0KPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBncGEsDQo+Pj4+Pj4+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpidWYsDQo+Pj4+Pj4+IC0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGxl
bikNCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBsb25nIGxlbikNCj4+Pj4+Pj4gew0KPj4+Pj4+IA0KPj4+Pj4+IE5vdyB0aGF0
IHdlIGRvIHRoaXMsIHBvdGVudGlhbGx5IHdlIGNvdWxkIGhhdmUgdHJ1bmNhdGlvbiBpbiB0aGUg
cGxhY2VzIHdoZXJlIHdlIHN0b3JlIGl0cyByZXR1cm4gdmFsdWUNCj4+Pj4+PiBpbnNpZGUgYW4g
aW50Og0KPj4+Pj4gDQo+Pj4+PiBUaG9zZSB3b3VsZCBzdWZmZXIgZnJvbSB0cnVuY2F0aW9uIGJl
Zm9yZSBhbmQgYWZ0ZXIgdGhpcyBjaGFuZ2UsIHdvdWxkbid0IHRoZXk/DQo+Pj4+PiBKdXN0IHRo
YXQgd2hlcmUgdGhlIHRydW5jYXRpb24gb2NjdXJzIGRvZXMgbW92ZS4gSS5lLiBpZiBuZWNlc3Nh
cnkgdGhleSB3b3VsZA0KPj4+Pj4gd2FudCBkZWFsaW5nIHdpdGggc2VwYXJhdGVseS4NCj4+Pj4g
DQo+Pj4+IHllcyB0aGF04oCZcyB0cnVlLCB0cnVuY2F0aW9uIHdhcyBhbHJlYWR5IHRoZXJlIGlu
IGRpZmZlcmVudCBwbGFjZXMsIGRvIHlvdSB3YW50IHRvIGRlYWwgd2l0aCBpdCBzZXBhcmF0ZWx5
IHNvIHRoYXQNCj4+Pj4gd2UgaGF2ZSBhIEZpeGVzIHRhZyBmb3IgaXQ/DQo+Pj4gDQo+Pj4gSSBh
bHJlYWR5IHNhaWQgSSdkIGxpa2UgdGhhdCB0byBiZSBkZWFsdCB3aXRoIHNlcGFyYXRlbHksIGRp
ZG4ndCBJPw0KPj4gDQo+PiBJIHVuZGVyc3Rvb2QgdGhlIOKAnHNlcGFyYXRlbHnigJ0gcGFydC4N
Cj4+IA0KPj4gV2hhdCBJIHdhcyBhc2tpbmcgaXMgd2hldGhlciB0aGUgcmVhc29uIGlzIHRoYXQg
dGhpcyBzaG91bGQgYmUgaXRzIG93biBmaXgsIHdpdGggaXRzIG93biBGaXhlcyB0YWcsIHNpbmNl
IHRoZSB0cnVuY2F0aW9uIHByZWRhdGVzIHRoaXMgcGF0Y2guDQo+IA0KPiBUaGUgcmVhc29uIGlz
bid0IHNvIG11Y2ggdGhlIEZpeGVzOiB0YWcsIGJ1dCBpbmRlcGVuZGVudCBpc3N1ZXMgZ2VuZXJh
bGx5DQo+IHdhbnRpbmcgaW5kZXBlbmRlbnQgZml4ZXMuIFRoaXMgYWxzbyBoZWxwcyB3aXRoIGJh
Y2twb3J0aW5nIChpbiBnZW5lcmFsOw0KPiBtYXliZSBub3Qgc28gbXVjaCBoZXJlKS4NCg0KVGhh
bmtzLg0KDQpSZXZpZXdlZC1ieTogTHVjYSBGYW5jZWxsdSA8bHVjYS5mYW5jZWxsdUBhcm0uY29t
Pg0KDQpDaGVlcnMsDQpMdWNhDQoNCg==


From xen-devel-bounces@lists.xenproject.org Tue May 05 10:18:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:18:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300480.1575007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCre-0006jc-4T; Tue, 05 May 2026 10:18:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300480.1575007; Tue, 05 May 2026 10:18:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCre-0006jV-11; Tue, 05 May 2026 10:18:54 +0000
Received: by outflank-mailman (input) for mailman id 1300480;
 Tue, 05 May 2026 10:18:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wKCrc-0006jP-Qa
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:18:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKCrc-00Bzju-69
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:18:52 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f9c407-2eae-0a2a0a5409dd-0a2a45049894-2
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:18:52 +0200
Received: from [209.85.208.178] (helo=mail-lj1-f178.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f9c40b-1dec-0a2a45040019-d155d0b2ccbe-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:18:52 +0200
Received: by mail-lj1-f178.google.com with SMTP id
 38308e7fff4ca-39393ec4ed0so25929751fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 03:18:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1777976331; cv=none;
        d=google.com; s=arc-20240605;
        b=BfQWkc4/422jcjKOTZ12kLrhm4JOz5Z3OHk/amvD1UQ9ENI45elsF7q/cJq9pjNQTt
         U8i2aTP+D3d8KjT6uSZTWKp0HuQd2mpWnEni9fIzBOomimgIxljjbco8hkliVi8IRU7m
         mgOHFqDb17Hu4dnxD3CefqWv5yq7FI6pbW9SrSXSJHsO1fUgvTGFQ12zBmYMTLTEADiZ
         6tG42QyxEsVwpra9GUUX4kpLn57XDoQGiR7zrTeZNrVjGWSwFvd7znVLX2hRLHIDBKM4
         7+BCcoTlgHklhFthdhwmsS9AQRiIIztHqB9Xmt7HJ4jy35rr9TqWJWzBaJjHUq43qI41
         nCUQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=q1U65eNbtkKV3mllMX338BcDp2zbFoL57vU+Lzv7wek=;
        fh=WN+dxI8BWGEvyCtKTDN97slsPx57wxpKUn64COmgY4w=;
        b=Q2eOkKdXXoLgj064lx4wOadPryifRWHY4IYe2Pdl+yGK9LU3WXVtg5GbAwRbewuGmo
         wgh5zZ1GWvE6B60Fa9wPNYix4w7J/Id8N+DyOK3BCoZmMKTJnc9XViMIOGGVV4HmVN+w
         L4Yn3GpKc4tFwe4strJunnd+l1cpmzPq5xXwNdYKVnsHGyIsEYPxdYZgys+Ffo8WrY+r
         wuNcA0JNeBKUr/nV+aDfEiLC0FYxzT87Mj/HYuYJklQstkFbPVJniK1vkXlkb9k7a5bp
         195cRTS6CHHoPEnTDSMmjvOUqYFbrw9m2mI7HZvQLmGCh0gYxCia1EO8OH1ADeVA4AD8
         ET/w==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777976331; x=1778581131; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=q1U65eNbtkKV3mllMX338BcDp2zbFoL57vU+Lzv7wek=;
        b=O2VAQ0ZE0sy53svMmr0lDDX36j0uJqndoTAKbCMUy8JFrdVtzLtckIy7DSS+WhI5uy
         7nF3PsME3TOVAAY31mdiSMY0HddLMC1MZ/vgJAHpKZlw7hjrIApTA0iStynF0MkEEZHa
         ZiBfquWTSCEwzdsL1gGXvwsSXavOIOo3JTvicai0jfGW0Mg7+ddzDlQxnGTOMVNWCTk+
         vPSv2cDrPpS2sp0RXQ9YUeYpRz9nnQNPTkx+UUYj/6nFI3rNPrwqXc1i5L3CaSq6pQGU
         vFqL6d7mKm80Gu3sXn1TOBwVOqWwgExo+SXz95nX3YuzxpsqQ0AVS+GKTNe7+QlrzRLO
         rK+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777976331; x=1778581131;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=q1U65eNbtkKV3mllMX338BcDp2zbFoL57vU+Lzv7wek=;
        b=kieItZh0IfG2jXHlM6NjoJFbEydIQF+yutPXHq+svxCO0gHjohZMeS4uM6l5TiOyNk
         XBUmybrtnnDCr0TJU+8NVTY3i1kQ01/YV/NC937ETbaFSQYiBuuH50HkCl+TNT6nyWcE
         yDN6Rpm5EJ76aLfycL8sKjMzN3PzkVjmjz4GE54WP/ZNMTV7YSBIcR1Zv3q4zWy8GJY/
         FsV2/8jGukQyGMD+rYP+sthlmhYehA9VrPWFBvGwJTyvNvPmIKYszAhOFehYcn235LlG
         yZQn413MsiclCmENMpUTDoEgXbzyXW9hj/9WNQNr3UmvBXOasMg9mIVtg5delTLaOLdU
         u2eQ==
X-Gm-Message-State: AOJu0YwOI34l5K52Jfkxmhg6Uuv9OzXK0yYTtowO7cGl66ABcKXxmHRI
	x9NO2nTLr3PkUnhRBoDlPEfcjPnCOtWfUauEnzfX7+yE8d1CwmbbNrp2uX5kbFtuPTSQrK5VBdj
	MRvrPGfMPbDOjR2EBSff8N4LodS4Ha3M=
X-Gm-Gg: AeBDieviTR85LL/eHiJXejmDw5wGkqNwY6wJh0xwRPLqsZobxCNPSVMe6ODU6gHpp87
	GIGw15NVftsZz48EP+JhMW5NQHJa0+rvAU8UWlg6juJQ3/+L3Micxnm8y94uqnPhZnf0j7w/dlE
	hcMlIGl/fg55+mqvXX5d1yNfvJjWx48wtSzR///WIkUxpKrNYEDg/ybNsGZVYOBWkILLwbbjbeN
	4kQmwojtyC+1yv1dEIxp3qxNVDdejJvGCJm3cYsPVeVagZXGT8bYd625jWHwNetDhM5o78IqJTu
	iuvUyElYffY5RFR1
X-Received: by 2002:a05:6512:10d6:b0:5a4:175d:1278 with SMTP id
 2adb3069b0e04-5a87f1a0551mr1106353e87.1.1777976331114; Tue, 05 May 2026
 03:18:51 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <a977e246d1d0a32a6618efd1385ad178779c2a61.1775125380.git.mykola_kvach@epam.com>
 <8B067451-681E-45CA-843A-1F0FD34ABF3C@arm.com>
In-Reply-To: <8B067451-681E-45CA-843A-1F0FD34ABF3C@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 5 May 2026 13:18:40 +0300
X-Gm-Features: AVHnY4Lh2TgfsJXmLLfDTHnZO4AfN0LJzrVBjJSiTtfqzJH9HElEdrL1QbaUmU4
Message-ID: <CAGeoDV-Caf5CyxPxxJjVsdahsJrr4FETPy7M=xCyB7n8bKrfGg@mail.gmail.com>
Subject: Re: [PATCH v8 07/13] xen/arm: ffa: fix notification SRI across CPU hotplug/suspend
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Jens Wiklander <jens.wiklander@linaro.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ebf023/1777976332-2B96A3FF-C99E03BA/0/0
X-purgate-type: clean
X-purgate-size: 4711

Hi Bertrand,

Thank you for the review.

On Mon, Apr 27, 2026 at 11:22=E2=80=AFAM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Mykola,
>
> > On 2 Apr 2026, at 12:45, Mykola Kvach <xakep.amatop@gmail.com> wrote:
> >
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > The FF-A notification SRI interrupt handler was not correctly tied to
> > CPU hotplug and suspend/resume. As a result, CPUs going offline and
> > back online could end up with stale or missing handlers, breaking
> > delivery of FF-A notifications.
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>
> This will probably need a rebase if the harden notification and VM to VM =
notification
> serie in FF-A is merged first.

I will rebase this patch if the FF-A notification series lands first.

>
> Anyway, changes look good so:
>
> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

Thank you, I will add your Reviewed-by.

Best regards,
Mykola

>
> Cheers
> Bertrand
>
> > ---
> > xen/arch/arm/tee/ffa_notif.c | 63 ++++++++++++++++++++++++++++--------
> > 1 file changed, 50 insertions(+), 13 deletions(-)
> >
> > diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.=
c
> > index 186e726412..513c399594 100644
> > --- a/xen/arch/arm/tee/ffa_notif.c
> > +++ b/xen/arch/arm/tee/ffa_notif.c
> > @@ -360,10 +360,28 @@ static int32_t ffa_notification_bitmap_destroy(ui=
nt16_t vm_id)
> >     return ffa_simple_call(FFA_NOTIFICATION_BITMAP_DESTROY, vm_id, 0, 0=
, 0);
> > }
> >
> > -void ffa_notif_init_interrupt(void)
> > +static DEFINE_PER_CPU_READ_MOSTLY(struct irqaction, sri_irq);
> > +
> > +static int request_sri_irq(void)
> > {
> >     int ret;
> > +    struct irqaction *sri_action =3D &this_cpu(sri_irq);
> > +
> > +    sri_action->name =3D "FF-A notif";
> > +    sri_action->handler =3D notif_irq_handler;
> > +    sri_action->dev_id =3D NULL;
> > +    sri_action->free_on_release =3D 0;
> > +
> > +    ret =3D setup_irq(notif_sri_irq, 0, sri_action);
> > +    if ( ret )
> > +        printk(XENLOG_ERR "ffa: setup_irq irq %u failed: error %d\n",
> > +               notif_sri_irq, ret);
> >
> > +    return ret;
> > +}
> > +
> > +void ffa_notif_init_interrupt(void)
> > +{
> >     if ( fw_notif_enabled && notif_sri_irq < NR_GIC_SGI )
> >     {
> >         /*
> > @@ -376,14 +394,36 @@ void ffa_notif_init_interrupt(void)
> >          * pending, while the SPMC in the secure world will not notice =
that
> >          * the interrupt was lost.
> >          */
> > -        ret =3D request_irq(notif_sri_irq, 0, notif_irq_handler, "FF-A=
 notif",
> > -                          NULL);
> > -        if ( ret )
> > -            printk(XENLOG_ERR "ffa: request_irq irq %u failed: error %=
d\n",
> > -                   notif_sri_irq, ret);
> > +        request_sri_irq();
> >     }
> > }
> >
> > +static void deinit_ffa_notif_interrupt(void)
> > +{
> > +    if ( fw_notif_enabled && notif_sri_irq < NR_GIC_SGI )
> > +        release_irq(notif_sri_irq, NULL);
> > +}
> > +
> > +static int cpu_ffa_notif_callback(struct notifier_block *nfb,
> > +                                  unsigned long action,
> > +                                  void *hcpu)
> > +{
> > +    switch ( action )
> > +    {
> > +    case CPU_DYING:
> > +        deinit_ffa_notif_interrupt();
> > +        break;
> > +    default:
> > +        break;
> > +    }
> > +
> > +    return NOTIFY_DONE;
> > +}
> > +
> > +static struct notifier_block cpu_ffa_notif_nfb =3D {
> > +    .notifier_call =3D cpu_ffa_notif_callback,
> > +};
> > +
> > void ffa_notif_init(void)
> > {
> >     const struct arm_smccc_1_2_regs arg =3D {
> > @@ -392,7 +432,6 @@ void ffa_notif_init(void)
> >     };
> >     struct arm_smccc_1_2_regs resp;
> >     unsigned int irq;
> > -    int ret;
> >
> >     /* Only enable fw notification if all ABIs we need are supported */
> >     if ( ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_CREATE) &&
> > @@ -408,13 +447,11 @@ void ffa_notif_init(void)
> >         notif_sri_irq =3D irq;
> >         if ( irq >=3D NR_GIC_SGI )
> >             irq_set_type(irq, IRQ_TYPE_EDGE_RISING);
> > -        ret =3D request_irq(irq, 0, notif_irq_handler, "FF-A notif", N=
ULL);
> > -        if ( ret )
> > -        {
> > -            printk(XENLOG_ERR "ffa: request_irq irq %u failed: error %=
d\n",
> > -                   irq, ret);
> > +
> > +        if ( request_sri_irq() )
> >             return;
> > -        }
> > +
> > +        register_cpu_notifier(&cpu_ffa_notif_nfb);
> >         fw_notif_enabled =3D true;
> >     }
> > }
> > --
> > 2.43.0
> >
>


From xen-devel-bounces@lists.xenproject.org Tue May 05 10:25:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:25:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300489.1575017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCxJ-0008J4-NF; Tue, 05 May 2026 10:24:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300489.1575017; Tue, 05 May 2026 10:24:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCxJ-0008Ix-KY; Tue, 05 May 2026 10:24:45 +0000
Received: by outflank-mailman (input) for mailman id 1300489;
 Tue, 05 May 2026 10:24:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKCxI-0008Ir-Eq
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:24:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKCxH-005YTf-E6
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:24:43 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9c557-2eae-0a2a0a5409dd-0a2a450cc57e-28
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:24:43 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9c56b-62f1-0a2a450c0019-d1558031c951-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:24:43 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-488b8bc6bc9so31882635e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 03:24:43 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a824f9f0dsm373141955e9.15.2026.05.05.03.24.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 03:24:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777976683; x=1778581483; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=559/gDL5cAkgHSxRcisKiAuG+SV9lJdifh/D33J/iJ4=;
        b=V3E9wIU4ymQBn/TbADwA7QaJGQjUdyo4cAL5fAeU0qsQLItlppn2YT+bRbaKo/QP1U
         yPBKKHq2PN9kumo6G63y+b0FtnITgJhSU6jOn/BJeDOPVv9YzxD8oErQIssJuYYJrqJL
         QBcgGJrBV6IQKc6uMGc3g1VE4w8+L9SRHmJKrX+ofVexNaLPQUWvbAXXYXHIV7Vb8/6v
         8tW/NdkPoX3hawekykBifoRgHiVlPoY7GZwZ8c6aERC7gEQcs9y7VxmuNYBsjZKZaXd5
         xll//MGp2pBNNAxdkWly4lxso89uSwwsnkiHW/NOFNHNRrKxnIj9tRiUE2BQIoF8zhz7
         Wq2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777976683; x=1778581483;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=559/gDL5cAkgHSxRcisKiAuG+SV9lJdifh/D33J/iJ4=;
        b=ioTg/2rQPcr+2TkH1FESyR0a1twz5zi9Dwk1j8d7Fp3p6VVpf0BH1NCzZDmPsKRf9j
         e3ikisNB6mFzhbgsboYj1SM30bbO3goHd3TI4KUAmAmXW1rz5qfLOF8vlDrwhqRZ3vpY
         CNTzgmkzOpNVUfUPoNLfihI5sR1/6I7alSbcAG+bGGSCCHxfqMFe0QLDRf1RME6OOrhR
         7h/5vW9l98jnkMi6SRu81ylAq/R3CMpuVCFWa8oXyVjrIra8aD3GBmLJOmj5je17bzRE
         NBfCne230s/s4phVJems2QeoypqGMWjqu64x7if0SmO/wXig7QWWMEqJazjb0trPP3hm
         Fsdg==
X-Forwarded-Encrypted: i=1; AFNElJ9iwERY817A5jqKMoftDjsbuvsfDrMxEh1DeJpM2+63QJkck8QrmbmSQDXj8jmmqYWo08utY8h4YIk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzOY9yA0XLlqPqYXljgXAYlfhm5URtxzEyQKXVagrTBmz1jUHe+
	0YIwmHhS7n+sSOZ/4ywmHTecdANfJaRMB+nPfkQwcdeXocIByEy35MsI/FUYWupGow==
X-Gm-Gg: AeBDiesDSV8OJ/2f3gSdxxNf/E3NLa/+gqLRHU5m0VavIr+bNsOrmvk7L6w48PS21mD
	QL1zaa/emmHMBehVZj0Eg7z0MSJElHXeG8ug63sBHn0kb7m6RLZqhpBLH6jF1h4gIPBIFsvwipC
	spKJ9aNmM5RuFE8EA7DwEwSESftY681vOB4g5+wUCELYrl5s3HIUghR5tUvOnC1tGhPedjYsnIn
	Mulcjeo48YowBR7CIP6yjlzXeACqiJguQ3gZVnYPEzz/OL3u4KdHw5Eb7bbnTeldQ9YstMOJp8Z
	cueTBFkaS/QhR1XxeFZZjY8gvH+ucBL2XjR2bhXUH5DCy0+WYN/sUeD16D1D+p1blNTJUoSO3C/
	HcrSk4j+jgNnarjo8Wg1g19JbY6H/9YvPJ0mkm3Cyw7t40DV1uutL61zy81Xs393EmNR/ZEfNpP
	jdxPKMPrKrNsF5/Qvg7EIYbzzYcVW/qVP/qgdgitP6NmRwcybcAsQkBJO71gJzzbeeIZgUb05Nd
	sMwQgrFoFHpZf2jyds9ZgXmzw==
X-Received: by 2002:a05:600c:3b2a:b0:488:a797:f0ac with SMTP id 5b1f17b1804b1-48d18cf637amr40888785e9.28.1777976682686;
        Tue, 05 May 2026 03:24:42 -0700 (PDT)
Message-ID: <29422b34-b33f-4a25-838f-de6078151e46@suse.com>
Date: Tue, 5 May 2026 12:24:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Fix a potential problem in
 xen_e820_resolve_conflicts()
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org, x86@kernel.org
References: <20260505080653.197775-1-jgross@suse.com>
 <6b241236-ed6d-4ada-beac-8f660bd55185@suse.com>
 <59b953ce-4b51-4a47-8dba-9895dea33d41@suse.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <59b953ce-4b51-4a47-8dba-9895dea33d41@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1777976683-6E169CF5-DEEE9B63/0/0
X-purgate-type: clean
X-purgate-size: 2990

On 05.05.2026 11:13, Jürgen Groß wrote:
> On 05.05.26 10:43, Jan Beulich wrote:
>> On 05.05.2026 10:06, Juergen Gross wrote:
>>> When fixing a conflict in xen_e820_resolve_conflicts(), the loop over
>>> the E820 map entries needs to be restarted, as the E820 map will have
>>> been modified by the fix. Otherwise entries might be skipped by
>>> accident.
>>>
>>> Fixes: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory")
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>
>> First, while trying to review this, isn't there another issue in
>> xen_e820_swap_entry_with_ram(), in that
>>
>> 			entry->addr = entry_end - swap_size +
>> 				      swap_addr - swap_entry->addr;
>>
>>
>> really means to be
>>
>> 			entry->addr = entry_end - swap_size +
>> 				      swap_entry->addr - swap_addr;
>>
>> (affecting non-page-aligned E820 entries)?
> 
> Yes, you are right.
> 
>>
>> Further, that function converts swap_entry to the page-aligned superset
>> of the passed in range. How is it guaranteed that this new range won't
>> overlap with the predecessor and/or successor one? Wouldn't that need
>> to be conversion to the page-aligned subset instead?
> 
> This is subtle. :-)
> 
> We are converting to RAM (usable), so the type value is 1. e820__update_table()
> will handle overlaps just fine, with higher type values "winning" against lower
> ones. So any other region overlapping with the new RAM region will result in
> another conflict in the next loop iteration.

Oh, wow, and this is a property of the function that one can rely upon?

> Using the page-aligned subset would result in possible memory holes, which would
> be problematic (the kernel or page tables shouldn't have holes, after all).

Aren't such holes normal to occur, e.g. on misaligned RAM/UNUSABLE
boundaries?

>> And then, is passing the page-aligned superset to xen_add_remap_nonram()
>> really appropriate? Why would any leading or trailing space there be
>> subject to remapping?
> 
> How would you want to remap a sub-page physical memory area to another location
> without affecting the rest of the page? We are reworking the final p2m map here.

Well, first and foremost: xen_add_remap_nonram() takes and stores byte-
granular addresses / sizes, with the sole requirement being that the
offset-into-page be identical between both addresses. That check alone
already indicates that non-page-aligned addresses are expected to be
passed into here.

Further, xen_acpi_os_ioremap() uses the resulting remap table, and is
byte granular. With the physical address adjustment there, both mappings
could (theoretically) coexist. But the problem I'm trying to point out
is that by passing the page-aligned superset into xen_add_remap_nonram()
you misguide xen_acpi_os_ioremap() (while at the same time
xen_do_remap_nonram() will do suitable rounding to page boundaries even
if exact addresses were passed).

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 05 10:25:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:25:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300495.1575026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCyK-0000KC-Vn; Tue, 05 May 2026 10:25:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300495.1575026; Tue, 05 May 2026 10:25:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKCyK-0000K5-T1; Tue, 05 May 2026 10:25:48 +0000
Received: by outflank-mailman (input) for mailman id 1300495;
 Tue, 05 May 2026 10:25:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKCyJ-0000Jy-Qz
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:25:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKCyJ-00FzWD-6w
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:25:47 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9c5a1-5cb7-0a2a0a5109dd-0a2a4509d224-32
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:25:47 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9c5aa-2497-0a2a45090019-d1558030d446-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:25:47 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-4852a9c6309so41064555e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 03:25:47 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48d149e8a82sm15967935e9.3.2026.05.05.03.25.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 03:25:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777976746; x=1778581546; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2x6PSKZNoOPna5sB/ez/CUXRPh40PGHDpm4NzbQNLF8=;
        b=P6i/7tDMEVRMoyjiIuHS/44VyCxEyUUqssgMLm43yBgXqXL/PoTmQ/2lPydJqfNYCU
         75MdmjHjv/Ob72VFXVZk4ruefZb7HaV8YS88tKNB8tXIaF9/Cpg0u3CMpO4iRu1q78D4
         TTIaVC3/mfP1Ftn3UbhNSwHhzPG6KIP8Ff6uiEpui+VvykJ4tGwZeOIpqJVZRVZGl62q
         9JlDeuCUt6gmjyWba09XGXlkbwNdkqxpxDHpIQia23tonsSQYqBA1bErrNSAgBa85NFX
         kXVcAMZfbAgeg13gzyG2anG9yK1nFOutIxQZbGyEn6WDRD1EqrTReZ5yNgL65f/+6x0Z
         7h+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777976746; x=1778581546;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2x6PSKZNoOPna5sB/ez/CUXRPh40PGHDpm4NzbQNLF8=;
        b=b0EGS5zYpR0pPABfmcaT0O0c6gj3RAWuaIuEWi7R59XnjaNSgNRCDYqDZvXQgxDQGN
         bAosSaDGoVaNaCNjPzXPRXoU3WA9n7CMNMjStjNyVwggST+a0nLv5ibYaBdfvC07yONz
         tz0vKymOgLnci3eJYvcd3u1/C9MO4nI5Rj0E73kJen7cVH8z7t1QxKF1CKylvL629I/d
         HJIL3jYN5WNTza7RzZ/VjRYRp8mXEdUS+kCEZWIxZDP9CeK6ZSiEUKvOidaBiDPEvVBu
         XsGskYeCkLesTW8BEFDHzCl80lpJ59pJW2IWQCqqxM+4SlVAkj5qSuhbHoYLTjVW7WMd
         XPkw==
X-Forwarded-Encrypted: i=1; AFNElJ+AVSPTtVIKY489XMa+egyUgu3CKdclqGLiB+pPrGtWRgvcj4IHtNU76hugJUpNcKTVP+qthYO1Ksg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx/x2c1IcH4y0oYlLi99NxObhl9RL4aHQPLRwMkqn5JoI65Zi3w
	jdIv+wXtMIsrV/ohkHQDLJjkkpG82/X73XOlpE9S4BJSArEUo7svvrMP48hqzyc0hw==
X-Gm-Gg: AeBDietr9TpNEJD9O3VJwHDQoLMZxlYEo+c3LCEDQPmw77CD9kECwy3pCmOS4Ea22Gb
	5TN+8j8eWynnI+BPhwVGnJMZQ3ub1eHD/1i89+12a9XYEmm2bFJPWXj6A8NYumWQCEoxZbGpwLG
	V6gz5bElhPBFNpmcvU19SExBDzEka6taK0REFh/otCHEx9rH28zF7iyH8Zro1UYkKgYNTHPxhHe
	5JHqwJKde3ZXxILwakgrx6zVVn8k8RLTBijh8n/AccwzcroNqtbKG6+27C/o+FNVVrIdwSm//Id
	uFi9NctoeuXQoKNdwIP+mW738aWzav0GOvM7ZgUTuFw5Z9R6tYDL+4jPYOFlXKkLpQIu5KbffQm
	BHBG+3dp97aR1OJvYKu0HkCem72sixSHZ4Vq1EPa2E+JSOZMujTwbBS0GhYOWjaGi7mAwZ/fOng
	+nScLeSLW7AsOMpTTxFU8nqd/kciVcLrm7nswirqCYKXFPmyGgdQTQdvpmgAVWt5fXSUTCYxWLI
	b91Y+Zu/A4LX+xjeJl1ww5jjQ==
X-Received: by 2002:a05:600c:8b11:b0:487:1108:48b8 with SMTP id 5b1f17b1804b1-48d186dc81bmr36376005e9.2.1777976746633;
        Tue, 05 May 2026 03:25:46 -0700 (PDT)
Message-ID: <1647b78f-e05c-425e-b908-42d153563c3f@suse.com>
Date: Tue, 5 May 2026 12:25:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Fix xen_e820_swap_entry_with_ram()
To: Juergen Gross <jgross@suse.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org, x86@kernel.org
References: <20260505102417.208138-1-jgross@suse.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260505102417.208138-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1777976747-496B0A53-D04F70B1/0/0
X-purgate-type: clean
X-purgate-size: 502

On 05.05.2026 12:24, Juergen Gross wrote:
> When swapping a not page-aligned E820 map entry with RAM, the start
> address of the modified entry is calculated wrong (the offset into the
> page is subtracted instead of being added to the page address).
> 
> Fixes: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory")
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Tue May 05 10:30:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:30:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300506.1575034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKD2W-0002FP-Gj; Tue, 05 May 2026 10:30:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300506.1575034; Tue, 05 May 2026 10:30:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKD2W-0002FI-E3; Tue, 05 May 2026 10:30:08 +0000
Received: by outflank-mailman (input) for mailman id 1300506;
 Tue, 05 May 2026 10:30:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKD2V-0002FC-19
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:30:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKD2U-00DY4H-DL
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:30:06 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9c6ac-2eae-0a2a0a5409dd-0a2a45038164-10
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:30:06 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9c6ae-672d-0a2a45030019-d1558030e0fd-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:30:06 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-488b0e1b870so80549635e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 03:30:06 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8eb69698sm608584765e9.1.2026.05.05.03.30.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 03:30:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777977006; x=1778581806; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uuV7z0kmdkdxTSrHgtdR7USEvqeS6gyo1MoXeaoOgVs=;
        b=c/zbOHVOfsMPCdy/ePeCQj7S6jl4nTlcr69zANyIrOj7BCRbvIRTTlZ4dABmMhpFdM
         jzy5FbHG71ZcpzunP9ZNDOgv4KCfWLuP2aR7gwEz/GAHQn5aV6NTSFKYo970GmDyWpzg
         xXyAbYPXtKNt3lleYm4sJXt7Pb5q5uSD6rwjpyUlqvYN/+OjmVhrI+7BQeOR0v0wLg6t
         ZQEcnD0So2n07iailIGlzign6PuDU8HhQIC/NMsNK3z5oVZO/YtO5/1MCfCy15pA5igO
         yf7zLcN90XoENyZ+QAFt0ZWsJ2XdoLGYQiAtK/VMeejyPTqKI0Ob5NQlRaOOD69meYlL
         O8LQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777977006; x=1778581806;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uuV7z0kmdkdxTSrHgtdR7USEvqeS6gyo1MoXeaoOgVs=;
        b=swAbAugBkwRXoVpkUPiwz1ICH8pXSNrzdJQEynKckjlJy0ljWJd7U2Pvx0Xu0FWpQ2
         OqtPjgCLkYmHR0bdeLttCLfFBb8zcA/GDRIN5I1Gl6IvTnejeJ9fTeFAlSHuSyZbq/CI
         jBJhDyHTMb98eaqFov9NuGBZdL3TW63wVuFf0q8U0T/QRYdck4btKYSNRxQfDKv1Xjcp
         X01BuEjpiDneRIuWxqsVgt3652/Wro8v8PYDrUdZIVrBLEIADcFEzNOcNpLn36TdPSqw
         Xf8UlzeuPxa5RLNjPsMqnL96wI+JJSdq+3cLHqPgrChkuE9/lWelv3eEMLxzvTOFvqND
         wI3g==
X-Forwarded-Encrypted: i=1; AFNElJ/0iQUWxVMahE0Ftg8AHE9yh+9gry/ilghr0wQObQOxV1n6AsmixziUbylT/X8Nmp4IUeMrQ8uHFLc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzPLU6hWnHHErg9PiAVLePc9RFk/+Ygkv4Ywc8QdF2am/eC/ffW
	fUoWLLhVnffJpXbaVJzMrkE8dN5MmwYMjB4R78ZXFt5S5za5Cegq14XhWPsckp+D9Q==
X-Gm-Gg: AeBDieunLz5SGCg+KjdyS/PzlzQ9k9Mfb2Tvj0+Q1tCtRJfNFLRbKc5gJk1T4U/2B9D
	OXiW5rmcrSeRxpJLdvTrRjnrx8jmM9ZZ8CX6VZK6OgEXz2AjAdlVKKT4NhPsj5yIenQh347pIqA
	h8eMUOtZjRlE5axQgZsKYx3EGzRc2fwElaYcbKFuG7gKZsazXSvUW/oaOvoncTT+EnLv6pbOywd
	5iV8tWPe04xqq6zKtVIwIg4TBuo58wXRU7OxBC2k6bDkbyeYEJNC8MNquwipF7m+kShh4VbBxVB
	ocjoM4lD9nDKOnYXEIGB+dDLggVlqCvZsbjsSMsPtd2RS1Piv7Y1ZLK+f7aJHAnwzlG+qxED0dz
	49nJDqGvZfcMQo4rvhGjrXrqjtDinyap6JT9Ee0Ts9USMaGukVmm1S6NRLayFeTIUvJNZwUTHIb
	LOZ/LHTJ/LRFnfHKHycLiHbgm2SILf02sXVSLDf1MkAPA+A5XEIxzDmOelO5ubXYu+xb8R7OCMi
	WIMViyIUNP1GwgC7XEOfHl/CSBL281k5mmr
X-Received: by 2002:a05:600c:821b:b0:489:1d23:4524 with SMTP id 5b1f17b1804b1-48a9852f4demr218897575e9.5.1777977005648;
        Tue, 05 May 2026 03:30:05 -0700 (PDT)
Message-ID: <0b311682-9633-4aa0-8067-534456c7b848@suse.com>
Date: Tue, 5 May 2026 12:30:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 2/7] common: Track latest pCPU that ran the vCPU
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1776259594.git.teddy.astie@vates.tech>
 <f127344e083d224d2203b83c701375ca15e6368b.1776259594.git.teddy.astie@vates.tech>
 <a191bebd-aa7a-46e4-b3f2-a7a93c389480@suse.com>
 <1777976230.8631fc262581453bbf619ec5b2062170.19df7a441f3000f373@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1777976230.8631fc262581453bbf619ec5b2062170.19df7a441f3000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1777977006-A1370938-D556029C/0/0
X-purgate-type: clean
X-purgate-size: 1511

On 05.05.2026 12:17, Teddy Astie wrote:
> Le 04/05/2026 à 17:51, Jan Beulich a écrit :
>> On 15.04.2026 15:32, Teddy Astie wrote:
>>> Track on which pCPU each vCPU of a domain ran. This will
>>> be used to know whether a TLB flush is required or not
>>> when the vCPU is migrated on another pCPU.
>>
>> Somewhat related tracking already exists - see the dirty_cpumask field.
> 
> I've seen it, but I'm not sure how it can be leveraged here.
> 
> I will try to take a closer look if that could be used instead.
> 
>> But what title and description say doesn't match ...
>>
>>> @@ -977,6 +978,8 @@ void asmlinkage svm_vmenter_helper(void)
>>>   
>>>       svm_sync_vmcb(curr, vmcb_needs_vmsave);
>>>   
>>> +    curr->domain->latest_vcpu[cpu] = curr->vcpu_id;
>>
>> ... the implementation anyway: You track which vCPU last ran on a given
>> pCPU. Since the same pCPU may have run multiple vCPU-s which then weren't
>> scheduled again, you lose data afaict.
>>
> 
> I mixed up the wording. But the implementation is the proper intent.
> 
> It's more
> 
>    Track which vCPU of the domain each pCPU ran.

Okay, yet then (as already pointed out) how do you know vCPU0 ran last on
a given pCPU if after its de-scheduling vCPU1 (of the same domain) was
put there. Your track record (after de-scheduling vCPU1) will say only
vCPU1; information on vCPU0 will be lost. Yet then, as also indicated,
it's not quite clear to me how exactly you mean to leverage this tracking.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 05 10:35:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:35:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300517.1575044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKD7L-0002rH-5v; Tue, 05 May 2026 10:35:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300517.1575044; Tue, 05 May 2026 10:35:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKD7L-0002rA-2q; Tue, 05 May 2026 10:35:07 +0000
Received: by outflank-mailman (input) for mailman id 1300517;
 Tue, 05 May 2026 10:35:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wKD7J-0002r3-Qn
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:35:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKD7I-00DZUh-Rn
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:35:04 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f9c7d6-bab6-0a2a0a5309dd-0a2a4508d89a-8
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:35:04 +0200
Received: from [40.107.209.56]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f9c7d6-63b5-0a2a45080019-286bd1384608-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:35:03 +0200
Received: from SJ0PR05CA0096.namprd05.prod.outlook.com (2603:10b6:a03:334::11)
 by IA1PR12MB7592.namprd12.prod.outlook.com (2603:10b6:208:428::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 10:34:56 +0000
Received: from SJ1PEPF00001CE4.namprd03.prod.outlook.com
 (2603:10b6:a03:334:cafe::79) by SJ0PR05CA0096.outlook.office365.com
 (2603:10b6:a03:334::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.11 via Frontend Transport; Tue,
 5 May 2026 10:34:56 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ1PEPF00001CE4.mail.protection.outlook.com (10.167.242.20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Tue, 5 May 2026 10:34:55 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 5 May
 2026 05:34:55 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 5 May
 2026 05:34:54 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 5 May 2026 05:34:53 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bOKSnjjBvq9Pv+JGC1k3G9HibS4nM2YOndkLV+C+WCbBd51qoZj/XiBW36NZuvi6eOUuW8Bc+EOF5wvvDu8C7/lh2DXNR/Z+vkqAJHepfXyzaE4YgDau/KHjx4RRwWZvv7CJPzs2nG830ivAoChDEEXLGx7KgzPdOmUs8Q0PVNEJV4OqkGjIx70R5GUt/Irwy6FE4Z/+QQN4Bpt+Mwi69xZcpQ1skwb03QodN7VfUdLcMQVIrONcJcA36RzR/A0aZ8j23nB+Q/HaVVu3jkWEd1KSyo/ya0JmsN4+dzSo4lATFcaLUzK/xTdQGhXRjBmFyDvAczG+/3iduiNDGy075g==
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=ErPlzHvG3PE22CxQ2xtzDPmTcnyiKBjfEy4LxTteHF8=;
 b=hw4JmtZsqWvCQH3MrRje+xxCypV/x4+ULPwRQoLUQ3xT/neDUjOn0KFzS4gx6/4TDlm/YvC18ZLd6i/eVZvZAoTRSHNXo/Rqh3bVBU/eTeN182BlW8NuPijFPzGJhDweigKHn05GFdqjLa+X6d1sGsF+nIeJijDLgBUye3ktRZlbekP/752O7J2hGYa19tMPW2iBDDxjbXGxewBxOSl5kQs3QEpy3CbcI9s7QzJbYLK+ioDXTMRRTDfnEsTN5uL8bBwY6YAwh+RjltjuAyjVn8JzkpuPOXxMkxbbxPpYULD5MOtZ2uDnqajdRGRUKkP0kkIcmIazaBTZuXdgijUnQA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ErPlzHvG3PE22CxQ2xtzDPmTcnyiKBjfEy4LxTteHF8=;
 b=nobI9q9VNvwMr9GUEWp4zTGTHVtBLAGZAd9xMlgL7UbY8ANKU3t7HVkMqKWpSWhZ4gyTlN3ETi7M56/nXnNH5bQMP7qfdYDhdqjoWUVkH/JdZdMZSC/QaXtAaI8L+zuucxBzUgy2XgQXRPj1Dq8yJmKpgbOa7gEDFVPA/t/gdsQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <18280bdb-e33a-4aba-aa1d-8f42675717e8@amd.com>
Date: Tue, 5 May 2026 12:34:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
To: Luca Fancellu <Luca.Fancellu@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Harry
 Ramsey" <Harry.Ramsey@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>
References: <20260420142224.1802911-1-luca.fancellu@arm.com>
 <20260420142224.1802911-3-luca.fancellu@arm.com>
 <6ba6db51-3ff0-4ecd-9f86-03735e7dfc05@amd.com>
 <55B3CCAD-8EF6-4949-BC87-D7EE3A348FEC@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <55B3CCAD-8EF6-4949-BC87-D7EE3A348FEC@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE4:EE_|IA1PR12MB7592:EE_
X-MS-Office365-Filtering-Correlation-Id: 67c982b6-ba31-4605-e546-08deaa91f320
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|7416014|36860700016|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	y85bpCwf9n8TQgGaMPl8ozopx0JYx+lpmfPUdwca3irzPbJOkOLjbA8uQbp2hz+LOkhk3NUvqbM8KIapBRF1gi6dVM2M3ZLQDiXfxcSItzGxy5aH313EHVFI58j+wEz5g7RRsefjAMX/oF9cav6vzj/cbSGPk/s3CSvX36cC5PBHY/GlpEg1Q5AXaKtzJJ3HuaLuuoSuvk6N4MxaTPp0J1bbjDqPCul5HPsFFpAdYLCQ8JodS+IF33EXRTXEYYIWPjw4+icDfgfiydT24VHzJbn+3q9BHGEoSGQjDY+jCaxBPzpxKy1HFmKZNKY+byLD4/cgso8Gdw7uH+3gO9Oz1r2WekPVezr/lkidIy6CHImLJfaurpuEmM5e+XLSkHZ/MR/YQxudUNU4bVB81c985aU3KXTLFPUPjZh1EfpEf0ToZcPD6yYytpG35ehX8T8qTrl5O6UM45qUwacPPkfX5UxGelyptjhCzuKkAaHj0aEWP/OC9SthCgRcvsoOdTbL0XmPe38idNpXIlM+O7LI1zsoI6elEvIbBeQgmCCtReHmKtexj2AKlwIB5zZUVYBJsBQSyitYqtytncgZHB4W3RdjuzqtA2tXcbRGVCa1Ytqg22TzTcHIuRceJhAOjgrwH4UctJvgYpQdbZ9SQM9NmCCH3vAKzbWI+Hz1RMryKu2qRu0dqZeZK4siKV5KEb+QyQU5qg7TUl+Rwx3T8GC8DsmvQohSTlmPagth75xuuLc=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(7416014)(36860700016)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	dL6OQSdMGI5t11t03IS0kfN4f8dzdsQYhhbFzctQH1KZr+F8l0Qh/P7Kkyp5fJ5sycyrXKLCB54fEAZuwVuPwhiCerdiVa2Si7DQEfhzLicm2VOJ1bKqYpQIFO7Zc+knZ3R+oCjVGLPlz64Ree7+IkmQHpHT/H+5pAWW/5t+WfyDN/kYsZr35fQzenjbV28OTuo6Y9FTsSvWzym1cYQTI7A/bYRlhrlbx3enZJqlQUZ65TozcsfbEKSNfafGgPsqE8xBzefHNrzoPH1rP9lDa+Wly3svseXBVtLqqCnzxJdy7immP3cD9Bhg+ZneUR7/7PxED0yiCZvSKjgEY3GWPZFLJYDc1qWee8qoJnMJ2ZrUqRgTL8tdjkxzXtkAJdJXXZRcDLzqxw6tJ4eVHmaBjQwFBlOIAwQj7GNF6dpU+ha+/ZgWq94S2dSXSDRcRxZM
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 10:34:55.7827
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 67c982b6-ba31-4605-e546-08deaa91f320
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CE4.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7592
X-purgate-ID: tlsNG-c1860d/1777977304-C156FDB1-64F97BA0/0/0
X-purgate-type: clean
X-purgate-size: 12848



On 29-Apr-26 14:46, Luca Fancellu wrote:
> Hi Michal,
> 
> thanks for your review,
> 
>>>
>>> diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
>>> index 977b4286082f..c3f484a3b01a 100644
>>> --- a/docs/misc/arm/device-tree/booting.txt
>>> +++ b/docs/misc/arm/device-tree/booting.txt
>>> @@ -322,6 +322,20 @@ with the following properties:
>>>     Should be used together with scmi-smc-passthrough Xen command line
>>>     option.
>>>
>>> +- v8r_el1_msa
>>> +
>>> +    A string property specifying whether, on Armv8-R systems, a domain
>>> +    should use PMSAv8 (MPU) at EL1 or VMSAv8 (MMU) at EL1.
>> Instead of repeating at EL1 you could move it next to "on Armv8R systems"
> 
> ok
> 
>>
>>> +
>>> +    - "mmu"
>>> +    Enables VMSAv8 at EL1. This requires hardware support and is only
>>> +    optionally available on AArch64.
>> Maybe it's due to the combination of words but it does not immediately tell that
>> it's not present on AArch32. I would add: "Not supported on AArch32".
> 
> Ok
> 
>>
>>> +
>>> +    - "mpu"
>>> +    Enables PMSAv8 at EL1. This is the default behaviour when the property is
>>> +    not passed. This configuration requires static allocation (xen,static-mem)
>>> +    and direct mapping (direct-map).
>>> +
>>> Under the "xen,domain" compatible node, one or more sub-nodes are present
>>> for the DomU kernel and ramdisk.
>>>
>>> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
>>> index 4181c105389a..6f0256f9d825 100644
>>> --- a/xen/arch/arm/dom0less-build.c
>>> +++ b/xen/arch/arm/dom0less-build.c
>>> @@ -24,6 +24,7 @@
>>> #include <asm/domain_build.h>
>>> #include <asm/firmware/sci.h>
>>> #include <asm/grant_table.h>
>>> +#include <asm/mpu.h>
>>> #include <asm/setup.h>
>>>
>>> #ifdef CONFIG_VGICV2
>>> @@ -322,6 +323,8 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
>>>     if ( domu_dt_sci_parse(node, d_cfg) )
>>>         panic("Error getting SCI configuration\n");
>>>
>>> +    arch_dt_v8r_el1_msa_parse(node, d_cfg);
>> "arch" prefix should be used by functions called from the common code that have
>> arch-specific implementation. This is not the case for functions you're
>> introducing here, so please drop this prefix.
>>
>> Also, I would continue using the SCI approach e.g. call it domu_dt_msa_parse()
>> and decide to panic at the call site rather than making this decision in the
>> function itself.
> 
> sounds good
> 
>>
>>> +
>>>     if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
>>>     {
>>>         int vpl011_virq = GUEST_VPL011_SPI;
>>> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
>>> index 26380a807cad..dfa7ace1141b 100644
>>> --- a/xen/arch/arm/domain.c
>>> +++ b/xen/arch/arm/domain.c
>>> @@ -18,6 +18,7 @@
>>> #include <asm/cpuerrata.h>
>>> #include <asm/cpufeature.h>
>>> #include <asm/current.h>
>>> +#include <asm/domain_build.h>
>>> #include <asm/event.h>
>>> #include <asm/gic.h>
>>> #include <asm/guest_atomics.h>
>>> @@ -725,6 +726,9 @@ int arch_domain_create(struct domain *d,
>>>     if ( (rc = sci_domain_init(d, config)) != 0 )
>>>         goto fail;
>>>
>>> +    if ( (rc = arch_set_v8r_el1_msa(d, config, flags)) != 0 )
>>> +        goto fail;
>>> +
>>>     return 0;
>>>
>>> fail:
>>> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
>>> index ffe5d0d9f0a6..4a3fb825962b 100644
>>> --- a/xen/arch/arm/include/asm/domain.h
>>> +++ b/xen/arch/arm/include/asm/domain.h
>>> @@ -128,6 +128,10 @@ struct arch_domain
>>> #endif
>>>
>>>     struct resume_info resume_ctx;
>>> +
>>> +#ifdef CONFIG_MPU
>>> +    uint8_t v8r_el1_msa;
>>> +#endif
>>> }  __cacheline_aligned;
>>>
>>> struct arch_vcpu
>>> diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
>>> index 6674dac5e2f8..921d6f98f4f4 100644
>>> --- a/xen/arch/arm/include/asm/domain_build.h
>>> +++ b/xen/arch/arm/include/asm/domain_build.h
>>> @@ -4,6 +4,14 @@
>>> #include <xen/fdt-kernel.h>
>>> #include <xen/sched.h>
>>>
>>> +#if defined(CONFIG_MMU)
>>> +#include <asm/mmu/domain-build.h>
>>> +#elif defined(CONFIG_MPU)
>>> +#include <asm/mpu/domain-build.h>
>>> +#else
>>> +# error "Unknown memory management layout"
>> I don't think that this error msg is correct for domain build.
> 
> are you suggesting dropping the error or modifying the message? 
modifying the message

> 
>>>
>>> diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
>>> index 72fa5b00b861..8a8c01086206 100644
>>> --- a/xen/arch/arm/include/asm/mpu.h
>>> +++ b/xen/arch/arm/include/asm/mpu.h
>>> @@ -27,6 +27,11 @@
>>>
>>> #ifndef __ASSEMBLER__
>>>
>>> +/*
>>> + * Utility function to determine if an Armv8-R processor supports VMSA.
>>> + */
>> NIT: No need for multi-line comment for a single sentence that can fit in one line.
> 
> ok
> 
>>
>>> +bool has_v8r_vmsa_support(void);
>>> +
>>> /*
>>>  * Set base address of MPU protection region.
>>>  *
>>> diff --git a/xen/arch/arm/include/asm/mpu/domain-build.h b/xen/arch/arm/include/asm/mpu/domain-build.h
>>> new file mode 100644
>>> index 000000000000..463cd85b5b7e
>>> --- /dev/null
>>> +++ b/xen/arch/arm/include/asm/mpu/domain-build.h
>>> @@ -0,0 +1,27 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +
>>> +#ifndef __ARM_MPU_DOMAIN_BUILD_H__
>>> +#define __ARM_MPU_DOMAIN_BUILD_H__
>>> +
>>> +#include <xen/device_tree.h>
>>> +#include <xen/sched.h>
>>> +#include <xen/types.h>
>>> +#include <public/domctl.h>
>>> +
>>> +void arch_dt_v8r_el1_msa_parse(struct dt_device_node *node,
>>> +                               struct xen_domctl_createdomain *d_cfg);
>>> +
>>> +int arch_set_v8r_el1_msa(struct domain *d,
>>> +                         const struct xen_domctl_createdomain *config,
>>> +                         unsigned int flags);
>>> +
>>> +#endif /* __ARM_MPU_DOMAIN_BUILD_H__ */
>>> +
>>> +/*
>>> + * Local variables:
>>> + * mode: C
>>> + * c-file-style: "BSD"
>>> + * c-basic-offset: 4
>>> + * indent-tabs-mode: nil
>>> + * End:
>>> + */
>>> diff --git a/xen/arch/arm/mpu/Makefile b/xen/arch/arm/mpu/Makefile
>>> index 3327fadd5d0e..e3997e41b81b 100644
>>> --- a/xen/arch/arm/mpu/Makefile
>>> +++ b/xen/arch/arm/mpu/Makefile
>>> @@ -1,5 +1,6 @@
>>> obj-$(CONFIG_ARM_32) += arm32/
>>> obj-$(CONFIG_ARM_64) += arm64/
>>> +obj-y += domain-build.o
>>> obj-y += domain-page.o
>>> obj-y += mm.o
>>> obj-y += p2m.o
>>> diff --git a/xen/arch/arm/mpu/arm32/mm.c b/xen/arch/arm/mpu/arm32/mm.c
>>> index a4673c351141..5eaeb3400e6c 100644
>>> --- a/xen/arch/arm/mpu/arm32/mm.c
>>> +++ b/xen/arch/arm/mpu/arm32/mm.c
>>> @@ -38,6 +38,11 @@
>>>         break;                                            \
>>>     }
>>>
>>> +bool has_v8r_vmsa_support(void)
>>> +{
>>> +    return false;
>>> +}
>>> +
>>> /*
>>>  * Armv8-R supports direct access and indirect access to the MPU regions through
>>>  * registers:
>>> diff --git a/xen/arch/arm/mpu/arm64/mm.c b/xen/arch/arm/mpu/arm64/mm.c
>>> index ed643cad4073..b07e729a7d05 100644
>>> --- a/xen/arch/arm/mpu/arm64/mm.c
>>> +++ b/xen/arch/arm/mpu/arm64/mm.c
>>> @@ -32,6 +32,11 @@
>>>         break;                                                  \
>>>     }
>>>
>>> +bool has_v8r_vmsa_support(void)
>>> +{
>>> +    return system_cpuinfo.mm64.msa_frac == MM64_MSA_FRAC_VMSA_SUPPORT;
>>> +}
>>> +
>>> /*
>>>  * Armv8-R supports direct access and indirect access to the MPU regions through
>>>  * registers:
>>> diff --git a/xen/arch/arm/mpu/domain-build.c b/xen/arch/arm/mpu/domain-build.c
>>> new file mode 100644
>>> index 000000000000..1bdd0ffedebb
>>> --- /dev/null
>>> +++ b/xen/arch/arm/mpu/domain-build.c
>>> @@ -0,0 +1,76 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +
>>> +#include <xen/device_tree.h>
>>> +#include <xen/domain.h>
>>> +#include <xen/errno.h>
>>> +#include <xen/init.h>
>>> +#include <xen/types.h>
>>> +#include <xen/sched.h>
>>> +#include <asm/mpu.h>
>>> +#include <asm/mpu/domain-build.h>
>>> +#include <public/arch-arm.h>
>>> +#include <public/domctl.h>
>>> +
>>> +void __init arch_dt_v8r_el1_msa_parse(struct dt_device_node *node,
>>> +                                      struct xen_domctl_createdomain *d_cfg)
>>> +{
>>> +    const char *v8r_el1_msa;
>>> +
>>> +    d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE;
>>> +
>>> +    if ( !dt_property_read_string(node, "v8r_el1_msa", &v8r_el1_msa) )
>>> +    {
>>> +        if ( !strcmp(v8r_el1_msa, "mmu") )
>>> +            d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA;
>>> +        else if ( !strcmp(v8r_el1_msa, "mpu") )
>>> +            d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA;
>>> +        else
>>> +            panic("Invalid device tree option for v8r_el1_msa\n");
>>> +    }
>>> +}
>>> +
>>> +int arch_set_v8r_el1_msa(struct domain *d,
>>> +                         const struct xen_domctl_createdomain *config,
>>> +                         unsigned int flags)
>>> +{
>>> +    switch ( config->arch.v8r_el1_msa )
>>> +    {
>>> +    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE:
>>> +        fallthrough;
>>> +    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA:
>>> +        if ( !(flags & CDF_staticmem) || !(flags & CDF_directmap) )
>>> +        {
>>> +            dprintk(XENLOG_INFO,
>>> +                    "PMSA is not valid for domain without static allocation and direct map (v8r_el1_msa)\n");
>>> +            return -EINVAL;
>>> +        }
>>> +        break;
>>> +
>>> +    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA:
>>> +        if ( !has_v8r_vmsa_support() )
>>> +        {
>>> +            dprintk(XENLOG_INFO,
>>> +                    "Platform does not support VMSA at EL1 (v8r_el1_msa)\n");
>>> +            return -EINVAL;
>>> +        }
>>> +        break;
>>> +
>>> +    default:
>>> +        dprintk(XENLOG_INFO, "Unsupported arch.v8r_el1_msa value (%u)\n",
>>> +                config->arch.v8r_el1_msa);
>>> +        return -EINVAL;
>>> +    }
>> Why do we even need this split. It seems like all the above checks could be done
>> in arch_dt_v8r_el1_msa_parse given that it is called after static-mem,direct-map
>> are set. This would simplify this file and we would not even need to introduce
>> new domain-build split for one function.
> 
> Please correct me if I’m wrong, if I move the checks in arch_dt_v8r_el1_msa_parse() they will
> be handled only on dom0less domain creation only.
> If I have it in the current way it will be handled by dom0less and XL toolstack creation.
> I understand that for now the toolstack path is not implemented, but it felt better to do this now
> rather than change it later.
> 
> Let me know what you think.
MPU == everything static, so I'm not sure how dynamic domain creation via libxl
would come into play here.

> 
>>
>>> +
>>> +    d->arch.v8r_el1_msa = config->arch.v8r_el1_msa;
>>> +
>>> +    return 0;
>>> +}
>>> +
>>> +/*
>>> + * Local variables:
>>> + * mode: C
>>> + * c-file-style: "BSD"
>>> + * c-basic-offset: 4
>>> + * indent-tabs-mode: nil
>>> + * End:
>>> + */
>>> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
>>> index cd563cf70684..7d6f87e8b2b1 100644
>>> --- a/xen/include/public/arch-arm.h
>>> +++ b/xen/include/public/arch-arm.h
>>> @@ -330,6 +330,10 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
>>> #define XEN_DOMCTL_CONFIG_ARM_SCI_NONE      0
>>> #define XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC  1
>>>
>>> +#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE    0
>>> +#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA    1
>>> +#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA    2
>>> +
>>> struct xen_arch_domainconfig {
>>>     /* IN/OUT */
>>>     uint8_t gic_version;
>>> @@ -355,6 +359,9 @@ struct xen_arch_domainconfig {
>>>     uint32_t clock_frequency;
>>>     /* IN */
>>>     uint8_t arm_sci_type;
>>> +    /* IN */
>>> +    uint8_t v8r_el1_msa;
>>> +    uint16_t pad;
>> Before this change there were 3B of implicit padding. Now you added 1B of data
>> and 2B of explicit padding. The struct size is the same, so why bumping the
>> interface version? I don't see it necessary here. Also, why explicit padding?
>> With explicit padding I do think you need to now check that it's 0.
> 
> I’ve bumped because if an older toolstack is passing something that is not zero
> in the v8r_el1_msa we would return an error and stop the domain creation by the
> above:
I guess we won't have this issue if we drop arch_set_v8r_el1_msa as suggested above.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue May 05 10:39:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:39:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300526.1575052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKDBI-0003lL-MA; Tue, 05 May 2026 10:39:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300526.1575052; Tue, 05 May 2026 10:39:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKDBI-0003lE-JQ; Tue, 05 May 2026 10:39:12 +0000
Received: by outflank-mailman (input) for mailman id 1300526;
 Tue, 05 May 2026 10:39:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wKDBH-0003l8-VY
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:39:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKDBH-00C3Op-BA
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:39:11 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69f9c8c8-bab6-0a2a0a5309dd-0a2a4504c33e-20
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:39:11 +0200
Received: from [195.135.223.130] (helo=smtp-out1.suse.de)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69f9c8cf-1dec-0a2a45040019-c387df82d0a0-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:39:11 +0200
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id CE9C26A832;
 Tue,  5 May 2026 10:24:22 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 7F039593A3;
 Tue,  5 May 2026 10:24:22 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 7nuaHVbF+WmlDwAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 05 May 2026 10:24:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1777976663; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=1kPsih4iTQHzWl89ILt0g95YzXtWS3e4GyMfMv2igR4=;
	b=tn3PzYfCPZtySioGtvMgAlbygEOaU/FEtpO2jEf1J6SkLQahFS/xM70sMFDvfyToaLH7XH
	sQPTPpGQhfV91XLB/47t7gJ/GZ1T6HSiPmn5NL5XPAj1c9Psc488L1swhhACnvsHZaHwcC
	EgGhEE8Tn/yGA+L2wWg9uSqTkGmt9MU=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=PiLjwjp+
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1777976662; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=1kPsih4iTQHzWl89ILt0g95YzXtWS3e4GyMfMv2igR4=;
	b=PiLjwjp+GPhSNZPJ8LnSJD3yciFyfyaOd7w2dDeG76KVifcwgNTKNaIC+kLSGSLUPcolOD
	phK/Icdkl3jYRR8OhlEMTLwnNVJu5xCbvEhf0ag2w0WjZNVW06jrRj0ypeVu/O75D0Ty60
	1tgoDdAEwiJmIOr58lYJ5hpc0TDJNBQ=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/xen: Fix xen_e820_swap_entry_with_ram()
Date: Tue,  5 May 2026 12:24:17 +0200
Message-ID: <20260505102417.208138-1-jgross@suse.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Rspamd-Action: no action
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.com:email,suse.com:dkim,suse.com:mid];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCPT_COUNT_SEVEN(0.00)[11];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Queue-Id: CE9C26A832
X-Spam-Level: 
X-purgate-ID: tlsNG-ebf023/1777977551-4B5683FF-70C5D1EB/0/0
X-purgate-type: clean
X-purgate-size: 1062

When swapping a not page-aligned E820 map entry with RAM, the start
address of the modified entry is calculated wrong (the offset into the
page is subtracted instead of being added to the page address).

Fixes: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory")
Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/setup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index bb95a05259b8..41251d4cf953 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -655,7 +655,7 @@ static void __init xen_e820_swap_entry_with_ram(struct e820_entry *swap_entry)
 			/* Fill new entry (keep size and page offset). */
 			entry->type = swap_entry->type;
 			entry->addr = entry_end - swap_size +
-				      swap_addr - swap_entry->addr;
+				      swap_entry->addr - swap_addr;
 			entry->size = swap_entry->size;
 
 			/* Convert old entry to RAM, align to pages. */
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 05 10:41:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:41:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300534.1575061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKDD3-0005Dw-0G; Tue, 05 May 2026 10:41:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300534.1575061; Tue, 05 May 2026 10:41:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKDD2-0005Dp-Ti; Tue, 05 May 2026 10:41:00 +0000
Received: by outflank-mailman (input) for mailman id 1300534;
 Tue, 05 May 2026 10:40:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKDD1-0005Dh-LP
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:40:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKDD1-001j5O-1V
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:40:59 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9c92d-2eae-0a2a0a5409dd-0a2a4504eaf2-44
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:40:58 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9c93a-1dec-0a2a45040019-d1558035b83a-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:40:58 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-488a88aeec9so57383955e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 03:40:58 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a824f9f0dsm374127035e9.15.2026.05.05.03.40.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 03:40:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777977658; x=1778582458; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=b1AumbkpP3P7tQFODhk/CmhVcMS8U1HeqoW3XIkED6k=;
        b=aIEsHzpE/nR1dY8FwXtlA02lLl//kS9cQzf/hZhYa3AaOLBDvWfNxtSQb8SAiVd/jc
         npBwEREf3qVcqBncRBmRKwOWMwTlmpyYyscHDTqxPdo1J+KyEb4tp4M4qG8uQEsF4JhB
         GOc49M8EKmdHofh7vRqYLiDjt4mCdwvSAVIDVCOovB/3lLuzZDqxu6cgxp/anQeifcaO
         6JIVL29tMOH3r0+lYa+zB2WAVNkfxCC4k7mIYhQpeWd1GH4Dcbf/JQb1HWBZbQeYezhw
         8Qkahef3oYC8rJ84hPzxg+vi+EQcoZ7KwS4F8ChihHa50F6UdJjDTZN7ryBLN6BxYltW
         OtOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777977658; x=1778582458;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b1AumbkpP3P7tQFODhk/CmhVcMS8U1HeqoW3XIkED6k=;
        b=XDxRTI5wduWQPptL3Lf8J+SBEDK6jKQy31NazhQmttEmn8HVKpWpbL8gl7lKGNGZMi
         LlAprZDB9zgLqWgoNswOAzy85b018s2DUY/q7VCyRGh08o3ue2T9spmco42oT6t/yL+6
         qHlt3Ru/nkUK9HAu2HLfxjvWGGlOZSFgUwQ8k7/crvUlyXt/aWjf8ojJMWOR0qHqZvx9
         0sChUyot8Qbi6j1WW5gVYQstAjv1hZ0gDomEa7pYGXkwzoDYEiD4Y866HCzQo9NEDqBI
         poSZG9p2IknC0yg4sgOa6bUyU9lL8Ct5kZanFPt8LsAvh13LktD3+5OugB7tADSFzQnC
         vSpg==
X-Gm-Message-State: AOJu0YxiAqyRt1frFNzvoWEZGOjOaf57VHFULbtDGb26XDgIgCxOIu+r
	FznzAKVUdos6JS4yuCfXLqwpo9nuvZpMf0/hhfuXw9Ah3eoNEPCjT/VOYNhaNTZS/g==
X-Gm-Gg: AeBDievnh9glipruP6Wl6RKIeequRRDO/Lp+Alq4Q/KYCJNCAAqcP7/fXMA/IZJ/zIm
	QAiF5X2WwVdIN8By0oKpx47zSPkF0Pn75Huv47hv2wdTaA1F/z4Uk//VycYpyHGaFS8vL2lTTdF
	/Ej7b7WREjVz8440YzAghqEFkdy+vb8mfhAq706sMrH+L7AJHzTkFf7qJUC+rTbtxxrkO0DsMnD
	tcCJcJ91828KSjxHYb+z6gGvAGcou37fvxRIX8nspmfd3uWCWh95xY0vAJdKTmcJqfNSyT91wXU
	8qEL1EbRBwRWJlmCXhUK25wHiSf31b0bsuZFZj975h2neOsXtc0BVKz3xJTVJ4al98ory4NsC1v
	S59eOytTLukTYPLn9FcCam5VMeXpo0Sa34NPcAMgep6x1BuYkcHyBWVQe5f0ggQUs0mY1CZmBhD
	mis3jAM2iDnHQAYerxkDub1+A9imvQH0BDuenmMO6tYTbP+RBYVqSi/PFm3JGJtyn5Ol2w/vEFH
	6D7s0A6V4d+2PHPabLG+bPieg==
X-Received: by 2002:a05:600c:4e4d:b0:489:1ff1:74d3 with SMTP id 5b1f17b1804b1-48a9866a55fmr259355515e9.20.1777977658046;
        Tue, 05 May 2026 03:40:58 -0700 (PDT)
Message-ID: <0a3583df-2682-426e-a704-aa8711caec0d@suse.com>
Date: Tue, 5 May 2026 12:40:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Teddy Astie <teddy.astie@vates.tech>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
 <afi7HUFoDYabM9VV@macbook.local>
 <65ecf1c0-0844-4ba9-a250-a94aeaf4d251@amd.com>
 <afmYf-ldUxWQXRDL@macbook.local>
 <309b2ff6-c200-47d0-be3f-ec289df641c6@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <309b2ff6-c200-47d0-be3f-ec289df641c6@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1777977658-300413FF-42E4224F/0/0
X-purgate-type: clean
X-purgate-size: 2711

On 05.05.2026 09:35, Orzel, Michal wrote:
> On 05-May-26 09:13, Roger Pau Monné wrote:
>> On Tue, May 05, 2026 at 08:48:15AM +0200, Orzel, Michal wrote:
>>> On 04-May-26 17:28, Roger Pau Monné wrote:
>>>> On Thu, Apr 30, 2026 at 02:51:02PM +0200, Michal Orzel wrote:
>>>>> The generic pdx_to_page() and page_to_pdx() macros in xen/pdx.h assume
>>>>> the frame table starts at PDX 0, which is only true on x86. ARM
>>>>> uses a non-zero frametable_base_pdx to offset into the frame table (PPC also
>>>>> defines it).
>>>>>
>>>>> Fix the generic macros to subtract/add frametable_base_pdx, defaulting
>>>>> to 0 when the arch does not define it. This makes the generic macros
>>>>> correct for all architectures, even though they are only used on x86
>>>>> today.
>>>>
>>>> Hm, I assume this offset was added because the original mask PDX
>>>> compression won't (usually) compress the gap between 0 and the start
>>>> of RAM.  However the newish offset PDX compression should be able to
>>>> compress from 0 to start of RAM, and hence you don't need to apply
>>>> an extra PDX offset there?
>>>>
>>>> If that's indeed the case it might be better to integrate
>>>> frametable_base_pdx into the mask compression algorithm itself, so
>>>> that on some arches it's a mask plus a decrease.
>>> The offset is needed regardless of whether compression is used. With
>>> CONFIG_PDX_NONE (no compression, PDX == MFN), if RAM starts at e.g.
>>> 0x80000000, the first valid PDX is 0x80000.
>>
>> OK, so you are doing some (kind of) address space compression (removing
>> the leading empty range to the first RAM region) even when PDX is
>> disabled.
>>
>>> Without frametable_base_pdx
>>> the frame table would have to be indexed from 0, wasting
>>> 0x80000 * sizeof(page_info) of memory just to cover the hole before RAM.
>>
>> But you don't really "waste" memory, just address space?  Oh, maybe
>> not on ARM as it doesn't use pdx_group_valid?  And so you
>> unconditionally populate the frametable from PDX 0 to max PDX.
> With pdx_group_valid (which this series adds) we wouldn't waste
> physical memory for the leading gap. But we'd still waste virtual address
> space and the FRAMETABLE_NR check (max_pdx > FRAMETABLE_NR) becomes tighter
> because the full range from PDX 0 must fit. For example with RAM starting at 5TB
> the virtual offset before the first usable entry would be ~70GB — more than the
> entire 32GB FRAMETABLE_SIZE on ARM64.

Yet still - this is exactly one of the situations offset compression means
to cover. I'm entirely with Roger as to it being undesirable to build a
special case variant of "offset compression" into "no compression".

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 05 10:46:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:46:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300544.1575071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKDI9-0005qN-LF; Tue, 05 May 2026 10:46:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300544.1575071; Tue, 05 May 2026 10:46:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKDI9-0005qG-I9; Tue, 05 May 2026 10:46:17 +0000
Received: by outflank-mailman (input) for mailman id 1300544;
 Tue, 05 May 2026 10:46:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wKDI7-0005qA-GR
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:46:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKDI4-003DbN-Ra
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:46:14 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f9ca75-2eae-0a2a0a5409dd-0a2a4504dde8-4
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:46:13 +0200
Received: from [52.101.53.55]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f9ca71-1dec-0a2a45040019-346535375ab8-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:46:11 +0200
Received: from PH5P220CA0001.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:34a::8)
 by DS7PR12MB6238.namprd12.prod.outlook.com (2603:10b6:8:96::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 10:46:05 +0000
Received: from SN1PEPF0002529E.namprd05.prod.outlook.com
 (2603:10b6:510:34a:cafe::93) by PH5P220CA0001.outlook.office365.com
 (2603:10b6:510:34a::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.15 via Frontend Transport; Tue,
 5 May 2026 10:46:05 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SN1PEPF0002529E.mail.protection.outlook.com (10.167.242.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Tue, 5 May 2026 10:46:04 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Tue, 5 May
 2026 05:46:04 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 5 May
 2026 05:46:04 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 5 May 2026 05:46:02 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AA3Is+R6J31cuKjEDz6gNLSM3scUrfoMCzRkOKkVNNAMK3Oz3rCPCGguFzdD2L+V2WNjSn+KI2YBn6STucH7PXQ84X+ZQC4zHYiHcL1wZiFKaTkTaHpoXttakBwO95Vmdh084h+4Hlyr6wUPJyh7xVFqX3kqixXO3uUPfCMscmGA+Tg0ClMal/NfOWxr/nu35FJmfB6AkGPmqrMgn8pKlYfT77KeiixepREqDgyU5wbLtIPXfNM2uWSR32J4s+eKjj5Spq+GMEbZrf55J8tR7zWoQk7O61qagw9sSA9jFoMTmNdCp4YS96SYWElcMEU4tZEJcsGCEFcCUyD6PrRHUg==
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=At9aI7cAJFmzTgqxUBRtEWI6/kc0cQChhrK+Y0HlKII=;
 b=zNT5QujGZ+XkCbaiv9XAlrCIVnbzVAush1d0l95AlGCCgmSeWldNlRKjMciKAjT+tcB/7RmXkdqNaHEBbXD5jMzyiWj4x0GXpa4aM3xXLGGUnO7TZPxp8WbRmSHauXcXdySEOXJGg2VZpExFrrK0QiL0FQMD9FnBoA605AkMfSh2WOAF5ANmZzZ8/zoUlRirmP44UTUPhJV5lxtxoYoEtfb2I4F+1BLZkfAmb7/FgKpms39haglwf8FaY33iL6ZtXjQ4uxfRwxOvOjgvD8/5ybDl2PjnDtUjdg793vEvYL+KECQZZV4pBanMZrNMb3rxmdWGR48YZWA5viAfJC8WUg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=At9aI7cAJFmzTgqxUBRtEWI6/kc0cQChhrK+Y0HlKII=;
 b=1IACf5Iyeu6Kp2alKN/AyyjxDK3KN/73KkwHVKgi+l+5W8YxW/AXq2ZTvIiP/2ePqtCn9NGKo7N7i+5KtySmmNCyD/TbpTfk250f/zOmllWV2zHGxVi5s7FzSDKidZQpDXRaLo5TR0P2eLM6AmQvPWQV7MST/wseILTcLKyB7L0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <a90db340-e569-4f77-b5df-dd1a1504f8cf@amd.com>
Date: Tue, 5 May 2026 12:46:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
To: Jan Beulich <jbeulich@suse.com>
CC: <xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Timothy Pearson
	<tpearson@raptorengineering.com>, Teddy Astie <teddy.astie@vates.tech>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
 <afi7HUFoDYabM9VV@macbook.local>
 <65ecf1c0-0844-4ba9-a250-a94aeaf4d251@amd.com>
 <afmYf-ldUxWQXRDL@macbook.local>
 <309b2ff6-c200-47d0-be3f-ec289df641c6@amd.com>
 <0a3583df-2682-426e-a704-aa8711caec0d@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0a3583df-2682-426e-a704-aa8711caec0d@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002529E:EE_|DS7PR12MB6238:EE_
X-MS-Office365-Filtering-Correlation-Id: 3042a70b-ba4e-4bb7-e46e-08deaa9381ee
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|7416014|376014|1800799024|82310400026|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	B6Xm/2/e1p3QEKXlmNRNJIrT9W2YKjqbdqfqP6L5ko2ELxLxST5LLPmSd8AEAI9EIHYJoVnwer5nvijjEE0FCVVj+vv8akqxID5IIFn+Q0oBN/T9r3CwpfwE/u1EXozhX838+bac6hViUzPfQCJzD+YH5qF+j2Q5V9seZMup3tB3e5iu4XZQxP2WFb+xS7SDkOZPn0gkogJvbIDQZ6LlTyzaG7mDXfqjGC+cbQkELX6aIi2H5stqEXMERuj1oIzAZ9qvxDjiARHJBU1jZXJ5dfu7VAkmIs9uG+ZP8dsFIoqTIEll3Gdt5xDRM49ujHLW4RMH3/lUlLTdtY1f3CrkdkpZANQkkXEsl+1iRg7myIAD6Ow/H4tZriuPE8Fh9vMClLITNTsRRRUx84+tfly+UPhqaO07nKEgyIvqYxror/oQ3SpFcc8/2R0rJYnBA73si0xc5JSq+pQGJIaEwfY3QXEva5tsOh1s3No7tkEmygXJphs1yTw/IOhmP+1cQWxRSg5ZA5zMTYAb2ouSwKBYZt6kS3xaaZtXX/dar56Ts1C8+MpY/w4LlJCUuD/FTvvYd5plAVNTp1kDSrXo8ItqF1edxjnW+dAj4XyrrOuJkrb/en6F9bsaJBU1SE6daWVxbaS2/SbnhzbvfSx1Uwse914u0Tw5WvEwd6DlmkWFjWEvZJkn3ZOJF0FFoaQkE5QgK81O2uk2FAXxo7QpTm/AWZ/L9zfUKOOmnlC/4YerYp4=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(7416014)(376014)(1800799024)(82310400026)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	RhTEiKnVDsApT20JFC+2ZEXbxn84lWwNRZzJcHXq6rsdfqU/hn8aMP/GRyi3xxHZvLkrsMY+x+Ff88hTQM980cVlpBOxYhs+Xz1is3M+qgXrYc3ZvdAK+iT2GCakd7DN8GOou/gp7FLgbuCyTIYW7RtGvDEK+aQhWuECWV2qxWzobxKh7JzOaYVbHr3yft36yKDRsE/mIWu3eUExw1vLoF8lM8geDAHt0Of8OAplA26/WkDiXudHevum3X0qpIwQl0mOrv8PLFgaQEr/My1imDXw4lhn30ieatpsLcxz2hSZF/tX6EXz+Y0JVizDPF7nIceWmnFPQxNFK6rePU5bH7v8dSo8RUzVRWcF7vnBFbpRaa59ijLi9Qd/6a2/oXh0jvp52q5kH1evfRHTWT5l2/Y6dsbgE5rLghUwAKGyukux2GBpXJMhCyuZm/X5C4mC
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 10:46:04.9379
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3042a70b-ba4e-4bb7-e46e-08deaa9381ee
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002529E.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6238
X-purgate-ID: tlsNG-ebf023/1777977971-4BD6C3FF-DD965C9B/0/0
X-purgate-type: clean
X-purgate-size: 3221



On 05-May-26 12:40, Jan Beulich wrote:
> On 05.05.2026 09:35, Orzel, Michal wrote:
>> On 05-May-26 09:13, Roger Pau Monné wrote:
>>> On Tue, May 05, 2026 at 08:48:15AM +0200, Orzel, Michal wrote:
>>>> On 04-May-26 17:28, Roger Pau Monné wrote:
>>>>> On Thu, Apr 30, 2026 at 02:51:02PM +0200, Michal Orzel wrote:
>>>>>> The generic pdx_to_page() and page_to_pdx() macros in xen/pdx.h assume
>>>>>> the frame table starts at PDX 0, which is only true on x86. ARM
>>>>>> uses a non-zero frametable_base_pdx to offset into the frame table (PPC also
>>>>>> defines it).
>>>>>>
>>>>>> Fix the generic macros to subtract/add frametable_base_pdx, defaulting
>>>>>> to 0 when the arch does not define it. This makes the generic macros
>>>>>> correct for all architectures, even though they are only used on x86
>>>>>> today.
>>>>>
>>>>> Hm, I assume this offset was added because the original mask PDX
>>>>> compression won't (usually) compress the gap between 0 and the start
>>>>> of RAM.  However the newish offset PDX compression should be able to
>>>>> compress from 0 to start of RAM, and hence you don't need to apply
>>>>> an extra PDX offset there?
>>>>>
>>>>> If that's indeed the case it might be better to integrate
>>>>> frametable_base_pdx into the mask compression algorithm itself, so
>>>>> that on some arches it's a mask plus a decrease.
>>>> The offset is needed regardless of whether compression is used. With
>>>> CONFIG_PDX_NONE (no compression, PDX == MFN), if RAM starts at e.g.
>>>> 0x80000000, the first valid PDX is 0x80000.
>>>
>>> OK, so you are doing some (kind of) address space compression (removing
>>> the leading empty range to the first RAM region) even when PDX is
>>> disabled.
>>>
>>>> Without frametable_base_pdx
>>>> the frame table would have to be indexed from 0, wasting
>>>> 0x80000 * sizeof(page_info) of memory just to cover the hole before RAM.
>>>
>>> But you don't really "waste" memory, just address space?  Oh, maybe
>>> not on ARM as it doesn't use pdx_group_valid?  And so you
>>> unconditionally populate the frametable from PDX 0 to max PDX.
>> With pdx_group_valid (which this series adds) we wouldn't waste
>> physical memory for the leading gap. But we'd still waste virtual address
>> space and the FRAMETABLE_NR check (max_pdx > FRAMETABLE_NR) becomes tighter
>> because the full range from PDX 0 must fit. For example with RAM starting at 5TB
>> the virtual offset before the first usable entry would be ~70GB — more than the
>> entire 32GB FRAMETABLE_SIZE on ARM64.
> 
> Yet still - this is exactly one of the situations offset compression means
> to cover. I'm entirely with Roger as to it being undesirable to build a
> special case variant of "offset compression" into "no compression".
In this case, if you don't want to generalize the macros, how should we proceed
on Arm if we still need the offset to cover the PDX_NONE variant that we also
use? In v1 I just created a local override but Julien wanted to generalize the
macros instead. The discussion about switching the default on Arm from mask to
offset that is not even selectable on Arm needs to wait for the new release cycle.

~Michal




From xen-devel-bounces@lists.xenproject.org Tue May 05 10:49:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:49:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300552.1575081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKDKx-0006lq-1Z; Tue, 05 May 2026 10:49:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300552.1575081; Tue, 05 May 2026 10:49:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKDKw-0006lj-UK; Tue, 05 May 2026 10:49:10 +0000
Received: by outflank-mailman (input) for mailman id 1300552;
 Tue, 05 May 2026 10:49:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKDKv-0006ld-JX
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:49:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKDKu-00DbwM-VS
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:49:08 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9cb23-5cb7-0a2a0a5109dd-0a2a450ad7fc-8
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:49:08 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9cb24-56b3-0a2a450a0019-d155802cb89c-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:49:08 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-488a88aeec9so57496285e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 03:49:08 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48d149de41asm24880285e9.2.2026.05.05.03.49.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 03:49:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777978148; x=1778582948; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KzjOlkiNB7SnTWeAjHaOHXklT9eln8RhKriTJ6bsVqo=;
        b=dizDiL7unM39oBak7g+sjUcQvu9T349hS3QAtfo8YUXak7NFMepNERxVEGPJnNxUiF
         ax/wZSyX7YTbDBjBhBca3ede7nVJ5SRZpO+/WyDzVY8zCeDwRK1NGW++nBSFMr0C9fFV
         B9WGp5iaKpTcRmaDTaWvHU29k1QYuAm3x8DVm0cYgKqbKhF2TAiy7PZviac4ONEmR5vI
         qk5FDMMuYVITC1osxeZf3wDMu821DUnkL945bA1dzFFaetdW9pb3+1ZUskSaoO1gm+yL
         RFUjJ5EuZZpWz7ahTXVcWKnD2p38pfDVaWr4BOw9yrWHcZGCKWbubYXcbf9X1V5a+xLi
         ioWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777978148; x=1778582948;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KzjOlkiNB7SnTWeAjHaOHXklT9eln8RhKriTJ6bsVqo=;
        b=sfjrZ0x3Ex/lDtavH8j7zzXdRUKQNT8FDIFNFbp9uiN0WpJmtXjtYIb5MjgesreJo+
         290l3sr/CznGtLR7Ek9ydpv7y5wI5OUbFxI55JBnBnaMa4z121PTG9/ak/S8MYT4LwHg
         2EWl/J68gPr++3W4iig7CE49i89pUseqvxsWv1yRWxIpM1A+8oK2+Yfjm2Kld0B31ZQo
         z8tZ8lXhWhZjRFdpXiVmgFTORtygEx6xztatShn1a/qXGeXGDeG66mRqbTdaGvEtoQRo
         MemPxlpC+6Cg6oOKQgR33jpknxIucHjrzHZFb9u75pMZ0bPetn+YWZKKAGYLXB2f87vP
         VnQA==
X-Gm-Message-State: AOJu0YzFR3/u4ScJZKNUy/60KmD8wRgfMKDJzi/41P/6zWabmOjPSCxV
	WTFu+Vr/7uLx7rNUlWMylh3IKqx2m8g8aaRa1b7lCuDBYkAYpyT/9ToGtUIqjNc0gA==
X-Gm-Gg: AeBDiesUSPAptBCx8aqZnmyzgw3zJ9fdDCcCf6xXWug0UPdBGAx1vtSfSc+9Usf2vgM
	lA4VXxZy5naLhQ4Nmkz+dUnKm5SeLx9eQIJw7nkbwFuWeaZ9OPuivFMKcKMJZnlWdWRmdUUZtYD
	3nxCsJW6RCX0lvRqdp6RalCVQR7auV/3jnJF4c2MwPxKJlskTTu8qrOxyT/juo2eq3iKT2vQwzX
	Y4Wx3hqcqhiaZQyyfH6U/7bknAK4snOGuPwZ2kvIltW4PqRiUBUNz7DK42vZcru+usDH8ILpE9x
	6Ky+k82Bh3/5SEqFXCgJeOBZfeTHxteRy/tew+fHczxVh8j/4HKtkpcIkwVLiEhJv10FOlpzELn
	dyEY7cAGK+o8B6YYUZiZhgH2FrFmmAIZzgCjLAnTwRGylaiJanb0S3GYIh+6b35j2d55WGy/QQ1
	jX+PWoVIc0cYFkQ2fyZSq1/bN1OSihjzBOm4lzgimrR8Bs/t9gwosYHT7+70dk9bor6iRLXFFYc
	0RC/iScBrvm2CDmTIJIk07Zvg==
X-Received: by 2002:a05:600c:a411:b0:48a:7b55:12a6 with SMTP id 5b1f17b1804b1-48a980fc3e7mr162675315e9.0.1777978148121;
        Tue, 05 May 2026 03:49:08 -0700 (PDT)
Message-ID: <0267eb6f-1161-45b7-8905-d7aecb78e74c@suse.com>
Date: Tue, 5 May 2026 12:49:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Teddy Astie <teddy.astie@vates.tech>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
 <afi7HUFoDYabM9VV@macbook.local>
 <65ecf1c0-0844-4ba9-a250-a94aeaf4d251@amd.com>
 <afmYf-ldUxWQXRDL@macbook.local>
 <309b2ff6-c200-47d0-be3f-ec289df641c6@amd.com>
 <0a3583df-2682-426e-a704-aa8711caec0d@suse.com>
 <a90db340-e569-4f77-b5df-dd1a1504f8cf@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a90db340-e569-4f77-b5df-dd1a1504f8cf@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1777978148-4616A8B7-D89741BE/0/0
X-purgate-type: clean
X-purgate-size: 3492

On 05.05.2026 12:46, Orzel, Michal wrote:
> On 05-May-26 12:40, Jan Beulich wrote:
>> On 05.05.2026 09:35, Orzel, Michal wrote:
>>> On 05-May-26 09:13, Roger Pau Monné wrote:
>>>> On Tue, May 05, 2026 at 08:48:15AM +0200, Orzel, Michal wrote:
>>>>> On 04-May-26 17:28, Roger Pau Monné wrote:
>>>>>> On Thu, Apr 30, 2026 at 02:51:02PM +0200, Michal Orzel wrote:
>>>>>>> The generic pdx_to_page() and page_to_pdx() macros in xen/pdx.h assume
>>>>>>> the frame table starts at PDX 0, which is only true on x86. ARM
>>>>>>> uses a non-zero frametable_base_pdx to offset into the frame table (PPC also
>>>>>>> defines it).
>>>>>>>
>>>>>>> Fix the generic macros to subtract/add frametable_base_pdx, defaulting
>>>>>>> to 0 when the arch does not define it. This makes the generic macros
>>>>>>> correct for all architectures, even though they are only used on x86
>>>>>>> today.
>>>>>>
>>>>>> Hm, I assume this offset was added because the original mask PDX
>>>>>> compression won't (usually) compress the gap between 0 and the start
>>>>>> of RAM.  However the newish offset PDX compression should be able to
>>>>>> compress from 0 to start of RAM, and hence you don't need to apply
>>>>>> an extra PDX offset there?
>>>>>>
>>>>>> If that's indeed the case it might be better to integrate
>>>>>> frametable_base_pdx into the mask compression algorithm itself, so
>>>>>> that on some arches it's a mask plus a decrease.
>>>>> The offset is needed regardless of whether compression is used. With
>>>>> CONFIG_PDX_NONE (no compression, PDX == MFN), if RAM starts at e.g.
>>>>> 0x80000000, the first valid PDX is 0x80000.
>>>>
>>>> OK, so you are doing some (kind of) address space compression (removing
>>>> the leading empty range to the first RAM region) even when PDX is
>>>> disabled.
>>>>
>>>>> Without frametable_base_pdx
>>>>> the frame table would have to be indexed from 0, wasting
>>>>> 0x80000 * sizeof(page_info) of memory just to cover the hole before RAM.
>>>>
>>>> But you don't really "waste" memory, just address space?  Oh, maybe
>>>> not on ARM as it doesn't use pdx_group_valid?  And so you
>>>> unconditionally populate the frametable from PDX 0 to max PDX.
>>> With pdx_group_valid (which this series adds) we wouldn't waste
>>> physical memory for the leading gap. But we'd still waste virtual address
>>> space and the FRAMETABLE_NR check (max_pdx > FRAMETABLE_NR) becomes tighter
>>> because the full range from PDX 0 must fit. For example with RAM starting at 5TB
>>> the virtual offset before the first usable entry would be ~70GB — more than the
>>> entire 32GB FRAMETABLE_SIZE on ARM64.
>>
>> Yet still - this is exactly one of the situations offset compression means
>> to cover. I'm entirely with Roger as to it being undesirable to build a
>> special case variant of "offset compression" into "no compression".
> In this case, if you don't want to generalize the macros, how should we proceed
> on Arm if we still need the offset to cover the PDX_NONE variant that we also
> use? In v1 I just created a local override but Julien wanted to generalize the
> macros instead. The discussion about switching the default on Arm from mask to
> offset that is not even selectable on Arm needs to wait for the new release cycle.

I'm not convinced of that. If you need offset by default, why not enable it by
default (right now, and potentially even as a backport if there's any bug that
is being fixed)?

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 05 10:55:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 10:55:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300504.1575100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKDRF-0008Qb-QS; Tue, 05 May 2026 10:55:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300504.1575100; Tue, 05 May 2026 10:55:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKDRF-0008QU-Np; Tue, 05 May 2026 10:55:41 +0000
Received: by outflank-mailman (input) for mailman id 1300504;
 Tue, 05 May 2026 10:29:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ukleinek@baylibre.com>) id 1wKD1i-0001Gj-M7
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 10:29:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKD1g-003A7k-Gc
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:29:18 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ukleinek@baylibre.com>)
 id 69f9c666-bab6-0a2a0a5309dd-0a2a450aa878-44
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:29:17 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ukleinek@baylibre.com>)
 id 69f9c67c-56b3-0a2a450a0019-d155dd2ba413-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:29:16 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-43d734223e4so2954864f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 03:29:16 -0700 (PDT)
Received: from localhost
 (p200300f65f114e082236c6257eff72a1.dip0.t-ipconnect.de.
 [2003:f6:5f11:4e08:2236:c625:7eff:72a1])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-45055f2203csm3772962f8f.37.2026.05.05.03.29.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 May 2026 03:29:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=baylibre-com.20251104.gappssmtp.com header.i="@baylibre-com.20251104.gappssmtp.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=baylibre-com.20251104.gappssmtp.com; s=20251104; t=1777976956; x=1778581756; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=jq6G9SCADZgi5j8IAt02Ku+HE9Gjzrrr5m74sKn8VBQ=;
        b=h4nwx/XVEA601XzxBFHxm28273wEWn3AuKJUXV/a9mUqixGvdzKOI88pBGJDEa+ah3
         E+7C9IX9G8YYva6SCqEDsFZ505GofUp1SUqtHrVFvww9CnndQORodFAwop0TXiCgVkk7
         nMS2gPkdsGIGbDXmUQ47K+YSIbWS2rweV5HC2sKHuzOlREy56o95u6rL9fXd1qcTAX9A
         +Z6tb8SrWEr+Rg1TK/7lvH51S17hv6Sx39OCTfQSY83bgKGzt5AUao2oRhr8HfRp9pGZ
         /4BA1DazHC6WCVnsUP3ZttsGWdaxuUtKw6JpjFJMr+hfu/IBd4RhRE87zm47Qqc8fYA1
         BXDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777976956; x=1778581756;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jq6G9SCADZgi5j8IAt02Ku+HE9Gjzrrr5m74sKn8VBQ=;
        b=Qb/Kc4FyAP7KyaJjJ8gzRakRYZBKtvLknheIXh9wESEPd/6H8uCJai8KGWXGPvDBqX
         mVx6STquCIOst5snoXFUkMKs+SKfX3eWVlyGnzugSwQllDfpat7gPWXbasIEgxfHNWGU
         IFM5RUUQ99erlkcbuA8aE/pZ1+59wbP85IgD4CG8vKQ5EFLtqF5TcDq7RiwMb+/5SARG
         RX5OqIVF5Z/3bBrjTLaB072ZfdzxFesIcC6c7dvgA7uFCAyz7kCAHa0nMpQdzrPwYrXw
         1tPf8QYkTHbVDlWcRF7krF3LnG1kFQgMvgxc0a1mYgKLFG/uedYfIGy3/CUCq6agSISp
         mCHQ==
X-Forwarded-Encrypted: i=1; AFNElJ/F8P8+wp0h4rfwRAZ+jhmaQ5i7uXsHNCVSiSx0FrOSkYy6QDUWUQ0s9w54DkorQf/iCV0FeZ0MO7k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzZT4pnhBy4cehE8L6VAl5r4GzBhQXPhcHElOgIcswQt9tanvts
	VDuFJDrFRs8ztVpTn+ybxOZcxv75pVEx81sBntwQNAH/wbiTLGIUqrEpjYyt3Q1sERI=
X-Gm-Gg: AeBDieuyLa3CRtb4iZcb7V/2afJQcAJeCpZh2VcHGMOFNvvtDlcIT4Upn2cT+mkEgx8
	DjR95co2uMkxkovNypyS4gCUahBQ4zTd0I8Imzhj+pDUbLdmbE4cVKUqSj1XiB0q9vsPtjT7QoR
	Gyg1ed3zEhxd4Fetv+rzzZl9RtJpzrsxX4XbCIo8450a05fOV8YR0/vIGF0g8NI3WCW8VG2/2V1
	eTDm5C8dFMTEkMHGFWnC7yIXxbmbof/AeS8fsNj65YBSvgqJiQkIQlwIoT0Z5JmCf3nOXcTIfG4
	bH1nrTRFWjTlg+NgDakKwHiIS2dh7nxjSTvZw/DzWXnfiaGnsy3W7S1Whcjn/xJRjg0mIuWDOh/
	0f8xBwKvpAcMs8qFbSQSznfBDBzyPc8G0BfqLxmIRVJSyIVtL8VozKJm9Zt8mcEvdwW3iUfhmyw
	1ZK+gETbcyoVNSqHmeFX6+596JBXbSz1yyab+9zJjjnFds0WwPZ29QxMGLHptykS+Ke2FuJApKM
	1yLNm1QK1xJktUxl7UBJZExyg==
X-Received: by 2002:a05:6000:2004:b0:449:d1f5:7101 with SMTP id ffacd0b85a97d-44fdcf887aamr5474975f8f.12.1777976956342;
        Tue, 05 May 2026 03:29:16 -0700 (PDT)
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig=20=28The=20Capable=20Hub=29?= <u.kleine-koenig@baylibre.com>
To: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	Markus Schneider-Pargmann <msp@baylibre.com>
Subject: [PATCH] xen/platform-pci: Simplify initialization of pci_device_id array
Date: Tue,  5 May 2026 12:29:09 +0200
Message-ID: <20260505102909.2380470-2-u.kleine-koenig@baylibre.com>
X-Mailer: git-send-email 2.47.3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-Developer-Signature: v=1; a=openpgp-sha256; l=1563; i=u.kleine-koenig@baylibre.com; h=from:subject; bh=zfUmnTuMCPKl1uBG6shy+GoSAItHMkggjMydPWbUatc=; b=owEBbQGS/pANAwAKAY+A+1h9Ev5OAcsmYgBp+cZ149Ot8luyVHVeurVu/y5CpJvjXDg8c6mH8 bQwgQ+JvwOJATMEAAEKAB0WIQQ/gaxpOnoeWYmt/tOPgPtYfRL+TgUCafnGdQAKCRCPgPtYfRL+ TlRPB/9EtPMzqvPbpzz9rvz0r8PM5VBvrovdLtaMiGTUp2UYkJT6HN7nesS9ghlDesSXQ22OEoJ THMHYGRsjMmAnI536nBTL8eh85DHcs9aLyb6TF1MRDx9Jmd60i1Nn7gWc5fhJ06X9FTsmkiD4iD eZSSrVEWEnzc1722cAvJO3G6OXXz3wJeZOgSEC1h+a2ZF4VodurfW85n7SDV0K3GppKUiFyUwkn RCbFL6azSsiXShHStGggI9wPpou/EduZuSW3nXA75BiCC63pGOhlc7mt0V3xpFADKN8R0z5i+fN B3jawWkKy6xL2MHnXjyjQZ5ssV9IjxNueknS0bq+BSq8LCdH
X-Developer-Key: i=u.kleine-koenig@baylibre.com; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1777976957-80E798B7-EC6DBB66/0/0
X-purgate-type: clean
X-purgate-size: 1565

Instead of using a list initializer---that is hard to read unless you know
the structure of struct pci_device_id by heart---use the PCI_VDEVICE
macro to assign the needed values and drop all explicit but unneeded
zeros.

This doesn't introduce any changes to the compiled result of the array.

Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>
---
Hello,

this is a preparing change for making struct pci_device_id::driver_data
an anonymous union (similar to
https://lore.kernel.org/all/cover.1776579304.git.u.kleine-koenig@baylibre.com/).
This requires named initializers for .driver_data. Dropping the unused
assignment is still better.

Best regards
Uwe

 drivers/xen/platform-pci.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/xen/platform-pci.c b/drivers/xen/platform-pci.c
index 1db82da56db6..f2438232518c 100644
--- a/drivers/xen/platform-pci.c
+++ b/drivers/xen/platform-pci.c
@@ -174,11 +174,9 @@ static int platform_pci_probe(struct pci_dev *pdev,
 }
 
 static const struct pci_device_id platform_pci_tbl[] = {
-	{PCI_VENDOR_ID_XEN, PCI_DEVICE_ID_XEN_PLATFORM,
-		PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
-	{PCI_VENDOR_ID_XEN, PCI_DEVICE_ID_XEN_PLATFORM_XS61,
-		PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
-	{0,}
+	{ PCI_VDEVICE(XEN, PCI_DEVICE_ID_XEN_PLATFORM) },
+	{ PCI_VDEVICE(XEN, PCI_DEVICE_ID_XEN_PLATFORM_XS61) },
+	{ }
 };
 
 static const struct dev_pm_ops platform_pm_ops = {

base-commit: 254f49634ee16a731174d2ae34bc50bd5f45e731
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Tue May 05 11:45:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 11:45:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300583.1575120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKEDM-0007aZ-Lm; Tue, 05 May 2026 11:45:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300583.1575120; Tue, 05 May 2026 11:45:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKEDM-0007aS-HX; Tue, 05 May 2026 11:45:24 +0000
Received: by outflank-mailman (input) for mailman id 1300583;
 Tue, 05 May 2026 11:45:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wKEDK-0007Zt-M5
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 11:45:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKEDK-00GG6A-2s
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 13:45:22 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69f9d851-5cb7-0a2a0a5109dd-0a2a4508e4ca-2
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 13:45:21 +0200
Received: from [209.85.208.44] (helo=mail-ed1-f44.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69f9d851-63b5-0a2a45080019-d155d02cc468-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 13:45:21 +0200
Received: by mail-ed1-f44.google.com with SMTP id
 4fb4d7f45d1cf-67bc8609a9bso2330088a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 04:45:21 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-67cd91bc5b0sm351860a12.23.2026.05.05.04.45.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 04:45:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777981521; x=1778586321; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=dbkx0v7dVwi7AIE9c948PfZrrE8y6E3HRwqFQDjLoeA=;
        b=TqfiMh50gMpXZMomtASbnqIBBMhlQMsuyNnn6M5gnKuQ6tAHLqg/y5OspwVvFxOuUi
         Jl1CVcqwCJ/IJohYNWVY/HU4pxGYj9n2svje5f8nIP5f5S1ULVImFsD+jAPjgYq69s6R
         G8zz8/JgoSDkQTrXUPLb9LmZLWfB/h9JVo3Gq7Arqhpowi1NzBDb2WysanbTD7yrsCFJ
         rhXPFkP3Ue3Lamuk8xYLjW13m2S80mWIIIxePH4J6FoICGxTU/V3GP92O733+VV/rYem
         unca+M6IICX25Uxd8gjL2or1pxTfAdaYFrlRMgy8izqgd3hTNEDXxuoDpzI7D4iNMeP4
         lejw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777981521; x=1778586321;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=dbkx0v7dVwi7AIE9c948PfZrrE8y6E3HRwqFQDjLoeA=;
        b=AxSAKWZVqS5USqpl5ex5KC+br+ozjl57BI92iWP8rqagO3brcxK8pMt9kDFNC+d7Sd
         /AhV6lJgdK/+8dda8jIHKzQxo0PU9BqL1RfzTTdwa03xTF2zMKy0NCagtG/rfRtWm+48
         GHD8cFYIV9s1IB/qxM1TcmitMDzESVDqZUN9xiUdkVoP+lhAOQfuQz5G61uTRROUEUY6
         N5rCRUb5vgb1aCHYb4WDM439BFJxMV76VLGMlwJXLOEOW4xvNATz1bHUSDwrNNiUiTkF
         ElfsPN3qYFn12C/s2ahAUo03NmvX9tNA2Ab6qFhDPDHxiRsRxWEpcW2rbubAYE8MN1Xa
         fIwQ==
X-Forwarded-Encrypted: i=1; AFNElJ9P+A4LgNylt0mBTxyGKmg9JZ58EJXABFrcWdENI5KeAz9Z7I6MW3Cj1swy8YES0Pf/sT17QYwfalg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYkTHjSvCav3VLtdyqA32DwjOX03MWv3rmv/qZEoiN8YWfFq6O
	Tgtaai9sgwzoa8gCR/LYZxVS27qTADM6Nr92t55FO/1vEC8QYsn1N8lHYeWtGCOYbwk=
X-Gm-Gg: AeBDievRo+yc0FzEs9W8t9qW0Epm5pJumD0hwnLIrWxO4YGQaHQQyhQDtVMhW4j3jJ0
	FyliNBudXoKkgKbx743uD1RsbGpl9gA+o1mXXeUE8q5AWOlrtm6oqTi3SAeHAXRrm/nRSSRYvLp
	n02deyI9kP7tzlsHbi/saaspezueq61FuyUVJZ0gb4vxsRicofEp0mDFRduA2x0U+ZJ/EQWGaMM
	040txsbR1YOaKBvIXzS9fe7meYruyKtKrKiiaFWduJfh29uFla4PmgIWLZR0Cqe6mUosWfPtGKS
	4Hrutnjncgl4PsSvloFKG2iWbwixNLjuD85+KG/i8sgmQNrtpYnuU6W/KJ5qm0NK5/TC4TVS4bd
	6TosmXKTyXZftGU767Aa82GIg0mq5+v/53qDsnni6/tgVJo3+EL7Yno4TToYQCKb/DJazBYcs+A
	1gCRHpnsJG5UwEyO3HonQ0fvGdK8Pcm9GLUceAn98PumBbe/yNIvruZjpHbiVaREw8sTgJaaGxW
	yT5gJEbQcYJ6bgccw1g4+MJl7caUEZv5MJj63WqeTQC3ZaWBrZfQ3nAHEQiTraG
X-Received: by 2002:a05:6402:2786:b0:67b:4e46:f12f with SMTP id 4fb4d7f45d1cf-67ccc3790ecmr1419521a12.25.1777981521021;
        Tue, 05 May 2026 04:45:21 -0700 (PDT)
Message-ID: <598d6dfd-da1b-4b10-9c42-2bb1242b700d@suse.com>
Date: Tue, 5 May 2026 13:45:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Fix a potential problem in
 xen_e820_resolve_conflicts()
To: Jan Beulich <jbeulich@suse.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org, x86@kernel.org
References: <20260505080653.197775-1-jgross@suse.com>
 <6b241236-ed6d-4ada-beac-8f660bd55185@suse.com>
 <59b953ce-4b51-4a47-8dba-9895dea33d41@suse.com>
 <29422b34-b33f-4a25-838f-de6078151e46@suse.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <29422b34-b33f-4a25-838f-de6078151e46@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------aQ9DkZhYp2ID3woTprv8iofE"
X-purgate-ID: tlsNG-c1860d/1777981521-38D63DB1-33AD83C8/0/0
X-purgate-type: clean
X-purgate-size: 13676

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------aQ9DkZhYp2ID3woTprv8iofE
Content-Type: multipart/mixed; boundary="------------l00BF6gHWOEUiAPRiNCkiIfR";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org, x86@kernel.org
Message-ID: <598d6dfd-da1b-4b10-9c42-2bb1242b700d@suse.com>
Subject: Re: [PATCH] x86/xen: Fix a potential problem in
 xen_e820_resolve_conflicts()
References: <20260505080653.197775-1-jgross@suse.com>
 <6b241236-ed6d-4ada-beac-8f660bd55185@suse.com>
 <59b953ce-4b51-4a47-8dba-9895dea33d41@suse.com>
 <29422b34-b33f-4a25-838f-de6078151e46@suse.com>
In-Reply-To: <29422b34-b33f-4a25-838f-de6078151e46@suse.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------l00BF6gHWOEUiAPRiNCkiIfR
Content-Type: multipart/mixed; boundary="------------0D2AwGlbw3k5al2QDBS9ODDA"

--------------0D2AwGlbw3k5al2QDBS9ODDA
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMDUuMDUuMjYgMTI6MjQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNS4wNS4yMDI2
IDExOjEzLCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4gT24gMDUuMDUuMjYgMTA6NDMsIEph
biBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDA1LjA1LjIwMjYgMTA6MDYsIEp1ZXJnZW4gR3Jv
c3Mgd3JvdGU6DQo+Pj4+IFdoZW4gZml4aW5nIGEgY29uZmxpY3QgaW4geGVuX2U4MjBfcmVz
b2x2ZV9jb25mbGljdHMoKSwgdGhlIGxvb3Agb3Zlcg0KPj4+PiB0aGUgRTgyMCBtYXAgZW50
cmllcyBuZWVkcyB0byBiZSByZXN0YXJ0ZWQsIGFzIHRoZSBFODIwIG1hcCB3aWxsIGhhdmUN
Cj4+Pj4gYmVlbiBtb2RpZmllZCBieSB0aGUgZml4LiBPdGhlcndpc2UgZW50cmllcyBtaWdo
dCBiZSBza2lwcGVkIGJ5DQo+Pj4+IGFjY2lkZW50Lg0KPj4+Pg0KPj4+PiBGaXhlczogYmUz
NWQ5MWM4ODgwICgieGVuOiB0b2xlcmF0ZSBBQ1BJIE5WUyBtZW1vcnkgb3ZlcmxhcHBpbmcg
d2l0aCBYZW4gYWxsb2NhdGVkIG1lbW9yeSIpDQo+Pj4+IFNpZ25lZC1vZmYtYnk6IEp1ZXJn
ZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4+Pg0KPj4+IEZpcnN0LCB3aGlsZSB0cnlp
bmcgdG8gcmV2aWV3IHRoaXMsIGlzbid0IHRoZXJlIGFub3RoZXIgaXNzdWUgaW4NCj4+PiB4
ZW5fZTgyMF9zd2FwX2VudHJ5X3dpdGhfcmFtKCksIGluIHRoYXQNCj4+Pg0KPj4+IAkJCWVu
dHJ5LT5hZGRyID0gZW50cnlfZW5kIC0gc3dhcF9zaXplICsNCj4+PiAJCQkJICAgICAgc3dh
cF9hZGRyIC0gc3dhcF9lbnRyeS0+YWRkcjsNCj4+Pg0KPj4+DQo+Pj4gcmVhbGx5IG1lYW5z
IHRvIGJlDQo+Pj4NCj4+PiAJCQllbnRyeS0+YWRkciA9IGVudHJ5X2VuZCAtIHN3YXBfc2l6
ZSArDQo+Pj4gCQkJCSAgICAgIHN3YXBfZW50cnktPmFkZHIgLSBzd2FwX2FkZHI7DQo+Pj4N
Cj4+PiAoYWZmZWN0aW5nIG5vbi1wYWdlLWFsaWduZWQgRTgyMCBlbnRyaWVzKT8NCj4+DQo+
PiBZZXMsIHlvdSBhcmUgcmlnaHQuDQo+Pg0KPj4+DQo+Pj4gRnVydGhlciwgdGhhdCBmdW5j
dGlvbiBjb252ZXJ0cyBzd2FwX2VudHJ5IHRvIHRoZSBwYWdlLWFsaWduZWQgc3VwZXJzZXQN
Cj4+PiBvZiB0aGUgcGFzc2VkIGluIHJhbmdlLiBIb3cgaXMgaXQgZ3VhcmFudGVlZCB0aGF0
IHRoaXMgbmV3IHJhbmdlIHdvbid0DQo+Pj4gb3ZlcmxhcCB3aXRoIHRoZSBwcmVkZWNlc3Nv
ciBhbmQvb3Igc3VjY2Vzc29yIG9uZT8gV291bGRuJ3QgdGhhdCBuZWVkDQo+Pj4gdG8gYmUg
Y29udmVyc2lvbiB0byB0aGUgcGFnZS1hbGlnbmVkIHN1YnNldCBpbnN0ZWFkPw0KPj4NCj4+
IFRoaXMgaXMgc3VidGxlLiA6LSkNCj4+DQo+PiBXZSBhcmUgY29udmVydGluZyB0byBSQU0g
KHVzYWJsZSksIHNvIHRoZSB0eXBlIHZhbHVlIGlzIDEuIGU4MjBfX3VwZGF0ZV90YWJsZSgp
DQo+PiB3aWxsIGhhbmRsZSBvdmVybGFwcyBqdXN0IGZpbmUsIHdpdGggaGlnaGVyIHR5cGUg
dmFsdWVzICJ3aW5uaW5nIiBhZ2FpbnN0IGxvd2VyDQo+PiBvbmVzLiBTbyBhbnkgb3RoZXIg
cmVnaW9uIG92ZXJsYXBwaW5nIHdpdGggdGhlIG5ldyBSQU0gcmVnaW9uIHdpbGwgcmVzdWx0
IGluDQo+PiBhbm90aGVyIGNvbmZsaWN0IGluIHRoZSBuZXh0IGxvb3AgaXRlcmF0aW9uLg0K
PiANCj4gT2gsIHdvdywgYW5kIHRoaXMgaXMgYSBwcm9wZXJ0eSBvZiB0aGUgZnVuY3Rpb24g
dGhhdCBvbmUgY2FuIHJlbHkgdXBvbj8NCg0KSXQgaXMgZG9jdW1lbnRlZCB0byBiZSBoYW5k
bGVkIHRoaXMgd2F5Lg0KDQo+PiBVc2luZyB0aGUgcGFnZS1hbGlnbmVkIHN1YnNldCB3b3Vs
ZCByZXN1bHQgaW4gcG9zc2libGUgbWVtb3J5IGhvbGVzLCB3aGljaCB3b3VsZA0KPj4gYmUg
cHJvYmxlbWF0aWMgKHRoZSBrZXJuZWwgb3IgcGFnZSB0YWJsZXMgc2hvdWxkbid0IGhhdmUg
aG9sZXMsIGFmdGVyIGFsbCkuDQo+IA0KPiBBcmVuJ3Qgc3VjaCBob2xlcyBub3JtYWwgdG8g
b2NjdXIsIGUuZy4gb24gbWlzYWxpZ25lZCBSQU0vVU5VU0FCTEUNCj4gYm91bmRhcmllcz8N
Cg0KVGhpcyBjYW4gaGFwcGVuLCB5ZXMsIGJ1dCBpdCBzaG91bGQgbm90IGJlIHRoZSBjYXNl
IGluIHRoZSBhcmVhIHdoZXJlIHRoZQ0Ka2VybmVsIGlzIGFjdHVhbGx5IGxvY2F0ZWQuDQoN
Cj4gDQo+Pj4gQW5kIHRoZW4sIGlzIHBhc3NpbmcgdGhlIHBhZ2UtYWxpZ25lZCBzdXBlcnNl
dCB0byB4ZW5fYWRkX3JlbWFwX25vbnJhbSgpDQo+Pj4gcmVhbGx5IGFwcHJvcHJpYXRlPyBX
aHkgd291bGQgYW55IGxlYWRpbmcgb3IgdHJhaWxpbmcgc3BhY2UgdGhlcmUgYmUNCj4+PiBz
dWJqZWN0IHRvIHJlbWFwcGluZz8NCj4+DQo+PiBIb3cgd291bGQgeW91IHdhbnQgdG8gcmVt
YXAgYSBzdWItcGFnZSBwaHlzaWNhbCBtZW1vcnkgYXJlYSB0byBhbm90aGVyIGxvY2F0aW9u
DQo+PiB3aXRob3V0IGFmZmVjdGluZyB0aGUgcmVzdCBvZiB0aGUgcGFnZT8gV2UgYXJlIHJl
d29ya2luZyB0aGUgZmluYWwgcDJtIG1hcCBoZXJlLg0KPiANCj4gV2VsbCwgZmlyc3QgYW5k
IGZvcmVtb3N0OiB4ZW5fYWRkX3JlbWFwX25vbnJhbSgpIHRha2VzIGFuZCBzdG9yZXMgYnl0
ZS0NCj4gZ3JhbnVsYXIgYWRkcmVzc2VzIC8gc2l6ZXMsIHdpdGggdGhlIHNvbGUgcmVxdWly
ZW1lbnQgYmVpbmcgdGhhdCB0aGUNCj4gb2Zmc2V0LWludG8tcGFnZSBiZSBpZGVudGljYWwg
YmV0d2VlbiBib3RoIGFkZHJlc3Nlcy4gVGhhdCBjaGVjayBhbG9uZQ0KPiBhbHJlYWR5IGlu
ZGljYXRlcyB0aGF0IG5vbi1wYWdlLWFsaWduZWQgYWRkcmVzc2VzIGFyZSBleHBlY3RlZCB0
byBiZQ0KPiBwYXNzZWQgaW50byBoZXJlLg0KDQpJJ2Qgc2F5ICJ0b2xlcmF0ZWQiIGluc3Rl
YWQgb2YgImV4cGVjdGVkIi4NCg0KPiBGdXJ0aGVyLCB4ZW5fYWNwaV9vc19pb3JlbWFwKCkg
dXNlcyB0aGUgcmVzdWx0aW5nIHJlbWFwIHRhYmxlLCBhbmQgaXMNCj4gYnl0ZSBncmFudWxh
ci4gV2l0aCB0aGUgcGh5c2ljYWwgYWRkcmVzcyBhZGp1c3RtZW50IHRoZXJlLCBib3RoIG1h
cHBpbmdzDQo+IGNvdWxkICh0aGVvcmV0aWNhbGx5KSBjb2V4aXN0LiBCdXQgdGhlIHByb2Js
ZW0gSSdtIHRyeWluZyB0byBwb2ludCBvdXQNCj4gaXMgdGhhdCBieSBwYXNzaW5nIHRoZSBw
YWdlLWFsaWduZWQgc3VwZXJzZXQgaW50byB4ZW5fYWRkX3JlbWFwX25vbnJhbSgpDQo+IHlv
dSBtaXNndWlkZSB4ZW5fYWNwaV9vc19pb3JlbWFwKCkgKHdoaWxlIGF0IHRoZSBzYW1lIHRp
bWUNCj4geGVuX2RvX3JlbWFwX25vbnJhbSgpIHdpbGwgZG8gc3VpdGFibGUgcm91bmRpbmcg
dG8gcGFnZSBib3VuZGFyaWVzIGV2ZW4NCj4gaWYgZXhhY3QgYWRkcmVzc2VzIHdlcmUgcGFz
c2VkKS4NCg0KQWgsIG9rYXksIG5vdyBJIHVuZGVyc3RhbmQgeW91ciBjb25jZXJuLg0KDQpJ
J20gb24gdGhlIGVkZ2Ugd2hldGhlciBhIGNoYW5nZSBpcyB3YW50ZWQgb3Igbm90LiBUaGUg
Y3VycmVudCBpbXBsZW1lbnRhdGlvbg0KaXMgY29ycmVjdCwgd2hpbGUgSSBhZ3JlZSB0aGF0
IHVzaW5nIG5vbi1wYWdlLWFsaWduZWQgYWRkcmVzc2VzIHNob3VsZCB3b3JrLg0KDQpPVE9I
IHVzaW5nIGEgc3VwZXJzZXQgaXMgZmluZSwgdG9vLiBFc3BlY2lhbGx5IGFzIHRoZSByZW1h
cCBpcyBkb25lIGJhc2VkIG9uDQptZW1vcnkgbWFwIGVudHJpZXMsIHdoaWxlIHRoZSBjYWxs
ZXIgb2YgeGVuX2FjcGlfb3NfaW9yZW1hcCgpIHdpbGwgYWN0IGJhc2VkDQpvbiBBQ1BJIHRh
YmxlIGVudHJpZXMuIEl0IGlzIHBlcmZlY3RseSBmaW5lIHRvIGhhdmUgbXVsdGlwbGUgTlZT
IHJlY29yZHMgaW4NCmFuIGFyZWEgY292ZXJlZCBieSBhIHNpbmdsZSBtZW1vcnkgbWFwIGVu
dHJ5LCBzbyBjYWxsaW5nIHhlbl9hY3BpX29zX2lvcmVtYXAoKQ0Kb25seSBmb3IgYSBwYXJ0
IG9mIGEgcmVtYXAgZW50cnkgaXNuJ3Qgd2VpcmQgYXQgYWxsLg0KDQpTbyB0aGUgaW1wbGVt
ZW50YXRpb24gbmVlZHMgdG8gZW5zdXJlIHRoYXQgYSByZW1hcCBlbnRyeSBpcyBhbGxvd2Vk
IHRvIGJlIGENCnN1cGVyc2V0IG9mIGFuIGFyZWEgbWFwcGVkIHZpYSB4ZW5fYWNwaV9vc19p
b3JlbWFwKCksIHJlc3VsdGluZyBpbiBubyBuZWVkIHRvDQptb2RpZnkgdGhlIGN1cnJlbnQg
Y29kaW5nLg0KDQpBcyB0aGlzIHdob2xlIGhhbmRsaW5nIHdhcyBhZGRlZCB0byBzdXBwb3J0
IGEgdmVyeSByYXJlIGNhc2UsIEknZCByYXRoZXIgbm90DQpyaXNrIHRvIGJyZWFrIHRoYXQg
Y2FzZSBieSBkb2luZyBjb3NtZXRpYyBjaGFuZ2VzLiBPVE9IIEkgd291bGRuJ3QgTkFDSyBh
IHBhdGNoLg0KDQoNCkp1ZXJnZW4NCg==
--------------0D2AwGlbw3k5al2QDBS9ODDA
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------0D2AwGlbw3k5al2QDBS9ODDA--

--------------l00BF6gHWOEUiAPRiNCkiIfR--

--------------aQ9DkZhYp2ID3woTprv8iofE
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmn52FAFAwAAAAAACgkQsN6d1ii/Ey+C
5Qf7BeoIwlyhPgJtPsPgIISl0F7pv4Cfp/RxSj7ne0zughMgRIsC0Zf7HOR43eM3TCk/C3Qc5Jn7
IZXauw7nlHLq+shyBXxODwQXBSWs642WtF0Pne4berrSxtqQOQ7koSg74UQCmi+dIHR49gr2Ehtj
YcwpTXqA/BLMce8Azw31eEJrARrYk67Rcut1rCB2NToCIFgrGCXktlGzW6Cm3nTwvtKncDkD/Saz
4oNdxI4Pmibejes/akJwZL5X6yikWy/F7KmEEaXskIkPqD6LrdSkOb4SzQifAbJ7Ly9Tc99jq9ry
2KMyJSVWJBCV8tDeQiToAKedm/2afLSdAU5j8pGOJA==
=C6Jh
-----END PGP SIGNATURE-----

--------------aQ9DkZhYp2ID3woTprv8iofE--


From xen-devel-bounces@lists.xenproject.org Tue May 05 11:45:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 11:45:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300582.1575109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKEDF-0007Mr-EC; Tue, 05 May 2026 11:45:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300582.1575109; Tue, 05 May 2026 11:45:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKEDF-0007Mk-BI; Tue, 05 May 2026 11:45:17 +0000
Received: by outflank-mailman (input) for mailman id 1300582;
 Tue, 05 May 2026 11:45:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wKEDE-0007Md-4W
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 11:45:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKEDD-004rNG-HL
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 13:45:15 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f9d83c-bab6-0a2a0a5309dd-0a2a4503ccc8-40
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 13:45:15 +0200
Received: from [209.85.208.181] (helo=mail-lj1-f181.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69f9d84b-672d-0a2a45030019-d155d0b5cd45-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 13:45:15 +0200
Received: by mail-lj1-f181.google.com with SMTP id
 38308e7fff4ca-38def541b0bso49207291fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 04:45:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1777981515; cv=none;
        d=google.com; s=arc-20240605;
        b=WvP2+1gDFVPHfD0ibEyxdevfi4lpQ9MqbJaIcfi5zpJNgdismJvVzTPSrGTY0YfVLs
         mLQvgc/w9hk9oyGdSoayC4sYeSlaF1H6Jjlh6yzjvrD9hZ0K2t9Vi5DFW4vqn/u/9Vlm
         y0VIJmd25LPevbfIs58CvkfiVrsp7cpqR0NaVgo1sf122DygOF0q3BYYhuuxdPvYeHlB
         9+JU3AnwjH4oHUr+5y1Q+zcJIBq4BeeIW4vvpuqCTKPwhwZlKagnRoU0IBYUtenx29ls
         ZagnJmP852TdX+ak7eYxHGxhrCcV+30Mv5APXDvbYkaf+yVgwJ734ySn8KgGr6ustXfr
         cYNw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=6zEpHfFqvUI3K5cIq5lmaqZoX68nLN2ySftFfomzcAc=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=f66sOzkDcYbZZx76iQSaKYdtDwkzK/BejluqSJ6zm1JAxkAiqG4e/+HZwSBz9MRgTX
         STbrlLHMQfrnoO7XTaYsGVOs+PcRDQv2t31y5HKgtnARdZoYumyCB/BQuiAEjy6z2voM
         77xMApO72PxIG+q+Y4F9A1DhsRZrWs1BWQ9fhj581zUcyqE9AwOZh6Ypf+ZvBuQ8Mum4
         u5M9M8pTeIBl8KEFbTuI5oO2s+kMl9hGKzvIaw+2wFdcFgcGnkOfEDtSSViJEAEMT5Fs
         Wpw5sP3wWj1Aso0S4KzW76+QJhlfaIwJW+gvo7epotGSZxRRZJffM+SX34SXSrFh7At/
         pBOQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777981515; x=1778586315; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6zEpHfFqvUI3K5cIq5lmaqZoX68nLN2ySftFfomzcAc=;
        b=TbvS1Ulvag5uhqykis3F6VgiWAsvpHjvwVVe81DIZyYM5j213RPqVjNH6XJP+fPe9i
         ABMdN+GQJ4YFlVvq5MbgZrx8XIPG9BaBp3wvxzby53LlSjZnSXx1sA5oOOSzhz0PCdGo
         oUAO0ZEf1J78NlhI2J4vS/hwJHT85qYzJDEJS6Ule3gMuNroRCiArX1j3wXjvN63eeT1
         b10zCcVyJcaPwAWa36nEsroZpqXagiy0URzASm1PvL/zvKQ6nwP20ZnJMouQJSAZBuqA
         2WZkVaXtyByxbs3df607shTtBc68FsvD6nEA7mArjlSIXofHK1swsTULKuY4ZBKFMxbY
         IZSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777981515; x=1778586315;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=6zEpHfFqvUI3K5cIq5lmaqZoX68nLN2ySftFfomzcAc=;
        b=jvYkuiBv9pto670s7kWkTOxp4O00YkpG2NnMoKwSF0QTNSLSLT1uw+oGsn8VMMx51s
         BZYvx0CXZZtm0N1ZU24PFa8U28W94kTsrCBpcFnBmAYn72IoKUfgquWShA4R/58jyu1h
         +l4lq57cq/ZHX/2M5lwu6ces9yjzY4XE+lNT33Wx0Ew9nu1JajAHf49ua0esvJ+c0Y5g
         jEzufqaiyj10DA2THsJXV3qTkx6fXIIwbRAi+oBArwWXzafoSGbe9ibvRlXCI7IriwHD
         VyX/AJ5FkO0BfXYRJr7koCxCp66eoLC9qYuwukHotVhRQcpC+tcAB9j7oHiNQPVN0gTy
         FI7A==
X-Gm-Message-State: AOJu0YyP7fEodNDvOr3SoShgcso2k9N5qgQoV0LihNW7tnWJ5Wkq+ElC
	ozzvnbu3HnogVMKqA61WFfiVYLHlev2dkYzzN+Vtw9MeRyCTBjRfXSBio0fdTqYYLl06f52P64z
	QXaF4TBiBp3IlzWHWf0LeimQ5mhsQug4=
X-Gm-Gg: AeBDies4RC5rz7TO18qYNZY5XHKdCSrGtV5jB9dhP2m7HGNd+PK2jGxF3lS3PZSYk0y
	KvUYv7HRK+dk0lRAs2gTqNrE0Ywa3ip2pg6R85fDD8HC4se0bnNs8DvnQdyWnWWWjZ+2c4KKS41
	yEP+jHW1FoiUZv4aFLRWC3YZhzCHDxRx03IGLd5x8owfkaVUMopFp4XwSt6BxVYFIT+kidpcqLw
	dxDDiMKy4lghnUya6z4Pmzh7cryv/gDHUEwSBD/8OKzllVWGqWE0GZw1KVRvwC5B1XM7DmSsgty
	sxbgvTll7KC3CjOK
X-Received: by 2002:a2e:8a95:0:b0:38e:97b2:4b03 with SMTP id
 38308e7fff4ca-393b4d50fd8mr11285061fa.31.1777981514434; Tue, 05 May 2026
 04:45:14 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <63b219c3cae5201c5db804f69c3b88ac41c9bdf6.1775125380.git.mykola_kvach@epam.com>
 <55B2462D-41E5-42CB-9525-39CF4843E95E@arm.com>
In-Reply-To: <55B2462D-41E5-42CB-9525-39CF4843E95E@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 5 May 2026 14:45:03 +0300
X-Gm-Features: AVHnY4Iiroi7TYFgBdAn9YTSTkXYar6w48U2NFr6DOYwy4ITjdNgysHBdDQJoHw
Message-ID: <CAGeoDV_htcXQ=rsWBbHGcbvwL7E5RKGDy2+p5pRio27dB6J6KA@mail.gmail.com>
Subject: Re: [PATCH v8 08/13] iommu/ipmmu-vmsa: Implement suspend/resume callbacks
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-33051d/1777981515-28776938-3E2D35FC/0/0
X-purgate-type: clean
X-purgate-size: 2991

Hi Luca,

Thank you for the review.

On Fri, Apr 24, 2026 at 4:36=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> > On 2 Apr 2026, at 11:45, Mykola Kvach <xakep.amatop@gmail.com> wrote:
> >
> > From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> >
> > Store and restore active context and micro-TLB registers.
> >
> > Tested on R-Car H3 Starter Kit.
> >
> > Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Changes in V7:
> > - moved suspend context allocation before pci stuff
> > ---
> > xen/drivers/passthrough/arm/ipmmu-vmsa.c | 305 ++++++++++++++++++++++-
> > 1 file changed, 298 insertions(+), 7 deletions(-)
> >
> > diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/pas=
sthrough/arm/ipmmu-vmsa.c
> > index ea9fa9ddf3..6765bd3083 100644
> > --- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> > +++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> > @@ -71,6 +71,8 @@
> > })
> > #endif
> >
> > +#define dev_dbg(dev, fmt, ...)    \
> > +    dev_print(dev, XENLOG_DEBUG, fmt, ## __VA_ARGS__)
> > #define dev_info(dev, fmt, ...)    \
> >     dev_print(dev, XENLOG_INFO, fmt, ## __VA_ARGS__)
> > #define dev_warn(dev, fmt, ...)    \
> > @@ -130,6 +132,24 @@ struct ipmmu_features {
> >     unsigned int imuctr_ttsel_mask;
> > };
> >
>
>
> > [=E2=80=A6]
>
>
> >
> > @@ -1340,10 +1608,11 @@ static int ipmmu_add_device(u8 devfn, struct de=
vice *dev)
> >     struct iommu_fwspec *fwspec;
> >
> > #ifdef CONFIG_HAS_PCI
> > +    int ret;
> > +
> >     if ( dev_is_pci(dev) )
> >     {
> >         struct pci_dev *pdev =3D dev_to_pci(dev);
> > -        int ret;
> >
> >         if ( devfn !=3D pdev->devfn )
> >             return 0;
> > @@ -1371,6 +1640,15 @@ static int ipmmu_add_device(u8 devfn, struct dev=
ice *dev)
> >         /* Let Xen know that the master device is protected by an IOMMU=
. */
> >         dt_device_set_protected(dev_to_dt(dev));
> >     }
> > +
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +    if ( ipmmu_alloc_ctx_suspend(dev) )
> > +    {
> > +        dev_err(dev, "Failed to allocate context for suspend\n");
> > +        return -ENOMEM;
> > +    }
> > +#endif
>
> If this fails the device will remain protected, I suggest we move this on=
e before `if ( !dev_is_pci(dev) ) { =E2=80=A6 }`
> block

Good point, thanks.

Yes, this should be fixed. In the original ordering, a failure in
ipmmu_alloc_ctx_suspend() could leave a non-PCI DT device marked as
protected even though ipmmu_add_device() returned an error.

I'll reorder the code so dt_device_set_protected() is done only
after ipmmu_alloc_ctx_suspend() succeeds. This keeps the successful path
unchanged and avoids leaving stale protected state on failure.

Best regards,
Mykola

>
> The rest looks ok to me, but I=E2=80=99m not an expert of this part.
>
> Cheers,
> Luca
>


From xen-devel-bounces@lists.xenproject.org Tue May 05 11:47:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 11:47:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300598.1575128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKEEy-0008Jh-VA; Tue, 05 May 2026 11:47:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300598.1575128; Tue, 05 May 2026 11:47:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKEEy-0008Ja-SL; Tue, 05 May 2026 11:47:04 +0000
Received: by outflank-mailman (input) for mailman id 1300598;
 Tue, 05 May 2026 11:47:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wKEEw-0008JS-QK
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 11:47:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKEEw-005qYl-6f
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 13:47:02 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f9d8b2-2eae-0a2a0a5409dd-0a2a450c8522-10
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 13:47:01 +0200
Received: from [52.101.48.11]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f9d8b3-62f1-0a2a450c0019-3465300b96d9-4
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 13:47:01 +0200
Received: from MN2PR15CA0060.namprd15.prod.outlook.com (2603:10b6:208:237::29)
 by IA0PR12MB8351.namprd12.prod.outlook.com (2603:10b6:208:40e::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 11:46:54 +0000
Received: from BL6PEPF0001AB58.namprd02.prod.outlook.com
 (2603:10b6:208:237:cafe::2) by MN2PR15CA0060.outlook.office365.com
 (2603:10b6:208:237::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.25 via Frontend Transport; Tue,
 5 May 2026 11:46:54 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL6PEPF0001AB58.mail.protection.outlook.com (10.167.241.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Tue, 5 May 2026 11:46:54 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 5 May
 2026 06:46:54 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 5 May 2026 06:46:52 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nRPrrMZ9mGLwhvRkl4s9QwxlzZQ4xwaqpMREsu2NUsr8pe9vg7bA3tRvgyhXXepZZOgAV2TdI07gbty7XXR5pWlmGLP0bdN/j3ItcrIMdGADWvKoM7uw2x8ILwXv0AKsHoXcF7k3N0qeaPLG8AehtdY00hWkUbebZWrtvesktleQyrdspwhwscIbKaRdHG0vuQqQHg1TVpg2HQjTe5qdjDdwWvvYDiYfbhpS7dYAgRPlMnEPpQot5TOVkCQ0Lls6DxTR1KJVCnkI87xIo1/VmM2ZihZKY2NF85L/5RQNAYD2bRzzus9Q8FxFcDPCvuwlSm4j95gbP1OaSkIKiWVY9w==
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=YO/hqEQGDYCvI78Tkm89eNsspf+JFbvgz/tUt2AzHtA=;
 b=fsP9WwRMrBKtDAPVGSM/90M5+xnqmqhS+UqoEuDcYYMB3qVkFGU1RHBOpsT5RfdSvPDJGPEnLi4KnnY8axQOH/mqTbkS3WEoOjTLukXosbLUPsfKZ4bWZqjsaKzgLTUzL5YI06PV8zeZqJF3vOWsWISSwLxTpCCwk07lJx8TMn/BRqwuP0Wc4rN4fyg+t1ExR6zAqETFR0xae5/9Cj2sXpO5DjVD4+70xvpTEMPqwoGA3khL88VA+M1BubtN1BG6utxQrocwk3/vY3v+nQW9z8SC+KiyyVRGEprKBxfVGfIInqXVvgdGjdH04TOR5STd3bIAGDZQ3mQ6JYG4fdmf7w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YO/hqEQGDYCvI78Tkm89eNsspf+JFbvgz/tUt2AzHtA=;
 b=HkM4LgYhy3hDCdXBh20PDnSQRJ8av27AhonKipOSkqp9Olc9MY6uVRlnB8yynnoX1hz6j6ugu39oJC4SxWkUsuv4HzSxdbcsMW5tVuO8buI+40EA4EJCgrt+u7FAmwJI1pXmVgDPB1pY9qUw/Vh/kMXwHFycd+zi2QeAW6A3x5Q=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <e8218607-26d8-4517-8634-df3c365e5bb2@amd.com>
Date: Tue, 5 May 2026 13:46:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
To: Jan Beulich <jbeulich@suse.com>
CC: <xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Timothy Pearson
	<tpearson@raptorengineering.com>, Teddy Astie <teddy.astie@vates.tech>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
 <afi7HUFoDYabM9VV@macbook.local>
 <65ecf1c0-0844-4ba9-a250-a94aeaf4d251@amd.com>
 <afmYf-ldUxWQXRDL@macbook.local>
 <309b2ff6-c200-47d0-be3f-ec289df641c6@amd.com>
 <0a3583df-2682-426e-a704-aa8711caec0d@suse.com>
 <a90db340-e569-4f77-b5df-dd1a1504f8cf@amd.com>
 <0267eb6f-1161-45b7-8905-d7aecb78e74c@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0267eb6f-1161-45b7-8905-d7aecb78e74c@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB58:EE_|IA0PR12MB8351:EE_
X-MS-Office365-Filtering-Correlation-Id: 0759fbfa-dd39-44f9-da28-08deaa9c011f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|82310400026|376014|36860700016|1800799024|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	zXqEhFeSDE0pSlhxg+v4merHA6HiWVWmwwRlUawvNujPsrqLl3bkqMoOSde8MyQqBcCaPx8MLriVYRQ9RNUJfKZxsHHVcECsMenJtay6TdOcbsM4MpFo1uU6BNgaAYf+J3Q+RmugaS0DWD+wTgWYUYdbAB0zAOMNZ/5Zoiw3mqYri44MtgAmw1tRFC7XSN3jPNZRslRgDPf7m6t2LlPFu6pdSwE6gCj7NOAE5VbtPb6LzmPVw1UhDBTaDRZcTMnTe44gTfv0A/EoUOeTsmWIUAxqUaFyjsPyf5k+vUzsDEKaz7N5h1F2nkK48pSe6IO0yyAfLdxnm/DqMFapQ5bwf4pYXO0GjeEja301QqGf0ZjCt3kbfxUAJJq5ONGST44X6vDz0eBTz7aygd3/um7uUFQySrkr7Ls0vZ77TR4G7QTFvDJT5N0trUfWsxGULjj7HeP67U8nq2TZGhvR5t7RdmXcfsjHvEEXx4ZvZ+KnrK/obBHL3mcf+gtXTMe+fhnl1PcpLE6MROLwoANlSNbRL5fu96YmSbI8WUg4JxaiuIzI86OKdg3FLINyNmcWqNi/kWTUFHIRCrXBB9QYF8fVrUD3NH7M97UdE2Pl2NaI+h++FItntRI/jZbZnBQlQ1eTmyU4FhgzG0tkRBLbVmsC7t6rUVCbWFoh+YHFfxhjQ7YElk+3CsZxqt2XLvZLp9MDUy6rIGDs01jeOtcVv1pe7+QERT3SUApiezRH8pP3YwA=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(82310400026)(376014)(36860700016)(1800799024)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	NEADBj4SswHw2YTu9cF1Rr6N9dOQttO7UALkr0vvLNuPv5R0MCrtOk8nmoXgY166U6CTSdo4bnyyDD7pFi8oAedrYyTNAn13ejyuN80nqx2t7ZmMxgdbIBkgxHTPzzOMu6qBzN8/+e9v7B1HFishBgEDYUYghIlkKzzHCXZaCx1jVVAgV4EsFic3PJeR9A088IbSGgbXcm0qw6rLj+H4E+pZeX7ghJttGbFpvbicWCW/Mbc4sPZ4lOPUt+afwNc2ac5BimYf5dvj/ZbPegIOITMHdqNZQqtkp0G9HsPASLowXA9zDWS6sU34YQgtgX120FY2cIhqBKqkEBtoaHhKFO10vLFivTckeGUJg6W0ntsFRgnjl9BUXL77HaDqU5DSi2bUeMHbI2LxnHPD9+GR34W6cZD96MqG1GDt7k4wWawJdhoEH/QtyN2zEh/+l8iL
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 11:46:54.3320
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0759fbfa-dd39-44f9-da28-08deaa9c011f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB58.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8351
X-purgate-ID: tlsNG-d25034/1777981621-F5A00CF5-AAFF3C35/0/0
X-purgate-type: clean
X-purgate-size: 3693



On 05-May-26 12:49, Jan Beulich wrote:
> On 05.05.2026 12:46, Orzel, Michal wrote:
>> On 05-May-26 12:40, Jan Beulich wrote:
>>> On 05.05.2026 09:35, Orzel, Michal wrote:
>>>> On 05-May-26 09:13, Roger Pau Monné wrote:
>>>>> On Tue, May 05, 2026 at 08:48:15AM +0200, Orzel, Michal wrote:
>>>>>> On 04-May-26 17:28, Roger Pau Monné wrote:
>>>>>>> On Thu, Apr 30, 2026 at 02:51:02PM +0200, Michal Orzel wrote:
>>>>>>>> The generic pdx_to_page() and page_to_pdx() macros in xen/pdx.h assume
>>>>>>>> the frame table starts at PDX 0, which is only true on x86. ARM
>>>>>>>> uses a non-zero frametable_base_pdx to offset into the frame table (PPC also
>>>>>>>> defines it).
>>>>>>>>
>>>>>>>> Fix the generic macros to subtract/add frametable_base_pdx, defaulting
>>>>>>>> to 0 when the arch does not define it. This makes the generic macros
>>>>>>>> correct for all architectures, even though they are only used on x86
>>>>>>>> today.
>>>>>>>
>>>>>>> Hm, I assume this offset was added because the original mask PDX
>>>>>>> compression won't (usually) compress the gap between 0 and the start
>>>>>>> of RAM.  However the newish offset PDX compression should be able to
>>>>>>> compress from 0 to start of RAM, and hence you don't need to apply
>>>>>>> an extra PDX offset there?
>>>>>>>
>>>>>>> If that's indeed the case it might be better to integrate
>>>>>>> frametable_base_pdx into the mask compression algorithm itself, so
>>>>>>> that on some arches it's a mask plus a decrease.
>>>>>> The offset is needed regardless of whether compression is used. With
>>>>>> CONFIG_PDX_NONE (no compression, PDX == MFN), if RAM starts at e.g.
>>>>>> 0x80000000, the first valid PDX is 0x80000.
>>>>>
>>>>> OK, so you are doing some (kind of) address space compression (removing
>>>>> the leading empty range to the first RAM region) even when PDX is
>>>>> disabled.
>>>>>
>>>>>> Without frametable_base_pdx
>>>>>> the frame table would have to be indexed from 0, wasting
>>>>>> 0x80000 * sizeof(page_info) of memory just to cover the hole before RAM.
>>>>>
>>>>> But you don't really "waste" memory, just address space?  Oh, maybe
>>>>> not on ARM as it doesn't use pdx_group_valid?  And so you
>>>>> unconditionally populate the frametable from PDX 0 to max PDX.
>>>> With pdx_group_valid (which this series adds) we wouldn't waste
>>>> physical memory for the leading gap. But we'd still waste virtual address
>>>> space and the FRAMETABLE_NR check (max_pdx > FRAMETABLE_NR) becomes tighter
>>>> because the full range from PDX 0 must fit. For example with RAM starting at 5TB
>>>> the virtual offset before the first usable entry would be ~70GB — more than the
>>>> entire 32GB FRAMETABLE_SIZE on ARM64.
>>>
>>> Yet still - this is exactly one of the situations offset compression means
>>> to cover. I'm entirely with Roger as to it being undesirable to build a
>>> special case variant of "offset compression" into "no compression".
>> In this case, if you don't want to generalize the macros, how should we proceed
>> on Arm if we still need the offset to cover the PDX_NONE variant that we also
>> use? In v1 I just created a local override but Julien wanted to generalize the
>> macros instead. The discussion about switching the default on Arm from mask to
>> offset that is not even selectable on Arm needs to wait for the new release cycle.
> 
> I'm not convinced of that. If you need offset by default, why not enable it by
> default (right now, and potentially even as a backport if there's any bug that
> is being fixed)?
As said before, we also need offset when using just PDX grouping and no compression.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue May 05 12:05:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 12:05:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300616.1575150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKEWz-0003Bq-O7; Tue, 05 May 2026 12:05:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300616.1575150; Tue, 05 May 2026 12:05:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKEWz-0003Bj-Jc; Tue, 05 May 2026 12:05:41 +0000
Received: by outflank-mailman (input) for mailman id 1300616;
 Tue, 05 May 2026 12:05:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wKEWy-0003Bd-QU
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:05:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKEWx-005vM1-Kz
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 14:05:39 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f9dd0f-2eae-0a2a0a5409dd-0a2a450c8aaa-18
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 14:05:39 +0200
Received: from [52.101.43.27]
 (helo=SJ2PR03CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69f9dd0f-62f1-0a2a450c0019-34652b1b576d-4
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 14:05:38 +0200
Received: from SN7PR04CA0187.namprd04.prod.outlook.com (2603:10b6:806:126::12)
 by MN0PR12MB6031.namprd12.prod.outlook.com (2603:10b6:208:3cd::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 12:05:32 +0000
Received: from SN1PEPF000397B0.namprd05.prod.outlook.com
 (2603:10b6:806:126:cafe::9e) by SN7PR04CA0187.outlook.office365.com
 (2603:10b6:806:126::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.25 via Frontend Transport; Tue,
 5 May 2026 12:05:32 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SN1PEPF000397B0.mail.protection.outlook.com (10.167.248.54) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Tue, 5 May 2026 12:05:31 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Tue, 5 May
 2026 07:05:31 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 5 May
 2026 07:05:31 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 5 May 2026 07:05:29 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CKo/fRfXwmPSo7mXghDEEgYPu6Or2DbszOeVDiIWXWh1/kgcNMmnq/BMCJxnFllEiVUyRx+lbzEbRp8y+s6Sp+mndxhyEcwVyJTIbN4Q7pPZl70W0FD1uB40N/5sz7N24Jhs3xZ33clB9TKorX7N1wV5JIUDxrjtrj7sqhVEAJQQ5xETilaGaAYaxFh7cuLNuHAQE26JYrWbgiLLiGTLpRw3f3aSSsyqdlios9eqnRUEiHirKC5l8MCOX90P/wfFIeSEHl8DhU+ElEUP163zLKu52oNnXnFc8WjiM2BM6TuqkLhxGfuy5k60IFaCHZg4SEOxCV9/TQ2vndlHPGt8rA==
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=F1wjyIEW03DCcuHQQRebCMd7gpjUDK0w5BpKWUMVNxY=;
 b=LyKSTYtzZw6K1HWZmUY1zYH6JPABiQOnqDdwLR9dRKYZ9TYZ31NZLVNI+Reg4t+EGxjRo7W2VVB4pKKw1XhMZSB/p2Hk69i6wRD6u7g0K+oiSm+sgZ3psvtdZsykZ1Oq28g8y+WONN2QJ+y7vqGpiNvHir63FYg6Q3bHJUhf23N4+mJ60uoJKIF95mm2bkNg8+igmpcgC6KxXTGfa9gI18G8AvArp8Zkr5LpWnKzhFPyXoYAbMQcaBYiO9F159KhcvE4dan81U+DGzRSZ/v8xi4lhcCNZj2zw1oEDpAaV3txSPAf81jM5Z1gro81BQ1Rha/XjSmLznCHQRXtBhIucg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=F1wjyIEW03DCcuHQQRebCMd7gpjUDK0w5BpKWUMVNxY=;
 b=w+6fnbc2mT13C7KZ2Bx39HXUBDeuTxBcWvxbjd/x8VXbAVCHVdBAdeHsyjsGfBbt4HoVrfuhRc8jI1BXABF+3yqrqb7C1Ar1KxNwnVd0r+fXM7mYVZxHGlv2dvf3PHS4YyBQ5kK42o9sA5O+RKIFXjOpuK/oo1g7SbZf16pwBa0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <177a399e-b5f3-4f5e-9011-c77978bc6acc@amd.com>
Date: Tue, 5 May 2026 14:05:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/3] arm/mpu: Implement p2m tables
To: Luca Fancellu <luca.fancellu@arm.com>, <xen-devel@lists.xenproject.org>
CC: Harry Ramsey <harry.ramsey@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20260420142224.1802911-1-luca.fancellu@arm.com>
 <20260420142224.1802911-4-luca.fancellu@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260420142224.1802911-4-luca.fancellu@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF000397B0:EE_|MN0PR12MB6031:EE_
X-MS-Office365-Filtering-Correlation-Id: 8db6145c-ae75-4e2e-8c91-08deaa9e9b41
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700016|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	+ykKu3OGEpATGM2OLPqxqRQwCHTgC7wUCAPlkq+b8yNwntGqsO+t4UAW9KlmZ8c0Kq1RIbZkKOwrGnkr+pLe89zTODOHFrTD+vXx3NtK465gi7OsVKuKJ5+FzlVJQumwfwBmbMT4jmYHAihgEogA/mu9KCd7qvxHNJ4p7msoGeOxSIbsstxkFn7SvxgMVJWJegBIy0HKwi5eiHsaDbWG6mu4VIce09Lr+mHoKoe3fTnLCd9Qs6b5iZ4fGhUt1gXsqTVP8SA1vNToIRXqJaSSpCK7E9BqllnhjMO5qVPR2KVIu85vKLsPLUTToOZRDB2gQ/bsili4iZ8jyGq/hANmxzdeHF6FJCoQDcd4Z5kP2hkOYrMi42kqjwCZcb3x6ytrNqtlmYmvVhZzx07A8kWo/U5sfRDAPObB2XosYheoRfWfzGKZJobNdy0+YYt06h0EY9XfIVGNx4Fpg2lKaWf8AfB4UzvorncayY9QrRpIJf9sBn8SbP7yhkvKY6p7KJKCeDbMZYypeeQxsIAj33OY3IqVmyLvXawTjUKm3E5/7YUo9liXiihkeUTZADndFAIQxPj5QP8oh9/HMcolgyPY4xbIWFl6frcdjpsyj1C/gchTZg+fuMVHLLdW9QbmlAWwYSgT0xecQpNeWAqPpPWRvevzC8ysA/UqVGuItgvHaI5Ll+WsDCq26PDlCE1GjRHUtaL2/xett3awbJKzUYEuC7MeJsRZ8VugdFXBDwUxwOw=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700016)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	LUeI3dNZApWS6lTqw1D1VT5Wd00E428VKhvgcQMaC440uu1ClqhfiusAsu4J3Ks39qkHzwXiHIfiI8CXRAcTZA/LABVRa1SU5sB3L3u5Y/5ZdugsdM4gZZSCY//J57T+F9fQ6gWKo/Yy8ze9nDkmRhdKBR2vRvdr40e7USB+QW2e6MZDVZKmarqFnoisRuFIZqHzeMJrubnxzrr0xL+wkEDDsLHzZEDY+Q7TyOeHPjCKLk+rux9poaM757D14xUsNXhbClP5HtCQ43U+6Oe+UA3pBJ+UfMamKCll6Dv9qy/PbdNcsaEZxXF42ICAJurq+yOQ+SjVtttSAI61px3rs6TOg0jOLOapAqyC+90eskCBDB/4lKnJS1ccrOZr3R8A4VTSa54R1pEkgVbKNyyBHk06cZ27x60cc/j9tU/LnP+vS1G22Kj+BFqu05bNzQSv
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 12:05:31.8854
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8db6145c-ae75-4e2e-8c91-08deaa9e9b41
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF000397B0.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6031
X-purgate-ID: tlsNG-d25034/1777982739-F600DCF5-1DA359C9/0/0
X-purgate-type: clean
X-purgate-size: 6652



On 20-Apr-26 16:22, Luca Fancellu wrote:
> From: Harry Ramsey <harry.ramsey@arm.com>
> 
> Implement `p2m_alloc_table`, `p2m_init` and `p2m_final_teardown` for MPU
> systems.
> 
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> v4:
>  - no changes
> v3:
> - Check for alloc_xenheap_pages allocation
> - Clear additional page allocated for ARM64
> - Add check for INVALID_VCPU_ID
> - Remove unnecessary function generate_vsctlr
> - Code formatting fixes
> ---
>  xen/arch/arm/include/asm/arm32/mpu.h |  2 +
>  xen/arch/arm/include/asm/arm64/mpu.h |  2 +
>  xen/arch/arm/include/asm/mpu/p2m.h   | 12 +++++
>  xen/arch/arm/include/asm/p2m.h       |  5 ++
>  xen/arch/arm/mpu/p2m.c               | 78 ++++++++++++++++++++++++++--
>  5 files changed, 96 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
> index 2cf0f8cbacae..d565230f84ee 100644
> --- a/xen/arch/arm/include/asm/arm32/mpu.h
> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
> @@ -11,6 +11,8 @@
>   */
>  #define MPU_REGION_RES0       0x0
>  
> +#define VSCTLR_VMID_SHIFT     16
> +
>  /* Hypervisor Protection Region Base Address Register */
>  typedef union {
>      struct {
> diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
> index 4f694190a8a3..8b86a03fee44 100644
> --- a/xen/arch/arm/include/asm/arm64/mpu.h
> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
> @@ -7,6 +7,8 @@
>  
>  #define MPU_REGION_RES0        (0xFFFFULL << 48)
>  
> +#define VSCTLR_VMID_SHIFT      48
> +
>  /* Protection Region Base Address Register */
>  typedef union {
>      struct __packed {
> diff --git a/xen/arch/arm/include/asm/mpu/p2m.h b/xen/arch/arm/include/asm/mpu/p2m.h
> index e46d9e757a1d..39fc0c944916 100644
> --- a/xen/arch/arm/include/asm/mpu/p2m.h
> +++ b/xen/arch/arm/include/asm/mpu/p2m.h
> @@ -3,8 +3,20 @@
>  #ifndef __ARM_MPU_P2M_H__
>  #define __ARM_MPU_P2M_H__
>  
> +#include <xen/bitops.h>
> +#include <xen/macros.h>
> +#include <xen/page-size.h>
> +
>  struct p2m_domain;
>  
> +/*
> + * The architecture allows at most 255 EL2 MPU memory regions. The size of the
> + * MPU structure entry (pr_t) is 32 Bytes on AArch64 (requiring two 4KB pages)
> + * and 16 bytes on AArch32 (requiring one 4KB page).
This comment may go stale if we add something to pr_t. I don't think it's super
useful.

> + */
> +#define P2M_ROOT_PAGES DIV_ROUND_UP(255 * sizeof(pr_t), PAGE_SIZE)
Please don't opencode max number of regions. Instead use MAX_MPU_REGION_NR

> +#define P2M_ROOT_ORDER get_count_order(P2M_ROOT_PAGES)
> +
>  static inline void p2m_clear_root_pages(struct p2m_domain *p2m) {}
>  
>  static inline void p2m_tlb_flush_sync(struct p2m_domain *p2m) {}
> diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
> index 010ce8c9ebbd..ed1b6dd40f40 100644
> --- a/xen/arch/arm/include/asm/p2m.h
> +++ b/xen/arch/arm/include/asm/p2m.h
> @@ -48,8 +48,13 @@ struct p2m_domain {
>      /* Current VMID in use */
>      uint16_t vmid;
>  
> +#ifdef CONFIG_MMU
>      /* Current Translation Table Base Register for the p2m */
>      uint64_t vttbr;
> +#else
> +    /* Current Virtualization System Control Register for the p2m */
> +    register_t vsctlr;
> +#endif
>  
>      /* Highest guest frame that's ever been mapped in the p2m */
>      gfn_t max_mapped_gfn;
> diff --git a/xen/arch/arm/mpu/p2m.c b/xen/arch/arm/mpu/p2m.c
> index f7fb58ab6aa8..ec8f630acd90 100644
> --- a/xen/arch/arm/mpu/p2m.c
> +++ b/xen/arch/arm/mpu/p2m.c
> @@ -28,10 +28,69 @@ void p2m_dump_info(struct domain *d)
>      BUG_ON("unimplemented");
>  }
>  
> +static int p2m_alloc_table(struct domain *d)
> +{
> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
> +    void *table = alloc_xenheap_pages(P2M_ROOT_ORDER, 0);
> +
> +    if ( !table )
> +    {
> +        printk(XENLOG_G_ERR "%pd: p2m: unable to allocate P2M MPU mapping table\n",
> +               d);
> +        return -ENOMEM;
> +    }
> +
> +    p2m->root = virt_to_page(table);
> +
> +    for (int i = 0; i < P2M_ROOT_PAGES; i++)
unsigned int and we usually declare it at the top
Also, missing spaces around brackets

> +        clear_page(page_to_virt(p2m->root + i));
Instead of the conversion, you should use table here which is already a VA.

> +
> +    return 0;
> +}
> +
>  int p2m_init(struct domain *d)
>  {
> -    BUG_ON("unimplemented");
> -    return -EINVAL;
> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
> +    int rc = 0;
> +    unsigned int cpu;
> +
> +    rwlock_init(&p2m->lock);
> +
> +    p2m->vmid = INVALID_VMID;
> +    p2m->max_mapped_gfn = _gfn(0);
> +    p2m->lowest_mapped_gfn = _gfn(ULONG_MAX);
> +
> +    p2m->default_access = p2m_access_rwx;
> +    /* mem_access is NOT supported in MPU system. */
> +    p2m->mem_access_enabled = false;
> +
> +    /* Ensure that the type chosen is large enough for MAX_VIRT_CPUS. */
> +    BUILD_BUG_ON((1 << (sizeof(p2m->last_vcpu_ran[0]) * 8)) < MAX_VIRT_CPUS);
> +    BUILD_BUG_ON((1 << (sizeof(p2m->last_vcpu_ran[0]) * 8)) < INVALID_VCPU_ID);
> +
> +    for_each_possible_cpu(cpu)
> +        p2m->last_vcpu_ran[cpu] = INVALID_VCPU_ID;
> +
> +    /*
> +     * "Trivial" initialization is now complete. Set the backpointer so that
> +     * p2m_teardown() and related functions know to do something.
> +     */
> +    p2m->domain = d;
> +
> +    rc = p2m_alloc_vmid(d);
> +    if ( rc )
> +        return rc;
> +
> +    p2m->vsctlr = ((register_t)p2m->vmid << VSCTLR_VMID_SHIFT);
> +
> +    rc = p2m_alloc_table(d);
> +    if ( rc )
> +    {
> +        p2m_free_vmid(d);
You should not free it because you risk double free given that it is also freed
in p2m_final_teardown. That's why on MMU we don't do it.

> +        return rc;
> +    }
> +
> +    return 0;
>  }
>  
>  void p2m_save_state(struct vcpu *p)
> @@ -46,7 +105,20 @@ void p2m_restore_state(struct vcpu *n)
>  
>  void p2m_final_teardown(struct domain *d)
>  {
> -    BUG_ON("unimplemented");
> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
> +
> +    /* p2m not actually initialized */
> +    if ( !p2m->domain )
> +        return;
> +
> +    if ( p2m->root )
> +        free_xenheap_pages(page_to_virt(p2m->root), P2M_ROOT_ORDER);
> +
> +    p2m->root = NULL;
> +
> +    p2m_free_vmid(d);
> +
> +    p2m->domain = NULL;
>  }
>  
>  bool p2m_resolve_translation_fault(struct domain *d, gfn_t gfn)

~Michal



From xen-devel-bounces@lists.xenproject.org Tue May 05 12:16:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 12:16:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300625.1575158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKEh1-0004zy-KX; Tue, 05 May 2026 12:16:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300625.1575158; Tue, 05 May 2026 12:16:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKEh1-0004zr-Gx; Tue, 05 May 2026 12:16:03 +0000
Received: by outflank-mailman (input) for mailman id 1300625;
 Tue, 05 May 2026 12:16:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKEh0-0004zk-6m
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:16:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKEgz-00CMQV-4x
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 14:16:01 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f9df7d-e002-0a2a0a5209dd-0a2a45059c1a-8
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 14:16:00 +0200
Received: from [52.101.61.19]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f9df7f-aaa8-0a2a45050019-34653d132d89-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 14:16:00 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB5903.namprd03.prod.outlook.com (2603:10b6:a03:2d7::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.21; Tue, 5 May
 2026 12:15:56 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Tue, 5 May 2026
 12:15:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=M1ZyxGCYPjeTFQiK0CbLeyP+bM5+XACrDWzxu6GIYrF5KSmvCI8A8VqZ5wU3QWecHTsMhkjfPrRfucSHY3qlmwawKHJUcgE8m2SoOHQJnetTu/yqEFqRTpB5KCpyRsy7aTA+vIbjDPdwGSMTsdn9iDbxylLJ52OkAbc8uM9LNjxIHWhaX/8tVCeimI6pfQF3B9ptWQsViOe92vkZA9ttqk64duhuqHGUWcqcro+gBnuqBK1ruNjqVWwFNfwm2j0K1oPWb4+Ii69ctXty0TWIkXBeJ9H9jahk7/qlE2izlSUWirmw5VpPE8mrwvhG8OqYH0yllB3F9iHJNY0W0RU9kw==
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=uv2wb2TwkK+ZRxju/yzHigVcUCk0vEUazwDlDeMuXHs=;
 b=Fvgzo50a6ZKx1sn5XiN4kNmEixpF/j9MQhl1pJYhq7IEYXI1wwVtqE1JWd39WlNLNX8czlz1CtyTCxqqPm20MEo0alP9nhfDYYkizTFTknR+mHx3JruV41Ahpz6qItNGqN2tcn2VbatOgSlkqoX2/9pVvDVPrOZaXd/fPGwpHHueP71wd9akov5aUG3aZbppi+aAgK1rOBuBGNuof4ErCg0fZJp7adp3TbbHwFLEctT62PUPkcdUQT3fXxq9OQdF5ncuRg2rRH/x42e557Zo1QTXZphqlwFlzebEr9/Wn4GlYWzXPYmNukr4p6TE43RJCApJqL0QiGAyCtGTx1FKxQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uv2wb2TwkK+ZRxju/yzHigVcUCk0vEUazwDlDeMuXHs=;
 b=QHtJ9eJim37GJqOBZLiqzsSOFnFp9877sRBJzbiZ8TkMr+W3GCPWdF3k6RYfWN2Yjm4A+SnuBwDYFrE44/EVLDEJJbi3YnlTqUutDoYO2vQ2gYVdVXqf63HV/ooVW+4dHnSwSoiwPG20wnWt0xGNdX2DV3jLtxLUe6Mdo3iKpUk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 5 May 2026 14:15:52 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
Message-ID: <afnfeLeYypvBiEze@macbook.local>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
 <afi7HUFoDYabM9VV@macbook.local>
 <65ecf1c0-0844-4ba9-a250-a94aeaf4d251@amd.com>
 <afmYf-ldUxWQXRDL@macbook.local>
 <309b2ff6-c200-47d0-be3f-ec289df641c6@amd.com>
 <0a3583df-2682-426e-a704-aa8711caec0d@suse.com>
 <a90db340-e569-4f77-b5df-dd1a1504f8cf@amd.com>
 <0267eb6f-1161-45b7-8905-d7aecb78e74c@suse.com>
 <e8218607-26d8-4517-8634-df3c365e5bb2@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <e8218607-26d8-4517-8634-df3c365e5bb2@amd.com>
X-ClientProxiedBy: MR1P264CA0012.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB5903:EE_
X-MS-Office365-Filtering-Correlation-Id: c2b3fce2-5db8-4d9a-8d87-08deaaa00f4e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|7416014|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	L60RVxQmAHDTo8WoMF76E5KvtyNeqyosrkhrK0lq513E4OXjOXk3cKE3YZSpjtn5GaYlg9kTrbC9/JZaJ9ttY2UREKNLyuqDJyjAHH0HIXORb65j0nx1dYo1rr0/OtBIc6wzJM1z3zoUkXwuae9YyoJerYTAPSjhApTC28xKx4UGos06iYFyS9x/X1RsXY/JDWLjVdCvMqaX48R/uOJHzjLl4HzPWlN3A+xCU/0p+XiZy0cgsdynwyPz8HFCDQLoeFtfRGKeYdtp/BIjASnEGKf3KDYn9P8iqGC6HdCr6/urGXF7CagyMPDNjK4iKMfJ7hKbVO0dUZOScEvYfREZKePMsANdh5TQyqrQUy5PK6nVtIZa3uDFus+yHxIOQeVsDjMPBHXPreRtt6BOCSGuTTzTMRlFn9HB201cKE7W3NrmWgoPZjBvblRowwckb2RWaYrnSt3MlZ0U9mqayZ9mioTrF99tez07rnSpI3R8N5Dh20GFndn5jz8KJ2Bw+0Lu6gZ/UEUP7taTpwxtp+MiZ+qVMIyzZ2fW7N8FrHJoiQaV8J+VYi2l4UtSXDc//DLnoCnO78kfEAc9My5TLPAbImEwcnsfn4r0GLChfY5f8FPNXoIG7L5lJE3un4StNmvmByaLIjm9ZxDPIu2RBY2pG0Iih/nnFMdqcRvjYD5ncNeHxkQVlRl0YiRmtgx7QGk/
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OWJkYkw2VFdFVTQ5c0U1eHdVaG1kejBXY2lad3ZxUlJnVlR3MUFUcHhON01O?=
 =?utf-8?B?Q0p3N1J1MXkwakpRaVh0d2YreVNSUFZ3MDdMeXNrellhVTdWdHJCRTduaGZa?=
 =?utf-8?B?M0FTa3lJSnV3eVZMNTY4V1lWeS9XRGR5L1RXM3Jhb1VydWtuaThreFZ4TTB0?=
 =?utf-8?B?NGpudzg3aWFnVXNlRVNkSUhVVXFkQlBnNXNMdDlkS01ERzFEWXZJYnZOZFBS?=
 =?utf-8?B?MDRrSEU3ejRXZm0zWUtaai8zdzQ3OWxZWUZhUnptVUQ4dTdZcWpvQjBuQk9l?=
 =?utf-8?B?VVlkb2I3Vy9rNC9tUE0zNDBYYUVDVVFyU25aSU5PcTNGOU9qUFBhRDBWbzdp?=
 =?utf-8?B?UVRZZE4zaC93eFZUNjlWR0diRytzZUF2dWd4WlNQMzhqVEQ5NlZtWHBnSDRF?=
 =?utf-8?B?OGNMa2Zldms2UXRBRUpFckl3eDkzQUNJa2R4c3BtamswbHd6bWFlZ2NKeXhs?=
 =?utf-8?B?Nm5Gd01BdzR5RTVhNFJpWldMdEFkWUZpemRvY01HL2NmZFBTK0w3SGlSUHdx?=
 =?utf-8?B?U3NQWDhEUXYxV0RVYThNdGo0V2FYVFhaemlwZnU5S3lkcUpvR0YrcDR2TG9T?=
 =?utf-8?B?ZHRpOXcvWkRvZnZGUUtFSTBKUWpTK053Y2FjWWZoZ1c4RmxJRy82MmQwWTls?=
 =?utf-8?B?QnJXMzVadjZoUEsrN1RUOXdreWpsVkVYakp4SGMrQTU5NC9uNlJPRmx0RnFB?=
 =?utf-8?B?TS9xSEl6M2xaVEJ5N3FXMnN1N1gxRzFNcnZ4eWFTaW1XQWgrMTBUT3FhYm9N?=
 =?utf-8?B?eHBBbEZRNDNnOW1Cd2kwelNFT0R2NjZYV1pjakZLaFJrMGhkU0MvQ0RvR2cv?=
 =?utf-8?B?eFAzZmhKdmdVSVVtS2NmVXRMRTQxdzNDWitUbStKVHZyNWZBblpVUVI2NEJp?=
 =?utf-8?B?Y2VoMnE1N0tUSGRpbFc1M1l6anZkOHFRMWovR3Mwd2txY09nRXVLRzI3My9o?=
 =?utf-8?B?MzcrbGxGb1hHZWVHTkRsejAzem1DRE1QWXVBMlNEdUQ2Yzc1SSs1WjFtelJQ?=
 =?utf-8?B?dmRkdm9BOFZRamVjeTRQQWpteXNRRUNCWEozOWZwbE96YTBKY255Z3o3alpL?=
 =?utf-8?B?bmx1R1E5dXprQkc0aVdvRlR1QzU3blQ2SVA0Y00rWUJTT3hrcGhiVnhmSEdS?=
 =?utf-8?B?S2JuNXBTQXRHOE9ET1hJTjBFeVdPV2dSY0FUWnVTTlRlcWtxN0lsQ09FYWhH?=
 =?utf-8?B?ZnFVZ0kwd3E3M1ZRZ2RpbWF2QTNVLytPdWhGbG45L2MwWkNqYjJMUTd0S0x5?=
 =?utf-8?B?Z3pWdlNsRDJwSFZpRnR0TEdlS2VhQnpKV29idXIzNVIrYmxqdU1zOFJJamNE?=
 =?utf-8?B?R2JmM1lhdUJxWUtJNk5wb1dNMUgySVF2TlFCanVEdnJpb0dYajVwSmxrRVU2?=
 =?utf-8?B?MGFqSWVUMmYvTHdLcG5SaUo2b3NPQ1ZJZVFNSnV4UU9ESi9zQjNDQXRuUFg3?=
 =?utf-8?B?TnRST2x5WExLU2I5Tzh0T2lkZzB5cFI0WFpqVUJGUlRsOVoybitZVmlPWklv?=
 =?utf-8?B?SzlHN2tXbXhiY1diM3BzZnU5a0tGOTd4VFJMeFdyU1JIaGp6V0hBVFNZQW9D?=
 =?utf-8?B?K2NOelIraUNLbTMzRkcveTU5ODk5RXI2Z3dZejR0TzFSSTZEbVNxSmtCK2xz?=
 =?utf-8?B?TGxzQUVPL1FvbG1yUjZ1cS9GMTF3N1pKT0FtelZYNTQ1cVNBOXk1MHY1dlR4?=
 =?utf-8?B?a1FCYzBxSHI2ajYzU0dSaG84cFBrTzhOOVM0OThEdzZHWGZTRnVqYVdnMVFq?=
 =?utf-8?B?dDZOaHR5Vlo2OGQxQ2JZNFEyMlplT21EbUtGZDR5VENQbjZSM1Q4MWF1YWRI?=
 =?utf-8?B?TFdxd2dnY3U5NUdBTitObjFzSzZmNkxqTitBdGUwdXROeWJmbEQyMG52ajkv?=
 =?utf-8?B?Z2UrSGMra3lBMzY5cUl4dnV6MGo2T3VoNVlCK3YxaS9hU09WMi9EbGFydUk3?=
 =?utf-8?B?a1dBTUNvZVFMcS9lZ2M1MDFOWnZvOFFVdkd3RE1sL0dUS0hYblk4QW40aXpR?=
 =?utf-8?B?anhlVlp5MmNSa2UvTW5DNFNEWmlUaWtxNGZBME02TmJtd0orNmVjMC9IeEpW?=
 =?utf-8?B?dmdiWXozV3pKR2YvbmVXYnZkMDhmay9Gek8xVGdURStIUFU4TlF2Z2I0Q1RR?=
 =?utf-8?B?cEo5RmJnV1RJam51bnZ6NTNQK242ZDE3SEJXeldXN215Ui8yK2hrWjlHTUx3?=
 =?utf-8?B?YWdmSUJ1d0JVZFVMSDBtTEpUR2pBR3UxclBVTW1rd0loM09WV3NoaHE1UGVp?=
 =?utf-8?B?dDBlQ2dBSWdYaUFsRFRqeURSdGtyeGw5bFVuNmE3Z1haQnFjaVNxdlpjMnlz?=
 =?utf-8?B?MTdXSnQrNUFJc3FnNXp6ZkZ5UE9Ra0owTjExVTNjMzVVNjNzSkJKdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c2b3fce2-5db8-4d9a-8d87-08deaaa00f4e
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 12:15:56.3035
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SZJniwlUW2DIUYhjcHQB5DHGVv3DY4tHKvJDiL0BddwpYCgfJiRCp933KYrQw7NyXcbP4ZrpmTGp1a29h2UxbQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5903
X-purgate-ID: tlsNG-c201ff/1777983360-E9DDB443-ADA5C781/0/0
X-purgate-type: clean
X-purgate-size: 4368

On Tue, May 05, 2026 at 01:46:51PM +0200, Orzel, Michal wrote:
> 
> 
> On 05-May-26 12:49, Jan Beulich wrote:
> > On 05.05.2026 12:46, Orzel, Michal wrote:
> >> On 05-May-26 12:40, Jan Beulich wrote:
> >>> On 05.05.2026 09:35, Orzel, Michal wrote:
> >>>> On 05-May-26 09:13, Roger Pau Monné wrote:
> >>>>> On Tue, May 05, 2026 at 08:48:15AM +0200, Orzel, Michal wrote:
> >>>>>> On 04-May-26 17:28, Roger Pau Monné wrote:
> >>>>>>> On Thu, Apr 30, 2026 at 02:51:02PM +0200, Michal Orzel wrote:
> >>>>>>>> The generic pdx_to_page() and page_to_pdx() macros in xen/pdx.h assume
> >>>>>>>> the frame table starts at PDX 0, which is only true on x86. ARM
> >>>>>>>> uses a non-zero frametable_base_pdx to offset into the frame table (PPC also
> >>>>>>>> defines it).
> >>>>>>>>
> >>>>>>>> Fix the generic macros to subtract/add frametable_base_pdx, defaulting
> >>>>>>>> to 0 when the arch does not define it. This makes the generic macros
> >>>>>>>> correct for all architectures, even though they are only used on x86
> >>>>>>>> today.
> >>>>>>>
> >>>>>>> Hm, I assume this offset was added because the original mask PDX
> >>>>>>> compression won't (usually) compress the gap between 0 and the start
> >>>>>>> of RAM.  However the newish offset PDX compression should be able to
> >>>>>>> compress from 0 to start of RAM, and hence you don't need to apply
> >>>>>>> an extra PDX offset there?
> >>>>>>>
> >>>>>>> If that's indeed the case it might be better to integrate
> >>>>>>> frametable_base_pdx into the mask compression algorithm itself, so
> >>>>>>> that on some arches it's a mask plus a decrease.
> >>>>>> The offset is needed regardless of whether compression is used. With
> >>>>>> CONFIG_PDX_NONE (no compression, PDX == MFN), if RAM starts at e.g.
> >>>>>> 0x80000000, the first valid PDX is 0x80000.
> >>>>>
> >>>>> OK, so you are doing some (kind of) address space compression (removing
> >>>>> the leading empty range to the first RAM region) even when PDX is
> >>>>> disabled.
> >>>>>
> >>>>>> Without frametable_base_pdx
> >>>>>> the frame table would have to be indexed from 0, wasting
> >>>>>> 0x80000 * sizeof(page_info) of memory just to cover the hole before RAM.
> >>>>>
> >>>>> But you don't really "waste" memory, just address space?  Oh, maybe
> >>>>> not on ARM as it doesn't use pdx_group_valid?  And so you
> >>>>> unconditionally populate the frametable from PDX 0 to max PDX.
> >>>> With pdx_group_valid (which this series adds) we wouldn't waste
> >>>> physical memory for the leading gap. But we'd still waste virtual address
> >>>> space and the FRAMETABLE_NR check (max_pdx > FRAMETABLE_NR) becomes tighter
> >>>> because the full range from PDX 0 must fit. For example with RAM starting at 5TB
> >>>> the virtual offset before the first usable entry would be ~70GB — more than the
> >>>> entire 32GB FRAMETABLE_SIZE on ARM64.
> >>>
> >>> Yet still - this is exactly one of the situations offset compression means
> >>> to cover. I'm entirely with Roger as to it being undesirable to build a
> >>> special case variant of "offset compression" into "no compression".
> >> In this case, if you don't want to generalize the macros, how should we proceed
> >> on Arm if we still need the offset to cover the PDX_NONE variant that we also
> >> use? In v1 I just created a local override but Julien wanted to generalize the
> >> macros instead. The discussion about switching the default on Arm from mask to
> >> offset that is not even selectable on Arm needs to wait for the new release cycle.
> > 
> > I'm not convinced of that. If you need offset by default, why not enable it by
> > default (right now, and potentially even as a backport if there's any bug that
> > is being fixed)?
> As said before, we also need offset when using just PDX grouping and no compression.

But you don't really mean no compression?  The offset itself that you
subtract is a transformation, and hence a compression, as the physical
and PDX address spaces are no longer identity mapped?  Maybe those
systems should have never worked with PDX_NONE, and instead required
a PDX compression in place (one that would remove the offset from 0 to
the first RAM range).

It's an incomplete conversion IMO, as ARM applies it to the
frametable, but not the direct map.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue May 05 12:23:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 12:23:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300635.1575167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKEoZ-0006qp-Ga; Tue, 05 May 2026 12:23:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300635.1575167; Tue, 05 May 2026 12:23:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKEoZ-0006qi-Dg; Tue, 05 May 2026 12:23:51 +0000
Received: by outflank-mailman (input) for mailman id 1300635;
 Tue, 05 May 2026 12:23:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wKEoX-0006qb-Ve
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 12:23:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKEoX-00COpH-2l
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 14:23:49 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69f9e141-bab6-0a2a0a5309dd-0a2a450bbd9a-48
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 14:23:48 +0200
Received: from [209.85.218.51] (helo=mail-ej1-f51.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69f9e154-212f-0a2a450b0019-d155da33b999-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 14:23:48 +0200
Received: by mail-ej1-f51.google.com with SMTP id
 a640c23a62f3a-b936331786dso611742066b.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 05:23:48 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc21478931dsm211122666b.24.2026.05.05.05.23.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 05:23:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777983828; x=1778588628; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=T8U0g0U/wqcPjs1kFJfJR1/rD2eF6MlCooMT06H5ik0=;
        b=XQJ5fh15dXNa5VS8vi6ioWLQ5aeJmMm6Hv2LPjSn3WLCmtxSRO9sK74LdRF63XEn8Z
         4mnpixPPK1pRSOPZA0VJGxHXV1OTEm2hSrIH66dJsdwKv9Q3vol3M9KDJW+BgFB4vXn8
         f1VVcOm4mwuET458uVs2SW4jQQoYQgryO0MktuXEdNeSBPzu8zcMGzdnRHWRIS27e5+B
         T8Vb8YqFcH4xnoRedz2RVeJEKIK2ud2muiHAbO6BtxiLXalhse/vky41HcwOEc3OCTG4
         lEL4Huxh0chhanagS5770wsMUwuFdeq8h7NaBZGuJHGSehAxVKCphCt1A7UdybiS7Cc0
         W0Qw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777983828; x=1778588628;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=T8U0g0U/wqcPjs1kFJfJR1/rD2eF6MlCooMT06H5ik0=;
        b=kHmuT3l+a2r2YViYPkRY/FlFHMESiof3JG2eIG6ZPrSg/Xj4dV2RUUIdOfiRRWod+6
         5Z9+qy9zZfjSJ7hns7ve/KEHOPe7Pi3GgJHsMywMEXE7DQjRFGtSCk6GAI8NztT0slfG
         6nKp2Hog5FoN1nUtDuo5P1yLZsAGyxVf4hqIbniAqMtRR6Ltqa+3F2fZjeOp5y/Jkhyd
         lfAatu29IReG9Yx39D5y0znxCVq5y9tyCprdQL8WV4UoEUgdFXPIwLLMjhjkLFPl8Lfq
         ZEUkZEhIaG5CyMG3XnZ7sm/dVZ9KAyNaCvFQQ6zew8l+f/cQGBKTH8RiB8eFbcmfxQHC
         98AA==
X-Forwarded-Encrypted: i=1; AFNElJ8kHaLGnpoKI0ioAyQAO0fz3x5RHGgwS2CWDkxKLO85NUHUtDlTaXTARXVsz/M0SmexTxLnNiGELJY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YznCBjoqGUiHKZiBrY/1s0ZTuCuBxqwrRjQA6DI9QSbBmp3ebYn
	78W9KmabsThhprSSqRwVud1lMLCQrsx3ZDUku1QZqQiPxy5S7qUJPkGfENy4M3FwH4I=
X-Gm-Gg: AeBDiev9nifCWGGcl2bxXGDc8qv+9lsrHKTcRHiUTgkTIanScqR8Zxtto5Uk8fflcaP
	MZsXCeVkh2jqCIYqXaLa8mmEIh4iB4I9nJKyB2Vw4DctMtaoXFR9EOVrSkScj6d+DJ2mYm34h5/
	qDonv3iRNuXkEljOr2SzpHqdTnzS9hNJN5EGA7Jcb3AavMy9OQTVw/B+1Z8b7zONccSkUMPYOHU
	Vak+yRf3+S4u7jgKJ0fGix6jv3fnn6CNeYRudUPLWc99U28FqiOSIzhNtZU7Nht8nn3eSVeYKIq
	mElagONjec9PSxgompYoAbsMLagpPd2JGi/yOzP+oQ7cQYbnUeIuyAQkK+j0tgR0JtdMjuM96j+
	4NbYap/1CZGZTQYrthpr6mRNdefJQnvvvPhiJs0SBUM/KN+pcNRY6YGAV+qz0B2Ar2TEzaqvyz8
	YO+hpVkRBgd7XFtvgFW8BLedil4HRZm6dFT0FiO6y2V16GN1ipfCpNLJEfeUlXzq595uUh9/N5S
	YiJ9RbPEX1WpczMf0r0361plXXXwxLD/Vl0GnYQeTQaDmWdINerByxSqn1t0heUlghqh6pf5aM=
X-Received: by 2002:a17:907:80e:b0:baa:1db1:ef9b with SMTP id a640c23a62f3a-bbff992c153mr765598366b.18.1777983828204;
        Tue, 05 May 2026 05:23:48 -0700 (PDT)
Message-ID: <23f5e833-b5af-40f2-8c1c-8ba56c715825@suse.com>
Date: Tue, 5 May 2026 14:23:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/platform-pci: Simplify initialization of
 pci_device_id array
To: =?UTF-8?Q?Uwe_Kleine-K=C3=B6nig_=28The_Capable_Hub=29?=
 <u.kleine-koenig@baylibre.com>, Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Markus Schneider-Pargmann <msp@baylibre.com>
References: <20260505102909.2380470-2-u.kleine-koenig@baylibre.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20260505102909.2380470-2-u.kleine-koenig@baylibre.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------cU4QwkJWUVquCuDHH88AiecH"
X-purgate-ID: tlsNG-42698a/1777983828-7D969F3B-D2434FEF/0/0
X-purgate-type: clean
X-purgate-size: 6732

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------cU4QwkJWUVquCuDHH88AiecH
Content-Type: multipart/mixed; boundary="------------e3rh6cYQup5xsVq0HPerxhtd";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: =?UTF-8?Q?Uwe_Kleine-K=C3=B6nig_=28The_Capable_Hub=29?=
 <u.kleine-koenig@baylibre.com>, Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Markus Schneider-Pargmann <msp@baylibre.com>
Message-ID: <23f5e833-b5af-40f2-8c1c-8ba56c715825@suse.com>
Subject: Re: [PATCH] xen/platform-pci: Simplify initialization of
 pci_device_id array
References: <20260505102909.2380470-2-u.kleine-koenig@baylibre.com>
In-Reply-To: <20260505102909.2380470-2-u.kleine-koenig@baylibre.com>

--------------e3rh6cYQup5xsVq0HPerxhtd
Content-Type: multipart/mixed; boundary="------------s1q5pXTF5M78e6LkpixJ1h0a"

--------------s1q5pXTF5M78e6LkpixJ1h0a
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMDUuMDUuMjYgMTI6MjksIFV3ZSBLbGVpbmUtS8O2bmlnIChUaGUgQ2FwYWJsZSBIdWIp
IHdyb3RlOg0KPiBJbnN0ZWFkIG9mIHVzaW5nIGEgbGlzdCBpbml0aWFsaXplci0tLXRoYXQg
aXMgaGFyZCB0byByZWFkIHVubGVzcyB5b3Uga25vdw0KPiB0aGUgc3RydWN0dXJlIG9mIHN0
cnVjdCBwY2lfZGV2aWNlX2lkIGJ5IGhlYXJ0LS0tdXNlIHRoZSBQQ0lfVkRFVklDRQ0KPiBt
YWNybyB0byBhc3NpZ24gdGhlIG5lZWRlZCB2YWx1ZXMgYW5kIGRyb3AgYWxsIGV4cGxpY2l0
IGJ1dCB1bm5lZWRlZA0KPiB6ZXJvcy4NCj4gDQo+IFRoaXMgZG9lc24ndCBpbnRyb2R1Y2Ug
YW55IGNoYW5nZXMgdG8gdGhlIGNvbXBpbGVkIHJlc3VsdCBvZiB0aGUgYXJyYXkuDQo+IA0K
PiBTaWduZWQtb2ZmLWJ5OiBVd2UgS2xlaW5lLUvDtm5pZyAoVGhlIENhcGFibGUgSHViKSA8
dS5rbGVpbmUta29lbmlnQGJheWxpYnJlLmNvbT4NCg0KUmV2aWV3ZWQtYnk6IEp1ZXJnZW4g
R3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCg0KDQpKdWVyZ2VuDQo=
--------------s1q5pXTF5M78e6LkpixJ1h0a
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------s1q5pXTF5M78e6LkpixJ1h0a--

--------------e3rh6cYQup5xsVq0HPerxhtd--

--------------cU4QwkJWUVquCuDHH88AiecH
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmn54VMFAwAAAAAACgkQsN6d1ii/Ey+j
KQf9Hx8qep9M9x8ZNTWHWZOdTLQXpIMaEnnMXThi3aksviuYAquuDufwWnfVWp7hQSOWD6mwObjJ
iQSDZ7o5RQTyXK9AxsCRHPGwQ/Sngy+S/VVHYCZKyZbSdxcRFfH4/OnilE2zpqfEyHt2eC/S9HZC
dDHmf6C3jZBpqyjiXBbwKi32hfFI+32n09cHHGfrMJDGtq/YnVDo/mvMBYzc/hnzbsp3gRYpDdgR
/ofWH9O/wWtickhxFiJV8o+ixqePl75Shhy5Usm/98yo1N/NyOFlmw9lJyYODizRVrsxUShHOamy
9M2yhczuWFteMhVRghg9Tw+15qaBKiRpwddPsyacDw==
=BOTn
-----END PGP SIGNATURE-----

--------------cU4QwkJWUVquCuDHH88AiecH--


From xen-devel-bounces@lists.xenproject.org Tue May 05 13:01:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 13:01:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300659.1575175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKFOK-0004Dy-5m; Tue, 05 May 2026 13:00:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300659.1575175; Tue, 05 May 2026 13:00:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKFOK-0004Dr-3H; Tue, 05 May 2026 13:00:48 +0000
Received: by outflank-mailman (input) for mailman id 1300659;
 Tue, 05 May 2026 13:00:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKFOI-0004Dl-Oz
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 13:00:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKFOI-00GXFq-3v
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 15:00:46 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9e9f7-e002-0a2a0a5209dd-0a2a4501a03a-16
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 15:00:45 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9e9fd-c1f2-0a2a45010019-d1558036acbd-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 15:00:45 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-488a14c31eeso39537215e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 06:00:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8eb6ffb7sm353412765e9.5.2026.05.05.06.00.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 06:00:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777986045; x=1778590845; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=V6TCH66SKZzR4VqfxuRIus6A9J2++CbQQKuE22AD9dg=;
        b=gGFYX2p+voFL4IxI3XZvvL+4paOeGBAQRTfFwJ4/mzpxw/todx8lnIQ/yO7Q3GrwN5
         /87ZhHf5O9fXwKX/yXIJ8J+XxEQZPPHWmU0M6in4NuIrOIpW5psZ+QPStBanRBnWXXVE
         fmM3Z9Z4J18HxRvzxVpjjCbEIEwBxM/Uu14ywmHBUrAPw6/YQFJuRCTD5RUBwOLZx/rW
         fg1D9f31otZ0/ccLJnysW9JcID6OQxOQcViMM0UKpIISuKyRfUscdLmjIvlTC83BnT17
         mOaPBM2fO+GdzjnYT235u79YrRFy2Q1QWPT3la7bXZg5lszTIhJIcJCodxrXw3azby73
         JICQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777986045; x=1778590845;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=V6TCH66SKZzR4VqfxuRIus6A9J2++CbQQKuE22AD9dg=;
        b=KUldRmDk2jhP5+RFXDhqp1+MXG5JavbvqqqAMB6AQluTyBZQtfhrn8GMzq5g301DTG
         cyUDyr8PJDpfMffKx1C1JW+Rm2+skemYOX/HnLYz7rnaWqBqsTxaUIJogb47Sfbu+/Qx
         EdWu+urMGkNJlD4w/jpxtYGHerdqwvvpV7sgsuk1effISxWC66gZqKk5kM60sIQ9+pAt
         PKEwq7d4YoWwn+HvJIDmgYKE0qUMqq3Z7p0Hrnq+Pg9MJ3EdY9sTHepniH0CCI/syOi8
         u9pHg+I1wui7xmCLBWji9xXoewOwL0EMFjzoG22l40Qc6VCWTZ1gId6hDOAb9u9kRfZr
         g0mg==
X-Gm-Message-State: AOJu0YxHmBDhel9ekG1s8CX35Uwsdr06p1DJTEoFsH2z+nM0D7S2wE+k
	urSXO4MAPLa6mbHAXvjQ8Rn6eeZH7keJA1lKspa4iSY6T5OyqOmwB3r6cmBuYUZo2A==
X-Gm-Gg: AeBDievKOvdobd2AyhV6FBZl/wKPJUCAP7dbQpxcwqdMHwDodO1AxpsvmB32Tdc+X68
	tzNM6xu26HqjHIDwF9um5bZPRBI4exlb3k6XQRGfELEERXK9tqVzfRk2syc5E3P/sCVeVqwW7Qy
	PMUgiC0ItJaAHR8NV6LPjhWaQpM8wQLAQTFCEEMUX41PludDBfqcvzi3r2YSAvDO4Vq7J3wwfdj
	Xm0aSYiAKvXJGSWkBLvfK0EKhmoW0m4B4pYTjSQB1wialXXMtS368l0C5HhpSnLjDk96etVPUqT
	t4tc8JAdJPfZr2GFabWrLIR0q5gkDNe9yBLAyVy0QkXoHoxoGiHlyRrRyKRhyEVowFSn5PSfijj
	zuHMWgJHr7MFnG88eiR5QrZZ2vyyJWnqssVn6/ddhdXnD3lHJ0+UWKvDXcX70SMjx7n9J3hSfoF
	K6mv09bSrgT6mAMgfUOttIDOt7524qUMwtxz5bZfrdsoVMBiO2nunVa/qiwcEqoFuzBpeUk26ZV
	Ulc4jiAc1Z1A1ly7kwLRiSeoQ==
X-Received: by 2002:a05:600c:a414:b0:48a:58ae:993b with SMTP id 5b1f17b1804b1-48a98895156mr200518365e9.16.1777986045199;
        Tue, 05 May 2026 06:00:45 -0700 (PDT)
Message-ID: <94f1f29c-0430-421a-8b48-398fa0495966@suse.com>
Date: Tue, 5 May 2026 15:00:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Teddy Astie <teddy.astie@vates.tech>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
 <afi7HUFoDYabM9VV@macbook.local>
 <65ecf1c0-0844-4ba9-a250-a94aeaf4d251@amd.com>
 <afmYf-ldUxWQXRDL@macbook.local>
 <309b2ff6-c200-47d0-be3f-ec289df641c6@amd.com>
 <0a3583df-2682-426e-a704-aa8711caec0d@suse.com>
 <a90db340-e569-4f77-b5df-dd1a1504f8cf@amd.com>
 <0267eb6f-1161-45b7-8905-d7aecb78e74c@suse.com>
 <e8218607-26d8-4517-8634-df3c365e5bb2@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e8218607-26d8-4517-8634-df3c365e5bb2@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1777986045-BDE6BFF4-21D89D02/0/0
X-purgate-type: clean
X-purgate-size: 4263

On 05.05.2026 13:46, Orzel, Michal wrote:
> On 05-May-26 12:49, Jan Beulich wrote:
>> On 05.05.2026 12:46, Orzel, Michal wrote:
>>> On 05-May-26 12:40, Jan Beulich wrote:
>>>> On 05.05.2026 09:35, Orzel, Michal wrote:
>>>>> On 05-May-26 09:13, Roger Pau Monné wrote:
>>>>>> On Tue, May 05, 2026 at 08:48:15AM +0200, Orzel, Michal wrote:
>>>>>>> On 04-May-26 17:28, Roger Pau Monné wrote:
>>>>>>>> On Thu, Apr 30, 2026 at 02:51:02PM +0200, Michal Orzel wrote:
>>>>>>>>> The generic pdx_to_page() and page_to_pdx() macros in xen/pdx.h assume
>>>>>>>>> the frame table starts at PDX 0, which is only true on x86. ARM
>>>>>>>>> uses a non-zero frametable_base_pdx to offset into the frame table (PPC also
>>>>>>>>> defines it).
>>>>>>>>>
>>>>>>>>> Fix the generic macros to subtract/add frametable_base_pdx, defaulting
>>>>>>>>> to 0 when the arch does not define it. This makes the generic macros
>>>>>>>>> correct for all architectures, even though they are only used on x86
>>>>>>>>> today.
>>>>>>>>
>>>>>>>> Hm, I assume this offset was added because the original mask PDX
>>>>>>>> compression won't (usually) compress the gap between 0 and the start
>>>>>>>> of RAM.  However the newish offset PDX compression should be able to
>>>>>>>> compress from 0 to start of RAM, and hence you don't need to apply
>>>>>>>> an extra PDX offset there?
>>>>>>>>
>>>>>>>> If that's indeed the case it might be better to integrate
>>>>>>>> frametable_base_pdx into the mask compression algorithm itself, so
>>>>>>>> that on some arches it's a mask plus a decrease.
>>>>>>> The offset is needed regardless of whether compression is used. With
>>>>>>> CONFIG_PDX_NONE (no compression, PDX == MFN), if RAM starts at e.g.
>>>>>>> 0x80000000, the first valid PDX is 0x80000.
>>>>>>
>>>>>> OK, so you are doing some (kind of) address space compression (removing
>>>>>> the leading empty range to the first RAM region) even when PDX is
>>>>>> disabled.
>>>>>>
>>>>>>> Without frametable_base_pdx
>>>>>>> the frame table would have to be indexed from 0, wasting
>>>>>>> 0x80000 * sizeof(page_info) of memory just to cover the hole before RAM.
>>>>>>
>>>>>> But you don't really "waste" memory, just address space?  Oh, maybe
>>>>>> not on ARM as it doesn't use pdx_group_valid?  And so you
>>>>>> unconditionally populate the frametable from PDX 0 to max PDX.
>>>>> With pdx_group_valid (which this series adds) we wouldn't waste
>>>>> physical memory for the leading gap. But we'd still waste virtual address
>>>>> space and the FRAMETABLE_NR check (max_pdx > FRAMETABLE_NR) becomes tighter
>>>>> because the full range from PDX 0 must fit. For example with RAM starting at 5TB
>>>>> the virtual offset before the first usable entry would be ~70GB — more than the
>>>>> entire 32GB FRAMETABLE_SIZE on ARM64.
>>>>
>>>> Yet still - this is exactly one of the situations offset compression means
>>>> to cover. I'm entirely with Roger as to it being undesirable to build a
>>>> special case variant of "offset compression" into "no compression".
>>> In this case, if you don't want to generalize the macros, how should we proceed
>>> on Arm if we still need the offset to cover the PDX_NONE variant that we also
>>> use? In v1 I just created a local override but Julien wanted to generalize the
>>> macros instead. The discussion about switching the default on Arm from mask to
>>> offset that is not even selectable on Arm needs to wait for the new release cycle.
>>
>> I'm not convinced of that. If you need offset by default, why not enable it by
>> default (right now, and potentially even as a backport if there's any bug that
>> is being fixed)?
> As said before, we also need offset when using just PDX grouping and no compression.

And as also said before, this really is poor man's offset compression then. That
may be tolerable if you insist that's best for Arm, yet then I'd suggest to limit
that offset to just the "no compression" case. It's redundant with offset
compression, and it may be (possible to make) redundant with mask compression.
If the latter can't be arranged for, an offset may want introducing there as well.
But it shouldn't exist independent of the compression scheme used.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 05 13:05:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 13:05:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300666.1575185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKFT9-0004p7-Og; Tue, 05 May 2026 13:05:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300666.1575185; Tue, 05 May 2026 13:05:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKFT9-0004p0-Lp; Tue, 05 May 2026 13:05:47 +0000
Received: by outflank-mailman (input) for mailman id 1300666;
 Tue, 05 May 2026 13:05:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKFT8-0004ou-Rb
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 13:05:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKFT7-0067Fn-QL
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 15:05:45 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9eb27-e002-0a2a0a5209dd-0a2a4503e2ba-6
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 15:05:45 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69f9eb29-672d-0a2a45030019-d1558036e476-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 15:05:45 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-488ad135063so49646005e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 06:05:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8eba8487sm347010355e9.11.2026.05.05.06.05.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 06:05:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777986345; x=1778591145; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oaToR717o0d1XMQPScFeyt3h9HFxwBrAXn+7rI/dfPI=;
        b=e5vOzZ77UR7ZMw+HodkMkIXpuF9GnNPcbmOkLeYqQVbddckwEJqw2EVBLauK+WQwsu
         Ix/b3Rs5SozvcKZ2hpd5h4T37UCmBiBoLhWOeJfMK6Vic80RefhhA1V4QpIep0rOCxpi
         kTfK2ogm2zhkUJ34D/BDt15bf1bNhMsT6xulNfxy+IK1jXOtXO75FJpEbX8YXNE1QNdB
         j0cGopKh6ZBY/lndo250ZmUy7Y8em+q1qC1sk5KywRGeaKlG44TGSuuK+PM51tjXc6dA
         8epOd82Ni8u1vryagfy5n5FWiv6fqqHp9Hg9abllnR2VFA/8Pqzq7GvyX5ofAoj+sFuW
         4fWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777986345; x=1778591145;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oaToR717o0d1XMQPScFeyt3h9HFxwBrAXn+7rI/dfPI=;
        b=YtAF6hGmkVBGSCSVmkJ2yMWowFs/P1lYtFrWTZ2emTqocD2a3kkGs8hbxztF2cJlYL
         LLa7LmRGdZHPaVzVER7s2EwUh5XVOrouVNITGWcPtq8arBfMnl8HHXxVoiWbb3yBpWqO
         wXOJspNjoqBzuOm1in1xmL7hAA8gGBVMjn6GM9q9YuCnNQu7VxvWimdJYv8MKM8pqNSS
         XRh219l58n17Z0ejDuiuxr8U9q+07a/0b+OYundf3rE+3lKXdccWYJzsG2N+i2JlWpBO
         GqQ+w88x0/341aT57DlxLP+WGg7HAzqXhQB1eoeYFMccklIHD3MVv1ggwfKsMDno29S1
         6lOw==
X-Forwarded-Encrypted: i=1; AFNElJ9hYLyqBx/R2fljhHgo8A2gHGdKObR+XYo/bQO3UdoRO0jkrncFrR8mHOsz9tjns5i4LGAKvz7LHi0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywbr1JwgKvkk87ppqpULPQhT0cS+ibebI4pZLYkBNJvTj/HjCGB
	0TY8uXQN5IvYryGewCM4fj6jmhBN3U9arkQiEAduXOirD09X+z9lieShkXvy6PVBlQ==
X-Gm-Gg: AeBDietdGpYgDmre/tptZObvyUfQOs7/7ufSRSOZ5xDgJzNVE5qUmvWgIzH0CKXJpBe
	R6ZcsQ24pN5Y2J1jKaD9nnQ4gcBNEXCY4UxQcDacxcBrN4p0ZllVbg2XdphA8s9l0cWsfMR2cNV
	nO0Wo5GKbYPd3ASb7bRSXfjx5m4WtrLKcCCYInvo5RVyBZgz7zPt7Yo79R+vlld7Zh5NkKvIwaM
	zglVkqiiJX9ZBHmt8NR8NpUNTBgHVjmBTlL/z1gP6cmB+CwoZcz3vXMJ2o3PrkLRjLSI6XC+kLB
	a5/thxTq/iXBNvoQJ0M3sJWu0Xud6CnpXpr0di1C7qggbDoYBEC5L8amCRxBTdrNm7sdHAk/rMn
	Xs+GBmKKSzaab4YengQZ38rpOOAywhHucf2twnZ2XxRGt/WPnh8QMJ5xWF2OeV/pgK7/tpTZhas
	FIw/NrntVzQz2nAE45wX/AiKqbBwUUFrg67ns1wcmb8FF63kdcBvav+siFkDdA+QlYYLL+cV9R/
	6011Rv3PyoF6b/ArDQmXmROOg==
X-Received: by 2002:a05:600c:8b47:b0:485:364e:9328 with SMTP id 5b1f17b1804b1-48d03b41c4bmr165692595e9.16.1777986344881;
        Tue, 05 May 2026 06:05:44 -0700 (PDT)
Message-ID: <661c18d9-eceb-4a4e-ac2e-37a6931e06b2@suse.com>
Date: Tue, 5 May 2026 15:05:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
To: Michal Orzel <michal.orzel@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260430125103.401811-2-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1777986345-A3161938-C8F2CBB9/0/0
X-purgate-type: clean
X-purgate-size: 974

On 30.04.2026 14:51, Michal Orzel wrote:
> --- a/xen/include/xen/pdx.h
> +++ b/xen/include/xen/pdx.h
> @@ -132,8 +132,9 @@ void set_pdx_range(unsigned long smfn, unsigned long emfn);
>   */
>  bool __mfn_valid(unsigned long mfn);
>  
> -#define page_to_pdx(pg)  ((pg) - frame_table)
> -#define pdx_to_page(pdx) gcc11_wrap(frame_table + (pdx))
> +#define page_to_pdx(pg) \
> +    ((unsigned long)((pg) - frame_table) + frametable_base_pdx)
> +#define pdx_to_page(pdx) gcc11_wrap(frame_table + ((pdx) - frametable_base_pdx))

If you alter these, ...

>  #define mfn_to_pdx(mfn) pfn_to_pdx(mfn_x(mfn))
>  #define pdx_to_mfn(pdx) _mfn(pdx_to_pfn(pdx))

... how come these can remain unaltered? Maybe you have some special
arrangements in Arm code, but surely in generic code transformations done
should be uniform. After all

    ASSERT(page_to_pdx(pg) == mfn_to_pdx(page_to_mfn(pg)));

(and alike) ought to be universally true for valid inputs.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 05 13:07:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 13:07:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300676.1575193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKFV2-0005Wv-5N; Tue, 05 May 2026 13:07:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300676.1575193; Tue, 05 May 2026 13:07:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKFV2-0005Wo-2M; Tue, 05 May 2026 13:07:44 +0000
Received: by outflank-mailman (input) for mailman id 1300676;
 Tue, 05 May 2026 13:07:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <x1917x@gmail.com>) id 1wKFV0-0005Wi-CE
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 13:07:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKFUy-003m9J-7S
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 15:07:41 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <x1917x@gmail.com>)
 id 69f9eb99-e002-0a2a0a5209dd-0a2a450ae0b2-30
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 15:07:41 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <x1917x@gmail.com>)
 id 69f9eb9d-56b3-0a2a450a0019-d155802bb571-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 15:07:41 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-488b150559bso36034755e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 06:07:41 -0700 (PDT)
Received: from LinuxLaptop ([45.157.112.12]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8ebb2f32sm354717735e9.13.2026.05.05.06.07.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 May 2026 06:07:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Organization:References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777986461; x=1778591261; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:organization:references
         :in-reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject
         :date:message-id:reply-to;
        bh=uZyeoOGTVQj6a8td6Tno3xdBfq8sQCcXmrNE1dZcq+o=;
        b=famMYVMzKLraJZ+lZ01ktAza8otxa5xZ/u1RBvKJs557W0ctuBbhxCa9eWNLFfqUo1
         Y56CT9L68sUkebEfrEBAuYzNCwgF/yyBx53RzUHjpzpenUDN+xCHpNTSX3gHnBbkEuAw
         pDRPJfv8O0NqCZCaN0ovIGWyRmepkrkZcq4koWAbRMbszob6+Gqr7WnMwTCSPivHTJY+
         HtrGAUNN8pW7/TB5MmL/U7g6eXr8C72AGh8E3MRdHigRYKaGnSLlgp0KkN5Vn5HvLsYX
         QEoQFmFgco1XzZ7FmvA0vl9ocWOaCwlaXAR1IpGaIHtaUM/Mdyv6NACPrOEhq5mFXPhB
         ZDcQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777986461; x=1778591261;
        h=content-transfer-encoding:mime-version:organization:references
         :in-reply-to:message-id:subject:cc:to:from:date:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=uZyeoOGTVQj6a8td6Tno3xdBfq8sQCcXmrNE1dZcq+o=;
        b=oImurmS08v8faVgG5CC2TGGpSbeoU/2CY5YwvYXSoTIohEOW3ogaw8soz/Ep6qX48I
         uKysvjME7viWrUIMC5KmHb8QHu64Boc/wPQtfkWEKhD3hc5rxs+gDk5GArsw0XNYXMPY
         PKQE30qMYUQ3VyTBqZ67nWToYczyRfa1UvUgbKe7jI1aOJDzhYyY0PUa3e0ynSo4pMUs
         v0gwIaMGmYf7rN4AWfjuqzC4uYpbKfv4WWbLN+JGkL+WBQxImsKJz8ZATcaw0kXjGQgt
         gVf213Ur6627jgnwyn8mOtKqJF9bZ4ZIvhtcFuhhQwiD6hNgugw8vc7osWMMIGY1dnpv
         +izg==
X-Forwarded-Encrypted: i=1; AFNElJ+FSiU5/fvmubTOGaqZgnnroRzirkxBlr1QYddzxbGLBceXz58d5mwY1uQeEViKrcAwjw4FucbB0Ls=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJtvjJpjz43YuNF6/G1nMAWUive565Jcnh8/PsM2ItoxiShhRC
	Kki96icsBEylJVY5lAqX7QZUaQ3/07qCnQT3iLHdWwm6Dn9OCKG/hMCQ
X-Gm-Gg: AeBDiev6M35kpWPytkouYEaQ2i6xygcbZv6Ymntbi5d11yHGaOylqPfsPcQHJInefWy
	nmbC8NfppvIqjij9Rnlmu+YpmIQhONjSFDR2qso0vkdVeDjEOgN2X7otPSSOHBAxB3rETslDNFx
	Jyrt6zlGueRvxSE6ksraNgi9KC5YNkKNdF7/LvVoLdK9xkAgKASQ3eETMOV2zL8dAFVJ4lce+U7
	EA4WSJdwCEhdjeLgmn16mEtNrgY8PI1VFXh5+YtQaF+SjJ3yzTY8NPFzwWruViIYvzWVEN6SO5R
	uonfitZxzy1cDJ3EA4Ss0E3amVTSENOh0+4qebxvCLw1id4FLlyGjRIGBePBxSfvxwQsr1wekN/
	cRjDYH1YXoAAxWIscr5jEFI36llC6j8sHULlph/41Y6QLXlBYtyZQOT7Gc73qVERVuUSJ2zmcEe
	r3EIgP1FhkgwYneW/PiJmpy7MdzTc=
X-Received: by 2002:a05:600c:c119:b0:488:bc6a:528d with SMTP id 5b1f17b1804b1-48a9866cdd9mr190548005e9.22.1777986460878;
        Tue, 05 May 2026 06:07:40 -0700 (PDT)
Date: Tue, 5 May 2026 15:07:36 +0200
From: Alexey G <x1917x@gmail.com>
To: Roger Pau =?UTF-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: Thierry Escande <thierry.escande@vates.tech>,
 xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH 00/17] Q35 initial support for HVM guests
Message-ID: <20260505150736.5419a55f@LinuxLaptop>
In-Reply-To: <afBmWSFsyrwy_Ru1@macbook.local>
References: <20260313163455.790692-1-thierry.escande@vates.tech>
	<afBmWSFsyrwy_Ru1@macbook.local>
Organization: none
X-Mailer: Claws Mail 4.3.1 (GTK 3.24.38; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-4011c0/1777986461-4415A8B7-F19A85BB/0/0
X-purgate-type: clean
X-purgate-size: 3799

On Tue, 28 Apr 2026 09:48:41 +0200
Roger Pau Monn=C3=A9 <roger.pau@citrix.com> wrote:

>On Fri, Mar 13, 2026 at 04:35:01PM +0000, Thierry Escande wrote:
>> This series introduces initial Q35 chipset support for HVM guests,
>> based on the patchset at [1] by Alexey Gerasimenko.
>>=20
>> Basic support means that this patchset allows to start an HVM guest
>> that emulates a Q35 chipset via Qemu and implements access to PCIe
>> extended configuration space for such devices emulated by Qemu.
>>=20
>> Support for PCIe device passthrough is not implemented yet. This is
>> planned but implies modifications in the hypervisor and the
>> firmwares, mainly for the support of multiple PCI buses.
>
>Why do you need multi bus support to expose PCIe capabilities?  I'm
>not seeing the relation between those two.  You could still expose a
>single bus on the MCFG table.

The problem with the PCIe bus is that it's very "topological" by design
- and it always wants a valid hierarchy.

Each PCIe device manifests itself (via its PCIe Capabilities entry)
as either a chipset-integrated device or a regular PCIe endpoint
device, which is the most common case. There are more types IIRC but
these are what we deal with mostly - both for PT devices and
QEMU-emulated ones.

But, being a PCIe endpoint means that the device must have some parent
device. It can be located below a PCIe switch or, in the simplest and
the most common case, below a PCIe Root Port device.

In both cases the 'parent' is a PCI-PCI bridge technically, with the
PCIe endpoint device being located on its secondary bus.

As the Q35 patch series was done with mostly PCIe device passthrough in
mind, this brings the main complication - in order to properly place a
passed through device on the PCIe bus, we need an emulated/real/hybrid
Root Port device.

A much lengthier description is in this patch message:
https://lists.xenproject.org/archives/html/xen-devel/2018-03/msg01197.html

To summarize, we need this 'valid PCIe topology' nonsense just to make
Windows kernel (pci.sys driver specifically) not to discard our PT
device due to checking PCIe bus hierarchy above it.

This limitation was found/confirmed via debugging - luckily, pci.sys
had symbols and the main bad function which was failing had a very
speaking name - something like pcieCheckTopology or similar.

Emulating the "chipset-integrated device" in PT device's PCIe
Capabilities was a simple hack which allowed to bypass the requirement
to have a valid PCIe hierarchy with multiple buses. But the proper
future direction is implementing emulation of Root Ports or PCIe
switches I guess.

>> The PCIe MMCONFIG area is configured by hvmloader and its base
>> address and size are set in Xen using a new pair of hypercalls
>> HVMOP_get|set_ecam_space.
>
>I guess I will see how that looks like in the series, but the setting
>of the ECAM region would better be done by the toolstack.  Setting it
>in hvmloader is possibly not the best placement, because it doesn't
>run for PVH guests (and we will want ECAM support for PVH at some
>point), and there's also a vague plan/intention to get rid of
>hvmloader even for HVM guests eventually.

This is the situation where the difference between HVM and PVH might be
very problematic I'm afraid. HVM guests assume full freedom over the
IO/MMIO resources setup inside their sandboxed environment.

It's not just Windows reallocating PCI BARs to its liking, but also
spans to the emulated chipset's resources. In worst case we could have
MMCONFIG reinitialization implemented even in Intel's Q35 drivers
installed inside an HVM guest. Fortunately, this is not what I remember
was the case, but in theory Q35 driver could have done things like this.


From xen-devel-bounces@lists.xenproject.org Tue May 05 13:29:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 13:29:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300694.1575203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKFpw-000076-Rb; Tue, 05 May 2026 13:29:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300694.1575203; Tue, 05 May 2026 13:29:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKFpw-00006z-Oq; Tue, 05 May 2026 13:29:20 +0000
Received: by outflank-mailman (input) for mailman id 1300694;
 Tue, 05 May 2026 13:29:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <x1917x@gmail.com>) id 1wKFpv-00006t-0t
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 13:29:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKFpu-00GeDM-Du
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 15:29:18 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <x1917x@gmail.com>)
 id 69f9f0ac-5cb7-0a2a0a5109dd-0a2a4508b90e-6
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 15:29:18 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <x1917x@gmail.com>)
 id 69f9f0ad-63b5-0a2a45080019-d155802eede6-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 15:29:18 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-4891e86fabeso64918335e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 06:29:18 -0700 (PDT)
Received: from LinuxLaptop ([45.157.112.12]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48d181efe86sm17122945e9.24.2026.05.05.06.29.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 May 2026 06:29:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Organization:References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777987757; x=1778592557; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:organization:references
         :in-reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject
         :date:message-id:reply-to;
        bh=nUYEn7nhqgGFbNBbFJFpnav+YGeEGrtazXqTB88DSxU=;
        b=NXM8hD+2lrnAqaTD0fs9zw0QiSdirrDlDi/wsAqVfUzQ/wMNXGaXM0i1LaLtOe14TL
         VJfysfCc0rIbmAqQS7bpllY7/WVddv/sxFVcBW7HVkEUnujLZd9k08cDXyR0wlUiMdke
         VaVMDUJyAjC6XCCnJyGISdtoqN28M2Cth5rlUALxgSbtfj6OS/x5ybzl2x8IjSqQphSx
         36qb1mRJuAv7J/4YmaeAGWGw1aVT/WKjIJVj5ROS6S2Pfk9HXA1pbUePK+q6/WeNjQtU
         SQDMJ5f2WAZejEPbKnmdgC0Qo2TmdDzlMNVmXjdrEpe325cR021Mb6eNJiMHN8pDr0DY
         goXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777987757; x=1778592557;
        h=content-transfer-encoding:mime-version:organization:references
         :in-reply-to:message-id:subject:cc:to:from:date:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=nUYEn7nhqgGFbNBbFJFpnav+YGeEGrtazXqTB88DSxU=;
        b=KMCYFBq9GdjumWn0l03T/naHIxfzceEiFRzDU5/Q8/NgAMKSu75PVC+3PrO+yBwpZ1
         3b7wdv0vUIe9rmbQNz1BqwXAC9WbHE4eg4RIm0M4Vg/9QmSm7N28xrwu1wcKLHsjl0+k
         TZalTlB+X4b63yYG3rdVVNhrp6o1dZnfOuYkQunkQo6wOLhDtFb0cuIHW6oDOhvINUyU
         9/bNzlKUBYyzL4AqFNftjvjPRBWt0id1KThOI4Ek6Nh9cHrRib0CKR5//ovfuFfIyp4p
         1XGrUKqy+04zawRYoHIC9OrSJoIo4L8AUGYjp/DSB2HWHPKdojkHXENocmHp0Duu2sXH
         Q3Pg==
X-Forwarded-Encrypted: i=1; AFNElJ/kIT8n0i8U6mcmEhyEOaiUcxWThlUgMd8lAlysh0YdMCmAwS4QAdixqwujGSBiQBKLNwfqj/1yiiQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YycN4c+DW2OaFlQ8h7NFFHQoNxMQCDful2kquPtgE8Na6OdH1IJ
	YzzoUm+hDAUtpzGcTotn7XOehTb6+FzxPT5R6QuQMzpoY14xjAhGXeDdTauiKzK+bBHWDQ==
X-Gm-Gg: AeBDieuSQNIb3cIzCz6YSDKxuKjwZcW8JlJihhjImJ6xj9jSd4JgIgmqf/UCpzUnDUq
	GTSq3y+YcLKajGPwCLv4fAVwAxOtUzIiOFcwm5AVqYj505egqo9bKJlmmA9PkFe5m66UpdKM7DO
	UGI4SJ47Eb2iiOoJu/BHlZ5nCMx9LrNiDIVoKoRXEDbAQ4O42HriWZkXDPTJ+72JKZfKb4b2CyC
	zDAHAM+m/Axppvm3LeaV16YJej+1AyzX4fzRK+FVriKYZXG0hFarCatBrCYpL8SmuBEZXm17kDR
	lskFW8afmsne8AnRjFY3mrNdzuIktYT/9idkUukFXfsoTQsgEwvaUPlsXhaO6HSjRo186eiSNWV
	2YU5zWjrfjKzLRxZl+Jl48MrqeuQETc5dmJwa6N+ZGtXlKsGfJyc4e43vBJhZHAGBsu3pf+793x
	rIW6CbTt3XTuBJKKvdgDABwZQZZFE=
X-Received: by 2002:a05:600c:c089:b0:48a:7772:c26b with SMTP id 5b1f17b1804b1-48a98676597mr202107985e9.26.1777987757588;
        Tue, 05 May 2026 06:29:17 -0700 (PDT)
Date: Tue, 5 May 2026 15:29:12 +0200
From: Alexey G <x1917x@gmail.com>
To: Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>
Cc: Roger Pau =?UTF-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel
 <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Thierry Escande <thierry.escande@vates.tech>
Subject: Re: [PATCH 00/17] Q35 initial support for HVM guests
Message-ID: <20260505152912.6b73c551@LinuxLaptop>
In-Reply-To: <99756799-27be-45ae-99be-eae5b0c41a11@suse.com>
References: <20260313163455.790692-1-thierry.escande@vates.tech>
	<afBmWSFsyrwy_Ru1@macbook.local>
	<99756799-27be-45ae-99be-eae5b0c41a11@suse.com>
Organization: none
X-Mailer: Claws Mail 4.3.1 (GTK 3.24.38; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1777987758-C3171DB1-9830AEBB/0/0
X-purgate-type: clean
X-purgate-size: 891

On Mon, 4 May 2026 12:45:23 +0200
Jan Beulich <jbeulich@suse.com> wrote:

>> Why do you need multi bus support to expose PCIe capabilities?  I'm
>> not seeing the relation between those two.  You could still expose a
>> single bus on the MCFG table.
>
>Can a valid PCIe topology be expressed with just bus 0? If an endpoint
>to be handed to a guest isn't root complex integrated, would it be
>valid to make it appear so by putting it on bus 0?

No, unfortunately, it will fail at least under Windows' pci.sys
driver. Unless they changed something in the past years. To place an
endpoint device to bus 0, we need to emulate that it's a
chipset-integrated device by trapping its PCIe Capabilities reads.

I found an old pci.sys + .pdb symbols which I used for debugging back
in 2017 and, if I remember correctly, the failing function was 
`ExpressValidateFabricTopology()`.


From xen-devel-bounces@lists.xenproject.org Tue May 05 13:58:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 13:58:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300711.1575212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKGI4-0004S3-2j; Tue, 05 May 2026 13:58:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300711.1575212; Tue, 05 May 2026 13:58:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKGI3-0004Rw-VD; Tue, 05 May 2026 13:58:23 +0000
Received: by outflank-mailman (input) for mailman id 1300711;
 Tue, 05 May 2026 13:58:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <x1917x@gmail.com>) id 1wKGI2-0004Rq-FV
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 13:58:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKGI1-00GkKu-Sf
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 15:58:21 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <x1917x@gmail.com>)
 id 69f9f775-bab6-0a2a0a5309dd-0a2a4501a872-16
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 15:58:21 +0200
Received: from [209.85.221.54] (helo=mail-wr1-f54.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <x1917x@gmail.com>)
 id 69f9f77d-c1f2-0a2a45010019-d155dd36c1d0-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 15:58:21 +0200
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-43eb05b1875so2793569f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 06:58:21 -0700 (PDT)
Received: from LinuxLaptop ([45.157.112.12]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45052a48c04sm4745130f8f.15.2026.05.05.06.58.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 May 2026 06:58:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Organization:References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777989501; x=1778594301; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:organization:references
         :in-reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject
         :date:message-id:reply-to;
        bh=rcd/XwGBASe92ZYjhmrOH2A7MkePWFvJvn9PtnkzL7c=;
        b=HXaudp+DO6MwuUs+bytwF7pjRTQXSlkUKDc27T/W1Sm5Md72hSWZ56jgA7tFu8IQO1
         +rlnh+asfew8fdiUYwXIy3vjgqm/CsQwHOfatPqQivpAtB1VpxIbm7kVZzLaVpQZIafg
         VydWVwcEhz6nm1Jkxe4fbk21xXKReZBCjJnAzmvYXS+CHsegckmWJf+7wlDzSaae8NWO
         dakbsiKgXPjDq9PCZS+Oyxi68gWLEZIJDwPufBa4QdZgLCII6K5ebxNS0JdmqmCI+FKu
         qRplvT5U4G9SW7y2xD/TCSvxxl9Tu6rgRXFqBxjet1xk+nzn6Zpb+VgijqiPaiTBgqnJ
         nh1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777989501; x=1778594301;
        h=content-transfer-encoding:mime-version:organization:references
         :in-reply-to:message-id:subject:cc:to:from:date:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=rcd/XwGBASe92ZYjhmrOH2A7MkePWFvJvn9PtnkzL7c=;
        b=DGshtauPgt8+tsHbWwneTDN1AuHsGLHRGS9WoNtEl1V0g2DYB7VFgIYesLH05e7ecb
         gQEd4IRZ1DPYHLrkJO6pNc2pvKdyZHzoINw39xE5A3cw+vy2/017chC2Wc803vlbG6rH
         UOYS0CPRofZWiQixhrana9Us8Qe9afzfdkdqbPIMnbIosoTIBIsU0aeTFepRf3shrjEQ
         Vc6VRUiXghgTx9mpaKd9be03ngLto1jMnNFkPQfPWo3pcfBul9yJRYLP5hcsdtlNVZxD
         StS1y7jTAhnnfnNlfG+v1PNygZWz5x0O4rZoL1dW7UUDFhvxAlW4jxGzSGi1a6aHfaQN
         kkqg==
X-Forwarded-Encrypted: i=1; AFNElJ91l+/l9m2taJbE1YmlJxvfr6F6yznL++NXX+8gfVNajwDvDi2SJLQryY0vFG3UdUtsdZIqBlR6DhI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIFB3MquxbscDVMQeUOiTxEXnf87N7Qr5/CqUeyjtRaXT0CA4a
	xdvpbWA3WLOSkHCyO4icVRulewAWRBqAnU+qnvIGnw6lEyLGCD8S/X6A
X-Gm-Gg: AeBDieu91j6IRIO+qco1AKNfisM1PAwWtKy/wFebHej6cy+ZCfCYuVtlSjodKHEgKOr
	i7MnjfZc5Xo3huBw5i4UAl3EXJolwYARnX8UvQxbHek6vVDeIAXCoivyGd3UcnndWB/1BqIaQlR
	4CHojHiV5bWG3Uy6MIkBFbCLPT+kPDakm5SfmXTI1PNKQnzmvH+CZHnvUCqnTATs91VREU4z00y
	9nR/7N4ZCRXDQxVn9MeDcRRiwOqqg6W99vl1qyVdk2IvfREgjQttQjlRWn1lCPQCx9y+qRrLrfX
	mpzOYTO8GScHJCogU+K4lBied9rQaJQtaRqgUAP/ZsgWm6QRRmgzN3DF3PqS9QW0FgpIN5aamwx
	bo0gH0CkeuSfurPNEDX5pGOydTrdxiB5xhxyV8irUyLML0cwGN4oCVpk46cJlTM/uwejzBfY+ez
	RmS817qCKLKbRpFVcfUJHulpjyNYk=
X-Received: by 2002:a05:6000:228a:b0:441:1c18:f779 with SMTP id ffacd0b85a97d-44bb6ab18ccmr22594291f8f.37.1777989501010;
        Tue, 05 May 2026 06:58:21 -0700 (PDT)
Date: Tue, 5 May 2026 15:58:16 +0200
From: Alexey G <x1917x@gmail.com>
To: Roger Pau =?UTF-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: Thierry Escande <thierry.escande@vates.tech>,
 xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
 <anthony.perard@vates.tech>
Subject: Re: [PATCH 04/17] hvmloader: add ACPI enabling for Q35
Message-ID: <20260505155816.0f8ad76d@LinuxLaptop>
In-Reply-To: <afCQd2rTmiGpR_bk@macbook.local>
References: <20260313163455.790692-1-thierry.escande@vates.tech>
	<20260313163455.790692-5-thierry.escande@vates.tech>
	<afCQd2rTmiGpR_bk@macbook.local>
Organization: none
X-Mailer: Claws Mail 4.3.1 (GTK 3.24.38; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d62444/1777989501-B526DFF4-2B8134B1/0/0
X-purgate-type: clean
X-purgate-size: 2336

On Tue, 28 Apr 2026 12:48:23 +0200
Roger Pau Monn=C3=A9 <roger.pau@citrix.com> wrote:
>On Fri, Mar 13, 2026 at 04:35:05PM +0000, Thierry Escande wrote:
>> In order to turn on ACPI for OS, we need to write a chipset-specific
>> value to SMI_CMD register (sort of imitation of the APM->ACPI switch
>> on real systems). Modify acpi_enable_sci() function to support both
>> i440 and Q35 emulation.
>>=20
>> Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
>> Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
>
>Reviewed-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>
>It's not great to add more stuff into hvmloader when we want to move
>out of it, but it's also not helpful to tie the Q35 addition to the
>removal of hvmloader.

I'm afraid the only option to get rid of hvmloader is to move its
responsibilities back into the firmware (SeaBIOS/OVMF). But if I
understand it right, the whole idea of introducing hvmloader originally
was to delegate Xen-specific parts of HVM guest initialization from
firmware to a component managed by Xen itself.

So, to some extent hvmloader can be considered as a part of the firmware
itself as it does things like PCI BAR allocation etc which are normally
done by the guest firmware, but with more knowledge of Xen specifics.

I guess this hvmloader/firmware split model was introduced to have more
freedom/maintainability/control - I suppose it's much faster and easier
to integrate Xen-specific changes to hvmloader directly then to
upstream them to SeaBIOS/OVMF codebases.

But other than moving hvmloader's responsibilities to the firmware we
can't do much I think - HVM guests expect to have full freedom over the
emulated platform. Among problems are non-standard (chipset-specific)
devices which also need to have assigned resources like MMIO ranges -
and Xen doesn't know anything about these devices and their resource
requirements (left alone how to configure them), yet they still need to
have correct BARs assigned with no conflicts with other PCI devices and
to contribute to MMIO hole sizing. This is something which cannot be
solved on the toolstack level unless Xen emulates the whole chipset and
knows about all emulated chipset devices - we limit ourselves to
MMCONFIG now but there are more configurable ranges like this.


From xen-devel-bounces@lists.xenproject.org Tue May 05 14:16:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 14:16:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300720.1575220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKGYu-0007Xx-Dx; Tue, 05 May 2026 14:15:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300720.1575220; Tue, 05 May 2026 14:15:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKGYu-0007Xq-Av; Tue, 05 May 2026 14:15:48 +0000
Received: by outflank-mailman (input) for mailman id 1300720;
 Tue, 05 May 2026 14:15:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKGYt-0007Xk-FK
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 14:15:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKGYs-002U68-OX
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 16:15:46 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f9fb82-5cb7-0a2a0a5109dd-0a2a4504cd3c-36
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 16:15:46 +0200
Received: from [40.93.194.3]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f9fb8e-1dec-0a2a45040019-285dc20389a9-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 16:15:46 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SN7PR03MB7207.namprd03.prod.outlook.com (2603:10b6:806:2e4::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 14:15:36 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Tue, 5 May 2026
 14:15:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uwOsWRSa4Ko14Q7/4NMByV0GlQXKetg9zfwiKTImmb7GHNxkS4E1oWXGqKT/jRzuXG4BrVI7vbXmluPtvFi0NqnADgVDcZg6WgpAFKMCP2O9ZU4VoSmYQi13j00hwu6DC5rXZKtk+Cnmi/wWd7Q0bhApG16hYhvYB5/B07BtXwc+JTC1pDbbzIE4NtLsl0IS4uEAohEKQeo8EGM5gXKQVyCzkptnRMARjovtujBPBuv/rr7hRr7g4xT9dqVbaVCxTmNJPaB3Jm2wWOVpZ99DQytsjOPqMKzhA6tyRSq7VvIa9TKQt9u3bRI/y2a2viNlfLH+nhCuDyma66A+BAED9g==
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=Vx7MD38twReAUfUoLhcvPlJ4BkO2wCvVzg1VXItAjz0=;
 b=GBqEL4+tP33x/H9pWlFEQZzTB1yfDFMjeuBlXrk/RHx36fn3ebN5FEgyD2BgZKj9iCYWBTin7yJgXg3A4FLE15dG80+jm4YQwYc7U4s7z9MR9sY3scUvmUQDZLx2yLp33UzEB4fjgSVFWnanwrF+PV5lhT9GQg00S78Dw7U8yjPt8mR3ubIbBbGFbMM1qem/CF2E7d4KufPks1dqhbBXFLrhuTnN4AZsBgzeKgfVXBeFcYAAvYkN6X3KsuFMLRFMfkoTI4UWhp4SlLHaqsbNDSmLUVbH0RjbQMbs0Yj4NBBxbQmd054DCnrFf+7XZL4oVHd14ThkaLNMPw0HtBjuog==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Vx7MD38twReAUfUoLhcvPlJ4BkO2wCvVzg1VXItAjz0=;
 b=tMrB5Od1TQ6ph1zK/wNV/t990u14v3g7q08N47ArD0b/SySl/QbRBqIA5tSVimsYZxCmZ+WPdoLHlfxRcktLzNzBEUa7vK0nlMQxhNmGSQ0gGhCXhMG5CUw5KoJ5OQ1sR7NJfTbCmv389sekLSp7pavUoDqSbtdO1nt5ptx2Qus=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 5 May 2026 16:15:32 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alexey G <x1917x@gmail.com>
Cc: Thierry Escande <thierry.escande@vates.tech>,
	xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH 00/17] Q35 initial support for HVM guests
Message-ID: <afn7hJB5qaEw4hDj@macbook.local>
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <afBmWSFsyrwy_Ru1@macbook.local>
 <20260505150736.5419a55f@LinuxLaptop>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20260505150736.5419a55f@LinuxLaptop>
X-ClientProxiedBy: BN9PR03CA0042.namprd03.prod.outlook.com
 (2603:10b6:408:fb::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SN7PR03MB7207:EE_
X-MS-Office365-Filtering-Correlation-Id: 9214480b-20ce-4b32-58f6-08deaab0c682
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	TuwV9N6qpIqUbwhgYfDe4DJKDdAMojim0w8JLTi/EUUSF2ZsjkbSKQs79lGZjDBDA50keb5/8Ei3hAvmvVsL6/QFwwezmQnyHWgWErMNTqwzLDNs4mPq2QAibfMBrjjGJ80HtGVBT/hi5KoLdKXm47NTFr4e80PYtKX+GPLfuBWr4//PtjaG/6EuuwvwXmWitAmR+hmKbvmrf7C0pRzV5XLmfr5TsB0qlUR5/nGjtj1wM2QEXdHAeNj9e2dLIeI/bBBYbHCXZ2SBC9UqY26On2vRifOdd/HD8wJx1A1fr243Itcocdhu8OisquaBvAjZfAcG3V6KJQDeY817Vl+XPPkW2KNk9ghTmUgDm+6KKtZtHEWG7egcWLjP/iS/R+rfzgVzJDrTL5ZRDNRDpYdfNhtJcry940pQMqkfBxxtBZoGQF6eTCaOI6ob2PYpkSwLtESBm/CErh7wdLriuy2/ASbivAi06FNBNDAcrB3+MwDtlUQk2E4zKe5h+3FxGJimtXsNrNG0tencwUB9jsFn0PECN2aPN1Og5h9S2xWXoFGOQbA1QzakQfZCqSYX0U0VkKZd5TNVwG1SUKrAe35OtGP62LhdzE4dh3iustFxG6kFZWAa2ZmAyNKu/vllhW41OMNCdUlra97qcUxUWjGC8ssJl2mIeHMv/fV2Wkh5COjAkTdkQZDK1mEIRpXqjTlJFhCq9/pvreIfsSKA38uqmg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZU9Gd1JTNVFpSFJJbEpHcC9Fbzl4RnF5REdPc0FXK01XcUgwR1IwQ1ZvSVZS?=
 =?utf-8?B?VHlhcEVLZ3ZQNHNzSlRJYm1pbGk5TDY3U21GVFo4TmUzUTFmK0ZNaWF1MTB5?=
 =?utf-8?B?Z21ZWUlSejBDYnd3SnIxVWVxellRWW1Xd1Zrc25hV3BpVjMzWFgwMDhkbVI1?=
 =?utf-8?B?QzVQcFV1VWVHMFErODBVT0x1eWlhUVd5VHJ0Ym9aRU5nK3E3YllTWHFTT3R3?=
 =?utf-8?B?ZXVrWEJPVHBKaEp4MTlKNXNyT2lpeGw4Ykw3M2pidEhPY0lDUGJudGd6WmdX?=
 =?utf-8?B?Z1BkdVNCemFXd1RubGRlMHlUS3NwK1ZHRjZveTEzR25rSk1ieWt3S3hIMUpR?=
 =?utf-8?B?OWZKMldhN3pBVWNlN3BLOHRid3R0QXgydUdsMWNJMTNCL3kvZm4wcS9OcUc4?=
 =?utf-8?B?dFJFSEN3YnhHbllDMFE0S1E4TXM3Q2dSdnR1amR0OFBDejlqSGZuYnpERnk5?=
 =?utf-8?B?WXFINmU0S3VBQzcxTE8wNUhZOHZQVzIxSnFYK1BGa1lRSzVtdHhTVzhkQm5y?=
 =?utf-8?B?N3lNS1RqYVhycEJpK1FZUmg3c3BFQnAybzFVM1ZFYnBXSHFNa2grd0pMNGVH?=
 =?utf-8?B?bFdaNDhWdGtRbWtmSmZnLytuRXRRejhOWFQzZEhmVnhGaC9Jc2N0NHNOV3Zx?=
 =?utf-8?B?aFlZTlJaS3NUbmcyN0pqZG9GeStUUW9qVWZVWExYRUdEeTVlQlBDTnRRZzNE?=
 =?utf-8?B?ZEtVRzExZTN1YWkrNk1vbzhYOUJESGp0QmkyUjZiZGlhem0xWnpkU1N4TlFV?=
 =?utf-8?B?cnc1NmFDek5qVFVNcUY0WE5HS1JIemVrZnI4ek5PSCtDMHFvdEtaTFNjTHNu?=
 =?utf-8?B?Qm1PT3l3NDRNUDhBR2h3eGlybjB4OGlVc2FNQi8wb1Z5MWxXSjBDVXcwV0xM?=
 =?utf-8?B?UTRRY2FTNDJFaWxJb084bkhkQ3lxcUY3SEZ6c0tQcWxXd0dNQ3d0ZGtkTTlP?=
 =?utf-8?B?aVl4K1UwR3ZXNHdIWVdpOU90aCtsR0pTcEZSd3RHRTlHMnp4SUpQUjZkV0Z0?=
 =?utf-8?B?eHBrRFpFelNUMzFCUEFWd0hJR3lyT2RRUlZCMmhKQW1VYTFXZXp4cWY1ZG5V?=
 =?utf-8?B?TkhwWkNrWFJwaCtsYXE2cHhvNnBQMWZNTVkzQW5MdW1obmtUM3pxN2E0a0lX?=
 =?utf-8?B?WXZPY3pIWUtmQnpvWUlrTFNqNnhyNjExc2NhcG9WcGM4OHR0cDBLRWF1SFVt?=
 =?utf-8?B?RDVuUnU1WXFCcUg2NEEvTDhmVU9oc1FJTWoyTitubmd4aEgyYUwxaHNGRXVC?=
 =?utf-8?B?WEZVUW5vMWo4aWd1eHRwSG1ja0N2WUxVVSt0TnlWTklIODY5ZTNTQjl3eG92?=
 =?utf-8?B?d1lSOUJpbUNjM2dRMk42VzBoeVNvZTZyVnRGb0c2Zkp2K2dBQW92YkdQZi9w?=
 =?utf-8?B?UHBZMTZ2K3pzTzFvbVVzS0IyNDJjVUV1dTdRSk1iZ2FlQVRWeEhqdmlQSjhT?=
 =?utf-8?B?OE43NGdId1dsY1BpZUdFTTArOFpYa0E5bFUwTkRBMW9FNElpQUJNNWNPenFV?=
 =?utf-8?B?ank4S2RTM0dhRXFuQWwwTGpMTDdSSU90emVwZTRNNEFNTlF3Zk9SendTOEJW?=
 =?utf-8?B?L042OFhFWWVWRnZTSnArVnhJMTBUYXFham1JYmIzMVllcUcyMEpvYXdrN0Fj?=
 =?utf-8?B?Y0xOOVhZNytySUNpeHR0TTlHSGxQcFo5NHc0Q0gvd3FNT0JQckx4NkphU29P?=
 =?utf-8?B?NTREcGJKNVF3dVdUaXZiOHRGVngzdWRxbjNlM3BBcDF4a1U2RzZXODNzWVI0?=
 =?utf-8?B?VEhZVlRqYnowakVHN0UxMHYvalJpTjNnK0VxMXAvNE1CK0FwRWxzSC9uaUxo?=
 =?utf-8?B?NUcrMnV6VGFHci9EcDhYOTZ4VW9OSEMrNE0ram9MTnRvcDR5ZDhNQU9Lb002?=
 =?utf-8?B?WlpxMEVvRDNlZXY1MVQ5a0owbFpLUHpJVXdSNlR1OUNHcFlWQW55UGRhUDZ0?=
 =?utf-8?B?dGxsUnB2TnBGdlVoQTI1clFSMVdteFFpY2xLeXZHcDhRTXNBZXJmYm1zbjB4?=
 =?utf-8?B?Tkx5SXpYODRiWEEvN0Q4TDFoMVhtc2pPaUtZREFoR2V3eHVtSmF5eGlkcEYw?=
 =?utf-8?B?WVhlRGpKSStjVDY1NFM3Z09oOVA0YmxzYWFlMGs3MlVseVZnWnZzdzFzZDNF?=
 =?utf-8?B?MHltWUdSNWR1VzMva2JWQmJOaGN4ZzBjVlZ1TWVKcmFVOGZRUE1BWWIrMmlN?=
 =?utf-8?B?K0N2WFJYTlRLd2ZTVGxJTG9hUElva1c0allKV3paaFBFbitWYzQvbjhkcEpq?=
 =?utf-8?B?MU1jeTNlRUhyVTd2SUk2L1VZbkpVTHNsL1E2T3N6Y0xDQTVJQkRZK28vcXRy?=
 =?utf-8?B?eTdodHJ0OUtzUDVrM29HTFJNTElleDJVK2N0aThqNzFxRFRITDdudz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9214480b-20ce-4b32-58f6-08deaab0c682
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 14:15:35.6979
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: AeH6W/uUyl6ySIBNvBsX+UhYMSaYuTt6zY/kH8Uyd+b9l1gFUAbD0GjdAxMsTP3m76dahu7T++alx49VO6lQ5g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7207
X-purgate-ID: tlsNG-ebf023/1777990546-3224E3FF-CA4798BC/0/0
X-purgate-type: clean
X-purgate-size: 4754

On Tue, May 05, 2026 at 03:07:36PM +0200, Alexey G wrote:
> On Tue, 28 Apr 2026 09:48:41 +0200
> Roger Pau Monné <roger.pau@citrix.com> wrote:
> 
> >On Fri, Mar 13, 2026 at 04:35:01PM +0000, Thierry Escande wrote:
> >> This series introduces initial Q35 chipset support for HVM guests,
> >> based on the patchset at [1] by Alexey Gerasimenko.
> >> 
> >> Basic support means that this patchset allows to start an HVM guest
> >> that emulates a Q35 chipset via Qemu and implements access to PCIe
> >> extended configuration space for such devices emulated by Qemu.
> >> 
> >> Support for PCIe device passthrough is not implemented yet. This is
> >> planned but implies modifications in the hypervisor and the
> >> firmwares, mainly for the support of multiple PCI buses.
> >
> >Why do you need multi bus support to expose PCIe capabilities?  I'm
> >not seeing the relation between those two.  You could still expose a
> >single bus on the MCFG table.
> 
> The problem with the PCIe bus is that it's very "topological" by design
> - and it always wants a valid hierarchy.
> 
> Each PCIe device manifests itself (via its PCIe Capabilities entry)
> as either a chipset-integrated device or a regular PCIe endpoint
> device, which is the most common case. There are more types IIRC but
> these are what we deal with mostly - both for PT devices and
> QEMU-emulated ones.
> 
> But, being a PCIe endpoint means that the device must have some parent
> device. It can be located below a PCIe switch or, in the simplest and
> the most common case, below a PCIe Root Port device.
> 
> In both cases the 'parent' is a PCI-PCI bridge technically, with the
> PCIe endpoint device being located on its secondary bus.
> 
> As the Q35 patch series was done with mostly PCIe device passthrough in
> mind, this brings the main complication - in order to properly place a
> passed through device on the PCIe bus, we need an emulated/real/hybrid
> Root Port device.
> 
> A much lengthier description is in this patch message:
> https://lists.xenproject.org/archives/html/xen-devel/2018-03/msg01197.html
> 
> To summarize, we need this 'valid PCIe topology' nonsense just to make
> Windows kernel (pci.sys driver specifically) not to discard our PT
> device due to checking PCIe bus hierarchy above it.
> 
> This limitation was found/confirmed via debugging - luckily, pci.sys
> had symbols and the main bad function which was failing had a very
> speaking name - something like pcieCheckTopology or similar.
> 
> Emulating the "chipset-integrated device" in PT device's PCIe
> Capabilities was a simple hack which allowed to bypass the requirement
> to have a valid PCIe hierarchy with multiple buses. But the proper
> future direction is implementing emulation of Root Ports or PCIe
> switches I guess.

Oh, I see.  We discussed this with Jan, it wasn't clear whether it
would be a strict requirement or not.  We have our answer now, it is a
strict requirement for pass-through to Windows guests.

> >> The PCIe MMCONFIG area is configured by hvmloader and its base
> >> address and size are set in Xen using a new pair of hypercalls
> >> HVMOP_get|set_ecam_space.
> >
> >I guess I will see how that looks like in the series, but the setting
> >of the ECAM region would better be done by the toolstack.  Setting it
> >in hvmloader is possibly not the best placement, because it doesn't
> >run for PVH guests (and we will want ECAM support for PVH at some
> >point), and there's also a vague plan/intention to get rid of
> >hvmloader even for HVM guests eventually.
> 
> This is the situation where the difference between HVM and PVH might be
> very problematic I'm afraid. HVM guests assume full freedom over the
> IO/MMIO resources setup inside their sandboxed environment.
> 
> It's not just Windows reallocating PCI BARs to its liking, but also
> spans to the emulated chipset's resources. In worst case we could have
> MMCONFIG reinitialization implemented even in Intel's Q35 drivers
> installed inside an HVM guest. Fortunately, this is not what I remember
> was the case, but in theory Q35 driver could have done things like this.

Indeed.  In later patches my recommendation was to trap accesses to
the root complex registers that control the position and size of the
ECAM region, and forward those to the hypervisor, instead of hvmloader
using a side-band hypercall to set the position and size of the ECAM
region.

I've also discussed this with Jan, alternatively we could trap the
registers directly in Xen itself, but the Xen would need to know the
domain has an emulated q35, which we might need to do at some point,
but we are likely not there yet.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue May 05 14:26:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 14:26:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300732.1575230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKGir-00012t-E5; Tue, 05 May 2026 14:26:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300732.1575230; Tue, 05 May 2026 14:26:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKGir-00012m-AM; Tue, 05 May 2026 14:26:05 +0000
Received: by outflank-mailman (input) for mailman id 1300732;
 Tue, 05 May 2026 14:26:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKGiq-00012g-5e
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 14:26:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKGip-00A5QV-IL
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 16:26:03 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f9fdf3-e002-0a2a0a5209dd-0a2a45098d12-32
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 16:26:03 +0200
Received: from [52.101.53.43]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69f9fdfa-2497-0a2a45090019-3465352b61dd-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 16:26:03 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH4PR03MB8019.namprd03.prod.outlook.com (2603:10b6:610:242::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Tue, 5 May
 2026 14:25:59 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Tue, 5 May 2026
 14:25:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rDdR37g1ehbSae5RQSt2XfDM7KraNYqeZACPJFxGKObLDnmnCO+cR/XTOY6vIh2sq749IpMoHaoeki1yGK+rH/YqtJEau8a8uWs24jEnX9XhgXr0I4sbpXfNgIqQUAE2oJzBQSdCv9T3sPnkMMdDyfrSteQUJxDalpGcfU7gN9C9zmyB/BSOp1DMuGyujhRaRMNnebfU61X83UrU0T1fGci0Dby2EF33TUQ8wXwna4LAmdnqc+PeTv4B3Cds+kIINOhrh7y2Eb7XoAyD2vhKSERI9lEAD3voVkNv/09B6ef6NKDfFhjsYKqYi/CKtHbBZmy0vflIAly5oK/vS1aaAQ==
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=sS6iL4GPi2V7a4pSVK06PY2KwK0Yxn4Q413oDigm/1o=;
 b=IEKeMsSiauSCv/J2ecCax3186ZNoB1N3dWfyahAv6gZYhw/OR+AHznP6ptYOPid/6icP4Oo1yACq4utqFpzBY/54uldTbvxK6OmcMTI/gV2zUUE9wbQQz4ZXjybwojrFdVNXT3yWuKPzPAH4bJHjwMNWZovXr0pJ0i0GJqQvS7CE2kMMZ2lFfZZPZ5XTNWd6t3haniEyoe2YLICkp7PoLn57cYA18VW9iPqRWRDedOlU4ykp5CMGOYpdNn165A9FiKKjfJ7u3rmUBkOsUHmnxUymT4Bg6bU5SgnaXs6WyywN1vJIKFu6iZ2WmNWSkv1LLTlO98TDoUPjk9k/ieS1pw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sS6iL4GPi2V7a4pSVK06PY2KwK0Yxn4Q413oDigm/1o=;
 b=nsUW2N6gYNitN9LVZPbF3955FbyeUv3j4zCB9TvkPbbJom9FaC0R9YP2+wXAEt7pYoGQrF0aobOACojl+lS9eTP98yVNX17Jck3xv5EpeB47EJYQlAWUK92FzP59wvp2ZJC8boGEKyElW4i/VyRJ2T5TFeBX17a6uV4pZs7K328=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 5 May 2026 16:25:56 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alexey G <x1917x@gmail.com>
Cc: Thierry Escande <thierry.escande@vates.tech>,
	xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 04/17] hvmloader: add ACPI enabling for Q35
Message-ID: <afn99CqdQcuN4pfh@macbook.local>
References: <20260313163455.790692-1-thierry.escande@vates.tech>
 <20260313163455.790692-5-thierry.escande@vates.tech>
 <afCQd2rTmiGpR_bk@macbook.local>
 <20260505155816.0f8ad76d@LinuxLaptop>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20260505155816.0f8ad76d@LinuxLaptop>
X-ClientProxiedBy: MA3P292CA0047.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH4PR03MB8019:EE_
X-MS-Office365-Filtering-Correlation-Id: d9d4a065-fb7d-4803-906b-08deaab23a13
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	Q61XJouJC/AKRKG+XvAjKHkMe+AZfQgmsanpM9C87CFC2/oPxaPB3OFhOqd0QMK3WICuhG8+udkh5vVKI5HwPcPKUEWjVIwJFEsq2eiiGlDWJVKHxP4Zg2CC7SdqGK8v19T+fd23BB5KLKBXk4uOSWYIpV6kCU61M5ZrKubtqSDwJnCLlmVc0Z/nDJlG1DQ+QNtMayTnjGxkyYkbXbX52zn2ZyXT5HStCHbFCN629Gl08Na6If7WpHfmQyjgZjTzNW/aDBJ4LQDKJsMqYYL4FkvQJ+GxM/1TUhsrp/aqOHW3jurrsdviRuf2cAzpGPfSLopuvdBO+vLKuumDqe8NReuvySD3d7+32Czxa65ng680ahy5d+8ykkdmgIbqKorNyMiVgyqXizuKlt0YIr5G206lKi+DgWzWi0B5xxWIAgUo1o86pMIv06+pccV3Qm9vZUs5Utdse9sPbrwXGXrwpKZffgApTe0tE+DLjtPF3rBnZHt781buBhfIo0tgKEXFKnZyQOsP4NPvwSetqersRClcMVrWAKtV+fi20d1m99RvUkPBUs35UR/ZVn+0IrVgROwFqXV8D0juEydrH7Y57ZXtbpPmZft658Wn6odD1WLGlyQYj/syDqsEgvT0rVVgGIw1t2g6FU0nozwyltFhqbn1FczvX2HNjmHyf0eoTsSGKDI1MxVSzRxFPJQRs2Pl
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VjBlaVZBeEVKQkRFbHFLL2ErclVubHZZRyt4S2pmUWVFSk1Zb3l0dFdEMXZR?=
 =?utf-8?B?dDdiNmVrVUdLdThwVVV5OG1TMUhuWlFrYUZQcnRLTWI0Mm1OSTAveGsvZUIr?=
 =?utf-8?B?MHJkMnBybmVvTi95T1dILzdhcSs1SHpHRStsaFJ6SGwrcHBRU2lkR2FkSFcr?=
 =?utf-8?B?dUZGZkw3QVpTY3BNbUJHdE9Tb3d2NllrU1orQzRXQnZCcnhKbmw2OFMyUHZo?=
 =?utf-8?B?NldEbFErQmx3eFVVbGFNTkJqK0EzMEllKzdLV2dXUlNkY1FnL0F1cnFoWEl1?=
 =?utf-8?B?Q24rajdjaXJOQ2RYZ1lEU2dFZjE0U21uVjBWa1dOeUdHYU1lM2xkYkpRN0dX?=
 =?utf-8?B?R0RCWERRZFFDczg4RHNLYjdlR2JDZ1ZKbXlSNEFzNUZPcUhZNDc1NkF2dHZN?=
 =?utf-8?B?MzdlZmRPcWJzMzNjbnEySzdqc1NJWVNvSzNsV3RMb0piUnhYY3NxY015bjIv?=
 =?utf-8?B?TTRJbzZ1SVNFdEdQZnRKNzRTS293UDc3Y2d3Skpya1BOSjRCQW1lSUc0Wi9k?=
 =?utf-8?B?OE1qem1uU2JicWxOVll1bStickFMQUVzS1dsVmZoTnd5VUp4bk5jNzgreVF3?=
 =?utf-8?B?c3RXdzhkUlVHRjltaW9mOFI4MGdZZGhYRTF0cVhMZzVmdzdwQ0JBSlc3RjFG?=
 =?utf-8?B?cTlFc1JpUkk1V3ZpUzNBZUtSa1BPd2poZEZsc05jbFgyZnV4NzQvb3BnVnhE?=
 =?utf-8?B?RXRiNkN1aW83V2YvSVoxb0lIQiszNHhUZDBBMGhjaEhZaHZNYitpeGR0bVNE?=
 =?utf-8?B?K1ZBUjROSDNHTFNLSjZmT2hFTXBPRlpWNDVybWFlTitXY0xIUERna3BpaW1S?=
 =?utf-8?B?ai9jay9JR1VEYnZ4UG5idjFnM0YxTGRreXZQbGVUVHJINnQycXFYS0kxTzJ0?=
 =?utf-8?B?OVZkaHlock1xRjZvbGFZUXVXN1REZkxFdnBEK3BJZzNsZEp4MkhxaldnUVc2?=
 =?utf-8?B?WVNGVjZ1QU5xMlEzazhYblVxNnFRa1Y3NXlZQnk5Y0RQeXBzd29zcGNzcWha?=
 =?utf-8?B?cTlTcVpDRnlDeGJEaTU1UzFFcEJWdFRuOTVEVDZ0QWFYakhuckZ4Kzk2TkxT?=
 =?utf-8?B?c0lpWm9VZmdWNkVmUFpDdTI3T1Jzb2dTNXRSeEl1QkNKMmJOc2xWbnd4Nm5x?=
 =?utf-8?B?UmV2SHEyS3FnSzFnaWdDbXZHbE1ITExDNXpza20xUEtUc01NUEpOTHpVTFJX?=
 =?utf-8?B?aG1nU3o5VTFyTENIQnBrQ0xYRWxGWmtUN0V3MGhWaHYrVFA0UXpPWlZaNFVr?=
 =?utf-8?B?Sm1NTUZrS1ZnRmQ2VHdsNzVWRi9uekZiK2lsd0VySXdJV2VJRlJudzcwRFFt?=
 =?utf-8?B?elZJUHp6N2tGQVIrWU5yRndlUFE2bWozSzQrbm1lZnpTdXAxYzhNRXJTSG90?=
 =?utf-8?B?R1k2eWtsSWRzVEtRTzR2TjVub1ByQmhIbzNwd2FhVjFXSHN2ODc2R1JnZWQ0?=
 =?utf-8?B?UTBqd2pUaUZGbE9aazUrZTJmaWtkWDdKY21QaUR3UE9yZmdwVlgyU1dPSHc0?=
 =?utf-8?B?eXFPZFY5RDR0d0c5SGZSOTREM3hOOEdZbEpRNmgrQis5bW5vS0tEWjAzK0p1?=
 =?utf-8?B?Y0JGZUU1VjE1SzdZY1JFaVZoTHZFVFhOTWZ3ZEFkZlM0elpsSmRtLzNiYWI1?=
 =?utf-8?B?OXdmdTNiWVRIeE5NeW8wMzZtdWsrQi91UERnbG4vd01qVlYzb05aL2NmZGt4?=
 =?utf-8?B?YVcvZkZKRHpNcUo4cVkvdzlSaFZhSndWWDhtdGlBekEyYkxuazFEM1dRMmhu?=
 =?utf-8?B?UWI0Wm8yb21yZ3JCaUczUGp4YllLVVlSZjllSklaTkhybHVsbE5FZW9la1ZB?=
 =?utf-8?B?eEN1STRNOUtLV045eU1Wa3MwQjlNOVIxak1GSHpRYS85T1hNZ01GdWgrZ1BK?=
 =?utf-8?B?V2xQZmJoNHNNbk5jWUQ5WlUvOFlFY21Hb2hIVVo4OWpwN3FJTVNVZTA3Q3dy?=
 =?utf-8?B?WlhpUUl2QXdVZlpsSFBVeUw3R216ZStpcC9BSUdkV2tOR2t3M0xlSzhabXo0?=
 =?utf-8?B?NXVwK0tTeHlQNDlYb0lWQ2FWalFrWjcyQ3JKcjgxMFNMak85eGJWYUNZeEdu?=
 =?utf-8?B?clFyQXgzUzhxZFd6Rk45TStsdHo5VzFLekxkZXBsQkdvWkk5dWtOcVFxZ1Fk?=
 =?utf-8?B?dkUwa0JoRjdxUTJTdjJ1dThJdk9yeHEyRFNXU1piQlNTUWNuVXJoQ3BGdmd2?=
 =?utf-8?B?QnZCMnFNemxVTE80Q1V0aVpwWVhwOGZic2dGVDJpRzZWNEVoSWhpQnVQeUth?=
 =?utf-8?B?TUtBanFvVGxlRGJlWHg0VWY4aGk0eVAvMXRLTU1rek1xK0s2QTNhNlladXdJ?=
 =?utf-8?B?NGZIc3dML3FqWWU1cjRDRmR1NEFxbnYwdGhTRXdPVENCVExtUWc1UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d9d4a065-fb7d-4803-906b-08deaab23a13
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 14:25:59.1055
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SMVgkpsQ3QihwU4eUI1YRVtzeF/6d87qy9ks2WnqVsoadyBizvAANFkRM78dh7mC923UZ7rslW1rpA+eGngj2g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB8019
X-purgate-ID: tlsNG-bad1c0/1777991163-4216DA53-0C367687/0/0
X-purgate-type: clean
X-purgate-size: 3334

On Tue, May 05, 2026 at 03:58:16PM +0200, Alexey G wrote:
> On Tue, 28 Apr 2026 12:48:23 +0200
> Roger Pau Monné <roger.pau@citrix.com> wrote:
> >On Fri, Mar 13, 2026 at 04:35:05PM +0000, Thierry Escande wrote:
> >> In order to turn on ACPI for OS, we need to write a chipset-specific
> >> value to SMI_CMD register (sort of imitation of the APM->ACPI switch
> >> on real systems). Modify acpi_enable_sci() function to support both
> >> i440 and Q35 emulation.
> >> 
> >> Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
> >> Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
> >
> >Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
> >
> >It's not great to add more stuff into hvmloader when we want to move
> >out of it, but it's also not helpful to tie the Q35 addition to the
> >removal of hvmloader.
> 
> I'm afraid the only option to get rid of hvmloader is to move its
> responsibilities back into the firmware (SeaBIOS/OVMF). But if I
> understand it right, the whole idea of introducing hvmloader originally
> was to delegate Xen-specific parts of HVM guest initialization from
> firmware to a component managed by Xen itself.

Maybe originally?  We then ended up having to add all sorts of Xen
specific logic into both SeaBIOS and OVMF, so much to OVMF that
there's a Xen-specific target/platform in OVMF.

> So, to some extent hvmloader can be considered as a part of the firmware
> itself as it does things like PCI BAR allocation etc which are normally
> done by the guest firmware, but with more knowledge of Xen specifics.
> 
> I guess this hvmloader/firmware split model was introduced to have more
> freedom/maintainability/control - I suppose it's much faster and easier
> to integrate Xen-specific changes to hvmloader directly then to
> upstream them to SeaBIOS/OVMF codebases.

Faster to integrate possibly, but then we end up with IMO a lot of
duplication between what hvmloader does vs what we could offload to
OVMF.

> But other than moving hvmloader's responsibilities to the firmware we
> can't do much I think - HVM guests expect to have full freedom over the
> emulated platform. Among problems are non-standard (chipset-specific)
> devices which also need to have assigned resources like MMIO ranges -
> and Xen doesn't know anything about these devices and their resource
> requirements (left alone how to configure them), yet they still need to
> have correct BARs assigned with no conflicts with other PCI devices and
> to contribute to MMIO hole sizing. This is something which cannot be
> solved on the toolstack level unless Xen emulates the whole chipset and
> knows about all emulated chipset devices - we limit ourselves to
> MMCONFIG now but there are more configurable ranges like this.

I think we do want to move a lot of hvmloader responsibilities into
OVMF (maybe SeaBIOS if possible also, albeit that's a legacy firmware
by today standards anyway).  Whether we would need to partially
offload some of what hvmloader does into the toolstack remains to be
seen.

Chipset initialization would possibly need to be done by OVMF, at
which point we might require PVH guests that want to use PCI
passthrough to also rely on OVMF instead of direct kernel boot.
Anyway, this is quite distant future.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue May 05 14:39:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 14:39:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300750.1575239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKGvE-00035m-GD; Tue, 05 May 2026 14:38:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300750.1575239; Tue, 05 May 2026 14:38:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKGvE-00035f-Ch; Tue, 05 May 2026 14:38:52 +0000
Received: by outflank-mailman (input) for mailman id 1300750;
 Tue, 05 May 2026 14:38:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wKGvD-00035Z-40
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 14:38:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKGvC-00A7o8-Gk
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 16:38:50 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69fa00f0-5cb7-0a2a0a5109dd-0a2a4509cac8-24
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 16:38:50 +0200
Received: from [40.107.201.14]
 (helo=CH4PR04CU002.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69fa00f8-2497-0a2a45090019-286bc90e6d78-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 16:38:49 +0200
Received: from PH7P221CA0055.NAMP221.PROD.OUTLOOK.COM (2603:10b6:510:33c::27)
 by DM3PR12MB9389.namprd12.prod.outlook.com (2603:10b6:0:46::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9870.18; Tue, 5 May 2026 14:38:41 +0000
Received: from CY4PEPF0000E9DA.namprd05.prod.outlook.com
 (2603:10b6:510:33c:cafe::98) by PH7P221CA0055.outlook.office365.com
 (2603:10b6:510:33c::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.25 via Frontend Transport; Tue,
 5 May 2026 14:38:40 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CY4PEPF0000E9DA.mail.protection.outlook.com (10.167.241.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Tue, 5 May 2026 14:38:40 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 5 May
 2026 09:38:39 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 5 May 2026 09:38:37 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=q5ZmVAJY+pSPC//J3dBesRsvEg08zp5tC6pjU6C/jAJ0fyRr4MVeCMH0bqFjrptSgHO9SonSymhU+qZL07eRsKMGS3fmJKnrHBtuTm1/t93X/6NMVCeDT7sbdKbaKu2yiCRfhUlY/8WXLQyGIs/PzKdkUQBXh7zrKY06BhAtGFfDtDMqpWUaPcC0Arjic5yRDtK8k+Km0xlnDSq8WgefVc4ejYk/CHrRqKlsC3zUbLci5Eob7+EERZ032iPjvNvjmdsbw1ruOi9fFWiUByzDafPB4I7Q2ealx8JqcV24Eo44UkN9Ky2hIm9XN3Ix/uGFr5NBrXq559QkPiN3v4RSng==
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=HD00Oj62COg/PiI9JUpmfTm1pstQxRoEJOR6y1VN4Eg=;
 b=YAJQaGmjSYPJYk5Jqx8Y2N/D9Ne8nYGbP7VEFVehTF0eGuVMcBVTi/woSdb3zL/PXHTSbk50eRnbPSBps3eVmLGbtFM9smNooxT1v409VWaCY8UbkvN7b30Gex6yTL1Ie4DCKzlU/RkgWHi3raz+F7yypk5COFMssVrJEsw0PEKHFZF9DzqsbRXiEfqMT/A2ZM4LELIcS6FyeCbrMRulFMhWhGstEQsgR/Le5TrmYiBiQkd48RoeKcxVhQo3MwnpRgDuTH8SZuSYAHyu5Rsv8/uWDu+X3qq06M47C9yVsYkIBKEPFyWDJ8Pu3RSxgVxE+YmOXBKMDNYW5zaSUSh2Bg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HD00Oj62COg/PiI9JUpmfTm1pstQxRoEJOR6y1VN4Eg=;
 b=1xbx8hDNjglljpNAQWB8GsNXZKFLQIqHildSRVMQilcHjv8gTgOGOtdPg4ayGIh8CpyY8ubFPOCLRfr/gSopOFe4iC7NdwyRcmMkhVq/1AtPfB7oYkmyXbxk5eg3L71sAaJXT+jFf200CN7bwS5IZNF8DJjo+5Y0hXAX7zUgyiE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <7f209655-a9a4-4174-ad05-825b175fb90c@amd.com>
Date: Tue, 5 May 2026 16:38:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>, <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Timothy Pearson
	<tpearson@raptorengineering.com>, Teddy Astie <teddy.astie@vates.tech>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
 <afi7HUFoDYabM9VV@macbook.local>
 <65ecf1c0-0844-4ba9-a250-a94aeaf4d251@amd.com>
 <afmYf-ldUxWQXRDL@macbook.local>
 <309b2ff6-c200-47d0-be3f-ec289df641c6@amd.com>
 <0a3583df-2682-426e-a704-aa8711caec0d@suse.com>
 <a90db340-e569-4f77-b5df-dd1a1504f8cf@amd.com>
 <0267eb6f-1161-45b7-8905-d7aecb78e74c@suse.com>
 <e8218607-26d8-4517-8634-df3c365e5bb2@amd.com>
 <afnfeLeYypvBiEze@macbook.local>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <afnfeLeYypvBiEze@macbook.local>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9DA:EE_|DM3PR12MB9389:EE_
X-MS-Office365-Filtering-Correlation-Id: f9c4814e-ac15-49c3-c6f0-08deaab3fff4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|7416014|1800799024|82310400026|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	p4uh5RqjEpyKLRAvxu954CplFlurZEsHqhLUEPyH6fRQvd0X6fSDJwbZKqwtFeJUPIX7K9YIQ+hDj3Xpxjj/gBvLTIxID9zv4abFaOv9/k9AXRIwYim6SvjGDYkkmYkjPwBimUfXKL3c1cThBAqJqkrJELA+fc7Z802uajy3CCbofmKPpudyWDf2tdiwuzdukHy5O1You55ylHobVgzHkx+AqK1EPqmUKhBGap4yuEbUD89X7MhnQR2DvygaGhy4Z68Q5O2yQmKnzp5yU19Q+8tReJvVodwnYVbSNQc5PKaLddKTrBjJmaYGfgQOlbcit2Etj8K64IPDCbt5WHa8LBbV5/x4MkLzhrOLbbhw0TzIBfFNWTRI7JBwDOhqgmPJDNWLpps/7a95jcSGl24RKFN7HLKw/qYBs37tv5vPtPUuNlEf0JHjoHVqegew/9eEWM0yTjHEz7QfAhq2+HKp8LtPJGu47xPJSSRv/wIFyYQow3luoFHRl41bsjjQ7kkdZLQYtMW3BOG4KZXQRLDz0CBu2ptazXNr2tsV+W7NCrZpGCuK2ACdSvyGmIzOr0vr36jAi6ydHQ38CaCSRNeb6X2KzcL32lhP4ZgdQNLAmxpMufesLUeyXD3OfUE27vJbosQB58HOAccRIPtjZCWc7/EN9MmimILSOo56czdJq+klsyDHGMAdQSzKfrCKJSXQFa2+293azBt9c2zdLEms7UQCt0QUyta5Rn1TdVNEduw=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(7416014)(1800799024)(82310400026)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	fokmwBWDBAOSmDGC3mpja+Hz2zz7ovHzR8a8ZAiOa2/ylN7UBkj6Y/peJKpFux/kH8MfTkoXt1zdAOkqQYOAXztisW/Ftpeoh4V1CI6Jdxd4wZ2X7BEp0r4p4rFce/KEZ/oG6gVeSwD1KDqPv6CeEShgMX5pl66hBrFRP1k61Jd9J+xyMOvyEmcoo/xJkfb2sG82cEgtNZIeFNWlbDY9lhs8a79etcYb1a4cK1HwUKBAf1fNg2Q7svqFc+OWdLgmtFsJ7j8JQwwH7FWW4lFnBJNhcE3Bxs+cpGp3N7I+op8EsSHa6IzvS/HF3l29d0tKZ2vvU3lPASMj31wNAwnYkhrQZB8aOQq5FxrUw8G7og+rsAjUfkylA6htBVIGWeP9gMKTrvSJ3j1fMeY0kCevXSRzuN4TUjr9OAWiPP7OVZhQrNadDXEIixc44/lbAiGh
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 14:38:40.0776
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f9c4814e-ac15-49c3-c6f0-08deaab3fff4
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9DA.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR12MB9389
X-purgate-ID: tlsNG-bad1c0/1777991930-93D7FA53-B14C4AF8/0/0
X-purgate-type: clean
X-purgate-size: 5187



On 05-May-26 14:15, Roger Pau Monné wrote:
> On Tue, May 05, 2026 at 01:46:51PM +0200, Orzel, Michal wrote:
>>
>>
>> On 05-May-26 12:49, Jan Beulich wrote:
>>> On 05.05.2026 12:46, Orzel, Michal wrote:
>>>> On 05-May-26 12:40, Jan Beulich wrote:
>>>>> On 05.05.2026 09:35, Orzel, Michal wrote:
>>>>>> On 05-May-26 09:13, Roger Pau Monné wrote:
>>>>>>> On Tue, May 05, 2026 at 08:48:15AM +0200, Orzel, Michal wrote:
>>>>>>>> On 04-May-26 17:28, Roger Pau Monné wrote:
>>>>>>>>> On Thu, Apr 30, 2026 at 02:51:02PM +0200, Michal Orzel wrote:
>>>>>>>>>> The generic pdx_to_page() and page_to_pdx() macros in xen/pdx.h assume
>>>>>>>>>> the frame table starts at PDX 0, which is only true on x86. ARM
>>>>>>>>>> uses a non-zero frametable_base_pdx to offset into the frame table (PPC also
>>>>>>>>>> defines it).
>>>>>>>>>>
>>>>>>>>>> Fix the generic macros to subtract/add frametable_base_pdx, defaulting
>>>>>>>>>> to 0 when the arch does not define it. This makes the generic macros
>>>>>>>>>> correct for all architectures, even though they are only used on x86
>>>>>>>>>> today.
>>>>>>>>>
>>>>>>>>> Hm, I assume this offset was added because the original mask PDX
>>>>>>>>> compression won't (usually) compress the gap between 0 and the start
>>>>>>>>> of RAM.  However the newish offset PDX compression should be able to
>>>>>>>>> compress from 0 to start of RAM, and hence you don't need to apply
>>>>>>>>> an extra PDX offset there?
>>>>>>>>>
>>>>>>>>> If that's indeed the case it might be better to integrate
>>>>>>>>> frametable_base_pdx into the mask compression algorithm itself, so
>>>>>>>>> that on some arches it's a mask plus a decrease.
>>>>>>>> The offset is needed regardless of whether compression is used. With
>>>>>>>> CONFIG_PDX_NONE (no compression, PDX == MFN), if RAM starts at e.g.
>>>>>>>> 0x80000000, the first valid PDX is 0x80000.
>>>>>>>
>>>>>>> OK, so you are doing some (kind of) address space compression (removing
>>>>>>> the leading empty range to the first RAM region) even when PDX is
>>>>>>> disabled.
>>>>>>>
>>>>>>>> Without frametable_base_pdx
>>>>>>>> the frame table would have to be indexed from 0, wasting
>>>>>>>> 0x80000 * sizeof(page_info) of memory just to cover the hole before RAM.
>>>>>>>
>>>>>>> But you don't really "waste" memory, just address space?  Oh, maybe
>>>>>>> not on ARM as it doesn't use pdx_group_valid?  And so you
>>>>>>> unconditionally populate the frametable from PDX 0 to max PDX.
>>>>>> With pdx_group_valid (which this series adds) we wouldn't waste
>>>>>> physical memory for the leading gap. But we'd still waste virtual address
>>>>>> space and the FRAMETABLE_NR check (max_pdx > FRAMETABLE_NR) becomes tighter
>>>>>> because the full range from PDX 0 must fit. For example with RAM starting at 5TB
>>>>>> the virtual offset before the first usable entry would be ~70GB — more than the
>>>>>> entire 32GB FRAMETABLE_SIZE on ARM64.
>>>>>
>>>>> Yet still - this is exactly one of the situations offset compression means
>>>>> to cover. I'm entirely with Roger as to it being undesirable to build a
>>>>> special case variant of "offset compression" into "no compression".
>>>> In this case, if you don't want to generalize the macros, how should we proceed
>>>> on Arm if we still need the offset to cover the PDX_NONE variant that we also
>>>> use? In v1 I just created a local override but Julien wanted to generalize the
>>>> macros instead. The discussion about switching the default on Arm from mask to
>>>> offset that is not even selectable on Arm needs to wait for the new release cycle.
>>>
>>> I'm not convinced of that. If you need offset by default, why not enable it by
>>> default (right now, and potentially even as a backport if there's any bug that
>>> is being fixed)?
>> As said before, we also need offset when using just PDX grouping and no compression.
> 
> But you don't really mean no compression?  The offset itself that you
> subtract is a transformation, and hence a compression, as the physical
> and PDX address spaces are no longer identity mapped?  Maybe those
> systems should have never worked with PDX_NONE, and instead required
> a PDX compression in place (one that would remove the offset from 0 to
> the first RAM range).
I'd argue the PDX <-> PFN mapping itself is still identity here — with
PDX_NONE, pfn_to_pdx(x) == x and pdx_to_pfn(x) == x. frametable_base_pdx
is not a PDX-space transformation; it's an offset that's only applied
when *indexing into the frame table*

Conceptually it's closer to "skip the leading hole in the lookup arrays"
than to a compression of the PFN/PDX number space. It also sits on top
of (and is orthogonal to) whatever PDX scheme is selected.

> 
> It's an incomplete conversion IMO, as ARM applies it to the
> frametable, but not the direct map.
It is applied to the directmap on arm64 — see directmap_base_pdx.

So both the frametable and (on arm64) the directmap apply the
equivalent offset. They use separate variables (frametable_base_pdx vs.
directmap_base_pdx) but the principle is the same.

> 
> Thanks, Roger.

~Michal




From xen-devel-bounces@lists.xenproject.org Tue May 05 14:44:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 14:44:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300760.1575248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKH0r-0004eV-3W; Tue, 05 May 2026 14:44:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300760.1575248; Tue, 05 May 2026 14:44:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKH0q-0004eO-WC; Tue, 05 May 2026 14:44:41 +0000
Received: by outflank-mailman (input) for mailman id 1300760;
 Tue, 05 May 2026 14:44:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wKH0p-0004eI-Db
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 14:44:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKH0n-006TX7-UK
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 16:44:37 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69fa0254-e002-0a2a0a5209dd-0a2a450595a2-6
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 16:44:37 +0200
Received: from [52.101.201.35]
 (helo=PH7PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69fa0253-aaa8-0a2a45050019-3465c923a879-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 16:44:37 +0200
Received: from BY5PR03CA0024.namprd03.prod.outlook.com (2603:10b6:a03:1e0::34)
 by DM4PR12MB6182.namprd12.prod.outlook.com (2603:10b6:8:a8::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 14:44:30 +0000
Received: from SJ5PEPF00000206.namprd05.prod.outlook.com
 (2603:10b6:a03:1e0:cafe::ea) by BY5PR03CA0024.outlook.office365.com
 (2603:10b6:a03:1e0::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.25 via Frontend Transport; Tue,
 5 May 2026 14:44:29 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ5PEPF00000206.mail.protection.outlook.com (10.167.244.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Tue, 5 May 2026 14:44:29 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 5 May
 2026 09:44:18 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 5 May 2026 09:44:16 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ywCHIiJjsGg6/UHvxY7FvpJjHfKZOce1K8x+Oy0CcPzAZFOomU/Gm7pLizaJFzttOfRQyFqhcRDjMdadRk5qGokpV27Qr5WRv2mASG5QgR13d39LOZHYdY5UiMwQl8UbCJnEHFwhmyOFG2Cl8Q015ZCME+2NtJdCEqSPDrygnIa4ljdDMwcxuvMATBG+7b8kwG+n3WClU656Pr2ag8y2kuZ3CN2MayakibHcMTLBhmGd3UHTWxxM3mTUi6riPzlemDFLMBp/wnjeb2PLl9JYLg0mUDKynRI+3V0py7O1K5sVN2jy3DCvIXhcPZIKH3wM0qeF1Ttnylc8bF00boqSsw==
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=yO7qNx99grkF/vOrH79fAYI/FiNTtqMG9yzGQ/AZ31Y=;
 b=cZspjhb4Xca2cRI0UXaRIpboGJLMVaiVXJhXwL4rdHpAq42wta+3mHf39AKRbQu8058zqErPfWvCVWluA50a/gT3C72xEtYL6PqKvK4JvdUeBJyUr49q4s5F7Wkgbl64kA1eU/kNj5qLADI2WlEVOb8blPyDCrriGmNAdlVcyedSWuAkyhYkFDewH54bPage1hmIC565bs1tgszd+joW6oPDzZSysMV4sPS3uZIF03d0HYYphg6E/7+AUBlF9j7yWIY4jw7o9Iy00CN6GWfQviQfvilsoT3TzSAHDDjI+WTUuEFnliMIYaMB7rilLE6bCiMo7tnb6Ueab8MhZpEXig==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yO7qNx99grkF/vOrH79fAYI/FiNTtqMG9yzGQ/AZ31Y=;
 b=35iq6zI8jEWEmArc/77pMtMsmO0rQ/WmFcILYOGo/VbK8eDjA7C0gmbNimlF9+btNJQY5pg8Tx5cab+eVeDKcsJIj8UivLAjNvXMLakxFyHgbHp4RWzo9kUxI/bjJP2NdTcV3voBwtmifIlr2cOzW9ScUz/tb3vpaw32hBLI5Ds=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <323e36d0-63e1-4331-87ad-d84f948feef7@amd.com>
Date: Tue, 5 May 2026 16:44:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
To: Jan Beulich <jbeulich@suse.com>
CC: <xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Timothy Pearson
	<tpearson@raptorengineering.com>, Teddy Astie <teddy.astie@vates.tech>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
 <afi7HUFoDYabM9VV@macbook.local>
 <65ecf1c0-0844-4ba9-a250-a94aeaf4d251@amd.com>
 <afmYf-ldUxWQXRDL@macbook.local>
 <309b2ff6-c200-47d0-be3f-ec289df641c6@amd.com>
 <0a3583df-2682-426e-a704-aa8711caec0d@suse.com>
 <a90db340-e569-4f77-b5df-dd1a1504f8cf@amd.com>
 <0267eb6f-1161-45b7-8905-d7aecb78e74c@suse.com>
 <e8218607-26d8-4517-8634-df3c365e5bb2@amd.com>
 <94f1f29c-0430-421a-8b48-398fa0495966@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <94f1f29c-0430-421a-8b48-398fa0495966@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF00000206:EE_|DM4PR12MB6182:EE_
X-MS-Office365-Filtering-Correlation-Id: 9978e949-f8d3-4a27-822f-08deaab4d01f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|7416014|376014|1800799024|82310400026|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	f4vWtIboYdOESLnV5EEeO6Pqd4bmi6NWN4Do4XVnb0q/FmAXec/hG4EFDqqNb6+8q43B7jM8h/+lGCqXPSFQtNKIBIQV7oakrQCu93sC6gzd1n/R+fXpXiYPzkXZUbAzMmBciAEl3HO59X87SoLQ+L5K7DdUPw47dJGJouodGsnssf4vH1e2ZNgkgyyi9v4T8DLwWX4JmsQfDdRACtO1S9njUihx6Rx3ADLrS1oy4zTV++HLsU7vLZ/oOy3zQ7H71AoFitnLHzq/fkwdZIKGRefE5vR61OVx/IxC/0U2XBu30/8pL+PFH+MdySdLnkavx/GF298RWuB2TvS+HCBovzsvl9cawrauJc8/ePscPTFvw0eyZADcS6Fu6148qHaxIpPdURO7zBENCgmwsOptexAkSZymYmn17TxYMBfHuuAwf1Iwvze9bcMxYpMxQ09V8ZGvX1Lvri7Hkk2Y2yg77wyvCZ7dyU4ctQhb9jf1wu0meb0A7YtZaHfd19WAwD5Df3akyfqZm35taPqpkWX+0aqwb3E983RrsCjQjK/VoiOnSnEf0q7wmlUj6Y65YNYiPuaZxH+PwGqeSBU2WTSv5A9PEAdxD8o0uCTX+CJXhgzYkWkIPB7e09CI+ljb8WENdi+J5SxNpqbYoUr2uUhcbBohY4ohs61aK9PcltEfzwCDpMbtPTs0uGVgAUzVc4fGL4iiYNtH6BVZT9WBpIHvkxC50gnBY/G9WaSISMjZ9Bg=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(7416014)(376014)(1800799024)(82310400026)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	iKCQmHXs7g6+nbwYBf9PQfi7lWDnftpnpUyHuznX0xRTSwEW3HdIKhS71DH+tKyYxJcHBF/v0A90DA+nxetx9ZFI/S4ILiXOlR53S2UvnIkc2EkHN9uAL4L4hM4v+ySrKzrRg9nEJPNke/q2vS5Bg1TdpkTBATOTX+9yrO701/2FvQ4b6pAnk0T97XiVRyzCrFpdBBuA1Y6E3YOZqkPUfPTDVRQu9NJ0swfUJyBUVapl6z4kf9vfv63eokoq/QZPXi6Futa2nWbnUdowO0deYJfezeUnnW/tmrn4xxvJVQt8UzIobuuhDvpR59PK1UaD8KuqY2wU2mGC5PWUUmwV3pFLTx7KbRftbnkaICwJLwOVslJp5VCGx7zCrboTdXcyIdw8kqH9iTdxatm3eRbUcn5JvvoiOEabn66W73ZIrQHYsxGkEkUd0xp2iv3stRm7
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 14:44:29.4762
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9978e949-f8d3-4a27-822f-08deaab4d01f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF00000206.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6182
X-purgate-ID: tlsNG-c201ff/1777992277-E8DA3443-F5CC4783/0/0
X-purgate-type: clean
X-purgate-size: 5955



On 05-May-26 15:00, Jan Beulich wrote:
> On 05.05.2026 13:46, Orzel, Michal wrote:
>> On 05-May-26 12:49, Jan Beulich wrote:
>>> On 05.05.2026 12:46, Orzel, Michal wrote:
>>>> On 05-May-26 12:40, Jan Beulich wrote:
>>>>> On 05.05.2026 09:35, Orzel, Michal wrote:
>>>>>> On 05-May-26 09:13, Roger Pau Monné wrote:
>>>>>>> On Tue, May 05, 2026 at 08:48:15AM +0200, Orzel, Michal wrote:
>>>>>>>> On 04-May-26 17:28, Roger Pau Monné wrote:
>>>>>>>>> On Thu, Apr 30, 2026 at 02:51:02PM +0200, Michal Orzel wrote:
>>>>>>>>>> The generic pdx_to_page() and page_to_pdx() macros in xen/pdx.h assume
>>>>>>>>>> the frame table starts at PDX 0, which is only true on x86. ARM
>>>>>>>>>> uses a non-zero frametable_base_pdx to offset into the frame table (PPC also
>>>>>>>>>> defines it).
>>>>>>>>>>
>>>>>>>>>> Fix the generic macros to subtract/add frametable_base_pdx, defaulting
>>>>>>>>>> to 0 when the arch does not define it. This makes the generic macros
>>>>>>>>>> correct for all architectures, even though they are only used on x86
>>>>>>>>>> today.
>>>>>>>>>
>>>>>>>>> Hm, I assume this offset was added because the original mask PDX
>>>>>>>>> compression won't (usually) compress the gap between 0 and the start
>>>>>>>>> of RAM.  However the newish offset PDX compression should be able to
>>>>>>>>> compress from 0 to start of RAM, and hence you don't need to apply
>>>>>>>>> an extra PDX offset there?
>>>>>>>>>
>>>>>>>>> If that's indeed the case it might be better to integrate
>>>>>>>>> frametable_base_pdx into the mask compression algorithm itself, so
>>>>>>>>> that on some arches it's a mask plus a decrease.
>>>>>>>> The offset is needed regardless of whether compression is used. With
>>>>>>>> CONFIG_PDX_NONE (no compression, PDX == MFN), if RAM starts at e.g.
>>>>>>>> 0x80000000, the first valid PDX is 0x80000.
>>>>>>>
>>>>>>> OK, so you are doing some (kind of) address space compression (removing
>>>>>>> the leading empty range to the first RAM region) even when PDX is
>>>>>>> disabled.
>>>>>>>
>>>>>>>> Without frametable_base_pdx
>>>>>>>> the frame table would have to be indexed from 0, wasting
>>>>>>>> 0x80000 * sizeof(page_info) of memory just to cover the hole before RAM.
>>>>>>>
>>>>>>> But you don't really "waste" memory, just address space?  Oh, maybe
>>>>>>> not on ARM as it doesn't use pdx_group_valid?  And so you
>>>>>>> unconditionally populate the frametable from PDX 0 to max PDX.
>>>>>> With pdx_group_valid (which this series adds) we wouldn't waste
>>>>>> physical memory for the leading gap. But we'd still waste virtual address
>>>>>> space and the FRAMETABLE_NR check (max_pdx > FRAMETABLE_NR) becomes tighter
>>>>>> because the full range from PDX 0 must fit. For example with RAM starting at 5TB
>>>>>> the virtual offset before the first usable entry would be ~70GB — more than the
>>>>>> entire 32GB FRAMETABLE_SIZE on ARM64.
>>>>>
>>>>> Yet still - this is exactly one of the situations offset compression means
>>>>> to cover. I'm entirely with Roger as to it being undesirable to build a
>>>>> special case variant of "offset compression" into "no compression".
>>>> In this case, if you don't want to generalize the macros, how should we proceed
>>>> on Arm if we still need the offset to cover the PDX_NONE variant that we also
>>>> use? In v1 I just created a local override but Julien wanted to generalize the
>>>> macros instead. The discussion about switching the default on Arm from mask to
>>>> offset that is not even selectable on Arm needs to wait for the new release cycle.
>>>
>>> I'm not convinced of that. If you need offset by default, why not enable it by
>>> default (right now, and potentially even as a backport if there's any bug that
>>> is being fixed)?
>> As said before, we also need offset when using just PDX grouping and no compression.
> 
> And as also said before, this really is poor man's offset compression then. That
> may be tolerable if you insist that's best for Arm, yet then I'd suggest to limit
> that offset to just the "no compression" case. It's redundant with offset
> compression, and it may be (possible to make) redundant with mask compression.
> If the latter can't be arranged for, an offset may want introducing there as well.
> But it shouldn't exist independent of the compression scheme used.
Having a single per-scheme mechanism rather than an extra independent offset is
cleaner. But I don't think we can limit frametable_base_pdx to PDX_NONE today:

 - Mask compression doesn't fold a leading [0, first_ram_pdx) zero
   prefix into anything. So the PDX of
   the first RAM frame stays at first_ram_pdx, and without the offset
   the frame table virtual extent is max_pdx * sizeof(page_info)
   rather than (max_pdx - first_ram_pdx) * sizeof(page_info).

   For systems with a high RAM base (the 5TB example I gave earlier
   needs ~70GB just to skip the leading hole, vs. 32GB FRAMETABLE_SIZE
   on arm64) the (max_pdx > FRAMETABLE_NR) check then fails and we
   panic before mapping anything. pdx_group_valid (which patch 2/2
   adds) avoids backing those leading groups with physical memory, but
   it doesn't shrink the virtual extent — only the offset does.

 - With offset compression you're right that the leading hole could be
   absorbed into the lookup table, making the extra offset redundant.
   But Arm doesn't currently select offset compression, it's non-selectable,
untested and switching
   the default is a separate (and bigger) discussion that I don't think
   should block this fix given the state of the release.

So as it stands, the offset is needed on Arm for both PDX_NONE and
PDX_MASK_COMPRESSION. Folding it into the mask scheme (and dropping it
for offset compression) is a reasonable cleanup, but it's a refactor
of the compression layer itself, not something I'd like to mix into
this series.


~Michal



From xen-devel-bounces@lists.xenproject.org Tue May 05 14:53:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 14:53:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300777.1575257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKH8w-0006WU-VV; Tue, 05 May 2026 14:53:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300777.1575257; Tue, 05 May 2026 14:53:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKH8w-0006WN-SX; Tue, 05 May 2026 14:53:02 +0000
Received: by outflank-mailman (input) for mailman id 1300777;
 Tue, 05 May 2026 14:53:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wKH8v-0006WH-V0
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 14:53:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKH8v-006Vcm-83
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 16:53:01 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69fa044b-bab6-0a2a0a5309dd-0a2a450acf4e-6
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 16:53:00 +0200
Received: from [52.101.52.43]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69fa044b-56b3-0a2a450a0019-3465342b9d0f-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 16:53:00 +0200
Received: from BL1PR13CA0003.namprd13.prod.outlook.com (2603:10b6:208:256::8)
 by CH3PR12MB8546.namprd12.prod.outlook.com (2603:10b6:610:15f::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 14:52:50 +0000
Received: from MN1PEPF0000F0E0.namprd04.prod.outlook.com
 (2603:10b6:208:256:cafe::73) by BL1PR13CA0003.outlook.office365.com
 (2603:10b6:208:256::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.13 via Frontend Transport; Tue,
 5 May 2026 14:52:50 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000F0E0.mail.protection.outlook.com (10.167.242.38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Tue, 5 May 2026 14:52:50 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 5 May
 2026 09:52:49 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 5 May
 2026 07:52:49 -0700
Received: from [10.71.196.80] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 5 May 2026 09:52:48 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Qfm7Trj3IP1qAiIIETHMWLi7tu66EzFvJkSG6Wgc+CwmH03trdJUU+1UzAdLm7sUVeTKzDDZuCO8HceHL741aKgsJM7wvdqQlYPorWJYFMtZ9bFucAzFBw15eoNJv5M1KNZq+hQF9MCHCrELMhJWLUSf81emMLrUcsTYPRnAoeg4zV6+Cgt1vKEgfYpneNAfiKxTGg9fkApP5lNXK2UWMy6JiM49zZ+xibPQB75w+8lL1pHZGEJ8ElW390QvNSOIpdiP1+rYjmUPfged2KZK8wZ65QLTrJvcXdAxz125ZUPX22Cf71Rl1wQLAmbKwuK3cCCivnyU54plfRxGlAJ40g==
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=bRjDYUCgD/tOtGW6rkMYl+B7O9PGHUlDXdxoFIK/BI8=;
 b=yVR4Hxa7xal0FP5+vdj+GlSDutjTdF2u32QNazs99llhwGo0QEPYilUozc53Ru5RX0WnVsfcgcbnuCtFeUDHFFh9jagd6+clbj/KalkT08Ukkmj2iDKkKz1RGf2dPzTjYwjTxThYD1CBzWN7uI8Glt8RXW187c9TZn5hmngiWvnl5qvyaSeHnFbeFdp5/r1UQ/tH+WKHirEPy96pC9cm8VPVQ8UOvsynN5saq8N+8j1eiFMkse+XLOT5zrmTVg8CBH045pZLvU5SpY8lJlIB8fPsn5yldUwW5hPj8SuJaSFmSosH0mN39jgVVX+15Iy2r4fL5Mh2/TQT7lsR9vDqgw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bRjDYUCgD/tOtGW6rkMYl+B7O9PGHUlDXdxoFIK/BI8=;
 b=3NkGHtCnvuTaG3NK7IP2ZPCsMuXAaJAHwEMoAmlfXiwpMIql15Yl8i8nzbZro+933mHfG0SpKooC60av1kj0+wlEFuiisdZCT9O71PeuBgiTyM9hMWmUL2IrwGiTs4Owk2rj5DGgU+AwhKA+MfjOrFIxts6Tx1wPYijBE4AiZnA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <d7b30467-50ed-482c-9046-6a51d43bb514@amd.com>
Date: Tue, 5 May 2026 16:52:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
To: Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Teddy Astie <teddy.astie@vates.tech>,
	<xen-devel@lists.xenproject.org>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
 <661c18d9-eceb-4a4e-ac2e-37a6931e06b2@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <661c18d9-eceb-4a4e-ac2e-37a6931e06b2@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E0:EE_|CH3PR12MB8546:EE_
X-MS-Office365-Filtering-Correlation-Id: dd6fbcaf-648b-45a3-66e3-08deaab5fa9a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|82310400026|7416014|1800799024|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	yzpb0aNrlWD+InGTrf5uSJpS43sWKCMr6ckZuan1g1bGez0C5asmbVoiQEZ3yZ6/RbZUHLg9whhmyRJ0fc+pacTj/6u8ly+jvzvRgx0sQOMb9JMaHE08/6mgj1uDscou36SJ9YCxYHY8+eXHfVSc+xuaTIwBDmULqbRQV/dbF6u0WttLu67bOaxzf07in9RyqoNSUdROa7fQQitWurYPbkoxKPS5FJW2bzVC/zLe2LISxa5wCDwPWIoy9nieZnf6OxHiGh1xOm+bChmiJLZebk3jb7SOdUIrT881LNtXllkTzeDntju/ZqUxDsPH7HeN+9YcyIIphXjF7aNO3oiGvDO7I+1Y0wMpDfYyl3Kk5nTRBGjzQIcX0zZRSso0F4QPnvjHYw+nnjChGliStDMCswtcFSlXt1hIK/uNHizv1pA1ketd3Emrrd6fhf63YBOg8Cxas8312k1YeYMcaXyFNfgXiDYMlFDgnrGvUHiK9IaPu3bakyb0y4LkpyfFfR8Xcp8YHV6KyjjMgQT/LQ+RCg9ulzs5h3Xwl2atOdM7Z5fgzlubkPpdMYFWUHxiUsYigfui4CywAjNgWSMEcgOKsww9B9eeha35LEKxx5s3G0tdtbKwp/+aRIftbf5tLFUbBPFZ+79LLGFQTIdZ0UPQjjJ0KTxP3u35u0gM9nrOKmNvZ/PIxH+CO1t7JS6hmY0kmPmzobiGWwQ8IDxxmoUw28NG1N6zfsrdnr3WaVOSOxQ=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(82310400026)(7416014)(1800799024)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	XJM9fQ1EduezxB2GcU1Ij8C06n7nQUYoAzU+C9/9U9hymyMxnoTInri4eRVck64AA2KonXGSAbi9qbd0/hGtY3NmbYfOf1bh5szKn8YiE90cA0j+iCYTqrMJtGHHekokcus1Y4d7pSFSQPIUU3zMIZYEJ1nPnBojPFaKGicH4Czl+ygIyPAMDfJmuw/kUxdEWBa3D3RmVmzWMe40CPBz6IH1vU6wF0PFFUQ+wjbJdY0MgfsWINkGcgBBO1Sb32+4UicNGTNrrNaRaPWWmHViALCNK7qUNRK6Bs9qlXHRHOTZ06GW1H3bs+idUvIpWy0imN6T+3383biOLBJMIHoJZcMO1F6wEZlW4KvJ7fa9oIg/75nbmVEZuMdu3DIb53y8vnXn6z2/BO2i7TYrp81NQIDcnzmZ/Rk7V7NyHzZm+pVXhOiAaH1ImHjL8n+7mXfZ
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 14:52:50.2973
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dd6fbcaf-648b-45a3-66e3-08deaab5fa9a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0E0.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8546
X-purgate-ID: tlsNG-4011c0/1777992780-465748B7-D5448F01/0/0
X-purgate-type: clean
X-purgate-size: 1647



On 05-May-26 15:05, Jan Beulich wrote:
> On 30.04.2026 14:51, Michal Orzel wrote:
>> --- a/xen/include/xen/pdx.h
>> +++ b/xen/include/xen/pdx.h
>> @@ -132,8 +132,9 @@ void set_pdx_range(unsigned long smfn, unsigned long emfn);
>>   */
>>  bool __mfn_valid(unsigned long mfn);
>>  
>> -#define page_to_pdx(pg)  ((pg) - frame_table)
>> -#define pdx_to_page(pdx) gcc11_wrap(frame_table + (pdx))
>> +#define page_to_pdx(pg) \
>> +    ((unsigned long)((pg) - frame_table) + frametable_base_pdx)
>> +#define pdx_to_page(pdx) gcc11_wrap(frame_table + ((pdx) - frametable_base_pdx))
> 
> If you alter these, ...
> 
>>  #define mfn_to_pdx(mfn) pfn_to_pdx(mfn_x(mfn))
>>  #define pdx_to_mfn(pdx) _mfn(pdx_to_pfn(pdx))
> 
> ... how come these can remain unaltered? Maybe you have some special
> arrangements in Arm code, but surely in generic code transformations done
> should be uniform. After all
> 
>     ASSERT(page_to_pdx(pg) == mfn_to_pdx(page_to_mfn(pg)));
> 
> (and alike) ought to be universally true for valid inputs.
The invariant holds. There are two transformations on different
boundaries:

  - PFN <-> PDX: the compression scheme — lives in mfn_to_pdx /
    pdx_to_mfn.
  - PDX <-> frame-table index: +/- frametable_base_pdx — lives in
    page_to_pdx / pdx_to_page (and Arm's page_to_mfn / mfn_to_page).

On x86 the second is the identity (frametable_base_pdx == 0), so it's
invisible. On Arm it isn't, so it has to appear in the macros that
cross that boundary. Pushing it into mfn_to_pdx as well would mix the
two boundaries and double-apply on Arm (page_to_mfn already adds it).

~Michal



From xen-devel-bounces@lists.xenproject.org Tue May 05 15:20:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 15:20:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300801.1575266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKHZT-0002i3-1K; Tue, 05 May 2026 15:20:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300801.1575266; Tue, 05 May 2026 15:20:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKHZS-0002hw-Uq; Tue, 05 May 2026 15:20:26 +0000
Received: by outflank-mailman (input) for mailman id 1300801;
 Tue, 05 May 2026 15:20:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKHZR-0002hq-94
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 15:20:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKHZP-004FA0-4H
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 17:20:24 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fa0aa7-e002-0a2a0a5209dd-0a2a4504e16c-48
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 17:20:24 +0200
Received: from [40.107.209.68]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fa0ab6-1dec-0a2a45040019-286bd1441d2d-4
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 17:20:24 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB7076.namprd03.prod.outlook.com (2603:10b6:806:33d::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Tue, 5 May
 2026 15:20:19 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Tue, 5 May 2026
 15:20:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=X0yFCG9o776Yfu2351swqgUkBJJ1lh0SLSXt95oO+eyF5Yun9pJI0ku0Z/VVM1mwNDVVhWaR1O7g1hjrLL1988m/1c84cBPeTzgjkeYvR4uNns8sgPkGmoE8DrFrTCRv/lxp5EnE8aF/OIjJqTKAGVvfvj9zYnbl+r8/O6wZM78YooKud5naQAdAasSTpZbmabSU7j65gRGWF9GHc4GbLtUgdkEGImcrKj8b5lFdvWdAm27keuRD2zlhnJGY9iB82WQbf3FcxMskB/G4xK00eCYl2EtCgwZtpcZXL6/qn/w7Pi+BkajEvJkgWbb74u0GyEaDvXE1zse56Ssroum+jQ==
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=Dj/j1347nmGGMN+UrJY1jiDh2tQtl1UDfnAXMgjXy4U=;
 b=rVyN+F5az3qjmVLvifsGTdiX2tSZu0gJKHf+2BxtaaLJMVQ9dLcxstmBXcGzYBdQpuRGYaENKOmuAXUfkQFr9oi3u/4gqrhs7yHzG10a2Y6eWIfiYs1EQBTvuXpIOKwkQa14SClU1iTteWKfMnpqW55GWgrxyce5FsFB5/vGJ4f5RuGGMXpR3/8URSF/Z+O3Y6uLrr8BJAJ7bR0XG176CHWvJ6RB8PRicFGQQX3KKpeQPDFVvTAd33tId3+jfGnntQlrWpbGGwMBLkwfRKtsmMP9ZueaHHzI2Zo1XnG85FYANV0th+wbKuyIeVoY0nbWOJRU35xYIXGQ750wcgq/uQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Dj/j1347nmGGMN+UrJY1jiDh2tQtl1UDfnAXMgjXy4U=;
 b=tAqVGWbSy02hfJKSBZdJYuPzCg06tkkvXR3qulTzNOErp8g7lS+gBdOQBmoddk29jhnhaUrvhR5/EcSf05u5b6K9hrlMTupQ5Jv/YU3PXjD8aFDnYCkX6EEDJwUooCtYt5JUr72GPWgMfcB9ALE4SFOPqLvv8FL4vMceOJRAC5o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 5 May 2026 17:20:14 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
Message-ID: <afoKrmK7-vkPe8qE@macbook.local>
References: <afi7HUFoDYabM9VV@macbook.local>
 <65ecf1c0-0844-4ba9-a250-a94aeaf4d251@amd.com>
 <afmYf-ldUxWQXRDL@macbook.local>
 <309b2ff6-c200-47d0-be3f-ec289df641c6@amd.com>
 <0a3583df-2682-426e-a704-aa8711caec0d@suse.com>
 <a90db340-e569-4f77-b5df-dd1a1504f8cf@amd.com>
 <0267eb6f-1161-45b7-8905-d7aecb78e74c@suse.com>
 <e8218607-26d8-4517-8634-df3c365e5bb2@amd.com>
 <94f1f29c-0430-421a-8b48-398fa0495966@suse.com>
 <323e36d0-63e1-4331-87ad-d84f948feef7@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <323e36d0-63e1-4331-87ad-d84f948feef7@amd.com>
X-ClientProxiedBy: BN1PR14CA0008.namprd14.prod.outlook.com
 (2603:10b6:408:e3::13) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB7076:EE_
X-MS-Office365-Filtering-Correlation-Id: 84ba5677-2f7a-48d9-8ae2-08deaab9d095
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|7416014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	XYS0V303CwMlmnreoV1H77EH2rs6IWvcTTcjZUsPTE3FKsyRc3pj60VYd5wDt08N6Y94qbd8jGAKc05X3JutePejE28P6km2jYVuq963scEeErwh+im6zB4P4c8SJZYXMsGENpjr15sWATFuytY6BZP7k60aouNsAyiVVtEkid7EinD98si7+0fzxF1l8N3A//M0H0ZvI6eRMromN8P01OgWgb1zl89YDuBNffVw+DUQB0x1WYKdNzU2AwXwbnf9IOo7rBtg0OxGNzIsdPMbOOAbb7XM3HjuCrMb0UkkW/8TKJA3Y49B6ig1tpfV177sF6/ATjIp2JmAqg+4evy4+2IQVJRTBO4+rfkTiwIVXqB9bdNba78v6kvscDzuIjrJB4YCtghq4bA58hEmWV0NS6OMAzGyX/GunQvwpRLq2gvdeENRFVskwAChjCRSsvB+FepZ+Zk8hzp7lbHxCkbmuDuFgYYbYpia9HSthX5/Z68HJxLtqdX4OGRGznZxyl9Kj1CLjin7wLBRGy0ZO38D8jbtFqK8iDiNKMYd1CMjbp03KKL+btqFHEtNjKL+ky8CZUujqWkIToNa/oY99cEGeBe4BjBnwCxMcYyBCO1/kMVO2ea1Z6w4K9KrIq2WkR6ecmgCWDv7tTH84thVnRt1dZrUflpXyaF3Jgaf6qYlxos9adDGzWVu26EsXD+41JdB
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cE5yNFJFb0hBSUN2cGRiWVFoYU5tY1RWd0hoTTRFcjFCUUZRT1llQ2hMa2hh?=
 =?utf-8?B?VTA0bkVVT3g0MlRqWGNDUHl4OXFrL2ZiVzIwb3ZEdVU0SUxLSG1nT2tpeGJS?=
 =?utf-8?B?cVEzc2w5UEhSakMyeCswbDZaOElhRDR5MHp5RndSN29GamwwVk0wSkdMeGF3?=
 =?utf-8?B?bURqWnA2WEhEN1hScnpmOS9PK25EcXZzbnhsUE9YZTZlczhyYmNkV0o5b1U0?=
 =?utf-8?B?N2h3bzhZakN3ZzJ6aDNZSldmVE1WalBnT1R3VFQwdlEzcnZjYjNkc2o2WmI0?=
 =?utf-8?B?cU9INTcxOW5sUDJ3NzN1TVIxVEVyR0MzSHIzTVAyS0hUMkIyaGFENDFDSmJL?=
 =?utf-8?B?OGtrMW1oayt3MWdoR3lTZ29OeDh0VXl5MW13V2ZDZmVPTzhTdzVmNTIrVlNG?=
 =?utf-8?B?dlYzb1RBUjJnRGNqMUlubzk5eVljRnF1QUxxb3JNWkEzdzBQSlVoc3dxMDc1?=
 =?utf-8?B?bDFubld1RnBQVXg3ZW9mTzhMQi9PQjRTS3lINm9zOXNtcmdkNGloZXUyajRL?=
 =?utf-8?B?cFEzM3lhVTcrakNmNlBWOGhCRFpJOW5GT2QvVUIwd3hSRmN1d3BXbnZLR3lG?=
 =?utf-8?B?MUhpTjVObmcycDU5RWN3aS92elpYWWtnVWNpRWppYnBiQ2RzQXlXdXV6dzZt?=
 =?utf-8?B?eTR5bE9ycHdsUk1wdU9qVndLQ2UrZWo3UnROWlJaVHVtQ1ZKWFg1Z2JTQzdR?=
 =?utf-8?B?N0dHeno2c0NETW9NRzQvWC9ZZmlPRmdSTWZKaGc4a2M0Wm5wL1Z3K0cvMmJF?=
 =?utf-8?B?cEV0TGkvc2RlVDhtOHVqeXFXd2pnNmNoMlZFMFc4Ti9xeTQzdkF2cS80R3VU?=
 =?utf-8?B?cnF6YTJONEh3MmxNa2lLZXliZjFtRTRvRkdEbUgzV2NQUTVYUjBYWmpaQWNl?=
 =?utf-8?B?YStvUEJGTzR1MWNmUlEyTGI4RHI1d3czZnduYm9MR1pJVk5ndDk3d2NBTW8v?=
 =?utf-8?B?ZjNJRytQSS8xeno4VUY0MWVqcDBOejhUNGZBZHF0aHJLOWlxZm02SzRBb3Ey?=
 =?utf-8?B?cG03SlpETk5TbklERGdsODN6bjVaM3FZb2g1R2d0R2lvNllzLzJEUFJOOElM?=
 =?utf-8?B?WGdFWWsyTU9DeDZaV2pxT2hYNlhTa1FMRjZDQlZRazFEbFRlSDFiS2xRVElu?=
 =?utf-8?B?b202WjFtcFArNjdFK1h4WmdidmQ4QWoxK29VUkhRYlgyTy9FTVNHSWE1bktF?=
 =?utf-8?B?emx6UHlsVWhJT0tub2JQelEvMHdyRkVjaHFjc0JOTnhsL2c3dzgwSW1ORXVy?=
 =?utf-8?B?QXZQOXh4UzFMMHRWbXIyRW5WOGwwVEdzdlNTLzQ5WGVhcTE2VkZ5bVB4THZp?=
 =?utf-8?B?eDVVZjZ0bDhuSnliQTNuZXBQbXFiZnQ4Si9ub3dRYW16RHpVbmUvZnFiSENh?=
 =?utf-8?B?bUtyY0NCMDNNMmkwQjRSUEFCdWpSYlZkOFZzV2IvYU5oYVo4a2kwK3BlWUpX?=
 =?utf-8?B?Q3dXdnVvRE9HdmREOWNqWS9rdGVXYmtkZDUvSjFEa0NHU3FrRmw2NXJ2cE96?=
 =?utf-8?B?N1RYVzEwb3UzT3pCZGNjTEZBRmZKOWt0SFZRUU5VdWFJZ1N2b2FVVmhtUnVF?=
 =?utf-8?B?U1Y4c1JjYUpJbTFFREdBbkFnSktrTGVZcjg2aWJZUUt6anNseHI0QnkwVnV1?=
 =?utf-8?B?UnVMUFBDV1hqUUdqMC9aZkdMdG1OU3N2bjRrbWFhV2lXMFJoUVlVUmN6dzVs?=
 =?utf-8?B?b09zYXBJdlg2TnZLTFJDNEdLVkptOWpsNFZzcm0vMFNoTFF4eks4SU8wcWw1?=
 =?utf-8?B?QTlmMkRkUW42bnVHWEdOdjcwRUhFZ1VlaHRiYmRIOWp4U1Q5ZkRvZVFOMzhw?=
 =?utf-8?B?cjlpdlFJTmdzc251dGZScHcxVFRzeGZlNWMveGJGMTd5QjVMRkQ3QXk2ZXJj?=
 =?utf-8?B?Q29MWG1KMm9CM3VEdmhWSk9KdXc0ZGdNMFVmRng1dWxXZ0MvL0xrbmtPYi8y?=
 =?utf-8?B?czErNUdtaDJDWHRVUHJJclhLekxsTXE3Q3dWUVovWDhGZ01PVlB1em14K3Jm?=
 =?utf-8?B?WlcxR2dub3dSNmZmQ0FVTE85RHY3Yk5RdlNUa1YyNHBiazNsczlLQkptem1B?=
 =?utf-8?B?d2dsa2lscUNYWmEvQ0FMYjBGcmVqaE0zMXVvZVk1MHlRcTVmQ3FRR0hOdXZt?=
 =?utf-8?B?VUtqK0xmTFpQYWR6OWh2UlJUNURUalBRZmdybnZqR2xFOEwwcVJDZXlKdk03?=
 =?utf-8?B?QTQxMWtuQUV1OVYwYklWc3BGdVdqUElCc3JBTFBISzRha05hOUxWZFhYQ0lh?=
 =?utf-8?B?Nmd3KzFTTEkvSUlMcDdudjhWNHlKeVlYVWxlZnB4N1VIRmpmQS9HalNuSkZM?=
 =?utf-8?B?eXFqTlk0YlMxbE9KVXIyazV1cmw2MkxrcjZEK3RMK3pMcDdMUlVXZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 84ba5677-2f7a-48d9-8ae2-08deaab9d095
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 15:20:18.1465
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: n14dwXWYmrJI5+1x3pBW25kf7ThXh0OdPB4V1jvt3zyrTMDvXWVJgE4M6EvFPIPSMhnTk7bRVcRCmiKMmi8n+g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB7076
X-purgate-ID: tlsNG-ebf023/1777994424-43D6C3FF-122A9B51/0/0
X-purgate-type: clean
X-purgate-size: 6418

On Tue, May 05, 2026 at 04:44:16PM +0200, Orzel, Michal wrote:
> 
> 
> On 05-May-26 15:00, Jan Beulich wrote:
> > On 05.05.2026 13:46, Orzel, Michal wrote:
> >> On 05-May-26 12:49, Jan Beulich wrote:
> >>> On 05.05.2026 12:46, Orzel, Michal wrote:
> >>>> On 05-May-26 12:40, Jan Beulich wrote:
> >>>>> On 05.05.2026 09:35, Orzel, Michal wrote:
> >>>>>> On 05-May-26 09:13, Roger Pau Monné wrote:
> >>>>>>> On Tue, May 05, 2026 at 08:48:15AM +0200, Orzel, Michal wrote:
> >>>>>>>> On 04-May-26 17:28, Roger Pau Monné wrote:
> >>>>>>>>> On Thu, Apr 30, 2026 at 02:51:02PM +0200, Michal Orzel wrote:
> >>>>>>>>>> The generic pdx_to_page() and page_to_pdx() macros in xen/pdx.h assume
> >>>>>>>>>> the frame table starts at PDX 0, which is only true on x86. ARM
> >>>>>>>>>> uses a non-zero frametable_base_pdx to offset into the frame table (PPC also
> >>>>>>>>>> defines it).
> >>>>>>>>>>
> >>>>>>>>>> Fix the generic macros to subtract/add frametable_base_pdx, defaulting
> >>>>>>>>>> to 0 when the arch does not define it. This makes the generic macros
> >>>>>>>>>> correct for all architectures, even though they are only used on x86
> >>>>>>>>>> today.
> >>>>>>>>>
> >>>>>>>>> Hm, I assume this offset was added because the original mask PDX
> >>>>>>>>> compression won't (usually) compress the gap between 0 and the start
> >>>>>>>>> of RAM.  However the newish offset PDX compression should be able to
> >>>>>>>>> compress from 0 to start of RAM, and hence you don't need to apply
> >>>>>>>>> an extra PDX offset there?
> >>>>>>>>>
> >>>>>>>>> If that's indeed the case it might be better to integrate
> >>>>>>>>> frametable_base_pdx into the mask compression algorithm itself, so
> >>>>>>>>> that on some arches it's a mask plus a decrease.
> >>>>>>>> The offset is needed regardless of whether compression is used. With
> >>>>>>>> CONFIG_PDX_NONE (no compression, PDX == MFN), if RAM starts at e.g.
> >>>>>>>> 0x80000000, the first valid PDX is 0x80000.
> >>>>>>>
> >>>>>>> OK, so you are doing some (kind of) address space compression (removing
> >>>>>>> the leading empty range to the first RAM region) even when PDX is
> >>>>>>> disabled.
> >>>>>>>
> >>>>>>>> Without frametable_base_pdx
> >>>>>>>> the frame table would have to be indexed from 0, wasting
> >>>>>>>> 0x80000 * sizeof(page_info) of memory just to cover the hole before RAM.
> >>>>>>>
> >>>>>>> But you don't really "waste" memory, just address space?  Oh, maybe
> >>>>>>> not on ARM as it doesn't use pdx_group_valid?  And so you
> >>>>>>> unconditionally populate the frametable from PDX 0 to max PDX.
> >>>>>> With pdx_group_valid (which this series adds) we wouldn't waste
> >>>>>> physical memory for the leading gap. But we'd still waste virtual address
> >>>>>> space and the FRAMETABLE_NR check (max_pdx > FRAMETABLE_NR) becomes tighter
> >>>>>> because the full range from PDX 0 must fit. For example with RAM starting at 5TB
> >>>>>> the virtual offset before the first usable entry would be ~70GB — more than the
> >>>>>> entire 32GB FRAMETABLE_SIZE on ARM64.
> >>>>>
> >>>>> Yet still - this is exactly one of the situations offset compression means
> >>>>> to cover. I'm entirely with Roger as to it being undesirable to build a
> >>>>> special case variant of "offset compression" into "no compression".
> >>>> In this case, if you don't want to generalize the macros, how should we proceed
> >>>> on Arm if we still need the offset to cover the PDX_NONE variant that we also
> >>>> use? In v1 I just created a local override but Julien wanted to generalize the
> >>>> macros instead. The discussion about switching the default on Arm from mask to
> >>>> offset that is not even selectable on Arm needs to wait for the new release cycle.
> >>>
> >>> I'm not convinced of that. If you need offset by default, why not enable it by
> >>> default (right now, and potentially even as a backport if there's any bug that
> >>> is being fixed)?
> >> As said before, we also need offset when using just PDX grouping and no compression.
> > 
> > And as also said before, this really is poor man's offset compression then. That
> > may be tolerable if you insist that's best for Arm, yet then I'd suggest to limit
> > that offset to just the "no compression" case. It's redundant with offset
> > compression, and it may be (possible to make) redundant with mask compression.
> > If the latter can't be arranged for, an offset may want introducing there as well.
> > But it shouldn't exist independent of the compression scheme used.
> Having a single per-scheme mechanism rather than an extra independent offset is
> cleaner. But I don't think we can limit frametable_base_pdx to PDX_NONE today:
> 
>  - Mask compression doesn't fold a leading [0, first_ram_pdx) zero
>    prefix into anything. So the PDX of
>    the first RAM frame stays at first_ram_pdx, and without the offset
>    the frame table virtual extent is max_pdx * sizeof(page_info)
>    rather than (max_pdx - first_ram_pdx) * sizeof(page_info).
> 
>    For systems with a high RAM base (the 5TB example I gave earlier
>    needs ~70GB just to skip the leading hole, vs. 32GB FRAMETABLE_SIZE
>    on arm64) the (max_pdx > FRAMETABLE_NR) check then fails and we
>    panic before mapping anything. pdx_group_valid (which patch 2/2
>    adds) avoids backing those leading groups with physical memory, but
>    it doesn't shrink the virtual extent — only the offset does.
> 
>  - With offset compression you're right that the leading hole could be
>    absorbed into the lookup table, making the extra offset redundant.
>    But Arm doesn't currently select offset compression, it's non-selectable,
> untested and switching
>    the default is a separate (and bigger) discussion that I don't think
>    should block this fix given the state of the release.
> 
> So as it stands, the offset is needed on Arm for both PDX_NONE and
> PDX_MASK_COMPRESSION. Folding it into the mask scheme (and dropping it
> for offset compression) is a reasonable cleanup, but it's a refactor
> of the compression layer itself, not something I'd like to mix into
> this series.

Right, then it's likely best to avoid generalizing frametable_base_pdx
and instead focus on integrating it with the PDX mask compression
algorithm at a possibly later time (after release)?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue May 05 15:23:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 15:23:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300812.1575274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKHce-0003HL-F3; Tue, 05 May 2026 15:23:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300812.1575274; Tue, 05 May 2026 15:23:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKHce-0003HE-Bw; Tue, 05 May 2026 15:23:44 +0000
Received: by outflank-mailman (input) for mailman id 1300812;
 Tue, 05 May 2026 15:23:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wKHcd-0003H8-Bj
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 15:23:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKHcc-00H1Tz-Ov
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 17:23:42 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fa0b56-bab6-0a2a0a5309dd-0a2a4506c922-42
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 17:23:42 +0200
Received: from [209.85.208.170] (helo=mail-lj1-f170.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fa0b7e-7371-0a2a45060019-d155d0aad4b5-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 17:23:42 +0200
Received: by mail-lj1-f170.google.com with SMTP id
 38308e7fff4ca-3922b35e69cso45595741fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 08:23:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1777994622; cv=none;
        d=google.com; s=arc-20240605;
        b=V1/yl2kwNBL6msYMjex6OvdJ11LCAuT+GPUejXZ7T9e88b2qrFv78vdYkVNDflmzFG
         wyBnvKsUvMoT/0C80Z+kBkLb6wC/KjEyZGh6wfyfyOR6eX+EviMvFStXePFjpAmmhIp2
         G3U12AxPuDsbQ/+9s9YK1xRO+w7Fy+vWv35L8jpAsyMMCchPwiAQIk+X/eY+91H+ZcuG
         SBae+iNo+krXudmy4RQUvP+aSwVLHDoXOsJ+UQBEq4/YXR6ittMhfoLeMUV2ki1q47ds
         Obyorq9wDn4WWXAXm/ArllO6opLqoDlHVupTLhUs6zNh6Xg2OmZ1Kmo392dTZOBfKZmM
         TkUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=wMRiOKPRyEcaHZOOkpd9/VztiqgN92b+wRpsUBVO2Qw=;
        fh=jXKZth/5dXfK4eyQ3th9VcbDCKu2IJKxdxWeypBGkUc=;
        b=baPGUZB55y1TtnPt/5Ea+Bzl/Eu8qMudyQwzbVLHoUZJFa76Iosk8Nj/GV31SFXJ17
         LhjRndJHj3q4CTJNYbFgCJrgyMQ1VkrPuL5TFPo6nkKaCNg/3DFRB1BuQr4AS5OKQUXW
         4OeeldPdVwVGViBdy1+umWa1D3H9+fGci/AM5sdPsL+eNld/MjOC8u3/8nSmJmSZ2NJn
         JePOodlPfiU4nR1SdicTB8c6fsixt/81wJMJoZ/giZIyHJJBDTyAjU1JOmECAp3h1LhW
         0dZ66Rs5RGpl/eWvzdQQfStcrOdPjigihL/5s+KrgNeSz56Eul9pQH7KXXsEJVsrdf1V
         vD+w==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777994622; x=1778599422; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wMRiOKPRyEcaHZOOkpd9/VztiqgN92b+wRpsUBVO2Qw=;
        b=XgruQDVCnrd1sAifQle04NylrnIGdqCJDngfAfsDIM8lSb33WO7A0IiJf4jdpbVNcK
         tkUejBNiJK8mJ/ZDd1Z+vNH+9mw0CM3hoikx7Gd/76x+ezsODLFazovY99PZJaeixZID
         4T5lDvdGYp7nBn5XHs7kmgR0n+nLSi8Cbs1gMS27CDfrly74BV++kq4JAZqDH+eBG67Q
         dGfKcRXxFLNGA0xfWtZmek447U17A+C5dsW0GO3ZSeN1+pRvdXNQCqBvNu5lSplv43Mu
         rR7tU1GAlgWoCHG4sp0SDFusvj6fpwCpnPhT2V+lc4usf2mONszAsHx1XKAOAyP7VdDT
         5GNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777994622; x=1778599422;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=wMRiOKPRyEcaHZOOkpd9/VztiqgN92b+wRpsUBVO2Qw=;
        b=e3LjG7Ar8By5WoyqRLTQAU5TPYoTqBVSLI5KJGkWjwDRBmlp4svMuWpLCOlHKLJIRs
         t6Pu2t4AjtXaZjrGkHX1FeYejRqlXXZdl5hzBPq6zi0jV0GX6aQGBqs/XOKqJjLNDv+3
         KMdMPALyXI/AuqHRvH8xdkW3H2/hwu2NqDUZWOCFIiV65JJHUkP8t3hhlwsOyaIfbCEi
         ZtH533eHJ0rpQ++1j9eLlG1qtnrNy34P/AEz2azOf8u7/7wlmtQWrV5xEyJCzciIVK5T
         67bLgliiGF9M8h06av9gaiQssJXwxFiSQff04TCwN0Da/E+hcoy+A+PlnGICL1+883e3
         DH1Q==
X-Gm-Message-State: AOJu0YwaTRT78Au8drUXR7uxA7vzuN/irsuGcl+LfzdeG2Gbbzda5KYH
	1wc8hc1h2BZFiiyNmr2xYN0dEtbgxJbbu8q0mlP8ejSBD2eK35qsGzcs1htJcR3Fs4EeEsQ1KAz
	Zp86k+tuVGm/xar73VUxmRKKgsy8O426GXO6YDbQ=
X-Gm-Gg: AeBDievohqaegWANrMQ5/dB+MxDNlwe2Eu5/u3ZLd0eaW4ZcvB2Vs2Xs8ES7GnYw/GC
	LERh3FHyFV9s5qPvjcRHKxsQD/SekWc3ZskFgE5G+sKj2z9hPFMD2wDSKUYTs0MNxxaePBOlm7l
	FJmgk5pOqwSTh332PriINMohopVE2evc4KoQ+w2LjOxbl13kmEPwjGM2xalWGZWSIPWaZOGR5a6
	A1A3CTkP5Yz37/ZKTP4bqfpsTk8RJdFMAPId16fsYn4QSsPxyXQTXqU4JNDbs34s8u9GVI4nt0L
	//4oThdPbLtJIdhUo1orJwHA3PI=
X-Received: by 2002:a2e:a54b:0:b0:383:20cd:52fe with SMTP id
 38308e7fff4ca-393b4d47acemr14985801fa.17.1777994621480; Tue, 05 May 2026
 08:23:41 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <038337ec0e3f1474c6cc6a92090e28c6972e4dc6.1775125380.git.mykola_kvach@epam.com>
 <F5384D51-933E-48E6-AE7E-B54022AEAE11@arm.com>
In-Reply-To: <F5384D51-933E-48E6-AE7E-B54022AEAE11@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 5 May 2026 18:23:28 +0300
X-Gm-Features: AVHnY4Lp8PLNiPSH_rXiXH9DXGfRY9OSOlaX6QNN69iV-sQmD-KYv1xHa12HpPs
Message-ID: <CAGeoDV907jTK5RsN51ezapA5inhvG1jWpeybbqF=LkxWcEGnbQ@mail.gmail.com>
Subject: Re: [PATCH v8 09/13] arm/smmu-v3: add suspend/resume handlers
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Rahul Singh <Rahul.Singh@arm.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-16d1c6/1777994622-53B7DD75-BCDF7250/0/0
X-purgate-type: clean
X-purgate-size: 9432

Hi Luca,

Thank you for the review.

On Mon, Apr 27, 2026 at 5:03=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> >
> > diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passth=
rough/arm/smmu-v3.c
> > index bf153227db..7607ffc9ca 100644
> > --- a/xen/drivers/passthrough/arm/smmu-v3.c
> > +++ b/xen/drivers/passthrough/arm/smmu-v3.c
> > @@ -1814,8 +1814,7 @@ static int arm_smmu_write_reg_sync(struct arm_smm=
u_device *smmu, u32 val,
> > }
> >
> > /* GBPA is "special" */
> > -static int __init arm_smmu_update_gbpa(struct arm_smmu_device *smmu,
> > -                                       u32 set, u32 clr)
> > +static int arm_smmu_update_gbpa(struct arm_smmu_device *smmu, u32 set,=
 u32 clr)
> > {
> > int ret;
> > u32 reg, __iomem *gbpa =3D smmu->base + ARM_SMMU_GBPA;
> > @@ -1995,10 +1994,29 @@ err_free_evtq_irq:
> > return ret;
> > }
> >
> > +static int arm_smmu_enable_irqs(struct arm_smmu_device *smmu)
> > +{
> > + int ret;
> > + u32 irqen_flags =3D IRQ_CTRL_EVTQ_IRQEN | IRQ_CTRL_GERROR_IRQEN;
> > +
> > + if ( smmu->features & ARM_SMMU_FEAT_PRI )
> > + irqen_flags |=3D IRQ_CTRL_PRIQ_IRQEN;
> > +
> > + /* Enable interrupt generation on the SMMU */
> > + ret =3D arm_smmu_write_reg_sync(smmu, irqen_flags,
> > +      ARM_SMMU_IRQ_CTRL, ARM_SMMU_IRQ_CTRLACK);
> > + if ( ret )
> > + {
> > + dev_warn(smmu->dev, "failed to enable irqs\n");
> > + return ret;
> > + }
> > +
> > + return 0;
> > +}
> > +
> > static int __init arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
> > {
> > int ret, irq;
> > - u32 irqen_flags =3D IRQ_CTRL_EVTQ_IRQEN | IRQ_CTRL_GERROR_IRQEN;
> >
> > /* Disable IRQs first */
> > ret =3D arm_smmu_write_reg_sync(smmu, 0, ARM_SMMU_IRQ_CTRL,
> > @@ -2028,22 +2046,7 @@ static int __init arm_smmu_setup_irqs(struct arm=
_smmu_device *smmu)
> > }
> > }
> >
> > - if (smmu->features & ARM_SMMU_FEAT_PRI)
> > - irqen_flags |=3D IRQ_CTRL_PRIQ_IRQEN;
> > -
> > - /* Enable interrupt generation on the SMMU */
> > - ret =3D arm_smmu_write_reg_sync(smmu, irqen_flags,
> > -      ARM_SMMU_IRQ_CTRL, ARM_SMMU_IRQ_CTRLACK);
> > - if (ret) {
> > - dev_warn(smmu->dev, "failed to enable irqs\n");
> > - goto err_free_irqs;
> > - }
> > -
> > return 0;
> > -
> > -err_free_irqs:
> > - arm_smmu_free_irqs(smmu);
> > - return ret;
> > }
> >
> > static int arm_smmu_device_disable(struct arm_smmu_device *smmu)
> > @@ -2057,7 +2060,7 @@ static int arm_smmu_device_disable(struct arm_smm=
u_device *smmu)
> > return ret;
> > }
> >
> > -static int __init arm_smmu_device_reset(struct arm_smmu_device *smmu)
> > +static int arm_smmu_device_reset(struct arm_smmu_device *smmu)
> > {
> > int ret;
> > u32 reg, enables;
> > @@ -2163,17 +2166,9 @@ static int __init arm_smmu_device_reset(struct a=
rm_smmu_device *smmu)
> > }
> > }
> >
> > - ret =3D arm_smmu_setup_irqs(smmu);
> > - if (ret) {
> > - dev_err(smmu->dev, "failed to setup irqs\n");
>
> We are moving this one to the probe and ..
>
> > + ret =3D arm_smmu_enable_irqs(smmu);
> > + if ( ret )
>
> changing with this one, but arm_smmu_setup_irqs() also calls arm_smmu_set=
up_unique_irqs() which
> calls arm_smmu_setup_msis(), are we sure that on resume we will get the s=
ame state?

This follows the split introduced in the Linux arm-smmu-v3 runtime/system s=
leep
series:

https://lore.kernel.org/linux-iommu/20260414194702.1229094-1-praan@google.c=
om/

The intent is to keep IRQ handler registration as one-time probe state, whi=
le
reset/resume only restores the SMMU hardware state and re-enables interrupt
generation.

You are right that the MSI case needs extra care. In the Linux series this =
is
handled by arm_smmu_resume_msis(), which restores the SMMU-side MSI
configuration. I did not port that part in this patch because Xen SMMUv3 MS=
I
support is currently documented as unsupported and is not part of the
supported/tested path, so this patch only covers the wired IRQ path used by=
 Xen
today.

If Xen SMMUv3 MSI support becomes usable in the future, the resume path wil=
l
need an equivalent MSI restore step before IRQ_CTRL is re-enabled.

I will add a code comment and update the commit message to make this scope
explicit. I also noticed that I accidentally dropped the reference to Pranj=
al's
Linux series while reworking the patch; I will restore the Link/attribution=
 in
the next version.

>
> > return ret;
> > - }
> > -
> > - /* Initialize tasklets for threaded IRQs*/
> > - tasklet_init(&smmu->evtq_irq_tasklet, arm_smmu_evtq_tasklet, smmu);
> > - tasklet_init(&smmu->priq_irq_tasklet, arm_smmu_priq_tasklet, smmu);
> > - tasklet_init(&smmu->combined_irq_tasklet, arm_smmu_combined_irq_taskl=
et,
> > - smmu);
> >
> > /* Enable the SMMU interface, or ensure bypass */
> > if (disable_bypass) {
> > @@ -2181,20 +2176,16 @@ static int __init arm_smmu_device_reset(struct =
arm_smmu_device *smmu)
> > } else {
> > ret =3D arm_smmu_update_gbpa(smmu, 0, GBPA_ABORT);
> > if (ret)
> > - goto err_free_irqs;
> > + return ret;
> > }
> > ret =3D arm_smmu_write_reg_sync(smmu, enables, ARM_SMMU_CR0,
> >     ARM_SMMU_CR0ACK);
> > if (ret) {
> > dev_err(smmu->dev, "failed to enable SMMU interface\n");
> > - goto err_free_irqs;
> > + return ret;
> > }
> >
> > return 0;
> > -
> > -err_free_irqs:
> > - arm_smmu_free_irqs(smmu);
> > - return ret;
> > }
> >
> > static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu)
> > @@ -2558,10 +2549,23 @@ static int __init arm_smmu_device_probe(struct =
platform_device *pdev)
> > if (ret)
> > goto out_free;
> >
> > + ret =3D arm_smmu_setup_irqs(smmu);
> > + if ( ret )
> > + {
> > + dev_err(smmu->dev, "failed to setup irqs\n");
> > + goto out_free;
> > + }
> > +
> > + /* Initialize tasklets for threaded IRQs*/
> > + tasklet_init(&smmu->evtq_irq_tasklet, arm_smmu_evtq_tasklet, smmu);
> > + tasklet_init(&smmu->priq_irq_tasklet, arm_smmu_priq_tasklet, smmu);
> > + tasklet_init(&smmu->combined_irq_tasklet, arm_smmu_combined_irq_taskl=
et,
> > + smmu);
> > +
> > /* Reset the device */
> > ret =3D arm_smmu_device_reset(smmu);
> > if (ret)
> > - goto out_free;
> > + goto out_free_irqs;
> >
> > /*
> > * Keep a list of all probed devices. This will be used to query
> > @@ -2575,6 +2579,8 @@ static int __init arm_smmu_device_probe(struct pl=
atform_device *pdev)
> >
> > return 0;
> >
> > +out_free_irqs:
> > + arm_smmu_free_irqs(smmu);
> >
> > out_free:
> > arm_smmu_free_structures(smmu);
> > @@ -2855,6 +2861,96 @@ static void arm_smmu_iommu_xen_domain_teardown(s=
truct domain *d)
> > xfree(xen_domain);
> > }
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +static void arm_smmu_reset_for_suspend_rollback(struct arm_smmu_device=
 *smmu)
> > +{
> > + int ret =3D arm_smmu_device_reset(smmu);
> > +
> > + if ( ret )
> > + dev_err(smmu->dev, "Failed to reset during suspend rollback: %d\n",
> > + ret);
> > +}
> > +
> > +static int arm_smmu_suspend(void)
> > +{
> > + struct arm_smmu_device *smmu;
> > + int ret =3D 0;
> > +
> > + list_for_each_entry(smmu, &arm_smmu_devices, devices)
> > + {
> > + bool wfe =3D !!(smmu->features & ARM_SMMU_FEAT_SEV);
> > +
> > + /* Abort all transactions before disable to avoid spurious bypass */
> > + ret =3D arm_smmu_update_gbpa(smmu, GBPA_ABORT, 0);
> > + if ( ret )
> > + goto fail;
> > +
> > + /* Disable the SMMU via CR0.EN and all queues except CMDQ */
> > + ret =3D arm_smmu_write_reg_sync(smmu, CR0_CMDQEN, ARM_SMMU_CR0,
> > + ARM_SMMU_CR0ACK);
> > + if ( ret )
> > + {
> > + dev_err(smmu->dev, "Timed-out while disabling smmu\n");
> > + goto fail;
> > + }
> > +
> > + /*
> > + * At this point the SMMU is completely disabled and won't access
> > + * any translation/config structures, even speculative accesses
> > + * aren't performed as per the IHI0070 spec (section 6.3.9.6).
> > + */
> > +
> > + /* Wait for the CMDQs to be drained to flush any pending commands */
> > + ret =3D queue_poll_cons(&smmu->cmdq.q, true, wfe);
> > + if ( ret )
> > + {
> > + dev_err(smmu->dev, "Draining queues timed-out\n");
> > + goto fail;
> > + }
>
> polling the queue doesn=E2=80=99t give you the assurance that all prior c=
ommands are complete,
> I would use arm_smmu_cmdq_issue_sync for that instead of the above.
>
> ret =3D arm_smmu_cmdq_issue_sync(smmu);
> if ( ret )
>    goto fail;

Yes, I agree.

Polling CONS only shows that the SMMU has consumed the CMDQ entries; it doe=
s
not provide the completion semantics we want here. I will replace the direc=
t
queue_poll_cons() in the suspend path with arm_smmu_cmdq_issue_sync(), whil=
e
CMDQ is still enabled, and update the comment/commit message accordingly.

Best regards,
Mykola

>
> > +
> > + /* Disable everything */
> > + ret =3D arm_smmu_device_disable(smmu);
> > + if ( ret )
> > + goto fail;
> > +
> > + dev_dbg(smmu->dev, "Suspended smmu\n");
> > + }
> > +
> > + return 0;
> > +
> > + fail:
> > + /* Reset the device that failed as well as any already-suspended ones=
. */
> > + arm_smmu_reset_for_suspend_rollback(smmu);
> > +
> > + list_for_each_entry_continue_reverse(smmu, &arm_smmu_devices, devices=
)
> > + arm_smmu_reset_for_suspend_rollback(smmu);
> > +
> > + return ret;
> > +}
> > +
>
> Cheers,
> Luca
>
>


From xen-devel-bounces@lists.xenproject.org Tue May 05 15:27:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 15:27:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300821.1575284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKHgO-0003zv-0q; Tue, 05 May 2026 15:27:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300821.1575284; Tue, 05 May 2026 15:27:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKHgN-0003zo-UB; Tue, 05 May 2026 15:27:35 +0000
Received: by outflank-mailman (input) for mailman id 1300821;
 Tue, 05 May 2026 15:27:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wKHgM-0003xv-96
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 15:27:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKHgL-00H1x3-BO
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 17:27:33 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fa0c5c-bab6-0a2a0a5309dd-0a2a4505ebac-12
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 17:27:33 +0200
Received: from [52.101.48.22]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fa0c62-aaa8-0a2a45050019-34653016c558-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 17:27:32 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS1PR03MB7944.namprd03.prod.outlook.com (2603:10b6:8:21d::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Tue, 5 May
 2026 15:27:22 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9870.023; Tue, 5 May 2026
 15:27:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zAEiM1/M4UcFh3eSvv9XYjiwoBHtx+cOfOlF1bk49ulHszChtO2TyIV0SHKgvaPi1C9SXfTyFAE/u+3VfGEh3kn5WE8vSH32dZAgVRs1UHh066Ifch+V0UNgr7wW3FzV4wroWSsXyODSi2dETwLhh3RmNFZ06Lvviz61p0/2EOkHTVB6QMYTOHvGyJcG1xKHwjPeEALHPdRpxAQNZlNgXOyWV6c/R6uafXkKfvmSFYDPv+MnhdJBSzX6z0vGpSiU54NMjGdsFZGE8yHpJKPwZOYAf868ZkDqvZFRX7ebHLckI9VlUBY3NFJlaO9xL0JtqqcgL4UFfP0THalFLQ21Mg==
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=H3B8AV2bJbQHrfkFBgUdF8FLlHjYdN8Qa7qpHcE8CIQ=;
 b=irhizpoTE9DoTLH5+f2ERoZFW6JfMCltVXgenjEnAnogqrKVxcT51RNSefZoFzt+BZDqEMtRXAQHt5zcnoNIDkcWnFmJ4n/CpIrI+bxLql7GBxVIjIdwSeird3tn3gusQoGLfUwxJEEMNburfU7ISZpXqVBKHaAiPRS184kzTNkFc96YRnwdAOY2ObVMrW8xKSPnjTB5u6yu5VHqZ5I4Xa4ik2MKfnExpXJMaSflPepMOyngH773HjGf6rFzyC3ipEtVcaDdie8QNXn3pK13BLYm1Ccjhai33Z/+b4vgKFEH7P3Pu1fRSFAAehppo99zCO/ZRpqFUXuZV+FhsSkYYg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=H3B8AV2bJbQHrfkFBgUdF8FLlHjYdN8Qa7qpHcE8CIQ=;
 b=LqSwFtkejbJlyOd5Z+XTxKaSR+MCR5LYX4fBk5HQnkJ2ingp/pROY2pdFtVwz0oumNoguWSpMhPmuPBCWNEuSJNvShLoEv4+ZXz+tRsVplmZTtaUapGD68gFYUu91vyzuX3Nj6Hmek3ITUhx1yrVkbzQC8U38zBA9gwuQ7yDkxw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <0db21b07-0d4a-4528-bccb-8989606ea4da@citrix.com>
Date: Tue, 5 May 2026 16:27:18 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] automation/gitlab: introduce macOS build jobs
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260423190459.93299-1-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20260423190459.93299-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0078.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2bd::7) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS1PR03MB7944:EE_
X-MS-Office365-Filtering-Correlation-Id: c137fb3d-d927-44e9-f13c-08deaabacd3c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	xQOBzieKHgYNuw9LecItqwzjdycHGQJDgwCcOhFOHo8kUTz4qy1RdNzYDKsuSYjWN3d35Wts8gT/r9eMckgP4t4dn4xfFGE8p+Szf6UaG4LRpvbbnBVehZSRkhHSDKCa4ThkEAf77YyFo5/+l2GLu4Agjd2Ky0Adk1ajwKXTwXvoYvkuw73kw8fAio3WPCYrhfP6PjxVhTknrWYCESVR/oLTJlgZJiv+kd5wZH0wGmToYwayh4V41RjPHf7bs/MUTSRIvxD6paYUDcc1CnDvMr0FyLRmxj20KJkk5XGrIXlmDnngmWi9SQTVqiSU/3JYmRZkHjYwwQ685HV3C8U2DfqAlx29iTUHNREPPlrUnbTSsE+HzKkn5JhGgOkp28zk2GQr9VaAWjm0/SvXl4jPz9u0M+1EwI23tkBbYlKyXTo7klNlAEUHR+soAuX9oyb4u6KJmAeNO67RydcTwdmIOhoFwkZ9ove6VxoZl6qw0V7NsnPQsgo7DTm1UN3SLhcFX+NCkB38ZW81YfzPOch7/Rj/W2SLHvnoFdPNNfHwB5TlU1huDicrrbi0UEaTqrEEOtMkUDNWpef4EVZyPTI+BDtiAYwpSepUUUiPpE/89a2dssZj2ghC4UAdp2ZCvWV3Qy5WfZIAiRS64Y5nU3nIC9Z5DQAozRPbS9GpB5Q6N6au6538GwvCR0hnfwJamDfD+i1aK8PQtv0HHa6QDkaDYw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S2FCd2dBaXBlMzREaVovVDVXQ1M4UDRaTSszcVBPdzVJRE5GNnVSVmkyeDFR?=
 =?utf-8?B?dWRySmQvc29ndnpreXJSYmRHTFZLS2hkN1l4d2I0Z2dOSXRiRW12UUhTK3Jh?=
 =?utf-8?B?cm82bEc3RlViSjhnYStZRlREaFd2ZFBIQi9COXJjZVFtdjA3OGdVdlg2OHJp?=
 =?utf-8?B?QzI2T24xZTI4aXN0cFRkSy90WjBaNFQ3bXpBRjNRcWhtc1U0RGxtbUZwMmxa?=
 =?utf-8?B?NkZ4c09vbWFab1NQb2dENnI5WXVGNVpLbGFVMitVZzZlSi9LU3lKWXQ4a2w2?=
 =?utf-8?B?MmF6Qlp5OGF1VGovdzIzS25tbW82SllWQkdHVVRGZHNZNk12QW9COVREZTFX?=
 =?utf-8?B?VE9kNWE4ZDRkODNZVFlDQ2dDZHVETFZ2WCtHQXFkRGNtZzFlTG1VUzRFNFE1?=
 =?utf-8?B?YXBLVzMrdGhydjd5VlRoaDdRbXRrbFc2bmVnRVNDQmpGV3RLcGdXVzkvVHQz?=
 =?utf-8?B?c3ZMM0xwOEpSR0NmRmF6eFBNd3FNdXVEbEVOMk0vQnlCTnFyZmlDMmlkNDlR?=
 =?utf-8?B?RkJsaDBpN21sVTRoU2J5dUU0OVVzSTN0aER1Mmp0RW5hSk0rNVRsUlZTSVFt?=
 =?utf-8?B?U3ZtTEhLK2RZaFJiKzN4UDkyWTE2ZGU2WXB3N2pwUi9mVFNRZ3J5R3ozY1lm?=
 =?utf-8?B?NTJ5NzVWZi9RVnBSNVQ5T053OGxqSVBLTmlEblBQOXhJU1JxaVZqZ1A4N1JP?=
 =?utf-8?B?NW1CSkM2YzBUbzZsRm02OCtpTktGWDg0M1NtUkZrcGV3QnViUzBxdEZiWFVD?=
 =?utf-8?B?Nit2bTd5akx1dkgvRnVmMmVhSllVK2YrSkVsaGEwaDF6bWd5L3lQbURuZGcw?=
 =?utf-8?B?S0tUTHBzb2tZZ2VVL2J4aklmdVpwL25aR0k0OFRnencwSm5IbU1jRERpbHND?=
 =?utf-8?B?dS81b3Jwd0F4ckVQcWNLdHJBRDNUUnluSWMreCs1YVlDamRhcGlDSjA1dVhw?=
 =?utf-8?B?ckhCRHNDTDU1bUt6M2l4aFAvejRmeEIzRlY3UmtlN1JpRHZNSFNzaStBU0ha?=
 =?utf-8?B?Q2pESkJTdFNVT0p1UXZuSVBHVFdmL25ydWNJTnN2czY0WWVEZ0ZrZDNIb08v?=
 =?utf-8?B?ZkJZcHZrWlRBTWN1VVB6Y2tlMHppY2t0QzRHcVVEdVEwRzgwNmswTUg0Y0xs?=
 =?utf-8?B?bTV2bEF1aFh4U0JKOWFndWVhL0YzMUhIQkswQjhDeGhpWTNraWlGZ0lHekNG?=
 =?utf-8?B?UTNEQnpDUytKSW5vYVlKTkhKb0diYWtkbmNTbm9Jay9rb2RubjYydnUvNkNB?=
 =?utf-8?B?UFEwRDFaNk5HMnQyUWowdXpRS0l5MVB4S3JlSmNuODcyUnVUMGYrTVUzTzBt?=
 =?utf-8?B?dlRwdzhvVlhlUWVUb041K0JHNXhWNW0zRmM2dUpOZFZiS3dQTnZFY0k3dzZ6?=
 =?utf-8?B?L3VVL2JiRlpmS0t1STRUa1RVTWgwTmVVc25FVjVFMkl0ZXRvVmJrOHBGR29B?=
 =?utf-8?B?eUpxSERVbVRkaGZXMU1vaklSdlJxYTIrOFZnVW5FTjRGUkdhbVZnQ0w3WFVZ?=
 =?utf-8?B?eW5vek1WM2U4QU5ZdFh3NkMybHBWQ1J0VjBiSzFuQzk5SHgvSDJNRzR3TkpT?=
 =?utf-8?B?My9mYTk2RDU4dzFmY25HTmNWU2R2TndjelJHSE1vL1dudzhmdlFiOW56VVhX?=
 =?utf-8?B?d1g5bk1MbklFL0RYcjFPSWxram0rTWd5TlY3MmE4dUtmdSt2cXZpSnZqU3dP?=
 =?utf-8?B?K3I2cUt4cXdKTWJSZFl4bEkvcUljZzdzZXZsZ1V1SkszQyt4Y3Z6OEZ6WUt4?=
 =?utf-8?B?RmhhMWRzLy9pcGhlUW51Q0F6TmE4N2hXejQ1a01IRlV2UTd3aEw3L2YxVlN3?=
 =?utf-8?B?UlZMTzQyVkwzRzBNNzF2R2JHOG1iRXdMY2xHUGdnM2FPRHBDamQ3bHh5WVla?=
 =?utf-8?B?NjhBNTg3K3h4MS9QWElNRGYzeFlXZ01iSDdqNk1DSkgzeGxVdXFHTTJzcmRG?=
 =?utf-8?B?QW1PTDltU3NnNmd0Rkw5bXlzU1o3WDY1VEhzWjJhZmlYdjZXQ2JjR1VHc0cx?=
 =?utf-8?B?eG1uaXlTVnNWTnpQVDgwcUIvOGxPVUNGSk1MbEZQUEtnVnBlRGxqbUpiNzBo?=
 =?utf-8?B?aVprbjZBaHFWNlRmZ3pzRHB5UDFZWEQ0RndnbGl0REdXU2lpUS9qcDVHcVY5?=
 =?utf-8?B?SkQ3R0hnSk1xQ1k3eUUyUm5yRGU0NWJ0OVJObnJLRkJRTUxIdWQ5dWlwUThP?=
 =?utf-8?B?a2FtdlpaeFZQMktnMTYrSm1BL0ZqTTd0WHJDMUlwK0J4eUxlYVJZWFE4ak9U?=
 =?utf-8?B?UlBUaVNNM0I1ck00KzNQWm1xRnUrRXZkWXd6WitKTGFOWElMRElzMTZBVGNS?=
 =?utf-8?B?N2J1eisrMWZvWXVhTGtqNHFSbzQrMjhGSUZ0K2FrYU9mQ05XMzBWcy9OYStS?=
 =?utf-8?Q?ga54EK7NVxUUVpPg=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c137fb3d-d927-44e9-f13c-08deaabacd3c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 15:27:21.8374
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cGpz5A+O7B3BX+2dGj3X4DP6msaJjt1Yx0bck/q7xgUiwjuzFmyUyBTkZ3TWj2UkmlbVmhopG2v3EJlfQLgJ1uWE3nWqRzji0JfHb8BaAtw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS1PR03MB7944
X-purgate-ID: tlsNG-c201ff/1777994853-E8DA3443-07759ED7/0/0
X-purgate-type: clean
X-purgate-size: 778

On 23/04/2026 8:04 pm, Roger Pau Monne wrote:
> With the imminent decommission of CirrusCI we will lose the limited macOS
> build testing done there.  Introduce two Gitlab macOS build jobs that
> reproduce the ones present on CirrusCI.
>
> According to the "Community programs" Gitlab documentation [0] we get
> 50,000 compute minutes per month.  The arm64 job takes ~1m 15s, and the
> x86_64 one ~2m.  I think it's likely enough given the amount of minutes we
> have available.  We might need to reconsider if we add more tasks that
> consume compute minutes.
>
> [0] https://docs.gitlab.com/subscriptions/community_programs/#gitlab-for-open-source
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue May 05 15:53:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 15:53:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300840.1575292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKI5Y-0000BG-V7; Tue, 05 May 2026 15:53:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300840.1575292; Tue, 05 May 2026 15:53:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKI5Y-0000B8-SH; Tue, 05 May 2026 15:53:36 +0000
Received: by outflank-mailman (input) for mailman id 1300840;
 Tue, 05 May 2026 15:53:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wKI5W-0000B2-MK
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 15:53:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKI5V-005haT-06
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 17:53:33 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69fa125d-2eae-0a2a0a5409dd-0a2a4501988a-34
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 17:53:32 +0200
Received: from [209.85.208.54] (helo=mail-ed1-f54.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69fa127c-c1f2-0a2a45010019-d155d036c13f-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 17:53:32 +0200
Received: by mail-ed1-f54.google.com with SMTP id
 4fb4d7f45d1cf-66b2d49ffb0so7366310a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 08:53:32 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc28c4ea2casm200362066b.53.2026.05.05.08.53.31
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 08:53:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Autocrypt:Subject:From:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777996412; x=1778601212; darn=lists.xenproject.org;
        h=autocrypt:subject:from:to:content-language:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CUpsrxOvj9UJtsQYvciiuv8hh+g4t0hhK8mxnpPXyKo=;
        b=JtxpS6X2dZxEvIE4GbsDXgcYrioTCNE4+o3TkDvV8SwvVQu53WTmUecq5ZDZh63uS6
         7FfZ8MMC10NvBn7VSU//YAJcIa8Q5H7o04sKW2eRD3Q8NEpQaxeGKL38Rb6JqdvmVn36
         DqB+D636yJpEUjPCbx9J1Z2C9D255k9ePqKj/uCL9/MwxGeSQM0h3g/h49QHVxwV8/dC
         4bt5rm88vbpjS9iis/LEyHkP2ENgp2YDNR7HtL9mRDX6zH/emsgPnmuGzvAW0Yfzn5eg
         V5WZt+OXzPcMa1OuOrXxzAcccZymHX2vCWrZ7HuOqYKj82VvaY4m2AvrWGs4bnfISHte
         Ceow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777996412; x=1778601212;
        h=autocrypt:subject:from:to:content-language:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CUpsrxOvj9UJtsQYvciiuv8hh+g4t0hhK8mxnpPXyKo=;
        b=KFx1b+9eYdvW9Ms4NkoTswj3+h+tQtEZ520kz7ggrsZaNaGRsS0SvCsCaMJW7sMkBq
         62IvpyGBDw5R4SgXrK1gTcEMC3JSOIh4m/NSPuKXWWEGTvTVqYkciAVW2uDHQoz5zfg/
         n7rTnR0XxNkqCXYnf6SQREQG4hi6uFjIufgs7ZXoO5L6Ye+7K2JwQ8Rh0UvUs1tWSB9O
         1l0Q9/FeHL7rKy5GX85cvX2q8RHt2Nlyr6zTrFlLzTmsQ/vhZF6M7p+G3nLoJ/0AEdBR
         3/Xi7DRRkhG7Z97PWKU+fznBHgUkPidLDZNPhrO2ONnWGi4vn+W+i35UTd6GD15MhB7j
         q6pw==
X-Gm-Message-State: AOJu0YzlKZ3WCm/gKaat775byaBpYEInz7OprGNjNmjjab28lKd2/cBi
	mw047i4ptAN0RSdT9CF6Sp6c8fWN6MaY/c0pswlr4XViATGejlK6j/0DjILSXWVSISSSlN/U5EO
	eYOD4T24=
X-Gm-Gg: AeBDieuhWLZsVASBEfw6yJmserTXz0A0NuM0WT2Cdcp0uP62TVRsQ7D2iQ72VOgKFRT
	6lciccJchjHkyPMAkbvNI4PzV/gRAngLVXSMU+w2wNhYeq+bmYshwoBj83SLXmFFUhN/F+ZHAy2
	QV9tctZqjsbNoAyr08PtuBZOhq3KFuRq/ONn4r9jAbIdu5RC99jHJjkQ5A4W0Nku/VbuQcgTPlq
	MpmXXFWSRxkS03G8BmtIhvvBBorCrlscTDnr2UIltKkCjAD4cng9yRAkExyqjD2/PPK6rgluY0m
	rWKgYnmBHtMdYkMVEFxGT08pwmY+YSjNG5VPhAdSH2zM+DLcbrloV/4QlDf4mT7Myeux1K3/9/6
	ml2zgcUyaj9zIe8f1c2JbbqcIFHmJZvXfXYBIYPrSIVDTYlZBaG6yzrmq++/DZEEYOTcnW4ss2+
	dQ2n1KBK+NMyd6yhN+JAiVqj9OqfYXrhp7ZrhMC/jLsjDV9NCXOvKdlaB+R78HZdfanawqZOpfu
	Scy2iMrWXHbrTeIF1KBs/DyrFBBelP+hK55pGbLNcwNI/dpYZgCP2124btkhSpv
X-Received: by 2002:a17:907:ea5:b0:ba7:3578:f627 with SMTP id a640c23a62f3a-bbffbf77a93mr839479166b.37.1777996412065;
        Tue, 05 May 2026 08:53:32 -0700 (PDT)
Message-ID: <04c8ed4e-4e99-46ae-b83d-af9031f5b622@suse.com>
Date: Tue, 5 May 2026 17:53:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Subject: Problem with PCI-passthrough to PV guest
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------ZzburDCEZJo4FwrKYKk3kUVf"
X-purgate-ID: tlsNG-d62444/1777996412-B586AFF4-F932EB67/0/0
X-purgate-type: clean
X-purgate-size: 9787

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------ZzburDCEZJo4FwrKYKk3kUVf
Content-Type: multipart/mixed; boundary="------------pamF0kLiXXfK6t3bU3sVo5Re";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <04c8ed4e-4e99-46ae-b83d-af9031f5b622@suse.com>
Subject: Problem with PCI-passthrough to PV guest

--------------pamF0kLiXXfK6t3bU3sVo5Re
Content-Type: multipart/mixed; boundary="------------q0O7MTI7ClbhQziXu4IbD3Rx"

--------------q0O7MTI7ClbhQziXu4IbD3Rx
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

U1VTRSBRQSBpcyBzZWVpbmcgYSBwcm9ibGVtIHdpdGggUENJLXBhc3N0aHJvdWdoIG9mIGEg
U1ItSU9WIHRvIGEgUFYgZ3Vlc3QNCnJ1bm5pbmcgYSA2LjQgYmFzZWQga2VybmVsLCBidXQg
SSBjYW4gcmVwcm9kdWNlIHRoZSBwcm9ibGVtIHdpdGggdXBzdHJlYW0NCmtlcm5lbCwgdG9v
Lg0KDQpUaGUgZ3Vlc3QgaXMgY29uZmlndXJlZCB3aXRoICJlODIwX2hvc3Q9MSIsIGJ1dCB0
aGUgUENJIHJlZ2lvbiBvbiB0aGUgaG9zdA0KaXNuJ3QgbWFya2VkIGFzICJyZXNlcnZlZCIg
aW4gdGhlIG1lbW9yeSBtYXAsIHNvIGl0IHdvbid0IGJlIHJlc2VydmVkIGluDQp0aGUgZWl0
aGVyLg0KDQpBcyB0aGUgZ3Vlc3QgZG9lc24ndCBoYXZlIHRoZSBBQ1BJIHRhYmxlIGF2YWls
YWJsZSBkZXNjcmliaW5nIHRoZSBQQ0kgcmVnaW9ucywNCi9wcm9jL2lvbWVtIGluIHRoZSBn
dWVzdCB3b24ndCBpbmNsdWRlIHRob3NlIHJlZ2lvbnMgYXMgdXNlZCwgcmVzdWx0aW5nIGlu
DQp0aGUga2VybmVsJ3MgcmVzb3VyY2UgbWFuYWdlbWVudCB0byB1c2UgdGhvc2UgYXJlYXMg
Zm9yIHBvdGVudGlhbCBtZW1vcnk6DQoNCiAgcmVzb3VyY2U6IGF2b2lkaW5nIGFsbG9jYXRp
b24gZnJvbSBlODIwIGVudHJ5IFttZW0gMHg3OGVkYzAwMC0weDc5ODY4ZmZmXQ0KICByZXNv
dXJjZTogYXZvaWRpbmcgYWxsb2NhdGlvbiBmcm9tIGU4MjAgZW50cnkgW21lbSAweDc5ZDJh
MDAwLTB4OGZmZmZmZmZdDQogIHJlc291cmNlOiByZW1haW5pbmcgW21lbSAweDAwMDAwMDAw
OTAwMDAwMDAtMHgwMDAwMDAwMGZmZGZmZmZmXSBhdmFpbGFibGUNCiAgcmVzb3VyY2U6IGF2
b2lkaW5nIGFsbG9jYXRpb24gZnJvbSBlODIwIGVudHJ5IFttZW0gMHhjN2ZmYzAwMC0weGM3
ZmZjZmZmXQ0KICByZXNvdXJjZTogcmVtYWluaW5nIFttZW0gMHgwMDAwMDAwMDkwMDAwMDAw
LTB4MDAwMDAwMDBjN2ZmYmZmZl0gYXZhaWxhYmxlDQoNCmRvbTAgL3Byb2MvaW9tZW06DQog
IC4uLg0KICA4MDAwMDAwMC04ZmZmZmZmZiA6IFBDSSBNTUNPTkZJRyAwMDAwIFtidXMgMDAt
ZmZdDQogIDkwMDAwMDAwLWM3ZmZiZmZmIDogUENJIEJ1cyAwMDAwOjAwICAgIOKGkCBQQ0kg
TU1JTyB3aW5kb3cgYmVnaW5zIGhlcmUNCiAgICA5MDAwMDAwMC05MDBmZmZmZiA6IFBDSSBC
dXMgMDAwMDowMSAg4oaQIEkzNTAgVkZzIGFzc2lnbmVkIGluIHRoaXMgcmFuZ2UNCiAgICBj
NjAwMDAwMC1jNzBmZmZmZiA6IFBDSSBCdXMgMDAwMDowNA0KDQpkb20wIGU4MjAgbWFwOg0K
ICAuLi4NCiAgWGVuOiBbbWVtIDB4MDAwMDAwMDA3OTg2OTAwMC0weDAwMDAwMDAwNzlkMjlm
ZmZdIEFDUEkgTlZTDQogIFhlbjogW21lbSAweDAwMDAwMDAwNzlkMmEwMDAtMHgwMDAwMDAw
MDhmZmZmZmZmXSByZXNlcnZlZA0KICBYZW46IFttZW0gMHgwMDAwMDAwMGM3ZmZjMDAwLTB4
MDAwMDAwMDBjN2ZmY2ZmZl0gcmVzZXJ2ZWQNCiAgWGVuOiBbbWVtIDB4MDAwMDAwMDBmYmZm
YzAwMC0weDAwMDAwMDAwZmJmZmNmZmZdIHJlc2VydmVkDQogIC4uLg0KDQpkb21VIC9wcm9j
L2lvbWVtOg0KICAuLi4NCiAgMDAxMDAwMDAtNzhmMDZmZmYgOiBTeXN0ZW0gUkFNDQogICAg
MDEwMDAwMDAtMDFmZmZmZmYgOiBLZXJuZWwgY29kZQ0KICAgIC4uLg0KICA5MDAwMDAwMC05
N2ZmZmZmZiA6IFN5c3RlbSBSQU0NCiAgZmVlMDAwMDAtZmVlMDBmZmYgOiBMb2NhbCBBUElD
DQoNCmRvbVUgZTgyMCBtYXA6DQogIC4uLg0KICBYZW46IFttZW0gMHgwMDAwMDAwMDc5ODY5
MDAwLTB4MDAwMDAwMDA3OWQyOWZmZl0gQUNQSSBOVlMNCiAgWGVuOiBbbWVtIDB4MDAwMDAw
MDA3OWQyYTAwMC0weDAwMDAwMDAwOGZmZmZmZmZdIHJlc2VydmVkDQogIFhlbjogW21lbSAw
eDAwMDAwMDAwYzdmZmMwMDAtMHgwMDAwMDAwMGM3ZmZjZmZmXSByZXNlcnZlZA0KICBYZW46
IFttZW0gMHgwMDAwMDAwMGZiZmZjMDAwLTB4MDAwMDAwMDBmYmZmY2ZmZl0gcmVzZXJ2ZWQN
CiAgLi4uDQoNClRoZSBWRiBpcyBzaG93aW5nIHVwIG5lYXIgMHg5MDAwMA0KICBwY2kgMDAw
MDowMDowMC40OiBbODA4NjoxNTIwXSB0eXBlIDAwIGNsYXNzIDB4MDIwMDAwDQogIHBjaSAw
MDAwOjAwOjAwLjQ6IHJlZyAweDEwOiBbbWVtIDB4OTAwMDQwMDAtMHg5MDAwN2ZmZiA2NGJp
dCBwcmVmXQ0KICBwY2kgMDAwMDowMDowMC40OiByZWcgMHgxYzogW21lbSAweDkwMDI0MDAw
LTB4OTAwMjdmZmYgNjRiaXQgcHJlZl0NCiAgcGNpZnJvbnQgcGNpLTA6IE5ldyBkZXZpY2Ug
b24gMDAwMDowMDowMC40IGZvdW5kLg0KICBwY2lmcm9udCBwY2ktMDogY2xhaW1pbmcgcmVz
b3VyY2UgMDAwMDowMDowMC40LzANCiAgcGNpIDAwMDA6MDA6MDAuNDogY2FuJ3QgY2xhaW0g
QkFSIDAgW21lbSAweDkwMDA0MDAwLTB4OTAwMDdmZmYgNjRiaXQgcHJlZl06IA0KYWRkcmVz
cyBjb25mbGljdCB3aXRoIFN5c3RlbSBSQU0gW21lbSAweDkwMDAwMDAwLTB4OTdmZmZmZmZd
DQogIHBjaWZyb250IHBjaS0wOiBDb3VsZCBub3QgY2xhaW0gcmVzb3VyY2UgMDAwMDowMDow
MC40LzAhIERldmljZSBvZmZsaW5lLiBUcnkgDQp1c2luZyBlODIwX2hvc3Q9MSBpbiB0aGUg
Z3Vlc3QgY29uZmlnLg0KICBwY2lmcm9udCBwY2ktMDogY2xhaW1pbmcgcmVzb3VyY2UgMDAw
MDowMDowMC40LzMNCiAgcGNpIDAwMDA6MDA6MDAuNDogY2FuJ3QgY2xhaW0gQkFSIDMgW21l
bSAweDkwMDI0MDAwLTB4OTAwMjdmZmYgNjRiaXQgcHJlZl06IA0KYWRkcmVzcyBjb25mbGlj
dCB3aXRoIFN5c3RlbSBSQU0gW21lbSAweDkwMDAwMDAwLTB4OTdmZmZmZmZdDQogIHBjaWZy
b250IHBjaS0wOiBDb3VsZCBub3QgY2xhaW0gcmVzb3VyY2UgMDAwMDowMDowMC40LzMhIERl
dmljZSBvZmZsaW5lLiBUcnkgDQp1c2luZyBlODIwX2hvc3Q9MSBpbiB0aGUgZ3Vlc3QgY29u
ZmlnLg0KDQpNeSBmaXJzdCBpZGVhIGZvciBzb2x2aW5nIHRoaXMgd2FzIHRvIGFkZCB0aGUg
UENJIHJlZ2lvbnMgZnJvbSBkb20wJ3MNCi9wcm9jL2lvbWVtIHRvIHRoZSBlODIwIG1hcCBv
ZiB0aGUgZ3Vlc3QsIGJ1dCB0aGlzIGlzIG1vcmUgYSBoYWNrIHRoYW4gYSBzYW5lDQpzb2x1
dGlvbi4NCg0KVGhvdWdodHM/DQoNCg0KSnVlcmdlbg0K
--------------q0O7MTI7ClbhQziXu4IbD3Rx
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------q0O7MTI7ClbhQziXu4IbD3Rx--

--------------pamF0kLiXXfK6t3bU3sVo5Re--

--------------ZzburDCEZJo4FwrKYKk3kUVf
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmn6EnsFAwAAAAAACgkQsN6d1ii/Ey8T
dwf+LuOc81l6uqOBAx5iHB0PMG9VARr+ezrm7fnAiZI9bkGBI/anar5vPZVnraAebJawxKg+Lv7k
DysJkkg/qKXBF2zI/WuNt1q/sv0wVSx9DLNeEIJLliaq/qvO58eFdbQtKzHFMhg4TiggRon7JgAB
sO9LiYlIL22ZaZLreRye0fT1PTI6eQoU5bH1VZ+3OJeizzdKQZO6Uqlh4yrO4TwcPor0L+o0OL82
e0AR9nmDxBnJmGkXeFm6qgBLlS6vneLxxj0LgRukNXyKoWBSpULZGnNUANNDBDix3TF84ftBs6Ub
ULGR/v8WTRnyFqyX8SGciXHooH4tD5Qp3/cDj/iDcg==
=PoZc
-----END PGP SIGNATURE-----

--------------ZzburDCEZJo4FwrKYKk3kUVf--


From xen-devel-bounces@lists.xenproject.org Tue May 05 15:56:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 15:56:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300851.1575303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKI81-0000mK-GK; Tue, 05 May 2026 15:56:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300851.1575303; Tue, 05 May 2026 15:56:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKI81-0000mD-CD; Tue, 05 May 2026 15:56:09 +0000
Received: by outflank-mailman (input) for mailman id 1300851;
 Tue, 05 May 2026 15:56:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wKI80-0000m7-9W
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 15:56:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKI7z-005i21-MM
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 17:56:07 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fa12f7-e002-0a2a0a5209dd-0a2a4502df6e-36
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 17:56:07 +0200
Received: from [209.85.167.54] (helo=mail-lf1-f54.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fa1317-af86-0a2a45020019-d155a736b0bc-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 17:56:07 +0200
Received: by mail-lf1-f54.google.com with SMTP id
 2adb3069b0e04-5a40cfab24dso5989855e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 08:56:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1777996567; cv=none;
        d=google.com; s=arc-20240605;
        b=OuHR0heqH2jo6s5ihAnrLa4bhD93e4aIv9gApk9AjOZM2oIoY5z+WaH4nkkJgoogbm
         0YskHSUEEoWmkR/WTOg3vaipZ9CXQH0gDo3WWs4dgfwDJ0r9qPs6BHD1pkFMWEJj8y23
         RrDelIKBUvumxazXOcztFSGY+v9uGoKIgGWR+qj6xnLYqFlF1VUV41UONTV6vPATaboD
         pceN8iD2muGZtHEqKqaWbJDEFrDIiOFlEc+HfJngZeiHvdiopFuejL3q/n81azP4Gm7u
         7KRTjC4hKPJ2Gz+IagwgIouczDyEUxk3N9d4kRJ5aQd28gkJuWFJ2CZ8ktfV2WhLct69
         B1lQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=HuNZHulAwh+EOwt2M0h+Hs4hQD0c89BqN36BzTSZvHQ=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=YdzG0vcgs/90sPnmd32REblnlNbuYF9NbR3QzXBoQkFAyfPsdkBFONSTx3/XZHrY9Q
         KZLz9ONRQi7XwjsDvA0g12YvQpgb2TX3/itmWNT7PGn12fOVfg4t35jd4oLeOrePzWEq
         DKDeXNxuMxnuHrNBxOZ2nCXmlJuYWlTY9KcOm/soh5Eiu4sNAHtVO1+2Ixz70BRvd4pm
         LTDSI6BHW4DjeviMQ5+G29Qm/NvYYTNLZiJmbsI0x/Hut1RAUH6Fz0PpKZPMiBq5cmer
         PnXYyB07C8IqzIj94na5Juxx6A+1PLIxAJQdu9CTatoodP6FNpuKUmY1hdn5+yNV0kUg
         XMPg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777996567; x=1778601367; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HuNZHulAwh+EOwt2M0h+Hs4hQD0c89BqN36BzTSZvHQ=;
        b=iAnKVa+yIOMlKD/gUpCz+qWmKCbCZe9tFY10TbRDMeund7oV+jvchb/DToNtLm+d6Y
         CCTo+UR6HvDFtkmUG94TTsmMZCIDRZdng/szyGlN4t2eYAzfjJdbgj7uhfo7pMCHPecy
         4SPgLgLxwOcKhNkhkIa40/qAFLmu+oFeD7tBrgPeL6R5Buu64R4yeoLIbehO/m/wKEhV
         Fj5dN5b1a5pQ7/szBmZ+IK5x7gg3GONvFe22ouZince50tHavbqtI6pdCT+apYKM7OiB
         XABKeMWN9HAA4l9KwRtEKb76RQOjb6tnvL3P8GFsoXWeTmDgIiDM94e0roLT2KqwP49T
         OYUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777996567; x=1778601367;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=HuNZHulAwh+EOwt2M0h+Hs4hQD0c89BqN36BzTSZvHQ=;
        b=W9oep2m4LK0+yzv1TPET6kEqBWb2RPRCQAvd44YZXIRCjtVr1599GEYxyTykz2K8yM
         BVurmUDmTg6RFX9z2e0ftmTg7O+yJNxsviPFUneCrinvpOxTSflDlv76A0Xz81Yj+1Ij
         3J+zC54J3O63oiBjyYgyghSpoaSbMwoYkaH4GUnABJkrqgAxPR/2MFadxptd3O3KifM0
         75gaNwyf6DnKN9zk3L1oza76yiTtxKbDpelM1UyA8nq/2J42g6UZOjACQr+cpTUNKjMf
         Y0v5zOmvbNzGsnP1YvJ0NsiNtHrZW+SKDzJ2j0htLClwot6vaHonXYtp7NnUmMMzYiKm
         LRlw==
X-Gm-Message-State: AOJu0YwYj6/NxCh7CDAr3ZJazHplVbmMdhjVRmbFIvrB6mUwJvve1K5g
	xf8cUeaHrYJKwo5Q7mUqf7JvGaHt32esGskZ4zNKjPZN6OMk1SipjfmRMw2tfNgJ77L+SlCFVFK
	Rc49RzfYUWm0cN8e5iKTEs4aQc6/e0/k=
X-Gm-Gg: AeBDiet62Q5TRshmzYeInZsxoymdCwBW9F67aMs77IaB0Egpi2A618U1NxM6yPUTBGW
	MK+9e2R3RvLcdP7nBnn/HWQUHkz2DPpPEUuXLbu/fQPv38vKKImiGMeeZC63bl5y6m+MPcNkAl9
	lxYf6ndqZMBuPfKotaigPOEToUUtBYv2CZSypP/NYfpJgMMaNk9rkSJqQJODuXaJofImmaJch1D
	gxjjztulA4SKLcapBpbkoSTAoJjfyTu60Hti6P0vJe/eG9N1w6F0FMWVRoPfkH8xV42FlBRsBEX
	uciSXKtwq9ffFJX4s/SqV1566PE=
X-Received: by 2002:a05:6512:3090:b0:5a8:7c80:3f3e with SMTP id
 2adb3069b0e04-5a87c803f6dmr2175169e87.14.1777996566521; Tue, 05 May 2026
 08:56:06 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <02b55a02f329d09c9f8b15d97ca9176b3c33017a.1775125380.git.mykola_kvach@epam.com>
 <ECDA0BD5-C2C8-4726-9377-AE4AFBE972AD@arm.com>
In-Reply-To: <ECDA0BD5-C2C8-4726-9377-AE4AFBE972AD@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 5 May 2026 18:55:55 +0300
X-Gm-Features: AVHnY4JDkdlmJZWNpT7hyZZMLcNL17vU7UTQSUH7lbzGeu5906GeV_u-4PeeC9Q
Message-ID: <CAGeoDV9Jg0neHn0qzoaDSThhVRGQE8ko2qhbhDvF77=6hrYUWg@mail.gmail.com>
Subject: Re: [PATCH v8 10/13] xen/arm: Resume memory management on Xen resume
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-720697/1777996567-81971161-B33E1FDD/0/0
X-purgate-type: clean
X-purgate-size: 4117

Hi Luca,

Thank you for the review.

On Mon, Apr 27, 2026 at 5:51=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> > On 2 Apr 2026, at 11:45, Mykola Kvach <xakep.amatop@gmail.com> wrote:
> >
> > From: Mirela Simonovic <mirela.simonovic@aggios.com>
> >
> > The MMU must be enabled during the resume path before restoring context=
,
> > as virtual addresses are used to access the saved context data.
> >
> > This patch adds MMU setup during resume by reusing the existing
> > enable_secondary_cpu_mm function, which enables data cache and the MMU.
>
> I don=E2=80=99t understand where this last part happen in this commit:

This is a leftover from before the commits were reorganized. I will update =
the
commit message in v9 so that it only describes what this patch actually doe=
s.

>
> > Before the MMU is enabled, the content of TTBR0_EL2 is changed to point
> > to init_ttbr (page tables used at runtime).
> >
> > Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
> > Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
> > Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Changes in v7:
> > - no functional changes, just moved commit
> > ---
> > xen/arch/arm/arm64/head.S | 24 ++++++++++++++++++++++++
> > 1 file changed, 24 insertions(+)
> >
> > diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> > index 72c7b24498..596e960152 100644
> > --- a/xen/arch/arm/arm64/head.S
> > +++ b/xen/arch/arm/arm64/head.S
> > @@ -561,6 +561,30 @@ END(efi_xen_start)
> >
> > #endif /* CONFIG_ARM_EFI */
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +FUNC(hyp_resume)
>
> I think we should mask all exceptions here:
> msr DAIFSet, 0xf
>
> until we resume correctly the status (VBAR_EL2, etc).

This was discussed in an earlier version:

https://patchew.org/Xen/cover.1741164138.git.xakep.amatop@gmail.com/2ef15cb=
605f987eb087c5496d123c47c01cc0ae7.1741164138.git.xakep.amatop@gmail.com/#CA=
GeoDV97no7mXSKd7auFu5E85wSXAHKWvqGW2=3D-VEAbkrTyU8Q@mail.gmail.com

For SYSTEM_SUSPEND, PSCI ties the call semantics to CPU_SUSPEND. In
particular, section 5.20.2 says that the caller must observe all the rules
described for CPU_SUSPEND, and section 6.4 explicitly says that the initial
state rules also apply to SYSTEM_SUSPEND.

For the return Exception level on AArch64, section 6.4.3.3 requires
SPSR_ELx.{D,A,I,F} to be set to {1, 1, 1, 1}. Therefore Xen expects to ente=
r
this resume path with DAIF already masked by PSCI-compliant firmware.

I agree this assumption is not obvious from the code, so I will add a comme=
nt
at the resume entry point to document that this path relies on the PSCI ini=
tial
core configuration requirements.

>
> > +        /* Initialize the UART if earlyprintk has been enabled. */
> > +#ifdef CONFIG_EARLY_PRINTK
> > +        bl    init_uart
> > +#endif
> > +        PRINT_ID("- Xen resuming -\r\n")
> > +
> > +        bl    check_cpu_mode
> > +        bl    cpu_init
> > +
> > +        ldr   x0, =3Dstart
> > +        adr   x20, start             /* x20 :=3D paddr (start) */
> > +        sub   x20, x20, x0           /* x20 :=3D phys-offset */
> > +        ldr   lr, =3Dmmu_resumed
> > +        b     enable_secondary_cpu_mm
> > +
> > +mmu_resumed:
> > +        b .
> > +END(hyp_resume)
> > +
> > +#endif /* CONFIG_SYSTEM_SUSPEND */
> > +
> > /*
> >  * Local variables:
> >  * mode: ASM
> >
>
> This is more a trampoline for the core resuming, not sure if it could be =
better to squash this
> into the following patch, the maintainer could provide their preference.

Yes, this patch is only the low-level resume trampoline before the context
restore code is added by the following patch. I do not have a strong prefer=
ence
between keeping it separate and squashing it into the next patch. I can squ=
ash
them in v9 unless the maintainers prefer to keep the trampoline separate.

Best regards,
Mykola

>
> Cheers,
> Luca
>
>
>


From xen-devel-bounces@lists.xenproject.org Tue May 05 16:11:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 16:11:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300863.1575312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKIMw-0004dz-O1; Tue, 05 May 2026 16:11:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300863.1575312; Tue, 05 May 2026 16:11:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKIMw-0004ds-Jj; Tue, 05 May 2026 16:11:34 +0000
Received: by outflank-mailman (input) for mailman id 1300863;
 Tue, 05 May 2026 16:11:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKIMv-0004dm-7Z
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 16:11:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKIMu-00Ei4m-Fw
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 18:11:32 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fa169a-e002-0a2a0a5209dd-0a2a4502e76a-44
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 18:11:32 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fa16b4-af86-0a2a45020019-d1558032cdef-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 18:11:32 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-48896199cbaso47867505e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 09:11:32 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a8eb72a17sm377921635e9.6.2026.05.05.09.11.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 May 2026 09:11:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1777997492; x=1778602292; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SyIrH5vXAviTW8mLwRkpgf9FBflz3UdGJIStN0SWxmo=;
        b=c4mvjy1lyLRQXwy/fZItzoPnEQBablpwX6wd9fNDM1geuuytPqJFmfeDNqUK/yi+yp
         9o0gdX1iaQtr7zRU0S7cPGDcp9OlKqNUlUVazf3dBCgqOygccgoKZ6ko5CC2MjmDZv32
         1aJBtaF+60/YeXn/VPE7AAiWoXR2JuzAZL4xp8/2R+owgLBY88osuMcVTAyty51v6klx
         iWzi9xCrJv2jSiLFwVDj5Ep0AzA79VmKdkjNpFvQTC/0lbTXqoyRakIjgB4WG6s7gQL/
         Uxo/9/+wn44bcINJjroZrCCH9kayXuzDE3VjyWxhfiBMBwlGos5fojZr9MksMe/GrMj9
         qDIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777997492; x=1778602292;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SyIrH5vXAviTW8mLwRkpgf9FBflz3UdGJIStN0SWxmo=;
        b=RdEzDXihy80Tm105fc2QWeL/nfQjqul6pbPOC/zpcDYt48z4qW49k/r2H/2e0HD0Zr
         rOT/JnGtd/m9aop0xZ2kcwK1EbepaOYd0yfGM+xcxFez0yM9fqdZAzAI3EFVi9SCyyqm
         Mpao705ZDaJyDK1YKSJGrkCvUrGHojqpGkaUXA3fBZlH68+h9vbhht9o8mKAJcsE01tp
         SGnVNzH0fCdu9YN8zftZAbInakCtkvYIPAUNijm60uLCwNfr56Hcw2UTC4XfI6knvP6j
         knjKJmSkAJTXGHGq+Sky8hYr0UwWkdHF8itmbAo6H8Y5N/IvTB2Z+oaO/h1C53ttMD6u
         hsBA==
X-Forwarded-Encrypted: i=1; AFNElJ9Oex1qm9bTjferPb1pvyAD0fQv56E6zbAvyZN9RQMd1Dmbjx2bxvcMSLVl4RqehQ7DhGwyz51kPo0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvMSZ4NWpVcNXHFti3+EAq6WYCCaH6ukWUKbOU2d5xc7PDpFFf
	+EwK/YoFcXDY9vu4ucyJDw0JCtgBjIO09ue8b/NvpNytsfpTqyFS20O6DtqqXupDRg==
X-Gm-Gg: AeBDiesKM9VMtU7aJ2TCTrhwylFqMQ3yURgiPNyzvN3YFEOWt9LllNjVFKtOtT2o0c4
	mN8WtCxnPPRAJTqOPWwm/9jx2MuD0rfiDm3Bl9a9Cs8pzuyeL7yQZkqWThMKCgCAExhvnD7mk96
	w0a+8yN+IT94SmZ8QOhVSmwwPNQ4FnicfRdLFOIqC8IieEVW6ZSEnjhpSOqZf2IYRmeGz53+uVO
	IQ8kmb7NXTrYMosMc3F2U0FziFKhZ7qzU3kMs6lOw8eibQc36F2HqHgY+ZTj4e5oLxH5M6mg9GT
	5ineZv2emRzirsoPz3I9LPJsj8sNTrz7iXu+AeTHS10pzP7JzoGkxBk8IE9P1G9eetX4cXImn35
	1YTOfOjawJNcRspRutY7I9HPf+V7nrLsGJwrk0Jm15oD9+uvwiaKPWvXCPl3G1DiIGWKNMuX3Hk
	z/0O7VY6/J9v6FuBbld5O7wWnxAbXZwRXEKP4sMmQJ1QqpB0fKUFtN/rs6BevsGxLCclhmQhWXW
	Cah673sG1k=
X-Received: by 2002:a05:600c:c08d:b0:488:ffad:6728 with SMTP id 5b1f17b1804b1-48d18ce221dmr45936455e9.19.1777997491878;
        Tue, 05 May 2026 09:11:31 -0700 (PDT)
Message-ID: <8c5424c1-113a-4f5e-96bf-2613f28b8bac@suse.com>
Date: Tue, 5 May 2026 18:11:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
 <661c18d9-eceb-4a4e-ac2e-37a6931e06b2@suse.com>
 <d7b30467-50ed-482c-9046-6a51d43bb514@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d7b30467-50ed-482c-9046-6a51d43bb514@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1777997492-80B78161-DA39FB0A/0/0
X-purgate-type: clean
X-purgate-size: 2329

On 05.05.2026 16:52, Orzel, Michal wrote:
> 
> 
> On 05-May-26 15:05, Jan Beulich wrote:
>> On 30.04.2026 14:51, Michal Orzel wrote:
>>> --- a/xen/include/xen/pdx.h
>>> +++ b/xen/include/xen/pdx.h
>>> @@ -132,8 +132,9 @@ void set_pdx_range(unsigned long smfn, unsigned long emfn);
>>>   */
>>>  bool __mfn_valid(unsigned long mfn);
>>>  
>>> -#define page_to_pdx(pg)  ((pg) - frame_table)
>>> -#define pdx_to_page(pdx) gcc11_wrap(frame_table + (pdx))
>>> +#define page_to_pdx(pg) \
>>> +    ((unsigned long)((pg) - frame_table) + frametable_base_pdx)
>>> +#define pdx_to_page(pdx) gcc11_wrap(frame_table + ((pdx) - frametable_base_pdx))
>>
>> If you alter these, ...
>>
>>>  #define mfn_to_pdx(mfn) pfn_to_pdx(mfn_x(mfn))
>>>  #define pdx_to_mfn(pdx) _mfn(pdx_to_pfn(pdx))
>>
>> ... how come these can remain unaltered? Maybe you have some special
>> arrangements in Arm code, but surely in generic code transformations done
>> should be uniform. After all
>>
>>     ASSERT(page_to_pdx(pg) == mfn_to_pdx(page_to_mfn(pg)));
>>
>> (and alike) ought to be universally true for valid inputs.
> The invariant holds. There are two transformations on different
> boundaries:
> 
>   - PFN <-> PDX: the compression scheme — lives in mfn_to_pdx /
>     pdx_to_mfn.
>   - PDX <-> frame-table index: +/- frametable_base_pdx — lives in
>     page_to_pdx / pdx_to_page (and Arm's page_to_mfn / mfn_to_page).
> 
> On x86 the second is the identity (frametable_base_pdx == 0), so it's
> invisible. On Arm it isn't, so it has to appear in the macros that
> cross that boundary. Pushing it into mfn_to_pdx as well would mix the
> two boundaries and double-apply on Arm (page_to_mfn already adds it).

That's yet more odd. These transformations should equally apply to
MFN <-> page (i.e. frame table index) and MFN <-> PDX translations.
PDX really is meant to be the frame table index, and at the same
time (scaled by PAGE_SHIFT) the direct map index. Both (generally
huge) tables equally benefit from whatever compression is in use,
and hence also ought to equally benefit from that
frametable_base_pdx-only sub-form of offset compression. The
anomaly of shrinking only one of the two pretty clearly shouldn't
be extended past Arm, and ideally would be addressed there at some
point.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 05 16:15:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 16:15:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300869.1575320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKIR8-0005CP-7w; Tue, 05 May 2026 16:15:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300869.1575320; Tue, 05 May 2026 16:15:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKIR8-0005CI-3o; Tue, 05 May 2026 16:15:54 +0000
Received: by outflank-mailman (input) for mailman id 1300869;
 Tue, 05 May 2026 16:15:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wKIR6-0005CC-Bd
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 16:15:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKIR5-006d4c-Ah
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 18:15:51 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fa17b5-2eae-0a2a0a5409dd-0a2a45059956-6
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 18:15:51 +0200
Received: from [209.85.208.174] (helo=mail-lj1-f174.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fa17b6-aaa8-0a2a45050019-d155d0aef085-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 18:15:51 +0200
Received: by mail-lj1-f174.google.com with SMTP id
 38308e7fff4ca-38dd9f11a09so45908921fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 09:15:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1777997750; cv=none;
        d=google.com; s=arc-20240605;
        b=lBr9Nm+cgphtYFiU0qUqEiw5GJnJ73QVftaKHJp1ytXra2l6+KFYCyjw9vrVoMz2Wi
         fuWdK2FTFL7LqHb4hefUSuv6iVrDNEqse1kxPjtKXAPYv2EriN+L/o1nvsqbAbXuSq4y
         D29KzEvC+3xx+HOAFvbPV9lj9sIQ2AFFDRZRiIsb13153YfAGObgqrhS3RldYc6mURfJ
         55veYjOSadvw3ukryQHBXZI7WtU7oLB39JYPgG7PKo2fg8mGauixwwdBUBo9kPGVrWjh
         zEyAr/jRKYuP9LqbHGKRF1Yr614iYtoQqLL8YoRRr8qVJ00LU/MP1BUk2dscN7I3mowB
         vWRA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=5PkHi5Y9M0pcOvWBUIGdRTYScNdEJkRkygTPYP2eGdE=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=IH8tPlzF54kJmNi/3RNp9OrpWhdVwf9SIVCnSgzsrr3zS9ChfaLqPsaX7unJbA2QKf
         KKcfC6o05Y1aJ2hgaEbHbcfpKl03rGxwiuugmOp0hGcoPRlHQSSSgee7kzx5soHbB0eS
         GS9OPKGcDcxgEiIRCYp9EcpSdYHPRlGvXXIMS5FpRcL1QI+CkiF0fV6OmfI5yZKvSFWY
         uiDSFZ2Lf5SYGKwKSCf8Xx6OmJc9g5RPtcI9LdSb+4xxRnAJZIlf+YqjJM3qISV9eYhe
         9ET4XnPheUrJU95Sj18I22rHKp0y1fjsgt+AB41yK1nqlZiLpygspPjCZgJABu+i6tK1
         TN2w==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1777997750; x=1778602550; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5PkHi5Y9M0pcOvWBUIGdRTYScNdEJkRkygTPYP2eGdE=;
        b=pTJl5CVA9uaOJHccseAZNayrbrkKDPoSi41KuX4dNEzHtUlvEtpVcibq/ZPpQjZgj8
         S6ZWnGr7ncSDkZqsLi/uRzRhX4pl+VnV236Z07zxIftDdOUiY/DQMB8cTOuIiitLluh6
         dWKzmU9zqelg1Q/ZQk28tZGtP3nOstFpDcYxXlJGChkB/39UTJOBsOgymzvzFHop6TRz
         aePmSQXCUrNVYJGWkfdqIDaiJj8opoHIBRSfbPI7lGTqOoTBl8NRSpcOXtlWI29JZR3E
         QOBpT4Gqcpsdaf74HaHqEcJuz+Q0miD0C6jt4tnKWz5VNUj+AjEIV5Fe06LCQOqMpOKi
         hFZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1777997750; x=1778602550;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=5PkHi5Y9M0pcOvWBUIGdRTYScNdEJkRkygTPYP2eGdE=;
        b=AURU3zIjhFwwPhAgXEvdWuwNiDjgEfWI9YGvVZxV3ld4f3l2x0Iqy7hPk6QAdZu1iC
         qs9BVJfKWONtzMyLLic6d8vky+UznExutOjl8eBUT9c2Re6ip36HOz1VBkuDDfr6qhb9
         JyeoiAUbuqk9oERSgoLq/7cQyENgC7Yzvgtf8sqAA2cQunm7Fme+4ncUan048DwxPboi
         1sM0hbGoEUzqBEqZ6Vj/MWidvy/X36gNJmhoA4wqaKvbSEetq1ljQ8eugpmQEfUuU+lV
         IkMrm08uXlwyMHbgmj+fduLuzB+0W8FOpbcw54ibQOsL5NoUOhpI8jijPyhRx76t2Jvm
         DdEQ==
X-Gm-Message-State: AOJu0Yz5InizgJ+SxeBBA1MUFtAW/Zbyqp+krL0Bsqonx70pap5Em6Qd
	mM3JTzE6gHQBfSyXf6gKBZ/gyJK9Y6NUZslNp9JSwfNhXlL0nomPdfTogf01TIXi/4gokeD/YW+
	jRa7IiJe2JIGA4DmCh+fmVmLtDMzzPoA=
X-Gm-Gg: AeBDieuGAWB2KMCmOiOFAzsJNugPt0esc7eIB55pqUEqIwbziJ9SltFS9uiVAjs2yJG
	hfG4sve7oojb0vlZt7hZqyb+jV84JfIUfuYsCndyF4eC31hvM8sSmhQAGMao24JfRl46wJ9tA9u
	W1Iw0YcREHHHs1+jFUMs5/IZ1txXKgnH4UNvnyTBMKwzcTMO7ICfHXec4PZDnlU3YPzjGP03PHk
	/xatZGd4BfOy4wDPLCZ+02tYUbrJNvkeoMtvr0oqaYgbs9XMPss+CHO5HniskoniinGA/OYiEWk
	Pbjhxj3FKEhzF1ZeZoVmVk5JGpc=
X-Received: by 2002:a05:651c:3253:b0:38e:85a3:fdf5 with SMTP id
 38308e7fff4ca-393c3b9ef75mr245281fa.18.1777997750127; Tue, 05 May 2026
 09:15:50 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <8767d4129cd5bc56086172e58320539be7da4059.1775125380.git.mykola_kvach@epam.com>
 <A0DD6517-9EFB-4DA3-85E6-91771BC23553@arm.com>
In-Reply-To: <A0DD6517-9EFB-4DA3-85E6-91771BC23553@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 5 May 2026 19:15:37 +0300
X-Gm-Features: AVHnY4IrysOt3S6uyhp6FbQHVX_-258ZZw4hlASPj3k8tlvTgm7ehqX6AKde12E
Message-ID: <CAGeoDV-6bSzCkENgP+W5Fuy5bjoJzDw235pxDw5eQzgE3WXPuw@mail.gmail.com>
Subject: Re: [PATCH v8 12/13] xen/arm: Implement PSCI SYSTEM_SUSPEND call
 (host interface)
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c201ff/1777997751-E3961443-578406B7/0/0
X-purgate-type: clean
X-purgate-size: 3885

Hi Luca,

Thank you for the review.

On Mon, Apr 27, 2026 at 7:23=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> > On 2 Apr 2026, at 11:45, Mykola Kvach <xakep.amatop@gmail.com> wrote:
> >
> > From: Mirela Simonovic <mirela.simonovic@aggios.com>
> >
> > Invoke PSCI SYSTEM_SUSPEND to finalize Xen's suspend sequence on ARM64 =
platforms.
> > Pass the resume entry point (hyp_resume) as the first argument to EL3. =
The resume
> > handler is currently a stub and will be implemented later in assembly. =
Ignore the
> > context ID argument, as is done in Linux.
> >
> > Only enable this path when CONFIG_SYSTEM_SUSPEND is set and
> > PSCI version is >=3D 1.0.
> >
> > Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
> > Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
> > Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Changes in v7:
> > - no changes
> > ---
> > xen/arch/arm/include/asm/psci.h |  1 +
> > xen/arch/arm/psci.c             | 23 ++++++++++++++++++++++-
> > 2 files changed, 23 insertions(+), 1 deletion(-)
> >
> > diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm=
/psci.h
> > index 48a93e6b79..bb3c73496e 100644
> > --- a/xen/arch/arm/include/asm/psci.h
> > +++ b/xen/arch/arm/include/asm/psci.h
> > @@ -23,6 +23,7 @@ int call_psci_cpu_on(int cpu);
> > void call_psci_cpu_off(void);
> > void call_psci_system_off(void);
> > void call_psci_system_reset(void);
> > +int call_psci_system_suspend(void);
> >
> > /* Range of allocated PSCI function numbers */
> > #define PSCI_FNUM_MIN_VALUE                 _AC(0,U)
> > diff --git a/xen/arch/arm/psci.c b/xen/arch/arm/psci.c
> > index b6860a7760..c9d126b195 100644
> > --- a/xen/arch/arm/psci.c
> > +++ b/xen/arch/arm/psci.c
> > @@ -17,17 +17,20 @@
> > #include <asm/cpufeature.h>
> > #include <asm/psci.h>
> > #include <asm/acpi.h>
> > +#include <asm/suspend.h>
> >
> > /*
> >  * While a 64-bit OS can make calls with SMC32 calling conventions, for
> >  * some calls it is necessary to use SMC64 to pass or return 64-bit val=
ues.
> > - * For such calls PSCI_0_2_FN_NATIVE(x) will choose the appropriate
> > + * For such calls PSCI_*_FN_NATIVE(x) will choose the appropriate
> >  * (native-width) function ID.
> >  */
> > #ifdef CONFIG_ARM_64
> > #define PSCI_0_2_FN_NATIVE(name)    PSCI_0_2_FN64_##name
> > +#define PSCI_1_0_FN_NATIVE(name)    PSCI_1_0_FN64_##name
> > #else
> > #define PSCI_0_2_FN_NATIVE(name)    PSCI_0_2_FN32_##name
> > +#define PSCI_1_0_FN_NATIVE(name)    PSCI_1_0_FN32_##name
> > #endif
> >
> > uint32_t psci_ver;
> > @@ -60,6 +63,24 @@ void call_psci_cpu_off(void)
> >     }
> > }
> >
> > +int call_psci_system_suspend(void)
> > +{
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +    struct arm_smccc_res res;
> > +
> > +    if ( psci_ver < PSCI_VERSION(1, 0) )
> > +        return PSCI_NOT_SUPPORTED;
> > +
> > +    /* 2nd argument (context ID) is not used */
> > +    arm_smccc_smc(PSCI_1_0_FN_NATIVE(SYSTEM_SUSPEND), __pa(hyp_resume)=
, &res);
>
> I think Linux is passing 0 as context ID, probably to mark that it=E2=80=
=99s not used, I think we should do the
> same

Yes, agreed.

SYSTEM_SUSPEND takes context_id as the second PSCI argument, and Xen does
not use it. I will pass it explicitly as 0 instead of relying on the SMCCC
wrapper/default register state.

Best regards,
Mykola

>
> > +    return PSCI_RET(res);
> > +#else
> > +    dprintk(XENLOG_WARNING,
> > +            "SYSTEM_SUSPEND not supported (CONFIG_SYSTEM_SUSPEND disab=
led)\n");
> > +    return PSCI_NOT_SUPPORTED;
> > +#endif
> > +}
> > +
> > void call_psci_system_off(void)
> > {
> >     if ( psci_ver > PSCI_VERSION(0, 1) )
> >
>
> Cheers,
> Luca
>
>
>


From xen-devel-bounces@lists.xenproject.org Tue May 05 16:31:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 16:31:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300884.1575329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKIfx-0008Ud-Jc; Tue, 05 May 2026 16:31:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300884.1575329; Tue, 05 May 2026 16:31:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKIfx-0008UW-Ge; Tue, 05 May 2026 16:31:13 +0000
Received: by outflank-mailman (input) for mailman id 1300884;
 Tue, 05 May 2026 16:31:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wKIfv-0008Ty-88
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 16:31:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKIfu-002rwh-Iz
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 18:31:10 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fa1b4a-bab6-0a2a0a5309dd-0a2a4509bbb0-8
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 18:31:10 +0200
Received: from [40.107.209.43]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fa1b4c-2497-0a2a45090019-286bd12bf7d9-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 18:31:10 +0200
Received: from LV3PR03MB7707.namprd03.prod.outlook.com (2603:10b6:408:28b::21)
 by DM6PR03MB5209.namprd03.prod.outlook.com (2603:10b6:5:245::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 16:31:06 +0000
Received: from LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf]) by LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf%6]) with mapi id 15.20.9870.023; Tue, 5 May 2026
 16:31:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=quHbZgRZqUJKNkQH265J7o7HtLJ7viSgeHEx0IbOjNiQAt06C0yYSRqZwCRuMyyo5rQ3xt8CxInv7q3EWm8FUT6CZV9agmdY7yXWLSj1KKxH8Rl9Kbws8PelIeHGz4XLLvAOtf498w6DEiSozoAXW5Sr3TGOYs9BJMQDDi3ZNvv2qU3o0Rwyj4Nrt/w3dGvBzdSSf1TrqqznoUB7pQTBp1bJvR9fuTDcg7+WwiGTLqauo/+BSy8fQmiEb4UiJ7x2FLWcR4bKSt+M08qaRbW9++dGcAHL9X8x4EoltzxcEmgMUGfyhiWUYNEO95dPDdvto3C35Bwhc3VDCxYYHaCtVQ==
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=7nqiA/BVuEQkhZmEA9uB1+MCTU4aOSAawbd56ML86Pw=;
 b=WcZVD/vj8Gbvu7IEk360sLJr0YstTrNJQK55XD0oP66Ogo8dm5TskO9gkT5Yz147fbnpHydOuP72D8BsO9wyypBW0VgUv+14SgHSff6nqV8jvBeM2s2NagmMPZVxEzCVsBMgT256e7GI9or/DduL9fWDQrd9LvWsiESVqRFZGZ8gnctrYMLoCVmzvbHLO/1X2oATNC+RSlpPfQ7D1o0fXGSmbnb/ADKtr/941RazcdBrykoxNgxXUpYjA2get77cuMfe9SiT4sB9APSSepyjp7pvpdYap/AM2cX2Os9dPU3wwlk1TvcpAUEpNR2OR+W8tDO6PLHuK3366S36XGBM7A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7nqiA/BVuEQkhZmEA9uB1+MCTU4aOSAawbd56ML86Pw=;
 b=kDBOcyn4yKzv002M1PxOP0XqjFNjZ64jnZ/si0PIrrW7HrfzJQIyC2apw6nOfquaSjwr92PcZZPMW1tI0JzTKSoq+AEEie5Ia++h14w1AX7eobwfHnwfE5ttuhe7M3RU3OmF3W3uYYcjyuaEcg+57aP654LjW2rH3mSoOJh5K4s=
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Roger Pau Monne <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 1/7] xen/mm: Refactor claim deduction for later
 functional changes
Thread-Topic: [PATCH v6 1/7] xen/mm: Refactor claim deduction for later
 functional changes
Thread-Index: AQHczBIVjQaUKhelwUCYpZQxzVcChrXqzwoAgABXiPCAElKBgIACIl5Q
Date: Tue, 5 May 2026 16:31:05 +0000
Message-ID:
 <LV3PR03MB77072A8F8F64A584929B1FB6873E2@LV3PR03MB7707.namprd03.prod.outlook.com>
References: <cover.1776172526.git.bernhard.kaindl@citrix.com>
 <5302d33e7e896347acc7a8212df4f28ea098e28e.1776172526.git.bernhard.kaindl@citrix.com>
 <3df7352b-7502-4c2a-bc3f-0cb4fa7014cf@suse.com>
 <LV3PR03MB7707C0637B5F73CA26E3F4D4872D2@LV3PR03MB7707.namprd03.prod.outlook.com>
 <3867aa2d-ed58-44dd-bc06-94643ee5918c@suse.com>
In-Reply-To: <3867aa2d-ed58-44dd-bc06-94643ee5918c@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LV3PR03MB7707:EE_|DM6PR03MB5209:EE_
x-ms-office365-filtering-correlation-id: dd5a01a4-3783-4b58-a8f7-08deaac3b4aa
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|10070799003|366016|1800799024|376014|38070700021|18002099003|56012099003|22082099003;
x-microsoft-antispam-message-info:
 MXSyJI9xs8YkdReWieHBYQaDBWlqusWHuElpF8++GRxPPiNR3ekwBxo+gh6p0dWJVqmj18/nVF3CS1UYtTiRkNlnqgfHOsfFpf1NOnGeJhBAyAjIjIHuPCfD+zdh2OfzU0ICg66DRb8tuSJLxc9qC2jLnrCP0zaiCoHm6lsCKdQJ4CTzfVa0grkFibDoMfNQWqrVk6N6OKoNiMi6dqR7Bo4vkobKdZH+DIUxYT1GowUAIecTg0GyrFOQ+0uJKLDB6x0Eh1sEki69o0QUu4GobLc7ceKvXVQ0/yvSKpZRZr+w9S4d5cBvcRv9zEjsv36pF50s3r0X1spvAS4Vd8WpHChps/QQpMhCp/NUn5EqToPa0tURe00edEEuLg0zreev7aZoivJruvjXCHzpp99+GzBNc8dDaMnO/KN/hwa1RmF4teeh4sYhfrrTZFY3Vm2s4O/dboXWXrEQEHp+gnheM8tfaUOaPWh+z5/CTL8059GSYEPblDUjNhxvHveHpqok2gsVlV2iDd1raV+iGzzszr/omccVUt5swIj5G9qJXrDxwpYZNWNfNZIfiTRbof6uXJgH8rNE2hadA5THm23BLevMON9KuBMJwY4naRO7feaZmEG/P8mkImfq4uudI7esvqoae+5JBOV56WxaaNTe6l8422uHrPK5S9FyKuCXLcIolyPtZERL6g/4yL4tPdrIv85yEGGjKzOLJZWpDJXcrpBA7yGrjW7Av8tCHtaEjNMn6QAlvWb6JDgUeNGAJvSa
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR03MB7707.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(366016)(1800799024)(376014)(38070700021)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 2
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MFUwUC9SWkQwUTBYU1NlYVhKM0lBbVpWalNMWGx5VElIbyt5czRxcW93eVIz?=
 =?utf-8?B?M3VncHIramlTdzN6R29vYTZtVGxPa2R5amM5a1lZWXJ4L3ZIVUNBZGtDM3lq?=
 =?utf-8?B?cTFxTjJkMDBTMnJxWlBDR2JLN0NCMFQrdHZtcDU4Z1FHd0hkUGoyNmhTUlZ3?=
 =?utf-8?B?L2tod1N0U0JlSWpENE84WndvZnBwa29KUEpNQ2NqMCt1MXVna3BVNlNrQ2Ur?=
 =?utf-8?B?djZwenpxNWwzeFFSSHFTbXlya3owVHF1enBPd1JJbnVOeGZBTDl3UTdxdDI1?=
 =?utf-8?B?cVB1bHBPOVJDNDlwc0FMM1BIU1c0blJBQmtBV3lCOHVyYzV6Qm9BYWxQeEpZ?=
 =?utf-8?B?aXBBV2ludmViNmZ5NzQ0Yy9hdU5QQTZtVTljQjR4NGJOK2x5NFh0aHZ3UU95?=
 =?utf-8?B?VlNka21ET0JDNGU5K2h5c1puM2NURDEvdjJiOW1tclRnZVI1ZldwSXNralpj?=
 =?utf-8?B?MmJ5YTI0MVdlNGJIc1QreUJic2VQT0tNUjhFLzk1dS9RM2cvRUFmVVQveURJ?=
 =?utf-8?B?MkdBNFhjU0hndnNXNnJpcWM2KzdCalNxL3M1OEhRb3h3SUFWS0hHZ3liMHFq?=
 =?utf-8?B?MCtlaGZXVjdRaGNxcmRnaDZ4a1FLamZuenZiUmJ0NUpnV2puNUZxanNkdkh5?=
 =?utf-8?B?YTc0cHg0MmtkOHMvajFPYVZTdkVtN09uNWNXU3N4SFVDSlJnY3pPZkRvK0FL?=
 =?utf-8?B?Qk1qWDA4eVBXU0pVNVZDbnpQVXkwSzZ4Nm9kOEhLUVhZeFREMTBaMFUvbm9m?=
 =?utf-8?B?MGVmdWhrT1dRNTdmck8zVGtQZWFCMi95eEhLcGpJS2RFeDI0SGJXcVVkeDRi?=
 =?utf-8?B?R2dNTzVrcnl0QVZqYUxVWDVXNTZHWGltZUVEc3NuMlQxVXZRVWJWVmRhUEF5?=
 =?utf-8?B?VWtCUVo5MWRpeDREWDBkSnFoaGQ4ekp3R0ZnSzhtSFlJN2NsUS9zUzVzUWlM?=
 =?utf-8?B?UGRZUzJ2Mnd3cnhhK0tNbEJ1MzdENmNycW5CcFZjVHZJRkxmZllYU3lkMjJa?=
 =?utf-8?B?TDRGN3Zmd1VGUjQvaGowSWVaQVAxNy9lOE8xS3hoZ1dtUEg2RFRYZnVRc2c4?=
 =?utf-8?B?ZkNOZk0xSHhOYVZJbHpHaElZOEx6TjZnR05XV2NJb0YzQkFKdk85ZTAxbm9P?=
 =?utf-8?B?NmtBM0xCZjdSNDh3NVFTVWlMMVpabExMV0RldllaMnpCRW1PdDg1NGZvZlh2?=
 =?utf-8?B?QWVEVWZ4S29pOTVCVUdxdHRlM1NFZVNnaElhZXBSeFY5SzE0ZGgybU9OdXhY?=
 =?utf-8?B?eWxmSjQvSlU2ZDNqNkNOZzRIOFpIWWtEWlFvb2htLzVqSTh0WG5CY20wd3Ix?=
 =?utf-8?B?a1lDQlkxSUhmQVNJamF2bVAwd0JWYnlpU0V3QzNra1psMlZJd2tqWmtuSXRD?=
 =?utf-8?B?T2Vad3pOdE5yaFdUQUNROVVoTWFwSkpiQ2U4S1lnTkd1VWtpMXRqWXdJU25B?=
 =?utf-8?B?QVpwQVgwQkRIbS9OdlZHTnA5UkNMaFNidThGSFlUdE5CZE5aZFF2VWFGZW1s?=
 =?utf-8?B?ajN1eFo5dkpMRTdMQ0F6R1lQakhUdjlHWC9CZTdIaGdka01nUmdMdXNMTnc3?=
 =?utf-8?B?VkhjOEdiUmR1T3I4TmZ0dWJDSFJCOTZFKzhmS1NjSnFOaWxuUlhJZnU1WGpH?=
 =?utf-8?B?MFlnMVAxZ0RkZDFmWGhrVHFqMmpHVVByRGhrdmF3dGlub0U1Y0ZEQkdLejRt?=
 =?utf-8?B?VVhNN1hSemV6ejg3eWR1NUpRZGpScWpMZTFCVkJudUpCZmFvSXZBcXJUaW9m?=
 =?utf-8?B?NWlWOTl1eUdWK01YRTFjUTVJNHJCU0NjdEFWWHV0eFVYMWZjUStVUXZYZHZy?=
 =?utf-8?B?L3k2aFBPU2xmV0kwL05odkN4ZWJvTllscDM0WUt5OXUxdldjTjdWS01OdE9y?=
 =?utf-8?B?ajgycmp3RE5XTUxWa28yY0FlM2h2NlBndjJpRFUxeVJGQ0svdkVKS0R0VUg3?=
 =?utf-8?B?dTZVTkR3aGNjMjdVY3ozZm5TdGtJRWhqazRmbXVvc2dxNXljYnkzdHdacjVm?=
 =?utf-8?B?eFhBS21oeDNaNzRLNWY0NmVDN2dMUUVBOCtZZWVyUVVlTkl0VlJ2YTlJYXNK?=
 =?utf-8?B?SUd6bk42VTZIbFl3c1JNOUpZakZNUkhYUk1WNDREVWNDWFNDREI3bXp3S0sr?=
 =?utf-8?B?ZEJXVUw4SFJNVGhPa3c0dkNNTHZiSS84QkJ1alpNTGVveDJmRmw4S1lwUXlY?=
 =?utf-8?B?NlNQaTUyc25RU0RVRHdMUkRQSEJNTDNHQ3dXVnBZdTk3L29RRW1kTTNVR0pl?=
 =?utf-8?B?N1pVekw4NlhpZ2ZyV0ZQVnRzYm5lK1dmSmw3bGE1YVpSbnZ1cFpob0F4Rld1?=
 =?utf-8?B?QUNIM25qWGwrQnJ5QXhTbFZ5aWJncDYzNll0cWdhTWhvY2JML2pEOUxaeWdt?=
 =?utf-8?Q?tiQ7b8hy/+/ZaSMGd1OCb07Fa2PtLipYwENoPcrrn9mNS?=
x-ms-exchange-antispam-messagedata-1: UG31VL/MJ65P1Q==
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LV3PR03MB7707.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dd5a01a4-3783-4b58-a8f7-08deaac3b4aa
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 May 2026 16:31:05.9351
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: VyCjiKbhytP9FWbF1aVpyt3xayR3w1qlrh78QjSi/qf6K010/V70iZowd2NoQCmU1nEq7rj2ruMjTA99F9YGbX67trECpudz/hMge92BDfA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5209
X-purgate-ID: tlsNG-bad1c0/1777998670-48AAEA53-07B76F2E/0/0
X-purgate-type: clean
X-purgate-size: 1314

SmFuIEJldWxpY2ggd3JvdGU6DQo+ID4gJ05vZGUtYWdub3N0aWMnIGJldHRlciBkZXNjcmliZXMg
dGhlIGFyY2hpdGVjdHVyYWwgaW50ZW50OiB0aGF0IHRoZXNlDQo+ID4gY2xhaW1zIGFyZSB2YWxp
ZCByZWdhcmRsZXNzIG9mIG5vZGUgbG9jYWxpdHkuIFRvIHJlc29sdmUgdGhlIGFtYmlndWl0eSwN
Cj4gPiBJIHdpbGwgcmVwbGFjZSAnZ2xvYmFsJyB3aXRoICdub2RlLWFnbm9zdGljJyBhY3Jvc3Mg
dGhlIGJvYXJkIChkZXNpZ24NCj4gPiBkb2N1bWVudGF0aW9uLCBjb2RlLCBhbmQgdGVzdHMpLg0K
PiA+DQo+ID4gU3BlY2lmaWNhbGx5LCBJIHdpbGw6DQo+ID4NCj4gPiAgICAgUmVuYW1lIHRoZSBm
dW5jdGlvbiB0byBkZWR1Y3Rfbm9kZV9hZ25vc3RpY19jbGFpbXMoKS4NCj4gDQo+IE9yIGRlZHVj
dF9ob3N0X2NsYWltcygpIChzaG9ydCBmb3IgZGVkdWN0X2hvc3Rfd2lkZV9jbGFpbXMoKSk/DQoN
ClRoYW5rcywgeWVzLCBJIHRoaW5rIGhvc3RfY2xhaW1zIGlzIHRoZSBiZXR0ZXIgY2hvaWNlLg0K
DQpJIGFsc28gcGxhbiB0byBtYWtlIHRoZXNlIGhlbHBlcnMgZXhwbGljaXRseSBkb21haW4tc2Nv
cGVkIGFuZCBzd2l0Y2gNCmZyb20gImRlZHVjdF8iIHRvICJyZWxlYXNlXyIuIFRoaXMgZmVlbHMg
bW9yZSBuYXR1cmFsIGluIHRoaXMgY29udGV4dA0KYW5kIGF2b2lkcyB0aGUgZmluYW5jZS1zdHls
ZSB3b3JkaW5nLg0KDQpUaGUgZnVuY3Rpb25zIHdpbGwgYmVjb21lOg0KLSBkb21haW5fcmVsZWFz
ZV9ob3N0X2NsYWltcygpDQotIGRvbWFpbl9yZWxlYXNlX25vZGVfY2xhaW1zKCkNCg0KVGhpcyBj
bGFyaWZpZXMgdGhlIGRvbWFpbiBzY29wZSB1cGZyb250IGFuZCB1c2VzIHRoZSBtb3JlIGFwcHJv
cHJpYXRlDQphY3Rpb24uDQoNCkkgd2lsbCBzZW5kIHRoZXNlIHVwZGF0ZXMgd2l0aCB0aGUgdjcg
c2VyaWVzIG9mIGRlc2lnbiwgY29kZSwgYW5kIHRlc3RzLg0KDQpCZXJuaGFyZA0K


From xen-devel-bounces@lists.xenproject.org Tue May 05 17:46:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 17:46:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300910.1575338 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKJq1-0001ox-PL; Tue, 05 May 2026 17:45:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300910.1575338; Tue, 05 May 2026 17:45:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKJq1-0001oq-Mj; Tue, 05 May 2026 17:45:41 +0000
Received: by outflank-mailman (input) for mailman id 1300910;
 Tue, 05 May 2026 17:45:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wKJq1-0001ok-0L
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 17:45:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKJpz-006oAy-Ua
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 19:45:39 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fa2ca7-bab6-0a2a0a5309dd-0a2a450ad224-36
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 19:45:39 +0200
Received: from [52.101.201.52]
 (helo=PH7PR06CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fa2cc1-56b3-0a2a450a0019-3465c934dedf-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 19:45:39 +0200
Received: from LV3PR03MB7707.namprd03.prod.outlook.com (2603:10b6:408:28b::21)
 by CO1PR03MB7841.namprd03.prod.outlook.com (2603:10b6:303:270::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Tue, 5 May
 2026 17:45:32 +0000
Received: from LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf]) by LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf%6]) with mapi id 15.20.9870.023; Tue, 5 May 2026
 17:45:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S0BcjmfDCr0KmNIeoulI7RSPCNK9DBwKOWT6sKskgSQawlR8NhF6V4lrKNhC8Dugj66s4oOVPBiZQPnlSBSxUVgf/MWswzixMp+oiKhy717FbLF+GY5bTxUdRvfEOyZZtkSSuVvKbnbsOeLyurqFZxX/Q5JsG6f+NHdBPtjOsdvYvvmk2qfpRSCYXTDckBmztm6QgD57q0Fqd1NvLHOyKcCCdiqkDKtJfOZA45TIPmNeQou6q/y8um1gJL9kSCYVQl5KmfFFhonxHB43V7kYcEmiXFjdDLmqmCWJbHDGyCQjzSPpZnFo0fNolHmY6mdEeCBOXbsX2PLaWxY4ZqgjLA==
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=OEYMRP1h00mv2smG9vlcxtBuew6OyHcm7haVlj3O0C4=;
 b=BfAlBnbo9jVpdTQXUBcGGECEif6giVzSyb22LowOtYD7T8zWe/ImpzE5jd+IBrmxipAbR7r45N/Xwcc9AaFY3pH7W2wGz9tTQih0KYvxZe6DGqKuP1CHlK7Cfqrq6qxVb2hotgo18VwrMG+Wy0vAb1AdIleaMoB+rzfiNS9eEyXp/2f+bELiEi/PzWOMNeDac80UgcPN7DBs3N6LEASFv97v0boqJY1VYk78/JH78NFu/f+oSaMhs+ZddcjIfXqydQcnNX1e14DyTlUl/iasjIJDha0ql1q9Vwgjx2x/vTbXmjI4quzXS1soFC81QER9h34rOfH7SSxQmfKyoiZ6MA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OEYMRP1h00mv2smG9vlcxtBuew6OyHcm7haVlj3O0C4=;
 b=QgtaLrTQ4xTY7eo48fDqaDuV+n7CtvjjNqr/h9TaUpvYcti+7YYVZyLkDMLe1eTT/ki9QkIJ2eCs4NJoQX5fnOn8dfgsvleUxgNIY3iGm7nn4V4MmBIAGlpcybeRWxy0EBVCCimRoACD2AotuT9rzBXVvciB0eqwoiq0CSRiJnU=
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Roger Pau Monne <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH 1/1] xen/mm: normalize page count types to unsigned long
Thread-Topic: [PATCH 1/1] xen/mm: normalize page count types to unsigned long
Thread-Index: AQHc0m21xf3mZmlgYkSU6AzufCg/frX95EKAgAHUE0A=
Date: Tue, 5 May 2026 17:45:31 +0000
Message-ID:
 <LV3PR03MB7707477D453FE4B06F3AA470873E2@LV3PR03MB7707.namprd03.prod.outlook.com>
References:
 <6fd2be46d934688b19b5c84c53c745230cd345d6.1776871968.git.bernhard.kaindl@citrix.com>
 <5109e43f-168a-4522-ac24-bd334df129e0@suse.com>
In-Reply-To: <5109e43f-168a-4522-ac24-bd334df129e0@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LV3PR03MB7707:EE_|CO1PR03MB7841:EE_
x-ms-office365-filtering-correlation-id: 1f7e99c9-9916-4173-057b-08deaace1aa3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|10070799003|18002099003|38070700021|56012099003|22082099003;
x-microsoft-antispam-message-info:
 h8oLhfKudZR9JhGutTzp7scu0LIConGBJg0row4hDF05Se+tA331iRyG13RePEPnd9qfEjXtjSR1nfRSsTc2tBbI84gNRMaFk7Jfdcoty6KoltGvpg44o3fSmNchwMt0NjK8fVKfzItUWtyIEMk0MfB2SUpvaVQnfI27cv/cOtsMAd+8kks7XqXxn3cJc7LhbrF9r5YgnQ6ksqNLF+ZlwdEFoyC6pznsvC64pDX+pYJ5uJfwA8f1Ylr1xpVy+HFlsEzTsiEOcjg5kFBWKcAlJz2C9PATls4HzXehHYNIo6t1uvHNsFk5y9v9+oiz1k+X1nsqA33Ebr5T6cAEEi/e+Ppt7GbZXuKH1HmFIl1Y+YvlM6itDs8AVpDoWSFyN9mYqEfV8PBoJYmcaE/w+JagzxiUxsTsLN/OfUz02oOzarkX0m3wc58h3NjaXHPX23+8975eN1tXxokZsClGKue4V1DoZ9QEGOlyE5wfOOK9j68bIv2jCVsQu56uRC4gPujwyQTGjvt2hENzxUl6/O9DZ8ccwmOFHBhmXntwHIGWcN+Hx283x0hPKR0ROxrEKoIHT3iRP/jAhhRqyy9sQJL8CbjLY3Bvt6koeBIzxk/lTX8ihp6SIkHyzW0pF5ltItyJA3JVU9F4UYDRvs5hSrhR6t8Z2PrCWrDkGQWzj3KXNN9fSjgOoepPq9JlGbxZ5CmwyQDPsevs9MC8++CG+8C9xOgDzwVEwfUGVFdlP31w6Wb531A4g5KRMfRPPC5fohiA
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR03MB7707.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(10070799003)(18002099003)(38070700021)(56012099003)(22082099003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 2
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?aUZIeE0xQU1GT3ZsNDlFcnFUcDc5MWxQVUc4aVpmNWdISW5TeFpLMnR2Q1Jq?=
 =?utf-8?B?ajlTT2tiQXNDYytuRVdobWJSSGF1dkNrWS9rb2pKSnNoaTJxclhLS3FhZm9k?=
 =?utf-8?B?YXlaVXgrMXZEd2RHWUVsU3FLMmVRNnQzSHNYL1o4UVlMTTlqUnZxY2JKZW5Y?=
 =?utf-8?B?b1l4K01tTzZxcHJGeHVPRWdJejA1SUErY0dLVjdaZFkrQllyK0pVVHA5MWVU?=
 =?utf-8?B?ckpYSmcwUkJaN1l3am9HejBqdkJwMGVZNFJBdVRxUnYvVGIyVmtmRTF2cEY3?=
 =?utf-8?B?NitXaWM5M2kzNExFTEV6dzNTc3VBMEpvU21sSnhjTlhxdWFPblpyS2dubXhz?=
 =?utf-8?B?U1cyejRnb08vYnZMTURMVnY5M1QwM0oxSS9tZm1CdW1FMVo1MkYvaW5TaVJU?=
 =?utf-8?B?QUJGcGxvVWlEejNSUlpaWTFxMGZFb2lOL1I2dnhCa0RpRHNxVGRxM1ZrOU5Q?=
 =?utf-8?B?TnA1UVEzSDJzOXV3VWNhdXo5OUtDNXBHWHFYWG9jeERIaGlHS09UdGtqNjd4?=
 =?utf-8?B?ZXdDV014VVI0R21SKzVjLzE0Rzk0cy85dFRPYjJOSHFWR2NXNUNIVlVhbzk2?=
 =?utf-8?B?QlozZTUyYXo3WmNnVk5oOHMzbi9XMFE0OEkvUys5Z041eEE2aU9TckkzaFh0?=
 =?utf-8?B?R25UbW1kMG94TUIzVEM2Q2FYVkRjbWlBOWRKc3FhMUFZTUJGeUlUL2J5eXFy?=
 =?utf-8?B?WitlTW5QMVpKZ0puWWh2SUxTeXJuMHNqL240RUpkdTZsWWYvaW5ZVnM1eXNV?=
 =?utf-8?B?eU0xUlhKanExa2xCTG1KQkI5Vms0dVNsMmRaWUFUcFYvZ0NzLy9qMHFGWjQx?=
 =?utf-8?B?MkF4NjlBSUJneG40c0U3cUZSbzlXYmY0aE9ZQ0l0SEJrWC9WUU9WZ3NPaVNx?=
 =?utf-8?B?VjRNajR6cXRjczJNSXFmM3V3N0lKRCtOSndvM01nSnpQTW1UVHdKanlrT1Zy?=
 =?utf-8?B?WHQ0YjYxRU8yUmNyT2VCSGxlcHB5ZWoyOEY3c3p6Q3RxWGJOa0M0Y3RTWGY2?=
 =?utf-8?B?d0REWWluRGxEQUFHUDlVMVNBOUlRWC9Oa0Fmd1F6dlozUmRJMzNsa2hXUDBX?=
 =?utf-8?B?ZGEwbWtLYi9lRjByc1JtZlBoVnlPWXhuVEtDTXZ5aFFHNVJJWkJ3ckRJL1lI?=
 =?utf-8?B?ZUNMdlBYTHhBZUZmZ1VnMmRwRmg3dHBOU1pjNTNuMHZIbS9rZ3dTM01LMXhQ?=
 =?utf-8?B?WWVUVFFaajU5bXV5dzFvT2hIeUptdEV1MzBFYzN6UjhENUdvQTkwR0h3TlRZ?=
 =?utf-8?B?NlkyaW5wZExPM0VrQnJNc215czVvWkdGZzAraU5vTXhzNlZSNlZhbFUzY0pH?=
 =?utf-8?B?MjZUTW8rdjFEeFRFK0g3M3NtUnUxaDRHZStsVDFBcmwzZWhvU2RjMTgyL3VS?=
 =?utf-8?B?UnVJSlhEcjY5V3lCWEhDRlZTaHRLaUxCUnhYdFczMkF5MVBRZG9LeGNyM084?=
 =?utf-8?B?c1JTeDJZdDNncjZhT0o3ZWxTdkFaclZBTURneEpIWmhSMVZKdVNIOHVpV0pl?=
 =?utf-8?B?eEN5eGVCbTJGaFFnM3FISUFTb2hoei90N3I5cFpqUGZtTHhHUzN0UGxmaVdh?=
 =?utf-8?B?RitYMzdXem9oSGFrWEJvN2dYZVNhbHhYbzNJQUQ4NVJWYUxQTW9XZDFNYnN5?=
 =?utf-8?B?YVhiTU0rZzZNUE1KRXlhVjNNcmVoRi94c0dWeFJBM0gwblhWZ3REVThTM01E?=
 =?utf-8?B?UUMvREVheHl0VVhzRHdSeVFXWG5MUXB0eTNnWWtURnQrdVcyQVVZV1hJUTZT?=
 =?utf-8?B?Wk1JSHdKdFNZSDdXL2NSRUJJWGYrS3lRMms5MlpQcCtJNExQeDVUeGtUSzNv?=
 =?utf-8?B?aU1NSUJlWGNxU2RjbWRFREowUnFGK3VVY1ZSNk50ZlMwSVFvYWtISWpVVDJl?=
 =?utf-8?B?emViLzdWK2x5aTQzMG1wSHV3dHBHNSs1U1V3RkNYekxkQjMrYW1pZ3pHYnBj?=
 =?utf-8?B?QWFFSU11S2Y5aTVrWC9ickhZSUtPOXVjek5nRlZCeTRoei82ZDlZbHdNMlBL?=
 =?utf-8?B?cm1DcWFieksvYy9FaHlrMlZMa2xGUEd1R3JXaWNnTVFEeGlObWV6eHR4TkF4?=
 =?utf-8?B?WUNFdTZQejVobFVMbDVoUkg5cWtwclozN1AycDdjTWZlNktKdjdpTzJaNXNT?=
 =?utf-8?B?bUtTOU84TW8rdzV5VlowSkQ3Wm9aYkFCbkVwYnZrYWJtdEh4UUhNZnp6dEZS?=
 =?utf-8?B?b3Z2RFE0N3FpRVUrM0VBbGhzSnpLaENYTFZQMkNJSUw2L0ttbnFWa0oyM1Uv?=
 =?utf-8?B?NDU5b3lKeEJjOWt5anBsdlRtR0RhUUovUjA0bTJTMmlMaTIrNytnejNUd0RH?=
 =?utf-8?B?WGhBOEVVMW1YcXJwZm8yMVUxTTNGVG9YeUJ1THVQY1EyWVJYR2FlVjRFRlpv?=
 =?utf-8?Q?OoUusAV5u+hVo/2yzjEm5kbsgWE7mhP6l4xkfR60oKR22?=
x-ms-exchange-antispam-messagedata-1: 7p1cuP1j7qKngg==
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LV3PR03MB7707.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1f7e99c9-9916-4173-057b-08deaace1aa3
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 May 2026 17:45:31.9535
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: SiG/NzI6us0FamOG2EsK/2X6JKIshhbbZ8uNhhyuH9MZwd7zi7LH+1iMDrFUuaZNvlHqNbx9jAVIj2IOqJ1p8+Q+MJeyiXPbU/ux+KcsfNQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7841
X-purgate-ID: tlsNG-4011c0/1778003139-44D608B7-F9646847/0/0
X-purgate-type: clean
X-purgate-size: 1680

SGkgSmFuLA0KDQpUaGFuayB5b3UgZm9yIHRoZSByZXZpZXcgYW5kIGZvciBtZXJnaW5nIHRoaXMg
Zmlyc3Qgc3RlcC4NCg0KSmFuIEJldWxpY2ggd3JvdGU6DQo+IEp1c3QgdG8gbWVudGlvbiAtIG15
IG9yaWdpbmFsIGNvbW1lbnQgd2FzIHF1aXRlIGEgYml0IHdpZGVyLiBJdCB3YXMNCj4gc3BlY2lm
aWNhbGx5IG1hZGUgaW4gY29udGV4dCBvZiBhIHVzZSBvZiBkLT5vdXRzdGFuZGluZ19wYWdlcy4g
WWV0IG9mDQo+IGNvdXJzZSBJIGRvbid0IG1pbmQgdGhpcyBhcyBhIDFzdCBzdGVwLg0KDQpUaGFu
a3MsIEkgYXBwcmVjaWF0ZSB5b3VyIGJyb2FkZXIgcGVyc3BlY3RpdmUgb24gdGhlIHVuc2lnbmVk
IGludCB0bw0KdW5zaWduZWQgbG9uZyBub3JtYWxpemF0aW9uICh3aGljaCBlbmFibGVzIHN1cHBv
cnRpbmcgbW9yZSB0aGFuIDE2VEINCnBlci1kb21haW4gYWZ0ZXIgdGhlIGhvc3Qgc3VwcG9ydHMg
YXMgbXVjaCkgYXMgeW91IGhpbnRlZCBhdCBlYXJsaWVyLg0KDQpJIGZ1bGx5IGludGVuZCB0byBm
b2xsb3cgdGhyb3VnaCBvbiB3aWRlbmluZyBhbGwgdGhlIHJlbGV2YW50IHBhZ2UNCmNvdW50ZXJz
IGluIHN0cnVjdCBkb21haW4gKHdoaWNoIGFyZSBjdXJyZW50bHkgdW5zaWduZWQgaW50LCBtYXRj
aGluZw0KZC0+b3V0c3RhbmRpbmdfcGFnZXMpIGFuZCBiZXlvbmQgaXQgaWYgbmVlZGVkIChmb3Ig
eDg2IHNoYWRvdy9wYWdpbmcNCnBhZ2UgY291bnRlcnMpIGxhdGVyLg0KDQpUaGlzIHdpbGwgbmF0
dXJhbGx5IHJlcXVpcmUgYSBjb29yZGluYXRlZCBzZXJpZXMgb2YgY2hhbmdlcywgYXMgdmFyaW91
cw0KcHJpbnRrIGZvcm1hdCBzdHJpbmdzIHdpbGwgYWxzbyBuZWVkIHRvIGJlIHVwZGF0ZWQgaW4g
c3luYy4gQmVjYXVzZSBvZg0KdGhpcywgaXQgd2lsbCBuZWVkIGZ1cnRoZXIgc3BsaXR0aW5nIGlu
dG8gc21hbGxlciwgbG9naWNhbCBwYXRjaGVzDQpiZWZvcmUgaXQgaXMgcmVhZHkgZm9yIHJldmll
dy4NCg0KV2l0aCByZXNwZWN0IHRvIHRoZSBYZW4gNC4yMiB0aW1lbGluZSwgbXkgaW1tZWRpYXRl
IGZvY3VzIGlzIG9uDQpzdWJtaXR0aW5nIHRoZSBuZXh0IE5VTUEgY2xhaW1zIHNlcmllcyBmb3Ig
cmV2aWV3Lg0KDQpPbmNlIHRoYXQgaXMgb3V0IG9mIHRoZSB3YXksIEkgd2lsbCBwaXZvdCBiYWNr
IHRvIHByZXBhcmUgdGhlIG5leHQNCnN0ZXBzIGZvciB0aGlzIG5vcm1hbGl6YXRpb24gd29yay4N
Cg0KQmVzdCByZWdhcmRzLA0KQmVybmhhcmQNCg==


From xen-devel-bounces@lists.xenproject.org Tue May 05 18:04:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 18:04:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300920.1575346 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKK8H-00055F-8o; Tue, 05 May 2026 18:04:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300920.1575346; Tue, 05 May 2026 18:04:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKK8H-000558-6F; Tue, 05 May 2026 18:04:33 +0000
Received: by outflank-mailman (input) for mailman id 1300920;
 Tue, 05 May 2026 18:04:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wKK8F-000552-JB
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 18:04:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKK8E-00DKn2-WB
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 20:04:31 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fa312e-e002-0a2a0a5209dd-0a2a45028b28-0
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 20:04:30 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fa312d-af86-0a2a45020019-a065830883d0-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 20:04:30 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id A564342A8FEC;
 Tue,  5 May 2026 14:03:36 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 0/3] Sphinx docs: Design Document for NUMA node-affine claim sets
Date: Tue,  5 May 2026 19:03:09 +0100
Message-Id: <cover.1778004073.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778004270-B3B60161-4CC5D9D5/0/0
X-purgate-type: clean
X-purgate-size: 5350

Dear reviewers,

This updated design document forms the basis of the NUMA claims v7
series and is intended to serve as a reference during review.

It extends Xen's memory claim design to support installing claim sets
spanning multiple NUMA nodes atomically. As Roger Pau Monné suggested:

   Ideally, we would need to introduce a new hypercall that allows
   making claims from multiple nodes in a single locked region, as
   to ensure success or failure in an atomic way.

This design documents that model in detail and is integrated into the
Sphinx site below Hypervisor Guide -> Design Documents -> NUMA Claims.

The rendered design document is available here for review:

https://xen.kaindl.dev/claims-v7-design-master/designs/claims/

The Sphinx site can be built and viewed locally as follows:

  git pull git@gitlab.com:bernhardkaindl/xen.git claims-v7-design-master
  make -C docs sphinx-env-build # xdg-open docs/sphinx/html/index.html
  or start a minimal HTTP server:
    (cd docs/sphinx/html; python -m http.server)

Changes since v6
----------------

The review comments from v6 have been incorporated.

In particular, Jan noted that "global" is ambiguous in this context,
and following his suggestion, this series adopts the term host claims
(short for host-wide claims) found here:
https://lists.xen.org/archives/html/xen-devel/2026-05/msg00026.html

The helper names have also been adjusted to make domain scope explicit
and to keep the release/set/get operations named consistently:

- deduct_global_claims()         -> domain_release_host_claims()
- deduct_node_claims()           -> domain_release_node_claims()
- domain_set_outstanding_pages() -> domain_set_claim_entries()
- new: domain_get_claim_entries()

This version also keeps the new code minimal for review and avoids
functional duplication. domain_set_claim_entries() now also handles
the legacy XENMEM_claim_pages interface for backwards compatibility,
replacing domain_set_outstanding_pages().

Best regards,

Bernhard

Bernhard Kaindl (3):
  Sphinx docs: Rearrange the design docs into a new dedicated design
    index
  Sphinx docs: Enable autosectionlabels and Mermaid support
  Sphinx docs: Design Document for NUMA node affine claim sets

 .readthedocs.yaml                             |   2 +-
 docs/conf.py                                  |  21 +
 docs/{misc => designs}/cache-coloring.rst     |   4 +-
 docs/designs/claims/accounting.rst            | 331 +++++++++++++++
 docs/designs/claims/design.rst                | 243 +++++++++++
 docs/designs/claims/development.rst           | 197 +++++++++
 docs/designs/claims/implementation.rst        | 393 ++++++++++++++++++
 docs/designs/claims/index.rst                 |  48 +++
 docs/designs/claims/installation.rst          |  70 ++++
 docs/designs/claims/invariants.mmd            |  35 ++
 docs/designs/claims/performance.rst           |  33 ++
 docs/designs/claims/protection.rst            | 200 +++++++++
 docs/designs/claims/redeeming.rst             |  71 ++++
 docs/designs/claims/terminology.rst           | 138 ++++++
 docs/designs/claims/use-cases.rst             |  39 ++
 docs/designs/index.rst                        |  17 +
 docs/designs/launch/hyperlaunch.rst           |   4 +-
 docs/designs/launch/index.rst                 |  10 +
 docs/glossary.rst                             |  12 +-
 .../dom/DOMCTL_claim_memory-data.mmd          |  43 ++
 .../dom/DOMCTL_claim_memory-seqdia.mmd        |  23 +
 .../dom/DOMCTL_claim_memory-workflow.mmd      |  23 +
 docs/guest-guide/dom/DOMCTL_claim_memory.rst  | 221 ++++++++++
 docs/guest-guide/dom/index.rst                |  14 +
 docs/guest-guide/index.rst                    |  23 +
 docs/guest-guide/mem/XENMEM_claim_pages.rst   | 102 +++++
 docs/guest-guide/mem/index.rst                |  12 +
 docs/hypervisor-guide/index.rst               |  12 +-
 docs/index.rst                                |   2 -
 29 files changed, 2331 insertions(+), 12 deletions(-)
 rename docs/{misc => designs}/cache-coloring.rst (99%)
 create mode 100644 docs/designs/claims/accounting.rst
 create mode 100644 docs/designs/claims/design.rst
 create mode 100644 docs/designs/claims/development.rst
 create mode 100644 docs/designs/claims/implementation.rst
 create mode 100644 docs/designs/claims/index.rst
 create mode 100644 docs/designs/claims/installation.rst
 create mode 100644 docs/designs/claims/invariants.mmd
 create mode 100644 docs/designs/claims/performance.rst
 create mode 100644 docs/designs/claims/protection.rst
 create mode 100644 docs/designs/claims/redeeming.rst
 create mode 100644 docs/designs/claims/terminology.rst
 create mode 100644 docs/designs/claims/use-cases.rst
 create mode 100644 docs/designs/index.rst
 create mode 100644 docs/designs/launch/index.rst
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory-data.mmd
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory-seqdia.mmd
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory-workflow.mmd
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory.rst
 create mode 100644 docs/guest-guide/dom/index.rst
 create mode 100644 docs/guest-guide/mem/XENMEM_claim_pages.rst
 create mode 100644 docs/guest-guide/mem/index.rst

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue May 05 18:06:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 18:06:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300943.1575356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKK9o-0005fg-LO; Tue, 05 May 2026 18:06:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300943.1575356; Tue, 05 May 2026 18:06:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKK9o-0005fZ-IT; Tue, 05 May 2026 18:06:08 +0000
Received: by outflank-mailman (input) for mailman id 1300943;
 Tue, 05 May 2026 18:06:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wKK9n-0005fT-Dm
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 18:06:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKK9m-00Aeli-Qh
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 20:06:06 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fa318a-5cb7-0a2a0a5109dd-0a2a45098098-8
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 20:06:06 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fa318d-2497-0a2a45090019-a0658308bdd4-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 20:06:06 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 82D9942A9297;
 Tue,  5 May 2026 14:05:11 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 1/3] Sphinx docs: Rearrange the design docs into a new dedicated design index
Date: Tue,  5 May 2026 19:03:10 +0100
Message-Id: <e29452775ab4d42b387265c74c6064607c2eefa4.1778004073.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1778004073.git.bernhard.kaindl@citrix.com>
References: <cover.1778004073.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778004366-42573A53-90EB120A/0/0
X-purgate-type: clean
X-purgate-size: 4434

The Hyperlaunch Design Documents were stated as needing rearranging.
Rearrange them inside the Hypervisor Guide and fix the bug where one
got the title "1 Hypervisor Design Document".

This also serves as first small step to clean up the main menu of the
Sphinx documentation.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
Preview of the improved menu structure for design documents:
https://xen.kaindl.dev/arrange-hyperlaunch-design/
---
 docs/{misc => designs}/cache-coloring.rst |  4 ++--
 docs/designs/index.rst                    | 16 ++++++++++++++++
 docs/designs/launch/hyperlaunch.rst       |  4 ++--
 docs/designs/launch/index.rst             | 10 ++++++++++
 docs/hypervisor-guide/index.rst           | 12 ++++++++++--
 docs/index.rst                            |  2 --
 6 files changed, 40 insertions(+), 8 deletions(-)
 rename docs/{misc => designs}/cache-coloring.rst (99%)
 create mode 100644 docs/designs/index.rst
 create mode 100644 docs/designs/launch/index.rst

diff --git a/docs/misc/cache-coloring.rst b/docs/designs/cache-coloring.rst
similarity index 99%
rename from docs/misc/cache-coloring.rst
rename to docs/designs/cache-coloring.rst
index e156062aa207..0c078e29463e 100644
--- a/docs/misc/cache-coloring.rst
+++ b/docs/designs/cache-coloring.rst
@@ -1,7 +1,7 @@
 .. SPDX-License-Identifier: CC-BY-4.0
 
-Xen cache coloring user guide
-=============================
+Cache Coloring
+==============
 
 The cache coloring support in Xen allows to reserve Last Level Cache (LLC)
 partitions for Dom0, DomUs and Xen itself. Currently only ARM64 is supported.
diff --git a/docs/designs/index.rst b/docs/designs/index.rst
new file mode 100644
index 000000000000..54d45c2bc321
--- /dev/null
+++ b/docs/designs/index.rst
@@ -0,0 +1,16 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Design documents
+================
+
+Design documents and implementation details for the Xen hypervisor.
+
+These are intended for developers working on the Xen hypervisor,
+and for those interested in the internal workings of Xen.
+
+.. toctree::
+   :maxdepth: 2
+   :numbered: 4
+
+   launch/index
+   cache-coloring
diff --git a/docs/designs/launch/hyperlaunch.rst b/docs/designs/launch/hyperlaunch.rst
index 3bed36f97637..aa7c2798a380 100644
--- a/docs/designs/launch/hyperlaunch.rst
+++ b/docs/designs/launch/hyperlaunch.rst
@@ -2,8 +2,6 @@
 Hyperlaunch Design Document
 ###########################
 
-.. sectnum:: :depth: 4
-
 This post is a Request for Comment on the included v4 of a design document that
 describes Hyperlaunch: a new method of launching the Xen hypervisor, relating
 to dom0less and work from the Hyperlaunch project. We invite discussion of this
@@ -13,6 +11,8 @@ Xen Development mailing list.
 
 
 .. contents:: :depth: 3
+   :backlinks: entry
+   :local:
 
 
 Introduction
diff --git a/docs/designs/launch/index.rst b/docs/designs/launch/index.rst
new file mode 100644
index 000000000000..afd845296d30
--- /dev/null
+++ b/docs/designs/launch/index.rst
@@ -0,0 +1,10 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Hyperlaunch
+===========
+
+.. toctree::
+   :maxdepth: 2
+
+   hyperlaunch
+   hyperlaunch-devicetree
diff --git a/docs/hypervisor-guide/index.rst b/docs/hypervisor-guide/index.rst
index 520fe01554ab..9c8033305549 100644
--- a/docs/hypervisor-guide/index.rst
+++ b/docs/hypervisor-guide/index.rst
@@ -1,11 +1,19 @@
 .. SPDX-License-Identifier: CC-BY-4.0
 
-Hypervisor documentation
-========================
+Hypervisor Guide
+================
+
+The Hypervisor Guide provides an overview of the Xen hypervisor's
+architecture and design, covering its core components, features,
+and how it manages resources for :term:`guest` domains.
+
+It serves as a comprehensive reference for developers and users interested
+in understanding the inner workings of the Xen hypervisor.
 
 .. toctree::
    :maxdepth: 2
 
+   ../designs/index
    code-coverage
 
    x86/index
diff --git a/docs/index.rst b/docs/index.rst
index bd87d736b9c3..6b04a077cebd 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -62,8 +62,6 @@ Documents in need of some rearranging.
 .. toctree::
    :maxdepth: 2
 
-   designs/launch/hyperlaunch
-   designs/launch/hyperlaunch-devicetree
    misc/xen-makefiles/makefiles
    misra/index
    fusa/index
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue May 05 18:06:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 18:06:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300955.1575365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKKAS-00069O-SI; Tue, 05 May 2026 18:06:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300955.1575365; Tue, 05 May 2026 18:06:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKKAS-00069H-PL; Tue, 05 May 2026 18:06:48 +0000
Received: by outflank-mailman (input) for mailman id 1300955;
 Tue, 05 May 2026 18:06:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wKKAQ-00068o-To
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 18:06:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKKAQ-00HQem-Ah
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 20:06:46 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fa31ad-5cb7-0a2a0a5109dd-0a2a4503b9ba-20
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 20:06:46 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fa31b5-672d-0a2a45030019-a06583098e58-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 20:06:46 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 27A5081E0C2D;
 Tue,  5 May 2026 14:05:41 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/3] Sphinx docs: Enable autosectionlabels and Mermaid support
Date: Tue,  5 May 2026 19:03:11 +0100
Message-Id: <1d0e98b9002dcb12765a51ae43a55d00e7cc1691.1778004073.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1778004073.git.bernhard.kaindl@citrix.com>
References: <cover.1778004073.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1778004406-A2378938-B9FDAE60/0/0
X-purgate-type: clean
X-purgate-size: 2055

Enable sphinx.ext.autosectionlabel which allows referencing sections
using their title, without needing to add explicit labels to each section
and enable support for Mermaid diagrams for design documents.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 .readthedocs.yaml |  2 +-
 docs/conf.py      | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/.readthedocs.yaml b/.readthedocs.yaml
index d3aff7662ebf..c61d5eb74107 100644
--- a/.readthedocs.yaml
+++ b/.readthedocs.yaml
@@ -12,7 +12,7 @@ build:
   jobs:
     post_install:
       # Instead of needing a separate requirements.txt
-      - python -m pip install --upgrade --no-cache-dir sphinx-rtd-theme
+      - python -m pip install --upgrade --no-cache-dir sphinx-rtd-theme sphinxcontrib-mermaid
 
 sphinx:
   configuration: docs/conf.py
diff --git a/docs/conf.py b/docs/conf.py
index 2fb8bafe6589..8aeab17a1a83 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -63,6 +63,27 @@ needs_sphinx = '1.4'
 # ones.
 extensions = []
 
+
+# autosectionlabel allows referencing sections using their title, without
+# needing to add explicit labels to each section. Used by design documents.
+extensions.append("sphinx.ext.autosectionlabel")
+# Setting autosectionlabel_prefix_document to True allows disambiguating
+# between sections with the same title in different documents by prefixing
+# the label with the document path.
+autosectionlabel_prefix_document = True
+
+
+# Mermaid diagrams are used in the design documents, so we try to
+# load the extension if it's available, but don't fail if it's not:
+try:
+    import sphinxcontrib.mermaid
+
+    extensions.append("sphinxcontrib.mermaid")
+    # For included Mermaid diagram files, init the extension explicitly.
+    mermaid_init_js = "mermaid.initialize({ startOnLoad: true });"
+except ImportError:
+    pass
+
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue May 05 18:07:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 18:07:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1300975.1575373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKKBK-0006ht-4K; Tue, 05 May 2026 18:07:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1300975.1575373; Tue, 05 May 2026 18:07:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKKBK-0006hm-1W; Tue, 05 May 2026 18:07:42 +0000
Received: by outflank-mailman (input) for mailman id 1300975;
 Tue, 05 May 2026 18:07:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKKBI-0006hQ-3C
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 18:07:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKKBH-00AewW-GX
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 20:07:39 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fa31b2-2eae-0a2a0a5409dd-0a2a45099292-38
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 20:07:39 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fa31ea-2497-0a2a45090019-a06583098070-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 20:07:38 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 1741C81E0C37;
 Tue,  5 May 2026 14:06:34 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 3/3] Sphinx docs: Design Document for NUMA node affine claim sets
Date: Tue,  5 May 2026 19:03:12 +0100
Message-Id: <cb3104caf3e1c80a6027058488b32f81a616becf.1778004073.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1778004073.git.bernhard.kaindl@citrix.com>
References: <cover.1778004073.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778004459-400AB9F3-9B7EB872/3/8697954094
X-purgate-type: clean.bounce
X-purgate-size: 107997

This design extends Xen's memory claim handling to support claim sets
spanning multiple NUMA nodes. Roger Pau Monné described it as:

  Ideally, we would need to introduce a new hypercall that allows
  making claims from multiple nodes in a single locked region, as to
  ensure success or failure in an atomic way.

This design documents this model in detail and is integrated into the
Sphinx site below Hypervisor Guide -> Design Documents -> NUMA Claims.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 docs/designs/claims/accounting.rst            | 331 +++++++++++++++
 docs/designs/claims/design.rst                | 243 +++++++++++
 docs/designs/claims/development.rst           | 197 +++++++++
 docs/designs/claims/implementation.rst        | 393 ++++++++++++++++++
 docs/designs/claims/index.rst                 |  48 +++
 docs/designs/claims/installation.rst          |  70 ++++
 docs/designs/claims/invariants.mmd            |  35 ++
 docs/designs/claims/performance.rst           |  33 ++
 docs/designs/claims/protection.rst            | 200 +++++++++
 docs/designs/claims/redeeming.rst             |  71 ++++
 docs/designs/claims/terminology.rst           | 138 ++++++
 docs/designs/claims/use-cases.rst             |  39 ++
 docs/designs/index.rst                        |   1 +
 docs/glossary.rst                             |  12 +-
 .../dom/DOMCTL_claim_memory-data.mmd          |  43 ++
 .../dom/DOMCTL_claim_memory-seqdia.mmd        |  23 +
 .../dom/DOMCTL_claim_memory-workflow.mmd      |  23 +
 docs/guest-guide/dom/DOMCTL_claim_memory.rst  | 221 ++++++++++
 docs/guest-guide/dom/index.rst                |  14 +
 docs/guest-guide/index.rst                    |  23 +
 docs/guest-guide/mem/XENMEM_claim_pages.rst   | 102 +++++
 docs/guest-guide/mem/index.rst                |  12 +
 22 files changed, 2269 insertions(+), 3 deletions(-)
 create mode 100644 docs/designs/claims/accounting.rst
 create mode 100644 docs/designs/claims/design.rst
 create mode 100644 docs/designs/claims/development.rst
 create mode 100644 docs/designs/claims/implementation.rst
 create mode 100644 docs/designs/claims/index.rst
 create mode 100644 docs/designs/claims/installation.rst
 create mode 100644 docs/designs/claims/invariants.mmd
 create mode 100644 docs/designs/claims/performance.rst
 create mode 100644 docs/designs/claims/protection.rst
 create mode 100644 docs/designs/claims/redeeming.rst
 create mode 100644 docs/designs/claims/terminology.rst
 create mode 100644 docs/designs/claims/use-cases.rst
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory-data.mmd
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory-seqdia.mmd
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory-workflow.mmd
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory.rst
 create mode 100644 docs/guest-guide/dom/index.rst
 create mode 100644 docs/guest-guide/mem/XENMEM_claim_pages.rst
 create mode 100644 docs/guest-guide/mem/index.rst

diff --git a/docs/designs/claims/accounting.rst b/docs/designs/claims/accounting.rst
new file mode 100644
index 000000000000..cf0aad56a0a8
--- /dev/null
+++ b/docs/designs/claims/accounting.rst
@@ -0,0 +1,331 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Accounting
+##########
+
+.. contents:: Table of Contents
+   :local:
+
+.. note::
+   Claims accounting state is only updated while holding the :c:var:`heap_lock`.
+   See :ref:`designs/claims/accounting:Locking of the claims state` for details
+   on the locks used to protect the claims accounting state.
+
+This section formalises the internal state and invariants that Xen must
+maintain to ensure correctness.
+
+
+For readers following the design in order, the preceding sections are:
+
+1. :doc:`/designs/claims/design` introduces the overall model and goals.
+2. :doc:`/designs/claims/installation` explains how claim sets are installed.
+3. :doc:`/designs/claims/protection` describes how claimed memory is protected
+   during allocation.
+4. :doc:`/designs/claims/redeeming` explains how claims are redeemed when
+   allocations succeed.
+
+Overview
+^^^^^^^^
+
+.. table:: Table 1: Claims accounting: All accesses, Aggregate state,
+           and invariants protected by :c:var:`heap_lock`.
+   :widths: auto
+
+   ============ =========================================== =======================
+   Level           Claims must be lower or equal to          the available memory
+   ============ =========================================== =======================
+   Total        :c:var:`outstanding_claims` =               :c:var:`total_avail_pages` =
+
+                 = Aggregate state:
+                  SUM() over all domains:                   Aggregate state:
+                  SUM(:c:member:`domain.outstanding_pages`)   SUM(:c:var:`node_avail_pages`)
+
+                Also, it is the sum of claims
+                over all nodes:
+
+                 = Aggregate state:
+                  SUM(:c:expr:`node_outstanding_claims[*]`)
+   Node         :c:expr:`node_outstanding_claims[node]`     :c:expr:`node_avail_pages[node]`
+
+                  Aggregate state over all domains:          Aggregate of the free
+                  SUM(:c:expr:`domain.claims[node]`)         lists of all zones on node
+   Dom per-node :c:member:`domain.node_claims` =
+                SUM(:c:expr:`domain.claims[node]`)          :c:expr:`node_avail_pages[node]`
+   Total claims :c:member:`domain.outstanding_pages`        :c:var:`total_avail_pages`
+   Memory limit :c:member:`domain.outstanding_pages`         Invariant: must be
+                + :c:func:`domain_tot_pages`                 lower or equal to
+                                                             :c:member:`domain.max_pages`
+   ============ =========================================== =======================
+
+
+Total claims and available memory
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ These variables tracking the total claims and available memory in the system
+ are aggregates of the actual per-node and per-domain values.
+
+
+ They are only maintained for efficient checks in the allocator hot paths, to
+ quickly determine if an allocation can be satisfied from unclaimed memory or
+ if further checks are needed to determine if the claims of the domain can be
+ used to free up memory for the allocation. This also ensures that the sum of
+ all claims never exceeds the total free memory in the system.
+
+
+ The number of unclaimed pages across all nodes in the system is derived as
+ :c:var:`total_avail_pages` minus :c:var:`outstanding_claims`.
+ This number is then used to:
+
+ - Permit allocation requests if they can be satisfied from unclaimed pages.
+ - Ensure that the sum of all claims never exceeds the total free memory.
+
+ .. c:var:: unsigned long total_avail_pages
+
+   Total available pages in the system across all NUMA nodes.
+   It is the aggregate of the per-node available pages:
+   :c:var:`total_avail_pages` = SUM(:c:expr:`node_avail_pages[MAX_NUMNODES]`)
+
+ .. c:var:: unsigned long outstanding_claims
+
+   The total sum of all claims across all domains.
+   :c:var:`outstanding_claims` =
+   SUM(:c:var:`domain.outstanding_pages`)
+
+Per-node claims and available memory
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ .. c:var:: unsigned long node_avail_pages[MAX_NUMNODES]
+
+   Available pages for each NUMA node, including both free and claimed pages.
+   This is used for validating that node claims do not exceed the available
+   memory on the respective NUMA node.
+
+ .. c:var:: unsigned long node_outstanding_claims[MAX_NUMNODES]
+
+   The total claims across all domains for each NUMA node, indexed by node
+   ID. This is maintained for efficient checks in the allocator hot paths.
+
+This diagram illustrates the claims accounting state and the invariants:
+
+Accounting diagram
+^^^^^^^^^^^^^^^^^^
+
+ .. mermaid:: invariants.mmd
+   :caption: Diagram: Claims accounting state and invariants
+
+Claims accounting state for each domain
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ .. c:struct:: domain
+
+   The main structure representing a domain in Xen. It includes the
+   claims accounting state for the domain, including both host-wide
+   and node-specific claims, as well as the maximum page limits for the
+   domain and the lock protecting the domain's page allocation counts.
+
+   While the domain's page counts are currently `unsigned int`, work is
+   underway to change them to `unsigned long` to support larger page counts
+   beyond 16 TB. The code is already designed to anticipate this change and
+   work with either `unsigned int` or `unsigned long` page counts equally well.
+
+   .. c:member:: unsigned int outstanding_pages
+
+      The domain's total claim, representing the number of pages claimed
+      for the domain.
+
+   .. c:member:: unsigned int node_claims
+
+      The total of the domain's node-affine claims, maintained for efficient
+      checks in the allocator hot paths without needing to sum over the
+      per-node claims each time. It is equal to the sum of
+      :c:expr:`claims[MAX_NUMNODES]` for all nodes.
+
+   .. c:member:: unsigned int claims[MAX_NUMNODES]
+
+      The domain's claims for each :term:`NUMA node`, indexed by node ID.
+
+      As the storage for ``struct`` :c:struct:`domain` is allocated using a
+      dedicated page for each domain, this array allows for efficient and
+      fast storage with direct indexing, without consuming any additional
+      memory for an extra allocation.
+
+
+      The claims for each node are used for NUMA-affine domains to specify
+      the amount of memory claimed for each node, to ensure that the domain's
+      claims for each node do not exceed the available memory on that node,
+      and to allow the allocator to redeem claims from the appropriate nodes
+      when allocating memory for the domain.
+
+      .. literalinclude:: ../../../xen/common/domain.c
+         :language: C
+         :caption: Allocation of the domain structure in ``xen/common/domain.c``
+         :start-at: alloc_domain_struct
+         :end-at: }
+         :emphasize-lines: 7, 12, 14
+         :linenos:
+         :lineno-match:
+
+      The page allocated for ``struct`` :c:struct:`domain` is large enough
+      to accommodate this array several times, even beyond the current
+      :c:macro:`MAX_NUMNODES` limit of 64. It should be sufficient even for
+      future expansion of the maximum number of supported NUMA nodes if
+      needed. The allocation has a build-time assertion for safety to ensure
+      that ``struct`` :c:struct:`domain` fits within the allocated page.
+
+
+      The sum of these claims is stored in :c:member:`domain.node_claims`
+      for efficient checks in the allocator hot paths which need to know
+      the total number of node claims for the :term:`domain`.
+
+   .. c:member:: unsigned int max_pages
+
+      The maximum number of pages the domain is allowed to claim, set at
+      domain creation time.
+
+   .. c:member:: rspinlock_t page_alloc_lock
+
+      Lock for checking :c:func:`domain_tot_pages` on top of new claims
+      against :c:member:`domain.max_pages` when installing these new claims.
+      This is a recursive spinlock to allow for nested calls into the allocator
+      while holding it, such as when redeeming claims during page allocation.
+      It is taken before :c:var:`heap_lock` when installing claims to ensure a
+      consistent locking order and must not be taken while holding
+      :c:var:`heap_lock` to avoid deadlocks.
+
+   .. c:member:: nodemask_t node_affinity
+
+      A :c:type:`nodemask_t` representing the set of NUMA nodes the domain
+      is affine to. This is used for efficient checks in the allocator hot
+      paths to quickly get the set of nodes a domain is affine to for
+      memory allocation decisions.
+
+Claims accounting invariants
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+   Xen must maintain the following invariants at all times to ensure correctness
+   of claims accounting:
+
+ - For all claims, including node-affine and host-wide claims:
+    :c:var:`outstanding_claims` :math:`\le` :c:var:`total_avail_pages`
+
+ - For node-specific claims:
+    :c:expr:`node_outstanding_claims[alloc_node]` :math:`\le`
+    :c:expr:`node_avail_pages[alloc_node]`
+
+ - For a domain's overall claims:
+    :c:var:`domain.outstanding_pages` +
+    :c:var:`domain_tot_pages` :math:`\le` :c:var:`domain.max_pages`
+
+    See :doc:`redeeming` for more information on this invariant.
+
+Constants
+^^^^^^^^^
+
+ .. c:macro:: MAX_NUMNODES
+
+   The maximum number of NUMA nodes supported by Xen. Used for validating
+   node IDs in the :c:type:`memory_claim_t` entries of claim sets.
+   When Xen is built without NUMA support, it is 1.
+
+   The default on x86_64 is 64 which is sufficient for current hardware and
+   allows for efficient storage of e.g. the :c:var:`node_online_map` for
+   online nodes and :c:member:`domain.node_affinity` in a single 64-bit value,
+   and in the :c:expr:`domain.claims[MAX_NUMNODES]` array.
+
+   ``xen/arch/Kconfig`` limits the maximum number of NUMA nodes to 64. While
+   Xen can be compiled for up to 254 nodes, configuring machines to split
+   the installed memory into more than 64 nodes would be unusual.
+   For example, dual-socket servers, even when using multiple chips per CPU
+   package should typically be configured for 2 NUMA nodes by default.
+
+ .. c:var:: nodemask_t node_online_map
+
+   A bitmap representing which NUMA nodes are currently online in the system.
+   This is used for validating that claims are only made for online nodes and
+   for efficient checks in the allocator hot paths to quickly determine which
+   nodes are online. Currently, Xen does not support hotplug of NUMA nodes,
+   so this is set at boot time based on the platform firmware configuration
+   and does not change at runtime.
+
+Types
+^^^^^
+
+ .. c:type:: uint8_t nodeid_t
+
+   Type for :term:`NUMA node` IDs. It is passed to Xenctrl using the
+   :c:var:`mem_flags` argument of :c:func:`xc_domain_populate_physmap()`
+   and passed to Xen in this form.
+
+   It allocates 8 bits in the flags for the node ID, which limits the
+   theoretical maximum value of :c:macro:`CONFIG_NR_NUMA_NODES` at 254
+   (255 is :c:macro:`NUMA_NO_NODE`), which is far beyond the current
+   maximum of 64 supported by Xen and should be sufficient for all
+   practical purposes. This also allows for efficient storage of NUMA
+   nodes in arrays indexed by node ID and in :c:type:`nodemask_t` bitmaps
+   :c:var:`node_online_map` and :c:member:`domain.node_affinity` for
+   efficient checks in the allocator hot paths.
+
+ .. c:type:: nodemask_t
+
+   A bitmap representing a set of NUMA nodes, used for status information
+   like :c:var:`node_online_map` and the :c:member:`domain.node_affinity`,
+   and to track which nodes are online and which nodes are in a domain's
+   node affinity.
+
+Memflags
+^^^^^^^^
+
+ .. c:type:: memflags
+
+    Flags for memory allocation requests that can affect the allocation
+    behaviour, such as node preference and whether the request is for an
+    exact node.
+
+ .. c:macro:: MEMF_no_owner
+
+    Flag for memory allocation requests to indicate that the allocation
+    shall not be owned by a domain, and as part of that,
+    :c:macro:`MEMF_no_refcount` is also set.
+
+ .. c:macro:: MEMF_no_refcount
+
+    Flag for memory allocation requests to indicate that the request is not
+    reference-counted to a domain's memory allocation state, and as part of
+    that, claims of a domain cannot be used to protect and redeem the
+    allocation using claims. This is used for requests which are not for
+    domains or which explicitly bypass reference-counting for other reasons.
+
+ .. c:macro:: MEMF_no_scrub
+
+    Flag for memory allocation requests to indicate that the allocated memory
+    should not be scrubbed (zeroed) before being used. This is used for
+    performance reasons for certain types of allocations where the caller
+    guarantees that the memory will be properly initialized before use.
+
+Locking of the claims state
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ .. :c:member:: domain.page_alloc_lock
+
+    If :c:var:`domain.page_alloc_lock` is needed, e.g. to check
+    :c:func:`domain_tot_pages` on top of new claims against
+    :c:var:`domain.max_pages` for the domain, it needs to be taken before
+    :c:var:`heap_lock` for consistent locking order to avoid deadlocks.
+
+ .. c:var:: spinlock_t heap_lock
+
+    Lock for all heap operations including claims. It protects the claims
+    state and invariants from concurrent updates and ensures that checks
+    in the allocator hot paths see a consistent view of the claims state.
+
+Helper functions
+^^^^^^^^^^^^^^^^
+
+ .. c:function:: inline unsigned int domain_tot_pages(struct domain *d)
+
+   :param d: The domain for which to calculate the total pages.
+   :type d: struct domain *
+   :returns: The total pages allocated to the domain.
+
+   This function is used for validating that an allocation and the domain's
+   claims do not exceed :c:member:`domain.max_pages`.
diff --git a/docs/designs/claims/design.rst b/docs/designs/claims/design.rst
new file mode 100644
index 000000000000..882dc3c5c1f1
--- /dev/null
+++ b/docs/designs/claims/design.rst
@@ -0,0 +1,243 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+#############
+Claims Design
+#############
+
+.. contents:: Table of Contents
+    :backlinks: entry
+    :local:
+
+************
+Introduction
+************
+
+Xen's page allocator supports a :term:`claims` API that allows privileged
+:term:`domain builders` to reserve a quantity of available memory before
+:term:`populating` the :term:`guest physical memory` of new :term:`domains`
+they are creating, configuring, and building.
+
+These reservations are called :term:`claims`. They ensure that the claimed
+memory remains available for the :term:`domains` when allocating it, even if
+other :term:`domains` are allocating memory at the same time.
+
+:term:`Installing claims` is a privileged operation performed by
+:term:`domain builders` before they populate the :term:`guest physical memory`.
+This prevents other :term:`domains` from allocating memory earmarked for
+:term:`domains` under construction. Xen maintains the per-domain claim state
+for pages that are claimed but not yet allocated.
+
+When claim installation succeeds, Xen updates the claim state to reflect the
+new targets and protects the claimed memory until it is allocated or the claim
+is released. As Xen allocates pages for the domain, claims are redeemed by
+reducing the claim state by the size of each allocation.
+
+************
+Design Goals
+************
+
+The design's primary goals are:
+
+1. Allow :term:`domain builders` to claim memory
+   on multiple :term:`NUMA nodes` using a :term:`claim set` atomically.
+
+2. Preserve the existing :c:macro:`XENMEM_claim_pages` hypercall command
+   for compatibility with existing :term:`domain builders` and its legacy
+   semantics, while introducing a new, unrestricted hypercall command for
+   new use cases such as NUMA-aware claim sets.
+
+3. Host-wide claims are supported for compatibility with existing
+   :term:`domain builders` and for use cases where a flexible claim that
+   can exists in the level of the host is desirable.
+
+   It means the global outstanding claims count of the host is not obsolete
+   and needs to be maintained as it needs to account for such host-wide claims.
+
+4. Use fast allocation-time claims protection in the allocator's hot paths
+   to protect claimed memory from parallel allocations by other domain
+   builders in case of parallel domain builds, and to protect claimed
+   memory from all other allocations as well.
+
+***************
+Design Overview
+***************
+
+The legacy :c:macro:`XENMEM_claim_pages` hypercall is superseded by
+:c:macro:`XEN_DOMCTL_claim_memory`. This hypercall installs a :term:`claim set`.
+It is an array of :c:type:`memory_claim_t` entries, where each entry specifies
+a page count and a target: either a specific NUMA node ID or a selector.
+
+Like legacy claims, claim sets are validated and installed under
+:c:member:`domain.page_alloc_lock` and :c:var:`heap_lock`: Either the entire
+set is accepted, or the request fails with no side effects.  Repeated calls
+to install claims replace any existing claims for the domain rather than
+accumulating.
+
+As installing claim sets after allocations is not a supported use case,
+the legacy behaviour of subtracting existing allocations from installed
+claims is somewhat surprising and counterintuitive, and page exchanges
+make incremental per-node tracking of already-allocated pages on a per-node
+basis difficult. Therefore, claim sets do not retain the legacy behaviour of
+subtracting existing allocations, optionally on a per-node basis, from the
+installed claims across the individual claim set entries.
+
+Summary:
+
+- Legacy domain builders can continue to use the previous (now deprecated)
+  :c:expr:`XENMEM_claim_pages` hypercall command to install legacy claims.
+
+- Updated domain builders can take advantage of claim sets to install
+  NUMA-aware :term:`claims` on multiple :term:`NUMA nodes` and/or claims
+  that are not bound to specific nodes. It has more intuitive semantics
+  that do not subtract existing allocations from the installed claims.
+  Such semantics are also simpler to understand and maintain, and are not
+  affected by the complexity of tracking existing allocations on a per-node
+  basis across page exchanges happening concurrently with claim installation
+  for new domains under construction.
+
+For readers following the design in order, the next sections cover the
+following topics:
+
+1. :doc:`/designs/claims/installation` explains how claim sets are installed.
+2. :doc:`/designs/claims/protection` describes how claimed memory is
+   protected during allocation.
+3. :doc:`/designs/claims/redeeming` explains how claims are redeemed as
+   allocations succeed.
+4. :doc:`/designs/claims/accounting` describes the accounting model that
+   underpins those steps.
+
+********************
+Key design decisions
+********************
+
+.. glossary::
+
+ :c:expr:`node_outstanding_claims[MAX_NUMNODES]`
+  Tracks the sum of all claims on a node. :c:func:`get_free_buddy()` checks
+  it before scanning zones on a node, so claimed memory is protected from
+  other allocations.
+
+ :c:expr:`redeem_claims_for_allocation()`
+   When allocating memory for a domain, the page allocator redeems the matching
+   claims for this allocation, ensuring the domain's total memory allocation as
+   :c:func:`domain_tot_pages` plus :c:member:`domain.outstanding_pages` remain
+   within the domain's limits, defined by :c:member:`domain.max_pages`.
+   See :doc:`redeeming` for details on redeeming claims.
+
+ :c:expr:`domain.outstanding_pages`
+  It remains the authoritative source for the total outstanding claims of a
+  domain, and is updated on claim installation and redemption. It includes
+  both host-wide claims and node-specific claims.
+  Support for :term:`host-wide claims` is maintained for two reasons: first,
+  for compatibility with existing domain builders, and second, for use cases
+  where a flexible claim that can be satisfied from any node is desirable.
+
+  When the preferred NUMA node(s) for a domain do not have sufficient free
+  memory to satisfy the domain's memory requirements, host-wide claims provide
+  a flexible fallback for the memory shortfall from the preferred node(s) that
+  can be satisfied from any available node.
+
+  In this case, :term:`domain builders` can use a combination of passing
+  the preferred node to :c:func:`xc_domain_populate_physmap()` and
+  :term:`NUMA node affinity` to steer allocations towards the preferred
+  NUMA node(s), while letting host-wide claims ensure that the shortfall
+  is available.
+
+  This allows the domain builder to define a set of desired NUMA nodes to
+  allocate from and even specify which nodes to prefer for an allocation,
+  but the claim for the shortfall is flexible, not specific to any node.
+
+*********
+Non-goals
+*********
+
+Using per-node allocator data
+=============================
+
+Some data structures could be moved into the per-node allocator data
+allocated by `init_node_heap()` to avoid bouncing those data structures
+between nodes. Those can be moved to the per-node allocator data in the
+future, but that is not a priority. While that would reduce this bouncing,
+it would not eliminate the need to take the global :c:var:`heap_lock`,
+which is still needed to protect the allocator's state during allocation
+and freeing of pages.
+
+The synchronisation point for taking the global :c:var:`heap_lock` is
+the main point of contention during allocation, freeing and scrubbing
+pages. The overhead of accessing the per-node claims accounting data
+is expected to be minimal.
+
+Avoiding the :c:var:`heap_lock` would be difficult to achieve as it
+would require updating the page allocator to maintain atomic updates
+of a new ``total_unclaimed_pages`` counter, which would be decremented
+on allocation and claims installation and incremented on freeing of
+pages and claims, and to check that counter in the hot path of the
+allocator to protect claimed memory from other allocations.
+
+However, we aim to move that data into the per-node allocator data in the
+future to reduce the need to bounce those data structures between nodes.
+
+Legacy behaviours
+=================
+
+Installing claims is a privileged operation performed by domain builders
+before they populate guest memory. As such, tracking previous allocations
+is not in scope for claims.
+
+For the following reasons, claim sets do not retain the legacy behaviour
+of subtracting existing allocations from installed claims:
+
+- Xen does not currently maintain a ``d->node_tot_pages[node]`` count,
+  and the hypercall to exchange extents of memory with new memory makes
+  such accounting relatively complicated.
+
+- The legacy behaviour is somewhat surprising and counterintuitive.
+  Because installing claims after allocations is not a supported use case,
+  subtracting existing allocations at installation time is unnecessary.
+
+- Claim sets are a new API and can provide more intuitive semantics
+  without subtracting existing allocations from installed claims. This
+  also simplifies the implementation and makes it easier to maintain.
+
+Versioned hypercall
+===================
+
+The :term:`domain builders` using the :c:macro:`XEN_DOMCTL_claim_memory`
+hypercall also need to use other version-controlled hypercalls which
+are wrapped through the :term:`libxenctrl` library.
+
+Wrapping this call in :term:`libxenctrl` is therefore a practical approach;
+otherwise, we would have a mix of version-controlled and unversioned
+:term:`hypercalls`, which could be confusing for API users and for future
+maintenance.
+
+From the domain builders' viewpoint, it is more consistent to expose
+the claims :term:`hypercalls` in the same way as the other calls they use.
+
+Stable interfaces also have drawbacks: with stable syscalls, Linux needs
+to maintain the old interface indefinitely, which can be a maintenance burden
+and can limit the ability to make improvements or changes to the interface
+in the future. Linux carries many system call successor families, e.g.,
+``oldstat``, ``stat``, ``newstat``, ``stat64``, ``fstatat``, ``statx``,
+with similar examples including ``openat``, ``openat2``, ``clone3``, ``dup3``,
+``waitid``, ``mmap2``, ``epoll_create1``, ``pselect6`` and many more.
+Glibc hides that complexity from users by providing a consistent API, but it
+still needs to maintain the old system calls for compatibility.
+
+In contrast, versioned :term:`hypercalls` allow for more flexibility and
+evolution of the API while still providing a clear path to adopt new features.
+The reserved fields and reserved bits in the structures of this hypercall
+allow for many future extensions without breaking existing callers.
+
+*****************
+Future extensions
+*****************
+
+The reserved fields and bits in the structures of this
+hypercall allow for many future extensions without breaking existing callers.
+
+Future extensions could include support for claims on superpages, claims for
+requests with :c:macro:`MEMF_no_refcount`, which allocate P2M, HAP and so on.
+
+See :ref:`designs/claims/protection:Callers using MEMF_no_refcount`
+for more information.
diff --git a/docs/designs/claims/development.rst b/docs/designs/claims/development.rst
new file mode 100644
index 000000000000..c4805b2e080d
--- /dev/null
+++ b/docs/designs/claims/development.rst
@@ -0,0 +1,197 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Development
+###########
+
+.. note::
+
+   This section provides historical context on the development
+   of NUMA-aware claims, including previous implementations and
+   feedback received, to give a better understanding of the
+   design decisions made in the current implementation.
+
+Version history
+---------------
+
+The initial `implementation of single-node claims <v1_>`_ by Alejandro Vallejo
+used the legacy claims hypercall :c:macro:`XENMEM_claim_pages` and passed a
+NUMA node in the existing NUMA node bits of
+:c:expr:`xen_memory_reservation.mem_flags`. This added the flag
+``d->claim_node`` to ``struct`` :c:struct:`domain`, which defined the target
+node for the domain's claims.
+
+.. epigraph::
+
+   Roger Pau Monné reviewed it and proposed an `initial multi-node claim-sets
+   specification <v1m_>`_ that inspired this design:
+
+    The interface here seems to be focused on domains only being allowed to
+    allocate from a single node, or otherwise you must first allocate memory
+    from a node before moving to the next one (which defeats the purpose of
+    claims?).
+
+    I think we want to instead convert ``d->outstanding_pages``
+    into a per-node array, so that a domain can have outstanding
+    claims for multiple NUMA nodes?
+
+    The hypercall interface becomes a bit awkward then, as the toolstack has
+    to perform a different hypercall for each memory claim from a different
+    node (and rollback in case of failure). Ideally we would need to introduce
+    a new hypercall that allows making claims from multiple nodes in a single
+    locked region, as to ensure success or failure in an atomic way.
+
+    -- Roger Pau Monné
+
+   This led to the `v2 <v2_>`_ and `v3 <v3_>`_ series, adding a new hypercall
+   API which designated passing an array of claims. This allowed for a more
+   flexible claim set design targeting multiple NUMA nodes and host-wide claims,
+   but only supported a single claim per domain at that time.
+
+.. sidebar:: Feedback and suggestions for multi-node claim sets
+
+   The initial implementations of single-node claims received
+   feedback from the community, with multiple suggestions to
+   extend the API to support `multi-node claim sets <v1m_>`_.
+   This feedback highlighted the need for a more flexible
+   design that could accommodate claims on multiple NUMA nodes.
+
+Between v3 and v4, `Roger Pau Monné and Andrew Cooper developed and merged
+several critical fixes <fix1_>`_ for Xen's overall claims implementation.
+These fixes also allowed Roger to improve the implementation for redeeming
+claims during domain memory allocation. With a further suggestion by
+Bernhard Kaindl, this enabled a fully working implementation that protected
+claimed memory against parallel allocations by other domain builders.
+
+.. glossary:
+
+v4 series
+ With the `v4 series <v4_>`_, we submitted the combined work that completed the
+ fixes for protecting claimed memory on NUMA nodes. The review process indicated
+ that supporting multiple claim sets would require a `redesign <v4-03_>`_ of
+ claim installation and management, which led to this design document.
+
+v5 series
+ The `v5 series <v5_>`_ implemented the `Claim Sets Design Version 1 <d1>`_
+ with support for multiple claim records per domain, and with a terminology
+ of "consuming claims" for the process of redeeming claims during domain memory
+ allocation and "retiring claims" for releasing claims for the low-level
+ action of reducing the number of claimed pages for redeeming claims for an
+ allocation, when destroying a domain or when claims must be recalled if all
+ memory is claimed and then memory is offlined, which is needed to maintain
+ the invariant that claimed memory can never be larger than free memory.
+
+v6 series
+ The `v6 series <v6_>`_ implemented the `Claim Sets Design Version 2 <d2>`_.
+ The only difference between the two versions is that with design version 2,
+ the initial term `"consuming claims"` was changed to `"redeeming claims"`
+ and the term `"retiring claims"` was changed to `"deducting claims"`.
+
+v7 series
+---------
+
+ The v7 series will implement the `Claim Sets Design Version 3 <d3>`_ or newer
+ with further improvements to the design and implementation:
+
+ 1. As the code often needs the total sum of claims of a domain, this update
+    keeps :c:member:`domain.outstanding_pages` as the total sum of outstanding
+    claims of a domain. This obsoletes the former ``d->global_claims`` which
+    only tracked the unbound claims which were not affine to a NUMA node.
+
+ 2. Avoid code duplication: Replace :c:func:`domain_set_outstanding_pages()`,
+    which handled the legacy claims hypercall :c:macro:`XENMEM_claim_pages`.
+    The new claim sets hypercall handler :c:func:`domain_install_claim_set()`,
+    integrates installing legacy claims for backwards compatibility.
+    The former :c:func:`domain_set_outstanding_pages()` is removed to
+    avoid duplicating the logic of installing claims in both places.
+
+ 3. Improve the clarity of function and variable names. For example, the new
+    hypercall handler :c:func:`domain_install_claim_set()` is more descriptive
+    of its purpose than the former :c:func:`domain_set_outstanding_pages()`:
+
+    ==================================  =======================================
+      Former function name              New function name
+    ==================================  =======================================
+    ``domain_set_outstanding_pages()``  :func:`domain_set_claim_entries()`
+                                        :func:`domain_get_claim_entries()`
+    ``deduct_global_claims()``          :func:`domain_release_host_claims()`
+    ``deduct_node_claims()``            :func:`domain_release_node_claims()`
+    ==================================  =======================================
+
+Testing
+-------
+
+The basis of the `v4 series <v4_>`_ is included in the XenServer XS9 preview
+release, and besides functional product testing, it has been tested to
+meet the performance expectation of customers from improved NUMA placement.
+
+With the `v6 series <v6_>`_, a comprehensive set of functional system tests
+was added to the submission. Also, `a separate host-side integration test
+suite <tv2_>`_ for validating the `v6 series <v6_>`_ was posted.
+
+Further development
+-------------------
+
+Based on review feedback, there is the wish to normalise the page counts of
+the page allocator to ``unsigned long``. A `first patch <u1_>`_ in this direction
+was posted to normalise the types of :c:var:`total_avail_pages` and
+:c:var:`outstanding_claims` to ``unsigned long`` in the page allocator.
+
+Acknowledgements
+----------------
+
+The claim sets design builds on the single-node claims implementation
+described above and the feedback it generated. The following people
+should be acknowledged for their contributions:
+
+- *Edwin Török* for developing the `initial best-effort NUMA placement
+  feature in the XAPI toolstack <xapi_>`_, which inspired the initial
+  implementation of NUMA-aware claims, and his work in productizing and
+  validating the integration of NUMA claims with the XAPI toolstack.
+
+- *Alejandro Vallejo* for starting the development of the NUMA claims series.
+
+- *Jan Beulich* for providing review suggestions that led to many improvements.
+
+- *Roger Pau Monné* for reviewing the initial implementation, `proposing
+  the initial multi-node claim-sets specification <_v1>`_, developing and
+  merging `critical fixes <fix1_>`_ upstream that enabled product-quality
+  support for single-node claims which is the basis of the multi-node
+  claim sets implementation.
+
+- *Andrew Cooper* for integrating and validating the work internally,
+  helping to stabilise and productise the single-node implementation.
+
+- *Bernhard Kaindl* for collaborating on the single-node implementation,
+  developing the claim sets hypercall since version 2, designing and
+  implementing the multi-node claim sets design, the functional system-level
+  test suite and the host-side integration test suite for validating the
+  claim sets implementation.
+
+- *Marcus Granado* for leading the development effort inside XenServer for
+  productising the single-node claims implementation, for providing feedback
+  and suggestions for improving the design and implementation. This included
+  coordinating the work of multiple contributors and stakeholders, integrating
+  the work into XenServer products and ensuring it meets customer requirements.
+
+.. _xapi: https://xapi-project.github.io/new-docs/toolstack/features/NUMA
+.. _fix1:
+   https://lists.xenproject.org/archives/html/xen-devel/2026-01/msg00164.html
+.. _v1:
+   https://patchew.org/Xen/20250314172502.53498-1-alejandro.vallejo@cloud.com/
+.. _v1m:
+   https://lists.xenproject.org/archives/html/xen-devel/2025-06/msg00484.html
+.. _v2: https://lists.xen.org/archives/html/xen-devel/2025-08/msg01076.html
+.. _v3: https://patchew.org/Xen/cover.1757261045.git.bernhard.kaindl@cloud.com/
+.. _v4:
+    https://lists.xenproject.org/archives/html/xen-devel/2026-02/msg01387.html
+.. _v4-03: https://patchwork.kernel.org/project/xen-devel/
+   patch/6927e45bf7c2ce56b8849c16a2024edb86034358.1772098423
+   .git.bernhard.kaindl@citrix.com/
+.. _d1:
+   https://bernhard-xen.readthedocs.io/en/claim-sets-v1-design/designs/claims
+.. _d2:
+   https://bernhard-xen.readthedocs.io/en/claim-sets-v2-design/designs/claims
+.. _v5: https://patchwork.kernel.org/project/xen-devel/list/?series=1078053
+.. _v6: https://patchwork.kernel.org/project/xen-devel/list/?series=1081139
+.. _tv2: https://patchwork.kernel.org/project/xen-devel/list/?series=1083329
+.. _u1: https://patchwork.kernel.org/project/xen-devel/list/?series=1084344
diff --git a/docs/designs/claims/implementation.rst b/docs/designs/claims/implementation.rst
new file mode 100644
index 000000000000..ed8ed82877af
--- /dev/null
+++ b/docs/designs/claims/implementation.rst
@@ -0,0 +1,393 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Implementation
+##############
+
+.. contents:: Table of Contents
+    :backlinks: entry
+    :local:
+
+.. note:: This part describes implementation details of claims and their
+    interaction with memory allocation in Xen. It covers the functions and
+    data structures involved in :term:`installing claims` and allocating memory
+    with :term:`claims`.
+
+Functions related to the implementation of claims and their interaction
+with memory allocation.
+
+**********************
+Installation of claims
+**********************
+
+This section describes the functions and data structures involved in
+:term:`installing claims` for domains, and the internal functions for
+validating and installing claim sets.
+
+ .. c:function:: int domain_set_outstanding_pages(domain, pages)
+
+    This function is replaced by :c:func:`domain_set_claim_entries()`.
+
+ .. c:function:: int domain_set_claim_entries(domain, nr_entries, claim_set)
+
+    :param domain: The domain for which to set the node claims
+    :param nr_entries: The number of claims in the claim set
+    :param claim_set: The claim set to install for the domain
+    :type domain: struct domain *
+    :type nr_entries: unsigned int
+    :type claim_set: memory_claim_t *
+    :returns: 0 on success, or a negative error code on failure.
+
+    Handles :term:`installing claim sets`. It performs validation of the
+    :term:`claim set` and updates the domain's claims accordingly.
+
+    The function works in four phases:
+
+     1. Validate claim entries and check node-specific claims availability
+     2. Validate the host-wide request against the remaining availability
+     3. Reset any current claims of the domain
+     4. Install the claim set as the domain's claiming state
+
+    Phase 1 checks claim entries for validity and memory availability:
+
+     5. Target must be :c:macro:`XEN_DOMCTL_CLAIM_MEMORY_TOTAL` or a node.
+     6. Each target node may only appear once in the claim set.
+     7. For node-specific claims, requested pages must not exceed the
+        available memory on that node after accounting for existing claims.
+     8. The explicit padding field must be zero for forward compatibility.
+
+    Phase 2 checks:
+
+     9. The total sum of the requested pages must not exceed the total
+        unclaimed memory of the host after accounting for existing claims.
+     10. The claims must not exceed the :c:member:`domain.max_pages` limit.
+         See :doc:`accounting` and :doc:`redeeming` for the accounting
+         checks that enforce the domain's :c:member:`domain.max_pages` limit.
+
+    .. versionadded:: claims-v5
+
+ .. c:function:: int domain_get_claim_entries(domain, nr_entries, claim_set)
+
+    :param domain: The domain for which to retrieve a claim set
+    :param nr_entries: The number of claims in the claim set
+    :param claim_set: The preallocated buffer for up to nr_entries claim entries
+    :type domain: struct domain *
+    :type nr_entries: unsigned int *
+    :type claim_set: memory_claim_t *
+    :returns: 0 on success with nr_entries updated to the number of claims
+              written to the buffer, or a negative error code on failure.
+
+    Retrieves a claim set for the current claims of the domain and writes
+    it to the provided buffer. The number of claims written to the buffer
+    is stored in the variable pointed to by ``nr_entries``.
+
+    ``nr_entries`` specifies the size of the provided buffer for claim
+    entries, and the function writes up to that many claim entries to
+    the buffer. If the buffer is too small to hold all claim entries,
+    the function returns -:c:macro:`ERANGE` and updates ``nr_entries``
+    to the number of entries needed to hold all claim entries.
+
+ .. versionadded:: claims-v7
+
+************************************
+Helper functions for managing claims
+************************************
+
+ .. c:function:: unsigned long domain_release_host_claims(domain, release)
+
+    :param domain: The domain for which to release host-wide claims
+    :param release: The number of pages to release
+    :type domain: struct domain *
+    :type release: unsigned long
+    :returns: The number of host-wide pages actually deducted from the domain.
+
+    This function releases the specified number of host-wide claims.
+    It limits the release to the number of host-wide claims actually held by
+    the domain and updates the overall claim state accordingly.
+
+    .. versionadded:: claims-v4
+
+ .. c:function:: unsigned long domain_release_node_claims(domain, node, release)
+
+    :param domain: The domain for which to release the node claims
+    :param node: The node for which to release the claim
+    :param release: The number of pages to release from the claim
+    :type domain: struct domain *
+    :type node: nodeid_t
+    :type release: unsigned long
+    :returns: The number of pages actually deducted from the domain's claim.
+
+    This function deducts a specified number of pages from a domain's
+    claim on a specific node. It limits the release to the number of
+    pages actually claimed by the domain on that node and updates the
+    node-local claims currently held by the domain on that node,
+    and it updates the host-wide and node-specific claim state accordingly.
+
+    .. versionadded:: claims-v5
+
+ .. c:function:: void domain_recall_node_claims(domain, recall)
+
+    :param domain: The domain for which to recall node claims
+    :param recall: The number of node-specific pages to recall
+    :type domain: struct domain *
+    :type recall: unsigned long
+
+    This function recalls the specified number of node-specific claims
+    from the domain and updates the overall claim state accordingly.
+
+    It iterates over the domain's node-specific claims, calls
+    :c:func:`domain_release_node_claims()` to up to the given pages from
+    the node claims until the specified number of pages has been recalled,
+    or all node-specific claims have been exhausted.
+
+    This function is used to recall node-specific claims from a domain when
+    offlining memory or when pages for a domain are allocated on other
+    nodes than the claimed node.
+
+    .. versionadded:: claims-v5
+
+**********************
+Allocation with claims
+**********************
+
+The functions below play a key role in allocating memory for domains.
+
+ .. c:function:: int xc_domain_populate_physmap(xch, domid, extents, order, \
+                                                mem_flags, extent_start)
+
+    :param xch: The :term:`libxenctrl` interface
+    :param domid: The ID of the domain
+    :param extents: Number of extents
+    :param order: Order of the extents
+    :param mem_flags: Allocation flags
+    :param extent_start: Starting PFN
+    :type xch: xc_interface *
+    :type domid: uint32_t
+    :type extents: unsigned long
+    :type order: unsigned int
+    :type mem_flags: unsigned int
+    :type extent_start: xen_pfn_t *
+    :returns: 0 on success, or a negative error code on failure.
+
+    This function is a wrapper for the ``XENMEM_populate_physmap`` hypercall,
+    which is handled by the :c:func:`populate_physmap()` function in the
+    hypervisor. It is used by :term:`libxenguest` for populating the
+    :term:`guest physical memory` of a domain. :term:`domain builders` can
+    set the :term:`NUMA node affinity` and pass the preferred node to this
+    function to steer allocations towards the preferred NUMA node(s) and let
+    :term:`claims` ensure that the memory will be available even in cases
+    of :term:`parallel domain builds` where multiple domains are being built
+    at the same time.
+
+The :term:`meminit` API calls :c:func:`xc_domain_populate_physmap()`
+for populating the :term:`guest physical memory`. It invokes the restartable
+``XENMEM_populate_physmap`` hypercall implemented by
+:c:func:`populate_physmap()`.
+
+.. c:function:: void populate_physmap(struct memop_args *a)
+
+    :param a: Provides status and hypercall restart info
+    :type a: struct memop_args *
+
+    Allocates memory for building a domain and uses it for populating the
+    :term:`physmap`. For allocation, it uses
+    :c:func:`alloc_domheap_pages()`, which forwards the request to
+    :c:func:`alloc_heap_pages()`.
+
+    During domain creation, it adds the :c:macro:`MEMF_no_scrub` flag to the request
+    for populating the :term:`physmap` to optimise domain startup by allowing
+    the use of unscrubbed pages.
+
+    When that happens, it scrubs the pages as needed using hypercall
+    continuation to avoid long hypercall latency and watchdog timeouts.
+
+    Domain builders can optimise on-demand scrubbing by running
+    :term:`physmap` population pinned to the domain's NUMA node,
+    keeping scrubbing local and avoiding cross-node traffic.
+
+.. c:function:: struct page_info *alloc_heap_pages(unsigned int zone_lo, \
+                                                   unsigned int zone_hi, \
+                                                   unsigned int order, \
+                                                   unsigned int memflags, \
+                                                   struct domain *d)
+
+    :param zone_lo: The lowest zone index to consider for allocation
+    :param zone_hi: The highest zone index to consider for allocation
+    :param order: The order of the pages to allocate (2^order pages)
+    :param memflags: Memory allocation flags that may affect the allocation
+    :param d: The domain for which to allocate memory or NULL
+    :type zone_lo: unsigned int
+    :type zone_hi: unsigned int
+    :type order: unsigned int
+    :type memflags: unsigned int
+    :type d: struct domain *
+    :returns: The allocated page_info structure, or NULL on failure
+
+    This function allocates a contiguous block of pages from the heap.
+    It checks claims and available memory before attempting the
+    allocation. On success, it updates relevant counters and redeems
+    claims as necessary.
+
+    It first checks whether the request can be satisfied given the domain's
+    claims and available memory using :c:func:`claims_permit_request()`.
+    If claims and availability permit the request, it calls
+    :c:func:`get_free_buddy()` to find a suitable block of free pages
+    while respecting node and zone constraints.
+
+    Simplified pseudocode of its logic:
+
+.. code:: C
+
+    struct page_info *alloc_heap_pages(unsigned int zone_lo,
+                                       unsigned int zone_hi,
+                                       unsigned int order,
+                                       unsigned int memflags,
+                                       struct domain *d) {
+        /* D's claims and available memory need to permit the request. */
+        if (!claims_permit_request(1UL << order, total_avail_pages, memflags,
+                                   NUMA_NO_NODE, d,  outstanding_claims))
+            return NULL;
+
+        /* Find a suitable buddy block. Pass the zone range, order and
+         * memflags so the helper can apply node and zone selection. */
+        pg = get_free_buddy(zone_lo, zone_hi, order, memflags, d);
+        if (!pg)
+            return NULL;
+
+        redeem_claims_for_allocation(d, 1UL << order, node_of(pg));
+        update_counters_and_stats(d, order);
+        if (pg_has_dirty_pages(pg))
+            scrub_dirty_pages(pg);
+        return pg;
+    }
+
+.. c:function:: struct page_info *get_free_buddy(zone_lo, zone_hi, order, \
+                                                 memflags, domain)
+
+    :param zone_lo: The lowest zone index to consider for allocation
+    :param zone_hi: The highest zone index to consider for allocation
+    :param order: The order of the pages to allocate (2^order pages)
+    :param memflags: Flags for conducting the allocation
+    :param domain: domain to allocate memory for or NULL
+    :type zone_lo: unsigned int
+    :type zone_hi: unsigned int
+    :type order: unsigned int
+    :type memflags: unsigned int
+    :type domain: struct domain *
+    :returns: The allocated page_info structure, or NULL on failure
+
+    This function finds a suitable block of free pages in the buddy
+    allocator while respecting claims and node-level available memory.
+
+    Called by :c:func:`alloc_heap_pages()` after verifying the request is
+    permissible, it iterates over nodes and zones to find a buddy block
+    that satisfies the request. It checks node-local claims before
+    attempting allocation from a node.
+
+    Using :c:func:`claims_permit_request()`, it checks whether the node
+    has enough unclaimed memory to satisfy the request or whether the
+    domain's claims can permit the request on that node after accounting
+    for outstanding claims.
+
+    If the node can satisfy the request, it searches for a suitable block
+    in the specified zones. If found, it returns the block; otherwise it
+    tries the next node until all online nodes are exhausted.
+
+    Simplified pseudocode of its logic:
+
+.. code:: C
+
+    /*
+     * preferred_node_or_next_node() represents the policy to first try the
+     * preferred/requested node then fall back to other online nodes.
+     */
+    struct page_info *get_free_buddy(unsigned int zone_lo,
+                                     unsigned int zone_hi,
+                                     unsigned int order,
+                                     unsigned int memflags,
+                                     const struct domain *d) {
+        nodeid_t request_node = MEMF_get_node(memflags);
+
+        /*
+         * Iterate over candidate nodes: start with preferred node (if any),
+         * then try other online nodes according to the normal placement policy.
+         */
+        while (there are more nodes to try) {
+            nodeid_t node = preferred_node_or_next_node(request_node);
+            unsigned long avail_pages = node_avail_pages[node] -
+                                        node_outstanding_claims[node]
+                                        + ((d && !(memflags & MEMF_no_refcount))
+                                           ? d->claims[node] : 0);
+
+            /* Ensure the target node and the claims permit can this allocation */
+            if ( avail_pages < (1UL << order) )
+                goto next_node;
+
+            /* Find a zone on this node with a suitable buddy */
+            for (int zone = highest_zone; zone >= lowest_zone; zone--)
+                for (int j = order; j <= MAX_ORDER; j++)
+                    if ((pg = remove_head(&heap(node, zone, j))) != NULL)
+                        return pg;
+         next_node:
+            if (request_node != NUMA_NO_NODE && (memflags & MEMF_exact_node))
+                return NULL;
+            /* Fall back to the next node and repeat. */
+        }
+        return NULL;
+    }
+
+.. note:: The actual implementation includes additional details
+   but the pseudocode captures the core logic of checking claims
+   and available memory while searching for a suitable buddy.
+
+**************************************
+Offlining memory in presence of claims
+**************************************
+
+When offlining pages, Xen must ensure that available memory on a node
+and the total number of free pages does not fall below their respective
+outstanding claims. If it does, Xen recalls claims from domains until
+accounting is valid again.
+
+This is triggered by privileged domains via the
+``XEN_SYSCTL_page_offline_op`` sysctl or by machine-check memory errors.
+
+Offlining currently allocated pages cannot remove those in-use pages from
+circulation. They are marked for offlining and are offlined when freed back
+to the allocator. However, when already free pages are directly offlined,
+free memory the outstanding claims may need to be adjusted directly too.
+
+:c:func:`reserve_offlined_page()` needs to check whether offlining the page
+causes :c:var:`total_avail_pages` to fall below :c:var:`outstanding_claims` or
+:c:expr:`node_avail_pages[page->node]` to fall below
+:c:expr:`node_outstanding_claims[page->node]`. If so,
+:c:func:`reserve_offlined_page()` must look for domains with relevant claims
+and recall those claims until the claim accounting is valid again.
+
+- When
+  :c:expr:`node_outstanding_claims[page->node]` exceeds
+  :c:expr:`node_avail_pages[page->node]` for the offlined page,
+  :c:func:`reserve_offlined_page()` should call
+  :c:func:`domain_release_node_claims()`
+  to recall claims on that node from domains with claims on the node of the
+  offlined buddy until the claim accounting of the node is valid again.
+
+- When total :c:var:`outstanding_claims` exceeds :c:var:`total_avail_pages`,
+  :c:func:`reserve_offlined_page()` calls
+  :c:func:`domain_release_host_claims()` to recall host-wide claims
+  from domains until the overall claims accounting is valid again.
+
+This can violate claim guarantees, but it is necessary to maintain system
+stability when memory must be offlined.
+
+.. c:function:: int reserve_offlined_page(struct page_info *head)
+
+    :param head: The page being offlined
+    :type head: struct page_info *
+    :returns: 0 on success, or a negative error code on failure.
+
+    This function is called during the offlining process to offline pages.
+
+    If offlining a page causes available memory to fall below outstanding
+    claims, it checks the node-specific and host-wide claim accounting
+    and recalls claims from domains as necessary to ensure accounting
+    invariants hold after a buddy is offlined.
diff --git a/docs/designs/claims/index.rst b/docs/designs/claims/index.rst
new file mode 100644
index 000000000000..218632c6e22f
--- /dev/null
+++ b/docs/designs/claims/index.rst
@@ -0,0 +1,48 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+NUMA Claims
+===========
+
+Design and implementation of NUMA-aware claim sets.
+
+Status: Draft for review
+
+This design first introduces the external behaviour of claim sets: how claims
+are installed, how they protect allocations, and how they are redeemed.
+It then covers the underlying accounting model and implementation details.
+
+For readers following the design in order, the next sections cover these
+topics:
+
+1.  :doc:`/designs/claims/use-cases` describes the use cases for claim sets.
+2.  :doc:`/designs/claims/performance` describes the performance test results.
+3.  :doc:`/designs/claims/development` provides the development history and future work.
+4.  :doc:`/designs/claims/design` introduces the overall model and goals.
+5.  :doc:`/designs/claims/installation` describes how claim sets are installed.
+6.  :doc:`/designs/claims/protection` describes how claimed memory is
+    protected during allocation.
+7.  :doc:`/designs/claims/redeeming` explains how claims are redeemed when
+    allocations succeed.
+8.  :doc:`/designs/claims/accounting` describes the accounting model that
+    underpins those steps.
+9.  :doc:`/designs/claims/implementation` documents the functions used for the
+    implementation.
+10. :doc:`/designs/claims/terminology` defines the terms used in this design.
+
+.. toctree:: :caption: Contents
+   :maxdepth: 2
+
+   use-cases
+   performance
+   development
+   design
+   installation
+   protection
+   redeeming
+   accounting
+   implementation
+   terminology
+
+.. contents::
+    :backlinks: entry
+    :local:
diff --git a/docs/designs/claims/installation.rst b/docs/designs/claims/installation.rst
new file mode 100644
index 000000000000..2073da2c33ee
--- /dev/null
+++ b/docs/designs/claims/installation.rst
@@ -0,0 +1,70 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Installation
+############
+
+**********
+Claim sets
+**********
+
+A claim set is an array of :c:type:`memory_claim_t` entries.
+
+.. c:type:: memory_claim_t
+
+   The ``typedef`` for :c:type:`xen_memory_claim`, used for
+   passing an array of claim set entries to the hypervisor.
+
+.. c:struct:: xen_memory_claim
+
+   Underlying structure for passing claim sets to the hypervisor.
+
+   This structure represents an individual claim entry in a claim set.
+   It specifies the number of pages claimed and the target of the claim,
+   which can be a specific NUMA node or a special value for host-wide claims.
+
+   The structure includes padding for future expansion. It is important to
+   zero-initialise it or use designated initialisers to ensure forward
+   compatibility. Members are as follows:
+
+   .. c:member:: uint64_aligned_t pages
+
+      Number of pages for this claim entry.
+
+   .. c:member:: uint32_t cmd
+
+      Command field reserved for future use. It must be initialised to 0
+      for forward compatibility.
+
+   .. c:member:: uint32_t target
+
+
+      The target of the claim entry. It can be a special selector, which could
+      in the future include flags and additional information, or simply a NUMA
+      node ID.
+
+      See :ref:`guest-guide/dom/DOMCTL_claim_memory:Hypercall API`
+      for the defined special selectors and their semantics.
+
+.. c:type:: uint64_aligned_t
+
+   64-bit unsigned integer type with alignment requirements suitable for
+   representing page counts in the claim structure.
+
+**********************
+Claim set installation
+**********************
+
+
+Claim set installation is invoked via :c:macro:`XEN_DOMCTL_claim_memory`, and
+:c:func:`domain_install_claim_set()` implements the claim set installation logic.
+
+See :doc:`accounting` for details on the claims accounting state.
+
+*************************
+Legacy claim installation
+*************************
+
+Legacy claims are set via the :c:macro:`XENMEM_claim_pages` hypercall command.
+
+.. note:: The legacy path is deprecated.
+   Use :c:macro:`XEN_DOMCTL_claim_memory` for new code.
diff --git a/docs/designs/claims/invariants.mmd b/docs/designs/claims/invariants.mmd
new file mode 100644
index 000000000000..317c51536ed3
--- /dev/null
+++ b/docs/designs/claims/invariants.mmd
@@ -0,0 +1,35 @@
+%% SPDX-License-Identifier: CC-BY-4.0
+%% Claim variables and their Invariants
+flowchart TD
+
+subgraph "Access&nbsp;under&nbsp;the&nbsp;<tt><b>heap_lock</b></tt>&nbsp;only:"
+   direction TB
+   Memory_of_Nodes --"&nbsp; Contribute to &nbsp;"--> Overall_Memory
+   Overall_Memory --"&nbsp; Available to &nbsp;"--> Memory_of_Domains
+end
+
+subgraph Memory_of_Nodes["Per-node claims and available memory"]
+    direction LR
+    per_node_claims -->|"&nbsp; less or equal to &nbsp;"| node_avail_pages
+    per_node_claims["Claims on the node:
+                     <tt>node_outstanding_claims[n]"]
+    node_avail_pages["Available pages on the node:
+                      <tt>node_avail_pages[n]"]
+end
+
+subgraph Overall_Memory["Overall claims and available memory"]
+    direction LR
+    outstanding -->|"&nbsp; less or equal to &nbsp;"| avail_pages
+    outstanding["Total claims on the host:
+                 <tt>outstanding_claims"]
+    avail_pages["Available pages on the host:
+                 <tt>total_avail_pages"]
+end
+
+subgraph Memory_of_Domains["Per-domain&nbsp;claims and available memory"]
+    direction LR
+    claims -->|"&nbsp; less or equal to &nbsp;"| available_memory_for_domains
+    claims["Claims of the domain:<br><tt>d->outstanding_pages"]
+    available_memory_for_domains["Available pages:<br><tt>node_avail_pages[n]
+                                                          total_avail_pages"]
+end
diff --git a/docs/designs/claims/performance.rst b/docs/designs/claims/performance.rst
new file mode 100644
index 000000000000..694c97ca3321
--- /dev/null
+++ b/docs/designs/claims/performance.rst
@@ -0,0 +1,33 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Performance
+***********
+
+The single-node claims implementation which is the basis of the
+NUMA claims v4 series and the multi-node claim sets design forms
+the groundwork for the NUMA design and implementation in XenServer 9.
+
+An early version of it is available as the XenServer XS9 preview
+release: https://www.xenserver.com/downloads/xs9-preview.
+The performance of this release has been tested in real
+customer environments with customer workloads.
+
+On dual-socket Intel servers, the **average aggregate CPU usage across
+all VMs at peak times** (peak user load) was **~16% less** than with
+`XenServer 8.4` (overall average at all times **~8.5% less**) compared
+to the previous release, which is a significant improvement in CPU
+efficiency for memory-intensive workloads, attributed to the
+improved NUMA placement enabled by `NUMA-aware claims`.
+
+The customer's response time metric from their application, which is the
+key measure the customer uses for end user observed performance, showed
+an ~8% improvement, matching the improvement in average CPU usage.
+
+These numbers were observed using `Intel dual-socket servers`.
+The performance benefits with AMD servers (judging by preliminary tests) are
+expected to be considerably higher than the results with dual-socket Intel
+servers.
+
+The multi-node claim sets design is expected to extend these benefits
+to configurations that require claiming memory from multiple NUMA nodes
+adjacent to each other for optimal performance.
diff --git a/docs/designs/claims/protection.rst b/docs/designs/claims/protection.rst
new file mode 100644
index 000000000000..c7eec95b99e4
--- /dev/null
+++ b/docs/designs/claims/protection.rst
@@ -0,0 +1,200 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Protection
+##########
+
+.. contents:: Table of Contents
+    :backlinks: entry
+    :local:
+
+Claimed memory must be protected from allocations without applicable claims
+while remaining available to allocations with applicable claims.
+
+Claims exist as long as they are outstanding, which is from the moment they
+are installed until they are redeemed by allocations.
+
+During this time, they are a commitment of memory to a domain, and the
+hypervisor must ensure that this commitment is respected by protecting
+claimed memory from being allocated without redeeming applicable claims.
+
+Redeeming claims is the process of applying a portion of the claims of
+a domain to an allocation to allow the allocation to proceed by exchanging
+the claim for the allocated memory, so that the allocation can use the
+claimed memory and the portion of the claim used for the allocation is
+no longer outstanding.
+
+For example, if a domain has an outstanding claim of 100 pages on a node,
+and it redeems 20 pages of that claim for an allocation, the domain would
+have 80 pages of that claim still outstanding, and the allocation would be
+satisfied using the claimed memory, so the domain can use that allocated
+memory and the claim would be reduced by the redeemed amount.
+
+For the protection of claims, the allocator performs checks to ensure that
+claimed memory is not allocated without redeeming applicable claims, while
+still allowing the claiming domain to allocate claimed memory by redeeming
+claims.
+
+When the system is not under heavy memory pressure and not fully-claimed,
+the allocator can satisfy allocation requests using unclaimed memory.
+
+However, when the system is under heavy memory pressure or nearly fully-claimed,
+the checks for protecting claims become critical to ensure that claimed memory
+is not allocated without redeeming applicable claims.
+
+*********************************
+Reference-counting of allocations
+*********************************
+
+Claims protection distinguishes between two kinds of allocation requests.
+
+Reference-counted requests
+==========================
+
+This means that the request comes for a domain and the :c:expr:`memflags`
+of the request do not include :c:expr:`MEMF_no_refcount`.
+
+In this case, the request is reference-counted to the domain's
+total memory allocation, and the domain's claims can be used
+to protect and redeem the allocation using claims.
+
+For example, the allocation requests by :term:`domain builders` for the
+:term:`guest physical memory` of domains are always reference-counted,
+and as such, can be protected and redeemed by claims to the extent
+the claims are applicable and sufficient for the allocation.
+
+Not reference-counted requests
+==============================
+
+This means that the request is not for a domain, or the :c:type:`memflags`
+of the request includes :c:macro:`MEMF_no_refcount`.
+
+In this case, the request is not reference-counted to a domain's
+memory allocation state, and as part of that, claims of a domain
+cannot be used to protect and redeem the allocation using claims.
+
+As such, the allocation request is not protected and redeemed by claims and
+the allocator does not consider claims to check whether the request can
+be satisfied, so the request can only be satisfied using unclaimed memory.
+
+Therefore, such requests can only be satisfied using unclaimed memory.
+
+Callers using MEMF_no_refcount
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Example callers which use :c:macro:`MEMF_no_refcount` when allocating memory
+or use :c:macro:`MEMF_no_owner` which also sets :c:macro:`MEMF_no_refcount`
+in the context of domains include:
+
+- ``p2m_alloc_page()`` for allocating pages for the page-to-machine mapping.
+- ``hap_set_allocation()`` for allocating memory for hardware-assisted paging.
+- ``vmx_alloc_vlapic_mapping()`` for allocating the vLAPIC page for a HVM guest.
+- ``vmtrace_alloc_buffer()`` for allocating the buffer for VM tracing.
+- ``ioreq_server_alloc_mfn()`` for allocating memory for I/O requests.
+
+Example actions happening at runtime on the request of running domains
+which use :c:macro:`MEMF_no_refcount` or :c:macro:`MEMF_no_owner` to
+bypass reference-counting include:
+
+- ``memory_exchange()`` for exchanging memory pages of a domain.
+- ``gnttab_transfer()`` for transferring pages between domains.
+
+***********************
+Claim protection checks
+***********************
+
+Unless the request is an exact-node request for a node-specific claim,
+the allocator performs two protective checks to protect claimed memory
+from being allocated to other domains while still allowing the claiming
+domain to allocate it.
+
+Before starting, the allocator takes the global :c:var:`heap_lock`.
+This ensures that any previous changes to the state of the system's
+unclaimed memory and the domain's total outstanding claims are complete
+and visible, and no concurrent changes to those values can happen.
+
+Protection of host-wide claims
+==============================
+
+The first check [1]_ the allocator performs is a check protecting host-wide
+claims which are part of the total pool of the claims on the entire host.
+
+1. Get the total amount of unclaimed memory available in the system.
+   It is the sum of the free pages on all NUMA nodes
+   (:c:var:`total_avail_pages`) minus the total amount of claimed
+   memory across all domains (:c:var:`outstanding_claims`). This
+   includes all host-wide claims and all node-specific claims.
+
+2. Check whether the request can be satisfied by the unclaimed memory itself.
+
+   If so, the allocation calls :c:func:`get_free_buddy()` to perform the
+   node-specific checks and find free pages on the appropriate node(s)
+   to satisfy the request.
+
+   This is the common case, especially for smaller allocations and when the
+   host is not under heavy memory pressure and not fully-claimed.
+
+If the request cannot proceed based on the unclaimed memory, it is under
+heavy memory pressure as the unclaimed memory is very low, which is where
+the protection of claims becomes critical.
+
+In these situations, the allocator needs to ensure that the domain has
+enough claims to redeem the claimed memory to satisfy this request,
+otherwise the request has to fail:
+
+1. If the request is not for a domain or the request is disabling reference
+   counting, the request fails.
+
+2. If the total claims of the domain (:c:member:`domain.outstanding_claims`)
+   cover the amount of claims needed to satisfy the request,
+   the allocation can proceed further. Else, the request fails.
+
+Protection of node-specific claims
+==================================
+
+This check protects claimed memory on the specific node from being allocated
+without sufficient claims.
+
+After passing the host-wide claims protection check, the allocator calls
+:c:expr:`get_free_buddy()` to pick nodes for allocation and check the
+node's suitability [2]_ for this request:
+
+1. Get the number of unclaimed memory available on that node using the
+   free pages on that NUMA node (``node_avail_pages[node]``) minus the
+   total amount of claimed memory across all domains for that node
+   (``node_outstanding_claims[node]``).
+
+2. If the request can be satisfied by the sum of the unclaimed memory
+   on that node and the claims of the domain for that node, the allocation
+   can proceed on that node, else this node cannot satisfy this request.
+
+3. If the allocation is an exact-node request, or the allocator
+   has no further nodes to consider, the allocation fails.
+
+4. Else, if the allocator has to consider further nodes for this request,
+   the allocator continues to repeat the same process for the next node.
+
+.. rubric:: Footnotes
+
+.. [1] In principle, the host-wide check for the protection of host-wide claims
+       could be skipped for node-exact requests that are reference-counted and
+       covered by the claims of the domain for that node. The added code for
+       This additional check would add complexity to the code, and as long as
+       Xen must track global memory counters, those counters would still need
+       to be accessed for all requests, so the added code could only delay the
+       access to those global counters while adding more checks to all other
+       requests. Therefore, that's not considered beneficial for now.
+
+       However, if we want to replace the global :c:var:`heap_lock` serving
+       as a global synchronisation point for all memory allocations with
+       finer-grained (per-node) locks in the future, then this check could be
+       added to allow more concurrency for node-exact allocations (and all
+       free_page() calls) while still protecting claims, but that would be a
+       future project, requiring significant changes to the code.
+
+.. [2] If the request is reference-counted and the request is covered by
+       the claims of the domain for that node, the request could proceed.
+       But that would add complexity to the code, and as long as Xen must track
+       per-node memory counters, those counters would still need to be updated
+       for all allocations from this node, so the added code could only delay
+       the access to those per-node counters while adding more checks to all
+       other requests. Therefore, that's not considered beneficial for now.
diff --git a/docs/designs/claims/redeeming.rst b/docs/designs/claims/redeeming.rst
new file mode 100644
index 000000000000..a5eb045c1bce
--- /dev/null
+++ b/docs/designs/claims/redeeming.rst
@@ -0,0 +1,71 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Redeeming
+#########
+
+.. contents:: Table of Contents
+    :backlinks: entry
+    :local:
+
+After the buddy allocator returned the pages for the allocation,
+:c:func:`redeem_claims_for_allocation()` redeems claims up to the size of
+the allocation in the same critical region that updates the free-page counters.
+
+The function performs the following steps to redeem the matching
+claims for this allocation. It ensures that the domain's total memory
+allocation as :c:func:`domain_tot_pages` plus its outstanding
+claims as :c:member:`domain.outstanding_pages` remain within the
+domain's limits, defined by :c:member:`domain.max_pages`:
+
+Steps to redeem claims for an allocation
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Step 1:
+  Redeem claims from :c:expr:`domain.claims[alloc_node]` on the allocation
+  node, up to the size of that claim.
+Step 2:
+  If the allocation exceeds :c:expr:`domain.claims[alloc_node]`, redeem the
+  remaining pages from the host-wide claims
+  (:c:member:`domain.outstanding_pages` - :c:member:`domain.node_claims`),
+  up to the size of the host-wide claims.
+Step 3:
+  If the allocation exceeds the combination of those claims, redeem the
+  remaining pages from other per-node claims so that the domain's total
+  allocation plus claims remain within the domain's :c:member:`domain.max_pages`
+  limit.
+
+Enforcing the domain's max_pages limit
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:c:func:`domain_tot_pages` + :c:member:`domain.outstanding_pages`
+must not exceed the :c:member:`domain.max_pages` limit, otherwise
+the domain could exceed its memory entitlement.
+
+At claim installation time, :c:func:`domain_install_claim_set()` performs
+this check.
+
+.. :sidebar::
+   See :ref:`designs/claims/accounting:Locking of claims accounting`
+   for the locks used to protect claims accounting state and invariants.
+
+At memory allocation time
+  If (unexpectedly) a domain builder ends up allocating memory from
+  different nodes than it claimed from, the domain's total allocation
+  plus claims could exceed the domain's :c:member:`domain.max_pages`
+  limit, unless the page allocator redeems claims from other nodes
+  to ensure the sum of the domain's claims and populated pages
+  remains within the :c:member:`domain.max_pages` limit.
+
+  :c:func:`redeem_claims_for_allocation()`
+  cannot reliably check :c:member:`domain.max_pages` race-free because
+  :c:member:`domain.max_pages` is not protected by the :c:var:`heap_lock`
+  taken by the page allocator during allocation.
+
+  To check the domain's limits, it would have to take the
+  :c:member:`domain.page_alloc_lock` to inspect the domain's
+  limits and its current allocation. However, taking that lock
+  while holding the :c:var:`heap_lock` would invert the locking
+  order and could lead to deadlocks.
+
+  Therefore, :c:func:`redeem_claims_for_allocation()`
+  redeems the remaining allocation from other-node claims in Step 3.
diff --git a/docs/designs/claims/terminology.rst b/docs/designs/claims/terminology.rst
new file mode 100644
index 000000000000..62bc32ae93b5
--- /dev/null
+++ b/docs/designs/claims/terminology.rst
@@ -0,0 +1,138 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Terminology
+###########
+
+.. Terms should appear in alphabetical order by their initial synonym.
+
+.. glossary::
+
+ claims
+  Reservations of memory for :term:`domains` that are installed by
+  :term:`domain builders` before :term:`populating` the domain's memory.
+  Claims ensure that the reserved memory remains available for the
+  :term:`domains` when allocating it, even if other :term:`domains` are
+  allocating memory at the same time.
+
+ claim set
+  An array of :c:type:`memory_claim_t` entries, each specifying a page count
+  and a target (either a NUMA node ID or a special value for host-wide claims),
+  that can be installed atomically for a domain to reserve memory on multiple
+  NUMA nodes. The chapter on :ref:`designs/claims/installation:claim sets`
+  provides further information on the structure and semantics of claim sets.
+
+ claim set installation
+ installing claim sets
+ installing claims
+  The process of validating and installing a claim set for a domain under
+  :c:member:`domain.page_alloc_lock` and :c:var:`heap_lock`, ensuring that
+  either the entire set is accepted and installed, or the request fails with
+  no side effects.
+  The chapter on :ref:`designs/claims/installation:claim set installation`
+  provides further information on the structure and semantics of claim sets.
+
+ domain builders
+  Privileged entities (such as :term:`toolstacks` in management :term:`domains`)
+  responsible for constructing and configuring :term:`domains`, including
+  installing :term:`claims`, :term:`populating` memory, and setting up other
+  resources before the :term:`domains` are started.
+
+ host-wide claims
+  :term:`claims` that can be satisfied from any NUMA node, required for
+  compatibility with existing domain builders and for use cases where
+  strict node-local placement is not required or not possible, such as on
+  UMA machines or as a fallback for memory that comes available on any node.
+
+ libxenctrl
+  A low-level C API library to interact with the Xen hypervisor, to make
+  :term:`hypercalls`. If hypercalls are to Xen what system calls are to the
+  Linux kernel, then :term:`libxenctrl` is the universal, low-level system C
+  runtime library that provides the interface for making those hypercalls.
+
+ libxenguest
+  A higher-level library, layered on top of :term:`libxenctrl`,
+  specifically designed for :term:`domain builders` to build and
+  configure :term:`domains`, including installing :term:`claims`
+  and :term:`populating` :term:`guest physical memory`. It provides
+  a more convenient and domain-builder-friendly interface for these
+  operations, abstracting away details of creating the architecture-specific
+  memory map expected by guest operating systems which were initially
+  written to run on the bare metal (on full hardware) and not in a
+  virtualized environment.
+
+ meminit
+  The phase of a domain build where the guest's physical memory is populated,
+  which involves allocating and mapping physical memory for the domain's guest
+  :term:`physmap`. This should be performed after installing :term:`claims`
+  to protect the process against parallel allocations of other domain builder
+  processes in case of parallel domain builds.
+
+  It is implemented in :term:`libxenguest` and optionally installs
+  :term:`claims` to ensure the claimed memory is reserved before populating
+  the :term:`physmap` using calls to :c:func:`xc_domain_populate_physmap()`.
+
+ nodemask
+  A bitmap representing a set of NUMA nodes, used for status information
+  like :c:var:`node_online_map` and the :c:member:`domain.node_affinity`.
+
+ node
+ NUMA node
+ NUMA nodes
+  A grouping of CPUs and memory in a NUMA architecture. NUMA nodes have
+  varying access latencies to memory, and NUMA-aware claims allow
+  :term:`domain builders` to reserve memory on specific NUMA nodes
+  for performance reasons. Platform firmware configures what constitutes
+  a NUMA node, and Xen relies on that configuration for NUMA-related features.
+
+  When this design refers to NUMA nodes, it is referring to the NUMA nodes
+  as defined by the platform firmware and exposed to Xen, initialized at boot
+  time and not changing at runtime (so far).
+
+  The NUMA node ID is a numeric identifier for a NUMA node, used whenever code
+  specifies a NUMA node, such as the target of a claim or indexing into arrays
+  related to NUMA nodes.
+
+  NUMA node IDs start at 0 and are less than :c:macro:`MAX_NUMNODES`.
+
+  Some NUMA nodes may be offline, and the :c:var:`node_online_map` is used
+  to track which nodes are online. Currently, Xen does not support hotplug
+  of NUMA nodes, so the set of online NUMA nodes is determined at boot time
+  based on the platform firmware configuration and does not change at runtime.
+
+ NUMA node affinity
+  The preference of a :term:`domain` for a set of NUMA nodes, which can
+  be set up by :term:`domain builders` to make :c:func:`get_free_buddy`
+  (which selects the NUMA node to allocate from) prefer specific NUMA nodes for
+  performance reasons.
+
+  It is represented by the :c:member:`domain.node_affinity`, which is a
+  bitmap of NUMA nodes indicating the preferred NUMA nodes for the domain.
+  By default, domains have NUMA node auto-affinity, which means their NUMA
+  node affinity is determined automatically by the hypervisor based on the
+  CPU affinity of their vCPUs, but it can be disabled and configured manually
+  by domain builders.
+
+ guest physical memory
+ physmap
+  The mapping of a domain's guest physical memory to the host's
+  machine address space. The :term:`physmap` defines how the guest's
+  physical memory corresponds to the actual memory locations on the host.
+
+ populating
+  The process of allocating and mapping physical memory for a domain's guest
+  :term:`physmap`, performed by the :term:`domain builders`, preferably after
+  installing :term:`claims` to protect the process against parallel allocations
+  of other domain builder processes in case of parallel domain builds.
+
+ toolstacks
+  Privileged entities (running in privileged :term:`domains`) responsible for
+  managing :term:`domains`, including building, configuring, and controlling
+  their lifecycle using :term:`domain builders`. One toolstack may run
+  multiple :term:`domain builders` in parallel to build multiple :term:`domains`
+  at the same time.
+
+ Xenctrl
+  An OCaml library provided by Xen for :term:`domain builders` running
+  in privileged :term:`domains` to interact with the hypervisor, including
+  making hypercalls to install claims and :term:`populating`
+  :term:`guest physical memory`.
\ No newline at end of file
diff --git a/docs/designs/claims/use-cases.rst b/docs/designs/claims/use-cases.rst
new file mode 100644
index 000000000000..5a618f0d0280
--- /dev/null
+++ b/docs/designs/claims/use-cases.rst
@@ -0,0 +1,39 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+#########
+Use Cases
+#########
+
+.. glossary::
+
+ Parallel :term:`domain builds`
+
+  When many domains need to be created and built, many :term:`domain builders`
+  compete for the same pools of memory, which can lead to inefficient NUMA
+  placement of :term:`guest physical memory` and thus suboptimal performance
+  for the domains.
+
+  NUMA-aware claims can help solve this problem and ensure that memory
+  is available on the appropriate NUMA nodes.
+
+ Domain builds
+
+  The process of constructing and configuring :term:`domains` by
+  :term:`domain builders`, which includes installing :term:`claims`,
+  :term:`populating` memory, and setting up other resources before the
+  :term:`domains` are started. When multiple :term:`domain builders` can
+  run in parallel, this is referred to as parallel domain builds, which can
+  benefit from NUMA-aware claims because the domain builders are competing for
+  the same pools of memory on the NUMA nodes.
+
+ Boot storms
+
+  It is common for many domains to be booted at the same time, such as during
+  system startup or when large numbers of domains need to be started.
+
+ Parallel migrations
+
+  Similar to :term:`boot storms`, except that the domains are being migrated
+  instead of booted, which can happen when other hosts are being drained
+  for maintenance (host evacuation) or when workloads are being rebalanced
+  across hosts.
diff --git a/docs/designs/index.rst b/docs/designs/index.rst
index 54d45c2bc321..1f4537957827 100644
--- a/docs/designs/index.rst
+++ b/docs/designs/index.rst
@@ -14,3 +14,4 @@ and for those interested in the internal workings of Xen.
 
    launch/index
    cache-coloring
+   claims/index
diff --git a/docs/glossary.rst b/docs/glossary.rst
index 5c3229a8c4fd..f73de9b85cf6 100644
--- a/docs/glossary.rst
+++ b/docs/glossary.rst
@@ -12,6 +12,7 @@ Glossary
      to create and manage other domains on the system.
 
    domain
+   domains
      A domain is Xen's unit of resource ownership, and generally has at the
      minimum some RAM and virtual CPUs.
 
@@ -58,13 +59,18 @@ Glossary
 
      In the code, "guest context" and "guest state" is considered in terms of
      the CPU architecture, and contrasted against hypervisor context/state.
-     In this case, it refers to all code running lower privilege privilege
-     level the hypervisor.  As such, it covers all domains, including ones
+     In this case, it refers to all code running lower privilege level than
+     the hypervisor.  As such, it covers all domains, including ones
      providing system services.
 
    hardware domain
      A :term:`domain`, commonly dom0, which shares responsibility with Xen
      about the system as a whole.
 
-     By default it gets all devices, including all disks and network cards, so
+     By default, it gets all devices, including all disks and network cards, and
      is responsible for multiplexing guest I/O.
+
+   hypercall
+   hypercalls
+     A mechanism for a :term:`guest` to request services from the hypervisor.
+     Hypercalls are analogous to system calls in a traditional operating system.
diff --git a/docs/guest-guide/dom/DOMCTL_claim_memory-data.mmd b/docs/guest-guide/dom/DOMCTL_claim_memory-data.mmd
new file mode 100644
index 000000000000..8d45322ba939
--- /dev/null
+++ b/docs/guest-guide/dom/DOMCTL_claim_memory-data.mmd
@@ -0,0 +1,43 @@
+%% SPDX-License-Identifier: CC-BY-4.0
+classDiagram
+class do_domctl["Args passed to <tt>do_domctl()</tt>"] {
+    +uint32_t cmd: XEN_DOMCTL_claim_memory
+    +uint32_t domain: Domain ID
+    +xen_domctl_claim_memory: Claim set
+}
+class xen_domctl_claim_memory["Claim set passed to <tt>do_domctl()</tt>"] {
+    +memory_claim_t* claims: Claim entries
+    +uint32_t nr_claims: Number of claim entries
+    +uint32_t pad: always 0 for future use
+}
+class memory_claim_t["Claim set: Array of claim entries"] {
+    +pages: Pages to claim
+    +node: Claim selector or node
+    +pad: always 0 for future use
+}
+class xc_domain_claim_memory["xc_domain_claim_memory()"] {
+    +xc_interface* xch
+    +uint32_t domid
+    +uint32_t nr_claims
+    +memory_claim_t* claims
+}
+class outstanding_pages["Total claims of domains"] {
+    global free = total_avail_pages - outstanding_claims
+    node free = node_avail_pages[node] - node_outstanding_claims[node]
+}
+class claim["XEN_DOMCTL_claim_memory"] {
+    +domain_set_outstanding_pages()
+    +domain_set_node_claims()
+}
+class domain["Claim fields in struct domain"] {
+    +outstanding_pages - Total outstanding claims of the domain
+    +node_claims - Sum of claims on all nodes of the domain
+    +claims[] - Array of claims on specific nodes
+}
+xen_domctl_claim_memory o--> memory_claim_t
+do_domctl o--> xen_domctl_claim_memory
+xc_domain_claim_memory ..> do_domctl: passes<br> <tt>Claim set</tt>
+xc_domain_claim_memory ..> claim : calls <tt>do_domctl()</tt>
+claim ..> xen_domctl_claim_memory : reads
+claim ..> domain : sets
+domain ..> outstanding_pages : updates outstanding claims
diff --git a/docs/guest-guide/dom/DOMCTL_claim_memory-seqdia.mmd b/docs/guest-guide/dom/DOMCTL_claim_memory-seqdia.mmd
new file mode 100644
index 000000000000..10ed8f4aa094
--- /dev/null
+++ b/docs/guest-guide/dom/DOMCTL_claim_memory-seqdia.mmd
@@ -0,0 +1,23 @@
+%% SPDX-License-Identifier: CC-BY-4.0
+sequenceDiagram
+
+actor DomainBuilder
+participant OcamlStub as OCaml stub for<br>xc_domain<br>claim_memory
+participant Libxc as xc_domain<br>claim_memory
+participant Domctl as XEN_DOMCTL<br>claim_memory
+#participant DomainLogic as claim_memory
+participant Alloc as domain<br>set<br>outstanding_pages
+
+DomainBuilder->>OcamlStub: claims
+OcamlStub->>OcamlStub: marshall claims -----> OCaml to C
+OcamlStub->>Libxc: claims
+
+Libxc->>Domctl: do_domctl
+
+Domctl->>Domctl: copy_from_guest(claim)
+Domctl->>Domctl: validate claim
+Domctl->>Alloc: set<br>outstanding_pages
+Alloc-->>Domctl: result
+Domctl-->>Libxc: rc
+Libxc-->>OcamlStub: rc
+OcamlStub-->>DomainBuilder: claim_result
diff --git a/docs/guest-guide/dom/DOMCTL_claim_memory-workflow.mmd b/docs/guest-guide/dom/DOMCTL_claim_memory-workflow.mmd
new file mode 100644
index 000000000000..372f2bb7a616
--- /dev/null
+++ b/docs/guest-guide/dom/DOMCTL_claim_memory-workflow.mmd
@@ -0,0 +1,23 @@
+%% SPDX-License-Identifier: CC-BY-4.0
+sequenceDiagram
+
+participant Toolstack
+participant Xen
+participant NUMA Node memory
+
+Toolstack->>Xen: XEN_DOMCTL_createdomain
+Toolstack->>Xen: XEN_DOMCTL_max_mem(max_pages)
+
+Toolstack->>Xen: XEN_DOMCTL_claim_memory(pages, node)
+Xen->>NUMA Node memory: Claim pages on node
+Xen-->>Toolstack: Claim granted
+
+Toolstack->>Xen: XEN_DOMCTL_set_nodeaffinity(node)
+
+loop Populate domain memory
+    Toolstack->>Xen: XENMEM_populate_physmap(memflags:node)
+    Xen->>NUMA Node memory: alloc from claimed node
+end
+
+Toolstack->>Xen: XEN_DOMCTL_claim_memory(0, NO_NODE)
+Xen-->>Toolstack: Remaining claims released
diff --git a/docs/guest-guide/dom/DOMCTL_claim_memory.rst b/docs/guest-guide/dom/DOMCTL_claim_memory.rst
new file mode 100644
index 000000000000..c0d0070a0c58
--- /dev/null
+++ b/docs/guest-guide/dom/DOMCTL_claim_memory.rst
@@ -0,0 +1,221 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+claim_memory
+************
+
+ .. c:macro:: XEN_DOMCTL_claim_memory
+
+  Hypercall command for installing claim sets for a domain.
+
+  This command allows :term:`domain builders` to install a :term:`claim set`
+  for a domain, which the Xen hypervisor tracks and enforces during memory
+  allocation.
+
+  The claimed memory is protected from other allocations and the domain's
+  memory requirements can be met even when other parallel domain builders
+  are also allocating memory for other domains in parallel.
+
+  :ref:`designs/claims/installation:Claim set installation` describes how the
+  hypervisor processes the claim sets installed via this hypercall command.
+
+Hypercall API
+-------------
+
+See :ref:`designs/claims/installation:Claim sets`
+for more details on the claim sets data structure.
+
+Definitions
+^^^^^^^^^^^
+
+Mode
+~~~~
+ .. c:macro:: XEN_DOMCTL_CLAIM_MEMORY_SET
+
+    Install the given claim set for the domain.
+
+ .. c:macro:: XEN_DOMCTL_CLAIM_MEMORY_GET
+
+    Retrieve the claim set for the current claims of the domain.
+
+Target selectors
+~~~~~~~~~~~~~~~~
+  .. c:macro:: XEN_DOMCTL_CLAIM_MEMORY_HOST
+
+    Special target selector for host-wide claims,
+    which can be satisfied from any NUMA node.
+
+  .. c:macro:: XEN_DOMCTL_CLAIM_MEMORY_LEGACY
+
+    Special target selector for legacy claims, which is interpreted as the
+    total memory target for the domain, with existing allocations subtracted
+    from it to determine the domain's new total host-wide outstanding claim.
+    It is provided for compatibility with existing :term:`domain builders`
+    and can only be used in a single-entry claim set.
+
+domctl.h structure
+^^^^^^^^^^^^^^^^^^
+
+ .. code-block:: C
+
+    struct xen_memory_claim {
+        uint64_aligned_t pages; /* Number of pages to claim */
+        uint32_t target; /* NUMA node or claim type like legacy or host-wide */
+        uint32_t cmd;    /* Command reserved for future use, initialize to 0 */
+    };
+    typedef struct xen_memory_claim memory_claim_t;
+    DEFINE_XEN_GUEST_HANDLE(memory_claim_t);
+
+    /* Special claim targets for the target field of memory_claim_t */
+    #define XEN_DOMCTL_CLAIM_MEMORY_HOST     0x80000000U /* Host-wide claims */
+    #define XEN_DOMCTL_CLAIM_MEMORY_LEGACY   0x40000000U /* Legacy semantics */
+
+    /*
+     * XEN_DOMCTL_claim_memory
+     *
+     * Install a claim set to claim memory for a guest domain. Claims work like
+     * tickets in exchange for allocating memory for a domain later.
+     */
+    struct xen_domctl_claim_memory {
+        /* IN/OUT: Array of struct xen_memory_claim */
+        XEN_GUEST_HANDLE_64(memory_claim_t) claim_set;
+        /* IN/OUT: Number of records in the claim_set array handle. */
+        uint32_t nr_entries;
+        uint32_t mode;
+    #define XEN_DOMCTL_CLAIM_MEMORY_GET 0U /* Get a claim set for the domain. */
+    #define XEN_DOMCTL_CLAIM_MEMORY_SET 1U /* Set a claim set for the domain. */
+    };
+
+
+C API by libxenctrl
+-------------------
+
+ .. c:function:: int xc_domain_claim_memory(xch, domid, mode, nr_entries, \
+                                            claim_set)
+
+   :param xch:       The :term:`libxenctrl` interface to use for the hypercall
+   :param domid:     The ID of the domain for which to install the claim set
+   :param mode:      The mode for the claim set installation
+   :param nr_entries: The number of entries in the claim set
+   :param claim_set:  The claim set to install for the domain
+   :type xch:        xc_interface *
+   :type domid:      uint32_t
+   :type mode:       uint32_t
+   :type nr_entries: uint32_t *
+   :type claim_set:  memory_claim_t *
+   :returns:         0 on success, or a negative error code on failure.
+
+   C API function for installing or retrieving claim sets for a domain
+   using the :expr:`XEN_DOMCTL_claim_memory` hypercall command.
+
+   This function allows :term:`domain builders` to install a
+   :term:`claim set` for a domain, which the Xen hypervisor
+   tracks and enforces during memory allocation and can also
+   be used to retrieve the current claim set for a domain.
+
+   When mode is :c:macro:`XEN_DOMCTL_CLAIM_MEMORY_SET`, the former mode
+   is used, where the function validates and installs the given claim set.
+   ``nr_entries`` specifies the number of entries in the ``claim_set`` array,
+   and ``claim_set`` points to the array of :c:type:`memory_claim_t` entries.
+
+   When mode is :c:macro:`XEN_DOMCTL_CLAIM_MEMORY_GET`, the function
+   retrieves the current claim set into the memory pointed to by ``claim_set``.
+   The number of claims retrieved is stored in the variable pointed to by
+   ``nr_entries``.
+
+   This function is part of the :term:`libxenctrl` library.
+
+   Corresponding OCaml bindings are also available for this function in the
+   :term:`Xenctrl` OCaml library, providing a convenient interface for OCaml
+   :term:`domain builders` to install claim sets for a domain.
+
+C API Usage example
+^^^^^^^^^^^^^^^^^^^
+
+ The example below shows how a domain builder can install a claim set and
+ later replace or clear it. :c:expr:`memory_claim_t` contains an additional
+ field for future expansion; zero-initialise the structure or use designated
+ initializers to ensure forward compatibility.
+
+ .. code-block:: C
+
+  #include <xenctrl.h>
+
+  void install_example_claims(xc_interface *xch, uint32_t domid)
+  {
+    /*
+     * Claim 1024 pages on node 0, 1024 pages on node 1, and by setting
+     * the total claim target to 3072 pages, an additional host-wide claim of
+     * 1024 pages which is never bound to any specific node is also installed.
+     */
+    memory_claim_t claims[] = {
+      {.pages = 1024, .target = 0},
+      {.pages = 1024, .target = 1},
+      {.pages = 1024, .target = XEN_DOMCTL_CLAIM_MEMORY_HOST},
+    };
+    xc_domain_claim_memory(xch, domid, ARRAY_SIZE(claims), claims);
+
+    /* Replace the claim set with claims on nodes 1, 2, and 3 */
+    memory_claim_t claims2[] = {
+      {.pages = 1024, .target = 1},
+      {.pages = 1024, .target = 2},
+      {.pages = 1024, .target = 3},
+    };
+    xc_domain_claim_memory(xch, domid, ARRAY_SIZE(claims2), claims2);
+
+    /* Release all remaining claims once the domain is built */
+    memory_claim_t clear[] = {
+      {.pages = 0, .target = XEN_DOMCTL_CLAIM_MEMORY_HOST}
+    };
+    xc_domain_claim_memory(xch, domid, ARRAY_SIZE(clear), clear);
+  }
+
+Using the Xenctrl OCaml bindings
+--------------------------------
+
+ The OCaml bindings for libxenctrl also provide an interface for installing
+ claim sets using the :c:expr:`XEN_DOMCTL_claim_memory` hypercall command.
+
+ The example below shows how to install a claim set and later release it
+ using the OCaml bindings.
+
+ .. code-block:: OCaml
+
+  let install_example_claims xch domid =
+    let claims = [|
+      { Xenctrl.pages = 1024L; node = 0l };
+      { Xenctrl.pages = 1024L; node = 1l };
+      { Xenctrl.pages = 3072L; node = XEN_DOMCTL_CLAIM_MEMORY_TOTAL };
+    |] in
+    Xenctrl.domain_claim_memory xch domid claims;
+
+  let release_all_claims xch domid =
+    let clear = [|
+      { Xenctrl.pages = 0L; node = XEN_DOMCTL_CLAIM_MEMORY_TOTAL };
+    |] in
+    Xenctrl.domain_claim_memory xch domid clear
+
+Call sequence diagram
+---------------------
+
+ The following sequence diagram illustrates the call flow for claiming memory
+ for a domain using this hypercall command from an OCaml domain builder:
+
+ .. mermaid:: DOMCTL_claim_memory-seqdia.mmd
+   :caption: Sequence diagram: Call flow for claiming memory for a domain
+
+Claim workflow
+--------------
+
+ This diagram illustrates a workflow for claiming and populating memory:
+
+ .. mermaid:: DOMCTL_claim_memory-workflow.mmd
+   :caption: Workflow diagram: Claiming and populating memory for a domain
+
+Used functions & data structures
+--------------------------------
+
+ This diagram illustrates the key functions and data structures involved in
+ installing claims via the :c:expr:`XEN_DOMCTL_claim_memory` hypercall command:
+
+ .. mermaid:: DOMCTL_claim_memory-data.mmd
+   :caption: Diagram: Function and data relationships for installing claims
diff --git a/docs/guest-guide/dom/index.rst b/docs/guest-guide/dom/index.rst
new file mode 100644
index 000000000000..cb33a230eb5d
--- /dev/null
+++ b/docs/guest-guide/dom/index.rst
@@ -0,0 +1,14 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+`DOMCTL Hypercalls`
+===================
+
+Through `DOMCTL` `hypercalls`, `toolstacks` in privileged domains can perform
+operations related to domain management.  This includes operations such as
+creating, destroying, and modifying domains, as well as querying domain
+information.
+
+.. toctree::
+   :maxdepth: 2
+
+   DOMCTL_claim_memory
diff --git a/docs/guest-guide/index.rst b/docs/guest-guide/index.rst
index 5455c67479cf..d9611cd7504d 100644
--- a/docs/guest-guide/index.rst
+++ b/docs/guest-guide/index.rst
@@ -3,6 +3,29 @@
 Guest documentation
 ===================
 
+Xen exposes a set of hypercalls that allow domains and toolstacks in
+privileged contexts (such as Dom0) to request services from the hypervisor.
+
+Through these hypercalls, privileged domains can perform privileged operations
+such as querying system information, memory and domain management,
+and enabling inter-domain communication via shared memory and event channels.
+
+These hypercalls are documented in the following sections, grouped by their
+functionality. Each section provides an overview of the hypercalls, their
+parameters, and examples of how to use them.
+
+Hypercall API documentation
+---------------------------
+
+.. toctree::
+   :maxdepth: 2
+
+   dom/index
+   mem/index
+
+Hypercall ABI documentation
+---------------------------
+
 .. toctree::
    :maxdepth: 2
 
diff --git a/docs/guest-guide/mem/XENMEM_claim_pages.rst b/docs/guest-guide/mem/XENMEM_claim_pages.rst
new file mode 100644
index 000000000000..5128317cb821
--- /dev/null
+++ b/docs/guest-guide/mem/XENMEM_claim_pages.rst
@@ -0,0 +1,102 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+.. _XENMEM_claim_pages:
+
+claim_pages
+***********
+
+ .. note:: This API is deprecated;
+    Use :c:expr:`XEN_DOMCTL_claim_memory` for new code.
+
+ .. c:macro:: XENMEM_claim_pages
+
+   Hypercall command for installing legacy claims.
+
+   :ref:`designs/claims/installation:Legacy claim installation` describes
+   the API for installing legacy claims via this hypercall command.
+
+   It passes a single claim entry to the hypervisor via a
+   :c:struct:`xen_memory_reservation` structure with the page count in the
+   :c:member:`xen_memory_reservation.nr_extents` field and the domain ID
+   :c:member:`xen_memory_reservation.domid` field. The claim entry's target is
+   implicitly global, and the legacy claim path is invoked in the hypervisor
+   to process the claim:
+
+Data structure for the hypercall command for installing legacy claims:
+
+ .. c:struct:: xen_memory_reservation
+
+   Structure for passing claim requests to the hypervisor via
+   :c:macro:`XENMEM_claim_pages` and other memory :term:`hypercalls`.
+
+   .. code-block:: C
+
+      struct xen_memory_reservation {
+          xen_pfn_t  * extent_start; // not used for XENMEM_claim_pages
+          xen_ulong_t  nr_extents;   // pass page counts to claim
+          unsigned int extent_order; // must be 0
+          unsigned int mem_flags;    // XENMEMF flags.
+          domid_t      domid;        // domain to apply the claim to
+      };
+      typedef struct xen_memory_reservation xen_memory_reservation_t;
+
+   .. c:member:: xen_ulong_t nr_extents
+
+      For :c:macro:`XENMEM_claim_pages`, the page count to claim.
+
+   .. c:member:: domid_t domid
+
+      Domain ID for the claim.
+
+   .. c:member:: unsigned int mem_flags
+
+      Not used for :c:macro:`XENMEM_claim_pages` (must be 0)
+
+      In principle, it supports all the :c:expr:`XENMEMF_*` flags, including
+      the possibility of passing a single NUMA node ID, but using it to pass
+      a NUMA node ID is not currently supported by the legacy claim path.
+
+      During review of the NUMA extension of the legacy claim path, it
+      was used, but the request was made to instead create a new hypercall
+      which is now :c:macro:`XEN_DOMCTL_claim_memory` with support for claim sets.
+
+   .. c:member:: unsigned int extent_order
+   .. c:member:: xen_pfn_t *extent_start
+
+      Both are not used for :c:macro:`XENMEM_claim_pages`, but are used for other
+      memory :term:`hypercalls`.
+
+See :ref:`designs/claims/installation:Legacy claim installation` for details.
+
+API example using libxenctrl
+----------------------------
+
+ The example below claims pages, populates the domain,
+ and then clears the claim.
+
+ .. code-block:: C
+
+  #include <xenctrl.h>
+
+  int build_with_claims(xc_interface *xch, uint32_t domid,
+                        unsigned long nr_pages)
+  {
+      int ret;
+
+      /* Claim pages for the domain build. */
+      ret = xc_domain_claim_pages(xch, domid, nr_pages);
+      if ( ret < 0 )
+          return ret;
+
+      /* Populate the domain's physmap. */
+      ret = xc_domain_populate_physmap(xch, domid, /* ... */);
+      if ( ret < 0 )
+          return ret;
+
+      /* Release any remaining claim after populating the domain memory. */
+      ret = xc_domain_claim_pages(xch, domid, 0);
+      if ( ret < 0 )
+          return ret;
+
+      /* Unpause the domain to allow it to run. */
+      return xc_unpause_domain(xch, domid);
+  }
diff --git a/docs/guest-guide/mem/index.rst b/docs/guest-guide/mem/index.rst
new file mode 100644
index 000000000000..042fb88bfbeb
--- /dev/null
+++ b/docs/guest-guide/mem/index.rst
@@ -0,0 +1,12 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+`MEMCTL Hypercalls`
+-------------------
+
+The XENMEM hypercall interface allows guests to perform various control
+operations related to memory management.
+
+.. toctree::
+   :maxdepth: 2
+
+   XENMEM_claim_pages
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue May 05 18:47:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 18:47:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301040.1575383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKKnp-0003xO-5d; Tue, 05 May 2026 18:47:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301040.1575383; Tue, 05 May 2026 18:47:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKKnp-0003wu-1T; Tue, 05 May 2026 18:47:29 +0000
Received: by outflank-mailman (input) for mailman id 1301040;
 Tue, 05 May 2026 18:47:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKKnn-0003vQ-Ha
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 18:47:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKKnm-006wcY-Ni
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 20:47:26 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fa3b3e-e002-0a2a0a5209dd-0a2a45048b08-2
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 20:47:26 +0200
Received: from [40.107.208.28]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fa3b3c-1dec-0a2a45040019-286bd01cf0c8-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 20:47:26 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS7PR03MB8194.namprd03.prod.outlook.com (2603:10b6:8:266::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Tue, 5 May
 2026 18:47:23 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Tue, 5 May 2026
 18:47:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rRy3wzvwLgcqqTZqMD0ioAWunLTz8E9HwqfJ4/ncYzkFErcL4TgUDcfMR8QdgUz/pwsm5300/WObT/80n8OTtDXS2NNJJTO/PMWqnJb/p30Fa23Xo/GAVj4de9GJcPAZGulnw84RFSm1COZow72NNYeRhdn/XQqtCw7q5iwzEwVtunnfj82zn7mRKTtm8Xh63kMltL5jHtuiK0KGajuOk8/tASJqMRBt0PidKBKOq/UJK263jpQfHXwg8nkcgI2hLqspfKAk0Jn4PV3ZQDeTTilcSQ3vkU6ulzfk3zgJP9XHgNajqEwhBkQaynNeirHyGM52OW7gn2oyUEi8+MDUCQ==
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=gaAzmLR88ohHdVhTv5+l411VaehP/eneHc6BE5CTaGg=;
 b=XOTdnXXOXvRg2JQub9fm29A4YxBToG7rTmsw5GdWErUeThpBBRYeIzKgDe4g2/tGzfwGtgYAJorD07aEG8wkwN7wkYJ4zBVGMgnxGB+ESvA6AWwcK/8nfrz8NrfhzswsHVJLpCoxS3Tivi1YEfNMcBrDU27lo7LiXwxvTmuyX6ROBngZ16kpJBTMsUrGWMl1MB0jn45BPLgG6AHSEkhiwZGHJmyUTCdqVDUlXjqdGlrASXSa2TwvzhBRNesIcs2Pqyj8rC717z6REgZz1YLWXI6kG8YPjJAntn6da+kmOjbQwTjnTt/bYzQpbyEKgnB3CS0O6iiP+xI9J+oKdYNgbg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gaAzmLR88ohHdVhTv5+l411VaehP/eneHc6BE5CTaGg=;
 b=MYjmoouJOVeI9q9xk9iPyTCwnSQOsXKa2RKfiuZIcrltQX2zo/zu+FOF6Y5kw+8X6aXEzgW1l6ES3bN8tBaR1ctxwYRrO1q24y2Tvx1WXkvusdrplzFhYk5OSKpe4YUFwDvQ2GQzLbRaTP0DqP/BYPIdWLiMC6baJjX1QJLWpDA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 5 May 2026 20:47:19 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: Problem with PCI-passthrough to PV guest
Message-ID: <afo7NyXOEsDsVB6i@macbook.local>
References: <04c8ed4e-4e99-46ae-b83d-af9031f5b622@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <04c8ed4e-4e99-46ae-b83d-af9031f5b622@suse.com>
X-ClientProxiedBy: MR1P264CA0187.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:58::20) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB8194:EE_
X-MS-Office365-Filtering-Correlation-Id: b278bc9d-caef-4c0d-3a76-08deaad6be63
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	PnhE2JVDZQ9QtButdjZfFTKrGolC2O8xsS726+QlS0hiDUlAZK+20Wny7XQCwGP6C2d/vaYH99z6e5klZBBkXyJMyK/xK7a8nAcfR+oE/ged5SxSdbb6C4CFLqZwYlsrRGUL2jO3aYjw3Zc2yZuwKZMssb2DFNagilgOlwUbwbUdNW4yXkRUbiNqu0qLGbZ5FiPh+dgwT81QgupObZQip0XxUvzJCF3uesHSXkOCcSbQCuRYrGuzfZfIyc/eJ8u/ORbkh1ZhhkveB0HtfDbNgV7p+Xy7OrkkkrdN1CMsaYEHyrEy84DQdjYhKrtxDgh7fLPutJMjhx/KlqsGjARJgiZiStu1MXS7TM7izEcT6HEJjGpaFP5kzp3sQyYZSqAEOhKkANelZyeJfJdO12cN4ef9c8tFToT+nxr9ON8z+BiLSdFJdLEEN0a0UVfQfd1X0D8+KsKEhqysQTvRJXU/sGsZJlCiIaVOe75Nk09bP/a8vP15xmxU+aDrHVzxIeW/SoE02rmjEG75g8BO/EHp6g+SAfNkC05p0fqCSFalnvp3QlOpSW2abIfWftjMcSqEQF7M1JmlogwOFh2IGaIID6hol0HnyyIIVW4s7icKKNYN7hBu989Hff3PoT85ickR5BDG/Exhfl5OEHfRT+e1YEHZN3hSFd+JC2d63wbpYYBruvYvo6QvztCc3TVqvSNC
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dUNpRFd5UmMrR2xpMEZ5Kyt1SXFQWGF2MHE4eWRsdTZJQ3VmY3FLUm8yejF2?=
 =?utf-8?B?YTE0RzFMaXNsZW9vaW82YzJ0NUpTMFRHQTRPcUUzU3AzQktiNGRmanZ0U0FU?=
 =?utf-8?B?VUhJbGF2UWdHK3dqRmt3ZVo2R25tWW56Z1YwRGpRUGhaa0toeDRuKzRCS3ph?=
 =?utf-8?B?aGxuSEgyOG1nM3Eyam5IVC82aFNZV3FLVE1ha1hLcld1SjNqMi9mQjBnUGk0?=
 =?utf-8?B?Y3FmanlQdVF4TEtVeitDWkdSbHhCS3ByMXY0TzIzVEZ5VVlkdUN0YWZsVnc5?=
 =?utf-8?B?NVdkKzJPQ0Y2blYvQW4vZkNMNDhXZUNqWjBiUDJDTnpyWlJRMFEvSThpUG5G?=
 =?utf-8?B?cFdqc2U4bEpIU0Npb3AzemhNdmZoWGRabkczWG5Rd0ZZblJncUN5cFQ5L2FD?=
 =?utf-8?B?S0c3d3JlbWlzRW1YaFZ4OGZKYVc2bElsYXNncDBWYmcrREtqMWljRitaa1Fx?=
 =?utf-8?B?WVVNVGJzTGhENUFpRmQxQkxLNHk2d0xNdnM2OWdrNHk0RGFUYzlCVi9DSE1X?=
 =?utf-8?B?R0UzejNzQVFrbE1QZm9YcWZnS0tvdEV1RHZBZWk4Zk0rOHdKais1MlhKeEs2?=
 =?utf-8?B?ci95a2NGTWdUUkI1bFZzNnp5Y2QvU3B5U09PNi9pMnpTTlFrLzNBdnhBSHRr?=
 =?utf-8?B?ZXFGa3A2SFozczR5akFpdlZyWU9Ldk5NTm1vYjVCa20vYWxzMUJVMGFUbkhq?=
 =?utf-8?B?aXRtUWplczg0RDIwYkI1SjNKVG55SUxTbkE5bndrK2xlUDdSZ2JUNjViTHRK?=
 =?utf-8?B?anp3cDNGTGM2UjBNODltWUo5SHVrU3JpMUhBYlpBNXY4SklRbGZOZmN2Yk5m?=
 =?utf-8?B?Y3NrRnhMNS85L3RzZ1RzejRnbUxYUTJYcTV3ZlhZQjRzSzdUdHV6dDVBVDVZ?=
 =?utf-8?B?dDhhUkFHWXRmc3VkaTdQdm5NS3hybk1tUzA4UTBQOUY0cDV4WW5vYmJMcEpT?=
 =?utf-8?B?M1FIRGRqSVNwYkN2bkovelFOeExVb2d6bHVEa3BRKzFrbkl1ZldhNjN2eldT?=
 =?utf-8?B?SGxabk9HYkxWUGlFaFhVR2JLNWxRSzlNckQ4bkt5NnRhWnQ1OHhiUzNXRFp0?=
 =?utf-8?B?YnVIeWNhQ05HQ1JXRHJGSkllSEpMeExxRDZMeS9vMUIxVVlNamNxQjYreXkw?=
 =?utf-8?B?cWR0OWl4LzgzQ0dIaE9SK3M0OXIyUG8wWDJTWWtKSFQ0cDREdFRqVVB1NUJr?=
 =?utf-8?B?SmZ1dWpIVGlTWFh4Q3pBWnFWenZ2ZHdjOG1vV3lFd1BwK2wzdzZIVFhXd1N6?=
 =?utf-8?B?ZGxKQjlmaFg3QWxhOHc1UzF6SGFJcjFpWmhqRVgzWkZRSFBsMlBvWTVUNFlo?=
 =?utf-8?B?b3JnM0ozNUx1SXNCN3R0MFdBRjdBTlNtZDF6THN6NURrU24wQS9oYXJFRG9u?=
 =?utf-8?B?S3RMdnRhL25WZWw3emRvSmZqakJia3lFSmFWUW5JMHFBeEh0NFlWMDY4SGsz?=
 =?utf-8?B?Y2Q1K216UE43d2MrYnF3aGhOYmM0L3NNN1Nldy9mdFAwaFJ1Nm1oS3Nrc0J4?=
 =?utf-8?B?RFdFTmEvNFZYdzNtUWhHdUpiV1NrMldQYjFqSCtOTEwvZHovdlRCSjJ1ZWFo?=
 =?utf-8?B?NFVUN3lGSUo3N1htdS9hY2hjZFEvWlhhdjR0UUZQOTNnQTkxWXdhWldUK2dl?=
 =?utf-8?B?UjBqY1VRbFdBUDY1TU84YnpQVGJmeHV5alovUEx3ZmNMRm1LdXdXRnpxQ1A2?=
 =?utf-8?B?ajRDbmkveU1tMVZSa1lpUFJzaGRPVm9kK0ZGOGR6Nkg3U2JyTDZoMmU3ODM0?=
 =?utf-8?B?UEZpRjNWbTAvYlZmeHdXejBOYmtCbzB1ZFFzR1FscTNQQ1MzY2h4ZjZueUhR?=
 =?utf-8?B?SnFuOXlhbDJMVGpiRjFHbk1lUFRJdk1idnBwSmg3S2oxbWpZeFhDRjZYcDJz?=
 =?utf-8?B?U2RJN0JLTEU0VVg2dG8xWThFOUFtSWs1NytpVDhQZW5xNWFOTWtkMjJUNVJF?=
 =?utf-8?B?WURrd1dnaU9Id20xdS9ISFpXeExuVGtZOXJKK0NxaUxzakZnVUwrR3Ywc2dL?=
 =?utf-8?B?cW9oWFgrdG14M21RMWdaU1lMZDFxc01rMGMrdlZwVXBQT1VDbVUrUVg5M1d5?=
 =?utf-8?B?b0ZScXQ5YXJDUnpqME9KSXlERXlVOEI5VnpjWWYzaU9Kd0UyU3d4K0FPNWE0?=
 =?utf-8?B?dHZBTDgvWllJRFF4RWRaUngyaENsR2ZTUFNlUXFvZDc1bzQ3K0M0R1BQM3J6?=
 =?utf-8?B?YXZJeFczR1lhRzQ4MkxGaFdobEhrNFdCV3RRQkJWZitNenJDcFFxQStHd2Fy?=
 =?utf-8?B?WDV3ZCt1OUdwb0hWQkJRTGNoOCsydjg2M2VnUm95Ym5oQ0dGOVg3N3d4Q1J4?=
 =?utf-8?B?TktyTnl2NmZSUWVCd01PTXkzQWZpOHd6Z2U0OThObTd3bERmNDQzdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b278bc9d-caef-4c0d-3a76-08deaad6be63
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 18:47:23.0095
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: F1KM3l7GfWkqbHoc0P1RFFPVFFNOEWuNnhIl9xYuucwMiAA5czgUM7K4HLJnxmG8orhglTQuq/V9Ss3lD1aQ0Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB8194
X-purgate-ID: tlsNG-ebf023/1778006846-2AD643FF-2B68D117/0/0
X-purgate-type: clean
X-purgate-size: 3902

On Tue, May 05, 2026 at 05:53:31PM +0200, Jürgen Groß wrote:
> SUSE QA is seeing a problem with PCI-passthrough of a SR-IOV to a PV guest
> running a 6.4 based kernel, but I can reproduce the problem with upstream
> kernel, too.
> 
> The guest is configured with "e820_host=1", but the PCI region on the host
> isn't marked as "reserved" in the memory map, so it won't be reserved in
> the either.

But that's how it should be, device BARs shouldn't be in reserved
regions on the memory map (albeit we have seen this fairly often).

> As the guest doesn't have the ACPI table available describing the PCI regions,
> /proc/iomem in the guest won't include those regions as used, resulting in
> the kernel's resource management to use those areas for potential memory:
> 
>  resource: avoiding allocation from e820 entry [mem 0x78edc000-0x79868fff]
>  resource: avoiding allocation from e820 entry [mem 0x79d2a000-0x8fffffff]
>  resource: remaining [mem 0x0000000090000000-0x00000000ffdfffff] available
>  resource: avoiding allocation from e820 entry [mem 0xc7ffc000-0xc7ffcfff]
>  resource: remaining [mem 0x0000000090000000-0x00000000c7ffbfff] available
> 
> dom0 /proc/iomem:
>  ...
>  80000000-8fffffff : PCI MMCONFIG 0000 [bus 00-ff]
>  90000000-c7ffbfff : PCI Bus 0000:00    ← PCI MMIO window begins here
>    90000000-900fffff : PCI Bus 0000:01  ← I350 VFs assigned in this range
>    c6000000-c70fffff : PCI Bus 0000:04
> 
> dom0 e820 map:
>  ...
>  Xen: [mem 0x0000000079869000-0x0000000079d29fff] ACPI NVS
>  Xen: [mem 0x0000000079d2a000-0x000000008fffffff] reserved
>  Xen: [mem 0x00000000c7ffc000-0x00000000c7ffcfff] reserved
>  Xen: [mem 0x00000000fbffc000-0x00000000fbffcfff] reserved
>  ...
> 
> domU /proc/iomem:
>  ...
>  00100000-78f06fff : System RAM
>    01000000-01ffffff : Kernel code
>    ...
>  90000000-97ffffff : System RAM

But that's not in the mfn address space, it's just RAM in the pfn
space of the guest?

>  fee00000-fee00fff : Local APIC
> 
> domU e820 map:
>  ...
>  Xen: [mem 0x0000000079869000-0x0000000079d29fff] ACPI NVS
>  Xen: [mem 0x0000000079d2a000-0x000000008fffffff] reserved
>  Xen: [mem 0x00000000c7ffc000-0x00000000c7ffcfff] reserved
>  Xen: [mem 0x00000000fbffc000-0x00000000fbffcfff] reserved
>  ...
> 
> The VF is showing up near 0x90000
>  pci 0000:00:00.4: [8086:1520] type 00 class 0x020000
>  pci 0000:00:00.4: reg 0x10: [mem 0x90004000-0x90007fff 64bit pref]
>  pci 0000:00:00.4: reg 0x1c: [mem 0x90024000-0x90027fff 64bit pref]

While the above addresses are in the mfn address space?  I assume this
causes issues because MMIO is identity mapped in the pfn space.

>  pcifront pci-0: New device on 0000:00:00.4 found.
>  pcifront pci-0: claiming resource 0000:00:00.4/0
>  pci 0000:00:00.4: can't claim BAR 0 [mem 0x90004000-0x90007fff 64bit pref]:
> address conflict with System RAM [mem 0x90000000-0x97ffffff]
>  pcifront pci-0: Could not claim resource 0000:00:00.4/0! Device offline.
> Try using e820_host=1 in the guest config.
>  pcifront pci-0: claiming resource 0000:00:00.4/3
>  pci 0000:00:00.4: can't claim BAR 3 [mem 0x90024000-0x90027fff 64bit pref]:
> address conflict with System RAM [mem 0x90000000-0x97ffffff]
>  pcifront pci-0: Could not claim resource 0000:00:00.4/3! Device offline.
> Try using e820_host=1 in the guest config.
> 
> My first idea for solving this was to add the PCI regions from dom0's
> /proc/iomem to the e820 map of the guest, but this is more a hack than a sane
> solution.
> 
> Thoughts?

I think the issue is that the guest has created a pfn RAM range when
there is none in the provided e820.  When using "e820_host=1" the
guest should be limited to creating pfns only in the ranges marked as
RAM on the host e820 memory map.  Creating a pfn range over a hole in
the e820 shouldn't happen.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Tue May 05 19:17:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 19:17:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301050.1575395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKLGc-0000Kd-AY; Tue, 05 May 2026 19:17:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301050.1575395; Tue, 05 May 2026 19:17:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKLGc-0000KW-7r; Tue, 05 May 2026 19:17:14 +0000
Received: by outflank-mailman (input) for mailman id 1301050;
 Tue, 05 May 2026 19:17:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKLGa-0000Jy-UC
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 19:17:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKLGY-003DOq-Ry
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 21:17:10 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fa4218-5cb7-0a2a0a5109dd-0a2a450cb1c8-20
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 21:17:10 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fa4236-62f1-0a2a450c0019-d155802de8a1-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 21:17:10 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-488ff90d6c7so53935625e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 12:17:10 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48a81ed6b89sm418085185e9.1.2026.05.05.12.17.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 May 2026 12:17:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1778008630; x=1778613430; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=siQWjo0zkKVV3Ea+j1v/5KOUec3pF3WyM2cdpzEDjsg=;
        b=I8AZ4G4JVDT3tsZaHFjjbfV0wjdG2wgz+ij8r03p4aTAXbD86DIl2CjQIjJpUETzvy
         uyhKuC0kbqm6COJh2fWIxXtkezrzUiiDALOrxCk8nme4J0Jw1FCtXACDRUDeY75pSKbf
         jOkCOLFYuozIqTkbdYTR3PsGoDqNI7BSuGXLQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778008630; x=1778613430;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=siQWjo0zkKVV3Ea+j1v/5KOUec3pF3WyM2cdpzEDjsg=;
        b=Ztg/a7wa6WixLuR8tLjkDY7RGiEnrVxJBw4Zs8z9XmqeZ+j+4FN60W6rReCyJyDnsd
         yO1yBlromxAByuPdD0x5iAtlbMN6M5y6xcs6iKmYyAc7Hm0grEZFogkDA6BO4QVlowyN
         WjmAwZzQ5HzujQLonQ7a/mxnom8A3hO5OQx1lLgNiExQYP1cH4eiFLJAHnw0F7f4Rtvb
         oeLrHTiiF4KzVzcYFEvMnuDDZ+ZBHkOyb91vHKW6CEpCi3V66h/0ryaOMdJGTqppefS4
         Dp9Yn2s/GCGw6Nkpn4AhJTntqMyhbqqfUnDl52v5gw+d7HGeed6ESiGRybLKn31Ei5Zd
         ueug==
X-Gm-Message-State: AOJu0YzusoRB77Uc16JSnB+qEn67AFWO+VT4uc7Dyikn1TPp+ZlqLzRx
	YCgBU7ncz7Gwbv9ZUUf2y+XC8YRIeBmWuG3/NgGeLOT1s0hzr02WcXocf3gAZMbZ8CrULGWl3a6
	6JTB+zMM=
X-Gm-Gg: AeBDieuzmFDJDlZPUfBuBRgaXgp9X9xaQ+cq3mUbAFdxjLezWOjEMBHb0sGIWeUMHn+
	LvfcCWsaXtjiUdroQ/HBDMv0NniaeQIWwz8sJnRYvMb7DzdC9JWXTZ7CzOwxfGUezoDpNPivKQU
	HsY6DnYzeDXiqtCw8+XaG7XsL7cs9acwpCwoCqAC5a8u3M7WcoDrXrTuIzdU2N1KNrpGOD6BoFl
	cnNIqz3FM14tyXd1kOi3WXWM8CdufgcylhhGH91Hzqe9xZYjG0ozAdpTdVJ0DAWl+bNQ6X6OlV5
	TrtUIzi5xTjN0Wgv1DU4VwvKlfYS1or07h2vDNds6gSNNBlwHZD989x8ZzmaEEZAGucF8KV2wuB
	B/9xjF+dUgeuRbWX0uCbSBkhHbwJ3nApIGGHyjj1uuzdvxT7mdebUY4tW7rgnT0iUX3PI+eorjA
	LWJmlhNMipdfGF6f4DYoLJCW016e31t3kkroFelOfAgs6/GsrqyzpLmML9r7wEdcT/uEDWCgdQv
	SLaXe5ChvYm9go=
X-Received: by 2002:a05:600c:c107:b0:48a:52d4:888c with SMTP id 5b1f17b1804b1-48e51e0bb23mr7842215e9.3.1778008629597;
        Tue, 05 May 2026 12:17:09 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2] CI: Refresh the Debian 12 cppcheck container
Date: Tue,  5 May 2026 20:17:08 +0100
Message-Id: <20260505191708.1432070-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1778008630-6CF62CF5-CDC01EEC/10/63158204843
X-purgate-type: spam
X-purgate-size: 7755

From: Javi Merino <javi.merino@cloud.com>

Rework the container to derive from bookworm-slim, and to build and run
cppcheck as a normal user.  User heredocs for readability and use apt-get
--no-install-recommends to keep the size down.

Changed the libpcre3-dev dependency to libpcre3, as the -dev package
is only needed for building, not for running.

Signed-off-by: Javi Merino <javi.merino@cloud.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Doug Goldstein <cardoe@cardoe.com>

v2:
 * Switch to bookworm-slim
 * Perform a SHA check on downloaded content

I've deployed this container already.  The new size is 233.47 MiB, as opposed
to 307.40 MiB before (as given by Gitlab).

  https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2502273068
---
 .../debian/12-arm64v8-cppcheck.dockerfile     | 86 +++++++++++++++++++
 .../build/debian/bookworm-cppcheck.dockerfile | 54 ------------
 automation/gitlab-ci/build.yaml               | 12 +--
 automation/scripts/containerize               |  2 +-
 4 files changed, 93 insertions(+), 61 deletions(-)
 create mode 100644 automation/build/debian/12-arm64v8-cppcheck.dockerfile
 delete mode 100644 automation/build/debian/bookworm-cppcheck.dockerfile

diff --git a/automation/build/debian/12-arm64v8-cppcheck.dockerfile b/automation/build/debian/12-arm64v8-cppcheck.dockerfile
new file mode 100644
index 000000000000..50d2614453de
--- /dev/null
+++ b/automation/build/debian/12-arm64v8-cppcheck.dockerfile
@@ -0,0 +1,86 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/arm64/v8 debian:bookworm-slim AS builder
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV CPPCHECK_VERSION=2.7
+
+# dependencies for cppcheck build
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    useradd --home /build --create-home user
+
+    apt-get update
+
+    DEPS=(
+        build-essential
+        ca-certificates
+        curl
+        libpcre3-dev
+        python-is-python3
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+
+    rm -rf /var/lib/apt/lists*
+EOF
+
+WORKDIR /build
+USER user
+
+# cppcheck release build (see cppcheck readme.md)
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    curl -fsSLO https://github.com/danmar/cppcheck/archive/"$CPPCHECK_VERSION".tar.gz
+    echo "5fd20549bb2fabf9a8026f772779d8cc6a5782c8f17500408529f7747afbc526  ${CPPCHECK_VERSION}.tar.gz" | sha256sum -c -
+
+    tar oxf "$CPPCHECK_VERSION".tar.gz
+    cd cppcheck-"$CPPCHECK_VERSION"
+
+    MAKE_OPTS=(
+        MATCHCOMPILER=yes
+        DESTDIR=/build/out
+        FILESDIR="/usr/share/cppcheck"
+        HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function"
+    )
+    make install -j$(nproc) "${MAKE_OPTS[@]}"
+EOF
+
+FROM --platform=linux/arm64/v8 debian:bookworm-slim
+COPY --from=builder /build/out/usr/bin/cppcheck /usr/bin/cppcheck
+COPY --from=builder /build/out/usr/share/cppcheck /usr/share/cppcheck
+
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+# dependencies for cppcheck analysis including Xen-only build/cross-build
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    useradd --create-home user
+
+    apt-get update
+
+    DEPS=(
+        bison
+        build-essential
+        python-is-python3
+        libpcre3
+        flex
+        gcc-arm-linux-gnueabihf
+        gcc-x86-64-linux-gnu
+    )
+
+    apt-get --yes --no-install-recommends install "${DEPS[@]}"
+
+    rm -rf /var/lib/apt/lists*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/debian/bookworm-cppcheck.dockerfile b/automation/build/debian/bookworm-cppcheck.dockerfile
deleted file mode 100644
index fe4cd4a1aaab..000000000000
--- a/automation/build/debian/bookworm-cppcheck.dockerfile
+++ /dev/null
@@ -1,54 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/arm64/v8 debian:bookworm AS builder
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV CPPCHECK_VERSION=2.7
-ENV USER root
-
-# dependencies for cppcheck build
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        curl \
-        build-essential \
-        python-is-python3 \
-        libpcre3-dev
-
-RUN mkdir /build
-WORKDIR /build
-
-# cppcheck release build (see cppcheck readme.md)
-RUN curl -fsSLO https://github.com/danmar/cppcheck/archive/"$CPPCHECK_VERSION".tar.gz && \
-    tar xvzf "$CPPCHECK_VERSION".tar.gz && \
-    cd cppcheck-"$CPPCHECK_VERSION" && \
-    make install -j$(nproc) \
-        MATCHCOMPILER=yes \
-        FILESDIR=/usr/share/cppcheck \
-        HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function"
-
-FROM --platform=linux/arm64/v8 debian:bookworm
-COPY --from=builder /usr/bin/cppcheck /usr/bin/cppcheck
-COPY --from=builder /usr/share/cppcheck /usr/share/cppcheck
-
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# dependencies for cppcheck analysis including Xen-only build/cross-build
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        python-is-python3 \
-        libpcre3-dev \
-        flex \
-        bison \
-        gcc-arm-linux-gnueabihf \
-        gcc-x86-64-linux-gnu \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index eff96beaa5c3..8fb68004a00d 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -510,26 +510,26 @@ yocto-qemux86-64:
 
 # Cppcheck analysis jobs
 
-debian-bookworm-gcc-cppcheck:
+debian-12-x86_64-gcc-cppcheck:
   extends: .gcc-x86-64-cross-build
   variables:
-    CONTAINER: debian:bookworm-cppcheck
+    CONTAINER: debian:12-arm64v8-cppcheck
     CROSS_COMPILE: /usr/bin/x86_64-linux-gnu-
     CPPCHECK: y
     HYPERVISOR_ONLY: y
 
-debian-bookworm-gcc-arm32-cppcheck:
+debian-12-arm32-gcc-cppcheck:
   extends: .gcc-arm32-cross-build
   variables:
-    CONTAINER: debian:bookworm-cppcheck
+    CONTAINER: debian:12-arm64v8-cppcheck
     CROSS_COMPILE: /usr/bin/arm-linux-gnueabihf-
     CPPCHECK: y
     HYPERVISOR_ONLY: y
 
-debian-bookworm-gcc-arm64-cppcheck:
+debian-12-arm64-gcc-cppcheck:
   extends: .gcc-arm64-build
   variables:
-    CONTAINER: debian:bookworm-cppcheck
+    CONTAINER: debian:12-arm64v8-cppcheck
     CPPCHECK: y
     HYPERVISOR_ONLY: y
 
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index 743567cb772a..ad3e2372703f 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -40,7 +40,7 @@ case "_${CONTAINER}" in
     _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;;
     _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;;
     _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;;
-    _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;;
+    _bookworm-cppcheck) CONTAINER="${BASE}/debian:12-arm64v8-cppcheck" ;;
     _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
     _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
     _xenial) CONTAINER="${BASE}/ubuntu:16.04-x86_64" ;;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue May 05 20:02:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 20:02:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301069.1575405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKLyQ-0008Pv-Jd; Tue, 05 May 2026 20:02:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301069.1575405; Tue, 05 May 2026 20:02:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKLyQ-0008Po-G6; Tue, 05 May 2026 20:02:30 +0000
Received: by outflank-mailman (input) for mailman id 1301069;
 Tue, 05 May 2026 20:02:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1wKLyO-0008Pi-Qt
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 20:02:28 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1wKLyO-0015nh-2M
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 20:02:28 +0000
Received: from mail-lj1-f180.google.com ([209.85.208.180])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1wKLyO-00GDfj-27
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 20:02:28 +0000
Received: by mail-lj1-f180.google.com with SMTP id
 38308e7fff4ca-38e97e73234so54819981fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 13:02:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Type:To:Subject:Message-ID:Date:
	From:MIME-Version; bh=rqePkcOqKKSlWKJFzPSR0bkrn6hbfy2LL5DYY7SBum8=; b=zT2fRlw
	phrMkxd2zV6e2R0fRg5kzxMXBXM2+CLQ70TeEtlBuKesJvqHCuPC/NEIGM4wSDUGVcOIcOKpVJbPd
	OjgbnnLwBbmkFrXYziAy1yGH9k9ZarffgCSYa61+DRnzWAreH8/HCCSwhD3nc9r7lt2pNxeV7Qwp3
	vTLy+fyFMg=;
X-Gm-Message-State: AOJu0YwzAMB5wNUiJhjyd+F0A4HF+Tx4BTG2YO5TxXOIoDIqluKmhVC9
	zwDmrMPrsJqcGaT64EMc282MB6Kr1DoJoFEjkdDXoGZ+XRdewniMrwNZJJFADaArEttKZRNUh2P
	m8MSNzJ+7w40NAOztxdJTJ6QWb1QzRSQ=
X-Received: by 2002:a2e:a588:0:b0:38e:a12c:418c with SMTP id
 38308e7fff4ca-393c410af2dmr2819051fa.11.1778011347480; Tue, 05 May 2026
 13:02:27 -0700 (PDT)
MIME-Version: 1.0
From: Cody Zuschlag <cody.zuschlag@xenproject.org>
Date: Tue, 5 May 2026 22:02:16 +0200
X-Gmail-Original-Message-ID: <CAJbE=KyTEfk_rrJgOfYBkLMQEUuheC+J9j_Aq+nFBRKbmFwmPg@mail.gmail.com>
X-Gm-Features: AVHnY4I0i28I8kZ_YWlqHZ5EDkxbkE2r30nYyvs7aHGvWHBLz6ipyX2TNDHTSGM
Message-ID: <CAJbE=KyTEfk_rrJgOfYBkLMQEUuheC+J9j_Aq+nFBRKbmFwmPg@mail.gmail.com>
Subject: [ANNOUNCE] - Call for agenda items for May 7 Xen Community Call @
 15:00 UTC
To: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000c5f5990651178608"

--000000000000c5f5990651178608
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi everyone,

It=E2=80=99s time for the May Xen Project Community Call, happening this Th=
ursday
at 4 pm UK time.

We=E2=80=99d love to have you join. You=E2=80=99re welcome to participate o=
r just listen
in. It=E2=80=99s a great way to stay aligned, hear what others are working =
on, and
help move a few ongoing topics forward.

*Preparation*:
Please take a moment to review and update the agenda ahead of the call:
=F0=9F=91=89 Agenda <https://cryptpad.fr/pad/#/2/pad/edit/eJsr2xpwDAzk5xVxO=
mq+iB+G/>

Feel free to:
- Add topics or updates
- Suggest anything we can drop or defer
- Include links to patches, threads, or docs where helpful

*Call Details: *
Date: Thursday, 7 May 2026
Time: 15:00 UTC (agenda starts at 15:05 UTC)
Find your local timezone here
<https://www.worldtimebuddy.com/?qm=3D1&lid=3D2988507,2643743,100,5128581,5=
368361,1850147&h=3D2988507&date=3D2026-5-7&sln=3D17-18&hf=3D1>

Join: https://meet.jit.si/XenProjectCommunityCall

We=E2=80=99ll open the room at 15:00 UTC and start the agenda at 15:05 UTC =
to give
everyone a few minutes to join.

Want to be CC=E2=80=99d on future calls?
Add or remove yourself from our Sign-up Sheet
<https://cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/>

See you there!


Cody Zuschlag
Xen Project - Community Manager

--000000000000c5f5990651178608
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div style=3D"font-size:inherit" dir=3D"auto">Hi ever=
yone,<br style=3D"font-size:inherit"><br style=3D"font-size:inherit">It=E2=
=80=99s time for the May Xen Project Community Call, happening this Thursda=
y at 4 pm UK time.<br style=3D"font-size:inherit"><br style=3D"font-size:in=
herit">We=E2=80=99d love to have you join. You=E2=80=99re welcome to partic=
ipate or just listen in. It=E2=80=99s a great way to stay aligned, hear wha=
t others are working on, and help move a few ongoing topics forward.<br sty=
le=3D"font-size:inherit"><br style=3D"font-size:inherit"><b>Preparation</b>=
:  <br style=3D"font-size:inherit">Please take a moment to review and updat=
e the agenda ahead of the call:  <br style=3D"font-size:inherit">=F0=9F=91=
=89 <a href=3D"https://cryptpad.fr/pad/#/2/pad/edit/eJsr2xpwDAzk5xVxOmq+iB+=
G/">Agenda</a><br><br style=3D"font-size:inherit">Feel free to:<br style=3D=
"font-size:inherit">- Add topics or updates  <br style=3D"font-size:inherit=
">- Suggest anything we can drop or defer  <br style=3D"font-size:inherit">=
- Include links to patches, threads, or docs where helpful  <br style=3D"fo=
nt-size:inherit"><br style=3D"font-size:inherit"><b>Call Details:  </b><br =
style=3D"font-size:inherit">Date: Thursday, 7 May 2026  <br style=3D"font-s=
ize:inherit">Time: 15:00 UTC (agenda starts at 15:05 UTC)  <br style=3D"fon=
t-size:inherit">Find your local timezone <a href=3D"https://www.worldtimebu=
ddy.com/?qm=3D1&amp;lid=3D2988507,2643743,100,5128581,5368361,1850147&amp;h=
=3D2988507&amp;date=3D2026-5-7&amp;sln=3D17-18&amp;hf=3D1">here</a><div sty=
le=3D"font-size:inherit"></div><br style=3D"font-size:inherit">Join: <a hre=
f=3D"https://meet.jit.si/XenProjectCommunityCall" target=3D"_blank">https:/=
/meet.jit.si/XenProjectCommunityCall</a>  <br style=3D"font-size:inherit"><=
br style=3D"font-size:inherit">We=E2=80=99ll open the room at 15:00 UTC and=
 start the agenda at 15:05 UTC to give everyone a few minutes to join.<br s=
tyle=3D"font-size:inherit"><br style=3D"font-size:inherit">Want to be CC=E2=
=80=99d on future calls?  <br style=3D"font-size:inherit">Add or remove you=
rself from our <a href=3D"https://cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAO=
e6RFPz0sRCf+/">Sign-up Sheet</a><div style=3D"font-size:inherit"></div><br =
style=3D"font-size:inherit">See you there!</div><br clear=3D"all"><div><div=
 dir=3D"ltr" class=3D"gmail_signature" data-smartmail=3D"gmail_signature"><=
div dir=3D"ltr"><img src=3D"https://ci3.googleusercontent.com/mail-sig/AIor=
K4x5nkRDCOFJDJAv9aMXdZ0mghItsp3D36JrwBCQtitBSW_0NeDS6mBmJ2F4vZVE2oBOqnY6IaJ=
Url12"></div></div></div></div><div><div><div><div dir=3D"ltr" class=3D"gma=
il_signature" data-smartmail=3D"gmail_signature"><div dir=3D"ltr"><br><div>=
Cody Zuschlag</div><div>Xen Project - Community Manager</div></div></div></=
div></div>
</div>
</div>

--000000000000c5f5990651178608--


From xen-devel-bounces@lists.xenproject.org Tue May 05 20:33:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 20:33:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301081.1575418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKMSN-0004TX-Vj; Tue, 05 May 2026 20:33:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301081.1575418; Tue, 05 May 2026 20:33:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKMSN-0004TQ-Sm; Tue, 05 May 2026 20:33:27 +0000
Received: by outflank-mailman (input) for mailman id 1301081;
 Tue, 05 May 2026 20:33:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dpsmith@apertussolutions.com>) id 1wKMSL-0004TK-Ot
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 20:33:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKMSK-0078Ld-1Y
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 22:33:24 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dpsmith@apertussolutions.com>)
 id 69fa5403-e002-0a2a0a5209dd-0a2a45039108-8
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 22:33:23 +0200
Received: from [136.143.188.51] (helo=sender4-of-o51.zoho.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dpsmith@apertussolutions.com>)
 id 69fa5411-672d-0a2a45030019-888fbc335283-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 22:33:23 +0200
Received: by mx.zohomail.com with SMTPS id 1778013197458240.2115813323103;
 Tue, 5 May 2026 13:33:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=zoho header.d=apertussolutions.com header.i="dpsmith@apertussolutions.com" header.h="Message-ID:Date:MIME-Version:Subject:To:References:From:In-Reply-To:Content-Type:Content-Transfer-Encoding"
ARC-Seal: i=1; a=rsa-sha256; t=1778013200; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=MolC+U6dDRgKzEgEsYoJgtFaUaV8n+ElOL9dZY0AGCRi3X8aFbO6qkA50UR/1PTlnkAuXJ0/dPka9x1CDye0dx2fF/HjMTkPEjQs9CPtTijAyzvtN11iYszSys5zdGcRI/Ojhs9D2CTsQ8LnQgFBMWxADBSdQtaDhi9udbZeXME=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1778013200; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To:Cc; 
	bh=1ymrRuK40LDWL4DAPkTL6UWbQmdGYGFd2FHyD/hl/RU=; 
	b=HPJqjcch0PtOeNrg69GG4pK+3TConFsd0zmxbSfNFk56qp/EpTovy2zcmoaak+FjG1zigKwOQlrdK3KAdIny4ARj9Yq+6+h5ziVpufA07BRSzM62dfFDz+SaunSB9E2Eb2yhQiFYabBB+ZxW2h7Z9jwkzW/qhzZ7UMO0jWveefA=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1778013200;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To:Cc;
	bh=1ymrRuK40LDWL4DAPkTL6UWbQmdGYGFd2FHyD/hl/RU=;
	b=Bo8gWvoWSLR8+7vtSvOPFzq+ULBWxX4pSiho0Rx5dTwnGYdGq/tcg0T2MwSucW0G
	RE6U7JabUEHHDMC6fc//Udutgxb1sBXB3nz0yv+m/nwQgkOaXUNgOeb/hNkO49N7D8D
	VhmdHVysNy30NOQpYNsMz4zRs4pJrzM7sD9Mw/V8=
Message-ID: <800d7a78-6125-4bf5-9e5d-5f3befcaa9bf@apertussolutions.com>
Date: Tue, 5 May 2026 16:33:16 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xsm/flask: Fix undefined behaviour in avc_dump_av()
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <43fc4b4ed45858b2cebbc37bbbf3b70e664a0661.1777642449.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <43fc4b4ed45858b2cebbc37bbbf3b70e664a0661.1777642449.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External
X-purgate-ID: tlsNG-33051d/1778013203-2997D938-DD9FF2D5/0/0
X-purgate-type: clean
X-purgate-size: 1941

On 5/1/26 10:17, Dmytro Prokopchuk1 wrote:
> When booting Xen with CONFIG_USBAN=y and CONFIG_XSM_FLASK=y,
> UBSAN reports undefined behaviour in avc_dump_av() due to a left
> shift on a signed int:
> 
> (XEN) [    1.104348] ================================================================================
> (XEN) [    1.105096] UBSAN: Undefined behaviour in xsm/flask/avc.c:184:14
> (XEN) [    1.106052] left shift of 1073741824 by 1 places cannot be represented in type 'int'
> (XEN) [    1.107546] Xen WARN at common/ubsan/ubsan.c:176
> (XEN) [    1.108295] ----[ Xen-4.21.1  arm64  debug=y ubsan=y  Not tainted ]----
> (XEN) [    1.108848] CPU:    0
> (XEN) [    1.109147] PC:     00000a00002f64fc ubsan.c#ubsan_epilogue+0x10/0xd4
> [...]
> (XEN) [    1.146320] Xen call trace:
> (XEN) [    1.146663]    [<00000a00002f64fc>] ubsan.c#ubsan_epilogue+0x10/0xd4 (PC)
> (XEN) [    1.147227]    [<00000a00002f7bc4>] __ubsan_handle_shift_out_of_bounds+0x1a0/0x290 (LR)
> (XEN) [    1.147868]
> (XEN) [    1.148177] ================================================================================
> 
> This can be solved by making 'perm' an unsigned 32-bit type (u32).
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> Test CI pipeline:
> https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2493649109
> ---
>   xen/xsm/flask/avc.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/xsm/flask/avc.c b/xen/xsm/flask/avc.c
> index 3d39e55cae..9c3ffdc070 100644
> --- a/xen/xsm/flask/avc.c
> +++ b/xen/xsm/flask/avc.c
> @@ -152,7 +152,8 @@ static void __attribute__ ((format (printf, 2, 3)))
>    */
>   static void avc_dump_av(struct avc_dump_buf *buf, u16 tclass, u32 av)
>   {
> -    int i, i2, perm;
> +    int i, i2;
> +    u32 perm;
>   
>       if ( av == 0 )
>       {

Acked-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Tue May 05 20:34:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 20:34:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301089.1575427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKMTS-0004x2-8m; Tue, 05 May 2026 20:34:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301089.1575427; Tue, 05 May 2026 20:34:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKMTS-0004wv-5c; Tue, 05 May 2026 20:34:34 +0000
Received: by outflank-mailman (input) for mailman id 1301089;
 Tue, 05 May 2026 20:34:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wKMTQ-0004wl-W7
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 20:34:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKMTO-004pG8-RJ
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 22:34:32 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fa5454-e002-0a2a0a5209dd-0a2a4503a162-8
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 22:34:32 +0200
Received: from [209.85.167.41] (helo=mail-lf1-f41.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fa5458-672d-0a2a45030019-d155a729e588-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 22:34:32 +0200
Received: by mail-lf1-f41.google.com with SMTP id
 2adb3069b0e04-5a2b636b944so5853860e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 13:34:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778013271; cv=none;
        d=google.com; s=arc-20240605;
        b=alPwggRqdE3sEh7sc9qxtDyJq8ZgfNMjarpKoVw/uzrQG6SVuHSMPyX+iXCgB8GFoS
         SKdU9LnzTOxzIAogRffGvE5oh8aw9ELm3vbe2X4NvvxPJSq86cU1Vqz/TFuMlmJ/+uXD
         uxDC1NjG+flT23eZWNwzXn2L99MKXK3uyqMExmSHE9aOzI21sMzKKemiIcvN5rp4Yt6u
         AkmruM6th6HEVxy/cwLZZBdkTXD+QhUY3Pj+fN03veVu28zRD3L9P2Tv0Sxym/hu8ZF6
         0igS4OzCSiqpbjha22AliUW8Bxw9gRBGuMThXSVY0h7hIPAaSCbKvqWZgZ5Aj9aFkLYA
         hfsA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=x1jfw1bJF05hjjJ7T/x2gQU6csfYvm0MxMfH1I6JXOs=;
        fh=eEq7B6rg7ssf3icSookiwOw/XyVLUuCIMVm7gUWrf/I=;
        b=HNQjZRxOV4tr0+kckHzlqxIWBjz8ZEz44Oq6Lsj58J/ril8kjdDKkXUXLU6WLhZArf
         v8yW8Js1rOgYZJqAxbpyLtHTiGb/AwDzHdxWe14EsjDjUN+Q8RzHSsufTphk5/QgR6XO
         OYeQoNmKvM9Rz1EQbLGXYQALCHdf0W+GEFUc6bP8gQpJ/q7UDnTNo2tccLh62AKjv+7q
         zfI7WoeipWllY1QN0k4mOiUYXnsQ0ogFqe+K2KsUk8HX1qwhQOZpkQXv5OuQxtRH7Bdt
         TYmoHacLmX2yVyzGb+lV5lN3bER/Vi/6WaJYIAq7ycNpedRBsd5+PWDRhsaVqz7aGkva
         l8mQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778013271; x=1778618071; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=x1jfw1bJF05hjjJ7T/x2gQU6csfYvm0MxMfH1I6JXOs=;
        b=bsftxq7SpGirKIKyB0leKALvSKzS5+iLSTlsrjcxCpSqEOujSdavSB+j0AZPZbC6H/
         EVruwrC/CPb8gkJWIEBQsku024JbR3bXiv+8yTfAdZubVoRUvwwYiurUK3XC59QfGKEg
         IvfetBGTo37XeZgNH+fot5mng+tgbZqpycCDFf75aEwUU42ger9KYiXKjuvxBug1hA2X
         SzcvFd4MhtsIvur627jiWVzr4qfJsVTyUfenFUleIS+HFy/io8iKRqgiopdTYQFWCqGc
         qocuY3Zh+jaBu7SpqboNi6D46A61dpiIB9BzaYLev8d+cotaoMXcSFH0uBp8N3MBfxjP
         uTgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778013271; x=1778618071;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=x1jfw1bJF05hjjJ7T/x2gQU6csfYvm0MxMfH1I6JXOs=;
        b=ZA/0LBGjT/Z0W37RrtJ4K+YZYraDx/J6qm+/2MnG8uMDIab8Ues3rUlcax2QTW3JmN
         lW1O2WwA/IP5CleFFBm3vv3pgKrNKRcluUe6Z1/W6xdyZxSGtm9rIoiew3v53Jzrp+Ms
         V7vqv+2uqjyPAm937zhd1z+oRHj6rQEM0WsX8E+BAgmLAWVrPA0D+8Mgy+AAA0HQdiuD
         DPSanlAo5e1apW0PsRiTTpCivqIa7pp1V4dKTE3EN9CdIpEHoPhOS6hu/2qexueWaPm8
         uHVdv/VmVyDhyWWA6wY5Sl+tKyRZfqVwdeWpCRyEfFczoKDJivahJbvehZIXLjnPl/kl
         P+jg==
X-Gm-Message-State: AOJu0Ywq5Lm2NSvMXs5vYcnqEmwYUnh5c4zfp9NqGQP3txMQvqqurxt+
	S2Y0jfAU8DQAFPkELWXkTTjcDqqMlySsgUAXS2OHXdotyD7D00xre/fEU5N7c9sqBRHEOZSKq3e
	DB5Riy00ZX8V4izCFL5om3NDH3D6s9Z4=
X-Gm-Gg: AeBDieu9OZwLhWkzP+8HD6M4IbUMzyVIzbrzQwuEoE4T8lbb9bFs1NMFMTb28D/Ehjl
	Ol71ILHqEAe6cOVE4fZsYV/VgqDdKoZgTtgbOJo6Zgc+0wKeE+nLxlHvLu+2p4BUtLTs08PlyGh
	GQA93Nejfz88oWT+OdIP4/sFQhObnDST9QsMj7nJxmviTTnJqZEwaA9aBQmk4nVNnpqKA3sPY5q
	FvZjL2NSUK5htl8IyaNs1AaABR9zNxSHFi7YnSJo2epzbHl0EvudWPSgfXwDgxcxiP5/FhQv2LD
	0DRzHMZzUM3hcGms
X-Received: by 2002:a05:6512:1113:b0:5a2:c6f2:fd5a with SMTP id
 2adb3069b0e04-5a887cded48mr93092e87.21.1778013271104; Tue, 05 May 2026
 13:34:31 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <9b0f8922cd33df2b8e8038d639c1b8d8d73ce401.1775125380.git.mykola_kvach@epam.com>
 <4977CF18-39CC-4CC0-936A-890BAE5E8615@arm.com>
In-Reply-To: <4977CF18-39CC-4CC0-936A-890BAE5E8615@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 5 May 2026 23:34:18 +0300
X-Gm-Features: AVHnY4K3UZk2RzYUFWDotoJb9uIiNxdTcGP2Cj4IhABczaSfQaf-V__RkQSzYVA
Message-ID: <CAGeoDV8WkRGubF0qEXd4+PsXuabz3914G7bTYxTbaxZ2DsnY6w@mail.gmail.com>
Subject: Re: [PATCH v8 13/13] xen/arm: Add support for system suspend
 triggered by hardware domain
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Rahul Singh <Rahul.Singh@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-33051d/1778013272-A2B64938-1ED61C94/0/0
X-purgate-type: clean
X-purgate-size: 15558

Hi Luca,

Thanks for the feedback.

On Wed, Apr 29, 2026 at 11:06=E2=80=AFAM Luca Fancellu <Luca.Fancellu@arm.c=
om> wrote:
>
> Hi Mykola,
>
> > diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
> > index e38566b0b7..4d1289776b 100644
> > --- a/xen/arch/arm/suspend.c
> > +++ b/xen/arch/arm/suspend.c
> > @@ -1,9 +1,190 @@
> > /* SPDX-License-Identifier: GPL-2.0-only */
> >
> > +#include <asm/psci.h>
> > #include <asm/suspend.h>
> >
> > +#include <public/sched.h>
> > +#include <xen/console.h>
> > +#include <xen/cpu.h>
> > +#include <xen/errno.h>
> > +#include <xen/iommu.h>
> > +#include <xen/sched.h>
> > +#include <xen/tasklet.h>
> > +
> > struct cpu_context cpu_context =3D {};
> >
> > +static int can_system_suspend(void)
> > +{
> > +    int ret =3D 0;
> > +    struct domain *d;
> > +
> > +    rcu_read_lock(&domlist_read_lock);
> > +
> > +    for_each_domain ( d )
> > +    {
> > +        bool domain_suspended;
> > +
> > +        spin_lock(&d->shutdown_lock);
> > +        domain_suspended =3D d->is_shut_down &&
> > +                           d->shutdown_code =3D=3D SHUTDOWN_suspend;
> > +        spin_unlock(&d->shutdown_lock);
> > +
> > +        if ( domain_suspended )
> > +            continue;
> > +
> > +        printk(XENLOG_ERR
> > +               "System suspend requires all domains to be shut down fo=
r suspend (dom%d: isn't in suspend state)\n",
>
> d->domain_id is unsigned if I=E2=80=99m not mistaken, it wants %u (typede=
f uint16_t domid_t;)

Ack, I will fix it in v9.

>
> > +               d->domain_id);
> > +
> > +        ret =3D -EBUSY;
> > +        break;
> > +    }
> > +
> > +    rcu_read_unlock(&domlist_read_lock);
> > +
> > +    return ret;
> > +}
> > +
> > +/* Xen suspend. data identifies the domain that initiated suspend. */
> > +static void system_suspend(void *data)
> > +{
> > +    int status;
> > +    unsigned long flags;
> > +    struct domain *d =3D (struct domain *)data;
> > +
> > +    BUG_ON(system_state !=3D SYS_STATE_active);
> > +
> > +    system_state =3D SYS_STATE_suspend;
> > +
> > +    printk("Xen suspending...\n");
> > +
> > +    freeze_domains();
> > +    scheduler_disable();
> > +
> > +    status =3D can_system_suspend();
> > +    if ( status )
> > +    {
> > +        system_state =3D SYS_STATE_resume;
> > +        goto resume_scheduler;
>
> When we have an error and we get the resume_scheduler path, we apply back=
 the
> context of the guest saved previously in do_psci_1_0_system_suspend(), so=
 am I
> correct saying the guest won=E2=80=99t get any PSCI error back and we res=
ume the guest
> from the guest resume entrypoint?
>
> In case, should we have a different path that returns a PSCI error (PSCI_=
*) into the guest
> x0, and skips the context restore?

You are right about the current control flow: once the virtual
SYSTEM_SUSPEND request has been accepted and the domain has been parked, a
later failure in the Xen-wide suspend path resumes the domain through the n=
ormal
domain resume path, rather than returning a PSCI error from the original ca=
ll.

This is intentional in the current design. The virtual PSCI SYSTEM_SUSPEND
path parks the domain and saves its resume context. The actual Xen-wide hos=
t
suspend is a separate step that is attempted only after all domains are
suspended.

So a failure in the later Xen-wide suspend step is treated as an abort of t=
he
host suspend attempt after the domain suspend was already accepted. The dom=
ain
is then resumed through the existing domain resume path, similarly to the
toolstack/xl suspend-resume flow, rather than by re-entering the guest PSCI
call path and modifying the saved vCPU context again.

I agree this design is not obvious from the patch. I will clarify the commi=
t
message and comments. If you or the maintainers think that failures before =
the
physical SYSTEM_SUSPEND call succeeds should be reported back through the
original virtual PSCI call, then this would require a different flow. I was
trying to avoid that extra complexity in this series.

>
> > +    }
> > +
> > +    /*
> > +     * Non-boot CPUs have to be disabled on suspend and enabled on res=
ume
> > +     * (hotplug-based mechanism). Disabling non-boot CPUs will lead to=
 PSCI
> > +     * CPU_OFF to be called by each non-boot CPU. Depending on the und=
erlying
> > +     * platform capabilities, this may lead to the physical powering d=
own of
> > +     * CPUs.
> > +     */
> > +    status =3D disable_nonboot_cpus();
> > +    if ( status )
> > +    {
> > +        system_state =3D SYS_STATE_resume;
> > +        goto resume_nonboot_cpus;
> > +    }
> > +
> > +    time_suspend();
> > +
> > +    status =3D iommu_suspend();
> > +    if ( status )
> > +    {
> > +        system_state =3D SYS_STATE_resume;
> > +        goto resume_time;
> > +    }
> > +
> > +    console_start_sync();
> > +    status =3D console_suspend();
> > +    if ( status )
> > +    {
> > +        dprintk(XENLOG_ERR, "Failed to suspend the console, err=3D%d\n=
", status);
> > +        system_state =3D SYS_STATE_resume;
> > +        goto resume_end_sync;
> > +    }
> > +
> > +    local_irq_save(flags);
> > +    status =3D gic_suspend();
> > +    if ( status )
> > +    {
> > +        system_state =3D SYS_STATE_resume;
> > +        goto resume_irqs;
> > +    }
> > +
> > +    set_init_ttbr(xen_pgtable);
> > +
> > +    /*
> > +     * Enable identity mapping before entering suspend to simplify
> > +     * the resume path
> > +     */
> > +    update_boot_mapping(true);
> > +
> > +    if ( prepare_resume_ctx(&cpu_context) )
> > +    {
> > +        status =3D call_psci_system_suspend();
> > +        /*
> > +         * If suspend is finalized properly by above system suspend PS=
CI call,
> > +         * the code below in this 'if' branch will never execute. Exec=
ution
> > +         * will continue from hyp_resume which is the hypervisor's res=
ume point.
> > +         * In hyp_resume CPU context will be restored and since link-r=
egister is
> > +         * restored as well, it will appear to return from prepare_res=
ume_ctx.
> > +         * The difference in returning from prepare_resume_ctx on syst=
em suspend
> > +         * versus resume is in function's return value: on suspend, th=
e return
> > +         * value is a non-zero value, on resume it is zero. That is wh=
y the
> > +         * control flow will not re-enter this 'if' branch on resume.
> > +         */
> > +        if ( status )
> > +            dprintk(XENLOG_WARNING, "PSCI system suspend failed, err=
=3D%d\n",
> > +                    status);
> > +    }
> > +
> > +    system_state =3D SYS_STATE_resume;
> > +    update_boot_mapping(false);
> > +
> > +    gic_resume();
> > +
> > + resume_irqs:
> > +    local_irq_restore(flags);
> > +
> > +    console_resume();
> > + resume_end_sync:
> > +    console_end_sync();
> > +
> > +    iommu_resume();
> > +
> > + resume_time:
> > +    time_resume();
> > +
> > + resume_nonboot_cpus:
> > +    /*
> > +     * The rcu_barrier() has to be added to ensure that the per cpu ar=
ea is
> > +     * freed before a non-boot CPU tries to initialize it (_free_percp=
u_area()
> > +     * has to be called before the init_percpu_area()). This scenario =
occurs
> > +     * when non-boot CPUs are hot-unplugged on suspend and hotplugged =
on resume.
> > +     */
> > +    rcu_barrier();
> > +    enable_nonboot_cpus();
> > +
> > + resume_scheduler:
> > +    scheduler_enable();
> > +    thaw_domains();
> > +
> > +    system_state =3D SYS_STATE_active;
> > +
> > +    printk("Resume (status %d)\n", status);
> > +
> > +    domain_resume(d);
> > +}
> > +
> > +static DECLARE_TASKLET(system_suspend_tasklet, system_suspend, NULL);
> > +
> > +void host_system_suspend(struct domain *d)
> > +{
> > +    system_suspend_tasklet.data =3D (void *)d;
> > +    /*
> > +     * The suspend procedure has to be finalized by the pCPU#0 (non-bo=
ot pCPUs
> > +     * will be disabled during the suspend).
> > +     */
> > +    tasklet_schedule_on_cpu(&system_suspend_tasklet, 0);
> > +}
> > +
> > /*
> >  * Local variables:
> >  * mode: C
> > diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> > index bd87ec430d..8fb9172186 100644
> > --- a/xen/arch/arm/vpsci.c
> > +++ b/xen/arch/arm/vpsci.c
> > @@ -5,6 +5,7 @@
> >
> > #include <asm/current.h>
> > #include <asm/domain.h>
> > +#include <asm/suspend.h>
> > #include <asm/vgic.h>
> > #include <asm/vpsci.h>
> > #include <asm/event.h>
> > @@ -232,8 +233,7 @@ static int32_t do_psci_1_0_system_suspend(register_=
t epoint, register_t cid)
> >     if ( is_64bit_domain(d) && is_thumb )
> >         return PSCI_INVALID_ADDRESS;
> >
> > -    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
> > -    if ( is_hardware_domain(d) )
> > +    if ( !IS_ENABLED(CONFIG_SYSTEM_SUSPEND) && is_hardware_domain(d) )
> >         return PSCI_NOT_SUPPORTED;
> >
> >     /* Ensure that all CPUs other than the calling one are offline */
> > @@ -266,6 +266,9 @@ static int32_t do_psci_1_0_system_suspend(register_=
t epoint, register_t cid)
> >             "SYSTEM_SUSPEND requested, epoint=3D%#"PRIregister", cid=3D=
%#"PRIregister"\n",
> >             epoint, cid);
> >
> > +    if ( is_control_domain(d) )
>
> Why is_control_domain() here and not is_hardware_domain() ?

The use of is_control_domain() is intentional.

The intended model is that Xen-wide host suspend is orchestrated by the
privileged management/control domain. The control domain coordinates the
toolstack side, asks other domains to enter suspend, and then issues the fi=
nal
SYSTEM_SUSPEND request to Xen.

This does not have to be the same entity as the hardware domain. If the
hardware domain is separate, it is one of the domains that the control doma=
in
parks before the final host suspend step.

The hwdom-specific checks in this patch have a different purpose: they avoi=
d
the old hwdom_shutdown() path for SHUTDOWN_suspend and allow the hardware
domain to be parked as part of the suspend sequence. They do not define the
policy for who is allowed to trigger Xen-wide host suspend.

That said, this policy may not be optimal for all configurations, especiall=
y
when the control and hardware domain roles are split. I would appreciate yo=
ur
view, as well as the maintainers' views, on whether the trigger should rema=
in
control-domain based, be tied to the hardware domain instead, or be express=
ed
through a separate host-suspend capability/helper.

>
> > +        host_system_suspend(d);
> > +
> >     return rc;
> > }
> >
> > @@ -290,7 +293,10 @@ static int32_t do_psci_1_0_features(uint32_t psci_=
func_id)
> >         return 0;
> >     case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> >     case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> > -        return is_hardware_domain(current->domain) ? PSCI_NOT_SUPPORTE=
D : 0;
> > +        if ( IS_ENABLED(CONFIG_SYSTEM_SUSPEND) ||
> > +             !is_hardware_domain(current->domain) )
>
> Should this have also the condition that =E2=80=9Cis hardware domain and =
psci_ver >=3D PSCI_VERSION(1, 0)=E2=80=9D?
> Otherwise if the host machine doestn=E2=80=99t support PSCI 1.0 we would =
return OK here but the call would
> fail later in call_psci_system_suspend()?

Good point.

I agree that, for the domain allowed to trigger Xen-wide suspend, Xen shoul=
d
not advertise SYSTEM_SUSPEND if the host suspend path cannot be used.

I think this should be checked as an explicit host SYSTEM_SUSPEND capabilit=
y,
rather than only as psci_ver >=3D PSCI_VERSION(1, 0). The same capability c=
heck
also needs to be enforced in the actual SYSTEM_SUSPEND handler before parki=
ng
the domain, because a caller may invoke SYSTEM_SUSPEND directly without fir=
st
querying PSCI_FEATURES.

For ordinary guests, the physical PSCI version is not relevant because they
cannot trigger host suspend; their SYSTEM_SUSPEND path is virtual.

I will make this consistent in v9: PSCI_FEATURES will advertise SYSTEM_SUSP=
END
for the host-suspend-triggering domain only when the host SYSTEM_SUSPEND ba=
ckend
is available, and the actual SYSTEM_SUSPEND path will enforce the same chec=
k.

>
> > +            return 0;
> > +        fallthrough;
> >     default:
> >         return PSCI_NOT_SUPPORTED;
> >     }
> > diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> > index 0a20aa0a12..feb1336f46 100644
> > --- a/xen/common/Kconfig
> > +++ b/xen/common/Kconfig
> > @@ -137,6 +137,9 @@ config HAS_EX_TABLE
> > config HAS_FAST_MULTIPLY
> > bool
> >
> > +config HAS_HWDOM_SYSTEM_SUSPEND
> > + bool
> > +
> > config HAS_IOPORTS
> > bool
> >
> > diff --git a/xen/common/domain.c b/xen/common/domain.c
> > index bb9e210c28..d3edfb2a13 100644
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -1375,6 +1375,11 @@ void __domain_crash(struct domain *d)
> >     domain_shutdown(d, SHUTDOWN_crash);
> > }
> >
> > +static inline bool want_hwdom_shutdown(uint8_t reason)
> > +{
> > +    return !IS_ENABLED(CONFIG_HAS_HWDOM_SYSTEM_SUSPEND) ||
> > +           reason !=3D SHUTDOWN_suspend;
> > +}
> >
> > int domain_shutdown(struct domain *d, u8 reason)
> > {
> > @@ -1391,7 +1396,7 @@ int domain_shutdown(struct domain *d, u8 reason)
> >         d->shutdown_code =3D reason;
> >     reason =3D d->shutdown_code;
> >
> > -    if ( is_hardware_domain(d) )
> > +    if ( is_hardware_domain(d) && want_hwdom_shutdown(reason) )
> >         hwdom_shutdown(reason);
> >
> >     if ( d->is_shutting_down )
> > diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrou=
gh/arm/smmu.c
> > index 22d306d0cb..45f29ef8ec 100644
> > --- a/xen/drivers/passthrough/arm/smmu.c
> > +++ b/xen/drivers/passthrough/arm/smmu.c
> > @@ -2947,6 +2947,13 @@ static void arm_smmu_iommu_domain_teardown(struc=
t domain *d)
> > xfree(xen_domain);
> > }
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +static int arm_smmu_suspend(void)
> > +{
> > + return -ENOSYS;
> > +}
> > +#endif
>
> Maybe we want to gate the feature also to !CONFIG_ARM_SMMU ? I would wait=
 for the maintainers
> view on this.

I feel that gating this strictly on !CONFIG_ARM_SMMU might not be the most
optimal approach here.

CONFIG_ARM_SMMU is a build-time option and does not mean that an old SMMUv1=
/v2
device is actually present. Using it would disable system suspend even on
platforms where only SMMUv3 is used, because CONFIG_ARM_SMMU is enabled by
default for Arm.

The condition should be runtime-based: whether the active/probed IOMMU devi=
ces
have system suspend/resume support. For the old ARM SMMU driver this is not
implemented today, so a platform with an SMMUv1/v2 instance should not expo=
se
or attempt host suspend.

I think we should handle this by tracking whether any old ARM SMMUv1/v2 dev=
ice
was actually probed, or by adding a generic IOMMU suspend capability check.=
 Then
the host suspend availability check can reject system suspend only when suc=
h an
unsupported IOMMU is present, instead of disabling the feature for all
Arm builds
with CONFIG_ARM_SMMU enabled.

I would be interested to hear if you or the maintainers see a better way to
express this capability.

Best regards,
Mykola

>
> Cheers,
> Luca
>
>


From xen-devel-bounces@lists.xenproject.org Tue May 05 20:39:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 20:39:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301098.1575435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKMYM-0005mV-Pj; Tue, 05 May 2026 20:39:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301098.1575435; Tue, 05 May 2026 20:39:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKMYM-0005mO-N7; Tue, 05 May 2026 20:39:38 +0000
Received: by outflank-mailman (input) for mailman id 1301098;
 Tue, 05 May 2026 20:39:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dpsmith@apertussolutions.com>) id 1wKMYL-0005mI-Np
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 20:39:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKMYL-006JzV-4k
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 22:39:37 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dpsmith@apertussolutions.com>)
 id 69fa5589-2eae-0a2a0a5409dd-0a2a4507df40-0
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 22:39:37 +0200
Received: from [136.143.188.51] (helo=sender4-of-o51.zoho.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dpsmith@apertussolutions.com>)
 id 69fa5587-229c-0a2a45070019-888fbc3352be-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 22:39:36 +0200
Received: by mx.zohomail.com with SMTPS id 1778013565284692.9140756033918;
 Tue, 5 May 2026 13:39:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=zoho header.d=apertussolutions.com header.i="dpsmith@apertussolutions.com" header.h="Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:In-Reply-To:Content-Type:Content-Transfer-Encoding"
ARC-Seal: i=1; a=rsa-sha256; t=1778013568; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=fdvo+7ThLN5jMZJStd9qYcScfM3HotMoTGfOsksKBK57IamhYTHwIU+JJB7od9l84jV1jIJdeDS+3LYoDiGgWQc3/UaIuSMVuwZLgX+pOpIcEImCcbOigakt87KCUqalnhlefeWiOR7rFOKp4WxukwivKkj73Rhecuq5ZjwOMFI=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1778013568; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; 
	bh=KOuaFhoFvTlT5kNzqoeorQp/xZ922AkKTe5UI5FSTls=; 
	b=Wp6VG+dGY5y7YDr8fs31QaSzxoxv0B7+8hcG7KhdG3yjiJXTxhDt4tSiUJs0WvlYhK7yrIkfW2PzKDOx8w+bVeQ1iJuYam3zywX2i087td8Ux8+ljrobpJeY0IniCbvgVRpbmPXlQTjs0FmNhge0VspnjiQEgYxRDMd+epnF9Rw=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1778013568;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=KOuaFhoFvTlT5kNzqoeorQp/xZ922AkKTe5UI5FSTls=;
	b=PHdMvxcFd+qsfbCCh3I6+GKiwIt83u9XtP3cobgiEXahILK+YEo8xQ8IIm9wLTxH
	wAwo8RGnA3qR8LM7FijMMEC7xLanILOLkQr/m6LzaDPN8/Q08mpqFMJHigmVCuSyXZn
	FGQGeTSOmwItGMbGcBKU+bcZOisf5JF4EVMHecp8=
Message-ID: <2c747296-5f18-406f-9a78-4deabdc27ac1@apertussolutions.com>
Date: Tue, 5 May 2026 16:39:23 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Ping: [PATCH] EFI: adjust cfg file buffer freeing
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>,
 Marek Marczykowski <marmarek@invisiblethingslab.com>
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <bf990673-83c3-44c3-a76a-3b0c36108ec5@suse.com>
 <d22d841f-a694-4527-bc50-235e2525a0d3@suse.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <d22d841f-a694-4527-bc50-235e2525a0d3@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External
X-purgate-ID: tlsNG-ef75cf/1778013577-2B175C48-0E11125E/0/0
X-purgate-type: clean
X-purgate-size: 2843

On 5/4/26 09:30, Jan Beulich wrote:
> On 22.04.2026 13:51, Jan Beulich wrote:
>> The boot services FreePages() needs passing the size. Since we allocated
>> one more byte to put a trailing nul there, we also need to bump the size
>> passed there. Make a small helper function to centralize this.
>>
>> Note that there's no permanent memory leak because of the oversight: The
>> allocation is done using EfiLoaderData, and all memory of that type is
>> later reclaimed anyway.
>>
>> Fixes: df75f77092c1 ("EFI: avoid OOB config file reads")
>> Reported-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Marek, Daniel?
> 
> Thanks, Jan
> 
>> ---
>> This is an alternative proposal to
>> https://lists.xen.org/archives/html/xen-devel/2026-04/msg01044.html.
>>
>> --- a/xen/common/efi/boot.c
>> +++ b/xen/common/efi/boot.c
>> @@ -778,6 +778,16 @@ static void __init efi_relocate_esrt(EFI
>>    */
>>   #include "efi-boot.h"
>>   
>> +static void __init free_cfg(void)
>> +{
>> +    if ( !cfg.need_to_free )
>> +        return;
>> +
>> +    /* One extra byte was allocated to put a nul character there. */
>> +    efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size + 1));
>> +    cfg.need_to_free = false;
>> +}
>> +
>>   void __init noreturn blexit(const CHAR16 *str)
>>   {
>>       if ( str )
>> @@ -787,8 +797,7 @@ void __init noreturn blexit(const CHAR16
>>       if ( !efi_bs )
>>           efi_arch_halt();
>>   
>> -    if ( cfg.need_to_free )
>> -        efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
>> +    free_cfg();
>>       if ( kernel.need_to_free )
>>           efi_bs->FreePages(kernel.addr, PFN_UP(kernel.size));
>>       if ( ramdisk.need_to_free )
>> @@ -1557,11 +1566,7 @@ void EFIAPI __init noreturn efi_start(EF
>>               name.s = get_value(&cfg, "global", "chain");
>>               if ( !name.s )
>>                   break;
>> -            if ( cfg.need_to_free )
>> -            {
>> -                efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
>> -                cfg.need_to_free = false;
>> -            }
>> +            free_cfg();
>>               if ( !read_file(dir_handle, s2w(&name), &cfg, NULL) )
>>               {
>>                   PrintStr(L"Chained configuration file '");
>> @@ -1631,11 +1636,7 @@ void EFIAPI __init noreturn efi_start(EF
>>   
>>           efi_arch_cfg_file_late(loaded_image, dir_handle, section.s);
>>   
>> -        if ( cfg.need_to_free )
>> -        {
>> -            efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
>> -            cfg.need_to_free = false;
>> -        }
>> +        free_cfg();
>>   
>>           if ( dir_handle )
>>               dir_handle->Close(dir_handle);
> 

Acked-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Tue May 05 21:10:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 21:10:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301108.1575445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKN2H-0003Bu-6s; Tue, 05 May 2026 21:10:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301108.1575445; Tue, 05 May 2026 21:10:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKN2H-0003Bn-3A; Tue, 05 May 2026 21:10:33 +0000
Received: by outflank-mailman (input) for mailman id 1301108;
 Tue, 05 May 2026 21:10:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKN2F-0003Bh-KG
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 21:10:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKN2F-00FIyN-19
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 23:10:31 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 69fa5cc2-5cb7-0a2a0a5109dd-0a2a4501e97e-6
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 23:10:30 +0200
Received: from [40.93.201.34]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 69fa5cc4-c1f2-0a2a45010019-285dc922066a-3
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 23:10:29 +0200
Received: from SN1PR12CA0072.namprd12.prod.outlook.com (2603:10b6:802:20::43)
 by SA1PR12MB9472.namprd12.prod.outlook.com (2603:10b6:806:45b::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 5 May
 2026 21:10:25 +0000
Received: from SN1PEPF000397B3.namprd05.prod.outlook.com
 (2603:10b6:802:20:cafe::19) by SN1PR12CA0072.outlook.office365.com
 (2603:10b6:802:20::43) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.27 via Frontend Transport; Tue,
 5 May 2026 21:10:25 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SN1PEPF000397B3.mail.protection.outlook.com (10.167.248.57) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Tue, 5 May 2026 21:10:24 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 5 May
 2026 16:10:24 -0500
Received: from [172.22.180.48] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 5 May 2026 16:10:23 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qqJ0OkX2yrXLiT2h1SRFZ/GwtOXTeTR/h0ZKqvHXZtj+R1Uaj4iGu/soOe2qrOUw4kBechkD3W6EtkjeK04yqCV3H+r/8y+LuWxJo4gVMfMZRweKkf1WE1fnzxe9DJDtvGDB9Ig4AqTkto0vruiPWOLPY+1L/SsCSsP1ISYYNxi0O/LlUoJ8Z3ZcAmTXfJ4nt6o2NihMIcE1gOB/5CO5XohdexV8Xi+3iCvRinF/BIUCdc43iMUpAtIkf94vhBP3BhK6Y9s87BnLiG81tkFIDhPIDWLoreSufayL1j08P8gqzkbn7bS/b7yWGF+wCHgh71gT0/jjVUZwFv4pzDkq5Q==
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=6FcoxPBlPRCsC4B3NbAyDyF622Hveg/a75eKDYCh94E=;
 b=aqqA4a1eYrvtXkIv0YaAo4bm50aKSPZLCeFcVwcWi64gttiV4ogewSjBFgnGYYlquzFVlGoPurFULgRBcL6zO9rgNVQAk7TBejC2TO/VpoSnIboUVngNcP5AmdcMBXiD4o6/pQ2OhK30dWqrvKFa+Xx/h9zbCshUPPdZR2j2PeVpFsmPzVZO6LaBqYNbaKSk6kPLnaf2a/vIW+i7n2LbkGKBYenae3erwM9jqjRwp5D3k6y8C1aecEma9fnTbnp5FtsVGE+NIrfwA7Yi6bw/dqdJ9r1IelIJHQWCpAS+Z6Ank8//l3D1W5Qkf22yIVTtyccWAWKfHd3dSoVviYCsoQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6FcoxPBlPRCsC4B3NbAyDyF622Hveg/a75eKDYCh94E=;
 b=CEyjH3lbAD8wqKIEpTy8uwJTv+bOlF4GCu0c1Mnelsrx5W23p5+85h8gntSVD4/Lph5Y5kjRC6I6zVbJsC1RE0GWrwz4EverGbcCQpD0e3L8NWRHoN0VXGJDUcpzi/j/4/fCjJA8YRWHede0r3Fbu5BuvdRCgXPMwqFwjvraD20=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <089b9287-addb-4736-8174-f8a297de877f@amd.com>
Date: Tue, 5 May 2026 17:10:22 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v10 2/2] xen: Strip xen.efi by default
To: Frediano Ziglio <frediano.ziglio@citrix.com>,
	<xen-devel@lists.xenproject.org>
CC: Frediano Ziglio <frediano.ziglio@cloud.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"Frediano Ziglio" <freddy77@gmail.com>, Demi Marie Obenour
	<demiobenour@gmail.com>, =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20251208133945.61375-1-frediano.ziglio@citrix.com>
 <20251208133945.61375-3-frediano.ziglio@citrix.com>
Content-Language: en-US
In-Reply-To: <20251208133945.61375-3-frediano.ziglio@citrix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF000397B3:EE_|SA1PR12MB9472:EE_
X-MS-Office365-Filtering-Correlation-Id: 44152470-33cb-4ff9-afbc-08deaaeab9b8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700016|7416014|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	0N5QSXrgr9/Hfln3VY3mN7R74gpmLg/jMFLhIWmLf/m4hSly46FgBLXeYoq2zSk5SDUT+pF54NfERrsBqvTNaOX4jW7fMgnsL15l6KM1fbaHBs++aFEdyloFDjxJhz7J2Mbwh+dK4iz8SW5Hee+ZWbHq8OcguaTJX3GIs0FbL9T+wfWxqQiwe3J3lHICoxZqVxtLnXrubxLLatUBsCPYKrHvQvWu6zvl2JbXZBg0Xhe+OmMyviIw7jYpy4ETWfWU3/LWAvgNhNP9gMImvEHBEYMv/i/nHZlS0+IYK3ewZVHwXTdL4p/7QFvibH5h/2+/e4TZaFB3ntbpvY9wWNKJb3PqPSSY6hfsE7TYMFplZRkBYGw3FobS9n978dj9fwScVSakxT7SXdfhfk08ZCXJ4wDBxT2mZFUF4V7VbEFWc9ROJ0mKptv6ptvr+ahZMOFT/NHZaG27O7lc4ASOet+7uPcikXU5G9iCLXITI88WHoE7Xf8juE4mu38ZL8jsSd8G+yyl9uZT8/2ao5JbM04tKtiSVIxHy5VlLOOdjLJ7j1qSHLGs4z9Vlumn0U139Blaad8N289DoeTKMORYB7ae29bBoYe0ec3/MNPSbku0e4k11+25hu8H2HqmZf4DX5JLHJrEJxDoram9Nh1wsZb1mxu6Tr+aXRzoBYlswYA+wdnrDyA5Nj5KS8gHrIIdrkACl7sHRMXonMhCGx3c2F78Mvw20utFZgfmnjs6U/n5SV4=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700016)(7416014)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	TLFFy0clTYwzbss+yz02rb3wmjcQiJffNHv6iQAsr5axiQW/Np7+VznloPjV1Nv27sO8Z26AtzY19Wqn3+L+wOVbfy9PiXD3dSe8aNHeLFwjSvReUNF9FHGFNjnM6BVlsRicCTMXu8un0mXeZRU/f0UNYC2ZpnT1dYrRkFTMdC9j7XIPNqzVSZ+KqNL2i1qtynpV/9sUGASd4FHsk5CXSstX6FZsr/svjw9hfGZAlod9e5VoHNLDK25w0JmhAmMD8lCGHGqLde5bX9uHs9vCp35EurXqWNpWSlthVgX/TnCERmfu17XBl9NKg6mz3B1vV+XlHUeIb0T619Vl/fXT4KHgA622t7xIlmECd9lvfErNGEPZY5wf86EVH99m4bXQlJ6FhUK6K1aWlGZVwrDZUECU+muL+OS6RuXChuXjMxPB8NpgaaU68LqgJeTS+FFt
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 21:10:24.7781
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 44152470-33cb-4ff9-afbc-08deaaeab9b8
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF000397B3.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB9472
X-purgate-ID: tlsNG-d62444/1778015430-BF07EFF4-044A71D2/10/73395122804
X-purgate-type: spam
X-purgate-size: 672

On 2025-12-08 08:39, Frediano Ziglio wrote:
> From: Frediano Ziglio <frediano.ziglio@cloud.com>
> 
> For xen.gz file we strip all symbols and have an additional
> xen-syms.efi file version with all symbols.
> Make xen.efi more coherent stripping all symbols too.
> xen-syms.efi can be used for debugging.
> 
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

While there is some discussion about patch 1, it seems like this patch 
can do in independently of it?

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue May 05 21:29:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 21:29:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301118.1575455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKNK7-0005XG-Lk; Tue, 05 May 2026 21:28:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301118.1575455; Tue, 05 May 2026 21:28:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKNK7-0005X9-Hh; Tue, 05 May 2026 21:28:59 +0000
Received: by outflank-mailman (input) for mailman id 1301118;
 Tue, 05 May 2026 21:28:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKNK5-0005X3-5n
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 21:28:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKNK4-00B0ey-FL
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 23:28:56 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fa6112-5cb7-0a2a0a5109dd-0a2a450ccd54-10
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 23:28:56 +0200
Received: from [52.101.56.5]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fa6117-62f1-0a2a450c0019-346538055f62-4
 for <xen-devel@lists.xenproject.org>; Tue, 05 May 2026 23:28:56 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BL1PR03MB6151.namprd03.prod.outlook.com (2603:10b6:208:315::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Tue, 5 May
 2026 21:28:52 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9870.023; Tue, 5 May 2026
 21:28:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WJiFht+sj/FJN2Ar2GgYWcl7wM4C1CpaMLUEDiFoePyT5sIp33oZJ1aB1ob9qMUws/F+VMR4hYhsaru5h5nqmUPjGql3cYYUyL4aEGhbasNjaVpIvRb5tRwTfQOJ9HXJxK2FXPC96jadRMQKYmfyjWRI9SDmJBwDFmbnRpI0TIHR9m88TAGxvmc2SdB4n6T89rvQiDaSmxGMRBxsJ1c9yCqJQvL/SKWWEm80B9dJyyUHek8NMl+kmkjt+pYGvqnPiqlJfHrhDfvyDCOmlFq4vuTBVHBkeImHbO+IAvuKZ2BeS4eldYSonK+VgDGGWvSznPj4a8oIdGLdnkD1eAxnxg==
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=3N9bbauhr/vAtIL7oTRDyclgRUdKAGEPYY5j+1BUDOI=;
 b=xwbj+VGgY6XVKneW7aVyNecwL4vwBRFKV0/BIGQOSDuu2Si54Oun2Gec+1bYy816LL/LQAv94i+UokTnWkzal26xzSO1sh28lxbRMrI4NXDJg3DeaFz8CuA5eZUzMw2+nSawVKdIws1VrPHyZDfJFiof8nNJ3kpYxvhhmlSaIXnMpyP5Uj5s0RN/Lq6EO8lZC8+DQoD6q0YSEUSC98G1mYjuDzBPAISfloGYUpeua4tpRHpQbqmpC8N0t4qw+WTOjEY9qjlZZwBW1Kkx70IbBHGTiMsTc5hGw7aBn0CTQDd9YVcy2jNuVzZVW/q+p9nh1iXJrvGcoxmsKDUfeh6eKw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3N9bbauhr/vAtIL7oTRDyclgRUdKAGEPYY5j+1BUDOI=;
 b=iMdNON0C/V3d18U5cJmRHMPjjNRf2jg2szijJ+D41atNDMwLciOkgt4K2GrqJmuyH+SPS9DHWZxSczLGPfGDy4KCS8kyqvRg8IefjvWAhzDC7wVaxycrwaSIwzzYj5OqfbxWDVFjbpN6Aah0OIV9YnM/6/TaXj2uaG7ZH6drz48=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <dfb47a66-9339-4576-a8a9-874240f514e9@citrix.com>
Date: Tue, 5 May 2026 22:28:47 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v10 2/2] xen: Strip xen.efi by default
To: Jason Andryuk <jason.andryuk@amd.com>,
 Frediano Ziglio <frediano.ziglio@citrix.com>, xen-devel@lists.xenproject.org
References: <20251208133945.61375-1-frediano.ziglio@citrix.com>
 <20251208133945.61375-3-frediano.ziglio@citrix.com>
 <089b9287-addb-4736-8174-f8a297de877f@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <089b9287-addb-4736-8174-f8a297de877f@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0166.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:312::10) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BL1PR03MB6151:EE_
X-MS-Office365-Filtering-Correlation-Id: c0e1b562-002d-4691-443b-08deaaed4d91
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|7416014|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	lk4Iv+cmwhWUL0g/WuWC69zwTNsrZKAdn/9OGoEm43pqiVU02GFmr67crv9ZS5gIXe4Kfiuujt7yOOjLUpcwGerbDXfxUkKusHwKSCP3Mfk3Oxqj395SP2UOKc+F0gWS6afQzJmGQ5CKhruaNBp9QvNEtwfSh11kFiSBYkDCrrZvsyalXJSFKDN4KjtWA3SBDd6JceFtffKvabtJOQBmLhuJaOFYMa0VTdnrJBgPPCybMLLyusaMEq2JDwwD4UNs0xzn2WrUSvCH/XxAlL820g7/Y4d9WwqOqDsCuMYKqPn7+oCW7o4b6au+XO4Go/rEYSEgQVbjf0TR0Wd8uZ2BoqBrxjYkXp/dBiIvI19URdn6FuuctZjF66KW2pZNrR2vQDSdanouQC7mkXbeJsMh+uMfqs1dRK2TxilU2Z+EzLzloAAQu4vyynJnCGv4Hx5XOa7mWHgj57TveJdUEpqKWnw+okFmEGTEeWtXj5ctxGJOcwUi1P5pItKP/JR1U8/bH7KpmQDFiBn30zykLFdZFhH2WVKviOOZaZZgz94nXVf0pkXT74hIdVUOZlEWsx2oXArnT3VzOVizJ/+lRNkYyDItNjVYq6jVh8+Pmp0t2GgIOIZT5oUzmspk8w+KMgn+TTkNM90AJ7uoe1Ezm9CbaU27b6TkeU9pZdSGFPzvPJzYaNIkfakuRjtCYeopffJH
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dW9qZFN1NENac2VVT1prN3RDL1I5MDBMMkU4SlhSWlFTMWMrY081Z0o3VWNR?=
 =?utf-8?B?aU9EKzJ6LzhlWTJvYXdCVWs2UXFqSjFxSVUrdnVpalp3YnNjTzRZaXVIU3Nm?=
 =?utf-8?B?akhZRi9ZVnZPaml5YWs0d2JFZWZ6OTIwNDRxaGUzdDFDZVJYQnBwTGI4aWZS?=
 =?utf-8?B?SWhJRjdleTRpRTJqVklrb1dWNndkV1B3VkRBLzJ0VExyQ1RxK1NzL1ZlanRw?=
 =?utf-8?B?cmZNdW10M21nYWVtUUZNY2pCWkN3N0E4V290TWQ3VnpFUytOZVRyNlFoUDM2?=
 =?utf-8?B?ZDdodGl0UjNnYWxBcGsyZ0YwODhwYnlNOHY5OGNXUFpOaER2eXFHNzhEbTVz?=
 =?utf-8?B?RWFCWktDbG9YMFVoUCtKc0lBMFVTOWF6UUt0LytpQUpPZzRrTkJNMHNBcGpi?=
 =?utf-8?B?YjZOeFFyK2RFbFFKUm0zbWJRalRXY2FoVUZuSWxUVVBFdWt3WXZuTHBrTTl6?=
 =?utf-8?B?WWQrS3VudHp4V2ZxU3ptdmR0Rld5NzRvY0loK3g0VWZhckpYT0x4MU01Y2U4?=
 =?utf-8?B?c3ZyQ1BYcHp2UWF1SmhrSTFwV3d1eHFXck1qMXZYempFK0Y1OWNWUHVoZVhZ?=
 =?utf-8?B?TzRmdWd5MVpDa3RNencydlN5TTh3YkxGRnpVZnhlbTF6T2tEeFczNlJQT3c1?=
 =?utf-8?B?UEFFRlJ2bEJVckVGbkVDQkxFV2JTcnB1TjNVQ1pmYnlPc0lVd216TjNyREpJ?=
 =?utf-8?B?ZlhwQzNhNTJyU0VNZzhnMVgvbk9PWWE3RnAvVDZBc0JKNG1pMEw4eHhCVFpO?=
 =?utf-8?B?bUUvb1YzTTB1eDFTSndEdmNDSUE0a01ydU5BRWdRZTZ5a2JYVXZ3L05QbVhJ?=
 =?utf-8?B?VUVTQVg3VTBuREQ1UE9jNnIxLzlyR1lGOGlRd21UQlBra20zaE1XNSttOCto?=
 =?utf-8?B?ak55SXE1NVNxVkhpanRDV1dTNWFjM2NjUTVqNHpzR09ialIrWllDREFENTla?=
 =?utf-8?B?Mmg5NmI4amR3Z0NINGFicHhqZUo4YXRMQ3RiSEJFNlVXS09sVjRlMXZQZi9F?=
 =?utf-8?B?Z0E0bFJmaEVqQ3NxZnd6dGpoQkhGZXpzM1JiYm5SOXA4djAyWEtuK3ZjRGor?=
 =?utf-8?B?Qk45NWtCRmlMdWNPNGZmbGVtZ004RUhmZmtPcUk0NnRGb1Z5S2hGVVpLekJO?=
 =?utf-8?B?dUs1dWNPcmpPK3lvQ2FTQTcweXdrcmw0UWZIdlppM1c5TC9VeHVQNXV4a2NW?=
 =?utf-8?B?M0NoM2pIN3RCL1RKODBab3JPYjZDeWt0VGIwbU8zZlpEWlVyNWNzb0w4NmxP?=
 =?utf-8?B?dk5kVHMwbkNTQXZYZWhJWVk3dU5tN2ZyZThFSDA3UStKNlFTaTh6bDVnaXZt?=
 =?utf-8?B?amJSYkxXdC9vMi9BYmhxM3BVQmczVGd6dE9DNVVZSU9RV2RhM1lUQ1g0NjEz?=
 =?utf-8?B?SzdNRFJWaC9LMHJTT08xaVVWaGRCbENzSm8rRjlpZ21ldzJ2RENmVlNaM0pa?=
 =?utf-8?B?SnU5aXEvMDZVMHlSOGxIYjBKdTJnb0JjOEVjNzhCMUFTMlBLY2FzMVJsb0hj?=
 =?utf-8?B?Z3NVcStLbTQ0T3NtUUtNeUZiakwrelQyaWFyMTBNeXZqWEJpeXpTUzIwaWNl?=
 =?utf-8?B?ZzhaZk9NUTZ2cVRtQmhhY0Z5bi8vME5CUGo4T0g1eXNTZVc4MHIrNnVYRTZx?=
 =?utf-8?B?eDliZFM3YnNWTkdkSXN5UHBSUTN4aVlsK2VSdHJmdFFBTmhmbXRZR1M1b2dT?=
 =?utf-8?B?NFZpN3ZkeUgreVMvV0s4MGEwSzROMGhXdGVNVTN3NmxBTHAwTm5LNy96Y3lr?=
 =?utf-8?B?bEdHY2E5UHhGUkhzSFVCZ1JQRCtqbUVtaE83V21Obk1Od2FpeFNhY09ZSjlF?=
 =?utf-8?B?MTNrYnRlRFFrdFlaTUI1VWlTTnRmME5weDRGa3paeWVRdklsMXVXNGIrQ3J1?=
 =?utf-8?B?b3ovTVR4MGJwYzFCbGgya0NUa1FSdkhFOUhYRHZvbTJ6elk1N050dVhoY0hR?=
 =?utf-8?B?eWVLdEFmSFBBUTFwdFZ4MkJrUDVzNXFwb09IcE5KOU0xV2lKbmdNS0Fld2M0?=
 =?utf-8?B?SkR0Y0pqSFhxMXBOYWNlWllNQngyUEt3TTRUQUJnTTg5Yklhcm42dlg5KzBu?=
 =?utf-8?B?TXBidGVsZHVRcG1QYlQzajZCQkxZV1NNZ0hYRjl4bktSZnRkNUVSeEI1WHJt?=
 =?utf-8?B?ajNJRzZwNGxaZEZIRkJhZEtwU3FuYWh0WTVFNytXTzhldENCQkJvWU5XRlZk?=
 =?utf-8?B?enhBaE1keGdOdW9mMVRwMVBVdjNJazk1b1M4QWNMeTlDcU56Y1JWRHNKRUJk?=
 =?utf-8?B?M1AvQjdTZjlleUROVkpLaGYyTDg0QTNWc3RaaTkwTnRJZjBzNW02T0c5SDJt?=
 =?utf-8?B?R2JGL1llRzBmbHVzVHlIcHUvQk1lOWtBMGFTZVRiQmRSWk5vODk4U3Y2US9u?=
 =?utf-8?Q?s1fdWr7Wam/D9LMs=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c0e1b562-002d-4691-443b-08deaaed4d91
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 21:28:51.9790
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: t5HAHs0XgqfzEx52ntod+2j810VZbOLxTmWyTTjBwyJBXf/oyWG4/q3Aifhoo79DtOjhS3/6HL3RQlthCQV78/jA61OgoVkhk2VFu4SJZpc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB6151
X-purgate-ID: tlsNG-d25034/1778016536-6DB6CCF5-362F71B6/10/73395122804
X-purgate-type: spam
X-purgate-size: 786

On 05/05/2026 10:10 pm, Jason Andryuk wrote:
> On 2025-12-08 08:39, Frediano Ziglio wrote:
>> From: Frediano Ziglio <frediano.ziglio@cloud.com>
>>
>> For xen.gz file we strip all symbols and have an additional
>> xen-syms.efi file version with all symbols.
>> Make xen.efi more coherent stripping all symbols too.
>> xen-syms.efi can be used for debugging.
>>
>> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
>> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
>
> While there is some discussion about patch 1, it seems like this patch
> can do in independently of it?

No.  One of the containers in CI has a buggy binutils.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue May 05 23:45:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 May 2026 23:45:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301140.1575464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKPRa-0006Vr-Sd; Tue, 05 May 2026 23:44:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301140.1575464; Tue, 05 May 2026 23:44:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKPRa-0006Vk-Nj; Tue, 05 May 2026 23:44:50 +0000
Received: by outflank-mailman (input) for mailman id 1301140;
 Tue, 05 May 2026 23:44:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wKPRZ-0006Vb-9U
 for xen-devel@lists.xenproject.org; Tue, 05 May 2026 23:44:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKPRY-006eM6-CN
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 01:44:48 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69fa80c1-5cb7-0a2a0a5109dd-0a2a4501adb2-10
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 01:44:48 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69fa80ef-c1f2-0a2a45010019-ac6904feb116-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 01:44:48 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id B71886132B;
 Tue,  5 May 2026 23:44:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3F9CDC2BCB4;
 Tue,  5 May 2026 23:44:46 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778024686;
	bh=b8j1sHpjkVrIyErITFXadqJdjC4rkucTFOGDYG9cubk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=p7fWhtDUJAH9gqVJbuN752kRyZ76ePntis6fNOYwoZLg8g/qMt01rjU0RndH+mYFu
	 cvV9ZeQOpKeSAE4mKJdKbVIB44KiAQFgea6UNQFJpExpgCfkb9EhYteYi3aQwo/XHy
	 Z8h79KNMow/J9YOcrfuxiuPizgpz2QFHyYy0OpHOXn9SHoJOimGyQd0/6OHRzUMunB
	 7qa879iKj9F9iLs1Br3HJpkCtZ1YGMncRXDCk6IutrRoJcVG71jRnjlAdBtHjJOpDw
	 n/z/1pcTKHM+p0sMaLa4iTTdDlosACv+PvXVgR0T01eUkafOZ/FbtrHQxvKXg0V+xd
	 rgZhF6uU5uFDg==
Date: Tue, 5 May 2026 16:44:45 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Andrew Cooper <andrew.cooper3@citrix.com>
cc: Xen-devel <xen-devel@lists.xenproject.org>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Michal Orzel <michal.orzel@amd.com>, Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v2] CI: Refresh the Debian 12 cppcheck container
In-Reply-To: <20260505191708.1432070-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2605051644330.512397@ubuntu-linux-20-04-desktop>
References: <20260505191708.1432070-1-andrew.cooper3@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-d62444/1778024688-B727DFF4-71B108DF/0/0
X-purgate-type: clean
X-purgate-size: 598

On Tue, 5 May 2026, Andrew Cooper wrote:
> From: Javi Merino <javi.merino@cloud.com>
> 
> Rework the container to derive from bookworm-slim, and to build and run
> cppcheck as a normal user.  User heredocs for readability and use apt-get
> --no-install-recommends to keep the size down.
> 
> Changed the libpcre3-dev dependency to libpcre3, as the -dev package
> is only needed for building, not for running.
> 
> Signed-off-by: Javi Merino <javi.merino@cloud.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>



From xen-devel-bounces@lists.xenproject.org Wed May 06 05:56:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 05:56:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301155.1575475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKVFJ-0006aj-Vk; Wed, 06 May 2026 05:56:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301155.1575475; Wed, 06 May 2026 05:56:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKVFJ-0006Zv-RA; Wed, 06 May 2026 05:56:33 +0000
Received: by outflank-mailman (input) for mailman id 1301155;
 Wed, 06 May 2026 05:56:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <penny.zheng@amd.com>) id 1wKVFI-0006YJ-J5
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 05:56:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKVFH-00Ee8w-VL
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 07:56:31 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <penny.zheng@amd.com>)
 id 69fad800-e002-0a2a0a5209dd-0a2a4501c61e-26
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 07:56:31 +0200
Received: from [40.93.194.16]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <penny.zheng@amd.com>)
 id 69fad80e-c1f2-0a2a45010019-285dc21007f0-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 07:56:31 +0200
Received: from SA1PR02CA0021.namprd02.prod.outlook.com (2603:10b6:806:2cf::20)
 by DS0PR12MB7947.namprd12.prod.outlook.com (2603:10b6:8:150::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May
 2026 05:56:24 +0000
Received: from SN1PEPF00036F3F.namprd05.prod.outlook.com
 (2603:10b6:806:2cf:cafe::2) by SA1PR02CA0021.outlook.office365.com
 (2603:10b6:806:2cf::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.15 via Frontend Transport; Wed,
 6 May 2026 05:56:24 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F3F.mail.protection.outlook.com (10.167.248.23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Wed, 6 May 2026 05:56:24 +0000
Received: from SHA-L-CHUTZHEN.amd.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 6 May
 2026 00:56:14 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OIuZQ3DGfjSZC+i8p6gDae7XaKi6S/CA7psEprco7bAGuxHaoqdFO5AkCcVDJrK7uolEFf+g7LHr9jjAiynVZV4Ud7mWuv5BKNToBTWRrgEuPnyJdzbAaWDPclOmegjUT+IUTLv5USrSuAfteLBrRW8kxWHdRY14SRj1cmPM6mbTkVuQhYPfOkctwXSIO+AjdL+OlInuXJMBtyhgi5qVrQEQJo5WqOdiBA9NOooZlUHNfsQnBoopebKzp2uX7Y3vEaorOfw0EOlvqS+7ma94bp3ffBZhYnUoUSzG69zXk3GGtLSaBbIJQ662suCVt4oJYfyFCB15IoZ9yy+JxtS7Mg==
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=gP1rZp1C6zAfw8kYloxp2KYZbgQfD9pbG7XPB4ULjcM=;
 b=vuoP1wPgDbXhaY+o/rMAEeRsZQBnbg1arj/ag5eA6bSWeQxxLQyo8Y5pV2ijeXhBlTHa+QSkm3rIEWoOh6NMoKAOHTTA6dc94zbPwJBW4RKIhHSkb7i0UWSbXjAD4mNAGg6a8WU2ROOnr1KYk3Kbb3qJCEqAegMqtUUcVMcYgQHJF2aKAn8U3afvZ1e2cCu1+hBaDZgrLP4gTh5Z71kl2kbxS/64pFMb8idGHCKD8n8fDsFLzdey++9UwsWB4368OpmO4x6vjuNwmnd0xn2NwSm8hnEZ8HKsxkjfj6NH0Nx/V14jG68TaHeGm0zuvixZB7YLREGiPAofLn5ORi8Wkg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=kernel.org 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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gP1rZp1C6zAfw8kYloxp2KYZbgQfD9pbG7XPB4ULjcM=;
 b=f7jcfqm+KHC1rqVvqZ2q3IFcHaQ9Geea3oJ+6fX9OUow65R7HN/r/GpLLdPKn+WoygOAw3ZvGsHWxA3DyUja3PmsfYgc9a4swgVbk0GMDvya2azfPTw75eyn973kLpwpPyWjC6tTQZw5tIrA3wCuW6mftrMd+iU725MBOdmDkAU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <penny.zheng@amd.com>
To: <x86@kernel.org>
CC: <ray.huang@amd.com>, <Jason.Andryuk@amd.com>,
	<stefano.stabellini@amd.com>, Penny Zheng <penny.zheng@amd.com>, "Mario
 Limonciello" <mario.limonciello@amd.com>, Yazen Ghannam
	<yazen.ghannam@amd.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
	<mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen
	<dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>,
	<xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>
Subject: [PATCH v1 2/2] x86/amd_node: reject SMN access when amd_smn_init() did not complete
Date: Wed, 6 May 2026 13:55:19 +0800
Message-ID: <20260506055528.476493-3-penny.zheng@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260506055528.476493-1-penny.zheng@amd.com>
References: <20260506055528.476493-1-penny.zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3F:EE_|DS0PR12MB7947:EE_
X-MS-Office365-Filtering-Correlation-Id: 4b19c043-6684-4e11-fa26-08deab3434d1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700016|376014|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	rRckkP3aBlyKpJ0JzlJhaH7wsLTuUgan2bBVLQb/lIlh3jq9TbXEC/maTaqXnA3p+KOFPB2WnVdE0JVR7LHvjfDK0KKdC4M+YYNbtKUN8O3B3mIvpL/0YQViEV8BkcizmGwKEnVsOdxXYfo3JnTwuTl9sOFL0/t+MkbZhz1fXkJoMWDqkSSYv+pNl2s4epDEt+uvUY9k2KHvj1Av0H1tv/J35mj8Z1bd1utvg5zVUoePREBNDYNMPgQNEb7mrq+/DtaEhP46N7NcUnpLy2QT86ylBYkUvgP75xqHNZcbM2B45jMhHtr5IfiYIQ28Vx7wrGJOY1hHJyxiLBm2bBJxQPkAfU23qtxUevy75TbwUsfUSdJmN+43fXTFp70mg/lpLCwXo9q9VpoNapX2LyhuAYfj5HJm3APs6XBh65MBu0B3Wr339DfA+LckWdwV5vs4RECUAnB4aOZeCiJ+L7+qOT74mB1AbyDQQCtN3eBsAJrTp++mRxY/KgbcnGr3yfwGNQ/7D2paE202UltBTEgRAtrsTGizokittgKyfP8sFgzdZQw5PrpvRZ58ldRVQJs0XmQptp9BpDHrmAx7Xy6EJvelLI1sFu4xXnhyNTkyhIOOc9vU2MhJP7J1bt0qB2tLSR+SbHL09sYSaeZfmyiUrhZk21QeR7e60/wxAqMHb6x50NOQLlGUNTA5WMFbDdx5hj2WGnsBsb0p4Lv8zwjOsmoR0Lh4uvd534RHAQbv6Mc=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700016)(376014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	mXlVNtNoo1kzNJh+imVuy1XCt55xpUiuUDxjjkMAl8pFT9/CRKPgt1GQRf/r9cBPnpteeU83OnlPkexoYYHuoyoXhpCSA1GVDnt9A3oiMtwz35sRv1XOlAdkLXTGZOH0b42+qZuSpy77jjNRbJ6kYRl4sW+ht86bNLSYR0WdAjeTLZeE2Ppr/axbgyxZQ0jRfvoN3AkIKyNeIROrCvqmp0nfTV8BjGcuzvTVW7jmHWENvOjcPvILp32Ugs9sLim4E8WlTOebbQchJddVJD9c7rKKg0Le3aIkstFutYHxDBfrja/VcZeofuF02gjI5bRxL1CCQMifEBdrFbv2NcP8ObmmFL+WdxF/YHnkaCUT8BSNqWufN4FeRbwMY1a3wqXP5kZQuhS9+7Mx04hBQcJRdGiVL7/EAY63PtI5steD0dMCSvTalNSdig/3tugytaRL
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 05:56:24.5348
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4b19c043-6684-4e11-fa26-08deab3434d1
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3F.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7947
X-purgate-ID: tlsNG-d62444/1778046991-B5E6BFF4-2BC44A69/0/0
X-purgate-type: clean
X-purgate-size: 1820

amd_smn_init() can fail early (e.g. -ENODEV when num_roots < num_nodes,
-ENOMEM from kcalloc) without setting smn_exclusive. In that case
amd_roots stays NULL, but the existing __amd_smn_rw() ordering dereferenced
amd_roots[node] before the smn_exclusive guard. The first SMN consumer (e.g.
amd_pmc_probe -> amd_smn_read) then hit a NULL pointer dereference
instead of getting -ENODEV.

Move the smn_exclusive check to the very beginning of __amd_smn_rw()
so a failed init is rejected before any deref. Also zero *value in
amd_smn_read() on the error path so callers never read uninitialized
data via the subsequent PCI_POSSIBLE_ERROR() check.

Signed-off-by: Penny Zheng <penny.zheng@amd.com>
---
 arch/x86/kernel/amd_node.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kernel/amd_node.c b/arch/x86/kernel/amd_node.c
index c896060fe0df..cb9ed022c53c 100644
--- a/arch/x86/kernel/amd_node.c
+++ b/arch/x86/kernel/amd_node.c
@@ -88,6 +88,9 @@ static int __amd_smn_rw(u8 i_off, u8 d_off, u16 node, u32 address, u32 *value, b
 	struct pci_dev *root;
 	int err = -ENODEV;
 
+	if (!smn_exclusive)
+		return err;
+
 	if (node >= amd_num_nodes())
 		return err;
 
@@ -95,9 +98,6 @@ static int __amd_smn_rw(u8 i_off, u8 d_off, u16 node, u32 address, u32 *value, b
 	if (!root)
 		return err;
 
-	if (!smn_exclusive)
-		return err;
-
 	guard(mutex)(&smn_mutex);
 
 	err = pci_write_config_dword(root, i_off, address);
@@ -116,6 +116,11 @@ int __must_check amd_smn_read(u16 node, u32 address, u32 *value)
 {
 	int err = __amd_smn_rw(SMN_INDEX_OFFSET, SMN_DATA_OFFSET, node, address, value, false);
 
+	if (err) {
+		*value = 0;
+		return err;
+	}
+
 	if (PCI_POSSIBLE_ERROR(*value)) {
 		err = -ENODEV;
 		*value = 0;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed May 06 05:56:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 05:56:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301156.1575481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKVFK-0006eJ-8Y; Wed, 06 May 2026 05:56:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301156.1575481; Wed, 06 May 2026 05:56:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKVFK-0006cI-2N; Wed, 06 May 2026 05:56:34 +0000
Received: by outflank-mailman (input) for mailman id 1301156;
 Wed, 06 May 2026 05:56:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <penny.zheng@amd.com>) id 1wKVFJ-0006YS-1f
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 05:56:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKVFI-00GH5N-Eb
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 07:56:32 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <penny.zheng@amd.com>)
 id 69fad7fd-bab6-0a2a0a5309dd-0a2a450aec6a-44
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 07:56:31 +0200
Received: from [52.101.85.7]
 (helo=BYAPR05CU005.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <penny.zheng@amd.com>)
 id 69fad80d-56b3-0a2a450a0019-346555076118-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 07:56:31 +0200
Received: from SA1PR02CA0006.namprd02.prod.outlook.com (2603:10b6:806:2cf::15)
 by SN7PR12MB7177.namprd12.prod.outlook.com (2603:10b6:806:2a5::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Wed, 6 May
 2026 05:56:23 +0000
Received: from SN1PEPF00036F3F.namprd05.prod.outlook.com
 (2603:10b6:806:2cf:cafe::9c) by SA1PR02CA0006.outlook.office365.com
 (2603:10b6:806:2cf::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.15 via Frontend Transport; Wed,
 6 May 2026 05:56:23 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F3F.mail.protection.outlook.com (10.167.248.23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Wed, 6 May 2026 05:56:23 +0000
Received: from SHA-L-CHUTZHEN.amd.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 6 May
 2026 00:56:07 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ABgYIuFm11r8dreV7cA0DJwFITnbkkyeK5Qo9Php8QrzEeJiU1399+l8JhKRIiVp8zUrs7kQIRv3pAts6y/Tr3K4AxCiXwst48Yzg0+jxNfPrd56oLp3JBGyOjEIR4qnuZkXsWxSwLbzFky5mR+t+OArIUmdJeRV9MmQd1llEaPrToM1xb1fQPWkywTKHeX3TqqpVUTDXWeh2znVcZDgcPFFh7EoLsgG4SgxvM4MuS/xsTx7Ur6EitdpBAYCKolvCDTuHjAP+1wyHoZb+vP9P6k1VEjZWju1zTSvtCGqyE/2sXfEJmSJNalQS54XTJTw/eDmxJefnQtbBqpsG5k/iQ==
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=HtYmF59T1+vlFA/MbHNkN7Ydeg2pEly/nEThOGxN8ek=;
 b=UTFqJlOcgLd+dl2+0nTQkcqINSb54z21kSN91HdVrnNxJG3G65pUIkAG0l2UBgfC8r+M2sNj3LloifFURyTYEw9HjhqWV0kJQyk8Kfcd9xV22NAZI3tJdNim9en8qLaC9zZg+0JfLLLdlmpBKSys+fghtGp0xn6bIhOd2hWKf69y3feHP2wHoB5y5Gu4+OMC1fo6wkAgZpBQLHulgSnI74qnZ9k4o7+NI/qH1q7Oj+jHdUxU0vkAqA7hLq2xpJPoHA3boYhloTb9EGQepRLVYCWyXUd1JgN7LAxdAhKg2f7JurX++qi0RCkEYR5kA1xuvt6g637kp+fyxkMRbxoEBA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=kernel.org 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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HtYmF59T1+vlFA/MbHNkN7Ydeg2pEly/nEThOGxN8ek=;
 b=t64ULJ4i+DqEEuWnfBNxCbjxcQz6WWxjOt7zc/s7QpKYM4G+PPrfWEtCcrDI+HoSdGOH6/uJfTnD/fcQvbJPLWE6ntXFw+cxPUUGMzFsrqvxaiKY7n4SsXtrBQ1HZd0THLi8YHxCamt4P2RvVyCUWTgLzLl3oDtBe8EISynZ788=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <penny.zheng@amd.com>
To: <x86@kernel.org>
CC: <ray.huang@amd.com>, <Jason.Andryuk@amd.com>,
	<stefano.stabellini@amd.com>, Penny Zheng <penny.zheng@amd.com>, "Mario
 Limonciello" <mario.limonciello@amd.com>, Yazen Ghannam
	<yazen.ghannam@amd.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
	<mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen
	<dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>,
	<xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>
Subject: [PATCH v1 0/2] x86/amd_node: harden amd_smn_init() against Xen dom0 topology
Date: Wed, 6 May 2026 13:55:17 +0800
Message-ID: <20260506055528.476493-1-penny.zheng@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3F:EE_|SN7PR12MB7177:EE_
X-MS-Office365-Filtering-Correlation-Id: 1e8aa03c-bfff-4236-e045-08deab3433fb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|82310400026|1800799024|376014|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	1NVEyBkMl3LqMEGt3NC80/SzFN0Hpg6xvKTMYGPUfbUj+o3m43e3P/GFMl7j8LgTmd0cEyjE0W+LysZM1VytePiUkHviB8EAzKcwVu0EHtPWD5aZKrGpVWDTlMrJQ8ngXg18qI3TEamqGggEjBPY2OunV8flVlCYimLTLEstjWxbUpsxbLJKyNkOhlYYhlVgNgALKsImOrTsw12n2tKTfg84koAlywp+NeqiEdnIViQG9Qmlpmi16qbZemWEYaIpOthItOFH61Ut2l5pG/nfbzcmXef8YbAlOzFMTvM4jDIxHjxcVsSd3PopNc8hmiJnNCraND5uMiFCpAVdU4DP4p/mP7K2KCHzKUTIxS8/VE5EPTGZwFjPXFMmY5boz9+DJBgNjzKLvQB4r8Rn4z8hrLttWi8PsZo2y+oEyFGfa/6v2qg6Uvyezb5PpxpDPpHoWGRv8qrZ7KJWC0937/uhX7JbWQH0hoUjVhKBlfCbzQoCfAlIky3ut9vzQmaNcRVW8Tn68QhTqR6B8+ahXItUsIif120DoNvg/Sgg3W8o14DGguxRl9FAx0JGlMBFL4kFQHiHtXUWWEs+JzstBnRbhkbFVDMaDVlck7J55+x8uVL4vTuJjbde+alI1RENN85yKQJiY0cxTstwu1Y2jD+oe1vc/km3nNpdWvWL8OYEQu+edm7cl/isd25bYM0vvksiJeTTluaQb5lwzsUN92IKsdcJPpEvRKjEKEUxm5wv2Yc=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(1800799024)(376014)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	XYJrrHJ4b4FCGJ9KDdD1K1CPGDtG7/qztUH2o+cpSMg3ux0VNL6RooTSTIJIjJxSA3Xo3Y9uisdahDYebfT3F2qXaAXlVWNjVkn1m1CNmKMHUOluzyI3VLwffFiWNWokh6F7wuh6DnLuxdtgo+C14+yDWuTtYGXwsyoR3bhvnv/sExlPskZRmnVCu4Z/J9kL0fsjkTT5oBtQg8tFQny9WoKRm3S1/xaId4/gbCmWNiOguO92d+wV6uqq+ETxsqkdT3mAe3AvsbYeD4Y2mjZx7EdnVpuXm1mloSJJKL6AAplOwRd7M6aRiLJPCCS0gEYk4A0n3sm78JLwEb68X955cb0imcrlDPWfQ9vo2sYZooivw1TFLwS1Vo5ME/edHnDKwsskejCXNuTB6Q9uTK4LDaBqM+oGCcAP9xngdp1yEDH7p6diOoH0xVWiKg8JMoS+
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 05:56:23.1329
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1e8aa03c-bfff-4236-e045-08deab3433fb
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3F.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7177
X-purgate-ID: tlsNG-4011c0/1778046991-4797E8B7-CA23AB72/0/0
X-purgate-type: clean
X-purgate-size: 1221

While booting a recent linux-next kernel as a Xen PVH dom0 on x86, the kernel
oopses very early during fs_initcall:

  Oops: divide error: 0000 [#1] SMP NOPTI
  RIP: 0010:amd_smn_init+0x188/0x2e0

Followed: on a kernel that survives the divide, it will fail by a NULL pointer
dereference from the first SMN consumer (amd_pmc_probe -> amd_smn_read).

Root cause
==========

To prevent each dom0 vCPU from looking like an SMT sibling of another
vCPU, Xen synthesizes guest x2APIC IDs as vcpu_index * 2. This spacing every
vCPU's APIC ID by 2 can push the synthesized IDs past the package-field
boundary. Linux then infers more "packages" and therefore more AMD
nodes via amd_num_nodes() than the platform actually has, while the
PCI-side host-bridge scan correctly reports the number of root complex.

The fixes are tested on Xen 4.20 PVH dom0 on AMD Zen (16 vCPUs) on top of
linux-next/master (next-20260505).

Penny Zheng (2):
  x86/amd_node: avoid divide-by-zero in amd_smn_init() under Xen dom0
  x86/amd_node: reject SMN access when amd_smn_init() did not complete

 arch/x86/kernel/amd_node.c | 23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed May 06 05:56:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 05:56:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301154.1575472 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKVFJ-0006Yg-OX; Wed, 06 May 2026 05:56:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301154.1575472; Wed, 06 May 2026 05:56:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKVFJ-0006YY-Jn; Wed, 06 May 2026 05:56:33 +0000
Received: by outflank-mailman (input) for mailman id 1301154;
 Wed, 06 May 2026 05:56:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <penny.zheng@amd.com>) id 1wKVFI-0006YG-3b
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 05:56:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKVFG-00GH5N-NE
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 07:56:30 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <penny.zheng@amd.com>)
 id 69fad80c-bab6-0a2a0a5309dd-0a2a4502cc5c-6
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 07:56:30 +0200
Received: from [40.107.209.16]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <penny.zheng@amd.com>)
 id 69fad80c-af86-0a2a45020019-286bd110cdfa-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 07:56:29 +0200
Received: from SA1PR02CA0010.namprd02.prod.outlook.com (2603:10b6:806:2cf::16)
 by SA5PPFD911547FB.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8e4) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.26; Wed, 6 May
 2026 05:56:23 +0000
Received: from SN1PEPF00036F3F.namprd05.prod.outlook.com
 (2603:10b6:806:2cf:cafe::d5) by SA1PR02CA0010.outlook.office365.com
 (2603:10b6:806:2cf::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.15 via Frontend Transport; Wed,
 6 May 2026 05:56:23 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F3F.mail.protection.outlook.com (10.167.248.23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Wed, 6 May 2026 05:56:23 +0000
Received: from SHA-L-CHUTZHEN.amd.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 6 May
 2026 00:56:10 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gT5sSpRgbJ3+NfaH6JETfRsV7BQRYWKAR2FC2YK2Ap9XXioOmZ+uwGr/MeK+dtQvdiPNdAzkkrbyXhygoyHAEF6MPtS0l4IiHwL4PPTb3AvWf3G4PAd9jb1ywQB1EUaZu1jkDSy/VlLirOQT/DMKCLBkVOd0r+D9jziCN2PeS8EAKe+GEZvIJSTFyNsJCTLoy4uXd4T+axCIJBftAcq9Fmb28KocM4Svxg8TyhjCPx+uV1+HuIo2a+5TWfZc9RytGZw3FQj2UICSRLASTe8igEsUeMWRGupD8v6sm+XJXJOJgV51lzrScnKakYcpG8M7aAfrr4xd63QBrB+kVqhRpg==
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=WEGHCDfQ42PqJ5PokzCA75qVSyr4zXg8komsg2bzaf4=;
 b=jUK7tWwGYwpjpcIQXvAtNXJwgr9ie1zb1eZclxxLhEyan2V5dlaTUQQjwr61mCTWGIiA1ng4j/VWVBEfmyGfoFcvKoiVENeWwccm2cw0yoe+5J5LmBDj/I4+7nafAwwT0VLRoXsm0bpypYPKttqMdX4dyTRN4feZsmPbGBwX7dh/jDn8JdvqaFIn3wm0LDSd2WWmcXL9Rhv7a61xxjEN6+yy5jIkCKHohRtwWN6OEsJ+iuV63XuyAxayNxRbwHlXxy6cddz6Nxkmd4pdHuNQhLQHTQbOzf1Ihmiv78L/BUzVhDwXWjvh7qBv1p4GoZn5Sr0kNdFHwplVtslvkN1wVw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=kernel.org 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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WEGHCDfQ42PqJ5PokzCA75qVSyr4zXg8komsg2bzaf4=;
 b=swvpuLYRJckBccxYUcZMUMJbqRCtVtN04L9QfAbLqZZDuiJiOBFmnS5Xyv/87OzWBKNYxxUuN3utL4PNmZ6kTRAlwJbs6vYO6EiTHNdUGW2sVj/MIz+1IH3FdBisXqpXpkZ/yg5J2UY2+0a6lV8lDVliYFCjE8C7jtNMBJehDbk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <penny.zheng@amd.com>
To: <x86@kernel.org>
CC: <ray.huang@amd.com>, <Jason.Andryuk@amd.com>,
	<stefano.stabellini@amd.com>, Penny Zheng <penny.zheng@amd.com>, "Mario
 Limonciello" <mario.limonciello@amd.com>, Yazen Ghannam
	<yazen.ghannam@amd.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
	<mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen
	<dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>,
	<xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>
Subject: [PATCH v1 1/2] x86/amd_node: avoid divide-by-zero in amd_smn_init() under Xen dom0
Date: Wed, 6 May 2026 13:55:18 +0800
Message-ID: <20260506055528.476493-2-penny.zheng@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260506055528.476493-1-penny.zheng@amd.com>
References: <20260506055528.476493-1-penny.zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3F:EE_|SA5PPFD911547FB:EE_
X-MS-Office365-Filtering-Correlation-Id: 8b51d57d-91d4-4d7f-2040-08deab343453
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700016|82310400026|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	cy+qAi7I4xJtTYFwg/Xv7Tf5ht5MGr4cHFOe3vAYX6IGgQHjPpYRnQsWan9wkuai6Jj+offQtYO1a1DZ3DFKZOBJ5o/noynfsAfbgt2A4U8d5cTei0ixs27v7xMT+2yojuHuNqM+hGf06B6nIbCwUFZKWiJ/cZI1475bzWKqlCoejTdvRZbL3UpWw6SMh2MVKYA9rtT860nQ0zuwKV2iWxqjasmZXtM/lD3hVrYCyFM1FT3Im9Y9whYUOAeLwWycJHhYp6vQtzZU4GicFEkLe+NI09m+z73+PTru7C9xHVc8XIwEZYMNiI7DXmHTXyhjMpdPF9n8jn7uoQqPM9fqKYinEot94XLBVeHhkpFrxy+lN3qCs7aIKnsX4xwZFWHcHy/oYvJHrrXY8AIspkxkFKCFmn5uOFnjOPKKqblVe6kDqznl65NqqhDHsIyikKOZq4MP4M6EIe8uvqxw0ES8leypt+1rolay4rEIxbTUrJUeHkTZVsJx/qCyadgF3ph7Yl3nfJrwg23rWAlcWq6eTFvBsZu3P3b1UEKk3h8kMglSpJweo+d2thA8o+8Zb2Us8uzl3/faQMGRdim3S4+VSdUYXA1BSoSeDkUWCA9kGO+7qxKwMgcZZEErYgtpMLkjQYCaQFn8avXeon9FTFo1V1bkz6gO6FuWUYNF/6mCeE79ycMdQ/b/p1iqYTlXuk1WeF5TsMx9HsnBbQNy35P6z1y4ywiXQ3wAsNZEKmTwx5Y=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700016)(82310400026)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	++9QBZu2qMm3vsjUnSr6e/ceM3c0R7gkHyjkPA3d39jAg4M4Pa7Qsqf233LskQMdMpJ55jhPitso3p9oVCLA3rOg68QI2Z/75Cps89DZL2FwE053LrUHxaQ4OiZZS0Gqv1rgtktWwkjn3uDLEcenMs5Z3jaGjEAQYaB/Qi392OueHGbE0JmpXmLAg4U21UNd/9Y2EKwUR5EHYaBG7fCPGDXFN04TwyoWlGyrZhj7vr1akeJOnni2JY6NqugsvmZNnKCfgomEU0QwTyess8jlgJvD+mWXIIVlhDBpPPMznA8qkIe7xIQ6tJM+MRt7cxHt0MpuC2y4lrAXtpwo74IggP4eyEr33IYWUVry2Gsxmqf2lt36dIIhebhGF6z7HlYbDiNNV+Xo4W+G+HMypvfagZGULW14DH5D+Yeza3FzAB+08/8fbqLqoXC+wStUWgQa
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 05:56:23.7040
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8b51d57d-91d4-4d7f-2040-08deab343453
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3F.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPFD911547FB
X-purgate-ID: tlsNG-720697/1778046989-83961161-0B5678D3/0/0
X-purgate-type: clean
X-purgate-size: 1563

To prevent each dom0 vCPU from looking like an SMT sibling of another
vCPU, Xen synthesizes guest x2APIC IDs as vcpu_index * 2.
While the spacing every vCPU's APIC ID by 2 can therefore push the IDs
past the package-field boundary, making Linux see more packages than
the platform actually has. amd_num_nodes() inherits that inflated count,
so num_nodes can exceed num_roots (the number of AMD root complexes
discovered on the PCI bus). The subsequent

    roots_per_node = num_roots / num_nodes;
    ... count % roots_per_node ...

then divides by zero in amd_smn_init().

Reject num_roots < num_nodes explicitly and bail out with -ENODEV.

Signed-off-by: Penny Zheng <penny.zheng@amd.com>
---
 arch/x86/kernel/amd_node.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/arch/x86/kernel/amd_node.c b/arch/x86/kernel/amd_node.c
index 0be01725a2a4..c896060fe0df 100644
--- a/arch/x86/kernel/amd_node.c
+++ b/arch/x86/kernel/amd_node.c
@@ -282,6 +282,18 @@ static int __init amd_smn_init(void)
 		return -ENODEV;
 
 	num_nodes = amd_num_nodes();
+
+	/*
+	 * Xen dom0's synthetic APIC IDs may imply more nodes than host
+	 * bridges visible in PCI config space. Bail out to avoid a
+	 * divide-by-zero when later computing roots_per_node.
+	 */
+	if (num_roots < num_nodes) {
+		pr_debug("AMD root count (%u) < node count (%u); skipping SMN init\n",
+			 num_roots, num_nodes);
+		return -ENODEV;
+	}
+
 	amd_roots = kzalloc_objs(*amd_roots, num_nodes);
 	if (!amd_roots)
 		return -ENOMEM;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed May 06 07:04:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 07:04:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301193.1575499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKWIh-0000Ec-4L; Wed, 06 May 2026 07:04:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301193.1575499; Wed, 06 May 2026 07:04:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKWIh-0000EV-0q; Wed, 06 May 2026 07:04:07 +0000
Received: by outflank-mailman (input) for mailman id 1301193;
 Wed, 06 May 2026 07:04:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wKWIe-0000EB-Pj
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 07:04:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKWIc-0063sG-Kc
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:04:04 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69fae7df-bab6-0a2a0a5309dd-0a2a4503e474-20
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 09:04:03 +0200
Received: from [52.101.193.33]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69fae7e1-672d-0a2a45030019-3465c12148ea-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 09:04:03 +0200
Received: from PH0PR07CA0005.namprd07.prod.outlook.com (2603:10b6:510:5::10)
 by SJ2PR12MB8740.namprd12.prod.outlook.com (2603:10b6:a03:53f::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Wed, 6 May
 2026 07:01:48 +0000
Received: from CY4PEPF0000E9CD.namprd03.prod.outlook.com
 (2603:10b6:510:5:cafe::e0) by PH0PR07CA0005.outlook.office365.com
 (2603:10b6:510:5::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.25 via Frontend Transport; Wed,
 6 May 2026 07:01:48 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000E9CD.mail.protection.outlook.com (10.167.241.132) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Wed, 6 May 2026 07:01:48 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 6 May
 2026 02:01:47 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 6 May
 2026 02:01:47 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 6 May 2026 02:01:45 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EYPNclZvw+imlcMxyqF8vyIsriVsIoqP3xRR9dYuNDh3yZ+6WTKzkuVqc2WEh+aGKf9LvcuJDCzZRnFyQrwFM1Iz4Vdu0hU4X8q5ViJU7qPNdU48hDG5jXkpf7OrrknYES1r0K8Xtc/v8z3NaD4CknE328WHkmFhRjLAZjaOatOgvCOWjXD2t8BlfZ+Q+JIul+z34NHLZjjPPm/5si99r0kYZVgTu7mpSwqF44DB2Li6KUCCCkZzhL8U5dH7ecFD/UsCKtJre8h/u2dDp8mIB/2KJnlUq/vsNjhg0niqpbWlbdJfiMplXvldYqsAqbVJ/BJgfVsNntWRSxsj10oD1g==
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=Fg+lytjX2eC7vk4fU66yjnfexhWiq5rgVoT1c2N5wDg=;
 b=Uc0PjT9VMEBzNojtgSRiLM//64RnZodrJm/oaE6PmYDbefM/7qsbkpMNwjGsfCoNo9NiWi763OHds78a0g8gFfA5bkeyC6+Jjcw31gg0Ssmjxq7YVbbEYidfTq9gGyiEJa7QraQ3m0dp0E3gg0NUS/frzmVhWG1Es/5x0AxWgRN7gNAiEGL04jD73Y9TsHxLZOA3RFuQW0BlcJ2/NQdySxH/v5lfO6NT9ms6kzNXnSw+b9R7f8h9riPDRM2xzpncBxayd2CZlJPXvr3he1c7r7Su6XAzoPHbeUf4z247npXGITJiAJ6njOZzzIo0Rwu8VUR7YZOIgCFxg/BgJmKeWw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Fg+lytjX2eC7vk4fU66yjnfexhWiq5rgVoT1c2N5wDg=;
 b=zojqloKswAjeR2nh53EBWtLKs2w5lrn6JJuduH+DcPB36l7A1Bpyqc2XfUYrpoKe9q2BSIOjpTZ7s8Xtq9PnHz2+nB2/xQnX299APs0PEdlQmK7md9uV2ch8ZviMXXLtQ2crtaGlF1t+g/kWodQ9vmAa+1S37WsE7dOQW+Zc/ZU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <c0e75870-2673-46b2-8ac2-2820fca8eb28@amd.com>
Date: Wed, 6 May 2026 09:01:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/pdx: account for frametable_base_pdx in
 generic pdx_to_page/page_to_pdx
To: Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Teddy Astie <teddy.astie@vates.tech>,
	<xen-devel@lists.xenproject.org>
References: <20260430125103.401811-1-michal.orzel@amd.com>
 <20260430125103.401811-2-michal.orzel@amd.com>
 <661c18d9-eceb-4a4e-ac2e-37a6931e06b2@suse.com>
 <d7b30467-50ed-482c-9046-6a51d43bb514@amd.com>
 <8c5424c1-113a-4f5e-96bf-2613f28b8bac@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <8c5424c1-113a-4f5e-96bf-2613f28b8bac@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9CD:EE_|SJ2PR12MB8740:EE_
X-MS-Office365-Filtering-Correlation-Id: e0e8820b-f4e9-491a-fbf6-08deab3d576a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|1800799024|82310400026|36860700016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	AVFPWnsbekT875JBqNZkCZPNu25949j0nkYXSQX2hUUoabvLlGVVgJARGVWyxEfIfLlVCbYtpIVsz0Enu1k4FKx4fmncX1PyIYXhl0Ne4BNw8b+AK2WzLicQn8dQ5hBnU6hUowv9juyPL/41yqOo3M3tqtwnwYxtj/ADRwk7t+jPcVPbmpVJnpMNkl/MNqaEwesQogAquq5xoiCatdqMBs/I38VkhYwaUOj9oLVSj7vQHWsqEpQFK3FboDgoAflR8xtxMzL0Hwf0G2soGgVfeIMWFPkkMPp509VNHcFJfPzFSK6nPrgmVzUAzkMc5WRPbZOYlONFDSMroff5x5sqqY6Z9ourft3LsBL2fElGUaG05qljyr0W5YWlOxImwNfhkaZshRpvWJlJqKS1P6DUnnDbMCkCm/XeUGZ/OBC898PJQOagDPIzsjkeacNK/6ZYZYhD35h8FTgjkkuPd9f2hSFe2/IPW5SVK+Ima+1GCD62z9ftCb0wRBROB36+6KnzcSdusrTe9Sv2n/BbNwnyEYeGwAhI+Ua6QCrIdNEZbRhXXkp+8kepg1NSSW9OjPh4Uzqjw+GxNG9Con8OAuKWhXAXgtUBG3Z3Ix3qgC5U0R3h1LYT78Go97MywUs+OEVTcVxbpFM+w8mcFfSSZoXmiyUKvlvXYpKubtnY4iy357oXRlanlWV49NGiU305yQo3QXdFCRZRE02Kqh4waWMnq+x2QvXxy4Sr8qfmhfrlkUY=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(82310400026)(36860700016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	o0qT/yoEs3ABHz4tj8yem7OkVtr8v745S1GYmPIL4vWYhLCCWEdsaCFmAhPHOS73Q9ehJ67j0yq2A5DVMaaFoG7h5BNTAUFdjm/p5sleASq54MsplHhFXJkTODNMXZuX5kqgUJzCB69ogoRzIbf6oWLvtQqXcJhOQGQeGd6CulJMaphDubZmH9p+rAI34Ryc4CZLVqcWCZSk6ltOM1PcO4Yzt1c0eUNoTOzSgp/1l+XptDzZG27TwusDCmdQ0CA8vkbvgIz+1AVJzgYYl2BDX7LhRlsWHfKjzc7/PkQ1Mrco1lDZmpQvq+HKjxOxF7Mpv+8cyiwreVkcpFCJ1wFwQETPr84rETbt4MbMQP60Fl35XAzhh1OTRQrj4kdFmNhDc/1fX1hWchrNHD/exfXlicgdcer2C0vE9o8jN9wQUl9/8z9q62pkxkaGqL5JtMJN
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 07:01:48.0559
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e0e8820b-f4e9-491a-fbf6-08deab3d576a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9CD.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8740
X-purgate-ID: tlsNG-33051d/1778051043-2A567938-9167F4E0/0/0
X-purgate-type: clean
X-purgate-size: 2662



On 05-May-26 18:11, Jan Beulich wrote:
> On 05.05.2026 16:52, Orzel, Michal wrote:
>>
>>
>> On 05-May-26 15:05, Jan Beulich wrote:
>>> On 30.04.2026 14:51, Michal Orzel wrote:
>>>> --- a/xen/include/xen/pdx.h
>>>> +++ b/xen/include/xen/pdx.h
>>>> @@ -132,8 +132,9 @@ void set_pdx_range(unsigned long smfn, unsigned long emfn);
>>>>   */
>>>>  bool __mfn_valid(unsigned long mfn);
>>>>  
>>>> -#define page_to_pdx(pg)  ((pg) - frame_table)
>>>> -#define pdx_to_page(pdx) gcc11_wrap(frame_table + (pdx))
>>>> +#define page_to_pdx(pg) \
>>>> +    ((unsigned long)((pg) - frame_table) + frametable_base_pdx)
>>>> +#define pdx_to_page(pdx) gcc11_wrap(frame_table + ((pdx) - frametable_base_pdx))
>>>
>>> If you alter these, ...
>>>
>>>>  #define mfn_to_pdx(mfn) pfn_to_pdx(mfn_x(mfn))
>>>>  #define pdx_to_mfn(pdx) _mfn(pdx_to_pfn(pdx))
>>>
>>> ... how come these can remain unaltered? Maybe you have some special
>>> arrangements in Arm code, but surely in generic code transformations done
>>> should be uniform. After all
>>>
>>>     ASSERT(page_to_pdx(pg) == mfn_to_pdx(page_to_mfn(pg)));
>>>
>>> (and alike) ought to be universally true for valid inputs.
>> The invariant holds. There are two transformations on different
>> boundaries:
>>
>>   - PFN <-> PDX: the compression scheme — lives in mfn_to_pdx /
>>     pdx_to_mfn.
>>   - PDX <-> frame-table index: +/- frametable_base_pdx — lives in
>>     page_to_pdx / pdx_to_page (and Arm's page_to_mfn / mfn_to_page).
>>
>> On x86 the second is the identity (frametable_base_pdx == 0), so it's
>> invisible. On Arm it isn't, so it has to appear in the macros that
>> cross that boundary. Pushing it into mfn_to_pdx as well would mix the
>> two boundaries and double-apply on Arm (page_to_mfn already adds it).
> 
> That's yet more odd. These transformations should equally apply to
> MFN <-> page (i.e. frame table index) and MFN <-> PDX translations.
> PDX really is meant to be the frame table index, and at the same
> time (scaled by PAGE_SHIFT) the direct map index. Both (generally
> huge) tables equally benefit from whatever compression is in use,
> and hence also ought to equally benefit from that
> frametable_base_pdx-only sub-form of offset compression. The
> anomaly of shrinking only one of the two pretty clearly shouldn't
> be extended past Arm, and ideally would be addressed there at some
> point.
Fair enough. I'll drop this patch and update the second with a local change (as
in v1 but this time with a comment explaining why) not to extend this behavior
past Arm and we can try to make things generic next release.

~Michal



From xen-devel-bounces@lists.xenproject.org Wed May 06 07:37:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 07:37:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301210.1575517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKWpD-00055L-Sp; Wed, 06 May 2026 07:37:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301210.1575517; Wed, 06 May 2026 07:37:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKWpD-00055E-Pm; Wed, 06 May 2026 07:37:43 +0000
Received: by outflank-mailman (input) for mailman id 1301210;
 Wed, 06 May 2026 07:37:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKWpC-00054i-Hd
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 07:37:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKWpA-006Cfl-Cp
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:37:41 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69faefc5-5cb7-0a2a0a5109dd-0a2a4507dd94-0
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 09:37:41 +0200
Received: from [40.93.201.29]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69faefc4-229c-0a2a45070019-285dc91dc8f5-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 09:37:41 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS7PR03MB5397.namprd03.prod.outlook.com (2603:10b6:5:2c0::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Wed, 6 May
 2026 07:37:39 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 07:37:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=npkXec1ooaw6zg78Dg0dA4tKQHjOWNxKGn5JzoC2Rycr1dbkswhGsDwLaM+dPBPgMVtKOLR1LIzNEHhUrLS+lPHvrsx+J16eJsBj5pK0xnj9nOehCzapxqjkyxcNJN9NzJME7muY/WQND02I9gdBSdwdcjFO4x4FiXjVjd6K8M/kNlkdFiwSNidLOO8vPACY7/kGWs2W6YHJpnCX53f7DtUwA/fErAOpLG/064sPbhNHtBvvPFlFeZM5fMYji/jBN+MSoKZ2UQlmxshTYmpDqRdY6BSAXOYbPC1w4mUrPrNEQ6Ah0lU7Y2KwTkCgLRfpJC/LWALRAJp/YNhES6hBnw==
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=eJTGyzoNCBosYYOm3qJmbE2HE4BnkvRapJ+78U4LS4U=;
 b=ex9zNBfrsBG4nFn5W6CKsa5ZAzBkvse4XaPInDSukEPvACBqpdQ6t15gbkineph/thzbCycnSTL5nq559Wq3ANV4O6Altnm+vMgEIOSuqDg3SDddQUTfmwLNQdRJ8X2G7oF7lUGorzREbjaQyPqR7Em5nC4LOAA8AkwsxL76laEOO4vhPRTCJkBqAoWItWGNc5ekt09zT54hPa4JL+EdEJc3Ov4w7dLUkOPyRbfwPSBdTr9YVM8mNUI+zUGZBuofxFuO3S2VnzYIbDEJRgGToPy+o5tyhOxOb1O/CcKKg3GjVrwz4echDuzTZjjuNXtFN64/1GXdwm6tfxyui9ss4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eJTGyzoNCBosYYOm3qJmbE2HE4BnkvRapJ+78U4LS4U=;
 b=qDCYSJ2KMfeLZABsroktcnn1bIGEj4zSbvHBqQA/ObnJvalSXZ9G61FfB8woe26SXwrq6WsVXxSkRi15mMsyAReyUekI6GE79pAjfH6nTaBsEFDUDs5gtLNqGY6X+KI4BN+qUfrP94PTCIcrNzrNzTFl4ujgTKvjf5QzKT7SF38=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH 1/2] iommu/amd-vi: allow disable_iommu() against non-initialized IOMMUs
Date: Wed,  6 May 2026 09:37:18 +0200
Message-ID: <20260506073719.40075-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260506073719.40075-1-roger.pau@citrix.com>
References: <20260506073719.40075-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0182.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:58::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB5397:EE_
X-MS-Office365-Filtering-Correlation-Id: bbf90afd-edc0-4e97-eb6b-08deab425967
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	gN7aOcWAzKQxwiZNxH6DAa7bkTMs4zRbkT5Hk3EpMP9+y6vQomCwOC72sPT5ZMV3QPt3GlhnZ8K5le071Veo2Mv6XAUoKNTdP6MpFfddyFmkDzaH08duKumvl0Ep6JkWC7ittBYhX1JclMIVKYGl6XggIAUg0WbKeuiGmLgd6uNw9jKlViuLkfHgG312MYkZodAV5RVuhVBzOucx8VTdc3bsT4YqydOncOxrVO7WJksoCRTbWHxZR5l/FngReEEwLm5VVc0dNpT0zVRBa0Fr8Z3TazXtbnb5RvC0nq9NR3TYYDfukzqApLzcx9zK3qMpQtqnhNxuMXfs/aLQj9cKieSFPhX6i2mrXrYw6dTVXLX3gqlQDDJCtkhYwnGo8LsEZSuCau7Xy0QYKTDfZUJZtlWeAvuu4OZnAxC5ha2vhLkefRagmTfoeDxLrQdwX9cUrc+Nn9aouD9m0tTybMDE/avp8Yw/sTaaI8LxHXgwCCJp/WaFFZGqsuLTXkAZH8L2Inl4qU7V16esxonlLakrPizyNsNJa95CIPYWb5/KxfyJ34ZuRMaKh82IrzEK7RiDPl8xiD6wjra5aFgryrGj5TCldC4vWV3NsDvbi23Ms1ol9nixJyAqiWEM7WDFHvBAN1qN7yH3B9A7DGaXiTzwcwUW0waSgkfqQqcLfVXU100mgAWlnoaDDfbaAbfdRXE7
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dW01Vng0cG9sbmRUd0dQbjc0cHZVZUlvcHRvcU1oajRtemVKK2RxY3M4MHhx?=
 =?utf-8?B?MWVYTVhmbzAzNnJwQ2VGSzFtK3U3dUErSmJhV05qZWRqSkdVTkM5dDFJd0V3?=
 =?utf-8?B?bUhiYzB5Q1gyaUFPZHpYa3lScURiUnZrK0ZxVXl3bmVZSi9xdGhWVmpnUlFp?=
 =?utf-8?B?NzVpRkRRTUZTejRGckV5Z0JDaUdtb1JEaDNadVNHZFd2ZEFpTEpFVGNDYXhR?=
 =?utf-8?B?RGxaeGU3YXZpQmxobjE0VndQVzVEMHZzZ013Tm9MazV4L21LNmhlczVWdXJN?=
 =?utf-8?B?WWFoYWZnZzZKWlNVVnVoci84ZExCc1B3WWVGdWVPSEhuYW11SzBXVXBXeDdh?=
 =?utf-8?B?aWNCWnp0OEhpK0h6TG84MktqaU1wWmVOS3FSQ3ppU1pmVEhBNVFKcW54a3NH?=
 =?utf-8?B?dThid1NHRDFuWEdvNHJ2KzlzL1dtaHVsSC9Pa3Z6S2llczFWY3pMVklPajA2?=
 =?utf-8?B?TTVFZ1hMeWt6OHZtZ3h3MktrUWdKZlorTmwrQ2lpbHZKL0ZsaFh0cHRBanpY?=
 =?utf-8?B?QWdUYWtaRllUSHdvaDI3Vy9kSldsVnFtVjY3Y0R3K1d2NVV1SWViSzNyK2E2?=
 =?utf-8?B?OFFTTFpVTG9JRDVFR2xtN0Z4YmtmMTlMN2drMFlwUDVONkJZd1l4d3RQRzBH?=
 =?utf-8?B?MXI4WWNHdzJGRzYvZ2FkampvdGRaRFhiVG5JZjhxTkVJQ0gvWWViQkcvcTJv?=
 =?utf-8?B?cFdzREt4d3FXN3RQWEN4SUdXMTJPRjByL214MWM5VVREeG1LSHRkeVo2MXh6?=
 =?utf-8?B?MDFLOXowL29Ub2krMnFXL3FSbW1pTFRkUTdEUnpEbCs2b0Npakl4dU10M0xP?=
 =?utf-8?B?ck9Db1dnam5HRjhQeDJQVjJ1SDdkV3ZEZUsyTTdMRG43ME93S2MxYWRLZGpa?=
 =?utf-8?B?dWtMUGE5NFBLNGYvTEJpVjgzamovblA5eDJmbTcwZFpiMWJYZjFwazdSVzRC?=
 =?utf-8?B?WVQyVmtUcTNUV0JDYVVKTUQ0Sk9ZcklYZ3lFdUo5WlZaTmhyM1RZUEJnbzlp?=
 =?utf-8?B?TC9PeHQwN1YxS0pjaGpMNjFYWms0THhYWkJNMDBycVZpS1ZlMnl3QWVncThz?=
 =?utf-8?B?d1BBNmcrRzdHSlgwSUdFeW1Uck1iWGhZbENvbDFNSUo3cUhZVVZWVm1mLzA0?=
 =?utf-8?B?Y3hveTdOaGtld1VHNktWekNQbFJ2RjBWdUZPbW03bnhIRjlONk5ocWUvb2dz?=
 =?utf-8?B?b1llNkw0YzA1N0JZcS9oendQQm9uRmE0NEZjZFMvVmdWdldSS0FnUUxQeXFk?=
 =?utf-8?B?RjVyTTRSMnhPVU1ielhTNVNOaXJWYXJlcHpuWHQySFllUXE2V1JMaXZkMWJC?=
 =?utf-8?B?YXh1L3dTNGpMNFI2TUVwQVdiU285OWRUR05NakF2bVVOWXBXS3llNkFnTjR5?=
 =?utf-8?B?RWptR3NOeldaeWRhajdGeTdLaUlzbmVZYnovYVhyTDdvRU8ycytYb2J1WUhN?=
 =?utf-8?B?Q2NMRXBObXo4OWNMTVo1NzgraWxWY3lHU0pORnVqY3Y5WDU0SjZwdE5KaUpS?=
 =?utf-8?B?NkdrOEVkN3NVWitiSUVzKys3aElCelN1a1l3MDJSZ2Z1eExlQzNHcGVkOU5v?=
 =?utf-8?B?MmpmV1phdWZCdDlub244aXJSTktLZnYzM0NIWTJZNTZDWkFnbGJaZkxZamJS?=
 =?utf-8?B?bnB6d1pvRU8vTnFXT3NtNVpDRnl0Qm5VY0tZYVR5WEEvTVlGT2FXL3FqVGdv?=
 =?utf-8?B?TC9HbnZFOXl0SzJQS1FQM1UyWjA3azhXMVhwQ2JYQ3MySDVGREdwdnBPM2dG?=
 =?utf-8?B?RUxmL2JOT0c5cUU1bG9RK016YjZiZDhudXRKTTBacG5ia1g3NXBvOWVEdUJP?=
 =?utf-8?B?REZsWk5OMGcwaVljRE90S0tQdFV1eG10dVZJc296TFBTRFU5WFhMS2VZdlVJ?=
 =?utf-8?B?aEYrUGdCZEZ6eTUrWWNaMERPUTYwUjN2SVcxb1VmNWkvTkZZbm5wNGdwc3pE?=
 =?utf-8?B?bVFFVjVoL1RDU0JoSUVlMEpBRWdTNFZFOW5mMVFTTTlzNVBWeEcvQmRUaTRG?=
 =?utf-8?B?Vlppekx4d2xpTlFRZ0RWTXFqcXNPVTRvQUVHbGRqeFBUdUhDSUxKV1RZSEhm?=
 =?utf-8?B?bmora3lGaStaYnhRcnRKVXpxUEJwWm5rMGJuTUk5eHdVZk4wQlN0TTJmZjgw?=
 =?utf-8?B?U3RQL3A0Y3A0MXZLcFpEc2xoeW1zdkZPSE44OFhUYVZHZUZQenY4TEl3NktO?=
 =?utf-8?B?eFMzTnJWN2NWS1BxWW05RjduSzRGRUtWMDRCcWlScnZZMDgzaUF2UFluZEdH?=
 =?utf-8?B?MG1GeDYvWGpoMWxCL2VSZlVYSm9CL01vamJ0YTRLaUpSdDlrTkJBRE1qOEQ2?=
 =?utf-8?B?anJPSktYSVk3ZVNTb0YwN3AxNkFTNGxhRDI3cmhTdWE3MmptYVVGZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bbf90afd-edc0-4e97-eb6b-08deab425967
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 07:37:39.1016
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: yrb+cqEDO+WYKb3Qrd0A7PFTvabu/2i8dSxIvFNO+V6233V24KjWLs5wW23m/O57dyFvv6MfVn/px/nAuNWlaA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5397
X-purgate-ID: tlsNG-ef75cf/1778053061-2B979C48-944672F3/0/0
X-purgate-type: clean
X-purgate-size: 2134

Introduce a force option to disable_iommu() that allows it to disable the
IOMMU, even when ->enabled is not set.  While there remove the unlikely(),
this is not a hot path anyway.

No functional change, as there are no current callers that pass force ==
true.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/drivers/passthrough/amd/iommu_init.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index d77dd8511288..76ae78e5ea53 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -929,13 +929,13 @@ static void enable_iommu(struct amd_iommu *iommu)
         amd_iommu_flush_all_caches(iommu);
 }
 
-static void disable_iommu(struct amd_iommu *iommu)
+static void disable_iommu(struct amd_iommu *iommu, bool force)
 {
     unsigned long flags;
 
     spin_lock_irqsave(&iommu->lock, flags);
 
-    if ( unlikely(!iommu->enabled) )
+    if ( !iommu->enabled && !force )
         goto out;
 
     if ( !iommu->ctrl.int_cap_xt_en )
@@ -1139,7 +1139,7 @@ static void __init amd_iommu_init_cleanup(void)
         iommu->ctrl.int_cap_xt_en = 0;
 
         if ( iommu->enabled )
-            disable_iommu(iommu);
+            disable_iommu(iommu, false);
         else if ( iommu->mmio_base )
             writeq(iommu->ctrl.raw,
                    iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
@@ -1584,7 +1584,7 @@ void cf_check amd_iommu_crash_shutdown(void)
     struct amd_iommu *iommu;
 
     for_each_amd_iommu ( iommu )
-        disable_iommu(iommu);
+        disable_iommu(iommu, false);
 }
 
 void cf_check amd_iommu_resume(void)
@@ -1598,7 +1598,7 @@ void cf_check amd_iommu_resume(void)
         * To make sure that iommus have not been touched 
         * before re-enablement
         */
-        disable_iommu(iommu);
+        disable_iommu(iommu, false);
         enable_iommu(iommu);
         if ( !iommu->features.flds.ia_sup )
             invalidate_all = false;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed May 06 07:37:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 07:37:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301209.1575508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKWp9-0004rs-Ku; Wed, 06 May 2026 07:37:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301209.1575508; Wed, 06 May 2026 07:37:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKWp9-0004rl-I2; Wed, 06 May 2026 07:37:39 +0000
Received: by outflank-mailman (input) for mailman id 1301209;
 Wed, 06 May 2026 07:37:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKWp8-0004rf-Ts
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 07:37:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKWp8-001ZLU-8H
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:37:38 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69faefbc-2eae-0a2a0a5409dd-0a2a4502cf22-32
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 09:37:38 +0200
Received: from [52.101.53.16]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69faefc0-af86-0a2a45020019-34653510d9ba-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 09:37:37 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS7PR03MB5397.namprd03.prod.outlook.com (2603:10b6:5:2c0::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Wed, 6 May
 2026 07:37:34 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 07:37:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qrehkN8HmIFtWUZJT8Ey8WRwKCPkxR7RiWXkfvuUUXvDDVBRAnki0cAm/PneIJO/UOEGoLP/6gjFP5prsDCBxSKqwxR/d3p3sviqBRG/+Wn8rPsjkZWYKAKbIrJXwihwZAG+J9PcwCdASvYYotXSUL3a5PoADc/SfZhJvRuuwLwztcoynjGJrIGei9ksfxXPTOgcYFsnHfX/dGWVx1zgszZ/OqPZRyN5wKrB2ZdJgOilNVDxYWXOWGjk0ruqol8HiAkP9Csfha1avqZThMPLKtdEgjD7Z8cFii9jvqrBT8lo3sSJBbG+l8nPwDKCLmoYsGzTlu+dXgV0QtUUZm5Z3g==
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=Rtytr6SViiZKOuuPe4d8UQ+wj1J1v5jWo6JEOqd5jr8=;
 b=xUUlBvW0vBfWk8fVxjS5yyfr/Q56vvExhMcLxHJoi2W4BEp/5HjJGP4qwd//iNVfFXl1Bwo4ZOBVOiwjbDXpZ5xcdE+8UdEmz18RveT2IR/dSICpEeGGWrak5T3rrUMmpD8wH6tsNZA0jlo6KgK3S9Qp06tgygE+3VbaQ8gppgZp21wnFZeMqsK7Jl0QUSddP5t53r1Zt2ePYOv8/TyavR6rvYyLfQXhEULLV4ORD8ZPb3ysqAvf8INkiK8Smz5Yp0GLykjXwnFe1vnCO1c4N6YcVzkKuyPD5Z8cglB/8bB4Br/VMKXVqVDkGzP8nhkOg1LG4teAkaZZPb0o+mvf2g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Rtytr6SViiZKOuuPe4d8UQ+wj1J1v5jWo6JEOqd5jr8=;
 b=d2pCJ/whTZPBWcN6l8anlJhNFr1N0MVi/6KhoJx/llq2097MZnlA+RL5CpqnO/oSsfyTyURVc2f65RckwGCROhYwzAyE1vpJH8djKq+n3f9PsIHRcNCOWsN40LcNlqEEMtN0vyKfEwcd1LQiwlulkVLC+H3bGu0eSRqzsO6J6S4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH 0/2] iommu/amd-vi: remove zeroing of MMIO region
Date: Wed,  6 May 2026 09:37:17 +0200
Message-ID: <20260506073719.40075-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.53.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0096.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::10) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB5397:EE_
X-MS-Office365-Filtering-Correlation-Id: 87d8e8d5-f64d-4e16-ff54-08deab4256e3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	1SWt3XdjFWBve/oYzFAvGF09b+RZAqQZOBYPR1LKMYWsPQi/kw/K50OveDzeTGXRrkhOwVUcIm5ThkCKEZPnvHAlTdrwNnQTIOO8S/ykUTTBzUOvuugulImFqDpVsLX/6+qrc/waxfgTqWftILz9g6OhQXYUFkQFx/ZOR1k2AH0y3rxXvV3D/2fN3eOZWpn1UC402TARPEl8ASptCZ3qFcYWmAATjZyBlWJVGN71MpCDPQGLHly04u8GQv0NkO5pS0ae/0ti7/xbXtypeWEbdLEmJbXK9wwi88Xezin5oOjjMgxkAAifYGoxwImfitSouVcxi2tGZH75DVWWqbacavjpN2T2a41/89gsZUE/bPbu9A8y+8GgQM21+8z4gtEqS0hVPYRgw0d3VLslEVYXkgtlTO+hKC2IFTwc1KJS9Yphckvl3VEEyD2R4UqUvJ3O8S1hzZn3n69/iod/dvxUEnT69pjeawl8UMcPeI2r4QWfTK3dJbZ7KT5QegTnLtKzLNaownFC4NWvaiHtWfz6PFERrF40w5uw2fjhu+zchdOOumXyr0A5+Yi4pk4+VpfYtTUfjOjaj8QYvRy7D1MEh+fFFvKYKT+Hs1nMYJQE5xbGqPXkvzL7yBwGsNLNA3osU7zIZnbjTOBZT7iHeZAzA0VtnrCH7wlAGMMv4r3EJTHqDCayxoYuUWlt3VTfRMpQ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eitYcXhCRGpwMmh2VWZpdFhxdlhqRGFDaTdpd2tXNGJadnhUSTViVFR4aDlp?=
 =?utf-8?B?ZXVHVGxjNS93TEE2bTNmc0FHQ1N1M1NFWjgwQ0JKUktjVkxKbHV2MW5YbCth?=
 =?utf-8?B?UFR6VzhZQU4yOXNuWElXQlYvMjN0SnhFbmFQR3YzeGhFdHRPbjhSc1I0MXB5?=
 =?utf-8?B?eFAxMXlUNi9OSWJibFJLZllwalBIWm01MkVRYlRtQUtkeG54Vm5Td09NU045?=
 =?utf-8?B?RlFZS1N0cHFpZ3kyeWNXTUp6SjVhRzA0Y0JLN3F6MmlpWjFQSE53SUN3RExv?=
 =?utf-8?B?aTltL1JwMDBtV09VTjFwdXpUR3B1Nm5HZCsvNmNBZFFUcWdQUnV2cFlzMzN3?=
 =?utf-8?B?NFp3cGpKbGFIUjZQeDBiSi9CaFBkUkp3dVJUajJjOWhKYWN6a0xRdTJxeWUy?=
 =?utf-8?B?SlRuQm14NW1ra0VaQ0lPZFE2Y1VuVStxYjFwY3ByR05iS2JFbU5xaGpFS0lm?=
 =?utf-8?B?TUh2dmdjNmIvYTFUcFhNa0VORFVvVzlQa010ajQ4ZFFSYStJeWFhNUxGV2Z0?=
 =?utf-8?B?QnNvWVovb0RGU0laNTkybTJxNDZzOE9MR09SN3JSMDhNc1hyNGVaNUlROWZ6?=
 =?utf-8?B?cGVTaDdkY0c1dXI0VURlS1hMQzFNMTRORGdab0Y5cjg4SUhDM3ZydDNWWjBi?=
 =?utf-8?B?MzVQbDc0MTZvVklKeCtxTTFDLzBQbENjMGh0TXZhc3NMNmoyOGk1VVBCR0ha?=
 =?utf-8?B?VmIrVzhxOEhrbHpLZ3JiQTY4Y1pWNFFxeXh2VkxGc3pqeTlZaWJsdzBhenpj?=
 =?utf-8?B?bEw0Kzk3dmZkOXJ5YXg2ZUhTME1HWE94S2JYRzZCN3NNczJVY2dROEhoRGRK?=
 =?utf-8?B?TlpSV1Riakh6eXN4cTZTNW1XY0ZQZ1dVbzRGUVlMc3hDcVNGckpQV2lldHlr?=
 =?utf-8?B?MkJiTk5uVHlrMFpWc0hBRGdzZUU1cG1qd084MjlzTjdHaGFpTVBOR3RTY1Bm?=
 =?utf-8?B?VVlBelNEVGc0cjB5QTcyMzZlZi9uMWc4b2FnNC9OZThsU1pXaUFYZ0lOd21Z?=
 =?utf-8?B?NGhreGVvZ0tUVlhJb1BCSTVjakhXRzhza3hRb2wzV204LzNRQ3dtdzlHNVhI?=
 =?utf-8?B?THdHaTVLZERkdFJaMEdVaVIvb2cxUDBoQ3JtZWVNM1NSdGVFa0VJbU5LNW50?=
 =?utf-8?B?K2NESWJPc2U4RyszUHRqMzNac2hJQlR0RjQ3QmJVWFhadXdPUjJUUzhxcmx6?=
 =?utf-8?B?Mm1rQjNXd3RNMDFKM3FhYmg1ZlFpcGRyMmtSdzI4UG1tTlQ0YzFhK0t5VHZJ?=
 =?utf-8?B?WG5wb1VSNmRwU1UydDZqSDBDbGxVWDlGUndpYXNrVGZnWnNoMnYvcHNYQkZN?=
 =?utf-8?B?K0lyeGRLWk10Uno1QU5iSmtQTHlhbjJ6UFJQUE5tRFF1WFZkMUJzOTY3M3p5?=
 =?utf-8?B?aGdBQ0E0Vkx2OU9lMElNSjE0NUdkQ3VNcnc0TzhxVDdhMk02bFMxNGYvN1RV?=
 =?utf-8?B?R1l0dVpFdTRRMlZYMDZ3Um1QcnFPbktxd2hieXc5b0FRWVF4Zk5BOFBXdE5m?=
 =?utf-8?B?SitDT0M1THJtV1hpSUN3Vk9uQXl4bFdheU1ENWdyemZUK0dBK1FUYjErUlBn?=
 =?utf-8?B?NVpSV0dIaVVZU3dpdkpVdG8zWE9hREl2V0h5NWpwelJHelNEcHNYUWpTVWEy?=
 =?utf-8?B?Ni9LbVR0YnhUVG5Jd00vWnRGN29NODUzOUNlNlAvcmpDV3JxQkIvRDJqa1JK?=
 =?utf-8?B?Z25ObmdsWGhwd0NCK1doVzZGZG9LWElzUXNDZ05GTzNleGFISTNkY3JIRTN0?=
 =?utf-8?B?VkFiMDlNdkpZVTZBcnBaZ1Y3VDZGWWxSNjYxU1NhODdGdFlJMjBwbW0wbndv?=
 =?utf-8?B?ZHpBVnpoMzFydUZobmpybEVrVTJvb0ZoT1dMUlZTb25XclYyYkVSSW9vaGt2?=
 =?utf-8?B?aHJmNjZCQkVURllKRUNlWGd1eFVUcXQyaHJnaS9wTFFiQ3F5L0QrVVRFTkli?=
 =?utf-8?B?TGlwcWx4ZmhPRkhzY2Zra2JrZEZkQkl2cXVkY3lsakZQZ1lFb0VoZUxtanZ6?=
 =?utf-8?B?eTI2RmlIeGVSMHRiVHlOeUdwRzBvakhEejBQWDlWR3NyU3RLcHo1OVlqKy8w?=
 =?utf-8?B?NERmK2cyR0lMcmVrUllGUmk5eUpyUk1iYXd4alJ3bE92VmFFV3IyQnY4bFVM?=
 =?utf-8?B?MEI2eDA2ZzVTOVlERlJtR2tlMzNHU3hwLzNOQ3U2RThiL05lMysyNHdFc0M5?=
 =?utf-8?B?SWY1K2R0N3N5VDB5L0xCcXE2aURsaEJ0aHlDYWFXa0RITm56NXJhaEdSV1l5?=
 =?utf-8?B?eE1WOWM5c0pncW1UVnFqZ1NoV0w5SXpZNktOaHVWWFhIalBVcll4WEtqVVp5?=
 =?utf-8?B?Y1hZazNLZkpWVlN5R2xNRU9IcFhuUDlsVit3RHFFUjlsRlYwZ2VHQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 87d8e8d5-f64d-4e16-ff54-08deab4256e3
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 07:37:34.8235
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ysQBnV0SDpfKl5eLBz4nDEaO7hYANOvtxznVulYkty+PnIviyUKpnXr8DBcTsa0L4XqRZkckDjkguPG6siLE+g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5397
X-purgate-ID: tlsNG-720697/1778053058-83B60161-4DA8ADED/0/0
X-purgate-type: clean
X-purgate-size: 595

Hello,

Unconditionally zeroing the whole IOMMU MMIO region is dangerous, at
least on an upcoming platform this puts the IOMMU in a broken state
that's not recovered by the init procedure in Xen.

Get rid of the zeroing, and instead attempt to disable the IOMMU ahead
of enabling it.

Thanks, Roger.

Roger Pau Monne (2):
  iommu/amd-vi: allow disable_iommu() against non-initialized IOMMUs
  iommu/amd-vi: do not zero IOMMU MMIO region

 xen/drivers/passthrough/amd/iommu_init.c | 34 +++++++++++-------------
 1 file changed, 15 insertions(+), 19 deletions(-)

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed May 06 07:38:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 07:38:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301223.1575525 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKWpn-0005kD-4H; Wed, 06 May 2026 07:38:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301223.1575525; Wed, 06 May 2026 07:38:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKWpn-0005k6-1b; Wed, 06 May 2026 07:38:19 +0000
Received: by outflank-mailman (input) for mailman id 1301223;
 Wed, 06 May 2026 07:38:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKWpl-0005jU-MH
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 07:38:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKWpk-008hD3-VR
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:38:16 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69faefe0-e002-0a2a0a5209dd-0a2a450bb674-26
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 09:38:16 +0200
Received: from [40.93.195.24]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69faefe7-212f-0a2a450b0019-285dc318861d-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 09:38:16 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS7PR03MB5397.namprd03.prod.outlook.com (2603:10b6:5:2c0::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Wed, 6 May
 2026 07:38:13 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 07:38:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WYTqF1l4alcMATFZ2XVqBtJDL9iYDuAP2/OoFma0KtvRQ8vPccmQjeweI6EIS6xLqt+WfJCaBPbQlFPK85Fzf7WqHB4vpcEFsFG6ObHQ+5lhvMjZy0FT6d3lASdU9GjJhcvouMvxyFEib8o4PV811heBB9qrqZ4AWqAjNjgAtEoIvIfl9+d3sihwUVOj6f3Cx0nivYdpcwQI6y8H+DiFsXZqsgH7ZwKnC7IOjExp17dkaBgVlZhMeBJP4YQPMnmrbvEE9c6AGIfVsbS4lJcLaLwU8Z3HykXeZB+qTsSixfLoB9irqkYRU/ei0J7RspEo6nm1amV6pd0GIkXpkxVvIQ==
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=GOqAXfM7Rlhy7EjMS2OGtDITdoCH4UGlxIzZkMc1Lfg=;
 b=NCVAyAGba/zu/SsFiW5xtxn6IGjnBBz2bIZ/I9/jlQ45HVU5iSRrzzeUHL7J9+nTvBP2Nz+y33ARSLgVNZaPmK6Byk9a2W3ql/D+qXyCiKsCJ3RGfgJZ+mOAeloPHigjvFULz5KOVAZkqKUlVhTDklBX8NTEVRyYFDENUEvlw/kP2LxVBdhkC8qFYzf0GMlLCPgqVxEjTcRRq5y4GLbuliUQIfQbaiAk3VqpXSX2MSMNo9zW6ktWq8GachtPCPk/fhqhRWcd61bJ5wkkIGuerjkY/fbDLdUZsPFS8CoqC4YTUp6mmZoRd2j1zaIw9s1LkqUNHbGl/iZfnut7z3whXQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GOqAXfM7Rlhy7EjMS2OGtDITdoCH4UGlxIzZkMc1Lfg=;
 b=Xl7w26QzyeIMXs9DoJH1eDpCF6QLbQH6Fw+3CvxOmG4hsECShroLleJlxE+Sja8nig9i6yrU6BgtBx0kZ+574xbj3DHvIcebIid9F5Tfkdnu9QPAitXPIObC5FicLoBq+4glftGcCH+bakc+NfPSycIKEbpRD4qoTYLKEg9yedg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
Date: Wed,  6 May 2026 09:37:19 +0200
Message-ID: <20260506073719.40075-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260506073719.40075-1-roger.pau@citrix.com>
References: <20260506073719.40075-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0217.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:56::16) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB5397:EE_
X-MS-Office365-Filtering-Correlation-Id: 69905622-d2ca-495e-dbcf-08deab426e01
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	9FZ2K3lkjWnLCOUXHd/XZfy1Wc/G+YDP6DQ/o0M79JR3Als0YGs6vDdVz3gz2/F4BICUUah5e2ySc0d4CGC3XrobsBfup9liHa6MBJ32o1wgvFNRd+5IPrpDC/RJzadH2ZViAay+mtCpLnjNrDgYEVmXgXNQPBMQviXxgxcnrwGdkm6Eja3Vmip6dbUWjfkfOS3g+A/PjJuPlqVcyjIFZmisACrhrs9pRMnIjMuocpHopTStHUmLM5OZnKhj1r85s0yxZia/FK86qQvyePYvMKXQ3vKzixcNyTk4NGL7Vq+IDV05vfjzpyIzZbvXULq9q3gfpP897MG3VPgJcm/bPZAhDhq5LbC58VAUgJIDZOv32vrNlXkbRpKQu1LnxbcNY9tC74ChJBtYoP8zerK/pH0ai7SChxOjV0QZ0I5hPNpa9mwYdCSrMCi0yT7LXT5w/MJzow4eoZ1aa1xH2inKlewMun7rGGhVngaCbUGjqo9Ra1AA94xjoJXAZE7V5r18UQc6vR3OjSoFkaeE9PbTwyumWHIxCdzcwGdnYsiC/xAyD+jpG/my1IutqsO2pwF0K9IKi97kAnNpXC8fmV1zy1YnfarpqS1KemHWefEHgnqcw5cjSVngHdyUTTrHHi0eMuo7HTHgntPyXtn/sa8AStdviAP6Rz2tgBIe+9WDKt1gUESaB0oiDngHZtFShJD8
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MFBWTW1EWlJ6enF5d0R3ZnhmeG9KbUhLZ0RqMWtGbVAvSm10bEsxQ3ZDVWxs?=
 =?utf-8?B?VGtQRnJ2czNsRlkzdVMzY3VmSm5reDFWTTZaK0Y1TUI3UHhrNzFyVlk2TklT?=
 =?utf-8?B?VDV6VkJFRXhYOHkveVVDOHZWdDd2WWpWU29FbC9VdTdnWWFobU96NFBlejlI?=
 =?utf-8?B?cnFsb2tTYUIxM1BueVFTYjFtYjlGOTV1bzJFQWxzWmFrQ3ZwMFJsczZWYXow?=
 =?utf-8?B?Wk1kRkI3enFRNDdKS1hyK1pRM01ZREd4QXhJOHY0dWNmSkdYQXRSSlVXZkdz?=
 =?utf-8?B?dlNML1gyWXdvaXdzMzdoa1RPMjl4MUxNVVE5UjJLY2ZUOExDYjM1YnlnemdT?=
 =?utf-8?B?bWhQVDJWazd0dUpLM3hxRWh5MmhCcDd2bjYzQzFxSzBDSjJpM214Z2UvbVor?=
 =?utf-8?B?RTVnM0kvS0Uzei9SZ1Qzd2ZzSnJnQmtGOE5KOHhsUms1NTFUZVB5MEw2OUVC?=
 =?utf-8?B?OEhDZU4yNjlGN045aEEzMHYzWWdEbFdaYTdNd1M0UExIaVBiZHZVZW44V00x?=
 =?utf-8?B?Sk5jZlByTXJSMEllSm1IbCtvckFPdnFxbXlqVys4Vzk2dklXUkpLQTlzc1Bi?=
 =?utf-8?B?d2dFWEdKUnZJc0dXb3JqcmJjSk5xdU5xaXdNUTFVWS9sSmE2ZU9lUU41RVRD?=
 =?utf-8?B?RmhRMS9aK1BsNHNGVHpoYWxLSmJzME1ua1ZiUzZRUDVBMXF3ZTFab2xWQmlx?=
 =?utf-8?B?d0NmM3hXb3M5V1dXek5BY2RISTdDd3pxVE1IYktYNGZKempIbXowM3pGNEI5?=
 =?utf-8?B?YnBhc0FCcVBpMktrUDdhS2RuVmxHbWltSFhzZ29rWDRHN0JTeC9ZeFFITmtD?=
 =?utf-8?B?MDZma2dqM0doM094ekFjOEE1WDJtdHpETm1sdU1ZMDI5R21Wa2VNTlNTVGR5?=
 =?utf-8?B?Y2xaUVhPRm9XelI1ZTJvdERyektxbWF6SFQ0TjcrRkFqVWtUamFrYUZOZGVa?=
 =?utf-8?B?dGZqVjI1emZiejkveVZnR1dhWEZjMklHZWhLNWdrcS9SbEhlcnRhSWx0SCtT?=
 =?utf-8?B?b3dhQTQ0RHdsQ0FoZGNNOFhScTdkWVZ6MlBnUnZzY3dTMXVkaVJNeDlEYW83?=
 =?utf-8?B?eGU4Rlp2RER5aDJQcEF3dmxkVUNwSit6SjZvVjhKaXVYcmZ6ekpnL1grM2Y4?=
 =?utf-8?B?aE0xWUxVcER0czBLNy8wRTFxcEFhcVR6UFByWW02OTVnUXBuS0ZYbUovakor?=
 =?utf-8?B?LzZtdm0ybG03ZzcrWHRhZG5aQnViOWVVOVJESUZOS2FDMHgvb2w2SU13REt2?=
 =?utf-8?B?NnBxS3dpQ0pTNi9jVmdFbll4UUhrQ0Vab3BraGZqbVcxYnZ1S01jOE5sYUFq?=
 =?utf-8?B?VGJOeS9tSUMyYWRaamRBMEhzbW1iVVh6b1dXNkhZOWx2UTFZMnFTa01BVVNI?=
 =?utf-8?B?TlF5ODdMOUNncXBWb2hwRnZ4L2dKTE1WS3lpWnVYMFMzc0tFQTZneDZrZUJK?=
 =?utf-8?B?YUNQNEVjZzdvaTdBV2wzd0pJMGdlbnNubzdCT2E0bWNhK3dMZmJqcVdQVVBm?=
 =?utf-8?B?OWE2U1NLRWRnUXVRQkljNEpZRUlzV2RzZ3VKNjFvL3VrTG00RVUyQzdTWlp4?=
 =?utf-8?B?a1BWNC9xYTJoSVJtanJiSU1ZOEluV3FvcWJhOFhxcXZ3REdmSUc3eWI0VGZG?=
 =?utf-8?B?b2JGbTNjYWMwQ0F2V0NwUkdEc1h5Y0JrbW5kTG9HMzAxNW82UW5pbUtuOHZM?=
 =?utf-8?B?c3YxNUx6dWVwSFVUMFlBZE1UTGZjNUhBU0duZTZHbjB3cTlnUlVhclArUXZF?=
 =?utf-8?B?a2R3ajRkaHU5SnlIWFJ4MnpRbWFxekpvOVRRZGQ2aGlJY3dPYWpUSEtveDBr?=
 =?utf-8?B?R3NkK21JUGtGam5SbE43N0N3NTV2cHIrWFc3RnY1cWs0a2VSdE84RG4xWk5z?=
 =?utf-8?B?S0t1TkxFUnlYK05EdWNyRkduR0dReCtjTlZLQ29DcitjQS9JSmIra1JUTVVt?=
 =?utf-8?B?cFAwcFViRk5DZlphejhTL2FtR05zMWlTSDhCRHBtZ2xNRGl0MkpndnY5V3dR?=
 =?utf-8?B?R1ZvVHkrTjNZNWVxdlpzTkpSTzBqRndjQUsrbVRBS1VjTWF4Y3dLNVlRU2dZ?=
 =?utf-8?B?RlFlMTJGRytPaktoRmREY3hhMis4ZE50bWFOL1RyZ3pmUHNwNU9nNld3eUNv?=
 =?utf-8?B?c3Vhdnoxc2h4d3E4WXBqTEEwb3JVV3hqei9pb3JSVkd2QkcySzZWNVlRYW9n?=
 =?utf-8?B?L2pIMVRIUEEzME1GMEVPQU9jNWZBL25KMUg1REtDR0hzc29ORnRPMnlFS3Jp?=
 =?utf-8?B?SjV4bDcya0Y5REZXV0M5Q3hkRllnZDkxdHRmcjZ3Q3MydzV1SGhhNzloeHo1?=
 =?utf-8?B?UVZNYXhDWE1PVGh4QWtsS3B5OFpYSjNKUW45RjRSV1BodEJtMU1wdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 69905622-d2ca-495e-dbcf-08deab426e01
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 07:38:13.7111
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wGsFo1vduHKW89EzdUZEPKgjUUs1HT+eVL3ypb+TaMVj6C7PvZgswkOrbq1iqMdWPL/idvZIeY/B/FCLzYYnOQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5397
X-purgate-ID: tlsNG-42698a/1778053096-7E573F3B-912873B5/0/0
X-purgate-type: clean
X-purgate-size: 2541

Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
say the least.  We don't know what registers might be there, neither what
values might be safe for those registers.  On a forthcoming platform doing
the zeroing of the MMIO region can put the IOMMU in a broken state, which
is not recovered by the IOMMU initialization procedure in Xen.

Instead attempt to forcefully disable the IOMMU ahead of enabling it.  Fold
map_iommu_mmio_region() into it's only caller, as the function body is just
an ioremap() call after the removal of the memset().

Fixes: 0700c962ac2d ("Add AMD IOMMU support into hypervisor")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/drivers/passthrough/amd/iommu_init.c | 24 ++++++++++--------------
 1 file changed, 10 insertions(+), 14 deletions(-)

diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 76ae78e5ea53..8bf5ca4de18f 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -42,18 +42,6 @@ static bool iommu_has_ht_flag(struct amd_iommu *iommu, u8 mask)
     return iommu->ht_flags & mask;
 }
 
-static int __init map_iommu_mmio_region(struct amd_iommu *iommu)
-{
-    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
-                               IOMMU_MMIO_REGION_LENGTH);
-    if ( !iommu->mmio_base )
-        return -ENOMEM;
-
-    memset(iommu->mmio_base, 0, IOMMU_MMIO_REGION_LENGTH);
-
-    return 0;
-}
-
 static void __init unmap_iommu_mmio_region(struct amd_iommu *iommu)
 {
     if ( iommu->mmio_base )
@@ -1367,11 +1355,14 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
 {
     int rc = alloc_ivrs_mappings(iommu->sbdf.seg);
 
-    if ( !rc )
-        rc = map_iommu_mmio_region(iommu);
     if ( rc )
         return rc;
 
+    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
+                               IOMMU_MMIO_REGION_LENGTH);
+    if ( !iommu->mmio_base )
+        return -ENOMEM;
+
     get_iommu_features(iommu);
 
     /*
@@ -1381,6 +1372,11 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
     if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
         return -ERANGE;
 
+    /* Read current control register and forcefully disable the IOMMU. */
+    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
+    disable_iommu(iommu, true);
+    iommu->ctrl.raw = 0;
+
     return 0;
 }
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed May 06 07:45:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 07:45:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301233.1575534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKWwA-0007Qk-Rt; Wed, 06 May 2026 07:44:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301233.1575534; Wed, 06 May 2026 07:44:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKWwA-0007Qd-PG; Wed, 06 May 2026 07:44:54 +0000
Received: by outflank-mailman (input) for mailman id 1301233;
 Wed, 06 May 2026 07:44:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKWw8-0007QX-WE
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 07:44:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKWw7-008Xqc-S1
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:44:51 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69faf173-2eae-0a2a0a5409dd-0a2a4502b3fc-0
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 09:44:51 +0200
Received: from [209.85.218.46] (helo=mail-ej1-f46.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69faf173-af86-0a2a45020019-d155da2ec48a-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 09:44:51 +0200
Received: by mail-ej1-f46.google.com with SMTP id
 a640c23a62f3a-b8f9568e074so917106266b.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 00:44:51 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc55ecffad3sm49090966b.46.2026.05.06.00.44.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 00:44:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778053491; x=1778658291; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=QkoEEvXZ0nd9/OFXBMW0XbitQDRY2IA2LH/1rm9+raY=;
        b=kEg+yzantVl9dT7tjwETxnVpo/AYi5DJgyO/3Tjao+C0dylTIxrdA+RNVUIJOPs6sd
         xElIHqaudqsHVZ76GaVJomEnW5/T7OW37N6LNuaWnUJsbJUOdlLs0odqGjuqg2D37NI7
         DSQlISWS406rlT+7SnEEuCOLPxZ2v/pzjZVhwr6RhC0MYESUmSxEZbvb5www5gQb0v5b
         hp8U0r19cpYUuq6iQyLwtnO9Vftyl1AkXjt+JaqB+/b4IGKaosK9XYlw3Q4ZsT7HeTBC
         4v4o9qLtKB0GjJ4sqgzigiVIJeMDyvuCQYA+hOI6tv/qA8bEDd1A2Nk7Bdc6Z0auovbU
         cqQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778053491; x=1778658291;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=QkoEEvXZ0nd9/OFXBMW0XbitQDRY2IA2LH/1rm9+raY=;
        b=glKMjsNnkJmKN2H/9GHT7exfI9uc0PJ1qE1OkvYL9qmP+OkgF1xtfdwZzB6K3Y3Rtv
         gNTUuzYY/26HjGP6hDknG+DunuyiNWnk9jQgtAgEhSA9enjnSwjPz6UgwYireqlztfTY
         BsgRUCCxgf+1mnHWz60kZR9/NqNhyRkmfnbbDgwfgm5qFRKnT0mYZvdRXpkDWm5Wq+1K
         g90su3NIde0katojNThDupP/gq6pEDguz/qiA+QpNaPrbK3qcLdE0tVg6/OBsE2Pl2Xm
         1i9H3UIgzr3eOoSCMtSHB/OGhPHU6j3dSOsJGU4HIHQa5ein2TXas2yxJur9npsTsIDd
         AvUg==
X-Forwarded-Encrypted: i=1; AFNElJ/XR6iyXJ6c+IKGuHy+dFS376bB32IdyNTwa/VpAuhV7Ocu73wrA47IUYppEn8/HxG8kMtjTNDLYok=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGikZjtQlsVKmhergNc6RVJdcbN3bX15fyC3pNmYYgXG9oYSb0
	gHvMeDXU1/vExAxHTYEDIjXkS4+Wjc4pq185ehblwgp/j5Smpgv3T+H+
X-Gm-Gg: AeBDieuyD75O55WUIsCld2xsPn4x7PhiqcB4EYgZfONM9VVLo7WRnpa3DMJeVeyHyxg
	4IaAqP1xdW8O8bXvK3Dl+t0TzbKR5AUHCNnfLUlEPdFQySCUJizqA1BgjDbhS0U9R9BJpgKWd89
	MymKgHTPWWywbXHC1nAK7hnNaDWLqKu7sgsiLNIBGCzJPiJ6TdI61Mn7FDqZ2beJTWCtB3X/XYY
	D+L7djLzqlqnqKicndXnzN1rQ9nGdegzm57JY70r3QRgPxr8fEu+4HlEwFACAeGR6cpozddC66c
	SS4FuVjU+21z1IbCN7p8PnzceRX6S9sCeMfOwyQkdGpHhGpOMi9cmUX5H66277J9S7Uq/hfJu/b
	GVj5P+rSFN/wLjaHgnalBkCcsD//g4hQ+df8kiaXOqF5fwljeIiKDEJr0rRP3tqVvpqlrHtgCKU
	9fE8iZzg9TGbH91W8IgAAHUIkufNxjELYYpvZ7QNlz2FFH/Ifrp3xkUMnvzbMWYddHFsxDWx4Ua
	VsY9rd3iE9dSA==
X-Received: by 2002:a17:907:2685:b0:bb5:8532:af4b with SMTP id a640c23a62f3a-bc56e40f24amr84274666b.26.1778053490996;
        Wed, 06 May 2026 00:44:50 -0700 (PDT)
Message-ID: <2ec5eec1-0a7d-445f-9d96-99b3070afeb1@gmail.com>
Date: Wed, 6 May 2026 09:44:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/3] xen: introduce CONFIG_HAS_DOMAIN_TYPE
To: Jan Beulich <jbeulich@suse.com>, Michal Orzel <michal.orzel@amd.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1777296786.git.oleksii.kurochko@gmail.com>
 <7c91e1a705e1046be4af1c5671a8d91cf3557013.1777296786.git.oleksii.kurochko@gmail.com>
 <5daeb8f7-cf0f-4ea7-a686-93df36b43a30@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <5daeb8f7-cf0f-4ea7-a686-93df36b43a30@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1778053491-80B78161-F99BE298/10/73395122804
X-purgate-type: spam
X-purgate-size: 3034



On 5/4/26 2:21 PM, Jan Beulich wrote:
> On 27.04.2026 17:34, Oleksii Kurochko wrote:
>> As domain type is part of common code now there is no any reason
>> to have architecture-specific set_domain_type() functions so
>> it is dropped.
>>
>> Change the guard around access of kinfo->type to CONFIG_HAS_DOMAIN_TYPE
>> for consistency. Also, drop and add some parentheses to be aligned
>> with the similar if() below.
>>
>> x86 with CONFIG_64BIT=y shouldn't use is_{32,64}bit_domain() as
>> x86 doesn't have support of CONFIG_HAS_DOMAIN_TYPE. Since x86_32 Xen no
>> longer builds, the fallback is currently only relevant for arm32.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> 
> In principle:
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

> 
> However, still a few remarks:
> 
>> --- a/xen/include/xen/domain.h
>> +++ b/xen/include/xen/domain.h
>> @@ -13,6 +13,19 @@ struct guest_area {
>>       void *map;
>>   };
>>   
>> +#ifdef CONFIG_HAS_DOMAIN_TYPE
>> +enum __packed domain_type {
>> +    DOMAIN_32BIT,
>> +    DOMAIN_64BIT,
>> +};
>> +#define is_32bit_domain(d) ((d)->type == DOMAIN_32BIT)
>> +#define is_64bit_domain(d) ((d)->type == DOMAIN_64BIT)
>> +#elif !defined(CONFIG_64BIT)
>> +/* At the moment on 32-bit-only platforms all domains are 32-bit. */
>> +#define is_32bit_domain(d) (true)
>> +#define is_64bit_domain(d) (false)
> 
> I think it would be nice if the excess parentheses were dropped from here.
> 
>> --- a/xen/include/xen/fdt-domain-build.h
>> +++ b/xen/include/xen/fdt-domain-build.h
>> @@ -7,6 +7,7 @@
>>   #include <xen/device_tree.h>
>>   #include <xen/fdt-kernel.h>
>>   #include <xen/mm.h>
>> +#include <xen/sched.h>
>>   #include <xen/types.h>
>>   
>>   struct domain;
>> @@ -69,6 +70,14 @@ static inline uint32_t alloc_phandle(struct kernel_info *kinfo)
>>       return kinfo->next_phandle >= GUEST_PHANDLE_GIC ? 0 : kinfo->next_phandle++;
>>   }
>>   
>> +static inline void set_domain_type(struct domain *d, struct kernel_info *kinfo)
> 
> Pointer-to-const for the 2nd parameter?

I will apply this comment and comment above.

> 
>> +{
>> +#ifdef CONFIG_HAS_DOMAIN_TYPE
>> +    /* Type must be set before allocate memory */
> 
> This comment would be more prominent if it lived outside of the #ifdef,
> perhaps (read on) ahead of the function. I wonder though why it's only
> a comment, and not e.g. an assertion. If an assertion was possible to
> add, the comment would want to live next to it. Without an assertion
> putting it ahead of the function may be better.
> 
> Depending on how far to go, changes could be made while committing, or a
> proper v5 may want submitting.

I think that instead of comment or just after comment the following 
could be added:
   ASSERT(!domain_tot_pages(d));

Jan, Michal, do you see any concern with that ASSERT() or I could add it 
and keep your Ack-by and R-by.

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed May 06 08:10:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 08:10:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301256.1575543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXL4-00043Z-5I; Wed, 06 May 2026 08:10:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301256.1575543; Wed, 06 May 2026 08:10:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXL4-00043S-2A; Wed, 06 May 2026 08:10:38 +0000
Received: by outflank-mailman (input) for mailman id 1301256;
 Wed, 06 May 2026 08:10:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKXL2-00043J-NH
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 08:10:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKXL1-008psN-Vq
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:10:36 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69faf77a-e002-0a2a0a5209dd-0a2a450ba0e2-16
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:10:35 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69faf77b-212f-0a2a450b0019-d1558036a962-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:10:35 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-488b3f8fa2bso5781685e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 01:10:35 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e53110aebsm15943495e9.3.2026.05.06.01.10.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 01:10:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778055035; x=1778659835; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=I1Q773YCyGDhccizyfSd5RaGlc03FuD+GtUIu69ZED8=;
        b=EDGoxPM85TR5koUFDeCT1xZGAwTOJdBh+BwyHWxL0pUA1ytu7UpyXG903d3SZHCiuA
         jj7m+qzFAFo4wtsBKuSUmT02zyyacCBfy6CbB1TSscoWDkmOeNvEe0DSq13vutsOkSzK
         e/K7KOoBWYVJRYEpKnYEyQ0AzK7BgxolwEXC5VuMaWAR74ojTKAZ0QhPW+LaXVHUQ9Iv
         ZbDtw1Uv2zaTVTNuHU3B2J3XeAOgc9VSCEkciAduJIjKhZqQXbmnAd36dPwsFzaJImzB
         L/ZInhZrX+/NKNidwioUP5bXr9zM50Zugpp5P5H1obZ7II5ZeZPpHMwelaZG1rX83Cre
         SjPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778055035; x=1778659835;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=I1Q773YCyGDhccizyfSd5RaGlc03FuD+GtUIu69ZED8=;
        b=CV7OVRbr8Bc1FzIorbga2fY4OcdWRLQ9IK8BGt82kD7cBawibhPx6jjl33FJoDdoKk
         6OsclU7KV6JXCB+TrGoLSyClHEXv/f526p02aiotfQB2itFv8OxaTjncA71YBfnfnIIv
         iCPRMjSiEYkjSCSnCjQ7nDln646ZcMqQ7DQnqR56tRDC6BSvzSjFmq/FDJAO87EY0Uhf
         cPmsQ5k/Py1FFiAcs8+bjbb6Udoc8yc5F4XvrPAt9cFy8zNekRGTPz/2shSvcaPxgw/F
         L3S6+SIBzqPcohRHFWhxTSh2WhHzX3Zvy5aHQcuUsxc0/UxBD2ep+IPXNIyNHzm+g99z
         KOVQ==
X-Forwarded-Encrypted: i=1; AFNElJ9zriojz1lcoWOiv817PwIt7DEqOmnjJlRAwQDLD98hn9OslPIGDSCEL9bseVSmPO9W6cLx8A5ho4c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPbgKPGmnvJNzLN9+aS4IZm6Cr8IoSgH4H/o9V0AixeLQ8cCsC
	mGCu7k86d5qw57m6WC1ouv4UitY4mIiO617uzjY3l/dn3dv0auJY0qJbQNw/HFNGxQ==
X-Gm-Gg: AeBDies/zjOf0PizTtKB3OBgceL+LrHScziFCBlRbJSAAnU7YFqjcz+Aj0ja14SVdHH
	6oM1KHJwJAozh0wbFTrVJ2rYl90OJwzYyvbLcfHmPrFADaeIiHzPJzcj/dceY1Vg42AjxBSBhaj
	oFDz46nLLnnadmcwGbLaAI/CKqOTm0Sto9BUQyW1V0K1KZ2dBn3uHXLzeX7lxSgNSQtJUqcV+D+
	J6DwX/DhEHewRgSMAIWrE1Of6BhrpY8VLCjEOS4b6b2POoqUsOI08dydm5kV2rH+nyOSmprjoSz
	MvtxLVKHydy6u1uaBeJRPBh2VTguqAQXAlG4UQHICZzJqONUMCzBG2oF+gTacwLrFNLlZOmRdd2
	1vlpbGFmarzQn/LxrvMexLkV59hzgP8uIHjB0zr7vVo0pNRUWwZ/dHXj909YGO1ahCEFO74L4li
	/v6TbFeqQRPftsOpqf3zyW+e+OdHTg2QXh20jPJvOZx906WinTV90HDGAkHQJlcvI0w1jcyUfTb
	kSbz3J6dz7/cZW38/6d6+gmIw==
X-Received: by 2002:a05:600c:5395:b0:489:1d7a:4537 with SMTP id 5b1f17b1804b1-48e5226c508mr34081445e9.3.1778055035168;
        Wed, 06 May 2026 01:10:35 -0700 (PDT)
Message-ID: <8ae99c06-5523-41f6-a34f-d34934e23a39@suse.com>
Date: Wed, 6 May 2026 10:10:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/3] xen: introduce CONFIG_HAS_DOMAIN_TYPE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Michal Orzel <michal.orzel@amd.com>
References: <cover.1777296786.git.oleksii.kurochko@gmail.com>
 <7c91e1a705e1046be4af1c5671a8d91cf3557013.1777296786.git.oleksii.kurochko@gmail.com>
 <5daeb8f7-cf0f-4ea7-a686-93df36b43a30@suse.com>
 <2ec5eec1-0a7d-445f-9d96-99b3070afeb1@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2ec5eec1-0a7d-445f-9d96-99b3070afeb1@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1778055035-7FF7EF3B-F6077B4E/0/0
X-purgate-type: clean
X-purgate-size: 1649

On 06.05.2026 09:44, Oleksii Kurochko wrote:
> On 5/4/26 2:21 PM, Jan Beulich wrote:
>> On 27.04.2026 17:34, Oleksii Kurochko wrote:
>>> @@ -69,6 +70,14 @@ static inline uint32_t alloc_phandle(struct kernel_info *kinfo)
>>>       return kinfo->next_phandle >= GUEST_PHANDLE_GIC ? 0 : kinfo->next_phandle++;
>>>   }
>>>   
>>> +static inline void set_domain_type(struct domain *d, struct kernel_info *kinfo)
>>
>> Pointer-to-const for the 2nd parameter?
> 
> I will apply this comment and comment above.
> 
>>
>>> +{
>>> +#ifdef CONFIG_HAS_DOMAIN_TYPE
>>> +    /* Type must be set before allocate memory */
>>
>> This comment would be more prominent if it lived outside of the #ifdef,
>> perhaps (read on) ahead of the function. I wonder though why it's only
>> a comment, and not e.g. an assertion. If an assertion was possible to
>> add, the comment would want to live next to it. Without an assertion
>> putting it ahead of the function may be better.
>>
>> Depending on how far to go, changes could be made while committing, or a
>> proper v5 may want submitting.
> 
> I think that instead of comment or just after comment the following 
> could be added:
>    ASSERT(!domain_tot_pages(d));
> 
> Jan, Michal, do you see any concern with that ASSERT() or I could add it 
> and keep your Ack-by and R-by.

I'm okay with it being added, as long as you have made sure that it is
legitimate to have. IOW (as pointed out numerous times before) you may
not assert on state that's user/admin controlled, and that isn't covered
by another, earlier check. In such a case an error would need returning
instead.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 06 08:19:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 08:19:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301264.1575552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXTk-0004r8-UC; Wed, 06 May 2026 08:19:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301264.1575552; Wed, 06 May 2026 08:19:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXTk-0004r1-RX; Wed, 06 May 2026 08:19:36 +0000
Received: by outflank-mailman (input) for mailman id 1301264;
 Wed, 06 May 2026 08:19:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKXTj-0004qv-VI
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 08:19:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKXTi-001jOe-TU
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:19:34 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69faf990-e002-0a2a0a5209dd-0a2a45039f9a-4
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:19:34 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69faf996-672d-0a2a45030019-d155dd2be8f4-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:19:34 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-44e5624c053so1784738f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 01:19:34 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4505238e7c0sm9732867f8f.3.2026.05.06.01.19.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 01:19:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778055574; x=1778660374; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ioSht9cqqiUvuP9fix6u3yL/pHqOGG/1WWyLkWJHJFk=;
        b=NsQ98ZVGw6LywAa4aYXm9akIqWAQ0JO+KULJj6rxDqYe+xIZ+mftBehPIHL8MkkvhO
         wHUBKr2rbk450MqGyjbVtiokWZPeK45t0CQ38oBA2Io4cS0EG6od0o7Pv4Yj4RS95Xzh
         0AT+s+rm1/evRlLCexp2kyjWskn5eNy4TniZZ10VukbObMaHGsyNanyfO8k4igG0cclv
         qyn0RvyWVBou9JTCvgpBiLbeRqxGauuw/UUeu9u8p4XmuEBJH1gY2wSPQp/PUYZzzxt7
         FP9yFDZokdBTIjUHtrdhaAfWSF3qXl827LqTaC5d8BqKbUBq7adY0qqT8UGIAqYU49wV
         PxSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778055574; x=1778660374;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ioSht9cqqiUvuP9fix6u3yL/pHqOGG/1WWyLkWJHJFk=;
        b=GEBKIFabgmMJALBAXgadM12fT41CQRG6EBq4/iV6ErEuipalalvEV789RgLYEAOJa+
         5MdpHx/IsaRQijZUz8NzVMGvCUUN3/DVRIDwBlDhne2FaJWTfb8PpAdTd2GqOcS4ADIW
         M4S2/q4ckGz36LMfahi7bOle5kLvFRG2DDNYJVf0mU+F1Ni1biskH/eEwXvwMEPUmnO0
         gINxiT8BxWKQ5tFxg+PfxuyWjNLoQCo9tkpKjSSqPZ1l0VBFgDmxK/wMCED9nvnpNPFK
         BAyu6YKDvWUip01uqnUf3tmc3Nq7y7vKsj4Y9ClB2fQKjr8jHL9G2LvBuiMxozwdlZ6H
         5KrQ==
X-Forwarded-Encrypted: i=1; AFNElJ9sP759SYfNNrAxZI9M3D2KFS2q+OAhc2p/HmyUh9FwzOG7F2dEO73/8MMS9op4ynlfjKV2mgn4LoQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxk5Kp7F69TA1iQAwgdBT/PmLLPXwIbj+8D95Cz+KZOOZ+DqxRm
	o0Re+maUDyOpACtWAsrWdbsK6dlJYHXNMzAR+sKZXXt3FRZ8tby3aigFsoZBysbp9g==
X-Gm-Gg: AeBDiesef1Z90VHJKDprDJFtkwm9/KTtbwABJ7toxd6OPJ76hCKecRaP/n2tphx/13D
	EjojGHBJTjZ3ZzeTR1i+/TO8hXFHpAQ/DebyN67YbWii1f4BJOUJchqvf35waEXKIov8BEnXPVZ
	VsYeISPRgeGySBD9UoA5rk6A2zltTEV9oXVIfyoaTpTPHCGIDlSCFgNSbtuh+IIZ+PuZqEXFOYd
	PmiY0dFoBvpdHEi8tglRhFLvQzJG3q+/W/5kTiSrw7Ph6Lk/JmkHkdROlLqKlVHzQEmLfiB4vum
	KmGw8YR504p601oeyNxDb0SUVwsMLFIOtnhg5sYtMM5WLOEI64Sioct4wHM9ssfCm4tIWd/0kWg
	iv6Vru4erQR5rmQSHG5VxPkkC396FhtM4C1u4FGF9Ur8X2fuLnxf1w0M3oJ9CrlGZj2xRkZElEY
	xMK6VPgvGeKPku8KdfviH73BRcCTJivyvlbfboT7nroLdFeyhvhJoilGQ0wPxU7PUWOWZxuyOJi
	s4ojkpPx3xrgWxj3MQD7bvw2Q==
X-Received: by 2002:a05:6000:611:b0:44a:247e:67b4 with SMTP id ffacd0b85a97d-4515b9f31camr4156412f8f.18.1778055574075;
        Wed, 06 May 2026 01:19:34 -0700 (PDT)
Message-ID: <d6756e97-a928-4401-826f-5e12e4721648@suse.com>
Date: Wed, 6 May 2026 10:19:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] iommu/amd-vi: allow disable_iommu() against
 non-initialized IOMMUs
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20260506073719.40075-1-roger.pau@citrix.com>
 <20260506073719.40075-2-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260506073719.40075-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1778055574-A2D63938-00C51063/0/0
X-purgate-type: clean
X-purgate-size: 432

On 06.05.2026 09:37, Roger Pau Monne wrote:
> Introduce a force option to disable_iommu() that allows it to disable the
> IOMMU, even when ->enabled is not set.  While there remove the unlikely(),
> this is not a hot path anyway.
> 
> No functional change, as there are no current callers that pass force ==
> true.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Wed May 06 08:20:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 08:20:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301272.1575561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXUQ-0006GS-5l; Wed, 06 May 2026 08:20:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301272.1575561; Wed, 06 May 2026 08:20:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXUQ-0006GL-37; Wed, 06 May 2026 08:20:18 +0000
Received: by outflank-mailman (input) for mailman id 1301272;
 Wed, 06 May 2026 08:20:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wKXUO-0006GC-PL
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 08:20:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKXUM-006Nvc-KU
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:20:16 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69faf9b9-5cb7-0a2a0a5109dd-0a2a4508cf40-28
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:20:16 +0200
Received: from [40.107.209.6]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69faf9be-63b5-0a2a45080019-286bd106426b-4
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:20:15 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA6PR03MB7904.namprd03.prod.outlook.com (2603:10b6:806:42a::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Wed, 6 May
 2026 08:20:11 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 08:20:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cD6q3VMSkzkjxI+LX/4FcDgLHIFx7yub1TNfk0DgrQZCKmaQJlJd17s7Ke9Zw2XDuT6xH3MBFKS/OY89FSVC0wa5aMm4S+R/THj2xslNV/60usnPD+qPmi0NxHMeWFDwQnM4VQCdvZhDee9+Kwuws/VmhqnZte1X530kxKNIq21N9jQlIgIlDP3Bcp+rk2lBIwIn48ju5wDsM6GHBxUvFSj3hsX0s7vJjPFhykKGGfqgeEhbmPfq/gWuREWacQUQhXk7D1hPK/7KSUGc5AXx7/D401ZuwBudLW4K9SEp5zPuH19B5FQtU56wm1VqDDjuSn15zONKOsMX1a+j+ZU/OQ==
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=914UiiP8gqFzbTYKily7Lq63c9QMhT57qbAVRXfk5tE=;
 b=Dx32afmw/nlypXRBeD9UpQ6a9/LHxG3ONHskHJb5V2lX/T4iP2SIDh/v/xpJY7mUqlohBHZqEu66XO35J+jbwMQ6pWOvTurH8ACH3UJb5DkM6zK38urghbMVIodRwSLA42dFFuyQNk7JMs0+3Rx3jJ+jFjD44l/O4HZoWoYIO86wv22Y4LBwFlVjuzzvkpcinzGmeMEfbQ6gug4truki9kEQQ4/ynHJeKXWOEvP9ycMLtW0Hpj93OHwXV1x7IoW1A+zcFS2Bv+XO7wlWxlhJ3cPfkfzR4w0DQyaAGHtY73xlkhKJQu+j5fsRPJvEBTYYpOoXoWRfNu1I4JQy39Fl/Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=914UiiP8gqFzbTYKily7Lq63c9QMhT57qbAVRXfk5tE=;
 b=IkNAOJ5FEUGzR7bv+bFDGuJEsQ0G7aDzShwKKKFHrDHaVmiaw6S/KHGSMmgZWe6Vj2A4Qk/WtCDGmPJ5jPtJQyOc07gharKJX2UPw5ARIoj57zz8KkdIGO+fY0SYhgR49Ko5aYG8rKm8pUTC4A9sGLEKsH8+5FxVVjx5LvewsiE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <41ec5134-b117-47ee-8e59-682ac1e4a69f@citrix.com>
Date: Wed, 6 May 2026 09:20:07 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260506073719.40075-1-roger.pau@citrix.com>
 <20260506073719.40075-3-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20260506073719.40075-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0359.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:37c::19) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA6PR03MB7904:EE_
X-MS-Office365-Filtering-Correlation-Id: 8abfab82-bc20-40f4-fb04-08deab484a7c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	nYBvycU0bHtrwCzSZsITdeei2uF/SXuxLPPD3bRE073Y734eqiU6MLukLTOmLeUMh0Ga2ejb0PLCOb7xwDN/vW1IprH+dnMyHkB/zTBrWk5BPiAe5GU1Uir3/+uTSC4eW9fNljsF4IF55BYzyqXV6WlisSKNtFWQV1Sukl+7WX59u7LpEvwGbrTDCQ7yp1TC4DTt618jIyTSpv7ASfYz/utdsJ+59HThUty+eFZW8e8GUcZ7UdgQwxoDtyUP/RpGtTDr7OxnAAmfujT0zcefhOiO+B1C0o12D68DIp4x5+Sse/sy6nHXdHIY+jWbRLfGAGXnC2F7CaTJWfcybPa5BN+/PCPo74MvTVk04qfB7TMqg5W1dihl+MroMFg6idL+uFjULgEd63amK9BwmS0c3KuHE1BiRykKJfZhwI2flMqOsb7iva8Pivo9ys4PA0CDGhjwd4pjbqjoZyOzx8+WaT7t86pR4tQczp08yzv3O+FQvu4k2SGJWZuYdILsgtVlPYKnfxUjYkCv7OwQ9k5X7EaUPejbOeVCJCm6XIoBTfc6MMdI/JlOmTFI1vNLs6fnA9JrswNtx76PhUzFzlt4lp7Ad33KxzZJ5eXuTrIbMqX8Uoyy6HHFZ8yNduovpJDrGRxghWK4R4yonDlKe06/o1z6goQjKx8SCjBujtK7YAC9lW3+dUstvoCdlh+JTsQA
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YndyMlJzMmN5S3AzQk9wS0tVemtTTGczMGN5YVZ6dlpYYU8zMFZ5N1kvQ3k3?=
 =?utf-8?B?NVFHQ2cxVzJBUzJrRHhXMVJrNk5wQ1cvTVZPRHc2d040QlJnSWhPdk45MWNP?=
 =?utf-8?B?cDBFeitMMXhDcXB4TnhYODlyOG1qZHJ3SkJscU8ySVg1M3BBVjBJKy81U2lP?=
 =?utf-8?B?Zy9KTXdpdkJkU0JuSnFJWWhMc1kxY2N2ODBGMm9pVFZQYVRvT20veENYcnYv?=
 =?utf-8?B?eUQ5eDlJOGpGbE1uKzBldlR0VWdHNjZRdXJsNHA3UmU2R3lFeWI2K0pNS1Bx?=
 =?utf-8?B?NWF0NUN6VUoxOGtaalpqbi9KOVZ1Q044MHFtSFR0Mkt6ZUVzRS96YXd0QWRY?=
 =?utf-8?B?Y0Z2aTF4YjR2STBaNDBobUszdzRmQnkyd3p2RzhOMktLbzJhSGZSK09NU1dz?=
 =?utf-8?B?ZWxabDhhd05vZE8wY2VxVHpHejBzS0x6Z1M3WEs4MGxGY3RkUThLS0NqbWhP?=
 =?utf-8?B?d0VGalhxamZMdW5LNGF5VlpKVnpIOUQrcHl6N0tINHNyZVpjMUFUL0E5RmJz?=
 =?utf-8?B?QjBxT3Ftd3NMNDh0LytCY1VFZXFkWENldmxhbnlBd1ZHZGE1SklhbVJBdTM5?=
 =?utf-8?B?UnFkamY1ODNlRDFwVGxka2xJa3dMZW1HQnp6aTFNSUd5WEg2R2dyMno0cXFu?=
 =?utf-8?B?a2ZteXBTUDgyTjVBUEJZazRUTDJOQzdUZWJiOER4QlBLS2NGdmJqRzBjNk1J?=
 =?utf-8?B?Tkw5T3h3RkpuMDVVRU1HYUVuRXZqbjBWWkJqQnc1dkdjc1dHdkFHb1A4ZlB6?=
 =?utf-8?B?Wk5CK0tYVEdvQmMxcitueENydmxnWXNRTy9mQ3FkZi9kWjlYYjJTV0NEUnFt?=
 =?utf-8?B?VTI0QWJISnlySWp4NFhNeVgrM2k1K1ZqeEZFMUtxak8wUUY2dXM3aEtZajhv?=
 =?utf-8?B?RCswZTZGTmc2NjRNc2h0dktCZjJPd0kvc0FUQXd2TU5GK2dMd1NjZ2wxa2dM?=
 =?utf-8?B?WXkwUWRWS1VqRFRDdTZWRFFsd0RyT1NaTnZRSi9TRlNhRzVwNmpCS2FrVk1H?=
 =?utf-8?B?Y1hsWGdSSjgrYVBSR1dKY1M3ZlJUNVlpbVBrUU5PTktGTWNvc3p3eENMQVp0?=
 =?utf-8?B?T2swbVlNSlRyYUhKTmMwTVU4TU1Vb0ttQWM0WjBNazVPRkZqYXMydkF4Y29q?=
 =?utf-8?B?b1pMeHZrWlg2dUNteWVCR0M3M1dsb2pab3RXcFVNN0R6QlJBbmE0VzFUVXZ0?=
 =?utf-8?B?dlVyVjJIK3NJbDcyN2hiQVQySjlvUUhybnF4dHdQdXlDNUpKSUk0OXFTc2dI?=
 =?utf-8?B?dVpnR0FRZ3dRVDZqQnI4UExNalVLQlVYd09TV0tBNXFhbVlOSDdnNEovNmdL?=
 =?utf-8?B?a3htM1hrZThtaDVOenErTzg0aTdYVVFCQTllWXQ3ekFYVGl0Z3A2bnRNNEJs?=
 =?utf-8?B?NUhrMTVveDBPQVNEZGJoS2h6dU5lSXpDSEUxU1dpUHF6cmhjUG4rNi93d3RQ?=
 =?utf-8?B?WHRPeWRrOXNzNGlxLzJuUksrMmt1N3crNkYxa2JHZldBMVZ1TE8yNFpjdGVW?=
 =?utf-8?B?Y1ByOEszYjc1bE1GYk9pTzNrQ1l6WHFIUTU0WGs4MktuZTUxd3hla0pOOE5v?=
 =?utf-8?B?MWlka0c5dkZtTXBMUjVqZ2ZuL0pSazBDY3ZkNUlXa3NEckJKN3FwdzZDcmNt?=
 =?utf-8?B?eFM4eFpjbEFrSUFsLzNlQU5ROEI5UXF0cDlmUmFtcFBKc2dmd2xyUTZ5cjRr?=
 =?utf-8?B?OGxvNG9tRzNOVkl4OURxZkphVUhVeDkzZHBEWXQrZ25ldGM5VEkvRTB4MnBx?=
 =?utf-8?B?eEZPSjVCVHFFTGdQRXNBbzl4andibEdDZGhxNS9tdGg4N2dJbFJyREx4RWhs?=
 =?utf-8?B?RkxqY3VvZmdVeElsRC81S21rMWYrK3V5cVVFbENpZWVOVFJodXoyZEo5TDg1?=
 =?utf-8?B?eDZXbkFRdm4rdzlxQWpzczhMM3pzMnVlNzVCbEZxVUh2cDE1WUdwaWl4cU92?=
 =?utf-8?B?ek1DdzhUQXR3cGZ5OUhkM2Z6cC93dWF1Sk1sNDZ3YXQ5dGxHV0NxaVltRk9i?=
 =?utf-8?B?OFVOVlppTURJbEk4cml4MzUzQ3dLRStrVUwrMURnYUJGWHdZTithZFpvWlN5?=
 =?utf-8?B?ZDYvVDR1aDlEZU9ocjgwUmJOV2lTU21RNHd4WFFVaVFYRnUydlM5OEtLQ3Yz?=
 =?utf-8?B?ZURYVUx3SUxGcFp0bXJDSE1raXZ0SmVSR2pZNkpmeWFYZmV2UUs3U3pyRktn?=
 =?utf-8?B?Y0tlVTNZcUJVOFlFTFhNNEs1VUNWaitlY1NWa0Q1SlRNeEtwUUc5VVQ0azcr?=
 =?utf-8?B?VXBsYkVpSWpBVU1rdG5OS3pycmorSWFudE0vNjF2ZXd0YXZzWnU1TmxnbE1I?=
 =?utf-8?B?ZlNaeTl1Wnd4dVlJbWhFZHhKdXBtQlJPYzdZWlRPWHRYV2dVSk1aTnR2dlN0?=
 =?utf-8?Q?kTmV0d67f/8eXyv4=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8abfab82-bc20-40f4-fb04-08deab484a7c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 08:20:10.9912
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: YWWVdiiJG5awcINlpb+g6pRV8y2P6JytIGT2l9Hxy/EJaa6bKu3Sg7BF49kWKlaK4g0ESEgXVUXjiNVCSVcxvj+1JC7YQITJsVkl+8hLA2Y=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR03MB7904
X-purgate-ID: tlsNG-c1860d/1778055616-3B97DDB1-55F383E3/0/0
X-purgate-type: clean
X-purgate-size: 2127

On 06/05/2026 8:37 am, Roger Pau Monne wrote:
> Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
> say the least.  We don't know what registers might be there, neither what
> values might be safe for those registers.

Minor grammar.  "there, nor which values".

> On a forthcoming platform doing
> the zeroing of the MMIO region can put the IOMMU in a broken state,

"does put"

> which is not recovered by the IOMMU initialization procedure in Xen.

"recoverable".

> diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
> index 76ae78e5ea53..8bf5ca4de18f 100644
> --- a/xen/drivers/passthrough/amd/iommu_init.c
> +++ b/xen/drivers/passthrough/amd/iommu_init.c
> @@ -1367,11 +1355,14 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>  {
>      int rc = alloc_ivrs_mappings(iommu->sbdf.seg);
>  
> -    if ( !rc )
> -        rc = map_iommu_mmio_region(iommu);
>      if ( rc )
>          return rc;
>  
> +    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
> +                               IOMMU_MMIO_REGION_LENGTH);
> +    if ( !iommu->mmio_base )
> +        return -ENOMEM;
> +
>      get_iommu_features(iommu);
>  
>      /*
> @@ -1381,6 +1372,11 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
>          return -ERANGE;
>  
> +    /* Read current control register and forcefully disable the IOMMU. */
> +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
> +    disable_iommu(iommu, true);
> +    iommu->ctrl.raw = 0;
> +
>      return 0;
>  } 

These two things are unrelated at want splitting into separate patches
at a minimum.  The removal of memset() critically needs backporting.

As for disabling the IOMMU, I'm not certain it's wise.

Linux can already "bring up" an already-live IOMMU and Xen needs to gain
this ability in due course.  This is mainly for supporting PreBoot DMA
Protection, but also for things like the kexec environment.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 06 08:29:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 08:29:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301283.1575570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXco-0007C5-2T; Wed, 06 May 2026 08:28:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301283.1575570; Wed, 06 May 2026 08:28:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXcn-0007By-Vv; Wed, 06 May 2026 08:28:57 +0000
Received: by outflank-mailman (input) for mailman id 1301283;
 Wed, 06 May 2026 08:28:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKXcm-0007Br-77
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 08:28:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKXcl-008tlS-JQ
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:28:55 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fafbc0-2eae-0a2a0a5409dd-0a2a450b8a6c-32
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:28:55 +0200
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fafbc6-212f-0a2a450b0019-d155dd29e916-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:28:54 +0200
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-44509921fbcso3137171f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 01:28:54 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45054b03d59sm9776015f8f.20.2026.05.06.01.28.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 01:28:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778056134; x=1778660934; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vo0og7pXeo+RDukF/jhl58f2Jn79Awb6dVMaa1IMfdI=;
        b=OkdDaiCLdXauKelBa5/mTS/2CCea1JwR4v2uEm2prZ+aBAHQZUKaBKioXhFoJU4cJv
         otRdwdO1ykGrgBFpODDHbflme4r3NKFTtRRjZ9/N5igp6WqPJlvO3JbgzqVjorBTKZZF
         gR4abNQpSsPk8P+V1z0+fO0L70BtEVAPb4yEoBPXgz2wQO3QRGPlTDCrkgkZa7Gw6WLo
         YnOqqASdNdAmYIZ1MnWuDiL5fSKaFi9Yxx2HEckL7EtSVsgYp0PkrsyPEvA8QxyD+cc5
         I9j/zHIQSne5QRDPJyLV57jlqPjt0UVAWd8NYdo7wPeUJBYSPX86szVcdK8GA1fevzm8
         rJ2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778056134; x=1778660934;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vo0og7pXeo+RDukF/jhl58f2Jn79Awb6dVMaa1IMfdI=;
        b=pEi7+V3EK76vcilPQQqisLQMJaIp9hLByjGTX9l3jPpXWIoaen3eqMKD+uFNoDXr8o
         NvPmBJDUAPDjPGqiY0WxxVIueqAEW9hwWJDwWTFKI255+6T3CdIfJearM3T0a7/fBnk2
         aE0MFr4TFQrd9E4o9Kajlx8VeS5VGDz2QRblrvo82mU4QRcmhCYTF2QVj4aILRf6KSJY
         LLlkJKgD5ymFUXWqFJ/YwDzw08oRslDrRNRASudjT7hLSezimjMd+vNBvPpGDIdH8m2H
         7MLYuaDEea/vPkOOTDkiOoQQf/qNn+KfsJ1DRM5WjqoIQYuN/yvpWGgo9ZyOZ6slVg38
         vQQA==
X-Forwarded-Encrypted: i=1; AFNElJ/Kmcj+/rVtpsMmhLjhGov8rjsp+9UzVhtZ/VgjgsCDL11GHd1k+QvCC0Wun1vg0NOHB9OePSaQXDE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxkzbUe3mL5KvVPRp2YPoyC+nqV+HoK873ni8K96NtUFxbPsh6j
	oYrcw3qDUmnr45uUc/2miZRYenEMDqte8TykvZqY/orG9PxTng1pJsrcEpWL6hYRcA==
X-Gm-Gg: AeBDieu4Bgu554ghhb956AAqEs0s8c05ybCNsfeLaMMSXiWEVCJexnjkfevC+tMGsDB
	EgZ2ua3W4Hfb6V9EevCCu5ekEKYxEDgemar7kLChhHPMCTrLC4y3X/FH91SJJGUfXwRtjkUKo49
	57xRcQ7wQpuOnUhsZ756hSL7NkVijDdItmmBplG275wto4WDsHCSTHL3A3QE/ghc8021BwU+0hi
	GqsCT/zvHhe+4pSng3q+qQgjdeKqcSMrP1eVaVhGN5EGfWCZ66893h9CJP8DIVeHAsYs30j7HN6
	NzQjLlqpoXGDv7tF2aOeyofkj9HUQglhUXxlwYUjZDUZQU9Nbgq9Y6JKq8JAnaNS7txadP8qYeg
	w2K0jkPizZgYjbY+du0MAVepK9F6FUpJ0Q1BH4upVL9zRJD3HDKZZKeKetBDnz57bMq1ICjetER
	RPhi8plTbZsMv8HguzvclXewGv7VXIUOdqEmSFwhIxVEgQQvNNc5qPDQHeqll1LyH6Ch3c/5Ufz
	EZQkhUcd1Vuh+Jjpa8HFHQAMQ==
X-Received: by 2002:a05:6000:1acd:b0:44a:75e2:5590 with SMTP id ffacd0b85a97d-4515d6bbf6cmr3759349f8f.35.1778056134505;
        Wed, 06 May 2026 01:28:54 -0700 (PDT)
Message-ID: <0035d666-2ad3-44d8-a2a8-e612dfd10503@suse.com>
Date: Wed, 6 May 2026 10:28:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20260506073719.40075-1-roger.pau@citrix.com>
 <20260506073719.40075-3-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260506073719.40075-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1778056134-7E16DF3B-D0636BED/0/0
X-purgate-type: clean
X-purgate-size: 1067

On 06.05.2026 09:37, Roger Pau Monne wrote:
> @@ -1381,6 +1372,11 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
>          return -ERANGE;
>  
> +    /* Read current control register and forcefully disable the IOMMU. */
> +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
> +    disable_iommu(iommu, true);

Don't you also need to pre-fill iommu->features? And with that field's use in
disable_iommu(), won't we be at risk of leaving stuff enabled which we are
entirely unaware of? Even if we fully cleared the control register (which
would eliminate the need to fetch features), down the road a 2nd control
register could appear. Has it become clear which register(s) or bit(s) it
really is that are causing the observed issue? IOW is there truly something
we may not clear? Or is it maybe that memset() really isn't suitable for use
against MMIO, especially after having switched to use of REP MOVSB when ERMS
is available?

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 06 08:34:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 08:34:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301290.1575580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXhl-0000HD-JE; Wed, 06 May 2026 08:34:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301290.1575580; Wed, 06 May 2026 08:34:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXhl-0000H6-Gc; Wed, 06 May 2026 08:34:05 +0000
Received: by outflank-mailman (input) for mailman id 1301290;
 Wed, 06 May 2026 08:34:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKXhk-0000H0-UH
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 08:34:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKXhj-00GuST-Pi
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:34:03 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fafcee-2eae-0a2a0a5409dd-0a2a4506dcc6-42
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:34:03 +0200
Received: from [209.85.221.45] (helo=mail-wr1-f45.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fafc83-7371-0a2a45060019-d155dd2de40e-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:32:03 +0200
Received: by mail-wr1-f45.google.com with SMTP id
 ffacd0b85a97d-44c4cc7c1cfso2830886f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 01:32:03 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4511d8cd160sm6179909f8f.8.2026.05.06.01.32.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 01:32:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778056323; x=1778661123; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=E89KF/g4khFhqhXrogqnh2huhO/VJomAF3gUXy1Cm0o=;
        b=Eh0tKt+YoNNlLFh9on+j9zSaiZzFLwyUhy/LelLgfOhM3+E4JFQW20zb7LnwbDwrMU
         Qc5gBDCOtXVd6ubsq0MI2jl7IxsgaqUjsDbvZ8ki7JEgp63IK0vGAYHpDk0pyhUR9D37
         qmYZkug+w3iZNQTg23KLn8c1GfqQk4oHKkc8q8UfVB4xG8HePwpBm7HoLLrU5Bc7feDB
         UkS1T43+GJoAZh0TL9k8cJJLlsksWgvqHd/smeOQA9XFv5X922zdqFVf977yal8JSPJ5
         8aZVLThZlnIxaKWo7cPy+3HEQh8fHP0imllNlNOYpkVlRzWmfyoPF4/qnChdwKLv9N5c
         KW0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778056323; x=1778661123;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=E89KF/g4khFhqhXrogqnh2huhO/VJomAF3gUXy1Cm0o=;
        b=jAHDsVnfjQ9OzwyPNtvppI9bsQBYAVy4s0V41PY1adowDIZXtaBin7VD370vM4kqUJ
         R6ni7gxKwUDhOoF+x37pO9hkB1+4pS/gL2vNNQ84+7a0qxDVyYJapqeM+LTLJpjuFurD
         bp4UZDD8COm+rblczYvjnUPzM0nJERLDu9AZOGjgWfAqZRyFRLyXWbT1qE2DBP8tki21
         2c+KUL0P/x2HFbuTjvGwiCyESi/tnee4rBGhGTns5hCuXmWAcsoDEBJeF7R3zCXVK21o
         gC6p8vvSexmCkXTnS/ADCir0q9m2uDG5sF0cplMDhacIT+DCZ/k+Ks2kf48XRzqgnOqF
         7/SA==
X-Forwarded-Encrypted: i=1; AFNElJ/BM/AFdN4KBc65VpmOl+q5Dyc/UJMlaHz7SP0IsA/QAm4zZmMf77oOEF5PmcuZxJJlmgmFpJ1I5nE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYycpwbiL/irK0Eor4INPQFmGDvuTqyQs8ByazAmvdR8YHcNOy
	EmYi+Q0TNvcpowV5otH4RDTJ+wJs1gCznMshVy+ziGUYAAK+pmBB9ONqELOabNwJjA==
X-Gm-Gg: AeBDievkUBxYXqyHQnKZXGdYIRAqaaC/gNaiI9NkoGbVCDn13Eq0QEXHzqoX2ag/4WN
	yzzTDnuhAi/HabVj/U1UrYJ8FFRhqBclLnT1ZBBzp10F7FdWBTL6OAPYUD5N2Qzteh2edTZGoOE
	c6ED3gG8xOLrcL90RC+YHa8xjWPczpQVY2dSWU71FJ7juim2EFObDySa1VLWjKNJnMPl9AfP3Fg
	dClnQhaS2Pk7BiUg/Ia18yFL1fUCBNOw+CRf+sbzDdnq1eRtrtJlIOR33lzGIwSB1YnYxPQ7vCA
	QROQTC4+Ug2qpg3h7l6kkyxWRdTtLE0dpGj0YPhVXxdJqJQ84fWAbOzCTcSHGe8WvZKpuwPyXnT
	WSFlq/5fj8jyP+gN1exOJWVH8lFWPv/rC0K8b6SDHULoYhNxPqdTKtLLRjtOERDeoHiKfw6+uAN
	1LuRi8Ze2szwvBEh53nsXLs0luK0LvSKLeKIY/605QiNO/+qoGVE8uW2GuK+OYjiRwAxIGgLKMu
	OUv/D/2TfFGCJn80lIPb8/HPA==
X-Received: by 2002:a5d:64e7:0:b0:445:ed7f:ce84 with SMTP id ffacd0b85a97d-4515b524043mr3805248f8f.10.1778056322999;
        Wed, 06 May 2026 01:32:02 -0700 (PDT)
Message-ID: <1d771706-35b1-4d6c-bcd8-a3bccfa825f3@suse.com>
Date: Wed, 6 May 2026 10:32:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Teddy Astie <teddy.astie@vates.tech>, Roger Pau Monne
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260506073719.40075-1-roger.pau@citrix.com>
 <20260506073719.40075-3-roger.pau@citrix.com>
 <41ec5134-b117-47ee-8e59-682ac1e4a69f@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <41ec5134-b117-47ee-8e59-682ac1e4a69f@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1778056323-CE777D75-FC790A96/13/0
X-purgate-type: clean
X-purgate-size: 1745

On 06.05.2026 10:20, Andrew Cooper wrote:
> On 06/05/2026 8:37 am, Roger Pau Monne wrote:
>> @@ -1367,11 +1355,14 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>>  {
>>      int rc = alloc_ivrs_mappings(iommu->sbdf.seg);
>>  
>> -    if ( !rc )
>> -        rc = map_iommu_mmio_region(iommu);
>>      if ( rc )
>>          return rc;
>>  
>> +    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
>> +                               IOMMU_MMIO_REGION_LENGTH);
>> +    if ( !iommu->mmio_base )
>> +        return -ENOMEM;
>> +
>>      get_iommu_features(iommu);
>>  
>>      /*
>> @@ -1381,6 +1372,11 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>>      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
>>          return -ERANGE;
>>  
>> +    /* Read current control register and forcefully disable the IOMMU. */
>> +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
>> +    disable_iommu(iommu, true);
>> +    iommu->ctrl.raw = 0;
>> +
>>      return 0;
>>  } 
> 
> These two things are unrelated at want splitting into separate patches
> at a minimum.  The removal of memset() critically needs backporting.
> 
> As for disabling the IOMMU, I'm not certain it's wise.
> 
> Linux can already "bring up" an already-live IOMMU and Xen needs to gain
> this ability in due course.  This is mainly for supporting PreBoot DMA
> Protection, but also for things like the kexec environment.

While I agree we would better support this, as per my reply to Roger: How
is that going to work if the IOMMU has features enabled we may not even
be aware of? We'd still need to blindly clear everything we can't drive
ourselves.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 06 08:42:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 08:42:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301300.1575588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXpP-00028m-B3; Wed, 06 May 2026 08:41:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301300.1575588; Wed, 06 May 2026 08:41:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXpP-00028f-84; Wed, 06 May 2026 08:41:59 +0000
Received: by outflank-mailman (input) for mailman id 1301300;
 Wed, 06 May 2026 08:41:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wKXpO-00028Z-1g
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 08:41:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKXpN-001oY3-6L
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:41:57 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69fafece-5cb7-0a2a0a5109dd-0a2a4504b53a-34
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:41:56 +0200
Received: from [52.101.56.2]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69fafed3-1dec-0a2a45040019-346538025e3b-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:41:56 +0200
Received: from BL1PR13CA0009.namprd13.prod.outlook.com (2603:10b6:208:256::14)
 by PH7PR12MB8105.namprd12.prod.outlook.com (2603:10b6:510:2b7::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Wed, 6 May
 2026 08:41:51 +0000
Received: from MN1PEPF0000F0E2.namprd04.prod.outlook.com
 (2603:10b6:208:256:cafe::85) by BL1PR13CA0009.outlook.office365.com
 (2603:10b6:208:256::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.15 via Frontend Transport; Wed,
 6 May 2026 08:41:47 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000F0E2.mail.protection.outlook.com (10.167.242.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Wed, 6 May 2026 08:41:47 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 6 May
 2026 03:41:47 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 6 May
 2026 03:41:46 -0500
Received: from APPOL-18KY0J4.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via
 Frontend Transport; Wed, 6 May 2026 03:41:45 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Gn5Pn5W+znKF5LA+OkYlre/VtmhBHAwtoNpYm+sQ+5MN3rPKInbdfoheYJVftiD5hdXYttrGcDERzN8dX89QdycEILpqXLSwqBmJtWJADB5yLmRpxPY34WP6z6ldIwx22CcRyxqqQJSbH5wbPajMHBy0NxPJa3JVa0qXAl1tCak4R+EaRWaLZTinCuq0xIN7JaPoTTr5lBiCxiwlW8jZqgN0VBaBsALP3/Sus0wM4ZId8NZOVx5Uo7QgbQfbQz+GsH+Iw0NHpBWmNvR34zsHUN3broKtzd9vkhJqQOfHS3Lk2B/y4zLjraQegID7c+xfD16PEz6Sd/SB/Vo8SYKe8g==
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=la/wxfFIVE8P7U52iG/jws8cONQRuWDh6i4z0z3RURQ=;
 b=ToT3WQhFZA/BRmC5llWKTO3x325ZayCWe2xpCo6gABgctCbm8j98ns0h6Ez9ishdUHsMP2eSNi2zYijDshQjfCtAHgo8Nz4CZb6eNij7mcIG5+778RtNIKsAK4AVc9KfiV6+qP2KA66be4WW7o0YGeDWtI2VfHrjgTMXCeIm9qr6f6+r6yqMbW6Lc7aCMsmGzZZDGcnxW5LJk6V5tPT/hSIR/Xev6XXz7psZzzVVSVQ4H8oNw1G8GCG7tI/dyKLrFf7w8w7ycLENHTJg8oGiduvlzVd05mFlnsDskI45EJGmCk5dav+WAPylEg5ThgkPYk0b2k5ad1WZBzvu7jEYuw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org 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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=la/wxfFIVE8P7U52iG/jws8cONQRuWDh6i4z0z3RURQ=;
 b=dnMFez2KTKywfaNZgQXo6FdAWaBZ76/a2yFJRgTUkbHt8HjnAFTQVglmH7VSURguKxkwHzSrIeMME4H3qhTt0on4DwhZrKXXqUWIucuozqJr+V/MC4x+G5B2ri9lqKyDEZuaeZFTTJwNloHbzn9nNEGD3gc5c4pdUUUZZDDr1VQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Michal Orzel <michal.orzel@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v3] xen/arm: skip holes in physical address space when setting up frametable
Date: Wed, 6 May 2026 10:41:37 +0200
Message-ID: <20260506084137.40913-1-michal.orzel@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E2:EE_|PH7PR12MB8105:EE_
X-MS-Office365-Filtering-Correlation-Id: 276a9620-9f95-44d2-451e-08deab4b4f33
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|1800799024|82310400026|13003099007|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	XbeBhU5nw00yHQabv266JeQlfzoVEdv3P0Ypa2Cdr2pw2CfbVLxiM8mb3vkZKE60UfOXKv7g5Nk2RjjRuacy0Yt9+l/JlvgjrLjxQ8ghCPq9ac8xidXVI9I41n+We8VxHN/8EYDh7nl+2kTwtJsWNxAIkCImkutpTHHfAWI0TZ7yxRL9NcidttHCYgoa+IecpaY/EcUTShUqA6tYvPh+XxItBwXxIHtB5gMG8iFSN/1RnP8WRhK8s1c/ysWnSOxU9h58GHoglNLuR20g5EfxbcdGywmcg+I2Yqp8uflptrbqFCBrwFYOAjAD0DJwb4X55l0MBiCb9kRnU+3AVUPUBvhnL1GDeVMYFdVpxFPJqDwE/BzvKsNMuT8dnbZLzjgzKPJFhFUhOMujEAeb4aTo/GeBZWDRgPWAGBY48l7rMtPUFt2iguZzWlT4Oo9Y67BV3RNUsgAFdvgUn2Wb7UvdaLQ2tsT2Lhy7kUNKdaGalIdwycqYJIOEPKpineG5etUGG/IOVtIpbeBQRBxHa4LScGKCHmVqKzSPrGfUaQyFjB3LQ7T4ki14O2C5q6byOIO9MISvW+oS8fRCENZz7DkwLhIVcCFAVayqtQ7Lj+vpggWEtfHhBIpyrnoiK4JRdqn4kr7yQwyEbiAwk9ByLunA5PiKbJHZeYooNskOCXnIQzZF9eoO+zpRiPDB9tZsQlcM1cLYFf+mwza4LfLJJYBAt7QAtkETyaQEma9aEsuLordl8H1MF7SE+LwbtMlHfOOr
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(1800799024)(82310400026)(13003099007)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	G5FAaZ736o6YnnhI35F6Pp65fVzkCQ2Oh+YS0OAEXHuOYZLdQANpj79iyBRH4DRWkQOjJWn8SMhGE/gprlX5RswyHiXkNsjz4HtW55da4NJBlmTaTP7QosS0cRQHbttbrfSGnnLyDJWqik24AiK0GiPxRR3lMgAOMPta+BIgY/Q97DLKQfuCzWn0+OlKsm6T0VPM9UXiVaUXAzwqVuaKFvHqiFaW0OmHmSMnZ8y35Hts5HPqxhdGrh+og08sZYDQY86E1T3qKQ2TVVVDk+JXSAvWbGVVZtObWzP5BjvUV3DSyp6V4hGVarQfhklnX0p+ovh5zvGrCaHOtAJRT1cXPQnPbNpwEv9k5YCIltR61S7YE46jURcwriargzoNsJ6OvbMMoyMkmQZhtWQLHAMuoR95r9vwou/yT7xD+WTj93B6A+ao6l6IXM6Av+XB/f0w
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 08:41:47.2495
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 276a9620-9f95-44d2-451e-08deab4b4f33
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0E2.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB8105
X-purgate-ID: tlsNG-ebf023/1778056916-2B1663FF-7239EC51/0/0
X-purgate-type: clean
X-purgate-size: 11641

Refactor setup_frametable_mappings() into init_frametable(), modeled
after x86's implementation. Instead of mapping one contiguous frametable
covering ram_start to ram_end (including holes), iterate the
pdx_group_valid bitmap to allocate and map frametable memory only for
valid PDX groups, skipping gaps in the physical address space.

This reduces memory consumption on systems with sparse RAM layouts by
not allocating frametable entries for non-existent memory regions.

The chunk allocator rounds chunk_size up to PAGE_SIZE only, rather than
to a larger mapping granularity, to avoid overshooting past chunk
boundaries into subsequent gaps or valid regions. This rounding has no
impact for in-loop chunks given that chunk size is a multiple of 14MB
on Arm64 and 2MB on Arm32. The rounding matters only for the last
out-of-loop chunk.

Physical allocations prefer 32MB alignment so that map_pages_to_xen()
can use the contiguous bit for larger TLB entries where virtual
alignment also permits. Fall back to 2MB if the chunk is smaller than
32MB.

Add a comment explaining why we don't use pdx_to_page(). For complete
discussion see [1].

As ram_end is no longer needed by init_frametable(), drop the now-dead
ram_end/bank_end computation from setup_mm().

Update the MPU implementation to match the new init_frametable()
signature. Since MPU has no virtual address translation (ma == va),
hole-skipping is not possible and the frametable remains a single
contiguous allocation.

[1] https://lore.kernel.org/xen-devel/20260430125103.401811-1-michal.orzel@amd.com/T/#m803025eb6720a1425443dd0f8e72be93ef02f344

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
Changes in v3:
 - don't generalize pdx_to_page with frametable_base_pdx
 - use different alignment depending on chunk size
 - drop tags due to the above changes
Changes in v2:
 - fix overshoot problem with 32MB rounding
---
 xen/arch/arm/arm32/mmu/mm.c   |  3 +-
 xen/arch/arm/include/asm/mm.h |  4 +-
 xen/arch/arm/mm.c             |  5 +-
 xen/arch/arm/mmu/mm.c         | 99 +++++++++++++++++++++++++++--------
 xen/arch/arm/mpu/mm.c         | 23 ++++----
 5 files changed, 92 insertions(+), 42 deletions(-)

diff --git a/xen/arch/arm/arm32/mmu/mm.c b/xen/arch/arm/arm32/mmu/mm.c
index 5e4766ddcf65..0b595baa11b3 100644
--- a/xen/arch/arm/arm32/mmu/mm.c
+++ b/xen/arch/arm/arm32/mmu/mm.c
@@ -178,8 +178,7 @@ void __init setup_mm(void)
 
     setup_directmap_mappings(mfn_x(directmap_mfn_start), xenheap_pages);
 
-    /* Frame table covers all of RAM region, including holes */
-    setup_frametable_mappings(ram_start, ram_end);
+    init_frametable(ram_start);
 
     /*
      * The allocators may need to use map_domain_page() (such as for
diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index 72a692862420..2eb8465aa904 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -196,8 +196,8 @@ extern void *early_fdt_map(paddr_t fdt_paddr);
 extern void remove_early_mappings(void);
 /* Prepare the memory subystem to bring-up the given secondary CPU */
 extern int prepare_secondary_mm(int cpu);
-/* Map a frame table to cover physical addresses ps through pe */
-extern void setup_frametable_mappings(paddr_t ps, paddr_t pe);
+/* Map a frame table */
+void init_frametable(paddr_t ram_start);
 /* Helper function to setup memory management */
 void setup_mm_helper(void);
 /* map a physical range in virtual memory */
diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index 6eddbcf912ee..65aea71c4351 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -33,7 +33,6 @@ void __init setup_mm(void)
 {
     const struct membanks *banks = bootinfo_get_mem();
     paddr_t ram_start = INVALID_PADDR;
-    paddr_t ram_end = 0;
     paddr_t ram_size = 0;
     unsigned int i;
 
@@ -42,11 +41,9 @@ void __init setup_mm(void)
     for ( i = 0; i < banks->nr_banks; i++ )
     {
         const struct membank *bank = &banks->bank[i];
-        paddr_t bank_end = bank->start + bank->size;
 
         ram_size = ram_size + bank->size;
         ram_start = min(ram_start, bank->start);
-        ram_end = max(ram_end, bank_end);
     }
 
     total_pages = ram_size >> PAGE_SHIFT;
@@ -62,7 +59,7 @@ void __init setup_mm(void)
 
     setup_mm_helper();
 
-    setup_frametable_mappings(ram_start, ram_end);
+    init_frametable(ram_start);
 
     init_staticmem_pages();
     init_sharedmem_pages();
diff --git a/xen/arch/arm/mmu/mm.c b/xen/arch/arm/mmu/mm.c
index 6604f3bf4e6a..c4018a61aa01 100644
--- a/xen/arch/arm/mmu/mm.c
+++ b/xen/arch/arm/mmu/mm.c
@@ -6,18 +6,55 @@
 #include <xen/mm.h>
 #include <xen/mm-frame.h>
 #include <xen/pdx.h>
+#include <xen/sizes.h>
 #include <xen/string.h>
 
-/* Map a frame table to cover physical addresses ps through pe */
-void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
+static void __init init_frametable_chunk(unsigned long pdx_s,
+                                         unsigned long pdx_e)
 {
-    unsigned long nr_pdxs = mfn_to_pdx(mfn_add(maddr_to_mfn(pe), -1)) -
-                            mfn_to_pdx(maddr_to_mfn(ps)) + 1;
-    unsigned long frametable_size = nr_pdxs * sizeof(struct page_info);
-    mfn_t base_mfn;
-    const unsigned long mapping_size = frametable_size < MB(32) ? MB(2)
-                                                                : MB(32);
+    unsigned long nr_pdxs = pdx_e - pdx_s;
+    unsigned long chunk_size = nr_pdxs * sizeof(struct page_info);
+    unsigned long pfn_align;
+    struct page_info *pg;
     int rc;
+    mfn_t base_mfn;
+
+    /*
+     * In-loop chunks span whole PDX groups, which are always page-size
+     * aligned. The last chunk ending at max_pdx may not be, so round up.
+     */
+    chunk_size = ROUNDUP(chunk_size, PAGE_SIZE);
+
+    /*
+     * Try to align the allocation to the contiguous mapping size so that
+     * map_pages_to_xen() can use the contiguous bit.
+     */
+    pfn_align = ((chunk_size >= MB(32)) ? MB(32) : MB(2)) >> PAGE_SHIFT;
+
+    base_mfn = alloc_boot_pages(chunk_size >> PAGE_SHIFT, pfn_align);
+
+    /*
+     * Resolve the frametable VA via mfn_to_page(pdx_to_mfn(...)) rather
+     * than pdx_to_page() because the generic pdx_to_page() does not subtract
+     * frametable_base_pdx. There's more work to be done to make it generic, so
+     * for now route through mfn_to_page(), which on Arm applies the
+     * frametable_base_pdx offset and yields the correct VA.
+     */
+    pg = mfn_to_page(pdx_to_mfn(pdx_s));
+    rc = map_pages_to_xen((unsigned long)pg, base_mfn,
+                          chunk_size >> PAGE_SHIFT,
+                          PAGE_HYPERVISOR_RW | _PAGE_BLOCK);
+    if ( rc )
+        panic("Unable to setup the frametable mappings\n");
+
+    memset(pg, 0, nr_pdxs * sizeof(struct page_info));
+    memset(pg + nr_pdxs, -1,
+           chunk_size - nr_pdxs * sizeof(struct page_info));
+}
+
+void __init init_frametable(paddr_t ram_start)
+{
+    unsigned int sidx, nidx, max_idx;
 
     /*
      * The size of paddr_t should be sufficient for the complete range of
@@ -26,24 +63,40 @@ void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
     BUILD_BUG_ON((sizeof(paddr_t) * BITS_PER_BYTE) < PADDR_BITS);
     BUILD_BUG_ON(sizeof(struct page_info) != PAGE_INFO_SIZE);
 
-    if ( frametable_size > FRAMETABLE_SIZE )
-        panic("The frametable cannot cover the physical region %#"PRIpaddr" - %#"PRIpaddr"\n",
-              ps, pe);
+    /* init_frametable_chunk() allocation alignment assumes 4KB granule */
+    BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
 
-    frametable_base_pdx = mfn_to_pdx(maddr_to_mfn(ps));
-    /* Round up to 2M or 32M boundary, as appropriate. */
-    frametable_size = ROUNDUP(frametable_size, mapping_size);
-    base_mfn = alloc_boot_pages(frametable_size >> PAGE_SHIFT, 32<<(20-12));
+    /* In-loop chunks must produce page-aligned frametable regions */
+    BUILD_BUG_ON((PDX_GROUP_COUNT * sizeof(struct page_info)) % PAGE_SIZE);
 
-    rc = map_pages_to_xen(FRAMETABLE_VIRT_START, base_mfn,
-                          frametable_size >> PAGE_SHIFT,
-                          PAGE_HYPERVISOR_RW | _PAGE_BLOCK);
-    if ( rc )
-        panic("Unable to setup the frametable mappings.\n");
+    max_idx = DIV_ROUND_UP(max_pdx, PDX_GROUP_COUNT);
+    frametable_base_pdx = mfn_to_pdx(maddr_to_mfn(ram_start));
+
+    /*
+     * Mapping address in init_frametable_chunk must be page-aligned
+     * for map_pages_to_xen(). Aligning to PDX_GROUP_COUNT guarantees this
+     * because PDX_GROUP_COUNT * sizeof(page_info) is always a multiple of
+     * PAGE_SIZE by construction.
+     */
+    frametable_base_pdx = ROUNDDOWN(frametable_base_pdx, PDX_GROUP_COUNT);
+
+    if ( (max_pdx - frametable_base_pdx) > FRAMETABLE_NR )
+        panic("Frametable too small\n");
+
+    for ( sidx = (frametable_base_pdx / PDX_GROUP_COUNT); ; sidx = nidx )
+    {
+        unsigned int eidx;
+
+        eidx = find_next_zero_bit(pdx_group_valid, max_idx, sidx);
+        nidx = find_next_bit(pdx_group_valid, max_idx, eidx);
+
+        if ( nidx >= max_idx )
+            break;
+
+        init_frametable_chunk(sidx * PDX_GROUP_COUNT, eidx * PDX_GROUP_COUNT);
+    }
 
-    memset(&frame_table[0], 0, nr_pdxs * sizeof(struct page_info));
-    memset(&frame_table[nr_pdxs], -1,
-           frametable_size - (nr_pdxs * sizeof(struct page_info)));
+    init_frametable_chunk(sidx * PDX_GROUP_COUNT, max_pdx);
 }
 
 /*
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index aff88bd3a9c1..9c568831c128 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -186,16 +186,15 @@ static int is_mm_attr_match(pr_t *region, unsigned int attributes)
     return 0;
 }
 
-/* Map a frame table to cover physical addresses ps through pe */
-void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
+/*
+ * Allocate a contiguous frame table covering ram_start through max_pdx.
+ * Unlike the MMU version, MPU cannot skip holes because there is no virtual
+ * address translation (ma == va).
+ */
+void __init init_frametable(paddr_t ram_start)
 {
+    unsigned long nr_pdxs, frametable_size;
     mfn_t base_mfn;
-    paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
-    paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
-
-    unsigned long nr_pdxs = mfn_to_pdx(mfn_add(maddr_to_mfn(aligned_pe), -1)) -
-                            mfn_to_pdx(maddr_to_mfn(aligned_ps)) + 1;
-    unsigned long frametable_size = nr_pdxs * sizeof(struct page_info);
 
     /*
      * The size of paddr_t should be sufficient for the complete range of
@@ -204,11 +203,13 @@ void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
     BUILD_BUG_ON((sizeof(paddr_t) * BITS_PER_BYTE) < PADDR_BITS);
     BUILD_BUG_ON(sizeof(struct page_info) != PAGE_INFO_SIZE);
 
+    frametable_base_pdx = mfn_to_pdx(maddr_to_mfn(ram_start));
+    nr_pdxs = max_pdx - frametable_base_pdx;
+    frametable_size = nr_pdxs * sizeof(struct page_info);
+
     if ( frametable_size > FRAMETABLE_SIZE )
-        panic("The frametable cannot cover the physical region %#"PRIpaddr" - %#"PRIpaddr"\n",
-              ps, pe);
+        panic("Frametable too small\n");
 
-    frametable_base_pdx = paddr_to_pdx(aligned_ps);
     frametable_size = ROUNDUP(frametable_size, PAGE_SIZE);
 
     base_mfn = alloc_boot_pages(frametable_size >> PAGE_SHIFT, 1);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed May 06 08:43:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 08:43:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301310.1575599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXrJ-0002id-RQ; Wed, 06 May 2026 08:43:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301310.1575599; Wed, 06 May 2026 08:43:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXrJ-0002iW-Nk; Wed, 06 May 2026 08:43:57 +0000
Received: by outflank-mailman (input) for mailman id 1301310;
 Wed, 06 May 2026 08:43:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKXrI-0002iQ-9v
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 08:43:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKXrH-00FGHy-MN
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:43:55 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69faff47-5cb7-0a2a0a5109dd-0a2a4507ad96-16
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:43:55 +0200
Received: from [52.101.57.71]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69faff4a-229c-0a2a45070019-346539475adb-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:43:55 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB6915.namprd03.prod.outlook.com (2603:10b6:510:169::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May
 2026 08:43:52 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 08:43:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UivV2WaywKOs1JW7XFbrXEObPuSHZSR2pwni7EkYyEUKh8vhvaStpWGrsEQyxlLucjDMIYtb7WcXtL3PenV84FO6l2XZVexBod5rQifPkDE8M3rFTg0NWBu2fvUdjlAYMFUc3lx7P+KxKNySA5eUZI1gVyMj0JDtMmMRx1nP/hHAx3gEr8+ZMfplN8YTbOtbufT/LaQXkrgEZ/6obzaPh5+RrUAZ61aT2xE5R7U+EwMeN9PxjUfq8qSmvhq7rrbpbCp5g193OnrTPhhfu/BaUoxXDvHquF0ssTL9AHWxiKTQ/iLxmwHASOSvxhEUU5hqBZvNlwXL8z+nHeQ8qnrxMw==
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=IVycNhysnM8nwy+SogsZNGtqJ7e7RtPw7shbmTH/Jg0=;
 b=fLhQmQE1VQ04pGOWn+kzHvaxt32Hp4uP1PIWSMCejSs1kIDExJscobE3jjOxsG1obGhf8My9+mFkNncOTGok8q2tUhVrtsaXa9oPXjBUUepXvgqyAQhfgSipQwk3CqokiA07SLsAK44avDDmDI2UNCarFP1/l4MkBTcRAwruIz8asefS2GwPt0AXZ0YRAozy1X0Gyfv3iFfea7wkDgzcu9eU+rljFw2FmnfF8xyKmbce9KLYT7gOzXQqA9OrK+ob6N+XxVe16Y812Yg95YzuYVABTceLAquyPxlfGAzsEe9o6JGo6aOrPl2QYHHm5zkVKLVWlVlKVLWAJyRSb5gCaw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IVycNhysnM8nwy+SogsZNGtqJ7e7RtPw7shbmTH/Jg0=;
 b=QAfi02YqECSV20265cITDCV77ZU8CUAXwQTKvgt9at3+J8wP/f0gS8SsIegiMS/uK+VB6aVI0xP8YPeBpuxmFTbQOfHV33hFCd+r569RtjERzEwlmdLd0nmPvaC/E/Kd+H8uZJUZw0lwcmQDlceIaKzC3B5WHZePiqF5zYkjg+s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 6 May 2026 10:43:49 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
Message-ID: <afr_RYYMyJEGkNgP@macbook.local>
References: <20260506073719.40075-1-roger.pau@citrix.com>
 <20260506073719.40075-3-roger.pau@citrix.com>
 <0035d666-2ad3-44d8-a2a8-e612dfd10503@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <0035d666-2ad3-44d8-a2a8-e612dfd10503@suse.com>
X-ClientProxiedBy: BN0PR08CA0023.namprd08.prod.outlook.com
 (2603:10b6:408:142::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB6915:EE_
X-MS-Office365-Filtering-Correlation-Id: 1c86a882-f770-4e7c-6f9a-08deab4b998e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	t/oIQ13+60+Fb7r8S6gN7EcQLG9qGBLWQqQU4J2qOp3KoIPGIdC1RKbXIFt83x01xqTct7fdqpw/JPASshoG/NlGilCWy3a97txdb33VzIzQfQ7YUJ2RKp6mFXLhThW3YtkxhAgjMD8MbPHljkbII1XamL7HlEuDq+XW+cuZdr8n8AjT5mOBie8PFTI6GqeKjI5v+D914fir5zIhtCoxkRAa2XYrNyFRkYHubRmAnRpEcgAAfzMI6VudPKkQh2eVGxGr/p9h9qSUwhy9dGFIzKVqcKYZdktYKDwjZPWO1Lnmae22Zd+0UMw3pka4DE7ZwO7oD/MgjkuKdildhkG7VWu9pbYDP9IQ8Ky4QIwU4C1pu5wCI2UxdOBKReAC04M9dLtTh6bU3LTIhKjLqwlYltnI1lCRCOtzX5vA+Ob+tHioCSPD15xR55s1m3+uk73FX/YD+TYwa+RvBS+gIiguJTx5QImMZxCM6YpcrLn7OKOD01MYYKOHq7GJmovl4OeiUcDnor9EpwwXUUyjgZj9yf3WXPFXhJNQHqChKEJnffWoHIq9BN47xxmH3+RLNe2cTOhXJ5JCj//eldEcAoeUnUjiTK0vSs+owC9Dh4MOKyeajmVCvkaV0ddO8tEjkY24LhV43bkBDsdckjn8enumNcyPJG1K6AosXfOVAlpn7Q/gC7TtCjS/0W5NGLw2KyXl
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S0lLV3Z4dW4zWjA4cURkRmxzRXJ2ZzkxbVg3L0pRWnN1YWh5TFNwKzk5Zll2?=
 =?utf-8?B?RFFIL1RzMnhmSDRpODR1WWhVWTJ6UUhCc1NDVVl5RVdRZ0VXTmdRdG1uaE9J?=
 =?utf-8?B?dzRXOVFxZGRKUWVzLzFYWGEzc2NHMW0xTlV5bG5Yek5Iam0rWllhMnBzR3l0?=
 =?utf-8?B?MkRlMGt2eFY4aFp2bjcxTXpTdTRicFFVU0JSZ1lGaCtLUVVGNDFkcm56Mi8w?=
 =?utf-8?B?M1lwNTZYRkdRaURibENSUzVWeFdVUExic3hkd1pmOTUrOHkxMjNmcGNrK1p4?=
 =?utf-8?B?RnhnV3N4cjdZQ3VYaXY5MlVyaUNwN2liVDYzUWt5OFIxWUtxNitEWVZpMjhH?=
 =?utf-8?B?S0FaVCtKdCtXRVNsQmFSUUhNZ3lqMjNlQy9JS0kxYUwzUUZqNmNZbVYzRDVZ?=
 =?utf-8?B?ZXpsY1R4Q0Q3eDBRQWFWQ3p6bkdJd1JQRVVXRnUxU3J2Y3FNTGlKNmR0UUFp?=
 =?utf-8?B?K28rU0NVNnZPTHU2TUxCL2M2c0I5Q2xFWEdnSmdSb0JDQVpNT2laWFhNUnpz?=
 =?utf-8?B?VDJGVE9wTXZ3YWxTWFp3cDMxemtlV00xV25nNy93TzVtU0cwL1FjanFIQUIw?=
 =?utf-8?B?eDUvZm5VMHBmbjZEQW1CVFcxSFZYcHVpOVZkS1ZFSXNyWUVKTCs3VVRBSCtM?=
 =?utf-8?B?N0ltTnJleVhtK1NXTXlaK0ttekdvMHdMcVMvOVJUZFdEL0JoUnBObi9ERGQ4?=
 =?utf-8?B?OGJHdTJ1Mm5uWXFLMk51ZTFzQmkzWVpZNU1QUDE2Mjd5WTBSY3UxS2NLVWVP?=
 =?utf-8?B?bElVQ092VGxuUDgwZmpUcFlWSExHcW1VWDZOZTN2WW9sU2pyZnh6bUdrMjFp?=
 =?utf-8?B?NzlJK3c2Z0JEdXo4ckxtVjRHWjJ5Tjl6dmYyTlRnWEE4dFVQS20yZFRBSWN3?=
 =?utf-8?B?cGNicXBFNnRrMlF4UFAyLzdHdk1DZnd1M2tyRGJ6cU9QUmpxbXA1bFVzTHpw?=
 =?utf-8?B?TGV0K05DbEw2YXhMMVlwSklUR2xFbkxCamVvRzIzcTNYbFJMc0N4MU54cVZj?=
 =?utf-8?B?c1RLelpoNk1QMmNFQmZ1dWszSDQ1bDBXdGFFWnJYdmtTQmVCbys5U1VLdzBo?=
 =?utf-8?B?bHRuU3lXMkp4RVZxdkxGL256azJKb1Z4bUNZa2I2QVBTejNXaktndi9nS3BB?=
 =?utf-8?B?ZThaTU9IazZ2SGI2SGp6TEtsSGl4SjRmQk9heGh2NHlTZUdrdmNhaERpWFhQ?=
 =?utf-8?B?UHFteFpqQUlNcTRwa3paSEFuZnZVQW85eEFmc2hVMEpYU28xUUVUQUpsNCtE?=
 =?utf-8?B?cU9NeTV5WHBsMzhaZGc2Z0RqWTNxdFIxazk4ZWZKOTlCVHdLNFltd2Yrdjd2?=
 =?utf-8?B?UzFEUVkrNy9RektHUCtOTm1STUdxWlg1bnhlaGpZYnFxVVJ1SkM3NUlzYVR5?=
 =?utf-8?B?Rjg0bEFjRWVVOERsN3pmRUpJTHFGNnQ1TjZMcGYzRjU4SWVCNzhoR2pBdjNJ?=
 =?utf-8?B?N3h5SGN4QzdWd0pNanplTzhMaXVxU2FjNzYwTjVLNDExLzlDbVVWa1gyYkJE?=
 =?utf-8?B?Z1FVODlUN2FuMmZJai9Vb1ZTSVhFa0txSTBCS3lxQ2dSdElpbUtXQ3hxVVhZ?=
 =?utf-8?B?YjBhNVJkRDFaanhRNnlBU2ZrK3pyVHJEWktwMlFwT01kSHFOTkgzSlYvTlRu?=
 =?utf-8?B?OWlXRzdKNEorWVVhK2Y2UlQ0U0swQ3AxUDljQnBBL2h2ejFJYkhGZ3ZpcFRN?=
 =?utf-8?B?OEFzeWNmOWN4WWQwcjNQRmlnZmhUVzcrREdPMjUrb05kMTlMUXliL0NVanhM?=
 =?utf-8?B?a3lRYVFDQUlRVzlVbUxKSlREbDAyYTNwNllYSWtQV1ZXWWlybndEZ0dKdUhF?=
 =?utf-8?B?US9SeHBhNlFIOXJMQ2NFcnpTVFZneC82VXBETGV6Nk0zM1NZN2Y5QXZnVnhu?=
 =?utf-8?B?WFkwZnVmMit3c241OUgwNkZOUWpLeGI4TjRRblVrdXBaSUZTaFpDWkdLNUNo?=
 =?utf-8?B?UldCK3p0TFpmS2l4QzV1SURsdmltZnBJbUcrVkl0WFprYUhycDBtY1pRSWx0?=
 =?utf-8?B?MGJJWDlHV3pXY1Z5R2FLYm1GWFpVS1BpNlp0VDAyaHlyeld0MlZZNDBGS0tx?=
 =?utf-8?B?SW9FSU5MRmplbUVXeWVoRFBKS1JKaS9XcHZGVkRXTUFOQmc2TEdaL0R3dEcw?=
 =?utf-8?B?OXlCbXdwVHpHcXRVVVRSZXJkejR4UU15ZWY0bHQyaTFOV0J2THgrWnd6a1RI?=
 =?utf-8?B?RjJGU0xOUmYySmVRVGdyNW9wb01MeUlDaS91aUwyZmx2dERXeXMycEJ6aDFZ?=
 =?utf-8?B?ejVDV3NPamtuS2ZiNzg4STlVcDZvdGtkSkNaWXV4VW1CQmszaE5VVko3T3JO?=
 =?utf-8?B?NjFKYzRmYVMxc2JKR3ByYW1XMzVhMThEMkdqR0xNN1A2RWZhNFRRQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1c86a882-f770-4e7c-6f9a-08deab4b998e
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 08:43:52.3261
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 06zQCJXH915/SVotgGGE5HCSc8uUw/FV5IA3EwvbV4qAKD9MnjapWSKiTIJDIsyYbj0+MJZYQQyzblBwfQEnkQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6915
X-purgate-ID: tlsNG-ef75cf/1778057035-AED77C48-5C13F479/0/0
X-purgate-type: clean
X-purgate-size: 1778

On Wed, May 06, 2026 at 10:28:52AM +0200, Jan Beulich wrote:
> On 06.05.2026 09:37, Roger Pau Monne wrote:
> > @@ -1381,6 +1372,11 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
> >      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
> >          return -ERANGE;
> >  
> > +    /* Read current control register and forcefully disable the IOMMU. */
> > +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
> > +    disable_iommu(iommu, true);
> 
> Don't you also need to pre-fill iommu->features?

Indeed, that's done just ahead of this chunk, in the
get_iommu_features() call.

> And with that field's use in
> disable_iommu(), won't we be at risk of leaving stuff enabled which we are
> entirely unaware of?

Possibly, yes, that's always a risk.

> Even if we fully cleared the control register (which
> would eliminate the need to fetch features), down the road a 2nd control
> register could appear.

We do clear the control register, it's indirectly done by us setting
iommu->ctrl.raw = 0 after the disable_iommu() call.

I did wonder about just doing a write of 0 to the control register,
but I think it's best if we try to gracefully disable the features (as
done in disable_iommu()), and then reset the cached control state to
0.  Future writes to the control register will clear any bits not
directly set by Xen.

> Has it become clear which register(s) or bit(s) it
> really is that are causing the observed issue? IOW is there truly something
> we may not clear?

It's not so much as not clearing something, but rather the clearing
itself putting the IOMMU in a broken state which we then can't recover
from using the initialization procedure in Xen.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 06 08:45:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 08:45:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301318.1575606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXtC-0003FL-4G; Wed, 06 May 2026 08:45:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301318.1575606; Wed, 06 May 2026 08:45:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXtC-0003FE-1Y; Wed, 06 May 2026 08:45:54 +0000
Received: by outflank-mailman (input) for mailman id 1301318;
 Wed, 06 May 2026 08:45:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wKXtA-0003F6-42
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 08:45:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKXt9-001pEZ-5G
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:45:51 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69faffbc-2eae-0a2a0a5409dd-0a2a4501b7cc-14
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:45:51 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69faffbe-c1f2-0a2a45010019-d155802dc4db-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:45:50 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-48a563e4ef7so59076005e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 01:45:50 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e538fb19csm29105215e9.11.2026.05.06.01.45.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 01:45:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778057150; x=1778661950; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=zqf/TgdeYWStRELFhd5bFyr71dKgZm98KPqHwV+WZwA=;
        b=P8hK5LA6VpVXpRNIhZZNxyeJ2nDvjCxH5qaVCHkwCGULqMhKb6HP24N+mbFVZUMuL/
         OXQh3ESRxnRRI+ByLt4jU3mP0y8IfXV+EWpLSfH1ej0clhpfpWvGs7Znc7SDi9Nxb0Ga
         SSSXyhQohMO/tl9CXz67kWpjjcr/KLA0s3XYpP39qxoKFfPZjoMq27UtItnG5JlDgE6s
         z4GrkSjnga5DV9r3L2t4XIugQDv9nnLgARB8Q2/vxp+YDh7t7pFvszesNWnQg/eVcdz+
         fWTI+6NGq4uKYrjfR5XpvcfODAPnKbTqBNaeyAWiD+InW60pctfLvIUNhKoSKTV16Ke2
         77NA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778057150; x=1778661950;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=zqf/TgdeYWStRELFhd5bFyr71dKgZm98KPqHwV+WZwA=;
        b=QBW/h8qGKfcLUtQY3WjtdJsi2QNcgh+SHMi2xBfRJsZzJ4GKWZdsX6XFJwgsTEWDhe
         ZIeFlfwQ+QkaqDx+skuo6cmnliQqSR+4D6mNToJ+BKDVoF+cDoMorjmIB9keG8VK2Ezt
         IGLF7/k5hG3bHpkURiOFng3/k0wInshzCR8xfBDbMhyKkIQvzn96R5597BmEbmruZtYh
         VUnr3bYsEjkbErSlsaS/KMhxV8FJ8KhU/f02TZhaM5f/vxGI5JGXoAGchpsyttrY7GtK
         QPIHpZSk1q24Z5QiWpU4U2xqtIt9FGTZDiVUYrGcADSIM0CHoqa//lrHIkQx8mKY50Tk
         Dgfw==
X-Gm-Message-State: AOJu0YzkvTesKznTr88Ex9Oo2QoGfoYwv/79a3bhAwm+kEU+nDJ3UOhF
	al2XbYj6wDM1PxcCoz09u07qS7pHVqrEWUixq/b6zO/zpKRAjjz0ID8TJu81zfprVEQ=
X-Gm-Gg: AeBDieu7vhIoeFDhpeOZ/O9w8Ld5QIKEn0W94itR+cgzHZf1HWBE+HaC4kat61EhcdI
	+PhP9QVqjNGyq/+v3P9vRs5B4uXF8hOjV4Ft/7BJ/UuGYl4iGGk64WxEzOYCi7gZYwQ+dlMXut+
	Y4XnJao0mTwCE2Q65HI/aQ/z692Ft3+rUeqVNc6rj2YWbMTb5azziOslZJiQwXxT/6s9zY2zRUh
	knrrs7alr5s77K0RF6Ghhyhgzad1o7ObZvyJmkasSIdEW3RCa/Sgg6z5O4igaWxkpxcRjq9EQjJ
	FvutGB0wAj95chh3RBWCJRCA/LdvmYV/VjHBsv3cT/ipEDQJSPe2sLpxjQKbeTp9m7KSSP5jEod
	qjjA6b9cSFrdoLsf0qoznnRAfcgC34v7lh473W4PiXum/g4dcbe1alC8CbW5CA6weIrluzYlMW4
	d1wtA/DpKguXlEd6XWP7ZDADXbcaXRDLXwX4tWZy8UMh4Hj3l9gIKyXHiZ711uv7rF7EudH/Lop
	9ODZMSTSHnt36F9EoMUTaOksRJvqmOBFPjMtv735rYrsIW2Wo0p+/odOvTmUN3r96xjiAgPsoE=
X-Received: by 2002:a05:600c:a111:b0:480:1c69:9d36 with SMTP id 5b1f17b1804b1-48e51f2f83dmr33455005e9.17.1778057150261;
        Wed, 06 May 2026 01:45:50 -0700 (PDT)
Message-ID: <4ca0f24d-2526-4e49-a4e0-f8497aa8f4b0@suse.com>
Date: Wed, 6 May 2026 10:45:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Problem with PCI-passthrough to PV guest
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <04c8ed4e-4e99-46ae-b83d-af9031f5b622@suse.com>
 <afo7NyXOEsDsVB6i@macbook.local>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <afo7NyXOEsDsVB6i@macbook.local>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------IvuMaeBmXxWd0E7Ytw33YQLf"
X-purgate-ID: tlsNG-d62444/1778057150-B5744FF4-686D2880/0/0
X-purgate-type: clean
X-purgate-size: 6653

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------IvuMaeBmXxWd0E7Ytw33YQLf
Content-Type: multipart/mixed; boundary="------------AZJhi2Thl015qQ02a1phxyCK";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <4ca0f24d-2526-4e49-a4e0-f8497aa8f4b0@suse.com>
Subject: Re: Problem with PCI-passthrough to PV guest
References: <04c8ed4e-4e99-46ae-b83d-af9031f5b622@suse.com>
 <afo7NyXOEsDsVB6i@macbook.local>
In-Reply-To: <afo7NyXOEsDsVB6i@macbook.local>

--------------AZJhi2Thl015qQ02a1phxyCK
Content-Type: multipart/mixed; boundary="------------QgjW4n67pUsDOjIoliUeZfQO"

--------------QgjW4n67pUsDOjIoliUeZfQO
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMDUuMDUuMjYgMjA6NDcsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+IE9uIFR1ZSwg
TWF5IDA1LCAyMDI2IGF0IDA1OjUzOjMxUE0gKzAyMDAsIErDvHJnZW4gR3Jvw58gd3JvdGU6
DQo+PiBTVVNFIFFBIGlzIHNlZWluZyBhIHByb2JsZW0gd2l0aCBQQ0ktcGFzc3Rocm91Z2gg
b2YgYSBTUi1JT1YgdG8gYSBQViBndWVzdA0KPj4gcnVubmluZyBhIDYuNCBiYXNlZCBrZXJu
ZWwsIGJ1dCBJIGNhbiByZXByb2R1Y2UgdGhlIHByb2JsZW0gd2l0aCB1cHN0cmVhbQ0KPj4g
a2VybmVsLCB0b28uDQoNClVoLCBzZWVtcyBteSB0ZXN0ZWQga2VybmVsIHdhcyBvbmx5ICJu
ZWFybHkgdXBzdHJlYW0iIChpdCB3YXMgYW4gZWFybHkNCjcuMCBrZXJuZWwpLiBJdCB3YXMg
bWlzc2luZyBjb21taXQgMDk0OWM2NDZkNjQ2LCB3aGljaCBtYWtlcyB0aGUgZGlmZmVyZW5j
ZS4NCg0KU28gZm9yIG5vdyB0aGlzIGlzc3VlIHdpbGwgb25seSBzaG93IHVwIGZvciBjYXNl
cyB3aGVyZSBhIFBWLWd1ZXN0IGlzDQpzZXR1cCBmb3IgUENJIHBhc3N0aHJvdWdoIGFuZCBp
dCBnZXRzIG1lbW9yeSBob3RwbHVnZ2VkIGJlZm9yZSB0aGUgUENJDQpkZXZpY2UgaXMgYWRk
ZWQgdG8gaXQuDQoNCg0KSnVlcmdlbg0K
--------------QgjW4n67pUsDOjIoliUeZfQO
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------QgjW4n67pUsDOjIoliUeZfQO--

--------------AZJhi2Thl015qQ02a1phxyCK--

--------------IvuMaeBmXxWd0E7Ytw33YQLf
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmn6/70FAwAAAAAACgkQsN6d1ii/Ey8T
YQf/U9zGdFF8fQdgHy6cxdqIrNR0nqjO31iyHnNMQEzQZtSJ7k5za7eblPBT8U6jJRDMedUrea1S
oPgVPBH6NxE3sDVZcstTYr6WKuDSokwpo6cX39j/+LsD1O5NOQ+vw2XuRHnjWjrTeCLvpE1lK4AL
s/GTzFdhjw6Ub0s3TEmjtvKNyuIuP2N7kOflEku9LYyu19mpi3tSRbsHL+oIci4b1TB3Fqh05sLW
BrdiNVMu418/bZ1eVRhU6Bf1Z8GL72M329jgg2AXiALHMhKjBT8Bv2cc745K4g2bViYh4YkaedR8
QXEESkQnUCCuHFFWWSiNttGg9xFRqpCuTsgMvsfBdw==
=9s3a
-----END PGP SIGNATURE-----

--------------IvuMaeBmXxWd0E7Ytw33YQLf--


From xen-devel-bounces@lists.xenproject.org Wed May 06 08:52:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 08:52:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301327.1575615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXzg-0005Cb-Os; Wed, 06 May 2026 08:52:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301327.1575615; Wed, 06 May 2026 08:52:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKXzg-0005CU-Ly; Wed, 06 May 2026 08:52:36 +0000
Received: by outflank-mailman (input) for mailman id 1301327;
 Wed, 06 May 2026 08:52:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1wKXzf-0005CO-6V
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 08:52:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKXze-00FIgM-D1
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:52:34 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69fb0149-bab6-0a2a0a5309dd-0a2a4506b8aa-28
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:52:34 +0200
Received: from [52.101.65.105]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69fb0151-7371-0a2a45060019-34654169345e-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:52:34 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by GV2PR03MB9524.eurprd03.prod.outlook.com
 (2603:10a6:150:da::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Wed, 6 May
 2026 08:52:29 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 08:52:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BafhuG5vEHpO3EimdSMGzo3bPUI8e0wBYHzZ/Mo2IjW3CiEZtFtcBY+dVmOZi/k4Tb6f65fA0wPApMbi0K76/NAO4YgS6r122Ogimvh9ibo94ZL9r857tW/iIoUltH8sUG4C5hmObWrlNldoI41o9pBBoogqOlUDkxIczxZbtXjap24rc/n7zgLmQRjQFRo8ZG6gAR6d7WsUGAolGOolFOS3iGYFqxu4S/Vx+wP3Tv+B4LlhWo+eq0ILv6xFVOwkWVclGDbrzb6vr76fXD9q/WE4XjdWv8ezGja7C8Q9UoiS0CcVP/5P289DxDu8bmDF6SIXKuyCEu0zu9qLeczhvQ==
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=NOFc6pYpQASlrrVU8saUhLQD1bqJYfiCqzt8u7cCUQg=;
 b=TgMj3uZ4Eboi2y73ssfgnpKNF3KQKuSXi9o4SAkaEHgZQJ07c7JPZluyMKPcdc5rb7LXE/DPOUocQhHAXjh1zEm3XZ4BKnkTT2RmqcaLRljA4kX/BptGLJy3OwAr0aARU6vbCyseNb4wxHH1SAh6VejAWD+q/Zwhh/glyKp+6B/9m+xjaRhNKZnyrQlvPKjN7UMTRCUUV7FBkeSgO+aoxkXTENNbyRP3CYzNu4btrhGYxUq9V1W5Ip3cW+iL9qFRIypvzU7A3qQCVkei9L4/x+1FNoeiH900iAlNyCX803PG3axUD/FzFdRSp1V5u/GUwXKnvZE6jXUIP/7TOoONuw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NOFc6pYpQASlrrVU8saUhLQD1bqJYfiCqzt8u7cCUQg=;
 b=amzPrlVBxlr04cnMiuQhpnqYuAJKneO6mtDUJNqiltELD9gSSzi0W3W2xBonxz+z8JDXmzxh1aLlM31DBanLhnHf+d22e2YO7lboi+YT5KY1af+3H7FVLX4Dxq1QN4m55gZbMRQGkRb0BVI+Eb4yIcq4RltPPYuxoN8iB24WoNIxVh9rcmogiqk7ITJh3eMcPkD49Rj9dFGA/VrKWfJo9Su4DMCESDBGefCAmrh9RZqiDiJVx8u/ErPZDTMSbwv8W9TW0jcmsmggOfJML4ewhsGFJcUPMPnB1e/AUEZbV+HtXYyIbEKGmrOekeq0Q+NnIFT18XHheDcI5mJx/m6eOA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Anthony PERARD <anthony.perard@vates.tech>
CC: Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v7 5/6] tools: Allow building xen-hptool without
 CONFIG_MIGRATE
Thread-Topic: [PATCH v7 5/6] tools: Allow building xen-hptool without
 CONFIG_MIGRATE
Thread-Index:
 AQHcwDy3LJnr4T20vUWAas874pXmi7XHAiYAgBlL+wCAAQu/AIAAGf4AgBTWBoCACqD3AA==
Date: Wed, 6 May 2026 08:52:29 +0000
Message-ID: <d1c7d83c-debe-46bf-9bec-614c0a343a8f@epam.com>
References: <cover.1774871881.git.mykyta_poturai@epam.com>
 <73db845e6617130966a565cdca6274db4cb46428.1774871881.git.mykyta_poturai@epam.com>
 <58cfab3b-7cf2-4e38-9968-1248e665f985@suse.com>
 <f4a1cfa1-f3ea-4fa0-bffd-1f6346e07d39@epam.com>
 <28900826-5a96-4bf0-8d5b-11fd1be8386a@suse.com>
 <96829f0b-faac-4100-8c30-c93ac9459600@epam.com>
 <1777473230.8631fc262581453bbf619ec5b2062170.19dd9a915bc000f373@vates.tech>
In-Reply-To:
 <1777473230.8631fc262581453bbf619ec5b2062170.19dd9a915bc000f373@vates.tech>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|GV2PR03MB9524:EE_
x-ms-office365-filtering-correlation-id: aecd0491-251d-4692-c8fd-08deab4cce05
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|22082099003|56012099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 HHGV8DMc05UjFdBn6lMrTRGLsNvwk4Fz6LFWAUNklzm7M3dsF2JQX3nyO445oq8NzmMo/xu6hY6jjeT0q7AJq1zi+P5v+TOaPLTejgVXrAc4na8wvfXsJUjYDF+Ik1ogYuqS3f+WRS8ZULlo0JPyspfglgaiPLqZwxzuX+H6ghYc85fFzdYXi0KJRIQwFS6M/CzVLnY0G3q4H4IWwbGWOnW4002pi5ZbjdBHQLXizBoM/oUrXO0TOYvfpC/wXx6os7mTzupbvqA+PBtW1HFZO241nZNuHnQIE5y77Jgm9HGaS8l0X7TObavI4letRxTuXyTVyVqoyOi5YFJWwditB0qDGjpe67BQsUg1YcWoHGTKcA6B7xm9tzFS80fFSJtOkMJ/HNEjL4/bZm6ZF8cFachJrUQ0DZH1XuzJDp4Tuil1a0yl0vDQHET5PyB8kSaHcRNcJc6jm40tsGO7RhSGeNDsvWE1qWLCWoULFi7smw4/CImi+PsvXSoTGZzHrbh7jBAkVki9vDgMWpTCYQLYyOCQJpTb9osF/DvVO0PjWCmaImWd14f/Ycui6++S9NdYq0dwAAuyTTSYfQxnJpd0HHt4eGlEq3TAozendyihiIp307Ee6VD0xUprXbsZp+knCXcnTwf/CsFl2b58Uzn+CY3YM2W+DJ5CNCoawcBcGUwH+OyuH/MLab7GNPp2GK3OzDQlpvDO+s4ZrbURj9JcONWE39g6ymrF5hjoEyZ/eztgJNC07jcvHe5+6Gg3fVZo
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(56012099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cithU04wZWxKbnV1aERmL2d1a3dXRXFNMno0VXlpWlFRNkNzQ09DYzEzaSt1?=
 =?utf-8?B?bWxPRjRrZmJwSnJpVWdkWlNIYjFmb1ZadGlaU2hEWUdJc0lSSTNIWXNuaG0x?=
 =?utf-8?B?L2t2L1ljL2pkdWFMbmRYNXBiSmg5bEM4aldxVCtjSXhXQ0xzcERXOUFZTm5w?=
 =?utf-8?B?eW1neWkvQnhhZERMbUNGMGU1N2E2NXJNUzdiZFgvQ0JoVHVwRXBpNTc4djBE?=
 =?utf-8?B?bHJZM010eUdoSC9mdkUvZllGTkVTWHNHdUgycDgzTGlxMlpYb2FuZkNaWmtw?=
 =?utf-8?B?dXF0U3Rab05nYVNjdE1MWUloRFRDM1JzZHZXTVNUMEtIQ2t1SVRtdHNGaUNB?=
 =?utf-8?B?TjRMdnkrblhGREdqV0VmSUpybjhFNlRRSUZ4NnZVRExhQ1VCZHFZNEdWUGZV?=
 =?utf-8?B?YUtqRGFVb0hzdTJsdy8vVGpwTCt6NlNocXA3WGpLdXdVNmdiUG55cWJQQVVI?=
 =?utf-8?B?ZWJRdmFKTEloaitTeWdoRjlnYU9sN3BMNHRYbkN5SkxjeUNpQ1FPYlo4dzFt?=
 =?utf-8?B?TkRSNHNVb0J1WjFMdEVMOGZSeWVDWVZTdlNUVkdYRkNwaXg0RkltaVpxdFV0?=
 =?utf-8?B?TWwvQjJ3SWh2OW1EUmNjczdBNG9HYlBXN3IrYmJRZjNIMXFPZktncG1OaVFk?=
 =?utf-8?B?c2hzOVo4cEhqckRNTFBnZi83NTBPUjFyeGtSYVZjbE1GQXdQVjNuTUhTWDA5?=
 =?utf-8?B?NDZMOFB3aHZvdE82U3MyaWU5K0Q5ajg2YUtpZjVGTWFLMWJDL3JBY3E4Z3ZD?=
 =?utf-8?B?V0hmWVhMaUFvYytkL1NOZ09ucjFzaUY0ekM0d0U3MlFzc1N3TWhFUkN6Nk1C?=
 =?utf-8?B?K1lRM2VhQVY2blpJcE5MVEdpNlFLK1NOMHpKdXY3QXZBTm1xNGpjeForZU5L?=
 =?utf-8?B?L0RKTExRNWxhMHVuSDFibHFUQ3JObFVudUx4NWNyUXU1NjRDd0t6Y1BHYjkx?=
 =?utf-8?B?M1p5OTl5NWxDTUdaQ1hpM3YzZ0JubGZMbDFxNmUwcFJUN1praDlsUDdUWXh4?=
 =?utf-8?B?UW53cnp1YnZ3MjNsSnFBK1I0ck90Q0QvS1lKc3BNWTRzZnlaZUVvaEdiZUtk?=
 =?utf-8?B?bElVVEk4T092b2RHRVRjaVFKSS9TTjMva1pMQkFLZU5pSUJlbCttY1UyTFVn?=
 =?utf-8?B?ekJrM0R0aElsL1VDeDROcGpGUFhtczJ4dmh1dVNmNDNWQndXRXgyVlNqQ1cr?=
 =?utf-8?B?ajZVMHdRZjRBRE1sLzhtMkZ2S0g4NnVqRHBKVVlxSzJMVjdidURDYU5IT2ls?=
 =?utf-8?B?S0JMS3EwTXYvdkVtNHFUNlR0bWRtMzF1S1lRMmM2OU5FRXN4WThjc1IvOTJK?=
 =?utf-8?B?S3BVQ3VNTzFoNFdtNitqYVhXNE16UWZIV043Vzl3YmdhalN5SUczTWV0Qmxm?=
 =?utf-8?B?VFM4VkpaZHlNUDR0MnE3RGFCYWkyaERIazZ0U3I3RUlJQzJEdUg1TTFZYzg2?=
 =?utf-8?B?TjJZWFVNZ1UzSjhiOFNIcjBiWitoL3ZzbjlMazRKZThyU3B5V0xITXh3MDdL?=
 =?utf-8?B?U0FiN01PdEZQdzFMSzY4aVo3MTQ2ZlBPVmovaWs3eDVIdFhtTlpwaURUMXEw?=
 =?utf-8?B?K2s2ZzZSR0VVTXJSeDBEd3NjQ2EzM2YyWUl3aCtTTURSQVVOZExsTjlVYlE4?=
 =?utf-8?B?S00vN2tGUmJNaTU0dEw1K3FTaU5GY09GOWZ4TUZOckExL1FpTzJPZnlObDFz?=
 =?utf-8?B?VWNYODJtNW5TTHl6d1BOeVBoRmhGRDdVTUU0WDdlUEdqSXZxVU5zQVN6cVZ1?=
 =?utf-8?B?c3ZsOVJzdlI3M254NlROd1JEUE5yMVRmcmlDVWxWK2wxZU9EckYzUVZHc3kx?=
 =?utf-8?B?bjVOMzhMMEZPRmNJejJTYURXN21TWDZhWWJsUmNXNGNOR2Nja3k5ZDR1eW13?=
 =?utf-8?B?U1J5YmYzUnJycVUvVnd4U3hZaHFZVExNOWRnbUovWFFjQnkrbUFaQlpoUkx1?=
 =?utf-8?B?YWc1bmJmWDZjcUg0MmJEOGRJcTI0U0h6emx1a25iT1FsRmE4WEVlSldUaVdu?=
 =?utf-8?B?VFlPdmxFTlR0OU10RHJTUi93aFlTK1BRaVJ3SXJBa3NFWjRGRzdXcWh3aENh?=
 =?utf-8?B?WWtrUGU3bVBVT0JUUGJQT2NsTDk3R1lvMFAvVE9lbEpiVGdHelcvL1dTTVZa?=
 =?utf-8?B?akRsS3FEUG93cW12ZFFIeXNiVWZYaG0wUlhudVZWWlQ0eVBoMVNkNGlyNUw3?=
 =?utf-8?B?MmZUZDErdmxOUE5IaUFvcEkzSDNIeDJlNzI5dzVrdWV0bURzSFBnR2xpNE1J?=
 =?utf-8?B?c0R3NGp4bnh6T1JDcmUxZWprNUhTa0YrQ0J5dThUSUhWaUR1MFdUMUVWVXhn?=
 =?utf-8?B?ZitvUlYxS3ZIdHhKNWp5UFVXSUdsdEF4TFFqdW9PbXh4bXBKSmM3S3dDM0Yv?=
 =?utf-8?Q?K4cMPuVfz8qc6AfQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <AC34F5E07653664194A0EE4F2EB11702@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: aecd0491-251d-4692-c8fd-08deab4cce05
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 May 2026 08:52:29.5242
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: QOch7prn/fLFdeGQMo2Z4xGi1lJEzG2Bkn4yxYO4NXiSQXWV6XVCM8Ky+h7tar1fkyAVCGKgAYZglRORFeoEgg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB9524
X-purgate-ID: tlsNG-16d1c6/1778057554-52F73D75-49AB3489/0/0
X-purgate-type: clean
X-purgate-size: 3474

T24gNC8yOS8yNiAxNzozMywgQW50aG9ueSBQRVJBUkQgd3JvdGU6DQo+IE9uIFRodSwgQXByIDE2
LCAyMDI2IGF0IDA4OjIyOjMyQU0gKzAwMDAsIE15a3l0YSBQb3R1cmFpIHdyb3RlOg0KPj4gT24g
NC8xNi8yNiAwOTo0OSwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMTUuMDQuMjAyNiAxNjo1
MSwgTXlreXRhIFBvdHVyYWkgd3JvdGU6DQo+Pj4+IE9uIDMvMzAvMjYgMTU6MzIsIEphbiBCZXVs
aWNoIHdyb3RlOg0KPj4+Pj4gVGhpcyBsb29rcyB3cm9uZyB0byBtZS4gVGhlcmUgYXJlIHg4Ni1z
cGVjaWZpY3MgaW4gdGhhdCBmaWxlLCB3aGljaCBzaG91bGRuJ3QNCj4+Pj4+IGJlIGJ1aWx0IG9u
IEFybS4gQW5kIHRoZSBuYW1lIG9mIHRoZSBmaWxlIGFsc28gZG9lc24ndCBpbmRpY2F0ZSBhbnkg
cmVsYXRpb24NCj4+Pj4+IHRvIENQVSBtYW5hZ2VtZW50Lg0KPj4+Pg0KPj4+PiB4ZW4taHB0b29s
IHJlcXVpcmVzIHhnX29mZmxpbmVfcGFnZSBhcyBpdCBoYXMgYm90aCBDUFUgYW5kIG1lbW9yeQ0K
Pj4+PiBob3RwbHVnIGNvbW1hbmRzLiBXaXRob3V0IGJ1aWxkaW5nIHhnX29mZmxpbmVfcGFnZSBp
dCBmYWlscyB3aXRoDQo+Pj4+DQo+Pj4+IHhlbi1ocHRvb2w6IHN5bWJvbCBsb29rdXAgZXJyb3I6
IHhlbi1ocHRvb2w6IHVuZGVmaW5lZCBzeW1ib2w6DQo+Pj4+IHhjX21hcmtfcGFnZV9vZmZsaW5l
LCB2ZXJzaW9uIGxpYnhlbmd1ZXN0XzQuMjIuMA0KPj4+Pg0KPj4+PiB3aGVuIHRyeWluZyB0byBk
byBtZW1vcnkgb3BzLg0KPj4+Pg0KPj4+PiBJcyBpdCBhbiBhY2NlcHRhYmxlIGJlaGF2aW9yPw0K
Pj4+DQo+Pj4gSSBkb24ndCB0aGluayBzbywgbm8uIFRoZSB0b29sIHdvdWxkbid0LCBhaXVpLCBs
b2FkIGF0IGFsbCB0aGVuIGlmIGJ1aWx0IHdpdGgNCj4+PiAiYmluZG5vdyIgZW5hYmxlZC4NCj4+
Pg0KPj4+PiBJZiBzbyBJIGd1ZXNzIHdlIGNhbiBidWlsZCB4Z19vZmZsaW5lIHBhZ2Ugb25seSBv
biB4ODYuDQo+Pj4NCj4+PiBXZSBzdGlsbCBuZWVkIHRvLCBpbW8uIEJ1dCB0aGUgdG9vbCBzdGls
bCBuZWVkcyB0byBiZSB1c2FibGUgbm8gbWF0dGVyIGhvdw0KPj4+IHNwZWNpZmljYWxseSBpdCBp
cyBidWlsdC4gSXQgc2hvdWxkIGF2b2lkIHJlZmVyZW5jaW5nIHhnX29mZmxpbmVfcGFnZS5jDQo+
Pj4gZnVuY3Rpb25zIHdoZW4gYnVpbHQgZm9yIG5vbi14ODYuDQo+Pg0KPj4gQXMgSSB1bmRlcnN0
YW5kLCB0aGUgdXNhZ2Ugb2YgYXJjaC1zcGVjaWZpYyBjb21waWxlIHRpbWUgY2hlY2tzIGlzDQo+
PiBoZWF2aWx5IGRpc2NvdXJhZ2VkIGluIHRvb2xzLiBTbyBJIGRvbuKAmXQgdGhpbmsgaXQgd291
bGQgYmUgYXBwcm92ZWQgYnkNCj4+IHRvb2xzIG1haW50YWluZXJzLiBEbyB3ZSByZWFsbHkgbmVl
ZCB0byBvbWl0IHRoaXMgZmlsZSBpZiBtZW1vcnkgb3BzIGFyZQ0KPj4gYWxyZWFkeSBnZXR0aW5n
IGJsb2NrZWQgYnkgWGVuIG9uIEFybSBhbnl3YXk/DQo+IA0KPiBTbyB5b3UgYXJlIHRyeWluZyB0
byBtb2RpZnkgYSBsaWJyYXJ5IGFuZCBpbnRyb2R1Y2VkIHVudGVzdGVkDQo+IGZ1bmN0aW9uYWxp
dHkganVzdCB0byBiZSBhYmxlIHRvIGJ1aWxkIGEgZGlmZmVyZW50IHRvb2w/IEkgZG9uJ3QgdGhp
bmsNCj4gdGhhdCBhIGdvb2QgaWRlYSBlc3BlY2lhbGx5IGluIHRoaXMgY2FzZSB3aGVyZSBpdCdz
IG1vcmUgdGhhbiBqdXN0IGdsdWUNCj4gY29kZSBiZXR3ZWVuIGEgYmluYXJ5IGFuZCB4ZW4uDQo+
IA0KPiBXZSBjb3VsZCBjaGFuZ2UgdGhlIGxpYnJhcnkgdG8gcHJvdmlkZSB0aGUgbWlzc2luZyBz
eW1ib2xzLCBidXQgaXQgaXMNCj4gcHJvYmFibHkgYmVzdCB0byBrZWVwIGl0IHRoYXQgd2F5IGZv
ciBub3cuDQo+IA0KPiBTbywgaG93IGFib3V0IGNoYW5naW5nIGB4ZW4taHB0b29sYCB0byBoYXZl
IHJlZHVjZWQgZnVuY3Rpb25hbGl0eSBvbg0KPiBvdGhlciBwbGF0Zm9ybSwgYW5kIGtlZXAgdGhl
ICdtZW0tKicgY29tbWFuZCBvbiB4ODYgb25seT8gWW91IGNvdWxkIG1vdmUNCj4gdGhlIGZ1bmN0
aW9uIHRoYXQgaW1wbGVtZW50IHRoZSAnbWVtLSonIGNvbW1hbmQgaW50byBhIHNlcGFyYXRlIGZp
bGUsDQo+IHRoYXQgY29tcGlsZSBvbmx5IG9uIHg4NiAob3IgbW9yZSBzcGVjaWZpY2FsbHkgd2hl
biBDT05GSUdfTUlHUkFURSBpcw0KPiBzZXQpIGFuZCBqdXN0IGhhdmUgYSAiI2lmIGRlZmluZWQo
X19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykiIGluDQo+IHRoZSBgbWFpbl9vcHRpb25z
YCBhcnJheS4NCj4gDQo+IFRoZXkgYXJlIGNvbXBpbGUtdGltZSBhcmNoLXNwZWNpZmljIGNoZWNr
IGV2ZXJ5d2hlcmUgaW4gdG9vbHMuIEFyY2gNCj4gc3BlY2lmaWMgYXJlIG9mdGVuIGltcGxlbWVu
dGVkIGluIHNlcGFyYXRlZCBzb3VyY2UgZmlsZSwgdGhpcyBtZWFuIHdlDQo+IGNhbiBsaW1pdCB0
aGUgI2lmZGVmcyB0byBhIG1pbmltdW0gYW5kIGtlZXAgdGhlIGNvZGUgcmVhZGFibGUuDQo+IA0K
PiBUaGFua3MsDQo+IA0KPiANCg0KU2hvdWxkIEkgYWxzbyBkbyB0aGUgc2FtZSB0aGluZyBmb3Ig
U01UIG9wZXJhdGlvbnM/DQoNCi0tIA0KTXlreXRh


From xen-devel-bounces@lists.xenproject.org Wed May 06 08:58:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 08:58:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301342.1575625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKY5B-00066h-Fy; Wed, 06 May 2026 08:58:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301342.1575625; Wed, 06 May 2026 08:58:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKY5B-00066a-C9; Wed, 06 May 2026 08:58:17 +0000
Received: by outflank-mailman (input) for mailman id 1301342;
 Wed, 06 May 2026 08:58:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKY59-00066U-Vx
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 08:58:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKY59-008pHf-Ch
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:58:15 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb02a2-bab6-0a2a0a5309dd-0a2a4507e2fc-24
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:58:15 +0200
Received: from [52.101.52.40]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb02a5-229c-0a2a45070019-34653428de29-4
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:58:14 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CO1PR03MB5682.namprd03.prod.outlook.com (2603:10b6:303:94::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May
 2026 08:58:11 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 08:58:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gLsRfbpiN6+6haQ15mjdG+ylwRsdoG9mVL2hsVw0hFSHyHgomP1WxusuhSXNt1Laf+P506vCBxKHPAP76k5bgKuhv86ag8cU+Rgu3XqltnOy6KaBNnA5UbRq3TSbyoZUpgs4NVQDPkrQvEy9HMKakPoiWEjwwcgNbD3J2JYjXfgc1HG6OiG0zOtyGBSV7FyIbDrNzk6GA4GheC46YKgFaJ4Nh/2BHS9ohlM5lG+LfleZzV+2I39Prp2ZF6CAFbUAQuo/4/V5pZiH8ltQhwnkhl1gMFD8xkceVme9mcZPU928SynB8H3XXn1WfMmtAd/4KB/Z2iL4YN5FH4bK8Prhtg==
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=T1bIEWEl09txaJq9NaXywCmuWvzukYda6goVbTYM4oI=;
 b=c0iesZzn/cPne/agN0nm19tdrL/QJvO0po7FeJq/bJHInwni4+Q1IOVL/PyEkYyOG07wx26YS8FkE/2Dkc/T4/HwGMQ9MEPnY90xchwgjXqNc1ZvWztNsV4HbmqO4CrGVJAt/ig3kmQWos260NZwMW8BLCjyMWSfZerq1IPTfE0PgO8kWo2SnnpjDikuOQj1Eo9t/ghcs4REcQXtL6zk8DJpfwFq4tGDk50A1FcJjOm1XIFd9+P7tSxw1xFANunqviYHAEaxGFJ+wJ0bzcK/y7ZEPjc+ITd7cxgtZ9WSLt38uQlp0zn1amAjwtxMsKYBXPyFAld6hpO3k8jVbljH7w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=T1bIEWEl09txaJq9NaXywCmuWvzukYda6goVbTYM4oI=;
 b=gEGAtHdYm1TIyLnGkpp7ozbRVR6oDgprzQuX6KsjiZvNTEqCLyidWVZveuwDrevKwiFCr7H/g1Mpf/e+rbx8U/uzZ7trLj3KxO4aUwSOE67wWFqlWUgrgOcsqOxd4cM1jBfJleo7iHkXYI++yLIwLp3ZifXNhNGayH9jlFnDNiw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 6 May 2026 10:58:07 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
Message-ID: <afsCn28tVltkg0u5@macbook.local>
References: <20260506073719.40075-1-roger.pau@citrix.com>
 <20260506073719.40075-3-roger.pau@citrix.com>
 <41ec5134-b117-47ee-8e59-682ac1e4a69f@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <41ec5134-b117-47ee-8e59-682ac1e4a69f@citrix.com>
X-ClientProxiedBy: MR1P264CA0128.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:51::10) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CO1PR03MB5682:EE_
X-MS-Office365-Filtering-Correlation-Id: a14f0422-c639-49d2-c5b8-08deab4d99c4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	MVA+Vrys6eAnkKWelsHDW/7dA4EQw3yBYCkeK56kE9/qtkqL+XcYHzr4mbWGMfIplg+OKeUNEg5+v227NhNp/k08wstCDqanKVWkBJvVvS6jk7ldMlVdfxsYLZJ2mmajLcifDfYapHvO5yS4P5pdxDuDwbev6LeEn5Pa5P3tkSv/Rk+2Mm7dR5mCdFBa4Bn5jlx3Qo42sXanGLpyOcR0WTHdaW7iHXf3hep5BWXgurG72pKZEgLAfCqXq/vsErsm2/TOZTJGyR/N5VSMZNAL/S0xfSmndkH35WHyB+OYkOCzzHG29GOlI4Kpjih6UGmh/Qdd626TgrkvTjLjj7k28hkCKLlY9OrQNmzS6AdnSHfPYpFwH2wb1M231KIPsDkC5h7cpLfkozgrYtBSbs75VJmSPn+brKfN0XSRiuaRJB7LkOjmfiADRKkMrAdlGvjCdKc9HEr3YzdXl/cBXrthbIrqHeey/QKwxZCug+GYRFz7SKKWGwA/t3ksS9QGpYUEdX4UUWLVJw8z8cnvxu78/asLxIq4ttBMn96Pk/XdaGd7Ijw79ucRnsj5qAmmQeBnFsWlGNHYs7FonTiBo7MnyJEtLXQWqZW732tc10xHgdsUdtNbj/n0bnRw14Qro9MYr4ftIq/8Jww1vLVe3VOmuZpCXPOex3ciOGmm1vsbszmzo6aG/hnlxPF/Rdc0e5ER
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OXM5alNXczBiMFZFR0E3REd5T2g0a3NuUldWRDF6ZktMUklrdWZRdlpWd0JO?=
 =?utf-8?B?VzUzdUp4Nys4WVhVV1l6NjFrQjB2ZFlsOG4zcDRYNXZyT2liUjF3LzU3S2lT?=
 =?utf-8?B?a3NQSTZDRVdybWZKVXBpNk1YZmMrTEtNVStyREhEaU91aVpSUHJZZGVmYURX?=
 =?utf-8?B?WlNyLzREWHZBbmo2QS83M2tlYTJtNHJjbmFFdzc3aWRsSkRZR0hHQ0FXc0J1?=
 =?utf-8?B?ejI1ak96OXByTHduMFV2bzVyZ21lN3RNMGZoNTA0MDJtQ2hsVVROM2t0WDhJ?=
 =?utf-8?B?M1o1Y0ZQSXViTncxUHBheUVYTVdGSGRueGtGNnhnWTVJdkpLb2RqbFA5ZFZU?=
 =?utf-8?B?QXFNeFZxSW9laS9RUFozSkpxdEFZZVlubnNjZ0J0SzdVOVNYKzF5MTJJek42?=
 =?utf-8?B?Yi9ESVY4bC84TU5Ta01YV2RndFRoNDE4bW9JRTRVcFFrU01sR3hwUDB0Y2lv?=
 =?utf-8?B?WlE3UzhXenFDWDRiUDJDWlpiekVJckNmNkl6c3lrOFNEd3h4bXhqSGxGaUQw?=
 =?utf-8?B?MmMrMW9kS0VDNmpHeFlCT0ZLL0lwdnhqdW5oUGREY3F6WDJSbnNFKytybU4y?=
 =?utf-8?B?Z0l3OE9wcHF1UGRFalkrOTNlaWg3OVNjOGsxTDVLMW5wVVhLTG8rTHhreFNV?=
 =?utf-8?B?RENxWjFiM2FZdW5IZ2JxWmQ1SExFWktaek5rVjlqWVYzRVYwUktadlJ5eGVC?=
 =?utf-8?B?cFFNRDNFL0pDNVZWSUlvbXhaY01XeFIybzMyMk9XUWtTVEJCRUMyTWJ5U0xX?=
 =?utf-8?B?ckRubkdqT0ZlYkRpQjBIaEUwSnlNRHNmVzdGbUhwRTZVSTdUbVBkUk81NFhw?=
 =?utf-8?B?UE9VTlZkVHhTZzdHR3kvMVJJN2xSNTNrMllOUHM3elhVUXo5eFZpRUJPdnVO?=
 =?utf-8?B?T3J3T3EvL2xjT2dVMXM1eWZLQzcvQjVFV2tEM29KRHpyeHFPZkgvVUFLdHQr?=
 =?utf-8?B?dHllSEE4UkJreVJKYmtUcCt3bXo2QmJWUm12MkFQUXFIQ1hneVE5ZGJTc0V1?=
 =?utf-8?B?a1ptV01WTkpNN2dVdElUZEc5R08vZ0xDSXhZRjZiREd4bHBJOGFhM1VVYjVO?=
 =?utf-8?B?NUU0ZkVLNklTVzFybENJVHdYQVc0RFN2REREaGdHZGEvYzJRa01salNzU2Zk?=
 =?utf-8?B?YUNtNzcvQUgwOHZYOXZvclVFbVBDQ0l3WFZyaXpUanhhRmgxTFBpbjhPd1oy?=
 =?utf-8?B?SHNSUUk3VVRkUDJMLzlPbGx0TVZwcHc0bUUyaUtNSk1Vaklkdm11K0dFTVU4?=
 =?utf-8?B?Nkp3REx6OE9Nb0NtbUFLc0ZYNEtJNkhDRUV4YUNoWmdjRFcyRUxBRTdrOVov?=
 =?utf-8?B?Mlc5L3FSMWJaZVYrUEZyOVoySUpmeHd4VW9rZ1VBRnptQ2ppaGdlY09PVlBw?=
 =?utf-8?B?ZThYYTRyN1c5M3hqVmdqR1FTeUZSVlRMbGVYTUlOblBDUVZrd3NBTE1SUGta?=
 =?utf-8?B?d0pZUEwxb0t2V2xnZHNBSUw3d2tLaitZOW5iYlpubXRQN2x6THJOTFhJeW5m?=
 =?utf-8?B?RjF6QUlSU25LaDdKWmdvQzRURy91VWc2Q1RnQWR6ZDM4MGxXZThkQXdrUWhC?=
 =?utf-8?B?dGxyam1tZ3JQTkxLOHhlald1MGpyVm5GT04rSGwxWU0rLzhnUTEzdS9uaE9W?=
 =?utf-8?B?SG9nMEZrOWtzblZSS2FBSC83MFg1Z2dHclkvKzdXTlY2OUF6U2kzOEprRVZn?=
 =?utf-8?B?NDhaRW93RmRBTXpYUFdxRmo0SmRuUWhQdkNHTVFYOGZlNU5pRTI2UStHekty?=
 =?utf-8?B?Rk1aVDdUL25VY1dmRkcwQURsK0VpcVpFWW1nd0EzWUdpSlVJTkNmUUxVR2FZ?=
 =?utf-8?B?bE4xWjI3SkhFSlhIWnZ3NHN6V0gvRVd2SVdhcW5tWXdwQUJNYUdXRnpQd2M1?=
 =?utf-8?B?UlNxWlVQLzNlN2tzMmRzenVmOVR4YjlHaXJCU3RZdXdyQ0J0a05zNFMxRUxn?=
 =?utf-8?B?d1hoY0psb3VuR2tNZUJkSDZlbkdhSEFjaGdLdktkVWJXZDlXM05zUmdFUTlB?=
 =?utf-8?B?dG1EL096emxyaGx6QmV2MThGNnlKVW9JV0Y1d2xtYXgzeENqbHRVaHhDZDhE?=
 =?utf-8?B?WXhzTVEwTDBvNldRL0I4eTZwZkF0dStVcDM2ZHNaYWx2OEI0UEdzNVVSVTVF?=
 =?utf-8?B?WWRra3RGQlptZmw3N3BHZUlPRWVaaVNYeDhyUTdGd2pEZzJlWTI2ZTM0ZE1E?=
 =?utf-8?B?bEszMFoyR25XUDl4Tm44a2JENjZNQ0FEdGlsVnpNNENteVo2bEdtYmRmMStG?=
 =?utf-8?B?UGR0SFVIak5vN1JkUGs4bGRMaXZ1UTZ2T2N2YW5GcExVREl1UWx5cERydmgr?=
 =?utf-8?B?dE1Ic2czOFJkazF4TFJ3aU0wWVBWVEs3M0dmOHZ3RS9UMEtRbnI1Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a14f0422-c639-49d2-c5b8-08deab4d99c4
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 08:58:11.5827
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Fkvxs1/DJbIIRqy8KdVVYa6MHk5X12gV7+qXnGY0O3XIboy32AFLOv4UHUnRTb/b643F4LmIYov/RvtjSU9Kxg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB5682
X-purgate-ID: tlsNG-ef75cf/1778057895-1585EC48-13A1DBBE/0/0
X-purgate-type: clean
X-purgate-size: 3020

On Wed, May 06, 2026 at 09:20:07AM +0100, Andrew Cooper wrote:
> On 06/05/2026 8:37 am, Roger Pau Monne wrote:
> > Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
> > say the least.  We don't know what registers might be there, neither what
> > values might be safe for those registers.
> 
> Minor grammar.  "there, nor which values".
> 
> > On a forthcoming platform doing
> > the zeroing of the MMIO region can put the IOMMU in a broken state,
> 
> "does put"
> 
> > which is not recovered by the IOMMU initialization procedure in Xen.
> 
> "recoverable".
> 
> > diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
> > index 76ae78e5ea53..8bf5ca4de18f 100644
> > --- a/xen/drivers/passthrough/amd/iommu_init.c
> > +++ b/xen/drivers/passthrough/amd/iommu_init.c
> > @@ -1367,11 +1355,14 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
> >  {
> >      int rc = alloc_ivrs_mappings(iommu->sbdf.seg);
> >  
> > -    if ( !rc )
> > -        rc = map_iommu_mmio_region(iommu);
> >      if ( rc )
> >          return rc;
> >  
> > +    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
> > +                               IOMMU_MMIO_REGION_LENGTH);
> > +    if ( !iommu->mmio_base )
> > +        return -ENOMEM;
> > +
> >      get_iommu_features(iommu);
> >  
> >      /*
> > @@ -1381,6 +1372,11 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
> >      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
> >          return -ERANGE;
> >  
> > +    /* Read current control register and forcefully disable the IOMMU. */
> > +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
> > +    disable_iommu(iommu, true);
> > +    iommu->ctrl.raw = 0;
> > +
> >      return 0;
> >  } 
> 
> These two things are unrelated at want splitting into separate patches
> at a minimum.  The removal of memset() critically needs backporting.

But is it safe to backport the memset without also backporting the
disabling side?  We might then be dealing with an enabled IOMMU which
could lead to all sorts of fun.

> As for disabling the IOMMU, I'm not certain it's wise.
> 
> Linux can already "bring up" an already-live IOMMU and Xen needs to gain
> this ability in due course.  This is mainly for supporting PreBoot DMA
> Protection, but also for things like the kexec environment.

Note that Linux (when not booted from kdump) will do a similar sequence of
what I'm attempting to do here for Xen and will call iommu_disable()
ahead of attempting to enable the IOMMU.

I understand that when Xen supports kdump or preboot DMA protection we
would need to be more careful there, but going from zeroing the whole
MMIO area (which disables everything) to not doing any kind of
disabling is IMO a dangerous approach, and I would rather backport a
change that at least attempts to make sure the IOMMU is disabled.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 06 08:59:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 08:59:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301350.1575635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKY6I-0006ac-QB; Wed, 06 May 2026 08:59:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301350.1575635; Wed, 06 May 2026 08:59:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKY6I-0006aV-MJ; Wed, 06 May 2026 08:59:26 +0000
Received: by outflank-mailman (input) for mailman id 1301350;
 Wed, 06 May 2026 08:59:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKY6H-0006aN-L8
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 08:59:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKY6H-008z7q-1j
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:59:25 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb02e8-bab6-0a2a0a5309dd-0a2a450791d8-26
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:59:25 +0200
Received: from [209.85.218.49] (helo=mail-ej1-f49.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb02ec-229c-0a2a45070019-d155da31c140-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 10:59:24 +0200
Received: by mail-ej1-f49.google.com with SMTP id
 a640c23a62f3a-bc356898256so451185366b.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 01:59:24 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc55b17c5e0sm58332766b.11.2026.05.06.01.59.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 01:59:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778057964; x=1778662764; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=t5XCGPLK5bivVYUwSdUTtTDeIce95c1OMHGCGkwMsMI=;
        b=saQjDVe72bBlLIU6m17zpgDryoEHPT9RnDyGYRizp+1wq9La0uh0vNxnWADWKaTfti
         GOMvh6e+OTeSdyW1yXWOgboqSsFwlWks/tjZ+qZfqi0jX8PoKKrtD2goiy3IKkmHP9pe
         AWygwlbDQdbvzwYhGZx66OElbc9emtJJf+CfvTIUpWpqDNd+Ibp48M/FYMyJXwWWnjIP
         H14uTyfUlHPQpNnP/VEti/tuekxGWwcKW1ZDCE62qQnYQor6Rm40SLAHnCmOWrcmQ+PM
         XvBXnq8SftKEzwqntth+EfPQtkEi33RCvi1bPl3G8+AwzKW877oQpASJ6JOT7ERT6D92
         b5cg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778057964; x=1778662764;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=t5XCGPLK5bivVYUwSdUTtTDeIce95c1OMHGCGkwMsMI=;
        b=hHUsoOpJimTxJFbJSzt0RrafrZ2kMbmJjuH9jf/Zcwe/fAOqb5ppAdyigSAhGiUnWu
         MiSyhUEkdoGmohTq4ylc5kg/ZvZPKl+6WwSd5BCc9ikg62x7C55oRm31gMhthwGoKv60
         FxRUdQHTP9ijFkvVo9jNnLYB6g1nznV8kTl2zK3VINsyTG/TjPLt6662XwDVZVNWHAx8
         /KaP8nTo8vKHPX9cz74wkslfYG05hDp/fEs9+MAW1RApY1wgHIAWfwzeQ8FRx7dkX3uh
         mXL652Cr2zm0eUvRcrXeajrrVmzTSpboQ2ylHqtZrfOhkHFEZr/Z3xfEHMMOoFN4S28q
         fkOg==
X-Forwarded-Encrypted: i=1; AFNElJ/J79GumTv4rH8+pe/msKGc7yZefNX/Y7Vs2EBConYeW60+RZ4kOyCQr1i1mcpg4hj9vYS46PjM9xE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwdpLVp8V6jrPM1h/hWzLRU0B2Gl+3sd8ZyRUbgBxyFNCaUa9P7
	guHsAtq2OKEGVAXepOfuBlS0JYkP5auSQobXpDfZHGFeFMnxk4DR8uj+
X-Gm-Gg: AeBDietbljHxph2SXwLp23taF0k6AKEj2PQ8zuho/4zoYEsrW80hinJdTvKHEC4KtZN
	Vzrr1ypSXauf76aSjlpI9kkk6gYNfEx9/DqYJv35vePpsul6qrQK66WUvWtlcI2c0W6clxie3FP
	7lAReQ+Qw3wMANb0SKJYeiaLsgF8LPBC65yY5miZ8FiRDQQjE4h2GHhmdLQdj9DUl8fEWdrojpY
	O0bdk/88es0eyPSqoGS6D6hTKDYhoZCL1EAhWZ0RxJoLz94Iw910jKPUUVTegOZgu5SAkbDlXb6
	e4d3hD53ltxqTOr16mNNMKGqDEl7syU08pFff+Mn3FJp3Dyza10bV7qSHMyHRme8VAwXiAL8bJT
	NuEEKqjR4HXOv0oXZXfx6BPUih6BJ1I5zP0S9pajpjDcnlBKh2QknVkoK6lajGwWx0MNX8lw6kj
	mvJ/GsfJrfVoVvF8FbETz614O1vwuNV9bTsn9J5CsJERbGr61jA90umRG5HKBCxkXCMr9mlT/Mw
	JRXtEVYWdELmw==
X-Received: by 2002:a17:906:4fd0:b0:ba7:f5fd:edd6 with SMTP id a640c23a62f3a-bc56b52facdmr105961166b.10.1778057964147;
        Wed, 06 May 2026 01:59:24 -0700 (PDT)
Message-ID: <e5d60b8f-3ba8-49d9-80b1-0b4ebb0f9296@gmail.com>
Date: Wed, 6 May 2026 10:59:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/3] xen: introduce CONFIG_HAS_DOMAIN_TYPE
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Michal Orzel <michal.orzel@amd.com>
References: <cover.1777296786.git.oleksii.kurochko@gmail.com>
 <7c91e1a705e1046be4af1c5671a8d91cf3557013.1777296786.git.oleksii.kurochko@gmail.com>
 <5daeb8f7-cf0f-4ea7-a686-93df36b43a30@suse.com>
 <2ec5eec1-0a7d-445f-9d96-99b3070afeb1@gmail.com>
 <8ae99c06-5523-41f6-a34f-d34934e23a39@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <8ae99c06-5523-41f6-a34f-d34934e23a39@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778057965-AF374C48-40FC6CA6/10/73395122804
X-purgate-type: spam
X-purgate-size: 2122



On 5/6/26 10:10 AM, Jan Beulich wrote:
> On 06.05.2026 09:44, Oleksii Kurochko wrote:
>> On 5/4/26 2:21 PM, Jan Beulich wrote:
>>> On 27.04.2026 17:34, Oleksii Kurochko wrote:
>>>> @@ -69,6 +70,14 @@ static inline uint32_t alloc_phandle(struct kernel_info *kinfo)
>>>>        return kinfo->next_phandle >= GUEST_PHANDLE_GIC ? 0 : kinfo->next_phandle++;
>>>>    }
>>>>    
>>>> +static inline void set_domain_type(struct domain *d, struct kernel_info *kinfo)
>>>
>>> Pointer-to-const for the 2nd parameter?
>>
>> I will apply this comment and comment above.
>>
>>>
>>>> +{
>>>> +#ifdef CONFIG_HAS_DOMAIN_TYPE
>>>> +    /* Type must be set before allocate memory */
>>>
>>> This comment would be more prominent if it lived outside of the #ifdef,
>>> perhaps (read on) ahead of the function. I wonder though why it's only
>>> a comment, and not e.g. an assertion. If an assertion was possible to
>>> add, the comment would want to live next to it. Without an assertion
>>> putting it ahead of the function may be better.
>>>
>>> Depending on how far to go, changes could be made while committing, or a
>>> proper v5 may want submitting.
>>
>> I think that instead of comment or just after comment the following
>> could be added:
>>     ASSERT(!domain_tot_pages(d));
>>
>> Jan, Michal, do you see any concern with that ASSERT() or I could add it
>> and keep your Ack-by and R-by.
> 
> I'm okay with it being added, as long as you have made sure that it is
> legitimate to have. IOW (as pointed out numerous times before) you may
> not assert on state that's user/admin controlled, and that isn't covered
> by another, earlier check. In such a case an error would need returning
> instead.

All callers of set_domain_type() are in the domain build path, before 
any memory allocation, so domain_tot_pages(d) being zero at this point 
is an internal code invariant, not user-controlled.

Also, I checked CI and it looks okay except ARM64 randcondig I mentioned 
in xen-devel matrix channel:
https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2503536959

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:02:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:02:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301359.1575642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKY9L-00088B-6g; Wed, 06 May 2026 09:02:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301359.1575642; Wed, 06 May 2026 09:02:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKY9L-000884-3v; Wed, 06 May 2026 09:02:35 +0000
Received: by outflank-mailman (input) for mailman id 1301359;
 Wed, 06 May 2026 09:02:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wKY9J-00087y-AW
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:02:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKY9H-006YHF-5G
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:02:32 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fb03a7-2eae-0a2a0a5409dd-0a2a45059998-6
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:02:32 +0200
Received: from [52.101.57.30]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fb03a6-aaa8-0a2a45050019-3465391e0c9d-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:02:32 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB7038.namprd03.prod.outlook.com (2603:10b6:510:299::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May
 2026 09:02:27 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 09:02:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RBfxRN+LfOxO6SsrfPNPuoRd4VPq3cOeGpviA5A63c5r6VvZQGoYa2gHGORz5yx94JtipJSKY/9NcDMQyOIPLfx/7IPRGA3QBurgd4wmByqk/3/fqBUes3xny1x+obyNeWbvdFIOlc8d8j7OFzwII8LX34sRLFc4o/ZvwT8jo/UqgJpO+gYs3rnFPNlhPlPPwzFNg0u8+yt8D6zyd9AWL74M2jpMoulgC3plBQMkiIpzlpRSdvZj1SFPdKXQ7Lox7p06dOI2bF70dGm8chtZmDtFYyWpQkkTVcdKdG8MrgkrGR5yejjIi2oGN1aq0eqcs0XhYTHDVw+T3ZhlmwZjpg==
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=grkalTiSaIt39jHqytKiDktOh5evECmB0U5YwQxFur0=;
 b=QO2C8f604kQjJk4nrhzHIBut+hd79K+BWu/ohzB3tpBDvXvpNuun8J5jePyeX1pdVTvMZtBPVrCjiC3jh23Q/irnZN/rY3mqtXlZSNkWLcmgq41iS6m/2XvbE/zWLOYtOAeKokQeu+27C8j2iU8pgFNc1INDMSaldpSW07MFzdyewS4zVwBrNNoE556NpjdhoFeFvzmryfev/toFOuT7r4O4vWcflwu5tsQ1Q4qCu9T5L0kTElLMZIjlRa0tqTTLjJLHle7eWW2G2WHN07IO3TtAOKKFBkBt9OyhmG+eT67Cw0rEc7tBRoLRoEI3vQLvj6hZ1Nol1N1HSaJ/qA59qQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=grkalTiSaIt39jHqytKiDktOh5evECmB0U5YwQxFur0=;
 b=Kmi1sUWk+VuLdfwx7TvQtzoZ5LabN6GrE3/UWffZ2yIklZm167LMstcEYg+8S2+5rplDP9x9KqptBdUfboghhC3MGWbTednpTgzoU9iSpbki51kAaMJQs1SPe4YX0v8oX9mRde0LStaNXCPYONorVAzgd7TD3cUlcIsr3WX14fE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b1fb3f1b-9f83-4007-9854-6cc6d698876b@citrix.com>
Date: Wed, 6 May 2026 10:02:24 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
To: Jan Beulich <jbeulich@suse.com>
References: <20260506073719.40075-1-roger.pau@citrix.com>
 <20260506073719.40075-3-roger.pau@citrix.com>
 <41ec5134-b117-47ee-8e59-682ac1e4a69f@citrix.com>
 <1d771706-35b1-4d6c-bcd8-a3bccfa825f3@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1d771706-35b1-4d6c-bcd8-a3bccfa825f3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0220.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a6::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB7038:EE_
X-MS-Office365-Filtering-Correlation-Id: e25bf31f-b0a1-40bb-ece8-08deab4e327a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	+cEudw1kia4qFqIE1g5I92/3xx2v4c7g/QNEXdilw/FiJ8zOBH9eWooqBB4adignoUAtyRrXRYh3jkjwpAQ/kks3yWfH5leXxM5ZRILmFJV5Rfz02UslzNeNNrAJKEIJX+N4+EROXBsOBmrQMLyXYzD+QA/GGpiTkNH0qOlBbc/G+DQyd0n4JtlurTVEEC1+sWP6X+re4x4d8gw7lLgiy/w0EKio9UNnVEx4JteImMW7UAjEpjKAYC4E22DfEWDGxY3ZcT37og7wzOl1pCNpJuPLRmubwXeoFSqiC1nI3AxaXk6Jh7knZ/c1XjRyRPVpQw12kr/cIGvI750tD6rQEVYu5LO0MyBFz6NLWhMGIinNLI73BrgJ4O3twHiGDkY789GGxicWwYBcJefV+3zqT/LkSNL1p1s6rw4NYQYuOwSdbkuGqtQ+meBmuo6ySRca99hZZbWM+pUVjICVQy35wy9xLLzlz7EXpd0/wwMFT9L0K6yACs8NtxDn+avSfPva0weLSCPJgxvrK/eTj8FoVy+BHlUwxlcurEy5uwSrc27ukaS9lOG9JbZ9Is0RpW3qBy/6uiIsx200yD1RprdvEbgom/gb7GUWh1D8iStsfYWJKFRdBA2N3v/lYlxWU4T6eTCOuKqSmBTLHGgV60w207EsjB3RaRL/AW3oPNWQKkOCmjgrW4mwC6+gQMuBdvKT
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aktrTVZwa1NEa25FczNKQlh6NDlTY0tWalhnNWdPL0NMQW14aDNVTVpaUzR4?=
 =?utf-8?B?TjNNTmJEWU9wZm1IcVo5VzhpeEpDRnNaeFBRdzVRbGJGT2xLb0hibHcxeHhr?=
 =?utf-8?B?Ui8xMTYrOExzaWNMdmtWOENwNlNidDFkdXpJc0pMT08wR1RRVnEySEwxT1d5?=
 =?utf-8?B?Rm4xZ0hYSkNPbVBjdnJRbGcwNGtuWHA1dkpoZ1RkdmF6SENrbG5SVm1abkQ3?=
 =?utf-8?B?Ry90aDdOS2lsWGh0YmRXU0E5SGVDSWpiak1IV29SbmM4am9ZZGs0cS9HTUhB?=
 =?utf-8?B?RFhKK0F0VFZ5aUIxSE9nRmUrNFFPZ2p4N29Eb2dWakZkd0crSW4rVHA3a2lF?=
 =?utf-8?B?dWh0SzRFWmZuU24xM2lYN0MvTkJsWmx2T3pmZlFDOTZmWTZDQjRoODRiNTNN?=
 =?utf-8?B?Uk9uQ3czTTVtbURDNGcwd3lCejhqWVN0TlpXQ3BsU21jR3dobVcrVVdoak9B?=
 =?utf-8?B?UWp5WmVrR1VWQUtUOE11c2Jic3ErdXA5WkVyWnFkc3gxQlhpcEZqdU1ybUxH?=
 =?utf-8?B?K3hQbUtTTkZsMmhUdzZvNXlKczdPNm4xTXJSV0x2OUxrb3hCTWJrNTk1R3pn?=
 =?utf-8?B?OXdkSURLaXlnV3JHa1JCaEtRRldnamU5VzVnY2hDVmNNcXNUMWhCS0RMTGJM?=
 =?utf-8?B?Yy8wME9KS0FMQU5xOW5jRWtjbGxTZGlhbHBFS2JOOUE3SmpUYkJkTHU2U2RR?=
 =?utf-8?B?Q0ZsQWR2cm9DZUhTUFdSQ0xQemZ0N2pmUUtOYmpZcnJ0VXBGYk9sWmNjVVhI?=
 =?utf-8?B?TjgwTk40UmRoazBYR0RURXJtckRGeTcwNFFjakFOa25PSDVELzRjM1hUeEhR?=
 =?utf-8?B?QmMzZ2NVOHVaMGFJVEhINVp0eDJWM3JjcWtGYkwzRm5KVVFMM1dzMXdOMVlH?=
 =?utf-8?B?YUN6cnhpRmRmYSs1ZDBpaWJsUERCT0tqVnNyNFpKanl6OG90WGw4NzJDSWd4?=
 =?utf-8?B?UHdxSFJUS29nUVBKdnJBSm9KQnloaUJuQy9MVWkzQWFhd054clQzNzVNdkVr?=
 =?utf-8?B?TTVOeTBlN2ViVHJUUkt6Um1uOW9lV1BEcVhIWHRzTExobUNSdkRWM29UVU4v?=
 =?utf-8?B?a3k3MVJJbzdNT01QZTFmWEJ0d0tsVlpaQWpidE9lYlQ3TXBHWWJJMFNYNUFU?=
 =?utf-8?B?ck12c0w5b2Rvd3drWitWMFIzeUtWMXgreDA0NUFQTHFsMEt5cG9OR1ZyTDE1?=
 =?utf-8?B?RVBCZlZOUTZHRCtjZFFHSEtHLzRBbno3cWIwZjFuSWNPcWdSUUhsMmFCSVRE?=
 =?utf-8?B?aVZrOE9XWndnM3FuYVg5cVBZRnpXNG5CUUg4a2VGTUdLdkp1WkNyWXBFY2dU?=
 =?utf-8?B?ZnZFS29QUkZ5NS92a3BqK1ZmSjQ4N0VKTEROeUltYWVoK3FGMGVVbmxhdEpx?=
 =?utf-8?B?d1d4QTR4cURxN3lXcnF1NWZRc3Z0ZWt5dnZIZG5SL0plV2J3VU1KOXFPdzZT?=
 =?utf-8?B?cm5tRUkzejlkNCtuN0VpejByeG1WcnpreWpVM3pJVlJsSWpkbU1VeGdLTFNj?=
 =?utf-8?B?MU1lSElwSXh2T3ZZVzhZVlFSRVc1SlNrVDltMVZQWGRMbC8ra0FLL04yQnFR?=
 =?utf-8?B?UjhrVDNSWit1MHJnL1ZUWEtBNWlFWGtac1Z1dWdkUmsvT1FSY3gwcGdlMVUx?=
 =?utf-8?B?VHpweEdlUWFaVjdMdThJNGF4akZwLzREK3RhK0d6SDFUY3U4RUc3ZnY2K0JG?=
 =?utf-8?B?bVdZZUJjd0NnSFNJeCtWYW9CaEpya2tjZHFZS1h4NCt6dU5lVVNwN3FDRG1I?=
 =?utf-8?B?bm9MN0w0L2JvSS92V3hma21HVlhKczRmWHhjbjBWN3BwZklKbnY2dW4vZ3dW?=
 =?utf-8?B?cThjOEQ3SmpURzVXTnNyWXZmRkxZL3IvZWJzbm1LcjRTcy9RbXFDcytzRCt3?=
 =?utf-8?B?VGhWOXF2YnBmTzAvcFJmMkpDaHFzWWEzeGpFR2ZHSHhudVE1T21JUHdoNG5a?=
 =?utf-8?B?a1FVT2g3ZHNJTTBxakoyaWhjaDNmRVZaUzNzaDFZMFVXWXh2VzJvZlhSV2pC?=
 =?utf-8?B?MlFoTjlXY25RY3JxdTZLSEM2blY4ZjFqVEVncjRnVDJmc3hBVHFQcDU5N3hz?=
 =?utf-8?B?YThoOVN4N2pnVUFUOXRYdHk5QTNiTWtjMUpSelE3cjdvNlg2dExWTUREYUQ3?=
 =?utf-8?B?S3gxSnJyQmM5L3VudGZLUHFmNStuQ3ZrdDcvdkpTN1NVODl6N1NQSkRxdkxM?=
 =?utf-8?B?dTVhck1ZUWhxd0lyQ1YxZUFaV3M3RG9jbmIrL2VpSXlHeVZ3VnNZMHRVeXZT?=
 =?utf-8?B?NFVLSE9rZ2wxQWhhdWVCbVI2dmFmTkRWbU8ya2R6TmhBNDlYYzlTSitlUVNH?=
 =?utf-8?B?VXlNUC9neWtQRTZrQ1hUYTN5clMvY3FpZ1VxaENmelR3czd3cTFGQkVKZGJ2?=
 =?utf-8?Q?aXo4bk4FmMnvcdO0=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e25bf31f-b0a1-40bb-ece8-08deab4e327a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 09:02:27.7760
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: r1c3JgYq/Jyb4/UgzMsWUSSs8H64f3wqGEgt9Z8wDG1J8xZNHkkqCop4OFoZ+HiqaKIAXadU1rs+lXf4aHv7CFMQ6Dc+pyV51Otsdc9tbuU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB7038
X-purgate-ID: tlsNG-c201ff/1778058152-DB16D443-C191630B/0/0
X-purgate-type: clean
X-purgate-size: 2117

On 06/05/2026 9:32 am, Jan Beulich wrote:
> On 06.05.2026 10:20, Andrew Cooper wrote:
>> On 06/05/2026 8:37 am, Roger Pau Monne wrote:
>>> @@ -1367,11 +1355,14 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>>>  {
>>>      int rc = alloc_ivrs_mappings(iommu->sbdf.seg);
>>>  
>>> -    if ( !rc )
>>> -        rc = map_iommu_mmio_region(iommu);
>>>      if ( rc )
>>>          return rc;
>>>  
>>> +    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
>>> +                               IOMMU_MMIO_REGION_LENGTH);
>>> +    if ( !iommu->mmio_base )
>>> +        return -ENOMEM;
>>> +
>>>      get_iommu_features(iommu);
>>>  
>>>      /*
>>> @@ -1381,6 +1372,11 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>>>      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
>>>          return -ERANGE;
>>>  
>>> +    /* Read current control register and forcefully disable the IOMMU. */
>>> +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
>>> +    disable_iommu(iommu, true);
>>> +    iommu->ctrl.raw = 0;
>>> +
>>>      return 0;
>>>  } 
>> These two things are unrelated at want splitting into separate patches
>> at a minimum.  The removal of memset() critically needs backporting.
>>
>> As for disabling the IOMMU, I'm not certain it's wise.
>>
>> Linux can already "bring up" an already-live IOMMU and Xen needs to gain
>> this ability in due course.  This is mainly for supporting PreBoot DMA
>> Protection, but also for things like the kexec environment.
> While I agree we would better support this, as per my reply to Roger: How
> is that going to work if the IOMMU has features enabled we may not even
> be aware of? We'd still need to blindly clear everything we can't drive
> ourselves.

Zeroing 16k of unknown MMIO is completely unreasonable.  It is not RAM,
and 0 is not a safe thing to write into an unknown register.

But to the AMD IOMMU specifically, the spec makes it clear that there
are registers configured by firmware that we are expected to leave alone.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:18:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:18:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301373.1575651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYOs-0001xf-Iu; Wed, 06 May 2026 09:18:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301373.1575651; Wed, 06 May 2026 09:18:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYOs-0001xY-GI; Wed, 06 May 2026 09:18:38 +0000
Received: by outflank-mailman (input) for mailman id 1301373;
 Wed, 06 May 2026 09:18:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKYOr-0001xS-6R
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:18:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKYOq-0092IZ-JA
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:18:36 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb0764-e002-0a2a0a5209dd-0a2a4501cef8-24
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:18:36 +0200
Received: from [52.101.193.29]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb076a-c1f2-0a2a45010019-3465c11d3001-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:18:36 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM4PR03MB6973.namprd03.prod.outlook.com (2603:10b6:8:40::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Wed, 6 May
 2026 09:18:32 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 09:18:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=E938ZEDWFutBd+v32GoaVl9LVIeXWeELFU8f+sBpihMvmAkPKlF1HoquFYX/YI3ooYhTY4DIEqwWha0BLDWfXboMbbFkMHydwYQqLoxorZxKfWQKPwKtTL4c8YfBz6Kgq0H9erloFTcYn/1oHSWAzkRG8YaFX2bmzmBPqgNth7cHDgp4glwvzdQo+Gw0BY43LiLU9U81EZNISV44m7mvlsARynCtNPIcBLOUj0v21jLd8PSIq8m/b6YcKSXhlvmwKEC9voKnqweEtovHEqB02d8AmjQcK6+RefVyFrFEmyEqMnzENIeFNDZwNqi4O6yFYIstgIxzhU1/SspFRVfvgQ==
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=Wjddc3C6Zs52T1Ii450LLJa4UjD2WfvP/0xGaw6mFjU=;
 b=x7FlQUgZCJlDzh8zGjKX4kiG5P+tY5po+2v+eP5kZeMaPtfHfMP8S+r6pBoufrzFu/emhyhedLDetJL/bW0ZfyA2at8XMc93zbeY62qaODR0pkJTL32pdqylHwBZKUYOA8Azdxhc3DNI4ZbsMs70Z9IrIge4EMggEQmhH98IL+EHWvdPTJmgApmC4teUUW8fYaY268pQetkZYfn4SS7eo8F4Tr29+l9ThdfPh8F1d6gYQrKyxgnKto78yWKMzFwbnQhP2GTCL6WNQVrB25Bqd6xNIPUUHeogD6Z6t7hvl6Bj/Q1p7wrW3c4V9/tPiF2ZKnCj5Ifq2/iuXjTSLN0Z5g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Wjddc3C6Zs52T1Ii450LLJa4UjD2WfvP/0xGaw6mFjU=;
 b=D5PgpbnFI3ngVO9Yd9PUnDHKIn3KF5ZRJnO2NAA3K1Fv2NZtku+wAodim5ZqFZgEnbkrbNOq4tCObkIDWgGYubwj78oBqWOy2i+AhoGnysTtQLeS7EyBnRB/XCNMcDFAkLF36oEYzf0LhpQq7PtQCjj9Qp1HwjoqrWfllypOYmU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 6 May 2026 11:18:28 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: Problem with PCI-passthrough to PV guest
Message-ID: <afsHZMH1oVpds-wg@macbook.local>
References: <04c8ed4e-4e99-46ae-b83d-af9031f5b622@suse.com>
 <afo7NyXOEsDsVB6i@macbook.local>
 <4ca0f24d-2526-4e49-a4e0-f8497aa8f4b0@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <4ca0f24d-2526-4e49-a4e0-f8497aa8f4b0@suse.com>
X-ClientProxiedBy: MA3P292CA0057.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::11) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DM4PR03MB6973:EE_
X-MS-Office365-Filtering-Correlation-Id: 2e807831-93ba-4645-9ce4-08deab50711e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	RQOg2BTLvOqsddLX5gvgIKmVJaSrCYg3k0QLZ7SP0m+JCA7+7X5VcMQewhQM2CsvaZuhYrBNfj/czSAouyQD7/Tnn1w/aHlPeLsLLhkoXW89Wi9Fyj7ixsQ/wmUl4gVux/3DdzQeDjZXw5igqMvHkawDs03wEQyNSxsTrJCIoNZEXLhXO6eDQLU0L3qPsBOoVervLoKXqioQmBC5MhTJGdiucspokAfDr0c7f1YRwB6V1nCN2TIqJwqdgh49tf+riHMwBZAihuagIxGxDEXZdLugpcZKhLqH80E2sIW+PxePCf4zsJoyYT/N2wsXotWZqw8LaxTPDDem+OSdUTupcRAJdF5q+k/RaUlNDhpWGpKejQ7P+bIqSHHdBxxGU5c8KSLw8C2k5exojH2YPpTSe0B08l4+9qI1q/O28NsTn0gu60h8nTMT6vT5lZMfRDAZALbYbXrDEKaylip39gbdotzVZiYnOHBU/YTh/+4yg/MtQfwWtzvu/d7PCJL0lkCsKcb7TsYMhAQFCypLj42iXbUrMeGfFfehvO3Pl21mJXaYFy+xgI2lA43XfnavAilzxeH3k7scLoDr8JGpUd0AmJa9eawt8uUZC0XMRXa+QS0sZ/VEJOrYuedVMrN5Yib0hfLloSOx8m/GOEDNaztSSiG2ocoSIo1MariIS0xu/DPQk0a1nU7O1gzMATcbQTqS
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bHhuR2VlMGU4Um9GbkM2Rnk5VmZRazE1emgxZUJXZngxZUM1eFdCakJYK0lv?=
 =?utf-8?B?OHplZk0xM24zU0EyTVR6a05MT1FIZmpHeVdhN2J4Z2UrYnVNeHZnZGhxMmhB?=
 =?utf-8?B?dlN4WWIwNmpYZmduSWgrcHQ3Sm9vNXBUT3krNWI2dTA0T1V4YktCc3VkL0NB?=
 =?utf-8?B?ZlY5UnFWL3VHTXBCcldpdnF0WSsvdUplTGJTa1pKZng1ZEpXZVlZblRZOWZC?=
 =?utf-8?B?N1JJeVM3UmU3L3BmTWhFSUV6a0tacXpRU2RyZm5OY0NtM2x2Qm90MVJ1SnZy?=
 =?utf-8?B?b3czQ2FJRjV6NWw2VGhvdzl6MUJmVE1rZjNsWnRDa3pVRXdPYnBqYVFHbU92?=
 =?utf-8?B?Z1B5Y05BNER5K1JhNllURVpjYUVrRmY3Y2QxU2Y2K21rUXZmVlNPRmhVNko2?=
 =?utf-8?B?VzNxanM0ZGllZDNqY1h6Z01laVV6ZXVKdlV1NXlpelE0dXNlUWordndJVDho?=
 =?utf-8?B?UkFpL0ZWS2tkMlhKaWRxRFVqL1c4R2g5YXZKZkRqcVdTQVNEZXBiMDA3MGc2?=
 =?utf-8?B?cCtwamQwVmZCSVhBYzJId0M3eDZEUGptZlhVU1crMzNEY2tpejZ1aXErYWxn?=
 =?utf-8?B?V1lNdTJHVkZGQm1pbUVIRFJOa0JoL3huNW5NM2grRVdYOE5OVmNHcFdOU2pW?=
 =?utf-8?B?N3lxczIrRFN5Wk1OV0hNR0UwcWVOM1VONVJkL0l6UEw4RUtOQS9GWnk1bTFJ?=
 =?utf-8?B?VGR3TERmYS8yamFBR1N2aDNiTEZHU3ZCeVdUMGcrM3RJMXgyUUZEV3NOOXNN?=
 =?utf-8?B?NEFmdzhnTmdEczdJa1hQYzMzM2dYQjlvNTViSnVGZ1VqWEpjWkpUWng0a0Uy?=
 =?utf-8?B?YzNIbFF1OTVEbllJb1F2SzlkRTV1UVdtcTVGV0VlUWw3UWNWdXlUcEs3R3dk?=
 =?utf-8?B?dzhhUEIzN3RPR3dkZWNHSWVuUHVBSG9kVm9ybmhPRmliVzBablJSNlIwRDdY?=
 =?utf-8?B?amFwUzJsVWI0SGg1WjZqbHVwb3daVkZuV1NNNjc2K2lUK0hxNnJmQWxKWWFw?=
 =?utf-8?B?KzVYTkFzQllPeWxINHlvb1FUWmkrMWprcHNHblAyd3c0QXpiZmREcWlzWE9L?=
 =?utf-8?B?Z0JEcmNYTlJlS2EzcVV2a1lRK3RBbXdOMVlXWGZ1VkgwY3JwRlpMa0xZNEt6?=
 =?utf-8?B?b0J6eVUrcTZzWkdJWC9oejFzTmZsMkx2RzlxeUhkS0d5L045cmorSk9JU3Q5?=
 =?utf-8?B?SG52bThSZFl4RjA1QlFpdlZEQ2N2c2VTdHhJcGtDVmtPenJISFJ2dThIcFNm?=
 =?utf-8?B?OGMzdW5WV2dIYWNRMWRYQnFGTEtwNktyYWRiNmMwSXp6NVpwZzJ0ZXhxcGYw?=
 =?utf-8?B?dWhZSytIZlpacDBXOGJOQXNrZ2VnU0hQUnFxN3lpdXNMWFRJZmcyazkzNDEr?=
 =?utf-8?B?S2wzV0NwTXh0dUlkdW1GMFA3dmNjRTRneWxGRzJOa2lNZ3YzUDhPT1FLY1JL?=
 =?utf-8?B?SVgzUHFhMUJuUUxPa3VTRDNtL0RmYUxpVnJXUWgrVWpXdmo4QVVhOU1MVG5Q?=
 =?utf-8?B?UjRHZFFkanNwcGZOODI3U3IyTG9QajdCaWhKQ3RsZVlWbHJSazlqU0FVNkl1?=
 =?utf-8?B?a1RCU3ZmMklVaEFzKzdkRi95YUhMUDd3allGOWh5V2l3c29jKzJRYjM3VSs2?=
 =?utf-8?B?M2lScHQ5c3FHZUJydit6YkNBUFpCdVI2QUJ5Qm4ra0hFdzRqc214VVgwc1M4?=
 =?utf-8?B?eXByV0JINFYvZWNzZkFFT3pIaXM3NWplZG5HcUJBN1lZd0lpRlR5dm9oaXN4?=
 =?utf-8?B?NnZBS3Zmd3ZvSnhoTXRISWFweGhqdm9YM1NDSFl0YnJoMzhXWUZ0a0luSFlU?=
 =?utf-8?B?aWQ5UmdpU1RXdjlpMmxLVjhiSlI3a3hTeXlCcGpUQ2hyYmZpbm9oMm5OUlBt?=
 =?utf-8?B?QmVHWEVXMUhsQndhbGxKZkkrUTdyZENrZWxpem1EWjVRZUNSSkdJVmdndG9C?=
 =?utf-8?B?dzA4SHBtNnhOblVUcWJtaG9FdWpLZFhMVUJrcFFJaURyMG1nc0c5NzU3alNC?=
 =?utf-8?B?dDhkbnNRSjA2a1VJU3llK2g4aHcwcU5zQW53ZWFGV0UvdUpab0FKeStBbkN5?=
 =?utf-8?B?RWwwTHU5Z3hUMDhKbk1TcTllUXlFWi9zRTdhUU5KRm1oYmFyYi9Ga3NkR0dh?=
 =?utf-8?B?TjRObVRzMFc0bklwYmEzU3ZkemF6aDhZckhRd3lPWmw3WUxWbitkMHF3cElp?=
 =?utf-8?B?Z0IwNVlRYVorN0RZcmFZQU5FSzRmRDNVdHVjdEJLQ3Z4Y2VCQk11bG9RVnE5?=
 =?utf-8?B?alBKR1o3NXY5Si9aMEJmaVRQQm0vRXUxUVlEWmwxSXBwOGNYWWVpQnlZL3lu?=
 =?utf-8?B?dC9BcEVoaXMzcysrSjNwQ0V6dUo2RG1BdUtMajZsQzNkSUF0dmNBUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2e807831-93ba-4645-9ce4-08deab50711e
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 09:18:31.9293
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: X8MncJc2urXLgo65gPXJrW43LoGig7YA46zunOqXyKBR02XdF2F9cmU+ETxSIyQzwOB6uCwQaUs/qB+lDxMb7Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6973
X-purgate-ID: tlsNG-d62444/1778059116-AD947FF4-F7DDA113/0/0
X-purgate-type: clean
X-purgate-size: 987

On Wed, May 06, 2026 at 10:45:49AM +0200, Jürgen Groß wrote:
> On 05.05.26 20:47, Roger Pau Monné wrote:
> > On Tue, May 05, 2026 at 05:53:31PM +0200, Jürgen Groß wrote:
> > > SUSE QA is seeing a problem with PCI-passthrough of a SR-IOV to a PV guest
> > > running a 6.4 based kernel, but I can reproduce the problem with upstream
> > > kernel, too.
> 
> Uh, seems my tested kernel was only "nearly upstream" (it was an early
> 7.0 kernel). It was missing commit 0949c646d646, which makes the difference.
> 
> So for now this issue will only show up for cases where a PV-guest is
> setup for PCI passthrough and it gets memory hotplugged before the PCI
> device is added to it.

Hm, yes, this is yet more fallout from the unpopulated-alloc changes.
For PV guests that have the e820 host available we could try to create
the hotplug regions over what are host RAM region in the memory map,
as then we know we won't be overlapping with MMIO areas.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:25:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:25:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301382.1575661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYVW-0003U0-94; Wed, 06 May 2026 09:25:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301382.1575661; Wed, 06 May 2026 09:25:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYVW-0003Tt-5e; Wed, 06 May 2026 09:25:30 +0000
Received: by outflank-mailman (input) for mailman id 1301382;
 Wed, 06 May 2026 09:25:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKYVV-0003Tn-2R
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:25:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKYVU-0093iS-F9
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:25:28 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb0903-5cb7-0a2a0a5109dd-0a2a450692ee-14
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:25:28 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb0727-7371-0a2a45060019-d155802fd510-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:17:27 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-488ba840146so54179675e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 02:17:27 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e538acbfcsm31135355e9.8.2026.05.06.02.17.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 02:17:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778059047; x=1778663847; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yERqk4GU8fz5BMwqwtQXTIg+5GfnuBBDmlZ21MAHYxs=;
        b=WHqzj2Ep6u9F0ex/K3oKWSvlInCfV0ixOE9vSco4LKJih59rxUj1YhtJsVN9q8TLS6
         zxbKMqWDotr9JGEH6e3S+JN28R6VTs4WiKDe83HNNdX7mCMvm1OxoXfkIbt3Ci4mF8xl
         0C9LiaU8dPVTQFYZeOaTWJZLz1+b79dhbhcDDOhYPkajeJjf47u+SMTYbvbFNwtylojT
         ifiE0NHoFiVIvvWgZ1CTQ3uLJ+2IXopd41ZtG8LaANQSnrE5GmJHgTLCO2TXTqUpSqHe
         5V3SnlcR/z7d+dDreaqvBtSboTRDO2LmOw+FTV0U+kFclPBdQzoBySl3uuenKcJQaAaq
         kR3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778059047; x=1778663847;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yERqk4GU8fz5BMwqwtQXTIg+5GfnuBBDmlZ21MAHYxs=;
        b=EsAhtNtOwGa+Q04nFxzhwPNTruCFMdZKdoEyLskYqESzKBhhzcLosMzwhL6JgqmzBi
         8EbT9OUJli160zoXBbGy++eA7A2qoUTzhpFAKYxkgGaCFedQHUL+yxNuan5TGwJlY5M/
         4QJG5kNB6jt4oVkoMFV4fOloKi1OaR39m9rOw85KIpQ9OBNcqX6bALxkcB2BvYdINcXZ
         dT4qsHjbP8Uv/ijd8hnaz9fJmLFgGHMlxkHi9fKwtkT+WPyu3QEfoe3w3/eL13h9TqE9
         9759cqxj2SreebjtCYOeCbeBU72jZEojavcNAHtwI60LqpcQmCizmZo1j1XvTKahuE2u
         5xUw==
X-Forwarded-Encrypted: i=1; AFNElJ83fpQtyb4S6dHVx7DY++ZdH52lwgZQsudCnriWbtFb1bzuNnZzX1nYV1DQrHMieVJ+z2/1/r9epWg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzKQHR4n6GZTD5eU34+S0Q/dASKbQ7LANlyNGjsZ5226cMCrBg4
	oAS+2FjD02Zbo5b8E40jGEyDusQoiVAyYC3mcUqIpClXeJFFlDfJW7AArP/5+JT+vA==
X-Gm-Gg: AeBDieuw+6agEn+e+jVCnPP/BvY+j5w9CXTqQ7KoaIzMSw+Cd/KisIX+kpkHtKOrFYp
	3iyMzs2t1xH7XmRcVJDjCbjU0v6ovVUVnmA0a5cbGMThfpEdGkI4HTQ2hm+o9kePobAViZV16nO
	0gzy5x3PUyOMZlS12N1Wstx/8oU+ZYqslScV6aAPhm8Zb6cxGHNdLG26ni+uGSOGv6hMWPVjkxv
	fPtVszsrz6IojUoZncjHKD22jg1/xIWk3D3ErIWGpNxA01k54LtIE3RZyontS+0vPYKZFkDxG50
	S4jPro/j2Je0tt7C/cWd4GHoN7wxluXfVa74TmtqzdTTJtsgfsqyk9MT3bNkB8IZsASkPs8fd7z
	YKzHxPi4sOcm0J7lgF4WMnFSKBA5ko4GQL7bVi2rnFVvPo+9g0Ruth3QR0XlRUZeF8R+XONvqqu
	WRwrbw3BypUZZN5k9x+kYQ57/zNUVNkSbEotY1dl3pz+4lxg5juKL6USCIQJOTMcEedYkWajXzN
	r8KbkeJlQGeNb5jPrM7xCJ9Yg==
X-Received: by 2002:a05:600c:3548:b0:485:3abe:ab86 with SMTP id 5b1f17b1804b1-48e51e0a6a2mr43618615e9.4.1778059047336;
        Wed, 06 May 2026 02:17:27 -0700 (PDT)
Message-ID: <4dc2025e-0eb3-41e4-8bb3-a28b0dc560c7@suse.com>
Date: Wed, 6 May 2026 11:17:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20260506073719.40075-1-roger.pau@citrix.com>
 <20260506073719.40075-3-roger.pau@citrix.com>
 <0035d666-2ad3-44d8-a2a8-e612dfd10503@suse.com>
 <afr_RYYMyJEGkNgP@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <afr_RYYMyJEGkNgP@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1778059047-87F7BD75-ED28DE7F/0/0
X-purgate-type: clean
X-purgate-size: 1615

On 06.05.2026 10:43, Roger Pau Monné wrote:
> On Wed, May 06, 2026 at 10:28:52AM +0200, Jan Beulich wrote:
>> On 06.05.2026 09:37, Roger Pau Monne wrote:
>>> @@ -1381,6 +1372,11 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>>>      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
>>>          return -ERANGE;
>>>  
>>> +    /* Read current control register and forcefully disable the IOMMU. */
>>> +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
>>> +    disable_iommu(iommu, true);
>>
>> Don't you also need to pre-fill iommu->features?
> 
> Indeed, that's done just ahead of this chunk, in the
> get_iommu_features() call.
> 
>> And with that field's use in
>> disable_iommu(), won't we be at risk of leaving stuff enabled which we are
>> entirely unaware of?
> 
> Possibly, yes, that's always a risk.
> 
>> Even if we fully cleared the control register (which
>> would eliminate the need to fetch features), down the road a 2nd control
>> register could appear.
> 
> We do clear the control register, it's indirectly done by us setting
> iommu->ctrl.raw = 0 after the disable_iommu() call.
> 
> I did wonder about just doing a write of 0 to the control register,
> but I think it's best if we try to gracefully disable the features (as
> done in disable_iommu()), and then reset the cached control state to
> 0.  Future writes to the control register will clear any bits not
> directly set by Xen.

Maybe better to explicitly write out that 0 right away, even if you want
to keep using disable_iommu()?

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:25:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:25:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301387.1575670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYVs-0003sE-H3; Wed, 06 May 2026 09:25:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301387.1575670; Wed, 06 May 2026 09:25:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYVs-0003s7-De; Wed, 06 May 2026 09:25:52 +0000
Received: by outflank-mailman (input) for mailman id 1301387;
 Wed, 06 May 2026 09:25:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKYVr-0003qc-CU
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:25:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKYVq-0093oj-PC
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:25:50 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb091b-5cb7-0a2a0a5109dd-0a2a450198f6-28
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:25:50 +0200
Received: from [40.107.209.32]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb07f0-c1f2-0a2a45010019-286bd120af98-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:20:49 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM4PR03MB6973.namprd03.prod.outlook.com (2603:10b6:8:40::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Wed, 6 May
 2026 09:20:45 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 09:20:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EvqPwXoDLrhkk+X74SOSuu/s64FsSwTypKH58C3d43I65+f6nAGNzoS6brCv9qNMZ+wa0Z4oh6ufHhC6vrJ1wpJAAtwWFIHE+H6ksZ8VidTUFrdpUpIXYaD8giGM5ZdczdxxqoVZ/TattXW/CaBXVpp/bi9dEabaiKbbkMB2HH3yQmrgQ7BmESpFBEW6XJVXFvpsrb+0xNnORaGLM0JzoEeoZtjQN2/rCmGZ5qrzqdNua3U1vfRpWxfv3IZEVjqcu0V9iG8JMt3SKdBL8wc4/ITRXh4k9adDMhrh3xB2madzv4iVo1QePaFfw84KLZJcjuqyRFPsXMM2oAoOExFXBA==
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=YPHHiUiuLqgfish+YgdymKrKWY6+zChykta0zLxzCAs=;
 b=B47ioxsamy78zfe4kB/dOpo/+HXEYA9WwwZHWVKKP7bsjg64WtOl9aIC/yvYhzF12Yuusnj0shLVl6fSNLpeprm31hiI5iQQNEbnUys0jMkw9ujPRW5gGePLBrwoRBsiH44JfuT/qinteLdO3KaRYm7nvqfuyPmZp+fi1KslAaZ6LzRnAyOx2LFgdeqviK/40lEafCW1TSBc3KgUoFNAeU9a7fBEpgE8L958sug4FMz+nmtp6iya06NsvYnc3rwYFEkHHXW+CGhLz7O6KXXc8zNpWt/vnFDgSB5bfKxCMv7ovMqfCgVesqtpNi1znlaaBceF7PGa1aT4oy1eJNlk+g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YPHHiUiuLqgfish+YgdymKrKWY6+zChykta0zLxzCAs=;
 b=Fv5tDRbDnmdjDrhqhkyU6O9K2zA6zJBNu0dz6Qfcs0kKagN3zRpYvgmLW6AGRMJMYpPJZp8GUrSfQmNQtOJfF3bYciq1TePJiypbZLhzX0aA4b5+O3edFgMtuDVnSIwSCuubgtZhEjw3zKz0KVWDXI3cP5rFc+h2IqDjtQ+adBY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 6 May 2026 11:20:41 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
Message-ID: <afsH6bwxikesmNOk@macbook.local>
References: <20260506073719.40075-1-roger.pau@citrix.com>
 <20260506073719.40075-3-roger.pau@citrix.com>
 <0035d666-2ad3-44d8-a2a8-e612dfd10503@suse.com>
 <afr_RYYMyJEGkNgP@macbook.local>
 <4dc2025e-0eb3-41e4-8bb3-a28b0dc560c7@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <4dc2025e-0eb3-41e4-8bb3-a28b0dc560c7@suse.com>
X-ClientProxiedBy: MR1P264CA0007.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::12) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DM4PR03MB6973:EE_
X-MS-Office365-Filtering-Correlation-Id: f65d2f68-36af-4d65-37b2-08deab50c071
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	qmG+REW7Xdw16DFBgf20b3eQCr/JoFCHSYCnANY660H4rPkWJjo/rNat/MCdHFh5b3hxHIIsM6xtsJIq6vUJbxfP5ttOjm7A51stSVsF9fPg/jY/tx+3b8Cp57S/+RL8cYryxdWugZjJ3BCxAB2BcruADflK/MS0WP3BJjZAe24kJZ1e0GdesXnFJAWUWNchieuWA4cmCBxYxUhzQjw69R6LJVGBKsjNWZC+/ISa0nw5hAqo1mDfbQVSs0OqNPPbMSyxIJL91OjfuB81UDnkjHQUO0HVsJlzGPDOD1Qwaj/Et/9cuy7nDqNE8h/aHMC5cAF2zay2CBrf916eZ1M6hOwgEjXq0TsYmUUqUJwSZ1vat7iy+1WcQP8yl2l6hYaDQT9YnhHJBOpPi/c+WCTPxlbWd2Ox0Qm3MZOGR+FN8/wV0/moWZvhuRdyFiYWWmVYDB75RQXyKpDDlTk638UKX5l/YOc5E4bbazzjS9+mSfSz1HoLxo/hBtvDakVYHzGmAGnLy9PPxlBcrUniN920DdQIJvDTqSPLUWdxWckLjUJ7m6T9/LOCSVZyfVe5Ja5SA9zTSxLF3ie3Ffq0pO/oJSemhOJ2nbLOdIBbJykBJURhMrRMFMw1aztFSGjQlFZPGq6fDde/nWjg/3LPaqDqLe2fA5yJcGzoj6XwFNzfULp8uWa/9R+ycOt8VfovkXKJ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RjRBNnRzR1NsUTdGRFlMUy9UNlBjWU1OaldWell4bFVISFpvRTd6SkdUOWpQ?=
 =?utf-8?B?UkIzWDNhVXMwc21kOGtRaWs1Znp6WjNJS3YxY3lETWlUYzljaFhFVnBnNlVK?=
 =?utf-8?B?QTU0b2N2eE45ck1yTEwwZDZRWkljK0J4dlVuczg5QUxGL3BVcHBoNFpsbW5R?=
 =?utf-8?B?dUZLaEFXUVBvblJQcU9qWDZMWVI5aWtwRzhGVGxtWHhMb0w4d2tmWjhDTWJD?=
 =?utf-8?B?VWorS0RsZW90MS8rcGpsSVNzY2R3dmtleUdMT1NOMUh6YS9VQVFTODBWV2Qv?=
 =?utf-8?B?SEZZOXI0aXNvU1JBdkM5aW05WFcrQnJCaGZBbjA5UWQ4SWVwVkViaWNvKzVO?=
 =?utf-8?B?VVFhdFNBQW5DR0doTTFXKzRoS0tBbE1STGVoUkJyOG8reVRQTmdablkrQ2hP?=
 =?utf-8?B?aHYzdTJ3UkxTNXhzdVZBM3NsTURGZG5nSUxtejdnb1NvbGhSQU5DWGVnRVhF?=
 =?utf-8?B?cDJyL1gxK2lKYU1wRm5QVHE0dHB5elhHbUlUZmJqNFV1UHhNclhIVURBeTBY?=
 =?utf-8?B?NFBvTWQySFJDMFlmbHNaZWFYd1lBUk1QakMrYTFtQjhQSVBlMitVWVJzNDlq?=
 =?utf-8?B?M1BHVnQzZDgrSzRBSnRKVDhZdGVKcmhDWTJ5NlpxQ1VzOUUrdWt4UVRIdCtG?=
 =?utf-8?B?UFJjbHpKT3g4NWFqYXRJU2tNWGVKWmJyMUlrbU9teDFyN251S0lmZE1xeVNy?=
 =?utf-8?B?SU9ESTRzeWdlZE40NUlIKzZUb3E1NGllc1ZxTlBRZ2ZOOWMvSUo5b1VxQ1Bp?=
 =?utf-8?B?UFRDbG1zTEZ2K3U1dUNnR01YcGU3NVlVcmNtNVZoMm1VR0pwcFBVL2RIZ3NY?=
 =?utf-8?B?MXBwNUN1N1EzSW1WVDVWcnRPc0FVZHg4eDgyNjd3bGozSVYzTEZleHd1STk2?=
 =?utf-8?B?aGlkMmxnc2twZFBzSjNpZnJpUkhWUXRvRGh1cjh2WUhFTGZzNlVJbzZZUW9U?=
 =?utf-8?B?TGlBZzY4NjB5TGlVb0V2azVNRndxWGwyQWFQMW9LZGorTTJCT2JuS204K0Zk?=
 =?utf-8?B?anBMbFFtM1VpZHl6N0swZ21xNTZDOEczZTBxZ3I5UDBWc0V0bTBRR1ZEUGVK?=
 =?utf-8?B?R1pXRUVLVllKNkhFTm1WRVJTZTNaMnFsWkpwZ1BOWUE5V3Z2TTdNeHEvTVd4?=
 =?utf-8?B?MlpZazNra0pjMDR5ZkR2UlpFdy9seFMzTmg5YTZOTjBJUWszVjZjbStzVXow?=
 =?utf-8?B?cEwxVmZDTEpUNGQ5ZW45aWFwWENleDlodTZFbkJObVNaaEVjZTNINHNkVHBQ?=
 =?utf-8?B?SE11OFQxTlYyaGNsd0ljMk9ybXFyQjJWOWhESzlseHpHNjJHQ3htSWNzQWRy?=
 =?utf-8?B?RGRsVGxLdGE2YXhPdTRTR2hvVElpMFREcUJZMHBnRTdZRjlMaWxMalVwaUg2?=
 =?utf-8?B?V1liZUJuK2JtcUZLL3dJVTdMVVlmeVNMT3YxOXpSWnU0SDlpUTBUMktMUHRy?=
 =?utf-8?B?SFJtQzFHMDhteThuRmNETXdVai9MTFpLQXZ1K0JUMGxuanFtUytqSmFSemJu?=
 =?utf-8?B?ZE5OTXRBVVB2Z0R0Y0pZNEtmTTBLY01DUm1kVlNHZHlFNnhaRy84S1BFTnlD?=
 =?utf-8?B?VlNnbFVyZU9oRGEvbkV6Z0gveDZqck5HNXJJNVQxSXBYNVVsTm5aRjNHaVR5?=
 =?utf-8?B?V25EQ25waGtTbDJsQWpKQSsxZm5OTWZvWUVZQjFuaElQbWdqeU01ci81eHVm?=
 =?utf-8?B?ODkrbERGNmg2YWRxR0JBZW1Xb0xVdVZoblJXTGZYckxmZWxMRGJQZ3FWZjFR?=
 =?utf-8?B?OUV6aEs5V0h5d3BRVE9PbjNKZ2ovZXBZa0U2OXZ5OGp2MmQ3STlHaVlSWXpY?=
 =?utf-8?B?c1JsV1JuOG9KQVBOcTNFQUVzcUZ2NG8xT3BTd0V5QWlVUEt5eFVjUExKV0lO?=
 =?utf-8?B?QTVVTnhtb08xR3hYa3JoTkpvWkQ1SGNybXN2RjhPNDFoYkJwUE9CT2JtWW1n?=
 =?utf-8?B?V09HRWJRM0VncFBqLzBnUTZGaTNKQnBadzYzTFRLMzNxcUhXZ1hWTmJLSnBD?=
 =?utf-8?B?ajdNV3hZYUNSeHdYcjFJVVhRTEpsTy9pRmZiNzBidVE4ZXFOWmxEc2IxUnhQ?=
 =?utf-8?B?UWhvQVg0V1h6Rjg3ZFN3cmJiV01nVWNWYWZHQnJlUFUrcEN6ZmFmWDB3RTF4?=
 =?utf-8?B?QUhCTDRubFU0MHRRSEVVZVRJc2kzRlpoM0h6eUVsOERPQ2wvdnl2M3o2Nk5r?=
 =?utf-8?B?VHJBRDN6cVdObThMOThRaDFpQ1VaWUpkR3lWMHViRTJ0MXRWU2tmbWpOdFBG?=
 =?utf-8?B?b0RHZUtUMVVyMmJjdGVHbXJNVGZEZlA2ejFnMDBJT3htdktTY0xnRGJNS1NJ?=
 =?utf-8?B?alZodzVEVHd5aFVlenVuZVg4cWlFdkRiL1ROVFFsZGNyYzQ1Vm56Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f65d2f68-36af-4d65-37b2-08deab50c071
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 09:20:45.1070
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: S7thLg97/ZzfMN9G0ngc6BwkYXqWKYEMIVsoZ/w2jiUjuuGIevNddo9y33JUJobzwt8Vliluu3BpKK60jNiA2Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6973
X-purgate-ID: tlsNG-d62444/1778059250-AF754FF4-78E74CFE/13/0
X-purgate-type: clean
X-purgate-size: 1970

On Wed, May 06, 2026 at 11:17:25AM +0200, Jan Beulich wrote:
> On 06.05.2026 10:43, Roger Pau Monné wrote:
> > On Wed, May 06, 2026 at 10:28:52AM +0200, Jan Beulich wrote:
> >> On 06.05.2026 09:37, Roger Pau Monne wrote:
> >>> @@ -1381,6 +1372,11 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
> >>>      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
> >>>          return -ERANGE;
> >>>  
> >>> +    /* Read current control register and forcefully disable the IOMMU. */
> >>> +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
> >>> +    disable_iommu(iommu, true);
> >>
> >> Don't you also need to pre-fill iommu->features?
> > 
> > Indeed, that's done just ahead of this chunk, in the
> > get_iommu_features() call.
> > 
> >> And with that field's use in
> >> disable_iommu(), won't we be at risk of leaving stuff enabled which we are
> >> entirely unaware of?
> > 
> > Possibly, yes, that's always a risk.
> > 
> >> Even if we fully cleared the control register (which
> >> would eliminate the need to fetch features), down the road a 2nd control
> >> register could appear.
> > 
> > We do clear the control register, it's indirectly done by us setting
> > iommu->ctrl.raw = 0 after the disable_iommu() call.
> > 
> > I did wonder about just doing a write of 0 to the control register,
> > but I think it's best if we try to gracefully disable the features (as
> > done in disable_iommu()), and then reset the cached control state to
> > 0.  Future writes to the control register will clear any bits not
> > directly set by Xen.
> 
> Maybe better to explicitly write out that 0 right away, even if you want
> to keep using disable_iommu()?

Yeah, I also considered that.  So after disable_iommu() set the cached
control state to 0 and also zero the control register right there.
Can do in the next version, unless there are further objections.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:27:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:27:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301399.1575679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYXH-0004Wu-Tz; Wed, 06 May 2026 09:27:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301399.1575679; Wed, 06 May 2026 09:27:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYXH-0004Wn-R2; Wed, 06 May 2026 09:27:19 +0000
Received: by outflank-mailman (input) for mailman id 1301399;
 Wed, 06 May 2026 09:27:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKYXG-0004WP-Ke
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:27:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKYXG-008BSD-1T
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:27:18 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb0969-e002-0a2a0a5209dd-0a2a4509e890-32
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:27:17 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb0975-2497-0a2a45090019-d155802be853-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:27:17 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-488ff90d6c7so58591255e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 02:27:17 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e530c5c89sm12408585e9.13.2026.05.06.02.27.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 02:27:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778059637; x=1778664437; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=t6MioergbvV9Lj3spGhq0jlNnllO4Gf3MbTVU2pA/ZE=;
        b=YVC/maTHkgCFk0wRDn0lW+H2RE1+n9r+BCnj7LRE2lKOGWDvL/XmUNC/h8Z7bmbUjN
         KgCNX4yh+wFEhCEk745uvm0D+tXlQj9sjqgTYcTS9AJCA020vzkwlxgrI0P6GfdhW9RO
         xPmSDu3V0f3LUj5wkFuH6fG565bbGuuw+8mIejLcSJoLX9MoP6Cp+f/t5KP80yX/pWy3
         zEWY7EAjerdTImmjbOidm9lLkASCmakcxLtHvvBUB9wyYgX+msaYnL0qN2YbPMMF7NEN
         FSN+NmiDgvNmj/aGI2/pJoajmmJoktKxdqRo38V+yiD9i/cQ3mrQSrZPR3x49tPMECBr
         othw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778059637; x=1778664437;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=t6MioergbvV9Lj3spGhq0jlNnllO4Gf3MbTVU2pA/ZE=;
        b=p+qWImVbXimgOCCnxup2fZYsTS6oMrtgSfqreBQ6ntBtBCpm9uSKP7ol+BD7bFOEQe
         rtsfh98kTYOl4BqVuSHI8LQQPj9yDIfGgSDU3roIpq0tKjHECaJhkW7MzU/mCx+Fd1Sf
         +U5yNJWH+84gBKfJtWOY7QMfFFx4T7WWEyx5CzOMGXZONujRoi+Ww++LvjZcmzXF+AXw
         faZbMUTze/Ja4SgBGST3aobMmYcXVFzrlhvlpk/JP6WjHYY9Z50UT0apy4ntK6H7i1dw
         GbuT6k8WUM91JFPrybRZTf2ylFK1RFL7ey/GvCZwHH2XoqKkyiOzQianyr3SlC6SqKQk
         EpwA==
X-Forwarded-Encrypted: i=1; AFNElJ8gNV5enJTXHmEE1nbwgdoEebBrFz8nrYgMMH7acKmHYiMLTH1o5NQaASv2U4L+fyBM88WCNmvJOj0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy4zFaIwdS41SGlqyrTEl0MJcrlIIXA8yYZA5qpWxr6nId1jaut
	WJhQ4VnuQcISTD97nvnHFSbVHDEwAIJn2cnKXEJykQbA1EoGD5d1+EQs0Db3ZTwR2Q==
X-Gm-Gg: AeBDievcstNQn2Wa32BHrCrvsvdNZ7obI5tKuiA5uUMlb4D3Ni/L7RP7WeIF+9PPhyb
	yNV/l2VBDDzH4bj4VyWWE5C+ZE6hLKZWwkJKNX2fhQ9XrV12IW2yLn96AczSk3Ee8dezlA+C77A
	ucgG2zgqbFwOBXZy3ye5Ugs3xF7NWbm2MUO4KNk5mM6IZbf5rhk4xf/u2dhXqZnQ+fkyrO3Ve3F
	299MUtvV4thWurmuV7Yc8P0Gzm3dzBW7WG6yUkMaKx9cshUdkIzzczRAYR9Moy62xzKUmQm2FoT
	s3JWdw3gA4kW2WLtlFgXuFDE9JxA0Fzx6WwDjlxpURJppmerE6e7SojiAOFidIBm83WJLTtzzZd
	WfRdw4coQ+fAytuOX0zd+Liitd0ntfi1FYHrBvxtLq7Ae3ERgT0YzcXGtsRm0aWD1qNH0UCWGVm
	3AuVCAQv7qc6jGxK93eOOEDLESJ9cANEeydcbXIXUvE8QC3keFqEW/5IA008QdUHvp6ZQkXSCUT
	bB4ieTkt8Z20BLeNZ4ZurKBVw==
X-Received: by 2002:a05:600c:a305:b0:48d:361:4df6 with SMTP id 5b1f17b1804b1-48e51e19680mr31228675e9.9.1778059637254;
        Wed, 06 May 2026 02:27:17 -0700 (PDT)
Message-ID: <266af4e3-fbb7-4e2e-a4ae-933c20867b44@suse.com>
Date: Wed, 6 May 2026 11:27:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Teddy Astie <teddy.astie@vates.tech>, Roger Pau Monne
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260506073719.40075-1-roger.pau@citrix.com>
 <20260506073719.40075-3-roger.pau@citrix.com>
 <41ec5134-b117-47ee-8e59-682ac1e4a69f@citrix.com>
 <1d771706-35b1-4d6c-bcd8-a3bccfa825f3@suse.com>
 <b1fb3f1b-9f83-4007-9854-6cc6d698876b@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b1fb3f1b-9f83-4007-9854-6cc6d698876b@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778059637-41B68A53-A2277708/0/0
X-purgate-type: clean
X-purgate-size: 3029

On 06.05.2026 11:02, Andrew Cooper wrote:
> On 06/05/2026 9:32 am, Jan Beulich wrote:
>> On 06.05.2026 10:20, Andrew Cooper wrote:
>>> On 06/05/2026 8:37 am, Roger Pau Monne wrote:
>>>> @@ -1367,11 +1355,14 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>>>>  {
>>>>      int rc = alloc_ivrs_mappings(iommu->sbdf.seg);
>>>>  
>>>> -    if ( !rc )
>>>> -        rc = map_iommu_mmio_region(iommu);
>>>>      if ( rc )
>>>>          return rc;
>>>>  
>>>> +    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
>>>> +                               IOMMU_MMIO_REGION_LENGTH);
>>>> +    if ( !iommu->mmio_base )
>>>> +        return -ENOMEM;
>>>> +
>>>>      get_iommu_features(iommu);
>>>>  
>>>>      /*
>>>> @@ -1381,6 +1372,11 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>>>>      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
>>>>          return -ERANGE;
>>>>  
>>>> +    /* Read current control register and forcefully disable the IOMMU. */
>>>> +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
>>>> +    disable_iommu(iommu, true);
>>>> +    iommu->ctrl.raw = 0;
>>>> +
>>>>      return 0;
>>>>  } 
>>> These two things are unrelated at want splitting into separate patches
>>> at a minimum.  The removal of memset() critically needs backporting.
>>>
>>> As for disabling the IOMMU, I'm not certain it's wise.
>>>
>>> Linux can already "bring up" an already-live IOMMU and Xen needs to gain
>>> this ability in due course.  This is mainly for supporting PreBoot DMA
>>> Protection, but also for things like the kexec environment.
>> While I agree we would better support this, as per my reply to Roger: How
>> is that going to work if the IOMMU has features enabled we may not even
>> be aware of? We'd still need to blindly clear everything we can't drive
>> ourselves.
> 
> Zeroing 16k of unknown MMIO is completely unreasonable.  It is not RAM,
> and 0 is not a safe thing to write into an unknown register.

>From a very general perspective I agree. However, when adding new registers
(or new bits in existing ones), having them default to 0 (and hence making
0 be a valid value) is common practice.

> But to the AMD IOMMU specifically, the spec makes it clear that there
> are registers configured by firmware that we are expected to leave alone.

Well, okay. For firmware settings I think we can assume these would indeed
be settings, not enables of any features which would typically require
driving by an OS. Yet that still leaves the question (along the lines of
what I had raised before) of how we'd deal with being invoked with unknown
to us features enabled. We need to disable them, yet how do you suggest
doing that without blindly clearing most (if not all) registers? The only
clean way of doing that would look to be a "soft reset" command to the
IOMMU (of course not to be issued via the command queue). I'm unaware of
anything like this, though.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:28:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:28:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301407.1575687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYYl-0005Ig-7w; Wed, 06 May 2026 09:28:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301407.1575687; Wed, 06 May 2026 09:28:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYYl-0005IZ-5K; Wed, 06 May 2026 09:28:51 +0000
Received: by outflank-mailman (input) for mailman id 1301407;
 Wed, 06 May 2026 09:28:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKYYj-0005IR-KI
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:28:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKYYi-00H8Pc-Te
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:28:48 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb09cf-2eae-0a2a0a5409dd-0a2a4504d74e-2
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:28:48 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb09d0-1dec-0a2a45040019-d155802abdd2-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:28:48 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-488b0046078so54061365e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 02:28:48 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e5312de76sm12355285e9.21.2026.05.06.02.28.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 02:28:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778059728; x=1778664528; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sRKvRoh/wBspl5jeFTSO1nMsWuXd1oDw5oWMaPZp3V4=;
        b=FV/PpVOwx970c3DugWfkP7EJM6vmbKLYdgFiH5ulQo5KASJ2GwfHLNgoSzEiezfO7N
         urbWAh+ibEnxGD7UYxK0omarlovXbWgHlTx11EKw7Gwy9G44H6Rd0xcDc0DBzuOMaQ1X
         /5ZopeSmDvN7aV+7L/zSTUBuH8qb6ca1YscgTmjtUB02SBphM+wst5V4QsKQFhFOOPhJ
         qjXpAjo5Sckr2EMORgHta5ivfMm1u2L60gZeSGJy2hRaOb+xST5Bj3YHP/p9CsrZEtO5
         8L1LTXCVCafa+/CXRN43mB/i4J3+0rRwFK2jXgGt7t/FNmBZFDe1VC2p49JjzRsiwzjy
         VdXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778059728; x=1778664528;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sRKvRoh/wBspl5jeFTSO1nMsWuXd1oDw5oWMaPZp3V4=;
        b=bYcYw2XSMC/PX1a560EMy2ED2An00Stb0tbgeb33px2YzVTyXd64LiO05oxwYKqUPP
         hNXE+9vWi+V1uiW5NYMmnFl3ADACna8iqQxn5BctPNXT9zqc2C8UteH6iOpte2w7sIHb
         9L3IHsZc//zJyMk4wqjbqKmT5hdG4dEatV/fwyBSezSTLnqqJ5s3euEjVrF7o6yQTM0E
         hADyKtgS/uPzH06JMUKAOoCiMDyN8kam7b5X14y3S3LQjUiR6IF4FmE5hbrwrCL+QCL4
         Op74xYZH476V9/f155XdyDPiqkyYfhaofGND6H93mdsrW88ghhi1JGjDEnxNXsE4X5tM
         fT1g==
X-Forwarded-Encrypted: i=1; AFNElJ8itAd99kLqA6QwtLEUOV9Qu2lZaOkXuB8DIW/sQC+GibjuqN7vjUmOiQnmiAWiQ0uf/v5Rc/nLX3w=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz6m7vv1i25dSUeo5VT6EPUkuM84PPyUHKkuLrsuJP99Qnha6t4
	dO20cVXayi07LWYENK/vtCVbAuaQPWOcge2i145L7z/zc80ZDtuaPLgTspJl2/cOuA==
X-Gm-Gg: AeBDiesavsLgXGJCvdmHldhYSTB0WxPaGaVzOpSGEZiraPUV6F2Co2ktDDghHZoQopV
	Opr5XwcWML2F7w+GR4ioWZrhNWidMdjA//hVkRtOZ86XKzll7532JHmkORtxkF1y3OvhgIfUEH2
	zsIRP5hPjDp7BgGkvBrmwM82ex+cMUqV4qcuHStfbbTXs6/tSDUBNnhKAaeYnY1wSbCOr9nEzV0
	9nV9Sr8ww4x7SitGYYFzFJmpUR5+AuutfPUnnYeZ/Y4ojWJAkAmdw1TfkgupdkmIyB01DVqiFyI
	mgzzMpMpKA5MJn2MWGZtRnj0wpJz6wpMa9l8PBk5S4RZu99QMHRh4GUYNBpJWjuUk3UQer892Wh
	r6oyNR93PivUJ2qcsdKId3Krw5nlGZw6RvPPSfgscWCdiPiRI2m3dIOUpitISVG2EZms1is9pU+
	bTJWvqXCCbZ0l5iZmnSe3w17k7CIWfmJWoAgTqgwE+RI3YmWSdo5lykFVDR12aofrLaxf/cdIkc
	6dXFvxP/74Ynrnk/O/fILgx+Q==
X-Received: by 2002:a05:600c:a30a:b0:48a:58ae:9938 with SMTP id 5b1f17b1804b1-48e51f37f28mr31294835e9.19.1778059728239;
        Wed, 06 May 2026 02:28:48 -0700 (PDT)
Message-ID: <37e3f81b-927b-4e58-9f8d-83086e35fe39@suse.com>
Date: Wed, 6 May 2026 11:28:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20260506073719.40075-1-roger.pau@citrix.com>
 <20260506073719.40075-3-roger.pau@citrix.com>
 <0035d666-2ad3-44d8-a2a8-e612dfd10503@suse.com>
 <afr_RYYMyJEGkNgP@macbook.local>
 <4dc2025e-0eb3-41e4-8bb3-a28b0dc560c7@suse.com>
 <afsH6bwxikesmNOk@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <afsH6bwxikesmNOk@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1778059728-2A9623FF-4246A0B2/0/0
X-purgate-type: clean
X-purgate-size: 2130

On 06.05.2026 11:20, Roger Pau Monné wrote:
> On Wed, May 06, 2026 at 11:17:25AM +0200, Jan Beulich wrote:
>> On 06.05.2026 10:43, Roger Pau Monné wrote:
>>> On Wed, May 06, 2026 at 10:28:52AM +0200, Jan Beulich wrote:
>>>> On 06.05.2026 09:37, Roger Pau Monne wrote:
>>>>> @@ -1381,6 +1372,11 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>>>>>      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
>>>>>          return -ERANGE;
>>>>>  
>>>>> +    /* Read current control register and forcefully disable the IOMMU. */
>>>>> +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
>>>>> +    disable_iommu(iommu, true);
>>>>
>>>> Don't you also need to pre-fill iommu->features?
>>>
>>> Indeed, that's done just ahead of this chunk, in the
>>> get_iommu_features() call.
>>>
>>>> And with that field's use in
>>>> disable_iommu(), won't we be at risk of leaving stuff enabled which we are
>>>> entirely unaware of?
>>>
>>> Possibly, yes, that's always a risk.
>>>
>>>> Even if we fully cleared the control register (which
>>>> would eliminate the need to fetch features), down the road a 2nd control
>>>> register could appear.
>>>
>>> We do clear the control register, it's indirectly done by us setting
>>> iommu->ctrl.raw = 0 after the disable_iommu() call.
>>>
>>> I did wonder about just doing a write of 0 to the control register,
>>> but I think it's best if we try to gracefully disable the features (as
>>> done in disable_iommu()), and then reset the cached control state to
>>> 0.  Future writes to the control register will clear any bits not
>>> directly set by Xen.
>>
>> Maybe better to explicitly write out that 0 right away, even if you want
>> to keep using disable_iommu()?
> 
> Yeah, I also considered that.  So after disable_iommu() set the cached
> control state to 0 and also zero the control register right there.
> Can do in the next version, unless there are further objections.

Well, as said - I'm wary of fully dropping the memset(). It may help now,
but it could easily cause issues later.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:34:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:34:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301415.1575697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYdl-0006pG-Qd; Wed, 06 May 2026 09:34:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301415.1575697; Wed, 06 May 2026 09:34:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYdl-0006p9-Mv; Wed, 06 May 2026 09:34:01 +0000
Received: by outflank-mailman (input) for mailman id 1301415;
 Wed, 06 May 2026 09:34:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKYdk-0006p3-3Y
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:34:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKYdh-006gnA-BA
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:33:58 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb0b00-e002-0a2a0a5209dd-0a2a4502a5d4-20
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:33:58 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb0b06-af86-0a2a45020019-d1558036f09f-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:33:58 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-488d2079582so64398205e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 02:33:58 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e530c5dfcsm12453875e9.14.2026.05.06.02.33.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 02:33:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778060038; x=1778664838; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=PXWNMrUVa51sas0XdmNTrZim2kn1qfg9gibF1kA5Jxo=;
        b=GGBhialxe+IXQrfh1nPzkX5U/hlmlRX/SarraT/IJpYxJCcYiX5XObT0Nu4Z5RFnVt
         How1ElnPnhGHtAtay6bcNCy16xTSVwA3T2a7skzcLw0yjh+1WuXmd6dXkS3C43sJMZnT
         q2nt48fDB+GRCeewQ6OYYdiwe/NRZCncRiB2XfS3wBfzTsF9kCKRPSdh6Hm5wzwvA+cb
         jLYQ4LuDhJVCrFd7l5DUfNXIcFDCXYheOhY3POEq7C89rt+9V5SQ3q9pr1TXWlKXU6HF
         +mTtkNlpiwcx4b8XeXiMI37IyS+dvNSHW32/ZTVSP8TGRMEoJETiPuN6ut0EYYCpagog
         j0xw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778060038; x=1778664838;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=PXWNMrUVa51sas0XdmNTrZim2kn1qfg9gibF1kA5Jxo=;
        b=jQNn1s1/mZxLb/tKkwLVUzSitIkVJzN24yuYgUFvzfXPZX9C87x19JMFyjYyn4Fien
         Oqea7+MsXfxPwTaQ8AJDQtQn8CtpTkV5gJjZVIZ+KjNGjisl/jT5vsT3zXpOc/mGxPiW
         DoBVN5SUIfspLQ00XK/IX3wUdMqLK/gz5lwQaGPdCaxv6xYVDyMJKCHwx13t115DnxuK
         eD9yhX2uIrlGD03lXtudUDjKpovGR10lO/xEN9SV3g4YfI4LbdK0royXWSTLkGFqA5vC
         c0oDIUpopFweadIxdtQ3oVUortxhZMktoReVOFrx3XtDZYKp8SRyT3CyaoP3GC7Ou+1d
         XlPA==
X-Gm-Message-State: AOJu0Yx5GXz8LQ7r/WSPPy+ZGE778stsg4jTZr+cmXxQPro3TSTfPo2v
	3UW30wLl9AO2twujLqNx9bzohIkxQRTWHM1AIvCKhtcMdyop9wBhm1y35v8209yToes5NGVkxuj
	8buE=
X-Gm-Gg: AeBDieu1nvkbbl31Vc/Yh2VxMboO3tT1cwWY1H8/LMdt7ZYgNToMGgIs1+OBAATXhvq
	eOMuJ2ZB9V54o4t4tYq8U13zwZY1vaGpl9qvzGoTto8VB7dC/SgrSd8h25RQjdb0/dcG5qbj5H/
	WHxDVEOwLlfVElygHFyJoThOpnwOe0QWWiXsbuBcDlY0FyAM4go2pRyPhV0uC5rZpHDbaSq3jrq
	zxPpleIErXQtOA0jELMlWbZAcDBGpX7DAQN0lgnekuPiUU5be2gbqKU31f/8mS02S+BZ8APSmdS
	wHk68PiImuvtRjgXf1f3ZMngPGpvZ0olPRsTj8WdTUxp8qG2BU1aDtLexG5i4itSoiiJsFj+QZR
	mj20RRm8L9rkitKRHSuA8cP5CCPeOOj6sKPe2OGWWxlc0uWXhvjW9PEdTk5YZtuckGboW1BKgyo
	ZxKTKpN3TF3xrRL+Ot2oQw2swDrTprXXFXIPX1YFiYXKry/y/rDvifVF8RRdjEaqpHJFJjmsPnR
	nf7oZlmDxU8fO+ysxBkR6aIYg==
X-Received: by 2002:a05:600c:8011:b0:48a:80cb:1bb4 with SMTP id 5b1f17b1804b1-48e51f3b00emr41895225e9.22.1778060037832;
        Wed, 06 May 2026 02:33:57 -0700 (PDT)
Message-ID: <95a2bc5d-c551-42f1-8f65-9f8db4100fe6@suse.com>
Date: Wed, 6 May 2026 11:33:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/time: make early NOW() uses slightly more precise
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1778060038-82F6E161-CD531B69/0/0
X-purgate-type: clean
X-purgate-size: 1437

For early NOW() uses to yield sufficiently precise results (scaling incurs
some error, which grows with the delta being scaled), init_percpu_time()
wants to have run as early as possible. With 93340297802b ("x86/time:
calibrate TSC against platform timer") having moved the invocation of
init_platform_timer() from init_xen_time() to early_time_init(), this
other call could be moved as well.

Moving, however, has the unwanted effect of then growing the gap until
time calibration runs for the 1st time. Therefore keep the present
invocation, and add another from early_time_init().

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -2597,6 +2597,11 @@ int __init init_xen_time(void)
     /* Finish platform timer initialization. */
     try_platform_timer_tail();
 
+    /*
+     * While early_time_init() called this already, call it again here to
+     * reduce the gap until local_time_calibration() gets to run for the
+     * first time.
+     */
     init_percpu_time();
 
     init_timer(&calibration_timer, time_calibration, NULL, 0);
@@ -2642,6 +2647,8 @@ void __init early_time_init(void)
     set_time_scale(&t->tsc_scale, tmp);
     t->stamp.local_tsc = boot_tsc_stamp;
 
+    init_percpu_time();
+
     cpu_khz = DIV_ROUND(tmp, 1000);
     printk("Detected %lu.%03lu MHz processor.\n", 
            cpu_khz / 1000, cpu_khz % 1000);


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:35:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:35:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301424.1575706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYfV-0007Jo-3m; Wed, 06 May 2026 09:35:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301424.1575706; Wed, 06 May 2026 09:35:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYfV-0007Jh-0m; Wed, 06 May 2026 09:35:49 +0000
Received: by outflank-mailman (input) for mailman id 1301424;
 Wed, 06 May 2026 09:35:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKYfU-0007JZ-1A
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:35:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKYfT-008DZC-Cn
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:35:47 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb0b64-2eae-0a2a0a5409dd-0a2a450badd6-38
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:35:47 +0200
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb0b73-212f-0a2a450b0019-d155dd29c5a2-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:35:47 +0200
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-445795cf6f1so3825595f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 02:35:47 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45055e2d3d0sm10670559f8f.34.2026.05.06.02.35.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 02:35:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778060147; x=1778664947; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=L71mztXwVFtsnyfyfV2aEurTsxFn8kQ6HteBxm3JtcE=;
        b=UkbaDlSiU2eLaKfY4RHVUxF2iDSUTMq0fskqFCBcZHgaamthOKQLHQBoXPhtuuaE6p
         z2i3rMgBrlY1zVxySDy/PbWtNuvuh2qQUqvkCTjqP9dPa3a+uiKaEO+P2UMzLvoEYeFZ
         GrOV9FN9RMNFnGiCoF/VcV4cGPHlvYsbMG9eVkmWVYUS4VzOtjoGeo+f3aJ/K6h9Koeg
         z3Z3DNtj2OYefiadno1z1vh1p2oSXgK7+rTqbA8BkqAQWN2D43IHU4MXQUxGeHNndIpZ
         en+0endntig4xiUtX976gvUjcqmPx0Yq3E9kcYsoEQPF71cXEeNqMp5gLLfUWjwHdbQ8
         trFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778060147; x=1778664947;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=L71mztXwVFtsnyfyfV2aEurTsxFn8kQ6HteBxm3JtcE=;
        b=S2S+PEkeuRnkeDjI0ToEDDDO918plDMckRRfPsmu1DMg7c/UzdnNDkLJJ2bRLOvuZS
         CuQF6HJsbxzi0vT/BXbyzWMxwaPT//SLLSF2jmMH0YY0HmngKk4KIQ4Y/BLcFtrF78CJ
         9J5FSWbCyH7PxU32Q622CI7CNPx8gXvdVToO9bSxwyE5aqFTgIHaswNDcuiclD0TbQ74
         uvAJdV5GLAZSQBSMFCMrMWVjAZjYyBWnW0T19Wx6nf1/X9Jg4ohdN48Tdon+N3VM5VUp
         sHJTIjOw7OJPiARJug3fcBnBMIs9tN+/7Z+wuM/r/XZZxMcvjsBqCvp1q+Y6nqTuBk1I
         ITmg==
X-Gm-Message-State: AOJu0YxSFA7tVN5W/8G92LcWZELzfmy6e0fz5qDv2pd7b+yvoTFkmO3a
	Ng58YXH7N2/OJF9u2gcGiM3aW7dSEOVCBZT+TGfugpJ2h6hem7F524FHDVncTfcxrwIl3zH3oIM
	4iOg=
X-Gm-Gg: AeBDiesk3ESBTRxXDPjfTzko7thyPnGg4MasfOEAlNvhzBEQEp0sAYiAcFF/NxFh8lC
	xi49qrtvyUI7UBuaLth8ed9ivQXrEuNGp6C0VGJ0Q9E6yVkuYyjnMUB1dZgcy8qkUT6YW6xu2vs
	Q4eOm54MnoVQzdThLDn0omS0hGyB6ybz2oiC05oFuUzVJjKMe4j6hjVIKpYtiLnUQTLYMqAgEtr
	9d8i9TsiC8ppVLsos7LymF3Ogijq6QA6+9QuZs7UYVr6lgQC1ws4h0OmDSKQB52yNqJA4p8EUjk
	kvEX15Gd/fHcoJgn66jXXn0s7bZvBgKspLfCQBWBDvwSHnTBLzQ0uDN8R4t1Ha6o3vnmqi37FkP
	twSj2BgKk2jGXWctBPfxb0r7Z1lXb44wyMDICl/XXfbfUqx6Upfz6+s0DIUenXHO7wUkKd/8nSG
	ilwuZtaA38rS0maKJR6q+xQYx3c63ga5ZYq0b5uFYo/idJKmlKLYeurAFteXp7wnl4vJYun108Y
	+gZiSpojU66MkkrbGWyjTQ0pw==
X-Received: by 2002:adf:e014:0:20b0:452:273:5cd6 with SMTP id ffacd0b85a97d-45202735d7emr1339868f8f.1.1778060146709;
        Wed, 06 May 2026 02:35:46 -0700 (PDT)
Message-ID: <99a4a514-3ed5-43f7-823c-54771f3bd03d@suse.com>
Date: Wed, 6 May 2026 11:35:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/time: make do_settime() uses more accurate
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1778060147-19F6EF3B-ACEBE957/0/0
X-purgate-type: clean
X-purgate-size: 2801

As a comment next to one of the invocations states, get_wallclock_time()
can take over a second. The order of evaluation of function arguments is
in principle unspecified; in practice at least gcc looks to be evaluating
them from last to first. Hence with NOW() invoked first, the respective
value passed to do_settime() can be off by over a second (which is in
contrast to __get_cmos_time() attempting to get the time exactly after an
update, i.e. [pretty] precisely at a seconds boundary).

This also addresses a Misra C:2012 rule 13.2 ("The value of an expression
and its persistent side-effects shall be the same under all permitted
evaluation orders") violation each.

Fixes: f64134cdb81c ("x86: Fix time_resume() to notify all domains of wallclock change")
Fixes: 0bfcf984b727 ("x86: Reintroduce clocksource=tsc")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Of course the time it takes to do all the CMOS reads (or whichever else
wallclock time source is in use) also results in an inaccuracy. For
__get_cmos_time() this might be solvable by having it latch NOW() before
doing the 6 reads, but in particular for efi_get_time() there's hardly
anything we can do.

As to Misra rule 13.2: tagging.ecl lists the rule as clean. I also can't
find any deviation for the two instances fixed here. What am I missing?

For __get_cmos_time(), tangentially: Wouldn't we better use the
century byte if available? As it stands, things will break in 2070. Which
is a long way out, yes, but still. (Of course this would mean a 7th slow
I/O port write/read pair.)

--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -2575,6 +2575,8 @@ __initcall(verify_tsc_reliability);
 /* Late init function (after interrupts are enabled). */
 int __init init_xen_time(void)
 {
+    unsigned long wc;
+
     tsc_check_writability();
 
     open_softirq(TIME_CALIBRATE_SOFTIRQ, local_time_calibration);
@@ -2592,7 +2594,8 @@ int __init init_xen_time(void)
     printk(XENLOG_INFO "Wallclock source: %s\n", wallclock_type_to_string());
 
     /* NB. get_wallclock_time() can take over one second to execute. */
-    do_settime(get_wallclock_time(), 0, NOW());
+    wc = get_wallclock_time();
+    do_settime(wc, 0,  NOW());
 
     /* Finish platform timer initialization. */
     try_platform_timer_tail();
@@ -2745,6 +2748,8 @@ int time_suspend(void)
 
 int time_resume(void)
 {
+    unsigned long wc;
+
     preinit_pit();
 
     resume_platform_timer();
@@ -2756,7 +2761,8 @@ int time_resume(void)
 
     set_timer(&calibration_timer, NOW() + EPOCH);
 
-    do_settime(get_wallclock_time() + cmos_utc_offset, 0, NOW());
+    wc = get_wallclock_time();
+    do_settime(wc + cmos_utc_offset, 0, NOW());
 
     update_vcpu_system_time(current);
 


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:37:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:37:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301433.1575714 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYhO-00089u-Hl; Wed, 06 May 2026 09:37:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301433.1575714; Wed, 06 May 2026 09:37:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYhO-00089n-F9; Wed, 06 May 2026 09:37:46 +0000
Received: by outflank-mailman (input) for mailman id 1301433;
 Wed, 06 May 2026 09:37:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKYhM-00089f-RS
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:37:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKYhM-00FTsG-7u
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:37:44 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb0be1-e002-0a2a0a5209dd-0a2a4506eae8-22
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:37:44 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb0be7-7371-0a2a45060019-d155802ae136-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:37:44 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-488a8ca4aadso65292125e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 02:37:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e52f5e668sm17102985e9.0.2026.05.06.02.37.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 02:37:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778060263; x=1778665063; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=qs+DlzY0nmy8xATHx3GZkcu4RgtuaNdQ+SDz1pEbEHc=;
        b=VqDc26E8ubmFYx1fzxaU06L5XwWWNVzsnmsHc9A0q6gK4wvwZWkYwxiaNB3A34n0tN
         n3OeByuKlVGSfAjRiD+A51d7VamdG4PaK5/UCzlZQtpApA1QKuaYidcNnelVla+sLbRg
         CPAhVXBSa70VIqvJotMX1PF4MDJddymKz3z2pdPosKxBCZmb9no5f56P2eWZ5PioriK7
         mnFatXS6rkrEJC1zA0gCi5l/UXq62oGmw8ZMfCgmSyWVmG49w3r5GwNa1RjcWFow0f8X
         jVao66+uYLIFLGrFvX17b9zEz6cgMVN8+Fc98O+Q7cm09l9Q39es8mfmS1D5H/x9b7ca
         eq8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778060263; x=1778665063;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=qs+DlzY0nmy8xATHx3GZkcu4RgtuaNdQ+SDz1pEbEHc=;
        b=bvaabvhS8W2Sch0VgAps4VNbVfRMG3E3fBAtYJgMVLWU5+YpLxmSl+OIECvp8cqUD3
         oB4MMFa0Kp/AM5J0rFgQ88ERKcKPbakXyjP7S5fimmjD1cIbPd0Bea8kB7J3aDK9f7z2
         tgI3txPuaGP+SF39Op2viD+u2SkQIqiRNS73lmphia2PrEuI/amF2hcHIdH0PP/j9gI+
         /4iV5FZf/AsLeBeUiEu4qHn1fRXcsR66QcWhQza/2Af2Bke6jGRuhDx/B2sRAaAQpcVu
         /iwtCdahYl8yDyBA+JnCRxcxfDHZiDFOU7Wc87zT9BCtNzwbpfOy60VkS07JxlP6rK2f
         kqdg==
X-Gm-Message-State: AOJu0YxTtM+JNaRhbdHd6R2GE8GwycoPY4/nEeJxErKLEQBE4QLjHA3L
	7LaSio6w+pB+QHskDQGIGIqlgaHYHENezaPlIxe3boncRm3w26jRcAicNIaL1Tgt6LA7d07fHni
	rLVA=
X-Gm-Gg: AeBDiesv6W7t4XNpcDMapahi3T8kjCuoLlgjb/sQPiwyWZ7OcTYQdXwha8T+tVbQgnQ
	zjL+XF40CPrT7w3Az8q/l2dRhangyQThDTEXRQ14kjtn5myqLU2CBwCIcSAIUZ5O/5sM738tHpM
	HBmUMFRCdTUCkaZCcEeLmi0PT8spj2vKwHocC8Q91uKt1fs3HzXtmBHEU9jDOXquZ5pKmyHKeWK
	VFmSviIZSzIKp16Wt8Zpe5ulq5mZPUTNfVIoLo+C9J4u+7005uBct4QT/aA07Qz+yDQIhWt2LUz
	o0qAPwnSd1wW3nLswTNJC/pQO/Ayxr0XSg/RtfKVlsILumOrL/t2TQeppSRiD9SfSO1qZkKwtSi
	QRzHHF6aoMRF/bYLf5ZBg0XLLsreirodF8PkSusPZlxK5Gc/C/6dXb5Q4S7PjArV9I+rJlonOWG
	cgQCD0xlOcY4/nKJQpDogRt3+uYH8rKJLVpimgvY6eC+H8owtnipiZBQJNkXJG6EKN1ONVhfUwF
	wg5RNJKqutyHWLsvVlHj/fh9A==
X-Received: by 2002:a05:600c:4c97:b0:489:1fa4:50c6 with SMTP id 5b1f17b1804b1-48e51f45c63mr27839125e9.20.1778060263514;
        Wed, 06 May 2026 02:37:43 -0700 (PDT)
Message-ID: <746ce9af-156b-4c16-8cc0-6e8d929107a0@suse.com>
Date: Wed, 6 May 2026 11:37:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH RFC] x86/time: avoid early uses of NOW() to return zero
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1778060264-84566D75-AC2B156B/0/0
X-purgate-type: clean
X-purgate-size: 2361

Waiting loops like the one in flush_command_buffer() will degenerate to
infinite ones when used early enough for NOW() to still return constant
zero. Make sure the returned value at least monotonically increases.

Do this only in get_s_time(), as producing a sane value in
get_s_time_fixed() for non-zero inputs won't be reasonably possible.

Reported-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
RFC: This breaks at least the TSM_BOOT case printk_start_of_line(), which
     checks for NOW() returning 0 (falling back to TSM_RAW in this case).
     For now I have no idea how to avoid this, except that when CPUID leaf
     0x15 is available we could leverage that to put in place at least an
     approximate scale value. Doing so could, however, lead to a
     discontinuity (returned value moving backwards) once the final scale
     value was put in place. (Note, however, that such a discontinuity can
     also result from init_percpu_time() using the BSP's scale value as
     initial estimate for APs. Then again local_time_calibration() at
     least makes an attempt at avoiding such.)

RFC: While generally the mentioned waiting loops will take longer to time
     out, on a very fast CPU tight loops may time out too early.

RFC: In get_s_time_fixed(), should we perhaps assert that the scale was
     set?

I don't think Fixes: tags should be put here. If we did, we'd have to
enumerate all introductions of early uses of NOW() (or get_s_time()), with
the exception of those dealing with getting back 0 (which I expect is only
printk_start_of_line()).

--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -1668,6 +1668,20 @@ s_time_t get_s_time_fixed(u64 at_tsc)
 
 s_time_t get_s_time(void)
 {
+    /*
+     * Before the TSC scale is set, avoid returning constant 0 (or whatever
+     * this_cpu(cpu_time).stamp.local_stime is set to).  While the returned
+     * value is in no way representing time, it at least increases
+     * monotonically, thus avoiding e.g. waiting loops to degenerate to
+     * entirely infinite ones.
+     */
+    if ( unlikely(!this_cpu(cpu_time).tsc_scale.mul_frac) )
+    {
+        static s_time_t counter;
+
+        return arch_fetch_and_add(&counter, 1);
+    }
+
     return get_s_time_fixed(0);
 }
 


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:39:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:39:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301442.1575725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYis-0000HN-Sn; Wed, 06 May 2026 09:39:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301442.1575725; Wed, 06 May 2026 09:39:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYis-0000HF-Om; Wed, 06 May 2026 09:39:18 +0000
Received: by outflank-mailman (input) for mailman id 1301442;
 Wed, 06 May 2026 09:39:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKYir-0000H7-GX
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:39:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKYip-006i3W-89
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:39:16 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb0c3d-e002-0a2a0a5209dd-0a2a4503b96a-30
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:39:16 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb0c44-672d-0a2a45030019-d155dd2ccc04-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:39:16 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-44ce78ab5feso3208057f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 02:39:16 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4505285e765sm10674542f8f.10.2026.05.06.02.39.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 02:39:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778060356; x=1778665156; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=dRUizBZBPM7JIs2noSMewmz96/l/sOpqrXyce+FBBmM=;
        b=KuKDMWkvSLFrEG/lS+3JMWYatXR9R3K/bHp1DpxL9Af+nsf/Az0OzsU4PVl2MOzFsQ
         N0/U7FsORoXA+FqlgWZXVq4qf+YRG12WN7BOzMPSZlJmsX8XhhLEhYBHhxv+tXnefUAx
         t94C7nXPICd6jBEmAgbS6oZd4B8NNk3WSboH0OJUTMdlu+/D6uDt6Zo1Ade6i5Z8Caxk
         /y1DQy2AZBVXryy02KPoY33yfrF9zj9Wd96q6igrg4cQB+F2cg34isOEZO2T/rO1S9sE
         v9cDFYUTCfu9+OqI2abjToVW+5R9JVEBJcYVXE0tm3RVfHQfGDi5ri1cQXt946rAVeGJ
         wOuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778060356; x=1778665156;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=dRUizBZBPM7JIs2noSMewmz96/l/sOpqrXyce+FBBmM=;
        b=daTtx04Wp9xRZKDMFL0IDChk1JNCXM2H+Yr9qw0vkGFYTohdqCW9VxhptoyrQFvaG4
         k5OxiO5KM2uvhQ3+GnyB0SqBwlNs/0jOYudLsP7x2SSXoBJy558pQz0rVavLOGXXiC8p
         Uo3sZHSxKdcJcW6dU0fgwWi4JL9yFHoaEoTRAdeCcbPZzy7y1rTkczxJ6K5knXrKOud0
         hDRLo+RdhwMNnLyc2jRxk8jE0ds5gqCbKdzrDeslBcfgYdmT9uC3GLSJEpVK+/Rnnb92
         /uDfCMR1y7QK3VzjC4YD2Lx5xaRfc33SM5sEcaFo/UwWCkY8UsP4JyiGVrdIqnlmV1+m
         RSYg==
X-Gm-Message-State: AOJu0YzQC1XhxG1eeFMB3dT0+YWvBTCo2bptITmrG9ZGcD2uOUMFydQP
	c4s/KLnlkqXPas4HMPysHlxj1b6RekWntxoF1kS0Oq8IBVwno0b4sRyP893qhcwk6cD10m9gxUz
	eISc=
X-Gm-Gg: AeBDievxodLDb2IZWdp4SyrIDFTrLd3/wIF9ezWdqJ7y04TpA2pTbj21tAH3yeEsw79
	CzG82OzDkbiqHAx1aORzJ85z/ZT8v/wc20Y4pJQhgAs8B+0ySl3FOxqpGU+ktsFWhoU2l3kQrYP
	ZxgMW0ukhIRnhZGNOR0qJB8rCsQkBFUUbn1GsWqwyasuRYdvrw74F17SkFXTPGuPPpI7eGjP8zo
	jV5GXRFUbJaKku6UO7NCQlPvSQste9dYQwTBREQNtIuUIuBplkkUEEVQWozKLEFP5Darx4uNqXP
	BpkT3rci7CAORTuishTus8HeT2O/mf0pm4dDkCqvhuhwRc3tci3omN6wnM4kkfP6ZnaYV39XJ6k
	057mF6Hr2rRKTXAyeep1t5/QfjdT4TJXJddgo8DxQvwzhiGW6IJHykmMgyJyE2pzjqq/AkItKJw
	MdjQHbjptlpIhq2lVbTv4vlUGHxsRyeFi4VB2Pn6tQLa9SALYXmnPXgeaEregVuDlMOViSYBcOe
	rPw5rRb9NYbX7Q7AZdDPxjbMw==
X-Received: by 2002:a5d:64e3:0:b0:449:cfea:ca91 with SMTP id ffacd0b85a97d-4515da96254mr4073067f8f.37.1778060355990;
        Wed, 06 May 2026 02:39:15 -0700 (PDT)
Message-ID: <1e23dd78-b246-4fc7-9e18-de8b0cd57721@suse.com>
Date: Wed, 6 May 2026 11:39:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH RFC] x86/time: set AP's TSC scale estimate earlier
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1778060356-3AB64938-CCE377A3/0/0
X-purgate-type: clean
X-purgate-size: 1998

NOW() (in particular) can be used ahead of init_percpu_time(). As the
initial scale value set is merely the BSP's, we can as well set it before
actually launching the AP. Don't introduce yet another notifier function
though; do this from smpboot.c's.

Setting the scale alone, however, doesn't work, so the entire struct
cpu_time is copied.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
RFC: Copying the entire struct won't work very well when tsc_adjust[] is
     in use (and values there differ between sockets).

This in particular eliminates an anomaly with log messages issued early
while APs are coming up, when "boot" console timestamps are in use.

--- a/xen/arch/x86/include/asm/time.h
+++ b/xen/arch/x86/include/asm/time.h
@@ -21,6 +21,7 @@ mktime (unsigned int year, unsigned int
 int time_suspend(void);
 int time_resume(void);
 
+void preinit_percpu_time(unsigned int cpu);
 void init_percpu_time(void);
 void time_latch_stamps(void);
 
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -1139,6 +1139,7 @@ static int cf_check cpu_smpboot_callback
     {
     case CPU_UP_PREPARE:
         rc = cpu_smpboot_alloc(cpu);
+        preinit_percpu_time(cpu);
         break;
     case CPU_UP_CANCELED:
     case CPU_DEAD:
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -2346,6 +2346,12 @@ void time_latch_stamps(void)
     ap_bringup_ref.local_stime = get_s_time_fixed(ap_bringup_ref.local_tsc);
 }
 
+void preinit_percpu_time(unsigned int cpu)
+{
+    /* Initial estimate for TSC rate etc. */
+    per_cpu(cpu_time, cpu) = this_cpu(cpu_time);
+}
+
 void init_percpu_time(void)
 {
     struct cpu_time *t = &this_cpu(cpu_time);
@@ -2353,9 +2359,6 @@ void init_percpu_time(void)
     u64 tsc;
     s_time_t now;
 
-    /* Initial estimate for TSC rate. */
-    t->tsc_scale = per_cpu(cpu_time, 0).tsc_scale;
-
     if ( tsc_adjust )
     {
         unsigned int socket = cpu_to_socket(smp_processor_id());


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:40:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:40:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301450.1575734 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYjb-00013q-5D; Wed, 06 May 2026 09:40:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301450.1575734; Wed, 06 May 2026 09:40:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYjb-00013P-0p; Wed, 06 May 2026 09:40:03 +0000
Received: by outflank-mailman (input) for mailman id 1301450;
 Wed, 06 May 2026 09:40:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1wKYjZ-0000ke-4d
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:40:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKYjY-00CnEU-H0
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:40:00 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69fb0c70-2eae-0a2a0a5409dd-0a2a450499ac-2
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:40:00 +0200
Received: from [40.107.159.101]
 (helo=OSPPR02CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69fb0c70-1dec-0a2a45040019-286b9f658583-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:40:00 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DU0PR03MB9200.eurprd03.prod.outlook.com
 (2603:10a6:10:474::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May
 2026 09:39:57 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 09:39:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FS9ZKLYgf+7eNrRZkkiuBs1zHA6sxXcFri8cBnQY0KYfdQf9OTE9CJRdNMnODMA6rBrPMEnxEo/dtL1oYzP1bG0FGQ7DVlHz4Qbuv1/dsEnNhxff3OkiOhoJnJLiMtxfTHMyp72KmNThC8sgpUnYK0MKsFmCbZI22Rzok2AysEPALPWKhK3gosOK5ypROfGz1lmGI/TxvHUTCP7VNEvRSxn9rFdPJGLn4EccsGCFKn8IbAXmQR/rRjzu2o+dV1A4kHGIWTtjtWJ+Gyp816AQWNxixdyZQ9Y9wfysrLZV+jUQyWmy0ncFdDl3guZNc4+v87RBjibQG5y70S+rMlX1kA==
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=7amzujlHZzSzrXZ+W4vN9u3a7C4kW0IefvHvGxkayZo=;
 b=OJbmHQy+cDYJ7rHO1f/gtOrbuWy1IG/JUzOGi9aojOnXXowL/b/oqCfXfRwJq3StmK0gxsgVKEhisgCN7lRONmkQoLO6RznMGcK9pPS/UvWh/OqLbartVngwvoAjQcT9TXt4mvdqF8HbsV79TRh4caouaH+aF0mDAwLSuBV/EM7q3LsBI9Rojg3lGA9NkDvll9g3lhlxcLX3r+ByuWL8XiOnEo7wYADwFBNc9LCiuDQfX+YzoB5xewU+sJYBauKcEz7UmragR/1BwwisicsBg+IVZS0tJkx5HYq1XInEMD8Di3dzzmsA+5lwrHy/DM7JyAxBvvLGwYU/M8fCSNu6Jw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7amzujlHZzSzrXZ+W4vN9u3a7C4kW0IefvHvGxkayZo=;
 b=iTSdw64vvDp4wHs8YGZem0a6Se+BYtR18dMK1EZnnIoKAxZ9AZL0YKmdz6UIQiIUiNG22cuuHbRRm1/L4Ibr0A1cIE9egEnbw9maFuce8ZDg+4rC9264zxh9FKVcoGBVAAL2womyAbagfgwWLi2Unh+jD+mv18W5vn6a/WRmmZUsNiav8bulJTKePOuleii4JG1ubkc+WCdFZABamw090FEXy6iEb2BYZisw+QNk0sCxY9QOJIi9z4UaWO5BLd34DH3gZeZq+v1t30fL95MM91ZAeNuhIu5KNxacBfq5E5mBWw5b8Cgc1MpyMu9IaqENQnloNIpzFmpeie8EyNKo2A==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, "Daniel P.
 Smith" <dpsmith@apertussolutions.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>
Subject: Re: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
Thread-Topic: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
Thread-Index: AQHcyClfuk/Yqk/9/E2oGahG1JP+srXpqhqAgALY6YCAEPz5AIADaEkA
Date: Wed, 6 May 2026 09:39:57 +0000
Message-ID: <d0916f22-b5c0-4c93-935c-4cbe17e626d4@epam.com>
References: <cover.1775742115.git.mykyta_poturai@epam.com>
 <a0abd984989237d2f36e1628db577fb25af1cdbe.1775742115.git.mykyta_poturai@epam.com>
 <5efddecc-3665-4a53-9eaa-b117370cc0e4@suse.com>
 <5168207f-33ed-4fc4-918e-6c3b454b0efa@epam.com>
 <efb254c2-f52a-408d-b225-e4e03935d05e@suse.com>
In-Reply-To: <efb254c2-f52a-408d-b225-e4e03935d05e@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|DU0PR03MB9200:EE_
x-ms-office365-filtering-correlation-id: acf886a5-be79-4aa8-9a00-08deab536f84
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700021|22082099003|56012099003|18002099003;
x-microsoft-antispam-message-info:
 NtZJA8XXYndrtJI5qN5Cvtu7m1Z2Kr1LHBogxXOb8DRmU7gOMq1cEHR9hNRUJL1xmvvcAtbGMW/zqA263JvCtgTpXhbd3jtfx9xbTehvdYNB0IopxMy/rXv4fWCbmBNEntsWYrcqRb1Wq2hWl5i+d0yRm4nYaxpopEoFOxFgofO7Xldo0j5cqNzki59LzU3M77U0IG1K0xSBaKXH87KHjNHx8vhlOLF9rRhuGoYwhigxGmsqIiVFrPODeVtq9gNDz+TFYkOt7G+QCb+R+ynChqo/SbvQdvaaHS2lrcEBiMHbDIxLmwPkSC2u4HsGy2ws5Vd2w3s227e16sHa5Z3X2EM061fryjlzZC8Ggz4tLyRmyGJVe94GRlPdl4OzzyVBba0osdfRwLEM7YdaI3JkmCWoMiw8TDUhYGLQtWsJSTyFAZ6FH5A4T2N+sCNfKviLVyG04XYgvhuBdO4aQcSfz3a/W0YBZbbpS+kmy1oVr6W6h246YFZ1WIkbVjtxyCncDNm7gdJXDmkCqx94g5M48mmN+/OpVyRMEzzKxTj7z6cMkAy89Ltlyzhcv9Vi5HW4sIjs+uunW+NU0kjfCKCEd7VMjFRZs3OTCvFOO/bb2NwU0639W+wr33Jh7q8rtVK1FzOseWTcIiQx4YW+kIOIIjR+JEDudi/bWXYISXRcQ2JSjR7pFyJe8316g8/nhkbFA13fpjexTwyNCKfCjXyugDTMffSEjnM1u6O9cj5Bl854fLnjqcYQ062c9s3Wjret
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MURTQmVZSEFaN2xmbXYvOFE3Sm1lR05EOGUwRHpNYU1KeEJJTDB3TUJVeXFh?=
 =?utf-8?B?UWdWYzdOUFRQc04vaXVCT1FISXdrc2p0R0UxSDNncTNTM0swZkJwNkJnOVBo?=
 =?utf-8?B?Z1pZRFdmdTg0a0MvSXQ0d2tEby9seE9obWtlbWhxSlA4U2tqMW54UWRZZUR6?=
 =?utf-8?B?R0JYb2xEaVU5bmE4TjRuVlMvenVuVUZWa3JHc3ZOd1ZHdW53dTBuVWd1ODhY?=
 =?utf-8?B?NUVPQzUwODM1OXBZOUpZTVByKzBVUmtGZmhWY3dxTlZ6dm1lamlrWnQyWmJk?=
 =?utf-8?B?YU5BdFREaGplWDBLWXJYWGpYWEw4Szk3dS8zNEJOcExWeHNxd0M4Y2REcHA2?=
 =?utf-8?B?Y2NwUVZVZFRVd2FlRWN1ajlGSGR6RG5jNUxUNFRaM2xFaVRHNE5XZFRHcFNr?=
 =?utf-8?B?a1lwanFXZ1U4Q01XMVZMN3A4eWdDVEVYN2IwRnVWKzVXajU5RVhIdzV5SS9O?=
 =?utf-8?B?M0hMNDF2WXBneENYcUtiU1dFc2dUaDg3QU5LNjBpM3E5NVJFUFRBWjhGeGdX?=
 =?utf-8?B?bmpGVS8rMUhybHIxTWRmUkVmbTh0V3drZ044YXUvRHovSzBBOGpScWx1NFc4?=
 =?utf-8?B?MUhlZnRpTkxEMzhTUlRjVnhGeEl5M1BMN2ZVWXpDY0xYVllwOVlHSEZJVlMz?=
 =?utf-8?B?L1Y1TEJ0UDNxcFdHM3lrakNNWXBRRDFWbDE1L0ZtcExVVkJZNlFvWFFFV3hL?=
 =?utf-8?B?eGtiRHZGM3pPS1NNVEZnVjZTODFhOFRhR0p6eitoM2VnZWF4emp5R1d5TTZU?=
 =?utf-8?B?Y2hWdS9JR3RZWnRTVEx6YmwzMjBLY1E5NkJSMlNsYWNNS28ycWdPZGh5STgx?=
 =?utf-8?B?WW9PQTNpNGhIbE5tQXpVMDRFdXF2djhKYkF1dG1ieHpJUmhqK2J2SDJlQnZY?=
 =?utf-8?B?anpOVFZ3Q3h1czBOQUlIYnIzZGN1aVVhOGxQcUFodW03TnlxN0d1OHZFcnBT?=
 =?utf-8?B?QWVEdmJiTlh2c1o0N3NpRXZsUEpEVmpycVE4ZFBzSGYyMWp3dkgzSmtaM0hX?=
 =?utf-8?B?aEhNYUYwMmN2cFp5eDk2MHJINm5OVjVXcXAzazI4T2drbjcvci9hVkUzdXNT?=
 =?utf-8?B?UHlRSERmRFpRVis1V0s0b25YZmlpNzVaWUYweko1eUlETU5uV2VDNkNVTGgz?=
 =?utf-8?B?aG1KbmpCZHhncTAyYzJ0UkN6Q2VLYUNLWVErSkEySGlEbCtkTnV1aWNUdHJ0?=
 =?utf-8?B?b1JTN0hqYS9iTHpQb2s2WlFTc2tGZTJ0Q1AzdHc3VVk5QWFQN1VYanlaRjRC?=
 =?utf-8?B?YXZyOWQzL3k1d2pka0c0R1lQQWw2aFd5K2tWVjRXWk9XVGZIVzhwUXJrZHBM?=
 =?utf-8?B?ZldLQlNmKzhxelhoWGdTNDJ4aXpGaE92T002RUlhMlgwTjRyTmtFdW5wUmNy?=
 =?utf-8?B?QzNBVkJjMXlpaDdLOXUvSnlkQlY4VG5Ub2RWdnJjZUlkRVJMMlQrWVd6YW9F?=
 =?utf-8?B?OHZqdFpCWlh2WlNNSTJEY04yUHdWVVE5ZWhSZTFVTFphN2FoNXcvdEVHOGpR?=
 =?utf-8?B?UjlhNWVkclhGbk5mNVluMVJqYXEvN2VaZVA0alpLakJJdWhRWmdVamFZeHRH?=
 =?utf-8?B?eUNRTnd2enB6M2YrQ1VuWktlbDRjSms2MEFjeVZINGw2N1lxQXQwWHRiZnYy?=
 =?utf-8?B?SWlBRXovUFNzczNwNmUrVEs4QXNRVVdiWmxmUlJUaDdHc3hKWS81T2R2WU0w?=
 =?utf-8?B?bGRpL2tNcVRjdjQwV3lkcEpMWjFuU2F0RVVQZlJoOFVDUGZuWXVWUjhKZnpk?=
 =?utf-8?B?bXByZDhrUnZYQTBxT3BUM3dZVG84M1MxUEwxbUxyY0hvWFFLbll6dkg2T3pu?=
 =?utf-8?B?QWptRzhLcGFldHJidHB0YnJnSkNmcSthelBwS3hpaEpldnlhS1pJQlgrZHVY?=
 =?utf-8?B?VlZrSlZEdytIZ1pMNlZPWURxc3ExUTVvbjQ2UXRkTC9NSDJNVlZrNXhOelJF?=
 =?utf-8?B?ZzA5QkRpMjc2K0FZSFJiNzJ6MUNMSEhlcDF2aXRadjQ1M1Ewc0JIRkJLODBo?=
 =?utf-8?B?MHFwejk2eGlZbnRNeVJ1NldPM2wyTEgzbzAvOFlYQlQxU2pBRG4wVlhYUWlS?=
 =?utf-8?B?ZWx3VGIrT1JxSmJNY3FHNEdJbENOdFQ2dHgyQUhOcVEyQlB6eXQyQWNaR3l6?=
 =?utf-8?B?VnNNb3JlYUpqUHFRc0s4UE9Ua0tuQTdJajNvN3JtTi82U0x4akdVMEZITG9E?=
 =?utf-8?B?S1RqZ0JYY0FVZFFlREhZSnRUc3VmaVV2NWRIVzdHRm9Qdy94RW9zS1NjZzRB?=
 =?utf-8?B?RWt4N0lPaHovT2NpYkV6RytNVkJSNmxaT0tlL1FEcXZCbmdKUWdDQ0s2S1Vo?=
 =?utf-8?B?TGhlNmxncllPODBDdTM5OXhUMU1OaWtKcGlUeVRXaHVjeUtNT2lPY2ZUWkda?=
 =?utf-8?Q?4O2JOJ743GdlAUHs=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <20424B698F3BC84B81F35442F8499809@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: acf886a5-be79-4aa8-9a00-08deab536f84
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 May 2026 09:39:57.4671
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: GI4V76jneUcORIC72KKf6AFQ2KTbR5EDT0anvn/eE1Hq/i0IQzQi4oCz6NcEaxBARKKwVcCaNgrKWx6r+VRO7w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9200
X-purgate-ID: tlsNG-ebf023/1778060400-417793FF-F71E1D0E/0/0
X-purgate-type: clean
X-purgate-size: 6782

T24gNS80LzI2IDA4OjM3LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMjMuMDQuMjAyNiAxMjox
MiwgTXlreXRhIFBvdHVyYWkgd3JvdGU6DQo+PiBPbiA0LzIxLzI2IDE3OjQzLCBKYW4gQmV1bGlj
aCB3cm90ZToNCj4+PiBPbiAwOS4wNC4yMDI2IDE2OjAxLCBNeWt5dGEgUG90dXJhaSB3cm90ZToN
Cj4+Pj4gRnJvbTogU3Rld2FydCBIaWxkZWJyYW5kIDxzdGV3YXJ0LmhpbGRlYnJhbmRAYW1kLmNv
bT4NCj4+Pj4NCj4+Pj4gVGhpcyBjb2RlIGlzIGV4cGVjdGVkIHRvIG9ubHkgYmUgdXNlZCBieSBw
cml2aWxlZ2VkIGRvbWFpbnMsDQo+Pj4+IHVucHJpdmlsZWdlZCBkb21haW5zIHNob3VsZCBub3Qg
Z2V0IGFjY2VzcyB0byB0aGUgU1ItSU9WIGNhcGFiaWxpdHkuDQo+Pj4+DQo+Pj4+IEltcGxlbWVu
dCBSVyBoYW5kbGVycyBmb3IgUENJX1NSSU9WX0NUUkwgcmVnaXN0ZXIgdG8gZHluYW1pY2FsbHkN
Cj4+Pj4gbWFwL3VubWFwIFZGIEJBUlMuIFJlY2FsY3VsYXRlIEJBUiBzaXplcyBiZWZvcmUgbWFw
cGluZyBWRnMgdG8gYWNjb3VudA0KPj4+PiBmb3IgcG9zc2libGUgY2hhbmdlcyBpbiB0aGUgc3lz
dGVtIHBhZ2Ugc2l6ZSByZWdpc3Rlci4gQWxzbyBmb3JjZSBWRnMgdG8NCj4+Pj4gYWx3YXlzIHVz
ZSBlbXVsYXRlZCByZWFkcyBmb3IgY29tbWFuZCByZWdpc3RlciwgdGhpcyBpcyBuZWVkZWQgdG8N
Cj4+Pj4gcHJldmVudCBzb21lIGRyaXZlcnMgYWNjaWRlbnRhbGx5IHVubWFwcGluZyBCQVJzLg0K
Pj4+DQo+Pj4gVGhpcyBhcHBhcmVudGx5IHJlZmVycyB0byB0aGUgY2hhbmdlIHRvIHZwY2lfaW5p
dF9oZWFkZXIoKS4gV3JpdGVzIGFyZQ0KPj4+IGFscmVhZHkgaW50ZXJjZXB0ZWQuIEhvdyB3b3Vs
ZCBhIHJlYWQgbGVhZCB0byBhY2NpZGVudGFsIEJBUiB1bm1hcD8gRXZlbg0KPj4+IGZvciB3cml0
ZXMgSSBkb24ndCBzZWUgaG93IGEgVkYgZHJpdmVyIGNvdWxkIGFjY2lkZW50YWxseSB1bm1hcCBC
QVJzLCBhcw0KPj4+IHRoZSBtZW1vcnkgZGVjb2RlIGJpdCB0aGVyZSBpcyBoYXJkd2lyZWQgdG8g
MC4NCj4+Pg0KPj4+PiBEaXNjb3Zlcnkgb2YgVkZzIGlzDQo+Pj4+IGRvbmUgYnkgRG9tMCwgd2hp
Y2ggbXVzdCByZWdpc3RlciB0aGVtIHdpdGggWGVuLg0KPj4+DQo+Pj4gSWYgd2UgaW50ZXJjZXB0
IGNvbnRyb2wgcmVnaXN0ZXIgd3JpdGVzLCB3aHkgd291bGQgd2Ugc3RpbGwgcmVxdWlyZQ0KPj4+
IERvbTAgdG8gcmVwb3J0IHRoZSBWRnMgdGhhdCBhcHBlYXI/DQo+Pj4NCj4+DQo+PiBTb3JyeSwg
SSBkb24ndCB1bmRlcnN0YW5kIHRoaXMgcXVlc3Rpb24uIFlvdSBzcGVjaWZpY2FsbHkgcmVxdWVz
dGVkIHRoaXMNCj4+IHRvIGJlIGRvbmUgdGhpcyB3YXkgaW4gVjIuIFF1b3RpbmcgeW91ciByZXBs
eSBmcm9tIFYyIGJlbG93Lg0KPj4NCj4+ICAgPiBBcmVuJ3QgeW91IGVmZmVjdGl2ZWx5IGJ1c3kt
d2FpdGluZyBmb3IgdGhlc2UgMTAwbXMsIGJ5IHNpbXBseQ0KPj4gcmV0dXJuaW5nICJ0cnVlIg0K
Pj4gICA+IGZyb20gdnBjaV9wcm9jZXNzX3BlbmRpbmcoKSB1bnRpbCB0aGUgdGltZSBoYXMgcGFz
c2VkPyBUaGlzIGltbyBpcyBhDQo+PiBuby1nby4gWW91DQo+PiAgID4gd2FudCB0byBzZXQgYSB0
aW1lciBhbmQgcHV0IHRoZSB2Q1BVIHRvIHNsZWVwLCB0byB3YWtlIGl0IHVwIGFnYWluDQo+PiB3
aGVuIHRoZQ0KPj4gICA+IHRpbWVyIGhhcyBleHBpcmVkLiBUaGF0J2xsIHRoZW4gZWxpbWluYXRl
IHRoZSBuZWVkIGZvciB0aGUNCj4+IG5vdC1zby1uaWNlIHBhdGNoIDQuDQo+Pg0KPj4gICA+IFF1
ZXN0aW9uIGlzIHdoZXRoZXIgd2UgbmVlZCB0byBhY3R1YWxseSBnbyB0aGlzIGZhciAocmlnaHQg
YXdheSkuIEkNCj4+IGV4cGVjdCB5b3UNCj4+ICAgPiBkb24ndCBtZWFuIHRvIGhhbmQgUEZzIHRv
IERvbVUtcy4gQXMgbG9uZyBhcyB3ZSBrZWVwIHRoZW0gaW4gdGhlIGhhcmR3YXJlDQo+PiAgID4g
ZG9tYWluLCBjYW4ndCB3ZSB0cnVzdCBpdCB0byBzZXQgdGhpbmdzIHVwIGNvcnJlY3RseSwganVz
dCBsaWtlIHdlDQo+PiB0cnVzdCBpdCBpbg0KPj4gICA+IGEgbnVtYmVyIG9mIG90aGVyIGFzcGVj
dHM/DQo+IA0KPiBIb3cncyBhbnkgb2YgdGhpcyByZWxhdGVkIHRvIHRoZSBxdWVzdGlvbiBJIHJh
aXNlZCBoZXJlLCBvciB5b3VyIHJlcGx5DQo+IHRoZXJldG8/IElmIHdlIGludGVyY2VwdCBQQ0lf
U1JJT1ZfQ1RSTCwgd2Uga25vdyB3aGVuIFZGcyBhcmUgY3JlYXRlZC4NCj4gV2h5IHN0aWxsIGRl
bWFuZCBEb20wIHRvIHJlcG9ydCB0aGVtIHRoZW4/DQo+IA0KDQpUaGUgc3BlYyBzdGF0ZXMgdGhh
dCBWRnMgY2FuIHRha2UgdXAgdG8gMTAwbXMgYWZ0ZXIgdGhlIFZGX0VOQUJMRSBiaXQgaXMgDQpz
ZXQgdG8gYmVjb21lIGFsaXZlLiBXZSBkaXNjdXNzZWQgaW4gdGhlIFYyIHRoYXQgaXQgaXMgbm90
IGFjY2VwdGFibGUgdG8gDQpkbyBhIHJlcXVpcmVkIDEwMG1zIHdhaXQgaW4gWGVuIHdoaWxlIGJs
b2NraW5nIGEgZG9tYWluLiBBbmQgbm90IGRvaW5nIA0KdGhhdCBibG9ja2luZyB3b3VsZCByZXF1
aXJlIHNvbWUgbWVjaGFuaXNtIHRvIG9ubHkgYWxsb3cgYSBkb21haW4gdG8gcnVuIA0KZm9yIHBy
ZWNpc2VseSA5OShvciBtb3JlPyltcy4gWW91IHlvdXJzZWxmIHN1Z2dlc3RlZCB0aGF0IHdlIGNh
biB0cnVzdCANCnRoZSBoYXJkd2FyZSBkb21haW4gd2l0aCByZWdpc3RlcmluZyBWRnMgaWYgd2Ug
YWxyZWFkeSB0cnVzdCBpdCB3aXRoIA0Kb3RoZXIgUENJLXJlbGF0ZWQgc3R1ZmYuIERpZCB5b3Ug
Y2hhbmdlIHlvdXIgbWluZCwgb3IgYW0gSSBjb21wbGV0ZWx5IA0KbWlzdW5kZXJzdGFuZGluZyB0
aGlzIHF1ZXN0aW9uPw0KDQo+Pj4+ICtzdGF0aWMgaW50IG1hcF92ZnMoY29uc3Qgc3RydWN0IHBj
aV9kZXYgKnBmX3BkZXYsIHVpbnQxNl90IGNtZCkNCj4+Pj4gK3sNCj4+Pj4gKyAgICBzdHJ1Y3Qg
cGNpX2RldiAqdmZfcGRldjsNCj4+Pj4gKyAgICBpbnQgcmM7DQo+Pj4+ICsNCj4+Pj4gKyAgICBB
U1NFUlQocndfaXNfd3JpdGVfbG9ja2VkKCZwZl9wZGV2LT5kb21haW4tPnBjaV9sb2NrKSk7DQo+
Pj4+ICsNCj4+Pj4gKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KHZmX3BkZXYsICZwZl9wZGV2LT52
Zl9saXN0LCB2Zl9saXN0KQ0KPj4+PiArICAgIHsNCj4+Pj4gKyAgICAgICAgcmMgPSB2cGNpX21v
ZGlmeV9iYXJzKHZmX3BkZXYsIGNtZCwgZmFsc2UpOw0KPj4+PiArICAgICAgICBpZiAoIHJjICkN
Cj4+Pj4gKyAgICAgICAgew0KPj4+PiArICAgICAgICAgICAgZ3ByaW50ayhYRU5MT0dfRVJSLCAi
ZmFpbGVkIHRvICVzIFZGICVwcDogJWRcbiIsDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgIChj
bWQgJiBQQ0lfQ09NTUFORF9NRU1PUlkpID8gIm1hcCIgOiAidW5tYXAiLA0KPj4+PiArICAgICAg
ICAgICAgICAgICAgICAmdmZfcGRldi0+c2JkZiwgcmMpOw0KPj4+PiArICAgICAgICAgICAgcmV0
dXJuIHJjOw0KPj4+PiArICAgICAgICB9DQo+Pj4+ICsNCj4+Pj4gKyAgICAgICAgdmZfcGRldi0+
dnBjaS0+aGVhZGVyLmd1ZXN0X2NtZCAmPSB+UENJX0NPTU1BTkRfTUVNT1JZOw0KPj4+PiArICAg
ICAgICB2Zl9wZGV2LT52cGNpLT5oZWFkZXIuZ3Vlc3RfY21kIHw9IChjbWQgJiBQQ0lfQ09NTUFO
RF9NRU1PUlkpOw0KPj4+DQo+Pj4gQXMgbWVudGlvbmVkIGVsc2V3aGVyZSBhcyB3ZWxsLCB0aGlz
IGJpdCBpcyBzdXBwb3NlZCB0byBiZSAwIGZvciBWRnMuDQo+Pg0KPj4gVGhlcmUgYXJlIHNvbWUg
ZGV2aWNlcyB0aGF0IGV4cG9zZSBWRnMgd2l0aCB0aGUgc2FtZSBWSUQvRElEIGFzIGluIHRoZQ0K
Pj4gUEYsIGNhdXNpbmcgTGludXggdG8gdXNlIG5vcm1hbCBkcml2ZXIgZm9yIHRoZW0gYW5kIHRo
cmVhdCB0aGVtIGxpa2UNCj4+IG5vcm1hbCBkZXZpY2VzLiBBdCBzb21lIHBvaW50LCB0aG9zZSBu
b3JtYWwgZHJpdmVycyB0cnkgdG8gZG8gYQ0KPj4gcmVhZC1tb2RpZnktdXBkYXRlIG9mIHRoZSBj
b21tYW5kIHJlZ2lzdGVyIGFuZCBlbmQgdXAgd3JpdGluZyAwIHRvDQo+PiBQQ0lfQ09NTUFORF9N
RU1PUlksIGNhdXNpbmcgY21kX3dyaXRlIHRvIHVubWFwIHRoZSBCQVJTIG9mIHRoYXQgZGV2aWNl
Lg0KPj4gSSBhbSBub3Qgc3VyZSwgbWF5YmUgaXQgd291bGQgYmUgYmV0dGVyIHRvIGp1c3QgaWdu
b3JlIGNtZCB3cml0ZXMgZm9yIFZGcz8NCj4gDQo+IE5vLiBXZSBzaG91bGQgdHJlYXQgci9vIGJp
dHMgYXMgci9vICh3aGljaCBmb3IgdGhpcyBiaXQgaW1wbGllcyBpdCBub3QNCj4gY29udHJvbGxp
bmcgQkFSIG1hcHBpbmcpLg0KPiANCj4+Pj4gKyAgICBzcmlvdl9wb3MgPSBwY2lfZmluZF9leHRf
Y2FwYWJpbGl0eShwZl9wZGV2LCBQQ0lfRVhUX0NBUF9JRF9TUklPVik7DQo+Pj4+ICsgICAgY3Ry
bCA9IHBjaV9jb25mX3JlYWQxNihwZl9wZGV2LT5zYmRmLCBzcmlvdl9wb3MgKyBQQ0lfU1JJT1Zf
Q1RSTCk7DQo+Pj4+ICsNCj4+Pj4gKyAgICBpZiAoIChwZl9wZGV2LT5kb21haW4gPT0gdmZfcGRl
di0+ZG9tYWluKSAmJiAoY3RybCAmIFBDSV9TUklPVl9DVFJMX01TRSkgKQ0KPj4+PiArICAgIHsN
Cj4+Pj4gKyAgICAgICAgcmMgPSB2cGNpX21vZGlmeV9iYXJzKHZmX3BkZXYsIFBDSV9DT01NQU5E
X01FTU9SWSwgZmFsc2UpOw0KPj4+DQo+Pj4gRG9lc24ndCBWRiBlbmFibGUgYWxzbyBuZWVkIHRv
IGJlIHNldCBmb3IgdGhlIEJBUnMgdG8gYmUgbWFwcGVkPw0KPj4NCj4+IEkgZG9uJ3QgdGhpbmsg
c28uIEVuYWJsaW5nIG1lbW9yeSBzcGFjZSBsb2dpY2FsbHkgbWFwcyB2ZXJ5IHdlbGwgdG8NCj4+
IG1hcHBpbmcgbWVtb3J5IHRvIHRoZSBndWVzdC4gSSBkb27igJl0IHNlZSBhbnkgYmVuZWZpdCBv
ZiBhbHNvIHJlcXVpcmluZw0KPj4gVkZFIGJpdCBoZXJlLg0KPiANCj4gSWlyYyB0aGUgc3BlYyBp
cyBxdWl0ZSBleHBsaWNpdCBpbiB0aGlzIHJlZ2FyZC4NCj4gDQo+IEphbg0KDQpJIHdpbGwgcmVj
aGVjayB0aGUgc3BlYyByZWdhcmRpbmcgdGhpcyBxdWVzdGlvbi4NCg0KLS0gDQpNeWt5dGE=


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:42:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:42:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301460.1575743 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYlZ-0002It-KS; Wed, 06 May 2026 09:42:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301460.1575743; Wed, 06 May 2026 09:42:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYlZ-0002Im-GH; Wed, 06 May 2026 09:42:05 +0000
Received: by outflank-mailman (input) for mailman id 1301460;
 Wed, 06 May 2026 09:42:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wKYlX-0002Ie-VM
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:42:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKYlX-008FDx-Bv
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:42:03 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fb0ce3-bab6-0a2a0a5309dd-0a2a4504b54e-34
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:42:03 +0200
Received: from [52.101.48.6]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fb0ce9-1dec-0a2a45040019-34653006f471-4
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:42:02 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH7PR03MB7196.namprd03.prod.outlook.com (2603:10b6:510:247::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May
 2026 09:41:58 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 09:41:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aqXVwc30vxqJclQkqUdhfcG+LHJESWzIWYiKL4WTmrVMK3cHvHP9bTuDd+GNKmhXtPpM4TR0VakpuCxPbQdmoHVBlyqHUMKQt+41c23Cc8WXWl0dp2Sg8oNtA0l1S2Og62xK4pV3XT5BfEOJAM9/G0AY8SIIOwFUarqyTrqceYBUQfGR1x7etruiX/UcnWGG8j9DwWNZGSmHDKD5YgQnNRonG4h7dn07UyYqjh8SdmeEQFlmfH2+8i0NW9Comooe0JXcXcpBEcGOUMoS1hlgg24yM0PrDvtSGXo/YTiOGjNch07EZsD3Eu7Cy7y9Is5FuFNh1jQv+3CR/MVnluJS0w==
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=IqsTuLNhSof9afAQBDQraaBkJujP3Vc/cSPLFr08HJs=;
 b=D9yuebb5bmRztd02urh2lk5tvvGwKV1imiDxlOiGx+7CVg7bYIc3UzVhXzAr665MbJWW9WjvGKFQIwC1WfBt1LgXGUQbcLVVUWfy/YpjLHbZODvpH+xVUteyt1ZdeewP1MQNpptQubh8tQ/vZNqDzLx4u4U5zVTDi+DwSFmDlZSkUZiVIPx2uH2NawupoDaZZC08CvfkM+RhpGO8LDbyJqqJH7ixGOd3tmB6B/QY2wy2Z9utY4oM/cczMp4DV4++TePcvQSPDP3W155GwHBAXmGMeTLq6YtVP5DO08jVjCiqTOZ3MmhB8yty6O2AQjOcqmp0TxFpbTrRtWGIEusvXA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IqsTuLNhSof9afAQBDQraaBkJujP3Vc/cSPLFr08HJs=;
 b=cuDttuwHbJ+yHLH9NZ7M1BjKSh7QNr+SuFD/miYqJtnWWibFsqCOiYj9eqKE22d7PxW0oS+2OAZEyAcNsnkRQmobd7WQ/jNqiVn1LAk4/Zx7VuselMH/BTznp1t7hrrYCB+mGVUmav1d6x+UYbbnAkjhnicyoUd2IeaQLq1/+jM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <8337539c-8a73-4222-8afa-94cf11c278d5@citrix.com>
Date: Wed, 6 May 2026 10:41:54 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260506073719.40075-1-roger.pau@citrix.com>
 <20260506073719.40075-3-roger.pau@citrix.com>
 <41ec5134-b117-47ee-8e59-682ac1e4a69f@citrix.com>
 <afsCn28tVltkg0u5@macbook.local>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <afsCn28tVltkg0u5@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0011.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:150::16) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH7PR03MB7196:EE_
X-MS-Office365-Filtering-Correlation-Id: 0808c1ab-0190-4653-4ea1-08deab53b75f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	9DCAAAkRmiXcnhmj88C/O75uO7XWvg2cHgFTi5unCQhGq5pZHffQGFc+/Q5Z2OKsTKKfq1mP28hGO0uRZnZ/xr1j5hcLfrBW7m39qPEGfi7Uk/sYZO0b33cF9I74/0A+kOzhab+kG7o7TijobQtaypP4UGbhZdzTj4lTPg+f8at9QFSjnZot/zhBLrv905vj52wlqF3ezKhNUxtHQODiXK3FcC1i6nmopmV9gM/s7zuTLllRmUaW46qaBa961U+uCWFxF5HDVQaZ6v6EMdUivIrOayuzaevLLcFwSzW/QCOLVHEBaFg9CNTlHVCKzqMlMlbAu4smX1W57wF4aKxPMzg9Ptkd4OfsJie2kKyDOUbt4QRO1fCHn0LK3ZYG/WKobmpB7rjVU6GWWdLtYbeZuLMUwOM4ChTIGZan8uqDteJRpYaaXnvoJ29TfctdojNwP3mtlsxecwQXCmL1DpJ72l9IjyV0YOxSKW8hFdaL1D6JWOTChOe4w/I8n28i4qMpBQytOpaNoVo1LfVxY3xIVWtaEaSTodLJbtVE+ZoOXghOmf70I6e2ddIIlbTfaWH8pXsK8yBttelZtwUCwQl8+0DJyWf4FdpguKFp6wySiXtZD/ymTMCVYI+IZEYVUjYIFJ4zJrsC+nZX3Nr+BE8FXAWFwSpPjAoXDg/T0nkm6N1pmJN98V/DAuH8lTpS5bzs
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S0ozdHJaZDZZWDYvYzNjcXo2eWkzbUJOVFNRYjFoWUdYYXJkcmZ5NE1tU2hG?=
 =?utf-8?B?emNpRGFRbmplam1zRzAxMzlscXFwTWFPREN0U3g0QmpKWk1RN3JjTmVXME42?=
 =?utf-8?B?MmtWMktrRzUwMkRaU04xemtFaEd1T1ZjUndJd2pWL051TTEvVzBxcDMyNkJx?=
 =?utf-8?B?cTlPQmRkSHptblNrWFFGSGtSa3g4anhSV0FseTVVYXBLcHJqa2o0eFlMOUJL?=
 =?utf-8?B?T1A0S2JvRTk5d1hZclY1VUdyR0NoalQwdzQ5SHBMSlhZdmhZN0FMVWFDK202?=
 =?utf-8?B?RnZyMmRhUnp5QlBhVkJtR2hrYlpyR0tCaVd5a2tiYVBibWFENjhORDVKVFh5?=
 =?utf-8?B?REJhZzV0cER3Z3hjUk50VUJhd3pUb3k4TnJKTXEvUFZRNk0xb2wxazQ1dFVv?=
 =?utf-8?B?WkFNejA1QnVjazhnRXNLZjRkZ01tcGh3T2dhVXYzeVZDM2RTZTZxU3lGenBn?=
 =?utf-8?B?ekJMNUovcDgxR0pJekp0T0ZXdnRoOUJVdmpiM1d1d0pjaDZpWk5sMGdCbHMy?=
 =?utf-8?B?THVXaWV0NTdLb1NJVGNDUHdlMjVIWGlYSUpxaTNMYmlpdUsrTElwcHlaYVFV?=
 =?utf-8?B?STdHZk5DbU5CUFJOM0d6ZERFQ3p6T2J5SUVndncvRVlGcjBWbkN2N0ovRllD?=
 =?utf-8?B?bXFZYlZQUUx6ZmxvWnhjQVN5dHE1Tm8xendnckpHamllQlB2Wk9tT3ZiNEVV?=
 =?utf-8?B?WlFPRjRvaXpaNzRXVE8wV1lhMGhxYkVDVjZEMGFwTU5vbXZ6d0hMZTdDZnNZ?=
 =?utf-8?B?WXlhelg3b2dVaURrV0VURkszVjB3VStTU1dZWmRmVEE1UVN3NHdJNWJCbkRq?=
 =?utf-8?B?bU1MZWlLTUEwcG52bkpDYmozRzRaUkhuWVM1bmlRTDNQZlhPMkJNVTBuVjNq?=
 =?utf-8?B?QU10QmpndVd1b1ZVNDNxSkVYM1lFOS9FQTBLQkk3U3dtNzJCRjdxSTR1OTdk?=
 =?utf-8?B?QjA4VVE1NTUxWlVMbWNENHArN0t2YkhiTGhueFdEWVUwMWpzRDZoc3grNHQ4?=
 =?utf-8?B?UTB0bC84czdXMHZSUjBrNFAwMTNQYTU1eTZNNHVvSWtYR01SeU1LYlNGRXA0?=
 =?utf-8?B?aW1lOEU0RW55dnlQRUt0RHZxSE1yMlZoTHRuVkM4Wkk1Z3lXQ1pkVlJtbU10?=
 =?utf-8?B?YUxnWFhsTFlYbWxCUWtUdnp1YUV0Y3EzOEQ5L282RnprVjQ0enJJODYyMFUr?=
 =?utf-8?B?SW8zTGhiRllKUHgyZnRwYUI3NytlN1FWbEpRWHVKYVRMbXRPSjdscTNaT2lh?=
 =?utf-8?B?WEFENisxcHZVaVAzUDJnZUdhSG5TOFRHMkhTNkxuYTFzRDFGV0ZiYjdSbHkx?=
 =?utf-8?B?RWUxdzZiRG82YTFEck5Ib0hVZ3luVXp1Qy92YUV3V3NaZzF6TkRPK2NoNGxy?=
 =?utf-8?B?aDhpd3pBTlFIeWljMmhraUt2SFdNUW5MRERCd0pITmg3Y051Ykg4M1QvSFVi?=
 =?utf-8?B?bTlTSkJTcCtNV3docGoxZVY0WTJvM0wwWm04V2t3TVpkVTFkMnIzdWpsVWh1?=
 =?utf-8?B?eElxeDZXcVJmKzJDM2VWN2JmaS9xWHkrNS80Z3BSN1lYOUFMcWJxOGFvVk04?=
 =?utf-8?B?WGNKVlVkb0FLRzVVcnRacnY5MU1DWjN0T09rSWhuWTFDbFNRblEyeWp1MlZP?=
 =?utf-8?B?YndPSlI2WndiRVJVSEpvR0p4UW1hUlRFRDhSWFIwTVdWZnJTVXBwZGN5ODN5?=
 =?utf-8?B?Y3NiS2RteG42M200elFwQTJ3WmtsZTU3RC93QTVGVFl3OW4xSGFpdE9VOGpq?=
 =?utf-8?B?Z2VJSXpVNFFuVjdYd1p2OEVvKzhNM2ZCWFlNMEpBMFlFQXBUdDNhQlJIZVR4?=
 =?utf-8?B?bk8xd3d6cWJ6TzBHWFJScHZzWVpQTFZublczMHhvTlY4YlRKYXJYZk94SFB4?=
 =?utf-8?B?L1A3UllrQWl6QldRVkoxSWg4cmwyWkEzK2owWTNCL256bW1jR2ovUXdHZSth?=
 =?utf-8?B?dDExR1NtaXB3dlNTa1pFZzNOM1NxWFVhMzVSYU94U0ltUngzc1ZoRzZEanE5?=
 =?utf-8?B?Y3FwRU1pc1R0SjhpSmtBc0YzT2s2eDBUck9aemFOMzlFMUxvSWNCbnovdlUv?=
 =?utf-8?B?SWswOHhkdFNjWkR6YjNsQklDYWZ2amZBVXVCTHVsR05ValptNU44RWs5QWFW?=
 =?utf-8?B?MHV3SWhkQVBCdUZZN00rMDIweFEralEwKzdlZjlGczdGL0pvOTFNK1VCYlE3?=
 =?utf-8?B?SHpRL0ZVRWlqN05zVmxNZUwza2hrZFpUZDVnTFRLaWZwcHpvNEhlZ3RWM24r?=
 =?utf-8?B?K0kxOUZrNERzZlJHbi9lMXdaY0F5OThmRTNIQ2RqYVN6RkZ0dGpYZWJET3Rz?=
 =?utf-8?B?TlJjUmhyZDVUdHB1dmo3YlZ6Z3VwRUdPSnpMWGloaDQ5UFVCTjNTRlRwc2Rx?=
 =?utf-8?Q?l0nw21Ro1h4ztyd4=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0808c1ab-0190-4653-4ea1-08deab53b75f
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 09:41:58.1238
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cS+mlVzY11glrkdWmWvIQHLAJS+MgqA0E7GpSWObIrROJzkqnrjjRWg4/0ZjiODjyay3B0QCeEu4qP/Svx09rMam98Yjj1cwfOrW8sVGlwg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB7196
X-purgate-ID: tlsNG-ebf023/1778060523-4014E3FF-254269E4/0/0
X-purgate-type: clean
X-purgate-size: 3773

On 06/05/2026 9:58 am, Roger Pau Monné wrote:
> On Wed, May 06, 2026 at 09:20:07AM +0100, Andrew Cooper wrote:
>> On 06/05/2026 8:37 am, Roger Pau Monne wrote:
>>> Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
>>> say the least.  We don't know what registers might be there, neither what
>>> values might be safe for those registers.
>> Minor grammar.  "there, nor which values".
>>
>>> On a forthcoming platform doing
>>> the zeroing of the MMIO region can put the IOMMU in a broken state,
>> "does put"
>>
>>> which is not recovered by the IOMMU initialization procedure in Xen.
>> "recoverable".
>>
>>> diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
>>> index 76ae78e5ea53..8bf5ca4de18f 100644
>>> --- a/xen/drivers/passthrough/amd/iommu_init.c
>>> +++ b/xen/drivers/passthrough/amd/iommu_init.c
>>> @@ -1367,11 +1355,14 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>>>  {
>>>      int rc = alloc_ivrs_mappings(iommu->sbdf.seg);
>>>  
>>> -    if ( !rc )
>>> -        rc = map_iommu_mmio_region(iommu);
>>>      if ( rc )
>>>          return rc;
>>>  
>>> +    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
>>> +                               IOMMU_MMIO_REGION_LENGTH);
>>> +    if ( !iommu->mmio_base )
>>> +        return -ENOMEM;
>>> +
>>>      get_iommu_features(iommu);
>>>  
>>>      /*
>>> @@ -1381,6 +1372,11 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>>>      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
>>>          return -ERANGE;
>>>  
>>> +    /* Read current control register and forcefully disable the IOMMU. */
>>> +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
>>> +    disable_iommu(iommu, true);
>>> +    iommu->ctrl.raw = 0;
>>> +
>>>      return 0;
>>>  } 
>> These two things are unrelated at want splitting into separate patches
>> at a minimum.  The removal of memset() critically needs backporting.
> But is it safe to backport the memset without also backporting the
> disabling side?  We might then be dealing with an enabled IOMMU which
> could lead to all sorts of fun.

I would absolutely take working with a potentially active IOMMU over
zeroing the registers which don't appear in the public documentation.

This is where BIOS norms save us.  The IOMMU can't be enabled without
active OS negotiation, or DoS wouldn't be able to boot.  It is only in
the past couple of years where this has not been the base compatibility
case on all systems.

But I see your point.  Given that we were clearing the main enable bit,
we ought to continue to do so for backport purposes.

It would be nice to have a printk_once() in there so we can spot when
the IOMMU is enabled.  I expect it not to trigger but if it does
trigger, we've got more investigation to do.

>> As for disabling the IOMMU, I'm not certain it's wise.
>>
>> Linux can already "bring up" an already-live IOMMU and Xen needs to gain
>> this ability in due course.  This is mainly for supporting PreBoot DMA
>> Protection, but also for things like the kexec environment.
> Note that Linux (when not booted from kdump) will do a similar sequence of
> what I'm attempting to do here for Xen and will call iommu_disable()
> ahead of attempting to enable the IOMMU.

Lovely...  That's broken.

The AMD IOMMU makes this especially easy to do.  Each of the ring
buffers have enable bits separate to the general IOMMU enable, so you
can temporary disable, move the buffer and clear the ring pointers, then
re-enable.

What is critical for Preboot DMA protection is that DMA translation
doesn't get turned off.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:47:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:47:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301470.1575751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYr7-0003AL-74; Wed, 06 May 2026 09:47:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301470.1575751; Wed, 06 May 2026 09:47:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYr7-0003AE-3I; Wed, 06 May 2026 09:47:49 +0000
Received: by outflank-mailman (input) for mailman id 1301470;
 Wed, 06 May 2026 09:47:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wKYr6-0003A8-CN
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:47:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKYr5-00FW3M-PI
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:47:47 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fb0e3e-bab6-0a2a0a5309dd-0a2a450a9ade-14
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:47:47 +0200
Received: from [52.101.53.42]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fb0e41-56b3-0a2a450a0019-3465352ae8b5-4
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:47:46 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA1PR03MB6529.namprd03.prod.outlook.com (2603:10b6:806:1c4::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May
 2026 09:47:41 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 09:47:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JuXmW/zWwQYzqP5eQdeszZJ1dd7ptukDalZPpLMvprLam9uTq7idt0DosmbCZY+yP+BGNVdoaJ91nFJEU8U+dIfD23X5K106hlCOhoo667YfUpZhSZ++NIejSAF96queHH8W+7vTvJkz+5cxg1MOpnpKV4AZzKncJuRVB+PUUhZcSDMiSdavE8d5XLD9JdX/d9GbussrQwM0NUMb2FvenpG5+8SI0DkkSq3bBYTtMN1MqVhsXaaOxkd8mRd0xu8hWLZLRiTYqbFEEvfpymRVoajLlniTF5niSLFcvO/b+dpXSE3SCFSo1IRz8c5459s4AeaiiLnjhRfFO2myL0C1fg==
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=3862DNWhPz6+26s4MisG040VMGxUMaxeDHkmR8grFlQ=;
 b=Il+X4oeA1R14S5SvyzrLEOd0FXNs7GXGG+42bPTNL2Wz6U0BHU5jtvHLFSJnQgerx81ypDQ5Nu+vCO0Ta87hfp4CXiwbsBnLyWWz8BWktnPZKvQkM8SS44czz04ZYtxd4CAATeb7j6RnttpMKvqcTSVyCBkdiql4wLG+a2hl3SjqFJBcSXS7iLgzJ7zOf4AlrzsPA/cg6hOIK58Ib1qPxVk7qWF+kadFIhxEQHcrfssSbmZjQSqmrxbW3SVRKu5oJ3IXlTCFqKvvGNGGnNhi1en31eZI4vbYrTsSuAxvKD2K7gQDRJoONtm7bpx4nV/N7qKiAMIFpxLPgvcJTHjIrA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3862DNWhPz6+26s4MisG040VMGxUMaxeDHkmR8grFlQ=;
 b=jWtTbEAYZtKvZk0crq49VRnujL0FWCgNqFV1f4isWAmBjQycndIfQ8iHPoKZo+H9AGXPUgz/MuJgzL1/EIJVF+T5oMXKfPyj8691UQJjIAHyGdrVbZT1xgDum5Plp7kOlHQjyxodiZu+2qvsVpHZHIXBeWfR6dG8aML3Bh9QMP8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b47302bf-50a0-4535-b5b2-42d8de3f6dc6@citrix.com>
Date: Wed, 6 May 2026 10:47:38 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: Re: [PATCH] x86/time: make do_settime() uses more accurate
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <99a4a514-3ed5-43f7-823c-54771f3bd03d@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <99a4a514-3ed5-43f7-823c-54771f3bd03d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0220.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:33a::18) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA1PR03MB6529:EE_
X-MS-Office365-Filtering-Correlation-Id: c83e1868-c1df-4119-0b62-08deab548422
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	wZ1bgUbwtuwA2Vb3SKFeRqU+fWFlvv88gYlEl0UVp4akDlg1kx+FtXA/GA7+2VJXwWkgGFRI7/cjuLQJ9aI7sQU7zv0z2rgqsq9Vs4mPNK7rNjVRD10Q4MDF1KY5PaawZ0uzHr6X+t9BQ6LInMkr3m+rAcanQdZs07PPWZleKKmftqhbujjnDqY+HbttyMv9wO3hXqVnwJbVU6sGGgO+B2GRiG/WDpr94onyZ3q6v3jGgZPnqhZihjtl4WwhL3j499ihJNLd7WPXRBGJ0jStxLPXkMHwz0+qv6j34e+gHPmI4TXZ78pbmKsBz+SrJ8VzMeySOdc5qsp/UupdRAsv0Lqu5ay8y2l7JRuvseTRN6vQEz11PTOOfz787L//SVnHG/Jt0bXg+63ByJK5JAl6pehlKR1K58E7cAZGWjVpdk4tXAtl2RDyYEZfi4Cfh8RMGI262AYx1vM8xA0NSMTDMW8CmMh1AFykpz1kCtw6IGwyLR6jlIzCObaEfsLL1HoCgxuwPjdsJjvof6pwUJXsBfIz3xTzv8sD03v3rNU3Llmyik86waTNfH0DIYE9z0YHQzwP+WB/bJTT0KJfUee+4W5BFHQpv7vt+DjnIboiFQv7rm2x02cvUCQ+p9N+AyA3fO6c5Py/RGj0zLgShRHvkeIWftvyEmjVdtFvYUaDqmUmM2w9COqF/XjmjKp38Efd
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YVljZWtKNGhTRU1pZ3dHYVZvdlRvblgwc3R5UDJ5Mi9HTWl5amJSTDlSU0RT?=
 =?utf-8?B?ck1aWGtLMFZDc1RNVVZtRUxpV3kyc3VoejFkZ2p4aFJuTFJBWGR1Z2ZJejZp?=
 =?utf-8?B?dzV4dVFJVnhxSENpZGh0QlZ4aVZuSzZUMDFvV3liMjZNUE9HUWJGYTN5WSt4?=
 =?utf-8?B?Vnhhb0dYbjdxaHhsd2Z6NE1RWFg2VnMyR0ZBZHQxMWxmVExaUzBRd1A5RzdN?=
 =?utf-8?B?RTIyR0ZtakRuQVRPdWtBOHVYMGV6LzhEVEZ6eDNONEJjL3FjNml1Ri80UmQy?=
 =?utf-8?B?WGFuZzNOc0FMMy9LYThTaXRUNlhkK3lJUENLN0R6cTRpNlZSNkpCZFpVaWNh?=
 =?utf-8?B?eHRkTW4xUXFtamhoUFkrQjZhaEM0K2QvdUN2emQ1RTFsRE1rTWNIVGtNMGg5?=
 =?utf-8?B?R1pnd05vUUU1UDR0RXVTQ2hvY1ZPaFlqb2MrWmV3M2xudHJ2WFh1TVVGeWta?=
 =?utf-8?B?NXR3czNBdFIrY1hCQkF1MVpIM1ZNengzUGhoQkM2Q09idWo3L0VYMWpJU29p?=
 =?utf-8?B?a1lJZ3NISzhSMG1ZTUFiZVVlcDNtQUpLTjk1RElyQjArdHZhRzZNYkpwdjBu?=
 =?utf-8?B?WVltTlU2ZnpCNmpQUEFyblZmUXBBMnRpNnpUTmJETDJaaG5UNXhiNFNSc3h4?=
 =?utf-8?B?a2JxR05SQ2VDU2k0aTJQb0VLbFBodWw3QkxIekx3Q2FVWjRpNkxZclVBUU1L?=
 =?utf-8?B?d1NxL0lHQVA1Nk1Tb1RqVGRFM05waVdxN0R5b3JoeEZrMFJmVUNaREFnVEZD?=
 =?utf-8?B?S3BQQ3FtWG43bVNLdGxkQkoxVzNCWG1vMGpoOWlWQlJlSDBtajBReUlESnA1?=
 =?utf-8?B?SGhXMmdMamlVZVMwQUxLOWJhblRNK0taKzdLT0RYSXk2eEtrOCtNekxZZnFS?=
 =?utf-8?B?MElkTmFGOENBS3U1RkFsVVBSZWVDdkJRamh2Z3lTd01WbkhmWm1iVDh3WC9a?=
 =?utf-8?B?UklXTEIwLzVab0U0ZGltUStzcEwyWmZWbS9oTzJsOGVzSmxCeXlEbWtVc2x6?=
 =?utf-8?B?RUsvZG8vMEl3SVlzd0dGbFRheFRqSkl6cGZUQU1YaWppbGRMUmk0QitWRnR6?=
 =?utf-8?B?V3M1L05SSlQzbGtyZmlqWVVXZlVwbjQ5NW5ja1pJWXFaU2diSVBuRDNqSnNN?=
 =?utf-8?B?aGVkMkFOTnI5bUxLRElSVXV3NnJQbEFZa3ljUjZOUStJOVFpMHlhVGt4NU5D?=
 =?utf-8?B?cE8wMkJYSkF5anRBaEZ6OWthZXN4QUlCOThYQk5SU3dxVUFFdksvN0o4MGVL?=
 =?utf-8?B?Y0NiejVER2diL2lMM0NreGozU0JqR0h5cklqSEVMZW1YQmkvd0pJV0p3UmNE?=
 =?utf-8?B?a05Sa0dVZWRKMnh3OWdDRDlra2c0Q0U0eW0ycWlRTEJoSm8zZ1JFdmppMUpq?=
 =?utf-8?B?SExRQU5HNEt5TldsYW95OHp2MzkwZ2Y0Z3EybjJUTGdlRVJHY3UwV3QwV1VP?=
 =?utf-8?B?T2I3bXZxaU9Td0hZSGJiTm8rVFEwTkZsSFc4Wm5iK3VKSlp2SGU2VHBuWGQx?=
 =?utf-8?B?Q2QzOE5VTFNEd3ZGYW85UGpFbWxLK1VxNzZGTFFtTjcyOXlTQjNBUW4yYldp?=
 =?utf-8?B?TDV5TC9ZSEMwYmhwVGpmNnk0QkNCL09Ca01NM05zSWE4UVl2NXpSbVpFWHo2?=
 =?utf-8?B?a1IyUnVkRDhFR0kwU1YvTGcyanl0MGk2K3luM1hZdDZ0OUx2dVI4MituMkNv?=
 =?utf-8?B?bkRpMGRKcGtzVXZENW5sMjkvbmJKMjY1RmRmZEYzVlhFRTNTYVhjeTVxNDF6?=
 =?utf-8?B?UzhJdWpyenJsMXdHVThNbk1RYWNyMkI4QzIrTzVSOHE0bngrK1JIdzE1eWMx?=
 =?utf-8?B?dWRFSnJvYi9DcE5HSVZncXZjRkxPZ3VaaWVZNEtvUWY0Vnp5eklyVjBpY3dM?=
 =?utf-8?B?dktnVFB0RlFzZjdvMWFpWlBDVXRlYzRzeUp4TGRYUGNqQS9QQVZZdXBaVXpY?=
 =?utf-8?B?UFZCVzJmV1BuQlFLRG1iaGcrWlNocWozNk9xSy9DMGVtTU1Ia28vRDhob002?=
 =?utf-8?B?WEo5ZTJacjV0YUhHOXlyMnRTaWNaQ3UrTjg5U01tQ0FWWWFia2hsQy94YXJV?=
 =?utf-8?B?MHcybXovWnVMYlM3c0ZGZWVkaFhjOStrbU1LMDcyU2oxTDhwajY2WkZUenFn?=
 =?utf-8?B?OFdFcUN6RFVIZTF5TnFGbXQ3SUFuRll1YVdyckN6NnMrSWV4ZUZXUUtKSE5V?=
 =?utf-8?B?R2VTYTZWblVXNCtXbzI3TVFDbzRNQUFmSFVVZTJjeFRBUk1LY1FPSk1IN2Vl?=
 =?utf-8?B?aVZpRmFJNEt2bjdKYTExR0dkbGY0VlFlbUZTUTEybkRCb1NoQ2g3V0lRejRV?=
 =?utf-8?B?NVNjWkZON2NqNW1xSlY1ODYxL2FnTkg3Sy9MMTJ4dzRDZ1VqcnpKMEpTN1NZ?=
 =?utf-8?Q?F4MZxF6MCA9VQV0w=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c83e1868-c1df-4119-0b62-08deab548422
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 09:47:41.6312
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2cuVtP3BCiyTMFVUGuhfJDmywN65Y2cOLEomEV1arW+I1PTsYwPGZ0NQxE/ppA0ktNaiunaMEJPK0oN2+AWjdJkvJ3O34QcxHfgrOJq8cvk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6529
X-purgate-ID: tlsNG-4011c0/1778060867-7DF838B7-8DE43AA8/0/0
X-purgate-type: clean
X-purgate-size: 1751

On 06/05/2026 10:35 am, Jan Beulich wrote:
> As a comment next to one of the invocations states, get_wallclock_time()
> can take over a second. The order of evaluation of function arguments is
> in principle unspecified; in practice at least gcc looks to be evaluating
> them from last to first. Hence with NOW() invoked first, the respective
> value passed to do_settime() can be off by over a second (which is in
> contrast to __get_cmos_time() attempting to get the time exactly after an
> update, i.e. [pretty] precisely at a seconds boundary).
>
> This also addresses a Misra C:2012 rule 13.2 ("The value of an expression
> and its persistent side-effects shall be the same under all permitted
> evaluation orders") violation each.
>
> Fixes: f64134cdb81c ("x86: Fix time_resume() to notify all domains of wallclock change")
> Fixes: 0bfcf984b727 ("x86: Reintroduce clocksource=tsc")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Of course the time it takes to do all the CMOS reads (or whichever else
> wallclock time source is in use) also results in an inaccuracy. For
> __get_cmos_time() this might be solvable by having it latch NOW() before
> doing the 6 reads, but in particular for efi_get_time() there's hardly
> anything we can do.
>
> As to Misra rule 13.2: tagging.ecl lists the rule as clean. I also can't
> find any deviation for the two instances fixed here. What am I missing?

>From deviations.ecl:

-doc_begin="The following file is imported from Linux: ignore for now."
-file_tag+={adopted_time_r8_3,"^xen/arch/x86/time\\.c$"}

I've said before and it bears repeating.  This claim is false and should
never have been put in to start with, and time.c is not impacted file.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:48:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:48:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301478.1575760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYri-0003iF-IE; Wed, 06 May 2026 09:48:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301478.1575760; Wed, 06 May 2026 09:48:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYri-0003i8-Ei; Wed, 06 May 2026 09:48:26 +0000
Received: by outflank-mailman (input) for mailman id 1301478;
 Wed, 06 May 2026 09:48:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKYrg-0003hx-NV
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:48:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKYrg-00HCqb-48
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:48:24 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb0e67-5cb7-0a2a0a5109dd-0a2a4502875e-4
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:48:24 +0200
Received: from [209.85.218.50] (helo=mail-ej1-f50.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb0e67-af86-0a2a45020019-d155da32d4ed-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:48:24 +0200
Received: by mail-ej1-f50.google.com with SMTP id
 a640c23a62f3a-b9382e59c0eso981838166b.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 02:48:23 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc55f30a2cfsm61872266b.57.2026.05.06.02.48.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 02:48:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778060903; x=1778665703; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=zoE8x6AZyFV8b4Hk8uB8r7cxZqKnUgwsB6f57Kd4bDY=;
        b=PSXuSEhqdo9mS2z3fCo4o66dQ04w4zznKnVR1gJfBCpFSm17wJm3stmBqGExYFP1rq
         XwSVPofVgWlXcz9ss219d5u50a/R9V81nbKz8JRM+N/Jd89wNJ3yFXhGHDNuXwrqQ04G
         RG8/spK8YK23uAiDN/+fJQfwSgFH1xbsuKHuOgMuxlRVgD9h8fIR+gj/s/RB/f+yhirh
         TWo3luOpvApBMQxOzLH29hS9jACeRdvR3d3+z9nqKlZL9N3Gw4yq/ySCqFeIjOg/l8Od
         2KZHFoMHgRMgwLNT5e1y8keY40KRItlixidZL3qWd7tuSSirhxHIvbBZwbBFqToYu1j2
         aEeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778060903; x=1778665703;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=zoE8x6AZyFV8b4Hk8uB8r7cxZqKnUgwsB6f57Kd4bDY=;
        b=Jxtau/hE/r/zjlSCo8GxdSjvrsjy+ltHl07lEnwZ0uAAhnH3Jk0pujI1n4PixsDhJU
         lcVtWXJ/UxkzP5FXwnZyPTdOjB+UcwS2Pshwk/f+ZigiFj5mxiuqXcbih0sVtkaWfBPh
         0o7dQmo5F2ogSOsZheBVaszpgevyIrBLXToH4Z0jlA98fHWHXs/lUGRlRoRue9jQ/Ugo
         shqMWSyYZXEourhseno8oGhPSPZ4Xo8Zr9z+4LC+M9yl2P5v5MZFRpr8szpuz6clO/pC
         yX8aUUXlbdLkEKunT0empBGo536a8V0sSpYcaMYdAsYQz2U7J+s8bpmZwSwW24z6COD8
         kwPg==
X-Gm-Message-State: AOJu0YxAiq6uIg32FNiUA3DadV7DKP8NAaaTMIk9rBDFIKhPmymCICTL
	qBQOV5LNDY6YQlq83yJ+PcvG8QpVKclNcGtrP8QxQw0JHPGy3oB9xugo
X-Gm-Gg: AeBDievSZtuAtnoCffoOPow+O2hq41vBS2SfDT/xU6QRlLmN1J9Xda0vZR/sEkywKkT
	mbdurhPG2ozWmfLQV1Ehc/InE0XFW/xPjfoU1AqOuWaVVVbgJ0aqjkSwvFdM+MJeTzX3yS7WXqJ
	9/IZkz+RZzjP32nXqXHHMGPVmT3yAbLa7DxsYJ5JRs1Rpmo3PfzFfe1J0A7DIZ5DoWV4ThPKFB9
	AhT7sgkcMHkD0Eh2DOLwbPDNI3ygiQw0Fzve2wf5Psmk1w6hKWqIm6y3R0CTMTyVSxZ7Ad066Jq
	WbMNqlS4iMnZLxzHR+za5NYuuiKSHciF0wRwQ0QdO831AlP+nRb+s8mDaxL3y2tFCxg5queBo6t
	Kkuljwd9Ioo1T8H3iho+eq2ITC2P9qzWrNGVXKhveE4NDVvhvfP4WK6EZmR1WpU0GDknpZdTkAX
	cI3hbII4KOrIv1CVdaIekv9lgS38DO6O67vpC0JDyaNAHQcCfvxxZo/0jIpNOhY7EgLgvBmhPXr
	iGcSlPM+YunUg==
X-Received: by 2002:a17:906:fe42:b0:b9d:2fce:308b with SMTP id a640c23a62f3a-bc56d80c34fmr115713166b.30.1778060903344;
        Wed, 06 May 2026 02:48:23 -0700 (PDT)
Message-ID: <bec36dbf-5df2-4756-a81d-7938e8d58104@gmail.com>
Date: Wed, 6 May 2026 11:48:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/11] xen/dom0less: rename kernel_zimage_probe() to
 kernel_image_probe()
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <d87dd4f04e3f0d421485091cf434a088f6693641.1777303844.git.oleksii.kurochko@gmail.com>
 <EA0D6439-CA9E-450A-80BA-442A7C8F0A28@arm.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <EA0D6439-CA9E-450A-80BA-442A7C8F0A28@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1778060904-83D67161-83155A11/10/73395122804
X-purgate-type: spam
X-purgate-size: 4561



On 4/29/26 12:59 PM, Luca Fancellu wrote:
> Hi Oleksii,
> 
>>
>> diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
>> index 9395b5af8745..a5554714cd7b 100644
>> --- a/xen/arch/arm/kernel.c
>> +++ b/xen/arch/arm/kernel.c
>> @@ -101,8 +101,8 @@ static paddr_t __init kernel_zimage_place(struct kernel_info *info)
>>      paddr_t load_addr;
>>
>> #ifdef CONFIG_HAS_DOMAIN_TYPE
>> -    if ( (info->type == DOMAIN_64BIT) && (info->zimage.start == 0) )
>> -        return mem->bank[0].start + info->zimage.text_offset;
>> +    if ( (info->type == DOMAIN_64BIT) && (info->image.start == 0) )
>> +        return mem->bank[0].start + info->image.text_offset;
>> #endif
>>
>>      /*
>> @@ -111,19 +111,19 @@ static paddr_t __init kernel_zimage_place(struct kernel_info *info)
>>       * and above 32MiB. Load it as high as possible within these
>>       * constraints, while also avoiding the DTB.
>>       */
>> -    if ( info->zimage.start == 0 )
>> +    if ( info->image.start == 0 )
>>      {
>>          paddr_t load_end;
>>
>>          load_end = mem->bank[0].start + mem->bank[0].size;
>>          load_end = MIN(mem->bank[0].start + MB(128), load_end);
>>
>> -        load_addr = load_end - info->zimage.len;
>> +        load_addr = load_end - info->image.len;
>>          /* Align to 2MB */
>>          load_addr &= ~((2 << 20) - 1);
>>      }
>>      else
>> -        load_addr = info->zimage.start;
>> +        load_addr = info->image.start;
>>
>>      return load_addr;
>> }
>> @@ -131,8 +131,8 @@ static paddr_t __init kernel_zimage_place(struct kernel_info *info)
>> static void __init kernel_zimage_load(struct kernel_info *info)
>> {
>>      paddr_t load_addr = kernel_zimage_place(info);
>> -    paddr_t paddr = info->zimage.kernel_addr;
>> -    paddr_t len = info->zimage.len;
>> +    paddr_t paddr = info->image.kernel_addr;
>> +    paddr_t len = info->image.len;
>>      void *kernel;
>>      int rc;
>>
>> @@ -215,7 +215,7 @@ int __init kernel_uimage_probe(struct kernel_info *info,
>>          return -EOPNOTSUPP;
>>      }
>>
>> -    info->zimage.start = be32_to_cpu(uimage.load);
>> +    info->image.start = be32_to_cpu(uimage.load);
>>      info->entry = be32_to_cpu(uimage.ep);
>>
>>      /*
>> @@ -224,20 +224,20 @@ int __init kernel_uimage_probe(struct kernel_info *info,
>>       * independent image. That means Xen is free to load such an image at
>>       * any valid address.
>>       */
>> -    if ( info->zimage.start == 0 )
>> +    if ( info->image.start == 0 )
>>          printk(XENLOG_INFO
>>                 "No load address provided. Xen will decide where to load it.\n");
>>      else
>>          printk(XENLOG_INFO
>>                 "Provided load address: %"PRIpaddr" and entry address: %"PRIpaddr"\n",
>> -               info->zimage.start, info->entry);
>> +               info->image.start, info->entry);
>>
>>      /*
>>       * If the image supports position independent execution, then user cannot
>>       * provide an entry point as Xen will load such an image at any appropriate
>>       * memory address. Thus, we need to return error.
>>       */
>> -    if ( (info->zimage.start == 0) && (info->entry != 0) )
>> +    if ( (info->image.start == 0) && (info->entry != 0) )
>>      {
>>          printk(XENLOG_ERR
>>                 "Entry point cannot be non zero for PIE image.\n");
>> @@ -257,13 +257,13 @@ int __init kernel_uimage_probe(struct kernel_info *info,
>>          if ( rc )
>>              return rc;
>>
>> -        info->zimage.kernel_addr = mod->start;
>> -        info->zimage.len = mod->size;
>> +        info->image.kernel_addr = mod->start;
>> +        info->image.len = mod->size;
>>      }
>>      else
>>      {
>> -        info->zimage.kernel_addr = addr + sizeof(uimage);
>> -        info->zimage.len = len;
>> +        info->image.kernel_addr = addr + sizeof(uimage);
>> +        info->image.len = len;
>>      }
>>
>>      info->load = kernel_zimage_load;
>> @@ -289,7 +289,7 @@ int __init kernel_uimage_probe(struct kernel_info *info,
>>       * Thus, Xen uses uimage.load attribute to determine the load address and
>>       * zimage.text_offset is ignored.
> 
> Should we update the comment as well?
> 
> Also in here:
> https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/include/xen/fdt-kernel.h;h=4d0467bb396a9cf317954fd511469e7f56d67844;hb=refs/heads/staging#l111

Agree, it should be updated. I'll do that in the next version.

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:48:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:48:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301479.1575768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYrl-0003wX-OL; Wed, 06 May 2026 09:48:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301479.1575768; Wed, 06 May 2026 09:48:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYrl-0003wO-Le; Wed, 06 May 2026 09:48:29 +0000
Received: by outflank-mailman (input) for mailman id 1301479;
 Wed, 06 May 2026 09:48:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wKYrk-0003vn-HG
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:48:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKYrj-00CpWD-UD
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:48:27 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fb0e61-5cb7-0a2a0a5109dd-0a2a4506e25e-46
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:48:27 +0200
Received: from [52.101.62.56]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fb0e6a-7371-0a2a45060019-34653e38f65b-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:48:27 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA1PR03MB6529.namprd03.prod.outlook.com (2603:10b6:806:1c4::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May
 2026 09:48:23 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 09:48:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UlWK8oNns7H8H/7zHcZvCi5/t1QJsg/xqTkHDm4f/oqr0VPDsn9fKHcf74by8IBzsp9oHFtNtPla0xjZ4WKrXoaTSpu8LIdzKbULdGGVQZX1zSe2vQnmffB9RdkEQyN/Erk4oaM4vBXDOM5UvgK29xJ1nqFXD/go+f5MQhT/W4GsSepgf3noE4sqb7XiZFyf4zUHo2O2fTBPG0wGIkPumhEqTfGzV0soMGnLwcGUtH+JHeTiTioqj7KwZVOdOIfJtVmscLWIHE7aw9A1aNnzOvFdxNHBSl1FibaZI/E9ChH47I6rUFILXIiT34S2OB9B3Px1324oHAsX1/vi/RgFug==
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=baUsvVlfGmXYytLEvPEf9tKBeHiYRkM6cBKZhnbFxgo=;
 b=qHJmvn3xEy/TCxhUTVGYSferm65Vdam50ZtYgFJwd0yj01dRbman/mg/UyZvCme1SRktekEv+qwuJag00wn/lvEK2fWrtAg1+kw26pL1Ls4YkyLwFjhVfPO0hyNCj6O+e3WFdiDJP66CW7ORHwg9/vtkz5K+g+LYdahoRjT3HEzDNZWMTDaBgxy2Eraw91SdqG0BEXmdEyCm7fsqmxhnB6G4woeXEdDH2xE0rwbAnx/0TuDWSNnrzLrlOLc7IeVIxiBsI00mdetaPjF3EJWBmNx15EnwLnLQwWwumlIl35vuhCvKj9ukmcwl1/qx5Qo0HMK7hipzOEOiVNjVNRqRlA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=baUsvVlfGmXYytLEvPEf9tKBeHiYRkM6cBKZhnbFxgo=;
 b=Jw2nefne2h/n9aqtx2BHdeuFG1BM3sgNT3Z//e4E67JxIdX4mXnclgr1oeh+J+8PAtSVYBOqFMQkVQhtkgalh5Pkymn2i5Shk8oM7ZrrC2bJa0JL0IaCX6ck+Z+7355c/lGYoEjN/x2762eRCRjnVhB0+uC2Oc0Q8LuPUaIg/dQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <bb0174df-6e69-4b7a-b0e1-496fb351dc75@citrix.com>
Date: Wed, 6 May 2026 10:48:20 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: Re: [PATCH] x86/time: make do_settime() uses more accurate
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <99a4a514-3ed5-43f7-823c-54771f3bd03d@suse.com>
 <b47302bf-50a0-4535-b5b2-42d8de3f6dc6@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <b47302bf-50a0-4535-b5b2-42d8de3f6dc6@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0214.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:33a::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA1PR03MB6529:EE_
X-MS-Office365-Filtering-Correlation-Id: 98277109-b445-4869-c0e3-08deab549d2d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	T25LQM7uCk6T/hzvwydZU7RddtW3yqsd6r1F0d9YyiA47DqiSFZ0vpjuUxi3C2x+J2I7xwsDO2A72F4G8mgy0DucfHpeRK0V0zKewj1g/8C2JAgAiAg7jqM8zXZZerPUT1Q8uoYe7HvOVlRxyg27yL/yTGwyDLEh2VuMUueIUZPU+B7eduqrwLFjxwEwPXMyGzJTSR7JmDHoClW7lM80a6QrAJpJdhkcO/J2MBTUL0SBZSwPY644piPluWRk3uBxwWRqZceKr74eMYeR4JEzzBHjvgJiiJSBv7KO7UGNv19Vf9kXkJwjwttvaGFl0RHKGdoLwdlmJogebxueQ9Rhv7Ccnvf0f9RnYkbeiJ6jUePPmnR5OrR3B97fUHKyVF4rSi1nI1lyCvJ88nDjVZsqS0O4jU03aHEdBkfrYd9fWf9CCOr7Wug2OeVQeLHq1RPViE75gUncAJsnxrXweMiKyzyvEQJ7upQ04jlHn2jtasmG2VSzXSNhyFUJSe5gd2PyCwPxqmh/UZIpANLUKU/g8UJOdCVeyqko1QUGy0ljGozlPkd1l8zAUxIIb7pR2tLkLt81A6q+XRPimHpScnRfDdEdC1okIS/FdvLzOGf2xmG8g3Oo6fewukg/obBfqGEprHnMEe17EhZklDIiH/xBpBBS44kgJij6tjZYW8+VI4wqHsH3oWAzPZo9U1ePfDyG
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QUVOZU11QllWV1JKMWNnS21OUnNwMG1WbmVTOWRSVzFJRk5nSm1yUmxDRGVh?=
 =?utf-8?B?cTkzUmlSRWVRVUh2djI0Y3YrQUdaakFCYTJYdG1GVTUwby95dlFVaG5pMVY4?=
 =?utf-8?B?NXRYTERVdTY2RkpXL1JJd2VDN1BCNGJpTk5adHA5TlkwMU5MOUphWmRUMEJ6?=
 =?utf-8?B?T3l6RFBxcUxzQTVIcENPTmRYZ1h0eUxMQXBGdjAxYVYzV21LczRJK1lheDZu?=
 =?utf-8?B?WFIzMEozNFVzNzVVQ1BUME9Ta0RmWlZYVzIveklid3I1TFZTYmRyZUVnQ3pL?=
 =?utf-8?B?eHNDTFExYWJQZjRWcVpad0N4RmcrT3R2SjJSS3drQnhXdTBPbytWMElMQUFC?=
 =?utf-8?B?SEJoVzZ1MkE4M2g1dWMrSnhrNnlVVDVkeDNGcWdDdDhsSXpZcmFLYUd0WStK?=
 =?utf-8?B?ZWlmMlpBVUxHQm5IUXZqUGV3NG9hYlVnaHpRV0pJc1VMeGI2VFBYRE5GQjZZ?=
 =?utf-8?B?eDJLVllhTVNzMTdJaEU4RmZuYlZDcDZpSUpZdFE4dmIvTzFGRUNJR2hWUDNz?=
 =?utf-8?B?THBHaVdVM1NESTlGTW1SeEc4Kzc2SGxoeVoxdWpYc3d6OWpSQWsyMHc2OGlx?=
 =?utf-8?B?Y25rZ3lvdU50NUFlVHJCc0YvRWYzbm9tYlUwZUNvMCtPZ2xoanBEQy9lb2I2?=
 =?utf-8?B?bWFDN01ESmc1dzU1TTZiSHVzYWNzMC8ybm1TMkoxR3djN050Zzd4T3JDL1p2?=
 =?utf-8?B?dXFhbTY2NVRhMzhwNUtsMkllUFYvWEZjVnY4MmxDdmNzK1Q4OTJhZDcyTDQ1?=
 =?utf-8?B?dlNpUGs3WVV6TkFNTDRRcFNIV1lHNEhkbXZuQXh0cGF3eTJoWEV0VGs1bGZF?=
 =?utf-8?B?U1FjUklkU1VtUk9DK2ZYcWJwZTlsOTNNQ3ZoRUVCTTlMVmZMaUJzQUd6UDJi?=
 =?utf-8?B?MGhNSVM4cHVkdHprWElEYUcxNlVVS0RYcUw2dDdsUUd3RlAxWWNNd1FmUnQ0?=
 =?utf-8?B?ZEJEdzBKRzJzUEtaMGcxKzh6TS8zSTM1RVZ0SmZDTGFpWGdoaDV2WmxuU3Fr?=
 =?utf-8?B?SGMydWFJOTFXdlJXanZ5UTQwQVBJbndqc2hpVWdTTW8xTjUwdVhGRWwxZWpG?=
 =?utf-8?B?TklLQ2Y0ZVIvWktBVDJTUFNMMzRGL05rczBoNTByY0ZqZGo0cmIyOG45dFNM?=
 =?utf-8?B?dmtJbFJZZGZQMjZ4SC8vc1RRdlNoUGVDT3RlS3NsZUVMOFZlQkxxcExnN1ZY?=
 =?utf-8?B?REpMeklQV1Z2ZHVpVGxBOTF2Y0xvdVg5eWt6RHZVUFJCdi9STnFJeGhueUxD?=
 =?utf-8?B?aXN2cldTd0tqMGdLUklHeXczUzJ6VnV6NkRGciswd2dSUzBlbTFnWjBWcyts?=
 =?utf-8?B?SHR2RmpoczZaNHk0Wk91THNWMzlwREdkOXUzaG9oVnlUTG9odDg5OGp2Qmwr?=
 =?utf-8?B?b2ZYNksyb1gwNXo4T1d4VVVoV0xUMWNMbUc4SG54aDJsTm1ZVGIzbVpwSVgw?=
 =?utf-8?B?cGc4MXNiM0xwU2hMSGo4YmcwNmtoTFkxMU9yTDQ0T0dtSGhoKzFLaElxdVY1?=
 =?utf-8?B?UHNwTWoyc3JwUWdsQUpmVVNJbDJwdFg5OGFkOW12aURiNTJwVXJENEtaN2NY?=
 =?utf-8?B?RlVOblBZVk94Z3pNcUNtdU94Um5pMjhxakJmenc4ODNtN1VVckttZzRVQ1Rl?=
 =?utf-8?B?QmJtUDJDWWFKYm9LNXF4UFBiMm82V29Ma2srR2crdXRrL0lNdHllSTBRZDd3?=
 =?utf-8?B?M0RQaXVxNmpLdEhSN2x5OFdRVVhieXpIS2dwZ2J1cmorMjJFS08zdXRad1RJ?=
 =?utf-8?B?b010UFFSSkwwT1pWZWpPNWM0OUN6NU5QLzJqVEZSQXAyMnFzdEpLQVlSSndp?=
 =?utf-8?B?aEhEOGdCVUNoNUJqM0xnQlE3SXBJVzU1VmVHKzB4OVRVTE5pb2dQQkJQUnFS?=
 =?utf-8?B?ckZuRE1VTGE1cllKYWpNNGpWWk41MVR1bXN3aUwzQVRpT0YxRG43QU9ZUkxK?=
 =?utf-8?B?NncraUprZXFBdWpvOSsxRmpPemV4ZCtCTFZERDFFRkIyQzF1dHlNM04rNFdu?=
 =?utf-8?B?S0FtYllkTWRyUHpMWGpNaWZGdmJIVFQ2bElpMnRpRnd1NHF4b1drc2FSeEw4?=
 =?utf-8?B?WmkxYjJHYktxOXdJOFhLbmRoSDloc20vZlB4ZkRnYmFodi96MXhNRmhEMHBa?=
 =?utf-8?B?ajdvcXVSOVBjS3VwRkdWVWQ1aTdHZmY0LzdzM1U4b3BhMUhUMUJOQVlDcW9p?=
 =?utf-8?B?YTZIMkJZbGlGUkhJNHp4WURSeWhCb3pJdXZEN3Q1S1pjWVR5Tm9NbEQzMWtZ?=
 =?utf-8?B?MExnS2tIUlhlOW5XQUVZa3dYbnJLRVdKRm5yNzdvd1BLN1JNbUlNaVVHc1c0?=
 =?utf-8?B?clhVcDAyWmVWNW4wQVllRThGUkU5U0dsdXpLKy9NeEZ3SzhXQ05UVDUvRitQ?=
 =?utf-8?Q?gqPaCyPqrOr0negM=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 98277109-b445-4869-c0e3-08deab549d2d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 09:48:23.6703
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: h7h/aa9pCn+9sDP6PD56/n+ivApxiUSQWuUzif7VuBkCsNjULp+C/rMmc+eWh/p9meJeRd2sQiJKTvl25ChUXOcPXemwBz9FMnitaQZz1PY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6529
X-purgate-ID: tlsNG-16d1c6/1778060907-85361D75-44C8B56A/0/0
X-purgate-type: clean
X-purgate-size: 1853

On 06/05/2026 10:47 am, Andrew Cooper wrote:
> On 06/05/2026 10:35 am, Jan Beulich wrote:
>> As a comment next to one of the invocations states, get_wallclock_time()
>> can take over a second. The order of evaluation of function arguments is
>> in principle unspecified; in practice at least gcc looks to be evaluating
>> them from last to first. Hence with NOW() invoked first, the respective
>> value passed to do_settime() can be off by over a second (which is in
>> contrast to __get_cmos_time() attempting to get the time exactly after an
>> update, i.e. [pretty] precisely at a seconds boundary).
>>
>> This also addresses a Misra C:2012 rule 13.2 ("The value of an expression
>> and its persistent side-effects shall be the same under all permitted
>> evaluation orders") violation each.
>>
>> Fixes: f64134cdb81c ("x86: Fix time_resume() to notify all domains of wallclock change")
>> Fixes: 0bfcf984b727 ("x86: Reintroduce clocksource=tsc")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Of course the time it takes to do all the CMOS reads (or whichever else
>> wallclock time source is in use) also results in an inaccuracy. For
>> __get_cmos_time() this might be solvable by having it latch NOW() before
>> doing the 6 reads, but in particular for efi_get_time() there's hardly
>> anything we can do.
>>
>> As to Misra rule 13.2: tagging.ecl lists the rule as clean. I also can't
>> find any deviation for the two instances fixed here. What am I missing?
> From deviations.ecl:
>
> -doc_begin="The following file is imported from Linux: ignore for now."
> -file_tag+={adopted_time_r8_3,"^xen/arch/x86/time\\.c$"}
>
> I've said before and it bears repeating.  This claim is false and should
> never have been put in to start with, and time.c is not impacted file.

is not the only*

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 06 09:55:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 09:55:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301496.1575778 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYye-0005mr-F3; Wed, 06 May 2026 09:55:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301496.1575778; Wed, 06 May 2026 09:55:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKYye-0005mk-Bd; Wed, 06 May 2026 09:55:36 +0000
Received: by outflank-mailman (input) for mailman id 1301496;
 Wed, 06 May 2026 09:55:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wKYyd-0005me-4M
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 09:55:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKYyc-00FYJY-BV
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:55:34 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 69fb100e-bab6-0a2a0a5309dd-0a2a450ac94c-26
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:55:34 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 69fb0f9d-56b3-0a2a450a0019-a237832fa2ae-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 11:53:34 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id BCFCE4EE3CD2;
 Wed,  6 May 2026 11:53:33 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1778061213;
	b=px8G2yXEIN9aQ0VKbJeoLEXkn3Pqgo1XmG1bO7jb80ujXnvEGjXCtRJg+M2EdiIULwGi
	 5c4yziMexQoRlWyC5CZCPjwIkJdtIh+ik2ZDR2fJKhyc/HyOnu5+DBZvi5WR5HbyJK2xp
	 f5ef142YxTojay6wZLwuxKqZT8JEL6LpjdutwfX7z/9H/zNfHMU1l29WDI1/RyBkNzDaf
	 OUu8vot3hsunXEW0UY3QdCi+37MKUckLSDJ9asIRjyo40MuWBy6oEzwGYrjqGl1jx6tLL
	 i2PmKxPfraiMTw77nk7+pQQI0MsuSLqRBjc7ZuoLGO4SXK0e3BzNtO2ONHl/QjohlUfxU
	 eUWpKAbiiCJBdNOZv8xWBOLTtkAYLN7YaPIM6Y67ODll6IYfaspZWWWZokouy5TEFlOwt
	 uZZFUyDTQlrJlVViUiBrucemanQcKF8wMzaLDCriO1OZ8d2OPpdscK+P4nfm0NNpwOmIn
	 Y3lXMRR8tsaJAS92uzoapDAVJJZFSu+a7Ezo8BNxLwrfYiWavOXd4XWHXKHUBSU9BBWHa
	 8iX6OjnMIlGjoDMmE85Vq/PdpSeQ5b+vskFz17KKnHKPZrADEheS4xgG0oYPlWjSqYbSc
	 FYPqbqXg3NpGI0plxACm/bOTkk59JG5QiMvY4DQr0ohh9kTslDdTSRWVcb+bfiA=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1778061213;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=t0TU+owBELoRIKHKbCVQjRfjhvioRegLSxOHOhzdJbI=;
	b=hBnQ3hx3j+Y/H/erJ9e1T8U/b55iL3twIELe5OZSCqxM/q0UU8kq0jNqZaa0D9HsNkbH
	 3EdvCgCto5skC7XYNVDPIezf1PExGR8R9wuWXF31i6ywIk2B2SbLkx7i+J8uFzBtuOQsI
	 fjn9/7DoJtc5qRW8eJ7cIee9LQlXKmykjbLV/wWjQV95x5x/6Tb94rvZ7C7OrGxTl4Ghg
	 /IWI7O7ugWAaMRtaquXAIzl1FyKhId8C+vFv56qHuZyIMvQihjyG8ymAo3SS57HJiTiev
	 4kzeHbSJ8LvHMSReHidSWB7y58xMIdk5xz5BEgswB9HUD4TZzJA9BC35pS3Z4fL1AFMDH
	 LVouKHdtFLAXt04GsnBLh2MWqfoo7o6bSJLfqje7Ld+8o7sDlKsXPAlsn0r2yDKslt3eO
	 Fa5JogGliHzcMW2Smw55BglDbnoFjEMK8O91z5uzh1+QH1nZsutpIeVOvBDwiCw6NZrf9
	 dC/DHWXNDkAsrdAAkzifm+94yDVq4N3NHUrZLeSdnq5fgDB5hU8CCW+A2rZBhZlaoAaIS
	 rCJ4/AGLiYkgFCY2cTsiB8kFI3hxjtahv4CsGiHgKvTBl7Dh8VvTxFoanguquAMpiDK19
	 +dfHnuxY09Bj89wPRGMVnifBYVrC/9auEhrBJL7LnNBKfoex8+/23tRK2az9B54=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Wed, 06 May 2026 11:53:33 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Teddy Astie
 <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86/time: make do_settime() uses more accurate
In-Reply-To: <bb0174df-6e69-4b7a-b0e1-496fb351dc75@citrix.com>
References: <99a4a514-3ed5-43f7-823c-54771f3bd03d@suse.com>
 <b47302bf-50a0-4535-b5b2-42d8de3f6dc6@citrix.com>
 <bb0174df-6e69-4b7a-b0e1-496fb351dc75@citrix.com>
Message-ID: <8d96673827e5d38f2e665ba3a1126fbb@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778061214-70D608B7-759A420C/13/0
X-purgate-type: clean
X-purgate-size: 2180

On 2026-05-06 11:48, Andrew Cooper wrote:
> On 06/05/2026 10:47 am, Andrew Cooper wrote:
>> On 06/05/2026 10:35 am, Jan Beulich wrote:
>>> As a comment next to one of the invocations states, 
>>> get_wallclock_time()
>>> can take over a second. The order of evaluation of function arguments 
>>> is
>>> in principle unspecified; in practice at least gcc looks to be 
>>> evaluating
>>> them from last to first. Hence with NOW() invoked first, the 
>>> respective
>>> value passed to do_settime() can be off by over a second (which is in
>>> contrast to __get_cmos_time() attempting to get the time exactly 
>>> after an
>>> update, i.e. [pretty] precisely at a seconds boundary).
>>> 
>>> This also addresses a Misra C:2012 rule 13.2 ("The value of an 
>>> expression
>>> and its persistent side-effects shall be the same under all permitted
>>> evaluation orders") violation each.
>>> 
>>> Fixes: f64134cdb81c ("x86: Fix time_resume() to notify all domains of 
>>> wallclock change")
>>> Fixes: 0bfcf984b727 ("x86: Reintroduce clocksource=tsc")
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> Of course the time it takes to do all the CMOS reads (or whichever 
>>> else
>>> wallclock time source is in use) also results in an inaccuracy. For
>>> __get_cmos_time() this might be solvable by having it latch NOW() 
>>> before
>>> doing the 6 reads, but in particular for efi_get_time() there's 
>>> hardly
>>> anything we can do.
>>> 
>>> As to Misra rule 13.2: tagging.ecl lists the rule as clean. I also 
>>> can't
>>> find any deviation for the two instances fixed here. What am I 
>>> missing?
>> From deviations.ecl:
>> 
>> -doc_begin="The following file is imported from Linux: ignore for 
>> now."
>> -file_tag+={adopted_time_r8_3,"^xen/arch/x86/time\\.c$"}
>> 
>> I've said before and it bears repeating.  This claim is false and 
>> should
>> never have been put in to start with, and time.c is not impacted file.
> 
> is not the only*
> 

Patches welcome :)

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed May 06 10:12:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 10:12:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301510.1575786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKZES-0000kv-Qf; Wed, 06 May 2026 10:11:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301510.1575786; Wed, 06 May 2026 10:11:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKZES-0000ko-O6; Wed, 06 May 2026 10:11:56 +0000
Received: by outflank-mailman (input) for mailman id 1301510;
 Wed, 06 May 2026 10:11:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKZER-0000ki-Ef
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:11:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKZEP-00HJnu-Uo
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 12:11:53 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb13d3-bab6-0a2a0a5309dd-0a2a450ce2dc-48
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 12:11:53 +0200
Received: from [40.107.200.32]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb13e7-62f1-0a2a450c0019-286bc820f18d-4
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 12:11:53 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB5536.namprd03.prod.outlook.com (2603:10b6:a03:28a::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.21; Wed, 6 May
 2026 10:11:50 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 10:11:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=o2Ddkm35xUVbV1cEezkZk2JDTjueSUCpmx81slacIujj3yjz3sxlFoLHqZzDSOjHyhCsxsU7G6j3jvKOtzmWHf9DNPwmomnJ2FZQlLX5QYyWIbI87AxfwWP4XWTgnuBn/6aCqfleVQrj39bg67bw4NtHlrsIfNrTfNCxkeswcoPP24B+FXXlxyZ931LLZP0iC5t/5kfXB04CKmf+sp2OcwblVIPZuGQohhRyEs2eTfy8XPhvRFHco+JBepl9FcvCozsqmo3DXnRvGi47n+lBTpH8e7y8K/YR1D2NmM1LawV6zcHCey4LmAEvAnZ++51Oy/cl6XVuKlGgroyCxDFIcQ==
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=6JPjBhYuXYBGTzDAqzgf7aEDpEvV6Ix7VLJvwuKMGag=;
 b=KVQ49K3yXK8qB9OOePWk9w8ayGbOYutihMJBqcRwTZQjM/PT9vGcJFUFZG71ILJQZwmy4goe2Ry1GF9WhfL3zsDPomDtZsK6KyyYclNNNU8uCwblI7+w85cpv/Vm9PLZaTEUzFWjo7H/8cOCtX/tWmXhU9OeIZfEMNqD0I+fE28pZwrggstcDoKtdWiFXIeDdhjBNsLjrGPFX19ehmwLm39f1bhcbovUEl2m1a8C08JaMTs3yuBNswm8UFFrx0etHnqtHmz8HzKhwiKfV+kZa56HmC/5B2FQwDbBOtM/tAjyfY7SAsQLik29Wp1MgpKa95y2Pkt+Dxh8eUJ+qkZN6g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6JPjBhYuXYBGTzDAqzgf7aEDpEvV6Ix7VLJvwuKMGag=;
 b=lMRCijYI2wGYfguwL9FpUwxsV68Xrw6Hv3VSW5yrZxKF5YT0MxuBCVzzVg1bMbPkgYoc8iNGhu9IOC1Kg0QimQ37cAieakr5FgvV+5DB11dESDCTZGyKcUgN2kmeltnlZoSzKtET6ZkTt6WyVVvCRVnU6H9nxa5NUk2eZWHFLAs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 6 May 2026 12:11:46 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH RFC] x86/time: avoid early uses of NOW() to return zero
Message-ID: <afsT4gICSQ_LuJ-R@macbook.local>
References: <746ce9af-156b-4c16-8cc0-6e8d929107a0@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <746ce9af-156b-4c16-8cc0-6e8d929107a0@suse.com>
X-ClientProxiedBy: MA2P292CA0001.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:1::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB5536:EE_
X-MS-Office365-Filtering-Correlation-Id: 9cfdcafb-4ad6-4378-f4cc-08deab57e362
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	ZMCRmKojP372AyKOMbkV7ddTpP0K1ZqYatRkAoUkUIF2UezUo4FmVZZ64UNO1QUQ7FUFHlcEVPCoVDTkgNsG8Is9MjZd5oaVxINXtwMmpnE988tydloJJBjaf4k2AldAmrGokbblNeek4SGGXeCA1aOLS//gPiRbqpNnalVyhQ4M2eGsQf11LgxWe89pt6OqMmNI5Z21OIl9io4cniwORd8MgGAJe4fdcW5dwg5e/sW602+dBNCvKArhNIKS6166Lu/bVgEvTHF5GXoBRDaz3oTCz28c/kEiSutHeZnQagp6c0bg+psCKZLs2N0rX/ps27hYFBnBY9S2zdm4U7cjHoFQpjSuSwF2COFeY35HGlLV240vIhQJmpMZNLz1eFWXDyYBDbzKa2mu5xLSN5rafREdHeA46LbTnrrajlF+akwgCQ0VaT7LmWIwqWcWNJIxvAKQrIh3/0uEzC1Bl6fbIfC5G/rr5Uw3NMLFembLE6NlrIFBQ/oU5elmRUQ+UROAnJXlz6vTXuoZpLZmnAC0phO92utvd2+cmiP1yOmmxeGXZyxlt4YNewIHrXfaUgJ9wQgxHTUv3dvXDuatEJVkjB8X7pPxYsGV0j//NDCBkaUdt/ZXz0zY4FA9VUzAxJ1xL3I3GF3mjiBfdO22rYSo5pooY4ooRlSp278oE3rZlW9F+Wd9JXsVC+wWUq0+SYQ4
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?anllck1oUDhjbGlDVlZ0ckhEMmJtcnVidWV4T2JlbzBsSFZ2WEFGTWtwS09n?=
 =?utf-8?B?WVVJcjJDTGFNelQrL1lWYjU5R0xpTnovTVpHNlR3MzNUazNuVm9vSlpaUWtr?=
 =?utf-8?B?Ti9NUFhaT29wQmhiK3lWZ2w4bDhUQ0Z6d2pObjkrL1dTbExPVE0vdlh2NEFI?=
 =?utf-8?B?YW1Sc1RnZGd1L0xyODkrUjNsd3ZFY0dNdVVWaFpVSjhvNkY2V3NJTG9LMU1s?=
 =?utf-8?B?VTBNR3g3MHUrM2M3c1FyQy9ucDR6U1ZIRXQvT0tpT0UrQ1AxUTFOc1l4ekVY?=
 =?utf-8?B?NGR0Z0hCR2xoVE1VSWRmc0hzNjBmV21hQ1VuM3lGdGlLSzlsdlBOck51b0N1?=
 =?utf-8?B?eEJIMXNCVmxyZHlOUTgrZXVncHdxQkZic3pNek1Xb2xaK2pPZTJyU21mYVFr?=
 =?utf-8?B?SGpiR3h4cFlkUVJjelFrZlgrQnlZOWRlNVlBREdlL3U0R2lra3NqTDhpclpq?=
 =?utf-8?B?SDRFWURRTXdGUDNNQzFwNWxQbEg2NWZVT2gvcnRrekNrcEorN3NkUkxqdkE4?=
 =?utf-8?B?WGVSUmtHWDByU29aK3FVVHVMRXpuck5qSnRMQzl2VFN1djF5QW1aWUZ3cGND?=
 =?utf-8?B?SXh2Yy9MTUoxeVNFZVp5Yi9ieG1Gdmg3bTRnVUdHbk91Qm5QYUIrQWpWWXRE?=
 =?utf-8?B?Q0lSRk5aMHlrYnVkNzJDdm1TSDdCTHJhcjhUL0JYSGxvYlpzV0Q4bEZqS2JX?=
 =?utf-8?B?S1JCUlZMa2ViMkF2dENZcldNcWRVcjh4WW9odXVLT2ZIRkxtNnZEM3MyRTh0?=
 =?utf-8?B?QlRxRTJIOWFTVWZhcjQwbjgyVzFCM0NRaTVYUU1uZHdpOWJ5dG80OUhLbUo1?=
 =?utf-8?B?ZG9RV0pwQkllV3ZXOWhwWXRudFdDSjE0K1ZoU05oRjZMaURsM0NzWlNXSHQz?=
 =?utf-8?B?eVovYmErQ2I0YUhBTmRNQ0F0SDdrZkxLcWFOc0NVaUIySnVtWUNVbERYMWJO?=
 =?utf-8?B?aHZUbnNQUlFjcWRGY2w3NTVxY21lNFRidWdhanVqT1RoVDRLZUEvVDNUL3Mw?=
 =?utf-8?B?bmVNeFkwL1IyK2MxMndVYVZXa0h1SGdVckN6ekxPR1BEMkZER2dVaWd4WlBi?=
 =?utf-8?B?TW5uN2haYXEyWkhjOVJ6M2VtaXpRMFA2L1BFSUdCam45cGQ5YVdkaFFHN0tR?=
 =?utf-8?B?MVdWM0dkVmRZVVBCUzZ3UC9YYW5uajV5OG1IMnlaWkU3ZkFycTllUDlGK0ZW?=
 =?utf-8?B?VEdCZ2M0c2hUeEZkam9RNVFwSzY4T0tRanlXNVcyQUZFMXVWbzJBRTgyTUF6?=
 =?utf-8?B?RWUwZ1J6RUJDZFFid3R4bmo5Wk5QR0tCRnBoaytBdHNVajk3MGtySDA3dUMz?=
 =?utf-8?B?UlVwQkN2WFBIQmNOSi9lZ0s5N3R0NkcrVnpsYTBmZkZkVkRFL2dEM1VaNGs3?=
 =?utf-8?B?Y2RLdUtTTnh0RmgyaUJuNnMyeDkzRWFUYjlnd21FU1N0cWw1RlVIOGQrSU1r?=
 =?utf-8?B?S0tHa3ZKaDYyRHF3K3hWMEpWL25uU0ZPRE9NNGRvVTg3Y21BUFNRcCtXUVh1?=
 =?utf-8?B?TFBmSHVKdmVRTmFWVzBvWXBrWjZYQnAxbW42QnphaThGNTgzTHRRMnpqc1hh?=
 =?utf-8?B?emFxTXlrc2ZoL1RaOEhqN2MvZjJaRlJSMngySFF3UFc0VFF0aktiQUUzbVZN?=
 =?utf-8?B?QytaTTVHS09SYVhVeWQ1WUtvRFBvVG01SUJmNTQyMzZRUWdYSm9uN1UrVVBt?=
 =?utf-8?B?S09ORDd5NTBLVlpTNmhaV1EyM055NmxNbGdsKytsYjdnazRlWWFFSUN3akN2?=
 =?utf-8?B?ckdzMmVxVHByS05VdXRKVEdWTTZJWnE3MnI1SFU0SGM5aHBUMVk0bzM4ckdN?=
 =?utf-8?B?bGMrbHlPUC9XYkYydjg0UEdaOEtUUmhucjh6YmJKY3NlakhQRHBSdUFLR2hX?=
 =?utf-8?B?VHRscmMra3RyaXY4NmpHQ3R3Um9yRGd2SGIrd2JSTWVnSysyb0I5a0JMSEMx?=
 =?utf-8?B?VjZpczNzS0RnTmlIKzE1dldPbVUyL3RVdU1NYjM0UldjQmoyNTRTdmZUWFk0?=
 =?utf-8?B?ODB2SEpzOFN2ZmtHekhlYnIwZisxTVFrOFI3UGRXS296SUdPVjY1U1RHMkQ0?=
 =?utf-8?B?Qzg0bU1nWklBU0l1bHQ4VVZzS0h1VnU2d3ZrTnhYRHFOeGxPQlpPQU9acWxT?=
 =?utf-8?B?SVB2Y1I4cDNjZThzeStnbnZBNlB5VXZuOEo4V0pTdmZtRkNiSVo4OTcvbisv?=
 =?utf-8?B?U1BvWmJNUEh5ZHlVZ1RRUHlHdzZOcjZyTGxsbGs1UDNKVExHb2hwcXJSSytX?=
 =?utf-8?B?Y0I4L1IwUTFqM0FkTis2T0FkSjNGZ1JWcHkwK1lTY043YXdJRGNNSHlXNmp3?=
 =?utf-8?B?QXZ1S3pvZEVxZS9CZW11UkF6VHl3a0tjdlRoeW9CYlJWeVh3cUwydz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9cfdcafb-4ad6-4378-f4cc-08deab57e362
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 10:11:50.0674
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DvLA3mli3XslQaw5/9WSSQtDraYgLFlVBoScurPDb36VBJV1TP4WtChheN59mDzgxAOJ4FSwtFj6S4TTqwlrcw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5536
X-purgate-ID: tlsNG-d25034/1778062313-DAB74CF5-52AB92D4/0/0
X-purgate-type: clean
X-purgate-size: 2820

On Wed, May 06, 2026 at 11:37:41AM +0200, Jan Beulich wrote:
> Waiting loops like the one in flush_command_buffer() will degenerate to
> infinite ones when used early enough for NOW() to still return constant
> zero. Make sure the returned value at least monotonically increases.
> 
> Do this only in get_s_time(), as producing a sane value in
> get_s_time_fixed() for non-zero inputs won't be reasonably possible.
> 
> Reported-by: Roger Pau Monné <roger.pau@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> RFC: This breaks at least the TSM_BOOT case printk_start_of_line(), which
>      checks for NOW() returning 0 (falling back to TSM_RAW in this case).
>      For now I have no idea how to avoid this, except that when CPUID leaf
>      0x15 is available we could leverage that to put in place at least an
>      approximate scale value. Doing so could, however, lead to a
>      discontinuity (returned value moving backwards) once the final scale
>      value was put in place. (Note, however, that such a discontinuity can
>      also result from init_percpu_time() using the BSP's scale value as
>      initial estimate for APs. Then again local_time_calibration() at
>      least makes an attempt at avoiding such.)

For the purposes of printk_start_of_line() we could unconditionally
use get_cycles() when system_state < SYS_STATE_smp_boot IMO.  Using
the frequency value from CPUID seems like a good approach also on
boxes that expose this information.

I wonder, we seem to unconditionally perform the TSC calibration
against a known frequency time source, wouldn't it be more reliable to
use the information from leaf 0x15 when available?

> 
> RFC: While generally the mentioned waiting loops will take longer to time
>      out, on a very fast CPU tight loops may time out too early.

I was wondering about that, increasing just a nano-second for each
call seems like it's going to make progress fairly slow?  Obviously
depends on how tights the calls to NOW() are in the outside loop.

Maybe when lacking frequency information from CPUID we could assume
something like 8GHz and scale the TSC based on that?  AFAICT it's
advisable to use a frequency greater than any CPU, as then we don't
risk NOW() running too fast.

> RFC: In get_s_time_fixed(), should we perhaps assert that the scale was
>      set?

Might be good, but I would like to see what explodes when doing
that...

> I don't think Fixes: tags should be put here. If we did, we'd have to
> enumerate all introductions of early uses of NOW() (or get_s_time()), with
> the exception of those dealing with getting back 0 (which I expect is only
> printk_start_of_line()).

I'm fine with no fixes tag, but we need to remember to backport this
one.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 06 10:20:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 10:20:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301520.1575796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKZMM-0002Vl-Jz; Wed, 06 May 2026 10:20:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301520.1575796; Wed, 06 May 2026 10:20:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKZMM-0002V7-Gf; Wed, 06 May 2026 10:20:06 +0000
Received: by outflank-mailman (input) for mailman id 1301520;
 Wed, 06 May 2026 10:20:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKZML-0002M3-JA
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:20:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKZMK-0098XT-VU
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 12:20:04 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb15c2-bab6-0a2a0a5309dd-0a2a4502df70-42
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 12:20:04 +0200
Received: from [40.93.196.68]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb15d3-af86-0a2a45020019-285dc4442a6e-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 12:20:04 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB5536.namprd03.prod.outlook.com (2603:10b6:a03:28a::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.21; Wed, 6 May
 2026 10:20:01 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 10:20:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hlIiS/NQf0C8FsA7reIX9p8SMakBsIs0mV7wHjn9l5EGY0f4VKiAwrlKfzcE03frgQUqzuaKC29zqiDSTyIX19MJGmXReUiJ95Q6HZIkiD8DgFBFZOaPJb0xT2IQSw1zdSJ4NJdV8pWmeynH7etjQYiBD/JPDB/CYk5dosNTD7Br5Qzin8rY+rAZadrzi9bNh650icpi56bylHp3mQij9abwqYRYgEcRP9YVQL8xCdkwsPmF18dof9eiDqA0Dale17zIDtEiIhRGz923oMTPDRyOgoIIzrVwhQ4rfM69toRP7WAMAPsqkXMZkMM/AuwMYSvrDaMtEmfjCBDHoHsEZQ==
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=bomuz7Ql487bedmZHLAWUDdodoQqu6QO9+uxzpPiEkA=;
 b=OYku3PiJVfz4F/ETXm5ibIVomM+sPeRPJRePCkEqlW2CIYcLxpEtao9+DKNyUhTqVKJ4MCBcsvkVz+bAbTNDbRkPvA8zSJ7uWZ+ODceLykQM1CcpWXG9WXt9eho7dHlDTLmXSikYjQcw0xgLjMguJ6OJ+tGEgFDrs0iD9HvnblJ8RW0nGa9H3VC7HZwkWKCzl/x0+hx8EOPGteXyqELWyCmnY40kJL1Oxrh5URtaFnsEfUpmT1IiGIxvCUZZ7b6I03WZn1eBGrU4iLuEiLis/WAej3TRQGFgUBkwpXEfJ96jBREK1k/TQnJ4utlmeqRFQWR00ZTYPkEFtuFfljkjcw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bomuz7Ql487bedmZHLAWUDdodoQqu6QO9+uxzpPiEkA=;
 b=eiOTos4Sc5UgAo6noOwtXVe5WfAjumRopHKqPE4wtt/u09+ZDFZuluNUtDRqwY2MccC3QfJtcD9AMPQiEjRy0ff44F0szfamhux3vRKR1Ft3XZNa/olnDVxQhFuF+dl/+AZAx5zIFPYdUljWOgpunaiX9/SRD6oM0TP7IiF557w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 6 May 2026 12:19:57 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86/time: make early NOW() uses slightly more precise
Message-ID: <afsVzRWJkO6u77XB@macbook.local>
References: <95a2bc5d-c551-42f1-8f65-9f8db4100fe6@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <95a2bc5d-c551-42f1-8f65-9f8db4100fe6@suse.com>
X-ClientProxiedBy: MA3P292CA0044.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB5536:EE_
X-MS-Office365-Filtering-Correlation-Id: e5edbe31-9463-47af-97c1-08deab5907ec
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	CXfhqZuhk/SDaWroUoq2GHzD9IQQERQ2dgdYy87+c6lP8J//Ls4EuPGG1vqSplAwjmCTrTGsdErEXSmnboKQf2Mt38QxIUFih10S13+0oSrdTzNWVAsbW+rmbotcv1eaIryCKc4GTUYfVoCY84Kcaubx/k40aGR3fIe15t6ltRk2g9xNPLYFfb9LOJrw7KKBSKSQ84xmaO37dWHcP2wA717kaA9p9hQfWcz5No6hIIvD9M33gPD00Z2JvO29ZiePqlhvyGTF9bt2u5ITZ6QGhK4kLW6pXzOUD10h2KVjhGx9cJyrvhLV6daBrhOqHqt2IpNJcGH94HQ3B1UqnLuxAK0nRpJnAILiULST+HBU+u7YgYe1pGxNXC3mTs0FnwfyeyGjgfiRXCvte3jBKtlsjmG0975usfEHOe/xUXuopGnuQLOdANOisM3vnU1Wd+fwpMQWWt5e1y6IHQ76V7psXDTrQryncNTlq4vKsrnAW3iNX3hcUSiM7V1nJE4nUUcAqfCl5PSbqhRWL7V/d1pXUK8O0Vp8LEHvsAjXFEq+yCyXs2oFqs5Z6Ovrfk/JN2G+1wDsyO3PBIWwBSMIVsYNSat/vXD1SX2lxTYnizbSlmkZ1p2lb3rYHqULANLpSYrt85e6g0fxAVaByDWSdEEFbEWDcsCxHt+UTcQjWNhurB7mtFRUJSwLNBeNdkZ+v7H1
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cXdZNGx3dFFDdHdELy9saG03N21GZmF6T1piblE0b2hCZXEwSVhYcXBFOVph?=
 =?utf-8?B?c1l2Z01nNk53bjRMZVdxMkt5MFdpNTk0cE9qR1VOUXdCQ1BzQ1R0NE02Sk94?=
 =?utf-8?B?M1Z3aTFCUTlPTUovSElRbE51Z0ZvNDBPcXBxeTBIMlBJSHpoTkVzZFVZamZv?=
 =?utf-8?B?Q3YyTy9KR0Z1SmcvVTJ6QzRKQTk2cEZDWkNxSHh5R3NudCtEU1BBTU52ekw1?=
 =?utf-8?B?SGVGbmNNRERpdlBqYjFFVlVpczk3MC8rZFdtWGNBeHdueHhWZ08zbHlzSTlk?=
 =?utf-8?B?ZW1NUHJVbkd0NnNNTzYxK2Y3RFEzMjdQVU9kOUNLSExoc3lVVHNjNzZGOTRN?=
 =?utf-8?B?NStRRzJBakJEbU5LNFAyM3p2aEVQWE9FbzFJbXZpRG1xTDNKalJ2Uno3RHQr?=
 =?utf-8?B?VDlpM3ZYeDhqc2gwckt4SDJtRjUzNGZNclduSUgwTW01QjljOHc1aFQxK3hk?=
 =?utf-8?B?eGg5bkFtL0lUeStHWHJJMGpueWJNRVN4bk40WURSUExYckF5M0xvRGc5SFU2?=
 =?utf-8?B?MVVTczhQMk9FdmIvS3lmeXIybTNPRlVOc0N4dktzWkpWOWxhUTdiYW5hbVMz?=
 =?utf-8?B?SHgySHlYcWZaRDZWdnYramYvUHhuUnQxcXFBSE1rM1V5MHVsTVViMmg0dkRP?=
 =?utf-8?B?dkIxR3g0OUdsS1NTSDFKdFpDSjhFN1FjQmExRkRxaUhnbkJKSGRMemw5QzFG?=
 =?utf-8?B?M2oraHJack81T3hMY3VHRldDMkE2bzdZZEVDcENxS2NKclh6Z3lPZlRjalh4?=
 =?utf-8?B?M1A3dldaeHBKOGpiajk4VndQVmVzN090MlplMUVUTUZ0UkZldGozZStWQjM4?=
 =?utf-8?B?c2t5eTNETWJFNmtqWmFDa20rUUlJWEdNVHFhZUdZYVFiU05ITmg3Nzc2RkhJ?=
 =?utf-8?B?OVE1cVZtOVl2MkVRMmEzcWRkRXg3eitFdmh6enZ4VnAwc2lITzcwUUZQcnVO?=
 =?utf-8?B?U0hrM1hGcEY1SnhjQUJmTUc3NEw1Zi9HcXhoUGZ5aDRTRnFieXN2OURVQzJ0?=
 =?utf-8?B?a3FKd0VkbzhsZHAwblZFVHpkbXpGYVhFUVVwaEQrNkwyN2M5a0VuaUhYc2Fp?=
 =?utf-8?B?YkhTdHZyNFVnL0tXMENYbWJSaVJmVmpsMkNnM2dUWjlndTkyNWJLazJPNG9K?=
 =?utf-8?B?aEI2b0NIWmFoRlB1cXVKSUJFRmxqVGNLeDVGQ1IrWVUwa0JYWnZ2MDFaNkVC?=
 =?utf-8?B?L0xvd0NvS2pTeDJaZDNISWxVWnRkdjJnTm9nZ3hJa0xVQm1tU082T2MwcVZH?=
 =?utf-8?B?d1JXNjhmNTJ4VTM2U0twb2RPY1dES0FESkZJQkNHNXVudERjS3JURERQN0kw?=
 =?utf-8?B?SVJhVnpqWFFTTm94Y3pwMXZ5ZFFocU0xM05YTEs5SU1BbGNLNFd1ZEs0RERD?=
 =?utf-8?B?RE13R2pTTkprdVZkUTZYcE5qTy9MSGJrckVqZnQ1T2V4YU1wVjM1TjBLK2pw?=
 =?utf-8?B?QnMzbW1NaUJUOE16NllNZ2NxNGtqKzliVk13MkhwTnhZWUNCalNickVVMWo1?=
 =?utf-8?B?V0pvdGp3ZjVTQUwya0pxSkhaNEhpWXozUlhNeVl1SUlJeUVZMVBtcGdIdnpM?=
 =?utf-8?B?czcxRmNpQ0lhN2dLdHc3TVlKY2JIY1lFaGgra1Q5b3B0YVZvT0RzelFTSXQv?=
 =?utf-8?B?anl4S3JuNiswbE1JQ1FLN3RsT1h1aytnSXBlZ2ZlNTMrL0ExWmU5K2J5UE1Q?=
 =?utf-8?B?NXduYVVuRlBwQ1pVNGVzaFhRU1N5d2gzUUNmdEVWN01kL0xJTG9yWmUyaFpP?=
 =?utf-8?B?Z0dwREE1YjRZdUM4bTRQSFlwRUNBV1Y0Si9QU1dCdVBPVndKRXNoaXM1a0Jl?=
 =?utf-8?B?dEJwNEJKQWhxWTkzaEN1ZHRVK2xndlpNdEwyc255VEdhVHd0QjRkbFovZ1ZE?=
 =?utf-8?B?VXBrMU5zSUsvOEJBKzluQU96V2dmckVIZDZDUFVZekNiazBrcW5PZkowMTZT?=
 =?utf-8?B?a0FmQ1hOL0pyaEYvVVRnbEJpOTBXZTJ2cTl5SmtBSDhBQTRNTTlueEc3ZGlI?=
 =?utf-8?B?OTY3K1ZUbWNlWlhSMm1tVHNPbDZpV3VqRndUNFp4M1pNRnl2dVZVY3BYVWdW?=
 =?utf-8?B?bjBYOGlZSlR5WTlJMkFrM1lPYVFEeEN1Vmk4RTBBWjdBZHVuemRpajJaV1Vk?=
 =?utf-8?B?RUZZVXljOG9lNkRGc1Fvc1JTdXhrVmJtQWEyYURTazhNeUNORkh0b1BOWFI4?=
 =?utf-8?B?SHRiN0p5bWtidlFHWjdtU1VRZzVWSXY3QVkrNDdoQ3d5UkFibHJQTzlTeUsv?=
 =?utf-8?B?N0RlRytaVzNvU2JXZDQ2L0xXdFZyM3ptd1VoakVxajhKamxEeFlQZDkzRDUz?=
 =?utf-8?B?aHdwdTdYUzloR094QjJpNDFQaElSbkdUWE9KMGEweFQvQnlGWldrUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e5edbe31-9463-47af-97c1-08deab5907ec
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 10:20:00.9561
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6aFaPJf/w6Wyb/fprT3dCT/uKJEWA6hZ7Nh2/ezrDxGVYYKS2Ez1qZIBnr0QRhkWbUe6TQ5zQgQJVEbKjStgGg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5536
X-purgate-ID: tlsNG-720697/1778062804-AAD6F161-94A82929/0/0
X-purgate-type: clean
X-purgate-size: 1085

On Wed, May 06, 2026 at 11:33:55AM +0200, Jan Beulich wrote:
> For early NOW() uses to yield sufficiently precise results (scaling incurs
> some error, which grows with the delta being scaled), init_percpu_time()
> wants to have run as early as possible. With 93340297802b ("x86/time:
> calibrate TSC against platform timer") having moved the invocation of
> init_platform_timer() from init_xen_time() to early_time_init(), this
> other call could be moved as well.
> 
> Moving, however, has the unwanted effect of then growing the gap until
> time calibration runs for the 1st time. Therefore keep the present
> invocation, and add another from early_time_init().

Yeah, keeping the second init_xen_time() will make sure the BSP
doesn't diverge too much from the platform timer during boot.  WE
migth as well skip it and wait for the first rendezvous, but this is
likely more accurate at the cost of doing the extra init_xen_time() in
the BSP.

> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 06 10:27:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 10:27:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301529.1575805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKZT6-000381-9J; Wed, 06 May 2026 10:27:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301529.1575805; Wed, 06 May 2026 10:27:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKZT6-00037u-5n; Wed, 06 May 2026 10:27:04 +0000
Received: by outflank-mailman (input) for mailman id 1301529;
 Wed, 06 May 2026 10:27:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKZT4-00037o-Lc
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:27:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKZT4-009F7U-2J
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 12:27:02 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb176b-bab6-0a2a0a5309dd-0a2a4508bede-26
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 12:27:02 +0200
Received: from [209.85.208.49] (helo=mail-ed1-f49.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb1775-63b5-0a2a45080019-d155d031e973-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 12:27:02 +0200
Received: by mail-ed1-f49.google.com with SMTP id
 4fb4d7f45d1cf-67c2b4809baso6915932a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 03:27:01 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-67cd91a486csm1100430a12.17.2026.05.06.03.27.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 03:27:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778063221; x=1778668021; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=/TejeyEvoHzwzx+okNPaXwBSv/w92h4T3OyRNx3bKUY=;
        b=i3rnyWQ0hSIEc4EzgCiDROZBTxsv2evdDFBagABFofPEnjgT16f2GJKO8UggEpc9lL
         6GtDk32LtIrfi72wWHaRzDAcqPVKfJ0pNzI+TM1PBRviUwEkgvjAvHJxuyi4GYlu+KKZ
         /d0vL3DJuc6sQgPBi03KoZCzAnocZfhnkigbaxAf5M+qBlrBJaxwz8FcaocNFoAGVH93
         CWleKdG+PfUyxU28NBy0utae9CbczVs5S69ZwpRIsKDTvn8bjp1RMfVG52n8we9uqOTR
         8ahaLOLvFXvTHvyD/f5MU3uN3al5xBj+yZY0ShQmRihtrfJ3FcW80HN13Pq0/HWeqLJ1
         G2zQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778063221; x=1778668021;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=/TejeyEvoHzwzx+okNPaXwBSv/w92h4T3OyRNx3bKUY=;
        b=qYpEhU3HJk2KUhHjaUSR1nHq0GIWJ1zrIQaBYyjUjbvbh43rzS4xJ7BSzjMVrDViRe
         GGWwmDuA2p3trhFb6beuj2NG2DChtt4Q9JTu2Z8GoxoiEU4IsKBSz6JbX7Q2XeYhk/Pi
         2ICvGLzFOP6/Nm30Vi4eklFUTOxS5GYXgAYNCuMQxK45mPQPqE0TUMnPgQgzk0jQ7J1/
         W7waPoCO2Sffr+WjEvBPQ0w4Kw9DZQ3x90VFMLH7zxbyfjRI/PPNSkg+e042Xd9q8XVi
         LH5v7d3H4D175WjoZglqhfjeGo7b7E4Zg6k6kfyT6Hy4k2y21GFLueNk2x5C8toTq42H
         Mn3g==
X-Gm-Message-State: AOJu0YxhD0xaqw9lmLX6wAd7wQ9yTmEFlqNmClDOPxXgeAiVJfeDrxC5
	mirn/SrhTijc6bZY50eBw2X1CJqwu2SjcZjX7UEdFGpMNa9sPZYUAKG1
X-Gm-Gg: AeBDiet4OH3hV5PZQ25VghyXdPie4jp5xt7e6YMmZWMDtAUsmw8IhudjSqvi8HHnWkc
	iGWkHiNadZxcIzdbArZYeh8BY5TJB2EHyhyt9eXYHmu5X7cEPcSuP5YvgJ5r1byMdalaZjJruWC
	KfOg5L5wMmT+8ydxl0zPjs+Vfqih1c8mP4LOB71oQtNcb39fN3voCb50LQWkH/TQdFwuWEGy26c
	EN5en5bzXk2PtSigOwOeVqqWK1huled36hgCUD7NfLoUHdk/SI+AFZRKPDf+JSV3UeWu92K75fG
	jSNEhXXb8Ro//ioiLXbfBN3Dgw7aCVTE8bJVhKkFvsleBb57O1Vn0FM+Hxvw3GYMdONZJBMPMqu
	BmCYRPCLM/n15jLoO9AhbEZ480FeP6UpMNSxVLCtHz2hYUE5UDlhRU9zru1SbuSR64fqmUQhRLG
	hanFIwkOm3SWNuVRtXhWjGDTGJPupNN/asId1sY2boKEhLtOBtIZm+57v28Ea34Xx2bvIwwL9h6
	Ufh63wj+xJNWA==
X-Received: by 2002:a05:6402:4558:b0:67c:9609:eb79 with SMTP id 4fb4d7f45d1cf-67d642c252amr886108a12.17.1778063221329;
        Wed, 06 May 2026 03:27:01 -0700 (PDT)
Message-ID: <cce39cb1-ab2f-46cb-96ba-8c43a0524b03@gmail.com>
Date: Wed, 6 May 2026 12:26:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/11] xen: introduce domain-layout.h with common
 domain_use_host_layout()
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <2577e757d32f85fb8b3308863e6d7a53d70636dc.1777303844.git.oleksii.kurochko@gmail.com>
 <D2F797B5-CB47-4883-BC0D-1F60056688CC@arm.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <D2F797B5-CB47-4883-BC0D-1F60056688CC@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1778063222-BF171DB1-E829D69D/10/73395122804
X-purgate-type: spam
X-purgate-size: 1302

Hello Luca,

On 4/29/26 5:10 PM, Luca Fancellu wrote:
>> diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree/domain-build.c
>> index c51520ebadf9..6949203dacdc 100644
>> --- a/xen/common/device-tree/domain-build.c
>> +++ b/xen/common/device-tree/domain-build.c
>> @@ -1,6 +1,7 @@
>> /* SPDX-License-Identifier: GPL-2.0-only */
>>
>> #include <xen/bootinfo.h>
>> +#include <xen/domain-layout.h>
>> #include <xen/fdt-domain-build.h>
>> #include <xen/init.h>
>> #include <xen/lib.h>
>> diff --git a/xen/include/xen/domain-layout.h b/xen/include/xen/domain-layout.h
>> new file mode 100644
>> index 000000000000..0532a27b44ce
>> --- /dev/null
>> +++ b/xen/include/xen/domain-layout.h
> 
> New files should have SPDX tag

I will add:
   /* SPDX-License-Identifier: GPL-2.0-only */

> 
>> @@ -0,0 +1,27 @@
>> +#ifndef __XEN_DOMAIN_LAYOUT_H__
>> +#define __XEN_DOMAIN_LAYOUT_H__
> 
> I think this include guard doesn’t satisfy the coding style:
> https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=CODING_STYLE;h=aae5a47ac20345978b3c465b9d85f1d5f6774731;hb=refs/heads/staging#l167

Will rename to XEN_DOMAIN_LAYOUT_H.

> 
> Apart from this, the rest looks ok to me, after fixing the above I will leave my R-by

Thanks for review.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed May 06 10:32:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 10:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301543.1575814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKZYW-0004yJ-09; Wed, 06 May 2026 10:32:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301543.1575814; Wed, 06 May 2026 10:32:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKZYV-0004yC-T8; Wed, 06 May 2026 10:32:39 +0000
Received: by outflank-mailman (input) for mailman id 1301543;
 Wed, 06 May 2026 10:32:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKZYU-0004y6-5F
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:32:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKZYT-00HPHb-IP
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 12:32:37 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb18c1-e002-0a2a0a5209dd-0a2a4501a0cc-6
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 12:32:37 +0200
Received: from [209.85.218.48] (helo=mail-ej1-f48.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb18c5-c1f2-0a2a45010019-d155da30b8ce-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 12:32:37 +0200
Received: by mail-ej1-f48.google.com with SMTP id
 a640c23a62f3a-bc2a455fd55so434809466b.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 03:32:37 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc55b58f0absm69591266b.20.2026.05.06.03.32.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 03:32:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778063557; x=1778668357; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=674s1EDjc3odfMCU7/qashpeTBsZFWCI3Re0YZ92NDY=;
        b=n3iMVsILj4Sw3PL7rxop5xb3NxJiPOn6QODuiapeoW1rTmYGPFhh6+e6flfNSWRAhr
         vMw6z4Q4xE4tEcY5nvRgVqZ5/Ji1EG3eKmDKl609HRJvGe8h6tgkvOsfXlJMkvHnHkJF
         kIlSWnFH+gn3+k+7mIRJs2y6uVSLPT+od3Fg61u9mKV4uhkkSWnWLV7LB2sz6vT6MQW0
         pH+EZQXqmf4cw6fSui/NFE4suG+QxXC/9UpvOgFes5Lwt9+yCrw2L4q9i1PFFh7ZtmsD
         9eyvl8Axh2AEpKLjUFpJHxOs+J/PeqxnNlWigrirVLrdUvBzevuehtpLPTgnBVzQiCj0
         IOlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778063557; x=1778668357;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=674s1EDjc3odfMCU7/qashpeTBsZFWCI3Re0YZ92NDY=;
        b=QQSLya2mE/MJURv0xU5EsYvg4P5KUXaeciJf0Z7Y+rpx+2XFnl7MQLpA5l0w74d0Im
         5pzhyLlnV07kvaRsrwPLbbOVtULNjJ/BGOW9v1jJT8RbJ8lWiRE0j/8JpCy2TENY0TOS
         /kNVOJ+SFu1evAf6e5kPk0UVtGPVbKfcEjlmAAvxuJjjwA14cJNLbhi22WT/37BI361p
         rk8Ivw2CG1RtfTnr3eqruQb9e/n2qmMFztAIE5nvFZ0SEPxyjtwNDI6X5cGJqJatYOaX
         x5tYZN4jtR3qS3/vRqMT1JSsLgLH+L4T/8bPmSaTN9Hj/TitEGXnQdrWQpPYPBjFM6ql
         +e7w==
X-Gm-Message-State: AOJu0Yzg4Srqei+/ZpRHsCMRWXI87DDhb1Z3+AL6uRryS7+k9SLBYi/v
	MhxfrKzcBV1R0ma3nR3moHqCGpWRrTFVRLrIxYq7y+dEVbUkI6WYkoU+
X-Gm-Gg: AeBDiet1d7IVieLwoprGlr5wBdDsC0DOyRBciL+XSyurGM7c8WUBav1fn3fL0Xtb2xX
	6gC/VuAL824TQdp+57WtY9Gd3TVfSksna9HgTcvriZDppB8HgrlzD4iyYT+AQ2ELOC/u+OkEhY7
	P6phlvGVfFQnnVBGE9ruww6/gw3epNC6GkOricdLe6cB1iYB46vfq4LUtlIcRzZoAumJkvDPy52
	igN/HxME3CfxPfwkGLnuCvoy1me5eXZ56NjI1T2jd5jCQFm/+/nvUxG06CoWTC36oPPOYZ61Yl4
	PyMESvqDwmo6hlb9JqeeivBvr5Mtppzu2WBmbmz3AdejeTGCWwS0dRE7vqpgeYvvLlpbTvYd7pk
	yeLIaoU6vvALibqWr6dzwSs0Q/WgxwU0bCzOyycXLoSrn8xU+QXNdFJLDE8nsftAtj4k9fCyun6
	+HOvFn9AkY7yLey11MZNYFg84c/Z3q8w508WPJMhkRsqv+ePK0GxHAuxHh+Cds3+5SmcIAs9BBO
	7h1zDb5jws7Xg==
X-Received: by 2002:a17:907:c80d:b0:b98:40a3:aa0c with SMTP id a640c23a62f3a-bc56cc31542mr131636566b.24.1778063556590;
        Wed, 06 May 2026 03:32:36 -0700 (PDT)
Message-ID: <75b7446e-ef11-414e-9106-3ad8678e9966@gmail.com>
Date: Wed, 6 May 2026 12:32:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 05/11] xen: rename p2m_ipa_bits to p2m_gpa_bits
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <fcf48e61d270fd4665f14f43095b3659e528b376.1777303844.git.oleksii.kurochko@gmail.com>
 <A729DA79-3FD0-4290-8D9C-8792A16E1B8C@arm.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <A729DA79-3FD0-4290-8D9C-8792A16E1B8C@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778063557-AE143FF4-55A0E1C4/10/73395122804
X-purgate-type: spam
X-purgate-size: 1289

Hello Luca,

On 4/29/26 5:15 PM, Luca Fancellu wrote:
> Hi Oleksii,
> 
> I would rephrase “xen: rename p2m_ipa_bits to p2m_gpa_bits” into something like
> “xen/device-tree: use p2m_gpa_bits in common code”, because we are not really
> renaming p2m_ipa_bits, we are only defining an alias.

Make sense. I will rephrase commit message according to your suggestion.

> 
>> On 28 Apr 2026, at 15:33, Oleksii Kurochko <oleksii.kurochko@gmail.com> wrote:
>>
>> The IPA terminology is Arm-specific, so rename p2m_ipa_bits to
>> p2m_gpa_bits to use architecture-neutral naming in
>> xen/common/device-tree/ code.
>>
>> No functional changes.
>>
>> Reported-by: Jan Beulich <jbeulich@suse.com>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>> Changes in v4:
>> - Nothing changed only rebase.
>> ---
>> Changes in v3:
>> - Introduce #define p2m_gpa_bits p2m_ipa_bits for Arm instead of
>>    renaming of p2m_ipa_bits to p2m_gpa_bits to keep Arm part of
>>    changes clearer and keep using Arm-specific terminolgy inside
>>    Arm code.
>> ---
>> Changes in v2:
>> - New patch.
>> ---
>> ---
> 
> If the maintainer agrees and the title is fixed:
> 
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed May 06 10:33:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 10:33:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301551.1575823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKZZG-0005Qt-99; Wed, 06 May 2026 10:33:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301551.1575823; Wed, 06 May 2026 10:33:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKZZG-0005Qm-67; Wed, 06 May 2026 10:33:26 +0000
Received: by outflank-mailman (input) for mailman id 1301551;
 Wed, 06 May 2026 10:33:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKZZE-0005QZ-SA
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:33:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKZZE-002FDF-8j
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 12:33:24 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb18ec-bab6-0a2a0a5309dd-0a2a45038a7a-14
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 12:33:24 +0200
Received: from [40.93.201.26]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb18f2-672d-0a2a45030019-285dc91a7028-4
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 12:33:23 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB5750.namprd03.prod.outlook.com (2603:10b6:510:31::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.16; Wed, 6 May
 2026 10:33:19 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 10:33:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aMucWpZiEosGp7OAfNL124K+qn1ZIC7eZOC+wWXTOX2ttgnbjpKtHEFZG1JMIo5v5mI0lQN4WgKukUvKAzmbnQWgSD8YzikUGeNp58NnSEf7wZTbHQedrvu+qcUK1I3D6OZoVq7bIltMPhHT1nSAy6P9q66gTvYbUHvn0QKJIg7ZS2f6vaMDaZuYOYV6zd9Xzw/MH/XSDT07veJ+JWCuoe/ZN20kkoFL0/jfeU71KFvPIdtCcIY7wwPJW5wRmmDthMjWUvhUr4dBwKi0ZwyBSiKIJIybV6a7McYYEmDGM2ZgbBSGryEQKxSPwd+0Rpj8TAcLZA5dO20XcFACKcF2Og==
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=Aauq/28BmsF4PgEyHkAvwW5K33x2c52QNy3ei5L+bnk=;
 b=IYeWCf2XFKn2dhgua/3NDxsZCE10LF/QFdKEzx9Xf148WhXQg78BVM/D+EAxe3Vv57Y3O5uchgruOd5zqaFCYCu38nyQ9rV1OB8kHCebBdR4a0YWz6nBmGGxiRTChp0UWvgb4qIAA5VXjU9/ZVFzHdiuD56AfkPUNpbDq1i++e5za+eA1jzOByT5cGVTPgm/fp6OHgbXxhEHWdGcaNyHw5NhKJJNfJ7gbPb+4WZBNEvfq4GnvhLmXbvl/I21LyUO5JGJnF8A8FlrLfhOPv7qDwDoUuc0wBqSqz3aUkcCHe9wi3todT74xqmSaeqUvDBNECau+4w7Nx8JThf82+yMLQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Aauq/28BmsF4PgEyHkAvwW5K33x2c52QNy3ei5L+bnk=;
 b=qASqAMPEnL/PWBDHan5qMYtYl+T3yxQ0OyUIDfcEATkUGIOKClT517N56riZSsLDty8+Maa+RjOW2isSXay9uN6aH0EaR2nDwn8vbQftJThqouDMx6VxFYfo1Dd2bpOdamY4dY/hm1yQST8gvwOBvj50DGcJttYFry1oDpAmwmE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 6 May 2026 12:33:16 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH RFC] x86/time: set AP's TSC scale estimate earlier
Message-ID: <afsY7KqNIyrhW0s4@macbook.local>
References: <1e23dd78-b246-4fc7-9e18-de8b0cd57721@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <1e23dd78-b246-4fc7-9e18-de8b0cd57721@suse.com>
X-ClientProxiedBy: BN0PR02CA0053.namprd02.prod.outlook.com
 (2603:10b6:408:e5::28) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB5750:EE_
X-MS-Office365-Filtering-Correlation-Id: 5285f295-788a-444a-e873-08deab5ae3e8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	BdkYIC1QFq3y16cTwmmTBzFFE1V/E1f4UDufGSrUHee26KfwZmQoy6iURtXxW3Q2UZn64kIVOq5wJKkLh1MrMggZqNQuSSxau02Q4iJ0QXS7BkPfFIUqQIcxx4q4R9GgcCdaJ9dNQkU+uEP4jmlKLcCAWIJm9WSJH6+5A01MDYKX3uVbEjz/OjK71hbxNb4jBR7OnHWZIlp3FTpVyWEOLt49fQchzSiYhXw+EexHr731MbBrQzgMFOkxcUzrRga7+6FuzvrHnpp4V4Zt/Tq6Q1mvGWJY3XuRGwQL84dLm6eURMj3lVIvvQEt6vliQ24wBBB+GaveNRouiMeLofiZv5YgiAKKrhUoDKVL8Ls3L/wfc7mXvg1vQ7dDP03PNZ8xtlDwtGepeKTpIRb9/6rwqlQYXNIwnvgQi2YMMDevSeKbQAoPH5RjQ/PVzpqbv2AQlwW1O65tqMlMrO6rX+pD0diHZexlbYEfHvGERTzZCD9O/FI8Z5m+fwKMZri4AlTOxqxOVZ1wZJAQYFpS+yAJJ4En/OmRBuNyiUY0IvKUD+rAt/6AfgPqvChXRSsatHDh+iDAFvY7y7/bBk3873cSVrMZZJujnB5FgARYdfULv2y57CqJMLbAUo4Ejg1aXl7wWuFjr5s2nIrnZVYCDfk3nlFjmwKOWVxcDLgiSr3wiZvneTf5F69g8qiU9WD2G2jy
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VXd0THFlb1JYNHNmcjJZK1BEbHg0N09nazZuL29mRFVOdHNIOElwMDQxL0Ra?=
 =?utf-8?B?VmNPRjYzeVdpQjhYU3JiWFJBbzVYK3o5Y0tGVFJ1ZThrd0VSelNjTU8wWGZD?=
 =?utf-8?B?YWVjbENSSzBvemRGbjA0Lzhqc09yLzdrRDFJOFhYY3I2eXBFUDkrSHlsNkkw?=
 =?utf-8?B?ZzEzanZvVENlM0Fpa0M0MWJzY0xGTGpmSmE4Mng1bFp5ZXcxenVYSjJpUTNT?=
 =?utf-8?B?T3VKOE9QR0VYV3k5TGYzOXI2UXg5d3hwQXZwYmtLVGgrbFhQZXU1N2lBOWJH?=
 =?utf-8?B?OEE3clV1TjdrVFQ5dndvNTdLS0NDTlgxNnhVZWtDTllwenl2eDhVV25UNTFW?=
 =?utf-8?B?VFBkaUJsL0ozNWFzdEgvVmlLRFFWaUsveU5IU2syRDFCZ2JQb0F5TGhWRzkw?=
 =?utf-8?B?dVhGSWlUUEI2VUNpZnBEWUVrVkNHK1o4YzlJanhibjhMZ1BNeldWU3VlajIw?=
 =?utf-8?B?dVBNVFVQekRVcnlmSkdDWFc1dFMybkZDWEU5V0hXcXJBWi9Yd1hmR2hkR28z?=
 =?utf-8?B?dk53d3ZRQnhFVElvNWhHVkZzaUsyRGZZZ2NuNm5HdGw3SlRHSW0xcHNwNFNY?=
 =?utf-8?B?VFhKY2gzU2pnOG9MaGZQOCtSUkpONktBTSsvbUZiK21mU2xLbVRoZTlVOWdl?=
 =?utf-8?B?QUJJR1pFc0VZaFdTZXNtOXd4YW53UllkclJpNDY0dHR4VUgrTG5LZElzRVdB?=
 =?utf-8?B?eGU4SDNtc1ZvcVVUdm5Ucit4RU54bnp5QldaNzY1blUyV0tyc0g1aFJUSjFJ?=
 =?utf-8?B?L1Y1bDVBemhFTzRJZVJnSUlpYmxQYzRXbE4wc1FBeTZhNlVNdTZBS3VhNWtu?=
 =?utf-8?B?NHRKMW9PeGRjS0laSzJqWjl2RjFFK0lDZTEvNkVvQlMxOEZWbCsramk0eTl3?=
 =?utf-8?B?NzhiRlBGWDJLaVN1bkFQcWhLYlo3M1ROeC9KRDl3QkpLelZQdHNGMjAyL1Z2?=
 =?utf-8?B?TmtmUm83eEVRU0Rjd05WYU5mZCtla3JCVGZHYks4QnFOMkdzZDRRbEwzZVQz?=
 =?utf-8?B?UVFndFVkOWlmdE5yaE9ySzFWaGE1UVFnRHh0UjY5VUk0eFRXRmxtMml0dFNR?=
 =?utf-8?B?MGViMGFORlBLQ1ovdE9MZ0tMamoxM0Z3Q1VGK3IwSkpnTG5vN3daaTN0ZTUz?=
 =?utf-8?B?SVI0QXNqa00yYVB0YUJaZHMxN3NmeU1YWXVGWmJ6TWYvbVdpam80YkxIRlFK?=
 =?utf-8?B?WkFTcWVmM0JUNFFyNWNKT251VHRVeVpxTUVWY25ZazM5QkszL3pqVWw3c0pZ?=
 =?utf-8?B?dHhqZWdhOGdjVTFEMDdnSXJiMGtTS1VTU0RvYXdmUUE5ZXkvMTl0b3NxVEVR?=
 =?utf-8?B?N0twN1FBbWp6UlVVaEV1UGM3blV3a1M0bk5TZXVReVdNZG1ZL3hOcm0vcW9Q?=
 =?utf-8?B?S21qWXM0NGZlT1E1QTN4ZnNrMnhia2xHaVpUZEdlcUt4MGY0SlF1TmFXSkQ5?=
 =?utf-8?B?OWdMUFVEZHloNU5lQmQxSVUwNkcrS0hhVGN5V0tzb2Y4UUJlNEIvNWtrNk5y?=
 =?utf-8?B?bHloZUJMMEZ3NmU5eVNyb3BnNnFKU0w2SVhrU2poZHoyYk1lVWdYdkc2Z0V4?=
 =?utf-8?B?WDRPSlZDdVp1b3ZqVVhLQ2hGV0s0WXFPdVNCSnVhajNaanZ6VlZNU3VyWFNH?=
 =?utf-8?B?YlhJQ2tsT2hVYUowWlI5RlV3VUNVQklzYTVZVjVyRVR1SXFXWEhKL05qRFp0?=
 =?utf-8?B?RWJKRjBNMWw3cWJmQkREbzByV3pEYS80Zy81MXJCanBRY1NuV2xGd3NQM3Jx?=
 =?utf-8?B?NStLRUVaeWE2N3JObDJ4Z3BaV1k0WDhoSG9Hdi9MSGJkS1h5NEZyTFd2ZWhx?=
 =?utf-8?B?M0lhbzRHdHFFYUZRRVVnYVZkcEJWSitHVFlsL0g1SHRwY1VmVGZZUkpQMmdW?=
 =?utf-8?B?aUdNa09uaTRaK0M0VmJpanZmYm00K0FoSXFZbVJQa2tmK0VGUlRxdGxLMSs4?=
 =?utf-8?B?bi9hbTRMUjZuOG1CNWo1WTRiOGtGTWFoY0h5UjRtaWFpQjFDYktzcDcyRU1v?=
 =?utf-8?B?Y1JSR0dTYmsvencwQis4dEZFdldKU3JySVd3UG44N3YvN0IyRnRqWWRSdG9Q?=
 =?utf-8?B?WlkwN0o1SnMrdHBPZEJLeW5rSHRmaTVRby9wc3h2aTNZc3BkTmNOR3VCSytm?=
 =?utf-8?B?Y0F6cUxaeERhSGdOTXA4WlJ3RURsNEltdUcwUFpwSW8ycGVDbk1nenlFaVlO?=
 =?utf-8?B?VmZhdHFkK3A0UUN0L3pvK0ZUMkhkK3B6TnFLMDNMa3lNMFk1OXI5MGRuaVRj?=
 =?utf-8?B?SmJONWZwOFVjeURQUHg4YnhzVEk1Y2s5cWQ4UDFxSUdZTkJ0QzNFREJZempU?=
 =?utf-8?B?MElnNWVzMUk1L1JBbndPUXV5NVVESHp3aVV4L3R3d2NucWVDbmtLdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5285f295-788a-444a-e873-08deab5ae3e8
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 10:33:19.4234
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: unABlDXmcZvlyDKoRj49xXagrkicOK+nuqGVtuHZ0Tvrv66Z41xy73RxZvnKyOGeB9nyuL4S4fLoRrKOQ777JQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5750
X-purgate-ID: tlsNG-33051d/1778063604-39171938-8FFC9D04/0/0
X-purgate-type: clean
X-purgate-size: 2506

On Wed, May 06, 2026 at 11:39:14AM +0200, Jan Beulich wrote:
> NOW() (in particular) can be used ahead of init_percpu_time(). As the
> initial scale value set is merely the BSP's, we can as well set it before
> actually launching the AP. Don't introduce yet another notifier function
> though; do this from smpboot.c's.
> 
> Setting the scale alone, however, doesn't work, so the entire struct
> cpu_time is copied.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> RFC: Copying the entire struct won't work very well when tsc_adjust[] is
>      in use (and values there differ between sockets).
> 
> This in particular eliminates an anomaly with log messages issued early
> while APs are coming up, when "boot" console timestamps are in use.

Could we consider moving init_percpu_time() earlier in
start_secondary()?  I think it's main dependency is on
set_cpu_sibling_map(), which we could also move earlier?

Looking further, seems like it depends on smp_callin() having parsed
the CPUID features, plus the socket_cpumask[] also being set.

> --- a/xen/arch/x86/include/asm/time.h
> +++ b/xen/arch/x86/include/asm/time.h
> @@ -21,6 +21,7 @@ mktime (unsigned int year, unsigned int
>  int time_suspend(void);
>  int time_resume(void);
>  
> +void preinit_percpu_time(unsigned int cpu);
>  void init_percpu_time(void);
>  void time_latch_stamps(void);
>  
> --- a/xen/arch/x86/smpboot.c
> +++ b/xen/arch/x86/smpboot.c
> @@ -1139,6 +1139,7 @@ static int cf_check cpu_smpboot_callback
>      {
>      case CPU_UP_PREPARE:
>          rc = cpu_smpboot_alloc(cpu);
> +        preinit_percpu_time(cpu);
>          break;
>      case CPU_UP_CANCELED:
>      case CPU_DEAD:
> --- a/xen/arch/x86/time.c
> +++ b/xen/arch/x86/time.c
> @@ -2346,6 +2346,12 @@ void time_latch_stamps(void)
>      ap_bringup_ref.local_stime = get_s_time_fixed(ap_bringup_ref.local_tsc);
>  }
>  
> +void preinit_percpu_time(unsigned int cpu)
> +{
> +    /* Initial estimate for TSC rate etc. */
> +    per_cpu(cpu_time, cpu) = this_cpu(cpu_time);
> +}
> +
>  void init_percpu_time(void)
>  {
>      struct cpu_time *t = &this_cpu(cpu_time);
> @@ -2353,9 +2359,6 @@ void init_percpu_time(void)
>      u64 tsc;
>      s_time_t now;
>  
> -    /* Initial estimate for TSC rate. */
> -    t->tsc_scale = per_cpu(cpu_time, 0).tsc_scale;

Wouldn't it be simpler to pull this out of init_percpu_time() and do
it at the start of start_secondary()?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 06 10:38:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 10:38:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301563.1575832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKZdv-0006Ia-Pc; Wed, 06 May 2026 10:38:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301563.1575832; Wed, 06 May 2026 10:38:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKZdv-0006IT-Mg; Wed, 06 May 2026 10:38:15 +0000
Received: by outflank-mailman (input) for mailman id 1301563;
 Wed, 06 May 2026 10:38:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKZdu-0006IN-OW
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:38:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKZdu-002G3m-5A
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 12:38:14 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb1a05-bab6-0a2a0a5309dd-0a2a450289ac-28
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 12:38:14 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb1a15-af86-0a2a45020019-d1558029c9b8-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 12:38:14 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-488b8bc6bc9so39686545e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 03:38:13 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e538a50d0sm64266255e9.5.2026.05.06.03.38.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 03:38:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778063893; x=1778668693; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ryXyXOnJEZv93Aj9BVYtKLhbvUOjKMBMV1mlZvCt21Q=;
        b=bmewdSSt9etB0c+BHTGUnMW01fLNJesth8ayOuEFQ1FPaBF7Ds/Rpa6502bOn0Na6q
         9LxH1O3FeQsd8oewM+LiGOFKUmMMvbeHo3hgk0Nq4Y4tOUujUCuFeCIRnhKtwAdSlmsz
         WNNqOKadeBCA9VsO65etjvYXg/audTMzC0Z4nNXCMZIOAMnhOlPRbgWiUv9vX8qEnKWX
         n2E2nn6GlcbawVS7PBeflxBPURFWGgT49ZiXJ51HcBLQ/0BOg1dggkQufppJW1a8bL4F
         z6FFElAWLgO5Csnmuycle3bbr0cxMDZXBQX7tPeXyQi5gw7pWF50n0wux23B6aTpiht1
         6RiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778063893; x=1778668693;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ryXyXOnJEZv93Aj9BVYtKLhbvUOjKMBMV1mlZvCt21Q=;
        b=qCZ4R8EgNg+n2TXnojIcTsozL7TYmgHAh52pW5vg6UyoHGwxaeVNCVjatOHhmhlaLC
         HrSL3GguvqGMuTZAOYUeo4reQFk7PfDFS3wvMkCFS+e2mwHyvcc8Yr8HMHuIonL6d85H
         3jXnq9XvXAzLXlMasqRTrNifuSggWLBM580erpzsKL5Z9NqAjhgZUkKI/XC3E676Nn8l
         3b3L/jbjCN6G9jqu9xpcbbuDSZHrf31anm3f5Uvpujk6xAxnoAgVVMKr8K5bMlcpdFBI
         Mr8RDd4sEc0Ssmvpw9iTunwA4qpXiATEzktWz+rF3llyyh8jFlxyq28yPoDzI5DKWwMe
         uEYw==
X-Gm-Message-State: AOJu0Yz3Q9jB+fjPElBeOe7r2NtOO7TBORvaFu56GpLG6IyEGVmLTEEn
	j6DodsQDLi7uPhFjPEvezBN39t8Ioq8hDsiDk42FGqhiuu622usHsSi0Tx7Pbenv/A==
X-Gm-Gg: AeBDiesLscQPAWw8NyEd4gNlcuB5PqZoLE04C+p966qRA0UHVXVnawS9+RPOUcbGS8u
	ZNhXLM+82xzz3Ha+HOzQSEqufMz1K+Hs2i7TTld8oRgQfy0J9cmGs/ElqKw18u+5j+++9hQlvhC
	rzKt11QFm/EYzW+ojoCAFV5XKjDCM4VYNUVleQMQDPkgMdGR+w77NfpGyjYWm0ITQJ30mSC9cP/
	fvL+27pKvTIUhG0QgwdRmcOB3c8Y874+DAvJEahIMaK07VcW5gJ7FPTp+qOSBd0Dy2Mx4Kw6sjz
	8AkXucfBwRP3aP9XP9mKu+YK7MiMoCnOtwN3CQnrG02BprtkRVauT7qYOVh00isWOPq904DvWOn
	97Awi1VDzH2PPfprwFaE3xvo05S6DftHkyBdVWPORURNsYdPXsxDxEiOrEyEgMmmvo26/p7fVat
	+Y3ZnyHaWFIvhBDJgESLM+j5C/UjJxnAUQDn2Ysu/gD66qc7rNYwJabA4FS85LLimt5FNHh78ZO
	szBSOh2cJxaNxtljkIkytnRzA==
X-Received: by 2002:a05:600c:4e0c:b0:48a:55d8:7882 with SMTP id 5b1f17b1804b1-48e51e16e58mr54432415e9.9.1778063893474;
        Wed, 06 May 2026 03:38:13 -0700 (PDT)
Message-ID: <b6171f2a-016d-4614-a912-0d41f6df7ea7@suse.com>
Date: Wed, 6 May 2026 12:38:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RFC] x86/time: avoid early uses of NOW() to return zero
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <746ce9af-156b-4c16-8cc0-6e8d929107a0@suse.com>
 <afsT4gICSQ_LuJ-R@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <afsT4gICSQ_LuJ-R@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778063894-A857B161-6FDD20FA/0/0
X-purgate-type: clean
X-purgate-size: 3601

On 06.05.2026 12:11, Roger Pau Monné wrote:
> On Wed, May 06, 2026 at 11:37:41AM +0200, Jan Beulich wrote:
>> RFC: This breaks at least the TSM_BOOT case printk_start_of_line(), which
>>      checks for NOW() returning 0 (falling back to TSM_RAW in this case).
>>      For now I have no idea how to avoid this, except that when CPUID leaf
>>      0x15 is available we could leverage that to put in place at least an
>>      approximate scale value. Doing so could, however, lead to a
>>      discontinuity (returned value moving backwards) once the final scale
>>      value was put in place. (Note, however, that such a discontinuity can
>>      also result from init_percpu_time() using the BSP's scale value as
>>      initial estimate for APs. Then again local_time_calibration() at
>>      least makes an attempt at avoiding such.)
> 
> For the purposes of printk_start_of_line() we could unconditionally
> use get_cycles() when system_state < SYS_STATE_smp_boot IMO.

Hmm, "raw" console timestamps are quite a bit uglier to deal with as a
human. Also, while init_xen_time() is pretty close to us setting
SYS_STATE_smp_boot, early_time_init() occurs earlier (and with
init_percpu_time() also called from there that's enough for "good"
timestamps).

>  Using
> the frequency value from CPUID seems like a good approach also on
> boxes that expose this information.

As per what you suggest below, we may then need to increase that value
by some margin, to have NOW() rather move a little to slow than too
fast. Plus of course it won't help for AMD at all.

> I wonder, we seem to unconditionally perform the TSC calibration
> against a known frequency time source, wouldn't it be more reliable to
> use the information from leaf 0x15 when available?

Andrew has been suggesting this, but I can only keep saying that what
CPUID reports are nominal values aiui, not actual ones. From what I
know, there's always some (small) variation as to the frequency of
actual crystals. And it's unclear whether our calibration is more
precise than what CPUID tells us. (If we knew at least average errors,
we could maybe calculate the value to use from both the calculated and
the nominal value.)

>> RFC: While generally the mentioned waiting loops will take longer to time
>>      out, on a very fast CPU tight loops may time out too early.
> 
> I was wondering about that, increasing just a nano-second for each
> call seems like it's going to make progress fairly slow?  Obviously
> depends on how tights the calls to NOW() are in the outside loop.
> 
> Maybe when lacking frequency information from CPUID we could assume
> something like 8GHz and scale the TSC based on that?  AFAICT it's
> advisable to use a frequency greater than any CPU, as then we don't
> risk NOW() running too fast.

Whatever value we pick, something faster may later appear. And too high
a value isn't good either.

>> RFC: In get_s_time_fixed(), should we perhaps assert that the scale was
>>      set?
> 
> Might be good, but I would like to see what explodes when doing
> that...

Of course that would need checking first. I've audited the callers, and
all looked safe to me. Will do for v2.

>> I don't think Fixes: tags should be put here. If we did, we'd have to
>> enumerate all introductions of early uses of NOW() (or get_s_time()), with
>> the exception of those dealing with getting back 0 (which I expect is only
>> printk_start_of_line()).
> 
> I'm fine with no fixes tag, but we need to remember to backport this
> one.

Definitely.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 06 10:46:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 10:46:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301578.1575841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKZle-0007rf-Fa; Wed, 06 May 2026 10:46:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301578.1575841; Wed, 06 May 2026 10:46:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKZle-0007rY-Cs; Wed, 06 May 2026 10:46:14 +0000
Received: by outflank-mailman (input) for mailman id 1301578;
 Wed, 06 May 2026 10:46:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKZld-0007rS-1w
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 10:46:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKZlc-00FgK1-EW
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 12:46:12 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb1bf4-e002-0a2a0a5209dd-0a2a4507dd1c-0
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 12:46:12 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb1bf4-229c-0a2a45070019-d1558032bd46-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 12:46:12 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-488b0046078so54920595e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 03:46:12 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e53152acasm14670555e9.31.2026.05.06.03.46.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 03:46:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778064372; x=1778669172; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mY/0Pabet0+jg1Czo0iZFQAzV9HXQBYAb9mr5pLUoog=;
        b=RUkEwEuH5auRiAURzGFqIMv1paPLUuqm3NHR1cFNjTCVQeZQZdsSmYUmbJmNaRMz02
         4IjlWOUTlevbOeciPHqU7cCK9oShVqSAvCRaoVRzERC7h+7uSlVGxWFCbFpsCbZGp4jV
         ltrsmAYKTPS3owEYkN1IlNogCFDF2jG+kAs3+vrlVSn9ObQGLeuJPmZ8hlPj07U6nNMS
         QtDZqkB0oWT82zbPEx9WECufwuAqPMxV73hKyInvOZH2cO5SgYuOrTw2hXsCx7yBoea1
         evEH+S2UxkXffOzo7TzSlHxgK41+kjUKdCvZaSQR7U/xhWfkZOMLogFeXX6hMSEd+Lm7
         aVEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778064372; x=1778669172;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mY/0Pabet0+jg1Czo0iZFQAzV9HXQBYAb9mr5pLUoog=;
        b=iZCrWv6jd2SL2n35FUfJsfdX9UvX+Zw3HrdCSJWjItcOf5YaynEwZAPblYWneElhYv
         tHqnC5aL9Y3a4PJpk2Uq19HV3gCUJW8Bqpg2j9tiOQWCBWoJBMOKMdF2QotUiZRNEgzj
         o+1Om8Sh+Os2ofPW4XkgpLvYGMuDtQBcGW+N4x08BlAYySgzWvcyQ5cP6Lj5fUd5QP9K
         SE+gahHS5B8qDJU20F130fJkcGkwT/j+6r3+whxd56LNJ06V6/Rit75/xnnb2ohpmSy5
         wBcDv0DwNXGm68MIGd08XwDhPnEN04zOm80WlFB+klLTsdY+XGu50vR473hCo2/z9iFK
         dONA==
X-Gm-Message-State: AOJu0Yw1pFqoINzauJngkr4pirXBGojVcTT5O9eUmUSrlU25Awjc29XM
	tmEB/69s0LJCV/ysPaX/5zFO/VnH14YbhUcj6974rp0rarPRwV+r3z5YR620foZMWw==
X-Gm-Gg: AeBDiesE8/JrIWapylejdDtUWJKdptVSIXCWKsqguG9wFszZsyr4Gj/l8DVs1fSil+h
	+fVdZL8H1IDJac51ynBGhNBSFHh4pqnU4HUQhPkAlNlC8oD0Whjopx465IfNZc6xOvkwHgJoN5F
	wDvZ/7jtaH4+UlW3izKoIFVAXltsQt/GLRCFflFAsulYf9nIKNetlxQcd44Q79hv/WcEIA6aaSf
	RaSYJQgWrUrOfg9OVvYJZKqmpWQyf9xdeINfF1KmQ598rP0ghyTCEZ2IISuglwq/W3H5XFAi9EH
	2qBEXQuFMgl/g+phS36VbThQQPkegHwntY8DOeh+f9+GRVIYuKRGy1heLBI4DD7gMiRsRhdKalG
	lW9fr6FQ9J8xtqCOax7KQl4csp/5eKXMRnLXP8VOzxQVl+98uczQollaV26OXxdJDkTFTQurBz+
	awfVc4GsT0jcLntgJHayf02FEQGuHM7+YpEPM8QGe4ccLOX43Wui47Zt5UXml9rpv2nHcIoavw0
	+Fy8HoZOKrMocy9k8Y18lWBSA==
X-Received: by 2002:a05:600c:354b:b0:48a:554d:b9a2 with SMTP id 5b1f17b1804b1-48e51e0c7c9mr48692515e9.6.1778064371612;
        Wed, 06 May 2026 03:46:11 -0700 (PDT)
Message-ID: <ccbd251d-357c-4c5c-8c4e-f9f64c3e266f@suse.com>
Date: Wed, 6 May 2026 12:46:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RFC] x86/time: set AP's TSC scale estimate earlier
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <1e23dd78-b246-4fc7-9e18-de8b0cd57721@suse.com>
 <afsY7KqNIyrhW0s4@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <afsY7KqNIyrhW0s4@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1778064372-23F7EC48-12E38768/0/0
X-purgate-type: clean
X-purgate-size: 2332

On 06.05.2026 12:33, Roger Pau Monné wrote:
> On Wed, May 06, 2026 at 11:39:14AM +0200, Jan Beulich wrote:
>> NOW() (in particular) can be used ahead of init_percpu_time(). As the
>> initial scale value set is merely the BSP's, we can as well set it before
>> actually launching the AP. Don't introduce yet another notifier function
>> though; do this from smpboot.c's.
>>
>> Setting the scale alone, however, doesn't work, so the entire struct
>> cpu_time is copied.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> RFC: Copying the entire struct won't work very well when tsc_adjust[] is
>>      in use (and values there differ between sockets).
>>
>> This in particular eliminates an anomaly with log messages issued early
>> while APs are coming up, when "boot" console timestamps are in use.
> 
> Could we consider moving init_percpu_time() earlier in
> start_secondary()?  I think it's main dependency is on
> set_cpu_sibling_map(), which we could also move earlier?
> 
> Looking further, seems like it depends on smp_callin() having parsed
> the CPUID features, plus the socket_cpumask[] also being set.

Right, and CPUID retrieving in turn wants to be after ucode loading. Ucode
loading, however, is the primary source of AP boot log messages that I'm
aware of.

>> --- a/xen/arch/x86/time.c
>> +++ b/xen/arch/x86/time.c
>> @@ -2346,6 +2346,12 @@ void time_latch_stamps(void)
>>      ap_bringup_ref.local_stime = get_s_time_fixed(ap_bringup_ref.local_tsc);
>>  }
>>  
>> +void preinit_percpu_time(unsigned int cpu)
>> +{
>> +    /* Initial estimate for TSC rate etc. */
>> +    per_cpu(cpu_time, cpu) = this_cpu(cpu_time);
>> +}
>> +
>>  void init_percpu_time(void)
>>  {
>>      struct cpu_time *t = &this_cpu(cpu_time);
>> @@ -2353,9 +2359,6 @@ void init_percpu_time(void)
>>      u64 tsc;
>>      s_time_t now;
>>  
>> -    /* Initial estimate for TSC rate. */
>> -    t->tsc_scale = per_cpu(cpu_time, 0).tsc_scale;
> 
> Wouldn't it be simpler to pull this out of init_percpu_time() and do
> it at the start of start_secondary()?

As long as it's only copying memory, that may work fine. Plus, yes, it
would allow accessing actual registers of the CPU being brought up, if
need be. I'm slightly wary, but I guess I'll follow this suggestion.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 06 11:15:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 11:15:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301598.1575849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKaDy-00042E-MY; Wed, 06 May 2026 11:15:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301598.1575849; Wed, 06 May 2026 11:15:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKaDy-000427-Jc; Wed, 06 May 2026 11:15:30 +0000
Received: by outflank-mailman (input) for mailman id 1301598;
 Wed, 06 May 2026 11:15:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wKaDw-000421-Qs
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:15:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKaDw-008YH2-7X
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 13:15:28 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69fb22c8-5cb7-0a2a0a5109dd-0a2a4503a178-22
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 13:15:28 +0200
Received: from [202.12.124.144] (helo=fout-b1-smtp.messagingengine.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69fb22ce-672d-0a2a45030019-ca0c7c90ab75-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 13:15:27 +0200
Received: from phl-compute-08.internal (phl-compute-08.internal [10.202.2.48])
 by mailfout.stl.internal (Postfix) with ESMTP id A82131D0006B;
 Wed,  6 May 2026 07:15:25 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-08.internal (MEProxy); Wed, 06 May 2026 07:15:25 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 6 May 2026 07:15:24 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm2; t=1778066125;
	 x=1778152525; bh=kp6rrEQL9W6mD3SdFOu0W9/67fVZf8A+p9FWAp0Hfyw=; b=
	m6Yc2fDV9t1ilZHLXe8aAAoN3ht/vuv3dDXuCiWCh6KlFql5QGiuVcW/ENPcuYdb
	PE102EqmmJEScSd1jb/nLyV1reyVfGPjeTnblZc+YtkBUCmoPnMo9063WMoAy3X8
	PiWzvsmf6QO3FPwkXAIItzxqLij1gkcw3i9SIrmENopeOnnOP+FrAr/edhWa/QRy
	VgzE2Wa8GcOd1+Vfcq/3eSqbJcU2GBVszkrcmXp78L2/gQsyTCDdCjur8Y7jffnI
	e65N4qTrAsKcUmBioUibRtdPhWbvvY97mktzmn/LFGlI/E/sPUq7inOaJei0Rryi
	u1bQRAi5zIUptyKtmhVVSQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=
	1778066125; x=1778152525; bh=kp6rrEQL9W6mD3SdFOu0W9/67fVZf8A+p9F
	WAp0Hfyw=; b=Jd276WukIJcp+meM3LWSbEw5JPTiFJPwIj0KVIwnqs0LpkXedZo
	+kG6nYNuBdZClTUiNwsoucHHMYBteqHwCjMHhLG8FDcagj3y2EreU1lII59xfUOh
	q53clJWBdog8+OUIx1bwoSjWYkT+sKIKQbZ9b2rkdxyelPSLic+zTSiEakIiZp4p
	EGgZo5sDoLfRPlnwVTjgVKSHOjac3FRNp96pZpQLQZbQhs3b5k+1c5JUO7jfp/G/
	SAEbPXeqL3fP6jUdNJn938UOFebZzvQ2aaDe2OhySJgI9OooC3b+caDn1fIKWQWN
	jOBDbHnFYP55ITosg5zoaYD22nnBS1FOoqA==
X-ME-Sender: <xms:zSL7aWMph-Ou7OilVgpH7YqMNG-R_eOUXVqlkEqIEbQKzksWUnkUcw>
    <xme:zSL7acaI0QLPMCng607U37vhIub3B7a6zHyFH18e3h-kb4Zwm6pty7tfcSoW1ydGA
    MVDXtNSlCkydahlzjjzIZ6QYZzsm6rqOfNxPpNH3Bsk5eeAJw>
X-ME-Received: <xmr:zSL7aaooH3O8DpV20VpuN-TsR7OnMEuuOxHfasdY5w-Pn5FtXnmxRwkRnYw5NWTPojT2TMMWmlWYG0PokFr_xdh5yvEWNO40HlI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgddutdeggeegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtroertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepleeutdev
    feffueelgfduieevuefftdekheevjeeiiefgtedttdefgfekheduteefnecuffhomhgrih
    hnpehkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehjghhroh
    hsshesshhushgvrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdr
    gigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:zSL7aQaQT9TkFrKxhKE1kb-77Rbt-_4eLFbsh_ThwAq_fsYFOb535g>
    <xmx:zSL7aSQyL0VOLH5nH6Y0ohKixDvHgks-_t_ulS9393y5zHbCLkvDlw>
    <xmx:zSL7aX4y5lehmONA2R__u1mDcunFl6DXq0H4v-ypvddCFpSjfqlPWQ>
    <xmx:zSL7aXy9W3yxbv45Xzz1C0qd5YgcSYXPyjSi0qhmh0kRuroVNULvXQ>
    <xmx:zSL7aU8Fx9_AbAdvbb-N5xQjKq1n05zlqKo_kOWzePX0ailZElRNXoSV>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 6 May 2026 13:15:22 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: Problem with PCI-passthrough to PV guest
Message-ID: <afsiyinlXzjSxnxp@mail-itl>
References: <04c8ed4e-4e99-46ae-b83d-af9031f5b622@suse.com>
 <afo7NyXOEsDsVB6i@macbook.local>
 <4ca0f24d-2526-4e49-a4e0-f8497aa8f4b0@suse.com>
 <afsHZMH1oVpds-wg@macbook.local>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="BPtx1NF9RdXMA+6z"
Content-Disposition: inline
In-Reply-To: <afsHZMH1oVpds-wg@macbook.local>
X-purgate-ID: tlsNG-33051d/1778066127-41B92938-64094735/0/0
X-purgate-type: clean
X-purgate-size: 2720


--BPtx1NF9RdXMA+6z
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 6 May 2026 13:15:22 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: Problem with PCI-passthrough to PV guest

On Wed, May 06, 2026 at 11:18:28AM +0200, Roger Pau Monn=C3=A9 wrote:
> On Wed, May 06, 2026 at 10:45:49AM +0200, J=C3=BCrgen Gro=C3=9F wrote:
> > On 05.05.26 20:47, Roger Pau Monn=C3=A9 wrote:
> > > On Tue, May 05, 2026 at 05:53:31PM +0200, J=C3=BCrgen Gro=C3=9F wrote:
> > > > SUSE QA is seeing a problem with PCI-passthrough of a SR-IOV to a P=
V guest
> > > > running a 6.4 based kernel, but I can reproduce the problem with up=
stream
> > > > kernel, too.
> >=20
> > Uh, seems my tested kernel was only "nearly upstream" (it was an early
> > 7.0 kernel). It was missing commit 0949c646d646, which makes the differ=
ence.
> >=20
> > So for now this issue will only show up for cases where a PV-guest is
> > setup for PCI passthrough and it gets memory hotplugged before the PCI
> > device is added to it.
>=20
> Hm, yes, this is yet more fallout from the unpopulated-alloc changes.
> For PV guests that have the e820 host available we could try to create
> the hotplug regions over what are host RAM region in the memory map,
> as then we know we won't be overlapping with MMIO areas.

FWIW, my Linux testing series also(?) found a PV PCI-passthrough issue
in recent Linux (linux-next from a few days ago there). While it looks
to be a different issue, it would help a lot to have that series in, to
at least detect regressions early. See
https://lore.kernel.org/xen-devel/cover.30e6171ddf1c6a72eadf4af0a77c892d4f1=
8d811.1777898148.git-series.marmarek@invisiblethingslab.com/

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--BPtx1NF9RdXMA+6z
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmn7IsoACgkQ24/THMrX
1yzPYAgAgL0huzKRxGal0fySxl+meBobKw0S0jiS74w24B6k4KQkl8hmw/CwNhYq
zSK17H8yOFaIVTI1rZoyHn7ZYP2siwn65wkB7wo5FWzp7ArZo4l9olERLrj+m29n
XZyKUdjsvakSpF7jcl66SVi6tHpVR1Gkn2+Ve+LXlmn1deUmsfdxaAZpdkxjlxpM
pvIEo83m8DEdN8kjdbRXiU/IhiUT/wI8r12pItFoO7VyxSNs1gd4vWvCZHYG1aXf
Z8ABTE7E54GUKyibvWXmK+ZK/vUoxpsbaz1DqMOh7N+u2J+BoSvYJdCzoWnzz2fU
pajl8R+7UzBQYuETMHZ3nZx67v2nWw==
=+GUB
-----END PGP SIGNATURE-----

--BPtx1NF9RdXMA+6z--


From xen-devel-bounces@lists.xenproject.org Wed May 06 11:15:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 11:15:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301600.1575859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKaEG-0004Ik-Tv; Wed, 06 May 2026 11:15:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301600.1575859; Wed, 06 May 2026 11:15:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKaEG-0004Id-QC; Wed, 06 May 2026 11:15:48 +0000
Received: by outflank-mailman (input) for mailman id 1301600;
 Wed, 06 May 2026 11:15:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKaEE-0004IC-RY
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:15:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKaEE-00Fmjg-7q
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 13:15:46 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb22ca-2eae-0a2a0a5409dd-0a2a4501c9fa-34
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 13:15:46 +0200
Received: from [52.101.193.36]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb22e0-c1f2-0a2a45010019-3465c1242d1d-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 13:15:45 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BLAPR03MB5601.namprd03.prod.outlook.com (2603:10b6:208:293::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.20; Wed, 6 May
 2026 11:15:43 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 11:15:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MMU/6AJQR4xE8gCUcKaU8jbiba/JdBal+G5iFSZNDbC3PLov5WsvKXaY61HuXFevqrUB9TpPoHm1PCANwVzwcKiB4FE7HABb5gm4vaK1g3CU4TXS6p1qmps0m5Yd6TaaLlZi+5r5Z7hDDidoJ3vLcrTQIqE9dmFOC3VJ4lwsaZM+oicJCVN8gdO9ja2YaKtMmCtsyEesLIsM2VQ/gr1OnV/ABCNYb7wt8iu17dTzSAbIAzimHvjAAcaDVwvQqyWxYOIjENM43NaDuK+OZa2RBXq5n/nStXt1xIhruaVuDRO4C3rAExZqnzPPJiPZgd79APpMSkKnLAlUI0kNPs+o4A==
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=j8X8hMLfFknAlmgCNi2ki0dDl+m1GqSyXOvkgTWewH0=;
 b=STRzj1MkXHkoVn3wmMbqIMZxOWt7MU9KBK2NxhlNOihRTzdWDDWZZu2flDe4am6JLmy4hKpQxMkP9KxmLJVKTdcPq0sPDbTgTDvWU2m2uL04vq/9Rmgj9cspB6ti7UT6iR34G20XVp7CLPlU+vtaeAr0iMYEB3TzQlJdoj/MmoZNx/sUxwbfdMlMrwVbDb6VkXeiVckphUFLg7wOgRUwzKlSaHQ/7jEeNcx4c9mxhQEmN6hj8vA+4LmzmrTKt1uzD9b1YtDOHp490K3PDaKBuXs+od6pDIa+udyyrBGLykP0WcHak3aptu/fftPTv/pBDCOY9J6XLlgjxm04jGoBoA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=j8X8hMLfFknAlmgCNi2ki0dDl+m1GqSyXOvkgTWewH0=;
 b=f6sJccM8a0A/kWpRrZYN4/pNaqSeHUMfOr56mfl/TwcdevMCKnnLbsyPb+JEqKXbzQBpiGwRdegzIcWqTkP6Gz0EgPAfU/JidjvpXDMxtGfburEbDxUgUZViSlD3Uw8D8D35qAyhCsfonZUuiLNbR+ECH/7xJb8vppuduHTjOdc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 6 May 2026 13:15:39 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: Re: [PATCH] x86/time: make do_settime() uses more accurate
Message-ID: <afsi29_wLi_P7G4t@macbook.local>
References: <99a4a514-3ed5-43f7-823c-54771f3bd03d@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <99a4a514-3ed5-43f7-823c-54771f3bd03d@suse.com>
X-ClientProxiedBy: MR1P264CA0073.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BLAPR03MB5601:EE_
X-MS-Office365-Filtering-Correlation-Id: cccfb327-60d6-4e01-3005-08deab60d045
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	MfgryfK08tmHWxEeCSqk/SCeiTedi8UATfywSPnDZpkcUD3Dys+hYyekKZE7abR9pn45fnYLQ22W8T8fB0WF0n40Q2Fx9U7uLwW22tym44xuuVG/DruRO5jZa+jwe2id5dVXbCjTkXhp8UMR5k9s4saMUhodCJ5uBb1PCVB1YTSZB4955sqybwcBEZHGeIInckjhxTp0141o9NyWPWkt2GIY6uIxa0DypeIB/W9sEyG/pDdPlAtI4VFxd0S8exRZFHFxKHXF0Pm23gTFgQLrTHoWcIM5u57W5/LWhlIX7V/Pn2/QUf1IGrHZ1ClGl3kjlLLBm8cc3qeL3ZEJtqW0N37nJxb8+L1Mmfu2zxs6g3ezx8y8ZsYUmwBeuiKpaOmOyWBmpldTqBAAf/xEegWBfujM+W7b0nQrMdRO7LAk73Up5gxWkzyMlpp60lfjJy7GwzKJ4YMiZj/BKTUdhDB/mecLBO21Y4GYGdD5tfQYyvzkfLJYc1+qSV6jbIzX0inXJZdwnOh7k4C81k2mMyvnDujRJEAAs634v+T2m0pjDrLccltYoqtkJtY2vmsu42qo+m/302sXzvp5m+OjdGANCAUFZnys1Y++iWz+XIoWE7GETFE+I8bWVr1GbxHnDTv4YrMgGuPfj/1OKSX1TPkIbilfV+g0NpV7563wzIh1y7ni8Cok+BSqbsMyWxdzjDhq
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Vm1yMERqLzZyaUZ5SWRJUy9mZ09EaW5mSkNFT1B3a1lURW1kMmtIbXJ6U3ZR?=
 =?utf-8?B?dHh5WC92QVhMVGptc1d3T2Qxak1BUDBDWmtVN1FXUUFGZXBLV0xEdTlMbVhP?=
 =?utf-8?B?SE1lcDFiZzZVcm5uaGhlL2tPY1dCUEVXSlA5OHRTUXNZSHBSRlo4TVU4NHdX?=
 =?utf-8?B?U1MzYVlyTlFtTFNCWGtnckxTemJBbkY4WjUyWCtBYi9mSm9LWVZWZUZJM0FY?=
 =?utf-8?B?M1hMdHpSZnZzTzhMQ0xPRkN0U1hINjhXdXFadEd6eUJRMldaa1pPeWNKaUlM?=
 =?utf-8?B?WCt4SjArMTlNT3dHai9jam9xcmhlbWRZbG9NUmhST05XQ0cvb0k4ZEYxemJD?=
 =?utf-8?B?eXh0cCtFQ0dZK21jbCtuWmpES3l3WFo5b3RkeXFjQ3p1ZS9LajRpWmhycy96?=
 =?utf-8?B?djFuT0dVQ2IrQW5yTjQvRmpYR0d1OE9TRnp1TzJscTZlOEdyU2NUSGc1bDVQ?=
 =?utf-8?B?bXVILzdnYmx6Tm55R25UY2pkNUNtVkI3Z3JVdE9hRURPcWpLTkN6ZUhPbUVn?=
 =?utf-8?B?TS82ejlWSUlwandJK0JnZlliUDBZT1FCbDl4UnNpSTJEYXhhT0VoS2ovemNQ?=
 =?utf-8?B?d1RBM21wQ05FWTFmbGRhVG9GRDUxb3BPTG95aUJWK0lYSXlEOSt1bStvYUJH?=
 =?utf-8?B?cU4xTFJpcXRqSlR4WUlFTFhmMmhVTTU1cnFIQWhnL3B1d3NndER0TGFSQWpV?=
 =?utf-8?B?ejdqWjc1RGdhYWg4S3ZZdGRodGdzc0R5bDZJK2h6UzVERzFVNEJ2VkFQMTBW?=
 =?utf-8?B?U2tkaDY0d1RPUnlvelZaVXptRGxKb1UxN3BCSW1lMlJtK3lzSU1NampxTThE?=
 =?utf-8?B?NXBKYlZIU0VOYi9mS1V1Ym1nQzJKVjdDV2JISXVhL2RjQ05vTmhJcWQxRm1U?=
 =?utf-8?B?NjBYZ1hSdTkzZVplU1BlcE51TVozWkNCYTdNd3NJV1h6U0g2bXJ3L0kyRklJ?=
 =?utf-8?B?RUd0VGVzRDJhSHRueVhvdThYOE1GU2REWVMzQVRIVUI3bDJ4VU9FRXZBSkUx?=
 =?utf-8?B?em03NHJGTTc4WTdHMHk2ZlF0aHBPUGdDcHI0Tnh3U1o0WXZGL0svbnY2akZp?=
 =?utf-8?B?ZVZGWndVdWdqby9HNWhqZjZGZkZVQXV6c3JVUXJRQVd5S1JDZTdra1E0UVhW?=
 =?utf-8?B?Y0RwdTVDVDZMNjB6OHh3dlcxWTE5ZU16a0Z1SVc1K0IxTEtteWkvMjFaTzZG?=
 =?utf-8?B?Ui9NN0I3TzRRMGtCamY1WEcxY0d6NEZCU3c1SUFIRE00OTFMK0ozNndJRC9s?=
 =?utf-8?B?ZlJEeVY0UU4wWVB0bWc2eFBleEYwYSt6RE1zdDArUndlUE1UZFpIZHA0TGlM?=
 =?utf-8?B?MVZmR2dPdThPSFVoaGxJRjdZZ3pxWEI4Z2FCc0dIOUJQVVdiS0dEVDVSYzd2?=
 =?utf-8?B?NDBTSk1BenV4am14T1BEOC84L3I5bXB6bFVja2ZtSkpNTmlyalRZa0JDK1lj?=
 =?utf-8?B?QmZ2eC9ONDhVRk1yY3hJOE0rN2VWbUVtUVpVUVZvM2Q3OWl5Y3U4eisyL3di?=
 =?utf-8?B?R2w4K0d3SHFFZHE4SnJ0UHNxcmcvZFdkMVNxS3lJbnJBclROd2FiRXFVR2NB?=
 =?utf-8?B?ekswakc4UmRBZUtOakVaRC9Yekl1Z0tFa0ErRk1JWjkxUnp2QyswZVBFVnc3?=
 =?utf-8?B?Uk5MY1lsM3VJbCtWd3pDUjF2YWFCUWp2dVo3WnRmYjF6U3dBVmNrTUVoZ3Rk?=
 =?utf-8?B?bldmU0pob24zQ1RaWjNKQkNVaWZGdTltancwekdEVWc1UjVVYkZPZkYrRStO?=
 =?utf-8?B?TStnKzkySEV1TkNtY2h5aUF1bjhBdWY2NUZHSjB0WjhIZmhOdHVPN1dhR1Vi?=
 =?utf-8?B?My9hNFBncUYrU1NVaFl4QzVwYXcxNkIzWXhjdVAyRDRjNm9BY3Zwemd5anI0?=
 =?utf-8?B?ZENiTGpXUVN3LzZZaUIyUkZlWEdsN240NHRxbEFWcldJY3RTaGhzOWRMZTVE?=
 =?utf-8?B?cDRpS1FKSzNkL29FUGdTWEhuWXAyN0JqV2VWWnVQZGlpa2VCTmRYVUZiaXpl?=
 =?utf-8?B?NXlkMTVVT1lNWVhqTzNmNkozME8wdmJ2UHFrVG44SFhQS1psTnFVVXQ5em5K?=
 =?utf-8?B?RHUwWkd5WGVtbFFxZGNtUEZLWmxPMHV6Vlh4UHFleTF5SldvZzNnWTdDd0E4?=
 =?utf-8?B?NmNTNFVDUUZnNWJiaFVScHBhV0lTNTd5MEdWdGlQMEJ6MmtuN0cxb0ZySXU5?=
 =?utf-8?B?emRRcWs0SzBlOFJ1Mm1JRmdHbXowN2FGVlAycUxubGVSTStGaWpUanFGRnFS?=
 =?utf-8?B?SzBNME9pV0ZBemVUQXlxRzUyeTQzQVJCNTFucEVPVWhOU1Y5RGxqOVQxcGpK?=
 =?utf-8?B?Wk9vOERpMHpJSlBNMFR0RjBLRWlVS1VMMzZGRGpYbmpNYTJqQ2JQUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cccfb327-60d6-4e01-3005-08deab60d045
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 11:15:43.4857
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vJF200RKcSO5RQIKjgLZQ3eYl5/WdhyMxsjQCRWrvtegFXRdt+p+CBAQju/xRBz3x0Va3n+7BVYDQwxlBQKJlQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5601
X-purgate-ID: tlsNG-d62444/1778066146-B4F48FF4-79B49BDE/0/0
X-purgate-type: clean
X-purgate-size: 1923

On Wed, May 06, 2026 at 11:35:45AM +0200, Jan Beulich wrote:
> As a comment next to one of the invocations states, get_wallclock_time()
> can take over a second. The order of evaluation of function arguments is
> in principle unspecified; in practice at least gcc looks to be evaluating
> them from last to first. Hence with NOW() invoked first, the respective
> value passed to do_settime() can be off by over a second (which is in
> contrast to __get_cmos_time() attempting to get the time exactly after an
> update, i.e. [pretty] precisely at a seconds boundary).
> 
> This also addresses a Misra C:2012 rule 13.2 ("The value of an expression
> and its persistent side-effects shall be the same under all permitted
> evaluation orders") violation each.
> 
> Fixes: f64134cdb81c ("x86: Fix time_resume() to notify all domains of wallclock change")
> Fixes: 0bfcf984b727 ("x86: Reintroduce clocksource=tsc")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Of course the time it takes to do all the CMOS reads (or whichever else
> wallclock time source is in use) also results in an inaccuracy. For
> __get_cmos_time() this might be solvable by having it latch NOW() before
> doing the 6 reads, but in particular for efi_get_time() there's hardly
> anything we can do.
> 
> As to Misra rule 13.2: tagging.ecl lists the rule as clean. I also can't
> find any deviation for the two instances fixed here. What am I missing?
> 
> For __get_cmos_time(), tangentially: Wouldn't we better use the
> century byte if available? As it stands, things will break in 2070. Which
> is a long way out, yes, but still. (Of course this would mean a 7th slow
> I/O port write/read pair.)

Seems fine to me.

One further note: in __get_cmos_time() I think we want to read
backwards, so start with century then year and so on, so the last read
is seconds, as to avoid extra skew.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 06 11:45:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 11:45:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301624.1575868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKahB-0000cW-2T; Wed, 06 May 2026 11:45:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301624.1575868; Wed, 06 May 2026 11:45:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKahA-0000cP-Uu; Wed, 06 May 2026 11:45:40 +0000
Received: by outflank-mailman (input) for mailman id 1301624;
 Wed, 06 May 2026 11:45:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKah9-0000cJ-Dl
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:45:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKah8-009T0M-Qg
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 13:45:38 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb29df-5cb7-0a2a0a5109dd-0a2a4501907c-16
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 13:45:38 +0200
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb29e2-c1f2-0a2a45010019-d155dd29dc85-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 13:45:38 +0200
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-44a044cb827so4565696f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 04:45:38 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45052a488d8sm11855575f8f.12.2026.05.06.04.45.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 04:45:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778067938; x=1778672738; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lBOczczSt4cGBDNrSGBWI4v9ra6Oj+PoBVjiR/CxTr4=;
        b=hC6Cx0L8TuXhESalTx8/KVqt8CkSLYiawxU1l2kIFoicgEawRmdDMFmYk6PTbao5Hb
         X0lx/3t8ypYTE4p/Bqpo1R2yv3gWcu9if7o9mmmEbb7hX1q0CMD+mmolEYw7pEHO/0qu
         k2N4Wm8frzB84g3OtgfUXA1uX+zrNlHQaTCqJEkte7C3XaquCumDf3NMrgTw3+CYRJnO
         PNXT9W94a2g3UMv9bMdf3tYsqaxxpWKOWXr/DfF/TJ+tO7+XLCETSkcprjiILLMigN3w
         eCb/RNPioJy28uVAcPVychGPGHaqSqfQX5TWJmrwCx3/cBc+YEolkXR+H21IzBHmWTRX
         d5vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778067938; x=1778672738;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lBOczczSt4cGBDNrSGBWI4v9ra6Oj+PoBVjiR/CxTr4=;
        b=pvgIemCO1PGPeSCLVFS0ZXzZGAekXkfCYr1vB5YSk53uTo3pE6QIbpgi3dC+N3IgIb
         FRDqeH/fGH9D/l+lwEPzKIbdZScneRly97PBoXD6DNt+qaaXQnMz3eHg2MO8tolEp291
         Bu3rL4xXGK4W7chKhyW84RYwTI9fcvAzkamc1Jvc27l6yOWkTIXrdC6qFNMIvO24n4I9
         6KVoYfqn5SdhQ/Iue526LVORBMIK4tJdaRMXWxK7HzIhu1zDnoOsGbSou/mh8sKAppFM
         +hXIdyvH6ogP3uv1DRkT8KaRyKht9Gt+xhKGMBWAwKqaAnBJ7ks2RGEGzgYQan84Gn6T
         Zr3w==
X-Gm-Message-State: AOJu0YxJYAMVeXAWkOKyVvvmh+asZlyJCogxPJTUYVz/l8AzjbV/BERZ
	EM+wLNRDcOjOFJUZlujmKibMb5kStMmoTPkXjl9qXmL2L2oCiogHQ8nxviSYYtZ5Gg==
X-Gm-Gg: AeBDiesL25bOcqwv3/ITUG8788062EwTow3NObtb6doOXB0OEVLT1u5WoegSayeq7SG
	ehRfCgvXCvnoGxczAtNclj92c4F6eeVOAYeUDQO+UP5ICRngD/9TH5qkAWJeQt4XjHITz+zGZpf
	Anfd55j9g8hRD0pzQa+EP/eMTKiipkxlW2/FKODnB3sTzwd2fL9hsC/F+7lxFoNLmo3hBpEaP0y
	9PJXKFu0Py1S8zVMkRyQgLuLwjCl2NxSMzcOfttXP4te5ydea1OUkXqH3SqV6ApYVFvHK+rRDcE
	KqvTNXtKM4jJEPnHkzIFwx7Q/xaIY7xuxxgWSTdMlQ+GbTc3UybzvBafy5jh3k+v+zv/9ijLsdL
	kvZ7xdsDRRR2ws/DBvaXNHZVNRoBtbFz/hVd4ciCyP2UDWkBIBWCbHuLVBLiCPbBxCtPOo+q9uT
	bcKuhPF2mVphnNKwXhP3Zpz3ZueD9MhexGnWRwrV9OkMR/Ct/OxHXuq9lM7vqOd3nFh0VmNFoqe
	mqM0usAm1agKsmNsZT+GHq3xQ==
X-Received: by 2002:a05:6000:2383:b0:43d:7dcf:ae26 with SMTP id ffacd0b85a97d-4515d4d107bmr5515973f8f.34.1778067938089;
        Wed, 06 May 2026 04:45:38 -0700 (PDT)
Message-ID: <8bd8e079-f3af-404e-adc5-1542422f39b5@suse.com>
Date: Wed, 6 May 2026 13:45:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/time: make do_settime() uses more accurate
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <99a4a514-3ed5-43f7-823c-54771f3bd03d@suse.com>
 <afsi29_wLi_P7G4t@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <afsi29_wLi_P7G4t@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778067938-AE143FF4-30D2E27C/0/0
X-purgate-type: clean
X-purgate-size: 2456

On 06.05.2026 13:15, Roger Pau Monné wrote:
> On Wed, May 06, 2026 at 11:35:45AM +0200, Jan Beulich wrote:
>> As a comment next to one of the invocations states, get_wallclock_time()
>> can take over a second. The order of evaluation of function arguments is
>> in principle unspecified; in practice at least gcc looks to be evaluating
>> them from last to first. Hence with NOW() invoked first, the respective
>> value passed to do_settime() can be off by over a second (which is in
>> contrast to __get_cmos_time() attempting to get the time exactly after an
>> update, i.e. [pretty] precisely at a seconds boundary).
>>
>> This also addresses a Misra C:2012 rule 13.2 ("The value of an expression
>> and its persistent side-effects shall be the same under all permitted
>> evaluation orders") violation each.
>>
>> Fixes: f64134cdb81c ("x86: Fix time_resume() to notify all domains of wallclock change")
>> Fixes: 0bfcf984b727 ("x86: Reintroduce clocksource=tsc")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Of course the time it takes to do all the CMOS reads (or whichever else
>> wallclock time source is in use) also results in an inaccuracy. For
>> __get_cmos_time() this might be solvable by having it latch NOW() before
>> doing the 6 reads, but in particular for efi_get_time() there's hardly
>> anything we can do.
>>
>> As to Misra rule 13.2: tagging.ecl lists the rule as clean. I also can't
>> find any deviation for the two instances fixed here. What am I missing?
>>
>> For __get_cmos_time(), tangentially: Wouldn't we better use the
>> century byte if available? As it stands, things will break in 2070. Which
>> is a long way out, yes, but still. (Of course this would mean a 7th slow
>> I/O port write/read pair.)
> 
> Seems fine to me.

I'll make a patch, provided I can figure out under what conditions the byte
is present / valid (hopefully that won't involve ACPI AML).

> One further note: in __get_cmos_time() I think we want to read
> backwards, so start with century then year and so on, so the last read
> is seconds, as to avoid extra skew.

I don't think this matters. It would be awkward if those reads took over a
second. Plus if it did, the UIP flag would transiently be set, in which
case doing the reads wouldn't be valid in the first place. Arguably this
can in principle happen if a SMI hits in the middle, and its handling
takes excessively long.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 06 11:54:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 11:54:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301639.1575876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKapR-0002QM-Vb; Wed, 06 May 2026 11:54:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301639.1575876; Wed, 06 May 2026 11:54:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKapR-0002QF-T0; Wed, 06 May 2026 11:54:13 +0000
Received: by outflank-mailman (input) for mailman id 1301639;
 Wed, 06 May 2026 11:54:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKapQ-0002Q9-KU
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:54:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKapQ-0005pt-0k
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 13:54:12 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb2be1-2eae-0a2a0a5409dd-0a2a4507e754-14
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 13:54:11 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb2be3-229c-0a2a45070019-d155802fa5cb-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 13:54:11 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-48a3e9862f0so6049135e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 04:54:11 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e530c4ebesm24808155e9.2.2026.05.06.04.54.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 04:54:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778068451; x=1778673251; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=K6jir9ct90Ib0uuXX1U82Lz6qZles3Pb6Dxcvt6FjHs=;
        b=VqXohRDFa62jZpNETiXQTqmV0BQrYM5BlxE4/S3D6SSydlLm9tsT/txKKggDiJ8fLE
         qC1CTc32Qn3LVZ7Awy6yJUJw52HmKBrv70pq51wDmavFPiIkaGfn8b0YH3dN+o5YLlzi
         bZC1UJRC0OSqJ+i1j7Xp25OkGbTLlYVWX3Z1fW3bZ63oKlxpl4emZOvbL7TlxaCGbpa5
         AnFI+DKWmSX2ctDXkWUwlvHMSjCubRe/n+gDO/ibZ6tSbVTCCzbdqsQac2lDhiKD2HCI
         pJKSPbUuWjp0aPs24WgCO/FMv8AVJEOd6pb0DbNu25ggmeWr7GypeBlsJvb07u3HRQ2p
         JEMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778068451; x=1778673251;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=K6jir9ct90Ib0uuXX1U82Lz6qZles3Pb6Dxcvt6FjHs=;
        b=qTq+neevJ/k/Vx2gvaihPFYGMp9IG9yQJ5ZLxa4lxj6cN9coEo7AJzaXSuU+BzhSGn
         ti8MaXEdke/KQ96MfGkAAsPN3kGWW5SvqkxaWMlacxvRq99mxvR7FXimF+vzlsNRZdZF
         5qq0prjIjZJbk8YmUxYRG4z/8RYSqSm7jn5WQYBuoL3l27kPwLMEi94qA082ekNhJUwR
         9jIE8pYLioyaJCWOvdAEDZijoXbGsiVa7ibh03wZPapyGHM7eb+GZo0bJgPrALY4NK3Q
         7dGd/g4fPNAdg29h+1xnWC4Mt+DUehuq1qwb9HGXuE6l+4Kgvvnjl4rZOoJsnTnzN3xY
         9a0g==
X-Forwarded-Encrypted: i=1; AFNElJ/DzrCLCxL6B0h/reDsl8+qMvsvwXEKM8YkgcvenHejnLD/MMVo8htDA45s6Z/JMS0bi3eZsLb47jw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyd3CtyxrKMPHMr/gifNMXleDhqWj1o+1qh+yXfQB/AsvKwvzXR
	twWlOmbs5/aANT7L+Y0mPCh7zUkpp1hXY3eM7fTdbYoqPJB5FtoTYbbdSSlXeojF3w==
X-Gm-Gg: AeBDietCoTLgfoz+WuJXWjn5MKjKxyNS1ueIO4QXsaWizenwoX3pyqldJD1qST2ARyD
	TnQxdxIX3IQ+/5ukv2LOCBxVROiK1cPgXiAgfY+5rz9KMtxbzFMSqXr3WVXe0I3Z5Uymv/jSSz3
	NYywhFNAH8QreECVGWuFnDlC8UWVFD6pJBqQmoSYGrLnduhODurqZt3dGXH+YgTZOMzzywNEuo7
	hroD7EM2qpjIxJP0aX4ZkA9IcKOmMtaU1vGWQP55uPWN5UP+Cw0sPUonl+Kb8yUUiZPiAj9f5ig
	RxGEqc8x0aCAVklJtxbaKKk5glhn3rWjuzydkaXoi5nca6nCP62OkS3n/vQ9iCkvbTcfjYKT5tq
	/iWvTrsFr0FrrupyxZRVgoKoXJwsMuBlrOuc7s0gAd8cBN/bj0f17k4zIV7HJmytHFM75vv99Wi
	nk2DBVWuL5Z3Kzs+VRO2Ien/acC1BHFmcN3RjGhd62rFqBgBaoOQMhU6n62uil9nBAFl+gdfR2u
	n33W7M2n7JurLkSW36b6ff9cA==
X-Received: by 2002:a05:600c:1e24:b0:48a:761:5816 with SMTP id 5b1f17b1804b1-48e5229bd92mr42849035e9.8.1778068451215;
        Wed, 06 May 2026 04:54:11 -0700 (PDT)
Message-ID: <e5844c28-aa68-4bf6-8287-a4ceeda3a1d2@suse.com>
Date: Wed, 6 May 2026 13:54:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <cover.1775742115.git.mykyta_poturai@epam.com>
 <a0abd984989237d2f36e1628db577fb25af1cdbe.1775742115.git.mykyta_poturai@epam.com>
 <5efddecc-3665-4a53-9eaa-b117370cc0e4@suse.com>
 <5168207f-33ed-4fc4-918e-6c3b454b0efa@epam.com>
 <efb254c2-f52a-408d-b225-e4e03935d05e@suse.com>
 <d0916f22-b5c0-4c93-935c-4cbe17e626d4@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d0916f22-b5c0-4c93-935c-4cbe17e626d4@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778068451-09B68C48-499F5830/0/0
X-purgate-type: clean
X-purgate-size: 3165

On 06.05.2026 11:39, Mykyta Poturai wrote:
> On 5/4/26 08:37, Jan Beulich wrote:
>> On 23.04.2026 12:12, Mykyta Poturai wrote:
>>> On 4/21/26 17:43, Jan Beulich wrote:
>>>> On 09.04.2026 16:01, Mykyta Poturai wrote:
>>>>> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>>>
>>>>> This code is expected to only be used by privileged domains,
>>>>> unprivileged domains should not get access to the SR-IOV capability.
>>>>>
>>>>> Implement RW handlers for PCI_SRIOV_CTRL register to dynamically
>>>>> map/unmap VF BARS. Recalculate BAR sizes before mapping VFs to account
>>>>> for possible changes in the system page size register. Also force VFs to
>>>>> always use emulated reads for command register, this is needed to
>>>>> prevent some drivers accidentally unmapping BARs.
>>>>
>>>> This apparently refers to the change to vpci_init_header(). Writes are
>>>> already intercepted. How would a read lead to accidental BAR unmap? Even
>>>> for writes I don't see how a VF driver could accidentally unmap BARs, as
>>>> the memory decode bit there is hardwired to 0.
>>>>
>>>>> Discovery of VFs is
>>>>> done by Dom0, which must register them with Xen.
>>>>
>>>> If we intercept control register writes, why would we still require
>>>> Dom0 to report the VFs that appear?
>>>>
>>>
>>> Sorry, I don't understand this question. You specifically requested this
>>> to be done this way in V2. Quoting your reply from V2 below.
>>>
>>>   > Aren't you effectively busy-waiting for these 100ms, by simply
>>> returning "true"
>>>   > from vpci_process_pending() until the time has passed? This imo is a
>>> no-go. You
>>>   > want to set a timer and put the vCPU to sleep, to wake it up again
>>> when the
>>>   > timer has expired. That'll then eliminate the need for the
>>> not-so-nice patch 4.
>>>
>>>   > Question is whether we need to actually go this far (right away). I
>>> expect you
>>>   > don't mean to hand PFs to DomU-s. As long as we keep them in the hardware
>>>   > domain, can't we trust it to set things up correctly, just like we
>>> trust it in
>>>   > a number of other aspects?
>>
>> How's any of this related to the question I raised here, or your reply
>> thereto? If we intercept PCI_SRIOV_CTRL, we know when VFs are created.
>> Why still demand Dom0 to report them then?
>>
> 
> The spec states that VFs can take up to 100ms after the VF_ENABLE bit is 
> set to become alive. We discussed in the V2 that it is not acceptable to 
> do a required 100ms wait in Xen while blocking a domain. And not doing 
> that blocking would require some mechanism to only allow a domain to run 
> for precisely 99(or more?)ms. You yourself suggested that we can trust 
> the hardware domain with registering VFs if we already trust it with 
> other PCI-related stuff. Did you change your mind, or am I completely 
> misunderstanding this question?

No, I still think that we can trust hwdom enough. Nevertheless we should
aim at being independent of it where possible. And I seem to recall that
I had also outlined an approach how to avoid spin-waiting for 100ms in
the hypervisor.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 06 11:57:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 11:57:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301651.1575885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKasT-0002yK-8e; Wed, 06 May 2026 11:57:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301651.1575885; Wed, 06 May 2026 11:57:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKasT-0002yD-65; Wed, 06 May 2026 11:57:21 +0000
Received: by outflank-mailman (input) for mailman id 1301651;
 Wed, 06 May 2026 11:57:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKasS-0002xr-8m
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 11:57:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKasQ-007C02-3x
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 13:57:19 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb2c9e-bab6-0a2a0a5309dd-0a2a4506ec58-6
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 13:57:19 +0200
Received: from [209.85.208.48] (helo=mail-ed1-f48.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb2c9f-7371-0a2a45060019-d155d030dc23-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 13:57:19 +0200
Received: by mail-ed1-f48.google.com with SMTP id
 4fb4d7f45d1cf-6729c6f0ca7so8131361a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 04:57:19 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-67cd90ef9c7sm1254599a12.10.2026.05.06.04.57.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 04:57:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778068639; x=1778673439; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=jnQDEry0YTTv7htKQvsZB92JFfvTlJSoY4EpqSjXKeU=;
        b=J8MpID2nHbOpx2eNFL9t5F6m2AQvVstZQ3E93A7up/mPUtaZhB9F0cNIw1FZRfL7qp
         YS5s7qAkdfnswZtzMvi60Re/Io4NtoT2PpdCK4cJNnT5x/Vvptex5PK7xQ0rU7cUqs3p
         a0awDo/rBWy2soJqX0KLqYF+Qq0OUoCVrlYgyf6gYC8J6sCv7sf2toeHpvqWfAI1Hw0L
         kP53xhp6YfJTV61awylVFhiSE1dTTDCFtTxna7I5lxNZ9z62oGR8r9Kgjbq6U5OwFJgb
         6gYwCQzndkrZNpOal35tHhcK/PCC4OxPsUCFRSebhKIFQ7L78K66RwiK9XWzo0MJWFZZ
         sHvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778068639; x=1778673439;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=jnQDEry0YTTv7htKQvsZB92JFfvTlJSoY4EpqSjXKeU=;
        b=KYEAzj+E8aDqomQGFy/HoNdqRHUOYPsM1MiofCVzmjClGer1alebaw1AzlaVcQvb5K
         elI59A2bRuXp2a0XQErbpz+z3ftGWiNGJYF0d13jh7r+PwL6niLrWVnm3XLN2j+nX0AJ
         bSN7ngUiYqXtA9D2ZKzJTWIFy7JbTfKCHKRmvxdCwEQlyWfu06bNChNy76WgytrfxtYA
         +4DBxdRwMrF03baEMQKmM0YkpD2ircgtGQXAfu8/TGUeYLgAl5MCBGsmG0Avik7/QRHx
         C5YDo8mTUy4wvLcNvRaYvnf5eTY/S79abVmxhW0hu4CSuCAJcz86pB9TsRZ9lD6wP+QV
         nrnQ==
X-Forwarded-Encrypted: i=1; AFNElJ/Jthzos9K9lVzQNpf644AW+hI6fSIpUszz8EuESiVmT/r9BiwlpXsLfRhoN8CLEugIs8XJvzyusd0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwBCkPEbLc1i9Y/Yeg4TMCVs4LMp+XNg5ZIOSPCzfsvSthjg3c2
	cY4A+AcU1KQLhLbyPc1qLM0GagQbwCfp/FtaxoR2f9sPZy0mrUtiPX+2
X-Gm-Gg: AeBDiesbuQ9yeKcxH2oNwM1fiSS68WmVL9uPckaKYN+eFKQ5Qo8g73MBZRllF6Ol0Tt
	Zb0+AErQkJMJwUVvSZZmSQaYYtSm8gD8T+quhOLRnznjgMT+YqzPWMT+tQtnGGc2On8UVdxA1Pd
	/OJfCYimKVzXT4G4yRsTvcOfmo0bvV2haVLNGvqZ+0zYm6fNR4CJLA3s645wRVNeptRj+5eXkCA
	75wh7sb1XCR9PoLxvAyMcutSxHHPlMNYuZKTHH7/V5pn4ZUaut257Zh/Fs5y+Gx8BkigkX5t05/
	RyFrmjpAn20E1Fz2ptYPFa5ONWO8FgtWcwcAj8adjBYtEqME2ULEtw1q+5o5QguwT/0Ek3qtcwg
	tEQM3ploDgQq1fNIS1vV4namS7gkCsrlwceVvL2m3xdGNTor0hRTyA/ZvqHCkU9RVROVPOwDBVc
	Ib6Ix5m5/9eE4AWyMJGwgfr8Q/cgpnMLvii0ujjYnELhpb90zoawi6JgwXBTmHsCOwVgzojofAt
	SNlMpTqI9qC2g==
X-Received: by 2002:a05:6402:3057:b0:67b:7a8f:3e2c with SMTP id 4fb4d7f45d1cf-67d6489e199mr1100200a12.25.1778068638857;
        Wed, 06 May 2026 04:57:18 -0700 (PDT)
Message-ID: <fa07cdad-81f9-408f-a04d-d9c3b8e1bef1@gmail.com>
Date: Wed, 6 May 2026 13:57:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/11] xen/riscv: add Linux kernel loading support
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <af89f0b696c5a1ae477dc0903a9a99b84df26f7a.1777303844.git.oleksii.kurochko@gmail.com>
 <f61ddc8f-88a6-4f61-a470-c9c82b8b9b52@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f61ddc8f-88a6-4f61-a470-c9c82b8b9b52@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1778068639-8DD80D75-02E051E7/10/73395122804
X-purgate-type: spam
X-purgate-size: 9556



On 5/4/26 4:05 PM, Jan Beulich wrote:
> On 28.04.2026 16:33, Oleksii Kurochko wrote:
>> --- /dev/null
>> +++ b/xen/arch/riscv/kernel.c
>> @@ -0,0 +1,242 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/bug.h>
>> +#include <xen/compiler.h>
>> +#include <xen/errno.h>
>> +#include <xen/fdt-kernel.h>
>> +#include <xen/guest_access.h>
>> +#include <xen/init.h>
>> +#include <xen/libfdt/libfdt.h>
>> +#include <xen/mm.h>
>> +#include <xen/types.h>
>> +#include <xen/vmap.h>
>> +
>> +#include <asm/setup.h>
>> +
>> +#define IMAGE64_MAGIC_V2 0x05435352 /* Magic number 2, le, "RSC\x05" */
>> +
>> +static void __init place_modules(struct kernel_info *info, paddr_t kernbase,
>> +                                 paddr_t kernend)
>> +{
>> +    const struct boot_module *mod = info->bd.initrd;
>> +    const struct membanks *banks = kernel_info_get_mem_const(info);
>> +    const paddr_t initrd_len = ROUNDUP(mod ? mod->size : 0,
>> +                                       KERNEL_LOAD_ADDR_ALIGNMENT);
>> +    const paddr_t dtb_len = ROUNDUP(fdt_totalsize(info->fdt),
>> +                                    KERNEL_LOAD_ADDR_ALIGNMENT);
> 

> Why would modules need to be this strongly aligned?
No specific reason except to be aligned with similar alignment below, it 
could be lesser (PAGE_SIZE or even just unsigned long aligned) or even 
dropped, I think. It was just easier then to calculate aligned 
addresses. But I don't see any big issue to have such alignments except 
maybe that it will waste some memory.

> 
>> +    const paddr_t modsize = initrd_len + dtb_len;
>> +    unsigned int bi = banks->nr_banks;
>> +
>> +    BUG_ON(modsize < initrd_len);
> 
> Where's the earlier check that allows this to be BUG_ON()?

There isn't one. I will replace that with:

if ( modsize < initrd_len )
     panic("Module size overflow: initrd + dtb size wraps paddr_t\n");


> 
>> +    /*
>> +     * Place modules as high in RAM as possible, scanning banks from
>> +     * last to first so that the end of the last bank is preferred.
>> +     */
>> +    while ( bi-- > 0 )
>> +    {
>> +        const struct membank *bank = &banks->bank[bi];
>> +        const paddr_t bank_end = bank->start + bank->size;
>> +        paddr_t modbase;
>> +
>> +        if ( modsize > bank->size )
>> +            continue;
>> +
>> +        modbase = ROUNDDOWN(bank_end - modsize, KERNEL_LOAD_ADDR_ALIGNMENT);
> 
> Same question here.

I used KERNEL_LOAD_ADDR_ALIGNMENT to be sure that big page tables be 
potentially used in page table.

> 
>> +        if ( modbase < bank->start )
>> +            continue;
>> +
>> +        /*
>> +         * If modules would overlap the kernel, try placing them below it.
>> +         */
> 
> With how kernel_image_place() works, and with the heavy alignment applied
> above, is this even possible to succeed? Oh, wait, yes - for the not-
> position-independent case.

I don't understand what is wrong with putting initrd and dtb to 
basically any place except where kernel is expected to be placed (as in 
case of position dependent case I assume it is pretty crucial).

> 
>> +        if ( (modbase < ROUNDUP(kernend, KERNEL_LOAD_ADDR_ALIGNMENT)) &&
>> +             (modbase + modsize > kernbase) )
>> +        {
>> +            modbase = ROUNDDOWN(kernbase - modsize, KERNEL_LOAD_ADDR_ALIGNMENT);
> 
> What prevents this subtraction from underflowing?

I will put the following check at the start of the place_modules() function:
if ( kernbase < modsize )
    panic("Underflow could happen between kernbase and modsize\n");


> 
>> +static paddr_t __init kernel_image_place(struct kernel_info *info)
>> +{
>> +    paddr_t load_addr = INVALID_PADDR;
>> +    uint64_t image_size = info->image.image_size ?: info->image.len;
>> +    const struct membanks *banks = kernel_info_get_mem_const(info);
>> +    unsigned int nr_banks = banks->nr_banks;
>> +    unsigned int bi;
>> +
>> +    dprintk(XENLOG_DEBUG, "nr_banks(%u)\n", nr_banks);
> 
> Did you mean to drop this before submitting?

Sure, it should be dropped.

> 
>> +    /*
>> +     * At the moment, RISC-V's Linux kernel should be always position
>> +     * independent based on "Per-MMU execution" of boot.rst:
>> +     *   https://docs.kernel.org/arch/riscv/boot.html#pre-mmu-execution
>> +     *
>> +     * But just for the case when RISC-V's Linux kernel isn't position
>> +     * independent it is needed to take load address from
>> +     * info->image.start.
>> +     *
>> +     * If `start` is zero, the Image is position independent.
>> +     */
>> +    if ( likely(!info->image.start) )
>> +    {
>> +        for ( bi = 0; bi != nr_banks; bi++ )
>> +        {
>> +            const struct membank *bank = &banks->bank[bi];
>> +            paddr_t bank_start = bank->start;
>> +            /*
>> +             * According to boot.rst kernel load address should be properly
>> +             * aligned:
>> +             *   https://docs.kernel.org/arch/riscv/boot.html#kernel-location
>> +             *
>> +             * As Image in this case is PIC we can ignore
>> +             * info->image.text_offset.
>> +             */
>> +            paddr_t aligned_start = ROUNDUP(bank_start, KERNEL_LOAD_ADDR_ALIGNMENT);
>> +            paddr_t bank_end = bank_start + bank->size;
>> +            paddr_t bank_size;
>> +
>> +            if ( aligned_start > bank_end )
>> +                continue;
>> +
>> +            bank_size = bank_end - aligned_start;
>> +
>> +            dprintk(XENLOG_DEBUG, "bank[%u].start=%"PRIpaddr"\n", bi, bank->start);
> 
> And this one? (I also find it puzzling that ->start would be of (primary) interest
> here, when ...
> 
>> +            if ( image_size <= bank_size )
> 
> ... bank_size is what's relevant.

This one should be dropped too.

> 
>> +/* Check if the image is a 64-bit Image */
>> +static int __init kernel_image64_probe(struct kernel_info *info,
>> +                                       paddr_t addr, paddr_t size)
>> +{
>> +    /* https://www.kernel.org/doc/Documentation/riscv/boot-image-header.rst */
>> +    struct {
>> +        uint32_t code0;         /* Executable code */
>> +        uint32_t code1;         /* Executable code */
>> +        uint64_t text_offset;   /* Image load offset, little endian */
>> +        uint64_t image_size;    /* Effective Image size, little endian */
>> +        uint64_t flags;         /* kernel flags, little endian */
>> +        uint32_t version;       /* Version of this header */
>> +        uint32_t res1;          /* Reserved */
>> +        uint64_t res2;          /* Reserved */
>> +        uint64_t magic;         /* Deprecated: Magic number, little endian, "RISCV" */
>> +        uint32_t magic2;        /* Magic number 2, little endian, "RSC\x05" */
>> +        uint32_t res3;          /* Reserved for PE COFF offset */
>> +    } image;
>> +    uint64_t effective_size;
>> +
>> +    if ( size < sizeof(image) )
>> +        return -EINVAL;
>> +
>> +    copy_from_paddr(&image, addr, sizeof(image));
>> +
>> +    /* Magic v1 is deprecated and may be removed.  Only use v2 */
>> +    if ( le32_to_cpu(image.magic2) != IMAGE64_MAGIC_V2 )
>> +        return -EINVAL;
>> +
>> +    effective_size = le64_to_cpu(image.image_size);
>> +
>> +    if ( effective_size && size > effective_size )
>> +        return -EINVAL;
> 
> Is the rhs of the && the wrong way round? If effective_size > size,
> aren't you in trouble? Question of course is what "effective" really
> means. Yet in any event it seems dubious to me that effective_size <
> size would really be a problem. IOW this will want commenting upon
> if the check is to stay.
> 
> Actually ...
> 
>> +    info->image.kernel_addr = addr;
>> +    /* Actual size in the binary file */
>> +    info->image.len = size;
>> +    /* Total memory the kernel occupies at runtime */
>> +    info->image.image_size = effective_size;
> 
> ... this looks to suggest something .bss-like.

Yes, effective_size it is size which included .bss.

size it of LK after decompression of Image.gz and it doesn't include 
.bss so it should be lesser then effective_size.

I don't think that I am in trouble that effective_size is bigger then 
size if we allocate enough space in memory effective_size is fine to be 
bigger.

It is a good question if effective_size < size is a problem. I think it
isn't but could it be really happen?
I think that I am okay to drop that part of if().

> 
>> --- a/xen/include/xen/fdt-kernel.h
>> +++ b/xen/include/xen/fdt-kernel.h
>> @@ -59,8 +59,15 @@ struct kernel_info {
>>           struct {
>>               paddr_t kernel_addr;
>>               paddr_t len;
>> -#if defined(CONFIG_ARM_64) || defined(CONFIG_RISCV_64)
>> -            paddr_t text_offset; /* 64-bit Image only */
>> +#if defined(CONFIG_ARM_64) || defined(CONFIG_RISCV)
>> +            /*
>> +             * ARM: 64-bit Image only.
>> +             * RISC-V: both 32-bit and 64-bit Images.
>> +             */
>> +            paddr_t text_offset;
>> +#endif
>> +#if defined(CONFIG_RISCV)
>> +            uint64_t image_size; /* Effective size of Image */
> 
> As this (apparently) is for both RV64 and RV32 - can the latter really have
> wider than 32-bit image sizes? If not - use size_t or unsigned long here?

Agree, unsigned long should be enough.

Thanks.

~ Oleksii




From xen-devel-bounces@lists.xenproject.org Wed May 06 12:05:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 12:05:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301663.1575895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKb0A-0004oR-4i; Wed, 06 May 2026 12:05:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301663.1575895; Wed, 06 May 2026 12:05:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKb0A-0004oK-1m; Wed, 06 May 2026 12:05:18 +0000
Received: by outflank-mailman (input) for mailman id 1301663;
 Wed, 06 May 2026 12:05:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKb09-0004oD-3V
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 12:05:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKb08-00DLT7-Cp
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 14:05:16 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb2e73-bab6-0a2a0a5309dd-0a2a4505ad8a-30
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 14:05:16 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb2e7c-aaa8-0a2a45050019-d1558035d8ca-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 14:05:16 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-4891c00e7aeso54011925e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 05:05:16 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45054b03d4csm12720434f8f.22.2026.05.06.05.05.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 05:05:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778069116; x=1778673916; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=N1i9Yyd7MB/CNIprVe1jSbeBhmSU2d6sb8wLHaMeUgc=;
        b=EUsUo7K4GXSg6wy9vr4IzWMa7cnoKh4jKDV/FaoiAEgAHlbw0FkYVUchO8UqQtvUe7
         fCMDIYXAQKZqZGYlMnEWdESs4kFOD0/1fwYl9JBzBWOruk+e2p042HwuTms4mbnIdADR
         DlmC13dJRHqHlQqcUk36IgtcHuQLExRAl0v10AfX67aiFo1zzY/Ytb7wRU5390E7lbmI
         SnZvjr9oJSSD0D9U0I8XnFyKjffcyraYuKfQwJPWaYN5OgyjOaEGJggVnf8d9oS5exvY
         AMqKOHZsvHjz5BBZWFla37D++JzTuuQE2p3cs60L/ppWFJUlqTk9sMG0vbZTtzCihF2s
         leQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778069116; x=1778673916;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=N1i9Yyd7MB/CNIprVe1jSbeBhmSU2d6sb8wLHaMeUgc=;
        b=I2aYvoOmr4GhJ3BlL6/iYUxVEgyPHw9Ndp7YKYOGCAjvo9+RNlI7tatWd7MaBibIvW
         Dh0kMDOAm0Hgsb2N/vUTjZjI9MppH2S9Q+R1IcEOKHzjqhAKEW2w1uokSiCOA3LCPFhS
         uKrGZMJ+FcIh3qZAGhsvWjcmI9Uv2D8S1ri9sQJ2JZMJmtJ4UrKf5hcYT5GaJpmg93Ec
         0Dt2gUn0h769/EKbulk29r5T+AE57ESMLP7SfXToKV3e/m14VTVkSrRmEpfcwZ1VDnvC
         R45TR72R3ATDCLc/MFwOinhgqZo4R8J25035DJV0M0KThj/AzRAGQxDJ0IVQOqDg3cnn
         zY9Q==
X-Gm-Message-State: AOJu0YzPt+ASIox63VpxDa8ajECpaGoTxcz4aW12oa/mMBYAqIMUjVm+
	nqvVY3l8PniiVcADl7Zt9fH0n/+pIAORaBrgCsV8s/AKIi9/rmcAV8mxbOkyBSB2/QoD+M/a1WN
	qFkA=
X-Gm-Gg: AeBDiesX4IJr1voQ641OJTi4EeFwV72LpKe5DuiPAXHBuuwyGbpWt4/nnHKM+/KW0cj
	SV3OEZA31JMIk0wD0z9L8vf+GTmZq5DYMpgP5cnW5Nu2tNWm4uc4T8+dfZ9wjMm9MPUNwpaw4c7
	gFwteCSGlyOw1PsT8FCaxUF+CsFZZVxvcs4zX55qyc0SkblOMIQ7JifrIshvRV3u1KZB7jK9wHT
	52MC/BHHQ45Zew46ckzwg9vpPuu5GBm5RsfQszXoAJBopav4eTF2M+92hFaNztpS7dR5qbHN+i0
	/CkNXGQTLTgHvjLfJ83pkMAB15EPJpt/WdJ8AatheYL3VuhM0tHmz7cwBvnbsiL7r2xRFNdPB3T
	WRO2gY034ZGSXizdGZdTe8RxJKvpz46ySFArbD9PXmGoHCFBtInC8CxNcbwp/Q6b4pvN79X+ZGw
	oHA+vAN6tTXh6PA0/gn8B1/sn1UnZWq8074UB+0XsG1IYtx25rOynEeMgsl5t5tnW0alDsxSdiK
	HxwmMRiXQ97Gx9zj/ITXCaVTw==
X-Received: by 2002:a05:600c:1797:b0:48d:366:b962 with SMTP id 5b1f17b1804b1-48e51e0a8a8mr27988185e9.6.1778069115440;
        Wed, 06 May 2026 05:05:15 -0700 (PDT)
Message-ID: <6d9345e7-7ad9-48f4-8447-3a955305430a@suse.com>
Date: Wed, 6 May 2026 14:05:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] CI: collect certain intermediate files as artifacts
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1778069116-DAF6E443-656ED7D2/0/0
X-purgate-type: clean
X-purgate-size: 1624

When one of the linking passes fails, additional intermediate files are
still in place. Having them available for analysis of the underlying
problem can be pretty helpful. Collect some into a new intermediates/
directory. (Nothing new will be collected if linking succeeds.)

While there also make sure xen-syms is collected (into binaries/). This
is rather more useful for analysis of possible problems than its stripped
counterpart.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
As the issue this is meant to help with didn't re-occur with this in
place, the new logic wasn't really tested yet.

--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -6,6 +6,7 @@
   artifacts:
     paths:
       - binaries/
+      - intermediates/
       - xen-config
       - xen-cppcheck.txt
       - '*.log'
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -41,18 +41,24 @@ fi
 # to exit early -- bash is invoked with -e.
 cp xen/.config xen-config
 
-# Directory for the artefacts to be dumped into
-mkdir -p binaries
+# Directories for the artefacts to be dumped into
+mkdir -p binaries intermediates
 
 collect_xen_artefacts()
 {
     local f
 
-    for f in xen/xen xen/xen.efi; do
+    for f in xen/xen xen/xen-syms xen/xen.efi; do
         if [[ -f $f ]]; then
             cp $f binaries/
         fi
     done
+
+    for f in xen/.xen-syms.* xen/.xen.efi.*; do
+        if [[ -f $f ]]; then
+            cp $f intermediates/
+        fi
+    done
 }
 
 if [[ "${CPPCHECK}" == "y" ]] && [[ "${HYPERVISOR_ONLY}" == "y" ]]; then


From xen-devel-bounces@lists.xenproject.org Wed May 06 12:45:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 12:45:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301692.1575908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKbcv-0002JB-2m; Wed, 06 May 2026 12:45:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301692.1575908; Wed, 06 May 2026 12:45:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKbcu-0002J3-Vr; Wed, 06 May 2026 12:45:20 +0000
Received: by outflank-mailman (input) for mailman id 1301692;
 Wed, 06 May 2026 12:45:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKbcs-0002Ix-Sz
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 12:45:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKbcr-002h4o-U4
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 14:45:17 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb37d0-bab6-0a2a0a5309dd-0a2a4508be68-38
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 14:45:17 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb37dd-63b5-0a2a45080019-d1558035a5a5-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 14:45:17 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-48a3e9862f0so6463875e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 05:45:17 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e53826022sm50342065e9.0.2026.05.06.05.45.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 05:45:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778071517; x=1778676317; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9Bb16UgD22B91WOfQIoUWtSrV+OUOiVdWbH9S9G8nqM=;
        b=fI114GmTKwtWmp5NgoW+WqV91IFBS83RQqxCcbW+XTsC63J+PImN0XA7+Y8kkL50aL
         f401m4W68Rrgp8LWBQ2J3JYC6vTHqCrwIeELbcq0mLcxxBB2fexMNEYG07npLQP4+w8C
         7jRB5OlMSmZ6GNP4ijyDEl/M1zkCGgpIxXsjY9dylYPSPUBCZeD1OUaYFOwomv+UYCNd
         9T1A+K4nUul1nMr32Pd6yNDn/FDfH5oanf0gHZx8/txrix3e15HQv9tlysq0GjSauc/v
         M/VR+Fgc6/c2xCxCRbxXFiPggnZO0yMurCxj5Zqx6QzJ+IlfL4pzLMYHDmErzfjs76ly
         HZDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778071517; x=1778676317;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9Bb16UgD22B91WOfQIoUWtSrV+OUOiVdWbH9S9G8nqM=;
        b=ozYMkrc2IbiUK5oWmrXjHrShpS1sXQvuBB/vt7hmYUpS5xxGjaQiQMb/czxiC3Tc72
         hD4FIxaXJbDGjMg5dg1qMO+xrYlLexPbhROugHNECcETQhPe28FUrUi9lVVz0XIFXWex
         qhDUBZPJBHs6loP50HTUJ3wI4mWBQhBnasTbCMrmsTbfR2GzquWAwlLo9i0EUA/RYtri
         P+qBM8wLFEOAkhabrYqFL21J+ERZYYP/j+xhPLhoK9+h40thASHXAxmrPD1XOB1Ohzmt
         INGFG0dmGZfYhkU6U3sSkaKl4MkQNlkjoTXj+1xbHcD7W++5CgF+JrwapudFq9zzwx0E
         I4tw==
X-Forwarded-Encrypted: i=1; AFNElJ+lOHMzmfpNZxqXLNiCggORbCh/yqky+Bp5QrYO+JfcMPCryiOZg6J+0lo/ZNAfTXzzwbUeTCHItQA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTMN5AlgeXZpvp9e9hVndkEQ9gC1fFoa2uAXFvnFyI6UTZgvtr
	nmqCG3dIQqxq+gXbUKLe7hKpvzkE5vzdwR4OgY9eePk+RWdmt8xJQUvIz2EjSuy6lg==
X-Gm-Gg: AeBDieuEnFxN/QdOBFXR4OZTi+27PovV0L5SL3CpUU/JobLG5H0KhUt50HNobvYIccp
	lxzjoM37xa3WS5jKK2kUewNlEBNJ7/qxO2J6E08wecxa7TPjv3zLKhZGf+Y9U3wkyxVcrwy/ueb
	tSjftZEc99hGXs/vmAf6in7JLCz5LDjZpYOGcOybFnpQsy7HbdwqvlHmaHx2g7fYDO2mesWvvze
	hbhy+b+y43tnSQmuB5ITk+BCR4GrF4QUPybg0orAhgsynEnbI27T8O35PGP+2oaiROCTfYzsc8Z
	ZompVY2ZEfHHz1jP2TJvrxtk//aOrACbS66LptcFzah1pYmNwxpjn27kYCD13or/o3Pu7YsREf5
	7iPgkRcjOZoYsjIqvnjyY+0JifnF2y7d0BDthuU2+gVV2CotstQtKBOFHbDW9PVhHerBirxb9wh
	QDSmSDOin7Voax8F/5v6pqrs5i1Vk9rVQ8MKzrOps3qKxgOTUuSXMWfJU3Y1HQ/28D5kFzrVBb3
	0jIBj7xUqHAW8J3Vm+RcHQkNQ==
X-Received: by 2002:a05:600c:a305:b0:489:1abb:5559 with SMTP id 5b1f17b1804b1-48e5227db96mr30922435e9.5.1778071517215;
        Wed, 06 May 2026 05:45:17 -0700 (PDT)
Message-ID: <47609c96-33b0-4b1c-ba6a-60110797cca8@suse.com>
Date: Wed, 6 May 2026 14:45:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/11] xen/riscv: add Linux kernel loading support
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <af89f0b696c5a1ae477dc0903a9a99b84df26f7a.1777303844.git.oleksii.kurochko@gmail.com>
 <f61ddc8f-88a6-4f61-a470-c9c82b8b9b52@suse.com>
 <fa07cdad-81f9-408f-a04d-d9c3b8e1bef1@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <fa07cdad-81f9-408f-a04d-d9c3b8e1bef1@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1778071517-BEF72DB1-CF07FBC7/0/0
X-purgate-type: clean
X-purgate-size: 6045

On 06.05.2026 13:57, Oleksii Kurochko wrote:
> On 5/4/26 4:05 PM, Jan Beulich wrote:
>> On 28.04.2026 16:33, Oleksii Kurochko wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/kernel.c
>>> @@ -0,0 +1,242 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +
>>> +#include <xen/bug.h>
>>> +#include <xen/compiler.h>
>>> +#include <xen/errno.h>
>>> +#include <xen/fdt-kernel.h>
>>> +#include <xen/guest_access.h>
>>> +#include <xen/init.h>
>>> +#include <xen/libfdt/libfdt.h>
>>> +#include <xen/mm.h>
>>> +#include <xen/types.h>
>>> +#include <xen/vmap.h>
>>> +
>>> +#include <asm/setup.h>
>>> +
>>> +#define IMAGE64_MAGIC_V2 0x05435352 /* Magic number 2, le, "RSC\x05" */
>>> +
>>> +static void __init place_modules(struct kernel_info *info, paddr_t kernbase,
>>> +                                 paddr_t kernend)
>>> +{
>>> +    const struct boot_module *mod = info->bd.initrd;
>>> +    const struct membanks *banks = kernel_info_get_mem_const(info);
>>> +    const paddr_t initrd_len = ROUNDUP(mod ? mod->size : 0,
>>> +                                       KERNEL_LOAD_ADDR_ALIGNMENT);
>>> +    const paddr_t dtb_len = ROUNDUP(fdt_totalsize(info->fdt),
>>> +                                    KERNEL_LOAD_ADDR_ALIGNMENT);
>>
> 
>> Why would modules need to be this strongly aligned?
> No specific reason except to be aligned with similar alignment below, it 
> could be lesser (PAGE_SIZE or even just unsigned long aligned) or even 
> dropped, I think. It was just easier then to calculate aligned 
> addresses. But I don't see any big issue to have such alignments except 
> maybe that it will waste some memory.

Or result in there not being enough memory to hold everything.

>>> +    /*
>>> +     * Place modules as high in RAM as possible, scanning banks from
>>> +     * last to first so that the end of the last bank is preferred.
>>> +     */
>>> +    while ( bi-- > 0 )
>>> +    {
>>> +        const struct membank *bank = &banks->bank[bi];
>>> +        const paddr_t bank_end = bank->start + bank->size;
>>> +        paddr_t modbase;
>>> +
>>> +        if ( modsize > bank->size )
>>> +            continue;
>>> +
>>> +        modbase = ROUNDDOWN(bank_end - modsize, KERNEL_LOAD_ADDR_ALIGNMENT);
>>
>> Same question here.
> 
> I used KERNEL_LOAD_ADDR_ALIGNMENT to be sure that big page tables be 
> potentially used in page table.

I fear I'm lost. All the modules are temporary entities, aren't they?

>>> +        if ( (modbase < ROUNDUP(kernend, KERNEL_LOAD_ADDR_ALIGNMENT)) &&
>>> +             (modbase + modsize > kernbase) )
>>> +        {
>>> +            modbase = ROUNDDOWN(kernbase - modsize, KERNEL_LOAD_ADDR_ALIGNMENT);
>>
>> What prevents this subtraction from underflowing?
> 
> I will put the following check at the start of the place_modules() function:
> if ( kernbase < modsize )
>     panic("Underflow could happen between kernbase and modsize\n");

Wait - why would this be a legitimate condition to panic?

>>> +/* Check if the image is a 64-bit Image */
>>> +static int __init kernel_image64_probe(struct kernel_info *info,
>>> +                                       paddr_t addr, paddr_t size)
>>> +{
>>> +    /* https://www.kernel.org/doc/Documentation/riscv/boot-image-header.rst */
>>> +    struct {
>>> +        uint32_t code0;         /* Executable code */
>>> +        uint32_t code1;         /* Executable code */
>>> +        uint64_t text_offset;   /* Image load offset, little endian */
>>> +        uint64_t image_size;    /* Effective Image size, little endian */
>>> +        uint64_t flags;         /* kernel flags, little endian */
>>> +        uint32_t version;       /* Version of this header */
>>> +        uint32_t res1;          /* Reserved */
>>> +        uint64_t res2;          /* Reserved */
>>> +        uint64_t magic;         /* Deprecated: Magic number, little endian, "RISCV" */
>>> +        uint32_t magic2;        /* Magic number 2, little endian, "RSC\x05" */
>>> +        uint32_t res3;          /* Reserved for PE COFF offset */
>>> +    } image;
>>> +    uint64_t effective_size;
>>> +
>>> +    if ( size < sizeof(image) )
>>> +        return -EINVAL;
>>> +
>>> +    copy_from_paddr(&image, addr, sizeof(image));
>>> +
>>> +    /* Magic v1 is deprecated and may be removed.  Only use v2 */
>>> +    if ( le32_to_cpu(image.magic2) != IMAGE64_MAGIC_V2 )
>>> +        return -EINVAL;
>>> +
>>> +    effective_size = le64_to_cpu(image.image_size);
>>> +
>>> +    if ( effective_size && size > effective_size )
>>> +        return -EINVAL;
>>
>> Is the rhs of the && the wrong way round? If effective_size > size,
>> aren't you in trouble? Question of course is what "effective" really
>> means. Yet in any event it seems dubious to me that effective_size <
>> size would really be a problem. IOW this will want commenting upon
>> if the check is to stay.
>>
>> Actually ...
>>
>>> +    info->image.kernel_addr = addr;
>>> +    /* Actual size in the binary file */
>>> +    info->image.len = size;
>>> +    /* Total memory the kernel occupies at runtime */
>>> +    info->image.image_size = effective_size;
>>
>> ... this looks to suggest something .bss-like.
> 
> Yes, effective_size it is size which included .bss.
> 
> size it of LK after decompression of Image.gz and it doesn't include 
> .bss so it should be lesser then effective_size.
> 
> I don't think that I am in trouble that effective_size is bigger then 
> size if we allocate enough space in memory effective_size is fine to be 
> bigger.
> 
> It is a good question if effective_size < size is a problem. I think it
> isn't but could it be really happen?

A kernel image (file) could have data appended to it, e.g. a certificate.
With only small .bss that certificate could end up larger than the .bss
size, and hence effective_size < size.

> I think that I am okay to drop that part of if().

Please do, unless there is a(nother) reason to have it.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 06 12:49:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 12:49:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301701.1575918 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKbgj-00030n-IL; Wed, 06 May 2026 12:49:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301701.1575918; Wed, 06 May 2026 12:49:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKbgj-00030g-ES; Wed, 06 May 2026 12:49:17 +0000
Received: by outflank-mailman (input) for mailman id 1301701;
 Wed, 06 May 2026 12:49:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKbgi-00030a-RB
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 12:49:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKbgi-005iqf-19
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 14:49:16 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb38c7-bab6-0a2a0a5309dd-0a2a450bb2e4-16
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 14:49:15 +0200
Received: from [40.107.208.37]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb38ca-212f-0a2a450b0019-286bd0253f82-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 14:49:15 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM6PR03MB5370.namprd03.prod.outlook.com (2603:10b6:5:249::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.26; Wed, 6 May
 2026 12:49:12 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 12:49:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Zce5obDVb7BOKQiek8IK4/80KHRYrPUP6FYmSt+SnJcLSi/zQuP0zNdKlSgrKm3jD3iBwP9FucngVaAKxhZTs+jMgRAByrhqcRKUpSuu8Lkwdi2QdDNIuLX1GIsu7m70KfkAiA49NsFMkRBuCQrVW6wY10uqcQuxDXMGQGtl2JLaEstTnJOkxZ287aoHOPjqZRNtiS5mhC2zyJOgn+H5zWxT05rY1Y5x/dpxNkn5F2bs9RIIPtqWrgE1jaZD59oCAus5z3uLjUTeLk1a2PQSdSQUwBKrkiI18mtTXIUoqlPjW6NmO8ukcQj1jFrqmA4p/Zc1CLPCDR7jAUnGisKGPg==
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=MDicd49Bi7mNEZF2t4kXtHfLAn3d1oe0eoQaCDIB1nA=;
 b=QwNK0akZeuAGPHtMClcv54UV5zhLu8ZzMK8GArrQuSrNRPhGZOgD3cPav3hyAxQ3DCNNASmVhL1ktI1uYtmGoiUDksE154WFhtjjCaG1+PdU/lReYotz00jhV4v2oN++b3WRAX6oeFWvvZxJW1X8bjslZIP8t9YF1bd4+nBLGaY3xwPQJeOmq8OE8oTWb8ldgaKCi+7JWZc9FN2TB5m4aNOSbcMV/iUtEmEOQ8r2DDlZp317iQlpmdxUdCsR3Xyyzy9D4igTcTd5yuNXLQ0e/GbIGTlSaPK2I6LogWRk8hcFsgDcwvyvMdCaTfHDNkI6CydaO2PVX9Vdb2c9Na4dJg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MDicd49Bi7mNEZF2t4kXtHfLAn3d1oe0eoQaCDIB1nA=;
 b=pxJnyt1+jN+/Y+nmmolCwbqW8sANfQBtEbYO//wmdiwZNaOaq0yUIWg1HBFqQq6eUEKaex1SH6Kl/Hb7gdYQYboLsRfbM2JkZ4nYNiFAN01SDv3hy90q0Bw23SzukA/OPYSGE+9MCoYNSjdZxQkUUjV604ReoCSrvyroV22PBtE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 6 May 2026 14:49:08 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: Re: [PATCH] x86/time: make do_settime() uses more accurate
Message-ID: <afs4xBWPRtR2vkI5@macbook.local>
References: <99a4a514-3ed5-43f7-823c-54771f3bd03d@suse.com>
 <afsi29_wLi_P7G4t@macbook.local>
 <8bd8e079-f3af-404e-adc5-1542422f39b5@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8bd8e079-f3af-404e-adc5-1542422f39b5@suse.com>
X-ClientProxiedBy: MR1P264CA0074.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::29) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DM6PR03MB5370:EE_
X-MS-Office365-Filtering-Correlation-Id: 8536ecf5-e86b-4990-6fa8-08deab6ddf30
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	JM/6+i9sPqa2h+pOjpcEWONwnrwXNuwW0WQQ1SPiZlonefZ9FrIHLK7SjwoPCk1l5LOMGxSXkg2iY7i6LxuM5MwEZA6M6rdbWWr1pVN6Q7k0olcRa4QJI7p+xxT/Z6Ssj6mubwX0IQVlcLniq96ODXEJk58Yu1Q6LRMoupmRpl5C/lD7y+x0Qh3gvpkpbaZPt6U2KfR6mc3akpwvmvdQUE4xVciIzuVHe7u8rWmxd5tHVmbsq7Y1HjXkXFMlxD6DYhH9fuXin2ehQxca0Aioo0BM2RicULG9pxR5UqlqyKLK1+dKd2O4osQU8DlyDa248R32f9ZblFyDzl22rvlPFZSvR5In6az9s3RDEN7TGhX7S6JiqwEBgA4rCQkX9QlX3p/1E+Fifb2HTtxpoiwWhs5yM9EuBQwsBQLGGqfJsI+FlWWsGlx4TUfxHNlBJfA/Dd8zh/NlbnhqQcZrRbvWTcacljw7HDsLVNAE+z4oxSq/cjv4BYWxXa+OHeRdzW1zOJJbCX/uUvp2Vg6FnHPqRYSGrqdVcE99WZDPzWboSpPlSoDwaMNsmez7ENbqh5Ac4JdObOru22axCoH4rOnHAWTnYnuGc5VlxxFFPEoO9O/oQeYlINuKFgIVCHJsLH7LgFe9Et0uz+SBildzuowRyrS2lmKO3H5lCdqD7NtYs4lwR6Vld0Yk9qnRHqY9ZXF6
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NUNiM0NjMlRORElUZnA2bWZIWVExYVV6UUdvRzJhSTNWQlp6Q0w1aWRCQ0Jk?=
 =?utf-8?B?TXBNMnBRb0wxLytveUw0ZytDallpc1JwcjZUVTlqeG82eXBCeGYyREp3SmpR?=
 =?utf-8?B?RTUyYUtrVWNCYnlaUFRFMTA2UzV3RElOSVdaOEJpQ3k4MWxGNjdjeGFNaC80?=
 =?utf-8?B?ZTZPUkdqWm9xYjNWcjRvR2pNa0wycU9wbEFBdTd3MU9RakdmVVBaTGRTWUY2?=
 =?utf-8?B?c0czV2ZBMlBSdnNJSiswSXFpaUJ0QlRFOHlpZlBkL0x5MVVvNDhFM3hXM1FN?=
 =?utf-8?B?UXo2ZkI5enpwTWFXQzg5dHpFUU1wUENEUjNCZG5HeWFrdncyOU1aWWE1Yzds?=
 =?utf-8?B?c25adldKU0tTMW82MDJ3VGJjNjRrZWp6cDkrRGwwdzdPZjZRcVV6M1VPTUwy?=
 =?utf-8?B?NW95dkZQaVhGWXFGeHAvWlRQc0ZZQkxmT3B0MThmZGxiVjJIUXgyS1h6ZUtJ?=
 =?utf-8?B?bXp5SUxRRlhkTk1rL3BrTGZOMU1LM2NDUWdmNlp0bVpKZzk3UHo3bk1LR0Zo?=
 =?utf-8?B?N3ZDcUJ5UGMvR1U4clEvSUhHYUhtQ3BkdytmQk05Z2wyQWtOaERvTjlJVmRD?=
 =?utf-8?B?b2dBdHlwekdDZk0wZDM4RDlRbEF4Ti8zd3pLbXN2Um9yb29IclBlbzVPRzNv?=
 =?utf-8?B?NlE2cDZKSStjckl4OGYzeHFJUjdNa0tKcmFRUjkvbHdmRHArelYyWEFPdCtk?=
 =?utf-8?B?WnNoOHlYZ3Z2cHRBWk1CM3R3T2VSenMyQlBUL2V1YW4yMGpQSXdJZ3Y1Tzlo?=
 =?utf-8?B?T2dkcy8vNFJvUW9NN2I1NXpnWmdTTGhXM09EbThobW1rNGlIdThkL0QvbjJl?=
 =?utf-8?B?YkdUQ1hkVFA0dkpORE4xUmMvKzJ6ZnpQUmhXSDlXZW9KQTBFYVN1dkJmTVdl?=
 =?utf-8?B?UFA4a1JKaUpodFZIRjVLaE93NzM3Y0s0eDdxa1hUdVR6N2prckFwZTNZendt?=
 =?utf-8?B?dEttZDJrby9uSlZibWtGU1hLbFFGbkNUR2JDRjJxVmM0WW93VE9NNUkzMmFM?=
 =?utf-8?B?eVFpTkNqSXorb3NTaUxmdEkreTk4WFp6cjFhM01nblVSVUI4YTh3QVFFV0hD?=
 =?utf-8?B?eGZKRXQ2REUrT0JOdDFKaVlCUlEyRCsrRlltaFdPdDFxc3d4b3h6L09XUm8r?=
 =?utf-8?B?eWMzUjR5U1VqVVYyVjM5NHE2UjdjWU9MTWtxYnJpa0s4bTRoQW1JUkR4T0x4?=
 =?utf-8?B?M0tDMnpQaTlHWkNJYmROYjNmbk9VQnZpY2tQUU1ITjdHYlhkL1cxb2lmMEN1?=
 =?utf-8?B?ditlM0NVc1ViNHpBb1V1M203aFVUSTg5cHZEd1pDSlR3M1p1dE9sc0dGUENB?=
 =?utf-8?B?SkpvOHNMOExvNzZmaGkvcUVxWlBWVW80OWYzUE43Zkl2SHllMXRFWjlDeTVW?=
 =?utf-8?B?VzZ4c0FEOW9pWFBUS0ZYMVdlVEU4MEp3OGcrbGJaNzlXRHhnTGpBUVRvSWda?=
 =?utf-8?B?ZDFZejFMbVRHVlVUeE5sLzhxL3Y4Q2ZXMGNPSVl2UWRJVnI4RXVjelFON0tx?=
 =?utf-8?B?b3FmMUpOdEJ0Z2NpYldqU0NYUW5rbjV1YTVydjdwYlo5d0dFNkZmd2JHZVBG?=
 =?utf-8?B?YXA4TW5sb1dTQXMvTHdnZWNjZEdkN2VaYU9zeExVY1JkKy9MUzR6ZFFEYUFz?=
 =?utf-8?B?RGZ2cGZKVTlUSzlBbVhYNWFCdzVFSnJ2dlpBNlllRnNJaVFzQUFOQmVWSUE0?=
 =?utf-8?B?U2dLSXpTMzJEeWxoNmE1NElud2E2K0JlSEJRVE1BYjc4bEpGR001c2tEUmhn?=
 =?utf-8?B?Y2RJd3BSNXB6UTlIcDN5WDdZb1JIYzVma2tkSjE5UzYzcUlpRlBkTnM1NDZJ?=
 =?utf-8?B?WlF6S2JLcE9WS2hndlpEdWxtUTBManRFdDI0UXR4NWpmbUlyKzBOVlFBeWdR?=
 =?utf-8?B?WHF3UEhDeXFXMFVPK2laV2RFUWtSWkUyK1ViZ040VnA1ck9aRGhMQVpscW5o?=
 =?utf-8?B?b0I3SVdUNUVjbVNEcUgrUUpXenR1dG4xbkE0cVJiZTFiazkvRU1qbDFwRk5u?=
 =?utf-8?B?V1RMTGZVclVtN1JYTU45VEpPbkx5NDk3aXIxSmo5ZGptR2k5bU4wbUV3Zkp6?=
 =?utf-8?B?Y1pQRVNyVUlRZzhOellCajdtdnBuMExiYy9idWVZcXR0TDNGWVpXaTdkQnEy?=
 =?utf-8?B?dDNHOVNUZ0ZhOTNHSG5OS1NVeFB5M1Z4d1Fad25JOUd4dXdzdVIwcVdqOGp3?=
 =?utf-8?B?MjN0LytsOHNrbTVucjlnYS9vVjdVVnRLa1F6ZUlJOTFMTkJ3azlxeTM5S2ls?=
 =?utf-8?B?YmxWaWhBclZwVkk5N1BhT2plOSs5UW5pZ09lbERxVUFrd0RIQy9pdVE5cndw?=
 =?utf-8?B?bmQ4NEtqRjhMTFUvbU13RXJxLzdhblBlYnRZRytWR1ZrdTF2bnZYQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8536ecf5-e86b-4990-6fa8-08deab6ddf30
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 12:49:12.4143
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gJpHXUiunI045sB2aQfnjtUywAPftp0dkYmgOtQlPyKa/CasR+HJFbZRKWQcKsEN1baN77RFThJtZaYOI2TdLQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5370
X-purgate-ID: tlsNG-42698a/1778071755-1A16DF3B-B2DD88C3/0/0
X-purgate-type: clean
X-purgate-size: 2679

On Wed, May 06, 2026 at 01:45:36PM +0200, Jan Beulich wrote:
> On 06.05.2026 13:15, Roger Pau Monné wrote:
> > On Wed, May 06, 2026 at 11:35:45AM +0200, Jan Beulich wrote:
> >> As a comment next to one of the invocations states, get_wallclock_time()
> >> can take over a second. The order of evaluation of function arguments is
> >> in principle unspecified; in practice at least gcc looks to be evaluating
> >> them from last to first. Hence with NOW() invoked first, the respective
> >> value passed to do_settime() can be off by over a second (which is in
> >> contrast to __get_cmos_time() attempting to get the time exactly after an
> >> update, i.e. [pretty] precisely at a seconds boundary).
> >>
> >> This also addresses a Misra C:2012 rule 13.2 ("The value of an expression
> >> and its persistent side-effects shall be the same under all permitted
> >> evaluation orders") violation each.
> >>
> >> Fixes: f64134cdb81c ("x86: Fix time_resume() to notify all domains of wallclock change")
> >> Fixes: 0bfcf984b727 ("x86: Reintroduce clocksource=tsc")
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> Of course the time it takes to do all the CMOS reads (or whichever else
> >> wallclock time source is in use) also results in an inaccuracy. For
> >> __get_cmos_time() this might be solvable by having it latch NOW() before
> >> doing the 6 reads, but in particular for efi_get_time() there's hardly
> >> anything we can do.
> >>
> >> As to Misra rule 13.2: tagging.ecl lists the rule as clean. I also can't
> >> find any deviation for the two instances fixed here. What am I missing?
> >>
> >> For __get_cmos_time(), tangentially: Wouldn't we better use the
> >> century byte if available? As it stands, things will break in 2070. Which
> >> is a long way out, yes, but still. (Of course this would mean a 7th slow
> >> I/O port write/read pair.)
> > 
> > Seems fine to me.
> 
> I'll make a patch, provided I can figure out under what conditions the byte
> is present / valid (hopefully that won't involve ACPI AML).

It's in the ACPI FADT table AFAIK.

> > One further note: in __get_cmos_time() I think we want to read
> > backwards, so start with century then year and so on, so the last read
> > is seconds, as to avoid extra skew.
> 
> I don't think this matters. It would be awkward if those reads took over a
> second. Plus if it did, the UIP flag would transiently be set, in which
> case doing the reads wouldn't be valid in the first place. Arguably this
> can in principle happen if a SMI hits in the middle, and its handling
> takes excessively long.

Oh, I see, indeed.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 06 13:43:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 13:43:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301749.1575937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKcWs-0002eY-Ic; Wed, 06 May 2026 13:43:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301749.1575937; Wed, 06 May 2026 13:43:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKcWs-0002eR-Ft; Wed, 06 May 2026 13:43:10 +0000
Received: by outflank-mailman (input) for mailman id 1301749;
 Wed, 06 May 2026 13:43:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKcWr-0002eI-GV
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 13:43:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKcWq-00GJIb-Oy
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 15:43:08 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb4569-2eae-0a2a0a5409dd-0a2a450bc8cc-16
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 15:43:08 +0200
Received: from [209.85.208.182] (helo=mail-lj1-f182.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb456c-212f-0a2a450b0019-d155d0b6c9aa-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 15:43:08 +0200
Received: by mail-lj1-f182.google.com with SMTP id
 38308e7fff4ca-39396f873adso37964711fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 06:43:08 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-39361300984sm50506201fa.21.2026.05.06.06.43.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 06:43:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778074988; x=1778679788; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0jG1J/Wlkxocuf2f6MlD3/95/OfgmgBprqMhHz814Kw=;
        b=Um7mv3vYj86TV8HxhCUB3yDjpwxWVvem0G+yaEhUsf87W+kXaevpGoymV+g+z/QLh2
         p58eJSU1mUjaVSg0JNmIA/tNfn+HD/C/4SM1aGI8ZHZ6aPjVOxvHaI8YWlLXTpW+Byzd
         0JtK+J5FZVtsv5dDD4kB4L2PuV2uDPAtrrFDrx6gGs8U5Ruk6kGT69G5E+atvxdCbOP9
         o5ApJh/PoMmk38f0uwe1GjIOAkSstYqPTmaViTadCfR1yYjdO71BniKf2saxfbT9qegj
         h+DibIRGb93OQ8BxPbFTelkxyUPvJe2cMKV4coySV5GxRXLSwt5RYtQb3ras8dhE6Euy
         ROTQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778074988; x=1778679788;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=0jG1J/Wlkxocuf2f6MlD3/95/OfgmgBprqMhHz814Kw=;
        b=QL3b3gTOhRqhFluaBhDwJunxBYQz3BAxDkaCTpYRYUe5bTN/UUw3r/yGubKcaC+uqp
         pC5GnQ/cLx3Hl3SCAeXEHRSabuz2i7k4vWm5Z85KNAKfU9MNSAnmkqVxWZIY1KcfymWF
         T30bShzF6/8B5MRA4LKunw/5xNb1gC9tD8fIPtE+Gm9Y4cJzLXrjJ2VjaPnYp5/L60iX
         iMSTRK4QZv1ktEUNoXxeGIsfsqk7w27AUdek6wkXUjWfEqB2DRkgkKQVVc5S1R8osIHV
         8yN2L45SYXxXxpBy2JUwwyusz7Cm1hneOwk/npihIPMCWttlCTAthSSI5RXyW8BU+NGE
         VuNA==
X-Forwarded-Encrypted: i=1; AFNElJ8ydttg9FFpsdByh3lDLBctZQZRpofPD+VFgeEfckUeSM3G5R8pf3AyEN34BVWGtZyyxmGguhhhz8Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwyqB9N4nUn5Oavtrc5N5WN7yCKDPMHz4bgoHVhtHBzJrHrVALQ
	30AzBWmR+07STZAIMvv0r1pVM8hftI1kM6o7GH8zZYSiFOref8JjAPOF
X-Gm-Gg: AeBDieuS1RLBRNoYL/27VAXp5b1uALGiIca5tvDZB+o0FUY8kCvp4gMiUB9lJmzmi0m
	Lit97Gga5/Mj3cHymHL58ejqVdyOCEV2PyggB/O/Z+K63ko9bTCxSJJAa+4ydSB04V1+C7Tx2ZI
	rM59DnCJ2Szl6kx5bdIC7MEpzc6ZVxWE6dR+J7m4iQZ6J/9XN/zZfaHWfistyIIqMM0hDEJeR4Z
	0/OKAMw10eB7CoQfCkyDKiOFnentBadHq4p3rXQ9I8DHQWw4HrsDv/5J1yMsOH4S3U/gvcZ4XRy
	utIeLT11gP/1EumNF/rSkAEq+3Cm2ByivelEG/rmsQh6+xTapbhBHginnfeRCXe9IFKcIRboVxF
	8SDoducAwcXsPyLvIgqXfP03uTfeesWSKce2ihoLHvZD7LuoTbwTkWZJHeZUFInqLUCaX3o05j2
	TIZ6dhqgAU3og48bv8h+FSV8XFabgHxI1tfwz6Rmecn078BZiAi9a0rLBG45Q2GV7TzKCuUnWbo
	Z+c2ekuY656qA==
X-Received: by 2002:a2e:2c13:0:b0:393:5c4c:c482 with SMTP id 38308e7fff4ca-393c433dcf9mr10895751fa.29.1778074986099;
        Wed, 06 May 2026 06:43:06 -0700 (PDT)
Message-ID: <ecab104c-23a2-4ffc-8de6-44e3969e20ac@gmail.com>
Date: Wed, 6 May 2026 15:43:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/11] xen/riscv: add Linux kernel loading support
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <af89f0b696c5a1ae477dc0903a9a99b84df26f7a.1777303844.git.oleksii.kurochko@gmail.com>
 <f61ddc8f-88a6-4f61-a470-c9c82b8b9b52@suse.com>
 <fa07cdad-81f9-408f-a04d-d9c3b8e1bef1@gmail.com>
 <47609c96-33b0-4b1c-ba6a-60110797cca8@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <47609c96-33b0-4b1c-ba6a-60110797cca8@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1778074988-1BF7EF3B-A21A0BF3/10/73395122804
X-purgate-type: spam
X-purgate-size: 4718



On 5/6/26 2:45 PM, Jan Beulich wrote:
> On 06.05.2026 13:57, Oleksii Kurochko wrote:
>> On 5/4/26 4:05 PM, Jan Beulich wrote:
>>> On 28.04.2026 16:33, Oleksii Kurochko wrote:
>>>> --- /dev/null
>>>> +++ b/xen/arch/riscv/kernel.c
>>>> @@ -0,0 +1,242 @@
>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>> +
>>>> +#include <xen/bug.h>
>>>> +#include <xen/compiler.h>
>>>> +#include <xen/errno.h>
>>>> +#include <xen/fdt-kernel.h>
>>>> +#include <xen/guest_access.h>
>>>> +#include <xen/init.h>
>>>> +#include <xen/libfdt/libfdt.h>
>>>> +#include <xen/mm.h>
>>>> +#include <xen/types.h>
>>>> +#include <xen/vmap.h>
>>>> +
>>>> +#include <asm/setup.h>
>>>> +
>>>> +#define IMAGE64_MAGIC_V2 0x05435352 /* Magic number 2, le, "RSC\x05" */
>>>> +
>>>> +static void __init place_modules(struct kernel_info *info, paddr_t kernbase,
>>>> +                                 paddr_t kernend)
>>>> +{
>>>> +    const struct boot_module *mod = info->bd.initrd;
>>>> +    const struct membanks *banks = kernel_info_get_mem_const(info);
>>>> +    const paddr_t initrd_len = ROUNDUP(mod ? mod->size : 0,
>>>> +                                       KERNEL_LOAD_ADDR_ALIGNMENT);
>>>> +    const paddr_t dtb_len = ROUNDUP(fdt_totalsize(info->fdt),
>>>> +                                    KERNEL_LOAD_ADDR_ALIGNMENT);
>>>
>>
>>> Why would modules need to be this strongly aligned?
>> No specific reason except to be aligned with similar alignment below, it
>> could be lesser (PAGE_SIZE or even just unsigned long aligned) or even
>> dropped, I think. It was just easier then to calculate aligned
>> addresses. But I don't see any big issue to have such alignments except
>> maybe that it will waste some memory.
> 
> Or result in there not being enough memory to hold everything.

Do you prefer than not to have alignment at all?

> 
>>>> +    /*
>>>> +     * Place modules as high in RAM as possible, scanning banks from
>>>> +     * last to first so that the end of the last bank is preferred.
>>>> +     */
>>>> +    while ( bi-- > 0 )
>>>> +    {
>>>> +        const struct membank *bank = &banks->bank[bi];
>>>> +        const paddr_t bank_end = bank->start + bank->size;
>>>> +        paddr_t modbase;
>>>> +
>>>> +        if ( modsize > bank->size )
>>>> +            continue;
>>>> +
>>>> +        modbase = ROUNDDOWN(bank_end - modsize, KERNEL_LOAD_ADDR_ALIGNMENT);
>>>
>>> Same question here.
>>
>> I used KERNEL_LOAD_ADDR_ALIGNMENT to be sure that big page tables be
>> potentially used in page table.
> 
> I fear I'm lost. All the modules are temporary entities, aren't they?

They are temporary entities but they should be copied to guest memory, 
right?

So ioremap() should be called for paddr where module is located and so 
at least less cycles will be needed to add entries to Xen page tables.

I don't know if it makes sense to have such type of optimizations. If 
not then probably we don't need alignment here too. I don't see at the 
moment any alignment requirements for initrd and dtb.

The only theoretical reason why at least for dtb we need requirement is 
that what Arm mentioned in its booting.rst:

The device tree blob (dtb) must be placed on an 8-byte boundary and must
not exceed 2 megabytes in size. Since the dtb will be mapped cacheable
using blocks of up to 2 megabytes in size, it must not be placed within
any 2M region which must be mapped with any specific attributes.

It likely should be true for RISC-V as I assume this part was copied 
from Arm port. On other side it doesn't mentioned explicitly in boot.rst 
of RISC-V in LK.

> 
>>>> +        if ( (modbase < ROUNDUP(kernend, KERNEL_LOAD_ADDR_ALIGNMENT)) &&
>>>> +             (modbase + modsize > kernbase) )
>>>> +        {
>>>> +            modbase = ROUNDDOWN(kernbase - modsize, KERNEL_LOAD_ADDR_ALIGNMENT);
>>>
>>> What prevents this subtraction from underflowing?
>>
>> I will put the following check at the start of the place_modules() function:
>> if ( kernbase < modsize )
>>      panic("Underflow could happen between kernbase and modsize\n");
> 
> Wait - why would this be a legitimate condition to panic?

It is legitimate to panic() as common API which leads to place_module() 
has void in its return type (what should be changed in future, I have 
this in TODO) and so if something is going wrong in place_module() there 
is not better option except panic() for now.

But generally i think it was too much to panic and it would be just 
better to put:
   if ( kernbase < modsize )
       continue;
above modbase = ROUNDDOWN(...) so it will just put modules in different 
bank.

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed May 06 13:56:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 13:56:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301762.1575957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKcjY-0004dW-RF; Wed, 06 May 2026 13:56:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301762.1575957; Wed, 06 May 2026 13:56:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKcjY-0004dO-Mq; Wed, 06 May 2026 13:56:16 +0000
Received: by outflank-mailman (input) for mailman id 1301762;
 Wed, 06 May 2026 13:56:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKcjW-0004d4-MY
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 13:56:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKcjU-007bkp-HI
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 15:56:14 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb486f-bab6-0a2a0a5309dd-0a2a450b951e-16
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 15:56:13 +0200
Received: from [52.101.56.32]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb487c-212f-0a2a450b0019-3465382053b8-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 15:56:13 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY5PR03MB5064.namprd03.prod.outlook.com (2603:10b6:a03:1e2::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Wed, 6 May
 2026 13:56:10 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 13:56:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Kj80v9Gy7hi+AWd59MLt8CtlfHVG6eLYzgOKkjJQUGRvmfVF8O/7B6DqR6z4Si6FG3/GB3hsSPceF6mwAzVHkgrdCxmevBQlQpwzogF6EGMpgqRjK7y6yEPnjYJNcjICvAcrSKI5ix1cvmdVqX/b3aMwWqK15pwiPAu/JQC+VG3s0gDOiC36D7Zb9h1sIOlKiEU8LlnOoHtQPAx0kQcDhxaXq/2TFQay5yNp9jpVYJUvbOn7BS3YvcxLn6pp88JZM2k6cDqHBecKoT2LdGFQWs7LXtyvklFx5JuEipO74NDjWaqJivV6RI0CjgmP3xwBTrxp7tdUQsqtAHtJeS19lA==
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=h86yfRitR+Edx+8fRFPWiKjEeDNn2k6WHpP9iqYYO4U=;
 b=N79yjc4tzCunkWv2wcD/maVElzjUYKuneVSDvqdFrb5sqQ60TqmBbC8IuAz5nTj5FPCHOWejQ+SpHaAXDhXTqdXFdGyvRNq+CgyCqnl9oyT/lo4F8coPHMHESkd2pSdKdpbeUDPPMnBVE+YD/5eNinCDzdKi7KJsIX8I/jiXr5pPmD63J82pNd3hXdG8HfPBNw0JTJAoD3HrLRdiNOVXjzALi7+p58AG6N/nA2/o6oQw3aLrIK6I/zAuwgXt1sz2/ccNfeGHYsYYjDYm4wDz5GAZP+CC2YAafhWtPbQnp9QRGBKD75YFFjyA09zeZBPEBa9eSmyFpSrDeOaNNJem8w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=h86yfRitR+Edx+8fRFPWiKjEeDNn2k6WHpP9iqYYO4U=;
 b=TxjmSG+bEFdZnZA+U64GRBt0ayRvVwV8HbKexn5SXS/IqLh3z3GkLgJAk3ZH7VOEfaWPYbi3+WDEwaPng8coN43OY3qA1N3XVR1qEfWGrWwBfoYI5YoZqyWxNw7BRuY3heIG0MHt2ipOACLHvSGt5lyk2ayK7FavGg2rbwyuEdY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v2 1/2] iommu/amd-vi: allow disable_iommu() against non-initialized IOMMUs
Date: Wed,  6 May 2026 15:55:13 +0200
Message-ID: <20260506135514.47310-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260506135514.47310-1-roger.pau@citrix.com>
References: <20260506135514.47310-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0060.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3e::21) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BY5PR03MB5064:EE_
X-MS-Office365-Filtering-Correlation-Id: 80daeafb-2843-4d92-8f5e-08deab773a58
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	K0BigEKWt+Ll2pSKRoPbGizE6lCGfuHGkVOVtbfFJCemQiWRH1rkSIGCE8JyOEnNFG3nyZ6TodTQyVgLlRqEtjmp3CNZXUy4yMtvgv9RJcPreyOLC5gobt2qCZ2NtLc24xAVeMhx2bp56R54Br2tkkat0CLbsQAwPIRsoweMtSajPYkZ56I1xsnMFdeRFfGoYZ3laaF5Sdbw4BAhGOKaowFS8wAqjhuPalh+mQZzICu2In053tQ20taDE6+8GUkySABxguuNDTcKO/miOEtmfqNQ9gVipaNqeUO59SyszrIKwWawlUw/SluozcH3oUavrHPsbVrRBDMz/gY6k7chGvFB9NIoQqFhxMDdaHLRXEkMrpw5Zl0woEA1Q7YZLoOmPnMiMlkSvMxeieoadCV7VGphDK9jtQhCdQwN6zu10seSVFGzlEa/U8YbyQmOVMEGbI0cNSMP23rZOU0VxCP1FS+ciGXCY7POi0xrNbou5sOFgWxCP9Gm5WqXPoiwB8rnCb6Tm89RQTWqXDv7xCdiXs9TqIwtIsfcX01P4Pwiw7wfhR/fV1r2rqwyg82ACpzD4FlVHhegTovzM9MGr21GMfwDo/RDdjyxFOC9obPlgECJZ5vCKeNQWIXANI4AsO3VwCB8P4NKId8z9PHR5RZrUy1+eZc/sNguoXsWZYV6FFqdDszj3VqomL4M6eQ/E59X
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?L3FPY29NZStzemJlRkJFTC9waTA5L0lmazgvVGFtckM2ZDYrWGpXaVZncFo4?=
 =?utf-8?B?SDl0TUc5a3BIV1BycnJtVi9VVTVSRkloRTV4SEd3cTVBL3hLZzBxekZJNlkr?=
 =?utf-8?B?b1hOQ3MzVktnOFNLQTRvcXVwV2lMdE5nUFZqaUFzUmJEUTc5K1ltQUNjQnZ1?=
 =?utf-8?B?RytqQ3dyTGRBTkdFenI3YkdWWVZ1NGVXTml4Rm55SkN1Z29wRDN5UnRKMms3?=
 =?utf-8?B?c1g3bFpTVURTQ3lZMXF6OTcrTyt4TnlLRWNGSHFYOEoxM0M1UkEwSGVwOWdi?=
 =?utf-8?B?bWp0MGJlaEoxNlZLWnRJMElsdHk1L3liS3hQUjZ1WGlERDVYYVI1S2ZRaHNQ?=
 =?utf-8?B?b0pCQndtTXBaR09Ma2UzVk92RmNaQ0c2OENvNGc5V1hSbWd4b1BRdzBXR293?=
 =?utf-8?B?Ull4SVd0N2lvbEM0cDdaMEhCMkw5dEdrSkR4QmFSNnBkY0hmOHlFVHZHTEkw?=
 =?utf-8?B?MUdBQXdDc2laQmVtRnhab0hVN2xWV1p5Vnk3dTkvQmVPbExoSkRYWEl5WHdJ?=
 =?utf-8?B?V1l0WW1HWHhwK1F3TTV0cG1UWnd2cHRGczJmOFlyQk1SWUhUejZVYlZwY0h2?=
 =?utf-8?B?dWJuUTlVb0pUUlNYdDZxWXpYeVF6amlLb25jejk4bG01V05wZzk2V1NZb2Zv?=
 =?utf-8?B?V0tjbmVLazRxa1lKNDVkNXJKcTNOdVRUQ3B2OFVzT0svNzM4dHNPeFBZVm5t?=
 =?utf-8?B?RVloRlJUR2Y0NGJSZGpvWm5rNkFuSkFwdEY4Qm50ekIvUXEzTUJuM1ZkdXoy?=
 =?utf-8?B?NWk5amJTdGdMekx3Rk1iamVHdU13eUlRUkRmK3kyZDlTMXBPdlF6dU1LTmwz?=
 =?utf-8?B?OERPNzQ4Y2x6czZ0UGxHTnZ5YmUxNWhySU9qeW9rd0dmNHRJbXRFZGVFdUNq?=
 =?utf-8?B?R0IrNXRzTnJpMFpZTHNzQjh1U1U3MUZRYXNiY3BlNlVMU1NUckV0Z0x1RjdH?=
 =?utf-8?B?a04rV1ZxbDNGSzVMMm05MURDM3hSMjM2dEFzNElITDBscXdCei9TRWJuQUFz?=
 =?utf-8?B?b0tXSlBpK3FRM0xYeHFwWnhoa25hdzZoTUw2ekhFbXpyL0V5QXJsZ29TemRB?=
 =?utf-8?B?TDNEZzhWcjR3bFplajY3Nnk3ZmZQdTRORk94M1RtN1RkQWJuOEtVME9HN0tq?=
 =?utf-8?B?akdCeml0OS9jTk9jdFBnM1Zvb0dBTTJzQ2lPWU1OYUZlY3VxZ2IrMWZZeVJS?=
 =?utf-8?B?Zm1objAwOUU4bnJlSU9FVG0reGdUc2E5MlZOTy9pdkFLNFdzTUk5Z1pOUXh4?=
 =?utf-8?B?K2JhOTFrS0V0RWtlR0xnYjBYeG9ycjM0d3VhQkg1TDFEMmJqWGJ1Q0tmK3Zm?=
 =?utf-8?B?bWtYUGQ3MTBwWTcva0lBRTBVMkxOL1BLNzEwd0w2N0k0RlZ2TElVVk5aNW1N?=
 =?utf-8?B?SWFmdmtrS2pXbTJMVHNvV3NpdFhQdXpyOE9Gc3FmRUJXVjJZbHAreGZubWVW?=
 =?utf-8?B?bWdZbDNXSDErdVRodUJzT0IxY0I2QXdTLzhCcDRzZi94U0s3WFBFM3dGdkFM?=
 =?utf-8?B?SmROR1dYWmlxNU1RaFIyN1RpV1pWNkxVdGNqdXZDdHhQem5TRTJKVkhpcUhI?=
 =?utf-8?B?a0JIRDZOVm0vUzJyTEF3M2hTQUd4ZTRpb2l6V3lQTkJSMHMzdmplLzdIK3ND?=
 =?utf-8?B?Q240Qk95UU5NQ29BZWZmWWkyYVBFOTBydzVYNmw4NWFndS9VKzIyd3NnajVl?=
 =?utf-8?B?QTlHdGpoclpDdEdLZk5uRWNDZ2lDWlNOQnpWRHdmSlBzZ0tmY09WVWo4MHlI?=
 =?utf-8?B?YUhHVGxsYmpOOGd0YzBJaWMvdXBYS05VUzVPNkd4RVhKZVVaOW5wUGFtbEJj?=
 =?utf-8?B?TW5wYzBURUV6VjliU2hIZjZsZlkwU1IxWGJzK3laSW4zTTFXVExtZDBMSy9z?=
 =?utf-8?B?L0lNOGdVQTRyMjdndURKb2lhdEZZRDBrMFpYWHhUVnlyK0NIbm85bzBob3Rh?=
 =?utf-8?B?VHBoWDlscnE0VUpIckFCTTQ1Rk5EWkx6T1BlTTJVSnRiUjNoRVdQazdVUGlm?=
 =?utf-8?B?NXIyMk45TDhSejNnWC83d1NoTHkxT2FSdGVoc0hzRzVnbjQzaGwvTGxFcjBK?=
 =?utf-8?B?Nmc0U2JpMkdNNXkxdGE4WFVwWXhxRFRLMEREQWg4U05sV0VPVFRER2NZbHQw?=
 =?utf-8?B?WGVtMTQ1cGNJZUIwditQdEM1Wk4wOWtYK0Y3ZkF3WHArcStNLzFYdVZwMWxi?=
 =?utf-8?B?M0RDMWM5cW81aWFyK3o3RHVOTFZGd3VXSHBLTW4zRWpzUkdaU3o4eTgwRkRw?=
 =?utf-8?B?Z2dIcnVYYVdhbDU0SFJpVUJJVVJuYjlvVHBPREc2TUVoYys1QWpleXB6dUYv?=
 =?utf-8?B?RWlhTm9CTVdhNW9WdDV5K0VSdmdhelpMbWdGVWovWmtJZ2FpMTBUdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 80daeafb-2843-4d92-8f5e-08deab773a58
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 13:56:10.3891
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gwDz8mZi7Yiw3BLYoz8W/oiAPN7qbcOKvZagJWg6uvggHFQhkGvmn50iyUhLeFtkov8PaGvY6jJHXInTO6gGdg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5064
X-purgate-ID: tlsNG-42698a/1778075773-1A16DF3B-FA86CAA0/0/0
X-purgate-type: clean
X-purgate-size: 2177

Introduce a force option to disable_iommu() that allows it to disable the
IOMMU, even when ->enabled is not set.  While there remove the unlikely(),
this is not a hot path anyway.

No functional change, as there are no current callers that pass force ==
true.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/drivers/passthrough/amd/iommu_init.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index d77dd8511288..76ae78e5ea53 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -929,13 +929,13 @@ static void enable_iommu(struct amd_iommu *iommu)
         amd_iommu_flush_all_caches(iommu);
 }
 
-static void disable_iommu(struct amd_iommu *iommu)
+static void disable_iommu(struct amd_iommu *iommu, bool force)
 {
     unsigned long flags;
 
     spin_lock_irqsave(&iommu->lock, flags);
 
-    if ( unlikely(!iommu->enabled) )
+    if ( !iommu->enabled && !force )
         goto out;
 
     if ( !iommu->ctrl.int_cap_xt_en )
@@ -1139,7 +1139,7 @@ static void __init amd_iommu_init_cleanup(void)
         iommu->ctrl.int_cap_xt_en = 0;
 
         if ( iommu->enabled )
-            disable_iommu(iommu);
+            disable_iommu(iommu, false);
         else if ( iommu->mmio_base )
             writeq(iommu->ctrl.raw,
                    iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
@@ -1584,7 +1584,7 @@ void cf_check amd_iommu_crash_shutdown(void)
     struct amd_iommu *iommu;
 
     for_each_amd_iommu ( iommu )
-        disable_iommu(iommu);
+        disable_iommu(iommu, false);
 }
 
 void cf_check amd_iommu_resume(void)
@@ -1598,7 +1598,7 @@ void cf_check amd_iommu_resume(void)
         * To make sure that iommus have not been touched 
         * before re-enablement
         */
-        disable_iommu(iommu);
+        disable_iommu(iommu, false);
         enable_iommu(iommu);
         if ( !iommu->features.flds.ia_sup )
             invalidate_all = false;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed May 06 13:56:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 13:56:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301764.1575965 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKcjd-0004tB-5n; Wed, 06 May 2026 13:56:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301764.1575965; Wed, 06 May 2026 13:56:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKcjd-0004t2-1L; Wed, 06 May 2026 13:56:21 +0000
Received: by outflank-mailman (input) for mailman id 1301764;
 Wed, 06 May 2026 13:56:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKcjb-0004rq-PI
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 13:56:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKcjZ-007bkp-KI
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 15:56:19 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb487e-bab6-0a2a0a5309dd-0a2a450aaf8a-14
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 15:56:19 +0200
Received: from [52.101.46.9]
 (helo=CO1PR03CU002.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb4881-56b3-0a2a450a0019-34652e09ee73-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 15:56:18 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY5PR03MB5064.namprd03.prod.outlook.com (2603:10b6:a03:1e2::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Wed, 6 May
 2026 13:56:14 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 13:56:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pcter3EntOVvhI+c3ux5PGR/jI59fiaXgVhOTif97OtoZ5q4qFG5JTLvXk1H0+Oqr0XOgWDaXb8LDZsczlPE6pfX4wRA1y7zIUkvX4v60B4l6JDzPCyDVUduwmTiPVPDUeKwFZ3DBsVhBv23+etRljTctD8rYVvScumuiukEN2BeRd3T+Hb/1rRnjePX6zJA49juG1RD1NkC31h46gZcUdBDuQazVkmAaNXQMsn7PSjkm9w9paYJfrEOk2gLJ+ZtotbXFq9VnGgMbmSck8yr8mTSeOAEZV2msO+HV//CN9xdcRGDtWDLvURLKc0fdxQsaygZ8Mo+Bbgo+FD4USAVOQ==
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=xrwxSKkv7rRh6ev0v8/Wi7eDOFVfG4pmI1FUsQ+FFwI=;
 b=AAO5IAYZxj3gKj06n84P+d/bu/qLuE+XrNvYrVZmjpWJHQA1RMNuOr1jWYfPGbRMc2rtSgDNA6INlBMsoNIR+AKkgpc7pEGp8MBNYNGpjGWX0RtpZxV6WrhxGtLzZa2jsUL5ZlZf4IbfoMmZ0LRK17qvm681pT7Z11jnrmuFijIKqSTe6YZWyIhwHd/L9y4Ho/jZ5v0YMTS93lgCXuT8/kXOr2r6NAXeXYqU1mSVwuevNvmcIPARUKTWUbOmiVDNe20hkA82aUMpF17tbxGsAJgqvMAwgqF1i1/uRzmTE59yx2RWFkvTuaAxC4Gqm1UDcNwRAXdhFAeChmfJyT/afg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xrwxSKkv7rRh6ev0v8/Wi7eDOFVfG4pmI1FUsQ+FFwI=;
 b=SO3Gn8tGlq3r1XnzlKFyHZ/h9Rz/V/yKpIzwvImlXWVqHVIDAF70ovcJMMBmJUYiWF8Pdamus84IN5Icxb3zjCcK4uNpypCOtnMUJvTO20g0iht3goFu+1gbdJNdHq1mgZ3g8IoPAaZX01yU6OSHXp4v9eItplHthZQ3XmDu4U8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v2 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
Date: Wed,  6 May 2026 15:55:14 +0200
Message-ID: <20260506135514.47310-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260506135514.47310-1-roger.pau@citrix.com>
References: <20260506135514.47310-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0173.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:55::19) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BY5PR03MB5064:EE_
X-MS-Office365-Filtering-Correlation-Id: 136dcfb9-2514-4f7f-119d-08deab773c97
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	qGDmAPs3hMQM6sTSqPJE/2N8pHcRGk84sEmz3vz9iNZvj31bjF/thUICafHljCWi1Dg17DncZQ6QCDJj0dDFhOt91cMgG/97THCGNBVS9ZyOtLC+akEcWw6caNONYcva/oC3z5mbNzSkrUfLqpaJG6GW869j+AHNrcSKMIRCDhNEO5PLMSEuLc8uj7IlvBzLzvmhXEPWf9MCZp4wkglPSd6ZFtMlsRU+Xp3Q5lILZr8zPfpR1hE9UIMO4+uLkl0me5kBoZlZ7oilhmmwM7A52OqGla3moF5tiJdtJJW/ham+GUaFxP9yNxi5ieHT+5PwZeSZqbTsqG/ojoOzKob+JSMl0tXWRxPsfyvi5FbSpmoLrDHzOY+ytheHdCJkInhmEg2FCxlY2zLSbt+Hk6vyN3S9ggiIMKtHbTHJDSeKuYTJDBP8baQCKdvmJZP//P5eu6r7wiDXJeJZM6Kr1XSy4VxI4k3dC0KUH7gAL640fAnQ6kpCaQbZZrD1oFEv6sG72+NcwPPSQMxUafVyix4ZgD8qTiefM9znRD2AOpGvOzraGeQP6NLa3eIBqlq9P1hH+aYER0A5USOfm97Py6ME67GLojtrmMNE3PrQVx6A3FrtL6MRd9PMrMe9OD9/PkEOdIm55Sw+v5HKXQOf3v56zVwebCQQS3M+xGZh6I/OSxD6tcuJO7P2mJDv1XcKAwhP
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RVVTVnQ0akxsNEFRTjJ4SXFYMG1jbGVYZ2gxYTJBdmU5MFdRSTh4aTVUcmJB?=
 =?utf-8?B?UjBMcHVBRGF3L05aQ24wcFZDa045Y1l2RGt6RXdud1hnaThlWTY2SHdtUHVI?=
 =?utf-8?B?N3FvbU1SeExDZU93b3BWQnlza1Z1NmxsUDI3elpaT3FkemRwbW9NdWFUQzh3?=
 =?utf-8?B?aGpWR0xEbnByZ3BwNWRxOU9UeTBlajB5ME1HT0xYaGVQdmphWUxiRXJUaExY?=
 =?utf-8?B?SUtyMVpLVTRYa1FSeHE5VTlkdWUzNXBzSndYR3lJM1VUalprWWE1V0YxT2hj?=
 =?utf-8?B?R1RtRk50RnMxaUN2QXFyRkUvS3NSajdGaWFsdVZ0cXVtS0E1S3dHbTNpa1RY?=
 =?utf-8?B?MGQ4d2lNdlMvRmtNeStzbXBPQTNmNXVYaDdhR1ZZaHNmbW0vOTV0VHJDR3NC?=
 =?utf-8?B?NGpkWjZZOWJMOUdIRHdkUEQ3WkkwMmt4Y05pQ1BzT3FYMERZOTZRa1ZVOE9N?=
 =?utf-8?B?S2UxdVFPOEhWK2M5RE5mTlF6SjFxZkxscXMxRzh4eStsK2JiZE4xWGlrSXJ3?=
 =?utf-8?B?ZXNrNDdseG0xcGVKaVkweUJOd0JBRHBFVEJSdm1aSmc5TzRMYlE0eE1rQ0Vu?=
 =?utf-8?B?V09mbWh1eURZRmN5c2w0S0pYVnRkcGNoOFFsY0g5ckRQbFdZMjJocUVqUU1S?=
 =?utf-8?B?MXZxeWQ1UzMyM0Eyak5BTUovdkRTZVZXZS9VeTU1dG1aWXdVRm1va2poeGww?=
 =?utf-8?B?VkVrMk5QQWM0STN2bnZlZVo5MWcycDRVa0UyQWRkdldXQjAvVXlTVDBWdXdW?=
 =?utf-8?B?S3ZtT2RSc3ZrRXdtdDdkNzVBL05zZnJvZVk5L21ONzkyd3praFBqcFE4YWVY?=
 =?utf-8?B?MFcvVGtPK3UvL1BnTmFMeDhLTVJTWjY1aTRtZXd1VHpGbDl3RGpiR1hwWkNH?=
 =?utf-8?B?TFRIMkI5SzVsZ2swdUZnVWdxbjE5VDN5T1A5YXBTSDNQb1VVYjZucEZwQmV2?=
 =?utf-8?B?a3ZvdHdCcko5T05DU1BnRE5VazFid29CaGtoWHhkOVY3aWxKQzNabmNqZHRW?=
 =?utf-8?B?VXlVR1lIaHVycm5vYTdLRjNJNkFLcUdraEluUGU5bzBOcUdzNDNCQzdWbndE?=
 =?utf-8?B?S1pvcDFiSFR0MXdEVHBCVUlkY0x1Z3h5QWp0SFBBZ0hadlpvSHZNNkgwL3F4?=
 =?utf-8?B?ZkdTdXdSY3FuSHJwTkcrZlZTQWV4UUNzRVVhYm9Nd3V3bnU1S0J6K3JUVHRu?=
 =?utf-8?B?bkNCN0w0a3cxYnV3TmdPVllYd2wyZHBCR2JNc08vUzFHVlUvbEtLSzVpWk54?=
 =?utf-8?B?Y3JvRGlYSU1sVDFsZGZtcEFiajIxRjRSQ1RiSjFRQ2FGaWZnOGdkS2RCblNB?=
 =?utf-8?B?cU5aL2NFT1VINEhjL0tZNm5NM3RLaFlRamZGN0htS0JYTlFheTRMZXd0UW1U?=
 =?utf-8?B?bllqQm5BV0lzL1o0a2IzZHNXeE1LTlRnWHN0bmExNWVWM3RSN3FLWE45eDBH?=
 =?utf-8?B?Qm1pNHYwbG1FN0lVN2pKUFVZWjZKWUVjVzl6NFNXVEw3bytIODhwV3FkZExm?=
 =?utf-8?B?VFN1U3BOcTBkMmUydFNCZ0tYcVlCUi91d1V0QWlrN3BsZHNZaXpNcm83L0t2?=
 =?utf-8?B?MlNRVkRYYnkwUkN3UXdySDF3U0FDNVdXSXNoUHVIbzc1STRUaUJESXcrQWlC?=
 =?utf-8?B?dWc3OE1GaHJ4VU5BZ0JoTmRpb0dZMVZhMVJ5d1BJbkVkT2Z3K0EyZzRZdllm?=
 =?utf-8?B?TXRHbkVHczllM1I4SVlQeWF5OTBVMWxiM2lxV3Y3L21ycGlXcytXbDYxWG9V?=
 =?utf-8?B?YzB5TGpZOUozU240NHVkT2RUbkNkL0lPNjIyOUVLbURlUjBKSkpNcFNuN1lr?=
 =?utf-8?B?a1hMSmNIbzdSQ3JkcnByOTNrUDVmVGFOMXdMMHBUV3MxTVRKekZYZmJQankz?=
 =?utf-8?B?ODdtd2tCMm5FTGFySTdyaTBpaFJvRGI5aW9laGRYUnVuOGJKUmMyemR0Y3lP?=
 =?utf-8?B?eUtXalgrMm1obEN4VFZ6OHV2blR5YmM0VHUvOUt1aWpnK2k3UzhUVUs0cFRP?=
 =?utf-8?B?Znd0bHNhU2NoSmtQYlJRZUEvajFYQ0s1bFQrZTVrNEVhb2hkQjdLaGhlZGFT?=
 =?utf-8?B?U2J5c0ZQREFzZDZMTXdEN3djMXZCMHUvVGJlZWJVZlVFaFI5M0JTdElJbDdD?=
 =?utf-8?B?bEpDZGF0M1MwbFVXdnZUZncvcStucDFmVmZDdlcydXZucWxRMUFnRzJ4VmJ4?=
 =?utf-8?B?TWE1ZzJhNkRvUU9mc0tOUmxuSldjOVdlQUlJUEdLNjd1b2syZ3VGVVVBWUtl?=
 =?utf-8?B?SWdZL1N5b2gydG5OUHNuVmtDdXNiOE0yRkRJclFDL2lnZHJhU3ZjQUhwMGVn?=
 =?utf-8?B?R1UxVXdDS0Jqem9XQU5YTVNiV1lNOWRqejBBcFIyazNUbUpuQS9QUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 136dcfb9-2514-4f7f-119d-08deab773c97
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 13:56:14.1335
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GHJLRlJr1efc8hnijnjl+9td/8Am/Mm8hudgAZ9BTkT53bLylHS9pa8GlD6tvBI3lEPP28fDqnUjwhx4kfkPCw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5064
X-purgate-ID: tlsNG-4011c0/1778075779-729768B7-6D0FD97D/0/0
X-purgate-type: clean
X-purgate-size: 3059

Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
say the least.  We don't know what registers might be there, nor which
values might be safe for those registers.  On a forthcoming platform doing
the zeroing of the MMIO region does put the IOMMU in a broken state, which
is not recoverable by the IOMMU initialization procedure in Xen.

Instead attempt to forcefully disable the IOMMU ahead of enabling it.  Fold
map_iommu_mmio_region() into it's only caller, as the function body is just
an ioremap() call after the removal of the memset().

Fixes: 0700c962ac2d ("Add AMD IOMMU support into hypervisor")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v1:
 - Zero the control register after calling disable_iommu().
 - Print a warning message if the IOMMU is handed enabled to Xen from
   firmware.
 - Fix commit log grammar issues.
---
 xen/drivers/passthrough/amd/iommu_init.c | 31 +++++++++++++-----------
 1 file changed, 17 insertions(+), 14 deletions(-)

diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 76ae78e5ea53..ffc041211fb5 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -42,18 +42,6 @@ static bool iommu_has_ht_flag(struct amd_iommu *iommu, u8 mask)
     return iommu->ht_flags & mask;
 }
 
-static int __init map_iommu_mmio_region(struct amd_iommu *iommu)
-{
-    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
-                               IOMMU_MMIO_REGION_LENGTH);
-    if ( !iommu->mmio_base )
-        return -ENOMEM;
-
-    memset(iommu->mmio_base, 0, IOMMU_MMIO_REGION_LENGTH);
-
-    return 0;
-}
-
 static void __init unmap_iommu_mmio_region(struct amd_iommu *iommu)
 {
     if ( iommu->mmio_base )
@@ -1367,11 +1355,14 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
 {
     int rc = alloc_ivrs_mappings(iommu->sbdf.seg);
 
-    if ( !rc )
-        rc = map_iommu_mmio_region(iommu);
     if ( rc )
         return rc;
 
+    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
+                               IOMMU_MMIO_REGION_LENGTH);
+    if ( !iommu->mmio_base )
+        return -ENOMEM;
+
     get_iommu_features(iommu);
 
     /*
@@ -1381,6 +1372,18 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
     if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
         return -ERANGE;
 
+    /* Read current control register and forcefully disable the IOMMU. */
+    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
+    if ( iommu->ctrl.iommu_en )
+        printk(XENLOG_WARNING
+               "AMD-Vi: IOMMU %pp enabled by firmware (%016lx)\n",
+               &iommu->sbdf, iommu->ctrl.raw);
+    disable_iommu(iommu, true);
+
+    /* With the IOMMU disabled zero the control register. */
+    iommu->ctrl.raw = 0;
+    writeq(0, iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
+
     return 0;
 }
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed May 06 13:56:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 13:56:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301761.1575947 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKcjV-0004QM-JK; Wed, 06 May 2026 13:56:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301761.1575947; Wed, 06 May 2026 13:56:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKcjV-0004QF-Fc; Wed, 06 May 2026 13:56:13 +0000
Received: by outflank-mailman (input) for mailman id 1301761;
 Wed, 06 May 2026 13:56:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKcjT-0004Q9-Fo
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 13:56:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKcjS-000W84-P2
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 15:56:10 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb487a-5cb7-0a2a0a5109dd-0a2a4504a980-0
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 15:56:10 +0200
Received: from [40.93.198.20]
 (helo=CY7PR03CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb4878-1dec-0a2a45040019-285dc61492ea-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 15:56:10 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY5PR03MB5064.namprd03.prod.outlook.com (2603:10b6:a03:1e2::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Wed, 6 May
 2026 13:56:07 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 13:56:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Br3hyTTVp8qNNg5L4WCzOHRXVO/ewHoyAM7MSiyIMe/KpmZPe+p6X5TXYrNrj9RuzDCc0wge1jNPlEKka8laigWQjMoCVz3no9tPhrQAycTnBIabw58eR7oyhIWSc8By5ieJflh3s7FehcotSvEriE0oBYU1noguGuxafv6C4xhTkxxZl1ir+KRGUQrDoPMWAom0jjNVklpVpQYwqfdldcOXYeRESkuDfnQSzi6sNSza4D8z3aMFmHQULGx5sBRhAEfTAlvzea8A+7yduDUIZFofSNBBd102IbrOfSTJljL6QGGS9xOq520UUwwlGp+Y3BNDAeX9m0minkVMmQKLJQ==
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=LaNqmi2181d7sItoZx8M4v072bIVyy49YGtb+AoIeBI=;
 b=Q3RH8k+VOUk3RRYplLtY6lN1xh0eKjBiV8grUrN/vGGPkiD6VjyZkOBnuS3ezm6OZIgGNLWl6DOJ/M1wkWkXq9e2lGP34+j+NfOmkI3imXzpTETCTlnkwXu9Tn8Fp1EunELHV+1XSVgBWTO9wB3rD7HRIgNoOjssrYWrVheHaXAfJR0NmXuXCMdw5F7mrHWKOYUcjJlHg3gYRB0TF7wLmb0SXDC4PxaEBuS/HUYdb/BQ/O7bcb4VYER7Pjzzi3u+9HTrYz3YNq7+eHkTMlVz+FvKwdZ4Fcsdgit8zjLd9NOhBqi2hKTLpa640QvSxilHZF3+c4qnh1IDDHFyzivBQg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LaNqmi2181d7sItoZx8M4v072bIVyy49YGtb+AoIeBI=;
 b=oBtSBWXPYjkWNN8dR1AZXw9OQjQcwrP6weG0riAKWVBzNjNSYvHPz3tkfJb4PLN+lCVcPXt1pWogQKfX5inJqRJMiNlbLKcQZ/BBMQcbhAQtY6p/cQCej0Vh9UYcF3sJmASe7c9v8mE9P91VYk0e6BjS6ks2uNvHzEV7qz67oWk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v2 0/2] iommu/amd-vi: remove zeroing of MMIO region
Date: Wed,  6 May 2026 15:55:12 +0200
Message-ID: <20260506135514.47310-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.53.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0164.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:55::15) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BY5PR03MB5064:EE_
X-MS-Office365-Filtering-Correlation-Id: b4a54b7c-be1e-4ff5-8781-08deab773825
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	l1Rb7onEzjtHT2uObgiM7/OI8aGg5ZGcJUQr1UOa72S4xpegeBNZEs0SncbwaHY7ao+p1BzqQ5Fxw2RZk/TTrQZgv6Ng8KNRoTpe1Ynphq5hZx2tCMOUNF93VcCWKZK09yJtEK3Bi2E3BhYIQAArWWH2KOl2ChmuZJDim9gQBL7GKwvJM1LiCRxQcIwYdTVdTF3SY+Rbj1HyhOYqBHxYMi3avva10oY+9CnHDSeu4AK+IDzRtYlzfPeC3Ul0xbwY7GZ3jJIBisyqh62m58+clXBiINpICF/iWTUxNETbRjDRcXwqzd8tyn540D5acCPbx2m8OYfrxHN5MilOUBlgJX2pIWoRbCzFaXDk1YPVSpWRTcjuFuTVjFJzS+NeTJ4ivMefvammkrqtvmfeODW8tIaCZqLW7PfAGcmLJmiC/KIfliYbVzNnqpBjj1p+VR6/XUZR+5NoccC9UHrFmPYq6HJp9KsbU5gWeXcpRscTrVfF8hLUT8DiBWQ4hKWb3VIf9mRZMbdEyEGpIuHu0Iqyr8VysrEOAVqSjEe/Pa9cwN5pZ2dLBtzk0RiReAL+NLMflW/IRnnVKZhJt5IaKlHUQX30n2Yt4ET67pDNMTyuEOnA58FVFph6n0dmxRNHhfVhKrxS59csCK+OLDtMNQGQgYos+7aNPalB258JFcQBTSq18uYMqwSxotekgz2xmFZm
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eU5DL0NLTGdBMSsxVS9ndTFDN2JzVFVSbjg3cTM4c3YxNERWajhJKzlqNlB4?=
 =?utf-8?B?ZDBwN3l6djI3eWo4d2tMSjdnV1lSanRNNTNzY2xRZlBvZ3F3TVRkM0V2MXhT?=
 =?utf-8?B?aGxCZjBDaldaSlBMYnBqYlpDbTVDNkJSamVycHN1QkxuZlR6OUVuVVJKdFRN?=
 =?utf-8?B?MThoa2ZiZThUTUFwK1ZmeDVKRi96b1VXV2ZKamlqdUI2K0M0bVBvb1ZYM1Mv?=
 =?utf-8?B?Wk5IeEdvRUdvZXBMT1BIRDZ2UHhlbTJuR0RIeE8zS2pJanVsU1k0eGlKcVho?=
 =?utf-8?B?dmlkMVZUTVdjdncwaytRSTYxUEtFUWp6TVNoSFFyOGNUem1vd0REMzR0aEhP?=
 =?utf-8?B?Z09OSXlzUVlBSlJJeTdNOHdNNDgra0ZFTjUxcmlvNHpsR3ZLdUlEb01aZW5a?=
 =?utf-8?B?S2ZhaDFhSXZZZFd4ZnlkUUJoTWN6N0NxQ3hIRTlhNFpwa1JsNzJzRXNqMmp4?=
 =?utf-8?B?Y3lBdzIwTUxuQzF4cEZtc3BZNUZPZFM0ZGVBTWlJa3plclBYN2VXZFU2MFlU?=
 =?utf-8?B?Uks2RlFxdy9WWFJhNjJtUU5QdzlLSjdZcHJVRlZCb25KTkw4ZlpKVFFwN0Vk?=
 =?utf-8?B?a3F3S2xEVzUwc2s3Z2pVSjZ1Y0lsZkE4c2d6MXgwYVU2WjU5RUFNS2lXeGdF?=
 =?utf-8?B?YlNnSFMyNk1HdFFIdWJPUXFtWmpBRDk2ZitDN2JHVUZObVArVm1ueFBmaHlW?=
 =?utf-8?B?Wi9EMEV6ajJxQWE3OFVjNHhYUHNKNEF4UUdzWUU5bndScGVDWkpCVWxVWG54?=
 =?utf-8?B?VDRnZTRaZWRBOWFvYlZLakU1OXRlbVFJOE83T2s4cWRvYStJNUJuSC9KbURo?=
 =?utf-8?B?amtKcGdiVE1DWFdNdWRWUGQ5Z0F5bXB5NnRxdCtPc0VwNWh2bGxIVUlJYkZz?=
 =?utf-8?B?V3N1dFNIdWwwQThlZXd6UFdTUlMrNkdRSlZlVGxvWjhmQjBZNEx2Z2tlZUJM?=
 =?utf-8?B?VmpHNnhmWEUrK2FObXkvQlUxKzFRc2NzTXlCSU1HdUtNN09KRXpRejM3c3Zh?=
 =?utf-8?B?bnZpWjUyK2RkSzE4d2hJWldUTFBCdiszTkJScVBoQ0NGQzFVUmNyR252VHVn?=
 =?utf-8?B?VWcyUmpjdjZCM2M5VG5FZ1NMQ3p6Z1U3cXZKQk5hSnRSS2t5MXZFZ2k1RlM2?=
 =?utf-8?B?S3JjTlUwbnk1aVMrS1ZlWjR2R01ISWNiQVVaQVluYlh3Vm1ib0lJbU03SnFL?=
 =?utf-8?B?b05ac3Roajd1Ymp3L0x0ZFBrenM0L3dPMnlYbkdmS1JxQXJLczNUck1nOXpO?=
 =?utf-8?B?WWdlMWkrcVJmSnU0Z2RxbVdlcFIvQzBQY1JESzlyQ0hWS0ZDaWRqdWEzSm1T?=
 =?utf-8?B?bXh1eG9GOEJvYmFDK3dVb3cyYlNmRkN6bU04V25zSlEwZzJUUWpIK1hXczBm?=
 =?utf-8?B?Q25XMDJmemY3UCtBMldvc2pNVy9kRUNkZS9la2FCbnd2Z0dPU0RmU2tjUEla?=
 =?utf-8?B?b1QvZUlhZERDcmc4LytDV3U3Z2pRUkJZMVV6YjVzbGxqaEpHNm1hTG93WDA5?=
 =?utf-8?B?a1o4Q29jbUlXV3Vod0UrUVpIVW55STNHUC91NktBMERKSUdMWUtQQktZZmVj?=
 =?utf-8?B?eTExM3NZTkIrQjBncHlFU3ZrMDZjYldQcHo0TUppdHAwLzF0bW9uWDRIVlJw?=
 =?utf-8?B?Qmp1dFB0Nm9QRWxGSUFyWWg0alV5cDYzbGc2NmpKMndsNjZHZDFwQ1R3SGhM?=
 =?utf-8?B?UFNJaUQreEc2NE1uR2NNTkNmNXE0UThFaWM4N1pzQU9zbk5wb1BGR214a3Bt?=
 =?utf-8?B?alZWZ0hOVkNsTFdUbjQ1emFhTFVOSlZVMG9KNUk3SUR3SW5MVHdtQXNobFli?=
 =?utf-8?B?TEpTcXh2TUxDTUZwekxIa28yb0Zpc2JYT0x1ZlkwLzRGNXMvRFBhcDM0aHUv?=
 =?utf-8?B?MXdxdUl3WnlRbjQ5ZjUwMk13VDRwMWcwSG1USVFuOEVCQVNyazBHN0tOeVFy?=
 =?utf-8?B?L0hFSzZXZ2hBaXJDWDdCOUJTeGM4VGNNamNxVVpBSkxuM2VsaTZZREM5OEFL?=
 =?utf-8?B?Q255Vk9ETTlyMUhkVDIvYmZZMUxKS3E0dUlGK0Uvbk5oK2pRYVFWSnhaWDU0?=
 =?utf-8?B?SGlncFBJOVBGZTRieHQwWTMyNFhpM0FzN2k1bFMrNElNbGZ6cnRZR3JOS0Ny?=
 =?utf-8?B?dmNvMjlGVFBmeHRFdFV5QUQvQmJVNTN6aDlwN05WcW1vOE9ETDZKdi8wZGlR?=
 =?utf-8?B?dy9XVHBGaTdFbjRpa1RhOHY2SjhyM2ZlSXEzTGJLY0JJaDY1MzVyMkp0VEov?=
 =?utf-8?B?czUrQkFjdXR1S3ZUaStRRS96VFBuWWNCUWpJQTFENGU2YjhZWm8vaUNIMjkr?=
 =?utf-8?B?VDN0Zncrb1EwRFNEOVR6VW14cmt3a0d3M0J0a1Z6VGJsOXc2WlBOdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b4a54b7c-be1e-4ff5-8781-08deab773825
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 13:56:06.8203
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vETvrO11pOEtn7uOdhC+pxvmHfHGqzkiiD8qcOh+IBZCXOSRMBNoj5LywZ9Z49UD8yoaMfi1JcHsibTO3wfzYQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5064
X-purgate-ID: tlsNG-ebf023/1778075770-40F753FF-5B6C38AC/0/0
X-purgate-type: clean
X-purgate-size: 601

Hello,

Unconditionally zeroing the whole IOMMU MMIO region is dangerous, at
least on an upcoming platform this does put the IOMMU in a broken state
that's not recoverable by the init procedure in Xen.

Get rid of the zeroing, and instead attempt to disable the IOMMU ahead
of enabling it.

Thanks, Roger.

Roger Pau Monne (2):
  iommu/amd-vi: allow disable_iommu() against non-initialized IOMMUs
  iommu/amd-vi: do not zero IOMMU MMIO region

 xen/drivers/passthrough/amd/iommu_init.c | 41 +++++++++++++-----------
 1 file changed, 22 insertions(+), 19 deletions(-)

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed May 06 14:03:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 14:03:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301787.1575974 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKcq4-0007OD-Rh; Wed, 06 May 2026 14:03:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301787.1575974; Wed, 06 May 2026 14:03:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKcq4-0007O6-O0; Wed, 06 May 2026 14:03:00 +0000
Received: by outflank-mailman (input) for mailman id 1301787;
 Wed, 06 May 2026 14:02:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKcq3-0007O0-5O
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 14:02:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKcq2-00GN0L-IH
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 16:02:58 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb4a0e-5cb7-0a2a0a5109dd-0a2a45038fd0-22
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 16:02:58 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb4a12-672d-0a2a45030019-d1558032cc54-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 16:02:58 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-48984d29fe3so92144175e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 07:02:58 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e53147bc2sm28717465e9.6.2026.05.06.07.02.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 07:02:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778076178; x=1778680978; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Cw+Zb2S2B6U/fGHMz7FbBzAhTvqHAbfx2ig1B6IyYoQ=;
        b=XnWag67O3GiM5bjvhXehoPNARrxL4B2xfV0jO2M6mOTA6USrVgcTcD5ygBeJfIfklp
         BP3mrttlQGtMDPuckKTo0be8pbpAjnFzVEb6wyNEbnbaqLvPHwenQfPbqVqM5ZbfCXcg
         mW7agTj2YjzlttOn3apEfyDvzmw/bxL71dOq1pxkYgodKG3uDvDZne8DhT6qjEGa8P9P
         V96OQiKLoBePRyBT5JeXqcNdE7fieS2gFEHVNayE0jM9pbPKUEUX6P8r+BgCwGxx1nMb
         +pWLSMNR1WvURlrn54dz5HdXCdLodijpDbyyL8ZSOcF4ZHDIadNKlneZr1fCYGG92eU0
         Z4LA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778076178; x=1778680978;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Cw+Zb2S2B6U/fGHMz7FbBzAhTvqHAbfx2ig1B6IyYoQ=;
        b=ektpLVEZaRq9HKOIVf0eO7SdGqSKnO4O0JnceFYWyo4Y+r38P/MFO4RDbo2ld0R3Ud
         2RfWn6/PbSrbdns3N32DMz+Qpw0LCs+cgYusC5vTcwUyRpXcXLcTUDDxgxtTuJl+nd0q
         AK9n1RD2BUFTV2+SFX12Nyn/2di2s89NcNWjZTTrUYkuomCfs7klA95zgKith08JwKP0
         tC9+lIc6sw+4rp9qnYzhW3zv5bvGQy459cFtZJrcF3JTo14x0+2S0o0e82Ak/fIcZanG
         Dxx8yL1+GGq2BWuXuMPC0V5M61LY2yXniIMwVhB366Dqr4j2S96LSEgTuUKAkcmwkHbF
         uzrQ==
X-Forwarded-Encrypted: i=1; AFNElJ/oFqiBgI4IcVMRni5Yys6dsQGc/lN6zmhPlbzQtBWAvMc8xhy4cWu5V40VzkWqaoFDWlykmOLCukg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzm5jroa+ATgwHx/N9OL8Hpmt5ydBVMBQTLQhT+Ijmn57n91S8X
	ojFpbX+2m5nSLpHTN3YDbgaTVCosbIptqGaNqocczok86txFt/nXl8RgodcmJEqIIQ==
X-Gm-Gg: AeBDiesO0YT9+EXWini9nM07eyDYNYt5yYpFVJbikNzemsTUxkSneAscp1TT8JnvE2r
	xMKOlGbFpsUcKpS1pvLgmbjqUlCvwRiBTqNOhZtFqNLtk9Jx04g+3595/UZ6e+9c8E/mqdK0PsQ
	geT+PTTtyFHoqF744fK9qxvFRs0PmauaUGXb+8NVmMUJ7fDwsoC6JFjZsPFJGto4nFu2hqU0sCL
	hifOMorLRkbmq7/R3hAiUCIv0BrJ96V6fftHgYAyXNrXoWdZ+8HG985KVH1PFKIf24NM+/Q/v4f
	9ZKLgALRmDzWK8vK6nyIhrUpYoVtNJE7K8ICNfHIPRfJ7OyKIFaE+uHHCvgGuIaPDjXv/oSohRr
	L9+58x9WMwWFtpk89+J8qK6t6+OX+7emnqfo2z797xrMhJ9vxPvahifNd0i7gJ9rgPoLWdM+d7O
	p1ZwOxR2fnen+AhG2Z7qLTORPaHQqcyaKchQ47VbEWOM8ivyEqiH/wwfTj2Q3qEVrVtbCiXiBPu
	qWzj0T1wlhcJaeVo2dy1uHu9w==
X-Received: by 2002:a05:600c:c48f:b0:48a:568f:ae6b with SMTP id 5b1f17b1804b1-48e51f2a790mr64783035e9.7.1778076177545;
        Wed, 06 May 2026 07:02:57 -0700 (PDT)
Message-ID: <f001c6aa-05b6-4fc2-974a-930cdfc3d0d0@suse.com>
Date: Wed, 6 May 2026 16:02:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/11] xen/riscv: add Linux kernel loading support
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <af89f0b696c5a1ae477dc0903a9a99b84df26f7a.1777303844.git.oleksii.kurochko@gmail.com>
 <f61ddc8f-88a6-4f61-a470-c9c82b8b9b52@suse.com>
 <fa07cdad-81f9-408f-a04d-d9c3b8e1bef1@gmail.com>
 <47609c96-33b0-4b1c-ba6a-60110797cca8@suse.com>
 <ecab104c-23a2-4ffc-8de6-44e3969e20ac@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ecab104c-23a2-4ffc-8de6-44e3969e20ac@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1778076178-3A378938-60E46E77/0/0
X-purgate-type: clean
X-purgate-size: 4953

On 06.05.2026 15:43, Oleksii Kurochko wrote:
> On 5/6/26 2:45 PM, Jan Beulich wrote:
>> On 06.05.2026 13:57, Oleksii Kurochko wrote:
>>> On 5/4/26 4:05 PM, Jan Beulich wrote:
>>>> On 28.04.2026 16:33, Oleksii Kurochko wrote:
>>>>> --- /dev/null
>>>>> +++ b/xen/arch/riscv/kernel.c
>>>>> @@ -0,0 +1,242 @@
>>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>>> +
>>>>> +#include <xen/bug.h>
>>>>> +#include <xen/compiler.h>
>>>>> +#include <xen/errno.h>
>>>>> +#include <xen/fdt-kernel.h>
>>>>> +#include <xen/guest_access.h>
>>>>> +#include <xen/init.h>
>>>>> +#include <xen/libfdt/libfdt.h>
>>>>> +#include <xen/mm.h>
>>>>> +#include <xen/types.h>
>>>>> +#include <xen/vmap.h>
>>>>> +
>>>>> +#include <asm/setup.h>
>>>>> +
>>>>> +#define IMAGE64_MAGIC_V2 0x05435352 /* Magic number 2, le, "RSC\x05" */
>>>>> +
>>>>> +static void __init place_modules(struct kernel_info *info, paddr_t kernbase,
>>>>> +                                 paddr_t kernend)
>>>>> +{
>>>>> +    const struct boot_module *mod = info->bd.initrd;
>>>>> +    const struct membanks *banks = kernel_info_get_mem_const(info);
>>>>> +    const paddr_t initrd_len = ROUNDUP(mod ? mod->size : 0,
>>>>> +                                       KERNEL_LOAD_ADDR_ALIGNMENT);
>>>>> +    const paddr_t dtb_len = ROUNDUP(fdt_totalsize(info->fdt),
>>>>> +                                    KERNEL_LOAD_ADDR_ALIGNMENT);
>>>>
>>>
>>>> Why would modules need to be this strongly aligned?
>>> No specific reason except to be aligned with similar alignment below, it
>>> could be lesser (PAGE_SIZE or even just unsigned long aligned) or even
>>> dropped, I think. It was just easier then to calculate aligned
>>> addresses. But I don't see any big issue to have such alignments except
>>> maybe that it will waste some memory.
>>
>> Or result in there not being enough memory to hold everything.
> 
> Do you prefer than not to have alignment at all?

Some minimal alignment (like to machine word size) may be helpful, for
copying to be more efficient. There may also be reasons to use page
alignment (e.g. if the pages were to be assigned directly to the
domains, without any copying, as we do for PV Dom0 under certain
conditions on x86). That in turn may even justify super-page
alignment.

>>>>> +    /*
>>>>> +     * Place modules as high in RAM as possible, scanning banks from
>>>>> +     * last to first so that the end of the last bank is preferred.
>>>>> +     */
>>>>> +    while ( bi-- > 0 )
>>>>> +    {
>>>>> +        const struct membank *bank = &banks->bank[bi];
>>>>> +        const paddr_t bank_end = bank->start + bank->size;
>>>>> +        paddr_t modbase;
>>>>> +
>>>>> +        if ( modsize > bank->size )
>>>>> +            continue;
>>>>> +
>>>>> +        modbase = ROUNDDOWN(bank_end - modsize, KERNEL_LOAD_ADDR_ALIGNMENT);
>>>>
>>>> Same question here.
>>>
>>> I used KERNEL_LOAD_ADDR_ALIGNMENT to be sure that big page tables be
>>> potentially used in page table.
>>
>> I fear I'm lost. All the modules are temporary entities, aren't they?
> 
> They are temporary entities but they should be copied to guest memory, 
> right?
> 
> So ioremap() should be called for paddr where module is located and so 
> at least less cycles will be needed to add entries to Xen page tables.

Okay, that would be a small win in time for perhaps a boot failure when
the modules would fit in memory if they weren't this heavily aligned.
You're judgement, but please whatever higher-than-expected alignment
you decide to use, please comment upon this.

>>>>> +        if ( (modbase < ROUNDUP(kernend, KERNEL_LOAD_ADDR_ALIGNMENT)) &&
>>>>> +             (modbase + modsize > kernbase) )
>>>>> +        {
>>>>> +            modbase = ROUNDDOWN(kernbase - modsize, KERNEL_LOAD_ADDR_ALIGNMENT);
>>>>
>>>> What prevents this subtraction from underflowing?
>>>
>>> I will put the following check at the start of the place_modules() function:
>>> if ( kernbase < modsize )
>>>      panic("Underflow could happen between kernbase and modsize\n");
>>
>> Wait - why would this be a legitimate condition to panic?
> 
> It is legitimate to panic() as common API which leads to place_module() 
> has void in its return type (what should be changed in future, I have 
> this in TODO) and so if something is going wrong in place_module() there 
> is not better option except panic() for now.

Feels like you're mixing two things here. I didn't ask whether panic()
was appropriate to use here, but whether the condition is one upon
which panic()ing is the only option (right now). And voila, ...

> But generally i think it was too much to panic and it would be just 
> better to put:
>    if ( kernbase < modsize )
>        continue;
> above modbase = ROUNDDOWN(...) so it will just put modules in different 
> bank.

... looks like the situation can be handled without panic().

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 06 14:03:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 14:03:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301791.1575982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKcqf-0007ls-2d; Wed, 06 May 2026 14:03:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301791.1575982; Wed, 06 May 2026 14:03:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKcqe-0007ll-W9; Wed, 06 May 2026 14:03:36 +0000
Received: by outflank-mailman (input) for mailman id 1301791;
 Wed, 06 May 2026 14:03:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKcqe-0007lb-2O
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 14:03:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKcqd-00GN6q-FT
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 16:03:35 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb4a2e-bab6-0a2a0a5309dd-0a2a4507aae8-24
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 16:03:35 +0200
Received: from [209.85.218.45] (helo=mail-ej1-f45.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb4a37-229c-0a2a45070019-d155da2dd979-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 16:03:35 +0200
Received: by mail-ej1-f45.google.com with SMTP id
 a640c23a62f3a-ba922426c5cso1111326266b.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 07:03:35 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc55e6ec736sm88041366b.39.2026.05.06.07.03.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 07:03:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778076215; x=1778681015; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=FZ2B5omE2FJvmbX0wffMNpoPqRxUGwdBfTy6QM45qug=;
        b=TQXfXAxEFbs2QObU5Fy+KFu+G/JY+ELjXerdSoz7oOhgD0JfxBBtkEZOWaobgT33qB
         EMC4Evb/Vy7eutrHj+b957VQ9EYNlNJ1Off7lVdoVALHLBAYe0PFPodqdr/9de1W0CGn
         JHwQQD+Ej0v+flaSrPVb5JP5itZmoMhBS3d1MzJ0vVqpbW/h4nmjMIAUbpBLcrOO0CXf
         aVtyqEu4738ncUDxCcofJTropfu6TSDCEI4RMMJukpUuZGaMAfK6Ohl0LBvTlRdGRbqR
         5XIau+rben3wq/7S2gowp+b3eqMgtFKCHb5TImGWNpkrJwz6BnZ89ADSZtjbD1gOv2wl
         qSjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778076215; x=1778681015;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=FZ2B5omE2FJvmbX0wffMNpoPqRxUGwdBfTy6QM45qug=;
        b=gw0o2LiN55C0Vi2W5GK1bGbU60O2KScj8+Tk1qBiMQHu2H/DLTNfG22y0VIe6RchFm
         eVg//C17cLzD5Dz5BzLlmjjObAxyL/ogtkFlBJTS0oLwh6D774yvhtXn9EUH3dinQycI
         0tkJKgjNgUvVKolS9rs5FBjiJVg0+Yxbm0UxIiaX3HxURV+Keyh8uvC2LbST4jAZSsMR
         8ZBCcYZdPRAbZdLqi83+jA8u0QejBmf4PauWENAZc/tuAn8pBjUp8hgQuTdL/025q7pK
         6wNikG9gh0Chg7XKf9LTpkm/z2v4MnSJm8XMlTZsdkqZmMkp/qKzgYi+dkvvAHmRlqXX
         4mWQ==
X-Forwarded-Encrypted: i=1; AFNElJ+kZZdzCPx3oNzPn0cha00Z/60Za8+OSxIHUCDd2bSnbdVKKnjJJFnlEgZ6i0xdZ2Sk2nf+gV0Vq/g=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz1IYBZzzAFtra3yYtUrdnXwFrVWb+ZYjTW1I1sxXjPH1nVh/Zw
	Anuyar1WFyrVWtvvnfV+BqS/IvyMsfM1aaHfxGeet5a6VWRpGxN8zEJT
X-Gm-Gg: AeBDieu9iIdjHjTdT74uMAJ7hGuMXg8AHDmm8Sasc3z+3ZxXdkoMkjgcM+nEmscYK8e
	S/RunOSodX6DW7g1h70HA+WOP6csl1SiWJxIJFnPFoFA7wTq6jRqp3To0htU29tX6evN8vI99k+
	h6ye37cPEn2762WbrCG/uw3PAF8/IO2vnSTKhTby9wd8vLxp37Ju6Ordro4UkHHtA0ehistNzfs
	dZqz18UmEZrLO2YS//VIJIKoJMrnZs2gZX3NmCQM6+xwgw6Q6teafx2TCow7LvMjd+9za0L/b24
	ZmaFrsKkE80qYuMFU69i04Enu/hbIsqs+mXqEMgR7F/P0kTU0lh1hPw9+8nsnKug3+vS/Q60r7v
	5rsKZSymMRabHpRjjy9ikOYDKC173eXKh/ggqnzwrEw6B8+xZ8plils+fLxxaoM0WvVFEHQZpk2
	2MZhqCEJRfVtyUvP0wibALTnTxh1uLg7CNE36+taBvV6Kd8m8ZOsIx5V+a1huQMCddBhpGpZW3q
	MEsWxtr/sqk4Q==
X-Received: by 2002:a17:907:1c13:b0:bab:c3b2:8635 with SMTP id a640c23a62f3a-bc56e2091c7mr193733166b.41.1778076212968;
        Wed, 06 May 2026 07:03:32 -0700 (PDT)
Message-ID: <4078b052-d0d7-4398-84c5-3a73577c6b99@gmail.com>
Date: Wed, 6 May 2026 16:03:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/11] xen/riscv: rework G-stage mode handling
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <865ed71ece75e850cdcb47ce9157a668a46a4c4d.1777303844.git.oleksii.kurochko@gmail.com>
 <aec349c3-ae88-4b8c-940e-6d3fd9c115f8@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <aec349c3-ae88-4b8c-940e-6d3fd9c115f8@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778076215-23B78C48-880476FE/10/73395122804
X-purgate-type: spam
X-purgate-size: 6933



On 5/4/26 4:23 PM, Jan Beulich wrote:
> On 28.04.2026 16:33, Oleksii Kurochko wrote:
>> --- /dev/null
>> +++ b/xen/arch/riscv/dom0less-build.c
>> @@ -0,0 +1,70 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/bootfdt.h>
>> +#include <xen/device_tree.h>
>> +#include <xen/init.h>
>> +
>> +#include <asm/p2m.h>
>> +
>> +int __init arch_parse_dom0less_node(struct dt_device_node *node,
>> +                                    struct boot_domain *bd)
>> +{
>> +    const char *mmu_type;
>> +    unsigned long bits;
>> +    const char *end;
>> +
>> +    if ( dt_property_read_string(node, "mmu-type", &mmu_type) )
>> +    {
>> +        dprintk(XENLOG_WARNING, "mmu-type property is missing in guest domain "
>> +                "node. %s will be used as fallback\n", max_gstage_mode->name);
>> +
>> +        bits = P2M_GFN_LEVEL_SHIFT(max_gstage_mode->paging_levels + 1);
>> +
>> +        goto out;
>> +    }
>> +
>> +    if ( !strcasecmp(mmu_type, "riscv,none") )
>> +    {
>> +        dprintk(XENLOG_ERR, "Bare mode isn't supported by Xen\n");
>> +
>> +        return -EOPNOTSUPP;
>> +    }
>> +
>> +    if ( strncasecmp(mmu_type, "riscv,sv", 8) )
>> +    {
>> +        dprintk(XENLOG_ERR, "mmu-type value \"%s\" is incorrect\n", mmu_type);
>> +
>> +        return -EINVAL;
>> +    }
>> +
>> +    bits = simple_strtoul(mmu_type + 8, &end, 10);
>> +    if ( (*end != '\0') || (end == mmu_type + 8) )
>> +    {
>> +        dprintk(XENLOG_ERR, "mmu-type value \"%s\" is incorrect\n", mmu_type);
>> +
>> +        return -EINVAL;
>> +    }
>> +
>> + out:
>> +    if ( bits > (UINT8_MAX - P2M_ROOT_EXTRA_BITS) )
>> +    {
>> +        dprintk(XENLOG_ERR, "gstage addr bits value overflows uint8\n");
>> +
>> +        return -EINVAL;
>> +    }
>> +    /*
>> +     * The correct value of bits will be checked in p2m_init() by call of
>> +     * find_gstage_mode_by_bits().
>> +     *
>> +     * As mmu-type property contains one of string:
>> +     *  - riscv,sv32
>> +     *  - riscv,sv39
>> +     *  - riscv,sv48
>> +     *  - riscv,sv57
> 
> Or about any other riscv,sv<N> with N up to somewhere around 250. I see
> that ...
> 
>> +     * it is needed to add '+P2M_ROOT_EXTRA_BITS' as for G-stage mode GPAs
>> +     * are extended by P2M_ROOT_EXTRA_BITS.
>> +     */
>> +    bd->create_cfg.arch.gstage_addr_bits = bits + P2M_ROOT_EXTRA_BITS;
> 
> ... the value calculated here is later checked for validity, so it's
> really only the comment which may want clarifying a little.

I will update the comment to:

/*
  * The mmu-type property may specify any riscv,sv<N> string, but only the
  * following are currently supported:
  *  - riscv,sv32
  *  - riscv,sv39
  *  - riscv,sv48
  *  - riscv,sv57
  * Any other value will be rejected by find_gstage_mode_by_bits().
  *
  * P2M_ROOT_EXTRA_BITS is added because for G-stage mode, GPAs are
  * extended by that many bits.
  */

> 
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -45,12 +45,27 @@ struct p2m_pte_ctx {
>>       unsigned int level;          /* Paging level at which the PTE resides. */
>>   };
>>   
>> -static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
>> -    .mode = HGATP_MODE_OFF,
>> -    .paging_levels = 0,
>> -    .name = "Bare",
>> +/* Values should be sorted by ->mode in this array */
>> +static const struct gstage_mode_desc gstage_modes[] = {
>> +    /*
>> +     * Based on the RISC-V spec:
>> +     *   Bare mode is always supported, regardless of SXLEN.
>> +     *   When SXLEN=32, the only other valid setting for MODE is Sv32.
>> +     *   When SXLEN=64, three paged virtual-memory schemes are defined:
>> +     *   Sv39, Sv48, and Sv57.
>> +     */
>> +    { HGATP_MODE_OFF,    0, "none" },
>> +#ifdef CONFIG_RISCV_32
>> +    { HGATP_MODE_SV32X4, 1, "sv32" },
>> +#else
>> +    { HGATP_MODE_SV39X4, 2, "sv39" },
>> +    { HGATP_MODE_SV48X4, 3, "sv48" },
>> +    { HGATP_MODE_SV57X4, 4, "sv57" },
>> +#endif
>>   };
>>   
>> +const struct gstage_mode_desc * __ro_after_init max_gstage_mode = &gstage_modes[0];
> 
> Nit: Overlong line (and, strictly speaking, a stray blank after *).

I will put "&gstage_modes[0];" on next line.

> 
>> @@ -331,8 +324,35 @@ static int p2m_alloc_root_table(struct p2m_domain *p2m)
>>       return 0;
>>   }
>>   
>> -int p2m_init(struct domain *d)
>> +static const struct gstage_mode_desc *find_gstage_mode_by_bits(
> 
> Is "_by_bits" adding much value to the function name? Especially ...
> 
>> +    unsigned char gpa_bits)
> 
> ... seeing that the parameter name is making things pretty clear?

Maybe not too much, I will drop that.

> 
>> +int p2m_init(struct domain *d, const struct xen_domctl_createdomain *config)
>>   {
>> +    /*
>> +     * TODO: This static is a temporary constraint: all guests must use the
>> +     * same MMU mode because p2m_gpa_bits is not yet per-domain.
>> +     * Drop this once per-domain p2m_gpa_bits is introduced.
>> +     */
>> +    static const struct gstage_mode_desc __ro_after_init *m = &gstage_modes[0];
>>       struct p2m_domain *p2m = p2m_get_hostp2m(d);
>>   
>>       /*
>> @@ -341,6 +361,33 @@ int p2m_init(struct domain *d)
>>        */
>>       p2m->domain = d;
>>   
>> +    if ( !config )
>> +    {
>> +        dprintk(XENLOG_ERR, "NULL config is passed\n");
>> +        return -EINVAL;
>> +    }
>> +
>> +    p2m->mode = find_gstage_mode_by_bits(config->arch.gstage_addr_bits);
>> +
>> +    if ( !p2m->mode )
>> +    {
>> +        dprintk(XENLOG_ERR,
>> +                "Unsupported or unavailable gstage addr bits: %u\n",
>> +                config->arch.gstage_addr_bits);
>> +
>> +        return -EINVAL;
>> +    }
>> +
>> +    if ( m->mode == HGATP_MODE_OFF )
>> +        m = p2m->mode;
>> +
>> +    if ( m->mode != p2m->mode->mode )
> 
> Since m always points into gstage_modes[], do you really need the extra
> indirection to compare the two ->mode fields? You could simply compare
> the pointers, couldn't you?

Agree, just "if ( m != p2m->mode )" will work.

> 
>> --- a/xen/include/public/arch-riscv.h
>> +++ b/xen/include/public/arch-riscv.h
>> @@ -56,6 +56,11 @@ typedef struct vcpu_guest_context vcpu_guest_context_t;
>>   DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
>>   
>>   struct xen_arch_domainconfig {
>> +    /*
>> +     * G-stage GPA address width in bits.
>> +     * Valid values: 34 (sv32x4), 41 (sv39x4), 50 (sv48x4), 59 (sv57x4).
>> +     */
>> +    unsigned char gstage_addr_bits;
> 
> Fixed-width types only in the public interface please.

I will use uint8_t then.

> 
> Also, isn't the field effectively describing the maximum width of a
> guest (physical) address? In which case - simply gaddr_bits?

gaddr_bits would be okay in this case.

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed May 06 14:07:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 14:07:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301807.1575992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKcuC-0008TP-JV; Wed, 06 May 2026 14:07:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301807.1575992; Wed, 06 May 2026 14:07:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKcuC-0008TI-GL; Wed, 06 May 2026 14:07:16 +0000
Received: by outflank-mailman (input) for mailman id 1301807;
 Wed, 06 May 2026 14:07:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wKcuA-0008Rf-Aa
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 14:07:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKcu9-009w2q-Ng
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 16:07:13 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fb4b0c-2eae-0a2a0a5409dd-0a2a450384de-26
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 16:07:13 +0200
Received: from [52.101.65.55]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fb4b10-672d-0a2a45030019-346541376497-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 16:07:12 +0200
Received: from DU6P191CA0045.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:53f::26)
 by GVXPR08MB11376.eurprd08.prod.outlook.com (2603:10a6:150:2e5::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May
 2026 14:07:06 +0000
Received: from DB5PEPF00014B98.eurprd02.prod.outlook.com
 (2603:10a6:10:53f:cafe::de) by DU6P191CA0045.outlook.office365.com
 (2603:10a6:10:53f::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.15 via Frontend Transport; Wed,
 6 May 2026 14:07:05 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B98.mail.protection.outlook.com (10.167.8.165) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Wed, 6 May 2026 14:07:05 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by PAXPR08MB7443.eurprd08.prod.outlook.com (2603:10a6:102:2b7::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May
 2026 14:06:02 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9870.023; Wed, 6 May 2026
 14:06:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=JwSk72q3OmrYIYt6zuzOvfW4EarRJlloZzkfoNkFVCrLHGUNrxRaIdgrUDN8kZDgp8adoywySeF+y2IEtb+qCwVw5NfUykVGa4OHq8ZgyCcVb17ytIQgE2Gjg2Jpiz6DX2Twa2Xg0TZjOrZ48chb5txFgjgdakhVY7+jlezjC6FirUEIyBqK29oQkj5fH3Kh3NlThGtyqIGodFeoKW8pbxkqR92i5ab0yZKaw4QKWIZojSYeXA1CJwlRmZ0CJY+uSUd3/LcXLgeYIqOL5YFARSol5Buv5RA/N1ksgYJY031fMH8l8l8jPx4zIIT/2gd/omKZuqcF9irmbZHRDgPV9w==
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=9kyZ75V/CI+PZSmQvvjR+dnfX4WO7h6pV9IUgDpoM04=;
 b=u2D4Ij8bxUFOO5RSsywBvFZ7SdsYAeMRaDWtFK8Ljgt81OTDmZ9r9B4byvVZ6q+A/Tr6dd4z4/qLS/Y6r679Jt5YRMZNR/byQ+wfkS3GeLDcO3FDds54k4yTTJb3ilNITlA+sXfsFP2KVoQN9N58P6gXzLJizOFMtu6AHchJ1rc2YdMjmGFjSZ2U0pc+euxVrJc6Pwj213tRkpp6VTrQvV0gqFiPX61c2DOs/xQ0wIom9St3f7+3OQzhoyMloXGpFxdDZtIfXzZ5LrcnfWmKNzZ27rJHesqWaWeJKqwJe03c9dgexaDi1ygJTfNARPbHCqFw5d8iXJhyCFVb1B7l+A==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9kyZ75V/CI+PZSmQvvjR+dnfX4WO7h6pV9IUgDpoM04=;
 b=n1o+XOQ6waOcmzMGZEm4bENo5XJQDO/+XFrvQGNlPEFOniuckVHlE+O1ZyeLs9wHzwy/H3b4FMZUK2KeuVbFEJqb67VxmkDttlV6cyGBczEAqjggCjuPMvvaJOqBJhB6Oapv667oVImg0QCL/1MSWHZo+LsHa3Gq2GPTUswHNic=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fon7iGKnHOQ4DjETQs1GPcp6Fz8ghJdeX1zFgQhfjPC8R93bl2dgwRhkE53Hi9JyQTOd/okYc19tmYU3TxutPdqCeaJK17QY2Oijo4pRMhVEYzjJTaCdN9iA3+FjQzkZslD70CDmkf0VfXhANkyoOKX2229WRGcQuXwZ4QJAGwoEurJPGv07OC4OHPFAhyZViqsYQU9F8GG9BsJZnd/kqJ4O7JYwoZvbjtQ5q8WVM+anVd2RSoBHW/NKeNkZe/w/llKMOUkQdUWLODegnrgjHhj66KrFs/7f5RqsyE8Czo00c2SiQVLZVS6yE6J/BJxMgiicxXnVpTFW+VDw1T1ROQ==
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=9kyZ75V/CI+PZSmQvvjR+dnfX4WO7h6pV9IUgDpoM04=;
 b=TfuXfiTr4K46bv1VtPpgQFHaC6kWKKg7JINa2uh8tewzOpemyZ+ZFAno1LZOq+xAC3RvICEI1hGc/V9UHT7chjjWMbFC7L4XeN/G5/+7Q6vlly5BoB1w12mKNwxlhzddejnEzzvjA2OTOj2629dt+iXMrommcGfgIz3yPoUVzYNSN+KaZq5Ekx6hMfJxb6w2l2f2e5+czh48Sd3hkPSz1itBABWh6ZyxpfDN9e1neh/N++OnaDXfKmix8+6OwC80jMXQKTcALYndjSkww8MPTRfpo+pclaFiTl15QM+QVG1aDWxN1hSBbyrqCi0/xUVA+yNJn8eIXU+bmlIDkGERvQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9kyZ75V/CI+PZSmQvvjR+dnfX4WO7h6pV9IUgDpoM04=;
 b=n1o+XOQ6waOcmzMGZEm4bENo5XJQDO/+XFrvQGNlPEFOniuckVHlE+O1ZyeLs9wHzwy/H3b4FMZUK2KeuVbFEJqb67VxmkDttlV6cyGBczEAqjggCjuPMvvaJOqBJhB6Oapv667oVImg0QCL/1MSWHZo+LsHa3Gq2GPTUswHNic=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Michal Orzel <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v3] xen/arm: skip holes in physical address space when
 setting up frametable
Thread-Topic: [PATCH v3] xen/arm: skip holes in physical address space when
 setting up frametable
Thread-Index: AQHc3TRHoODpo5BtK0edRSwNDE97NLYBCGOA
Date: Wed, 6 May 2026 14:06:02 +0000
Message-ID: <1EAB6ED4-3D64-4074-830B-EB9F8AD88547@arm.com>
References: <20260506084137.40913-1-michal.orzel@amd.com>
In-Reply-To: <20260506084137.40913-1-michal.orzel@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|PAXPR08MB7443:EE_|DB5PEPF00014B98:EE_|GVXPR08MB11376:EE_
X-MS-Office365-Filtering-Correlation-Id: 9bb455b3-cbfb-4ce4-9a2e-08deab78c111
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info-Original:
 lGPcy5vG5OdTzM2fHMBofdBBIjSUNWetwPPaICR8xp610ZvC9goBwQ35pw6+9pIS9VOtovHVbR3aUaTxjy9V6rDprnFMCKyDf7tAZ+WEYSg8IivkqHL/o831bp/1ZQVlZ7hmWQ5+VJLnfiFRykfHWjY4VIB4erjgfOMz3e3jLf8zGztZYebbTOsr2AQJW96scrB409lIffTYQ9qQqi02cBlWp/kheqbtv1hojd1P0fmv1vuYHAMa2SsGToGFGZw9aIrsVcBJqLnsqjafRMmn7C3OEFoM1Q1wD2LnDQfsz2KonB9lXTWP5St9HtdpfTuzwsBd9XAG7ZTJwJ9fnRh5UjfHtsul5sCRJxnRu9oevrJFtaGPGlEs/fpTFYJVvBd8WYS/6VoEzMUF/boqV33BEJolVJP/DTg30pA0LZoqkhfBaOJBmh6o8Xu+b1KQHTVyGKichmWLLZ0p7S788/s6WqDREopQnsXRksLJSRq77VnnQi1U/RXeZXeEL71jAR59IP43NpyQf8A2/a/e+nzDtM0iAbujZyqimTJ1b/AolD4JL9jH+YWvM1bDj6gFEFuLDeVUxwStY4RfXUryp3YrSlErtHGorir2EN1CqGvTRXtqLEwpDlrMaKbfzSVIUv7LgyeSqBB4qdm7d8M4YAvIhERgm5xtINBzQGiL/g8vuY4JAnuBhPBEyHFzAbKMRwvtWIc8VF/kDvme2EKKCRu7a0Bxdrty3sN610wFczj/GoQM5FeCJ6FbUNLnbX0xA0K3
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <0DEA80E900BCD24BA9DC009B7F7F2B7B@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 abVt/igQp+57c2RT3aO2iNk708bZ0g5zKq2qWNIX1mpvPhVBRyz+R2CgajnyDSdfVFODl/cGP5jwXUzoziFpDOewOtjew9AJTo5pgEhvCFjwicg6pIjA+0srqXgBOY4dVx2ZnfJaLrQ4lBwdU4Rfcs5AAyTqHzZa9I0W3pmL89X1UHMWII0o4ecvitMCzAJdftNm7hWS5NkLhmERCf7h6eSeApiQkH6axviZo9WZUq8q60X+XxBEm1qZR7OYNNtX/oPhQ849wlETq3htpK1EMo7gC9PuY8WhZxZrmCIYEp7k2qasAd5SwFAerIIhqDm/nM4BzHIThUgRD6MUUAjjaA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7443
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B98.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	7e83b6eb-a30d-4a7b-48f4-08deab789b35
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|14060799003|36860700016|1800799024|82310400026|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	wO9Lo9KWLaHglfSUdGnR409HGcHvvQqhX0Cgp4jZM04OXCVshOjeVhTvyz3fyKgxmbvpdjy3IGa0JI9FPjPaQ0ebLFfLqhJYVWv16Bv6O0OupiZ0KI7XrD2lVkTKbxe/VEOIti1k6aYeL9cewrHXrgoeHTc2o7JF3Q0ZlH7d+1dT7NuWGl1utMOakrCFXL/k4ntjrkNy+HXEe8L+6ge535zBegzyZHMUsPxnoaiqzExvJ9Y87WtDqXDiGbQXk3CmMwayihDPalaOzo+cL3ViXq+qUtYU7XsbSbFB6R38BwPAPY0ZG1DOR4EV0gfekSqQfLsy71PfeJGp7Hj9F2mWHbFsRSSKzZi/iOobo2L9gk6dGlsIFquLk/sO5owQQQV1b7FxZIZu2kjKhn9STHcIKtChrdjLhOvOg9y2DaoiYTJl+m/KsDz8aagY9Ev6P9/vfaPz7DLU7Ey2efqJwEQG3y+cONYCcsgogrCGdLxbFlTcRSIhAjnTvyVD647q3GjFyjZ5dNveszU90mxjJGb7suZs0tI4OS5qI/YzvQCBoa6atZ2JTxYfK6CqTUq1gq15VWOLuGX/OqTBWAX2E5YZvzZPG8RDWzi1sufwBJKSNzmwvrS2++viyLEPOM/gZ+DYbgM9lr6TbXBoNB2Bl5wTmWRvKvvnqgOsc2uDYxEeFvOGwnk5vcrGgrh4hjxftr3tn4q9tP2t9eDAPcDLfFIGMp5GpzoMr4Q6+QGqZD7miQ4=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(14060799003)(36860700016)(1800799024)(82310400026)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	cyr4UW5YU2AyRVN7d1zNBeGC24MuXZ07EhxNJRYtQuuENTAx6Uq46nDme1YtcvmD0UVR1rb121Mn19rRc2t3SCU335L8UXx8yAnD5qeqzM70nBn8tROG33ldtDlmf/Ey75B14Uh/u1H1Eja3DfWdPqd5/u3DYLmbfBR4sAsxJVLw406TGyc8cWXo8TR7JH2p7e1d0Sznn+fR7VURtyrADWea7brhcdr3iSYD9ERnBuEMmvseu0ZHKrOlmlpjz1Z6yastmXkRLritcvmBe0JfypA2D4vV//2ROyLfZiRP4nFZgK8IaAnfQJ7GLX4mKq4ASe+6WBBb0HK6gq9Z9VvpKscm9XfPjyKYjGf9htjM8Jzlxm1nPhBdMwmK5ZobquFlQVbxAwM31N7wKcy86/taNt3lt6zosuZf23rJH8eDNBkRGqHD11d3yyB53SDfbtYt
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 14:07:05.5640
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9bb455b3-cbfb-4ce4-9a2e-08deab78c111
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B98.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB11376
X-purgate-ID: tlsNG-33051d/1778076432-4279C938-FF53D739/0/0
X-purgate-type: clean
X-purgate-size: 7838

SGkgTWljaGFsLA0KDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vbW11L21tLmMgYi94ZW4v
YXJjaC9hcm0vbW11L21tLmMNCj4gaW5kZXggNjYwNGYzYmY0ZTZhLi5jNDAxOGE2MWFhMDEgMTAw
NjQ0DQo+IC0tLSBhL3hlbi9hcmNoL2FybS9tbXUvbW0uYw0KPiArKysgYi94ZW4vYXJjaC9hcm0v
bW11L21tLmMNCj4gQEAgLTYsMTggKzYsNTUgQEANCg0KU2hvdWxkIHdlIGhhdmUgYWxzbyAjaW5j
bHVkZSA8eGVuL2JpdG9wcy5oPiBiZWNhdXNlIHdlIHVzZQ0KZmluZF9uZXh0Xyo/IEFwb2xvZ2ll
cyBJIG1pc3NlZCB0aGlzIGluIHByZXZpb3VzIHJldmlld3MuDQoNCj4gI2luY2x1ZGUgPHhlbi9t
bS5oPg0KPiAjaW5jbHVkZSA8eGVuL21tLWZyYW1lLmg+DQo+ICNpbmNsdWRlIDx4ZW4vcGR4Lmg+
DQo+ICsjaW5jbHVkZSA8eGVuL3NpemVzLmg+DQo+ICNpbmNsdWRlIDx4ZW4vc3RyaW5nLmg+DQo+
IA0KPiAtLyogTWFwIGEgZnJhbWUgdGFibGUgdG8gY292ZXIgcGh5c2ljYWwgYWRkcmVzc2VzIHBz
IHRocm91Z2ggcGUgKi8NCj4gLXZvaWQgX19pbml0IHNldHVwX2ZyYW1ldGFibGVfbWFwcGluZ3Mo
cGFkZHJfdCBwcywgcGFkZHJfdCBwZSkNCj4gK3N0YXRpYyB2b2lkIF9faW5pdCBpbml0X2ZyYW1l
dGFibGVfY2h1bmsodW5zaWduZWQgbG9uZyBwZHhfcywNCj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBwZHhfZSkNCj4gew0KPiAtICAgIHVu
c2lnbmVkIGxvbmcgbnJfcGR4cyA9IG1mbl90b19wZHgobWZuX2FkZChtYWRkcl90b19tZm4ocGUp
LCAtMSkpIC0NCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fdG9fcGR4KG1hZGRy
X3RvX21mbihwcykpICsgMTsNCj4gLSAgICB1bnNpZ25lZCBsb25nIGZyYW1ldGFibGVfc2l6ZSA9
IG5yX3BkeHMgKiBzaXplb2Yoc3RydWN0IHBhZ2VfaW5mbyk7DQo+IC0gICAgbWZuX3QgYmFzZV9t
Zm47DQo+IC0gICAgY29uc3QgdW5zaWduZWQgbG9uZyBtYXBwaW5nX3NpemUgPSBmcmFtZXRhYmxl
X3NpemUgPCBNQigzMikgPyBNQigyKQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogTUIoMzIpOw0KPiArICAgIHVuc2ln
bmVkIGxvbmcgbnJfcGR4cyA9IHBkeF9lIC0gcGR4X3M7DQo+ICsgICAgdW5zaWduZWQgbG9uZyBj
aHVua19zaXplID0gbnJfcGR4cyAqIHNpemVvZihzdHJ1Y3QgcGFnZV9pbmZvKTsNCj4gKyAgICB1
bnNpZ25lZCBsb25nIHBmbl9hbGlnbjsNCj4gKyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsNCj4g
ICAgIGludCByYzsNCj4gKyAgICBtZm5fdCBiYXNlX21mbjsNCj4gKw0KPiArICAgIC8qDQo+ICsg
ICAgICogSW4tbG9vcCBjaHVua3Mgc3BhbiB3aG9sZSBQRFggZ3JvdXBzLCB3aGljaCBhcmUgYWx3
YXlzIHBhZ2Utc2l6ZQ0KPiArICAgICAqIGFsaWduZWQuIFRoZSBsYXN0IGNodW5rIGVuZGluZyBh
dCBtYXhfcGR4IG1heSBub3QgYmUsIHNvIHJvdW5kIHVwLg0KPiArICAgICAqLw0KPiArICAgIGNo
dW5rX3NpemUgPSBST1VORFVQKGNodW5rX3NpemUsIFBBR0VfU0laRSk7DQo+ICsNCj4gKyAgICAv
Kg0KPiArICAgICAqIFRyeSB0byBhbGlnbiB0aGUgYWxsb2NhdGlvbiB0byB0aGUgY29udGlndW91
cyBtYXBwaW5nIHNpemUgc28gdGhhdA0KPiArICAgICAqIG1hcF9wYWdlc190b194ZW4oKSBjYW4g
dXNlIHRoZSBjb250aWd1b3VzIGJpdC4NCj4gKyAgICAgKi8NCj4gKyAgICBwZm5fYWxpZ24gPSAo
KGNodW5rX3NpemUgPj0gTUIoMzIpKSA/IE1CKDMyKSA6IE1CKDIpKSA+PiBQQUdFX1NISUZUOw0K
PiArDQo+ICsgICAgYmFzZV9tZm4gPSBhbGxvY19ib290X3BhZ2VzKGNodW5rX3NpemUgPj4gUEFH
RV9TSElGVCwgcGZuX2FsaWduKTsNCj4gKw0KPiArICAgIC8qDQo+ICsgICAgICogUmVzb2x2ZSB0
aGUgZnJhbWV0YWJsZSBWQSB2aWEgbWZuX3RvX3BhZ2UocGR4X3RvX21mbiguLi4pKSByYXRoZXIN
Cj4gKyAgICAgKiB0aGFuIHBkeF90b19wYWdlKCkgYmVjYXVzZSB0aGUgZ2VuZXJpYyBwZHhfdG9f
cGFnZSgpIGRvZXMgbm90IHN1YnRyYWN0DQo+ICsgICAgICogZnJhbWV0YWJsZV9iYXNlX3BkeC4g
VGhlcmUncyBtb3JlIHdvcmsgdG8gYmUgZG9uZSB0byBtYWtlIGl0IGdlbmVyaWMsIHNvDQo+ICsg
ICAgICogZm9yIG5vdyByb3V0ZSB0aHJvdWdoIG1mbl90b19wYWdlKCksIHdoaWNoIG9uIEFybSBh
cHBsaWVzIHRoZQ0KPiArICAgICAqIGZyYW1ldGFibGVfYmFzZV9wZHggb2Zmc2V0IGFuZCB5aWVs
ZHMgdGhlIGNvcnJlY3QgVkEuDQo+ICsgICAgICovDQo+ICsgICAgcGcgPSBtZm5fdG9fcGFnZShw
ZHhfdG9fbWZuKHBkeF9zKSk7DQo+ICsgICAgcmMgPSBtYXBfcGFnZXNfdG9feGVuKCh1bnNpZ25l
ZCBsb25nKXBnLCBiYXNlX21mbiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2h1bmtf
c2l6ZSA+PiBQQUdFX1NISUZULA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBQQUdFX0hZ
UEVSVklTT1JfUlcgfCBfUEFHRV9CTE9DSyk7DQo+ICsgICAgaWYgKCByYyApDQo+ICsgICAgICAg
IHBhbmljKCJVbmFibGUgdG8gc2V0dXAgdGhlIGZyYW1ldGFibGUgbWFwcGluZ3NcbiIpOw0KPiAr
DQo+ICsgICAgbWVtc2V0KHBnLCAwLCBucl9wZHhzICogc2l6ZW9mKHN0cnVjdCBwYWdlX2luZm8p
KTsNCj4gKyAgICBtZW1zZXQocGcgKyBucl9wZHhzLCAtMSwNCj4gKyAgICAgICAgICAgY2h1bmtf
c2l6ZSAtIG5yX3BkeHMgKiBzaXplb2Yoc3RydWN0IHBhZ2VfaW5mbykpOw0KPiArfQ0KPiArDQo+
ICt2b2lkIF9faW5pdCBpbml0X2ZyYW1ldGFibGUocGFkZHJfdCByYW1fc3RhcnQpDQo+ICt7DQo+
ICsgICAgdW5zaWduZWQgaW50IHNpZHgsIG5pZHgsIG1heF9pZHg7DQo+IA0KPiAgICAgLyoNCj4g
ICAgICAqIFRoZSBzaXplIG9mIHBhZGRyX3Qgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIHRoZSBj
b21wbGV0ZSByYW5nZSBvZg0KPiBAQCAtMjYsMjQgKzYzLDQwIEBAIHZvaWQgX19pbml0IHNldHVw
X2ZyYW1ldGFibGVfbWFwcGluZ3MocGFkZHJfdCBwcywgcGFkZHJfdCBwZSkNCj4gICAgIEJVSUxE
X0JVR19PTigoc2l6ZW9mKHBhZGRyX3QpICogQklUU19QRVJfQllURSkgPCBQQUREUl9CSVRTKTsN
Cj4gICAgIEJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IHBhZ2VfaW5mbykgIT0gUEFHRV9JTkZP
X1NJWkUpOw0KPiANCj4gLSAgICBpZiAoIGZyYW1ldGFibGVfc2l6ZSA+IEZSQU1FVEFCTEVfU0la
RSApDQo+IC0gICAgICAgIHBhbmljKCJUaGUgZnJhbWV0YWJsZSBjYW5ub3QgY292ZXIgdGhlIHBo
eXNpY2FsIHJlZ2lvbiAlIyJQUklwYWRkciIgLSAlIyJQUklwYWRkciJcbiIsDQo+IC0gICAgICAg
ICAgICAgIHBzLCBwZSk7DQo+ICsgICAgLyogaW5pdF9mcmFtZXRhYmxlX2NodW5rKCkgYWxsb2Nh
dGlvbiBhbGlnbm1lbnQgYXNzdW1lcyA0S0IgZ3JhbnVsZSAqLw0KPiArICAgIEJVSUxEX0JVR19P
TihQQUdFX1NJWkUgIT0gU1pfNEspOw0KPiANCj4gLSAgICBmcmFtZXRhYmxlX2Jhc2VfcGR4ID0g
bWZuX3RvX3BkeChtYWRkcl90b19tZm4ocHMpKTsNCj4gLSAgICAvKiBSb3VuZCB1cCB0byAyTSBv
ciAzMk0gYm91bmRhcnksIGFzIGFwcHJvcHJpYXRlLiAqLw0KPiAtICAgIGZyYW1ldGFibGVfc2l6
ZSA9IFJPVU5EVVAoZnJhbWV0YWJsZV9zaXplLCBtYXBwaW5nX3NpemUpOw0KPiAtICAgIGJhc2Vf
bWZuID0gYWxsb2NfYm9vdF9wYWdlcyhmcmFtZXRhYmxlX3NpemUgPj4gUEFHRV9TSElGVCwgMzI8
PCgyMC0xMikpOw0KPiArICAgIC8qIEluLWxvb3AgY2h1bmtzIG11c3QgcHJvZHVjZSBwYWdlLWFs
aWduZWQgZnJhbWV0YWJsZSByZWdpb25zICovDQo+ICsgICAgQlVJTERfQlVHX09OKChQRFhfR1JP
VVBfQ09VTlQgKiBzaXplb2Yoc3RydWN0IHBhZ2VfaW5mbykpICUgUEFHRV9TSVpFKTsNCj4gDQo+
IC0gICAgcmMgPSBtYXBfcGFnZXNfdG9feGVuKEZSQU1FVEFCTEVfVklSVF9TVEFSVCwgYmFzZV9t
Zm4sDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1ldGFibGVfc2l6ZSA+PiBQQUdF
X1NISUZULA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICBQQUdFX0hZUEVSVklTT1JfUlcg
fCBfUEFHRV9CTE9DSyk7DQo+IC0gICAgaWYgKCByYyApDQo+IC0gICAgICAgIHBhbmljKCJVbmFi
bGUgdG8gc2V0dXAgdGhlIGZyYW1ldGFibGUgbWFwcGluZ3MuXG4iKTsNCj4gKyAgICBtYXhfaWR4
ID0gRElWX1JPVU5EX1VQKG1heF9wZHgsIFBEWF9HUk9VUF9DT1VOVCk7DQo+ICsgICAgZnJhbWV0
YWJsZV9iYXNlX3BkeCA9IG1mbl90b19wZHgobWFkZHJfdG9fbWZuKHJhbV9zdGFydCkpOw0KPiAr
DQo+ICsgICAgLyoNCj4gKyAgICAgKiBNYXBwaW5nIGFkZHJlc3MgaW4gaW5pdF9mcmFtZXRhYmxl
X2NodW5rIG11c3QgYmUgcGFnZS1hbGlnbmVkDQo+ICsgICAgICogZm9yIG1hcF9wYWdlc190b194
ZW4oKS4gQWxpZ25pbmcgdG8gUERYX0dST1VQX0NPVU5UIGd1YXJhbnRlZXMgdGhpcw0KPiArICAg
ICAqIGJlY2F1c2UgUERYX0dST1VQX0NPVU5UICogc2l6ZW9mKHBhZ2VfaW5mbykgaXMgYWx3YXlz
IGEgbXVsdGlwbGUgb2YNCj4gKyAgICAgKiBQQUdFX1NJWkUgYnkgY29uc3RydWN0aW9uLg0KPiAr
ICAgICAqLw0KPiArICAgIGZyYW1ldGFibGVfYmFzZV9wZHggPSBST1VORERPV04oZnJhbWV0YWJs
ZV9iYXNlX3BkeCwgUERYX0dST1VQX0NPVU5UKTsNCj4gKw0KPiArICAgIGlmICggKG1heF9wZHgg
LSBmcmFtZXRhYmxlX2Jhc2VfcGR4KSA+IEZSQU1FVEFCTEVfTlIgKQ0KPiArICAgICAgICBwYW5p
YygiRnJhbWV0YWJsZSB0b28gc21hbGxcbiIpOw0KPiArDQo+ICsgICAgZm9yICggc2lkeCA9IChm
cmFtZXRhYmxlX2Jhc2VfcGR4IC8gUERYX0dST1VQX0NPVU5UKTsgOyBzaWR4ID0gbmlkeCApDQo+
ICsgICAgew0KPiArICAgICAgICB1bnNpZ25lZCBpbnQgZWlkeDsNCj4gKw0KPiArICAgICAgICBl
aWR4ID0gZmluZF9uZXh0X3plcm9fYml0KHBkeF9ncm91cF92YWxpZCwgbWF4X2lkeCwgc2lkeCk7
DQo+ICsgICAgICAgIG5pZHggPSBmaW5kX25leHRfYml0KHBkeF9ncm91cF92YWxpZCwgbWF4X2lk
eCwgZWlkeCk7DQo+ICsNCj4gKyAgICAgICAgaWYgKCBuaWR4ID49IG1heF9pZHggKQ0KPiArICAg
ICAgICAgICAgYnJlYWs7DQo+ICsNCj4gKyAgICAgICAgaW5pdF9mcmFtZXRhYmxlX2NodW5rKHNp
ZHggKiBQRFhfR1JPVVBfQ09VTlQsIGVpZHggKiBQRFhfR1JPVVBfQ09VTlQpOw0KPiArICAgIH0N
Cj4gDQo+IC0gICAgbWVtc2V0KCZmcmFtZV90YWJsZVswXSwgMCwgbnJfcGR4cyAqIHNpemVvZihz
dHJ1Y3QgcGFnZV9pbmZvKSk7DQo+IC0gICAgbWVtc2V0KCZmcmFtZV90YWJsZVtucl9wZHhzXSwg
LTEsDQo+IC0gICAgICAgICAgIGZyYW1ldGFibGVfc2l6ZSAtIChucl9wZHhzICogc2l6ZW9mKHN0
cnVjdCBwYWdlX2luZm8pKSk7DQo+ICsgICAgaW5pdF9mcmFtZXRhYmxlX2NodW5rKHNpZHggKiBQ
RFhfR1JPVVBfQ09VTlQsIG1heF9wZHgpOw0KPiB9DQoNCg0KQXBhcnQgZnJvbSB0aGF0IHRoZSBy
ZXN0IGxvb2tzIG9rIHRvIG1lLiBJ4oCZdmUgYWxzbyB0ZXN0ZWQgZm9yIEFybTY0IE1NVS9NUFUg
YW5kIEFybTMyIE1NVS4NCg0KUmV2aWV3ZWQtYnk6IEx1Y2EgRmFuY2VsbHUgPGx1Y2EuZmFuY2Vs
bHVAYXJtLmNvbT4NClRlc3RlZC1ieTogTHVjYSBGYW5jZWxsdSA8bHVjYS5mYW5jZWxsdUBhcm0u
Y29tPg0KDQpDaGVlcnMsDQpMdWNhDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed May 06 14:53:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 14:53:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301841.1576002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKdcd-0007Rp-Q0; Wed, 06 May 2026 14:53:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301841.1576002; Wed, 06 May 2026 14:53:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKdcd-0007Ri-LS; Wed, 06 May 2026 14:53:11 +0000
Received: by outflank-mailman (input) for mailman id 1301841;
 Wed, 06 May 2026 14:53:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKdcc-0007Rb-Bf
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 14:53:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKdcb-009zh5-On
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 16:53:09 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb55ba-2eae-0a2a0a5409dd-0a2a4507e240-38
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 16:53:09 +0200
Received: from [209.85.208.42] (helo=mail-ed1-f42.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb55d5-229c-0a2a45070019-d155d02ac10e-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 16:53:09 +0200
Received: by mail-ed1-f42.google.com with SMTP id
 4fb4d7f45d1cf-66b2d49ffb0so8905752a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 07:53:09 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc55f513fb1sm90320666b.59.2026.05.06.07.53.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 07:53:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778079189; x=1778683989; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=O8eCso9JF5h9nnziTzZhX3HW4IUp9A3EoU1q779h1Qs=;
        b=WSRjnhNntorNHDZayMTc5qkzQmlzvValy5WIp+absPB94hDKp9DIvbENnfTSq4LBpC
         JcSS1GyukmrJ5R4ovOZuxsSyj+VfAQWc89M43JjAOImVXrN8wMbT0z63LcqwbAId6cc9
         VTrlxl1RZMLxb+TqS7w0Lh1jsd8PAvxq5m7XIyh2IoLBVbD7dYGKcy0OagX2tT51ns6q
         0ajs1rxwre6Mq/AANivT69kTdEajB5qq+JD9dZpY2hc+Nct+/S5oMVY83HIOHTmPLkrE
         +LjEuJE34Q/71Wc0z71KHtU06fsx+2yKZ1UpMPK2y10qjeJ+Kf++gEBEkTyA8kp0Dgj7
         KkRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778079189; x=1778683989;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=O8eCso9JF5h9nnziTzZhX3HW4IUp9A3EoU1q779h1Qs=;
        b=U+eKCkvGhestu+pYFeHJm5IHcbeeYNzYLgtgFRl9gxyg19UaYtqEPYxVxiFa6MN58B
         sjsdQLXo+qz5Zbn6bcyR4jLDcyOyhjbgJ2MyPoLTfJfCn8ldnkiWtnnJoLY9ltTrtFLd
         v4YTdsuGpDfXcPKvs3mOTCvDlO8KUTiP7Hsjic/qLALfqG7OGe4/3bAosuJXASni43J/
         WRhIcwyjbr40Ptfl7eArF6RQB9fP71qujPtt31iomkV3Ftr7+2pq0eRgeLpG9/WEpykh
         q+oK23WYMtm+rVazUqPrvMYo7i6nHXdsq4gfQ0VIaq87Soch+tpCWKk3TpmsZPisdTa1
         +8aQ==
X-Forwarded-Encrypted: i=1; AFNElJ8dRKhFse83vTMZ54k7QFUsVzwpFT9c2gKCdWZ6upD9FjjoPGm8u37l0KimDj09QFrOE80/YsdUv50=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxwtk55M9FuaQqMoUYRvmjGx/i96Wv3hTnOG4IIgN9QMj+QPUQQ
	VETqjzQ2Mjmyn65v88WkzE3vDNQrd1CoxsUMS06L1ZHAEDKN0HynS0Ab
X-Gm-Gg: AeBDievDPuo8Rt1K7hvy+m7LZJAXgUTRW0TetDFcq8KaUoMQrcb5H5KED+qrIT+GJC1
	9CzJkzoJnLyClkgll/OdkKUyxX/gwqZeSuyTZaqgYA+m+XJkQSybpXOy1hfPr4V+l0RyFede1sP
	hdrUSWQy/7PTW2Plm3nzL/u0hGRmzBZERv2iFM+yuuBZoYpdWAOi1HzMWZ5V8LWu4wPeFKmRI1/
	vLS/hOB25R18lZf+TgN76tY7p9Wsl7hAapTgNhEyVUYNxhSiE+JbsxKRYt7hA2Ma/p+GhEHV6S7
	PIYKHGwr+6JWZ0W/de7ZHcDpwwOf3Z+dYnWCsO5RqXM5psJ1bbDN1wTfAkyaZhgy0lXB6/IBUAW
	yqMl1JCUKML9el5TJqw0CTgOCHvlBKRKt8sw8W4V288fjqyZnysn5AgcfO9+Gui+fTUGWl6scpA
	mQ7/L5J+Q3ikhuuRxC4ZhtpkH9oAjQhypgnghXzHg62tG0w96GxnFOwDnmwmytivlnOVGsn9Ah9
	RNqMvhvcNvWdQ==
X-Received: by 2002:a17:907:709:b0:bb7:beb9:b6d5 with SMTP id a640c23a62f3a-bc56da16349mr234983766b.39.1778079189084;
        Wed, 06 May 2026 07:53:09 -0700 (PDT)
Message-ID: <082f5c79-0cf9-4eef-b80c-e5e9b594576d@gmail.com>
Date: Wed, 6 May 2026 16:53:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/11] xen/riscv: add Linux kernel loading support
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <af89f0b696c5a1ae477dc0903a9a99b84df26f7a.1777303844.git.oleksii.kurochko@gmail.com>
 <f61ddc8f-88a6-4f61-a470-c9c82b8b9b52@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f61ddc8f-88a6-4f61-a470-c9c82b8b9b52@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778079189-23175C48-A1A24B29/10/73395122804
X-purgate-type: spam
X-purgate-size: 1190



On 5/4/26 4:05 PM, Jan Beulich wrote:
>> --- a/xen/include/xen/fdt-kernel.h
>> +++ b/xen/include/xen/fdt-kernel.h
>> @@ -59,8 +59,15 @@ struct kernel_info {
>>           struct {
>>               paddr_t kernel_addr;
>>               paddr_t len;
>> -#if defined(CONFIG_ARM_64) || defined(CONFIG_RISCV_64)
>> -            paddr_t text_offset; /* 64-bit Image only */
>> +#if defined(CONFIG_ARM_64) || defined(CONFIG_RISCV)
>> +            /*
>> +             * ARM: 64-bit Image only.
>> +             * RISC-V: both 32-bit and 64-bit Images.
>> +             */
>> +            paddr_t text_offset;
>> +#endif
>> +#if defined(CONFIG_RISCV)
>> +            uint64_t image_size; /* Effective size of Image */
> As this (apparently) is for both RV64 and RV32 - can the latter really have
> wider than 32-bit image sizes? If not - use size_t or unsigned long here?

It seems like we want to have uint64_t as it is explicitly mentioned in 
image header:

https://elixir.bootlin.com/linux/v7.0.1/source/arch/riscv/include/asm/image.h#L57

and also it is used .dword here:

https://elixir.bootlin.com/linux/v7.0.1/source/arch/riscv/kernel/head.S#L55

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed May 06 15:00:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 15:00:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301852.1576009 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKdje-0000oP-Ew; Wed, 06 May 2026 15:00:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301852.1576009; Wed, 06 May 2026 15:00:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKdje-0000oI-Bk; Wed, 06 May 2026 15:00:26 +0000
Received: by outflank-mailman (input) for mailman id 1301852;
 Wed, 06 May 2026 15:00:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKdjd-0000oA-D6
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 15:00:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKdjc-00GYbg-Oz
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 17:00:24 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb5788-e002-0a2a0a5209dd-0a2a450197f0-6
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 17:00:24 +0200
Received: from [209.85.221.53] (helo=mail-wr1-f53.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fb5788-c1f2-0a2a45010019-d155dd35b926-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 17:00:24 +0200
Received: by mail-wr1-f53.google.com with SMTP id
 ffacd0b85a97d-44a786a9a35so3662401f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 08:00:24 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45052a48911sm13234951f8f.11.2026.05.06.08.00.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 08:00:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778079624; x=1778684424; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=M2mmaK+5EUY8ZWipcER9DHX7oC7K8KIAvuhUR49K5wg=;
        b=DBXMYCT5eLFYdVPMOpbT0yssfZQ4XoPhV4vFwznuPzvhFaeKQGwGw2NqZa3QhkuI9W
         hlC+oLblmgqMN1FtRGub7GZamM2ZXs3k/ZC4LMSo0PabQF73qIqwcx9UUTGA+K/h0WIw
         7EZqWdHInp1CYqmDp0Jve3wQE7N1qX+X3LRQH8i8Q95kAhfhJC3xEjWtTJTb5BJutd31
         4KZIMa040QXuCBxE+vG6QSUV2YGWsiqsYDNotlw4FHS93hck3GPWfDHLKxNFDLfmhlKA
         oIN3dQS22IiYtcAwNXmLxV0HEAYHfddqmI5UxF36/WhkZ8Rq8xLHOzHp34YO/ZTSLIEe
         Bbqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778079624; x=1778684424;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=M2mmaK+5EUY8ZWipcER9DHX7oC7K8KIAvuhUR49K5wg=;
        b=amjUES9llpSjKcSNOB7YiU1xXI94npdXeCQA7qaOR5qBDSypWtNQlqrIw6JCidqOGf
         Yx96WW/JIQLpYwBu2QTxKQ+XGTd4ZL+s99qURHVYK+1aE5S0VVHc0wwZdmsLWtUbgAKv
         qDbGCiteimYcYR4w8Z9c6jLZXUWrh9MH8j2am0F1Pt2ALFuqmnouYZAgX6LHTQX6xtfd
         H+OztNbLC8HhoB4YMDVIq0s8ZdrFJHtmjAyxb5TBjtJwfTugb0AHFG1YKTNuvXVtfI4b
         Z5YozBDfN3LJfkujYCTcGoXI9q5V8ANv5Zj/jJxeJ2ZTgUUs69V3HLdkhP1UgVNTBmml
         riWw==
X-Forwarded-Encrypted: i=1; AFNElJ9Sq0N9r5EYJUIDAuEXCk2DUxKDGJd0hGUxjk3Y1pPW3Ncp+oAe3HpaqWhnWu4pmShawxPdUI8IYrU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzGwzUGLyXeD8DP0i+k8fCQs/BxYtLg2bkbCvIXu1Fs6dQbYnag
	2ZDONPLxqfxT9lLT6LJORU0xptRP0g0dsQYGfjeUOI+p1K8oj/CSxumZURXuPpW/+w==
X-Gm-Gg: AeBDietKlSaIvD/+wT1ZsNCmBVLt/tmDZVND+C4k0GZ+qFGVXzeynPvSI/aPQZ/8TH9
	2B5y3w1EAMzB/q5Y5moggEz/O/6CyQsCexlQnn6dMH25Nnc7A9JX0R1r6rO2CsglSrRvkhvcpB5
	wQ74TPQPlfHoP2vsSqPObEug1mPpcTrSqvif8RjfJneN170oaiP/muyVBqzt86e7GXdDRaG5lu6
	EuO5X0kI/YpEY0lb2veVXieR0acW9lwjaEPWnYL80CsSSfJG+WB5+kNP7pm4EaWjGrwLZtZAS0v
	rQySTnXgJc9te6n7MpueqOYxZygcsPhxvSq0ahWWSr8Fve30uf3T+JB2i1UTd59k43IZRJbPL+S
	Rmf6tz+GQ3RdPIcYm6d2jioDsMlRrnhhwaxrE6p5Gjsa/UeGKijT1c0KwcvYJZSIuDjtxedrDFH
	/7JOHZgbG8REojVNd6DaFrtr/v2UTedcStdSq4+o/bPT9/1fQLb2+0il/YOaA6qSJHtc+T2PLIJ
	rOo2HGFiyen8JVfXOm0W2b8+12CUUSfiq06
X-Received: by 2002:a05:6000:40c7:b0:44f:b57a:1cc3 with SMTP id ffacd0b85a97d-4515ce1c56amr6762667f8f.28.1778079623814;
        Wed, 06 May 2026 08:00:23 -0700 (PDT)
Message-ID: <70979a5b-e66f-45f9-8557-eecd7113d7b7@suse.com>
Date: Wed, 6 May 2026 17:00:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/11] xen/riscv: add Linux kernel loading support
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <af89f0b696c5a1ae477dc0903a9a99b84df26f7a.1777303844.git.oleksii.kurochko@gmail.com>
 <f61ddc8f-88a6-4f61-a470-c9c82b8b9b52@suse.com>
 <082f5c79-0cf9-4eef-b80c-e5e9b594576d@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <082f5c79-0cf9-4eef-b80c-e5e9b594576d@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1778079624-B6342FF4-290BCCCC/0/0
X-purgate-type: clean
X-purgate-size: 1640

On 06.05.2026 16:53, Oleksii Kurochko wrote:
> 
> 
> On 5/4/26 4:05 PM, Jan Beulich wrote:
>>> --- a/xen/include/xen/fdt-kernel.h
>>> +++ b/xen/include/xen/fdt-kernel.h
>>> @@ -59,8 +59,15 @@ struct kernel_info {
>>>           struct {
>>>               paddr_t kernel_addr;
>>>               paddr_t len;
>>> -#if defined(CONFIG_ARM_64) || defined(CONFIG_RISCV_64)
>>> -            paddr_t text_offset; /* 64-bit Image only */
>>> +#if defined(CONFIG_ARM_64) || defined(CONFIG_RISCV)
>>> +            /*
>>> +             * ARM: 64-bit Image only.
>>> +             * RISC-V: both 32-bit and 64-bit Images.
>>> +             */
>>> +            paddr_t text_offset;
>>> +#endif
>>> +#if defined(CONFIG_RISCV)
>>> +            uint64_t image_size; /* Effective size of Image */
>> As this (apparently) is for both RV64 and RV32 - can the latter really have
>> wider than 32-bit image sizes? If not - use size_t or unsigned long here?
> 
> It seems like we want to have uint64_t as it is explicitly mentioned in 
> image header:
> 
> https://elixir.bootlin.com/linux/v7.0.1/source/arch/riscv/include/asm/image.h#L57
> 
> and also it is used .dword here:
> 
> https://elixir.bootlin.com/linux/v7.0.1/source/arch/riscv/kernel/head.S#L55

Well. The image header having a 64-bit wide field still raises the
question how the value being wider than 32 bits would work on RV32. IOW
for Xen internal purposes I expect unsigned long or size_t would be more
appropriate. When that value is taken from the image header and copied
into the internal struct, it would need checking for absence of
truncation.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 06 15:48:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 15:48:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301889.1576023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKeTh-000760-0w; Wed, 06 May 2026 15:48:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301889.1576023; Wed, 06 May 2026 15:48:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKeTg-00075t-UM; Wed, 06 May 2026 15:48:00 +0000
Received: by outflank-mailman (input) for mailman id 1301889;
 Wed, 06 May 2026 15:48:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKeTg-00075n-6n
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 15:48:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKeTf-00GgA7-JA
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 17:47:59 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb628a-5cb7-0a2a0a5109dd-0a2a450ba252-48
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 17:47:59 +0200
Received: from [209.85.218.51] (helo=mail-ej1-f51.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fb62af-212f-0a2a450b0019-d155da33b033-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 17:47:59 +0200
Received: by mail-ej1-f51.google.com with SMTP id
 a640c23a62f3a-b8f97c626aaso1189565266b.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 08:47:59 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc55b17c3ffsm101415666b.5.2026.05.06.08.47.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 May 2026 08:47:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778082479; x=1778687279; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=4T7fBhpUx2mX2L4yrPQgfNyWNZHFLrMB/cP4Co3eXXQ=;
        b=H2bX31lWugAV4hv03nDYV2XF0p+T3fzjTYbbIL3sdlHLP8XOdw+s5GxTa242VMZZxz
         Mp2sgSrv2acXHz90fVcm1mxScTVpzN2efSk/nTDIuNGrv8g1UmCAZpolCcfHBJ2DHTV4
         0ZIwQtSRnj7XYYSJe3+NTFkvgmBTm6gBBYZS8GvlLYWcmClDFS2oNK/vWyo7JIZMBUO3
         RGi8b9BGwsNVusCEsx17axpPGM3LtfxWLmt5gJcq/Bc7hmyR/a2idjxuFdqjrpoNhkMx
         2mx4HMuXAazHPMi77F2w4LhGhHyq/O8FSzOUH5CZzuoJ3fALIz//lA+T8sfXAElqfQ4f
         U/bQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778082479; x=1778687279;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=4T7fBhpUx2mX2L4yrPQgfNyWNZHFLrMB/cP4Co3eXXQ=;
        b=Y2J6YrqO1Rnnx0H/xo5lHkZ9ivRHsS8Kmxx6IhngnTfoaH7X/cYJ2RGDrQ8CREmIPu
         Gm+ypAyL25Qxk3gCuTna7jB4hrkah3fHxMso1x/4uK3Cnxc9rWu27J0Q52xbajXckkC3
         O7jTUCaAzKHWdB3sMV+lfAWRVrvNvdL4Xa4M/++f4nfmkEozmwuEyC9f8vDmWcRzyOGU
         8wK/iMb/K3lXPsbChYFM0/B/bJgKQssFA9cOGWGsF43zT0oTwsNeBMpvCCKVvkyoWxXe
         5YAaLp5kfckktPc4SYQ86neJubMTpEp6y8n91Wp+NJiX8TbANaJRkHPKMdo9YCe9wFOq
         5Sdw==
X-Forwarded-Encrypted: i=1; AFNElJ/ziHj7MWrXw7nl5thqeR/39KgecVZdT+uSCSv6brCREGKjeyxUIhorJOM1+IMgDM0jBkDkZaPY4Zc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxw2uW/bZOXYtt7DNGFnbuhei4MHcRO5ImsJeGwI0G7MeXetdoe
	UuH4tF+ORBnymv01qiFQYI9iqxijpmrRSFjylyznBKlbql2ObP/P/tCb
X-Gm-Gg: AeBDiet9N4DCZXmH9g168w2QTI23fcvzU0NuC1+7vN/lGc9tGOB496xg2QXPRex+kd6
	ji3D3blSI8iI46JlsI1s6jR1xPPKdqT0xKie2L1sT4UL6I27cjARQ+aeR1CQRckQ1Gr/EZcYbw1
	MsVusXwsWInQ0RKqLYtS0wulKkVYdlLwQdsENRwV3AQLLsULAXWMVEY8Hd/xkOhuF5VGab4MHLG
	f/xw0DSk82UbOkQuR+YOq7oVXGqQpmU23l3vsUBgXY9gAMuBhLwwMuh4IXW2T0/zXudKM8LiFyw
	sjy/GP0RnV6R1WHmdghiejfR7OFy5TSXSfAbuZ0gbUWb+/mGB9wzxj5+VdiazClKAhim9G/Tt56
	qbbUOlzS0BhbcEm04uGZSCxeS/bb1477PHCLdV+rs9ciM8+Ts9HhjQWBNlnt3eHcoKKedETFs+8
	hmME9vbv1lP40CGy8X2S3eGL5THQX8YRXn3RstJ8zY44Xq7osaU7YbPfzfX/XMXdYYqPX23Dtzc
	LQd6IRtov+w0XnSQ3ucH4MJ
X-Received: by 2002:a17:907:c11:b0:ba7:cc67:488b with SMTP id a640c23a62f3a-bc56be407f3mr232678966b.5.1778082478706;
        Wed, 06 May 2026 08:47:58 -0700 (PDT)
Message-ID: <764aac8e-b200-410e-99a2-cab65a274ef4@gmail.com>
Date: Wed, 6 May 2026 17:47:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/11] xen: introduce domain-layout.h with common
 domain_use_host_layout()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <2577e757d32f85fb8b3308863e6d7a53d70636dc.1777303844.git.oleksii.kurochko@gmail.com>
 <80f67b9a-2b42-409f-90d8-587a07d57d26@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <80f67b9a-2b42-409f-90d8-587a07d57d26@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1778082479-20678F3B-CA0D74CC/10/73395122804
X-purgate-type: spam
X-purgate-size: 2169



On 5/4/26 2:59 PM, Jan Beulich wrote:
> On 28.04.2026 16:33, Oleksii Kurochko wrote:
>> domain_use_host_layout() is not architecture-specific and may be needed
>> on x86 [1]. Replace the ARM-specific macro in asm/domain.h with a common
>> static inline in a new dedicated header, xen/domain-layout.h.
>>
>> xen/domain.h would be the natural home, but placing it there would
>> require including xen/paging.h (for paging_mode_translate()) and
>> xen/sched.h (for is_hardware_domain()), which would introduce circular
>> dependencies. A separate header that callers opt into avoids this.
>>
>> Adjust the implementation to take paging_mode_translate() into account
>> so it works correctly for all architectures, including x86. Some extra
>> details about implementation [2] and [3].
>>
>> [1] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602161038120.359097@ubuntu-linux-20-04-desktop/
>> [2] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602271742400.3148344@ubuntu-linux-20-04-desktop/
>> [3] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602271750190.3148344@ubuntu-linux-20-04-desktop/
>>
>> Suggested-by: Stefano Stabellini <sstabellini@kernel.org>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> With the SPDX tag added as indicated by Luca:
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

> 
> One further minor remark:
> 
>> --- /dev/null
>> +++ b/xen/include/xen/domain-layout.h
>> @@ -0,0 +1,27 @@
>> +#ifndef __XEN_DOMAIN_LAYOUT_H__
>> +#define __XEN_DOMAIN_LAYOUT_H__
>> +
>> +#include <xen/domain.h>
> 
> This isn't really needed. It is ...
> 
>> +#include <xen/paging.h>
>> +#include <xen/sched.h>
> 
> ... included by this one anyway (pretty much unavoidably right now, I
> guess).

Then it will be needed to re-order them.

Do you want to put the comment above xen/sched.h:

/*
  * Ensure xen/sched.h is included before xen/paging.h, since paging.h 
depends
  * on xen/domain.h, which is pulled in via sched.h.
  */
#include <xen/sched.h>
#include <xen/paging.h>

or just add this to commit message instead?

~ Oleksii

> 
> Jan



From xen-devel-bounces@lists.xenproject.org Wed May 06 16:19:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 16:19:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301913.1576031 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKexX-0003a7-AC; Wed, 06 May 2026 16:18:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301913.1576031; Wed, 06 May 2026 16:18:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKexX-0003a0-7V; Wed, 06 May 2026 16:18:51 +0000
Received: by outflank-mailman (input) for mailman id 1301913;
 Wed, 06 May 2026 16:18:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wKexV-0003Zt-SC
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 16:18:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKexV-00AEYn-91
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 18:18:49 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fb69da-5cb7-0a2a0a5109dd-0a2a4503cf76-24
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 18:18:49 +0200
Received: from [52.101.85.69]
 (helo=BYAPR05CU005.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fb69e6-672d-0a2a45030019-34655545f4da-4
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 18:18:48 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV9PR03MB8437.namprd03.prod.outlook.com (2603:10b6:408:375::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Wed, 6 May
 2026 16:18:44 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 16:18:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zAjHb9zedqqt2duLTTiiHzfNx6x8c8uBYj8/O0MtLQDnHf1uNLt2ratVDVU+F/eCA83GfwSbiGVQgi3EhyNMXYI9ClOXL6NMfomb4Nf1lxpMSYhLc4ww0tfk54nz9rJg0qFMEfD7REopCr2E2iX332BCtrT1d9DHKzn5B953bM+Ms4xoUC9QQIPkOvbS3GDqmk83RUIAGNUCNk9iGLITuaV5vZINLipG3ziLmHQmw56G4HYmARqkdmP8UwffNDiYCRec9lk9SOYW1HK1j4nGiRMizHbHzmciIa+doL2RWe/i662HCPlW279eEOs7VRLB/vv+we2+gnxI1yCObn25eQ==
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=t6j8AaLsuLmDxHw7LsfCS+KnZKihxmmrdw4+EIumcCk=;
 b=t27v6U97BFmkvBv7D2RYWEj9QHrPkdp466+9FNxDPYpQ97eo0Lf7QkM9lp7xukc3rUohqpXzO479jIPcl357SXqrl78e7qAV0qjArSOvTl5S1n8qAX/gAh3oyrPT/T3Cn5Bz3QOpFvxKxzg7rJbMsrG4ZX7h4NFDNx7rgXBt/8PIjh0Gwy+SN7A2f+coK1NqQSRb3FCvvGHEz7UFzfN4GkQgiQ3HE2TdqhiCZlcUWgkjNXKRRO0KPreN1WXl9JjufRTUMK/CArCf3n8A5yK+esAuVDLfr0GLQ5E6/rkOrXrPlF5HZotiITHhMMF8A06bcAbb8oIQt9V+rNNuN0pnPA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=t6j8AaLsuLmDxHw7LsfCS+KnZKihxmmrdw4+EIumcCk=;
 b=cPWDANbQhwnKfNsG/LgP03iAOONmWzKZ9e/jbariFsxeD1PwDVF8vnuiqPGJv5SyPsz2wzIrNzd55L1yca4oEF1yxPB9rUVq1ykrB0M2WEDn9aEoPCNExD5u+JjmtC4ZRmobHiNIKvoWFHl+hxq6eOFcbBo7SDW8VHA6KPS8pDo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <5531fe94-6200-4f7c-9c22-e09189438e9c@citrix.com>
Date: Wed, 6 May 2026 17:18:40 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260506135514.47310-1-roger.pau@citrix.com>
 <20260506135514.47310-3-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20260506135514.47310-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR1P264CA0036.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:19f::23) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|LV9PR03MB8437:EE_
X-MS-Office365-Filtering-Correlation-Id: b94d1113-8d39-4287-e52e-08deab8b24c7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	bx1p6fNhhEWJPt3S9nhiJ3Cdkc5T/KFFAXKTitGvFn8JNonJmtvMMWAAtpB+hhpwzmh5FsEsHxTkha4ngpNkDU0pgIZdEvBEK/ovSWF5YOE7BHy+6oaN7mhTyq6DD8SGkatJoAxz6SrlJ/xGtUIL1atkwijhgHcZjKw725tm0mfLUZI5v+cchIGrjMYN5wG4cJncH7qNY33InxorYRi9n01pGq1ygihlwXrW826sLIg0B/bXMtDT45e/ZMyhEwo8nERu5QapCshSp8deZ+H5gYpm0iAoZ3EM3LMVfUnhznEZzE8/ec0vvCFxNh9tgieGgHlhe7hqgOjEqMlhFrTb5lqc80forO0ufFFNCRtK9trlbffp2xgNlm28EbMVQHArM79cFF3zbh8MIrx3wNZJ0goHZkwJZC+qi2kHUAB5lFRjERE5Lp3DnlEa5173HfNuX73eMedQ6w4lvyX5rWQkTSF/LOz4Ow4X4xLhobRicfvJrJiygjO9eIKCY+ffNzJ8oyvQ9EYR0MkBGPZkm6i2oaNoONBaD4r4Zqzw8aDdDDxMYKKf+OGCYybyQ9qRdLqASYADT41xBrVj2GUzTP/YJpLoorLPJaGwiHrJ4rqLJ+1Ztk28qd7va9J1wK4Mk7b+he4ryD2Z0h4rg+XmyLRiuAxLIZP2aIPFqI36kKgFFN42txtdc/3d22sOo2krsm94
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YnB0L0RrNEZKTDlOaDk0eE9wSDF1WFA4M1hmMGpIOHVqTXFIWXhGeUZvWUJC?=
 =?utf-8?B?WE9wSksyak1nL1BkSkhBb2RCMmN4YlkrSnZtT0gvWlh5d0xiY0Jjb0hpYkhL?=
 =?utf-8?B?OHBQOTg3aFVjMStOSlBSWE5mdWZwNm1zanFhS3hxdUkzcmFDVGYraUJNLzhO?=
 =?utf-8?B?YTlXWHpVRTdjeTZ0ck4wWU00RkhaZVJwVU9tNVNQZWUzSWZ4MHlYQVo0NExu?=
 =?utf-8?B?ME5remlCZkp3eUhZaU5EMlRLbldQdnNLSktWVXBoVUNHNG9ZSnpDeXlTK0dh?=
 =?utf-8?B?MFBjRUJJVEd0K1NweGI3L0ZDaVczZ000dXczUWhZWlhOc2RjWU1QdHJqNk5l?=
 =?utf-8?B?RXpPMkd4VEI3ZllkQmJETkg2WkhtOS9QRTU2Q05mK3FPR3pweEljNDIwL2Zk?=
 =?utf-8?B?cEhsSjAxN0t1a2tJYm5NaWpLQ2VESlRSR3U2QmNUaVoyNStkdk5qVWNoUmdV?=
 =?utf-8?B?NkFxQWVZc1cxc0tsajJ6dVdBcEZyY3ZhRDBmMFlya1hLbVdiZjhGRG5yak0v?=
 =?utf-8?B?UUhZTTRIRmY3RHZzM05rMExkdXNIaHNQODI0ajhNc0VjNmZ0bnBldHZtTVBW?=
 =?utf-8?B?bXVkRnlHazNqVkoyVnpvYnJVQWNoa3hMUGtTTmtDZGhINy96THIyMlhOMW1L?=
 =?utf-8?B?WEY3UzhKSFJ4OGxKNC9ibFhZaEVDL2dRS21lTWRoSGRmbFkxbHMwZzVFQzNU?=
 =?utf-8?B?TE9wY240dWZqNTByN3V0RzdCZ0FtaE9MVnhtZ1BWQzNZQmNTeGtHNFR6V0ZV?=
 =?utf-8?B?K1dzSkVpTUF0WldnUmtCTE16dmhpUnFmQm1xMDAwQjVQMEttM3VSVURqeFcr?=
 =?utf-8?B?eUtIMG93eDV5UUVITXZJcFhtdkoyQ01KU0VKdFJnSU9yZjZNQWZ4aWFXWUh3?=
 =?utf-8?B?Wjd1bi9oQ3Z3V05Ic3l2UVRSL2pwSW9xTHc2YVBhaDZtL2MxOVlrR2xOd3hF?=
 =?utf-8?B?anBkVzFmWlY5TXBmcUpKSDFHN0pmYUlST2hFeXJRYWtSNGVaUVFTbEgvTVlm?=
 =?utf-8?B?dTRwNFVVYmFXZkdiRTJOMzlrK2xhM0RNK24rUXlKeURxUzdnTTlOekNUc2Nm?=
 =?utf-8?B?OVp5a0hJTWNIY1Q1VEp3MzY0K2lqR2RTRVV0N2RqL2Y3NHVpcENyQ0JVUkw5?=
 =?utf-8?B?YWY3UXpoTTBra3NrVGpEbGEyNlVZdk55elc4VytKQTZHYWxnZ0dKbmZwRURw?=
 =?utf-8?B?VjZrcW95V24yOThvQlBXb0tub3NVR2h1TGFrL1VhU21ZUzB4TnhEU3ZadG94?=
 =?utf-8?B?bFVGRmxtejErTFZLNkdlcGp0eU9XRjhSV3M4dld6LzZrQVVyczNSMkZWTHIy?=
 =?utf-8?B?M0Y1OG04R1QyM0tRWHM2eEU5eWs3RVR1ckFZcktQNThQdEpVa0JZemlFaURG?=
 =?utf-8?B?QzM1bDkrckorU1gzOUZsQkJqRlhLNlNyTXBFelZrQSsraFprU3Z2aExxQlpG?=
 =?utf-8?B?c05LYk1zN1VHZ1ROczNVMHV6Q2pMR1NtNXBmYzZSOXl6alk0TUVyN2dVSkFm?=
 =?utf-8?B?K29NemlaeHlLK0psMnp3Q2YzNzBJWkhJSnJtZDhaMThPVHd4eU9BakVmNXhq?=
 =?utf-8?B?OURsbU1vUVJGL0c4MTFvL2E3eEFsYlVQNDZZRkJXNjhxaWltRmppbVUrWURa?=
 =?utf-8?B?bFRsRFpTdEtrd0o2bnRLYXVSNm9ybDNzQmZORDV5TlFaQWZ1bDBpYkRaVVZv?=
 =?utf-8?B?TllzYncva2hiUHFLMDd5QjI2UmRBbVRoa25RdGxMb2U5aThMWWRiTUY2eldN?=
 =?utf-8?B?RXMvVHhxT1R2TTZjWUhCWThKS09nN2hBcWFET0V0K2s0VVdpUEtWb3dnNkhW?=
 =?utf-8?B?UmJ3VzIxS3lZQVI2SnI4cGw3WUt4ZUhoNlVReTE5b21NYk9DNlhoZHhoeUJw?=
 =?utf-8?B?R2lPMG5ieUdSRGhPRVhQeDlnK1B2Z05GVnFMQnlSK012SGR3Q1JJbHFXeWw1?=
 =?utf-8?B?VGN3RGRkWXN6NzBlVXBuTGtYZ3RIL1dNUHM3aEdqay9rSXJrdWN4UWxOeHVM?=
 =?utf-8?B?NmtkMjdmRk1VT3ZFZDVFREdRNUZOaSt3N3ZPWW9oKzVoMVhhcCs5NXJNVmdx?=
 =?utf-8?B?SFpkS0wzWEVPT05MeHpwd1o2RktCU2dkV0pKUk5mTjZrbk03eXFWTGM3TG9w?=
 =?utf-8?B?bVlWRHhaNUp1SnJHMkJ0emM5ZXF2Z2UvYURnU0oxYktPYzd2dnBtZENINy9C?=
 =?utf-8?B?SDVxaS8zSjBQT0d6cXRLMkJFVmV0TXNxV0lBczZ6eEFKWnNrMEZ0UzdmcEtZ?=
 =?utf-8?B?Z01GTjh1M2FaM21IMENHdC9iMnF2cVhtRzMvVVZhU1FOSVc1UDZJVktyTGZE?=
 =?utf-8?B?aDVML2ovSUtZMXl4MEZ6VU9LUDZlMnlUVU83US9HcUo0QWhGV1pWOVNZbUZH?=
 =?utf-8?Q?mzCda/YDQe5jotZQ=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b94d1113-8d39-4287-e52e-08deab8b24c7
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 16:18:44.0213
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: jiSJlBPhK+Z4R6WGZOlAdk6USRs0YsvItrYb5pjUDCQDkmR2uswEHJh9P+RoRdPX2U9YwgJ99hshZnTFuOb7Suy7+kCr65/SvqJqJanOQCg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR03MB8437
X-purgate-ID: tlsNG-33051d/1778084329-4279C938-E36EA754/0/0
X-purgate-type: clean
X-purgate-size: 5150

On 06/05/2026 2:55 pm, Roger Pau Monne wrote:
> Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
> say the least.  We don't know what registers might be there, nor which

Sorry, one more.  "We don't know which registers might".

> values might be safe for those registers.  On a forthcoming platform doing
> the zeroing of the MMIO region does put the IOMMU in a broken state, which
> is not recoverable by the IOMMU initialization procedure in Xen.
>
> Instead attempt to forcefully disable the IOMMU ahead of enabling it.  Fold
> map_iommu_mmio_region() into it's only caller, as the function body is just
> an ioremap() call after the removal of the memset().
>
> Fixes: 0700c962ac2d ("Add AMD IOMMU support into hypervisor")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> Changes since v1:
>  - Zero the control register after calling disable_iommu().
>  - Print a warning message if the IOMMU is handed enabled to Xen from
>    firmware.
>  - Fix commit log grammar issues.
> ---
>  xen/drivers/passthrough/amd/iommu_init.c | 31 +++++++++++++-----------
>  1 file changed, 17 insertions(+), 14 deletions(-)
>
> diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
> index 76ae78e5ea53..ffc041211fb5 100644
> --- a/xen/drivers/passthrough/amd/iommu_init.c
> +++ b/xen/drivers/passthrough/amd/iommu_init.c
> @@ -42,18 +42,6 @@ static bool iommu_has_ht_flag(struct amd_iommu *iommu, u8 mask)
>      return iommu->ht_flags & mask;
>  }
>  
> -static int __init map_iommu_mmio_region(struct amd_iommu *iommu)
> -{
> -    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
> -                               IOMMU_MMIO_REGION_LENGTH);
> -    if ( !iommu->mmio_base )
> -        return -ENOMEM;
> -
> -    memset(iommu->mmio_base, 0, IOMMU_MMIO_REGION_LENGTH);
> -
> -    return 0;
> -}
> -
>  static void __init unmap_iommu_mmio_region(struct amd_iommu *iommu)
>  {
>      if ( iommu->mmio_base )
> @@ -1367,11 +1355,14 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>  {
>      int rc = alloc_ivrs_mappings(iommu->sbdf.seg);
>  
> -    if ( !rc )
> -        rc = map_iommu_mmio_region(iommu);
>      if ( rc )
>          return rc;
>  
> +    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
> +                               IOMMU_MMIO_REGION_LENGTH);
> +    if ( !iommu->mmio_base )
> +        return -ENOMEM;
> +
>      get_iommu_features(iommu);
>  
>      /*
> @@ -1381,6 +1372,18 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
>          return -ERANGE;
>  
> +    /* Read current control register and forcefully disable the IOMMU. */
> +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
> +    if ( iommu->ctrl.iommu_en )
> +        printk(XENLOG_WARNING
> +               "AMD-Vi: IOMMU %pp enabled by firmware (%016lx)\n",
> +               &iommu->sbdf, iommu->ctrl.raw);
> +    disable_iommu(iommu, true);
> +
> +    /* With the IOMMU disabled zero the control register. */
> +    iommu->ctrl.raw = 0;
> +    writeq(0, iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
> +
>      return 0;
>  }
>  

I don't think calling disable_iommu() is a good thing here.

It's just a cascade of clearing one/few bits in ctrl at a time, but is
is added unconditionally so that's 5 UC stores writing 0's to the same
register in the common case.

I think this logic wants to be:

@@ -1381,6 +1372,18 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
     if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
         return -ERANGE;
 
+    /* Check if the IOMMU is active, and disable. */
+    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
+    if ( iommu->ctrl.iommu_en )
+    {
+        printk(XENLOG_WARNING
+               "AMD-Vi: IOMMU %pp enabled by firmware (ctrl %016lx)\n",
+               &iommu->sbdf, iommu->ctrl.raw);
+
+        iommu->ctrl.raw = 0;
+        writeq(0, iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
+    }
+
     return 0;
 }

 

which has the advantage that it's closer to the current behaviour, and
therefore arguably a safer backport.

The only thing that disable_iommu() does which isn't editing the control
register is playing with the PCI MSI enable bit, but that really doesn't
matter when we clear ctrl.int_cap_xt_en.  (And in fact, that path is
buggy because it clears MSI enable without inhibiting interrupt
generation, which architecturally will turn into legacy line interrupt
to deal with.)

We're just about to re-set everything up, so everything's going to get
re-enabled.

In the commit message, I think it's worth highlighting that zeroing the
control register is the current behaviour, and this will need revisiting
in order to support Preboot DMA Protection.

Or alternatively, would you like me to submit a patch?  (Happy either way.)

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 06 16:31:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 16:31:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301939.1576053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKf9g-0006R9-Fp; Wed, 06 May 2026 16:31:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301939.1576053; Wed, 06 May 2026 16:31:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKf9g-0006R2-Bw; Wed, 06 May 2026 16:31:24 +0000
Received: by outflank-mailman (input) for mailman id 1301939;
 Wed, 06 May 2026 16:31:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKf9e-0006Qe-HV
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 16:31:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKf9d-00ECTE-UT
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 18:31:21 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb6cc0-bab6-0a2a0a5309dd-0a2a4504cad6-34
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 18:31:21 +0200
Received: from [52.101.62.17]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb6cd8-1dec-0a2a45040019-34653e11984b-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 18:31:21 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SAWPR03MB989156.namprd03.prod.outlook.com (2603:10b6:806:4d2::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Wed, 6 May
 2026 16:31:19 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 16:31:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=t4Rz3jmlXd+CfDz87nh5cGM2z4efY1k6FMQ8D1/Yv/+OelYB9cUO/WDaZmxfQLiPsgeX6Eo59IRHfeSOFBibeWXzuWSDb2hDXcOm6Js5juUaSSiFl4v/WhK8RjqAIcjFNbjKkiaxESyJvo4t7ORfSp2R+cZa+LYN5nQygu8Q+ND65gwGJlxPjE5XU1w31jJksTymny/Ihy7wn1omSFDOKk8OUEQHhKG49cmTxWbrY80N+ceWgs7SNhnLZm03dzjOYlOEEiSIe4eduNt0wAMp3S1Ic29aWeYe41iXiwttXfRycdAKyO49pKH08f+bW2gtEqe5GUNyqDubHetXye4P5g==
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=7rEEFKS9AptWT2FR6SFz8tovo4ncn9GkcQjPrfqsQT0=;
 b=joUiViUaKBUHB74pBXUNt78ccDgRLP8uZHhDiy4Iy1Xu9nji8cca+MQsV8nPLrsK1V6xD4U0Ijlyp5Ohg4o/1QvQ9gpRWZ742N6dc6npTM5ZA6EVVw1kVUU02SxbsH5UKLJuI0O6h5ZpU+i4TZbDBwU11Nnh+IctjF5Fc5TZtlHuTPRjS3t4GVUrLFMhHJs0QE5UDT+8w9F9yLs79D6yQbO/LY3v6foUrYQ5muBgmiJ/zdHRKpc2PzJFDJe0UypHYun4eqhzdDqVinoW7Hwn9OjdfPILec1KM/Z2WCThU/z2BPY2Vjb2UGRtuwlcKL42BMnpwTb9uRC6KgvrCQ/qLA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7rEEFKS9AptWT2FR6SFz8tovo4ncn9GkcQjPrfqsQT0=;
 b=0bOUE4QIOPc4Vp7277tPE/FlY99x0DEe/q/OgCmyOPJ+a7ZMjiAfoc2Z8gGF3aPh8btw2pK9SUL2XGz+uMC54edkgvD5J0wKtlyIpOqrAkt2S619jYVdYa1c+n8yM9+DowhkM5yMzuQ8vjjvAAl7xamKKRTYY2wuh7dYRc9bEXI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 6 May 2026 18:31:15 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
Message-ID: <afts02DUnprjHkTh@macbook.local>
References: <20260506135514.47310-1-roger.pau@citrix.com>
 <20260506135514.47310-3-roger.pau@citrix.com>
 <5531fe94-6200-4f7c-9c22-e09189438e9c@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <5531fe94-6200-4f7c-9c22-e09189438e9c@citrix.com>
X-ClientProxiedBy: MA3P292CA0052.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::8) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SAWPR03MB989156:EE_
X-MS-Office365-Filtering-Correlation-Id: a0d96647-ae0e-4eb9-27be-08deab8ce6a8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	sqgSuBVEaEwz2DE1UuK9bfxqs+m54ZCE53/oEfqx4RsBDjXCNptTf3uERvqV6XYlxxWyuUCMbjBS2GLwSY9RP6dcooqKWts7pdBSJv9Z7xHsqlTE7YI3YvBnPrWzA5YvU8jy1Urmq2r73907xAJT0OC7Mmr/Ifnshs0nfgSdF1vhKAJeekH0a2D73Oe1EJg+ANFS92h0P/Jpg4TVf8l9Y6jNu+aufbS5SFzKLNgAe/cWNOdp01wBhOFIi9xYrD7E9luXddHnWhWqijVKu/CYufXYDFZsD5U1UfBsdmXOe+mw97VYLUY/L05ImlPu8EbZwfhKMliU+Pmhe1wkAnf2HapZDD5RBFLuYJECiK/UObF62SPc6S3z3TeFpp6P4FU4xPXsdLMawo0erRqUaUXD1WqZNo+cXnZyKpKfJFxgb1ojFA+vFX4ed95PMAEIanmwDP6EB46eXkH4w7vSVLPnT0Fgo8WlABfAv8ShkqlyUNJtZm/FeP6gxkNmi0IQ4bp/z5IFzSk4IPxk0y0preKg0NT5iWziCNpMnG75aiYzkwetuHJvWeAe1T+beJ5AWQnNZ+lAhVdQIOIjdujsInWXbf7gFdajgziqSbmO86cdSQiVXjqkK4saq/4vdqKg1dV+DHRVN6AwS3VH1q2xGA6PgCAjuKTr4DOMaJ2qqsf7a8m/VfZYmGhAFyVMbwLMOajp
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S00wLzNQcXFWc21aYUw4VUJKOUh1QzJvTU96Q0VIRWFCT2laV1RQbHlyaVVG?=
 =?utf-8?B?dWFoSFVsUHZUUUZoV2ZndkFPb0RnV3ppakR6aGgvMmJOQkY2bGN0YWl4ZTZK?=
 =?utf-8?B?dUlLaFdmTSs1dmlYdHRtS05GVjhzN3FqL2Fzc0k1dmRoK0lwbTFnVEtTL0JJ?=
 =?utf-8?B?ZjI5RVcycDdZWEVocW5jazdEblREVWNEYVlxR1U0dlhUUUxBVTh1MHVkL205?=
 =?utf-8?B?NEtjTjBaR2dzcWJvUm9lMVl4WWxKQTNzaUdGeUdaUmhPMGlxT1pRNlRFZ3V0?=
 =?utf-8?B?OC9sdW1XOXBKTkRTdmNPZ0dENUFYVkhsRVNNcGZEc2tqMXoxQ25NY2N1RXJ0?=
 =?utf-8?B?eGpSejgvSHg4R3lsM3pnYTBLTGU1Wk1XMHVYbGRNU0VzMlE3NjJWY1BrVkN4?=
 =?utf-8?B?blJ4T2o0WG0xeW9ialN3ZUtXTTRrUDM3QWFwNWVjUGdjNkx1cWZ5ZU5qbncr?=
 =?utf-8?B?YUNScU80cTU5enlSYUYzc2txN2NBa1htNW1GcU10YWs3QlB4RjJ2NU9vTURZ?=
 =?utf-8?B?T2VzQThPRkFodVd4WFkyUHNyZktWSVd6bWY2VzBQWU9KWStobnJsOEVEaG9K?=
 =?utf-8?B?cTlNWGpmVjg2YzQxN0FzNkVrczYrQUVQTW9XSThkKzVROFpXUTl2SjZwT2l3?=
 =?utf-8?B?MWlIUkpoWmVocjBhZ0tkMEs0V29aUmJDQnVzSE42M2c2K2VDTEp1ckpUN1Y3?=
 =?utf-8?B?Vkw2VjJyWTFrYUpzbk5udlBEdFZSbThyNTFYTEt4YlFnTWtlakpmL0tqYnpW?=
 =?utf-8?B?TWt1cVZoWHBLdlJxVGN3UFIwR0hGWDRRbDRGR2JDbkY2Y0hHWHpkUy81QmtD?=
 =?utf-8?B?SDh5cW45WHNBbDRuQ3ZzVUp6NWR1RXp2WEhyOTBmeFNpWURjTTFaMVBJejJV?=
 =?utf-8?B?dythcUV5NG1LbENDak5ZTUR5VHo5akNGZEhGVGoxMUpobEd3MS9NNkRLcXpm?=
 =?utf-8?B?WjhvNTNnU2NPMG1mTnB1ZHV4OHpjQzZIbEcwcTVycGVsVFBZQUt3aFMxWWVV?=
 =?utf-8?B?ei9Tai90TGZYNjdLMHlFMmhOT2dpQ2hvR1ZNUDE4VTA2blJXRmNpV1RQVW4x?=
 =?utf-8?B?clpabFR5R3ArRWUwakFTS0R1Qk9RTzU3ais1ZEE1bDQ2QUY3blZkSlZHWTFt?=
 =?utf-8?B?UFRORWVrOXZ6bGxwR3dwcGZFVzJqeVV2Qmh1a1UyeGMxdFNVaWg5bUc2Q3Av?=
 =?utf-8?B?RjZIc0hyL3JuUlJPOXBNY1pRc0xaY3p3RXFiSDBIU0g3dXU3Sk9nTWEvUWhh?=
 =?utf-8?B?M1lVV09GNkFOMEljdjFBUzJYeVVadUsrUHd6MGQvYzNyWElsMUR0U1NIM25R?=
 =?utf-8?B?VWxFeWkxMjVDYWhGYUtyazROcm1xL3lyRy9YWGZWMk9KRU5OMys4TzBndlJY?=
 =?utf-8?B?c1paWHVpSjJ0MU5VdWdsSXZaVHpFVzhFYlN0NlFsR2tid2F5NWpJNldaU05v?=
 =?utf-8?B?aHR2blMybkdIamF0SnQyK1JSYzN6VVI2QUJjZHYvQWgxdDA1ZzRuTnA5NE1T?=
 =?utf-8?B?MmFqa0o5dnBQa2hOUmprUUROS3loMHF2Y1VscUs1UFBBS3VCUFNKZDl3WjRX?=
 =?utf-8?B?N1JUYjZTUzdXc2c2NkhBTFNCVU5tUncyc1BBMkNpVzhaOW9TVm93Um5IMU9o?=
 =?utf-8?B?SjhuSGxMMHpJOUFlQTMrQmYzaWNJTzVreVFXVFZZRmhaem95V29OakxyaXps?=
 =?utf-8?B?dnhSczhUKzZ0ZjNldmMxb0VUYnpvcEttYXZqOEMzcnNOQ3Irdkl2YXk2TmJZ?=
 =?utf-8?B?U0U3bzVCc3R5dHNCeGZmYlp1WnVqRi9icE5jby80TW44L1dXVGJTc1ZZLzU2?=
 =?utf-8?B?QkhSYTNFby9SdHY3YmkrVFh5U2cyald1cDN5d0JhNWd2WE9QK3pJMWhOY2R6?=
 =?utf-8?B?MHR6enlqN0hsZitINXZHVEx0ZlFsQWVDb2RCS1NobzYwZXNtT0J2V0JONFZw?=
 =?utf-8?B?MXBsY1JNTHoySGpzS3VHWnI4ZDNmZUdjbHZlOG9kczB6bnNRc0Vpbnl2YXli?=
 =?utf-8?B?dWdWaVZBbHZrc1MrZEVGZnFVV1FnYlRpZGhWU1ZPVmdGdXIybUtuUVh4dGMr?=
 =?utf-8?B?dGpLd3lnRHpZaWdoMmkrTlY0cHFrRkVmVjVHOGdleHl4Tk90Vm9mM1I0K0RL?=
 =?utf-8?B?aUtCZ3VVYzRGM1JrcnF1M1VpaXhIbWhxRndJZHZOWlhzNHYrVHpuS1RjZllX?=
 =?utf-8?B?djR0ZXdPT1pHOHluNlRVK0NMa2ROdVAxenFGN28vVnc5ejFEcGx6ZnJXL3Vp?=
 =?utf-8?B?WlA1bTkxVTJVYUdYVGlEaG56WDFDNXhCRm0ydjUyZ2JJSnAwVnpjWkd0OEhJ?=
 =?utf-8?B?bmsxa1hHcWF0SGlFcHpNSFRKK0ZVM0JrbGN2QnpNQXdFTE5yaUNyQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a0d96647-ae0e-4eb9-27be-08deab8ce6a8
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 16:31:18.9162
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 14VVTWa5AfzOBMF16roMFeecE6v4GXRUDBT3hDJok2wuKwUP0QyJOwfSq4jcAAqZzzxqFg47nZ13Xp/zXUGvQg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SAWPR03MB989156
X-purgate-ID: tlsNG-ebf023/1778085081-4846A3FF-48B1A5CF/0/0
X-purgate-type: clean
X-purgate-size: 5594

On Wed, May 06, 2026 at 05:18:40PM +0100, Andrew Cooper wrote:
> On 06/05/2026 2:55 pm, Roger Pau Monne wrote:
> > Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
> > say the least.  We don't know what registers might be there, nor which
> 
> Sorry, one more.  "We don't know which registers might".
> 
> > values might be safe for those registers.  On a forthcoming platform doing
> > the zeroing of the MMIO region does put the IOMMU in a broken state, which
> > is not recoverable by the IOMMU initialization procedure in Xen.
> >
> > Instead attempt to forcefully disable the IOMMU ahead of enabling it.  Fold
> > map_iommu_mmio_region() into it's only caller, as the function body is just
> > an ioremap() call after the removal of the memset().
> >
> > Fixes: 0700c962ac2d ("Add AMD IOMMU support into hypervisor")
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> > Changes since v1:
> >  - Zero the control register after calling disable_iommu().
> >  - Print a warning message if the IOMMU is handed enabled to Xen from
> >    firmware.
> >  - Fix commit log grammar issues.
> > ---
> >  xen/drivers/passthrough/amd/iommu_init.c | 31 +++++++++++++-----------
> >  1 file changed, 17 insertions(+), 14 deletions(-)
> >
> > diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
> > index 76ae78e5ea53..ffc041211fb5 100644
> > --- a/xen/drivers/passthrough/amd/iommu_init.c
> > +++ b/xen/drivers/passthrough/amd/iommu_init.c
> > @@ -42,18 +42,6 @@ static bool iommu_has_ht_flag(struct amd_iommu *iommu, u8 mask)
> >      return iommu->ht_flags & mask;
> >  }
> >  
> > -static int __init map_iommu_mmio_region(struct amd_iommu *iommu)
> > -{
> > -    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
> > -                               IOMMU_MMIO_REGION_LENGTH);
> > -    if ( !iommu->mmio_base )
> > -        return -ENOMEM;
> > -
> > -    memset(iommu->mmio_base, 0, IOMMU_MMIO_REGION_LENGTH);
> > -
> > -    return 0;
> > -}
> > -
> >  static void __init unmap_iommu_mmio_region(struct amd_iommu *iommu)
> >  {
> >      if ( iommu->mmio_base )
> > @@ -1367,11 +1355,14 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
> >  {
> >      int rc = alloc_ivrs_mappings(iommu->sbdf.seg);
> >  
> > -    if ( !rc )
> > -        rc = map_iommu_mmio_region(iommu);
> >      if ( rc )
> >          return rc;
> >  
> > +    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
> > +                               IOMMU_MMIO_REGION_LENGTH);
> > +    if ( !iommu->mmio_base )
> > +        return -ENOMEM;
> > +
> >      get_iommu_features(iommu);
> >  
> >      /*
> > @@ -1381,6 +1372,18 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
> >      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
> >          return -ERANGE;
> >  
> > +    /* Read current control register and forcefully disable the IOMMU. */
> > +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
> > +    if ( iommu->ctrl.iommu_en )
> > +        printk(XENLOG_WARNING
> > +               "AMD-Vi: IOMMU %pp enabled by firmware (%016lx)\n",
> > +               &iommu->sbdf, iommu->ctrl.raw);
> > +    disable_iommu(iommu, true);
> > +
> > +    /* With the IOMMU disabled zero the control register. */
> > +    iommu->ctrl.raw = 0;
> > +    writeq(0, iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
> > +
> >      return 0;
> >  }
> >  
> 
> I don't think calling disable_iommu() is a good thing here.
> 
> It's just a cascade of clearing one/few bits in ctrl at a time, but is
> is added unconditionally so that's 5 UC stores writing 0's to the same
> register in the common case.

The approach to use disable_iommu() is because that's closer to what
Linux does in iommu_disable(), which seems to explicitly disable one
feature at a time instead of writing zero to the command register in
one go.  I've been cautious in taking the same approach on Xen.

I don't mind doing a plain write of 0, let me test to ensure this is
OK.

> I think this logic wants to be:
> 
> @@ -1381,6 +1372,18 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
>          return -ERANGE;
>  
> +    /* Check if the IOMMU is active, and disable. */
> +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
> +    if ( iommu->ctrl.iommu_en )
> +    {
> +        printk(XENLOG_WARNING
> +               "AMD-Vi: IOMMU %pp enabled by firmware (ctrl %016lx)\n",
> +               &iommu->sbdf, iommu->ctrl.raw);
> +
> +        iommu->ctrl.raw = 0;
> +        writeq(0, iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
> +    }

In your snippet above, I think we want to unconditionally set
iommu->ctrl.raw = 0, and also propagate that 0 to the register,
otherwise we will inherit set bits from whatever is currently in the
control register:

> +    /* Check if the IOMMU is active, and disable. */
> +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
> +    if ( iommu->ctrl.iommu_en )
> +        printk(XENLOG_WARNING
> +               "AMD-Vi: IOMMU %pp enabled by firmware (ctrl %016lx)\n",
> +               &iommu->sbdf, iommu->ctrl.raw);
> +
> +    iommu->ctrl.raw = 0;
> +    writeq(0, iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 06 16:50:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 16:50:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301960.1576062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKfRc-0000DL-0D; Wed, 06 May 2026 16:49:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301960.1576062; Wed, 06 May 2026 16:49:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKfRb-0000DE-Sa; Wed, 06 May 2026 16:49:55 +0000
Received: by outflank-mailman (input) for mailman id 1301960;
 Wed, 06 May 2026 16:49:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wKfRb-0000D8-4b
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 16:49:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKfRa-00ANsr-HV
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 18:49:54 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69fb7127-5cb7-0a2a0a5109dd-0a2a4501b11a-18
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 18:49:54 +0200
Received: from [202.12.124.154] (helo=fhigh-b3-smtp.messagingengine.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69fb7131-c1f2-0a2a45010019-ca0c7c9ab193-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 18:49:54 +0200
Received: from phl-compute-08.internal (phl-compute-08.internal [10.202.2.48])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 3BD7C7A013C;
 Wed,  6 May 2026 12:49:52 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-08.internal (MEProxy); Wed, 06 May 2026 12:49:52 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 6 May 2026 12:49:50 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm2 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm2; t=1778086192;
	 x=1778172592; bh=3j65QrDhCEnlZV7m0VWWzT8nKjetcPN09saEXNs6av0=; b=
	frMhhACoooQGjn70vvdBUwrCx8QoRkNixbBWkwpV1AwTdbZVaqT5BbYJNzQIHUyh
	RITUmHIoQCkk0oDMeFAn77Ycxg6bhUidnnCOkLRl5XtPvOyvQy4b7XNw3Cz8nXv4
	qo+QcOpgUsOh0ll0xDXQ+ZsOEMC2CdIlFG6p5jMVux/7y4j7ByKeQgq6usXQAasy
	3rSoBJ0FvjAWv2L90a+d0/kiZlPYQPhT35cvtPz1SEVhhtR1mBPxykAMDk6i4A4R
	Mobt7owEU6OhoDiW6SGanJm7mIbhvHiWRfFsgZ0JdlESAw6U5im20vk6YQjVdy0f
	a5552suLvoi60sSBr949ow==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=
	1778086192; x=1778172592; bh=3j65QrDhCEnlZV7m0VWWzT8nKjetcPN09sa
	EXNs6av0=; b=Yn2So1Vc/4cPZ8cv95cfYDkfz0CB5NJIkw3Hm4RGkLgqqeDJnjE
	CKC1oWaRASwvVkHc2REcE+GU+f51dVQm+gYWBUs/4eiyOyfpIGmEa5oTCZpX/qQQ
	hL155TrsDiuXctGHegHL7OFyA+JQBfAEZZl8nu3j/kTHtHdnUosq/ZILeMmt/KT3
	XLHXbYkxfOBZldx+kuULWRgVludITuZyTbcgum88lx437Oc0fAZvP7hLct1dGmct
	sH2S1Xm36WjuRN3nc7t0qrgpmEfpuBmZWRxDw8F8UsTmp5p9JBHpt9+u7PxWWJAD
	1BvYdb+92vblgjnABfZNx2C0ooOWAbYmofA==
X-ME-Sender: <xms:L3H7aWBAhFZNp91so5aYyqS4eFoyFgpsKpTVSOvQDQ_x2l3kH32gJA>
    <xme:L3H7aUPqFjgIdZL16p6zdADm7siuh48Xc14-54kW3mfx04iYseAK32qcl-MVdmRC_
    8sPBjKhWJTYGDd0ecU5KIa9bD2cQlxhGQKd_-z-q-epsmq_>
X-ME-Received: <xmr:L3H7aTZLwdDaIcrdxmkSG4ysme786wH_Zxox-4_CSdsds0nU6djHKm2IFHxYuSVOj_G1kHF9OP3pG23oVmW4RkoLc4xNdbnRUik>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgddutdehudduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtroertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnheptdetvdfh
    kedutedvleffgeeutdektefhtefhfffhfeetgefhieegledvtddtkedtnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepiedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihig
    rdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojh
    gvtghtrdhorhhgpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgt
    phhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpth
    htohepjhgrshhonhdrrghnughrhihukhesrghmugdrtghomhdprhgtphhtthhopehtvggu
    ugihrdgrshhtihgvsehvrghtvghsrdhtvggthh
X-ME-Proxy: <xmx:L3H7abv5lJltNv8Ah7Zyet-91sRBJb6xbdThd7L8sCwnRiGl1u26xA>
    <xmx:L3H7adMlpgUpKtqS-i14N-O9qxJFlQgOm2ghjx6UHI6E6vmDKBG1Hw>
    <xmx:L3H7aa7LbRX1NZ_5Bo4xLya8xBVq7QFWAzBQcKDE6Xkg8nwqVK4ozg>
    <xmx:L3H7abSDLnvpB18ndtILFPIthiCa94Wb0SNT_KOzSdHadoYH0XQiZg>
    <xmx:MHH7ac9Epei0FVLCSpqavxFvhT6sXA6U9MKS3uMkrW5XlrpKFnSdN6Oq>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 6 May 2026 18:49:47 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 0/2] iommu/amd-vi: remove zeroing of MMIO region
Message-ID: <aftxLNbCYKnLrEXM@mail-itl>
References: <20260506135514.47310-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="j8Y+pyk47lYf6y1a"
Content-Disposition: inline
In-Reply-To: <20260506135514.47310-1-roger.pau@citrix.com>
X-purgate-ID: tlsNG-d62444/1778086194-AD5AFFF4-42852402/0/0
X-purgate-type: clean
X-purgate-size: 1949


--j8Y+pyk47lYf6y1a
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 6 May 2026 18:49:47 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 0/2] iommu/amd-vi: remove zeroing of MMIO region

On Wed, May 06, 2026 at 03:55:12PM +0200, Roger Pau Monne wrote:
> Hello,
>=20
> Unconditionally zeroing the whole IOMMU MMIO region is dangerous, at
> least on an upcoming platform this does put the IOMMU in a broken state
> that's not recoverable by the init procedure in Xen.
>=20
> Get rid of the zeroing, and instead attempt to disable the IOMMU ahead
> of enabling it.

Just to mention it here, while this looks like a step in the right
direction, even better would be to not disable IOMMU at boot, but
reconfigure it - to preserve uninterrupted protection when boot time DMA
protection is enabled in firmware. But that's definitely more work...

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--j8Y+pyk47lYf6y1a
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmn7cSwACgkQ24/THMrX
1yyZxQf8CUJvMP7I1sv1PMxXjTsfAkxSupuMPirems1yZ7ya/Qq6eUBU5MSAVO6E
1INLuyh3xsdiXHkVWZEN58ugv/G7S00FrBcjQs0qjZlYRgLdkZJGtBsDEyszbHzW
x3y8STslRt7A6091KHjQwfbUK2ft0tOJVcxQRGipIhQYyDyQh1CRE4FWFgHEGiDc
P6+jF3guzNBskqtnt2dUQL2YxGH7wh4Os6oDEIwqDMlozH1eQP2SPSTU1w3sgi+r
QOlGHAjrMwLtKR/+YzagBuImky9XAmkbWRX4thHiWIDNSp/h4qq8JanlUdATBgd4
ul18mLA1eUVeYh6JrAO8x2KqY5Hz6w==
=6TDJ
-----END PGP SIGNATURE-----

--j8Y+pyk47lYf6y1a--


From xen-devel-bounces@lists.xenproject.org Wed May 06 16:52:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 16:52:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301967.1576071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKfTv-0001iX-AW; Wed, 06 May 2026 16:52:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301967.1576071; Wed, 06 May 2026 16:52:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKfTv-0001iQ-7D; Wed, 06 May 2026 16:52:19 +0000
Received: by outflank-mailman (input) for mailman id 1301967;
 Wed, 06 May 2026 16:52:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKfTt-0001iK-Lv
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 16:52:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKfTs-00AJfb-Vh
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 18:52:16 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb7193-bab6-0a2a0a5309dd-0a2a4502cb68-46
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 18:52:16 +0200
Received: from [52.101.43.50]
 (helo=SJ2PR03CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb71bf-af86-0a2a45020019-34652b3249fd-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 18:52:16 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB6568.namprd03.prod.outlook.com (2603:10b6:a03:389::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May
 2026 16:52:09 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 16:52:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VxSM9TXGYRacBjOsRihuvJ5h/hw97Ul9Kf5vdr5N3dKrBzm6SMbvzaCYgvLTFDAAdqA3QLhk3cRsstlWBn1yJnaAmyBPizGnw4t80WfK6h54++0VvFEa848XmnGs2OzjkEMTyAzeMpswL3jvkCVk8twW1lV3Funz+BfIsqrcCV35C7Zze3E5vz5m/yvZ3XWn6tvvQEABOs2IY8sTicv0SYZO8KPA0fUlNRC20dKxUKVxBjjlV8dffgD6y9rsPeAwlp7tR3gP0cWYI3In6yHwL1/F/ulEookm3ivvaV33A7HPeyQvnj5mPcisngd19UsmD7R0oysycic50VaHr3A3aw==
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=qRsVMi3aCHHsSZGbjOWEhlRKqUKLp76UEvs/9bSBSOY=;
 b=M8Gf3gRsS45VfpxOBULRHLu97WAz+rwGd9cIvQ+jC2yKjGh1k9UydMRFSWe3+/1P7zplDuBU8aNBYK71FxWVO9ZfxbHoRZUA0zxNOt98QwiZg5OpEItsHe7CsDfQiCXTOAugsqEHVdRdewWGAc/rVV0I3K7mccVjV4I9EE3SAhzO+qV+zWE49bTrT0XruAfuCEDlY7gS5aQWcoYCCMhraBgo5m8PGkY5y44rIu1/0B4OF0L7FWRJl9wlIPegyhJBX3iiEhSzddZLJG0BJbeJAOdWJcBVgBKb08guMSZztxPIlm9/l7f7voeK1lm1Pn6DkFTICDM5JxDk+HVVl4jpfQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qRsVMi3aCHHsSZGbjOWEhlRKqUKLp76UEvs/9bSBSOY=;
 b=v0wRmM8wBqCyi0XR6RozHxwZg6/5XrJmjG3VF3bJbdHXl2FcgWNpXLG2ycG7Me8ENe6OQff5cgarXm/d/FytD5eJ1kkoF2HYC9/YTgJ+yepboNZi/HHnx+tr9FSGBrRBGbTqqkoK91QAXtCKAdyPZNkJzDmwV1DwWNLoNkO9XLE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v3] iommu/amd-vi: do not zero IOMMU MMIO region
Date: Wed,  6 May 2026 18:51:57 +0200
Message-ID: <20260506165157.68567-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.53.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: BN9PR03CA0087.namprd03.prod.outlook.com
 (2603:10b6:408:fc::32) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB6568:EE_
X-MS-Office365-Filtering-Correlation-Id: 69bcbedd-eb39-4e3d-cc33-08deab8fd02b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	9tB9kNlIkVlOuJA+CFKf/O5pHrblWyqEpS2vOiZfb8XbBaLWDgC7Tr5G23lQjNrc8BYQGBfp3VC2MWl8YDEHbxfW/PoX2EwW38qdPjyBK3LBskFHSOiJKXJM9TTBF5yHf4GJEVmUTTNhVKZRsCHKaZQ1KaFYfYNIwdu632YTj1eda3/W/TvRMdPQQLT7GpsAoLE4S/D+JjHdzRTI1t7Uu6e7YKC9l4yk1vYzFrU5MxH4+k2J8a4ap8biwTkZuRjeN5JeQKqEoMC65/t0ihYQ6pWkM58jEQTLID5z76vm74nvGrFq3GdE8va2gZdTXj+wPzDfHgMtpL5qojCUk2ZpmTDpEGmCzHUrOBGwLhYQ+9QrcySpkRz8FHzQa7UXhZZ/+B5ge6a1DDAzSNuF8fFEiaQ1NdrYqTNkwkKnfVjFzdBovdHYICkr37cwRM82QSsM9XpvRXu3opq3o9IwILEi1QlcY+HSCoBYDFwRz0beWZqCNcaVbiz+be/S3sw+xs6/rJnDeei8rNtv20Fme8lGp0cnV9lDmSuiLxiAM4rZoTFOET5GmpY+BN4xXqfzrwUX5Aagu2ok21irqEHLoz1vzVkRORa3ZMmsYFDGmugn9RLQqUkrWryfGRrMz6dxAT/BYSI8jQy1r+MEqemRH4oXWVpnwFE7z/jXl8KIrTQQkMxrq7bfYwSNY8hAQGL5++oy
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bEM1NnRhdGhCeWdENnJwU0RUeVZ4MHUrczIvcWREU25SenpUVm5XYkpsNlVw?=
 =?utf-8?B?NXlMelFqMWRNWk9TQ2JrT2x0UVE4OFl1WE5memh4KzY4S09JejZodld0QW1X?=
 =?utf-8?B?TWFyZ1Z6bTBZVTRCNyttbmROdjNEckVPcVRyanFTNjlsSXphOWY2TnhTRE5k?=
 =?utf-8?B?UGc0L2FWRU1VeG04TDg4dndjMmtaSmcwQzV0NXNGNXI4RHNnT3ZLSEZ5WklY?=
 =?utf-8?B?eUFVRTQ1TmVPRTNBWVZEbk5aazg1ZVp0a0t1UENDcVhiTHBUcU8rUitjVkpi?=
 =?utf-8?B?YWJlbnpHTWx5Wmo5SXVSMm1ISmwyUmlDem83WGgxcUtwOUxmYXZSdk9jTGJm?=
 =?utf-8?B?ZjZJNi9qM2NRamFHQUU3SkRmTUQrVkxHb3hlVWVUVVcrUWVTL1NTaEErcURi?=
 =?utf-8?B?a3FPMVcwUW0vL0VxUWF2QmJlZHN6R3B1V0hzR0NGRTFSVUNoRXp1MzhteDdq?=
 =?utf-8?B?MlJaVnFEV2lNNHhUa0ZnVFVPV2ZQQ0VBVk0vWXpWOXg0WDFaZkpQQjA4anFV?=
 =?utf-8?B?OU9KZGlxKzZBandRVGYxV1Fyd25STzBRaGRsZ05lbFBKM0NhRHRJTzBxZWtR?=
 =?utf-8?B?dkhmQ0pMSzIyenlDNVZWaVh2TjIrdzB5Zm04dUNGcGY3NkhOR3pId3Q3SDM2?=
 =?utf-8?B?TjJ5U2l4aTJpcHdnUGtTZU1VYTh4L1NNZVB5Vkc1aWZIMXlEWmpWNk9HMTIw?=
 =?utf-8?B?bktaQkpRTFJFVFNPVkVCLzRDQUExT05oYlU4K2dnQjVvQk8yY2Q1VTBWWGI1?=
 =?utf-8?B?TEsrNGIrM0paQ0VkaWthcVZPRXhoaWRrNWNlMUVHK25tcWN0VVJOb2swWGtU?=
 =?utf-8?B?ZFNKYlk5bzdCS0kxWFRpUzFWdENnUStpVW5UVWxvU21sN0owSzdOTlhqbHhy?=
 =?utf-8?B?NkhtNk83aCs4SmlRcjUyMEVUV2F1dlRrQ1k0RWV3am1QKzJtZ04vUVNqNWl0?=
 =?utf-8?B?ZlpDQ2swaWdRY1djSDUzNnZQZzZOMVkwQ0ExNjZ1SnpFVXhaZ3RoYTJ0amlk?=
 =?utf-8?B?ZFZxeE51SkxySkRSbmJUNEs1TEtZUlB4YlgvV0FMS3Nla21nNm1idWhVNWYz?=
 =?utf-8?B?dmZtVkw4bDJBWTIzREhPNzk0d3dUV1YrV1dmcG5haFl4djBFM1MxcC9qaXBr?=
 =?utf-8?B?LzFEa2dPTE4ydXNtV1M2elZzb1BMakh3ZnVsdXd0NlJmckl1dE0yR3h0dmJi?=
 =?utf-8?B?N3JnSVR0OFRZNVE1TnhvaWxLeDJzZTloOVBtaEp3RktTa1NZUDlwWXREREIy?=
 =?utf-8?B?aTI2a1JaWlUza2NzalhEcGVYZk9aVUFDQ1FEZUVwaGEzbHlBTDdpVThtU2Z0?=
 =?utf-8?B?b3NGYWJkUHVXeExGbU1YeTRjZkl0MitIN1NrS0dPOTZjQkVtbWNtbjdrTTQ2?=
 =?utf-8?B?SkVaeVU0UFFGS0dySEk1cEtXY1RXMVpjOHhtaVJxQ1IzWDJSbTV4dUJUMERn?=
 =?utf-8?B?L1VjZGlqN3FTWCs1eDVrQWgvcVJKYVJmS1lBNkVBMjdEMUVBZHhtQ2dqOE96?=
 =?utf-8?B?SDFxS2tSZUhGRFp1SjlNYldvZnhVWWNXaEpzdWY1Z1Azbk5LS2RVamQwRXNm?=
 =?utf-8?B?NDcyRGV2SjhBeTRpMmtRcDZvNUpBMWVWUTZxdldtTFk0UVp4cEh0bFV2R2tr?=
 =?utf-8?B?WUhvWnpsODdTeFNWSzlrWnI1RzladVJmNGV3RVduZFZmZk5QQkw3Wk1uZXRJ?=
 =?utf-8?B?RXVITGV0VkRBdTNJU08xMk1WT0RwanRLajlPMmtTdzVqL2c5Rmt3T1Flcjdo?=
 =?utf-8?B?ZFRJQTR5UDg5cU1yYUpCSnFDN2p5RTJFamhvM3NnNDdSVG5lTkZRK3RCUlkw?=
 =?utf-8?B?VDJ1UE5sekViWEhnSDdPbUdnNU9wcEpYTzRsVkw2bS9VTW9KQS81UGN6M042?=
 =?utf-8?B?aHEyQXErNGluMTk3UG1CZjRXaGorZ3BDeU9TNXN1eHNrVEQ1R2w0SWo1eWox?=
 =?utf-8?B?U0ozS2hsZkdBVFhieFRSZUk1S2JzalJhc1ZwWGE4NmYvaUd3V0hjeDhJTnRJ?=
 =?utf-8?B?RTUzUWZUTUdYVGVwSnYxaldMOGpDeEFnaXErRElTa0haODlWU2N0c1c1VGlp?=
 =?utf-8?B?WkJ5VjRMWlY5ZXlUT1M3aWFwclBjc3F4NUkzQ29TUGV3VC9OKyt3UG95QTEw?=
 =?utf-8?B?QzZOOXFQWG9DbzNzeDBVWmZNdm9BZTY0dDFkYnpnK3VzUWQ0VENEKy9lVlBi?=
 =?utf-8?B?b2dQU1N3UlJjUFBkY2ZNZmJodWtpVmpkemVWQzJWZ29OVldRTGp3b1FCLzhC?=
 =?utf-8?B?cncxNjlKdVNsTHhiV3VIa1hiclVhUytiZDlqVWVidi9ta0RWaEkwZ2dBT3JI?=
 =?utf-8?B?R1M5SFY5dG0xN1l0Qlo2b2Z4OU9PMG12WG9VZXJoSzFsOGxNdWFMZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 69bcbedd-eb39-4e3d-cc33-08deab8fd02b
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 16:52:09.6972
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ySwTQ+lsUmUtaLUE2qFuLpX6EoxmjIDwWz2zquqtXdRQ+PmsNXJo7eFsno9n1m8jtvLfwhjZKLAgd28Pj4Z7lQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6568
X-purgate-ID: tlsNG-720697/1778086336-80B78161-13417BB8/0/0
X-purgate-type: clean
X-purgate-size: 3407

Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
say the least.  We don't know what registers might be there, nor which
values might be safe for those registers.  On a forthcoming platform doing
the zeroing of the MMIO region does put the IOMMU in a broken state, which
is not recoverable by the IOMMU initialization procedure in Xen.

Instead just zero the control register, which mimics the current behavior
with regards to how the control register is handled, and ensures the IOMU
setup is done with the unit disabled.  This approach will need revisiting
in order to support Preboot DMA Protection.

Fold map_iommu_mmio_region() into its only caller, as the function body is
just an ioremap() call after the removal of the memset().

Fixes: 0700c962ac2d ("Add AMD IOMMU support into hypervisor")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v2:
 - Avoid the disable_iommu() dance.
 - Expand commit message a bit.

Changes since v1:
 - Zero the control register after calling disable_iommu().
 - Print a warning message if the IOMMU is handed enabled to Xen from
   firmware.
 - Fix commit log grammar issues.
---
 xen/drivers/passthrough/amd/iommu_init.c | 33 ++++++++++++++----------
 1 file changed, 19 insertions(+), 14 deletions(-)

diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index d77dd8511288..e0c8925c33f7 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -42,18 +42,6 @@ static bool iommu_has_ht_flag(struct amd_iommu *iommu, u8 mask)
     return iommu->ht_flags & mask;
 }
 
-static int __init map_iommu_mmio_region(struct amd_iommu *iommu)
-{
-    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
-                               IOMMU_MMIO_REGION_LENGTH);
-    if ( !iommu->mmio_base )
-        return -ENOMEM;
-
-    memset(iommu->mmio_base, 0, IOMMU_MMIO_REGION_LENGTH);
-
-    return 0;
-}
-
 static void __init unmap_iommu_mmio_region(struct amd_iommu *iommu)
 {
     if ( iommu->mmio_base )
@@ -1367,11 +1355,14 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
 {
     int rc = alloc_ivrs_mappings(iommu->sbdf.seg);
 
-    if ( !rc )
-        rc = map_iommu_mmio_region(iommu);
     if ( rc )
         return rc;
 
+    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
+                               IOMMU_MMIO_REGION_LENGTH);
+    if ( !iommu->mmio_base )
+        return -ENOMEM;
+
     get_iommu_features(iommu);
 
     /*
@@ -1381,6 +1372,20 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
     if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
         return -ERANGE;
 
+    /*
+     * Check whether the IOMMU is already enabled and unconditionally disable
+     * it (zero the control register) ahead of Xen setup.  Needs to be
+     * revisited to support Preboot DMA Protection.
+     */
+    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
+    if ( iommu->ctrl.iommu_en )
+        printk(XENLOG_WARNING
+               "AMD-Vi: IOMMU %pp enabled by firmware (ctrl %016lx)\n",
+               &iommu->sbdf, iommu->ctrl.raw);
+
+    iommu->ctrl.raw = 0;
+    writeq(0, iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
+
     return 0;
 }
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed May 06 16:54:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 16:54:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301975.1576081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKfVh-0002Dt-Lo; Wed, 06 May 2026 16:54:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301975.1576081; Wed, 06 May 2026 16:54:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKfVh-0002Dm-Hw; Wed, 06 May 2026 16:54:09 +0000
Received: by outflank-mailman (input) for mailman id 1301975;
 Wed, 06 May 2026 16:54:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wKfVg-0002De-4J
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 16:54:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKfVe-003QUT-Qi
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 18:54:06 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fb7227-5cb7-0a2a0a5109dd-0a2a4503dbda-26
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 18:54:06 +0200
Received: from [52.101.201.46]
 (helo=PH7PR06CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fb722c-672d-0a2a45030019-3465c92e5e63-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 18:54:06 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH2PR03MB8088.namprd03.prod.outlook.com (2603:10b6:610:280::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May
 2026 16:54:01 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 16:54:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SOg3qYpEaQ9V2sj1DPcD3Idmjr1HhjPaueAJVWq16aoFdZtyYKfAqWJySH76/KMMAdb2q6yBRM/N41bdVz29QjgP8YmUVPaPQtNpGxAN+bGvGl2eaH9OoQfO6itaj/6iy3nb/nddeEhj2UNVWRxKx7lYWRjMeXhTl17W3U4YQn84MdHOh7/A6qqQp3PDQIgFwgIeTdOXV2e21yIyHQFY1bjqlhnI88ZuI42GcLzk0CXOdM3IjszfClx6zwxABzobYTSLEn4SNn3crv0eR6/rCp1qUhHrP2jBKRHfrsQ7emw9TInG7kJeS87tIqxgnpNSzOY0Vy46CmtP7RBgWxfnRg==
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=llQc4PMsTH1vgzwEirpFN2JeAJBSPqmipiQTEKQgLlg=;
 b=oxBSSxdF40h0loWqoDmz/YGLVdXQ/+gPjyj127BzxcALD3da0X5JGPjQBPk95HYWtpmuZ1SVsAx3KPNVvZcAZVxdhtg6d5ENDT0qDsDF1khfm6BFbbjOJCw7ZHaZcm2jtIwRl/l6+CZ5JHFWKSGiWnnLK8JDJ0Bkopxew8KFPzKUojdt9UfhYMUwASbJkgNvHc7bmfwFOBe/cNRAhVwJzNkfFcLpl38z/dxhZac5RVtHJqt/vGw6E4qwtDW6bFYs+XdPU2FdOgq6PbQgObTL3sO+FQruhks5HWZc0B3eim1kxHYE09HE024DAYpdClVr/xJ5o2E8eOBI1PxnBNgPDQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=llQc4PMsTH1vgzwEirpFN2JeAJBSPqmipiQTEKQgLlg=;
 b=YWbs2Y2eW2/rR3VMej3GeilvLNQcKyAzZkXpzsDHXgtBu00iEdEfD0vajTkaFn/ZeP9Jvlz0OnXWSzym8WyZqKn3MxeRKaRk8VxqJZDGeaVl52cD5hGG3PfFbj6CyZuOSwpXLT9b/56fgaZhcbOuCzZuA5SGAjdjznG+NgzZfXQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f852b896-5d18-4adb-97fe-c707a4ce8831@citrix.com>
Date: Wed, 6 May 2026 17:53:57 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v3] iommu/amd-vi: do not zero IOMMU MMIO region
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260506165157.68567-1-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20260506165157.68567-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0504.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:13b::11) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH2PR03MB8088:EE_
X-MS-Office365-Filtering-Correlation-Id: 32acbd84-66bb-4ab5-331e-08deab9012a9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	sTLbdwRjbwaFt089XTH20ji2ZTjZcoAJWHESW4jqpg4sgbBYzptlcLEyJ4eLlHJk5EaD/spDBfftNmH/qhwzJFMe3X6ETGXbcpsA1DoRpPJxJnD/TnvtFx3MbkSyHdB/CjJ/bFr8eKZ0ZPggUQRizVLkS3Y+4VBC0rpifeZCBlTTFUXZGPe2mSAxZNkTj+MYTwDa84f9RHjjVXlT47Gl2IfV+Movmu3ktbv58MoZy6n4pCP/JPWoz1buBC1vAp7aQUmSJsGoyAIgpR4mv3DHKQmGtROeN8CmYxerMlTK1HMjBoQMkq7uhUnyJ+Jpr6CaaQ/MlM9RHPTQKJQ44O0YL+7FuKUit718kMAzzBrjCa9dzSIRlgzCOYG9NrsGul0zdG3TYfllHIUl2079nG1wJmeP104VGrqQwi++p6dqglx/8a+uEzBBVNzZtqC5MYTqL9nYpweJsnwquMNCXfhHMFfntQc28lxxeqe/xmnXT3C8swNo60Hj4vysu6jOp2p5vVvh3nEW96MoTVv/KquwtC+jk51/AbGZoAh/NiiyVartUA7W0q5czyfyI3dIXzSREsCUi1i/pGaOgCrQHWATLk7phBJ7CmORHsRx1C3nTb4BH/hlt1UtDKKzfHX19pQNBld7JDgSl4sFCpmIGOwiVlZ6/1rMtd6gT1miKqUvKciKx0Eej+v6FQvUyDQLf9/1
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OVVJNGxTS0tBSDdUZll4RHduamNkR1dhS21YUTFpSjFybXhkM25xUWwxZmI0?=
 =?utf-8?B?d0RHL2FsQUFmZ08yMnZSOGFLSlZuUHdWZUY4ZUZ3VFVGUG5JYjQwWG8yTDdm?=
 =?utf-8?B?UlI4OUlPQmp1TS9vY3FEVjlHcUFKVWNHVU1Wa0x5UkYzNy9KSUZDR2VCTzk4?=
 =?utf-8?B?NWN1dHBlWnlXdWV0Z3l1SGd3YUErZVc5c3FCQ29kUmp6TVA2UWwyMXNnRWtx?=
 =?utf-8?B?VTIzRjVTeUJyQWtNMUx0SHByZVJWdjJ5cHZxSGdGTm9scjBRMTJMVWtxVEE1?=
 =?utf-8?B?QlpLdzVDemkwemtDbGE2cU1BY0FMbUpYZzJKNVpNWVNVdVhiSWs4V2MwSXF0?=
 =?utf-8?B?by81eERaYytRYTNQN2N5dFJlSStWV3NuR0VuNXgvSzZ4TXhJRTZrQWxJRkND?=
 =?utf-8?B?TmtheGRjK202cFB5Q2VJdDFoaTM4ZGFDMHhIUWVPSUlPbEZpRzl5SktLSXB2?=
 =?utf-8?B?WVhpNXVlVStxbXRDTElxdVRaMG9VTmpQSktNNmI2NmFwSnJaQlByekRKcUF4?=
 =?utf-8?B?d0hCSXR0YlVxSVIxNjlKQ3lYWC9vVUxUczF2V3ArU1c0T0VsYkE3Y3lwTmlP?=
 =?utf-8?B?SGgwZzdnMTF6cXRZOWJMYUV2azZGUEdkMzJPU2hJRTB6Q0lLblZidzJ0emZl?=
 =?utf-8?B?Ty9zVlZUMVc1a0VkNGpIeEhzVEhVTHlXem4yMjFrVFNFK0RPdmhNRkdZOXBL?=
 =?utf-8?B?RW9tUXM1eXJSdVFGOG5uTVRNdW91TWgxcFNkSmkwQ3VNNDdqVDZ3dFBKcjBR?=
 =?utf-8?B?ZVM2d1VEbDZYWUZuRlQxOEFUaDRYbGc4UlNZREJldWlzYUdhQThiN1JDRytG?=
 =?utf-8?B?NmlsMjk3OXI2MndwSi8xM3hZRUh5U1p5dFhPb3dyR2d3VGdhZEdUWENVRG1C?=
 =?utf-8?B?Ykt1KzNaMCs0WTY1UTFwdW9JZnhOVStDeERzclFZT2lrb0c5eFQ4eU5sV3hW?=
 =?utf-8?B?cWhlUkxHRnRiQnVPNTdSZ0IvTG5XSWNLVlNNSmdIbWE4YUw1MHhrRVpIMjd1?=
 =?utf-8?B?Zjc3eGNlek91WGtDRVA3RXhsdldFWTZGcVhmeGE5Wkt0NE16djYwaXlCaTVy?=
 =?utf-8?B?OUNyZVVaZGNJZXpCNEtrRVVyQ2tRVE5NZTRZaVcvVWpONk82SkV1MzhwbEUr?=
 =?utf-8?B?Nm9CV09GeVVqTzdWUktZeW9WKzVDUUFlcUsxTnB3YkVrcUhhS2RCbnR3MFlO?=
 =?utf-8?B?THZkQ1FZalhJWlFmR05JOGloam5TclVLT21zS0RtaW55Q1VEWVRFckhYSzZp?=
 =?utf-8?B?dWdYR1l0SFdFcUFwUVIvSEMxbFo1RWVIZDIwWXBHOURmMHp1emQ2Y2c3RVM5?=
 =?utf-8?B?SjROUVgyQmVrODJKYytZNGZENkt6d2N1SUIvZmoxNkxmVlgzU080SGxiMHhU?=
 =?utf-8?B?SkpLYjlYUEFocVYvTThqR0d4SVVhdUVxYUVlN2x4WkdoTVNMUit3U1NlSm83?=
 =?utf-8?B?T0lQRS9DWkR6WmVXOGNXaTIyT0xidEh6TmtTdjNpOEtNZVJqZTd4TU5ROCti?=
 =?utf-8?B?bGc0Rnp4akg0VUJmUVIyMktrendhWWc1WncyWmZHTEl4N1dKYnVKSGxLM0ty?=
 =?utf-8?B?bmxla0Fvb3hsZHd3cHMxeFQ4TklIRzVIbGROdFVITnlBU1B3UDFPN0ppeCtv?=
 =?utf-8?B?WGl2c2EvUStEeS9wQk9WSlpjUFdzcFJ4em9oSGFDUU5TR2hobU5hZTloblZr?=
 =?utf-8?B?WFoxY1pSa2MvSlNPcGhxUnZFQzN2eWlyK1NXMVIrMzBTUWJMOGU5QWU5bzh6?=
 =?utf-8?B?aXVXYmRqQXRvRTBCK2RleEFhUHdKM1BNKzhTZDU4VG9nZmhnNlloYzRQTWI5?=
 =?utf-8?B?U1o1RldYZjF4SmhsR1NTQlF0b3hFYmwwNS81cXl4dUl2aGhMeHBZWG1yVkJV?=
 =?utf-8?B?M3VoUFVscENBWENySldYRkRBdklGU1VNRWpSR3A5Q1NWbzI5VVlpRTA4Zzcz?=
 =?utf-8?B?MnNkTWlqaFg3YXVWbjAyb1kwUjRjMk90SnEwMERMa1BmMkhTSW1qMXIxRmZv?=
 =?utf-8?B?RlZ5c25YYVBIeHhKbVRNcUI1WVJmL2JuNFh4VUIyS2lYRHl4QjdlcWV3K1VM?=
 =?utf-8?B?cGpGTXFZbVFXZkdCajVCZHBsL3ZxTForbWxjSi9TeTVIeXdEcWNib3RpVUh4?=
 =?utf-8?B?RW1wV0dQWC9RT3AyaG1NdWtsTkhDSFlRaTl2MXZ3UjJFZTdPZllpSlIvZDhp?=
 =?utf-8?B?T0dGbUhjK1NkV2lrZTRIMm5TTlNCbmZsajJPbDhQRVg5R2FGcmtHQzlnV0c0?=
 =?utf-8?B?b2FFQklsbnYyL051RGtSWHRldUNjNC9OMjl4b0kxaW5ZeDlCL01Td3lpNWJH?=
 =?utf-8?B?WlI5Q2MwTmZRdG12N2Vqd0U2Q2ZHbGV4TzM0bWZjUDNEWXJWRHF3cGZ3UkVh?=
 =?utf-8?Q?bvXFifKyOTO0b7r4=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 32acbd84-66bb-4ab5-331e-08deab9012a9
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 16:54:01.3686
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BLRppxnuhHWflhrljMx5V3rQY7tGeQgfAPsMrhUydnqb4d8OmaOSSGn3UmYCGMtwOp/SMXaubT3UU/iPQ1Axoicqqv0qcpBKawYbD/Ojmis=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB8088
X-purgate-ID: tlsNG-33051d/1778086446-38975938-1015D56E/0/0
X-purgate-type: clean
X-purgate-size: 1055

On 06/05/2026 5:51 pm, Roger Pau Monne wrote:
> Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
> say the least.  We don't know what registers might be there, nor which

what->which

> values might be safe for those registers.  On a forthcoming platform doing
> the zeroing of the MMIO region does put the IOMMU in a broken state, which
> is not recoverable by the IOMMU initialization procedure in Xen.
>
> Instead just zero the control register, which mimics the current behavior
> with regards to how the control register is handled, and ensures the IOMU
> setup is done with the unit disabled.  This approach will need revisiting
> in order to support Preboot DMA Protection.
>
> Fold map_iommu_mmio_region() into its only caller, as the function body is
> just an ioremap() call after the removal of the memset().
>
> Fixes: 0700c962ac2d ("Add AMD IOMMU support into hypervisor")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Reviewed-by: Andrew Cooper <andrew.cooper@citrix.com>

Thanks.


From xen-devel-bounces@lists.xenproject.org Wed May 06 16:55:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 16:55:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301984.1576088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKfX4-0002kz-0n; Wed, 06 May 2026 16:55:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301984.1576088; Wed, 06 May 2026 16:55:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKfX3-0002ks-UF; Wed, 06 May 2026 16:55:33 +0000
Received: by outflank-mailman (input) for mailman id 1301984;
 Wed, 06 May 2026 16:55:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKfX1-0002kg-U0
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 16:55:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKfX1-00AOY3-AS
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 18:55:31 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb724a-5cb7-0a2a0a5109dd-0a2a450c9856-48
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 18:55:31 +0200
Received: from [40.107.200.48]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fb727e-62f1-0a2a450c0019-286bc830edd0-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 18:55:31 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA2PR03MB5691.namprd03.prod.outlook.com (2603:10b6:806:118::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May
 2026 16:55:23 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 16:55:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j0E2/sAnNNo3uH3/Dp8jJ3i+NCPMqgSXIskZdzwj0Hn5FX1gixvHuy/Zr/5SwxfikeopgzlP7aIYNoh1XjcAbcYacFWJKoMQ1wvNFbT5ZnHtSno/XU77Kb6pV+1/xtbYZhvhnm/ZBxGacCxIs9sgPgjVHmltDydOraZXRrb1T5NY89O8R9b41pojaVe0HiW8kC+h7BK9XSSkVLs2vadlgzcDZ8gepoESs7tnT/gRteT0+bsn5NVDaueeQ+DxvQOrTxwJYY7JYzZLNO8b+2svyEEhLY0RyaK8ZiyI2+MisFmXEoBcu7BMtjyc0dc8+Wu2fJFhbhNrxTFHLVG8WHEN3w==
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=vQ63qQv6SMNVbLoZ7q1mqC01ux/BRuiRCRYo4W1MrpU=;
 b=H7D7rZo5du41SsmudzLLBHRgQpaq1L+5EVjnOeZCyNaevx4c93lFWUtr7pN7nMw2p0D4BB0JNIjcDtAKuKU180qU2Z/GrvSo4lNqzqwIwetESisvakFMbNwvTNcrVs6uKDUvzym7NRAezlY1CuPkVx0U87WfMm6Mfl3jdmNjY6qV4LBW00rEmQJegr22BPPFvB4ANev6BPK/iTZ5WsqhKuyvyUYbZnk8Fw8deh4V5/XLwPPxPMiRn4/z3i7SDuWHAe+LL+uFmXJRXsiQnsKiKp7pPJ0UIcStwNRu95Ju0E2kycp2N8hqtJ666p4wRrUHvKja1uXYDGBtjcjY11p+NQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vQ63qQv6SMNVbLoZ7q1mqC01ux/BRuiRCRYo4W1MrpU=;
 b=HZ9rvOvDIyuc8EPSJZhUuTUX1UITiHOwuRaVMXWxHs4PPrt37gHlcg25YbDSS2pdO0aWgIFXgdEHiKbnlY8DuYOKlm0oqyhIFmVn+8qTNo1Ortc7EdIrdY02uEmMD4+UWrfZA1fSUpwTklKiQt+XQ+sIflN8eG57S2s9SMURR90=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 6 May 2026 18:55:19 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 0/2] iommu/amd-vi: remove zeroing of MMIO region
Message-ID: <aftydxyqHXaaZqBx@macbook.local>
References: <20260506135514.47310-1-roger.pau@citrix.com>
 <aftxLNbCYKnLrEXM@mail-itl>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <aftxLNbCYKnLrEXM@mail-itl>
X-ClientProxiedBy: MR1P264CA0132.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:51::7) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA2PR03MB5691:EE_
X-MS-Office365-Filtering-Correlation-Id: 3ddfaace-ac37-4e38-df3c-08deab9043bf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	IX53AhV4VgHuhKpZkLtG6FZmkrSb6a7wxB8Rhsh7SG32jSv4LEtuwTm9R/tRdhl13OKEKARW9Dh75cdW9cy5T3eJ8flGPcIGj/jUPDBdsPN1VfpweUhv/x4lT60XTM1sydE5aYKCqQwcxDp7WigHkzHU03/AmVZapVU+knRoExjlSIshkh0sEAiArQvVQsmU1Hp932ef+6ukqUAw5AvP/Iw/uxsEKlQdTdtP3TARH9eyIzmCu+ONYIQRHezxzrAS+wGavH07SQ5QE3v/ecf6PWywGAmtiECHA9XotrjuMqeOMrDCmL5mZLq352w+osCa6Pmy5XYtBLzOX9AyaPguC9G1cJgUNjq3TTFfaEfFDDBWXO5bFTpAOEfNH4Wdd+Y55CXesWkQutNlLA2EogQJOM86MxbdBaTW778A2ESOPjkLa5oWLcQeC0Rf6jb78xRRJlftHtJu7b2Z+7DOkSs3UwUNMJaRkB8ygaOdrrCGKaCrZrz2OgCYZvqkRwPIvUMnIjdr+u5Zo6IcGPt6jHHw2TlpZzoa+OoLXrKfpgsSGqAFJMi0OBV3/lrC2AH9AdpQsTOf7jh5c1PSW7BiwyTqcZcHbie0nj7zvEiA4SrDhQC+qP3XF+CYbdre/KXNYXZ3j+OrXFSPP9xXgvl0mDnliT+b/vLoSzy/E/TPu6jX1S4SkwiyJN9D7/CHyrMbMlZj
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OVFBdFpvOXduQjF1emZNdWlvdEFrQXVNcjhoUzkxN1Y5eW1lSGtJN05GZjVk?=
 =?utf-8?B?dlNndlduVW5vbzBYMllHSUw5MzlxMXJRUFZMU1h5OXBzWUU3R3FOYXIzQkQ2?=
 =?utf-8?B?L2I4UER2OGJVTVdyaHMybFRvOFFMUG1OU2lOS3AvSW55Y2w3VWIva1VJRjFZ?=
 =?utf-8?B?ajhBaDlocWo1SUNlYTN6SHR1eWluVlAxd1B6enp4bE04RitDV2NQcStIaGNt?=
 =?utf-8?B?M3pjQVpiUVR1VU5HWE53Nkc0SXJrblJJOUxVMklQazk5YnNlcGlvSitmL0lH?=
 =?utf-8?B?RUZyejU0RUs4cGlRaDVCNXFmWnM1SHBHdENXNXFMWXRUaTIrK0Fhc3p2dlVV?=
 =?utf-8?B?c3VDVEE3Z003VVl5bXdETWNlQUoxYzM0VXU4NlRjUHdaSGprTmswSnZZeEVo?=
 =?utf-8?B?NGFUVmlHS1hXdHgzSzBnVDRQYno2N0VKUEhoTEtYT1dHQ2FZSmVXdmlyYnQ1?=
 =?utf-8?B?UVhFYlV6cXA3cFhIQ0NmZmtDSzd3eWRBQVIxV2hQS0R5eEZCdTkxNVYweHZk?=
 =?utf-8?B?VWN2b3ltVFRybk9mUnF2SGN2cU5xQjVzbWdWa3haWGVKUE1YVUN4MDV3ZE1q?=
 =?utf-8?B?aDdKQkRvaHZZTlVLTW0yTXJyNFYzWHVlZStaSGdMMkdFQ2JVdC9Nd2Nta2pO?=
 =?utf-8?B?UDViMWY3bkFMV1RObVBxMzlTUnQ4ZG9vNm0vNktIRlhra2k2d3QybFpYM05V?=
 =?utf-8?B?c29QSE4vK2c2MUkvaGE4aWpSbFVxUkc2cHhkZUxVWWNJN3pOUnhkQWJEd0Ro?=
 =?utf-8?B?bUx6NU1nNEVhR1czNHJSRTFXWndSenBqQ2lCb2xEbFVoeFZFMU12N1hFL2JJ?=
 =?utf-8?B?T0lpb2ZtN1Y0WG1kNkN5bFpVVmE3WllXRlQ5VWVweEVsL0lxTFFteGRhaGpy?=
 =?utf-8?B?QWNHWFllS1k0T0dDOGdDbENITWNpTEh4THYrOERYOUZrWm1RazhZM2lmY201?=
 =?utf-8?B?V3VTYlhuZ0F6UllsNzBEVzdUMUNEMUM2cllKYVZuWWU0OW0vMHRwWksxNkUr?=
 =?utf-8?B?cmVjNjVuWEx5dFlDY0JQemhibzVseEpYSHFkakM3L2hnL1NsK2plbHc4eHE0?=
 =?utf-8?B?SXFCcGJSTlBVRjlkYXN0QVBkWGJVWG15YWFsVTFSdEJRU05ZcWZyQk4zZXRF?=
 =?utf-8?B?UTFONjBVaUQ0NFMxc1kyVXFUbDRIOHpLUzFoQmhjS09BdXN4YjBZVm9MSGxT?=
 =?utf-8?B?dldwNlo0MENFNzNSbno2UGhrMGpwNmVXbXhMdHVyMGZTcTdIZngwSTZQUjFF?=
 =?utf-8?B?K3cwbUhLWGxvZmJ3cG0rZkNubUlyckVRcGpmcE52bzVwU2diek4rbkNSY2Jv?=
 =?utf-8?B?bkxmU3pvWjU4Y0pyUHFoS0RIZEpvSklSYTFNdGlLMGVVdUZiYlRzcVRDQ08r?=
 =?utf-8?B?Z01DSHpLUGhTb2ZTT1ZxZlduY0wrMFBBVC9ienNaYXY1eDNHSklodm5jSzJt?=
 =?utf-8?B?Q1BFQjR6NzZVcEV4ckU4Vkx5NDUzeXk1MTNRcWtOcGFYalEzUHRWVEdMZkc5?=
 =?utf-8?B?QWlWTWR0QWpIaHZpM1NFejZsOXhhWmdKd29zUG0yUkJOWUJqdHpyN3l0YlB6?=
 =?utf-8?B?M1BTT3hSYi8vUE5QbDdTTkFZUGlDSG55UlUzZjlrOHpzZGRLZlZSbDNzUFZ4?=
 =?utf-8?B?bDVyUlpNNlovZ3NDVHluUU9kRVZNYVVmN3BLV3IxMHFrZEYrUWlnVkJPY0Vp?=
 =?utf-8?B?dXkzVDBadVJIbmZDTmFxTUhHb0RUeExUMlJGdmlleCtaTWtWanhMZWVHd1NF?=
 =?utf-8?B?eUpsS0l3M21PUkh2TGVVM3UyZno0NFZTb0pnSnduSzBYdlBBVnVhV2RmWVBo?=
 =?utf-8?B?b2h0bXpyMzFEemVxT1Bha21EOXRxUUFjT3ZhR3JpdTFhUFpvdDM3czlCWCtw?=
 =?utf-8?B?RGd2SGt1SG1ZT1ZteExmZG5nSCtCemdlTGNSMktady90aTgzUkZUWDZsV1Vx?=
 =?utf-8?B?TGk1MUY1SjI3MElvYnRIUGZNQlRPT2NablBrcjBMSGJ1MDdBN2JwUmZYUzhu?=
 =?utf-8?B?aGljdi93UGk3N1d1SWNZMGRXQVpRUGt5NGw4QXNuQVc5QjRLNTdEN2JjM0xq?=
 =?utf-8?B?bVFIbStRRFhSNHZwU1Rtb05UdDcvdEc0V29lSkcwNTc3Sm9FV1R0a2VIbFY4?=
 =?utf-8?B?ZFovVUZGbDUwSUZSRlFOSXRIWmRNWXdGNkU1NWVLakF3TlluaFBqL3RhMTBn?=
 =?utf-8?B?amQvVDhiK1UvSUhBWGxJUWJNN2hZZTExLytqUWtUMUNKeCtRZHN2elIrMC84?=
 =?utf-8?B?UVpKQmFvRVh6R1lrVXorbERtVkZ3M3laZjFQdjU1OSs3bW5pcjRXbnBuRC95?=
 =?utf-8?B?ZVdwR0gzcElUMERsMXAxMnVvQ1ZUUWZ5SzJIZDVoeTFBZVgxam9rZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ddfaace-ac37-4e38-df3c-08deab9043bf
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 16:55:23.6721
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: X65THfKAbh1ficGM+nEZM61rEbpcDpvrUJs104ZHK74Ww9um6RW47mvLf38V1ecTMTjq3igLnrWFRHydmDxjEQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5691
X-purgate-ID: tlsNG-d25034/1778086531-E357FCF5-CA28E968/0/0
X-purgate-type: clean
X-purgate-size: 983

On Wed, May 06, 2026 at 06:49:47PM +0200, Marek Marczykowski-Górecki wrote:
> On Wed, May 06, 2026 at 03:55:12PM +0200, Roger Pau Monne wrote:
> > Hello,
> > 
> > Unconditionally zeroing the whole IOMMU MMIO region is dangerous, at
> > least on an upcoming platform this does put the IOMMU in a broken state
> > that's not recoverable by the init procedure in Xen.
> > 
> > Get rid of the zeroing, and instead attempt to disable the IOMMU ahead
> > of enabling it.
> 
> Just to mention it here, while this looks like a step in the right
> direction, even better would be to not disable IOMMU at boot, but
> reconfigure it - to preserve uninterrupted protection when boot time DMA
> protection is enabled in firmware. But that's definitely more work...

Yes, we are aware of this.  But IMO booting with the IOMMU enabled
will be a new feature, this is strictly a fix that we can "safely"
backport to stable branches to deal with broken hardware.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 06 17:17:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 17:17:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1301999.1576097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKfsO-0006L2-Lg; Wed, 06 May 2026 17:17:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1301999.1576097; Wed, 06 May 2026 17:17:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKfsO-0006Kv-Ix; Wed, 06 May 2026 17:17:36 +0000
Received: by outflank-mailman (input) for mailman id 1301999;
 Wed, 06 May 2026 17:17:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mario.Limonciello@amd.com>) id 1wKfsM-0006DX-A4
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 17:17:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKfsL-003Tfk-17
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 19:17:33 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mario.Limonciello@amd.com>)
 id 69fb77ac-e002-0a2a0a5209dd-0a2a4505cdf0-2
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 19:17:32 +0200
Received: from [52.101.193.40]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Mario.Limonciello@amd.com>)
 id 69fb77aa-aaa8-0a2a45050019-3465c128b09b-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 19:17:32 +0200
Received: from SA0PR12MB4557.namprd12.prod.outlook.com (2603:10b6:806:9d::10)
 by EAYPR12MB999133.namprd12.prod.outlook.com (2603:10b6:303:2c1::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Wed, 6 May
 2026 17:17:28 +0000
Received: from SA0PR12MB4557.namprd12.prod.outlook.com
 ([fe80::885a:79b3:8288:287]) by SA0PR12MB4557.namprd12.prod.outlook.com
 ([fe80::885a:79b3:8288:287%5]) with mapi id 15.20.9891.008; Wed, 6 May 2026
 17:17:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yUAMcVnGEQCivMmKagwzrNPHXAQZYjW5+Nq3k6Sx7iHvq810Uw1Kka1s4sbvCaVsxqGWH5QB4mIJXPx70ELVCSvuMYCBKDqhQNYwchjvuclmlCv1Dh+dRBJVNIvaDg2HGlma1oJPnrU8qgunR5l577vQOYDYgEzDN7S1HCTmfMiaRauZP9XZXGc+EOYwBmucHcY7LhkHA9dXSR68Jg6yj/vbVMsSqtVGt31OknIOhibL98vYfzh/5CYzdE1oLaZwYtZU0NjOjPO23gcinPh3jpSes+IUYqg/X1SQVeM4l/PsOckLKRpeIT281piRlRshqz6j0m3g3xmAi70Ko9U+Vw==
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=V9NVsZpXp7wdlk3ZA4diyLo0TbxzKlpQAYGTEuHvLiE=;
 b=mifkQextXN12Wp5yY8QJudUlY0kS98FIupFPiJEvjbPEuwp0y5Z3rfGv0aQbTi1HAHqQQZ1bsc1DHgaRmZnRnOF4Hdks61lCR/77frol33mjZJfFj2CLw9+AGv4j3DM8DXOIElxZm9Y91F9rTJuSz+uG+O+9M/4/7XVOoT0cxJsT10V8y8vUmJZI87EfxYk4oK1rmYGwiXbGnyLOjSpKzGiTSZVtXlk1Tzwtt6cXe7vyWwsZsDZNjNe9UN3UeXcpaBdrD9Htzg+NsG37ReFLHBPrPBbs4kKy0iJBF3vXk0blKSy7VS4dLNXSHBzs/pZidA24OY7BSj6+z6+Rh6VysQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=V9NVsZpXp7wdlk3ZA4diyLo0TbxzKlpQAYGTEuHvLiE=;
 b=kWHG2Od6GkGCkun2qxecFD8JQ1IZOV82h+YjUSKs8/TDBYPcfh013wqxKHwZ3NIb66yQQdQHfxekxUOIr4GLbOGYGMz2WZ7KwXsr79DUwEur9rRCKh8n8LX9whdYz6Vp7QoOnCo34FM/doFzxCrrU0gCk/6iPvZbtMkSEHi2R0k=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <3d73ace6-5eeb-4a1d-a502-4dd5b0d73dab@amd.com>
Date: Wed, 6 May 2026 12:17:24 -0500
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 0/2] x86/amd_node: harden amd_smn_init() against Xen
 dom0 topology
Content-Language: en-US
To: Penny Zheng <penny.zheng@amd.com>, x86@kernel.org
Cc: ray.huang@amd.com, Jason.Andryuk@amd.com, stefano.stabellini@amd.com,
 Yazen Ghannam <yazen.ghannam@amd.com>, Thomas Gleixner <tglx@kernel.org>,
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20260506055528.476493-1-penny.zheng@amd.com>
From: Mario Limonciello <mario.limonciello@amd.com>
In-Reply-To: <20260506055528.476493-1-penny.zheng@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: CH0PR04CA0071.namprd04.prod.outlook.com
 (2603:10b6:610:74::16) To SA0PR12MB4557.namprd12.prod.outlook.com
 (2603:10b6:806:9d::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA0PR12MB4557:EE_|EAYPR12MB999133:EE_
X-MS-Office365-Filtering-Correlation-Id: eef7f5c5-2edf-485c-81d4-08deab93592b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	bvc46vqeRimItM6WYtWznDxyFdUTg6fbucRTVK9OvbE6F0ioJDNWrNI0UmNHb57LLTiJcPw9N+tD8AvW8JvPD3ULbWCmAqWOFYmOWU4fSkW0Axk49Gt/n+GjEwhCG3aV3R69Twm1mO2FbTaz38Ka0dSeZsZ6v4FMpJ/MLqx8225CAAw4FRUEpzitgkETeqUFJGqMDMYxuhtD4eiZxp44Js1gdcMdSH2y0TaUKcZQ07os2ae+rIFmm85RgEKhFxjmpleinLIpgDv6TkFgEBf5l+1ZbRv/1l+x75fyP9vkTL2JQhJq6A3cS9rCWGmliC7Wd52xnmDjTJwL2eJMsoaDGewqVltGh1NK3E5j2Wo4Phh7jArFYj/Sw9KxP35JT82AfocOWi21OgT/jvQ2hbN3vueUUHneOYv0JIcBr6WPd+hiQtI5/051cptKPFqzC2XbS+BgIaXmWFzQoivhMn6IKuP+M4LR2gZxCDHu1Ky8zlqqyJgfssGPGfOd98jGCJV32+0HY1PbTqZiYMRNsa68tIdWr+ir7p5Mbxy8W7P1jMX28D4f0vEcKqjFsiidxeB2+SdbUPynheUqnWTmVTVQGZ3nvzResEVZLcImIjx7TweDa2tx1B6Ed1fx/LAaGHmgwQMh55gW8fo72O+CJV67FjIVMFhZ+lBLu5tpQ8h4BGt/ifPjmb1yhTRGYvMP7uf/
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA0PR12MB4557.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZUVHdFdnaDZrNWIzY3BVSFp3RjVMRUVBL2pNQ1hibDFJbi9xQXhkcC83NDRu?=
 =?utf-8?B?b054d2ZQZXJhbUliRU92QlpIYU9XckRNeU4rbk1RYTJ6RWtya0FoSUNEY1g5?=
 =?utf-8?B?WHg0bEQvU2dqcE83OEpoQXFNTVE5WjNjUzRCa0tTaW1iRW9BcXRmbENuSWlW?=
 =?utf-8?B?NFlNc1dIa0RQTy82Q05ScGZoNEM4VWI0dXRBazJoK1BERHQ2cy9SVDg1Qmxq?=
 =?utf-8?B?SzBQdndUeVFZVjQ2SXZEQktTcWZNbldDbWVSZ3NpaTVoYnNiUzRsWW8yOUpk?=
 =?utf-8?B?NVlVQlFicVdKOUxNNDNKbDNudHdGdWVXeVBlM2FLV3UzSWg4UjZtYW1aclFX?=
 =?utf-8?B?NDlGUlNmQWRIQXRUb2VCMGoveWpTZmdwUGRsT2loeDZ4Vm82Zm9pSW5vRWhk?=
 =?utf-8?B?dEZtUDA1WldvaUVySWJHNkliQng3KzJFWk0wNHhYZWJRMnpmWjBsU1QwVllE?=
 =?utf-8?B?RGNxSlBpYzJHK1E4VURNYmVRK205RjR2a0NzdEoxMzQ0REZKRDViSnVsdzBy?=
 =?utf-8?B?VmFJaVQ5cGlSaXJORWoxY3MwcG8vTTZPMllQcnZBOFVNK0lRaHY0Z1N0VmtU?=
 =?utf-8?B?OWI2VDJoUzIyWUlPSDBOaHNEK1E1d2E2U0tzK1hJTFZ3YWVtZ1FnNmFwMDhL?=
 =?utf-8?B?WmV1OFhraEdPbWkvWHlMTDA3Z2lmcGs5UERXUlRyUldFWFF3TkdHenJSbkFX?=
 =?utf-8?B?VnU1UnM3ejhTYThpbHd2d1VveTZUVmI5WXJrcGIvUmI3TUJCNFpSM01aS1kz?=
 =?utf-8?B?RDd5Z3U1NGZLbGIwK2hrS2VkeStQTlo5NEFxSk5GeE9yenVvTHJKK3M2ZFpr?=
 =?utf-8?B?YXhmQ1B3OUUwVmJBSnJrdnpnUk94SDJWSm0wY2M3R1dBZTNpdkc5alNLWndr?=
 =?utf-8?B?OUIvdTNWSGtFcUlwQ2o0bS8yQjZLcVVkaDV2Ykpja0NLMFIwa3VhOVFreHZF?=
 =?utf-8?B?UkVMcWNhNGdjcHd4ZnFXT2U4d2hLRDRLQWxNS0tHTDNmNkdtVUJmWlBWOEFj?=
 =?utf-8?B?VU9sOUpXWGc3cVhIOXcybDVLUW9DajVWNzBqdUY5d1pOMDh4bFI3eDAxQ2ta?=
 =?utf-8?B?aXd6dkNjalovbVpPRG9ZS3d6NFNKcTJQYndEbkFNNHB2ZkdGRjI2ajRlWEUz?=
 =?utf-8?B?Q0JpZ0NmOS9OaDdwbWpaNVMrK2wrd0N2TDh3dU5FSytQS1dFLy9EMjJxWGdC?=
 =?utf-8?B?d3FvSi8vb2tDb3pnVCtJTm5FY21LU3BPbVRhRDhCYkZmU0xZR0JqdVI2QWNO?=
 =?utf-8?B?QkxpeDRBYkZ6YVRHZklKSlpvSE9WT2I2S0lPOGZZY0w3TUQyTTM5OE9GM2tD?=
 =?utf-8?B?ZW10aXFjTjNJcm5tYm9OMmdVVTFybXFKRGZ3Q3R6VEpVaG84UGcvejgwZ0ZE?=
 =?utf-8?B?SnF5L2o2eFNoOFBUdzdZV0pxNnJ4bkl6MjdpSjlLcWxNbWVWMnB1R3NWUmRN?=
 =?utf-8?B?ejJoMGEzZ25COHg1U2o3K2JnRi9SMHFuRFRmTzZxRTBHMjZuVWtQaEhEemFq?=
 =?utf-8?B?UDcrYWlQMllrMitFUFdXZkl6ZzlNNk9OTjFZdWVzdy9LTWI1cE9SNFdDS3U4?=
 =?utf-8?B?QkFmMjIrQXFxTUlsSStvampPeWd0Yk9NTTNocGFPRXptYXRibjVzb3ZtNndt?=
 =?utf-8?B?Y2FBVENwWGVkV2IvNmFwOUM4U2RXWXJCSERFdVlDZEMyV3UrdmoxU3VXODN4?=
 =?utf-8?B?RmtwWkNzUW5DZ3RQZzl4ZHBjZWhpeU84bEpiM2xvdG0xZ3pHcXpIS0s4aXly?=
 =?utf-8?B?TmF4QUVXUjIwYjc4czBRQTFSd200SnhnRjlpZURZWFE0czh5anZKcFZEWWZU?=
 =?utf-8?B?SUVyOENJbEdkRmgrL3p6aUpFUWl3clRQU2Z4ZHFIbXdZUmhHQnRRS01sMWRp?=
 =?utf-8?B?aXM1eFhBZ016VFd4RDJCVVpGSFBOK25laU9kcFpjRXA1U1p1bEk3KzhyZ0Yy?=
 =?utf-8?B?QzJHOXNXMCt4aHp6ZS8zdzRPMjNkSHpwdDhrM0J0YkhUcEZVTGNlYzhaSWd5?=
 =?utf-8?B?by90dUxINCs5bk96d01EaDRvVm9TM3ZyOVRHK1ZTcUhCa1pzNFJ4b3A4NGpn?=
 =?utf-8?B?RHhpU01LZTk1OTRIOEs1L3BIZDVPSndhZEpCRlVCdjNCOXVjaVpaTGdkSmU5?=
 =?utf-8?B?TFI4cnpzZHJxcWVwMkphYUJVZzkxaTc3bzY2SncyZ3hiM01rRTM2RFBBTnpz?=
 =?utf-8?B?ajBQK2hkT0ZoRGxHeWdXd3NoWnFOWk9DWDBqRy9vMDlmODVENVhtcVYybkUz?=
 =?utf-8?B?S29uMGN2NkxVY2F4NXlDNmR5anZSbFhveW9RRHI2b0VrVDJ2a3NTeVpxL2RZ?=
 =?utf-8?Q?nccnyrrJqZOhhMyBS+?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eef7f5c5-2edf-485c-81d4-08deab93592b
X-MS-Exchange-CrossTenant-AuthSource: SA0PR12MB4557.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 17:17:28.0055
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pe4W4i5eSBwlVpF+hJJ/GzKSZyPRhwO10n5YOmD4s9k/3nTeQ2ajhaoKU6zLxw/1MUJRfKSlU5XHmdsCAKiFDw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: EAYPR12MB999133
X-purgate-ID: tlsNG-c201ff/1778087852-D3D67443-96C7A2FF/0/0
X-purgate-type: clean
X-purgate-size: 1389



On 5/6/26 00:55, Penny Zheng wrote:
> While booting a recent linux-next kernel as a Xen PVH dom0 on x86, the kernel
> oopses very early during fs_initcall:
> 
>    Oops: divide error: 0000 [#1] SMP NOPTI
>    RIP: 0010:amd_smn_init+0x188/0x2e0
> 
> Followed: on a kernel that survives the divide, it will fail by a NULL pointer
> dereference from the first SMN consumer (amd_pmc_probe -> amd_smn_read).

So to confirm - does amd_pmc_probe work properly with this series now?

> 
> Root cause
> ==========
> 
> To prevent each dom0 vCPU from looking like an SMT sibling of another
> vCPU, Xen synthesizes guest x2APIC IDs as vcpu_index * 2. This spacing every
> vCPU's APIC ID by 2 can push the synthesized IDs past the package-field
> boundary. Linux then infers more "packages" and therefore more AMD
> nodes via amd_num_nodes() than the platform actually has, while the
> PCI-side host-bridge scan correctly reports the number of root complex.
> 
> The fixes are tested on Xen 4.20 PVH dom0 on AMD Zen (16 vCPUs) on top of
> linux-next/master (next-20260505).
> 
> Penny Zheng (2):
>    x86/amd_node: avoid divide-by-zero in amd_smn_init() under Xen dom0
>    x86/amd_node: reject SMN access when amd_smn_init() did not complete
> 
>   arch/x86/kernel/amd_node.c | 23 ++++++++++++++++++++---
>   1 file changed, 20 insertions(+), 3 deletions(-)
> 



From xen-devel-bounces@lists.xenproject.org Wed May 06 20:59:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 20:59:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302065.1576115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKjKc-0001V9-PE; Wed, 06 May 2026 20:58:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302065.1576115; Wed, 06 May 2026 20:58:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKjKc-0001V1-KX; Wed, 06 May 2026 20:58:58 +0000
Received: by outflank-mailman (input) for mailman id 1302065;
 Wed, 06 May 2026 20:58:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wKjKb-0001Uv-GR
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 20:58:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKjKa-00EinO-FX
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 22:58:56 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69fbab8d-2eae-0a2a0a5409dd-0a2a4504af5e-8
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 22:58:56 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69fbab8e-1dec-0a2a45040019-aceafc1feafa-3
 for <xen-devel@lists.xenproject.org>; Wed, 06 May 2026 22:58:55 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id E8FFE432DE;
 Wed,  6 May 2026 20:58:53 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 93889C2BCB0;
 Wed,  6 May 2026 20:58:53 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778101133;
	bh=ygxCrxTmtdcv24MTN9N1JC/G1qLohRd86Aj4uEoj9T0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=nFQtCTj8ZS7lgsOVZDHIWOc6O0JOvqyXujLxzkeg2Ma1NvSukyFY7DIwSm6zhrm2Z
	 XCgeaIHhdd1AfF17aXtS7H83p0QM/CogJzykqUhZUrn5y+rqjEQHDnvr3FhbRPJnkX
	 etz8gpN4csyG832+Ek0qfFWiVycVgspV1oSqynJ8a9XdsV7aGI0XYlgqa7DU+WegWk
	 t2iFFCwq3m9M+kxbAfse0KMYRoxpCG/QnguCh9XeKnoyXDlkPpTSdgzjKYwJG5zN7v
	 bhaOc71bziYjb6heDwA9xMjAwSHxIwIOq5xO06NnR33tRnycz6wQrS8OBUTTUj7G/l
	 0RmMCuMP2IzJA==
Date: Wed, 6 May 2026 13:58:53 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <Luca.Fancellu@arm.com>
cc: Michal Orzel <michal.orzel@amd.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <Bertrand.Marquis@arm.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v3] xen/arm: skip holes in physical address space when
 setting up frametable
In-Reply-To: <1EAB6ED4-3D64-4074-830B-EB9F8AD88547@arm.com>
Message-ID: <alpine.DEB.2.22.394.2605061358480.512397@ubuntu-linux-20-04-desktop>
References: <20260506084137.40913-1-michal.orzel@amd.com> <1EAB6ED4-3D64-4074-830B-EB9F8AD88547@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-515320797-1778101133=:512397"
X-purgate-ID: tlsNG-ebf023/1778101136-42B633FF-1C15BF66/0/0
X-purgate-type: clean
X-purgate-size: 6386

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-515320797-1778101133=:512397
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Wed, 6 May 2026, Luca Fancellu wrote:
> Hi Michal,
> 
> > diff --git a/xen/arch/arm/mmu/mm.c b/xen/arch/arm/mmu/mm.c
> > index 6604f3bf4e6a..c4018a61aa01 100644
> > --- a/xen/arch/arm/mmu/mm.c
> > +++ b/xen/arch/arm/mmu/mm.c
> > @@ -6,18 +6,55 @@
> 
> Should we have also #include <xen/bitops.h> because we use
> find_next_*? Apologies I missed this in previous reviews.
> 
> > #include <xen/mm.h>
> > #include <xen/mm-frame.h>
> > #include <xen/pdx.h>
> > +#include <xen/sizes.h>
> > #include <xen/string.h>
> > 
> > -/* Map a frame table to cover physical addresses ps through pe */
> > -void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
> > +static void __init init_frametable_chunk(unsigned long pdx_s,
> > +                                         unsigned long pdx_e)
> > {
> > -    unsigned long nr_pdxs = mfn_to_pdx(mfn_add(maddr_to_mfn(pe), -1)) -
> > -                            mfn_to_pdx(maddr_to_mfn(ps)) + 1;
> > -    unsigned long frametable_size = nr_pdxs * sizeof(struct page_info);
> > -    mfn_t base_mfn;
> > -    const unsigned long mapping_size = frametable_size < MB(32) ? MB(2)
> > -                                                                : MB(32);
> > +    unsigned long nr_pdxs = pdx_e - pdx_s;
> > +    unsigned long chunk_size = nr_pdxs * sizeof(struct page_info);
> > +    unsigned long pfn_align;
> > +    struct page_info *pg;
> >     int rc;
> > +    mfn_t base_mfn;
> > +
> > +    /*
> > +     * In-loop chunks span whole PDX groups, which are always page-size
> > +     * aligned. The last chunk ending at max_pdx may not be, so round up.
> > +     */
> > +    chunk_size = ROUNDUP(chunk_size, PAGE_SIZE);
> > +
> > +    /*
> > +     * Try to align the allocation to the contiguous mapping size so that
> > +     * map_pages_to_xen() can use the contiguous bit.
> > +     */
> > +    pfn_align = ((chunk_size >= MB(32)) ? MB(32) : MB(2)) >> PAGE_SHIFT;
> > +
> > +    base_mfn = alloc_boot_pages(chunk_size >> PAGE_SHIFT, pfn_align);
> > +
> > +    /*
> > +     * Resolve the frametable VA via mfn_to_page(pdx_to_mfn(...)) rather
> > +     * than pdx_to_page() because the generic pdx_to_page() does not subtract
> > +     * frametable_base_pdx. There's more work to be done to make it generic, so
> > +     * for now route through mfn_to_page(), which on Arm applies the
> > +     * frametable_base_pdx offset and yields the correct VA.
> > +     */
> > +    pg = mfn_to_page(pdx_to_mfn(pdx_s));
> > +    rc = map_pages_to_xen((unsigned long)pg, base_mfn,
> > +                          chunk_size >> PAGE_SHIFT,
> > +                          PAGE_HYPERVISOR_RW | _PAGE_BLOCK);
> > +    if ( rc )
> > +        panic("Unable to setup the frametable mappings\n");
> > +
> > +    memset(pg, 0, nr_pdxs * sizeof(struct page_info));
> > +    memset(pg + nr_pdxs, -1,
> > +           chunk_size - nr_pdxs * sizeof(struct page_info));
> > +}
> > +
> > +void __init init_frametable(paddr_t ram_start)
> > +{
> > +    unsigned int sidx, nidx, max_idx;
> > 
> >     /*
> >      * The size of paddr_t should be sufficient for the complete range of
> > @@ -26,24 +63,40 @@ void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
> >     BUILD_BUG_ON((sizeof(paddr_t) * BITS_PER_BYTE) < PADDR_BITS);
> >     BUILD_BUG_ON(sizeof(struct page_info) != PAGE_INFO_SIZE);
> > 
> > -    if ( frametable_size > FRAMETABLE_SIZE )
> > -        panic("The frametable cannot cover the physical region %#"PRIpaddr" - %#"PRIpaddr"\n",
> > -              ps, pe);
> > +    /* init_frametable_chunk() allocation alignment assumes 4KB granule */
> > +    BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
> > 
> > -    frametable_base_pdx = mfn_to_pdx(maddr_to_mfn(ps));
> > -    /* Round up to 2M or 32M boundary, as appropriate. */
> > -    frametable_size = ROUNDUP(frametable_size, mapping_size);
> > -    base_mfn = alloc_boot_pages(frametable_size >> PAGE_SHIFT, 32<<(20-12));
> > +    /* In-loop chunks must produce page-aligned frametable regions */
> > +    BUILD_BUG_ON((PDX_GROUP_COUNT * sizeof(struct page_info)) % PAGE_SIZE);
> > 
> > -    rc = map_pages_to_xen(FRAMETABLE_VIRT_START, base_mfn,
> > -                          frametable_size >> PAGE_SHIFT,
> > -                          PAGE_HYPERVISOR_RW | _PAGE_BLOCK);
> > -    if ( rc )
> > -        panic("Unable to setup the frametable mappings.\n");
> > +    max_idx = DIV_ROUND_UP(max_pdx, PDX_GROUP_COUNT);
> > +    frametable_base_pdx = mfn_to_pdx(maddr_to_mfn(ram_start));
> > +
> > +    /*
> > +     * Mapping address in init_frametable_chunk must be page-aligned
> > +     * for map_pages_to_xen(). Aligning to PDX_GROUP_COUNT guarantees this
> > +     * because PDX_GROUP_COUNT * sizeof(page_info) is always a multiple of
> > +     * PAGE_SIZE by construction.
> > +     */
> > +    frametable_base_pdx = ROUNDDOWN(frametable_base_pdx, PDX_GROUP_COUNT);
> > +
> > +    if ( (max_pdx - frametable_base_pdx) > FRAMETABLE_NR )
> > +        panic("Frametable too small\n");
> > +
> > +    for ( sidx = (frametable_base_pdx / PDX_GROUP_COUNT); ; sidx = nidx )
> > +    {
> > +        unsigned int eidx;
> > +
> > +        eidx = find_next_zero_bit(pdx_group_valid, max_idx, sidx);
> > +        nidx = find_next_bit(pdx_group_valid, max_idx, eidx);
> > +
> > +        if ( nidx >= max_idx )
> > +            break;
> > +
> > +        init_frametable_chunk(sidx * PDX_GROUP_COUNT, eidx * PDX_GROUP_COUNT);
> > +    }
> > 
> > -    memset(&frame_table[0], 0, nr_pdxs * sizeof(struct page_info));
> > -    memset(&frame_table[nr_pdxs], -1,
> > -           frametable_size - (nr_pdxs * sizeof(struct page_info)));
> > +    init_frametable_chunk(sidx * PDX_GROUP_COUNT, max_pdx);
> > }
> 
> 
> Apart from that the rest looks ok to me. I’ve also tested for Arm64 MMU/MPU and Arm32 MMU.
> 
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> Tested-by: Luca Fancellu <luca.fancellu@arm.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>
--8323329-515320797-1778101133=:512397--


From xen-devel-bounces@lists.xenproject.org Wed May 06 22:19:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 May 2026 22:19:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302086.1576124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKkaQ-0003Tp-8Q; Wed, 06 May 2026 22:19:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302086.1576124; Wed, 06 May 2026 22:19:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKkaQ-0003Ti-4z; Wed, 06 May 2026 22:19:22 +0000
Received: by outflank-mailman (input) for mailman id 1302086;
 Wed, 06 May 2026 22:19:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <robh@kernel.org>) id 1wKkaO-0003Tc-G9
 for xen-devel@lists.xenproject.org; Wed, 06 May 2026 22:19:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKkaN-00B1ni-DC
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 00:19:19 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <robh@kernel.org>)
 id 69fbbe41-e002-0a2a0a5209dd-0a2a450b8132-12
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 00:19:19 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <robh@kernel.org>)
 id 69fbbe66-212f-0a2a450b0019-ac6904fed12c-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 00:19:19 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 8C9096013B;
 Wed,  6 May 2026 22:19:17 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0F5ECC2BCB0;
 Wed,  6 May 2026 22:19:17 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:Cc:Subject:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778105957;
	bh=gysC/lx1i73eA4zP8jwgbWYpicdKVkkAq/If5SfmOvk=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=UF/aj9HS2SYPYHTIXkOa8lL3owagoxJHzGMhyRFSAxj+GJL8gP8yC5+XoLLz6s1x5
	 X9cL5R+VcjnFIjQexqIW2yM4i2kvMQEHMnTIu0Lb82lcqBkA1Hg3vvTFnYScS91BuS
	 2N40C7auuO3CTglHzgoaPeo24WGlW/+zx0190iYZVTD6bGYt2OnLQxGXS+Zi31QbCo
	 BSVOloj3oH2LafE2j6H0SnRWGMGyru24IxEPo4APpEHqlKdF+7EKoOV6XhFqOa+f3G
	 bqbSLPeKNIjTZdxVJ1+2t3TbHL1Z+PbeCe39zAx2EWiABfykEikLE4KgvyrMiahx6n
	 +1VGvBd4tB8Jw==
Date: Wed, 6 May 2026 17:19:15 -0500
From: Rob Herring <robh@kernel.org>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
	Lorenzo Pieralisi <lpieralisi@kernel.org>,
	Thomas Gleixner <tglx@kernel.org>,
	Saravana Kannan <saravanak@kernel.org>,
	Richard Zhu <hongxing.zhu@nxp.com>,
	Lucas Stach <l.stach@pengutronix.de>,
	Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
	Manivannan Sadhasivam <mani@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
	Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
	Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
	Conor Dooley <conor+dt@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
	Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
	linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
	linux-pci@vger.kernel.org, imx@lists.linux.dev,
	xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
	Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v14 0/3] of: parsing of multi #{iommu,msi}-cells in maps
Message-ID: <20260506221915.GA3290640-robh@kernel.org>
References: <20260424-parse_iommu_cells-v14-0-fd02f11b6c38@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260424-parse_iommu_cells-v14-0-fd02f11b6c38@oss.qualcomm.com>
X-purgate-ID: tlsNG-42698a/1778105959-18F66F3B-070AFEBA/0/0
X-purgate-type: clean
X-purgate-size: 1480

On Fri, Apr 24, 2026 at 11:26:07AM +0530, Vijayanand Jitta wrote:
> So far our parsing of {iommu,msi}-map properties has always blindly
> assumed that the output specifiers will always have exactly 1 cell.
> This typically does happen to be the case, but is not actually enforced
> (and the PCI msi-map binding even explicitly states support for 0 or 1
> cells) - as a result we've now ended up with dodgy DTs out in the field
> which depend on this behaviour to map a 1-cell specifier for a 2-cell
> provider, despite that being bogus per the bindings themselves.
> 
> Since there is some potential use[1] in being able to map at least
> single input IDs to multi-cell output specifiers (and properly support
> 0-cell outputs as well), add support for properly parsing and using the
> target nodes' #cells values, albeit with the unfortunate complication of
> still having to work around expectations of the old behaviour too.
> 							-- Robin.
> 
> Unlike single #{}-cell, it is complex to establish a linear relation
> between input 'id' and output specifier for multi-cell properties, thus
> it is always expected that len never going to be > 1.
> 
> These changes have been tested on QEMU for the arm64 architecture.
> 
> Since, this would also need update in dt-schema, raised PR[2] for the
> same.

Sashiko has some thoughts on the series:

https://sashiko.dev/#/patchset/20260424-parse_iommu_cells-v14-0-fd02f11b6c38%40oss.qualcomm.com

Rob


From xen-devel-bounces@lists.xenproject.org Thu May 07 00:49:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 00:49:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302116.1576133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKmv5-0006HY-Iq; Thu, 07 May 2026 00:48:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302116.1576133; Thu, 07 May 2026 00:48:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKmv5-0006HQ-Fj; Thu, 07 May 2026 00:48:51 +0000
Received: by outflank-mailman (input) for mailman id 1302116;
 Thu, 07 May 2026 00:48:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wKmv4-0006HK-EV
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 00:48:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKmv3-001jGE-QQ
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 02:48:49 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69fbe0ea-bab6-0a2a0a5309dd-0a2a4509aa8c-30
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 02:48:49 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69fbe170-2497-0a2a45090019-ac6904fed2c4-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 02:48:49 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 2F0276015B;
 Thu,  7 May 2026 00:48:48 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A5984C2BCB0;
 Thu,  7 May 2026 00:48:47 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778114927;
	bh=VFTRKlWlr18PXmxokwVZ1cjbCqrjaeYTuYsJxa0Mp28=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=K4I2/r2FHQYBhsi6RgISDx0SWkyzoAMpMGQj63ULvbbVz8UvRTEuVtJhwk2icyqiQ
	 CP4wPMQeb1qc0HnkN9EZZqFwruyWFU0qTuqng0HHyF22wP+I89lvnQj/62/+/fOnz8
	 p2xR/ANWcCJF6RsK/mZvIFCXN/Uo6918Xa3o7Jf9nM40WqaTEVBQKziXDhy9Q3LMnc
	 cjQ1dLINhDiKIfq20pBaIa29tIcZ1E+qENjGV1WrfwrzzOa+qN2mZ39LJd6X1CiTko
	 YESdryHbp2wK+TPSFt7G6Km83bcbFSGqNwjAjvUrpLId5q/2RCMCKVFTAifbLMsiYP
	 iKUlVKoVLX17Q==
Date: Wed, 6 May 2026 17:48:44 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] CI: collect certain intermediate files as artifacts
In-Reply-To: <6d9345e7-7ad9-48f4-8447-3a955305430a@suse.com>
Message-ID: <alpine.DEB.2.22.394.2605061748080.1744448@ubuntu-linux-20-04-desktop>
References: <6d9345e7-7ad9-48f4-8447-3a955305430a@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-bad1c0/1778114929-40F66A53-FB37C0E6/0/0
X-purgate-type: clean
X-purgate-size: 1902

On Wed, 6 May 2026, Jan Beulich wrote:
> When one of the linking passes fails, additional intermediate files are
> still in place. Having them available for analysis of the underlying
> problem can be pretty helpful. Collect some into a new intermediates/
> directory. (Nothing new will be collected if linking succeeds.)
> 
> While there also make sure xen-syms is collected (into binaries/). This
> is rather more useful for analysis of possible problems than its stripped
> counterpart.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> As the issue this is meant to help with didn't re-occur with this in
> place, the new logic wasn't really tested yet.

It looks OK but please provide a link to a successful pipeline

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -6,6 +6,7 @@
>    artifacts:
>      paths:
>        - binaries/
> +      - intermediates/
>        - xen-config
>        - xen-cppcheck.txt
>        - '*.log'
> --- a/automation/scripts/build
> +++ b/automation/scripts/build
> @@ -41,18 +41,24 @@ fi
>  # to exit early -- bash is invoked with -e.
>  cp xen/.config xen-config
>  
> -# Directory for the artefacts to be dumped into
> -mkdir -p binaries
> +# Directories for the artefacts to be dumped into
> +mkdir -p binaries intermediates
>  
>  collect_xen_artefacts()
>  {
>      local f
>  
> -    for f in xen/xen xen/xen.efi; do
> +    for f in xen/xen xen/xen-syms xen/xen.efi; do
>          if [[ -f $f ]]; then
>              cp $f binaries/
>          fi
>      done
> +
> +    for f in xen/.xen-syms.* xen/.xen.efi.*; do
> +        if [[ -f $f ]]; then
> +            cp $f intermediates/
> +        fi
> +    done
>  }
>  
>  if [[ "${CPPCHECK}" == "y" ]] && [[ "${HYPERVISOR_ONLY}" == "y" ]]; then
> 


From xen-devel-bounces@lists.xenproject.org Thu May 07 00:54:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 00:54:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302123.1576142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKn0s-0007n5-5g; Thu, 07 May 2026 00:54:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302123.1576142; Thu, 07 May 2026 00:54:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKn0s-0007my-2K; Thu, 07 May 2026 00:54:50 +0000
Received: by outflank-mailman (input) for mailman id 1302123;
 Thu, 07 May 2026 00:54:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wKn0r-0007mp-7v
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 00:54:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKn0q-0007Jm-5b
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 02:54:48 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69fbe21c-5cb7-0a2a0a5109dd-0a2a4503b7a2-38
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 02:54:48 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69fbe2d7-672d-0a2a45030019-ac6904fed348-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 02:54:48 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id B19356015B;
 Thu,  7 May 2026 00:54:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 472D7C2BCB0;
 Thu,  7 May 2026 00:54:46 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778115286;
	bh=Ek9bTwceeuiXv/WjhJvVjjRg1bG1EaP6Qb0v8Nf8Pyk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=J3aCLhxPyF3J2dzgx6oGACMc+1Fwtxm+TPhkmZic7491Rhyk+39pfpUO9BPCyQUEt
	 h7JzaxjhI0eFbs3q39hKF8kSDTS3ncdetI21UFDTzFy9f6EXy/sOGWTumk9I2PTJ6P
	 c+uKWTbb1FyOqz2MiCHGvOST+tdotsA2irfABDGM4iYmXBGEn/qZ9AeTEY/2G5EJSO
	 oqQCpYw8dJ27osvfgjTcVnZ6ERHSyokADzHVEiP54sI7MGDMOLOb6ocdBIGwRhsNLE
	 zgkPyPwA4tKQpR23dztRwUjSXGABYmj4Wbh6T3yLr6p1rCRb4fENv6vLwZMh8iiYYG
	 EMe1bbqpBwv4g==
Date: Wed, 6 May 2026 17:54:45 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Stefano Stabellini <sstabellini@kernel.org>
cc: Jan Beulich <jbeulich@suse.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] CI: collect certain intermediate files as artifacts
In-Reply-To: <alpine.DEB.2.22.394.2605061748080.1744448@ubuntu-linux-20-04-desktop>
Message-ID: <alpine.DEB.2.22.394.2605061753050.1744448@ubuntu-linux-20-04-desktop>
References: <6d9345e7-7ad9-48f4-8447-3a955305430a@suse.com> <alpine.DEB.2.22.394.2605061748080.1744448@ubuntu-linux-20-04-desktop>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-33051d/1778115288-3B96D938-4AB74556/0/0
X-purgate-type: clean
X-purgate-size: 2254

On Wed, 6 May 2026, Stefano Stabellini wrote:
> On Wed, 6 May 2026, Jan Beulich wrote:
> > When one of the linking passes fails, additional intermediate files are
> > still in place. Having them available for analysis of the underlying
> > problem can be pretty helpful. Collect some into a new intermediates/
> > directory. (Nothing new will be collected if linking succeeds.)
> > 
> > While there also make sure xen-syms is collected (into binaries/). This
> > is rather more useful for analysis of possible problems than its stripped
> > counterpart.
> > 
> > Signed-off-by: Jan Beulich <jbeulich@suse.com>
> > ---
> > As the issue this is meant to help with didn't re-occur with this in
> > place, the new logic wasn't really tested yet.
> 
> It looks OK but please provide a link to a successful pipeline
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Actually, I see that the build script is run with bash -ex so I wonder
if collect_xen_artefacts would even run if make fails. I think we need: 

trap collect_xen_artefacts EXIT


> > --- a/automation/gitlab-ci/build.yaml
> > +++ b/automation/gitlab-ci/build.yaml
> > @@ -6,6 +6,7 @@
> >    artifacts:
> >      paths:
> >        - binaries/
> > +      - intermediates/
> >        - xen-config
> >        - xen-cppcheck.txt
> >        - '*.log'
> > --- a/automation/scripts/build
> > +++ b/automation/scripts/build
> > @@ -41,18 +41,24 @@ fi
> >  # to exit early -- bash is invoked with -e.
> >  cp xen/.config xen-config
> >  
> > -# Directory for the artefacts to be dumped into
> > -mkdir -p binaries
> > +# Directories for the artefacts to be dumped into
> > +mkdir -p binaries intermediates
> >  
> >  collect_xen_artefacts()
> >  {
> >      local f
> >  
> > -    for f in xen/xen xen/xen.efi; do
> > +    for f in xen/xen xen/xen-syms xen/xen.efi; do
> >          if [[ -f $f ]]; then
> >              cp $f binaries/
> >          fi
> >      done
> > +
> > +    for f in xen/.xen-syms.* xen/.xen.efi.*; do
> > +        if [[ -f $f ]]; then
> > +            cp $f intermediates/
> > +        fi
> > +    done
> >  }
> >  
> >  if [[ "${CPPCHECK}" == "y" ]] && [[ "${HYPERVISOR_ONLY}" == "y" ]]; then
> > 
> 


From xen-devel-bounces@lists.xenproject.org Thu May 07 06:49:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 06:49:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302169.1576151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKsXX-0002Lo-Hu; Thu, 07 May 2026 06:48:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302169.1576151; Thu, 07 May 2026 06:48:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKsXX-0002Le-Cf; Thu, 07 May 2026 06:48:55 +0000
Received: by outflank-mailman (input) for mailman id 1302169;
 Thu, 07 May 2026 06:48:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKsXW-0002LY-8C
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 06:48:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKsXV-00BrPz-5s
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:48:53 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69fc35c9-5cb7-0a2a0a5109dd-0a2a4509cea2-28
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 08:48:52 +0200
Received: from [52.101.193.58]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69fc35d3-2497-0a2a45090019-3465c13a199b-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 08:48:52 +0200
Received: from MW4PR04CA0210.namprd04.prod.outlook.com (2603:10b6:303:86::35)
 by LV8PR12MB9619.namprd12.prod.outlook.com (2603:10b6:408:2a1::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Thu, 7 May
 2026 06:48:43 +0000
Received: from SJ1PEPF000023D8.namprd21.prod.outlook.com
 (2603:10b6:303:86:cafe::55) by MW4PR04CA0210.outlook.office365.com
 (2603:10b6:303:86::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.17 via Frontend Transport; Thu,
 7 May 2026 06:48:42 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ1PEPF000023D8.mail.protection.outlook.com (10.167.244.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.1 via Frontend Transport; Thu, 7 May 2026 06:48:42 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 7 May
 2026 01:48:42 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 6 May
 2026 23:48:41 -0700
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 7 May 2026 01:48:40 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MByHTuFJfj6xJDWHKN0NGM9U1kI2DLzFWfAqaZmfxPDjJQHJ22BNXfyZi0Uvom9h1y7ZubMv4qQOQeh26uAXnk8RMkyCSw2rjdImmkmwhapf85fqa0mVnJIY+DNMvAGjxEDTEhM9oYsAwW519vemsp0x9yh+i9OqD2UXNy2IIE+v9kIU00i06Q31i6q7fDzFIXlgoVLjZ23LZQTskM9i1SjqFpMKcg1j6XH2h35AmZLEUIgNwVvA3OCf0KPtLIg18oSBZU1+a7qzfDkgsPbC2nYA0YIFRJqgU00EB3cO4SvG4ZO/RjhVtatvcIh4Gl8upBV/rZbizJwuy4FjSgoVzw==
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=HQnsXo8ShLlcSLHfB3gU9u0PBi2v1z/C0PjQy49ENPM=;
 b=FfjLNfnbLMMj6tv7RUEyOjbrkapi9J3jRfPeGvjEmn7gf5/a14rI/+noOas6a8TcFqQDVCEndodZ9aDnp1Lu/0y9QSfLbbqiG1JC7zGHjmpGJdSX6GS9b6ICgpBwzhuF195uphwHovza9sDMS2vziOCGE1SExB+xPCj+JmR6Bkl0JKeTizU32FTLXpy9mmn2XmCYH7HEk6srtcT8UUvgm2/f78DZmCHKrxJSBHuRgGLoKpXyRvAGmQg0wdj3Re5fX1N/Oiyja997CI7I2wqzM3gooAtp5bC0pMrXQMOJ4R+Ky2oUNOHM4DFcXDovLZ+ai2ic3Cig+V4IS77cZ0SYXQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HQnsXo8ShLlcSLHfB3gU9u0PBi2v1z/C0PjQy49ENPM=;
 b=EfUNE6WnAg1G3K6gMpk/rLyzZiZqsjHY6sGZbH8+tkydXnYaUAlcWVf97zfmC3agOKaRFHZhVGU1QJZpxaGOUS69is5OVX8sAPu7DPipAUP4HmAEmInTt4q+64EXsvyiX3v44uzV/1mr+aPPv2YPF+KEH4II7n1jUm/g6VSa+eA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <8375cb34-9e95-4ca7-9d72-4dcf9fbe27c7@amd.com>
Date: Thu, 7 May 2026 08:48:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/3] xen: introduce CONFIG_HAS_DOMAIN_TYPE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>, Jan Beulich
	<jbeulich@suse.com>
CC: Romain Caritey <Romain.Caritey@microchip.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, <xen-devel@lists.xenproject.org>
References: <cover.1777296786.git.oleksii.kurochko@gmail.com>
 <7c91e1a705e1046be4af1c5671a8d91cf3557013.1777296786.git.oleksii.kurochko@gmail.com>
 <5daeb8f7-cf0f-4ea7-a686-93df36b43a30@suse.com>
 <2ec5eec1-0a7d-445f-9d96-99b3070afeb1@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <2ec5eec1-0a7d-445f-9d96-99b3070afeb1@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023D8:EE_|LV8PR12MB9619:EE_
X-MS-Office365-Filtering-Correlation-Id: 88fbf7d7-2051-43d6-0a69-08deac04adae
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700016|82310400026|7416014|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	9WcO3wZriRiSUg02H7d4cG/sjHJC4YlmxZiO1YKmpeY05vBkc2lx4so5zKZ8xhYbsdCVZ9cb/nM0MHsH48u4nsk0rxU8L1yCasracCFB1p28CeTuMMjcoL01vSblS/ILoaRzk2plmIhJqDNFkFgCtrsCqMHd1bhxnox4p2fm/6zel3FC5eps5R2okN1+AIUfUEKLfj7/lC7rQdxf7rKffvEu7imI8wfpXkwBdntP4bLSEsj31XNAQK2zLdOM4ebFeGJnhEnAyUJeeNVqN8zC7wAdPyxdNRk1N6cYdIL0XGLyulGl6wXdA9U2/K44wgnJEbvDCD9sbQtbmPvYNrIbj0mfzbwv144Fg6YsUMeP14pT8YDDM9E1TVdqgjZqkB/cduK56oZNFbm7O/WIbDA3n/iz+nrNebrQzKyxu2mNJnp7JZTUYJkBpNUIFavX5QjyK5F2uzg8xlsBQ/LZhCK77hWXIuh/MwlbchtkjrDXQmUX9/J8o7znbtdaTmBrvsNs0tgGi7qfgB4vikgdM2s1vgZJnyM8laJ64qiTuXneA1x80hXMLE13KFL4J2+m4WUeiaca33q8u8YWRobrkVvwQ7z20aBEFB+sRlPZzAKQcFyhH7jolo9Rtvp0z052FRDiEboV+FjtR8FprYYw05nNZ6ydknGSPsaRXzge/IF8IS5yd+tKyFrteyWuKpMYVWXqUsQZwgD7etsn0DfY5gjk4Yaj19nQJp0Bc4XnZD84tqw=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(82310400026)(7416014)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	X2n/tAOOld4fwwL8Tao3u/NYN/Y2+q5DOce4SfuaLq/JTq4RMDWQq8O0hlyFsU1kmN8+PMo99V3+D1MX3wosomepzcw4gGcQIErZgsqCAiSPUn80RnlFPVVm8VZ6ktQom2OKuJRZXAzk/D6d++9+M0zS11i6ci5GGFIRvSkypr4t1igKay/IYz2vUiBD3wFAILFfIobmGK54gV7+EHtqHjVD2M/ph/Owmt3QXLc/MCLa+aY3gdcmRhGIETEyWENgrOxX4VsN83YtRWtBS5/tL3xPKZMeb4I/sghsb5bQBiZyNQ20vA+utDMpX35ptkvNkI21+IWAEqpqI+FBcx1uG1hEbBL5F4IH/jXX6fP+uzjNgEVKvESj3ilRRkzLRqEr0wbi+fe1YO0kGQJVM92zAB36WOqxNSZPFw/F/yZCjaSxuLfWzPUDQSMvY8jh806Q
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 06:48:42.5812
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 88fbf7d7-2051-43d6-0a69-08deac04adae
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000023D8.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9619
X-purgate-ID: tlsNG-bad1c0/1778136532-88970A53-BD0BDF50/10/73395122804
X-purgate-type: spam
X-purgate-size: 3246



On 06-May-26 09:44, Oleksii Kurochko wrote:
> 
> 
> On 5/4/26 2:21 PM, Jan Beulich wrote:
>> On 27.04.2026 17:34, Oleksii Kurochko wrote:
>>> As domain type is part of common code now there is no any reason
>>> to have architecture-specific set_domain_type() functions so
>>> it is dropped.
>>>
>>> Change the guard around access of kinfo->type to CONFIG_HAS_DOMAIN_TYPE
>>> for consistency. Also, drop and add some parentheses to be aligned
>>> with the similar if() below.
>>>
>>> x86 with CONFIG_64BIT=y shouldn't use is_{32,64}bit_domain() as
>>> x86 doesn't have support of CONFIG_HAS_DOMAIN_TYPE. Since x86_32 Xen no
>>> longer builds, the fallback is currently only relevant for arm32.
>>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
>>
>> In principle:
>> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> Thanks.
> 
>>
>> However, still a few remarks:
>>
>>> --- a/xen/include/xen/domain.h
>>> +++ b/xen/include/xen/domain.h
>>> @@ -13,6 +13,19 @@ struct guest_area {
>>>       void *map;
>>>   };
>>>   
>>> +#ifdef CONFIG_HAS_DOMAIN_TYPE
>>> +enum __packed domain_type {
>>> +    DOMAIN_32BIT,
>>> +    DOMAIN_64BIT,
>>> +};
>>> +#define is_32bit_domain(d) ((d)->type == DOMAIN_32BIT)
>>> +#define is_64bit_domain(d) ((d)->type == DOMAIN_64BIT)
>>> +#elif !defined(CONFIG_64BIT)
>>> +/* At the moment on 32-bit-only platforms all domains are 32-bit. */
>>> +#define is_32bit_domain(d) (true)
>>> +#define is_64bit_domain(d) (false)
>>
>> I think it would be nice if the excess parentheses were dropped from here.
>>
>>> --- a/xen/include/xen/fdt-domain-build.h
>>> +++ b/xen/include/xen/fdt-domain-build.h
>>> @@ -7,6 +7,7 @@
>>>   #include <xen/device_tree.h>
>>>   #include <xen/fdt-kernel.h>
>>>   #include <xen/mm.h>
>>> +#include <xen/sched.h>
>>>   #include <xen/types.h>
>>>   
>>>   struct domain;
>>> @@ -69,6 +70,14 @@ static inline uint32_t alloc_phandle(struct kernel_info *kinfo)
>>>       return kinfo->next_phandle >= GUEST_PHANDLE_GIC ? 0 : kinfo->next_phandle++;
>>>   }
>>>   
>>> +static inline void set_domain_type(struct domain *d, struct kernel_info *kinfo)
>>
>> Pointer-to-const for the 2nd parameter?
> 
> I will apply this comment and comment above.
> 
>>
>>> +{
>>> +#ifdef CONFIG_HAS_DOMAIN_TYPE
>>> +    /* Type must be set before allocate memory */
>>
>> This comment would be more prominent if it lived outside of the #ifdef,
>> perhaps (read on) ahead of the function. I wonder though why it's only
>> a comment, and not e.g. an assertion. If an assertion was possible to
>> add, the comment would want to live next to it. Without an assertion
>> putting it ahead of the function may be better.
>>
>> Depending on how far to go, changes could be made while committing, or a
>> proper v5 may want submitting.
> 
> I think that instead of comment or just after comment the following 
> could be added:
>    ASSERT(!domain_tot_pages(d));
> 
> Jan, Michal, do you see any concern with that ASSERT() or I could add it 
> and keep your Ack-by and R-by.
I don't see any issues with it. You can send a v5 and I'll commit it later on.

~Michal



From xen-devel-bounces@lists.xenproject.org Thu May 07 07:25:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 07:25:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302184.1576159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKt6v-0007kT-6L; Thu, 07 May 2026 07:25:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302184.1576159; Thu, 07 May 2026 07:25:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKt6v-0007kM-2y; Thu, 07 May 2026 07:25:29 +0000
Received: by outflank-mailman (input) for mailman id 1302184;
 Thu, 07 May 2026 07:25:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKt6t-0007kE-7H
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 07:25:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKt6s-00C5hR-1r
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 09:25:26 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc3e63-2eae-0a2a0a5409dd-0a2a4507c6dc-14
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 09:25:25 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc3e65-229c-0a2a45070019-d155dd2ba9e6-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 09:25:25 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-43d75312379so1110829f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 00:25:25 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e538b6e9bsm180170415e9.10.2026.05.07.00.25.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 00:25:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778138725; x=1778743525; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XxOj/PNWVogKIWj0rp4Nkf0us5db/70YadxrR6nFcd0=;
        b=Yhwt6hRzRaKJdEN4CVnMt2Lpw6TAFC78DuSzTO4fQSaiVc0iVRWzfgGIqreysmyJvn
         9/EKV5Cr+v2w7WGuEoZa6n2cpt9H61CTzL95fVWWEr/LVgPzbif3z3QoUZzHBFgZK3ZZ
         ld146efHKs9BqjAQAsSG3Wb7cxJ0Yw72KEQjbvMGa197bJrjgGk8Cw7j/VRiRvy4plzr
         4JAsBioSuzxBDbFg6aDEM9nTKWnrLNOPHf4yepmRktodBmWUbFA5gTJUdQE9DzAH426D
         QHMsEeFu4K81Mh+QcJd2fQomB8B1/DuMHJh3oe4srSHCUmqL6yFSQvB9JArQ++Nd9A+Y
         wbLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778138725; x=1778743525;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XxOj/PNWVogKIWj0rp4Nkf0us5db/70YadxrR6nFcd0=;
        b=qO8JtqcOvFSgoEE70HJAwF+iXbtx99gZSVkV7wb0JdY1ayc27u+F4wUpxsQQPRMI3V
         Oo+ALLVqLiAN0HFuA0x8czWOQ3d1JNCRpcXjE3UkyQP3hL1CIpmWrOMZ9WqMcIIRuiBh
         XN+kJbVLdDkezu110yFD8ljOoBrCULi1rOg/vbgaAg+KyBrjUPRT3/GDfd69mWT8ApAX
         mUm+H0ezKoJ/SAUOgE29Ur5NHwtpaJZmLrO1htIclvF9SoYmyCOYEV1X/WGqZeDpex61
         7c/1HSbtvJKNKqP7oqZ32pOFHTdqucCsWtCJwpa3aDo/2nl8r6njIjGEkeJRuq8Loxib
         Qwwg==
X-Forwarded-Encrypted: i=1; AFNElJ8QUig+mschjoPPvH1giaciB8maQtVeNZwZYJMoa55+GMXQEacPMf54yEjpctg+dj79KCFT6wPCRX4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxedbQDSY6tBqqaKJwWpeCFDj4F1r/5gktQd5X09s1kFR4A2mhy
	9RW+aEgQBGvnuH1I4yTU+kzGBMSQbU4PETCylzCpF81urIHpjMH+Pz2+gp9Xyo3xDA==
X-Gm-Gg: AeBDieugJd8Q2zdu7yQ0UkGLLHIRENkeV/1oZ8uCdg0rvnzBHiRZoojOrdTsEKBR8+U
	NWtlufUn0zakqDgTIURw4j3sD2RBJ1w2fdhvOVJ3LyhsnI3RbzEZFsfleJSwffhlqkI1W8egMSg
	hmyDumkN8DZXxjq0VdRIzSDGAE/WCahDtGuXvWqjoJXQNeFPtada0c/GozTkFFIzLfB585cWhXJ
	VtE6bbuZIhFhi6GsNikkIuLbHxwUcciN+YmubNzvIhMEooCRsFf3TwuGLijQxCMDK9zJ4BBQfxc
	aMyczZGHvybOH7rjjHBe+vnF3MAcWOp/OaEc+r7S2BqfsC2dAhCX/1yKwbyp1kef46c4e0r7zS7
	hwehMzVE4I3eokKMJv5OgXNIUiVvPvjdqS4q6S8A+PwZVMmLjlhm5vsNg8l1uP9xPDDNqNaqr0J
	AX0KAzF1KGjS6e/Op4AG9EkwVugxNrtYAtMKMp14GWoNoU4eVEMWGKxVYyo82Dkbau5s9/yGuin
	C+/GYEI6oTwjT9G0q1dMB1dn+ORPOjUTrca
X-Received: by 2002:a05:600c:8b6e:b0:485:3c2e:60d5 with SMTP id 5b1f17b1804b1-48e5dfcd72emr25386825e9.2.1778138725123;
        Thu, 07 May 2026 00:25:25 -0700 (PDT)
Message-ID: <b0b02d0c-ff4c-45e8-9928-d0a52e081b3b@suse.com>
Date: Thu, 7 May 2026 09:25:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/11] xen: introduce domain-layout.h with common
 domain_use_host_layout()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <2577e757d32f85fb8b3308863e6d7a53d70636dc.1777303844.git.oleksii.kurochko@gmail.com>
 <80f67b9a-2b42-409f-90d8-587a07d57d26@suse.com>
 <764aac8e-b200-410e-99a2-cab65a274ef4@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <764aac8e-b200-410e-99a2-cab65a274ef4@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778138725-2176AC48-F8C6D1BC/0/0
X-purgate-type: clean
X-purgate-size: 1253

On 06.05.2026 17:47, Oleksii Kurochko wrote:
> On 5/4/26 2:59 PM, Jan Beulich wrote:
>> On 28.04.2026 16:33, Oleksii Kurochko wrote:
>>> --- /dev/null
>>> +++ b/xen/include/xen/domain-layout.h
>>> @@ -0,0 +1,27 @@
>>> +#ifndef __XEN_DOMAIN_LAYOUT_H__
>>> +#define __XEN_DOMAIN_LAYOUT_H__
>>> +
>>> +#include <xen/domain.h>
>>
>> This isn't really needed. It is ...
>>
>>> +#include <xen/paging.h>
>>> +#include <xen/sched.h>
>>
>> ... included by this one anyway (pretty much unavoidably right now, I
>> guess).
> 
> Then it will be needed to re-order them.
> 
> Do you want to put the comment above xen/sched.h:
> 
> /*
>   * Ensure xen/sched.h is included before xen/paging.h, since paging.h 
> depends
>   * on xen/domain.h, which is pulled in via sched.h.
>   */
> #include <xen/sched.h>
> #include <xen/paging.h>
> 
> or just add this to commit message instead?

No. xen/paging.h only includes two asm/*.h, so doesn't itself require anything.
If there's anything missing for that header to be included first, I would assume
it's then RISC-V's asm/paging.h or asm/p2m.h which lack a necessary #include?
Yet without you indicating what exactly the missing piece is, this is somewhat
guesswork on my part.

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 07 07:37:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 07:37:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302196.1576169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKtIc-0001Gx-9W; Thu, 07 May 2026 07:37:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302196.1576169; Thu, 07 May 2026 07:37:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKtIc-0001Gq-6R; Thu, 07 May 2026 07:37:34 +0000
Received: by outflank-mailman (input) for mailman id 1302196;
 Thu, 07 May 2026 07:37:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKtIa-0001GU-M5
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 07:37:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKtIY-009y4d-HD
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 09:37:32 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc413b-e002-0a2a0a5209dd-0a2a4505cf8a-10
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 09:37:31 +0200
Received: from [209.85.218.41] (helo=mail-ej1-f41.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc413b-aaa8-0a2a45050019-d155da29f1a2-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 09:37:31 +0200
Received: by mail-ej1-f41.google.com with SMTP id
 a640c23a62f3a-bc47a96d3bbso70571266b.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 00:37:31 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-67cd91a4647sm1766253a12.19.2026.05.07.00.37.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 00:37:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778139451; x=1778744251; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=mnkab6DoanSZ0nYUPaKEmyxqnzmD3bUBit+dMs8gOFI=;
        b=XpPMrzz3MJKQhc/8z/JL/pMOPPa2r1FsiPxKfrRDsW/zdlvfG7Ol3y2lQn6SJ12lj8
         ufRJDj+DDUM8QZvG2ln9GAA8uKWCs3TA/ldt5W/a9E0Y5CD6Bqa06LJV55kEmbdb+B0t
         pNLf3QGQwgQ5VHZ/xP+tUQzsAnbW+CgMoJZcBR6asjbm7fLjy8UYRNbvFBWhtQQMMqaz
         3aCdDV82Rako8RGusE1/F8jMiPE8dB8UUp+qE7ajCtiPQUzRFBeKeUEcC9syBrepAeX6
         LEqXFRa+ZcOtbRdWp7q0DJOmtXfEesehRXajRk8HQk7QDBKZrMgIsZOgwdtGPFZzM7cb
         5XSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778139451; x=1778744251;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=mnkab6DoanSZ0nYUPaKEmyxqnzmD3bUBit+dMs8gOFI=;
        b=RltnJMU9EcZK7xV8ebKDH42o6duxWdX2IvLFAzBdzmHKTVlh7jy6buN/Kgjskd7Txp
         BkmXFWefp9U1XEzvmqK4kmPFODmhFvTZv5Jk1TmcSdIM8pyDCg3ngmnNaY1wdOcg4/jl
         zeGcwNX4icy7zJIPbkc6pjynuTH0E8KKF9rLg1r6T3tTNimqvKj8PyLDmPbefkbZMVWK
         J2Ctp5D3E7NgPTbuI+FgpmYnXEH+l6exmfdCmDYUSkIG7omhS5neODKO0ypvRaz5q4VR
         +AeKfGZpEhEOz5Kjp/2l9cUUgpegID4mfrUrUmbMDVsdE7WqTQs9Kc4zUj0+V4qnJgpO
         6Z2Q==
X-Forwarded-Encrypted: i=1; AFNElJ/df49SpLo5pP6g5TtLDBr3hU5kL3CYvvEHVdq1WIG6EGqV7D7Bn/+dskHRi5r9RDaEcIT04aD2a5o=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxo3vmW6DMvlXLuLKcXhpaLO78tdKrWLXOpA0BfrY7ZEhnasHHi
	emkTbO/UyTY4FoH7ujsMiaskdheIFalCVYkrfxhE584/Y9GINStfpkHg
X-Gm-Gg: AeBDiev9x0508UvGI7LCF97LUXr28JeOOWjXBxxqlUNu+xwuyTD/oDqzkh7ePGcrQme
	HnAYyR3fkIk5wvej3oy7r65EVr42DxKPsWHD5SQ5Zd3pdcpInOnu3X3n/V/fOUzfaP90F4Vwsdy
	y94nCcckTZ6p5ZXuIRj8o/wi8afkLNuU3vogmYOdrN6mBxVZbRN3NamHCiwb2yqBaHtq+QWhXzZ
	SJoIDkQOKbqPbGy66W8i3VNftwjdPD63cxDrpqa3ed6HHUoSrTt6iZHNBbNQiAjligGpeS6Ocis
	PsvKe8jI2ZdHG66foKTnPv+ORY//z6H8TN6Zoqs11hiWNSyAUEzTizbHYIf6ZJ/HxVYZ6AHRAF1
	XaALoeDhX2nk+99Vn7XxUbcnEh68ljkYqFCnQMxcPJJlhTVeh+iyVGRuLXcpuBIzDdQpmftDXSg
	m5NNFf3urqu/RkhRLao5hVwbTWxEvisvtCAu3vv238CoaCq/2jexIYUvDBVXQO3my6uokaBiGAx
	pMk8d589mvF8veK+yYEMnS7
X-Received: by 2002:a17:907:9806:b0:ba7:5c47:7b1c with SMTP id a640c23a62f3a-bc56ae29972mr321655866b.8.1778139451191;
        Thu, 07 May 2026 00:37:31 -0700 (PDT)
Message-ID: <e2d0911a-579f-496d-9a10-7c53d4962517@gmail.com>
Date: Thu, 7 May 2026 09:37:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/11] xen: introduce domain-layout.h with common
 domain_use_host_layout()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1777303844.git.oleksii.kurochko@gmail.com>
 <2577e757d32f85fb8b3308863e6d7a53d70636dc.1777303844.git.oleksii.kurochko@gmail.com>
 <80f67b9a-2b42-409f-90d8-587a07d57d26@suse.com>
 <764aac8e-b200-410e-99a2-cab65a274ef4@gmail.com>
 <b0b02d0c-ff4c-45e8-9928-d0a52e081b3b@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <b0b02d0c-ff4c-45e8-9928-d0a52e081b3b@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1778139451-DBB60443-A5710BA6/10/73395122804
X-purgate-type: spam
X-purgate-size: 2607



On 5/7/26 9:25 AM, Jan Beulich wrote:
> On 06.05.2026 17:47, Oleksii Kurochko wrote:
>> On 5/4/26 2:59 PM, Jan Beulich wrote:
>>> On 28.04.2026 16:33, Oleksii Kurochko wrote:
>>>> --- /dev/null
>>>> +++ b/xen/include/xen/domain-layout.h
>>>> @@ -0,0 +1,27 @@
>>>> +#ifndef __XEN_DOMAIN_LAYOUT_H__
>>>> +#define __XEN_DOMAIN_LAYOUT_H__
>>>> +
>>>> +#include <xen/domain.h>
>>>
>>> This isn't really needed. It is ...
>>>
>>>> +#include <xen/paging.h>
>>>> +#include <xen/sched.h>
>>>
>>> ... included by this one anyway (pretty much unavoidably right now, I
>>> guess).
>>
>> Then it will be needed to re-order them.
>>
>> Do you want to put the comment above xen/sched.h:
>>
>> /*
>>    * Ensure xen/sched.h is included before xen/paging.h, since paging.h
>> depends
>>    * on xen/domain.h, which is pulled in via sched.h.
>>    */
>> #include <xen/sched.h>
>> #include <xen/paging.h>
>>
>> or just add this to commit message instead?
> 
> No. xen/paging.h only includes two asm/*.h, so doesn't itself require anything.
> If there's anything missing for that header to be included first, I would assume
> it's then RISC-V's asm/paging.h or asm/p2m.h which lack a necessary #include?
> Yet without you indicating what exactly the missing piece is, this is somewhat
> guesswork on my part.

The first time I read compiler error inattentively.

The following compilation error occurs after xen/domain.h is dropped 
from xen/domain-layout.h:

In file included from ./include/xen/paging.h:4,
                  from ./include/xen/domain-layout.h:6,
                  from common/device-tree/domain-build.c:4:
./arch/riscv/include/asm/paging.h:17:48: error: 'struct page_info' 
declared inside parameter list will not be visible outside of this 
definition or declaration [-Werror]
    17 | void paging_free_page(struct domain *d, struct page_info *pg);

So the correct fix is to add forward declaration of struct page_info to 
RISC-V's asm/paging.h.

I will add the following to commit message:
"
To avoid the following compilation issue:

In file included from ./include/xen/paging.h:4,
                  from ./include/xen/domain-layout.h:6,
                  from common/device-tree/domain-build.c:4:
./arch/riscv/include/asm/paging.h:17:48: error: 'struct page_info' 
declared inside parameter list will not be visible outside of this 
definition or declaration [-Werror]
    17 | void paging_free_page(struct domain *d, struct page_info *pg);

add the forward declaration of struct page_info to RISC-V's asm/paging.h.
"

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu May 07 07:41:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 07:41:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302204.1576177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKtMr-0002ps-PD; Thu, 07 May 2026 07:41:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302204.1576177; Thu, 07 May 2026 07:41:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKtMr-0002pl-MN; Thu, 07 May 2026 07:41:57 +0000
Received: by outflank-mailman (input) for mailman id 1302204;
 Thu, 07 May 2026 07:41:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKtMp-0002pf-F0
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 07:41:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKtMn-009ymz-AB
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 09:41:54 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc423a-bab6-0a2a0a5309dd-0a2a4507e11c-28
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 09:41:54 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc4242-229c-0a2a45070019-d155802dd1fd-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 09:41:54 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-48d146705b4so6103425e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 00:41:54 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e5313b023sm53281455e9.5.2026.05.07.00.41.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 00:41:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778139714; x=1778744514; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6HvWVmn2k36Po58FDqs30zdzUowu0TnA7Z1C0J1iGJs=;
        b=U/3I3fB9S171mRBrKurnuRbEwotfyQtqSi6efr7hbVqT0m3IeUUQQgZ0kWPj3Gukyf
         RHzdRdotERIX0SOFh2yqikrEr9jD11HnMMmXqMAosDssN74v4XDjUgr0JcHS9dQVEuhD
         0XztnC7Z/CwUyoC1Z8nSB5ocry+/W82WaeZ1iKzdHvnlkDruTSFfy7sxmGZr3C0DgIT5
         scNhitr2w9HE7nQplWwQzwShhJEY0s/U0L3YPSFqcuOUlaM3Rpplcb73XD0BdzLZFPvj
         FpgtaS7uf72wb0fjszxSCkNnLhh8Ejh0NTT3q6wHxMTh+uWekTv27jA9VdRvOR0rhZil
         BOvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778139714; x=1778744514;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6HvWVmn2k36Po58FDqs30zdzUowu0TnA7Z1C0J1iGJs=;
        b=TSzL8Bz2aQ3JVL5VPgJisGhx4kIlb5kZt/MA6GHbvLNxaoylKy/SVMZUUWxNU0M+5J
         Tm0I5y3cEitlPwE8Na8tIc+3M3q4o+3D+OJrl4ReBWVlxNEs67Mtv4irP9qozKJ9GLp0
         fhAO3muWQ6TTR+JVT2TvndY67+frhuqMqzHAUKOqW+YgzBGRerteVQEy9nHqSJn980sW
         1uI4U6wlUWhKIPIZ/N6qZ/nlLakNOgWOvXdka0xnMuAOomRGbFZauPgNHRU6dXq+39wS
         +ED+0wMBVd0Fx6VOMWGbcoxhXh7LYPOesKHrHqIl9GeA9hUX2L+KnO/NrwW5fc8FftUN
         BW5g==
X-Gm-Message-State: AOJu0YwY2M0cTnJWBGzMVaV0dKPmGLOT0J8a6bFsz1YVcphaQxX+pqY+
	I59cV3vXUjM3Kz9+MksZF4r7kRqyU4w5Z4o/VF8+d2iTX+7S9nA+WGHa3o1QV4CWQw==
X-Gm-Gg: AeBDievDJmXoi3BTSQweJPmjQ1P3i2ZvQzL07lq8wRkl+F0YKclfYfTtOhOvZ7sGWwJ
	NcJ8cfZf5SiLiM4tXmgsDd/m7ZnYvchkifDtbpnqBlouJKz5ntHacKaRdUU18fKurK20l2nLjKp
	kUAfkal3Zi8XcZ2vtcaZ8pMhYU4ab9DNbHkRyN2cviKKwuxxoizwL7cIn4XEa7zJ/A3fAzRRjef
	ustnOtPg9eNsLAnaERXxBk93if7O5u9uNRXl+fk7MqnincZCfG38BYML96zWjK9FZQfQJ7WQkXW
	RZ74ZD7hoe5UhVBXbrMmmn19dMVJidCax+hOs2i1QDVzbr7pkz0RnJmCv70+1XGURk/qwD2C138
	V1VmJejQt/aPPQwP/RS10JKqhGzW2t6hg8HGjsdt0+O8Pum8KZPYpHu3RhzR88gSCIkFAJIqeYZ
	I40VprYTW75JJy7oFM8GrXWbQwuWYuaRQU7c0Vl7qzvGDjhv0iihNHNRjlPyiOCGhUIfUR2bSWQ
	MeHLdiw4xJCAv3dOWN2w6gGbm8XR2gC2p+c1TGsC+geDgI=
X-Received: by 2002:a05:600c:3b96:b0:48a:66a8:9981 with SMTP id 5b1f17b1804b1-48e51f55272mr117375885e9.27.1778139713823;
        Thu, 07 May 2026 00:41:53 -0700 (PDT)
Message-ID: <540ef3bd-6fc6-4cf1-a1fe-3def9cfcc114@suse.com>
Date: Thu, 7 May 2026 09:41:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CI: collect certain intermediate files as artifacts
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <6d9345e7-7ad9-48f4-8447-3a955305430a@suse.com>
 <alpine.DEB.2.22.394.2605061748080.1744448@ubuntu-linux-20-04-desktop>
 <alpine.DEB.2.22.394.2605061753050.1744448@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <alpine.DEB.2.22.394.2605061753050.1744448@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778139714-0BD7FC48-25DE0715/0/0
X-purgate-type: clean
X-purgate-size: 2090

On 07.05.2026 02:54, Stefano Stabellini wrote:
> On Wed, 6 May 2026, Stefano Stabellini wrote:
>> On Wed, 6 May 2026, Jan Beulich wrote:
>>> When one of the linking passes fails, additional intermediate files are
>>> still in place. Having them available for analysis of the underlying
>>> problem can be pretty helpful. Collect some into a new intermediates/
>>> directory. (Nothing new will be collected if linking succeeds.)
>>>
>>> While there also make sure xen-syms is collected (into binaries/). This
>>> is rather more useful for analysis of possible problems than its stripped
>>> counterpart.
>>>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> As the issue this is meant to help with didn't re-occur with this in
>>> place, the new logic wasn't really tested yet.
>>
>> It looks OK but please provide a link to a successful pipeline

Well, I had it in use in
https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2503967215
but does that count, when the issue the change is for didn't really occur?
For now I can't test the additions without having a way to trigger that
symbol table issue (or any other problem at one of the linking stages).
Short of artificially breaking things, that is.

>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Thanks, but the above wants clarifying first, and the below suggests you
actually meant to take back the R-b.

> Actually, I see that the build script is run with bash -ex so I wonder
> if collect_xen_artefacts would even run if make fails. I think we need: 
> 
> trap collect_xen_artefacts EXIT

I don't feel comfortable making such a change. Furthermore it's unrelated,
as it would mean that on other build failures successfully created final
binaries wouldn't be collected either (after all on x86 it may be only one
of the two links that failed). Plus then it would likely want doing
differently, by making the EXIT hook invoke a new
collect_xen_intermediates(), leaving collect_xen_artefacts() unaltered
(except for the xen-syms addition there)?

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 07 07:43:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 07:43:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302211.1576188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKtOE-0003L4-3y; Thu, 07 May 2026 07:43:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302211.1576188; Thu, 07 May 2026 07:43:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKtOD-0003Kx-Vt; Thu, 07 May 2026 07:43:21 +0000
Received: by outflank-mailman (input) for mailman id 1302211;
 Thu, 07 May 2026 07:43:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wKtOC-0003Kp-V0
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 07:43:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKtOC-008I3B-6L
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 09:43:20 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69fc4294-e002-0a2a0a5209dd-0a2a4506bf2c-14
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 09:43:20 +0200
Received: from [209.85.218.54] (helo=mail-ej1-f54.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69fc4297-7371-0a2a45060019-d155da36a806-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 09:43:20 +0200
Received: by mail-ej1-f54.google.com with SMTP id
 a640c23a62f3a-bc1f0830f44so316120466b.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 00:43:19 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc8355281cfsm49688866b.54.2026.05.07.00.43.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 00:43:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778139799; x=1778744599; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=9VS3OfDpF1+VQZhX2yMePmBwdL0OOCrpGS/EsBP+94w=;
        b=UV6iGtKAXw15JY8rGGqDy8U8RO2PJHUy7n9IQa1JoDocfVB9NnK6YRCk/Gc9sZ+Mep
         yFtcTVUDtl4OItl7BC+k/jNlzZn09WYCoizJAq315ueBgbSaLHr0syIFLEJwuphCsWX/
         /pcV+6isHaFsmMsXUpzNLfXoKmoBQGN6Waofp3i1rf2lnJP6t9AE1ixc67Mufac8itd9
         tdPuh650ay9rFzlLypYghvbNadhLG6tkUHrzRyXEq16m4TZOh3LtDSNjsBTNJpnBEbv+
         g6tuOhtd6SsKDZVkxUnb0wkjMmGzPRp3PLXv6NHMFjuUftO6Es/8zoV2QKhK9D/vbzYd
         +gVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778139799; x=1778744599;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=9VS3OfDpF1+VQZhX2yMePmBwdL0OOCrpGS/EsBP+94w=;
        b=o5cuV1N6Q3ym+taOkNxb4zQC9AM/6JVvOvJQl6AlyP9lKQgXVOlFeA3gq6PwMnq2Xj
         HGLyWSsqTDYOiXHuuLd5n8Uh50IKjeahD2Y1TVBM+j29fP4VLHTsbAK9j4qVM8nCx6+l
         VlACNMkgAu0OEVMXavESZbgv7SH0Z6v7WMcW6CYp0zSORjJtaFR1VFxnJtp+7mx8s68s
         8qE1I20iDtj/LvjYec+0jMqSrkOuZq7IpUOqD1heQ0jQYuBlaBui1yjfsQhc2uUrgHZh
         wx1n8WeH/g1qG9m1UurUhLRTRpYTpylsuR86sMnU3YHbPHWC9wBm7sM+2Sst8cwC00we
         TGqw==
X-Forwarded-Encrypted: i=1; AFNElJ+QYvMVOaXP/TM8+PP6CNkHYkY5jRlPdHt4RoEYdG4wKOktgHsd3ScrbbfHb+bO4KaiSpTdpO58yFo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyyTJOYL/E94KhIs9DaX27oJ5J+GEfx74j2v+vFIosg8RvNxBQj
	zfOztnNZ956hhQFUT8l6MOpRuOikdNJ804vmSG/a/hxXjemQBixobVC+iCLoqFsEMCU=
X-Gm-Gg: AeBDieuGuqHAV3L4AlpvdW/7cSINRXWatEhJbLAtvjuTJBoCHDJlyDckAfIdq5i9hJy
	WxU7I0DOd0bj5YyYYlVQZtSG524sxygisy3rsaGgfYIUlsRszfGoFIFObtJbf1+KZCTHy14XLQ9
	jwAm/0epVE3KakeCXJLEoADw3tlp40ypy9snwGYhw6N2+B7EAIuq2bmOrZXGJrZTxDRb6ZtKmEU
	RfRIf7lhb/93OG65M7reyViVibcIiqLnxMGJUClKHhGNHp+YMbxjIxrLT6LxK1KmNnEnIcD+mWN
	Na9dK/FwMUd7iSh5KAUbJifpD+bbxRKyTeJI9tXQIZBe0R5FUoh7OknkOpR30Wx/bR6AJYKXW9V
	dTwg7vL0AaEzdikaT+7rjujiasIQ51McYTuGyrZEY+PeV2V5RXF0clPOsjdOu0f0D3Gvdg0EZOe
	IGvPLAmznVLw3ECYDKuNTAiSo5M8zkbO2i5SU7mJh0b8pVUgGKLlssE6HsbeI1yBxKCY6GNXwUJ
	Mk/EH8ErqI0CMNLhz+jwz/QUhr7saIGeWltt9agbk9z8OYZGwQ8V4mrNqzmbzY2
X-Received: by 2002:a17:906:ee84:b0:bc5:114c:956 with SMTP id a640c23a62f3a-bc84cc73483mr79253766b.1.1778139799328;
        Thu, 07 May 2026 00:43:19 -0700 (PDT)
Message-ID: <199b54b5-8571-4a18-bba6-226a5a94ecc9@suse.com>
Date: Thu, 7 May 2026 09:43:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/4] tools/xenstored: remove permissions related to
 dead domain
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
References: <20260429120619.1013440-1-jgross@suse.com>
 <20260429120619.1013440-5-jgross@suse.com>
 <e9cfb86e-704d-4a5d-bc59-ad05d07bf69a@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <e9cfb86e-704d-4a5d-bc59-ad05d07bf69a@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------I3K5I940S1iowrQwofMvgFlj"
X-purgate-ID: tlsNG-16d1c6/1778139800-86974D75-1583D037/0/0
X-purgate-type: clean
X-purgate-size: 6820

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------I3K5I940S1iowrQwofMvgFlj
Content-Type: multipart/mixed; boundary="------------7CbKlZjBSYIXH3Rxecf2PM1b";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Message-ID: <199b54b5-8571-4a18-bba6-226a5a94ecc9@suse.com>
Subject: Re: [PATCH v2 4/4] tools/xenstored: remove permissions related to
 dead domain
References: <20260429120619.1013440-1-jgross@suse.com>
 <20260429120619.1013440-5-jgross@suse.com>
 <e9cfb86e-704d-4a5d-bc59-ad05d07bf69a@amd.com>
In-Reply-To: <e9cfb86e-704d-4a5d-bc59-ad05d07bf69a@amd.com>

--------------7CbKlZjBSYIXH3Rxecf2PM1b
Content-Type: multipart/mixed; boundary="------------TxX2aORkAAQdRmZi0xMUc5Ph"

--------------TxX2aORkAAQdRmZi0xMUc5Ph
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMjkuMDQuMjYgMTg6NDEsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IE9uIDIwMjYtMDQt
MjkgMDg6MDYsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBXaXQgdW5wcml2aWxlZ2VkIGRv
bWFpbnMgbm93IGNhcGFibGUgdG8gdXNlIHRoZSBAcmVsZWFzZURvbWFpbiB3YXRjaCwNCj4g
DQo+IHMvV2l0L1dpdGgvIGFnYWluLg0KPiANCj4gUmVnYXJkcywNCj4gSmFzb24NCj4gDQo+
PiB0aGVyZSBpcyBubyByZWFzb24gbm90IHRvIHJlbW92ZSBhbnkgbm9kZSBwZXJtaXNzaW9u
cyB3aGljaCByZWxhdGUgdG8NCj4+IGEgZG9tYWluIHdoaWNoIGhhcyBiZWVuIHJlbW92ZWQu
DQo+Pg0KPj4gVGhpcyByZXNvbHZlcyBhIGNvbXBsZXggc2NlbmFyaW8gd2hlcmUgYSBuZXcg
ZG9tYWluIGNvdWxkIGluaGVyaXQgdGhlDQo+PiBwZXJtaXNzaW9ucyBvZiBhbiBvbGQgb25l
IHdpdGggdGhlIHNhbWUgZG9taWQuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBH
cm9zcyA8amdyb3NzQHN1c2UuY29tPg0KPj4gUmV2aWV3ZWQtYnk6IEphc29uIEFuZHJ5dWsg
PGphc29uLmFuZHJ5dWtAYW1kLmNvbT4NCg0KQ2FuIHRoaXMgc2ltcGxlIGZpeCBiZSBkb25l
IHdoaWxlIGNvbW1pdHRpbmcsIG9yIHNob3VsZCBJIHNlbmQgVjM/DQoNCg0KSnVlcmdlbg0K

--------------TxX2aORkAAQdRmZi0xMUc5Ph
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------TxX2aORkAAQdRmZi0xMUc5Ph--

--------------7CbKlZjBSYIXH3Rxecf2PM1b--

--------------I3K5I940S1iowrQwofMvgFlj
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmn8QpYFAwAAAAAACgkQsN6d1ii/Ey+B
OQf/UFoAluFeE7HnnSaI8Y+cacrGD5IGwtB5PdOIhs3gZoluuZhz2RtWMf2dt3XnQMikvVAHVJFN
ArbjoWwx8925mu5Nd4enuay+HmJuk7ebSzWrWdIR6wikBTjD6bOM+OwXhkyYA56dQShPkH+yM5V7
HjA/kGL7sL21jqKEFj9VdCKNXyLFbj2ncIWZiY3BshCcMJwEUNj1taAdPpBkJCVtzKeQkJVqqR0q
crazqdnog7ZkyFuBDTOo5UjI4bbzXX6V7hqZN+Yp3JMulvZKwEe1FAKmFGt8KEb9aYWUYe2DA5Mw
Oe/MmItbZ1YScFu89vBZhlylLm5agGUTHZ2t9dk46w==
=faB5
-----END PGP SIGNATURE-----

--------------I3K5I940S1iowrQwofMvgFlj--


From xen-devel-bounces@lists.xenproject.org Thu May 07 07:49:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 07:49:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302221.1576195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKtTn-0004Ft-PH; Thu, 07 May 2026 07:49:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302221.1576195; Thu, 07 May 2026 07:49:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKtTn-0004Fm-MU; Thu, 07 May 2026 07:49:07 +0000
Received: by outflank-mailman (input) for mailman id 1302221;
 Thu, 07 May 2026 07:49:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wKtTm-0004Fb-SL
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 07:49:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKtTl-00148W-QJ
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 09:49:05 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fc43e7-2eae-0a2a0a5409dd-0a2a4502834c-36
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 09:49:05 +0200
Received: from [209.85.167.43] (helo=mail-lf1-f43.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fc43f1-af86-0a2a45020019-d155a72bc4fd-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 09:49:05 +0200
Received: by mail-lf1-f43.google.com with SMTP id
 2adb3069b0e04-5a86e4b950cso368632e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 00:49:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778140145; cv=none;
        d=google.com; s=arc-20240605;
        b=KGkt4Rv1OZEfFY5XjGw+4yDnbNUSoMGB8rurbwV3N3NNh95ejA3C3i2fv6SpM3fl1O
         MELl+WLwQnq8Iu82zMAbwz3CvDubUt5vvdNvChIV7hWvjkefP4KgBuB/YiPBlOuFe5+r
         N2pnl3d+CGkVswU1OJg32298KE+/17aLmZ8lUTYDIn50/k5UAAVWdtAy2e8bwX4yi/kj
         /kPG9spB/UHBPBLFkYDewFX28Dd6K8XjIFfniRvoiGYqLAhAZCYJax7DrLF8RJSezca9
         76Mf0u6X7VyCT5uGvsNzcmzSbCJ4fEzaRARrEALy5cZgTYjxWu+bbXFKDThP0ZGzptqK
         URxQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=FpH9ivn7J+a7CnqyryEVPZL0SHq/fQAbKBNReVXHWkM=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=fqUPtk7fNfk/3pn9ur5iswJsAyxFZ65cIUXORd83fL+EDgcRZxT6g4dW5YfxG2JQmD
         sJpAGInLi0fT5g+7clz+oOtxHoBoK/x0+piJclPScTldqeQhtB+r+TxuMilhCMAk+sYW
         gFaYFx/yrVRnDzGPnlUYp2O2mcbrLcPlT3SGaZMAxv4BMlo4aNPodwVWeNhMKHaSgecr
         Sfmqmom0P97118xAjoYtSQZ3GxPRUeiE/Peed2xXwFChLzIrhdh37X7EZ21if5mEzvFE
         winKeZHDkuQXk0F3CFH+iO/EbH3ldoYc70teK01hHH5GQp3v37bhXMYKsVbKX0niB/US
         g8fQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778140145; x=1778744945; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FpH9ivn7J+a7CnqyryEVPZL0SHq/fQAbKBNReVXHWkM=;
        b=Ep6iSL/CrPssqfhxINdNwa8t92H0Gi10k+oiV1/4d1tVGv/ZnkDruU74W1RJSljYN4
         YMOqH8Hj5Eci0ICbCuFMvZ9CIr4IB/yThspEfbbXuFa1gXB0q2+17dZm2Fjp7cCiAoRC
         0nCqBbCv8Z/bi6aUtDPOBpP6hMP60NhKigDhM7APU0nGkXdCBc8/fQ3/qhtLytW0yaJN
         3pyrb15/fh7e12Hy8BGE6gCAHzrU7ow07b64l+RErarJ5daC1QPewpTC15g50qhOfkok
         xo6xnx0PWemukH/Rkc3rRhmZIHYNNHYOykQLVS/PE9bJC+fJeXx4ZbKh0VNifYBj7iMA
         /DOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778140145; x=1778744945;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=FpH9ivn7J+a7CnqyryEVPZL0SHq/fQAbKBNReVXHWkM=;
        b=qmZnRjwR4QAS1WCBeVJVSvWHzVa/1MiGs/c1i0GVLizC/6RZPovl/yiwt3TijiaGQ6
         8BQLHb4tAgEfDG9Q4HD8VWmzqtrdM/03bAITzILuw4Cd0UhlWKef+VazP9r8sdM34Z5u
         zxE2rgeTZvsU9eNugMJhXfZgYnKNaakjp7dD4Sqy+esuKymhFjY1sm5Xz7GOOQ4Jn3JO
         4qm7kqoTEAEYff4MbUnpuiAiidsg4Uj03tplr998MeldN7c3/TgeuvRjeeVS57Ajoyce
         Vd8SQWNhLVJxOfHljtzdfhTh+DPAXjtpwoq3PAZ1vF3CqM+iYPPH3TOwUKUG8vufz7Na
         YI2Q==
X-Gm-Message-State: AOJu0Yyzl/BQf8f78/N5WNABXfNjCdAWB9OEYh+ts9KOKzSbYkjMA2Ts
	fFcCHCv55YijuxMdJxJT2lO06uTEKZon6USB5LN1buwurWVECPKVJmJndqS7XTbrvi3kzng44nR
	YbAzU9r2fKNbo5j1NYc/LScHq+j+F7bI=
X-Gm-Gg: AeBDievCG4JLi+60IpydX2NLGFqlbaxS/aMAPpVgtmbDgoGRNsWSeyRi109FXFjKYRU
	KuhqQ78RCMiEf86GfXYuoNbRiWcbVDwRmQkl/hkukGnT8P9SnOyjqLt4KcZpn7iZf0FnUIhDdD7
	JW8MLip6FFZNT9z+dQccxdq901EESamPvHTg9WS5cnyLxCReCYyt/4HFgU20HmR4kdRPsjhvW7D
	k2qopVz7gxM1f9ovCDA4RvZg/ztqSTEQAIixviaM9Ml/t2R9vsGN3W+56mrdDeYwrCNY07j5zp6
	dS1UP1T4GzqrBYuZZqXKUN/HXVgDwwd0Td8Jpw==
X-Received: by 2002:a05:6512:b86:b0:5a8:91c1:7110 with SMTP id
 2adb3069b0e04-5a891c172c7mr1307443e87.29.1778140144402; Thu, 07 May 2026
 00:49:04 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <5e1951e1c17037e020de9c0eecb5fba94edcd9dd.1775125380.git.mykola_kvach@epam.com>
 <EB3F884F-FCD6-4AE7-84FA-79ABF31EA88E@arm.com>
In-Reply-To: <EB3F884F-FCD6-4AE7-84FA-79ABF31EA88E@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 7 May 2026 10:48:52 +0300
X-Gm-Features: AVHnY4JyCMWnh7af7YUMRsqcpCkfcPjyqh0VRnG7JWBC1lK6NFUYwK6bEhIz_PY
Message-ID: <CAGeoDV80QHdesYQF-J4fg7wYQ6RLNg6u27aQhj4F+JoM4hU3uQ@mail.gmail.com>
Subject: Re: [PATCH v8 02/13] xen/arm: gic-v2: Implement GIC suspend/resume functions
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-720697/1778140145-8336C161-E189388F/0/0
X-purgate-type: clean
X-purgate-size: 6948

Hi Luca,

Thank you for the feedback.

On Tue, Apr 21, 2026 at 4:26=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> >
> > diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
> > index b23e72a3d0..dbff470962 100644
> > --- a/xen/arch/arm/gic-v2.c
> > +++ b/xen/arch/arm/gic-v2.c
> > @@ -1098,6 +1098,129 @@ static int gicv2_iomem_deny_access(struct domai=
n *d)
> >     return iomem_deny_access(d, mfn, mfn + nr);
> > }
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +/* This struct represents block of 32 IRQs */
> > +struct irq_block {
> > +    uint32_t icfgr[2]; /* 2 registers of 16 IRQs each */
> > +    uint32_t ipriorityr[8];
> > +    uint32_t isenabler;
> > +    uint32_t isactiver;
> > +    uint32_t itargetsr[8];
> > +};
> > +
> > +/* GICv2 registers to be saved/restored on system suspend/resume */
> > +struct gicv2_context {
> > +    /* GICC context */
> > +    struct cpu_ctx {
> > +        uint32_t ctlr;
> > +        uint32_t pmr;
> > +        uint32_t bpr;
> > +    } cpu;
> > +
> > +    /* GICD context */
> > +    struct dist_ctx {
> > +        uint32_t ctlr;
> > +        /* Includes banked SGI/PPI state for the boot CPU. */
> > +        struct irq_block *irqs;
> > +    } dist;
> > +};
> > +
> > +static struct gicv2_context gic_ctx;
> > +
> > +static int gicv2_suspend(void)
> > +{
> > +    unsigned int i, blocks =3D DIV_ROUND_UP(gicv2_info.nr_lines, 32);
> > +
> > +    /* Save GICC_CTLR configuration. */
> > +    gic_ctx.cpu.ctlr =3D readl_gicc(GICC_CTLR);
> > +
> > +    /* Quiesce the GIC CPU interface before suspend. */
> > +    gicv2_cpu_disable();
> > +
> > +    /* Save GICD configuration */
> > +    gic_ctx.dist.ctlr =3D readl_gicd(GICD_CTLR);
> > +    writel_gicd(0, GICD_CTLR);
> > +
> > +    gic_ctx.cpu.pmr =3D readl_gicc(GICC_PMR);
> > +    gic_ctx.cpu.bpr =3D readl_gicc(GICC_BPR);
> > +
> > +    for ( i =3D 0; i < blocks; i++ )
> > +    {
> > +        struct irq_block *irqs =3D gic_ctx.dist.irqs + i;
> > +        size_t j, off =3D i * sizeof(irqs->isenabler);
> > +
> > +        irqs->isenabler =3D readl_gicd(GICD_ISENABLER + off);
> > +        irqs->isactiver =3D readl_gicd(GICD_ISACTIVER + off);
> > +
> > +        off =3D i * sizeof(irqs->ipriorityr);
> > +        for ( j =3D 0; j < ARRAY_SIZE(irqs->ipriorityr); j++ )
> > +        {
> > +            irqs->ipriorityr[j] =3D readl_gicd(GICD_IPRIORITYR + off +=
 j * 4);
> > +            irqs->itargetsr[j] =3D readl_gicd(GICD_ITARGETSR + off + j=
 * 4);
>
> regarding GICD_ITARGETSR ...
>
> > +        }
> > +
> > +        off =3D i * sizeof(irqs->icfgr);
> > +        for ( j =3D 0; j < ARRAY_SIZE(irqs->icfgr); j++ )
> > +            irqs->icfgr[j] =3D readl_gicd(GICD_ICFGR + off + j * 4);
> > +    }
> > +
> > +    return 0;
> > +}
> > +
> > +static void gicv2_resume(void)
> > +{
> > +    unsigned int i, blocks =3D DIV_ROUND_UP(gicv2_info.nr_lines, 32);
> > +
> > +    gicv2_cpu_disable();
> > +    /* Disable distributor */
> > +    writel_gicd(0, GICD_CTLR);
> > +
> > +    for ( i =3D 0; i < blocks; i++ )
> > +    {
> > +        struct irq_block *irqs =3D gic_ctx.dist.irqs + i;
> > +        size_t j, off =3D i * sizeof(irqs->isenabler);
> > +
> > +        writel_gicd(GENMASK(31, 0), GICD_ICENABLER + off);
> > +        writel_gicd(irqs->isenabler, GICD_ISENABLER + off);
> > +
> > +        writel_gicd(GENMASK(31, 0), GICD_ICACTIVER + off);
> > +        writel_gicd(irqs->isactiver, GICD_ISACTIVER + off);
> > +
> > +        off =3D i * sizeof(irqs->ipriorityr);
> > +        for ( j =3D 0; j < ARRAY_SIZE(irqs->ipriorityr); j++ )
> > +        {
> > +            writel_gicd(irqs->ipriorityr[j], GICD_IPRIORITYR + off + j=
 * 4);
> > +            writel_gicd(irqs->itargetsr[j], GICD_ITARGETSR + off + j *=
 4);
>
> =E2=80=A6 please let me know if I read correctly this loop, but here GICD=
_ITARGETSR0 =E2=80=A6 7
> are restored when i=3D0, but the specificaitons says that this block is r=
ead only on
> multiprocessor, so we should skip the restore part.
> Also saving it could be skipped because each field returns a value that c=
orresponds
> only to the processor reading the register.
>
> 4.3.12 User constraints [1]

You are right, thanks for pointing this out.
I will skip saving/restoring the read-only GICD_ITARGETSR0..7 block in v9.

>
> > +        }
> > +
> > +        off =3D i * sizeof(irqs->icfgr);
> > +        for ( j =3D 0; j < ARRAY_SIZE(irqs->icfgr); j++ )
> > +            writel_gicd(irqs->icfgr[j], GICD_ICFGR + off + j * 4);
> > +    }
> > +
> > +    /* Make sure all registers are restored and enable distributor */
> > +    writel_gicd(gic_ctx.dist.ctlr, GICD_CTLR);
> > +
> > +    /* Restore GIC CPU interface configuration */
> > +    writel_gicc(gic_ctx.cpu.pmr, GICC_PMR);
> > +    writel_gicc(gic_ctx.cpu.bpr, GICC_BPR);
> > +
> > +    /* Enable GIC CPU interface */
> > +    writel_gicc(gic_ctx.cpu.ctlr, GICC_CTLR);
> > +}
> > +
>
> I also see that we don=E2=80=99t save pending SGIs state (by GICD_CPENDSG=
IRn/GICD_SPENDSGIRn) or Active Priorities registers
> state (GICC_APRn/GICC_NSAPRn [latter if security extension are there]) as=
 written in [1] =E2=80=9C4.5 Preserving and restoring GIC state=E2=80=9D,
> was it intentional?

Yes, this was intentional.

The GICv2 suspend callback is called at a quiescent point in the
SYSTEM_SUSPEND path: all domains are already shut down for suspend, guest
execution is quiesced, the scheduler is disabled, non-boot CPUs have been
offlined, and CPU0 enters gic_suspend() with local interrupts disabled.

For SGIs, I don't consider GICD_CPENDSGIRn/GICD_SPENDSGIRn part of the save=
d
host GIC context. Xen uses physical SGIs as IPIs, and IPI delivery is an
internal synchronization mechanism, not architectural state that should be
replayed after SYSTEM_SUSPEND. Guest SGI state is virtual GIC state and is =
not
represented by these physical GICD SGI pending registers.

For GICC_APRn/GICC_NSAPRn, those registers describe active priority state f=
or
interrupts already acknowledged by the CPU interface. The final suspend pat=
h is
not expected to run with an active physical interrupt context. If those
registers were non-zero there, restoring only APR/NSAPR would not make the
corresponding interrupt handling context valid after resume, and could inst=
ead
leave the CPU interface with stale active priority state.

So I did not add save/restore for GICD_CPENDSGIRn/GICD_SPENDSGIRn or
GICC_APRn/GICC_NSAPRn in this patch. I can add a short comment in v9 to mak=
e
this scope explicit.

Please let me know if you think there is a suspend/resume path where this
state still needs to be preserved.

Best regards,
Mykola

>
> [1] https://developer.arm.com/documentation/ihi0048/bb/?lang=3Den
>
> Cheers,
> Luca
>
>


From xen-devel-bounces@lists.xenproject.org Thu May 07 07:53:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 07:53:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302230.1576206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKtYT-0005m3-BD; Thu, 07 May 2026 07:53:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302230.1576206; Thu, 07 May 2026 07:53:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKtYT-0005lw-6f; Thu, 07 May 2026 07:53:57 +0000
Received: by outflank-mailman (input) for mailman id 1302230;
 Thu, 07 May 2026 07:53:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKtYS-0005lq-7R
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 07:53:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKtYR-00C5dA-KV
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 09:53:55 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc4503-2eae-0a2a0a5409dd-0a2a4509884c-40
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 09:53:55 +0200
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc4513-2497-0a2a45090019-d1558034d92d-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 09:53:55 +0200
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-4852b81c73aso4473525e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 00:53:55 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e53110aebsm53428625e9.3.2026.05.07.00.53.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 00:53:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778140435; x=1778745235; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8cpiZsq5QxQBhxrwredKlRb+311uA3g17xBJM/KVw7Y=;
        b=gdnVFLAlJSx3t5AuZGSe0dcxN4kONMC1xZk+NzR584DuvMwtPslY6+daN+plflKgU7
         OA4H4vtXwdc5PX6vUWS1RIZqxif+jFxcxcrx0104JetKbMpw/vwNiJJxxou/xSWB2a/z
         ZswW6UxYJMn6cfOem1IB59zgfFwMzk4VJ2GwY/73Ip3EeotOieHNPVdCjc18pZPLEd2i
         d8LqbnGGm+HPkQcf6fInqOLVoVb70/D0gmC/ud9nRZIQdLqEkpMbU7/W4UGJ/Dq0G8np
         Otmc3oWdh8RipxvYp6X3XRQJnUwoFvlNPdNzzUMY9+C3lsRdbe54Zycer2XJyuNv8UfR
         27bw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778140435; x=1778745235;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8cpiZsq5QxQBhxrwredKlRb+311uA3g17xBJM/KVw7Y=;
        b=pqJd+h/igTCbDjhh9AJp9aLpjlOyqxJEPJcp8I+hz//vv96y/5q/xIHKRyT+stA3aE
         irbFY39f83s31Og7YA3LqKkgCevxSORKJb4ZAdFkKFx4+iLfjbSR+5lD4G1IKQMEERrE
         iJbYnYmjvl3KojgBMEx/DnusRYNKJ6tVqfj1TFjFnrU5tmlUXI25jona7D3f5JvOrBAV
         sxYCs0W1Zm1YIVEC4AaQRcVn2k6eOKr2bYgUrI6FueRxxv4fBNfvhz7D9Z9SKrmvUc3P
         SR7ncTQQNxBk3CENbLa5uSuDlg505rnJJ3wjimRDWObEDs7z+5b1OSsgiuKEgNZsJ1n2
         rp/w==
X-Forwarded-Encrypted: i=1; AFNElJ8vmETF9LVlOqJouNrDhCM1PkwaUaSJLzYZIrHU3ygHHNjQkGAVX39pV5XHyugfm711u5GbjPes2CE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzt5QBKRF6lqJ7VtbFoa2wYJfvREueRUNS29r0xNvAH/kyqWhqd
	pjsckoFiruJpOWtqLrzrJJSugBrhkopenL/uHmv6nj7EghA9bcf/Tr9Cd9lkI8rBmA==
X-Gm-Gg: AeBDiev/oyh7kdrtqg6miKaExVUEmt8FzqdPm78aTzmknSSvDWIze9A2fD/iMVgIiGk
	MCEjm4SE+7r4L6yx+vywsb7TsRcTds5sNnCn3f3W7bXG+K8CViybE2epJzTm1R58zKZnvATrISO
	ikIEtejUT7LeMT9P3l/Ulbzuy8RvTZJtI3FVVwpUzj7rl7sjzFiwwsIxLNJcY7Ca4ytAJOJcYbw
	oHf+QBZ2stQZgASUhdkHL4kLYPAItK9XGvTj7B8NpJNUZCUcHRz9fn7+mbwTu3P5Gm4oHdoN7kZ
	NznuZspyb5jD3BC1QU4FV4VF0C+/Q5PtjdTVtL92WQfs3eKsDD9Dk5fr8gNbKV2cDjYPDse4g5p
	AuxCIMHX7qEa4Uu0aDm1TXHrmEIx7iMJcucQo6Al0aTMfRMhzlsyoN9VZdeJJLGDjux6ZVC7gW4
	vSdC4KKfzbpuIrtIsVZt/j5NEKH3Qb7hYdxST7+mSLPqRG+IxHhRVSymw17IgfL3sLUu2bpxDN1
	92XBRZgc9B5pwM79nqqWIkcGL7jbhOWu786
X-Received: by 2002:a05:600c:8b8b:b0:489:1aed:1658 with SMTP id 5b1f17b1804b1-48e51f3fd03mr109878535e9.23.1778140435044;
        Thu, 07 May 2026 00:53:55 -0700 (PDT)
Message-ID: <231c1198-c267-459b-88ce-2b29d1625596@suse.com>
Date: Thu, 7 May 2026 09:53:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/4] tools/xenstored: remove permissions related to
 dead domain
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Julien Grall <julien@xen.org>, Anthony PERARD
 <anthony.perard@vates.tech>, Jason Andryuk <jason.andryuk@amd.com>,
 xen-devel@lists.xenproject.org
References: <20260429120619.1013440-1-jgross@suse.com>
 <20260429120619.1013440-5-jgross@suse.com>
 <e9cfb86e-704d-4a5d-bc59-ad05d07bf69a@amd.com>
 <199b54b5-8571-4a18-bba6-226a5a94ecc9@suse.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <199b54b5-8571-4a18-bba6-226a5a94ecc9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778140435-88970A53-30E5C3FF/0/0
X-purgate-type: clean
X-purgate-size: 935

On 07.05.2026 09:43, Jürgen Groß wrote:
> On 29.04.26 18:41, Jason Andryuk wrote:
>> On 2026-04-29 08:06, Juergen Gross wrote:
>>> Wit unprivileged domains now capable to use the @releaseDomain watch,
>>
>> s/Wit/With/ again.
>>
>> Regards,
>> Jason
>>
>>> there is no reason not to remove any node permissions which relate to
>>> a domain which has been removed.
>>>
>>> This resolves a complex scenario where a new domain could inherit the
>>> permissions of an old one with the same domid.
>>>
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> Can this simple fix be done while committing, or should I send V3?

Afaic - of course it can be. Aiui the series wasn't committed (and can't
be) because patch 1 still needs a REST maintainer ack. As per earlier
comments throughout the history of the DOMID_ANY patch, I'm hesitant to
offer it.

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 07 07:57:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 07:57:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302237.1576214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKtbi-0006JA-NP; Thu, 07 May 2026 07:57:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302237.1576214; Thu, 07 May 2026 07:57:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKtbi-0006J3-KB; Thu, 07 May 2026 07:57:18 +0000
Received: by outflank-mailman (input) for mailman id 1302237;
 Thu, 07 May 2026 07:57:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKtbg-0006Ix-Vl
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 07:57:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKtbg-005Fn6-8u
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 09:57:16 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc45d7-2eae-0a2a0a5409dd-0a2a45088ab0-20
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 09:57:16 +0200
Received: from [209.85.221.52] (helo=mail-wr1-f52.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc45dc-63b5-0a2a45080019-d155dd34c424-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 09:57:16 +0200
Received: by mail-wr1-f52.google.com with SMTP id
 ffacd0b85a97d-43fe3e22e33so313332f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 00:57:16 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45052a4878fsm17562972f8f.9.2026.05.07.00.57.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 00:57:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778140636; x=1778745436; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3oNtBhy9bRQ0n40pPopFcdMy2NYLPfrJ48jcUQh2stc=;
        b=SN3hXnj/cECL4a566qpIbXAdkqNPZ5bs+VFGDDkiR9G9+plKUSXyVyXex0ZUMjn80W
         Z6E5Zdf3Msz04nv+zS/ThjDIAMPYFCuuXpPAEb2RQsLHGZ/TCFxgLTJolLt1s1HuT6XY
         WdtqLglBfL8tUT8+YoclM46TlOHjzerf+zn2DFYMrJoDEXyv3dWTkKYi39VlBdiYeMJn
         M8KmP3q2R2wzIZ08hxNnMqY0DWv2uHKiyXbmvdi3perJAfoGzlIaNIhX1WPbI7dyGU0k
         BO3thCM9uM8GTgyVlktW71195dXO5gB5CcIrmlgwMzgAubZeyfy1ziv9IfwCzt/9pOHX
         oVaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778140636; x=1778745436;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3oNtBhy9bRQ0n40pPopFcdMy2NYLPfrJ48jcUQh2stc=;
        b=MB48LIs8/MfNX3nvZpSw5Bn7nZRf3i++Fhv5NF25qVq23f+ztTUO3Z7MpHZQyHMn7Y
         2R/R5rLIG+Hytxi16nBqLrX08ntAZk64qq49JHK2onzR9rIR2vTziy7gOVLPloO596P/
         vRFrbwQ3tv5fR+0QRb032PrP0gUhjLgQmWnHxK5tmdcLztajlfSH3F4Qh9e+6IrJfERp
         0m8YvMnr4Nw2Sr7BXxGi7G7ZgchXiCcJIr98AvHzqbXEAcnUbMRwd/5v0t/UyUKi/xYN
         IuNqC9nzMp4YYiXw4QHWcBjCsYCl7yerKUTotbgK3LnrAZHdQJpcoP90n3u3CbcS738r
         VwZQ==
X-Forwarded-Encrypted: i=1; AFNElJ+nb6I2brBkUk6XFLrlTrUDZrbRsEod4tXAiQi5u5suQ6+hZ19s98i8Y9UwBBoKDMIhMnwjf4Jg5xE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz9dK3OGfSh4RQRnFoGcFxOVloqcdMVCOynVliau17vRAt/03g3
	yXEyTTUcmKipD03OK8Mr6+w9Eq6mZZQlkSI2yG9JFaWFE5M/gqXAT8ZB8sfWRvF+fg==
X-Gm-Gg: AeBDietyCpOg5FZ7n1RTh8JesLGbPMd+3RMUAqSm1V6hA6dSz/rIKUyIJQUL8OT6yhC
	qiO6BXbKwq/c+5WVGl0IBMz4jAkphIdEKevP0cOPnPunfBJscPBO3EOkLd60p2oInZEIGCDF0Nd
	mUa8hVq/PecQDVlh2g1MdR9jBw/e+mEUkWAeOtWzh28VMBs++otp81GVM6dwug5uiZBjgP4/kGF
	rouTTmBD9nEkGa8r9+yhgwTq8kmCW17cX0f5DSOTn302kvgmqmHwKKi7aV0BrSoOZtjK/0hMufo
	KmsAu6kDyCRsdK1dNrRyCxyyOH7k4qup8r1QZxoQE4HI6hOMsXzrN6ayX3HEFcTj4Gwuf7XuRfO
	EcMWJNL+8Qi4gTpxXmo3lOiGGAvX39HgzDJSvhmVdWvlO97xGECmvMshZBbYas3qHsJH4IGcWEK
	d4HzJlLRPegJf36R2FooE/ce6c7rVXLpl7LpLC651mj7aUPFZe97YPSTRe+k5K21dru8Tclw+z9
	PDoDLKzR/OvkNczQplzOVfXU9LgdCOgxpHC
X-Received: by 2002:a05:6000:420c:b0:43d:7a97:78a2 with SMTP id ffacd0b85a97d-4515c5752f7mr11716646f8f.28.1778140635646;
        Thu, 07 May 2026 00:57:15 -0700 (PDT)
Message-ID: <cbaf9355-a136-4e71-835e-83d7bfdc9d23@suse.com>
Date: Thu, 7 May 2026 09:57:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] iommu/amd-vi: do not zero IOMMU MMIO region
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Teddy Astie <teddy.astie@vates.tech>, Roger Pau Monne
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260506135514.47310-1-roger.pau@citrix.com>
 <20260506135514.47310-3-roger.pau@citrix.com>
 <5531fe94-6200-4f7c-9c22-e09189438e9c@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5531fe94-6200-4f7c-9c22-e09189438e9c@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1778140636-BC766DB1-A4744FC5/0/0
X-purgate-type: clean
X-purgate-size: 5053

On 06.05.2026 18:18, Andrew Cooper wrote:
> On 06/05/2026 2:55 pm, Roger Pau Monne wrote:
>> Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
>> say the least.  We don't know what registers might be there, nor which
> 
> Sorry, one more.  "We don't know which registers might".
> 
>> values might be safe for those registers.  On a forthcoming platform doing
>> the zeroing of the MMIO region does put the IOMMU in a broken state, which
>> is not recoverable by the IOMMU initialization procedure in Xen.
>>
>> Instead attempt to forcefully disable the IOMMU ahead of enabling it.  Fold
>> map_iommu_mmio_region() into it's only caller, as the function body is just
>> an ioremap() call after the removal of the memset().
>>
>> Fixes: 0700c962ac2d ("Add AMD IOMMU support into hypervisor")
>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>> ---
>> Changes since v1:
>>  - Zero the control register after calling disable_iommu().
>>  - Print a warning message if the IOMMU is handed enabled to Xen from
>>    firmware.
>>  - Fix commit log grammar issues.
>> ---
>>  xen/drivers/passthrough/amd/iommu_init.c | 31 +++++++++++++-----------
>>  1 file changed, 17 insertions(+), 14 deletions(-)
>>
>> diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
>> index 76ae78e5ea53..ffc041211fb5 100644
>> --- a/xen/drivers/passthrough/amd/iommu_init.c
>> +++ b/xen/drivers/passthrough/amd/iommu_init.c
>> @@ -42,18 +42,6 @@ static bool iommu_has_ht_flag(struct amd_iommu *iommu, u8 mask)
>>      return iommu->ht_flags & mask;
>>  }
>>  
>> -static int __init map_iommu_mmio_region(struct amd_iommu *iommu)
>> -{
>> -    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
>> -                               IOMMU_MMIO_REGION_LENGTH);
>> -    if ( !iommu->mmio_base )
>> -        return -ENOMEM;
>> -
>> -    memset(iommu->mmio_base, 0, IOMMU_MMIO_REGION_LENGTH);
>> -
>> -    return 0;
>> -}
>> -
>>  static void __init unmap_iommu_mmio_region(struct amd_iommu *iommu)
>>  {
>>      if ( iommu->mmio_base )
>> @@ -1367,11 +1355,14 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>>  {
>>      int rc = alloc_ivrs_mappings(iommu->sbdf.seg);
>>  
>> -    if ( !rc )
>> -        rc = map_iommu_mmio_region(iommu);
>>      if ( rc )
>>          return rc;
>>  
>> +    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
>> +                               IOMMU_MMIO_REGION_LENGTH);
>> +    if ( !iommu->mmio_base )
>> +        return -ENOMEM;
>> +
>>      get_iommu_features(iommu);
>>  
>>      /*
>> @@ -1381,6 +1372,18 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>>      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
>>          return -ERANGE;
>>  
>> +    /* Read current control register and forcefully disable the IOMMU. */
>> +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
>> +    if ( iommu->ctrl.iommu_en )
>> +        printk(XENLOG_WARNING
>> +               "AMD-Vi: IOMMU %pp enabled by firmware (%016lx)\n",
>> +               &iommu->sbdf, iommu->ctrl.raw);
>> +    disable_iommu(iommu, true);
>> +
>> +    /* With the IOMMU disabled zero the control register. */
>> +    iommu->ctrl.raw = 0;
>> +    writeq(0, iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
>> +
>>      return 0;
>>  }
>>  
> 
> I don't think calling disable_iommu() is a good thing here.
> 
> It's just a cascade of clearing one/few bits in ctrl at a time, but is
> is added unconditionally so that's 5 UC stores writing 0's to the same
> register in the common case.
> 
> I think this logic wants to be:
> 
> @@ -1381,6 +1372,18 @@ static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>      if ( amd_iommu_max_paging_mode < amd_iommu_min_paging_mode )
>          return -ERANGE;
>  
> +    /* Check if the IOMMU is active, and disable. */
> +    iommu->ctrl.raw = readq(iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
> +    if ( iommu->ctrl.iommu_en )
> +    {
> +        printk(XENLOG_WARNING
> +               "AMD-Vi: IOMMU %pp enabled by firmware (ctrl %016lx)\n",
> +               &iommu->sbdf, iommu->ctrl.raw);
> +
> +        iommu->ctrl.raw = 0;
> +        writeq(0, iommu->mmio_base + IOMMU_CONTROL_MMIO_OFFSET);
> +    }
> +
>      return 0;
>  }
> 
>  
> 
> which has the advantage that it's closer to the current behaviour, and
> therefore arguably a safer backport.
> 
> The only thing that disable_iommu() does which isn't editing the control
> register is playing with the PCI MSI enable bit, but that really doesn't
> matter when we clear ctrl.int_cap_xt_en.  (And in fact, that path is
> buggy because it clears MSI enable without inhibiting interrupt
> generation, which architecturally will turn into legacy line interrupt
> to deal with.)

Except there's no line interrupt associated with this?

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 07 08:02:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:02:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302255.1576222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKth6-0000OG-PH; Thu, 07 May 2026 08:02:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302255.1576222; Thu, 07 May 2026 08:02:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKth6-0000O9-MZ; Thu, 07 May 2026 08:02:52 +0000
Received: by outflank-mailman (input) for mailman id 1302255;
 Thu, 07 May 2026 08:02:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <kevin.tian@intel.com>) id 1wKth5-0000O1-GG
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:02:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKth3-002kcG-0S
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:02:49 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <kevin.tian@intel.com>)
 id 69fc4720-e002-0a2a0a5209dd-0a2a45029d46-24
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:02:47 +0200
Received: from [198.175.65.11] (helo=mgamail.intel.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <kevin.tian@intel.com>)
 id 69fc4724-af86-0a2a45020019-c6af410b65ab-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:02:46 +0200
Received: from orviesa006.jf.intel.com ([10.64.159.146])
 by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 07 May 2026 01:02:45 -0700
Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24])
 by orviesa006.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 07 May 2026 01:02:45 -0700
Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) by
 ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.37; Thu, 7 May 2026 01:02:44 -0700
Received: from ORSEDG901.ED.cps.intel.com (10.7.248.11) by
 ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.37 via Frontend Transport; Thu, 7 May 2026 01:02:44 -0700
Received: from SA9PR02CU001.outbound.protection.outlook.com (40.93.196.67) by
 edgegateway.intel.com (134.134.137.111) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.37; Thu, 7 May 2026 01:02:43 -0700
Received: from BN9PR11MB5276.namprd11.prod.outlook.com (2603:10b6:408:135::18)
 by PH7PR11MB5915.namprd11.prod.outlook.com (2603:10b6:510:13c::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Thu, 7 May
 2026 08:02:40 +0000
Received: from BN9PR11MB5276.namprd11.prod.outlook.com
 ([fe80::f997:762f:f079:134f]) by BN9PR11MB5276.namprd11.prod.outlook.com
 ([fe80::f997:762f:f079:134f%5]) with mapi id 15.20.9891.017; Thu, 7 May 2026
 08:02:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=Intel header.d=intel.com header.i="@intel.com" header.h="From:To:CC:Subject:Date:Message-ID:References:In-Reply-To:Content-Transfer-Encoding:MIME-Version"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1778140967; x=1809676967;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=pcnZj613tpFQBAUDwRchklhfCdz+IyCwboM0ZJtkehA=;
  b=GD0dHYMsTvtsTBXDfFW74oRfHTeQU6iCVOX0yl2hzuKsqdqCZSyYWItN
   7tDdF00GuKe7BdZnDt0QmowYa4ID4HdTLBuVH2cFe+ZuMhTXcpbHPJP7S
   K9VC6SAlo6xRPaSjFzLKt2tdik8lnclZk4ik7HuLXg6M2krIwVqOY6HoB
   0V114AyrD7OGHPtKuVAfz9N5pKrrXQcUaz1oDm5imBpM0zk7ehyfhV78q
   XnmMcIkoYnVHS+Yu/u3budRxSFqa2XWtNvjygDRvp9stWyQcohwH4AWff
   IbKuAyHpygTr2cjlRtWUOr+1/POnQrHz9nYLcep9clzMedppTRQFPTL9L
   A==;
X-CSE-ConnectionGUID: YizOmbheTWGzNP/hVxdVyQ==
X-CSE-MsgGUID: EiIEDCoBSi2NQWvTpRkLQg==
X-IronPort-AV: E=McAfee;i="6800,10657,11778"; a="89392525"
X-IronPort-AV: E=Sophos;i="6.23,221,1770624000"; 
   d="scan'208";a="89392525"
X-CSE-ConnectionGUID: Htv7n2L9Qcqf1pBgPfwXlg==
X-CSE-MsgGUID: yzYm0vLRT5OCRLUJuy27bA==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.23,221,1770624000"; 
   d="scan'208";a="235399945"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EIx0dIDsMSBZmpH57Ql10hs5s0ABl9zK+9Q368yZi5VsvaC+HF5IAfzFM//1UCp9yw3VHlBVsmSIh/us9xGQhOamivcPjlMA/ncdhuijMp0YolESRa1VxEiWY9YUpD8Hmqfk5SYfORGL5LLqkaytHrjce1yRc4u9pCvc2ZzlAk1jGhNmCR7nezBYWvigonwxuDMCWmvYOuci1ugoVs7reZofO4g70UXSEskevO31RlIbzqP4Kibluy50LYq+qGpgY4ODRWTTUBAYey0cpq1jlhmBzxTsO7KRX5yyoIxHBHz8bkkqLeGq3djHRG9zYHXmQeaREr6TNmAHC7eWMEHRzw==
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=pcnZj613tpFQBAUDwRchklhfCdz+IyCwboM0ZJtkehA=;
 b=Fmzhm55YiXz9L8m1D4l8K0+Dxw4fkO9074fVVjvcWswZJAH3BrnT2+/1jhPKZPehLxFrXa/kMUgICK+eahjcI3h+LoSXbkxzKN1+Moypwy9vqvgGv+ckYa99+jFCJ3PUSRly7R+A+H84CTYqI23S9k8YVErBdcxtYZSlcOQMhYoETefRjhmgZ6m2EpJPeerlqDhLu7wEKLzng8FuZ3hdY+aWCkRcFocG9XtW1vaKcfFYUY91z8LBtw2GaA0KbWAhy9AkfaeeYvo+cAnP8dgd4l+8C05aDdjNjfQEfIbiJIW3NvsIUw0Jd6SvQOiY65Dh7PcTr4bqjlOyVZP/l5RCug==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
From: "Tian, Kevin" <kevin.tian@intel.com>
To: Jason Gunthorpe <jgg@ziepe.ca>
CC: Teddy Astie <teddy.astie@vates.tech>, "iommu@lists.linux.dev"
	<iommu@lists.linux.dev>, "linux-kernel@vger.kernel.org"
	<linux-kernel@vger.kernel.org>, Xen-devel <xen-devel@lists.xenproject.org>
Subject: RE: How to express "externally managed" IOMMU domains for
 VFIO/IOMMUFD ?
Thread-Topic: How to express "externally managed" IOMMU domains for
 VFIO/IOMMUFD ?
Thread-Index: AQHc0nD/HbUzotrTgkKZyZa10hSZGrXsSRwAgAUTsYCAEOr18A==
Date: Thu, 7 May 2026 08:02:40 +0000
Message-ID: <BN9PR11MB52768B5170F6CE558B0AC8AA8C3C2@BN9PR11MB5276.namprd11.prod.outlook.com>
References: <1776873531.8631fc262581453bbf619ec5b2062170.19db5ea67ab000f373@vates.tech>
 <BN9PR11MB5276B3A829AD624A7E1AB4408C2A2@BN9PR11MB5276.namprd11.prod.outlook.com>
 <20260426133027.GB3501894@ziepe.ca>
In-Reply-To: <20260426133027.GB3501894@ziepe.ca>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BN9PR11MB5276:EE_|PH7PR11MB5915:EE_
x-ms-office365-filtering-correlation-id: db3d8b33-1b3c-4739-46b1-08deac0f02d5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700021|56012099003|18002099003|22082099003;
x-microsoft-antispam-message-info: nxDJu+Nh8WNxBhaRr88NqN6NKrH0Khruiw5MXHLB6v9OUplzmHHM7XVRLGMiU3ZSOixwLZu3qb2eb8LViI+TAs8PJZ3bJXy96mDF86ICVODSOHgLDODLRYNEv5/oGvdYbMIP/ew6iQVNLhq9v+Um7qPFBNA+WsWLJWrEeRqle9LIwOw1JJOJRMUOXlgYhPgu1tAW85zC0r17/31EMmdFWUv0f3dbg3Vh7frVonmsyVabkV0mM9hCRl3cEWIj5S8T4/qQA+q9z4KtU75OrVj7fbo6pXSop+qmMeQplKUFtizsv6RpZWn+xCgHDmyHYlWXFte79nMdvIv1Ri7tr9IHOVlqsWgYWrBCaklowKX6U4/qhJ57SQ3MjbqYqRxaMsraqzBKr8wg48LGPuNhyvgtSg3UwqpsCNTBS13pdSAOvXXJmcCW6hKBkrWLnLr8lmV0Np06Angvd7+ak+f8n089DMQB4l8MwZ27vteaGcguLtCi6IGc/9z00jaUBQ+yR3b2Kibwvxw5k2ZA9ojWSGKBPN7S1vjXgARu3fv2kU1KRvdGwwZCSpAZsvkA98aFssz9fMGVs5f/xuCB8eUXPZNlzyEexv7nP/fETaljqKDh8CRM8/PPYSUm32tGvhiYi4MM8lTDQK0IV7ZTUB0ye09d9GCtcPuyZJruglM30HFk1as1kR5cjPoUaf8Nxc7ULDosfKdOkqcoQCVToEbYn6IaTg==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5276.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?4uhUD7gFtiRtHGciyG5UuI/Yx3v7/pCU7LIFZlXxQlv+dzimtDTxmWmdFRSC?=
 =?us-ascii?Q?4doz0ADLn1ivMCK2EbL/qQh/xbAibbh9VqpG9CcYlICpERVMK8QJStMMgZVL?=
 =?us-ascii?Q?n5RG/HWtwSQsri2aPbJ/P7ppYQAQ3SiktGlp5SKvvA7R1vDlXQSLxEOqdWOR?=
 =?us-ascii?Q?GUcF2p6QpK1YQB7nnGqFIHHCqWfSlzvph0LRPHRNkz+EUoj7kIR3V+ykrKw9?=
 =?us-ascii?Q?2/BMLDTyQJcOMUncYyWIQbXUy3YM+SN9f0hnITH2Hl4FNtBccTlE64xEbJM6?=
 =?us-ascii?Q?Bguy5HieVWg9NQntepYaGbEfzE7SByq0DuEdtt6xz/o4UOkFvWs74qiVNNHc?=
 =?us-ascii?Q?eFBc4JtDiT7jDztZ/57/OMWTMZG1/Xskd5tnwvjrwP6uemlg2S+EPPtF66nt?=
 =?us-ascii?Q?DMmcyxyOVo9RkIzaRkt07WWqa+PRRMM6M4IOG9ctg8c8zdLj0fYitD9IH26/?=
 =?us-ascii?Q?peT45MxWIVZAHyeY8ZwdmgftdIl74OqOn2HXJc7yWKdRmIry2wzBE43l2CQc?=
 =?us-ascii?Q?Kl4GxQyrGfVPJdx8E9lipMzb+FpsdMGBaj+Jqk8TeqmdDChXP2Bt22/dsePg?=
 =?us-ascii?Q?nreR79k5YGjHGB0hOlraNVZykFrF10nArg0OJ6tkjIVFab0JKcx8x4D0unnE?=
 =?us-ascii?Q?F4pBO+F7LjWRiq17aZbEbTnARNZwoWtj+MZSUrRsH90+fdTAbQFTGid+qZ3j?=
 =?us-ascii?Q?GVkGZ/TrMFny1q7MV7t8oWk1+zF7U3j2M6NoIqnbqg2trpS5l+wty1C4Tz65?=
 =?us-ascii?Q?dzMs4OQ/ohXZmZQsv5e+1Xs4ts8acS0ZOd7B7O0L8b6FirsjS5CUb0NGALnP?=
 =?us-ascii?Q?YDJKhUb7oagPhtFe0ppSLX/EpuKJ0/dzN5OetZKphmeNg6NLLT73P2M6OcI2?=
 =?us-ascii?Q?/CS+0A85dptOgLa6OAibIrgkgS3/Cwjw5QbwxUobCUvm0hEizgpceCxyxg30?=
 =?us-ascii?Q?213bpHwPznN9iSCyzhI/20GqtdEIT4ERB5efw8VQbqzeCNZfBax6YaNlPhEA?=
 =?us-ascii?Q?VRNwF6y0VY0cjyvIVutOItilqltuTS9AJXcULKLEZNBkKu08WSwmmYwjUrFv?=
 =?us-ascii?Q?P4ysgK7LUcLpcDrX5RY/EEagZwziFdKTXDL3WnfGYMdsXP5Ax+gDem/5/Vj0?=
 =?us-ascii?Q?6OXZ9eJhs//1BE/yXLlGaoMtUHPFVyiG0YNuzSq3D86H/LsaoW0VuNx9AarA?=
 =?us-ascii?Q?BJbx7tj+NrsYv+742QrRra34FjSJj+qH10Qt3Yo68qf47xGDZB/vJ142SWDv?=
 =?us-ascii?Q?jNXxB1VPg8HFA05KqmhEygLCUjd98lE0tJfTY+uGiV3UxMoJzeKTqGSId/Bu?=
 =?us-ascii?Q?z6APrQuml4IBKaw7475UO9HjioasK9NcvN/Sdq6JP93UqwsGKrtXTzzo4YS9?=
 =?us-ascii?Q?2p7c0L8MOhGYqfhhlgmyGWVvoUTO98k1fe8tIw6i7ZVKJ2UteV15SUJCeE61?=
 =?us-ascii?Q?WHcHqi5EGR4doombzz0nvqiJHKffVbRGwW4kMC4cRff+DOFS23JCZQfHFI+G?=
 =?us-ascii?Q?ZclcaK1u+VYY7dCBWdAZ+T8G7jH7jfNX4DnXpYfR9bn7GhXEWozS++JTxJPU?=
 =?us-ascii?Q?PzAplNMc2OAKFHxOlkmQ6brD4R4ajdFB3cHFWbeMxAKvJoBbYWM3YgQ2EZIk?=
 =?us-ascii?Q?7MG7FqIP1QYSgxbmcTZ7SbrxIQLHkCAHbHbqi/4DUb+KQCCMZRWNw8mRYr5b?=
 =?us-ascii?Q?YWJZJ05iH8j0O+y7Tga0Q9vLPjAlXAQ2acpLvIbCsL6plEiUcjh0R1UGOM6q?=
 =?us-ascii?Q?IYwoO/TtmQ=3D=3D?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked: VSfCeairwr+tBnZUwy90Y9fH5KsyFjF+1tIfs1/ecuba/9l+N3WijyakW4xUQadnNgyL7wp+YR5wOrY7+XrGJUpH3pA9zz8AQwlECvi0OlvrKb/SbQQv9u+tugQh9qa0hq1WfzMdpKIoxlPAM1BZFEmln2uNlTFTXNjDaUdscjXZKth24drbhaFIlk8XO5DLCoQQEgcO83i8o2EIjhD724gxoyCCuLvvEvln8NAoEzLZL5WKqx3lB3mI7cI8y05n78X3mKtRTgRE8292TW/nnXjPrQOovfhhnGIQAiPXW1NJZcfbpMcZZTzypblhEtNTpBWIMsaRHvsAXadY+LLRGQ==
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5276.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: db3d8b33-1b3c-4739-46b1-08deac0f02d5
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 May 2026 08:02:40.4075
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: N7Ss62VstNWPi7tykbszPu81JGV3Yl9Mq8W9yQ+bBt98CXAYDUeAGOZIRFCss8lkhvl1PwNQUJeJF5qaZdChBg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB5915
X-OriginatorOrg: intel.com
X-purgate-ID: tlsNG-720697/1778140967-ABB60161-48381AA4/0/0
X-purgate-type: clean
X-purgate-size: 1551

> From: Jason Gunthorpe <jgg@ziepe.ca>
> Sent: Sunday, April 26, 2026 9:30 PM
>=20
> On Thu, Apr 23, 2026 at 08:01:50AM +0000, Tian, Kevin wrote:
> > > On Xen, we have a dedicated hypercalls for moving a device into anoth=
er
> > > guest (so it no longer belongs in Dom0, at far as DMA is concerned).
> > >
> > > But it looks like there are no way to describe that idea of "attach t=
hat
> > > device to this VM" nor "the device is in a VM"; which makes that
> > > impracticable.
> > >
> > > There may be things that could be done with the vIOMMU objects, but
> > > there would be no "parent domain" in such case, as said earlier it
> > > doesn't exist in the IOMMU subsystem.
> > >
> > > What is expected to be done instead ?
> > >
> > > Teddy
> > >
> > > [1] https://www.youtube.com/watch?v=3DpLMGRgEJ-Eg
> > >
> >
> > It'd be much easier to collect comments if you can put plain words
> > to explain the problem rather than expecting other folks to watch
> > the video first...
>=20
> It sounds like CC and pkvm to me so I think it should re-use those
> mechanisms..
>=20

for CC and pkvm the guest memory is still allocated from host.

for Xen the guest memory is allocated from hypervisor and invisible
to Dom0. iirc its device assignment is implemented by the toolstack
issuing hypercall to hypervisor, bypassing the Dom0 kernel.

I don't know the latest status in Xen side. Seems it's still the case and
Astie is trying to find a way to orchestrate it via VFIO. But it's unclear
what his proposal is...


From xen-devel-bounces@lists.xenproject.org Thu May 07 08:03:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:03:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302257.1576232 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKthM-0000fL-Vr; Thu, 07 May 2026 08:03:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302257.1576232; Thu, 07 May 2026 08:03:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKthM-0000fE-T9; Thu, 07 May 2026 08:03:08 +0000
Received: by outflank-mailman (input) for mailman id 1302257;
 Thu, 07 May 2026 08:03:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKthM-0000et-1l
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:03:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKthL-0018Is-EQ
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:03:07 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc4738-bab6-0a2a0a5309dd-0a2a4505d798-34
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:03:07 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc473b-aaa8-0a2a45050019-d1558031c540-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:03:07 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-488af9fdaa7so3013785e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:03:07 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45052483166sm17668275f8f.7.2026.05.07.01.03.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 01:03:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778140987; x=1778745787; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fxkRZ+aMdP0cnIKmyoGVUurcdK1pUfdLgrXpy2w3TOI=;
        b=WM2B1NBChLyyCpoI/yAPFHadD1dbiTYMFoJmj7Z5Mr4Zus6Ai3266GVpry4YOf9FLH
         xODq2o45JkTAhGezQuk70UHhQy5sEmu5llUcyKv5BH8pVEX1oppJ4ER8rwfy/pV04bsB
         wn8+MrBTW3ZpdvmyHVAHUfP41+WSSiOLd6K4MMmlYvhre/4jKYHlQ4CtxKDGe4IO+IyW
         snhNueX8CNxcluuiDfO1hlwlEz6/qLSKWzaNsurxcHFgGDp14/4gXpoeUmVPAPg0aIbf
         L74SHEpVUZMrvgAXlBihpBmFO+DcTSWnX6+8G3fr8mfqmuQ8KqWEksNib2Rs3svpMbKm
         iO4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778140987; x=1778745787;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fxkRZ+aMdP0cnIKmyoGVUurcdK1pUfdLgrXpy2w3TOI=;
        b=FWxnpmAZszR0MdLGthUTs7GSkprJxYoAiTsvlt8C4CBvBLIXW1AiU3c9mHWbXyWbZ8
         Q0z6+awdFA7G8zqcZtWABk4mMnBzh7Yue7RO7RS2xZ6dW6KvA4iX3W/EKCaqCd4Tt7Nw
         Ej+0EYUidwjY8m5Sc4arzqdQTUFt13PyqUwQI9/ZCV4TjoGfqEcLDiTQ3SQlryOhBF6z
         oXcRRVZyIjy6L+yBHPCiId8ZWpbIwTBG7hx6OJyBi9zR/EQGHxmcL03g/+KXXVuu6pXW
         65pK5+HyulkbTRNShufgzwhBVUG1yS2LOcPo9uIitDdxNUaOhxLnUIyODJ6hMaGllNdm
         +Evw==
X-Forwarded-Encrypted: i=1; AFNElJ/SPrcrVBOm7O+E1XwYcR7EJg+75+R6IIHhHeNvwLKXa5PlCOFPjT9m/Ymmec/VZbQ2isZnDnzFUak=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzWzzX95se3mwvDHCn1Zn67M/8Tv2ZDCzswUiehUrZBvASqUGua
	lYBlStAnUV135NflcJ+UXemk2hQi1sPjTGSeehD/Nr/OOafimLWwje1jhWEbpbH0UQ==
X-Gm-Gg: AeBDietlibaR0Ll6SnDo6ur+FJmCwO4EZkzkgJV3hll+ghumvpDKkToKz7Vy6TSgzBx
	l1nFP/30laLUyCJjyaN5hKD7Yv+toU41UV4BrasB8/B6uEiKK6vR8tVflYj8YTymGX6YkIERqdE
	pUB+bUM7S6utBuEqgiBvPPj3egbvhkmOpyswP88dCAmyEl26NnAI8cWDy3IOFqua+CO7cG99uRY
	IQTSEqpQzFCIut0Xpi/B2Ebz5/EJNOJYJBNhtAK66Lq+IF9OzIXbYkgIZwtc7Chyq1n3/iY5kBn
	5b603nZbRbARiU3BEzRCBNBOm6NlcYeKGZoy78v6K2yhFLEJo/O8A1YcjI7PGuGaKYnkvYeRzEv
	DE6JkILYofSFR8pxOgd0FKw/rTQ/E/X4j+EO8gIJJXmHhphe/DlL/7VI7yJRVxiru/DpvfsAf39
	GDlAnIeaok3QpaPSLbEEFyGBvkTUe5FshCr3+GgVPzWczkxUKZzxeXvPUJCbZo8+IVk/tj8vTg8
	5+fUN9KKKsCh5nI9EYuCtJOuk3wfAY8zvFz
X-Received: by 2002:a05:600c:1d11:b0:48a:7f90:2231 with SMTP id 5b1f17b1804b1-48e51f364f3mr116908795e9.19.1778140986516;
        Thu, 07 May 2026 01:03:06 -0700 (PDT)
Message-ID: <b5d9ea51-5fef-4bae-b124-f4dbde93dbdc@suse.com>
Date: Thu, 7 May 2026 10:03:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] iommu/amd-vi: do not zero IOMMU MMIO region
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20260506165157.68567-1-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260506165157.68567-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1778140987-E2193443-DA7567B0/0/0
X-purgate-type: clean
X-purgate-size: 2141

On 06.05.2026 18:51, Roger Pau Monne wrote:
> Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
> say the least.  We don't know what registers might be there, nor which
> values might be safe for those registers.  On a forthcoming platform doing
> the zeroing of the MMIO region does put the IOMMU in a broken state, which
> is not recoverable by the IOMMU initialization procedure in Xen.
> 
> Instead just zero the control register, which mimics the current behavior
> with regards to how the control register is handled, and ensures the IOMU
> setup is done with the unit disabled.  This approach will need revisiting
> in order to support Preboot DMA Protection.
> 
> Fold map_iommu_mmio_region() into its only caller, as the function body is
> just an ioremap() call after the removal of the memset().
> 
> Fixes: 0700c962ac2d ("Add AMD IOMMU support into hypervisor")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

While you got Andrew's R-b, I don't view that as enough to commit it. My
prior concern towards ...

> --- a/xen/drivers/passthrough/amd/iommu_init.c
> +++ b/xen/drivers/passthrough/amd/iommu_init.c
> @@ -42,18 +42,6 @@ static bool iommu_has_ht_flag(struct amd_iommu *iommu, u8 mask)
>      return iommu->ht_flags & mask;
>  }
>  
> -static int __init map_iommu_mmio_region(struct amd_iommu *iommu)
> -{
> -    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
> -                               IOMMU_MMIO_REGION_LENGTH);
> -    if ( !iommu->mmio_base )
> -        return -ENOMEM;
> -
> -    memset(iommu->mmio_base, 0, IOMMU_MMIO_REGION_LENGTH);
> -
> -    return 0;
> -}

... this part of the change wasn't addressed, neither verbally nor by an
adjustment to the description of what was committed. As previously stated,
blindly memset()-ing the entire area may not be the best of all options,
but the downsides of not doing this need to somehow be addressed. As
indicated, once they run out of bits in the main control register, they
likely will add a 2nd one. That'll then also need clearing, yet we have
no code to do so anymore.

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 07 08:07:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:07:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302270.1576241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKtlg-0001VB-Ex; Thu, 07 May 2026 08:07:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302270.1576241; Thu, 07 May 2026 08:07:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKtlg-0001V4-Av; Thu, 07 May 2026 08:07:36 +0000
Received: by outflank-mailman (input) for mailman id 1302270;
 Thu, 07 May 2026 08:07:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKtle-0001Uy-LP
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:07:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKtle-00G9p0-28
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:07:34 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc4843-bab6-0a2a0a5309dd-0a2a450ada76-8
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:07:34 +0200
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc4845-56b3-0a2a450a0019-d155dd29b97c-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:07:33 +0200
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-453903ee4adso61762f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:07:33 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45055d381c8sm17336290f8f.33.2026.05.07.01.07.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 01:07:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Cc:Content-Language:References:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778141253; x=1778746053; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xfr62DcIIUWWm4hPcOs3XwXa0IckLZIW+oW7CImqmB0=;
        b=W/tydAbch+Kk+WxZPBlScD3m1VUnr8dVStsuC3i5h/an8Rn87QaWni30NHp8azs4Nn
         +SgFdNbjeXqZ127QZKjewL1h+OAI6tapydEdgvr5eidRp8Xx3OexOk23+yzTQhrSdo/b
         7fSFD4/RST7A369DekH9i9NQH3hqf6wLIhqKQYSV+UZjrz7CxhPpjQvj7M+jR3FM4TO8
         tFLRzulmxJtniMvuOHn3VhkAKFAGRogTPvWP8mHk80Px+XaDbRyUBP7P0Thn/QU0J5kP
         SRv3SSTQpawYP2SF8vTkUQy6qCSehFQGK86gYNZNu1JZaK5P1tAcDwZFwxqsvY1x1Y6h
         7T2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778141253; x=1778746053;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xfr62DcIIUWWm4hPcOs3XwXa0IckLZIW+oW7CImqmB0=;
        b=G6G8ggpTPKwtnSI72NUc8Q+QNZFNAtooZGSpPOPtsaZPxeyGUfEwftKsMlDCKx5PSN
         LqMpDDq52fs4VOJywqXK086fuI7L0UBrCzeXDgns0T/RrsCLGh6P9qzv9N7sB3g90NTi
         /pd7xdFsje523yplD/AkPmuYOgW/wk2sueZaWkkyxx3HkDEfWEQnesGHjp2Q0qNLR+M+
         H1zNFnC+A/S9rWOyJR1hJ04kqfE3x6XzBtActefWCZDrVn6Hw6iyvGk4Q3JwuUq7FZRM
         j+Uiy6sO7f7sWh2eIgzPJMPbwwX6qZLf/rS1MDm1XKda5TnIBY/lE/k494Z3yzIRVKYq
         qEVg==
X-Gm-Message-State: AOJu0YwZUyoYJVPfR7I/zf6o3xmxhxVzVa63i7hP7bls83H2czmyVkNa
	c6imSlwO9WNn3YLS7RQ7Bsjr8pTrPi0NfeTkib/Dm+4SbPayJcpOWR3avtPfLUGshA==
X-Gm-Gg: AeBDieuAjiwWafWwjt9iJpGtPSnixuIKVtDWkOatixaacGnqUWbH6gc28hZQ+Tgw+zU
	Wf8As595jSW4+Vy7fN6EgoH070ADq9IVU0baT2kezIbOl5lS4dHjnWbH6FMHZUIxGONtefGe7m6
	bDlNyXTj8RVI7hPvAotENUQYVcggnyX+jpyzW+8yr6IFyn7/LuN+Oj62MQS6+Dw0zb2pUMcAZzK
	r04TOrM+bzShTBkeE6bmJweuoFmmxsSTYjd+6yfrWjNl2XkpUwCaPYT0n5cliiLTd7QPV+NIkm3
	sIqqSGDSPj3R1IKBk3S7TgypkhEIdAm3/LrgjQJSp32rDCMhIsK6iIqNZV/+WLb6wDCFkkIYwAp
	rnF9Q5+nAf35tUqNibx5cP0YFTkpvUGtTMxrJoud3hKegjYiyW8iCX6q9LZlstCgmiB53huhKUw
	627soVBqKYI6bxPvYCI3lLKTr78H3umDSmOqh+UYZBMOmOTYtJXYaEIX1AZjHgpDh0ds/KsKwvF
	jkk8G69T6YM3ktQa4hXAdlHAw==
X-Received: by 2002:a05:6000:1868:b0:439:b8b2:fabc with SMTP id ffacd0b85a97d-4515ce1c7b6mr11950984f8f.21.1778141253217;
        Thu, 07 May 2026 01:07:33 -0700 (PDT)
Message-ID: <579169d1-8903-4056-b997-b8681f1452a6@suse.com>
Date: Thu, 7 May 2026 10:07:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [ANNOUNCE] - Call for agenda items for May 7 Xen Community Call @
 15:00 UTC
To: Cody Zuschlag <cody.zuschlag@xenproject.org>
References: <CAJbE=KyTEfk_rrJgOfYBkLMQEUuheC+J9j_Aq+nFBRKbmFwmPg@mail.gmail.com>
Content-Language: en-US
Cc: xen-devel@lists.xenproject.org
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAJbE=KyTEfk_rrJgOfYBkLMQEUuheC+J9j_Aq+nFBRKbmFwmPg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778141253-7D1848B7-645D0950/0/0
X-purgate-type: clean
X-purgate-size: 765

On 05.05.2026 22:02, Cody Zuschlag wrote:
> It’s time for the May Xen Project Community Call, happening this Thursday
> at 4 pm UK time.
> 
> We’d love to have you join. You’re welcome to participate or just listen
> in. It’s a great way to stay aligned, hear what others are working on, and
> help move a few ongoing topics forward.
> 
> *Preparation*:
> Please take a moment to review and update the agenda ahead of the call:
> 👉 Agenda <https://cryptpad.fr/pad/#/2/pad/edit/eJsr2xpwDAzk5xVxOmq+iB+G/>

Back to cryptpad?

> Feel free to:
> - Add topics or updates
> - Suggest anything we can drop or defer
> - Include links to patches, threads, or docs where helpful

Mind me asking what the difference is between D) and E)?

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 07 08:46:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:46:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302300.1576250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuNV-0007Y3-89; Thu, 07 May 2026 08:46:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302300.1576250; Thu, 07 May 2026 08:46:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuNV-0007Xw-3i; Thu, 07 May 2026 08:46:41 +0000
Received: by outflank-mailman (input) for mailman id 1302300;
 Thu, 07 May 2026 08:46:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKuNT-0007Xq-AD
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:46:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuNS-00CIeJ-NM
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:46:38 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fc5164-bab6-0a2a0a5309dd-0a2a4505ce80-48
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:46:38 +0200
Received: from [40.107.208.60]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fc516c-aaa8-0a2a45050019-286bd03cb07a-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:46:38 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM6PR03MB5162.namprd03.prod.outlook.com (2603:10b6:5:24a::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.17; Thu, 7 May
 2026 08:46:34 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Thu, 7 May 2026
 08:46:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NMvGUzGxrIRqRxW9RZBpqAuvmppC7xKIT2/BGG38Ks7U0kELSeZjrMe9+SRr4XL3rlEYuQFTINuUtsoYC5pDhjTMBL9fGC0Ja3+vRxq33s+POrzxoUmaSaEbp8NRNDyiAWkGSdUAsIN93Mf8odbcmctIdZpF8fj3JFqIpKZEDYRFSzdfJIpmTshPB/YIN/xhbULCz0rv5mg1PmrEm0IPFohQ5Fslc2oBxp/KGyEsAngoUTG9WRgoN+5MpUELEDZFwl4R3Z2qrW4YaNEDLHiAYKPs7ZCwIdvEcXD5EEpHs+VI5bJ7a11naXzRfx7YxO+MYqDCvwDzQu2Sp+tc23uI1w==
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=/OSd2sYHiKFEwBt3Q3Vas+8kZy+/6bgRuiLOdk04cxg=;
 b=q8bGH4jVG32/JKHnvrfEZG+f3iZkptEAiH47NYX1d1l5+lPejOxYlQfQ7iwMqCVo+4jGVzz7rbHQHL7aMFKsZck9JKm9SKt8/6BxH6aX/bzJOvwedCD0udfVDabA7kiaZCjMpOOva3d2Afn7ejEewdBe0O6/avI9U3GotO/9s47jf6ab8AAFjl5ZXRF6icpKL6T3s06VmvKlOWcWW29VQ68Xq6b9SRIHqLOfibZjS8lM+fQABtmdEH+hbeAUng3n0Ik+wqhSVCk422hiW5Q2RICyaoD41hpCzXBgoO++HsC77NYQf9B1s47R8sKmanLpkGZ3kViW7tKDJjSFRXNPXQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/OSd2sYHiKFEwBt3Q3Vas+8kZy+/6bgRuiLOdk04cxg=;
 b=AAX+wR0V4DTrQIjrfyN4di4d12ZqucZBYoMmuCQ94o5zJ4CSR59DxPEmzwqLYOAtHlZJA/+LUwHZmSdnJgu0+sSTll/8eoEwyTsNnuFuMSWoC/x0Ib1jNaN6KumLwkV+fxIbyd2YEUYXN7m6rdfLeydJspoqcPQGfPiImVUBJmc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 7 May 2026 10:46:30 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3] iommu/amd-vi: do not zero IOMMU MMIO region
Message-ID: <afxRZtm-L1ZA8jF1@macbook.local>
References: <20260506165157.68567-1-roger.pau@citrix.com>
 <b5d9ea51-5fef-4bae-b124-f4dbde93dbdc@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b5d9ea51-5fef-4bae-b124-f4dbde93dbdc@suse.com>
X-ClientProxiedBy: MR1P264CA0027.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2f::14) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DM6PR03MB5162:EE_
X-MS-Office365-Filtering-Correlation-Id: c382040b-4727-42d1-3687-08deac1524ac
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	l2C/8gMJpRfYGhMh8ya4xzIRRqHT/u4rM1P4WahM1pp/EbnnPCHWZ3yNTgF5Yhz4bHBhdekxQppJBET632Z3gOYQij6jgWX4FyevPZvJBOjMn508Ci6wb0t1ZnVyPaaKbSC07mJnsAA0nD62JkPUpx+eQ0bkHWJiJfyADIdAPE2XWEG9nEL6zF4RHzlHb3pmxHKtQRIyp9qggJYaVRfmg8MPDR9B5JxdDsAa7kjKT28jFd4GDnoobgHpVHN0d5e+eaGzXV84MMa7W3G66MLuwImbI92GNy6+/ICGLufdfefCcZQluS/JV5xvy1d3duAZLz30wiEy0oDuhqjJXRlZEIleTJDe+8sl0Z8pRuMmshSavKBx6lJ+o/VyzH6Mtg9nzGVBRUpSbh2TbNWu7d4wu7qENiiHjN2GJzygnE6q1QECKjEx7spyEuMkyeQjQKUO9J18O1Dx9ub0AIN0sRkW/hk0nMelp4k04gF1N1A3EGUeF9X8PgpSLw/s3PGVrSdw5PaJtnKGiB2xaz+kQrFH7XGwPzE5P2La77RHn4EOex3QtYfhrHF0iLnnM2XHsxP8GpsKLT58HkW/WxlMgV1C6tz7rr74xWeaynTgY3UY4ESsZiyj0jvn97mgZxZfKMl6emsHyQVxxk66YU1RbAVUxpPqucIQ+upK8HBeqHrddJnK7Dasoyl8gpXn3o2YAEpR
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZEhPaVh2VU9xZ1VXWGYwSmlRcWdzM3NMOCtyZjVmVE5RQTNOR3BUdXQ5dGxI?=
 =?utf-8?B?R1ltZUU1aTFpRS9nRGVKMWcwcDh5NkgvaXBKRCs5dkFBVHUrT0F6aU5tMitU?=
 =?utf-8?B?eE5qODhDdS9lRXNFRHZJM0JoalBseG1sa1lXRHVDMmlQNS9PVmI5T0ljK2RO?=
 =?utf-8?B?bWo5aHBTRzFYam5tcmxZVzJteVpHcGV2TCtHVzBWcGVSY3JpQW1wQmNOZVI2?=
 =?utf-8?B?bDJ6bXJrdFAzMWtRWm5wanBQalJsYWtFNzBDNjA0ODFUS3c5WC92NEdKWUps?=
 =?utf-8?B?MlJidTk1Y2t5R2FuUnpqS3NtRXhvYWJJNVdkQ1V6OERTUnQzQ2g2bG1ZTW54?=
 =?utf-8?B?a3FMczIwZEpKWmMrR3JqQzlXSmpnMkt3L2VvR3d0WFNhRG1NUzluZG1ueVdY?=
 =?utf-8?B?amZVSTAvSjBtRnNMaVZDOUhSU3RwdXp1UEx0d1BNNXFpRzJKb2t1R1k2ZE56?=
 =?utf-8?B?VFNMNjExODMyZS8xRzVsT3RnREdaS3VXdjlINE1WaVQ4bG5lTDAwaldGeVZj?=
 =?utf-8?B?cFdhSDhxN3BaY0tyQ1NnNjlPTGlEZjBUS2RaU3BhWlJ0dzFyZXRvZTVMd3hk?=
 =?utf-8?B?dXJkZ3ZxSTlDSGhyWk1QclQvMko0bXVQKzlFY2tFbWFsek9rdE1mSk9RNlBp?=
 =?utf-8?B?MG5SemVveUFNdmdCWFlST0VoRGJLdGpxUTMxNERPUTFVVDRKU1kwM3FySWpy?=
 =?utf-8?B?L2RjVUR2V29Mam91cGR4YmtubUJkTVhQSCsvWVNEOVBXc0E0LzI0WHVaZk1n?=
 =?utf-8?B?cVlqaE1SNG1uUm1Qa3hTelJ3MEJVSFpWRm1wZmt1OGNuS2g0ZHpzVWxlL2lu?=
 =?utf-8?B?QVl1czU0dE5HZzZ2eEZHZW1Vck1CU0h6TmJxMHlxYWJLdlpBenJBVUorZGRR?=
 =?utf-8?B?RTRyM3poZ2tPdWV1ZHBjZVp6TGw3Nko5U0FleWRMcnB1dGZPZG9ScHE1RXJk?=
 =?utf-8?B?VXFVT0JGNWQ5MnBUOHUvVTM0MGs1eWtCQ3FRQ0RGTVJCL2s1RlBLU0ZHb0sy?=
 =?utf-8?B?ZVVGOXg2dk8zQk9LRjJoZnBMOHRneWxHVDY1QkV4QTdiRmlWVjBnTVA4VFhN?=
 =?utf-8?B?QzIwZy8rVDdBRDBjQ1VBUWNyckN4MTRpODNRdWtkSnFUOXhiUHh6ZVVVamk4?=
 =?utf-8?B?U05vUGgwcU54N2ZkcHlWMUVQcTd2NXQ2ZHZxQnZBSitDSk9wZ2o4MlNaa2Vz?=
 =?utf-8?B?U0FzWWFyRWs1dWUwMGNMZmtRR1lWSWI0NUttNHk3azR0Vit5VkNML1lTNlJn?=
 =?utf-8?B?S2IrdE41RUR2QjIzOW15NGIzaGpGY0gvcXpVV1huWVp4Tkp4VjlPU1BoZ3FM?=
 =?utf-8?B?SGxjM0NrNG1mN3lEWU1iektlU2VMZ0RJRlk2ZUR3WCtqQ0NyR21vUzVKeHZU?=
 =?utf-8?B?SHhTaHRscGhZTnlqdGJ3MnZGRkVSU1ZOMmtYRFpxRzg2L2NuMVdWTk15WUdD?=
 =?utf-8?B?Q0dydCtYeURqSkNvbW5oRnJQU1JEY1gyeTlvMDNIQ3NtVVlsc3JPdllma0d0?=
 =?utf-8?B?YnVtVE4yanF3OVR2cnRxYzBhS1Z2T2pzUllrMUFJdkI3NlRPVTgxV3lkeGxQ?=
 =?utf-8?B?VVd5RUZiZzB4T3lQNmcyYU40MThqTzBaWXZlMXZSZFNFVXNBdXZLWFdkd08r?=
 =?utf-8?B?YTZQRWhnUnBMdjQrVGJnZzJLM2xEaVF1bnBwMkJvZW5TYTNYSkdvQ2dBdng0?=
 =?utf-8?B?MWtGSHJ4Q3RBeXo0QnRzWHRPYzVpeTk0dkIxRUdYUnBTUm1NWlRoSEI0OC9i?=
 =?utf-8?B?bTdGY0YyLzVpZi9OODZ4SlFrRFJsbzZWWTlSY2lSaGJlVVpia04zTzNFdmNR?=
 =?utf-8?B?VzdVa0hNR0tCdDVRUXUyMlV3KytIRk5jbnJXZitPUGlyeTVwa1RodTBTQzhm?=
 =?utf-8?B?dU9oaFZmekxrNGIzNFVvTTZUTFNlaEhJZ2FsaE52c1JtdmlocCtXVmRpbzB3?=
 =?utf-8?B?ZGF5QnB0N0N4UzcxQ0FQNC94bCtTY1FucWhFK3NyMENYVXlnRXVXUzBtWFdT?=
 =?utf-8?B?dk9JbHlyUnhjUTNNejIwOEdBK3N6eDdEcGY2Q0xqZlE0VHpoMHQ0REdRa2Mr?=
 =?utf-8?B?WmpmZGZQVjlBTlorR3IxcEplRjJaRmR0TzBROU1pK0owa0RNZkhncVJmSjM1?=
 =?utf-8?B?UW5IdU02N2k0UHVyeGNQdXFiUXBaMTRJcmVyV2NUQnUwOFQySzhUMWhuTUVV?=
 =?utf-8?B?MGNpNGN0VEpibk1lcjV3dklHdnZ4RkZiVkpnNDBDRHUzV1l3YXpoTncweTdt?=
 =?utf-8?B?QnFwWG56YTYvZmsvNW9kRUxJS05OU0NTSG90RHVWZTlrWXd5WEhNMS80djN0?=
 =?utf-8?B?bmNwd2ltS2VSZUo4b1Z1SHp1YXlzR1NmTTFkUVlNQStzNnp6K245Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c382040b-4727-42d1-3687-08deac1524ac
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 08:46:34.5520
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ilW8rrfsGWM+7Viun9BCa7DKLKtJPF2sCkTaGuaNR4eq7gqUaPl1CchzOK9is3H+97PuUXLPdYITKqDiW+qBmQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5162
X-purgate-ID: tlsNG-c201ff/1778143598-D8979443-2DE2EA6B/0/0
X-purgate-type: clean
X-purgate-size: 3110

On Thu, May 07, 2026 at 10:03:05AM +0200, Jan Beulich wrote:
> On 06.05.2026 18:51, Roger Pau Monne wrote:
> > Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
> > say the least.  We don't know what registers might be there, nor which
> > values might be safe for those registers.  On a forthcoming platform doing
> > the zeroing of the MMIO region does put the IOMMU in a broken state, which
> > is not recoverable by the IOMMU initialization procedure in Xen.
> > 
> > Instead just zero the control register, which mimics the current behavior
> > with regards to how the control register is handled, and ensures the IOMU
> > setup is done with the unit disabled.  This approach will need revisiting
> > in order to support Preboot DMA Protection.
> > 
> > Fold map_iommu_mmio_region() into its only caller, as the function body is
> > just an ioremap() call after the removal of the memset().
> > 
> > Fixes: 0700c962ac2d ("Add AMD IOMMU support into hypervisor")
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> While you got Andrew's R-b, I don't view that as enough to commit it. My
> prior concern towards ...
> 
> > --- a/xen/drivers/passthrough/amd/iommu_init.c
> > +++ b/xen/drivers/passthrough/amd/iommu_init.c
> > @@ -42,18 +42,6 @@ static bool iommu_has_ht_flag(struct amd_iommu *iommu, u8 mask)
> >      return iommu->ht_flags & mask;
> >  }
> >  
> > -static int __init map_iommu_mmio_region(struct amd_iommu *iommu)
> > -{
> > -    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
> > -                               IOMMU_MMIO_REGION_LENGTH);
> > -    if ( !iommu->mmio_base )
> > -        return -ENOMEM;
> > -
> > -    memset(iommu->mmio_base, 0, IOMMU_MMIO_REGION_LENGTH);
> > -
> > -    return 0;
> > -}
> 
> ... this part of the change wasn't addressed, neither verbally nor by an
> adjustment to the description of what was committed. As previously stated,
> blindly memset()-ing the entire area may not be the best of all options,
> but the downsides of not doing this need to somehow be addressed. As
> indicated, once they run out of bits in the main control register, they
> likely will add a 2nd one. That'll then also need clearing, yet we have
> no code to do so anymore.

I could introduce an opt-in command line option that forces the
zeroing of the MMIO region (to have the option to resort to the
previous behavior), but I was (wrongly) under the impression that we
have agreement the proposed approach was the least bad of the ones
available, sorry.

Note how VT-d also doesn't zero the IOMMU registers MMIO page either,
neither does it seems to zero the Global Command Register either,
which I'm not saying it's correct, but is at least a (possibly wrong)
precedent.  I don't think there's much we can do with the handling of
enabled bits in possibly registers not know/handled by Xen.  Like on
VT-d, we possibly need to rely on the firmware to handle the IOMMU in
a half-sane configuration, with no enabled features on registers Xen
doesn't know about.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Thu May 07 08:51:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:51:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302308.1576259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuS3-0000qg-SH; Thu, 07 May 2026 08:51:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302308.1576259; Thu, 07 May 2026 08:51:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuS3-0000qZ-Oz; Thu, 07 May 2026 08:51:23 +0000
Received: by outflank-mailman (input) for mailman id 1302308;
 Thu, 07 May 2026 08:51:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKuS1-0000qT-P6
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:51:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuRz-00ADcd-ES
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:51:21 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc5282-e002-0a2a0a5209dd-0a2a4508d9ee-36
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:51:20 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc5288-63b5-0a2a45080019-d155dd31a44a-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:51:20 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-43d734223e4so366890f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:51:20 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45052a488d8sm18428341f8f.12.2026.05.07.01.51.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 01:51:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778143880; x=1778748680; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hq4JQ5PGD4eD+MHXHGGnfQl0Efe/vA1XLl8sUvu40RU=;
        b=eInfzRR6NYj2SNkvQt1jUIwuWR8zgzNwVY3wJaYZhkFfqMNAGMWtxa+WivWHD/GAtj
         pk5z8swq5FKKisgYOKtdRYWImdX/LJF95svLBFP1eIWWuM+sCQcKm0yJI8taLJ+C+BY4
         DuH9KaXN1UtWn0cq0FTlVo01ArNjQPJ/QfM93q5Fh3goIuK6cnFQm7IG7qlq4FRAe02W
         IMUJ25eBJWiPgurs9nDJKVHBsrQ4tVAU+cz5ky9Ie4vNIBwXmWDlXmn/X9JS1WAWbDee
         J6KJBCW2V8Grllk46V6Ak4EAfpiNHqP0EJCnJe7eu5ktaBSBJE3Bc8Z13AeVkjun22Fy
         17uA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778143880; x=1778748680;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hq4JQ5PGD4eD+MHXHGGnfQl0Efe/vA1XLl8sUvu40RU=;
        b=gRH12Y2JmIbrQ4vT6qOQh/SfsAj+UO0MmwoyGnoEY6IQyYnKlpYM7HW0E3g2POFUz4
         KOBxZSm3J/ilEwKODfen0jkbCIb0HEXUN4Gf9kU9TnTPkO3HSim73wlzlvGL9FCHwllc
         peTFAXmhK/O1EU0gyUhWjdxquCfoqZX+cRGXJ7GTON9nd7kw+43e0lQlS5k3ZuGcALUr
         ZgstsG5EjWlLf9EqykxVdujzN93rjC7IiCJ4W67YUh5BgO4gptqtaGPvLrhr0jIs526h
         FkI6Wva7453GAzdgaJElGrvOuWA8JRpwtuaq6G4K30c2ki+6KjNC8WdwrBjgBSiy2QQg
         ecog==
X-Forwarded-Encrypted: i=1; AFNElJ+eX2wSDx9/+ujRE11z5+ytNgPXj8y4YO7ir3ayNgKUct3XD+vQws4pWH7uvr7C87oq2xRi8YSZCks=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy2x2FvgHilkz+Coh+km4F3/v8ck7sM3b7plwF1WgNd9Wf24PTn
	hwjbWDkuylpXfHAkxqJfWVOc6CRNXVVXLeJV1TnBkSPj6dYx8bbrQ2e7bS2k8ntJFA==
X-Gm-Gg: AeBDievR0i7ETGRGX9VgklJSX6hg883nznFR/DsNjB+E4XC1RmyA8KTWpwCOOiizNZO
	32R3/4LYKSsiLXdzSAHBTy/63Z5GJuLE8R7RiqQHmSKqup6eJ6A8lcAogS3oPsYf3ov14p3xTQK
	b8tobziMvFd0Xy8zLeAMRT2GV0FwnWeQrQbk/3i60uu51erCwIeAhn0MAOYNaSqEDDur2qf8LwY
	rvUgeBQiAndR4OsVHhES2URn6z1+370vrs1aNnS4RhNKqjTMjAmT7RcTzLyaWkVw5QK4CkxkZic
	fYEnmSSW6w+wd3R8uaC6/RQMviwjK//LZDJ0bgsAevFVSxHf+fQwAsOs7GCOlrtE96mhew4qyCy
	FAHg/cuPJIrwk8tM2vtsz+pEvHvv/kJirK0YRzwpqOpPe58BdLsz+/fA0v/GNGIndOFdKpFS/I7
	eZKgzk6F+6uEhQeqrbj++WvQVBb3olmk+sKV0cKKbpCnb4syCUq3RWFLgAKpyS6mkDgFjxp3uLp
	FJcD4S5bFl6DnESyRCqv1l5qQ==
X-Received: by 2002:a05:6000:2304:b0:449:cd74:7432 with SMTP id ffacd0b85a97d-452e9ca040bmr2988220f8f.15.1778143879904;
        Thu, 07 May 2026 01:51:19 -0700 (PDT)
Message-ID: <b0d460d6-5828-41d5-9168-394fb54f80bf@suse.com>
Date: Thu, 7 May 2026 10:51:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] iommu/amd-vi: do not zero IOMMU MMIO region
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20260506165157.68567-1-roger.pau@citrix.com>
 <b5d9ea51-5fef-4bae-b124-f4dbde93dbdc@suse.com>
 <afxRZtm-L1ZA8jF1@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <afxRZtm-L1ZA8jF1@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1778143880-B7370DB1-A52AA58B/0/0
X-purgate-type: clean
X-purgate-size: 3546

On 07.05.2026 10:46, Roger Pau Monné wrote:
> On Thu, May 07, 2026 at 10:03:05AM +0200, Jan Beulich wrote:
>> On 06.05.2026 18:51, Roger Pau Monne wrote:
>>> Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
>>> say the least.  We don't know what registers might be there, nor which
>>> values might be safe for those registers.  On a forthcoming platform doing
>>> the zeroing of the MMIO region does put the IOMMU in a broken state, which
>>> is not recoverable by the IOMMU initialization procedure in Xen.
>>>
>>> Instead just zero the control register, which mimics the current behavior
>>> with regards to how the control register is handled, and ensures the IOMU
>>> setup is done with the unit disabled.  This approach will need revisiting
>>> in order to support Preboot DMA Protection.
>>>
>>> Fold map_iommu_mmio_region() into its only caller, as the function body is
>>> just an ioremap() call after the removal of the memset().
>>>
>>> Fixes: 0700c962ac2d ("Add AMD IOMMU support into hypervisor")
>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>
>> While you got Andrew's R-b, I don't view that as enough to commit it. My
>> prior concern towards ...
>>
>>> --- a/xen/drivers/passthrough/amd/iommu_init.c
>>> +++ b/xen/drivers/passthrough/amd/iommu_init.c
>>> @@ -42,18 +42,6 @@ static bool iommu_has_ht_flag(struct amd_iommu *iommu, u8 mask)
>>>      return iommu->ht_flags & mask;
>>>  }
>>>  
>>> -static int __init map_iommu_mmio_region(struct amd_iommu *iommu)
>>> -{
>>> -    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
>>> -                               IOMMU_MMIO_REGION_LENGTH);
>>> -    if ( !iommu->mmio_base )
>>> -        return -ENOMEM;
>>> -
>>> -    memset(iommu->mmio_base, 0, IOMMU_MMIO_REGION_LENGTH);
>>> -
>>> -    return 0;
>>> -}
>>
>> ... this part of the change wasn't addressed, neither verbally nor by an
>> adjustment to the description of what was committed. As previously stated,
>> blindly memset()-ing the entire area may not be the best of all options,
>> but the downsides of not doing this need to somehow be addressed. As
>> indicated, once they run out of bits in the main control register, they
>> likely will add a 2nd one. That'll then also need clearing, yet we have
>> no code to do so anymore.
> 
> I could introduce an opt-in command line option that forces the
> zeroing of the MMIO region (to have the option to resort to the
> previous behavior),

But we don't want to fully go back to this. We'd need a form that zeroes
what may be zeroed, without causing the issue you're trying to address.

> but I was (wrongly) under the impression that we
> have agreement the proposed approach was the least bad of the ones
> available, sorry.
> 
> Note how VT-d also doesn't zero the IOMMU registers MMIO page either,
> neither does it seems to zero the Global Command Register either,
> which I'm not saying it's correct, but is at least a (possibly wrong)
> precedent.  I don't think there's much we can do with the handling of
> enabled bits in possibly registers not know/handled by Xen.  Like on
> VT-d, we possibly need to rely on the firmware to handle the IOMMU in
> a half-sane configuration, with no enabled features on registers Xen
> doesn't know about.

As indicated before, for firmware we can likely rely on that. Pre-boot
non-firmware environments and especially Xen being kexec-ed (or being
run past something which was kexec-ed) may be of more concern.

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 07 08:58:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:58:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302320.1576268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZ0-0001iV-I4; Thu, 07 May 2026 08:58:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302320.1576268; Thu, 07 May 2026 08:58:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZ0-0001iO-EX; Thu, 07 May 2026 08:58:34 +0000
Received: by outflank-mailman (input) for mailman id 1302320;
 Thu, 07 May 2026 08:58:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKuYz-0001iI-KE
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:58:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuYy-005UeO-TM
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:58:32 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5434-5cb7-0a2a0a5109dd-0a2a4504c7a8-12
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:58:32 +0200
Received: from [209.85.208.52] (helo=mail-ed1-f52.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5438-1dec-0a2a45040019-d155d034c905-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:58:32 +0200
Received: by mail-ed1-f52.google.com with SMTP id
 4fb4d7f45d1cf-670ab084a39so968246a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:58:32 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc833742a49sm58265666b.34.2026.05.07.01.58.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 May 2026 01:58:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778144312; x=1778749112; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=SYXHVV8Ib5D5V2A+joAKLYK+w7GowEGHXajMabRf9Gs=;
        b=R6dCZfJz1FyuUvRXIrShP2UakjQ1HZ6ZgVrKN3DOKzQEoL5oqAijVYneWp5IluWfDb
         8G+wgVjCPb+NQwrK+uAkvxZpKSydA5w2xqn3xByuO6vSdPm5CDFdCZ4S6qgE6/MugLZz
         wa8lRdDEsuoQII8ntpfo3izS0svWM2vMZWCyGcJ/sbFBHqzO+mOX0NcpDLJ46F16KaJ0
         uHhtT/nchaUKUqTme+ph3spWir/PxShkai8HtwKim5bX6cVGYa2mztX18+6NWkeGQqGF
         /dBGUBG+U7+lKRYJSfrZgjsUT6NtW2vbPoGAkUEOdNwoWoNLbohpJ0fdzAd41+bq8/en
         s9Lg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778144312; x=1778749112;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SYXHVV8Ib5D5V2A+joAKLYK+w7GowEGHXajMabRf9Gs=;
        b=DglgxEoXzVXWqz8j4eYMVq30RMTi1sIk5Zf0ihZd/KSZukpzf9UPAconpKGBvw7OT3
         CvYKBg7WiUsKrVaMkCe9SvoEtg85IhtAOW9T78fVRM3XVB48/LuWGWaKg1zxKTaNVL82
         S8Vy+XVDReCNzUYQ0SE+WXqVJvNFldLFWpkHbw4yFRJvrWrtheyshQ/Lq6qGQyRQpqz9
         z5K9KTNv5t/5POcW8ivuBA4uy+Pva6wQMxAkGVjMaCmMFoQ67XcQ7xm39lxPj4ogu8yR
         oaX83Um9MK8LO7p3tDpIa5Cabmc4Fir0KGfDC9+yYNtnwXqwEyyuY4sYinRawccCyKcf
         syVg==
X-Gm-Message-State: AOJu0YyFgEWX+AoV+sXcLMmFD5bTh6rUP/s2w4gJzgJZV3JkCz4fjdkF
	klBFapyXIj8FSShhfnGcDQ14GhjFUEBOT4+w4wbAEcqGbJLw6OqPARwWEDravw==
X-Gm-Gg: AeBDiesyC+Nd8BPJrNqne6ZYyGMh9yTuzrR10mn8VK236oCONVUJIhe0r7TSLaZEAgl
	ZDGdeDQUVWpIS7nCDEn+BQpHYHnboncVKBbthFONLVJqSyZE3q3Sr/zc6q1MNWAtoUBFfmV5B9J
	2KyPwmFUHi0RmsJ4kfs9op1L0ggS8MuM4hvvZWYQ5ZC+IBTlPjvUTgjUBIPfQZ0mY9sdkGGOq6d
	W4ac/YvhMFpL3ebdQhEUZ0VJXZQjJIYQYXMNNLDWtE/Mxj925MtYZ6xnTZjjD+nZ4o1Ndgcfk2n
	Uwb40Mwtw44ediKiEPdeZ0lEpXjYuo1bsczRe9AOzH7INztouyJr8Lw3Ky2Y1BcWH0OPzOyIFq5
	HpB96tZmNhhBzl72lPcMHiudEb0to6xiwBbsDCloTcvsKxK/Z57z81hwiCJmpbSv5Xh8hLqVy29
	Qm16f+CbZ/nLKhNdaw4bD/6ZAA1zkYshUk4ATGPmMQ97m4IL9ukPW3V0TtPr40pI6uRVHYhbzdX
	IF8cSzS/DXcUK8=
X-Received: by 2002:a17:907:e114:b0:b9d:872f:f5b9 with SMTP id a640c23a62f3a-bc56dd14ec2mr352995866b.23.1778144311725;
        Thu, 07 May 2026 01:58:31 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v5] xen: introduce CONFIG_HAS_DOMAIN_TYPE
Date: Thu,  7 May 2026 10:58:23 +0200
Message-ID: <20260507085823.73217-1-oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1778144312-405703FF-68E5C0EA/10/73395122804
X-purgate-type: spam
X-purgate-size: 12076

As domain type is part of common code now there is no any reason
to have architecture-specific set_domain_type() functions so
it is dropped.

Change the guard around access of kinfo->type to CONFIG_HAS_DOMAIN_TYPE
for consistency. Also, drop and add some parentheses to be aligned
with the similar if() below.

x86 with CONFIG_64BIT=y shouldn't use is_{32,64}bit_domain() as
x86 doesn't have support of CONFIG_HAS_DOMAIN_TYPE. Since x86_32 Xen no
longer builds, the fallback is currently only relevant for arm32.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2506583130
---
Changes in v5:
 - Drop excess parentheses from definion of is_{32,64}bit_domain for 32-bit case.
 - Add const for 2-nd argument of set_domain_type().
 - Add ASSERT(!domain_tot_pages(d)); inside set_domain_type() to guarantee what
   is written in the comment above it.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v4:
 - Drop enum domain_type type; from Arm's struct arch_domain.
 - Add Reviewed-by: Michal Orzel <michal.orzel@amd.com>.
---
Changes in v3:
 - Sort properly HAS_DOMAIN_TYPE in xen/common/Kconfig.
 - Update the comment above is_*bit_domain() macros.
---
Changes in v2:
 - Update the commit message.
 - Move HAS_DOMAIN_TYPE to xen/common/Kconfig.
 - Return set_domain_type(), move it to xen/fdt-domain-build.h and make it
   static inline.
 - s/CONFIG_ARM_64/CONFIG_HAS_DOMAIN for the places where kinfo->type is used.
 - Drop parantethes around cpu_has_el1_32 in if() and add around
   (kinfo->type == DOMAIN_32BIT) to be consistent with the similar check below.
 - Fix comment code style.
 - Add __packed to definition of enum domain_type
---
---
 xen/arch/arm/Kconfig               |  1 +
 xen/arch/arm/arm64/domctl.c        |  4 ++--
 xen/arch/arm/dom0less-build.c      | 14 --------------
 xen/arch/arm/domain_build.c        | 12 +++++-------
 xen/arch/arm/include/asm/domain.h  | 16 ----------------
 xen/arch/arm/include/asm/kernel.h  |  4 ----
 xen/arch/arm/kernel.c              | 16 ++++++++--------
 xen/common/Kconfig                 |  3 +++
 xen/include/xen/dom0less-build.h   |  2 --
 xen/include/xen/domain.h           | 13 +++++++++++++
 xen/include/xen/fdt-domain-build.h | 10 ++++++++++
 xen/include/xen/fdt-kernel.h       |  5 +++++
 xen/include/xen/sched.h            |  4 ++++
 13 files changed, 51 insertions(+), 53 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 2f2b501fdac4..79622b46a10d 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -7,6 +7,7 @@ config ARM_64
 	def_bool y
 	depends on !ARM_32
 	select 64BIT
+	select HAS_DOMAIN_TYPE
 	select HAS_FAST_MULTIPLY
 	select HAS_VPCI_GUEST_SUPPORT if PCI_PASSTHROUGH
 
diff --git a/xen/arch/arm/arm64/domctl.c b/xen/arch/arm/arm64/domctl.c
index 8720d126c97d..9e9a29eb1e78 100644
--- a/xen/arch/arm/arm64/domctl.c
+++ b/xen/arch/arm/arm64/domctl.c
@@ -21,10 +21,10 @@ static long switch_mode(struct domain *d, enum domain_type type)
         return -EINVAL;
     if ( domain_tot_pages(d) != 0 )
         return -EBUSY;
-    if ( d->arch.type == type )
+    if ( d->type == type )
         return 0;
 
-    d->arch.type = type;
+    d->type = type;
 
     if ( is_64bit_domain(d) )
         for_each_vcpu(d, v)
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 4181c105389a..6f73c65e5151 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -237,20 +237,6 @@ int __init make_arch_nodes(struct kernel_info *kinfo)
     return 0;
 }
 
-/* TODO: make arch.type generic ? */
-#ifdef CONFIG_ARM_64
-void __init set_domain_type(struct domain *d, struct kernel_info *kinfo)
-{
-    /* type must be set before allocate memory */
-    d->arch.type = kinfo->arch.type;
-}
-#else
-void __init set_domain_type(struct domain *d, struct kernel_info *kinfo)
-{
-    /* Nothing to do */
-}
-#endif
-
 int __init init_vuart(struct domain *d, struct kernel_info *kinfo,
                       const struct dt_device_node *node)
 {
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index a3ff70102376..ad665cd3c045 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1771,15 +1771,15 @@ int __init construct_domain(struct domain *d, struct kernel_info *kinfo)
     BUG_ON(d->vcpu[0] == NULL);
     BUG_ON(v->is_initialised);
 
-#ifdef CONFIG_ARM_64
+#ifdef CONFIG_HAS_DOMAIN_TYPE
     /* if aarch32 mode is not supported at EL1 do not allow 32-bit domain */
-    if ( !(cpu_has_el1_32) && kinfo->arch.type == DOMAIN_32BIT )
+    if ( !cpu_has_el1_32 && (kinfo->type == DOMAIN_32BIT) )
     {
         printk("Platform does not support 32-bit domain\n");
         return -EINVAL;
     }
 
-    if ( is_sve_domain(d) && (kinfo->arch.type == DOMAIN_32BIT) )
+    if ( is_sve_domain(d) && (kinfo->type == DOMAIN_32BIT) )
     {
         printk("SVE is not available for 32-bit domain\n");
         return -EINVAL;
@@ -1893,10 +1893,8 @@ int __init construct_hwdom(struct kernel_info *kinfo,
 
     iommu_hwdom_init(d);
 
-#ifdef CONFIG_ARM_64
-    /* type must be set before allocate_memory */
-    d->arch.type = kinfo->arch.type;
-#endif
+    set_domain_type(d, kinfo);
+
     find_gnttab_region(d, kinfo);
     if ( is_domain_direct_mapped(d) )
         allocate_memory_11(d, kinfo);
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index ffe5d0d9f0a6..b24f02d269be 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -18,18 +18,6 @@ struct hvm_domain
     uint64_t              params[HVM_NR_PARAMS];
 };
 
-#ifdef CONFIG_ARM_64
-enum domain_type {
-    DOMAIN_32BIT,
-    DOMAIN_64BIT,
-};
-#define is_32bit_domain(d) ((d)->arch.type == DOMAIN_32BIT)
-#define is_64bit_domain(d) ((d)->arch.type == DOMAIN_64BIT)
-#else
-#define is_32bit_domain(d) (1)
-#define is_64bit_domain(d) (0)
-#endif
-
 /*
  * Is the domain using the host memory layout?
  *
@@ -62,10 +50,6 @@ struct paging_domain {
 
 struct arch_domain
 {
-#ifdef CONFIG_ARM_64
-    enum domain_type type;
-#endif
-
 #ifdef CONFIG_ARM64_SVE
     /* max SVE encoded vector length */
     uint8_t sve_vl;
diff --git a/xen/arch/arm/include/asm/kernel.h b/xen/arch/arm/include/asm/kernel.h
index 7c3b7fde5b64..21f4273fa1b5 100644
--- a/xen/arch/arm/include/asm/kernel.h
+++ b/xen/arch/arm/include/asm/kernel.h
@@ -10,10 +10,6 @@
 
 struct arch_kernel_info
 {
-#ifdef CONFIG_ARM_64
-    enum domain_type type;
-#endif
-
     /* Enable pl011 emulation */
     bool vpl011;
 };
diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 7544fd50a20f..9395b5af8745 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -100,8 +100,8 @@ static paddr_t __init kernel_zimage_place(struct kernel_info *info)
     const struct membanks *mem = kernel_info_get_mem(info);
     paddr_t load_addr;
 
-#ifdef CONFIG_ARM_64
-    if ( (info->arch.type == DOMAIN_64BIT) && (info->zimage.start == 0) )
+#ifdef CONFIG_HAS_DOMAIN_TYPE
+    if ( (info->type == DOMAIN_64BIT) && (info->zimage.start == 0) )
         return mem->bank[0].start + info->zimage.text_offset;
 #endif
 
@@ -268,14 +268,14 @@ int __init kernel_uimage_probe(struct kernel_info *info,
 
     info->load = kernel_zimage_load;
 
-#ifdef CONFIG_ARM_64
+#ifdef CONFIG_HAS_DOMAIN_TYPE
     switch ( uimage.arch )
     {
     case IH_ARCH_ARM:
-        info->arch.type = DOMAIN_32BIT;
+        info->type = DOMAIN_32BIT;
         break;
     case IH_ARCH_ARM64:
-        info->arch.type = DOMAIN_64BIT;
+        info->type = DOMAIN_64BIT;
         break;
     default:
         printk(XENLOG_ERR "Unsupported uImage arch type %d\n", uimage.arch);
@@ -345,7 +345,7 @@ static int __init kernel_zimage64_probe(struct kernel_info *info,
 
     info->load = kernel_zimage_load;
 
-    info->arch.type = DOMAIN_64BIT;
+    info->type = DOMAIN_64BIT;
 
     return 0;
 }
@@ -396,8 +396,8 @@ static int __init kernel_zimage32_probe(struct kernel_info *info,
 
     info->load = kernel_zimage_load;
 
-#ifdef CONFIG_ARM_64
-    info->arch.type = DOMAIN_32BIT;
+#ifdef CONFIG_HAS_DOMAIN_TYPE
+    info->type = DOMAIN_32BIT;
 #endif
 
     return 0;
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 0a20aa0a1249..5ff71480eebe 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -128,6 +128,9 @@ config HAS_DEVICE_TREE_DISCOVERY
 config HAS_DOM0LESS
 	bool
 
+config HAS_DOMAIN_TYPE
+	bool
+
 config HAS_DIT # Data Independent Timing
 	bool
 
diff --git a/xen/include/xen/dom0less-build.h b/xen/include/xen/dom0less-build.h
index faaf660424b2..4118dec76c0a 100644
--- a/xen/include/xen/dom0less-build.h
+++ b/xen/include/xen/dom0less-build.h
@@ -57,8 +57,6 @@ int init_vuart(struct domain *d, struct kernel_info *kinfo,
 int make_intc_domU_node(struct kernel_info *kinfo);
 int make_arch_nodes(struct kernel_info *kinfo);
 
-void set_domain_type(struct domain *d, struct kernel_info *kinfo);
-
 int init_intc_phandle(struct kernel_info *kinfo, const char *name,
                       const int node_next, const void *pfdt);
 
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 93c0fd00c1d7..a095190fc71a 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -13,6 +13,19 @@ struct guest_area {
     void *map;
 };
 
+#ifdef CONFIG_HAS_DOMAIN_TYPE
+enum __packed domain_type {
+    DOMAIN_32BIT,
+    DOMAIN_64BIT,
+};
+#define is_32bit_domain(d) ((d)->type == DOMAIN_32BIT)
+#define is_64bit_domain(d) ((d)->type == DOMAIN_64BIT)
+#elif !defined(CONFIG_64BIT)
+/* At the moment on 32-bit-only platforms all domains are 32-bit. */
+#define is_32bit_domain(d) true
+#define is_64bit_domain(d) false
+#endif
+
 #include <asm/domain.h>
 
 typedef union {
diff --git a/xen/include/xen/fdt-domain-build.h b/xen/include/xen/fdt-domain-build.h
index 0d40d8cfa105..9465a1021fe3 100644
--- a/xen/include/xen/fdt-domain-build.h
+++ b/xen/include/xen/fdt-domain-build.h
@@ -7,6 +7,7 @@
 #include <xen/device_tree.h>
 #include <xen/fdt-kernel.h>
 #include <xen/mm.h>
+#include <xen/sched.h>
 #include <xen/types.h>
 
 struct domain;
@@ -69,6 +70,15 @@ static inline uint32_t alloc_phandle(struct kernel_info *kinfo)
     return kinfo->next_phandle >= GUEST_PHANDLE_GIC ? 0 : kinfo->next_phandle++;
 }
 
+static inline void set_domain_type(struct domain *d, const struct kernel_info *kinfo)
+{
+#ifdef CONFIG_HAS_DOMAIN_TYPE
+    /* Type must be set before allocating memory. */
+    ASSERT(!domain_tot_pages(d));
+    d->type = kinfo->type;
+#endif
+}
+
 #endif /* __XEN_FDT_DOMAIN_BUILD_H__ */
 
 /*
diff --git a/xen/include/xen/fdt-kernel.h b/xen/include/xen/fdt-kernel.h
index 4d0467bb396a..86a37a13048b 100644
--- a/xen/include/xen/fdt-kernel.h
+++ b/xen/include/xen/fdt-kernel.h
@@ -9,6 +9,7 @@
 
 #include <xen/bootinfo.h>
 #include <xen/device_tree.h>
+#include <xen/domain.h>
 #include <xen/types.h>
 
 #if __has_include(<asm/kernel.h>)
@@ -65,6 +66,10 @@ struct kernel_info {
         } zimage;
     };
 
+#ifdef CONFIG_HAS_DOMAIN_TYPE
+    enum domain_type type;
+#endif
+
 #if __has_include(<asm/kernel.h>)
     struct arch_kernel_info arch;
 #endif
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 212c7d765c3e..00db1da12f21 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -386,6 +386,10 @@ struct domain
 {
     domid_t          domain_id;
 
+#ifdef CONFIG_HAS_DOMAIN_TYPE
+    enum domain_type type;
+#endif
+
     unsigned int     max_vcpus;
 
     uint64_t         unique_id;       /* Unique domain identifier */
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 08:59:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:59:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302326.1576276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZV-00028G-OH; Thu, 07 May 2026 08:59:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302326.1576276; Thu, 07 May 2026 08:59:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZV-000289-LR; Thu, 07 May 2026 08:59:05 +0000
Received: by outflank-mailman (input) for mailman id 1302326;
 Thu, 07 May 2026 08:59:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKuZU-00027t-Bm
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:59:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuZT-002y5h-Da
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:59:03 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc544c-2eae-0a2a0a5409dd-0a2a450c9c00-48
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:03 +0200
Received: from [209.85.218.48] (helo=mail-ej1-f48.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5457-62f1-0a2a450c0019-d155da30a85d-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:03 +0200
Received: by mail-ej1-f48.google.com with SMTP id
 a640c23a62f3a-bc1f0830f44so329020366b.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:59:03 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc81d5e9583sm57549966b.17.2026.05.07.01.59.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 May 2026 01:59:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778144342; x=1778749142; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=jqVzpio3qU+hCmWq+7iPEswSKDEZZHhciomYgDv8B/Q=;
        b=A3ccrVEFRR5cY+MIG+Taun0Wq8ZL/1cLZjmwG6LctGqCtZlaT9rki8+JXSMLm2yEll
         NrLUHZItTlqnR+HfL+l2ylFoHEPXDJs09d89dyFMEgO17v/fLy5VmoOAI2VzuWrTyN5m
         YGP4KRjIQaBoNJlv/vfsHdVb0khIgdNDWMUhBdvCmQhBrTjHrntye6A7t0Vt0ByAcwue
         gObguPDeYh7ZLHtN/fmvVe0RIC4U2dZmkbDQBN+iqDFbeEYt+sr1HK6QOUI+o9CBj/Iy
         TRq3DKSPUEtGhTKSHLgZ3wBICWfHTSoBCDTEi40w8AHfsz6E7pE1cIHBh571t5BcbZey
         wePg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778144342; x=1778749142;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jqVzpio3qU+hCmWq+7iPEswSKDEZZHhciomYgDv8B/Q=;
        b=FShpUVEnzqaDIjexhzmOnHLFHUsSzUjhf5zb32jn55itp6Y4alwL6+pXRm0mSESbX2
         GTqfc9I4wL5wmKkIWQE7x194XnL7hzvQpWKBVmxVeGtcnLgGgBbGOqOwnAGV+FQ62rjN
         bMwgT1uKTJu0dadLMixy1X+AFLTA5Ag3e7yfvncqztFQUu5SbilztZ81Dyp3dlDir4s3
         m5/Xln5d+et4pYq2dPedvrXqbB7JPzzlHRehVFsxFmKgkhFOMCs91O0yquci+LWTGcXe
         gY0yJETvBTVpqexMSnaHhrRwRFCxTBR/ovyPwNCGzFMK5ptr5vIjSkqHx/dN+AuTw2/P
         bphg==
X-Gm-Message-State: AOJu0Yx/vZeRPb9SqOzUbfo228VDgi50ZsA33bHGmLGBgaw4a3hcp8DX
	or4oJOMzJ4drCTCojC6vns/6fHroxR5iHF6PrzDFxIcRd9jAUMHvQT3CBQGv6Q==
X-Gm-Gg: AeBDietz1cCAseRCOBnHdCk1ZASLzWrQbfMNLNCo4sghYiUkCSw0l6JZCc8XXbgng5/
	5Ks/Hh9zfWe5WOlPxiVEgmuQou0tLUCu/+VEvtAjV6wQUXopNcFKTbama/lYsR9ta9zs/PwyMnh
	o43MJvlqYyD3TjLcpEO5GTjnVLEl/aAEkcWZEj2LSk9/YjfORjkkAu8Vrw5tXew+3ea3LRgl9ha
	xFO0rpfjj73GXpUPwHpjnjCwhNrcWbWDKJI2zGfFWT7pEGXTvsjD5WOJhIG8K73SeepoRA56bvi
	DpItqH8KhWkb0seo/MeDUFhYSIoRdt0yi3D+H4gnkg1uPxja40wti3JY61QfWJaPaSueDczhqeM
	iGeWkddhX49G+5s2kn5DHIssIE3a74Ip5GsJAAQgF7V4TdnMHhcXKleqLrJIhYJl/kosm9P7kqI
	A5RTiNEEhqBBCoDXSMsbb9RhJ0C4jTcwO8oJfJ8rQQhw58cyA4W0MU3LF3nJlY3xpxFQ0l8ixOG
	REs
X-Received: by 2002:a17:907:5cb:b0:bc6:76d:819e with SMTP id a640c23a62f3a-bc84c77f732mr119858466b.1.1778144342260;
        Thu, 07 May 2026 01:59:02 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v5 00/11]  RISCV: enable DOMAIN_BUILD_HELPERS
Date: Thu,  7 May 2026 10:58:39 +0200
Message-ID: <cover.1778140240.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1778144343-E2975CF5-2738A6D5/10/73395122804
X-purgate-type: spam
X-purgate-size: 3669

Introduce necessary things to enable DOMAIN_BUILD_HELPERS config for RISC-V.

This patch series is rebased on top of patch "xen: introduce CONFIG_HAS_DOMAIN_TYPE"
but there is no any technical dependency.

CI: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2506574229

---
Changes in v5:
 - Merged to upstream staging:
     xen/riscv: implement get_page_from_gfn()
 - Address other comments from ML.
---
Changes in v4:
 - Move patch up, closer to other common/Arm related patches:
   - xen/dom0less: rename kernel_zimage_probe() to  kernel_image_probe()
   - xen: move declaration of fw_unreserved_regions() to common header
   - xen: move domain_use_host_layout() to common header
   - xen: rename p2m_ipa_bits to p2m_gpa_bits

 - Merged to upstream/staging:
     xen/riscv: implement get_page_from_gfn()

 - Rebase this patch series on top of [PATCH v3 0/3] dom0less: various updates. 
 - Address the comments from ML.
---
Changes in v3:
 - Address the comments from ML.
---
Changes in v2:
 - Address the comments from ML.
 - Introduce some new patches to make dom0less solution more architecture
   indepenent from terminology point of view.
 - Minor fixes.
---

Oleksii Kurochko (11):
  xen: arm: fix len type for guest copy functions
  xen/dom0less: rename kernel_zimage_probe() to kernel_image_probe()
  xen: move declaration of fw_unreserved_regions() to common header
  xen: introduce domain-layout.h with common domain_use_host_layout()
  xen/device-tree: use p2m_gpa_bits in common code
  xen/riscv: implement copy_to_guest_phys()
  xen/riscv: add Linux kernel loading support
  xen/riscv: rework G-stage mode handling
  xen/riscv: introduce p2m_gpa_bits
  xen/riscv: add definition of guest RAM banks
  xen/riscv: enable DOMAIN_BUILD_HELPERS

 xen/arch/arm/domain_build.c               |   1 +
 xen/arch/arm/guestcopy.c                  |   6 +-
 xen/arch/arm/include/asm/domain.h         |  14 --
 xen/arch/arm/include/asm/guest_access.h   |   2 +-
 xen/arch/arm/include/asm/p2m.h            |   2 +
 xen/arch/arm/include/asm/setup.h          |   3 -
 xen/arch/arm/kernel.c                     |  50 ++---
 xen/arch/arm/vgic-v3.c                    |   1 +
 xen/arch/riscv/Kconfig                    |   1 +
 xen/arch/riscv/Makefile                   |   3 +
 xen/arch/riscv/dom0less-build.c           |  71 ++++++
 xen/arch/riscv/guestcopy.c                | 116 ++++++++++
 xen/arch/riscv/include/asm/config.h       |  13 ++
 xen/arch/riscv/include/asm/domain.h       |   1 +
 xen/arch/riscv/include/asm/guest-layout.h |  23 ++
 xen/arch/riscv/include/asm/guest_access.h |   7 +
 xen/arch/riscv/include/asm/p2m.h          |  21 +-
 xen/arch/riscv/include/asm/paging.h       |   1 +
 xen/arch/riscv/kernel.c                   | 249 ++++++++++++++++++++++
 xen/arch/riscv/p2m.c                      | 134 ++++++++----
 xen/arch/riscv/vmid.c                     |   2 +-
 xen/common/device-tree/domain-build.c     |   3 +-
 xen/common/device-tree/kernel.c           |   2 +-
 xen/include/public/arch-riscv.h           |   5 +
 xen/include/xen/bootinfo.h                |   4 +
 xen/include/xen/domain-layout.h           |  28 +++
 xen/include/xen/fdt-domain-build.h        |   2 +-
 xen/include/xen/fdt-kernel.h              |  17 +-
 28 files changed, 683 insertions(+), 99 deletions(-)
 create mode 100644 xen/arch/riscv/dom0less-build.c
 create mode 100644 xen/arch/riscv/guestcopy.c
 create mode 100644 xen/arch/riscv/include/asm/guest-layout.h
 create mode 100644 xen/arch/riscv/kernel.c
 create mode 100644 xen/include/xen/domain-layout.h

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 08:59:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:59:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302327.1576286 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZX-0002Md-3O; Thu, 07 May 2026 08:59:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302327.1576286; Thu, 07 May 2026 08:59:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZW-0002MO-Vx; Thu, 07 May 2026 08:59:06 +0000
Received: by outflank-mailman (input) for mailman id 1302327;
 Thu, 07 May 2026 08:59:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKuZV-000288-Ov
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:59:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuZV-00CM1g-5g
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:59:05 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5457-5cb7-0a2a0a5109dd-0a2a45019b40-14
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:05 +0200
Received: from [209.85.218.53] (helo=mail-ej1-f53.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5458-c1f2-0a2a45010019-d155da35dd29-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:05 +0200
Received: by mail-ej1-f53.google.com with SMTP id
 a640c23a62f3a-b9358bc9c50so97041766b.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:59:04 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc81d5e9583sm57549966b.17.2026.05.07.01.59.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 May 2026 01:59:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778144344; x=1778749144; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ElKZ0H6u/sSoXuky68q5cjnp17vaVqQmV7qTVsC1O8w=;
        b=XAueRDBVOniME+t2o7j9YqeJvqQdzKajUlr2rc4WITOfbKzQCQ5p66mrwjyVSYhpCv
         ACPvdWAr41sqPunhIh5IAoSyIpbM3DqKa4eAKgPUd9v09I1s8gOd74m+ejbOh7EPQ5v9
         saMKo2GENGJOa3QRWVAQI+Sd1bNzTV+i11/BJNwdfN+eZMu5HKmqob6IBjg+T/CTfdtm
         dsVK/IdQytQFScY00oORXkXRfZbIQ3xIqT1o8XCMbs1oq6Z1MJNwkQ2J3XuR7Fhsuk0t
         cikfbxxoMcekpUueCTNcLkFM9bg2UB+ScI9pZ2Yeyh5LkYtHaB1aVpzbU1mhFCcTpdPA
         H2ZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778144344; x=1778749144;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ElKZ0H6u/sSoXuky68q5cjnp17vaVqQmV7qTVsC1O8w=;
        b=XU1hoNUieTgwu+d52eT1/uhZBEI1bjjvll13z0ZTBj4iHWMilrP+VDjLYT2s/+MtvU
         bD82QNnNZaWLssM0Wu1OtUCG84B2wu7vjVW1DF/RUK9pVDWtJvd2gGiJ/BXOF9m2F7HT
         4Zdnjom2/pFpIsSE6wuS+mGE/DDq2FquQxjXIqHTw+vYfrMGJ+GjENFd0u1hWAWbWEyM
         NfvLlKyi5yLjRyeXAjTIPETOIViAXPhLdoW8/NWbMRQB9gDaARvBtB72Swz1Vd+0/5e1
         OH2znqrUR801XaCcxt0PbZ+WkzfJKjT50r1V2A5Rc5z5zNLHD4e7yCWJ566mHSYZFOxw
         t8HQ==
X-Gm-Message-State: AOJu0YwM1aVZkzPmyS/fPsWAhBLNMHJcY0XiPQlv3Zu4/i1W8xRm++7w
	mZjEZjD6gjbntnBZVOJn3wXGFxngaKAvdoGLwLltMUeliLSCFoM846+0c20V/Q==
X-Gm-Gg: AeBDietYABACMO+/w+OfP0G3kH5KwPOXdtSMjMoVkvW+bmh+Cj02ANynOEd3uT0I6Qw
	HjVI+9GSAnixurztPKzpWcB9xF+F8p2A31dSGomt9jfwh/z9lTubVdfD6dM/ydZuqkI+QOsIpiQ
	mgp4LgBVaRHedO/Gr/KNAMAkl8/NkFh4koAiFcSSucZr7O4noljX5j98kQIciOWpqORWRwzsHIU
	JQSuJ1JIMWYyl+DRMf+v0JzI2dyyd58cXIU27JrqJmK3q6HNA3Eom037Me+/j5TO7N7eAdCsRDf
	6fnL3cXYps1dOePH3/J62IfJF8+T5pTVsmFlh3XbXdPk7ojXNZeQeE//3dzyfC6rJS2H/UVHw9y
	5gYCNxHguFAygyC/jmMKDHAYQgBE2NU5fbLZOCSuBGwR6/W1aokiNZ4aGoSID7mk2Q2hFgyNgk4
	zlL9iAfB2GAor78Ecne5NgcgDnjZbfBi3xtxVE4gBRIzlik8E5wV9fr2va7W/jqnJlM2jRnYdP0
	frmw4oOv6nMpXpbKkG71XWAyg==
X-Received: by 2002:a17:907:3cc7:b0:bc4:aafa:65cf with SMTP id a640c23a62f3a-bc56c92bfc1mr415473166b.16.1778144343898;
        Thu, 07 May 2026 01:59:03 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Luca Fancellu <luca.fancellu@arm.com>
Subject: [PATCH v5 01/11] xen: arm: fix len type for guest copy functions
Date: Thu,  7 May 2026 10:58:40 +0200
Message-ID: <6f629fe2e194382534d3b1e2400b753c43ccb04b.1778140240.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778140240.git.oleksii.kurochko@gmail.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778144345-AEF58FF4-33AE15F9/10/73395122804
X-purgate-type: spam
X-purgate-size: 5531

Widen the len argument of copy_to_guest_phys_flush_dcache() and the
copy_to_guest_phys_cb typedef from unsigned int to unsigned long, as
the function can be used to copy large blobs such as the initrd which
may exceed 4GB. Update the internal copy_guest() len argument to
unsigned long accordingly.

Change the type for local variable size in copy_guest() to avoid
compilation error because of type mismatch.

raw_* wrappers above copy_guest() keep returning unsigned long to
avoid type narrowing; it is not an issue for raw_*'s len argument
to remain 'unsigned int' since the assignment to copy_guest()'s wider
unsigned long parameter is safe and there is no raw_* users who
are using a value bigger than what can fit into 'unsigned int'.

Fixes: 2986481b3d9e6 ("xen/arm: guest_copy: Extend the prototype to pass the vCPU")
Fixes: 5302bd490bea7 ("xen/arm: Introduce copy_to_guest_phys_flush_dcache")
Fixes: d07b7369aa65b ("xen/common: dom0less: introduce common domain-build.c")
Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes in v5:
 - Add Review-by: Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes in v4:
- Add Fixes: tags.
- Add "arm:" prefix to commit subject.
- Add Reviewed-by: Jan Beulich <jbeulich@suse.com>.
- Avoid using of min_t.
---
Changes in v3:
 - Correct the declaration of copy_to_guest_phys_cb() instead of return
   'unsigned int' to be in sync with len argument, the type of len argument
   is changed on 'unsigned long' as initrd could be pretty big and also its
   size is stroed in 'paddr_t' which is 'unsigned long'.
 - Update copy_guest() prototype to avoid trancation bug for len argument.
 - Revert prototype changes for raw_* wrappers above copy_guest() as they
   should keep returning unsigned long to avoid type narrowing; it is not
   an issue for raw_*'s len argument to remain 'unsigned int' since the
   assignment to copy_guest()'s wider unsigned long parameter is safe.
 - Change the type for local variable size in copy_guest() to avoid
   compilation error because of type mismatch.
 - Add Reported-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v2:
 - New patch.
---
---
 xen/arch/arm/guestcopy.c                | 6 +++---
 xen/arch/arm/include/asm/guest_access.h | 2 +-
 xen/include/xen/fdt-domain-build.h      | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/guestcopy.c b/xen/arch/arm/guestcopy.c
index fdb06422b8e9..86f1c9d0e318 100644
--- a/xen/arch/arm/guestcopy.c
+++ b/xen/arch/arm/guestcopy.c
@@ -53,7 +53,7 @@ static struct page_info *translate_get_page(copy_info_t info, uint64_t addr,
     return page;
 }
 
-static unsigned long copy_guest(void *buf, uint64_t addr, unsigned int len,
+static unsigned long copy_guest(void *buf, uint64_t addr, unsigned long len,
                                 copy_info_t info, unsigned int flags)
 {
     /* XXX needs to handle faults */
@@ -65,7 +65,7 @@ static unsigned long copy_guest(void *buf, uint64_t addr, unsigned int len,
     while ( len )
     {
         void *p;
-        unsigned int size = min(len, (unsigned int)PAGE_SIZE - offset);
+        unsigned long size = min(len, PAGE_SIZE + 0UL - offset);
         struct page_info *page;
 
         page = translate_get_page(info, addr, flags & COPY_linear,
@@ -136,7 +136,7 @@ unsigned long raw_copy_from_guest(void *to, const void __user *from,
 unsigned long copy_to_guest_phys_flush_dcache(struct domain *d,
                                               paddr_t gpa,
                                               void *buf,
-                                              unsigned int len)
+                                              unsigned long len)
 {
     return copy_guest(buf, gpa, len, GPA_INFO(d),
                       COPY_to_guest | COPY_ipa | COPY_flush_dcache);
diff --git a/xen/arch/arm/include/asm/guest_access.h b/xen/arch/arm/include/asm/guest_access.h
index 18c88b70d7ec..c13cbec55b65 100644
--- a/xen/arch/arm/include/asm/guest_access.h
+++ b/xen/arch/arm/include/asm/guest_access.h
@@ -14,7 +14,7 @@ unsigned long raw_clear_guest(void *to, unsigned int len);
 unsigned long copy_to_guest_phys_flush_dcache(struct domain *d,
                                               paddr_t gpa,
                                               void *buf,
-                                              unsigned int len);
+                                              unsigned long len);
 
 int access_guest_memory_by_gpa(struct domain *d, paddr_t gpa, void *buf,
                                uint32_t size, bool is_write);
diff --git a/xen/include/xen/fdt-domain-build.h b/xen/include/xen/fdt-domain-build.h
index 9465a1021fe3..671486c1c837 100644
--- a/xen/include/xen/fdt-domain-build.h
+++ b/xen/include/xen/fdt-domain-build.h
@@ -48,7 +48,7 @@ static inline int get_allocation_size(paddr_t size)
 typedef unsigned long (*copy_to_guest_phys_cb)(struct domain *d,
                                                paddr_t gpa,
                                                void *buf,
-                                               unsigned int len);
+                                               unsigned long len);
 
 void initrd_load(struct kernel_info *kinfo,
                  copy_to_guest_phys_cb cb);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 08:59:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:59:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302328.1576295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZZ-0002bh-AA; Thu, 07 May 2026 08:59:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302328.1576295; Thu, 07 May 2026 08:59:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZZ-0002ba-6b; Thu, 07 May 2026 08:59:09 +0000
Received: by outflank-mailman (input) for mailman id 1302328;
 Thu, 07 May 2026 08:59:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKuZX-0002MR-63
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:59:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuZW-002y5h-Ip
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:59:06 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc544d-2eae-0a2a0a5409dd-0a2a450ab862-48
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:06 +0200
Received: from [209.85.208.44] (helo=mail-ed1-f44.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc545a-56b3-0a2a450a0019-d155d02ce413-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:06 +0200
Received: by mail-ed1-f44.google.com with SMTP id
 4fb4d7f45d1cf-67c3cb1433cso892144a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:59:06 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc81d5e9583sm57549966b.17.2026.05.07.01.59.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 May 2026 01:59:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778144346; x=1778749146; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zc+/+WleWFSSpgrbZyRd8P0UB3Xb83BOo+6OlRzrn70=;
        b=CC8UBS6Zy2QL7cIqe6RcQJfEPkAYFSy+Fv6UxgljNiHPOhhCJNK4T0vmxMF1l+X8xX
         51wgz9qCpj2WOwxlBvrlflDS3O9dObR46KUU/d7mnM4se/uLQ0T4JUhG6JU+Kukry+d3
         AuYPKugzTGdIIx678ZstFSXTQn0NF4o7SZs6rfIhqvUFl86W7T5/GlgMFzDZEG2yqG8N
         /MsBtjn6Xb8VL4PAuJhyzOCRzTflz6Aj4fxnL5iZFEl26WwlUIZEbmCq48l7c6KnXvZU
         LBYescws0h1vhoySPVZaIR7Shdb9PpYk8Ad5/FhIs0pbzVL+I0l8c17pjX3/5jTvK+xd
         rRIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778144346; x=1778749146;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=zc+/+WleWFSSpgrbZyRd8P0UB3Xb83BOo+6OlRzrn70=;
        b=hnTDetYd3KowvrYeV5HQiQAyx3oEPIybVB9BacPbiuqpNcH0ZOp85jcvtBOnLtL8vc
         HZMaqzSRJzUGjvMcnILfz47PZJtTb/ut7e0by82E3Pk+8ygDHMUMLeT2NKEgIPyJHFEY
         N7soqYcy2QHsmgajrKYmy/vQQrZwma3LmOQjSuWRFQhZIgi5H/owigdVDUD2wKYEFFWI
         ptEM5JQsf4tlITNEWfrOCDXqrr2wFnDlohjpDSo/IAJ/latB1arFpAJG49e80Y0oqHgS
         +5mhfkF02Gp5w14omL6Pjyb1xWtNDSlkAyXbTAvwu5nyvml8rgAvF0LYfNcyjEY8GWtH
         Od8A==
X-Gm-Message-State: AOJu0Yxxg0CJb1c4k6HbXBs8DD7fLzfUk6WFiG7S87b8DJbcFp0vk9RB
	08ZP5nMZ59Yts+AGeZ3+CH1f+EBNQ5dCujkAkZ02kuHsepymNXJ9TioqhSKalQ==
X-Gm-Gg: AeBDietuIs20j1if5GSAcribvIpTRDssi/MUvP6mRDoXSbvAgttv/3hynMTJ9cx87bG
	lPaUAxNTd2S+mSei0DleJ5neKjf63qK6bbce4ZHXZuA7U4z3gnMHFdUzQukxUGOz0XgCVJLpz/M
	6oCwjXzjKyZkuxdxw0FaZR7cBsxdQ07LxcARYW2xptXOeOba7Im/dKFMBcMTc2KkJPGnJbgBles
	UpQuQ1Zm/eAUb8FwS2MxCY8EDSQl4529nKSQojHbB4EQ1jJvyIgJgMtPc0Gb2PkHT4+KryB8tl9
	0vzPvTD5MhBKXr7ww7htBQd9zMXhrkZOP3U6VGkJcRmH88379g1F9I8VhPv+ZLu/J0X1TStr70d
	1QSR7d86G6KEA7V0m63x9LTeR2ghX5LlgQ3R1F4xWylJV9bdirsgj1PPxOddRFDQRxlw4HFAEOx
	1qcO6M/lIdr2PHbS+ZRO9x3bt+Lb2x5cAV8SwyMnq4kIht3xze4qUV3x6gtbQ3nxGjS9ji68lMa
	BZs
X-Received: by 2002:a17:907:c18:b0:bb8:b536:55dd with SMTP id a640c23a62f3a-bc56d713f3bmr418780266b.41.1778144345375;
        Thu, 07 May 2026 01:59:05 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Luca Fancellu <luca.fancellu@arm.com>
Subject: [PATCH v5 02/11] xen/dom0less: rename kernel_zimage_probe() to kernel_image_probe()
Date: Thu,  7 May 2026 10:58:41 +0200
Message-ID: <ceddcb0daabf3e58b1811e3499265dc6588ea4b4.1778140240.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778140240.git.oleksii.kurochko@gmail.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778144346-72B778B7-8E0966E5/10/73395122804
X-purgate-type: spam
X-purgate-size: 8345

The helper kernel_zimage_probe() is referenced from common code
(xen/common/device-tree/kernel.c), but its name is tied to the zImage
format which is specific to Arm (from architectures supported by Xen).

Other architectures supported by Xen, such as RISC-V, do not use the
zImage format and instead rely on other kernel image types (e.g. Image
or compressed Image variants: Image.gz, etc). Using "zimage" in the
name is therefore misleading in architecture-independent code.

Rename kernel_zimage_probe() to kernel_image_probe() and update the
associated structure field from "zimage" to "image" to reflect that the
code handles generic kernel images rather than the zImage format
specifically.

No functional change intended.

Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v5:
 - s/zimage/image in some comments.
---
Changes in v3-4:
 - Nothing changed. Only rebase.
---
Changes in v2:
 - new patch.
---
---
 xen/arch/arm/kernel.c           | 50 ++++++++++++++++-----------------
 xen/common/device-tree/kernel.c |  2 +-
 xen/include/xen/fdt-kernel.h    |  6 ++--
 3 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 9395b5af8745..b72585b7fed3 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -101,8 +101,8 @@ static paddr_t __init kernel_zimage_place(struct kernel_info *info)
     paddr_t load_addr;
 
 #ifdef CONFIG_HAS_DOMAIN_TYPE
-    if ( (info->type == DOMAIN_64BIT) && (info->zimage.start == 0) )
-        return mem->bank[0].start + info->zimage.text_offset;
+    if ( (info->type == DOMAIN_64BIT) && (info->image.start == 0) )
+        return mem->bank[0].start + info->image.text_offset;
 #endif
 
     /*
@@ -111,19 +111,19 @@ static paddr_t __init kernel_zimage_place(struct kernel_info *info)
      * and above 32MiB. Load it as high as possible within these
      * constraints, while also avoiding the DTB.
      */
-    if ( info->zimage.start == 0 )
+    if ( info->image.start == 0 )
     {
         paddr_t load_end;
 
         load_end = mem->bank[0].start + mem->bank[0].size;
         load_end = MIN(mem->bank[0].start + MB(128), load_end);
 
-        load_addr = load_end - info->zimage.len;
+        load_addr = load_end - info->image.len;
         /* Align to 2MB */
         load_addr &= ~((2 << 20) - 1);
     }
     else
-        load_addr = info->zimage.start;
+        load_addr = info->image.start;
 
     return load_addr;
 }
@@ -131,8 +131,8 @@ static paddr_t __init kernel_zimage_place(struct kernel_info *info)
 static void __init kernel_zimage_load(struct kernel_info *info)
 {
     paddr_t load_addr = kernel_zimage_place(info);
-    paddr_t paddr = info->zimage.kernel_addr;
-    paddr_t len = info->zimage.len;
+    paddr_t paddr = info->image.kernel_addr;
+    paddr_t len = info->image.len;
     void *kernel;
     int rc;
 
@@ -215,7 +215,7 @@ int __init kernel_uimage_probe(struct kernel_info *info,
         return -EOPNOTSUPP;
     }
 
-    info->zimage.start = be32_to_cpu(uimage.load);
+    info->image.start = be32_to_cpu(uimage.load);
     info->entry = be32_to_cpu(uimage.ep);
 
     /*
@@ -224,20 +224,20 @@ int __init kernel_uimage_probe(struct kernel_info *info,
      * independent image. That means Xen is free to load such an image at
      * any valid address.
      */
-    if ( info->zimage.start == 0 )
+    if ( info->image.start == 0 )
         printk(XENLOG_INFO
                "No load address provided. Xen will decide where to load it.\n");
     else
         printk(XENLOG_INFO
                "Provided load address: %"PRIpaddr" and entry address: %"PRIpaddr"\n",
-               info->zimage.start, info->entry);
+               info->image.start, info->entry);
 
     /*
      * If the image supports position independent execution, then user cannot
      * provide an entry point as Xen will load such an image at any appropriate
      * memory address. Thus, we need to return error.
      */
-    if ( (info->zimage.start == 0) && (info->entry != 0) )
+    if ( (info->image.start == 0) && (info->entry != 0) )
     {
         printk(XENLOG_ERR
                "Entry point cannot be non zero for PIE image.\n");
@@ -257,13 +257,13 @@ int __init kernel_uimage_probe(struct kernel_info *info,
         if ( rc )
             return rc;
 
-        info->zimage.kernel_addr = mod->start;
-        info->zimage.len = mod->size;
+        info->image.kernel_addr = mod->start;
+        info->image.len = mod->size;
     }
     else
     {
-        info->zimage.kernel_addr = addr + sizeof(uimage);
-        info->zimage.len = len;
+        info->image.kernel_addr = addr + sizeof(uimage);
+        info->image.len = len;
     }
 
     info->load = kernel_zimage_load;
@@ -287,9 +287,9 @@ int __init kernel_uimage_probe(struct kernel_info *info,
      * header. In other words if the user provides a uImage header on top of
      * zImage or zImage64 header, Xen uses the attributes of uImage header only.
      * Thus, Xen uses uimage.load attribute to determine the load address and
-     * zimage.text_offset is ignored.
+     * image.text_offset is ignored.
      */
-    info->zimage.text_offset = 0;
+    info->image.text_offset = 0;
 #endif
 
     return 0;
@@ -338,10 +338,10 @@ static int __init kernel_zimage64_probe(struct kernel_info *info,
     if ( (end - start) > size )
         return -EINVAL;
 
-    info->zimage.kernel_addr = addr;
-    info->zimage.len = end - start;
-    info->zimage.text_offset = zimage.text_offset;
-    info->zimage.start = 0;
+    info->image.kernel_addr = addr;
+    info->image.len = end - start;
+    info->image.text_offset = zimage.text_offset;
+    info->image.start = 0;
 
     info->load = kernel_zimage_load;
 
@@ -389,10 +389,10 @@ static int __init kernel_zimage32_probe(struct kernel_info *info,
         }
     }
 
-    info->zimage.kernel_addr = addr;
+    info->image.kernel_addr = addr;
 
-    info->zimage.start = start;
-    info->zimage.len = end - start;
+    info->image.start = start;
+    info->image.len = end - start;
 
     info->load = kernel_zimage_load;
 
@@ -403,7 +403,7 @@ static int __init kernel_zimage32_probe(struct kernel_info *info,
     return 0;
 }
 
-int __init kernel_zimage_probe(struct kernel_info *info, paddr_t addr,
+int __init kernel_image_probe(struct kernel_info *info, paddr_t addr,
                                paddr_t size)
 {
     int rc;
diff --git a/xen/common/device-tree/kernel.c b/xen/common/device-tree/kernel.c
index 28096121a52d..cfa27464f0fc 100644
--- a/xen/common/device-tree/kernel.c
+++ b/xen/common/device-tree/kernel.c
@@ -235,7 +235,7 @@ int __init kernel_probe(struct kernel_info *info,
     if ( rc && rc != -EINVAL )
         return rc;
 
-    rc = kernel_zimage_probe(info, mod->start, mod->size);
+    rc = kernel_image_probe(info, mod->start, mod->size);
 
     return rc;
 }
diff --git a/xen/include/xen/fdt-kernel.h b/xen/include/xen/fdt-kernel.h
index 86a37a13048b..8cd1670c2c6f 100644
--- a/xen/include/xen/fdt-kernel.h
+++ b/xen/include/xen/fdt-kernel.h
@@ -63,7 +63,7 @@ struct kernel_info {
             paddr_t text_offset; /* 64-bit Image only */
 #endif
             paddr_t start; /* Must be 0 for 64-bit Image */
-        } zimage;
+        } image;
     };
 
 #ifdef CONFIG_HAS_DOMAIN_TYPE
@@ -113,7 +113,7 @@ kernel_info_get_mem_const(const struct kernel_info *kinfo)
  * Probe the kernel to detemine its type and select a loader.
  *
  * Sets in info:
- *  ->load hook, and sets loader specific variables ->zimage
+ *  ->load hook, and sets loader specific variables ->image
  */
 int kernel_probe(struct kernel_info *info, const struct dt_device_node *domain);
 
@@ -133,7 +133,7 @@ void kernel_load(struct kernel_info *info);
 
 int kernel_decompress(struct boot_module *mod, uint32_t offset);
 
-int kernel_zimage_probe(struct kernel_info *info, paddr_t addr, paddr_t size);
+int kernel_image_probe(struct kernel_info *info, paddr_t addr, paddr_t size);
 
 /*
  * uImage isn't really used nowadays thereby leave kernel_uimage_probe()
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 08:59:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:59:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302330.1576304 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZb-0002t6-I0; Thu, 07 May 2026 08:59:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302330.1576304; Thu, 07 May 2026 08:59:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZb-0002sx-EO; Thu, 07 May 2026 08:59:11 +0000
Received: by outflank-mailman (input) for mailman id 1302330;
 Thu, 07 May 2026 08:59:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKuZZ-0002c8-Gl
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:59:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuZY-002y66-Ta
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:59:08 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5457-bab6-0a2a0a5309dd-0a2a450ced94-18
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:08 +0200
Received: from [209.85.218.48] (helo=mail-ej1-f48.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc545c-62f1-0a2a450c0019-d155da30b921-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:08 +0200
Received: by mail-ej1-f48.google.com with SMTP id
 a640c23a62f3a-b936331786dso67215866b.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:59:08 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc81d5e9583sm57549966b.17.2026.05.07.01.59.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 May 2026 01:59:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778144348; x=1778749148; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sw4ZCaBnDC39B9UBFiVaqqV8dCEu7NuEUb9SRjNkUL8=;
        b=oZC9YkzUexsgFZeGNoD+mfGClhG77Rpy5ZpBAbhEuVAhmMoAgSi659eGikTkLIT8Us
         jkkfrnfC8dfYUdQEf+qT+BpF6iuRAVl8XwdGfUtlxjgm0eTYuMFyU3ZSSOZUuqRCLDuy
         md+SezknuER+LW1NXFyxk+m+IiBlrx4m3ogr2m4T0oZI+9y6zbIRhA90Ue+8J/bgkOYL
         BytGhtDmfOCJ1LUWC1Q31ehW/hYHl/Xoz1D89Vsfik4VgCXsttG36DkqGMIWwDbQCLxo
         g+vCJRhYsRbYAYGxMNr03UDG8dxKXecHDqZQpIt09wDOHLZUO3FrcycKdXMUOi+KVHWh
         eQHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778144348; x=1778749148;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=sw4ZCaBnDC39B9UBFiVaqqV8dCEu7NuEUb9SRjNkUL8=;
        b=BmfnJNqot6pLvkjH8Tlx9/XNpdvm2Chyru+d74NqbVnBT4L1Kx5181q25GVukbnh3Y
         Zuml6iiyNJhPl4bPk7XOvKNmOk8Jz2OulhOVOLs1M9zPdmEnzJj33AWpUrkn4cbKwyA9
         +SUz9Mhk5SbsTjoh7a8acRWcHNwshRknfYMEypENW2KRq6eKPU1O537icrjOhGRgfqaJ
         yQByAyd1wOe+6usBhuipZLlf5g3YdMwrAGwW/FdJNSnTtRrlURHe4uQUN6kqwHnMniy9
         Z7abWWH/2tCeQAbcqVrAg85WsBY6qYr9uwEyOzxxYDfXJCWwUZUm1MZPVTlYAfWQ6mDl
         LF9g==
X-Gm-Message-State: AOJu0Yy5zu8qqRkD8OldGwsTBIrz+bCxv0vHJBNsBuDdeyIHaj9Ggwcr
	EsJ3WuVh79k0VVt78/pCYd+i7xW7XdBbGPiTq5OFQpJIAslhScHleP6NhKCVyw==
X-Gm-Gg: AeBDiev11a/IX+nxZifej846htEmZ3miBgqPS34R8E+AddwKpacvkEhhuq3gNWnS/hs
	/qv+899+yj6NyH5RXuUu17yw8EJMj93H8azQD9kJYjhGbEi/folefrlMtFj8NF/0mvWChrfWkVR
	MzeYU1/UWhYps2RpR15K8n2GLkvnjDmFa3Wwc6k28CFnOA1SHESSydsueQkrcnb8r1YG0ESscF6
	ybcbw8MgY9WARBwQJ9lyryLuZvO5NQRh84BMdrMwSFS9af1UwwU9Juw9Ub7fFyUmZkBR78MjR15
	K31JZnUFFVOa06b5CkhdrU7NhOxtgZwQJkXREmI+sfhB7YPWPmHgI0kh97wzYHCI7/b/jAtUUTJ
	plZpzY8dvvY8P5oqnr7au3VuCHZxv/rIoq3KYp6uRCM+Q3q7mtiMIl3klGY4fDr7kkODni0SZ1w
	cbbM+e1gMtABj8x6MRWmk5u70H5wpXJPiLDUDdTz3hTfkMss7YTpHqhhSulW92J1UcYBaFIgkaS
	D6C
X-Received: by 2002:a17:907:847:b0:bae:8734:18b4 with SMTP id a640c23a62f3a-bc56b321903mr389004666b.16.1778144347189;
        Thu, 07 May 2026 01:59:07 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Luca Fancellu <luca.fancellu@arm.com>
Subject: [PATCH v5 03/11] xen: move declaration of fw_unreserved_regions() to common header
Date: Thu,  7 May 2026 10:58:42 +0200
Message-ID: <6e79a0cf0a718e8e8c582cc5848ce5221cd56902.1778140240.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778140240.git.oleksii.kurochko@gmail.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1778144348-E176ECF5-FFBFF987/10/73395122804
X-purgate-type: spam
X-purgate-size: 1585

Since the implementation of fw_unreserved_regions() is in common code, move
its declaration to xen/bootinfo.h.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes in v5:
 - Add Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>.
---
Changes in v2-v4:
 - Nothing changed. Only rebase.
---
 xen/arch/arm/include/asm/setup.h | 3 ---
 xen/include/xen/bootinfo.h       | 4 ++++
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index 899e33925ca4..0d29b46ea52b 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -43,9 +43,6 @@ int acpi_make_efi_nodes(void *fdt, struct membank tbl_add[]);
 void create_dom0(void);
 
 void discard_initial_modules(void);
-void fw_unreserved_regions(paddr_t s, paddr_t e,
-                           void (*cb)(paddr_t ps, paddr_t pe),
-                           unsigned int first);
 
 void init_pdx(void);
 void setup_mm(void);
diff --git a/xen/include/xen/bootinfo.h b/xen/include/xen/bootinfo.h
index f834f1957155..dbf492c2e36e 100644
--- a/xen/include/xen/bootinfo.h
+++ b/xen/include/xen/bootinfo.h
@@ -210,4 +210,8 @@ static inline struct membanks *membanks_xzalloc(unsigned int nr,
     return banks;
 }
 
+void fw_unreserved_regions(paddr_t s, paddr_t e,
+                           void (*cb)(paddr_t ps, paddr_t pe),
+                           unsigned int first);
+
 #endif /* XEN_BOOTINFO_H */
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 08:59:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:59:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302332.1576310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZc-00030T-4o; Thu, 07 May 2026 08:59:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302332.1576310; Thu, 07 May 2026 08:59:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZb-0002zR-Vn; Thu, 07 May 2026 08:59:11 +0000
Received: by outflank-mailman (input) for mailman id 1302332;
 Thu, 07 May 2026 08:59:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKuZa-0002q9-Jj
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:59:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuZa-00CM1g-0R
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:59:10 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5457-5cb7-0a2a0a5109dd-0a2a45019b40-36
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:09 +0200
Received: from [209.85.218.49] (helo=mail-ej1-f49.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc545d-c1f2-0a2a45010019-d155da31a8e7-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:09 +0200
Received: by mail-ej1-f49.google.com with SMTP id
 a640c23a62f3a-bc1f0830f44so329054066b.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:59:09 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc81d5e9583sm57549966b.17.2026.05.07.01.59.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 May 2026 01:59:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778144349; x=1778749149; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yM+vLILbE6Jc00UTwsrRi/KBPqAZVlEYVO70OjvNObQ=;
        b=rf55Qbtn8FqUcg0DvITB5nEH3I0tTdTzQre1pTWb4hTfnnvl4xnuJCVcjoT8CcIRxr
         Wp1lJvl8ff9wA7TsC2vIDHmhiTo7pefqMm372iIE+WwW3bqhcFZS9zdf5b55sUOUkLHR
         bjOUkahdLZFpSDRkyk133MFRFX3hsUE0yzID6MWnTDNxKz7Bq+ElV9ZOXTPjnpgtc/o7
         Yl5ASPx4nuxbrgGo7GEFfZJah/cUhg5Xc5b4AjDnd+OeTNUYMCwrFTxt2bWCa1l2W47Q
         CUP2NY9QXizhoeNIOYMg931ikggKygwJ7U98b7IGOtnT/Gls6M6I5ealm6rks9N+sO2R
         WXBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778144349; x=1778749149;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=yM+vLILbE6Jc00UTwsrRi/KBPqAZVlEYVO70OjvNObQ=;
        b=Yu4okDBODMv33xzWBLtLf6qWP6tRq9No0SsII+QqP1nkTkSb6Lnen3qJ6c9UTfojbz
         /cKPPz52tcjqDZqe9+r8t5YTwezsGjyOH8T+bNgJw2OGMYZ55VBAqU6N4iYo9IWtIedM
         ywEwoZWjUp877JR1QMuO8ElVdz/ikBVeSaKBfyJsmBFF644UWdx3gXNzvXrDy16VGsNx
         hFrNcRMWobCkunCTa9R9QyHAGC8LQDBDXSTnk4ya6BwnJXgyVzqI2fY+HShZrLSp/XYU
         G8PFCYl2KP0yf5NHFka0pZBsFsnL2BYiKRym1WK7qZuNOJduv/SO+1+j8UO87wY7beXf
         7Vlw==
X-Gm-Message-State: AOJu0Yz0Ue1yKkvgAzLEaeo7Pg50Cl0UCeQqUacXfQ1z7oAHviR7BWfJ
	bzcvKVitdUx3uULpVxZhGU6g4KbcWurhKOimmNx2VS3Zyu9eWF3NmOmezGnBlg==
X-Gm-Gg: AeBDievw9t5gcD2WoGvI7B+amy+4x7uIvl0DdlUUbZwTh3J9fg0XIT2Nk7zGaMRCZAr
	rrsZCa4np66TsZD+VGrYNVja4/YgKsasp/8avPb35hiOC2Fhwr8kgpOIjLUaz7tovq9j3gcbQcx
	HVDbO2X4XUDJF4DGxW+Gd0x4qLbVPSlchd9WAZBK1QZPy+bp7gU0RstTtemmHa0ca8t+R3z83WZ
	8bccRpJtlE0z1hz/SzxejvuoSNS1kWxwpOH+cSt5elH7axrRFY/qJ57NUqI3qLDbloQbE31/m7V
	8F5FO0Kw7VBwO/Llpezxt+4fhuG1KFIdwBTrXetgy1IWXdURC99DG5pDKulUAEv4tyCcbWMtm0o
	QPMehxIyky++Ap/EVoyS42YdgCPpSQWnEbMh1TDqU7aea1wTbviCeBr9fHC1sXu1S0Urzpnq44G
	eYDxCwxpiFdWkS/PyKxB76ykUfUyRup7g2byVY2Woqm+t2Ffawmdh1OE8FmkWGttEBAc9QQbQuF
	x8p
X-Received: by 2002:a17:907:6d1e:b0:ba3:7d65:c373 with SMTP id a640c23a62f3a-bc85c2b36demr103325966b.10.1778144348790;
        Thu, 07 May 2026 01:59:08 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Luca Fancellu <luca.fancellu@arm.com>
Subject: [PATCH v5 04/11] xen: introduce domain-layout.h with common domain_use_host_layout()
Date: Thu,  7 May 2026 10:58:43 +0200
Message-ID: <a95e0968d4213a07984ac112c178ff72d03eaf96.1778140240.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778140240.git.oleksii.kurochko@gmail.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778144349-AD545FF4-EF64164F/10/73395122804
X-purgate-type: spam
X-purgate-size: 6850

domain_use_host_layout() is not architecture-specific and may be needed
on x86 [1]. Replace the ARM-specific macro in asm/domain.h with a common
static inline in a new dedicated header, xen/domain-layout.h.

xen/domain.h would be the natural home, but placing it there would
require including xen/paging.h (for paging_mode_translate()) and
xen/sched.h (for is_hardware_domain()), which would introduce circular
dependencies. A separate header that callers opt into avoids this.

Adjust the implementation to take paging_mode_translate() into account
so it works correctly for all architectures, including x86. Some extra
details about implementation [2] and [3].

To avoid the following compilation issue:

In file included from ./include/xen/paging.h:4,
                 from ./include/xen/domain-layout.h:6,
                 from common/device-tree/domain-build.c:4:
./arch/riscv/include/asm/paging.h:17:48: error: 'struct page_info'
declared inside parameter list will not be visible outside of this
definition or declaration [-Werror]
   17 | void paging_free_page(struct domain *d, struct page_info *pg);

add the forward declaration of struct page_info to RISC-V's asm/paging.h.

[1] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602161038120.359097@ubuntu-linux-20-04-desktop/
[2] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602271742400.3148344@ubuntu-linux-20-04-desktop/
[3] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602271750190.3148344@ubuntu-linux-20-04-desktop/

Suggested-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v5:
 - Add /* SPDX-License-Identifier: GPL-2.0-only */ to xen/domain-layout.h.
 - s/__XEN_DOMAIN_LAYOUT_H__/XEN_DOMAIN_LAYOUT_H.
 - Drop inclusion of xen/domain.h as it is included in xen/sched.h.
 - Add forward declaration of page_info in asm/paging.h to fix compilation
   issue occured after drop inclusion of xen/domain.h.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v4:
 - Update the comment above domain_use_host_layout().
---
Changes in v3:
 - Make argument of domain_use_host_layout() const.
 - Create a separate header to avoid circular heder dependecy and making
   domain_use_host_layour() as static inline.
 - Rework domain_use_host_layout() to be protected by paging_mode_translate().
 - Update the commit message.
---
Changes in v2:
 - Drop ifdef around defintion of domain_use_host_layout() as it
   was suggested generic version. It could be returned back when
   the real use case for it will appear.
 - Add Suggested-by: and update the commit message.
 - Make domain_use_host_layout() function instead of macros to
   avoid ciclular header dependecies. Look at more details in
   the commit message.
---
 xen/arch/arm/domain_build.c           |  1 +
 xen/arch/arm/include/asm/domain.h     | 14 --------------
 xen/arch/arm/vgic-v3.c                |  1 +
 xen/arch/riscv/include/asm/paging.h   |  1 +
 xen/common/device-tree/domain-build.c |  1 +
 xen/include/xen/domain-layout.h       | 28 +++++++++++++++++++++++++++
 6 files changed, 32 insertions(+), 14 deletions(-)
 create mode 100644 xen/include/xen/domain-layout.h

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index ad665cd3c045..1efddc60ef0a 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2,6 +2,7 @@
 #include <xen/init.h>
 #include <xen/bootinfo.h>
 #include <xen/compile.h>
+#include <xen/domain-layout.h>
 #include <xen/dom0less-build.h>
 #include <xen/fdt-domain-build.h>
 #include <xen/fdt-kernel.h>
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index b24f02d269be..46a5cdc0c800 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -18,20 +18,6 @@ struct hvm_domain
     uint64_t              params[HVM_NR_PARAMS];
 };
 
-/*
- * Is the domain using the host memory layout?
- *
- * Direct-mapped domain will always have the RAM mapped with GFN == MFN.
- * To avoid any trouble finding space, it is easier to force using the
- * host memory layout.
- *
- * The hardware domain will use the host layout regardless of
- * direct-mapped because some OS may rely on a specific address ranges
- * for the devices.
- */
-#define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
-                                   is_hardware_domain(d))
-
 struct vtimer {
     struct vcpu *v;
     int irq;
diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
index 77aab5c3c293..77517c303061 100644
--- a/xen/arch/arm/vgic-v3.c
+++ b/xen/arch/arm/vgic-v3.c
@@ -10,6 +10,7 @@
  */
 
 #include <xen/bitops.h>
+#include <xen/domain-layout.h>
 #include <xen/init.h>
 #include <xen/irq.h>
 #include <xen/lib.h>
diff --git a/xen/arch/riscv/include/asm/paging.h b/xen/arch/riscv/include/asm/paging.h
index c1d225d02b50..e487c89a4ccd 100644
--- a/xen/arch/riscv/include/asm/paging.h
+++ b/xen/arch/riscv/include/asm/paging.h
@@ -4,6 +4,7 @@
 #include <asm-generic/paging.h>
 
 struct domain;
+struct page_info;
 
 int paging_domain_init(struct domain *d);
 
diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree/domain-build.c
index c51520ebadf9..6949203dacdc 100644
--- a/xen/common/device-tree/domain-build.c
+++ b/xen/common/device-tree/domain-build.c
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
 #include <xen/bootinfo.h>
+#include <xen/domain-layout.h>
 #include <xen/fdt-domain-build.h>
 #include <xen/init.h>
 #include <xen/lib.h>
diff --git a/xen/include/xen/domain-layout.h b/xen/include/xen/domain-layout.h
new file mode 100644
index 000000000000..cc5e56c9da47
--- /dev/null
+++ b/xen/include/xen/domain-layout.h
@@ -0,0 +1,28 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef XEN_DOMAIN_LAYOUT_H
+#define XEN_DOMAIN_LAYOUT_H
+
+#include <xen/paging.h>
+#include <xen/sched.h>
+
+/*
+ * Is a domain using the host memory layout?
+ *
+ * domain_use_host_layout() is always False for PV domains (including Dom0).
+ *
+ * Direct-mapped domains (autotranslated domains with memory allocated
+ * contiguously and mapped 1:1 so that GFN == MFN) must use the host
+ * memory layout since GFN == MFN by definition.
+ *
+ * The hardware domain will use the host layout (regardless of
+ * direct-mapped) because some OS may rely on specific address ranges
+ * for the devices.
+ */
+static inline bool domain_use_host_layout(const struct domain *d)
+{
+    return paging_mode_translate(d) &&
+           (is_domain_direct_mapped(d) || is_hardware_domain(d));
+}
+
+#endif /* XEN_DOMAIN_LAYOUT_H */
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 08:59:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:59:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302333.1576322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZd-0003LG-DE; Thu, 07 May 2026 08:59:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302333.1576322; Thu, 07 May 2026 08:59:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZd-0003L1-8K; Thu, 07 May 2026 08:59:13 +0000
Received: by outflank-mailman (input) for mailman id 1302333;
 Thu, 07 May 2026 08:59:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKuZb-0002t8-Lg
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:59:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuZb-00CM1g-2P
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:59:11 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc544c-5cb7-0a2a0a5109dd-0a2a4504a78a-46
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:11 +0200
Received: from [209.85.208.52] (helo=mail-ed1-f52.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc545e-1dec-0a2a45040019-d155d034d04a-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:11 +0200
Received: by mail-ed1-f52.google.com with SMTP id
 4fb4d7f45d1cf-67179ed133dso641972a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:59:11 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc81d5e9583sm57549966b.17.2026.05.07.01.59.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 May 2026 01:59:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778144350; x=1778749150; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aRsnnevu9J7EHdsbqnkGstxc8WDNRA7C/OR2k/OqOes=;
        b=VZDDzy87ZqmYpTAR3Yf7Jp3GqcWI9w6fIIsRTMYXUhqovRhJ0I5BXNaF0zOxjKijQq
         PNmac2nU65sagx+iEyTjDtqUsnqnKJjzPREQbiFEZWLOMUSyQAUr910ymrd4YkHZA7SJ
         FM+9r13FRMlMx1uEGsJlqxr/AcI9sNgLbmRP3vid/H+pmODKMqzlMQbZcCfuV+iAZ81w
         7LyuKDfIsLq5OppPeFywWjemaya4BGfIHdGQCdGrIE2UwB4D7hMMj4L8JYu1212g6yzL
         dh++zcdJD9YnPhlTF5D2ltOZu2EPKan2t24edr13VJcHYhnCAO4TuortR/6Gbka/MTWA
         U/fw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778144350; x=1778749150;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=aRsnnevu9J7EHdsbqnkGstxc8WDNRA7C/OR2k/OqOes=;
        b=sjXcGJpNyJKQkcnSbgI26c6eICpUMPsM5FFstLUzgUJHACFH0aeGnfzfl/6F9owFPZ
         4oP9fTJ9OH3b9ndDCV+3H32IxJfFIBjgr/rSB9RWQjQ7Kxq7UIQpgF0RO0UV0hD3JlID
         Q8sc6mml805PKNvE2T2VKQcLCwDPxwcsA9Da8FP9APgqPDDgNjs6sysHhSyFZX7lGE1I
         ZOS1KqD59TnR4kUC47jwrMJDL0dGStj7xffjBcXihlprtde9hXdaFj7UNX53UDo6rkoF
         pGSGF6hv9QKvRlGZYTyQf0fuVNEGu/kyXnFACJUOzHPEy9jrJSXntJDav+dXrUvHu9tf
         G4hg==
X-Gm-Message-State: AOJu0YyAg5VzxWYlACL5zTibdCAjQh2cLSQMSWpYy+JIwHsUx2kQd0fW
	bMT3KdvcuZ7AY1D/BN5tyAkXo9wQOuerhu/1nMB2WBUQzCwSHtwJvjV44RkKng==
X-Gm-Gg: AeBDiesr4qKWDiUpEmcLZxY/k7bm7nO7dvawQ01h7wEONL2OBPynR6TD8OumveTRqPS
	k3DP9FQoMSvd7uct0wCjMaEpYBUFELShQUefYMdSmnVLz5W+FDCptFl6ff+DFImsSuTWnPPZaaI
	SAcXsRySV1MEflZs1xcmk6MTvvZ72u2B71omcvctNJcOE0/hbnz0X/776YbMlAhlkljW29YzqEH
	4U2COsSrMts7HcxS01m0ffhHkekrm98YRK82kPppcPAHOKJbxMmos0Kr+oc1OIounYjJaUT+7yD
	o2HauPoV4Gl8pVwjCqbSaIA8lDsolWo8W+kQzpg7IPfEc76qa9avQSWE8rATWY6+2P4JROILs2F
	EJ3kxug487ReZV4eFyDLTumJJnJKxzJI7Wp/l4WoK/owyhzh9yWKlk/cM4gM/tFaua0GTB/tNuE
	0oT5NaUBgqHFy/b6MOR2MOyLTT+5CLE2owDL1UIOXDpXWa1K3BxtNF9RIM5mxRlgs010FiGwJXe
	VmA+xLl6rnNVns=
X-Received: by 2002:a17:907:930b:b0:bc1:1716:2e9c with SMTP id a640c23a62f3a-bc56b1272a7mr400444166b.16.1778144350078;
        Thu, 07 May 2026 01:59:10 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v5 05/11] xen/device-tree: use p2m_gpa_bits in common code
Date: Thu,  7 May 2026 10:58:44 +0200
Message-ID: <da9139f28ec72a7a2b9be949e67d57693af8b780.1778140240.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778140240.git.oleksii.kurochko@gmail.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1778144351-4197A3FF-E9835FCC/10/73395122804
X-purgate-type: spam
X-purgate-size: 1927

The IPA terminology is Arm-specific, so rename p2m_ipa_bits to
p2m_gpa_bits to use architecture-neutral naming in
xen/common/device-tree/ code.

No functional changes.

Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes in v5:
 - Rephraze commit subject.
 - Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>.
---
Changes in v4:
 - Nothing changed only rebase.
---
Changes in v3:
 - Introduce #define p2m_gpa_bits p2m_ipa_bits for Arm instead of
   renaming of p2m_ipa_bits to p2m_gpa_bits to keep Arm part of
   changes clearer and keep using Arm-specific terminolgy inside
   Arm code.
---
Changes in v2:
 - New patch.
---
---
 xen/arch/arm/include/asm/p2m.h        | 2 ++
 xen/common/device-tree/domain-build.c | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
index 010ce8c9ebbd..7957dbd96e57 100644
--- a/xen/arch/arm/include/asm/p2m.h
+++ b/xen/arch/arm/include/asm/p2m.h
@@ -14,6 +14,8 @@
 /* Holds the bit size of IPAs in p2m tables.  */
 extern unsigned int p2m_ipa_bits;
 
+#define p2m_gpa_bits p2m_ipa_bits
+
 #define MAX_VMID_8_BIT  (1UL << 8)
 #define MAX_VMID_16_BIT (1UL << 16)
 
diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree/domain-build.c
index 6949203dacdc..2a760b007b57 100644
--- a/xen/common/device-tree/domain-build.c
+++ b/xen/common/device-tree/domain-build.c
@@ -221,7 +221,7 @@ int __init find_unallocated_memory(const struct kernel_info *kinfo,
     }
 
     start = 0;
-    end = (1ULL << p2m_ipa_bits) - 1;
+    end = (1ULL << p2m_gpa_bits) - 1;
     res = rangeset_report_ranges(unalloc_mem, PFN_DOWN(start), PFN_DOWN(end),
                                  cb, free_regions);
     if ( res )
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 08:59:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302336.1576330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZf-0003ft-K4; Thu, 07 May 2026 08:59:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302336.1576330; Thu, 07 May 2026 08:59:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZf-0003fe-H9; Thu, 07 May 2026 08:59:15 +0000
Received: by outflank-mailman (input) for mailman id 1302336;
 Thu, 07 May 2026 08:59:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKuZd-0003LL-Gs
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:59:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuZc-002yCt-Sp
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:59:12 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc545c-2eae-0a2a0a5409dd-0a2a4508d59a-10
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:12 +0200
Received: from [209.85.218.43] (helo=mail-ej1-f43.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5460-63b5-0a2a45080019-d155da2bcd56-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:12 +0200
Received: by mail-ej1-f43.google.com with SMTP id
 a640c23a62f3a-bb962ce4dcfso87521966b.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:59:12 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc81d5e9583sm57549966b.17.2026.05.07.01.59.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 May 2026 01:59:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778144352; x=1778749152; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wGQ7zO8AKfHP1ag+tsRcXVHwApXHfJapq9I/qFco5NE=;
        b=jf/i/+rDqRPS5qI4SAfOdsRF1r5QN2gNCYxHQELqmI2ZZg8Rsb53/D3Ip+UTOCQcS5
         CfXtUDO7e4+FdnWLChhjcjvUbg61o7yLnL4Ba5w9iEUnbVwpuRg8nLhWKoLIodCm+uOq
         mIYjZTdf3SXed18DglZG8pEY8grbL5bYUPw/24lC/4gkTHIJPX8w1WEsRTm/kFoqaY6l
         aFrVKe8AAr4HWj6BvKRNgT0+Iwj6O1/RD43Wf9eXJUI9vC36X5ji2KIXXeUx44K9pQc4
         DyGDPGy0CvpH80EHEdaamqhJ9p/ZMc3JVjVtPFEBEVYrHk3FKH+YBMxLgnUe2yXYG6GW
         LqDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778144352; x=1778749152;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=wGQ7zO8AKfHP1ag+tsRcXVHwApXHfJapq9I/qFco5NE=;
        b=LrViiuvETZVScqRUCoTxeUTXhSpdrQ9+rb9pUjFkMFzHodmztqONg7bsfnqymy9Axf
         rS1lAZF+wvxanvk8Li6UGlTc0BNPlErutSLwiMGG/rDnutIvp+3Us4+nJ6TZKH5umrua
         GMV1E+UmJdWUgpuw3UKlWlt+4FkQU+8v7HfXeNck+uUeJysO0VFDxvjLLoL0uMcD5i5W
         k7+NcACX7QmCN2mZjMkry1eQxCFRx+alCjM4bMl9AU6FgMfAXX6Tiy9h1kf0uVdyg/vi
         w+vJl86eTvvnB0oDji8AUb6Kzr14iczts/bMRSSGQd5NHw7NLdZKMyy6FRxwt8uELVJw
         RwZw==
X-Gm-Message-State: AOJu0Yx2ZQ9z6y/Cjcp+BKtsow6ZsbJQLPODVTqOGlH4RJoS4BHss2Rm
	DFzgmn8VkPplDqzq1An2Q0EXJglP++Yqf2yYjPV58LXGk8DjXPvMreqGFcSkHA==
X-Gm-Gg: AeBDievIuMwkYYm2oLehyGfMySXZQwnnWrzjCiPVtJ5XYM4ciebV1toxoS2CX/wzMbf
	Mjtlq7Q0ZWI1FikTEnwSxEVDXwy6d7DzS1LEstmxUMDcb89rAV9n5Y7dtAzCDtkgER4W8qOf4MM
	3smdKmj8bedXTCdUjxsvW3B4dVWQW02Xu6piUlfOym0lTYCpEytZ4lA2VA+c4pSiWeT87ZFUd6e
	4Fcxg9AeXaKYeUjkOgLlkVQQbDbVbUhLao2uuVL5f98lZ9OTXu2LE7kBUVx0dFzYKdsCa1o9Lny
	+gUJVANqN3fH7y5IQYGtg02T8M89JtY6gCTUjYkT2qay0sUnI7yIPx5qj3r9ujPDkdGXUBd+zQR
	TMfvQkoHihpBGxwaDqP7I14sBtTlR+28q8e0vlqAZjGsIiNP7axz1D02AQM8TERitBMdVYG69GK
	tmwJjkFT4x7JOzTS1g5i08xz9XHaxApqrlrEMFcsFytbGIgc3PXIJo8mQeD9Qn6wo8z1VRQacfv
	NJt
X-Received: by 2002:a17:907:1ca8:b0:bc3:783f:1da9 with SMTP id a640c23a62f3a-bc56d13123amr367776966b.33.1778144351614;
        Thu, 07 May 2026 01:59:11 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 06/11] xen/riscv: implement copy_to_guest_phys()
Date: Thu,  7 May 2026 10:58:45 +0200
Message-ID: <90ff94daad0c3910b1398a7bd956f0d0bd6a2041.1778140240.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778140240.git.oleksii.kurochko@gmail.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1778144352-B7D7BDB1-F2C646D4/10/73395122804
X-purgate-type: spam
X-purgate-size: 6574

Introduce copy_to_guest_phys() for RISC-V, based on the Arm implementation.

Add a generic copy_guest() helper for copying to and from guest physical
(and potentially virtual addresses in the future), and implement
translate_get_page() to translate a guest physical address into a struct
page_info via the domain p2m.

Compared to the Arm code:
- Drop COPY_flush_dcache(), as no such use cases exist on RISC-V.
- Do not implement the linear mapping case, which is currently unused.
- Use PAGE_OFFSET() to initialize the local offset variable in copy_guest().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v5:
 - Nothing changed. Only rebase.
---
Changes in v4:
 - Avoid using of min_t. (sync with Arm)
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - s/if (page == NULL)/if ( !page ).
 - Drop " - offset" for unmap_domain_page() inside copy_guest() function.
   unmap_domain_page() is expected to mask (or something similar) the page
   offset bits.
 - Change some types for functions as copy_to_guest_phys_cb function pointer
   prototype was changed too in the prev. commit.
---
Changes in v2:
 - Use BIT() instead of open-coding.
 - Rename COPY_ipa to COPY_gpa.
 - Rename COPY_linear to COPY_gva.
 - Use  BUG_ON(linear) instead if (lineer) + BUG_ON.
 - Rename arg liner to gva for translate_get_page().
 - Update translate_get_page() to properly handling write argument.
 - Return unsigned int for copy_guest() and copy_to_guest_phys() as
   len function parameter is only 'unsigned int'.
 - Reformat function arguments for alignment
---
---
 xen/arch/riscv/Makefile                   |   1 +
 xen/arch/riscv/guestcopy.c                | 116 ++++++++++++++++++++++
 xen/arch/riscv/include/asm/guest_access.h |   7 ++
 3 files changed, 124 insertions(+)
 create mode 100644 xen/arch/riscv/guestcopy.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 04f02ad89cba..cfc3fdf7d208 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -4,6 +4,7 @@ obj-y += domain.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += entry.o
 obj-y += extable.o
+obj-y += guestcopy.o
 obj-y += imsic.o
 obj-y += intc.o
 obj-y += irq.o
diff --git a/xen/arch/riscv/guestcopy.c b/xen/arch/riscv/guestcopy.c
new file mode 100644
index 000000000000..8a89212e0bea
--- /dev/null
+++ b/xen/arch/riscv/guestcopy.c
@@ -0,0 +1,116 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/domain_page.h>
+#include <xen/page-size.h>
+#include <xen/sched.h>
+#include <xen/string.h>
+
+#include <asm/guest_access.h>
+
+#define COPY_from_guest     0U
+#define COPY_to_guest       BIT(0, U)
+#define COPY_gpa            0U
+#define COPY_gva            BIT(1, U)
+
+typedef union
+{
+    struct
+    {
+        struct vcpu *v;
+    } gva;
+
+    struct
+    {
+        struct domain *d;
+    } gpa;
+} copy_info_t;
+
+#define GVA_INFO(vcpu) ((copy_info_t) { .gva = { vcpu } })
+#define GPA_INFO(domain) ((copy_info_t) { .gpa = { domain } })
+
+static struct page_info *translate_get_page(copy_info_t info, uint64_t addr,
+                                            bool gva, bool write)
+{
+    p2m_type_t p2mt;
+    struct page_info *page;
+
+    /*
+     * Not implemented yet.
+     *
+     * If gva == true, the operation will likely require a struct vcpu
+     * rather than just a struct domain. For this reason copy_info_t is
+     * already passed here instead of only struct domain.
+     */
+    BUG_ON(gva);
+
+    page = get_page_from_gfn(info.gpa.d, paddr_to_pfn(addr), &p2mt, P2M_ALLOC);
+
+    if ( !page )
+        return NULL;
+
+    if ( write ? p2mt != p2m_ram_rw : !p2m_is_ram(p2mt) )
+    {
+        put_page(page);
+        return NULL;
+    }
+
+    return page;
+}
+
+static unsigned long copy_guest(void *buf, uint64_t addr, unsigned long len,
+                                copy_info_t info, unsigned int flags)
+{
+    unsigned int offset = PAGE_OFFSET(addr);
+
+    BUILD_BUG_ON((sizeof(addr)) < sizeof(vaddr_t));
+    BUILD_BUG_ON((sizeof(addr)) < sizeof(paddr_t));
+
+    while ( len )
+    {
+        void *p;
+        unsigned long size = min(len, PAGE_SIZE + 0UL - offset);
+        struct page_info *page;
+
+        page = translate_get_page(info, addr, flags & COPY_gva,
+                                  flags & COPY_to_guest);
+        if ( !page )
+            return len;
+
+        p = __map_domain_page(page);
+        p += offset;
+        if ( flags & COPY_to_guest )
+        {
+            /*
+             * buf will be NULL when the caller request to zero the
+             * guest memory.
+             */
+            if ( buf )
+                memcpy(p, buf, size);
+            else
+                memset(p, 0, size);
+        }
+        else
+            memcpy(buf, p, size);
+
+        unmap_domain_page(p);
+        put_page(page);
+        len -= size;
+        buf += size;
+        addr += size;
+
+        /*
+         * After the first iteration, guest virtual address is correctly
+         * aligned to PAGE_SIZE.
+         */
+        offset = 0;
+    }
+
+    return 0;
+}
+
+unsigned long copy_to_guest_phys(struct domain *d, paddr_t gpa, void *buf,
+                                 unsigned long len)
+{
+    return copy_guest(buf, gpa, len, GPA_INFO(d),
+                      COPY_to_guest | COPY_gpa);
+}
diff --git a/xen/arch/riscv/include/asm/guest_access.h b/xen/arch/riscv/include/asm/guest_access.h
index 7cd51fbbdead..8d679319ded0 100644
--- a/xen/arch/riscv/include/asm/guest_access.h
+++ b/xen/arch/riscv/include/asm/guest_access.h
@@ -2,6 +2,10 @@
 #ifndef ASM__RISCV__GUEST_ACCESS_H
 #define ASM__RISCV__GUEST_ACCESS_H
 
+#include <xen/types.h>
+
+struct domain;
+
 unsigned long raw_copy_to_guest(void *to, const void *from, unsigned len);
 unsigned long raw_copy_from_guest(void *to, const void *from, unsigned len);
 unsigned long raw_clear_guest(void *to, unsigned int len);
@@ -18,6 +22,9 @@ unsigned long raw_clear_guest(void *to, unsigned int len);
 #define guest_handle_okay(hnd, nr) (1)
 #define guest_handle_subrange_okay(hnd, first, last) (1)
 
+unsigned long copy_to_guest_phys(struct domain *d, paddr_t gpa, void *buf,
+                                 unsigned long len);
+
 #endif /* ASM__RISCV__GUEST_ACCESS_H */
 /*
  * Local variables:
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 08:59:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:59:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302338.1576340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZi-00040a-8h; Thu, 07 May 2026 08:59:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302338.1576340; Thu, 07 May 2026 08:59:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZi-000401-1H; Thu, 07 May 2026 08:59:18 +0000
Received: by outflank-mailman (input) for mailman id 1302338;
 Thu, 07 May 2026 08:59:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKuZg-0003sK-OG
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:59:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuZg-005UsV-4q
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:59:16 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc545f-e002-0a2a0a5209dd-0a2a4501ca64-28
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:15 +0200
Received: from [209.85.218.47] (helo=mail-ej1-f47.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5463-c1f2-0a2a45010019-d155da2fb86f-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:15 +0200
Received: by mail-ej1-f47.google.com with SMTP id
 a640c23a62f3a-bc2a455fd55so84106666b.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:59:15 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc81d5e9583sm57549966b.17.2026.05.07.01.59.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 May 2026 01:59:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778144354; x=1778749154; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b5JrowEde3AEZewOr27HDt+oy+DAfl7walW+rv1nHYY=;
        b=mP/nPJIEtGqWpm+tqvmLR/rbg1uXu455kUbVDjckrCUnhE7MIGSg1ABjd9/6vLBGlL
         J2bcdj/h040AGePpNnMvRS7+dkf7faWNY/8x8EQjGF7dV/PLMidL2FdbLNUnJRFLpddO
         /IkzLG7qVMpJPW/8VxYqqQlzFPe3fycUBoPA7kfflpb6eAZ6GoObN//kwV95+p8kABIU
         lxrEYl52riDBlwiLAsbJD8SSGmFuJwSnI4AopkNgId07ijTQJr2ZmlTtGRJk6fhOerLh
         fNr6QO2el+Tg+X7JljSL84L/5jtLkuiThgmaEbK/VVkOe3Ymr8WU+fGmNg2OHQyIxlV9
         Tn0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778144354; x=1778749154;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=b5JrowEde3AEZewOr27HDt+oy+DAfl7walW+rv1nHYY=;
        b=RU3MmjjvTJHIkitV/PI0ZpV+iDMs9sjC8NLEf9asT94ukD1xzlAsfylGwfOloxNo2P
         YEHlwGKdat0ps4Al5HtJWnXK5t9+3xxv0RkO5YLDE2ShiOYk3wiikBExazj/S+QB4yBt
         Y/cGKs+yF6z2NFeUD1DkUz4ng3jmGTDApXN926rPnVMz7PkK2vZT0UsZ7P9mB80PJqeP
         W6646SHGg4Li6axWLmck0BGL40JDMOHW85NbWPNpZqMjzKNcWWL5Q36p28BRv50fJBbN
         nI4AlBQNjT6CQn4YVBCVho5NlBvRDKP1hKMnMI3i2j8Wyj8g/fyBY2NpVsHuIKlxidId
         I9yQ==
X-Gm-Message-State: AOJu0YyEOcx0aMCYfLdDRDln+DTSohfEa4RHujUjN3rKjqY2sadPeoAh
	O/BnvT1SNhNifuiGLMNZ0tvHTSXRJawwuM5nZSb29nF8XObErNRh58bHJgABhg==
X-Gm-Gg: AeBDieuh+xY7M7A35w1dCLWTl80unv+DMh9epdFj5+pogNyFZpOPuDxZB5RfJQl5OPG
	mf4njd+xyLE9+0V9oYlBFM0mbYRPMWSCIwC73aFI65UTWW2QqP87r0v9xjUaXZbpSsjOEShv4HB
	UQ5Qom408PmGUmgGxfXbsHzTDcKjO2ObYs8lw9ZrdD3REWSwrhPyWziqfDSo7L9zdqJ/plc//3M
	fXSBaPNq0iCFahr58Vy+IndY079gu+sj/i6HD8UF29jtYacqBM1I3yutSYEeCukrT+eoU+kLbDL
	LrdS5mXUQudO+if6IPE0JK1QdTGLTkooM/pbA8Sktr76BMnO0ytDtuUmcvliWniENtP/q44+vr7
	g4B9aEJtmuwrn2mzwWmthhU6jaLgtrgesN8sWdoE1wSxh+vvZAbKOtthhV3Otvk7FTp5SIHJMm/
	og8Xha+3j6bt6po3e9Cgk4QV7SFhMtNF4qR2dsCogFnIL8GBMjlvg1NEBT33nhMKLbJfrdZmm28
	GOO
X-Received: by 2002:a17:906:99c1:b0:bc4:75be:62e3 with SMTP id a640c23a62f3a-bc56d137fc6mr400889466b.33.1778144352960;
        Thu, 07 May 2026 01:59:12 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 07/11] xen/riscv: add Linux kernel loading support
Date: Thu,  7 May 2026 10:58:46 +0200
Message-ID: <f77ef278b7df729a3a97a0e1b3ed0b4ee4d08fac.1778140240.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778140240.git.oleksii.kurochko@gmail.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778144355-B715BFF4-9BCA9DAE/10/73395122804
X-purgate-type: spam
X-purgate-size: 12546

Introduce support for loading a Linux kernel Image which is got by
uncompressing of Image.gz on RISC-V.

kernel_image_load() and place_modules() currently call panic() on
failure rather than returning an error. This is because the common
kernel_load() in common/device-tree/kernel.c does not expect a
return code. Handling errors gracefully would require a separate
refactor.

The implementation is based on the Xen Arm kernel loading code.

text_offset is available for both 32-bit and 64-bit Image, so fix
that.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v5:
 - Introduce MODULES_ALIGNMENT and use it inside place_modules().
 - Add if() to avoid underflow when modbase is calculated in the case when
   modules would overlap the kernel.
 - Drop unnessary dprintk()s.
 - "&& size > effective_size" in kernel_image64_probe().
 - Use 'size_t' for image_size in struct kernel_info to
   fit both RV32 and RV64.
---
Changes in v4:
 - Update the patch subject: add "... Linux kernel ...".
 - Make bi variable unsigned. And use while() instead of for().
 - Update the condition which calculates overlapping of kernel with modules.
 - Reject a malformed image before the loop to avoid wrapping
   load_addr + image_size in the per-bankcheck below.
 - Use  mathematical representation to print ranges.
 - Use #error instead of just returning unsupported.
 - Update the comment above stuct image in kernel_image64_probe().
---
---
 xen/arch/riscv/Makefile             |   1 +
 xen/arch/riscv/include/asm/config.h |  13 ++
 xen/arch/riscv/kernel.c             | 249 ++++++++++++++++++++++++++++
 xen/include/xen/fdt-kernel.h        |  11 +-
 4 files changed, 272 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/kernel.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index cfc3fdf7d208..eecdcbc76867 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -8,6 +8,7 @@ obj-y += guestcopy.o
 obj-y += imsic.o
 obj-y += intc.o
 obj-y += irq.o
+obj-y += kernel.init.o
 obj-y += mm.o
 obj-y += p2m.o
 obj-y += paging.o
diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index 0613de008b13..fd69057826e1 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -151,6 +151,19 @@
 extern unsigned long phys_offset; /* = load_start - XEN_VIRT_START */
 #endif
 
+/*
+ * KERNEL_LOAD_ADDR_ALIGNMENT is defined based on paragraph of
+ * "Kernel location" of boot.rst:
+ * https://docs.kernel.org/arch/riscv/boot.html#kernel-location
+ */
+#if defined(CONFIG_RISCV_32)
+#define KERNEL_LOAD_ADDR_ALIGNMENT MB(4)
+#elif defined(CONFIG_RISCV_64)
+#define KERNEL_LOAD_ADDR_ALIGNMENT MB(2)
+#else
+#error "Define KERNEL_LOAD_ADDR_ALIGNMENT"
+#endif
+
 #endif /* ASM__RISCV__CONFIG_H */
 /*
  * Local variables:
diff --git a/xen/arch/riscv/kernel.c b/xen/arch/riscv/kernel.c
new file mode 100644
index 000000000000..8580cdb32d7a
--- /dev/null
+++ b/xen/arch/riscv/kernel.c
@@ -0,0 +1,249 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/bug.h>
+#include <xen/compiler.h>
+#include <xen/errno.h>
+#include <xen/fdt-kernel.h>
+#include <xen/guest_access.h>
+#include <xen/init.h>
+#include <xen/libfdt/libfdt.h>
+#include <xen/mm.h>
+#include <xen/types.h>
+#include <xen/vmap.h>
+
+#include <asm/setup.h>
+
+#define IMAGE64_MAGIC_V2 0x05435352 /* Magic number 2, le, "RSC\x05" */
+
+/*
+ * Machine word alignment could be useful for copying to be more efficient.
+ * There is no reason for now to have bigger module alignment.
+ */
+#define MODULES_ALIGNMENT sizeof(unsigned long)
+
+static void __init place_modules(struct kernel_info *info, paddr_t kernbase,
+                                 paddr_t kernend)
+{
+    const struct boot_module *mod = info->bd.initrd;
+    const struct membanks *banks = kernel_info_get_mem_const(info);
+    const paddr_t initrd_len = ROUNDUP(mod ? mod->size : 0,
+                                       MODULES_ALIGNMENT);
+    const paddr_t dtb_len = ROUNDUP(fdt_totalsize(info->fdt),
+                                    MODULES_ALIGNMENT);
+    const paddr_t modsize = initrd_len + dtb_len;
+    unsigned int bi = banks->nr_banks;
+
+    if ( modsize < initrd_len )
+        panic("Module size overflow: initrd + dtb size wraps paddr_t\n");
+
+    /*
+     * Place modules as high in RAM as possible, scanning banks from
+     * last to first so that the end of the last bank is preferred.
+     */
+    while ( bi-- > 0 )
+    {
+        const struct membank *bank = &banks->bank[bi];
+        const paddr_t bank_end = bank->start + bank->size;
+        paddr_t modbase;
+
+        if ( modsize > bank->size )
+            continue;
+
+        modbase = ROUNDDOWN(bank_end - modsize, MODULES_ALIGNMENT);
+
+        if ( modbase < bank->start )
+            continue;
+
+        /*
+         * If modules would overlap the kernel, try placing them below it.
+         */
+        if ( (modbase < ROUNDUP(kernend, MODULES_ALIGNMENT)) &&
+             (modbase + modsize > kernbase) )
+        {
+            /* Avoid underflow below */
+            if ( kernbase < modsize )
+                continue;
+
+            modbase = ROUNDDOWN(kernbase - modsize, MODULES_ALIGNMENT);
+            if ( modbase < bank->start )
+                continue;
+        }
+
+        info->dtb_paddr = modbase;
+        info->initrd_paddr = modbase + dtb_len;
+
+        return;
+    }
+
+    panic("Unable to find suitable location for dtb+initrd\n");
+}
+
+static paddr_t __init kernel_image_place(struct kernel_info *info)
+{
+    paddr_t load_addr = INVALID_PADDR;
+    uint64_t image_size = info->image.image_size ?: info->image.len;
+    const struct membanks *banks = kernel_info_get_mem_const(info);
+    unsigned int nr_banks = banks->nr_banks;
+    unsigned int bi;
+
+    /*
+     * At the moment, RISC-V's Linux kernel should be always position
+     * independent based on "Per-MMU execution" of boot.rst:
+     *   https://docs.kernel.org/arch/riscv/boot.html#pre-mmu-execution
+     *
+     * But just for the case when RISC-V's Linux kernel isn't position
+     * independent it is needed to take load address from
+     * info->image.start.
+     *
+     * If `start` is zero, the Image is position independent.
+     */
+    if ( likely(!info->image.start) )
+    {
+        for ( bi = 0; bi != nr_banks; bi++ )
+        {
+            const struct membank *bank = &banks->bank[bi];
+            paddr_t bank_start = bank->start;
+            /*
+             * According to boot.rst kernel load address should be properly
+             * aligned:
+             *   https://docs.kernel.org/arch/riscv/boot.html#kernel-location
+             *
+             * As Image in this case is PIC we can ignore
+             * info->image.text_offset.
+             */
+            paddr_t aligned_start = ROUNDUP(bank_start, KERNEL_LOAD_ADDR_ALIGNMENT);
+            paddr_t bank_end = bank_start + bank->size;
+            paddr_t bank_size;
+
+            if ( aligned_start > bank_end )
+                continue;
+
+            bank_size = bank_end - aligned_start;
+
+            if ( image_size <= bank_size )
+            {
+                load_addr = aligned_start;
+                break;
+            }
+        }
+    }
+    else
+    {
+        load_addr = info->image.start + info->image.text_offset;
+
+        WARN_ON(!IS_ALIGNED(load_addr, KERNEL_LOAD_ADDR_ALIGNMENT));
+
+        /*
+         * Reject a malformed image before the loop to avoid wrapping
+         * load_addr + image_size in the per-bank check below by setting
+         * bi = nr_banks.
+         *
+         * image_size covers the kernel from _start (placed at load_addr =
+         * start + text_offset) through _end.  The alignment gap
+         * [start, load_addr) is padding and need not lie within a bank.
+         */
+        bi = image_size <= (paddr_t)-1 - load_addr ? 0 : nr_banks;
+        for ( ; bi != nr_banks; bi++ )
+        {
+            const struct membank *bank = &banks->bank[bi];
+            paddr_t bank_start = bank->start;
+            paddr_t bank_end = bank_start + bank->size;
+
+            if ( (load_addr >= bank_start) &&
+                 (load_addr + image_size <= bank_end) )
+                break;
+        }
+    }
+
+    if ( bi == nr_banks )
+        panic("Failed to place kernel image in any memory bank\n");
+
+    info->entry = load_addr;
+
+    return load_addr;
+}
+
+static void __init kernel_image_load(struct kernel_info *info)
+{
+    int rc;
+    paddr_t load_addr = kernel_image_place(info);
+    paddr_t paddr = info->image.kernel_addr;
+    paddr_t len = info->image.len;
+    paddr_t effective_size = info->image.image_size ?: len;
+    void *kernel;
+
+    place_modules(info, load_addr, load_addr + effective_size);
+
+    printk("Loading Image from %"PRIpaddr" to [%"PRIpaddr",%"PRIpaddr")\n",
+            paddr, load_addr, load_addr + effective_size);
+
+    kernel = ioremap_cache(paddr, len);
+
+    if ( !kernel )
+        panic("Unable to map kernel\n");
+
+    /* Move kernel to proper location in guest phys map */
+    rc = copy_to_guest_phys(info->bd.d, load_addr, kernel, len);
+
+    if ( rc )
+        panic("Unable to copy kernel to proper guest location\n");
+
+    iounmap(kernel);
+}
+
+/* Check if the image is a 64-bit Image */
+static int __init kernel_image64_probe(struct kernel_info *info,
+                                       paddr_t addr, paddr_t size)
+{
+    /* https://www.kernel.org/doc/Documentation/riscv/boot-image-header.rst */
+    struct {
+        uint32_t code0;         /* Executable code */
+        uint32_t code1;         /* Executable code */
+        uint64_t text_offset;   /* Image load offset, little endian */
+        uint64_t image_size;    /* Effective Image size, little endian */
+        uint64_t flags;         /* kernel flags, little endian */
+        uint32_t version;       /* Version of this header */
+        uint32_t res1;          /* Reserved */
+        uint64_t res2;          /* Reserved */
+        uint64_t magic;         /* Deprecated: Magic number, little endian, "RISCV" */
+        uint32_t magic2;        /* Magic number 2, little endian, "RSC\x05" */
+        uint32_t res3;          /* Reserved for PE COFF offset */
+    } image;
+    uint64_t effective_size;
+
+    if ( size < sizeof(image) )
+        return -EINVAL;
+
+    copy_from_paddr(&image, addr, sizeof(image));
+
+    /* Magic v1 is deprecated and may be removed.  Only use v2 */
+    if ( le32_to_cpu(image.magic2) != IMAGE64_MAGIC_V2 )
+        return -EINVAL;
+
+    effective_size = le64_to_cpu(image.image_size);
+
+    if ( !effective_size )
+        return -EINVAL;
+
+    info->image.kernel_addr = addr;
+    /* Actual size in the binary file */
+    info->image.len = size;
+    /* Total memory the kernel occupies at runtime */
+    info->image.image_size = effective_size;
+    info->image.text_offset = le64_to_cpu(image.text_offset);
+    info->image.start = 0;
+
+    info->load = kernel_image_load;
+
+    return 0;
+}
+
+int __init kernel_image_probe(struct kernel_info *info, paddr_t addr,
+                              paddr_t size)
+{
+#ifdef CONFIG_RISCV_64
+    return kernel_image64_probe(info, addr, size);
+#else
+#   error "Only 64-bit RISC-V is supported"
+#endif
+}
diff --git a/xen/include/xen/fdt-kernel.h b/xen/include/xen/fdt-kernel.h
index 8cd1670c2c6f..00c37be101bf 100644
--- a/xen/include/xen/fdt-kernel.h
+++ b/xen/include/xen/fdt-kernel.h
@@ -59,8 +59,15 @@ struct kernel_info {
         struct {
             paddr_t kernel_addr;
             paddr_t len;
-#if defined(CONFIG_ARM_64) || defined(CONFIG_RISCV_64)
-            paddr_t text_offset; /* 64-bit Image only */
+#if defined(CONFIG_ARM_64) || defined(CONFIG_RISCV)
+            /*
+             * ARM: 64-bit Image only.
+             * RISC-V: both 32-bit and 64-bit Images.
+             */
+            paddr_t text_offset;
+#endif
+#if defined(CONFIG_RISCV)
+            size_t image_size; /* Effective size of Image */
 #endif
             paddr_t start; /* Must be 0 for 64-bit Image */
         } image;
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 08:59:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:59:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302339.1576346 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZi-00043V-U7; Thu, 07 May 2026 08:59:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302339.1576346; Thu, 07 May 2026 08:59:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZi-00042c-G5; Thu, 07 May 2026 08:59:18 +0000
Received: by outflank-mailman (input) for mailman id 1302339;
 Thu, 07 May 2026 08:59:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKuZh-0003up-04
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:59:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuZg-005UsV-DG
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:59:16 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc545b-e002-0a2a0a5209dd-0a2a450a89e4-20
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:16 +0200
Received: from [209.85.218.41] (helo=mail-ej1-f41.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5464-56b3-0a2a450a0019-d155da29dc61-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:16 +0200
Received: by mail-ej1-f41.google.com with SMTP id
 a640c23a62f3a-bc64ad08bf9so94019066b.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:59:16 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc81d5e9583sm57549966b.17.2026.05.07.01.59.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 May 2026 01:59:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778144355; x=1778749155; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qAuPJneSAYatfg2rA6nZoLGovOQ+ak9UxFQxy6EAhlE=;
        b=U9LHd0LtVOgAvONLRvkRWjjHsPen9yAUYRqpdGDqBpVUHqnjWSQGJJzmi2LIB6rq+h
         hMiMrawrIF26S5wypjeOYX/PDNSYd6jDRo+Op/X+zzjYEgcUPQYfQZLtuFWFn4OTLvtA
         R39ezyzen35rMm+suF8ltT9nHQLNkouYbw1Ox7BPzOB+7e5Zc6zo7IVX/uMlgav4jkH3
         Y8YewCwP/4e2ke+sWdubbwHqGR+wRWglEGStaKQC07y1kiuofV/LSkBronhxSSEGT6IP
         wX8xk0BSjsxDTxm2002d3kA7E9S+GszVLnMpjFnYgyrmbKOfJ85u3dSu3z8LvRi0/DRq
         oq2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778144355; x=1778749155;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=qAuPJneSAYatfg2rA6nZoLGovOQ+ak9UxFQxy6EAhlE=;
        b=hIQCplKvSo4vUqlZsy4Xphwp/fROBMoZBLi3vSptAqrkpYpTPbQfgOJBFdj0vb/dfH
         RGvwLrq7IHbgI3/YgW/V1v2z/PNd3OMLJMDbwMxiYVNrmqWu3W2SLvhUOsoF3Kyg483x
         V4oCe9lMeB3XoxIAir9d6FwDE/cmTTBK2l53cnSYy4WMYYLzPquZ3vlHwVUPzpYg29Fw
         hIe7ZanvKTjMhpmSq1FGRISpFDr6sikrcSCBLJJ3jPrBMJfMpuQaks4H00urWc/EmvPR
         /0ElPuyOCK4QrRc6NnvIOhVb1xk6/S5LomjtHTe+jov7MLno4m9HhSjhwAPSczeYDPAC
         n92Q==
X-Gm-Message-State: AOJu0Yz9vouZXtyDDZcqfPud/D+yKj1kijgp9WM7vXbXYgpXj0JqH+m9
	2XEEh0ePFCKsMCktxplpzi0ql21wlwaneVY73Ujx2ASxaPYjkQMxArr9dbv5yg==
X-Gm-Gg: AeBDievotDwIYX9praCoI/mXKotpVFhptSti0tttRM/FB9hhM/fKorHEIKEBDCw6/Ax
	fAW4I6scVfu5SawOCj3i0On9feHvF6pTKcs5jZSKsg1lMeK2WVKRPg5KhtBxoCHUrHoxbVM0B4Z
	jlOhlPBxUUuhW4E577iwpKixQikf3LzGXojCJEmAlGl0IBGuCy+ga/aF25/ZyeShGi5IbLxdxmQ
	YMmNAP66kPWMiERsX08K0U2QGssS1ujkxr3wKcoi3zEan2Egzp2G5x7tkWrk1k+g+DxIZZ3aZSo
	O07WbOQ2lZhTkGSBYia5BlwI6pl/iKiD2lj8rU4lCVZydUg1dAGP/S9w3gIi3vaXHVfEIjwkQ2c
	8FQSP7v7SQPtV9vf79GwYGyoUmlw/SWTH88eh3MnquqzrBDWtkR2mV94Ti/wTg3bSeZrNbps9II
	XIzqUVukyjtfsFIhv6iM9jULQAoMs3IwAIDIeQzlTpFDrqzyp/uIt+M/QEakOcYCjCPL64yBnML
	bvv
X-Received: by 2002:a17:906:ef0c:b0:ba8:8094:f7af with SMTP id a640c23a62f3a-bc56cb26ef7mr362000766b.18.1778144354954;
        Thu, 07 May 2026 01:59:14 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 08/11] xen/riscv: rework G-stage mode handling
Date: Thu,  7 May 2026 10:58:47 +0200
Message-ID: <5a48ba01dad3a54b404524956fb39e7e3e673a93.1778140240.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778140240.git.oleksii.kurochko@gmail.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778144356-7E9888B7-399D1844/10/73395122804
X-purgate-type: spam
X-purgate-size: 15692

Rework G-stage mode handling to make the selected mode descriptor
reusable outside of p2m initialization, both for filling CPU nodes in
the device tree passed to dom0less guests and for per-domain G-stage
mode selection at domain creation time.

Promote gstage_modes[] from a local __initconst variable inside
gstage_mode_detect() to a file-scope static const array, and convert
max_gstage_mode from an embedded struct (assigned by value) to a global
const pointer into gstage_modes[]. This allows referencing both the mode
identifier and the mode name after init without copying the descriptor.
Remove get_max_supported_mode(); its callers now dereference
max_gstage_mode->mode directly.

Change struct p2m_domain::mode from an embedded gstage_mode_desc to a
const pointer into gstage_modes[], so each domain shares the descriptor
rather than carrying its own copy.

Adjust the gstage_modes[] entries in three ways:
 - Use lowercase names without the "x4" suffix (e.g. "sv39" instead of
   "Sv39x4"). The DT mmu-type binding [1] does not include the suffix,
   so the name can now be passed directly to the guest without
   transformation. The suffix is appended only in the diagnostic
   printk, where it remains informative.
 - Use "none" for Bare mode (HGATP_MODE_OFF) to match the DT binding.
 - Change paging_levels to represent the root page-table level index
   (i.e. total paging levels minus one) rather than the total count.
   P2M_ROOT_LEVEL() now returns the correct VPN index directly, without
   requiring callers to subtract one or use hardcoded offsets.

Add gstage_mode to xen_arch_domainconfig so the toolstack can
request a specific G-stage mode at domain creation time. Introduce
find_gstage_mode() to resolve a mode descriptor by HGATP_MODE_*,
capping the result at max_gstage_mode to prevent requesting a mode
the hardware does not support. Update p2m_init() to accept a
xen_domctl_createdomain pointer and call find_gstage_mode()
instead of hardcoding Sv39x4.

Add arch_parse_dom0less_node() in a new dom0less-build.c to read the
"mmu-type" DT property from a guest domain node and store it in
boot_domain::create_cfg.arch.gstage_mode, falling back to maximum
supported mode when the property is absent.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/riscv/cpus.yaml?h=v6.19-rc3#n82

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v5:
 - update the comment inside arch_parse_dom0less_node() before return 0;
 - Code style fixes.
 - Compare pointers instead of fields in p2m_init() as they should point to the
   same.
 - s/find_gstage_mode_by_bits/find_gstage_mode.
---
---
Changes in v4:
 - Stray blank after * in declaration of find_gstage_mode().
 - Refactor find_gstage_mode(). Now it is find_gstage_mode_by_bits().
 - Add __ro_after_init for static local variable m in p2m_init.
 - s/ char gstage_mode[8];/unsigned char gstage_mode; in struct vcpu_guest_context.
 - s/modes/gstage_modes in p2m.c.
 - Introduce P2M_EXTRA_BITS_AT_LEVEL and re-use P2M_ROOT_EXTRA_BITS to encode magic constant 2.
---
Changes in v3:
 - New patch.
---
---
 xen/arch/riscv/Makefile          |   1 +
 xen/arch/riscv/dom0less-build.c  |  71 ++++++++++++++++++
 xen/arch/riscv/include/asm/p2m.h |  18 +++--
 xen/arch/riscv/p2m.c             | 121 +++++++++++++++++++++----------
 xen/arch/riscv/vmid.c            |   2 +-
 xen/include/public/arch-riscv.h  |   5 ++
 6 files changed, 172 insertions(+), 46 deletions(-)
 create mode 100644 xen/arch/riscv/dom0less-build.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index eecdcbc76867..8f7fd625dddd 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -1,6 +1,7 @@
 obj-y += aplic.o
 obj-y += cpufeature.o
 obj-y += domain.o
+obj-$(CONFIG_DOM0LESS_BOOT) += dom0less-build.init.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += entry.o
 obj-y += extable.o
diff --git a/xen/arch/riscv/dom0less-build.c b/xen/arch/riscv/dom0less-build.c
new file mode 100644
index 000000000000..a683972e9235
--- /dev/null
+++ b/xen/arch/riscv/dom0less-build.c
@@ -0,0 +1,71 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/bootfdt.h>
+#include <xen/device_tree.h>
+#include <xen/init.h>
+
+#include <asm/p2m.h>
+
+int __init arch_parse_dom0less_node(struct dt_device_node *node,
+                                    struct boot_domain *bd)
+{
+    const char *mmu_type;
+    unsigned long bits;
+    const char *end;
+
+    if ( dt_property_read_string(node, "mmu-type", &mmu_type) )
+    {
+        dprintk(XENLOG_WARNING, "mmu-type property is missing in guest domain "
+                "node. %s will be used as fallback\n", max_gstage_mode->name);
+
+        bits = P2M_GFN_LEVEL_SHIFT(max_gstage_mode->paging_levels + 1);
+
+        goto out;
+    }
+
+    if ( !strcasecmp(mmu_type, "riscv,none") )
+    {
+        dprintk(XENLOG_ERR, "Bare mode isn't supported by Xen\n");
+
+        return -EOPNOTSUPP;
+    }
+
+    if ( strncasecmp(mmu_type, "riscv,sv", 8) )
+    {
+        dprintk(XENLOG_ERR, "mmu-type value \"%s\" is incorrect\n", mmu_type);
+
+        return -EINVAL;
+    }
+
+    bits = simple_strtoul(mmu_type + 8, &end, 10);
+    if ( (*end != '\0') || (end == mmu_type + 8) )
+    {
+        dprintk(XENLOG_ERR, "mmu-type value \"%s\" is incorrect\n", mmu_type);
+
+        return -EINVAL;
+    }
+
+ out:
+    if ( bits > (UINT8_MAX - P2M_ROOT_EXTRA_BITS) )
+    {
+        dprintk(XENLOG_ERR, "gstage addr bits value overflows uint8\n");
+
+        return -EINVAL;
+    }
+
+    /*
+     * The mmu-type property may specify any riscv,sv<N> string, but only the
+     * following are currently supported:
+     *  - riscv,sv32
+     *  - riscv,sv39
+     *  - riscv,sv48
+     *  - riscv,sv57
+     * Any other value will be rejected by find_gstage_mode().
+     *
+     * P2M_ROOT_EXTRA_BITS is added because for G-stage mode, GPAs are
+     * extended by that many bits.
+     */
+    bd->create_cfg.arch.gaddr_bits = bits + P2M_ROOT_EXTRA_BITS;
+
+    return 0;
+}
diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index 54ea67990f06..638c60ddc2f7 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -13,7 +13,7 @@
 
 #define P2M_ROOT_ORDER  (ilog2(GSTAGE_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)
 #define P2M_ROOT_PAGES  BIT(P2M_ROOT_ORDER, U)
-#define P2M_ROOT_LEVEL(p2m) ((p2m)->mode.paging_levels)
+#define P2M_ROOT_LEVEL(p2m) ((p2m)->mode->paging_levels)
 
 /*
  * According to the RISC-V spec:
@@ -32,10 +32,13 @@
  */
 #define P2M_LEVEL_ORDER(lvl) XEN_PT_LEVEL_ORDER(lvl)
 
-#define P2M_ROOT_EXTRA_BITS(p2m, lvl) (2 * ((lvl) == P2M_ROOT_LEVEL(p2m)))
+#define P2M_ROOT_EXTRA_BITS 2
+
+#define P2M_LEVEL_EXTRA_BITS(p2m, lvl) \
+    (P2M_ROOT_EXTRA_BITS * ((lvl) == P2M_ROOT_LEVEL(p2m)))
 
 #define P2M_PAGETABLE_ENTRIES(p2m, lvl) \
-    (BIT(PAGETABLE_ORDER + P2M_ROOT_EXTRA_BITS(p2m, lvl), UL))
+    (BIT(PAGETABLE_ORDER + P2M_LEVEL_EXTRA_BITS(p2m, lvl), UL))
 
 #define P2M_TABLE_OFFSET(p2m, lvl) (P2M_PAGETABLE_ENTRIES(p2m, lvl) - 1UL)
 
@@ -55,6 +58,8 @@ struct gstage_mode_desc {
     char name[8];
 };
 
+extern const struct gstage_mode_desc *max_gstage_mode;
+
 /* Per-p2m-table state */
 struct p2m_domain {
     /*
@@ -68,7 +73,7 @@ struct p2m_domain {
     /* The root of the p2m tree. May be concatenated */
     struct page_info *root;
 
-    struct gstage_mode_desc mode;
+    const struct gstage_mode_desc *mode;
 
     /* Back pointer to domain */
     struct domain *domain;
@@ -215,9 +220,10 @@ static inline bool arch_acquire_resource_check(struct domain *d)
 }
 
 void guest_mm_init(void);
-unsigned char get_max_supported_mode(void);
 
-int p2m_init(struct domain *d);
+struct xen_domctl_createdomain;
+
+int p2m_init(struct domain *d, const struct xen_domctl_createdomain *config);
 
 static inline void p2m_write_lock(struct p2m_domain *p2m)
 {
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index adcf292a7092..f889978cf754 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -45,12 +45,28 @@ struct p2m_pte_ctx {
     unsigned int level;          /* Paging level at which the PTE resides. */
 };
 
-static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
-    .mode = HGATP_MODE_OFF,
-    .paging_levels = 0,
-    .name = "Bare",
+/* Values should be sorted by ->mode in this array */
+static const struct gstage_mode_desc gstage_modes[] = {
+    /*
+     * Based on the RISC-V spec:
+     *   Bare mode is always supported, regardless of SXLEN.
+     *   When SXLEN=32, the only other valid setting for MODE is Sv32.
+     *   When SXLEN=64, three paged virtual-memory schemes are defined:
+     *   Sv39, Sv48, and Sv57.
+     */
+    { HGATP_MODE_OFF,    0, "none" },
+#ifdef CONFIG_RISCV_32
+    { HGATP_MODE_SV32X4, 1, "sv32" },
+#else
+    { HGATP_MODE_SV39X4, 2, "sv39" },
+    { HGATP_MODE_SV48X4, 3, "sv48" },
+    { HGATP_MODE_SV57X4, 4, "sv57" },
+#endif
 };
 
+const struct gstage_mode_desc *__ro_after_init max_gstage_mode =
+    &gstage_modes[0];
+
 static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
 
 static inline void p2m_free_metadata_page(struct p2m_domain *p2m,
@@ -63,11 +79,6 @@ static inline void p2m_free_metadata_page(struct p2m_domain *p2m,
     }
 }
 
-unsigned char get_max_supported_mode(void)
-{
-    return max_gstage_mode.mode;
-}
-
 /*
  * If anything is changed here, it may also require updates to
  * p2m_{get,set}_type().
@@ -148,41 +159,24 @@ static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
 
 static void __init gstage_mode_detect(void)
 {
-    static const struct gstage_mode_desc modes[] __initconst = {
-        /*
-         * Based on the RISC-V spec:
-         *   Bare mode is always supported, regardless of SXLEN.
-         *   When SXLEN=32, the only other valid setting for MODE is Sv32.
-         *   When SXLEN=64, three paged virtual-memory schemes are defined:
-         *   Sv39, Sv48, and Sv57.
-         */
-#ifdef CONFIG_RISCV_32
-        { HGATP_MODE_SV32X4, 2, "Sv32x4" }
-#else
-        { HGATP_MODE_SV39X4, 3, "Sv39x4" },
-        { HGATP_MODE_SV48X4, 4, "Sv48x4" },
-        { HGATP_MODE_SV57X4, 5, "Sv57x4" },
-#endif
-    };
-
-    for ( unsigned int mode_idx = ARRAY_SIZE(modes); mode_idx-- > 0; )
+    for ( unsigned int mode_idx = ARRAY_SIZE(gstage_modes); mode_idx-- > 0; )
     {
-        unsigned long mode = modes[mode_idx].mode;
+        unsigned long mode = gstage_modes[mode_idx].mode;
 
         csr_write(CSR_HGATP, MASK_INSR(mode, HGATP_MODE_MASK));
 
         if ( MASK_EXTR(csr_read(CSR_HGATP), HGATP_MODE_MASK) == mode )
         {
-            max_gstage_mode = modes[mode_idx];
+            max_gstage_mode = &gstage_modes[mode_idx];
 
             break;
         }
     }
 
-    if ( max_gstage_mode.mode == HGATP_MODE_OFF )
+    if ( max_gstage_mode->mode == HGATP_MODE_OFF )
         panic("Xen expects that G-stage won't be Bare mode\n");
 
-    printk("Max supported G-stage mode is %s\n", max_gstage_mode.name);
+    printk("Max supported G-stage mode is %sx4\n", max_gstage_mode->name);
 
     csr_write(CSR_HGATP, 0);
 
@@ -283,7 +277,7 @@ static void clear_and_clean_page(struct page_info *page, bool clean_dcache)
 unsigned long construct_hgatp(const struct p2m_domain *p2m, uint16_t vmid)
 {
     return MASK_INSR(mfn_x(page_to_mfn(p2m->root)), HGATP_PPN_MASK) |
-           MASK_INSR(p2m->mode.mode, HGATP_MODE_MASK) |
+           MASK_INSR(p2m->mode->mode, HGATP_MODE_MASK) |
            MASK_INSR(vmid, HGATP_VMID_MASK);
 }
 
@@ -331,8 +325,35 @@ static int p2m_alloc_root_table(struct p2m_domain *p2m)
     return 0;
 }
 
-int p2m_init(struct domain *d)
+static const struct gstage_mode_desc *find_gstage_mode(
+    unsigned char gpa_bits)
+{
+    ASSERT(gstage_modes[0].mode == HGATP_MODE_OFF);
+
+    for ( unsigned int i = 1; i < ARRAY_SIZE(gstage_modes); i++ )
+    {
+        unsigned int lvl = gstage_modes[i].paging_levels + 1;
+        unsigned int bits = P2M_GFN_LEVEL_SHIFT(lvl) + P2M_ROOT_EXTRA_BITS;
+
+        if ( gpa_bits == bits )
+        {
+            if ( gstage_modes[i].mode > max_gstage_mode->mode )
+                return NULL;
+            return &gstage_modes[i];
+        }
+    }
+
+    return NULL;
+}
+
+int p2m_init(struct domain *d, const struct xen_domctl_createdomain *config)
 {
+    /*
+     * TODO: This static is a temporary constraint: all guests must use the
+     * same MMU mode because p2m_gpa_bits is not yet per-domain.
+     * Drop this once per-domain p2m_gpa_bits is introduced.
+     */
+    static const struct gstage_mode_desc __ro_after_init *m = &gstage_modes[0];
     struct p2m_domain *p2m = p2m_get_hostp2m(d);
 
     /*
@@ -341,6 +362,33 @@ int p2m_init(struct domain *d)
      */
     p2m->domain = d;
 
+    if ( !config )
+    {
+        dprintk(XENLOG_ERR, "NULL config is passed\n");
+        return -EINVAL;
+    }
+
+    p2m->mode = find_gstage_mode(config->arch.gaddr_bits);
+
+    if ( !p2m->mode )
+    {
+        dprintk(XENLOG_ERR,
+                "Unsupported or unavailable gstage addr bits: %u\n",
+                config->arch.gaddr_bits);
+
+        return -EINVAL;
+    }
+
+    if ( m->mode == HGATP_MODE_OFF )
+        m = p2m->mode;
+
+    if ( m != p2m->mode )
+    {
+        dprintk(XENLOG_ERR,
+                "Mode should be the same for all guests at the moment\n");
+        return -EINVAL;
+    }
+
     paging_domain_init(d);
 
     rwlock_init(&p2m->lock);
@@ -362,11 +410,6 @@ int p2m_init(struct domain *d)
 #   error "Add init of p2m->clean_dcache"
 #endif
 
-    /* TODO: don't hardcode used for a domain g-stage mode. */
-    p2m->mode.mode = HGATP_MODE_SV39X4;
-    p2m->mode.paging_levels = 2;
-    safe_strcpy(p2m->mode.name, "Sv39x4");
-
     return 0;
 }
 
@@ -1304,7 +1347,7 @@ static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
 {
     unsigned int level = P2M_ROOT_LEVEL(p2m);
     unsigned int gfn_limit_bits =
-        P2M_LEVEL_ORDER(level + 1) + P2M_ROOT_EXTRA_BITS(p2m, level);
+        P2M_LEVEL_ORDER(level + 1) + P2M_LEVEL_EXTRA_BITS(p2m, level);
     pte_t entry, *table;
     int rc;
     mfn_t mfn = INVALID_MFN;
diff --git a/xen/arch/riscv/vmid.c b/xen/arch/riscv/vmid.c
index 8fbcd500f24d..11c7e9d6d6c8 100644
--- a/xen/arch/riscv/vmid.c
+++ b/xen/arch/riscv/vmid.c
@@ -52,7 +52,7 @@ static DEFINE_PER_CPU(struct vmid_data, vmid_data);
 static unsigned int vmidlen_detect(void)
 {
     unsigned int vmid_bits;
-    unsigned char gstage_mode = get_max_supported_mode();
+    unsigned char gstage_mode = max_gstage_mode->mode;
 
     /*
      * According to the RISC-V Privileged Architecture Spec:
diff --git a/xen/include/public/arch-riscv.h b/xen/include/public/arch-riscv.h
index 360d8e6871ba..1990a1eb748c 100644
--- a/xen/include/public/arch-riscv.h
+++ b/xen/include/public/arch-riscv.h
@@ -56,6 +56,11 @@ typedef struct vcpu_guest_context vcpu_guest_context_t;
 DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
 
 struct xen_arch_domainconfig {
+    /*
+     * G-stage GPA address width in bits.
+     * Valid values: 34 (sv32x4), 41 (sv39x4), 50 (sv48x4), 59 (sv57x4).
+     */
+    uint8_t gaddr_bits;
 };
 
 #endif
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 08:59:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:59:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302342.1576351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZj-0004BW-Jr; Thu, 07 May 2026 08:59:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302342.1576351; Thu, 07 May 2026 08:59:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZj-00048C-3N; Thu, 07 May 2026 08:59:19 +0000
Received: by outflank-mailman (input) for mailman id 1302342;
 Thu, 07 May 2026 08:59:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKuZh-0003zG-Ue
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:59:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuZh-002yCX-BG
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:59:17 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5464-bab6-0a2a0a5309dd-0a2a4503ea28-6
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:17 +0200
Received: from [209.85.218.45] (helo=mail-ej1-f45.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5465-672d-0a2a45030019-d155da2dc483-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:17 +0200
Received: by mail-ej1-f45.google.com with SMTP id
 a640c23a62f3a-b8f9568e074so89229266b.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:59:17 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc81d5e9583sm57549966b.17.2026.05.07.01.59.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 May 2026 01:59:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778144356; x=1778749156; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aBwbjhvethRi23b0lhhRx6kHsUNIa/c7SiSbkmEzovg=;
        b=pZuoUrET3WFF/aLSI4tBB4MvpisDkk3HZnrWucWF5IiHP3vOB9ysm6a90p/bduvToO
         KZ3vkQtTj5O+CC3Y1Hn1w2FPkdGDbL5x0PAT+9cm2BtErUwGOH5wR8tA+b8XXaHqTzLk
         YgMBwo9gYpHSkTNMyOjKC1qGXpSyQUGpY2dVVuqHjLDwv1Xn34Z7EFYEgPUE4puCSnKt
         SDKzZgaBM7LNVRzF/JUC6wqLpg4XFQ35t96HA7pOYG6cZc0R2tsPJb+IZKEZnAGuaZVC
         VRnh/pOQuHZ657pJiDoEqJhlVnwX+cHb2g3jUO5LOu9Xh3eeBJ5U5wT3CNlyR+ykHfzH
         alMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778144356; x=1778749156;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=aBwbjhvethRi23b0lhhRx6kHsUNIa/c7SiSbkmEzovg=;
        b=VJyMIsU0VTsvMob3kZlGnvdzQfx/PrHwtb55aL58x8jn9QJHbt8AYF3RVMHWDRiKAL
         +dCXcTsLEgkkEZ7OH5IG5H01jlvzSFE6uf334ioZKoRg9bWXWYEDViw+M9CGvO+KyYkS
         vSPklRfwjmC7piV1a1jyWO1X3rKbtHmXLJcEuZ8ALf0ZGCcCvpyNZLXYQ8080H2VvDqP
         YcMp25ODBuxQjKjyjE8AAjydERKBllgQYrCSxacdqEKTF138+KgPwJKm4/O72m7/cbxf
         hfBfAW/n1ToJPFq2k0qALxINakJA7L24kRiksxL5GuRpGwAZV/w71m1AOxfi+uZwt0RZ
         XS5A==
X-Gm-Message-State: AOJu0Ywj10ksI9zn58xULwUEOjrQ2TFX5NG6V7TKl4tsHuvfRsMQeq+u
	fuA1fIz+nDGOtq+lyYy7L80TJzVdaO9jHdNZf5nV7gl/s6Abb0MPR+Em12x5Vg==
X-Gm-Gg: AeBDiesipUzNcP6rGpdqX4EnJK3yN9K9JEjY/N2pucSoXm8xgI5QR5UEKyKg3S9VE0M
	7rOITf8RhP65KePcjbnKWOYrl+4h1enEOIH7HK60WgDF0GIx+yQHFqkz3QHILNpUXq9Nt0pvSQc
	yf7tjFLAe5u4iLRAMgnIBvIinqTHDYMw2gJfwzyTIkD4w7z1dL76tvF2n0uklUpjGJIMLbmrkUV
	6dpzpoCPiStQgGkS3id6mcWZPjunXWUDgEp/vlaaSexf71r+5fQWAZA8RV+weMsvTUHRLRUocN2
	hB90FoonmiJy29o4NRs2moEZmwscr2bWmQvgoHsvK+JbdPLIc4J6s8S6yywSdKHMFJJH76u/FJr
	KqLJAEXSYPBVyq6s7BzLeO4cbPBT0c9PXhuf0ADjukK6ZP+C54+TBycFds4pcU9dICfROK27AVS
	N1X7z4ojRoAi688qVaLhkc0YXWb6842kcDizGgkNOfkKvJMnS3vkkU+jOoqU0u+GG/7TK1gdyMo
	yJL
X-Received: by 2002:a17:907:1c01:b0:bc3:a4cf:aecd with SMTP id a640c23a62f3a-bc56c520611mr406236566b.14.1778144356168;
        Thu, 07 May 2026 01:59:16 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 09/11] xen/riscv: introduce p2m_gpa_bits
Date: Thu,  7 May 2026 10:58:48 +0200
Message-ID: <7c04588686638f3c0c53df4b8fd8645991009bff.1778140240.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778140240.git.oleksii.kurochko@gmail.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1778144357-41595938-FB7A37CB/10/73395122804
X-purgate-type: spam
X-purgate-size: 3270

common/device-tree/domain-build.c uses p2m_gpa_bits to determine the
upper bound of the GPA space when searching for unused regions, so it
must be defined when CONFIG_DOMAIN_BUILD_HELPERS=y.

The variable is initialised to PADDR_BITS and narrowed in p2m_init() to
the GPA width of the selected G-stage mode, allowing an external entity
(e.g. an IOMMU) to restrict it further if needed.

p2m_gpa_bits is a global rather than a per-domain value, which is
acceptable for now because all domains are required to use the same
G-stage MMU mode, as dom0less common code allocates it per all
domains.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v5:
 - Nothing changed. Only rebase.
---
Changes in v4:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Update initialization of p2m_gpa_bits and the comment above.
 - Rework how p2m_gpa_bits is limited.
 - Update the commit message.
---
Changes in v2:
 - New patch.
---
---
 xen/arch/riscv/include/asm/p2m.h |  3 +++
 xen/arch/riscv/p2m.c             | 15 +++++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index 638c60ddc2f7..0d1dace1a0d8 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -47,6 +47,9 @@
 #define P2M_LEVEL_MASK(p2m, lvl) \
     (P2M_TABLE_OFFSET(p2m, lvl) << P2M_GFN_LEVEL_SHIFT(lvl))
 
+/* Holds the bit size of GPAs in p2m tables */
+extern unsigned int p2m_gpa_bits;
+
 #define paddr_bits PADDR_BITS
 
 /* Get host p2m table */
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index f889978cf754..703b9f4d2540 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -11,6 +11,8 @@
 #include <xen/sections.h>
 #include <xen/xvmalloc.h>
 
+#include <public/domctl.h>
+
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
 #include <asm/flushtlb.h>
@@ -67,6 +69,12 @@ static const struct gstage_mode_desc gstage_modes[] = {
 const struct gstage_mode_desc *__ro_after_init max_gstage_mode =
     &gstage_modes[0];
 
+/*
+ * Set to the maximum configured support for GPA bits, so the number of GPA
+ * bits can be restricted by an external entity (e.g. IOMMU).
+ */
+unsigned int __ro_after_init p2m_gpa_bits = PADDR_BITS;
+
 static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
 
 static inline void p2m_free_metadata_page(struct p2m_domain *p2m,
@@ -355,6 +363,7 @@ int p2m_init(struct domain *d, const struct xen_domctl_createdomain *config)
      */
     static const struct gstage_mode_desc __ro_after_init *m = &gstage_modes[0];
     struct p2m_domain *p2m = p2m_get_hostp2m(d);
+    unsigned int gpa_bits;
 
     /*
      * "Trivial" initialisation is now complete.  Set the backpointer so the
@@ -410,6 +419,12 @@ int p2m_init(struct domain *d, const struct xen_domctl_createdomain *config)
 #   error "Add init of p2m->clean_dcache"
 #endif
 
+    gpa_bits = P2M_GFN_LEVEL_SHIFT(p2m->mode->paging_levels + 1) +
+               P2M_ROOT_EXTRA_BITS;
+
+    if ( gpa_bits < p2m_gpa_bits )
+        p2m_gpa_bits = gpa_bits;
+
     return 0;
 }
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 08:59:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:59:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302344.1576367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZl-0004qn-V0; Thu, 07 May 2026 08:59:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302344.1576367; Thu, 07 May 2026 08:59:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZl-0004q1-Ka; Thu, 07 May 2026 08:59:21 +0000
Received: by outflank-mailman (input) for mailman id 1302344;
 Thu, 07 May 2026 08:59:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKuZj-0004BH-EO
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:59:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuZi-005UsV-RG
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:59:18 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc545f-e002-0a2a0a5209dd-0a2a4501ca64-46
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:18 +0200
Received: from [209.85.208.46] (helo=mail-ed1-f46.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5466-c1f2-0a2a45010019-d155d02ecdcd-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:18 +0200
Received: by mail-ed1-f46.google.com with SMTP id
 4fb4d7f45d1cf-67c1e0229acso818406a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:59:18 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc81d5e9583sm57549966b.17.2026.05.07.01.59.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 May 2026 01:59:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778144358; x=1778749158; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=x4xx6/9HjQw0qDDPVFVAifvL6T1Uk5lWG9wv0V6Tryc=;
        b=arfaYfjsPY0xibppCmeb4yALQvEfJo5UbdgLTT9a4KcOLx6jj8PA9l4o38QXhvJvDB
         LRBKkUAXYYIDwYy/A0rxHosR/naXy0Fzh6r+bp/YO1Q4Av3b7J/GmT6nTcT8vPsYcUMo
         pkP8Z480AIgoxtmXizFhf4Rc4kayEZKKpEOl/dD00VeuwFTBUu12nT109YH4yLR9UGZN
         MQwvsQy0urlgGUsE0WvQTrL4p7Ld5Y9hskWIfe0hpT+j+E4Ba78SlTLz8JlXNMnNKDVV
         oIp2Nu4cHVwzuPi9f/8eff6nM3vhrfR/r2ZHzpqKP8NWLe8dTuo3YA4o5Sm9g9qNB/J0
         DqTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778144358; x=1778749158;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=x4xx6/9HjQw0qDDPVFVAifvL6T1Uk5lWG9wv0V6Tryc=;
        b=VSHczLp72NOjb1/r/zD2uBspNDz8ggO2t7LnyCqGz6g1LNAvldjCND7ojPSCaAhb7h
         u6CHRI+SxSYPe5bA9d9RSAkWrztxCZ/XTEeA4k0NvkeVv7hXdZqA5LJlQbZR+Inyvl4Q
         SPrJsMI5p1td5UHeIR+GMEd9TvE3KH3V4LmXXKl3HCC6iszyPDqzk7bU0HgUPrfr5veD
         0pGz5CwhoZVYvR+SECwP8Io22y/QB5T6ulHJaZeYDxHZEn73hAQuQGfdotsmDk404omM
         N/0Is/7nQfjIdULNmZZW6nfvFfPItHxkzZBXAtO0QED264uGiUXdfuSv4kVEoXpEGFTJ
         K2Fg==
X-Gm-Message-State: AOJu0YySDb9GhX2g9ipj4ndCS/378sd+GyQVN6A4hl4qQMBwOJSXSTVG
	xp9oMPdJTxHM+N+N4AALd90yXQcXsvMJplooEhVxVU9wlqkC5xENBDC7NAmKBg==
X-Gm-Gg: AeBDiesNM1cwXQIhJsBi0R1RqRMkn10Gic30KDpaNCj9FkNnUyQTabEvMACLZCn9hjM
	gu4XuNkgj3/Eu5GlUIE3pk9L+3QQDYCieOFiyRizBUDeyDO5qcmbVfXcRjdual3G1DFSW+9VRxb
	Q3C/RLhqnnyJLBpaA4OtrBUmKyI6m8NgNvUXsNolyLTLhr3m1ZW+EtLGbOnY681WhwTEq7+rotB
	wbaF8EEn6EhFaByDYX/JWHUXsBCMN29c+ggWbYj1yEZwwfWLRVGU96M4xPAYX6LO6y8umGow7tp
	jyePTBlvgOOsSo4WnlbKX1Xhag/pPS4NCIf0H+jvJz1/NQXzjyMsiNfPHvedNwxThZoKJW1uJlS
	51uO4OlOPk1q2Oam2f2zQrXFdPsoNAxcOYrDGXkZCA1FE8nvOpGuJhWZWs0CDWJ9ORk0WdFksWC
	UfZe2y3R80KMTU84jiezBs/Rby7Egf/LM32zTKTPynGbbZr5cB71OQ5cJkWRQYQaY3xf+HNYeqS
	2EO
X-Received: by 2002:a17:907:c06:b0:b9c:9594:e00 with SMTP id a640c23a62f3a-bc56aa4283emr413226166b.1.1778144357643;
        Thu, 07 May 2026 01:59:17 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 10/11] xen/riscv: add definition of guest RAM banks
Date: Thu,  7 May 2026 10:58:49 +0200
Message-ID: <9c04bfe7d7f5510e164567c35e6ea223509f45d5.1778140240.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778140240.git.oleksii.kurochko@gmail.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778144358-AC457FF4-4B987711/10/73395122804
X-purgate-type: spam
X-purgate-size: 3241

The dom0less solution uses defined RAM banks as compile-time constants,
so introduce macros to describe guest RAM banks.

The reason for 2 banks is that there is typically always a use case for
low memory under 4 GB, but the bank under 4 GB ends up being small because
there are other things under 4 GB it can conflict with (interrupt
controller, PCI BARs, etc.). So a second bank is added above that MMIO
region (starting at 8 GiB) to provide the remaining RAM; the gap between
the two banks also exercises code paths handling discontiguous memory.
For Sv32 guests (34-bit GPA, 16 GiB addressable), bank0 provides 2 GB
(2–4 GB) and the first 8 GB of bank1 (8–16 GB) is accessible.

Extended regions are useful for RISC-V: they could be used to provide a
"space" for Linux to map grant mappings.

Despite the fact that for every guest MMU mode the GPA could be up
to 56 bits wide (except Sv32 whose GPA is 34 bits), the combined size
of both banks is limited to 1018 GB as it is more than enough for most
use cases.

Add inclusion of asm/guest-layout.h to asm/domain.h to make dom0less
common code build happy.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v5:
 - Nothing changed. Only rebase.
---
Changes in v4:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Move GUEST_RAM*-related defines to asm/p2m.h instead of public header.
---
Changes in v2:
 - New patch.
---
---
 xen/arch/riscv/include/asm/domain.h       |  1 +
 xen/arch/riscv/include/asm/guest-layout.h | 23 +++++++++++++++++++++++
 2 files changed, 24 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/guest-layout.h

diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 6c48bf13111d..6044ce0feee0 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -7,6 +7,7 @@
 #include <xen/xmalloc.h>
 #include <public/hvm/params.h>
 
+#include <asm/guest-layout.h>
 #include <asm/p2m.h>
 #include <asm/vtimer.h>
 
diff --git a/xen/arch/riscv/include/asm/guest-layout.h b/xen/arch/riscv/include/asm/guest-layout.h
new file mode 100644
index 000000000000..68d95a09394c
--- /dev/null
+++ b/xen/arch/riscv/include/asm/guest-layout.h
@@ -0,0 +1,23 @@
+#ifndef ASM_RISCV_GUEST_LAYOUT_H
+#define ASM_RISCV_GUEST_LAYOUT_H
+
+#include <public/xen.h>
+
+#define GUEST_RAM_BANKS   2
+
+/*
+ * The way to find the extended regions (to be exposed to the guest as unused
+ * address space) relies on the fact that the regions reserved for the RAM
+ * below are big enough to also accommodate such regions.
+ */
+#define GUEST_RAM0_BASE   xen_mk_ullong(0x80000000) /* 2GB of low RAM @ 2GB */
+#define GUEST_RAM0_SIZE   xen_mk_ullong(0x80000000)
+
+#define GUEST_RAM1_BASE   xen_mk_ullong(0x0200000000) /* 1016 GB of RAM @ 8GB */
+#define GUEST_RAM1_SIZE   xen_mk_ullong(0xFE00000000)
+
+/* TODO: allocate these all dynamically */
+#define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE, GUEST_RAM1_BASE }
+#define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE, GUEST_RAM1_SIZE }
+
+#endif /* ASM_RISCV_GUEST_LAYOUT_H */
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 08:59:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:59:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302347.1576373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZm-0004w9-MA; Thu, 07 May 2026 08:59:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302347.1576373; Thu, 07 May 2026 08:59:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKuZm-0004tg-3Y; Thu, 07 May 2026 08:59:22 +0000
Received: by outflank-mailman (input) for mailman id 1302347;
 Thu, 07 May 2026 08:59:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKuZk-0004Yz-NS
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:59:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuZk-00CM51-3n
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:59:20 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc545c-5cb7-0a2a0a5109dd-0a2a4507c4c0-32
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:20 +0200
Received: from [209.85.218.43] (helo=mail-ej1-f43.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5467-229c-0a2a45070019-d155da2bac29-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:59:20 +0200
Received: by mail-ej1-f43.google.com with SMTP id
 a640c23a62f3a-bc264a50e7fso115628866b.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 01:59:19 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc81d5e9583sm57549966b.17.2026.05.07.01.59.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 May 2026 01:59:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778144359; x=1778749159; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZH2tI1zdc95RHRTl/e+FRWBkxeCQsomrrdcbdqDhv6w=;
        b=Kmg59Z7NYwjfk0BcYV1oCU1rHGF0tbMLkGA4BmM1QqI4SjGRT5MS8zpAVIGIoDdaAi
         QxiIet1S+VAiUy41AzljQ7lbhrP9mjqGA1ddsHtzjsomnE6OGHk7tNJvzfaUpmbaA2GK
         rnJWsilIrRbzJKyG3AAO4pJXJdBbuognIHGdIbqmE7QVTutRw75eU7Mvc/Md1e+iE/ML
         KbiNTz1F/sJ4nMioHIAkx/Q2SWRlgSQfYfjr6LYTVKdRnEpqqT8lPUn1GSuCoIdCgTD6
         50EpP2pqPCQGrLleyYNoRe8ZZIVFFocRbD0ao9Fz6Yfq/Pr1G3182NqYAuvX6yDROhYn
         TjnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778144359; x=1778749159;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ZH2tI1zdc95RHRTl/e+FRWBkxeCQsomrrdcbdqDhv6w=;
        b=Sg9vhZ5tTDxl6cDg4gDHVd0dsD5wKVfeOme3ffuW89X9PN7PBkiFtw0e9kA47UNRiR
         oEbf0POPiVONY9G/RoC5JAfRQuu5S9bQ/UTF1k4St1ELc8d/Ck0C4B2qTXHNxwDgCiYS
         htkvXhG6knQwJQ2RlmvCHBCBrcNtzGVc1T91mP8oyHSQ3994lgcNIPsvDvvcSc7PKrTr
         ZM/IhS6P7zsK1gkM6CCLAyLYYlJqjR+0mBjmEnSXXu5mizgjqTNXzh//p8RW17vqt5rb
         iXSt+TTJV8saoOlsfEM29pf8fjHJlMdLmeHs1Ngkhv9tg97nEh3c3YoiID8kDdaiHCz6
         6VoA==
X-Gm-Message-State: AOJu0YzT+ePsTvgFyNBwzG5hh3UuymL7br3YhHB4FYZ5ZG+mq/RTtMpJ
	wrhByrsbpjLIgJvXgI/FY+HKfYqlYacj5/O4kXSHfMqP/eBBVPqAUspwnjJq7w==
X-Gm-Gg: AeBDiesO/zTrrbelNO3qssTU95XZIPhh0C06tFbiIJAhhx1DN5Qdou1q/zRCpGObx85
	l9mxeyjBlool0oQn+4W3EHXdyhzOZEq9O7iF8J6lvty2mQW82T80zHX2vlOiYlx1mBCwPwNeD5c
	vBPD9rXv3OZjt/kxMTD9+kb9PDR9JFGg4LmMku3T4XiqEX8vhlEi1Ccx05vpveOXqvSRpwHjdOK
	HcGRMqBl5bVfbGWyEZ+XwtDypgkYvsQ+55bCCGeHZYsIhNvsL99RRQgKZpbKJ/sJb8R0SMrmCl4
	+oauQ5Q8tE1h9TOyXMucP6qq9XUghfsCiiC6Cvzn/ru3m/cXlktJanTI2Zq3aPjJiqheWQD0dlb
	iawcIdZBseGr8qYWDzEVAo00+ZBDVshFj6rQMWuPciVf6XCx0qvkH/yGBomYozC3YTtowVQoymH
	PEo+X5lHkMHwtG02+S1ov2+wyjtMLjCgwIaCu2oIedZlXSmcTMjR69HKPxq7Rt1onOgzkBauM7p
	mvO
X-Received: by 2002:a17:907:25cd:b0:bc6:78eb:dbc0 with SMTP id a640c23a62f3a-bc678ebdc7bmr211967766b.4.1778144358983;
        Thu, 07 May 2026 01:59:18 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 11/11] xen/riscv: enable DOMAIN_BUILD_HELPERS
Date: Thu,  7 May 2026 10:58:50 +0200
Message-ID: <4e9025c3f299f56664e25db5e5f6d198f74177b3.1778140240.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778140240.git.oleksii.kurochko@gmail.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1778144360-28678C48-83882A4E/10/73395122804
X-purgate-type: spam
X-purgate-size: 914

Everything is ready to enable DOMAIN_BUILD_HELPER which are necessary
for dom0less common code. So enable it.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4-v5:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Move introduction of p2m_ipa_bits to separate patch.
 - Move to separate patch introduction of guest banks constansts.
---
---
 xen/arch/riscv/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index a5e87c1757f7..41426c205292 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -1,5 +1,6 @@
 config RISCV
 	def_bool y
+	select DOMAIN_BUILD_HELPERS
 	select FUNCTION_ALIGNMENT_16B
 	select GENERIC_BUG_FRAME
 	select GENERIC_UART_INIT
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 08:59:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 08:59:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302296.1576385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKua3-0007JD-PR; Thu, 07 May 2026 08:59:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302296.1576385; Thu, 07 May 2026 08:59:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKua3-0007J0-LH; Thu, 07 May 2026 08:59:39 +0000
Received: by outflank-mailman (input) for mailman id 1302296;
 Thu, 07 May 2026 08:38:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Zhao.Jiaqing@amd.com>) id 1wKuFG-0006TL-4Q
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:38:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKuFF-00Bjds-7A
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:38:09 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Zhao.Jiaqing@amd.com>)
 id 69fc4f70-e002-0a2a0a5209dd-0a2a4507acb0-4
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:38:08 +0200
Received: from [40.93.198.52]
 (helo=CY7PR03CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Zhao.Jiaqing@amd.com>)
 id 69fc4f6e-229c-0a2a45070019-285dc6341e7b-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:38:08 +0200
Received: from DSWPR12MB999151.namprd12.prod.outlook.com (2603:10b6:8:36b::21)
 by PH7PR12MB7020.namprd12.prod.outlook.com (2603:10b6:510:1ba::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.16; Thu, 7 May
 2026 08:38:02 +0000
Received: from DSWPR12MB999151.namprd12.prod.outlook.com
 ([fe80::1d57:8e0c:c16d:15e2]) by DSWPR12MB999151.namprd12.prod.outlook.com
 ([fe80::1d57:8e0c:c16d:15e2%5]) with mapi id 15.20.9870.023; Thu, 7 May 2026
 08:38:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZtDv33+SiDfMdsHdf0pW4kImxsxDlxl9vmKJ9TalN81w4TBOGSbIhFh7ZVU6q6SR5fTlFWfBVPYoA1bAKDOVHwE1QnzFX7PeoUalXAG0U7Ilaqwf1ld7pb1TmaBNvYHWYSrEECWCQGaQlv7h0QBvNifevItucB3e2enzaCejszvfJLJXYc+l4+d9yyoDmordUI8BFmjmc3Gw1adljQezCS61guzlblWM2RhnDvKEfkNRbgCLDYV1d7fxEjxLwcgl/tM0/VX33iPIrfRBfB2pIvADzytkJkfVJnAKll3jfseexNJPMHGvcEpf/Q0oGACOHxN+mn5OBGevni8tNqFtAA==
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=xS59B/GMJw0Zpz6SzS4Qy4tfXnjcb9uz8yPFcu81sbo=;
 b=g+S4wtR5ObEM+LBeonTkLpWlWYLUUXDx7vuLOVoSF8RX8jJMOwB2Sz6QY0C/SzpdItFexMqOGV1pijzlTcS0n55pmlb/QprJuSl7TzdWeXUqZzP8EZaUwyrz5PzcQaaoPvDz54jA73PNvPaSi6S9pNlW4W/pfTGD42dezlW3aJvuO1LYtmEjDyRobJ5P4qM2IuiA9pM6wNjqFWR+m4oWVr6QX2wNyY5a9pP06fGSQvqOEtg4PrDXVZMnBXVzMSq5YMhMEilmhjPkYlnfX+c/k6PJTvkyVSRdAd8t4xb878YIGu7KEFT0Ys+5XFp/1R4KXskRPgvHNTbKvmNNalnY4A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xS59B/GMJw0Zpz6SzS4Qy4tfXnjcb9uz8yPFcu81sbo=;
 b=ZKXTYsYgvW+YxOtzGXFePIQNUUGnhEwEgoMKkvxufq5222zaAlQMVrTvEcta2G/FpXtJ9hr1d+Xje+eUAXux3ggG2EiJbrWAvFCp/RfilKAdc5roiDDysuBHp+9cZOJOMMBu0PKriPV6NMblmytBH7uvVIuOmIw7/Zf4ZP8ARqU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <3531c9e1-97a8-42ab-aae7-4cfa8976f443@amd.com>
Date: Thu, 7 May 2026 16:37:43 +0800
User-Agent: Mozilla Thunderbird
From: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
Subject: Re: [PATCH v1 0/2] x86/amd_node: harden amd_smn_init() against Xen
 dom0 topology
To: Penny Zheng <penny.zheng@amd.com>, x86@kernel.org
Cc: ray.huang@amd.com, Jason.Andryuk@amd.com, stefano.stabellini@amd.com,
 Mario Limonciello <mario.limonciello@amd.com>,
 Yazen Ghannam <yazen.ghannam@amd.com>, Thomas Gleixner <tglx@kernel.org>,
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20260506055528.476493-1-penny.zheng@amd.com>
Content-Language: en-US
In-Reply-To: <20260506055528.476493-1-penny.zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SI2PR01CA0026.apcprd01.prod.exchangelabs.com
 (2603:1096:4:192::16) To DSWPR12MB999151.namprd12.prod.outlook.com
 (2603:10b6:8:36b::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DSWPR12MB999151:EE_|PH7PR12MB7020:EE_
X-MS-Office365-Filtering-Correlation-Id: 9abeb528-4783-4dd5-c920-08deac13f303
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	gYhbcg2oCpstSz2cyv9rrQtdfvuS85VsTKijLD2mAXy5uu3o4zaL/qjGAcBJZdqeNqCVAGRSVHjxVVjYgxsjB9+Yw6sXnT3Ytx9409hFKdyRLJpw80MPWxQfdFYtyLUyKhI3++zlESu3Or5F3M+t2akeq6HgK6TpFfSYqMnol6uqa/Ww+JfzSRB5LzhDx2GYAN2w8tsshTQwo34+1cGcWJPSGndr3kcNYJS3EdcytVzz7K0RbVpzc7SrEAVKrPZr+9ZSyGmNWvzsOw7YW0vgPHq+l+u/qKh3YAmlO399hsx1NRTPkxwB4ebSDFfHk3ySoo3s4PgO1QFuDxdbwc1ZekJPkd/ae50usbc/+9irWL5cQsbHuZvoKg6uxhUv7fKNSzxoHlaImcrJepP438jwVD+kDg6t11pMrXvztOUzMlpT1xvxgQPrFivHQGLLuOix6X0n+n5K2Kxyi3gs9nDZ2B0xAlyTBToO4sfj44ayp/fsc0iVYKJg4lZ2LlAEjIpOJz8yU+JQOrukViC048Pl2P4sMzAQ/OLTMPxeeIq8R6wGjBsQSnQfqgmIs9fr2APVoP6gmNQwbdXgfzlX02NrKMaSqo3iWy9DcSGyFOvvcJM6nplF5t5yuGmsSxAdysAhYd2yjoxohooEnQ/lGQK/J7qDOQuk6+jYArkVpDnrZ4xtRv8cmU6AbziGfWSEocNs
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DSWPR12MB999151.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MnZRZnU2djRTdEhwbDBHYmZGaExSU2J6aUZxeS9NR2x4aEJkKytkSUxTOFZt?=
 =?utf-8?B?em1qSWF5ZDhYRjJ6bTcwYkJLVFdpcS9YRFpTWmFPTmFPaHdDd2NEMk0vdjhN?=
 =?utf-8?B?T3ZWM1pzd2tHdktHNXMzWjJLcGtINGRYN1B2ZXBmaFVUK2pJMUd4MTM0UUx5?=
 =?utf-8?B?Y2hNUXU3WjZic1ZBRU56aFNuc2xTZ3MzUkRYaXZsUHNRVUJXRTl6aFBTWFlH?=
 =?utf-8?B?ZlcrckxYY0tTeWF1NGNQcnpuQ2lzQWFUQzNpVnNsSkdvNjhIWWV1bW5QcnBB?=
 =?utf-8?B?L0ZqTGhub0pKVVBpK2RrNzFoVUlHaHdvdHF6eklvaXNXMWQyTGdyL0V1UlRD?=
 =?utf-8?B?WDNsZWZVaUpRT3ErejlObVMvSEtjeEJtSUNBSTdCQVd1ZDNMczlic2FIcXhN?=
 =?utf-8?B?a2gwRzJJQTJDdlNicEZZSWNZOXlIZ3dqRXRHNnFLVms0V0dhZnQwdlI5eHJa?=
 =?utf-8?B?WXFDTkUwaFZNNDduT3I3RldNSThzZFgrZ1ZIM0tjTUR4NncwTWFhUk9YRTBy?=
 =?utf-8?B?SlhEbXVlTEJIWGJRTUdrRW9DejZHbWsxbGVHR0pyQ25Ra1pMdzg3ODA0ZGx6?=
 =?utf-8?B?T0o1SVJNVkhJYmN3NkJTVE9hN1JLYWVHUnZUdXhkd2I0R0dXMHBmYmtqM3Bz?=
 =?utf-8?B?NVZMMjZ1MzRiMkdYTk5oVmQ1VUxhb2NId1ZpUHNoMjFTRjdCOFZQdzNEL2lM?=
 =?utf-8?B?RVpuL2NXa1VCY21XcFU1dFFtQnJDcGJRZmhrOWFyN3N2bG1Mb1AwbjF2enlP?=
 =?utf-8?B?WW5WUU1tWStHMHJxMXdIVFBVNm1PWCs2RTloQVBkMTZ2YVdvNG1nQStaWEhv?=
 =?utf-8?B?bS9pQ29vMGlqSVVPTTV2UTVXS01pSG81eDlCczBMRUd5RWRuZnNjamZsVXZW?=
 =?utf-8?B?VUtRMzM2RENVREExckp0Y1hNd29HaWpZNDFiQTA2OTM1cDIrb0F0ejQrT0h3?=
 =?utf-8?B?YjlrQU1SNmlMZ0t2RFFzblNWeEFLcVR0TmMveDhpbVFtUHl2alpyWTNnNy9F?=
 =?utf-8?B?b2RzRkhxSjI3Mm9Idm1MSGhZN0F1N1pXUTl1K0pxOUhCRUFZN2x1akVRMXR5?=
 =?utf-8?B?ZDliRnhFV05LVUNwNERycTZxck5ZRCtiamVIUlN5QkVNSnBmMUFYYS94Y3RX?=
 =?utf-8?B?T3JyYkxxZWhSK1pqUlJ4V0EwdE42MG1lbmRTeTZwMnNuNTZwcHNFQUE5OVFV?=
 =?utf-8?B?L1F6d2Joc1lRdjMxaG45NzIyTm1FOElGMy9aUTlCTnFTQTB1b2dRcHVxNFB3?=
 =?utf-8?B?aWRKTXNuNzQ4KzFMazBnQ1YxN1dXR09nVS8vRGVzN0Y0SkllUlBqaVFIQVhW?=
 =?utf-8?B?TWllNDNvMmFZQjhPV0x2WllQYmlWVXJPZzVOVDRQbXI2VUQzenl4YjJ1OXZL?=
 =?utf-8?B?OGRTNkNhK3doUytzVGUyZ3dLZ0ZNNEh1SXBkSnZLUjM5Y09pUmdNNXkwa2Jr?=
 =?utf-8?B?U0ZHUlpUTXB2YmN4b0R6ODJOcGU2Nk5VOGMxK3BMVk9qZVlDZldmN2F2K3N6?=
 =?utf-8?B?amdzREEyeUNDM0xWNVg0M3V3R3ozcENuUlNYTXFscFpDK1hpU2tadVY0U2tC?=
 =?utf-8?B?ZHNuWGtjZFR1MGp3dWh4Sm93N3gzeU5iU0tNUE9WeWlrSnhUcmt6WmZUUkpP?=
 =?utf-8?B?QUFBem9sS0dPc3FGSDRmb0JBOTlXOXNNSlZpWklIQTNsZzMwNzRCWUw3ZU5l?=
 =?utf-8?B?TGJLcWkvK2NLY0FyUDltRzF3YVNCSjQzNVByNHhlbUsrcllGQy9VVW54ZndS?=
 =?utf-8?B?VlI0eUM2amVnc3pDaFlmN1I4VzZMeklqcmhTbTlDOXQ4Um9TQnZud0F5OE0y?=
 =?utf-8?B?RnAwT0RxYVdkYmxOODNQOEQxelBhUXJ0czFPbmt4RXVPb3FXRGJPOTdnV1px?=
 =?utf-8?B?VXI5dG5iV0luZEZBSjdXTFN0YVJieEJ2dVNCV3hMWGsycWQyZjRPMTNkbUQx?=
 =?utf-8?B?bm5TdnpnSXlpMktFMUQwdjBNamRSSzdwNmxSd0VSSEI3M3dUMWVCTmpzY1JJ?=
 =?utf-8?B?MWJIYkQ0K0RlczZxcE0ybWo1VTVydGkvZjlRVDlpNGFjUFJ3NWJZRnRzUnov?=
 =?utf-8?B?dy9UL1FJSjRNNzQwdWZGZWwwTS9aTWdObWZXVDFNa1hFTWFEM0NZR1JqYU9F?=
 =?utf-8?B?VmZSZXorVlBDY2pGK1VGbFdScUhYaXNOOEpRY1VWdjFnNXBxdHZhMk5HVzFz?=
 =?utf-8?B?U1RNalZrOVJET3NOaFo3OEtTS2t0blRPeVh1WElrMXFiTTdUMzFKY0Q1TDVD?=
 =?utf-8?B?MWx2OGpVZExzS0NpaUdCVjhkbDFKeXZwdWNVSy93RzdUZjl0UDYxNkNwY0dL?=
 =?utf-8?Q?pRPpUTiE5rTeKeNmv7?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9abeb528-4783-4dd5-c920-08deac13f303
X-MS-Exchange-CrossTenant-AuthSource: DSWPR12MB999151.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 08:38:01.8729
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: yV/bW8t82bLCKrvTWWbKMj//XR0x0aI0ASgPBt7qXLfebAtVa6Lx2TZUa0H2h4oXX3BNslfLXRzMytZv9nT5iA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7020
X-purgate-ID: tlsNG-ef75cf/1778143088-2976AC48-2D67E745/0/0
X-purgate-type: clean
X-purgate-size: 1510

This amd_smn_init div0 oops is also observed on 6.19.14+deb14 (Debian testing)
and 6.18.27. Given that 6.18 is LTS, suggesting `Cc: stable@vger.kernel.org`
to get it backported.

Thanks,
Jiaqing

On 2026-05-06 13:55, Penny Zheng wrote:
> While booting a recent linux-next kernel as a Xen PVH dom0 on x86, the kernel
> oopses very early during fs_initcall:
> 
>   Oops: divide error: 0000 [#1] SMP NOPTI
>   RIP: 0010:amd_smn_init+0x188/0x2e0
> 
> Followed: on a kernel that survives the divide, it will fail by a NULL pointer
> dereference from the first SMN consumer (amd_pmc_probe -> amd_smn_read).
> 
> Root cause
> ==========
> 
> To prevent each dom0 vCPU from looking like an SMT sibling of another
> vCPU, Xen synthesizes guest x2APIC IDs as vcpu_index * 2. This spacing every
> vCPU's APIC ID by 2 can push the synthesized IDs past the package-field
> boundary. Linux then infers more "packages" and therefore more AMD
> nodes via amd_num_nodes() than the platform actually has, while the
> PCI-side host-bridge scan correctly reports the number of root complex.
> 
> The fixes are tested on Xen 4.20 PVH dom0 on AMD Zen (16 vCPUs) on top of
> linux-next/master (next-20260505).
> 
> Penny Zheng (2):
>   x86/amd_node: avoid divide-by-zero in amd_smn_init() under Xen dom0
>   x86/amd_node: reject SMN access when amd_smn_init() did not complete
> 
>  arch/x86/kernel/amd_node.c | 23 ++++++++++++++++++++---
>  1 file changed, 20 insertions(+), 3 deletions(-)
> 



From xen-devel-bounces@lists.xenproject.org Thu May 07 09:30:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 09:30:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302465.1576394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKv3z-0006Mw-4G; Thu, 07 May 2026 09:30:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302465.1576394; Thu, 07 May 2026 09:30:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKv3z-0006Mp-1H; Thu, 07 May 2026 09:30:35 +0000
Received: by outflank-mailman (input) for mailman id 1302465;
 Thu, 07 May 2026 09:30:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKv3w-0006Mj-U8
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 09:30:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKv3v-001SeF-SF
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 11:30:31 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fc5bad-e002-0a2a0a5209dd-0a2a4508b39e-26
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 11:30:31 +0200
Received: from [40.107.159.63]
 (helo=OSPPR02CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fc5bb7-63b5-0a2a45080019-286b9f3f7fec-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 11:30:31 +0200
Received: from DB9PR06CA0023.eurprd06.prod.outlook.com (2603:10a6:10:1db::28)
 by AM8PR08MB6371.eurprd08.prod.outlook.com (2603:10a6:20b:363::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.17; Thu, 7 May
 2026 09:30:28 +0000
Received: from DB5PEPF00014B9F.eurprd02.prod.outlook.com
 (2603:10a6:10:1db:cafe::17) by DB9PR06CA0023.outlook.office365.com
 (2603:10a6:10:1db::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.17 via Frontend Transport; Thu,
 7 May 2026 09:30:27 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B9F.mail.protection.outlook.com (10.167.8.169) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Thu, 7 May 2026 09:30:27 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by GV1PR08MB7705.eurprd08.prod.outlook.com (2603:10a6:150:50::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Thu, 7 May
 2026 09:29:22 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9891.008; Thu, 7 May 2026
 09:29:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=ywItyRWs8mLjednOxDgi+S9opn5CJZW0rib3Lny9fRJj+sO48qJFw2B2Sja6KrGeIi1l/CzVDDNmyGWvSF5pBzMRh0HIPbur1JXbAE3lycL8VX64To0ffvoBIQV4rzAHL9yMWGqBJQLqH8MT88+7pSfHaitvQV+ld1cnYwIkQ7REEcOm6qJDcGTUN2YINnNwGb7y5oFVRYHRyhoO5oTqJnWLV9cxPn+swAE5WnCbqW601ntO1AVf1PAyCjLWGEsK1dNBznvTPhbmBDvEAMnngEptMkorUfdmHf42SiJ0DdKZF8H7FdfJfzk4mcxa91thcC1lSx3DqScq7LFwsly93A==
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=+kuVMe6Rh+0uG0YF+9e1lDO+8hhhS1LiWXvuS+5qEQc=;
 b=n1eTg7N6OS+8kaK4Btfj2KjCY7VO71UHI56R/We6iQVocTqcA5V+3wT1H2WJVMBG0dywCsrSaghXyUpDoSLlttmYZshKqlN5kqTj3Q9FeT0BMTbMAmYod3zC/LLx1ZzlOdqdoOR9pwCc5E5AXVA0ZPIxq4p68C2IrWcKKLe15PxhpJSS+N1porwKmnxOUXN6AqjmleBBLts7hYuMuCX1vgFrOcX0n4OAar+SH2KTtwHcsOijS3ePnCB3QtI9aHT/agqpJlMqKaRpj4pEbp7THVLDViSYSJ5I43avA/WQAAlczeVdXZNTZRDIu/UqcuxbWg1GGPfR4o6KIfHNmW2ouw==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+kuVMe6Rh+0uG0YF+9e1lDO+8hhhS1LiWXvuS+5qEQc=;
 b=SaidHqtxVj24z8sxorNKnyJD8yUB6x+ySc6svvanENJpNG9YOxO0h9kyf9DmxO8gwaOXHzExdhUA7iVAIbWJG7stj8NiEn5K7ggAphkqXr5gqqxBZ4FkDrHqnZqGLNYWEQfVbIiXsmnjblVzVOG+KP53Lk0cEOEtY4Sg/2WTWeA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FMPLd0S0KLVM1tvW1Gh3IXB4iSp2dck9RnHwforfq7RmBqV14BwXba6HvZJbUdAweKpoTDDZEp6Z7FKZMnq9VC0SFykD1m3zAk+y1zp/+AnNnSVmekm2HQb3VktSus9TTiGXsU7lOOoH5qX7+jhd3mKqyE9A2EMdZaXkS2cFcdfaVp9wZnot8NCFHbudjls3xlNXqs7mGv1yfhPjqTGhKAgeTZtDn3085d87DmiASlwpoXQ4R5KrLFrCZlvq5n5tMzqikZ/LxWrIFP6NK9xa8RjRsAIfjuS/pEqnS7cS0B5j6p5OSu0RQ9ZiQ42WthTLh9mXnvADhvEJd08IOar0Tw==
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=+kuVMe6Rh+0uG0YF+9e1lDO+8hhhS1LiWXvuS+5qEQc=;
 b=moirN43yw8zBB8DXZmDU2PMWcdvMxDXDddGs5GEeYkbz13Xz4eT6HbkKbBah1JDURxB5/Fo+1RSCYYztWzXsggFqPfacW+XjtLEKf6tLpI3WcUoz8ncK6fSV5GYrsNiSQ6qUyR9gkWC0XeEC9ZCdkWfSJjetstmduQxFxPVtmJ83g2+H4ITlhz1ayGyLXggc9wSpw4JMcqzpHlCzzPheqhDCSmdqbP9yFArmRv5y4T/hqg9GGLstEnpKYGeLmjrix5Z3D+T4Mxic8+FZUyGNYETuBmnxoO/FujY/HqmrXVf2YwXFzi2ByzZEIHjc015FpMwFmRmhHde+UzQ+ke2gfg==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+kuVMe6Rh+0uG0YF+9e1lDO+8hhhS1LiWXvuS+5qEQc=;
 b=SaidHqtxVj24z8sxorNKnyJD8yUB6x+ySc6svvanENJpNG9YOxO0h9kyf9DmxO8gwaOXHzExdhUA7iVAIbWJG7stj8NiEn5K7ggAphkqXr5gqqxBZ4FkDrHqnZqGLNYWEQfVbIiXsmnjblVzVOG+KP53Lk0cEOEtY4Sg/2WTWeA=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Romain
 Caritey <Romain.Caritey@microchip.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Alistair Francis <alistair.francis@wdc.com>, Connor
 Davis <connojdavis@gmail.com>
Subject: Re: [PATCH v5 04/11] xen: introduce domain-layout.h with common
 domain_use_host_layout()
Thread-Topic: [PATCH v5 04/11] xen: introduce domain-layout.h with common
 domain_use_host_layout()
Thread-Index: AQHc3f/IrjCU4ATePUuKxl1rqHU0O7YCS9SA
Date: Thu, 7 May 2026 09:29:21 +0000
Message-ID: <361DED84-DEDD-4915-9939-FD5A0544A52E@arm.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
 <a95e0968d4213a07984ac112c178ff72d03eaf96.1778140240.git.oleksii.kurochko@gmail.com>
In-Reply-To:
 <a95e0968d4213a07984ac112c178ff72d03eaf96.1778140240.git.oleksii.kurochko@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|GV1PR08MB7705:EE_|DB5PEPF00014B9F:EE_|AM8PR08MB6371:EE_
X-MS-Office365-Filtering-Correlation-Id: 1e288167-6570-4db3-fe81-08deac1b4669
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|7416014|38070700021|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info-Original:
 MauVQBOazPv6FjPmFQ57YINQjt5kCj4UWK2pLxPd6CddarwtwO49I4OQSfxjg2kuf2VrRyezjJy9B7GMLSvexhWZxZGhPL2xs10C0IaOyLKpatYRhcFlzQiGaJRA4fVU2raMraJOdEn9Iz3gg9F0961xp/vk8Dh/NIYDqyZo937HLOWWmWeFinA7oi1RD8Lmu6LA/0wC3poN4xn8ZQUJ6K18NEnL2O/ftoA0XJoJLRRQ4nexiREf/I1l/90Uy01shw4O5R0rpp20lmcWPVv3D+l1YsN//oHI1qmE3cpNAayPMQpdCGfgtG5phuxE6ZzU/q/QFMzFYLjX4UuVGFNr6ZPeSZdaGVEjy7RCsFmHocSra4K13+rRU133CtfgwJH1hDulzST+h8QJ4SVLgvuzGlfNtF+aUBWTf5MwbCnWrQgMlD3DnN9WYHH7qGsiPtgE2vqHReQMZHa/HjFUaKgI+NxEa9FtYsa6tryjqeLZ31EV9haR/tLMXsXkL13PcJnFj/zMNqqyvFo9XKwpdCBu6MvEErJfvTb9jvwpuelL86+RxexNy5NdJJ462UUHk3jimMkYuuuYZzjPLTOS9stKiTrjaoP1FtoN+iIiLAHzPxrlBAAe0gGgp+1EowO2LVy8Axk2A1p5ZaV34aazNN8VUiu4PegXPwlCve0Emz3gnQ0hP/wY9NtB+nFCWQcDXRjeX6gzbBWKD9oZLv+LKrqKE8UCuz5C5BhfQ5TKOX0dXZpTonL9kisWCm1xT4dPexxl
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(38070700021)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <A976E52C2A4D4B4FB0A8EBCB1D3E7B82@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 tgKVebhK/cKXHqQAFLTUYhJTnYFAb6d/VTh90IeIydP01lMoYkyCpEmqLMZrWwOK/1CUyIhw4CqkqlqEFPcS+j+4hcjz2CRtaGmTD+FGVTlO/Xu3wp8tYvPuD/jDuDcGAv34p9T/sNsOKv3Roh6RLFbwhDiTQCWmXNP6NPuxf2ig3oRYDMPBqibyFDCVbzhExk0slN284qYpSiy8mSLhVhzgJIBm0nH59nmb+nK/LXlQOkl64SdakQGy4r5P2b9RBluMbIpcV8Sv24+/AYQYYNY/sCb5Ez7eNpLXxQf8I/tjBOH4SObRs6htxY2CxLySFluSAvuY503nV6Tzifu1eg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB7705
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B9F.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	728216a1-10ad-46ba-e826-08deac1b1f16
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|14060799003|7416014|82310400026|376014|36860700016|1800799024|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	BQUxNDoZTntav8SY0O7pFiXugiMbuAbVthVtPKWbcbCoO5gpPEnqQJt89XPRkW/KMPnt55ATZguibDPTY4hEod7vAyLYmPR3F/DpdjbkCI11wr2iU5qR9Ivv3LqIRtqa55U/hXRJ/m8JJkdogEEbNIS9dmu7TlWuhpwg/QSc31fGgx/c3mW2dS+5AOGP3FwGz5qSvsdYmi3wgwJY4+QH638iWKkUr6nnEaphxXNUlZeehO62iSZAXkipU45gQiHacpZLoRi/z4qYEWvww9vRWaCf7rf5SPfFcFP48s7UxsdCXWA0q3Bnw16ckdAurI8YNC+AQPZGO4gNp3qaIGqiOZ8PT5QnSebeRyc0aHQjL9xiiA0Mrdc/sKJjzsdeqsiFcXl4btRhImPfcRPZcM8wiGoc6AI5iZP8/cibzioKF3J46vH3mN/Jfb8q7rU7YAva7G+08DKaQlb29ELdV7WxAA27vOnOadea4DBSNIwZI0475Ypu/CbJ1BCi5nHtmuMdxMuQk9ZsKcnmeS9cjUf5AvKDZIimnj/B+7j5kHgowauaY1DvDV7Ym1ErjHD8TrbaO705d5Ot06bE3LY57M9Eb1eWJTQYPgrqqZCR8OGV5Wr9oe/2aash7Q0ZVlLR0OT5Vg9VJlMiJz3BGHaiD2e4HzvaM2+eLxiD9JjqCtxJYK5/KcJdUpDtDv67U+YIxFRipVxV3nbQHwyf/so1GG4YZUVwcVxKcgtQutuht5ZIAcBA3oyF/tkUlShipylQG5QK
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(14060799003)(7416014)(82310400026)(376014)(36860700016)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	3mP58v/x9/4otTsX7GEm8aO6Qaubcs5BG9GagnzkvROPmu0cOfTgpTmjtQkAMwlraIHJArUdtmz7VNGAqklq3YF8o+hpyScUTPvjKw2Q/wfejzGVjjPEP64XcRipezQ6SGbUtQseB/RBeoZTl3F0r1h4HHy3yDhV8FqmufOor2ITm0h6ocSk+AD8Q+Q4wCTcb605wijhqHatI6Qa8mu4yfFSJrbIdD+0rym0pb8qSPDWk9rLRRUCwYanNy5ZgVGi1QNUygUrlmGavB1RqI1fKDrFmxqzvKWxe/Ii8VflIUBbGwMcyHZJGXx322tK/CkxSYT2o0gYviG2vdVSAz2yv7ccM6DEOGqRQVVgJiY66IeoOFx9EdYsUujDd2QrVedc7az/Xq52sHDHdzsPeWaBAq87PCUpOrw9fwBK3n0j9Mat9c+0zGJCEx+k0otIROA4
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 09:30:27.7630
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1e288167-6570-4db3-fe81-08deac1b4669
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B9F.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6371
X-purgate-ID: tlsNG-c1860d/1778146231-C5784DB1-EBDD28A6/10/73395122804
X-purgate-type: spam
X-purgate-size: 1972

Hi Oleksii,

> On 7 May 2026, at 09:58, Oleksii Kurochko <oleksii.kurochko@gmail.com> wr=
ote:
>=20
> domain_use_host_layout() is not architecture-specific and may be needed
> on x86 [1]. Replace the ARM-specific macro in asm/domain.h with a common
> static inline in a new dedicated header, xen/domain-layout.h.
>=20
> xen/domain.h would be the natural home, but placing it there would
> require including xen/paging.h (for paging_mode_translate()) and
> xen/sched.h (for is_hardware_domain()), which would introduce circular
> dependencies. A separate header that callers opt into avoids this.
>=20
> Adjust the implementation to take paging_mode_translate() into account
> so it works correctly for all architectures, including x86. Some extra
> details about implementation [2] and [3].
>=20
> To avoid the following compilation issue:
>=20
> In file included from ./include/xen/paging.h:4,
>                 from ./include/xen/domain-layout.h:6,
>                 from common/device-tree/domain-build.c:4:
> ./arch/riscv/include/asm/paging.h:17:48: error: 'struct page_info'
> declared inside parameter list will not be visible outside of this
> definition or declaration [-Werror]
>   17 | void paging_free_page(struct domain *d, struct page_info *pg);
>=20
> add the forward declaration of struct page_info to RISC-V's asm/paging.h.
>=20
> [1] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602161038120.3=
59097@ubuntu-linux-20-04-desktop/
> [2] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602271742400.3=
148344@ubuntu-linux-20-04-desktop/
> [3] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602271750190.3=
148344@ubuntu-linux-20-04-desktop/
>=20
> Suggested-by: Stefano Stabellini <sstabellini@kernel.org>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> ---

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Thu May 07 09:31:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 09:31:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302469.1576404 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKv4O-0006iD-Eh; Thu, 07 May 2026 09:31:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302469.1576404; Thu, 07 May 2026 09:31:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKv4O-0006i6-9E; Thu, 07 May 2026 09:31:00 +0000
Received: by outflank-mailman (input) for mailman id 1302469;
 Thu, 07 May 2026 09:30:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKv4M-0006hq-Pa
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 09:30:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKv4M-001Sp6-62
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 11:30:58 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fc5bce-bab6-0a2a0a5309dd-0a2a4505ea9a-14
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 11:30:57 +0200
Received: from [52.101.65.9]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fc5bd0-aaa8-0a2a45050019-34654109ffdb-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 11:30:56 +0200
Received: from AS4P251CA0022.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:5d3::14)
 by PAVPR08MB9139.eurprd08.prod.outlook.com (2603:10a6:102:30c::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.17; Thu, 7 May
 2026 09:30:50 +0000
Received: from AMS0EPF000001A6.eurprd05.prod.outlook.com
 (2603:10a6:20b:5d3:cafe::cb) by AS4P251CA0022.outlook.office365.com
 (2603:10a6:20b:5d3::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.17 via Frontend Transport; Thu,
 7 May 2026 09:30:50 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001A6.mail.protection.outlook.com (10.167.16.233) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Thu, 7 May 2026 09:30:50 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by PAXPR08MB6365.eurprd08.prod.outlook.com (2603:10a6:102:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.17; Thu, 7 May
 2026 09:29:47 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9891.008; Thu, 7 May 2026
 09:29:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=cLzvIIkuuWiUklH9AllXlH4tl19X84nOHBHHMOcXh6GbFs2a60hf0CN6m3Z9XzKC2BCMvyFJsdH0KXbhr9lzw/Eb0HqKn5cJP2VTUb2J9OR7XwqbJrUMhfDHPkF6X/scSYjA8FfUk9UwipSoFn0Oq1F8J6Yqi3YcBstNoajtllcKwdwuNXB4xw1IFnxbpKMlU9qOUJHk4LXdiG9Zo9OvoZsfSQ2gFWoehnb9T5Y2Ba22/xUCGlTWDKHTtecm0VZR3on+UoQUD/x5LWMj7kmM4yoJFhGWJa93D8J6QEFSMPzIkJpfZ9EMuwkEkTqn3XmDRoOxg+Gr8ERNNBQIItuz+g==
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=f+A8zX1om3juMx3/wt1f11s4ICIvjH6BqaxW8YRnGmU=;
 b=lXzdMovXOR3Rx7pIpsMPrrfxaYl/exc+AKuNonOAizPEz8ht9O10wyGD5+DGfKz15bCaI84296O0uiQ72oef2w4UuuEMLkvstqGsvDsiie8tgOTUZU+GXfZZqy52OUD9tmcozeZn5Xv2iuANgI+yY6gkzA5rpIq9zG3oc3wc+y5mctsmc4eh2a2y+EB8BYP6yOvaMT6g5A/K0swGyP9wyOgmGUnLZxp+9PncJX2/alOpBFYYhTlODB3A6Z7eCAMJGRrUuLqRwCe4sGN/OQSgfdQt82zQQv6YHLKnVBg6HVQcPWlD/9F5tj7x+IFo8RyERxJR4Im7Meui5jCtBFuM9Q==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=f+A8zX1om3juMx3/wt1f11s4ICIvjH6BqaxW8YRnGmU=;
 b=qCgXQs52Xzg997MvRVO04hRtm/zGYYOxviMjZihktx6tPzm86i5N8s6df0xGjyPlzBAEhfkEUQ+TZN+ezINbv2tUZDnrRUxe7V2bjje2UogfLnsOoJrY0MtKIHRe0owZJY2utvL2I01QwMlANHp+cxTjFcXllxU+rGsneFOc/e8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HUYvEMU4FwOZ4/aCvha7c9IKCpEJMrjPHCVf7V4C5+cdpp6sD0D/ecb3qtVL2zhm3R0pJi2yyDL7GXtJud4OsldBWF02Qyql3JMo5vS1I7O6h28ONXVn5aqzDSXKjxDdQ5j0Khm62hDuXC2GU4zCtspXGCmie48CI292Dg+It9W7UXB+1mQcTV3yR3H/2ZtuIKsuWhYBZ3lB0qVSkMW7tes4nK79XJmKCVrgbHuhqe2xj4FWjAGan2/fCPv5EQuxkUU/CJg7KBfLJtcdhm0RJXm2wv6RJU44+Art4JnE9VqRcj8k25WDibDzfx4qWucTuqmTafJbMs/mCd2RJFgttA==
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=f+A8zX1om3juMx3/wt1f11s4ICIvjH6BqaxW8YRnGmU=;
 b=Koor/4YGtrXMc4n9ulkJGRzOSOtTgK6D30s1te15uz8JmmjUZU0ghDIP1zPlWqzN4qDbZhTIz0/VBjMiwda+CWWQpYgKKc123G9Me+2bOWZmKIQLiDku8Dkq/TUzJh4mvCbbPD/vMhsn1wmBn3qvnL5x3lmrn1egr5lK1lvGUQGT0tausvlwOM5wV3RSPII1NS/AHkXP/Pig9tKp0qspnwjuT6m6Z0hbUH9JdQE/ZZN4skBy/BaV7gILMyGsNwGDSmhTWMk+EJgN09e0l9CAiE9oXRv9JnxlflCDVpWWGnL+tkmUlvjjc0xlR1O85kH/MzDH6BpszDL4DVvTIKT/gA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=f+A8zX1om3juMx3/wt1f11s4ICIvjH6BqaxW8YRnGmU=;
 b=qCgXQs52Xzg997MvRVO04hRtm/zGYYOxviMjZihktx6tPzm86i5N8s6df0xGjyPlzBAEhfkEUQ+TZN+ezINbv2tUZDnrRUxe7V2bjje2UogfLnsOoJrY0MtKIHRe0owZJY2utvL2I01QwMlANHp+cxTjFcXllxU+rGsneFOc/e8=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Romain
 Caritey <Romain.Caritey@microchip.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: Re: [PATCH v5 02/11] xen/dom0less: rename kernel_zimage_probe() to
 kernel_image_probe()
Thread-Topic: [PATCH v5 02/11] xen/dom0less: rename kernel_zimage_probe() to
 kernel_image_probe()
Thread-Index: AQHc3f/H1VfJSuHKN06L0Yl3rhRDM7YCS/OA
Date: Thu, 7 May 2026 09:29:47 +0000
Message-ID: <4B9F0BDB-DD0B-4993-B680-D4A78E93585D@arm.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
 <ceddcb0daabf3e58b1811e3499265dc6588ea4b4.1778140240.git.oleksii.kurochko@gmail.com>
In-Reply-To:
 <ceddcb0daabf3e58b1811e3499265dc6588ea4b4.1778140240.git.oleksii.kurochko@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|PAXPR08MB6365:EE_|AMS0EPF000001A6:EE_|PAVPR08MB9139:EE_
X-MS-Office365-Filtering-Correlation-Id: 2aa2dd44-c764-4715-119f-08deac1b53b4
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|7416014|1800799024|22082099003|18002099003|56012099003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 lksX0LwWvxhJisqZfQRs3KhW/Td8y9QOIDxyUWa5vSJe1NcvWdTp70j2rOplXYalPo9pP6Iakrkt6Gty5oN5sHtIcKqbhIZk6DTnU9QHnDbsghygk/RTdsUMVWdTaD/q8iwSb3NLvB/b5oQKe/sfg5pRgZpjOQwJ87Mlv9/R9zjC/PdyJZrLVZAt81TXxUdjdVuxPuTA/Y7sqF9dRyRX0dt4gzAa2XnQmiTGkeqSybvx/iX3bGrj1XDbB4KQ0PMCICHkycwtvo31xIjBpt2IeogD4h90aaPJ8/LBmU/yreF1aM/inqI+j0sUSb/JfS5OABQWyNnR/ZqOCThuW4RGP8UdvNXRoVVOUrRRMWVLz6ILtrfZr/d3HxmgcRhTnQRfqp7jZj6mofY8Hb+/bctt98urR5je7aUGeDoZSlbxR+yEWUTNzgT11yftwVw18OrQmtp5S3tpIPo9VoYoj9w55MkymZayHQoH0Gib0MgTFKrvHWSQsLMUN9kfPcESibTLwEF3qf+PW/y/1q8KmEovrPhoF2SwFuMbYSdwrHuY8TLetvkLzOuKFnwCw/mAmFufUm4MIkzuQxqlo9/2T27R7gyQdJYm/ZLTVOOVGufJHzVDhw85o0JZEoT0rwg2V/I/iAoKT5DhBUr5KDabtWYaYuwHCJTveUFhCVnCRMHIKL6DfSR+JE+HB8iIjfk9yusciTfH52FhMmFqfx7xYU+PZz84J/4Wpv/r2u631n5Bz00ILnQRhJ+W1UIxLBHoltXL
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(22082099003)(18002099003)(56012099003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <9D0813CD2B1CA34E982874EA81397C07@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 hww90ElwT1RtZ5XgN5NtL6run0gmTmFYP2diwxLBzWIjmQWK5sOknYpqGlTCck+9JdJ+YAbvUH762UIbQ0Cg7FgGQ8/43O+DyPX5FwUClLgIdaV6IDGvLyg3vNhDYJYt1zl/jl2E2gIjpQQDpqu+0/B1L1udRMM+Ou8l6CnuZbMsCkONdsCX4PRYCzBHzlZiJbKanm2uraq4idH4hhHICu21mRfXiF+QiSWS85dXSOk7+7BkXURdrlUSSD7baZbtlHz4W6LFpQ33HFtF9EuZyK8rs5JGgG+Sr1qWbgLAyOSdN4rj9HheOM5sIydBnZZqePsO5kSJjNHTi6TPuX+wgQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6365
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001A6.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	917fc654-61ec-4aa3-6256-08deac1b2e50
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|14060799003|7416014|35042699022|36860700016|82310400026|1800799024|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	NZsgb6MiOU60Ym8giqKiFbbrAui+zwXcmucYWp/DM4Fcg5/kvpHhahcrNYev6bveFLEZOEl84eJ3D1gqc6xHWVipObUGQIE4eiCwcRXs3DpMZznq/j8ylaqN+zASO5ZmnESPjshAS/bBaPPYyKnOoVa2VBOaTnQ6blBLJvDONV2/HD9pyECEDdDkfVYNfQ9/ed4ZVAmKtnBIfXSgcNlfUxQx+TtvUjgxafuh/Jcl3O1MGEKkXxlXZICs8wNIxv2Y9BYPI0HL4xDgxr0V2DYmoP46e4ovxsr82jM1WDa4drtlPp5BoDBN5HtKbWY/YsvUPJrEFHBjZlPS9RaHa16M2IaWHg0TzLMGXQVjeZQMxCf11g8Xkekn+9/f8gxUHQXH9Mvjgp/Hzflt99YqXv6HFC4Q16FGmWTIYRkksDHXtj8WRNdMyxfxJ3w3QeHKXX/yIktYHF42OeOyjpyLl4j5Um+Lv08hvDlyn1GAFydYdnUL4idgrm4madept0r/bOGi2dCnvSkLTy6GZc5+XT7JNxprP7MQKedaRF7QAvgNw9zaJtIFbOVCxUf95piU5wKmMbow2eLL/JFtQ0esKwDLSiYN57Dz4uu+H8lFvuRrWYcVt5GyhP17abPgVEMnt3MfYpGJ/XxLwvOqtUZ6y0cOvgh6DfUyxZO8tNKABDkDTyEIPwPyPf4w5zq8FsSO5u24EVqBcsX6AWDKAKTscZb4M7OOovO9faMCg3v6sW09J3g=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(14060799003)(7416014)(35042699022)(36860700016)(82310400026)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	SVQ19P00x7ApmOUx3duq+6LZjq0uCzGOFJw3Uee2s2UjXbdEaXdAEsHUlSSA6/MgSOAVy7XE8nM7GoCs1ncRV9ENoP9mBfawWm3hTQccAbgWCEynXPfXBvoxg1eY+ZTg/bDNQgDix0kqKTyzW4df+57MuHuCpzZgwifYJEA9yGnrMOyHr3Bd0cwMBJagQlz+7EDOe8Z9WBCaDlkdVecWQk+OZnVJMd+JvNmOgPlnuAIflj9/PVe4pLr9nJnylSdtyhOz3t/nsBUYeLOEoq/WpGNWBhRPBP2g87bL4QKNgmNWb54A7SLiFOw+rvPizgunaQMSfKRNtUKLC8ALdyIs7nE4jX/htfS7SCDGzNJTzYyl473CsaUBhQN55TicnBhlruU9dRxsXhNfvGnSJgdu21OuQd2cGq5GnFu/PFrTenL2g6S5KCIcX2u1yn3OB0ue
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 09:30:50.0698
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2aa2dd44-c764-4715-119f-08deac1b53b4
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001A6.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9139
X-purgate-ID: tlsNG-c201ff/1778146256-E1798443-9FC17548/10/73395122804
X-purgate-type: spam
X-purgate-size: 1087

Hi Oleksii,

> On 7 May 2026, at 09:58, Oleksii Kurochko <oleksii.kurochko@gmail.com> wr=
ote:
>=20
> The helper kernel_zimage_probe() is referenced from common code
> (xen/common/device-tree/kernel.c), but its name is tied to the zImage
> format which is specific to Arm (from architectures supported by Xen).
>=20
> Other architectures supported by Xen, such as RISC-V, do not use the
> zImage format and instead rely on other kernel image types (e.g. Image
> or compressed Image variants: Image.gz, etc). Using "zimage" in the
> name is therefore misleading in architecture-independent code.
>=20
> Rename kernel_zimage_probe() to kernel_image_probe() and update the
> associated structure field from "zimage" to "image" to reflect that the
> code handles generic kernel images rather than the zImage format
> specifically.
>=20
> No functional change intended.
>=20
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---


Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Cheers,
Luca




From xen-devel-bounces@lists.xenproject.org Thu May 07 09:32:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 09:32:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302484.1576411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKv5W-0007K2-LC; Thu, 07 May 2026 09:32:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302484.1576411; Thu, 07 May 2026 09:32:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKv5W-0007Jv-ID; Thu, 07 May 2026 09:32:10 +0000
Received: by outflank-mailman (input) for mailman id 1302484;
 Thu, 07 May 2026 09:32:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKv5V-0007Jp-SN
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 09:32:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKv5V-00Bwl5-8v
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 11:32:09 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5c13-5cb7-0a2a0a5109dd-0a2a450ca10a-48
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 11:32:09 +0200
Received: from [209.85.208.53] (helo=mail-ed1-f53.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fc5c19-62f1-0a2a450c0019-d155d035f12d-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 11:32:09 +0200
Received: by mail-ed1-f53.google.com with SMTP id
 4fb4d7f45d1cf-67c4aaf76ecso916894a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 02:32:09 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bc835918d7asm62319266b.62.2026.05.07.02.32.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 May 2026 02:32:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778146328; x=1778751128; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=46af2t54qJk6zCKkQwc3CwUTGN7IJ2VCtdRVcoKsi3g=;
        b=jbxlGoCnGH92UoL7rxbUqZXu4g6JcTtBM2mBivF//21vAleSRuIgvjQgZ+0Ng+Tcpc
         9fInLNm63jNU0sr5GMeAmaNTlho8Btic0Ic32YDsFI9dg4QqyrLgj9mEdF/Am3n5v3ZD
         nEJ9YLuDmPFTGNKiK1/Y67gsV5su9HYZ1IkswPJqmaKshhlfIMZF18HTp39HBE7wsZlU
         cp74spHvI+nSzfc3ix1TWdv/zEyP8hieH4lfzbkdROhVqY+sIW+aUev4aBBaXhqXha17
         novXNuiYteSersj6Hj+fGs6caZewCOEDFkkf3vJbAN3u/hDLred0PUCTPvXgwub4FLyW
         m3vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778146328; x=1778751128;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=46af2t54qJk6zCKkQwc3CwUTGN7IJ2VCtdRVcoKsi3g=;
        b=DyROXcJfku9RN5LmdwRG/C+AS2Vem6QPsq4Ii/as/ipi6lKzlPwbMF5eSXxc/GdTNJ
         sQixjHkapZqGV+RuKOb+xBkxrJ31ZcL5V4a5QND5SoB35DJQldbybvleEUlvYWvUnKaW
         bMh7x5ciJLzFGS4L4NFbHHkwGTAZlCiiJoxUANTxXFzr6rolNKeqjKzXs+XFwqHTQQyG
         xd4QJ6ngTtjRJ1awkJMQTe7lKPtV1cWqhk0Dc/ZpdnbKd0KUrqRmD3Klt39ih50s7/NL
         h0ORFgxn94uHKx9nN0jRXL2BzkhkeNW+BVHw9m3PcDL2aRpMjC3LMdmWpVSB6vc+zP9a
         SAVQ==
X-Gm-Message-State: AOJu0YynI0edB0PnrZK3dGRPZ1IZegRd2ORC3eVvSTK/v1Q58gYlF584
	nbO+SxpH7zCJIT0KYZ8md92sTtbmm3/xH0eR6M8D87i0bJbXe67BHvX3sfYGWg==
X-Gm-Gg: AeBDieuELRoaqIhTgYQtgzce62GNTz/InBE8G+Rox3BnT5l8CN/1BBYtLy7M0GhX38l
	h/aodvOYMDhxjyQVQykR6apJOSgUF6CCwQ8IaBsWRFvUofu27v/6vs0l6asP/YMCWImFqxixLbH
	CrzvS8XWel6QjUJU4i9HNOxiozk9zb1SI6KKgrGeCpEYJOhTOUbMfIXdV6w8iXcX5QVmAEzZrEs
	QUeZlF+mGQzIbGsmfQ/zTpK2UGbtHNjPVHfQLlAnKgCQbkUDx24on02jwXb87r0HuTu0jjYv4yN
	s/2oZV1GKr8roDYSa6D+0YTalFMp6WIWAb/3sJ7EpkY5F9fp3z6oOh3/QCmuEfNvHoko/U5iAUP
	mOT27JDdOqL/vTupbZSgcFtj1/FlVEaMJa32Mex2vf7CgyP5U3OBrDoRv5r/VY/TYXJsga7Mx2e
	7BceB2aFa263+9dE41iqGPLfHg9oKClV92Y1VyUIrYFmiLL7k3ofcSMk7lc0knqbapEdHZxXlC7
	eFHqpbycAkpcO0=
X-Received: by 2002:a17:907:3c83:b0:bc3:c753:b03b with SMTP id a640c23a62f3a-bc56ae2a7damr421306166b.3.1778146328110;
        Thu, 07 May 2026 02:32:08 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/riscv: fix MMIO alignment check in imsic_init()
Date: Thu,  7 May 2026 11:31:55 +0200
Message-ID: <20260507093155.105950-1-oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1778146329-F5B82CF5-E5F6DCC9/10/73395122804
X-purgate-type: spam
X-purgate-size: 1258

The MMIO alignment check in imsic_init() incorrectly uses cpu as
the index into mmios[]. The loop index should be used instead.
Otherwise, the alignment check may be performed on the wrong MMIO
address.

Fix the index used in the alignment check and corresponding printk.

Fixes: c9bd8b322ecbb ("xen/riscv: imsic_init() implementation")
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/imsic.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/riscv/imsic.c b/xen/arch/riscv/imsic.c
index a4460576f620..f7b70a8da09e 100644
--- a/xen/arch/riscv/imsic.c
+++ b/xen/arch/riscv/imsic.c
@@ -451,11 +451,11 @@ int __init imsic_init(const struct dt_device_node *node)
             continue;
         }
 
-        if ( !IS_ALIGNED(mmios[cpu].base_addr + reloff,
-                         IMSIC_MMIO_PAGE_SZ) )
+        if ( !IS_ALIGNED(mmios[index].base_addr + reloff, IMSIC_MMIO_PAGE_SZ) )
         {
             printk(XENLOG_WARNING "%s: MMIO address %#lx is not aligned on a page\n",
-                   node->name, msi[cpu].base_addr + reloff);
+                   node->name, mmios[index].base_addr + reloff);
+
             continue;
         }
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 10:09:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 10:09:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302513.1576421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKvfH-00043v-Dt; Thu, 07 May 2026 10:09:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302513.1576421; Thu, 07 May 2026 10:09:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKvfH-00043o-AU; Thu, 07 May 2026 10:09:07 +0000
Received: by outflank-mailman (input) for mailman id 1302513;
 Thu, 07 May 2026 10:09:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wKvfF-00043d-UI
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:09:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKvfF-005jZ7-BD
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 12:09:05 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc64b6-e002-0a2a0a5209dd-0a2a450ab3e6-16
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 12:09:05 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc64bd-56b3-0a2a450a0019-d1558030bcdd-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 12:09:02 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-4896c22fcbaso6518515e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 03:09:02 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e53895f0asm125067055e9.2.2026.05.07.03.08.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 03:08:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778148541; x=1778753341; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HbtRJw+QEI5mtSKcpsiS8KnHqX7Lm7TwkaVuPue5Dlo=;
        b=Wt4C2oTQNdTFdPiKcCdIppAZLuxL/a3S6kXmRoCWY/0OC31tUQVrYQwMINr6Vj7nwq
         E/1mPc5SweF5asBMLgbJFuN1px8MCJiXZvJkeFwqg4PPrYvbqjnsYngcFwx+60EyYmh3
         yKeS2mrYcj59dMxpRBvn8OoMRFZ8V+9Dl4D0MesSpuZxhSmpiIvi2fzgETaznewEBDdp
         oc8RGNWAMCZHUSDKuUda2uI4HtZTdFiT6eyfpIsaPMrGzxdWwLl0dzdnD6uJyd8ae0bH
         z1wp8q3pq319N0xD34KGsQcwRF6Bd5ICLdrPq+jTXpQ82mu4rxj/ZuJWCWgsSVAmOatZ
         ukdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778148541; x=1778753341;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HbtRJw+QEI5mtSKcpsiS8KnHqX7Lm7TwkaVuPue5Dlo=;
        b=ifxkVUjkYNy6bUGUCaVGTfRfIEw5aXMdgAC7k/DHyCWbW9U4ImtHxZLq3CWUgimFF0
         pMascjq/xATC3weUfVZsAnu0o6ZoXviYctfl69Tu6rjPet7BduaWZOLuoIxZbckjdZTY
         vYQmUo6Hm6ZDxl9HnCQn7WllH03dR/pBQ8pP1ZU5BXhz18PYm997DBTEiYBYPOFKz3bN
         uzJVBv6iqayGlp78RXY6jKaWksWSNDpsomBhE9qkWSz0Jr7xd7hRgVr46soZJJPcIJ/J
         NcayrZKcqMNRFRoeHeFWHFb7yQTJyaYjo5UnPf09dqXdYaZELIdLcu5N2uSTAF2nHg6m
         lvdg==
X-Forwarded-Encrypted: i=1; AFNElJ8u1nmju0ElaHPDmfFVLhs+Dr/hOvlY70cKF78rf++MlL/ADqLXtLQgn1o53aO95HbiKLjteISNay0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyfek841ZGDzMYfMvhg0ANAiLH86zjshSXdz6zBAxnSyB8YXD+I
	7c4C448cTKofdAwgd43X6q4OrbQqxZQJoD4onHiwy8MR9Pd83FF+Cjj2995UfkZbGA==
X-Gm-Gg: AeBDieto+f+wyIHGeA6EgG2WHZVwMYEHHE1CQqLfpDacmpkj9bxp7V1QqqiPhbQUwxo
	xCxZQMz+Bi0DQ7jN9S3BCOq65G+DPzDWqjQ9X46h2EZEWKDY5NrFG/WN9amxnYosDtJuBymUFmg
	TAZbNLIm0BIWHw4u6BduDch31F/pjzzg+zX21fBEB9Pp9S6F9YlLWjpzqgaWVNsHaDzYKXcdHpe
	2oXTFlBZlEa2qy5VBKf9qXwgc7dOTAq3Ibg6W5oO+zNZkHt1Rvu8E5ExdaEqYUxkoMM6og2JDLx
	N0g7xh5zjxk5sJTIQ4e12JRbxz+/+h8SrUXfYJz/WZI+YIGzjqKgXfriQEqMDV+wJYs1OHHx3Zr
	TTJ8ahxGQxbglP9TrLeLyb4vzkQ/Q8bu06TDYs21gfYnRgPEit9G4E/utVXushvPsP6J4Y7o+HW
	dhXnFI6qNi3UZuObmmEb/GpjC38IgkRH1NN4rCkhWtBQsVrfZAT7SKZQrQJM3DQdq/TGRIl99Ia
	rg2rmuXyEXBsO71yTrn4XwIB44vlTvY
X-Received: by 2002:a05:600c:3b17:b0:48a:568f:ae8a with SMTP id 5b1f17b1804b1-48e51e1a870mr117954375e9.8.1778148541463;
        Thu, 07 May 2026 03:09:01 -0700 (PDT)
Message-ID: <cc93dd58-7501-4610-bd1f-9f2c403baa9f@suse.com>
Date: Thu, 7 May 2026 12:08:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/riscv: fix MMIO alignment check in imsic_init()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260507093155.105950-1-oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260507093155.105950-1-oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1778148542-7397E8B7-A98FF364/10/73395122804
X-purgate-type: spam
X-purgate-size: 521

On 07.05.2026 11:31, Oleksii Kurochko wrote:
> The MMIO alignment check in imsic_init() incorrectly uses cpu as
> the index into mmios[]. The loop index should be used instead.
> Otherwise, the alignment check may be performed on the wrong MMIO
> address.
> 
> Fix the index used in the alignment check and corresponding printk.
> 
> Fixes: c9bd8b322ecbb ("xen/riscv: imsic_init() implementation")
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Thu May 07 10:21:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 10:21:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302532.1576430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKvrR-0006rv-EW; Thu, 07 May 2026 10:21:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302532.1576430; Thu, 07 May 2026 10:21:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKvrR-0006ro-B8; Thu, 07 May 2026 10:21:41 +0000
Received: by outflank-mailman (input) for mailman id 1302532;
 Thu, 07 May 2026 10:21:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKvrQ-0006ri-CY
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:21:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKvrO-00AY4n-54
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 12:21:39 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fc67aa-e002-0a2a0a5209dd-0a2a4502870a-42
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 12:21:39 +0200
Received: from [40.93.198.25]
 (helo=CY7PR03CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fc67b1-af86-0a2a45020019-285dc6197b60-4
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 12:21:39 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH0PR03MB6146.namprd03.prod.outlook.com (2603:10b6:610:d1::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Thu, 7 May
 2026 10:21:34 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Thu, 7 May 2026
 10:21:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AKdpJnyONQe0H2FV3xbwKNQXJc0e5kKEThT9O9nMxJmLCd/gkaz40Qcr46bDOT7VGdWBAEhZlbUTA1meYv/XHQwSjEEPHE7sxO2/ZnQHFOyckhbL9YgXp8a9mI+A38p3MDIAg4Pimvwuae0u2TkCPIB9ivw9MuDHGecRkZMNyl7k0x4E+1KM9VQh8uqcYttBkuNau0PUjvJzUkfeNTcolzR+w09jbUN7VYH+w4kPhtPlHDgzCL+ZrKvwPy4YJkUKyDcWtCBvBgtIqdIcnGnWF8A1H+sWyysyvRotPuE+kafPz90Rd3C9xfT1FSQ+q/E6OBS5g/7KFlXhFQJGq29fjQ==
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=Vl6oFYl/rsQ6N3FKGFCKoa6SFiOovWYYmC3eLoSmgEA=;
 b=BZ3iAy++yZRmLpRtg7UQorrAJvEEmf5D3zkjPY2F1v9J2cSVG1MaQFVTYW5JbrJ0Ca4guiMrZGMoP5Tc01WYpK2icAUHqzbPQDU1fb0F+MvUDsnvBZxYgoAOxxw4JKMipeRmqE3NzVtkvfytAARFd2KWHZMNnLTN9UHAL82dY102yFgyQyBtrSCgBchNoPq0FBQ36C14AxyRKz2xSm8KcDONf4v07it7MqIl8P6xjzvegQsLEY0ngoyljINh3Ci1GDpuHWew0Y2eh2HVpx5Gb09np2oWTZruztYuBQKeIYViWt02BKtgbcUFmNKHflAnyCcxROSRi/CboCpNGKw0PA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Vl6oFYl/rsQ6N3FKGFCKoa6SFiOovWYYmC3eLoSmgEA=;
 b=vWzSkuvv4CT/hsMfd0caUyS4v3agNAektEyQ5e40GEnmhfupzNQshkx4NXBzSnyl63s3zxRNPCG6mkuZ8xgGP3eH0oXsjEpVXFdxcAygkr65CvlC9bZETTX/uOxpCvcc4U3saLWaExx6tuANBH2Bq4rbkrykzx12NERV24ffyRM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 7 May 2026 12:21:31 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3] iommu/amd-vi: do not zero IOMMU MMIO region
Message-ID: <afxnq3kXflTvz4P-@macbook.local>
References: <20260506165157.68567-1-roger.pau@citrix.com>
 <b5d9ea51-5fef-4bae-b124-f4dbde93dbdc@suse.com>
 <afxRZtm-L1ZA8jF1@macbook.local>
 <b0d460d6-5828-41d5-9168-394fb54f80bf@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b0d460d6-5828-41d5-9168-394fb54f80bf@suse.com>
X-ClientProxiedBy: MR1P264CA0199.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:57::10) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH0PR03MB6146:EE_
X-MS-Office365-Filtering-Correlation-Id: 6df7f1d4-c4ed-4024-f965-08deac226a26
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	kKo7VnX52Xi/l38IL6f2pswD/N4OWty2566tPtZcONFH3r6e9GsiNUZXAbZopH+d6t9Kf1/MGE0amSPwemZR+EUE5n2wgH+0dhEuTkK5zpcs2M0kBdp2AxMqEfnu3Ms0dI0wbQAbap2CDPfV1dbut3CMSC0Ba9/ved+XQ7hTODKeuS5fY1c53+k+TQ2WIt1eFfIMDKd2eq4gaDuYlzjFjM++4qd+lhDCog9yrnWer3A67/uQK7iTA61PusOpojd/Rk93X1/FEOxIeXvaAtSnPuJfJ0Ew5fTnqyoPTrCcpz1ZDeE+TyBVPvkpl8IPKYXt0sePDC4CajKvR+KH37tB4q14b2h+0HM7RYC8e1IGNms/q721Zw1ZgDwhqLnGwkIX88StnK2aNSx0DZ6lEoLElvjJF+TX9ddcTn1eI1pCOTOeiO7jiR30JRTdEzFGT5AuIPQMgWoGCCKABRbYjsewhjmQSsfSJtHGEOtNFC9R7sSQ1OROlnCChK3xb+EBJ99vttrMLG6O1GWj5tFTMb5h31XdlCq7I9E0kuWc0IB3PvEo9q1C/Gic0TsnBxtlPac6QY+4vPjy23brl733vBy5ApEU/nxpndBF4buWhJjkapR3JS2jWWtaNLgzyvmzlQZApMwMce+yj0XIRBw8MIApQq0hC5MDyMNxXNFpY4uDc4++6PUe7Sz+Q4yUQ+tJ1ISP
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S1JJZ082NkVkY2t4aHg4QktPaFdFSkZhdlNqME0xRGpIYXVyK244c3hZd2lJ?=
 =?utf-8?B?UkdoZHFVQUp6bGFnRCtrVzhTa0ovVGhGb01MT0VWVm44cVlLNnlFV2lnc0VG?=
 =?utf-8?B?YjIyd1liOVZhMmxUbzVYaHZmNjg0MTJXTHNVcDJzNk01bUFvYy9XbXZCUW1v?=
 =?utf-8?B?TVQ1eXFqY3VsN2Y2NWF4VHQ5UXNSb0hjTC9IMFMySTc5OEZuL1Y4YTJDWU8x?=
 =?utf-8?B?N09RbXBTSlJWSVFOZkJZOFJUalVCTGlEMis5RE10bVYzOUtZTlZtcE5PZW9B?=
 =?utf-8?B?b3V1R0tTWktJUnRuT2FTS1RiR3QzQVQwOGx2YTd4SmFOQ3pCdVY4ckxkMnIy?=
 =?utf-8?B?dkpaclJ5VFl1NkQybzY1RC9LRndmZDBldUZ0WjlPZkd0NHBEUnBUOVBFcnp0?=
 =?utf-8?B?UUtGeDMzMGI0T09NNjJYUU9uNi90VmhLem5vaEpsY1RNNGptN0RRSU40OUZm?=
 =?utf-8?B?TUMraGJzN09WQmJSVW9WYWU2YXVLWTR0YmdrMGNhcUFvS0thM2JQR2U0a01o?=
 =?utf-8?B?N1NhWGlvNkVXM0p2RkszcVRwdXFFQUR6ZzloNkNWWU45WjFMc3pKak5PR2Qz?=
 =?utf-8?B?M24vOU9Ca2xHZnJGbVVobUtZY3ovcGZHWnllbUFkc25RS3F6akhRakR4VHVq?=
 =?utf-8?B?R1YwRG1Zd2dDajgwazljYnp3aVYrQTZvSEFwN1kyTXVFL29QYkcwTXBWd05j?=
 =?utf-8?B?QlBQUzdueUZXQUhpY1g3NnFvOHhsVSs0dmQ3VWhhekhiT3BwS3J5OVY0YWNt?=
 =?utf-8?B?YTAvNEhqZXM5N2pEUVpneHVrNE5nVE12MGpqZEduMWpSdjBGaVpjWFlDeFY2?=
 =?utf-8?B?aVFxSCtRUnhTT1F2TmpZMFdHMDlMQ2Q0bGJDTE05d01mWWFEYkc2RkVZNk9j?=
 =?utf-8?B?clNoT1dTWTVGeGFaendYd0ViWUwyN1EvaGZSZ0cvL2ZwUVFxRURCTTAvMW02?=
 =?utf-8?B?cFFyeHhKQVNuc0cwUmV1dFpYdEVLd01kVys1UFJVWkU2MEh2MHFoTlp3RUh0?=
 =?utf-8?B?ZTlLMFJTWXVadTJrcUpaaUhpUU9Nb2pod0hxRnlTay9MOGJwMWprbUtFdysz?=
 =?utf-8?B?TTAzYkQzSEZIaFVrc3RkTGFtUGVzMm14RU84S3VYN0RQem5uK3lGeFZHSTJG?=
 =?utf-8?B?a09DQXZZNGl5NlB5V3RYWlZIUU5uUm0vT3E4QU5TZDZuY2xuRXZOendvVjh5?=
 =?utf-8?B?NE5zQW9MeW1UTWpUSzJNZm1RLzFEZkFjZHdaL2locm0zbUU1ejFCblFkYUVS?=
 =?utf-8?B?WS9MbXlnOGVVR3pWR25GeVdma09nOGlVR3k3ajg1TVB6VU1oL3RUUXV5Tjlj?=
 =?utf-8?B?RGptdkhVRWJkSkZBVitzM3N2eFdPUjJtbXRtM25tQXlQc2FuSkFKODNIMjB3?=
 =?utf-8?B?VlQ0TzBhSklQTjFHNFRzcDRMK3ZEUmFSMlpvZU5mWkw5UXhBdTJ6UEZhQ09M?=
 =?utf-8?B?Zm1qMUo2a0FPangyVUZyWXNOSURhTTQzSncxUEVNRFkwOTF6Rkw3OForcXFB?=
 =?utf-8?B?cytCK1h3blFVWWV5YzF3RkpDa0wxKzBUeVFMQUdrWC9WT1V6K0FrU216Y211?=
 =?utf-8?B?MW92ajZjTG42RHo5eEZDb1dCS0VEZXhiWFRDN3ByVStZMVY5aUtlN3pxR1hP?=
 =?utf-8?B?OGRlUE9iL2RHTWp4M0MvYzJRVTd1bG5nUi9WTk9rRklZSjErOW0zZGV0ZnJ1?=
 =?utf-8?B?ckFweGJSYkwyZVBSZkJhenFLL0hNc0kyWmdrVWFIUjV2SE1TN0lkdWlZZklI?=
 =?utf-8?B?eXRHWEVvV1h0YndHQ3Eyb3Z2UW5YNWlZaEZORUNwZW11S3hPVlpnUU9jdFlB?=
 =?utf-8?B?ZUYrQUJBZGUvd2xnaWcxTE5mSGgxL2JwQUxnTWc0RGJMdXJPUllsbVNOYU9h?=
 =?utf-8?B?eldMblRHRFNzWEY0NVB3OGdEMy9MK2QwYkxKbEIxdXAvaFVvVUNqM1FhM1lr?=
 =?utf-8?B?S2RJR1N1RmpGQ0IxYUlJT3pvOXJrLzdJblhHZlhvdkl3SW1qS3F5T3UrN0dU?=
 =?utf-8?B?aHVoZVlBR3IxNFhBVnlNc2czYzVZUVRhWDcvWGpHbEE2aDJPRnBNSFF1UWE0?=
 =?utf-8?B?Z2JTbjVndXRNRisvWTloM3A0M2sybHlJbGliOXVJcEU2TDE3Kzd4ekY0QVZN?=
 =?utf-8?B?TFhJRTFzcVdXUVpKUXk0SDJiQ3dxaC9vNWQ2ck9Ibm0vd0o0a0VaSVZuYUhh?=
 =?utf-8?B?M01pdDh5QlZKMXc0Wm0zQlZaMmtOcVBRaXhwd2djQkZ4ZkNFMEFzeXFra3pk?=
 =?utf-8?B?YU5RU1lmUVJFd0M3OVE3M2kwM29sbzNDY0hQckwrUGpBdHhGY0NiVmx6bmdX?=
 =?utf-8?B?TzFWcEtOUzVKamUyK1RqcHFFb29nWEhlSjZ1enJsc3FSMEZTMHJQZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6df7f1d4-c4ed-4024-f965-08deac226a26
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 10:21:34.5588
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /v23ACBqk4eAYg/p9uOHfHVwXfuYmXUugi8CtLx66JGiBXTv0WVz4JCqHlJs9jOg9NKGzLIc5F0C6BHaspIIhg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6146
X-purgate-ID: tlsNG-720697/1778149299-82175161-8D3A2ADC/0/0
X-purgate-type: clean
X-purgate-size: 4403

On Thu, May 07, 2026 at 10:51:18AM +0200, Jan Beulich wrote:
> On 07.05.2026 10:46, Roger Pau Monné wrote:
> > On Thu, May 07, 2026 at 10:03:05AM +0200, Jan Beulich wrote:
> >> On 06.05.2026 18:51, Roger Pau Monne wrote:
> >>> Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
> >>> say the least.  We don't know what registers might be there, nor which
> >>> values might be safe for those registers.  On a forthcoming platform doing
> >>> the zeroing of the MMIO region does put the IOMMU in a broken state, which
> >>> is not recoverable by the IOMMU initialization procedure in Xen.
> >>>
> >>> Instead just zero the control register, which mimics the current behavior
> >>> with regards to how the control register is handled, and ensures the IOMU
> >>> setup is done with the unit disabled.  This approach will need revisiting
> >>> in order to support Preboot DMA Protection.
> >>>
> >>> Fold map_iommu_mmio_region() into its only caller, as the function body is
> >>> just an ioremap() call after the removal of the memset().
> >>>
> >>> Fixes: 0700c962ac2d ("Add AMD IOMMU support into hypervisor")
> >>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> >>
> >> While you got Andrew's R-b, I don't view that as enough to commit it. My
> >> prior concern towards ...
> >>
> >>> --- a/xen/drivers/passthrough/amd/iommu_init.c
> >>> +++ b/xen/drivers/passthrough/amd/iommu_init.c
> >>> @@ -42,18 +42,6 @@ static bool iommu_has_ht_flag(struct amd_iommu *iommu, u8 mask)
> >>>      return iommu->ht_flags & mask;
> >>>  }
> >>>  
> >>> -static int __init map_iommu_mmio_region(struct amd_iommu *iommu)
> >>> -{
> >>> -    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
> >>> -                               IOMMU_MMIO_REGION_LENGTH);
> >>> -    if ( !iommu->mmio_base )
> >>> -        return -ENOMEM;
> >>> -
> >>> -    memset(iommu->mmio_base, 0, IOMMU_MMIO_REGION_LENGTH);
> >>> -
> >>> -    return 0;
> >>> -}
> >>
> >> ... this part of the change wasn't addressed, neither verbally nor by an
> >> adjustment to the description of what was committed. As previously stated,
> >> blindly memset()-ing the entire area may not be the best of all options,
> >> but the downsides of not doing this need to somehow be addressed. As
> >> indicated, once they run out of bits in the main control register, they
> >> likely will add a 2nd one. That'll then also need clearing, yet we have
> >> no code to do so anymore.
> > 
> > I could introduce an opt-in command line option that forces the
> > zeroing of the MMIO region (to have the option to resort to the
> > previous behavior),
> 
> But we don't want to fully go back to this. We'd need a form that zeroes
> what may be zeroed, without causing the issue you're trying to address.

But how do we know what needs to be zeroed?  We are then in the same
position where the introduction of a new control register would cause
the zeroing to no longer be accurate.

> > but I was (wrongly) under the impression that we
> > have agreement the proposed approach was the least bad of the ones
> > available, sorry.
> > 
> > Note how VT-d also doesn't zero the IOMMU registers MMIO page either,
> > neither does it seems to zero the Global Command Register either,
> > which I'm not saying it's correct, but is at least a (possibly wrong)
> > precedent.  I don't think there's much we can do with the handling of
> > enabled bits in possibly registers not know/handled by Xen.  Like on
> > VT-d, we possibly need to rely on the firmware to handle the IOMMU in
> > a half-sane configuration, with no enabled features on registers Xen
> > doesn't know about.
> 
> As indicated before, for firmware we can likely rely on that. Pre-boot
> non-firmware environments and especially Xen being kexec-ed (or being
> run past something which was kexec-ed) may be of more concern.

Do we really support booting from such environments?  We would need
much more careful handling of enabled features IMO, as blindly zeroing
the whole MMIO register area is likely to not make the IOMMU happy if
it was in an enabled state.

Note for example how Xen was zeroing the command and log buffer
pointers ahead of disabling the features in the control register, just
because those register are ahead of the control register in the MMIO
space.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu May 07 10:27:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 10:27:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302542.1576439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKvwc-0007Pr-0G; Thu, 07 May 2026 10:27:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302542.1576439; Thu, 07 May 2026 10:27:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKvwb-0007Pk-TP; Thu, 07 May 2026 10:27:01 +0000
Received: by outflank-mailman (input) for mailman id 1302542;
 Thu, 07 May 2026 10:27:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKvwa-0007Pc-SF
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:27:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKvwZ-001f1s-U2
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 12:26:59 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fc68eb-bab6-0a2a0a5309dd-0a2a450a9ad2-36
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 12:26:59 +0200
Received: from [52.101.46.23]
 (helo=CO1PR03CU002.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fc68f2-56b3-0a2a450a0019-34652e178e51-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 12:26:59 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MW4PR03MB6393.namprd03.prod.outlook.com (2603:10b6:303:120::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.17; Thu, 7 May
 2026 10:26:55 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Thu, 7 May 2026
 10:26:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DnYf55TyDG9F0Uevte+KGwKypZgjZpV+hAVM3YjP32C/KgZxRuh9eW/JXwHuF7eMpS6UdyAQpCnciSjyKiyXAYvYJjTftjku1UGbVQjfHKu5I5CvuNTtk+46ieFFykfe5tPSbzexNQORqC0GA0lxV1tJtUKv/Fbe/uS6ZL3ZMjrWcL7hgMgUgAwXSFdwNldqOLTyYUF4xhFoCinsnmm3pAXzI7SAxFGQGeR0ajf7fwF1pBShWa1LwTTXTTJRNq3kQSVKFsciAmUc5zgHZ1nChK9YZbSnrTVIo8TCrm37CNBQPPu5Isoxi7e+qQCuyKcnj+GCkflKKPEwwcOk4qIbhA==
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=B/NAGs1SFXoq2ei+2M2RXSRYdHni8CX284p5v+iFM1k=;
 b=myCXqdt6BEc20s5dsIo1xxQjLK199gzlkvAQoMecSUF2TRINw/m57RNgIgoadt0TepdmJNhcaZB1hiKttl1HUCYp6IidWaytbw0yiGD14NqImdgz1okJ1rordA6mRUG815bGhQIKAUEmMZiHm2tExcbFd8nnj93rdQaNbeRUGHIDyrSHLNXvAkAM6yyIldjAeHpBWLO00+ZNI5hETVOWL5RZSA1LXXqWvmGweVZDbYN7g2ZkRe3rSEBY+JVoiZYqgvndIt0g1MvHJng1qh7ipHZRBywD43g/to1ReRqvJVhdsEVENVXMcB9FlvQ1J+B3MDd+wZfYeBoWFtav8YNfoQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=B/NAGs1SFXoq2ei+2M2RXSRYdHni8CX284p5v+iFM1k=;
 b=sZAeEU4uvkScXDVGdoObGxkolaXfMLf9xmz9UCgcozxxT6OmOF1ad8xzy1MsdHGcKcsODnynKC0KOViJvVTLBilrvczY2Onxwx/AOvOUZ4ntDsGunems13l/kNVY+hlqMmpY9dxtClsKFFAJSOarFVYiLSjLTyhvtpEufBrwND4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 7 May 2026 12:26:51 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: Re: [PATCH] x86/time: make do_settime() uses more accurate
Message-ID: <afxo63Wy9en59pmO@macbook.local>
References: <99a4a514-3ed5-43f7-823c-54771f3bd03d@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <99a4a514-3ed5-43f7-823c-54771f3bd03d@suse.com>
X-ClientProxiedBy: MR1P264CA0085.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::16) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MW4PR03MB6393:EE_
X-MS-Office365-Filtering-Correlation-Id: b0e82eb4-edaf-4a25-2c5d-08deac232923
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	gfMI+0kB3BfvBF/+0uEFS8abirraNAbqyMniYG3OWdW9I25gnQuyrZCN3gWfBcQluJoa0iWaNrLG5voPpViy+AYNBGyHgv1Uf083Z1++wgIJf29dS2oTrqW7w+2plwNQfp6PidGySve6n2jO7yzjsErWS/c7dk38Tqt/sAX4VOI06zywF8wC4Q5ba1Iu9PLJQl6PHEUS1T09/4KZNNCAWGBBBY1Ddrg/39/ieHOrc21g1tfNqwjsl35l9Wns86p8dEDgTVmJo3MuEAt4445F0PG4yhnGBqIIkmvY8p34g/enHy7jNo/1yWkHoaMZGTTOfEzzXYQzRIEhQWo+MuCKo9Esa9n6C64oS04USnhHzfUmEz/B1HotsOCL6xDGHCkjsD5T2O/aI/fyyNOQIj+zeaUz1nSYN8psPkBVMpqV0ErBaCim38xOLUKfAnn3TWrQ/Cbzc/FCixvp0ds65wbKYo/WA5XtLE8+Sn4PG25zHaRy7Ml5Tg2k+5RKB6wti4w/shktDQiS8taeyemDufebSJyKN7n1sEP2hQZpdDaRz6+iswTwshrNYUyZdZULLC5iTeQckq/0zhyfVri+5TBS+jdzLZUueJsIGTODgJOYA1QTYM5HMCk946Wx8cOAgJ9GknzGzeyU+aOgsGnNXccGvdjZXJyu44Z2gslIc72hURQjICc5cvYnP03it59FEALC
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TmJMWDM0bWpqRHNiOXdVRTNxajRoT2FWTGltYTZLSHVqdlFXekNxNUVZQmNS?=
 =?utf-8?B?MU1XMmVoRHNJMlVRT0dXVkRBOWNBT2x4T0pVSVExa1lQRURJL3hTSmtUamNi?=
 =?utf-8?B?NTB5angxSXhxVGhSdkdDd3hIUXRNTSt0V2ZEa3ZRTFJDV2E2WExteXZGSEpQ?=
 =?utf-8?B?MWFpdGl4Wi9GRm9YV1hjay9xSTRMWWxPZkV6ZlNkOTZINWRXdk5YRWZ1bE9j?=
 =?utf-8?B?U2VsTFlCQnN4L09VQVoyS1cxQTNMYkJhOFlUMU5Mek5VdUI5ZGhyRzk4T1BZ?=
 =?utf-8?B?c0docDhZeDlFT21VRjJ5TTIwNkt0RVFtc1hONGVuTDNYTzc0OVY5aWlmZllL?=
 =?utf-8?B?TzdDV3JwbFNkOFMvRXhGc2pWaXRVKzkrbFNVQm10N2x0dHIwek0yR3A0Z1d4?=
 =?utf-8?B?UnJhdTFpZk91U0VXUzhnWFFmZmRYQm1yWVBBYnhOd2ZlaDdmTWM4NHJKRW1o?=
 =?utf-8?B?NW8rUktnTDRsdTZSSDJseFg5cXNmQXhqWHVPUldkTVhiMnJnbVFBckJMTUVR?=
 =?utf-8?B?WC9zTlE0WWc0QmFFcUJIcmZmK29rYkN0cU8rc1YyMzc1Y1QyYXVlSlZnSGFY?=
 =?utf-8?B?b3VTb21vWUZYYzBDc2FOTFluYmZBV3NlcHFKbXlaMWJVcmZMaHVkYmNGcUxw?=
 =?utf-8?B?Uk8zUEduZ1RJQXhLSyt0L3E0dGIvaUlCaWlGV2RCRVBEaEp4Z2N3ZlNXcXlB?=
 =?utf-8?B?NlVUR3dFdkwwbTFPRzUxajVGWWhodHVLMTRmREFZa1VNeVV0akJYOXJXb0cz?=
 =?utf-8?B?VnBBdUFjR0pZcVgxby9CMmFqbjAzZWRWV2ZqM2piTVdVWlFYMFJpRFNXNXhx?=
 =?utf-8?B?TnN6VE9ZYVNMZnMzVFpKMUtoeno3Vkhwa0pIcDBiMDNtdXhnRjkrWjdxaUVj?=
 =?utf-8?B?NHlLY3VKa0d0NlVUdG5rRld2MVNKcUxXako1OVFDVXR3eFV5UGNISW5lTlFW?=
 =?utf-8?B?VmFWVHFGSFU4cTR4b3BWUkJ2NlNIU0QwaFZUL01aREpZYW5vSXRMVHpSb1RK?=
 =?utf-8?B?WkZMWHhtbXYvQ2Z0bWhPTitBb0ROUEh3d0xzdEJtbWNMeER4S1Qvc3dyelM3?=
 =?utf-8?B?TTA2TmhQYldlWEcya2MybS9KemZkK25tVVlYTGRoREh1TUtLM0FWUWlhNTVs?=
 =?utf-8?B?eUgyNjdHNk1kMkg3bytvQnk5ODRvSnF6MllqdHQwUkNiRWlhRWhSQ2cva0RU?=
 =?utf-8?B?STZaQ3VXOGJXNWdxVlJnemJjSFVzVXRmcjh2VGp0d0t1Zk9tbE5qRmVNTktl?=
 =?utf-8?B?T1VsbVZNRnd4d1NkTDZkUm1WeHg2OTNBbkZpV3J1NUxIOCtDV0NSUEhwRGxs?=
 =?utf-8?B?ZUdabzg5cFQwa1RhK2N2Ky9aNlpzZ0V4V01SNDF6VXBIbTJWWEhvcEwwakFE?=
 =?utf-8?B?WXZINmpLbFhmT0xpc1NVSUlVRjBLT21nSVQ0US9zakIyMHRMSlZOSkRSbHNz?=
 =?utf-8?B?VGxZT3lzRTBCbFpyMUhob0ZLSnliZVY4cUpqa2R2Nm9yMzhlaXhjUDA3MzJs?=
 =?utf-8?B?RFZKR3FwRjN4LzVaNDBETmdxZHczMHpOMkhhbThjek83Tmx4N1VobUVua0ZW?=
 =?utf-8?B?Z2pDaTd3MjFzcHE5U1NGUXVkQ2lpQld6VlhKcFBjbDRvTDJkYXNkM0xKL09S?=
 =?utf-8?B?L3VrZGZwRjlyMDNiVTRGWUxzUnI5NEV1VHlLeGNsbCtyQUdPdkVVT2tUclcx?=
 =?utf-8?B?RFN4NS9FdUtsRWc1cG5vY1MzdlIxeStQYzd1bmFXU2RtQWJnWGgzWXYwUjA3?=
 =?utf-8?B?aWsyWnhtQmh6MEFFY1ZnUXhqcUlGWVJqdTFUaHVSQUozREMrVXpxN0ZBWnRO?=
 =?utf-8?B?NlZMaHRUcXJVVGF3N0crZURxZkU0akdEZHU1ZGtvZWlORWdBTEZVQTMvKzFw?=
 =?utf-8?B?ZDFSazBEMTZvejdCWUNvcDI0c3NSN2NhSVZUbW11d0FrTHlydVB4eUpuRWlO?=
 =?utf-8?B?SUd0U3FUN2FMNEYxU3J0SGpVUDlYc2VzQ0MvQnc2UEgvQXRuUVcvbys3Sm5K?=
 =?utf-8?B?NTlvVEZ5WGNZMER0K1kzN2FzM0hvNm0wemU5TWplZGJRS2tlY3VJM0RGU3ZN?=
 =?utf-8?B?SVVnRnZKenN0Mm52UGExV2RuaUVqb2RLd3FXNlRrVnZuNTFjdVFSQmp6RkhN?=
 =?utf-8?B?a1Y5WEwwa0FrbWM5cWtMOVNSWDdmeDYzNE9vZFVFL1RMUzgvV0hiQ0UzM1RC?=
 =?utf-8?B?WUdiUmg2K1F3Rzl4dkViWityMHdnZTJRQVNEUm91Z3RYZDZGb2dVb1g3aXQv?=
 =?utf-8?B?NktWdlEwZ1Q3N3YvUXNETmx3MjEvWXFudmViUkRmTWlWZlJYWFh1WndwTllW?=
 =?utf-8?B?SjV4cHl5bWl1RGhhZWdoL2FjUVNJMHpVOVoweWhiR29RTmZQV21jdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b0e82eb4-edaf-4a25-2c5d-08deac232923
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 10:26:55.0328
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: HArAkjxq2V+1VE9BdXfC1zQ2g//ytOZ+ekRlwgu5P4EHaT/9mMoNXe9agzKbKjtMrQ0hlRyoPVOGRJEDtNn9jQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6393
X-purgate-ID: tlsNG-4011c0/1778149619-7C8788B7-DEFC8045/0/0
X-purgate-type: clean
X-purgate-size: 1045

On Wed, May 06, 2026 at 11:35:45AM +0200, Jan Beulich wrote:
> As a comment next to one of the invocations states, get_wallclock_time()
> can take over a second. The order of evaluation of function arguments is
> in principle unspecified; in practice at least gcc looks to be evaluating
> them from last to first. Hence with NOW() invoked first, the respective
> value passed to do_settime() can be off by over a second (which is in
> contrast to __get_cmos_time() attempting to get the time exactly after an
> update, i.e. [pretty] precisely at a seconds boundary).
> 
> This also addresses a Misra C:2012 rule 13.2 ("The value of an expression
> and its persistent side-effects shall be the same under all permitted
> evaluation orders") violation each.
> 
> Fixes: f64134cdb81c ("x86: Fix time_resume() to notify all domains of wallclock change")
> Fixes: 0bfcf984b727 ("x86: Reintroduce clocksource=tsc")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu May 07 10:55:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 10:55:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302572.1576448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKwO4-0003Wo-7B; Thu, 07 May 2026 10:55:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302572.1576448; Thu, 07 May 2026 10:55:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKwO4-0003Wh-3h; Thu, 07 May 2026 10:55:24 +0000
Received: by outflank-mailman (input) for mailman id 1302572;
 Thu, 07 May 2026 10:55:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wKwO1-0003Wa-S5
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:55:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKwO1-003OgN-8p
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 12:55:21 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69fc6f90-5cb7-0a2a0a5109dd-0a2a4504df22-34
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 12:55:21 +0200
Received: from [52.101.61.51]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69fc6f97-1dec-0a2a45040019-34653d333068-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 12:55:21 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by DS3PR03MB989145.namprd03.prod.outlook.com (2603:10b6:8:39b::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Thu, 7 May
 2026 10:55:18 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.20.9891.017; Thu, 7 May 2026
 10:55:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iv3nZ1oVzA72GVMmptz47rL9woYuV79KO1mYw78RYusbiQrWyZLurrV/rpX+OW3pS3qRN0XxFJqPhj697dylPyusMOz5wlwnWJgkLivNNplTBG9z4xxkApEi+McBlR8ofIE8cFcsm3zKtO2DIdVP8pvHSwkerHM5i3D1m4P3msmGBFw4KF5c7Ayni1AeEKrwwhVEewAOlTdRTv3dgPXMaitHVc/6mtogg4VHldETKcn8o/IY28P16l6a0cZDx6G0XzXJTNCq3PgSWB0VMH1V8H/o//E/eCVJq8grUaJ+RGB8If641TPyEpTs1sslGRZjH6c3uFEU9cm9ByQvnEoYoQ==
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=JRzMcfc83jdoIIB7XvQLPSDm7GDBAb3wY9DvLDk3nqw=;
 b=c26HGZpjyvKSnC8DkD+6GwqYqy1fNNG7qlx9nwLwwHOxsjuhLHl7nUi7qs9QsRKvUeMxBL6J5gURWkolznu/k6mrGMnGJ/td8wiVw+AZcUKif0HUCy2wBRKIm7qoHLA0p0TbNlKn9E0RbnQHxnQ1I2ZNmh19RF1qTJeR9ZdljXP1D5thRkGBGnA0D55wtQ6qKClkrxCEnGGE6V94G6OO6Pd0GlJeX6tTwamCgshyKgcH6au9xnFrkN8GloafRZflXC/IXM1WwvOnWqAQmo+rHEP7UhnOdaN2A2HDPMKRELDfoFKQJ0zyXgXM2dTLliFjygBzIibyHK7z+8SHhrvwPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JRzMcfc83jdoIIB7XvQLPSDm7GDBAb3wY9DvLDk3nqw=;
 b=B5xKnu/XSCvIikK6WanQP9ERtLr8+ScZWa8coO8H4mkbLbbdnuKz4sECLUsXB0BWAJbR2XCLLcpM45plgNqCiMJW29nzom2wEWTt3iB4UVbXnkbjpsl82zMz/ypkHHwzJiurw/Fhi033FLUD10eHxYXJsOkDTcLsLwzh4oPuhB4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v2 0/2] nestedsvm: GIF cleanup and fix
Date: Thu,  7 May 2026 11:55:05 +0100
Message-ID: <20260507105507.2078971-1-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0581.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:276::11) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|DS3PR03MB989145:EE_
X-MS-Office365-Filtering-Correlation-Id: a2934a4d-fc7f-4134-fb74-08deac272074
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	jt7lkL0HFXAU3BQUKuqa6TVemIm3qzVAz+IBvJmL+siS8DgIGNlRj2+b/uIvSECUpLc+Ljh6JodSGmUzGAa4ztgaJvBo07+MdI86/hPTc6thIH5yKBz9GOw4yG3IJuCIdff1Q1negVfMpshmaLORlBt2H76e54Yd9YrK2uJA27oD+u1aFv807lhSSBei6ZWQ8H8bLxTVdF18hOps35Qg3dbm4cl2MWa9hIZGO29mnlU/RfQ7DQx3FtAgAxN91zb1/oUUPmGZGIKLc4ANb4LPlK5WjBTOyAZTCOMg3rYxmomsn5qQmnfTAXG3kZ9z08b4nnMcXQHsgLcea2Kd7CoFyliPKhYLQSb3A/A338dxhmWSZw5oy4j5nxoe6nFhLpnshyukLvJ1ET89iedlvjdj8CAZKDHrdL7ouI7gV3g+LKgs0tz4Z3l1NifJOmWm93dDLHsydAWtUUOYvn99lwUCLPAK/uhjmXwwxK/JXMA8G4hltoLC9YT08iqvnLXYp2zd1K5qJLoD2I79Pwl0GFxu7GsqICEAzqaAgWyDlYHe3hBX2d3H6IsHYv4yit4aL4XF7FpeO8UYlCp+e4jQQquER1jhNh4bpN4+PHQpoIEpLPou4faXWLkQ8A6naW3/B6p6VJT8QADgKbt+tAm787VWDNdrn+/zwnGyUNzm/cTH8qKFsuvAp/IpOsmq0mUvKSRD
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?WGs6hhyY4pW9u81jXhwOKmZM10CgRYP+KEIm0pPP6CIOSMo6xYEjlyAqYALO?=
 =?us-ascii?Q?JDpZwpit64A4IaZIPa1LXSfoM2YtUX+6F3PpFT6wV5mK+9FinsklNiLgIgAr?=
 =?us-ascii?Q?9fZOe9f/RVqHjpzBarZGbU+TfEXGW+fNU7u2U8detj7mXirPcg7IaL877wcx?=
 =?us-ascii?Q?ri4k+Mmbef6XJW/EF8+3LT+IFyMNVRCnUJBjiJ2TA1Coa9ck+vhDKytcRhRe?=
 =?us-ascii?Q?fs4FDkCQ83hrPcPvXUnrUWIr9gh/Dp5pX5HmmuaouILexHV4LhcnmWKSalxS?=
 =?us-ascii?Q?+Oakw6pfVc3dQAeqfeP3N3QzNNENVrpkJfi9+SHxbW3Efu/p8OGv28FKulO4?=
 =?us-ascii?Q?9FvCxeWscZFQ/yrdhYNMR0AaU7hW478Uhpco6DaNEySnTKoT5K1BeMUPEnlt?=
 =?us-ascii?Q?iHhLud/VXlnXZpxIZLJdBqmWGDtcUSWVDa02p0ZgXfIT2S6qcNW9XbIRx2iJ?=
 =?us-ascii?Q?5Y27oXa26qM394EKIhzsOZscjNbmXnz0JuHGy/+a1NtZWg07iVnjcEShT7QD?=
 =?us-ascii?Q?5XFTyUn9TDOyrdTfhh4ux+Rg63miT1BCMfuDYNEQTqtBKJMuFKBhHwlIguFp?=
 =?us-ascii?Q?KbseZenAVxKrw1GlTCohfdgsAnDBFHBaCC2g7rAjd7GxPZ4NOLYx1o3MpIDd?=
 =?us-ascii?Q?xrUYO02igB3O8qywxfzw3OcWE755+bvXjqN6M5xNRKFeuXfx4FeBmgGg0oYT?=
 =?us-ascii?Q?qeIYjkc4/8PjagwnVwOy7eIiFg0DGfRiFnhh8fUhnNY1vu+L9FAOzgFEXM20?=
 =?us-ascii?Q?zlGqU1O4nkTpAny8xwyhtqvxoxozcIpzrjUlVj4q1Z4s45J5tVBhu+c3iOKY?=
 =?us-ascii?Q?ED5ECoJRSkjw4TNobXsvidnE+uwdflUlTV/XwGywRtWCgxIfF/oneZNYRNjr?=
 =?us-ascii?Q?+u0aGrUGfKoELrXxUpO9bFf39qD5gaYAhC5Oqg2pUDwawnB21eVa3nqt1pgz?=
 =?us-ascii?Q?GxTl9CRPVKz8kuChZu6184PJNuO2kYR+hcKTvmwWOMRXMOYMp7VMkuN8+IpD?=
 =?us-ascii?Q?xoAH2QZBkZCVBmX5QKQlyFxfeKQJoC+sLUQF8C0efzC05bgV6VpypzSMgtOF?=
 =?us-ascii?Q?Bfj4bWvI2/3AKKKL3+QArUmX8tA/pTPj6YHcmYgLxCTc1VShw9HkEJ1hvbjO?=
 =?us-ascii?Q?bVNzoz36GOTFPbtTcD+5lcA93nFhw3IQ90yrA8DBaQ62S3IKVgnPYlN+erBm?=
 =?us-ascii?Q?UiByLjpoTh7yTes1SChKox8Sslcr8KcW2PF4lZ/gyAvdpZAclGdlpub1BURf?=
 =?us-ascii?Q?j4gRCOFyvbdc/6+hFMqaTxmGv6Tgw+NbuDcAVfZf8wEIvZ3nd0a9vFtZlSsV?=
 =?us-ascii?Q?azGdn9viss1Og82sF1WP1PF5yIcHYASOH97nReqXJmCytWI8rdtoGymdMIXA?=
 =?us-ascii?Q?nhCWI9E26ZOiqELiVtrmC1BsYAUflQnp3GSW5vdOrdZkIm7Ja6Sgot11CejU?=
 =?us-ascii?Q?z2Go14scLS4yyE7LDQNBoUV83M8jo8Vcf/jBfc52EiD+Zw8R26UsyojFGTUW?=
 =?us-ascii?Q?tnRL4ajhSbe4FHKCL54h98bX+T7qbcU1WCyew0a8rkSiLtfk5vNNj/ML62Lb?=
 =?us-ascii?Q?P7jtJMluke/DTnHo4OKotEbUj0o59vq5xKITyDoW/aPnqyK9tMCtXxYMZ7mo?=
 =?us-ascii?Q?4cBosj0tet3ObpMwsLy+UaDqXxBTcHZP0nqHL3Shz9riZjxn4rLSjO9SqHVL?=
 =?us-ascii?Q?fTKwakzyQvEUPbbkGCq0wEP6gHREuXNlJT1SjyqmEYTnSJZsML/sMrOmw/sL?=
 =?us-ascii?Q?VWzkkkYG2as90W71MPGEc99mhH9nhFI=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a2934a4d-fc7f-4134-fb74-08deac272074
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 10:55:18.2309
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Ps0y0R401GwRau30weFDsvICkZOBSgI440GmiLGeNQhgnClscefzjWq7zTtihxYbyr4ZvX0ktmhFXs0Aj3c20fSCT06kT6fXTBHLzEuvjDM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS3PR03MB989145
X-purgate-ID: tlsNG-ebf023/1778151321-297793FF-518269E6/0/0
X-purgate-type: clean
X-purgate-size: 686

Hi,

The first patch is code cleanup and shouldn't result in a visible
behaviour change. I confirmed this by writing an XTF test that checks
interrupt and event delivery behaviour with various combinations of IF
and GIF set.

The second patch fixes L1 hitting an assertion error in Xen. I confirmed
the fix by writing an XTF test that calls VMRUN on a VMCB without the
VMRUN intercept set.

Thanks,
Ross

Ross Lagerwall (2):
  x86/svm: Don't toggle local event delivery on stgi/clgi
  nestedsvm: Clear GIF when injecting VMEXIT

 xen/arch/x86/hvm/svm/nestedsvm.c | 30 +++++++-----------------------
 1 file changed, 7 insertions(+), 23 deletions(-)

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 10:55:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 10:55:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302573.1576457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKwO7-0003jw-EX; Thu, 07 May 2026 10:55:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302573.1576457; Thu, 07 May 2026 10:55:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKwO7-0003jp-At; Thu, 07 May 2026 10:55:27 +0000
Received: by outflank-mailman (input) for mailman id 1302573;
 Thu, 07 May 2026 10:55:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wKwO6-0003ja-MT
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:55:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKwO6-003OgN-2y
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 12:55:26 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69fc6f8b-5cb7-0a2a0a5109dd-0a2a4505e784-38
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 12:55:25 +0200
Received: from [52.101.61.45]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69fc6f9c-aaa8-0a2a45050019-34653d2dad8e-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 12:55:25 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by DS3PR03MB989145.namprd03.prod.outlook.com (2603:10b6:8:39b::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Thu, 7 May
 2026 10:55:23 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.20.9891.017; Thu, 7 May 2026
 10:55:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KgblRAlhqfq5pWmnp9Lmal2yUHFx62ZeCIaR7ZSjTWo+HAJNsw9VAaZ5JQxZ4jjN/l3SiiM6b6AwRTcdsobRw3bMK66Seh0xAyCNyYwd5/ZhkA7zh/ZmHYlIcGpxN6TJZcLJS8iFbX2t/m4nf84be2jr+hh2xEpmEhYXfGboC3QRfjakrWLASTwxVAIPgpmVFKk6/ZfwfrjBP2znsDHiD7K7Q2jhsdDlw+yYgaf8wO+uwhVWxh2SA9u3COgBN+cM0hO+b1e8i1t3VyxPoV4QNncS1EX5XSs6e/jebh0YUCc2JnO7XlsisKvzUFjZXbL5iwI0zmXY4I/2LyyR1Oha7A==
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=KvcyAkenR48qSLtBoZxitzffCgvZelNVs/f82QPSUT8=;
 b=aWpETBmUbRplB8UdtImrQ2D0xIr3vKN8lcRHWsSX1TMMVO7vNMbVpNFNMm2nz/KuneI7dIlrOFaPEfdHcTUihmWMMvawo7fDd91D/1cOg/66d1BaTRQwOL5ZtyACFNeOrbA74HlYNJVWW29u/XnMYL5CwufXqWnbpwrODeCfC5CnLPcqVLmJ8+FRNp7s/AQxr0/2fCIcOz6B8rvdgmWGDd/SltcuAO5x8r0uvjFVgO9rArpNnc1775GpieaXHb91VrArNvzFljfIKDT3fX9AooJqFJVvJmFzuZc72X2hB6mvamHPrJF++6dKbAvPmtR6+YNT24cLeJkDMiVWyJpo+w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KvcyAkenR48qSLtBoZxitzffCgvZelNVs/f82QPSUT8=;
 b=kioCf1ZyR446B3oPZ+IDdDWPf3bcm4Wk70ykpTL9Pe91leyBARwjujGv8ryyZu+S4+i6If1S0PQVU5u1WxUGBa7sSejtoCE5/5I7WemJNyUGCruc/iQ2JwGi4vhNoR243+o3/tQqPdmYIEyX8Y63nU7b0OH+FmBvPvgABQUh0r8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v2 1/2] x86/svm: Don't toggle local event delivery on stgi/clgi
Date: Thu,  7 May 2026 11:55:06 +0100
Message-ID: <20260507105507.2078971-2-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260507105507.2078971-1-ross.lagerwall@citrix.com>
References: <20260507105507.2078971-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0580.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:276::16) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|DS3PR03MB989145:EE_
X-MS-Office365-Filtering-Correlation-Id: b15cbc55-825b-4f77-8317-08deac2723c9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	LmHNSPcReO6R/DgypCNwTZ12q6+OP7hz0SWTBwu9Sx6uwEU8Jg9LczqYyrxN3zJvNcehxwn9rqdPlC93ES8wy/wwqYX6m70FQUCra1HrNKP5+LxJH/Qhi/raWAppVhZCUQCE6ErptMPe5BVVn+EqUNiOgvc2LtAx2Rbp1vnTMJAy7bZ79aylYKsR8suB/OGz1W0fTtYZj8kbT+Pk7P9QNwL1opa7s4TOoNztvTqwixAE4jDyokL5tjqz88dMJHZRk/IeB9+30/bB0CuuhOE9sSDpi5WihxrOMxUm67vwtElPO1LmSIWVdv2gtmrpD5xrhYHm7jWDDlULRIsVP9sWWi0xFN60J/VHEpj0P8Dre7FXgKQgZXx/zRM798gwwfYEs+Up5qrSeHTlzT4+ir4u0guFCc+icpoyEPFAQKo5j9f7y4ePvmr7P7T1lw+g2rOElop9VSgq4o7exmMuxLhSgjjEzdiTfOLzHsUhKOWBuBFcN3sbtw8ZaiOit6Q7ymQMKGzOrdV377R+BTpYL+WOeK9BK5MCM7UzsQRvnG7FEiUyXeF6iroojXlvgT/aIDVPzZDkrBVlIeArWIfT//u8TBoNkA4wQtbKwsJQThwBQBVtFGLcIUD4UKsogaRloZAV3YITVyo5aD1lsQzJ73Lfm4YL9+LSwrFSchpYE71TL0oLniKN9raXABWe8gSPrkvo
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?9FqnXTRoPRYwp6wuM5ljfCOLfeC+2OTnoZLEMNoOc9j6bAEDpi7fDpQuCvGN?=
 =?us-ascii?Q?hFaXwzYLatAJRtTomY1UgSfzx6yirBsQSwtXdoiACrRuKomA4OHrZy4IK1S6?=
 =?us-ascii?Q?PBLuUuvD27K5DDQDYVTXR9Hd9cbeqb7vX4utb5ZeYuWFoT88y+36FFxhoOP1?=
 =?us-ascii?Q?UGkYcRZhzlRJ8KuPoB9k6VnoIRE6uqXMWVq14QFxPbeZqjjVVKa78jLw8wpo?=
 =?us-ascii?Q?cgaKZhKIp6PwtOuyrJ2Fu/dNz+4k763Gq4pTjv0yClUb0JdrMNqJWuBfEKyP?=
 =?us-ascii?Q?gRZ9qgqMuLTCXZafd8OZvkya8r/E1s0eJXxX+pUfUVGcQEmN9W8/KwQASk3f?=
 =?us-ascii?Q?WfwoVwnKYh1VU9VGHEsbCCx61MDRUncX/3ki49jTy0VOVdKxcCX9PawUUfX8?=
 =?us-ascii?Q?VV28nMVBf2tYtosxjtI1spdm3uhi1GzliklcgsxWt03GyvJV+cEQsCPuEd6M?=
 =?us-ascii?Q?CkP+L2QzXcSAx32n75V0Ue6TVKLGHYtLU/EoqVeZA5jAfQQGmFiQ8NZENijw?=
 =?us-ascii?Q?O32hRHETr9i+NBO052CjcosWdI/EkgXDkkPfE96DEFgICNH0QFtYoEwplMd7?=
 =?us-ascii?Q?Hk0wDnKGgLGS2ao44uWTf5OEj5iphefibHWNcF1k8H0ffq3MdtAUWF1QgSlA?=
 =?us-ascii?Q?tblR5o/jGaZ6pZ6DX7mfQTH6WZG0Nd0JzUYumgjrmH7tGl90rbPazKIWbBBX?=
 =?us-ascii?Q?Qo6R1RIOhvtgP1qYfSZPFaaCwgfgOq5tYNeR6tWyR8ugocXDmC7tCDIJmSEz?=
 =?us-ascii?Q?k7V7NHfGB9obsHzZpRZQdAUrJkrJy7qKzIGG9GICXZR1256zDjQgyA7laSf7?=
 =?us-ascii?Q?fGuRThteeKRYLErXTSCgfI3h50oN+1OWYW/XG/GJxt8upgwDcQCK9SZ/YrPi?=
 =?us-ascii?Q?ib0scREdOLqGGBhDou29/lvhx2cRVJyb9MOuZ0VJeYsXn5gkmQ5r7vh7yUqK?=
 =?us-ascii?Q?iZ21CmCnSRqxGRlE7qKUseV6IxX8Tv0kF1IX6NJXaF9X2J9rlei50oA10xfn?=
 =?us-ascii?Q?zw7mzyGar6Q2JLTuS/uY+mQ4Yis9ZoFsN9FeSjasIyFFvcj7lQAW8FkL5Q/A?=
 =?us-ascii?Q?1a7TRwYfTE4mzDV0gVsx8GT6Gwr5DpDcQe2/sq2mwm/POj3Z2PtL2g/hAGH7?=
 =?us-ascii?Q?U5SZ+TJy3OMlW/tPli/2MXwbCTz3TCXIB2PDxTCavyG1jYq2H0LUrBPpTyl3?=
 =?us-ascii?Q?rY+6X8rREhiNDCuLqgVwrheIeUHyYT03U3NV1gtjgRe1XxhNjKXLbP4i3zhV?=
 =?us-ascii?Q?9J09wBZ7xeypZOpp27xoQ2441+ossP+gxKCDdq7MrNcMsd97B47+SM/sw55O?=
 =?us-ascii?Q?n/S0OfZXlaEy1whBRS6XZ6RlkROWPSwzWfMQzPIQk0yhJEDT9sl7zUjPIbWO?=
 =?us-ascii?Q?+F+bgK16TFEE4SjBHPvnAzXO+v3OAW8LNejIncAz0c911KvzBL6uMzJLJWt8?=
 =?us-ascii?Q?5J0PEA1grFtOLczNyhEOrxM0N96KjtEgpAVrZCM9Ag6yzjbQtxGnxne0XMF1?=
 =?us-ascii?Q?IDqRQEW4aPjR/94OFIMRKT8ksGNzlM8s6+JTDUwt9dLDkDxeJu3vO3KClduH?=
 =?us-ascii?Q?mODTG4hiZ+OLNMcv1BxVGTAw1k0UyriM2nYWaBsmunxJnV8DaYDafJ8KaR3Y?=
 =?us-ascii?Q?2cTqKt61AGv9FICVNS0oBS4PZaIGvxjLkvUVbHgSiYzkM01/7JlL3Z+LWdUh?=
 =?us-ascii?Q?kT+uslbKu+WSYQ6qo735VvvNoKAtKJHkdd4y5OgGmFvitjcY8HtEGdzSixfP?=
 =?us-ascii?Q?3zN5wvTBYlVFT+C6AgmjCjBzemwff8o=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b15cbc55-825b-4f77-8317-08deac2723c9
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 10:55:23.7938
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: h+YCtLZ8rOPW2guT5siIe+nFS1vX4j2Ctg+5H/rDmX/An2vPsqWghkPKCV8v0kVrC1DbrLRfoZYQdFC+R3FD8uvTNGSXGBNTMvjnJr6VpIQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS3PR03MB989145
X-purgate-ID: tlsNG-c201ff/1778151325-E2B96443-743B0F5E/0/0
X-purgate-type: clean
X-purgate-size: 2650

There is no need to explicitly enable/disable local event delivery on
stgi/clgi since HVM event delivery already takes into account the state
of the GIF (and IF). This ensures the behaviour is consistent regardless
of whether vGIF is used.

Fold the functions into the callers since they are now only a single
assignment.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---

New in v2.

 xen/arch/x86/hvm/svm/nestedsvm.c | 26 +++++---------------------
 1 file changed, 5 insertions(+), 21 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index ef6fa5d23b67..64fbfe8fa71f 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -19,22 +19,6 @@
 #define NSVM_ERROR_VVMCB        1
 #define NSVM_ERROR_VMENTRY      2
 
-static void
-nestedsvm_vcpu_clgi(struct vcpu *v)
-{
-    /* clear gif flag */
-    vcpu_nestedsvm(v).ns_gif = 0;
-    local_event_delivery_disable(); /* mask events for PV drivers */
-}
-
-static void
-nestedsvm_vcpu_stgi(struct vcpu *v)
-{
-    /* enable gif flag */
-    vcpu_nestedsvm(v).ns_gif = 1;
-    local_event_delivery_enable(); /* unmask events for PV drivers */
-}
-
 int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr)
 {
     struct nestedvcpu *nv = &vcpu_nestedhvm(v);
@@ -161,7 +145,7 @@ int cf_check nsvm_vcpu_reset(struct vcpu *v)
 
     svm->ns_iomap = NULL;
 
-    nestedsvm_vcpu_stgi(v);
+    svm->ns_gif = 1;
     return 0;
 }
 
@@ -667,7 +651,7 @@ nsvm_vcpu_vmentry(struct vcpu *v, struct cpu_user_regs *regs,
         return ret;
     }
 
-    nestedsvm_vcpu_stgi(v);
+    svm->ns_gif = 1;
     return 0;
 }
 
@@ -1214,7 +1198,7 @@ nestedsvm_vmexit_defer(struct vcpu *v,
     if ( vmcb->_vintr.fields.vgif_enable )
         vmcb->_vintr.fields.vgif = 0;
     else
-        nestedsvm_vcpu_clgi(v);
+        svm->ns_gif = 0;
 
     svm->ns_vmexit.exitcode = exitcode;
     svm->ns_vmexit.exitinfo1 = exitinfo1;
@@ -1502,7 +1486,7 @@ void svm_vmexit_do_stgi(struct cpu_user_regs *regs, struct vcpu *v)
     if ( (inst_len = svm_get_insn_len(v, INSTR_STGI)) == 0 )
         return;
 
-    nestedsvm_vcpu_stgi(v);
+    vcpu_nestedsvm(v).ns_gif = 1;
 
     __update_guest_eip(regs, inst_len);
 }
@@ -1523,7 +1507,7 @@ void svm_vmexit_do_clgi(struct cpu_user_regs *regs, struct vcpu *v)
     if ( (inst_len = svm_get_insn_len(v, INSTR_CLGI)) == 0 )
         return;
 
-    nestedsvm_vcpu_clgi(v);
+    vcpu_nestedsvm(v).ns_gif = 0;
 
     /* After a CLGI no interrupts should come */
     intr = vmcb_get_vintr(vmcb);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 10:55:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 10:55:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302575.1576465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKwOE-00041Z-Ll; Thu, 07 May 2026 10:55:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302575.1576465; Thu, 07 May 2026 10:55:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKwOE-00041S-IW; Thu, 07 May 2026 10:55:34 +0000
Received: by outflank-mailman (input) for mailman id 1302575;
 Thu, 07 May 2026 10:55:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wKwOD-00040R-E2
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:55:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKwOB-00Afc1-9E
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 12:55:32 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69fc6fa0-bab6-0a2a0a5309dd-0a2a4503c8fa-12
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 12:55:32 +0200
Received: from [40.107.208.5]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69fc6fa3-672d-0a2a45030019-286bd005ae35-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 12:55:32 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by DS3PR03MB989145.namprd03.prod.outlook.com (2603:10b6:8:39b::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Thu, 7 May
 2026 10:55:29 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.20.9891.017; Thu, 7 May 2026
 10:55:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gqxiFNqEJ4uaHrJN7IehzlCR4pHthuLiqb/KClcgLaOW5PlgfjP+0P0x4tARyftfoYyp/Yjjoa+1/y1w7IIj3vRZjr091yQlCzqU9IRNu47llEmU7y5vcPenHfmJdf0QIlks1LILd9bE0gCrmuZ4YHbsjAwkoIg8pU1by8/Vd62Z0Z5kzC0L/3aU0iQjvoxiQ+IsoMKamzVcuMZsK5JwdM3xk5LaE9KdB9oe/I8Wcx6hxUyYsIDN3Q5QmvNWJ/0hP4u+jwtL1I8+f+7TpsThSumSY+ujYOg8xThFuLC5kxvHu94jjnW9CGliJf7OFiQoAkoPKWTB0km8bYcV5ppaiQ==
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=LJPgfvfHsAx+3DSvYAonI3+tuzu/fv903d4CjWROgaM=;
 b=rObXxuRmc7P4d5KXr1A4SQWKLQNxeb7/z8A983rAmRECMn0zj8ZN9+9nSmdBaSf4MxoHJ637JxTaexifkPkTzAyQIUHeaa4A3K/5Npt7YtTo6TuA5e1fhpipq6AXL1AefIWYTr4OAt3lGi7wiZUlUq5DnfHbqwLSNGiteruOzuSw5z6GElkHTgQ3uT8VCGG+2u4u58X7E1joPiniE7sUQHUIeX7uFLQAkvwmPwupbzO5G1m6M/OD/Qjvs/4gpcxrWNkrRpodd935qOYhb7RudCRS5UnIZhURLqXgsTB1LNtezKGIP8dC6jJbGPsJFofEKuXmaUru0alzTTJYf3h1dA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LJPgfvfHsAx+3DSvYAonI3+tuzu/fv903d4CjWROgaM=;
 b=sz3ow7cL+K7Zfib1ABcD2SfN6flJ2OZTBwuYjsrZFgRQ7K/IfKi13ZSox/j1iMT0q2Sst0AG1HXKcjXBXl4dWPBa37gEC5RRJWY4WM3/AKy9tVUw6K9yAVcXbBmanBmDLXk6QdGLfTH65XB7dutR5DjBko+TmKlaG6O2V9ojc6o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v2 2/2] nestedsvm: Clear GIF when injecting VMEXIT
Date: Thu,  7 May 2026 11:55:07 +0100
Message-ID: <20260507105507.2078971-3-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260507105507.2078971-1-ross.lagerwall@citrix.com>
References: <20260507105507.2078971-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0522.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:272::8) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|DS3PR03MB989145:EE_
X-MS-Office365-Filtering-Correlation-Id: c5b1f35e-0b4d-4024-68fe-08deac272751
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	NM42Xncv/Z+RUnXL9nq830iFjeAKzDmi12MaWgLCTulLfogOX+4eGVC+11ItmV13P6sXEsE6N5A0ddNxPXxASv2mkTziuwUtaRXfT1srmuKZRnC+vzW9SAX6sAR/JQXLqU/Edhv4Nn6CinT7766cWieZvMmb52Cy1jsNN9e4sYbNGen8IiNI86zvG63dG9wAw56lmpwGbfaWVW9Sl/7WQxHHls7g+tUJ09fsUVQ/1HNtqNOQeLM14klTzluYVMVN76IDRCNE3W64TZqSu0hKGczLWb8P2sQhSrfy4vcyJ0bO2Uj0F6DXGCA+7jut4nkI0IeBTcAutZw0O2bQnVFraeA56IJ/GQGv4ASbWl1CUiRa0hMCGBb34OZZLeAlpxB3VTnDMVVZeOTSl5PQMBX50ySnzZJmo1GkJk8logyq+kV+1b/G/5Cvk+Vo6HpXeZo4K3Th1NBmnHPfoqKg0KCspYlmqi8dUNyvniZ5HTmIgUf0lxplg54nP/OxEojGhieL+H8UjEz6GPLsodPMIJBfLHR7pRRDyrFnzQUSNQWUvWG7nznJgPggSxu0mZXSxBBBE3+reSrLa1+DXRRFhXHb3JyJWlSmZf4dYXjAIj6fzu5OQAbRu23Lz1zgouBWoqvbVimGvCbdxvjvKjeHbBF7ctHOMWa5tEnM0dBGINuNR7YZ+K/DTDaQr1yLDE1brrKE
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?xvxX2uL6pFt8EJnws1hJlDGzVefpSzCq1KRcHgl/x4bN+Jg8q6qerZxbhwaV?=
 =?us-ascii?Q?0XNFJnPc4Bb/HLCigdZvx4hLhUOX9Zj7yQItvNry1HR0TXJK4nePjlE81Jb5?=
 =?us-ascii?Q?+JcprlxiAOCF8KDb/sE8p9uUo0+j9xD9ZBjZfsE7LsUNkYlzZfXNFb8JWqYH?=
 =?us-ascii?Q?yCOusq/j39tLi7jwu4OHdBwys8O51bfK9wAazqWaYdI8InAHGcCQDe4xjGfE?=
 =?us-ascii?Q?vXumNpc98700HqY8aFejZcrjHdg/HhNfjHlBImzvI4V+L1E/ixqhpXnP5EME?=
 =?us-ascii?Q?HScWu1/S4b7x08rjjvkb5sLDoNsk+zj831i+prqwvEKdvCqn+3SsYXHN86QB?=
 =?us-ascii?Q?G3cJ8/C8E4LAffR7RFtJMtedpPHcpjg7UnvcGIhfT/8hogK5lMQwQ6WTrqaU?=
 =?us-ascii?Q?bFp6ZKo/90udYdy6lHdEiJ7V1iqe+kEqvX5/NFniHrPquCrQCboLgXQfIDrW?=
 =?us-ascii?Q?nayDpl1rmPwlk1hJ+/HdXOg/wtoyjLd3Do+0+1vOlxu+72ZjEuB7mL2/9ise?=
 =?us-ascii?Q?+d7meiK8AiH+n5+MS8ogDnNjKoz8NOUTw1yi59pOC60w/VBVqVqXD2gqfJzO?=
 =?us-ascii?Q?5W7n2syzDedGxFuauP5bANy2O6wYp667zs+JZovnueYRGWu8qScolCuMXo76?=
 =?us-ascii?Q?nvpTADN+Sosh6X/wKPzKYvl6I280Jwalucd5h5ZCkO8YMVtIIOYsdfK2Ided?=
 =?us-ascii?Q?dY+F3fxpm2BDSx8FD5041eiNtaFHdH+Z2e5kaXcdJDMTHywg6eR1pum4zYrq?=
 =?us-ascii?Q?n6znfmLj72KvpBm4NcUMhpMdWTkh5Bz55NMiKl02Eld/FvXj7i6VoxdonLZD?=
 =?us-ascii?Q?G6NHloB1KOlRHqcDGaADVBulmA3xDnNzN03rBfjGUqFy+dqlZL194IFVgCPW?=
 =?us-ascii?Q?iNG8fITLgaXLYuDTn1qFTetXGIadWDFwzsryLPxga4A43661YTeAY/BETZ6K?=
 =?us-ascii?Q?Md857ZT6qbAoppQH3C08JOVFM4y378qPB/BNwSO4cImiS3nkniVdoQozZ6ox?=
 =?us-ascii?Q?WDL/3HLLNUYOz/EDtFhaobk+PvQL+4mZbdLKgMvmuroJo3U34WwTvxZYuqoc?=
 =?us-ascii?Q?XVKFpzNKaOMt4nB79tK1FlYmgEEvLdbbnqA9wSL1N91J8Hq+y0T4dq6vIJeQ?=
 =?us-ascii?Q?2TUraGfqWmG0urm17DWs/UKq7f2DRu6d6VzeKPh5B8okzFzjsiTy73kCV7Gn?=
 =?us-ascii?Q?GRz0Y63di0lb673IpdeRO+W9k7J1hI0eED6FvYDd+IFRLQa8sDgCwvxT3WW+?=
 =?us-ascii?Q?FGa2H9hd1LeY438bE8PEtComngJOFgxkPssymwjnqDpmBP+TlFgm1bqiQmRu?=
 =?us-ascii?Q?BpSQao31OU9NyFoq8fv5HVFMK6+3qgaCUFWqgdqEKzkbwtwMr7Iso6TDM6M4?=
 =?us-ascii?Q?2lc48e9jj/3bcxW00cuvVnmCSEaHrhioKhSkb3QRZ/JDvwv5hhuuQZhJAsHL?=
 =?us-ascii?Q?VU4zOr7QPruLCE1n/6eBQeQe9CibisQjrSVN7J4T/4Cs2U6bqXb0FbKsYKPT?=
 =?us-ascii?Q?Ob5NbIRmYD3CyHYSFhLcnDkZn/9vEU9qaUG19GU6V/4FL91n1hEnUYFPIEd4?=
 =?us-ascii?Q?vbZZWif3PrAXU1Lo0//weggt237mZ22vhFkluTlTMfOSbURnj4WnINbZPy9v?=
 =?us-ascii?Q?Tqtnvm+x4TblpBe7/fLUZeBG7+dzsyb9WkfNoZZFvue0zNRhRY9JB+RMWWn3?=
 =?us-ascii?Q?A/d/lkS7NZPjeN5E+Mv3HDLKQ28SmKS6uZ+x97s26/ZR+p3GgV5g+Ua0D+BI?=
 =?us-ascii?Q?4qKy68I2u8+xg/ALIzYBViQl9s5IiDQ=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c5b1f35e-0b4d-4024-68fe-08deac272751
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 10:55:29.7160
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QBnLDOF4pYSf2us2oJU4HdpcOJ6dI9KjkxnSdjPMzrkR6Ipv/CbRxp99w5J/di/5VB+u+fPpv+brOmvAxC6o01M49/2blmurfglQiZYMmkY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS3PR03MB989145
X-purgate-ID: tlsNG-33051d/1778151332-4066C938-075DBE38/0/0
X-purgate-type: clean
X-purgate-size: 1131

If L1 executes VMRUN with the GIF set and it fails consistency checks,
Xen will inject a VMEXIT and fail the assert checking the GIF is cleared.

Instead, clear the GIF when injecting a VMEXIT to match what hardware
does.

Fixes: 9a779e4fc161 ("Implement SVM specific part for Nested Virtualization")
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---

In v2: Adjusted for the preceding cleanup patch.

 xen/arch/x86/hvm/svm/nestedsvm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index 64fbfe8fa71f..9899cb2147b1 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -717,9 +717,9 @@ nsvm_vcpu_vmexit_inject(struct vcpu *v, struct cpu_user_regs *regs,
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
     if ( vmcb->_vintr.fields.vgif_enable )
-        ASSERT(vmcb->_vintr.fields.vgif == 0);
+        vmcb->_vintr.fields.vgif = 0;
     else
-        ASSERT(svm->ns_gif == 0);
+        svm->ns_gif = 0;
 
     ns_vmcb = nv->nv_vvmcx;
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 11:20:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 11:20:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302608.1576474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKwmM-0000d3-MA; Thu, 07 May 2026 11:20:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302608.1576474; Thu, 07 May 2026 11:20:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKwmM-0000cw-JU; Thu, 07 May 2026 11:20:30 +0000
Received: by outflank-mailman (input) for mailman id 1302608;
 Thu, 07 May 2026 11:20:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKwmK-0000cq-Hc
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 11:20:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKwmJ-00CJLn-U8
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 13:20:27 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc7578-bab6-0a2a0a5309dd-0a2a4509ae02-12
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 13:20:27 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc757b-2497-0a2a45090019-d155802ebccf-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 13:20:27 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-4896c22fcbaso7246265e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 04:20:27 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e5314b989sm38720495e9.30.2026.05.07.04.20.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 04:20:26 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778152827; x=1778757627; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=V0BHC5sWxzOvVV+qVf5zA8Y6rh0cAn2fDw3H5C+c93Q=;
        b=EWbn2lCPIkUVCiaocipmuBVLg6wo/dlJDDtTdughZVv2Dyi0lwRuzuRvhpryPiagFH
         CfSQrKwuACAI3s2CTrEKtnoQiRv1sOZjaS9wmMgPr9hSnpYYCWplnGuPnSkG4y1angrz
         hAwdNnT1eOfWfwaokt5fP9UsN2xaXxK6GYpjbKxT3dH7GW0Lq+3lOirQNroQDlKoabzw
         nJpCAh7V6kdnaoEg/a65R9U99wJFD2gSocU28vfxn45aLRnI7qNnD24yb/1cgIntIHMV
         EcXad6rW+B6sEn5Mj5C7oaw7A/FncqxfltoKK554vuj7xMYPqdKeDoXLoaFgSVhj+9Np
         t3Ag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778152827; x=1778757627;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=V0BHC5sWxzOvVV+qVf5zA8Y6rh0cAn2fDw3H5C+c93Q=;
        b=na6kwXETfdEjg9nA4oxJIsXoQk9iZ3Hahm0fK3JT/eeo9UydP4ELotfk79XfuUURhA
         v1JQO4KoqhxZxcLAC2fJhVTWugqCGepV2rgbw6L+9EQbZ/MX3PPpr50PDSznGimcm/97
         V5c4E46JqrZ2/dtyDOCOlCeapIkOU8tqIIMLtm3qu7pyiipRTE3SUFDIzBfbIXFT718j
         uUI9QH7yQne3DqF6RyFYMn+bTwbaExjXCKWKiZOMT1CJQFAvE0Nc+5oBmcK3JtgU7IDR
         u8Rus5HH4UNDuH+DK7hBOJuBQkD1XgGE29JQsKMdMxxwgsSBf0F8EFtT4WNfEkoPW9BI
         kBWQ==
X-Forwarded-Encrypted: i=1; AFNElJ+IPT+4GpaWuKVtGPZSp/ONO08FwVuGbeEPEginlPzylDYw5PRdTVGVQ3fAwwsA7tna9feK7K9aCuQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxHRSFK4fVaXC5mH/3L0pvzZx+oiqPAgiGmp4aoXAaJOJrUcEVw
	C4RLQCJi5tv7u2hqdEiFNtE3ezANzhOn2Co2aGy55Ng60o2ODb/GouL5RIMVWYd3Nw==
X-Gm-Gg: AeBDietiYeSgUCA2LRkxe127JRy7dmpZprgmXGUEsifqMpQO2qXEIVHzHEW2KOJixLF
	Fg5WrKK+4B191PAELx20QlDV+mYVgNgBYwTswvQXJqfp8x4ZRZnJ5UnvTy+IyC7+YWmVKhR1Oi5
	XrisvLwk3izCjxYF9h25vaOwcVXweuTJCD6Hra8Jd3WhC3FQU4mKe/CvFJlp/Eu8fgZ9rMdIvEK
	xyiPUluxjb/pdOdDXjDWrQxiigzvREK/Jxk44QEqLgIS0/58aUe4rHw7zDNZbzx68r/SHfDhfmu
	y55jwOAxaEfIJcTUbkCJNBIWTRiKKO5tEyfiA5T/kgQyT4nb/Ou+iTNBh9NAmgZYzDYcrc02ABn
	UeS8/ZGqyzoJ7V5XNlC4qTvbzzaCdBy96hTQ3k02FU/DgWJG+Pwlz0Tn0WoFEwgU6XiDKAHio15
	vfKGpCIVt6E3a0WvB0i8pvrDMyXIRnr6K82X4+UlOfXUCe8Ay5LySgHh2/G4ZkkzYltmCAKL5Yn
	fD7Q0q9NgJFBgmwRuL1zG/fLQ==
X-Received: by 2002:a05:600c:4345:b0:489:1fa5:997f with SMTP id 5b1f17b1804b1-48e51e1abcdmr66969605e9.9.1778152827135;
        Thu, 07 May 2026 04:20:27 -0700 (PDT)
Message-ID: <6d6f4862-0e57-47f3-a87b-2180c7f8e895@suse.com>
Date: Thu, 7 May 2026 13:20:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] iommu/amd-vi: do not zero IOMMU MMIO region
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20260506165157.68567-1-roger.pau@citrix.com>
 <b5d9ea51-5fef-4bae-b124-f4dbde93dbdc@suse.com>
 <afxRZtm-L1ZA8jF1@macbook.local>
 <b0d460d6-5828-41d5-9168-394fb54f80bf@suse.com>
 <afxnq3kXflTvz4P-@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <afxnq3kXflTvz4P-@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778152827-41969A53-C27FD102/0/0
X-purgate-type: clean
X-purgate-size: 4901

On 07.05.2026 12:21, Roger Pau Monné wrote:
> On Thu, May 07, 2026 at 10:51:18AM +0200, Jan Beulich wrote:
>> On 07.05.2026 10:46, Roger Pau Monné wrote:
>>> On Thu, May 07, 2026 at 10:03:05AM +0200, Jan Beulich wrote:
>>>> On 06.05.2026 18:51, Roger Pau Monne wrote:
>>>>> Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
>>>>> say the least.  We don't know what registers might be there, nor which
>>>>> values might be safe for those registers.  On a forthcoming platform doing
>>>>> the zeroing of the MMIO region does put the IOMMU in a broken state, which
>>>>> is not recoverable by the IOMMU initialization procedure in Xen.
>>>>>
>>>>> Instead just zero the control register, which mimics the current behavior
>>>>> with regards to how the control register is handled, and ensures the IOMU
>>>>> setup is done with the unit disabled.  This approach will need revisiting
>>>>> in order to support Preboot DMA Protection.
>>>>>
>>>>> Fold map_iommu_mmio_region() into its only caller, as the function body is
>>>>> just an ioremap() call after the removal of the memset().
>>>>>
>>>>> Fixes: 0700c962ac2d ("Add AMD IOMMU support into hypervisor")
>>>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>>>
>>>> While you got Andrew's R-b, I don't view that as enough to commit it. My
>>>> prior concern towards ...
>>>>
>>>>> --- a/xen/drivers/passthrough/amd/iommu_init.c
>>>>> +++ b/xen/drivers/passthrough/amd/iommu_init.c
>>>>> @@ -42,18 +42,6 @@ static bool iommu_has_ht_flag(struct amd_iommu *iommu, u8 mask)
>>>>>      return iommu->ht_flags & mask;
>>>>>  }
>>>>>  
>>>>> -static int __init map_iommu_mmio_region(struct amd_iommu *iommu)
>>>>> -{
>>>>> -    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
>>>>> -                               IOMMU_MMIO_REGION_LENGTH);
>>>>> -    if ( !iommu->mmio_base )
>>>>> -        return -ENOMEM;
>>>>> -
>>>>> -    memset(iommu->mmio_base, 0, IOMMU_MMIO_REGION_LENGTH);
>>>>> -
>>>>> -    return 0;
>>>>> -}
>>>>
>>>> ... this part of the change wasn't addressed, neither verbally nor by an
>>>> adjustment to the description of what was committed. As previously stated,
>>>> blindly memset()-ing the entire area may not be the best of all options,
>>>> but the downsides of not doing this need to somehow be addressed. As
>>>> indicated, once they run out of bits in the main control register, they
>>>> likely will add a 2nd one. That'll then also need clearing, yet we have
>>>> no code to do so anymore.
>>>
>>> I could introduce an opt-in command line option that forces the
>>> zeroing of the MMIO region (to have the option to resort to the
>>> previous behavior),
>>
>> But we don't want to fully go back to this. We'd need a form that zeroes
>> what may be zeroed, without causing the issue you're trying to address.
> 
> But how do we know what needs to be zeroed?  We are then in the same
> position where the introduction of a new control register would cause
> the zeroing to no longer be accurate.

An option may be to zero everything we don't know about (plus perhaps
everything we know about, but don't otherwise use), on the assumption
that new (writable) registers added are okay to zero.

>>> but I was (wrongly) under the impression that we
>>> have agreement the proposed approach was the least bad of the ones
>>> available, sorry.
>>>
>>> Note how VT-d also doesn't zero the IOMMU registers MMIO page either,
>>> neither does it seems to zero the Global Command Register either,
>>> which I'm not saying it's correct, but is at least a (possibly wrong)
>>> precedent.  I don't think there's much we can do with the handling of
>>> enabled bits in possibly registers not know/handled by Xen.  Like on
>>> VT-d, we possibly need to rely on the firmware to handle the IOMMU in
>>> a half-sane configuration, with no enabled features on registers Xen
>>> doesn't know about.
>>
>> As indicated before, for firmware we can likely rely on that. Pre-boot
>> non-firmware environments and especially Xen being kexec-ed (or being
>> run past something which was kexec-ed) may be of more concern.
> 
> Do we really support booting from such environments?  We would need
> much more careful handling of enabled features IMO, as blindly zeroing
> the whole MMIO register area is likely to not make the IOMMU happy if
> it was in an enabled state.
> 
> Note for example how Xen was zeroing the command and log buffer
> pointers ahead of disabling the features in the control register, just
> because those register are ahead of the control register in the MMIO
> space.

Hmm, yes, such ordering issues could also appear with new registers.
Then again, with the IOMMU as a whole disabled (which we would still
want to do up front), perhaps the order of other stores can be assumed
to not matter?

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 07 11:28:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 11:28:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302619.1576484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKwu6-0001Rn-Ds; Thu, 07 May 2026 11:28:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302619.1576484; Thu, 07 May 2026 11:28:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKwu6-0001Rg-B6; Thu, 07 May 2026 11:28:30 +0000
Received: by outflank-mailman (input) for mailman id 1302619;
 Thu, 07 May 2026 11:28:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wKwu4-0001RZ-W8
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 11:28:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKwu2-00AnK1-RB
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 13:28:28 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fc7757-2eae-0a2a0a5409dd-0a2a450982d8-14
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 13:28:28 +0200
Received: from [52.101.85.3]
 (helo=BYAPR05CU005.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fc775a-2497-0a2a45090019-34655503a22a-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 13:28:27 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM6PR03MB5001.namprd03.prod.outlook.com (2603:10b6:5:1e5::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.16; Thu, 7 May
 2026 11:28:24 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.017; Thu, 7 May 2026
 11:28:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=s0c1vwn7UrTQ4rDe5fu9IsFR24ORURSjX5o8wDIVuIR2Z5JCNdsU73r2l0qGGRN0kuvdUlVUWttQ3xZUuhVUQnusbvvTOGfJ8T0N6gEjbo+9LzbjLN4a53AtLPnueSeNqh1r+bFfg9auBv6rOTPAiELuFcuBNO2f5UAf8AwInRp0JCLYo5Q5dO0T2f1ljm3zXpgYc8XvrDsEAOxwWFuwCgEFLC0YHVME7js/plxWS/ElBhVxo9WGid9/gsKT0Q1di8maJPMcyx8Ni9D0HpUY2LbDkNIAH+FtQpnAzStysZU8j9Wa4xg7Sc4Gsbz6n08vioekLIirXi4XVyj9gC9GXA==
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=6bkVjjm1VQR00x4Hy014oaB6kZ7y40f5Ye9OUxVcjdU=;
 b=Kj8r++pW/AebWnoj47gl1GVuXaDe62VQwaoJMm15xbQZP1qsq9JZhm2YOPgAENT8v1TXeDyHH64RTqy94gbDEWCuySLiqAjfrp7eYr5c2m2RlF4pPXlKS37GN9vVSUUTpMrjn0EtnmfURvvqAf10k7JBKkdxe2jaZBzzr77edNDL2Va1udJ8xH3UM0WU0lfyJopdRLtT8JXEtp19QnuQy6hmkGaas2HOQxsKvXxl3mx/tFmrw35UOlAajPXuABKO/dZS57VfqVpG5qqeeMXrNMMQp0970KuRTyTFTNPrEsVecmRb2aPtUMk4tcbO8u9gvFkhM621CT6pa7ZosgiEBw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6bkVjjm1VQR00x4Hy014oaB6kZ7y40f5Ye9OUxVcjdU=;
 b=Wp68GO7Uu7vspwDN+bB1JDnQjp8U/h1AIBYAJnB3U/oL6v+vd7j7WIhr+VTrh4mdoTn/AyPZjk30Hsh01JBjsa4p8yAXCDeaD/OxHaoIjtbzA+7T1DqkrihxsXT3esBvdiLLhgtjliIUslDLNB/1fnZy+L+5RWJUn1CcBDXwy0s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c62cd90a-0325-4a65-a1a2-a29aaa912200@citrix.com>
Date: Thu, 7 May 2026 12:28:20 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>
Subject: Re: [cross-arch mess] [PATCH v2 1/2] x86/svm: Don't toggle local
 event delivery on stgi/clgi
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260507105507.2078971-1-ross.lagerwall@citrix.com>
 <20260507105507.2078971-2-ross.lagerwall@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20260507105507.2078971-2-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P302CA0017.GBRP302.PROD.OUTLOOK.COM
 (2603:10a6:600:2c1::8) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DM6PR03MB5001:EE_
X-MS-Office365-Filtering-Correlation-Id: 2fcd653d-9de8-4979-1b2c-08deac2bc00e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	4a4ecLhCv8pvMJXea7lzAMRVq46rN3JTYNGWlRlH+/c7cI2wVQhp7z2UaaUs1LVauCnsbYhQomegr9XL7VNPPOcjA0eULAN67kNV8ZiFcbHV1JDqVbYhLFqbSb9nJIDhYqno0snM3q2znT7wwQAX7bn2psJEl58eI96ZiP8E+evDeN625vPPKolO5BmLt6cyeD5A+OyUqcv/2NheHOBimUSdKb2qaW1rHSd2V8/vqSQ1JjlbeKHzyL94Lo0lPgLhAgY1cm47VCcNGthyBrwvE9oUr6kgujZ/h3asxFMvcUFyQJ0lESAoTrr+Ltt2frkQzvgmn+jLVoEKQuU1AVWBGwtQCXAYKmY3FjBfJemEFYYbwqU35ASAJqkX+Lt0poJbh7c0KERQhY13poA30Rky5V343fF0AF4CiJrmais9c7R5rkBLrCBm/AzRa+MSv5teqLDE/F0k403pRw24jPmLAwyjAnW8qPdRf6RxlYEnf19yGPODGVADG0JAApoOE4bzcsWzJ1DS9h6qnN12QtE6OByIINGzoOuFsu1Sh3QD259YZOaJ9934NgSL8Xotmo4Cji53zgwVkKWjRr4qAUcRfQMmIhrwTbmMCTIwT1kn7u99wNvodpjvqRe+K15fjsBOMcD1jjChzOU6KB33v8he5hIMtOdbb/fIdKQcv0dUMZvUbgfCNfjzmyw7MN2S+qOx
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZVYzQjNaMDlPNnE3VEJCWlQ4SDlZSGZXaUhXVXZocDdweXcweWorbUlxKzdM?=
 =?utf-8?B?NHlrcnl3RU9DOVRRaFpBTlFEcE03N1FBOHpzTVE0eXl2eW10S3BmZlk4ODc5?=
 =?utf-8?B?YWgrTXpiYUlGOENaUkk3bWVuQXFvbjZycnJVTGMrNTA4L2NRS3FacTdZN29a?=
 =?utf-8?B?R0N6MFlENnA1MW41OXFGSTFjWHlPUDc1Qk9jbEM0dUFVTUQ4UzZXNmw2TUp1?=
 =?utf-8?B?N295czVabzRWbkF6dHhuOVRSaFR4UDc1ckpUeU91d0JMdFBzR1FNQUpyeHdq?=
 =?utf-8?B?WmlvNkFRVFhFZFo5a09yWTJIQXRLOW1hNkhPZXhIQnkzZWtZWTZxRkZacHdH?=
 =?utf-8?B?VnhINXMyRTJmTzd2ei9pL3ZGVW5na1k3SXp0RGdnL0pSRXF3UjZRdFFjMzln?=
 =?utf-8?B?YjNSK0dpY3ZmQ3ZzNXVrcWtaSjdkVlJ3bUJ1MUJtZUQwcU95MGVCRzlhZ1Bs?=
 =?utf-8?B?REE4czFJTlg2Y3FWZENoakIzQmZzWGhjaVpzTU43R0NMRzN1elJIV1EvTWUr?=
 =?utf-8?B?QnhaVXAyckJJQkkxbmZLaGZUSGttSlZLRm5UWTVIYVEwTENabGdVMUV3UTNM?=
 =?utf-8?B?eHlHT3B0OFBpUnBhRmszSG9EUUNQaVVrZld5ZkdneW4vNmVCc3hqNnhtK1B3?=
 =?utf-8?B?ZHV1Rk5CUEc3Tk9pVGwvdzk1YU13TkVvb0d4YVhPeEpQbUFubkRhcjVTUXR6?=
 =?utf-8?B?cE5HdjR2QUl6LzZwcHU0Ujl3SWlzMkNOZmNaRE1kVlhGTFFhZFFPb3R2ZUtJ?=
 =?utf-8?B?ZjQ1UEYrcEVkYlpQUFBOWE1VRlRyZFBxQlozczMvQ3kzekExNmxzOWFXbUxI?=
 =?utf-8?B?L1JkR1dXQ3J3RUQwMzlsVG5pSWswSThKQS9nYnhiZ1NxcWFMVFV0RmJzemtm?=
 =?utf-8?B?ajlsdWtMNFV4a1ZIK2FSMWpCVU5JUjd6M3F2OHA3UjJOK0JnV2JwRFJHMUdy?=
 =?utf-8?B?NVdYWnlVSGYzQVd1dE1UYUdZSmdqM2NhVnd6WUJNeXc0ZVE5T3BUUEMvcjhw?=
 =?utf-8?B?enlLZk8rQ2djVERsclg3WjhpOVk5Z09wMU0xS3ZFeXRXdDRZbnNKVWlrVloz?=
 =?utf-8?B?ODdiZ25weWxqMlN3ZFp1ZTBoVGxZUXBSdmFmWmpSS2pSNGtJQnNDb05MV3Ju?=
 =?utf-8?B?Q2dvVWl6MWE0MFFkdGd2LzBjZHc2NVN0dythbHkxNFc1TitIZThnNElUcW50?=
 =?utf-8?B?eHVOOE1BajQ2bVJTL2h5SjdWd09ENDhWeXpUNHl5eExRREQxdnFidjFsZkZC?=
 =?utf-8?B?dXdDT1NuOWprUU1kTjNvczBFQzAvVG1RODdJZ2dtVDlOenlGVkN0UU15SytX?=
 =?utf-8?B?KzdJVGFXWm5vaFBNVVFsbjh0RUtmV2dCZGRRekN1REhERXhLeDBDSjRWdzJS?=
 =?utf-8?B?WG1teHE5THVWbDdTQjUzc3AyTlhadE03d2wraTlDVy8rUzJsY28rOFc3aisx?=
 =?utf-8?B?Ym85TWdUQXhnbk5iN2dRaTYxaXpHVFI5ZjZXN1NxUjlLTzQ4WnRHVGRBQjJZ?=
 =?utf-8?B?NE9qanlwaDdUU3lEQ3Mrc0FKNVFCUkZkMzlaMkhZUCs3TmJDUGU1WUdDZ25K?=
 =?utf-8?B?eUxqcmJGb0g4MjR1c2R0N3hoc1BoQmZKWnhQTy8zaHVaR0Iyek5VWjdrS29l?=
 =?utf-8?B?NmZiQjBqdGNnQTl3bVBZak5mTlMwUHBCT2R2cHlWS1VzWGVyaHVGYUk4MDl0?=
 =?utf-8?B?WlVzL2Q0RDVaSEhVSVo0LzhkaFA0ZVNMWlN4cVZDeENQMlBLRVFpdXNuWVFX?=
 =?utf-8?B?cnFOY1NoTmlyNjZ4dFgwTmlhd2JHU0dGaUp5WmMycXZubXpFQmdUQ0dOWnZl?=
 =?utf-8?B?ekNPcjZ6VlZyNGhDNEQyN2tsclI2Myt0TzVhVS9WQkNLK1VFbUgwU3BRakxI?=
 =?utf-8?B?NzR3SUlxOG1NWXo4VFNoM1BoeFNxM1FNajhyTVVpMXRRQkdaZzZvcnNETDMy?=
 =?utf-8?B?a0cyOWllNXdKa3VKa2F6V2pHRlZpYjFtRHJWbm9xS3A0dUFOTFlweFo3TFFI?=
 =?utf-8?B?RnNvbkRLZDc4aENOOHZnTzk1MDd1SVhIQ1BPZ0M4M2ViQkxvVU8ycHp0ZUxZ?=
 =?utf-8?B?K0tRQkpZTWhKYzNZcGlhNFI0YitOL0J0OUR0MDhiSWhyMzJZRG5qLzBjYm1T?=
 =?utf-8?B?dWh6b3BVK2tHOGdRbEpPWXdsK2t4bHViL2ZRNW9tNVZ3MTZtYlVlRVAzbHkx?=
 =?utf-8?B?T0syaUhaeXJ6a2h4ejVZVlJtbTljRWxUL3NET0JTeUVmb0dKZG5zNVYvcFR0?=
 =?utf-8?B?c1o2ekdNaVY1U1Bad25jc0JkOVJLbko2UFp2Wit1RGRTUCt4MFYrT0JSYnlZ?=
 =?utf-8?B?SFZoRzd4Y1lIVlh2bWxEbUorQ1gwd3phYWwrNWJpbjV4RnVzSUpBZlVkTHNS?=
 =?utf-8?Q?1DtAvchMi7VGp7tM=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2fcd653d-9de8-4979-1b2c-08deac2bc00e
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 11:28:24.0176
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: j3dgaGMqL7usNA49PsxWQmrBu2shmqTO8ZYyCua3t20OLJBvQ1xKgY60yeGzJGtsgox6ZyFIkkrP1mg+fUfOZpwOi+hDYUN/FS0mYZGDBHk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5001
X-purgate-ID: tlsNG-bad1c0/1778153308-41B68A53-2B38A61F/0/0
X-purgate-type: clean
X-purgate-size: 1733

On 07/05/2026 11:55 am, Ross Lagerwall wrote:
> There is no need to explicitly enable/disable local event delivery on

While the name of the function is local event, I think this needs to
state evtchn because "events" have a separate meaning in this area on x86.

Personally, I'd phrase it more sternly.  The masking (or not) of evtchn
has nothing to do with GIF/IF.

> stgi/clgi since HVM event delivery already takes into account the state

STGI/CLGI.


> of the GIF (and IF). This ensures the behaviour is consistent regardless
> of whether vGIF is used.
>
> Fold the functions into the callers since they are now only a single
> assignment.
>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>

For the patch itself, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

However there's another can of worms.

This patch deletes the only user of local_event_delivery_disable().

It does not delete the only user of local_event_delivery_enable() and
pulling that thread shows up a mess.  The other caller is
vcpu_block_enable_events() which comes from SCHEDOP_block (probably
legitimate; enabling events is at least documented for this hypercall)
and hvm_hlt() which is definitely bogus.

It needs deleting, but we may want to instrument that path to see if we
ever clear the evtchn mask in practice, then run as many distros as we
can find.

Furthermore, while RISC-V and PPC have BUG() stubs for these functions,
ARM implements it as clearing regs->cpsr.irq_mask which is equally bogus
mixing virtualised evtchns with architectural interrupt handling.

That, equally, needs deleting but I'll have to defer to the ARM
maintainers (CC'd) on how to do it safely.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu May 07 11:29:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 11:29:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302624.1576493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKwud-0001sl-MX; Thu, 07 May 2026 11:29:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302624.1576493; Thu, 07 May 2026 11:29:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKwud-0001se-IK; Thu, 07 May 2026 11:29:03 +0000
Received: by outflank-mailman (input) for mailman id 1302624;
 Thu, 07 May 2026 11:29:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wKwuc-0001sW-Lr
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 11:29:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKwuc-00CttB-2n
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 13:29:02 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fc777a-e002-0a2a0a5209dd-0a2a4505c6ee-4
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 13:29:01 +0200
Received: from [40.93.194.27]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fc777c-aaa8-0a2a45050019-285dc21b8ee3-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 13:29:01 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN8PR03MB5042.namprd03.prod.outlook.com (2603:10b6:408:da::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.17; Thu, 7 May
 2026 11:28:58 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.017; Thu, 7 May 2026
 11:28:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gZ4RruHTchaEdtG/ieZzAMh3a+tDY3N6c3CWjyFX07nj9FEHyBrS7zu28DOJSeAhAqnKbDgziO/Yl50co0XAB5Sbnl9SFXrLRwLJpD1RDoV0mhctjHvHpbl2hjMwPXKUryDntkdbE3ghhPApNEC3yxeLxrq1meb+aXXqEI7egzNeCB9J2GGN2HX+fAWdEQekcXQ3oYNgrcSG2bxWdwWeKALc4XdjVGoGClcRdAa4AcjpS4pRjUMHaFM4qUeJhtThNx7vhhBFJ+LnCqrnHT+exJ2JLR2fRR4lV6veIkYoeLcyFLY2hm1kQbDBA9H95qtwRNZcYtmwXv6lXiesRU+Fvw==
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=cHMG25xy42UAZCnd3gYO99L+5XJikj4FFcXQiMgWA4Q=;
 b=Q3414ry0MDbcSThLqMWDkxI8lsycVmA2IrM0yY4JAW0bhlZQLs9SWtW8HmCYras7mHTjnhcbHI//VTh8RU23/1L4KBfcid/Vg2mUHN7xpyKpYGlJyNYalLufrifZKAqn6YU7CEAAPCeZNVJ7SV6YDZHw8teeetdMtpffkonFyulyjZLYEN2fl6B00xmcJm/Q7fdTCUXoPMvmRmpnKxmC9Upjf5dgWzr2zH7sXYOuupTpGtBKnFT8GOFh1nusumjrIniy5A9yK/R8JGlV7EYefiyttxOdg6cG4VvWm05+nldbNYxDUPTOLfzzfkulc8qeoLUXBBlWwffedkYYSxFrjw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cHMG25xy42UAZCnd3gYO99L+5XJikj4FFcXQiMgWA4Q=;
 b=ov/f0J3+5I1/ADSlcF75EEK+WnucDGSKmwyTDBHDjcHhkCqap3PAnEE3FYtsMbjxLMW+bvgPNqoLF/ZnwMuxGi1wxuyYAe21RpjuHBo5Sg/vAk1zlNrKK8t18d0ySpAWrOFjlG5T6MbxqxR09duyEUg2RstERa43g/TnXndtg/U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a809dc2a-158f-4b7e-8798-50548600b57f@citrix.com>
Date: Thu, 7 May 2026 12:28:54 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 2/2] nestedsvm: Clear GIF when injecting VMEXIT
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260507105507.2078971-1-ross.lagerwall@citrix.com>
 <20260507105507.2078971-3-ross.lagerwall@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20260507105507.2078971-3-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P302CA0021.GBRP302.PROD.OUTLOOK.COM
 (2603:10a6:600:2c1::12) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BN8PR03MB5042:EE_
X-MS-Office365-Filtering-Correlation-Id: 9627f2db-e974-4138-b243-08deac2bd474
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	KI+h0Gr2XZBeiw5UoWoHHtkOsA0L4o1YvdavWcKaBAi4gC09Q+Kty5wzVqQZyaG7CFf4Q1KNwNphvEWJ7XuT8ruKC1HPXOoNd1xSaVsyDZYaVXkeHxzC2NBpOTgxlrMtZz0aJeC1XaC+gNKjpgSJwEMHvEAwVeFpoxb2sWShwqOT8iI/HHhyOUdeWxsWVZvfjFqO+1YNW5hWo7fijQ+7x53bxtpKKVJJ3ZxyQX1I7lu0DaGa6BqUkg0k8xeIBsiRoNqmjlbxSkKOxEJ3iel64z4eB2oSDf/haFxD5wI5V7P1+dH7xQUxd+PMtBmaOMPQP9IMV3VTxS+p/vuQ5b+qX8i2hS5rhqiALDBVPJ3sdWgm5VC4phT68F1wzvwlZiUDK4UxTvsdnO2AeRQ1DjVogEcz87KyHYw2uZFYyeAnoWunxD7mA1JLFEwOPVMeiwFXmVXd5chCJzBvvjHRGYT2X04jU2bV6X2uJ7X6k1dlnxnkr4W7v6YWE0/sQ/9Js9CNukfk8wy1Rcimy0GMP2fNuyZGVWNVp3Gpqts3U62T0z2hGz9gu5LcxMG47R0yuwzMA1HVz3Xjo0f/LGzPOG+E9FSa3sZjA73nnY4TYZzCggd5fnkG9LcIxV9R/rfA+BbP+NnLfpi3pQbDJSnYEgUXpuTAz9Sz/4mc6Objvaq7LLBhM0tmAdLhlIoCksvNUWx5
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S2llUnZjRE5IQStjdEphUWlDd0swQzJGYUJJUTE0QXpzOEh2VmRrbGpBbVJG?=
 =?utf-8?B?QzdWcGp3eWk5cUNuTVJDdHp2SWJvejBzdlJRaEU3M1A1ZHl1dCttQVFNN2kx?=
 =?utf-8?B?T0NTODdUaThxWnppZ25xYXY4TG1BVktLLzFwYkpnaWIycmpkcDVPQ2MwZDlV?=
 =?utf-8?B?SG9BdUczclR1K0JoQTBTZEJVSmJxNG41OUlSbEZCdzJ0R01mNVp4Q0pLSlo5?=
 =?utf-8?B?VnM4TmZEbHU2VVd2dm5BWnpJRG50YmdXTEFGck43S0NXbjlCQ2ZQUnluVDhC?=
 =?utf-8?B?V081N2x5Ujg0NitQd21yMGsrc2ZPRC82c1N3TmFLVlpxWXk1RHo3dWd2TlBI?=
 =?utf-8?B?YmcrNXBETyt0NmVSMnZRbzJZSUNsOTQyd1FycUs4QkpsaGhCc2tUbUhLK3ZS?=
 =?utf-8?B?NE51R0xvaW02UW8rbXYyeEx1eTdHb3ZjamZyTDJxYk9TNG9tVkxqNTZNeUE5?=
 =?utf-8?B?ZTBuTFFIQzBONjNESFFKWVNuV1pSZ0s4YUNZMFN0ek51NzdpUjF0Q2ZjY2E0?=
 =?utf-8?B?ai8xTG9tNVNSRUNqTk9GNE1OQVFxeGRjbnN2TzVyeGsxNVRQQTRHQXdpQXls?=
 =?utf-8?B?TXltbDAxU09kT3ZHZHN1ek5SVWZTQU4rdXU0RU8vSjNWcFZUQUVJamMyekVX?=
 =?utf-8?B?L3puZnRIRUtJZGdxWlR3blEzQjJoaGFVY2xLWXU4aEF1QWxqMjlyWE5sam9E?=
 =?utf-8?B?QjBnb0NrN0p3L3JUcFJSd1VtZmlOUXBaZjNMeW5jbkNLVERiL3ZydXp4Ylp1?=
 =?utf-8?B?V3RnaVVBUW1tNHNXM1FsSFlQV1Jwb3ZiN1g2enBHQlZYb2h4MVRpSnkzUmcx?=
 =?utf-8?B?Ym5mYU1iZFVoZnU2OHJKSTVKM1pMRndKMllsMHNrU25DcHpiTCthOWpTK0lj?=
 =?utf-8?B?WVhZSWQzd2FxODJNcnY2NUlHbG5MYTlpSlJCTDNXZmFZY1V3eThOcUNFMVk2?=
 =?utf-8?B?Rk0wTzNvbDArTTY3SmlqU2RjdmZjVVVLTExsMTRGVlpXWlhnMWpXbSt4a3E4?=
 =?utf-8?B?SUM5cytybkFpZE1SRCtQZnJxc004KzFYZzUxNUorMXlBMFRWWUJhZi9EZEdB?=
 =?utf-8?B?T2ozTTJpbDZiZFF4NXY4VjZEVWxYQVVqVDUxSURGQk5WYUY4TE4zUEx0QVhV?=
 =?utf-8?B?NGhsYXA2UlZuVmFTL1kyNWZ0eGtJcHBWUUxicmxqM0Yra3ArM1R0dCtpamFp?=
 =?utf-8?B?OUZxenpIUE9FZEJJc3Z2UGdzZm81ZXlDWkZEbm9ka0hpRng2c1phblpzRENk?=
 =?utf-8?B?T0JSd21DSHlCMjNxVHlUaWNPcmd2cGxtaDFaekNoNUNLMTUwQndJRHFUMWd2?=
 =?utf-8?B?clFhTGNONENybVoyTW9qS2dteTJkejFPTlRjaGJoSnRZMDhaV2M3ZDZqYng1?=
 =?utf-8?B?d3c5Z1N2Mm1HNFBhSG5vTytWTzdyOFdRTXhOV25mOUltSEpnTHVxVStKZXc2?=
 =?utf-8?B?emh6RHp0elB2Qmt3UTd4VTJ6L1R6YVVmQ3JvYmRSU3BTZEJKaWFZRGxWZVU2?=
 =?utf-8?B?SFdsaU9rNWU1T21mYmxFRHZ5WjEwbGZ6Nm5yUkxGclNMdkd5a1N2Z01wNU0x?=
 =?utf-8?B?Y25nVUtRa0RhenVtVmFrSDlIS1o0bFFnQlpDSXNSMHZzU3dKbTNyd0k1SVR3?=
 =?utf-8?B?RkEzMmJEWi9xWmhqT3hRNzZmcWd1SmZobzNuRzJDKzIvaWt0TndUUUJGWk45?=
 =?utf-8?B?c0ZjV2FKTDJIeHJxbGJhcGgwSFhQb3dPZ0hhbkZMMG5adkc0azluRldrYytM?=
 =?utf-8?B?RU9KL2ljUW02WXpoalZuc2NNT2FXcEpvNmlOWUNJQWxzUW4yQUNpQk1ocTJE?=
 =?utf-8?B?YllkK2pQdGQ5eEZOMlVLTFlVb2tjK05FeEkvYUJKOWxYQmpYS1pac2tJcHhB?=
 =?utf-8?B?UnRsYmFwVWcvdFhMMjlGUE52SGMxTUM0OXNTaW5FUGM2VEFmQ3djdGxOS3Fy?=
 =?utf-8?B?NktvdVNPaGM0RC9zalRVWXl0OTl4RlBnWTdlN1JkRVVtc2JJZjVpVU1xaEo0?=
 =?utf-8?B?cTI0UkVrbVJxOW9NS2pEWDBJR2pnMHU4RUc3RjA2bXZIVFlOVmdTOTkxb3Vn?=
 =?utf-8?B?elV6Z0xQQ0JUWVROeHJuTUlnL0hneDR4UzRGMEk1RVVzN2RxOUJEUUd4TUFW?=
 =?utf-8?B?N3I4aVc0bzRNb1cwZ04yWi9vTTVLd1NPSEpGQ01zTEY0d0l2Z1JmWHRGZDg2?=
 =?utf-8?B?TitCOUdpdDU5VG9UN3YrQXRvWHBvTVp0eEI1dHBFVFF4Y2pzVTN6VWlwMnVs?=
 =?utf-8?B?czd0NU16bkd4TWd1RlJrTDBPZGtQOVlTYU54ZE9Ic08vQWhmekpFSWs0YmlG?=
 =?utf-8?B?UEZBd2RNbnpOdjVYKzREd21ScTYrSHFDK2xUcmIySWZRMUFzWVA4UzJYTEJM?=
 =?utf-8?Q?f3WoHIIkGUiHfOpU=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9627f2db-e974-4138-b243-08deac2bd474
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 11:28:58.2125
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: S+FE2aoZt0XreoX33ZpoxjyF4jS35O5pHJZ2wC/W9/JP6wpteZvLa/IfcnO2Tpx9dLhxrv10LoNAamK6FnmXvTDJ7VbeRqvVoYbpNTd5Nyk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB5042
X-purgate-ID: tlsNG-c201ff/1778153341-DAD6F443-60EE864D/0/0
X-purgate-type: clean
X-purgate-size: 486

On 07/05/2026 11:55 am, Ross Lagerwall wrote:
> If L1 executes VMRUN with the GIF set and it fails consistency checks,
> Xen will inject a VMEXIT and fail the assert checking the GIF is cleared.
>
> Instead, clear the GIF when injecting a VMEXIT to match what hardware
> does.
>
> Fixes: 9a779e4fc161 ("Implement SVM specific part for Nested Virtualization")
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu May 07 11:41:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 11:41:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302643.1576501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKx6I-0004p4-Pw; Thu, 07 May 2026 11:41:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302643.1576501; Thu, 07 May 2026 11:41:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKx6I-0004ox-N2; Thu, 07 May 2026 11:41:06 +0000
Received: by outflank-mailman (input) for mailman id 1302643;
 Thu, 07 May 2026 11:41:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wKx6H-0004or-Qa
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 11:41:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKx6H-003YqJ-7C
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 13:41:05 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc7a46-5cb7-0a2a0a5109dd-0a2a4505e56e-38
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 13:41:05 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fc7a50-aaa8-0a2a45050019-d1558036a580-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 13:41:05 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-48a3e9862f0so4969055e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 04:41:05 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e538a547bsm129664925e9.5.2026.05.07.04.41.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 04:41:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778154064; x=1778758864; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=l5oqta53Wb2XKEYbeaBofoFNbSWO0qh3k0idBe5tPFE=;
        b=glULqcjtiactQs2u+MMeXmI3xl1puvI2t9AhOZ1aX0gTpfYA9OURdz4OqM9RN602tp
         m3JzodjsmosuZgpSPyv0Dpber3Mmd5fVCidcB31Ntkm/cN7g1TGYFKNMtyZ311u7bs8Y
         v9wRzQxMcN2EedvB/cdmUDIL086ZYHSXFkvNU8FsV5fH+DEUoOteCaohkU/VcTev/mmQ
         gh656LfQGNMjdWWFBNyjRs124l0Lm8v+S2lxEE2LZU/0dn8CYOYmiFzNgJQLds42emwH
         AH/AcN2ECdh2jrC7k4/FkxffIX9zGxJIMK+bzRPfGW34XRzXH7J1UJYmQ9zSruHEoY/u
         tyIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778154064; x=1778758864;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=l5oqta53Wb2XKEYbeaBofoFNbSWO0qh3k0idBe5tPFE=;
        b=a4sIapeSr7Kriw1sk4J7ucfAa4N5zuQ7bSsxj/hi7BnAsY9K5ruT1GYjsyCohOLsqM
         ZGxY5Uj5V0H32tU5XS4ov0sQ4RWSYLEY7Wk0y5lSbarVxMpVRGGe11uyi6wknmMZ4Q2r
         AM4vzT+LsVa2SvCYVFNojiqVyn7yEbc2zlRzvnFZ0r1oYP3y9JCY1YWLWJ5xGtBgCLiC
         ILyjdjkXVfY68ZrreWvJl350YjsdFKDiCgOmFfHTrcDhATFr6gFltySwhmo92iKSgWZ7
         eiQLutaurtg9Yiqs0xzfR+JL4bkG8ySlq/njnoR8n60D8xeWcQHRb2EC4fI0xn4OrOKG
         N0Ig==
X-Gm-Message-State: AOJu0YyNNA6UP49fKz1xmdEBtQYPtoKKyA1cSG84qkxR5N5pj4WbV9By
	n/owjDHNaodQp+lytWbVLQDI+MbTMg487oSZF8N2vp/Zne6bNzIkTEKS10EQP5t0z9ca0KIbdB5
	cMaI=
X-Gm-Gg: AeBDievtoT6nd3M/6S+DRfqfzu8adIatl4r6PV3I+lQ+4QD93sQbJx96RDEm3evMyiL
	KBVzm0Wm0GeVAkoB6wh90T3XRbXnaXkWjLkIl0zHIQUkI0z1DAPbCWeSqGXR8xXRe2H3DPqmGaB
	mJXvRG3pczMoNG8ko4edyWF7fpKDTGPaSdxCPMmpQqkTTfJeLU9h+nUs7Rm2stZk+tTbox4POjz
	Gl90RKA1mDbBfTH72KZ3Daz1IH4NCnko8+4HK466laSHPD3vrxyTxftUqlVi7ZTLlJjnA7bpwbH
	LfV89jdeT2Zvoq6vAa7uU8OH/F3oPoET1pHL2FCjoaq23AQ4o67AuHHDEkVNn/0sffFlBUutmsC
	wDjShC1NCyF61JLniV7Sr2EGMeEN4fBaovH4tvfMsL/shuXhY9sMINiyA5ZxV1z5a+rc0axYWLT
	3fNtnWznB723lFbxKOUO20NiAabOxcJiEJJ/EKCnDJjnya4+rRlY6PWwSEJJJOFKJNOujyG1rRu
	k9DJEq9Ea1jONcRcNCrz9+/WHm9Oc9r+W0u
X-Received: by 2002:a05:600c:444f:b0:489:32b:ac0b with SMTP id 5b1f17b1804b1-48e5dfd6a6amr39113935e9.6.1778154064401;
        Thu, 07 May 2026 04:41:04 -0700 (PDT)
Message-ID: <c4ceaab7-3d5d-4923-bc27-f67d1510048c@suse.com>
Date: Thu, 7 May 2026 13:41:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Rafal Wojtczuk <rafal.wojtczuk@7bulls.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] gnttab: simplify (replace) gnttab_set_frame_gfn()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1778154065-E3B8E443-7C6D85E7/0/0
X-purgate-type: clean
X-purgate-size: 3448

It's not really doing anything for valid GFNs, which renders its one use
site pretty pointless. The other isn't so much about setting anything, but
rather about clearing. Rename the macro accordingly.

The main point here, however, is about Rafal spotting the double
fetching of the GFN (first in gnttab_unpopulate_status_frames(), then
again in gnttab_set_frame_gfn()). Re-purpose the macro parameter to pass
in the already fetched GFN, while dropping the no longer used parameters.

Suggested-by: Rafal Wojtczuk <rafal.wojtczuk@7bulls.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Do we even need the hook anymore? It has been expanding the same for Arm
and x86.

--- a/xen/arch/arm/include/asm/grant_table.h
+++ b/xen/arch/arm/include/asm/grant_table.h
@@ -50,12 +50,8 @@ int replace_grant_host_mapping(uint64_t
 #define gnttab_dom0_frames()                                             \
     min_t(unsigned int, opt_max_grant_frames, PFN_DOWN(_etext - _stext))
 
-#define gnttab_set_frame_gfn(gt, st, idx, gfn, mfn)                      \
-    (gfn_eq(gfn, INVALID_GFN)                                            \
-     ? guest_physmap_remove_page((gt)->domain,                           \
-                                 gnttab_get_frame_gfn(gt, st, idx),      \
-                                 mfn, 0)                                 \
-     : 0)
+#define gnttab_clear_frame_gfn(gt, gfn, mfn)                             \
+    guest_physmap_remove_page((gt)->domain, gfn, mfn, 0)
 
 #define gnttab_get_frame_gfn(gt, st, idx) ({                             \
    (st) ? gnttab_status_gfn(NULL, gt, idx)                               \
--- a/xen/arch/x86/include/asm/grant_table.h
+++ b/xen/arch/x86/include/asm/grant_table.h
@@ -32,12 +32,8 @@ static inline int replace_grant_host_map
     return replace_grant_pv_mapping(addr, frame, new_addr, flags);
 }
 
-#define gnttab_set_frame_gfn(gt, st, idx, gfn, mfn)                      \
-    (gfn_eq(gfn, INVALID_GFN)                                            \
-     ? guest_physmap_remove_page((gt)->domain,                           \
-                                 gnttab_get_frame_gfn(gt, st, idx),      \
-                                 mfn, 0)                                 \
-     : 0 /* Handled in add_to_physmap_one(). */)
+#define gnttab_clear_frame_gfn(gt, gfn, mfn)                             \
+    guest_physmap_remove_page((gt)->domain, gfn, mfn, 0)
 #define gnttab_get_frame_gfn(gt, st, idx) ({                             \
     mfn_t mfn_ = (st) ? gnttab_status_mfn(gt, idx)                       \
                       : gnttab_shared_mfn(gt, idx);                      \
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -1844,8 +1844,7 @@ gnttab_unpopulate_status_frames(struct d
         {
             int rc = gfn_eq(gfn, INVALID_GFN)
                      ? 0
-                     : gnttab_set_frame_gfn(gt, true, i, INVALID_GFN,
-                                            page_to_mfn(pg));
+                     : gnttab_clear_frame_gfn(gt, gfn, page_to_mfn(pg));
 
             if ( rc )
             {
@@ -4285,8 +4284,6 @@ int gnttab_map_frame_begin(
          */
         if ( !get_page(pg, d) )
             rc = -EBUSY;
-        else if ( (rc = gnttab_set_frame_gfn(gt, status, idx, gfn, *mfn)) )
-            put_page(pg);
     }
 
     if ( rc )


From xen-devel-bounces@lists.xenproject.org Thu May 07 12:59:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 12:59:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302707.1576511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKyJj-0006H8-FM; Thu, 07 May 2026 12:59:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302707.1576511; Thu, 07 May 2026 12:59:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKyJj-0006H1-CP; Thu, 07 May 2026 12:59:03 +0000
Received: by outflank-mailman (input) for mailman id 1302707;
 Thu, 07 May 2026 12:59:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wKyJi-0006Gv-3O
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 12:59:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKyJh-003oOG-EI
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 14:59:01 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69fc8c90-bab6-0a2a0a5309dd-0a2a4507d20a-22
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 14:59:01 +0200
Received: from [52.101.57.57]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69fc8c94-229c-0a2a45070019-34653939f3a9-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 14:59:01 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by DS0PR03MB7278.namprd03.prod.outlook.com (2603:10b6:8:12e::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.16; Thu, 7 May
 2026 12:58:57 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.20.9891.017; Thu, 7 May 2026
 12:58:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dw52WRgRlWYJv8nmjnmBNLG0/13yTXiURKZFlXtZnJmwUnKeksff7kh5/s3hfYqzPDCSauVkbGb5AuWMoc/zF+pOnOvtpKI4vZ0SaEj03QUr5lRCjLMGYvWvmEFUpSA+u1cz451T7aOdZMTY3uJFEiQbkecd/FgAiKJqrH7wUEIYymebPUVqOlcAGyuk43h0lycqPEnlnJ50I5VCCcF47FbzlwB1BMIP/HVCmtc/VPfzqlLbCDgN1iP923/yCeQhDxuUHrEDv7Dxab9V71y2zXqZ2ELq5r6yb8cdVJVxXQVgNvZUVT8QDUm0i3oiqHGM+S5nFqIfDNKVHza0MDHHlg==
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=/fE1ndgcG6sObWdvpqSARqeoeNhyfQzanNO6vhQPI4k=;
 b=mBeRv3NaZ8SmX8l3rNxlh/BltXn5VVBgxaCpmaEPu4r6F/GPBcCkhPoIUFqQmtRogyCRnOYLvIAGLrs+dZtRAJka4Sw2ycu0Qv3yoIAfDXHbdA2nD8n6kOTYLKc4rtWAF/WqAfEMCl/xFFJmiTzLP4HFmQjtQtvXmxIFI61T2d+peUQSCvw4Wg2LKnc7hWmdLkoNYZ9oqZXUpZxlyuyvRFE1wWfu87PTkzu5/n7X8lm7mEgC6WBb7Lh/HsDrkgq+a+n3PK1b+4J9RgI0va3rUVtdINidbpWd+QFVMHMf3kKl8pqUD1bgGGg+owo7hRgOJTU27ynOw/FRDBJuXZUAfg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/fE1ndgcG6sObWdvpqSARqeoeNhyfQzanNO6vhQPI4k=;
 b=htlkmK54gemu/4+XKCTqRG3FoEz+rmCTSoGhHyiXaERVhyM0D795tyzzgYSuf0I02qA4I36EAwd9ylYoCmvyklnl89u+wV71uMXZN7p9m/2BI8w90aRWCIGlt41awSqx73329MlYjoifwmKYQdpUh36HifNqx5Mc22yTIUSj+FY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c41ff9d5-82ff-4a7e-bff3-85e866338897@citrix.com>
Date: Thu, 7 May 2026 13:58:53 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] nestedsvm: Clear GIF when injecting VMEXIT
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
References: <20260423161112.50221-1-ross.lagerwall@citrix.com>
 <1777481694.8631fc262581453bbf619ec5b2062170.19dda2a3d88000f373@vates.tech>
Content-Language: en-US
From: Ross Lagerwall <ross.lagerwall@citrix.com>
In-Reply-To: <1777481694.8631fc262581453bbf619ec5b2062170.19dda2a3d88000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0173.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:312::18) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|DS0PR03MB7278:EE_
X-MS-Office365-Filtering-Correlation-Id: f892d064-6cc6-4614-53c7-08deac386668
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	888gcXp1WPhgJj05sKcMopLvdFjsp5YTYylhNJ4ygQF+hyqwKCUsd4guyf9fXc1KUf7CF57gcZ+8WkPsNJ76SVSMVd7vp9Rojj56vn5HpO0mce09l+qSr+R8pDXmNAnuUd54CZrgZrkUoeaz6Fyim7RDA7H2JXpxXMaQg7mqvOkFb1fGK3WCI0So/YyYN6GC/ul4bvEFPqhAJA8AutvnMhriwFpDhjA9BI0r6x6VQEl69VgrpcrzLzZWoEF+8qTpWeM48XCEb5g65kcEDZ0rnSI2B9ck6JrMBNEon0XkQaerlnW58mHO0boYGf3L8zI7FOWtUKR87n+WYjRmiXoqBYNj1sYRNxcnUb1ej/XwxGVQ7rlkuzJAvDMQ+lORWbzIxJlP20HR3BebIPvwe33k0Ag9xWou1vpgYpZ6512/BkXl8FeieJh5ds5DdfubS7uqopt0DEQn2sX5ynx/EJI1Fx4AoyF1Jd4GjIUBM7+2dAGSvuKwvW6X33otjGqFfol+IytANVDt/07BchCwHtL9YnCAeolGD5ESW98DlVyuyXzHDZJC7j5abse1f+NRAeqUlMhrPTaI/GAo1c/RG1cKcZGE+dLBG9szaV6Q5BEGrne+oGexJWBGxQwtLLQUCai5aU2jtthC3cWv9pJuftnJFYv8Viz7D0Q3h7VFa7OZkOdvJdqN3TGjz+LBk1/VhudD
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OSszUmxSbUFMcHVRRno1QmFTVkIvUmZscEh0MitGVVVjbFNidWJYdTVGQXQ5?=
 =?utf-8?B?UzRpN1h1T3M2bDNNRDk2Uzdwa0NyNlp5Wk1BZ3cyYzJOVTRDSzlZMFBFUHlo?=
 =?utf-8?B?alhpZDZHQ1BoeWg3WGR4L0hSVVFhbDhxUjVBNG45cHdURDlRQXh6OVMySFJQ?=
 =?utf-8?B?R002RkJYdmxXbVJ6Q0lBODFxc0tJOEg1UU1XZUJRa1dDTGZjb0hDU3NvR1Rx?=
 =?utf-8?B?QXJuK3FpZEd3NEpCZEhoUVBacTFvd2ZNMytpOEJ0eVBpaVRwSXoxN0VOZSt0?=
 =?utf-8?B?T09IcjBkNVQ2THlRMThkUjlYd0VkNXEzVFFmUU5iRFh2czVPajhOeEE2SVR0?=
 =?utf-8?B?Ry9SdlZuSHVDU21PRmNUTkJ1NnFzZzQyUk1PZHE0ZHhDUk5Vd2x6dFJydHB2?=
 =?utf-8?B?bHVDYkpTeVovOFBIbjJVYUZ3VVRnWkY1OTUvMkp2L055Y2x6MTJsNmU5SkxI?=
 =?utf-8?B?dUlaMmpLOTkwRXZBdjRCb0JkU3ZJWVJweVdzNWR0Nmo3QkJFQWZLaEE2SDFE?=
 =?utf-8?B?ZVlaVmZPcUZyMkxGZ3ZVRXJXclZtdGxoYTM3amcybmVGTzdhVC91SWxJUnAz?=
 =?utf-8?B?T3ZvOTJLaGNqYlAvMDRRczZhcEMyVXp4VEo3bWlOTWgvcXIwUGJnY3QvdUo2?=
 =?utf-8?B?STZYdVNwQStaWmo4SENGWjFHRkJlUzF2bWErYWIvaEhzSk5NTVZueDJPYUdw?=
 =?utf-8?B?enBQN3d2MGdyaERpeU43L2FLUWt3UWtsaXk2bFBGYjlQTzFocGduZHRRcHlS?=
 =?utf-8?B?WXVaKzRHMjNqcm9rNDZmM2ZYSGJydldIb3FzOGNYeVJHZ3YrL2hiekN6RXZo?=
 =?utf-8?B?bVR4OU1PWi9kV1hSZ1hnbGhzbkJhTm1Yc09PWGlZWVFGNnQ3Q2tjY0NqYWE4?=
 =?utf-8?B?ZWxxa3RTMzdJSjVPNmFBN3diSXpNazY0T2thb1VzazBwcHlQL2g3UzhDUDAv?=
 =?utf-8?B?dXh3b25ReGo5TDhRdmpyYlI5ajhzQzlodlU4YzJsUWI0RTFnK0ovNExVMzFy?=
 =?utf-8?B?a1p1M2d0dHZTS2NuVWtBN2N3MzUzekh2T0NSdXZhUGdXLzJvYjNGeFNpa3hY?=
 =?utf-8?B?NXFYTVIvTm9rRXpUUnRsY0tUSFNUN2xidUN5OUQ5MWdNMSsrOHBXSjZPRU5M?=
 =?utf-8?B?b25NWmkyN1dRaWlXeCsvZnQzQ0Qvb3pKZ0lEbCs3ZS85RTRINks5Ym5YQStJ?=
 =?utf-8?B?QjUvVE5uODRIVnRJUHllODVDRHFGcGdDQ3NnUHJhL044cDlDSTBjZjRsVENJ?=
 =?utf-8?B?SmtyRGF1NjFtTkRYMmNzK0pOWGRmcFdsKy9WUHVKVklnKzNKTWVRODRDelc1?=
 =?utf-8?B?ZGMreE05QmhKeE00dG5EVFJMeG1QSlBuaFVROHNWRjV2eG4rK1dpbHdKWHdi?=
 =?utf-8?B?eG8yVkNDSDVIcVEwNUpDZTh0SWYvYzUxYysxR2ovY09FYklybHdQL0JYNUlY?=
 =?utf-8?B?L280bXAwTGdMSjE4VDdpWWpOYW1QU0FwemxETndtTWd6eDVaOXkxby9ueFRv?=
 =?utf-8?B?a28yL1ZFN0pUQmtTL0tUQjBnVlFRWFZVdHlYSjhnRG9XaElpV1RnTkVoN05v?=
 =?utf-8?B?a2ZKL29ha2pBZlRtNlRUQW1lYWZKYVdYaW1taFNOYkxxc0dlRGpBenpOTnpi?=
 =?utf-8?B?bFJxS1J2akM4c1ovRGFOcXlKUTdRb1RGVFZNUW4vQ0xaN3Z1OGQ5RFphRHc3?=
 =?utf-8?B?TzlHR2oxMlVnQkJpNFBaSXdOL2ZzQVlNRkplNE5IeE9ON3kxOHhRa1lEUW9F?=
 =?utf-8?B?a2dZR05zUjhDNVEvWUl3Q1Y3Ukcwb3lmVllxU0xjUFI1YmNzaDdPWUxRVW4w?=
 =?utf-8?B?eFJpdzdUVVlZTEVQN2phVkZXZWZGV016RFJFWDB0NFhFREdRcHIxT2l6ejlI?=
 =?utf-8?B?c3hxMFZzY0JJbzhRWnBGT3c2YzUvNjNRbnVlcHZFZWhWaGlySUxsY3Z4K2la?=
 =?utf-8?B?TGFjUE1uN3hXamM3Ym1CUFY5RldyM2N6aXQ2bCtXVVBPaEVrbDZGU1pTVUpm?=
 =?utf-8?B?dU1BeHdYUXJ6azJpK1Z3VkdFYlJBNlhOSmdwNE9IVVY3V1J0TnVlNTBtaEpZ?=
 =?utf-8?B?VXVrUnhuaHJDSGp4SnFYTXl6eVdaMjVIUjRWbHd4YlVueFR0cTMzQUtid08v?=
 =?utf-8?B?YkdTeGNMWkR2VHpyZ1pnb2FvdVpvd2p2b3BKSnRrT3IwdFBsL1VFWHI5Njcr?=
 =?utf-8?B?bHI2TTErZnFVckY0ZkpRdTFUYmhZS0lFcGtUbm1aL3ljU050ZEloWUFWd1By?=
 =?utf-8?B?bkJTWUpMOXI3di94UEROcElYV3ZLb05IaCswUW5xNU8rbGpRazFueWFmbmtK?=
 =?utf-8?B?QWRKdVZZd0M3RW13VmFJS3VLQmt4TUNjNjRKRWs3QjB5bzI4QTlqUytHeWNC?=
 =?utf-8?Q?DaxtrwduLQnFPwbg=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f892d064-6cc6-4614-53c7-08deac386668
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 12:58:57.1683
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qnmcPDaL3yVrdR8AX+3zSHwp7tio/S9AClWqDivBVf3vUEkGw4h+5y5Iunf+JUtV7N11/YjXL7J0YSR9kQxwpPIRA06qcC4fnqPiAv0Zar8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7278
X-purgate-ID: tlsNG-ef75cf/1778158741-08F66C48-27139D7D/0/0
X-purgate-type: clean
X-purgate-size: 1911

On 4/29/26 5:54 PM, Teddy Astie wrote:
> Le 23/04/2026 à 18:13, Ross Lagerwall a écrit :
>> If L1 executes VMRUN with the GIF set and it fails consistency checks,
>> Xen will inject a VMEXIT and fail the assert checking the GIF is cleared.
>>
>> Instead, clear the GIF when injecting a VMEXIT to match what hardware
>> does.
>>
>> Fixes: 9a779e4fc161 ("Implement SVM specific part for Nested Virtualization")
>> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
>> ---
>>    xen/arch/x86/hvm/svm/nestedsvm.c | 4 ++--
>>    1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
>> index ef6fa5d23b67..f89b087a1155 100644
>> --- a/xen/arch/x86/hvm/svm/nestedsvm.c
>> +++ b/xen/arch/x86/hvm/svm/nestedsvm.c
>> @@ -733,9 +733,9 @@ nsvm_vcpu_vmexit_inject(struct vcpu *v, struct cpu_user_regs *regs,
>>        struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
>>    
>>        if ( vmcb->_vintr.fields.vgif_enable )
>> -        ASSERT(vmcb->_vintr.fields.vgif == 0);
>> +        vmcb->_vintr.fields.vgif = 0;
>>        else
>> -        ASSERT(svm->ns_gif == 0);
>> +        nestedsvm_vcpu_clgi(v);
>>    
>>        ns_vmcb = nv->nv_vvmcx;
>>    
> 
> Looks good to me, though I think we are here looking to make a "guest
> CLGI" (clear GIF), so the vGIF specific logic should be collapsed into
> nestedsvm_vcpu_clgi() instead of having it as the non-vgif-support case.
> (as IIUC, vGIF is a hardware accelration for nested GIF handling ?)

Not 100% sure I follow your point here but v2 of this series removes
nestedsvm_vcpu_clgi() entirely. Does that address your concern?

> 
> (also making me notice that svm_vmexit_do_{stgi,clgi}() seems to lack
> vGIF specific logic)
> 

Isn't that by design? If vGIF is enabled the hardware should handle
STGI/CLGI without a VMEXIT.

Ross


From xen-devel-bounces@lists.xenproject.org Thu May 07 13:09:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 13:09:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302723.1576520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKyTd-00084n-BV; Thu, 07 May 2026 13:09:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302723.1576520; Thu, 07 May 2026 13:09:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKyTd-00084g-8U; Thu, 07 May 2026 13:09:17 +0000
Received: by outflank-mailman (input) for mailman id 1302723;
 Thu, 07 May 2026 13:09:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wKyTc-00084a-1a
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 13:09:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKyTb-003s2p-3Q
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 15:09:15 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69fc8efa-e002-0a2a0a5209dd-0a2a4505ae3a-4
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 15:09:14 +0200
Received: from [40.93.201.11]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69fc8ef8-aaa8-0a2a45050019-285dc90bd5e2-4
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 15:09:14 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by DS6PR03MB989137.namprd03.prod.outlook.com (2603:10b6:8:368::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Thu, 7 May
 2026 13:09:11 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.20.9891.017; Thu, 7 May 2026
 13:09:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Qu2DTZCO7KJfdj5oQWNDQy00HYTW7en0yT4DR8Z/TDVw6e5SDx/0d/k3u8Ti+eG8ZWdITbeXRuVgd+l58RV5P+GwdS9s5kqIvC+Q9OKlz4oHFYPvUe/HSfCWCBSniwPQzqvYjBIdd1YaRsRgiCJeh1FOmm/Purya+EvbQIZhv7L1US60k1qIZozFA9t9c/SgZX7oIP7v+xRoZ8fxSRm/mzaT/1Par/jadoQqIvg8GcudUAr9iTSI9Ki27lcyClB75j0jibUb+inQEYG1HA5peIDDr8f5brTJQogEZ8//w2F70LnuUnAMZ3shAT6g6cwxlcIxbcqauWx2OcnDwP73pQ==
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=Mnm+yObtMeIg91hRA0bU8O3aLhLSlsKNRkfmBP3+Ty4=;
 b=l6k5BOjUvGMoLY5x4OzkfUqs+g8WsbshPz5g09l9JICLntDHWBpbxGRfVKNqgeJCkf/6VcMdm6zasZSv6V9U1mq2pozgLy7H+R9+Ymo9vUP9fgr1yQbEzpuMINO2URDRlYjf4KcT9gugf++abTY+u8NZDKPjKfniAK8PQYtyAYNNGB06vcQ5Q8dId6Ya3LrKjo0bf0B1k2Wl5qSiiao/rxG3r1k+eesg1mCChi+XUN8/RcTdbjl5y9AOzRI2RFDBCZUK5Fm0Jv6ifeYtbwFffFkq+59scptoXEqr5PXujD/GrHSCq2EoF0xxTB/rcBmFisA9/DcUvChrw4vi2SZFZQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Mnm+yObtMeIg91hRA0bU8O3aLhLSlsKNRkfmBP3+Ty4=;
 b=EPPjJMt3wQVw4Xqiqmoqzbr90Ri8KsIY4ltrszFIv0h+UaCw8PeOdOEzfcr4fGlpYX4ba8Ke4sFdwWrCdeV4VyBOP7Wq/gYwA/NYcybLBQ6peTp0gGkcPhriIMcbKAPQfgz7UdcO8ue9mLoLP45I3T7yLzEkOiXI4GBr7burPtk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <1c6c18e9-54ce-49f5-b0f3-5a7f553d646f@citrix.com>
Date: Thu, 7 May 2026 14:08:59 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] x86/svm: Don't toggle local event delivery on
 stgi/clgi
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <20260507105507.2078971-1-ross.lagerwall@citrix.com>
 <20260507105507.2078971-2-ross.lagerwall@citrix.com>
 <c62cd90a-0325-4a65-a1a2-a29aaa912200@citrix.com>
Content-Language: en-US
From: Ross Lagerwall <ross.lagerwall@citrix.com>
In-Reply-To: <c62cd90a-0325-4a65-a1a2-a29aaa912200@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P265CA0023.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ff::9) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|DS6PR03MB989137:EE_
X-MS-Office365-Filtering-Correlation-Id: 698ba661-d81c-4d8c-cb86-08deac39d039
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	h90AvGH5T3i2EdK6vqjPRbko68QGmES6Kjbghr6NjguvB5E6/bWCrIcW+oknNGAn4Vh2LBV9Sh6fxZTE5iv1RB2FAQ5ajkmeWOLDxfQo8frdfB8v2Ucn5++L4SaAXaTM+XUkYQRCnr9GJ1uJ9tB47veKHnPFAGFWWs73c1yXrP/q5xBGVh2Ey8Qhkl6PR07+kULawIC/m5hKERbNXHQLZtJpjpPeqRfR2cpoAfKVwiI1FgaRsE/tNZVQOsgoQgZMzxVlnGCJ0UgSr+BSzFus6g8eY6AkkqCHd/lUXtS6EJwYL1mvRGN5JGWXCx3Kn8+b3y/G8MSoe46OtdudGkvSPSeUXzD6uNmAo87lzWyf+hHgmlXLIiaXO1DLUBD1z6VTuNBM3ia0fdhEL/GQKr08PPm+4cpzXqBa908Dyk/PvStIsSoU7tFvyaRsvfYwowRhtWOtyHlqDWeEM78x/zeaVTBXp+TL0+6qEqEoYpr0kuUcdYJTKXLSACwhfHPsT9LfjXlxcMhlxH2v54H3ubNdlSP95LEG9+WN/R9iYfuCt4el82t4fbKRi2igB7UsSjnzrC9EvOG+e+by3fGkzh2Ykxz9i3OOdoH5UHz/V1/Yu+r6BmWar9krLlB+aSZOLrCJfMlsUFV9rOpn9inP0yVuB214DNhnxFnxJZLM5tb/JefzogfApFrFYCtYp7oM+NZ9
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Wm50aFlLNDlBdUw0MHNIYXVEQWtlSitBOHFlNWM2OVVyQVBYbGdYb2l3dkp0?=
 =?utf-8?B?ZVFEU2RMeEpnc1FzT0lOSGNXZmoreklZMGtuQ0libTZkUjZUbDNPN1B2VXlq?=
 =?utf-8?B?eGVxTFZDSXlNS1JsV1FoenBDTVN4UEs4RmV6M3ZjY1pVV3oxUTdITGNtSEh0?=
 =?utf-8?B?ZkNCQ25aOHhNNzRtbUdZZlpwdThBSnVsRVV3Z09SVkY3dlVFUzB1aERFWVFL?=
 =?utf-8?B?b0xOTnJjeXlEYmZmbEFub1FUNXdDNklSU0J3KzdrQkxVUFZFKzk0Szd1cVBx?=
 =?utf-8?B?Sks4R2JtZXFrTWxNc1JYRGFzUlpmaXVNTTVlMEd4YXVnY05FVk9qRm42dUVF?=
 =?utf-8?B?TmxOdFpIOXBkZDJJWHpWTlBsVVE3WHo2M2ZqZGt6anlVVEVhT2ZxOGN1U0Iy?=
 =?utf-8?B?QlRRSUJWTEt1cjUzcFYvL3dybEkwQ2JrWjhNb0tLMkw1Sjk4Nm9vbCtKMHdh?=
 =?utf-8?B?RCsvb3VvS09PY0hOemRDajg3VU83NlZPZktOcFVjMEJoMWhBT2pqOVgybHk3?=
 =?utf-8?B?ZWVFT3F0Mi9yeWZWUk1ScHNkVVF6RHo1b1p0bHJ6WXF1cXRsZkcwQU9wOWM3?=
 =?utf-8?B?aVAwUlBxUzFEZzJlRWYrcmQwU3pHZWZ3WkxvNFlnNVdrNFRHZGQ1Y3ZaMmJS?=
 =?utf-8?B?YkUzVHZBbEhiR0pVc283U3F0TXFQS1QzSEhsdkRPZVFlT1F4ekRSVllpakgx?=
 =?utf-8?B?OHJjMlk5bmJMZGxBZDc2TGRSTHJNN1pxdWRudnVYcS9YQzJoaTBreERFQ0pK?=
 =?utf-8?B?SHc5c1ZGa2NPRHc5bjVyUFlzSE9TbDBvaThOZG9wOUJRTjRpVTB4azVnR2Rj?=
 =?utf-8?B?UjJvRnVpMmR4WTdzdFEya3JadFh4Vjh0aVQ2bGZ6d1d4dEVQTEwwODhPN0hx?=
 =?utf-8?B?SW1UMHJmR0ZnRGtXcDBHMFV6UFpCZVpkSTdyRzdhZVBGOGRrdTkvMk5EREh2?=
 =?utf-8?B?Y2xBQTRRRDZkNkdBNTEwZWJQbHRaUFNRVTJISmhDUnUyU0lTdVhoSXYwS0tM?=
 =?utf-8?B?cWl3SHV2YzhsNno4U05BeFBQWUo5aEdZclRncWt1NEFWUUFJYWVXNldqYURJ?=
 =?utf-8?B?QVNkenJpTWlrNWV2cFlZSHAzUkJhR1NXTlBaaUhCQkNzY0JFZEJxQTA1YmRk?=
 =?utf-8?B?MzJZNkdaUzk0d3laNjRoaWtJUHR4N29kbGVuOUlhcGFQNW9nUmtrNk9NNmJl?=
 =?utf-8?B?ZkZ4bUNUWTYvUzZNaSt5eGkvWUl4dHBYRjR6TjNrUmpIa24zdWFrQUJ6a0xv?=
 =?utf-8?B?WnB1TUU2YTQ2RnpiaytJaFlQSndJRnVnRDZvbGlDR0I1Y08xZ0JqQldOQTZy?=
 =?utf-8?B?QkFZUncyUXJYeGFRY3pXZnFiSEt5QjZEZHhCYTJxQ3dlN1YvVzF5SVNhMXdL?=
 =?utf-8?B?TUowOHRaNi9EK1JZR1dseDNHY3hLYit6YzQyQkdYOTVBeWJpRHhDS3JCVlRx?=
 =?utf-8?B?TmREdWdKOVFlb1pmQ0ZLVnllc29LNFpSOGloaHMxKzhFNllPN3VUS2NOZjZm?=
 =?utf-8?B?cTUwdXp1VUFybzkrdTdaeEZwV0krMDVmYmZ4WGZVYllRVnNPMHQza3poamVz?=
 =?utf-8?B?bDRoeG8wQjA1d0IwM2lSbGRud2xVTzRwdXc2TFZqWTBHaXFkU3BmNGZTLzJF?=
 =?utf-8?B?TWJBUlAxa3NBNUFLcTBQOUtrWDdSb1JSazIrWHlrSFlESkFOa1hOb1lQWHlR?=
 =?utf-8?B?aGs0dm4zenJibHdEL1E5a0pYRy9MMTEvUHh3UmtzdnZsM25ET2VIbmYvdHBy?=
 =?utf-8?B?OGpvMTBRdEZOUEZIMG1sTXBKTEdBNmNZQmxRZGJLUGU4MHcwMWFZWVhmM1Ay?=
 =?utf-8?B?bXV5UStIVXBSeFJZUUxrNFJCWUxKR3dSVGpmZTZzTTB1bmpoeTFwaDNJZllT?=
 =?utf-8?B?eVZ3aFpBdzYzZkNhQzl6YkZ0R3hsaEhqV3N1ekVDUVhEVUl6cnFEa043VlFF?=
 =?utf-8?B?eUpFUnUyczJZVGNBNnphRVdTbXRCTEVEck1LZjh3SlVFcVBSc2hEVisySlVp?=
 =?utf-8?B?b1U4SFh0S01oWnY0NHBNNmo1RWVtK3R2TmZsck41UmdqbHMxcnJza3pLbGZp?=
 =?utf-8?B?b2xkeis2Mm4vQlpjNXljMmFXaUJrdGRwc1dVaTNkVytRaVU5YXAyVFQ0TzR3?=
 =?utf-8?B?dFFiMHRTU0Z5OHRCWDZPMXFkUHl4bWhTQUwvUkxkQlJuTCtVRlkrU0wreUFX?=
 =?utf-8?B?ZjAwMENtR2RyVm42U0VpM1U5Y1NFOGV5UWxHaDlGNWhXbS9HeTcrSmNVRjln?=
 =?utf-8?B?ZDlvczFYclI0bjlGaTJSZHJzZDlwcU4rbUFzUUZJM3NEV01tUkRtRm8vRXVj?=
 =?utf-8?B?VjdsYmdEbTZ4VTJvODRucThZTnppcWp3djJkckVxK3U4dUFSQ2ZWa3VJcWpa?=
 =?utf-8?Q?Pxx/+nzPMIeBRTC0=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 698ba661-d81c-4d8c-cb86-08deac39d039
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 13:09:04.2898
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QtgxpTzszPCD8rcigMpEWLZ5Q7oLQbwtSK+kd2gV3x8kf8QAHENlUvW92lMTnMKJuz26DJKdsDENyekMNwljYyX1DrVCiLgDoLG4C6WWx0k=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS6PR03MB989137
X-purgate-ID: tlsNG-c201ff/1778159354-E1B9E443-608B86DE/0/0
X-purgate-type: clean
X-purgate-size: 1068

On 5/7/26 12:28 PM, Andrew Cooper wrote:
> On 07/05/2026 11:55 am, Ross Lagerwall wrote:
>> There is no need to explicitly enable/disable local event delivery on
> 
> While the name of the function is local event, I think this needs to
> state evtchn because "events" have a separate meaning in this area on x86.
> 
> Personally, I'd phrase it more sternly.  The masking (or not) of evtchn
> has nothing to do with GIF/IF.
> 
>> stgi/clgi since HVM event delivery already takes into account the state
> 
> STGI/CLGI.
> 

OK. How about this instead?

x86/svm: Don't mask/unmask evtchns on CLGI/STGI

Whether or not evtchns are masked or unmasked has nothing to do with the
state of the GIF/IF. Therefore, do not toggle the evtchn mask on
STGI/CLGI - HVM event delivery already takes into account the state of
the GIF/IF. This ensures the behaviour is consistent regardless of
whether vGIF is used.

Fold the functions into the callers since they are now only a single
assignment.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu May 07 14:29:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 14:29:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302802.1576546 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKzjJ-00028h-1U; Thu, 07 May 2026 14:29:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302802.1576546; Thu, 07 May 2026 14:29:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wKzjI-00028a-Tb; Thu, 07 May 2026 14:29:32 +0000
Received: by outflank-mailman (input) for mailman id 1302802;
 Thu, 07 May 2026 14:29:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wKzjG-00028U-V7
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 14:29:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wKzjE-00BS8G-Nj
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 16:29:30 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fca1c8-bab6-0a2a0a5309dd-0a2a450293e2-8
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 16:29:30 +0200
Received: from [52.101.85.10]
 (helo=BYAPR05CU005.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fca1c7-af86-0a2a45020019-3465550aea52-4
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 16:29:29 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SN7PR03MB7260.namprd03.prod.outlook.com (2603:10b6:806:2dd::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Thu, 7 May
 2026 14:29:25 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.008; Thu, 7 May 2026
 14:29:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mrIHrvkbj2rYmKF4DpdgMugf/jdx6bD+V8tqFGHn1MvMVfnsEC4cQFjcWV7UWgTkBBGRD6co51jOoygX6W0RmgGNEm46OiU43Iuz8mtXP3tAvN+r0L3QmUNaQ70ErE8Cxleudqay+EasLOeAure4YrI8uPnCKg5S/HmMlOdAVW7xy/PKmkLh8jcKwjzrQNX5Ep307glFrA1bd8rJ1RHelDeMJVIAGkvUzFOUAb+XOe3q+/Xcrmt4tZS3OFGsqQX6r+vagAJUeb8tZx7rCyU4Exk9awnED+CVNzMowvcibjZBKvLgoDrdTjW4020PRr9qgrl7qTHtH/huM7q/eqBeaQ==
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=cdPTQ9unoLl/SWMfTiuv5+Xuu2a9/2HGK8L4AkArAoU=;
 b=YvNjz7HAAMcc2qHsENTUv1t9MvO5kZhQ3O9oSoP9yKhUXpC2khE1Ms9A87iKvdKkAvs+AjOli8jASmVT1olvfg7d5gJSabi9+x8V7VoPzN4m9tez2plpAgRH12XQ3ldFDUEojOjqKmgPqIB80RUZADKua2UQZp4LeLlqI/rtFPbLNOzW+Nc2nMGICrAWqLPnETtXsBAvsKn9Og8gcqkgah5WV1o5xCM6cBxtpuy8fYmLZUcBHRY3aJHwSDhVoaflUTga4R08ZLI6+UL0sjrtRX2UGKf7DK9lwfNkymMuj/vw41O/N3dKbTSlv3wNxqaiMoHGWWvfaH8/6viwdebuMw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cdPTQ9unoLl/SWMfTiuv5+Xuu2a9/2HGK8L4AkArAoU=;
 b=t0cB5acaGm600XwxOpN2tktsQem6BzIwKP7wMIFYatHv9hVM6eQRHxdJLHHKP0iVy3vUCj/TzM9W+cdfehP98NXq7fdl6OZ1qPLM+Q62JxI9XP03FtaTbqR933DodOZjLkh2YiL5pRyT5X6kII5jTaSF+7UKnCs796Z6TgeoZvY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 7 May 2026 16:29:21 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3] iommu/amd-vi: do not zero IOMMU MMIO region
Message-ID: <afyhwREFMQlHmqMF@macbook.local>
References: <20260506165157.68567-1-roger.pau@citrix.com>
 <b5d9ea51-5fef-4bae-b124-f4dbde93dbdc@suse.com>
 <afxRZtm-L1ZA8jF1@macbook.local>
 <b0d460d6-5828-41d5-9168-394fb54f80bf@suse.com>
 <afxnq3kXflTvz4P-@macbook.local>
 <6d6f4862-0e57-47f3-a87b-2180c7f8e895@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <6d6f4862-0e57-47f3-a87b-2180c7f8e895@suse.com>
X-ClientProxiedBy: BN0PR10CA0020.namprd10.prod.outlook.com
 (2603:10b6:408:143::11) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SN7PR03MB7260:EE_
X-MS-Office365-Filtering-Correlation-Id: 0a4256a6-8ea6-4832-b876-08deac450989
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	q5cg2qWLXQNqGvehn8DH77sfN8O1uoSzw/R4eKa5fGtZent4sfD+hv9mmkn0Z9Kvr7rpAU8YdFxY7hN4FC9WFv69m50b46aV44If5KC9cgRAQQ9zCKHf9CYyqH+HssjKT/7fJHk0SJl4luUHIJK/agAuGfn7obPkTXVF2zh9LepgaVJ7pxp0RSZ36bbz5NwGC7ENX9gdzjs5MAFNqj0HbPSZqXLnbX/Esgr/+02JuOvkH01BazrB+D6QmpCTAvGcvvkkp/1CYAhWMbQOkUiw6w5awPAiFdVsP9Ut4FP3RYqy+uFiTL7gIS9G/bNOkn9cpoVYzCkkuTp2S44BdwuHAAy91R3yX5XMyd1lqXiw8qGNIsxYFhXN0zDeTv09fVNQ7/24MBCwmzHkhqKVPr7L4hs8LtRVbCC0JdXAdoN4n7hPGYJlskSYdHB117GZS+JzKgvBdRfs1MfMFhd3QHDW0cdR8u96IfYLU/PMJnCHJE7pDcjgkEiL0o4oXOylyl51KATFYQJNEaL4zlfZ/ReM5dNqhqR3OMCduNRNWDy63rswp71fIyYxUhwAhSeZsynxyD4sGeI68ikgT24kCSes8qYNYLwUzBH+thKHsLi+jNzHZFg8t/fE3NoYGRHL+46nEysE1B+WMOv8TSXGNaaOZjSWcQLsJW9oPzBJHh6KvghCvfl/3Z3RYJLkBiUF9Ql8
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VGVtdDJjanpNSWxSVHpGV2tOVUdMdkJEZU8zRnRDOGZWTXJqOURzK25CZ3g3?=
 =?utf-8?B?amRrdS9OVVZBNGRZNVdKNEJ0cDJielYyaEhwdzZvZEtubytSVmJBa1BsdTR3?=
 =?utf-8?B?WWZQU0RjUXFoa1J5RG5ZeGEvSStYVXg4cUNJZFNmRXlYcVNxYzd6TFBtZUs0?=
 =?utf-8?B?dDRBRnhEQ0RaaEpGYW1ITVhNRjdjSXR6a3I5RWo1dENRR1I5MWtRVk1LK1Vz?=
 =?utf-8?B?YXZhZURwbkpONUpmVVMycWM1eGtYUEMyMDRiRmdJVnNOSGVJM3VEMDV5clMy?=
 =?utf-8?B?YnFDR1o3TkkyU21VUHdaaDA1K2hJSC9OSU9RSnlhSjJNaytXbTduQzc2WkpL?=
 =?utf-8?B?L0JkaTdwNldCUVg3bVF1SkhKNkxGNUZPYXlkdTluT3FxL290S25QMDgrT1VC?=
 =?utf-8?B?elJReDdDSUxiNVdrekJtTXVrQ0dsblB1c0ZjN1NsYzlUend2Q0pVcGw1NmNz?=
 =?utf-8?B?bzcySzJEOHBVZE4wSDcweWVZUWFBOGx0VnRSQzdzS0h2Q3JacDUyeUFJU0pV?=
 =?utf-8?B?VFdEcFlidmplS1B6U0F3SWd3MnNaRDc1cXMvaDNwOXRCZnV4Y0o1TUF0azZT?=
 =?utf-8?B?b25VTEtyV1NRWlExQk5oVlBvU1h2ZllaKzk3NlRycTFQbGhocXBrbCt1bG9I?=
 =?utf-8?B?bFdLanZSNHI5L3dpU1dOekN3TE1XT2cyM2s0SmdkVmFkV0RDNDZmK0lkL2JF?=
 =?utf-8?B?MzRCSlB2WWRPOThNQlQ5NElvRXVKVlJIenV1azVPOWs5MzhnTjQ5eVV2N3Rq?=
 =?utf-8?B?UVRZV1FFZUV5OHo2enNhelNEUURub2RyaGIzQ0RKZHQ4UFVHZkgwckRKTFYr?=
 =?utf-8?B?UCtyd2JrQVFQNGs5L0ZwZDBBY3M1aXFBSDdOUjlMNzdnUTNiY3NOL3FMakRG?=
 =?utf-8?B?aWM5N0dKQU50aUZlVS8wWUUwNHZCa3JXMWJXWHpKSnkrNTN2R0hEZTRRbG9w?=
 =?utf-8?B?SWovemtRNGQvZ2dDdVNLZEFmWm9wK0E2cXhzdHVkVzdoNDh6L2lXREorZU8w?=
 =?utf-8?B?RWNrTW1MTTh6WVhlM1ZpMWNiZitXSkZSa29UQWdMa3FhMWRYUHorK252VWhq?=
 =?utf-8?B?bkYvWkowRzYwSDB0MkNNd013N2VyZlNqUEhnNDFPQ0FFck13dlZNYnJyTlh4?=
 =?utf-8?B?Uy9qb3dNckRIUllBUjl4bVJXWDFJQldndVdNWFpLZG1SQ1UvekVtMjdDVHVI?=
 =?utf-8?B?OG00K0U4OW1PQ3ZLS2lOYzhIR1pwYmJZaEZXRzBReWxxTUlOWUdOT09URDlG?=
 =?utf-8?B?RURtbFlUdXVHdnhwd29jc21FU1VpVEVxMVRScXRGeWhKNzZCY1VBdy8rWWN5?=
 =?utf-8?B?ZE94RVliUTRNSEVsMjBYV04xUUN6OS9rQ1ZvcFY3V01mODRMUFJGL25ncFBK?=
 =?utf-8?B?Nm1seDQ2VDVuYnpYcEVUYzQyT3Q5YWhoM0JIYTJuZ2luVHppNkpUdW11cHd3?=
 =?utf-8?B?N3hIRmJoOEJvcjI4dFM2VjE4dHpVSWUzQ3pBTUhESkdtd1hCczNWYklqc09D?=
 =?utf-8?B?Mkg5ZkRMek1rRjNIMUIzK21mOEd2bDZ3NmdEMGIwcjZ5dENoSlBvTVNkTG1B?=
 =?utf-8?B?aTBNdS9YMHN0TDhPem00QW4waEcxTnZ3dzVwSHo2bU8xRXpRYkFjZWpqVXAz?=
 =?utf-8?B?RURpMHlFdlVQOXJkRTJCVm1oUFpVOU9oYy9HUHpLNFU5ekFrNzc2Ty8wM0RD?=
 =?utf-8?B?YjVBM0ZJMDdrNWgxUEpJNytQWGFOVktjVjNpQVo5QXdTYVZ1ZmNOYjBrSGI2?=
 =?utf-8?B?WkxURFowd1hodnZzUUM1aS9QQlNjUDFndUYxZ2VoZVMyblJwbUs4eTdBTTZ1?=
 =?utf-8?B?eUswcUtpQkNDVXgrVSs3L20weXNkZHFROU5yUGVnU1d6WTI3Y3lBWnplaFBZ?=
 =?utf-8?B?WFlUdTlTR0U2OUdndk8xK0lBZFA2OGtwVFJQaXB2M3V3MU5WeVZZbUxiQnQz?=
 =?utf-8?B?U1RUak1uNWlMWDc1eUV4R1V0UE9TUTIxWnJ6RjJUbWVteGhQek1lL0ZOVHJM?=
 =?utf-8?B?aDE0UzliMGhYejBNNi9zRWwwYTk0ZVZWYlVBR0MyU0hmdlJWZGxBT09HWEtV?=
 =?utf-8?B?TmlBZk9iVlgwT08rY083NUt5UnVYajlIZGFtbnQ2N1NuUHJjQ1JNZEM4RXlj?=
 =?utf-8?B?OFJCamdLVmVtOXVyUXg4c252aU9nQ2hTQ01FVHNRTXJVWjY0RVNCOHNVRThL?=
 =?utf-8?B?WEVsL2tGYS93Q1pPVkFKc1lmTDJ0UDJnbDdpSU56S2hWalEzNkdmQ0dUT3h2?=
 =?utf-8?B?WmtvNy94dWRsTU12TGNEdjJLMCtxMXNuQmcyMkxFOTFoQkU5NnpEZWp2enVY?=
 =?utf-8?B?Rlk1TXdTMVlPS0ZOcVB6R0xLbG5Pek9VYWFqYjBhMjNpamFHNGNaUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0a4256a6-8ea6-4832-b876-08deac450989
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 14:29:24.8912
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6jgyZmMGCwLNvqY8+ID59517N7bMAKKKnun4VBbL6Ds+uuB13ap8qJu+J0bdBbt5lX0Pbgk9tM4zfRGgdiqMkQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7260
X-purgate-ID: tlsNG-720697/1778164169-A917D161-1EE5E37B/0/0
X-purgate-type: clean
X-purgate-size: 5553

On Thu, May 07, 2026 at 01:20:25PM +0200, Jan Beulich wrote:
> On 07.05.2026 12:21, Roger Pau Monné wrote:
> > On Thu, May 07, 2026 at 10:51:18AM +0200, Jan Beulich wrote:
> >> On 07.05.2026 10:46, Roger Pau Monné wrote:
> >>> On Thu, May 07, 2026 at 10:03:05AM +0200, Jan Beulich wrote:
> >>>> On 06.05.2026 18:51, Roger Pau Monne wrote:
> >>>>> Attempting to memset the whole IOMMU MMIO region to zero is dangerous to
> >>>>> say the least.  We don't know what registers might be there, nor which
> >>>>> values might be safe for those registers.  On a forthcoming platform doing
> >>>>> the zeroing of the MMIO region does put the IOMMU in a broken state, which
> >>>>> is not recoverable by the IOMMU initialization procedure in Xen.
> >>>>>
> >>>>> Instead just zero the control register, which mimics the current behavior
> >>>>> with regards to how the control register is handled, and ensures the IOMU
> >>>>> setup is done with the unit disabled.  This approach will need revisiting
> >>>>> in order to support Preboot DMA Protection.
> >>>>>
> >>>>> Fold map_iommu_mmio_region() into its only caller, as the function body is
> >>>>> just an ioremap() call after the removal of the memset().
> >>>>>
> >>>>> Fixes: 0700c962ac2d ("Add AMD IOMMU support into hypervisor")
> >>>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> >>>>
> >>>> While you got Andrew's R-b, I don't view that as enough to commit it. My
> >>>> prior concern towards ...
> >>>>
> >>>>> --- a/xen/drivers/passthrough/amd/iommu_init.c
> >>>>> +++ b/xen/drivers/passthrough/amd/iommu_init.c
> >>>>> @@ -42,18 +42,6 @@ static bool iommu_has_ht_flag(struct amd_iommu *iommu, u8 mask)
> >>>>>      return iommu->ht_flags & mask;
> >>>>>  }
> >>>>>  
> >>>>> -static int __init map_iommu_mmio_region(struct amd_iommu *iommu)
> >>>>> -{
> >>>>> -    iommu->mmio_base = ioremap(iommu->mmio_base_phys,
> >>>>> -                               IOMMU_MMIO_REGION_LENGTH);
> >>>>> -    if ( !iommu->mmio_base )
> >>>>> -        return -ENOMEM;
> >>>>> -
> >>>>> -    memset(iommu->mmio_base, 0, IOMMU_MMIO_REGION_LENGTH);
> >>>>> -
> >>>>> -    return 0;
> >>>>> -}
> >>>>
> >>>> ... this part of the change wasn't addressed, neither verbally nor by an
> >>>> adjustment to the description of what was committed. As previously stated,
> >>>> blindly memset()-ing the entire area may not be the best of all options,
> >>>> but the downsides of not doing this need to somehow be addressed. As
> >>>> indicated, once they run out of bits in the main control register, they
> >>>> likely will add a 2nd one. That'll then also need clearing, yet we have
> >>>> no code to do so anymore.
> >>>
> >>> I could introduce an opt-in command line option that forces the
> >>> zeroing of the MMIO region (to have the option to resort to the
> >>> previous behavior),
> >>
> >> But we don't want to fully go back to this. We'd need a form that zeroes
> >> what may be zeroed, without causing the issue you're trying to address.
> > 
> > But how do we know what needs to be zeroed?  We are then in the same
> > position where the introduction of a new control register would cause
> > the zeroing to no longer be accurate.
> 
> An option may be to zero everything we don't know about (plus perhaps
> everything we know about, but don't otherwise use), on the assumption
> that new (writable) registers added are okay to zero.

I don't know, I wouldn't feel very comfortable in zeroing everything
we don't know about - there's a risk of zeroing hidden registers set
up by the firmware.

> >>> but I was (wrongly) under the impression that we
> >>> have agreement the proposed approach was the least bad of the ones
> >>> available, sorry.
> >>>
> >>> Note how VT-d also doesn't zero the IOMMU registers MMIO page either,
> >>> neither does it seems to zero the Global Command Register either,
> >>> which I'm not saying it's correct, but is at least a (possibly wrong)
> >>> precedent.  I don't think there's much we can do with the handling of
> >>> enabled bits in possibly registers not know/handled by Xen.  Like on
> >>> VT-d, we possibly need to rely on the firmware to handle the IOMMU in
> >>> a half-sane configuration, with no enabled features on registers Xen
> >>> doesn't know about.
> >>
> >> As indicated before, for firmware we can likely rely on that. Pre-boot
> >> non-firmware environments and especially Xen being kexec-ed (or being
> >> run past something which was kexec-ed) may be of more concern.
> > 
> > Do we really support booting from such environments?  We would need
> > much more careful handling of enabled features IMO, as blindly zeroing
> > the whole MMIO register area is likely to not make the IOMMU happy if
> > it was in an enabled state.
> > 
> > Note for example how Xen was zeroing the command and log buffer
> > pointers ahead of disabling the features in the control register, just
> > because those register are ahead of the control register in the MMIO
> > space.
> 
> Hmm, yes, such ordering issues could also appear with new registers.
> Then again, with the IOMMU as a whole disabled (which we would still
> want to do up front), perhaps the order of other stores can be assumed
> to not matter?

I would assume so, yes, but for the issue here the order of the writes
did matter, even when the IOMMU was fully disabled.

I've inquired to see if there's a recommended way to clear any
previous state from an IOMMU.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu May 07 16:31:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 16:31:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302904.1576570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL1dN-0002iD-HL; Thu, 07 May 2026 16:31:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302904.1576570; Thu, 07 May 2026 16:31:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL1dN-0002i6-EK; Thu, 07 May 2026 16:31:33 +0000
Received: by outflank-mailman (input) for mailman id 1302904;
 Thu, 07 May 2026 16:31:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wL1dM-0002i0-S5
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 16:31:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wL1dM-000E5U-7F
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 18:31:32 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69fcbe59-2eae-0a2a0a5409dd-0a2a45078c90-24
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 18:31:32 +0200
Received: from [209.85.218.42] (helo=mail-ej1-f42.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69fcbe63-229c-0a2a45070019-d155da2ac501-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 18:31:31 +0200
Received: by mail-ej1-f42.google.com with SMTP id
 a640c23a62f3a-bca0bca01b4so51671566b.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 09:31:31 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bca583dd7e4sm5246266b.58.2026.05.07.09.31.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 09:31:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778171491; x=1778776291; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=ZK4UBmAlIZ0/46usuHizTFZKuqbrLwHil21ejHg6ZAc=;
        b=N2bnDoEhzbtpyp0dMl/A0yFqi/h3iBXUua7OeThRVWbZFNkE/5E5gk661OFI+38QZC
         0ye/zhY/6B6f7+VlghaH2GcNeaxlYBVUtetUaZuRtioKPJWXqbyERWsSh0div+OWTUc7
         k40fx4xF1oukDqO4nEZx0APSDijfjdBeXLOeM0f2S7FXSouCFtdXZTLe72mO0LcOY1C9
         OAArEpmOJSe8Wn3JS4hQbcB5g2ZXGlqkHI7vdLOuIUf4QqKxj4XdqTaM8WcoqV6IWVGa
         m+xmtJePvI2WGj7qMqFDkRGh57gPNtTlztDe2ewwU35sd62D+hImiF1XVymcNH2OHPFj
         wp/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778171491; x=1778776291;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ZK4UBmAlIZ0/46usuHizTFZKuqbrLwHil21ejHg6ZAc=;
        b=sx6V2F0JXNn6PvGP7zs1pcMC9dtpiF4DzenSs7YhpPUrMsTMd7MoH07bvtTaLppyGv
         Cs030KvdNcwqlEVvVfJvRvoLLgDJ+R/GaSsVIqCRi+LLg9wmVH8L7e/tiO8F2c2dyZcK
         SwVdSiLbUemwVF51fsjWWqKmFG11MolfOWnXr0eu9SnpyVrDNTGTEp/jUQhyVPcrfJoj
         uHOP33yaJOY5/YccdVvelv1+E2OyR7A90NgGAMzm93plo+bKmcaoE7TA+wlZ+9ozycp4
         nUy7hjjdjL54cfCpnPH5c/LyT20K/MG+ergQXRP33JMRaLSHdOW9Km8XEkVfGHW82ci8
         Km7Q==
X-Forwarded-Encrypted: i=1; AFNElJ/P0A9kiXCx82s07qjxVFZUGOw9iVL+EaSpFsSD4yn7Al9n49urdQR9hMNKCqxOdubcZc8mXZFExFk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxISATMhKbeZiQDI3/S55LcafAu8L1W8EFOxORGFEdKT1wbW2gO
	8W+iPJdMeZmcudtg7Y22Lf2u3aWnKV6UJhSZqf1kdKFyL02T3o4xCzke/qMwJSpTi1M=
X-Gm-Gg: AeBDiety22RPJtZOOhLgC5kWA6qRgm5l47ysGkP/iSfrrTsorP3dvUrX3UAXyPs5ulf
	tppY8jskk4o5jgOaXivg1RHFRLfACVfoqfw6xTAqNhrNoD2u4pY0iHr7Fnq6yvDR1rlbiNn35Ax
	13C9CwqGIP5TaGdRNXu0h1K0rBfT/uARE4sbEW7JcUyIBLpT4PwQgPMF4hnSTkzeoZBypJJzP7+
	qOEOAbpaRwYT6VYHpGxlxoCuLlCbUWS3JxE0ukjDzcBqdHe4fj/q0l6LHkeI+9loANjIXYIzUBd
	pHjAesR4QXWjLKNOS09j4XYXD8m2vAmXfZXiJGnK/8ZVaXXJwDES+3h06V+mYlCpH44jJvwSflh
	OOsy8oqoe3YtEqhn4AVdty/h7a3DBKsHB4ld/KCOmztQnkLJTbsycgYvJ4ihkpPI8h7ue0UQj5B
	CCGwQp0CiVabtxo991nzKdlJWVJJl7DfKPv/ZeKSy4I4dei80iNqjfkXxXM9SmvuQbI7/Eh9y1z
	MToI1ymKgzar+e7DxgDPuMAMn7VYDg6KJKh205IBT96G7rYCsd3m6taHrc+eudn
X-Received: by 2002:a17:907:ea7:b0:ba7:3d21:c137 with SMTP id a640c23a62f3a-bc56cb23d09mr485048666b.17.1778171491031;
        Thu, 07 May 2026 09:31:31 -0700 (PDT)
Message-ID: <c6855bd1-5b41-470b-8942-a4ebe3b5de0b@suse.com>
Date: Thu, 7 May 2026 18:31:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1
To: Kevin Brodsky <kevin.brodsky@arm.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
References: <aaBH3EAchUwKhrUA@mail-itl>
 <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@citrix.com>
 <c712c06f-7fcf-4876-b2d7-f2b7bc6f0dea@suse.com> <adIuP7-sNwuOid80@mail-itl>
 <5d068304-837d-4aef-b8a7-87c91ccf96b4@arm.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <5d068304-837d-4aef-b8a7-87c91ccf96b4@arm.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------cgepJjfW9HBWFgx5WY0SpqIe"
X-purgate-ID: tlsNG-ef75cf/1778171491-08B60C48-4FD4B9C7/0/0
X-purgate-type: clean
X-purgate-size: 20878

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------cgepJjfW9HBWFgx5WY0SpqIe
Content-Type: multipart/mixed; boundary="------------iyjT3ytA0H2xpCRVpWtNa0jc";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Message-ID: <c6855bd1-5b41-470b-8942-a4ebe3b5de0b@suse.com>
Subject: Re: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1
References: <aaBH3EAchUwKhrUA@mail-itl>
 <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@citrix.com>
 <c712c06f-7fcf-4876-b2d7-f2b7bc6f0dea@suse.com> <adIuP7-sNwuOid80@mail-itl>
 <5d068304-837d-4aef-b8a7-87c91ccf96b4@arm.com>
In-Reply-To: <5d068304-837d-4aef-b8a7-87c91ccf96b4@arm.com>

--------------iyjT3ytA0H2xpCRVpWtNa0jc
Content-Type: multipart/mixed; boundary="------------vRt4ikbd7UcskmwRX6A7xuVX"

--------------vRt4ikbd7UcskmwRX6A7xuVX
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMDcuMDQuMjYgMTE6MjMsIEtldmluIEJyb2Rza3kgd3JvdGU6DQo+IE9uIDA1LzA0LzIw
MjYgMTE6NDEsIE1hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraSB3cm90ZToNCj4+IE9uIFRo
dSwgRmViIDI2LCAyMDI2IGF0IDAyOjQxOjEyUE0gKzAxMDAsIErDvHJnZW4gR3Jvw58gd3Jv
dGU6DQo+Pj4gT24gMjYuMDIuMjYgMTQ6MjcsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+Pj4+
IE9uIDI2LzAyLzIwMjYgMToxNyBwbSwgTWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tpIHdy
b3RlOg0KPj4+Pj4gSGksDQo+Pj4+Pg0KPj4+Pj4gV2hlbiB0ZXN0aW5nIExpbnV4IDcuMC1y
YzEgaW4gUFYgZG9tMCwgSSBoaXQgdGhlIGZvbGxvd2luZyBwYW5pYw0KPj4+Pj4gc29tZXRp
bWVzOg0KPj4+Pj4NCj4+Pj4+IFsgIDQzNi44NDk2MTRdIC0tLS0tLS0tLS0tLVsgY3V0IGhl
cmUgXS0tLS0tLS0tLS0tLQ0KPj4+Pj4gWyAgNDM2Ljg0OTY2OV0ga2VybmVsIEJVRyBhdCBh
cmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4vaHlwZXJ2aXNvci5oOjc4IQ0KPj4+Pj4gWyAgNDM2
Ljg0OTY5M10gT29wczogaW52YWxpZCBvcGNvZGU6IDAwMDAgWyMxXSBTTVAgTk9QVEkNCj4+
Pj4+IFsgIDQzNi44NDk3MTBdIENQVTogMyBVSUQ6IDAgUElEOiA0MDIxIENvbW06IGt3b3Jr
ZXIvdTI1OjEgTm90IHRhaW50ZWQgNy4wLjAtMC5yYzEuMS5xdWJlcy4xMDAxLmZjNDEueDg2
XzY0ICMxIFBSRUVNUFQoZnVsbCkNCj4+Pj4+IFsgIDQzNi44NDk3MjldIEhhcmR3YXJlIG5h
bWU6IFN0YXIgTGFicyBTdGFyQm9vay9TdGFyQm9vaywgQklPUyA4Ljk3IDEwLzAzLzIwMjMN
Cj4+Pj4+IFsgIDQzNi44NDk3NDNdIFdvcmtxdWV1ZTogaTkxNV9mbGlwIGludGVsX2F0b21p
Y19jb21taXRfd29yayBbaTkxNV0NCj4+Pj4+IFsgIDQzNi44NTAyMjZdIFJJUDogZTAzMDp4
ZW5fZW50ZXJfbGF6eV9tbXUrMHgyNC8weDMwDQo+Pj4+PiBbICA0MzYuODUwMjQ1XSBDb2Rl
OiA5MCA5MCA5MCA5MCA5MCA5MCBmMyAwZiAxZSBmYSAwZiAxZiA0NCAwMCAwMCA2NSA4YiAw
NSBiOCBlNSAwMiAwMyA4NSBjMCA3NSAxMCA2NSBjNyAwNSBhOSBlNSAwMiAwMyAwMSAwMCAw
MCAwMCBjMyBjYyBjYyBjYyBjYyA8MGY+IDBiIDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAw
IDAwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwDQo+Pj4+PiBbICA0MzYuODUwMjcw
XSBSU1A6IGUwMmI6ZmZmZmM5MDA0NTcyN2E2OCBFRkxBR1M6IDAwMDEwMjAyDQo+Pj4+PiBb
ICA0MzYuODUwMjgzXSBSQVg6IDAwMDAwMDAwMDAwMDAwMDEgUkJYOiBmZmZmODg4MTA0MmZh
NmQwIFJDWDogMDAwZmZmZmZmZmUwMDAwMA0KPj4+Pj4gWyAgNDM2Ljg1MDI5Nl0gUkRYOiAw
MDAwMDAwMDAwMDAwMDAxIFJTSTogZmZmZjg4ODEwYTVhMjk4MCBSREk6IDAwMDAwMDAwMDAw
MDAwMDANCj4+Pj4+IFsgIDQzNi44NTAzMDhdIFJCUDogZmZmZmM5MDA0OWVkYTAwMCBSMDg6
IGZmZmZjOTAwNDllZGMwMDAgUjA5OiBmZmZmYzkwMDQ5ZWRjMDAwDQo+Pj4+PiBbICA0MzYu
ODUwMzIwXSBSMTA6IGZmZmZjOTAwNDllZGMwMDAgUjExOiBmZmZmYzkwMDQ5ZWRiZmZmIFIx
MjogZmZmZmM5MDA0OWVkYzAwMA0KPj4+Pj4gWyAgNDM2Ljg1MDMzMl0gUjEzOiBmZmZmYzkw
MDQ1NzI3YmIwIFIxNDogZmZmZmM5MDA0NTcyN2IyOCBSMTU6IDgwMDAwMDAwMDAwMDAwNmIN
Cj4+Pj4+IFsgIDQzNi44NTAzNTZdIEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpm
ZmZmODg4MjAxZTZlMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDANCj4+Pj4+IFsg
IDQzNi44NTAzNzFdIENTOiAgZTAzMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAw
ODAwNTAwMzMNCj4+Pj4+IFsgIDQzNi44NTAzODNdIENSMjogMDAwMDY1NDNkYmFkZTI1MCBD
UjM6IDAwMDAwMDAxMTVlZjEwMDAgQ1I0OiAwMDAwMDAwMDAwMDUwNjYwDQo+Pj4+PiBbICA0
MzYuODUwNDAxXSBDYWxsIFRyYWNlOg0KPj4+Pj4gWyAgNDM2Ljg1MDQxMF0gIDxUQVNLPg0K
Pj4+Pj4gWyAgNDM2Ljg1MDQyMF0gIHZtYXBfcGFnZXNfcHVkX3JhbmdlKzB4NDdjLzB4NTMw
DQo+Pj4+PiBbICA0MzYuODUwNDM5XSAgdm1hcF9zbWFsbF9wYWdlc19yYW5nZV9ub2ZsdXNo
KzB4MWYxLzB4MmIwDQo+Pj4+PiBbICA0MzYuODUwNDUxXSAgPyBfX2dldF92bV9hcmVhX25v
ZGUrMHgxMGEvMHgxNzANCj4+Pj4+IFsgIDQzNi44NTA0NjVdICB2bWFwKzB4NzkvMHhkMA0K
Pj4+Pj4gWyAgNDM2Ljg1MDQ3Nl0gIGk5MTVfZ2VtX29iamVjdF9tYXBfcGFnZSsweDEzYi8w
eDIxMCBbaTkxNV0NCj4+Pj4+IFsgIDQzNi44NTA4MTJdICBpOTE1X2dlbV9vYmplY3RfcGlu
X21hcCsweDFlMi8weDIxMCBbaTkxNV0NCj4+Pj4+IFsgIDQzNi44NTExMjNdICBpOTE1X2dl
bV9vYmplY3RfcGluX21hcF91bmxvY2tlZCsweDJkLzB4YTAgW2k5MTVdDQo+Pj4+PiBbICA0
MzYuODUxNDI0XSAgaW50ZWxfZHNiX2J1ZmZlcl9jcmVhdGUrMHhlZC8weDFhMCBbaTkxNV0N
Cj4+Pj4+IFsgIDQzNi44NTE3NzhdICBpbnRlbF9kc2JfcHJlcGFyZSsweGNhLzB4MWEwIFtp
OTE1XQ0KPj4+Pj4gWyAgNDM2Ljg1MjExMF0gIGludGVsX2F0b21pY19kc2JfZmluaXNoKzB4
OTIvMHgzNTAgW2k5MTVdDQo+Pj4+PiBbICA0MzYuODUyNDU2XSAgaW50ZWxfYXRvbWljX2Nv
bW1pdF90YWlsKzB4MzI2LzB4ZDQwIFtpOTE1XQ0KPj4+Pj4gWyAgNDM2Ljg1Mjc2OV0gIHBy
b2Nlc3Nfb25lX3dvcmsrMHgxOGQvMHgzODANCj4+Pj4+IFsgIDQzNi44NTI3NzldICB3b3Jr
ZXJfdGhyZWFkKzB4MTk2LzB4MzAwDQo+Pj4+PiBbICA0MzYuODUyNzg3XSAgPyBfX3BmeF93
b3JrZXJfdGhyZWFkKzB4MTAvMHgxMA0KPj4+Pj4gWyAgNDM2Ljg1Mjc5Nl0gIGt0aHJlYWQr
MHhlMy8weDEyMA0KPj4+Pj4gWyAgNDM2Ljg1MjgwNV0gID8gX19wZnhfa3RocmVhZCsweDEw
LzB4MTANCj4+Pj4+IFsgIDQzNi44NTI4MTVdICByZXRfZnJvbV9mb3JrKzB4MTllLzB4MjYw
DQo+Pj4+PiBbICA0MzYuODUyODI0XSAgPyBfX3BmeF9rdGhyZWFkKzB4MTAvMHgxMA0KPj4+
Pj4gWyAgNDM2Ljg1MjgzMl0gIHJldF9mcm9tX2ZvcmtfYXNtKzB4MWEvMHgzMA0KPj4+Pj4g
WyAgNDM2Ljg1Mjg0Ml0gIDwvVEFTSz4NCj4+Pj4+IFsgIDQzNi44NTI4NDddIE1vZHVsZXMg
bGlua2VkIGluOiBzbmRfc2VxX2R1bW15IHNuZF9ocnRpbWVyIHNuZF9oZGFfY29kZWNfaW50
ZWxoZG1pIHNuZF9oZGFfY29kZWNfaGRtaSBzbmRfaGRhX2NvZGVjX2FsYzI2OSBzbmRfaGRh
X2NvZGVjX3JlYWx0ZWtfbGliIHNuZF9oZGFfc2NvZGVjX2NvbXBvbmVudCBzbmRfaGRhX2Nv
ZGVjX2dlbmVyaWMgc25kX2hkYV9pbnRlbCBzbmRfc29mX3BjaV9pbnRlbF90Z2wgc25kX3Nv
Zl9wY2lfaW50ZWxfY25sIHNuZF9zb2ZfaW50ZWxfaGRhX2dlbmVyaWMgc291bmR3aXJlX2lu
dGVsIHNuZF9zb2ZfaW50ZWxfaGRhX3Nkd19icHQgc25kX3NvZl9pbnRlbF9oZGFfY29tbW9u
IHNuZF9zb2NfaGRhY19oZGEgc25kX3NvZl9pbnRlbF9oZGFfbWxpbmsgc25kX3NvZl9pbnRl
bF9oZGEgc291bmR3aXJlX2NhZGVuY2Ugc25kX3NvZl9wY2kgc25kX3NvZl94dGVuc2FfZHNw
IHNuZF9zb2Ygc25kX3NvZl91dGlscyBzbmRfc29jX2FjcGlfaW50ZWxfbWF0Y2ggc25kX3Nv
Y19hY3BpX2ludGVsX3NkY2FfcXVpcmtzIHNvdW5kd2lyZV9nZW5lcmljX2FsbG9jYXRpb24g
c25kX3NvY19zZHdfdXRpbHMgc25kX3NvY19hY3BpIGNyYzggaW50ZWxfcmFwbF9tc3Igc291
bmR3aXJlX2J1cyBpbnRlbF9yYXBsX2NvbW1vbiBzbmRfc29jX3NkY2Egc25kX3NvY19hdnMg
c25kX3NvY19oZGFfY29kZWMgc25kX2hkYV9leHRfY29yZSBzbmRfaGRhX2NvZGVjIHZmYXQg
aW50ZWxfdW5jb3JlX2ZyZXF1ZW5jeV9jb21tb24gZmF0IHNuZF9oZGFfY29yZSBzbmRfaW50
ZWxfZHNwY2ZnIHNuZF9pbnRlbF9zZHdfYWNwaSBzbmRfaHdkZXAgaW50ZWxfcG93ZXJjbGFt
cCBzbmRfc29jX2NvcmUgaXdsd2lmaSBzbmRfY29tcHJlc3Mgc3BpX25vciBpVENPX3dkdCBh
Yzk3X2J1cyBpbnRlbF9wbWNfYnh0IGVlMTAwNCBtdGQgc25kX3BjbV9kbWFlbmdpbmUgc25k
X3NlcSBjZmc4MDIxMSBzbmRfc2VxX2RldmljZSBwY3Nwa3Igc3BpX2ludGVsX3BjaSBzbmRf
cGNtIHJma2lsbCBzcGlfaW50ZWwgc25kX3RpbWVyIHNuZA0KPj4+Pj4gWyAgNDM2Ljg1Mjkz
OV0gIGkyY19pODAxIHNvdW5kY29yZSBpMmNfc21idXMgaWRtYTY0IGludGVsX3BtY19jb3Jl
IHBtdF90ZWxlbWV0cnkgcG10X2Rpc2NvdmVyeSBwbXRfY2xhc3MgaW50ZWxfaGlkIGludGVs
X3BtY19zc3JhbV90ZWxlbWV0cnkgaW50ZWxfc2N1X3BsdGRydiBzcGFyc2Vfa2V5bWFwIGpv
eWRldiBsb29wIGZ1c2UgeGVuZnMgbmZuZXRsaW5rIHZzb2NrX2xvb3BiYWNrIHZtd192c29j
a192aXJ0aW9fdHJhbnNwb3J0X2NvbW1vbiB2bXdfdnNvY2tfdm1jaV90cmFuc3BvcnQgdnNv
Y2sgenJhbSB2bXdfdm1jaSBsejRoY19jb21wcmVzcyBsejRfY29tcHJlc3MgZG1fdGhpbl9w
b29sIGRtX3BlcnNpc3RlbnRfZGF0YSBkbV9iaW9fcHJpc29uIGRtX2NyeXB0IHhlIGRybV90
dG1faGVscGVyIGRybV9zdWJhbGxvY19oZWxwZXIgZ3B1X3NjaGVkIGRybV9ncHV2bSBkcm1f
ZXhlYyBkcm1fZ3B1c3ZtX2hlbHBlciBpOTE1IGkyY19hbGdvX2JpdCBkcm1fYnVkZHkgaGlk
X211bHRpdG91Y2ggaTJjX2hpZF9hY3BpIGdoYXNoX2NsbXVsbmlfaW50ZWwgdmlkZW8gbnZt
ZSB3bWkgdHRtIGkyY19oaWQgbnZtZV9jb3JlIG52bWVfa2V5cmluZyBkcm1fZGlzcGxheV9o
ZWxwZXIgbnZtZV9hdXRoIHhoY2lfcGNpIHBpbmN0cmxfdGlnZXJsYWtlIHRodW5kZXJib2x0
IGhrZGYgY2VjIHhoY2lfaGNkIGludGVsX3ZzZWMgc2VyaW9fcmF3IHhlbl9hY3BpX3Byb2Nl
c3NvciB4ZW5fcHJpdmNtZCB4ZW5fcGNpYmFjayB4ZW5fYmxrYmFjayB4ZW5fZ250YWxsb2Mg
eGVuX2dudGRldiB4ZW5fZXZ0Y2huIHNjc2lfZGhfcmRhYyBzY3NpX2RoX2VtYyBzY3NpX2Ro
X2FsdWEgdWlucHV0IGkyY19kZXYNCj4+Pj4+IFsgIDQzNi44NTMxODNdIC0tLVsgZW5kIHRy
YWNlIDAwMDAwMDAwMDAwMDAwMDAgXS0tLQ0KPj4+Pj4NCj4+Pj4+IG9yIHRoaXM6DQo+Pj4+
Pg0KPj4+Pj4gWyAgNTQ4LjczNjg4NF0gLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0t
LS0tLS0tDQo+Pj4+PiBbICA1NDguNzM2OTA3XSBrZXJuZWwgQlVHIGF0IGFyY2gveDg2L2lu
Y2x1ZGUvYXNtL3hlbi9oeXBlcnZpc29yLmg6ODUhDQo+Pj4+PiBbICA1NDguNzM2OTIzXSBP
b3BzOiBpbnZhbGlkIG9wY29kZTogMDAwMCBbIzFdIFNNUCBOT1BUSQ0KPj4+Pj4gWyAgNTQ4
LjczNjkzNV0gQ1BVOiAwIFVJRDogMCBQSUQ6IDIwNiBDb21tOiBrd29ya2VyLzA6MiBOb3Qg
dGFpbnRlZCA3LjAuMC0wLnJjMS4xLnF1YmVzLjEwMDEuZmM0MS54ODZfNjQgIzEgUFJFRU1Q
VChmdWxsKQ0KPj4+Pj4gWyAgNTQ4LjczNjk0OV0gSGFyZHdhcmUgbmFtZTogTEVOT1ZPIDIz
NDdBNDUvMjM0N0E0NSwgQklPUyBDQkVUNDAwMCBOaXRyb2tleS12MC4yLjAtMjYwOC1nYTY0
OTU5NyAwMS8wMS8xOTcwDQo+Pj4+PiBbICA1NDguNzM2OTYyXSBXb3JrcXVldWU6IGV2ZW50
cyBkZWxheWVkX3ZmcmVlX3dvcmsNCj4+Pj4+IFsgIDU0OC43MzY5NzZdIFJJUDogZTAzMDp4
ZW5fbGVhdmVfbGF6eV9tbXUrMHg0NC8weDUwDQo+Pj4+PiBbICA1NDguNzM2OTg5XSBDb2Rl
OiAwMiAwMyA4MyBmOCAwMSA3NSAyMyA2NSBjNyAwNSA2YyBlNCAwMiAwMyAwMCAwMCAwMCAw
MCA2NSBmZiAwZCA3ZCBiOCAwMiAwMyA3NCAwNSBjMyBjYyBjYyBjYyBjYyBlOCA2MSA1ZCBm
ZCBmZiBjMyBjYyBjYyBjYyBjYyA8MGY+IDBiIDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAw
IDAwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwDQo+Pj4+PiBbICA1NDguNzM3MDEw
XSBSU1A6IGUwMmI6ZmZmZmM5MDA0MDYwN2NmMCBFRkxBR1M6IDAwMDEwMjk3DQo+Pj4+PiBb
ICA1NDguNzM3MDE4XSBSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmODg4MTY0YTcw
NDA4IFJDWDogMDAwMDAwMDAwMDAwMDAwMA0KPj4+Pj4gWyAgNTQ4LjczNzAyOV0gUkRYOiAw
MDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwZmZmZmZmZmZmZjAwMCBSREk6IGZmZmY4ODgxMDY5
YzAwMDANCj4+Pj4+IFsgIDU0OC43MzcwMzldIFJCUDogZmZmZmM5MDA0OTY4MTAwMCBSMDg6
IGZmZmZjOTAwNDk2ODEwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDI3DQo+Pj4+PiBbICA1NDgu
NzM3MDUwXSBSMTA6IDAwMDAwMDAwMDAwMDAwMjcgUjExOiBmZWZlZmVmZWZlZmVmZWZmIFIx
MjogZmZmZmM5MDA0OTY4MTAwMA0KPj4+Pj4gWyAgNTQ4LjczNzA2MF0gUjEzOiBmZmZmODg4
MTAwMmZkMjU4IFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IGZmZmZjOTAwNDA2MDdkYWMN
Cj4+Pj4+IFsgIDU0OC43MzcwNzldIEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpm
ZmZmODg4MWY4OGVlMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDANCj4+Pj4+IFsg
IDU0OC43MzcwOTBdIENTOiAgZTAzMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAw
ODAwNTAwMzMNCj4+Pj4+IFsgIDU0OC43MzcwOTldIENSMjogMDAwMDU1NTc2YzJlNjA1OCBD
UjM6IDAwMDAwMDAxMGQ0N2IwMDAgQ1I0OiAwMDAwMDAwMDAwMDUwNjYwDQo+Pj4+PiBbICA1
NDguNzM3MTE1XSBDYWxsIFRyYWNlOg0KPj4+Pj4gWyAgNTQ4LjczNzEyM10gIDxUQVNLPg0K
Pj4+Pj4gWyAgNTQ4LjczNzEyOF0gIHZ1bm1hcF9wbWRfcmFuZ2UuaXNyYS4wKzB4MWYxLzB4
MmUwDQo+Pj4+PiBbICA1NDguNzM3MTQyXSAgdnVubWFwX3A0ZF9yYW5nZSsweDE3ZC8weDI5
MA0KPj4+Pj4gWyAgNTQ4LjczNzE1MV0gIF9fdnVubWFwX3JhbmdlX25vZmx1c2grMHgxODIv
MHgxZDANCj4+Pj4+IFsgIDU0OC43MzcxNjFdICA/IF9yYXdfc3Bpbl91bmxvY2srMHhlLzB4
MzANCj4+Pj4+IFsgIDU0OC43MzcxNzFdICByZW1vdmVfdm1fYXJlYSsweDQwLzB4NzANCj4+
Pj4+IFsgIDU0OC43MzcxODBdICB2ZnJlZS5wYXJ0LjArMHgxYi8weDI5MA0KPj4+Pj4gWyAg
NTQ4LjczNzE4OV0gIGRlbGF5ZWRfdmZyZWVfd29yaysweDM1LzB4NTANCj4+Pj4+IFsgIDU0
OC43MzcxOThdICBwcm9jZXNzX29uZV93b3JrKzB4MThkLzB4MzgwDQo+Pj4+PiBbICA1NDgu
NzM3MjA3XSAgd29ya2VyX3RocmVhZCsweDE5Ni8weDMwMA0KPj4+Pj4gWyAgNTQ4LjczNzIx
NV0gID8gX19wZnhfd29ya2VyX3RocmVhZCsweDEwLzB4MTANCj4+Pj4+IFsgIDU0OC43Mzcy
MjRdICBrdGhyZWFkKzB4ZTMvMHgxMjANCj4+Pj4+IFsgIDU0OC43MzcyMzNdICA/IF9fcGZ4
X2t0aHJlYWQrMHgxMC8weDEwDQo+Pj4+PiBbICA1NDguNzM3MjQyXSAgcmV0X2Zyb21fZm9y
aysweDE5ZS8weDI2MA0KPj4+Pj4gWyAgNTQ4LjczNzI1MF0gID8gX19wZnhfa3RocmVhZCsw
eDEwLzB4MTANCj4+Pj4+IFsgIDU0OC43MzcyNThdICByZXRfZnJvbV9mb3JrX2FzbSsweDFh
LzB4MzANCj4+Pj4+IFsgIDU0OC43MzcyNjldICA8L1RBU0s+DQo+Pj4+PiBbICA1NDguNzM3
Mjc0XSBNb2R1bGVzIGxpbmtlZCBpbjogdmZhdCBmYXQgc25kX3NlcV9kdW1teSBzbmRfaHJ0
aW1lciBhdGg5ayBhdGg5a19jb21tb24gc25kX2hkYV9jb2RlY19pbnRlbGhkbWkgc25kX2hk
YV9jb2RlY19oZG1pIGF0aDlrX2h3IHNuZF9oZGFfY29kZWNfYWxjMjY5IHNuZF9oZGFfY29k
ZWNfcmVhbHRla19saWIgc25kX2hkYV9zY29kZWNfY29tcG9uZW50IHNuZF9oZGFfY29kZWNf
Z2VuZXJpYyBzbmRfaGRhX2ludGVsIHNuZF9oZGFfY29kZWMgbWFjODAyMTEgc25kX2hkYV9j
b3JlIHNuZF9pbnRlbF9kc3BjZmcgc25kX2ludGVsX3Nkd19hY3BpIHNuZF9od2RlcCBhdGgg
c25kX3NlcSBzbmRfc2VxX2RldmljZSBzbmRfY3RsX2xlZCBjZmc4MDIxMSBzbmRfcGNtIGF0
MjQgdGhpbmtwYWRfYWNwaSBpbnRlbF9yYXBsX21zciBpMmNfaTgwMSBzbmRfdGltZXIgc3Bh
cnNlX2tleW1hcCBpVENPX3dkdCBpbnRlbF9yYXBsX2NvbW1vbiBwbGF0Zm9ybV9wcm9maWxl
IGludGVsX3Bvd2VyY2xhbXAgaW50ZWxfcG1jX2J4dCBwY3Nwa3IgaTJjX3NtYnVzIHJma2ls
bCBsaWJhcmM0IHNuZCBzb3VuZGNvcmUgbWVpX21lIGUxMDAwZSBtZWkgam95ZGV2IGxwY19p
Y2ggbG9vcCBmdXNlIHhlbmZzIG5mbmV0bGluayB2c29ja19sb29wYmFjayB2bXdfdnNvY2tf
dmlydGlvX3RyYW5zcG9ydF9jb21tb24gdm13X3Zzb2NrX3ZtY2lfdHJhbnNwb3J0IHZzb2Nr
IHpyYW0gdm13X3ZtY2kgbHo0aGNfY29tcHJlc3MgbHo0X2NvbXByZXNzIGRtX3RoaW5fcG9v
bCBkbV9wZXJzaXN0ZW50X2RhdGEgZG1fYmlvX3ByaXNvbiBkbV9jcnlwdCBpOTE1IGkyY19h
bGdvX2JpdCBkcm1fYnVkZHkgZ2hhc2hfY2xtdWxuaV9pbnRlbCB0dG0gc2RoY2lfcGNpIGRy
bV9kaXNwbGF5X2hlbHBlciBzZGhjaV91aHMyIHNkaGNpIHZpZGVvIHhoY2lfcGNpIGNxaGNp
IHdtaSBjZWMgeGhjaV9oY2QgZWhjaV9wY2kgbW1jX2NvcmUgZWhjaV9oY2Qgc2VyaW9fcmF3
IHhlbl9hY3BpX3Byb2Nlc3NvciB4ZW5fcHJpdmNtZCB4ZW5fcGNpYmFjaw0KPj4+Pj4gWyAg
NTQ4LjczNzM0OF0gIHhlbl9ibGtiYWNrIHhlbl9nbnRhbGxvYyB4ZW5fZ250ZGV2IHhlbl9l
dnRjaG4gc2NzaV9kaF9yZGFjIHNjc2lfZGhfZW1jIHNjc2lfZGhfYWx1YSB1aW5wdXQgaTJj
X2Rldg0KPj4+Pj4gWyAgNTQ4LjczNzQ2OV0gLS0tWyBlbmQgdHJhY2UgMDAwMDAwMDAwMDAw
MDAwMCBdLS0tDQo+Pj4+Pg0KPj4+Pj4gSSBkb24ndCBoYXZlIGNsZWFyIHBhdHRlcm4gd2hl
biB0aGlzIGhhcHBlbnMsIG9uZSB3YXMgZHVyaW5nIGhvc3QNCj4+Pj4+IHN1c3BlbmQsIGJ1
dCB0aGUgb3RoZXIgd2FzIGR1cmluZyAibm9ybWFsIiB0ZXN0IHJ1biAoc3RhcnRpbmcvc3Rv
cHBpbmcNCj4+Pj4+IGRvbVVzIGFuZCBydW5uaW5nIHN0dWZmIGFyb3VuZCB0aGVtKS4gTm90
ZSBhbHNvIG9uZSBvZiB0aG9zZSBpcyBJbnRlbA0KPj4+Pj4gYW5kIHRoZSBvdGhlciBBTUQs
IHNvIGl0IGlzbid0IHJlYWxseSBoYXJkd2FyZSBzcGVjaWZpYy4NCj4+Pj4+DQo+Pj4+PiBT
bGlnaHRseSBtb3JlIGRldGFpbHMgd2l0aCBsaW5rcyAoZXNwZWNpYWxseSBzZXJpYWwwLnR4
dCBpbiB0aGUgbG9ncw0KPj4+Pj4gdGFiKSBhdA0KPj4+Pj4gaHR0cHM6Ly9naXRodWIuY29t
L1F1YmVzT1MvcXViZXMtbGludXgta2VybmVsL3B1bGwvNjYyI2lzc3VlY29tbWVudC0zOTYz
MzI2MTg4DQo+Pj4+Pg0KPj4+Pj4gQW55IGlkZWE/DQo+Pj4+Pg0KPj4+PiBUaGF0IGxvb2tz
IGxpa2UgdGhlIGlzc3VlIEp1ZXJnZW4gZml4ZWQgd2l0aDoNCj4+Pj4NCj4+Pj4gaHR0cHM6
Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzIwMjYwMjIwMTIzNzE1LjgzNDg0OC0xLWpn
cm9zc0BzdXNlLmNvbS8NCj4+PiBObywgaXQgZG9lc24ndC4gVGhlIGZpeCBpcyBhbHJlYWR5
IGluIHJjMSwgYW5kIHRoZSBjcmFzaCB3YXMgcXVpdGUgZWFybHkgZHVyaW5nDQo+Pj4gYm9v
dCAoYmVmb3JlIGFueSBzZWNvbmRhcnkgQ1BVcyB3ZXJlIGJyb3VnaHQgdXApLg0KPj4+DQo+
Pj4gSSBndWVzcyB0aGlzIHByb2JsZW0gaXMgcmVsYXRlZCB0byB0aGUgbGF6eV9tbXVfc3Rh
dGUgc2VyaWVzIFsxXS4NCj4gDQo+IFRoYXQgbWF5IHdlbGwgYmUgdGhlIGNhc2UgLSBpdCBz
ZWVtcyB0aGF0IHhlbl9lbnRlcl9sYXp5X21tdSgpIGlzIGNhbGxlZA0KPiB3aGlsZSBhbHJl
YWR5IGluIGxhenkgTU1VIG1vZGUgKGZpcnN0IHNwbGF0KSwgYW5kIHhlbl9sZWF2ZV9sYXp5
X21tdSgpDQo+IGlzIGNhbGxlZCB3aXRob3V0IGJlaW5nIGluIGxhenkgTU1VIG1vZGUgKHNl
Y29uZCBzcGxhdCkuIEkgZXhwZWN0IHRoaXMNCj4gaXMgc29tZXRoaW5nIHNwZWNpZmljIHRv
IFhlbiwgd2hpY2ggSSBkaWRuJ3QgZ2V0IHRoZSBjaGFuY2UgdG8gdGVzdC4NCg0KTG9va2lu
ZyBpbnRvIHRoaXMgYWdhaW4uDQoNCkkgdGhpbmsgdGhlIG1haW4gcHJvYmxlbSBpcyB0aGUg
Y2FsbCBvZiBhcmNoX2VuZF9jb250ZXh0X3N3aXRjaCgpIGluDQpfX3N3aXRjaF90bygpLiBG
b3IgeGVuIHRoaXMgaXMgeGVuX2VuZF9jb250ZXh0X3N3aXRjaCgpIGFuZCBpdCBpcyBkb2lu
ZzoNCg0KICAgaWYgKF9fdGFza19sYXp5X21tdV9tb2RlX2FjdGl2ZShuZXh0KSkNCiAgICAg
ICBhcmNoX2VudGVyX2xhenlfbW11X21vZGUoKQ0KDQpCdXQgdGhpcyBpcyB3cm9uZyBoZXJl
LCBhcyBjdXJyZW50IGhhc24ndCBiZWVuIHN3aXRjaGVkIHRvICJuZXh0IiB5ZXQuDQoNCkkg
ZG9uJ3QgdGhpbmsgd2UgY2FuIGp1c3QgbW92ZSB0aGUgY2FsbCBvZiBhcmNoX2VuZF9jb250
ZXh0X3N3aXRjaCgpLCBhcw0KaXQgaXMgbmVlZGVkIGZvciBpc3N1aW5nIHRoZSBjb250ZXh0
IHN3aXRjaCByZWxhdGVkIGh5cGVyY2FsbCBmb3Igc3dpdGNoaW5nDQphbGwgdGhlIG5lZWRl
ZCBub24tTU1VIHNldHRpbmdzLg0KDQpXaGF0IHdlIHByb2JhYmx5IHJlYWxseSB3YW50IGlz
IHRvIGNhbGwgbGF6eV9tbXVfbW9kZV9wYXVzZSgpIGJlZm9yZSB0aGUNCmNhbGwgb2YgYXJj
aF9zdGFydF9jb250ZXh0X3N3aXRjaCgpIGFuZCBsYXRlciBjYWxsIGxhenlfbW11X21vZGVf
cmVzdW1lKCkNCmFmdGVyIHN3aXRjaGluZyBjb250ZXh0IHRvIG5leHQuIEluIHhlbl9zdGFy
dF9jb250ZXh0X3N3aXRjaCgpIGFuZA0KeGVuX2VuZF9jb250ZXh0X3N3aXRjaCgpIHRoZSBs
YXp5IG1tdSBtb2RlIGhhbmRsaW5nIHNob3VsZCBiZSByZW1vdmVkLg0KDQpJIHdpbGwgdGVz
dCB0aGF0IHRvbW9ycm93LCB1bmxlc3Mgc29tZW9uZSB0YWxrcyBtZSBvdXQgb2YgaXQuIDot
KQ0KDQoNCkp1ZXJnZW4NCg==
--------------vRt4ikbd7UcskmwRX6A7xuVX
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------vRt4ikbd7UcskmwRX6A7xuVX--

--------------iyjT3ytA0H2xpCRVpWtNa0jc--

--------------cgepJjfW9HBWFgx5WY0SpqIe
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmn8vmEFAwAAAAAACgkQsN6d1ii/Ey+g
/ggAgNTg3875H06+7k0V58WE+GqYjgAJwt0SO6LR40lNVtwQypuvR6tttwx+lL3eJgoFV7wPtvks
ksN/pPH0DFx0LGg5K9e9sOa5evvg2WuMjGK1UEwhBC/aMPZpQqdWrcXy0/U+Uh7yVIYGC3AeHy6x
P+vdxnXbFIWWwvzDw7ahN4IOBlSWrH9AqruCd+6sBygEss5/tsQi/LSEW7Dj0NlanmOu0IShtLst
doCF3PKJ2DU8GnWKB32oJEVlcvh4rfaop20bPJ2vo0P5Uf0xV9kGhARdUBDuqAbvlmXbLZdokFX6
6YRpoBsbHNESLVXi1GOkPNU3GlfVPuoqHElEtTa/Fg==
=IgHz
-----END PGP SIGNATURE-----

--------------cgepJjfW9HBWFgx5WY0SpqIe--


From xen-devel-bounces@lists.xenproject.org Thu May 07 17:20:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 17:20:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302930.1576579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL2OE-0000Hq-Va; Thu, 07 May 2026 17:19:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302930.1576579; Thu, 07 May 2026 17:19:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL2OE-0000Hj-QA; Thu, 07 May 2026 17:19:58 +0000
Received: by outflank-mailman (input) for mailman id 1302930;
 Thu, 07 May 2026 17:19:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wL2OD-0000Hd-K5
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 17:19:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wL2OD-00A91N-0y
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 19:19:57 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fcc999-5cb7-0a2a0a5109dd-0a2a450887cc-48
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 19:19:56 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fcc9bc-63b5-0a2a45080019-d1558029eda1-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 19:19:56 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-4891e86fabeso13866345e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 10:19:56 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-454177de66esm389236f8f.33.2026.05.07.10.19.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 May 2026 10:19:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1778174396; x=1778779196; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=POphwgzYYY47GxmVRbKvii2lv0wTm8GzuHURFZ5pxEU=;
        b=EH/lDY5u1GiiYZyVWRLoK3xyP73V1xCB49fR7SxTaWFU3cNA/G3n3yoJnq1M1eDyxt
         8ydelOQeVx3AO1l0EwtVw+NGqxNx6ipc15so7E8P/l9nfjSgP+zwxgD29+U6aABYZAsA
         MZp6aancCJOm/I+7sgOZ8M0uKXG3ByXtEe5ck=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778174396; x=1778779196;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=POphwgzYYY47GxmVRbKvii2lv0wTm8GzuHURFZ5pxEU=;
        b=GW0EWvQDpe5n1JRnuVB2M9bcljjBIzFLZIdL5Jc+6zxjf6vhOocptzA7C7qsnw+nrJ
         tqH44qSj7jWLNGMjLVXsEYFWIWUbdJfhwJqeFLBUFqNnlkh6ldU6ycDc+IXD/v4WLF0+
         Tzo0daMXgELlX8VU9o309s4jPR4WhYObD/Q1CmG2WtYJb4G53aO2DSSStWY7hilG/F02
         mrwy8AYbep4YGP0uDLC0jUfrBLL5J8AgBUOSgWrIdbRaSuGxNx78nYIT/xurnRLs4SN9
         mNhHAxhWHY1XlFXZaNr0l0a3TbjrdwRrGXT9j2So6JP5Gn7+vmLAjm4D3oDS/0JYXJP9
         YddA==
X-Gm-Message-State: AOJu0Ywa9h6fO9C0FTmPemxOPEVu2/cfsRuAWzwWbwDcU/jw5gIo1P20
	6AeBK0/eKamPWF01iwXmUese1DXMyXIcMt+w/72QhjBb9dMdfe3R1q27wQ6L5dqhSj4RotibldE
	zD9Q6zXU=
X-Gm-Gg: AeBDieuxtOMqUdBJ7G9BwjHy84k5A9JR7n85c9ovDTant8ywtvCYulCpoXJ4+ZoJKhx
	97ussJDzYk4x8oSTl/08YXYRT8uQ8FPXRgE2EulgW/Jc8gu4b2GXSPEwBgBwTMj2TDflQEvOywy
	V2Bo82HY5Bp+FRfRdKKz2GwFbe5XaLDnevcBQ62UwpGvQcN2V4Bmc4wPg2xnqo6XfqZx+oHyq6Y
	3nooGPaLhaApvdKRmHzVuHdw+vCSNyDW7LfpkcVueKASgpeDFqrzrficC1FPLK/ynJwZ9WViCz7
	x9zmBXZ2k9vAMlrBBqQAT+NQy3Mzh2qClcpb/KYrfGa8j5D4/mVfxpjrkMuEntxveiNtcpyzOzP
	6g5lYoLt6vtW4qSp5ryZ/Cmxh6lazpjGmUmjuA0+WHX/KKCYy6HBkbir+W+O1Yt9/rD3+fcDjir
	M3hMHiToGj8153SNRZ/HqhJqaYpXYJsE2d9t+f0SrGbmmkWRPV2mGPUHFvQwgYRsDFxsFQrQ0a3
	NoJHrr7yDX1kt0=
X-Received: by 2002:a05:600c:34c8:b0:486:fba7:b150 with SMTP id 5b1f17b1804b1-48e51f2ed22mr162785645e9.15.1778174394962;
        Thu, 07 May 2026 10:19:54 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Juergen Gross <jgross@suse.com>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH] Drop xenpaging
Date: Thu,  7 May 2026 18:19:33 +0100
Message-Id: <20260507171933.1573983-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1778174396-BDD6BE11-C7921207/10/73395122804
X-purgate-type: spam
X-purgate-size: 130750

This capability is experimental, has seen no development since 2011, and these
days only gets edited to fix the build.

While it can be compiled out (of Xen at least), it is a maintenance burden on
surrounding code that we'd prefer to stop paying.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Juergen Gross <jgross@suse.com>
CC: Tamas K Lengyel <tamas@tklengyel.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Slightly RFC.  I'm suspect I might be asked to split this up a bit, but if so,
suggestions on where to draw the lines please.

The diffstat speaks for itself, including the invasiveness on surrounding
code.  PFEC_page_paged and HVMTRANS_gfn_paged_out weren't even able to be
elimiated by the compiler in !CONFIG_MEM_PAGING configurations.
---
 .gitignore                             |    1 -
 CHANGELOG.md                           |    3 +
 MAINTAINERS                            |    4 -
 automation/gitlab-ci/analyze.yaml      |    1 -
 config/Paths.mk.in                     |    1 -
 configure                              |    4 -
 docs/INDEX                             |    1 -
 docs/configure                         |    4 -
 docs/misc/xenpaging.txt                |   45 -
 m4/paths.m4                            |    3 -
 tools/Makefile                         |    1 -
 tools/configure                        |    4 -
 tools/hotplug/common/hotplugpath.sh.in |    1 -
 tools/include/xenctrl.h                |   20 +-
 tools/libs/ctrl/Makefile.common        |    1 -
 tools/libs/ctrl/xc_mem_paging.c        |  130 ---
 tools/xenpaging/Makefile               |   43 -
 tools/xenpaging/file_ops.c             |   71 --
 tools/xenpaging/file_ops.h             |   41 -
 tools/xenpaging/pagein.c               |   79 --
 tools/xenpaging/policy.h               |   48 --
 tools/xenpaging/policy_default.c       |  186 ----
 tools/xenpaging/xenpaging.c            | 1084 ------------------------
 tools/xenpaging/xenpaging.h            |  152 ----
 xen/arch/x86/hvm/Kconfig               |    4 -
 xen/arch/x86/hvm/dm.c                  |    6 -
 xen/arch/x86/hvm/emulate.c             |    9 +-
 xen/arch/x86/hvm/hvm.c                 |   21 +-
 xen/arch/x86/hvm/intercept.c           |    2 -
 xen/arch/x86/hvm/vmx/vvmx.c            |    2 -
 xen/arch/x86/include/asm/hvm/support.h |    1 -
 xen/arch/x86/include/asm/mem_paging.h  |   24 -
 xen/arch/x86/include/asm/p2m.h         |   39 +-
 xen/arch/x86/include/asm/processor.h   |    1 -
 xen/arch/x86/livepatch.c               |    4 -
 xen/arch/x86/mm.c                      |   21 +-
 xen/arch/x86/mm/Makefile               |    1 -
 xen/arch/x86/mm/altp2m.c               |    2 +-
 xen/arch/x86/mm/guest_walk.c           |    9 -
 xen/arch/x86/mm/hap/guest_walk.c       |   16 -
 xen/arch/x86/mm/hap/nested_ept.c       |    5 -
 xen/arch/x86/mm/hap/nested_hap.c       |    2 +-
 xen/arch/x86/mm/mem_paging.c           |  487 -----------
 xen/arch/x86/mm/mem_sharing.c          |   30 -
 xen/arch/x86/mm/p2m-ept.c              |    3 -
 xen/arch/x86/mm/p2m-pt.c               |    7 +-
 xen/arch/x86/mm/p2m.c                  |   15 +-
 xen/arch/x86/mm/shadow/hvm.c           |    1 -
 xen/arch/x86/msr.c                     |    6 -
 xen/arch/x86/x86_64/compat/mm.c        |    6 -
 xen/arch/x86/x86_64/mm.c               |    6 -
 xen/common/domain.c                    |    3 -
 xen/common/domctl.c                    |    3 -
 xen/common/keyhandler.c                |    6 -
 xen/common/memory.c                    |   37 +-
 xen/common/page_alloc.c                |    3 +-
 xen/common/vm_event.c                  |   83 --
 xen/drivers/passthrough/x86/iommu.c    |    2 -
 xen/include/public/memory.h            |    2 +-
 xen/include/public/vm_event.h          |    2 +-
 xen/include/xen/sched.h                |   18 +-
 xen/include/xsm/dummy.h                |    8 -
 xen/include/xsm/xsm.h                  |   11 -
 xen/xsm/dummy.c                        |    4 -
 xen/xsm/flask/hooks.c                  |   11 -
 xen/xsm/flask/policy/access_vectors    |    2 -
 66 files changed, 27 insertions(+), 2826 deletions(-)
 delete mode 100644 docs/misc/xenpaging.txt
 delete mode 100644 tools/libs/ctrl/xc_mem_paging.c
 delete mode 100644 tools/xenpaging/Makefile
 delete mode 100644 tools/xenpaging/file_ops.c
 delete mode 100644 tools/xenpaging/file_ops.h
 delete mode 100644 tools/xenpaging/pagein.c
 delete mode 100644 tools/xenpaging/policy.h
 delete mode 100644 tools/xenpaging/policy_default.c
 delete mode 100644 tools/xenpaging/xenpaging.c
 delete mode 100644 tools/xenpaging/xenpaging.h
 delete mode 100644 xen/arch/x86/include/asm/mem_paging.h
 delete mode 100644 xen/arch/x86/mm/mem_paging.c

diff --git a/.gitignore b/.gitignore
index bfc7bdf043c3..043e7b166ecc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -161,7 +161,6 @@ tools/xcutils/lsevtchn
 tools/xcutils/readnotes
 tools/xenmon/xentrace_setmask
 tools/xenmon/xenbaked
-tools/xenpaging/xenpaging
 tools/xenpmd/xenpmd
 tools/xentop/xentop
 tools/xentrace/xentrace_setsize
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ce46020dbdb4..56ea17275b8e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -41,6 +41,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
      a guest, but the vendors have been diverging since then in ways that Xen
      cannot compensate for, and the advent of speculative security issues has
      put to rest any possibility of this being a viable option.
+   - The xenpaging userspace daemon, and MEM_PAGING hypervisor infrastructure.
+     This never got beyond an experimental feature and hasn't seen any real
+     work since 2011.
 
  - Removed xenpm tool on non-x86 platforms as it doesn't actually provide
    anything useful outside of x86.
diff --git a/MAINTAINERS b/MAINTAINERS
index 77f72e52f46d..8df2700dd40b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -633,10 +633,6 @@ F:	tools/misc/xen-cpuid.c
 F:	tools/tests/cpu-policy/
 F:	tools/tests/x86_emulator/
 
-X86 MEMORY PAGING
-S:	Orphaned
-F:	xen/arch/x86/mm/mem_paging.c
-
 X86 MEMORY SHARING
 M:	Tamas K Lengyel <tamas@tklengyel.com>
 S:	Odd Fixes
diff --git a/automation/gitlab-ci/analyze.yaml b/automation/gitlab-ci/analyze.yaml
index b3f99f472d9e..f94f1be0aa89 100644
--- a/automation/gitlab-ci/analyze.yaml
+++ b/automation/gitlab-ci/analyze.yaml
@@ -52,7 +52,6 @@ eclair-x86_64-allcode:
       CONFIG_EXPERT=y
       CONFIG_HYPERV_GUEST=y
       CONFIG_LATE_HWDOM=y
-      CONFIG_MEM_PAGING=y
       CONFIG_MEM_SHARING=y
       CONFIG_PERF_ARRAYS=y
       CONFIG_PERF_COUNTERS=y
diff --git a/config/Paths.mk.in b/config/Paths.mk.in
index 6aa392b9f299..0cf6bb574a0a 100644
--- a/config/Paths.mk.in
+++ b/config/Paths.mk.in
@@ -40,7 +40,6 @@ INITD_DIR                := @INITD_DIR@
 CONFIG_LEAF_DIR          := @CONFIG_LEAF_DIR@
 BASH_COMPLETION_DIR      := $(CONFIG_DIR)/bash_completion.d
 XEN_LOCK_DIR             := @XEN_LOCK_DIR@
-XEN_PAGING_DIR           := @XEN_PAGING_DIR@
 XEN_DUMP_DIR             := @XEN_DUMP_DIR@
 DEBUG_DIR                := @DEBUG_DIR@
 
diff --git a/configure b/configure
index 1dbaeb3c5cfa..152c478abfd3 100755
--- a/configure
+++ b/configure
@@ -627,7 +627,6 @@ xen
 subdirs
 DEBUG_DIR
 XEN_DUMP_DIR
-XEN_PAGING_DIR
 XEN_LOCK_DIR
 INITD_DIR
 SHAREDIR
@@ -2215,9 +2214,6 @@ esac
 printf "%s\n" "#define XEN_LOCK_DIR \"$XEN_LOCK_DIR\"" >>confdefs.h
 
 
-XEN_PAGING_DIR=$localstatedir/lib/xen/xenpaging
-
-
 XEN_DUMP_DIR=$xen_dumpdir_path
 
 
diff --git a/docs/INDEX b/docs/INDEX
index e673edd75c31..6eec23f5cbc2 100644
--- a/docs/INDEX
+++ b/docs/INDEX
@@ -18,7 +18,6 @@ misc/distro_mapping		Distro Directory Layouts
 misc/dump-core-format		Xen Core Dump Format
 misc/vtd			VT-d HOWTO
 misc/xen-error-handling		Xen Error Handling
-misc/xenpaging			Xen Paging
 misc/xsm-flask			XSM/FLASK Configuration
 misc/arm/booting		How to boot Xen on ARM
 misc/arm/early-printk		Enabling early printk on ARM
diff --git a/docs/configure b/docs/configure
index 8871914dcbe1..c8ef084e7ee3 100755
--- a/docs/configure
+++ b/docs/configure
@@ -626,7 +626,6 @@ POD2MAN
 FIG2DEV
 DEBUG_DIR
 XEN_DUMP_DIR
-XEN_PAGING_DIR
 XEN_LOCK_DIR
 INITD_DIR
 SHAREDIR
@@ -2020,9 +2019,6 @@ esac
 printf "%s\n" "#define XEN_LOCK_DIR \"$XEN_LOCK_DIR\"" >>confdefs.h
 
 
-XEN_PAGING_DIR=$localstatedir/lib/xen/xenpaging
-
-
 XEN_DUMP_DIR=$xen_dumpdir_path
 
 
diff --git a/docs/misc/xenpaging.txt b/docs/misc/xenpaging.txt
deleted file mode 100644
index 742523e145bc..000000000000
--- a/docs/misc/xenpaging.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-Warning:
-
-The xenpaging code is new and not fully debugged.
-Usage of xenpaging can crash Xen or cause severe data corruption in the
-guest memory and its filesystems!
-
-Description:
-
-xenpaging writes memory pages of a given guest to a file and moves the
-pages back to the pool of available memory.  Once the guests wants to
-access the paged-out memory, the page is read from disk and placed into
-memory.  This allows the sum of all running guests to use more memory
-than physically available on the host.
-
-Requirements:
-
-xenpaging relies on Intel EPT or AMD RVI, other hardware is not
-supported. Only HVM guests are supported.  The dom0 kernel needs
-paging-aware backend drivers to handle paged granttable entries.
-Currently only dom0 kernels based on classic Xen Linux support this
-functionality.
-
-Usage:
-
-Up to now xenpaging is not integrated into libxl/xend, so it has to be
-started manually for each guest.
-
-Once the guest is running, run xenpaging with the guest_id and the path
-to the pagefile:
- 
- /usr/lib/xen/bin/xenpaging -f /path/to/page_file -d dom_id &
-
-Once xenpaging runs it needs a memory target, which is the memory
-footprint of the guest. This value (in KiB) must be written manually to
-xenstore. The following example sets the target to 512MB:
-
- xenstore-write /local/domain/<dom_id>/memory/target-tot_pages $((1024*512))
-
-Now xenpaging tries to page-out as many pages to keep the overall memory
-footprint of the guest at 512MB.
-
-Todo:
-- integrate xenpaging into libxl
-
-# vim: tw=72
diff --git a/m4/paths.m4 b/m4/paths.m4
index 3f94c62efb99..e9382fd6534b 100644
--- a/m4/paths.m4
+++ b/m4/paths.m4
@@ -158,9 +158,6 @@ esac
 AC_SUBST(XEN_LOCK_DIR)
 AC_DEFINE_UNQUOTED([XEN_LOCK_DIR], ["$XEN_LOCK_DIR"], [Xen's lock dir])
 
-XEN_PAGING_DIR=$localstatedir/lib/xen/xenpaging
-AC_SUBST(XEN_PAGING_DIR)
-
 XEN_DUMP_DIR=$xen_dumpdir_path
 AC_SUBST(XEN_DUMP_DIR)
 AC_DEFINE_UNQUOTED([XEN_DUMP_DIR], ["$XEN_DUMP_DIR"], [Xen's dump directory])
diff --git a/tools/Makefile b/tools/Makefile
index 6ecf7c0da821..8752c9369688 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -32,7 +32,6 @@ SUBDIRS-$(CONFIG_GOLANG) += golang
 SUBDIRS-y += xl
 SUBDIRS-y += helpers
 SUBDIRS-y += 9pfsd
-SUBDIRS-$(CONFIG_X86) += xenpaging
 SUBDIRS-$(CONFIG_X86) += debugger
 SUBDIRS-$(CONFIG_TESTS) += tests
 
diff --git a/tools/configure b/tools/configure
index 6f69b0b52634..9e8790d90a8a 100755
--- a/tools/configure
+++ b/tools/configure
@@ -742,7 +742,6 @@ rpath
 werror
 DEBUG_DIR
 XEN_DUMP_DIR
-XEN_PAGING_DIR
 XEN_LOCK_DIR
 INITD_DIR
 SHAREDIR
@@ -4558,9 +4557,6 @@ esac
 printf "%s\n" "#define XEN_LOCK_DIR \"$XEN_LOCK_DIR\"" >>confdefs.h
 
 
-XEN_PAGING_DIR=$localstatedir/lib/xen/xenpaging
-
-
 XEN_DUMP_DIR=$xen_dumpdir_path
 
 
diff --git a/tools/hotplug/common/hotplugpath.sh.in b/tools/hotplug/common/hotplugpath.sh.in
index 1036b884b804..d8e257170605 100644
--- a/tools/hotplug/common/hotplugpath.sh.in
+++ b/tools/hotplug/common/hotplugpath.sh.in
@@ -9,7 +9,6 @@ XEN_CONFIG_DIR="@XEN_CONFIG_DIR@"
 XEN_SCRIPT_DIR="@XEN_SCRIPT_DIR@"
 XEN_LOCK_DIR="@XEN_LOCK_DIR@"
 XEN_RUN_DIR="@XEN_RUN_DIR@"
-XEN_PAGING_DIR="@XEN_PAGING_DIR@"
 XEN_DUMP_DIR="@XEN_DUMP_DIR@"
 XEN_LOG_DIR="@XEN_LOG_DIR@"
 XEN_LIB_DIR="@XEN_LIB_DIR@"
diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index d5dbf69c8968..a46a6cfd42ac 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -2012,22 +2012,6 @@ int xc_altp2m_get_vcpu_p2m_idx(xc_interface *handle, uint32_t domid,
 int xc_altp2m_set_visibility(xc_interface *handle, uint32_t domid,
                              uint16_t view_id, bool visible);
 
-/** 
- * Mem paging operations.
- * Paging is supported only on the x86 architecture in 64 bit mode, with
- * Hardware-Assisted Paging (i.e. Intel EPT, AMD NPT). Moreover, AMD NPT
- * support is considered experimental.
- */
-int xc_mem_paging_enable(xc_interface *xch, uint32_t domain_id, uint32_t *port);
-int xc_mem_paging_disable(xc_interface *xch, uint32_t domain_id);
-int xc_mem_paging_resume(xc_interface *xch, uint32_t domain_id);
-int xc_mem_paging_nominate(xc_interface *xch, uint32_t domain_id,
-                           uint64_t gfn);
-int xc_mem_paging_evict(xc_interface *xch, uint32_t domain_id, uint64_t gfn);
-int xc_mem_paging_prep(xc_interface *xch, uint32_t domain_id, uint64_t gfn);
-int xc_mem_paging_load(xc_interface *xch, uint32_t domain_id,
-                       uint64_t gfn, void *buffer);
-
 /** 
  * Access tracking operations.
  * Supported only on Intel EPT 64 bit processors.
@@ -2160,8 +2144,8 @@ int xc_memshr_control(xc_interface *xch,
  * ENOMEM happens when unsharing pages: a Copy-on-Write duplicate needs to be
  * allocated, and thus the out-of-memory error occurr.
  *
- * For complete examples on how to plumb a notification ring, look into
- * xenpaging or xen-access.
+ * For complete examples on how to plumb a notification ring, look at
+ * xen-access.
  *
  * On receipt of a notification, the helper should ensure there is memory
  * available to the domain before retrying.
diff --git a/tools/libs/ctrl/Makefile.common b/tools/libs/ctrl/Makefile.common
index 68137d42f2b5..c955f54743da 100644
--- a/tools/libs/ctrl/Makefile.common
+++ b/tools/libs/ctrl/Makefile.common
@@ -18,7 +18,6 @@ OBJS-y       += xc_vm_event.o
 OBJS-y       += xc_vmtrace.o
 OBJS-y       += xc_version.o
 OBJS-y       += xc_monitor.o
-OBJS-y       += xc_mem_paging.o
 OBJS-y       += xc_mem_access.o
 OBJS-y       += xc_memshr.o
 OBJS-y       += xc_hcall_buf.o
diff --git a/tools/libs/ctrl/xc_mem_paging.c b/tools/libs/ctrl/xc_mem_paging.c
deleted file mode 100644
index 999a572cefdc..000000000000
--- a/tools/libs/ctrl/xc_mem_paging.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/******************************************************************************
- *
- * tools/libxc/xc_mem_paging.c
- *
- * Interface to low-level memory paging functionality.
- *
- * Copyright (c) 2009 by Citrix Systems, Inc. (Patrick Colp)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "xc_private.h"
-
-static int xc_mem_paging_memop(xc_interface *xch, uint32_t domain_id,
-                               unsigned int op, uint64_t gfn, void *buffer)
-{
-    xen_mem_paging_op_t mpo;
-    DECLARE_HYPERCALL_BOUNCE(buffer, XC_PAGE_SIZE,
-                             XC_HYPERCALL_BUFFER_BOUNCE_IN);
-    int rc;
-
-    memset(&mpo, 0, sizeof(mpo));
-
-    mpo.op      = op;
-    mpo.domain  = domain_id;
-    mpo.gfn     = gfn;
-
-    if ( buffer )
-    {
-        if ( xc_hypercall_bounce_pre(xch, buffer) )
-        {
-            PERROR("Could not bounce memory for XENMEM_paging_op %u", op);
-            return -1;
-        }
-
-        set_xen_guest_handle(mpo.buffer, buffer);
-    }
-
-    rc = xc_memory_op(xch, XENMEM_paging_op, &mpo, sizeof(mpo));
-
-    if ( buffer )
-        xc_hypercall_bounce_post(xch, buffer);
-
-    return rc;
-}
-
-int xc_mem_paging_enable(xc_interface *xch, uint32_t domain_id,
-                         uint32_t *port)
-{
-    if ( !port )
-    {
-        errno = EINVAL;
-        return -1;
-    }
-
-    return xc_vm_event_control(xch, domain_id,
-                               XEN_VM_EVENT_ENABLE,
-                               XEN_DOMCTL_VM_EVENT_OP_PAGING,
-                               port);
-}
-
-int xc_mem_paging_disable(xc_interface *xch, uint32_t domain_id)
-{
-    return xc_vm_event_control(xch, domain_id,
-                               XEN_VM_EVENT_DISABLE,
-                               XEN_DOMCTL_VM_EVENT_OP_PAGING,
-                               NULL);
-}
-
-int xc_mem_paging_resume(xc_interface *xch, uint32_t domain_id)
-{
-    return xc_vm_event_control(xch, domain_id,
-                               XEN_VM_EVENT_RESUME,
-                               XEN_DOMCTL_VM_EVENT_OP_PAGING,
-                               NULL);
-}
-
-int xc_mem_paging_nominate(xc_interface *xch, uint32_t domain_id, uint64_t gfn)
-{
-    return xc_mem_paging_memop(xch, domain_id,
-                               XENMEM_paging_op_nominate,
-                               gfn, NULL);
-}
-
-int xc_mem_paging_evict(xc_interface *xch, uint32_t domain_id, uint64_t gfn)
-{
-    return xc_mem_paging_memop(xch, domain_id,
-                               XENMEM_paging_op_evict,
-                               gfn, NULL);
-}
-
-int xc_mem_paging_prep(xc_interface *xch, uint32_t domain_id, uint64_t gfn)
-{
-    return xc_mem_paging_memop(xch, domain_id,
-                               XENMEM_paging_op_prep,
-                               gfn, NULL);
-}
-
-int xc_mem_paging_load(xc_interface *xch, uint32_t domain_id,
-                       uint64_t gfn, void *buffer)
-{
-    errno = EINVAL;
-
-    if ( !buffer )
-        return -1;
-
-    return xc_mem_paging_memop(xch, domain_id, XENMEM_paging_op_prep,
-                               gfn, buffer);
-}
-
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End: 
- */
diff --git a/tools/xenpaging/Makefile b/tools/xenpaging/Makefile
deleted file mode 100644
index 835cf2b96553..000000000000
--- a/tools/xenpaging/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-XEN_ROOT=$(CURDIR)/../..
-include $(XEN_ROOT)/tools/Rules.mk
-
-CFLAGS += $(CFLAGS_libxentoollog) $(CFLAGS_libxenevtchn) $(CFLAGS_libxenctrl) $(CFLAGS_libxenstore) $(PTHREAD_CFLAGS) $(CFLAGS_libxencall)
-LDLIBS += $(LDLIBS_libxentoollog) $(LDLIBS_libxenevtchn) $(LDLIBS_libxenctrl) $(LDLIBS_libxenstore) $(PTHREAD_LIBS)
-LDFLAGS += $(PTHREAD_LDFLAGS)
-
-POLICY   := default
-
-OBJS-y   := file_ops.o
-OBJS-y   += xenpaging.o
-OBJS-y   += policy_$(POLICY).o
-OBJS-y   += pagein.o
-
-CFLAGS   += -Wno-unused
-
-TARGETS := xenpaging
-
-all: $(TARGETS)
-
-xenpaging: $(OBJS-y)
-	$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS) $(APPEND_LDFLAGS)
-
-install: all
-	$(INSTALL_DIR) -m 0700 $(DESTDIR)$(XEN_PAGING_DIR)
-	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
-	$(INSTALL_PROG) $(TARGETS) $(DESTDIR)$(LIBEXEC_BIN)
-
-uninstall:
-	rm -f $(addprefix $(DESTDIR)$(LIBEXEC_BIN)/, $(TARGETS))
-
-clean:
-	rm -f *.o *~ $(DEPS_RM) TAGS $(TARGETS)
-
-distclean: clean
-
-.PHONY: clean install distclean uninstall
-
-.PHONY: TAGS
-TAGS:
-	etags -t *.c *.h
-
--include $(DEPS_INCLUDE)
diff --git a/tools/xenpaging/file_ops.c b/tools/xenpaging/file_ops.c
deleted file mode 100644
index 301fb3427cc5..000000000000
--- a/tools/xenpaging/file_ops.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/******************************************************************************
- *
- * Common file operations.
- *
- * Copyright (c) 2009 by Citrix Systems, Inc. (Patrick Colp)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include <unistd.h>
-#include <xenctrl.h>
-
-static int file_op(int fd, void *page, int i,
-                   ssize_t (*fn)(int, void *, size_t))
-{
-    off_t offset = i;
-    int total = 0;
-    int bytes;
-
-    offset = lseek(fd, offset << XC_PAGE_SHIFT, SEEK_SET);
-    if ( offset == (off_t)-1 )
-        return -1;
-
-    while ( total < XC_PAGE_SIZE )
-    {
-        bytes = fn(fd, page + total, XC_PAGE_SIZE - total);
-        if ( bytes <= 0 )
-            return -1;
-
-        total += bytes;
-    }
-
-    return 0;
-}
-
-static ssize_t my_write(int fd, void *buf, size_t count)
-{
-    return write(fd, buf, count);
-}
-
-int read_page(int fd, void *page, int i)
-{
-    return file_op(fd, page, i, &read);
-}
-
-int write_page(int fd, void *page, int i)
-{
-    return file_op(fd, page, i, &my_write);
-}
-
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End: 
- */
diff --git a/tools/xenpaging/file_ops.h b/tools/xenpaging/file_ops.h
deleted file mode 100644
index ee3fd7d8b86c..000000000000
--- a/tools/xenpaging/file_ops.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/******************************************************************************
- * tools/xenpaging/file_ops.h
- *
- * Common file operations.
- *
- * Copyright (c) 2009 by Citrix Systems, Inc. (Patrick Colp)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef __FILE_OPS_H__
-#define __FILE_OPS_H__
-
-
-int read_page(int fd, void *page, int i);
-int write_page(int fd, void *page, int i);
-
-
-#endif
-
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End: 
- */
diff --git a/tools/xenpaging/pagein.c b/tools/xenpaging/pagein.c
deleted file mode 100644
index 1c8a7d983dc2..000000000000
--- a/tools/xenpaging/pagein.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Trigger a page-in in a separate thread-of-execution to avoid deadlock */
-#include <pthread.h>
-#include "xenpaging.h"
-
-struct page_in_args {
-    domid_t dom;
-    unsigned long *pagein_queue;
-    xc_interface *xch;
-};
-
-static struct page_in_args page_in_args;
-static unsigned long page_in_request;
-static unsigned int page_in_possible;
-
-static pthread_t page_in_thread;
-static pthread_cond_t page_in_cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t page_in_mutex = PTHREAD_MUTEX_INITIALIZER;
-
-static void *page_in(void *arg)
-{
-    struct page_in_args *pia = arg;
-    void *page;
-    int i, num;
-    xen_pfn_t gfns[XENPAGING_PAGEIN_QUEUE_SIZE];
-
-    while (1)
-    {
-        pthread_mutex_lock(&page_in_mutex);
-        while (!page_in_request)
-            pthread_cond_wait(&page_in_cond, &page_in_mutex);
-        num = 0;
-        for (i = 0; i < XENPAGING_PAGEIN_QUEUE_SIZE; i++)
-        {
-            if (!pia->pagein_queue[i])
-               continue;
-            gfns[num] = pia->pagein_queue[i];
-            pia->pagein_queue[i] = 0;
-            num++;
-        }
-        page_in_request = 0;
-        pthread_mutex_unlock(&page_in_mutex);
-
-        /* Ignore errors */
-        page = xc_map_foreign_pages(pia->xch, pia->dom, PROT_READ, gfns, num);
-        if (page)
-            munmap(page, XC_PAGE_SIZE * num);
-    }
-    page_in_possible = 0;
-    pthread_exit(NULL);
-}
-
-void page_in_trigger(void)
-{
-    if (!page_in_possible)
-        return;
-
-    pthread_mutex_lock(&page_in_mutex);
-    page_in_request = 1;
-    pthread_mutex_unlock(&page_in_mutex);
-    pthread_cond_signal(&page_in_cond);
-}
-
-void create_page_in_thread(struct xenpaging *paging)
-{
-    page_in_args.dom = paging->vm_event.domain_id;
-    page_in_args.pagein_queue = paging->pagein_queue;
-    page_in_args.xch = paging->xc_handle;
-    if (pthread_create(&page_in_thread, NULL, page_in, &page_in_args) == 0)
-        page_in_possible = 1;
-}
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End: 
- */
diff --git a/tools/xenpaging/policy.h b/tools/xenpaging/policy.h
deleted file mode 100644
index b1425a90ef6d..000000000000
--- a/tools/xenpaging/policy.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/******************************************************************************
- * tools/xenpaging/policy.h
- *
- * Xen domain paging policy hooks.
- *
- * Copyright (c) 2009 Citrix Systems, Inc. (Patrick Colp)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef __XEN_PAGING_POLICY_H__
-#define __XEN_PAGING_POLICY_H__
-
-
-#include "xenpaging.h"
-
-
-int policy_init(struct xenpaging *paging);
-unsigned long policy_choose_victim(struct xenpaging *paging);
-void policy_notify_paged_out(unsigned long gfn);
-void policy_notify_paged_in(unsigned long gfn);
-void policy_notify_paged_in_nomru(unsigned long gfn);
-void policy_notify_dropped(unsigned long gfn);
-
-#endif // __XEN_PAGING_POLICY_H__
-
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/tools/xenpaging/policy_default.c b/tools/xenpaging/policy_default.c
deleted file mode 100644
index 979d25123045..000000000000
--- a/tools/xenpaging/policy_default.c
+++ /dev/null
@@ -1,186 +0,0 @@
-/******************************************************************************
- *
- * Xen domain paging default policy.
- *
- * Copyright (c) 2009 Citrix Systems, Inc. (Patrick Colp)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <errno.h>
-
-#include "policy.h"
-
-
-#define DEFAULT_MRU_SIZE (1024 * 16)
-
-
-static unsigned long *mru;
-static unsigned int i_mru;
-static unsigned int mru_size;
-static unsigned long *bitmap;
-static unsigned long *unconsumed;
-static unsigned int unconsumed_cleared;
-static unsigned long current_gfn;
-static unsigned long max_pages;
-
-
-int policy_init(struct xenpaging *paging)
-{
-    int i;
-    int rc = -ENOMEM;
-
-    max_pages = paging->max_pages;
-
-    /* Allocate bitmap for pages not to page out */
-    bitmap = bitmap_alloc(max_pages);
-    if ( !bitmap )
-        goto out;
-    /* Allocate bitmap to track unusable pages */
-    unconsumed = bitmap_alloc(max_pages);
-    if ( !unconsumed )
-        goto out;
-
-    /* Initialise MRU list of paged in pages */
-    if ( paging->policy_mru_size > 0 )
-        mru_size = paging->policy_mru_size;
-    else
-        mru_size = paging->policy_mru_size = DEFAULT_MRU_SIZE;
-
-    mru = malloc(sizeof(*mru) * mru_size);
-    if ( mru == NULL )
-        goto out;
-
-    for ( i = 0; i < mru_size; i++ )
-        mru[i] = INVALID_MFN;
-
-    /* Don't page out page 0 */
-    set_bit(0, bitmap);
-
-    /* Start in the middle to avoid paging during BIOS startup */
-    current_gfn = max_pages / 2;
-
-    rc = 0;
- out:
-    return rc;
-}
-
-unsigned long policy_choose_victim(struct xenpaging *paging)
-{
-    xc_interface *xch = paging->xc_handle;
-    unsigned long i;
-
-    /* One iteration over all possible gfns */
-    for ( i = 0; i < max_pages; i++ )
-    {
-        /* Try next gfn */
-        current_gfn++;
-
-        /* Restart on wrap */
-        if ( current_gfn >= max_pages )
-            current_gfn = 0;
-
-        if ( (current_gfn & (BITS_PER_LONG - 1)) == 0 )
-        {
-            /* All gfns busy */
-            if ( ~bitmap[current_gfn >> ORDER_LONG] == 0 || ~unconsumed[current_gfn >> ORDER_LONG] == 0 )
-            {
-                current_gfn += BITS_PER_LONG;
-                i += BITS_PER_LONG;
-                continue;
-            }
-        }
-
-        /* gfn busy */
-        if ( test_bit(current_gfn, bitmap) )
-            continue;
-
-        /* gfn already tested */
-        if ( test_bit(current_gfn, unconsumed) )
-            continue;
-
-        /* gfn found */
-        break;
-    }
-
-    /* Could not nominate any gfn */
-    if ( i >= max_pages )
-    {
-        /* No more pages, wait in poll */
-        paging->use_poll_timeout = 1;
-        /* Count wrap arounds */
-        unconsumed_cleared++;
-        /* Force retry every few seconds (depends on poll() timeout) */
-        if ( unconsumed_cleared > 123)
-        {
-            /* Force retry of unconsumed gfns on next call */
-            bitmap_clear(unconsumed, max_pages);
-            unconsumed_cleared = 0;
-            DPRINTF("clearing unconsumed, current_gfn %lx", current_gfn);
-        }
-        return INVALID_MFN;
-    }
-
-    set_bit(current_gfn, unconsumed);
-    return current_gfn;
-}
-
-void policy_notify_paged_out(unsigned long gfn)
-{
-    set_bit(gfn, bitmap);
-    clear_bit(gfn, unconsumed);
-}
-
-static void policy_handle_paged_in(unsigned long gfn, int do_mru)
-{
-    unsigned long old_gfn = mru[i_mru & (mru_size - 1)];
-
-    if ( old_gfn != INVALID_MFN )
-        clear_bit(old_gfn, bitmap);
-    
-    if (do_mru) {
-        mru[i_mru & (mru_size - 1)] = gfn;
-    } else {
-        clear_bit(gfn, bitmap);
-        mru[i_mru & (mru_size - 1)] = INVALID_MFN;
-    }
-
-    i_mru++;
-}
-
-void policy_notify_paged_in(unsigned long gfn)
-{
-    policy_handle_paged_in(gfn, 1);
-}
-
-void policy_notify_paged_in_nomru(unsigned long gfn)
-{
-    policy_handle_paged_in(gfn, 0);
-}
-
-void policy_notify_dropped(unsigned long gfn)
-{
-    clear_bit(gfn, bitmap);
-}
-
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/tools/xenpaging/xenpaging.c b/tools/xenpaging/xenpaging.c
deleted file mode 100644
index c7a9a8247766..000000000000
--- a/tools/xenpaging/xenpaging.c
+++ /dev/null
@@ -1,1084 +0,0 @@
-/******************************************************************************
- *
- * Domain paging. 
- * Copyright (c) 2009 by Citrix Systems, Inc. (Patrick Colp)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; If not, see <http://www.gnu.org/licenses/>.
- */
-
-#define _GNU_SOURCE
-
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <stdarg.h>
-#include <time.h>
-#include <signal.h>
-#include <unistd.h>
-#include <poll.h>
-#include <xenstore.h>
-#include <getopt.h>
-
-#include "file_ops.h"
-#include "policy.h"
-#include "xenpaging.h"
-
-/* Defines number of mfns a guest should use at a time, in KiB */
-#define WATCH_TARGETPAGES "memory/target-tot_pages"
-static char *watch_target_tot_pages;
-static char *dom_path;
-static char watch_token[16];
-static char *filename;
-static int interrupted;
-
-static void unlink_pagefile(void)
-{
-    if ( filename && filename[0] )
-    {
-        unlink(filename);
-        filename[0] = '\0';
-    }
-}
-
-static void close_handler(int sig)
-{
-    interrupted = sig;
-    unlink_pagefile();
-}
-
-static void xenpaging_mem_paging_flush_ioemu_cache(struct xenpaging *paging)
-{
-    struct xs_handle *xsh = paging->xs_handle;
-    domid_t domain_id = paging->vm_event.domain_id;
-    char path[80];
-
-    sprintf(path, "/local/domain/0/device-model/%u/command", domain_id);
-
-    xs_write(xsh, XBT_NULL, path, "flush-cache", strlen("flush-cache")); 
-}
-
-static int xenpaging_wait_for_event_or_timeout(struct xenpaging *paging)
-{
-    xc_interface *xch = paging->xc_handle;
-    xenevtchn_handle *xce = paging->vm_event.xce_handle;
-    char **vec, *val;
-    unsigned int num;
-    struct pollfd fd[2];
-    int port;
-    int rc;
-    int timeout;
-
-    /* Wait for event channel and xenstore */
-    fd[0].fd = xenevtchn_fd(xce);
-    fd[0].events = POLLIN | POLLERR;
-    fd[1].fd = xs_fileno(paging->xs_handle);
-    fd[1].events = POLLIN | POLLERR;
-
-    /* No timeout while page-out is still in progress */
-    timeout = paging->use_poll_timeout ? 100 : 0;
-    rc = poll(fd, 2, timeout);
-    if ( rc < 0 )
-    {
-        if (errno == EINTR)
-            return 0;
-
-        PERROR("Poll exited with an error");
-        return -1;
-    }
-
-    /* First check for guest shutdown */
-    if ( rc && fd[1].revents & POLLIN )
-    {
-        DPRINTF("Got event from xenstore\n");
-        vec = xs_read_watch(paging->xs_handle, &num);
-        if ( vec )
-        {
-            DPRINTF("path '%s' token '%s'\n", vec[XS_WATCH_PATH], vec[XS_WATCH_TOKEN]);
-            if ( strcmp(vec[XS_WATCH_TOKEN], watch_token) == 0 )
-            {
-                /* If our guest disappeared, set interrupt flag and fall through */
-                if ( xs_is_domain_introduced(paging->xs_handle, paging->vm_event.domain_id) == false )
-                {
-                    xs_unwatch(paging->xs_handle, "@releaseDomain", watch_token);
-                    interrupted = SIGQUIT;
-                    /* No further poll result processing */
-                    rc = 0;
-                }
-            }
-            else if ( strcmp(vec[XS_WATCH_PATH], watch_target_tot_pages) == 0 )
-            {
-                int ret, target_tot_pages;
-                val = xs_read(paging->xs_handle, XBT_NULL, vec[XS_WATCH_PATH], NULL);
-                if ( val )
-                {
-                    ret = sscanf(val, "%d", &target_tot_pages);
-                    if ( ret > 0 )
-                    {
-                        /* KiB to pages */
-                        target_tot_pages >>= 2;
-                        if ( target_tot_pages < 0 || target_tot_pages > paging->max_pages )
-                            target_tot_pages = paging->max_pages;
-                        paging->target_tot_pages = target_tot_pages;
-                        /* Disable poll() delay while new target is not yet reached */
-                        paging->use_poll_timeout = 0;
-                        DPRINTF("new target_tot_pages %d\n", target_tot_pages);
-                    }
-                    free(val);
-                }
-            }
-            free(vec);
-        }
-    }
-
-    if ( rc && fd[0].revents & POLLIN )
-    {
-        DPRINTF("Got event from evtchn\n");
-        port = xenevtchn_pending(xce);
-        if ( port == -1 )
-        {
-            PERROR("Failed to read port from event channel");
-            rc = -1;
-            goto err;
-        }
-
-        rc = xenevtchn_unmask(xce, port);
-        if ( rc < 0 )
-        {
-            PERROR("Failed to unmask event channel port");
-        }
-    }
-err:
-    return rc;
-}
-
-static int xenpaging_get_tot_pages(struct xenpaging *paging)
-{
-    xc_interface *xch = paging->xc_handle;
-    xc_domaininfo_t domain_info;
-    int rc;
-
-    rc = xc_domain_getinfo_single(xch, paging->vm_event.domain_id, &domain_info);
-    if ( rc < 0 )
-    {
-        PERROR("Error getting domain info");
-        return -1;
-    }
-    return domain_info.tot_pages;
-}
-
-static void *init_page(void)
-{
-    void *buffer;
-
-    /* Allocated page memory */
-    errno = posix_memalign(&buffer, XC_PAGE_SIZE, XC_PAGE_SIZE);
-    if ( errno != 0 )
-        return NULL;
-
-    /* Lock buffer in memory so it can't be paged out */
-    if ( mlock(buffer, XC_PAGE_SIZE) < 0 )
-    {
-        free(buffer);
-        buffer = NULL;
-    }
-
-    return buffer;
-}
-
-static void usage(void)
-{
-    printf("usage:\n\n");
-
-    printf("  xenpaging [options] -f <pagefile> -d <domain_id>\n\n");
-
-    printf("options:\n");
-    printf(" -d <domid>     --domain=<domid>         numerical domain_id of guest. This option is required.\n");
-    printf(" -f <file>      --pagefile=<file>        pagefile to use. This option is required.\n");
-    printf(" -m <max_memkb> --max_memkb=<max_memkb>  maximum amount of memory to handle.\n");
-    printf(" -r <num>       --mru_size=<num>         number of paged-in pages to keep in memory.\n");
-    printf(" -v             --verbose                enable debug output.\n");
-    printf(" -h             --help                   this output.\n");
-}
-
-static int xenpaging_getopts(struct xenpaging *paging, int argc, char *argv[])
-{
-    int ch;
-    static const char sopts[] = "hvd:f:m:r:";
-    static const struct option lopts[] = {
-        {"help", 0, NULL, 'h'},
-        {"verbose", 0, NULL, 'v'},
-        {"domain", 1, NULL, 'd'},
-        {"pagefile", 1, NULL, 'f'},
-        {"mru_size", 1, NULL, 'm'},
-        { }
-    };
-
-    while ((ch = getopt_long(argc, argv, sopts, lopts, NULL)) != -1)
-    {
-        switch(ch) {
-        case 'd':
-            paging->vm_event.domain_id = atoi(optarg);
-            break;
-        case 'f':
-            free(filename);
-            filename = strdup(optarg);
-            break;
-        case 'm':
-            /* KiB to pages */
-            paging->max_pages = atoi(optarg) >> 2;
-            break;
-        case 'r':
-            paging->policy_mru_size = atoi(optarg);
-            break;
-        case 'v':
-            paging->debug = 1;
-            break;
-        case 'h':
-        case '?':
-            usage();
-            return 1;
-        }
-    }
-
-    argv += optind; argc -= optind;
-    
-    /* Path to pagefile is required */
-    if ( !filename )
-    {
-        printf("Filename for pagefile missing!\n");
-        usage();
-        return 1;
-    }
-
-    /* Set domain id */
-    if ( !paging->vm_event.domain_id )
-    {
-        printf("Numerical <domain_id> missing!\n");
-        return 1;
-    }
-
-    return 0;
-}
-
-static struct xenpaging *xenpaging_init(int argc, char *argv[])
-{
-    struct xenpaging *paging;
-    xc_domaininfo_t domain_info;
-    xc_interface *xch = NULL;
-    char *p;
-    int rc;
-    unsigned long ring_pfn, mmap_pfn;
-
-    /* Allocate memory */
-    paging = calloc(1, sizeof(struct xenpaging));
-    if ( !paging )
-        goto err;
-
-    /* Get cmdline options and domain_id */
-    if ( xenpaging_getopts(paging, argc, argv) )
-        goto err;
-
-    paging->logger = (xentoollog_logger *)xtl_createlogger_stdiostream(stderr,
-                         paging->debug ? XTL_DEBUG : XTL_PROGRESS, 0);
-
-    /* Open connection to xen */
-    paging->xc_handle = xch = xc_interface_open(paging->logger, NULL, 0);
-    if ( !xch )
-        goto err;
-
-    DPRINTF("xenpaging init\n");
-
-    /* Open connection to xenstore */
-    paging->xs_handle = xs_open(0);
-    if ( paging->xs_handle == NULL )
-    {
-        PERROR("Error initialising xenstore connection");
-        goto err;
-    }
-
-    /* write domain ID to watch so we can ignore other domain shutdowns */
-    snprintf(watch_token, sizeof(watch_token), "%u", paging->vm_event.domain_id);
-    if ( xs_watch(paging->xs_handle, "@releaseDomain", watch_token) == false )
-    {
-        PERROR("Could not bind to shutdown watch\n");
-        goto err;
-    }
-
-    /* Watch xenpagings working target */
-    dom_path = xs_get_domain_path(paging->xs_handle, paging->vm_event.domain_id);
-    if ( !dom_path )
-    {
-        PERROR("Could not find domain path\n");
-        goto err;
-    }
-    if ( asprintf(&watch_target_tot_pages, "%s/%s", dom_path, WATCH_TARGETPAGES) < 0 )
-    {
-        PERROR("Could not alloc watch path\n");
-        goto err;
-    }
-    DPRINTF("watching '%s'\n", watch_target_tot_pages);
-    if ( xs_watch(paging->xs_handle, watch_target_tot_pages, "") == false )
-    {
-        PERROR("Could not bind to xenpaging watch\n");
-        goto err;
-    }
-
-    /* Map the ring page */
-    xc_get_hvm_param(xch, paging->vm_event.domain_id, 
-                        HVM_PARAM_PAGING_RING_PFN, &ring_pfn);
-    mmap_pfn = ring_pfn;
-    paging->vm_event.ring_page = 
-        xc_map_foreign_pages(xch, paging->vm_event.domain_id,
-                             PROT_READ | PROT_WRITE, &mmap_pfn, 1);
-    if ( !paging->vm_event.ring_page )
-    {
-        /* Map failed, populate ring page */
-        rc = xc_domain_populate_physmap_exact(paging->xc_handle, 
-                                              paging->vm_event.domain_id,
-                                              1, 0, 0, &ring_pfn);
-        if ( rc != 0 )
-        {
-            PERROR("Failed to populate ring gfn\n");
-            goto err;
-        }
-
-        paging->vm_event.ring_page = 
-            xc_map_foreign_pages(xch, paging->vm_event.domain_id,
-                                 PROT_READ | PROT_WRITE,
-                                 &mmap_pfn, 1);
-        if ( !paging->vm_event.ring_page )
-        {
-            PERROR("Could not map the ring page\n");
-            goto err;
-        }
-    }
-    
-    /* Initialise Xen */
-    rc = xc_mem_paging_enable(xch, paging->vm_event.domain_id,
-                             &paging->vm_event.evtchn_port);
-    if ( rc != 0 )
-    {
-        switch ( errno ) {
-            case EBUSY:
-                ERROR("xenpaging is (or was) active on this domain");
-                break;
-            case ENODEV:
-                ERROR("xenpaging requires Hardware Assisted Paging");
-                break;
-            case EMLINK:
-                ERROR("xenpaging not supported while iommu passthrough is enabled");
-                break;
-            case EXDEV:
-                ERROR("xenpaging not supported in a PoD guest");
-                break;
-            default:
-                PERROR("Error initialising shared page");
-                break;
-        }
-        goto err;
-    }
-
-    /* Open event channel */
-    paging->vm_event.xce_handle = xenevtchn_open(NULL, 0);
-    if ( paging->vm_event.xce_handle == NULL )
-    {
-        PERROR("Failed to open event channel");
-        goto err;
-    }
-
-    /* Bind event notification */
-    rc = xenevtchn_bind_interdomain(paging->vm_event.xce_handle,
-                                    paging->vm_event.domain_id,
-                                    paging->vm_event.evtchn_port);
-    if ( rc < 0 )
-    {
-        PERROR("Failed to bind event channel");
-        goto err;
-    }
-
-    paging->vm_event.port = rc;
-
-    /* Initialise ring */
-    SHARED_RING_INIT((vm_event_sring_t *)paging->vm_event.ring_page);
-    BACK_RING_INIT(&paging->vm_event.back_ring,
-                   (vm_event_sring_t *)paging->vm_event.ring_page,
-                   XC_PAGE_SIZE);
-
-    /* Now that the ring is set, remove it from the guest's physmap */
-    if ( xc_domain_decrease_reservation_exact(xch, 
-                    paging->vm_event.domain_id, 1, 0, &ring_pfn) )
-        PERROR("Failed to remove ring from guest physmap");
-
-    /* Get max_pages from guest if not provided via cmdline */
-    if ( !paging->max_pages )
-    {
-        rc = xc_domain_getinfo_single(xch, paging->vm_event.domain_id,
-                                      &domain_info);
-        if ( rc < 0 )
-        {
-            PERROR("Error getting domain info");
-            goto err;
-        }
-
-        /* Record number of max_pages */
-        paging->max_pages = domain_info.max_pages;
-    }
-
-    /* Allocate bitmap for tracking pages that have been paged out */
-    paging->bitmap = bitmap_alloc(paging->max_pages);
-    if ( !paging->bitmap )
-    {
-        PERROR("Error allocating bitmap");
-        goto err;
-    }
-    DPRINTF("max_pages = %d\n", paging->max_pages);
-
-    /* Allocate indicies for pagefile slots */
-    paging->slot_to_gfn = calloc(paging->max_pages, sizeof(*paging->slot_to_gfn));
-    paging->gfn_to_slot = calloc(paging->max_pages, sizeof(*paging->gfn_to_slot));
-    if ( !paging->slot_to_gfn || !paging->gfn_to_slot )
-        goto err;
-
-    /* Allocate stack for known free slots in pagefile */
-    paging->free_slot_stack = calloc(paging->max_pages, sizeof(*paging->free_slot_stack));
-    if ( !paging->free_slot_stack )
-        goto err;
-
-    /* Initialise policy */
-    rc = policy_init(paging);
-    if ( rc != 0 )
-    {
-        PERROR("Error initialising policy");
-        goto err;
-    }
-
-    paging->paging_buffer = init_page();
-    if ( !paging->paging_buffer )
-    {
-        PERROR("Creating page aligned load buffer");
-        goto err;
-    }
-
-    /* Open file */
-    paging->fd = open(filename, O_CREAT | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR);
-    if ( paging->fd < 0 )
-    {
-        PERROR("failed to open file");
-        goto err;
-    }
-
-    return paging;
-
- err:
-    if ( paging )
-    {
-        if ( paging->xs_handle )
-            xs_close(paging->xs_handle);
-        if ( xch )
-            xc_interface_close(xch);
-        if ( paging->logger )
-            xtl_logger_destroy(paging->logger);
-        if ( paging->paging_buffer )
-        {
-            munlock(paging->paging_buffer, XC_PAGE_SIZE);
-            free(paging->paging_buffer);
-        }
-
-        if ( paging->vm_event.ring_page )
-        {
-            munmap(paging->vm_event.ring_page, XC_PAGE_SIZE);
-        }
-
-        free(dom_path);
-        free(watch_target_tot_pages);
-        free(paging->free_slot_stack);
-        free(paging->slot_to_gfn);
-        free(paging->gfn_to_slot);
-        free(paging->bitmap);
-        free(paging);
-    }
-
-    return NULL;
-}
-
-static void xenpaging_teardown(struct xenpaging *paging)
-{
-    int rc;
-    xc_interface *xch = paging->xc_handle;
-
-    xs_unwatch(paging->xs_handle, watch_target_tot_pages, "");
-    xs_unwatch(paging->xs_handle, "@releaseDomain", watch_token);
-
-    paging->xc_handle = NULL;
-    /* Tear down domain paging in Xen */
-    munmap(paging->vm_event.ring_page, XC_PAGE_SIZE);
-    rc = xc_mem_paging_disable(xch, paging->vm_event.domain_id);
-    if ( rc != 0 )
-    {
-        PERROR("Error tearing down domain paging in xen");
-    }
-
-    /* Unbind VIRQ */
-    rc = xenevtchn_unbind(paging->vm_event.xce_handle, paging->vm_event.port);
-    if ( rc != 0 )
-    {
-        PERROR("Error unbinding event port");
-    }
-    paging->vm_event.port = -1;
-
-    /* Close event channel */
-    rc = xenevtchn_close(paging->vm_event.xce_handle);
-    if ( rc != 0 )
-    {
-        PERROR("Error closing event channel");
-    }
-    paging->vm_event.xce_handle = NULL;
-    
-    /* Close connection to xenstore */
-    xs_close(paging->xs_handle);
-
-    /* Close connection to Xen */
-    xc_interface_close(xch);
-
-    xtl_logger_destroy(paging->logger);
-}
-
-static void get_request(struct vm_event *vm_event, vm_event_request_t *req)
-{
-    vm_event_back_ring_t *back_ring;
-    RING_IDX req_cons;
-
-    back_ring = &vm_event->back_ring;
-    req_cons = back_ring->req_cons;
-
-    /* Copy request */
-    memcpy(req, RING_GET_REQUEST(back_ring, req_cons), sizeof(*req));
-    req_cons++;
-
-    /* Update ring */
-    back_ring->req_cons = req_cons;
-    back_ring->sring->req_event = req_cons + 1;
-}
-
-static void put_response(struct vm_event *vm_event, vm_event_response_t *rsp)
-{
-    vm_event_back_ring_t *back_ring;
-    RING_IDX rsp_prod;
-
-    back_ring = &vm_event->back_ring;
-    rsp_prod = back_ring->rsp_prod_pvt;
-
-    /* Copy response */
-    memcpy(RING_GET_RESPONSE(back_ring, rsp_prod), rsp, sizeof(*rsp));
-    rsp_prod++;
-
-    /* Update ring */
-    back_ring->rsp_prod_pvt = rsp_prod;
-    RING_PUSH_RESPONSES(back_ring);
-}
-
-/* Evict a given gfn
- * Returns < 0 on fatal error
- * Returns 0 on successful evict
- * Returns > 0 if gfn can not be evicted
- */
-static int xenpaging_evict_page(struct xenpaging *paging, unsigned long gfn, int slot)
-{
-    xc_interface *xch = paging->xc_handle;
-    void *page;
-    xen_pfn_t victim = gfn;
-    int ret;
-    struct xen_domctl domctl;
-
-    /* Nominate page */
-    ret = xc_mem_paging_nominate(xch, paging->vm_event.domain_id, gfn);
-    if ( ret < 0 )
-    {
-        /* unpageable gfn is indicated by EBUSY */
-        if ( errno == EBUSY )
-            ret = 1;
-        else
-            PERROR("Error nominating page %lx", gfn);
-        goto out;
-    }
-
-    /* Map page */
-    page = xc_map_foreign_pages(xch, paging->vm_event.domain_id, PROT_READ, &victim, 1);
-    if ( page == NULL )
-    {
-        PERROR("Error mapping page %lx", gfn);
-        ret = -1;
-        goto out;
-    }
-
-    /* Copy page */
-    ret = write_page(paging->fd, page, slot);
-    if ( ret < 0 )
-    {
-        PERROR("Error copying page %lx", gfn);
-        munmap(page, XC_PAGE_SIZE);
-        ret = -1;
-        goto out;
-    }
-
-    /* Release page */
-    munmap(page, XC_PAGE_SIZE);
-
-    /* Tell Xen to evict page */
-    ret = xc_mem_paging_evict(xch, paging->vm_event.domain_id, gfn);
-    if ( ret < 0 )
-    {
-        /* A gfn in use is indicated by EBUSY */
-        if ( errno == EBUSY )
-        {
-                ret = 1;
-                DPRINTF("Nominated page %lx busy", gfn);
-        } else
-            PERROR("Error evicting page %lx", gfn);
-        goto out;
-    }
-
-    DPRINTF("evict_page > gfn %lx pageslot %d\n", gfn, slot);
-    /* Notify policy of page being paged out */
-    policy_notify_paged_out(gfn);
-
-    /* Update index */
-    paging->slot_to_gfn[slot] = gfn;
-    paging->gfn_to_slot[gfn] = slot;
-
-    /* Record number of evicted pages */
-    paging->num_paged_out++;
-
-    ret = 0;
-
- out:
-    return ret;
-}
-
-static int xenpaging_resume_page(struct xenpaging *paging, vm_event_response_t *rsp, int notify_policy)
-{
-    /* Put the page info on the ring */
-    put_response(&paging->vm_event, rsp);
-
-    /* Notify policy of page being paged in */
-    if ( notify_policy )
-    {
-        /*
-         * Do not add gfn to mru list if the target is lower than mru size.
-         * This allows page-out of these gfns if the target grows again.
-         */
-        if (paging->num_paged_out > paging->policy_mru_size)
-            policy_notify_paged_in(rsp->u.mem_paging.gfn);
-        else
-            policy_notify_paged_in_nomru(rsp->u.mem_paging.gfn);
-
-       /* Record number of resumed pages */
-       paging->num_paged_out--;
-    }
-
-    /* Tell Xen page is ready */
-    return xenevtchn_notify(paging->vm_event.xce_handle, paging->vm_event.port);
-}
-
-static int xenpaging_populate_page(struct xenpaging *paging, unsigned long gfn, int i)
-{
-    xc_interface *xch = paging->xc_handle;
-    int ret;
-    unsigned char oom = 0;
-
-    DPRINTF("populate_page < gfn %lx pageslot %d\n", gfn, i);
-
-    /* Read page */
-    ret = read_page(paging->fd, paging->paging_buffer, i);
-    if ( ret != 0 )
-    {
-        PERROR("Error reading page");
-        goto out;
-    }
-
-    do
-    {
-        /* Tell Xen to allocate a page for the domain */
-        ret = xc_mem_paging_load(xch, paging->vm_event.domain_id, gfn, paging->paging_buffer);
-        if ( ret < 0 )
-        {
-            if ( errno == ENOMEM )
-            {
-                if ( oom++ == 0 )
-                    DPRINTF("ENOMEM while preparing gfn %lx\n", gfn);
-                sleep(1);
-                continue;
-            }
-            PERROR("Error loading %lx during page-in", gfn);
-            ret = -1;
-            break;
-        }
-    }
-    while ( ret && !interrupted );
-
-
- out:
-    return ret;
-}
-
-/* Trigger a page-in for a batch of pages */
-static void resume_pages(struct xenpaging *paging, int num_pages)
-{
-    xc_interface *xch = paging->xc_handle;
-    int i, num = 0;
-
-    for ( i = 0; i < paging->max_pages && num < num_pages; i++ )
-    {
-        if ( test_bit(i, paging->bitmap) )
-        {
-            paging->pagein_queue[num] = i;
-            num++;
-            if ( num == XENPAGING_PAGEIN_QUEUE_SIZE )
-                break;
-        }
-    }
-    /* num may be less than num_pages, caller has to try again */
-    if ( num )
-        page_in_trigger();
-}
-
-/* Evict one gfn and write it to the given slot
- * Returns < 0 on fatal error
- * Returns 0 on successful evict
- * Returns > 0 if no gfn can be evicted
- */
-static int evict_victim(struct xenpaging *paging, int slot)
-{
-    xc_interface *xch = paging->xc_handle;
-    unsigned long gfn;
-    static int num_paged_out;
-    int ret;
-
-    do
-    {
-        gfn = policy_choose_victim(paging);
-        if ( gfn == INVALID_MFN )
-        {
-            /* If the number did not change after last flush command then
-             * the command did not reach qemu yet, or qemu still processes
-             * the command, or qemu has nothing to release.
-             * Right now there is no need to issue the command again.
-             */
-            if ( num_paged_out != paging->num_paged_out )
-            {
-                DPRINTF("Flushing qemu cache\n");
-                xenpaging_mem_paging_flush_ioemu_cache(paging);
-                num_paged_out = paging->num_paged_out;
-            }
-            ret = ENOSPC;
-            goto out;
-        }
-
-        if ( interrupted )
-        {
-            ret = EINTR;
-            goto out;
-        }
-
-        ret = xenpaging_evict_page(paging, gfn, slot);
-        if ( ret < 0 )
-            goto out;
-    }
-    while ( ret );
-
-    if ( test_and_set_bit(gfn, paging->bitmap) )
-        ERROR("Page %lx has been evicted before", gfn);
-
-    ret = 0;
-
- out:
-    return ret;
-}
-
-/* Evict a batch of pages and write them to a free slot in the paging file
- * Returns < 0 on fatal error
- * Returns 0 if no gfn can be evicted
- * Returns > 0 on successful evict
- */
-static int evict_pages(struct xenpaging *paging, int num_pages)
-{
-    xc_interface *xch = paging->xc_handle;
-    int rc, slot, num = 0;
-
-    /* Reuse known free slots */
-    while ( paging->stack_count > 0 && num < num_pages )
-    {
-        slot = paging->free_slot_stack[--paging->stack_count];
-        rc = evict_victim(paging, slot);
-        if ( rc )
-        {
-            num = rc < 0 ? -1 : num;
-            return num;
-        }
-        num++;
-    }
-
-    /* Scan all slots slots for remainders */
-    for ( slot = 0; slot < paging->max_pages && num < num_pages; slot++ )
-    {
-        /* Slot is allocated */
-        if ( paging->slot_to_gfn[slot] )
-            continue;
-
-        rc = evict_victim(paging, slot);
-        if ( rc )
-        {
-            num = rc < 0 ? -1 : num;
-            break;
-        }
-
-        num++;
-    }
-    return num;
-}
-
-int main(int argc, char *argv[])
-{
-    struct sigaction act;
-    struct xenpaging *paging;
-    vm_event_request_t req;
-    vm_event_response_t rsp;
-    int num, prev_num = 0;
-    int slot;
-    int tot_pages;
-    int rc;
-    xc_interface *xch;
-
-    /* Initialise domain paging */
-    paging = xenpaging_init(argc, argv);
-    if ( paging == NULL )
-    {
-        fprintf(stderr, "Error initialising paging\n");
-        return 1;
-    }
-    xch = paging->xc_handle;
-
-    DPRINTF("starting %s for domain_id %u with pagefile %s\n",
-            argv[0], paging->vm_event.domain_id, filename);
-
-    /* ensure that if we get a signal, we'll do cleanup, then exit */
-    act.sa_handler = close_handler;
-    act.sa_flags = 0;
-    sigemptyset(&act.sa_mask);
-    sigaction(SIGHUP,  &act, NULL);
-    sigaction(SIGTERM, &act, NULL);
-    sigaction(SIGINT,  &act, NULL);
-    sigaction(SIGALRM, &act, NULL);
-
-    /* listen for page-in events to stop pager */
-    create_page_in_thread(paging);
-
-    /* Swap pages in and out */
-    while ( 1 )
-    {
-        /* Wait for Xen to signal that a page needs paged in */
-        rc = xenpaging_wait_for_event_or_timeout(paging);
-        if ( rc < 0 )
-        {
-            ERROR("Error getting event");
-            goto out;
-        }
-        else if ( rc != 0 )
-        {
-            DPRINTF("Got event from Xen\n");
-        }
-
-        while ( RING_HAS_UNCONSUMED_REQUESTS(&paging->vm_event.back_ring) )
-        {
-            /* Indicate possible error */
-            rc = 1;
-
-            get_request(&paging->vm_event, &req);
-
-            if ( req.u.mem_paging.gfn > paging->max_pages )
-            {
-                ERROR("Requested gfn %"PRIx64" higher than max_pages %x\n",
-                      req.u.mem_paging.gfn, paging->max_pages);
-                goto out;
-            }
-
-            /* Check if the page has already been paged in */
-            if ( test_and_clear_bit(req.u.mem_paging.gfn, paging->bitmap) )
-            {
-                /* Find where in the paging file to read from */
-                slot = paging->gfn_to_slot[req.u.mem_paging.gfn];
-
-                /* Sanity check */
-                if ( paging->slot_to_gfn[slot] != req.u.mem_paging.gfn )
-                {
-                    ERROR("Expected gfn %"PRIx64" in slot %d, but found gfn %lx\n",
-                          req.u.mem_paging.gfn, slot, paging->slot_to_gfn[slot]);
-                    goto out;
-                }
-
-                if ( req.u.mem_paging.flags & MEM_PAGING_DROP_PAGE )
-                {
-                    DPRINTF("drop_page ^ gfn %"PRIx64" pageslot %d\n",
-                            req.u.mem_paging.gfn, slot);
-                    /* Notify policy of page being dropped */
-                    policy_notify_dropped(req.u.mem_paging.gfn);
-                }
-                else
-                {
-                    /* Populate the page */
-                    if ( xenpaging_populate_page(paging, req.u.mem_paging.gfn, slot) < 0 )
-                    {
-                        ERROR("Error populating page %"PRIx64"", req.u.mem_paging.gfn);
-                        goto out;
-                    }
-                }
-
-                /* Prepare the response */
-                rsp.u.mem_paging.gfn = req.u.mem_paging.gfn;
-                rsp.vcpu_id = req.vcpu_id;
-                rsp.flags = req.flags;
-
-                if ( xenpaging_resume_page(paging, &rsp, 1) < 0 )
-                {
-                    PERROR("Error resuming page %"PRIx64"", req.u.mem_paging.gfn);
-                    goto out;
-                }
-
-                /* Clear this pagefile slot */
-                paging->slot_to_gfn[slot] = 0;
-
-                /* Record this free slot */
-                paging->free_slot_stack[paging->stack_count++] = slot;
-            }
-            else
-            {
-                DPRINTF("page %s populated (domain = %d; vcpu = %d;"
-                        " gfn = %"PRIx64"; paused = %d; evict_fail = %d)\n",
-                        req.u.mem_paging.flags & MEM_PAGING_EVICT_FAIL ? "not" : "already",
-                        paging->vm_event.domain_id, req.vcpu_id, req.u.mem_paging.gfn,
-                        !!(req.flags & VM_EVENT_FLAG_VCPU_PAUSED) ,
-                        !!(req.u.mem_paging.flags & MEM_PAGING_EVICT_FAIL) );
-
-                /* Tell Xen to resume the vcpu */
-                if (( req.flags & VM_EVENT_FLAG_VCPU_PAUSED ) ||
-                    ( req.u.mem_paging.flags & MEM_PAGING_EVICT_FAIL ))
-                {
-                    /* Prepare the response */
-                    rsp.u.mem_paging.gfn = req.u.mem_paging.gfn;
-                    rsp.vcpu_id = req.vcpu_id;
-                    rsp.flags = req.flags;
-
-                    if ( xenpaging_resume_page(paging, &rsp, 0) < 0 )
-                    {
-                        PERROR("Error resuming page %"PRIx64"", req.u.mem_paging.gfn);
-                        goto out;
-                    }
-                }
-            }
-        }
-
-        /* If interrupted, write all pages back into the guest */
-        if ( interrupted == SIGTERM || interrupted == SIGINT )
-        {
-            /* If no more pages to process, exit loop. */
-            if ( !paging->num_paged_out )
-                break;
-            
-            /* One more round if there are still pages to process. */
-            resume_pages(paging, paging->num_paged_out);
-
-            /* Resume main loop */
-            continue;
-        }
-
-        /* Exit main loop on any other signal */
-        if ( interrupted )
-            break;
-
-        /* Indicate possible error */
-        rc = 1;
-
-        /* Check if the target has been reached already */
-        tot_pages = xenpaging_get_tot_pages(paging);
-        if ( tot_pages < 0 )
-            goto out;
-
-        /* Resume all pages if paging is disabled or no target was set */
-        if ( paging->target_tot_pages == 0 )
-        {
-            if ( paging->num_paged_out )
-                resume_pages(paging, paging->num_paged_out);
-        }
-        /* Evict more pages if target not reached */
-        else if ( tot_pages > paging->target_tot_pages )
-        {
-            num = tot_pages - paging->target_tot_pages;
-            if ( num != prev_num )
-            {
-                DPRINTF("Need to evict %d pages to reach %d target_tot_pages\n", num, paging->target_tot_pages);
-                prev_num = num;
-            }
-            /* Limit the number of evicts to be able to process page-in requests */
-            if ( num > 42 )
-            {
-                paging->use_poll_timeout = 0;
-                num = 42;
-            }
-            if ( evict_pages(paging, num) < 0 )
-                goto out;
-        }
-        /* Resume some pages if target not reached */
-        else if ( tot_pages < paging->target_tot_pages && paging->num_paged_out )
-        {
-            num = paging->target_tot_pages - tot_pages;
-            if ( num != prev_num )
-            {
-                DPRINTF("Need to resume %d pages to reach %d target_tot_pages\n", num, paging->target_tot_pages);
-                prev_num = num;
-            }
-            resume_pages(paging, num);
-        }
-        /* Now target was reached, enable poll() timeout */
-        else
-        {
-            paging->use_poll_timeout = 1;
-        }
-
-    }
-
-    /* No error */
-    rc = 0;
-
-    DPRINTF("xenpaging got signal %d\n", interrupted);
-
- out:
-    close(paging->fd);
-    unlink_pagefile();
-
-    /* Tear down domain paging */
-    xenpaging_teardown(paging);
-
-    return rc ? 2 : 0;
-}
-
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End: 
- */
diff --git a/tools/xenpaging/xenpaging.h b/tools/xenpaging/xenpaging.h
deleted file mode 100644
index e0fc7b31b863..000000000000
--- a/tools/xenpaging/xenpaging.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/******************************************************************************
- * tools/xenpaging/xenpaging.h
- *
- * Xen domain paging.
- *
- * Copyright (c) 2009 Citrix Systems, Inc. (Patrick Colp)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef __XEN_PAGING2_H__
-#define __XEN_PAGING2_H__
-
-#include <malloc.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-
-#include <xenevtchn.h>
-#define XC_WANT_COMPAT_MAP_FOREIGN_API
-#include <xenctrl.h>
-// #include <xc_private.h>
-#include <xen/event_channel.h>
-#include <xen/vm_event.h>
-
-#define XENPAGING_PAGEIN_QUEUE_SIZE 64
-
-struct vm_event {
-    domid_t domain_id;
-    xenevtchn_handle *xce_handle;
-    int port;
-    vm_event_back_ring_t back_ring;
-    uint32_t evtchn_port;
-    void *ring_page;
-};
-
-struct xenpaging {
-    xc_interface *xc_handle;
-    xentoollog_logger *logger;
-    struct xs_handle *xs_handle;
-
-    unsigned long *bitmap;
-
-    unsigned long *slot_to_gfn;
-    int *gfn_to_slot;
-
-    void *paging_buffer;
-
-    struct vm_event vm_event;
-    int fd;
-    /* number of pages for which data structures were allocated */
-    int max_pages;
-    int num_paged_out;
-    int target_tot_pages;
-    int policy_mru_size;
-    int use_poll_timeout;
-    int debug;
-    int stack_count;
-    int *free_slot_stack;
-    unsigned long pagein_queue[XENPAGING_PAGEIN_QUEUE_SIZE];
-};
-
-#define DPRINTF(msg, args...) xtl_log(paging->logger, XTL_DETAIL, 0,      \
-                                      "paging", msg, ## args)
-#define ERROR(msg, args...)   xtl_log(paging->logger, XTL_ERROR, -1,      \
-                                      "paging", msg, ## args)
-#define PERROR(msg, args...)  xtl_log(paging->logger, XTL_ERROR, -1,      \
-                                      "paging", msg "(%d = %s)", ## args, \
-                                      errno, strerror(errno))
-
-extern void create_page_in_thread(struct xenpaging *paging);
-extern void page_in_trigger(void);
-
-#define BITS_PER_LONG (sizeof(unsigned long) * 8)
-#define ORDER_LONG (sizeof(unsigned long) == 4 ? 5 : 6)
-
-#define BITMAP_ENTRY(_nr,_bmap) ((_bmap))[(_nr) / 8]
-#define BITMAP_SHIFT(_nr) ((_nr) % 8)
-
-static inline int bitmap_size(int nr_bits)
-{
-    return (nr_bits + 7) / 8;
-}
-
-static inline void *bitmap_alloc(int nr_bits)
-{
-    return calloc(1, bitmap_size(nr_bits));
-}
-
-static inline void bitmap_clear(void *addr, int nr_bits)
-{
-    memset(addr, 0, bitmap_size(nr_bits));
-}
-
-static inline int test_bit(int nr, const void *_addr)
-{
-    const char *addr = _addr;
-    return (BITMAP_ENTRY(nr, addr) >> BITMAP_SHIFT(nr)) & 1;
-}
-
-static inline void clear_bit(int nr, void *_addr)
-{
-    char *addr = _addr;
-    BITMAP_ENTRY(nr, addr) &= ~(1UL << BITMAP_SHIFT(nr));
-}
-
-static inline void set_bit(int nr, void *_addr)
-{
-    char *addr = _addr;
-    BITMAP_ENTRY(nr, addr) |= (1UL << BITMAP_SHIFT(nr));
-}
-
-static inline int test_and_clear_bit(int nr, void *addr)
-{
-    int oldbit = test_bit(nr, addr);
-    clear_bit(nr, addr);
-    return oldbit;
-}
-
-static inline int test_and_set_bit(int nr, void *addr)
-{
-    int oldbit = test_bit(nr, addr);
-    set_bit(nr, addr);
-    return oldbit;
-}
-
-#endif // __XEN_PAGING_H__
-
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index f32bf5cbb73a..b02639d84964 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -84,10 +84,6 @@ config VIRIDIAN
 
 	  If unsure, say Y.
 
-config MEM_PAGING
-	bool "Xen memory paging support (UNSUPPORTED)" if UNSUPPORTED
-	depends on VM_EVENT
-
 config MEM_SHARING
 	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
 	depends on INTEL_VMX
diff --git a/xen/arch/x86/hvm/dm.c b/xen/arch/x86/hvm/dm.c
index 3b53471af0d9..1758f37ed5b0 100644
--- a/xen/arch/x86/hvm/dm.c
+++ b/xen/arch/x86/hvm/dm.c
@@ -260,12 +260,6 @@ static int set_mem_type(struct domain *d,
         p2m_type_t ot;
 
         get_gfn_unshare(d, pfn, &ot);
-        if ( p2m_is_paging(ot) )
-        {
-            put_gfn(d, pfn);
-            p2m_mem_paging_populate(d, _gfn(pfn));
-            return -EAGAIN;
-        }
 
         if ( p2m_is_shared(ot) )
             rc = -EAGAIN;
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index f3aae158e9f8..1abff57d2c32 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -743,7 +743,6 @@ static void *hvmemul_map_linear_addr(
              */
             ASSERT_UNREACHABLE();
             /* fall through */
-        case HVMTRANS_gfn_paged_out:
         case HVMTRANS_gfn_shared:
             err = ERR_PTR(~X86EMUL_RETRY);
             goto out;
@@ -896,7 +895,7 @@ static int hvmemul_linear_to_phys(
     }
     else if ( (pfn = paging_gva_to_gfn(curr, addr, &pfec)) == gfn_x(INVALID_GFN) )
     {
-        if ( pfec & (PFEC_page_paged | PFEC_page_shared) )
+        if ( pfec & PFEC_page_shared )
             return X86EMUL_RETRY;
         *reps = 0;
         x86_emul_pagefault(pfec, addr, &hvmemul_ctxt->ctxt);
@@ -915,7 +914,7 @@ static int hvmemul_linear_to_phys(
         if ( (npfn == gfn_x(INVALID_GFN)) ||
              (npfn != (pfn + (reverse ? -i : i))) )
         {
-            if ( pfec & (PFEC_page_paged | PFEC_page_shared) )
+            if ( pfec & PFEC_page_shared )
                 return X86EMUL_RETRY;
             done /= bytes_per_rep;
             if ( done == 0 )
@@ -1316,7 +1315,6 @@ static int linear_read(unsigned long addr, unsigned int bytes, void *p_data,
                                         hvmemul_ctxt, start,
                                         known_gla(addr, bytes, pfec));
 
-    case HVMTRANS_gfn_paged_out:
     case HVMTRANS_gfn_shared:
     case HVMTRANS_need_retry:
         return X86EMUL_RETRY;
@@ -1373,7 +1371,6 @@ static int linear_write(unsigned long addr, unsigned int bytes, void *p_data,
                                          hvmemul_ctxt, start,
                                          known_gla(addr, bytes, pfec));
 
-    case HVMTRANS_gfn_paged_out:
     case HVMTRANS_gfn_shared:
     case HVMTRANS_need_retry:
         return X86EMUL_RETRY;
@@ -2098,7 +2095,6 @@ static int cf_check hvmemul_rep_movs(
          */
         ASSERT_UNREACHABLE();
         /* fall through */
-    case HVMTRANS_gfn_paged_out:
     case HVMTRANS_gfn_shared:
         return X86EMUL_RETRY;
     case HVMTRANS_okay:
@@ -2218,7 +2214,6 @@ static int cf_check hvmemul_rep_stos(
              */
             ASSERT_UNREACHABLE();
             /* fall through */
-        case HVMTRANS_gfn_paged_out:
         case HVMTRANS_gfn_shared:
             return X86EMUL_RETRY;
         case HVMTRANS_okay:
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index f759a397c557..ef8f7936d68e 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -1813,7 +1813,7 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
     struct vcpu *curr = current;
     struct domain *currd = curr->domain;
     struct p2m_domain *p2m, *hostp2m;
-    int rc, fall_through = 0, paged = 0;
+    int rc, fall_through = 0;
     bool sharing_enomem = false;
     vm_event_request_t *req_ptr = NULL;
     bool sync = false;
@@ -2004,12 +2004,6 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
         goto out_put_gfn;
     }
 
-#ifdef CONFIG_MEM_PAGING
-    /* Check if the page has been paged out */
-    if ( p2m_is_paged(p2mt) || (p2mt == p2m_ram_paging_out) )
-        paged = 1;
-#endif
-
 #ifdef CONFIG_MEM_SHARING
     /* Mem sharing: if still shared on write access then its enomem */
     if ( npfec.write_access && p2m_is_shared(p2mt) )
@@ -2063,8 +2057,6 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
      * sleep on event ring wait queues, and we must not hold
      * locks in such circumstance.
      */
-    if ( paged )
-        p2m_mem_paging_populate(currd, _gfn(gfn));
 
     if ( sharing_enomem )
     {
@@ -2823,7 +2815,7 @@ static void *hvm_map_entry(unsigned long va, bool *writable)
      */
     pfec = PFEC_page_present;
     gfn = paging_gva_to_gfn(current, va, &pfec);
-    if ( pfec & (PFEC_page_paged | PFEC_page_shared) )
+    if ( pfec & PFEC_page_shared )
         goto fail;
 
     v = hvm_map_guest_frame_rw(gfn, 0, writable);
@@ -3258,9 +3250,6 @@ enum hvm_translation_result hvm_translate_get_page(
 
         if ( gfn_eq(gfn, INVALID_GFN) )
         {
-            if ( pfec & PFEC_page_paged )
-                return HVMTRANS_gfn_paged_out;
-
             if ( pfec & PFEC_page_shared )
                 return HVMTRANS_gfn_shared;
 
@@ -3294,12 +3283,6 @@ enum hvm_translation_result hvm_translate_get_page(
     if ( !page )
         return HVMTRANS_bad_gfn_to_mfn;
 
-    if ( p2m_is_paging(p2mt) )
-    {
-        put_page(page);
-        p2m_mem_paging_populate(v->domain, gfn);
-        return HVMTRANS_gfn_paged_out;
-    }
     if ( p2m_is_shared(p2mt) )
     {
         put_page(page);
diff --git a/xen/arch/x86/hvm/intercept.c b/xen/arch/x86/hvm/intercept.c
index da22c386763e..639dee7f5c96 100644
--- a/xen/arch/x86/hvm/intercept.c
+++ b/xen/arch/x86/hvm/intercept.c
@@ -137,7 +137,6 @@ int hvm_process_io_intercept(const struct hvm_io_handler *handler,
                     /* Drop the write as real hardware would. */
                     continue;
                 case HVMTRANS_bad_linear_to_gfn:
-                case HVMTRANS_gfn_paged_out:
                 case HVMTRANS_gfn_shared:
                 case HVMTRANS_need_retry:
                     ASSERT_UNREACHABLE();
@@ -170,7 +169,6 @@ int hvm_process_io_intercept(const struct hvm_io_handler *handler,
                     data = ~0;
                     break;
                 case HVMTRANS_bad_linear_to_gfn:
-                case HVMTRANS_gfn_paged_out:
                 case HVMTRANS_gfn_shared:
                 case HVMTRANS_need_retry:
                     ASSERT_UNREACHABLE();
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index e4cdfe55c18e..1d6a1f5ed258 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -715,7 +715,6 @@ static void nvmx_update_apic_access_address(struct vcpu *v)
 
         apic_gpfn = get_vvmcs(v, APIC_ACCESS_ADDR) >> PAGE_SHIFT;
         apic_pg = get_page_from_gfn(v->domain, apic_gpfn, &p2mt, P2M_ALLOC);
-        ASSERT(apic_pg && !p2m_is_paging(p2mt));
         __vmwrite(APIC_ACCESS_ADDR, page_to_maddr(apic_pg));
         put_page(apic_pg);
     }
@@ -736,7 +735,6 @@ static void nvmx_update_virtual_apic_address(struct vcpu *v)
 
         vapic_gpfn = get_vvmcs(v, VIRTUAL_APIC_PAGE_ADDR) >> PAGE_SHIFT;
         vapic_pg = get_page_from_gfn(v->domain, vapic_gpfn, &p2mt, P2M_ALLOC);
-        ASSERT(vapic_pg && !p2m_is_paging(p2mt));
         __vmwrite(VIRTUAL_APIC_PAGE_ADDR, page_to_maddr(vapic_pg));
         put_page(vapic_pg);
     }
diff --git a/xen/arch/x86/include/asm/hvm/support.h b/xen/arch/x86/include/asm/hvm/support.h
index 9e9fa6295567..0728d19ada38 100644
--- a/xen/arch/x86/include/asm/hvm/support.h
+++ b/xen/arch/x86/include/asm/hvm/support.h
@@ -48,7 +48,6 @@ enum hvm_translation_result {
     HVMTRANS_bad_linear_to_gfn,
     HVMTRANS_bad_gfn_to_mfn,
     HVMTRANS_unhandleable,
-    HVMTRANS_gfn_paged_out,
     HVMTRANS_gfn_shared,
     HVMTRANS_need_retry,
 };
diff --git a/xen/arch/x86/include/asm/mem_paging.h b/xen/arch/x86/include/asm/mem_paging.h
deleted file mode 100644
index 2c618925d01d..000000000000
--- a/xen/arch/x86/include/asm/mem_paging.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/******************************************************************************
- * include/asm-x86/mem_paging.h
- *
- * Memory paging support.
- *
- * Copyright (c) 2009 Citrix Systems, Inc. (Patrick Colp)
- */
-
-#ifndef __ASM_X86_MEM_PAGING_H__
-#define __ASM_X86_MEM_PAGING_H__
-
-int mem_paging_memop(XEN_GUEST_HANDLE_PARAM(xen_mem_paging_op_t) arg);
-
-#endif /*__ASM_X86_MEM_PAGING_H__ */
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/xen/arch/x86/include/asm/p2m.h b/xen/arch/x86/include/asm/p2m.h
index 3a5a5fd43c2a..2d2cd5f5e9e1 100644
--- a/xen/arch/x86/include/asm/p2m.h
+++ b/xen/arch/x86/include/asm/p2m.h
@@ -60,9 +60,6 @@ typedef enum {
      * be used in 64-bit builds */
     p2m_grant_map_rw = 7,         /* Read/write grant mapping */
     p2m_grant_map_ro = 8,         /* Read-only grant mapping */
-    p2m_ram_paging_out = 9,       /* Memory that is being paged out */
-    p2m_ram_paged = 10,           /* Memory that has been paged out */
-    p2m_ram_paging_in = 11,       /* Memory that is being paged in */
     p2m_ram_shared = 12,          /* Shared or sharable memory */
     p2m_ram_broken = 13,          /* Broken page, access cause domain crash */
     p2m_map_foreign  = 14,        /* ram pages from foreign domain */
@@ -81,18 +78,13 @@ typedef unsigned int p2m_query_t;
 #define P2M_RAM_TYPES (p2m_to_mask(p2m_ram_rw)                \
                        | p2m_to_mask(p2m_ram_logdirty)        \
                        | p2m_to_mask(p2m_ram_ro)              \
-                       | p2m_to_mask(p2m_ram_paging_out)      \
-                       | p2m_to_mask(p2m_ram_paged)           \
-                       | p2m_to_mask(p2m_ram_paging_in)       \
                        | p2m_to_mask(p2m_ram_shared)          \
                        | p2m_to_mask(p2m_ioreq_server))
 
 /* Types that represent a physmap hole that is ok to replace with a shared
  * entry */
 #define P2M_HOLE_TYPES (p2m_to_mask(p2m_mmio_dm)        \
-                       | p2m_to_mask(p2m_invalid)       \
-                       | p2m_to_mask(p2m_ram_paging_in) \
-                       | p2m_to_mask(p2m_ram_paged))
+                       | p2m_to_mask(p2m_invalid))
 
 /* Grant mapping types, which map to a real machine frame in another
  * VM */
@@ -120,21 +112,6 @@ typedef unsigned int p2m_query_t;
 
 #define P2M_POD_TYPES (p2m_to_mask(p2m_populate_on_demand))
 
-/* Pageable types */
-#define P2M_PAGEABLE_TYPES (p2m_to_mask(p2m_ram_rw) \
-                            | p2m_to_mask(p2m_ram_logdirty) )
-
-#ifdef CONFIG_MEM_PAGING
-#define P2M_PAGING_TYPES (p2m_to_mask(p2m_ram_paging_out)        \
-                          | p2m_to_mask(p2m_ram_paged)           \
-                          | p2m_to_mask(p2m_ram_paging_in))
-
-#define P2M_PAGED_TYPES (p2m_to_mask(p2m_ram_paged))
-#else
-#define P2M_PAGING_TYPES 0
-#define P2M_PAGED_TYPES 0
-#endif
-
 /* Shared types */
 #ifdef CONFIG_MEM_SHARING
 /* XXX: Sharable types could include p2m_ram_ro too, but we would need to
@@ -154,8 +131,7 @@ typedef unsigned int p2m_query_t;
 
 /* Valid types not necessarily associated with a (valid) MFN. */
 #define P2M_INVALID_MFN_TYPES (P2M_POD_TYPES                  \
-                               | p2m_to_mask(p2m_mmio_direct) \
-                               | P2M_PAGING_TYPES)
+                               | p2m_to_mask(p2m_mmio_direct))
 
 /* Broken type: the frame backing this pfn has failed in hardware
  * and must not be touched. */
@@ -175,9 +151,6 @@ typedef unsigned int p2m_query_t;
    implementations, there's no way of synchronising against that. */
 #define p2m_is_valid(_t)    (p2m_to_mask(_t) & \
                              (P2M_RAM_TYPES | p2m_to_mask(p2m_mmio_direct)))
-#define p2m_is_pageable(_t) (p2m_to_mask(_t) & P2M_PAGEABLE_TYPES)
-#define p2m_is_paging(_t)   (p2m_to_mask(_t) & P2M_PAGING_TYPES)
-#define p2m_is_paged(_t)    (p2m_to_mask(_t) & P2M_PAGED_TYPES)
 #define p2m_is_sharable(_t) (p2m_to_mask(_t) & P2M_SHARABLE_TYPES)
 #define p2m_is_shared(_t)   (p2m_to_mask(_t) & P2M_SHARED_TYPES)
 #define p2m_is_special(_t)  (p2m_to_mask(_t) & P2M_SPECIAL_TYPES)
@@ -775,14 +748,6 @@ static inline int relinquish_p2m_mapping(struct domain *d)
 /* Modify p2m table for shared gfn */
 int set_shared_p2m_entry(struct domain *d, unsigned long gfn_l, mfn_t mfn);
 
-/* Tell xenpaging to drop a paged out frame */
-void p2m_mem_paging_drop_page(struct domain *d, gfn_t gfn, p2m_type_t p2mt);
-/* Start populating a paged out frame */
-void p2m_mem_paging_populate(struct domain *d, gfn_t gfn);
-/* Resume normal operation (in case a domain was paused) */
-struct vm_event_st;
-void p2m_mem_paging_resume(struct domain *d, struct vm_event_st *rsp);
-
 /*
  * Internal functions, only called by other p2m code
  */
diff --git a/xen/arch/x86/include/asm/processor.h b/xen/arch/x86/include/asm/processor.h
index c37bd7a17658..ca401604d0d9 100644
--- a/xen/arch/x86/include/asm/processor.h
+++ b/xen/arch/x86/include/asm/processor.h
@@ -41,7 +41,6 @@
 #define PFEC_shstk          (_AC(1,U) << 6)
 #define PFEC_arch_mask      (_AC(0xffff,U)) /* Architectural PFEC values. */
 /* Internally used only flags. */
-#define PFEC_page_paged     (1U<<16)
 #define PFEC_page_shared    (1U<<17)
 #define PFEC_implicit       (1U<<18) /* Pagewalk input for ldt/gdt/idt/tr accesses. */
 #define PFEC_synth_mask     (~PFEC_arch_mask) /* Synthetic PFEC values. */
diff --git a/xen/arch/x86/livepatch.c b/xen/arch/x86/livepatch.c
index be40f625d206..01062dde7c03 100644
--- a/xen/arch/x86/livepatch.c
+++ b/xen/arch/x86/livepatch.c
@@ -43,10 +43,6 @@ int arch_livepatch_safety_check(void)
 #ifdef CONFIG_MEM_SHARING
         if ( has_active_waitqueue(d->vm_event_share) )
             goto fail;
-#endif
-#ifdef CONFIG_MEM_PAGING
-        if ( has_active_waitqueue(d->vm_event_paging) )
-            goto fail;
 #endif
         if ( has_active_waitqueue(d->vm_event_monitor) )
             goto fail;
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index b2b03da52b85..cbf955ee973b 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -2183,17 +2183,6 @@ static int mod_l1_entry(l1_pgentry_t *pl1e, l1_pgentry_t nl1e,
 
             page = get_page_from_gfn(pg_dom, gfn_x(gfn), &p2mt, q);
 
-            if ( p2m_is_paged(p2mt) )
-            {
-                if ( page )
-                    put_page(page);
-                p2m_mem_paging_populate(pg_dom, gfn);
-                return -ENOENT;
-            }
-
-            if ( p2mt == p2m_ram_paging_in && !page )
-                return -ENOENT;
-
             /* Did our attempt to unshare fail? */
             if ( (q & P2M_UNSHARE) && p2m_is_shared(p2mt) )
             {
@@ -4110,14 +4099,8 @@ long do_mmu_update(
             {
                 if ( page )
                     put_page(page);
-                if ( p2m_is_paged(p2mt) )
-                {
-                    p2m_mem_paging_populate(pt_owner, _gfn(gmfn));
-                    rc = -ENOENT;
-                }
-                else
-                    gdprintk(XENLOG_WARNING,
-                             "Could not get page for normal update\n");
+                gdprintk(XENLOG_WARNING,
+                         "Could not get page for normal update\n");
                 break;
             }
 
diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
index 960f6e840945..3fb2e53aeb4d 100644
--- a/xen/arch/x86/mm/Makefile
+++ b/xen/arch/x86/mm/Makefile
@@ -5,7 +5,6 @@ obj-$(CONFIG_ALTP2M) += altp2m.o
 obj-$(CONFIG_HVM) += guest_walk_2.o guest_walk_3.o guest_walk_4.o
 obj-$(CONFIG_SHADOW_PAGING) += guest_walk_4.o
 obj-$(CONFIG_VM_EVENT) += mem_access.o
-obj-$(CONFIG_MEM_PAGING) += mem_paging.o
 obj-$(CONFIG_MEM_SHARING) += mem_sharing.o
 obj-$(CONFIG_HVM) += nested.o
 obj-$(CONFIG_HVM) += p2m.o
diff --git a/xen/arch/x86/mm/altp2m.c b/xen/arch/x86/mm/altp2m.c
index 0bc9b9ad2f52..ac9f7437843b 100644
--- a/xen/arch/x86/mm/altp2m.c
+++ b/xen/arch/x86/mm/altp2m.c
@@ -76,7 +76,7 @@ int altp2m_vcpu_enable_ve(struct vcpu *v, gfn_t gfn)
      * pageable() predicate for this, due to it having the same properties
      * that we want.
      */
-    if ( !p2m_is_pageable(p2mt) || is_special_page(pg) )
+    if ( is_special_page(pg) )
     {
         rc = -EINVAL;
         goto err;
diff --git a/xen/arch/x86/mm/guest_walk.c b/xen/arch/x86/mm/guest_walk.c
index f48c3ef75f48..4ab1896fda28 100644
--- a/xen/arch/x86/mm/guest_walk.c
+++ b/xen/arch/x86/mm/guest_walk.c
@@ -547,15 +547,6 @@ void *map_domain_gfn(struct p2m_domain *p2m, gfn_t gfn, mfn_t *mfn,
     page = paging_mode_translate(p2m->domain)
            ? p2m_get_page_from_gfn(p2m, gfn, &p2mt, NULL, q)
            : get_page_from_gfn(p2m->domain, gfn_x(gfn), &p2mt, q);
-    if ( p2m_is_paging(p2mt) )
-    {
-        ASSERT(p2m_is_hostp2m(p2m));
-        if ( page )
-            put_page(page);
-        p2m_mem_paging_populate(p2m->domain, gfn);
-        *pfec = PFEC_page_paged;
-        return NULL;
-    }
     if ( p2m_is_shared(p2mt) )
     {
         if ( page )
diff --git a/xen/arch/x86/mm/hap/guest_walk.c b/xen/arch/x86/mm/hap/guest_walk.c
index d1b7c5762c9e..5d85c97b0605 100644
--- a/xen/arch/x86/mm/hap/guest_walk.c
+++ b/xen/arch/x86/mm/hap/guest_walk.c
@@ -48,15 +48,6 @@ unsigned long cf_check hap_p2m_ga_to_gfn(GUEST_PAGING_LEVELS)(
     top_gfn = _gfn(cr3 >> PAGE_SHIFT);
     top_page = p2m_get_page_from_gfn(p2m, top_gfn, &p2mt, NULL,
                                      P2M_ALLOC | P2M_UNSHARE);
-    if ( p2m_is_paging(p2mt) )
-    {
-        ASSERT(p2m_is_hostp2m(p2m));
-        *pfec = PFEC_page_paged;
-        if ( top_page )
-            put_page(top_page);
-        p2m_mem_paging_populate(p2m->domain, gaddr_to_gfn(cr3));
-        return gfn_x(INVALID_GFN);
-    }
     if ( p2m_is_shared(p2mt) )
     {
         *pfec = PFEC_page_shared;
@@ -92,13 +83,6 @@ unsigned long cf_check hap_p2m_ga_to_gfn(GUEST_PAGING_LEVELS)(
                                      P2M_ALLOC | P2M_UNSHARE);
         if ( page )
             put_page(page);
-        if ( p2m_is_paging(p2mt) )
-        {
-            ASSERT(p2m_is_hostp2m(p2m));
-            *pfec = PFEC_page_paged;
-            p2m_mem_paging_populate(p2m->domain, gfn);
-            return gfn_x(INVALID_GFN);
-        }
         if ( p2m_is_shared(p2mt) )
         {
             *pfec = PFEC_page_shared;
diff --git a/xen/arch/x86/mm/hap/nested_ept.c b/xen/arch/x86/mm/hap/nested_ept.c
index d88d677825f1..f1d021725b09 100644
--- a/xen/arch/x86/mm/hap/nested_ept.c
+++ b/xen/arch/x86/mm/hap/nested_ept.c
@@ -190,11 +190,6 @@ nept_walk_tables(struct vcpu *v, unsigned long l2ga, ept_walk_t *gw)
     goto out;
 
 map_err:
-    if ( rc == PFEC_page_paged )
-    {
-        ret = EPT_TRANSLATE_RETRY;
-        goto out;
-    }
     /* fall through to misconfig error */
 misconfig_err:
     ret =  EPT_TRANSLATE_MISCONFIG;
diff --git a/xen/arch/x86/mm/hap/nested_hap.c b/xen/arch/x86/mm/hap/nested_hap.c
index 255fba7e1cac..681dc238156f 100644
--- a/xen/arch/x86/mm/hap/nested_hap.c
+++ b/xen/arch/x86/mm/hap/nested_hap.c
@@ -126,7 +126,7 @@ static int nestedhap_walk_L0_p2m(
     if ( npfec.write_access && p2m_is_readonly(*p2mt) )
         goto out;
 
-    if ( p2m_is_paging(*p2mt) || p2m_is_shared(*p2mt) || !p2m_is_ram(*p2mt) )
+    if ( p2m_is_shared(*p2mt) || !p2m_is_ram(*p2mt) )
         goto out;
 
     if ( !mfn_valid(mfn) )
diff --git a/xen/arch/x86/mm/mem_paging.c b/xen/arch/x86/mm/mem_paging.c
deleted file mode 100644
index 33929b526ab9..000000000000
--- a/xen/arch/x86/mm/mem_paging.c
+++ /dev/null
@@ -1,487 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/******************************************************************************
- * arch/x86/mm/mem_paging.c
- *
- * Memory paging support.
- *
- * Copyright (c) 2009 Citrix Systems, Inc. (Patrick Colp)
- */
-
-#include <xen/guest_access.h>
-#include <xen/vm_event.h>
-
-#include <asm/mem_paging.h>
-#include <asm/p2m.h>
-
-#include <xsm/xsm.h>
-
-#include "mm-locks.h"
-
-/*
- * p2m_mem_paging_drop_page - Tell pager to drop its reference to a paged page
- * @d: guest domain
- * @gfn: guest page to drop
- *
- * p2m_mem_paging_drop_page() will notify the pager that a paged-out gfn was
- * released by the guest. The pager is supposed to drop its reference of the
- * gfn.
- */
-void p2m_mem_paging_drop_page(struct domain *d, gfn_t gfn, p2m_type_t p2mt)
-{
-    vm_event_request_t req = {
-        .reason = VM_EVENT_REASON_MEM_PAGING,
-        .u.mem_paging.gfn = gfn_x(gfn)
-    };
-
-    /*
-     * We allow no ring in this unique case, because it won't affect
-     * correctness of the guest execution at this point.  If this is the only
-     * page that happens to be paged-out, we'll be okay..  but it's likely the
-     * guest will crash shortly anyways.
-     */
-    int rc = vm_event_claim_slot(d, d->vm_event_paging);
-
-    if ( rc < 0 )
-        return;
-
-    /* Send release notification to pager */
-    req.u.mem_paging.flags = MEM_PAGING_DROP_PAGE;
-
-    /* Update stats unless the page hasn't yet been evicted */
-    if ( p2mt != p2m_ram_paging_out )
-        atomic_dec(&d->paged_pages);
-    else
-        /* Evict will fail now, tag this request for pager */
-        req.u.mem_paging.flags |= MEM_PAGING_EVICT_FAIL;
-
-    vm_event_put_request(d, d->vm_event_paging, &req);
-}
-
-/*
- * p2m_mem_paging_populate - Tell pager to populate a paged page
- * @d: guest domain
- * @gfn: guest page in paging state
- *
- * p2m_mem_paging_populate() will notify the pager that a page in any of the
- * paging states needs to be written back into the guest.
- * This function needs to be called whenever gfn_to_mfn() returns any of the p2m
- * paging types because the gfn may not be backed by a mfn.
- *
- * The gfn can be in any of the paging states, but the pager needs only be
- * notified when the gfn is in the paging-out path (paging_out or paged).  This
- * function may be called more than once from several vcpus. If the vcpu belongs
- * to the guest, the vcpu must be stopped and the pager notified that the vcpu
- * was stopped. The pager needs to handle several requests for the same gfn.
- *
- * If the gfn is not in the paging-out path and the vcpu does not belong to the
- * guest, nothing needs to be done and the function assumes that a request was
- * already sent to the pager. In this case the caller has to try again until the
- * gfn is fully paged in again.
- */
-void p2m_mem_paging_populate(struct domain *d, gfn_t gfn)
-{
-    struct vcpu *v = current;
-    vm_event_request_t req = {
-        .reason = VM_EVENT_REASON_MEM_PAGING,
-        .u.mem_paging.gfn = gfn_x(gfn)
-    };
-    p2m_type_t p2mt;
-    p2m_access_t a;
-    mfn_t mfn;
-    struct p2m_domain *p2m = p2m_get_hostp2m(d);
-    int rc = vm_event_claim_slot(d, d->vm_event_paging);
-
-    /* We're paging. There should be a ring. */
-    if ( rc == -EOPNOTSUPP )
-    {
-        gdprintk(XENLOG_ERR, "%pd paging gfn %"PRI_gfn" yet no ring in place\n",
-                 d, gfn_x(gfn));
-        /* Prevent the vcpu from faulting repeatedly on the same gfn */
-        if ( v->domain == d )
-            vcpu_pause_nosync(v);
-        domain_crash(d);
-        return;
-    }
-    else if ( rc < 0 )
-        return;
-
-    /* Fix p2m mapping */
-    gfn_lock(p2m, gfn, 0);
-    mfn = p2m->get_entry(p2m, gfn, &p2mt, &a, 0, NULL, NULL);
-    /* Allow only nominated or evicted pages to enter page-in path */
-    if ( p2mt == p2m_ram_paging_out || p2mt == p2m_ram_paged )
-    {
-        /* Evict will fail now, tag this request for pager */
-        if ( p2mt == p2m_ram_paging_out )
-            req.u.mem_paging.flags |= MEM_PAGING_EVICT_FAIL;
-
-        rc = p2m_set_entry(p2m, gfn, mfn, PAGE_ORDER_4K, p2m_ram_paging_in, a);
-    }
-    gfn_unlock(p2m, gfn, 0);
-    if ( rc < 0 )
-        goto out_cancel;
-
-    /* Pause domain if request came from guest and gfn has paging type */
-    if ( p2m_is_paging(p2mt) && v->domain == d )
-    {
-        vm_event_vcpu_pause(v);
-        req.flags |= VM_EVENT_FLAG_VCPU_PAUSED;
-    }
-    /* No need to inform pager if the gfn is not in the page-out path */
-    else if ( p2mt != p2m_ram_paging_out && p2mt != p2m_ram_paged )
-    {
-        /* gfn is already on its way back and vcpu is not paused */
-    out_cancel:
-        vm_event_cancel_slot(d, d->vm_event_paging);
-        return;
-    }
-
-    /* Send request to pager */
-    req.u.mem_paging.p2mt = p2mt;
-    req.vcpu_id = v->vcpu_id;
-
-    vm_event_put_request(d, d->vm_event_paging, &req);
-}
-
-/*
- * p2m_mem_paging_resume - Resume guest gfn
- * @d: guest domain
- * @rsp: vm_event response received
- *
- * p2m_mem_paging_resume() will forward the p2mt of a gfn to ram_rw. It is
- * called by the pager.
- *
- * The gfn was previously either evicted and populated, or nominated and
- * populated. If the page was evicted the p2mt will be p2m_ram_paging_in. If
- * the page was just nominated the p2mt will be p2m_ram_paging_in_start because
- * the pager did not call prepare().
- *
- * If the gfn was dropped the vcpu needs to be unpaused.
- */
-void p2m_mem_paging_resume(struct domain *d, struct vm_event_st *rsp)
-{
-    struct p2m_domain *p2m = p2m_get_hostp2m(d);
-    p2m_type_t p2mt;
-    p2m_access_t a;
-    mfn_t mfn;
-
-    /* Fix p2m entry if the page was not dropped */
-    if ( !(rsp->u.mem_paging.flags & MEM_PAGING_DROP_PAGE) )
-    {
-        gfn_t gfn = _gfn(rsp->u.mem_access.gfn);
-
-        gfn_lock(p2m, gfn, 0);
-        mfn = p2m->get_entry(p2m, gfn, &p2mt, &a, 0, NULL, NULL);
-        /*
-         * Allow only pages which were prepared properly, or pages which
-         * were nominated but not evicted.
-         */
-        if ( mfn_valid(mfn) && (p2mt == p2m_ram_paging_in) )
-        {
-            int rc = p2m_set_entry(p2m, gfn, mfn, PAGE_ORDER_4K,
-                                   paging_mode_log_dirty(d) ? p2m_ram_logdirty
-                                                            : p2m_ram_rw, a);
-
-            if ( !rc )
-                set_gpfn_from_mfn(mfn_x(mfn), gfn_x(gfn));
-        }
-        gfn_unlock(p2m, gfn, 0);
-    }
-}
-
-/*
- * nominate - Mark a guest page as to-be-paged-out
- * @d: guest domain
- * @gfn: guest page to nominate
- *
- * Returns 0 for success or negative errno values if gfn is not pageable.
- *
- * nominate() is called by the pager and checks if a guest page can be paged
- * out. If the following conditions are met the p2mt will be changed:
- * - the gfn is backed by a mfn
- * - the p2mt of the gfn is pageable
- * - the mfn is not used for IO
- * - the mfn has exactly one user and has no special meaning
- *
- * Once the p2mt is changed the page is readonly for the guest.  On success the
- * pager can write the page contents to disk and later evict the page.
- */
-static int nominate(struct domain *d, gfn_t gfn)
-{
-    struct page_info *page;
-    struct p2m_domain *p2m = p2m_get_hostp2m(d);
-    p2m_type_t p2mt;
-    p2m_access_t a;
-    mfn_t mfn;
-    int ret = -EBUSY;
-
-    gfn_lock(p2m, gfn, 0);
-
-    mfn = p2m->get_entry(p2m, gfn, &p2mt, &a, 0, NULL, NULL);
-
-    /* Check if mfn is valid */
-    if ( !mfn_valid(mfn) )
-        goto out;
-
-    /* Check p2m type */
-    if ( !p2m_is_pageable(p2mt) )
-        goto out;
-
-    /* Check for io memory page */
-    if ( is_iomem_page(mfn) )
-        goto out;
-
-    /* Check page count and type */
-    page = mfn_to_page(mfn);
-    if ( (page->count_info & (PGC_count_mask | PGC_allocated)) !=
-         (1 | PGC_allocated) )
-        goto out;
-
-    if ( (page->u.inuse.type_info & PGT_count_mask) != 0 )
-        goto out;
-
-    /* Fix p2m entry */
-    ret = p2m_set_entry(p2m, gfn, mfn, PAGE_ORDER_4K, p2m_ram_paging_out, a);
-
- out:
-    gfn_unlock(p2m, gfn, 0);
-    return ret;
-}
-
-/*
- * evict - Mark a guest page as paged-out
- * @d: guest domain
- * @gfn: guest page to evict
- *
- * Returns 0 for success or negative errno values if eviction is not possible.
- *
- * evict() is called by the pager and will free a guest page and release it
- * back to Xen. If the following conditions are met the page can be freed:
- * - the gfn is backed by a mfn
- * - the gfn was nominated
- * - the mfn has still exactly one user and has no special meaning
- *
- * After successful nomination some other process could have mapped the page. In
- * this case eviction can not be done. If the gfn was populated before the pager
- * could evict it, eviction can not be done either. In this case the gfn is
- * still backed by a mfn.
- */
-static int evict(struct domain *d, gfn_t gfn)
-{
-    struct page_info *page;
-    p2m_type_t p2mt;
-    p2m_access_t a;
-    mfn_t mfn;
-    struct p2m_domain *p2m = p2m_get_hostp2m(d);
-    int ret = -EBUSY;
-
-    gfn_lock(p2m, gfn, 0);
-
-    /* Get mfn */
-    mfn = p2m->get_entry(p2m, gfn, &p2mt, &a, 0, NULL, NULL);
-    if ( unlikely(!mfn_valid(mfn)) )
-        goto out;
-
-    /* Allow only nominated pages */
-    if ( p2mt != p2m_ram_paging_out )
-        goto out;
-
-    /* Get the page so it doesn't get modified under Xen's feet */
-    page = mfn_to_page(mfn);
-    if ( unlikely(!get_page(page, d)) )
-        goto out;
-
-    /* Check page count and type once more */
-    if ( (page->count_info & (PGC_count_mask | PGC_allocated)) !=
-         (2 | PGC_allocated) )
-        goto out_put;
-
-    if ( (page->u.inuse.type_info & PGT_count_mask) != 0 )
-        goto out_put;
-
-    /* Decrement guest domain's ref count of the page */
-    put_page_alloc_ref(page);
-
-    /* Remove mapping from p2m table */
-    ret = p2m_set_entry(p2m, gfn, INVALID_MFN, PAGE_ORDER_4K,
-                        p2m_ram_paged, a);
-
-    /* Track number of paged gfns */
-    atomic_inc(&d->paged_pages);
-
- out_put:
-    /* Put the page back so it gets freed */
-    put_page(page);
-
- out:
-    gfn_unlock(p2m, gfn, 0);
-    return ret;
-}
-
-/*
- * prepare - Allocate a new page for the guest
- * @d: guest domain
- * @gfn: guest page in paging state
- *
- * prepare() will allocate a new page for the guest if the gfn is not backed
- * by a mfn. It is called by the pager.
- * It is required that the gfn was already populated. The gfn may already have a
- * mfn if populate was called for  gfn which was nominated but not evicted. In
- * this case only the p2mt needs to be forwarded.
- */
-static int prepare(struct domain *d, gfn_t gfn,
-                   XEN_GUEST_HANDLE_64(const_uint8) buffer)
-{
-    struct page_info *page = NULL;
-    p2m_type_t p2mt;
-    p2m_access_t a;
-    mfn_t mfn;
-    struct p2m_domain *p2m = p2m_get_hostp2m(d);
-    int ret, page_extant = 1;
-
-    if ( !guest_handle_okay(buffer, PAGE_SIZE) )
-        return -EINVAL;
-
-    gfn_lock(p2m, gfn, 0);
-
-    mfn = p2m->get_entry(p2m, gfn, &p2mt, &a, 0, NULL, NULL);
-
-    ret = -ENOENT;
-    /* Allow missing pages */
-    if ( (p2mt != p2m_ram_paging_in) && (p2mt != p2m_ram_paged) )
-        goto out;
-
-    /* Allocate a page if the gfn does not have one yet */
-    if ( !mfn_valid(mfn) )
-    {
-        void *guest_map;
-
-        /* If the user did not provide a buffer, we disallow */
-        ret = -EINVAL;
-        if ( unlikely(guest_handle_is_null(buffer)) )
-            goto out;
-        /* Get a free page */
-        ret = -ENOMEM;
-        page_alloc_mm_pre_lock(d);
-        page = alloc_domheap_page(d, 0);
-        if ( unlikely(page == NULL) )
-            goto out;
-        if ( unlikely(!get_page(page, d)) )
-        {
-            /*
-             * The domain can't possibly know about this page yet, so failure
-             * here is a clear indication of something fishy going on.
-             */
-            gprintk(XENLOG_ERR,
-                    "%pd: fresh page for GFN %"PRI_gfn" in unexpected state\n",
-                    d, gfn_x(gfn));
-            domain_crash(d);
-            page = NULL;
-            goto out;
-        }
-        mfn = page_to_mfn(page);
-        page_extant = 0;
-
-        guest_map = map_domain_page(mfn);
-        ret = copy_from_guest(guest_map, buffer, PAGE_SIZE);
-        unmap_domain_page(guest_map);
-        if ( ret )
-        {
-            ret = -EFAULT;
-            goto out;
-        }
-    }
-
-    /*
-     * Make the page already guest-accessible. If the pager still has a
-     * pending resume operation, it will be idempotent p2m entry-wise, but
-     * will unpause the vcpu.
-     */
-    ret = p2m_set_entry(p2m, gfn, mfn, PAGE_ORDER_4K,
-                        paging_mode_log_dirty(d) ? p2m_ram_logdirty
-                                                 : p2m_ram_rw, a);
-    if ( !ret )
-    {
-        set_gpfn_from_mfn(mfn_x(mfn), gfn_x(gfn));
-
-        if ( !page_extant )
-            atomic_dec(&d->paged_pages);
-    }
-
- out:
-    gfn_unlock(p2m, gfn, 0);
-
-    if ( page )
-    {
-        /*
-         * Free the page on error.  Drop our temporary reference in all
-         * cases.
-         */
-        if ( ret )
-            put_page_alloc_ref(page);
-        put_page(page);
-    }
-
-    return ret;
-}
-
-int mem_paging_memop(XEN_GUEST_HANDLE_PARAM(xen_mem_paging_op_t) arg)
-{
-    int rc;
-    xen_mem_paging_op_t mpo;
-    struct domain *d;
-    bool copyback = false;
-
-    if ( copy_from_guest(&mpo, arg, 1) )
-        return -EFAULT;
-
-    rc = rcu_lock_live_remote_domain_by_id(mpo.domain, &d);
-    if ( rc )
-        return rc;
-
-    rc = xsm_mem_paging(XSM_DM_PRIV, d);
-    if ( rc )
-        goto out;
-
-    rc = -ENODEV;
-    if ( unlikely(!vm_event_check_ring(d->vm_event_paging)) )
-        goto out;
-
-    switch( mpo.op )
-    {
-    case XENMEM_paging_op_nominate:
-        rc = nominate(d, _gfn(mpo.gfn));
-        break;
-
-    case XENMEM_paging_op_evict:
-        rc = evict(d, _gfn(mpo.gfn));
-        break;
-
-    case XENMEM_paging_op_prep:
-        rc = prepare(d, _gfn(mpo.gfn), mpo.buffer);
-        if ( !rc )
-            copyback = 1;
-        break;
-
-    default:
-        rc = -ENOSYS;
-        break;
-    }
-
-    if ( copyback && __copy_to_guest(arg, &mpo, 1) )
-        rc = -EFAULT;
-
-out:
-    rcu_unlock_domain(d);
-    return rc;
-}
-
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
index 5c7a0ff30e8b..d66027eeeb0f 100644
--- a/xen/arch/x86/mm/mem_sharing.c
+++ b/xen/arch/x86/mm/mem_sharing.c
@@ -1198,36 +1198,6 @@ int add_to_physmap(struct domain *sd, unsigned long sgfn, shr_handle_t sh,
         mem_sharing_gfn_destroy(spage, cd, gfn_info);
         put_page_and_type(spage);
     }
-    else
-    {
-#ifdef CONFIG_MEM_PAGING
-        /*
-         * There is a chance we're plugging a hole where a paged out
-         * page was.
-         */
-        if ( p2m_is_paging(cmfn_type) && (cmfn_type != p2m_ram_paging_out) )
-        {
-            atomic_dec(&cd->paged_pages);
-            /*
-             * Further, there is a chance this was a valid page.
-             * Don't leak it.
-             */
-            if ( mfn_valid(cmfn) )
-            {
-                struct page_info *cpage = mfn_to_page(cmfn);
-
-                if ( !get_page(cpage, cd) )
-                {
-                    domain_crash(cd);
-                    ret = -EOVERFLOW;
-                    goto err_unlock;
-                }
-                put_page_alloc_ref(cpage);
-                put_page(cpage);
-            }
-        }
-#endif
-    }
 
     atomic_inc(&nr_saved_mfns);
 
diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
index dfdbfa0afec8..ea4c5729bcf2 100644
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -85,9 +85,6 @@ static void ept_p2m_type_to_flags(const struct p2m_domain *p2m,
         case p2m_invalid:
         case p2m_mmio_dm:
         case p2m_populate_on_demand:
-        case p2m_ram_paging_out:
-        case p2m_ram_paged:
-        case p2m_ram_paging_in:
         default:
             entry->r = entry->w = entry->x = 0;
             break;
diff --git a/xen/arch/x86/mm/p2m-pt.c b/xen/arch/x86/mm/p2m-pt.c
index 5a6ce2f8bc2e..515ee9780e34 100644
--- a/xen/arch/x86/mm/p2m-pt.c
+++ b/xen/arch/x86/mm/p2m-pt.c
@@ -64,9 +64,6 @@ static unsigned long p2m_type_to_flags(const struct p2m_domain *p2m,
     case p2m_invalid:
     case p2m_mmio_dm:
     case p2m_populate_on_demand:
-    case p2m_ram_paging_out:
-    case p2m_ram_paged:
-    case p2m_ram_paging_in:
     default:
         return flags | _PAGE_NX_BIT;
     case p2m_grant_map_ro:
@@ -910,7 +907,7 @@ p2m_pt_get_entry(struct p2m_domain *p2m, gfn_t gfn_,
 pod_retry_l1:
     flags = l1e_get_flags(*l1e);
     l1t = p2m_flags_to_type(flags);
-    if ( !(flags & _PAGE_PRESENT) && !p2m_is_paging(l1t) )
+    if ( !(flags & _PAGE_PRESENT) )
     {
         /* PoD: Try to populate */
         if ( p2m_is_pod(l1t) )
@@ -929,7 +926,7 @@ p2m_pt_get_entry(struct p2m_domain *p2m, gfn_t gfn_,
     *t = p2m_recalc_type(recalc || _needs_recalc(flags), l1t, p2m, gfn);
     unmap_domain_page(l1e);
 
-    ASSERT(mfn_valid(mfn) || !p2m_is_any_ram(*t) || p2m_is_paging(*t));
+    ASSERT(mfn_valid(mfn) || !p2m_is_any_ram(*t));
     return (p2m_is_valid(*t) || p2m_is_any_ram(*t)) ? mfn : INVALID_MFN;
 }
 
diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
index f5f9c0ac4513..c2804d39f9b1 100644
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -405,7 +405,7 @@ struct page_info *p2m_get_page_from_gfn(
             return page;
 
         /* Error path: not a suitable GFN at all */
-        if ( !p2m_is_ram(*t) && !p2m_is_paging(*t) && !p2m_is_pod(*t) &&
+        if ( !p2m_is_ram(*t) && !p2m_is_pod(*t) &&
              !mem_sharing_is_fork(p2m->domain) )
             return NULL;
     }
@@ -697,7 +697,7 @@ p2m_add_page(struct domain *d, gfn_t gfn, mfn_t mfn,
 
             return -EPERM;
         }
-        else if ( p2m_is_ram(ot) && !p2m_is_paged(ot) )
+        else if ( p2m_is_ram(ot) )
         {
             ASSERT(mfn_valid(omfn));
             set_gpfn_from_mfn(mfn_x(omfn), INVALID_M2P_ENTRY);
@@ -707,13 +707,6 @@ p2m_add_page(struct domain *d, gfn_t gfn, mfn_t mfn,
             /* Count how man PoD entries we'll be replacing if successful */
             pod_count++;
         }
-#ifdef CONFIG_MEM_PAGING
-        else if ( p2m_is_paging(ot) && (ot != p2m_ram_paging_out) )
-        {
-            /* We're plugging a hole in the physmap where a paged out page was */
-            atomic_dec(&d->paged_pages);
-        }
-#endif
     }
 
     /* Then, look for m->p mappings for this range and deal with them */
@@ -742,7 +735,7 @@ p2m_add_page(struct domain *d, gfn_t gfn, mfn_t mfn,
                       mfn_x(mfn_add(mfn, i)), gfn_x(ogfn),
                       gfn_x(gfn_add(gfn, i)));
             omfn = p2m->get_entry(p2m, ogfn, &ot, &a, 0, NULL, NULL);
-            if ( p2m_is_ram(ot) && !p2m_is_paged(ot) )
+            if ( p2m_is_ram(ot) )
             {
                 ASSERT(mfn_valid(omfn));
                 P2M_DEBUG("old gfn=%#lx -> mfn %#lx\n",
@@ -789,7 +782,7 @@ p2m_add_page(struct domain *d, gfn_t gfn, mfn_t mfn,
                 set_gpfn_from_mfn(mfn_x(omfn), gfn_x(gfn) + i);
                 paging_mark_pfn_dirty(d, _pfn(gfn_x(gfn) + i));
             }
-            else if ( p2m_is_ram(ot) && !p2m_is_paged(ot) )
+            else if ( p2m_is_ram(ot) )
             {
                 ASSERT(mfn_valid(omfn));
                 set_gpfn_from_mfn(mfn_x(omfn), gfn_x(gfn) + i);
diff --git a/xen/arch/x86/mm/shadow/hvm.c b/xen/arch/x86/mm/shadow/hvm.c
index cf4862cbc9c2..9c46abffb7ba 100644
--- a/xen/arch/x86/mm/shadow/hvm.c
+++ b/xen/arch/x86/mm/shadow/hvm.c
@@ -126,7 +126,6 @@ hvm_read(enum x86_segment seg,
     case HVMTRANS_bad_gfn_to_mfn:
     case HVMTRANS_unhandleable:
         return X86EMUL_UNHANDLEABLE;
-    case HVMTRANS_gfn_paged_out:
     case HVMTRANS_gfn_shared:
     case HVMTRANS_need_retry:
         return X86EMUL_RETRY;
diff --git a/xen/arch/x86/msr.c b/xen/arch/x86/msr.c
index d10891dcfc86..7b62269f7839 100644
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -89,12 +89,6 @@ static int guest_wrmsr_xen(struct vcpu *v, uint32_t idx, uint64_t val)
             if ( page )
                 put_page(page);
 
-            if ( p2m_is_paging(t) )
-            {
-                p2m_mem_paging_populate(d, _gfn(gmfn));
-                return X86EMUL_RETRY;
-            }
-
             gdprintk(XENLOG_WARNING,
                      "Bad GMFN %lx (MFN %#"PRI_mfn") to MSR %08x\n",
                      gmfn, mfn_x(page ? page_to_mfn(page) : INVALID_MFN), base);
diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
index d54efaad21cd..fda4760989c7 100644
--- a/xen/arch/x86/x86_64/compat/mm.c
+++ b/xen/arch/x86/x86_64/compat/mm.c
@@ -4,7 +4,6 @@
 #include <xen/multicall.h>
 #include <compat/memory.h>
 #include <compat/xen.h>
-#include <asm/mem_paging.h>
 #include <asm/mem_sharing.h>
 
 #include <asm/pv/mm.h>
@@ -156,11 +155,6 @@ int compat_arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     case XENMEM_get_sharing_shared_pages:
         return mem_sharing_get_nr_shared_mfns();
 
-#ifdef CONFIG_MEM_PAGING
-    case XENMEM_paging_op:
-        return mem_paging_memop(guest_handle_cast(arg, xen_mem_paging_op_t));
-#endif
-
 #ifdef CONFIG_MEM_SHARING
     case XENMEM_sharing_op:
         return mem_sharing_memop(guest_handle_cast(arg, xen_mem_sharing_op_t));
diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
index 8eadab7933d0..282f35dcbd48 100644
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -35,7 +35,6 @@ EMIT_FILE;
 #include <asm/pv/domain.h>
 #include <asm/setup.h>
 #include <asm/numa.h>
-#include <asm/mem_paging.h>
 #include <asm/mem_sharing.h>
 #include <asm/trampoline.h>
 
@@ -1023,11 +1022,6 @@ long subarch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     case XENMEM_get_sharing_shared_pages:
         return mem_sharing_get_nr_shared_mfns();
 
-#ifdef CONFIG_MEM_PAGING
-    case XENMEM_paging_op:
-        return mem_paging_memop(guest_handle_cast(arg, xen_mem_paging_op_t));
-#endif
-
 #ifdef CONFIG_MEM_SHARING
     case XENMEM_sharing_op:
         return mem_sharing_memop(guest_handle_cast(arg, xen_mem_sharing_op_t));
diff --git a/xen/common/domain.c b/xen/common/domain.c
index bb9e210c2895..3c62672445ea 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1511,9 +1511,6 @@ static void cf_check complete_domain_destroy(struct rcu_head *head)
 
     sched_destroy_domain(d);
 
-#ifdef CONFIG_MEM_PAGING
-    xfree(d->vm_event_paging);
-#endif
     xfree(d->vm_event_monitor);
 #ifdef CONFIG_MEM_SHARING
     xfree(d->vm_event_share);
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 93738931c575..3296d981f462 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -100,9 +100,6 @@ void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info)
     info->outstanding_pages = d->outstanding_pages;
 #ifdef CONFIG_MEM_SHARING
     info->shr_pages         = atomic_read(&d->shr_pages);
-#endif
-#ifdef CONFIG_MEM_PAGING
-    info->paged_pages       = atomic_read(&d->paged_pages);
 #endif
     info->shared_info_frame =
         gfn_x(mfn_to_gfn(d, _mfn(virt_to_mfn(d->shared_info))));
diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
index cb6df2823b00..7f2e72f0dda3 100644
--- a/xen/common/keyhandler.c
+++ b/xen/common/keyhandler.c
@@ -281,17 +281,11 @@ static void cf_check dump_domains(unsigned char key)
         printk("    nr_pages=%u xenheap_pages=%u"
 #ifdef CONFIG_MEM_SHARING
                " shared_pages=%u"
-#endif
-#ifdef CONFIG_MEM_PAGING
-               " paged_pages=%u"
 #endif
                " dirty_cpus={%*pbl} max_pages=%u\n",
                domain_tot_pages(d), d->xenheap_pages,
 #ifdef CONFIG_MEM_SHARING
                atomic_read(&d->shr_pages),
-#endif
-#ifdef CONFIG_MEM_PAGING
-               atomic_read(&d->paged_pages),
 #endif
                CPUMASK_PR(d->dirty_cpumask), d->max_pages);
         printk("    handle=%02x%02x%02x%02x-%02x%02x-%02x%02x-"
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 1ad4b51c5b02..b7dade262602 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -447,28 +447,6 @@ int guest_remove_page(struct domain *d, unsigned long gmfn)
         return -ENOENT;
     }
 
-    if ( unlikely(p2m_is_paging(p2mt)) )
-    {
-        /*
-         * If the page hasn't yet been paged out, there is an
-         * actual page that needs to be released.
-         */
-        if ( p2mt == p2m_ram_paging_out )
-        {
-            ASSERT(mfn_valid(mfn));
-            goto obtain_page;
-        }
-
-        rc = guest_physmap_remove_page(d, _gfn(gmfn), mfn, 0);
-        if ( rc )
-            goto out_put_gfn;
-
-        put_gfn(d, gmfn);
-
-        p2m_mem_paging_drop_page(d, _gfn(gmfn), p2mt);
-
-        return 0;
-    }
     if ( p2mt == p2m_mmio_direct )
     {
         rc = -EPERM;
@@ -514,10 +492,9 @@ int guest_remove_page(struct domain *d, unsigned long gmfn)
     {
 #ifdef CONFIG_X86
         put_gfn(d, gmfn);
-        if ( !p2m_is_paging(p2mt) )
 #endif
-            gdprintk(XENLOG_INFO, "Bad page free for Dom%u GFN %lx\n",
-                     d->domain_id, gmfn);
+        gdprintk(XENLOG_INFO, "Bad page free for Dom%u GFN %lx\n",
+                 d->domain_id, gmfn);
 
         return -ENXIO;
     }
@@ -2037,16 +2014,6 @@ int check_get_page_from_gfn(struct domain *d, gfn_t gfn, bool readonly,
 
     page = get_page_from_gfn(d, gfn_x(gfn), &p2mt, q);
 
-#ifdef CONFIG_MEM_PAGING
-    if ( p2m_is_paging(p2mt) )
-    {
-        if ( page )
-            put_page(page);
-
-        p2m_mem_paging_populate(d, gfn);
-        return -EAGAIN;
-    }
-#endif
 #ifdef CONFIG_MEM_SHARING
     if ( (q & P2M_UNSHARE) && p2m_is_shared(p2mt) )
     {
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 2c4ff2c34c70..d74fc2aa9a30 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -2791,8 +2791,7 @@ void free_domheap_pages(struct page_info *pg, unsigned int order)
              * responsibility for erasure. We do scrub regardless if option
              * scrub_domheap is set.
              */
-            scrub = d->is_dying || mem_paging_enabled(d) ||
-                    scrub_debug || opt_scrub_domheap;
+            scrub = d->is_dying || scrub_debug || opt_scrub_domheap;
         }
         else
         {
diff --git a/xen/common/vm_event.c b/xen/common/vm_event.c
index cf0258223f50..e92a4fc1c409 100644
--- a/xen/common/vm_event.c
+++ b/xen/common/vm_event.c
@@ -395,10 +395,6 @@ static int vm_event_resume(struct domain *d, struct vm_event_domain *ved)
         /* Check flags which apply only when the vCPU is paused */
         if ( atomic_read(&v->vm_event_pause_count) )
         {
-#ifdef CONFIG_MEM_PAGING
-            if ( rsp.reason == VM_EVENT_REASON_MEM_PAGING )
-                p2m_mem_paging_resume(d, &rsp);
-#endif
 #ifdef CONFIG_MEM_SHARING
             if ( mem_sharing_is_fork(d) )
             {
@@ -539,14 +535,6 @@ int __vm_event_claim_slot(struct domain *d, struct vm_event_domain *ved,
         return vm_event_grab_slot(ved, current->domain != d);
 }
 
-#ifdef CONFIG_MEM_PAGING
-/* Registered with Xen-bound event channel for incoming notifications. */
-static void cf_check mem_paging_notification(struct vcpu *v, unsigned int port)
-{
-    vm_event_resume(v->domain, v->domain->vm_event_paging);
-}
-#endif
-
 /* Registered with Xen-bound event channel for incoming notifications. */
 static void cf_check monitor_notification(struct vcpu *v, unsigned int port)
 {
@@ -564,20 +552,6 @@ static void cf_check mem_sharing_notification(struct vcpu *v, unsigned int port)
 /* Clean up on domain destruction */
 void vm_event_cleanup(struct domain *d)
 {
-#ifdef CONFIG_MEM_PAGING
-    if ( vm_event_check_ring(d->vm_event_paging) )
-    {
-        /* Destroying the wait queue head means waking up all
-         * queued vcpus. This will drain the list, allowing
-         * the disable routine to complete. It will also drop
-         * all domain refs the wait-queued vcpus are holding.
-         * Finally, because this code path involves previously
-         * pausing the domain (domain_kill), unpausing the
-         * vcpus causes no harm. */
-        destroy_waitqueue_head(&d->vm_event_paging->wq);
-        (void)vm_event_disable(d, &d->vm_event_paging);
-    }
-#endif
     if ( vm_event_check_ring(d->vm_event_monitor) )
     {
         destroy_waitqueue_head(&d->vm_event_monitor->wq);
@@ -635,63 +609,6 @@ int vm_event_domctl(struct domain *d, struct xen_domctl_vm_event_op *vec)
 
     switch ( vec->mode )
     {
-#ifdef CONFIG_MEM_PAGING
-    case XEN_DOMCTL_VM_EVENT_OP_PAGING:
-    {
-        rc = -EINVAL;
-
-        switch( vec->op )
-        {
-        case XEN_VM_EVENT_ENABLE:
-        {
-            rc = -EOPNOTSUPP;
-            /* hvm fixme: p2m_is_foreign types need addressing */
-            if ( is_hvm_domain(hardware_domain) )
-                break;
-
-            rc = -ENODEV;
-            /* Only HAP is supported */
-            if ( !hap_enabled(d) )
-                break;
-
-            /* No paging if iommu is used */
-            rc = -EMLINK;
-            if ( unlikely(is_iommu_enabled(d)) )
-                break;
-
-            rc = -EXDEV;
-            /* Disallow paging in a PoD guest */
-            if ( p2m_pod_active(d) )
-                break;
-
-            /* domain_pause() not required here, see XSA-99 */
-            rc = vm_event_enable(d, vec, &d->vm_event_paging, _VPF_mem_paging,
-                                 HVM_PARAM_PAGING_RING_PFN,
-                                 mem_paging_notification);
-        }
-        break;
-
-        case XEN_VM_EVENT_DISABLE:
-            if ( vm_event_check_ring(d->vm_event_paging) )
-            {
-                domain_pause(d);
-                rc = vm_event_disable(d, &d->vm_event_paging);
-                domain_unpause(d);
-            }
-            break;
-
-        case XEN_VM_EVENT_RESUME:
-            rc = vm_event_resume(d, d->vm_event_paging);
-            break;
-
-        default:
-            rc = -ENOSYS;
-            break;
-        }
-    }
-    break;
-#endif
-
     case XEN_DOMCTL_VM_EVENT_OP_MONITOR:
     {
         rc = -EINVAL;
diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index 951f1f30b7ad..d9b1f5768393 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -26,7 +26,6 @@
 
 #include <asm/hvm/io.h>
 #include <asm/io_apic.h>
-#include <asm/mem_paging.h>
 #include <asm/pt-contig-markers.h>
 #include <asm/setup.h>
 
@@ -777,7 +776,6 @@ bool arch_iommu_use_permitted(const struct domain *d)
      */
     return d == dom_io ||
            (likely(!mem_sharing_enabled(d)) &&
-            likely(!mem_paging_enabled(d)) &&
             likely(!p2m_pod_active(d)) &&
             likely(!p2m_is_global_logdirty(d)));
 }
diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
index bd9fc37b5297..65ff524016d7 100644
--- a/xen/include/public/memory.h
+++ b/xen/include/public/memory.h
@@ -377,7 +377,7 @@ typedef struct xen_pod_target xen_pod_target_t;
 #define XENMEM_get_sharing_freed_pages    18
 #define XENMEM_get_sharing_shared_pages   19
 
-#define XENMEM_paging_op                    20
+#define XENMEM_paging_op                    20 /* Removed in Xen 4.22 */
 #define XENMEM_paging_op_nominate           0
 #define XENMEM_paging_op_evict              1
 #define XENMEM_paging_op_prep               2
diff --git a/xen/include/public/vm_event.h b/xen/include/public/vm_event.h
index 3a86f0e208f1..51581f96a76f 100644
--- a/xen/include/public/vm_event.h
+++ b/xen/include/public/vm_event.h
@@ -130,7 +130,7 @@
 /* Memory sharing event */
 #define VM_EVENT_REASON_MEM_SHARING             2
 /* Memory paging event */
-#define VM_EVENT_REASON_MEM_PAGING              3
+#define VM_EVENT_REASON_MEM_PAGING              3 /* Removed in 4.22 */
 /* A control register was updated */
 #define VM_EVENT_REASON_WRITE_CTRLREG           4
 /* An MSR was updated. */
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 00db1da12f21..ef60d4438b0c 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -426,10 +426,6 @@ struct domain
     atomic_t         shr_pages;         /* shared pages */
 #endif
 
-#ifdef CONFIG_MEM_PAGING
-    atomic_t         paged_pages;       /* paged-out pages */
-#endif
-
     /* Scheduling. */
     void            *sched_priv;    /* scheduler-specific data */
     struct sched_unit *sched_unit_list;
@@ -600,10 +596,6 @@ struct domain
 #ifdef CONFIG_MEM_SHARING
     struct vm_event_domain *vm_event_share;
     struct domain *parent; /* VM fork parent */
-#endif
-    /* Memory paging support */
-#ifdef CONFIG_MEM_PAGING
-    struct vm_event_domain *vm_event_paging;
 #endif
     /* VM event monitor support */
     struct vm_event_domain *vm_event_monitor;
@@ -1011,9 +1003,7 @@ static inline struct domain *next_domain_in_cpupool(
  /* VCPU affinity has changed: migrating to a new CPU. */
 #define _VPF_migrating       3
 #define VPF_migrating        (1UL<<_VPF_migrating)
- /* VCPU is blocked due to missing mem_paging ring. */
-#define _VPF_mem_paging      4
-#define VPF_mem_paging       (1UL<<_VPF_mem_paging)
+/* Bit 4 unused */
  /* VCPU is blocked due to missing mem_access ring. */
 #define _VPF_mem_access      5
 #define VPF_mem_access       (1UL<<_VPF_mem_access)
@@ -1248,12 +1238,6 @@ static always_inline bool is_iommu_enabled(const struct domain *d)
     return evaluate_nospec(d->options & XEN_DOMCTL_CDF_iommu);
 }
 
-#ifdef CONFIG_MEM_PAGING
-# define mem_paging_enabled(d) vm_event_check_ring((d)->vm_event_paging)
-#else
-# define mem_paging_enabled(d) false
-#endif
-
 extern bool sched_smt_power_savings;
 extern bool sched_disable_smt_switching;
 
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index b8fd7aeedd9e..68c6e81b70a8 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -648,14 +648,6 @@ static XSM_INLINE int cf_check xsm_mem_access(XSM_DEFAULT_ARG struct domain *d)
 }
 #endif
 
-#ifdef CONFIG_MEM_PAGING
-static XSM_INLINE int cf_check xsm_mem_paging(XSM_DEFAULT_ARG struct domain *d)
-{
-    XSM_ASSERT_ACTION(XSM_DM_PRIV);
-    return xsm_default_action(action, current->domain, d);
-}
-#endif
-
 #ifdef CONFIG_MEM_SHARING
 static XSM_INLINE int cf_check xsm_mem_sharing(XSM_DEFAULT_ARG struct domain *d)
 {
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index cc32a6c09104..e9cfa0ada5fb 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -159,10 +159,6 @@ struct xsm_ops {
     int (*mem_access)(struct domain *d);
 #endif
 
-#ifdef CONFIG_MEM_PAGING
-    int (*mem_paging)(struct domain *d);
-#endif
-
 #ifdef CONFIG_MEM_SHARING
     int (*mem_sharing)(struct domain *d);
 #endif
@@ -655,13 +651,6 @@ static inline int xsm_mem_access(xsm_default_t def, struct domain *d)
 }
 #endif
 
-#ifdef CONFIG_MEM_PAGING
-static inline int xsm_mem_paging(xsm_default_t def, struct domain *d)
-{
-    return alternative_call(xsm_ops.mem_paging, d);
-}
-#endif
-
 #ifdef CONFIG_MEM_SHARING
 static inline int xsm_mem_sharing(xsm_default_t def, struct domain *d)
 {
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 244ef557528b..e35b6ae3dc33 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -119,10 +119,6 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .mem_access                    = xsm_mem_access,
 #endif
 
-#ifdef CONFIG_MEM_PAGING
-    .mem_paging                    = xsm_mem_paging,
-#endif
-
 #ifdef CONFIG_MEM_SHARING
     .mem_sharing                   = xsm_mem_sharing,
 #endif
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 28522dcbd271..b0026f91c045 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1340,13 +1340,6 @@ static int cf_check flask_mem_access(struct domain *d)
 }
 #endif
 
-#ifdef CONFIG_MEM_PAGING
-static int cf_check flask_mem_paging(struct domain *d)
-{
-    return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__MEM_PAGING);
-}
-#endif
-
 #ifdef CONFIG_MEM_SHARING
 static int cf_check flask_mem_sharing(struct domain *d)
 {
@@ -1934,10 +1927,6 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .mem_access = flask_mem_access,
 #endif
 
-#ifdef CONFIG_MEM_PAGING
-    .mem_paging = flask_mem_paging,
-#endif
-
 #ifdef CONFIG_MEM_SHARING
     .mem_sharing = flask_mem_sharing,
 #endif
diff --git a/xen/xsm/flask/policy/access_vectors b/xen/xsm/flask/policy/access_vectors
index bbb9c117ec4a..9d51a1d4f74b 100644
--- a/xen/xsm/flask/policy/access_vectors
+++ b/xen/xsm/flask/policy/access_vectors
@@ -235,8 +235,6 @@ class domain2
     soft_reset
 # XENMEM_access_op
     mem_access
-# XENMEM_paging_op
-    mem_paging
 # XENMEM_sharing_op
     mem_sharing
 # XEN_DOMCTL_psr_alloc

base-commit: 2611377cf9c92b43b04a33810f03fa07bf8ba954
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 07 17:49:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 17:49:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302952.1576588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL2qW-0004lQ-CA; Thu, 07 May 2026 17:49:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302952.1576588; Thu, 07 May 2026 17:49:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL2qW-0004lJ-8h; Thu, 07 May 2026 17:49:12 +0000
Received: by outflank-mailman (input) for mailman id 1302952;
 Thu, 07 May 2026 17:49:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wL2qU-0004lC-NH
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 17:49:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wL2qT-002uOe-MO
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 19:49:09 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fcd092-5cb7-0a2a0a5109dd-0a2a4502a070-2
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 19:49:09 +0200
Received: from [52.101.48.26]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fcd093-af86-0a2a45020019-3465301a1fa3-4
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 19:49:09 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN9PR03MB5993.namprd03.prod.outlook.com (2603:10b6:408:132::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Thu, 7 May
 2026 17:49:05 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.017; Thu, 7 May 2026
 17:49:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mnrWmWKpdq2TaZqEOkxs4H4xAse3jsSZnaST0CuQIHhCzL9u2svL63MBqXLJX0oiDLZ/dvji295/Cn2rugksZOkEo0ahVW1s0KRtfft5y5DFTST2IXCxFze5mmNwe3dwPjCgiFTxwczNeMozISO8fPtT9z6isPRhWk7bGyu0mkb/Y6bDEtS0gjoivVTBDPuCH/mGNkhgOSFXsV7qqKKBkFQjnSXzgnlRYov2Rx8Zb/DUbd2U+dO1k4RKOEdUeEVPy4TImCDCG1vaop5gcMgQpYHmyG7N7Rc4x+Zwal/4DycMSx0UUGL02qlnNd4o9MzyGl8fh5wy00HF57ZZIqBApQ==
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=WUJvHswL5hC4I7JHD2mznkJvtFeBJW0YB2Q4+MCApFk=;
 b=pj+EF7mLbQ8PypVCeRdBbEN7H4CAH9wiecfolG+wDrAxUU7W059q348cfIkZkG00OzO712Vhiu4g2c1u6g4Hbf1K/pf4tLvJyDR3kfKE/JjFe9Ci4alVh/eWuxWVs/qML78xNFA+OJzlR9HwhuXYVcHSQHduMyi3A5MOJg5k2sfTaQvVPKm3sb2awcaGwWtfNJOEAzMyjc9YXrfHKfsrTdD8pYWeuMaLK6vtJ4p7iPhuba0TBjSmh8qYfurx+Yi3eUNEgBNFhuLeCyQCWazr1fnYe6sOBqBTC2Fyy43iYRgTwEg9qAsri/S4jplEUx2KwXHIvSn/7ebPFK96QugQiA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WUJvHswL5hC4I7JHD2mznkJvtFeBJW0YB2Q4+MCApFk=;
 b=vypwg5IWg6jFmbsf65bWsbsYqSSzKCBsWEuRZGqR11r+d1c3Vs/C+tNDZ4DC9R8AJv4ir+0y0owugeTj882KrhFZufloCPR8Xt0hXTpH45ixNshlCiR8nh1wyzeSxMT3IbQRCJ9Au97dXxzXvObBsgkiKTldnz4VK0E1uwagTak=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d7e4d96a-ae5c-4438-9481-09ca1aa50402@citrix.com>
Date: Thu, 7 May 2026 18:49:00 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Rafal Wojtczuk <rafal.wojtczuk@7bulls.com>
Subject: Re: [PATCH] gnttab: simplify (replace) gnttab_set_frame_gfn()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <c4ceaab7-3d5d-4923-bc27-f67d1510048c@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <c4ceaab7-3d5d-4923-bc27-f67d1510048c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0690.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:37b::7) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BN9PR03MB5993:EE_
X-MS-Office365-Filtering-Correlation-Id: f46dc663-593c-460b-c6db-08deac60ee1d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|1800799024|366016|22082099003|18002099003|56012099003|3023799003;
X-Microsoft-Antispam-Message-Info:
	/oP79IzgeNAQtGO0O6kFHrl0qXpAfcNdSWREND82cLG6FE7Vfs20pq8sN3y5BW+gokci/DtyC3nBXqzYv/t2sKZpfijSDVTILBOExkI/dRsZwrJZTlu7byEHRbnwYObQ47Ew093T5LnbcNVa3zIr5zFVJnogzYUhqphUWSzrZpoBCSojlU6j6UlCbPmQaew8GhNW//WDXAd7u96cE59ojf2Sjll9RN9vgeo636/2qEnI78ard/YH/IOsfVtFFqYzFXoNpqyKeyTmsn+dDAcJo2FJN3yR22VrTTR2B3+6YmVKfclhrnESuMhD1HdMA7DL/pGzexkZoVbnPi95gYm02qWbO5V1RBTpl862ABmDuXIywFj1odwrxKZyBDfHNXxC2KG//pLNeIaR8mkW4nZdUM0FOngP48DNNJrKoc0dNu9ZHlmXae20Q9PvzVqLR4hhyz1ig5bd1iasgMyhwJtYkmOBcAG2TwMUKk4J1Fe7Ca04BqIrG0dnFAb83niaUugQAESAM1oXHJ1dlagVxOX1kzoSjqljkZ1uFxts0efoKAmrQ3Qkg0WizEHRoymbW1qZ14WWXNXrTTrVtXKqx+ENS9p1+xQVbNoQGVnBSLxV1RcXVvkB1N0TfUj/YspaDXCZAAQNkK5ZDLGxSfmENGsPJC6F5izXpkNrdieJLjJ+B13QzVka2jcROOEjaqt8DRqL
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(22082099003)(18002099003)(56012099003)(3023799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NDVDYnhsTVhjamxGQmw5dmowMHUyN1lJcUJqaEdvY0dJaXZlNGQrSkRuQ3hp?=
 =?utf-8?B?c0IwQXplekxMaHlHZTg5TU8xSlE2OW5QbTdSdEJLNGhvSndMWGpSRmNSMjl1?=
 =?utf-8?B?ZWVFMkVqK2c0TXBqTmFzZS9ueDRZcE0vRGpOZ0lsRlRsV1BYQXdKK084VUVs?=
 =?utf-8?B?cEVDL0N3bEgrQW5CdnpMOXJvS1RHdTU5cWNLTnZ3Sk8zcU15VDgxTStGMnpt?=
 =?utf-8?B?aURwSkhGVHBrcTIvQTlXUTRpOVljdFVvS3B5QjZ2cTZFWXk4emN4YUhuTXk1?=
 =?utf-8?B?cGFJT2pPdU1JSld5S1BkSGZaanFuRFU4YUFhOCsrM0FnRDc4Tldpa01vQmpX?=
 =?utf-8?B?bWpGcnE2OGszUXBUcks1alVRZGFIdUMzNWN3ZkRNUTFzenhLY0plRXFZZ3Az?=
 =?utf-8?B?Uk1ySEc4MjFzQU81THg2Q0ZUWEp0T3dBZTlpa1ZqR21FUjN0TU92SlJVVW91?=
 =?utf-8?B?UXFkYWQ4dWovT3B1ZjJiZGhDUDVyOXVndEdYNDlQc2xvdnpXRE5TSGd0UXIy?=
 =?utf-8?B?Y0tCNGppSFd1aWphdERRamVoU1l6eDcxN2RZV0xjQS9NYmhNdXJPU3lDZXNB?=
 =?utf-8?B?QWtiTUJHejZtNG0xbmEzOUlzYkgzOCtaZm5xZ3Qwa1dEL3cweXR6bnVCOHZk?=
 =?utf-8?B?TWYrc1hUbGJUY2lvL1YwV1Eyb0k4YVVzazRDYm5CRU5nSkF6YnNYT09ISVZN?=
 =?utf-8?B?alUzNEF1MUNiNTcxamxybERhQ3hxWlV4S1hxRE94bkZBMCtSSnB1OWJ2YXlU?=
 =?utf-8?B?eVhMVUJvYVA4cXpBeGxzTWRXcEFnK1NHZkF3OTZjcUhBZGJqbVdnSnBMTnhx?=
 =?utf-8?B?aG12K3dNQkdJWmdlbjYyUnErSHVqYXA0V3FZc2JHNU10MnZSVmUxeDIzYTlw?=
 =?utf-8?B?U0o2NGZINEdUVUd2OVAxQmNSRE5lQjA2ZlgvenROZ1pXUVdvcjVTQXRYTnIv?=
 =?utf-8?B?WXFDOVZ5N1UrS3VFVWIyN1hITWtMWjNNSmZEak5zblVnNzk0R0xlRmhNNW52?=
 =?utf-8?B?NDlQSXZBTzFDaERwY1F2VFZ4aE1UTlJFT3dRbkZIOVlSTmxUWVRpelA3NEVK?=
 =?utf-8?B?c2E3TDlNcjVBamh3cmE0U2piNXdmaVJ5d1hnUWplMzdXT1B0WUZlV2F1Yktw?=
 =?utf-8?B?V3pVQ2JQUlg0eks5ZDdXZ2lyUlpQNlB1RDB1bjVxdVlySUZKWUkvQjdJeDV1?=
 =?utf-8?B?ZzJUVUVyZFN5U1JvN09RRVhwVk96K2tQSmhRaU9NQjRhVE1OWUQyZlNWR2Mz?=
 =?utf-8?B?eGlEN0VrRXhhZmJyUVAxQXJubkhxTkhTblJ6WitQTjFZenVsZ1RHY2x0amJ1?=
 =?utf-8?B?dlNkdEYrK1RydTV2UHhINm5DcUN2NyswekEvNkZWTVAyRjduL0Y2eFJoTEhO?=
 =?utf-8?B?VXdJNmRtZHQyVGo4THY5U1E4QWpxd2dSRW5oaXFwQ1MwK0YrZ3dNMUJ1YlFJ?=
 =?utf-8?B?WFZzZnE5VERwUzJPMzIwdGxXMml2SUhNUVdrVXJkWml5VTU5WklUS3dvSENa?=
 =?utf-8?B?R3FaSTdYbG5DcVEwWnVaM0ZDNFcySlQ2YnA1Q2ZFTkRxRlFnRWwyS293eVF1?=
 =?utf-8?B?M0hoVDZQYnBvWGsxVFRHUjlVOVozR0J0dlNlNmlSeGkyM1ZESy9ydUlSNDlk?=
 =?utf-8?B?cFI5ck11VFZsajRqOWVMelUvWUVoZ2o4SWd1N1A1TWZvcS9jakNjWmhUd3Vo?=
 =?utf-8?B?VldxSG1BTGR5dnFub1pISm13b21YOTladThnMXZXMTEvVmtGUFB3VEZlckJi?=
 =?utf-8?B?UHZMSjJMWktJd2VlcWgra21UYUwzSWhYV2hpM3BNVFFwK0E4SFJGZTlwZFkz?=
 =?utf-8?B?SVlTOHF3T2owTkgzVURvZjBQTHFwUW5JMlRzR0ZyR2wyRyswODVhaGx5Witm?=
 =?utf-8?B?dHpYVmx2cVdxaUR3aGxSMmdZOGVqOTluNlM2M3A0QzVBc2VkMy84cFRFeFRE?=
 =?utf-8?B?Z3QraFQ4cExDakZrNHpjNFI0eDIxOHNKamp5REtiVnlOTFJBbUVXQ3VIbHFV?=
 =?utf-8?B?Q21SYUMxbmNzcXBnZTVpTXNjTVJ0Rm5MdXhlNUtqTTBQUm01WHdJbENtcGg3?=
 =?utf-8?B?R0kvTWsxSXNDZTBzKzlrN1ppYTF1WC9XaGRSSzlMYldXVlVHUkx1SjQ4NWM2?=
 =?utf-8?B?RjdZYXBFTE9LbDBnMUZzdWhPbExrRGlNTnlNMDFibmhNcTZ1TmdyNWN1OWpB?=
 =?utf-8?B?aXZteERVZVpoUlhBNU1vUGJNdkVmenMwNlU3KzAwSjNQUjFlYnFoZG9SVE9y?=
 =?utf-8?B?WjlHdTJMZWlsU2ZnTFQ3WVUxQ216eUR1WXJNMDZHajV6d3Q3bUFockZhU1Bi?=
 =?utf-8?B?ZzlObWJGZFNzdkIxYWtZZ2ZYZU9La1pSd2pFUjREdUgxT2pQTHFkOXV2c2pZ?=
 =?utf-8?Q?AO97vyuPa8QS1Akw=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f46dc663-593c-460b-c6db-08deac60ee1d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 17:49:04.6187
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OPeZ0Rbz4/4lO6X9XvQFiGdCuwi/TF+UzL+58NJADwjiMPTbq/nV+ZcVEKFghsdE1/YuWVx3td1gDmWMqnCNPEtiG+p9wI1s1Bv+baIb2k8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR03MB5993
X-purgate-ID: tlsNG-720697/1778176149-A917D161-CBF6F856/0/0
X-purgate-type: clean
X-purgate-size: 3998

On 07/05/2026 12:41 pm, Jan Beulich wrote:
> It's not really doing anything for valid GFNs, which renders its one use
> site pretty pointless. The other isn't so much about setting anything, but
> rather about clearing. Rename the macro accordingly.
>
> The main point here, however, is about Rafal spotting the double
> fetching of the GFN (first in gnttab_unpopulate_status_frames(), then
> again in gnttab_set_frame_gfn()). Re-purpose the macro parameter to pass
> in the already fetched GFN, while dropping the no longer used parameters.
>
> Suggested-by: Rafal Wojtczuk <rafal.wojtczuk@7bulls.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Do we even need the hook anymore? It has been expanding the same for Arm
> and x86.

At this point, I'd say no.

The macro has changed contents several times since it's introduction. 
The grant table macros especially demonstrate how poor the common/arch
interfaces are.


>
> --- a/xen/arch/arm/include/asm/grant_table.h
> +++ b/xen/arch/arm/include/asm/grant_table.h
> @@ -50,12 +50,8 @@ int replace_grant_host_mapping(uint64_t
>  #define gnttab_dom0_frames()                                             \
>      min_t(unsigned int, opt_max_grant_frames, PFN_DOWN(_etext - _stext))
>  
> -#define gnttab_set_frame_gfn(gt, st, idx, gfn, mfn)                      \
> -    (gfn_eq(gfn, INVALID_GFN)                                            \
> -     ? guest_physmap_remove_page((gt)->domain,                           \
> -                                 gnttab_get_frame_gfn(gt, st, idx),      \
> -                                 mfn, 0)                                 \
> -     : 0)
> +#define gnttab_clear_frame_gfn(gt, gfn, mfn)                             \
> +    guest_physmap_remove_page((gt)->domain, gfn, mfn, 0)
>  
>  #define gnttab_get_frame_gfn(gt, st, idx) ({                             \
>     (st) ? gnttab_status_gfn(NULL, gt, idx)                               \
> --- a/xen/arch/x86/include/asm/grant_table.h
> +++ b/xen/arch/x86/include/asm/grant_table.h
> @@ -32,12 +32,8 @@ static inline int replace_grant_host_map
>      return replace_grant_pv_mapping(addr, frame, new_addr, flags);
>  }
>  
> -#define gnttab_set_frame_gfn(gt, st, idx, gfn, mfn)                      \
> -    (gfn_eq(gfn, INVALID_GFN)                                            \
> -     ? guest_physmap_remove_page((gt)->domain,                           \
> -                                 gnttab_get_frame_gfn(gt, st, idx),      \
> -                                 mfn, 0)                                 \
> -     : 0 /* Handled in add_to_physmap_one(). */)
> +#define gnttab_clear_frame_gfn(gt, gfn, mfn)                             \
> +    guest_physmap_remove_page((gt)->domain, gfn, mfn, 0)
>  #define gnttab_get_frame_gfn(gt, st, idx) ({                             \
>      mfn_t mfn_ = (st) ? gnttab_status_mfn(gt, idx)                       \
>                        : gnttab_shared_mfn(gt, idx);                      \
> --- a/xen/common/grant_table.c
> +++ b/xen/common/grant_table.c
> @@ -1844,8 +1844,7 @@ gnttab_unpopulate_status_frames(struct d
>          {
>              int rc = gfn_eq(gfn, INVALID_GFN)
>                       ? 0
> -                     : gnttab_set_frame_gfn(gt, true, i, INVALID_GFN,
> -                                            page_to_mfn(pg));
> +                     : gnttab_clear_frame_gfn(gt, gfn, page_to_mfn(pg));
>  

This is just a more complex way of writing

    if ( !gfn_eq(gfn, INVALID_GFN) )
        rc = gnttab_clear_frame_gfn(gt, gfn, page_to_mfn(pg));

~Andrew

>              if ( rc )
>              {
> @@ -4285,8 +4284,6 @@ int gnttab_map_frame_begin(
>           */
>          if ( !get_page(pg, d) )
>              rc = -EBUSY;
> -        else if ( (rc = gnttab_set_frame_gfn(gt, status, idx, gfn, *mfn)) )
> -            put_page(pg);
>      }
>  
>      if ( rc )



From xen-devel-bounces@lists.xenproject.org Thu May 07 18:49:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 18:49:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1302998.1576596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL3mw-0004XS-Lb; Thu, 07 May 2026 18:49:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1302998.1576596; Thu, 07 May 2026 18:49:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL3mw-0004XL-Iw; Thu, 07 May 2026 18:49:34 +0000
Received: by outflank-mailman (input) for mailman id 1302998;
 Thu, 07 May 2026 18:49:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wL3mt-0004XF-KD
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 18:49:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wL3mr-00E1pv-Up
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 20:49:31 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fcdea0-bab6-0a2a0a5309dd-0a2a450cd988-14
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 20:49:29 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fcdeb6-62f1-0a2a450c0019-94a38ff105d2-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 20:49:28 +0200
Received: from pps.filterd (m0482515.ppops.net [127.0.0.1])
 by m0482515.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 647HtY2H836176
 for <xen-devel@lists.xenproject.org>; Thu, 7 May 2026 11:49:26 -0700
Received: from sn4pr0501cu005.outbound.protection.outlook.com
 (mail-southcentralusazon11011028.outbound.protection.outlook.com
 [40.93.194.28])
 by m0482515.ppops.net (PPS) with ESMTPS id 4e0yjmgj64-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 11:49:26 -0700 (PDT)
Received: from PH0PR07CA0014.namprd07.prod.outlook.com (2603:10b6:510:5::19)
 by CO6PR16MB4099.namprd16.prod.outlook.com (2603:10b6:303:a6::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.18; Thu, 7 May
 2026 18:49:23 +0000
Received: from SA2PEPF00001504.namprd04.prod.outlook.com
 (2603:10b6:510:5:cafe::4b) by PH0PR07CA0014.outlook.office365.com
 (2603:10b6:510:5::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.15 via Frontend Transport; Thu,
 7 May 2026 18:49:23 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 SA2PEPF00001504.mail.protection.outlook.com (10.167.242.36) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Thu, 7 May 2026 18:49:23 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 647Gqpre1175075
 for <xen-devel@lists.xenproject.org>; Thu, 7 May 2026 14:49:22 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4dwyq567vr-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 14:49:22 -0400 (EDT)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id L3mhwvy9s7HbfL3miwXunr; Thu, 07 May 2026 18:49:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=fail header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=/ws
	8l+9jhr+C2CzzVzi/VmIUfNL4bzsMGykxr9pw5Sk=; b=jrapVTPuaummudmVD4X
	FeKKb/MbltievKMiXUi/t1ElMeoAbkoawa/J3tlO3h2KNr7p450G3BfszS22Xh7m
	YNzxNUQMR/Aqc25cQuRkoFsW6jkjTnwRbnyaBvPrIUYDQdefdq6a4WM4P5Ipalvb
	RqHrlEAFFGoK0IdyRKA8oNxZuiYYIuZeLMxgen68f/+hfTj9M16OwVKQyTDkwOwx
	zyJIt8hZSR+NCkubucybgUH2/sRYMDlcCbz1YeNa/wF+VNOffMry5iFfeHT+4MJ8
	zGKZ6S7yGw5p9FNJUQhRXn7Hkn/w0x6LaecwbOo9GDXvWZNxMuJX8AAbKUaPZytD
	7vw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rnAgJL8KOeb8+yMHggcdVz15VfEEsuA/8h/LEnfjLAP6LHpSkmKersGiVKqXp5fK06B/UBoWqOFSMgqVWktOPB5hDfl1niIur+9eslWVqVzPN+Ye98eBmVep1r0jrHWq3OmayI6bslOg5twQpvT3zJ9H0BZxmb6MbXAiDvEUWbEY/7+sKcxVmYen92FmQ9ovzUJkZlDZepddIb+IuGebbqHwzQwNS8RwhgJPj0SgV/LKmZ8+ga/74PWj58vyOlj8r9A8Q6kusTBEnVudA73lFSBK2IviYpBxm7jDO1O0vtgYWCipBUSJud9hwQJkBbQdMst5GiVBm/rZ7q7H1TaX8w==
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=/+/zsz5NkZVlosqx3ogJbwR4Y2x6fseFVXneQOSgoe8=;
 b=CPMVV7F03RYAJaN/A8S3g5mjTyOk5gSpaAxh1bIPu0t5nUCEaxUSNfMyHmZD1L53BeUliq8dv1tsbW8ey1zMjYk33suM+huIM8Ik3PEHHrISvgZ4iDVwneOHhdxQYWfoHqc1JYUJH9vFXor8xQW3nVdjSUyMJSy088hOqpLqbAgKt2qUDGrsjlKSBiFjRz+Qp3UIAz+HBR9cu5exiumPsGyoImiUcUHjf40G4C1QoVjylHEP4k1yVS/fOw2jAuMM+gxoqaGdNtxQcHEA1SMJkxWKFqA9V7q/p1inOriHVqRLZvDkEmzIjx+QubaW9luE6skNQ7TSMFxwdU9sI5M3QA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/+/zsz5NkZVlosqx3ogJbwR4Y2x6fseFVXneQOSgoe8=;
 b=WwLsUM93mdgQGl878m9+v1EdwoK9yOs2lC2E+vJoOoHRFzZmU5v2UBxkG8brNBCwu9UwJIg0mUyUDhtsKxq6Lf/j1wB+7URUHu+Y2/0hCJh6zfijvMUxAgcmNu9HYW3bhcLqnzi9WzNl2MQx1o59C/kYeIM4FkwhPHZUlH5dBhE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:content-type
	:date:from:in-reply-to:message-id:mime-version:references
	:subject:to; s=ppserprodsaar; bh=/ws8l+9jhr+C2CzzVzi/VmIUfNL4bzs
	MGykxr9pw5Sk=; b=o1Lf3AWR/HxKk5nTPUt6xbCjVvZMsRYEZM+MzbffBOihd3V
	K4j7jNzB1PDnfQvhL19bQEqjI4q73ZoML3YjqUSlYiONOnOQy8Tf2jpCCje+Wr2W
	hezdO776sttf693+6tLOcVZqaAdQA6gQAEc88uCfz4g3sn5VMP9rwPZ/N962iH90
	EzY+mAP1FpBlId4IgBQz+BOp23uZMcd/+IixjB0iL9wHRlmhot7H+MwlzzhshwRE
	yqHG4sqQJCnsJzAX8DVlmTlCDiL7iq2tGWYonKzz7UpnSE61Kn9oLkEcOWz20z4s
	pRgwAJ+gq+1k2URT7jU4DcV4Z8pmv2bpe1bG1aQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppfserpocford;
	 bh=/ws8l+9jhr+C2CzzVzi/VmIUfNL4bzsMGykxr9pw5Sk=; b=q/Nbg1nS7GLS
	S7tU4LwU2nxwLhfI2RruLw51nDnZZsWXUxvCpM4raZusc+g+IcDhYwuOAQ3vmP6Y
	fQmKzX9LRlX5rhyPZRXCXmqx1dSUcE24JvJXIPSqEnxDGLbx1UUr+VBZ5r+ZeiZ9
	h7jdNWPYFkvw/I1p+geqDKzLVMaJ9SY0yNQIzJrWn13B/+EW7gSbl8jlH/YmkCd5
	Vzl93Ml761qbvh1VmzA+j8Fcb82yOrK44vPhKKbSokFDPbzJofXEwSCNV+4BwJHm
	8K8hfa9Jumbdw09ERReKeIdf/eqpdrMJJupH8JgH13xSMKetCf+WLHBVAzlf9uqj
	Y9ThYuAdoA==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: L3mhwvy9s7HbfL3miwXunr
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Thu, 7 May 2026 11:49:18 -0700
To: =?iso-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org,
        dmukhin@ford.com, Andrew Cooper <andrew.cooper3@citrix.com>,
        Anthony PERARD <anthony.perard@vates.tech>,
        Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
        Julien Grall <julien@xen.org>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 1/4] xen/public: introduce DOMID_ANY
Message-ID: <afzermFPg10iSxqy@kraken>
References: <20260423080840.530547-1-jgross@suse.com>
 <20260423080840.530547-2-jgross@suse.com>
 <bf54e159-c4ad-47e4-a6a8-574af834ac9f@amd.com>
 <ffc85ac6-2d32-48fe-a066-a8477fc085ff@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ffc85ac6-2d32-48fe-a066-a8477fc085ff@suse.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-07_02,2026-05-06_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 adultscore=0 phishscore=0 lowpriorityscore=0 malwarescore=0 suspectscore=0
 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound
 adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000
 definitions=main-2605070190
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00001504:EE_|CO6PR16MB4099:EE_
X-MS-Office365-Filtering-Correlation-Id: d6ca51f7-437f-4f55-b832-08deac695b09
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700016|82310400026|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	SiRhzBcJ6SFa39YQnfodO9+MFhoLXpmJkaRUNPb8J9ePbtMUx6NEURArTyv7hnjgCEH8CmC2XJXwTt5iYTyJ1EC6OlxV0d+jF0V1obgfl6O0buWRcJGC3RjMU4JP8aGBPtC+tSWX8sRcTOuyW1KbvK5ZS31scGUQ/Gp5HIYcPl7jpmVY4IwjP5cS4o/aqmNhNW6y6jJYNdzQKbKZFmFJozLmhrH8q+tLJcevQE5aAPU/2hLl2bMRRX7USd2xmIVrCVzAAo203dHpu+3anSDXwYjEYai4IxptVrupMyd6tS2Hu57DZPt4lAypwPJ4yY/SxShgFKqnvySFW4iBsOaNjUkdEXoK3mDiwXO3pc0GCg7KdoXenjGVvenreWjXlxiCB1hjG8EhVKQgjuJKMtT7OrdQIFCCaYrNvAiUK6kzOrVP/CXZ1n32mmOQOdT0SRB+EkzEUS9coMMKGaenitklxZQzH947wCU8uSO3rSjRBCrSXbimG3B8h/F38h0/XDlKddjDsjVkx/vea+BmyrwLPCURnWNaoysxY46Jbe5dnVC4UzKb/zRPZITHFuFMUrifvh94Ws+UOXh5QO9mjrEsO/YMkLCXV7UPwZzxElK43yBQLn4MPoDWH//Ti3JZT8x3VnLvnbuxsObZrmisEgNUQB6l0VlGKwko0yC9AjZpTv5M6r3MzqRe+e/WLB1qL9Dxkkb9CQLBfQXSCgVY3IuowUXle5I8v02e56woaXXGf8Y=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700016)(82310400026)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	5sPxScjS4FtwW+9VI/qYHU5i66G6r+BVAggPZrXD8hU/6+hHGTUxwKDL0FUBHRgHiBqrdnetplEK7++wEL5ks275hiTGxJ78ei2SDn7vcgY5Mr6I21GywV/lO201Yy6L+g/91zaVouGlPfhMoO5b/t+9wMPOj7V3ALU6nx+thI81be4hypCQTcrTgtr11gdCzlx2m+yEWoYDml0+KpXJGv+ixZwgciJ9Zyl9gDvnu3uSP4L0DFYEz4ATWs473r6IY9yGb9p+Vw2RMovNziQBv1AchJPy560Rm5o/e4axJ9fhPTjur2qEJyRUquGhSG2cQWQO1n4I2YMHmk1HCHn4Uda4xhSOfZzKdUZNH3W7pzQO6kyaZyAj7Seqnhf0mRBi3FLPR8wQhpA3bhYJr1sMP3GYJmxl7wkR+LADfKXfu1GnvEolScaXN6pDc06JrlON
X-Exchange-RoutingPolicyChecked:
	fDa15GN4wtXLjL0V6bHmoRAmwK8uL9lZVM+Xc+gAiX/1jld7wsdLTcD6Pv7umOi25a73fnRHnGMODouypKDaJdut3N8mVh4WliCHDcEPucc58a9ZdQLJH32kgD9ebRTnVZr66L94pxt+LpSOhOqQqHUuVXAr8TuSnXmz8bsH+UycomhHm3dqUQvNfX/v8UN8wYZFETloBHvFQn1FhGgZwN8HzWjvqIZnfN3J5HYcB2NogRNm1l+pR0WrUgS6ebbav+TLt33GUAwKiSb4/BK9H8UevGXh1VpyEHovMFH7dL+LORJxKICUUd7RlibNOr6es4Hzcmbga22TFgDhYwYUBw==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	vYUqWn0YEFQS6nuI6BoOsyP1lx44w3etinJvboe6kzDdunxF711BsxGwzcZLjIkdNbkhaZumvbMN386hmzJlChiTBZw4M7sHCf3ARdSrQVImv5TNt9Hhs7XqwmzngBOL9Hv3yxszpVO4lWv7zwfP1yfHZl0pqPA1vtkfKoWpU1yxtWA3lptHqWdY+XN7ptzJ1zQJyZ/tNzhMPfLEzaWkezfSykjIM48rVWH81me5O6ep26Mi+84MODDA9mCCb1hx8YWGDhgFQMlxm7eNJ8LoFRxkSG+SiJIAwovvKdklXiK6rYBfakOKL+OzIKBvcfp38ykBOmkTS9Z478r5OLfIG7C/prdwAXXnfKpwzwTM9RX608OgkLeRX3nB8CrmY1ASSo+4VXj7tgdLxo8rbaxk4YVfqma8CQh3sx2rcmy7YSHyvSFHiqxveg7khkffx/hxN61Ryg8dK4if3lGPNU3BPcigCWZsHRFUIXmgU2lXBMy44yWhdA9rqQsEijTtm967AY7ppG/6rX3cB6QlKZobqlDtbY17U3mitol3f3Lyf7qFKbodUXhlMNJ0NKauUO6C6YcscBXXccvPrGkyH7t05gfLmx4uwDXgo8y072YdDW6vlLCsXUtExJkifuoIPJHV
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 18:49:23.0058
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d6ca51f7-437f-4f55-b832-08deac695b09
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00001504.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR16MB4099
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDE4OSBTYWx0ZWRfXw1J7nX9tyipk
 YqKXi6RNJhbZfW6v7q9RJWI4qnHNjXy/weczZ9awh082lTNvY+hw1MmMcQrZqZYZtVuwuHyLYW6
 gwxVas9U7HJk/MyXqLuj8Kqcj6oh0oskcULX12fxL2IGK0o6HYlIoXwnJCJbz39p1BLxzbLAhNJ
 xhMYHZynYGgNdTOLWfbWGwxEgz7bWDm2C3ZDNth26/lDzhZrHWgle9QEGtNFd/CmMr867B1fCW3
 P//oG9cZLI0C8pPLwIUPeY3ojIYJAkKa8Jd8yUlMSW+oEaEwdAxK+bxoWCN79YsNw987qBTeZjg
 g6ue8Wb4Z5ot+A+1ZRlKlbD0AbUPzN7umN7c0JCoxqUjvo5c9nloxaHut/p62Ej1mshYcIoR/EH
 op/rucTKuAV8R4dNeXmqmFoGDr8nZuyMhGQpxS+oWVl3+c5lztIWMXWKqGhuu3luPKtdCbIdBtw
 h8BJyzVMV5DE4OHFBQw==
X-Authority-Analysis: v=2.4 cv=UM7t2ify c=1 sm=1 tr=0 ts=69fcdeb6 cx=c_pps
 a=auv0RDqIM0MEGdyBMEg3Kw==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=8nJEP1OIZ-IA:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=0GA0A_IKJoUHBEAzNTkD:22
 a=cbNQJ9GKAAAA:8 a=iox4zFpeAAAA:8 a=jGDTz_yqp8HarqSbHhIA:9 a=3ZKOabzyN94A:10
 a=wPNLvfGTeEIA:10 a=G69WFyCBNqGPyalROSdv:22 a=WzC6qhA0u3u7Ye7llzcV:22
X-Proofpoint-ORIG-GUID: Gw6kZly_RKAATdYQ9_V223V9e4HLTecN
X-Proofpoint-GUID: Gw6kZly_RKAATdYQ9_V223V9e4HLTecN
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-07_02,2026-05-06_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 lowpriorityscore=0 malwarescore=0 clxscore=1015 impostorscore=0 adultscore=0
 phishscore=0 bulkscore=0 priorityscore=1501 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070189
X-purgate-ID: tlsNG-d25034/1778179769-E0159CF5-DACEFC92/0/0
X-purgate-type: clean
X-purgate-size: 905

On Tue, Apr 28, 2026 at 03:36:20PM +0200, Jrgen Gro wrote:
> On 28.04.26 00:00, Jason Andryuk wrote:
> > On 2026-04-23 04:08, Juergen Gross wrote:
> > > Add DOMID_ANY to xen/include/public/xen.h meant to be a wildcard for
> > > domids.
> > > 
> > > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > > Signed-off-by: Juergen Gross <jgross@suse.com>
> > > ---
> > > This is based on Denis Mukhin's patch "xen/domain: introduce DOMID_ANY".
> > > As my series is another use case for DOMID_ANY and it is a backport
> > > candidate, I've split out the definition of DOMID_ANY from Denis'
> > > patch in order to make progress for my series.
> > 
> > I think we probably want Denis as the Author, since this is an
> > unmodified piece of his patch.
> 
> Apart from the commit message, yes.
> 
> Keeping Denis as the author is fine with me.

Thanks for taking care of this!

--
Denis


From xen-devel-bounces@lists.xenproject.org Thu May 07 20:29:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 20:29:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303045.1576606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL5LK-0000pk-Lv; Thu, 07 May 2026 20:29:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303045.1576606; Thu, 07 May 2026 20:29:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL5LK-0000pd-IW; Thu, 07 May 2026 20:29:10 +0000
Received: by outflank-mailman (input) for mailman id 1303045;
 Thu, 07 May 2026 20:29:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wL5LI-0000pX-QJ
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 20:29:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wL5LI-004uQI-3X
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 22:29:08 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fcf5d3-e002-0a2a0a5209dd-0a2a4508bd08-24
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 22:29:07 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fcf612-63b5-0a2a45080019-94a392172df2-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 22:29:07 +0200
Received: from pps.filterd (m0482516.ppops.net [127.0.0.1])
 by m0482516.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 647HZuJO1923238
 for <xen-devel@lists.xenproject.org>; Thu, 7 May 2026 13:29:05 -0700
Received: from mw6pr02cu001.outbound.protection.outlook.com
 (mail-westus2azon11012020.outbound.protection.outlook.com [52.101.48.20])
 by m0482516.ppops.net (PPS) with ESMTPS id 4e0y9asq0m-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 13:29:05 -0700 (PDT)
Received: from SJ0PR03CA0132.namprd03.prod.outlook.com (2603:10b6:a03:33c::17)
 by BY1PR16MB6455.namprd16.prod.outlook.com (2603:10b6:a03:4b7::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.16; Thu, 7 May
 2026 20:28:59 +0000
Received: from MWH0EPF000C6191.namprd02.prod.outlook.com
 (2603:10b6:a03:33c:cafe::3e) by SJ0PR03CA0132.outlook.office365.com
 (2603:10b6:a03:33c::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.17 via Frontend Transport; Thu,
 7 May 2026 20:28:59 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 MWH0EPF000C6191.mail.protection.outlook.com (10.167.249.106) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Thu, 7 May 2026 20:28:59 +0000
Received: from pps.filterd (m0426317.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 647JNvO74098353
 for <xen-devel@lists.xenproject.org>; Thu, 7 May 2026 16:28:58 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4dyxwd2db7-21
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 16:28:58 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id L5L6w9YKDkayZL5L6w6vbQ; Thu, 07 May 2026 20:28:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:Message-ID:MIME-Version:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=ppford; bh=q67ScFnposfBacpLN1VEv9jZn
	oXMHjhDvCroqH6/dkU=; b=vQ1Ftyqh/Duo9Kjc9sShgEZFdRY1N8YIpu8Ehj8PF
	yPHisjnuUz9+8klrCCz1lovhDCCcTGbKQ6AM6pDFzt7Bx4agAwJvAWyiKsjGUdHs
	DWIWnRjGVFcgMtZqnr3FVT7VR/I2cV2qqNo1126S9PK6GFjXefc0Ifb1WZm61k3Y
	kVuUjAtagTtGEyUAjb6cZ7PBQu1gzT4fK+gWuDZIIyYOWl4r8ZzxVXypx6Otadpt
	7dyvscnkIujm/q08LRyZmaCO/Rn0107/Xguefx2F+qGCMN9EWpJ379qMVz+qmuEp
	NX/ak1NdWGxF5eUfDiun9lNQvtcqyq090UVDpd0GzZF+A==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GaeQj/d10TTq2IuLxxovdBmcqyPtaoKYrIhP9W9MUO6WbhtQf/fwTG2PEaspSWahJ+Q9PPR5fvdz1Aa893VQ/IVQskSMKFemEBHfwQVHC35nVyAoIdrspGukPxZg3juqd/3WPjMiyfXbgqG+Gj/rnwbdqhEZlRLbJ3Uq5V1vKjFWYk4bbunw8SGINgtRvVg7TSQnh9X7TRGpAYbpnnIu0lNOGkoywbV5dbte//WSVLB2Wz3Umb/GxjmAVMS896+xhA9Z0j2uKuITnx/UMKWl0RaxD0K8n9gzy2dPZyBAa495NQ1DSHBZFvrFmEsBOeJTQUooQPp/ElBf+YCTWKkjKg==
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=q67ScFnposfBacpLN1VEv9jZnoXMHjhDvCroqH6/dkU=;
 b=AnSfq+RrnJAfiEFALPSPrAGZIy6vQtli86tf1fyZ7he1IP/FM63lwmSBzZW7br5yz1RGKEkC6kps7zK2legh48GXcE4VrZ2nOVY94vOpZhT7iD2xanD67buyhSnBgelVzoZSKbailQbAOcr17u3GCiAV6ONYvHsy8jctPUMynoaf057aqGNjJxcooDRGmAmT+3Lf4zAEmWbsqpAYopJT0WMhj3Ze8CdgIYoFgx3FzGu5LUETmJc2ztan6+An8wQNo/szyZ3DQuTmL8tXMC3njGgpwuJaPFroWfB5mgmQQTHx8lakEI0QlLdKawvlvYb+QMikfShtzSWHRc5ysWhZGg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=q67ScFnposfBacpLN1VEv9jZnoXMHjhDvCroqH6/dkU=;
 b=cHqP2kXfH0zpYGvphCrozwHBqz/rG0Miv/Yt7xiOydmg9vqJfmZ89hDkm2ISQkixNDNihG3ODMfBKk9LtoehjmQkHa+GYHOz+vD9YIhS7B/l9Ep+N4ELdgtdwLWeDf5EbBafnNvvZTBe8TWBeuWDnkfx/cMQvRRrw3FcvtzEY80=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:message-id:mime-version:subject:to; s=ppserprodsaar; bh=q67ScFn
	posfBacpLN1VEv9jZnoXMHjhDvCroqH6/dkU=; b=OUAD/pipF7Y+NC5W93CopmD
	8lCckd5Llpaw4MzHYlb+15YfC5G+TgxF01HFKFzGOoLAS4eEE/rCbQ2isrzNyAWX
	R9IH+2bpQi0RajU+yZHiqYQ3ka4CFfp5CtAu1nAMcZMafNDbh5i9CsSPdLLxM6F0
	Cf7huWrLuc9TrjpwzPip+T91aWuWIhS6O7FCxESqmPz7I2i5gYqye6fPB2tF/HK4
	80rOkS7sjcom88yRBsdMkOsvyd7TW6A9Uuob7treCx2rAqpl+h97M+r1e0U/e9WV
	ZRp/niT4YeGMRWNtDLcYUgidtI+YLdawtw6QNkJy05ZSwBC8Ou9vE7oF627mlSQ=
	=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:message-id:mime-version
	:subject:to; s=ppfserpocford; bh=q67ScFnposfBacpLN1VEv9jZnoXMHjh
	DvCroqH6/dkU=; b=rf3G305cf+GNrPmj871SPrPRKjGLtx4xVhljjMQWDl8dmyj
	EmXLeW0yfcYG0gjsxTXXOzfTT2T6Jpezw9KJ/dWgr3B+wxYwXlaPoQi5DzV88Tas
	zbTIQf9xkVWndeJ1legXRxwPl5VPXmogKia93hvKqYTl6KQspFPQEV8j5UhL2Rwl
	mQrGF6x/RMrTdTzhJ6vOv1iAGKofM4919lOupISN9aBVIbp+SNBTIeOJP1yqRNbS
	ToUKJ2aIUS4JXxvz2LOdZ2MxrG8txgEfBUczdBYA7tbkTUWw92ZC/GAiew/06GsY
	7J60dFprqKFCQbz7GpAPE2sFJEHucg+rtQ+zcaw==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: L5L6w9YKDkayZL5L6w6vbQ
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v8] xen/domain: introduce DOMID_ANY
Date: Thu,  7 May 2026 13:28:40 -0700
Message-ID: <20260507202840.293269-1-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-07_02,2026-05-06_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 lowpriorityscore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000
 definitions=main-2605070206
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000C6191:EE_|BY1PR16MB6455:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: ec3bfc0b-ce4d-4b55-f279-08deac77450c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|1800799024|82310400026|376014|13003099007|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	szRrU+PYGKnJ7laBWvyqDgOJsCLFoycaLg92PMBBNUhABBu7DFKoEf7sl6sjrrzs1HA28eLEm2J8nkrU5U9IB3I8rSAb6PAtSsVB1E1w75lMcGI3fR4/crprhbcxet0A+lAQc25wJXerxfOg/AkdK0Thhq2pmgj9v4NpqWQFvpEaNRbz/n+xPIV3wZjqw2E+vV4+40LicqYYZkjE76gxGJ6Zm8Zpm78FFM0fcrglapY2zscIKSRRow24qbbZ7obsMTVygecBf9lKWV48YyfFTK8V3Qoo/pLRJuFcPy+0TE4idq+1DRh7jXxlORNPlJXvjkQA+E4xizIVKrvOFKLdW4hY2S7FqwOXbFTxBgvYNac7kmJLabHcxW6spje5VkpaAOO5GQbPNOQfBlxNSU7JVaisKgkyCuBsqAagSI5nh0Yp3OB75HxjosiFYjWboxjE/aYJyJy7QZZ5L4JH2yfXfu1/4k7AErIC/Jvl78nydPr5iKYL7c732+qtEU4Eamw+ghYfPYB8NkFyDSUCPcjW7neZY4GUyn9SXFs8m5We7BhS2IcZkZr4DKvtSL9EDnnJIOXhwZL1liIuhneaqL10FHHub+FCP20W61Jv3J15WJfA9Oq0ju1fktah2Oj4tHfYgPN3x2pDTa8Q7Qlnlv+MlFRHbjM8lqkY63ifg+C7BpvXnND6IxMlYk3t5Aio8J9M8WapamrRE7B7ACuIXcVrhdxaxOASS2H9QJUENiXHHbj7EoYint98UcyAa67v2FaP
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(82310400026)(376014)(13003099007)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Ow1MhhT1d0TxzKPVhDvQGLot9Zxck/1iw03TXlrE3Ojj9l3+ikrskS0EinSwUzKPaU5OEiB10NLTnFfyYtH6Qej4Ph67G//R7m0xazPHYcuD7FsYk82/e5eGnLPDDCqF+z8WAPb9AesPPQ+/jzJNnzv2Ei+d0kO8e89Z1KtxEVUMdPohEzClgX/5zK+IJkYUyDqy0ST0qr63EpSeVMiuXthS6SZPqJ8QWK6C/2NaSBt0Ul18Xj68uSbGIn43vdglV7WZMcu+qpyf7QHd59R0EUX2/FfIJ/U5SeWM63wwMyuJ4yttS8F3UTZdAxCxH8zXU1H6BKOD+/dvr/hcTHVj7Dyb5SUmXqyJTyB5Bqch+4yuntm5CiOrJmbVOSmH7UH8G3Xdvk1mR2KY3Fg8VXQKoRXtAZbA/mPuKfNXSahvUeIpyp5pWnZhUA3AWoURivjS
X-Exchange-RoutingPolicyChecked:
	kfQXIp6MSNgatpj6oNyE909n1PlRVeNX3tRD4n9o4jUbBQ4/KF8XPayQGiXHXyaf/JmkLeSGrDD9SKGBPakeiqUCT6l6yTT8xDoryEME662HvF6HorTUIePtQQoWHatX0IFAdlYa/+VZU51S+T4fxALdyo3MqRH5bXj13/ChHtZJO297Qj15jGX5dv+RbueiXUMlq6o2uftPHmtGcd+W8kFehuDWSuVx8nELv47asIUbbHs/e56LkIyAyrXyY0Ytkqknpu1l7LNOgC7gMfgQBFVU/9AM6wc2j426oVP/CWgOaJ5J1B4dvYkKDFx+4Be9M00RrFNKJ8YjqutLWa6m8Q==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	MHAlpU684UYZOtuggl1L4W9bJ3eI9k8KYcvVDMwKXNtAM0MP692mc2woQRjzYiFi5tb1fuCy/0JUO0IB7K35NbpkzKsB4vOW8+krmu98/E7yRQ4AtR0F4NnlGxnFYO9Ep9qzjPum0YcV4jks/rpWtwRq300ag4CjZLh1MrOWkqniMV/IPEUHFrtDGKzcXC+XZmof7Naml9uwPNhudyFELpQ5XmBYdFBFvfOBYZZDVsZNvIJdOLQFnhLScddOsujOTuSEmVz4Nzm55+fWOzp0GlWFG9eZ3uLJPYZ25wBJPtoN/FvQmGgthBbdDO290yoOhgHFDmJPk8yzs24Fj6QG+fh7Vd+dxaYw18+ui6Uoc5KQQUXOnWUzOS4eXbZWlN1pyX648HNZj13Af0f49rPGODh4Lv+q46UiLz7AnjBBF7xmKwkzwFuK9327IT5LR8HOnj2BxEKzC0JrxdDHcaKNIVL/gpehSrMBEYhxxIPjMf5OclGSyJU6O2cQAZXaKqT3oJVC6SiYXZC7f2QgND8eRc+/u3LOhQzXOAhoHMZh2rW8c8U69AxBWfbvFsIwKnJ75OngYVh9E/6ABsfIBawXF5RsUs4wna7xFkrZ+U3+agx7YObQBt0XE4Qv35zVXPIl
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 20:28:59.1650
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ec3bfc0b-ce4d-4b55-f279-08deac77450c
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C6191.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR16MB6455
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDIwNiBTYWx0ZWRfXx8Qkt7KSI2a+
 auABdELgLmCY4VUaIthe0L6f9iWpCi0k1ITM43YHsbrEKukh86Yf2iTtZQmPutKphAebU1roI5Y
 6gfg3bvNySZ7A23KooXZhsGJXF4jT9twKS+j3di10XokcoPSG4hIUy/yCGJENYgvzengsQmPIO0
 Ybxyu2mvjTuc59PAm3QWb//Owbey/Os6Am/uUcQVJiENg5nRJ+3hTtcNZfL6I+unoxcLoZaIBAh
 3zDR15FJzkn4BQpJni1eWmwcEZTug8v0xu8LCTxH0uK42yLxQ2zwqNbM+fGD6e13aOZ2XbpetU6
 epebTe/TyJ3csE0R/z2eWWGBl7TFaaSCwWLoqFox8eIF23e2yxSvzljS3f6RqXvrslNOIbfgAHd
 EYK+PsKKfSGg/qWB9RVlD56PMlIWBA61rh477TcwttEngX3aQODWbCopxBgRyWxEl3kBkqTL2YR
 YXfpbdf532hdLKU/i5A==
X-Proofpoint-GUID: QefB-DN4F0QhuiXd-c63Gr-oftJJW7Up
X-Proofpoint-ORIG-GUID: QefB-DN4F0QhuiXd-c63Gr-oftJJW7Up
X-Authority-Analysis: v=2.4 cv=cZriaHDM c=1 sm=1 tr=0 ts=69fcf611 cx=c_pps
 a=wPn5mG08gX1eKnPfDThLSw==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=NvsXeTrgx-CJMFV-xl94:22 a=VwQbUJbxAAAA:8
 a=iox4zFpeAAAA:8 a=cbNQJ9GKAAAA:8 a=p0WdMEafAAAA:8 a=j4ESyb16A0szqJZRwzQA:9
 a=G69WFyCBNqGPyalROSdv:22 a=WzC6qhA0u3u7Ye7llzcV:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-07_02,2026-05-06_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 adultscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0
 impostorscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070206
X-purgate-ID: tlsNG-c1860d/1778185747-BD360DB1-EEC701A7/0/0
X-purgate-type: clean
X-purgate-size: 10152

From: Denis Mukhin <dmukhin@ford.com> 

Add a new symbol DOMID_ANY to improve the readability of the code.

Update all relevant domid_alloc() call sites and harden the domid_alloc()
input value check.

Also, fix problem with passing invalid domain IDs in
XEN_DOMCTL_createdomain: turns out libxl__domain_make() (toolstack)
uses 0xffff as domain ID.

Fix failing tools tests too.

Amends: 2d5065060710 ("xen/domain: unify domain ID allocation")
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v7:
- aligned the DOMID_ANY comment with another patch sent separately to
  unblock xenstore series: https://lore.kernel.org/xen-devel/20260429120619.1013440-2-jgross@suse.com/
- added fixups to mem-claim, paging-mempool, resource and tsx tests.
- Link to v7: https://lore.kernel.org/xen-devel/20260408234046.1314021-1-dmukhin@ford.com/
- Link to full CI: https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/2508345752
---
 tools/libs/light/libxl_create.c                  |  4 +++-
 tools/tests/domid/harness.h                      |  1 +
 tools/tests/domid/test-domid.c                   | 12 ++++++------
 tools/tests/mem-claim/test-mem-claim.c           |  6 +++---
 tools/tests/paging-mempool/test-paging-mempool.c |  2 +-
 tools/tests/resource/test-resource.c             |  2 +-
 tools/tests/tsx/test-tsx.c                       |  2 +-
 xen/common/device-tree/dom0less-build.c          |  2 +-
 xen/common/domctl.c                              |  3 +--
 xen/common/domid.c                               |  5 ++++-
 xen/include/public/xen.h                         |  7 +++++++
 11 files changed, 29 insertions(+), 17 deletions(-)

diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index bfc9149096a3..6fd62d140389 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -681,8 +681,10 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
                     continue;
 
                 local_domid = v;
+            } else if (libxl_domid_valid_guest(info->domid)) {
+                local_domid = info->domid;
             } else {
-                local_domid = info->domid; /* May not be valid */
+                local_domid = DOMID_ANY;
             }
 
             ret = xc_domain_create(ctx->xch, &local_domid, &create);
diff --git a/tools/tests/domid/harness.h b/tools/tests/domid/harness.h
index 17eb22a9a854..65da0d075a2b 100644
--- a/tools/tests/domid/harness.h
+++ b/tools/tests/domid/harness.h
@@ -41,6 +41,7 @@ extern unsigned long find_next_zero_bit(const unsigned long *addr,
 
 #define DOMID_FIRST_RESERVED            (100)
 #define DOMID_INVALID                   (101)
+#define DOMID_ANY                       (102)
 
 #endif /* _TEST_HARNESS_ */
 
diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-domid.c
index 5915c4699a5c..71cc4e7fd86d 100644
--- a/tools/tests/domid/test-domid.c
+++ b/tools/tests/domid/test-domid.c
@@ -41,20 +41,20 @@ int main(int argc, char **argv)
         domid_free(expected);
 
     /*
-     * Test that that two consecutive calls of domid_alloc(DOMID_INVALID)
+     * Test that that two consecutive calls of domid_alloc(DOMID_ANY)
      * will never return the same ID.
      * NB: ID#0 is reserved and shall not be allocated by
-     * domid_alloc(DOMID_INVALID).
+     * domid_alloc(DOMID_ANY).
      */
     for ( expected = 1; expected < DOMID_FIRST_RESERVED; expected++ )
     {
-        allocated = domid_alloc(DOMID_INVALID);
+        allocated = domid_alloc(DOMID_ANY);
         verify(allocated == expected,
                "TEST 3: expected %u allocated %u\n", expected, allocated);
     }
     for ( expected = 1; expected < DOMID_FIRST_RESERVED; expected++ )
     {
-        allocated = domid_alloc(DOMID_INVALID);
+        allocated = domid_alloc(DOMID_ANY);
         verify(allocated == DOMID_INVALID,
                "TEST 4: expected %u allocated %u\n", DOMID_INVALID, allocated);
     }
@@ -64,7 +64,7 @@ int main(int argc, char **argv)
         domid_free(expected);
     for ( expected = 1; expected < DOMID_FIRST_RESERVED / 2; expected++ )
     {
-        allocated = domid_alloc(DOMID_INVALID);
+        allocated = domid_alloc(DOMID_ANY);
         verify(allocated == expected,
                "TEST 5: expected %u allocated %u\n", expected, allocated);
     }
@@ -72,7 +72,7 @@ int main(int argc, char **argv)
     /* Re-allocate last ID from [1..DOMID_FIRST_RESERVED - 1]. */
     expected = DOMID_FIRST_RESERVED - 1;
     domid_free(DOMID_FIRST_RESERVED - 1);
-    allocated = domid_alloc(DOMID_INVALID);
+    allocated = domid_alloc(DOMID_ANY);
     verify(allocated == expected,
            "TEST 6: expected %u allocated %u\n", expected, allocated);
 
diff --git a/tools/tests/mem-claim/test-mem-claim.c b/tools/tests/mem-claim/test-mem-claim.c
index ad038e45d188..69dc99cfdd51 100644
--- a/tools/tests/mem-claim/test-mem-claim.c
+++ b/tools/tests/mem-claim/test-mem-claim.c
@@ -21,7 +21,7 @@ static unsigned int nr_failures;
 #define MB_PAGES(x) (MB(x) / XC_PAGE_SIZE)
 
 static xc_interface *xch;
-static uint32_t domid = DOMID_INVALID;
+static uint32_t domid = DOMID_ANY;
 
 static xc_physinfo_t physinfo;
 
@@ -142,7 +142,7 @@ static void run_tests(void)
     rc = xc_domain_destroy(xch, domid);
 
     /* Cancel the cleanup path, even in the case of an error. */
-    domid = DOMID_INVALID;
+    domid = DOMID_ANY;
 
     if ( rc )
         return fail("  Failed to destroy domain: %d - %s\n",
@@ -171,7 +171,7 @@ int main(int argc, char **argv)
 
     run_tests();
 
-    if ( domid != DOMID_INVALID )
+    if ( domid != DOMID_ANY )
     {
         rc = xc_domain_destroy(xch, domid);
         if ( rc )
diff --git a/tools/tests/paging-mempool/test-paging-mempool.c b/tools/tests/paging-mempool/test-paging-mempool.c
index 1ebc13455ac2..7e417d9798ac 100644
--- a/tools/tests/paging-mempool/test-paging-mempool.c
+++ b/tools/tests/paging-mempool/test-paging-mempool.c
@@ -18,7 +18,7 @@ static unsigned int nr_failures;
 })
 
 static xc_interface *xch;
-static uint32_t domid;
+static uint32_t domid = DOMID_ANY;
 
 static struct xen_domctl_createdomain create = {
     .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
diff --git a/tools/tests/resource/test-resource.c b/tools/tests/resource/test-resource.c
index a7f2d0464326..236da0dcd45e 100644
--- a/tools/tests/resource/test-resource.c
+++ b/tools/tests/resource/test-resource.c
@@ -178,7 +178,7 @@ static void test_domain_configurations(void)
     for ( unsigned int i = 0; i < ARRAY_SIZE(tests); ++i )
     {
         struct test *t = &tests[i];
-        uint32_t domid = 0;
+        uint32_t domid = DOMID_ANY;
         int rc;
         xen_pfn_t ram[1] = { 0 };
 
diff --git a/tools/tests/tsx/test-tsx.c b/tools/tests/tsx/test-tsx.c
index 5af04953f340..ea7c03ad302e 100644
--- a/tools/tests/tsx/test-tsx.c
+++ b/tools/tests/tsx/test-tsx.c
@@ -362,7 +362,7 @@ static void test_def_max_policies(void)
 
 static void test_guest(struct xen_domctl_createdomain *c)
 {
-    uint32_t domid = 0;
+    uint32_t domid = DOMID_ANY;
     int rc;
 
     rc = xc_domain_create(xch, &domid, c);
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
index 6d6882a34b5a..eacfd93087ae 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -871,7 +871,7 @@ void __init create_domUs(void)
         if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
             panic("No more domain IDs available\n");
 
-        domid = domid_alloc(DOMID_INVALID);
+        domid = domid_alloc(DOMID_ANY);
         if ( domid == DOMID_INVALID )
             panic("Error allocating ID for domain %s\n", dt_node_name(node));
 
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 93738931c575..b969f5ada6cc 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -409,8 +409,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
 
     case XEN_DOMCTL_createdomain:
     {
-        /* NB: ID#0 is reserved, find the first suitable ID instead. */
-        domid_t domid = domid_alloc(op->domain ?: DOMID_INVALID);
+        domid_t domid = domid_alloc(op->domain);
 
         if ( domid == DOMID_INVALID )
         {
diff --git a/xen/common/domid.c b/xen/common/domid.c
index 2387ddb08300..b0258e477c1a 100644
--- a/xen/common/domid.c
+++ b/xen/common/domid.c
@@ -19,7 +19,7 @@ static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED);
  * @param domid Domain ID hint:
  * - If an explicit domain ID is provided, verify its availability and use it
  *   if ID is not used;
- * - If DOMID_INVALID is provided, search [1..DOMID_FIRST_RESERVED-1] range,
+ * - If DOMID_ANY is provided, search [1..DOMID_FIRST_RESERVED-1] range,
  *   starting from the last used ID. Implementation guarantees that two
  *   consecutive calls will never return the same ID. ID#0 is reserved for
  *   the first boot domain (currently, dom0) and excluded from the allocation
@@ -31,6 +31,9 @@ domid_t domid_alloc(domid_t domid)
 {
     static domid_t domid_last;
 
+    if ( domid >= DOMID_FIRST_RESERVED && domid != DOMID_ANY )
+        return DOMID_INVALID;
+
     spin_lock(&domid_lock);
 
     /* Exact match. */
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index b12fd10e6315..2149b8dd3808 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -608,6 +608,13 @@ DEFINE_XEN_GUEST_HANDLE(mmuext_op_t);
 /* DOMID_INVALID is used to identify pages with unknown owner. */
 #define DOMID_INVALID        xen_mk_uint(0x7FF4)
 
+/*
+ * DOMID_ANY is used to signal no specific domain ID requested.
+ * Handler should pick a valid ID, or handle it as a wildcard value
+ * depending on the context.
+ */
+#define DOMID_ANY            xen_mk_uint(0x7FF5)
+
 /* Idle domain. */
 #define DOMID_IDLE           xen_mk_uint(0x7FFF)
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 07 20:40:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 20:40:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303058.1576614 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL5WN-0003YG-L1; Thu, 07 May 2026 20:40:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303058.1576614; Thu, 07 May 2026 20:40:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL5WN-0003Y9-IB; Thu, 07 May 2026 20:40:35 +0000
Received: by outflank-mailman (input) for mailman id 1303058;
 Thu, 07 May 2026 20:40:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Volodymyr_Babchuk@epam.com>) id 1wL5WM-0003Y3-1a
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 20:40:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wL5WL-00AU4t-8P
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 22:40:33 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69fcf879-5cb7-0a2a0a5109dd-0a2a4505cd94-46
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 22:40:33 +0200
Received: from [52.101.70.105]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69fcf8c0-aaa8-0a2a45050019-346546692efb-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 22:40:33 +0200
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by VI0PR03MB10807.eurprd03.prod.outlook.com
 (2603:10a6:800:26a::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Thu, 7 May
 2026 20:40:29 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3%4]) with mapi id 15.20.9891.016; Thu, 7 May 2026
 20:40:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L0hyduc2oRicQiatt5OVz+e9U7RJflbFrvhK4JjwkjX6wqhgv2t9AY0l81T9euTqi077mkFGHfWrQBJceknwluItGS3RM4PY55Rv86JNQxV5oiaBAI+iFYE0WpeE6S7P/jJJ8oAjn/s/aj/5MTFVPFYslzDizvGEm2TX0E4nsZt4fSN7NSEX0Ubyvr5CYvf2K2HARg5xwELi2hmeToZvvuLtbmHSABBzeia+r1UouF5E+eeUdFwXyYqbjNwfZ9MUWCB1oHq3Z0JbIkPc+2mVOp+u3K/RhsHNKQDo2iB/Qqlb3mzpvcQ7OANdmRU8dgnHiLgIyys53ygU0xnfxrm9qA==
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=cViCImyXyLim00MJOYYhPmGCgCFM35PRp520/M5ZsYg=;
 b=M+AWX77HyKHwxZOWcpO6TbHtPUMN8zSivUDGfuyg8N/kpU9u7KrWSwLCm2U3aQm+rRKf6QSbJ3WZKBrI+86FRk1fXWZLIKRNGVEjdOlF1CAGiljOrSeztsFMtBbcbXdzGi1GImexeiSXQa9YFufFdNTKnclW3R03j3N/UJ0Tm5iMgXJgN7Cc2YEeAeIWYdi70hBpvhd46MHtz7a1MauT5IGv31HjaG1mXzEtETvnkUl5nY3gcmz8RMkRQK7S9AY2f0/pz5jKpUM8e/sFP5EUiyh9wSvfRiHy907QBtW1ngA9NNluccMBLCP+ySSrIo35LufAtzWBBcAQG5sN+puinw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cViCImyXyLim00MJOYYhPmGCgCFM35PRp520/M5ZsYg=;
 b=XOYAv4sadGCfnrAPYuVVNqF8e989yaRl5afPk77q7J1BfPa/ZXkU7rQGLTynIb2nWliOqqh0pFpOLNOwjn2Umc0kl+6TnbITTbCZycGWbzqclcFe9oZZXnJf4nOKbCaGY7ceKAP43G8DrjW9tKnlR5VuedDQn2OVkLxYELSluDjks8x3c04z1QXJ1v2pc7RagdCMbNZ70oxC1FK4Q6d+eD6iPoIF5x3dU/YScSIuzzDyQDkv3zRbX/lxrLgICb8+rzwDlGjOFHmor5fIVV6ZBlNfFL/voT2M5r8V6USehQqhvlC6kUWVEvYAWMppyWC61Co/xKSaBibXHlDI7EfzWw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>
Subject: Re: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
Thread-Topic: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
Thread-Index: AQHcyClfuk/Yqk/9/E2oGahG1JP+sg==
Date: Thu, 7 May 2026 20:40:29 +0000
Message-ID: <878q9vt0lg.fsf@epam.com>
References: <cover.1775742115.git.mykyta_poturai@epam.com>
	<a0abd984989237d2f36e1628db577fb25af1cdbe.1775742115.git.mykyta_poturai@epam.com>
	<5efddecc-3665-4a53-9eaa-b117370cc0e4@suse.com>
	<5168207f-33ed-4fc4-918e-6c3b454b0efa@epam.com>
	<efb254c2-f52a-408d-b225-e4e03935d05e@suse.com>
	<d0916f22-b5c0-4c93-935c-4cbe17e626d4@epam.com>
	<e5844c28-aa68-4bf6-8287-a4ceeda3a1d2@suse.com>
In-Reply-To: <e5844c28-aa68-4bf6-8287-a4ceeda3a1d2@suse.com> (Jan Beulich's
	message of "Wed, 6 May 2026 13:54:09 +0200")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|VI0PR03MB10807:EE_
x-ms-office365-filtering-correlation-id: d13e1864-94a6-4abd-4157-08deac78e044
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|42112799006|1800799024|56012099003|38070700021|18002099003|22082099003;
x-microsoft-antispam-message-info:
 eE/ko7LKfOWtWr4cpZnlgV5aybKSupWRA2/M4vJ8ymv1mNXm0w5ZCWlwXWj1YNzIMlnYn5hddDAkjpV6pAbFsQOe+58sYk/28fFkXwcymsvXzXmT+XzHyROlhIFevhTtgiYXgfmGmE5nRMuVDgzlVevwrYtZUl22U+k51MZvg75OvhWgqebty9WXABMcyMDvcGmmLrkdXYC14VgVf31+f4e3G5HDMY22Y6mUCDUYUkXiNl+g2mcVCHzsfpDm7Wl1STrs8XD4YtMamVwKb3OMqzAGgxZYZK5MB37K2O2qpMk5TwmTo5nOQCGNQLh+CuYM7tWX6dzYn8O5a+OA8Ls4ekUSlbiLwFljiPS8UORrezvus566IGlTCUMq5hnLs/IHpzRtp5WSwiUYREXIK4SW01VINu/YHBYuH0HnB/RKQdBVi+pl3jOFFynF30P8REkm0kawjGd0FLy5mVcYZdtPlq+25ddTOBmm/FuArlZs7VkT8SUXXdCODrHLeYdTNBYqaJiXVf+XyVLHZzE8/S81nVOvodb9DKGoZbZwE+g6Q8IEZ11Jnxv3n3doFZouQHbFRIKUHbBrcdXaQojTLobUFgIIQvf9xgTeM+h54R+nRA/keQ0zYK8L4aenj8su9aCkS0Hm5KHmbufC7Ia0PqNz32Y2N4sqAZdwRGZ3qoG09JT0wx3+qfwUe3W80vbJ35+JfAbD3kwvpuaRKFZTTPkEsD1B01HlwpkVdvIgNVWKb17KBp3O7Pz3DpCLiQfUgiB9
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(42112799006)(1800799024)(56012099003)(38070700021)(18002099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?KxH4W8pUK0syBCJqvBXxagmFnMDfsok9dgWVsFj7mSveGkxnqKmDGjRDCf?=
 =?iso-8859-1?Q?6mtLcCjBdBVWKFQF8jdBwKoPz1Ps7X5Hz2Slhyz49/BIdu4z85BhrbsSeq?=
 =?iso-8859-1?Q?1DHen9HoUF7Nd0h8IJT9B1LlnFMNrpbCFGd/x1KBuM8IiP0ZQfhMi6bceR?=
 =?iso-8859-1?Q?ozrVyTWonsTdMczXyfqGnK8SJR4DBcWhUvGZFSVr4NnSuqOK1T5WOF37Yk?=
 =?iso-8859-1?Q?ZQRgNhVlpPWpGoioLDTeXcxSdmJ2fDJSO4FhkTH7X/axr9pNIcrQyuU+Rp?=
 =?iso-8859-1?Q?/RJh6y6RXEpgogVwAenna3f5FIGFNixvjTAWB4zWvgf08rkEs7wzU3GSEH?=
 =?iso-8859-1?Q?1+3dFaN4AnEBt4ElO/uM/O0UADLQ1BNHR8F+uTPZJJKY465ekJk+l2Y4dp?=
 =?iso-8859-1?Q?7nUnkqDetwUtrQqxw8ZZuiS2GX7mFLhQ/RfZRdTC46hvW1wXGrHC/NBgcY?=
 =?iso-8859-1?Q?oAzv/KWrcxaTZE/o7G1+aDg2SY75pbJ4rAmQdJBHdHNQ4N6VhfXXSJ6Iy0?=
 =?iso-8859-1?Q?59BMezNzVZBu4z3dZ8y+ZtrsutNLrQvhFIr5+G4GLtQq/eZcoxDQwFk3Yo?=
 =?iso-8859-1?Q?oMRKaJg/VNO0r77jdhXiLWI1CsdBHxvfZ12uBe+6ayJ4Vh1BdV1/+lP+OP?=
 =?iso-8859-1?Q?pPTYViJ+ZKzWuIeMGfyRVdxJRkB8EHKfEPQy8WdsJjL1RqKcWHxL1neWQ+?=
 =?iso-8859-1?Q?3Cx1/FMeyTEMGn9M3g9G+vxwlS/Zz/eU0OVE9wGRcLlTtwDRnoBiMU8r31?=
 =?iso-8859-1?Q?lQiHqeQrYlgWXVhfxsGZxVlxyJmNxn/bWzII32eNgaXBpxMy7FW7f42cOa?=
 =?iso-8859-1?Q?Xb7u3dda6RDyeJ56aqNoBqL3DHebwwTUS5DQweop+TB+IsJHNK/ZimrJsj?=
 =?iso-8859-1?Q?4uARXQ2BywafhjIwxWGmPNg7iUQo4pYGu0+8T6VfRERkw1UN/4UilGaRmZ?=
 =?iso-8859-1?Q?1F6pPx8RZGURaE7jV3tVhqBL7kjCSdOOpL4cCauFyrKgrgv0zcM9KjyeJd?=
 =?iso-8859-1?Q?fKuA9/eajVRD/lk9q9zgKW3Se363hGt8na8C6q6gPrwE5ps/5cBJhAl633?=
 =?iso-8859-1?Q?v2WfC8vRWhqTnuE3FwSgjT5J0jXBZrhawwp9WQUQaFETbvBYeES7kh/dpZ?=
 =?iso-8859-1?Q?4aBChfAaUAGSCIVmA5hIHIFnLlU4TaQW0IeFfLN1gqTXtrMJALC/6q41vE?=
 =?iso-8859-1?Q?G+s+NfAItWgCO2QQHGszUAtpPPXCS4PAknmNNabF8ia0U5C3ZfsQT5bb9J?=
 =?iso-8859-1?Q?GLeKaMefvXkbXgDg1XXc6lZKH8yeyCI8B+HfXXHJUgyHvYy8qbJOM17FMX?=
 =?iso-8859-1?Q?2sqGfalpmo/HtKWJod5F1VUwjdTLQfN+/EgzyDKksIqxOsvojuOQ2SUHZ2?=
 =?iso-8859-1?Q?9/MTXLJhtEbkEKiXdTeO890SCnZkJJBi22bN6HxSvRU2uK1DZB7kZ4DGtv?=
 =?iso-8859-1?Q?5GsNiydKzvzD5miz2yw15ioQBd5S99LWjt4tTpswN9FDS2r2dk8ULRoEVe?=
 =?iso-8859-1?Q?W1j1RsTi6UuuxpbLjwy3+MYY3FdpPqhrEJaJ8yqyzJOOJTUyw7jYwbauxP?=
 =?iso-8859-1?Q?f0xb3CkjCTjUP0smgBHFSVbrhT/O2sFsAWmY/28d/ZndEicV7LArfxsdok?=
 =?iso-8859-1?Q?vMQKDFZtspGG2LIvsGcRD0v/CUOJttsLs+vOeMpWZxDusavVlVEJuHRCK0?=
 =?iso-8859-1?Q?LcVR2axVX9kg07R17E05tjLtMCwAD9queTbZ4ghX3pQriNZofiHrBjN/7K?=
 =?iso-8859-1?Q?vBqkHOJN+EnWrr+dJMPAHXK4UVWH+CEMnNI7GkHGnItb4KIO2eohIlIXld?=
 =?iso-8859-1?Q?iJcrGrBlg+E+CRQSssjUCWYfzhJKAMQ=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d13e1864-94a6-4abd-4157-08deac78e044
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 May 2026 20:40:29.1444
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: sfgaUE+5LNbvPjiPcaOhKm1hTtnwtGT7MPe0HcxPPHo8qlKUynDC4d7O8oCCIGOq5ZU/bp6AYFaWjnG/v1g/RVsQ/Cks9w26O47YrhiMRgc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10807
X-purgate-ID: tlsNG-c201ff/1778186433-DA56B443-AF38747C/0/0
X-purgate-type: clean
X-purgate-size: 3500

Hi Jan,

Jan Beulich <jbeulich@suse.com> writes:

> On 06.05.2026 11:39, Mykyta Poturai wrote:
>> On 5/4/26 08:37, Jan Beulich wrote:
>>> On 23.04.2026 12:12, Mykyta Poturai wrote:
>>>> On 4/21/26 17:43, Jan Beulich wrote:
>>>>> On 09.04.2026 16:01, Mykyta Poturai wrote:
>>>>>> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>>>>
>>>>>> This code is expected to only be used by privileged domains,
>>>>>> unprivileged domains should not get access to the SR-IOV capability.
>>>>>>
>>>>>> Implement RW handlers for PCI_SRIOV_CTRL register to dynamically
>>>>>> map/unmap VF BARS. Recalculate BAR sizes before mapping VFs to accou=
nt
>>>>>> for possible changes in the system page size register. Also force VF=
s to
>>>>>> always use emulated reads for command register, this is needed to
>>>>>> prevent some drivers accidentally unmapping BARs.
>>>>>
>>>>> This apparently refers to the change to vpci_init_header(). Writes ar=
e
>>>>> already intercepted. How would a read lead to accidental BAR unmap? E=
ven
>>>>> for writes I don't see how a VF driver could accidentally unmap BARs,=
 as
>>>>> the memory decode bit there is hardwired to 0.
>>>>>
>>>>>> Discovery of VFs is
>>>>>> done by Dom0, which must register them with Xen.
>>>>>
>>>>> If we intercept control register writes, why would we still require
>>>>> Dom0 to report the VFs that appear?
>>>>>
>>>>
>>>> Sorry, I don't understand this question. You specifically requested th=
is
>>>> to be done this way in V2. Quoting your reply from V2 below.
>>>>
>>>>   > Aren't you effectively busy-waiting for these 100ms, by simply
>>>> returning "true"
>>>>   > from vpci_process_pending() until the time has passed? This imo is=
 a
>>>> no-go. You
>>>>   > want to set a timer and put the vCPU to sleep, to wake it up again
>>>> when the
>>>>   > timer has expired. That'll then eliminate the need for the
>>>> not-so-nice patch 4.
>>>>
>>>>   > Question is whether we need to actually go this far (right away). =
I
>>>> expect you
>>>>   > don't mean to hand PFs to DomU-s. As long as we keep them in the h=
ardware
>>>>   > domain, can't we trust it to set things up correctly, just like we
>>>> trust it in
>>>>   > a number of other aspects?
>>>
>>> How's any of this related to the question I raised here, or your reply
>>> thereto? If we intercept PCI_SRIOV_CTRL, we know when VFs are created.
>>> Why still demand Dom0 to report them then?
>>>
>>=20
>> The spec states that VFs can take up to 100ms after the VF_ENABLE bit is=
=20
>> set to become alive. We discussed in the V2 that it is not acceptable to=
=20
>> do a required 100ms wait in Xen while blocking a domain. And not doing=20
>> that blocking would require some mechanism to only allow a domain to run=
=20
>> for precisely 99(or more?)ms. You yourself suggested that we can trust=20
>> the hardware domain with registering VFs if we already trust it with=20
>> other PCI-related stuff. Did you change your mind, or am I completely=20
>> misunderstanding this question?
>
> No, I still think that we can trust hwdom enough. Nevertheless we should
> aim at being independent of it where possible. And I seem to recall that
> I had also outlined an approach how to avoid spin-waiting for 100ms in
> the hypervisor.

I want to clarify: you are telling that Xen should not wait for hwdom to
report VFs and instead create them by itself. Is this correct?

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu May 07 20:49:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 20:49:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303068.1576624 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL5eS-0004OP-HT; Thu, 07 May 2026 20:48:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303068.1576624; Thu, 07 May 2026 20:48:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL5eS-0004OI-Ej; Thu, 07 May 2026 20:48:56 +0000
Received: by outflank-mailman (input) for mailman id 1303068;
 Thu, 07 May 2026 20:48:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wL5eQ-0004OC-MM
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 20:48:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wL5eO-00EETb-Or
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 22:48:53 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fcfa47-5cb7-0a2a0a5109dd-0a2a4501d5fc-46
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 22:48:52 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fcfab3-c1f2-0a2a45010019-94a38ff12ec4-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 22:48:52 +0200
Received: from pps.filterd (m0482515.ppops.net [127.0.0.1])
 by m0482515.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 647HtXMs836122
 for <xen-devel@lists.xenproject.org>; Thu, 7 May 2026 13:48:51 -0700
Received: from byapr05cu005.outbound.protection.outlook.com
 (mail-westusazon11010036.outbound.protection.outlook.com [52.101.85.36])
 by m0482515.ppops.net (PPS) with ESMTPS id 4e0yjmhp0f-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 13:48:50 -0700 (PDT)
Received: from DM6PR01CA0001.prod.exchangelabs.com (2603:10b6:5:296::6) by
 LV8PR16MB5982.namprd16.prod.outlook.com (2603:10b6:408:1f4::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Thu, 7 May
 2026 20:48:45 +0000
Received: from DS3PEPF0000C380.namprd04.prod.outlook.com
 (2603:10b6:5:296:cafe::f0) by DM6PR01CA0001.outlook.office365.com
 (2603:10b6:5:296::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.16 via Frontend Transport; Thu,
 7 May 2026 20:48:44 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 DS3PEPF0000C380.mail.protection.outlook.com (10.167.23.10) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Thu, 7 May 2026 20:48:43 +0000
Received: from pps.filterd (m0373460.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 647IsKcF3447282
 for <xen-devel@lists.xenproject.org>; Thu, 7 May 2026 16:48:43 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4dx24y6adb-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 16:48:43 -0400 (EDT)
Received: from localhost ([19.12.92.222]) by cmsmtp with ESMTPSA
 id L5eCw9m1N2nrKL5eDwGc4p; Thu, 07 May 2026 20:48:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=yIaeevjQXMiiKHvF/coz9KCKM8p
	2ola7OvM3yo/BED0=; b=gnU8HHkgL4uKDwwXK/HqSua1k+k24RuQCjGbD97G0cF
	BXXLKa2emyvHkr8LR9Xgk02fRoHbD+6kyBRUG7h98xnE0kNxp4XnljE3HF9PThL9
	V1B2sw6aRYqgKbyE4jf9s8BzCAu85knQDN7jlW/jlQA15wAovHN+nVsH2D8iacdW
	6fcD01Pvc4KknWUA+tdkk+gmfiMQ6G8Cxsagysw9aLq08rU/auwQ1Kb8D1yiQDFq
	NbJtsVF5eE+WAw5VpeFyCHDTdibvrjX0VrD5zm5O5jDquIysGT2UOh6/v0aN/P7t
	nCDB7ELOYuQtKaT5F4LHAf32FIyawL+IwLqwLeXwPxQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aQybK5bLWT3KgOL3J/QZwevk55XRiI1+PFJzdFL03Vb1mQGPDOxLyHFSyqRWZt+/vW0sTEnfmWzWw2jLWmVJcDSQ3cwe3drESRfilIYPfZlWp4ZvqcWHBcd3NJf3RXDUrQzbQ922V7aNmG4WwPinLHaMdh1NFCJfEjetvS+j7As87pQCE9bLVuomk8phkk+aNv4RUWqSzjMTOV9VenO9HtqD85TC7ELyaaMc5FiI8IFR7ObjWIxZEkZf+coFSEVtz0jiuI0xcZQYwi6diYU6hgSHaLpHqcPJEe57c8kBgN/5vmYCx1GoXmBTFoevve/WO+/6cSPBvNroKbYmibH3ng==
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=yIaeevjQXMiiKHvF/coz9KCKM8p2ola7OvM3yo/BED0=;
 b=k9kT6kCsTUmgLiTq6qPrivwfioJJdSek67WPHTuBSQ/MRWZYIP8UIGcwYWr4vLbhPoMHKrDiIAIEzHSW+bdsJfXSNPhFKiHcufyTzagwyoC4FTiregdgmKejsPWZCLJbElA15nK3Zx2BxXt+f61KSHy2TFAXHjlVGF8AT2Gyqk7YqHgZz62nGOcRkJ0wBio5WxZ94mW2RfSxnElpYY/UHxQfmK0U3Dw2apkFR8B3PJBwvjAUImN/fjysCZmS8/35e4iJ6lcWnGoqkh2Z7dxOyM7aT9d3WFouGy2EJA/g5kFMk39GWy2AqCm+QUF3XmxkfixgUFuwhlmSpBGcKqQSIA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yIaeevjQXMiiKHvF/coz9KCKM8p2ola7OvM3yo/BED0=;
 b=ChT/5Qm13CO+oeW0qXP25NNfd1K6mzqusIpcc+6Gr8UraIYuHgY2++JxxRPleznxyqr/+y9GvtJMeHokzBrx4QCqbj75pMdYTjMHDh1JnQgKxKN972HE7FBrPj8ByM5xNJNQS52N+phG3llsXeSkqyvHyoQ1Hh4WYmHP6YfgTBI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=yIaeevjQXMiiKHvF/coz9KCKM8p2ola7OvM3yo/BED0=; b=CqKbOwznjy7B
	YrP4aRlW52O7DtYbG1KdZzlgzKQw2slpSLQ+6eC/d7PhEzSxFaO8/EYJ92plT3v3
	wNqrhfiy64ep4jpAZD3+JfsSMdn6trkvRvBTmdCZpaHoVv5IBBMZ8TFuZVmEvzgx
	/yMioE0000GytwD3R/K+1PatKEZQpL9/dx4PAaX4pT9uIYk6d1WS6Va0JXY/wgFw
	37rOumyVU60vDRi+J6ODtAGns7klabzIECXA1jYkME8Wz60DAfa8uT8+JhNh0gTS
	8AMfR9oSYTIrmrgtegAUaw8DT/4xZNT4iRDw1QB4O4ZeTpyRk6nQ3ksq4iDBqhO4
	orTo07fSGw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=yIaeevjQXMiiKHvF/coz
	9KCKM8p2ola7OvM3yo/BED0=; b=ugd54omSfUIGHHNgmQxvg+ezf9PxSnT0T4Ts
	QMfzmksn1mkubmimJfh55QICItK5uty3pXX1Re9pEaPMKBi0qAov64bIHTkJtTFo
	VApTvjydEue8vINz8rW8wMx1+P0Xz5Xaj5nxTYHEFKTtIPwohlPuk6Bc/5JqxiBa
	7e6z85XqVynAiqmDug3LpTs9GHbaW8O+jWktqN2C28yy574TgIFn5g8RlpDzCabR
	WqZwRAmxhmECux0lLlwGAyIZaknuzxCUQ3epN/Z9ZerDRdNd6lV0JTGJuon5Uvlr
	FFHEpHqmNSy2rfDIlxFgKAVio+XRj4pmA1K3xhVt/QPEway7aA==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: L5eCw9m1N2nrKL5eDwGc4p
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Thu, 7 May 2026 13:48:40 -0700
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: dmukhin@ford.com, xen-devel@lists.xenproject.org,
        andrew.cooper3@citrix.com, jbeulich@suse.com, julien@xen.org,
        michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org
Subject: Re: [PATCH v7] xen/domain: introduce DOMID_ANY
Message-ID: <afz6qAiD7uyoXIfI@kraken>
References: <20260408234046.1314021-1-dmukhin@ford.com>
 <1776866876.8631fc262581453bbf619ec5b2062170.19db584dbc0000f373@vates.tech>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1776866876.8631fc262581453bbf619ec5b2062170.19db584dbc0000f373@vates.tech>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-07_02,2026-05-06_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 bulkscore=0 suspectscore=0 spamscore=0 lowpriorityscore=0 phishscore=0
 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000
 definitions=main-2605070208
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF0000C380:EE_|LV8PR16MB5982:EE_
X-MS-Office365-Filtering-Correlation-Id: a5244add-af2a-47af-0de3-08deac7a073d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|376014|1800799024|56012099003|18002099003|22082099003|13003099007;
X-Microsoft-Antispam-Message-Info:
	MIs7emsESZXy+IgSJJk7m0ELO1t4yfS5UMUOLxTiLzfvtNqiYQu46Oy4jLOvncsj9GrdrzGYYCrRdQ9kIap0XiE1827gW3e7XDO3kHx8h8M7k1uTHuynFspmnhwKi4PNb0/hpt2JW1LWPzkkn4awQzcMvEeiTfK5rICHDLKQT9mJkekq5jpRDOvRiiZnqza2rx5SQGslCbwITxuKjqJFoNI0dJSQUo/uTjQOBuEWejZtJD4UmWQtB5K1IFjv181FL2oSS1+r/PwGdHbDM6DD9r0WkUGGp3JfNh6eDvTn1TbwfmzlRre/IKLMziJn0J6G5++iLEnVPFoYtrv5vXd7khqQXQUFH/zbAIXjkFrFB5rKFPnAmBPPhqWWfcKa0zFDDdptDrfxrLjpO8WGvsL1OoEJ8ZUce51K0TFGoN+XE90GqeIl0RV4VwHBr/JkxFVcD7HrKuG05fDqtD4RwPY58k+mGoS+otYeRRCj99wcHActHXVMFAeTL7SuRLTR7eRuQK3wTLTMpblrJm0gHu9OY535rq7J8cd/MPjrOpBM985i2K39NFi1Wru64qRwyIMml4Zs8y2MPcJdvtINkzxxYCm25PkNViGox8tDEQ0hNx8mHf5Q5hLEOFZ9P6POc9yV0DyDPAilkJMRYLzaKyEqjbKfsOwrKW/tokYzPf53O2qVal/fgTgDsyaCf2sPcdbE
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(376014)(1800799024)(56012099003)(18002099003)(22082099003)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	SJHBHW/+Mqka+eimQa9mgKwKUqYqDjT2RXqFygVG/1WpX7lj8mq5VkiCR9OcEG8j5AMQfOjbEMEd6grIpYgtHYdCiV2uPYw8ErmMDyaR5xuOa5KJpKvlvqWiiO+r5jjnQIQ+y74QcCYe4GLlitoFdWuChxR0PPwnD5ta3lPni3iaaeS44diFEG4giDihy0Q9TjpUnurSFpV0cP3hGSk78Xyue0cGYSMSiSVER/ph3Fog8TY4k6BbRCMreUItbX9zf6BWGXJSZYyifsw9tJa18j6fTt3h1T60878u7gjPCIDt15jjHCOgj7APYDYgwQcsWPqCyWf6sW34XVYwOvytsbe75aVSp1F1AxVFBWtaI65nDs0ODW1CfQfbEK16RBX2ihRcr2M+ZZCev4un+AbL+r5snfREJYE9DtMPAeLquIU7xaIAefXRX9LNVfMafGgc
X-Exchange-RoutingPolicyChecked:
	q/WOP6jiAuGSpN31p42Eqe927oY9ZAlFzxoBD5/uAf0KrX5fPAhUwNaPrySPzLbYpx5JfSvCKk7/bv9JtuCJobv+g3eHvT/6pI+aFIK/KcrNi/qHV6uPgzAEf22dSZkCldW9m97Ux9SKAg4UqkICKVVr9FLtjqPOy8GdcYgGXXk64fpkDW3ZW7JkT+RvZlRkX8+qdAplLP2/aCI61iEFIo6VT+1eTyurRFJ5o4gtTZWDZRG8mEHNl4kWpZ2CbHGBRHwf0RQ8LWXKB6MPeSsSzJJk1UnvCVDjS5tumm0FQJNH3VhdK/Z67Voo4paD3trJ/ZJ/wDap+WhxomIZTM3eXg==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	YLH75uicnOf+lplB3GB0PsDCFIJP6zy3CLiDUmhvpX+uO5by81u+Uw1+o9TK6LhqxQedSJhxBPGeERcRyo+KNmrSqx2voVCVYT3rsurD40bT560hkh8HMaaUW2zYLhj1ScljqKcDNBLFco8DwOsmbebjsrYTR4dCwToN298h/vukrTfkNHu6zSH2AluWW+0Wv9qmZtJThVHJeUpWfxtKPwKaU2zeo9SoBUNCMITK0FJxnn0iZ771w9bBxzEgx2FyytGcFqDGYoPHNJEVRycrduP28PUuWgNOhYAx4B0Fm+n3rk1giEehBfU9RGS+N/0vRrGnIm5fl66wsb8Tqaz8YytDzSM86lnN/LmcXYJd5nUS3u8DhZw2JF2vv++x7FkRiQbqjJmvVCoOVB1BO6lm4tmcPYVt7aZy5gJIO8gCTnkK2ubqAHuhf60IAmR6bZiqrBRKWTFd5GAg0jL8pVi+k8CiSLTjZlyGWTauRkpcOIOXdC6gankBzsr+nFEVQ6aFrOqHdQa3AA8CAEr9Bz2BeG3g/wt5Bgi0n4Fg4PJo8bpZEoQ6h+7lreDEESVx1R+HrV+XrFxjg0iWkHGur1IDZ0yYQy9pOsEsc58uUuFCZ8lzKmPVWbhp6dJul73NuE/C
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 20:48:43.8509
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a5244add-af2a-47af-0de3-08deac7a073d
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF0000C380.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR16MB5982
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDIwOSBTYWx0ZWRfX89Jqt6O+pnic
 cfYf2EOKDke4lAvhN9waRjgtIm+hcEvHtJm2wlyetmno02iSw7hy6eTAcNeagAqFWUzaICrt7pe
 u2V1VsRuEndO711FsXWiWGcAYAMCGzUgxI3aJM/UFEO/NbHHVqRmv55ZgmCW1+MR6pwqaKYpILq
 mC3CE58AyQm/9eKcx85Wj5B4h/3WB26Uhxi1hRH+9TIpe6DvoEMD+TVSk9bkwoiOZz5xdOCfYW5
 WmcudPlzqBrgEycCaLtIVE77tSDldJ+/h5UwxoAyTSOh0kmfp3ePypzvGKZwI0Utbdet5PMJ02O
 FIHFKoFrQ3LjNGq42UV0eMXjmjFZQR4CMJepXU/yb+AuQhIVFH1O/lL+Hh2eBa5yyBZIjizzeje
 EwnEbTtbju2yP4JUZ6TM21jcDiStxPuovrfmHeGFh1ikE/XpI35A+5ei8YHtRXcG6MlS0L+fiQh
 NIuTNxxG6XEXrZOZTxw==
X-Authority-Analysis: v=2.4 cv=UM7t2ify c=1 sm=1 tr=0 ts=69fcfab2 cx=c_pps
 a=Pnh5LeqhM4XIZ/aCP1A8uQ==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=0GA0A_IKJoUHBEAzNTkD:22
 a=VwQbUJbxAAAA:8 a=cbNQJ9GKAAAA:8 a=p0WdMEafAAAA:8 a=-RI0ju8yAAAA:8
 a=J0Q-xWDkcNhgyuBBokcA:9 a=CjuIK1q_8ugA:10 a=G69WFyCBNqGPyalROSdv:22
 a=UsJdYLK5l2RqpxBViBoK:22
X-Proofpoint-ORIG-GUID: c-pWQBHyHQEV7oY36qSPldj9NfsKBxpq
X-Proofpoint-GUID: c-pWQBHyHQEV7oY36qSPldj9NfsKBxpq
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-07_02,2026-05-06_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 lowpriorityscore=0 malwarescore=0 clxscore=1015 impostorscore=0 adultscore=0
 phishscore=0 bulkscore=0 priorityscore=1501 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070209
X-purgate-ID: tlsNG-d62444/1778186932-AE342FF4-6844BB99/0/0
X-purgate-type: clean
X-purgate-size: 3408

On Wed, Apr 22, 2026 at 04:07:55PM +0200, Anthony PERARD wrote:
> On Wed, Apr 08, 2026 at 04:40:46PM -0700, dmukhin@ford.com wrote:
> > From: Denis Mukhin <dmukhin@ford.com> 
> > 
> > Add a new symbol DOMID_ANY to improve the readability of the code.
> > 
> > Update all relevant domid_alloc() call sites and harden the domid_alloc()
> > input value check.
> > 
> > Also, fix problem with passing invalid domain IDs in
> > XEN_DOMCTL_createdomain: turns out libxl__domain_make() (toolstack)
> > uses 0xffff as domain ID.
> > 
> > Amends: 2d5065060710 ("xen/domain: unify domain ID allocation")
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v6:
> > - fixed libxl_domid_valid_guest() check in libxl_create.c
> > - Link to v6: https://lore.kernel.org/xen-devel/20260307025451.3148078-2-dmukhin@ford.com/
> > - CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2438790748
> 
> Unfortunattly, this patch breaks tests in tools/tests, see
>     https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2471684142
> 
> The tests produces this:
> 
>     Running /usr/lib/xen/tests/test-mem-claim
>     Memory claims tests
>     Free pages: 3059012, Oustanding claims: 0
>       Domain create failure: 17 - File exists
>     FAILED: /usr/lib/xen/tests/test-mem-claim
> 
>     Running /usr/lib/xen/tests/test-paging-mempool
>     Paging mempool tests
>       Domain create failure: 17 - File exists
>     FAILED: /usr/lib/xen/tests/test-paging-mempool
> 
>     Running /usr/lib/xen/tests/test-resource
>     XENMEM_acquire_resource tests
>     Test x86 PV
>       Domain create failure: 17 - File exists
>     Test x86 PVH
>       Domain create failure: 17 - File exists
>     FAILED: /usr/lib/xen/tests/test-resource
> 
>     Running /usr/lib/xen/tests/test-tsx
>     TSX tests
>       Host: RTM 0, HLE 0, TSX_FORCE_ABORT 0, RTM_ALWAYS_ABORT 0, TSX_CTRL 0
>       Got 16 CPUs
>     Testing MSR_TSX_FORCE_ABORT consistency
>     Testing MSR_TSX_CTRL consistency
>     Testing MSR_MCU_OPT_CTRL consistency
>     Testing RTM behaviour
>       Got #UD
>     Testing PV default/max policies
>       Max: RTM 0, HLE 0, TSX_FORCE_ABORT 0, RTM_ALWAYS_ABORT 0, TSX_CTRL 0
>       Def: RTM 0, HLE 0, TSX_FORCE_ABORT 0, RTM_ALWAYS_ABORT 0, TSX_CTRL 0
>     Testing HVM default/max policies
>       Max: RTM 0, HLE 0, TSX_FORCE_ABORT 0, RTM_ALWAYS_ABORT 0, TSX_CTRL 0
>       Def: RTM 0, HLE 0, TSX_FORCE_ABORT 0, RTM_ALWAYS_ABORT 0, TSX_CTRL 0
>     Testing PV guest
>       Domain create failure: 17 - File exists
>     Testing HVM guest
>       Domain create failure: 17 - File exists
>     FAILED: /usr/lib/xen/tests/test-tsx

Yeah, I did not run those tests locally and the failing tests are not part
of "basic" CI, certain gitlab privileges are required to execute the full
CI test suite (as it turns out).

Perhaps tools tests should be part of a CI runs available to all users,
at least on demand?

Sent v8 with a fixups for the tests:
  https://lore.kernel.org/xen-devel/20260507202840.293269-1-dmukhin@ford.com/

(Thanks to Stefano with help on running a full CI cycle).

> 
> At least, the domid test passes :-)
>     Running /usr/lib/xen/tests/test-domid
>     PASSED

:-)

> 
> 
> --
>  | Vates
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Thu May 07 21:44:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 21:44:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303079.1576633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL6WJ-0003ti-Eh; Thu, 07 May 2026 21:44:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303079.1576633; Thu, 07 May 2026 21:44:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL6WJ-0003tb-Be; Thu, 07 May 2026 21:44:35 +0000
Received: by outflank-mailman (input) for mailman id 1303079;
 Thu, 07 May 2026 21:44:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wL6WI-0003tV-Q1
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 21:44:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wL6WI-007a6x-71
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 23:44:34 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69fd078c-2eae-0a2a0a5409dd-0a2a450cebe8-28
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 23:44:34 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69fd07c1-62f1-0a2a450c0019-ac6904feca48-3
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 23:44:33 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 8AACC60181;
 Thu,  7 May 2026 21:44:32 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1C3A4C2BCB8;
 Thu,  7 May 2026 21:44:32 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778190272;
	bh=g9gkwhBzLCLWdEpETe7NYqO10AySs39ht2qN9qx5eE4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=uBebvsDcjmQy5AczypFheKEURmWdeT2cU/+k4wO2rnahqfErIcI5UibBlnSkEBftQ
	 StvtbxZ21Z3wFfKlHSjYE9E0+4S2y6U5pS75WvoEi+PrOkTHeRzmVOT8fGNZ8w+GP3
	 TPDSMvgU6L/pq/OuSpOWyv/0JdytcKWGXE0XOp7vJNEF8ECKW3ZgIu5t4ltQafFdx4
	 xbP8snXv0/Oc+OESZqO2FMlvVYY6QTWQ8FAUqPAOPkA+bK1fU98U+UqtXtB9jbeRcy
	 kpmUOHwF90+IJ3rgAG+J+O2V/RohgJn+8wt/HJw5imEb1O380THUzd+DVhvO/0Uej+
	 T3LV/YMwpelLA==
Date: Thu, 7 May 2026 14:44:27 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] CI: collect certain intermediate files as artifacts
In-Reply-To: <540ef3bd-6fc6-4cf1-a1fe-3def9cfcc114@suse.com>
Message-ID: <alpine.DEB.2.22.394.2605071441490.1779943@ubuntu-linux-20-04-desktop>
References: <6d9345e7-7ad9-48f4-8447-3a955305430a@suse.com> <alpine.DEB.2.22.394.2605061748080.1744448@ubuntu-linux-20-04-desktop> <alpine.DEB.2.22.394.2605061753050.1744448@ubuntu-linux-20-04-desktop> <540ef3bd-6fc6-4cf1-a1fe-3def9cfcc114@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-d25034/1778190274-DBB7CCF5-6B46791F/0/0
X-purgate-type: clean
X-purgate-size: 2612

On Thu, 7 May 2026, Jan Beulich wrote:
> On 07.05.2026 02:54, Stefano Stabellini wrote:
> > On Wed, 6 May 2026, Stefano Stabellini wrote:
> >> On Wed, 6 May 2026, Jan Beulich wrote:
> >>> When one of the linking passes fails, additional intermediate files are
> >>> still in place. Having them available for analysis of the underlying
> >>> problem can be pretty helpful. Collect some into a new intermediates/
> >>> directory. (Nothing new will be collected if linking succeeds.)
> >>>
> >>> While there also make sure xen-syms is collected (into binaries/). This
> >>> is rather more useful for analysis of possible problems than its stripped
> >>> counterpart.
> >>>
> >>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >>> ---
> >>> As the issue this is meant to help with didn't re-occur with this in
> >>> place, the new logic wasn't really tested yet.
> >>
> >> It looks OK but please provide a link to a successful pipeline
> 
> Well, I had it in use in
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2503967215
> but does that count, when the issue the change is for didn't really occur?
> For now I can't test the additions without having a way to trigger that
> symbol table issue (or any other problem at one of the linking stages).
> Short of artificially breaking things, that is.

Please break it on purpose. Just push to a temporary branch.


> >> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> Thanks, but the above wants clarifying first, and the below suggests you
> actually meant to take back the R-b.
> 
> > Actually, I see that the build script is run with bash -ex so I wonder
> > if collect_xen_artefacts would even run if make fails. I think we need: 
> > 
> > trap collect_xen_artefacts EXIT
> 
> I don't feel comfortable making such a change. Furthermore it's unrelated,
> as it would mean that on other build failures successfully created final
> binaries wouldn't be collected either (after all on x86 it may be only one
> of the two links that failed). Plus then it would likely want doing
> differently, by making the EXIT hook invoke a new
> collect_xen_intermediates(), leaving collect_xen_artefacts() unaltered
> (except for the xen-syms addition there)?

"trap collect_xen_artefacts EXIT" was just a quick suggestion to explain
the type of change that would be needed to make this work, because as I
understand it, it does not work now.

>From your comment I don't understand if you think that the patch as is
would work as intended or you agree with my comment that it would not
work.


From xen-devel-bounces@lists.xenproject.org Thu May 07 22:06:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 22:06:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303098.1576642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL6rq-00071O-5P; Thu, 07 May 2026 22:06:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303098.1576642; Thu, 07 May 2026 22:06:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL6rq-00071H-1w; Thu, 07 May 2026 22:06:50 +0000
Received: by outflank-mailman (input) for mailman id 1303098;
 Thu, 07 May 2026 22:06:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Volodymyr_Babchuk@epam.com>) id 1wL6ro-00071B-O1
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 22:06:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wL6ro-00544V-4z
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 00:06:48 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69fd0cec-e002-0a2a0a5209dd-0a2a450bdefe-40
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 00:06:48 +0200
Received: from [52.101.66.140]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69fd0cf7-212f-0a2a450b0019-3465428cc5f8-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 00:06:48 +0200
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AMBPR03MB11797.eurprd03.prod.outlook.com
 (2603:10a6:20b:77b::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.17; Thu, 7 May
 2026 22:06:46 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3%4]) with mapi id 15.20.9891.016; Thu, 7 May 2026
 22:06:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YsKJWlSrobOh9ZuZYw1HtEnHBXoqnt+T54NOOpQr5tTuIGKx24iKaIUBHVbL2dUQkbKYjEQl1GRtY4CIFqvcgoE42YU4GeoZQuJbdOKWqLa7zVgVFNc0xZTmTQCPg6O3U05q2W0ZfqwbCeyn433DXMJsrWAFf8cHcAcxhnwYD/LXuYe4GTdhYHr721rlAGT4OELqklrwQn+vyOq6W1/ZJqUJsP00ePPi6EFG3x615LEI3ZZJ4Ap6Qy2TuM2K3x8JTQVI56z5d4FjjLrZ1EgLa45/zlOr+gHpPn8vGZu6K0XFEUFYqM2dqSl+cQRl5ikO+yX9f8GwAI6niLAzZAr6Lg==
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=kKMahXZMeizvn2uXxNNtiXd1jfRfvyGi2cDqkfLqGGk=;
 b=yIEuCT7HED7h4jwcujEHaxndrGnU1NLcf7NHvFhZahb9TxMXtbhpCtNiBNmBvI2Y66Y8TC619Bp+y3IosbPrKOErt+wxRUBocbTby7ku6bNQz+9KIk1qZS1YAfDeEIzbONuOEnQUJ8WBGB8D1PbDFLDsFhFgKLWIZA/wwSbm6mT9vZkOQh/+sWTA0WkeeQ85VTg7+cIxmGlXkyUGyxEpAYybHwtWCscWf5mx2ttN2PSWXpzr4fnb5cJl2n870QQKsR3ST4er17eKpQ/LfnEHBt+BWFhoTYL9MX+fdAmFHS4gbvWyZekJwfptZ56O7W6qQbOdES6rgSmybIlcWoAUCA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kKMahXZMeizvn2uXxNNtiXd1jfRfvyGi2cDqkfLqGGk=;
 b=B4f+2HzaS+ZxYTZL+vOczeJsuqz5QJpx6x0iUCC3PnXKsf+0lWL4iMsEjpA5wDGmlEkZeIezY+NidUhvvRnRXpaN1qvE9S4ZBUeIYbQtaJ6bDwUAY0MkOXNRwj2CdmFZcUTxlSmnztipAWUyBq3Re4B5Wy1zULX8yJOeqEkgidV8sLrYMJa/JGekAx7sNcGlDKThI+H9Tv0Br4vnn72Y44nyC0TBLmNL+5tCvq+mvbz8ltKJsrQkg7A8gec4lV35ZPE19BlLJCsLpG4qJqZ1mJuETpcTqYpbqZTVpW1svfoAdCqMt+sfxbkh6VpAFGVQ4AHYpB2KXBn3qimSBK5rog==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <Mykola_Kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v8 10/13] xen/arm: Resume memory management on Xen resume
Thread-Topic: [PATCH v8 10/13] xen/arm: Resume memory management on Xen resume
Thread-Index: AQHcwo4hrz/Zb3wCRUyCL/cJypc6rg==
Date: Thu, 7 May 2026 22:06:45 +0000
Message-ID: <873402ub63.fsf@epam.com>
References: <cover.1775125380.git.mykola_kvach@epam.com>
	<02b55a02f329d09c9f8b15d97ca9176b3c33017a.1775125380.git.mykola_kvach@epam.com>
In-Reply-To:
 <02b55a02f329d09c9f8b15d97ca9176b3c33017a.1775125380.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Thu, 2 Apr 2026 13:45:11 +0300")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|AMBPR03MB11797:EE_
x-ms-office365-filtering-correlation-id: 1dac22a1-1244-4094-8641-08deac84edeb
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|42112799006|366016|376014|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 Tm6GVJ4C7VMQQ9ScVm1RZiBawQxnlGnj9MwDw3bxoPzdTAkEKDdU4AqUOMdfbql9x7ySKFqZ7JcPv9ZEFeRCzLKuMqVqaxQupQ+GDf0bx/Y3E9+17tv4U+xMYGVRd4g6q9dH1LAQWamEmkEbYVYF4OYKheADIh6wXjfgbdL5ut+wCcwD0sSi7AIF7q8gmzJ2Augz2ImoeNEO+UPMCOFxsLaqtH6x4zMfRkTKMFKPeyTwbi2riIkB0T8Oh0jQdw4N9qEMXW4JAyMpQgwoXWXHevNNlFdXd/zzU2eUdhRYBoqTRq+Efsib+i/x/09QTz6aParRNaFVIYWGx9tkr+74oVSvT6AGCi+l8wpK5rZPVQ1/4GmMBJW6BmUsZdZyKeDbIZwF0nLDuw7B86yf48HBA9xdVF1l6Woy1P3pkduVJ/2d46zfEWucSxXe4/LSHdCiW6/leu7lIPWDy0YNgiIjl9JdopFhd9QCkXHLWmB81H7cCGEuEyVEVBQvYib+xT+m3ThySPOQdC+xMvV2TDPomkMt1mVPNqFQZ7MLJwx8oa9AHjHcw8YPdsgKHzkMeAmAk+U4hR/ZqKDwHbDnRQlpI3UflbHruqD/3HpM87TIDDmoSHIlEozf36kLXKxldqhVsVQkIndnxDP2xBCl0v6LyuZ29IWTOy4KPckpIiSSbsscaxclNJyUT4BbrrNtUczMgBmpC+n+fvXmsrqNRhq7wvpx4KV0ppzPtrTw+4Km1N+YL1A3B6UEfAFQVdWgHLkI
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(42112799006)(366016)(376014)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?J0ycifZXGdD+q99P+lyK7RrlCnbFcvosBilY9VmFocOVrDictR5IE+jMqH?=
 =?iso-8859-1?Q?TpcbzEqjx6cX2LTARu80VtJOwrtVVLPz91l12gKtbVend875JEeIOkJYTX?=
 =?iso-8859-1?Q?HOet+Ki3WABXqdj/jI6AbpKp+o9+Avmcyp8k8ltCuSkczgkp+wNuOr5Le1?=
 =?iso-8859-1?Q?xtiNDXPgs7mMY/+W57ZWX12yH4n6sP/bGl6Hqe1a5PCInEVadvGrVb1eSO?=
 =?iso-8859-1?Q?45564+5uRzSX7xHys0M3zNy4IgQJPKldgiXhXtAlmZBiLK5G1LaTijTz5E?=
 =?iso-8859-1?Q?ash6YXKdQ4llo3Jb2N9M8tlMSXoAIAHpIMAMl8XicybDRW//CNr/R9ZDaU?=
 =?iso-8859-1?Q?ODEyYGo5QSAIrvqlZMPVIOOXtxI5JAwJNjaDcp9qIR+ublzBWm8M1f3HsV?=
 =?iso-8859-1?Q?e+37pbRoZ5LkWvJfCfSBmy+pk1xxnK5VP06dWvERQIXBZJ/bYhJdZUrvRP?=
 =?iso-8859-1?Q?5Dk1WkTi7U8F03oM1rdJwjQ9G7kUSCy6jJNXn90CweJGMQRJxQBscKmzXk?=
 =?iso-8859-1?Q?TsxN+YgMlpwP5teEXg2JnHQVRoDaJVDlZ1FJVN4LmcuUzIbkW9HRN5PikA?=
 =?iso-8859-1?Q?jTRAPLNLUIeT6RJShaOwfJkgdy1sfOETRwBK1g+v802RsmprYuQFA9vzXy?=
 =?iso-8859-1?Q?c//kCzEyn/l3yWnNJ+qSnqulcvkQDBbuDa9pnM/PiLB8KPROE6ELx1Ore7?=
 =?iso-8859-1?Q?p+nqXwFm2nVIJppl1Qi+xFrwRp/24Jul3uqAWHsO8CP+usPXaGXEE40isI?=
 =?iso-8859-1?Q?7aEhBbe/5mYFnjjr6dRpCHQQFH4njWROVQrA4jpr/flArM1qis3rBRbsxT?=
 =?iso-8859-1?Q?TlZxF69DdWCnrdSIC5RNbVi2U+KupNwT/+9ob+r/WwIOMtPUIN0UB6CZwk?=
 =?iso-8859-1?Q?qFgP+Ct3iv3aKRSq/YS2OP/VC524OiZlVNvmv5FhRjUPM7fdRBt1LHcWcK?=
 =?iso-8859-1?Q?qZSddFVlCJHXyKBfJ9ghxymvybTFew8ZPHOSLRaAd/T345knqfRE8Exazx?=
 =?iso-8859-1?Q?o0bPjR8FdhktQKyUvXnZbDQxhXCcv/1/RW4mvuZ6HQ/xRrF7TrFt2YUr6B?=
 =?iso-8859-1?Q?H93Jo/6uwDji4KfqOFT0tOpWn0c/cJlnsmWxSpWYlC/df6YwgrL2xWhNWb?=
 =?iso-8859-1?Q?vPp4CahE6HOG446FEjJCA+b5AX9fXVNbORWbPAOqDNMgRyAkFiLHjpo38C?=
 =?iso-8859-1?Q?Hh2zKWSMekMLxFNurINC/tm8NpKvsHv5qKK04FZCkyrD0hHy54XlldTKXW?=
 =?iso-8859-1?Q?BmI+xoqskrjT58+aM5dLF2rEoELRbT6dqOgW8eVjUFzyx4BYSKIDSQfXud?=
 =?iso-8859-1?Q?e7BG04qrxTY+XYDilPXGopubBM1iykhRiLvOGJ3PsWctPuegm9IgkB37K/?=
 =?iso-8859-1?Q?gQxAsqFkcyv5BH7GhwJs340WSaYCoA3IZelhj79uBoIPCMgljU0HLul2oF?=
 =?iso-8859-1?Q?BeVGxxjAM5e800+I6Hy1dpJgJasDrk69wek7rMRikn2xnH2ApvX/1Zpz7l?=
 =?iso-8859-1?Q?uclTXK0ozZZKbeoidN3F6z+i8IQUOGXqY990RO4BIvy9r6KXKfL04esbMj?=
 =?iso-8859-1?Q?O2ukcLmJjj4JnIGyEhG3HqvTEPUZLWyNePs/fqC08+pS4mbS+eAbXeEAQ7?=
 =?iso-8859-1?Q?ONuDVUt/lz7EGJVKutS8DHeRk5NuJjoYYMUxY0gAgo4hp2RGe0uevkRizX?=
 =?iso-8859-1?Q?5OGTsCJGp9FQf9edKpJJ0MZLm5EOcH085mBEKEZabCxn+CxP1ABuwgEta9?=
 =?iso-8859-1?Q?cm1saRZNTy4vS+aSiFCk+n3MukdurDnsWIS8jGhlUV/9nfVbkUQFR57LPE?=
 =?iso-8859-1?Q?Hn2q+WL7ZMgeONAFQv0EO7wshGWhB44=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1dac22a1-1244-4094-8641-08deac84edeb
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 May 2026 22:06:45.9904
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: zrP1uSZM1bqsUBMlzfQ0E7RF4OqZmLXW+8nwJoPdFVNHAfngPOaB7B4eWxQJbz+ww82E5oEDHgWqpTw7Zo6GJ/cCcOjP1SvkGgVn8XymVxI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11797
X-purgate-ID: tlsNG-42698a/1778191608-13979F3B-22283C5B/0/0
X-purgate-type: clean
X-purgate-size: 2134

Hi Mykola,

Mykola Kvach <xakep.amatop@gmail.com> writes:

> From: Mirela Simonovic <mirela.simonovic@aggios.com>
>
> The MMU must be enabled during the resume path before restoring context,
> as virtual addresses are used to access the saved context data.
>

I agree with Luca, this patch does not makes sense as is. I don't see
why it should be separated from the rest of the resume path that is
added in the next patch

> This patch adds MMU setup during resume by reusing the existing
> enable_secondary_cpu_mm function, which enables data cache and the MMU.
> Before the MMU is enabled, the content of TTBR0_EL2 is changed to point
> to init_ttbr (page tables used at runtime).
>
> Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
> Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Changes in v7:
> - no functional changes, just moved commit
> ---
>  xen/arch/arm/arm64/head.S | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
>
> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> index 72c7b24498..596e960152 100644
> --- a/xen/arch/arm/arm64/head.S
> +++ b/xen/arch/arm/arm64/head.S
> @@ -561,6 +561,30 @@ END(efi_xen_start)
> =20
>  #endif /* CONFIG_ARM_EFI */
> =20
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +
> +FUNC(hyp_resume)
> +        /* Initialize the UART if earlyprintk has been enabled. */
> +#ifdef CONFIG_EARLY_PRINTK
> +        bl    init_uart
> +#endif
> +        PRINT_ID("- Xen resuming -\r\n")
> +
> +        bl    check_cpu_mode
> +        bl    cpu_init
> +
> +        ldr   x0, =3Dstart
> +        adr   x20, start             /* x20 :=3D paddr (start) */
> +        sub   x20, x20, x0           /* x20 :=3D phys-offset */
> +        ldr   lr, =3Dmmu_resumed
> +        b     enable_secondary_cpu_mm
> +
> +mmu_resumed:
> +        b .
> +END(hyp_resume)
> +
> +#endif /* CONFIG_SYSTEM_SUSPEND */
> +
>  /*
>   * Local variables:
>   * mode: ASM

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu May 07 22:17:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 22:17:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303107.1576651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL725-0000Tg-7t; Thu, 07 May 2026 22:17:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303107.1576651; Thu, 07 May 2026 22:17:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL725-0000TZ-4d; Thu, 07 May 2026 22:17:25 +0000
Received: by outflank-mailman (input) for mailman id 1303107;
 Thu, 07 May 2026 22:17:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Volodymyr_Babchuk@epam.com>) id 1wL723-0000TQ-5l
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 22:17:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wL722-007eMf-1r
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 00:17:22 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69fd0f19-bab6-0a2a0a5309dd-0a2a4509adca-36
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 00:17:22 +0200
Received: from [40.107.130.140]
 (helo=MRWPR03CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69fd0f71-2497-0a2a45090019-286b828c3707-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 00:17:21 +0200
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM0PR03MB6212.eurprd03.prod.outlook.com
 (2603:10a6:20b:15a::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Thu, 7 May
 2026 22:17:19 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3%4]) with mapi id 15.20.9891.016; Thu, 7 May 2026
 22:17:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=f5MEGmy/J+gX5vtF5LqRN11jrak48WBgme41K0T+4hWH6F7TVRDvaDN+CXj0NZ2vuhzhhpYXQZUxP7oA6pymslBGdt7L8IiDIZDKBfMcsUneXD0p3B/e/bB4iEZSoCK0USddwyxPWPJ3PQ9rka8Unxcd4RPX/o3vEhB9K+5lvsF0itGoNJFkzcorFnyF7PLMLotFSaDNNfJoNwf5mqoMTsAwckBdSfxdIfuHQd7KJEYngUoVYx7k7GvsjlBDybVTvKBS6zki+GzlGByh+gAOARGTEK312Fzl8GOBOhZ3jsCMYQcOf3dEl4i8G/p2RGKjcim11tY0wOpcu1mKXEHNXA==
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=5gj+H61b4cBPdhCrcTDxbYcNZB0RnTmLc5YJRzY/mpw=;
 b=DIG4Eat6loYlmA87X6O9aH0RgBJ/UqrE5OUDG8ENegsYhIAaoaCMCFnH4Dx2cOrVQqrhJvctU0/Bo6NAevVeg42gIbBT7bPatU+PE08FZaJKMGOmsvPi0OdvEPMNW6O374mgJ03wlFF1yJyV8tT5gKcp/p+CcGQA4eleNeQ3sV1Ke7Yw5LRuHlMICr4qcGDjkkQTIXhTJpqraOAIsrO8igzaUqfDPFI4GHhwcUYXzfqBCcY8Ls4rdSlbw+I3R49PHjnnR4R7He/QzomlLqZzYhKfYu4rDidqUF9mhu0XM7i2xvbbOQJtrb8LIcdn6ngiIe9BA4wZlq55ifnkAeSXVQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5gj+H61b4cBPdhCrcTDxbYcNZB0RnTmLc5YJRzY/mpw=;
 b=j7OLvvOvF01Swj8VkNF5AIikZ99svwxBpfKOUyALLoZgoW7O0nG1pTkWt7XB0N2iVhsLP3TuLG+whl5pcmcCsy5XxXpfFKqKKwv1DM2f4P8ULpEoDzc6nkyw6h2iUxdGI4e39pEg46AknizWD0K9rFu+A+FmkeMiiZfAHqK8TuaYDY3/vZ5ZO6p2ZbfOoW2yo6Pe+EQjxX8Tf+DHsgx2fXfEK6ShDjGKi3k0+FhcD21BtxY8GNVXxja2HJ0q8xOTIdF8QbEMsq5J1WvizLc9p1TgpxPkQNRgoAtkcQxuvsuC/9CGn466mjFzXrfR9ovnNfSosL8x7axlZrmfgpny0A==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <Mykola_Kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v8 11/13] xen/arm: Save/restore context on suspend/resume
Thread-Topic: [PATCH v8 11/13] xen/arm: Save/restore context on suspend/resume
Thread-Index: AQHcwo4hPbJwnp+6uEuyL+cZ1kMgQQ==
Date: Thu, 7 May 2026 22:17:18 +0000
Message-ID: <87tssisw41.fsf@epam.com>
References: <cover.1775125380.git.mykola_kvach@epam.com>
	<f87a2bcb6b09e95e07e51c27541ad91406e849d1.1775125380.git.mykola_kvach@epam.com>
In-Reply-To:
 <f87a2bcb6b09e95e07e51c27541ad91406e849d1.1775125380.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Thu, 2 Apr 2026 13:45:12 +0300")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|AM0PR03MB6212:EE_
x-ms-office365-filtering-correlation-id: 913b6b2c-ba50-4cc1-0074-08deac866745
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|42112799006|18002099003|38070700021|56012099003|22082099003;
x-microsoft-antispam-message-info:
 FyTFUJsuk2TY+xKhwJA8ceED+HtkePVhPqXYp5nfbYLXlyv552kkn18mxXjElYf409iDemuHpJknMNYiU6dLJ1vSTBxX1ZglRS9k7N+7lNgrD62WTsP5YqeA3i2ysbbPMqt/zD/rHZS/G0LcnaetqtAsIWJ+8XYacqvS3UP9wDRLOGDTI5Cg7noRIP+mGacuZqRKjWE2tEOapsEoGOFC+s8nxiJPQFv2Vhn2IUwakDsC5caz+zdOAk6ifA8vAl89Bcsgl0HfAO59IeDwjM/yX7PT7NHn5Q75nkPzbGO+UPAIETuXu/IcJ2mE/LQ6C6ekT8gvEejACMfci7zyNcWAXsUWXlYwkS2ahsCC2uCGCvxon0EzACKhmWe/VwS+ZfzFVjHr9ICpUoXc7faQIRFmrJioaNqnW9yrwpLqOcor+aTatl0Vh7QH+PUiiVYZRAsV5OG5aN7BPElkNBiDk/nfsudPhwxFn2xxlT4MYo/6KI/QzJmAg6i6oU60vRksAarSYf8j77C81VzUf+bEQkPsU5wNzrbLAr7tzXSTx1KWtCKlWZjMcfnpxg3cYrkgtpivxIh1ystC7CCuPICXwbdgv1YIgRqJ0EStlhZCbjW3bNi1uGjODzIs41vyPaBJeVjhQK6XvGomyCzmJFjX3M9b/75gPqhAM4x3ntkv4zS2duiWZ2iWKPk3Wg822ncHwo93P5r7zn0l+CYWjc0QgZWVzqSJLd9zWLbvX7Sn45BvkeZR8c1HuzqUxeEQ0ZbQMzxY
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(42112799006)(18002099003)(38070700021)(56012099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?6wURhop9aRvwko2xNR1DffMKV9Ly9hzEYAPsAngryHwt5+5/5ltluiw1Iy?=
 =?iso-8859-1?Q?yojipLOTJ/6NIA7SIqN13SerShNEz0Sd12a4u3tw2DAo/AzFgOx/2DayC2?=
 =?iso-8859-1?Q?NfnX0dziH0ca1zItvnNa7fDkCtyP4lI3BDj/wkt3P+XvTS4bhBS944eLB1?=
 =?iso-8859-1?Q?fXiWnS4yvV6pfVFXMMRFuQa80hmqPRh+t/WW44b5HTjxy+n3/lCqI1Zijx?=
 =?iso-8859-1?Q?ikgXUKj3WJ+0QWv6yejreEQ1HopHDDgTD5x3cNhvdF6L+GK6tTl0yywQiU?=
 =?iso-8859-1?Q?+1oq2ad1kwGT+mnyjKmqDexQCxhrdcd9cw1Q/H5qg+TVGzU+Ios5Bj9ynL?=
 =?iso-8859-1?Q?t1wFr8uh+Kn8wEboFqKtIeDlDvi5AgaSEGaPIWcBm+NJro2ZmFL45JtZKl?=
 =?iso-8859-1?Q?uxRB1T6h7XzNZiDDxtrDFnFuevHS0NCXzstzciIMfY4nOpnFpXXqGKXqAL?=
 =?iso-8859-1?Q?xaAgqH0RhGhmCPbLYQZ07QYxPO06aws9mQYKygmWd8uNMl0cYSMdcodxGj?=
 =?iso-8859-1?Q?QiJzMDpkmdvhHpuO6Agki4klOeudebUx6wM3v9O9/Uj6J1qtLG3oN/WFOO?=
 =?iso-8859-1?Q?AxS5weX4z1Rr/nIFmXE3pjCmfjDpvHPDcsDiIyLK3sA1qM2tXfyr0tutFy?=
 =?iso-8859-1?Q?4NJMf1GEYOxPt77kOHtj1fFcJf+xGtQrh1qa4RDGrAgxIxlGIfiS5Oxaj6?=
 =?iso-8859-1?Q?wWH8LBHNvQY0wRhnbMtreFJwIO3//Ef+IHEWEDdWMf4hsHxNUhbJd3ZfOr?=
 =?iso-8859-1?Q?TeTeIhT3NUXo5y4uLfMOq/ulryfZLbiTzzH4PzphDhk5aqzTWvvWUZWCV7?=
 =?iso-8859-1?Q?KisIECRC+s2Ooeu4KAL9Vy8R8KcGKCu2QQptyHh+QE40yI9NjsD/4zuYDs?=
 =?iso-8859-1?Q?ZsdbZc7oNW7QKwVk9CtZAdD0B9qBCmRn1mC1wID0HWb0xaEGrj9jDmmpmv?=
 =?iso-8859-1?Q?tbzXSN6mFqEUdiA4KNIPXso8uQATMadri6p5GHm4/KmjwAJX2k/fb4/cKj?=
 =?iso-8859-1?Q?CxIx9sJI5ez0rk4lWNbNEyrR3ww4IxnOEqyOfA9CFHAunQjqaNTXvzVtjg?=
 =?iso-8859-1?Q?EzxFONmY2ghqP7+PrFGXgtwYzgIpH1dRm/5821ojgYgDzzNEMzKH4BY6i5?=
 =?iso-8859-1?Q?QJA9qQXbnkqTwJVK7cftEIFzBuSk1PG1aAGsWT1eTZyujUhzVGQ7u9nXlZ?=
 =?iso-8859-1?Q?XDxs9MUVd3JhXOPE2BHtWMiL4TaMSMNFjmxGFJCQkZeMfHxmspRja7ZcMp?=
 =?iso-8859-1?Q?lBfwEVCY0jTRbn2IACHJAdlKmtMyKdNvXxvMCeBS/ZWTJlPmRiOyIj01vG?=
 =?iso-8859-1?Q?fEhASPY4QdBwI2doAnKJls73MbaX9DjM47SBy6t9LjVQkNU+9xGKYrbHF8?=
 =?iso-8859-1?Q?HKf9mK5g1L5RZBNcxwadOtCZfVR4ceS0KdAZkC3XceYMDO0iHzthR74oN7?=
 =?iso-8859-1?Q?noskYhIqrk6arU3n7mPKCQAGXh6gSpwLz4NeqO7dBFcktu3bQ+LesUHfEP?=
 =?iso-8859-1?Q?ymJQ6J1NH2a2ahTdYPskPzsuU1yURAJjEKRSYPFjZIa2SasC9SBFThYMQ+?=
 =?iso-8859-1?Q?nHC/fy3nuchoX8VZEm48Fmwr4YLCs4HRcMNoBa7vJuQYk+OARjzt4C83fj?=
 =?iso-8859-1?Q?uuK1RlsX8qES3Fk7hbnvxsCqb4ZQixw7+o0XVGb9pvhHg8p1unV13TSfwG?=
 =?iso-8859-1?Q?uGQw/Cz851tof/UAmbNMqbEhYgVRA1jj4w2OWAaXMOgwDJmVLNgd6Zx9O0?=
 =?iso-8859-1?Q?NJyPgTTp4THYx6t/kiKevI258SaDOy0PGvKYvzhrqSUYP7HYSMLAxrKuSX?=
 =?iso-8859-1?Q?XFLg/n7OT4nMxELop8RBzu5vMee/Igk=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 913b6b2c-ba50-4cc1-0074-08deac866745
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 May 2026 22:17:19.1191
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: kc52ypWEbkIKpFphQE4GU0MeY2jv9vx0iYAZsHWt7o+rap5GkYXX9Aegw/aR2khML10P3eFnU6MJh8jbfYhGNSutRNQ8s7/dwqUt9EKTJTc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6212
X-purgate-ID: tlsNG-bad1c0/1778192241-37175A53-66E71E72/0/0
X-purgate-type: clean
X-purgate-size: 8203

Hi Mikola,

Mykola Kvach <xakep.amatop@gmail.com> writes:

> From: Mirela Simonovic <mirela.simonovic@aggios.com>
>
> The context of CPU general purpose and system control registers must be
> saved on suspend and restored on resume. This is implemented in
> prepare_resume_ctx and before the return from the hyp_resume function.
> The prepare_resume_ctx must be invoked just before the PSCI system suspen=
d
> call is issued to the ATF. The prepare_resume_ctx must return a non-zero
> value so that the calling 'if' statement evaluates to true, causing the
> system suspend to be invoked. Upon resume, the context saved on suspend
> will be restored, including the link register. Therefore, after
> restoring the context, the control flow will return to the address
> pointed to by the saved link register, which is the place from which
> prepare_resume_ctx was called. To ensure that the calling 'if' statement
> does not again evaluate to true and initiate system suspend, hyp_resume
> must return a zero value after restoring the context.
>
> Note that the order of saving register context into cpu_context structure
> must match the order of restoring.
>
> Support for ARM32 is not implemented. Instead, compilation fails with a
> build-time error if suspend is enabled for ARM32.
>
> Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
> Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Changes in v8:
> - fix alignments in code
>
> Changes in v7:
> - no changes
> ---
>  xen/arch/arm/Makefile              |  1 +
>  xen/arch/arm/arm64/head.S          | 90 +++++++++++++++++++++++++++++-
>  xen/arch/arm/include/asm/suspend.h | 26 +++++++++
>  xen/arch/arm/suspend.c             | 14 +++++
>  4 files changed, 130 insertions(+), 1 deletion(-)
>  create mode 100644 xen/arch/arm/suspend.c
>
> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> index 69200b2728..c36158271a 100644
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -51,6 +51,7 @@ obj-y +=3D setup.o
>  obj-y +=3D shutdown.o
>  obj-y +=3D smp.o
>  obj-y +=3D smpboot.o
> +obj-$(CONFIG_SYSTEM_SUSPEND) +=3D suspend.o
>  obj-$(CONFIG_SYSCTL) +=3D sysctl.o
>  obj-y +=3D time.o
>  obj-y +=3D traps.o
> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> index 596e960152..2cb02ee314 100644
> --- a/xen/arch/arm/arm64/head.S
> +++ b/xen/arch/arm/arm64/head.S
> @@ -562,6 +562,52 @@ END(efi_xen_start)
>  #endif /* CONFIG_ARM_EFI */
> =20
>  #ifdef CONFIG_SYSTEM_SUSPEND
> +/*
> + * int prepare_resume_ctx(struct cpu_context *ptr)

"cpu_context" is very generic name, especially taking into account that
you are introducing a global variable with the same name. How about
"resume_cpu_context"?

> + *
> + * x0 - pointer to the storage where callee's context will be saved
> + *
> + * CPU context saved here will be restored on resume in hyp_resume funct=
ion.
> + * prepare_resume_ctx shall return a non-zero value. Upon restoring cont=
ext
> + * hyp_resume shall return value zero instead. From C code that invokes
> + * prepare_resume_ctx, the return value is interpreted to determine whet=
her
> + * the context is saved (prepare_resume_ctx) or restored (hyp_resume).
> + */
> +FUNC(prepare_resume_ctx)
> +        /* Store callee-saved registers */

How are planning to synchronise this code with actual cpu_context?

I am pretty sure it is better to use offsets generated by asm-offset.c

> +        stp   x19, x20, [x0], #16
> +        stp   x21, x22, [x0], #16
> +        stp   x23, x24, [x0], #16
> +        stp   x25, x26, [x0], #16
> +        stp   x27, x28, [x0], #16
> +        stp   x29, lr, [x0], #16
> +
> +        /* Store stack-pointer */
> +        mov   x2, sp
> +        str   x2, [x0], #8
> +
> +        /* Store system control registers */
> +        mrs   x2, VBAR_EL2
> +        str   x2, [x0], #8
> +        mrs   x2, VTCR_EL2
> +        str   x2, [x0], #8
> +        mrs   x2, VTTBR_EL2
> +        str   x2, [x0], #8
> +        mrs   x2, TPIDR_EL2
> +        str   x2, [x0], #8
> +        mrs   x2, MDCR_EL2
> +        str   x2, [x0], #8
> +        mrs   x2, HSTR_EL2
> +        str   x2, [x0], #8
> +        mrs   x2, CPTR_EL2
> +        str   x2, [x0], #8
> +        mrs   x2, HCR_EL2
> +        str   x2, [x0], #8
> +
> +        /* prepare_resume_ctx must return a non-zero value */
> +        mov   x0, #1
> +        ret
> +END(prepare_resume_ctx)
> =20
>  FUNC(hyp_resume)
>          /* Initialize the UART if earlyprintk has been enabled. */
> @@ -580,7 +626,49 @@ FUNC(hyp_resume)
>          b     enable_secondary_cpu_mm
> =20
>  mmu_resumed:
> -        b .
> +        /* Now we can access the cpu_context, so restore the context her=
e */
> +        ldr   x0, =3Dcpu_context
> +
> +        /* Restore callee-saved registers */
> +        ldp   x19, x20, [x0], #16
> +        ldp   x21, x22, [x0], #16
> +        ldp   x23, x24, [x0], #16
> +        ldp   x25, x26, [x0], #16
> +        ldp   x27, x28, [x0], #16
> +        ldp   x29, lr, [x0], #16
> +
> +        /* Restore stack pointer */
> +        ldr   x2, [x0], #8
> +        mov   sp, x2
> +
> +        /* Restore system control registers */
> +        ldr   x2, [x0], #8
> +        msr   VBAR_EL2, x2
> +        ldr   x2, [x0], #8
> +        msr   VTCR_EL2, x2
> +        ldr   x2, [x0], #8
> +        msr   VTTBR_EL2, x2
> +        ldr   x2, [x0], #8
> +        msr   TPIDR_EL2, x2
> +        ldr   x2, [x0], #8
> +        msr   MDCR_EL2, x2
> +        ldr   x2, [x0], #8
> +        msr   HSTR_EL2, x2
> +        ldr   x2, [x0], #8
> +        msr   CPTR_EL2, x2
> +        ldr   x2, [x0], #8
> +        msr   HCR_EL2, x2
> +        isb
> +
> +        /*
> +         * Since context is restored return from this function will appe=
ar
> +         * as return from prepare_resume_ctx. To distinguish a return fr=
om
> +         * prepare_resume_ctx which is called upon finalizing the suspen=
d,
> +         * as opposed to return from this function which executes on res=
ume,
> +         * we need to return zero value here.
> +         */
> +        mov   x0, #0
> +        ret
>  END(hyp_resume)
> =20
>  #endif /* CONFIG_SYSTEM_SUSPEND */
> diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/as=
m/suspend.h
> index 31a98a1f1b..c127fa3d78 100644
> --- a/xen/arch/arm/include/asm/suspend.h
> +++ b/xen/arch/arm/include/asm/suspend.h
> @@ -3,6 +3,8 @@
>  #ifndef ARM_SUSPEND_H
>  #define ARM_SUSPEND_H
> =20
> +#include <xen/types.h>
> +
>  struct domain;
>  struct vcpu;
>  struct vcpu_guest_context;
> @@ -14,6 +16,30 @@ struct resume_info {
> =20
>  void arch_domain_resume(struct domain *d);
> =20
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +#ifdef CONFIG_ARM_64
> +struct cpu_context {
> +    register_t callee_regs[12];
> +    register_t sp;
> +    register_t vbar_el2;
> +    register_t vtcr_el2;
> +    register_t vttbr_el2;
> +    register_t tpidr_el2;
> +    register_t mdcr_el2;
> +    register_t hstr_el2;
> +    register_t cptr_el2;
> +    register_t hcr_el2;
> +} __aligned(16);
> +#else
> +#error "Define cpu_context structure for arm32"
> +#endif
> +
> +extern struct cpu_context cpu_context;
> +
> +int prepare_resume_ctx(struct cpu_context *ptr);
> +void hyp_resume(void);
> +#endif /* CONFIG_SYSTEM_SUSPEND */
> +
>  #endif /* ARM_SUSPEND_H */
> =20
>  /*
> diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
> new file mode 100644
> index 0000000000..e38566b0b7
> --- /dev/null
> +++ b/xen/arch/arm/suspend.c
> @@ -0,0 +1,14 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <asm/suspend.h>
> +
> +struct cpu_context cpu_context =3D {};

Don't need to zero-initialize a global variable.

> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu May 07 22:25:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 22:25:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303118.1576660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL7AG-0002F7-1Z; Thu, 07 May 2026 22:25:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303118.1576660; Thu, 07 May 2026 22:25:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL7AF-0002F0-Tv; Thu, 07 May 2026 22:25:51 +0000
Received: by outflank-mailman (input) for mailman id 1303118;
 Thu, 07 May 2026 22:25:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Volodymyr_Babchuk@epam.com>) id 1wL7AD-0002Eu-PE
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 22:25:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wL7AD-00EUuj-5u
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 00:25:49 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69fd1136-2eae-0a2a0a5409dd-0a2a4504a6e2-44
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 00:25:49 +0200
Received: from [52.101.84.84]
 (helo=DB3PR0202CU003.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69fd116c-1dec-0a2a45040019-34655454e297-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 00:25:49 +0200
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AMBPR03MB11798.eurprd03.prod.outlook.com
 (2603:10a6:20b:777::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.17; Thu, 7 May
 2026 22:25:46 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3%4]) with mapi id 15.20.9891.016; Thu, 7 May 2026
 22:25:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LPq+yMJiIueGkPQiBFuG4TJoXDBAPJFKnyYADOSTMpkLwrCr1PZjdcV5otB0TzHbvowLacGdSAynbC0fKjNZXBtSvf0KZmHtyX2uM1O9uZ75THJbOHlP9+OuUKOOsPc3OfdrsywZAkzibPkiO9b7GKQz9eOdgRjAPuUBSlW50GyMV5lyQefob22TDIrBPrxSCywAjHeTj++BMibZk2I47EDiaEwQUf7nrbtWUiRw5LcTwtv2Fudwf5/978hej6IggJBIDXt6FpdGmqpv3JWjf8dGkXXs8slLItBL+0g8SOXeL0Z2AJRO+tt/RDJbK43R0OSsc+IF/3YGFCvoCb/+fA==
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=8CYKkN6OC4hgWfFZ/Kcm5rwvZIFRl93FxEWOgd76wko=;
 b=yG4zRAJT16jQ9wckrEVQiVcvLreWEcBJ5qB6Bl5K3ljgVOv4/vw1/Jg8j6Mi7BnO/1UsRpYpAQRLkGUXhqdTuXIxPVRoMmccGdC+Y24oNAox0fk/NmDrw2+07kZoLAAYF/1dsOLK7Pd/Ny2Nep6xyXHWwupbOTpV8Tu3gwD2BmYCU/XRANtRCpx3+62oi6Qe78a7kmNYJsEHag2V4VVEocC+yb00HPaCRFkE00dJhqoq4MRhHCCaE977tEaEtcbgQfnrTcDH7Z2cTO/BrZgvqn3MkeTYiBH5whWi5Qr2tLcXOGfaO1xW+Aa1C5SL330X1VT7vzlMpIPIqhz8+2W23w==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8CYKkN6OC4hgWfFZ/Kcm5rwvZIFRl93FxEWOgd76wko=;
 b=Kbhrgk/aZZ2K3/3uIWrlM0KdbVzSIFAjN7Gv+zNzMM3XVEUMabmZz5n9uBRFuZdOiwLquDmyOT9QydiAw+wa18Zlq1zvQSW27hRRMHNS+9XouE4x1dyLvJ+BeKvPuHPH9wjIsAzwrHqW5QjA38PMSz7ISsFdiLR99SUwYgeeBAKXITCKj75F0waYn5aiXJWe1L7altmr3iWuQBGg3I/NOCCPRgchBfp0UqGaYd11l5zkePADGyI1nGqfQY9Ouob4qTHscOZCUAxoMTVdFWIldIta6YTtjWFsSKkSS0vLkfL+MdXHl73A2al8iwyRKwpxrNq1lU/zrzz1ZgrOa8uznA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: Luca Fancellu <Luca.Fancellu@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Mykola Kvach <Mykola_Kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony
 PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Rahul Singh
	<Rahul.Singh@arm.com>
Subject: Re: [PATCH v8 13/13] xen/arm: Add support for system suspend
 triggered by hardware domain
Thread-Topic: [PATCH v8 13/13] xen/arm: Add support for system suspend
 triggered by hardware domain
Thread-Index: AQHcwo4kFiAy6Uhk9ESItMHuQ9a0Lg==
Date: Thu, 7 May 2026 22:25:46 +0000
Message-ID: <87lddusvpy.fsf@epam.com>
References: <cover.1775125380.git.mykola_kvach@epam.com>
	<9b0f8922cd33df2b8e8038d639c1b8d8d73ce401.1775125380.git.mykola_kvach@epam.com>
	<4977CF18-39CC-4CC0-936A-890BAE5E8615@arm.com>
	<CAGeoDV8WkRGubF0qEXd4+PsXuabz3914G7bTYxTbaxZ2DsnY6w@mail.gmail.com>
In-Reply-To:
 <CAGeoDV8WkRGubF0qEXd4+PsXuabz3914G7bTYxTbaxZ2DsnY6w@mail.gmail.com>	(Mykola
 Kvach's message of "Tue, 5 May 2026 23:34:18 +0300")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|AMBPR03MB11798:EE_
x-ms-office365-filtering-correlation-id: fd9eacf6-8686-410c-ec4d-08deac8795af
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|376014|7416014|1800799024|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 ZGjTMYzy+gn5n32XqaLCcjYJU2Ab6pY5PNesSWVB1bzapjc8cnuvnD0l7MU3aBH70JUZRguxNWzDdnQPjO2q2cXgxqa7JVX/FUNfkHCsnt7kCchHsKcdicQB5BIsryuuOm21g+jEPFTcDU70XwQHSwmtCDqxGA1mE3XqDV0L90AzkT+21QoJV+90trfa6mfdKFXiUujDVazI2iLBeoRtuJ4zh5zelxw94PSOZLAIIKidaGjVa+8ezv7Fds2cELYzo6R0y+MMJfzTR6Qvb4eYlZqFSEA1fsspDm7XeNM7Pn6nsNwipCOBZloeBOIf9qjOlchYVLC+D4/H1UvIG12oGShcR8XqIe3Urc+loUgizg3UIqNT50GC9Y35E1xQqHReTBs6chrZVWU5rGH6QFrv8JxH00QG3TciA5o+S1HbvFita8ym5n+exgoEu2fJr1d4YIuPYTxGrsflQW130iZ/c2k0nZwtAblPe00GiXKGT+jwL9x0owNUcNeULsNdRqdVy/vOAj2nMiJwnnnpOq9ODrh61vw3c2fYzRbLe7bOVYgslRBL6+wVywJwicPpMQ+lgWTb/GZXP7ETssIWNRvZDsONvf3JhQ87rr76IZLALAcHu3CM3BZ+QBMF+eY0mhV6Gd0L//azYegFezfHa8dP9KPdt/IYB6Q6CBLEuRCzJ5YxvX6Ql/A7D66/mGTcLfnKvtq5l4ox4+8kfuSZnoL3wZ10gWYE6MR/MFhpxDirXaOl4+S+vHyyCCz6TnkkQwez
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(42112799006)(376014)(7416014)(1800799024)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?NzlDMzk3ZnJTWU4yRDFJQktjOFVOVGxSNlFxcjVKd2hlLzQwMkNSYVlOZ2JU?=
 =?utf-8?B?bDVNYWpPNWFPMjFheXd5NS91Mkd2UE12MTNTeldNbHZOZlFsOXA4RTZXTzNt?=
 =?utf-8?B?ZllhNnVCVlNkNmJFKzdMM2ZDTzRKamhFQ1FVVWd1cVpvZmcwbnNtUzBGZkVz?=
 =?utf-8?B?Z2laY1o0VnhKbktLVENpZDF5OGNRNFkzSUFMVzZtTXVNWGFLMkdXMUNpdTVo?=
 =?utf-8?B?ZVJSaGEwZjZnRit4TTdiWE40TVRnc3cvSU01NGxBOXNrR1A2YU9JbkFBMXZT?=
 =?utf-8?B?dWVrZFM0TnVYUEhMSHc2ZG13aU5aaEtSUXRGcWRKa3dZZFVrRDhDWi9MSDJZ?=
 =?utf-8?B?WFNzVXRyY2lqaE5USldPUWF1WE5sQWl6Q1ZjYzdyR2tGU3NsK1JoaXd3K0VM?=
 =?utf-8?B?M2NFNXNOWXB5SlUreEJNc2NjRlpjU2c5ZDR0V2lmeWVLSkw2alNhZ3VZdFFW?=
 =?utf-8?B?UlZMdGV2Q0Z0N3hOejU5Z3MzZUUxTjQxekVRY2luREphMGY1czNNUE9kdGo5?=
 =?utf-8?B?K1V5a3JQYmlicm1UUERPQXJQUFlJU2dNcUE2NWdFajRzb09sM3cvZVpHaTJV?=
 =?utf-8?B?RnZrRGNpazZDM1l5TTYvN2Q0ZS83Tnh0ckJVZkxSR0RabU9zT0JuYkRNbWIv?=
 =?utf-8?B?anhmQTBFYUgwZFY5K3dRNnp4T1NJL01mdGFkK2ZWZ2ZpTHc1RENMUENOMkhv?=
 =?utf-8?B?WUYyY21STUg3eVl1YXpyYUF3Nzl4Z3ZsU3I4S2NReitueTF2ZTFrZTl2TzRk?=
 =?utf-8?B?eGd5NmNmaTJ0M0ZTUEhsZVJrZ2MyOVRYcnZSanlLczMrS2NJbERzd1hTMVMr?=
 =?utf-8?B?Q2dUdGd4MTIzSjhxVlhyZXV2TlFhTml4c1JTTXhlVkRWRG4xbThSb3BRaU5X?=
 =?utf-8?B?eWQrVUttbVhGc3lLT0ZSNVNZc0hWdVRtc0ZwVG9Gbk1uNGs4R3pOZGZGaHVB?=
 =?utf-8?B?MzdqT0RoQjk2TVc5SGszV3dvb0dKUjN4dDFOdURiVlpUTklRRXdYdTB6clZO?=
 =?utf-8?B?QWNYM2lSQTFEWVg2Y3RZQ1JpQXI4ZEpHc1dNN0VaSTczbjRDTkVMM29WcXl6?=
 =?utf-8?B?RlZpQTYxV01tOG1pL3l5NmpwNVVUbHNidHZ5ODJCaFNUb2JJOXppZnZ4d3lR?=
 =?utf-8?B?RzhLcnVBK2NPYXJ3aS9qYWN5aU9KODIxNEFEakxBYVVRVzVaYUtrcWNteU44?=
 =?utf-8?B?M1h6SVNncXFYWnpOZ3FmSGFCQUZTcWd5a0Exd2RFNW5SWTFIM0JLZkJOY2NO?=
 =?utf-8?B?aW4yMmJlVHl0dHE0ZDNEeUtMeHo3dXBUd3c2N1BVWlNuR25CdTZrektkWUtI?=
 =?utf-8?B?alFnZ2pDY1A2Z2VDQ0QySHJGQ1JMS0NLUWl2d281Vy9xcis5THEyY09jRDBh?=
 =?utf-8?B?dXhHeEgyYkVZWS9ZM0tnVjlyeEJoVjc5dktrZkdBNWpVMWl6YlExcE41YlNB?=
 =?utf-8?B?YlViL3FjK0FzZytab1UySVp4WVhnQ1hwcmdUcHg0VDJjQkg5MC9kdVZqY1ZC?=
 =?utf-8?B?Y3RoMEI1dURBanhkaTdkR2hyTnhzNGh5ckcwcE15a3pVNXRGRmg2aEZOYmM1?=
 =?utf-8?B?c2JyMk9VNTNhcUdHYUZVUFVhNFdLYXZ2ZjY3ZmgxZ1RyRkYySVBQd2VzVEp1?=
 =?utf-8?B?Z2VsdDBoUzZvRjVNL1N2LzlkT2pXb3pSeFNSQ0NLNkVwRC9NTjlrMC9UTmJS?=
 =?utf-8?B?cEs3Z3VpdGxLaEhCQm83azVPQWpRUWhqamh4ejYzdGZTNTN0YXlwU2VTcUp6?=
 =?utf-8?B?NDVBekc2OE9QM2UydFdKWWtPWFZ6YjFtVm85dW1vcGRxby9XWEh5N2FrUjVs?=
 =?utf-8?B?dzhWYVlqQWpGL3R3aUFwVHVWVitNTzhlU0ZIUGFJYUUzT2NhM1ljN2QvSTBq?=
 =?utf-8?B?VC9sK2JVQ2hmNnJGaXdCczdacDZFcmFRZ21iM3NtSjlaQVdPcUprdDZwNDlS?=
 =?utf-8?B?YTc4djJKUmthRE5idnRwdkxqZDV6U1pJSE9hNER5bmF1TU1ucDhoTnc2azB1?=
 =?utf-8?B?RU1OeDFoY2hSMzFTUGIvaERvcWI3K21KRGNVSzM0TW1YME4zeVNvTWp3bEpE?=
 =?utf-8?B?dzF5ektqTTYwNFZEMUVzditzSUNxRjRrbHlwOXNIaW5GR2h2dGNCWW5VOFlK?=
 =?utf-8?B?a3ZIWTY3RWw0ZHNKWVM1aUwzR0RLaU1nVlFOQTB5am1mNEdpT2g2UDBrdllE?=
 =?utf-8?B?TDUzU2lESWc5bzFlU3BFK3VzSmVCeHB2RXE0M3lLZGhVQk1aRUZTRHF3dVcy?=
 =?utf-8?B?RzRaSVFFcUw2K3FRM1g4cnhZUWpLMU1Cb3lrOEFodWJ1L2diUkJYYVg1bGw4?=
 =?utf-8?B?U1dCM20vbXpRWDZ2RFVoeVFWaEVBcXRWZXFlQmVuS1RpNFk2YVVqTjdMcmdh?=
 =?utf-8?Q?zX9PXFGe9HfbWPO4=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <D5B9ECFDCC7D1C4FBB58DFF6923C4A95@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fd9eacf6-8686-410c-ec4d-08deac8795af
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 May 2026 22:25:46.4463
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MEr22BZnKpMMmNZqz8emgCcaTlfh8nfRs/Nk5nbh1/ffpsvsYShEKXuMlwSLKALeb6bFezydyGdVk4y5gtnsH17b1/NVkXsirZ1NpbbiWNg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11798
X-purgate-ID: tlsNG-ebf023/1778192749-4846A3FF-882127CE/0/0
X-purgate-type: clean
X-purgate-size: 12662

SGkgTXlrb2xhLA0KDQpNeWtvbGEgS3ZhY2ggPHhha2VwLmFtYXRvcEBnbWFpbC5jb20+IHdyaXRl
czoNCg0KWy4uLl0NCg0KPj4gPiArICAgIHN0YXR1cyA9IGNhbl9zeXN0ZW1fc3VzcGVuZCgpOw0K
Pj4gPiArICAgIGlmICggc3RhdHVzICkNCj4+ID4gKyAgICB7DQo+PiA+ICsgICAgICAgIHN5c3Rl
bV9zdGF0ZSA9IFNZU19TVEFURV9yZXN1bWU7DQo+PiA+ICsgICAgICAgIGdvdG8gcmVzdW1lX3Nj
aGVkdWxlcjsNCj4+DQo+PiBXaGVuIHdlIGhhdmUgYW4gZXJyb3IgYW5kIHdlIGdldCB0aGUgcmVz
dW1lX3NjaGVkdWxlciBwYXRoLCB3ZSBhcHBseSBiYWNrIHRoZQ0KPj4gY29udGV4dCBvZiB0aGUg
Z3Vlc3Qgc2F2ZWQgcHJldmlvdXNseSBpbiBkb19wc2NpXzFfMF9zeXN0ZW1fc3VzcGVuZCgpLCBz
byBhbSBJDQo+PiBjb3JyZWN0IHNheWluZyB0aGUgZ3Vlc3Qgd29u4oCZdCBnZXQgYW55IFBTQ0kg
ZXJyb3IgYmFjayBhbmQgd2UgcmVzdW1lIHRoZSBndWVzdA0KPj4gZnJvbSB0aGUgZ3Vlc3QgcmVz
dW1lIGVudHJ5cG9pbnQ/DQo+Pg0KPj4gSW4gY2FzZSwgc2hvdWxkIHdlIGhhdmUgYSBkaWZmZXJl
bnQgcGF0aCB0aGF0IHJldHVybnMgYSBQU0NJIGVycm9yIChQU0NJXyopIGludG8gdGhlIGd1ZXN0
DQo+PiB4MCwgYW5kIHNraXBzIHRoZSBjb250ZXh0IHJlc3RvcmU/DQo+DQo+IFlvdSBhcmUgcmln
aHQgYWJvdXQgdGhlIGN1cnJlbnQgY29udHJvbCBmbG93OiBvbmNlIHRoZSB2aXJ0dWFsDQo+IFNZ
U1RFTV9TVVNQRU5EIHJlcXVlc3QgaGFzIGJlZW4gYWNjZXB0ZWQgYW5kIHRoZSBkb21haW4gaGFz
IGJlZW4gcGFya2VkLCBhDQo+IGxhdGVyIGZhaWx1cmUgaW4gdGhlIFhlbi13aWRlIHN1c3BlbmQg
cGF0aCByZXN1bWVzIHRoZSBkb21haW4gdGhyb3VnaCB0aGUgbm9ybWFsDQo+IGRvbWFpbiByZXN1
bWUgcGF0aCwgcmF0aGVyIHRoYW4gcmV0dXJuaW5nIGEgUFNDSSBlcnJvciBmcm9tIHRoZSBvcmln
aW5hbCBjYWxsLg0KPg0KPiBUaGlzIGlzIGludGVudGlvbmFsIGluIHRoZSBjdXJyZW50IGRlc2ln
bi4gVGhlIHZpcnR1YWwgUFNDSSBTWVNURU1fU1VTUEVORA0KPiBwYXRoIHBhcmtzIHRoZSBkb21h
aW4gYW5kIHNhdmVzIGl0cyByZXN1bWUgY29udGV4dC4gVGhlIGFjdHVhbCBYZW4td2lkZSBob3N0
DQo+IHN1c3BlbmQgaXMgYSBzZXBhcmF0ZSBzdGVwIHRoYXQgaXMgYXR0ZW1wdGVkIG9ubHkgYWZ0
ZXIgYWxsIGRvbWFpbnMgYXJlDQo+IHN1c3BlbmRlZC4NCj4NCj4gU28gYSBmYWlsdXJlIGluIHRo
ZSBsYXRlciBYZW4td2lkZSBzdXNwZW5kIHN0ZXAgaXMgdHJlYXRlZCBhcyBhbiBhYm9ydCBvZiB0
aGUNCj4gaG9zdCBzdXNwZW5kIGF0dGVtcHQgYWZ0ZXIgdGhlIGRvbWFpbiBzdXNwZW5kIHdhcyBh
bHJlYWR5IGFjY2VwdGVkLiBUaGUgZG9tYWluDQo+IGlzIHRoZW4gcmVzdW1lZCB0aHJvdWdoIHRo
ZSBleGlzdGluZyBkb21haW4gcmVzdW1lIHBhdGgsIHNpbWlsYXJseSB0byB0aGUNCj4gdG9vbHN0
YWNrL3hsIHN1c3BlbmQtcmVzdW1lIGZsb3csIHJhdGhlciB0aGFuIGJ5IHJlLWVudGVyaW5nIHRo
ZSBndWVzdCBQU0NJDQo+IGNhbGwgcGF0aCBhbmQgbW9kaWZ5aW5nIHRoZSBzYXZlZCB2Q1BVIGNv
bnRleHQgYWdhaW4uDQo+DQo+IEkgYWdyZWUgdGhpcyBkZXNpZ24gaXMgbm90IG9idmlvdXMgZnJv
bSB0aGUgcGF0Y2guIEkgd2lsbCBjbGFyaWZ5IHRoZSBjb21taXQNCj4gbWVzc2FnZSBhbmQgY29t
bWVudHMuIElmIHlvdSBvciB0aGUgbWFpbnRhaW5lcnMgdGhpbmsgdGhhdCBmYWlsdXJlcyBiZWZv
cmUgdGhlDQo+IHBoeXNpY2FsIFNZU1RFTV9TVVNQRU5EIGNhbGwgc3VjY2VlZHMgc2hvdWxkIGJl
IHJlcG9ydGVkIGJhY2sgdGhyb3VnaCB0aGUNCj4gb3JpZ2luYWwgdmlydHVhbCBQU0NJIGNhbGws
IHRoZW4gdGhpcyB3b3VsZCByZXF1aXJlIGEgZGlmZmVyZW50IGZsb3cuIEkgd2FzDQo+IHRyeWlu
ZyB0byBhdm9pZCB0aGF0IGV4dHJhIGNvbXBsZXhpdHkgaW4gdGhpcyBzZXJpZXMuDQoNCkkgdGhp
bmsgdGhhdCB0aGVyZSBpcyBubyBzZW5zZSB0byByZXBvcnRpbmcgYW4gZXJyb3IgYmFjayB0byBn
dWVzdC4gUFNDSQ0KYWxsb3dzIHJlc3VtZSBhdCBhbnkgc3RhZ2UsIHNvIGl0IGlzIGFjY2VwdGFi
bGUgdG8gaGF2ZSBzdWNoIGJyaWVmICJzdXNwZW5kIg0KDQo+DQo+Pg0KPj4gPiArICAgIH0NCj4+
ID4gKw0KPj4gPiArICAgIC8qDQo+PiA+ICsgICAgICogTm9uLWJvb3QgQ1BVcyBoYXZlIHRvIGJl
IGRpc2FibGVkIG9uIHN1c3BlbmQgYW5kIGVuYWJsZWQgb24gcmVzdW1lDQo+PiA+ICsgICAgICog
KGhvdHBsdWctYmFzZWQgbWVjaGFuaXNtKS4gRGlzYWJsaW5nIG5vbi1ib290IENQVXMgd2lsbCBs
ZWFkIHRvIFBTQ0kNCj4+ID4gKyAgICAgKiBDUFVfT0ZGIHRvIGJlIGNhbGxlZCBieSBlYWNoIG5v
bi1ib290IENQVS4gRGVwZW5kaW5nIG9uIHRoZSB1bmRlcmx5aW5nDQo+PiA+ICsgICAgICogcGxh
dGZvcm0gY2FwYWJpbGl0aWVzLCB0aGlzIG1heSBsZWFkIHRvIHRoZSBwaHlzaWNhbCBwb3dlcmlu
ZyBkb3duIG9mDQo+PiA+ICsgICAgICogQ1BVcy4NCj4+ID4gKyAgICAgKi8NCj4+ID4gKyAgICBz
dGF0dXMgPSBkaXNhYmxlX25vbmJvb3RfY3B1cygpOw0KPj4gPiArICAgIGlmICggc3RhdHVzICkN
Cj4+ID4gKyAgICB7DQo+PiA+ICsgICAgICAgIHN5c3RlbV9zdGF0ZSA9IFNZU19TVEFURV9yZXN1
bWU7DQo+PiA+ICsgICAgICAgIGdvdG8gcmVzdW1lX25vbmJvb3RfY3B1czsNCj4+ID4gKyAgICB9
DQo+PiA+ICsNCj4+ID4gKyAgICB0aW1lX3N1c3BlbmQoKTsNCj4+ID4gKw0KPj4gPiArICAgIHN0
YXR1cyA9IGlvbW11X3N1c3BlbmQoKTsNCj4+ID4gKyAgICBpZiAoIHN0YXR1cyApDQo+PiA+ICsg
ICAgew0KPj4gPiArICAgICAgICBzeXN0ZW1fc3RhdGUgPSBTWVNfU1RBVEVfcmVzdW1lOw0KPj4g
PiArICAgICAgICBnb3RvIHJlc3VtZV90aW1lOw0KPj4gPiArICAgIH0NCj4+ID4gKw0KPj4gPiAr
ICAgIGNvbnNvbGVfc3RhcnRfc3luYygpOw0KPj4gPiArICAgIHN0YXR1cyA9IGNvbnNvbGVfc3Vz
cGVuZCgpOw0KPj4gPiArICAgIGlmICggc3RhdHVzICkNCj4+ID4gKyAgICB7DQo+PiA+ICsgICAg
ICAgIGRwcmludGsoWEVOTE9HX0VSUiwgIkZhaWxlZCB0byBzdXNwZW5kIHRoZSBjb25zb2xlLCBl
cnI9JWRcbiIsIHN0YXR1cyk7DQo+PiA+ICsgICAgICAgIHN5c3RlbV9zdGF0ZSA9IFNZU19TVEFU
RV9yZXN1bWU7DQo+PiA+ICsgICAgICAgIGdvdG8gcmVzdW1lX2VuZF9zeW5jOw0KPj4gPiArICAg
IH0NCj4+ID4gKw0KPj4gPiArICAgIGxvY2FsX2lycV9zYXZlKGZsYWdzKTsNCj4+ID4gKyAgICBz
dGF0dXMgPSBnaWNfc3VzcGVuZCgpOw0KPj4gPiArICAgIGlmICggc3RhdHVzICkNCj4+ID4gKyAg
ICB7DQo+PiA+ICsgICAgICAgIHN5c3RlbV9zdGF0ZSA9IFNZU19TVEFURV9yZXN1bWU7DQo+PiA+
ICsgICAgICAgIGdvdG8gcmVzdW1lX2lycXM7DQo+PiA+ICsgICAgfQ0KPj4gPiArDQo+PiA+ICsg
ICAgc2V0X2luaXRfdHRicih4ZW5fcGd0YWJsZSk7DQo+PiA+ICsNCj4+ID4gKyAgICAvKg0KPj4g
PiArICAgICAqIEVuYWJsZSBpZGVudGl0eSBtYXBwaW5nIGJlZm9yZSBlbnRlcmluZyBzdXNwZW5k
IHRvIHNpbXBsaWZ5DQo+PiA+ICsgICAgICogdGhlIHJlc3VtZSBwYXRoDQo+PiA+ICsgICAgICov
DQo+PiA+ICsgICAgdXBkYXRlX2Jvb3RfbWFwcGluZyh0cnVlKTsNCj4+ID4gKw0KPj4gPiArICAg
IGlmICggcHJlcGFyZV9yZXN1bWVfY3R4KCZjcHVfY29udGV4dCkgKQ0KPj4gPiArICAgIHsNCj4+
ID4gKyAgICAgICAgc3RhdHVzID0gY2FsbF9wc2NpX3N5c3RlbV9zdXNwZW5kKCk7DQo+PiA+ICsg
ICAgICAgIC8qDQo+PiA+ICsgICAgICAgICAqIElmIHN1c3BlbmQgaXMgZmluYWxpemVkIHByb3Bl
cmx5IGJ5IGFib3ZlIHN5c3RlbSBzdXNwZW5kIFBTQ0kgY2FsbCwNCj4+ID4gKyAgICAgICAgICog
dGhlIGNvZGUgYmVsb3cgaW4gdGhpcyAnaWYnIGJyYW5jaCB3aWxsIG5ldmVyIGV4ZWN1dGUuIEV4
ZWN1dGlvbg0KPj4gPiArICAgICAgICAgKiB3aWxsIGNvbnRpbnVlIGZyb20gaHlwX3Jlc3VtZSB3
aGljaCBpcyB0aGUgaHlwZXJ2aXNvcidzIHJlc3VtZSBwb2ludC4NCj4+ID4gKyAgICAgICAgICog
SW4gaHlwX3Jlc3VtZSBDUFUgY29udGV4dCB3aWxsIGJlIHJlc3RvcmVkIGFuZCBzaW5jZSBsaW5r
LXJlZ2lzdGVyIGlzDQo+PiA+ICsgICAgICAgICAqIHJlc3RvcmVkIGFzIHdlbGwsIGl0IHdpbGwg
YXBwZWFyIHRvIHJldHVybiBmcm9tIHByZXBhcmVfcmVzdW1lX2N0eC4NCj4+ID4gKyAgICAgICAg
ICogVGhlIGRpZmZlcmVuY2UgaW4gcmV0dXJuaW5nIGZyb20gcHJlcGFyZV9yZXN1bWVfY3R4IG9u
IHN5c3RlbSBzdXNwZW5kDQo+PiA+ICsgICAgICAgICAqIHZlcnN1cyByZXN1bWUgaXMgaW4gZnVu
Y3Rpb24ncyByZXR1cm4gdmFsdWU6IG9uIHN1c3BlbmQsIHRoZSByZXR1cm4NCj4+ID4gKyAgICAg
ICAgICogdmFsdWUgaXMgYSBub24temVybyB2YWx1ZSwgb24gcmVzdW1lIGl0IGlzIHplcm8uIFRo
YXQgaXMgd2h5IHRoZQ0KPj4gPiArICAgICAgICAgKiBjb250cm9sIGZsb3cgd2lsbCBub3QgcmUt
ZW50ZXIgdGhpcyAnaWYnIGJyYW5jaCBvbiByZXN1bWUuDQo+PiA+ICsgICAgICAgICAqLw0KPj4g
PiArICAgICAgICBpZiAoIHN0YXR1cyApDQo+PiA+ICsgICAgICAgICAgICBkcHJpbnRrKFhFTkxP
R19XQVJOSU5HLCAiUFNDSSBzeXN0ZW0gc3VzcGVuZCBmYWlsZWQsIGVycj0lZFxuIiwNCj4+ID4g
KyAgICAgICAgICAgICAgICAgICAgc3RhdHVzKTsNCj4+ID4gKyAgICB9DQo+PiA+ICsNCj4+ID4g
KyAgICBzeXN0ZW1fc3RhdGUgPSBTWVNfU1RBVEVfcmVzdW1lOw0KPj4gPiArICAgIHVwZGF0ZV9i
b290X21hcHBpbmcoZmFsc2UpOw0KPj4gPiArDQo+PiA+ICsgICAgZ2ljX3Jlc3VtZSgpOw0KPj4g
PiArDQo+PiA+ICsgcmVzdW1lX2lycXM6DQo+PiA+ICsgICAgbG9jYWxfaXJxX3Jlc3RvcmUoZmxh
Z3MpOw0KPj4gPiArDQo+PiA+ICsgICAgY29uc29sZV9yZXN1bWUoKTsNCj4+ID4gKyByZXN1bWVf
ZW5kX3N5bmM6DQo+PiA+ICsgICAgY29uc29sZV9lbmRfc3luYygpOw0KPj4gPiArDQo+PiA+ICsg
ICAgaW9tbXVfcmVzdW1lKCk7DQo+PiA+ICsNCj4+ID4gKyByZXN1bWVfdGltZToNCj4+ID4gKyAg
ICB0aW1lX3Jlc3VtZSgpOw0KPj4gPiArDQo+PiA+ICsgcmVzdW1lX25vbmJvb3RfY3B1czoNCj4+
ID4gKyAgICAvKg0KPj4gPiArICAgICAqIFRoZSByY3VfYmFycmllcigpIGhhcyB0byBiZSBhZGRl
ZCB0byBlbnN1cmUgdGhhdCB0aGUgcGVyIGNwdSBhcmVhIGlzDQo+PiA+ICsgICAgICogZnJlZWQg
YmVmb3JlIGEgbm9uLWJvb3QgQ1BVIHRyaWVzIHRvIGluaXRpYWxpemUgaXQgKF9mcmVlX3BlcmNw
dV9hcmVhKCkNCj4+ID4gKyAgICAgKiBoYXMgdG8gYmUgY2FsbGVkIGJlZm9yZSB0aGUgaW5pdF9w
ZXJjcHVfYXJlYSgpKS4gVGhpcyBzY2VuYXJpbyBvY2N1cnMNCj4+ID4gKyAgICAgKiB3aGVuIG5v
bi1ib290IENQVXMgYXJlIGhvdC11bnBsdWdnZWQgb24gc3VzcGVuZCBhbmQgaG90cGx1Z2dlZCBv
biByZXN1bWUuDQo+PiA+ICsgICAgICovDQo+PiA+ICsgICAgcmN1X2JhcnJpZXIoKTsNCj4+ID4g
KyAgICBlbmFibGVfbm9uYm9vdF9jcHVzKCk7DQo+PiA+ICsNCj4+ID4gKyByZXN1bWVfc2NoZWR1
bGVyOg0KPj4gPiArICAgIHNjaGVkdWxlcl9lbmFibGUoKTsNCj4+ID4gKyAgICB0aGF3X2RvbWFp
bnMoKTsNCj4+ID4gKw0KPj4gPiArICAgIHN5c3RlbV9zdGF0ZSA9IFNZU19TVEFURV9hY3RpdmU7
DQo+PiA+ICsNCj4+ID4gKyAgICBwcmludGsoIlJlc3VtZSAoc3RhdHVzICVkKVxuIiwgc3RhdHVz
KTsNCj4+ID4gKw0KPj4gPiArICAgIGRvbWFpbl9yZXN1bWUoZCk7DQo+PiA+ICt9DQo+PiA+ICsN
Cj4+ID4gK3N0YXRpYyBERUNMQVJFX1RBU0tMRVQoc3lzdGVtX3N1c3BlbmRfdGFza2xldCwgc3lz
dGVtX3N1c3BlbmQsIE5VTEwpOw0KPj4gPiArDQo+PiA+ICt2b2lkIGhvc3Rfc3lzdGVtX3N1c3Bl
bmQoc3RydWN0IGRvbWFpbiAqZCkNCj4+ID4gK3sNCj4+ID4gKyAgICBzeXN0ZW1fc3VzcGVuZF90
YXNrbGV0LmRhdGEgPSAodm9pZCAqKWQ7DQo+PiA+ICsgICAgLyoNCj4+ID4gKyAgICAgKiBUaGUg
c3VzcGVuZCBwcm9jZWR1cmUgaGFzIHRvIGJlIGZpbmFsaXplZCBieSB0aGUgcENQVSMwIChub24t
Ym9vdCBwQ1BVcw0KPj4gPiArICAgICAqIHdpbGwgYmUgZGlzYWJsZWQgZHVyaW5nIHRoZSBzdXNw
ZW5kKS4NCj4+ID4gKyAgICAgKi8NCj4+ID4gKyAgICB0YXNrbGV0X3NjaGVkdWxlX29uX2NwdSgm
c3lzdGVtX3N1c3BlbmRfdGFza2xldCwgMCk7DQo+PiA+ICt9DQo+PiA+ICsNCj4+ID4gLyoNCj4+
ID4gICogTG9jYWwgdmFyaWFibGVzOg0KPj4gPiAgKiBtb2RlOiBDDQo+PiA+IGRpZmYgLS1naXQg
YS94ZW4vYXJjaC9hcm0vdnBzY2kuYyBiL3hlbi9hcmNoL2FybS92cHNjaS5jDQo+PiA+IGluZGV4
IGJkODdlYzQzMGQuLjhmYjkxNzIxODYgMTAwNjQ0DQo+PiA+IC0tLSBhL3hlbi9hcmNoL2FybS92
cHNjaS5jDQo+PiA+ICsrKyBiL3hlbi9hcmNoL2FybS92cHNjaS5jDQo+PiA+IEBAIC01LDYgKzUs
NyBAQA0KPj4gPg0KPj4gPiAjaW5jbHVkZSA8YXNtL2N1cnJlbnQuaD4NCj4+ID4gI2luY2x1ZGUg
PGFzbS9kb21haW4uaD4NCj4+ID4gKyNpbmNsdWRlIDxhc20vc3VzcGVuZC5oPg0KPj4gPiAjaW5j
bHVkZSA8YXNtL3ZnaWMuaD4NCj4+ID4gI2luY2x1ZGUgPGFzbS92cHNjaS5oPg0KPj4gPiAjaW5j
bHVkZSA8YXNtL2V2ZW50Lmg+DQo+PiA+IEBAIC0yMzIsOCArMjMzLDcgQEAgc3RhdGljIGludDMy
X3QgZG9fcHNjaV8xXzBfc3lzdGVtX3N1c3BlbmQocmVnaXN0ZXJfdCBlcG9pbnQsIHJlZ2lzdGVy
X3QgY2lkKQ0KPj4gPiAgICAgaWYgKCBpc182NGJpdF9kb21haW4oZCkgJiYgaXNfdGh1bWIgKQ0K
Pj4gPiAgICAgICAgIHJldHVybiBQU0NJX0lOVkFMSURfQUREUkVTUzsNCj4+ID4NCj4+ID4gLSAg
ICAvKiBTWVNURU1fU1VTUEVORCBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGUgaGFyZHdhcmUgZG9t
YWluIHlldCAqLw0KPj4gPiAtICAgIGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQpICkNCj4+ID4g
KyAgICBpZiAoICFJU19FTkFCTEVEKENPTkZJR19TWVNURU1fU1VTUEVORCkgJiYgaXNfaGFyZHdh
cmVfZG9tYWluKGQpICkNCj4+ID4gICAgICAgICByZXR1cm4gUFNDSV9OT1RfU1VQUE9SVEVEOw0K
Pj4gPg0KPj4gPiAgICAgLyogRW5zdXJlIHRoYXQgYWxsIENQVXMgb3RoZXIgdGhhbiB0aGUgY2Fs
bGluZyBvbmUgYXJlIG9mZmxpbmUgKi8NCj4+ID4gQEAgLTI2Niw2ICsyNjYsOSBAQCBzdGF0aWMg
aW50MzJfdCBkb19wc2NpXzFfMF9zeXN0ZW1fc3VzcGVuZChyZWdpc3Rlcl90IGVwb2ludCwgcmVn
aXN0ZXJfdCBjaWQpDQo+PiA+ICAgICAgICAgICAgICJTWVNURU1fU1VTUEVORCByZXF1ZXN0ZWQs
IGVwb2ludD0lIyJQUklyZWdpc3RlciIsIGNpZD0lIyJQUklyZWdpc3RlciJcbiIsDQo+PiA+ICAg
ICAgICAgICAgIGVwb2ludCwgY2lkKTsNCj4+ID4NCj4+ID4gKyAgICBpZiAoIGlzX2NvbnRyb2xf
ZG9tYWluKGQpICkNCj4+DQo+PiBXaHkgaXNfY29udHJvbF9kb21haW4oKSBoZXJlIGFuZCBub3Qg
aXNfaGFyZHdhcmVfZG9tYWluKCkgPw0KPg0KPiBUaGUgdXNlIG9mIGlzX2NvbnRyb2xfZG9tYWlu
KCkgaXMgaW50ZW50aW9uYWwuDQo+DQo+IFRoZSBpbnRlbmRlZCBtb2RlbCBpcyB0aGF0IFhlbi13
aWRlIGhvc3Qgc3VzcGVuZCBpcyBvcmNoZXN0cmF0ZWQgYnkgdGhlDQo+IHByaXZpbGVnZWQgbWFu
YWdlbWVudC9jb250cm9sIGRvbWFpbi4gVGhlIGNvbnRyb2wgZG9tYWluIGNvb3JkaW5hdGVzIHRo
ZQ0KPiB0b29sc3RhY2sgc2lkZSwgYXNrcyBvdGhlciBkb21haW5zIHRvIGVudGVyIHN1c3BlbmQs
IGFuZCB0aGVuIGlzc3VlcyB0aGUgZmluYWwNCj4gU1lTVEVNX1NVU1BFTkQgcmVxdWVzdCB0byBY
ZW4uDQo+DQo+IFRoaXMgZG9lcyBub3QgaGF2ZSB0byBiZSB0aGUgc2FtZSBlbnRpdHkgYXMgdGhl
IGhhcmR3YXJlIGRvbWFpbi4gSWYgdGhlDQo+IGhhcmR3YXJlIGRvbWFpbiBpcyBzZXBhcmF0ZSwg
aXQgaXMgb25lIG9mIHRoZSBkb21haW5zIHRoYXQgdGhlIGNvbnRyb2wgZG9tYWluDQo+IHBhcmtz
IGJlZm9yZSB0aGUgZmluYWwgaG9zdCBzdXNwZW5kIHN0ZXAuDQo+DQo+IFRoZSBod2RvbS1zcGVj
aWZpYyBjaGVja3MgaW4gdGhpcyBwYXRjaCBoYXZlIGEgZGlmZmVyZW50IHB1cnBvc2U6IHRoZXkg
YXZvaWQNCj4gdGhlIG9sZCBod2RvbV9zaHV0ZG93bigpIHBhdGggZm9yIFNIVVRET1dOX3N1c3Bl
bmQgYW5kIGFsbG93IHRoZSBoYXJkd2FyZQ0KPiBkb21haW4gdG8gYmUgcGFya2VkIGFzIHBhcnQg
b2YgdGhlIHN1c3BlbmQgc2VxdWVuY2UuIFRoZXkgZG8gbm90IGRlZmluZSB0aGUNCj4gcG9saWN5
IGZvciB3aG8gaXMgYWxsb3dlZCB0byB0cmlnZ2VyIFhlbi13aWRlIGhvc3Qgc3VzcGVuZC4NCj4N
Cj4gVGhhdCBzYWlkLCB0aGlzIHBvbGljeSBtYXkgbm90IGJlIG9wdGltYWwgZm9yIGFsbCBjb25m
aWd1cmF0aW9ucywgZXNwZWNpYWxseQ0KPiB3aGVuIHRoZSBjb250cm9sIGFuZCBoYXJkd2FyZSBk
b21haW4gcm9sZXMgYXJlIHNwbGl0LiBJIHdvdWxkIGFwcHJlY2lhdGUgeW91cg0KPiB2aWV3LCBh
cyB3ZWxsIGFzIHRoZSBtYWludGFpbmVycycgdmlld3MsIG9uIHdoZXRoZXIgdGhlIHRyaWdnZXIg
c2hvdWxkIHJlbWFpbg0KPiBjb250cm9sLWRvbWFpbiBiYXNlZCwgYmUgdGllZCB0byB0aGUgaGFy
ZHdhcmUgZG9tYWluIGluc3RlYWQsIG9yIGJlIGV4cHJlc3NlZA0KPiB0aHJvdWdoIGEgc2VwYXJh
dGUgaG9zdC1zdXNwZW5kIGNhcGFiaWxpdHkvaGVscGVyLg0KDQoNCkhhcmR3YXJlIGRvbWFpbiBv
d25zIGFsbCB0aGUgaGFyZHdhcmUuIEhhcmR3YXJlIHNoYWxsIGJlIHB1dCB0bw0KcG93ZXItZG93
bi9zdXNwZW5kZWQgc3RhdGUgYmVmb3JlIHN1c3BlbmRpbmcgdGhlIFNvQywgc28gaXQgY2FuIGJl
DQpyZXN1bWVkIGFmdGVyd2FyZHMuIFlvdSBjYW4ndCBqdXN0IHBhdXNlIGhhcmR3YXJlIGRvbWFp
biBpbiB0aGUgc2FtZSB3YXkNCmFzIHBhdXNpbmcgYWxsIG90aGVyIGRvbWFpbnMuDQoNCihPZiBj
b3Vyc2UsIHdlJ2xsIGhhdmUgdGhlIHNhbWUgaXNzdWVzIHdpdGggZG9tYWluIHRoYXQgaGF2ZQ0K
cGFzc2VkLXRocm91Z2ggaGFyZHdhcmUsIGJ1dCBpbiB0aGlzIGNhc2UgRG9tMCBzaGFsbCBvcmNo
ZXN0cmF0ZSBwcm9wZXINCnN1c3BlbmQgc2VxdWVuY2UgZm9yIHRoZXNlKQ0KDQpbLi4uXQ0KDQot
LSANCldCUiwgVm9sb2R5bXly


From xen-devel-bounces@lists.xenproject.org Thu May 07 22:27:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 May 2026 22:27:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303125.1576669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL7BN-0002mG-EH; Thu, 07 May 2026 22:27:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303125.1576669; Thu, 07 May 2026 22:27:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wL7BN-0002m9-Bl; Thu, 07 May 2026 22:27:01 +0000
Received: by outflank-mailman (input) for mailman id 1303125;
 Thu, 07 May 2026 22:27:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Volodymyr_Babchuk@epam.com>) id 1wL7BM-0002lu-AU
 for xen-devel@lists.xenproject.org; Thu, 07 May 2026 22:27:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wL7BL-00EV06-NO
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 00:26:59 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69fd1184-2eae-0a2a0a5409dd-0a2a45078abc-24
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 00:26:59 +0200
Received: from [40.107.162.136]
 (helo=PA4PR04CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69fd11b3-229c-0a2a45070019-286ba2884caf-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 00:26:59 +0200
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AMBPR03MB11798.eurprd03.prod.outlook.com
 (2603:10a6:20b:777::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.17; Thu, 7 May
 2026 22:26:58 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3%4]) with mapi id 15.20.9891.016; Thu, 7 May 2026
 22:26:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nuvUazhbxIYK1lHwUk0F1sXX1g2cbsFSdOPsgbOrKBh90si6Rfm+DhZoVmFYG3L1zHLHBzt4BC2APLHH5pNFZgQVScnMbB0i8GnbMlOaIvi024FNsdW7d0aCO1FIYxCZgNM9rWEbygX9gki8A7SmSNBuEOg1X6Vzf3VfSK113nrnGeo2pvds7rn5zsjRGwcsSThRVT1vg92r8m6TU/KezsUU3cZ7xZbQ15CDW5Ayewi8A/2lEbRoCzb4JrKU5isFgmsUCarr7/I4iMxzmKpT8lkMfT3t//weDlFdORcdNrYq3LfEK532l9pn27CukNWShR1IJiA6nsZCy9JtpYMNvg==
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=nK6Q3X3J844qUFdvIZPLiEQw1N4xRIYCnBas0zZCgKU=;
 b=NPek+RCBHn9uto9UlvRrnFtfT97RBXzcNDwg73qLX7PPV5nVggSZDWxlYeYBtdvucrWBtlyCH2PrJTi/fGaicVyVVqP+2SHo6IPUeO2zXz3xSrJ76URcD2g0qtIa8XjP2iPDoJrlr2/xjv0ahbn4YKNYlEj+2XiRALU1Aa90/VKl3mJvIHQcCch71aSGRIbe/g/aBzrw3g8kOziaDliS2kvAihXvUGsEZLl08qo9s9tEfoxT2BbCmhYnWjvXi1we0WPDec28NCwydhOozH0qYhO3ZGNIP0e2D59gDsmREBVFObTvOBE3kw3C91AnHEGbJ47C7K4Z8eNqTIN4Up7CiQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nK6Q3X3J844qUFdvIZPLiEQw1N4xRIYCnBas0zZCgKU=;
 b=eFgMmMdWlwlFHhyiT79Cj97aHsjonm8MAJi3wvrlG1RKBdH65GXEl7ua7mTBCAqY5DxbKuiaf9ocwufS0+xW6OfGcoQiXvwthERe4ytuFxG9dTzepiAolDXzm057y50jK1AGETz+/90LVyAVlMA3z2L3mOFJOD20DFy6YgiAw45aeY6xXOX9WT5CJY84kUfqaz29UrKpgP4zk/Bmi5x2hWcgBW5YlkEO4ppxetbDSl3R5e5K1Dd8bU3tvSlzBEjHhXTurMkyRXLzVQbBFGQ6CtIccPz5C3+wm56VpeLLk41M3gBBxPhioK1KxMt5Vh5eUrpZlObcSbqM1cBNOUPyMg==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <Mykola_Kvach@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Jens Wiklander <jens.wiklander@linaro.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH v8 06/13] xen/arm: tee: keep init_tee_secondary() for
 hotplug and resume
Thread-Topic: [PATCH v8 06/13] xen/arm: tee: keep init_tee_secondary() for
 hotplug and resume
Thread-Index: AQHcwo4dY/ZGRnVq+UOonkTUHmLh3g==
Date: Thu, 7 May 2026 22:26:58 +0000
Message-ID: <87fr42svny.fsf@epam.com>
References: <cover.1775125380.git.mykola_kvach@epam.com>
	<666917e8e8e435640c272c19908f412c315b2dc6.1775125380.git.mykola_kvach@epam.com>
In-Reply-To:
 <666917e8e8e435640c272c19908f412c315b2dc6.1775125380.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Thu, 2 Apr 2026 13:45:07 +0300")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|AMBPR03MB11798:EE_
x-ms-office365-filtering-correlation-id: ec5d068e-a077-408a-a1e8-08deac87c07e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|376014|1800799024|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 qg30o+SYAB8ZZ3kpb2ozaFJ8CZ0pFXU+dwipeV/+LqDVCQ3Yv8ozrkeR9MTQvYF3xznf/AsZdgG4+rvmr/FoN809CD5WLNNrtpImbsUoh9ixQsf6+qIX4Tpm5mPe+5iIeX9T1b0ZDGlRHat/bLAqeLU1kVMi+MdJfWW34guuPqlpckwdUV4EpqjlOanEsDLccX1PwH81Yalk4AHRsT5GzS4OcMPqUGVZ2pUnz6Q+sPEMMe+wVnZX8q4TG7Gpqmtt8Hd6Tmi0C57hZ44J7LpvZMFoIUoLuK1aob3AwhZ8H1FfoMr4ew5uztkcg5DijRssS5ObbrnLeuctP77kBYubdBLHQgHT7g1qia2evMkBJ233N8mhkdSJTMBFEqOKCsQd6CwG56+phNHgsccxlOGeHmAweqVkJ7HEha2XUW7u4YEzEiiwaapM+Acj2nZ3ecTCiRzyuTzBzHQctaKRtX7RO8L1UO0FqzfBHQELOcqhUJ4m0dV4yax7RjRuiMEEKmJbi4v7V2BWmV2Q2vuDupbNvz+PVjElOI55w/BY8U2xhakmoHhG8oDkCo3FQ/N08Amo31wL8X8oow7GjgnQSz7V5NDvnXB08l79zZLt1HdHqZgRgDSP3ir8NYU92LMWFT4bJTxs2qltQE1LJQDLY6dGQFn3df4fJ/MKllqKImRM5bpgUWiJDCGvx4uQVShKU+KLVVI8Vq3hBJAgsluMQlb2bPQuYK7m+5zqjM92/GwqpR4ost0Sgr+wxrnqsa5cf6lM
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(42112799006)(376014)(1800799024)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?TjSpMynUu+STnHXXgCsMsLO89mYEMUEltJjJBQ6FK977CWohfT+3FncKXO?=
 =?iso-8859-1?Q?BxrY2WRHKyKis8Rvfvb1lRc8VIhXs6GtbR/qGToShYyrISe2fGqVI8TY8N?=
 =?iso-8859-1?Q?qbvNGHtEK0BuNpoewLqctwYmDUtoQ5uQMjHJ1Ndz+g9WLy8Dn3K7jm9B0s?=
 =?iso-8859-1?Q?lPrz5g5Yg3bcPSIgkxVT5FkcsFczNV5sHZtxfVNjZ3ir/Xe//EUvosBiDO?=
 =?iso-8859-1?Q?mDR8PctIeS47xbi7JS4GRxidbDdsKtig+cXSsk1GMJd1RvuhqQZlmZxAdJ?=
 =?iso-8859-1?Q?N8siS9G3FojSfthXEEdPdF7xNvELIFEEtjHCd2YTW/lwf0mHhj6YSFAoLR?=
 =?iso-8859-1?Q?NChrbtwhrfCHZh2MI9VW321ecYMVNNopRfHqzMwhf28Yu8eEWIrg/KQ740?=
 =?iso-8859-1?Q?6hz4vcoDvslXLgxIZYFJmUKHYyC6+bZwAWysBtPKrr5TncrPYkfwsNGmrK?=
 =?iso-8859-1?Q?jLxca/xYAeX8N6rodyeQK7HNoCJiL38UADVdErMvwSMDkqqfLMGTtcRyW4?=
 =?iso-8859-1?Q?uqmxr5zdPLohChLceVuQS2U7SMIdnQlhlQ7oN/I6ls7eFxso8OOwQU6FnP?=
 =?iso-8859-1?Q?Vaf6oIIcOzHSrEFdoStxYu9CZIZOsI1pnJx3qnUHJoSga0S+EdhMhyVm2F?=
 =?iso-8859-1?Q?ELjBeIvRG0hfjLXXibn90y7yDRc0CN41nyHheRC3iWNGjCTpo24eTxGZuS?=
 =?iso-8859-1?Q?Keg2SbFzxGJH/91vAYJt+UdNcVF+zc9UZkX8Khpouk4b1rutW74roZVa2O?=
 =?iso-8859-1?Q?Y1Ftn9bG6iY0GvpJ10611KtrpgWiNUTfnYaHlUHeLXoPRK2VOaaV+g6qKz?=
 =?iso-8859-1?Q?vLB4Q2xpaj3YKHeofAh2QUfs46hhWTrVOZyaOkyk+osaTt8ywciHGFgY1z?=
 =?iso-8859-1?Q?s0Qs+Iv8+OIQ9aIEnWxM5t3zep3LRD5II+ix2gKooQARX+aLu/XIUPAmX5?=
 =?iso-8859-1?Q?of4SsNRZhBuXCMRWatWdxi2aGSLOZFRRzr4/doUVmX8Sjgdx9ZTbM2eNbO?=
 =?iso-8859-1?Q?aFTgMprXAPGUfrzHyr0rdJPySC+cQ9DvY6HFYm23uxQW1v20sD9YcGNDne?=
 =?iso-8859-1?Q?uTP3f3eAVDPQJJtGaZ4EWno8WRqwt+itBIfS8pT4Rd+bixcG84tlnqWNOd?=
 =?iso-8859-1?Q?DtRkQ3ZvEKvJmKVfyRtzg6NTxZP5M68HyusofE+AR+gwDYOhpOf+CGCofE?=
 =?iso-8859-1?Q?8CERWDkWE57ReHfBnC6YDWiW2dj0zWA7zL2xu7pIDdkGbG0zHeaMrfR+Jd?=
 =?iso-8859-1?Q?E04/M7kn2AJDiKPbjil/uFNQ3RTql3ZHa9l9d3CRnffM42ZrN9B4CLVjuC?=
 =?iso-8859-1?Q?E9SngpABHfz1NoSyTO5zMx/IvEJQMqMAfT7bOW7+BdLgPtb511IyWwPBxW?=
 =?iso-8859-1?Q?gwHVHGkeAo5dpURCZLsWy+Sq9qjxUESrq2cBmTonjpw0wTvQSxyvvsmnh8?=
 =?iso-8859-1?Q?fu4oG2dxVSrzAx9s6tBJwFOOzDlSfplk3ueoD+ztccr0oySX4srAf0Ylue?=
 =?iso-8859-1?Q?9p0RxEceo+ESPsTR1AYeI2GMRh+DP9GTJiOXvKKWLol0Za9r5bQD2U4mKF?=
 =?iso-8859-1?Q?72h/v4Pj+TsFJzQ5X2gzqagLCx7/yMPkM9WBZYuhPk4H5053DTLtoffsCt?=
 =?iso-8859-1?Q?vmtR42whcL+ATmo62tymDiruT36OJWg4HYPiEpKsfAfuInq9lABXi4eY8A?=
 =?iso-8859-1?Q?SaBqRyti3VpQHCnMN56iK40l0Xqn92n5lIPvDlDlIugp85H1SGQ4BRJM26?=
 =?iso-8859-1?Q?+92vwxT9TBjdKd7Z12cnSP02+qytjjM0Mk2uAByM3nCbisTTD+STZtRetT?=
 =?iso-8859-1?Q?k5APmNVtOJM3f4MOwRAFGVruEQTFn9Y=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ec5d068e-a077-408a-a1e8-08deac87c07e
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 May 2026 22:26:58.2667
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pT4ZwsCute9rKFT3XwiLDAg1Mr/W1eRhTzBzZwJoqBmQVqsvxjbP2mJGW+8zYounWMHR54Xk//oJu2gzofZKt7v/YKWvHWkGtjv+rWNyPO4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11798
X-purgate-ID: tlsNG-ef75cf/1778192819-09F6EC48-280A6FEE/0/0
X-purgate-type: clean
X-purgate-size: 1082

Hi Mykola,

Mykola Kvach <xakep.amatop@gmail.com> writes:

> From: Mykola Kvach <mykola_kvach@epam.com>
>
> init_tee_secondary() was marked __init and freed after boot. Calling it
> from the CPU hotplug/resume path then executed discarded code, which
> could crash Xen. Drop __init so the TEE mediator secondary init can run
> safely on hotplugged and resumed CPUs.
>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

> ---
>  xen/arch/arm/tee/tee.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/tee/tee.c b/xen/arch/arm/tee/tee.c
> index 8501443c8e..00e561fc78 100644
> --- a/xen/arch/arm/tee/tee.c
> +++ b/xen/arch/arm/tee/tee.c
> @@ -128,7 +128,7 @@ static int __init tee_init(void)
> =20
>  presmp_initcall(tee_init);
> =20
> -void __init init_tee_secondary(void)
> +void init_tee_secondary(void)
>  {
>      if ( cur_mediator && cur_mediator->ops->init_secondary )
>          cur_mediator->ops->init_secondary();

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Fri May 08 05:52:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 05:52:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303188.1576682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLE8A-0001rs-7E; Fri, 08 May 2026 05:52:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303188.1576682; Fri, 08 May 2026 05:52:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLE8A-0001r0-0m; Fri, 08 May 2026 05:52:10 +0000
Received: by outflank-mailman (input) for mailman id 1303188;
 Fri, 08 May 2026 05:52:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wLE89-0001qP-C3
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 05:52:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLE88-0045ao-PF
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 07:52:08 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fd79ff-5cb7-0a2a0a5109dd-0a2a450cb8f4-8
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:52:08 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fd7a08-62f1-0a2a450c0019-d1558032d55a-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:52:08 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-488ba840146so14027085e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 22:52:08 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e642e2b29sm17617545e9.1.2026.05.07.22.52.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 22:52:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778219528; x=1778824328; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QiUDegGJK2Q/CSkBpiVME5VeFHxmVrExfgV9xxQPMFo=;
        b=f2X0HScIYrdd8PLGp2YzkwM2HSFip5YNJXQhckY1y0HEW8LhX+xp0PJynwXLQHxUmT
         lhYiCkhj7/wR/SIjU15DgQNurtDNXLHrTQ6SfV0KltsaTalA/rVCgk0+dOwkFeKFp4Qg
         IvML79GU7ebUWfqEJBoboC2Gzov6a1VoiOcZvtXBFHvwASnz3G6kFDoT9prmBAeKCWKu
         Tqm4jYPYH8JW6MJAOBR9AAu0MpUw8VWK38XWXg1SuRDQiUjMao9Zso4ASDmaxdlh9rYM
         yafnskNfR3o+5zFpDpJbWZWXX6i20FB6YLUEBD65RGJieRZ6aaV6pygPjE8KJ36xUGEz
         Watg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778219528; x=1778824328;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QiUDegGJK2Q/CSkBpiVME5VeFHxmVrExfgV9xxQPMFo=;
        b=dnvClJQhKJFvtQ88EMcCEvyUDZubtDg0LxbIqctdqjC7c3QWJo6hHFpxLlq9YS3K8o
         ErYFUGU4Lu0jtq/bmE6H62szOS39Y5I8LOAxNf24sRlHAXOFBhhLXf+5sN0ZDDm430Jh
         vrgtXwzwVVWbWLTj3SYPi2YYqkkPc8fnNPLBPIOvL8DfDn4PT3QFX5WeOymn2YV7G1Bm
         TGb7bMMud4yuxp+K9/0N9v3ykQg5wfrz9nqUOBH3ITaBt7uC5qCAUHDKbJbbNFEC6QS4
         007LmguRDTaJ1g9ws4VYELW5o9/ZfU/odyLZ7hBaAoYcgjB+hisoXiWKgVDrcZTcJe9j
         CxQA==
X-Forwarded-Encrypted: i=1; AFNElJ9h9aLg9/fKm2EG+xxcVIi2Li7dpf0gsj3Vfxc2z5jHLIcCyiFztJXY9dIXzc716Rb31mhkr0penwA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy6ov1CyRQbLoOLBPL0pbc8ZdYW9Wgh0ILKQjGFe8X3Kyqnioz+
	hQErIdPKyAz8zk5MrtmYqJArdxdnkI4gd42NSh9QlJlVGmuDGXiwnBmvlEbeXdiubA==
X-Gm-Gg: AeBDievQnckLi9nLyu0+P+51JooERV1ZtPE9oIMFQ7bIrQC1w2vFV4cX1tue4FUxQjC
	xNzOBnJ30pylyz+zQNo4W1rZiODEZedCU5l7OfssguqDVZNlUlTBprIlVdBlSgpRcokl0m9Mw1p
	Zpsm7yDZs7L4ryQvQ4TmHhza3G7+G+J4u0ZvI+41J2AQpD5k/48izdGcGiLda89nPGPpgEln+PZ
	/VNowyVpDwH4fLbE4i1n1rtRaKztQH+JXYC2LIuwGtReLd4nSEsBTOZTE7eE1lZZTfekZRbafqb
	V76pJT0xywJbxT5ni4GjrSJCwnuIdmChbz4giaLWNV3QCSQsiTJl/k2rZvxN3sGSoqdYSChxljZ
	5HcYhRqbGqgxBYNl27EUnv+GXMM5CrhCsTAPjZpYlEadOsY/ZCIu+qRDf8ho/OcBeWGwB+zORvd
	M/XsNhlaTAboeld7mX+qq6DcoBCs3DGkTLQ6fN/x6DoRxW95dETm5FezNRu8zc1Y+BdIC/CgtSs
	xr0d3lzzMOjGXA=
X-Received: by 2002:a05:600c:a111:b0:488:79a3:f04c with SMTP id 5b1f17b1804b1-48e51f46d1bmr128938915e9.27.1778219528065;
        Thu, 07 May 2026 22:52:08 -0700 (PDT)
Message-ID: <33465631-2de8-4d27-9e1a-4ea68481a070@suse.com>
Date: Fri, 8 May 2026 07:52:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <cover.1775742115.git.mykyta_poturai@epam.com>
 <a0abd984989237d2f36e1628db577fb25af1cdbe.1775742115.git.mykyta_poturai@epam.com>
 <5efddecc-3665-4a53-9eaa-b117370cc0e4@suse.com>
 <5168207f-33ed-4fc4-918e-6c3b454b0efa@epam.com>
 <efb254c2-f52a-408d-b225-e4e03935d05e@suse.com>
 <d0916f22-b5c0-4c93-935c-4cbe17e626d4@epam.com>
 <e5844c28-aa68-4bf6-8287-a4ceeda3a1d2@suse.com> <878q9vt0lg.fsf@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <878q9vt0lg.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1778219528-E3B7CCF5-C0C7345E/0/0
X-purgate-type: clean
X-purgate-size: 3575

On 07.05.2026 22:40, Volodymyr Babchuk wrote:
> Jan Beulich <jbeulich@suse.com> writes:
>> On 06.05.2026 11:39, Mykyta Poturai wrote:
>>> On 5/4/26 08:37, Jan Beulich wrote:
>>>> On 23.04.2026 12:12, Mykyta Poturai wrote:
>>>>> On 4/21/26 17:43, Jan Beulich wrote:
>>>>>> On 09.04.2026 16:01, Mykyta Poturai wrote:
>>>>>>> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>>>>>
>>>>>>> This code is expected to only be used by privileged domains,
>>>>>>> unprivileged domains should not get access to the SR-IOV capability.
>>>>>>>
>>>>>>> Implement RW handlers for PCI_SRIOV_CTRL register to dynamically
>>>>>>> map/unmap VF BARS. Recalculate BAR sizes before mapping VFs to account
>>>>>>> for possible changes in the system page size register. Also force VFs to
>>>>>>> always use emulated reads for command register, this is needed to
>>>>>>> prevent some drivers accidentally unmapping BARs.
>>>>>>
>>>>>> This apparently refers to the change to vpci_init_header(). Writes are
>>>>>> already intercepted. How would a read lead to accidental BAR unmap? Even
>>>>>> for writes I don't see how a VF driver could accidentally unmap BARs, as
>>>>>> the memory decode bit there is hardwired to 0.
>>>>>>
>>>>>>> Discovery of VFs is
>>>>>>> done by Dom0, which must register them with Xen.
>>>>>>
>>>>>> If we intercept control register writes, why would we still require
>>>>>> Dom0 to report the VFs that appear?
>>>>>>
>>>>>
>>>>> Sorry, I don't understand this question. You specifically requested this
>>>>> to be done this way in V2. Quoting your reply from V2 below.
>>>>>
>>>>>   > Aren't you effectively busy-waiting for these 100ms, by simply
>>>>> returning "true"
>>>>>   > from vpci_process_pending() until the time has passed? This imo is a
>>>>> no-go. You
>>>>>   > want to set a timer and put the vCPU to sleep, to wake it up again
>>>>> when the
>>>>>   > timer has expired. That'll then eliminate the need for the
>>>>> not-so-nice patch 4.
>>>>>
>>>>>   > Question is whether we need to actually go this far (right away). I
>>>>> expect you
>>>>>   > don't mean to hand PFs to DomU-s. As long as we keep them in the hardware
>>>>>   > domain, can't we trust it to set things up correctly, just like we
>>>>> trust it in
>>>>>   > a number of other aspects?
>>>>
>>>> How's any of this related to the question I raised here, or your reply
>>>> thereto? If we intercept PCI_SRIOV_CTRL, we know when VFs are created.
>>>> Why still demand Dom0 to report them then?
>>>>
>>>
>>> The spec states that VFs can take up to 100ms after the VF_ENABLE bit is 
>>> set to become alive. We discussed in the V2 that it is not acceptable to 
>>> do a required 100ms wait in Xen while blocking a domain. And not doing 
>>> that blocking would require some mechanism to only allow a domain to run 
>>> for precisely 99(or more?)ms. You yourself suggested that we can trust 
>>> the hardware domain with registering VFs if we already trust it with 
>>> other PCI-related stuff. Did you change your mind, or am I completely 
>>> misunderstanding this question?
>>
>> No, I still think that we can trust hwdom enough. Nevertheless we should
>> aim at being independent of it where possible. And I seem to recall that
>> I had also outlined an approach how to avoid spin-waiting for 100ms in
>> the hypervisor.
> 
> I want to clarify: you are telling that Xen should not wait for hwdom to
> report VFs and instead create them by itself. Is this correct?

If that's technically possible, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 08 05:52:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 05:52:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303187.1576678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLE8A-0001qi-00; Fri, 08 May 2026 05:52:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303187.1576678; Fri, 08 May 2026 05:52:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLE89-0001qa-QW; Fri, 08 May 2026 05:52:09 +0000
Received: by outflank-mailman (input) for mailman id 1303187;
 Fri, 08 May 2026 05:52:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wLE88-0001qO-Vp
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 05:52:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLE87-005pz7-Sk
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 07:52:07 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fd79fe-e002-0a2a0a5209dd-0a2a4506ba88-12
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:52:07 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fd7a07-7371-0a2a45060019-d1558035e5aa-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:52:07 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso11698255e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 22:52:07 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e642e2b29sm17617545e9.1.2026.05.07.22.52.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 22:52:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778219527; x=1778824327; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QiUDegGJK2Q/CSkBpiVME5VeFHxmVrExfgV9xxQPMFo=;
        b=MVcancLcVb5+GuExsoM5FaertqdRglL5JHAL0UE+A+zcIssAJUebCQQ0vX/m9CuTaA
         Pb0gKPg/mo3VWNXvKqDBpfh0lKIFZatHFMOtl9xpmdBwiqFUuPEhghGcQ9YQEJxZ75Qn
         /JV5kan07pUKBjY1puowsrcuiwJrGGlardbqffEkm+tu4bgYH9XhxmVzR6NSG78xVwPP
         5Kk9Xbjxvq9tcw88ILoU3JONjRIvNWhAvRECCAEFCzTN7G9eYXgAzMH738HDNWIwoDL/
         L7eE52R3nJb8pt4wT9wbsu7IafbeWR5+6G4iz6lcwzJiGxa6Efw1qeXrgtTLo81NlhJY
         J9Rw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778219527; x=1778824327;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QiUDegGJK2Q/CSkBpiVME5VeFHxmVrExfgV9xxQPMFo=;
        b=KpJu+0/N3EdDrGxqPEsGUX4qaCWIY/wcsk+s8LSabR0JfpSs0OHYp4SyZSJJL/0Gxm
         rTfq5c328hddZhhoRA8AgjNdIhEXcBB5KtENp/pVIxUcF8okOKhCYn8kWy/pyz1+dvi/
         bUWGEyqRP71sD3xQztFEmysRZRqd+SrtyKXYbBQ4MmdoZe/lSaYtbTzEvqE/LGhiLE4x
         sA0uB/t3R8CXe/PYfLn2cWIZT0RFIW9k10sF58Yh8+9TfJjpvtrdJmza+qgbsXOL2L+A
         /L5c/rYX3vGvopwgV+OmYmeliRQ+Prqk3uK9cnnNuKIGOFrdpi6Lt7Qqwy/R0DOOBCjH
         elUQ==
X-Forwarded-Encrypted: i=1; AFNElJ+pM1ohouR93Op1lmp7egIx48Vf8Z6ZZkAdY7FsnasyQ9FxFo6gPauNT/zJ55PKGiLbtmeBKqMZgzk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw+TE4SORGkVxXntUXoDQwI72x15og+S92m/RoZlsrgv/ZyVGou
	j8nu0hiPywx60MOHyn97W5rwBJygqNMjPyT2siuP4QuPNCcnfAej9mnonrYR2JzXUg==
X-Gm-Gg: AeBDietheBYQkQMmPDTCj6Ochgbeo44g/e7FSgcUePLWAi2nfuDCClCtCZdUMXvSxt+
	Vo9RMB+4TJxUCc6IgIDwjkf5N+/jAjsFGGd/u42gvC5ZqJVVGr4RqDfE+UJiaioW++sHuxGZ1B6
	R9mrAalo2sbACcbWt89J1jnUuJcWsKaTzY4kHSh3upHcNxR47RMfecHx/Z6LI9Dc8yuubhYNjVP
	PYWuQap20YAdZmZTs9GTAc9l+TPwSo36o5rKrrTeivCIKKLLV2x5pqb1EkuDt8cPx9iJAhbfRWG
	UtCUgRH95gmR19q/zUG+mrRtvfIttATal7I9RQZXwuKgIMx1VnnXkyjKrIikPr2RDoPzOqoG/Lq
	JmScGZfGa2svNgZ0gYYVGvsAmHHHRbzbTF9rhvhWIGJQACG5GPLLWXIom4PDOWyR1zmV462yO6Y
	lt2DI0NLVgLKt/uFfh6jUKL5C136VJSXojFOGnC5fIZL4M8BiAeIJ2WutRsHJ+s870Lrg349VvT
	HhCtTn5sLrfpkI=
X-Received: by 2002:a05:600c:1d18:b0:48a:8cb6:88b9 with SMTP id 5b1f17b1804b1-48e51f44621mr169130445e9.22.1778219526625;
        Thu, 07 May 2026 22:52:06 -0700 (PDT)
Message-ID: <e9610f70-85b8-44d9-8e13-da26d506d5b7@suse.com>
Date: Fri, 8 May 2026 07:52:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <cover.1775742115.git.mykyta_poturai@epam.com>
 <a0abd984989237d2f36e1628db577fb25af1cdbe.1775742115.git.mykyta_poturai@epam.com>
 <5efddecc-3665-4a53-9eaa-b117370cc0e4@suse.com>
 <5168207f-33ed-4fc4-918e-6c3b454b0efa@epam.com>
 <efb254c2-f52a-408d-b225-e4e03935d05e@suse.com>
 <d0916f22-b5c0-4c93-935c-4cbe17e626d4@epam.com>
 <e5844c28-aa68-4bf6-8287-a4ceeda3a1d2@suse.com> <878q9vt0lg.fsf@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <878q9vt0lg.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1778219527-85B6DD75-5E4E99F6/0/0
X-purgate-type: clean
X-purgate-size: 3575

On 07.05.2026 22:40, Volodymyr Babchuk wrote:
> Jan Beulich <jbeulich@suse.com> writes:
>> On 06.05.2026 11:39, Mykyta Poturai wrote:
>>> On 5/4/26 08:37, Jan Beulich wrote:
>>>> On 23.04.2026 12:12, Mykyta Poturai wrote:
>>>>> On 4/21/26 17:43, Jan Beulich wrote:
>>>>>> On 09.04.2026 16:01, Mykyta Poturai wrote:
>>>>>>> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>>>>>
>>>>>>> This code is expected to only be used by privileged domains,
>>>>>>> unprivileged domains should not get access to the SR-IOV capability.
>>>>>>>
>>>>>>> Implement RW handlers for PCI_SRIOV_CTRL register to dynamically
>>>>>>> map/unmap VF BARS. Recalculate BAR sizes before mapping VFs to account
>>>>>>> for possible changes in the system page size register. Also force VFs to
>>>>>>> always use emulated reads for command register, this is needed to
>>>>>>> prevent some drivers accidentally unmapping BARs.
>>>>>>
>>>>>> This apparently refers to the change to vpci_init_header(). Writes are
>>>>>> already intercepted. How would a read lead to accidental BAR unmap? Even
>>>>>> for writes I don't see how a VF driver could accidentally unmap BARs, as
>>>>>> the memory decode bit there is hardwired to 0.
>>>>>>
>>>>>>> Discovery of VFs is
>>>>>>> done by Dom0, which must register them with Xen.
>>>>>>
>>>>>> If we intercept control register writes, why would we still require
>>>>>> Dom0 to report the VFs that appear?
>>>>>>
>>>>>
>>>>> Sorry, I don't understand this question. You specifically requested this
>>>>> to be done this way in V2. Quoting your reply from V2 below.
>>>>>
>>>>>   > Aren't you effectively busy-waiting for these 100ms, by simply
>>>>> returning "true"
>>>>>   > from vpci_process_pending() until the time has passed? This imo is a
>>>>> no-go. You
>>>>>   > want to set a timer and put the vCPU to sleep, to wake it up again
>>>>> when the
>>>>>   > timer has expired. That'll then eliminate the need for the
>>>>> not-so-nice patch 4.
>>>>>
>>>>>   > Question is whether we need to actually go this far (right away). I
>>>>> expect you
>>>>>   > don't mean to hand PFs to DomU-s. As long as we keep them in the hardware
>>>>>   > domain, can't we trust it to set things up correctly, just like we
>>>>> trust it in
>>>>>   > a number of other aspects?
>>>>
>>>> How's any of this related to the question I raised here, or your reply
>>>> thereto? If we intercept PCI_SRIOV_CTRL, we know when VFs are created.
>>>> Why still demand Dom0 to report them then?
>>>>
>>>
>>> The spec states that VFs can take up to 100ms after the VF_ENABLE bit is 
>>> set to become alive. We discussed in the V2 that it is not acceptable to 
>>> do a required 100ms wait in Xen while blocking a domain. And not doing 
>>> that blocking would require some mechanism to only allow a domain to run 
>>> for precisely 99(or more?)ms. You yourself suggested that we can trust 
>>> the hardware domain with registering VFs if we already trust it with 
>>> other PCI-related stuff. Did you change your mind, or am I completely 
>>> misunderstanding this question?
>>
>> No, I still think that we can trust hwdom enough. Nevertheless we should
>> aim at being independent of it where possible. And I seem to recall that
>> I had also outlined an approach how to avoid spin-waiting for 100ms in
>> the hypervisor.
> 
> I want to clarify: you are telling that Xen should not wait for hwdom to
> report VFs and instead create them by itself. Is this correct?

If that's technically possible, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 08 06:11:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 06:11:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303206.1576696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLEQc-0005Z0-N4; Fri, 08 May 2026 06:11:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303206.1576696; Fri, 08 May 2026 06:11:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLEQc-0005Yt-KI; Fri, 08 May 2026 06:11:14 +0000
Received: by outflank-mailman (input) for mailman id 1303206;
 Fri, 08 May 2026 06:11:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wLEQb-0005Yn-IJ
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 06:11:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLEQa-001eul-GG
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 08:11:12 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fd7e72-bab6-0a2a0a5309dd-0a2a450399de-42
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 08:11:12 +0200
Received: from [209.85.221.45] (helo=mail-wr1-f45.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fd7e7f-672d-0a2a45030019-d155dd2da5bc-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 08:11:11 +0200
Received: by mail-wr1-f45.google.com with SMTP id
 ffacd0b85a97d-441209fb77eso990530f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 23:11:11 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4548eb75c29sm1902038f8f.9.2026.05.07.23.11.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 23:11:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778220671; x=1778825471; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Arhe0IY7Yg8LUTmLKE0FMC8sOVWLSnJTpAFxjFXGbeI=;
        b=fDO1pB0afcZqq8PHKE2Gy9y/L2kAT+ZpoTDiO6SmHqbn44n/ScDMayVgSIjTI6Kyd4
         aErzYgBO4qHqDuf1FFShGHFjNkQJ8atbbDb0rZ6C/6abCMHjHSDjfPr0YWuEPccR8PUt
         sIg+RnYwBdCYGBmNFydLAgAUlB+kPd0cqOZ60P72Dtf9s8I5XWa9A+/4rCdf1NDN6nJK
         WXvMZ6rJxNqcjVkcY58n8wHnVug5LGQK3fH2UsjLaz9PiQ5/rkeI5CH0+u529CKMz6pd
         R/wjNwIYadJbpyQFeLR4aobSg36WiKAOYqXnr37cxS7nFD5fy+2YNV00YRT8QkT9Ha/N
         Z8bw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778220671; x=1778825471;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Arhe0IY7Yg8LUTmLKE0FMC8sOVWLSnJTpAFxjFXGbeI=;
        b=dhcN/QdTYIKH7Gz9zSiKPJxtbidCAn0PcBs1OQcPL5NJe9eImJB3bJsBqpaR59LTH5
         S8Q9xNGD283gWB72WIhA/tY0BdJju8OsBdjl0z/lDANZchnmDTB9RHBYUC7OgeNcLfII
         wVoZT8Twkex1twuYw67Z8GAXnjDqeHF36Xo13STDaJRK+woMpclvebBs5CGMw+ccA+4H
         BveRF+3CFDQSYlespthWa5d2PkFPg5q1TNdDmxmoKJdGuJ9A+gzjAJqp1zMcrqFnZkrl
         u/rqcpvZjZUrZchMBwAh8a07DSrIFsUKiiV2w104WPyUWdc4yjmBttuKqC18WRnWmN6g
         alsg==
X-Gm-Message-State: AOJu0YxkuiCoWlYd9uBT3GvgqIGNHayggEtkHUKq0rYQ8rNqzBdJBmYs
	6Eaj1KY0l4wQqJof8dpBFjJtzd7Mw6SDQ+jwFjixzZw5zkcmPmqytadUnzDAzmcUte4mnAU0gQF
	ku9U=
X-Gm-Gg: Acq92OE00bsCdXr+d5+z/uujHphyshvmVzSvojV7dJ1nEuSJ0M4c9osYRpp0l8HuIxL
	cd7u+SUoy1jgDE8CmN8MlB8JgO534p019Rr/EAxCcvUjzThugxpU6VXrmd5abiLeeJS7aWB8BVl
	D36/3bWxSHAWLf2wjvIS6umo3MpsCo/UfqKLB4WQ7BtR7tTmqCqmCXEKeJMHwS52JGaXBUQfBRA
	m4/TbJyl0I+8fOrz6gSDDeTWKzEC5nRenxiNEfjHuLK9EM8vRqbSL+C1ZJyrULdEiwEWLgzjz4j
	a1HaRsWl6QX1lRixkgFur0DBizjWAy9x4PJGiuoj5HnWD3piNJ6dNUBjA2ld/UVuDQ8204bGyS5
	+R9P479efef2YpFVslMEHZWLRKACc1saNPPp4/JUSdkCcvazgusb7WEeav3n4N08iHFk3FaLpCm
	ltRiS4yfUAqy1TzIo1TSJrz5ttU9i7I/pwcbxx316xgG2fduwx0bkDAgN4NfZTFJB1AWXJQzMhg
	dLG0TcqyaslLnabo3M+4IqpWg==
X-Received: by 2002:a05:6000:ec7:b0:452:f380:5508 with SMTP id ffacd0b85a97d-452f38056f9mr6299278f8f.0.1778220671255;
        Thu, 07 May 2026 23:11:11 -0700 (PDT)
Message-ID: <84e74842-9a2e-42ce-9ec9-2892156353b1@suse.com>
Date: Fri, 8 May 2026 08:11:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CI: collect certain intermediate files as artifacts
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <6d9345e7-7ad9-48f4-8447-3a955305430a@suse.com>
 <alpine.DEB.2.22.394.2605061748080.1744448@ubuntu-linux-20-04-desktop>
 <alpine.DEB.2.22.394.2605061753050.1744448@ubuntu-linux-20-04-desktop>
 <540ef3bd-6fc6-4cf1-a1fe-3def9cfcc114@suse.com>
 <alpine.DEB.2.22.394.2605071441490.1779943@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <alpine.DEB.2.22.394.2605071441490.1779943@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1778220671-3A965938-79FB9B79/0/0
X-purgate-type: clean
X-purgate-size: 3429

On 07.05.2026 23:44, Stefano Stabellini wrote:
> On Thu, 7 May 2026, Jan Beulich wrote:
>> On 07.05.2026 02:54, Stefano Stabellini wrote:
>>> On Wed, 6 May 2026, Stefano Stabellini wrote:
>>>> On Wed, 6 May 2026, Jan Beulich wrote:
>>>>> When one of the linking passes fails, additional intermediate files are
>>>>> still in place. Having them available for analysis of the underlying
>>>>> problem can be pretty helpful. Collect some into a new intermediates/
>>>>> directory. (Nothing new will be collected if linking succeeds.)
>>>>>
>>>>> While there also make sure xen-syms is collected (into binaries/). This
>>>>> is rather more useful for analysis of possible problems than its stripped
>>>>> counterpart.
>>>>>
>>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>>> ---
>>>>> As the issue this is meant to help with didn't re-occur with this in
>>>>> place, the new logic wasn't really tested yet.
>>>>
>>>> It looks OK but please provide a link to a successful pipeline
>>
>> Well, I had it in use in
>> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2503967215
>> but does that count, when the issue the change is for didn't really occur?
>> For now I can't test the additions without having a way to trigger that
>> symbol table issue (or any other problem at one of the linking stages).
>> Short of artificially breaking things, that is.
> 
> Please break it on purpose. Just push to a temporary branch.
> 
> 
>>>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
>>
>> Thanks, but the above wants clarifying first, and the below suggests you
>> actually meant to take back the R-b.
>>
>>> Actually, I see that the build script is run with bash -ex so I wonder
>>> if collect_xen_artefacts would even run if make fails. I think we need: 
>>>
>>> trap collect_xen_artefacts EXIT
>>
>> I don't feel comfortable making such a change. Furthermore it's unrelated,
>> as it would mean that on other build failures successfully created final
>> binaries wouldn't be collected either (after all on x86 it may be only one
>> of the two links that failed). Plus then it would likely want doing
>> differently, by making the EXIT hook invoke a new
>> collect_xen_intermediates(), leaving collect_xen_artefacts() unaltered
>> (except for the xen-syms addition there)?
> 
> "trap collect_xen_artefacts EXIT" was just a quick suggestion to explain
> the type of change that would be needed to make this work, because as I
> understand it, it does not work now.
> 
> From your comment I don't understand if you think that the patch as is
> would work as intended or you agree with my comment that it would not
> work.

Given the -e passed to bash, I don't expect it to work as is. However, I
question this behavior. Exiting on error may be okay for any of the
preparatory commands, but exiting on failure of make feels dubious [1].
Hence I'm unsure which way to deal with that aspect (i.e. I'd prefer to
latch the main make's status, collect artifacts, and then exit the
script with make's status).

Somewhat related: Why is it that collect_xen_artefacts is invoked three
times, rather than just once at the very bottom of the script? At which
point it wouldn't even need to be a function.

Jan

[1] E.g. a failed tools build may also be easier to analyze if the
already built components (libraries in particular) were collected.


From xen-devel-bounces@lists.xenproject.org Fri May 08 06:17:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 06:17:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303216.1576704 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLEWM-000681-9R; Fri, 08 May 2026 06:17:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303216.1576704; Fri, 08 May 2026 06:17:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLEWM-00067u-6s; Fri, 08 May 2026 06:17:10 +0000
Received: by outflank-mailman (input) for mailman id 1303216;
 Fri, 08 May 2026 06:17:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wLEWK-00067o-J7
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 06:17:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLEWJ-005u5p-Ss
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 08:17:07 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fd7fe3-2eae-0a2a0a5409dd-0a2a4506e562-6
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 08:17:07 +0200
Received: from [209.85.221.47] (helo=mail-wr1-f47.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fd7fe3-7371-0a2a45060019-d155dd2fd4aa-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 08:17:07 +0200
Received: by mail-wr1-f47.google.com with SMTP id
 ffacd0b85a97d-44985f4ab0fso907973f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 23:17:07 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-454922715b9sm2052066f8f.36.2026.05.07.23.17.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 23:17:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778221027; x=1778825827; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=On8Mw8XOWmXd831TfiUBus8JrKQglGEO8H8VxqZYekU=;
        b=C7PD71c0uB/W+yuu3SOv+LcyOaUbVblI9zvDI+wdpTZ21pHr71Ta8Y4UFNMHFo7p5g
         wpfO0367Rw8ukYyAii5a423Ebahektm9jj1ZD9gNUfH3NGPqDtYm8D1yXU1/R3luoHlG
         TaLk164eyYWMSswSaWN2nfMzVKbmzVe0UK8nbMuiwZvC8xtyF78v+qEEsiiWDfJjBajR
         TrdrDuf+7J+fJTZ8C2asyhh8LLZzdz3+TlnloPvmiRrtgSQwJt/tmQpFeGRqepG2XFEq
         F4KVAv0FYS/cSponh457Oa7qOKfDyOLTJ1CrITZZeYSp44PrJDCafuR9sJ+2lfhhbZ9k
         tKzQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778221027; x=1778825827;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=On8Mw8XOWmXd831TfiUBus8JrKQglGEO8H8VxqZYekU=;
        b=Pa9LqMBcc7Y/o30n3WA5ii8Vd6eEWULvRqtORtH4gHwbqm/e/aGmWQXdoj2tItqoEB
         Y7UEhvLYZR1uxffI5uKzRBsqSzk7BdCF5qrknF798vY/8HLyAsrbiWNAE9LwhfDzbwVD
         lJOCZf/6iLr/Y3biPjtEeevVcJ68cHcIAAWvuU49qk5CbW0w9Gl9mbCwn7zum1Oe1Uhv
         qpzKJn1/GHK/zxBocq5yHTUsK9FBZ0pYwat7EWDN8WoUrxVos5pJVHeSgqA2A+FHGChA
         iaIHC05D6J30NOmq4PS3n5h4b+shBfI7NVHIys0/n1S9ZHkF014tdRGGM0xNVhYGp8Jd
         Q4kA==
X-Forwarded-Encrypted: i=1; AFNElJ9sHVIuN+HRkSl9emes1N5iWpvKB4N4C0B/kvQer+hIbuW3LI0WSuVgA3VYC9rkvgWjr8vmDvtVjcI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyxynZ/fOlKth/eK982mCzMk0+PzGMn77gtGADONLaVCE4lDIFz
	ITxL6JEb+hpNKPhmaHliJAnz9dJwGWKe7seu9Z4xBT5kuJ0i03HhB4uxrC4GoMf1gA==
X-Gm-Gg: Acq92OFDaz0QU2NOl+FH4fnL3VpCEw/R1X8PMA/8IbxmoMSo096wg6W/PkAfGxz9yDG
	NPEZLcV0HvokHM9Tfg+WveBLNMiB9/3hExWUQEY23fft/PcYbmMalZXfBsxBt4B0zTSMiMT6ANo
	uYLkbb60pwZ02vY6u+ryZGbWwnZNLR/xfkVx8zEpEFEoR2CFlVbLmLD0WO+3v4yqPTM/4n6HJL5
	LR4X16Goe+y7raXFGxEzIDNbpylNV7yqH3zVP7JHtgeThlOqqsuUCVXAZ9SKwP6eI8nN8uRy4I0
	yDdLRWMi6KrkGwYPKUf68w4SLhbmRk6NlwYvKeItX0F3l66wv8iftJljUfonIK2yPpd55yiGARk
	7i1YLkepenAlQhcDYp/qAaSwFWv2wVrUag6TKBxP3ia6stQHJ211ghkxvLBU5wj9Q0dMfYGY3at
	qz0egfMm+pjJLovSvK510hFMvWKlEAYGV9cEudVPhudvq1sVB4h+I+hQx6SMk9oAkD7ZCd8QSI7
	mFVT/S0JAS98mE=
X-Received: by 2002:a05:6000:24ca:b0:449:a07a:967f with SMTP id ffacd0b85a97d-4515cf127cemr18129182f8f.28.1778221027193;
        Thu, 07 May 2026 23:17:07 -0700 (PDT)
Message-ID: <cdb49070-df93-45fb-b0e1-26dbfd532507@suse.com>
Date: Fri, 8 May 2026 08:17:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] gnttab: simplify (replace) gnttab_set_frame_gfn()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Rafal Wojtczuk <rafal.wojtczuk@7bulls.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <c4ceaab7-3d5d-4923-bc27-f67d1510048c@suse.com>
 <d7e4d96a-ae5c-4438-9481-09ca1aa50402@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d7e4d96a-ae5c-4438-9481-09ca1aa50402@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1778221027-8C47CD75-8A5280A1/0/0
X-purgate-type: clean
X-purgate-size: 2023

On 07.05.2026 19:49, Andrew Cooper wrote:
> On 07/05/2026 12:41 pm, Jan Beulich wrote:
>> It's not really doing anything for valid GFNs, which renders its one use
>> site pretty pointless. The other isn't so much about setting anything, but
>> rather about clearing. Rename the macro accordingly.
>>
>> The main point here, however, is about Rafal spotting the double
>> fetching of the GFN (first in gnttab_unpopulate_status_frames(), then
>> again in gnttab_set_frame_gfn()). Re-purpose the macro parameter to pass
>> in the already fetched GFN, while dropping the no longer used parameters.
>>
>> Suggested-by: Rafal Wojtczuk <rafal.wojtczuk@7bulls.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Do we even need the hook anymore? It has been expanding the same for Arm
>> and x86.
> 
> At this point, I'd say no.
> 
> The macro has changed contents several times since it's introduction. 
> The grant table macros especially demonstrate how poor the common/arch
> interfaces are.

Okay, unless I hear otherwise (pretty soon) I'll drop it altogether in v2.

>> --- a/xen/common/grant_table.c
>> +++ b/xen/common/grant_table.c
>> @@ -1844,8 +1844,7 @@ gnttab_unpopulate_status_frames(struct d
>>          {
>>              int rc = gfn_eq(gfn, INVALID_GFN)
>>                       ? 0
>> -                     : gnttab_set_frame_gfn(gt, true, i, INVALID_GFN,
>> -                                            page_to_mfn(pg));
>> +                     : gnttab_clear_frame_gfn(gt, gfn, page_to_mfn(pg));
>>  
> 
> This is just a more complex way of writing
> 
>     if ( !gfn_eq(gfn, INVALID_GFN) )
>         rc = gnttab_clear_frame_gfn(gt, gfn, page_to_mfn(pg));

With up-front

    int rc = 0;

yes. As in many other cases I'm trying to keep churn low when there's no
pretty much objectively better way of writing things. Personally I prefer
the "just an initializer" form (iirc it was also me who introduced the
above code in that shape).

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 08 06:31:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 06:31:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303224.1576713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLEjp-0000kb-E3; Fri, 08 May 2026 06:31:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303224.1576713; Fri, 08 May 2026 06:31:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLEjp-0000kU-BI; Fri, 08 May 2026 06:31:05 +0000
Received: by outflank-mailman (input) for mailman id 1303224;
 Fri, 08 May 2026 06:31:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLEjn-0000kO-NN
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 06:31:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLEjj-004CNO-T8
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 08:30:59 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fd831d-5cb7-0a2a0a5109dd-0a2a450ab96e-28
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 08:30:59 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fd8323-56b3-0a2a450a0019-d1558031b4ca-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 08:30:59 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-488af96f6b2so18594815e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 May 2026 23:30:59 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e68eaf073sm16860065e9.4.2026.05.07.23.30.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 May 2026 23:30:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778221859; x=1778826659; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=g1yVp0S+t7U+oa7bv+DoViHFftbRkyf1FYrRpiXFejk=;
        b=Bd/GSz4u7Bvsb8qplY30VKvEVik3F2FHi1pdYVKcWnqMF0m++6dLevZA4QcZwcbk2r
         FvPAG9RV3b1uVNw+/Gh+DXjBqow+SzrheKrwRLBDbzWqw4w7m5hGu9VvTkZN2O46tWNh
         5wMkh+JLnCB47NsTusWd1emBWYwMTWp+0mu4HfKFcrCGK/NReYFuJciwv5UFahhIJB5U
         oeGLhFsGSvQH+RB/Domky0SYFqnsON9FO0FSMlp+WQ6nkeUvOOTq+aRjwN36DOVf5rRu
         Hfm+FXxRn/F+LwCDzAba38224mZWkPbV8WyFfQkEIL250Yg0TU0FAeYXgMq0jgLnOtnc
         FtaQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778221859; x=1778826659;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=g1yVp0S+t7U+oa7bv+DoViHFftbRkyf1FYrRpiXFejk=;
        b=n7bGTkIsvOREZ30NcKaPKbe/11m8qVy3Fok7hBImZOxum6ghPuwGx3zugj8ABQCW25
         9he/XR86wB0v5k+sufJYbhSnFNykVMDqnU35w1VEBU3YWGN8S1ewByWuq37YKiGy30TD
         mX9/6oF+2FjO7E5PoOaVWTAzHFowSBWY9fzFWRTACyypetM2sUOD/s7rwp7/gqewxqRX
         u/2kI87pq+sD/bFUgBLnYPNeoeAQilivPo5hER27n42dxYHuVLbsReERc+OAfyaJYP0/
         hIWJpEkwQykeqVwxhUOGtD0T5StNjXckcW0Vfm5GnVnX10cwE/EEFpqcqhyxpYSGC7TA
         2sDQ==
X-Forwarded-Encrypted: i=1; AFNElJ/lKVlIyFV1BA9Q268mENSGuvBeWeKcG7EWbQWvWpMIB90kbqMFGUqc6+dAhy1s/pfWPKgeP3rp6JE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwHnNleTWPG+t4gC+ZgwpEt3KcXs4uHlyFVm4Ol0l9VKxu5wXao
	7W7zB2+A7hTCBiwf/FpgLUrmEyGGtt2nk8YaPnAWlPnE2HEGp3pJSj1bQJ7CkE6ZbQ==
X-Gm-Gg: AeBDievi2Y1Sx2u1TldYXGVCMnDCe49K5S3K7VQvWg98RbjraOHoYOxD4WpHlvS1rew
	24QweNMUWys0EZPpDYYOW9Pp1IX8ZCII2rTREMEfYsJzy3Xig0J7/JU8s48xpePUaxeNZnC5t02
	M7y/uH3qV6TqlhLit2//8fe4kGjbj5UG6fFD5ONYUtWu5LYGon1F7uPaONq+8UaQ/Hr3WFsG+M6
	+w5fScADuT4z56ymJ2CdJuYgEC75KUnOIzadim/qYn3MotocVcPtFutK7ECIjozTprlxz50nVxl
	O8+enhjULgcMalqjOq8xX3ryCh29iClgIlreuwJf/4WgNn+b2uy8wi9JmXOvpw0Mi37SCsVvcZE
	BecVM1d5W8gDIH+5U6LwpKVwr/8XdFB0fsiUez+9ts6zTzs07Ms4q5sW7Ouse2s/bxqszRtBSRb
	Ylin269eYGZ6iz4VIMgtRS1wB+hJOoiqXa1Xx5pXAoVzq69izV0uoguzBc3+bdcoQmjje6+ImxY
	fQfvGtIsnpzROo=
X-Received: by 2002:a05:600c:4f92:b0:486:ff92:63e5 with SMTP id 5b1f17b1804b1-48e51e09711mr171067685e9.6.1778221859133;
        Thu, 07 May 2026 23:30:59 -0700 (PDT)
Message-ID: <fc8cab0a-288d-438d-9cc1-2606034b0a2d@suse.com>
Date: Fri, 8 May 2026 08:30:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Drop xenpaging
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Tamas K Lengyel <tamas@tklengyel.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260507171933.1573983-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260507171933.1573983-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778221859-7216A8B7-32E0CAAD/10/73395122804
X-purgate-type: spam
X-purgate-size: 1102

On 07.05.2026 19:19, Andrew Cooper wrote:
> This capability is experimental, has seen no development since 2011, and these
> days only gets edited to fix the build.
> 
> While it can be compiled out (of Xen at least), it is a maintenance burden on
> surrounding code that we'd prefer to stop paying.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Jan Beulich <jbeulich@suse.com>
> CC: Julien Grall <julien@xen.org>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Juergen Gross <jgross@suse.com>
> CC: Tamas K Lengyel <tamas@tklengyel.com>
> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> Slightly RFC.  I'm suspect I might be asked to split this up a bit, but if so,
> suggestions on where to draw the lines please.

tools, common, x86, xsm in (perhaps) this order? That would then also pretty
much isolate who each one needs acks from.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 08 07:39:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 07:39:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303246.1576727 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLFnS-0000we-5T; Fri, 08 May 2026 07:38:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303246.1576727; Fri, 08 May 2026 07:38:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLFnS-0000wX-2l; Fri, 08 May 2026 07:38:54 +0000
Received: by outflank-mailman (input) for mailman id 1303246;
 Fri, 08 May 2026 07:38:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wLFnR-0000wR-Fu
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 07:38:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLFnQ-00FMhq-5G
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 09:38:52 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fd9302-bab6-0a2a0a5309dd-0a2a45089cda-28
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 09:38:52 +0200
Received: from [52.101.201.13]
 (helo=PH7PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fd930a-63b5-0a2a45080019-3465c90d30a8-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 09:38:51 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH7PR03MB6943.namprd03.prod.outlook.com (2603:10b6:510:15b::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Fri, 8 May
 2026 07:38:48 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.019; Fri, 8 May 2026
 07:38:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XfQh29dcG07ACpMrOzsTi4sEhtKhV/d5A7prnHtnty+AE9zgvuePMaSoaL1LQ8Ml0NOhUmBQS39aUZda7iVlb14AoGZ0gb3QFC38x44KFk7JTe0TrjGa2IN3zxkmEj6O3Mj9ECzVMeadW7sCMhlT51wTs0DxfY1zAmaMkIcr1rsdu+pXWgOcj52MjyPSo7WiZUgbTSMerYREC3KBOfoAeZAkA2E9m99wjSMCDw1DVTTCWfWwFskEYObVGmo5cecVrwtu2Il38tY4kaSEEp8fPEwqupjYjPPFC+SX2H1CMr93RvGR8XeQR1UAxQsKvwx0QrBVe9n2fl8yvLcZW00sZA==
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=n2YUBkeUntatOWRwNpc9LdA2RP+LvuBJZL0niLKJTkk=;
 b=DYJmyDc1jkNePIiEtPdsTHOBolaIOMxawgzThMa+YWlwlYV/cQzpvboRhl1kamsOWV8giQNZz0z1qi8HoQajhTtwWMCRH013/QJcX46fMBM2o4lOvu/bQI1bk6F93AMTCpL/xUUO3wyntWfzFKJ5wTzD/uamixTdEotr22TdPkvE5QseCWP9Q/LsmffAz47XfdgyLCQTljVNWlQHm9YDQrGeISje4BDh9MJKPK1vxJBGNeOFbZ9eC5bo59y/nZ8VZzn9GMzzsGDaH5TPySkCYYCHHP7HsXBIqwalzvhhQYHX1hd+cAts/pVs9CxD3SRFXtPYjjABurvc/UAXXQIMWA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=n2YUBkeUntatOWRwNpc9LdA2RP+LvuBJZL0niLKJTkk=;
 b=fxfOslhKBIgrRug4bnKcmT3EYqR8+ZQGA8owQ5taXWDpAQp2RADixwWGUhmPDPvS4DU6Zv/8/9WrZt7G7N2kBWcNPu/Dho3Lr4tHX0s5Ijd23jTOe/92TpJmfoY9LDPq+BdZkVAWfaQXLbsU74enmXZlG5YkeEBvgkGq3fmOiXI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 8 May 2026 09:38:44 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 9/9] x86/mwait-idle: Add C-states validation
Message-ID: <af2TBOapUCCChHjg@macbook.local>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
 <d13912c9-8820-44e7-8aad-d8ee9ea17980@suse.com>
 <aevBUh77IeMuXjw4@macbook.local>
 <57233a5d-3944-433c-a7c5-a1a491a2c1dd@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <57233a5d-3944-433c-a7c5-a1a491a2c1dd@suse.com>
X-ClientProxiedBy: MA3P292CA0060.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::19) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH7PR03MB6943:EE_
X-MS-Office365-Filtering-Correlation-Id: ce76e11e-1c02-4beb-ed73-08deacd4d73f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|56012099003|22082099003|18002099003|3023799003;
X-Microsoft-Antispam-Message-Info:
	c/YbpNj3vFvrPPlysJIa1tF/Y1PtAWcpVK0jGrBuS4vePrVJIjLKM2XrXCYK+vHT9Eb1O8A1RkURF1xCLYFrPJPhX4WavRFRY+h2SRPes3nqkQiOMA7jk76ZtLYZRr5J7Iz+4xz5yL+k+qSVrMjJq22Fz5gOP/SZASct+sZ8iEGmAvMunqE9VG4YB0X80sPV7nER+I1j/vK3DYCb/Lp13e0ia7sdZ2sBt8nBNVUIiFtu1xhd8dTbvSA3y/P/3z0++L0C/XV8RYbesaIzjvd+MS9RPbBvKzMYK84LwuaxguyR99AWZect6WZnCcOC7P0pKfABGZuS+YO1aBOtn/CoaE5TJv4l7V+3W42bN4frvh9lE2h1ofqJ/O2HKZKZp06Zf0xlzjT5weo6YP8SL9DnO2Iq84c1FzyORHTvRyqaEsQd8/zJPqk+AE64r9a/Gn9eFWYYznCxgsU675+ozqvaI4zkBzN5e8mbNkznXDDnVz5CPH5ptYMViAhvqPpN2k/sLTP5Diu+4bAqpfuxxlSzmXb1L3fWqwHoBuTZAvRkK5pMyoyH9aeCoY/d2XU5DqpdZUrxuf3KitZlbcHHUYYkX9j2KSsklwKKRxdhL5cZJYfmVoQdNbOqXWVMdjbc9aZSATDOboBzpBpEYENMlnUd9pKTMh9QVT6WQeoh3jNtzvnaeCR7ee36d3t8GVfvn65J
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(56012099003)(22082099003)(18002099003)(3023799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RzBSQTRmSkRHY2d0Y2xIbWx6TVYwSktWaVVSMXk4MnNmanVtejEvaHg3eXoy?=
 =?utf-8?B?NXBxM2l3M0hybGllK0lWWHFyc1BqNHVnVEEzV1IxY2U5dDAvbFgxNWdnMlFu?=
 =?utf-8?B?UDJQbXJac3ZERVlRMVVwOTF0UnlrcHU1M1Y5NC9YWnVsaHdYSzZBekZ6WFFw?=
 =?utf-8?B?Ym0xb2VGbXNaTFVXc1dnUVl5aVIxd2dvbWYza0FxajhGM1FySDQyaGc4djNI?=
 =?utf-8?B?NFUrRmN2UVZDWTh0aE1WWThSOVI0ZWF1U2ZtZ1ZKU3dsTHU1N1JWTHZ3WmtN?=
 =?utf-8?B?N1p5R1NZWE03Ynd6aW1jcmorUGx0eG01bE93UGhPQ0Vwd3JUQUl2aU9zdm9L?=
 =?utf-8?B?dE00cXhWSGRvWGQ5Y2UrbzVFbUliSXFVSHkvazhyUTBJaVF1K2hETVp3MHNJ?=
 =?utf-8?B?TDJFdktOZWR0K3BBNWUyU0E1KzhvMEZHaHlMSGtheG03dWYzTFA2MjdtcjVp?=
 =?utf-8?B?cFpDWHBDMGs3dVRPRWdJVXJwRTNaTG1pNkkwRlQ2NVFPeW1QWm56WGxOL3ds?=
 =?utf-8?B?S2Jjc1dtUnVmRWJvcVRscUh3a2RuaEtqaEJEWHQ0a3M2QXJ6YUVzWUJWczB4?=
 =?utf-8?B?WWdYOUp5RFZQOERSL1pPTEQ2bXVLejlLd3UxMmxPTlRvS3IwTlp6WDFkdU9G?=
 =?utf-8?B?SXhSWkJ0a0F6c1lWT3lWRUJ4Mzk2eDEvajYzY2UzZGFsMk1RU3BVUnJYRmN3?=
 =?utf-8?B?ZjhZaTZURUZrbWdXVGl2YU40b250UzQ2a1JkU2NFU0I1UncrNUswWTU1ZUdy?=
 =?utf-8?B?dzl1ancvQllXWUMrK1NkeDhZZkxTdlVoeWlwN3lqWERaV204eitvbW96cWlX?=
 =?utf-8?B?VytUR2JGVVFvSzA4Y1dnRWREUGFQWUVndDhsZ3BNdUU3ZGVETld0bitQZVZV?=
 =?utf-8?B?SHVXaHV2S0w5cmlreWYreVptN2JxeFhjYWpsU3NZWjQrTStJYU1oOXQxdTFW?=
 =?utf-8?B?RmFMdkpJSXZKR0dWZko2M3dkQ01KcW9veXpMQkEzNTREdndFZXdQcFUraC9J?=
 =?utf-8?B?OFBtNmdSVmV4SlI0WE1MK0VFUE9ZK1RBSmM4cEorUnFEWHY1dW9nWE9KUktG?=
 =?utf-8?B?SnFDOXA0bjNpZEkvSE94djNxeGZ3OW95YWFWVUUvUStVVzBuckxEWUFYRUxy?=
 =?utf-8?B?Vy9yYVNrRUlQTzdlY3k4b2NnQ2RiWEs1VEtRVG9jcGdUS1o2d3ZHeFZoeTBo?=
 =?utf-8?B?aGU0THJoN0VyRjIza1FDbENlODdneXpyYkZLbjcyVU1wYTVSS04yUjZaT25v?=
 =?utf-8?B?eENJZUtUUG5DbWRpSFEwQjBjcG5WZVFjZGRjUnkvWlptRmdXZFpaMEwrTUh0?=
 =?utf-8?B?ZWlvU0NwcUlDWWhhRVVlZ1p2cXlWam9sSXo1KytHRjdsUFdXU3NyS0FXUTJu?=
 =?utf-8?B?dGdnRDVtLzQ3TER2RERRVUxtK1FqUC9UM3JPNzVRd1k5VUY4cG5KcU1yVXcz?=
 =?utf-8?B?dXEwTFloYWJLci9jdWNrbVA5akpuK3QxY2FLR2xQemxFYnpNNi9vNWcrR3dn?=
 =?utf-8?B?RXFlbCtacHBxYmhuc05uVUxPcG5ReEg5ZzFqa1JCWXBUUG9TTlZSZDdqNlNZ?=
 =?utf-8?B?WDlUanMxL3MyUzNnam9rTDlkSDVOdkFrckNiMzRjS0JpdEJiUit6RU4wcmtS?=
 =?utf-8?B?MXI0S2ZJUGREZzdSUHpwY05NUjNuWms5NDIyaG9vSVNoVXlWeUpMckVlVE9Z?=
 =?utf-8?B?RU8wSnlaaWxjWGk0WXFZdFJmL3FWdUFVT3ZZcHFnQXFSTnpJL3hwRkQ2SDFS?=
 =?utf-8?B?cGZyY3FLVm9ra3dxbmxGQTNORHg4dFVSd0k4U1B3bVRSRXk2dEo0WWlvVHBi?=
 =?utf-8?B?cWtTV2RVR1lhUGI2SnVMK1lUMGhIRHh2OFFtUWVTczlxK096V1RUV1d6SWVw?=
 =?utf-8?B?Ym1sSTJQWnlIcElzRG9xb1lsZFg1VHI5MGpJb0FXdWthc2R0UmlabmRPelIr?=
 =?utf-8?B?dmNzTDBsVnNhcmFKb1QwbHdYU1NyU085aVM1RzZaVUJwNGsrQnZJWC81akMy?=
 =?utf-8?B?Mjc1dkVVUjBNeE5qZzIvMVpwVGpaRUNCT29RYTlpUjloYUhjM2RjU3lMZk1V?=
 =?utf-8?B?VE5NaEJyQTRpbUJMejdjR3pXVzBVdU9jZjcrT0RjRTRPdnZZZmNReW9uNk9F?=
 =?utf-8?B?c0Y1OW0xUkxkdzlCQ3JwNmZjQzRqWDd5M1J3WG9oUmxhN3E2SEtnOWN1UFNm?=
 =?utf-8?B?dFRlV0c2SnNTSFFOS2ZsY0FqNTZpZjhhNFBNOCtDekhIaFNKRXJGbEluU0tU?=
 =?utf-8?B?M1dlWHZCckkzQ2RsMEVDeVNheWxzYmE2Q2lyUzVsV2kwU0w3Rk92clNXa2pV?=
 =?utf-8?B?N2lGSFVmblVXOCtXVlY3YmhCRW5JMDNoQkNGMVl6cVRseGFTWSthQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ce76e11e-1c02-4beb-ed73-08deacd4d73f
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:38:48.0618
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 4Tns+mrZjzunjvIdPjh0omLaWtjfzRmF/7RZy3SRw7/aHAGwpzhUiQWgtxM0TT+Q8Fs5oJAEf0muJUwmdviWVg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB6943
X-purgate-ID: tlsNG-c1860d/1778225932-BED73DB1-5A310087/0/0
X-purgate-type: clean
X-purgate-size: 2413

On Mon, May 04, 2026 at 11:34:40AM +0200, Jan Beulich wrote:
> On 24.04.2026 21:15, Roger Pau Monné wrote:
> > On Thu, Mar 12, 2026 at 05:58:21PM +0100, Jan Beulich wrote:
> >> @@ -1589,6 +1594,41 @@ static char *__init get_cmdline_field(ch
> >>  }
> >>  
> >>  /**
> >> + * validate_cmdline_cstate - Validate a C-state from cmdline.
> >> + * @state: The C-state to validate.
> >> + * @prev_state: The previous C-state in the table or NULL.
> >> + *
> >> + * Return: 0 if the C-state is valid or -EINVAL otherwise.
> > 
> > Hm, I know we picked this up from upstream, but this function would
> > better return a boolean, rather than 0 or -EINVAL.
> 
> I agree, but I didn't want to deviate from their code purely for cosmetic
> reasons.
> 
> >> +static int __init validate_cmdline_cstate(struct cpuidle_state *state,
> >> +					  struct cpuidle_state *prev_state)
> >> +{
> >> +	if (state->exit_latency == 0)
> >> +		/* Exit latency 0 can only be used for the POLL state */
> >> +		return -EINVAL;
> >> +
> >> +	if (state->exit_latency > MAX_CMDLINE_LATENCY_US)
> >> +		return -EINVAL;
> >> +
> >> +	if (state->target_residency > MAX_CMDLINE_RESIDENCY_US)
> >> +		return -EINVAL;
> >> +
> >> +	if (state->target_residency < state->exit_latency)
> >> +		return -EINVAL;
> >> +
> >> +	if (!prev_state)
> >> +		return 0;
> >> +
> >> +	if (state->exit_latency <= prev_state->exit_latency)
> >> +		return -EINVAL;
> >> +
> >> +	if (state->target_residency <= prev_state->target_residency)
> >> +		return -EINVAL;
> > 
> > I'm not an expert on C-states, but isn't this checking against the
> > previous value kind of defeating part of the purpose of the command
> > line?
> 
> I don't know. The question would need raising to the author.
> 
> > Also, it might help to also write down those limits in the command
> > line documentation.
> 
> What do you mean there? Some of the values are universal, but some
> checks are against model-specific values. I don't think you mean to
> enumerate them all?

Maybe it's indeed not very useful.  What I referring to was something
along the lines of: "the command line provided residency and latency
values must be smaller than the default ones".  As noted above it
seems weird to me than higher than current values cannot be set,
albeit I have no idea what's the expected usage of this interface.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri May 08 08:05:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 08:05:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303272.1576736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLGD2-0005ei-EX; Fri, 08 May 2026 08:05:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303272.1576736; Fri, 08 May 2026 08:05:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLGD2-0005eb-Bp; Fri, 08 May 2026 08:05:20 +0000
Received: by outflank-mailman (input) for mailman id 1303272;
 Fri, 08 May 2026 08:05:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wLGD1-0005eV-1p
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 08:05:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLGCy-00DZG1-T9
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 10:05:18 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69fd993d-bab6-0a2a0a5309dd-0a2a4509afb0-4
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 10:05:18 +0200
Received: from [195.135.223.131] (helo=smtp-out2.suse.de)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69fd993e-2497-0a2a45090019-c387df83b228-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 10:05:18 +0200
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id A41BF5C480;
 Fri,  8 May 2026 08:05:17 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 32B27593A7;
 Fri,  8 May 2026 08:05:17 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id oHwnCz2Z/WlsPwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 08 May 2026 08:05:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1778227517; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=zin7zp/9oBAHtr4qfaN5VFN9hhxtKHeI7hC3NPeLalg=;
	b=cQUcQv7a3lNGXcjekKFXsChUBFrlQ7V8GcZILNGJXroQuGu8Uc9zLmO3xF/IYkxLmIGOsU
	3Ua2wlHDk3UA0TMOxVJADwq+mwMIAiHXGu/pTbcvENmhIXRNMTJJzedX3hfiz6MA62M6K4
	h3wKKxjV/nSnHAbaPrSRFH6tShevb/w=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=cQUcQv7a
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1778227517; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=zin7zp/9oBAHtr4qfaN5VFN9hhxtKHeI7hC3NPeLalg=;
	b=cQUcQv7a3lNGXcjekKFXsChUBFrlQ7V8GcZILNGJXroQuGu8Uc9zLmO3xF/IYkxLmIGOsU
	3Ua2wlHDk3UA0TMOxVJADwq+mwMIAiHXGu/pTbcvENmhIXRNMTJJzedX3hfiz6MA62M6K4
	h3wKKxjV/nSnHAbaPrSRFH6tShevb/w=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	linux-mm@kvack.org
Cc: kevin.brodsky@arm.com,
	mmarek@invisiblethingslab.com,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	David Hildenbrand <david@kernel.org>,
	Lorenzo Stoakes <ljs@kernel.org>,
	"Liam R. Howlett" <liam@infradead.org>,
	Vlastimil Babka <vbabka@kernel.org>,
	Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH] x86/xen: Fix lazy mmu handling across context switch
Date: Fri,  8 May 2026 10:05:14 +0200
Message-ID: <20260508080514.454607-1-jgross@suse.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Rspamd-Action: no action
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[21];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:email,suse.com:mid,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo];
	RCVD_TLS_ALL(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	TO_DN_SOME(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Queue-Id: A41BF5C480
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-purgate-ID: tlsNG-bad1c0/1778227518-37175A53-532E17D9/0/0
X-purgate-type: clean
X-purgate-size: 3371

The recent rework of mmu lazy mode has resulted in problems when
running as a Xen PV guest. Enabling lazy mmu mode for the new context
during context switch is done from the arch_end_context_switch() hook,
but when calling this hook current hasn't been changed yet, so the
lazy mmu mode state of the wrong task is modified.

Additionally it is much cleaner to use lazy_mmu_mode_pause() and
lazy_mmu_mode_resume() in the Xen context switch hooks, as it avoids
conditionals in those hooks.

In order not having to add another hook to be called after switching
current, modify lazy_mmu_mode_resume() to use a new sub-function which
takes a task pointer as parameter. This new sub-function can then be
used in the xen_end_context_switch() hook.

Fixes: 291b3abed657 ("x86/xen: use lazy_mmu_state when context-switching")
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/enlighten_pv.c |  7 ++-----
 include/linux/pgtable.h     | 33 ++++++++++++++++++++++++---------
 2 files changed, 26 insertions(+), 14 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index ed2d7a3756ce..67bb6bf6d240 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -424,9 +424,7 @@ static void xen_start_context_switch(struct task_struct *prev)
 {
 	BUG_ON(preemptible());
 
-	if (this_cpu_read(xen_lazy_mode) == XEN_LAZY_MMU) {
-		arch_leave_lazy_mmu_mode();
-	}
+	lazy_mmu_mode_pause();
 	enter_lazy(XEN_LAZY_CPU);
 }
 
@@ -436,8 +434,7 @@ static void xen_end_context_switch(struct task_struct *next)
 
 	xen_mc_flush();
 	leave_lazy(XEN_LAZY_CPU);
-	if (__task_lazy_mmu_mode_active(next))
-		arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_resume_task(next);
 }
 
 static unsigned long xen_store_tr(void)
diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index cdd68ed3ae1a..83a099bf2038 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -326,6 +326,28 @@ static inline void lazy_mmu_mode_pause(void)
 		arch_leave_lazy_mmu_mode();
 }
 
+/**
+ * lazy_mmu_mode_resume_task() - Resume the lazy MMU mode for a specific task.
+ *
+ * Like lazy_mmu_mode_resume() below, but with a task specified.
+ * Must be called only by lazy_mmu_mode_resume() or during context switch.
+ * Must never be called in interrupt context.
+ *
+ * Must match a call to lazy_mmu_mode_pause().
+ *
+ * Has no effect if called:
+ * - While paused (inside another pause()/resume() pair)
+ */
+static inline void lazy_mmu_mode_resume_task(struct task_struct *task)
+{
+	struct lazy_mmu_state *state = &task->lazy_mmu_state;
+
+	VM_WARN_ON_ONCE(state->pause_count == 0);
+
+	if (--state->pause_count == 0 && state->enable_count > 0)
+		arch_enter_lazy_mmu_mode();
+}
+
 /**
  * lazy_mmu_mode_resume() - Resume the lazy MMU mode.
  *
@@ -341,15 +363,8 @@ static inline void lazy_mmu_mode_pause(void)
  */
 static inline void lazy_mmu_mode_resume(void)
 {
-	struct lazy_mmu_state *state = &current->lazy_mmu_state;
-
-	if (in_interrupt())
-		return;
-
-	VM_WARN_ON_ONCE(state->pause_count == 0);
-
-	if (--state->pause_count == 0 && state->enable_count > 0)
-		arch_enter_lazy_mmu_mode();
+	if (!in_interrupt())
+		lazy_mmu_mode_resume_task(current);
 }
 #else
 static inline void lazy_mmu_mode_enable(void) {}
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 08:34:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 08:34:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303288.1576745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLGej-0001bV-IX; Fri, 08 May 2026 08:33:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303288.1576745; Fri, 08 May 2026 08:33:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLGej-0001bO-Fq; Fri, 08 May 2026 08:33:57 +0000
Received: by outflank-mailman (input) for mailman id 1303288;
 Fri, 08 May 2026 08:33:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wLGeh-0001bI-Ri
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 08:33:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLGeh-00FZCC-3Y
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 10:33:55 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69fd9fe4-bab6-0a2a0a5309dd-0a2a4508e796-40
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 10:33:54 +0200
Received: from [209.85.208.44] (helo=mail-ed1-f44.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69fd9ff2-63b5-0a2a45080019-d155d02cb05c-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 10:33:54 +0200
Received: by mail-ed1-f44.google.com with SMTP id
 4fb4d7f45d1cf-67389cf78b0so3174707a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 01:33:54 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac484dd7bsm47705566b.60.2026.05.08.01.33.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 May 2026 01:33:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778229234; x=1778834034; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=i8pa6nW6L+PoRyM5QGx30dORKj2RFf8dclDZUh9rUiM=;
        b=dByTYzSuLEK/Y+7o2AFdAcSNrlbDnhQxCQNbvwYNbRvrpxtevUrhz2WeWVbSFbZ/3h
         +AQBWZBbsVghl+5Gi8ENJEhjUXWWFHWKiQqZrxKHZsC9Pxuo8/Tcr5MBDJ/OXPuzTEFd
         ffR2QQiN5tIi5lOT9pwy24GpKZ5A8ZsRKUtn1gAlq7oz0oyJjeO8um3TlcUqTBl0QnWf
         PtOH6dyBL2wtIz6FIwD9rc2KBCROscqzrsudkGUXXX1SwiTHY59z4sHa6hbZjG+mdp4M
         73YsgNFLfJm7oYzCGdNt9qyaiOehvi9tpCwd2KRRyB8kzk1rinLH0h9TADDZjQ3uIqan
         Bp3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778229234; x=1778834034;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=i8pa6nW6L+PoRyM5QGx30dORKj2RFf8dclDZUh9rUiM=;
        b=oLSLsPT3zS/tBfPu2EPg2NaOvulo0uVQD/dKjiv7NZ2vhdenzC1CvIvBQgmyXdGqr0
         WiXyzwgdmEWTPDX5lIkWVI5s3RB1NwMSiyrpQ3btUZFr167x4pOmaXqF7jevE4auETfs
         fNImMHGWdVoUh1pbtpZxJU9ymlLxDp3rCCH0v7CTSXRRxfBFqp5myQbWUs99u6VzSod3
         Iwg72E1vVr1099yS0QzA1yQjauCD1EUBTP8gI5tFPF/BYDh08GepRHictlTCorfTLXY1
         7/cwA+1HK2RvgG3taUl0bpqBqaU0a8P4Ek9WjpjMB/w7B2ZvzFc3mpADyiF6p1siQxxj
         ON9A==
X-Forwarded-Encrypted: i=1; AFNElJ+aAX8kHegxCJP6SGk0cDxqSEi3g2D7S9zHCtiQJcWqOkS6c9NwVuwarp9Z+c/0v0M1JcwX6fRux1k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyyj0p/LWgi/axKitxf/CS1fFG7JRFB7Q2uhi/Gu5U3FiVy9B7W
	k55pyoJPcAJiduTa5wxDDC3VwM2XBcBKVXzfAlyROP0QoCVyA30neImC5LwksfMqQNk=
X-Gm-Gg: AeBDietLJhkBKpCD2d8/LebJCnLPD+LmpxrSBKU2dTqZM41ZWsYUTQ/5S4zh1AvM43m
	9vfguC32nRmy1yOhAjWQc8pD4GTdGNtS6HiiIRk3emhdMAjVBNzJD9Cg9fDx4OvLWNyMH96Atxk
	KF3/iaxOiu8sWpvtF9TqNLAMkpq6UlCnElIuYEvZFhYGGxpQBZPQ1bfjlaHV3HORVwNhWsSQwIU
	V306wN2Kglwr21/p2GzvTNcieZy2idY4Y9M7xD2x1bLvA6nmd0na7cMCFAl6wpvZCZuy5gaOxV4
	c3wUCvMkPq+5M7W4ZmuGbPh19TiFvMKcpLPI+cjb1z7lfnPIw/PZP6O1XYz6m9o92OhpdN0zjiM
	JKFxk9jfIp91Nl6ZbzKfg+U2pQf96qY9lGnOkZE0IB5AGLNF3iJOG6JrkhJPzxDr6Kcqz7j9lgn
	e5mRcS5hg7FuYHtrLAHgSre3aPB5aHlkke9kchMaqLZ1vl0iIQJe3Juf1YYkUy4SEFJed6o/PpI
	Z4ukE3FOFdxUjPtNlrqsf7YWDrRItG0PWU+fkAaAk+WoSioJYEEAw==
X-Received: by 2002:a17:906:478e:b0:bc9:e1b1:8edf with SMTP id a640c23a62f3a-bcaaa54ce58mr100836066b.12.1778229234147;
        Fri, 08 May 2026 01:33:54 -0700 (PDT)
Message-ID: <5cb54bd1-5981-4a46-9083-f7b527ca342f@suse.com>
Date: Fri, 8 May 2026 10:33:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Fix lazy mmu handling across context switch
To: linux-kernel@vger.kernel.org, x86@kernel.org, linux-mm@kvack.org
Cc: kevin.brodsky@arm.com, mmarek@invisiblethingslab.com,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, Andrew Morton <akpm@linux-foundation.org>,
 David Hildenbrand <david@kernel.org>, Lorenzo Stoakes <ljs@kernel.org>,
 "Liam R. Howlett" <liam@infradead.org>, Vlastimil Babka <vbabka@kernel.org>,
 Mike Rapoport <rppt@kernel.org>, Suren Baghdasaryan <surenb@google.com>,
 Michal Hocko <mhocko@suse.com>, xen-devel@lists.xenproject.org
References: <20260508080514.454607-1-jgross@suse.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20260508080514.454607-1-jgross@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------3Jq2hVC2vaJmzLdycTi38fj0"
X-purgate-ID: tlsNG-c1860d/1778229234-B6B74DB1-1846446D/0/0
X-purgate-type: clean
X-purgate-size: 11414

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------3Jq2hVC2vaJmzLdycTi38fj0
Content-Type: multipart/mixed; boundary="------------Vt7oWIJw8gIt0eyJaT1vcDAe";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: linux-kernel@vger.kernel.org, x86@kernel.org, linux-mm@kvack.org
Cc: kevin.brodsky@arm.com, mmarek@invisiblethingslab.com,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, Andrew Morton <akpm@linux-foundation.org>,
 David Hildenbrand <david@kernel.org>, Lorenzo Stoakes <ljs@kernel.org>,
 "Liam R. Howlett" <liam@infradead.org>, Vlastimil Babka <vbabka@kernel.org>,
 Mike Rapoport <rppt@kernel.org>, Suren Baghdasaryan <surenb@google.com>,
 Michal Hocko <mhocko@suse.com>, xen-devel@lists.xenproject.org
Message-ID: <5cb54bd1-5981-4a46-9083-f7b527ca342f@suse.com>
Subject: Re: [PATCH] x86/xen: Fix lazy mmu handling across context switch
References: <20260508080514.454607-1-jgross@suse.com>
In-Reply-To: <20260508080514.454607-1-jgross@suse.com>

--------------Vt7oWIJw8gIt0eyJaT1vcDAe
Content-Type: multipart/mixed; boundary="------------oDEGK9VJWMWYbdXgkX7jaAvL"

--------------oDEGK9VJWMWYbdXgkX7jaAvL
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

UGxlYXNlIGRpc3JlZ2FyZCB0aGlzIHBhdGNoLiBJdCBpc24ndCBmaXhpbmcgdGhlIHJlYWwg
cHJvYmxlbS4NCg0KT24gMDguMDUuMjYgMTA6MDUsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+
IFRoZSByZWNlbnQgcmV3b3JrIG9mIG1tdSBsYXp5IG1vZGUgaGFzIHJlc3VsdGVkIGluIHBy
b2JsZW1zIHdoZW4NCj4gcnVubmluZyBhcyBhIFhlbiBQViBndWVzdC4gRW5hYmxpbmcgbGF6
eSBtbXUgbW9kZSBmb3IgdGhlIG5ldyBjb250ZXh0DQo+IGR1cmluZyBjb250ZXh0IHN3aXRj
aCBpcyBkb25lIGZyb20gdGhlIGFyY2hfZW5kX2NvbnRleHRfc3dpdGNoKCkgaG9vaywNCj4g
YnV0IHdoZW4gY2FsbGluZyB0aGlzIGhvb2sgY3VycmVudCBoYXNuJ3QgYmVlbiBjaGFuZ2Vk
IHlldCwgc28gdGhlDQo+IGxhenkgbW11IG1vZGUgc3RhdGUgb2YgdGhlIHdyb25nIHRhc2sg
aXMgbW9kaWZpZWQuDQo+IA0KPiBBZGRpdGlvbmFsbHkgaXQgaXMgbXVjaCBjbGVhbmVyIHRv
IHVzZSBsYXp5X21tdV9tb2RlX3BhdXNlKCkgYW5kDQo+IGxhenlfbW11X21vZGVfcmVzdW1l
KCkgaW4gdGhlIFhlbiBjb250ZXh0IHN3aXRjaCBob29rcywgYXMgaXQgYXZvaWRzDQo+IGNv
bmRpdGlvbmFscyBpbiB0aG9zZSBob29rcy4NCj4gDQo+IEluIG9yZGVyIG5vdCBoYXZpbmcg
dG8gYWRkIGFub3RoZXIgaG9vayB0byBiZSBjYWxsZWQgYWZ0ZXIgc3dpdGNoaW5nDQo+IGN1
cnJlbnQsIG1vZGlmeSBsYXp5X21tdV9tb2RlX3Jlc3VtZSgpIHRvIHVzZSBhIG5ldyBzdWIt
ZnVuY3Rpb24gd2hpY2gNCj4gdGFrZXMgYSB0YXNrIHBvaW50ZXIgYXMgcGFyYW1ldGVyLiBU
aGlzIG5ldyBzdWItZnVuY3Rpb24gY2FuIHRoZW4gYmUNCj4gdXNlZCBpbiB0aGUgeGVuX2Vu
ZF9jb250ZXh0X3N3aXRjaCgpIGhvb2suDQo+IA0KPiBGaXhlczogMjkxYjNhYmVkNjU3ICgi
eDg2L3hlbjogdXNlIGxhenlfbW11X3N0YXRlIHdoZW4gY29udGV4dC1zd2l0Y2hpbmciKQ0K
PiBTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQo+IC0t
LQ0KPiAgIGFyY2gveDg2L3hlbi9lbmxpZ2h0ZW5fcHYuYyB8ICA3ICsrLS0tLS0NCj4gICBp
bmNsdWRlL2xpbnV4L3BndGFibGUuaCAgICAgfCAzMyArKysrKysrKysrKysrKysrKysrKysr
KystLS0tLS0tLS0NCj4gICAyIGZpbGVzIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDE0
IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9lbmxpZ2h0
ZW5fcHYuYyBiL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW5fcHYuYw0KPiBpbmRleCBlZDJkN2Ez
NzU2Y2UuLjY3YmI2YmY2ZDI0MCAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYveGVuL2VubGln
aHRlbl9wdi5jDQo+ICsrKyBiL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW5fcHYuYw0KPiBAQCAt
NDI0LDkgKzQyNCw3IEBAIHN0YXRpYyB2b2lkIHhlbl9zdGFydF9jb250ZXh0X3N3aXRjaChz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnByZXYpDQo+ICAgew0KPiAgIAlCVUdfT04ocHJlZW1wdGli
bGUoKSk7DQo+ICAgDQo+IC0JaWYgKHRoaXNfY3B1X3JlYWQoeGVuX2xhenlfbW9kZSkgPT0g
WEVOX0xBWllfTU1VKSB7DQo+IC0JCWFyY2hfbGVhdmVfbGF6eV9tbXVfbW9kZSgpOw0KPiAt
CX0NCj4gKwlsYXp5X21tdV9tb2RlX3BhdXNlKCk7DQo+ICAgCWVudGVyX2xhenkoWEVOX0xB
WllfQ1BVKTsNCj4gICB9DQo+ICAgDQo+IEBAIC00MzYsOCArNDM0LDcgQEAgc3RhdGljIHZv
aWQgeGVuX2VuZF9jb250ZXh0X3N3aXRjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKm5leHQpDQo+
ICAgDQo+ICAgCXhlbl9tY19mbHVzaCgpOw0KPiAgIAlsZWF2ZV9sYXp5KFhFTl9MQVpZX0NQ
VSk7DQo+IC0JaWYgKF9fdGFza19sYXp5X21tdV9tb2RlX2FjdGl2ZShuZXh0KSkNCj4gLQkJ
YXJjaF9lbnRlcl9sYXp5X21tdV9tb2RlKCk7DQo+ICsJbGF6eV9tbXVfbW9kZV9yZXN1bWVf
dGFzayhuZXh0KTsNCj4gICB9DQo+ICAgDQo+ICAgc3RhdGljIHVuc2lnbmVkIGxvbmcgeGVu
X3N0b3JlX3RyKHZvaWQpDQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BndGFibGUu
aCBiL2luY2x1ZGUvbGludXgvcGd0YWJsZS5oDQo+IGluZGV4IGNkZDY4ZWQzYWUxYS4uODNh
MDk5YmYyMDM4IDEwMDY0NA0KPiAtLS0gYS9pbmNsdWRlL2xpbnV4L3BndGFibGUuaA0KPiAr
KysgYi9pbmNsdWRlL2xpbnV4L3BndGFibGUuaA0KPiBAQCAtMzI2LDYgKzMyNiwyOCBAQCBz
dGF0aWMgaW5saW5lIHZvaWQgbGF6eV9tbXVfbW9kZV9wYXVzZSh2b2lkKQ0KPiAgIAkJYXJj
aF9sZWF2ZV9sYXp5X21tdV9tb2RlKCk7DQo+ICAgfQ0KPiAgIA0KPiArLyoqDQo+ICsgKiBs
YXp5X21tdV9tb2RlX3Jlc3VtZV90YXNrKCkgLSBSZXN1bWUgdGhlIGxhenkgTU1VIG1vZGUg
Zm9yIGEgc3BlY2lmaWMgdGFzay4NCj4gKyAqDQo+ICsgKiBMaWtlIGxhenlfbW11X21vZGVf
cmVzdW1lKCkgYmVsb3csIGJ1dCB3aXRoIGEgdGFzayBzcGVjaWZpZWQuDQo+ICsgKiBNdXN0
IGJlIGNhbGxlZCBvbmx5IGJ5IGxhenlfbW11X21vZGVfcmVzdW1lKCkgb3IgZHVyaW5nIGNv
bnRleHQgc3dpdGNoLg0KPiArICogTXVzdCBuZXZlciBiZSBjYWxsZWQgaW4gaW50ZXJydXB0
IGNvbnRleHQuDQo+ICsgKg0KPiArICogTXVzdCBtYXRjaCBhIGNhbGwgdG8gbGF6eV9tbXVf
bW9kZV9wYXVzZSgpLg0KPiArICoNCj4gKyAqIEhhcyBubyBlZmZlY3QgaWYgY2FsbGVkOg0K
PiArICogLSBXaGlsZSBwYXVzZWQgKGluc2lkZSBhbm90aGVyIHBhdXNlKCkvcmVzdW1lKCkg
cGFpcikNCj4gKyAqLw0KPiArc3RhdGljIGlubGluZSB2b2lkIGxhenlfbW11X21vZGVfcmVz
dW1lX3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQ0KPiArew0KPiArCXN0cnVjdCBs
YXp5X21tdV9zdGF0ZSAqc3RhdGUgPSAmdGFzay0+bGF6eV9tbXVfc3RhdGU7DQo+ICsNCj4g
KwlWTV9XQVJOX09OX09OQ0Uoc3RhdGUtPnBhdXNlX2NvdW50ID09IDApOw0KPiArDQo+ICsJ
aWYgKC0tc3RhdGUtPnBhdXNlX2NvdW50ID09IDAgJiYgc3RhdGUtPmVuYWJsZV9jb3VudCA+
IDApDQo+ICsJCWFyY2hfZW50ZXJfbGF6eV9tbXVfbW9kZSgpOw0KPiArfQ0KPiArDQo+ICAg
LyoqDQo+ICAgICogbGF6eV9tbXVfbW9kZV9yZXN1bWUoKSAtIFJlc3VtZSB0aGUgbGF6eSBN
TVUgbW9kZS4NCj4gICAgKg0KPiBAQCAtMzQxLDE1ICszNjMsOCBAQCBzdGF0aWMgaW5saW5l
IHZvaWQgbGF6eV9tbXVfbW9kZV9wYXVzZSh2b2lkKQ0KPiAgICAqLw0KPiAgIHN0YXRpYyBp
bmxpbmUgdm9pZCBsYXp5X21tdV9tb2RlX3Jlc3VtZSh2b2lkKQ0KPiAgIHsNCj4gLQlzdHJ1
Y3QgbGF6eV9tbXVfc3RhdGUgKnN0YXRlID0gJmN1cnJlbnQtPmxhenlfbW11X3N0YXRlOw0K
PiAtDQo+IC0JaWYgKGluX2ludGVycnVwdCgpKQ0KPiAtCQlyZXR1cm47DQo+IC0NCj4gLQlW
TV9XQVJOX09OX09OQ0Uoc3RhdGUtPnBhdXNlX2NvdW50ID09IDApOw0KPiAtDQo+IC0JaWYg
KC0tc3RhdGUtPnBhdXNlX2NvdW50ID09IDAgJiYgc3RhdGUtPmVuYWJsZV9jb3VudCA+IDAp
DQo+IC0JCWFyY2hfZW50ZXJfbGF6eV9tbXVfbW9kZSgpOw0KPiArCWlmICghaW5faW50ZXJy
dXB0KCkpDQo+ICsJCWxhenlfbW11X21vZGVfcmVzdW1lX3Rhc2soY3VycmVudCk7DQo+ICAg
fQ0KPiAgICNlbHNlDQo+ICAgc3RhdGljIGlubGluZSB2b2lkIGxhenlfbW11X21vZGVfZW5h
YmxlKHZvaWQpIHt9DQoNCg==
--------------oDEGK9VJWMWYbdXgkX7jaAvL
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------oDEGK9VJWMWYbdXgkX7jaAvL--

--------------Vt7oWIJw8gIt0eyJaT1vcDAe--

--------------3Jq2hVC2vaJmzLdycTi38fj0
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmn9n/EFAwAAAAAACgkQsN6d1ii/Ey/x
6gf+J/AVbxjJD4ti6UuIJFneskf3CRILQ7wRPiAmpCYPrfNgX1dIMcFi+mCI5dGoqjvb5KsqVCe5
F1gpJ5cPOudh5Ky0nAlR+Hv0e9nRzDs6nZdGh/mDQRRU8AN10C+du3mUAwldWGa3jaSbkegh8Ywp
2KKF/PN6Uy+zPKM1X9cPH2pXYoGFAkKxxUGPtJQtUumnACJtMhYTgEMHj3ysMO7PZicHMNqrFlb3
odeXUh7Uy80Z/rGBpuE/b5jsKYefVvpnGDxphAoJX6C/xTGSIe0eoi3XUThtIuuSkauRGLB4zCA1
02WVdKpLS27gtabxdsUth7kNBliUDHHTtfm9ptRaeg==
=Xx43
-----END PGP SIGNATURE-----

--------------3Jq2hVC2vaJmzLdycTi38fj0--


From xen-devel-bounces@lists.xenproject.org Fri May 08 08:37:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 08:37:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303296.1576754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLGhy-000292-0e; Fri, 08 May 2026 08:37:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303296.1576754; Fri, 08 May 2026 08:37:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLGhx-00028v-U0; Fri, 08 May 2026 08:37:17 +0000
Received: by outflank-mailman (input) for mailman id 1303296;
 Fri, 08 May 2026 08:37:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wLGhw-000288-HW
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 08:37:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLGhv-00Fa4Y-Jk
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 10:37:15 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fda0b8-e002-0a2a0a5209dd-0a2a4507db7a-22
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 10:37:15 +0200
Received: from [209.85.167.50] (helo=mail-lf1-f50.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fda0bb-229c-0a2a45070019-d155a732f177-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 10:37:15 +0200
Received: by mail-lf1-f50.google.com with SMTP id
 2adb3069b0e04-5a858881ad2so1783885e87.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 01:37:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778229435; cv=none;
        d=google.com; s=arc-20240605;
        b=XEufQMKJj34/59AFkU1u6f7520oyhSl4DYJb94SS5Zp7G/0cWggtzNRuSdRrQdmB44
         BZDfkS1yd0+2ruvTDKnWF+57tJuTHeyASY4Vow3pLAEe68rc0glySwz77tl71CSkTS8W
         0d00IC5nu3ipM5vuqUkGo3QN+dsAMUSDwM3+KD8DendRGYRiI2ahjMz3+9Fc59DWUasa
         LOB+gIXBddDsOoXyOhANdttsIn36yfYXcxQIAi+5qjGDfiTvz6HGfpq5Fmz6ESaJjgbC
         2hI6C2QdvQqRqRVVJT5kxIy9zh/tCA11V7Ja01HX6SwUqe62IEa/QXEvQuyxwd+cCqqd
         oQiQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=wpuQRbOQwrvqrL5TV1TLO/gtVPLeB51qcMTr2o4owZ8=;
        fh=+B/FOpuBiPJXqAXn9GQiahGpdb0p7rrV8Rb8Q45Y2iA=;
        b=Kx9dwFOmbQDSYUmbmyeIcBh4anQDYQtGEDDMHZ3OVLmVXfZfTkJy0DEQ+HRsP4CUSU
         BSoKa4Z0xFhlGt7rblpfFRA+7MW/k6s4Nyj2miGggNypepFA1tNr7zsV4mLMJSPCtZeM
         7HCvVCuZZwNrptj9YFtD3GzLVrl0ElfhbfqcRDmnmWXdcCtuN1A/A4jot62MsEciRFpw
         WpciZURj537Jaf5r2pJ4LBPgG2nQ4revfoMoyWSl4MzLY42F2woNeIR/0OzbmB8fNTHb
         55pJTFwTXWDZN6io5RrWimZKHxUzXrWNk6LT9r+Q2kPezF1Yin1qztD2DVzFOHP9b+td
         x51w==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778229435; x=1778834235; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wpuQRbOQwrvqrL5TV1TLO/gtVPLeB51qcMTr2o4owZ8=;
        b=TYawcWIySkAfrE0YkSiA1Sz65PTfliPPw2mf2agR3C7FOps51ypXqnkA5iBsjUrC33
         3w2L66OjE9mOKzCBolLkRc1ok0sh8aYT/G5Sv7gSwuG4ezFS3NbnuMKcWg/0I4IAvM9F
         KaC+u/5Kw2FYj8UxWdF/8LBL6HjDyvdT3yynH+nkHVoBrHEA/EZ3wzZSAjtDuGdPVbuQ
         epQZvxh9FGAsp4KsyOC1OR5PDaabzncKjkbrqOISVeQ3W/3H26FJ8pkNRvWj7eT+yMUL
         UEKnQTvYPbKVlKJgv/dc+PELWjC5WTmH2d1T033WwIe4DWrbe+xW1HSeWR2P5TZhD4CH
         JOhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778229435; x=1778834235;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=wpuQRbOQwrvqrL5TV1TLO/gtVPLeB51qcMTr2o4owZ8=;
        b=W2MkrO0xvujygMPVRAqtg8LuiZqlReraHh5pLA+6eb2TLDs9EnT3qB2QwbFByXzk9C
         RAs7avzy0stDgZoMYOZ/D5Yzoyy40QuBIrIHEnmPYZGiSybi6FDlsU0tg5X8u85VEcYe
         41nTdR6G/U73AiTlANw4WWTRt+1xdngwkFsJFC8ag825nScKZd6oUx5Asfkd/kmiI2WX
         1kc2D+9gHq0A7r06yCrb6K7Jdc7/zZTpq4QqobjiUvc8C+8vnJ8JIW8qiBOyCVhTkLkQ
         jdoNq7be/3Cj725y7tLQNOX0cAW8dqXTBABOfylUDa9FrLM0IXGyGV3kGHB4oVlp+aOZ
         k0JA==
X-Forwarded-Encrypted: i=1; AFNElJ/EBRAucUyqaqehdcN8udDChjQT9IX7zVycTwRSb9hYSISWpTxOSIhTNS/NPooWUjoVEn6Cu34ks0o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyFhhtQuPoiwvqKSaXEV+CHMwpGPn0Pq/L+OQiG9LzRN1lGLb2R
	RH9S0taAg9FU6lU2MM72oLOefFIuQiiSJO9szjzRxjKX+Va4WyDWoCH7SxlBvD6Qv8h7H2oVcJN
	ddBQOfco5sshXgabTHSHygBqZ27gJSc0=
X-Gm-Gg: Acq92OFTHrM2SV3i0Ov/S9+WeR4sPp9M6kg7FoNkozIdCsu0UfeCRP/aDP7KptvFjkg
	gti/xheIWO80kNehWnxxjKsz7R5uFqaXoTsH58hXx0ZJSH816ryhr84MGJdXsUSFqll4xOMqiOT
	C1dH1Qka3zuaIQJBpRmHQkQ/p1uzIpO7H5S0xSmXPbrLXG0tLk180HKKuFZf4oZYcaTriaOpt0z
	2KG8wKgwwsCGKCFMgHWHx2BbGypjj+F7YBvyrvsrclOSc5JjbCGN0exGhSRnqqakhb2QWIQBIzz
	MQCn7w==
X-Received: by 2002:a05:6512:33ca:b0:5a8:8222:7fd2 with SMTP id
 2adb3069b0e04-5a887add1f1mr3528722e87.2.1778229434408; Fri, 08 May 2026
 01:37:14 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <9b0f8922cd33df2b8e8038d639c1b8d8d73ce401.1775125380.git.mykola_kvach@epam.com>
 <4977CF18-39CC-4CC0-936A-890BAE5E8615@arm.com> <CAGeoDV8WkRGubF0qEXd4+PsXuabz3914G7bTYxTbaxZ2DsnY6w@mail.gmail.com>
 <87lddusvpy.fsf@epam.com>
In-Reply-To: <87lddusvpy.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 8 May 2026 11:37:02 +0300
X-Gm-Features: AVHnY4JYt4-0UmJ7JSJaWoyZcgjN2R8NDLx-IG2Pt8MeXk4pyFfoI5_ZvDR8HQg
Message-ID: <CAGeoDV_QcpgSpzHjn43EaaG7Owqes8+Zj-krOrKSJ3oCSpE9YQ@mail.gmail.com>
Subject: Re: [PATCH v8 13/13] xen/arm: Add support for system suspend
 triggered by hardware domain
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Luca Fancellu <Luca.Fancellu@arm.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <Mykola_Kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Rahul Singh <Rahul.Singh@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ef75cf/1778229435-09B68C48-A14C093E/0/0
X-purgate-type: clean
X-purgate-size: 11142

Hi Volodymyr,

Thank you for the feedback.

On Fri, May 8, 2026 at 1:25=E2=80=AFAM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
> Hi Mykola,
>
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>
> [...]
>
> >> > +    status =3D can_system_suspend();
> >> > +    if ( status )
> >> > +    {
> >> > +        system_state =3D SYS_STATE_resume;
> >> > +        goto resume_scheduler;
> >>
> >> When we have an error and we get the resume_scheduler path, we apply b=
ack the
> >> context of the guest saved previously in do_psci_1_0_system_suspend(),=
 so am I
> >> correct saying the guest won=E2=80=99t get any PSCI error back and we =
resume the guest
> >> from the guest resume entrypoint?
> >>
> >> In case, should we have a different path that returns a PSCI error (PS=
CI_*) into the guest
> >> x0, and skips the context restore?
> >
> > You are right about the current control flow: once the virtual
> > SYSTEM_SUSPEND request has been accepted and the domain has been parked=
, a
> > later failure in the Xen-wide suspend path resumes the domain through t=
he normal
> > domain resume path, rather than returning a PSCI error from the origina=
l call.
> >
> > This is intentional in the current design. The virtual PSCI SYSTEM_SUSP=
END
> > path parks the domain and saves its resume context. The actual Xen-wide=
 host
> > suspend is a separate step that is attempted only after all domains are
> > suspended.
> >
> > So a failure in the later Xen-wide suspend step is treated as an abort =
of the
> > host suspend attempt after the domain suspend was already accepted. The=
 domain
> > is then resumed through the existing domain resume path, similarly to t=
he
> > toolstack/xl suspend-resume flow, rather than by re-entering the guest =
PSCI
> > call path and modifying the saved vCPU context again.
> >
> > I agree this design is not obvious from the patch. I will clarify the c=
ommit
> > message and comments. If you or the maintainers think that failures bef=
ore the
> > physical SYSTEM_SUSPEND call succeeds should be reported back through t=
he
> > original virtual PSCI call, then this would require a different flow. I=
 was
> > trying to avoid that extra complexity in this series.
>
> I think that there is no sense to reporting an error back to guest. PSCI
> allows resume at any stage, so it is acceptable to have such brief "suspe=
nd"
>
> >
> >>
> >> > +    }
> >> > +
> >> > +    /*
> >> > +     * Non-boot CPUs have to be disabled on suspend and enabled on =
resume
> >> > +     * (hotplug-based mechanism). Disabling non-boot CPUs will lead=
 to PSCI
> >> > +     * CPU_OFF to be called by each non-boot CPU. Depending on the =
underlying
> >> > +     * platform capabilities, this may lead to the physical powerin=
g down of
> >> > +     * CPUs.
> >> > +     */
> >> > +    status =3D disable_nonboot_cpus();
> >> > +    if ( status )
> >> > +    {
> >> > +        system_state =3D SYS_STATE_resume;
> >> > +        goto resume_nonboot_cpus;
> >> > +    }
> >> > +
> >> > +    time_suspend();
> >> > +
> >> > +    status =3D iommu_suspend();
> >> > +    if ( status )
> >> > +    {
> >> > +        system_state =3D SYS_STATE_resume;
> >> > +        goto resume_time;
> >> > +    }
> >> > +
> >> > +    console_start_sync();
> >> > +    status =3D console_suspend();
> >> > +    if ( status )
> >> > +    {
> >> > +        dprintk(XENLOG_ERR, "Failed to suspend the console, err=3D%=
d\n", status);
> >> > +        system_state =3D SYS_STATE_resume;
> >> > +        goto resume_end_sync;
> >> > +    }
> >> > +
> >> > +    local_irq_save(flags);
> >> > +    status =3D gic_suspend();
> >> > +    if ( status )
> >> > +    {
> >> > +        system_state =3D SYS_STATE_resume;
> >> > +        goto resume_irqs;
> >> > +    }
> >> > +
> >> > +    set_init_ttbr(xen_pgtable);
> >> > +
> >> > +    /*
> >> > +     * Enable identity mapping before entering suspend to simplify
> >> > +     * the resume path
> >> > +     */
> >> > +    update_boot_mapping(true);
> >> > +
> >> > +    if ( prepare_resume_ctx(&cpu_context) )
> >> > +    {
> >> > +        status =3D call_psci_system_suspend();
> >> > +        /*
> >> > +         * If suspend is finalized properly by above system suspend=
 PSCI call,
> >> > +         * the code below in this 'if' branch will never execute. E=
xecution
> >> > +         * will continue from hyp_resume which is the hypervisor's =
resume point.
> >> > +         * In hyp_resume CPU context will be restored and since lin=
k-register is
> >> > +         * restored as well, it will appear to return from prepare_=
resume_ctx.
> >> > +         * The difference in returning from prepare_resume_ctx on s=
ystem suspend
> >> > +         * versus resume is in function's return value: on suspend,=
 the return
> >> > +         * value is a non-zero value, on resume it is zero. That is=
 why the
> >> > +         * control flow will not re-enter this 'if' branch on resum=
e.
> >> > +         */
> >> > +        if ( status )
> >> > +            dprintk(XENLOG_WARNING, "PSCI system suspend failed, er=
r=3D%d\n",
> >> > +                    status);
> >> > +    }
> >> > +
> >> > +    system_state =3D SYS_STATE_resume;
> >> > +    update_boot_mapping(false);
> >> > +
> >> > +    gic_resume();
> >> > +
> >> > + resume_irqs:
> >> > +    local_irq_restore(flags);
> >> > +
> >> > +    console_resume();
> >> > + resume_end_sync:
> >> > +    console_end_sync();
> >> > +
> >> > +    iommu_resume();
> >> > +
> >> > + resume_time:
> >> > +    time_resume();
> >> > +
> >> > + resume_nonboot_cpus:
> >> > +    /*
> >> > +     * The rcu_barrier() has to be added to ensure that the per cpu=
 area is
> >> > +     * freed before a non-boot CPU tries to initialize it (_free_pe=
rcpu_area()
> >> > +     * has to be called before the init_percpu_area()). This scenar=
io occurs
> >> > +     * when non-boot CPUs are hot-unplugged on suspend and hotplugg=
ed on resume.
> >> > +     */
> >> > +    rcu_barrier();
> >> > +    enable_nonboot_cpus();
> >> > +
> >> > + resume_scheduler:
> >> > +    scheduler_enable();
> >> > +    thaw_domains();
> >> > +
> >> > +    system_state =3D SYS_STATE_active;
> >> > +
> >> > +    printk("Resume (status %d)\n", status);
> >> > +
> >> > +    domain_resume(d);
> >> > +}
> >> > +
> >> > +static DECLARE_TASKLET(system_suspend_tasklet, system_suspend, NULL=
);
> >> > +
> >> > +void host_system_suspend(struct domain *d)
> >> > +{
> >> > +    system_suspend_tasklet.data =3D (void *)d;
> >> > +    /*
> >> > +     * The suspend procedure has to be finalized by the pCPU#0 (non=
-boot pCPUs
> >> > +     * will be disabled during the suspend).
> >> > +     */
> >> > +    tasklet_schedule_on_cpu(&system_suspend_tasklet, 0);
> >> > +}
> >> > +
> >> > /*
> >> >  * Local variables:
> >> >  * mode: C
> >> > diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> >> > index bd87ec430d..8fb9172186 100644
> >> > --- a/xen/arch/arm/vpsci.c
> >> > +++ b/xen/arch/arm/vpsci.c
> >> > @@ -5,6 +5,7 @@
> >> >
> >> > #include <asm/current.h>
> >> > #include <asm/domain.h>
> >> > +#include <asm/suspend.h>
> >> > #include <asm/vgic.h>
> >> > #include <asm/vpsci.h>
> >> > #include <asm/event.h>
> >> > @@ -232,8 +233,7 @@ static int32_t do_psci_1_0_system_suspend(regist=
er_t epoint, register_t cid)
> >> >     if ( is_64bit_domain(d) && is_thumb )
> >> >         return PSCI_INVALID_ADDRESS;
> >> >
> >> > -    /* SYSTEM_SUSPEND is not supported for the hardware domain yet =
*/
> >> > -    if ( is_hardware_domain(d) )
> >> > +    if ( !IS_ENABLED(CONFIG_SYSTEM_SUSPEND) && is_hardware_domain(d=
) )
> >> >         return PSCI_NOT_SUPPORTED;
> >> >
> >> >     /* Ensure that all CPUs other than the calling one are offline *=
/
> >> > @@ -266,6 +266,9 @@ static int32_t do_psci_1_0_system_suspend(regist=
er_t epoint, register_t cid)
> >> >             "SYSTEM_SUSPEND requested, epoint=3D%#"PRIregister", cid=
=3D%#"PRIregister"\n",
> >> >             epoint, cid);
> >> >
> >> > +    if ( is_control_domain(d) )
> >>
> >> Why is_control_domain() here and not is_hardware_domain() ?
> >
> > The use of is_control_domain() is intentional.
> >
> > The intended model is that Xen-wide host suspend is orchestrated by the
> > privileged management/control domain. The control domain coordinates th=
e
> > toolstack side, asks other domains to enter suspend, and then issues th=
e final
> > SYSTEM_SUSPEND request to Xen.
> >
> > This does not have to be the same entity as the hardware domain. If the
> > hardware domain is separate, it is one of the domains that the control =
domain
> > parks before the final host suspend step.
> >
> > The hwdom-specific checks in this patch have a different purpose: they =
avoid
> > the old hwdom_shutdown() path for SHUTDOWN_suspend and allow the hardwa=
re
> > domain to be parked as part of the suspend sequence. They do not define=
 the
> > policy for who is allowed to trigger Xen-wide host suspend.
> >
> > That said, this policy may not be optimal for all configurations, espec=
ially
> > when the control and hardware domain roles are split. I would appreciat=
e your
> > view, as well as the maintainers' views, on whether the trigger should =
remain
> > control-domain based, be tied to the hardware domain instead, or be exp=
ressed
> > through a separate host-suspend capability/helper.
>
>
> Hardware domain owns all the hardware. Hardware shall be put to
> power-down/suspended state before suspending the SoC, so it can be
> resumed afterwards. You can't just pause hardware domain in the same way
> as pausing all other domains.
>
> (Of course, we'll have the same issues with domain that have
> passed-through hardware, but in this case Dom0 shall orchestrate proper
> suspend sequence for these)

Yes, I agree that the hardware domain must not be externally
paused as a replacement for its own suspend path.

What I meant to describe is a guest-driven suspend sequence.
The control domain/toolstack may orchestrate the sequence,
but each domain that needs to quiesce hardware, including
the hardware domain and any domain with passed-through
devices, is expected to enter its own suspend path first and
quiesce its devices before issuing the virtual PSCI
SYSTEM_SUSPEND call.

Xen only treats other domains as ready for host suspend after
they have voluntarily reached SHUTDOWN_suspend. In the split
control/hardware-domain case, the final host-wide suspend
request from the control domain is accepted only after the
other domains, including the hardware domain, are already in
SHUTDOWN_suspend.

So my wording saying that the control domain "parks" the
hardware domain was imprecise. The control domain orchestrates
the sequence; it does not externally pause the hardware domain
as a substitute for its own suspend path.

Best regards,
Mykola

>
> [...]
>
> --
> WBR, Volodymyr


From xen-devel-bounces@lists.xenproject.org Fri May 08 08:53:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 08:53:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303308.1576763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLGxE-0005FZ-C3; Fri, 08 May 2026 08:53:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303308.1576763; Fri, 08 May 2026 08:53:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLGxE-0005FS-9F; Fri, 08 May 2026 08:53:04 +0000
Received: by outflank-mailman (input) for mailman id 1303308;
 Fri, 08 May 2026 08:53:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wLGxD-0005FM-Iu
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 08:53:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLGxC-004f2F-Vo
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 10:53:02 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69fda46d-e002-0a2a0a5209dd-0a2a4509a580-10
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 10:53:02 +0200
Received: from [209.85.218.48] (helo=mail-ej1-f48.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69fda46e-2497-0a2a45090019-d155da30eda8-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 10:53:02 +0200
Received: by mail-ej1-f48.google.com with SMTP id
 a640c23a62f3a-bc56c52a0d1so283622366b.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 01:53:02 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac3a7fbc2sm51467566b.30.2026.05.08.01.53.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 May 2026 01:53:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778230382; x=1778835182; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:content-language:references:cc:to:from
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=wBHhKQLppFgHOQ3vXqMLnnpWlm/fZIKG8XCNgVizf7Q=;
        b=DZk5qMUDXb6LSyZCoMq/dmvvGS397N12s5yGKURK6PLgQrHWsNJuAjnljRE4+2s0dR
         F+MXWhy9ubqlYAYVPTSLvgl8ZkNFqPYNz83mIUS4jXz15nOYLNq1uuWH+7fMCYs2b7+X
         Hv3xM1sXhPZZE51rrw8+CLdNzm5FrD/Ph5MkeTNA2U6rO2unpta+HXocEuTwekpt5tFT
         /7SIElsNasQiNKASvrrLLFWfEBvX1mQDJgTHLI5zNjl+kqmjALeji+6XCwRJII3m7yXN
         z77cmWrXK14nYq5A97iQ1jVYoKDR0+apc1BLTyImT/03azYd1nUZVx1kJE9l0Ty71aiu
         vBSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778230382; x=1778835182;
        h=in-reply-to:autocrypt:content-language:references:cc:to:from
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=wBHhKQLppFgHOQ3vXqMLnnpWlm/fZIKG8XCNgVizf7Q=;
        b=s9TdvSY871hCKf0XkarLmp6c+3FU4zHUg4WMWAK3qDHDwkQYJqqxRBdOF5JWTQ4uuQ
         PXMLiWKEvZv+vv0M8jaPpgfB/orva6lumv0wtvffn3MpsdgTC+FPXramp1GuPEycgDl6
         6Uvw98Tn00BkFpdpmXUH1AcQ+zHWK/71PcyjBg0N44j5qZxNczkckpQADPJR3s6X/5YQ
         R5mLGHShHFsygLpBmX+uIZaX+t6ijDNKB0iqQZyMTxYm1EqC4ZTtcU53XK3GqCMYCKsS
         3fZNmj8S/uKRUpCHVn3reOYPtwvYC25k6bm/6EywiH8/0cXnviooaZ2OonMt+77KSVDA
         cKlQ==
X-Forwarded-Encrypted: i=1; AFNElJ8UvQGyH4GuEVo32MxffNgl6bSb7poAK6qFgH1emNJspkMO2mQumPTTwgBbPnmSwU/oOdhR6ms5SE0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx2prkP3V5xeGNJ1xSRWY+OkjUSX2Xe2eLNerHRQZvhHNTjMuCw
	PTjAmxwS5CFYMTZFukqg9v6u5rPJbv/VNb7osZylCdbP1vuWEUdbEbrvMLn0UhxIe3s=
X-Gm-Gg: AeBDieunkZoMhhNsc4HRUqt5rBSB23Ox377h2vfgWylajNwlpFFzO3Vkc0jXPM75wAl
	zkyG0aLP41pMkyjGpZpiRNpe92qQKFB5r/rpUVIfCshxN0qElX6OMwvo8UlTKaaZUR4GxVb3f2X
	NxFlEC8TZY90RG7KCSEUuYjwVSAtL0DTiLhbqoTmqsVxdubaoI9rEhTLLGJrwHmK2HmHbDKAIC0
	zrDF5PFUzwvXlsgrnZRzgfBTgyYe07xO9QeGQ09E3KmMKgxvHvIVmxZasMVJdjM/4uYFDqnqjlm
	iT5wN2vTaC32vBANaACzKBTn+27KvI43fsJ0Nnc+hBBFpLeyJCf92lg5/pnDZAI7+FMXBkcLn6l
	1nYmsWr0cef8RfE34Z3E0zINGAypgPoN0WUlaDmG6+F92ieeUkNGWIm05jyZkfFp5mKmIsRs2Q1
	lOJyRLGdTBeIgsJS1SlgcXEFTwL2NZQwF2N6HJ/Vgu2IJZh9praeVaePP6vS9rhR0s9ZZxNS6O5
	zzzwWdQduGfR+jIMmxX5CRGmgcr5ynww470d4GeeYHBkN1KfMNQbGBadiCIq84R
X-Received: by 2002:a17:907:a06:b0:bb9:4586:5dbc with SMTP id a640c23a62f3a-bc56d80f156mr662567266b.33.1778230382045;
        Fri, 08 May 2026 01:53:02 -0700 (PDT)
Message-ID: <15645d19-f19d-4955-8315-0188aa834eb6@suse.com>
Date: Fri, 8 May 2026 10:53:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1
From: Juergen Gross <jgross@suse.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
References: <aaBH3EAchUwKhrUA@mail-itl>
 <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@citrix.com>
 <c712c06f-7fcf-4876-b2d7-f2b7bc6f0dea@suse.com> <adIuP7-sNwuOid80@mail-itl>
 <5d068304-837d-4aef-b8a7-87c91ccf96b4@arm.com>
 <c6855bd1-5b41-470b-8942-a4ebe3b5de0b@suse.com>
Content-Language: en-US
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <c6855bd1-5b41-470b-8942-a4ebe3b5de0b@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------RdDmWq5l0sPpSc0J9FZxrZu8"
X-purgate-ID: tlsNG-bad1c0/1778230382-4357BA53-1AFDE7B2/0/0
X-purgate-type: clean
X-purgate-size: 23578

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------RdDmWq5l0sPpSc0J9FZxrZu8
Content-Type: multipart/mixed; boundary="------------t3vC8SoGTWdPdMkfSJf5PH1L";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Message-ID: <15645d19-f19d-4955-8315-0188aa834eb6@suse.com>
Subject: Re: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1
References: <aaBH3EAchUwKhrUA@mail-itl>
 <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@citrix.com>
 <c712c06f-7fcf-4876-b2d7-f2b7bc6f0dea@suse.com> <adIuP7-sNwuOid80@mail-itl>
 <5d068304-837d-4aef-b8a7-87c91ccf96b4@arm.com>
 <c6855bd1-5b41-470b-8942-a4ebe3b5de0b@suse.com>
In-Reply-To: <c6855bd1-5b41-470b-8942-a4ebe3b5de0b@suse.com>

--------------t3vC8SoGTWdPdMkfSJf5PH1L
Content-Type: multipart/mixed; boundary="------------dgfJz710yWfdu8L0Ewpd6czF"

--------------dgfJz710yWfdu8L0Ewpd6czF
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMDcuMDUuMjYgMTg6MzEsIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+IE9uIDA3LjA0LjI2
IDExOjIzLCBLZXZpbiBCcm9kc2t5IHdyb3RlOg0KPj4gT24gMDUvMDQvMjAyNiAxMTo0MSwg
TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tpIHdyb3RlOg0KPj4+IE9uIFRodSwgRmViIDI2
LCAyMDI2IGF0IDAyOjQxOjEyUE0gKzAxMDAsIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+Pj4+
IE9uIDI2LjAyLjI2IDE0OjI3LCBBbmRyZXcgQ29vcGVyIHdyb3RlOg0KPj4+Pj4gT24gMjYv
MDIvMjAyNiAxOjE3IHBtLCBNYXJlayBNYXJjenlrb3dza2ktR8OzcmVja2kgd3JvdGU6DQo+
Pj4+Pj4gSGksDQo+Pj4+Pj4NCj4+Pj4+PiBXaGVuIHRlc3RpbmcgTGludXggNy4wLXJjMSBp
biBQViBkb20wLCBJIGhpdCB0aGUgZm9sbG93aW5nIHBhbmljDQo+Pj4+Pj4gc29tZXRpbWVz
Og0KPj4+Pj4+DQo+Pj4+Pj4gW8KgIDQzNi44NDk2MTRdIC0tLS0tLS0tLS0tLVsgY3V0IGhl
cmUgXS0tLS0tLS0tLS0tLQ0KPj4+Pj4+IFvCoCA0MzYuODQ5NjY5XSBrZXJuZWwgQlVHIGF0
IGFyY2gveDg2L2luY2x1ZGUvYXNtL3hlbi9oeXBlcnZpc29yLmg6NzghDQo+Pj4+Pj4gW8Kg
IDQzNi44NDk2OTNdIE9vcHM6IGludmFsaWQgb3Bjb2RlOiAwMDAwIFsjMV0gU01QIE5PUFRJ
DQo+Pj4+Pj4gW8KgIDQzNi44NDk3MTBdIENQVTogMyBVSUQ6IDAgUElEOiA0MDIxIENvbW06
IGt3b3JrZXIvdTI1OjEgTm90IHRhaW50ZWQgDQo+Pj4+Pj4gNy4wLjAtMC5yYzEuMS5xdWJl
cy4xMDAxLmZjNDEueDg2XzY0ICMxIFBSRUVNUFQoZnVsbCkNCj4+Pj4+PiBbwqAgNDM2Ljg0
OTcyOV0gSGFyZHdhcmUgbmFtZTogU3RhciBMYWJzIFN0YXJCb29rL1N0YXJCb29rLCBCSU9T
IDguOTcgDQo+Pj4+Pj4gMTAvMDMvMjAyMw0KPj4+Pj4+IFvCoCA0MzYuODQ5NzQzXSBXb3Jr
cXVldWU6IGk5MTVfZmxpcCBpbnRlbF9hdG9taWNfY29tbWl0X3dvcmsgW2k5MTVdDQo+Pj4+
Pj4gW8KgIDQzNi44NTAyMjZdIFJJUDogZTAzMDp4ZW5fZW50ZXJfbGF6eV9tbXUrMHgyNC8w
eDMwDQo+Pj4+Pj4gW8KgIDQzNi44NTAyNDVdIENvZGU6IDkwIDkwIDkwIDkwIDkwIDkwIGYz
IDBmIDFlIGZhIDBmIDFmIDQ0IDAwIDAwIDY1IDhiIDA1IA0KPj4+Pj4+IGI4IGU1IDAyIDAz
IDg1IGMwIDc1IDEwIDY1IGM3IDA1IGE5IGU1IDAyIDAzIDAxIDAwIDAwIDAwIGMzIGNjIGNj
IGNjIGNjIA0KPj4+Pj4+IDwwZj4gMGIgNjYgMmUgMGYgMWYgODQgMDAgMDAgMDAgMDAgMDAg
OTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTANCj4+Pj4+PiBbwqAgNDM2Ljg1MDI3MF0g
UlNQOiBlMDJiOmZmZmZjOTAwNDU3MjdhNjggRUZMQUdTOiAwMDAxMDIwMg0KPj4+Pj4+IFvC
oCA0MzYuODUwMjgzXSBSQVg6IDAwMDAwMDAwMDAwMDAwMDEgUkJYOiBmZmZmODg4MTA0MmZh
NmQwIFJDWDogDQo+Pj4+Pj4gMDAwZmZmZmZmZmUwMDAwMA0KPj4+Pj4+IFvCoCA0MzYuODUw
Mjk2XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDEgUlNJOiBmZmZmODg4MTBhNWEyOTgwIFJESTog
DQo+Pj4+Pj4gMDAwMDAwMDAwMDAwMDAwMA0KPj4+Pj4+IFvCoCA0MzYuODUwMzA4XSBSQlA6
IGZmZmZjOTAwNDllZGEwMDAgUjA4OiBmZmZmYzkwMDQ5ZWRjMDAwIFIwOTogDQo+Pj4+Pj4g
ZmZmZmM5MDA0OWVkYzAwMA0KPj4+Pj4+IFvCoCA0MzYuODUwMzIwXSBSMTA6IGZmZmZjOTAw
NDllZGMwMDAgUjExOiBmZmZmYzkwMDQ5ZWRiZmZmIFIxMjogDQo+Pj4+Pj4gZmZmZmM5MDA0
OWVkYzAwMA0KPj4+Pj4+IFvCoCA0MzYuODUwMzMyXSBSMTM6IGZmZmZjOTAwNDU3MjdiYjAg
UjE0OiBmZmZmYzkwMDQ1NzI3YjI4IFIxNTogDQo+Pj4+Pj4gODAwMDAwMDAwMDAwMDA2Yg0K
Pj4+Pj4+IFvCoCA0MzYuODUwMzU2XSBGUzrCoCAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdT
OmZmZmY4ODgyMDFlNmUwMDAoMDAwMCkgDQo+Pj4+Pj4ga25sR1M6MDAwMDAwMDAwMDAwMDAw
MA0KPj4+Pj4+IFvCoCA0MzYuODUwMzcxXSBDUzrCoCBlMDMwIERTOiAwMDAwIEVTOiAwMDAw
IENSMDogMDAwMDAwMDA4MDA1MDAzMw0KPj4+Pj4+IFvCoCA0MzYuODUwMzgzXSBDUjI6IDAw
MDA2NTQzZGJhZGUyNTAgQ1IzOiAwMDAwMDAwMTE1ZWYxMDAwIENSNDogDQo+Pj4+Pj4gMDAw
MDAwMDAwMDA1MDY2MA0KPj4+Pj4+IFvCoCA0MzYuODUwNDAxXSBDYWxsIFRyYWNlOg0KPj4+
Pj4+IFvCoCA0MzYuODUwNDEwXcKgIDxUQVNLPg0KPj4+Pj4+IFvCoCA0MzYuODUwNDIwXcKg
IHZtYXBfcGFnZXNfcHVkX3JhbmdlKzB4NDdjLzB4NTMwDQo+Pj4+Pj4gW8KgIDQzNi44NTA0
MzldwqAgdm1hcF9zbWFsbF9wYWdlc19yYW5nZV9ub2ZsdXNoKzB4MWYxLzB4MmIwDQo+Pj4+
Pj4gW8KgIDQzNi44NTA0NTFdwqAgPyBfX2dldF92bV9hcmVhX25vZGUrMHgxMGEvMHgxNzAN
Cj4+Pj4+PiBbwqAgNDM2Ljg1MDQ2NV3CoCB2bWFwKzB4NzkvMHhkMA0KPj4+Pj4+IFvCoCA0
MzYuODUwNDc2XcKgIGk5MTVfZ2VtX29iamVjdF9tYXBfcGFnZSsweDEzYi8weDIxMCBbaTkx
NV0NCj4+Pj4+PiBbwqAgNDM2Ljg1MDgxMl3CoCBpOTE1X2dlbV9vYmplY3RfcGluX21hcCsw
eDFlMi8weDIxMCBbaTkxNV0NCj4+Pj4+PiBbwqAgNDM2Ljg1MTEyM13CoCBpOTE1X2dlbV9v
YmplY3RfcGluX21hcF91bmxvY2tlZCsweDJkLzB4YTAgW2k5MTVdDQo+Pj4+Pj4gW8KgIDQz
Ni44NTE0MjRdwqAgaW50ZWxfZHNiX2J1ZmZlcl9jcmVhdGUrMHhlZC8weDFhMCBbaTkxNV0N
Cj4+Pj4+PiBbwqAgNDM2Ljg1MTc3OF3CoCBpbnRlbF9kc2JfcHJlcGFyZSsweGNhLzB4MWEw
IFtpOTE1XQ0KPj4+Pj4+IFvCoCA0MzYuODUyMTEwXcKgIGludGVsX2F0b21pY19kc2JfZmlu
aXNoKzB4OTIvMHgzNTAgW2k5MTVdDQo+Pj4+Pj4gW8KgIDQzNi44NTI0NTZdwqAgaW50ZWxf
YXRvbWljX2NvbW1pdF90YWlsKzB4MzI2LzB4ZDQwIFtpOTE1XQ0KPj4+Pj4+IFvCoCA0MzYu
ODUyNzY5XcKgIHByb2Nlc3Nfb25lX3dvcmsrMHgxOGQvMHgzODANCj4+Pj4+PiBbwqAgNDM2
Ljg1Mjc3OV3CoCB3b3JrZXJfdGhyZWFkKzB4MTk2LzB4MzAwDQo+Pj4+Pj4gW8KgIDQzNi44
NTI3ODddwqAgPyBfX3BmeF93b3JrZXJfdGhyZWFkKzB4MTAvMHgxMA0KPj4+Pj4+IFvCoCA0
MzYuODUyNzk2XcKgIGt0aHJlYWQrMHhlMy8weDEyMA0KPj4+Pj4+IFvCoCA0MzYuODUyODA1
XcKgID8gX19wZnhfa3RocmVhZCsweDEwLzB4MTANCj4+Pj4+PiBbwqAgNDM2Ljg1MjgxNV3C
oCByZXRfZnJvbV9mb3JrKzB4MTllLzB4MjYwDQo+Pj4+Pj4gW8KgIDQzNi44NTI4MjRdwqAg
PyBfX3BmeF9rdGhyZWFkKzB4MTAvMHgxMA0KPj4+Pj4+IFvCoCA0MzYuODUyODMyXcKgIHJl
dF9mcm9tX2ZvcmtfYXNtKzB4MWEvMHgzMA0KPj4+Pj4+IFvCoCA0MzYuODUyODQyXcKgIDwv
VEFTSz4NCj4+Pj4+PiBbwqAgNDM2Ljg1Mjg0N10gTW9kdWxlcyBsaW5rZWQgaW46IHNuZF9z
ZXFfZHVtbXkgc25kX2hydGltZXIgDQo+Pj4+Pj4gc25kX2hkYV9jb2RlY19pbnRlbGhkbWkg
c25kX2hkYV9jb2RlY19oZG1pIHNuZF9oZGFfY29kZWNfYWxjMjY5IA0KPj4+Pj4+IHNuZF9o
ZGFfY29kZWNfcmVhbHRla19saWIgc25kX2hkYV9zY29kZWNfY29tcG9uZW50IHNuZF9oZGFf
Y29kZWNfZ2VuZXJpYyANCj4+Pj4+PiBzbmRfaGRhX2ludGVsIHNuZF9zb2ZfcGNpX2ludGVs
X3RnbCBzbmRfc29mX3BjaV9pbnRlbF9jbmwgDQo+Pj4+Pj4gc25kX3NvZl9pbnRlbF9oZGFf
Z2VuZXJpYyBzb3VuZHdpcmVfaW50ZWwgc25kX3NvZl9pbnRlbF9oZGFfc2R3X2JwdCANCj4+
Pj4+PiBzbmRfc29mX2ludGVsX2hkYV9jb21tb24gc25kX3NvY19oZGFjX2hkYSBzbmRfc29m
X2ludGVsX2hkYV9tbGluayANCj4+Pj4+PiBzbmRfc29mX2ludGVsX2hkYSBzb3VuZHdpcmVf
Y2FkZW5jZSBzbmRfc29mX3BjaSBzbmRfc29mX3h0ZW5zYV9kc3Agc25kX3NvZiANCj4+Pj4+
PiBzbmRfc29mX3V0aWxzIHNuZF9zb2NfYWNwaV9pbnRlbF9tYXRjaCBzbmRfc29jX2FjcGlf
aW50ZWxfc2RjYV9xdWlya3MgDQo+Pj4+Pj4gc291bmR3aXJlX2dlbmVyaWNfYWxsb2NhdGlv
biBzbmRfc29jX3Nkd191dGlscyBzbmRfc29jX2FjcGkgY3JjOCANCj4+Pj4+PiBpbnRlbF9y
YXBsX21zciBzb3VuZHdpcmVfYnVzIGludGVsX3JhcGxfY29tbW9uIHNuZF9zb2Nfc2RjYSBz
bmRfc29jX2F2cyANCj4+Pj4+PiBzbmRfc29jX2hkYV9jb2RlYyBzbmRfaGRhX2V4dF9jb3Jl
IHNuZF9oZGFfY29kZWMgdmZhdCANCj4+Pj4+PiBpbnRlbF91bmNvcmVfZnJlcXVlbmN5X2Nv
bW1vbiBmYXQgc25kX2hkYV9jb3JlIHNuZF9pbnRlbF9kc3BjZmcgDQo+Pj4+Pj4gc25kX2lu
dGVsX3Nkd19hY3BpIHNuZF9od2RlcCBpbnRlbF9wb3dlcmNsYW1wIHNuZF9zb2NfY29yZSBp
d2x3aWZpIA0KPj4+Pj4+IHNuZF9jb21wcmVzcyBzcGlfbm9yIGlUQ09fd2R0IGFjOTdfYnVz
IGludGVsX3BtY19ieHQgZWUxMDA0IG10ZCANCj4+Pj4+PiBzbmRfcGNtX2RtYWVuZ2luZSBz
bmRfc2VxIGNmZzgwMjExIHNuZF9zZXFfZGV2aWNlIHBjc3BrciBzcGlfaW50ZWxfcGNpIA0K
Pj4+Pj4+IHNuZF9wY20gcmZraWxsIHNwaV9pbnRlbCBzbmRfdGltZXIgc25kDQo+Pj4+Pj4g
W8KgIDQzNi44NTI5MzldwqAgaTJjX2k4MDEgc291bmRjb3JlIGkyY19zbWJ1cyBpZG1hNjQg
aW50ZWxfcG1jX2NvcmUgDQo+Pj4+Pj4gcG10X3RlbGVtZXRyeSBwbXRfZGlzY292ZXJ5IHBt
dF9jbGFzcyBpbnRlbF9oaWQgaW50ZWxfcG1jX3NzcmFtX3RlbGVtZXRyeSANCj4+Pj4+PiBp
bnRlbF9zY3VfcGx0ZHJ2IHNwYXJzZV9rZXltYXAgam95ZGV2IGxvb3AgZnVzZSB4ZW5mcyBu
Zm5ldGxpbmsgDQo+Pj4+Pj4gdnNvY2tfbG9vcGJhY2sgdm13X3Zzb2NrX3ZpcnRpb190cmFu
c3BvcnRfY29tbW9uIHZtd192c29ja192bWNpX3RyYW5zcG9ydCANCj4+Pj4+PiB2c29jayB6
cmFtIHZtd192bWNpIGx6NGhjX2NvbXByZXNzIGx6NF9jb21wcmVzcyBkbV90aGluX3Bvb2wg
DQo+Pj4+Pj4gZG1fcGVyc2lzdGVudF9kYXRhIGRtX2Jpb19wcmlzb24gZG1fY3J5cHQgeGUg
ZHJtX3R0bV9oZWxwZXIgDQo+Pj4+Pj4gZHJtX3N1YmFsbG9jX2hlbHBlciBncHVfc2NoZWQg
ZHJtX2dwdXZtIGRybV9leGVjIGRybV9ncHVzdm1faGVscGVyIGk5MTUgDQo+Pj4+Pj4gaTJj
X2FsZ29fYml0IGRybV9idWRkeSBoaWRfbXVsdGl0b3VjaCBpMmNfaGlkX2FjcGkgZ2hhc2hf
Y2xtdWxuaV9pbnRlbCANCj4+Pj4+PiB2aWRlbyBudm1lIHdtaSB0dG0gaTJjX2hpZCBudm1l
X2NvcmUgbnZtZV9rZXlyaW5nIGRybV9kaXNwbGF5X2hlbHBlciANCj4+Pj4+PiBudm1lX2F1
dGggeGhjaV9wY2kgcGluY3RybF90aWdlcmxha2UgdGh1bmRlcmJvbHQgaGtkZiBjZWMgeGhj
aV9oY2QgDQo+Pj4+Pj4gaW50ZWxfdnNlYyBzZXJpb19yYXcgeGVuX2FjcGlfcHJvY2Vzc29y
IHhlbl9wcml2Y21kIHhlbl9wY2liYWNrIA0KPj4+Pj4+IHhlbl9ibGtiYWNrIHhlbl9nbnRh
bGxvYyB4ZW5fZ250ZGV2IHhlbl9ldnRjaG4gc2NzaV9kaF9yZGFjIHNjc2lfZGhfZW1jIA0K
Pj4+Pj4+IHNjc2lfZGhfYWx1YSB1aW5wdXQgaTJjX2Rldg0KPj4+Pj4+IFvCoCA0MzYuODUz
MTgzXSAtLS1bIGVuZCB0cmFjZSAwMDAwMDAwMDAwMDAwMDAwIF0tLS0NCj4+Pj4+Pg0KPj4+
Pj4+IG9yIHRoaXM6DQo+Pj4+Pj4NCj4+Pj4+PiBbwqAgNTQ4LjczNjg4NF0gLS0tLS0tLS0t
LS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0tDQo+Pj4+Pj4gW8KgIDU0OC43MzY5MDddIGtl
cm5lbCBCVUcgYXQgYXJjaC94ODYvaW5jbHVkZS9hc20veGVuL2h5cGVydmlzb3IuaDo4NSEN
Cj4+Pj4+PiBbwqAgNTQ4LjczNjkyM10gT29wczogaW52YWxpZCBvcGNvZGU6IDAwMDAgWyMx
XSBTTVAgTk9QVEkNCj4+Pj4+PiBbwqAgNTQ4LjczNjkzNV0gQ1BVOiAwIFVJRDogMCBQSUQ6
IDIwNiBDb21tOiBrd29ya2VyLzA6MiBOb3QgdGFpbnRlZCANCj4+Pj4+PiA3LjAuMC0wLnJj
MS4xLnF1YmVzLjEwMDEuZmM0MS54ODZfNjQgIzEgUFJFRU1QVChmdWxsKQ0KPj4+Pj4+IFvC
oCA1NDguNzM2OTQ5XSBIYXJkd2FyZSBuYW1lOiBMRU5PVk8gMjM0N0E0NS8yMzQ3QTQ1LCBC
SU9TIENCRVQ0MDAwIA0KPj4+Pj4+IE5pdHJva2V5LXYwLjIuMC0yNjA4LWdhNjQ5NTk3IDAx
LzAxLzE5NzANCj4+Pj4+PiBbwqAgNTQ4LjczNjk2Ml0gV29ya3F1ZXVlOiBldmVudHMgZGVs
YXllZF92ZnJlZV93b3JrDQo+Pj4+Pj4gW8KgIDU0OC43MzY5NzZdIFJJUDogZTAzMDp4ZW5f
bGVhdmVfbGF6eV9tbXUrMHg0NC8weDUwDQo+Pj4+Pj4gW8KgIDU0OC43MzY5ODldIENvZGU6
IDAyIDAzIDgzIGY4IDAxIDc1IDIzIDY1IGM3IDA1IDZjIGU0IDAyIDAzIDAwIDAwIDAwIDAw
IA0KPj4+Pj4+IDY1IGZmIDBkIDdkIGI4IDAyIDAzIDc0IDA1IGMzIGNjIGNjIGNjIGNjIGU4
IDYxIDVkIGZkIGZmIGMzIGNjIGNjIGNjIGNjIA0KPj4+Pj4+IDwwZj4gMGIgNjYgMmUgMGYg
MWYgODQgMDAgMDAgMDAgMDAgMDAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTANCj4+
Pj4+PiBbwqAgNTQ4LjczNzAxMF0gUlNQOiBlMDJiOmZmZmZjOTAwNDA2MDdjZjAgRUZMQUdT
OiAwMDAxMDI5Nw0KPj4+Pj4+IFvCoCA1NDguNzM3MDE4XSBSQVg6IDAwMDAwMDAwMDAwMDAw
MDAgUkJYOiBmZmZmODg4MTY0YTcwNDA4IFJDWDogDQo+Pj4+Pj4gMDAwMDAwMDAwMDAwMDAw
MA0KPj4+Pj4+IFvCoCA1NDguNzM3MDI5XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAw
MDBmZmZmZmZmZmZmMDAwIFJESTogDQo+Pj4+Pj4gZmZmZjg4ODEwNjljMDAwMA0KPj4+Pj4+
IFvCoCA1NDguNzM3MDM5XSBSQlA6IGZmZmZjOTAwNDk2ODEwMDAgUjA4OiBmZmZmYzkwMDQ5
NjgxMDAwIFIwOTogDQo+Pj4+Pj4gMDAwMDAwMDAwMDAwMDAyNw0KPj4+Pj4+IFvCoCA1NDgu
NzM3MDUwXSBSMTA6IDAwMDAwMDAwMDAwMDAwMjcgUjExOiBmZWZlZmVmZWZlZmVmZWZmIFIx
MjogDQo+Pj4+Pj4gZmZmZmM5MDA0OTY4MTAwMA0KPj4+Pj4+IFvCoCA1NDguNzM3MDYwXSBS
MTM6IGZmZmY4ODgxMDAyZmQyNTggUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogDQo+Pj4+
Pj4gZmZmZmM5MDA0MDYwN2RhYw0KPj4+Pj4+IFvCoCA1NDguNzM3MDc5XSBGUzrCoCAwMDAw
MDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY4ODgxZjg4ZWUwMDAoMDAwMCkgDQo+Pj4+Pj4g
a25sR1M6MDAwMDAwMDAwMDAwMDAwMA0KPj4+Pj4+IFvCoCA1NDguNzM3MDkwXSBDUzrCoCBl
MDMwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMw0KPj4+Pj4+IFvC
oCA1NDguNzM3MDk5XSBDUjI6IDAwMDA1NTU3NmMyZTYwNTggQ1IzOiAwMDAwMDAwMTBkNDdi
MDAwIENSNDogDQo+Pj4+Pj4gMDAwMDAwMDAwMDA1MDY2MA0KPj4+Pj4+IFvCoCA1NDguNzM3
MTE1XSBDYWxsIFRyYWNlOg0KPj4+Pj4+IFvCoCA1NDguNzM3MTIzXcKgIDxUQVNLPg0KPj4+
Pj4+IFvCoCA1NDguNzM3MTI4XcKgIHZ1bm1hcF9wbWRfcmFuZ2UuaXNyYS4wKzB4MWYxLzB4
MmUwDQo+Pj4+Pj4gW8KgIDU0OC43MzcxNDJdwqAgdnVubWFwX3A0ZF9yYW5nZSsweDE3ZC8w
eDI5MA0KPj4+Pj4+IFvCoCA1NDguNzM3MTUxXcKgIF9fdnVubWFwX3JhbmdlX25vZmx1c2gr
MHgxODIvMHgxZDANCj4+Pj4+PiBbwqAgNTQ4LjczNzE2MV3CoCA/IF9yYXdfc3Bpbl91bmxv
Y2srMHhlLzB4MzANCj4+Pj4+PiBbwqAgNTQ4LjczNzE3MV3CoCByZW1vdmVfdm1fYXJlYSsw
eDQwLzB4NzANCj4+Pj4+PiBbwqAgNTQ4LjczNzE4MF3CoCB2ZnJlZS5wYXJ0LjArMHgxYi8w
eDI5MA0KPj4+Pj4+IFvCoCA1NDguNzM3MTg5XcKgIGRlbGF5ZWRfdmZyZWVfd29yaysweDM1
LzB4NTANCj4+Pj4+PiBbwqAgNTQ4LjczNzE5OF3CoCBwcm9jZXNzX29uZV93b3JrKzB4MThk
LzB4MzgwDQo+Pj4+Pj4gW8KgIDU0OC43MzcyMDddwqAgd29ya2VyX3RocmVhZCsweDE5Ni8w
eDMwMA0KPj4+Pj4+IFvCoCA1NDguNzM3MjE1XcKgID8gX19wZnhfd29ya2VyX3RocmVhZCsw
eDEwLzB4MTANCj4+Pj4+PiBbwqAgNTQ4LjczNzIyNF3CoCBrdGhyZWFkKzB4ZTMvMHgxMjAN
Cj4+Pj4+PiBbwqAgNTQ4LjczNzIzM13CoCA/IF9fcGZ4X2t0aHJlYWQrMHgxMC8weDEwDQo+
Pj4+Pj4gW8KgIDU0OC43MzcyNDJdwqAgcmV0X2Zyb21fZm9yaysweDE5ZS8weDI2MA0KPj4+
Pj4+IFvCoCA1NDguNzM3MjUwXcKgID8gX19wZnhfa3RocmVhZCsweDEwLzB4MTANCj4+Pj4+
PiBbwqAgNTQ4LjczNzI1OF3CoCByZXRfZnJvbV9mb3JrX2FzbSsweDFhLzB4MzANCj4+Pj4+
PiBbwqAgNTQ4LjczNzI2OV3CoCA8L1RBU0s+DQo+Pj4+Pj4gW8KgIDU0OC43MzcyNzRdIE1v
ZHVsZXMgbGlua2VkIGluOiB2ZmF0IGZhdCBzbmRfc2VxX2R1bW15IHNuZF9ocnRpbWVyIGF0
aDlrIA0KPj4+Pj4+IGF0aDlrX2NvbW1vbiBzbmRfaGRhX2NvZGVjX2ludGVsaGRtaSBzbmRf
aGRhX2NvZGVjX2hkbWkgYXRoOWtfaHcgDQo+Pj4+Pj4gc25kX2hkYV9jb2RlY19hbGMyNjkg
c25kX2hkYV9jb2RlY19yZWFsdGVrX2xpYiBzbmRfaGRhX3Njb2RlY19jb21wb25lbnQgDQo+
Pj4+Pj4gc25kX2hkYV9jb2RlY19nZW5lcmljIHNuZF9oZGFfaW50ZWwgc25kX2hkYV9jb2Rl
YyBtYWM4MDIxMSBzbmRfaGRhX2NvcmUgDQo+Pj4+Pj4gc25kX2ludGVsX2RzcGNmZyBzbmRf
aW50ZWxfc2R3X2FjcGkgc25kX2h3ZGVwIGF0aCBzbmRfc2VxIHNuZF9zZXFfZGV2aWNlIA0K
Pj4+Pj4+IHNuZF9jdGxfbGVkIGNmZzgwMjExIHNuZF9wY20gYXQyNCB0aGlua3BhZF9hY3Bp
IGludGVsX3JhcGxfbXNyIGkyY19pODAxIA0KPj4+Pj4+IHNuZF90aW1lciBzcGFyc2Vfa2V5
bWFwIGlUQ09fd2R0IGludGVsX3JhcGxfY29tbW9uIHBsYXRmb3JtX3Byb2ZpbGUgDQo+Pj4+
Pj4gaW50ZWxfcG93ZXJjbGFtcCBpbnRlbF9wbWNfYnh0IHBjc3BrciBpMmNfc21idXMgcmZr
aWxsIGxpYmFyYzQgc25kIA0KPj4+Pj4+IHNvdW5kY29yZSBtZWlfbWUgZTEwMDBlIG1laSBq
b3lkZXYgbHBjX2ljaCBsb29wIGZ1c2UgeGVuZnMgbmZuZXRsaW5rIA0KPj4+Pj4+IHZzb2Nr
X2xvb3BiYWNrIHZtd192c29ja192aXJ0aW9fdHJhbnNwb3J0X2NvbW1vbiB2bXdfdnNvY2tf
dm1jaV90cmFuc3BvcnQgDQo+Pj4+Pj4gdnNvY2sgenJhbSB2bXdfdm1jaSBsejRoY19jb21w
cmVzcyBsejRfY29tcHJlc3MgZG1fdGhpbl9wb29sIA0KPj4+Pj4+IGRtX3BlcnNpc3RlbnRf
ZGF0YSBkbV9iaW9fcHJpc29uIGRtX2NyeXB0IGk5MTUgaTJjX2FsZ29fYml0IGRybV9idWRk
eSANCj4+Pj4+PiBnaGFzaF9jbG11bG5pX2ludGVsIHR0bSBzZGhjaV9wY2kgZHJtX2Rpc3Bs
YXlfaGVscGVyIHNkaGNpX3VoczIgc2RoY2kgDQo+Pj4+Pj4gdmlkZW8geGhjaV9wY2kgY3Fo
Y2kgd21pIGNlYyB4aGNpX2hjZCBlaGNpX3BjaSBtbWNfY29yZSBlaGNpX2hjZCBzZXJpb19y
YXcgDQo+Pj4+Pj4geGVuX2FjcGlfcHJvY2Vzc29yIHhlbl9wcml2Y21kIHhlbl9wY2liYWNr
DQo+Pj4+Pj4gW8KgIDU0OC43MzczNDhdwqAgeGVuX2Jsa2JhY2sgeGVuX2dudGFsbG9jIHhl
bl9nbnRkZXYgeGVuX2V2dGNobiANCj4+Pj4+PiBzY3NpX2RoX3JkYWMgc2NzaV9kaF9lbWMg
c2NzaV9kaF9hbHVhIHVpbnB1dCBpMmNfZGV2DQo+Pj4+Pj4gW8KgIDU0OC43Mzc0NjldIC0t
LVsgZW5kIHRyYWNlIDAwMDAwMDAwMDAwMDAwMDAgXS0tLQ0KPj4+Pj4+DQo+Pj4+Pj4gSSBk
b24ndCBoYXZlIGNsZWFyIHBhdHRlcm4gd2hlbiB0aGlzIGhhcHBlbnMsIG9uZSB3YXMgZHVy
aW5nIGhvc3QNCj4+Pj4+PiBzdXNwZW5kLCBidXQgdGhlIG90aGVyIHdhcyBkdXJpbmcgIm5v
cm1hbCIgdGVzdCBydW4gKHN0YXJ0aW5nL3N0b3BwaW5nDQo+Pj4+Pj4gZG9tVXMgYW5kIHJ1
bm5pbmcgc3R1ZmYgYXJvdW5kIHRoZW0pLiBOb3RlIGFsc28gb25lIG9mIHRob3NlIGlzIElu
dGVsDQo+Pj4+Pj4gYW5kIHRoZSBvdGhlciBBTUQsIHNvIGl0IGlzbid0IHJlYWxseSBoYXJk
d2FyZSBzcGVjaWZpYy4NCj4+Pj4+Pg0KPj4+Pj4+IFNsaWdodGx5IG1vcmUgZGV0YWlscyB3
aXRoIGxpbmtzIChlc3BlY2lhbGx5IHNlcmlhbDAudHh0IGluIHRoZSBsb2dzDQo+Pj4+Pj4g
dGFiKSBhdA0KPj4+Pj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9RdWJlc09TL3F1YmVzLWxpbnV4
LWtlcm5lbC8gDQo+Pj4+Pj4gcHVsbC82NjIjaXNzdWVjb21tZW50LTM5NjMzMjYxODgNCj4+
Pj4+Pg0KPj4+Pj4+IEFueSBpZGVhPw0KPj4+Pj4+DQo+Pj4+PiBUaGF0IGxvb2tzIGxpa2Ug
dGhlIGlzc3VlIEp1ZXJnZW4gZml4ZWQgd2l0aDoNCj4+Pj4+DQo+Pj4+PiBodHRwczovL2xv
cmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvMjAyNjAyMjAxMjM3MTUuODM0ODQ4LTEtamdyb3Nz
QHN1c2UuY29tLw0KPj4+PiBObywgaXQgZG9lc24ndC4gVGhlIGZpeCBpcyBhbHJlYWR5IGlu
IHJjMSwgYW5kIHRoZSBjcmFzaCB3YXMgcXVpdGUgZWFybHkgZHVyaW5nDQo+Pj4+IGJvb3Qg
KGJlZm9yZSBhbnkgc2Vjb25kYXJ5IENQVXMgd2VyZSBicm91Z2h0IHVwKS4NCj4+Pj4NCj4+
Pj4gSSBndWVzcyB0aGlzIHByb2JsZW0gaXMgcmVsYXRlZCB0byB0aGUgbGF6eV9tbXVfc3Rh
dGUgc2VyaWVzIFsxXS4NCj4+DQo+PiBUaGF0IG1heSB3ZWxsIGJlIHRoZSBjYXNlIC0gaXQg
c2VlbXMgdGhhdCB4ZW5fZW50ZXJfbGF6eV9tbXUoKSBpcyBjYWxsZWQNCj4+IHdoaWxlIGFs
cmVhZHkgaW4gbGF6eSBNTVUgbW9kZSAoZmlyc3Qgc3BsYXQpLCBhbmQgeGVuX2xlYXZlX2xh
enlfbW11KCkNCj4+IGlzIGNhbGxlZCB3aXRob3V0IGJlaW5nIGluIGxhenkgTU1VIG1vZGUg
KHNlY29uZCBzcGxhdCkuIEkgZXhwZWN0IHRoaXMNCj4+IGlzIHNvbWV0aGluZyBzcGVjaWZp
YyB0byBYZW4sIHdoaWNoIEkgZGlkbid0IGdldCB0aGUgY2hhbmNlIHRvIHRlc3QuDQo+IA0K
PiBMb29raW5nIGludG8gdGhpcyBhZ2Fpbi4NCj4gDQo+IEkgdGhpbmsgdGhlIG1haW4gcHJv
YmxlbSBpcyB0aGUgY2FsbCBvZiBhcmNoX2VuZF9jb250ZXh0X3N3aXRjaCgpIGluDQo+IF9f
c3dpdGNoX3RvKCkuIEZvciB4ZW4gdGhpcyBpcyB4ZW5fZW5kX2NvbnRleHRfc3dpdGNoKCkg
YW5kIGl0IGlzIGRvaW5nOg0KPiANCj4gIMKgIGlmIChfX3Rhc2tfbGF6eV9tbXVfbW9kZV9h
Y3RpdmUobmV4dCkpDQo+ICDCoMKgwqDCoMKgIGFyY2hfZW50ZXJfbGF6eV9tbXVfbW9kZSgp
DQo+IA0KPiBCdXQgdGhpcyBpcyB3cm9uZyBoZXJlLCBhcyBjdXJyZW50IGhhc24ndCBiZWVu
IHN3aXRjaGVkIHRvICJuZXh0IiB5ZXQuDQo+IA0KPiBJIGRvbid0IHRoaW5rIHdlIGNhbiBq
dXN0IG1vdmUgdGhlIGNhbGwgb2YgYXJjaF9lbmRfY29udGV4dF9zd2l0Y2goKSwgYXMNCj4g
aXQgaXMgbmVlZGVkIGZvciBpc3N1aW5nIHRoZSBjb250ZXh0IHN3aXRjaCByZWxhdGVkIGh5
cGVyY2FsbCBmb3Igc3dpdGNoaW5nDQo+IGFsbCB0aGUgbmVlZGVkIG5vbi1NTVUgc2V0dGlu
Z3MuDQo+IA0KPiBXaGF0IHdlIHByb2JhYmx5IHJlYWxseSB3YW50IGlzIHRvIGNhbGwgbGF6
eV9tbXVfbW9kZV9wYXVzZSgpIGJlZm9yZSB0aGUNCj4gY2FsbCBvZiBhcmNoX3N0YXJ0X2Nv
bnRleHRfc3dpdGNoKCkgYW5kIGxhdGVyIGNhbGwgbGF6eV9tbXVfbW9kZV9yZXN1bWUoKQ0K
PiBhZnRlciBzd2l0Y2hpbmcgY29udGV4dCB0byBuZXh0LiBJbiB4ZW5fc3RhcnRfY29udGV4
dF9zd2l0Y2goKSBhbmQNCj4geGVuX2VuZF9jb250ZXh0X3N3aXRjaCgpIHRoZSBsYXp5IG1t
dSBtb2RlIGhhbmRsaW5nIHNob3VsZCBiZSByZW1vdmVkLg0KPiANCj4gSSB3aWxsIHRlc3Qg
dGhhdCB0b21vcnJvdywgdW5sZXNzIHNvbWVvbmUgdGFsa3MgbWUgb3V0IG9mIGl0LiA6LSkN
Cg0KVGhhdCB3YXNuJ3QgaXQsIGFzIHRoZSByZWFzb25pbmcgd2FzIHdyb25nLg0KDQpCdXQg
bm93IEkgdGhpbmsgSSBoYXZlIGZvdW5kIHRoZSByZWFsIGN1bHByaXQgaW4gbGF6eV9tbXVf
bW9kZV9lbmFibGUoKToNCg0Kc3RhdGljIGlubGluZSB2b2lkIGxhenlfbW11X21vZGVfZW5h
YmxlKHZvaWQpDQp7DQogICAgICAgICBzdHJ1Y3QgbGF6eV9tbXVfc3RhdGUgKnN0YXRlID0g
JmN1cnJlbnQtPmxhenlfbW11X3N0YXRlOw0KDQogICAgICAgICBpZiAoaW5faW50ZXJydXB0
KCkgfHwgc3RhdGUtPnBhdXNlX2NvdW50ID4gMCkNCiAgICAgICAgICAgICAgICAgcmV0dXJu
Ow0KDQogICAgICAgICBWTV9XQVJOX09OX09OQ0Uoc3RhdGUtPmVuYWJsZV9jb3VudCA9PSBV
OF9NQVgpOw0KDQogICAgICAgICBpZiAoc3RhdGUtPmVuYWJsZV9jb3VudCsrID09IDApDQog
ICAgICAgICAgICAgICAgIGFyY2hfZW50ZXJfbGF6eV9tbXVfbW9kZSgpOw0KfQ0KDQpDb25z
aWRlciBhIHByZWVtcHRpb24ganVzdCBiZWZvcmUgY2FsbGluZyBhcmNoX2VudGVyX2xhenlf
bW11X21vZGUoKS4gVGhlDQplbmFibGVfY291bnQgd2lsbCBiZSAxIG5vdywgYnV0IHRoZXJl
IHdhcyBubyBzd2l0Y2ggdG8gbGF6eSBtb2RlIHlldC4NCg0KV2hlbiB0aGUgdGFzayBiZWNv
bWVzIGFjdGl2ZSBhZ2FpbiwgY29udGV4dCBzd2l0Y2ggaGFuZGxpbmcgd2lsbCBzZWUgbGF6
eQ0KbW9kZSBlbmFibGVkIChlbmFibGVfY291bnQgPiAwKSwgc28gaXQgd2lsbCBjYWxsIGFy
Y2hfZW50ZXJfbGF6eV9tbXVfbW9kZSgpLg0KQW5kIHRoZW4gdGhlIHRhc2sgcmVzdW1lcyBh
bmQgaXMgY2FsbGluZyBhcmNoX2VudGVyX2xhenlfbW11X21vZGUoKSBhbm90aGVyDQp0aW1l
Lg0KDQpUaGUgb25seSBjaGFuY2UgSSdtIHNlZWluZyB0byBhdm9pZCB0aGF0IHdvdWxkIGJl
IHRvIGRpc2FibGUgcHJlZW1wdGlvbg0KYXJvdW5kIGFsbCBpbnN0YW5jZXMgb2YgdGVzdGlu
ZyBhIGNvbmRpdGlvbiBhbmQgdGhlbiBlbmFibGluZyBvciBkaXNhYmxpbmcNCmxhenkgbW11
IG1vZGUuDQoNCg0KSnVlcmdlbg0K
--------------dgfJz710yWfdu8L0Ewpd6czF
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------dgfJz710yWfdu8L0Ewpd6czF--

--------------t3vC8SoGTWdPdMkfSJf5PH1L--

--------------RdDmWq5l0sPpSc0J9FZxrZu8
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmn9pG0FAwAAAAAACgkQsN6d1ii/Ey9g
qQgAk/1AEkTxbbY4W50dkPyk4rO4Znz1egQzLRfGWf8MdwqKG/p312vFx8ejSP+fYLf1o/I4ext/
NHUP4eT9eaxAZZeqrmgassxCGweu+QeT2fPVOdnPco8csi5bPjrscsWxfrjXEGpaVUwz4ud3nFYO
Nf3AtCv7puSfPftcS8XWr9EZpNBKXGeeDd5oLXrf5sEblW9XSjo4jKItIdSVVcCDB93lOzLQY/wz
fOAvLi6QPJRKpUhmZDpmkOLwU8fE2qVuVygPLXW7QGcZ38VX5IfhF8rU3DDa+f/BB/Mr0GhzxVaW
lFJOFBpBRuEdWU7E9/Qf3Wqyi1tODIhvmYzF0efwvQ==
=kqXH
-----END PGP SIGNATURE-----

--------------RdDmWq5l0sPpSc0J9FZxrZu8--


From xen-devel-bounces@lists.xenproject.org Fri May 08 09:08:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 09:08:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303324.1576771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLHCE-0007Qi-OR; Fri, 08 May 2026 09:08:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303324.1576771; Fri, 08 May 2026 09:08:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLHCE-0007Qb-Lo; Fri, 08 May 2026 09:08:34 +0000
Received: by outflank-mailman (input) for mailman id 1303324;
 Fri, 08 May 2026 09:08:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <kevin.brodsky@arm.com>) id 1wLHCD-0007QV-GS
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 09:08:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLHCA-00DoEb-SK
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 11:08:32 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <kevin.brodsky@arm.com>)
 id 69fda80b-5cb7-0a2a0a5109dd-0a2a450c8db8-10
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 11:08:31 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <kevin.brodsky@arm.com>)
 id 69fda80f-62f1-0a2a450c0019-d98c6eacc134-1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 11:08:31 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 56CD51AC1;
 Fri,  8 May 2026 02:08:25 -0700 (PDT)
Received: from [10.57.35.71] (unknown [10.57.35.71])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id F04523F7B4;
 Fri,  8 May 2026 02:08:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="Date:Subject:To:Cc:References:From:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778231310; bh=998AzUHkBd2MHjoPernwnRkOgC5TCEI3RLAhgvrlDps=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=WPh3yUoFMFj8+b6NrCFhAXEvHu9aundhUOnMwNWD2QHqLVB/wfS7QiwL+0BDpm4RF
	 NSMUNZAiTkWs+ukXKE7RyPNfyloPQoejZ2iApXnQrGF7MghSNxsyc0kXZ3cJwCG8wd
	 Yjtv0h4b+w7/JhHBBOSnR+TQIO25g+ipSooZj9r0=
Message-ID: <775a5fd2-394d-4409-81d3-4dc6ef8209f0@arm.com>
Date: Fri, 8 May 2026 11:08:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Fix lazy mmu handling across context switch
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 linux-kernel@vger.kernel.org, x86@kernel.org, linux-mm@kvack.org
Cc: mmarek@invisiblethingslab.com,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, Andrew Morton <akpm@linux-foundation.org>,
 David Hildenbrand <david@kernel.org>, Lorenzo Stoakes <ljs@kernel.org>,
 "Liam R. Howlett" <liam@infradead.org>, Vlastimil Babka <vbabka@kernel.org>,
 Mike Rapoport <rppt@kernel.org>, Suren Baghdasaryan <surenb@google.com>,
 Michal Hocko <mhocko@suse.com>, xen-devel@lists.xenproject.org
References: <20260508080514.454607-1-jgross@suse.com>
 <5cb54bd1-5981-4a46-9083-f7b527ca342f@suse.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <5cb54bd1-5981-4a46-9083-f7b527ca342f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1778231311-DA577CF5-7D136E2F/0/0
X-purgate-type: clean
X-purgate-size: 5656

On 08/05/2026 10:33, Jürgen Groß wrote:
> Please disregard this patch. It isn't fixing the real problem.

That's what I would expect, see below.

>
> On 08.05.26 10:05, Juergen Gross wrote:
>> The recent rework of mmu lazy mode has resulted in problems when
>> running as a Xen PV guest. Enabling lazy mmu mode for the new context
>> during context switch is done from the arch_end_context_switch() hook,
>> but when calling this hook current hasn't been changed yet, so the
>> lazy mmu mode state of the wrong task is modified.

Currently xen_end_context_switch() checks if next has lazy MMU mode
enabled and if so calls arch_enter_lazy_mmu_mode(), i.e.
enter_lazy(XEN_LAZY_MMU). This does *not* modify any task state, rather
it writes to the xen_lazy_mode percpu variable.

I've thought about this from various angles when reworking lazy MMU, and
the conclusion I made is that arch_{start,end}_context_switch() have no
reason to change any task state. On arm64, for instance, we do nothing
at all on context switching, since everything lazy MMU-related is
tracked in task_struct and therefore already switched.

Xen is trickier because it tracks lazy MMU/CPU state in a percpu
variable, so these hooks do need to do something about it. This is
entirely Xen-internal though, and there's no reason to be calling
generic functions like lazy_mmu_mode_pause() that modify task state.

The idea behind commit 291b3abed657 ("x86/xen: use lazy_mmu_state when
context-switching") is that TIF_LAZY_MMU_UPDATES now duplicates
lazy_mmu_state in task_struct and we can therefore replace the former
with the latter. More specifically, the assumption is that
TIF_LAZY_MMU_UPDATES is set if and only if the task has been scheduled
out and __task_lazy_mmu_mode_active(task) is true.

Clearly there is something wrong with this assumption, but I still can't
put my finger on it. For now I would suggest reverting this commit if
that solves the issue Marek reported; the intention was not to introduce
any functional change, but only a (minor) optimisation.

- Kevin

>>
>> Additionally it is much cleaner to use lazy_mmu_mode_pause() and
>> lazy_mmu_mode_resume() in the Xen context switch hooks, as it avoids
>> conditionals in those hooks.
>>
>> In order not having to add another hook to be called after switching
>> current, modify lazy_mmu_mode_resume() to use a new sub-function which
>> takes a task pointer as parameter. This new sub-function can then be
>> used in the xen_end_context_switch() hook.
>>
>> Fixes: 291b3abed657 ("x86/xen: use lazy_mmu_state when
>> context-switching")
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>> ---
>>   arch/x86/xen/enlighten_pv.c |  7 ++-----
>>   include/linux/pgtable.h     | 33 ++++++++++++++++++++++++---------
>>   2 files changed, 26 insertions(+), 14 deletions(-)
>>
>> diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
>> index ed2d7a3756ce..67bb6bf6d240 100644
>> --- a/arch/x86/xen/enlighten_pv.c
>> +++ b/arch/x86/xen/enlighten_pv.c
>> @@ -424,9 +424,7 @@ static void xen_start_context_switch(struct
>> task_struct *prev)
>>   {
>>       BUG_ON(preemptible());
>>   -    if (this_cpu_read(xen_lazy_mode) == XEN_LAZY_MMU) {
>> -        arch_leave_lazy_mmu_mode();
>> -    }
>> +    lazy_mmu_mode_pause();
>>       enter_lazy(XEN_LAZY_CPU);
>>   }
>>   @@ -436,8 +434,7 @@ static void xen_end_context_switch(struct
>> task_struct *next)
>>         xen_mc_flush();
>>       leave_lazy(XEN_LAZY_CPU);
>> -    if (__task_lazy_mmu_mode_active(next))
>> -        arch_enter_lazy_mmu_mode();
>> +    lazy_mmu_mode_resume_task(next);
>>   }
>>     static unsigned long xen_store_tr(void)
>> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
>> index cdd68ed3ae1a..83a099bf2038 100644
>> --- a/include/linux/pgtable.h
>> +++ b/include/linux/pgtable.h
>> @@ -326,6 +326,28 @@ static inline void lazy_mmu_mode_pause(void)
>>           arch_leave_lazy_mmu_mode();
>>   }
>>   +/**
>> + * lazy_mmu_mode_resume_task() - Resume the lazy MMU mode for a
>> specific task.
>> + *
>> + * Like lazy_mmu_mode_resume() below, but with a task specified.
>> + * Must be called only by lazy_mmu_mode_resume() or during context
>> switch.
>> + * Must never be called in interrupt context.
>> + *
>> + * Must match a call to lazy_mmu_mode_pause().
>> + *
>> + * Has no effect if called:
>> + * - While paused (inside another pause()/resume() pair)
>> + */
>> +static inline void lazy_mmu_mode_resume_task(struct task_struct *task)
>> +{
>> +    struct lazy_mmu_state *state = &task->lazy_mmu_state;
>> +
>> +    VM_WARN_ON_ONCE(state->pause_count == 0);
>> +
>> +    if (--state->pause_count == 0 && state->enable_count > 0)
>> +        arch_enter_lazy_mmu_mode();
>> +}
>> +
>>   /**
>>    * lazy_mmu_mode_resume() - Resume the lazy MMU mode.
>>    *
>> @@ -341,15 +363,8 @@ static inline void lazy_mmu_mode_pause(void)
>>    */
>>   static inline void lazy_mmu_mode_resume(void)
>>   {
>> -    struct lazy_mmu_state *state = &current->lazy_mmu_state;
>> -
>> -    if (in_interrupt())
>> -        return;
>> -
>> -    VM_WARN_ON_ONCE(state->pause_count == 0);
>> -
>> -    if (--state->pause_count == 0 && state->enable_count > 0)
>> -        arch_enter_lazy_mmu_mode();
>> +    if (!in_interrupt())
>> +        lazy_mmu_mode_resume_task(current);
>>   }
>>   #else
>>   static inline void lazy_mmu_mode_enable(void) {}
>


From xen-devel-bounces@lists.xenproject.org Fri May 08 09:09:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 09:09:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303330.1576781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLHDA-0007sz-1s; Fri, 08 May 2026 09:09:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303330.1576781; Fri, 08 May 2026 09:09:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLHD9-0007ss-Ui; Fri, 08 May 2026 09:09:31 +0000
Received: by outflank-mailman (input) for mailman id 1303330;
 Fri, 08 May 2026 09:09:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wLHD8-0007sk-CF
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 09:09:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLHD7-00C82r-C5
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 11:09:29 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fda836-bab6-0a2a0a5309dd-0a2a4501ed5a-44
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 11:09:29 +0200
Received: from [52.101.53.62]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69fda847-c1f2-0a2a45010019-3465353ec54c-4
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 11:09:29 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY1PR03MB7215.namprd03.prod.outlook.com (2603:10b6:a03:525::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May
 2026 09:09:25 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.019; Fri, 8 May 2026
 09:09:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KvlP9B/5AoQWV9M1n63ihAJ7UZu7nd1AnVZWEj7cWpcED07Tw7NHFmixIJNIeD5jbHklee0pVTg6StF4kEGHumSGUMy6CB2qGFqe4vsKbmvOpPoQEsWt9DBYCae/6mXrHBPwVhJehol5uvIKskmMbd4AvItKSOajMzpUknLRwiXDhLzEc3H/mGIyK66FH4IAuoPSm3xwUA/FshJe0UEKDieps5hG8q6U+0EaIL2vi1SXjPbQDxYxiT4/GfU4642V79itcWn29xtk2XQGNQQvJbrpRlsC2ODWCYtVQ+lMYwjcQHPYtWb8Shp4fLvOg/LdqLk9VrwwK052IwE52MX/uw==
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=xUVEHxrKR+eW3aGyNqw0ViTP/jQIYisrE+p6Ds940tQ=;
 b=o+266p+Zvl8rOwQHxrK36IEQHOVISP5Wzfc9jY+or0FU91hW4ZmGnm8jlDSDwhl3aPpD0GyoETTEHyjPj8twrmfeTx3OnzOuwJd7hXf20gkQEvzRL65eyBKIAZ8hnQdsgEtHqCp6RjlnVtbv/7YmMau8UzyEGO/9LOjX+3Jintc89tXbkcB7FeE0G+5dNhSKgl+M3fbxEXBSOczWv5p33C2uFCNZKE8ypk336IFKMofvUOXkq8IXAuAtROhjqRoZZj863B36XBiyQJH942NZmZ1XWvbU0RDPJP2LK1olYeJCA0Bi9PCXyo+xedLvOG2eYHivpA2FPEFk1YvqF+K9fw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xUVEHxrKR+eW3aGyNqw0ViTP/jQIYisrE+p6Ds940tQ=;
 b=h0xGq1tWL9vrMnjzkPZIziGhrBPopLsk6Vt7fhsyJ+VF918BXkPJJu+/7x8tDhVlAFAUYZV1cF3b3ZHhaBn7ZfWd4rOmFqwIJI1KNM2KJOPlY60O5qDWbomduqn6rqR6Vn+2p2fvJUst566FwZNliwl46TYBYAYBtH5mLa/Gcqk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH] x86/dom0: enable pf-fixup by default for PVH dom0
Date: Fri,  8 May 2026 11:09:11 +0200
Message-ID: <20260508090911.51941-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.53.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0032.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::10) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BY1PR03MB7215:EE_
X-MS-Office365-Filtering-Correlation-Id: d1cab7f5-bb98-46fc-e6ef-08deace17f2f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	ZTTaIVD5LJBF9qaotdjOLtMZi9r1e+cmvkKu49h2aJ4JmQkS4/UKmQdgNVf1l93wDQ6h+b+V2BqGZdGUm61kPDf8nXVE4EobSqyYMprkhTxrZEM/9eaBIuNn+oy+uxxRRbIUSGF0NwKKllIi+h80FmidF9mygttfPb5p9ZajzInwCEzdqmZbOxk933zkvWT50VPq99ekDDMn2P/ZSSXY62vOjKi6h1D25846MUKozqL275GX2+qne/1JSSeSRd25fOABKCsap+TmylkwtIIabJpmSTlgWjbHTktS6tnzekSqaiUecAH6Sr5ndd/m6rac6S8DH6PggAWJyCsZ8YVHOOBHZloE91Gag56GPQnLSw2+QlIEyUEjknPkcuaVvZKlIOv/fOxA9RvNK6ypJDNf2PSnDWAr6SWZJ59beUEpc4eHt0RShyiScgGpzOtjNQbRlwn9cveD4J2kDW8Mbk3k+HneM0CKzM6OOKaezcvDSL+4qHaH4wAaNF7Ej8KLpUERWMV2REiYnWrDkz3Z+D/9WUDatd84REXp2IN9VjUBu6/wET8r3OKIkG0b827/mYqzDaqlnwqvaA9/gKFehvFPIgLAgmlMeg+m7RQdd/8DbOZTYC/EA44Xqww0G28k4QtzoYSqfMcGUQgC87AcFCzONWJnZGBdL/X810eI1DtWmOQ5N41rel+/jYwnDbNe0YQf
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZENWWVl6blhibFhoYW1aR0RCSnVWYjc2QlUzSTQxQmYwUGl1UExKeTJWQXBD?=
 =?utf-8?B?WVFlQmUxME1xOUpLUDNyWnVCUmRVWWxRR2dtYlBsT25CNG9qSFV0VTVNQ3RV?=
 =?utf-8?B?empLTHh4bXhsUEJQUWJCQUo2VVBwclcyMTV3V21Mb3h1bnhsVkFvODFZRjdu?=
 =?utf-8?B?SVAxSWNMTzIwTWgwVWkxa2ljd2ZxVmNUdEJlaHNoRjF3TDQvYmlQZWswbkZx?=
 =?utf-8?B?b0JFejVmL3Q3Wkc4cWVPa2xvZ0pQUytKQm5BL1B2TUNzd0dqNngwWUYrZllY?=
 =?utf-8?B?cU5VS3dVaUd0WmlRTVN3VWZjYTAyNVk0Ynh0TDJtUjRHd1A2L3h4MzBwYTdD?=
 =?utf-8?B?SGJXVXUrUmRQRHVFQTdlb3puSk1YOEFlTVUzQ0prTTljbFFqRjhZd0k2UGgr?=
 =?utf-8?B?bDFSNFJreU55M0J1d2xURWdOZk5nN3U5UitSdFU0clUwQkhkR0QzbFNMd2sw?=
 =?utf-8?B?UlI4U3pxYVJoN2tmVXdQT1l4c0ZYK2JsU2FSTDVwU0dRby9yZnJhNTJOOTdX?=
 =?utf-8?B?ckRiNUtFbUlNUXcxYXRBUzA1UmlkVWxZU2FCT1ZndXgydWJwdERuRjFpc1Zi?=
 =?utf-8?B?RE1lYjVJN0syK2dWOXZrcXZ6YjV1dERId0lSNUpvNmRtR2FWcDIzOXVWV3c1?=
 =?utf-8?B?K25aU1pvcE9wYWlhd09tVWZlSmF6NTU4Z1JFZWJCdTRETWt4M25wd3dGRkV3?=
 =?utf-8?B?RERnY25iM242dmFQcTlUaCtNMWJWcm9YUklheU1yK2QyR0NaRnlBN2NUdWhw?=
 =?utf-8?B?Ynd6Qmg1emFRTDVkN1phempxcG5Oa3YvNUp0cnNNQkV2dmIzKy9Feldlb0ow?=
 =?utf-8?B?VWNqaDExZHc0ZDVmSzROY0ltS3dZNUpNNmJWWnlWckNKN2xQb0ZqYW1Xbm8v?=
 =?utf-8?B?Zk12UmtUQ2xLY2o2dXB5TFNRWDZnczVnV1FYK3BhV0VKaitsc0pQVzZiUTNx?=
 =?utf-8?B?RWdxYi9tUDhhTGg4djFSbTEveHJiNkRvNlVFTDBVRnNHZ3BOSDFBQzJ2blVt?=
 =?utf-8?B?Z2xoZ2RDUHNUSzFTUW02OUJCYVVXWm9ILzZzd2JIMXVvLzF0L1dkVVNmTVNp?=
 =?utf-8?B?SXN0WHFXdnRpRGJqY2Q0cnVoL0pQK0d2UHl5ait6YmFGeWc2T2x4ZGVsTkxx?=
 =?utf-8?B?OG1UUkZSWUtsTENSdzVacXdUcFVxeGJ2OS9JYWlFMkJjbitXcnJMY2hGQW9o?=
 =?utf-8?B?TDM3NTluYXFpdUdKWmZKTy9XZDlQVlZMYUxwMGYyN2VFQzdqR1JhbEFyU3k0?=
 =?utf-8?B?U1FmT0R1ZVVPNlVoNmF1Z0J1amlmeklvZkROOU9za0xiWlQvRjE0K2pNQThC?=
 =?utf-8?B?N3lRSEFkRFltUlNhSzhpUk43ZHRnT3BsOXFHd2YxS0hONUx3eHVOVSttdnNV?=
 =?utf-8?B?aFU0M2ZnQjU3YzBHQ2R3d3RIbklLNlFDQjc5Z0NnRzVEM3ppZ20wdjZ3b0Jo?=
 =?utf-8?B?cHJJMithQUlwMXhKVkd4TWhsc09GN294RllVaWd3RU93Ylp3ai8xNlFkNDMv?=
 =?utf-8?B?TTJvOTF5ZUtYQndiRmQ4YWRacFV0bUtKL2FWeEVvRW90SWVYeFhIMWFWOVRV?=
 =?utf-8?B?bXREYm5HN0lNaUtlU2FrSmF0cW96L2QzYXRkaUhzV2VwdGdzVG9qQi9CT2wy?=
 =?utf-8?B?M0FrRUxYWVZlYUc0Y0ZnTUhQRVJrV0E3RGtXWWtxQzk4MGZMa2RWZndnOHNu?=
 =?utf-8?B?aGg0dWdMZExXNWVXNVg4OFBxdGlyaXQ3bGhobTV5WXp1aDVpVENyMDR1Rzdm?=
 =?utf-8?B?djU2akdOOFpyN1NwSVU2R0xsbDM3WG53MWlWSlRybkdpcG4xb3E4MkpKZStu?=
 =?utf-8?B?d1UyNWJYUWFJUG02NTF4NFBYVWNGUzhKcGpHamF5bmIxUHpqVklVTzV1Snpr?=
 =?utf-8?B?cXhzd01qM2hHZFp0RmZtZDg2eCtXbjhTbGZZc3JoblR5ZTFVOVR4L1RQbGFa?=
 =?utf-8?B?QXRjbEl4VXI2b1F2RG1TZ3F6SjNOazJaWEFlVGxXZnVQYXJqTm5OeHRoTkw2?=
 =?utf-8?B?cXJFNFBxK2x6ZHlFSWtSbHBPM05hQURtb0NqWndHdjg5c1p6WmNnZ3M2U2ZZ?=
 =?utf-8?B?b0RXQkhwTnBxOVU0dy94enlCOEVoZFI2TkZFOFIvK3BEa3hZTk5GcllZVTFS?=
 =?utf-8?B?VHhwQ2lzVEIxak95NDlJOWtZd21nM3ZFT0hvblJLVVRicEdTQXVudGFaMGJO?=
 =?utf-8?B?VTFhWERTNkVzN09VcS85Y3ppNzRUSTZmcHpzRzJqcnI2Q0NWUFRJdnpjWkFx?=
 =?utf-8?B?ZFBCN3FiZXFpTGR2eUJNS204RnVNaFdjL3J3ZTIyb2VMSVhUek1IcnRXZXho?=
 =?utf-8?B?MlVwdVk3Zm1rTjZwTm4rNUp4T2RwTmdaTkFKVDcwbDhEcXpLZkY2QT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d1cab7f5-bb98-46fc-e6ef-08deace17f2f
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 09:09:23.6941
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: g8ioCH66zNAMK+efwPWUw/h3ZUKspJg+C7HYpn7lKGZ6vn8Hsr21R551PzUblRs9Jn3DOuqUlgxCAGJ+8MRO4A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7215
X-purgate-ID: tlsNG-d62444/1778231369-B474CFF4-11E0AE1B/0/0
X-purgate-type: clean
X-purgate-size: 1581

A non-trivial amount of issues related to PVH dom0 are fixed by enabling
the `pf-fixup` command line option, and no issues have been reported as a
result of its usage.  Enable the option by default to make PVH dom0 more
robust in its default configuration.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 docs/misc/xen-command-line.pandoc | 2 +-
 xen/arch/x86/hvm/emulate.c        | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 6c77129732bf..0cbac1093928 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -849,7 +849,7 @@ Controls for how dom0 is constructed on x86 systems.
     If using this option is necessary to fix an issue, please report a bug.
 
 *   The `pf-fixup` boolean is only applicable when using a PVH dom0 and
-    defaults to false.
+    defaults to true.
 
     When running dom0 in PVH mode the dom0 kernel has no way to map MMIO
     regions into its physical memory map, such mode relies on Xen dom0 builder
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index f3aae158e9f8..bb1bb03ac4e9 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -165,7 +165,7 @@ void hvmemul_cancel(struct vcpu *v)
     hvmemul_cache_disable(v);
 }
 
-bool __ro_after_init opt_dom0_pf_fixup;
+bool __ro_after_init opt_dom0_pf_fixup = true;
 static int hwdom_fixup_p2m(paddr_t addr)
 {
     unsigned long gfn = paddr_to_pfn(addr);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 09:24:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 09:24:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303348.1576789 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLHRu-0002Op-7U; Fri, 08 May 2026 09:24:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303348.1576789; Fri, 08 May 2026 09:24:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLHRu-0002Oi-4s; Fri, 08 May 2026 09:24:46 +0000
Received: by outflank-mailman (input) for mailman id 1303348;
 Fri, 08 May 2026 09:24:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wLHRs-0002Oc-Sh
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 09:24:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLHRs-00Fj5r-6F
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 11:24:44 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fdabcd-bab6-0a2a0a5309dd-0a2a4507b618-40
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 11:24:44 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fdabdb-229c-0a2a45070019-d155802ded17-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 11:24:44 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-4891e86fabeso21621865e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 02:24:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e642ee666sm19427055e9.2.2026.05.08.02.24.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 May 2026 02:24:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778232283; x=1778837083; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NAkSijsZyggTaS2S6eK+VIWGLJ44KjDE3vvVP71h/lg=;
        b=IdV/RaPLJcbAuTy+cH/GPUk8KTE05d4qcTNWlua/ogwPLhU1PGnliyKemiCkDXC+d3
         TOeOj/e4RhSiYZbmQ6tt6nY8r0nJIqm7QoTYboYOGul/Lr9fejyr8VM552IgrBZxZgni
         /D/A3iPoDNhcmYBzN3lpSBWfB8o8A8bHvQGwly8YX5GQKaUtCaiKt4Rpla3IbCn5t9sq
         qGzQDkATL2xjR4ABl1fJVKs3Fe0uy4hfI4eLNNqhfNrZs0Pq8glH2poSNiQeTUJEVtoo
         3/WrcYOP3lzI3Q2I3+2DcMyHN+dpw4E8AchTtWlF4YAru4ZHU/Ptod6G/G52sKxWnq/I
         dGMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778232283; x=1778837083;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NAkSijsZyggTaS2S6eK+VIWGLJ44KjDE3vvVP71h/lg=;
        b=bpz5+bKDVHg1lLdx1fKgY3YQ9lbn15bjKcUw774gnMDSDi2GkgCaW3aFnMP2UN0YQq
         kgPFTD87ILnKyX+0unskJZpBSbmEBWpNcI6bzwbqLlRU3J2nMsduWV+iSrTf+oCel2EQ
         Bk1NFin7SYmlOkXetu3lbwzQB9Y0RWDfHNbNGxd4Gelwg+vV2mVqrTNJtiT/GG6bE1I4
         wJee1Gb+vM3OczyDoddTeXu983fV8yhAydoH1+ZxTV8iPuHz8e2D2JXQ7WhcXVdPH754
         gKIk8QUBhKYXubOwLaxj0Fit8XCDzdn4WmsIGecNbVGl6eYaljPWh6x4slrMYsqt1clz
         s1uQ==
X-Forwarded-Encrypted: i=1; AFNElJ+kpIt3L15wxFhA9VnfevgVAdbEEg+tjdkI3xWwUA+Br6sQ8zXajbRtTYtLWCyVWK06UTu8OV2QnGg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzxCAzCuIAg/SPlq0ZHn/ESN5/7FxqIJApFFZDeqYB+R45L7X1t
	ihewuLMY0EPNXy0EWyp6uoNkLFvu+Qy343uSoqishDyk7lue0cX7PXN6WL+dS0i5mQ==
X-Gm-Gg: AeBDiet8UqKlxxHjkTcyxL9l8+9beikTPn4g6xRh4AqxeV7FiA11RkoGhkTBMgQEA6d
	/UWVkQvKnbcObwZwSiaSTx8YOdjLQd9irBkNYFr6e7XmNdgG1+ivkIzOmxa/XD0Y9T1Q9wLoej9
	7vOx3XauIyVBcYCI9yhrsFEXuS5xQTgPuDpJhd57//Ph87is7luBkekUZBQ+zx/vbzmEhZ1hPl0
	19Gqf0hI/LYyf8FbQ1fklC2hhXCwohBSGLczTbJ8ZdFDYuktf5+6S4ee/FMmpwE6hWOijVfbIMJ
	BcCACKKHTOH5fuovqp6LA9D5DeEc01rkCdtEMi9cZnGY73H7Bk9BlCLiOuFUUQCh0EwONdr9L1L
	3j3pwjrPk4fwetm6KqLSPJHlnROnUx6cbVGBnaDTKPiG88gVpWrb8SabEydo9oAvhvVj75pT6Dk
	NmUwxqbsUU1T4CvxUs1KIJC5hbTEpaabbrnVtD+2WZFvHQfpaLBgohM5q1id00+zNZgnJ2ZI0RT
	q4/HEm7i9WxIBU=
X-Received: by 2002:a05:600c:1d18:b0:488:78f2:6b0 with SMTP id 5b1f17b1804b1-48e51f41b9cmr178781265e9.29.1778232282984;
        Fri, 08 May 2026 02:24:42 -0700 (PDT)
Message-ID: <b2e232f2-1b15-473b-aeab-22c54553149a@suse.com>
Date: Fri, 8 May 2026 11:24:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/dom0: enable pf-fixup by default for PVH dom0
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <20260508090911.51941-1-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260508090911.51941-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778232284-23F7EC48-252E3F46/0/0
X-purgate-type: clean
X-purgate-size: 894

On 08.05.2026 11:09, Roger Pau Monne wrote:
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -849,7 +849,7 @@ Controls for how dom0 is constructed on x86 systems.
>      If using this option is necessary to fix an issue, please report a bug.
>  
>  *   The `pf-fixup` boolean is only applicable when using a PVH dom0 and
> -    defaults to false.
> +    defaults to true.
>  
>      When running dom0 in PVH mode the dom0 kernel has no way to map MMIO
>      regions into its physical memory map, such mode relies on Xen dom0 builder

While this paragraph is okay to keep as is, imo the last paragraph concerning
this option would want re-wording to reflect the changed default. Plus, as
indicated on Matrix, add a hint that people needing to use this option (in its
negative form) should report that fact (and relevant details).

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 08 09:28:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 09:28:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303359.1576800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLHVl-00039f-Nz; Fri, 08 May 2026 09:28:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303359.1576800; Fri, 08 May 2026 09:28:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLHVl-00039Y-Jl; Fri, 08 May 2026 09:28:45 +0000
Received: by outflank-mailman (input) for mailman id 1303359;
 Fri, 08 May 2026 09:28:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Zhao.Jiaqing@amd.com>) id 1wLHVk-00039S-AP
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 09:28:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLHVj-002LOd-NM
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 11:28:43 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Zhao.Jiaqing@amd.com>)
 id 69fdacca-bab6-0a2a0a5309dd-0a2a4509b016-4
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 11:28:43 +0200
Received: from [52.101.201.48]
 (helo=PH7PR06CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Zhao.Jiaqing@amd.com>)
 id 69fdacc9-2497-0a2a45090019-3465c930fda9-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 11:28:42 +0200
Received: from BLAPR03CA0104.namprd03.prod.outlook.com (2603:10b6:208:32a::19)
 by SJ0PR12MB6757.namprd12.prod.outlook.com (2603:10b6:a03:449::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.18; Fri, 8 May
 2026 09:28:37 +0000
Received: from BL02EPF00029929.namprd02.prod.outlook.com
 (2603:10b6:208:32a:cafe::45) by BLAPR03CA0104.outlook.office365.com
 (2603:10b6:208:32a::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.19 via Frontend Transport; Fri,
 8 May 2026 09:28:36 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF00029929.mail.protection.outlook.com (10.167.249.54) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9891.9 via Frontend Transport; Fri, 8 May 2026 09:28:36 +0000
Received: from zjiaqing-dev.amd.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 8 May
 2026 04:28:33 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lX1bkv41nSeUeAqDtc1yZvbYPAovh4xwv2ncUM8yQHeKVYpWKHH0b0qBkWT5YJH2z019TjQiVbQfGvOyZ2zAN+CS5apcRNH5J/4PYYai3SjMg1BERoGGxZUoQq729gPGKxtz5TOWxmvKmWPEdgR3AYlCVTwtn9DTgyjtjm3KRj/jyy0e7vyK3k980GL9IKkU+TLjLCDxsMcbd2kgiUbDOvfXEsUGrxmOKB3zLtQ+yXUZhzfZhc9mS1afp1weGuqyGytuLWYQpQxs3tT9qr4NBURkAJTY4EzXUHKd0/O3cSIwRZtNiQyXixpuTAbZ9utjU67CQVhN2sNDylmNumA7Fw==
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=mzsn+T6QcTRg8SadARBRoXIgAt0rLvZJPeWc0WTlDW8=;
 b=DnIaHAFouChlbQA6362It1LFvzxdoPfAg9qQAh2x+5mQHtPlwL8DIoHDfNIexR2Y3Gh9/R22Dd7kWZJXlRMVIzN4zxqST+EpkEMl5APSSizj6K4+wlyiEYYOi3fQGC9jkyHPKj/vKRCv5WJPRy8GOik/35qNFUDjobVzjtoxp2i6Kvgd2Ni1doS2uxagc/6pjklRiuQVjPZTmjkScIBfriFKfM+PtTj0w4HhWpefPk0Vk/9BMyWMjMZfhgh6ZSGFO4w5rPyByrkzjUDZeOxRCYzjMeHf4FCoPLmyo53OWF90Q8wHEyLazNhrTCcW3GVl1LT5GyXh3Lz0Ek2dxPnoEQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mzsn+T6QcTRg8SadARBRoXIgAt0rLvZJPeWc0WTlDW8=;
 b=yIFGe1cMpWbPOaJbftqZYxKOpTK5fQ6G4FbacoldvYKem75hme+wt1FBzmn4nov8npyBZ6qvWgJsD/qLm6W2eHrUbMqUFAxiiFI7FmsSZQwrAj6ZMle205J1KvaKYAZhpFWvDGdN31aHsbDJ1IooPRPwmzJS9CRbnknJ/xsaccc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
CC: Jiaqing Zhao <Zhao.Jiaqing@amd.com>, <xen-devel@lists.xenproject.org>
Subject: [PATCH] ns16550: add support for WCH CH382 serial adapters
Date: Fri, 8 May 2026 17:28:13 +0800
Message-ID: <20260508092813.12894-1-Zhao.Jiaqing@amd.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00029929:EE_|SJ0PR12MB6757:EE_
X-MS-Office365-Filtering-Correlation-Id: c84d6a3e-0779-4277-607e-08deace42e52
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700016|82310400026|13003099007|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	oz+zLRIPFVH5nvdoNTMbXpxLhYvxw1hy+Z1Z08wqCPrGxnMnfTffSgdGpJ0WHykVBep4gVMM6pgSPXtbHJLP1h5nGDddckAjkR3U7DVhS21m1SOmI6sNYc9QAn/zhRoQ4v7XP7AYjuycojAapX6ZC3qdiXued3cHCdUKiphCP7q5NH8oiSHqjQqDnNWK/RHY9DNliapu0Nk9aB5I8YH9y5+nIVHukVJPHp7ENCUp2o6DmSuvt4Ik9KJYWunm9qTJ+rt5ClgQDeGz6n0FInTB4hPaxUktMG1uMO0HVQjhvgLhhmi5a9bwqF5E3BY3vAjzfjAIX0jjUdx43lcvAjbG8W9m+evNzz6rZX3tGPwau3aXAEqTvW/98zqjJJ+3oqx6/eS5TIFftpa2xKera8qC7OgjKGu8vLNeEJeBdJ/KDXFxfxSEBgz0QdjLniX4rncRn3MNC6Exgx6x7lXQo0ho2nr3zVdRxYWHm1hAi1qxZHAYcrrgNyCyN+rNAWH+jiSAXAupYKecAQ6hghFNrHqASqFBAFyHg+ocgFqdBmVdUVrKL070hCIh2qFEORPinDCvBCMX2LOn7wHozeKdxWcyQZ4vc1h8TpvhQpdHyFCAf7bhsSBGzxwWjBTK3rsxQm4/I4MxsAwzAjGRX4NDtS62e2+Twq0aRzCRhEPrUfMWPmZ0LAQiIR3DW5iCmc7rlzPK
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700016)(82310400026)(13003099007)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Wrd/lXxcxUt8GqtMvYwuezfgdSRAUCUhu3IPvQpM9pox+GQU2QiXrJXQzQqE12wZNWFrEBoa3sMEcJ/7WdlwiVMa0MJrGk1eD6t4kBQmWTA3a9UbFNdBVbqKn8JUh5GxLURmUne0k7lAZbNu0jGunlvEwoT+Y3t5xbXkSEhDpm4cGmx26YJ96YyaJ+9XphYsc6PHl0e6Bp3EoCAt+g1Z0HUu+U5rPdhgXn2ys9gyE07PCb5kvQW2d5NMvk3MlyNt2km6/z7bit8IFsBPVHEqGcbBK9R15DMRa3pNMVJjeA8PURhTfJJnhMhi3/uxiPEo53kEpe8qudpaiLXED3SMOhKGzJE2Aqx1zPjj5Poed5m4DZ644Q+bcn9qhg4RDjbFYYoEWuXGMkKp0a+b7a5AboCOPHEZz/T+EhKWwz3bpypsnMU4uixuHlzToz8rQI3G
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 09:28:36.2423
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c84d6a3e-0779-4277-607e-08deace42e52
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00029929.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6757
X-purgate-ID: tlsNG-bad1c0/1778232523-40961A53-0421F3B0/0/0
X-purgate-type: clean
X-purgate-size: 2360

Add support for the WCH (Nanjing Qinheng Microelectronics Co., Ltd.)
CH382 PCIe dual port serial adapter. The CH382 is available in two
variants:
 - CH382 2S   [1c00:3253]: 2 serial ports
 - CH382 2S1P [1c00:3250]: 2 serial ports + 1 parallel port

This chip uses IO BAR0, base baud rate 115200, ports starting at offset
0xc0 and spaced 8 bytes apart, and a 256-byte FIFO. [1]

[1] https://www.wch-ic.com/downloads/CH382DS1_PDF.html

Signed-off-by: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
---
 xen/drivers/char/ns16550.c | 23 +++++++++++++++++++++++
 xen/include/xen/pci_ids.h  |  2 ++
 2 files changed, 25 insertions(+)

diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index 878da27f2e..106ef56316 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -95,6 +95,7 @@ struct ns16550_config {
         param_exar_xr17v354,
         param_exar_xr17v358,
         param_intel_lpss,
+        param_wch_ch382,
     } param;
 };
 
@@ -861,6 +862,16 @@ static const struct ns16550_config_param __initconst uart_param[] = {
         .mmio = 1,
         .max_ports = 1,
     },
+    [param_wch_ch382] = {
+        .base_baud = 115200,
+        .first_offset = 0xc0,
+        .uart_offset = 8,
+        .reg_width = 1,
+        .fifo_size = 256,
+        .lsr_mask = UART_LSR_THRE,
+        .bar0 = 1,
+        .max_ports = 2,
+    },
 };
 
 static const struct ns16550_config __initconst uart_config[] =
@@ -1189,6 +1200,18 @@ static const struct ns16550_config __initconst uart_config[] =
         .dev_id = 0x7adc,
         .param = param_intel_lpss
     },
+    /* WCH CH382 2S */
+    {
+        .vendor_id = PCI_VENDOR_ID_WCH,
+        .dev_id = 0x3253,
+        .param = param_wch_ch382
+    },
+    /* WCH CH382 2S1P */
+    {
+        .vendor_id = PCI_VENDOR_ID_WCH,
+        .dev_id = 0x3250,
+        .param = param_wch_ch382
+    },
 };
 
 static int __init
diff --git a/xen/include/xen/pci_ids.h b/xen/include/xen/pci_ids.h
index 5884a20b8f..b8316d464c 100644
--- a/xen/include/xen/pci_ids.h
+++ b/xen/include/xen/pci_ids.h
@@ -13,6 +13,8 @@
 
 #define PCI_VENDOR_ID_BROADCOM           0x14e4
 
+#define PCI_VENDOR_ID_WCH                0x1c00
+
 #define PCI_VENDOR_ID_INTEL              0x8086
 
 #endif /* XEN_PCI_IDS_H */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 09:30:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 09:30:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303368.1576809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLHXL-0004fb-4w; Fri, 08 May 2026 09:30:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303368.1576809; Fri, 08 May 2026 09:30:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLHXL-0004fU-19; Fri, 08 May 2026 09:30:23 +0000
Received: by outflank-mailman (input) for mailman id 1303368;
 Fri, 08 May 2026 09:30:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <kevin.brodsky@arm.com>) id 1wLHXJ-0004fM-GG
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 09:30:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLHXI-00FGeQ-Ia
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 11:30:20 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <kevin.brodsky@arm.com>)
 id 69fdad28-bab6-0a2a0a5309dd-0a2a450ae118-24
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 11:30:20 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <kevin.brodsky@arm.com>)
 id 69fdad2b-56b3-0a2a450a0019-d98c6eacea1a-1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 11:30:19 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 9BF1E1BCA;
 Fri,  8 May 2026 02:30:13 -0700 (PDT)
Received: from [10.57.35.71] (unknown [10.57.35.71])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 74F673F7B4;
 Fri,  8 May 2026 02:30:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="Date:Subject:From:To:Cc:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778232618; bh=s8DdICLhnj/DfQCudkc982W5x6Y5k2ODjetxBBj7jzQ=;
	h=Date:Subject:From:To:Cc:References:In-Reply-To:From;
	b=pGosNmLKXsFDpqHZ2v4awPO7R4BJLnRLDFG6QTRmbEy3znEuuSjWSCNr806Eg77XW
	 R4Pa91NJ76pjBXYmMgu74Gf4TW14vrW4noSoTnyMABnH9Ok6XcDP2lWnraI7HJAZZR
	 0y//lSeZUixyJS7TWw3LdVRkiS9PDk3gQcxwKXMg=
Message-ID: <f9790dd2-b398-465f-908b-bf1a446f9ff2@arm.com>
Date: Fri, 8 May 2026 11:30:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Fix lazy mmu handling across context switch
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 linux-kernel@vger.kernel.org, x86@kernel.org, linux-mm@kvack.org
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, Andrew Morton <akpm@linux-foundation.org>,
 David Hildenbrand <david@kernel.org>, Lorenzo Stoakes <ljs@kernel.org>,
 "Liam R. Howlett" <liam@infradead.org>, Vlastimil Babka <vbabka@kernel.org>,
 Mike Rapoport <rppt@kernel.org>, Suren Baghdasaryan <surenb@google.com>,
 Michal Hocko <mhocko@suse.com>, xen-devel@lists.xenproject.org,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20260508080514.454607-1-jgross@suse.com>
 <5cb54bd1-5981-4a46-9083-f7b527ca342f@suse.com>
 <775a5fd2-394d-4409-81d3-4dc6ef8209f0@arm.com>
Content-Language: en-GB
In-Reply-To: <775a5fd2-394d-4409-81d3-4dc6ef8209f0@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778232620-7E38D8B7-8099C4C2/0/0
X-purgate-type: clean
X-purgate-size: 5884

+ Marek (the wrong address was in Cc)

On 08/05/2026 11:08, Kevin Brodsky wrote:
> On 08/05/2026 10:33, Jürgen Groß wrote:
>> Please disregard this patch. It isn't fixing the real problem.
> That's what I would expect, see below.
>
>> On 08.05.26 10:05, Juergen Gross wrote:
>>> The recent rework of mmu lazy mode has resulted in problems when
>>> running as a Xen PV guest. Enabling lazy mmu mode for the new context
>>> during context switch is done from the arch_end_context_switch() hook,
>>> but when calling this hook current hasn't been changed yet, so the
>>> lazy mmu mode state of the wrong task is modified.
> Currently xen_end_context_switch() checks if next has lazy MMU mode
> enabled and if so calls arch_enter_lazy_mmu_mode(), i.e.
> enter_lazy(XEN_LAZY_MMU). This does *not* modify any task state, rather
> it writes to the xen_lazy_mode percpu variable.
>
> I've thought about this from various angles when reworking lazy MMU, and
> the conclusion I made is that arch_{start,end}_context_switch() have no
> reason to change any task state. On arm64, for instance, we do nothing
> at all on context switching, since everything lazy MMU-related is
> tracked in task_struct and therefore already switched.
>
> Xen is trickier because it tracks lazy MMU/CPU state in a percpu
> variable, so these hooks do need to do something about it. This is
> entirely Xen-internal though, and there's no reason to be calling
> generic functions like lazy_mmu_mode_pause() that modify task state.
>
> The idea behind commit 291b3abed657 ("x86/xen: use lazy_mmu_state when
> context-switching") is that TIF_LAZY_MMU_UPDATES now duplicates
> lazy_mmu_state in task_struct and we can therefore replace the former
> with the latter. More specifically, the assumption is that
> TIF_LAZY_MMU_UPDATES is set if and only if the task has been scheduled
> out and __task_lazy_mmu_mode_active(task) is true.
>
> Clearly there is something wrong with this assumption, but I still can't
> put my finger on it. For now I would suggest reverting this commit if
> that solves the issue Marek reported; the intention was not to introduce
> any functional change, but only a (minor) optimisation.
>
> - Kevin
>
>>> Additionally it is much cleaner to use lazy_mmu_mode_pause() and
>>> lazy_mmu_mode_resume() in the Xen context switch hooks, as it avoids
>>> conditionals in those hooks.
>>>
>>> In order not having to add another hook to be called after switching
>>> current, modify lazy_mmu_mode_resume() to use a new sub-function which
>>> takes a task pointer as parameter. This new sub-function can then be
>>> used in the xen_end_context_switch() hook.
>>>
>>> Fixes: 291b3abed657 ("x86/xen: use lazy_mmu_state when
>>> context-switching")
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>> ---
>>>   arch/x86/xen/enlighten_pv.c |  7 ++-----
>>>   include/linux/pgtable.h     | 33 ++++++++++++++++++++++++---------
>>>   2 files changed, 26 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
>>> index ed2d7a3756ce..67bb6bf6d240 100644
>>> --- a/arch/x86/xen/enlighten_pv.c
>>> +++ b/arch/x86/xen/enlighten_pv.c
>>> @@ -424,9 +424,7 @@ static void xen_start_context_switch(struct
>>> task_struct *prev)
>>>   {
>>>       BUG_ON(preemptible());
>>>   -    if (this_cpu_read(xen_lazy_mode) == XEN_LAZY_MMU) {
>>> -        arch_leave_lazy_mmu_mode();
>>> -    }
>>> +    lazy_mmu_mode_pause();
>>>       enter_lazy(XEN_LAZY_CPU);
>>>   }
>>>   @@ -436,8 +434,7 @@ static void xen_end_context_switch(struct
>>> task_struct *next)
>>>         xen_mc_flush();
>>>       leave_lazy(XEN_LAZY_CPU);
>>> -    if (__task_lazy_mmu_mode_active(next))
>>> -        arch_enter_lazy_mmu_mode();
>>> +    lazy_mmu_mode_resume_task(next);
>>>   }
>>>     static unsigned long xen_store_tr(void)
>>> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
>>> index cdd68ed3ae1a..83a099bf2038 100644
>>> --- a/include/linux/pgtable.h
>>> +++ b/include/linux/pgtable.h
>>> @@ -326,6 +326,28 @@ static inline void lazy_mmu_mode_pause(void)
>>>           arch_leave_lazy_mmu_mode();
>>>   }
>>>   +/**
>>> + * lazy_mmu_mode_resume_task() - Resume the lazy MMU mode for a
>>> specific task.
>>> + *
>>> + * Like lazy_mmu_mode_resume() below, but with a task specified.
>>> + * Must be called only by lazy_mmu_mode_resume() or during context
>>> switch.
>>> + * Must never be called in interrupt context.
>>> + *
>>> + * Must match a call to lazy_mmu_mode_pause().
>>> + *
>>> + * Has no effect if called:
>>> + * - While paused (inside another pause()/resume() pair)
>>> + */
>>> +static inline void lazy_mmu_mode_resume_task(struct task_struct *task)
>>> +{
>>> +    struct lazy_mmu_state *state = &task->lazy_mmu_state;
>>> +
>>> +    VM_WARN_ON_ONCE(state->pause_count == 0);
>>> +
>>> +    if (--state->pause_count == 0 && state->enable_count > 0)
>>> +        arch_enter_lazy_mmu_mode();
>>> +}
>>> +
>>>   /**
>>>    * lazy_mmu_mode_resume() - Resume the lazy MMU mode.
>>>    *
>>> @@ -341,15 +363,8 @@ static inline void lazy_mmu_mode_pause(void)
>>>    */
>>>   static inline void lazy_mmu_mode_resume(void)
>>>   {
>>> -    struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>> -
>>> -    if (in_interrupt())
>>> -        return;
>>> -
>>> -    VM_WARN_ON_ONCE(state->pause_count == 0);
>>> -
>>> -    if (--state->pause_count == 0 && state->enable_count > 0)
>>> -        arch_enter_lazy_mmu_mode();
>>> +    if (!in_interrupt())
>>> +        lazy_mmu_mode_resume_task(current);
>>>   }
>>>   #else
>>>   static inline void lazy_mmu_mode_enable(void) {}


From xen-devel-bounces@lists.xenproject.org Fri May 08 09:54:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 09:54:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303391.1576817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLHua-0007rf-VP; Fri, 08 May 2026 09:54:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303391.1576817; Fri, 08 May 2026 09:54:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLHua-0007rY-RU; Fri, 08 May 2026 09:54:24 +0000
Received: by outflank-mailman (input) for mailman id 1303391;
 Fri, 08 May 2026 09:54:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <kevin.brodsky@arm.com>) id 1wLHuZ-0007rS-Ke
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 09:54:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLHuZ-00FKkc-1O
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 11:54:23 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <kevin.brodsky@arm.com>)
 id 69fdb2b9-2eae-0a2a0a5409dd-0a2a450cbdaa-36
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 11:54:22 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <kevin.brodsky@arm.com>)
 id 69fdb2ce-62f1-0a2a450c0019-d98c6eacc006-1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 11:54:22 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 53F741BCA;
 Fri,  8 May 2026 02:54:16 -0700 (PDT)
Received: from [10.57.35.71] (unknown [10.57.35.71])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6A97A3F836;
 Fri,  8 May 2026 02:54:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="Date:Subject:To:Cc:References:From:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778234061; bh=UKXz8qe6CYYl8KXHQkBSeLcEXveBk25zWF0FLtT+yKE=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=Ut8+a+EPP3X/dGPsnJmH2XWvwOLX3QKyFPxb/dXyfTZ15exwUseKgJi4fk74OstOH
	 MTTVJGJv2XIha/tcFrEOG6KBdbcohMz6tRbsgYxppTIqOXj65xlm7yD4toUkI5IznK
	 dFuDW1ZHsf/TF0D6F/GH2OqG/w7Bu4yxSVWkVolQ=
Message-ID: <7f123733-2ec2-436e-bb0c-67b3e9f80735@arm.com>
Date: Fri, 8 May 2026 11:54:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1
To: Juergen Gross <jgross@suse.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
References: <aaBH3EAchUwKhrUA@mail-itl>
 <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@citrix.com>
 <c712c06f-7fcf-4876-b2d7-f2b7bc6f0dea@suse.com> <adIuP7-sNwuOid80@mail-itl>
 <5d068304-837d-4aef-b8a7-87c91ccf96b4@arm.com>
 <c6855bd1-5b41-470b-8942-a4ebe3b5de0b@suse.com>
 <15645d19-f19d-4955-8315-0188aa834eb6@suse.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <15645d19-f19d-4955-8315-0188aa834eb6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1778234062-E0D63CF5-133CD4DB/0/0
X-purgate-type: clean
X-purgate-size: 2334

On 08/05/2026 10:53, Juergen Gross wrote:
> [...]
>
> But now I think I have found the real culprit in lazy_mmu_mode_enable():
>
> static inline void lazy_mmu_mode_enable(void)
> {
>         struct lazy_mmu_state *state = &current->lazy_mmu_state;
>
>         if (in_interrupt() || state->pause_count > 0)
>                 return;
>
>         VM_WARN_ON_ONCE(state->enable_count == U8_MAX);
>
>         if (state->enable_count++ == 0)
>                 arch_enter_lazy_mmu_mode();
> }
>
> Consider a preemption just before calling arch_enter_lazy_mmu_mode(). The
> enable_count will be 1 now, but there was no switch to lazy mode yet.
>
> When the task becomes active again, context switch handling will see lazy
> mode enabled (enable_count > 0), so it will call
> arch_enter_lazy_mmu_mode().
> And then the task resumes and is calling arch_enter_lazy_mmu_mode()
> another
> time.

Agreed, this must be the problem. I did wonder whether the lack of
atomicity would cause trouble...

arm64 isn't impacted because it tracks related state in task_struct
only. powerpc and sparc do use percpu variables but that shouldn't
matter as they disable preemption in the entire lazy MMU section.

>
> The only chance I'm seeing to avoid that would be to disable preemption
> around all instances of testing a condition and then enabling or
> disabling
> lazy mmu mode.

I don't immediately see why we would need such a big hammer. If we
revert commit 291b3abed657 ("x86/xen: use lazy_mmu_state when
context-switching"), then arch_{start,end}_context_switch() should once
again do the right thing for Xen since the TIF_LAZY_MMU_UPDATES flag is
separate from lazy_mmu_state. I think it looks like this:

lazy_mmu_mode_enable()
    state->enable_count++
    <PREEMPT>
        arch_start_context_switch() 
            xen_lazy_mode == XEN_LAZY_NONE -> do nothing
        
        <other task runs; this task is scheduled again>

        arch_end_context_switch() 
            TIF_LAZY_MMU_UPDATES not set -> do nothing

        <exception return>
    enter_lazy(XEN_LAZY_MMU)

Nothing else should be checking lazy MMU state during the context switch.

Does that make sense?

- Kevin


From xen-devel-bounces@lists.xenproject.org Fri May 08 10:09:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 10:09:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303408.1576826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLI9Y-0001bM-7V; Fri, 08 May 2026 10:09:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303408.1576826; Fri, 08 May 2026 10:09:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLI9Y-0001bF-4C; Fri, 08 May 2026 10:09:52 +0000
Received: by outflank-mailman (input) for mailman id 1303408;
 Fri, 08 May 2026 10:09:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wLI9W-0001as-BF
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 10:09:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLI9V-00Frqh-HL
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 12:09:49 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69fdb66b-bab6-0a2a0a5309dd-0a2a4507a360-14
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 12:09:49 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69fdb66d-229c-0a2a45070019-d155802ee0ee-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 12:09:49 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-488b0e1b870so28688905e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 03:09:49 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e65e12377sm14863435e9.36.2026.05.08.03.09.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 May 2026 03:09:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778234989; x=1778839789; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=uQwSl3R4nXFNL7ClDWXNfUv0g3gRW2eDyLxi6h6ENEo=;
        b=LxsD5N/C5vqlQuIRGCX4t/3TayzBqxMS+JHjuR5mJ8veeET8KKK9guHun5Unfy8Q8h
         sisOnG/llw9SOXfUPakTE346ZZ6M4q0KuS2iNnFhN++jSAq6+0t19t4orr9XGaBrhCEB
         NdLzJoa3II7yEv/H+hv/e2ol9BxzGX9AsWSOAN737Zv54vdpYMz1wXC6VEQUdL8dlWre
         99H91jlk/q/AdmIWtF4FCih86YGkDpYZX380fOrkV4JeNHm+t/g1KrEF2PEklV4pQMt9
         NRX8KIowoiTsJFzq+fu0cOhxAv+6O9OuL3MUhUSxxagejftQfLoGmaThd42o25/QYFW0
         tmOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778234989; x=1778839789;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=uQwSl3R4nXFNL7ClDWXNfUv0g3gRW2eDyLxi6h6ENEo=;
        b=lrovrgMelEXIYsR1fJX9Luk1iR62nu/Vmg9jvpiWoGw7gacILcItXBju3R7CuiN0cm
         HKTPOO4q1CEFvbJx/OKVQtIIiVMM5pRHmHe5RMG8aiz+vsUi5djwTdL1ynRLjkqz3yp4
         uub5Var+k3Ks70gGmUAAvnQc0UGRKkzTl1dJDQv71SqQBwYyCKDQrs94uPJ5v9KTeqAJ
         tISmXzekQI1FFCnyDeUFIX2maxVrC29pFSKZxrNiS4Uaga4H8g2BFU/Jv0wddYOkWq8b
         R+gKkMsgutIPJ4XDGqrAky4e4jiMnBeTG0X4E76V9BqVFwqZsQiK/0Kf5qjO3awMMc4L
         ZdJg==
X-Forwarded-Encrypted: i=1; AFNElJ+ch/cd0rQrXcDYGySFOeggAOlqBv+bD5dsolhz8WD4pj0l7ZK4G5CfcHq4TRV/FCQ2ekVFBk57FSk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxjZ/VQ4q47whKUIpBMp5tPsMKC4X2wZqVLv9DVbzYq1yvhknVz
	Aa3DgRJmE/1i0lnkz4c3+ACL8ZoZVdEFOeSqoWDU2BKIih5uf6S4Q37JwwjSYNjtjo0=
X-Gm-Gg: AeBDieseHgm+L+phNLJ6V9747Rkzr1gMpxmO356frf613XofWq+ravVJ11pX80KUBpx
	Tbyd7Pni5gU5x0YQszHYFDENUJiAVu6SGL20HbQ5W+AliXP0Nciy0bsrBq3b6dprelzp0m62YCm
	gKs2ousFmyIMu+zT3sJ71AF6d1ZuusI9ot32y/gpIsU1yAibSqOBTGawsJgN3/Gwt3pbDVzKynP
	xedYgdTUAhjg8IphHAxVq8vFdofUrusN9E5FhV92XiPgdcXsS0tLT/bRnTaYwiBKZb4dQ+BP0v2
	rY/ckqwYyKToygpukUmMSU3OIDZm/fD7z2ElL2RP51zOIUbLZT4fXYL9HsP7jK1QNp4l92gghQk
	fF/LtdU7PijPE0qhD+oFdhaPJ2fxvY5CpOlI2//8DHplP5ieyP+RjKb4BWEpIIws3p3h5WOxKIT
	r9slqHu/MnBAfph1w1KeiSQRtmqiV4mdsxytVMQhcaqhGTTjnV82vBxvBJRI4ngDcOkmD/zZ4WB
	J8U905a2RQUOjdVRAkA22CJHeeZTVP8YYXacsOEcvS2zZfADMxM9w==
X-Received: by 2002:a05:600c:47d3:b0:48d:c0a:3813 with SMTP id 5b1f17b1804b1-48e51e0bb62mr120348625e9.3.1778234988657;
        Fri, 08 May 2026 03:09:48 -0700 (PDT)
Message-ID: <be5b5e70-a61e-4803-9f40-873ce5381328@suse.com>
Date: Fri, 8 May 2026 12:09:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1
To: Kevin Brodsky <kevin.brodsky@arm.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
References: <aaBH3EAchUwKhrUA@mail-itl>
 <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@citrix.com>
 <c712c06f-7fcf-4876-b2d7-f2b7bc6f0dea@suse.com> <adIuP7-sNwuOid80@mail-itl>
 <5d068304-837d-4aef-b8a7-87c91ccf96b4@arm.com>
 <c6855bd1-5b41-470b-8942-a4ebe3b5de0b@suse.com>
 <15645d19-f19d-4955-8315-0188aa834eb6@suse.com>
 <7f123733-2ec2-436e-bb0c-67b3e9f80735@arm.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <7f123733-2ec2-436e-bb0c-67b3e9f80735@arm.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------NxeXpDUtU1CVH5wQvtQoY0qb"
X-purgate-ID: tlsNG-ef75cf/1778234989-0A772C48-0C341B5A/0/0
X-purgate-type: clean
X-purgate-size: 10243

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------NxeXpDUtU1CVH5wQvtQoY0qb
Content-Type: multipart/mixed; boundary="------------344B6733Ezlm0YXXLj6S7075";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Message-ID: <be5b5e70-a61e-4803-9f40-873ce5381328@suse.com>
Subject: Re: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1
References: <aaBH3EAchUwKhrUA@mail-itl>
 <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@citrix.com>
 <c712c06f-7fcf-4876-b2d7-f2b7bc6f0dea@suse.com> <adIuP7-sNwuOid80@mail-itl>
 <5d068304-837d-4aef-b8a7-87c91ccf96b4@arm.com>
 <c6855bd1-5b41-470b-8942-a4ebe3b5de0b@suse.com>
 <15645d19-f19d-4955-8315-0188aa834eb6@suse.com>
 <7f123733-2ec2-436e-bb0c-67b3e9f80735@arm.com>
In-Reply-To: <7f123733-2ec2-436e-bb0c-67b3e9f80735@arm.com>

--------------344B6733Ezlm0YXXLj6S7075
Content-Type: multipart/mixed; boundary="------------9gc1VbDJpspadR0eY8H0pg21"

--------------9gc1VbDJpspadR0eY8H0pg21
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMDguMDUuMjYgMTE6NTQsIEtldmluIEJyb2Rza3kgd3JvdGU6DQo+IE9uIDA4LzA1LzIw
MjYgMTA6NTMsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBbLi4uXQ0KPj4NCj4+IEJ1dCBu
b3cgSSB0aGluayBJIGhhdmUgZm91bmQgdGhlIHJlYWwgY3VscHJpdCBpbiBsYXp5X21tdV9t
b2RlX2VuYWJsZSgpOg0KPj4NCj4+IHN0YXRpYyBpbmxpbmUgdm9pZCBsYXp5X21tdV9tb2Rl
X2VuYWJsZSh2b2lkKQ0KPj4gew0KPj4gIMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBsYXp5X21t
dV9zdGF0ZSAqc3RhdGUgPSAmY3VycmVudC0+bGF6eV9tbXVfc3RhdGU7DQo+Pg0KPj4gIMKg
wqDCoMKgwqDCoMKgIGlmIChpbl9pbnRlcnJ1cHQoKSB8fCBzdGF0ZS0+cGF1c2VfY291bnQg
PiAwKQ0KPj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm47DQo+Pg0K
Pj4gIMKgwqDCoMKgwqDCoMKgIFZNX1dBUk5fT05fT05DRShzdGF0ZS0+ZW5hYmxlX2NvdW50
ID09IFU4X01BWCk7DQo+Pg0KPj4gIMKgwqDCoMKgwqDCoMKgIGlmIChzdGF0ZS0+ZW5hYmxl
X2NvdW50KysgPT0gMCkNCj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXJj
aF9lbnRlcl9sYXp5X21tdV9tb2RlKCk7DQo+PiB9DQo+Pg0KPj4gQ29uc2lkZXIgYSBwcmVl
bXB0aW9uIGp1c3QgYmVmb3JlIGNhbGxpbmcgYXJjaF9lbnRlcl9sYXp5X21tdV9tb2RlKCku
IFRoZQ0KPj4gZW5hYmxlX2NvdW50IHdpbGwgYmUgMSBub3csIGJ1dCB0aGVyZSB3YXMgbm8g
c3dpdGNoIHRvIGxhenkgbW9kZSB5ZXQuDQo+Pg0KPj4gV2hlbiB0aGUgdGFzayBiZWNvbWVz
IGFjdGl2ZSBhZ2FpbiwgY29udGV4dCBzd2l0Y2ggaGFuZGxpbmcgd2lsbCBzZWUgbGF6eQ0K
Pj4gbW9kZSBlbmFibGVkIChlbmFibGVfY291bnQgPiAwKSwgc28gaXQgd2lsbCBjYWxsDQo+
PiBhcmNoX2VudGVyX2xhenlfbW11X21vZGUoKS4NCj4+IEFuZCB0aGVuIHRoZSB0YXNrIHJl
c3VtZXMgYW5kIGlzIGNhbGxpbmcgYXJjaF9lbnRlcl9sYXp5X21tdV9tb2RlKCkNCj4+IGFu
b3RoZXINCj4+IHRpbWUuDQo+IA0KPiBBZ3JlZWQsIHRoaXMgbXVzdCBiZSB0aGUgcHJvYmxl
bS4gSSBkaWQgd29uZGVyIHdoZXRoZXIgdGhlIGxhY2sgb2YNCj4gYXRvbWljaXR5IHdvdWxk
IGNhdXNlIHRyb3VibGUuLi4NCj4gDQo+IGFybTY0IGlzbid0IGltcGFjdGVkIGJlY2F1c2Ug
aXQgdHJhY2tzIHJlbGF0ZWQgc3RhdGUgaW4gdGFza19zdHJ1Y3QNCj4gb25seS4gcG93ZXJw
YyBhbmQgc3BhcmMgZG8gdXNlIHBlcmNwdSB2YXJpYWJsZXMgYnV0IHRoYXQgc2hvdWxkbid0
DQo+IG1hdHRlciBhcyB0aGV5IGRpc2FibGUgcHJlZW1wdGlvbiBpbiB0aGUgZW50aXJlIGxh
enkgTU1VIHNlY3Rpb24uDQo+IA0KPj4NCj4+IFRoZSBvbmx5IGNoYW5jZSBJJ20gc2VlaW5n
IHRvIGF2b2lkIHRoYXQgd291bGQgYmUgdG8gZGlzYWJsZSBwcmVlbXB0aW9uDQo+PiBhcm91
bmQgYWxsIGluc3RhbmNlcyBvZiB0ZXN0aW5nIGEgY29uZGl0aW9uIGFuZCB0aGVuIGVuYWJs
aW5nIG9yDQo+PiBkaXNhYmxpbmcNCj4+IGxhenkgbW11IG1vZGUuDQo+IA0KPiBJIGRvbid0
IGltbWVkaWF0ZWx5IHNlZSB3aHkgd2Ugd291bGQgbmVlZCBzdWNoIGEgYmlnIGhhbW1lci4g
SWYgd2UNCj4gcmV2ZXJ0IGNvbW1pdCAyOTFiM2FiZWQ2NTcgKCJ4ODYveGVuOiB1c2UgbGF6
eV9tbXVfc3RhdGUgd2hlbg0KPiBjb250ZXh0LXN3aXRjaGluZyIpLCB0aGVuIGFyY2hfe3N0
YXJ0LGVuZH1fY29udGV4dF9zd2l0Y2goKSBzaG91bGQgb25jZQ0KPiBhZ2FpbiBkbyB0aGUg
cmlnaHQgdGhpbmcgZm9yIFhlbiBzaW5jZSB0aGUgVElGX0xBWllfTU1VX1VQREFURVMgZmxh
ZyBpcw0KPiBzZXBhcmF0ZSBmcm9tIGxhenlfbW11X3N0YXRlLiBJIHRoaW5rIGl0IGxvb2tz
IGxpa2UgdGhpczoNCj4gDQo+IGxhenlfbW11X21vZGVfZW5hYmxlKCkNCj4gIMKgIMKgIHN0
YXRlLT5lbmFibGVfY291bnQrKw0KPiAgwqAgwqAgPFBSRUVNUFQ+DQo+ICDCoCDCoCDCoCDC
oCBhcmNoX3N0YXJ0X2NvbnRleHRfc3dpdGNoKCkNCj4gIMKgIMKgIMKgIMKgIMKgIMKgIHhl
bl9sYXp5X21vZGUgPT0gWEVOX0xBWllfTk9ORSAtPiBkbyBub3RoaW5nDQo+ICAgICAgICAg
IA0KPiAgwqAgwqAgwqAgwqAgPG90aGVyIHRhc2sgcnVuczsgdGhpcyB0YXNrIGlzIHNjaGVk
dWxlZCBhZ2Fpbj4NCj4gDQo+ICDCoCDCoCDCoCDCoCBhcmNoX2VuZF9jb250ZXh0X3N3aXRj
aCgpDQo+ICDCoCDCoCDCoCDCoCDCoCDCoCBUSUZfTEFaWV9NTVVfVVBEQVRFUyBub3Qgc2V0
IC0+IGRvIG5vdGhpbmcNCj4gDQo+ICDCoCDCoCDCoCDCoCA8ZXhjZXB0aW9uIHJldHVybj4N
Cj4gIMKgIMKgIGVudGVyX2xhenkoWEVOX0xBWllfTU1VKQ0KPiANCj4gTm90aGluZyBlbHNl
IHNob3VsZCBiZSBjaGVja2luZyBsYXp5IE1NVSBzdGF0ZSBkdXJpbmcgdGhlIGNvbnRleHQg
c3dpdGNoLg0KPiANCj4gRG9lcyB0aGF0IG1ha2Ugc2Vuc2U/DQoNClRoaXMgd291bGQgd29y
aywgeWVzLg0KDQpPVE9IIEkgZG9uJ3QgbGlrZSB0aGUgbXVsdGlwbGUgY29uZGl0aW9ucyB1
c2VkIGZvciB0ZXN0aW5nIChzdGF0ZS0+ZW5hYmxlX2NvdW50LA0KVElGX0xBWllfTU1VX1VQ
REFURVMsIHhlbl9sYXp5X21vZGUpLg0KDQpBbm90aGVyIHZhcmlhbnQgd291bGQgYmUgdG8g
anVzdCBsZXQgdGhlIFhlbiBzcGVjaWZpYyBjb2RlIHRvbGVyYXRlIHRoZSBkb3VibGUNCmNh
bGxzIGJ5IGRpc2FibGluZyBwcmVlbXB0aW9uIGluIHRoZSBYZW4gY29kZSBhbmQgY2hlY2tp
bmcgdmlhDQpfX3Rhc2tfbGF6eV9tbXVfbW9kZV9hY3RpdmUoKSBpZiBhbnl0aGluZyBuZWVk
cyB0byBiZSBkb25lLg0KDQpJJ2QgcmVhbGx5IGxpa2UgdG8gZ2V0IHJpZCBvZiB4ZW5fbGF6
eV9tb2RlIGNvbXBsZXRlbHkuDQoNCg0KSnVlcmdlbg0K
--------------9gc1VbDJpspadR0eY8H0pg21
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------9gc1VbDJpspadR0eY8H0pg21--

--------------344B6733Ezlm0YXXLj6S7075--

--------------NxeXpDUtU1CVH5wQvtQoY0qb
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmn9tmsFAwAAAAAACgkQsN6d1ii/Ey/P
qgf9H8zBdSqCtTtRHMDzl02ActywwJ78jYULAg7+WwI7uGTjUqeVe4f9mlZcj5+z7F9bbP3tRjKu
lf5Zp9LLtWdgAQw961hDhJdgg7hOzYxqIFDuMaH4Bb5i0tMFBbW11AGKTBy6elvrFT+BWVLwALuj
akr7Em8rmM7KGBLsQtUywRaVyaWSQ6AbGW/6BJRs0v40xUAtFIsAyiadIJwKld0DtiP+5nrMJPrn
zVWaBcvKK2dHhRPc4jFIRWlHZSc9x+f8JFHP2V1bRzVJP/5LhVwLg5uP4wv2KLoTJd4eWZ9tambs
6nsCkSPiEi8KDg/6oneUPpRlXzpKFkrtfiOgDT4nQg==
=8Epf
-----END PGP SIGNATURE-----

--------------NxeXpDUtU1CVH5wQvtQoY0qb--


From xen-devel-bounces@lists.xenproject.org Fri May 08 10:28:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 10:28:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303428.1576835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLIRb-0004hl-Oi; Fri, 08 May 2026 10:28:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303428.1576835; Fri, 08 May 2026 10:28:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLIRb-0004he-Lp; Fri, 08 May 2026 10:28:31 +0000
Received: by outflank-mailman (input) for mailman id 1303428;
 Fri, 08 May 2026 10:28:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wLIRZ-0004hX-WF
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 10:28:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLIRX-00E5Hr-RG
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 12:28:29 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fdbabd-2eae-0a2a0a5409dd-0a2a4505ccb8-32
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 12:28:29 +0200
Received: from [52.101.193.64]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fdbacb-aaa8-0a2a45050019-3465c1401bee-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 12:28:29 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH5PR03MB7911.namprd03.prod.outlook.com (2603:10b6:610:216::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.18; Fri, 8 May
 2026 10:28:25 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.019; Fri, 8 May 2026
 10:28:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pFMFP1+9nXmTGE7gbf23P/UoI1+Rbo2Byz6vcVDd4aFRYcubInLScBOBMFXJMDMr7iTwVhdF8vmHcRgeXkDzAXlnIf1kac6ZEbz9Q31kTgwlcNEQ/OBppvFxSUVrR1Oo+qXNrLAlO6WkdeTjA01kJsMakf/v385l4sEhk/ZIVTaQNDuMrPwSOGrpXtW7ouEE96c4/nDVIiXCHfkNi/Yn6FQdIPuC2VkAWDoJFL2um5xOVwR/WYo9aGKv1uRWCsLh6fUmi7KFgkhrSl7W6vJ1pJZEo6oE3xVg+eemESBOl3/6e11djs0+rLdoErt+dpODOS7fPJCxz6yysJ62UiJ0Rg==
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=/V48m4L42VS4xbszVUHsA8cxurEWR078XX2Jt5QIHzI=;
 b=Gl/utOxmG4DK7EHG2c9+6DIXrxxZuEuDosHHzOQNhBh8u2VO43lWRiR8RRfLq8DVyLzx57lwLNKWnEtyLPEeB3hrH/8inRZHVQIad75A4hB5729bOVxzDw6BBRB1CqRVjqqeYZr51+gMbuviiRQbtO5S4gpPwNy5HCRENBPJbneSJgjwZEGnlf9IsL+2ox86gKyDZYTrzkpIWO+HevsysNxkwX+JKR0hfcPboamm3RSaBvAHGDxO1jwdltrupqDzDCH/PWTdMpyyLHSvsb6aBTMduNVTNbFCKpX/ra8jkVFgcdKQ1mfpuLVfLgIFuDF1V9c5mMhpp3whUg3aiuJgmg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/V48m4L42VS4xbszVUHsA8cxurEWR078XX2Jt5QIHzI=;
 b=l9svk+yRZq98hcDCC9WjXssU5dilghSRJCkSCrwABb/h72K4XkWMV302PMYfagcmMJ0oDrLcZt0ZyUbi/USe9aZ2o3J17rOX778IZJ457jJv+fAOt7Om/6mRS9surGU/KaAAY2IkFfkzySuvhp6O8ErRL6lOLPvfzz3rb5Ujafs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b9c46a08-4343-4f33-ba7e-5466f8522acf@citrix.com>
Date: Fri, 8 May 2026 11:28:22 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Kevin Brodsky <kevin.brodsky@arm.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <aaBH3EAchUwKhrUA@mail-itl>
 <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@citrix.com>
 <c712c06f-7fcf-4876-b2d7-f2b7bc6f0dea@suse.com> <adIuP7-sNwuOid80@mail-itl>
 <5d068304-837d-4aef-b8a7-87c91ccf96b4@arm.com>
 <c6855bd1-5b41-470b-8942-a4ebe3b5de0b@suse.com>
 <15645d19-f19d-4955-8315-0188aa834eb6@suse.com>
 <7f123733-2ec2-436e-bb0c-67b3e9f80735@arm.com>
 <be5b5e70-a61e-4803-9f40-873ce5381328@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <be5b5e70-a61e-4803-9f40-873ce5381328@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0265.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a1::13) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH5PR03MB7911:EE_
X-MS-Office365-Filtering-Correlation-Id: 73bcd42c-966e-47f2-88e0-08deacec8975
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	xL8sMIw9NVTkdS1hDOvBYDyNdr2G4/YfVUdXulutSxni/9LWZcOIacOf02GOBmPYS5tKy0+Spe2YBuZN9Eq9Kn2yxuJvKF6J2fxsS0cPFU2H8Cea4OvHFdtfXm+TNUiqKZ+DRGke/jIiJCViFIS3T/7kh6jlUX9UdBHkiJe/mpW+5Udga4QuU9OkJfRHJVhhDPvj1KKddG+FjDw4FV8Vzq8q6fAukeUT484KxFwPgm4ugkfAkGoNiJIq6muDNHYAoI/cinlVTgQK4WoUgvLO2dbdKkpdkJ78r2icIpewIoevCo9ebz4OCNDf4amiGr2DxMgxJhUZgAa7SHBaHpGQJsm38m3H9xa/11GjX/ix7+7uotHCFUi7QstOQkAJAxXFDhog2mrzOqAtkyCoIswc1UxNnpIV9b+Iatk07RitxoeFDhGrqDLsFEC6GqaXSZ57ZPtGPIPWerxFyRT9kO2HWmM4J5YQ6e+Pd6X5eAsLISbKNFh2Mza1ppjwlYVfWRqlemBuKQuxnwqUyq96Y4n5lobJ+SqhBpP1t6HPICE34Uy9SIRQjGpILcXRrCm8Mh0FhyU7xUWE+P1gwwhu9TEv5NcV7ans9X2jnsWjzh0ksIxzCbO2h0wirv5oRZs+LbVqE+kS3fXxPOubz46KFUCd7WrEcczOre67SF70eLtMbSK5MixF0m8DJJU9e7W7l4fw
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aWtGRDgwcnQwcHIyNS9TVGhJZWxZaUFVMkdKMTdjclN5WklGZDlwUWtoSWlu?=
 =?utf-8?B?WXcxaXl1YlorVmlTSGdxVnB2MTVuTnNUY1kzbDN6RHlWOUttMTEyVEhGb2Na?=
 =?utf-8?B?UDV4SXRFSXFlQWlGaGpLMFh6a2UrYmswQ0IrdktreXJkalhkQUdDd3RqWmh0?=
 =?utf-8?B?QXRtVmxtanBkdTJnVnpSUFJhbG52OU1EeHdrdXVLUmdHSTVBRDRtS0ZKMFpU?=
 =?utf-8?B?d2tldUQzOStUVGdLV2NUUXpFNUh1T0NsYVNPZlRWNXFHK2xqdDZkYUZIUExL?=
 =?utf-8?B?R3RPNzVNVEtDUnhoanZRZXpEWUpHT01udkd1bGJuSVNmZWd3dndDb0pDbjNz?=
 =?utf-8?B?NG9ITjBONWM4dzJ4bDl1V05HTDdCSFB2MGlSdmZZZEsyQ0wwNDY1WFJwYTJD?=
 =?utf-8?B?N0t4czVZQXFSUzdTYzhKMmxVTzRFdFBhc3NGWHgvbHpMcUF2bVNtRVo2TEJ3?=
 =?utf-8?B?SURhckxsSUVJM2s2UXRFNzlKdXZkdFNVcEZlMnBiU2NKM01QczdGTEVRRDYy?=
 =?utf-8?B?VzZ0TXJ5bHVoeUNUR25CTkl1QWtxcWFNZGtOUDBJajRhN1RXbUxkRCtRNjNs?=
 =?utf-8?B?N0FlY3BWcXRNMUpSd3N6elVFM2M1NHFKNk5kSnhVOExQUWdraXBWemxSSk9P?=
 =?utf-8?B?cnl1YWJlMFppWWplT1AxZVh5RDR5V3lzUGROV2RnOG1TVEdpV1pVaFNBSmNw?=
 =?utf-8?B?MlR4TGlsbWg1VW1raUJqS3ZnWmcrbjUrRU5ralo3bU5kcUJjQ2Vkb2lGWFQz?=
 =?utf-8?B?NHVQcDZXakVBRnVmdzFnN3JWNEF5WXdNbTJpSFIxak1YQ244eXIyVTN4UHAv?=
 =?utf-8?B?R0hEWEEwbWx3MkNTdUFXR0txSHJEbzl2aFJvQXJUOE9oSDVJQlZuK2R0eVNG?=
 =?utf-8?B?WlNvNTR1NUZmdGZDOExicWxnYWlwaFMvM05xMjRZSnJOMmZtMlhpWW92dlpj?=
 =?utf-8?B?RFpZdU5CWlA4aW5VenhhNnpJclYyWUtRcThKTktDSzFOMm5KUUVuZkhnNms2?=
 =?utf-8?B?N2lpSXJyUkpBZlFnaHpJSFMvMk5UN2E5NDBJSVJwM0p6Tmk2UHVYaHRDc2wr?=
 =?utf-8?B?UmYvSkJKYnI0QzNUVW1KUUluNForVGp2aElKeFh3cDhpaUJuZnpBVWlUTitJ?=
 =?utf-8?B?MzB6dC9pOHMycVptcGQ4WUpqQ2dGQ3VzWmZlemxKSm1tU3pxbmdnaWZLU3c1?=
 =?utf-8?B?eWlabW56RDhIWC9NbnpLU2pvZkJhbXBvZUl2dzZwS0NBdjVQdVpmS0RrUC8r?=
 =?utf-8?B?V3YvWGxWL3Q4VkZUWDR4MnBmUVNiYS9Ka3A0TEtzOGQzVmppaWViZjcveHpG?=
 =?utf-8?B?YkQ4SFdBamFqNGk1U3ltVVZZRHJ4MXBnb2RLNnFHcFJ4SjJVc0dYSDlQR1Fy?=
 =?utf-8?B?bUJ2Q1lub3B4T0Exb2FhYTYrVWx4d2s1YytNL3NlTmdpSWwrUERZUTMzRXhl?=
 =?utf-8?B?YnVkUzFOTytCNTJOL0x4WXNvTHlWdHpHTWdwM2NVZElJRlNZbnNiVHh5MElH?=
 =?utf-8?B?VHBNTDRPM1hFakFXb0I0ZFltZFhPK0RkU2M3N210ejdhZnJOa3Z6bEhGVFda?=
 =?utf-8?B?LzFJaWt0djB6Nkh3MnZlSzFxT0xIODJsRzE3SEFIc1A5TVd3dkZUc012TkVa?=
 =?utf-8?B?eWE0ZHM5R1huNURMUEI4YmpJdHF4eVU0QmlqTEJLWGlMMzd4YTRPL3JiWDVi?=
 =?utf-8?B?NFR2WjBMMmZQTmIxVHVHcVNLRWp1NGpQejN5S0Q4M0lGbU81Z3l4Q0paSCt0?=
 =?utf-8?B?dGsrRDZVT3R0UHI1ZVBqS0twaEkvSEp2RmNTWmFmUDcyRm0wdytGcHBoTEFu?=
 =?utf-8?B?NWlMOWdYWEhnSzd5Ull4dlJlZDJ0YjhFeDM5cEZ2QkdaMjU3NnRqUWViUlFm?=
 =?utf-8?B?VWxDOWNIZHVyL2tWUVhCT2tRTFUvUjF5RWZad3pyVWJHNkhmL2ZwWlZWV1ds?=
 =?utf-8?B?d09PZlJXOENhNGI2SmFHN1NpVkNvZVlUWlBuZlQwMTU1MDE4SlJZcXJJa2pY?=
 =?utf-8?B?ZjNGcFVyTUNXNEM5NXgxdEFxcHo4TEJpWUpMOVAvZyswOUFIK0tHajhMK3dm?=
 =?utf-8?B?RU5XZEZxckZ3bTR6NkVKUi9ESkRzaEF4TW5EaVI4SjdBK2ZyRWtsV2tYSlVq?=
 =?utf-8?B?cUxaRkF1ZDF1TDhYaXR5WCtaOHI4MU4rdDJKTTdRN1ZtUUR3eUFIU3VSVHBH?=
 =?utf-8?B?Yk92eXdoVkphVWRRbnc2anJIR3FIMHl5ajdadWdzcWhqK1lMbGxXNXpGcHZm?=
 =?utf-8?B?NEtiZlQ1K2lIZTI0OFkxQzZ1MWRMQmRROWdmN1FvMlQ3b0IwNW8vdktrKzRU?=
 =?utf-8?B?OWYyRmFZNmJmVHAzZkZHQkZ0cjdxMVpOVUhQSmZsZkdYTWkrUG93a3dlaVJR?=
 =?utf-8?Q?3vRfg21zWATioFic=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 73bcd42c-966e-47f2-88e0-08deacec8975
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 10:28:25.2576
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3DrzB7uGQtTLIerf15LfX8kVyjMS7egcsG4rCTmmpI+kjvp/ZyVbts+KBv/ggNDsHqH4oiTW5qFEpyvRj3MhxHDPk+iV0AlnSfKZSV/Pots=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH5PR03MB7911
X-purgate-ID: tlsNG-c201ff/1778236109-DA969443-23C5C4AF/0/0
X-purgate-type: clean
X-purgate-size: 3784

On 08/05/2026 11:09 am, Jürgen Groß wrote:
> On 08.05.26 11:54, Kevin Brodsky wrote:
>> On 08/05/2026 10:53, Juergen Gross wrote:
>>> [...]
>>>
>>> But now I think I have found the real culprit in
>>> lazy_mmu_mode_enable():
>>>
>>> static inline void lazy_mmu_mode_enable(void)
>>> {
>>>          struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>>
>>>          if (in_interrupt() || state->pause_count > 0)
>>>                  return;
>>>
>>>          VM_WARN_ON_ONCE(state->enable_count == U8_MAX);
>>>
>>>          if (state->enable_count++ == 0)
>>>                  arch_enter_lazy_mmu_mode();
>>> }
>>>
>>> Consider a preemption just before calling
>>> arch_enter_lazy_mmu_mode(). The
>>> enable_count will be 1 now, but there was no switch to lazy mode yet.
>>>
>>> When the task becomes active again, context switch handling will see
>>> lazy
>>> mode enabled (enable_count > 0), so it will call
>>> arch_enter_lazy_mmu_mode().
>>> And then the task resumes and is calling arch_enter_lazy_mmu_mode()
>>> another
>>> time.
>>
>> Agreed, this must be the problem. I did wonder whether the lack of
>> atomicity would cause trouble...
>>
>> arm64 isn't impacted because it tracks related state in task_struct
>> only. powerpc and sparc do use percpu variables but that shouldn't
>> matter as they disable preemption in the entire lazy MMU section.
>>
>>>
>>> The only chance I'm seeing to avoid that would be to disable preemption
>>> around all instances of testing a condition and then enabling or
>>> disabling
>>> lazy mmu mode.
>>
>> I don't immediately see why we would need such a big hammer. If we
>> revert commit 291b3abed657 ("x86/xen: use lazy_mmu_state when
>> context-switching"), then arch_{start,end}_context_switch() should once
>> again do the right thing for Xen since the TIF_LAZY_MMU_UPDATES flag is
>> separate from lazy_mmu_state. I think it looks like this:
>>
>> lazy_mmu_mode_enable()
>>      state->enable_count++
>>      <PREEMPT>
>>          arch_start_context_switch()
>>              xen_lazy_mode == XEN_LAZY_NONE -> do nothing
>>                   <other task runs; this task is scheduled again>
>>
>>          arch_end_context_switch()
>>              TIF_LAZY_MMU_UPDATES not set -> do nothing
>>
>>          <exception return>
>>      enter_lazy(XEN_LAZY_MMU)
>>
>> Nothing else should be checking lazy MMU state during the context
>> switch.
>>
>> Does that make sense?
>
> This would work, yes.
>
> OTOH I don't like the multiple conditions used for testing
> (state->enable_count,
> TIF_LAZY_MMU_UPDATES, xen_lazy_mode).
>
> Another variant would be to just let the Xen specific code tolerate
> the double
> calls by disabling preemption in the Xen code and checking via
> __task_lazy_mmu_mode_active() if anything needs to be done.
>
> I'd really like to get rid of xen_lazy_mode completely.

Without wishing to interrupt the flow too much.

In XenServer, work on migration performance[1] has demonstrated that a
very large number of multicalls issued by Linux are single-op multicalls.

(I blindly assert) these must be coming from the lazy_mode logic, and
they're even less efficient than making the hypercall normally, owing to
the need to marshal it through the multicall ABI.

There's a possibility that you can simply delete lazy mode and stuff
gets faster.  (Although it's far more likely that the difference is in
the noise).

~Andrew

[1] The dominating perf problem for migration is ptwr emulation and
Linux not using a hypercall, which IIRC accounts for 40% of wallclock
time during live migration.


From xen-devel-bounces@lists.xenproject.org Fri May 08 10:38:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 10:38:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303443.1576844 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLIbN-0006Ur-LN; Fri, 08 May 2026 10:38:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303443.1576844; Fri, 08 May 2026 10:38:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLIbN-0006Uk-Hj; Fri, 08 May 2026 10:38:37 +0000
Received: by outflank-mailman (input) for mailman id 1303443;
 Fri, 08 May 2026 10:38:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wLIbN-0006Ue-0z
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 10:38:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLIbM-00FUU8-Dw
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 12:38:36 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fdbd26-2eae-0a2a0a5409dd-0a2a45089710-24
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 12:38:36 +0200
Received: from [209.85.208.177] (helo=mail-lj1-f177.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fdbd2c-63b5-0a2a45080019-d155d0b1d496-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 12:38:36 +0200
Received: by mail-lj1-f177.google.com with SMTP id
 38308e7fff4ca-3922b35e69cso14942231fa.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 03:38:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778236715; cv=none;
        d=google.com; s=arc-20240605;
        b=JsgYiNddQ3hnbiCdg/c2zVTxhpoFrbgCgbSu3HVeHttWBKRLKslTsWAcEzklY1DEdT
         4yY0XDbRuduJ5UxGR9ULI7hGDTMNPhjCphwAcpTFPnK3JlhiYKQH3dQ8azSsiWb1CS4s
         B83Qtjd6bi6IUIoAAVm0xlXM8FDLGQHh30v/sRj3DZI4OKrmIBALrSPzT2fAt7zf77zq
         P9Y2ruVIGFLCuMgZmT2A3KQ3bosbuxnlflWPgomAKWg2VanWoR42oelHf5UwiF+6EZOg
         61l7wToavagUG9526OvLvNVxue3ynqyu7fYgA6zJpLGkAxPk9waM+0WyvrfujBy0C0VV
         pBLA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=2GUqezJvc/MLviBnqNjIuAYBZeMy4IiHwGhP3ieXKFw=;
        fh=HHRjWkdysX2ZkNpVMY4DcdwfNbPq2J2BPJfxbJK3Acs=;
        b=JMZjiMb7VOLnSVafTxq3ZyS3uwuYu5fC1F96WccySCO3qsUGXzaLUREZVE9D2FwFgJ
         fYV2vn6IFc9eF/keL8jPuG9oa85rBJM0OtK36mjsZQF1DhqnZgQXHLPU5oHLbjaa8dVq
         +9ffPK+oq4nUojcrIbnEWuknjcRSqbKT4qI8CDAlZdZ400biphNFX4Zdt8nNlOZGp1CY
         TBcFMB+wK07twsDpXKigcsfaGOxQw6BLUudDy716dVmJX57RoEmPZxDYA7WpJrWpR5x4
         oo92DHcr5OQapKIsrNCsA0+tIeB+6jz9TcZiIM5/bnHW9OFzJ2b3uluW2ScxTaHaktee
         OSGg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778236715; x=1778841515; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2GUqezJvc/MLviBnqNjIuAYBZeMy4IiHwGhP3ieXKFw=;
        b=Jhg1hOfYI0Cwy2rbL6D48+00Hw9Fjvbp0qljl0RAIngx4u8iJdIIzuLHSumnUafB9k
         7Jb7X2D9l8JJ+INNECi+nErpiMtI+4ocX6ZK3V9RJOQHJS9itmXuGno0CKhqQb5Nlhu0
         UXNkR1iqYO7VMSPFBdiMQe7dmJYzRES5vQxR4QMkcE3rXOyToml8IdRxCl/AlpUd1w71
         0dL2JCha0b4lOHN3NQcK9u7jVVcP0nJ+oZeJThYZIXZAFB+Wk3YilF4RAJW77lga58Jq
         RoI3iQUcWEaSQNfw33eTYcTRvtlEwN+29kIeODsNfdXhIlf2Py2BGVvABkPIBq0Fkfod
         BXYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778236715; x=1778841515;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=2GUqezJvc/MLviBnqNjIuAYBZeMy4IiHwGhP3ieXKFw=;
        b=WXJeK4+T+zD9eVPIqzU8NItCKAu/cUdoa6CDIx7fE0uD7wMvif5L2QMCxHkBdAXI1f
         /uwVKOXJhkL7hS8vSd8NTk5DqBMi9q4E/UFUYZiQxLrxmRouea9LsJgijg5DpihbRlmY
         UtH48DVcyRvGoa5eD7gFBzEBd0bNq3cZ3p7IbeTOsiDZXMaHi13AfGDB09GBmHe7VMrQ
         YYgeAZ149O/12q4hEe5H0MjNMccfOXudeFidRTALTEi0tRFvQD+PNXvCu6o9w3e19fGD
         zkvN1MbY+B024mT17uKe1EN1Ze8cH5akP3FvXDoOVnoTWgWQ9mt73zK6ehlrv9LC4YmV
         iTLA==
X-Gm-Message-State: AOJu0YwVBBO5w7BPGHtZXIl40AjRkEMwTzipRbMm5LkbBpoLMqOYh0hi
	RMTbWgXlfy5y2Yzib+8GRmLoZnP/TR3r7M/z+ksWkrs3IKLkYM3rFC2nBfV8+3qVeJboBybMC64
	68E9LLA4msvRafjaxDc+bKVZi6WCm09g=
X-Gm-Gg: Acq92OH3lAutgqdWyVcwZfdOpTBzIDTt1Pc758yNni0QrCqmN18xce85bgG+IF76Aik
	bGSKhqHVjGE5SLRgmm0YXEVT+XET2r2J5/9z0zSaQdyMiYREDQ385mJmgnUaaur6glbW0Zk3kai
	08eYVg1q7VKfayIQHQnSwm/alNBqZhJTdJSzxICpHSTkmy+e7XqsFjmFnNPD6D3P6pxyEoARqCh
	nS2YAr7ppkUDpxsigrdlvPFEVi7LmyI2A+D56YWnPKkIY4pDPQ6bqXaMZnqkSI5FXHtJgHwxsva
	nKuMbKHh/+S9ljmG
X-Received: by 2002:a05:651c:154e:b0:393:8585:f9e4 with SMTP id
 38308e7fff4ca-393c40cfd1emr46415461fa.4.1778236715160; Fri, 08 May 2026
 03:38:35 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <f87a2bcb6b09e95e07e51c27541ad91406e849d1.1775125380.git.mykola_kvach@epam.com>
 <87tssisw41.fsf@epam.com>
In-Reply-To: <87tssisw41.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 8 May 2026 13:38:24 +0300
X-Gm-Features: AVHnY4JlozUSNvhy8wXCtlMYC7rK6agBwsWomgaChMHdZYvMJ539aO9EpDsPkJw
Message-ID: <CAGeoDV-fpr86T165VTDeGqN2ybJDZkWKFke1ZpnY9__zKkBLrw@mail.gmail.com>
Subject: Re: [PATCH v8 11/13] xen/arm: Save/restore context on suspend/resume
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <Mykola_Kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c1860d/1778236716-B6F72DB1-924C254B/0/0
X-purgate-type: clean
X-purgate-size: 8864

Hi Volodymyr,

Thanks for taking a look at this.

On Fri, May 8, 2026 at 1:17=E2=80=AFAM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
> Hi Mikola,
>
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>
> > From: Mirela Simonovic <mirela.simonovic@aggios.com>
> >
> > The context of CPU general purpose and system control registers must be
> > saved on suspend and restored on resume. This is implemented in
> > prepare_resume_ctx and before the return from the hyp_resume function.
> > The prepare_resume_ctx must be invoked just before the PSCI system susp=
end
> > call is issued to the ATF. The prepare_resume_ctx must return a non-zer=
o
> > value so that the calling 'if' statement evaluates to true, causing the
> > system suspend to be invoked. Upon resume, the context saved on suspend
> > will be restored, including the link register. Therefore, after
> > restoring the context, the control flow will return to the address
> > pointed to by the saved link register, which is the place from which
> > prepare_resume_ctx was called. To ensure that the calling 'if' statemen=
t
> > does not again evaluate to true and initiate system suspend, hyp_resume
> > must return a zero value after restoring the context.
> >
> > Note that the order of saving register context into cpu_context structu=
re
> > must match the order of restoring.
> >
> > Support for ARM32 is not implemented. Instead, compilation fails with a
> > build-time error if suspend is enabled for ARM32.
> >
> > Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
> > Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
> > Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Changes in v8:
> > - fix alignments in code
> >
> > Changes in v7:
> > - no changes
> > ---
> >  xen/arch/arm/Makefile              |  1 +
> >  xen/arch/arm/arm64/head.S          | 90 +++++++++++++++++++++++++++++-
> >  xen/arch/arm/include/asm/suspend.h | 26 +++++++++
> >  xen/arch/arm/suspend.c             | 14 +++++
> >  4 files changed, 130 insertions(+), 1 deletion(-)
> >  create mode 100644 xen/arch/arm/suspend.c
> >
> > diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> > index 69200b2728..c36158271a 100644
> > --- a/xen/arch/arm/Makefile
> > +++ b/xen/arch/arm/Makefile
> > @@ -51,6 +51,7 @@ obj-y +=3D setup.o
> >  obj-y +=3D shutdown.o
> >  obj-y +=3D smp.o
> >  obj-y +=3D smpboot.o
> > +obj-$(CONFIG_SYSTEM_SUSPEND) +=3D suspend.o
> >  obj-$(CONFIG_SYSCTL) +=3D sysctl.o
> >  obj-y +=3D time.o
> >  obj-y +=3D traps.o
> > diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> > index 596e960152..2cb02ee314 100644
> > --- a/xen/arch/arm/arm64/head.S
> > +++ b/xen/arch/arm/arm64/head.S
> > @@ -562,6 +562,52 @@ END(efi_xen_start)
> >  #endif /* CONFIG_ARM_EFI */
> >
> >  #ifdef CONFIG_SYSTEM_SUSPEND
> > +/*
> > + * int prepare_resume_ctx(struct cpu_context *ptr)
>
> "cpu_context" is very generic name, especially taking into account that
> you are introducing a global variable with the same name. How about
> "resume_cpu_context"?

Ack.

>
> > + *
> > + * x0 - pointer to the storage where callee's context will be saved
> > + *
> > + * CPU context saved here will be restored on resume in hyp_resume fun=
ction.
> > + * prepare_resume_ctx shall return a non-zero value. Upon restoring co=
ntext
> > + * hyp_resume shall return value zero instead. From C code that invoke=
s
> > + * prepare_resume_ctx, the return value is interpreted to determine wh=
ether
> > + * the context is saved (prepare_resume_ctx) or restored (hyp_resume).
> > + */
> > +FUNC(prepare_resume_ctx)
> > +        /* Store callee-saved registers */
>
> How are planning to synchronise this code with actual cpu_context?
>
> I am pretty sure it is better to use offsets generated by asm-offset.c

Ack.

>
> > +        stp   x19, x20, [x0], #16
> > +        stp   x21, x22, [x0], #16
> > +        stp   x23, x24, [x0], #16
> > +        stp   x25, x26, [x0], #16
> > +        stp   x27, x28, [x0], #16
> > +        stp   x29, lr, [x0], #16
> > +
> > +        /* Store stack-pointer */
> > +        mov   x2, sp
> > +        str   x2, [x0], #8
> > +
> > +        /* Store system control registers */
> > +        mrs   x2, VBAR_EL2
> > +        str   x2, [x0], #8
> > +        mrs   x2, VTCR_EL2
> > +        str   x2, [x0], #8
> > +        mrs   x2, VTTBR_EL2
> > +        str   x2, [x0], #8
> > +        mrs   x2, TPIDR_EL2
> > +        str   x2, [x0], #8
> > +        mrs   x2, MDCR_EL2
> > +        str   x2, [x0], #8
> > +        mrs   x2, HSTR_EL2
> > +        str   x2, [x0], #8
> > +        mrs   x2, CPTR_EL2
> > +        str   x2, [x0], #8
> > +        mrs   x2, HCR_EL2
> > +        str   x2, [x0], #8
> > +
> > +        /* prepare_resume_ctx must return a non-zero value */
> > +        mov   x0, #1
> > +        ret
> > +END(prepare_resume_ctx)
> >
> >  FUNC(hyp_resume)
> >          /* Initialize the UART if earlyprintk has been enabled. */
> > @@ -580,7 +626,49 @@ FUNC(hyp_resume)
> >          b     enable_secondary_cpu_mm
> >
> >  mmu_resumed:
> > -        b .
> > +        /* Now we can access the cpu_context, so restore the context h=
ere */
> > +        ldr   x0, =3Dcpu_context
> > +
> > +        /* Restore callee-saved registers */
> > +        ldp   x19, x20, [x0], #16
> > +        ldp   x21, x22, [x0], #16
> > +        ldp   x23, x24, [x0], #16
> > +        ldp   x25, x26, [x0], #16
> > +        ldp   x27, x28, [x0], #16
> > +        ldp   x29, lr, [x0], #16
> > +
> > +        /* Restore stack pointer */
> > +        ldr   x2, [x0], #8
> > +        mov   sp, x2
> > +
> > +        /* Restore system control registers */
> > +        ldr   x2, [x0], #8
> > +        msr   VBAR_EL2, x2
> > +        ldr   x2, [x0], #8
> > +        msr   VTCR_EL2, x2
> > +        ldr   x2, [x0], #8
> > +        msr   VTTBR_EL2, x2
> > +        ldr   x2, [x0], #8
> > +        msr   TPIDR_EL2, x2
> > +        ldr   x2, [x0], #8
> > +        msr   MDCR_EL2, x2
> > +        ldr   x2, [x0], #8
> > +        msr   HSTR_EL2, x2
> > +        ldr   x2, [x0], #8
> > +        msr   CPTR_EL2, x2
> > +        ldr   x2, [x0], #8
> > +        msr   HCR_EL2, x2
> > +        isb
> > +
> > +        /*
> > +         * Since context is restored return from this function will ap=
pear
> > +         * as return from prepare_resume_ctx. To distinguish a return =
from
> > +         * prepare_resume_ctx which is called upon finalizing the susp=
end,
> > +         * as opposed to return from this function which executes on r=
esume,
> > +         * we need to return zero value here.
> > +         */
> > +        mov   x0, #0
> > +        ret
> >  END(hyp_resume)
> >
> >  #endif /* CONFIG_SYSTEM_SUSPEND */
> > diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/=
asm/suspend.h
> > index 31a98a1f1b..c127fa3d78 100644
> > --- a/xen/arch/arm/include/asm/suspend.h
> > +++ b/xen/arch/arm/include/asm/suspend.h
> > @@ -3,6 +3,8 @@
> >  #ifndef ARM_SUSPEND_H
> >  #define ARM_SUSPEND_H
> >
> > +#include <xen/types.h>
> > +
> >  struct domain;
> >  struct vcpu;
> >  struct vcpu_guest_context;
> > @@ -14,6 +16,30 @@ struct resume_info {
> >
> >  void arch_domain_resume(struct domain *d);
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +#ifdef CONFIG_ARM_64
> > +struct cpu_context {
> > +    register_t callee_regs[12];
> > +    register_t sp;
> > +    register_t vbar_el2;
> > +    register_t vtcr_el2;
> > +    register_t vttbr_el2;
> > +    register_t tpidr_el2;
> > +    register_t mdcr_el2;
> > +    register_t hstr_el2;
> > +    register_t cptr_el2;
> > +    register_t hcr_el2;
> > +} __aligned(16);
> > +#else
> > +#error "Define cpu_context structure for arm32"
> > +#endif
> > +
> > +extern struct cpu_context cpu_context;
> > +
> > +int prepare_resume_ctx(struct cpu_context *ptr);
> > +void hyp_resume(void);
> > +#endif /* CONFIG_SYSTEM_SUSPEND */
> > +
> >  #endif /* ARM_SUSPEND_H */
> >
> >  /*
> > diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
> > new file mode 100644
> > index 0000000000..e38566b0b7
> > --- /dev/null
> > +++ b/xen/arch/arm/suspend.c
> > @@ -0,0 +1,14 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +
> > +#include <asm/suspend.h>
> > +
> > +struct cpu_context cpu_context =3D {};
>
> Don't need to zero-initialize a global variable.

Ack.

Best regards,
Mykola

>
> > +
> > +/*
> > + * Local variables:
> > + * mode: C
> > + * c-file-style: "BSD"
> > + * c-basic-offset: 4
> > + * indent-tabs-mode: nil
> > + * End:
> > + */
>
> --
> WBR, Volodymyr


From xen-devel-bounces@lists.xenproject.org Fri May 08 10:57:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 10:57:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303471.1576853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLItj-0001C4-6I; Fri, 08 May 2026 10:57:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303471.1576853; Fri, 08 May 2026 10:57:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLItj-0001Bx-3E; Fri, 08 May 2026 10:57:35 +0000
Received: by outflank-mailman (input) for mailman id 1303471;
 Fri, 08 May 2026 10:57:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wLIti-0001Br-1s
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 10:57:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLIth-00CWDR-8r
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 12:57:33 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fdc196-5cb7-0a2a0a5109dd-0a2a450cc7f6-32
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 12:57:32 +0200
Received: from [52.101.70.18]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fdc19c-62f1-0a2a450c0019-346546127468-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 12:57:32 +0200
Received: from AM0P190CA0030.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:190::40)
 by DU0PR08MB9848.eurprd08.prod.outlook.com (2603:10a6:10:443::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Fri, 8 May
 2026 10:57:25 +0000
Received: from AM3PEPF0000A79A.eurprd04.prod.outlook.com
 (2603:10a6:208:190:cafe::c5) by AM0P190CA0030.outlook.office365.com
 (2603:10a6:208:190::40) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.20 via Frontend Transport; Fri,
 8 May 2026 10:57:25 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A79A.mail.protection.outlook.com (10.167.16.105) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Fri, 8 May 2026 10:57:24 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DU0PR08MB7785.eurprd08.prod.outlook.com (2603:10a6:10:3ba::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May
 2026 10:56:20 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9891.008; Fri, 8 May 2026
 10:56:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Y3nXOsBL/6yqUARtEf0nN8UhnxSRVb8TMKkqQZtllv+2jin0q2cRILfnzZ5LiNnbxDxK441p8+t5SNKxwxsCUUMpmdKgTyqKEQezDSMPsbv3MnmADs0UNWRExquYXCK85CWxhgmRmxrpG4vn9wTK/4P7EafquQhOVx6YEzMyt5E7frUoxaMgNkq0IlPMtSU3DvRtio7UU+ZwsHDCPEk06jfA3WDabtAi1Q6E0AiAFnYNI7KCeL8rCSNkMvdd4ZkuVCXoWJFEpRUEBKVp3TuIe601qoZTHHet6B7Wp4Ycd7XcoFJv7sr3Uf8uvmnH8OfG93TfWVFn1RtSZOn9PO4JnA==
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=CP/6vag/2app4BulpkySxH1/PFZBR4XPDOK7xYt4KPw=;
 b=Ju2VsYqmH5MzRG8FKUnrRTxAjHsbnFYG2PokrDIQrjanfFk5twQqz6RPAtX6Kr647JzKCIYXl8c2LwI3n8PHWudhutPPAIFvk94+gmFsX6k4I38Rx1jRnd21Vo1IIBjNkSlPXPktAv/WbMzMQVLij6rbeL4AkJn9YDjZ4Q1MEyGHjY8Io0I8bHnHLnYYP193548nPOg5BM7p5h+nEPN6vvjD2MA18VIVV16/FZbnA1XQdOnVQio9xv12kU4yjQynRPhw8oaI2BQMLmfDK83s6UdSjaFAPwOO4VbVs3HiSIxn1+yQFuRA+EHBNN/cEKzBk36OcJNz4RKr0c2MK0OY6g==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CP/6vag/2app4BulpkySxH1/PFZBR4XPDOK7xYt4KPw=;
 b=bumXGDCpyFoPvFB+de9EKYiS6MM2WEPy8HyxpAGWu8Pq6Jky8EbkYpiso6Fj99UCLNSZ9tvX3XdjXtEN4QZ1P7v8ItAEsai9Avd7E5FTa1yX9aUbIwjgHIU/3ADMWP6SJfqTjUmDhEKTLLRUZayBPe8mlZn30a27LrlFJyp8kWM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JceA6Issf6lfyo+veaT8MkTt/8o8Bh0t5xn0r+5xLCczd8llGI8Aoe5p6cEyx8jnsXvnx2vaJ67bMr7IrT4XLk6Y8NGkqtkOFflZUBxNIELhfbQFGMoipJBBiERgg4sAqW1+WFRHJo4fvADBUI+C4A6IbIEs78geBPKb4Co8FgwxJVRKSCbJjiX3KqNeQkhgTu4D3Bxptbanp7aNUUARQSqBUKUpjJqDqrujoCfSlA5qT47eL2zykAk+QL7P2JfHOIJO9bZS+c8tLGUP0hk338wM0CaSoekFPQ1JbQRAI4XMBL2p83Vv7JYmw1/ovbp4pqv6I7dvgz6dMnc/LrAK1g==
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=CP/6vag/2app4BulpkySxH1/PFZBR4XPDOK7xYt4KPw=;
 b=CPLgi7B+dVn1jvU6BqOgeMU9IsdAVfzdL1v3W9t4fgLT8T9lLbk50Q7lI4QQs7CwmsPslh7K+GKz6DJ9ZdeQ3EFxpP/O47skuAajqRwg7s771Ew77ki2Ov25CJqCpxLbGx71x/tHXqjMIXrAhNOFsfQz2DwEhZCzxPht+D5gMgsk4h5OX72z6j79mQwK94eXsP4J8LMEzxbvfthBwbAbESeQAijUPXj+eZwVVh4LRwJ9zMSuWotaPRR6bn+qzSQXW7/QivmGC0Ir1UQsFD+pE7NvCTiVKML1duXMCWPe91RXrhd0KgvKGFn5VDvg/F/RFC7raIsXxzR5CHtg9JoAtA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CP/6vag/2app4BulpkySxH1/PFZBR4XPDOK7xYt4KPw=;
 b=bumXGDCpyFoPvFB+de9EKYiS6MM2WEPy8HyxpAGWu8Pq6Jky8EbkYpiso6Fj99UCLNSZ9tvX3XdjXtEN4QZ1P7v8ItAEsai9Avd7E5FTa1yX9aUbIwjgHIU/3ADMWP6SJfqTjUmDhEKTLLRUZayBPe8mlZn30a27LrlFJyp8kWM=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v8 02/13] xen/arm: gic-v2: Implement GIC suspend/resume
 functions
Thread-Topic: [PATCH v8 02/13] xen/arm: gic-v2: Implement GIC suspend/resume
 functions
Thread-Index: AQHc0ZIp4iA20ItBV0OKtUp08vt6QrYCSMAAgAHGpwA=
Date: Fri, 8 May 2026 10:56:19 +0000
Message-ID: <CF8E0EB2-3048-4B04-B763-AE5EF1909416@arm.com>
References: <cover.1775125380.git.mykola_kvach@epam.com>
 <5e1951e1c17037e020de9c0eecb5fba94edcd9dd.1775125380.git.mykola_kvach@epam.com>
 <EB3F884F-FCD6-4AE7-84FA-79ABF31EA88E@arm.com>
 <CAGeoDV80QHdesYQF-J4fg7wYQ6RLNg6u27aQhj4F+JoM4hU3uQ@mail.gmail.com>
In-Reply-To:
 <CAGeoDV80QHdesYQF-J4fg7wYQ6RLNg6u27aQhj4F+JoM4hU3uQ@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DU0PR08MB7785:EE_|AM3PEPF0000A79A:EE_|DU0PR08MB9848:EE_
X-MS-Office365-Filtering-Correlation-Id: d2637cfb-077d-43cf-dab5-08deacf0967f
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|18002099003|22082099003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 Y8IXCuHDnDvIqdxFcEkmy2OYE+mlh902EPwVP6h1wqVVJ6YcIBy6brTDsgnaT6wrUyeCcN//KYIMmcACatvIG/Lf+97/2xia/jZxk8Ya8zRvr8EL+i2112dZzRXCGT11wkfoLDuGrre7/zAFziMB5BZ1oFYcmpvZcMy24d56b3Pfs8TsbaJTuAVc1DRQxYsArxgHLF7DuWAy6G2EoSVQ5+ijWqs9dVluSb+D/KNGFN+Q0TivrKwW7NlP6tGA1cEBsElUYf3jCzXVPLQ6TDcW6KNM6lNIYsByVoad71DYMe3o/JhmOVIN0jZloY/5fT5m7ZD3vNbkg+SXyIQPqHw4Kpo4kRjBQR/nceC4Eu5vOxyy/W3H6VpD59UZ7XHuv/lCDVlsbtPnvXLpXwJL3gA/fxlP4m1C8fsx9CI7IDZfWwTaAlaWsHGhQQIpKVZgFKiT4fqnjGZ/n62b86BPAhidrsVLuM6bwTwXyJt7sal4C3ZsiQKOfUTDYx34LoRES+OUyCq3bYL4J70GI9BrxMoR3bu76OFzE3mBcqpQwA75rKPyPCphcIVoEfw/YMkvqDb6IZyeKVHh9VkMehby9TvNuCKNJb56sb5top+ZhSoa3qSVKQ012UTjJRgWq9UshC+dmenJgMv05wp1P33hr+FtsxuBHJ9F0XvkMtd7kkCbv5OrzL/Ni8y9y6DIK37UzwD/9gMCTggNPaDlSpBRCmRu+33380Wns7e8si0bdKKKWg/hB0BcV1VliiB+Lb2bt8R1
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(18002099003)(22082099003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <64DC2241F4FD694490BE4BE0DEEA0BA0@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 T/ZA+Hlb2/EiAnpUuUQmiMTE/I/mBfEfdPiVD3cfZEIG9iJMsw4McciZHD4BT+VBLiMn7TdGwKkE07af1lGOHOjav6U1X05q3xOoPoBjw1iihIOCmtdol/eT9ZMYHQmh84kGTX+ff3WZo25pmBr9Wh9f8CKE9w/0wdBEwGFCiHBaaqxZuA0MaSqmZ9bVyHb7FlWhH9QoMD9U5H+2snAl1SUBbsn5OvXfgR/kg5CwYKE9Xt64It91rRn/DaTDetgAVkHou/cikRgqQGQFkOS/vZgvdO0vQeabcuhDZ5sX3N1OA46D2Yk3IDejzXygAziY4Ty3pFqhrPnIWG3PZXg1fA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7785
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A79A.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3de46763-1720-4326-c83e-08deacf06fac
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|35042699022|82310400026|14060799003|36860700016|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	kANu7JYov481KLFgJqaEuihC+FFt1+Y7GDTNlrGOxFqR6pDl0/KFy7mxq3lj6FSP6WVWCclr9CTDnclEU+UQ66FnAnIKeYeVo0LtshgsHEVKjKW8QSoFubfi4k5Ci7HSFJuGxUwVEVyUGUoJs3JDc7ObZ4Jm8JU0BkvGl5umMKEDG8AKClczZXPyxCrSLOxUJpH0/EQ6Qy2aK+0Q7yMhQEn8d97FtEMbJjORJvIVLeLfmhkDHkGshj4Yl2AkhEbzeypWIxS/tK5IvH1KyUZ/Wz1VpxwOUJfNKufswKsvX5+lK3cI24P93WJPLrpQG89eRp9irhUIUB1Yz+sdM5WUfaf0TeMT/TWqfTxhu+Ehp4pJLY9bVyANK+dUC8EdDcpjnM4+fv+uFOyfe1JPjhoeIMV7lWbw74kV5Gcrivv3mFNkUKpCUadRMcDJ4Wu5nhKQ8cPJUDeAV6lxPXiPScby/znhGXxjzVjnFBdl4s/BxVAJhn/zRYhSeWxbgo59+muHkuro9Bm+Yg2XvQeA4QAHGJrS4fuK84ISYYggH/kuMHi6j9KPWbOZmCyKeASXP9m6Hotg1ZAvGsqzm1f+27/Zgzq64K1FX2VOcyE3DGXNUKPJlSvt/xsPLC2/GaboBVbfnEsy4lw2TrhoZHeYLHNh8OYbXQgrXSRUZ46jP2/YO8JGnVJMAj9ikKvMOPyV9tO0wjcxyD5Libnn7BW5k+c762+4enIiJsZ6EnwPpFv6kHU=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(35042699022)(82310400026)(14060799003)(36860700016)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	OUDTY8huCFk90Q+7niQYWHtwO4Hc+BoHWb6JIhjbcdYSVGg+BwLb5CLviDcX6Q2SgP7Z/F9XYWU10qZReAn7OYT2Xv7RJFA/LdNL7XMrnWWl4fxbYi2n9nA6WOnsev0WtvKgB4ITtK05DIf9KNHrfwbFDdH6WIpDXEna9DoF0Q68+DmsySmuKFTR52LReV91aPYlyljUmEyB3awTb31+lJ2eH89mr4sQM8bR+dUnvAqXRonUiobBCWIgyNyQ7ZbxedK5i2zInbEYKILAcBSCFYr6SPoELy0ZIyZS2KWUcx6TMjgHtf/LtN3dI5P1DDyjMQLqjGUKKK4xEsorD9w5lsaVirbLHrF10W5m3BbK69hU8O9axnAvp3xw3B70IVhJUCjtxayJoGuEjtDUxuer1JQItr/r7yYPJiBH98Ll2lJQkaygo4jJhtdtTssi4uF2
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 10:57:24.9359
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d2637cfb-077d-43cf-dab5-08deacf0967f
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF0000A79A.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9848
X-purgate-ID: tlsNG-d25034/1778237852-E397DCF5-0B17D3D3/0/0
X-purgate-type: clean
X-purgate-size: 3958

SGkgTXlrb2xhLA0KDQo+IA0KPj4gDQo+Pj4gKyAgICAgICAgfQ0KPj4+ICsNCj4+PiArICAgICAg
ICBvZmYgPSBpICogc2l6ZW9mKGlycXMtPmljZmdyKTsNCj4+PiArICAgICAgICBmb3IgKCBqID0g
MDsgaiA8IEFSUkFZX1NJWkUoaXJxcy0+aWNmZ3IpOyBqKysgKQ0KPj4+ICsgICAgICAgICAgICB3
cml0ZWxfZ2ljZChpcnFzLT5pY2ZncltqXSwgR0lDRF9JQ0ZHUiArIG9mZiArIGogKiA0KTsNCj4+
PiArICAgIH0NCj4+PiArDQo+Pj4gKyAgICAvKiBNYWtlIHN1cmUgYWxsIHJlZ2lzdGVycyBhcmUg
cmVzdG9yZWQgYW5kIGVuYWJsZSBkaXN0cmlidXRvciAqLw0KPj4+ICsgICAgd3JpdGVsX2dpY2Qo
Z2ljX2N0eC5kaXN0LmN0bHIsIEdJQ0RfQ1RMUik7DQo+Pj4gKw0KPj4+ICsgICAgLyogUmVzdG9y
ZSBHSUMgQ1BVIGludGVyZmFjZSBjb25maWd1cmF0aW9uICovDQo+Pj4gKyAgICB3cml0ZWxfZ2lj
YyhnaWNfY3R4LmNwdS5wbXIsIEdJQ0NfUE1SKTsNCj4+PiArICAgIHdyaXRlbF9naWNjKGdpY19j
dHguY3B1LmJwciwgR0lDQ19CUFIpOw0KPj4+ICsNCj4+PiArICAgIC8qIEVuYWJsZSBHSUMgQ1BV
IGludGVyZmFjZSAqLw0KPj4+ICsgICAgd3JpdGVsX2dpY2MoZ2ljX2N0eC5jcHUuY3RsciwgR0lD
Q19DVExSKTsNCj4+PiArfQ0KPj4+ICsNCj4+IA0KPj4gSSBhbHNvIHNlZSB0aGF0IHdlIGRvbuKA
mXQgc2F2ZSBwZW5kaW5nIFNHSXMgc3RhdGUgKGJ5IEdJQ0RfQ1BFTkRTR0lSbi9HSUNEX1NQRU5E
U0dJUm4pIG9yIEFjdGl2ZSBQcmlvcml0aWVzIHJlZ2lzdGVycw0KPj4gc3RhdGUgKEdJQ0NfQVBS
bi9HSUNDX05TQVBSbiBbbGF0dGVyIGlmIHNlY3VyaXR5IGV4dGVuc2lvbiBhcmUgdGhlcmVdKSBh
cyB3cml0dGVuIGluIFsxXSDigJw0LjUgUHJlc2VydmluZyBhbmQgcmVzdG9yaW5nIEdJQyBzdGF0
ZeKAnSwNCj4+IHdhcyBpdCBpbnRlbnRpb25hbD8NCj4gDQo+IFllcywgdGhpcyB3YXMgaW50ZW50
aW9uYWwuDQo+IA0KPiBUaGUgR0lDdjIgc3VzcGVuZCBjYWxsYmFjayBpcyBjYWxsZWQgYXQgYSBx
dWllc2NlbnQgcG9pbnQgaW4gdGhlDQo+IFNZU1RFTV9TVVNQRU5EIHBhdGg6IGFsbCBkb21haW5z
IGFyZSBhbHJlYWR5IHNodXQgZG93biBmb3Igc3VzcGVuZCwgZ3Vlc3QNCj4gZXhlY3V0aW9uIGlz
IHF1aWVzY2VkLCB0aGUgc2NoZWR1bGVyIGlzIGRpc2FibGVkLCBub24tYm9vdCBDUFVzIGhhdmUg
YmVlbg0KPiBvZmZsaW5lZCwgYW5kIENQVTAgZW50ZXJzIGdpY19zdXNwZW5kKCkgd2l0aCBsb2Nh
bCBpbnRlcnJ1cHRzIGRpc2FibGVkLg0KPiANCj4gRm9yIFNHSXMsIEkgZG9uJ3QgY29uc2lkZXIg
R0lDRF9DUEVORFNHSVJuL0dJQ0RfU1BFTkRTR0lSbiBwYXJ0IG9mIHRoZSBzYXZlZA0KPiBob3N0
IEdJQyBjb250ZXh0LiBYZW4gdXNlcyBwaHlzaWNhbCBTR0lzIGFzIElQSXMsIGFuZCBJUEkgZGVs
aXZlcnkgaXMgYW4NCj4gaW50ZXJuYWwgc3luY2hyb25pemF0aW9uIG1lY2hhbmlzbSwgbm90IGFy
Y2hpdGVjdHVyYWwgc3RhdGUgdGhhdCBzaG91bGQgYmUNCj4gcmVwbGF5ZWQgYWZ0ZXIgU1lTVEVN
X1NVU1BFTkQuIEd1ZXN0IFNHSSBzdGF0ZSBpcyB2aXJ0dWFsIEdJQyBzdGF0ZSBhbmQgaXMgbm90
DQo+IHJlcHJlc2VudGVkIGJ5IHRoZXNlIHBoeXNpY2FsIEdJQ0QgU0dJIHBlbmRpbmcgcmVnaXN0
ZXJzLg0KDQphY2ssIEkgd291bGQgbWF5YmUgbWVudGlvbiBpbiB0aGUgY29tbWl0IG1lc3NhZ2Ug
dGhhdCB3ZSBleGNsdWRlIHRyYW5zaWVudCBJUEkvYWN0aXZlLXByaW9yaXR5DQpzdGF0ZSBhdCB0
aGUgc3VzcGVuZCBxdWllc2NlbnQgcG9pbnQuDQoNCj4gDQo+IEZvciBHSUNDX0FQUm4vR0lDQ19O
U0FQUm4sIHRob3NlIHJlZ2lzdGVycyBkZXNjcmliZSBhY3RpdmUgcHJpb3JpdHkgc3RhdGUgZm9y
DQo+IGludGVycnVwdHMgYWxyZWFkeSBhY2tub3dsZWRnZWQgYnkgdGhlIENQVSBpbnRlcmZhY2Uu
IFRoZSBmaW5hbCBzdXNwZW5kIHBhdGggaXMNCj4gbm90IGV4cGVjdGVkIHRvIHJ1biB3aXRoIGFu
IGFjdGl2ZSBwaHlzaWNhbCBpbnRlcnJ1cHQgY29udGV4dC4gSWYgdGhvc2UNCj4gcmVnaXN0ZXJz
IHdlcmUgbm9uLXplcm8gdGhlcmUsIHJlc3RvcmluZyBvbmx5IEFQUi9OU0FQUiB3b3VsZCBub3Qg
bWFrZSB0aGUNCj4gY29ycmVzcG9uZGluZyBpbnRlcnJ1cHQgaGFuZGxpbmcgY29udGV4dCB2YWxp
ZCBhZnRlciByZXN1bWUsIGFuZCBjb3VsZCBpbnN0ZWFkDQo+IGxlYXZlIHRoZSBDUFUgaW50ZXJm
YWNlIHdpdGggc3RhbGUgYWN0aXZlIHByaW9yaXR5IHN0YXRlLg0KDQpPayBJIHVuZGVyc3RhbmQg
bm93LCBidXQgaWYgd2UgYXJlIGV4cGVjdGluZyBoZXJlIEdJQ0RfSVNBQ1RJVkVSbiB6ZXJvZWQs
IHdoeSBhcmUNCndlIHNhdmluZy9yZXN0b3JpbmcgaXQ/IFNob3VsZG7igJl0IHdlIGluc3RlYWQg
aGF2ZSBhIHJ1bnRpbWUgY2hlY2sgdGhhdCBpdOKAmXMgemVybyBhbmQgaW4gY2FzZQ0KaXTigJlz
IG5vdCBiYWlsIG91dD8gQW5kIGluIHRoZSByZXN1bWUgcGF0aCB3ZSB3b3VsZCBvbmx5IHplcm8g
aXQuDQoNCkFtIEkgbWlzc2luZyBzb21ldGhpbmc/DQoNCj4gDQo+IFNvIEkgZGlkIG5vdCBhZGQg
c2F2ZS9yZXN0b3JlIGZvciBHSUNEX0NQRU5EU0dJUm4vR0lDRF9TUEVORFNHSVJuIG9yDQo+IEdJ
Q0NfQVBSbi9HSUNDX05TQVBSbiBpbiB0aGlzIHBhdGNoLiBJIGNhbiBhZGQgYSBzaG9ydCBjb21t
ZW50IGluIHY5IHRvIG1ha2UNCj4gdGhpcyBzY29wZSBleHBsaWNpdC4NCj4gDQo+IFBsZWFzZSBs
ZXQgbWUga25vdyBpZiB5b3UgdGhpbmsgdGhlcmUgaXMgYSBzdXNwZW5kL3Jlc3VtZSBwYXRoIHdo
ZXJlIHRoaXMNCj4gc3RhdGUgc3RpbGwgbmVlZHMgdG8gYmUgcHJlc2VydmVkLg0KPiANCj4gQmVz
dCByZWdhcmRzLA0KPiBNeWtvbGENCg0KQ2hlZXJzLA0KTHVjYQ0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri May 08 11:32:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 11:32:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303512.1576863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLJR2-0006dK-Ne; Fri, 08 May 2026 11:32:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303512.1576863; Fri, 08 May 2026 11:32:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLJR2-0006dD-JF; Fri, 08 May 2026 11:32:00 +0000
Received: by outflank-mailman (input) for mailman id 1303512;
 Fri, 08 May 2026 11:31:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wLJR1-0006d5-K0
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 11:31:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLJR0-00CcuM-MU
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 13:31:58 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fdc9a2-bab6-0a2a0a5309dd-0a2a4503c20a-38
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 13:31:58 +0200
Received: from [52.101.66.47]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fdc9ae-672d-0a2a45030019-3465422fc098-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 13:31:58 +0200
Received: from CWXP123CA0001.GBRP123.PROD.OUTLOOK.COM (2603:10a6:401:73::13)
 by VI1PR08MB5469.eurprd08.prod.outlook.com (2603:10a6:803:132::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May
 2026 11:31:51 +0000
Received: from DB5PEPF00014B98.eurprd02.prod.outlook.com
 (2603:10a6:401:73:cafe::8f) by CWXP123CA0001.outlook.office365.com
 (2603:10a6:401:73::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.19 via Frontend Transport; Fri,
 8 May 2026 11:31:51 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B98.mail.protection.outlook.com (10.167.8.165) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Fri, 8 May 2026 11:31:50 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DU0PR08MB9419.eurprd08.prod.outlook.com (2603:10a6:10:422::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Fri, 8 May
 2026 11:30:45 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9891.008; Fri, 8 May 2026
 11:30:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=gWrTilIqcL7CflzwETbISR34sZe3FAr3gk9jeaAL9SnWOcO3iSAKM8wncKNRGI9nbL9ghqVxp17BHS3eOCB11aPR/YcaIO4csHWAuuTGDi0Jc7XYxYTIc4qdoGAdn9fQrgT2s1WWUM7HRtYUWwBykw1bcB5rSSW5Je9raqNBXcYDhuRNOIrafkTZjQGFgFnH2rMryNMAbxlGQyQrOlXyYhe7912LfOQKLyTN2tFzNHnb5NPQ+t6/iKWtCtV2rx8jVdvfgcCjcHiwvNdSC6cVQghURLh6oj12oMIGZrSnVz0HKp/uV/SJgRTjL34xz3bkWeSysoTzwDdI/4BIcSKQPQ==
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=GXrmYd9cObh5a/fjr3BcrO3AayHA1BYx1QIStZJvvbA=;
 b=MKJEkQLf6Nxivp7H1gkrvy3IQQXQ9jqTTPL2Df2ao3z8XfMQHsVpnZefOaJHqdgPIiaI4sLdT76YoUo2oLDx5UoIqGC/ZVHpSaiOi/4Yg9bkxl/xaWfgDT+Vc2cAs//GwKwk7MqjP/GzPfVOn7TDANUlb3PnbbCNgnUK2mNyLDhCPxD6QUq/PPILmy3z+paFi82FPi3aCiIIa1SKlY0u/zhnt0I6r7GLGb7Iy3lqmV6iJZNJX5/jcVSkP6Me9N/d65VAfZL4lCyobkOBCnfZm7fg1wARFnW4BgleP10tAuRr3YAIXv7qLj0vG3rH5+/RvrMRL6UKikJ+HgPFswm2kg==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GXrmYd9cObh5a/fjr3BcrO3AayHA1BYx1QIStZJvvbA=;
 b=iiFVkOWXJv6erEPmj/9jGeOO3XcBK8m6J+oyA/qsVpNpK2pnvA2b+4wjJgzPVbBsWDT2hB/MLY5x3lnY5O6Cuj/JitF9+iwcQhjyCtMcMR6bqlXEn+ciZHLq7LavK0S3O8xdXcFLNRDNTcNZT6yPxjN6VlA7RM3LMJH8bafBAY8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ie9/Fz95TFJUinsjZUxRf/nYkC1wPres7l9AXKp38dyDzjy6YGnhIwWnUQw1yTNQ7QIdH1eEY27pCPWjDDJdaeN8kIkSkFdKOUu1Fs0ICcKpAi4QKdxni4nwYWdoipPUpC2y6eOwpAs3X6fs9hjlPxfWGAmEsN95WGdU0D5e132K+tb4l850QxlLi9ApsYGoQn6qMMHGzbNOvya38cHuAbfxR7XxXEiBpqTLE2PqWYB/Dw255yZKLq0SxY7fTZ4kPxJ6ouMG2MvMD/zrMpaSr4lmaUrToqwxOTIO+J549wEC32cT09bqrMBEEG/pIVP4tp/d2FRhRmj/ojQuRi8USw==
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=GXrmYd9cObh5a/fjr3BcrO3AayHA1BYx1QIStZJvvbA=;
 b=yBVBd7vMiv0d3g6EbhGJJTw7f4YIbHwauOS1t4qYagQK4FstiPRFfWWkiPJgNXWNWBcvjgpMICM2Rw2bSVCuvgfnG/xjF+xXAB78FnKZCUF7aP/kEz79+tHVwaS4EtENlL625mLX2qNPXEZyvGEy08AQ/Ri6G6wiDBUQjyeUCeSS3srvwb5x74PnCNOUfvrDqJo/k9tJf4NVhxZVULoAQejDWIN6skCRBtVM5vj7Umi57t1enmrAY9jGsSdzrupIcj10ngmW6KYNAprXSv9o06UAQfza82X3bxLCNhFa9H1Bp7fb0v9pcVlivlMkkGkMthcbzGF+imxeFdKBDNgtmQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GXrmYd9cObh5a/fjr3BcrO3AayHA1BYx1QIStZJvvbA=;
 b=iiFVkOWXJv6erEPmj/9jGeOO3XcBK8m6J+oyA/qsVpNpK2pnvA2b+4wjJgzPVbBsWDT2hB/MLY5x3lnY5O6Cuj/JitF9+iwcQhjyCtMcMR6bqlXEn+ciZHLq7LavK0S3O8xdXcFLNRDNTcNZT6yPxjN6VlA7RM3LMJH8bafBAY8=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
Subject: Re: [PATCH v8 05/13] xen/arm: gic-v3: add ITS suspend/resume support
Thread-Topic: [PATCH v8 05/13] xen/arm: gic-v3: add ITS suspend/resume support
Thread-Index: AQHc09iFdDokLL12tkS/bPm2SonHDLX/RtUAgATNjQA=
Date: Fri, 8 May 2026 11:30:44 +0000
Message-ID: <0BBBB87D-4A54-4378-BC30-4CFAB7553286@arm.com>
References: <cover.1775125380.git.mykola_kvach@epam.com>
 <5a42b7c32fadf21262b8342f27e685916d0e5812.1775125380.git.mykola_kvach@epam.com>
 <FDA8FF59-989D-42A8-9E75-1300E0B5EBD0@arm.com>
 <CAGeoDV_OkizsZj0hNXM3W84FpoeVjgSnzoRmAr3YtZj1Ri_3eA@mail.gmail.com>
In-Reply-To:
 <CAGeoDV_OkizsZj0hNXM3W84FpoeVjgSnzoRmAr3YtZj1Ri_3eA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DU0PR08MB9419:EE_|DB5PEPF00014B98:EE_|VI1PR08MB5469:EE_
X-MS-Office365-Filtering-Correlation-Id: 54bca822-3db0-47fc-4298-08deacf565cf
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700021|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info-Original:
 hANcNN98R3JKD4M3vKkCVZrQWpaTnAl1GkhNGBR0ew/TfScU0EklSBXZ+NHk8LvGm4hNZRvN5NGf2cOTWcW5EtxDUF00Zw223sd6nQxbO7KFko/ddZwRFrboBz97vK2ztVX6+JPGHJlrJRynt2fJb6yLcLRXZWt9tzP+RHk+QHGUa0SmVnvBhMFf9DHghfeVw1hqB/KDQXXPwR06edCI5E5CzrhjE6AyZeOD7LLdXmLT/CeBwHJ9Bw60vFGj+vkyNfmT9YVNYxNFKVmZHFn4+CCNrxuuxJvFGSL4phjUs+eki7+bU+UKgnUvMoxWoyOa5hEyC25IhmarDCBhCK+JEr8nGynHY3f8NY8/wavRhzDesiRud9P/p3Fq9Gk1ek3rpNbSqzFv9H7WtdxLIendJX5TUyTtstuvVLOGpBEhh+n9F5Bc/LYC0MMzQ6403preohkb1DykEuM/2KwO3PwWx/ZKzuIIRYzv0uRHHRMt7uJm60z+TkUa3a0roHA6oo8dGO9bjcic/O/HGU++91RfhQOxN++hjk0WW/Gjo7OIjOTvp1u5up6LVSN2mvBmYhDXri7dDi6ypSw1mLSBTnECdzYxzMXPCNNd6pwp2+ZrDEAb1/Zaigt5shJpJeFeVsJ5N3rL5eGCeMR73S+iOGRREHv6dj1/6vdDlVE+SLOZ90OHaISDofPcCKzSqMfDwhfi2QQY09/r0qUG/w/pLHnzKPcgxbiwpRW2r2T4nMuRS3KYCQUx7A5xTpA1eU4zCUjp
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(38070700021)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <E69A7E1EBFDC4E4AA144248ACEC0FE21@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 poS2T9ChR2VaMFlXyS7PbfdvEtFThqjCRYRePuwXeAk8Qdx08c7FPpFx72qVK0eaV4PImqNSQ8bq7BKAWlrgtLssSsUtn19bliRM/BTXl++Bx+OIpTVmtBIx6M2l/coczfLvBzMEChIpGDrR4aQvr5ebmwYZk+9wbV7hIHSt0EuVq53DtzfpwuwU96ysyAGI1PKjzIjQGnOuslBahcd8CDd8EKTHEn0g9IBd2q/j26eYQRXLdIHMJGVUdGnR/2Z2YUpaMl1159W8nlUAPNk/BgxOIZpzETuXlGdlAefGl0/Xf/rnHxbUoedZ7ci70eqTWwuB6q4APS0Ag61pU0T7Nw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9419
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B98.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	496f355d-e68a-4b4a-6e66-08deacf53e92
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|36860700016|1800799024|14060799003|35042699022|82310400026|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	83I1KyOlO3/fPGNqyR8IztVgNzexj7eMmD9zB4zXtcAihE89IWTnTF7UsF3/Jj+NVAyenNXsIb4bd5ie6sq8Jj2T1dh4rjPfW6/hnBCOinObhEQ9C43AoaNteAPEtBXoXHlGAUos+DOZHDffFU3vULcMsOXencl2NA9cCNO50TAbkXVBbptHqwINU+4+1hsSr3YfqPxa7RjAsDMjrn+nSRw8/eKXsmYQD49JBVvdlairYamf1Ba9OJTaLgj2sGXo+9TOzvgXRtv8bB1ZZ5vFuiffTX+kQ3eBDIQxDcORWCE1Kt/WR9GDn1UXs/SrOoG8+OkvJh6r9FK6M/5kTWSDKdvm/nJK5cYDN4DIeJpIJUOmPtJr8qzrmuQ4rTOGB7HOhAMKYnxd56JmfNcaoGY7n7bTGoGyhgpePLhLhZS67ykCwirX3PTwkJNc07QLWeUb+vUgJr0l3krOS6QuldpGAHHIAeTLafEgjg5HBvxDzGzEaK6Db6lXSJgksquOob64IMsDEy7izPxbToUMK2OVj/kJaONdC/RtNNlcXMeq/fXOkX2kpiVFf9jtme1cnhhdqIQ4WAqzELZSfoGoWT4JJEVNs1loPi/5aa3HMfLfLut9P9Ol0W6VCQIRD/wv0dGK8jk/rUTAsfOkBzFVAtIXxJl4A9DI3ATMFm8sw6joW44xBa+sZjeNrB5ejaNus/xXJFBtU50E+EwASb3Kvj4FAcW6N74S1tNGMC2kvmHwM90=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(36860700016)(1800799024)(14060799003)(35042699022)(82310400026)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ICNgz5KVBxJHFyfd13naK7U6My9HhYTlgW+sB7F3lPRKdtl+L+x7sF5zjThcaWqVtBZObXLZkfGRjWCEjcQLi+9UsQuHuwyQhcQl/amvrcelKqcoXvLeGOWOE3ETpAXyy3FENdsHgez0NVlCqDW9N1mvgqd8of1t8OEnYjmqUOrkGd36E0u9YHHfqV41gceKzqW4r0NOes4tpG/PGQHrRNPnQakVnAStmuJoeMefQbCWFWm48V/X7/y4mxXkPPi50SNQnzcnx2KjzSuS8ZI974A9VyO4RlXzFbDoVCQnu5pvF4WDNAku9Kc9Ro0vqYFVd716Xw9msapMTeEsnP6f/2NQ+zh/wnSUhJEW6FnQDJA/I8/7rBoBcYyAxk4q3G0F/DU/zymjnAVUTELugCzRg3esEALY9aTyZYzwOkaRy5MCs6zfMvQB4CXZJqEHGZtl
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 11:31:50.7223
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 54bca822-3db0-47fc-4298-08deacf565cf
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B98.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5469
X-purgate-ID: tlsNG-33051d/1778239918-38776938-A8DADC0F/0/0
X-purgate-type: clean
X-purgate-size: 4020

SGkgTXlrb2xhLA0KDQo+IA0KPiBPbiBGcmksIEFwciAyNCwgMjAyNiBhdCAxOjU04oCvUE0gTHVj
YSBGYW5jZWxsdSA8THVjYS5GYW5jZWxsdUBhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gSGkgTXlr
b2xhLA0KPj4gDQo+Pj4gT24gMiBBcHIgMjAyNiwgYXQgMTE6NDUsIE15a29sYSBLdmFjaCA8eGFr
ZXAuYW1hdG9wQGdtYWlsLmNvbT4gd3JvdGU6DQo+Pj4gDQo+Pj4gRnJvbTogTXlrb2xhIEt2YWNo
IDxteWtvbGFfa3ZhY2hAZXBhbS5jb20+DQo+Pj4gDQo+Pj4gSGFuZGxlIHN5c3RlbSBzdXNwZW5k
L3Jlc3VtZSBmb3IgR0lDdjMgd2l0aCBhbiBJVFMgcHJlc2VudCBzbyBMUElzIGtlZXANCj4+PiB3
b3JraW5nIGFmdGVyIGZpcm13YXJlIHBvd2VycyB0aGUgR0lDIGRvd24uIFNuYXBzaG90IHRoZSBD
UFUgaW50ZXJmYWNlLA0KPj4+IGRpc3RyaWJ1dG9yIGFuZCBsYXN0LUNQVSByZWRpc3RyaWJ1dG9y
IHN0YXRlLA0KDQrigJxTbmFwc2hvdCB0aGUgQ1BVIGludGVyZmFjZSwgZGlzdHJpYnV0b3IgYW5k
IGxhc3QtQ1BVIHJlZGlzdHJpYnV0b3Igc3RhdGXigJ0gaGFwcGVuZWQgaW4gdGhlIGNvbW1pdCBi
ZWZvcmU/DQoNCj4+PiBkaXNhYmxlIHRoZSBJVFMgdG8gY2FjaGUgaXRzDQo+Pj4gQ1RMUi9DQkFT
RVIvQkFTRVIgcmVnaXN0ZXJzLCB0aGVuIHJlc3RvcmUgZXZlcnl0aGluZyBhbmQgcmUtYXJtIHRo
ZQ0KPj4+IGNvbGxlY3Rpb24gb24gcmVzdW1lLg0KPj4+IA0KPj4+IEFkZCBsaXN0X2Zvcl9lYWNo
X2VudHJ5X2NvbnRpbnVlX3JldmVyc2UoKSBpbiBsaXN0LmggZm9yIHRoZSBJVFMgc3VzcGVuZA0K
Pj4+IGVycm9yIHBhdGggdGhhdCBuZWVkcyB0byByb2xsIGJhY2sgcGFydGlhbGx5IHNhdmVkIHN0
YXRlLg0KPj4+IA0KPj4+IEJhc2VkIG9uIExpbnV4IGNvbW1pdCBkYmEwYmM3Yjc2ZGMgKCJpcnFj
aGlwL2dpYy12My1pdHM6IEFkZCBhYmlsaXR5IHRvIHNhdmUvcmVzdG9yZSBJVFMgc3RhdGUiKQ0K
Pj4+IFNpZ25lZC1vZmYtYnk6IE15a29sYSBLdmFjaCA8bXlrb2xhX2t2YWNoQGVwYW0uY29tPg0K
Pj4+IC0tLQ0KW+KApl0NCj4gDQo+PiANCj4+PiArICAgIHsNCj4+PiArICAgICAgICB1bnNpZ25l
ZCBpbnQgaTsNCj4+PiArICAgICAgICB2b2lkIF9faW9tZW0gKmJhc2UgPSBpdHMtPml0c19iYXNl
Ow0KPj4+ICsNCj4+PiArICAgICAgICBpdHMtPnN1c3BlbmRfY3R4LmN0bHIgPSByZWFkbF9yZWxh
eGVkKGJhc2UgKyBHSVRTX0NUTFIpOw0KPj4+ICsgICAgICAgIHJldCA9IGdpY3YzX2Rpc2FibGVf
aXRzKGl0cyk7DQo+PiANCj4+IFRoaXMgaXMgY2FsbGVkIGZyb20gc3lzdGVtX3N1c3BlbmQoKSwg
YWxvbmcgdGhlIHBhdGggaW9tbXVfc3VzcGVuZCBhbmQNCj4+IGNvbnNvbGVfc3VzcGVuZCgpIGFy
ZSBjYWxsZWQsIGZpbmFsbHkgcmVhY2hpbmcgZ2ljX3N1c3BlbmQoKSBhbmQgdGhpcyBvbmUuDQo+
PiANCj4+IEluIHRoZSBJSEkgMDA2OUguYiwgNS42LjIgRGlzYWJsaW5nIGFuIElUUywgaXQgc2F5
czoNCj4+IOKAnEVuc3VyZSB0aGF0IGFsbCBpbnRlcnJ1cHRzIHRoYXQgdGFyZ2V0IHRoZSBJVFMg
dGhhdCBpcyBiZWluZyBwb3dlcmVkIGRvd24gYXJlDQo+PiBlaXRoZXIgcmVkaXJlY3RlZCBvciBk
aXNhYmxlZOKAnSwgaXMgaXQgY29ycmVjdCB0byBhc3N1bWUgYWxsIHRoZSBJVFMgdGFyZ2V0aW5n
IHNvdXJjZQ0KPj4gYXQgdGhpcyBwb2ludCBhcmUgZGlzYWJsZWQgYmVjYXVzZSBkb21haW5zIHNo
b3VsZCBiZSBhbHJlYWR5IHN1c3BlbmRlZD8NCj4gDQo+IFllcywgdGhhdCBpcyB0aGUgYXNzdW1w
dGlvbiBoZXJlLg0KPiANCj4gQmVmb3JlIFhlbiByZWFjaGVzIHRoaXMgcGF0aCwgZWFjaCBkb21h
aW4gbXVzdCBhbHJlYWR5IGhhdmUgZW50ZXJlZA0KPiBTSFVURE9XTl9zdXNwZW5kLiBJbiBvdGhl
ciB3b3JkcywgdGhlIGd1ZXN0IE9TIGhhcyBhbHJlYWR5IHJlcXVlc3RlZA0KPiBTWVNURU1fU1VT
UEVORCBvbmx5IGFmdGVyIGNvbXBsZXRpbmcgaXRzIG93biBzdXNwZW5kIGZsb3csIHNvIHRoZQ0K
PiBJVFMtdGFyZ2V0aW5nIGludGVycnVwdCBzb3VyY2VzIG93bmVkIGJ5IHRoYXQgT1MgYXJlIGV4
cGVjdGVkIHRvIGJlDQo+IHF1aWVzY2VkIGF0IHRoaXMgcG9pbnQuDQo+IA0KPiBTbyB0aGlzIGNv
ZGUgcmVsaWVzIG9uIHRoZSBvd25pbmcgT1MgaGF2aW5nIGRpc2FibGVkIG9yIG90aGVyd2lzZQ0K
PiBxdWllc2NlZCB0aG9zZSBzb3VyY2VzIGJlZm9yZSBpc3N1aW5nIFNZU1RFTV9TVVNQRU5ELCBy
YXRoZXIgdGhhbiBYZW4NCj4gZXhwbGljaXRseSBkb2luZyB0aGF0IGluIGdpY3YzX2l0c19zdXNw
ZW5kKCkuDQoNCk9rISBJIHdvdWxkIGJlIGZvciBhIGNvbW1lbnQgc3RhdGluZyB0aGlzIGFzc3Vt
cHRpb24sIHVubGVzcyB0aGUgbWFpbnRhaW5lcnMgZGlzYWdyZWUNCg0KPiANCj4+IA0KPj4gDQo+
Pj4gKyAgICAgICAgaWYgKCByZXQgKQ0KPj4+ICsgICAgICAgIHsNCj4+PiArICAgICAgICAgICAg
d3JpdGVsX3JlbGF4ZWQoaXRzLT5zdXNwZW5kX2N0eC5jdGxyLCBiYXNlICsgR0lUU19DVExSKTsN
Cj4+IA0KPj4gaGVyZSBhbmQgaW4gdGhlIG90aGVyIHBsYWNlcyB3ZSB3cml0ZSBHSVRTX0NUTFIs
IHRoaXMgcmVnIGhhcyBRdWllc2NlbnQgYXMgUk8sDQo+PiBtYXliZSB3ZSBzaG91bGQgbWFzayB0
aGUgd3JpdGUgdG8gb25seSB0aGUgb3RoZXIgYml0cyB0aGF0IGFyZSB3cml0YWJsZT8NCj4gDQo+
IFllcywgdGhpcyB3YXMgaW5oZXJpdGVkIGZyb20gdGhlIExpbnV4IElUUyBzdXNwZW5kL3Jlc3Vt
ZSBjb2RlLCB3aGljaCByZXN0b3Jlcw0KPiB0aGUgc2F2ZWQgR0lUU19DVExSIHZhbHVlIGRpcmVj
dGx5Lg0KPiANCj4gVGhhdCBzYWlkLCBtYXNraW5nIHRoZSB3cml0ZSB0byB0aGUgd3JpdGFibGUg
Yml0cyBpcyBjbGVhbmVyLCBhbmQgSSB3aWxsIGRvDQo+IHRoYXQgaW4gdGhlIG5leHQgdmVyc2lv
bi4NCg0Kb2sNCg0KQ2hlZXJzLA0KTHVjYQ0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri May 08 11:34:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 11:34:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303525.1576875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLJTd-0007Fl-8N; Fri, 08 May 2026 11:34:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303525.1576875; Fri, 08 May 2026 11:34:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLJTd-0007Fe-5H; Fri, 08 May 2026 11:34:41 +0000
Received: by outflank-mailman (input) for mailman id 1303525;
 Fri, 08 May 2026 11:34:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <kevin.brodsky@arm.com>) id 1wLJTb-0007FY-AT
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 11:34:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLJTa-006zPi-Ni
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 13:34:38 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <kevin.brodsky@arm.com>)
 id 69fdca43-e002-0a2a0a5209dd-0a2a4501b148-18
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 13:34:38 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <kevin.brodsky@arm.com>)
 id 69fdca4d-c1f2-0a2a45010019-d98c6eacba5e-1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 13:34:38 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D79FB1BCA;
 Fri,  8 May 2026 04:34:31 -0700 (PDT)
Received: from [10.57.35.71] (unknown [10.57.35.71])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 03E453F836;
 Fri,  8 May 2026 04:34:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="Date:Subject:To:Cc:References:From:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778240077; bh=jpZIElX28Dxn2BuY+beEs3GW5syLtcYHN+XpcMGjiFY=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=qWY/h57NvsKI49wz5DLKCCIr5xt/2ZZ45prTKDk+k2p1b/f0g3KzD2HptIGsv57/7
	 Cn8Q+/nIpPWjY6vPElWyfJxqykz/kSw45oYJP1XQ+5x5kNRCq3/CshZUowk9OAEXpt
	 jz9cOa/8qtz+tVpsMrRjfOVZKv2x0bUlnB7OZt4Y=
Message-ID: <265c0534-b480-4ab8-8f8a-2b5b8e7ca591@arm.com>
Date: Fri, 8 May 2026 13:34:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
References: <aaBH3EAchUwKhrUA@mail-itl>
 <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@citrix.com>
 <c712c06f-7fcf-4876-b2d7-f2b7bc6f0dea@suse.com> <adIuP7-sNwuOid80@mail-itl>
 <5d068304-837d-4aef-b8a7-87c91ccf96b4@arm.com>
 <c6855bd1-5b41-470b-8942-a4ebe3b5de0b@suse.com>
 <15645d19-f19d-4955-8315-0188aa834eb6@suse.com>
 <7f123733-2ec2-436e-bb0c-67b3e9f80735@arm.com>
 <be5b5e70-a61e-4803-9f40-873ce5381328@suse.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <be5b5e70-a61e-4803-9f40-873ce5381328@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778240078-AF555FF4-16C3EFE4/0/0
X-purgate-type: clean
X-purgate-size: 1025

On 08/05/2026 12:09, Jürgen Groß wrote:
>
> OTOH I don't like the multiple conditions used for testing
> (state->enable_count,
> TIF_LAZY_MMU_UPDATES, xen_lazy_mode).
>
> Another variant would be to just let the Xen specific code tolerate
> the double
> calls by disabling preemption in the Xen code and checking via
> __task_lazy_mmu_mode_active() if anything needs to be done.
>
> I'd really like to get rid of xen_lazy_mode completely.

That certainly crossed my mind, but I didn't feel qualified to perform
that kind of surgery, especially considering XEN_LAZY_CPU. There is
presumably a good reason to track this one via a percpu variable, but
for the MMU side it feels like this creates more problems than it
solves. Maybe it is possible to keep XEN_LAZY_CPU untouched while
removing XEN_LAZY_MMU and using is_lazy_mmu_mode_active() instead? If we
do that, I don't think preemption is a concern - the lazy MMU mode is
only relevant for current and cannot be used in interrupt context.

- Kevin


From xen-devel-bounces@lists.xenproject.org Fri May 08 12:22:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 12:22:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303561.1576884 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLKDh-0005vu-N9; Fri, 08 May 2026 12:22:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303561.1576884; Fri, 08 May 2026 12:22:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLKDh-0005vn-KF; Fri, 08 May 2026 12:22:17 +0000
Received: by outflank-mailman (input) for mailman id 1303561;
 Fri, 08 May 2026 12:22:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wLKDg-0005uv-2S
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 12:22:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLKDf-009iXw-4R
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:22:15 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fdd572-bab6-0a2a0a5309dd-0a2a450b8786-14
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 14:22:14 +0200
Received: from [52.101.66.43]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fdd575-212f-0a2a450b0019-3465422bafcf-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 14:22:13 +0200
Received: from DU2PR04CA0192.eurprd04.prod.outlook.com (2603:10a6:10:28d::17)
 by AMDPR08MB11411.eurprd08.prod.outlook.com (2603:10a6:20b:717::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Fri, 8 May
 2026 12:22:11 +0000
Received: from DB5PEPF00014B9E.eurprd02.prod.outlook.com
 (2603:10a6:10:28d:cafe::fd) by DU2PR04CA0192.outlook.office365.com
 (2603:10a6:10:28d::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.17 via Frontend Transport; Fri,
 8 May 2026 12:22:11 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B9E.mail.protection.outlook.com (10.167.8.171) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Fri, 8 May 2026 12:22:11 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DU0PR08MB9463.eurprd08.prod.outlook.com (2603:10a6:10:42d::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Fri, 8 May
 2026 12:21:06 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9891.008; Fri, 8 May 2026
 12:21:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=wBfhKe/BXq7Pg65qnWeUwKpOf+nZtSWWIZuY5qQhPNTlihu00Z2yUubJEV2cbM51LeTX+0bUpnLB4q5EauS25DAX8UQsr4z2F74DjfAUgprKVQfnsHpnIQGg07X71aGDV/1zkmaVLLx/Q3+5eEfFuO6uC47uQP6hBVIAM4EgaaZp7fPEecGOO3L9UQLYFgXdxH6DuC0z6kwfe1ZkyimuZYpckCG7zn9z4bC0+MC/wWmrh61NSQX861lnM6sjCJPb7U8xL90gIhIRQVPlZZiSu8VrBKvyDEUcFNTlBZ1hmB1oJGXoKLGM/x7uBAtbAXQz3IHeUsPMLZgnAXoDlNdSVg==
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=wf0JaJBKE0RAKiGaPOhcJUVQ94p3+JHF0ZQ9XWx17YI=;
 b=XcDxs43iRJW9aOUTMK3N2nRFaxuBadxeqovSz5BHEgPNAVjbBqCZCBFeAoM1AQRI/eo+Okb2kGlKn6YgSDx6OQJ5w+r5SrYM7n8srdnM2K0hjCD0FaBhwV5Zu3Wy7i2qu7DhkFHcvNdbU050aWFL+odw8AFTLNpXfhNMTnaUZPcX0r4y+V64uiRh1t0xEhB16PwC/V7JxRP7s5w4ZYusRvsge6rOPbcWZUNrnVNX2IOwF5dgBIKwThco92hIPvuIO9A9eIXGBfWBtyvmN6U7s+ZB7Htt2B3znnBgYoqbSC0aFgdIV4yIyjT4lpBFvXDjnVOqsjmifS4S7quAspXZnQ==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wf0JaJBKE0RAKiGaPOhcJUVQ94p3+JHF0ZQ9XWx17YI=;
 b=gbnaNSPPwATeUI1alwIDdY+WdnarsOHBF5YkNKGWPCpf7qCxbWg/SCUwjxBLacRqh19797HPRIq9WkYwwrY9vPQxgSwfrjBgXL6bm278lhNY3RVRxTQL5pMQJqqMCElaXbA2dTMzhAD+J4dqOJDtpI08ktKoMcUADaNFNLwBdes=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RSSO2CYNCSeqxo18qF7wjC+BQ+MRMKd8jMaRhfdwnPBZXlXwS4CsfjdPF16TWsYSdXhm43KzRuhWcaWLsxJjZ5ltIhNOn8kPyH+ijSCanOmstiACwJ0PpKJ3TzeeWk8OV38jkTCYATNh5ASCtSiDcHs6FL9HMsIQxlTj8QShsyNcmqYgTaxClyubnNqrC59UKPZh+qk3XRNbx5bxrK3xsWzaJNQNf4Jpld+3Nn9TyCdyYwLuKOdmtD9FPt2c6A4iT2OM1L0GD0lcLVydhOuIc8Zsg+mXALzeGzbYKKuOjxJvpwAgyV1bg73YejJYvEyMcqnSt8bksn1y/0Gd2eYbuQ==
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=wf0JaJBKE0RAKiGaPOhcJUVQ94p3+JHF0ZQ9XWx17YI=;
 b=T8ZuARX0ItsdeNiZZ+841/XWMe7O5Ohph8ZEctv76gWVjxfPFblwX3XhYeBDm7KRlX0ObLly4PGZlkjD4UcCZeBOk9ychP24S0Yauv9nLVSga2RR+K0MS9yIUAi5hgGPwUAlKKe1eQlGpTgD9RL1LtnXgLcWpcOoHD0IO4QO8lc2nborFyJm0V8St1DDyR23biL6J1Q4XqwE3szBmpmZNwx1CmoGXpYok0boJuCBeiaq51yMihgfDdZIflUtvmnY80eVoxbFa30LqUGuCjcTtclZAbdOnJJ9lMopNiOE8O85rtfo7EzFBrEXvkZ7ofButBmBLa3fQX9ez/RD2Uwluw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wf0JaJBKE0RAKiGaPOhcJUVQ94p3+JHF0ZQ9XWx17YI=;
 b=gbnaNSPPwATeUI1alwIDdY+WdnarsOHBF5YkNKGWPCpf7qCxbWg/SCUwjxBLacRqh19797HPRIq9WkYwwrY9vPQxgSwfrjBgXL6bm278lhNY3RVRxTQL5pMQJqqMCElaXbA2dTMzhAD+J4dqOJDtpI08ktKoMcUADaNFNLwBdes=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Rahul Singh <Rahul.Singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v8 09/13] arm/smmu-v3: add suspend/resume handlers
Thread-Topic: [PATCH v8 09/13] arm/smmu-v3: add suspend/resume handlers
Thread-Index: AQHc1k50BMsvUkAtf0yXvEOre8XAa7X/maIAgASD5YA=
Date: Fri, 8 May 2026 12:21:05 +0000
Message-ID: <6E040BE7-0133-46AE-8B5C-85EA02704285@arm.com>
References: <cover.1775125380.git.mykola_kvach@epam.com>
 <038337ec0e3f1474c6cc6a92090e28c6972e4dc6.1775125380.git.mykola_kvach@epam.com>
 <F5384D51-933E-48E6-AE7E-B54022AEAE11@arm.com>
 <CAGeoDV907jTK5RsN51ezapA5inhvG1jWpeybbqF=LkxWcEGnbQ@mail.gmail.com>
In-Reply-To:
 <CAGeoDV907jTK5RsN51ezapA5inhvG1jWpeybbqF=LkxWcEGnbQ@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DU0PR08MB9463:EE_|DB5PEPF00014B9E:EE_|AMDPR08MB11411:EE_
X-MS-Office365-Filtering-Correlation-Id: 04ede8a7-0907-41a8-66d8-08deacfc6e45
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info-Original:
 Z1ypXST/ke6KOUR3r6C/+J/mu0fGGdf5O3+Usy0iyOYEpQ5frwoPwqYj3pFv+2RV03LVG+33ChkQ2HveGRZ9EECsSScpZQcvskabgnaHaBgy3LVMAoG62wkJuG5tF23ZJqbvyjLv61N5aIvsu9PcvSvBEkgxIAkBq9EtzpmP5SO5ktFjlZgVLNFoAnC+qhqgV+xOY8+xSDe5uvkm/FfHoC0Rx0xG/TUOeYz5EUEw91gPnNliniNHrodFmJzRA0LnAqsHqyAOQ8ByNHaChMafPTjTTH6WhtnU+DzPhVCwaF6dIQr3JsMmOqxG3nXwRzccD3muX6237PrlnnzrVo+zGMX9ZReUwMaiUqXHyr8uYYwiVhUC3+31NCqFa23v89ZMhcTvfKtZ9/LpZGR19JyeJzN9wEbOe4r5Q4KLvXpz4aAkz9nkzqiRmOnaMts8CYyJ07JJTR4QVr6qlO5RXZnpmTcQqW6FtST+fulrw3nh8G4rxH7E+jd3CgGiTmHhsTkTUpJUobFuEuyf8knfbGEbWW+LxfZHjwCFcfoIuPNt3ZksTTUQw+NzLnCsZaeXdx1cJS8E4xpGJIWXW5k3VvhLnQMLIrAT0o8ArsNz1v0eChQb14bcYap4c+NandbnaKT1gPhvmwQNqcc4oKsZ78JkBtwVoMJ0NECx4nwO83JNyIXoDobrEiD+Oji1QwxYwhkYbwZyw79QdA36MPQXuEPia8vnRZ0mc+aI7SwGEVOfhlA2EW8OtFd9jMvioeUkxhas
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <C0F84952B5B2094A815CF59D431B3EFD@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 WrZWfiJOxdKsCRAFzyFQXvDK7x2tX9+SWqF1jkuZ9kV1mOJ+2OXcPaALVed6T93LOO4BdrfvaQqU/dMly9HZ8VTQDfDrLmIVyMC2bv50D5tnaxe1+vOB5QfVzA5H9i6ZSjzC59uxKiz6C1q03Klh8GBjFTDR5IGX16aCd8TC/zfOFLHF7f5t8ON5V3zP+TtgE1MC2XZ/DxjjytFy8QmMVGujle5kVMVQavw088vIFSEJ5SzOuFB4Tg/ZMGA6zGCUEFhXMxU2vB+SbMnQlG0XaLyYkgCPDxpFR9G1esAPea2p6X/Bac0L2OxSg+dqYSz21QOvmT0hflUpfOhQDFMR4Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9463
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B9E.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	33e35064-f4b9-48a2-9fbe-08deacfc4715
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|35042699022|36860700016|14060799003|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	SR5ZatuIpAJmOUlS1wdOhqXs76PCfsGUxAx23VqGbvbQeOBarJ9wxB4iG3aRItT09CZ+tDEkQKGrZ/EcloNazqybspZkyw7nsuSCKGA4PVe0Ck/KYRtzytLikk6sSUw+eK+X1jIQFmdI5xmzRbOopDiQol+Ahe3WiJIA+WrW7SAGgHLqHCyLX8DqIaUb35u4qxsJpvmp8Bdq7heDO8gZdrY7K0hnBgqx8kZ705UdMC5JUDOQCpnEAF3Y7V7noVu2qAtkam9Bp4+GyB5gykrVaxJSz4FucrfYUmO0y+SlATwDK26stlPaXt25GuEp7h9Dj1/eCSxDxcj4XySptccH6NIV2yQhA0Q2vW84xpaudGAF0QucygW4YSffnqFdYYEo1vbQP9wX2NSncs6+uAXyLG79kyTbpao82LiHEE92h7itdaaNE4CBNvTcJEAOJjNiFnfi4qtcbo6pc4zE8aPClJTJI3ROWgfYyW/Xmk4uoXsOmabmR7IKKFtS6wdqs1q0lKLXrj7FdS53pIrPFpOlOv3i/klOd3dEOP1xcC9YKxWl3+/kIBJygXz3/cjWXcnNOxSpGrFHsrAca5oxdgJ44R7vJ2uLohqJS2QiR+hTbRTl5gkYzUAEwWn+T5QRIXB0oN1Y6PgluRPd/mgg+bR8Qi8huaU/lgV2TaEkHfFFqj7IYs97iVZu+qsR7WXqVOf02jBnePf9P53nHyv4jNRIcPaMAWXsyz4wu9l3/qYdVLrgYhBqHYWJKTN5AN7J8wgt
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(35042699022)(36860700016)(14060799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	8J5c6MPthQh3qoz1SYLJOOifPI9aek3Q9a8so32CDj0lv7Erz5wDCY+4J1pqrcUdjwVv6hr/gHh18LKEMCARO1kfzaqTu/7pXFVBo359nNbM0RmFB5PibcT1+1EHquaAkfo34blEQjg7pVLADSkv+76UTXyczLSpJcYOG1zIDm9I85+TKvSvH4bfYXYyZcLPAuu1AIg/MX7LbE/FUi3mod1h3xL++/T8fLUbwVOIG7XrAWUGzxsNX5UJq+JhFAgWCpeX8n+AOhZHL2bdRLx+y99H630TDY6X2sxNBsZfmKiFydaX1VGXOaGDZ7uG8/auHZ8vJxAeLYyug5CPUPIN0gJzKSwFj7zWsJwyPwwDnjPhXA1Am1jvOHV3OsG+otMzrUfN+p19It/eq0AsK2CYV0JRvOAP4pJ0hblw1AB2UYkTu/o4BzmFApmsfgv8kAq1
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 12:22:11.3907
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 04ede8a7-0907-41a8-66d8-08deacfc6e45
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B9E.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMDPR08MB11411
X-purgate-ID: tlsNG-42698a/1778242934-1A772F3B-88D8A0F0/0/0
X-purgate-type: clean
X-purgate-size: 2804

SEkgTXlrb2xhLA0KDQo+Pj4gDQo+Pj4gLXN0YXRpYyBpbnQgX19pbml0IGFybV9zbW11X2Rldmlj
ZV9yZXNldChzdHJ1Y3QgYXJtX3NtbXVfZGV2aWNlICpzbW11KQ0KPj4+ICtzdGF0aWMgaW50IGFy
bV9zbW11X2RldmljZV9yZXNldChzdHJ1Y3QgYXJtX3NtbXVfZGV2aWNlICpzbW11KQ0KPj4+IHsN
Cj4+PiBpbnQgcmV0Ow0KPj4+IHUzMiByZWcsIGVuYWJsZXM7DQo+Pj4gQEAgLTIxNjMsMTcgKzIx
NjYsOSBAQCBzdGF0aWMgaW50IF9faW5pdCBhcm1fc21tdV9kZXZpY2VfcmVzZXQoc3RydWN0IGFy
bV9zbW11X2RldmljZSAqc21tdSkNCj4+PiB9DQo+Pj4gfQ0KPj4+IA0KPj4+IC0gcmV0ID0gYXJt
X3NtbXVfc2V0dXBfaXJxcyhzbW11KTsNCj4+PiAtIGlmIChyZXQpIHsNCj4+PiAtIGRldl9lcnIo
c21tdS0+ZGV2LCAiZmFpbGVkIHRvIHNldHVwIGlycXNcbiIpOw0KPj4gDQo+PiBXZSBhcmUgbW92
aW5nIHRoaXMgb25lIHRvIHRoZSBwcm9iZSBhbmQgLi4NCj4+IA0KPj4+ICsgcmV0ID0gYXJtX3Nt
bXVfZW5hYmxlX2lycXMoc21tdSk7DQo+Pj4gKyBpZiAoIHJldCApDQo+PiANCj4+IGNoYW5naW5n
IHdpdGggdGhpcyBvbmUsIGJ1dCBhcm1fc21tdV9zZXR1cF9pcnFzKCkgYWxzbyBjYWxscyBhcm1f
c21tdV9zZXR1cF91bmlxdWVfaXJxcygpIHdoaWNoDQo+PiBjYWxscyBhcm1fc21tdV9zZXR1cF9t
c2lzKCksIGFyZSB3ZSBzdXJlIHRoYXQgb24gcmVzdW1lIHdlIHdpbGwgZ2V0IHRoZSBzYW1lIHN0
YXRlPw0KPiANCj4gVGhpcyBmb2xsb3dzIHRoZSBzcGxpdCBpbnRyb2R1Y2VkIGluIHRoZSBMaW51
eCBhcm0tc21tdS12MyBydW50aW1lL3N5c3RlbSBzbGVlcA0KPiBzZXJpZXM6DQo+IA0KPiBodHRw
czovL2xvcmUua2VybmVsLm9yZy9saW51eC1pb21tdS8yMDI2MDQxNDE5NDcwMi4xMjI5MDk0LTEt
cHJhYW5AZ29vZ2xlLmNvbS8NCj4gDQo+IFRoZSBpbnRlbnQgaXMgdG8ga2VlcCBJUlEgaGFuZGxl
ciByZWdpc3RyYXRpb24gYXMgb25lLXRpbWUgcHJvYmUgc3RhdGUsIHdoaWxlDQo+IHJlc2V0L3Jl
c3VtZSBvbmx5IHJlc3RvcmVzIHRoZSBTTU1VIGhhcmR3YXJlIHN0YXRlIGFuZCByZS1lbmFibGVz
IGludGVycnVwdA0KPiBnZW5lcmF0aW9uLg0KPiANCj4gWW91IGFyZSByaWdodCB0aGF0IHRoZSBN
U0kgY2FzZSBuZWVkcyBleHRyYSBjYXJlLiBJbiB0aGUgTGludXggc2VyaWVzIHRoaXMgaXMNCj4g
aGFuZGxlZCBieSBhcm1fc21tdV9yZXN1bWVfbXNpcygpLCB3aGljaCByZXN0b3JlcyB0aGUgU01N
VS1zaWRlIE1TSQ0KPiBjb25maWd1cmF0aW9uLiBJIGRpZCBub3QgcG9ydCB0aGF0IHBhcnQgaW4g
dGhpcyBwYXRjaCBiZWNhdXNlIFhlbiBTTU1VdjMgTVNJDQo+IHN1cHBvcnQgaXMgY3VycmVudGx5
IGRvY3VtZW50ZWQgYXMgdW5zdXBwb3J0ZWQgYW5kIGlzIG5vdCBwYXJ0IG9mIHRoZQ0KPiBzdXBw
b3J0ZWQvdGVzdGVkIHBhdGgsIHNvIHRoaXMgcGF0Y2ggb25seSBjb3ZlcnMgdGhlIHdpcmVkIElS
USBwYXRoIHVzZWQgYnkgWGVuDQo+IHRvZGF5Lg0KPiANCj4gSWYgWGVuIFNNTVV2MyBNU0kgc3Vw
cG9ydCBiZWNvbWVzIHVzYWJsZSBpbiB0aGUgZnV0dXJlLCB0aGUgcmVzdW1lIHBhdGggd2lsbA0K
PiBuZWVkIGFuIGVxdWl2YWxlbnQgTVNJIHJlc3RvcmUgc3RlcCBiZWZvcmUgSVJRX0NUUkwgaXMg
cmUtZW5hYmxlZC4NCg0KSW4gdGhlIG1lYW4gdGltZSBzaG91bGQgd2UgY2hlY2sgbWF5YmUgc21t
dS0+ZmVhdHVyZXMgZG9lc27igJl0IGhhdmUNCkFSTV9TTU1VX0ZFQVRfTVNJIGZsYWcgYW5kIGRv
Y3VtZW50IGl0IGluIGNvbW1pdCBtZXNzYWdlPw0KDQpXaGF0IGRvIHlvdSB0aGluayBhYm91dCBp
dD8gSeKAmW0ganVzdCB3b3JyaWVkIHNvbWVvbmUgdXNlcyBDT05GSUdfTVNJIGFuZCB5b3VyDQpm
ZWF0dXJlIGFuZCBlbmRzIHVwIGluIHNvbWUgdHJvdWJsZSwgd2hpbGUgd2Uga25vdyB0aGF0IHlv
dXIgZmVhdHVyZSBicmVha3MNCkNPTkZJR19NU0kuDQoNCk1heWJlIHRoZSBtYWludGFpbmVycyBj
YW4gZ2l2ZSB0aGVpciBvcGluaW9uIGhlcmUgYXMgd2VsbC4NCg0KQ2hlZXJzLA0KTHVjYQ==


From xen-devel-bounces@lists.xenproject.org Fri May 08 13:28:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 13:28:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303628.1576903 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLLFS-0006TG-GC; Fri, 08 May 2026 13:28:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303628.1576903; Fri, 08 May 2026 13:28:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLLFS-0006T9-DL; Fri, 08 May 2026 13:28:10 +0000
Received: by outflank-mailman (input) for mailman id 1303628;
 Fri, 08 May 2026 13:28:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wLLFQ-0006T0-B7
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 13:28:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLLFP-009v2t-O1
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 15:28:07 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fde4d9-e002-0a2a0a5209dd-0a2a4506c380-44
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 15:28:06 +0200
Received: from [52.101.66.4]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fde4e6-7371-0a2a45060019-34654204a3ba-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 15:28:06 +0200
Received: from CW1P123CA0001.GBRP123.PROD.OUTLOOK.COM (2603:10a6:400:293::9)
 by DU0PR08MB7857.eurprd08.prod.outlook.com (2603:10a6:10:3b3::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May
 2026 13:28:00 +0000
Received: from AMS1EPF00000091.eurprd05.prod.outlook.com
 (2603:10a6:400:293:cafe::5d) by CW1P123CA0001.outlook.office365.com
 (2603:10a6:400:293::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.19 via Frontend Transport; Fri,
 8 May 2026 13:28:00 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF00000091.mail.protection.outlook.com (10.167.242.88) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Fri, 8 May 2026 13:28:00 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by GV1PR08MB8716.eurprd08.prod.outlook.com (2603:10a6:150:86::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Fri, 8 May
 2026 13:26:54 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9891.008; Fri, 8 May 2026
 13:26:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=BzB03V4U73CWbTqrdmiphmbutRhcSti1bblh3d9SkyrJAj1XbifalpU2fL8kh9TKlWgda3eKwPqpahXiylrpK9vOeyFn4VEYVAkX3AAJ70LSIvn/nN2YW1RHFPQ79w5bywjN+8fyhYd8031UuwQ2Y9t1G5W/gbD8E/tdDx7S47hke5C+C90R4TTBMNdki5Myr07vHfx0JOvHI5G5jjG3VQVKdXz4qu2k65Wmwtn+st9vt4gs3X2Bb/vUEstol6dW+4Dioy58gT/rqcyh/b2YBqjfsuGzwJDdzeemKV+Kq3bM+/aOYTmtZDPP3QtLiyDt/oThLNRLs+f+yZX9TFewoA==
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=8yNstBt9AM+ciEjllsDNPg7NlbAi4aYRocuTHW9WGrc=;
 b=kNEpGNg+jMz8esHDDgQt/RFsgsptB+YsLOz1kasoyz9dpNnxQlJEflpNtaBA80e/6FyTizFxX8zHC+/krDhtKiwrTz/MuQ7V65Cnn0O2oweGUbBtOGX7IZjPRWErj0y1x+Tu4WbCmTm4sbbsF8Zug4dSk20QikhFZDrYcsESB0lSIppwqIJFfun6mLCxHiR02+Of2h6dbH6DWfecHi8AOUHxI6cYWU54ZGPhxWCG37y1OnZwFDD6OPHCHlDP+k9sqxNM5+02d/h+z2QYko0GwxTwVqvPhmJTCAAEU+DoJOxVQrczEGNBzQ+UxaMxSnTfP6DWkUbXxlyZrjJtkzJdxA==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8yNstBt9AM+ciEjllsDNPg7NlbAi4aYRocuTHW9WGrc=;
 b=BxNbXGZfyisqQHkfeHgfqEa9Og5I0eWoCypkWSVmlTa48CsJ5FllDb+lPrxsSJzvdfz6GGDAIOMQKtGi0ny06S+kRDYMdPoNMQzWKMH3wvW8DFn2Sg5blnULE1Gbn2/gKh3XnhDcFIY+7N+3Rfy+bxczEmDoMEnVgtNlY1bA3vQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JPnYLWMBzdwHtU60mKatuw6U9AqKl1Y8JHc4yLqK3yoPieGWpuxEW8AAN1lb82hVMdFP7uOBpOQwVmT2QgWJVsPJ+M87Ocx0m4v+airP4xXC+snXA8B6vMoBFLRtKkRgJdrdFdjYp9rggzhcWUfMK1yV+nYaxn4Wj9/vdjH6A0H6SqDVg3SGSGAaIEq+1po6qLwmGOIeYc37cWEHamredvQb1ZYOnzbazyWPyObjv3JUIOiy0RlOq40imbenxrVWVwwinzGdTiDgldaLDLHESKVsI6+VEu4yVHXOfdN+MH2+F/kRswGV+UzDxE+KWmstO0igXnX0j44+2Iknk6DrGQ==
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=8yNstBt9AM+ciEjllsDNPg7NlbAi4aYRocuTHW9WGrc=;
 b=w4vSJqZ+7YcquQ0zsVKc+MBhT2m4FHqEz03MyN2OovTDJGygmvdRjyokIschX29XTSewf8iPmifNMWXva3BCwM9BnLnVx9t82qroUwcW+2iP1NfuUEyKL6R5QiWRHT/+HZqMYMuJPbZSmXRtpvoj9GnnFZxNT+aiRu/zRFOyVXCbmciPbsfmygK8hjuiyp2eVMe0KbrPIzuGQV3+iDJ7XrEAbFmqu2tDXDjbaAAwbd4FzKmWYcXaEQ3aSXwP2ObnP87OfaiOI7IY5PKuKVWeVPfBu7MCKkMPhl3SHciVYlmTlWLuUYLJjh8EuMOPcTpT/LMvwTVeLSf7awW0zRGHSw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8yNstBt9AM+ciEjllsDNPg7NlbAi4aYRocuTHW9WGrc=;
 b=BxNbXGZfyisqQHkfeHgfqEa9Og5I0eWoCypkWSVmlTa48CsJ5FllDb+lPrxsSJzvdfz6GGDAIOMQKtGi0ny06S+kRDYMdPoNMQzWKMH3wvW8DFn2Sg5blnULE1Gbn2/gKh3XnhDcFIY+7N+3Rfy+bxczEmDoMEnVgtNlY1bA3vQ=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v8 10/13] xen/arm: Resume memory management on Xen resume
Thread-Topic: [PATCH v8 10/13] xen/arm: Resume memory management on Xen resume
Thread-Index: AQHc1lUPIk7A8CPopkGFdHGIM/WlP7X/oqWAgASNN4A=
Date: Fri, 8 May 2026 13:26:54 +0000
Message-ID: <4BFA8CEE-0168-4C14-8B5F-E19E6FD7D747@arm.com>
References: <cover.1775125380.git.mykola_kvach@epam.com>
 <02b55a02f329d09c9f8b15d97ca9176b3c33017a.1775125380.git.mykola_kvach@epam.com>
 <ECDA0BD5-C2C8-4726-9377-AE4AFBE972AD@arm.com>
 <CAGeoDV9Jg0neHn0qzoaDSThhVRGQE8ko2qhbhDvF77=6hrYUWg@mail.gmail.com>
In-Reply-To:
 <CAGeoDV9Jg0neHn0qzoaDSThhVRGQE8ko2qhbhDvF77=6hrYUWg@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|GV1PR08MB8716:EE_|AMS1EPF00000091:EE_|DU0PR08MB7857:EE_
X-MS-Office365-Filtering-Correlation-Id: c04522f5-c09f-4eb6-3159-08dead05a01b
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021|22082099003|18002099003|56012099003|4133799003;
X-Microsoft-Antispam-Message-Info-Original:
 32mznoH5+4Pdbt/stZcfwBNSy/rn7zth4VjCLDI1OE1Zur7Fl3lZeXAI8y2R5DfOUZ7WnghPmM/VlLzTl4qAJj0tjx9A4baMiiL9/eQN/py0WL2AXWQGqZQRPp6XsjITg+9vrdcxOlspf9Ea5s2x0E8dRzvigi6Nc1jboNIYLelwp8m4hJBxh+kePIZV4XNOriFJqhsvfqqJe1kSypbnjBBTBrw+8HsvzZN6fxIiEaQk3U8ICSPdrw6NX/dHtmXivrzlBZX0GHx37l3gsM+4lYIdtmFO6cCaZllP7b+c0NeyKsnb7F6N5nl9gkGXgs6HOOSTxPUgGDyChmiKMSxVfjl4kIGtplnb9Xd/USzXxO9NstCiBPirUUN+PjwoaHnkHu+QeYNu87v5/EmMis8nTA5kv1zkNu4f8acJ5Po1k+kop6HTrcOtfAiuHKav6asR49Qpq7odY3hreBNEkFsCoCtY3YfvyHIJc9TAQDCikFLDKucRJHYLeWRRZTDZtKji1EqxD45yBdHG1y6fiMEJprYmCZ9GksDBH1Dgz8vjfVRiamDwgvKhn5Fx9Cw7Pwte5sXJ3mb4+1RNTXhYF0RpME+2q6SCgi220RxfE0MHifdxyVXlyOpPiHpamiJNWvxCPqyH4J0UhyBq2hYWnaAZtuZBRKuRFzpsFzqfgSbASEBsJ7Cx+Uah31+nAyeffQBwMggnsaUANXEyUMZr+5op6g==
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021)(22082099003)(18002099003)(56012099003)(4133799003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <9489D4EA649B034DB595C9CFFEA0DCAC@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 Nz0BHTI+DKNYxWYTmIXFesGbupZ2Qg5JYuoAbqNGb5gjjkdujYprqQd0uDJmCGUaEBP9HGVnkoKUhejsgyExXSMeytrbbaNS162nsqF0t8rn86UlSpIWrhJwXj0J/cL/x/TAsYMmNlr1kfItOtwwPrVou6d7fna8ss4sfk/weRdfHIMQaeIa38VcpueAV9RHeWz7i8et78b675rA4EOaObTp79pegsNc1YAt+tJXgw7AwaYI04HONdAjW2xHG4JIo+uSq3vwzjtlh2o/naVCaKHnh2BdZaVtJC24Os5WD0MMsdcQPDfl6A9LSFwtknUbJzZuua03lHt3zi4gdUgNgg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8716
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF00000091.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	4c78b4f3-bfd3-448f-edb3-08dead057872
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|14060799003|35042699022|376014|1800799024|82310400026|4133799003|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	odqKZQkdM6BEcmkrA99glfT2KaNS9yMWtpQ//PnRHfL7ROuH6o4p9ecDWWy1KyUjaInMvokrciZS0BCCirskZbxBvJuwg9HIDQRTQxtIu8+u/DzvoAS4/AAWEAeTO/fAInwLDbUs4c48QZ5DVSspiGwSDq75VvcQut1Lwocy8iPz/ZXSQN8BqXjWLxiQhvM3OqF2lwh2xNGDVXaLcgIp+9wy2CGkPlj6t3CAnItdVkLdsOHmZ0urb08Opct1rz+0lLngS4aaBz9yK6dfhgvJfkhlEWPoE8g9xKwmyf3F4uIoPxTMm6HIdfce7wrZvUoaQ3aW1a7UXI3oibo7wnl9L+7NCGFkfBgHTEiCO4BGaOsB0vdF4MswOBOxzYm04UoGhOu+p3ARJn1TQQzS6UpahI4tiDEn3WLM3KwLn7IzIB5z8Vy60R7jadsjzLYy1eWfnRnr0aaflFfmVxFljNrQcQuxDXTfoGOchg39Ds5wEIEo2Vf4AZh6Xco4kf8Raz3OH4lWliNB+GKH4yVw2OG6qEJfNcNQs34TGquC0uhLCMf5t8Bh+3cf0hQzvUsE1y06AE8OrSNTnnD0EuN49l4Zzar9979IbndK3a54XVg7fEMXsArHn0cSdKJfB43vX+tHgNx03V9fC8Fui7FazJsTvs8Qmz3c08eAAVpV8PJo4GDfIh+d+YdXe7mrRSsR+oLE
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(14060799003)(35042699022)(376014)(1800799024)(82310400026)(4133799003)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	vPx0C38LbWoxxzsXJgZ+93nPzCnrrfcnJjxdTeIhFKFSai1EUEM0p/M0cEgR/ZyS6p6eo8ZMtGeTAHfXTXELYqZ8+I+slI9ZYZ3fo8s3f2jiyHB0FsPy5Xpo4wadwVIk9udOy2LLie66eAvtDXgkkTmifjjnDCvKXGDQOMImST1R6kphqplz6NvNES2z3NoEVQuEFTd/MMiXJyM4GJmhszUXWy+z78kENbsPmubOEIidTIwD5ojwai3igjKhndzx/jNCMwyyc1gOudb9aCleosSIQTDAAlMOZEnh5y6mZDNvXGgWhtQujYBXnSJpKFQxaAtHMbL/mlYdYTESVd9QqD65YWMgw8Gdu2v9RCss3JhCEuyrDCi0+sS9J6BxK0i033G5hjajdzcJG2ZwAEBrgsjMdKfReGlMjtHh+hAR1txDtKT5doZQ7Jay/ylwpoSV
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 13:28:00.4865
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c04522f5-c09f-4eb6-3159-08dead05a01b
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS1EPF00000091.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7857
X-purgate-ID: tlsNG-16d1c6/1778246886-87D7AD75-602AFC03/0/0
X-purgate-type: clean
X-purgate-size: 1872

Hi Mykola,

>>> xen/arch/arm/arm64/head.S | 24 ++++++++++++++++++++++++
>>> 1 file changed, 24 insertions(+)
>>>=20
>>> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
>>> index 72c7b24498..596e960152 100644
>>> --- a/xen/arch/arm/arm64/head.S
>>> +++ b/xen/arch/arm/arm64/head.S
>>> @@ -561,6 +561,30 @@ END(efi_xen_start)
>>>=20
>>> #endif /* CONFIG_ARM_EFI */
>>>=20
>>> +#ifdef CONFIG_SYSTEM_SUSPEND
>>> +
>>> +FUNC(hyp_resume)
>>=20
>> I think we should mask all exceptions here:
>> msr DAIFSet, 0xf
>>=20
>> until we resume correctly the status (VBAR_EL2, etc).
>=20
> This was discussed in an earlier version:
>=20
> https://patchew.org/Xen/cover.1741164138.git.xakep.amatop@gmail.com/2ef15=
cb605f987eb087c5496d123c47c01cc0ae7.1741164138.git.xakep.amatop@gmail.com/#=
CAGeoDV97no7mXSKd7auFu5E85wSXAHKWvqGW2=3D-VEAbkrTyU8Q@mail.gmail.com
>=20
> For SYSTEM_SUSPEND, PSCI ties the call semantics to CPU_SUSPEND. In
> particular, section 5.20.2 says that the caller must observe all the rule=
s
> described for CPU_SUSPEND, and section 6.4 explicitly says that the initi=
al
> state rules also apply to SYSTEM_SUSPEND.
>=20
> For the return Exception level on AArch64, section 6.4.3.3 requires
> SPSR_ELx.{D,A,I,F} to be set to {1, 1, 1, 1}. Therefore Xen expects to en=
ter
> this resume path with DAIF already masked by PSCI-compliant firmware.
>=20
> I agree this assumption is not obvious from the code, so I will add a com=
ment
> at the resume entry point to document that this path relies on the PSCI i=
nitial
> core configuration requirements.

Yes please, something along the line of

/*
 * PSCI SYSTEM_SUSPEND follows CPU_SUSPEND initial-state rules.
 * On AArch64, firmware must return with SPSR_ELx.DAIF set, so
 * PSTATE.DAIF is already masked on entry here.
 */

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Fri May 08 13:31:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 13:31:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303639.1576912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLLIu-00080H-1q; Fri, 08 May 2026 13:31:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303639.1576912; Fri, 08 May 2026 13:31:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLLIt-00080A-V3; Fri, 08 May 2026 13:31:43 +0000
Received: by outflank-mailman (input) for mailman id 1303639;
 Fri, 08 May 2026 13:31:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wLLIs-000804-BP
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 13:31:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLLIr-00GPEE-Ok
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 15:31:41 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fde5af-2eae-0a2a0a5409dd-0a2a45049a14-40
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 15:31:41 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 69fde5bd-1dec-0a2a45040019-d155802ab012-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 15:31:41 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-48d102471a4so20242535e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 06:31:41 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e68ec417bsm37773545e9.10.2026.05.08.06.31.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 May 2026 06:31:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778247101; x=1778851901; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=N2ISDk4MdsLKYANHE4Rm8Zw7eqfUKPepgzsZoDF+6l4=;
        b=AdkvPZyFKWkcl8A/IbJ8oGuRUXdNQ3LsYQtNrZIGW5HI+Dmp/rMSlDoAprOK13GfSs
         GKpo1VFSTLke86iY6WgnXxWjMtq3jMrgav7yl40E6+GkTp02IWqEMPnnA16FVSX5g8ON
         AiO7yS3/R+QY7b3J5nZMdgzG/1NuDK0jj35KUme9HbRLoY/FXbkEBwO2i/zyhLDKgnaj
         jVFmLvJxqTEfHjk9uyaxLhSpe2XlF9eJQ8sgNco1+U6Bw7DOFoj5sSleB+CMLMdA1U5d
         ZoILvp06+9u71gdoUmrQJK68G0wAFVLoo16qEmMgjvKoOIycl9kJgTf81Dm/y92k31Gu
         ZQlA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778247101; x=1778851901;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=N2ISDk4MdsLKYANHE4Rm8Zw7eqfUKPepgzsZoDF+6l4=;
        b=fwS401V9QxNEQyineY4XTX0nG4Oy5IS88kvYLlFGfISJkiwAtPZadMmBHkzzjhTnfs
         No9QeXJyF2eWwZn8b05qk3bIYKgqHklMAJ9GZDKnxLHnvtwg16elVHS/9Eb2ErNbgZJa
         m9rPXWwGTxjdcmTncbN4KfUtyjLb5GdmLhmLOyPGsSH+1zYz0cMcJeDQ/sRrd0cEvjFp
         Hgv7M0LKwtOV91OZllRw+asyjH52E1A6hNvokvh4auyn9rWf+gqzUH5rr3iDuQSVkO+5
         +ijGCTSip1oT6r5FRItN7sWXn1lCDR2JpObuiOnGqmEmaSj6BFx/DTUg2BrFo+nRBvbu
         1Awg==
X-Gm-Message-State: AOJu0YzcC/3xsXyAXmgNjrjp+nw8G/9GK/bmEwsR4a6TSk9f75QEPkpC
	1metRwanIMWAoRpbaFLjSZu20mK8ZO4XSkoZh+T7NPQHwlC4z00exQu6K0t+PkmwNmbAelxXAsm
	OgMQ=
X-Gm-Gg: AeBDieulcEfBu/kyx/GBkR+tqxNHellfTRJmzJmYkVQQajm2QCfcK8tNp858yrIuq5K
	AZ/ZLQqKQcVvA+E0JBA3asn6nIK8SKska147wmN6PVs7gEvK2Q9ai+Nsrs+HlggtPYOnnjVCOdf
	uhdG5tgPKC7MHxDqWG9sYqpx8ov0Ou210xVTnk1PLcbYK8E+fp55MBoxBbnRBkbFg4L6YxSd+DN
	z4UPTJI3w6gQTlZn4OdEY4oaJSlCx9cDydcjDtlpyTllmXrUmfPpzhdpfyTnK6pI53RBb9tBh6y
	hKsWicCYhpzCWXo9K+FaJuUC4erj9TvQysm9LvAK+75nkMEobIBL6VAlmw7WCo4EPPmYMpuZtCn
	6oqbjHC3WKawLM65AJzokP/Mi+3zP2UaCWtLMQgdZjKs/fZp71VsaeugNjKwJ1hzgHX64/W27dU
	vB13ZNBaMS5ujPhZsI2B8xoLGFldvUK7GKqfk6LLFTIAPMLAdu2anQmMurc1CD3rGVNTTNRL80i
	KQ+ZTzHQAU9+fphFJiE8CKCorj105QCIecG
X-Received: by 2002:a05:600c:4703:b0:486:fb0b:ad79 with SMTP id 5b1f17b1804b1-48e676ac029mr41739255e9.20.1778247101025;
        Fri, 08 May 2026 06:31:41 -0700 (PDT)
Message-ID: <20642e09-5dce-4979-b126-b24a78db698e@suse.com>
Date: Fri, 8 May 2026 15:31:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] time: drop dead code from gmtime()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1778247101-28F753FF-0CC86827/0/0
X-purgate-type: clean
X-purgate-size: 1298

"days", as calculated, can't be negative. Drop the respective loop and
change its type. Similarly "rem" can't be negative and doesn't require
more than 32 bits. Change its type, too.

As a consequence, the tm_wday calculation also can't yield negative
values, so the respective conditional can be dropped as well.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- unstable.orig/xen/common/time.c	2025-07-22 16:21:18.000000000 +0200
+++ unstable/xen/common/time.c	2026-05-07 12:22:11.687769995 +0200
@@ -45,7 +45,8 @@ static DEFINE_SPINLOCK(wc_lock);
 struct tm gmtime(unsigned long t)
 {
     struct tm tbuf;
-    long days, rem;
+    unsigned long days;
+    unsigned int rem;
     int y;
     const unsigned short int *ip;
 
@@ -70,18 +71,11 @@ struct tm gmtime(unsigned long t)
     tbuf.tm_sec = rem % 60;
     /* January 1, 1970 was a Thursday.  */
     tbuf.tm_wday = (4 + days) % 7;
-    if ( tbuf.tm_wday < 0 )
-        tbuf.tm_wday += 7;
     while ( days >= (rem = __isleap(y) ? 366 : 365) )
     {
         ++y;
         days -= rem;
     }
-    while ( days < 0 )
-    {
-        --y;
-        days += __isleap(y) ? 366 : 365;
-    }
     tbuf.tm_year = y - 1900;
     tbuf.tm_yday = days;
     /* SAF-14-safe use boolean as an array index */


From xen-devel-bounces@lists.xenproject.org Fri May 08 13:36:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 13:36:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303649.1576921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLLNT-000074-IW; Fri, 08 May 2026 13:36:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303649.1576921; Fri, 08 May 2026 13:36:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLLNT-00006x-FT; Fri, 08 May 2026 13:36:27 +0000
Received: by outflank-mailman (input) for mailman id 1303649;
 Fri, 08 May 2026 13:36:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wLLNS-00006r-4C
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 13:36:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLLNR-00D1O0-HJ
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 15:36:25 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fde6c7-5cb7-0a2a0a5109dd-0a2a450281c0-44
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 15:36:25 +0200
Received: from [40.93.198.32]
 (helo=CY7PR03CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69fde6d7-af86-0a2a45020019-285dc620182a-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 15:36:24 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB6873.namprd03.prod.outlook.com (2603:10b6:a03:438::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.18; Fri, 8 May
 2026 13:36:22 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.019; Fri, 8 May 2026
 13:36:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fKdX9zxrZgIumBt7gX+rpySCTettXQEHKLE3Dj6lH8G14Ka6MqE+y2JINQQw0LGoVRlSA6Tne6E96JNfLHmCyTDu6JIs3Kuv6H6qFhW7wzkPwr2i8Q63T3lrlKr1vJuJ3lLt+zEToeq0y8L1ODWJ3snIqrSwBZuXn22B9NIJH3HW4XtQx7Dspa4oaaGs3lojwJZnk1pANJzN+2ffReyyBqK8yHemBOlTuPOGUvIZO1QtReybhT2k4Ky4C12h2uzP5FU6zfm4nOBXZBmCf3/DLk02FKevEvAuIVl0BI5Si4ijQHSu4F3P/M4mjgiCUW9uB6VzT2/FUosMV4sf+BRDDQ==
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=tVpt2lLnQmDamz+KKva/ac7/qHAvy+vb8mgjPtjbF/o=;
 b=m/FHWrRl8HZ8C1qnYnoObbgxUR8WmigDK8r3QGpSOF+kvau2mRcTa29oePy7LlhhciZHiqhrRmM+SvfT3hW/pGRaRF+sAaG6brkmrOW+LRl97skA7V4J2OCXuX8DPhWYDOwnZAgg1gIGnOsea38mqn7gguYih3eo51jE7qDk6+lIvDhPe84WG5e7/B9R4HG8QTWTXjxDvyDNRdQks+Irdz2SKKnIt3q2lou8eLA0GPLFpjUwqwQRSVXe5Pj6NnEjIAA8pgzs7XTaP0ngMS4hh4yKMmmE8I1QcIYw6cEL6ruSCW/MTaFber+LvEkrQzs/aJgeTj7pSoDrPtryXrihUQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tVpt2lLnQmDamz+KKva/ac7/qHAvy+vb8mgjPtjbF/o=;
 b=k7ljcm0jaKkfuvZjAXkUV2uA/LM3n7Zg+YoEOUg9Vr/salbzqwP1syVv+CKO9l00X+/YOuGRIjCQyJqA1DmSOSRHIKR9vgHCQHClNH151eumnKiPIJRTXjg4k4f4BUg8FBubrT1x37/ErXeT+mfTI1rYOQ+UvBgLPoSzqTqGT6M=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d23e8f73-2963-473e-bd38-64b35cf02031@citrix.com>
Date: Fri, 8 May 2026 14:36:18 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH] time: drop dead code from gmtime()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20642e09-5dce-4979-b126-b24a78db698e@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20642e09-5dce-4979-b126-b24a78db698e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0497.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1ab::16) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ0PR03MB6873:EE_
X-MS-Office365-Filtering-Correlation-Id: 981d34ee-21f6-4ca8-5672-08dead06cab7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	em2DsIM+fMG/1BXGyIUblZdgXVe/JHBAL2LdLUTog1uOFxM6Vgy6En+L/HXgL0OsgvWJGa5tesSxenKOJXvEL7USafawdeqaBFXsJyKy74mHl1Q8Gad8ASm8gnF2zVPTZV5FuIA6JGeFOvViXexTQwtJBozC8Ln66FbRS7fkTGuA75rtJuPuPKtJm00cjXkH35dCtQKrXceHAyPx0oqtH/zoLLfYeGDkMjZDWc5uzOKLZHbCegdG5dljoUQM1Oix01iJ9lTggZgXfcgXESr5ewPap0xmsmpYCnBa7udiCWgqqT2Yzmd0qbp1WdkOm+nY1KGWrPvw+DG3lmgOpXrFHNpsJ58aj3ZGDt7G2BwgKEDo0lpKfUqTrq3ppK8Bt/etkJFnBMrN0PZtFlpqdpzQVbLbmwd9fACWQGtk7F91AV3CjbJBXVBJfDUhwzJQ0mk8UjLq9WIo6lskodKNd/dRiRImS711Zff8UhcmUrDJgXO/H0QUNDgHNXaIX2JNRCmFcjm/tXD4kZj+vh6haHNIQDVEfgw7uazJbDrSNysW0Hu0h2pi72ZDfV5O6tuPaPXmvNDqR0HI5XFtfJzH9WOdgJcgIPYwIEXTpNCps7dXrbTczKnlWW9omWJShR5PRZVlFsyy+3eZaFQNt4ME/lrpFZ/WRDorRRFcxUMCDQd9IcNByjRBx/qPOmiO4nBamfll
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VzZvVC9JLzhYczZxeTlkeWVmVmZMVkhNcTVQTEI1ZEQ0bHBGQWNtTVZFWEE4?=
 =?utf-8?B?NFU3NWs3OFdIdzFsR0txdzVWOEJCV0h4VkxhaE12a2ZwUDkyd2MyNDNZZHBT?=
 =?utf-8?B?R01vVlFuT04yUW51bXA4MGxtY1duN3F2N0ZEUitTZjhya1B5S3ZsNW9rRERa?=
 =?utf-8?B?QnJUNVhNNlhQcHdIWmhvYnJRTE9JQVZUZldhemF6UVhDN3N3aGlnRVEwRlRy?=
 =?utf-8?B?UTVlSTFaZXZ4d2hNLytGN2h3Z2wxSElaUnVyV2k3OE5ZUmVVL0pxcGVRUExI?=
 =?utf-8?B?MkJCUjJHOU1STXU1YS9QRzVBeUVjNWtoSU1SOWV2WU5LRE5PRW15RU9GOHk0?=
 =?utf-8?B?Y0gvNnhwTHcrOUZJamxETGpwaEVINWdCeDRXMUVhR3J2QStPdnFnSll2NHBn?=
 =?utf-8?B?RTdXdXJhRmF5Qks5UG5KaklIekdpSU5OaXJCTDVnckwvdWlEcHpCNVdacmNy?=
 =?utf-8?B?cVdHdjM4RmlZQjFTTFZ1alVyT0ZnQXd6SFlHcytOaGhNL1llOWFtdWJrK2xY?=
 =?utf-8?B?M0d0bkQxNFJIWUh5RVFNRUd4UlZaOVRiREdLNmVlTzNMYzRGU1VwYktoOVRz?=
 =?utf-8?B?ZTExM1pqM0VIaDN3YnYyd3JjN0tMaEdhemUvVm1GMkhBbXZmazk2VkRmc1Bi?=
 =?utf-8?B?d1dQd0c4TVRBKzI0WmRjZVB1QW9QNlZoa1JCZWQ4RUl4eHpYYmNYTU5VeU44?=
 =?utf-8?B?RXk1b3hWZXdUQlBTTmkvWVhnYkFRenpha0ZzU2hpUGlZQ3hnc29lS0R0bTdS?=
 =?utf-8?B?QWlxbC93Umh3N2RVRDNQTmF2elRCV2tOQ09SWW1ianozRi9pNnRhaHZaaWli?=
 =?utf-8?B?VWJRYVdJT250WGhwV2xxdHNDemhHeEdIUThlL1RhenhWRG5wQXFpcjZvcFg4?=
 =?utf-8?B?eUFmSXI0VDh0K0w2QjhOcGc2WlJ4UDhLZWJtSFJRZnhENHdDZTRBbVVrV1g0?=
 =?utf-8?B?VkFmV0ZrMExvdmlvMXZaRVFRcGg4dW9qaG9nZ2l0SStjVG52aitYdlI2VGRV?=
 =?utf-8?B?K3FaZVFyL3d2ekJZMG5IRi9aU0lnaEN3YzFLSjhiMWFORW04Q1JEYmdCcTEr?=
 =?utf-8?B?cW9WTkNsaXRlTmsweENNMng5U2lFbW4rK21GaUhVNHZHVTl1TG9RUGFHYnFj?=
 =?utf-8?B?aU9aU1ZFVi9CRGNFRi8zQkdxa2R5ZlNFMGFiSGQ4aDlLQ1lScEQ2N2t4RmU2?=
 =?utf-8?B?NFZNSVFrVjFZdHhyclJ3T1R2ckRvMGw4dUxYbmM4Q1lZRWNjOUlXRnIzWUN1?=
 =?utf-8?B?ajR3Tk94WXE0ZE9hTjN2WFBUYzJsK3o2SllwdndnTEVQbUFkNm1FazQ2VCtJ?=
 =?utf-8?B?dlAzc0tsbFlsa1JzeCtBbDFjYVhZOE5ub0hRLytEcGQ0NmlCTDNtYWpkbDJG?=
 =?utf-8?B?RVhXTFZyRTJWUURhMmFUMmowdUd3c2x6REtobjN0TnJ4enF1Z0FheHFWTXJh?=
 =?utf-8?B?NE5OTURwTC93SC85SzMyb2tIQkhBdkUwODIwZHlQWk54MFFQbUNqTUNtLytS?=
 =?utf-8?B?M0o4N2x6bnY3OStMVUp6ZHR6SkkySEQ0L1NLY3kyM0tDc0NRdkdaTnpLU1hn?=
 =?utf-8?B?WUxGcERLQ1VlUDFVcStCWDJKZTdza0dESCtRMDI5bmRwaTF2bnhvMkUzcWth?=
 =?utf-8?B?ajFnR3dFT1ZMeDVYaG4vNlcxRXNHbzN6Mnh2WW1CcUdwdzE3N25jN0MxTExa?=
 =?utf-8?B?RzZxWnBaakFLSlNRYWphdWFxVFZhaFRxR0hxaXpEMVYweGdnSGFvZjJTdW93?=
 =?utf-8?B?TWtOQXp4NmhQaDNqanFsNUZQRmpsbGgwdHBKdHFCRVhLbmgwOE9MM3ZPb05t?=
 =?utf-8?B?ZG5tY0ZFWTVNc2JXUmxWNkU2WElPRStwMUF4VmpkVG5sYUZMK0s3NDZpekpm?=
 =?utf-8?B?Ulh3REpkOC9wVExmMXBmc1pSME1kdHZWdDBxZE0wWGZRZ1dOMDZ3Q3RQVmNB?=
 =?utf-8?B?THBWT3h4YVVaS3VsYzh2SVV1c01PeWU2RGM2Qlo3S1BGRVRma2JaN0Fuc3Zj?=
 =?utf-8?B?cWt0S3h1VHhwT29manNaQ3F6dkFKZVJ3Yk9CYlFGMElZMGdGT040OTZDWndT?=
 =?utf-8?B?akxDYXF1QkNYK0oyT1puRU5zQ3h0NXJBWkhsdG45ZE5jbTB2VlhrbmdOeC9E?=
 =?utf-8?B?dmFNVWJ1eW41Q1hkRGRqRURkbVVEOVF0allZQk9VMjZwQVc1eHI4WmN6cEt3?=
 =?utf-8?B?ZXQ0OTNJbVJGemxvamU2dWN5YVIxOGJNZFpQVzcrTTR1QmFmQklHQ24xSE1P?=
 =?utf-8?B?b0dhRlo4NmNxczJwM05VQitlUzRGMXdSbytXTHlMSm1nMEtHT0h4MFk3VllG?=
 =?utf-8?B?aUl0UG5Ld3BCTmNvZTJCWjFzQzZIbGplcFhLN1drczM3ampIY1FMTDZqVHRl?=
 =?utf-8?Q?SqLdla+KSeuLK1Ak=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 981d34ee-21f6-4ca8-5672-08dead06cab7
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 13:36:21.6740
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0uB3OCxdMkpBT811TXhtgAPwXmQSQzIVI5dSFXUchHGPYskN7SiFDoIsT0HeoSrf9/MjZDiQRMjXBhllLrP3lKMnKRcOiWWeyYMgt5inIXk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6873
X-purgate-ID: tlsNG-720697/1778247385-AB36C161-8FF38AA1/0/0
X-purgate-type: clean
X-purgate-size: 1105

On 08/05/2026 2:31 pm, Jan Beulich wrote:
> "days", as calculated, can't be negative. Drop the respective loop and
> change its type. Similarly "rem" can't be negative and doesn't require
> more than 32 bits. Change its type, too.
>
> As a consequence, the tm_wday calculation also can't yield negative
> values, so the respective conditional can be dropped as well.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

But, I really would prefer to rip this out entirely.

This is used by exactly 2 things.  One is a console timestamp mode that
isn't synchronised with dom0 updates to the RTC so of dubious utility in
reality, and the other is for an intermediate representation of some of
the emulation logic ported from QEMU, which I think we can remove
entirely by swapping to s_time_t instead.

This will fix a whole raft of MISRA violations about use of unsafe
library functions.  We're safe because we are not C-compatible (return
by value not by pointer), but a better option would be to remove it
entirely.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri May 08 14:31:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:31:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303675.1576930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMEi-000062-DN; Fri, 08 May 2026 14:31:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303675.1576930; Fri, 08 May 2026 14:31:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMEi-00005v-AM; Fri, 08 May 2026 14:31:28 +0000
Received: by outflank-mailman (input) for mailman id 1303675;
 Fri, 08 May 2026 14:31:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wLMEg-00005p-K5
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:31:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMEg-003HL7-0b
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:31:26 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fdf3b9-bab6-0a2a0a5309dd-0a2a4503d790-16
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:31:25 +0200
Received: from [52.101.83.21]
 (helo=GVXPR05CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fdf3bc-672d-0a2a45030019-346553155a45-4
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:31:25 +0200
Received: from CWLP123CA0094.GBRP123.PROD.OUTLOOK.COM (2603:10a6:401:5b::34)
 by DU0PR08MB7414.eurprd08.prod.outlook.com (2603:10a6:10:352::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Fri, 8 May
 2026 14:31:20 +0000
Received: from AMS1EPF00000094.eurprd05.prod.outlook.com
 (2603:10a6:401:5b:cafe::c9) by CWLP123CA0094.outlook.office365.com
 (2603:10a6:401:5b::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.19 via Frontend Transport; Fri,
 8 May 2026 14:31:19 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF00000094.mail.protection.outlook.com (10.167.242.91) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Fri, 8 May 2026 14:31:18 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DU0PR08MB8345.eurprd08.prod.outlook.com (2603:10a6:10:40b::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May
 2026 14:30:15 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9891.008; Fri, 8 May 2026
 14:30:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=FnjVv4Su5F6rH55wfX6KcZweMK/UnFbILLLOEco2aAN1VFkfjIkqLUpSXPgwjzdd2SipuEMStvWc3BTx1DqZ2QdhkqWduIAQ4RH/SpZshl3YtDcDJT+V/gpWcPq89l9sSbvpegPDLMLlo/qlqC+8swOU69KTblklF5bXyrEDubO+roqXWNJlbClqFNcHMu+ydZO9SJdiu2orth2pFmBCqAS0gwbRiPlF7TDrsjGSukikXGWkGCRzD1K55uQGRxBjp4+CWzMcmp9JOMy2QlBnwhKYz1fNpl+ckRmwZvXZ2Rdq+s7Z7HS1ALuwM4RFXwWzUWI5WZS/zsBjTvJkOTPO3g==
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=5iKWRb5SMys4cCNq04uSSJ1M6DF+kI3YEVZCXIrJo5I=;
 b=nKMoMYMXn6WfMwxpFkLZhA2u5NE86TjrcDe7H0WqiOvqIbBMJ+ssXtjYZBzHJ2CWfR8glKd5Aw+wILtNlBUfcogqSuuXCessKxNHgiiV3laBv8aYaJB+OrLU5QZ5yGW2lTVfWU4idLYNnPoMPYu8d21QK4uWqJr0JMvSbNtat4b7Io7H+FRxr8kaR606MziGptnWSvpa/vpgAII4HVfXcDwkbxKeb720ML9g0jFfVFtTjKCyaR+rrC6mcylpCOrIHdpUTKN89iw3kWeDiqF/pnBw/qfC41DHAOh9ilSEJ363pDqPX3RSfyNlncE7rdJpvdI1paa2IIzhq8RZ86eXfA==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5iKWRb5SMys4cCNq04uSSJ1M6DF+kI3YEVZCXIrJo5I=;
 b=obehbobQd7c6hP7RLVwmje3Wio1JwFiyzUIGfOHsqv2XDB2FoPLdg8Z26I0Fx0keu/Kam1Eeb0UwZGoBZQMn2VB/gl6GPolY/Ak2TvghL9o2Fla6qz7pXbr12jyLEi1zEAfJqZfxMOHV4ADjeNI5fqqEC1+ccz9jbz9fmLnyz6c=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=W6N7Kbymj45Oteag9NWPgvwGR12cgFxR4cCKyqhcXKmdhCk7QzOZdLkEr9pjgt7/8ehVqx/locHbMwBpygHkQkzbQIA/7Ims71k9otjAkB5i7tDdF8Kt19SnufZ3QPPrtgnw9QaKty0U1lVeYG2tKL/yj+sznORCHod3FE+h1dzPQP+CxmoqPboM5S0xz4dZEaKecoLdH3aIZkJrs2m3+hXbksMFTrKE+leR0nEdpwzvdBjPiAif9TKe33gAgPdfxRkLDQep3SVKmRkmOYVlT6kwmu9eLLZNP5fD3WXYbOypnpy7dn0xVpQC1p3gVRyAvFNX0Xz7FF3TBJosTYi4lA==
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=5iKWRb5SMys4cCNq04uSSJ1M6DF+kI3YEVZCXIrJo5I=;
 b=nYfUwfc/OUxPZ+gtS2o8j7D7yudLLqjMDSXNp5gaZGc4Pj0sqwo3DiHX3EOLNXcU2A9jgnw9C+GXDOiP7wK4YjN1cHDG8c2+neRYZ3+1Uqa/1Nw8gDfYbY5+HLBMObtSVt3H0mHqBcgxo3v9a0IO4ObijgZy6PdBSuL514ZKyqPEahf/Nci2X3pO3QPqZo+I0S82aRave/3HNnaFWSCkU7svpRgNREJLQsCm2IU2KGP7yqdevMcqQKnvibqquxVGtZqJuBd5OZR4L0ZCzMou4pkFFuTsXnb2H3nLYTxI+FCEIAE5IbFfwQ+ikCGOCi2t/euVToGTRJWyxPiQx9MNSA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5iKWRb5SMys4cCNq04uSSJ1M6DF+kI3YEVZCXIrJo5I=;
 b=obehbobQd7c6hP7RLVwmje3Wio1JwFiyzUIGfOHsqv2XDB2FoPLdg8Z26I0Fx0keu/Kam1Eeb0UwZGoBZQMn2VB/gl6GPolY/Ak2TvghL9o2Fla6qz7pXbr12jyLEi1zEAfJqZfxMOHV4ADjeNI5fqqEC1+ccz9jbz9fmLnyz6c=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Rahul Singh
	<Rahul.Singh@arm.com>
Subject: Re: [PATCH v8 13/13] xen/arm: Add support for system suspend
 triggered by hardware domain
Thread-Topic: [PATCH v8 13/13] xen/arm: Add support for system suspend
 triggered by hardware domain
Thread-Index: AQHc16717IQ0/wsQJ0u4S7T7zIC8eLX/7bkAgARRIwA=
Date: Fri, 8 May 2026 14:30:15 +0000
Message-ID: <A37EF531-9180-4410-8C01-0A591A10DC95@arm.com>
References: <cover.1775125380.git.mykola_kvach@epam.com>
 <9b0f8922cd33df2b8e8038d639c1b8d8d73ce401.1775125380.git.mykola_kvach@epam.com>
 <4977CF18-39CC-4CC0-936A-890BAE5E8615@arm.com>
 <CAGeoDV8WkRGubF0qEXd4+PsXuabz3914G7bTYxTbaxZ2DsnY6w@mail.gmail.com>
In-Reply-To:
 <CAGeoDV8WkRGubF0qEXd4+PsXuabz3914G7bTYxTbaxZ2DsnY6w@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DU0PR08MB8345:EE_|AMS1EPF00000094:EE_|DU0PR08MB7414:EE_
X-MS-Office365-Filtering-Correlation-Id: 6e72159c-8899-4084-f6d2-08dead0e77ff
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700021|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info-Original:
 UwmCmKIjQBnHVlbRryISiIeVsaSBh3xtTrcYhVJAS671b6jPUL2MzcCdBDSxkQSQFnjnkjAE8PIOmzNoz7A+4NfwN0s3uHY8WEQNxuOmS+xJa31dcCwkX4Q7XgpBfXxAmRDWI3WOt2K2SrS04YqMzq4bff1nxkNXJyRRprbi6NfIenrv2s8s7RNkNjAHI7cewvEt+Fa1AsFPEZ+nwj4rqIxTt1LVMv6SXtnxdNLPKGTgXHEW3xieJEPIx+sZ6WPclRwU1fAz1QT1OkUOF+bzC3MKBKNqc/mto3taXpj97PIaCyzuhtI1wcc9609rcXoDDpDGinCV2NjdUzLoIuomDUCf8J7OfVse96lSoijh5INsxZsaaVZyXFwMeL8WeB8EeCbpWHhXZmbbQXExb/FkDeJpnNjqxguOI3SJS3kwYZk8Lnnq311PGvEj9EztgLPzrXBs2zpJpSr8d4fVtenprr3RCplYj/Zan+ZXicEExwps8UpgSVLDy+7rYSj2oV0BOQbimDUZKLQyC6oQGzz/2MgjOtZCjP9FLs9yfELYuJTWSoZEGsRoA0VyZDNkXzmebT8uwGuGqC3AcmcVod1O25kbjieYrjjljVtfddmeAaH5SvQRZ7VA3/ALT9SS59Z7UH0ujEn5Hvxj6R6oUjIqIhxMpu7p2/v6IEBZgJ2tWRlDH/ep84BtrYOzYRC5uWw9PnRmltpKyXusQYg5i43qtsdfwhEtt5UKd1UM1i44blBbEMq0Odr92HfitINTyHC4
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(38070700021)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <2756023018F6F14A879163FDE8E5B569@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 uN6KRtKbXAeXCvkPFFxHoV3Zh1c6Pv1FUC7ajZe9YnZGSh391lVHZHWbWB2oF7BHub2fUBHQ9dxy9/hBXIeVKsVcHtGX9fBBsy/chQruFS0/llLoBj3MT/l2Uj4NBF5BXnns1JqBrkds2/ss4l3mg9OFmYSdO/1ff3o3t/4Hw4P14cUazYXB7TkVOTi2yNvrJznDQjaJXFqnzM9hlLpMjWxRQT3PUvunaQA8IwZnmeA1aPaPq0rf6JvQhW1dnzytzk2q2RGf68LKZ9WMsL1TvuGhdFfdnNsA+sUhWc3vRzMDLsG7lsICzH68N1FjbDcy8HVqlavPqHDBqjQk7GjzIQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8345
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF00000094.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	09eb5905-fea7-409d-0fcf-08dead0e520d
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|14060799003|1800799024|82310400026|35042699022|7416014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	/Fisb4SyHRrB2ubw0R5nXlkaQEREHh1gr5ML9UBNlahFa+lNlIFP4RSsv9CbPUU7tVdLchoHQFry2IyPQZkmquterB+3n+Y9bp+GC50L4NdSqJbku7tis9kSOpKboC6FDKfaCQjrMlENJmXh3RjeJOCJSsvNNf99dRzIsFQ6IGdC6E24zMYOnwmcdR+rrrivP3GW5WTemVnfkXYVOU7yb+nz9CraWQx3ayDoICoHsJDm3JpM5aso2fqhOF33gd1sNHn0TpK9/XTACXgKsV7orTX0SzAZ8FpIlKTtqUU5WyblgVshJYqdu7yg5wXItDxLMOmUHdnELQqdPZrfmF+TDER5M9Qxby5c0Y65/uaS6Z6p/fSaXOgIxM4lvlnrnxutRT+aMeBwOLdhvjDfDEk3/udiBYreSWPemO4sKnaQc8DBmNqoST6j+/xmGDJPyGaUUnM7V0rzdMSvznJ3SVuwbGY1NpXF9mUVQwtglqfXU9KUdcQiFfJ/q6FP7oFE/te3wI+QR08jeOwISy4qHFqLWksYx8Z4UF/KVYhk5SYu0tPNH7VnSi7xcCXF8R/lCEXootB+fPj/y4o0PhJf6c4vOEEl69fbyBRyWWfXuTYhWJ58lFXUO/GrbrwqelS3sbXzcAmOOBAkCjq9CXnlTiPTl/7uuaVg4WGoOPhXw1X7nk8uNcGB2YOtH1WUiuOrJd8S4oEO9/FEAkpHxUB72wM9ydKfsvVjz2WZ7kbzC5aHy0w=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(14060799003)(1800799024)(82310400026)(35042699022)(7416014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	KH+Dn1+JFATuQqkuP99BS7OR/JTQOJpsLUngWay+XPca8UDAjZTJWnyeGW11MVMJUq4iBBJxaj+sx4n0IOn0SRqHxPrILuYNgyIp/J0knHv6P2L5oMpWwQWA4DBvNVxp9FjJyfDz0tM3Y+fVUkrZiozHMXFezOHksZRE0FReA+XTd9Yu/If4SJsLrRNcbpi28bB94WYHLaJhgcb/riSEemPRmvMeSAlAKYGOy90ccMI4eF3vL2L0u8ZZOq5u188vOVByWRz/IE3cVx56sg2oLQnbbgJsg+6cy8SKpd50rElSs2IBw/SfbPm3ROMFzhCgakfec0GyUJUW4xdoPwPhm4mIpAHgB4ZSYqpfGmqwB7mM/UPE+vABak3IjtxbM4xfEEOLdjqIMDiiXCeX76mMOqJ3li3TACMnwRyZYqBLE49S3omdCMqNgZEiLmE/ubP6
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 14:31:18.6520
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6e72159c-8899-4084-f6d2-08dead0e77ff
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS1EPF00000094.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7414
X-purgate-ID: tlsNG-33051d/1778250685-41B92938-7E312B51/0/0
X-purgate-type: clean
X-purgate-size: 12338

SGkgTXlrb2xhLA0KDQo+Pj4gKy8qIFhlbiBzdXNwZW5kLiBkYXRhIGlkZW50aWZpZXMgdGhlIGRv
bWFpbiB0aGF0IGluaXRpYXRlZCBzdXNwZW5kLiAqLw0KPj4+ICtzdGF0aWMgdm9pZCBzeXN0ZW1f
c3VzcGVuZCh2b2lkICpkYXRhKQ0KPj4+ICt7DQo+Pj4gKyAgICBpbnQgc3RhdHVzOw0KPj4+ICsg
ICAgdW5zaWduZWQgbG9uZyBmbGFnczsNCj4+PiArICAgIHN0cnVjdCBkb21haW4gKmQgPSAoc3Ry
dWN0IGRvbWFpbiAqKWRhdGE7DQo+Pj4gKw0KPj4+ICsgICAgQlVHX09OKHN5c3RlbV9zdGF0ZSAh
PSBTWVNfU1RBVEVfYWN0aXZlKTsNCj4+PiArDQo+Pj4gKyAgICBzeXN0ZW1fc3RhdGUgPSBTWVNf
U1RBVEVfc3VzcGVuZDsNCj4+PiArDQo+Pj4gKyAgICBwcmludGsoIlhlbiBzdXNwZW5kaW5nLi4u
XG4iKTsNCj4+PiArDQo+Pj4gKyAgICBmcmVlemVfZG9tYWlucygpOw0KPj4+ICsgICAgc2NoZWR1
bGVyX2Rpc2FibGUoKTsNCj4+PiArDQo+Pj4gKyAgICBzdGF0dXMgPSBjYW5fc3lzdGVtX3N1c3Bl
bmQoKTsNCj4+PiArICAgIGlmICggc3RhdHVzICkNCj4+PiArICAgIHsNCj4+PiArICAgICAgICBz
eXN0ZW1fc3RhdGUgPSBTWVNfU1RBVEVfcmVzdW1lOw0KPj4+ICsgICAgICAgIGdvdG8gcmVzdW1l
X3NjaGVkdWxlcjsNCj4+IA0KPj4gV2hlbiB3ZSBoYXZlIGFuIGVycm9yIGFuZCB3ZSBnZXQgdGhl
IHJlc3VtZV9zY2hlZHVsZXIgcGF0aCwgd2UgYXBwbHkgYmFjayB0aGUNCj4+IGNvbnRleHQgb2Yg
dGhlIGd1ZXN0IHNhdmVkIHByZXZpb3VzbHkgaW4gZG9fcHNjaV8xXzBfc3lzdGVtX3N1c3BlbmQo
KSwgc28gYW0gSQ0KPj4gY29ycmVjdCBzYXlpbmcgdGhlIGd1ZXN0IHdvbuKAmXQgZ2V0IGFueSBQ
U0NJIGVycm9yIGJhY2sgYW5kIHdlIHJlc3VtZSB0aGUgZ3Vlc3QNCj4+IGZyb20gdGhlIGd1ZXN0
IHJlc3VtZSBlbnRyeXBvaW50Pw0KPj4gDQo+PiBJbiBjYXNlLCBzaG91bGQgd2UgaGF2ZSBhIGRp
ZmZlcmVudCBwYXRoIHRoYXQgcmV0dXJucyBhIFBTQ0kgZXJyb3IgKFBTQ0lfKikgaW50byB0aGUg
Z3Vlc3QNCj4+IHgwLCBhbmQgc2tpcHMgdGhlIGNvbnRleHQgcmVzdG9yZT8NCj4gDQo+IFlvdSBh
cmUgcmlnaHQgYWJvdXQgdGhlIGN1cnJlbnQgY29udHJvbCBmbG93OiBvbmNlIHRoZSB2aXJ0dWFs
DQo+IFNZU1RFTV9TVVNQRU5EIHJlcXVlc3QgaGFzIGJlZW4gYWNjZXB0ZWQgYW5kIHRoZSBkb21h
aW4gaGFzIGJlZW4gcGFya2VkLCBhDQo+IGxhdGVyIGZhaWx1cmUgaW4gdGhlIFhlbi13aWRlIHN1
c3BlbmQgcGF0aCByZXN1bWVzIHRoZSBkb21haW4gdGhyb3VnaCB0aGUgbm9ybWFsDQo+IGRvbWFp
biByZXN1bWUgcGF0aCwgcmF0aGVyIHRoYW4gcmV0dXJuaW5nIGEgUFNDSSBlcnJvciBmcm9tIHRo
ZSBvcmlnaW5hbCBjYWxsLg0KPiANCj4gVGhpcyBpcyBpbnRlbnRpb25hbCBpbiB0aGUgY3VycmVu
dCBkZXNpZ24uIFRoZSB2aXJ0dWFsIFBTQ0kgU1lTVEVNX1NVU1BFTkQNCj4gcGF0aCBwYXJrcyB0
aGUgZG9tYWluIGFuZCBzYXZlcyBpdHMgcmVzdW1lIGNvbnRleHQuIFRoZSBhY3R1YWwgWGVuLXdp
ZGUgaG9zdA0KPiBzdXNwZW5kIGlzIGEgc2VwYXJhdGUgc3RlcCB0aGF0IGlzIGF0dGVtcHRlZCBv
bmx5IGFmdGVyIGFsbCBkb21haW5zIGFyZQ0KPiBzdXNwZW5kZWQuDQo+IA0KPiBTbyBhIGZhaWx1
cmUgaW4gdGhlIGxhdGVyIFhlbi13aWRlIHN1c3BlbmQgc3RlcCBpcyB0cmVhdGVkIGFzIGFuIGFi
b3J0IG9mIHRoZQ0KPiBob3N0IHN1c3BlbmQgYXR0ZW1wdCBhZnRlciB0aGUgZG9tYWluIHN1c3Bl
bmQgd2FzIGFscmVhZHkgYWNjZXB0ZWQuIFRoZSBkb21haW4NCj4gaXMgdGhlbiByZXN1bWVkIHRo
cm91Z2ggdGhlIGV4aXN0aW5nIGRvbWFpbiByZXN1bWUgcGF0aCwgc2ltaWxhcmx5IHRvIHRoZQ0K
PiB0b29sc3RhY2sveGwgc3VzcGVuZC1yZXN1bWUgZmxvdywgcmF0aGVyIHRoYW4gYnkgcmUtZW50
ZXJpbmcgdGhlIGd1ZXN0IFBTQ0kNCj4gY2FsbCBwYXRoIGFuZCBtb2RpZnlpbmcgdGhlIHNhdmVk
IHZDUFUgY29udGV4dCBhZ2Fpbi4NCj4gDQo+IEkgYWdyZWUgdGhpcyBkZXNpZ24gaXMgbm90IG9i
dmlvdXMgZnJvbSB0aGUgcGF0Y2guIEkgd2lsbCBjbGFyaWZ5IHRoZSBjb21taXQNCj4gbWVzc2Fn
ZSBhbmQgY29tbWVudHMuIElmIHlvdSBvciB0aGUgbWFpbnRhaW5lcnMgdGhpbmsgdGhhdCBmYWls
dXJlcyBiZWZvcmUgdGhlDQo+IHBoeXNpY2FsIFNZU1RFTV9TVVNQRU5EIGNhbGwgc3VjY2VlZHMg
c2hvdWxkIGJlIHJlcG9ydGVkIGJhY2sgdGhyb3VnaCB0aGUNCj4gb3JpZ2luYWwgdmlydHVhbCBQ
U0NJIGNhbGwsIHRoZW4gdGhpcyB3b3VsZCByZXF1aXJlIGEgZGlmZmVyZW50IGZsb3cuIEkgd2Fz
DQo+IHRyeWluZyB0byBhdm9pZCB0aGF0IGV4dHJhIGNvbXBsZXhpdHkgaW4gdGhpcyBzZXJpZXMu
DQoNCk9rIEkgdW5kZXJzdGFuZCwgSeKAmW0gd29uZGVyaW5nIGlmIGluc2lkZSBkb19wc2NpXzFf
MF9zeXN0ZW1fc3VzcGVuZCgpIHdlIGNvdWxkIGRvIHNvbWV0aGluZw0KbGlrZToNCg0KW+KApl0N
CmlmICggaXNfY29udHJvbF9kb21haW4oZCkgJiYgIW90aGVyX2RvbWFpbnNfcmVhZHlfZm9yX3N1
c3BlbmQoZCkgKQ0KICAgIHJldHVybiBQU0NJX0RFTklFRDsNCg0KW+KApl0NCg0KQnV0IEnigJlt
IG9rIGFsc28gdG8gb25seSBkb2N1bWVudCB0aGlzIGJlaGF2aW91ci4NCg0KDQo+Pj4gDQo+Pj4g
ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92cHNjaS5jIGIveGVuL2FyY2gvYXJtL3Zwc2NpLmMN
Cj4+PiBpbmRleCBiZDg3ZWM0MzBkLi44ZmI5MTcyMTg2IDEwMDY0NA0KPj4+IC0tLSBhL3hlbi9h
cmNoL2FybS92cHNjaS5jDQo+Pj4gKysrIGIveGVuL2FyY2gvYXJtL3Zwc2NpLmMNCj4+PiBAQCAt
NSw2ICs1LDcgQEANCj4+PiANCj4+PiAjaW5jbHVkZSA8YXNtL2N1cnJlbnQuaD4NCj4+PiAjaW5j
bHVkZSA8YXNtL2RvbWFpbi5oPg0KPj4+ICsjaW5jbHVkZSA8YXNtL3N1c3BlbmQuaD4NCj4+PiAj
aW5jbHVkZSA8YXNtL3ZnaWMuaD4NCj4+PiAjaW5jbHVkZSA8YXNtL3Zwc2NpLmg+DQo+Pj4gI2lu
Y2x1ZGUgPGFzbS9ldmVudC5oPg0KPj4+IEBAIC0yMzIsOCArMjMzLDcgQEAgc3RhdGljIGludDMy
X3QgZG9fcHNjaV8xXzBfc3lzdGVtX3N1c3BlbmQocmVnaXN0ZXJfdCBlcG9pbnQsIHJlZ2lzdGVy
X3QgY2lkKQ0KPj4+ICAgIGlmICggaXNfNjRiaXRfZG9tYWluKGQpICYmIGlzX3RodW1iICkNCj4+
PiAgICAgICAgcmV0dXJuIFBTQ0lfSU5WQUxJRF9BRERSRVNTOw0KPj4+IA0KPj4+IC0gICAgLyog
U1lTVEVNX1NVU1BFTkQgaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhlIGhhcmR3YXJlIGRvbWFpbiB5
ZXQgKi8NCj4+PiAtICAgIGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQpICkNCj4+PiArICAgIGlm
ICggIUlTX0VOQUJMRUQoQ09ORklHX1NZU1RFTV9TVVNQRU5EKSAmJiBpc19oYXJkd2FyZV9kb21h
aW4oZCkgKQ0KPj4+ICAgICAgICByZXR1cm4gUFNDSV9OT1RfU1VQUE9SVEVEOw0KPj4+IA0KPj4+
ICAgIC8qIEVuc3VyZSB0aGF0IGFsbCBDUFVzIG90aGVyIHRoYW4gdGhlIGNhbGxpbmcgb25lIGFy
ZSBvZmZsaW5lICovDQo+Pj4gQEAgLTI2Niw2ICsyNjYsOSBAQCBzdGF0aWMgaW50MzJfdCBkb19w
c2NpXzFfMF9zeXN0ZW1fc3VzcGVuZChyZWdpc3Rlcl90IGVwb2ludCwgcmVnaXN0ZXJfdCBjaWQp
DQo+Pj4gICAgICAgICAgICAiU1lTVEVNX1NVU1BFTkQgcmVxdWVzdGVkLCBlcG9pbnQ9JSMiUFJJ
cmVnaXN0ZXIiLCBjaWQ9JSMiUFJJcmVnaXN0ZXIiXG4iLA0KPj4+ICAgICAgICAgICAgZXBvaW50
LCBjaWQpOw0KPj4+IA0KPj4+ICsgICAgaWYgKCBpc19jb250cm9sX2RvbWFpbihkKSApDQo+PiAN
Cj4+IFdoeSBpc19jb250cm9sX2RvbWFpbigpIGhlcmUgYW5kIG5vdCBpc19oYXJkd2FyZV9kb21h
aW4oKSA/DQo+IA0KPiBUaGUgdXNlIG9mIGlzX2NvbnRyb2xfZG9tYWluKCkgaXMgaW50ZW50aW9u
YWwuDQo+IA0KPiBUaGUgaW50ZW5kZWQgbW9kZWwgaXMgdGhhdCBYZW4td2lkZSBob3N0IHN1c3Bl
bmQgaXMgb3JjaGVzdHJhdGVkIGJ5IHRoZQ0KPiBwcml2aWxlZ2VkIG1hbmFnZW1lbnQvY29udHJv
bCBkb21haW4uIFRoZSBjb250cm9sIGRvbWFpbiBjb29yZGluYXRlcyB0aGUNCj4gdG9vbHN0YWNr
IHNpZGUsIGFza3Mgb3RoZXIgZG9tYWlucyB0byBlbnRlciBzdXNwZW5kLCBhbmQgdGhlbiBpc3N1
ZXMgdGhlIGZpbmFsDQo+IFNZU1RFTV9TVVNQRU5EIHJlcXVlc3QgdG8gWGVuLg0KPiANCj4gVGhp
cyBkb2VzIG5vdCBoYXZlIHRvIGJlIHRoZSBzYW1lIGVudGl0eSBhcyB0aGUgaGFyZHdhcmUgZG9t
YWluLiBJZiB0aGUNCj4gaGFyZHdhcmUgZG9tYWluIGlzIHNlcGFyYXRlLCBpdCBpcyBvbmUgb2Yg
dGhlIGRvbWFpbnMgdGhhdCB0aGUgY29udHJvbCBkb21haW4NCj4gcGFya3MgYmVmb3JlIHRoZSBm
aW5hbCBob3N0IHN1c3BlbmQgc3RlcC4NCj4gDQo+IFRoZSBod2RvbS1zcGVjaWZpYyBjaGVja3Mg
aW4gdGhpcyBwYXRjaCBoYXZlIGEgZGlmZmVyZW50IHB1cnBvc2U6IHRoZXkgYXZvaWQNCj4gdGhl
IG9sZCBod2RvbV9zaHV0ZG93bigpIHBhdGggZm9yIFNIVVRET1dOX3N1c3BlbmQgYW5kIGFsbG93
IHRoZSBoYXJkd2FyZQ0KPiBkb21haW4gdG8gYmUgcGFya2VkIGFzIHBhcnQgb2YgdGhlIHN1c3Bl
bmQgc2VxdWVuY2UuIFRoZXkgZG8gbm90IGRlZmluZSB0aGUNCj4gcG9saWN5IGZvciB3aG8gaXMg
YWxsb3dlZCB0byB0cmlnZ2VyIFhlbi13aWRlIGhvc3Qgc3VzcGVuZC4NCj4gDQo+IFRoYXQgc2Fp
ZCwgdGhpcyBwb2xpY3kgbWF5IG5vdCBiZSBvcHRpbWFsIGZvciBhbGwgY29uZmlndXJhdGlvbnMs
IGVzcGVjaWFsbHkNCj4gd2hlbiB0aGUgY29udHJvbCBhbmQgaGFyZHdhcmUgZG9tYWluIHJvbGVz
IGFyZSBzcGxpdC4gSSB3b3VsZCBhcHByZWNpYXRlIHlvdXINCj4gdmlldywgYXMgd2VsbCBhcyB0
aGUgbWFpbnRhaW5lcnMnIHZpZXdzLCBvbiB3aGV0aGVyIHRoZSB0cmlnZ2VyIHNob3VsZCByZW1h
aW4NCj4gY29udHJvbC1kb21haW4gYmFzZWQsIGJlIHRpZWQgdG8gdGhlIGhhcmR3YXJlIGRvbWFp
biBpbnN0ZWFkLCBvciBiZSBleHByZXNzZWQNCj4gdGhyb3VnaCBhIHNlcGFyYXRlIGhvc3Qtc3Vz
cGVuZCBjYXBhYmlsaXR5L2hlbHBlci4NCg0KSW4gdGhlIGNvbW1pdCBtZXNzYWdlIGFuZCB0aXRs
ZSBJIHNhdyBIVyBkb21haW4sIHNvIG1heWJlIHRoZSBjb21taXQgc2hvdWxkIGJlIHVwZGF0ZWQN
CnRvIHNheSBjb250cm9sIGRvbWFpbiBpbnN0ZWFkPw0KDQpBdCB0aGlzIHBvaW50IGhvd2V2ZXIg
SeKAmW0gd29uZGVyaW5nIGFib3V0IHRoaXMgY29kZSBhYm92ZToNCmBgYA0KICAgIGlmICggIUlT
X0VOQUJMRUQoQ09ORklHX1NZU1RFTV9TVVNQRU5EKSAmJiBpc19oYXJkd2FyZV9kb21haW4oZCkg
KQ0KICAgICAgICByZXR1cm4gUFNDSV9OT1RfU1VQUE9SVEVEOw0KYGBgDQphbmQgaW4gZG9fcHNj
aV8xXzBfZmVhdHVyZXMoKSwgc2hvdWxkbuKAmXQgd2UgdXNlIGNvbnNpc3RlbnRseSBpc19jb250
cm9sX2RvbWFpbigpPw0KDQo+IA0KPj4gDQo+Pj4gKyAgICAgICAgaG9zdF9zeXN0ZW1fc3VzcGVu
ZChkKTsNCj4+PiArDQo+Pj4gICAgcmV0dXJuIHJjOw0KPj4+IH0NCj4+PiANCj4+PiBAQCAtMjkw
LDcgKzI5MywxMCBAQCBzdGF0aWMgaW50MzJfdCBkb19wc2NpXzFfMF9mZWF0dXJlcyh1aW50MzJf
dCBwc2NpX2Z1bmNfaWQpDQo+Pj4gICAgICAgIHJldHVybiAwOw0KPj4+ICAgIGNhc2UgUFNDSV8x
XzBfRk4zMl9TWVNURU1fU1VTUEVORDoNCj4+PiAgICBjYXNlIFBTQ0lfMV8wX0ZONjRfU1lTVEVN
X1NVU1BFTkQ6DQo+Pj4gLSAgICAgICAgcmV0dXJuIGlzX2hhcmR3YXJlX2RvbWFpbihjdXJyZW50
LT5kb21haW4pID8gUFNDSV9OT1RfU1VQUE9SVEVEIDogMDsNCj4+PiArICAgICAgICBpZiAoIElT
X0VOQUJMRUQoQ09ORklHX1NZU1RFTV9TVVNQRU5EKSB8fA0KPj4+ICsgICAgICAgICAgICAgIWlz
X2hhcmR3YXJlX2RvbWFpbihjdXJyZW50LT5kb21haW4pICkNCj4+IA0KPj4gU2hvdWxkIHRoaXMg
aGF2ZSBhbHNvIHRoZSBjb25kaXRpb24gdGhhdCDigJxpcyBoYXJkd2FyZSBkb21haW4gYW5kIHBz
Y2lfdmVyID49IFBTQ0lfVkVSU0lPTigxLCAwKeKAnT8NCj4+IE90aGVyd2lzZSBpZiB0aGUgaG9z
dCBtYWNoaW5lIGRvZXN0buKAmXQgc3VwcG9ydCBQU0NJIDEuMCB3ZSB3b3VsZCByZXR1cm4gT0sg
aGVyZSBidXQgdGhlIGNhbGwgd291bGQNCj4+IGZhaWwgbGF0ZXIgaW4gY2FsbF9wc2NpX3N5c3Rl
bV9zdXNwZW5kKCk/DQo+IA0KPiBHb29kIHBvaW50Lg0KPiANCj4gSSBhZ3JlZSB0aGF0LCBmb3Ig
dGhlIGRvbWFpbiBhbGxvd2VkIHRvIHRyaWdnZXIgWGVuLXdpZGUgc3VzcGVuZCwgWGVuIHNob3Vs
ZA0KPiBub3QgYWR2ZXJ0aXNlIFNZU1RFTV9TVVNQRU5EIGlmIHRoZSBob3N0IHN1c3BlbmQgcGF0
aCBjYW5ub3QgYmUgdXNlZC4NCj4gDQo+IEkgdGhpbmsgdGhpcyBzaG91bGQgYmUgY2hlY2tlZCBh
cyBhbiBleHBsaWNpdCBob3N0IFNZU1RFTV9TVVNQRU5EIGNhcGFiaWxpdHksDQo+IHJhdGhlciB0
aGFuIG9ubHkgYXMgcHNjaV92ZXIgPj0gUFNDSV9WRVJTSU9OKDEsIDApLiBUaGUgc2FtZSBjYXBh
YmlsaXR5IGNoZWNrDQo+IGFsc28gbmVlZHMgdG8gYmUgZW5mb3JjZWQgaW4gdGhlIGFjdHVhbCBT
WVNURU1fU1VTUEVORCBoYW5kbGVyIGJlZm9yZSBwYXJraW5nDQo+IHRoZSBkb21haW4sIGJlY2F1
c2UgYSBjYWxsZXIgbWF5IGludm9rZSBTWVNURU1fU1VTUEVORCBkaXJlY3RseSB3aXRob3V0IGZp
cnN0DQo+IHF1ZXJ5aW5nIFBTQ0lfRkVBVFVSRVMuDQo+IA0KPiBGb3Igb3JkaW5hcnkgZ3Vlc3Rz
LCB0aGUgcGh5c2ljYWwgUFNDSSB2ZXJzaW9uIGlzIG5vdCByZWxldmFudCBiZWNhdXNlIHRoZXkN
Cj4gY2Fubm90IHRyaWdnZXIgaG9zdCBzdXNwZW5kOyB0aGVpciBTWVNURU1fU1VTUEVORCBwYXRo
IGlzIHZpcnR1YWwuDQo+IA0KPiBJIHdpbGwgbWFrZSB0aGlzIGNvbnNpc3RlbnQgaW4gdjk6IFBT
Q0lfRkVBVFVSRVMgd2lsbCBhZHZlcnRpc2UgU1lTVEVNX1NVU1BFTkQNCj4gZm9yIHRoZSBob3N0
LXN1c3BlbmQtdHJpZ2dlcmluZyBkb21haW4gb25seSB3aGVuIHRoZSBob3N0IFNZU1RFTV9TVVNQ
RU5EIGJhY2tlbmQNCj4gaXMgYXZhaWxhYmxlLCBhbmQgdGhlIGFjdHVhbCBTWVNURU1fU1VTUEVO
RCBwYXRoIHdpbGwgZW5mb3JjZSB0aGUgc2FtZSBjaGVjay4NCg0Kb2sNCg0KPj4+IA0KPj4+IGRp
ZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS5jIGIveGVuL2RyaXZl
cnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYw0KPj4+IGluZGV4IDIyZDMwNmQwY2IuLjQ1ZjI5ZWY4
ZWMgMTAwNjQ0DQo+Pj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYw0K
Pj4+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LmMNCj4+PiBAQCAtMjk0
Nyw2ICsyOTQ3LDEzIEBAIHN0YXRpYyB2b2lkIGFybV9zbW11X2lvbW11X2RvbWFpbl90ZWFyZG93
bihzdHJ1Y3QgZG9tYWluICpkKQ0KPj4+IHhmcmVlKHhlbl9kb21haW4pOw0KPj4+IH0NCj4+PiAN
Cj4+PiArI2lmZGVmIENPTkZJR19TWVNURU1fU1VTUEVORA0KPj4+ICtzdGF0aWMgaW50IGFybV9z
bW11X3N1c3BlbmQodm9pZCkNCj4+PiArew0KPj4+ICsgcmV0dXJuIC1FTk9TWVM7DQo+Pj4gK30N
Cj4+PiArI2VuZGlmDQo+PiANCj4+IE1heWJlIHdlIHdhbnQgdG8gZ2F0ZSB0aGUgZmVhdHVyZSBh
bHNvIHRvICFDT05GSUdfQVJNX1NNTVUgPyBJIHdvdWxkIHdhaXQgZm9yIHRoZSBtYWludGFpbmVy
cw0KPj4gdmlldyBvbiB0aGlzLg0KPiANCj4gSSBmZWVsIHRoYXQgZ2F0aW5nIHRoaXMgc3RyaWN0
bHkgb24gIUNPTkZJR19BUk1fU01NVSBtaWdodCBub3QgYmUgdGhlIG1vc3QNCj4gb3B0aW1hbCBh
cHByb2FjaCBoZXJlLg0KPiANCj4gQ09ORklHX0FSTV9TTU1VIGlzIGEgYnVpbGQtdGltZSBvcHRp
b24gYW5kIGRvZXMgbm90IG1lYW4gdGhhdCBhbiBvbGQgU01NVXYxL3YyDQo+IGRldmljZSBpcyBh
Y3R1YWxseSBwcmVzZW50LiBVc2luZyBpdCB3b3VsZCBkaXNhYmxlIHN5c3RlbSBzdXNwZW5kIGV2
ZW4gb24NCj4gcGxhdGZvcm1zIHdoZXJlIG9ubHkgU01NVXYzIGlzIHVzZWQsIGJlY2F1c2UgQ09O
RklHX0FSTV9TTU1VIGlzIGVuYWJsZWQgYnkNCj4gZGVmYXVsdCBmb3IgQXJtLg0KPiANCj4gVGhl
IGNvbmRpdGlvbiBzaG91bGQgYmUgcnVudGltZS1iYXNlZDogd2hldGhlciB0aGUgYWN0aXZlL3By
b2JlZCBJT01NVSBkZXZpY2VzDQo+IGhhdmUgc3lzdGVtIHN1c3BlbmQvcmVzdW1lIHN1cHBvcnQu
IEZvciB0aGUgb2xkIEFSTSBTTU1VIGRyaXZlciB0aGlzIGlzIG5vdA0KPiBpbXBsZW1lbnRlZCB0
b2RheSwgc28gYSBwbGF0Zm9ybSB3aXRoIGFuIFNNTVV2MS92MiBpbnN0YW5jZSBzaG91bGQgbm90
IGV4cG9zZQ0KPiBvciBhdHRlbXB0IGhvc3Qgc3VzcGVuZC4NCj4gDQo+IEkgdGhpbmsgd2Ugc2hv
dWxkIGhhbmRsZSB0aGlzIGJ5IHRyYWNraW5nIHdoZXRoZXIgYW55IG9sZCBBUk0gU01NVXYxL3Yy
IGRldmljZQ0KPiB3YXMgYWN0dWFsbHkgcHJvYmVkLCBvciBieSBhZGRpbmcgYSBnZW5lcmljIElP
TU1VIHN1c3BlbmQgY2FwYWJpbGl0eSBjaGVjay4gVGhlbg0KPiB0aGUgaG9zdCBzdXNwZW5kIGF2
YWlsYWJpbGl0eSBjaGVjayBjYW4gcmVqZWN0IHN5c3RlbSBzdXNwZW5kIG9ubHkgd2hlbiBzdWNo
IGFuDQo+IHVuc3VwcG9ydGVkIElPTU1VIGlzIHByZXNlbnQsIGluc3RlYWQgb2YgZGlzYWJsaW5n
IHRoZSBmZWF0dXJlIGZvciBhbGwNCj4gQXJtIGJ1aWxkcw0KPiB3aXRoIENPTkZJR19BUk1fU01N
VSBlbmFibGVkLg0KPiANCj4gSSB3b3VsZCBiZSBpbnRlcmVzdGVkIHRvIGhlYXIgaWYgeW91IG9y
IHRoZSBtYWludGFpbmVycyBzZWUgYSBiZXR0ZXIgd2F5IHRvDQo+IGV4cHJlc3MgdGhpcyBjYXBh
YmlsaXR5Lg0KDQpvaywgbGV04oCZcyBhZGRyZXNzIEphbiBjb21tZW50IG5vdyBhbmQgd2UgY2Fu
IHNlZSB3aGF0IHRoZSBtYWludGFpbmVycyB0aGluayBhYm91dCB0aGlzLg0KDQpDaGVlcnMsDQpM
dWNhDQoNCg0K


From xen-devel-bounces@lists.xenproject.org Fri May 08 14:34:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:34:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303687.1576939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMHF-0000hl-TV; Fri, 08 May 2026 14:34:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303687.1576939; Fri, 08 May 2026 14:34:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMHF-0000he-QM; Fri, 08 May 2026 14:34:05 +0000
Received: by outflank-mailman (input) for mailman id 1303687;
 Fri, 08 May 2026 14:34:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <luca.fancellu@arm.com>) id 1wLMHE-0000hU-Mb
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:34:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMHE-00A7Or-3q
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:34:04 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 69fdf443-e002-0a2a0a5209dd-0a2a450290cc-46
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:34:04 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 69fdf45a-af86-0a2a45020019-d98c6eace33e-1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:34:03 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 384F51D34;
 Fri,  8 May 2026 07:33:57 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0CF9C3F763;
 Fri,  8 May 2026 07:34:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="From:To:Cc:Subject:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778250842; bh=zq3DhQH4sl+9uv2VKEwOOwkj7NuXi59OI/wXqdtf3Pw=;
	h=From:To:Cc:Subject:Date:From;
	b=PF+FVPhbQG7HcoMKXQxp8e4yU+r+X/SaVca58YM4DmXRhB3Mo6Y8PgtrNiabyit72
	 HKxf7eoDnYW2k1ESfpi+WhEcyuyiOt4r0KKrRkjvcpdmose1njskqM9mMRqUjO6m4h
	 S6Zsjh/Dq1wCpvouNP/Vgzu1eyFHrKDpVvGcimSA=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v5 0/3] Fifth MPU Series
Date: Fri,  8 May 2026 15:33:50 +0100
Message-Id: <20260508143353.3512004-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778250844-AB36C161-ED15C89A/0/0
X-purgate-type: clean
X-purgate-size: 1518

This series continues to further the ongoing work to introduce support
for MPU systems in Xen.

The patches in this series aim to implement MPU specific p2m functions.

This serie is based on staging 10d417b8b62efa5093707c1dfe9bd48e0abeb331.

Harry Ramsey (2):
  arm/mpu: Introduce `v8r_el1_msa` device tree property for domains
  arm/mpu: Implement p2m tables

Penny Zheng (1):
  arm/mpu: implement setup_virt_paging for MPU systems

 docs/misc/arm/device-tree/booting.txt    | 14 +++++
 xen/arch/arm/arm64/mpu/p2m.c             | 80 +++++++++++++++++++++++-
 xen/arch/arm/dom0less-build.c            | 74 ++++++++++++++++++++++
 xen/arch/arm/domain.c                    | 11 ++++
 xen/arch/arm/include/asm/arm32/mpu.h     |  2 +
 xen/arch/arm/include/asm/arm64/mpu.h     |  2 +
 xen/arch/arm/include/asm/arm64/sysregs.h |  4 ++
 xen/arch/arm/include/asm/cpufeature.h    | 13 +++-
 xen/arch/arm/include/asm/domain.h        |  4 ++
 xen/arch/arm/include/asm/domain_build.h  | 21 +++++++
 xen/arch/arm/include/asm/mpu/p2m.h       |  7 +++
 xen/arch/arm/include/asm/p2m.h           |  5 ++
 xen/arch/arm/include/asm/processor.h     |  8 +++
 xen/arch/arm/mpu/arm32/mm.c              | 17 +++++
 xen/arch/arm/mpu/arm64/mm.c              | 18 ++++++
 xen/arch/arm/mpu/p2m.c                   | 72 ++++++++++++++++++++-
 xen/include/public/arch-arm.h            |  6 ++
 xen/include/public/domctl.h              |  4 +-
 18 files changed, 353 insertions(+), 9 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:34:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:34:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303688.1576948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMHI-0000vV-2w; Fri, 08 May 2026 14:34:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303688.1576948; Fri, 08 May 2026 14:34:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMHH-0000vO-WE; Fri, 08 May 2026 14:34:08 +0000
Received: by outflank-mailman (input) for mailman id 1303688;
 Fri, 08 May 2026 14:34:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <luca.fancellu@arm.com>) id 1wLMHG-0000kf-7f
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:34:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMHF-00DAHk-Kv
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:34:05 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 69fdf44f-5cb7-0a2a0a5109dd-0a2a450a9812-32
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:34:05 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 69fdf45c-56b3-0a2a450a0019-d98c6eaceb08-1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:34:05 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2CD643591;
 Fri,  8 May 2026 07:33:59 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D62373F763;
 Fri,  8 May 2026 07:34:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778250844; bh=3OwJmJ83fF7wYUwwajm97vdwH/PiBu+huX5oR7YFd8I=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=GtkHKE7eaEuqzyAEc+28pZDGbOT7oHXCt0WMgxCsQqSWXGwxAbYLMt0apfFw+sy97
	 VS0dr5OxqufzNH2YDBnrmc2ceWqaY1rn4JZDxQUUpFhkkSrFnk7wJgNNBJo76ytoAq
	 koqbbcb5PHK8FtzsXURapvm1tBchwM+2Axh5yKKo=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Penny Zheng <Penny.Zheng@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Penny Zheng <penny.zheng@arm.com>,
	Wei Chen <wei.chen@arm.com>,
	Hari Limaye <hari.limaye@arm.com>,
	Harry Ramsey <harry.ramsey@arm.com>
Subject: [PATCH v5 1/3] arm/mpu: implement setup_virt_paging for MPU systems
Date: Fri,  8 May 2026 15:33:51 +0100
Message-Id: <20260508143353.3512004-2-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260508143353.3512004-1-luca.fancellu@arm.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778250845-7E58E8B7-07AC936A/0/0
X-purgate-type: clean
X-purgate-size: 7761

From: Penny Zheng <Penny.Zheng@arm.com>

Implement setup_virt_paging for AArch64 MPU systems, taking care of
stage 2 address translation regime, IPA bits, supported VMID length
configuration and VTCR_EL2/VSTCR_EL2 register programming.

Implement also the Armv8-R specific changes to ID_AA64MMFR0_EL1,
related to the supported memory system architecture (PMSA/VMSA)
and check that when MPU is built, the underlying HW is compatible
with PMSA. By default MPU at EL2 and EL1 is required.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
Signed-off-by: Wei Chen <wei.chen@arm.com>
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Hari Limaye <hari.limaye@arm.com>
Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
v5:
 - removed spaces in inline if condition
 - Add Michal R-by
v4:
- Fixed typo in the comments
- Fixed typo in the commit title and message
- moved p2m_vmid_allocator_init() after write of
  VTCR_EL2
- Fixed printf format specifier %d -> %u
v3:
- Refactor unused code to more relevant commits.
- Add P2M print information
- Formatting issues
- Update commit message
v2:
- Separate commit into multiple commits
---
 xen/arch/arm/arm64/mpu/p2m.c             | 80 +++++++++++++++++++++++-
 xen/arch/arm/include/asm/arm64/sysregs.h |  4 ++
 xen/arch/arm/include/asm/cpufeature.h    | 13 +++-
 xen/arch/arm/include/asm/processor.h     |  8 +++
 4 files changed, 101 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/arm64/mpu/p2m.c b/xen/arch/arm/arm64/mpu/p2m.c
index b6d8b2777b58..4547417df97e 100644
--- a/xen/arch/arm/arm64/mpu/p2m.c
+++ b/xen/arch/arm/arm64/mpu/p2m.c
@@ -2,11 +2,89 @@
 
 #include <xen/bug.h>
 #include <xen/init.h>
+#include <xen/lib.h>
 #include <asm/p2m.h>
 
 void __init setup_virt_paging(void)
 {
-    BUG_ON("unimplemented");
+    register_t vtcr_el2 = READ_SYSREG(VTCR_EL2);
+    register_t vstcr_el2 = READ_SYSREG(VSTCR_EL2);
+
+    /* PA size */
+    const unsigned int pa_range_info[] = {32, 36, 40, 42, 44, 48, 52, 0,
+                                          /* Invalid */};
+
+    /*
+     * Restrict "p2m_ipa_bits" if needed. As P2M table is always configured
+     * with IPA bits == PA bits, compare against PA size.
+     */
+    if ( pa_range_info[system_cpuinfo.mm64.pa_range] < p2m_ipa_bits )
+        p2m_ipa_bits = pa_range_info[system_cpuinfo.mm64.pa_range];
+
+    /*
+     * The MSA and MSA_frac fields in the ID_AA64MMFR0_EL1 register identify the
+     * memory system configurations supported. In Armv8-R AArch64, the
+     * only permitted value for ID_AA64MMFR0_EL1.MSA is 0b1111.
+     */
+    if ( system_cpuinfo.mm64.msa != MM64_MSA_PMSA_SUPPORT )
+        goto fault;
+
+    /* Permitted values for ID_AA64MMFR0_EL1.MSA_frac are 0b0001 and 0b0010. */
+    if ( (system_cpuinfo.mm64.msa_frac != MM64_MSA_FRAC_PMSA_SUPPORT) &&
+         (system_cpuinfo.mm64.msa_frac != MM64_MSA_FRAC_VMSA_SUPPORT) )
+        goto fault;
+
+    /* Stage 1 EL1&0 translation regime uses PMSAv8 by default */
+    vtcr_el2 &= ~VTCR_MSA;
+
+    /*
+     * Clear VTCR_EL2.NSA bit to configure non-secure stage 2 translation output
+     * address space to access the Secure PA space as Armv8-R only implements
+     * secure state.
+     */
+    vtcr_el2 &= ~VTCR_NSA;
+
+    /*
+     * cpuinfo sanitization makes sure we support 16-bits VMID only if all cores
+     * are supporting it.
+     *
+     * Set the VS bit only if 16 bit VMID is supported.
+     */
+    if ( system_cpuinfo.mm64.vmid_bits == MM64_VMID_16_BITS_SUPPORT )
+    {
+        vtcr_el2 |= VTCR_VS;
+        max_vmid = MAX_VMID_16_BIT;
+    }
+    else
+        vtcr_el2 &= ~VTCR_VS;
+
+    WRITE_SYSREG(vtcr_el2, VTCR_EL2);
+
+    p2m_vmid_allocator_init();
+
+    /*
+     * VSTCR_EL2.SA defines secure stage 2 translation output address space.
+     * To make sure that all stage 2 translations for the Secure PA space access
+     * the Secure PA space, we keep SA bit as 0.
+     *
+     * VSTCR_EL2.SC is NS check enable bit. To make sure that Stage 2 NS
+     * configuration is checked against stage 1 NS configuration in EL1&0
+     * translation regime for the given address, and generates a fault if they
+     * are different, we set SC bit 1.
+     */
+    vstcr_el2 &= ~VSTCR_EL2_SA;
+    vstcr_el2 |= VSTCR_EL2_SC;
+    WRITE_SYSREG(vstcr_el2, VSTCR_EL2);
+
+    printk("P2M: %u-bit IPA with %u-bit PA and %u-bit VMID\n",
+           p2m_ipa_bits,
+           pa_range_info[system_cpuinfo.mm64.pa_range],
+           (MAX_VMID == MAX_VMID_16_BIT) ? 16 : 8);
+
+    return;
+
+ fault:
+    panic("Hardware with no PMSAv8-64 support in any translation regime\n");
 }
 
 /*
diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
index 19d409d3eb5a..f3c11d871e86 100644
--- a/xen/arch/arm/include/asm/arm64/sysregs.h
+++ b/xen/arch/arm/include/asm/arm64/sysregs.h
@@ -462,6 +462,10 @@
 #define ZCR_ELx_LEN_SIZE             9
 #define ZCR_ELx_LEN_MASK             0x1ff
 
+/* Virtualization Secure Translation Control Register */
+#define VSTCR_EL2_SA                 (_AC(0x1,U) << 30)
+#define VSTCR_EL2_SC                 (_AC(0x1,U) << 20)
+
 #ifdef CONFIG_MPU
 /*
  * The Armv8-R AArch64 architecture always executes code in Secure
diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
index 13353c8e1ad1..bf902a397068 100644
--- a/xen/arch/arm/include/asm/cpufeature.h
+++ b/xen/arch/arm/include/asm/cpufeature.h
@@ -248,6 +248,12 @@ struct cpuinfo_arm {
             unsigned long tgranule_16K:4;
             unsigned long tgranule_64K:4;
             unsigned long tgranule_4K:4;
+#ifdef CONFIG_MPU
+            unsigned long __res0:16;
+            unsigned long msa:4;
+            unsigned long msa_frac:4;
+            unsigned long __res1:8;
+#else
             unsigned long tgranule_16k_2:4;
             unsigned long tgranule_64k_2:4;
             unsigned long tgranule_4k_2:4;
@@ -255,6 +261,7 @@ struct cpuinfo_arm {
             unsigned long __res0:8;
             unsigned long fgt:4;
             unsigned long ecv:4;
+#endif
 
             /* MMFR1 */
             unsigned long hafdbs:4;
@@ -267,13 +274,13 @@ struct cpuinfo_arm {
             unsigned long xnx:4;
             unsigned long twed:4;
             unsigned long ets:4;
-            unsigned long __res1:4;
+            unsigned long __res2:4;
             unsigned long afp:4;
-            unsigned long __res2:12;
+            unsigned long __res3:12;
             unsigned long ecbhb:4;
 
             /* MMFR2 */
-            unsigned long __res3:64;
+            unsigned long __res4:64;
         };
     } mm64;
 
diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 1a48c9ff3b39..895d7cd50244 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -403,6 +403,9 @@
 
 #define VTCR_RES1       (_AC(1,UL)<<31)
 
+#define VTCR_MSA        (_AC(0x1,UL)<<31)
+#define VTCR_NSA        (_AC(0x1,UL)<<30)
+
 /* HCPTR Hyp. Coprocessor Trap Register */
 #define HCPTR_TAM       ((_AC(1,U)<<30))
 #define HCPTR_TTA       ((_AC(1,U)<<20))        /* Trap trace registers */
@@ -464,6 +467,11 @@
 #define MM64_VMID_16_BITS_SUPPORT   0x2
 #endif
 
+#define MM64_MSA_PMSA_SUPPORT       0xf
+#define MM64_MSA_FRAC_NONE_SUPPORT  0x0
+#define MM64_MSA_FRAC_PMSA_SUPPORT  0x1
+#define MM64_MSA_FRAC_VMSA_SUPPORT  0x2
+
 #ifndef __ASSEMBLER__
 
 extern register_t __cpu_logical_map[];
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:34:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:34:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303689.1576957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMHK-0001A3-Aj; Fri, 08 May 2026 14:34:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303689.1576957; Fri, 08 May 2026 14:34:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMHK-00019u-7W; Fri, 08 May 2026 14:34:10 +0000
Received: by outflank-mailman (input) for mailman id 1303689;
 Fri, 08 May 2026 14:34:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <luca.fancellu@arm.com>) id 1wLMHI-0000yn-FV
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:34:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMHH-007WJL-SE
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:34:07 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 69fdf446-2eae-0a2a0a5409dd-0a2a4509829e-42
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:34:07 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 69fdf45e-2497-0a2a45090019-d98c6eaca344-1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:34:07 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 3DE3D1D34;
 Fri,  8 May 2026 07:34:01 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C97093F763;
 Fri,  8 May 2026 07:34:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778250846; bh=uOx6o3Ma3CDEZYD8HLSisMuej2xnQvxCr5Ghf1MGQ4g=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=YfNVCBFMoqLbWa8T0NU2W5xPSWLGjnjVlwGeUxqZ8CEdh5pBw3Czhs9o15L1x92Kp
	 N5LvsV2jEKfW53O758lizcPXFPqV2GOhNIgAg+Mvt+Xdlk2op94Z5dFc/hkEVzquF3
	 +xGXytZaFPXOmyln83DBdYQkyTChbFbi+yRfEA/g=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Harry Ramsey <harry.ramsey@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree property for domains
Date: Fri,  8 May 2026 15:33:52 +0100
Message-Id: <20260508143353.3512004-3-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260508143353.3512004-1-luca.fancellu@arm.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778250847-8AF8CA53-284254DA/0/0
X-purgate-type: clean
X-purgate-size: 11918

From: Harry Ramsey <harry.ramsey@arm.com>

Add a new device tree property `v8r_el1_msa` to select the MSA (memory
system architecture) at EL1 for Armv8-R architecture: MPU or MMU, the
former is the default if the property is not passed.

Implement the dom0less path to parse the new device tree property, add
a new domctl hypercall input parameter `v8r_el1_msa` for arm and
add the sanitisation in arch_sanitise_domain_config(), the parameter
is intended to be used on CONFIG_MPU systems and returns an error if
selected for MMU.

Given the breaking change, bump the XEN_DOMCTL_INTERFACE_VERSION.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
v5:
 - follow the way domu_dt_sci_parse and ARM_SCI is doing, but
   return error if property is present in MMU systems.
 - Align the commit message on the new changes
 - fix documentation
 - fix multiline comment
 - drop the explicit padding from struct xen_arch_domainconfig
v4:
- Rework the patch to have the v8r_el1_msa input parameter more
  enclosed in the Armv8-A (mmu)/Armv8-R (mpu) space.
v3:
- Improve commit message and device tree property description
- Remove macro protection
- Remove unused function is_mpu_domain
- Code formatting
---
 docs/misc/arm/device-tree/booting.txt   | 14 +++++
 xen/arch/arm/dom0less-build.c           | 74 +++++++++++++++++++++++++
 xen/arch/arm/domain.c                   | 11 ++++
 xen/arch/arm/include/asm/domain.h       |  4 ++
 xen/arch/arm/include/asm/domain_build.h | 21 +++++++
 xen/arch/arm/mpu/arm32/mm.c             | 17 ++++++
 xen/arch/arm/mpu/arm64/mm.c             | 18 ++++++
 xen/include/public/arch-arm.h           |  6 ++
 xen/include/public/domctl.h             |  4 +-
 9 files changed, 167 insertions(+), 2 deletions(-)

diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
index 977b4286082f..2389ae610963 100644
--- a/docs/misc/arm/device-tree/booting.txt
+++ b/docs/misc/arm/device-tree/booting.txt
@@ -322,6 +322,20 @@ with the following properties:
     Should be used together with scmi-smc-passthrough Xen command line
     option.
 
+- v8r_el1_msa
+
+    A string property specifying whether, on Armv8-R systems at EL1, a domain
+    should use PMSAv8 (MPU) or VMSAv8 (MMU).
+
+    - "mmu"
+    Enables VMSAv8 at EL1. This requires hardware support and is only
+    optionally available on AArch64. Not supported on AArch32.
+
+    - "mpu"
+    Enables PMSAv8 at EL1. This is the default behaviour when the property is
+    not passed. This configuration requires static allocation (xen,static-mem)
+    and direct mapping (direct-map).
+
 Under the "xen,domain" compatible node, one or more sub-nodes are present
 for the DomU kernel and ramdisk.
 
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 6f73c65e5151..2a0671bd0e8e 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -295,6 +295,77 @@ static int __init domu_dt_sci_parse(struct dt_device_node *node,
     return 0;
 }
 
+static int __init
+domu_dt_v8r_el1_msa_parse(struct dt_device_node *node,
+                          struct xen_domctl_createdomain *d_cfg,
+                          unsigned int flags)
+{
+    bool property_present = dt_property_read_bool(node, "v8r_el1_msa");
+
+    if ( !property_present )
+        d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE;
+    else
+    {
+        const char *v8r_el1_msa;
+        int ret = dt_property_read_string(node, "v8r_el1_msa", &v8r_el1_msa);
+
+        if ( ret )
+            return ret;
+
+        if ( !strcmp(v8r_el1_msa, "mpu") )
+            d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA;
+        else if ( !strcmp(v8r_el1_msa, "mmu") )
+            d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA;
+        else
+        {
+            printk(XENLOG_ERR
+                   "v8r_el1_msa value (%s) not valid for domain %s\n",
+                   v8r_el1_msa, dt_node_name(node));
+            return -EINVAL;
+        }
+    }
+
+    if ( !IS_ENABLED(CONFIG_MPU) )
+    {
+        if ( !property_present )
+            return 0;
+
+        printk(XENLOG_ERR
+               "Not supported 'v8r_el1_msa' DT property found for domain %s\n",
+               dt_node_name(node));
+        return -EINVAL;
+    }
+
+    switch ( d_cfg->arch.v8r_el1_msa )
+    {
+    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE:
+        fallthrough;
+    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA:
+        if ( !(flags & CDF_staticmem) || !(flags & CDF_directmap) )
+        {
+            printk(XENLOG_ERR
+                   "PMSA is not valid for domain (%s) without static allocation and direct map (v8r_el1_msa)\n",
+                   dt_node_name(node));
+            return -EINVAL;
+        }
+        break;
+
+    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA:
+        if ( !has_v8r_vmsa_support() )
+        {
+            printk(XENLOG_ERR
+                   "Platform doesn't support VMSA at EL1 (v8r_el1_msa)\n");
+            return -EINVAL;
+        }
+        break;
+
+    default:
+        return -EINVAL;
+    }
+
+    return 0;
+}
+
 int __init arch_parse_dom0less_node(struct dt_device_node *node,
                                     struct boot_domain *bd)
 {
@@ -308,6 +379,9 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
     if ( domu_dt_sci_parse(node, d_cfg) )
         panic("Error getting SCI configuration\n");
 
+    if ( domu_dt_v8r_el1_msa_parse(node, d_cfg, flags) )
+        panic("Error getting v8r_el1_msa configuration\n");
+
     if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
     {
         int vpl011_virq = GUEST_VPL011_SPI;
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 26380a807cad..ac7d1abd9c7c 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -18,6 +18,7 @@
 #include <asm/cpuerrata.h>
 #include <asm/cpufeature.h>
 #include <asm/current.h>
+#include <asm/domain_build.h>
 #include <asm/event.h>
 #include <asm/gic.h>
 #include <asm/guest_atomics.h>
@@ -630,6 +631,12 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
         return -EINVAL;
     }
 
+    if ( !v8r_el1_msa_domain_sanitise_config(config) )
+    {
+        dprintk(XENLOG_INFO, "Unsupported v8r_el1_msa value\n");
+        return -EINVAL;
+    }
+
     return sci_domain_sanitise_config(config);
 }
 
@@ -722,6 +729,10 @@ int arch_domain_create(struct domain *d,
     d->arch.sve_vl = config->arch.sve_vl;
 #endif
 
+#ifdef CONFIG_MPU
+    d->arch.v8r_el1_msa = config->arch.v8r_el1_msa;
+#endif
+
     if ( (rc = sci_domain_init(d, config)) != 0 )
         goto fail;
 
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index b24f02d269be..ac7300e41fcd 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -112,6 +112,10 @@ struct arch_domain
 #endif
 
     struct resume_info resume_ctx;
+
+#ifdef CONFIG_MPU
+    uint8_t v8r_el1_msa;
+#endif
 }  __cacheline_aligned;
 
 struct arch_vcpu
diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
index 6674dac5e2f8..50ddc0511e7e 100644
--- a/xen/arch/arm/include/asm/domain_build.h
+++ b/xen/arch/arm/include/asm/domain_build.h
@@ -19,6 +19,27 @@ int prepare_acpi(struct domain *d, struct kernel_info *kinfo);
 
 int add_ext_regions(unsigned long s_gfn, unsigned long e_gfn, void *data);
 
+#ifdef CONFIG_MPU
+/* Utility function to determine if an Armv8-R processor supports VMSA. */
+bool has_v8r_vmsa_support(void);
+bool v8r_el1_msa_domain_sanitise_config(
+    const struct xen_domctl_createdomain *config);
+#else
+static inline bool has_v8r_vmsa_support(void)
+{
+    return false;
+}
+
+static inline bool v8r_el1_msa_domain_sanitise_config(
+    const struct xen_domctl_createdomain *config)
+{
+    if ( config->arch.v8r_el1_msa != XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE )
+        return false;
+
+    return true;
+}
+#endif /* CONFIG_MPU */
+
 #endif
 
 /*
diff --git a/xen/arch/arm/mpu/arm32/mm.c b/xen/arch/arm/mpu/arm32/mm.c
index a4673c351141..a759ebdfc124 100644
--- a/xen/arch/arm/mpu/arm32/mm.c
+++ b/xen/arch/arm/mpu/arm32/mm.c
@@ -5,6 +5,8 @@
 #include <asm/mpu.h>
 #include <asm/sysregs.h>
 #include <asm/system.h>
+#include <public/arch-arm.h>
+#include <public/domctl.h>
 
 #define GENERATE_WRITE_PR_REG_CASE(num, pr)               \
     case num:                                             \
@@ -38,6 +40,21 @@
         break;                                            \
     }
 
+bool has_v8r_vmsa_support(void)
+{
+    return false;
+}
+
+bool v8r_el1_msa_domain_sanitise_config(
+    const struct xen_domctl_createdomain *config)
+{
+    if ( config->arch.v8r_el1_msa != XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE &&
+         config->arch.v8r_el1_msa != XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA )
+        return false;
+
+    return true;
+}
+
 /*
  * Armv8-R supports direct access and indirect access to the MPU regions through
  * registers:
diff --git a/xen/arch/arm/mpu/arm64/mm.c b/xen/arch/arm/mpu/arm64/mm.c
index ed643cad4073..441d209601c1 100644
--- a/xen/arch/arm/mpu/arm64/mm.c
+++ b/xen/arch/arm/mpu/arm64/mm.c
@@ -5,6 +5,8 @@
 #include <asm/mpu.h>
 #include <asm/sysregs.h>
 #include <asm/system.h>
+#include <public/arch-arm.h>
+#include <public/domctl.h>
 
 /*
  * The following are needed for the cases: GENERATE_WRITE_PR_REG_CASE
@@ -32,6 +34,22 @@
         break;                                                  \
     }
 
+bool has_v8r_vmsa_support(void)
+{
+    return system_cpuinfo.mm64.msa_frac == MM64_MSA_FRAC_VMSA_SUPPORT;
+}
+
+bool v8r_el1_msa_domain_sanitise_config(
+    const struct xen_domctl_createdomain *config)
+{
+    if ( config->arch.v8r_el1_msa != XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE &&
+         config->arch.v8r_el1_msa != XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA &&
+         config->arch.v8r_el1_msa != XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA )
+        return false;
+
+    return true;
+}
+
 /*
  * Armv8-R supports direct access and indirect access to the MPU regions through
  * registers:
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index cd563cf70684..6d222f15f6d5 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -330,6 +330,10 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
 #define XEN_DOMCTL_CONFIG_ARM_SCI_NONE      0
 #define XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC  1
 
+#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE    0
+#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA    1
+#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA    2
+
 struct xen_arch_domainconfig {
     /* IN/OUT */
     uint8_t gic_version;
@@ -355,6 +359,8 @@ struct xen_arch_domainconfig {
     uint32_t clock_frequency;
     /* IN */
     uint8_t arm_sci_type;
+    /* IN */
+    uint8_t v8r_el1_msa;
 };
 #endif /* __XEN__ || __XEN_TOOLS__ */
 
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 8f6708c0a7cd..23124547f347 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -30,9 +30,9 @@
  * fields) don't require a change of the version.
  * Stable ops are NOT covered by XEN_DOMCTL_INTERFACE_VERSION!
  *
- * Last version bump: Xen 4.19
+ * Last version bump: Xen 4.22
  */
-#define XEN_DOMCTL_INTERFACE_VERSION 0x00000017
+#define XEN_DOMCTL_INTERFACE_VERSION 0x00000018
 
 /*
  * NB. xen_domctl.domain is an IN/OUT parameter for this operation.
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:34:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:34:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303690.1576962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMHK-0001GQ-NO; Fri, 08 May 2026 14:34:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303690.1576962; Fri, 08 May 2026 14:34:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMHK-0001FH-Jp; Fri, 08 May 2026 14:34:10 +0000
Received: by outflank-mailman (input) for mailman id 1303690;
 Fri, 08 May 2026 14:34:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <luca.fancellu@arm.com>) id 1wLMHJ-00019k-VW
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:34:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMHJ-007WMz-CL
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:34:09 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 69fdf45c-2eae-0a2a0a5409dd-0a2a450b9794-20
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:34:09 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 69fdf460-212f-0a2a450b0019-d98c6eaceb2e-1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:34:09 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id AA2C93591;
 Fri,  8 May 2026 07:34:02 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DC26B3F763;
 Fri,  8 May 2026 07:34:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778250848; bh=+4j7r30qXJ3aM1HfODFFXXITIfg6L1ltdhkKBsZq2Gw=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=ud4MLurcDiQ/Ou5vERRTxiUlb0uetXgD4hULtOJqqP7m8pOB7jFwk9WbNn/d08t//
	 PNKW7qSvQ/ZiDNaWmR0o/GT2TKWidfh0k6EqFBFgdrGFYx1BhVugWaNRNxTGyvvC/2
	 S+2MiC1kEB/TzU+KUGFhUPxxS8xp3bB5xnKJJjWk=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Harry Ramsey <harry.ramsey@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v5 3/3] arm/mpu: Implement p2m tables
Date: Fri,  8 May 2026 15:33:53 +0100
Message-Id: <20260508143353.3512004-4-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260508143353.3512004-1-luca.fancellu@arm.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1778250849-19B68F3B-C370D5E2/0/0
X-purgate-type: clean
X-purgate-size: 5702

From: Harry Ramsey <harry.ramsey@arm.com>

Implement `p2m_alloc_table`, `p2m_init` and `p2m_final_teardown` for MPU
systems.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
v5:
 - removed comment for P2M_ROOT_PAGES/P2M_ROOT_ORDER
 - used MAX_MPU_REGION_NR instead of opencoding 255
 - use 'table' in p2m_alloc_table to clear pages
 - remove p2m_free_vmid() from error path in p2m_init()
   which is already handled outside
v4:
 - no changes
v3:
- Check for alloc_xenheap_pages allocation
- Clear additional page allocated for ARM64
- Add check for INVALID_VCPU_ID
- Remove unnecessary function generate_vsctlr
- Code formatting fixes
---
 xen/arch/arm/include/asm/arm32/mpu.h |  2 +
 xen/arch/arm/include/asm/arm64/mpu.h |  2 +
 xen/arch/arm/include/asm/mpu/p2m.h   |  7 +++
 xen/arch/arm/include/asm/p2m.h       |  5 ++
 xen/arch/arm/mpu/p2m.c               | 72 ++++++++++++++++++++++++++--
 5 files changed, 85 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
index 2cf0f8cbacae..d565230f84ee 100644
--- a/xen/arch/arm/include/asm/arm32/mpu.h
+++ b/xen/arch/arm/include/asm/arm32/mpu.h
@@ -11,6 +11,8 @@
  */
 #define MPU_REGION_RES0       0x0
 
+#define VSCTLR_VMID_SHIFT     16
+
 /* Hypervisor Protection Region Base Address Register */
 typedef union {
     struct {
diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
index 4f694190a8a3..8b86a03fee44 100644
--- a/xen/arch/arm/include/asm/arm64/mpu.h
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -7,6 +7,8 @@
 
 #define MPU_REGION_RES0        (0xFFFFULL << 48)
 
+#define VSCTLR_VMID_SHIFT      48
+
 /* Protection Region Base Address Register */
 typedef union {
     struct __packed {
diff --git a/xen/arch/arm/include/asm/mpu/p2m.h b/xen/arch/arm/include/asm/mpu/p2m.h
index e46d9e757a1d..0d4149c71987 100644
--- a/xen/arch/arm/include/asm/mpu/p2m.h
+++ b/xen/arch/arm/include/asm/mpu/p2m.h
@@ -3,8 +3,15 @@
 #ifndef __ARM_MPU_P2M_H__
 #define __ARM_MPU_P2M_H__
 
+#include <xen/bitops.h>
+#include <xen/macros.h>
+#include <xen/page-size.h>
+
 struct p2m_domain;
 
+#define P2M_ROOT_PAGES DIV_ROUND_UP(MAX_MPU_REGION_NR * sizeof(pr_t), PAGE_SIZE)
+#define P2M_ROOT_ORDER get_count_order(P2M_ROOT_PAGES)
+
 static inline void p2m_clear_root_pages(struct p2m_domain *p2m) {}
 
 static inline void p2m_tlb_flush_sync(struct p2m_domain *p2m) {}
diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
index 010ce8c9ebbd..ed1b6dd40f40 100644
--- a/xen/arch/arm/include/asm/p2m.h
+++ b/xen/arch/arm/include/asm/p2m.h
@@ -48,8 +48,13 @@ struct p2m_domain {
     /* Current VMID in use */
     uint16_t vmid;
 
+#ifdef CONFIG_MMU
     /* Current Translation Table Base Register for the p2m */
     uint64_t vttbr;
+#else
+    /* Current Virtualization System Control Register for the p2m */
+    register_t vsctlr;
+#endif
 
     /* Highest guest frame that's ever been mapped in the p2m */
     gfn_t max_mapped_gfn;
diff --git a/xen/arch/arm/mpu/p2m.c b/xen/arch/arm/mpu/p2m.c
index f7fb58ab6aa8..8d5c65b1003f 100644
--- a/xen/arch/arm/mpu/p2m.c
+++ b/xen/arch/arm/mpu/p2m.c
@@ -28,10 +28,63 @@ void p2m_dump_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
+static int p2m_alloc_table(struct domain *d)
+{
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+    char *table = alloc_xenheap_pages(P2M_ROOT_ORDER, 0);
+    unsigned int i;
+
+    if ( !table )
+    {
+        printk(XENLOG_G_ERR "%pd: p2m: unable to allocate P2M MPU mapping table\n",
+               d);
+        return -ENOMEM;
+    }
+
+    p2m->root = virt_to_page(table);
+
+    for ( i = 0; i < P2M_ROOT_PAGES; i++ )
+        clear_page(table + (i * PAGE_SIZE));
+
+    return 0;
+}
+
 int p2m_init(struct domain *d)
 {
-    BUG_ON("unimplemented");
-    return -EINVAL;
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+    int rc = 0;
+    unsigned int cpu;
+
+    rwlock_init(&p2m->lock);
+
+    p2m->vmid = INVALID_VMID;
+    p2m->max_mapped_gfn = _gfn(0);
+    p2m->lowest_mapped_gfn = _gfn(ULONG_MAX);
+
+    p2m->default_access = p2m_access_rwx;
+    /* mem_access is NOT supported in MPU system. */
+    p2m->mem_access_enabled = false;
+
+    /* Ensure that the type chosen is large enough for MAX_VIRT_CPUS. */
+    BUILD_BUG_ON((1 << (sizeof(p2m->last_vcpu_ran[0]) * 8)) < MAX_VIRT_CPUS);
+    BUILD_BUG_ON((1 << (sizeof(p2m->last_vcpu_ran[0]) * 8)) < INVALID_VCPU_ID);
+
+    for_each_possible_cpu(cpu)
+        p2m->last_vcpu_ran[cpu] = INVALID_VCPU_ID;
+
+    /*
+     * "Trivial" initialization is now complete. Set the backpointer so that
+     * p2m_teardown() and related functions know to do something.
+     */
+    p2m->domain = d;
+
+    rc = p2m_alloc_vmid(d);
+    if ( rc )
+        return rc;
+
+    p2m->vsctlr = ((register_t)p2m->vmid << VSCTLR_VMID_SHIFT);
+
+    return p2m_alloc_table(d);
 }
 
 void p2m_save_state(struct vcpu *p)
@@ -46,7 +99,20 @@ void p2m_restore_state(struct vcpu *n)
 
 void p2m_final_teardown(struct domain *d)
 {
-    BUG_ON("unimplemented");
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+
+    /* p2m not actually initialized */
+    if ( !p2m->domain )
+        return;
+
+    if ( p2m->root )
+        free_xenheap_pages(page_to_virt(p2m->root), P2M_ROOT_ORDER);
+
+    p2m->root = NULL;
+
+    p2m_free_vmid(d);
+
+    p2m->domain = NULL;
 }
 
 bool p2m_resolve_translation_fault(struct domain *d, gfn_t gfn)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:39:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:39:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303726.1576975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMMd-00033F-Bc; Fri, 08 May 2026 14:39:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303726.1576975; Fri, 08 May 2026 14:39:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMMd-000338-8N; Fri, 08 May 2026 14:39:39 +0000
Received: by outflank-mailman (input) for mailman id 1303726;
 Fri, 08 May 2026 14:39:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wLMMc-000332-1q
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:39:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMMb-003Ice-15
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:39:37 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69fdf59b-e002-0a2a0a5209dd-0a2a450acde4-20
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:39:36 +0200
Received: from [195.135.223.131] (helo=smtp-out2.suse.de)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69fdf5a8-56b3-0a2a450a0019-c387df83eda0-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:39:36 +0200
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 6A1DC5C115;
 Fri,  8 May 2026 14:39:36 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 215A5593A7;
 Fri,  8 May 2026 14:39:36 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id GKQGB6j1/WlcVgAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 08 May 2026 14:39:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1778251176; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=qcH0oyDgGShFY8obpKeBe1gSWCv27CYVU+nGbBQx6uk=;
	b=eIuw8rpP3+bLN054/2BzceWEYq44u78XjU+o/Hk63wuCt6dDM53cF6B9HfXABaLBH2U1xQ
	p6ltDFfK8+KEsrmabJzOTwdyfB5/COMiL9/p378+C/sLW+lOaj3LjigyBTFzadJe0Vq06w
	0tPe7/qqbqbmOgDTAWLKAuhLF6d+zvE=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1778251176; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=qcH0oyDgGShFY8obpKeBe1gSWCv27CYVU+nGbBQx6uk=;
	b=eIuw8rpP3+bLN054/2BzceWEYq44u78XjU+o/Hk63wuCt6dDM53cF6B9HfXABaLBH2U1xQ
	p6ltDFfK8+KEsrmabJzOTwdyfB5/COMiL9/p378+C/sLW+lOaj3LjigyBTFzadJe0Vq06w
	0tPe7/qqbqbmOgDTAWLKAuhLF6d+zvE=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: kevin.brodsky@arm.com,
	marmarek@invisiblethingslab.com,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH] x86/xen: Tolerate nested XEN_LAZY_MMU entering/leaving
Date: Fri,  8 May 2026 16:39:33 +0200
Message-ID: <20260508143933.493013-1-jgross@suse.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	RCVD_COUNT_TWO(0.00)[2];
	RCPT_COUNT_TWELVE(0.00)[12];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	TO_DN_SOME(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo]
X-Spam-Flag: NO
X-Spam-Score: -2.80
X-purgate-ID: tlsNG-4011c0/1778251176-70F618B7-A88E1767/0/0
X-purgate-type: clean
X-purgate-size: 1487

With the support of nested lazy mmu sections it can happen that
arch_enter_lazy_mmu_mode() is being called twice without a call of
arch_leave_lazy_mmu_mode() in between, as the lazy_mmu_*() helpers
are not disabling preemption when checking for nested lazy mmu
sections.

This is a problem when running as a Xen PV guest, as
xen_enter_lazy_mmu() and xen_leave_lazy_mmu() don't tolerate this
case.

Fix that in xen_enter_lazy_mmu() and xen_leave_lazy_mmu() in order
not to hurt all other lazy mmu mode users.

Fixes: 291b3abed657 ("x86/xen: use lazy_mmu_state when context-switching")
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/mmu_pv.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index c80d0058efd1..3eee5f84f8a7 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -2145,7 +2145,10 @@ static void xen_set_fixmap(unsigned idx, phys_addr_t phys, pgprot_t prot)
 
 static void xen_enter_lazy_mmu(void)
 {
-	enter_lazy(XEN_LAZY_MMU);
+	preempt_disable();
+	if (xen_get_lazy_mode() != XEN_LAZY_MMU)
+		enter_lazy(XEN_LAZY_MMU);
+	preempt_enable();
 }
 
 static void xen_flush_lazy_mmu(void)
@@ -2182,7 +2185,8 @@ static void xen_leave_lazy_mmu(void)
 {
 	preempt_disable();
 	xen_mc_flush();
-	leave_lazy(XEN_LAZY_MMU);
+	if (xen_get_lazy_mode() != XEN_LAZY_NONE)
+		leave_lazy(XEN_LAZY_MMU);
 	preempt_enable();
 }
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:43:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:43:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303735.1576999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQZ-0004xI-HD; Fri, 08 May 2026 14:43:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303735.1576999; Fri, 08 May 2026 14:43:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQZ-0004vn-Ak; Fri, 08 May 2026 14:43:43 +0000
Received: by outflank-mailman (input) for mailman id 1303735;
 Fri, 08 May 2026 14:43:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQY-0004oR-Hu
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:43:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQW-00Epe9-Cr
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:43:41 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf689-5cb7-0a2a0a5109dd-0a2a4506c6fc-20
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:41 +0200
Received: from [209.85.218.50] (helo=mail-ej1-f50.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf69d-7371-0a2a45060019-d155da32a9cc-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:41 +0200
Received: by mail-ej1-f50.google.com with SMTP id
 a640c23a62f3a-ba3115fe0d5so575680866b.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:43:41 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251421; x=1778856221; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xxTnfnHWZBjnSzhjEou4ZV1OWnhheJt3wsjWOC72ais=;
        b=RhJm641UWtuGann51h4kJ3uT4z3jXh1UqWzcGqqTEKvBAXsCC3Lz1/KxELUTBXSpye
         qRRrwBzcCxDH2A6njzXfFAkERN4Yry9O2mikcP4qMYC0Ydc+w4EDiuIKx7+wdSYQqrX+
         fcX9TP50NmFYFkhYOmdHof92NLddIHwBzN0lMcvUtwC6RjiQ33PtZr3AggCCooUmHhEx
         iw6Ud0lh6b2zAvwuitaF3CMzpFeKvH5kC4DYu573jhooqf//Q6r2TOU3qe0zirayOOYQ
         5uMVQUAfxeY/WxMHqV13WhXWlD7y2yGz+XnllXJVa5/ITv1Q4tRWCfIXCiMH0aBh0vsG
         75Ag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251421; x=1778856221;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=xxTnfnHWZBjnSzhjEou4ZV1OWnhheJt3wsjWOC72ais=;
        b=Rf3pn25Hv84THK4UADrlBF0LgOgPcBnU8dIVceLl6xK5mGrG62wuoQfzxuYXLsclZR
         GEz6LQTuNcQ6i6CMCG556Hln5pjJNS+GnzwEUxIK3tM4Mr7saAhPFUPkZvJZSauCbxvp
         yv8uk7jeA7FD5o0sLMRlRyAoQjMIPhnJA3IaAw00oXdPvxZCaRS2S9AoDxp8bbv+q5DK
         7MP8CYy7AR0dsmd29CXMaU7uNK6IdrFCuhSG8piTrFI70A65332CVm/1EXmj2n+CwOTZ
         IV9tzi+DViBvE89y7Q7hPYdtgmq26+N+mvu0xToN29q9zq8V4I916BD5fQVdRsSGb7Xn
         puuw==
X-Gm-Message-State: AOJu0Yy2zdZF1XCLD0C0kwoamnxCQeA3wTwVkxdJo8ndtAt7DjmoQofW
	yP2mJ4lEmhnrhuSGCQ/8oC0Cte9AUug8NaKdVSxbO8X3kDB3KSjeBJiHYkwLQg==
X-Gm-Gg: AeBDietQOkL+Rjz4ATyNuD5dtJGD8YQ12BbEd7uUIH4+SiJKUoPYqTsS4rcmqAXU30m
	WOmj8AmcevbmEOIXxGV2dY62vyAFsOowznvpUn3RTkh7f/6sNoadjPJb+w3eG7LruDmjz/Hzc1e
	nTDLgUub2YG4ZEX8WRpJrn//6GU8MZfYdRXhHBjDOlsv64tMW+Z+OzvhpcPvCJk+vJRURyGwTL+
	GMD/+OJ/JYBBCg+YDY1gobjYllk8QrOyhJ+AAiqSzKSccxoSdzdTDhSa65m4q9DozteHx3/R+cK
	LQtncBbd5e9YHb/Ejziwm13dGb/NFxRnjuSBoD/zlkEOwJN+fkt5y8Tdfful52LFNX0bXnxC4B3
	dOrm4NKHncf2SSk+yvrIToU6vGFx8+eBOlA5T2Er7Qhyk1+wE6xiXpUJcItzcwH/XiSGgfwJ7zz
	70KJcUc9ac34318sj575L9aTDSiiSGJCUqAJomQyosHV0rqPz0EJvQWe8NyFU3u0H9ig==
X-Received: by 2002:a17:906:4792:b0:bc6:bb4b:1726 with SMTP id a640c23a62f3a-bc85d6b8d73mr452039566b.22.1778251421005;
        Fri, 08 May 2026 07:43:41 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 02/26] xen/riscv: Implement ARCH_PAGING_MEMPOOL
Date: Fri,  8 May 2026 16:43:04 +0200
Message-ID: <97f20cc49563fdf01775a649e562e302bd0fa886.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1778251421-8576FD75-37C5910D/10/73395122804
X-purgate-type: spam
X-purgate-size: 2399

The p2m_freelist is used to allocate pages for the P2M. To initialize
this list, domain_p2m_set_allocation() may be called from construct_domU()
in the common Dom0less code, so RISC-V provides an implementation and
enables CONFIG_ARCH_PAGING_MEMPOOL unconditionally.

Additionally, implement arch_{set,get}_paging_mempool_size(). They are
not directly used yet, but are required to support the
XEN_DOMCTL_{get,set}_paging_mempool_size hypercalls.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Turn on CONFIG_ARCH_PAGING_MEMPOOL=y unconditionally and drop all ifdef-s
   related to this config.
 - Optimize check inside arch_set_paging_mempool_size which verify size
   argument.
 - Use pfn_to_paddr() inside arch_get_paging_mempool_size() instead of open
   coding the stuff.
 - Drop ASSERT() from arch_set_paging_mempool_size() as it is impossible to
   have here preempted = true and rc != -ERESTART.
---
---
 xen/arch/riscv/Kconfig |  1 +
 xen/arch/riscv/p2m.c   | 24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 41426c205292..48520588fe40 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -1,5 +1,6 @@
 config RISCV
 	def_bool y
+	select ARCH_PAGING_MEMPOOL
 	select DOMAIN_BUILD_HELPERS
 	select FUNCTION_ALIGNMENT_16B
 	select GENERIC_BUG_FRAME
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 41d6d3d5e699..bed997bd9d5a 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -1606,3 +1606,27 @@ struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
 
     return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
 }
+
+int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
+{
+    unsigned long pages = PFN_DOWN(size);
+    int rc;
+
+    /* Non page-sized request or 32-bit overflow? */
+    if ( pfn_to_paddr(pages) != size )
+        return -EINVAL;
+
+    spin_lock(&d->arch.paging.lock);
+    rc = p2m_set_allocation(d, pages, true);
+    spin_unlock(&d->arch.paging.lock);
+
+    return rc;
+}
+
+/* Return the size of the pool, in bytes. */
+int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
+{
+    *size =  pfn_to_paddr(ACCESS_ONCE(d->arch.paging.total_pages));
+
+    return 0;
+}
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:43:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:43:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303733.1576984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQX-0004ez-Qk; Fri, 08 May 2026 14:43:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303733.1576984; Fri, 08 May 2026 14:43:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQX-0004es-NQ; Fri, 08 May 2026 14:43:41 +0000
Received: by outflank-mailman (input) for mailman id 1303733;
 Fri, 08 May 2026 14:43:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQV-0004ea-OY
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:43:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQV-007XVC-5E
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:43:39 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf689-2eae-0a2a0a5409dd-0a2a45028638-32
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:39 +0200
Received: from [209.85.208.46] (helo=mail-ed1-f46.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf69b-af86-0a2a45020019-d155d02ea9a7-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:39 +0200
Received: by mail-ed1-f46.google.com with SMTP id
 4fb4d7f45d1cf-67b32c695efso5000726a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:43:39 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251418; x=1778856218; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=oGLhFz1jSlTPVwto8PclGCFgYTA2rPlMCLEFtYZO5z8=;
        b=byPzCORoI5X1w7BoHYbvIvT+P/vyKGEgzZbo+Vq2Lu65d6+a46LXnwLOFCaYwtr4o+
         wT2WcNYb+ICcXstujjmPGwhou8WqDdRM/D5tlvTa5LmSqyJxQxfvECEYHDZfON8XT5e/
         HgvozMWNZEIdnGNbkqdg2iue38MHp9K3DsXDVSa4u+C7xWpwhIeO3KyZMS9RdxWnQYvC
         PASnJPqWAVSgoL44cmVQFHW5S0N/ysCPDoD2kNgmg3u6ceDxMYCrYSV0zqD359u3BuSS
         qwDmiIvQRFYa2i7BlBs94Wgd+aKbU2Jb98PW4LJ6v4GDkZzeioKFI4qake1F+lEuu64n
         QHkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251418; x=1778856218;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oGLhFz1jSlTPVwto8PclGCFgYTA2rPlMCLEFtYZO5z8=;
        b=LrWJuchkHmJnn2CzX6VsJOPB/SqRNMw+aGTFqYt/9pOEMp81hN+6hv4bUc46BQgCXC
         NJ2dijDw5b4HxqLSV2RtaycqokiGwVIl5Lprjjsmv1PsN0oor0Ybo2eLQ6teSZ5khult
         xP+r6j5E6xH8Oxjn4d4+7UzVNEEzCZrxrx5yB5Y/Tvo32H1ezgVuINV/AAe0WHgj2tBN
         IS/vnw+D6i4U4KMVQ6UZldKDPKM969uEf2ZnNchsUzwXeKB2hd/YsfPYLAXUvqtK+Z6y
         gwMopwwZTrhNsHcCLXFOlFZI/402J9g7FlvVGEsZTCAWNzokzkwi6lNqJH+J9z7zvoIf
         pqjQ==
X-Gm-Message-State: AOJu0YzkR0YRDmQmhLoUtA7JsAhH79UAyKrhEFgUMHyZBDHivBJN9Mfe
	QKoc6CPV5izii1LvmBz3EXpHB9kjqg2zc93/nhVQs8r6jih66jjhUEAp6tTMlg==
X-Gm-Gg: AeBDieuj14S7FgAGp10XH0dtDdpvrq1eLlLRr+o38H3H/uVrqOOTvYF08xr2Il0bmpd
	bddTuAUzJqU34OUjVnHAQb7P19a9sDaw2X/5/kVlNfs/QkEtaDulKkwXA1DcyG71d/MCI3IjSVA
	GsTSoLtDS3ZmS/5cu5RcmySYyvNOCFaYcp2CdCuTbDFXhLQwLuwl5VQOVfss9mUxgKHX/HTLjAy
	vviwGu5pFJM2rygtOUoN/nEquMtB+40qvv1N+Kg0KtvaNbyHwMrdde/774VMNdQl6yc8HD5peWQ
	RddKsk/QcDYJffC5D/R1zjRGS7h32lR3+1/oT1ScYFpfUJNhjUz0aDBZmzFyzmMt0LMpKd93Qeg
	awpDRUTbzx/WnkSZ8jLou4huGAEiJg6NAGx7JTaWNsO6KYCVpYkQ1dUdYsoZXiVMlobRbFI/FPw
	vsTtPM7l1YrS4VwT9lZyaKU5TPCIiIUsxg+Cp0t31KpCRCVzHoDnlrTM9z1B69Lu978A==
X-Received: by 2002:a17:906:5185:10b0:bab:f568:38ea with SMTP id a640c23a62f3a-bc84ce740c1mr332498666b.7.1778251417953;
        Fri, 08 May 2026 07:43:37 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2 00/26] Introduce enablemenant of dom0less
Date: Fri,  8 May 2026 16:43:02 +0200
Message-ID: <cover.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778251419-A9573161-E5974251/10/73395122804
X-purgate-type: spam
X-purgate-size: 4857

This patch series reprensent a bunch of patches necessary to enable common part
of Dom0less.
The stuff necessary to start/launch domains will be introduced separately.

This patch series is based on [1], but a lot of patch could go even without
it.

[1] https://lore.kernel.org/xen-devel/cover.1778140240.git.oleksii.kurochko@gmail.com/T/#t

CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2510638764

---
Changes in v2:
 - Move patch "[PATCH v1 04/27] xen/riscv: rework G-stage mode handling" to
   patch series [1]
 - Address the comments from ML.
 - The following patches were folded into one:
   # xen/riscv: implement init_intc_phandle()
   # xen/riscv: call do_initcalls() in start_xen()
   # xen/riscv: setup system domains
 - The following patch were folded into one:
   # xen/riscv: add vaplic access check
   # xen/riscv: emulate guest writes to virtual APLIC MMIO
   # xen/riscv: emulate guest reads from virtual APLIC MMIO
 - Add new bug fix, not really necessary to this patch series:
   xen/riscv: manage IRQ_DISABLED flag in APLIC irq enable/disable callbacks
---

Oleksii Kurochko (26):
  xen: arm: update p2m_set_allocation() prototype
  xen/riscv: Implement ARCH_PAGING_MEMPOOL
  xen/riscv: Implement construct_domain()
  xen/riscv: implement prerequisites for domain_create()
  xen/riscv: introduce guest riscv,isa string
  xen/riscv: implement make_cpus_node()
  xen/riscv: implement make_timer_node()
  xen/riscv: implement make_arch_nodes()
  xen/riscv: introduce init interrupt controller operations
  xen/riscv: implement make_intc_domU_node()
  xen/riscv: introduce aia_init() and aia_usable()
  xen/riscv: add basic VGEIN management for AIA guests
  xen/riscv: introduce per-vCPU IMSIC state
  xen/riscv: add very early virtual APLIC (vAPLIC) initialization
    support
  xen/riscv: introduce (de)initialization helpers for vINTC
  xen/riscv: create APLIC DT node for guest domains
  xen/riscv: generate IMSIC DT node for guest domains
  xen: move declaration of map_device_irqs_to_domain() to common header
  xen/riscv: implement IRQ routing for device passthrough
  xen/riscv: add missing APLIC register offsets, masks to asm/aplic.h.
  xen/riscv: implement virtual APLIC MMIO emulation
  xen/riscv: implement init_intc_phandle()
  xen/riscv: initialize RCU, scheduler, and system domains in
    start_xen()
  xen/riscv: provide init_vuart()
  xen/riscv: add initial dom0less infrastructure support
  xen/riscv: manage IRQ_DISABLED flag in APLIC irq enable/disable
    callbacks

 automation/gitlab-ci/build.yaml           |   1 +
 xen/arch/arm/include/asm/p2m.h            |   1 -
 xen/arch/arm/include/asm/setup.h          |   3 -
 xen/arch/arm/mmu/p2m.c                    |  22 +-
 xen/arch/riscv/Kconfig                    |   3 +
 xen/arch/riscv/Makefile                   |   4 +
 xen/arch/riscv/aia.c                      | 167 +++++++++
 xen/arch/riscv/aplic.c                    |  49 ++-
 xen/arch/riscv/cpufeature.c               |  59 ++-
 xen/arch/riscv/device.c                   | 108 ++++++
 xen/arch/riscv/dom0less-build.c           |  39 ++
 xen/arch/riscv/domain-build.c             | 179 +++++++++
 xen/arch/riscv/domain.c                   |  44 ++-
 xen/arch/riscv/imsic.c                    | 167 +++++++++
 xen/arch/riscv/include/asm/aia.h          |  18 +
 xen/arch/riscv/include/asm/aplic.h        |  53 +++
 xen/arch/riscv/include/asm/cpufeature.h   |   5 +
 xen/arch/riscv/include/asm/domain.h       |   8 +
 xen/arch/riscv/include/asm/guest-layout.h |   7 +
 xen/arch/riscv/include/asm/imsic.h        |  26 ++
 xen/arch/riscv/include/asm/intc.h         |  58 ++-
 xen/arch/riscv/include/asm/irq.h          |   3 +
 xen/arch/riscv/include/asm/paging.h       |   2 +-
 xen/arch/riscv/include/asm/setup.h        |   8 +-
 xen/arch/riscv/include/asm/vaplic.h       |  37 ++
 xen/arch/riscv/intc.c                     | 103 ++++-
 xen/arch/riscv/irq.c                      | 178 ++++++++-
 xen/arch/riscv/p2m.c                      |  31 +-
 xen/arch/riscv/paging.c                   |   7 +-
 xen/arch/riscv/setup.c                    |  14 +
 xen/arch/riscv/stubs.c                    |  12 -
 xen/arch/riscv/vaplic.c                   | 436 ++++++++++++++++++++++
 xen/common/device-tree/dom0less-build.c   |   2 +-
 xen/include/xen/fdt-domain-build.h        |  13 +
 xen/include/xen/p2m-common.h              |   2 +
 35 files changed, 1807 insertions(+), 62 deletions(-)
 create mode 100644 xen/arch/riscv/aia.c
 create mode 100644 xen/arch/riscv/device.c
 create mode 100644 xen/arch/riscv/domain-build.c
 create mode 100644 xen/arch/riscv/include/asm/aia.h
 create mode 100644 xen/arch/riscv/include/asm/vaplic.h
 create mode 100644 xen/arch/riscv/vaplic.c

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:43:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:43:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303734.1576993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQZ-0004rz-1E; Fri, 08 May 2026 14:43:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303734.1576993; Fri, 08 May 2026 14:43:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQY-0004rs-Tq; Fri, 08 May 2026 14:43:42 +0000
Received: by outflank-mailman (input) for mailman id 1303734;
 Fri, 08 May 2026 14:43:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQX-0004eg-9J
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:43:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQV-00Epe9-4T
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:43:40 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf689-5cb7-0a2a0a5109dd-0a2a4506c6fc-18
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:40 +0200
Received: from [209.85.218.44] (helo=mail-ej1-f44.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf69c-7371-0a2a45060019-d155da2cd14e-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:40 +0200
Received: by mail-ej1-f44.google.com with SMTP id
 a640c23a62f3a-bc3582acc23so315797566b.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:43:40 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251420; x=1778856220; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3ZMmWO9/I/8K7VzRErw7HfQg64F77t5aimUcSK3Fxfo=;
        b=HZKLF3BNlv20nh4wH4h5ebWGekK9N6CDpnAgQwEjuVcblZO4ArcEo2iOEdxPjcNRVg
         R9gvRziEApB1ACoeU88ihhWZ3FTQU6e7+g2+IiL2SDeJrEgPXFmi1JNzskfSkW7D1sw4
         0IBUgIqQ8tI5xb4jGXK8J3ihtmUcm+tnaZ2VC5g4TG2Mg4EFXoU3AYDffYu6k45+q80B
         dnFYcIqun42aMS+sCSmyjooILqzyFvQTckLh0gc/jUwv8iCjS8eGd+koTx/M79i0gEmB
         GcAxW3/BzhzPIKsRmMu+93hVMz6fpJC/j7USAXRXSxD+RqsY3oybJpKOX9VKHsojvmz+
         v2og==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251420; x=1778856220;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=3ZMmWO9/I/8K7VzRErw7HfQg64F77t5aimUcSK3Fxfo=;
        b=pCyk3JUsu0oEhgJMXDDQ70CGjF8lqQqYfQulg0/ziDE11pyYT+mDZ3etdWtuoRy0zP
         3cOEYllIqgIV9t8J+3ZvP9MTi0TtFNqOpQNiOn/hpKtvGGlOp7iK7r+mWguJxsQRsRg7
         OXoyvRHD9rSSRYc3ao9EkIHSP34oX4LEIiPHj23Pg/ne7CbY0oPHzZSYX0Fp4ZfRjlIU
         99DUrz5MOHgwT6pyq+ksGA3CPs8/VvwPthN/zhjChC/1bHWeBDJYNIwaosYDeeIauFPz
         gbHQH7/IF8Osqs5YE5lm2HVfA7ziZM9pkQY0bnv2cE+WenVq6ehVbckoTCB3bzmH7/Im
         raMg==
X-Gm-Message-State: AOJu0YyAyPBrVNf/PHKdiQykfqDLLg0eH8GGskGdxk0oNwvw/eqV2LBO
	VWRw+0vIOlgI7ixPpWGV6kpa5qeppBbaSyqGDz4vwVIRBPRYkYEefvD7ovZm2w==
X-Gm-Gg: AeBDievOS0+sPHqhOheukB8+FnfG9s3gXNhTBaA1VGjpe3jazAUGEtCTLIVpird8I//
	0kxfeuKzI7xA6iWiyFQKzCTVNUXjg9XGaxGR3pBQQc+ldGSTjn8zecz7127x9RUvIfmOCT2YtCG
	K0zPO97+SDhdsMnCaV7nrDHcvMB8sZVueTcZTnLoAGgmioU6i/m4eYYwN7+Zb/Wn2/kGww/B8NJ
	C0qg2jQvkUantVsU62gTqHGDL1VvTCcDar19FlwB6zUmW9Zh2axxz2SUIEKV5DRYNeo9O/EmH/c
	gTu8K5M+W3FiNsbW7cvDMTF2DvN9cP52bpxvENadoUOZ7aEqUzHkQx90+OSjG9V4WkhcMEKg4hO
	I3Cuso5xj12xSHvEIemjpGktZif5rdpV6eL/5xn32Z3SzOshPPyKMFcQ3kS3tWZXAMrfQY/qObg
	8RJ2wE/lqfcZpefjHCfGmxq68cpFzFsgk4ZoEojHx8NQ02lUQoiNEhLmxCmUvrj2At8Q==
X-Received: by 2002:a17:906:fd87:b0:bad:f5dd:6740 with SMTP id a640c23a62f3a-bc56aa411e4mr728446366b.3.1778251419579;
        Fri, 08 May 2026 07:43:39 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v2 01/26] xen: arm: update p2m_set_allocation() prototype
Date: Fri,  8 May 2026 16:43:03 +0200
Message-ID: <d0188bacab958c47a7c0ae2a570e2ca1048812c6.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1778251420-86168D75-213873DA/10/73395122804
X-purgate-type: spam
X-purgate-size: 7869

p2m_set_allocation() signals preemption redundantly: via a bool *preempted
out-argument (set to true) and via -ERESTART return code, both at the same
time. This led to the caller-side ASSERT(preempted == (rc == -ERESTART))
added solely to document their agreement.

Drop the out-argument entirely. The return code alone is sufficient to
distinguish preemption (-ERESTART) from success (0) or other failures.
Replace the pointer with a plain bool can_preempt that controls whether
the preemption check is performed at all, making the previous
NULL-to-suppress-preemption calling convention explicit and type-safe.

Since p2m_set_allocation() is called by the common dom0less build code,
move its declaration from the ARM-specific asm/p2m.h to xen/p2m-common.h.

Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - new patch
---
 xen/arch/arm/include/asm/p2m.h          |  1 -
 xen/arch/arm/mmu/p2m.c                  | 22 ++++++++--------------
 xen/arch/riscv/include/asm/paging.h     |  2 +-
 xen/arch/riscv/p2m.c                    |  7 ++++---
 xen/arch/riscv/paging.c                 |  7 ++-----
 xen/common/device-tree/dom0less-build.c |  2 +-
 xen/include/xen/p2m-common.h            |  2 ++
 7 files changed, 18 insertions(+), 25 deletions(-)

diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
index 7957dbd96e57..62b37a05f79e 100644
--- a/xen/arch/arm/include/asm/p2m.h
+++ b/xen/arch/arm/include/asm/p2m.h
@@ -232,7 +232,6 @@ void p2m_restore_state(struct vcpu *n);
 /* Print debugging/statistial info about a domain's p2m */
 void p2m_dump_info(struct domain *d);
 
-int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted);
 int p2m_teardown_allocation(struct domain *d);
 
 static inline void p2m_write_lock(struct p2m_domain *p2m)
diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
index 51abf3504fcf..e5c6be7c0890 100644
--- a/xen/arch/arm/mmu/p2m.c
+++ b/xen/arch/arm/mmu/p2m.c
@@ -67,10 +67,11 @@ int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
 
 /*
  * Set the pool of pages to the required number of pages.
- * Returns 0 for success, non-zero for failure.
+ * Returns 0 for success, -ERESTART if preempted, or a negative error code on
+ * failure.
  * Call with d->arch.paging.lock held.
  */
-int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
+int p2m_set_allocation(struct domain *d, unsigned long pages, bool can_preempt)
 {
     struct page_info *pg;
 
@@ -112,11 +113,8 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
             break;
 
         /* Check to see if we need to yield and try again */
-        if ( preempted && general_preempt_check() )
-        {
-            *preempted = true;
+        if ( can_preempt && general_preempt_check() )
             return -ERESTART;
-        }
     }
 
     return 0;
@@ -125,7 +123,6 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
 int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
 {
     unsigned long pages = size >> PAGE_SHIFT;
-    bool preempted = false;
     int rc;
 
     if ( (size & ~PAGE_MASK) ||          /* Non page-sized request? */
@@ -133,27 +130,24 @@ int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
         return -EINVAL;
 
     spin_lock(&d->arch.paging.lock);
-    rc = p2m_set_allocation(d, pages, &preempted);
+    rc = p2m_set_allocation(d, pages, true);
     spin_unlock(&d->arch.paging.lock);
 
-    ASSERT(preempted == (rc == -ERESTART));
-
     return rc;
 }
 
 int p2m_teardown_allocation(struct domain *d)
 {
     int ret = 0;
-    bool preempted = false;
 
     spin_lock(&d->arch.paging.lock);
     if ( d->arch.paging.p2m_total_pages != 0 )
     {
-        ret = p2m_set_allocation(d, 0, &preempted);
-        if ( preempted )
+        ret = p2m_set_allocation(d, 0, true);
+        if ( ret == -ERESTART )
         {
             spin_unlock(&d->arch.paging.lock);
-            return -ERESTART;
+            return ret;
         }
         ASSERT(d->arch.paging.p2m_total_pages == 0);
     }
diff --git a/xen/arch/riscv/include/asm/paging.h b/xen/arch/riscv/include/asm/paging.h
index e487c89a4ccd..103384723dc5 100644
--- a/xen/arch/riscv/include/asm/paging.h
+++ b/xen/arch/riscv/include/asm/paging.h
@@ -9,7 +9,7 @@ struct page_info;
 int paging_domain_init(struct domain *d);
 
 int paging_freelist_adjust(struct domain *d, unsigned long pages,
-                           bool *preempted);
+                           bool can_preempt);
 
 int paging_ret_to_domheap(struct domain *d, unsigned int nr_pages);
 int paging_refill_from_domheap(struct domain *d, unsigned int nr_pages);
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 703b9f4d2540..41d6d3d5e699 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -430,15 +430,16 @@ int p2m_init(struct domain *d, const struct xen_domctl_createdomain *config)
 
 /*
  * Set the pool of pages to the required number of pages.
- * Returns 0 for success, non-zero for failure.
+ * Returns 0 for success, -ERESTART if preempted, or a negative error code on
+ * failure.
  * Call with d->arch.paging.lock held.
  */
-int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
+int p2m_set_allocation(struct domain *d, unsigned long pages, bool can_preempt)
 {
     struct p2m_domain *p2m = p2m_get_hostp2m(d);
     int rc;
 
-    if ( (rc = paging_freelist_adjust(d, pages, preempted)) )
+    if ( (rc = paging_freelist_adjust(d, pages, can_preempt)) )
         return rc;
 
     /*
diff --git a/xen/arch/riscv/paging.c b/xen/arch/riscv/paging.c
index 76a203edbb0c..35f572689a7c 100644
--- a/xen/arch/riscv/paging.c
+++ b/xen/arch/riscv/paging.c
@@ -47,7 +47,7 @@ static int _paging_add_to_freelist(struct domain *d)
 }
 
 int paging_freelist_adjust(struct domain *d, unsigned long pages,
-                           bool *preempted)
+                           bool can_preempt)
 {
     ASSERT(spin_is_locked(&d->arch.paging.lock));
 
@@ -66,11 +66,8 @@ int paging_freelist_adjust(struct domain *d, unsigned long pages,
             return rc;
 
         /* Check to see if we need to yield and try again */
-        if ( preempted && general_preempt_check() )
-        {
-            *preempted = true;
+        if ( can_preempt && general_preempt_check() )
             return -ERESTART;
-        }
     }
 
     return 0;
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
index 6d6882a34b5a..1058699ab25b 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -747,7 +747,7 @@ static int __init domain_p2m_set_allocation(struct domain *d, uint64_t mem,
                 domain_p2m_pages(mem, d->max_vcpus);
 
     spin_lock(&d->arch.paging.lock);
-    rc = p2m_set_allocation(d, p2m_pages, NULL);
+    rc = p2m_set_allocation(d, p2m_pages, false);
     spin_unlock(&d->arch.paging.lock);
 
     return rc;
diff --git a/xen/include/xen/p2m-common.h b/xen/include/xen/p2m-common.h
index f0bd9a6b9896..1b44ec8ce36c 100644
--- a/xen/include/xen/p2m-common.h
+++ b/xen/include/xen/p2m-common.h
@@ -43,5 +43,7 @@ int __must_check check_get_page_from_gfn(struct domain *d, gfn_t gfn,
                                          bool readonly, p2m_type_t *p2mt_p,
                                          struct page_info **page_p);
 
+int p2m_set_allocation(struct domain *d, unsigned long pages,
+                       bool can_preempt);
 
 #endif /* _XEN_P2M_COMMON_H */
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:43:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:43:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303736.1577011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQb-0005L3-N0; Fri, 08 May 2026 14:43:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303736.1577011; Fri, 08 May 2026 14:43:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQb-0005Kr-JW; Fri, 08 May 2026 14:43:45 +0000
Received: by outflank-mailman (input) for mailman id 1303736;
 Fri, 08 May 2026 14:43:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQa-00056i-0p
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:43:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQZ-007XVC-Dp
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:43:43 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf678-2eae-0a2a0a5409dd-0a2a4501d306-48
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:43 +0200
Received: from [209.85.208.41] (helo=mail-ed1-f41.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf69f-c1f2-0a2a45010019-d155d029cc46-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:43 +0200
Received: by mail-ed1-f41.google.com with SMTP id
 4fb4d7f45d1cf-67bc6098640so3266330a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:43:43 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251423; x=1778856223; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RC7DlCeUsaedUaIqwbZ2zmHNvDYUNbqCg+js/0qPP3o=;
        b=mfF2XvpucY+xl08w0ePFK5BXUnAbsPj/JWkT5HsZlY1wcBD54pMneCluW9Tj8aXVSc
         xbDTRy2lpPh28C8tg4BCjOnGmMrYpzuF4xIrtjXE7bTvY3VZidzHwi1S00L7uh/XZgQA
         h6zCZp8CixigTDeZ3LUbwc3U3WWRWeyRrgKZYXgpNibCG/YkTtq6l3l5vHl64bR2c7U2
         xOOSCCvRhypOFrAtl389OA2MS8A4+8tDKe2AJqmg0VO8r4A+mx4OJGybC0qdUrpSiJ3o
         YWvO4cXtwqxiwpparMwQ9fnV0+kRA2Tx0ScBSKPxkSc5c5++KO/MHYg2IghN9RS7WHub
         GcRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251423; x=1778856223;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=RC7DlCeUsaedUaIqwbZ2zmHNvDYUNbqCg+js/0qPP3o=;
        b=RJvniETeJqArdBKEP/u7xDuYbxwv0RQM85la025UOw56aWsYaFgUvERcrgHQnhJMYL
         mQSGG048Ke1fwN0uRoVxTxNxhWP6uuqluzVZUUIo5wdQV7nBRbWY67AHObEg3+LsG1Rv
         9VS66D5Dh/5F1iCm8e3ESnh0qDzlgwCthkjXgALPmpqaS5Z1GuPHy6p5GJTRV9DkZu7t
         50r7mJFopEZikWTAHVbb/jlEYKm55M6jbCoVAUO2NZN/kYzTX5jCv32YS/d9SbOWX+mD
         dRucKKtcx1bum0CKxqPDsbf7Jbx8F8KE4T3dXWDNZzBT9vNj0SQ0lku4UPMepihS72Of
         agPg==
X-Gm-Message-State: AOJu0YxjyccXYUt/oipqxeXf+oPTFbw2s+98ok+BUl+LqY63yq58EpBk
	eUJdJYw+1WBo+kywZtj6963pgGBhQJeYP8SrD4R47iuxPB3F0GR5Rf4GKgfswg==
X-Gm-Gg: AeBDievV7eNUpnuMIfWTibDEr/W2M/gYbJFTsHLUPv8lKBdjjfZsn8d9/+pp6G8hGOi
	Hw97d2jg2j848XSDB1ZeEArh/D1Xk9JDlUY/afpjkwfFFwwJK0JV8GM4lRUUKs0cmXCrFi7hzs9
	veRgW33I87uFTzla9BYSgTc9vmpY7fJCQRyTfzu8kGISzFmiAPvuwOtB86fedgBAUmlYpZk386l
	bAQkl8/7Fdym0VFyRhFzmIZIKHoK7xTqVJLeKdmVlcTDs1Tw/JASMCVWY5qd7V91iwDKl/K2Zrk
	fzIK7Z+gfdMgqkKnT+9vJD8DFbKfLOpul2+qiRYjWoRvxIQhA+DuJsvxwt/2r+uOD5XbHbLqS2d
	9tougK+mqZcezVKI9DLSm40U2xnxF8Pz+iiQoozEdqMFA7FSS+k4LxZfxQFoN2LvZbtpa+nT66u
	X7M4Ylf48H5uPdSvcP7cJ/fpoSvlpC2AY5Y24WAKn04AJZrPi4NYhBaRHzumxeNlb3Qg==
X-Received: by 2002:a17:907:9303:b0:bc3:cb5c:5516 with SMTP id a640c23a62f3a-bc56b028ed9mr725917066b.11.1778251422368;
        Fri, 08 May 2026 07:43:42 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 03/26] xen/riscv: Implement construct_domain()
Date: Fri,  8 May 2026 16:43:05 +0200
Message-ID: <3b1c60095c8a963e7df3ca5025e637e678f5ee71.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778251423-AE55DFF4-140E611D/10/73395122804
X-purgate-type: spam
X-purgate-size: 2787

Implement construct_domain() function for RISC-V, which performs initial setup
for the domain's first vCPU, loads the kernel, initrd, and device tree,
and sets up guest CPU registers for boot.

It also creates additional vCPUs up to max_vcpus and assigns the device tree
address and boot cpuid in registers.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Rework construct_domain() to print that vCPU1...n are created using %pv.
 - Use true instead of 1 for initialization of v->is_initialised.
 - Drop unnessary BUG_ON() in construct_domain().
 - Add TODO comment above *_load() functions.
---
---
 xen/arch/riscv/Makefile       |  1 +
 xen/arch/riscv/domain-build.c | 52 +++++++++++++++++++++++++++++++++++
 2 files changed, 53 insertions(+)
 create mode 100644 xen/arch/riscv/domain-build.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 8f7fd625dddd..fd5e499eb4b9 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -1,6 +1,7 @@
 obj-y += aplic.o
 obj-y += cpufeature.o
 obj-y += domain.o
+obj-y += domain-build.init.o
 obj-$(CONFIG_DOM0LESS_BOOT) += dom0less-build.init.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += entry.o
diff --git a/xen/arch/riscv/domain-build.c b/xen/arch/riscv/domain-build.c
new file mode 100644
index 000000000000..492327631e33
--- /dev/null
+++ b/xen/arch/riscv/domain-build.c
@@ -0,0 +1,52 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <xen/fdt-domain-build.h>
+#include <xen/fdt-kernel.h>
+#include <xen/init.h>
+#include <xen/sched.h>
+
+#include <asm/current.h>
+#include <asm/guest_access.h>
+
+int __init construct_domain(struct domain *d, struct kernel_info *kinfo)
+{
+    struct vcpu *v = d->vcpu[0];
+    struct cpu_user_regs *regs = vcpu_guest_cpu_user_regs(v);
+
+    BUG_ON(v->is_initialised);
+
+    /*
+     * At the moment *_load() don't return value and will just panic()
+     * inside.
+     * TODO: it will be good to change that.
+     */
+    kernel_load(kinfo);
+    initrd_load(kinfo, copy_to_guest_phys);
+    dtb_load(kinfo, copy_to_guest_phys);
+
+    regs->sepc = kinfo->entry;
+
+    /* Guest boot cpuid = 0 */
+    regs->a0 = 0;
+    regs->a1 = kinfo->dtb_paddr;
+
+    for ( unsigned int i = 1; i < d->max_vcpus; i++ )
+    {
+        const struct vcpu *tmp_v = vcpu_create(d, i);
+
+        if ( !tmp_v )
+        {
+            printk("Failed to allocate %pd v%d\n", d, i);
+            break;
+        }
+
+        dprintk(XENLOG_INFO, "Created vcpu %pv\n", tmp_v);
+    }
+
+    domain_update_node_affinity(d);
+
+    v->is_initialised = true;
+    clear_bit(_VPF_down, &v->pause_flags);
+
+    return 0;
+}
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:43:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:43:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303738.1577021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQc-0005Zw-Vr; Fri, 08 May 2026 14:43:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303738.1577021; Fri, 08 May 2026 14:43:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQc-0005Zn-Qp; Fri, 08 May 2026 14:43:46 +0000
Received: by outflank-mailman (input) for mailman id 1303738;
 Fri, 08 May 2026 14:43:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQb-0005KE-72
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:43:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQa-00A8wX-KC
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:43:44 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf692-bab6-0a2a0a5309dd-0a2a4503938a-12
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:44 +0200
Received: from [209.85.208.46] (helo=mail-ed1-f46.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a0-672d-0a2a45030019-d155d02ef00b-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:44 +0200
Received: by mail-ed1-f46.google.com with SMTP id
 4fb4d7f45d1cf-67929ff6dbfso3147676a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:43:44 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251424; x=1778856224; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ON68LWIVt0veSgG+MTTW1fAvzyX9osSH7edZs0haa/c=;
        b=ojY1+tG8NNYEKp3zbp7ZDYfpS4oprGUt5PmSK/6ClXNHLVQqfeTMkBdCQi1YSVThur
         QZ78RPLe/2zzPjuRxXVb2Wyx4fHUwhEZXun/dkVP82KIUfJT824Z9YOcJCxx0edJ69gV
         VREtYZ4FggqCYzYnEFrpO3Bm6DU2DMY5+JmpvJ5DW/Otmowl5rrI3M2blHcYsk/ob/aC
         cICsQK8ZiVZ4LWObBvyggAdT8sZ8sLBU/EZ4F/rP5WbCgoBRFi1PRQhjFv3Fa2faohsw
         UUWaTly+K3PdPbqf6ovRYpMcjl0HJLNYWRNtb3p19hmSFnShT2NHYJPr/nDZ7eUFqERW
         lovA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251424; x=1778856224;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ON68LWIVt0veSgG+MTTW1fAvzyX9osSH7edZs0haa/c=;
        b=fDlkEB4+qh/4x3rcrOO7vr1bkxuouAyufYenhhmndbf9wQ9taeGEIeWd1Uyo6JTs/5
         LlB1RPWyjMtCcCtoBNrue1dlzLGNF0LwwIYxJFD3lISNcRd45BrQF3zYjJo/FsL/UGOi
         VOFRnptptal18Di8monwDZE7BKZzBg9o6pVvguGHfdhu2ffNcg7zMXX1G2TGMEgQtUYP
         NTfrU+3A7hUh00eQ4HYpKknY3FIF0ytRvST5e4q3L9g+4x+MzJcZgxRUofSLofsrMh2N
         OdY/EzZPQudfdKkJI+L31zjVaT8JIukZBIvAShZZwKpDTYoR49uXj8vD/jxeNsJ1hRXX
         EZkQ==
X-Gm-Message-State: AOJu0YwhW0r65UvZwAlvVn5wDs5ImVCB2fnKfyWEX6pcYVqX0WfStWgH
	4fBCXL2ja3+xjVbiVPBNLZmBI1dPOoFSUxn1FCSSRLHRNCEIdp2TtmJH30gf6w==
X-Gm-Gg: Acq92OGsNg34BuMel2BOa3QcrFRSaZxMbOA87IfqnBSxHuHMow7bcJ/36aZkwFY+AJ0
	2dHWEg7tdHIv88tkDX4XWRSXJq2BhrHMf4D1NMnw3X2loLdrGpht8oM4kdYzlDGjK3J6B6metCc
	VHIC1dK5WxBUQ0tZng8IgjXmWWl9bc4yyc1JreF4rRbtCjS+QOpktS3t7YBHhJZms5AcLV3s9Uc
	hWxzFjeXKBW4CMoVULcv2//mFjGLBaiOuG+symLO1BTvCSy9VEqI6iJ/6RyDT/xFp3DwRsDiqun
	oO+zA9tlfsx2u86Iuv/5ZwxRmTKWrqa6Evb2I6v9e5G1H8yv6GG6cO4AY3J2VlPNulMYxRcg3yo
	IZwGHktnszogG8h0Wg9qaZDoNDOM8WclYJ3m6L6GrO9OWWliKTnu1x2nFfdoLi2efZZHhUoi+jE
	bvkVKUjyUrH/i7t5teoChHHM6ZPKqnWk9siSb6vk4jwM4gvtrM54RpyVFt25/wF0LAnGVQ9tu9m
	5tN
X-Received: by 2002:a17:906:209a:b0:bc5:f94d:97ec with SMTP id a640c23a62f3a-bc5f94d99d0mr432108466b.45.1778251423727;
        Fri, 08 May 2026 07:43:43 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 04/26] xen/riscv: implement prerequisites for domain_create()
Date: Fri,  8 May 2026 16:43:06 +0200
Message-ID: <e4d6f36bcdf13e8fc12e8769dd965954c5f45b97.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1778251424-39B7C938-AB56FE88/10/73395122804
X-purgate-type: spam
X-purgate-size: 2301

arch_domain_create() and arch_sanitise_domain_config() are prerequisites for
domain_create().

arch_sanitise_domain_config() currently returns 0, as there is no specific
work required at this stage.

arch_domain_create() performs basic initialization, such as setting up the P2M
and initializing of next unused phandle.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - update the commit message.
 - Drop vcpu_switch_to_aarch64_mode() from riscv/stubs. It shouldn't be under
   riscv/ at all.
 - Drop next_phandle as it is now in common code.
---
 xen/arch/riscv/domain.c | 25 +++++++++++++++++++++++++
 xen/arch/riscv/stubs.c  | 12 ------------
 2 files changed, 25 insertions(+), 12 deletions(-)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index c77be3b827eb..669dd27d79a3 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -289,6 +289,31 @@ void sync_vcpu_execstate(struct vcpu *v)
     /* Nothing to do -- no lazy switching */
 }
 
+int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
+{
+    return 0;
+}
+
+int arch_domain_create(struct domain *d,
+                       struct xen_domctl_createdomain *config,
+                       unsigned int flags)
+{
+    int rc = 0;
+
+    if ( is_idle_domain(d) )
+        return 0;
+
+    if ( (rc = p2m_init(d, config)) != 0)
+        goto fail;
+
+    return rc;
+
+ fail:
+    d->is_dying = DOMDYING_dead;
+    arch_domain_destroy(d);
+    return rc;
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index acbb5b9123ea..cfb12d51d00b 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -101,18 +101,6 @@ void dump_pageframe_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
-int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
-{
-    BUG_ON("unimplemented");
-}
-
-int arch_domain_create(struct domain *d,
-                       struct xen_domctl_createdomain *config,
-                       unsigned int flags)
-{
-    BUG_ON("unimplemented");
-}
-
 int arch_domain_teardown(struct domain *d)
 {
     BUG_ON("unimplemented");
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:43:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:43:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303739.1577028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQe-0005ps-58; Fri, 08 May 2026 14:43:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303739.1577028; Fri, 08 May 2026 14:43:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQe-0005od-1f; Fri, 08 May 2026 14:43:48 +0000
Received: by outflank-mailman (input) for mailman id 1303739;
 Fri, 08 May 2026 14:43:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQc-0005Xa-OM
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:43:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQc-007XVC-50
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:43:46 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf689-2eae-0a2a0a5409dd-0a2a45028638-42
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:46 +0200
Received: from [209.85.218.52] (helo=mail-ej1-f52.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a2-af86-0a2a45020019-d155da34ac9a-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:46 +0200
Received: by mail-ej1-f52.google.com with SMTP id
 a640c23a62f3a-bc264a50e7fso393112866b.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:43:46 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251425; x=1778856225; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xB7Os2MChM3TR6KXilRQ9GrrVvrhO9KwN/leWcO7waQ=;
        b=ZTcXv4As0mhUaqbZ/HCiD4KCkNRCRLOq6m8vItlSOxVdh7axaljw69rd4bBoNx9fcX
         d8nz+qwhshOSN0ssUUnupXbPGxSqbLV5J0slMxfEKMMSRGQDaQ4AQKAsB9YGw48E46tG
         GLEiC6bkOcgBqHrHZQu3lI97yCVsdZYU8Gp4gT/lNdgsYHr3xGsPxoaqnHZLh5a+cTeJ
         nc0nh9c37EycI3l9LjVqBq+Ipf2eEJ8F0GG9BZzAixykNcnEhZqXTs4DEcp5gxnLsm2M
         Qcu0oyeuWCyL8tGCLDJtNZb0xwgMLWv089s+oPzw8rHzYnVibF9abDidlXWX2yPBpkUD
         +naw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251425; x=1778856225;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=xB7Os2MChM3TR6KXilRQ9GrrVvrhO9KwN/leWcO7waQ=;
        b=iURBWlcKczyx27XgWhjSqIPN55vKijCCHRrBDYjhqh4dDPgcwEcuihhEXXu2qDeCMp
         hKyFth5fi7Eb4nMw8O/OrIhE6eWQHVz9Sf9ln8uz0+Pzj5y7AWhq+ntQ+sVkbyerIVz1
         94U551Kxu7S/4p7Cj6UTePnJSXF+s6mhPpN/8kIXCdgLmX9vIAqLKoVaBbU1li9WKHvk
         AuMMNGY1EEuT5VVr8rhDkIJxwDwcYZEVU5GKqIR86/7aTwwWctOeiHWUW4tIZfVTCQdH
         6y6NfWzUqtuUe+uofKEUu0BUCfOr0RWaF4KH2DWqv/2Yq9JKGIDekmhyWe8vu+rZ69fR
         g59g==
X-Gm-Message-State: AOJu0YwSnrCnaQ1NBQbNJZdHstZlx7sKk+jFjQHbu5qmxX2lzhAikwyN
	ZORp352So6bMLBNiJ02Wi9MxVuHCtjj7j10l1sbeEPobkx4KbBI7bo4+awVkJA==
X-Gm-Gg: AeBDieuUnjT0pjJB/ronluEqj1QRYZzCl4ksI7wsGInjMob7I5IgQjwxj73zdfUzfX7
	QWx0Ek0/3jKQ2h4WKOBxP3y+xyGA/9mVadY69jlyTQsOu3vTYD8msOGVaJStWTv4NRNsDWfgmpM
	oEOah/Ebe2xGw/5BEEK0TH6egaSyvpggNPm50R+1gu1cyGLuY0FsZM8J+wgI9CJFZXhS0WXOPHh
	Bs0tiEhnpWshB96OIZRq+pgHQfq5ct47nv6rywxUmAU9wzrAaKNsTkzgry07cLmhMhbfhWmotDL
	Hfl2n3LMCgRqL0PiQQ3gyNM57m3raEXQsxv1cQnxykuh57N2uqtnM0Ryh/C+HPekzaQQFr0dGv5
	D1E5KDQNXxnXZESjP6ibkaWSGDAJLDAwOzm+mAUhfAA2OzYBoiHJCIwji+dLlTfjrZRIgmv3L4f
	/wIA5aluQMDkDReHP3dehHKAo/6TwVQhVgASe4xHrrPDZS+7xrwRoWnjvwqwErY9CX6Ek0Sd6wW
	nKn5Y42z4/yReI=
X-Received: by 2002:a17:906:f59e:b0:bc6:5f97:8f90 with SMTP id a640c23a62f3a-bcaa9f60b9amr189903266b.3.1778251425147;
        Fri, 08 May 2026 07:43:45 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 05/26] xen/riscv: introduce guest riscv,isa string
Date: Fri,  8 May 2026 16:43:07 +0200
Message-ID: <b2d4f3f7f049837a25bc00bfb1d3da8b984a8b5a.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778251426-80D7F161-4FE5235E/10/73395122804
X-purgate-type: spam
X-purgate-size: 6692

Introduce generation of the riscv,isa string passed to the guest via the
Device Tree riscv,isa property.

Introduce the per-domain isa string and guest isa bitmap, populated
during domain creation by calling init_guest_isa().

Introduce guest_unsupp to filter out ISA extensions that should not be
exposed to guests:

- f/d/q/v: FPU and vector context save/restore are not yet implemented
  for guests.
- h: Nested virtualisation is not supported.
- sstc: Xen owns the supervisor timer; guests must use SBI.
- svade: Xen manages hardware A/D bit updates in stage-2 page tables.
- svpbmt: Page-based memory types are not yet wired up in stage-2 code.

Drop __initconst for riscv_isa_ext() as it can be used after init stage
by init_guest_isa().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - s/guest_unsupp_bmp/guest_unsupp.
 - Drop guest_isa_str.
 - Provide init_guest_isa() instead of polluting match_isa_ext().
 - Drop xlen.
 - Add the comment about guest_unsupp.
 - Update the way how guest_unsupp is init-ed.
 - Drop __initconst for riscv_isa_ext[] as it is used in init_guest_isa()
   which isn't marked as __init as it could be used after init stage.
---
---
 xen/arch/riscv/cpufeature.c             | 59 ++++++++++++++++++++++++-
 xen/arch/riscv/domain.c                 |  3 ++
 xen/arch/riscv/include/asm/cpufeature.h |  5 +++
 xen/arch/riscv/include/asm/domain.h     |  4 ++
 4 files changed, 70 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/cpufeature.c b/xen/arch/riscv/cpufeature.c
index 92235fdfd5ab..618592e6096a 100644
--- a/xen/arch/riscv/cpufeature.c
+++ b/xen/arch/riscv/cpufeature.c
@@ -14,6 +14,7 @@
 #include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/lib.h>
+#include <xen/sched.h>
 #include <xen/sections.h>
 
 #include <asm/cpufeature.h>
@@ -120,7 +121,7 @@ static int __init dt_get_cpuid_from_node(const struct dt_device_node *cpu,
  * and strncmp() is used in match_isa_ext() to compare extension names instead
  * of strncasecmp().
  */
-const struct riscv_isa_ext_data __initconst riscv_isa_ext[] = {
+const struct riscv_isa_ext_data riscv_isa_ext[] = {
     RISCV_ISA_EXT_DATA(i),
     RISCV_ISA_EXT_DATA(m),
     RISCV_ISA_EXT_DATA(a),
@@ -128,6 +129,7 @@ const struct riscv_isa_ext_data __initconst riscv_isa_ext[] = {
     RISCV_ISA_EXT_DATA(d),
     RISCV_ISA_EXT_DATA(q),
     RISCV_ISA_EXT_DATA(c),
+    RISCV_ISA_EXT_DATA(v),
     RISCV_ISA_EXT_DATA(h),
     RISCV_ISA_EXT_DATA(zicntr),
     RISCV_ISA_EXT_DATA(zicsr),
@@ -160,6 +162,12 @@ static const struct riscv_isa_ext_data __initconst required_extensions[] = {
     RISCV_ISA_EXT_DATA(svpbmt),
 };
 
+/*
+ * Everything in riscv_isa_ext[] which shouldn't be exposed to guests should
+ * appear here.
+ */
+static __ro_after_init DECLARE_BITMAP(guest_unsupp, RISCV_ISA_EXT_MAX);
+
 static bool __init is_lowercase_extension_name(const char *str)
 {
     /*
@@ -480,6 +488,53 @@ bool riscv_isa_extension_available(const unsigned long *isa_bitmap,
     return test_bit(id, isa_bitmap);
 }
 
+int init_guest_isa(struct domain *d)
+{
+    char *buf = d->arch.guest_isa_str;
+    size_t len = sizeof(d->arch.guest_isa_str);
+
+    bitmap_andnot(d->arch.guest_isa, riscv_isa, guest_unsupp,
+                  RISCV_ISA_EXT_MAX);
+
+#if defined(CONFIG_RISCV_32)
+    if ( snprintf(buf, len, "rv32") >= len )
+        return -ENOBUFS;
+#elif defined(CONFIG_RISCV_64)
+    if ( snprintf(buf, len, "rv64") >= len )
+        return -ENOBUFS;
+#else
+#   error "Unsupported RISC-V bitness"
+#endif
+
+    for ( unsigned int i = 0; i < ARRAY_SIZE(riscv_isa_ext); i++ )
+    {
+        const struct riscv_isa_ext_data *ext = &riscv_isa_ext[i];
+
+        if ( !riscv_isa_extension_available(d->arch.guest_isa, ext->id) )
+            continue;
+
+        if ( ext->id >= RISCV_ISA_EXT_BASE && strlcat(buf, "_", len) >= len )
+            return -ENOBUFS;
+
+        if ( strlcat(buf, ext->name, len) >= len )
+            return -ENOBUFS;
+    }
+
+    return 0;
+}
+
+static void __init init_guest_unsupp(void)
+{
+    set_bit(RISCV_ISA_EXT_f, guest_unsupp);
+    set_bit(RISCV_ISA_EXT_d, guest_unsupp);
+    set_bit(RISCV_ISA_EXT_q, guest_unsupp);
+    set_bit(RISCV_ISA_EXT_v, guest_unsupp);
+    set_bit(RISCV_ISA_EXT_h, guest_unsupp);
+    set_bit(RISCV_ISA_EXT_sstc, guest_unsupp);
+    set_bit(RISCV_ISA_EXT_svade, guest_unsupp);
+    set_bit(RISCV_ISA_EXT_svpbmt, guest_unsupp);
+}
+
 void __init riscv_fill_hwcap(void)
 {
     unsigned int i;
@@ -527,4 +582,6 @@ void __init riscv_fill_hwcap(void)
     if ( !all_extns_available )
         panic("Look why the extensions above are needed in "
               "https://xenbits.xenproject.org/docs/unstable/misc/riscv/booting.txt\n");
+
+    init_guest_unsupp();
 }
diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 669dd27d79a3..041aed176f32 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -303,6 +303,9 @@ int arch_domain_create(struct domain *d,
     if ( is_idle_domain(d) )
         return 0;
 
+    if ( (rc = init_guest_isa(d)) != 0 )
+        goto fail;
+
     if ( (rc = p2m_init(d, config)) != 0)
         goto fail;
 
diff --git a/xen/arch/riscv/include/asm/cpufeature.h b/xen/arch/riscv/include/asm/cpufeature.h
index 0c48d57a03bb..42d13d9dbdbe 100644
--- a/xen/arch/riscv/include/asm/cpufeature.h
+++ b/xen/arch/riscv/include/asm/cpufeature.h
@@ -17,6 +17,8 @@
  */
 #define RISCV_ISA_EXT_BASE  26
 
+#define RISCV_GUEST_ISA_STR_MAX 256
+
 enum riscv_isa_ext_id {
     RISCV_ISA_EXT_a,
     RISCV_ISA_EXT_c,
@@ -44,7 +46,10 @@ enum riscv_isa_ext_id {
     RISCV_ISA_EXT_MAX
 };
 
+struct domain;
+
 void riscv_fill_hwcap(void);
+int init_guest_isa(struct domain *d);
 
 bool riscv_isa_extension_available(const unsigned long *isa_bitmap,
                                    enum riscv_isa_ext_id id);
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 6044ce0feee0..664b0b9f9129 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -7,6 +7,7 @@
 #include <xen/xmalloc.h>
 #include <public/hvm/params.h>
 
+#include <asm/cpufeature.h>
 #include <asm/guest-layout.h>
 #include <asm/p2m.h>
 #include <asm/vtimer.h>
@@ -94,6 +95,9 @@ struct arch_domain {
     struct p2m_domain p2m;
 
     struct paging_domain paging;
+
+    DECLARE_BITMAP(guest_isa, RISCV_ISA_EXT_MAX);
+    char guest_isa_str[RISCV_GUEST_ISA_STR_MAX];
 };
 
 #include <xen/sched.h>
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:43:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:43:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303741.1577038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQf-00066m-PU; Fri, 08 May 2026 14:43:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303741.1577038; Fri, 08 May 2026 14:43:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQf-00066Z-KP; Fri, 08 May 2026 14:43:49 +0000
Received: by outflank-mailman (input) for mailman id 1303741;
 Fri, 08 May 2026 14:43:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQe-0005ne-3z
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:43:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQb-00Epe9-VH
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:43:47 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf662-5cb7-0a2a0a5109dd-0a2a450beaca-42
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:47 +0200
Received: from [209.85.218.45] (helo=mail-ej1-f45.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a3-212f-0a2a450b0019-d155da2dc9ab-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:47 +0200
Received: by mail-ej1-f45.google.com with SMTP id
 a640c23a62f3a-bc2301be8ecso365242866b.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:43:47 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251427; x=1778856227; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h2FQZbHP3CuQahBukHTaog7FxD+oxGJO5XRNsXmYJe4=;
        b=X0t+9RaSUeCjep3jNL7vIIdNjlbPwUqfBKiXwLObzdX6gaKimPlQ7z8HxtZn5uVNIr
         buVozRXQpaVSV+v+uWl8hz7I5Nl6hEepWyrKGHII+d9Rmpj3NBJztsk4ucH1dwpeKLl8
         ooYUMXOa8/yTB0hHCHfHurzXRhK+wbT/ujx+JwQ2xgJrpQWIqFLxfrG1XG89SpVYt94/
         fiS4kGyo1qb8KPgSnBcwqK2SR1PFy540Xq4BM80H7ivkkrXyIMuvPr+iwH2WvlCoVWxB
         znDRfTDWf4r3nXyz53qadxAvblPYLtZuM/fcrhZ96MzGZ2UrPMapGvgY74tKUyJy9Au9
         kxLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251427; x=1778856227;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=h2FQZbHP3CuQahBukHTaog7FxD+oxGJO5XRNsXmYJe4=;
        b=sQXkZrPpNZEcvV6h7+2B+/y2HJJvc2zSPi5XLQykEySDXIcLoqbeIR1O7PZTeJ6Cuc
         dpXrRrx0yCPEI+kGU1QqJ2yoNCThImyixkrgb6WAEKjAjqNXZSC4UYNbRWN47mLEbzGA
         BOpn+tT0svdtcdnXKlaY4zqd8IvUaoT2q7iPPIK6UV7TjcTurJqHHgaAHQBteDoNe9+W
         WgUtO4fJu2lJZxdNrFsU4o1xZjg1TNimEJM5cJ4Fa8+81nKauZ6/+gVKpHx934FARg2S
         qhdxJbdK6SKyAtDg8Wmx3dqnDn3u0B7LSM/8qShn9U0pRElXDuYg+QBPPnl+gGCIbdZm
         D2Fw==
X-Gm-Message-State: AOJu0YxGAl/GzLB/wgBqwzxnyUIvkRrGKlZke9gSZWQ0kkY3ERc1jgML
	/bfPXalk2eJ7QdmVciE8UiF2r4KORbNbYkdVqaZQQ0DCAV43t4edTzzvAhNaoA==
X-Gm-Gg: Acq92OEfecAL58r/D4VpERJX93PQgzkkP2GUMa0fJvX3HCJFup4BnEFN2E3dxlpvkGG
	Y5m5Y2EYdrXHRFQm7dZ4HZ9cfrAvwFqL+R4yH10NXoMEPWb8B7XsbHNENXoj027L5d4/kS2oVVg
	1rFcq/dYx/CC/FoSa7wDq0rYvGE+GS/rU8xIG9nKerdD6sFCk5G2J+onjR1+61ViyC56hnS3Glx
	6E0lJ/S45J6we+rQ9hNAR99uFIIZNkRxfUJn7uOiEccrsG7m+NzsIbjQqagHLuWY7vpS2fAExFR
	kkuSsuXER414OzxphipLgjg9BYgVpCkONSrd/7kC5cPk5jQ0rZsnAHYrUBnjeUfbgCWAK9FgNhH
	funVLdBBoliyr+8kISbK/GYq70s+oIeQj2D8mO3e1TovGZ2Alhcv+j1WXExcXaDxt7zDyVxVkwO
	PZGBsTjOIZWzqmqKHNQmSFG59n+3LkDdTX48tLuOqPOETA0iigBespwRAgBpzoyyXl6g==
X-Received: by 2002:a17:907:c18:b0:bc4:b9f5:fe27 with SMTP id a640c23a62f3a-bc56c42aca0mr727233666b.10.1778251426591;
        Fri, 08 May 2026 07:43:46 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 06/26] xen/riscv: implement make_cpus_node()
Date: Fri,  8 May 2026 16:43:08 +0200
Message-ID: <69d2dd26b7c2d00c9d28f898f041f6d1be145e0d.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1778251427-20C7DF3B-6AFED7C1/10/73395122804
X-purgate-type: spam
X-purgate-size: 4127

Implement make_cpus_node() to create cpus node for a guest domain.

This function is going to be use by common dom0less code during
construction domain.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - s/u32/uint32_t for timebase_frequency local variable.
 - Drop +1 from BUILD_BUG_ON().
 - return fdt_end_node(fdt); instead of res at the end of the function.
---
---
 xen/arch/riscv/domain-build.c | 106 ++++++++++++++++++++++++++++++++++
 1 file changed, 106 insertions(+)

diff --git a/xen/arch/riscv/domain-build.c b/xen/arch/riscv/domain-build.c
index 492327631e33..3063328d96e4 100644
--- a/xen/arch/riscv/domain-build.c
+++ b/xen/arch/riscv/domain-build.c
@@ -3,8 +3,10 @@
 #include <xen/fdt-domain-build.h>
 #include <xen/fdt-kernel.h>
 #include <xen/init.h>
+#include <xen/libfdt/libfdt.h>
 #include <xen/sched.h>
 
+#include <asm/cpufeature.h>
 #include <asm/current.h>
 #include <asm/guest_access.h>
 
@@ -50,3 +52,107 @@ int __init construct_domain(struct domain *d, struct kernel_info *kinfo)
 
     return 0;
 }
+int __init make_cpus_node(const struct domain *d, struct kernel_info *kinfo)
+{
+    int res;
+    const struct dt_device_node *cpus = dt_find_node_by_path("/cpus");
+    unsigned int cpu;
+    uint32_t timebase_frequency;
+    bool frequency_valid;
+    void *fdt = kinfo->fdt;
+
+    dt_dprintk("Create cpus node\n");
+
+    if ( !cpus )
+    {
+        dprintk(XENLOG_ERR, "Missing /cpus node in the device tree?\n");
+        return -ENOENT;
+    }
+
+    frequency_valid = dt_property_read_u32(cpus, "timebase-frequency",
+                                           &timebase_frequency);
+
+    res = fdt_begin_node(fdt, "cpus");
+    if ( res )
+        return res;
+
+    res = fdt_property_cell(fdt, "#address-cells", 1);
+    if ( res )
+        return res;
+
+    res = fdt_property_cell(fdt, "#size-cells", 0);
+    if ( res )
+        return res;
+
+    if ( frequency_valid )
+        res = fdt_property_cell(fdt, "timebase-frequency", timebase_frequency);
+
+    for ( cpu = 0; cpu < d->max_vcpus; cpu++ )
+    {
+        char buf[64];
+        uint32_t reg = cpu_to_fdt32(cpu);
+
+        snprintf(buf, sizeof(buf), "cpu@%u", cpu);
+        res = fdt_begin_node(fdt, buf);
+        if ( res )
+            return res;
+
+        res = fdt_property(fdt, "reg", &reg, sizeof(reg));
+        if ( res )
+            return res;
+
+        res = fdt_property_string(fdt, "status", "okay");
+        if ( res )
+            return res;
+
+        res = fdt_property_string(fdt, "compatible", "riscv");
+        if ( res )
+            return res;
+
+        BUILD_BUG_ON((sizeof("riscv,") +
+                      sizeof_field(struct gstage_mode_desc, name)) >= sizeof(buf));
+        snprintf(buf, sizeof(buf), "riscv,%s", max_gstage_mode->name);
+        res = fdt_property_string(fdt, "mmu-type", buf);
+        if ( res )
+            return res;
+
+        res = fdt_property_string(fdt, "riscv,isa", d->arch.guest_isa_str);
+        if ( res )
+            return res;
+
+        res = fdt_property_string(fdt, "device_type", "cpu");
+        if ( res )
+            return res;
+
+        res = fdt_begin_node(fdt, "interrupt-controller");
+        if ( res )
+            return res;
+
+        res = fdt_property_string(fdt, "compatible", "riscv,cpu-intc");
+        if ( res )
+            return res;
+
+        res = fdt_property_cell(fdt, "#interrupt-cells", 1);
+        if ( res )
+            return res;
+
+        res = fdt_property(fdt, "interrupt-controller", NULL, 0);
+        if ( res )
+            return res;
+
+        res = fdt_property_u32(fdt, "phandle", alloc_phandle(kinfo));
+        if ( res )
+            return res;
+
+        /* end of interrupt-controller */
+        res = fdt_end_node(fdt);
+        if ( res )
+            return res;
+
+        res = fdt_end_node(fdt);
+        if ( res )
+            return res;
+    }
+
+    return fdt_end_node(fdt);
+}
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:43:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:43:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303742.1577048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQh-0006MP-3i; Fri, 08 May 2026 14:43:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303742.1577048; Fri, 08 May 2026 14:43:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQg-0006Ll-T3; Fri, 08 May 2026 14:43:50 +0000
Received: by outflank-mailman (input) for mailman id 1303742;
 Fri, 08 May 2026 14:43:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQf-00062y-Ev
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:43:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQd-00EphB-A5
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:43:48 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a1-e002-0a2a0a5209dd-0a2a4507ac04-2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:48 +0200
Received: from [209.85.218.48] (helo=mail-ej1-f48.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a4-229c-0a2a45070019-d155da30a8f9-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:48 +0200
Received: by mail-ej1-f48.google.com with SMTP id
 a640c23a62f3a-bc1f0830f44so590070366b.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:43:48 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251428; x=1778856228; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fLvC2PpGNSOer61k2601CFg3UXOxaIWR6wu0w95lWf4=;
        b=gzaj2O2vERQO97xv+7fVNMNjcwRpORuevEuZ72MihGsf3xfVTiN1SdmEDbkRD/xTyp
         fhspq0WdODITpe0Q9NJLbZFZKD+4EtxlWdzwuNjeJ23mPL1rg/iBebrsJCBz5qDYZwC4
         lHlpnkGrqX2K3jS3uogKvuJMhwRiMIR+amLFK2ELPDQTbzc1bDoSGuOoiRB7lSr7sXa9
         r+8nsMCPGmULIW3QulQX0tKKWUAa86p1mL9PRAhK+7W2/AkTAk7WJz2KayC0jo+z6m7L
         348ackhr+AV2rxSSlu7AyvqzvnR7pj/vS5JCnosm6MAXIQuFk9VM73O+quXuztVvVTFo
         /Z4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251428; x=1778856228;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=fLvC2PpGNSOer61k2601CFg3UXOxaIWR6wu0w95lWf4=;
        b=Z+mdSQ2CCvD2cxu+i9ZOUI2gEZjg4UnLvEQJpjT/yrW0oC20f1RoP3rKi6i/gHYrKO
         3kiVVC7rTyBtiCM8jWPcD3T0bXerau56KmbAW7iLLjtF+nS015XBbXxxnQK+i5AasZJy
         4a73A/6ZTH8az18DlKDFYPc2Aj9tZBTwoYYtS+8lojGjyU2soWRWz3uiQD/W31mOtX4O
         WYUIdU2cXgOKN7tQ3jOHyovdR/Ixu5I96ODZ9r6lOtCm+yi/urPrr6vonr1yppYCV5SH
         YfPWZpajAl744Ficy8/z5B03i9Kvx611Snw3J/ch/EWgC3Me1zZ3jXX+mYT3KtRnXMAb
         nwEA==
X-Gm-Message-State: AOJu0YxZx0XbqEiT0+/nYyC3zqhvBlOsrJO8nv3tq8qlzjxZ9HAvyqnF
	f47C/IZedpTbqfsBVdJlDwlMfVLHajzsTOqHW3Qh4MxBgca2GOegii7og+DkCg==
X-Gm-Gg: AeBDiet3fSrE45GdzgchRU55uRbIcJx+MkjhBzINJ3ZsPURcE698fTtwzOq+r2POMFk
	k+A6Eg/xt+TOpJ+VNMoIwspB1yWEywPqhZl3HSL2PrrfY6JRyNLsuiMWSVoA0ex5CPpO0Nn6npk
	nN/NAUIuSVquSl4NBUp564DpGTpzQNQ6GAgLOhFlp6qJRoauqhuXGYFDROMTjtMmRFdqrM7gF5O
	G6q0DtBDisM5pdxySFTuYs2RyftzKd/RNG6qMvEE7MiVrfDHlxwMAzp7BCNStP6a3yn/B75p9dB
	JfTrKSb+n/ztYcJRFrBO/S7oByoILiTSW3auVHHfSXXC2c6e6Axd2vCoaT4HIgYrlMM4th5i3Hg
	27dpSHxUGPTg8Q7XeaA4uogVieBin1k83ac62UjaHuMI6QiEPwge+a2iA+qbjcJ4dyQH3Vrmj9+
	lfd6mD41IzZ5rFM5L7vExF8Fic7JBB5Lk7Ry6WhPdPPE9ApStrNMz19qirgh7zx/pNLTtLlm+D5
	5bU
X-Received: by 2002:a17:906:fd87:b0:bc1:b5ef:7541 with SMTP id a640c23a62f3a-bc85cdada2bmr371439566b.22.1778251427956;
        Fri, 08 May 2026 07:43:47 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 07/26] xen/riscv: implement make_timer_node()
Date: Fri,  8 May 2026 16:43:09 +0200
Message-ID: <24f4c2ba7ab00c31b66108f63e6752a3bed2e0f1.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1778251428-28479C48-51C34B81/10/73395122804
X-purgate-type: spam
X-purgate-size: 1561

Generally, in DT for RISC-V there is a document which describes a timer
node (riscv,timer.yaml or sifive,clint.yaml), but the Linux timer driver
is declared with TIMER_OF_DECLARE(riscv_timer, "riscv", ...).
It matches the CPU node (compatible "riscv"), not the timer node itself.
It then calls of_find_compatible_node(NULL, NULL, "riscv,timer") only to
read the optional riscv,timer-cannot-wake-cpu property.

Since Xen does not care about that property for now, make_timer_node() is
implemented to return 0, as no timer node needs to be created for RISC-V
guests.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v2:
 - Acked-by: Jan Beulich <jbeulich@suse.com>
 - Update the commit message.
---
---
 xen/arch/riscv/domain-build.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/riscv/domain-build.c b/xen/arch/riscv/domain-build.c
index 3063328d96e4..02b293239142 100644
--- a/xen/arch/riscv/domain-build.c
+++ b/xen/arch/riscv/domain-build.c
@@ -3,6 +3,7 @@
 #include <xen/fdt-domain-build.h>
 #include <xen/fdt-kernel.h>
 #include <xen/init.h>
+#include <xen/fdt-kernel.h>
 #include <xen/libfdt/libfdt.h>
 #include <xen/sched.h>
 
@@ -156,3 +157,10 @@ int __init make_cpus_node(const struct domain *d, struct kernel_info *kinfo)
 
     return fdt_end_node(fdt);
 }
+
+int __init make_timer_node(const struct kernel_info *kinfo)
+{
+    /* There is no need for timer node for RISC-V. */
+
+    return 0;
+}
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:43:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:43:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303745.1577056 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQi-0006dm-F6; Fri, 08 May 2026 14:43:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303745.1577056; Fri, 08 May 2026 14:43:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQi-0006dN-7v; Fri, 08 May 2026 14:43:52 +0000
Received: by outflank-mailman (input) for mailman id 1303745;
 Fri, 08 May 2026 14:43:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQg-0006J3-QL
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:43:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQg-007XVC-6p
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:43:50 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a5-2eae-0a2a0a5409dd-0a2a4502de26-2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:50 +0200
Received: from [209.85.218.51] (helo=mail-ej1-f51.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a6-af86-0a2a45020019-d155da33a5c7-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:50 +0200
Received: by mail-ej1-f51.google.com with SMTP id
 a640c23a62f3a-bc23bebd345so31302266b.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:43:50 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251429; x=1778856229; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8yGl4LH5XFe9FwGLjZCEW5kyIYDSUJUrG5QxrUQAt3k=;
        b=YlIDZheTxRIsmAZj2iWN6ARrv4uC197sV8MXFaBvPIfPcqeq+0SgqAfvewPD0VA10+
         DQkXbwgpzeHMLt2sbTrovV1drcaPsSp6gqYhMXnPUn52d4WGYTtWknRM9pwlIT5gXFGS
         zVNqvQtDjdvq01DLxsrPcLg+3C7GrPZ/XyiE/1sTNqZTl5rKKpbD/z6iHAVwk0KI5aGX
         u0hnf8JcnVnAx9PLW6+/AKzbFxwAoH8hyOkVx+gF56kYAr5Ipdp04zeh8+UvaIDFGtA+
         Q8H5TFR2uRDi5uQmpC3xbiytPduJ/M+zXqrYjiGfkHh2ZKea5a5JFvAozBhNHrFaku1+
         OZfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251429; x=1778856229;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=8yGl4LH5XFe9FwGLjZCEW5kyIYDSUJUrG5QxrUQAt3k=;
        b=X/+6gUqfJCTcjBgC2nw1lopKvI6Rgo+NG6a17dxGgFEYRmScUzUc/5qLUbmqePmtpP
         dXOOZwxY4uExVmAh2+IOn2n+Id5WpQ3s3d4EVI8bIY+OGR6HYoyV+CZ9F6vOhvRfpoII
         FwXAu7JpjpPUBidCvAA4ihS81ebplcJoMfsaotB+QYvNAFZS/eFL7OV5YHB9yGxCjElb
         uG0XS685PNBvfKL4oudKVWcQGGndK9qR1FSwm135adGjUXIARKf8fDEtj9pGlvsCsF1Q
         Y7+qBQiSWhSK4/9OSzJtGeds6QTirhl+497IjTaSnnWpz8Wu/pmyLBXs8/1od7o42Uqo
         WaDA==
X-Gm-Message-State: AOJu0YzfNFtIRGWUJT/URXqm/ek8nOy5J6cG+djp4/nFYiAlHhC5KJUL
	n05lF3P3DvgHYLZIBJkwL5FmOzXoTNlUHMbaTquPl1sv6MabifVkdUzvNNNaIQ==
X-Gm-Gg: AeBDieulw6vLzepIwdhvSe6VT0PS/gAV9uGJTsZw+Pr5cl+p8FOz7PnJSPl2jnF5o8R
	/5h4BXUy+CBg28kntmalSNDZSONkTl6sySY8UYrHrvVOaXbljRNZAaUPvOAWxtiz/hZw7ECgQgY
	eZ/r6d1g1+usVnxzqqqH0T8OwAGrHv7CW/b7LyOErpJEs6EDIKtGyp5WBs88OnO+HhExM7QPw0t
	vx8pd8G0oewHIITLw8u6+eLKY0IV5mXuNxnkS0cQ2XVPo9QzJRaBCypMlw+H8zGLsc2iZRyl7sy
	rNZHh0UcPElJzAAtVr2X4ltQ8dv1v5nfVktLMEzhDoPDqtIFL2syGha4f7fJ0nQOGGXtEM11zbg
	1HlPZgM04cIPsbgMLz1pgAr0oCbZ9HAQ0Obx2gCzyBOwKfvWeYH0+ncx6/7sqzps7eLIrVrNWoS
	MVPZusi++VrNbDSkzoyTxuGodE6KcPrL0FSl4lkx13veZNiMKaQfbSjKW6OFeYo4Yc/w==
X-Received: by 2002:a17:907:3f8e:b0:bc5:7c6d:8656 with SMTP id a640c23a62f3a-bc85d0b153bmr241091066b.19.1778251429347;
        Fri, 08 May 2026 07:43:49 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 08/26] xen/riscv: implement make_arch_nodes()
Date: Fri,  8 May 2026 16:43:10 +0200
Message-ID: <92338cb9254da76cccb242154d0617603b856052.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778251430-A937C161-1AA0B3AA/10/73395122804
X-purgate-type: spam
X-purgate-size: 1158

No RISC-V-specific nodes need to be created at the moment,
so make_arch_nodes() is implemented to simply return 0.

It is placed in dom0less-build.c as make_arch_nodes() is
only used in the dom0less code path. In the future, it will
be extended to create an emulated UART node.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Update the commit message.
---
---
 xen/arch/riscv/dom0less-build.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/riscv/dom0less-build.c b/xen/arch/riscv/dom0less-build.c
index a683972e9235..4cc00012aa8d 100644
--- a/xen/arch/riscv/dom0less-build.c
+++ b/xen/arch/riscv/dom0less-build.c
@@ -2,10 +2,18 @@
 
 #include <xen/bootfdt.h>
 #include <xen/device_tree.h>
+#include <xen/fdt-kernel.h>
 #include <xen/init.h>
 
 #include <asm/p2m.h>
 
+int __init make_arch_nodes(struct kernel_info *kinfo)
+{
+    /* No RISC-V specific nodes need to be made, at the moment. */
+
+    return 0;
+}
+
 int __init arch_parse_dom0less_node(struct dt_device_node *node,
                                     struct boot_domain *bd)
 {
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:43:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:43:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303746.1577064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQj-0006vi-Uh; Fri, 08 May 2026 14:43:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303746.1577064; Fri, 08 May 2026 14:43:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQj-0006ux-Lw; Fri, 08 May 2026 14:43:53 +0000
Received: by outflank-mailman (input) for mailman id 1303746;
 Fri, 08 May 2026 14:43:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQi-0006aZ-5O
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:43:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQh-00A90j-Id
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:43:51 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a6-bab6-0a2a0a5309dd-0a2a450581d0-2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:51 +0200
Received: from [209.85.218.49] (helo=mail-ej1-f49.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a7-aaa8-0a2a45050019-d155da31a443-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:51 +0200
Received: by mail-ej1-f49.google.com with SMTP id
 a640c23a62f3a-b93698bb57aso376275666b.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:43:51 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251431; x=1778856231; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/IQA+KUL5MpZcplutGw2+zZiZhu/Y0nI/Sw/1I/I0ks=;
        b=ji80PUJ9EwNfOqVaAU9VD3Wsi8xo6rDjVxRhBQ0SZg+qBAvl7flY/BLeAmvq+gKy+S
         vlYUyq+0bnHbIOOOE0e2X38mEiITUOFbB8ncBk6IuCXVFg7iPckzjn0hJtPju2QpEHx5
         K7taLf1r1uPSX1FYmoGXEKPP2ljOxEyVKbjvTkgWki0mA51XaJrtoEL72OXZPFW3HWtC
         dfhYlvWXYXNrFCBlh75w3x0CpkL7XceQeUPRaEH9hlm7KjvovsmoTzc9CaKmYvV+yUbX
         QUOvbLFB5r8p0EIzAUBaDPmm4zpc2qD5VVzkm/P0J2gkvLgKwmexh3O5ItFUSD9O85dj
         WA+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251431; x=1778856231;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=/IQA+KUL5MpZcplutGw2+zZiZhu/Y0nI/Sw/1I/I0ks=;
        b=emJKk16gQPzSuxOJnOAdXa7uRtpzzIBaM/PoKZX9G36zAus45FVgQJxTdK7papk7J8
         eu9MKXjpluHUe+Pcx/5AK7gDEzK8/kedSL5JsCNLsxqK1Utm2YNPHucZjJmpqz8rdfht
         B5kotRCbCPn/LkqQFJ71r9HIR9h4xzrwqVCs96K7uzAbFsNt1CJWMYnKY/2Cc4Fr2gCX
         a6c9zFyNy+orzidLcuBzgOkyuSsG10QipkNLvXO1SVpOCJun1YNXklxWjtlpFz8xyVjw
         MLVzyVU+CxqVwJhwxohC+v5DvjvE0OuJ4+CW+yCt0z09Eu5/Lm5L/Em4f8FmLEVvH/Ky
         VJjA==
X-Gm-Message-State: AOJu0YzXYuSRdDFSD6FrmSZAogbNTWotBg21of8PEJteKsnmbT+0UdJN
	9PPFi3QUiEXlhdJ3qxtg3ydzRpP3j0kOgqZWRR2tl2r63+zcfkKMtejI1wlgMw==
X-Gm-Gg: AeBDiesWLQtYF7ZAFZuHKHIk34bA/2ZLd0C/54TvNwHfJUvIuO84Lh/glfI/EeUZlQw
	kWZgBvZqlLx+7BLxlRdLRjcsotuhRJTN0aYOnGri6Jq6AaDkjzsWTnHwSoAt09k8pQClFzlybyJ
	hM+Go7/gMPptQZCrRcRK8KLPdcz9CMGctW+RH5HqMqexHH7xM/TLT2MSfiIP5RC3fxfQE165yuC
	oUkwiAVneqjjBdFNnwBY7A5V1xh7s7oCJIRB4Oome3RdkbdouZWluewJAY4H6FJlTsS4V76l68Y
	VHoRfo2ZgF1TsW1vI7Ge46MypXyc0h9F1mv6A+0ErTfd//gOcgcFLaW/ZcIpNi/x1QS3DM+6czs
	B/Mj5sSztSd71UZ0JXHn9y0r04ExAZfPHbLOJOnnRH5p8u5HM9gWIVBrdCO052y2BjMfHkUjVrf
	yXiapkL0DJ32kdRK6ZGPY8/hf7/QDvdOIOXVQO++LLv5uv0qpopJnwgmrgNh8eiA==
X-Received: by 2002:a17:907:7207:b0:bcb:8b41:b0de with SMTP id a640c23a62f3a-bcb8b41b476mr22594966b.19.1778251430667;
        Fri, 08 May 2026 07:43:50 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 09/26] xen/riscv: introduce init interrupt controller operations
Date: Fri,  8 May 2026 16:43:11 +0200
Message-ID: <286a8b99ad7c107fc46c346f7c075617740fa194.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1778251431-E2997443-F9C86D02/10/73395122804
X-purgate-type: spam
X-purgate-size: 3566

Introduce intc_hw_init_ops structure to avoid risky mix of init
function and non-init function.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - New patch.
---
 xen/arch/riscv/aplic.c            |  7 +++++--
 xen/arch/riscv/include/asm/intc.h | 10 +++++++---
 xen/arch/riscv/intc.c             | 10 ++++++++--
 3 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/xen/arch/riscv/aplic.c b/xen/arch/riscv/aplic.c
index 739e8dab3498..97dc0ef731f0 100644
--- a/xen/arch/riscv/aplic.c
+++ b/xen/arch/riscv/aplic.c
@@ -306,12 +306,15 @@ static const hw_irq_controller aplic_xen_irq_type = {
 
 static const struct intc_hw_operations aplic_ops = {
     .info                = &aplic_info,
-    .init                = aplic_init,
     .host_irq_type       = &aplic_xen_irq_type,
     .handle_interrupt    = aplic_handle_interrupt,
     .set_irq_type        = aplic_set_irq_type,
 };
 
+static const struct intc_hw_init_ops __initdata aplic_init_ops = {
+    .init                = aplic_init,
+};
+
 static int cf_check aplic_irq_xlate(const uint32_t *intspec,
                                     unsigned int intsize,
                                     unsigned int *out_hwirq,
@@ -347,7 +350,7 @@ static int __init aplic_preinit(struct dt_device_node *node, const void *dat)
 
     dt_irq_xlate = aplic_irq_xlate;
 
-    register_intc_ops(&aplic_ops);
+    register_intc_ops(&aplic_ops, &aplic_init_ops);
 
     /* Enable supervisor external interrupt */
     csr_set(CSR_SIE, BIT(IRQ_S_EXT, UL));
diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index ecdc8a5e6577..8b498e43b33f 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -28,8 +28,6 @@ struct intc_info {
 struct intc_hw_operations {
     /* Hold intc hw information */
     const struct intc_info *info;
-    /* Initialize the intc and the boot CPU */
-    int (*init)(void);
 
     /* hw_irq_controller to enable/disable/eoi host irq */
     const struct hw_interrupt_type *host_irq_type;
@@ -43,9 +41,15 @@ struct intc_hw_operations {
     void (*handle_interrupt)(struct cpu_user_regs *regs);
 };
 
+struct intc_hw_init_ops {
+    /* Initialize the intc and the boot CPU */
+    int (*init)(void);
+};
+
 void intc_preinit(void);
 
-void register_intc_ops(const struct intc_hw_operations *ops);
+void register_intc_ops(const struct intc_hw_operations *ops,
+                       const struct intc_hw_init_ops *init_ops);
 
 void intc_init(void);
 
diff --git a/xen/arch/riscv/intc.c b/xen/arch/riscv/intc.c
index ea317aea5ad8..8649160403f7 100644
--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -12,9 +12,13 @@
 
 static const struct intc_hw_operations *__ro_after_init intc_hw_ops;
 
-void __init register_intc_ops(const struct intc_hw_operations *ops)
+static const struct intc_hw_init_ops *__initdata intc_hw_init_ops;
+
+void __init register_intc_ops(const struct intc_hw_operations *ops,
+                              const struct intc_hw_init_ops *init_ops)
 {
     intc_hw_ops = ops;
+    intc_hw_init_ops = init_ops;
 }
 
 void __init intc_preinit(void)
@@ -27,7 +31,9 @@ void __init intc_preinit(void)
 
 void __init intc_init(void)
 {
-    if ( intc_hw_ops->init() )
+    ASSERT(intc_hw_init_ops && intc_hw_init_ops->init);
+
+    if ( intc_hw_init_ops->init() )
         panic("Failed to initialize the interrupt controller drivers\n");
 }
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:43:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:43:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303749.1577072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQl-0007EP-Ea; Fri, 08 May 2026 14:43:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303749.1577072; Fri, 08 May 2026 14:43:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQl-0007Ds-9K; Fri, 08 May 2026 14:43:55 +0000
Received: by outflank-mailman (input) for mailman id 1303749;
 Fri, 08 May 2026 14:43:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQj-0006sB-JQ
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:43:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQj-00A90j-02
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:43:53 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a1-bab6-0a2a0a5309dd-0a2a450ad498-16
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:52 +0200
Received: from [209.85.218.50] (helo=mail-ej1-f50.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a8-56b3-0a2a450a0019-d155da32b892-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:52 +0200
Received: by mail-ej1-f50.google.com with SMTP id
 a640c23a62f3a-bc2a455fd55so299695866b.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:43:52 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251432; x=1778856232; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VYs7BzMQgQ9bDQPKwO/Q6FA4+pq3em84Cw3U2UYtHu8=;
        b=JPP3VrCJyPqGTPCGipwY/V8+1CR0NfXe7vIZh1DAvZg00vVwaya4JlspAfwKZxRbTy
         XgosHDB69zEMwrUobrJvm0KvhVOrPJDkIw58gR/uzRNLnpFmih50WnLvUWQgWklmrmP1
         jTnCLiUHxPitJcxverdYj5HBT2UhCi5uaiKNvTOyzOiEF4Zo1T+mXCywn711Ng61QmTt
         zW5ctsktSxFwYw4U69USWnIETRSKTsx9ioUYBsM58IH3nRTd0evp3rgrul5KzIeHX/sZ
         w1fGNPf/299WSxzFbRSJ3+GI+OinxwjXfFug/xJJY1WjFLxF6MrKIQ0vtE78Nn+ZaF8I
         DZ2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251432; x=1778856232;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=VYs7BzMQgQ9bDQPKwO/Q6FA4+pq3em84Cw3U2UYtHu8=;
        b=r/QMKuXZYbSuFSiT3DerUhiAS1iRtYf4GHNKsxOIAyHiQS+72TTsZINvs9v7A1Kv2D
         hJohHTUJ/an8TmSZRCtzM5kA/qHf6AGls9cXSbVTdYF/hfBJ8jxF5C6x/OjrfVK0pV6N
         4ozBvLhc8gax2o6yaZMnO0gxOsvfibwiHHE3IQi67lAt+8BfqLzsvGrptPQqdOfAK6qy
         WjCkxC4T6au8lXt744GmcxG0YhQlmZkpeVNlsRkkyWxm+uNdc01QMzXrr6f1BSQEcG9h
         JEjnxfHVWhbhteYeBbpBu4IYeyaWz+ket7hN/1fw4yyQWtINf0jz392b5w8RnkCdTqJP
         UaPQ==
X-Gm-Message-State: AOJu0YzQRKTN43jTeTqfLXairpfMWxiHg5ma4uP0QpH8OaAgUOMKkTYj
	Y8CwHxN1mZek5drK7smWz5Z+FEfek6iXSAuelw1AVa7J1fnoUlQ8npYNSWkCYw==
X-Gm-Gg: AeBDiesLt1JUoItMy0UyO0mj0F7ICGJomy/UxcshMndep+cThA62riU92hBo7LMnckV
	hudSFh9+Sz8MMQcXkMcssR6aAKV4uMBiBlqKdd4bVGXgLid2cP0AwMT62aLDXtjqRpqbIktnzM2
	P/YHKcfhtka6yc0JIfEyqFI/qr22tnmgNPOI/iUhVXYH2CUlrvfNLnu0Ra1eVvpszRS1C8mzZ0G
	8J7ojjM0BXb/6u+nWz7JXvDmXTGaMKAYi8HmZ1jnZjmNMJsFMXtNlL05F4+XUJUpWP20g9Zt+/4
	eenDjAgcQXXQQjQ05hgBhtzZ8akFkr0egMEQvJusBMzNeWCCabp/vVnwNQO7+QmaOS2m23Hy4Fe
	Llko7PmdF8tp7l1Kb8IakxcxWNPXeycrMTu4t1IELbSDLl5klEdqbt3P88i4DKN9Q50J4eHTpiH
	i4O9+3gUUSFyWgM2m5jBX5l1iUeqHqx83szB7IjpQj53eQqStGeJmbp9jnF1Km9mmwkw==
X-Received: by 2002:a17:907:a80f:b0:bc6:a223:85fc with SMTP id a640c23a62f3a-bc6a2238a97mr551923466b.36.1778251432116;
        Fri, 08 May 2026 07:43:52 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 10/26] xen/riscv: implement make_intc_domU_node()
Date: Fri,  8 May 2026 16:43:12 +0200
Message-ID: <425157c3414ca95665288fa3788430e96a99e3cd.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778251432-7CA798B7-CC3832A0/10/73395122804
X-purgate-type: spam
X-purgate-size: 3236

Introduce a RISC-V specific function to create an interrupt controller
Device Tree node for DomU domains during dom0less build.

Add make_intc_domU_node() to the dom0less build path and wire it to
a new generic helper, intc_make_domu_dt_node(), which delegates DT
node creation to the active interrupt controller implementation via
vintc_init_ops.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - s/intc_make_domu_dt_node/make_intc_domU_node.
 - introduce separate intc_hw_init_ops structure for init operations.
 - Return -EOPNOTSUPP instead of -ENOSYS.
 - Drop const for kinfo argument as it could be changed by interrupt
   controller node creation code.
 - Refactor make_domu_dt_node().
 - Make make_domu_dt_node part of vintc structure as it looks more logical to be
   there.
---
 xen/arch/riscv/include/asm/domain.h |  2 ++
 xen/arch/riscv/include/asm/intc.h   | 12 ++++++++++--
 xen/arch/riscv/intc.c               | 11 +++++++++++
 3 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 664b0b9f9129..136d9e816a44 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -98,6 +98,8 @@ struct arch_domain {
 
     DECLARE_BITMAP(guest_isa, RISCV_ISA_EXT_MAX);
     char guest_isa_str[RISCV_GUEST_ISA_STR_MAX];
+
+    struct vintc *vintc;
 };
 
 #include <xen/sched.h>
diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index 8b498e43b33f..70df461a2a51 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -8,14 +8,13 @@
 #ifndef ASM__RISCV__INTERRUPT_CONTOLLER_H
 #define ASM__RISCV__INTERRUPT_CONTOLLER_H
 
-struct dt_device_node;
-
 enum intc_version {
     INTC_APLIC,
 };
 
 struct cpu_user_regs;
 struct irq_desc;
+struct kernel_info;
 
 struct intc_info {
     enum intc_version hw_version;
@@ -46,6 +45,15 @@ struct intc_hw_init_ops {
     int (*init)(void);
 };
 
+struct vintc_init_ops {
+    /* Create interrupt controller node for domain */
+    int (*make_domu_dt_node)(struct kernel_info *kinfo);
+};
+
+struct vintc {
+    struct vintc_init_ops *init_ops;
+};
+
 void intc_preinit(void);
 
 void register_intc_ops(const struct intc_hw_operations *ops,
diff --git a/xen/arch/riscv/intc.c b/xen/arch/riscv/intc.c
index 8649160403f7..0994deddcb2c 100644
--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -3,6 +3,7 @@
 #include <xen/acpi.h>
 #include <xen/bug.h>
 #include <xen/device_tree.h>
+#include <xen/fdt-kernel.h>
 #include <xen/init.h>
 #include <xen/irq.h>
 #include <xen/lib.h>
@@ -73,3 +74,13 @@ void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
     intc_set_irq_type(desc, desc->arch.type);
     intc_set_irq_priority(desc, priority);
 }
+
+int __init make_intc_domU_node(struct kernel_info *kinfo)
+{
+    struct vintc *vintc = kinfo->bd.d->arch.vintc;
+
+    if ( intc_hw_ops && vintc->init_ops && vintc->init_ops->make_domu_dt_node )
+        return vintc->init_ops->make_domu_dt_node(kinfo);
+
+    return -EOPNOTSUPP;
+}
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:43:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:43:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303751.1577081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQn-0007XN-1J; Fri, 08 May 2026 14:43:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303751.1577081; Fri, 08 May 2026 14:43:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQm-0007X3-OJ; Fri, 08 May 2026 14:43:56 +0000
Received: by outflank-mailman (input) for mailman id 1303751;
 Fri, 08 May 2026 14:43:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQl-0007Cq-8s
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:43:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQk-007XVC-Kx
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:43:54 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a5-2eae-0a2a0a5409dd-0a2a4502de26-14
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:54 +0200
Received: from [209.85.218.46] (helo=mail-ej1-f46.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6aa-af86-0a2a45020019-d155da2eb034-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:54 +0200
Received: by mail-ej1-f46.google.com with SMTP id
 a640c23a62f3a-b8f97c626aaso358645366b.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:43:54 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251434; x=1778856234; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AuQ/dZIZ6GUpQXp8UMUYCyKW7XWo14Gw5sW3GPz0m38=;
        b=fXOB4eAiVaP2gDuCF3VApR2SYYZK9jd26lwghggHGfuilvx4jsLq3WIAi8ufGuVrlV
         I88RstgFMlLVA3bk/EjKphV4tiAHovU/+awTXow1KkI7I0Mr8KGb+j4sXtQJWVXK4nhy
         jjCJN2Gpt6TbmHStXXoy5nvjtYJbdR05J9t0ata4T9cPUekrluY6FfFUIAKfk55u8UUK
         HOoIVQat2bM4KdbMeqFkgQloOwySYX1CTdYHDZJB9wmSRglSWKruef0qgXzdPJSmizXZ
         yKlg0SdEIAWSiMJriBFMnX3/P1Bi/3SZT7RzTTM6ir2PGHQbESsdAljzwPA9ENpI/97Q
         F4Mw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251434; x=1778856234;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=AuQ/dZIZ6GUpQXp8UMUYCyKW7XWo14Gw5sW3GPz0m38=;
        b=EiYN3xuW85o4uzClE/5yqyNKcQsqgACcv6snrwUbI7d0axQsjR5jdaBce5KY79WWSw
         KwYb51JdNYxGUPmTYlRnqfurMc6/ciyTdbRJ+5Jg5qSSQfzwviS4KbzcwkzmYeCaQz1h
         MtRUcDe6ZOhCWRzeHaiGez7bqOKE3oiW/Vnd3QiO35/HKqzDAxtw9u5/LwrjwjBIPZt7
         87NwSJ3hTcV6/6z9/OwUNuoyWwzAovTrrl9y5Vt3/+h/KF6C2krgXGK35v8sX8nrbpDp
         NgcwrJ5kAMML/oLbvMeXPLe67f0ebT7g9K2Nvlt2zYhFgEsv+U8spjHYL5tisTvH2ImC
         ko4g==
X-Gm-Message-State: AOJu0YwDxxjFN3yjkGq0Wl/GdA0D54OZfusZOrq/h9+4uMgAil4wyN0u
	AgrSlA3xZ+iSp777n1sJkEia7xNHRy5AquUqnLklO+GVhro3RO49KRrQn709Bw==
X-Gm-Gg: Acq92OGHIVtp1tb3GCcELuP+qSQcm3WkXmR+84eHNYYTyGcLkFUdpFItqFUpKee5Z5l
	F7QeopN66+nipfkBsgR0F6YyZ/cxkKJemsw8LNgejnkcaN8SdiawMtliAaCtkwz7XfWEcACKwBu
	/xiw+hu9Dv09P9PBtfNS4WYPMHOLH9IyZc/If3jIsC2LERQNsFya6lnpYOx9Qd1wXQC/0Blt+fq
	oTseRCSbVqz4OULHjPusRNJeQ0YoNAzsFVk7qF7UWY7n53vd+08InVj1aaL2RgYblFXf5n1F+g5
	AtGmK6ylEpgzwRP+LqSp85+qp1uOEG/FTMYDIrbgy24q3pgMrZujbjO9bJWCsh5wQRKe3FV/7sY
	mk3a7U9Iqq8E4npB0XzBnZKbhIHjcsbYttDpoQPJhXnIg6insUObnQR3+0Sb6ZhyAfVM6Qvg/Hs
	rNo8lrB/PeJ0T4UR/KnJ9auRXHYqQrr8FQzoCFkrd+FP3cNdsn+tNOZUomDrxfYpR5/lm93jvME
	Y7B
X-Received: by 2002:a17:907:c14:b0:bc6:7238:bd57 with SMTP id a640c23a62f3a-bcaa9f590a1mr190536466b.7.1778251433591;
        Fri, 08 May 2026 07:43:53 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 11/26] xen/riscv: introduce aia_init() and aia_usable()
Date: Fri,  8 May 2026 16:43:13 +0200
Message-ID: <66ca7f49756740c3d54ac660bebf406479ed011e.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778251434-A9971161-45DABEF4/10/73395122804
X-purgate-type: spam
X-purgate-size: 2828

aia_init() is going to contain all the logic related to AIA initialization.

At the moment, it only checks whether the SSAIA extension is available,
and if so, sets is_aia_usable (which  indicates more than just the
availability of the extension) to true; it also signifies that the necessary
components (to be introduced in follow-up patches) have been initialized.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - s/is_aia_available/is_aia_usable.
 - Drop return value for aia_init().
 - s/aia_available()/aia_usable().
---
 xen/arch/riscv/Makefile          |  1 +
 xen/arch/riscv/aia.c             | 23 +++++++++++++++++++++++
 xen/arch/riscv/include/asm/aia.h | 10 ++++++++++
 xen/arch/riscv/intc.c            |  3 +++
 4 files changed, 37 insertions(+)
 create mode 100644 xen/arch/riscv/aia.c
 create mode 100644 xen/arch/riscv/include/asm/aia.h

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index fd5e499eb4b9..9df8b72b5494 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -1,3 +1,4 @@
+obj-y += aia.o
 obj-y += aplic.o
 obj-y += cpufeature.o
 obj-y += domain.o
diff --git a/xen/arch/riscv/aia.c b/xen/arch/riscv/aia.c
new file mode 100644
index 000000000000..f67f422c5a45
--- /dev/null
+++ b/xen/arch/riscv/aia.c
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/errno.h>
+#include <xen/init.h>
+#include <xen/sections.h>
+#include <xen/types.h>
+
+#include <asm/cpufeature.h>
+
+static bool __ro_after_init is_aia_usable;
+
+bool aia_usable(void)
+{
+    return is_aia_usable;
+}
+
+void __init aia_init(void)
+{
+    if ( !riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia) )
+        return;
+
+    is_aia_usable = true;
+}
diff --git a/xen/arch/riscv/include/asm/aia.h b/xen/arch/riscv/include/asm/aia.h
new file mode 100644
index 000000000000..ca42c3086126
--- /dev/null
+++ b/xen/arch/riscv/include/asm/aia.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ASM__RISCV__AIA_H
+#define ASM__RISCV__AIA_H
+
+bool aia_usable(void);
+
+void aia_init(void);
+
+#endif /* ASM__RISCV__ACPI_H */
diff --git a/xen/arch/riscv/intc.c b/xen/arch/riscv/intc.c
index 0994deddcb2c..a611c9dc5f32 100644
--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -9,6 +9,7 @@
 #include <xen/lib.h>
 #include <xen/spinlock.h>
 
+#include <asm/aia.h>
 #include <asm/intc.h>
 
 static const struct intc_hw_operations *__ro_after_init intc_hw_ops;
@@ -34,6 +35,8 @@ void __init intc_init(void)
 {
     ASSERT(intc_hw_init_ops && intc_hw_init_ops->init);
 
+    aia_init();
+
     if ( intc_hw_init_ops->init() )
         panic("Failed to initialize the interrupt controller drivers\n");
 }
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:43:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:43:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303756.1577089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQo-0007uM-Mn; Fri, 08 May 2026 14:43:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303756.1577089; Fri, 08 May 2026 14:43:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQo-0007sk-A4; Fri, 08 May 2026 14:43:58 +0000
Received: by outflank-mailman (input) for mailman id 1303756;
 Fri, 08 May 2026 14:43:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQm-0007TQ-H3
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:43:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQk-00EpjT-Bx
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:43:55 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf689-5cb7-0a2a0a5109dd-0a2a4506c6fc-34
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:55 +0200
Received: from [209.85.218.45] (helo=mail-ej1-f45.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6ab-7371-0a2a45060019-d155da2da8ee-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:55 +0200
Received: by mail-ej1-f45.google.com with SMTP id
 a640c23a62f3a-bc1f0830f44so590084566b.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:43:55 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251435; x=1778856235; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bJo88tDYRHxEoMYk1G+kL6a6Xp9nCz03PcEHLeEJrNI=;
        b=DGVXB8rf+bzvO7Y0vPrF96kXYNhOwQnp73HsI4cmT0jg8uxG5RDx273cAkM9EM6TXz
         9Ih0gq11Tz1P/di2M5LVx9+PbhdJuaBvhGjTUdRFx8WbDFdvUt4kZkUq+KdSdZLF9CcO
         b3DVaMC4QDu7qYL7lDwvKXRapX/u9gG0HjBG24QFyKk5MJLGPdINBxq7okDuVpc5ilnY
         IGSEOr2zK7NU33Te2eR8i8oxZu5LD6zCIcKwmzKfDnwpB3zJBOoEOqAMp0w2ROXcMFGd
         M6kvQkgwxhoiE+poscz0TI6KXOzsoemgw0/4dLitQVFgMqc5XWeAT4z8Wd6pW14/JSjr
         wgfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251435; x=1778856235;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=bJo88tDYRHxEoMYk1G+kL6a6Xp9nCz03PcEHLeEJrNI=;
        b=XYlOL95aAHlY05yvp8oSGQq/Yu9Zv2XLEQsj/I2J2pVS0ylTG+EU+KPvMkKSpGiT9Y
         BnH5fxZZ16XKaTxtZTUOGfrJCeqg9Tqdrbuu8NdlR4gT90ZnMesqzCCDTWTaTTmFSSYv
         P9119/AtzbSoHJaBAf2RDrpxgwPwomSJFs6mxKeyFzgrPplgAgd5kL5yOnnoFdejRx4C
         t/nzAxvo/L4sQOhw32FB5qT6mVLjc0QGz+xWMupEYXCpX29FWV3PcPhht683/gMyud3G
         DhWy8WPR3cswMQbHj/5Fyd3t7krVtSBeljjBtZimWW08iYrO1rYSoqhmyqVHUFN1cFq4
         lftg==
X-Gm-Message-State: AOJu0YyNt3epYB+Ojwo3Ii+gu+PaLHiA8lokAHW+P7sFl6OA9ziEld1P
	/r5q8QusXR8Fbap3fUS8PcwsQWMLBiNjx0yJxQrNSCJxcqwybPHZtFmVl/b5ew==
X-Gm-Gg: Acq92OFCJTYkM9yU0IG2c1J97t0Ur0r5YLmzawv75dDhEmi2ygVKQmtjy6NGko7P74n
	czUaW+1XX2e7CIBaAnjS9iGB1W6PkONNjIDmRcDt/o2bwBRMMn6MNkSmJYwf2Rm8gfXWMCy0xpj
	Hb4lUbBDacxP3liipw446lQqP/QKAatFvX+5DBaoYJ5ZT9HXOvKQ76aKDW6Iz6G0SpOffabLOOF
	rbEXE+EnG9HOOeIH7wEUkG6dsWYhJTeSLv7OGEDg2wNOcg/VWPjpVYbUF6bIWxdAHOkFJOcnLYF
	lLzZpMSsHIOVyVgX2Q4p3hvMAS4q2DirUK2MuUn4nT+tyIfncDT4ijSDhn1kSifl2AXSxTP8MIi
	9Q24jvINxSY4FT7iW6Ck/knepenuh/P8NfUTWtnJy2p8tSG809v+oxgvBqXeNLrcpvlHo3szFRn
	QrzcHGme3N+MJ0DvNDatw8Ta9Q9c+oZD1zMBR4B/0OEyswPrOb0Eis3SeNAI3FysEMeQ==
X-Received: by 2002:a17:906:fd87:b0:bc3:a0e9:e0c with SMTP id a640c23a62f3a-bc85c2b4e75mr424411766b.13.1778251435016;
        Fri, 08 May 2026 07:43:55 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 12/26] xen/riscv: add basic VGEIN management for AIA guests
Date: Fri,  8 May 2026 16:43:14 +0200
Message-ID: <61291bec7664e780f122ccf438091dfc1aba99e3.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1778251435-84F63D75-58623B76/10/73395122804
X-purgate-type: spam
X-purgate-size: 8137

It was decided to add support for IMSIC from the start instead of having APLIC
operate in direct delivery mode, as it requires a trap-and-emulation approach,
which is not optimal from a performance standpoint.

AIA provides a hardware-accelerated mechanism for delivering external
interrupts to domains via "guest interrupt files" located in IMSIC.
A single physical hart can implement multiple such files (up to GEILEN),
allowing several virtual harts to receive interrupts directly from hardware.

Introduce per-CPU tracking of guest interrupt file identifiers (VGEIN)
for systems implementing AIA specification. Each CPU maintains
a bitmap describing which guest interrupt files are currently in use.

Add helpers to initialize the bitmap based on the number of available
guest interrupt files (GEILEN), assign a VGEIN to a vCPU, and release it
when no longer needed. When assigning a VGEIN, the corresponding value
is written to the VGEIN field of the guest hstatus register so that
VS-level external interrupts are delivered from the selected interrupt
file.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - add static for defintion of vgein_bmp;
 - Drop declarartion of vgein_bmp from aia.h.
 - Move declaration of 'struct vgein_bmp' from aia.h to aia.c as all the
   management is inside aia.c.
 - Instead of decrement of vgein->geilen just update the wait how it is
   initialized.
 - Return -EOPNOTSUPP in vgein_init() instead of BUG_ON().
 - Use %u to print unsigned int.
 - make bmp field in vgein_bmp not a pointer.
 - allocate owners dynamically.
 - Drop unnessary blank lines.
 - use find_first_zero_bit() instead of bitmap_weight() to find a free slot
   for vgein number.
 - Drop the section number for the comment.
 - Start to search from bitnum 1 for free vgein_id, as bitnum 0 is reserved to
   tell that no guest extrenal interrupt number is used. Thereby drop vgein_id++
   at the end of vgein_assign().
 - s/bitmap_set/__set_bit.
 - s/bitmap_clear/__clear_bit.
 - as vgein_init() is needed to be invoked once per CPU being brought up, drop
   __init for it.
 - Return vgein_id == 0 if vgein_id is higher then maximun supported by h/w
   VGEIN.
 - Add check in vgein_relase() that vgein is 0 and if it is there is nothing
   is needed to do.
 - Use gdprintk instead of printk() in vgein_{assign,release}.
 - Add the claryfing comment above geilen field.
 - Drop ASSERT in vgein_assign() and return just vgein_id = 0 in the case when
   there is no aviablable h/w VGEINs.
 - Make vgein_init() static.
---
 xen/arch/riscv/aia.c             | 144 +++++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/aia.h |   8 ++
 2 files changed, 152 insertions(+)

diff --git a/xen/arch/riscv/aia.c b/xen/arch/riscv/aia.c
index f67f422c5a45..f7f44961e0f5 100644
--- a/xen/arch/riscv/aia.c
+++ b/xen/arch/riscv/aia.c
@@ -1,11 +1,33 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bitmap.h>
+#include <xen/cpu.h>
 #include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/sections.h>
+#include <xen/sched.h>
+#include <xen/spinlock.h>
 #include <xen/types.h>
+#include <xen/xvmalloc.h>
 
+#include <asm/aia.h>
 #include <asm/cpufeature.h>
+#include <asm/csr.h>
+#include <asm/current.h>
+
+struct vgein_ctrl {
+    unsigned long bmp;
+    spinlock_t lock;
+    struct vcpu **owners;
+    /* The least-significant bits are implemented first, apart from bit 0 */
+    unsigned int geilen;
+};
+
+/*
+ * Bitmap for each physical cpus to detect which VS (guest)
+ * interrupt file id was used.
+ */
+static DEFINE_PER_CPU(struct vgein_ctrl, vgein);
 
 static bool __ro_after_init is_aia_usable;
 
@@ -14,10 +36,132 @@ bool aia_usable(void)
     return is_aia_usable;
 }
 
+static int vgein_init(unsigned int cpu)
+{
+    struct vgein_ctrl *vgein = &per_cpu(vgein, cpu);
+
+    csr_write(CSR_HGEIE, -1UL);
+    vgein->geilen = flsl(csr_read(CSR_HGEIE) >> 1);
+    csr_write(CSR_HGEIE, 0);
+
+    printk("cpu%d.geilen=%u\n", cpu, vgein->geilen);
+
+    if ( !vgein->geilen )
+        return -EOPNOTSUPP;
+
+    vgein->owners = xvzalloc_array(struct vcpu *, vgein->geilen);
+    if ( !vgein->owners )
+        return -ENOMEM;
+
+    spin_lock_init(&vgein->lock);
+
+    return 0;
+}
+
+static int cf_check cpu_callback(struct notifier_block *nfb, unsigned long action,
+                        void *hcpu)
+{
+    unsigned int cpu = (unsigned long)hcpu;
+    int rc = 0;
+
+    switch ( action )
+    {
+    case CPU_STARTING:
+        rc = vgein_init(cpu);
+        if ( rc )
+            printk("AIA: failed to init vgein for CPU%un", cpu);
+        break;
+    }
+
+    return notifier_from_errno(rc);
+}
+
+static struct notifier_block cpu_nfb = {
+    .notifier_call = cpu_callback,
+};
+
 void __init aia_init(void)
 {
+    int rc;
+
     if ( !riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia) )
+    {
+        dprintk(XENLOG_WARNING, "SSAIA isn't present in riscv,isa\n");
+        return;
+    }
+
+    if ( (rc = vgein_init(0)) )
+    {
+        dprintk(XENLOG_ERR, "vgein_init() failed with rc(%d)\n", rc);
         return;
+    }
 
     is_aia_usable = true;
+
+    register_cpu_notifier(&cpu_nfb);
+}
+
+unsigned int vgein_assign(struct vcpu *v)
+{
+    unsigned int vgein_id;
+    struct vgein_ctrl *vgein = &per_cpu(vgein, v->processor);
+    unsigned long *bmp = &vgein->bmp;
+    unsigned long flags;
+
+    spin_lock_irqsave(&vgein->lock, flags);
+    /*
+     * The vgein_id shouldn't be zero, as it will indicate that no guest
+     * external interrupt source is selected for VS-level external interrupts
+     * according to RISC-V priviliged spec:
+     *   Hypervisor Status Register (hstatus) in RISC-V priviliged spec:
+     *
+     *   The VGEIN (Virtual Guest External Interrupt Number) field selects
+     *   a guest external interrupt source for VS-level external interrupts.
+     *   VGEIN is a WLRL field that must be able to hold values between zero
+     *   and the maximum guest external interrupt number (known as GEILEN),
+     *   inclusive.
+     *   When VGEIN=0, no guest external interrupt source is selected for
+     *   VS-level external interrupts.
+     *
+     * So start to search from bit number 1.
+     */
+    vgein_id = find_next_zero_bit(bmp, vgein->geilen + 1, 1);
+
+    if ( vgein_id > vgein->geilen )
+        vgein_id = 0;
+    else
+        __set_bit(vgein_id, bmp);
+
+    spin_unlock_irqrestore(&vgein->lock, flags);
+
+#ifdef VGEIN_DEBUG
+    gprintk(XENLOG_DEBUG, "%s: %pv: vgein_id(%u), xen_cpu%d_bmp=%#lx\n",
+           __func__, v, vgein_id, v->processor, *bmp);
+#endif
+
+    vcpu_guest_cpu_user_regs(v)->hstatus &= ~HSTATUS_VGEIN;
+    vcpu_guest_cpu_user_regs(v)->hstatus |=
+        MASK_INSR(vgein_id, HSTATUS_VGEIN);
+
+    return vgein_id;
+}
+
+void vgein_release(struct vcpu *v, unsigned int vgen_id)
+{
+    unsigned long flags;
+    struct vgein_ctrl *vgein = &per_cpu(vgein, v->processor);
+
+    if ( !vgen_id )
+        return;
+
+    spin_lock_irqsave(&vgein->lock, flags);
+     __clear_bit(vgen_id, &vgein->bmp);
+    spin_unlock_irqrestore(&vgein->lock, flags);
+
+#ifdef VGEIN_DEBUG
+    gprintk(XENLOG_DEBUG, "%s: vgein_id(%u), xen_cpu%d_bmp=%#lx\n",
+           __func__, vgen_id, v->processor, vgein->bmp);
+#endif
+
+    vcpu_guest_cpu_user_regs(v)->hstatus &= ~HSTATUS_VGEIN;
 }
diff --git a/xen/arch/riscv/include/asm/aia.h b/xen/arch/riscv/include/asm/aia.h
index ca42c3086126..6073c89774bb 100644
--- a/xen/arch/riscv/include/asm/aia.h
+++ b/xen/arch/riscv/include/asm/aia.h
@@ -3,8 +3,16 @@
 #ifndef ASM__RISCV__AIA_H
 #define ASM__RISCV__AIA_H
 
+#include <xen/percpu.h>
+#include <xen/spinlock.h>
+
+struct vcpu;
+
 bool aia_usable(void);
 
 void aia_init(void);
 
+unsigned int vgein_assign(struct vcpu *v);
+void vgein_release(struct vcpu *v, unsigned int vgen_id);
+
 #endif /* ASM__RISCV__ACPI_H */
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:43:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:43:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303757.1577096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQp-000837-Kq; Fri, 08 May 2026 14:43:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303757.1577096; Fri, 08 May 2026 14:43:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQp-00081x-3W; Fri, 08 May 2026 14:43:59 +0000
Received: by outflank-mailman (input) for mailman id 1303757;
 Fri, 08 May 2026 14:43:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQo-0007kt-0g
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:43:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQn-00A90j-DV
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:43:57 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a6-bab6-0a2a0a5309dd-0a2a450581d0-20
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:57 +0200
Received: from [209.85.218.51] (helo=mail-ej1-f51.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6ad-aaa8-0a2a45050019-d155da33c02a-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:57 +0200
Received: by mail-ej1-f51.google.com with SMTP id
 a640c23a62f3a-ba545100a13so360284966b.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:43:57 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251437; x=1778856237; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6MqW7oYxoiwR9Upy+HAuK/pfkhgDIEYHUh/OodAHs5I=;
        b=f2ZT5yfq+epYOENha3RXQUVZ9QozLPuaNWB4SRXAlmnhwOlxHK4Tp6bv4YTMvndzEl
         ljPf6e0x6Vt7xbZFp7UT/u+5pIJ0s0lWjbT91moc7RGjv5mS020EUx8Ap6IBvZXAcGfE
         aPHrT7f0wU3L93AlNFhIddp5DsVlef6Y7P25sPgcP2wKbhqonfx3wJUW+xy0WZcaMr04
         IpEPZNigNEJhIb+wSyUnQPyxNair8KTBk2EZU9qsXdqzIdu6mTRLtr8a1MJI2jZlt3JE
         z4PyWVqgcxlHUR2oCkQJcPlno0ZBxitBnW0cLIJwBgbzSSQ0pAukFZhNfOkFFVMsxsyB
         /lLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251437; x=1778856237;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=6MqW7oYxoiwR9Upy+HAuK/pfkhgDIEYHUh/OodAHs5I=;
        b=exwo9fVKvVo4eYwqSjjFlql6Pk7SZXqJjDI1G80F14C9tXp2KWeF5Wdl6+WbDG+wpf
         abu9hBZ03zODuBGl6dl+4OidpMdA5XanTrdpVPXyfV0D7l4esYZndVLB3rfU5OuAs6vy
         1PtGoYi6pCsauzODMNNvn0Utkn1DG6f/A0Ja2G7WHdcfzJjdwTzgt3Rfyn5Ky19tda6h
         6WfXxfXjmMTdpto2uCeVRkPKeXAzq7wJh8LtsgqsbJYPxTtFRwyJWP6dRKxxq83vVeKW
         0P90J4OpVoxecwZd29MuCsH4QGfd6iAcwiXis8VSfSYuHDO+AIwu8HbNAnARaaBR7GIs
         ubyA==
X-Gm-Message-State: AOJu0YzJVft3vX378F+n5xm9PjeYueDyyM7m6BYrp7KZSgLGmt6KenBm
	u1VPWxj6iLk3Pmd/MBsmxpytwqUhVlYhIVslMcNdR10BdCkABxuirC4wROf4yw==
X-Gm-Gg: Acq92OHyyi38xxW31jF6UorHqWJweFTzHEMXFczFPTuXkXsqLWYZjT7kcU7T7fHuT05
	3LC9+iJLLmPTEAotvdQ3k7CZ6rMPX/niRY710PmkDQMPhOkvnvvpbae3T9zA+d4x6ZEK1aOp8rM
	A1cv1Na3GBMwWqc4gfSDDnLoEC3OHZSoO5jTSWpvCKkojtNVKRYMyUbcMc10LSDmx7YJgpZVcHb
	AyYZUulvz9361qaduO5axc2WXR/7WiwelSGJhpbGL4ruPJHHFtxEgMVcbGICAMJG36hhqL83a9E
	1255hoW9AeY7oh4DLZV984MN0YfFpKulbBFeMyUr1GZQlPX+RKFeqoj4YeA8WkwdN5J9tccY1+Q
	YLsHC4rmtJGyv8F2FefH2O1W7bn8cPR91GuXhG058XXEPLPqHwnD8qp2roibK3i2Bb8+cXD0HRE
	tY5PFOX2E/07NevMKSBsO55+cDudwedb0j3DRJHGfo66snfO6lyZXryezEbhrgN07X+Q==
X-Received: by 2002:a17:907:9495:b0:bc2:7f6a:e4c5 with SMTP id a640c23a62f3a-bc56ce33c23mr724437866b.25.1778251436435;
        Fri, 08 May 2026 07:43:56 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 13/26] xen/riscv: introduce per-vCPU IMSIC state
Date: Fri,  8 May 2026 16:43:15 +0200
Message-ID: <2471b51e89aff30765433d88b1646c5b2c72b5c2.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1778251437-D917D443-B31D0D0C/10/73395122804
X-purgate-type: spam
X-purgate-size: 5109

Each vCPU interacting with the IMSIC requires state to track the
associated guest interrupt file and its backing context.

Introduce a per-vCPU structure to hold IMSIC-related state, including
the guest interrupt file identifier and the CPU providing the backing
VS-file. Access to the guest file identifier is protected by a lock.

Initialize this structure during vCPU setup and store it in arch_vcpu.
The initial state marks the VS-file as software-backed until it becomes
associated with a physical CPU.

Add helpers to retrieve and update the guest interrupt file identifier:
- imsic_set_guest_file_id() is going to be used during vCPU creation to
  initialize IMSIC interrupt controller things for this vCPU.
- vcpu_guest_file_id() is going to be used during update of APLIC's
  target register with the pair of information <guest_file_id, cpu_id>
  (to have MSI delivery mode work properly) when guest is trying to
  access vAPLIC's target register.
It will be used in the follow up patches.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Rename imsic_state to vimsic_state.
 - Use 'unsigned int' for vsfile_pcpu.
 - Drop initialzation of ->guest_file_id as it will be by default zero.
 - Add the comment about ->guest_file_id field.
 - Drop __init for vcpu_imsic_init() as it could be used during post-boot
   vCPU creation.
 - Update the commit message.
 - Drop locks around ->guest_file_id() in  vcpu_guest_file_id() and imsic_set_guest_file_id().
---
 xen/arch/riscv/imsic.c              | 35 +++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/domain.h |  2 ++
 xen/arch/riscv/include/asm/imsic.h  | 23 +++++++++++++++++++
 3 files changed, 60 insertions(+)

diff --git a/xen/arch/riscv/imsic.c b/xen/arch/riscv/imsic.c
index a4460576f620..8b46419ca23b 100644
--- a/xen/arch/riscv/imsic.c
+++ b/xen/arch/riscv/imsic.c
@@ -16,6 +16,7 @@
 #include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/macros.h>
+#include <xen/sched.h>
 #include <xen/smp.h>
 #include <xen/spinlock.h>
 #include <xen/xvmalloc.h>
@@ -56,6 +57,16 @@ do {                            \
     csr_clear(CSR_SIREG, v);    \
 } while (0)
 
+unsigned int vcpu_guest_file_id(const struct vcpu *v)
+{
+    return ACCESS_ONCE(v->arch.vimsic_state->guest_file_id);
+}
+
+void imsic_set_guest_file_id(const struct vcpu *v, unsigned int guest_file_id)
+{
+    ACCESS_ONCE(v->arch.vimsic_state->guest_file_id) = guest_file_id;
+}
+
 void __init imsic_ids_local_delivery(bool enable)
 {
     if ( enable )
@@ -312,6 +323,30 @@ static int imsic_parse_node(const struct dt_device_node *node,
     return 0;
 }
 
+int vcpu_imsic_init(struct vcpu *v)
+{
+    struct vimsic_state *imsic_state;
+
+    /* Allocate IMSIC context */
+    imsic_state = xvzalloc(struct vimsic_state);
+    if ( !imsic_state )
+        return -ENOMEM;
+
+    v->arch.vimsic_state = imsic_state;
+
+    /* Setup IMSIC context  */
+    rwlock_init(&imsic_state->vsfile_lock);
+
+    imsic_state->vsfile_pcpu = NR_CPUS;
+
+    return 0;
+}
+
+void vcpu_imsic_deinit(const struct vcpu *v)
+{
+    xvfree(v->arch.vimsic_state);
+}
+
 /*
  * Initialize the imsic_cfg structure based on the IMSIC DT node.
  *
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 136d9e816a44..42c1db91bd86 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -54,6 +54,8 @@ struct arch_vcpu {
 
     struct vtimer vtimer;
 
+    struct vimsic_state *vimsic_state;
+
     register_t hcounteren;
     register_t hedeleg;
     register_t hideleg;
diff --git a/xen/arch/riscv/include/asm/imsic.h b/xen/arch/riscv/include/asm/imsic.h
index c6c59215df20..2b84824cd377 100644
--- a/xen/arch/riscv/include/asm/imsic.h
+++ b/xen/arch/riscv/include/asm/imsic.h
@@ -11,6 +11,7 @@
 #ifndef ASM_RISCV_IMSIC_H
 #define ASM_RISCV_IMSIC_H
 
+#include <xen/rwlock.h>
 #include <xen/spinlock.h>
 #include <xen/stdbool.h>
 #include <xen/types.h>
@@ -61,7 +62,24 @@ struct imsic_config {
     spinlock_t lock;
 };
 
+struct vimsic_state {
+    /* IMSIC VS-file */
+    rwlock_t vsfile_lock;
+    /*
+     * (guest_file_id == 0) -> s/w IMSIC SW-file
+     * (guest_file_id > 0) -> h/w IMSIC VS-file
+     */
+    unsigned int guest_file_id;
+    /*
+     * (vsfile_pcpu >= 0) => h/w IMSIC VS-file
+     * (vsfile_pcpu == NR_CPUS) => s/w IMSIC SW-file
+     */
+    unsigned int vsfile_pcpu;
+};
+
 struct dt_device_node;
+struct vcpu;
+
 int imsic_init(const struct dt_device_node *node);
 
 const struct imsic_config *imsic_get_config(void);
@@ -71,4 +89,9 @@ void imsic_irq_disable(unsigned int hwirq);
 
 void imsic_ids_local_delivery(bool enable);
 
+int vcpu_imsic_init(struct vcpu *v);
+void vcpu_imsic_deinit(const struct vcpu *v);
+unsigned int vcpu_guest_file_id(const struct vcpu *v);
+void imsic_set_guest_file_id(const struct vcpu *v, unsigned int guest_file_id);
+
 #endif /* ASM_RISCV_IMSIC_H */
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:44:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:44:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303761.1577105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQs-00009F-A6; Fri, 08 May 2026 14:44:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303761.1577105; Fri, 08 May 2026 14:44:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQr-00005V-Fo; Fri, 08 May 2026 14:44:01 +0000
Received: by outflank-mailman (input) for mailman id 1303761;
 Fri, 08 May 2026 14:44:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQp-00085T-OD
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:43:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQn-00EphB-GZ
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:43:59 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a1-e002-0a2a0a5209dd-0a2a4507ac04-26
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:58 +0200
Received: from [209.85.208.52] (helo=mail-ed1-f52.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6ae-229c-0a2a45070019-d155d034b498-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:43:58 +0200
Received: by mail-ed1-f52.google.com with SMTP id
 4fb4d7f45d1cf-67e43a8996fso2007413a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:43:58 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251438; x=1778856238; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4Y3wyFh809LwLfmzoza0kbwPpO/WboEnvN0kZbUKjhY=;
        b=DOT+I7UNBTFPwVkGGvfhYfPWCZeadFdCYE15d+A1mYSSt7D3N6+oZIsNUa/1Ac/ZGS
         YKPHwgk8gbWGp9LV3Iqn+16dIKzsofqnT3o05p7m3QoYkhjDYHsklwpd63Y4wcKMe3Mj
         ZwEPGNLBfPpcDwaBUOal+It8yCe5Z8SH1XM0K516IdO7mb2oARA2AffEaEcDt2T/JpLw
         R64UUsBYte8V8wxGHUib7PKpfs5RO8eVoMUm/cN+SOC0H+pPVz+pWMLeNky9wCLsRzh6
         sjN35//2bdZFPL34n/OpaDFxC85ukB7KoG/jraxfm5w7Xino2LlJBpIhqsJsc5/AElve
         RRhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251438; x=1778856238;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=4Y3wyFh809LwLfmzoza0kbwPpO/WboEnvN0kZbUKjhY=;
        b=Iy+80TsBdpHL8JvZn6nCdykA2wXw34coK2n8z5IcA14ukoVk1R5l3u7i7IaUupakSg
         jbOdtCw3xnFlcYgBcSWyYCqmZgzTiW06513SlPmt15HhZm3TT5ekvfaCW9jqQ7nUT1Im
         0PqeXA+IhMXmQqG/yWQuiO0qbXJ/zYege7YuPsMpIQV+aFVKgQXkQOsUhRYkJxZKCIRj
         QQsbYqr8HBs15U6A+xRNugNBelUsG2G7HEJ/D7Hshtxfxc5Lgx5GD1b9d5tkA2pGGmwX
         2aOMRpM+a2NulSuOPsfdIBCkj6mevg3/VSf37YXY6a4YXTBhRBBPQapXYofLna2c9s2I
         R6GA==
X-Gm-Message-State: AOJu0YwaGmYh7QHEPMO0kgCh/vplVijHMRqsIJUMFBU71ksvH88sXujs
	f9ELPmjAnyr7pOcNfd/5qz7sYWGmXpB3lB0uWlBD6MMFX4LNcc+g/YpmBt6asA==
X-Gm-Gg: AeBDiev+beMyKX1Bt/WbalhmAAfNFOrQeGfaj64W0GaXAbAlOKx26dRlKnj/rM6gJY7
	WnevXLsCSof+xwyPkKB9ixVbpWT9bOJRjdl+zxskhBR7CUSkalg2q6HudNpnUZCTeYiqeMeuxiO
	2B970wn7JF2DODqZzvw3EOFtq7ef6JguakkZjiptAkYlRUbWmCDPCZHKpWZN0P0HgbyaUPdfnNv
	wcULa7411GfZHQwHHsVpnTSoTb9SrE7VmZBUhs8F7AV7tYl7xX7W7gsb6TOf7w0WMjRacjEwngu
	+g4y6fpsqMSY6/s54adnG7BfXHqYo8T9APkn67vsluKcKnHuHSxOJdkIUr8n4A0EtOf1sB6W+j4
	/ospAF+StQLA9qcwWDzpxZUIGOXBZIxTqdoZsQO5jEbDNlufOTyjriKXC6XpIF9GH65nqU61Pvr
	XdrLmVczO6d/LdjxHG6UPW5OXeVifqfwI6MJKOKZBWhVWAs5axvFXkNwX56TeQxWXpJ4tvD7LyG
	m54
X-Received: by 2002:a17:907:c298:b0:bc4:a75e:1abb with SMTP id a640c23a62f3a-bc56cc2c06bmr790256166b.21.1778251437856;
        Fri, 08 May 2026 07:43:57 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 14/26] xen/riscv: add very early virtual APLIC (vAPLIC) initialization support
Date: Fri,  8 May 2026 16:43:16 +0200
Message-ID: <220cf09814744b8b8136b1e3c35ab982226d3f6f.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1778251438-0AD77C48-834605D1/10/73395122804
X-purgate-type: spam
X-purgate-size: 9408

At the current development stage, only domain vINTC init and deinit
operations are required, so implement those first.

Initialize vAPLIC's domaincfg to with the interrupt-enable bit set and
MSI delivery mode selected as the current solution is exepcted to have
always IMSIC, and initialize vintc->ops.

Other operations such as emulate_load(), emulate_store(), and is_access()
will be needed once guests are running and MMIO accesses to APLIC MMIO
range must be handled. These will be introduced separately later.

Introduce a structure to describe a virtual interrupt controller (vINTC)
and a vintc_ops structure, which provides operations to emulate load and
store accesses to interrupt controller MMIOs and to check whether a given
address falls within the MMIO range of a specific virtual interrupt
controller.

The vAPLIC implementation of these operations will be provided later
once guests can be run and these operations are actually needed.

Introduce these structures here as they are required for the implementation
of domain_vaplic_init() and domain_vaplic_alloc(). Also, introduce
vcpu_vaplic_init() and init vintc_ops->vcpu_init() with it.

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - s/vcpu/v for function arguments in struct vintc_ops().
 - Update the comment above is_access() and drop const for addr argument.
 - Update to_vaplic() to work with 'struct domain *'.
 - Drop smsiaddrcfg{h} from vaplic_regs struct as they aren't used for now.
 - Drop inclusion of xen/schec.h from intc.c.
 - use result of xvzalloc() as initializer in vpalic_alloc().
 - Drop goto in domain_vaplic_init().
 - s/XVFREE/xvfree.
 - s/aplic/vintc.
 - Drop __init for vcpu_vaplic_init() as it could be called for secondary CPU bring up.
 - Drop vaplic_alloc().
 - Drop vintc_ops struct, embed callbacks iniside struct vintc.
 - Introduce and init vintc irqs for vAPLIC.
 - Introduce intc_irq_nums() to properly initialize number of vAPLIC's irqs.
---
 xen/arch/riscv/Makefile             |  1 +
 xen/arch/riscv/aplic.c              |  6 +++
 xen/arch/riscv/domain.c             | 13 ++---
 xen/arch/riscv/include/asm/intc.h   | 17 ++++++-
 xen/arch/riscv/include/asm/vaplic.h | 34 +++++++++++++
 xen/arch/riscv/intc.c               |  7 +++
 xen/arch/riscv/vaplic.c             | 78 +++++++++++++++++++++++++++++
 7 files changed, 147 insertions(+), 9 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/vaplic.h
 create mode 100644 xen/arch/riscv/vaplic.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 9df8b72b5494..9d8d21b65188 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -25,6 +25,7 @@ obj-y += smpboot.o
 obj-y += stubs.o
 obj-y += time.o
 obj-y += traps.o
+obj-y += vaplic.o
 obj-y += vmid.o
 obj-y += vm_event.o
 obj-y += vsbi/
diff --git a/xen/arch/riscv/aplic.c b/xen/arch/riscv/aplic.c
index 97dc0ef731f0..aba9f3945236 100644
--- a/xen/arch/riscv/aplic.c
+++ b/xen/arch/riscv/aplic.c
@@ -295,6 +295,11 @@ static void cf_check aplic_set_irq_type(struct irq_desc *desc,
     spin_unlock(&aplic.lock);
 }
 
+static unsigned int cf_check aplic_irq_num(void)
+{
+    return aplic_info.num_irqs;
+}
+
 static const hw_irq_controller aplic_xen_irq_type = {
     .typename     = "aplic",
     .startup      = aplic_irq_startup,
@@ -309,6 +314,7 @@ static const struct intc_hw_operations aplic_ops = {
     .host_irq_type       = &aplic_xen_irq_type,
     .handle_interrupt    = aplic_handle_interrupt,
     .set_irq_type        = aplic_set_irq_type,
+    .irq_nums            = aplic_irq_num,
 };
 
 static const struct intc_hw_init_ops __initdata aplic_init_ops = {
diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 041aed176f32..7aa00d6cfd95 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -11,6 +11,7 @@
 #include <asm/bitops.h>
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
+#include <asm/intc.h>
 #include <asm/riscv_encoding.h>
 #include <asm/vtimer.h>
 
@@ -155,14 +156,10 @@ int arch_vcpu_create(struct vcpu *v)
     if ( (rc = vcpu_vtimer_init(v)) )
         goto fail;
 
-    /*
-     * As interrupt controller (IC) is not yet implemented,
-     * return an error.
-     *
-     * TODO: Drop this once IC is implemented.
-     */
-    rc = -EOPNOTSUPP;
-    goto fail;
+    ASSERT(v->domain->arch.vintc->ops->vcpu_init);
+
+    if ( (rc = v->domain->arch.vintc->ops->vcpu_init(v)) )
+        goto fail;
 
     return rc;
 
diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index 70df461a2a51..3b30d000066a 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -15,6 +15,7 @@ enum intc_version {
 struct cpu_user_regs;
 struct irq_desc;
 struct kernel_info;
+struct vcpu;
 
 struct intc_info {
     enum intc_version hw_version;
@@ -38,6 +39,8 @@ struct intc_hw_operations {
 
     /* handle external interrupt */
     void (*handle_interrupt)(struct cpu_user_regs *regs);
+
+    unsigned int (*irq_nums)(void);
 };
 
 struct intc_hw_init_ops {
@@ -50,8 +53,18 @@ struct vintc_init_ops {
     int (*make_domu_dt_node)(struct kernel_info *kinfo);
 };
 
+struct vintc_ops {
+    /* Initialize some vINTC-related stuff for a vCPU */
+    int (*vcpu_init)(struct vcpu *v);
+
+    /* Check if a address is virtual interrupt controller MMIO */
+    int (*is_access)(const struct vcpu *v, unsigned long addr);
+};
+
 struct vintc {
-    struct vintc_init_ops *init_ops;
+    unsigned int irq_nums;
+    const struct vintc_init_ops *init_ops;
+    const struct vintc_ops *ops;
 };
 
 void intc_preinit(void);
@@ -65,4 +78,6 @@ void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority);
 
 void intc_handle_external_irqs(struct cpu_user_regs *regs);
 
+unsigned int intc_irq_nums(void);
+
 #endif /* ASM__RISCV__INTERRUPT_CONTOLLER_H */
diff --git a/xen/arch/riscv/include/asm/vaplic.h b/xen/arch/riscv/include/asm/vaplic.h
new file mode 100644
index 000000000000..630ca14657f2
--- /dev/null
+++ b/xen/arch/riscv/include/asm/vaplic.h
@@ -0,0 +1,34 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * xen/arch/riscv/vaplic.c
+ *
+ * Virtual RISC-V Advanced Platform-Level Interrupt Controller support
+ *
+ * Copyright (c) Microchip.
+ */
+
+#ifndef ASM__RISCV__VAPLIC_H
+#define ASM__RISCV__VAPLIC_H
+
+#include <xen/kernel.h>
+#include <xen/types.h>
+
+#include <asm/intc.h>
+
+struct domain;
+
+#define to_vaplic(d) container_of(d->arch.vintc, struct vaplic, vintc)
+
+struct vaplic_regs {
+    uint32_t domaincfg;
+};
+
+struct vaplic {
+    struct vintc vintc;
+    struct vaplic_regs regs;
+};
+
+int domain_vaplic_init(struct domain *d);
+void domain_vaplic_deinit(struct domain *d);
+
+#endif /* ASM__RISCV__VAPLIC_H */
diff --git a/xen/arch/riscv/intc.c b/xen/arch/riscv/intc.c
index a611c9dc5f32..122adf78a391 100644
--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -78,6 +78,13 @@ void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
     intc_set_irq_priority(desc, priority);
 }
 
+unsigned int intc_irq_nums(void)
+{
+    ASSERT(intc_hw_ops && intc_hw_ops->irq_nums);
+
+    return intc_hw_ops->irq_nums();
+}
+
 int __init make_intc_domU_node(struct kernel_info *kinfo)
 {
     struct vintc *vintc = kinfo->bd.d->arch.vintc;
diff --git a/xen/arch/riscv/vaplic.c b/xen/arch/riscv/vaplic.c
new file mode 100644
index 000000000000..d2ec196668bc
--- /dev/null
+++ b/xen/arch/riscv/vaplic.c
@@ -0,0 +1,78 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * xen/arch/riscv/vaplic.c
+ *
+ * Virtual RISC-V Advanced Platform-Level Interrupt Controller support
+ *
+ * Copyright (c) Microchip.
+ * Copyright (c) Vates
+ */
+
+#include <xen/errno.h>
+#include <xen/sched.h>
+#include <xen/xvmalloc.h>
+
+#include <asm/aia.h>
+#include <asm/imsic.h>
+#include <asm/intc.h>
+#include <asm/vaplic.h>
+
+#include "aplic-priv.h"
+
+#define VAPLIC_NUM_SOURCES 96
+
+static int cf_check vcpu_vaplic_init(struct vcpu *v)
+{
+    int rc = 0;
+    unsigned int vgein_id;
+
+    rc = vcpu_imsic_init(v);
+    if ( rc )
+        return rc;
+
+    if ( !(vgein_id = vgein_assign(v)) )
+    {
+        printk("Software interrupt files aren't supported\n");
+        rc = -EOPNOTSUPP;
+        goto fail;
+    }
+
+    imsic_set_guest_file_id(v, vgein_id);
+
+    return rc;
+
+ fail:
+    vcpu_imsic_deinit(v);
+
+    return rc;
+}
+
+static const struct vintc_ops vintc_ops = {
+    .vcpu_init = vcpu_vaplic_init,
+};
+
+int __init domain_vaplic_init(struct domain *d)
+{
+    struct vaplic *vaplic = xvzalloc(struct vaplic);
+
+    if ( !vaplic )
+        return -ENOMEM;
+
+    d->arch.vintc = &vaplic->vintc;
+    d->arch.vintc->ops = &vintc_ops;
+
+    vaplic->regs.domaincfg = APLIC_DOMAINCFG_IE | APLIC_DOMAINCFG_DM;
+
+    d->arch.vintc->irq_nums = min(intc_irq_nums(),
+                                  VAPLIC_NUM_SOURCES + 0U);
+
+
+    return 0;
+}
+
+void __init domain_vaplic_deinit(struct domain *d)
+{
+    struct vaplic *vaplic = to_vaplic(d);
+
+    xvfree(vaplic);
+}
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:44:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:44:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303766.1577114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQu-0000hH-LE; Fri, 08 May 2026 14:44:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303766.1577114; Fri, 08 May 2026 14:44:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQu-0000fP-Am; Fri, 08 May 2026 14:44:04 +0000
Received: by outflank-mailman (input) for mailman id 1303766;
 Fri, 08 May 2026 14:44:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQr-0008UU-Bs
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:44:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQq-00A90j-Oj
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:44:00 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a1-bab6-0a2a0a5309dd-0a2a450ad498-34
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:00 +0200
Received: from [209.85.218.45] (helo=mail-ej1-f45.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6b0-56b3-0a2a450a0019-d155da2dd564-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:00 +0200
Received: by mail-ej1-f45.google.com with SMTP id
 a640c23a62f3a-b9358dd7f79so346790766b.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:44:00 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:43:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251439; x=1778856239; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gf0PN9PpYiXbtYRSRq7xGC31fGLLdoz6at7ycs7iR6U=;
        b=G/RSBu+uCm5kZrPRB9rnDa8dxzQY7sJTXjHplcmS3/9KGUdqV4oZKZEfaR4MsfNBJP
         NCgtI5FzNEWntrP4EQa9ntQB0D70Ic3Z03CKAVhK6Ui6KokW9au8bLvVwwbUWTiy4qJS
         ulMxmaBwQUvbyqfvc662r2rldz7qUmNSa0S3zQJjeJHc3HPCu9zI3bhon5wj9xktpU8n
         KwjpWDy5OC4yX+ZMvehlwm6VdxCYjaHT2i09ACL5MwYVdbyVXzHsdSXkR/zvz/3Xisoo
         uD7EGpznJk91QqSHJqWr8ZeD1fScZwjwgykPeMn+OJ6FRJPzudygvxscgOsMDXV6mYUC
         V+Yg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251439; x=1778856239;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=gf0PN9PpYiXbtYRSRq7xGC31fGLLdoz6at7ycs7iR6U=;
        b=H3CxaYnvzNkW3XfK/VvENlx9YYZ8d+QBQoqx9vUu+DyifT+QKb4N6BpeH/TecdmE6a
         b2Z0B7r+FvUBdli99BtOmx6Ic4YR/erni0DjFi+XLsuZbuPjZAcdM0wZlSuq++5SZ3x1
         dODHAwgDeZZn8xB0MmBqyGl1fEIvTfbVmgZa/3uIFGsV/f4sU9DQMI00Oi9qKOOZjX8c
         XUYlwKjwXGvgvU/pnJ6z2146wzEN+x1GDHV2QTxAGFLWOnMjMqj/7/55jNadfjFKjerv
         U7ja4Q0g5zzOLcK2EnF59NsQkggyuSTthqTjMxuMdmZLmpVTem0Hq+auvFGZp/LJ8ye/
         gkSQ==
X-Gm-Message-State: AOJu0YxhXp2xNN0IbMl0KyRXu0liwmlOVM27qq64aPoPM9Px6swfQVI1
	jhNurpci58Ns7TOoJsFHubxhhnNE/MnaGTLbiVSy6Q7NBuLwICw5Iveg+LfhRA==
X-Gm-Gg: AeBDiesVlXK0fAf8dN2hHYfFDnLQgSu6Wnu/OVicyXS9KVhTwoKcZCNG4Ybs+ahFkhM
	k36r13GQ+tAMdVHJucevWvmau+FJVUcdxIiHB/fIrVD1hF1sHEhX+hgurN4Ye1SNv8+7kGJ+p04
	V50Ypk9vQefSCTojm8qXTxFKASFryrM57uicEhFB9mDM+tPRRgp85HGHJRGHsWgIjT8IskZkw1j
	edgeV9+ksJM29je6gPQG5R/raub8WaBWtISAvd4BO2BKjTRLtsPTlzV7bdiDgNQ0CSXhWvEuhbJ
	7KJCpmgFlqncF/ft8svBhWUJao7Omxj3ZyT9kZWVv23AjmtcC/p5E8tZsuMMHBhk3YqO/gEL3np
	H8KIdzCuqMG5vVAzQAXXJVv8VVfOtI4sRGmPQT3WoWoG34lInSt+Xp/Bo3TThAuOKRQwVFX+MWN
	g69kqi5Ig2j6CW7aWXycSS3CZ5TGgFolmg6tELfg3+C1njRzDjYnJKDarJUeZPogHCjw==
X-Received: by 2002:a17:906:ee8a:b0:bc6:92e5:818a with SMTP id a640c23a62f3a-bc692e5827amr609579166b.21.1778251439207;
        Fri, 08 May 2026 07:43:59 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 15/26] xen/riscv: introduce (de)initialization helpers for vINTC
Date: Fri,  8 May 2026 16:43:17 +0200
Message-ID: <fc5560cd49a2b952ce7724c23e41da3368833d9f.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778251440-73F798B7-DD593986/10/73395122804
X-purgate-type: spam
X-purgate-size: 2725

Add common helpers domain_vintc_init() and domain_vintc_deinit() to
allocate and deallocate a virtual interrupt controller (vINTC)
structure and initialize basic virtual interrupt controller registers.

domain_vintc_deinit() isn't called at the momemnt as arch_domain_destroy()
is implemented as stub at the moment.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Drop __init for domain_vintc_(de)init().
 - Update the commit message.
---
 xen/arch/riscv/domain.c           |  3 +++
 xen/arch/riscv/include/asm/intc.h |  3 +++
 xen/arch/riscv/intc.c             | 36 +++++++++++++++++++++++++++++++
 3 files changed, 42 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 7aa00d6cfd95..6de5b82b3724 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -306,6 +306,9 @@ int arch_domain_create(struct domain *d,
     if ( (rc = p2m_init(d, config)) != 0)
         goto fail;
 
+    if ( (rc = domain_vintc_init(d)) )
+        goto fail;
+
     return rc;
 
  fail:
diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index 3b30d000066a..89a9c6806e55 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -80,4 +80,7 @@ void intc_handle_external_irqs(struct cpu_user_regs *regs);
 
 unsigned int intc_irq_nums(void);
 
+int domain_vintc_init(struct domain *d);
+void domain_vintc_deinit(struct domain *d);
+
 #endif /* ASM__RISCV__INTERRUPT_CONTOLLER_H */
diff --git a/xen/arch/riscv/intc.c b/xen/arch/riscv/intc.c
index 122adf78a391..7f9850416bb4 100644
--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -11,6 +11,7 @@
 
 #include <asm/aia.h>
 #include <asm/intc.h>
+#include <asm/vaplic.h>
 
 static const struct intc_hw_operations *__ro_after_init intc_hw_ops;
 
@@ -94,3 +95,38 @@ int __init make_intc_domU_node(struct kernel_info *kinfo)
 
     return -EOPNOTSUPP;
 }
+
+int domain_vintc_init(struct domain *d)
+{
+    int ret = -EOPNOTSUPP;
+    const enum intc_version ver = intc_hw_ops->info->hw_version;
+
+    switch ( ver )
+    {
+    case INTC_APLIC:
+        ret = domain_vaplic_init(d);
+        break;
+
+    default:
+        printk("vintc (ver:%d) isn't implemented\n", ver);
+        break;
+    }
+
+    return ret;
+}
+
+void domain_vintc_deinit(struct domain *d)
+{
+    const enum intc_version ver = intc_hw_ops->info->hw_version;
+
+    switch ( ver )
+    {
+    case INTC_APLIC:
+        domain_vaplic_deinit(d);
+        break;
+
+    default:
+        printk("vintc (ver:%d) isn't implemented\n", ver);
+        break;
+    }
+}
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:44:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:44:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303771.1577120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQv-0000vs-W1; Fri, 08 May 2026 14:44:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303771.1577120; Fri, 08 May 2026 14:44:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQv-0000rx-98; Fri, 08 May 2026 14:44:05 +0000
Received: by outflank-mailman (input) for mailman id 1303771;
 Fri, 08 May 2026 14:44:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQs-0000CP-8H
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:44:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQq-00EpjT-2x
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:44:01 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6ae-5cb7-0a2a0a5109dd-0a2a45048fc2-6
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:01 +0200
Received: from [209.85.218.44] (helo=mail-ej1-f44.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6b1-1dec-0a2a45040019-d155da2ca595-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:01 +0200
Received: by mail-ej1-f44.google.com with SMTP id
 a640c23a62f3a-bc23bebd345so31342266b.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:44:01 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.43.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:44:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251441; x=1778856241; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sJgcbaZaXFB0dLYekd715MJ/zMchLKXDN0/D0Xu69Sc=;
        b=q8khQGGcXsdPCPAm5C3SRMtpdqUnoDAq10ucq+AJ4fL23SZ+NR7OwWb8W7XYk4tDlO
         xigIB0my7Lct5BkORRdrtDEgdTqR8/RlHIbTWP10E3M5ajtnlgvQMMkilwBtW/3s2Si5
         rePktaLcgOvX3wK2tISVwY3PfOxcgir25eyiwqn7X2AxKs3LQX/zRIrpv2zS3eDTPgOk
         J7Ilp0SEwes63C1VlTqcgFFu2/QjuLeNmz/BtGe4vtYg1W0MXCoOlnO0Nm24neQjcaNg
         8juiSXdkQNRJcYjFAQDOxvFyaM2ZmPFNgvP979iDoDRTv0ACLZuHZ4Ved/3tYEsGVJIA
         cQnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251441; x=1778856241;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=sJgcbaZaXFB0dLYekd715MJ/zMchLKXDN0/D0Xu69Sc=;
        b=V/imjLQNKMgSNXjKpBnk8ByS4E6Zb2vLGj3bi7g2lGrxd5oeIBQ2Add8ynwQVoMTMI
         L0u55ZLkx+IXJjaaz+ScG+rJt3Zd0axlnMHHnsEkyiY0/TX4aq9tYOxbfbFDzoCnDJJa
         KPrx+pzC4rvzv1cXXLQcQQHMU9LiO4mpr0St5XMcu/OWHhHdktu9oCF3WzT9en+wWo5s
         n7+6nnS7hleHCWwAootDpw+qoX9P19ZqGEPs4De8k1xSVr7uFfgDzAZQ8L+AacM7bCqI
         U6cRX7uThiacJkzhgoV9NCvLwOsjHAkPUxahmesPp06mbo9peJRoliERzhoZ1IA0u7DN
         Et9g==
X-Gm-Message-State: AOJu0YxSzyjOml+7uSIJpCjRuUZfX9CELTJLFSQTGyEyygwjBE3ACOnA
	RKhE2xkuNP1JOV9UJ+5uWv4X/Aem47jng2zxEbgAStND5yDe2aOJz9jjJt/CYw==
X-Gm-Gg: AeBDiesEtacOxV+dkcZasLpemFMMuMbLbh9g/fs1NjSILvPlWY+jS3cEj+R6SMdYnf6
	FECP4vA9KRMB0IDivb5kJhX2gdcIMyHWUpPZc5pUcVL0t9LSIskLX2XoIsKjFLaSgqintybLkMj
	SRgA7FgkdbfZtkmK25wdAyGYYz37iyiKcDKgmqRRawWWKXV4Eid4lxjJsboLJePg08AFL9uMUdX
	MvYtYmvrbMIIDVB0XkSnVYdGN8IdwVOaiz36EFUW60vM8fdmtcQOx6nd/ZJn1xbYaKZdre2TUCn
	E66Q7/5hIQlnHksYVr29LGcgv9qMZVCxWlRiOM/lIvgoUOyhZeVUVpfSTk/yfom45uD2vRMUqDZ
	vLmDc1yhJp27Ek3XYouV6f4zlJwDVEiIcDwxwquGlrpg9ovuhaLhcUm/OiZCic5QizgfnoMJ0UQ
	9yF0r/dgDgll85wGwLyNZ+mGYwVO7no3tekv/mX1O1olQozWnVTLsPt4ps5IyuSB9Ahg==
X-Received: by 2002:a17:907:26c4:b0:bc2:c99f:fb22 with SMTP id a640c23a62f3a-bc84cc7300emr434513366b.2.1778251440590;
        Fri, 08 May 2026 07:44:00 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 16/26] xen/riscv: create APLIC DT node for guest domains
Date: Fri,  8 May 2026 16:43:18 +0200
Message-ID: <d1377f3e2381a6428b558b54f47db342d0cd5503.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1778251441-2997A3FF-93BDCA80/10/73395122804
X-purgate-type: spam
X-purgate-size: 7708

Guests require a Device Tree description of the interrupt controller
topology. Add support for creating an APLIC node when building the
guest DT.

Provide stub for imsic_make_dt_node() it will be introduced properly
in follow-up patch.

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Avoid as max as possible of host properties inheritance. Only number of
   APLIC's irqs are checked what leads to an introduction of
   get_aplic_irqs_num().
 - Move this patch earlier what leads to an introduction of
   vimsic_make_domu_dt_node() stub.
 - s/vimsic_make_domu_dt_node/imsic_make_domu_dt_node.
 - Refactor vimsic_make_domu_dt_node() to avoid re-usage of APLIC host
   properties.
 - Drop next_phandle as it is now in common code.
 - Drop const for kinfo argument of vimsic_make_domu_dt_node() is is
   going to be updated inside vimsic_make_domu_dt_node().
 - Use introduced before vintc->num_irqs.
---
 xen/arch/riscv/aplic.c                    |  2 +
 xen/arch/riscv/imsic.c                    |  7 +++
 xen/arch/riscv/include/asm/aplic.h        |  9 +++
 xen/arch/riscv/include/asm/guest-layout.h |  2 +
 xen/arch/riscv/include/asm/imsic.h        |  3 +
 xen/arch/riscv/vaplic.c                   | 77 ++++++++++++++++++++++-
 6 files changed, 98 insertions(+), 2 deletions(-)

diff --git a/xen/arch/riscv/aplic.c b/xen/arch/riscv/aplic.c
index aba9f3945236..6ed9118485f3 100644
--- a/xen/arch/riscv/aplic.c
+++ b/xen/arch/riscv/aplic.c
@@ -12,8 +12,10 @@
 #include <xen/const.h>
 #include <xen/device_tree.h>
 #include <xen/errno.h>
+#include <xen/fdt-kernel.h>
 #include <xen/init.h>
 #include <xen/irq.h>
+#include <xen/libfdt/libfdt.h>
 #include <xen/mm.h>
 #include <xen/sections.h>
 #include <xen/spinlock.h>
diff --git a/xen/arch/riscv/imsic.c b/xen/arch/riscv/imsic.c
index 8b46419ca23b..ceea6778d9dc 100644
--- a/xen/arch/riscv/imsic.c
+++ b/xen/arch/riscv/imsic.c
@@ -14,6 +14,7 @@
 #include <xen/cpumask.h>
 #include <xen/device_tree.h>
 #include <xen/errno.h>
+#include <xen/fdt-kernel.h>
 #include <xen/init.h>
 #include <xen/macros.h>
 #include <xen/sched.h>
@@ -522,3 +523,9 @@ int __init imsic_init(const struct dt_device_node *node)
 
     return rc;
 }
+
+int __init vimsic_make_domu_dt_node(struct kernel_info *kinfo,
+                                    unsigned int *phandle)
+{
+    return -EOPNOTSUPP;
+}
diff --git a/xen/arch/riscv/include/asm/aplic.h b/xen/arch/riscv/include/asm/aplic.h
index b0724fe6f360..b42b159496b8 100644
--- a/xen/arch/riscv/include/asm/aplic.h
+++ b/xen/arch/riscv/include/asm/aplic.h
@@ -15,6 +15,7 @@
 
 #include <asm/imsic.h>
 
+#define APLIC_DOMAINCFG_RO80    (0x80U << 24)
 #define APLIC_DOMAINCFG_IE      BIT(8, U)
 #define APLIC_DOMAINCFG_DM      BIT(2, U)
 
@@ -27,6 +28,14 @@
 
 #define APLIC_TARGET_HART_IDX_SHIFT 18
 
+#define APLIC_IDC_SIZE          32
+
+#define APLIC_MIN_SIZE          0x4000
+#define APLIC_SIZE_ALIGN(x)     ROUNDUP(x, APLIC_MIN_SIZE)
+
+#define APLIC_SIZE(nr_cpus)     (APLIC_MIN_SIZE + \
+                                 APLIC_SIZE_ALIGN(APLIC_IDC_SIZE * (nr_cpus)))
+
 struct aplic_regs {
     uint32_t domaincfg;         /* 0x0000 */
     uint32_t sourcecfg[1023];   /* 0x0004 */
diff --git a/xen/arch/riscv/include/asm/guest-layout.h b/xen/arch/riscv/include/asm/guest-layout.h
index 68d95a09394c..9fc990c057f2 100644
--- a/xen/arch/riscv/include/asm/guest-layout.h
+++ b/xen/arch/riscv/include/asm/guest-layout.h
@@ -3,6 +3,8 @@
 
 #include <public/xen.h>
 
+#define GUEST_APLIC_S_BASE 0xd000000
+
 #define GUEST_RAM_BANKS   2
 
 /*
diff --git a/xen/arch/riscv/include/asm/imsic.h b/xen/arch/riscv/include/asm/imsic.h
index 2b84824cd377..604f88db9322 100644
--- a/xen/arch/riscv/include/asm/imsic.h
+++ b/xen/arch/riscv/include/asm/imsic.h
@@ -78,6 +78,7 @@ struct vimsic_state {
 };
 
 struct dt_device_node;
+struct kernel_info;
 struct vcpu;
 
 int imsic_init(const struct dt_device_node *node);
@@ -94,4 +95,6 @@ void vcpu_imsic_deinit(const struct vcpu *v);
 unsigned int vcpu_guest_file_id(const struct vcpu *v);
 void imsic_set_guest_file_id(const struct vcpu *v, unsigned int guest_file_id);
 
+int vimsic_make_domu_dt_node(struct kernel_info *kinfo, unsigned int *phandle);
+
 #endif /* ASM_RISCV_IMSIC_H */
diff --git a/xen/arch/riscv/vaplic.c b/xen/arch/riscv/vaplic.c
index d2ec196668bc..3f967464335a 100644
--- a/xen/arch/riscv/vaplic.c
+++ b/xen/arch/riscv/vaplic.c
@@ -9,6 +9,8 @@
  */
 
 #include <xen/errno.h>
+#include <xen/fdt-kernel.h>
+#include <xen/libfdt/libfdt.h>
 #include <xen/sched.h>
 #include <xen/xvmalloc.h>
 
@@ -19,8 +21,11 @@
 
 #include "aplic-priv.h"
 
+#define VAPLIC_COMPATIBLE "riscv,aplic"
 #define VAPLIC_NUM_SOURCES 96
 
+#define FDT_VAPLIC_INT_CELLS 2
+
 static int cf_check vcpu_vaplic_init(struct vcpu *v)
 {
     int rc = 0;
@@ -47,6 +52,73 @@ static int cf_check vcpu_vaplic_init(struct vcpu *v)
     return rc;
 }
 
+static int __init cf_check vaplic_make_domu_dt_node(struct kernel_info *kinfo)
+{
+    int res = 0;
+    void *fdt = kinfo->fdt;
+    unsigned int msi_parent_phandle;
+    char vaplic_name[128];
+    paddr_t aplic_addr = GUEST_APLIC_S_BASE;
+    paddr_t aplic_size = APLIC_SIZE(kinfo->bd.d->max_vcpus);
+    const __be32 reg[] = {
+        cpu_to_be32(aplic_addr >> 32),
+        cpu_to_be32(aplic_addr),
+        cpu_to_be32(aplic_size >> 32),
+        cpu_to_be32(aplic_size),
+    };
+    struct vintc *vintc = kinfo->bd.d->arch.vintc;
+
+    res = snprintf(vaplic_name, sizeof(vaplic_name), "/soc/aplic@%x",
+                   GUEST_APLIC_S_BASE);
+    if ( res >= sizeof(vaplic_name) )
+    {
+        dprintk(XENLOG_DEBUG, "vaplic name is truncated\n");
+        return -ENOBUFS;
+    }
+
+    res = vimsic_make_domu_dt_node(kinfo, &msi_parent_phandle);
+    if ( res )
+        return res;
+
+    res = fdt_begin_node(fdt, vaplic_name);
+    if ( res )
+        return res;
+
+    res = fdt_property_cell(fdt, "#interrupt-cells", FDT_VAPLIC_INT_CELLS);
+    if ( res )
+        return res;
+
+    res = fdt_property(fdt, "reg", reg, sizeof(reg));
+    if ( res )
+        return res;
+
+    res = fdt_property_cell(fdt, "riscv,num-sources", vintc->irq_nums);
+    if ( res )
+        return res;
+
+    res = fdt_property(fdt, "interrupt-controller", NULL, 0);
+    if ( res )
+        return res;
+
+    res = fdt_property_string(fdt, "compatible", VAPLIC_COMPATIBLE);
+    if ( res )
+        return res;
+
+    res = fdt_property_cell(fdt, "msi-parent", msi_parent_phandle);
+    if ( res )
+        return res;
+
+    res = fdt_property_cell(fdt, "phandle", kinfo->phandle_intc);
+    if ( res )
+        return res;
+
+    return fdt_end_node(fdt);
+}
+
+static const struct vintc_init_ops __initdata init_ops = {
+    .make_domu_dt_node = vaplic_make_domu_dt_node,
+};
+
 static const struct vintc_ops vintc_ops = {
     .vcpu_init = vcpu_vaplic_init,
 };
@@ -60,13 +132,14 @@ int __init domain_vaplic_init(struct domain *d)
 
     d->arch.vintc = &vaplic->vintc;
     d->arch.vintc->ops = &vintc_ops;
+    d->arch.vintc->init_ops = &init_ops;
 
-    vaplic->regs.domaincfg = APLIC_DOMAINCFG_IE | APLIC_DOMAINCFG_DM;
+    vaplic->regs.domaincfg = APLIC_DOMAINCFG_IE | APLIC_DOMAINCFG_DM |
+                             APLIC_DOMAINCFG_RO80;
 
     d->arch.vintc->irq_nums = min(intc_irq_nums(),
                                   VAPLIC_NUM_SOURCES + 0U);
 
-
     return 0;
 }
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:44:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:44:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303779.1577127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQx-0001JG-MH; Fri, 08 May 2026 14:44:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303779.1577127; Fri, 08 May 2026 14:44:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQw-0001CY-UI; Fri, 08 May 2026 14:44:06 +0000
Received: by outflank-mailman (input) for mailman id 1303779;
 Fri, 08 May 2026 14:44:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQu-0000aQ-1v
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:44:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQr-00EpjT-SV
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:44:03 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a1-5cb7-0a2a0a5109dd-0a2a45099a12-26
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:03 +0200
Received: from [209.85.218.48] (helo=mail-ej1-f48.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6b3-2497-0a2a45090019-d155da30d93b-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:03 +0200
Received: by mail-ej1-f48.google.com with SMTP id
 a640c23a62f3a-ba922426c5cso360181966b.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:44:03 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.44.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:44:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251443; x=1778856243; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kdHgAmxa9TAuJ8tlbnhJVK2QTauqFg/eA/dC2/C92Fo=;
        b=lUi4M03ai6Waz6bPwHVWmq8stMKR+OPiMosBxSRdahXXQvt7xvvFd2bfEYdktuosBd
         UV71BCT/w8MQ2IlxyP2tcMzmjJ0QpYUC8fdsET62psP5X/noNwd/g8Tulr9p1JKlLQb9
         20lOEktc4glKsI/9bgHcPigQtsHpLUv+Vn7z8Ic3WUq6ZF7K/z5ep9TaP755w+rFEAiX
         0z0tRmgjvzU99O+pw0y1hF8BUmfakFcsZ+jtU8ej2Sdml7KejoowqleXXytTu4lEjBEG
         6c1hKHfM0eZYASu9IGV3m7Gnhf6UdiBo0JfutzPdoAZOR8WSZi/3DXib6j1Mwzk1wSq0
         PS/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251443; x=1778856243;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=kdHgAmxa9TAuJ8tlbnhJVK2QTauqFg/eA/dC2/C92Fo=;
        b=s7rzeNFiA0OtFiq0QJ6NbSjWb0TNmhRK2xYv+/9ScxfzICk3bZyX8ZRxaYpn+oUp8h
         2bg5gDErsm4hUwzxIOW+AWgvxp3HTe9xHLzxWyS1S3Opxpv2OhD92+Vo5EHINhJvn7n4
         lICDZwXLNG9akHhm2HImCLl/4A3wzpoC7sY/Iv7lkYe1DQNLD87dm/KqVAmTXTFUlb37
         Q5z4qVpWroVaAIdzDRNp2Jk106LmfLtVmd3AmPDnaoQ+0tqf5syTyjrVPzGVGfH1kXWT
         USD8m594+soKasaXvwat20r5Ay/s2FyJji/2Kl30IF//iqFUhgsrxqhQltaHJBGW1kHi
         Qn0g==
X-Gm-Message-State: AOJu0YzlJJv+qmeu5S+YSNRswsZrtXQnB2p1VDHRIt3cSVbdj2ZPAuFl
	xse6aU8Sdmc5CfQ8cdeRHOvibywek2QAEFalXS9HQWExTdwN5kW9tIegCAsLkQ==
X-Gm-Gg: AeBDieuALeSIIBPKv3ubOeINYN6mnr/saJ2qDPwLt267uATofhSh8IMgXJ+RnBSVx0v
	nu0J+4V+F1kN5O2jejMN12sDS80sGJHiVT4ZyL/FS/nsXB6ONu+RjYIRzgeJt0TwxtaRFaKspwe
	lVeBy13LaAdYl+Oeps8xrTltEvn+GLDIADrUvoVNnIkJjcpA40ajix4inelgzT2rCiYYZo1Yk+B
	PXBOMIkKheMF2VeLPB8WiW/U9uS6PR3obVNWiHWHdCPLAnwOPjS2UF7qqr+bjkLqa3V4IB83VIO
	L2E+qnHbsIvecAd9qbt3/fxDa8avjP3fh8WaqdXYSbdEb0R6pkuC4h+jXWxqTA3CuD1k7kZcjcg
	gauFevCsF52TDR/XFgNDejoNpWBuJv3uPeuaACRWpqQPRDkb6N+QwV3Y+/TiU//eYSWyqdgg/9U
	41eTda6Af59sWxfst1dZI4WC4L4DvsqERXHT9I6aEGYuj3OqjAlHBmH8vp44KH/bJ0Uw==
X-Received: by 2002:a17:906:2081:b0:bc6:1c2:ee46 with SMTP id a640c23a62f3a-bc601c30305mr502420866b.11.1778251442014;
        Fri, 08 May 2026 07:44:02 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 17/26] xen/riscv: generate IMSIC DT node for guest domains
Date: Fri,  8 May 2026 16:43:19 +0200
Message-ID: <19d30d3c34a6ac9aeb668e1fc56301620b177db0.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778251443-3757BA53-99CF7F8C/10/73395122804
X-purgate-type: spam
X-purgate-size: 6281

Guests using the IMSIC interrupt controller require a corresponding
Device Tree description.

Add support for generating an IMSIC node when building the guest DT.
This allows guests to discover and use the IMSIC interrupt controller.

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - s/imsic_make_reg_property/guest_imsic_make_reg_property.
 - s/imsic_set_interrupt_extended_prop/guest_imsic_set_interrupt_extended_prop.
 - Use initalizer for regs[] array in imsic_make_reg_property().
 - Move buf[] insde the for() loop.
 - Correct check of returned phandle.
 - Drop local variable len.
 - /s/XVFREE/xvfree in imsic_set_interrupt_extended_prop().
 - Drop initializer for local variable data.
 - s/uint32_t/unsinged int for pos and cpu in imsic_set_interrupt_extended_prop().
 - Drop next_phandle as it is now in common code.
 - Introduce vcpu_imsic_deinit.
 - Refactor vimsic_make_domu_dt_node() to avoid usage of host IMSIC dt node.
---
 xen/arch/riscv/imsic.c                    | 127 +++++++++++++++++++++-
 xen/arch/riscv/include/asm/guest-layout.h |   2 +
 2 files changed, 128 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/imsic.c b/xen/arch/riscv/imsic.c
index ceea6778d9dc..19cbacdf96e1 100644
--- a/xen/arch/riscv/imsic.c
+++ b/xen/arch/riscv/imsic.c
@@ -13,9 +13,12 @@
 #include <xen/const.h>
 #include <xen/cpumask.h>
 #include <xen/device_tree.h>
+#include <xen/domain.h>
 #include <xen/errno.h>
+#include <xen/fdt-domain-build.h>
 #include <xen/fdt-kernel.h>
 #include <xen/init.h>
+#include <xen/libfdt/libfdt.h>
 #include <xen/macros.h>
 #include <xen/sched.h>
 #include <xen/smp.h>
@@ -35,6 +38,11 @@ static struct imsic_config imsic_cfg = {
     .lock = SPIN_LOCK_UNLOCKED,
 };
 
+static unsigned int __ro_after_init guest_num_msis;
+
+#define GUEST_IMSIC_COMPATIBLE "riscv,imsics"
+#define GUEST_IMSIC_NUM_MSIS 255
+
 #define IMSIC_DISABLE_EIDELIVERY    0
 #define IMSIC_ENABLE_EIDELIVERY     1
 #define IMSIC_DISABLE_EITHRESHOLD   1
@@ -291,6 +299,11 @@ static int imsic_parse_node(const struct dt_device_node *node,
         return -ENOENT;
     }
 
+    if ( dt_property_read_u32(node, "riscv,num-guest-ids", &tmp) )
+        guest_num_msis = tmp;
+    else
+        guest_num_msis = imsic_cfg.nr_ids;
+
     if ( (imsic_cfg.nr_ids < IMSIC_MIN_ID) ||
          (imsic_cfg.nr_ids > IMSIC_MAX_ID) )
     {
@@ -524,8 +537,120 @@ int __init imsic_init(const struct dt_device_node *node)
     return rc;
 }
 
+static int __init guest_imsic_make_reg_property(struct domain *d, void *fdt)
+{
+    paddr_t base_addr = GUEST_IMSIC_S_BASE;
+    __be32 regs[4] = {
+        cpu_to_be32(base_addr >> 32),
+        cpu_to_be32(base_addr),
+        cpu_to_be32((IMSIC_MMIO_PAGE_SZ * d->max_vcpus) >> 32),
+        cpu_to_be32(IMSIC_MMIO_PAGE_SZ * d->max_vcpus),
+    };
+
+    return fdt_property(fdt, "reg", regs, sizeof(regs));
+}
+
+static int __init guest_imsic_set_interrupt_extended_prop(struct domain *d,
+                                                          void *fdt)
+{
+    unsigned int cpu, pos = 0;
+    uint32_t phandle;
+    uint32_t *irq_ext;
+    int res;
+
+    irq_ext = xvzalloc_array(uint32_t, d->max_vcpus * 2);
+    if ( !irq_ext )
+        return -ENOMEM;
+
+    for ( cpu = 0; cpu < d->max_vcpus; cpu++ )
+    {
+        char buf[64];
+
+        snprintf(buf, sizeof(buf), "/cpus/cpu@%u/interrupt-controller", cpu);
+        phandle = fdt_get_phandle(fdt, fdt_path_offset(fdt, buf));
+
+        if ( !phandle )
+        {
+            res = -ENODEV;
+            goto out;
+        }
+
+        irq_ext[pos++] = cpu_to_be32(phandle);
+        irq_ext[pos++] = cpu_to_be32(IRQ_S_EXT);
+    }
+
+    res = fdt_property(fdt, "interrupts-extended", irq_ext,
+                       d->max_vcpus * 2 * sizeof(*irq_ext));
+
+ out:
+    xvfree(irq_ext);
+
+    return res;
+}
+
 int __init vimsic_make_domu_dt_node(struct kernel_info *kinfo,
                                     unsigned int *phandle)
 {
-    return -EOPNOTSUPP;
+    int res;
+    void *fdt = kinfo->fdt;
+    char vimsic_name[128];
+    unsigned int vimsic_phandle;
+    unsigned int num_msis = min(GUEST_IMSIC_NUM_MSIS + 0U, guest_num_msis);
+
+    res = snprintf(vimsic_name, sizeof(vimsic_name), "/soc/imsic@%x",
+                   GUEST_IMSIC_S_BASE);
+    if ( res >= sizeof(vimsic_name) )
+    {
+        dprintk(XENLOG_DEBUG, "vimsic name is truncated\n");
+        return -ENOBUFS;
+    }
+
+    res = fdt_begin_node(fdt, vimsic_name);
+    if ( res )
+        return res;
+
+    res = fdt_property_string(fdt, "compatible", GUEST_IMSIC_COMPATIBLE);
+    if ( res )
+        return res;
+
+    res = guest_imsic_make_reg_property(kinfo->bd.d, fdt);
+    if ( res )
+        return res;
+
+    res = guest_imsic_set_interrupt_extended_prop(kinfo->bd.d, fdt);
+    if ( res )
+        return res;
+
+    res = fdt_property_u32(fdt, "riscv,num-ids", num_msis);
+    if ( res )
+        return res;
+
+    res = fdt_property(fdt, "msi-controller", NULL, 0);
+    if ( res )
+        return res;
+
+    res = fdt_property_u32(fdt, "#msi-cells", 0);
+    if ( res )
+        return res;
+
+    res = fdt_property(fdt, "interrupt-controller", NULL, 0);
+    if ( res )
+        return res;
+
+    res = fdt_property_u32(fdt, "#interrupt-cells", 0);
+    if ( res )
+        return res;
+
+    vimsic_phandle = alloc_phandle(kinfo);
+    if ( !vimsic_phandle )
+        return -EOVERFLOW;
+
+    res = fdt_property_cell(fdt, "phandle", vimsic_phandle);
+    if ( res )
+        return res;
+
+    if ( phandle )
+        *phandle = vimsic_phandle;
+
+    return fdt_end_node(fdt);
 }
diff --git a/xen/arch/riscv/include/asm/guest-layout.h b/xen/arch/riscv/include/asm/guest-layout.h
index 9fc990c057f2..b16ec79c3786 100644
--- a/xen/arch/riscv/include/asm/guest-layout.h
+++ b/xen/arch/riscv/include/asm/guest-layout.h
@@ -5,6 +5,8 @@
 
 #define GUEST_APLIC_S_BASE 0xd000000
 
+#define GUEST_IMSIC_S_BASE 0x28000000
+
 #define GUEST_RAM_BANKS   2
 
 /*
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:44:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:44:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303781.1577134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQz-0001Zs-7v; Fri, 08 May 2026 14:44:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303781.1577134; Fri, 08 May 2026 14:44:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQy-0001V9-49; Fri, 08 May 2026 14:44:08 +0000
Received: by outflank-mailman (input) for mailman id 1303781;
 Fri, 08 May 2026 14:44:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQv-0000o2-0b
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:44:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQs-00EphB-Rk
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:44:04 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a1-e002-0a2a0a5209dd-0a2a4507ac04-38
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:04 +0200
Received: from [209.85.218.44] (helo=mail-ej1-f44.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6b4-229c-0a2a45070019-d155da2cd5a5-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:04 +0200
Received: by mail-ej1-f44.google.com with SMTP id
 a640c23a62f3a-b9358dd7f79so346800766b.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:44:04 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.44.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:44:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251444; x=1778856244; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nHhk3cMIRsy4K9vYVYjAVZnf9kJw2uzZP67LAV96DoQ=;
        b=sYR1yjTRf5W3Qqp8qwoaYeEV8uEk2A5IW8z2EHg5pCOMaRP/dvPS7O8C3GWWrcSX4F
         LvYblAh6LN4Gvmtx2VVhMzOSOP1Myrx5lgibRsT+DPMUATEfP58Lfey6cRtXroek1exS
         2t4wuXNRNvt2xMA+VXvVjMG/B0lDyHSbPf5NCVBO3S87izFfx4HGduX4zVIvcbBWI/Hn
         tHe2Voy/4hjG3T/WEqhOQ5A3S1hBecL9VcpZTyZjel/mAtDohrYTjOZPLx8JAEdCpALW
         G8sYCVZNkUfm9q/7Q5ZNkCCv0ECI1snDbVvSa+psdlothe2YqQZpQEPib1vVRgwXi3ZZ
         5deQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251444; x=1778856244;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=nHhk3cMIRsy4K9vYVYjAVZnf9kJw2uzZP67LAV96DoQ=;
        b=VZdMPT95AftAJ07chnRB13yRGjF6+M7aipzlHPMbEqtjGne0FUdHtyCQkuPQry4sUJ
         JzaZiKlFILCeHDFllfnddivCn2qkRS8+RhUWGr7DdyIRW6poV9MUFVLZRI313FajUkxQ
         s8CFO0Q4RllEw/SMWsTx9ym/8AXTej2j2MXIFgm8caVW/sOhcGersvoVEU4BVlGzgdMn
         O62h+DleO98SV8ypso+s+TqgGVGPclwnidR2LbOoJdHo8jEtuSV6tYhJjKCY5W0e1bhp
         EWuoecocWJesusHLRKzs1/t1TKnbJibkQ/j9kYgjYAOyXHCp8JWjkMrRR0lHy1xwUFEv
         MUNA==
X-Gm-Message-State: AOJu0YyGRXZzfvSLGlqel7RTOqzPb++TU5cRy2NnwRx/iexvnsMFxsob
	QQjYTr9XsjriCjzwBgrlH+Aj8DUIRVD/5NnavhWh8BkayBP3DLp73t+gvMvCog==
X-Gm-Gg: AeBDieuR1iiy4C1M7lf+bNhpfnhZa2t8SD2rlTvGvn3t8UlO5EEIbyG7u8pciQm2plt
	keN/HNcoy2llTSfXy3hZR03FO1G3NtssqZb3sezXcltdEflW2MFb0xqxdsSYH9cSxLrLzKRjbfZ
	4jmSqkE9dqnAhJSgMc/GuGmL8VysOrICaQuooRm7n5fQ1/4XQV16uGLwtRXyl/XDbUK25wwXbsa
	OTZH/iMoSSo1qPyQbuOb8EricoviBPWgAl37xLM9TBNCNrrot5mvFqsBl6Rwc4n5YUUZGToWuoI
	RrqL6tEKroGK4yqeGzPrTbn/7NDRO07kJUKN+eF+E9dmOcQjqUzS0vY8U329wjiXfq0CiKP6yiY
	QkDGd4fNoULYzSJKXgQxUkC6g+YmgZyuR4mNGZlz8+2vJk1pUu+4B6SzrU2P1AFiNf8EpqByL0a
	UXvnUBaDob+LUIKJu8dkVpQKOwmEeAAPedvBIQ/uuqAj4qhr8PapP7E3fYRC0gfaLEMw==
X-Received: by 2002:a17:907:7b96:b0:b9d:6cef:95fc with SMTP id a640c23a62f3a-bc56dd16fb0mr899141466b.35.1778251443460;
        Fri, 08 May 2026 07:44:03 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 18/26] xen: move declaration of map_device_irqs_to_domain() to common header
Date: Fri,  8 May 2026 16:43:20 +0200
Message-ID: <2c0099a788abedfb0d6a8041203d93bb745e6bbe.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1778251444-0A971C48-374D17EB/10/73395122804
X-purgate-type: spam
X-purgate-size: 2159

As map_device_irqs_to_domain() is used unconditionally by common part of
dom0less code it is moved to common header.

fdt-domain-build.h is chosen as map_device_irqs_to_domain() could be
also called indirectly in Arm's DOM0-related code.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - New patch.
---
 xen/arch/arm/include/asm/setup.h   |  3 ---
 xen/include/xen/fdt-domain-build.h | 13 +++++++++++++
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index 0d29b46ea52b..0adfa4993a8f 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -53,9 +53,6 @@ void init_traps(void);
 int handle_device(struct domain *d, struct dt_device_node *dev, p2m_type_t p2mt,
                   struct rangeset *iomem_ranges, struct rangeset *irq_ranges);
 
-int map_device_irqs_to_domain(struct domain *d, struct dt_device_node *dev,
-                              bool need_mapping, struct rangeset *irq_ranges);
-
 int map_irq_to_domain(struct domain *d, unsigned int irq,
                       bool need_mapping, const char *devname);
 
diff --git a/xen/include/xen/fdt-domain-build.h b/xen/include/xen/fdt-domain-build.h
index 671486c1c837..8612e98dfda5 100644
--- a/xen/include/xen/fdt-domain-build.h
+++ b/xen/include/xen/fdt-domain-build.h
@@ -12,6 +12,7 @@
 
 struct domain;
 struct page_info;
+struct rangeset;
 struct membanks;
 
 typedef bool (*alloc_domheap_mem_cb)(struct domain *d, struct page_info *pg,
@@ -79,6 +80,18 @@ static inline void set_domain_type(struct domain *d, const struct kernel_info *k
 #endif
 }
 
+/*
+ * Retrieves the interrupts configuration from a device tree node and maps
+ * those interrupts to the target domain.
+ *
+ * Returns:
+ *   < 0 error
+ *   0   success
+ */
+int map_device_irqs_to_domain(struct domain *d, struct dt_device_node *dev,
+                              bool need_mapping,
+                              struct rangeset *irq_ranges);
+
 #endif /* __XEN_FDT_DOMAIN_BUILD_H__ */
 
 /*
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:44:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:44:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303790.1577139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMR0-0001mR-LU; Fri, 08 May 2026 14:44:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303790.1577139; Fri, 08 May 2026 14:44:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMQz-0001ge-Az; Fri, 08 May 2026 14:44:09 +0000
Received: by outflank-mailman (input) for mailman id 1303790;
 Fri, 08 May 2026 14:44:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQw-00018r-N1
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:44:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQw-007XaD-1f
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:44:06 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6b5-2eae-0a2a0a5409dd-0a2a45068ed4-2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:06 +0200
Received: from [209.85.218.45] (helo=mail-ej1-f45.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6b5-7371-0a2a45060019-d155da2de86b-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:05 +0200
Received: by mail-ej1-f45.google.com with SMTP id
 a640c23a62f3a-b79f8f7ea43so339684666b.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:44:05 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.44.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:44:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251445; x=1778856245; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XVjEQLF6+ArFax55HjUAv3nB814yKtCQ+By22aNb4VM=;
        b=Vqq/B0x7CDPzV3UA41uSbxmwuAbOOgcGBSJIsSvItDURjB0izTKNWXie3koB54RCcZ
         e2d2004553tYDIFROfZ3EF+VidCU9pFBkdZWB8gAoNpLf6QkbIJWu8IOE2aMb8vi3A7X
         qjUeiUOjdxjK49wq1KUclvfM1PKIz7Oxwno82QTybBzQ7ZV/FtEugcwg6Bbg3puOMyKU
         +jJCFgIaQHXgXB9WJ8Dl7LsAXguCKc1VNfjyPzKd59QWVZtRkMFTZ4EVBYdj9uuVXaOF
         SDEj76AB3p2S5oPNqbm9lQdVpFshEn1axDZCQ9tAAiz75sMhSd82lGiQG8Itp2oSVxXY
         3mFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251445; x=1778856245;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=XVjEQLF6+ArFax55HjUAv3nB814yKtCQ+By22aNb4VM=;
        b=Lh5VXzDMBA5U94vELI0+xqXnHzpqjStlMmNQyRVj2j7NhCmO5PRWNDhRURo73uhMk+
         KONKkGVII1qVQ9JhalU8gU7pQi7VWPe5eplC6Vk7bhMgHrsx2/FMYCUf/GO4IU3I4C1i
         ElUvSvavEHQwNnpuROPc3Y9iKArEntf5G663DT7ANOMufsglU7oB7no34ObavY5kWkzX
         5DJ6RDvVQoczf8tcD/OzSSp1NRo14uawsm3TWvydjaue5kr9VieXpVAGtH5gEJY1shAl
         i2Rn/1OUWmdai3BQTH/oy+jSZrtBBfAE5QgQWDuUdLSsGK7kEkUKa9ywvdn7jYVsxuDq
         KsbA==
X-Gm-Message-State: AOJu0YyIjqsY7A9A/ySOK9o5ewVuudKkCKoh2iOaCerMn0rlJHairmqf
	6f0+0IE5IIyQ2B2EfOEo5plEUVEPmOUCLg+WiqVB7c2zY9rm9Jmvh+d4MtWt3Q==
X-Gm-Gg: AeBDieuflP0j8P2M1kK309wlAWhJnQwSLaFFyVAyQykhPmclVOb2Ow/U5HxJCVyQB8A
	NZ3fKrdarSIgsyJ6T7yCtK/DZmXHavCVUKjSvkBirQQqo14Nb0Thp3aTawqWs8yxlQrzNqpPmvP
	nSpwLBRFLFeBIAOgQHHybn+fSTPGFDzv/nAJVnUA+ov01wA+Q4LKHzAUOWturNUvDHKJnaVVopi
	19sPrrc5/nPAOWgfMKrqgcpnNy0jspey5TKn240NWAWPTgYtgtlNHdgKIMY0G0yx3xdVoqDahwA
	uWByRpwoB+bNBoga2bYqkA7eGOYKX+dUojtPPVRa925Vqt03yzSUxNN7pkurBxr+kSTbsCKA2Dh
	yc6zoXbp5979f01bP+JoWB+dgi5kdksS+a5K+4sqTccyoWY5P1IuAiDcMqj3DJd51I5pZHNgJln
	Tb8f2Pptoikk0y18TAPUf2RD0gnwOb4p91NKJKrpIFU0dEtxGcX3kLaY9DW/KDiGzjgFDSzNSO9
	xA4
X-Received: by 2002:a17:907:7b9d:b0:bc3:80a5:5277 with SMTP id a640c23a62f3a-bc56dc16e60mr782938266b.45.1778251444867;
        Fri, 08 May 2026 07:44:04 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 19/26] xen/riscv: implement IRQ routing for device passthrough
Date: Fri,  8 May 2026 16:43:21 +0200
Message-ID: <ed5218e94790ff8de36af12852605454606a6d80.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1778251445-8C87AD75-EE5EF4EA/10/73395122804
X-purgate-type: spam
X-purgate-size: 15918

dom0less device passthrough requires granting guest domains access to
device interrupts.  Introduce map_device_irqs_to_domain() to enumerate
a DT node's interrupt properties, skipping those not owned by
the primary interrupt controller (as at the moment I haven't seen usages
of it), and map_irq_to_domain() to grant domain access and configure
Xen's interrupt descriptor accordingly. Sharing IRQ between domains is
rejected.

route_irq_to_guest() and release_irq() manage irq_desc ownership for
guest-assigned interrupts.  Each assignment carries a small irq_guest
structure as irqaction::dev_id, recording the owning domain and virtual
IRQ number which is 1:1 mapped to physical IRQ number.  A per-domain
vIRQ allocation bitmap (allocated_irqs in struct vintc), managed by
vintc_reserve_virq(), prevents the same vIRQ being claimed twice.

With APLIC+IMSIC, guest interrupts are delivered directly by hardware
through the IMSIC, bypassing do_IRQ(). The _IRQ_GUEST branch in
do_IRQ() is therefore left as BUG() until a platform without direct
IMSIC delivery is encountered.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Rework IRQ mapping in more common (similar approach to Arm).
---
 xen/arch/riscv/Makefile            |   1 +
 xen/arch/riscv/aplic.c             |   4 +
 xen/arch/riscv/device.c            | 108 ++++++++++++++++++
 xen/arch/riscv/include/asm/intc.h  |  10 ++
 xen/arch/riscv/include/asm/irq.h   |   3 +
 xen/arch/riscv/include/asm/setup.h |   4 +
 xen/arch/riscv/intc.c              |  36 ++++++
 xen/arch/riscv/irq.c               | 175 +++++++++++++++++++++++++++++
 8 files changed, 341 insertions(+)
 create mode 100644 xen/arch/riscv/device.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 9d8d21b65188..fc6b34661111 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -1,6 +1,7 @@
 obj-y += aia.o
 obj-y += aplic.o
 obj-y += cpufeature.o
+obj-y += device.o
 obj-y += domain.o
 obj-y += domain-build.init.o
 obj-$(CONFIG_DOM0LESS_BOOT) += dom0less-build.init.o
diff --git a/xen/arch/riscv/aplic.c b/xen/arch/riscv/aplic.c
index 6ed9118485f3..1c8fd0145eb2 100644
--- a/xen/arch/riscv/aplic.c
+++ b/xen/arch/riscv/aplic.c
@@ -311,9 +311,13 @@ static const hw_irq_controller aplic_xen_irq_type = {
     .set_affinity = aplic_set_irq_affinity,
 };
 
+/* At the moment there is no difference between guest and Xen ops */
+#define aplic_guest_irq_type aplic_xen_irq_type
+
 static const struct intc_hw_operations aplic_ops = {
     .info                = &aplic_info,
     .host_irq_type       = &aplic_xen_irq_type,
+    .guest_irq_type      = &aplic_guest_irq_type,
     .handle_interrupt    = aplic_handle_interrupt,
     .set_irq_type        = aplic_set_irq_type,
     .irq_nums            = aplic_irq_num,
diff --git a/xen/arch/riscv/device.c b/xen/arch/riscv/device.c
new file mode 100644
index 000000000000..ba78032028af
--- /dev/null
+++ b/xen/arch/riscv/device.c
@@ -0,0 +1,108 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <xen/device_tree.h>
+#include <xen/errno.h>
+#include <xen/iocap.h>
+#include <xen/rangeset.h>
+#include <xen/sched.h>
+
+#include <asm/intc.h>
+
+int map_irq_to_domain(struct domain *d, unsigned int irq,
+                      bool need_mapping, const char *devname)
+{
+    int res;
+
+    res = irq_permit_access(d, irq);
+    if ( res )
+    {
+        printk(XENLOG_ERR "Unable to permit to %pd access to IRQ %u\n", d, irq);
+        return res;
+    }
+
+    if ( need_mapping )
+    {
+        /*
+         * Checking the return of vintc_reserve_virq is not
+         * necessary. It should not fail except when we try to map
+         * the IRQ twice. This can legitimately happen if the IRQ is shared.
+         */
+        vintc_reserve_virq(d, irq);
+
+        res = route_irq_to_guest(d, irq, irq, devname);
+        if ( res < 0 )
+        {
+            printk(XENLOG_ERR "Unable to map IRQ%u to %pd\n", irq, d);
+            return res;
+        }
+    }
+
+    dt_dprintk("  - IRQ: %u\n", irq);
+
+    return 0;
+}
+
+/*
+ * map_device_irqs_to_domain retrieves the interrupts configuration from
+ * a device tree node and maps those interrupts to the target domain.
+ *
+ * Returns:
+ *   < 0 error
+ *   0   success
+ */
+int map_device_irqs_to_domain(struct domain *d,
+                              struct dt_device_node *dev,
+                              bool need_mapping,
+                              struct rangeset *irq_ranges)
+{
+    unsigned int i, nirq;
+    int res, irq;
+    struct dt_raw_irq rirq;
+
+    nirq = dt_number_of_irq(dev);
+
+    /* Give permission and map IRQs */
+    for ( i = 0; i < nirq; i++ )
+    {
+        res = dt_device_get_raw_irq(dev, i, &rirq);
+        if ( res )
+        {
+            printk(XENLOG_ERR "Unable to retrieve irq %u for %s\n",
+                   i, dt_node_full_name(dev));
+            return res;
+        }
+
+        /*
+         * Don't map IRQ that have no physical meaning
+         * ie: IRQ whose controller is not APLIC/IMSIC/PLIC.
+         */
+        if ( rirq.controller != dt_interrupt_controller )
+        {
+            dt_dprintk("irq %u not connected to primary controller."
+                       "Connected to %s\n", i,
+                       dt_node_full_name(rirq.controller));
+            continue;
+        }
+
+        irq = platform_get_irq(dev, i);
+        if ( irq < 0 )
+        {
+            printk("Unable to get irq %u for %s\n", i, dt_node_full_name(dev));
+            return irq;
+        }
+
+        res = map_irq_to_domain(d, irq, need_mapping, dt_node_name(dev));
+        if ( res )
+            return res;
+
+
+        /*
+         * At the moment there is only one user of map_device_irqs_to_domain()
+         * for RISC-V which calls it irq_ranges == NULL.
+         */
+        if ( irq_ranges )
+            return -EOPNOTSUPP;
+    }
+
+    return 0;
+}
diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index 89a9c6806e55..1ff992b6c20b 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -13,8 +13,11 @@ enum intc_version {
 };
 
 struct cpu_user_regs;
+struct domain;
+struct dt_device_node;
 struct irq_desc;
 struct kernel_info;
+struct rangeset;
 struct vcpu;
 
 struct intc_info {
@@ -32,6 +35,9 @@ struct intc_hw_operations {
     /* hw_irq_controller to enable/disable/eoi host irq */
     const struct hw_interrupt_type *host_irq_type;
 
+    /* hw_irq_controller to enable/disable/eoi guest irq */
+    const struct hw_interrupt_type *guest_irq_type;
+
     /* Set IRQ type */
     void (*set_irq_type)(struct irq_desc *desc, unsigned int type);
     /* Set IRQ priority */
@@ -63,6 +69,7 @@ struct vintc_ops {
 
 struct vintc {
     unsigned int irq_nums;
+    unsigned long *allocated_irqs;
     const struct vintc_init_ops *init_ops;
     const struct vintc_ops *ops;
 };
@@ -75,6 +82,7 @@ void register_intc_ops(const struct intc_hw_operations *ops,
 void intc_init(void);
 
 void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority);
+int intc_route_irq_to_guest(struct irq_desc *desc, unsigned int priority);
 
 void intc_handle_external_irqs(struct cpu_user_regs *regs);
 
@@ -83,4 +91,6 @@ unsigned int intc_irq_nums(void);
 int domain_vintc_init(struct domain *d);
 void domain_vintc_deinit(struct domain *d);
 
+bool vintc_reserve_virq(const struct domain *d, unsigned int virq);
+
 #endif /* ASM__RISCV__INTERRUPT_CONTOLLER_H */
diff --git a/xen/arch/riscv/include/asm/irq.h b/xen/arch/riscv/include/asm/irq.h
index f633636dc308..98dd536be86e 100644
--- a/xen/arch/riscv/include/asm/irq.h
+++ b/xen/arch/riscv/include/asm/irq.h
@@ -49,6 +49,9 @@ void init_IRQ(void);
 
 void do_IRQ(struct cpu_user_regs *regs, unsigned int irq);
 
+int route_irq_to_guest(struct domain *d, unsigned int virq,
+                       unsigned int irq, const char *devname);
+
 #endif /* ASM__RISCV__IRQ_H */
 
 /*
diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
index 2215894cfbb1..9dbd3a8cbef7 100644
--- a/xen/arch/riscv/include/asm/setup.h
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -5,6 +5,10 @@
 
 #include <xen/types.h>
 
+struct domain;
+struct dt_device_node;
+struct rangeset;
+
 #define max_init_domid (0)
 
 void setup_mm(void);
diff --git a/xen/arch/riscv/intc.c b/xen/arch/riscv/intc.c
index 7f9850416bb4..a24c679c0cf8 100644
--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -7,7 +7,9 @@
 #include <xen/init.h>
 #include <xen/irq.h>
 #include <xen/lib.h>
+#include <xen/sched.h>
 #include <xen/spinlock.h>
+#include <xen/xvmalloc.h>
 
 #include <asm/aia.h>
 #include <asm/intc.h>
@@ -86,6 +88,22 @@ unsigned int intc_irq_nums(void)
     return intc_hw_ops->irq_nums();
 }
 
+int intc_route_irq_to_guest(struct irq_desc *desc,
+                            unsigned int priority)
+{
+    ASSERT(spin_is_locked(&desc->lock));
+
+    ASSERT(intc_hw_ops->guest_irq_type);
+
+    desc->handler = intc_hw_ops->guest_irq_type;
+    set_bit(_IRQ_GUEST, &desc->status);
+
+    intc_set_irq_type(desc, desc->arch.type);
+    intc_set_irq_priority(desc, priority);
+
+    return 0;
+}
+
 int __init make_intc_domU_node(struct kernel_info *kinfo)
 {
     struct vintc *vintc = kinfo->bd.d->arch.vintc;
@@ -112,6 +130,14 @@ int domain_vintc_init(struct domain *d)
         break;
     }
 
+    if ( !ret )
+    {
+        d->arch.vintc->allocated_irqs =
+            xvzalloc_array(unsigned long, BITS_TO_LONGS(d->arch.vintc->irq_nums));
+        if ( !d->arch.vintc->allocated_irqs )
+            ret = -ENOMEM;
+    }
+
     return ret;
 }
 
@@ -129,4 +155,14 @@ void domain_vintc_deinit(struct domain *d)
         printk("vintc (ver:%d) isn't implemented\n", ver);
         break;
     }
+
+    xvfree(d->arch.vintc->allocated_irqs);
+}
+
+bool vintc_reserve_virq(const struct domain *d, unsigned int virq)
+{
+    if ( virq >= d->arch.vintc->irq_nums )
+        return false;
+
+    return !test_and_set_bit(virq, d->arch.vintc->allocated_irqs);
 }
diff --git a/xen/arch/riscv/irq.c b/xen/arch/riscv/irq.c
index 25d329500212..4481ae23aa8e 100644
--- a/xen/arch/riscv/irq.c
+++ b/xen/arch/riscv/irq.c
@@ -12,11 +12,20 @@
 #include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/irq.h>
+#include <xen/sched.h>
 #include <xen/spinlock.h>
+#include <xen/xvmalloc.h>
 
 #include <asm/hardirq.h>
 #include <asm/intc.h>
 
+/* Describe an IRQ assigned to a guest */
+struct irq_guest
+{
+    struct domain *d;
+    unsigned int virq;
+};
+
 static irq_desc_t irq_desc[NR_IRQS];
 
 static bool irq_validate_new_type(unsigned int curr, unsigned int new)
@@ -192,6 +201,15 @@ void do_IRQ(struct cpu_user_regs *regs, unsigned int irq)
     if ( desc->handler->ack )
         desc->handler->ack(desc);
 
+    if ( desc->status & IRQ_GUEST )
+        /*
+         * As at the moment APLIC + IMSIC is used for guest interrupts will
+         * be directly passed to guest. But if/when IMSIC won't be available
+         * all interrupts will go through Xenand here an irq injection
+         * will be necessary to do.
+         */
+        panic("unimplemented");
+
     if ( desc->status & IRQ_DISABLED )
         goto out;
 
@@ -221,3 +239,160 @@ void do_IRQ(struct cpu_user_regs *regs, unsigned int irq)
     spin_unlock(&desc->lock);
     irq_exit();
 }
+
+static inline struct irq_guest *irq_get_guest_info(struct irq_desc *desc)
+{
+    ASSERT(spin_is_locked(&desc->lock));
+    ASSERT(test_bit(_IRQ_GUEST, &desc->status));
+    ASSERT(desc->action != NULL);
+
+    return desc->action->dev_id;
+}
+
+static inline struct domain *irq_get_domain(struct irq_desc *desc)
+{
+    return irq_get_guest_info(desc)->d;
+}
+
+void release_irq(unsigned int irq, const void *dev_id)
+{
+    struct irq_desc *desc;
+    unsigned long flags;
+    struct irqaction *action, **action_ptr;
+
+    desc = irq_to_desc(irq);
+
+    spin_lock_irqsave(&desc->lock,flags);
+
+    action_ptr = &desc->action;
+#ifdef CONFIG_IRQ_HAS_MULTIPLE_ACTION
+    for ( ;; )
+    {
+        action = *action_ptr;
+        if ( !action )
+        {
+            printk(XENLOG_WARNING "Trying to free already-free IRQ %u\n", irq);
+            spin_unlock_irqrestore(&desc->lock, flags);
+            return;
+        }
+
+        if ( action->dev_id == dev_id )
+            break;
+
+        action_ptr = &action->next;
+    }
+
+    /* Found it - remove it from the action list */
+    *action_ptr = action->next;
+#else
+    action = *action_ptr;
+#endif
+
+    /* If this was the last action, shut down the IRQ */
+    if ( !desc->action )
+    {
+        desc->handler->shutdown(desc);
+        clear_bit(_IRQ_GUEST, &desc->status);
+    }
+
+    spin_unlock_irqrestore(&desc->lock,flags);
+
+    /* Wait to make sure it's not being used on another CPU */
+    do { smp_mb(); } while ( test_bit(_IRQ_INPROGRESS, &desc->status) );
+
+    if ( action->free_on_release )
+        xvfree(action);
+}
+
+/* Route an IRQ to a specific guest */
+int route_irq_to_guest(struct domain *d, unsigned int virq,
+                       unsigned int irq, const char *devname)
+{
+    struct irqaction *action;
+    struct irq_guest *info;
+    struct irq_desc *desc;
+    unsigned long flags;
+    int retval = 0;
+
+    desc = irq_to_desc(irq);
+
+    action = xvmalloc(struct irqaction);
+    if ( !action )
+        return -ENOMEM;
+
+    info = xvmalloc(struct irq_guest);
+    if ( !info )
+    {
+        xvfree(action);
+        return -ENOMEM;
+    }
+
+    info->d = d;
+    info->virq = virq;
+
+    action->dev_id = info;
+    action->name = devname;
+    action->free_on_release = 1;
+
+    spin_lock_irqsave(&desc->lock, flags);
+
+    /*
+     * If the IRQ is already used by someone
+     *  - If it's the same domain -> Xen doesn't need to update the IRQ desc.
+     *  For safety check if we are not trying to assign the IRQ to a
+     *  different vIRQ.
+     *  - Otherwise -> For now, don't allow the IRQ to be shared between
+     *  Xen and domains.
+     */
+    if ( desc->action != NULL )
+    {
+        if ( test_bit(_IRQ_GUEST, &desc->status) )
+        {
+            struct domain *ad = irq_get_domain(desc);
+
+            if ( d != ad )
+            {
+                printk(XENLOG_G_ERR "IRQ %u is already used by domain %u\n",
+                       irq, ad->domain_id);
+                retval = -EBUSY;
+            }
+            else if ( irq_get_guest_info(desc)->virq != virq )
+            {
+                printk(XENLOG_G_ERR
+                       "d%u: IRQ %u is already assigned to vIRQ %u\n",
+                       d->domain_id, irq, irq_get_guest_info(desc)->virq);
+                retval = -EBUSY;
+            }
+        }
+        else
+        {
+            printk(XENLOG_G_ERR "IRQ %u is already used by Xen\n", irq);
+            retval = -EBUSY;
+        }
+        goto out;
+    }
+
+    retval = _setup_irq(desc, 0, action);
+    if ( retval )
+        goto out;
+
+    retval = intc_route_irq_to_guest(desc, IRQ_NO_PRIORITY);
+
+    spin_unlock_irqrestore(&desc->lock, flags);
+
+    if ( retval )
+    {
+        release_irq(desc->irq, info);
+        goto free_info;
+    }
+
+    return 0;
+
+ out:
+    spin_unlock_irqrestore(&desc->lock, flags);
+    xvfree(action);
+ free_info:
+    xvfree(info);
+
+    return retval;
+}
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:44:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:44:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303793.1577147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMR2-0002Ie-NL; Fri, 08 May 2026 14:44:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303793.1577147; Fri, 08 May 2026 14:44:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMR2-0002CY-0e; Fri, 08 May 2026 14:44:12 +0000
Received: by outflank-mailman (input) for mailman id 1303793;
 Fri, 08 May 2026 14:44:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQx-0001ON-PM
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:44:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQx-005krU-5P
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:44:07 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6b7-bab6-0a2a0a5309dd-0a2a4507e0c2-0
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:07 +0200
Received: from [209.85.218.47] (helo=mail-ej1-f47.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6b7-229c-0a2a45070019-d155da2fbd41-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:07 +0200
Received: by mail-ej1-f47.google.com with SMTP id
 a640c23a62f3a-bc1f0f48351so335363166b.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:44:07 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.44.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:44:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251446; x=1778856246; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+FxagSDdgrsLo5AXSdCU3JK7SOuU6ZhFjOmJK7bJpIQ=;
        b=Atxru7vTqxSEynVdkYkJYvhIcriXjIBzStCSnxcuF0gvfnJKoc8YNxufbr9ad4VZum
         6YIvNiXlVfFxpYnsEZXP5LL9vb++BzKRf1nDNMsczXqwyMxkUmBU0bfr8WexYtq+JMy5
         PwYXWOfKJnnWEYpAKczCk9snAIwCiVIlS0wvkSMg9NxeONaJncYNWmWdMB1vYzQyCRYf
         ilouPAuX7b+/nZ44QoCXhH7xnhaK1RnGdOfrgs3K3WQLfceOUQ5rkaRZUYq74uCZ/dWf
         nTGxvt3irAQcufQjacuEXbcN8amXXVqTtta76OMlU9JeMMw8sS3Xqd8JbunUj0ZCC7Ut
         KfiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251446; x=1778856246;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=+FxagSDdgrsLo5AXSdCU3JK7SOuU6ZhFjOmJK7bJpIQ=;
        b=AsWiLvD0MOYnLHbL7g3cMeicxila+XZ7yUZHWXeSIC2SgNJi88epo14CNFVkLPdFV0
         uDcXVjP+xZKMY3Lw5SQdYKeyStw18BhSU7lgox9ZLGf5MZHUFWDZ1Nk4YolfRwrQGdME
         E9ygYSbTmSsymnIc1cSK+JVIhHdHjQV/1ZI8vSI6lYhj0+A5SGSqZf6yODbTzsfpsFWD
         2NDfU9eVKBAdTmoRfBt/CxoyG3Y5isQLZQqXzzObHL3Oa15WzeSt82pJqOOaCupCznOZ
         xwdbB6HMOeGZhnvZNTDYetT8VJtlUO1FJjc9EFqTzLU4HH7tNlL4NTLZnReyuoLBfV8/
         F4Xg==
X-Gm-Message-State: AOJu0YzyixuTw/OFIEt+PM8WJ8MR69MuphtEfrZjGe/z4Fm6lPryMH8R
	rHv8IlN080NLw+8szz/JQIXfNQOLA9v4IzqQfFh2qJHmtJ8C/6lInBDbIACvaw==
X-Gm-Gg: Acq92OE8tHbzAhNnl+WqMbO0HyrVm5n2NFNXYkS8mQnJ9BUOEXpXhjuv9XI59sr+sK0
	MJCZ5n5agbRR9GnSE9MDYRUl75qboOwuaeIEWXq4mm74jj+lVHLXk5jaBlHb8A0caalZJwrGSC6
	is7yQ5etGsHZuLyYyAltxfNDS6Ak0AfrqIaGtE8MIonTX25fQg1BjQlhLFo56Lpj1ifC7BqEQBH
	y+1H2+/52TA/AoY8jRA+znKCBJYKTNsEAOtySoMMJh7JxNqI+Uf7tM+fAzFyU5y8K9L5TRWXr5D
	/RbUVEHzZwTbiqbxW6Eo8FfRmO5A541d6orp4qCp8sZd++ZJWbaezdcYNsj101XVV0Lyu9zYa5j
	RSbetNUQZfe04j8pbZBP+UWoZ0vGJOlJq7qGFAQV2rdq621Gdd/AcwlQtEzIwM2n3N9HtRcmmFp
	GMTENGnFwYT3mF+K2PlS7HnA/i2SJt8QI/ztQJZtMbT5ohciPzilOUSIBxajuNVyykyQ==
X-Received: by 2002:a17:907:709:b0:bb7:beb9:b6d5 with SMTP id a640c23a62f3a-bc56da16349mr853129766b.39.1778251446224;
        Fri, 08 May 2026 07:44:06 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 20/26] xen/riscv: add missing APLIC register offsets, masks to asm/aplic.h.
Date: Fri,  8 May 2026 16:43:22 +0200
Message-ID: <736349477470f316da7020c4c1c7e92e37470d31.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1778251447-28678C48-FCBD3EF2/10/73395122804
X-purgate-type: spam
X-purgate-size: 2205

These definitions are required for correct decoding of APLIC MMIO
accesses and target configuration, and will be used by both the
physical and virtual APLIC implementations.

No functional change is intended by this patch; it only centralises
hardware definitions that were previously missing.

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/aplic.h | 35 ++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/xen/arch/riscv/include/asm/aplic.h b/xen/arch/riscv/include/asm/aplic.h
index b42b159496b8..e418fc53433b 100644
--- a/xen/arch/riscv/include/asm/aplic.h
+++ b/xen/arch/riscv/include/asm/aplic.h
@@ -15,6 +15,11 @@
 
 #include <asm/imsic.h>
 
+#define APLIC_REG_OFFSET_MASK   0x3fff
+#define APLIC_TARGET_IPRIO_MASK 0xff
+#define APLIC_TARGET_GUEST_IDX_SHIFT 12
+#define APLIC_TARGET_EIID_MASK  0x7ff
+
 #define APLIC_DOMAINCFG_RO80    (0x80U << 24)
 #define APLIC_DOMAINCFG_IE      BIT(8, U)
 #define APLIC_DOMAINCFG_DM      BIT(2, U)
@@ -26,6 +31,36 @@
 #define APLIC_SOURCECFG_SM_LEVEL_HIGH   0x6
 #define APLIC_SOURCECFG_SM_LEVEL_LOW    0x7
 
+#define APLIC_DOMAINCFG         0x0000
+#define APLIC_SOURCECFG_BASE    0x0004
+#define APLIC_SOURCECFG_LAST    0x0ffc
+
+#define APLIC_SMSICFGADDR       0x1bc8
+#define APLIC_SMSICFGADDRH      0x1bcc
+
+#define APLIC_SETIP_BASE        0x1c00
+#define APLIC_SETIP_LAST        0x1c7c
+#define APLIC_SETIPNUM          0x1cdc
+
+#define APLIC_CLRIP_BASE        0x1d00
+#define APLIC_CLRIP_LAST        0x1d7c
+#define APLIC_CLRIPNUM          0x1ddc
+
+#define APLIC_SETIE_BASE        0x1e00
+#define APLIC_SETIE_LAST        0x1e7c
+#define APLIC_SETIENUM          0x1edc
+
+#define APLIC_CLRIE_BASE        0x1f00
+#define APLIC_CLRIE_LAST        0x1f7c
+#define APLIC_CLRIENUM          0x1fdc
+
+#define APLIC_SETIPNUM_LE       0x2000
+
+#define APLIC_GENMSI            0x3000
+
+#define APLIC_TARGET_BASE       0x3004
+#define APLIC_TARGET_LAST       0x3ffc
+
 #define APLIC_TARGET_HART_IDX_SHIFT 18
 
 #define APLIC_IDC_SIZE          32
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:44:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:44:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303805.1577155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMR4-0002bn-Gb; Fri, 08 May 2026 14:44:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303805.1577155; Fri, 08 May 2026 14:44:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMR3-0002Wz-GC; Fri, 08 May 2026 14:44:13 +0000
Received: by outflank-mailman (input) for mailman id 1303805;
 Fri, 08 May 2026 14:44:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMQz-0001g9-9w
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:44:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQy-007XaD-LF
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:44:08 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a0-2eae-0a2a0a5409dd-0a2a450197ec-16
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:08 +0200
Received: from [209.85.218.53] (helo=mail-ej1-f53.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6b8-c1f2-0a2a45010019-d155da35b4a7-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:08 +0200
Received: by mail-ej1-f53.google.com with SMTP id
 a640c23a62f3a-bc1f3a393c0so315224166b.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:44:08 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.44.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:44:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251448; x=1778856248; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ypGqeSMIpsEAtUnq5oo0oPjqpPE9yld9wwOBLOaULws=;
        b=RZVmaaXSsI1eouCkJO+DfP8NVU1jHQbBU+v6wpGdRMAut6BMS9BHFC/tVzbAao7lEc
         GXEwlZ3FMr8R3yxZtJzdAdiaIHnbfqtXNAC8IXp2XnkJ4Q4kuwshJAC4MtofjhnhxlIE
         MPCb+SnqjO3MicnCugnecqX50Z9hwZzOxoMW6TxX1qNNqbvJCr40/qZaUglipmUwG7SX
         W+iJ5sY6BTvEBAVuxkDI6+S95m6LSfwsiWxiGCgOnLN+CCfEAAg9ykyyh+pAJHS9IXpL
         ET6jfqIm87Uw52eyucnShjqtqJVrYJRDtM9JQgpKRfSc8RqDCc5N1Yv0TotTQys+W+5p
         U3VA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251448; x=1778856248;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ypGqeSMIpsEAtUnq5oo0oPjqpPE9yld9wwOBLOaULws=;
        b=l+mYpHLUbgH7JRTGurJSgPd9ZBqrXLd0JGLSxbK2uFc8y782lLcxnO94bwmwpq4RLA
         3FetMk/pb4l9D8OgmQAipwi4fSYiADkmov55sc9dn1blRGSClCjp2bMnMxR/PG65zyGi
         hjDydiAsJLzC7yrD/5rSEvfQyE98lzjQQalxvxFGW34DIYmhhPn/0bo7P0YW038LJSSi
         UZe8l+ub7OwlmxO9dDb2l3/RqQyjrs6aVYJ+gjoBmdwMdPqTFB4FBDqmZJOxsxO8NKVm
         Nwgew8FWCvyr4+a2wb9oIQFldx/DgTizv8KAOw9ry9GMOhtCuMzbRHuSDXc+Y79flwjo
         lzIg==
X-Gm-Message-State: AOJu0YyuntDJYNxbR6ZPW5eYhBESVDDkQQ9NlxbkbYI81tT8GNkRAB1B
	fv0sycMLZMUG7KRT6O8rMCyQf22MyWF8tMuxZcKZJnUeqZbvfv4lcJpQReuR0w==
X-Gm-Gg: AeBDietpzsnQFEtwELna2yTA+s1YlqtzSP5O+MqNRXkbNtI4sLxxelT8wM7tRlCxojv
	bc4pCQ5urvqnmeJJEzLE/MRd66+6J5P9A6DD8ef8FVJNH0qsoOcDC0+Dy9vFi0RWcRTm5Olw8nY
	N47jFQpQ0VnkstsDbs2t0wUF5KC38zPu+J9SnGL4C1ptvwu9Kp/37H6PYTUeYuP9NGT1pebOa2x
	NIWpnLbfDjsXQnOIJ6e5BhN6QdqaDn3S2dlJyG+wmJHLOwPS/SHL2Dxo4rCEbCbHsg3WtDk9mMb
	Ra2N8UP28jO9M1X3CHiF4/sourFEQVYQNVy+JwH+uj7feH+0P2LUd1mVMXWo9hPJFGMtLCtJdUa
	wXaZ4GZL3VzLMe+ABYx0ofaUOWbXLyStFKkuObqh49hmSRskQ8XVTZskNJFOeEBa8lbvFXUNfik
	3x/EXPcm+KiP5Ks/HkxGRne/BWEdK9wPYNCy/LchdiYIB+9q0YiUQk0A9EmQEfzBkUMg==
X-Received: by 2002:a17:906:7944:b0:bb7:be3b:ba3e with SMTP id a640c23a62f3a-bc56e01902emr696376966b.45.1778251447589;
        Fri, 08 May 2026 07:44:07 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 21/26] xen/riscv: implement virtual APLIC MMIO emulation
Date: Fri,  8 May 2026 16:43:23 +0200
Message-ID: <434e0be590bc0550e143836edff7e8e1e96b28c1.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778251448-B5D41FF4-6A9FE513/10/73395122804
X-purgate-type: spam
X-purgate-size: 16474

Guests running under Xen program interrupt routing by writing to APLIC
MMIO registers. Xen must intercept these accesses to enforce interrupt
isolation between domains and to translate guest routing intent into the
underlying physical MSI topology.

Writes are gated by the domain's authorised interrupt bitmap so that a
guest cannot affect interrupts it does not own. TARGET register writes
additionally require translation of the hart and IMSIC guest-file
indices from virtual to physical, as the APLIC uses these fields
directly to compute the MSI delivery address.

Delegation (APLIC_SOURCECFG_D) is not yet supported.

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Merge the following patches into one:
    xen/riscv: add vaplic access check:
      - Add check that address is properly aligned.
      - Check vaplic range intead of APLIC one.
      - Return bool from vaplic_is_access instead of int.
    xen/riscv: emulate guest writes to virtual APLIC MMIO
      - Drop CALC_REG_VALUE.
      - Use unsigned int instead of uin32_t for offset.
      - s/.../subtracting in the comment.
      - start one line comments from the upper case.
      - Check the value before being written to sourcecfg register.
      - 'unsigned int' for loop index.
      - Omit unneessary braces.
      - s/vaplic_update_target/aplic_msi_target_gen.
      - Use IMSIC_MMIO_PAGE_SHIFT instead of 12 in aplic_msi_target_gen().
      - Drop explicit usage of APLIC register in store function.
      - Drop APLIC_REG_{GET,SET} macros and introudce APLIC specific funtcions.
      - Ignore write to SOURCECFG_BASE when value is out-of-range.
      - Drop ASSERT(!target_vcpu) inside handler of targer register setting,
        just avoid such writings + debug message.
      - domain_crash() instead of panic() in the case of default case.
      - Drop ASSERT() in APLIC_SOURCE_CFG_BASE case and use domain_crash()
        instead.
    xen/riscv: emulate guest reads from virtual APLIC MMIO:
      - s/regval_to_irqn/regindx_to_irqn.
      - pass to to_vaplic() a domain instead of vintc.
      - add check that load access is aligned.
      - instead of panic() just crash a domain().
      - use 'unsigned int' for local variable offset.
      - Return 0 in the case APLIC_CLRIE_BASE ...APLIC_CLRIE_LAST reading to
        follow AIA spec.
      - Drop explicit usage of physical APLIC registers.
---
 xen/arch/riscv/aplic.c              |  25 +++
 xen/arch/riscv/include/asm/aplic.h  |   9 +
 xen/arch/riscv/include/asm/intc.h   |  10 +-
 xen/arch/riscv/include/asm/vaplic.h |   3 +
 xen/arch/riscv/vaplic.c             | 289 +++++++++++++++++++++++++++-
 5 files changed, 333 insertions(+), 3 deletions(-)

diff --git a/xen/arch/riscv/aplic.c b/xen/arch/riscv/aplic.c
index 1c8fd0145eb2..1976733dfbaa 100644
--- a/xen/arch/riscv/aplic.c
+++ b/xen/arch/riscv/aplic.c
@@ -40,6 +40,31 @@ static struct intc_info __ro_after_init aplic_info = {
     .hw_version = INTC_APLIC,
 };
 
+uint32_t aplic_hw_read_reg(unsigned int offset, uint32_t mask)
+{
+    unsigned long flags;
+    uint32_t val;
+
+    ASSERT(offset < aplic.size);
+
+    spin_lock_irqsave(&aplic.lock, flags);
+    val = readl((void __iomem *)((uintptr_t)aplic.regs + offset)) & mask;
+    spin_unlock_irqrestore(&aplic.lock, flags);
+
+    return val;
+}
+
+void aplic_hw_write_reg(unsigned int offset, uint32_t value)
+{
+    unsigned long flags;
+
+    ASSERT(offset < aplic.size);
+
+    spin_lock_irqsave(&aplic.lock, flags);
+    writel(value, (void __iomem *)((uintptr_t)aplic.regs + offset));
+    spin_unlock_irqrestore(&aplic.lock, flags);
+}
+
 static void __init aplic_init_hw_interrupts(void)
 {
     unsigned int i;
diff --git a/xen/arch/riscv/include/asm/aplic.h b/xen/arch/riscv/include/asm/aplic.h
index e418fc53433b..7905db9876d4 100644
--- a/xen/arch/riscv/include/asm/aplic.h
+++ b/xen/arch/riscv/include/asm/aplic.h
@@ -15,6 +15,8 @@
 
 #include <asm/imsic.h>
 
+#define APLIC_NUM_REGS 32
+
 #define APLIC_REG_OFFSET_MASK   0x3fff
 #define APLIC_TARGET_IPRIO_MASK 0xff
 #define APLIC_TARGET_GUEST_IDX_SHIFT 12
@@ -24,6 +26,8 @@
 #define APLIC_DOMAINCFG_IE      BIT(8, U)
 #define APLIC_DOMAINCFG_DM      BIT(2, U)
 
+#define APLIC_SOURCECFG_D       BIT(10, U)
+
 #define APLIC_SOURCECFG_SM_INACTIVE     0x0
 #define APLIC_SOURCECFG_SM_DETACH       0x1
 #define APLIC_SOURCECFG_SM_EDGE_RISE    0x4
@@ -71,6 +75,8 @@
 #define APLIC_SIZE(nr_cpus)     (APLIC_MIN_SIZE + \
                                  APLIC_SIZE_ALIGN(APLIC_IDC_SIZE * (nr_cpus)))
 
+#define APLIC_SETCLR_OFFSET_MASK  ((32 * sizeof(uint32_t)) - 1)
+
 struct aplic_regs {
     uint32_t domaincfg;         /* 0x0000 */
     uint32_t sourcecfg[1023];   /* 0x0004 */
@@ -114,4 +120,7 @@ struct aplic_regs {
     uint32_t target[1023];      /* 0x3008 */
 };
 
+uint32_t aplic_hw_read_reg(unsigned int offset, uint32_t mask);
+void aplic_hw_write_reg(unsigned int offset, uint32_t value);
+
 #endif /* ASM_RISCV_APLIC_H */
diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index 1ff992b6c20b..641c83125a5b 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -64,7 +64,15 @@ struct vintc_ops {
     int (*vcpu_init)(struct vcpu *v);
 
     /* Check if a address is virtual interrupt controller MMIO */
-    int (*is_access)(const struct vcpu *v, unsigned long addr);
+    bool (*is_access)(const struct vcpu *v, unsigned long addr);
+
+    /* Emulate load to virtual interrupt controller MMIOs */
+    int (*emulate_load)(const struct vcpu *vcpu, unsigned long addr,
+                        uint32_t *out);
+
+    /* Emulate store to virtual interrupt controller MMIOs */
+    int (*emulate_store)(const struct vcpu *vcpu, unsigned long addr,
+                         uint32_t in);
 };
 
 struct vintc {
diff --git a/xen/arch/riscv/include/asm/vaplic.h b/xen/arch/riscv/include/asm/vaplic.h
index 630ca14657f2..0fa690fcb2d7 100644
--- a/xen/arch/riscv/include/asm/vaplic.h
+++ b/xen/arch/riscv/include/asm/vaplic.h
@@ -26,6 +26,9 @@ struct vaplic_regs {
 struct vaplic {
     struct vintc vintc;
     struct vaplic_regs regs;
+
+    paddr_t regs_start;
+    paddr_t regs_size;
 };
 
 int domain_vaplic_init(struct domain *d);
diff --git a/xen/arch/riscv/vaplic.c b/xen/arch/riscv/vaplic.c
index 3f967464335a..57c3433ba03b 100644
--- a/xen/arch/riscv/vaplic.c
+++ b/xen/arch/riscv/vaplic.c
@@ -26,6 +26,283 @@
 
 #define FDT_VAPLIC_INT_CELLS 2
 
+#define AUTH_IRQ_BIT(d, irqn) ( \
+    ((irqn) <= (d)->arch.vintc->irq_nums) && \
+    test_bit(irqn, (d)->arch.vintc->allocated_irqs) )
+
+#define regindx_to_irqn(reg_val) ((reg_val) / sizeof(uint32_t))
+
+static inline uint32_t generate_auth_mask(const struct domain *d,
+                                          unsigned int irqsn)
+{
+    if ( irqsn >= DIV_ROUND_UP(d->arch.vintc->irq_nums,
+                               sizeof(uint32_t) * BITS_PER_BYTE) )
+    {
+        dprintk(XENLOG_DEBUG, "incorrect irqsn(%d) is passed\n", irqsn);
+
+        return 0U;
+    }
+
+    return *((uint32_t *)d->arch.vintc->allocated_irqs + irqsn);
+}
+
+static int vaplic_emulate_load(const struct vcpu *vcpu,
+                               const unsigned long addr, uint32_t *out)
+{
+    const struct domain *d = vcpu->domain;
+    const struct vaplic *vaplic = to_vaplic(d);
+    const unsigned int offset = addr & APLIC_REG_OFFSET_MASK;
+    uint32_t auth_mask;
+    unsigned int i;
+
+    switch ( offset )
+    {
+    case APLIC_DOMAINCFG:
+        *out = vaplic->regs.domaincfg;
+
+        return 0;
+
+    case APLIC_SETIPNUM:
+    case APLIC_SETIPNUM_LE:
+    case APLIC_CLRIPNUM:
+    case APLIC_SETIENUM:
+    case APLIC_CLRIENUM:
+    case APLIC_CLRIE_BASE ... APLIC_CLRIE_LAST:
+        /*
+         * Based on the RISC-V AIA spec a read of these registers
+         * always returns zero
+         */
+        *out = 0;
+
+        return 0;
+
+    case APLIC_SETIP_BASE ... APLIC_SETIP_LAST:
+    case APLIC_CLRIP_BASE ... APLIC_CLRIP_LAST:
+    case APLIC_SETIE_BASE ... APLIC_SETIE_LAST:
+        i = regindx_to_irqn(offset & APLIC_SETCLR_OFFSET_MASK);
+        auth_mask = generate_auth_mask(d, i);
+
+        break;
+
+    case APLIC_TARGET_BASE ... APLIC_TARGET_LAST:
+        /*
+         * As target registers start for 1:
+         *  0x3000 genmsi
+         *  0x3004 target[1]
+         *  0x3008 target[2]
+         *   ...
+         *  0x3FFC target[1023]
+         * It is necessary to calculate an interrupt number by substracting
+         * of APLIC_GENMSI instead of APLIC_TARGET_BASE.
+         */
+        i = regindx_to_irqn(offset - APLIC_GENMSI);
+
+        if ( !AUTH_IRQ_BIT(d, i) )
+        {
+            *out = 0;
+
+            return 0;
+        }
+
+        auth_mask = ~0U;
+
+        break;
+
+    default:
+        gdprintk(XENLOG_WARNING, "Unhandled APLIC read at offset %#x\n",
+                 offset);
+
+        domain_crash(vcpu->domain);
+
+        return -EINVAL;
+    }
+
+    *out = aplic_hw_read_reg(offset, auth_mask);
+
+    return 0;
+}
+
+static uint32_t aplic_msi_target_gen(const struct vcpu *target_vcpu,
+                                     uint32_t base_val)
+{
+    const struct imsic_config *imsic = imsic_get_config();
+    unsigned int guest_id = vcpu_guest_file_id(target_vcpu);
+    unsigned long hart_id = cpuid_to_hartid(target_vcpu->processor);
+    unsigned long group_index;
+    unsigned int hhxw = imsic->group_index_bits;
+    unsigned int lhxw = imsic->hart_index_bits;
+    unsigned int hhxs = imsic->group_index_shift - IMSIC_MMIO_PAGE_SHIFT * 2;
+    unsigned long base_ppn = imsic->msi[hart_id].base_addr >> IMSIC_MMIO_PAGE_SHIFT;
+
+    group_index = (base_ppn >> (hhxs + IMSIC_MMIO_PAGE_SHIFT)) & (BIT(hhxw, UL) - 1);
+
+    base_val &= APLIC_TARGET_EIID_MASK;
+    base_val |= guest_id << APLIC_TARGET_GUEST_IDX_SHIFT;
+    base_val |= hart_id << APLIC_TARGET_HART_IDX_SHIFT;
+    base_val |= group_index << (lhxw + APLIC_TARGET_HART_IDX_SHIFT);
+
+    return base_val;
+}
+
+static int cf_check vaplic_emulate_store(const struct vcpu *vcpu,
+                                         unsigned long addr, uint32_t value)
+{
+    int rc = -EINVAL;
+    const struct domain *d = vcpu->domain;
+    unsigned int offset = addr & APLIC_REG_OFFSET_MASK;
+
+    switch ( offset )
+    {
+    case APLIC_SETIP_BASE ... APLIC_SETIP_LAST:
+    case APLIC_CLRIP_BASE ... APLIC_CLRIP_LAST:
+    case APLIC_SETIE_BASE ... APLIC_SETIE_LAST:
+    case APLIC_CLRIE_BASE ... APLIC_CLRIE_LAST:
+    {
+        unsigned int irqn = regindx_to_irqn(offset & APLIC_SETCLR_OFFSET_MASK);
+        value &= generate_auth_mask(d, irqn);
+
+        break;
+    }
+
+    case APLIC_SOURCECFG_BASE ... APLIC_SOURCECFG_LAST:
+        if ( value & APLIC_SOURCECFG_D )
+        {
+            rc = -EOPNOTSUPP;
+
+            dprintk(XENLOG_ERR, "APLIC_SOURCECFG_D isn't supported\n");
+
+            goto fail;
+        }
+
+        /*
+         * As sourcecfg register starts from 1:
+         *   0x0000 domaincfg
+         *   0x0004 sourcecfg[1]
+         *   0x0008 sourcecfg[2]
+         *    ...
+         *   0x0FFC sourcecfg[1023]
+         * It is necessary to calculate an interrupt number by subtracting
+         * of APLIC_DOMAINCFG instead of APLIC_SOURCECFG_BASE.
+         */
+        if ( !AUTH_IRQ_BIT(d, regindx_to_irqn(offset - APLIC_DOMAINCFG)) )
+            /* Interrupt not enabled, ignore it */
+            return 0;
+
+        if ( value > APLIC_SOURCECFG_SM_LEVEL_LOW )
+        {
+            gdprintk(XENLOG_ERR,
+                     "value(%u) is incorrect for sourcecfg register\n", value);
+
+            return 0;
+        }
+
+        break;
+
+    case APLIC_TARGET_BASE ... APLIC_TARGET_LAST:
+    {
+        struct vcpu *target_vcpu = NULL;
+
+        /*
+         * Look at vaplic_emulate_load() for explanation why
+         * APLIC_GENMSI is subtracted.
+         */
+        if ( !AUTH_IRQ_BIT(d, regindx_to_irqn(offset - APLIC_GENMSI)) )
+            /* Interrupt not enabled, ignore it */
+            return 0;
+
+        for ( unsigned int i = 0; i < vcpu->domain->max_vcpus; i++ )
+        {
+            struct vcpu *v = vcpu->domain->vcpu[i];
+
+            if ( v->vcpu_id == (value >> APLIC_TARGET_HART_IDX_SHIFT) )
+            {
+                target_vcpu = v;
+                break;
+            }
+        }
+
+        if ( !target_vcpu )
+        {
+            dprintk(XENLOG_ERR, "Invalid vCPU id in target register\n");
+
+            /* Ignore such writings */
+            return 0;
+        }
+
+        value = aplic_msi_target_gen(target_vcpu, value);
+
+        break;
+    }
+
+    case APLIC_SETIPNUM:
+    case APLIC_SETIPNUM_LE:
+    case APLIC_CLRIPNUM:
+    case APLIC_SETIENUM:
+    case APLIC_CLRIENUM:
+        if ( !value || !AUTH_IRQ_BIT(d, value) )
+            return 0;
+
+        break;
+
+    case APLIC_DOMAINCFG:
+        /*
+         * TODO:
+         * The domaincfg register has this format:
+         * bits 31:24 read-only 0x80
+         * bit 8      IE
+         * bit 7      read-only 0
+         * bit 2      DM (WARL)
+         * bit 0      BE (WARL)
+         *
+         * The most interesting bit for us is IE(Interrupt Enable) bit.
+         * At the moment, at least, Linux doesn't use domaincfg.IE bit to
+         * disable interrupts globally, but if one day someone will use it
+         * then extra actions should be done.
+         */
+
+        printk_once("%s: Ignore writes to domaincfg as it is set by aplic "
+                    " during initialization in Xen\n", __func__);
+
+        return 0;
+
+    default:
+        goto fail;
+    }
+
+    aplic_hw_write_reg(offset, value);
+
+    return 0;
+
+ fail:
+    domain_crash(vcpu->domain,
+                 "Unhandled APLIC write at offset %#x (value %#x)\n", offset,
+                 value);
+
+    return rc;
+}
+
+static bool cf_check vaplic_is_access(const struct vcpu *vcpu,
+                                      unsigned long addr)
+{
+    const struct vaplic *vaplic = to_vaplic(vcpu->domain);
+    paddr_t start = vaplic->regs_start;
+    paddr_t end = vaplic->regs_start + vaplic->regs_size;
+
+    if ( addr & 0x3 )
+    {
+        dprintk(XENLOG_DEBUG,
+                "APLIC MMIO address should be properly aligned\n");
+
+        return false;
+    }
+
+    /* check if it is an APLIC access */
+    if ( start <= addr && addr < end )
+        return true;
+
+    return false;
+}
+
 static int cf_check vcpu_vaplic_init(struct vcpu *v)
 {
     int rc = 0;
@@ -54,19 +331,24 @@ static int cf_check vcpu_vaplic_init(struct vcpu *v)
 
 static int __init cf_check vaplic_make_domu_dt_node(struct kernel_info *kinfo)
 {
+    struct domain *d = kinfo->bd.d;
     int res = 0;
     void *fdt = kinfo->fdt;
     unsigned int msi_parent_phandle;
     char vaplic_name[128];
     paddr_t aplic_addr = GUEST_APLIC_S_BASE;
-    paddr_t aplic_size = APLIC_SIZE(kinfo->bd.d->max_vcpus);
+    paddr_t aplic_size = APLIC_SIZE(d->max_vcpus);
     const __be32 reg[] = {
         cpu_to_be32(aplic_addr >> 32),
         cpu_to_be32(aplic_addr),
         cpu_to_be32(aplic_size >> 32),
         cpu_to_be32(aplic_size),
     };
-    struct vintc *vintc = kinfo->bd.d->arch.vintc;
+    struct vintc *vintc = d->arch.vintc;
+    struct vaplic *vaplic = to_vaplic(d);
+
+    vaplic->regs_start = GUEST_APLIC_S_BASE;
+    vaplic->regs_size = aplic_size;
 
     res = snprintf(vaplic_name, sizeof(vaplic_name), "/soc/aplic@%x",
                    GUEST_APLIC_S_BASE);
@@ -121,6 +403,9 @@ static const struct vintc_init_ops __initdata init_ops = {
 
 static const struct vintc_ops vintc_ops = {
     .vcpu_init = vcpu_vaplic_init,
+    .is_access = vaplic_is_access,
+    .emulate_store = vaplic_emulate_store,
+    .emulate_load = vaplic_emulate_load,
 };
 
 int __init domain_vaplic_init(struct domain *d)
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:44:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:44:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303807.1577159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMR6-0002vE-1f; Fri, 08 May 2026 14:44:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303807.1577159; Fri, 08 May 2026 14:44:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMR5-0002qU-70; Fri, 08 May 2026 14:44:15 +0000
Received: by outflank-mailman (input) for mailman id 1303807;
 Fri, 08 May 2026 14:44:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMR0-0001ui-Hs
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:44:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMQy-00EpjT-BR
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:44:09 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6ae-5cb7-0a2a0a5109dd-0a2a45048fc2-18
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:09 +0200
Received: from [209.85.218.54] (helo=mail-ej1-f54.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6b9-1dec-0a2a45040019-d155da36e428-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:09 +0200
Received: by mail-ej1-f54.google.com with SMTP id
 a640c23a62f3a-bb91b426e40so355072266b.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:44:09 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.44.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:44:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251449; x=1778856249; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2I+oddooa9AtYM/3fWA2kwT7rhEB1jpQvIHH/BXdEDw=;
        b=OjABRNRkgfw2DLXeTrM74ciDwTGdhFQXE7aXPSju8zPbT6JU9KLj0RyGsU71Z7tkXo
         1YxVwbMNLkPUNsaBA4WqxDjI8/xEg1PV7yOM7ltp0E0RLQXsE8lkjVaS4JqI66QlmgvH
         2dHPNuawWCe70ITi69GXqi49AhZfs2/PzsLi6jRNWj9eASc88F2s2RU8tn8UafUWGu6N
         QFfDtULQ0TYNXa3yNcH7dtrdhz6PdYF+ckvHrSENlkOj8QUdcqAr9Drjz9/7StqI4yLU
         uNXRpCyy2ODkOfy+KvbB5H9if3t/UnWIt1TTISS3yoKLwNORySvsmBmp/eHD3Xy5QvFj
         SuXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251449; x=1778856249;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=2I+oddooa9AtYM/3fWA2kwT7rhEB1jpQvIHH/BXdEDw=;
        b=gFah+JctzMYdhTqcxGT/ZvZqrTEoa5LvFu/J391NmqKOEOoiIgWkNwgiOYg4Ag+goj
         zWnF+HR3XHzurI5nKPt/Gw0D0bGP8rs4pbRHUOTXxacuUwws0RkPoFWYYExNlbpamt7O
         EZ+dQSSxsRUZ2kG+Qpqk/7bv8kP2V38yBUccqnDCjhEvy4iFnPxoUxFmrkZQo8OozTWo
         q+xgrw+PVkVPdWMwu7Mc0q+6ik2fI7AYTS/5FA1vYKzkLgn90ezDrw48ZhN0tYynV6UC
         c7H88Br9bzLmJM1k1BVc/NdQ0mNtc29qmSrysunos6VyON/43o+Po8bnSOl1d7EKNA7W
         +O0A==
X-Gm-Message-State: AOJu0Yyqk+irlkdoFhqBO7rc39X61sn+omstqtLP9ADrPfgehxjw4xRQ
	hJvYuu3Y0/twLJCRUhFyhqkjpEWEdNFT1EOY59D4sBg3VpeAaIbgQqyDT0M9uQ==
X-Gm-Gg: AeBDietR6Q6kr+ptO94MkWqvfQxhS59PQT6K65GRY+cpV9XeiQ4gdbfEtH99ZZIlLRO
	ogv/G2gKxx61RfUs5f+6wYbwgwZtp0lSngdj/iRPo8wmggR2mzAa+Qxr9JFWDrwFu/acS9GdhhE
	FptOwycuBXh8AO/ppmNwNDYqNdgDgj+mAbQ5o5QnBYIJxDWqdrP1KUtuFmpTtwBODqa9Z2SiOYk
	GNAST0RE5DjIdUJ5SiUBlV/GX18DvBnqEmccH6kqyXfPNKr2A7W1MEo3LdfT4YK5w4ewxkOPIqw
	zkxLS47phMMYG4NZE0JxMDnqUjxnbJ0brpZcXNQRD9ReDfFOYdAErMkTLAud4JEZXlCifoBE9le
	5FYtC/bN5s2VlR7iWHdroU3He+Q4+gsWnd04u68lBl2OMhWo/Xe/w2ON2GCepstae49YypVARaP
	FgHpT8Se+nX+tYRgco3oRB0rmJSEb8/ZEgDx0dYLw2T1saa2bRXSB2oneMqmgen1JcNLPi/sL19
	ULF
X-Received: by 2002:a17:906:ef0c:b0:bc3:5164:bc1 with SMTP id a640c23a62f3a-bc56ad30ebfmr785929066b.10.1778251448965;
        Fri, 08 May 2026 07:44:08 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 22/26] xen/riscv: implement init_intc_phandle()
Date: Fri,  8 May 2026 16:43:24 +0200
Message-ID: <a3f84bf31c4d557f348abffb01929160fe7cc3e2.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1778251449-28F753FF-0A2F673C/10/73395122804
X-purgate-type: spam
X-purgate-size: 1316

Implement init_intc_phandle() to read phandle of interrupt controller
node and save it in kernel->phandle_intc for the future usage during
creation of guest interrupt controller node.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/riscv/dom0less-build.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/xen/arch/riscv/dom0less-build.c b/xen/arch/riscv/dom0less-build.c
index 4cc00012aa8d..a1fa51b996a7 100644
--- a/xen/arch/riscv/dom0less-build.c
+++ b/xen/arch/riscv/dom0less-build.c
@@ -4,9 +4,26 @@
 #include <xen/device_tree.h>
 #include <xen/fdt-kernel.h>
 #include <xen/init.h>
+#include <xen/libfdt/libfdt.h>
 
 #include <asm/p2m.h>
 
+int __init init_intc_phandle(struct kernel_info *kinfo, const char *name,
+                             const int node_next, const void *pfdt)
+{
+    if ( dt_node_cmp(name, "intc") == 0 )
+    {
+        uint32_t phandle_intc = fdt_get_phandle(pfdt, node_next);
+
+        if ( phandle_intc != 0 )
+            kinfo->phandle_intc = phandle_intc;
+
+        return 0;
+    }
+
+    return 1;
+}
+
 int __init make_arch_nodes(struct kernel_info *kinfo)
 {
     /* No RISC-V specific nodes need to be made, at the moment. */
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:44:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:44:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303811.1577172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMR8-0003Up-TA; Fri, 08 May 2026 14:44:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303811.1577172; Fri, 08 May 2026 14:44:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMR7-0003Pi-Gw; Fri, 08 May 2026 14:44:17 +0000
Received: by outflank-mailman (input) for mailman id 1303811;
 Fri, 08 May 2026 14:44:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMR1-0002Ba-UH
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:44:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMR1-007XaD-9g
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:44:11 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a5-2eae-0a2a0a5409dd-0a2a4502de26-32
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:11 +0200
Received: from [209.85.218.44] (helo=mail-ej1-f44.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6bb-af86-0a2a45020019-d155da2cd8c6-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:11 +0200
Received: by mail-ej1-f44.google.com with SMTP id
 a640c23a62f3a-bad54961385so338805566b.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:44:11 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.44.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:44:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251450; x=1778856250; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ertjGZ7ExX36oGia4x9/eFNEbUiupI/fuIemGmFcgEY=;
        b=VGt9nPTk2Xc+KduTDtcjO6CemAQvzMsOwyAA90KbWOPp7YDzI+uzEkfCr/6DmYtjA7
         hIitIcKdv0RlfpInpEaGPA2sgQ5kyO5hIlQVOA+ZFLaPgLfN0D8I8UnMHPMV2EfEuA06
         eDOx6pIFx5dF1zG/tiksO/oXFEov3RRNrIdu20Y6hZqCjrGfYPuBMayqlZDg9s/f/vrD
         5AXhNeva/yGcfu0LPPhn/XhwLRFrcSm1ycRCN+ca1Na5uEGbs/q20MAr7mYqZw47IXLi
         IJxIpL8XeVCeWHYj6n18kEctmYkCpCLYxsmG4k0Ryv/pmUvY/ADOEahIRuWFS2j0zH0D
         LYCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251450; x=1778856250;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ertjGZ7ExX36oGia4x9/eFNEbUiupI/fuIemGmFcgEY=;
        b=KOahV26yWyUhqI/c2kFTyl2dwWWW71iBb/GDZeQCEQjGPSY7OhFXpwxtZK059K67/0
         NGbeppTfzARETkRq5a0gHT8nyY7j7by8F7fIAdBeIz6bYTpxu1TtAw4vdndQk7loGIgM
         UcRDhc4F7ry6k6NE10y/ys7nyxNOecIGasRTsZCxqV+4+DMued7yCJq0sUtJBZKU3xwU
         rueSHkGltFqYJey1zip0RQWpP1WEA9tc2u9Zgx1wMlXXUWqWKsOjnNvgu+DHDAM3DnkZ
         NuZJ+6pbLscIdmm+9UZ9uTyYc7vZIkgEfZWejsD0ig1BXktpLHVsu/LMqJnThGa90yoG
         Ncxw==
X-Gm-Message-State: AOJu0YxYvjsD1kw1RlysXvxbVu0CLAuQCS0glCK5YFCbeesZBrhS0twX
	8c8qZGz7m8tcvzeimhgkpVKQC+t/y/mhnTAmKoRfNyZADd/uoNSge6cmyfzt9Q==
X-Gm-Gg: AeBDievFQqWARrxi52wjBstJACzmIY0id+9DJq1YeJtL3ZvR+/ipF7kiqZlJlw8VxMH
	yUiGzIBQxWLQO54kwQ+ZQ6fNKGjbWFA1XK32c9SqWbMug9l/lbuj2rG5zU+iS85EtR9RUZetw2y
	VcO4lgmvXJsFUmy7QveM2UOl2aYh+OB14P1TqsmTxWF9rDuUtZjNaFTjC1BLD9P+wB6/JBsdPp/
	bK6zZeNJ39TWqCq/nJg5y3rYSSKhpcVjNDsWGtWt0/NRz0ZW0T3tJIBdTRADgK0l8AdWhOmPrNz
	9LRlyG5wjedti9tM+B53y0aNsyY7Zwsxc63OQjGT6hNfyErVEALuGw0/+eBi44UN/zi4okefPKy
	RGKdZnOtGFZn7ZF18WAmZnfRddYaz6vzfKqJlM/SK6QTb4ifMwRQzpTSOBwD2G/FHo9g0k7yaSa
	k82/KD+es4IBk6tR+wc14eTV571viHaAKX/tGdJ1t6MPZ3l3MNXyYF7HAzLGeqIWbypTYWu+yO9
	ADu
X-Received: by 2002:a17:907:c308:b0:bbe:7709:5a8a with SMTP id a640c23a62f3a-bc56ae2ca2dmr824426166b.7.1778251450322;
        Fri, 08 May 2026 07:44:10 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 23/26] xen/riscv: initialize RCU, scheduler, and system domains in start_xen()
Date: Fri,  8 May 2026 16:43:25 +0200
Message-ID: <824f8624bf920d0e7f558a07ace58bfc18a44788.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778251451-80D7F161-705ECF3C/10/73395122804
X-purgate-type: spam
X-purgate-size: 1383

Wire up the missing early-boot initialization steps in start_xen().

The scheduler must be initialized prior to do_initcalls() because
cpupool_create_pool() is called during initcalls; without it,
BUG_ON(IS_ERR(pool)) is triggered inside cpupool_create_pool().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - New patch. Several patches were folded into one.
---
 xen/arch/riscv/setup.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 56a0907a855f..c3e98733ebc3 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -6,9 +6,12 @@
 #include <xen/compile.h>
 #include <xen/console.h>
 #include <xen/device_tree.h>
+#include <xen/domain.h>
 #include <xen/init.h>
 #include <xen/irq.h>
 #include <xen/mm.h>
+#include <xen/rcupdate.h>
+#include <xen/sched.h>
 #include <xen/serial.h>
 #include <xen/shutdown.h>
 #include <xen/smp.h>
@@ -156,12 +159,21 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     timer_init();
 
+    rcu_init();
+
+    setup_system_domains();
+
     local_irq_enable();
 
     console_init_postirq();
 
     guest_mm_init();
 
+    scheduler_init();
+    set_current(idle_vcpu[0]);
+
+    do_initcalls();
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:44:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:44:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303819.1577177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMRA-0003p6-76; Fri, 08 May 2026 14:44:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303819.1577177; Fri, 08 May 2026 14:44:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMR9-0003jz-5g; Fri, 08 May 2026 14:44:19 +0000
Received: by outflank-mailman (input) for mailman id 1303819;
 Fri, 08 May 2026 14:44:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMR3-0002WB-Cl
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:44:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMR2-005krU-OQ
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:44:12 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a6-bab6-0a2a0a5309dd-0a2a450581d0-44
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:12 +0200
Received: from [209.85.208.45] (helo=mail-ed1-f45.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6bc-aaa8-0a2a45050019-d155d02dd96c-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:12 +0200
Received: by mail-ed1-f45.google.com with SMTP id
 4fb4d7f45d1cf-67c566cb519so3921629a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:44:12 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.44.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:44:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251452; x=1778856252; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=E4BfOntXbfM6hbvWE7lSKCrx+ZAzvsim2jXEiAgi4uM=;
        b=Eli6dke/Yb1Gcx949CcdjOP/2aG8KObUrHpa74thBJonYsWK0lmZdCz10zCyVbs0OL
         g8T49CwCiG+HORGXrs3QvN3SnVaKPknMXjMPDq+Ho2wmcAqsu08iS0B1cyVAMFWfpOAx
         XdRvTdL82LLAuUDOuv/ei2xPJIWOaGSm+hSNfbQGmTtFtx20hAon6M44Chek5szhz9US
         y5qiiFi8s9e/qP5DpudNgiGlJvW31bNAiaYC0Gw+UhCPkyffXdxfDZxOTImnrynLigqG
         b7yGNqPizXf4bJWJmZJRp2jWiIR/hHvzSBZRMDgjb8JC9uowcXJRWZVqSLq6pK8ouppN
         hCzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251452; x=1778856252;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=E4BfOntXbfM6hbvWE7lSKCrx+ZAzvsim2jXEiAgi4uM=;
        b=k6Q5rP11QqPQaRKYS5Gpoaf6SbgR6xWANhrbDyMXpam74dKz6rRQouKptyZcUjomeA
         xA22rJbIl/kwwNvKPnUDC/nt/5/trgAjMDExmiSZxSMBVmhN7FnC38PKpbSFhbvr/DoW
         9wqSOpwy3ni6KX2sPLOi+EiebjvsB2PiaTs94EE5qWdaTIeoLRbUghecjDuYM8SaOgU6
         OFC31otNMRzAcHnRuvbVr4Y2bF5ksB6fZIRgNAYFO4OrOuPFHavOfKBWpe5fdsoDsg+v
         elM3FuOyRQyrYpuIsiEq7r8s3Fdmv8+HD8yXBjtuwe6Kllv7nO9yFimubfujXMAp44W3
         rCfQ==
X-Gm-Message-State: AOJu0Yz/vZC9r9z4E5bGUTQa+kKxCUy10SLKOuZArZB6JKX5d6E5RyOq
	tegLz5pM+2J+7u92E3wwdZNgcR43W8QO22sV8CXUIlyDsupio5J6UzMnQBoshw==
X-Gm-Gg: AeBDievk4hZXhKw8B/jXBAL+sHW8T8GTXc12tLrfob/2qAxNtmvGN6xzwL+bX5+yGog
	p1aJ7MDA2it0kOYlBC5FDCWjyrwnOTwTCOmqn1WbT8dZCvCSpda1ujC9KOPOOKFP+mYOX01K3q8
	F19uwtcAsk1wmDcmWRkqAd/P4ak5oi0bsh0EN4J+HkDm5LqtF1dCNXFyz2TOIbbtz7scfNfeLOv
	lc/2Tl+oRxZBpxfV7F+0Dv2w99PH3jIvtZO8zLHzZHGTQQPjHXEUae3Fss41WxU+HoT8vSwRv02
	a6OvMSKttI7+WSB27F5X68kJAFmUwf9j8x2yu79EitJl+B2fHkqeE7LmN6k9TKlXTN9MmQkFqGK
	Aeb/ADpF+ORLfE3sR3/EkowGRxFUnrJnIahPs+CO6lOT9FrhpwBEaRvhbjKj7yNsw/1UcT1t78k
	EoKx1jjaXgDWGtaobgCyp8le5/mvAh7uKadfxxw+U740n5chIAJ7OxQ6gsdoEUphXxZw==
X-Received: by 2002:a17:907:1c97:b0:bc5:284:4abc with SMTP id a640c23a62f3a-bc56e602671mr783846766b.45.1778251451674;
        Fri, 08 May 2026 07:44:11 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 24/26] xen/riscv: provide init_vuart()
Date: Fri,  8 May 2026 16:43:26 +0200
Message-ID: <6cf8cb552c146629375294861450b0e9619043d7.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1778251452-DAF6E443-554099D4/10/73395122804
X-purgate-type: spam
X-purgate-size: 1328

For debug purpose is enough to have only print messages from guest what is
now implemented in vsbi_legacy_ecall_handler().

For full guesst console support it will better to have something similar to
[1], thereby there is nothing specific should be done, at least, for now
and init_vuart() is provided to make dom0less code buildable.

[1] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop/

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v2:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
 xen/arch/riscv/dom0less-build.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/riscv/dom0less-build.c b/xen/arch/riscv/dom0less-build.c
index a1fa51b996a7..d1a51b92936a 100644
--- a/xen/arch/riscv/dom0less-build.c
+++ b/xen/arch/riscv/dom0less-build.c
@@ -8,6 +8,14 @@
 
 #include <asm/p2m.h>
 
+int __init init_vuart(struct domain *d, struct kernel_info *kinfo,
+                      const struct dt_device_node *node)
+{
+    /* Nothing to do at the moment */
+
+    return 0;
+}
+
 int __init init_intc_phandle(struct kernel_info *kinfo, const char *name,
                              const int node_next, const void *pfdt)
 {
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:44:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:44:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303824.1577189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMRC-0004B3-26; Fri, 08 May 2026 14:44:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303824.1577189; Fri, 08 May 2026 14:44:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMRA-000427-SJ; Fri, 08 May 2026 14:44:20 +0000
Received: by outflank-mailman (input) for mailman id 1303824;
 Fri, 08 May 2026 14:44:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMR4-0002gH-As
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:44:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMR3-007XaD-M5
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:44:13 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a5-2eae-0a2a0a5409dd-0a2a4502de26-42
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:13 +0200
Received: from [209.85.218.53] (helo=mail-ej1-f53.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6bd-af86-0a2a45020019-d155da35e4fd-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:13 +0200
Received: by mail-ej1-f53.google.com with SMTP id
 a640c23a62f3a-bb91b426e40so355083466b.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:44:13 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.44.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:44:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251453; x=1778856253; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h7g7YWRnnxNXf98txapITWcoUSeH2RyR+2XFUir70YQ=;
        b=h12DAhvTQDbofpF74lUVsmxOZwe9wnVk77ILIeESh7Qji9eKhUtMcy4H/BWJ/eh0nn
         aol6Q0ybCqepbbQLwVp1BTByU3U9zIlWj02xdzH9BtB+cEuLe9koYvq3j+xy6hlFn0AJ
         oJKDdvhsMO9klaYTAUhEDhEp8VQqbOo/uS2GHZty4pai0Igx8ndERFWPdyoMCy/6Ie4C
         8ZXq/Gd/N1tNJk2CVwtT49UkCScshfRIcDgaMDRduTKY9KdEoFebTCX1gcN4VGgcHKjc
         fmeqT01m6dBlqQdMcNhfuAdcCQswShidbNFl/YcxF5kM+c1QLfDVGGRD6gSpZIQc1UOP
         sFSw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251453; x=1778856253;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=h7g7YWRnnxNXf98txapITWcoUSeH2RyR+2XFUir70YQ=;
        b=RzobHA92PvPXQ672gQYcGmeEFwWw/jM9inPQdm+8Ptxx+57HGF9RVQqFekTwAwJR0G
         C7P2SqvtuR0Rb8fGZvMyWxol4W6EY5FNkUGgq9rc0fahSfQ0TVf1XoC5vQzGidHTcnE2
         bLrJrNmsK11GF2PVqjp7bkhQAREuG6Q3WmsmVvVhqf+iJYpLJ3DePzcy1IHbJ3sKaq6E
         Vk+imVJ1YeUH6xrBcgK05QRPDxL+zRxQc6BUqBzGsw06cxnplT3kp2BIG2jvXCw1CZSX
         uMHvN8isD1Sik58MQpL+fhblCPoPOnv3EVPHr2IWlYl2zmJamSGdZ4bK+cicwdkpLLlO
         9skQ==
X-Gm-Message-State: AOJu0YxkzTcrI7QKtNAYDcnrR4WAEIonfXKDy4Bgh5vJA3QBtKG0Z5yZ
	i2WiBGN7RcADIrxdlFViuUszEAuHE3yWsoKXanMVmTkkhM50LY8X6UnTJfYV3A==
X-Gm-Gg: AeBDievQt6hgFRSWWxBdWu4IjDKoApVuGUEzd7Sy0/1/Z3nbjQSnywIUL78Qchl8OdF
	UXNyHw/GK9KuBaYePscyKG7UFAK07WbFnl7SgnL31euIuYmszDQCKgLFUsFkGDZ1kMJyo/twxBe
	vnq7WSuCUpN1ixM+jagQBjw0Ej75l4jz5HsGj1VxwToLzckjpzgKnyF5D0FV7GkQeT19QbDNF8r
	u/WR5GQxvSFkbirl9l634DeElO/EUAJiUkDVFkHXO6Nk/zCzXWm9wEKFKI80w/QAtP6lN3jwrg7
	LAaw6KfF4OACqQP2ltclrjgJBOAG9CGTmshvsqnhiq6yzzPRSJdgc4AyDBfz4KhFFBdL+zG21Oa
	BMEo7PDcpPr/B6Y+8H8f1YuGQ2Htfc/BJE+hWAXKL7PLrnkPU3i0ELwpL7X0kLJrydJh8cSU0nz
	U3vhfazLz4BMZfQJgfiA4DmtEgePOKWZ/5ujMfaHcJVL5F0pD3JGoJUm5DfjdmJFT0gw==
X-Received: by 2002:a17:907:9689:b0:bc3:782c:da7a with SMTP id a640c23a62f3a-bc56a6470ddmr787193566b.5.1778251452799;
        Fri, 08 May 2026 07:44:12 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v2 25/26] xen/riscv: add initial dom0less infrastructure support
Date: Fri,  8 May 2026 16:43:27 +0200
Message-ID: <0b52530fe7287ed8600b1877b573b5cd0168634a.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778251453-8276A161-AB215660/10/73395122804
X-purgate-type: spam
X-purgate-size: 5370

Enable dom0less support for RISC-V by selecting HAS_DOM0LESS and
providing the minimal architecture hooks required by the common
dom0less infrastructure.

Add stub implementations for architecture-specific helpers used when
building domains from the device tree. These currently perform no
additional work but allow the generic dom0less code to build and run
on RISC-V.

Introduce max_init_domid as a runtime variable rather than a constant
so that it can be updated during dom0less domain creation.

Provide missing helpers and definitions required by the domain
construction code, including domain bitness helpers and the
p2m_set_allocation() prototype.

Additionally define the guest magic memory region in the public
RISC-V interface.

As HAS_DOM0LESS is selected for RISC-V now it could be a compilation
issue if CONFIG_STATIC_MEMORY=y as guest_physmap_add_pages() isn't
yet provided.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Move declaration of p2m_set_allocation() to p2m-common.h.
 - Add __initdata for max_init_domid and drop initalizer for it.
 - Add CONFIG_STATIC_MEMORY=n to CI's randconfig to avoid
   compilation error because of guest_physmap_add_pages()
   isn't provided.
 - Select HAS_DOMAIN_TYPE for RISC-V and drop things which were
   introduced when HAS_DOMAIN_TYPE doesn't exist.
---
 automation/gitlab-ci/build.yaml           |  1 +
 xen/arch/riscv/Kconfig                    |  2 ++
 xen/arch/riscv/dom0less-build.c           |  6 ++++++
 xen/arch/riscv/domain-build.c             | 13 +++++++++++++
 xen/arch/riscv/include/asm/guest-layout.h |  3 +++
 xen/arch/riscv/include/asm/setup.h        |  4 +++-
 xen/arch/riscv/setup.c                    |  2 ++
 7 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index f05895729147..3c3e7cb356a4 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -805,6 +805,7 @@ debian-13-riscv64-gcc:
       CONFIG_GRANT_TABLE=n
       CONFIG_LIVEPATCH=n
       CONFIG_QEMU_PLATFORM=y
+      CONFIG_STATIC_MEMORY=n
       CONFIG_VM_EVENT=n
       CONFIG_XSM=n
 
diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 48520588fe40..d8a348c0cf07 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -6,6 +6,8 @@ config RISCV
 	select GENERIC_BUG_FRAME
 	select GENERIC_UART_INIT
 	select HAS_DEVICE_TREE_DISCOVERY
+	select HAS_DOM0LESS
+	select HAS_DOMAIN_TYPE
 	select HAS_EX_TABLE
 	select HAS_PMAP
 	select HAS_UBSAN
diff --git a/xen/arch/riscv/dom0less-build.c b/xen/arch/riscv/dom0less-build.c
index d1a51b92936a..b5390175538a 100644
--- a/xen/arch/riscv/dom0less-build.c
+++ b/xen/arch/riscv/dom0less-build.c
@@ -102,3 +102,9 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
 
     return 0;
 }
+
+int __init arch_handle_passthrough_prop(struct kernel_info *kinfo,
+                                        struct dt_device_node *node)
+{
+    return 0;
+}
diff --git a/xen/arch/riscv/domain-build.c b/xen/arch/riscv/domain-build.c
index 02b293239142..a70306434fc9 100644
--- a/xen/arch/riscv/domain-build.c
+++ b/xen/arch/riscv/domain-build.c
@@ -158,9 +158,22 @@ int __init make_cpus_node(const struct domain *d, struct kernel_info *kinfo)
     return fdt_end_node(fdt);
 }
 
+int __init construct_hwdom(struct kernel_info *kinfo,
+                           const struct dt_device_node *node)
+{
+    return -EOPNOTSUPP;
+}
+
 int __init make_timer_node(const struct kernel_info *kinfo)
 {
     /* There is no need for timer node for RISC-V. */
 
     return 0;
 }
+
+int __init make_hypervisor_node(struct domain *d,
+                                const struct kernel_info *kinfo,
+                                int addrcells, int sizecells)
+{
+    return -EOPNOTSUPP;
+}
diff --git a/xen/arch/riscv/include/asm/guest-layout.h b/xen/arch/riscv/include/asm/guest-layout.h
index b16ec79c3786..81cc87545054 100644
--- a/xen/arch/riscv/include/asm/guest-layout.h
+++ b/xen/arch/riscv/include/asm/guest-layout.h
@@ -24,4 +24,7 @@
 #define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE, GUEST_RAM1_BASE }
 #define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE, GUEST_RAM1_SIZE }
 
+#define GUEST_MAGIC_BASE  xen_mk_ullong(0x39000000)
+#define GUEST_MAGIC_SIZE  xen_mk_ullong(0x01000000)
+
 #endif /* ASM_RISCV_GUEST_LAYOUT_H */
diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
index 9dbd3a8cbef7..416d2301dcde 100644
--- a/xen/arch/riscv/include/asm/setup.h
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -5,11 +5,13 @@
 
 #include <xen/types.h>
 
+#include <public/xen.h>
+
 struct domain;
 struct dt_device_node;
 struct rangeset;
 
-#define max_init_domid (0)
+extern domid_t max_init_domid;
 
 void setup_mm(void);
 
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index c3e98733ebc3..b8fa004cbf25 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -33,6 +33,8 @@
 #include <asm/traps.h>
 #include <asm/vsbi.h>
 
+domid_t __initdata max_init_domid;
+
 /* Xen stack for bringing up the first CPU. */
 unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
     __aligned(STACK_SIZE);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 14:44:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 14:44:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1303827.1577194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMRD-0004S3-IH; Fri, 08 May 2026 14:44:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1303827.1577194; Fri, 08 May 2026 14:44:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLMRC-0004M8-53; Fri, 08 May 2026 14:44:22 +0000
Received: by outflank-mailman (input) for mailman id 1303827;
 Fri, 08 May 2026 14:44:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLMR5-0002xh-Po
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 14:44:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLMR5-007XaD-4c
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:44:15 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6a0-2eae-0a2a0a5409dd-0a2a450197ec-24
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:15 +0200
Received: from [209.85.208.42] (helo=mail-ed1-f42.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69fdf6bf-c1f2-0a2a45010019-d155d02ac57a-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:44:15 +0200
Received: by mail-ed1-f42.google.com with SMTP id
 4fb4d7f45d1cf-67e24b8ef55so2587511a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 07:44:15 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac4942068sm90736166b.62.2026.05.08.07.44.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 07:44:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778251454; x=1778856254; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CO4ZAVstNY0PwKVvv0ULSFjjKuq4QMczoeLe8/sIixo=;
        b=Hq6NpSLkYSxgc4mnktv23exCUvUP55/20hIf66fgHfmhKf/o5gPPeSsOig+Lev3nFL
         e+rUBJNHAZtPlW51GGAzmyMwQVWRlatp2L3HMlaMxRFYtNimDyX5wCyAzZPf/sJrrHUs
         X6MmdB10AlP/Ra9MsV4c1YnlEOEzmeLra5cnWNha9FTvoNsIjzMprV/L7j8eAmJjSGMC
         ai48FFfa7AdgVuzTTrP2BkSpiWFBG5bpJjRs0d9Fz3HZI6ZHFT/1VvaswoiAmwTY7N4M
         BdjdC/tW9XcukKykRio14J/T/UE4t4QHjeK37G7W9b73t+sAjApoGu/o6VgpAnm+0t5B
         f18A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778251454; x=1778856254;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=CO4ZAVstNY0PwKVvv0ULSFjjKuq4QMczoeLe8/sIixo=;
        b=oI4SvIecKyqqYTwwRH0vG2Z4IiMFFsa1RJ0ZEz+HCgA8Hnu+L81A3L6hZOg4WDWnKn
         ODTD3vmZ/PhymOAFZLxN2x2/uibKUP312CueFaNb/dW6TknbGVlO/XKHwzoEYFGpyw6v
         fBLZ9WwFbgkPKbPw0dlV0QGh0EsgZPsEJnl5R0D6JQwAp6hxpUipTEVQVEGtrRwfZyx9
         /rKMpfIFOd8cC5AVqnGqtodyjejiLfFWr+7oJpLR8B3ARFJo8KALyC4z/L5vsK8aqOi5
         DjQMgoal4pQa4lc+5rKeQ44cwwVeCj2mu8Wtl+ES5Q6nExvRl/tPIPOz185fmkmg1tWk
         VOqw==
X-Gm-Message-State: AOJu0YxICrPsWson+f8R7jAf2a1BHdSIGWUbiCj+S6YTc4QwnO5uFq/T
	ajuuZVLRaS7nQPrndLqjxXFtN4Pxf4tMD5u0Ot0bxzX9Z7a5JtJ7Tu+3WjRgRQ==
X-Gm-Gg: Acq92OEELjN2klNpNboTWYvyvzlS/8CKvJ7I+JDa+LzGIAI2r2s4m/Tc0UVFegVpiTI
	ODDzP2Oa5HZIuFHC8iVUKAS4P0rMSVTi0u7tLywdAQKwvPSxxwZZsnzLMS+xkkr8PuNRUpAAehQ
	FiRj4TvvHHifE5u5xq3oowlotqbiJTCcbsBiRRzBIW2Ui1biqwPy+7rF9inimtnJDpg0SOKizCm
	gTvWgECUfGlwZ1VXZuyVsYEdMX7H9Iv2ln05NSyzjglkZVfyXl1TWx6OhIJCHqTMsWkKcaiiRUN
	JxMWaVZi+BuZnw1cS41+KelE4kCpBa5CzXNtfkuuJtFk4YBPTrpnYhsFpLuiY+rb6BPzeTvX64v
	le0nSOxEV0abuXh/3Ml8nMwv1x2m1QBQIgWGp/T7nZZF/8mw8EIA7X6LlmVzw3H66ezwXK7xYGu
	dAzExZPHZRx83Lc7VemA30b2MO+XcN2j4US8m0kAQaMv6ybPT6G++i83pxAyjLpoYiPQ==
X-Received: by 2002:a17:907:1685:b0:bc6:7238:bd4e with SMTP id a640c23a62f3a-bc67239005cmr555296166b.5.1778251454269;
        Fri, 08 May 2026 07:44:14 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 26/26] xen/riscv: manage IRQ_DISABLED flag in APLIC irq enable/disable callbacks
Date: Fri,  8 May 2026 16:43:28 +0200
Message-ID: <6121dce6347f03030a2de05f29c1780b6fc0cd01.1778250616.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778251455-B655DFF4-E3379D73/10/73395122804
X-purgate-type: spam
X-purgate-size: 2046

desc->status is only set once during setup_irq(), but interrupts can be
enabled/disabled at runtime, so update it in the corresponding callbacks.

wmb() in aplic_irq_enable() ensures do_IRQ(), which can fire immediately
after the interrupt is enabled, sees the updated desc->status. No rmb() is
needed on the do_IRQ() side because desc->status is read under a spinlock,
which implies an acquire barrier.

No barrier is needed in aplic_irq_disable() because the hardware disables
the interrupt before the status is updated, so do_IRQ() cannot fire, and
spin_unlock() makes the updated value visible.

Fixes: d4676a1398bc5 ("xen/riscv: implementation of aplic and imsic operations")
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - New patch.
---
 xen/arch/riscv/aplic.c | 5 +++++
 xen/arch/riscv/irq.c   | 3 ---
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/xen/arch/riscv/aplic.c b/xen/arch/riscv/aplic.c
index 1976733dfbaa..7933a00772a8 100644
--- a/xen/arch/riscv/aplic.c
+++ b/xen/arch/riscv/aplic.c
@@ -161,6 +161,9 @@ static void cf_check aplic_irq_enable(struct irq_desc *desc)
 
     spin_lock(&aplic.lock);
 
+    desc->status &= ~IRQ_DISABLED;
+    wmb();
+
     /* Enable interrupt in IMSIC */
     imsic_irq_enable(desc->irq);
 
@@ -189,6 +192,8 @@ static void cf_check aplic_irq_disable(struct irq_desc *desc)
     /* Disable interrupt in IMSIC */
     imsic_irq_disable(desc->irq);
 
+    desc->status |= IRQ_DISABLED;
+
     spin_unlock(&aplic.lock);
 }
 
diff --git a/xen/arch/riscv/irq.c b/xen/arch/riscv/irq.c
index 4481ae23aa8e..f9c10a7c9faf 100644
--- a/xen/arch/riscv/irq.c
+++ b/xen/arch/riscv/irq.c
@@ -145,9 +145,6 @@ int setup_irq(unsigned int irq, unsigned int irqflags, struct irqaction *new)
         desc->handler->set_affinity(desc, cpumask_of(smp_processor_id()));
 
         desc->handler->startup(desc);
-
-        /* Enable irq */
-        desc->status &= ~IRQ_DISABLED;
     }
 
  err:
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 08 16:28:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 16:28:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304027.1577226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLO3q-0002Ps-Sc; Fri, 08 May 2026 16:28:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304027.1577226; Fri, 08 May 2026 16:28:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLO3q-0002Pl-Pw; Fri, 08 May 2026 16:28:22 +0000
Received: by outflank-mailman (input) for mailman id 1304027;
 Fri, 08 May 2026 16:28:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1wLO3p-0002Nd-9M
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:28:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLO3o-007knQ-Ma
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 18:28:20 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fe0eed-e002-0a2a0a5209dd-0a2a45028ab8-32
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 18:28:20 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fe0f24-af86-0a2a45020019-d155802ba5a5-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 18:28:20 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-48a3e9862f0so14953325e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 09:28:20 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e6d8d69a0sm3326705e9.2.2026.05.08.09.28.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 09:28:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1778257700; x=1778862500; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=4odYMv7FIvcLkk0IlEKAOlg7gcBezyvcr5ysKnJqIv4=;
        b=ecKbahM6HNSuoQOl8Pn7Flk2XdJuy89NHow85Bnlrv3uVLJmtouynq/7+UimfzNEEw
         L5uCp5vqOOHdz4uaE5Rt2YvWI2ELTdUFu2A6qnxbNX0GWydfzFUDyZAf0C/w87EgTc+b
         1B2yeFz2T5o9+yMwuYraTtz4BQSuwxH+lHsB0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778257700; x=1778862500;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4odYMv7FIvcLkk0IlEKAOlg7gcBezyvcr5ysKnJqIv4=;
        b=IQSW7PgcuwYHX6pebuLeIMLJGQ5IBr73W3eRZ3RpnVk1GIKkEABCqvEZoe9WLrGTkk
         MaIzPy0YpGJ5xb7UeMaaaKn2FK+ULEf/RxFFLZC96CnXQQM32aY9/TOehvtYkBPdTOfQ
         x4UdsElDOaLHqBOsr356s7Vj8oi368gdsN7bn51ovPtUl+CbYV5uk6HdKveIzt6DpMcQ
         ytFQZZZbVpwW96ye4VN7k/cqgrx8Aqz455Om6Ad6INlt0QlqC75CqcvMz1l6x2nDVCEF
         Ok7ZHtYCRIrH5TOIxdne6lPGSzR6ibqftMAu3OktpqfhFLetV83GlWyn2UQK3DSzskVS
         w12A==
X-Gm-Message-State: AOJu0YzRvuGB2H+qDeI45WMu0AC6wlv6cv2yglDaUk6R2iPMF4xbR4mw
	dc5cdXzeI8oYejWG9fQ4UI7XOug6ucuiKzvgX62+L2plaH9aPCIuXc6z0VwANRJge/cfNGZpcMf
	skQj2ScQ=
X-Gm-Gg: AeBDievFfq94Ip6oINC5OYOlT9kbG+pDzNNlEKR+vKb7CaJ2wA0Y8gIXOSyQW/WdnAC
	uyVasPbBfEmgzOzb2kD8VrgoFeQ8hCvCiaESliPl3+AhzIJUUZHZLDnhWJEA7Nht7LjXb6FUa20
	Gg9ZsvcQTpjYhIPipJ6CF6LXgBz8FstBQdHgbds6gZzA4akmBxoNwa/8uMZkCBeyXj1A5mQhQXF
	dY/MM7hK7VDzsa0mXukavKEW9UczikJfgvZfdhPfyl+7sebmODFB6iTg+8DiVV4ZGFbt8+mhRsB
	VP5rL14d85vm3gf6HQnmaqDieMp371LGlx6kXv/DFSYPHnP1OGyerX2rNtApDpjs6dNuamOhrQq
	x6SXpnVEXeSSytbWCG1gSl2WIwrILRBeRQNmpo0pFsQArYo8cWf0WF1UM1TnCyG5q6Z/un1xAue
	AQqygoCIC7Vm5aEu0oRQ4JunG3MeG8XSyZ/JNmg1ncziEimT4hulIi0Kdr/TlwTD16wULSetY4b
	JR3CGL0/ZJBmyU=
X-Received: by 2002:a05:600c:32af:b0:48a:534a:eed8 with SMTP id 5b1f17b1804b1-48e5dfcd722mr75823715e9.1.1778257699651;
        Fri, 08 May 2026 09:28:19 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	Michael Young <m.a.young@durham.ac.uk>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] tools/libxl: Fix libxl_nocpuid.c build with json-c
Date: Fri,  8 May 2026 17:28:15 +0100
Message-Id: <20260508162815.1617203-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778257700-8256B161-C917A6F4/0/0
X-purgate-type: clean
X-purgate-size: 1692

libxl_nocpuid.c needs the same treatment as libxl_cpuid.c

Fixes: f6c6f2679d49 ("libxl: Convert libxl__object_to_json() to json-c")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Michael Young <m.a.young@durham.ac.uk>
CC: Stefano Stabellini <sstabellini@kernel.org>

Discovered while trying to complete the ARM CI cleanup.

This supercedes
https://lore.kernel.org/xen-devel/94ffdeb1-6826-4c3a-a9c1-3ccc8b129a61@durham.ac.uk/T/#u
using Anthony's suggested approach.

Failed run:
  https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14282279751

Succeeding run (same container):
  https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14282714527
---
 tools/libs/light/libxl_nocpuid.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/tools/libs/light/libxl_nocpuid.c b/tools/libs/light/libxl_nocpuid.c
index 0630959e760c..ce334633b376 100644
--- a/tools/libs/light/libxl_nocpuid.c
+++ b/tools/libs/light/libxl_nocpuid.c
@@ -40,11 +40,21 @@ int libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid, bool restore,
     return 0;
 }
 
+#ifdef HAVE_LIBJSONC
+int libxl_cpuid_policy_list_gen_jso(json_object **jso_r, libxl_cpuid_policy_list *pl)
+{
+    *jso_r = NULL;
+    return 0;
+}
+#endif
+
+#ifdef HAVE_LIBYAJL
 yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,
                                 libxl_cpuid_policy_list *pcpuid)
 {
     return 0;
 }
+#endif
 
 int libxl__cpuid_policy_list_parse_json(libxl__gc *gc,
                                         const libxl__json_object *o,
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 08 16:36:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 16:36:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304039.1577236 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLOBu-00047d-LH; Fri, 08 May 2026 16:36:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304039.1577236; Fri, 08 May 2026 16:36:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLOBu-00047W-IL; Fri, 08 May 2026 16:36:42 +0000
Received: by outflank-mailman (input) for mailman id 1304039;
 Fri, 08 May 2026 16:36:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wLOBs-00047Q-Ou
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 16:36:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLOBp-00GW9Y-Aw
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 18:36:38 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe110a-5cb7-0a2a0a5109dd-0a2a4506a244-26
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 18:36:37 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe1113-7371-0a2a45060019-94a38ff1baf8-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 18:36:36 +0200
Received: from pps.filterd (m0384717.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 648CB2RZ3850262
 for <xen-devel@lists.xenproject.org>; Fri, 8 May 2026 16:36:34 GMT
Received: from sn4pr2101cu001.outbound.protection.outlook.com
 (mail-southcentralusazon11012004.outbound.protection.outlook.com
 [40.93.195.4])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4e181hxb6d-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 16:36:34 +0000 (GMT)
Received: from BN9PR03CA0574.namprd03.prod.outlook.com (2603:10b6:408:10d::9)
 by LV8PR16MB5838.namprd16.prod.outlook.com (2603:10b6:408:1ef::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May
 2026 16:36:30 +0000
Received: from BN2PEPF0000449E.namprd02.prod.outlook.com
 (2603:10b6:408:10d:cafe::7f) by BN9PR03CA0574.outlook.office365.com
 (2603:10b6:408:10d::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.19 via Frontend Transport; Fri,
 8 May 2026 16:36:30 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 BN2PEPF0000449E.mail.protection.outlook.com (10.167.243.149) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Fri, 8 May 2026 16:36:30 +0000
Received: from pps.filterd (m0426317.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 648FBGQj4098353
 for <xen-devel@lists.xenproject.org>; Fri, 8 May 2026 12:36:29 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4dyxwd3jg5-6
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 12:36:29 -0400 (EDT)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id LOBewzC4cdMWeLOBfwrp6J; Fri, 08 May 2026 16:36:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=ZIGg5HbFp6sGmdutasWExpocmgr
	EWJPzfspOR1qS70A=; b=I/OYbNX8LyvLx9vUPlLoNQbw08tuytXjT8FR2PSGmvX
	+1jpG7eLKQk2rZHcpagYX+nP2GrLHZmRfE8/S2tJm7+3bn9RPP2DXnbe/JAqJpBG
	F1io8wYnE1mjGiKbWIizafifxnWoIZd4KiRrbuIpk621o18ur6Va+wgs2ozbiTXK
	fOG5mAYw5iWltrUAaN8fQMTOY1dSnxgchwno7ftFBAudiTAvyu6djKy1OI9VDOcC
	2uV7MGCr6t4YAqE7tbOU3S/sO/yQiPHFnwRF5mNA5uYDmstc4rxmHj1c8rOLyvEX
	NHuvnrdOwLY8hK2UMezL3E3ADuBRKQSFsSAbVLae6Eg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LVhUWRRhabKqXm8WkSSheJ70s3ruEIHG9C73phFMtSZbGohDSQzqfGl6VntvGwuXjucPCT4sg5DEl90bGuI9AhX0awdLW3zOo646Oe81M+/bX3qc/AF5UvKaAHN6e7N8vmJt3ImVQefy1PoxB5IkQgorYfiOUJTASQ9gLnGJgCPNHc2khsD8WOh1rA6KOycr42zmkQ2yfkctEc+AcQ1SjSt0Sf/kTjNDIbkQgImSI8NOEoN0DkPzNhyicLwwLZxg6mXVG1PcsTWdjsOWXCDkk/uVCXpb/d2dxtZZlkkXvNHQY/Gq6j+fWak9AI9KCBpMd1S2AUMW8+BK09694/WtRg==
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=ZIGg5HbFp6sGmdutasWExpocmgrEWJPzfspOR1qS70A=;
 b=WrUbHp1vZuORQBO612m3e6hBoZJ2Qu2L/IVk4yWFjCJbKO9xaay9g+xy4fvwFExNsG0T9EybzLuT8Gv7pjXMUrdTgdmbf2LH3Zmzgvyb4vSYl4eFQcTOVwOtnwoZBUEUKKCqZnVKTpbEPF+Ciz03nXpfHCsYoxeVl83TVV4p6fFlOcIOCjMQnSIhRIQMgumWoE07yC/7Phnx7zWDyExTF9Juj7IugnOBw9V9BeQYAf3mCaSNY8KyA9vqJ6L8oa5LilnaSwKB/WP8fgxMN5Gbb/F3VRMaFXbT/ERDaJAaHrKqiiUtyOT8DpKZHiuwzZKQUl09noxRXuptKrd1kPcf4Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZIGg5HbFp6sGmdutasWExpocmgrEWJPzfspOR1qS70A=;
 b=e5aVybGGNPvxOs8g/84nJtPvhqF6h5LC1XtT2fU8/zsaAWBBQSbuXKdqrAMryT2+gUn7DOK7YBJ2N+NufBtCSicRgy7XhfLssD2K+7iTn6OSyiKLfxfPCHicxOp7eZ6pPGuYxYpFyWkdb8KncLdXZKDJ9tAxjmWaxWcKLjVYsIY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=ZIGg5HbFp6sGmdutasWExpocmgrEWJPzfspOR1qS70A=; b=df7X0rUWm8tH
	rhJX2TQBtEjl7lAFqRXXbY8/FYAoBw/nJWvzr2YykX7LAFpcbnCbwevf14uL6cct
	KxISBk6cRK7dn3sav2I/F4dibcr92e1DqR4ljOhJD/BjKKjCToFhiTGrB/r40kJh
	Li1ZDrD4hEijdZDe747dshH8p8JyjgC0RXkH/UtvZwT9B8sUNVVd5zmosTTrxKZ5
	BFaMrabHg6NMvUDquzUTTD2+uV8W8kEk/bPVUl1YFLg8tXbsDXaWzHsgxMlvM4kV
	qy/C6xj/Wipf7MaKR+eHD88I3MlMQzKXYP3Hbgbp8YxcbPkabGIP/hKEe3R4fUGl
	72MzuAlcaw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=ZIGg5HbFp6sGmdutasWE
	xpocmgrEWJPzfspOR1qS70A=; b=OGcWcmra6Qx2JOwrtZnfDJ9dvJtJd1Feqfk0
	+TArU3hBGHUmL3XhcMBVDEEEfXiuZBJ3i8ybuRD/BkoYm8VpP7sIcHm+2pqw/gnw
	s8uAWWq0fj7zQ+BQJJCLD+I8KTgW96n7SYVegQxcev58KeXzOxEmL0Jj9AJtdbq/
	Jx8QWBouHzZyuuG6aIpSQh/yD/De1vTRDOWYaYsM2HTO2c+i7AD6ABEuMq13v+yp
	r4+zFHiO+WaCERo+tUe0ORlp2pZOYRtDBkkrMae/B2HUEOlbr15IBwgjaEQd09jF
	5YWklh35S7ixKCZ6aDh+VnYf/4x0+MEKbIlzoicb85reMVILzQ==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: LOBewzC4cdMWeLOBfwrp6J
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Fri, 8 May 2026 09:36:26 -0700
To: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
        Anthony PERARD <anthony.perard@vates.tech>,
        Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
        Julien Grall <julien@xen.org>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        xen-devel@lists.xenproject.org
Subject: Re: [PATCH] ns16550: add support for WCH CH382 serial adapters
Message-ID: <af4RCveh5RkQB5VZ@kraken>
References: <20260508092813.12894-1-Zhao.Jiaqing@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260508092813.12894-1-Zhao.Jiaqing@amd.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-07_02,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 lowpriorityscore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000
 definitions=main-2605080166
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF0000449E:EE_|LV8PR16MB5838:EE_
X-MS-Office365-Filtering-Correlation-Id: 285f6c94-7007-442b-165c-08dead1ff561
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|1800799024|82310400026|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	R+6oyIbh9HkpUNEYpRSBMu3hvBzRvZycT8FumTWt7AcrnzhZfpvkfFEngY1ADKDfwC+jZiOzlQnrr2FfJ0OsS+fjho7UkVuzCBHSCZ/ZTQRPL5PCizsSyk5MCWtJbWU/DcAD22KWywfZ1YeCWdRiDjzk6eEt2cCDNoBYRvSnHLynEjruRFRh2CrzWozny4hcqtg7zC+yn2knXehtUyyc3FLlLELzHeIQrUyYoP6KroEw2Iug9N4lqK3Uf+wwoCPpW4/Yt9RAg4jKIR1O0eqNDLLKIOsDsFbnA6stuZ+EUolHpgDvxDXRG57v0oq4NGOy7SDAbw46v72dJo1NF7+AFtOCsAjamPV9OMKh1YL7Kcndr+puDGwsppHY/5YtPumKk4biBK7GRxLnx/6MTIYw/ODFNUZ9fk1Iena8evc7nvWWL/HMWumKL+9jV6eML1sUVUS/ImJnGYgChLiCuXk01ofyr798xDA4DklXmC75oHo7fJAUdRh3qMpmnM5vNHlm0LUTMLNPSt9KvquptSGdQJKcpQBd8DVdO/iaZxr/v08NRLma6Va+jAFoU+W5gMIdxIIxcwIPN4r7QUUYFJAONvaVUhFm1tcXak+XODaWZxEUbGzKBk5spLrORtr5WXganhwz3HQAMGg0DBqM4WcKSwerhCbW5XiP14gm7qrVsyU=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700016)(376014)(1800799024)(82310400026)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	79nuKWS279dfA8BHg73j5Z32CrrjyEOM3hDWvdSW3jZGdH+C89B1IscW3//ipw9CXjllbjPMwFvKkm69s590Bprjsyu4SmlKpxN8HvThgxKgbeoQIbkYyd8Lwj/qve9+w7CxvzE9MF1P3g9Z4IhWjnn+oBhWxYQNVWcQc1L5jLM37YJHpwIelvylhLe9HVwJz+NK/AILQUqY2SXwfczXxSacu9P+ZkTb9xOZmCrshlDndj1AJKhDfwUgxZPmcoEd1fVe2BRYo7kTlw4yGZekW3U791Luk5j9Vh1TvBgcSfQGLytcNPCmBQA+R/ic79G3/BiDMwfHUyKKC6yZjDaXcChWD8/WYxuedTuS8gk6xUuW/AddrhQhp1IcwTECjMss+J1FUydu62rmOG6gJrjmLq2Qdc12AUId7y2cp9ISppoRw0gotI4d0wlP06YThjQs
X-Exchange-RoutingPolicyChecked:
	olzqCzcslujt7lFTArsPuq2+SzjqPb8oZbz9iX+NdehOiTIhkUVf5Fb7FgsJ2mGh0u3kFOjFj7aMVzLVIHaj/rUuZBkvEOw4psXA7sqAtZCxZGbXxnmrK/p0lkEsCIQM2/SWQHEiF4sCM/6c+YlNdUsv95eLw3TNUfcjB6Od+5xoAzQy3T6JzRAVgBdoxSS8AZpWIrbIEDChrTTOYi1L/SQIACmUce4UsUi6tIwfo8nHEMR8CctR84JQexIGTG5XjRFT8T9K8QrW0cA7BVXlirq7Q6sYpY860GiDW02smL/m8VR23K2SsZFopbHlt2AlPERTcBQuXlpI7U5id4/lGA==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	R+AsyJMG45MAd8WSScLpgRpZbnxqrIeaHSh8DnSls0TnrAreT0+R0g0uxShQbTwRsyrxLTOE0hILKc7CoZL+xISS05Oo62s7rRtZe2Gr7uqQswqygJ1JTsBxe/PTyzmFNvwfC9OLYkZxUKDsHet2FgdweKuDpvj/4ISb/tyQNdrVzUu3lC8iQvzn1FwZz2oeRGfuLzOrCaNjj6rc/6zjeqklOQsRCb1fVVP+uJtd9WhMg6EllAef6RAGEsTj40tmCdDW2Jmw6BJ1kgQDAHvkhZkXseQZYcalDuuDFs9ZRPfBPPCb92UwFehirjTArx4wNj0N5VW9fKsdUEHLQv6+eKzPSQngOKEPV7knESQA89nZkNI2nWYc38QgDBh1Pgyv1XCeboqWEoiIX4P8JBXAsM4F3Z6SoVC82tK6JIrpjzXNOvrEpyFMKtvShF3UH7tWFnlwdgqfPsci66LI/oP8VZYPqufNLBfTyfhGeyslEoezKLPyoGb1uE15hLCtYDqhNjdN3siRFmx+txJednwBSp9wq3yUoixu2syOkXMfCj+POoPu/t1Sfxxx0NCtUgCGf2tAFnp29KJQUIFf6RhAV0oV7uwpapepla6zccmcT2KoWwJbwZVG/J85ruBVigA7
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 16:36:30.2469
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 285f6c94-7007-442b-165c-08dead1ff561
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF0000449E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR16MB5838
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA4MDE2NiBTYWx0ZWRfX//BkhmWb+4jk
 1rBH2wt1kvtzCPy1zQivNfki/6Y2XJuTAfUOB9UELzSvVzZ2j/oaA4AGKIsZT3JAlCHcS4Yq8pL
 ZUyePiI2lh8lanDmLWoJ0clFkNRJ12WidIbXnjgRBc5o+0ROFV+KTm3JLkNix7W5FH4R6dmQiZB
 w0bSdmqPRJVeeouBT4UjT5yzFOXmhq5DDR51zPqee6Pm7ZTzfzMqXWyhc1ugvTUoTD5D/dlu/j0
 HWL3b6d8ArjsJuqNF3ko6x9aLFJcuAu7jO6U2J7RW40QGDDd94fLFHcSMrrsnXpslrAG7cHX7zP
 rB4u8fiGoyqhaBCG71ZSWU6fQuHHOSTFIs7F7/MIOnv5FE8JaihsZ3z0+u0a2m3kWjEUULqH9aD
 mUCyytSvfcthWV2yeBHPA7Pfi2N0jdQutz15hwej8xvOb8iWNwRlnBd+XEVGhyoLJxLDP7alKI0
 BeqtH4kcvdYj1wk1wBA==
X-Proofpoint-ORIG-GUID: wrtJ6toKEpe8vsJCpYCH_dvI_53oRrwC
X-Authority-Analysis: v=2.4 cv=eJwjSnp1 c=1 sm=1 tr=0 ts=69fe1112 cx=c_pps
 a=eN70jGNn7EKSdYhrfilGAg==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=AHe91QgOk3R4nFVtG5At:22
 a=YevQRCLIAAAA:8 a=zd2uoN0lAAAA:8 a=cbNQJ9GKAAAA:8 a=U4kg86Iv_G8tikhSs-UA:9
 a=CjuIK1q_8ugA:10 a=DqJYxgmhk6moR-_7_KoZ:22 a=BY5erhXd-_4Bw9I01UXG:22
X-Proofpoint-GUID: wrtJ6toKEpe8vsJCpYCH_dvI_53oRrwC
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-07_02,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 phishscore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0
 impostorscore=0 spamscore=0 clxscore=1015 malwarescore=0 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605080166
X-purgate-ID: tlsNG-16d1c6/1778258197-8ED88D75-C60E9A3C/0/0
X-purgate-type: clean
X-purgate-size: 2242

On Fri, May 08, 2026 at 05:28:13PM +0800, Jiaqing Zhao wrote:
> Add support for the WCH (Nanjing Qinheng Microelectronics Co., Ltd.)
> CH382 PCIe dual port serial adapter. The CH382 is available in two
> variants:
>  - CH382 2S   [1c00:3253]: 2 serial ports
>  - CH382 2S1P [1c00:3250]: 2 serial ports + 1 parallel port
> 
> This chip uses IO BAR0, base baud rate 115200, ports starting at offset
> 0xc0 and spaced 8 bytes apart, and a 256-byte FIFO. [1]
> 
> [1] https://www.wch-ic.com/downloads/CH382DS1_PDF.html
> 
> Signed-off-by: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
> ---
>  xen/drivers/char/ns16550.c | 23 +++++++++++++++++++++++
>  xen/include/xen/pci_ids.h  |  2 ++
>  2 files changed, 25 insertions(+)
> 
> diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
> index 878da27f2e..106ef56316 100644
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -95,6 +95,7 @@ struct ns16550_config {
>          param_exar_xr17v354,
>          param_exar_xr17v358,
>          param_intel_lpss,
> +        param_wch_ch382,
>      } param;
>  };
>  
> @@ -861,6 +862,16 @@ static const struct ns16550_config_param __initconst uart_param[] = {
>          .mmio = 1,
>          .max_ports = 1,
>      },
> +    [param_wch_ch382] = {
> +        .base_baud = 115200,
> +        .first_offset = 0xc0,
> +        .uart_offset = 8,
> +        .reg_width = 1,
> +        .fifo_size = 256,
> +        .lsr_mask = UART_LSR_THRE,
> +        .bar0 = 1,
> +        .max_ports = 2,
> +    },
>  };
>  
>  static const struct ns16550_config __initconst uart_config[] =
> @@ -1189,6 +1200,18 @@ static const struct ns16550_config __initconst uart_config[] =
>          .dev_id = 0x7adc,
>          .param = param_intel_lpss
>      },
> +    /* WCH CH382 2S */
> +    {
> +        .vendor_id = PCI_VENDOR_ID_WCH,
> +        .dev_id = 0x3253,
> +        .param = param_wch_ch382
> +    },
> +    /* WCH CH382 2S1P */
> +    {
> +        .vendor_id = PCI_VENDOR_ID_WCH,
> +        .dev_id = 0x3250,
> +        .param = param_wch_ch382
> +    },

Suggest to keep the records sorted by .dev_id field.

With that:

Reviewed-by: Denis Mukhin <dmukhin@ford.com> 


From xen-devel-bounces@lists.xenproject.org Fri May 08 20:29:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 20:29:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304093.1577246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLRoj-0000UX-Ev; Fri, 08 May 2026 20:29:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304093.1577246; Fri, 08 May 2026 20:29:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLRoj-0000UQ-9u; Fri, 08 May 2026 20:29:01 +0000
Received: by outflank-mailman (input) for mailman id 1304093;
 Fri, 08 May 2026 20:29:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wLRoi-0000UK-Ct
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 20:29:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLRog-00Ap9l-Ao
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 22:28:58 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fe475c-e002-0a2a0a5209dd-0a2a4503ec68-26
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:28:58 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fe4789-672d-0a2a45030019-a0658309b772-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:28:57 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 4A4448245FD5;
 Fri,  8 May 2026 16:27:51 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Juergen Gross <jgross@suse.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>
Subject: [PATCH v7 0/3] xen/mm: Introduce NUMA-aware memory claim sets
Date: Fri,  8 May 2026 21:27:56 +0100
Message-Id: <cover.1778272036.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1778272138-39D7B938-8ACBBA69/0/0
X-purgate-type: clean
X-purgate-size: 4355

Xen's existing memory claim interface can account only for a host-wide
amount of memory for a domain. That is not enough for toolstacks that need
to claim memory from particular NUMA nodes before building the domain.

This series extends Xen's memory claim design to support claim sets with
NUMA-node-specific entries. Roger Pau Monné summarized the core design
requirement as:

   Ideally, we would need to introduce a new hypercall that allows
   making claims from multiple nodes in a single locked region, as to
   ensure success or failure in an atomic way.

A claim set can contain multiple node-specific claims and a host-wide
claim for memory that may come from any NUMA node. The new domctl
installs the full claim set atomically, and the allocator is updated
so that claim checks and claim consumption are NUMA-node aware.

The components are:

1. installing multi-node claim sets atomically,
2. protecting claimed pages from other claim requests and allocations, and
3. redeeming claims in a NUMA-aware manner when satisfying allocations
   for domains with claims.

Legacy XENMEM_claim_pages behaviour is preserved; the legacy interface
is deprecated and superseded by XEN_DOMCTL_claim_memory.

This update addresses v6 review comments, refactors claim redemption,
and adds a GET operation for inspecting a domain's claim set.

Only one preparatory patch remains in this version, followed by the main
feature and finally the OCaml bindings.

The updated design document for this series was submitted on May 5:
https://lists.xen.org/archives/html/xen-devel/2026-05/msg00163.html
Rendered version: https://xen.kaindl.dev/claims-v7-design/designs/claims/

The core operational principles have been validated in the following ways:

1. A comprehensive functional system test suite running in Dom0,
   which will follow this submission.

2. A native integration test environment for the Xen page allocator,
   providing a configurable synthetic Xen heap for each test case,
   which will follow this submission as well.

3. A set of high-level functional integration tests and performance
   tests, executed as part of end-to-end product deployment validation.

4. Validation in a customer's application performance lab to confirm
   performance expectations. This was done on predecessor code sharing
   the same design; that earlier code only supported single-node claims.

Best regards,
Bernhard

Changes since v6:
- Incorporated v6 review feedback.
- Restored claim invariants as needed after offlining pages.
- Addressed Jan's point about the ambiguity of the term "global":
   See https://lists.xen.org/archives/html/xen-devel/2026-05/msg00026.html
- Use "host-wide claims", with "host_claims" and "node_claims" as shorthands.

In addition, I adjusted helper names to make the domain scope explicit
and to keep the "release", "set", and "get" operations named consistently:

  * deduct_global_claims()         -> domain_release_host_claims()
  * deduct_node_claims()           -> domain_release_node_claims()
  * domain_set_outstanding_pages() -> domain_set_claim_entries()
  * domain_get_claim_entries() was added.

- The new domain_set_claim_entries() helper also handles the legacy
  XENMEM_claim_pages interface for backward compatibility, replacing
  domain_set_outstanding_pages().

Bernhard Kaindl (3):
  xen/mm: Introduce per-node free page counter
  xen/mm: Introduce NUMA-aware memory claim sets
  tools/ocaml: Add OCaml binding for NUMA claim sets

 tools/include/xenctrl.h             |  11 +
 tools/libs/ctrl/xc_domain.c         |  28 ++
 tools/ocaml/libs/xc/xenctrl.ml      |  10 +
 tools/ocaml/libs/xc/xenctrl.mli     |  10 +
 tools/ocaml/libs/xc/xenctrl_stubs.c |  50 ++++
 xen/common/domain.c                 |   5 +-
 xen/common/domctl.c                 |  57 ++++
 xen/common/memory.c                 |   5 +-
 xen/common/page_alloc.c             | 416 +++++++++++++++++++++++-----
 xen/include/public/domctl.h         |  38 +++
 xen/include/public/memory.h         |   2 +
 xen/include/xen/mm.h                |   6 +-
 xen/include/xen/sched.h             |   4 +
 xen/xsm/flask/hooks.c               |   1 +
 xen/xsm/flask/policy/access_vectors |   1 +
 15 files changed, 570 insertions(+), 74 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 08 20:31:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 20:31:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304115.1577253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLRr6-00020R-Qx; Fri, 08 May 2026 20:31:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304115.1577253; Fri, 08 May 2026 20:31:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLRr6-00020K-OR; Fri, 08 May 2026 20:31:28 +0000
Received: by outflank-mailman (input) for mailman id 1304115;
 Fri, 08 May 2026 20:31:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wLRr4-00020C-NW
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 20:31:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLRr4-0008Mq-4d
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 22:31:26 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fe4817-5cb7-0a2a0a5109dd-0a2a450adec8-8
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:31:26 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fe481d-56b3-0a2a450a0019-a0658308cc16-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:31:25 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 620124373E19;
 Fri,  8 May 2026 16:30:30 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH v7 1/3] xen/mm: Introduce per-node free page counter
Date: Fri,  8 May 2026 21:27:57 +0100
Message-Id: <a0b83b0781319009c3862389469dc59db59e0b29.1778272036.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1778272036.git.bernhard.kaindl@citrix.com>
References: <cover.1778272036.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778272286-7176D8B7-6DC2C879/0/0
X-purgate-type: clean
X-purgate-size: 3964

From: Alejandro Vallejo <alejandro.vallejo@cloud.com>

Add node_avail_pages[], updated under heap_lock in sync with
avail[node][zone] to cache the per-node sum of free pages.

Use it in avail_node_heap_pages() to avoid summing all zones on each
call. Guard it with nodeid < MAX_NUMNODES and node_online(nodeid).

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
This patch was originally sent by Alejandro Vallejo:
https://lists.xenproject.org/archives/html/xen-devel/2025-03/msg01130.html

I use node_avail_pages[] in avail_node_heap_pages() as an optimisation.

Verification of the changes:

1. node_avail_pages[node] is updated whenever avail[node][zone] changes,
   so the two remain in sync.

2. avail_node_heap_pages() previously summed all zones of a node and now
   returns node_avail_pages[node], so the same free buddy pages are
   counted.

3. avail_node_heap_pages() returns 0 for offline nodes and for nodes
   >= MAX_NUMNODES as before.

4. avail_node_heap_pages(-1) returned the sum from all nodes, equal
   to total_avail_pages, but this is not used by current callers.
   avail_heap_pages(z, z, -1) is used by other callers for that instead.
   To avoid dead code, a check for -1 to implement this is not added.

Update locations:

- free_heap_pages() increments node_avail_pages[node] alongside
  avail[node][zone] when pages are freed, including during heap
  initialisation.

- alloc_heap_pages() decrements node_avail_pages[node] alongside
  avail[node][zone] when pages are allocated.

- reserve_offlined_page() decrements node_avail_pages[node] alongside
  avail[node][zone] when pages are offlined.

Colored pages do not go through the buddy allocator.
Since they do not update avail[node][zone], they are
not reflected in node_avail_pages[node] either.

N.B. Current callers already iterate over online nodes only.

Changes since v6:
- Preserved the 0 return for offline nodes and nodes >= MAX_NUMNODES.
---
 xen/common/page_alloc.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 2c4ff2c34c70..7e17bafa1e45 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -485,6 +485,7 @@ static unsigned long node_need_scrub[MAX_NUMNODES];
 
 static unsigned long *avail[MAX_NUMNODES];
 static unsigned long total_avail_pages;
+static unsigned long node_avail_pages[MAX_NUMNODES];
 
 static DEFINE_SPINLOCK(heap_lock);
 /* Total outstanding claims by all domains */
@@ -1050,6 +1051,8 @@ static struct page_info *alloc_heap_pages(
     avail[node][zone] -= request;
     ASSERT(total_avail_pages >= request);
     total_avail_pages -= request;
+    ASSERT(node_avail_pages[node] >= request);
+    node_avail_pages[node] -= request;
 
     if ( d && d->outstanding_pages && !(memflags & MEMF_no_refcount) )
     {
@@ -1243,6 +1246,8 @@ static int reserve_offlined_page(struct page_info *head)
         avail[node][zone]--;
         ASSERT(total_avail_pages > 0);
         total_avail_pages--;
+        ASSERT(node_avail_pages[node] > 0);
+        node_avail_pages[node]--;
 
         page_list_add_tail(cur_head,
                            test_bit(_PGC_broken, &cur_head->count_info) ?
@@ -1566,6 +1571,7 @@ static void free_heap_pages(
 
     avail[node][zone] += 1 << order;
     total_avail_pages += 1 << order;
+    node_avail_pages[node] += 1 << order;
     if ( need_scrub )
     {
         node_need_scrub[node] += 1 << order;
@@ -2831,7 +2837,9 @@ unsigned long avail_domheap_pages_region(
 
 unsigned long avail_node_heap_pages(unsigned int nodeid)
 {
-    return avail_heap_pages(MEMZONE_XEN, NR_ZONES -1, nodeid);
+    if ( nodeid < MAX_NUMNODES && node_online(nodeid) )
+        return node_avail_pages[nodeid];
+    return 0;
 }
 
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 08 20:37:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 20:37:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304146.1577263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLRwV-0002cx-DG; Fri, 08 May 2026 20:37:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304146.1577263; Fri, 08 May 2026 20:37:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLRwV-0002cq-A7; Fri, 08 May 2026 20:37:03 +0000
Received: by outflank-mailman (input) for mailman id 1304146;
 Fri, 08 May 2026 20:37:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wLRwT-0002ck-4h
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 20:37:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLRwS-00Aq1l-EX
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 22:37:00 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fe4906-2eae-0a2a0a5409dd-0a2a4506dc28-46
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:37:00 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fe496b-7371-0a2a45060019-a0658309d4c2-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:37:00 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 972C78245F8E;
 Fri,  8 May 2026 16:35:53 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v7 2/3] xen/mm: Introduce NUMA-aware memory claim sets
Date: Fri,  8 May 2026 21:27:58 +0100
Message-Id: <ddcc692d642aaf6dec84dcdb17ebaf2b8c09c7b0.1778272036.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1778272036.git.bernhard.kaindl@citrix.com>
References: <cover.1778272036.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1778272620-7F77FD75-8A8972F8/0/0
X-purgate-type: clean
X-purgate-size: 31474

This commit extends Xen's memory claim design to support installing claim
sets spanning multiple NUMA nodes atomically. As Roger Pau Monné suggested:

  Ideally, we would need to introduce a new hypercall that allows
  making claims from multiple nodes in a single locked region, as to
  ensure success or failure in an atomic way.

A claim set can contain multiple node-specific claims and a host-wide
claim for memory that may come from any NUMA node. The new domctl
installs the full claim set atomically, and the allocator is updated
so that claim checks and claim consumption follow the new semantics.

This adds:

1. installing multi-node claim sets atomically,
2. protecting claimed pages from other claim requests and allocations, and
3. redeeming held claims when satisfying allocations.

Legacy XENMEM_claim_pages behaviour is preserved; the interface is
deprecated and superseded by XEN_DOMCTL_claim_memory.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>

---
The v7 design document submitted ahead of this series may help with review.
It explains the background, design rationale, and implementation details.

Rendered version: https://xen.kaindl.dev/claims-v7-design/designs/claims

Many thanks to everyone who contributed to the earlier work and review:
especially Roger Pau Monné, Alejandro Vallejo, Jan Beulich, Andrew Cooper,
Marcus Granado, and Edwin Török.

Thanks,
Bernhard
---
 tools/include/xenctrl.h             |  11 +
 tools/libs/ctrl/xc_domain.c         |  28 ++
 xen/common/domain.c                 |   5 +-
 xen/common/domctl.c                 |  57 ++++
 xen/common/memory.c                 |   5 +-
 xen/common/page_alloc.c             | 410 +++++++++++++++++++++++-----
 xen/include/public/domctl.h         |  38 +++
 xen/include/public/memory.h         |   2 +
 xen/include/xen/mm.h                |   6 +-
 xen/include/xen/sched.h             |   4 +
 xen/xsm/flask/hooks.c               |   1 +
 xen/xsm/flask/policy/access_vectors |   1 +
 12 files changed, 493 insertions(+), 75 deletions(-)

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index d5dbf69c8968..fffa4d3b9c09 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -2659,6 +2659,17 @@ int xc_domain_set_llc_colors(xc_interface *xch, uint32_t domid,
                              const uint32_t *llc_colors,
                              uint32_t num_llc_colors);
 
+/*
+ * Set or get memory claims for a domain.
+ *
+ * For XEN_DOMCTL_CLAIM_MEMORY_GET, callers may pass *nr_entries == 0 and
+ * claim_set == NULL to query the number of records needed. In that case the
+ * call fails with ERANGE and updates *nr_entries with the required count.
+ */
+int xc_domain_claim_memory(xc_interface *xch, uint32_t domid, uint32_t mode,
+                           uint32_t *nr_entries,
+                           xen_memory_claim_t *claim_set);
+
 #if defined(__arm__) || defined(__aarch64__)
 int xc_dt_overlay(xc_interface *xch, void *overlay_fdt,
                   uint32_t overlay_fdt_size, uint8_t overlay_op);
diff --git a/tools/libs/ctrl/xc_domain.c b/tools/libs/ctrl/xc_domain.c
index 01c0669c8863..f78e085dd700 100644
--- a/tools/libs/ctrl/xc_domain.c
+++ b/tools/libs/ctrl/xc_domain.c
@@ -1070,6 +1070,34 @@ int xc_domain_remove_from_physmap(xc_interface *xch,
     return xc_memory_op(xch, XENMEM_remove_from_physmap, &xrfp, sizeof(xrfp));
 }
 
+/* Set or get memory claims for a domain. */
+int xc_domain_claim_memory(xc_interface *xch, uint32_t domid, uint32_t mode,
+                           uint32_t *nr_entries, xen_memory_claim_t *claim_set)
+{
+    struct xen_domctl domctl = {};
+    DECLARE_HYPERCALL_BOUNCE(claim_set, *nr_entries * sizeof(*claim_set),
+                             XC_HYPERCALL_BUFFER_BOUNCE_BOTH);
+    int ret;
+
+    if ( xc_hypercall_bounce_pre(xch, claim_set) )
+        return -1;
+
+    domctl.cmd = XEN_DOMCTL_claim_memory;
+    domctl.domain = domid;
+    domctl.u.claim_memory.mode = mode;
+    domctl.u.claim_memory.nr_entries = *nr_entries;
+    set_xen_guest_handle(domctl.u.claim_memory.claim_set, claim_set);
+
+    ret = do_domctl(xch, &domctl);
+
+    *nr_entries = domctl.u.claim_memory.nr_entries;
+
+    xc_hypercall_bounce_post(xch, claim_set);
+
+    return ret;
+}
+
+/* XENMEM_claim_pages is deprecated; use xc_domain_claim_memory() instead. */
 int xc_domain_claim_pages(xc_interface *xch,
                                uint32_t domid,
                                unsigned long nr_pages)
diff --git a/xen/common/domain.c b/xen/common/domain.c
index bb9e210c2895..8cb4241b0511 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1319,7 +1319,10 @@ int domain_kill(struct domain *d)
         rspin_barrier(&d->domain_lock);
         argo_destroy(d);
         vnuma_destroy(d->vnuma);
-        domain_set_outstanding_pages(d, 0);
+        /* Release all outstanding claims of the domain. */
+        domain_set_claim_entries(d, 1, &(xen_memory_claim_t){
+            .target = XEN_DOMCTL_CLAIM_MEMORY_HOST, .pages = 0,
+        });
         /* fallthrough */
     case DOMDYING_dying:
         rc = domain_teardown(d);
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 93738931c575..391f256f013c 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -51,6 +51,57 @@ static int xenctl_bitmap_to_nodemask(nodemask_t *nodemask,
                                    MAX_NUMNODES);
 }
 
+/* Set or get memory claims for a domain. */
+static int claim_memory(struct domain *d,
+                        struct xen_domctl_claim_memory *uinfo, bool *copyback)
+{
+    xen_memory_claim_t *entries;
+    int rc = -EFAULT;
+
+    /* Reject LLC coloring; alloc_color_heap_page() does not handle claims. */
+    if ( llc_coloring_enabled )
+        return -EOPNOTSUPP;
+
+    switch ( uinfo->mode )
+    {
+    case XEN_DOMCTL_CLAIM_MEMORY_SET:
+        if ( !uinfo->nr_entries )
+            return -EINVAL;
+        if ( uinfo->nr_entries > MAX_NUMNODES + 1 )
+            return -E2BIG;
+        break;
+    case XEN_DOMCTL_CLAIM_MEMORY_GET:
+        if ( uinfo->nr_entries > MAX_NUMNODES + 1 )
+            uinfo->nr_entries = MAX_NUMNODES + 1;
+        break;
+    default:
+        return -EOPNOTSUPP;
+    }
+    if ( d->is_dying )
+        return -ESRCH;
+
+    entries = xmalloc_array(xen_memory_claim_t, uinfo->nr_entries);
+    if ( entries == NULL )
+        return -ENOMEM;
+
+    switch ( uinfo->mode )
+    {
+    case XEN_DOMCTL_CLAIM_MEMORY_SET:
+        if ( !copy_from_guest(entries, uinfo->claim_set, uinfo->nr_entries) )
+            rc = domain_set_claim_entries(d, uinfo->nr_entries, entries);
+        break;
+    case XEN_DOMCTL_CLAIM_MEMORY_GET:
+        rc = domain_get_claim_entries(d, &uinfo->nr_entries, entries);
+        *copyback = true;
+        if ( !rc && copy_to_guest(uinfo->claim_set, entries,
+                                  uinfo->nr_entries) )
+            rc = -EFAULT;
+        break;
+    }
+    xfree(entries);
+    return rc;
+}
+
 void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info)
 {
     struct vcpu *v;
@@ -865,6 +916,12 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
             copyback = true;
         break;
 
+    case XEN_DOMCTL_claim_memory:
+        ret = xsm_claim_pages(XSM_PRIV, d);
+        if ( !ret )
+            ret = claim_memory(d, &op->u.claim_memory, &copyback);
+        break;
+
     default:
         ret = arch_do_domctl(op, d, u_domctl);
         break;
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 1ad4b51c5b02..d7515da28fe3 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -1805,7 +1805,10 @@ long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
             rc = -EINVAL;
 
         if ( !rc )
-            rc = domain_set_outstanding_pages(d, reservation.nr_extents);
+            rc = domain_set_claim_entries(d, 1, &(xen_memory_claim_t){
+                .target = XEN_DOMCTL_CLAIM_MEMORY_LEGACY,
+                .pages = reservation.nr_extents,
+            });
 
         rcu_unlock_domain(d);
 
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 7e17bafa1e45..46c01a9fca2a 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -477,6 +477,11 @@ mfn_t __init alloc_boot_pages(unsigned long nr_pfns, unsigned long pfn_align)
 #define page_to_zone(pg) (is_xen_heap_page(pg) ? MEMZONE_XEN :  \
                           (flsl(mfn_x(page_to_mfn(pg))) ? : 1))
 
+/*
+ * The heap, page, and claim counters below, and all claim counters
+ * in struct domain, are protected by heap_lock. The lock order with
+ * d->page_alloc_lock is d->page_alloc_lock first, then heap_lock.
+ */
 typedef struct page_list_head heap_by_zone_and_order_t[NR_ZONES][MAX_ORDER+1];
 static heap_by_zone_and_order_t *_heap[MAX_NUMNODES];
 #define heap(node, zone, order) ((*_heap[node])[zone][order])
@@ -491,6 +496,9 @@ static DEFINE_SPINLOCK(heap_lock);
 /* Total outstanding claims by all domains */
 static unsigned long outstanding_claims;
 
+/* Sum of the outstanding claims of all domains per node */
+static unsigned long claimed_pages[MAX_NUMNODES];
+
 static unsigned long avail_heap_pages(
     unsigned int zone_lo, unsigned int zone_hi, unsigned int node)
 {
@@ -520,67 +528,6 @@ unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
     return d->tot_pages;
 }
 
-int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
-{
-    int ret = -ENOMEM;
-    unsigned long claim, avail_pages;
-
-    /*
-     * Two locks are needed here:
-     *  - d->page_alloc_lock: protects accesses to d->{tot,max,extra}_pages.
-     *  - heap_lock: protects accesses to d->outstanding_pages, total_avail_pages
-     *    and outstanding_claims.
-     */
-    nrspin_lock(&d->page_alloc_lock);
-    spin_lock(&heap_lock);
-
-    /* pages==0 means "unset" the claim. */
-    if ( pages == 0 )
-    {
-        outstanding_claims -= d->outstanding_pages;
-        d->outstanding_pages = 0;
-        ret = 0;
-        goto out;
-    }
-
-    /* only one active claim per domain please */
-    if ( d->outstanding_pages )
-    {
-        ret = -EINVAL;
-        goto out;
-    }
-
-    /* disallow a claim not exceeding domain_tot_pages() or above max_pages */
-    if ( (pages <= domain_tot_pages(d)) || (pages > d->max_pages) )
-    {
-        ret = -EINVAL;
-        goto out;
-    }
-
-    /* how much memory is available? */
-    avail_pages = total_avail_pages;
-
-    avail_pages -= outstanding_claims;
-
-    /*
-     * Note, if domain has already allocated memory before making a claim
-     * then the claim must take domain_tot_pages() into account
-     */
-    claim = pages - domain_tot_pages(d);
-    if ( claim > avail_pages )
-        goto out;
-
-    /* yay, claim fits in available memory, stake the claim, success! */
-    d->outstanding_pages = claim;
-    outstanding_claims += d->outstanding_pages;
-    ret = 0;
-
-out:
-    spin_unlock(&heap_lock);
-    nrspin_unlock(&d->page_alloc_lock);
-    return ret;
-}
-
 #ifdef CONFIG_SYSCTL
 void get_outstanding_claims(uint64_t *free_pages, uint64_t *outstanding_pages)
 {
@@ -858,6 +805,253 @@ static void check_and_stop_scrub(struct page_info *head)
     }
 }
 
+/* Release claims from the host-wide claims pool of the domain. */
+static unsigned long domain_release_host_claims(struct domain *d,
+                                                unsigned long release)
+{
+    unsigned long host_wide_claims;
+
+    ASSERT(d->outstanding_pages >= d->node_claims);
+    host_wide_claims = d->outstanding_pages - d->node_claims;
+
+    if ( release > host_wide_claims )
+        release = host_wide_claims;
+
+    ASSERT(release <= outstanding_claims);
+
+    outstanding_claims -= release;
+    d->outstanding_pages -= release;
+
+    return release;
+}
+
+/* Release claims from the node-specific claims pool of the domain. */
+static unsigned long domain_release_node_claims(
+    struct domain *d, nodeid_t node, unsigned long release)
+{
+    if ( !d->claims[node] )
+        return 0;
+
+    if ( release > d->claims[node] )
+        release = d->claims[node];
+
+    ASSERT(claimed_pages[node] >= release);
+    ASSERT(d->node_claims >= release);
+    ASSERT(d->outstanding_pages >= release);
+    ASSERT(outstanding_claims >= release);
+
+    claimed_pages[node] -= release;
+    d->claims[node] -= release;
+    d->node_claims -= release;
+    d->outstanding_pages -= release;
+    outstanding_claims -= release;
+
+    return release;
+}
+
+/*
+ * Recall node-specific claims from a domain until either the specified number
+ * of pages has been recalled, or all node-specific claims have been exhausted.
+ */
+static void domain_recall_node_claims(struct domain *d, unsigned long recall)
+{
+    nodeid_t node;
+
+    /*
+     * When NUMA node offlining is implemented, it will be responsible for
+     * recalling or moving claims off a node before offlining it. Therefore,
+     * offline nodes are not iterated here.
+     */
+    for_each_online_node ( node )
+    {
+        if ( !recall || !d->node_claims )
+            break;
+        recall -= domain_release_node_claims(d, node, recall);
+    }
+}
+
+/* Get claim entries for the outstanding claims of a domain. */
+int domain_get_claim_entries(struct domain *d, uint32_t *nr_entries,
+                             xen_memory_claim_t *entries)
+{
+    unsigned int needed_entries = 1, max_entries = *nr_entries;
+    nodeid_t node;
+
+    /* If max_entries is 0, only the number of needed entries is returned. */
+    if ( max_entries )
+    {
+        memset(entries, 0, sizeof(*entries) * max_entries);
+        entries[0].target = XEN_DOMCTL_CLAIM_MEMORY_HOST;
+    }
+
+    spin_lock(&heap_lock);
+    if ( max_entries )
+    {
+        ASSERT(d->outstanding_pages >= d->node_claims);
+        entries[0].pages = d->outstanding_pages - d->node_claims;
+    }
+
+    for_each_online_node ( node )
+    {
+        if ( !d->claims[node] )
+            continue;
+
+        if ( needed_entries < max_entries )
+        {
+            entries[needed_entries].target = node;
+            entries[needed_entries].pages = d->claims[node];
+        }
+        needed_entries++;
+    }
+    spin_unlock(&heap_lock);
+    *nr_entries = needed_entries;
+    return needed_entries <= max_entries ? 0 : -ERANGE;
+}
+
+/* Validate a set of claim records and install it if valid. */
+int domain_set_claim_entries(struct domain *d, uint32_t nr_entries,
+                             const xen_memory_claim_t *claim_set)
+{
+    uint64_t avail_pages, request, node_requests = 0, host_requests = 0;
+    nodemask_t nodes;
+    uint32_t node;
+    int ret = -EINVAL;
+    bool host_request_seen = false, legacy_semantics = false;
+
+    /*
+     * Two locks are needed here:
+     *  - d->page_alloc_lock: protects accesses to d->{tot,max,extra}_pages.
+     *  - heap_lock: protects accesses to total_avail_pages, node_avail_pages,
+     *    avail[], scrub state and all total and node-specific claim counters.
+     */
+    nrspin_lock(&d->page_alloc_lock);
+    spin_lock(&heap_lock);
+
+    /*
+     * Phase 1: Check and process the individual claim entries. Check
+     * the node-specific claim requests, and validate them against the
+     * available memory. Track legacy and host-wide claim requests and
+     * prepare validation of the combined claims in Phase 2.
+     */
+    nodes_clear(nodes);
+    for ( uint32_t i = 0; i < nr_entries; i++ )
+    {
+        node = claim_set[i].target;
+        request = claim_set[i].pages;
+
+        if ( claim_set[i].cmd ) /* Reserved for possible future use. */
+            goto out;
+
+        switch ( node )
+        {
+        case XEN_DOMCTL_CLAIM_MEMORY_LEGACY:
+            legacy_semantics = true;
+            fallthrough;
+        case XEN_DOMCTL_CLAIM_MEMORY_HOST:
+            if ( host_request_seen ) /* Only one host-wide request allowed. */
+                goto out;
+
+            host_request_seen = true;
+            host_requests = request;
+            continue;
+        }
+
+        /* Node-specific claim. */
+        if ( node >= MAX_NUMNODES || !node_online(node) )
+        {
+            ret = -ENOENT; /* Node not valid or not online. */
+            goto out;
+        }
+
+        if ( nodemask_test(node, &nodes) ) /* Only one request per node. */
+            goto out;
+        node_set(node, nodes);
+
+        ASSERT(node_avail_pages[node] >= claimed_pages[node]);
+        avail_pages = node_avail_pages[node] - claimed_pages[node];
+
+        if ( request > avail_pages + d->claims[node] )
+        {
+            ret = -ENOMEM; /* Request exceeds available memory on node. */
+            goto out;
+        }
+        node_requests += request; /* The combined total is checked below. */
+    }
+
+    /*
+     * Phase 2: Validate the combined claim set.
+     * Apply legacy semantics if needed, then check that the total fits
+     * within d->max_pages and within the available unclaimed heap memory.
+     * A zero new-claim request is a pure release; skip validation entirely.
+     */
+    if ( legacy_semantics )
+    {
+        if ( node_requests )
+            goto out;
+
+        if ( !host_requests )
+            goto release_existing;
+
+        /*
+         * Legacy semantics require the request to exceed the current
+         * allocation; the request is then reduced by the current allocation.
+         * Existing outstanding claims are not allowed.
+         */
+        if ( d->outstanding_pages ||
+             host_requests <= domain_tot_pages(d) )
+            goto out;
+
+        host_requests -= domain_tot_pages(d);
+    }
+    else if ( !host_requests && !node_requests )
+        goto release_existing;
+
+    /* Ensure new claims plus domain_tot_pages() fit into d->max_pages. */
+    if ( host_requests > d->max_pages ||
+         node_requests > d->max_pages - host_requests ||
+         node_requests + host_requests + domain_tot_pages(d) > d->max_pages )
+        goto out;
+
+    /* Ensure new claims fit in the total unclaimed heap memory. */
+    ASSERT(total_avail_pages >= outstanding_claims);
+    if ( node_requests + host_requests >
+         (total_avail_pages - outstanding_claims) + d->outstanding_pages )
+    {
+        /* New claims would exceed available unclaimed memory. */
+        ret = -ENOMEM;
+        goto out;
+    }
+
+ release_existing:
+    /* Phase 3: Remove the old claims before installing the new claims. */
+    domain_recall_node_claims(d, d->node_claims);
+    domain_release_host_claims(d, d->outstanding_pages);
+    ASSERT(!d->node_claims && !d->outstanding_pages);
+
+    /* Phase 4: Install new node-specific and host-wide claims. */
+    d->node_claims = node_requests;
+    d->outstanding_pages = host_requests + node_requests;
+    outstanding_claims += d->outstanding_pages;
+
+    /* Phase 5: Install the individual node claims. */
+    for ( uint32_t i = 0; i < nr_entries; i++ )
+    {
+        node = claim_set[i].target;
+        request = claim_set[i].pages;
+        if ( node >= MAX_NUMNODES ) /* Skip non-node claim targets. */
+            continue;
+
+        ASSERT(!d->claims[node]);
+        d->claims[node] = request;
+        claimed_pages[node] += request;
+    }
+    ret = 0;
+ out:
+    spin_unlock(&heap_lock);
+    nrspin_unlock(&d->page_alloc_lock);
+    return ret;
+}
+
 static struct page_info *get_free_buddy(unsigned int zone_lo,
                                         unsigned int zone_hi,
                                         unsigned int order, unsigned int memflags,
@@ -907,6 +1101,18 @@ static struct page_info *get_free_buddy(unsigned int zone_lo,
      */
     for ( ; ; )
     {
+        unsigned long avail_pages;
+
+        ASSERT(node_avail_pages[node] >= claimed_pages[node]);
+        avail_pages = node_avail_pages[node] - claimed_pages[node];
+
+        if ( d && !(memflags & MEMF_no_refcount) )
+            avail_pages += d->claims[node];
+
+        /* Skip this node if memory and claims do not permit this request. */
+        if ( avail_pages < (1UL << order) )
+            goto next_node;
+
         zone = zone_hi;
         do {
             /* Check if target node can support the allocation. */
@@ -936,6 +1142,7 @@ static struct page_info *get_free_buddy(unsigned int zone_lo,
             }
         } while ( zone-- > zone_lo ); /* careful: unsigned zone may wrap */
 
+ next_node:
         if ( (memflags & MEMF_exact_node) && req_node != NUMA_NO_NODE )
             return NULL;
 
@@ -1047,13 +1254,13 @@ static struct page_info *alloc_heap_pages(
         }
     }
 
-    ASSERT(avail[node][zone] >= request);
-    avail[node][zone] -= request;
-    ASSERT(total_avail_pages >= request);
-    total_avail_pages -= request;
-    ASSERT(node_avail_pages[node] >= request);
-    node_avail_pages[node] -= request;
-
+    /*
+     * Ensure the domain's claims are fully redeemed before deducting
+     * the allocation from the page counters, otherwise the host or the
+     * node might be left with more claims than available pages. This would
+     * break the invariants claimed_pages[node] <= node_avail_pages[node]
+     * and outstanding_claims <= total_avail_pages.
+     */
     if ( d && d->outstanding_pages && !(memflags & MEMF_no_refcount) )
     {
         /*
@@ -1071,13 +1278,34 @@ static struct page_info *alloc_heap_pages(
          * the domain being destroyed before creation is finished.  Losing part
          * of the claim makes no difference.
          */
-        unsigned long outstanding = min(d->outstanding_pages + 0UL, request);
+        unsigned long redeem = min(d->outstanding_pages + 0UL, request);
+
+        BUG_ON(redeem > outstanding_claims);
+
+        /* Maintain invariant: claimed_pages[node] <= node_avail_pages[node] */
+        redeem -= domain_release_node_claims(d, node, redeem);
 
-        BUG_ON(outstanding > outstanding_claims);
-        outstanding_claims -= outstanding;
-        d->outstanding_pages -= outstanding;
+        if ( redeem )
+        {
+            /*
+             * Maintain the invariant outstanding_claims <= total_avail_pages:
+             * Redeem from the host-wide claims pool and if needed from other
+             * nodes' claims pools to maintain that outstanding_claims do not
+             * exceed total_avail_pages after deducting the allocation.
+             */
+            redeem -= domain_release_host_claims(d, redeem);
+            domain_recall_node_claims(d, redeem);
+        }
     }
 
+    /* Having redeemed claims, deduct the allocation from the page counters. */
+    ASSERT(total_avail_pages >= request);
+    total_avail_pages -= request;
+    ASSERT(node_avail_pages[node] >= request);
+    node_avail_pages[node] -= request;
+    ASSERT(avail[node][zone] >= request);
+    avail[node][zone] -= request;
+
     check_low_mem_virq();
 
     if ( d != NULL )
@@ -1166,6 +1394,7 @@ static int reserve_offlined_page(struct page_info *head)
     unsigned int node = page_to_nid(head);
     int zone = page_to_zone(head), i, head_order = PFN_ORDER(head), count = 0;
     struct page_info *cur_head;
+    struct domain *d;
     unsigned int cur_order, first_dirty;
 
     ASSERT(spin_is_locked(&heap_lock));
@@ -1256,6 +1485,43 @@ static int reserve_offlined_page(struct page_info *head)
         count++;
     }
 
+    /* Offlining pages may violate claim invariants; restore them if needed. */
+    if ( claimed_pages[node] > node_avail_pages[node] ||
+         outstanding_claims > total_avail_pages )
+    {
+        rcu_read_lock(&domlist_read_lock);
+
+        if ( claimed_pages[node] > node_avail_pages[node] )
+        {
+            unsigned long overclaim = claimed_pages[node] -
+                                      node_avail_pages[node];
+
+            for_each_domain ( d )
+            {
+                overclaim -= domain_release_node_claims(d, node, overclaim);
+                if ( !overclaim )
+                    break;
+            }
+        }
+
+        if ( outstanding_claims > total_avail_pages )
+        {
+            unsigned long overclaim = outstanding_claims - total_avail_pages;
+
+            for_each_domain ( d )
+            {
+                overclaim -= domain_release_host_claims(d, overclaim);
+                if ( !overclaim )
+                    break;
+            }
+        }
+
+        rcu_read_unlock(&domlist_read_lock);
+
+        ASSERT(claimed_pages[node] <= node_avail_pages[node]);
+        ASSERT(outstanding_claims <= total_avail_pages);
+    }
+
     return count;
 }
 
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 8f6708c0a7cd..352d7095c944 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -1276,6 +1276,42 @@ struct xen_domctl_get_domain_state {
     uint64_t unique_id;      /* Unique domain identifier. */
 };
 
+struct xen_memory_claim {
+    uint64_aligned_t pages; /* Number of pages to claim. */
+    uint32_t target;        /* NUMA node or special target constant. */
+    uint32_t cmd;           /* Reserved, must be zero. */
+};
+typedef struct xen_memory_claim xen_memory_claim_t;
+DEFINE_XEN_GUEST_HANDLE(xen_memory_claim_t);
+
+/* Special claim targets for the target field of xen_memory_claim_t. */
+#define XEN_DOMCTL_CLAIM_MEMORY_HOST     0x80000000U /* Host-wide claims. */
+#define XEN_DOMCTL_CLAIM_MEMORY_LEGACY   0x40000000U /* Legacy semantics. */
+
+/*
+ * XEN_DOMCTL_claim_memory
+ *
+ * Install or query a domain memory claim set. A SET operation replaces the
+ * existing claim set atomically. Claims are redeemed by later allocations to
+ * the domain. A SET request whose entries all have pages == 0 releases any
+ * existing claims.
+ *
+ * For GET, callers may pass nr_entries == 0 and claim_set == NULL to query the
+ * number of records needed. Xen returns -ERANGE and updates nr_entries. If the
+ * supplied array is too small, Xen returns -ERANGE and updates nr_entries
+ * without copying partial records.
+ */
+struct xen_domctl_claim_memory {
+    /* IN/OUT: Array of struct xen_memory_claim. */
+    XEN_GUEST_HANDLE_64(xen_memory_claim_t) claim_set;
+    /* IN/OUT: Number of records in the claim_set array. */
+    uint32_t nr_entries;
+    /* IN: Operation to perform on the claim set (GET or SET). */
+    uint32_t mode;
+#define XEN_DOMCTL_CLAIM_MEMORY_SET 0U /* Set the claim set for the domain. */
+#define XEN_DOMCTL_CLAIM_MEMORY_GET 1U /* Get the claim set of the domain. */
+};
+
 struct xen_domctl {
 /* Stable domctl ops: interface_version is required to be 0.  */
     uint32_t cmd;
@@ -1368,6 +1404,7 @@ struct xen_domctl {
 #define XEN_DOMCTL_gsi_permission                88
 #define XEN_DOMCTL_set_llc_colors                89
 #define XEN_DOMCTL_get_domain_state              90 /* stable interface */
+#define XEN_DOMCTL_claim_memory                  91
 #define XEN_DOMCTL_gdbsx_guestmemio            1000
 #define XEN_DOMCTL_gdbsx_pausevcpu             1001
 #define XEN_DOMCTL_gdbsx_unpausevcpu           1002
@@ -1436,6 +1473,7 @@ struct xen_domctl {
 #endif
         struct xen_domctl_set_llc_colors    set_llc_colors;
         struct xen_domctl_get_domain_state  get_domain_state;
+        struct xen_domctl_claim_memory      claim_memory;
         uint8_t                             pad[128];
     } u;
 };
diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
index bd9fc37b5297..086334af051b 100644
--- a/xen/include/public/memory.h
+++ b/xen/include/public/memory.h
@@ -569,6 +569,8 @@ DEFINE_XEN_GUEST_HANDLE(xen_mem_sharing_op_t);
  * for 10, only 7 additional pages are claimed.
  *
  * Caller must be privileged or the hypercall fails.
+ *
+ * Note: This hypercall is superseded by XEN_DOMCTL_claim_memory.
  */
 #define XENMEM_claim_pages                  24
 
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index b80bec00c124..b3a35c4bc8d6 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -72,6 +72,7 @@
 #include <public/memory.h>
 
 struct page_info;
+struct xen_memory_claim;
 
 extern bool using_static_heap;
 
@@ -131,7 +132,10 @@ int populate_pt_range(unsigned long virt, unsigned long nr_mfns);
 /* Claim handling */
 unsigned long __must_check domain_adjust_tot_pages(struct domain *d,
     long pages);
-int domain_set_outstanding_pages(struct domain *d, unsigned long pages);
+int domain_set_claim_entries(struct domain *d, uint32_t nr_entries,
+                             const struct xen_memory_claim *claim_set);
+int domain_get_claim_entries(struct domain *d, uint32_t *nr_entries,
+                             struct xen_memory_claim *claim_set);
 void get_outstanding_claims(uint64_t *free_pages, uint64_t *outstanding_pages);
 
 /* Domain suballocator. These functions are *not* interrupt-safe.*/
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 00db1da12f21..f671e0c4c7b3 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -419,6 +419,10 @@ struct domain
     unsigned int     xenheap_pages;     /* pages allocated from Xen heap */
     /* Pages claimed but not possessed, protected by global heap_lock. */
     unsigned int     outstanding_pages;
+    unsigned int     node_claims;       /* Sum of per-node claims. */
+    /* Domain objects use dedicated pages, leaving room for per-node claims. */
+    unsigned int     claims[MAX_NUMNODES]; /* Per-NUMA-node claims. */
+
     unsigned int     max_pages;         /* maximum value for domain_tot_pages() */
     unsigned int     extra_pages;       /* pages not included in domain_tot_pages() */
 
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 28522dcbd271..9e999ac1ba73 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -651,6 +651,7 @@ static int cf_check flask_domctl(struct domain *d, unsigned int cmd,
 
     /* These have individual XSM hooks (common/domctl.c) */
     case XEN_DOMCTL_getdomaininfo:
+    case XEN_DOMCTL_claim_memory:
     case XEN_DOMCTL_scheduler_op:
     case XEN_DOMCTL_irq_permission:
     case XEN_DOMCTL_iomem_permission:
diff --git a/xen/xsm/flask/policy/access_vectors b/xen/xsm/flask/policy/access_vectors
index bbb9c117ec4a..e7defa117a16 100644
--- a/xen/xsm/flask/policy/access_vectors
+++ b/xen/xsm/flask/policy/access_vectors
@@ -216,6 +216,7 @@ class domain2
 # XEN_DOMCTL_scheduler_op with XEN_DOMCTL_SCHEDOP_putinfo
     setscheduler
 # XENMEM_claim_pages
+# XEN_DOMCTL_claim_memory
     setclaim
 # XEN_DOMCTL_cacheflush
     cacheflush
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 08 20:42:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 20:42:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304175.1577271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLS1P-0004NK-0F; Fri, 08 May 2026 20:42:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304175.1577271; Fri, 08 May 2026 20:42:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLS1O-0004ND-To; Fri, 08 May 2026 20:42:06 +0000
Received: by outflank-mailman (input) for mailman id 1304175;
 Fri, 08 May 2026 20:42:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wLS1O-0004N7-Fu
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 20:42:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLS1N-003xE7-PW
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 22:42:05 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fe4a84-bab6-0a2a0a5309dd-0a2a4509d400-24
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:42:05 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 69fe4a9c-2497-0a2a45090019-a0658309da50-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:42:05 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 6A3498245FBA;
 Fri,  8 May 2026 16:40:59 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Christian Lindig <christian.lindig@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v7 3/3] tools/ocaml: Add OCaml binding for NUMA claim sets
Date: Fri,  8 May 2026 21:27:59 +0100
Message-Id: <10726c7afb43856a1014c6b6e24700442ff8740e.1778272036.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1778272036.git.bernhard.kaindl@citrix.com>
References: <cover.1778272036.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778272925-89775A53-D74062C2/0/0
X-purgate-type: clean
X-purgate-size: 4695

Add an OCaml binding for xc_domain_claim_memory():

- tools/ocaml/libs/xc/xenctrl.ml/mli:
  Add claim record type and domain_claim_memory external.

- tools/ocaml/libs/xc/xenctrl_stubs.c:
  Marshal the OCaml claim array into a xen_memory_claim_t array.
  Map nodes of -1 to XEN_DOMCTL_CLAIM_MEMORY_HOST for host-wide claims.

Acked-by: Christian Lindig <christian.lindig@cloud.com>
Requested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 tools/ocaml/libs/xc/xenctrl.ml      | 10 ++++++
 tools/ocaml/libs/xc/xenctrl.mli     | 10 ++++++
 tools/ocaml/libs/xc/xenctrl_stubs.c | 50 +++++++++++++++++++++++++++++
 3 files changed, 70 insertions(+)

diff --git a/tools/ocaml/libs/xc/xenctrl.ml b/tools/ocaml/libs/xc/xenctrl.ml
index 97108b9d861a..8dd0c932e3ee 100644
--- a/tools/ocaml/libs/xc/xenctrl.ml
+++ b/tools/ocaml/libs/xc/xenctrl.ml
@@ -370,6 +370,16 @@ external domain_deassign_device: handle -> domid -> (int * int * int * int) -> u
 external domain_test_assign_device: handle -> domid -> (int * int * int * int) -> bool
   = "stub_xc_domain_test_assign_device"
 
+(* OCaml binding for xc_domain_claim_memory() to claim memory for a domain *)
+
+type claim =
+  {
+    pages: int64; (* Number of pages to claim *)
+    node: int32;  (* NUMA node ID, or -1 for host-wide claims *)
+  }
+external domain_claim_memory: handle -> domid -> claim array -> unit
+  = "stub_xc_domain_claim_memory"
+
 external version: handle -> version = "stub_xc_version_version"
 external version_compile_info: handle -> compile_info
   = "stub_xc_version_compile_info"
diff --git a/tools/ocaml/libs/xc/xenctrl.mli b/tools/ocaml/libs/xc/xenctrl.mli
index 9fccb2c2c287..e78ea0dfe6c4 100644
--- a/tools/ocaml/libs/xc/xenctrl.mli
+++ b/tools/ocaml/libs/xc/xenctrl.mli
@@ -297,6 +297,16 @@ external domain_deassign_device: handle -> domid -> (int * int * int * int) -> u
 external domain_test_assign_device: handle -> domid -> (int * int * int * int) -> bool
   = "stub_xc_domain_test_assign_device"
 
+(* OCaml binding for xc_domain_claim_memory() to claim memory for a domain *)
+
+type claim =
+  {
+    pages: int64; (* Number of pages to claim *)
+    node: int32;  (* NUMA node ID, or -1 for host-wide claims *)
+  }
+external domain_claim_memory: handle -> domid -> claim array -> unit
+  = "stub_xc_domain_claim_memory"
+
 external version : handle -> version = "stub_xc_version_version"
 external version_compile_info : handle -> compile_info
   = "stub_xc_version_compile_info"
diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c b/tools/ocaml/libs/xc/xenctrl_stubs.c
index c55f73b265b2..e91bebf5a4ed 100644
--- a/tools/ocaml/libs/xc/xenctrl_stubs.c
+++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
@@ -1435,6 +1435,56 @@ CAMLprim value stub_xc_watchdog(value xch_val, value domid, value timeout)
 	CAMLreturn(Val_int(ret));
 }
 
+/* OCaml binding for xc_domain_claim_memory() to claim memory for a domain */
+CAMLprim value stub_xc_domain_claim_memory(value xch_val, value domid,
+                                           value claim_set)
+{
+	CAMLparam3(xch_val, domid, claim_set);
+	xc_interface *xch = xch_of_val(xch_val);
+	mlsize_t nr_entries = Wosize_val(claim_set);
+	uint32_t c_domid = (uint32_t)Int_val(domid);
+	uint32_t c_nr_entries = (uint32_t)nr_entries;
+	xen_memory_claim_t *c_claim_set;
+
+	if (!nr_entries)
+		caml_invalid_argument("domain_claim_memory: claim_set cannot be empty");
+
+	c_claim_set = calloc(c_nr_entries, sizeof(*c_claim_set));
+	if (c_claim_set == NULL)
+		caml_raise_out_of_memory();
+
+	/* The entries of the claim_set are claim entries with {pages, node} */
+	for (mlsize_t i = 0; i < nr_entries; i++) {
+		value claim_entry = Field(claim_set, i);
+		int64_t pages = Int64_val(Field(claim_entry, 0));
+		int32_t node = Int32_val(Field(claim_entry, 1));
+
+		if (pages < 0 || node < -1) {
+			free(c_claim_set);
+			caml_invalid_argument("domain_claim_memory: invalid pages or node");
+		}
+		c_claim_set[i] = (xen_memory_claim_t) {
+			.pages = (uint64_t)pages,
+			.target = (node == -1)
+				? XEN_DOMCTL_CLAIM_MEMORY_HOST
+				: (uint32_t)node
+		};
+	}
+
+	/* May have to wait for the domctl lock, release the OCaml runtime lock. */
+	caml_enter_blocking_section();
+	int retval = xc_domain_claim_memory(xch, c_domid,
+					    XEN_DOMCTL_CLAIM_MEMORY_SET,
+					    &c_nr_entries, c_claim_set);
+	caml_leave_blocking_section();
+
+	free(c_claim_set);
+	if (retval < 0)
+		failwith_xc(xch);
+
+	CAMLreturn(Val_unit);
+}
+
 /*
  * Local variables:
  *  indent-tabs-mode: t
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 08 20:49:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 20:49:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304208.1577281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLS8W-0005As-Nv; Fri, 08 May 2026 20:49:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304208.1577281; Fri, 08 May 2026 20:49:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLS8W-0005Al-Kr; Fri, 08 May 2026 20:49:28 +0000
Received: by outflank-mailman (input) for mailman id 1304208;
 Fri, 08 May 2026 20:49:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wLS8V-0005Af-I8
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 20:49:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLS8U-006T6s-Qv
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 22:49:26 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fe4c51-e002-0a2a0a5209dd-0a2a4503d192-2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:49:26 +0200
Received: from [209.85.167.45] (helo=mail-lf1-f45.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fe4c55-672d-0a2a45030019-d155a72dd0cf-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:49:26 +0200
Received: by mail-lf1-f45.google.com with SMTP id
 2adb3069b0e04-5a887ebb416so2364000e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 13:49:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778273365; cv=none;
        d=google.com; s=arc-20240605;
        b=jChQCcQvG+DQy0UP7icr+wS2Sgo4PHEevts1xhdxIj5qFrXGKrDUsrQ37h+coRWfs/
         o6pHQXPuOipUQVphuyt3mmSsZwZyMXhSDxriHo6cmtWUgBrjNgK4y+r6frxcuj5Zpa1I
         An0yrpeWJtM2fpVDkls8To5AIH3BFj9f2z5Mzz526CeCngGiJGWtVGbmtYzAuwDIvzWe
         GDZvnRy2h5ELFmAKTjsmvB9RlFKPCG5IndgChyup1mdIzr0VrQUo7TyJlCyNHu07h/ht
         HZrVNhuR2uUoFOspaxtV2PqE0TP1nzi6HcEdQy8zYZ5zkNVdHMWMCeW9nxKuALgq/PV2
         670A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=w2Ts6xCNp5C0CnS/K72bmyoG4TpDMeFoFiGVyriUgr4=;
        fh=eEq7B6rg7ssf3icSookiwOw/XyVLUuCIMVm7gUWrf/I=;
        b=RrM2/BL83Q/3pp05YkVIvRrj3xnbnJKI2wAJ7/18oDJ+Fxxvz0TWbDWHuY4XV6ABaK
         o3gwk/xRse/2JRUN1CgQ8Lkqw4j33K5E9GgMIJcvlIqvtqTlX5a7YR6/kO+0I6TI5vv9
         5snW7LNV6xWLhbeqj3NJ0gec90U22nJtAQBgmiriDTBqBlI07avujzTBZjOIoLZt46u/
         NMM7rOA9OLIXCP93EbLAJyAUOBhfHVLAqxq9nqRGv2yEVR+O8ZcnlIB7jK6DDW25XToB
         1C18Uxa7pHe1LtPY7Akw/N6QwcbGui2vTtOYEcgrpQP7V99VRJ7yaRVwnpVZ6oBlbiar
         P+Qw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778273365; x=1778878165; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=w2Ts6xCNp5C0CnS/K72bmyoG4TpDMeFoFiGVyriUgr4=;
        b=XagxHtSnQgIY/Ep7il7bHUQ/D7i4xwdC8wFu6hTfItYi90y7UZudRBfMn5C41E6h5S
         u1kklc0BZECsHsbVz9c4xmwQoYcQcof6oKh1Dz5QfxIVmpnV3qD4HQxDozw0/YYeMOE6
         QN9e9odMilFK6Jey0k0FJNO5VsCXYqc5sUJkFoahTS0NDTuWnycJMX7AiH4I36skppGH
         QwtWs6ENvX9l7ZWjTE6no70RCfBlZEGHrn8j7xioKldOWD7WT+ZMgVVZN89wr25fdKTa
         6uBIOBJqd8pJx3YhNhI8wZmP2hDC8IIXuFTftB2ZwyyQ9kg2aocgfRl5hhVXxkyV5svl
         Br0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778273365; x=1778878165;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=w2Ts6xCNp5C0CnS/K72bmyoG4TpDMeFoFiGVyriUgr4=;
        b=qPK7L65ks+buzKISyo+yx12xwHdlxFOsiYjmC80zCil1XLw3MR1wpb0pO6JGNoNFZf
         +gmq7/I1XbAGEPWDzG3xYI1GUZWLexlTcq05FVLy0DyafGPxXb9Ft+bjm1+mPjsjfQOO
         XJKAMBORlsa67tnkBnF/k4IK3oZci0bDob4McAdk6XeglGTCWHq4mE5xQ42Ux1w1b7yf
         +YMKx6kTyutXC91HhIYmgjTKd38p4HsHj3ZgcNuml2IoFtVhF31e7WLW4BnBRKr4rXdR
         qZ+bCaCPbsItihjVn2Q+0tn60061hUy6NvdVZ4xwLxXi+fMlS0n9/rOUESMvKE5KTV/3
         VjNA==
X-Gm-Message-State: AOJu0YxmiXPFOaAE7RCiqAp4mlfahUKSiWDIeKCj1rIEal9IlqbjjgHs
	tPAkWH5i2yUlU5uFHgho39N5GBcW5fcylMyeuhYQUNcco4eYUjMb8h35GCLaF7A743CdBjNioRg
	cZONNN+hF55aUTS0FGkyjz+Hbnx3CoE8=
X-Gm-Gg: Acq92OFG7JrPKqKglr/Z2wdWHt4W50zLSXmD9dtNAeG6xYRcqjUfP/UQcHfeLnKq0fp
	ZdqMQIdM8VOIUZ5Rcvmjxa8CkFA/ZPpHyLn8VyVTK8sPlns2Y9ArVcP1GCX/106PF+lyWHTuIgj
	+kepFTDgjH2n8QLdXPAOaHUtZinQ7ulU2YlEHzubIWr5e+TQExsaXByU3ob7k72wfR5yiXpSOsZ
	4rR9dLxtnGE9nineorQUqJeXWkcdlrgS6XKPgmzQ6cQ/ZKOwGo273TxEKWfEi2kcfSlKxboLK4r
	LiL0TlAYb8Z6vNu5
X-Received: by 2002:a05:6512:124c:b0:5a8:7f4c:8a22 with SMTP id
 2adb3069b0e04-5a887cdf0a2mr5399916e87.20.1778273364865; Fri, 08 May 2026
 13:49:24 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <9b0f8922cd33df2b8e8038d639c1b8d8d73ce401.1775125380.git.mykola_kvach@epam.com>
 <4977CF18-39CC-4CC0-936A-890BAE5E8615@arm.com> <CAGeoDV8WkRGubF0qEXd4+PsXuabz3914G7bTYxTbaxZ2DsnY6w@mail.gmail.com>
 <A37EF531-9180-4410-8C01-0A591A10DC95@arm.com>
In-Reply-To: <A37EF531-9180-4410-8C01-0A591A10DC95@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 8 May 2026 23:49:13 +0300
X-Gm-Features: AVHnY4JUSBzt2DGg28-D9DWL1tOx1SosJsJFoIGEmfYFJ2gyh8R7BFJU-1_31KU
Message-ID: <CAGeoDV-xVnFUU8-GqJm6Ctm-m6KTt9C5ZmStq1kR146JdGgggA@mail.gmail.com>
Subject: Re: [PATCH v8 13/13] xen/arm: Add support for system suspend
 triggered by hardware domain
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Rahul Singh <Rahul.Singh@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-33051d/1778273366-4086B938-7669A946/0/0
X-purgate-type: clean
X-purgate-size: 11936

On Fri, May 8, 2026 at 5:31=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.com=
> wrote:
>
> Hi Mykola,
>
> >>> +/* Xen suspend. data identifies the domain that initiated suspend. *=
/
> >>> +static void system_suspend(void *data)
> >>> +{
> >>> +    int status;
> >>> +    unsigned long flags;
> >>> +    struct domain *d =3D (struct domain *)data;
> >>> +
> >>> +    BUG_ON(system_state !=3D SYS_STATE_active);
> >>> +
> >>> +    system_state =3D SYS_STATE_suspend;
> >>> +
> >>> +    printk("Xen suspending...\n");
> >>> +
> >>> +    freeze_domains();
> >>> +    scheduler_disable();
> >>> +
> >>> +    status =3D can_system_suspend();
> >>> +    if ( status )
> >>> +    {
> >>> +        system_state =3D SYS_STATE_resume;
> >>> +        goto resume_scheduler;
> >>
> >> When we have an error and we get the resume_scheduler path, we apply b=
ack the
> >> context of the guest saved previously in do_psci_1_0_system_suspend(),=
 so am I
> >> correct saying the guest won=E2=80=99t get any PSCI error back and we =
resume the guest
> >> from the guest resume entrypoint?
> >>
> >> In case, should we have a different path that returns a PSCI error (PS=
CI_*) into the guest
> >> x0, and skips the context restore?
> >
> > You are right about the current control flow: once the virtual
> > SYSTEM_SUSPEND request has been accepted and the domain has been parked=
, a
> > later failure in the Xen-wide suspend path resumes the domain through t=
he normal
> > domain resume path, rather than returning a PSCI error from the origina=
l call.
> >
> > This is intentional in the current design. The virtual PSCI SYSTEM_SUSP=
END
> > path parks the domain and saves its resume context. The actual Xen-wide=
 host
> > suspend is a separate step that is attempted only after all domains are
> > suspended.
> >
> > So a failure in the later Xen-wide suspend step is treated as an abort =
of the
> > host suspend attempt after the domain suspend was already accepted. The=
 domain
> > is then resumed through the existing domain resume path, similarly to t=
he
> > toolstack/xl suspend-resume flow, rather than by re-entering the guest =
PSCI
> > call path and modifying the saved vCPU context again.
> >
> > I agree this design is not obvious from the patch. I will clarify the c=
ommit
> > message and comments. If you or the maintainers think that failures bef=
ore the
> > physical SYSTEM_SUSPEND call succeeds should be reported back through t=
he
> > original virtual PSCI call, then this would require a different flow. I=
 was
> > trying to avoid that extra complexity in this series.
>
> Ok I understand, I=E2=80=99m wondering if inside do_psci_1_0_system_suspe=
nd() we could do something
> like:
>
> [=E2=80=A6]
> if ( is_control_domain(d) && !other_domains_ready_for_suspend(d) )
>     return PSCI_DENIED;

Yes. I have reworked this locally and will include it in v9.

The control-domain readiness check is now done in the vPSCI SYSTEM_SUSPEND
path before building the guest resume context and before calling
domain_shutdown(..., SHUTDOWN_suspend), so in that case the call returns
PSCI_DENIED early rather than parking the domain first.

>
> [=E2=80=A6]
>
> But I=E2=80=99m ok also to only document this behaviour.
>
>
> >>>
> >>> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> >>> index bd87ec430d..8fb9172186 100644
> >>> --- a/xen/arch/arm/vpsci.c
> >>> +++ b/xen/arch/arm/vpsci.c
> >>> @@ -5,6 +5,7 @@
> >>>
> >>> #include <asm/current.h>
> >>> #include <asm/domain.h>
> >>> +#include <asm/suspend.h>
> >>> #include <asm/vgic.h>
> >>> #include <asm/vpsci.h>
> >>> #include <asm/event.h>
> >>> @@ -232,8 +233,7 @@ static int32_t do_psci_1_0_system_suspend(registe=
r_t epoint, register_t cid)
> >>>    if ( is_64bit_domain(d) && is_thumb )
> >>>        return PSCI_INVALID_ADDRESS;
> >>>
> >>> -    /* SYSTEM_SUSPEND is not supported for the hardware domain yet *=
/
> >>> -    if ( is_hardware_domain(d) )
> >>> +    if ( !IS_ENABLED(CONFIG_SYSTEM_SUSPEND) && is_hardware_domain(d)=
 )
> >>>        return PSCI_NOT_SUPPORTED;
> >>>
> >>>    /* Ensure that all CPUs other than the calling one are offline */
> >>> @@ -266,6 +266,9 @@ static int32_t do_psci_1_0_system_suspend(registe=
r_t epoint, register_t cid)
> >>>            "SYSTEM_SUSPEND requested, epoint=3D%#"PRIregister", cid=
=3D%#"PRIregister"\n",
> >>>            epoint, cid);
> >>>
> >>> +    if ( is_control_domain(d) )
> >>
> >> Why is_control_domain() here and not is_hardware_domain() ?
> >
> > The use of is_control_domain() is intentional.
> >
> > The intended model is that Xen-wide host suspend is orchestrated by the
> > privileged management/control domain. The control domain coordinates th=
e
> > toolstack side, asks other domains to enter suspend, and then issues th=
e final
> > SYSTEM_SUSPEND request to Xen.
> >
> > This does not have to be the same entity as the hardware domain. If the
> > hardware domain is separate, it is one of the domains that the control =
domain
> > parks before the final host suspend step.
> >
> > The hwdom-specific checks in this patch have a different purpose: they =
avoid
> > the old hwdom_shutdown() path for SHUTDOWN_suspend and allow the hardwa=
re
> > domain to be parked as part of the suspend sequence. They do not define=
 the
> > policy for who is allowed to trigger Xen-wide host suspend.
> >
> > That said, this policy may not be optimal for all configurations, espec=
ially
> > when the control and hardware domain roles are split. I would appreciat=
e your
> > view, as well as the maintainers' views, on whether the trigger should =
remain
> > control-domain based, be tied to the hardware domain instead, or be exp=
ressed
> > through a separate host-suspend capability/helper.
>
> In the commit message and title I saw HW domain, so maybe the commit shou=
ld be updated
> to say control domain instead?

Yes, that was stale wording from an older version. I have fixed it
locally for v9.

>
> At this point however I=E2=80=99m wondering about this code above:
> ```
>     if ( !IS_ENABLED(CONFIG_SYSTEM_SUSPEND) && is_hardware_domain(d) )
>         return PSCI_NOT_SUPPORTED;
> ```
> and in do_psci_1_0_features(), shouldn=E2=80=99t we use consistently is_c=
ontrol_domain()?

Yes. I have reworked this locally so the policy is now explicit and
consistent.

The control domain is the only domain whose SYSTEM_SUSPEND request may
drive the Xen-wide host suspend path. For that domain, both
PSCI_FEATURES(SYSTEM_SUSPEND) and the real SYSTEM_SUSPEND path now
consult the same helper, so the advertised capability and the execution
path stay consistent.

That helper is an explicit host-suspend capability check: it requires
firmware support for PSCI SYSTEM_SUSPEND and it also keeps host suspend
disabled when Xen detects a missing suspend/resume path in required
host-side components.

For a non-control hardware domain, SYSTEM_SUSPEND remains a virtual
guest suspend operation and does not by itself trigger Xen-wide host
suspend. Other guests keep the existing virtual behaviour as well.

>
> >
> >>
> >>> +        host_system_suspend(d);
> >>> +
> >>>    return rc;
> >>> }
> >>>
> >>> @@ -290,7 +293,10 @@ static int32_t do_psci_1_0_features(uint32_t psc=
i_func_id)
> >>>        return 0;
> >>>    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> >>>    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> >>> -        return is_hardware_domain(current->domain) ? PSCI_NOT_SUPPOR=
TED : 0;
> >>> +        if ( IS_ENABLED(CONFIG_SYSTEM_SUSPEND) ||
> >>> +             !is_hardware_domain(current->domain) )
> >>
> >> Should this have also the condition that =E2=80=9Cis hardware domain a=
nd psci_ver >=3D PSCI_VERSION(1, 0)=E2=80=9D?
> >> Otherwise if the host machine doestn=E2=80=99t support PSCI 1.0 we wou=
ld return OK here but the call would
> >> fail later in call_psci_system_suspend()?
> >
> > Good point.
> >
> > I agree that, for the domain allowed to trigger Xen-wide suspend, Xen s=
hould
> > not advertise SYSTEM_SUSPEND if the host suspend path cannot be used.
> >
> > I think this should be checked as an explicit host SYSTEM_SUSPEND capab=
ility,
> > rather than only as psci_ver >=3D PSCI_VERSION(1, 0). The same capabili=
ty check
> > also needs to be enforced in the actual SYSTEM_SUSPEND handler before p=
arking
> > the domain, because a caller may invoke SYSTEM_SUSPEND directly without=
 first
> > querying PSCI_FEATURES.
> >
> > For ordinary guests, the physical PSCI version is not relevant because =
they
> > cannot trigger host suspend; their SYSTEM_SUSPEND path is virtual.
> >
> > I will make this consistent in v9: PSCI_FEATURES will advertise SYSTEM_=
SUSPEND
> > for the host-suspend-triggering domain only when the host SYSTEM_SUSPEN=
D backend
> > is available, and the actual SYSTEM_SUSPEND path will enforce the same =
check.
>
> ok

I have reworked this locally accordingly.

Rather than open-coding a psci_ver >=3D PSCI_VERSION(1, 0) test, the new
code uses an explicit host SYSTEM_SUSPEND capability predicate. For the
control domain, PSCI_FEATURES(SYSTEM_SUSPEND) and the actual
SYSTEM_SUSPEND handler now share that same check, so they stay
consistent even when host suspend is blocked by firmware capability or
by Xen-side runtime suspend/resume limitations.

>
> >>>
> >>> diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthr=
ough/arm/smmu.c
> >>> index 22d306d0cb..45f29ef8ec 100644
> >>> --- a/xen/drivers/passthrough/arm/smmu.c
> >>> +++ b/xen/drivers/passthrough/arm/smmu.c
> >>> @@ -2947,6 +2947,13 @@ static void arm_smmu_iommu_domain_teardown(str=
uct domain *d)
> >>> xfree(xen_domain);
> >>> }
> >>>
> >>> +#ifdef CONFIG_SYSTEM_SUSPEND
> >>> +static int arm_smmu_suspend(void)
> >>> +{
> >>> + return -ENOSYS;
> >>> +}
> >>> +#endif
> >>
> >> Maybe we want to gate the feature also to !CONFIG_ARM_SMMU ? I would w=
ait for the maintainers
> >> view on this.
> >
> > I feel that gating this strictly on !CONFIG_ARM_SMMU might not be the m=
ost
> > optimal approach here.
> >
> > CONFIG_ARM_SMMU is a build-time option and does not mean that an old SM=
MUv1/v2
> > device is actually present. Using it would disable system suspend even =
on
> > platforms where only SMMUv3 is used, because CONFIG_ARM_SMMU is enabled=
 by
> > default for Arm.
> >
> > The condition should be runtime-based: whether the active/probed IOMMU =
devices
> > have system suspend/resume support. For the old ARM SMMU driver this is=
 not
> > implemented today, so a platform with an SMMUv1/v2 instance should not =
expose
> > or attempt host suspend.
> >
> > I think we should handle this by tracking whether any old ARM SMMUv1/v2=
 device
> > was actually probed, or by adding a generic IOMMU suspend capability ch=
eck. Then
> > the host suspend availability check can reject system suspend only when=
 such an
> > unsupported IOMMU is present, instead of disabling the feature for all
> > Arm builds
> > with CONFIG_ARM_SMMU enabled.
> >
> > I would be interested to hear if you or the maintainers see a better wa=
y to
> > express this capability.
>
> ok, let=E2=80=99s address Jan comment now and we can see what the maintai=
ners think about this.

Ack, thanks.

I have already reworked the Jan-related part locally for v9: the
control-domain readiness/capability checks now happen in the vPSCI
SYSTEM_SUSPEND path before the domain finishes suspend, and PSCI_FEATURES
plus the real call now use the same host-suspend capability predicate.

I=E2=80=99ll fold that into the next revision, and then we can see what the
maintainers prefer for the remaining runtime-gating details.

Best regards,
Mykola

>
> Cheers,
> Luca
>
>


From xen-devel-bounces@lists.xenproject.org Fri May 08 20:51:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 20:51:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304214.1577291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSAq-0006dq-5y; Fri, 08 May 2026 20:51:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304214.1577291; Fri, 08 May 2026 20:51:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSAq-0006dj-0h; Fri, 08 May 2026 20:51:52 +0000
Received: by outflank-mailman (input) for mailman id 1304214;
 Fri, 08 May 2026 20:51:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wLSAo-0006dd-W1
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 20:51:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLSAo-00HIeD-2i
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 22:51:50 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fe4cbf-5cb7-0a2a0a5109dd-0a2a450488f4-20
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:51:50 +0200
Received: from [209.85.208.177] (helo=mail-lj1-f177.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fe4ce5-1dec-0a2a45040019-d155d0b1ede5-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:51:50 +0200
Received: by mail-lj1-f177.google.com with SMTP id
 38308e7fff4ca-38e97e73234so22557171fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 13:51:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778273509; cv=none;
        d=google.com; s=arc-20240605;
        b=OEgtxLnM91k9ykq2RKkXRBi02LKDMLzn+QhX+fbLc2x9DKPrpmKviDvbkH31vzId9n
         qTX+YC2d/uLJfCaGgSirRmTCpSwGvwK9UfG/o8GPSkNBfyHfVkQBn5aEGOdPe8hZsSvg
         5kYl8cCSQzfahGetcTztcxUPq2r4Tz9k3bCNvWQFoHlJzbxZOH4I6ExLzcAdTx1qLb0F
         m80qtNsmBtFR3u9kIX3KjA4Lreiz+uHP7vGaBl6rFw2NbB5KKqWJpbe4avHoJtNfmC8o
         1WGVN/fWwTOYw0aS6QAECZm6yIqFe/EDLzkrSplv/8xMl8pQChtxdR2eg+So1OAB6od0
         DCwA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=aA0+nB+/Zf5LNNPDHfcvzrP2LrNRyeHJUPzaReKZ5lo=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=edpIJWphpJzgfz+8I2lXR+2SX6uiPicHwLC5fFBrzm1Pgou+Kai3zwd5FyHRKYrTx9
         hgryCYxmoQzzZmUP9Zs8yVe/oUxtsM50xQrcoY5D4Q+QE6CWPO50UetFTEbDbPXh7BBj
         JWm+tnTBTc4g5O6FVIdmyQ3GmpUk2+8/S495H2JaVtmnyMK/hATRoAzS0iSSa1BoV64v
         fO0JQdLtJyRxZF1trba8gYDpu2aKb5t4aUNC5IYsvOZAwYJWucdy+O+HrgVcAz9XTlYe
         k/y2p64tcutypu8YI6bvXvZ/6jQ9eJ7uweulTtnhuni8WI8TWXBNBxcMtgsVLkyKAfRy
         A+Ow==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778273509; x=1778878309; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aA0+nB+/Zf5LNNPDHfcvzrP2LrNRyeHJUPzaReKZ5lo=;
        b=B26YpMn6ULAdM1r6YUTYebi7w4i2l+uFG3dpWpWNrHA2QTq4hABq7QZ+A7ZAHt78EH
         lYIS41N2fxGiuy6L4LPTtR4lq36wBMMgKKeqz0S22UjkPPVMEZlPvseaifNLHiIS7kag
         qMv82zATzf12RrVbvkaNmumjm4wRvhz7SkojLvOu6Ynf+dFbczGOFxZuxPjCiRM1eACb
         ANqbgg1I1lmmKnQ5LJEHc9N1kQ8puS1zgjKTqag0wxLQABvL7CCggjLPU0RZSBpkQ4OB
         yBzYyIuXJdelkRzZWWmOgt1U5fxRDC0JDbbaf5llGdszHUV8iNVd73tRC3rvtE1TghgK
         DYPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778273509; x=1778878309;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=aA0+nB+/Zf5LNNPDHfcvzrP2LrNRyeHJUPzaReKZ5lo=;
        b=jv5AfUdj6k4IMJNsKJT7qIxQvkfCr7FRAr0Se3bTMPkXoVtAT46b+Ar0r7hPt890dq
         FqFM+Q3uzskKfX3Y7iWSt5N7wPWaqtxZlLI36y9YBIndVz27kundgRDC4radw6XiscSB
         mLW4InrqLedSp8qQp94558FYkC1WjudPFKQmLHA5g1qIQpILTgmPlR0A/eEVmDBsQxr1
         jKQnSveMAIoYRe8NUqrP/Tae3MZ3jizvc1T0JXzgSZbW5/q1twPXK4nrAAIQJjmDCJwy
         r5X6JLwaYk3K7JfrpyoZUgT28S3m1EcWxKEOvoAgkXq25U71DHcNn2YMxxxZfpl7wK0L
         9ruQ==
X-Gm-Message-State: AOJu0YweMVwi1dsbJz85Q3M+YJK2DUKn2Fi2abZ+9q+qRCiL3aJPaLxG
	46FyviWkqqo6h623fnAxUnXynPgwtw7oBwhgMqGXWQg6GZTx5Zq+VLlIhuTZcatPvGDCDElklal
	KLwZc1HZzQ6WHcRAT9In9vb4BOl4W+88=
X-Gm-Gg: Acq92OHr6kPAhH2iXX6vJc8tZCoEPrZi/Rh36kH5N/YSv+70hNz4NVvqPWMl3cE+J5Y
	5LtexOQnjLZ0h5OL9tvNbDHfV44bnSqg7laV4fdxzuiQIc0M0tEnuOpxhIDvkUm2kLYSXi39TJu
	rh+n1hAZxAdqPnP+oRvwQIh8wZZYHgHx/GEcImFc8655gmlQ91tgOOHy+MA965naWn/lq1U0JKY
	A7RM6yrpHk0Vw28Lxr9bPQeRxZdLtFfyDqWf0jYFs8d3Xb/0nzBNgvsM+SibLLTwA10VGUQLK/x
	i8vU7Q==
X-Received: by 2002:a05:651c:3242:b0:394:75b:eb3d with SMTP id
 38308e7fff4ca-394075c0404mr211061fa.18.1778273509151; Fri, 08 May 2026
 13:51:49 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <02b55a02f329d09c9f8b15d97ca9176b3c33017a.1775125380.git.mykola_kvach@epam.com>
 <ECDA0BD5-C2C8-4726-9377-AE4AFBE972AD@arm.com> <CAGeoDV9Jg0neHn0qzoaDSThhVRGQE8ko2qhbhDvF77=6hrYUWg@mail.gmail.com>
 <4BFA8CEE-0168-4C14-8B5F-E19E6FD7D747@arm.com>
In-Reply-To: <4BFA8CEE-0168-4C14-8B5F-E19E6FD7D747@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 8 May 2026 23:51:37 +0300
X-Gm-Features: AVHnY4IBHwfA-r4Hx63WBO9W13PGwaDdwuvkxW7WBHq8XbIt1kQISSKl2FDYMmA
Message-ID: <CAGeoDV_atObaBcLHDeG2=4aj0ceyabkK44R9wuSGZGJm_SqoDw@mail.gmail.com>
Subject: Re: [PATCH v8 10/13] xen/arm: Resume memory management on Xen resume
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ebf023/1778273510-295783FF-15B33EA2/0/0
X-purgate-type: clean
X-purgate-size: 2063

On Fri, May 8, 2026 at 4:28=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.com=
> wrote:
>
> Hi Mykola,
>
> >>> xen/arch/arm/arm64/head.S | 24 ++++++++++++++++++++++++
> >>> 1 file changed, 24 insertions(+)
> >>>
> >>> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> >>> index 72c7b24498..596e960152 100644
> >>> --- a/xen/arch/arm/arm64/head.S
> >>> +++ b/xen/arch/arm/arm64/head.S
> >>> @@ -561,6 +561,30 @@ END(efi_xen_start)
> >>>
> >>> #endif /* CONFIG_ARM_EFI */
> >>>
> >>> +#ifdef CONFIG_SYSTEM_SUSPEND
> >>> +
> >>> +FUNC(hyp_resume)
> >>
> >> I think we should mask all exceptions here:
> >> msr DAIFSet, 0xf
> >>
> >> until we resume correctly the status (VBAR_EL2, etc).
> >
> > This was discussed in an earlier version:
> >
> > https://patchew.org/Xen/cover.1741164138.git.xakep.amatop@gmail.com/2ef=
15cb605f987eb087c5496d123c47c01cc0ae7.1741164138.git.xakep.amatop@gmail.com=
/#CAGeoDV97no7mXSKd7auFu5E85wSXAHKWvqGW2=3D-VEAbkrTyU8Q@mail.gmail.com
> >
> > For SYSTEM_SUSPEND, PSCI ties the call semantics to CPU_SUSPEND. In
> > particular, section 5.20.2 says that the caller must observe all the ru=
les
> > described for CPU_SUSPEND, and section 6.4 explicitly says that the ini=
tial
> > state rules also apply to SYSTEM_SUSPEND.
> >
> > For the return Exception level on AArch64, section 6.4.3.3 requires
> > SPSR_ELx.{D,A,I,F} to be set to {1, 1, 1, 1}. Therefore Xen expects to =
enter
> > this resume path with DAIF already masked by PSCI-compliant firmware.
> >
> > I agree this assumption is not obvious from the code, so I will add a c=
omment
> > at the resume entry point to document that this path relies on the PSCI=
 initial
> > core configuration requirements.
>
> Yes please, something along the line of
>
> /*
>  * PSCI SYSTEM_SUSPEND follows CPU_SUSPEND initial-state rules.
>  * On AArch64, firmware must return with SPSR_ELx.DAIF set, so
>  * PSTATE.DAIF is already masked on entry here.
>  */

Ack.

Best regards,
Mykola

>
> Cheers,
> Luca
>


From xen-devel-bounces@lists.xenproject.org Fri May 08 20:55:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 20:55:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304225.1577299 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSE3-0007G6-JN; Fri, 08 May 2026 20:55:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304225.1577299; Fri, 08 May 2026 20:55:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSE3-0007Fy-Go; Fri, 08 May 2026 20:55:11 +0000
Received: by outflank-mailman (input) for mailman id 1304225;
 Fri, 08 May 2026 20:55:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <kevin.brodsky@arm.com>) id 1wLSE1-0007Fr-Qk
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 20:55:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLSE1-000AXG-0f
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 22:55:09 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <kevin.brodsky@arm.com>)
 id 69fe4d03-2eae-0a2a0a5409dd-0a2a45078d66-40
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:55:08 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <kevin.brodsky@arm.com>)
 id 69fe4dac-229c-0a2a45070019-d98c6eacd0de-1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:55:08 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4A79F1C25;
 Fri,  8 May 2026 13:55:02 -0700 (PDT)
Received: from [10.57.35.132] (unknown [10.57.35.132])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B76E33F836;
 Fri,  8 May 2026 13:55:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="Date:Subject:To:Cc:References:From:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778273707; bh=EYkONMkW0IatpZ5QawspWJ7T/VJZH158OZO7NH03taE=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=oT/QNC9yXHo4z1ugT7/FLiBNGDpaiDMdHzLuLsLDP/RfnuNDn7+RkOx6fUHYck5WY
	 4JiTtgOh/rHTuurIlP+VjgGp6OdeXiP8hc2bG238RdglsrJ4AC+VD81LgCQr74gaL9
	 avbGNpzxwH5AeadHWfiYrYy0idGktRIUI2usTaMk=
Message-ID: <362bc938-18ea-4f6a-938a-893dfb1c956d@arm.com>
Date: Fri, 8 May 2026 22:54:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Tolerate nested XEN_LAZY_MMU entering/leaving
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
 x86@kernel.org
Cc: marmarek@invisiblethingslab.com,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org
References: <20260508143933.493013-1-jgross@suse.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <20260508143933.493013-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778273708-23979C48-DAF182A4/0/0
X-purgate-type: clean
X-purgate-size: 2086

On 08/05/2026 16:39, Juergen Gross wrote:
> With the support of nested lazy mmu sections it can happen that
> arch_enter_lazy_mmu_mode() is being called twice without a call of
> arch_leave_lazy_mmu_mode() in between, as the lazy_mmu_*() helpers
> are not disabling preemption when checking for nested lazy mmu
> sections.

I think this is a correct description of the issue, i.e. potentially we
have arch_enter_lazy_mmu_mode() called twice *sequentially*. Therefore I
don't think that disabling preemption inside arch_enter_lazy_mmu_mode()
is enough - we have a problem with preemption occurring inside
lazy_mmu_mode_enable() generally, not necessarily inside
arch_enter_lazy_mmu_mode().

Preemption shouldn't matter if commit 291b3abed657 is reverted. AFAICT
this is the only easy fix.

- Kevin

> This is a problem when running as a Xen PV guest, as
> xen_enter_lazy_mmu() and xen_leave_lazy_mmu() don't tolerate this
> case.
>
> Fix that in xen_enter_lazy_mmu() and xen_leave_lazy_mmu() in order
> not to hurt all other lazy mmu mode users.
>
> Fixes: 291b3abed657 ("x86/xen: use lazy_mmu_state when context-switching")
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  arch/x86/xen/mmu_pv.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
> index c80d0058efd1..3eee5f84f8a7 100644
> --- a/arch/x86/xen/mmu_pv.c
> +++ b/arch/x86/xen/mmu_pv.c
> @@ -2145,7 +2145,10 @@ static void xen_set_fixmap(unsigned idx, phys_addr_t phys, pgprot_t prot)
>  
>  static void xen_enter_lazy_mmu(void)
>  {
> -	enter_lazy(XEN_LAZY_MMU);
> +	preempt_disable();
> +	if (xen_get_lazy_mode() != XEN_LAZY_MMU)
> +		enter_lazy(XEN_LAZY_MMU);
> +	preempt_enable();
>  }
>  
>  static void xen_flush_lazy_mmu(void)
> @@ -2182,7 +2185,8 @@ static void xen_leave_lazy_mmu(void)
>  {
>  	preempt_disable();
>  	xen_mc_flush();
> -	leave_lazy(XEN_LAZY_MMU);
> +	if (xen_get_lazy_mode() != XEN_LAZY_NONE)
> +		leave_lazy(XEN_LAZY_MMU);
>  	preempt_enable();
>  }
>  


From xen-devel-bounces@lists.xenproject.org Fri May 08 20:59:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 20:59:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304233.1577308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSII-000864-2F; Fri, 08 May 2026 20:59:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304233.1577308; Fri, 08 May 2026 20:59:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSIH-00085x-Va; Fri, 08 May 2026 20:59:33 +0000
Received: by outflank-mailman (input) for mailman id 1304233;
 Fri, 08 May 2026 20:59:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wLSIG-00085r-56
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 20:59:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLSIF-00GzQJ-IB
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 22:59:31 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fe4e36-2eae-0a2a0a5409dd-0a2a4509e332-44
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:59:31 +0200
Received: from [209.85.167.49] (helo=mail-lf1-f49.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fe4eb3-2497-0a2a45090019-d155a731bd12-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 22:59:31 +0200
Received: by mail-lf1-f49.google.com with SMTP id
 2adb3069b0e04-5a74ac8b40aso2279052e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 13:59:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778273971; cv=none;
        d=google.com; s=arc-20240605;
        b=RAfYPJSDNBimiDZ9GCrStWAU44bb/+P6lxyQZByV64NLdI90pa1BDrJoUp0ON1J+14
         ugsKiwQYNMF2+uCYeIZW4CQPrsIh7XjIiFuMshGaRT7ZHu8uuDeUD4IGWgterIUWX8rg
         Hn1b5eVOojOkNOEkllg4aPfVy3MvNDdRUkqcmaBwtVGcV+ATnyYoZoOAl+ZUqaTFlaUI
         zizHCvbzKEf+Gj9hYnm8l5BAEU7Iq39fd8M1A0OryT+dIQGz28OuTNNzOaFuNyLYgliR
         Dld55XHBrUjidwYuaJ1pj1aODXmtjLgHADiAO4KpIeHZj9XNmTtGH3Dm5oi/DUjnVh45
         9rJA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=eAgts6Lk1e6Br8PJPCkg4d5BLgobGJO5+1d6RgjQF0s=;
        fh=HHRjWkdysX2ZkNpVMY4DcdwfNbPq2J2BPJfxbJK3Acs=;
        b=XqgQaHO6pGZd/dtA2Wf5fTKEIudXx9yhj96TGxbRbswGRqweb3oOp3OBgLb/YXFlMx
         r8bWHM+budCRxG788VmGxMIhd/KoB3qPXab7rHyndBzdMUOKmoeK5DQtYs2IpuMyCKY2
         s4M/aC016Fd9/eL8olWVQe6k8MrF18Zq2+0lA2o3D5M+DNMm/bj77pt5ah7bNCy2B9mF
         tgPhG4M58KYAdS9wanb2gsbDhaoHukroBlEtWdwgr3ZAE4enR0ixKytE+AKjWSU4q2Lj
         sOUz4WV1b3aQCvkbeGaAs//Zgn29QEEL1bkcLE91wSgStu/X8NJz/8nfCtupttNmd3yj
         uMrg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778273971; x=1778878771; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eAgts6Lk1e6Br8PJPCkg4d5BLgobGJO5+1d6RgjQF0s=;
        b=RPOH7QRkr3ScB0R0xCn2QHz5pKuPtYv0eCKgp5+MT7Zdjs/03tUB/rGp32ZWiMtHJ9
         mhpJQBySjW9pHnDu/R1Yxrkc+AN8xxsUugwmc/Dc9XvUKtSrd9xVa8pTKcl4AsG2LQpL
         9aTZEUqnTCzXin6CWYHAVrDp6ft0K0f25jHyCZBor4v7Tufu3E1uOsKJ84wGmtVkzDHS
         BqrLhl6hbEqMiBOC9gAAWORf3ULzSj9qcNv3lt65lPTH4VmW21hep3GPCRP50GweisUH
         MBaclul4mVD6rlFHAMespF1aTe5co0GxFGU1BRKQvCLhPSnd/weojHR1gvEeZV6tVGxz
         MJ1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778273971; x=1778878771;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=eAgts6Lk1e6Br8PJPCkg4d5BLgobGJO5+1d6RgjQF0s=;
        b=GMFiE3Ef9oziLyqG5WJGa7CrWxON5Duhvtk/Hi7LcRcN1f/YTSFQrqOwpXSAT47C7b
         U2ltMQ8wH0ZHkF9L/e3xZJ4aSzpyvsyXEd4lWgd3KQBREP3ru3kd9dfAtGRNJ6zihaCN
         kfkIuqoV3G7lMNDb7qWPW0JRN6U7ZZjtd731Jqvp0bLM93lw4niXmdcMN9f+rGJqBuJT
         cCZLaUuwQ9tbPPf2KzHiF/Jn43xymbAb0KxoyhGukZuq6crlxIPsqW/4Xzo64c/iEWxU
         pkN23nkSTA3QcMRIEBgzTEBBrVfJuwlkPiIXkINZF8x4sFNFxuo/gBbVI+hQS//7He1M
         omMQ==
X-Gm-Message-State: AOJu0YxR08oD4L+NwXv8nWlRTK3FHX9AiNJalWiwq+H/TDpGuSqQ3jLS
	3N/A8cUi8aI1wphpwshx5qZ0S1ev6yXZ8+1u4D6VMN1IBCU0zFjXFbZ8lvk0abT6dgU8o8JK9GO
	JoypNxiicWtvvuiTWo55tZk4fKb4RO5E=
X-Gm-Gg: Acq92OGmFnRgi9rlNIIKcwwRRZQdt1Ki/8zkZis4YllDlmNRUVk0++aoYLYtZy+3z8W
	fjl1zGkNkkQZPjO8d3iKrwdjjT9RGQz88oyXpCf//RnXUWHdRT4vFbSJYzpkPqJv8SKomL+DR/1
	8DO7DWfGr/JK8Oo2hmmKMEOTD/E9dHxzlzrN+2X7sopv2sSrrxeuRw+VQ2qaRG+nr9hRTTxRVn/
	wV4eSwZlA8VRG03+4DSY+Gt+92RRv+353phMnrPWGSpWFOJHMS4Ys6SZ+wKklyRbVykxhXawbVd
	vY4JbQ==
X-Received: by 2002:a05:6512:401e:b0:5a4:1096:94e4 with SMTP id
 2adb3069b0e04-5a8b6c9c4f6mr33085e87.2.1778273970416; Fri, 08 May 2026
 13:59:30 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <02b55a02f329d09c9f8b15d97ca9176b3c33017a.1775125380.git.mykola_kvach@epam.com>
 <873402ub63.fsf@epam.com>
In-Reply-To: <873402ub63.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 8 May 2026 23:59:19 +0300
X-Gm-Features: AVHnY4KwmCRNlh-rjvCBDnZlHGwH0fbsH41MPUKe0T4UvNUHB2xg6MnS1t1Edb0
Message-ID: <CAGeoDV8KppmniGEtRzCeHMLuVdXD-2bRXa_CeOPh8P9xPjiCTg@mail.gmail.com>
Subject: Re: [PATCH v8 10/13] xen/arm: Resume memory management on Xen resume
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <Mykola_Kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-bad1c0/1778273971-43D7FA53-9522E16B/0/0
X-purgate-type: clean
X-purgate-size: 2482

Hi Volodymyr,

Thank you for the feedback.

On Fri, May 8, 2026 at 1:06=E2=80=AFAM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
> Hi Mykola,
>
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>
> > From: Mirela Simonovic <mirela.simonovic@aggios.com>
> >
> > The MMU must be enabled during the resume path before restoring context=
,
> > as virtual addresses are used to access the saved context data.
> >
>
> I agree with Luca, this patch does not makes sense as is. I don't see
> why it should be separated from the rest of the resume path that is
> added in the next patch

Ack. I'll combine this with the next patch in v9.

Best regards,
Mykola

>
> > This patch adds MMU setup during resume by reusing the existing
> > enable_secondary_cpu_mm function, which enables data cache and the MMU.
> > Before the MMU is enabled, the content of TTBR0_EL2 is changed to point
> > to init_ttbr (page tables used at runtime).
> >
> > Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
> > Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
> > Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Changes in v7:
> > - no functional changes, just moved commit
> > ---
> >  xen/arch/arm/arm64/head.S | 24 ++++++++++++++++++++++++
> >  1 file changed, 24 insertions(+)
> >
> > diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> > index 72c7b24498..596e960152 100644
> > --- a/xen/arch/arm/arm64/head.S
> > +++ b/xen/arch/arm/arm64/head.S
> > @@ -561,6 +561,30 @@ END(efi_xen_start)
> >
> >  #endif /* CONFIG_ARM_EFI */
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +FUNC(hyp_resume)
> > +        /* Initialize the UART if earlyprintk has been enabled. */
> > +#ifdef CONFIG_EARLY_PRINTK
> > +        bl    init_uart
> > +#endif
> > +        PRINT_ID("- Xen resuming -\r\n")
> > +
> > +        bl    check_cpu_mode
> > +        bl    cpu_init
> > +
> > +        ldr   x0, =3Dstart
> > +        adr   x20, start             /* x20 :=3D paddr (start) */
> > +        sub   x20, x20, x0           /* x20 :=3D phys-offset */
> > +        ldr   lr, =3Dmmu_resumed
> > +        b     enable_secondary_cpu_mm
> > +
> > +mmu_resumed:
> > +        b .
> > +END(hyp_resume)
> > +
> > +#endif /* CONFIG_SYSTEM_SUSPEND */
> > +
> >  /*
> >   * Local variables:
> >   * mode: ASM
>
> --
> WBR, Volodymyr


From xen-devel-bounces@lists.xenproject.org Fri May 08 21:23:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 21:23:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304240.1577317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSfk-0003ve-SK; Fri, 08 May 2026 21:23:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304240.1577317; Fri, 08 May 2026 21:23:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSfk-0003vX-Ph; Fri, 08 May 2026 21:23:48 +0000
Received: by outflank-mailman (input) for mailman id 1304240;
 Fri, 08 May 2026 21:23:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wLSfj-0003vR-Lu
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 21:23:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLSfh-00Fbsh-1m
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 23:23:46 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69fe5415-bab6-0a2a0a5309dd-0a2a4508c0e2-46
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:23:46 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69fe5461-63b5-0a2a45080019-ac6904fe9cf0-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:23:46 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id A850A6024D;
 Fri,  8 May 2026 21:23:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1E71EC2BCB4;
 Fri,  8 May 2026 21:23:44 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778275424;
	bh=NAKnjKkODxWcV+2m2D9TCncmSNBk1eGzdy/HehPI1mI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=UoRMBodVC/DLgpW2vRuqRK2gDSMAI9m4sdZOHmwJMXDsD/heFcqUTqAxDOdQYl8qx
	 u2M/67qQPq961yiGsCC6Ue05Kl8kPMTpU0gMOOCDhkOJMgxJln1PoAZLLaU0LGYKaR
	 /b8XYdki5J738s4BhiXLKB0JOeDG66wCa1qaWRwewze8m8xQ1OzwumrpqtXMfsSEcL
	 Ag8CreR74efjmvht0yTvpnnEkFdFRAa4CZO2PFo2/wVsgckYbyv4D7wCL7NNgozjeQ
	 MOqs5iE77wFiQwuGYZTOizmO0ipHfsCT9gy5ygdweZSox1pF/KuYy3wK5/MMfvbsv4
	 Yue7bt5W+IHPA==
Date: Fri, 8 May 2026 14:23:43 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
cc: Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH] ns16550: add support for WCH CH382 serial adapters
In-Reply-To: <20260508092813.12894-1-Zhao.Jiaqing@amd.com>
Message-ID: <alpine.DEB.2.22.394.2605081413340.1779943@ubuntu-linux-20-04-desktop>
References: <20260508092813.12894-1-Zhao.Jiaqing@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-c1860d/1778275426-B6368DB1-4A47739F/0/0
X-purgate-type: clean
X-purgate-size: 2850

On Fri, 8 May 2026, Jiaqing Zhao wrote:
> Add support for the WCH (Nanjing Qinheng Microelectronics Co., Ltd.)
> CH382 PCIe dual port serial adapter. The CH382 is available in two
> variants:
>  - CH382 2S   [1c00:3253]: 2 serial ports
>  - CH382 2S1P [1c00:3250]: 2 serial ports + 1 parallel port
> 
> This chip uses IO BAR0, base baud rate 115200, ports starting at offset
> 0xc0 and spaced 8 bytes apart, and a 256-byte FIFO. [1]
> 
> [1] https://www.wch-ic.com/downloads/CH382DS1_PDF.html
> 
> Signed-off-by: Jiaqing Zhao <Zhao.Jiaqing@amd.com>

WCH has a few PCI vendor IDs, including 0x1c00 and also 0x4348. Linux
distinguishes them as PCI_VENDOR_ID_WCHIC = 0x1c00 and
PCI_VENDOR_ID_WCHCN = 0x4348. It would probably be better to rename
PCI_VENDOR_ID_WCH to PCI_VENDOR_ID_WCHIC in this patch.

Everything else looks good.

> ---
>  xen/drivers/char/ns16550.c | 23 +++++++++++++++++++++++
>  xen/include/xen/pci_ids.h  |  2 ++
>  2 files changed, 25 insertions(+)
> 
> diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
> index 878da27f2e..106ef56316 100644
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -95,6 +95,7 @@ struct ns16550_config {
>          param_exar_xr17v354,
>          param_exar_xr17v358,
>          param_intel_lpss,
> +        param_wch_ch382,
>      } param;
>  };
  
> @@ -862,6 +862,16 @@ static const struct ns16550_config_param __initconst uart_param[] = {
>          .mmio = 1,
>          .max_ports = 1,
>      },
> +    [param_wch_ch382] = {
> +        .base_baud = 115200,
> +        .first_offset = 0xc0,
> +        .uart_offset = 8,
> +        .reg_width = 1,
> +        .fifo_size = 256,
> +        .lsr_mask = UART_LSR_THRE,
> +        .bar0 = 1,
> +        .max_ports = 2,
> +    },
>  };
>  
>  static const struct ns16550_config __initconst uart_config[] =
> @@ -1189,6 +1200,18 @@ static const struct ns16550_config __initconst uart_config[] =
>          .dev_id = 0x7adc,
>          .param = param_intel_lpss
>      },
> +    /* WCH CH382 2S */
> +    {
> +        .vendor_id = PCI_VENDOR_ID_WCH,
> +        .dev_id = 0x3253,
> +        .param = param_wch_ch382
> +    },
> +    /* WCH CH382 2S1P */
> +    {
> +        .vendor_id = PCI_VENDOR_ID_WCH,
> +        .dev_id = 0x3250,
> +        .param = param_wch_ch382
> +    },
>  };
>  
>  static int __init
> diff --git a/xen/include/xen/pci_ids.h b/xen/include/xen/pci_ids.h
> index 5884a20b8f..b8316d464c 100644
> --- a/xen/include/xen/pci_ids.h
> +++ b/xen/include/xen/pci_ids.h
> @@ -13,6 +13,8 @@
>  
>  #define PCI_VENDOR_ID_BROADCOM           0x14e4
>  
> +#define PCI_VENDOR_ID_WCH                0x1c00
> +
>  #define PCI_VENDOR_ID_INTEL              0x8086
>  
>  #endif /* XEN_PCI_IDS_H */
> -- 
> 2.53.0
> 


From xen-devel-bounces@lists.xenproject.org Fri May 08 21:29:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 21:29:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304251.1577344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSl0-0005C8-1b; Fri, 08 May 2026 21:29:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304251.1577344; Fri, 08 May 2026 21:29:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSkz-0005C1-Ts; Fri, 08 May 2026 21:29:13 +0000
Received: by outflank-mailman (input) for mailman id 1304251;
 Fri, 08 May 2026 21:29:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLSky-0004lM-8S
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 21:29:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLSkx-00E1Ak-Lx
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 23:29:11 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fe5538-bab6-0a2a0a5309dd-0a2a4507b2e6-32
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:29:11 +0200
Received: from [209.85.221.54] (helo=mail-wr1-f54.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fe55a7-229c-0a2a45070019-d155dd36acc1-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:29:11 +0200
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-44e1860558fso1643891f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 14:29:11 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491ca383asm7548608f8f.28.2026.05.08.14.29.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 14:29:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1778275751; x=1778880551; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nOnPZ71Y6QNC+1FR8zvXZiIznnQQDmHT9JY/KOQdFvo=;
        b=X7BqLKEy4gXZAv3KT3EqIDF3wIHyYSK95tl53WVDgMMWPfPY17jOxMsl+ZwwFtytkv
         JjNxa/Jpg4BFzPmfA2B4wqOCMEZoUVNIZQrpORdTHCxFey+hRjAzHYnrxueam/cZpGK9
         ZvANm2BIxV7Rmy18wAYiLSFkgimPOfxrBrDj8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778275751; x=1778880551;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=nOnPZ71Y6QNC+1FR8zvXZiIznnQQDmHT9JY/KOQdFvo=;
        b=RdVOCPpmKH2cG7hjrkctJV3A4ZmIu2zQOUujhDOaiAVruviX0GL4BUbfm9yBc4JV6R
         CcSyK/qLVJHnXFW4U3rFhB9RBeighRAOTAGzmRpo3FdrgpnpYUgzYP+yZR/1QUZJqWPr
         hvBL20C7PBjraFjfKUWWrBkWwwNabUFMYxcyW1BRJakv5ObiAO1pLaMg0ByTiURG1+a7
         uFzdkqiTbEYfs2P9OZzjTx8DlDesG1tGDt0PV86LPAgwsWdkwLN4EltYxDyrje3eTBk1
         ScIpWq7k8g89L5Rs6o7zyN1Y+FLGYrmn78u33TjzypKrnrD4RSkdRFsQjy+qI/4Q591L
         fs3Q==
X-Gm-Message-State: AOJu0YyjKTIP8f+jbkReqS2k75KkBMYs4Dh/IQoejZbyvODgc2Mh0MHC
	YWCibyXHh4RTQb8JdBIFND2vqkIl18W7dBMupWLYZLBKbqV0WBAn8eiFGcN2H8QeGTOmnvOoLGu
	is6GAJFw=
X-Gm-Gg: Acq92OHoaps9N/wvCAlEelm4YHzzc4tFTjK1oOMMZVEVw313i7kNfjEJuhm8+oJt/qn
	AowirBr9Rm/jLKnIah/K4xFnt6ueoAdgtIUJFVb7vZeuBCCNX0XGzEnJsh4JVU0LRwT17LW5a0r
	eW+KSpSURtUhFQFcLbNfCIVHjy9+CqKQBtw/7vB4nN0xe4+kQy8BnCOrPMizUlULT8bOniEDlvA
	C9ltmPimuy420PgAbBWc7ICAVlFF2ApByV3wAObHH4CdCbHmZ8RDdb4k3BrfF9TITikuV7FQx6C
	+4oxgk/zGbbYy5vugi+7/XpK7T7tEmeUSefY3gRfMdOZh53YMOAFKMzk3W04DboUWdPLl7kCRBI
	dWEgQAmHfMvM9PCOUFl/rVYjUtj0nTw45l74fUpYEEobsx70lUmoZzviNfXLpHTzPmNhBORkTCC
	r7kA7PtRz+vksHDnG+utJA0QgH1c7vgmEjE0iHt/7r3bpKJ0fU+uZDj6JoEDuNt6EgoBiqTJJK4
	amc
X-Received: by 2002:a05:6000:4027:b0:455:7c9f:a49e with SMTP id ffacd0b85a97d-4557c9fa4c8mr1759641f8f.25.1778275750617;
        Fri, 08 May 2026 14:29:10 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH 2/5] CI: Refresh the Debian 12 arm32 cross compile container
Date: Fri,  8 May 2026 22:29:04 +0100
Message-Id: <20260508212907.1643761-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1778275751-23F7EC48-A60DC4E8/10/63158204843
X-purgate-type: spam
X-purgate-size: 8770

From: Javi Merino <javi.merino@cloud.com>

Rework the container to user heredocs for readability, derive from
bookworm-slim and use apt-get --no-install-recommends to keep the size down.

Convert it to being a non-root container.  Add checkpolicy as FLASK is an
available build option for arm32 under Randconfig testing.

Rename the CI jobs to debian-12-arm32-* to follow the naming scheme of all the
other CI jobs.

No functional change.

Signed-off-by: Javi Merino <javi.merino@cloud.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Doug Goldstein <cardoe@cardoe.com>
---
 .../build/debian/12-arm64v8-arm32.dockerfile  | 32 +++++++++++++++++++
 .../bookworm-arm64v8-arm32-gcc.dockerfile     | 24 --------------
 automation/gitlab-ci/build.yaml               | 24 +++++++-------
 automation/gitlab-ci/test.yaml                | 14 ++++----
 automation/scripts/containerize               |  2 +-
 5 files changed, 52 insertions(+), 44 deletions(-)
 create mode 100644 automation/build/debian/12-arm64v8-arm32.dockerfile
 delete mode 100644 automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile

diff --git a/automation/build/debian/12-arm64v8-arm32.dockerfile b/automation/build/debian/12-arm64v8-arm32.dockerfile
new file mode 100644
index 000000000000..a4d70f1111ed
--- /dev/null
+++ b/automation/build/debian/12-arm64v8-arm32.dockerfile
@@ -0,0 +1,32 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/arm64/v8 debian:bookworm-slim
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf-
+
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    useradd --create-home user
+
+    apt-get update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        flex
+        gcc-arm-linux-gnueabihf
+    )
+
+    apt-get --yes --no-install-recommends install "${DEPS[@]}"
+
+    rm -rf /var/lib/apt/lists*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile b/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile
deleted file mode 100644
index 95b3f0428372..000000000000
--- a/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/arm64/v8 debian:bookworm
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-ENV CROSS_COMPILE /usr/bin/arm-linux-gnueabihf-
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        flex \
-        bison \
-        git \
-        gcc-arm-linux-gnueabihf \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index f05895729147..d027f26a6d6b 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -359,52 +359,52 @@ debian-13-riscv64-gcc-debug:
 
 # Arm32 cross-build
 
-debian-bookworm-gcc-arm32:
+debian-12-arm32-gcc:
   extends: .gcc-arm32-cross-build
   <<: *build-test
   variables:
-    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
+    CONTAINER: debian:12-arm64v8-arm32
     HYPERVISOR_ONLY: y
 
-debian-bookworm-gcc-arm32-debug:
+debian-12-arm32-gcc-debug:
   extends: .gcc-arm32-cross-build-debug
   <<: *build-test
   variables:
-    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
+    CONTAINER: debian:12-arm64v8-arm32
     HYPERVISOR_ONLY: y
 
-debian-bookworm-gcc-arm32-randconfig:
+debian-12-arm32-gcc-randconfig:
   extends: .gcc-arm32-cross-build
   variables:
-    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
+    CONTAINER: debian:12-arm64v8-arm32
     HYPERVISOR_ONLY: y
     RANDCONFIG: y
 
-debian-bookworm-gcc-arm32-debug-staticmem:
+debian-12-arm32-gcc-debug-staticmem:
   extends: .gcc-arm32-cross-build-debug
   <<: *build-test
   variables:
-    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
+    CONTAINER: debian:12-arm64v8-arm32
     HYPERVISOR_ONLY: y
     EXTRA_XEN_CONFIG: |
       CONFIG_EXPERT=y
       CONFIG_UNSUPPORTED=y
       CONFIG_STATIC_MEMORY=y
 
-debian-bookworm-gcc-arm32-debug-earlyprintk:
+debian-12-arm32-gcc-debug-earlyprintk:
   extends: .gcc-arm32-cross-build-debug
   <<: *build-test
   variables:
-    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
+    CONTAINER: debian:12-arm64v8-arm32
     HYPERVISOR_ONLY: y
     EXTRA_XEN_CONFIG: |
       CONFIG_EARLY_UART_CHOICE_PL011=y
       CONFIG_EARLY_UART_BASE_ADDRESS=0x9000000
 
-debian-bookworm-gcc-arm32-debug-mpu:
+debian-12-arm32-gcc-debug-mpu:
   extends: .gcc-arm32-cross-build-debug
   variables:
-    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
+    CONTAINER: debian:12-arm64v8-arm32
     HYPERVISOR_ONLY: y
     EXTRA_XEN_CONFIG: |
       CONFIG_XEN_START_ADDRESS=0x0
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 517af1732437..e1d6bb505674 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -600,7 +600,7 @@ qemu-smoke-dom0less-arm32-gcc:
     - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE}
   needs:
     - *arm32-test-needs
-    - debian-bookworm-gcc-arm32
+    - debian-12-arm32-gcc
 
 qemu-smoke-dom0less-arm32-gcc-debug:
   extends: .qemu-arm32
@@ -608,7 +608,7 @@ qemu-smoke-dom0less-arm32-gcc-debug:
     - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE}
   needs:
     - *arm32-test-needs
-    - debian-bookworm-gcc-arm32-debug
+    - debian-12-arm32-gcc-debug
 
 qemu-smoke-dom0less-arm32-gcc-debug-staticmem:
   extends: .qemu-arm32
@@ -616,7 +616,7 @@ qemu-smoke-dom0less-arm32-gcc-debug-staticmem:
     - ./automation/scripts/qemu-smoke-dom0less-arm32.sh static-mem 2>&1 | tee ${LOGFILE}
   needs:
     - *arm32-test-needs
-    - debian-bookworm-gcc-arm32-debug-staticmem
+    - debian-12-arm32-gcc-debug-staticmem
 
 qemu-smoke-dom0less-arm32-gcc-debug-gzip:
   extends: .qemu-arm32
@@ -624,7 +624,7 @@ qemu-smoke-dom0less-arm32-gcc-debug-gzip:
     - ./automation/scripts/qemu-smoke-dom0less-arm32.sh gzip 2>&1 | tee ${LOGFILE}
   needs:
     - *arm32-test-needs
-    - debian-bookworm-gcc-arm32-debug
+    - debian-12-arm32-gcc-debug
 
 qemu-smoke-dom0less-arm32-gcc-without-dom0:
   extends: .qemu-arm32
@@ -632,7 +632,7 @@ qemu-smoke-dom0less-arm32-gcc-without-dom0:
     - ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE}
   needs:
     - *arm32-test-needs
-    - debian-bookworm-gcc-arm32
+    - debian-12-arm32-gcc
 
 qemu-smoke-dom0less-arm32-gcc-debug-without-dom0:
   extends: .qemu-arm32
@@ -640,7 +640,7 @@ qemu-smoke-dom0less-arm32-gcc-debug-without-dom0:
     - ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE}
   needs:
     - *arm32-test-needs
-    - debian-bookworm-gcc-arm32-debug
+    - debian-12-arm32-gcc-debug
 
 qemu-smoke-dom0less-arm32-gcc-debug-earlyprintk:
   extends: .qemu-arm32
@@ -648,7 +648,7 @@ qemu-smoke-dom0less-arm32-gcc-debug-earlyprintk:
     - ./automation/scripts/qemu-smoke-dom0less-arm32.sh earlyprintk 2>&1 | tee ${LOGFILE}
   needs:
     - *arm32-test-needs
-    - debian-bookworm-gcc-arm32-debug-earlyprintk
+    - debian-12-arm32-gcc-debug-earlyprintk
 
 qemu-alpine-x86_64-gcc:
   extends: .qemu-x86-64
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index ad3e2372703f..ef3b97b65578 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -38,7 +38,7 @@ case "_${CONTAINER}" in
     _bookworm|_bookworm-x86_64) CONTAINER="${BASE}/debian:12-x86_64" ;;
     _trixie-x86_64|_) CONTAINER="${BASE}/debian:13-x86_64" ;;
     _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;;
-    _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;;
+    _bookworm-arm64v8-arm32) CONTAINER="${BASE}/debian:12-arm64v8-arm32" ;;
     _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;;
     _bookworm-cppcheck) CONTAINER="${BASE}/debian:12-arm64v8-cppcheck" ;;
     _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 08 21:29:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 21:29:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304253.1577358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSl1-0005Sh-KD; Fri, 08 May 2026 21:29:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304253.1577358; Fri, 08 May 2026 21:29:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSl1-0005Re-D8; Fri, 08 May 2026 21:29:15 +0000
Received: by outflank-mailman (input) for mailman id 1304253;
 Fri, 08 May 2026 21:29:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLSkz-00053I-Dr
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 21:29:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLSky-00E1Ak-R5
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 23:29:12 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fe5569-bab6-0a2a0a5309dd-0a2a4509d4ec-46
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:29:12 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fe55a8-2497-0a2a45090019-d155dd2cad56-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:29:12 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-44da2de25f3so1696091f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 14:29:12 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491ca383asm7548608f8f.28.2026.05.08.14.29.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 14:29:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1778275752; x=1778880552; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sCpnw2CHljiDPANNMJcNI0PWk3nH2XqIoYsrjyrERM4=;
        b=IzT4UXvx/KdEUEDSKGP1r6y2YxWkwjJxDDhljP9CxUGb8ptqfgvpQlV7izh41l9J2G
         10CNfTQqlSFTMjPkhh8bMs0CJHKmzcjLzMglvpkWIrLtj/zso2xmDmBl9JWSAto9IT6/
         Rs64gdZJ/958rG0NfpTNCycfrhDk9bJr6JQkc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778275752; x=1778880552;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=sCpnw2CHljiDPANNMJcNI0PWk3nH2XqIoYsrjyrERM4=;
        b=IW+2GPEONFUwTt5QHpurYyAZpAb4I5QcGh57wH5dKFq4zC50zgFcwvu7O9vicE6p45
         cE5LFogwyYV14i++vtNtES1FbpYfT6myQpJco81TP1E9mmAmTyvIb6lZYFsYWW1gM/5Q
         FyTOcEPpholrg+qCM5GJkvbRD3wAg5KbiOw41kIAmHI7G3tc8hbEcogSnrPBn3bbxs45
         gEJuGM16pE5YmScmA29R8rB/zhltl0eDpWjrxaNO9H+jxCK+EIkb4TzMuydsv6WaPZXZ
         UB8j9GhOyUY6eG2HqAY2sd57a06SFpQ5O1KanO3w5J9YwDEt0MYNyv9LwDsQcCcwgPr0
         lXsA==
X-Gm-Message-State: AOJu0YwoNPUnZWDIpLmuNaA4x4zvC6XTCr/9YDbu3OXNLDNkJ+0D/FZy
	A1V1X3fS4RYviYBm9nlSMDo8P5D5WscqOCgujF2WiTZ9o6KWVWECTXAkZtXKLqk7/RGjqUQ1vr8
	fez0bytY=
X-Gm-Gg: Acq92OGzsZMZkv/NQ3kWueumkexePUqGBRHIJWF6g1VpQc96n9vX4M3sQEYY/6x25ml
	D0yCLXkbQYUFWPfuffcclAPlb8IVZ3ypkGnVN+EuxwAgHnMTFRF2jxgH2GFe+egeNT3bPoQRUbg
	AAxWWeyOyek0b5BPIysBHBerWyE9mdy0lux0WiOmlL7ZiHlrt4jm8EWOezEcpqY0YIKZTwtzA2b
	X44vLoKzsU4chfS632S11i1wgZEePOylbqL0CQ3hH98RBrjcvkB9Dt7B2vrhkBk8E3ViWzZKNzd
	9kw/yZek2+zn38pcpFQ4BnNA1SaQJGbIl0F7VqGmZ2Uwodxl8ifYE4zqXQKc1Bwo6Rvqfw/NDo2
	sy7eIDdJr7jZdLZg13b6IVUbdoeN9qzCB+sGv3nMCHCZIRCnPoAeEYtKQBm0DwQHIRcu5nqod3x
	mGFBnNL3pF3lmua1eH39q33z+Nxyzv1eEoA8s2zspalie60aDUXlRwKdQ/VJ3+BzKku6w75+ujK
	Jts
X-Received: by 2002:a05:6000:4383:b0:43d:7275:c1eb with SMTP id ffacd0b85a97d-454637c804cmr6690324f8f.39.1778275751877;
        Fri, 08 May 2026 14:29:11 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH 4/5] CI: Add a Debian 13 (Trixie) arm64 container
Date: Fri,  8 May 2026 22:29:06 +0100
Message-Id: <20260508212907.1643761-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778275752-40D67A53-32A4080A/10/63158204843
X-purgate-type: spam
X-purgate-size: 4052

Exactly as per the Bookworm container, but additionally with the ipxe-qemu and
qemu-system-aarch64 packages.  These will be used to remove the export jobs.

Switch qemu-arm{32,64} jobs to use this container.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Doug Goldstein <cardoe@cardoe.com>

We should probably wire up some build tests too, but it's too late on a Friday
for me to be thinking about that for this posting.
---
 automation/build/debian/13-arm64v8.dockerfile | 71 +++++++++++++++++++
 automation/gitlab-ci/test.yaml                |  4 +-
 automation/scripts/containerize               |  1 +
 3 files changed, 74 insertions(+), 2 deletions(-)
 create mode 100644 automation/build/debian/13-arm64v8.dockerfile

diff --git a/automation/build/debian/13-arm64v8.dockerfile b/automation/build/debian/13-arm64v8.dockerfile
new file mode 100644
index 000000000000..b9062ee8b443
--- /dev/null
+++ b/automation/build/debian/13-arm64v8.dockerfile
@@ -0,0 +1,71 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/arm64/v8 debian:trixie-slim
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    useradd --create-home user
+
+    apt-get update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        flex
+
+        # Tools (general)
+        ca-certificates
+        cpio
+        git-core
+        pkg-config
+        wget
+        # libxenguest dombuilder
+        libbz2-dev
+        liblzma-dev
+        liblzo2-dev
+        libzstd-dev
+        zlib1g-dev
+        # libacpi
+        acpica-tools
+        # libxl
+        libfdt-dev
+        libjson-c-dev
+        uuid-dev
+        # xentop
+        libncurses5-dev
+        # Python bindings
+        python3-dev
+        python3-setuptools
+        # Golang bindings
+        golang-go
+        # Ocaml bindings/oxenstored
+        ocaml-nox
+        ocaml-findlib
+
+        # for test phase, qemu-* jobs
+        busybox-static
+        curl
+        device-tree-compiler
+        expect
+        file
+        ipxe-qemu
+        ovmf
+        qemu-system-aarch64
+        u-boot-qemu
+        u-boot-tools
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+
+    rm -rf /var/lib/apt/lists*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 982fd86db079..008deef98d1e 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -37,7 +37,7 @@
 .qemu-arm64:
   extends: .test-jobs-common
   variables:
-    CONTAINER: debian:12-arm64v8
+    CONTAINER: debian:13-arm64v8
     LOGFILE: qemu-smoke-arm64.log
   artifacts:
     paths:
@@ -50,7 +50,7 @@
 .qemu-arm32:
   extends: .test-jobs-common
   variables:
-    CONTAINER: debian:12-arm64v8
+    CONTAINER: debian:13-arm64v8
     LOGFILE: qemu-smoke-arm32.log
   artifacts:
     paths:
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index bda06054ebde..8bd2a847aac0 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -41,6 +41,7 @@ case "_${CONTAINER}" in
     _bookworm-arm64v8-arm32) CONTAINER="${BASE}/debian:12-arm64v8-arm32" ;;
     _bookworm-arm64v8) CONTAINER="${BASE}/debian:12-arm64v8" ;;
     _bookworm-cppcheck) CONTAINER="${BASE}/debian:12-arm64v8-cppcheck" ;;
+    _trixie-arm64v8) CONTAINER="${BASE}/debian:13-arm64v8" ;;
     _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
     _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
     _xenial) CONTAINER="${BASE}/ubuntu:16.04-x86_64" ;;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 08 21:29:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 21:29:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304249.1577325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSky-0004lW-E9; Fri, 08 May 2026 21:29:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304249.1577325; Fri, 08 May 2026 21:29:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSky-0004lN-Ba; Fri, 08 May 2026 21:29:12 +0000
Received: by outflank-mailman (input) for mailman id 1304249;
 Fri, 08 May 2026 21:29:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1wLSkx-0004lB-Gp
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 21:29:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLSkw-00AvHv-Qk
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 23:29:10 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fe5568-e002-0a2a0a5209dd-0a2a45028108-16
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:29:10 +0200
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fe55a6-af86-0a2a45020019-d155dd33c191-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:29:10 +0200
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-43eb05b1875so1482956f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 14:29:10 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491ca383asm7548608f8f.28.2026.05.08.14.29.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 14:29:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1778275749; x=1778880549; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sVmq4etdovYoJDRMA/BMmOvUPNieQX2pyEDBr8hljoM=;
        b=TDSltpKa2KHPfHE1NkLympPxuOBRljN/VqLXBfUT861kaBBT1x+9IkKL5ngNDvgHdB
         SXP6bl9rzOlcN6nqQNHSQvu07hs2XP50ypeOF2AS+NLOyL04F24TDgB1icQ7brBwLgKA
         VJcJrzm6U4LsNyLqktiqJf3mpojSh000nAesk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778275749; x=1778880549;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=sVmq4etdovYoJDRMA/BMmOvUPNieQX2pyEDBr8hljoM=;
        b=UXm3GfBH6wxWkymUMxq7tMB8FjYVNT4355GqUgKZVD8LWfyHPkTvJzsJlNCCbRZ1BT
         mWBqomaMJRP2u1rd0CAZh/6Mqf7/QJjnHwak87G6a8YUq7bynMDmkYKE7dUqZrb5Lyov
         5sXAleuD07i2PL7sUc4Pm6clip80aml7CtANwtjkf+dMeoFfvQ8tLAwwibdfVgSsp3yl
         mmwBIUOhRIyMYeAHD4b2Yfy2ZwSUlwShutBjiqx27RjbMakipxvY8Q2vzM0//0i2dTI/
         bcm1e2gQlybTMHVOJDl9D+gG7Eq0IWtwunBFyEGaBP1DzAcGmUKDzniUdZLZtguN0W5u
         tsAA==
X-Gm-Message-State: AOJu0YyVpnLh+TiqBPbBGOEA6B6MSbMdc+hCEwUMcimqF2LqFdJepDnR
	gvwx6tR6k3cJBRtugJXTXaLplhD627EGHtU5szC3OeZvtGxLc8FZzCkbGaJRUYpCAWUixQh5R7G
	unJDe7vc=
X-Gm-Gg: Acq92OHvvL0TbUwhGjzXEN6HbT51YvXNxEwnl2XLK+OISRm+6HaOecMyVcw1CJXOd2V
	lSkW8CaPxk3qw33odjwjXFayYLIxGj2SdTUvlV+ElnCrcj9tEjsO356QtKThVBdDqA1IqC4Os0y
	DPnfE+faKalm+afsw8ptYd+k8IaYswXYP6OWysAtxzepTM3UYa4PlhxINqZbGxzUbfkzRH4AZv0
	NeaNa2wxvEKAPYWHeqJyJOWsiXXfGLu9Dko+PNNgnv5+4Apeaew4xCsUekdljEyMamF/HqCANmA
	1kcTSMD13Aj7GJ4KderYTpRJuePQZZn3YdMJjgM8KWbxyDxecwJwhi2IgrEFK4CYKOJe+0pFmP7
	dqlAu/yyb6JBTXhEre9+QsJ+BoBWuLSITrb0RORjmMa0GUq5852GZgmVZ7jfqW9Xrxwe10WUN7/
	Oum3clFXLw18U/w3+2hpgH0+nk47sKt10jvbF/EUcUtwoIvt5iWoiGTaAKJ4vPtiWgMwCTYfOYA
	k8W
X-Received: by 2002:a5d:5d85:0:b0:454:86d:b4d2 with SMTP id ffacd0b85a97d-45689baa9b3mr100523f8f.8.1778275749343;
        Fri, 08 May 2026 14:29:09 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH 1/5] CI: Adjust test needs[] to ensure binaries/ is non-root
Date: Fri,  8 May 2026 22:29:03 +0100
Message-Id: <20260508212907.1643761-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778275750-AB563161-4DC6A5B8/0/0
X-purgate-type: clean
X-purgate-size: 2648

The binaries/ directory is a composition from the artefacts, and also used as
a working directory for most of the tests.  If the very first artefact is from
a root container, then the test must also be a root container to use it as a
working directory.

For arm64, the existing linux-arm64 artefact suffices.  For arm32, pull in the
microcode-x86 artefact as it's the smallest available.  This bodge can be
removed when all build containers have become non-root.

For the qemu-xtf-dom0less-arm64-*-xen-version jobs, use *arm64-test-needs
ahead of alpine-3.18-gcc-* (as it's a root container), and to deduplicate
the *-export dependency.

This will allow us to change containers to being non-root one at a time,
rather than all in one go.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Doug Goldstein <cardoe@cardoe.com>

We should also stop using binaries/ as a working directory for the tests, but
that gets very complicated very quickly and I don't have time to do it at this
juncture.
---
 automation/gitlab-ci/test.yaml | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 8770c523e228..517af1732437 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -15,6 +15,12 @@
   - qemu-system-aarch64-6.0.0-arm64-export
 
 .arm32-test-needs: &arm32-test-needs
+  # Bodge to ensure binaries/ is non-root.  Can be any artefact which comes
+  # from a non-root container, and microcode-x86 is the smallest.  Remove when
+  # all build containers have become non-root.
+  - project: $ARTIFACTS_REPO
+    job: microcode-x86
+    ref: $ARTIFACTS_BRANCH
   - qemu-system-aarch64-6.0.0-arm32-export
 
 .x86-64-test-needs: &x86-64-test-needs
@@ -569,16 +575,16 @@ qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
   script:
     - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 | tee ${LOGFILE}
   needs:
+    - *arm64-test-needs
     - alpine-3.18-gcc-arm64
-    - qemu-system-aarch64-6.0.0-arm64-export
 
 qemu-xtf-dom0less-arm64-gcc-debug-hyp-xen-version:
   extends: .qemu-arm64
   script:
     - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 | tee ${LOGFILE}
   needs:
+    - *arm64-test-needs
     - alpine-3.18-gcc-debug-arm64
-    - qemu-system-aarch64-6.0.0-arm64-export
 
 qemu-smoke-dom0-arm32-gcc:
   extends: .qemu-arm32
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 08 21:29:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 21:29:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304254.1577364 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSl2-0005cE-1f; Fri, 08 May 2026 21:29:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304254.1577364; Fri, 08 May 2026 21:29:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSl1-0005ah-T1; Fri, 08 May 2026 21:29:15 +0000
Received: by outflank-mailman (input) for mailman id 1304254;
 Fri, 08 May 2026 21:29:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLSl0-0005Gs-GH
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 21:29:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLSkz-000E8K-Tf
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 23:29:13 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fe5508-5cb7-0a2a0a5109dd-0a2a4508bcd8-36
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:29:13 +0200
Received: from [209.85.221.53] (helo=mail-wr1-f53.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fe55a9-63b5-0a2a45080019-d155dd35d1fa-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:29:13 +0200
Received: by mail-wr1-f53.google.com with SMTP id
 ffacd0b85a97d-45297094718so1933598f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 14:29:13 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491ca383asm7548608f8f.28.2026.05.08.14.29.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 14:29:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1778275753; x=1778880553; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3pK0KfhDLNVVZ6TWY1JZ97U9wzF5HmGiXTOWuG1PAs8=;
        b=YW3kIXyVCV8+kHX+dX/5jZATJW7G7uq0dyrX8E73zEn4p2fOeEETk1k4wI8HAIhrPX
         Rp1GBc4oknSKFIj/fiBOfX0bZhL7yq5tCb0A1/PumjWCN/ABRGG4IocqJkjSyMi+ViZL
         wKBzeBKiIGeaJbfzPJnBBM+c9oYOGrqzVAwUY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778275753; x=1778880553;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=3pK0KfhDLNVVZ6TWY1JZ97U9wzF5HmGiXTOWuG1PAs8=;
        b=dlNSijxEWSRPDiTLlbYPA5FAwwFpjOSd4clmjm0nngbNWb3AbsD54OwXjIO70bqwQg
         WT0Deys9lxXwIeq4JH+NuIx2fo/mdUID2llbJF/00qhlqFQyW6Un4H/3cjvROj0PoGqE
         pwbTZB8PwW4CX/qsKW7x/YbLE2riyoLDDWCgEOmwYalhKconig29/irES0VPUQZiBn8X
         OQt9/ZWFlPooMDWlufxgFRD8ZIQ66DFKM++qW6F1AJMNDjsCWB5sVt1hmvWTuUHPMqeV
         81mSSGPqaH46gHa/gbF5BOF6CSTYfQLd+v60wiCsw79/9/qPXTAfi21567zk6ikh1izC
         jt6A==
X-Gm-Message-State: AOJu0YwqcYkRwTMU9/wQBnIHf0SVNGb1YOvsVxJNbjun9NQAKg3JRom4
	4EHAcFRnDT5j5NI78vX5c2kpqJvhwKt1lRFAqbhux2lprZAKbBpZyjEFbnQl4Z2mPCcOq3e8vbi
	uWY98TNU=
X-Gm-Gg: Acq92OFzvjrCyTD7wcmF4A2+qn4i7P6kuLewlqw3flIeTLFxURqiqzEwAWwTyq7Fbyv
	/TKxUkChP06n3WcGqzP3tyJN4TQ/hQB2FHDdK8JuhPeq7EjKfY7XGIKzmuye/J8hFPBT2pl5coC
	A1pv4FNmmLobzBXkaK+jZX8fBu06IlUmdjsvWel8ahJxuvcVE+Msu5ZvEzgcSDUN03HGhoqDqHE
	f2mUDwZGKcDFJbz64bJn75eoy/evfJGeQSJh85yyNJtfCvSZOrk63hkCex5N7Kj9rCwXixm8cZ2
	Hw29FJbAjMBHJnYxIBhGxj7MDc58RvjkB5yRq306GEBtlZsocAEkPGClL+ywtwFSZK1KWBp1Qg5
	0Wp/ssEpQRBvq/8xIY0t0qa2NmKh/jvm1OItJAn/hfu/yCnvHYbWrNae/qyjaNADiqtMfFnG3M5
	hdnfetXo+ysnDhBuHYS9sxUhm8i0L5ka80McQHDrfj7yy9qHC7XPxUJO7/DtuuXkabKGLWgKf3l
	495MarUsTTkI3g=
X-Received: by 2002:a05:6000:2087:b0:451:b1a:a753 with SMTP id ffacd0b85a97d-4515b0572a7mr22726817f8f.6.1778275752521;
        Fri, 08 May 2026 14:29:12 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH 5/5] CI: Switch qemu-arm* jobs to using the distro provided QEMU
Date: Fri,  8 May 2026 22:29:07 +0100
Message-Id: <20260508212907.1643761-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1778275753-B5F6ADB1-C4C1A11A/10/63158204843
X-purgate-type: spam
X-purgate-size: 11153

This removes qemu-system-aarch64-6.0.0-*-export and fixes the outstanding
TODOs about efi-virtio.rom, now that the QEMU in use has it's /usr/share/
properly packaged.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Doug Goldstein <cardoe@cardoe.com>
---
 automation/gitlab-ci/build.yaml               | 33 --------
 automation/gitlab-ci/test.yaml                |  2 -
 automation/scripts/include/xtf-arm64          |  7 +-
 automation/scripts/qemu-smoke-dom0-arm32.sh   |  6 +-
 automation/scripts/qemu-smoke-dom0-arm64.sh   |  6 +-
 .../scripts/qemu-smoke-dom0less-arm32.sh      |  6 +-
 .../scripts/qemu-smoke-dom0less-arm64.sh      |  6 +-
 .../6.0.0-arm64v8.dockerfile                  | 77 -------------------
 8 files changed, 10 insertions(+), 133 deletions(-)
 delete mode 100644 automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index e50ff6936c5c..be4a038363ac 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -265,39 +265,6 @@
   variables:
     <<: *gcc
 
-## Test artifacts common
-
-.test-jobs-artifact-common:
-  stage: build
-  needs: []
-  rules:
-    - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
-      when: on_success
-
-# Arm test artifacts
-
-qemu-system-aarch64-6.0.0-arm64-export:
-  extends: .test-jobs-artifact-common
-  image: registry.gitlab.com/xen-project/xen/tests-artifacts/qemu-system-aarch64:6.0.0-arm64v8
-  script:
-    - mkdir binaries && cp /qemu-system-aarch64 binaries/qemu-system-aarch64
-  artifacts:
-    paths:
-      - binaries/qemu-system-aarch64
-  tags:
-    - arm64
-
-qemu-system-aarch64-6.0.0-arm32-export:
-  extends: .test-jobs-artifact-common
-  image: registry.gitlab.com/xen-project/xen/tests-artifacts/qemu-system-aarch64:6.0.0-arm64v8
-  script:
-    - mkdir binaries && cp /qemu-system-arm binaries/qemu-system-arm
-  artifacts:
-    paths:
-      - binaries/qemu-system-arm
-  tags:
-    - arm64
-
 # Jobs below this line
 
 # Build jobs needed for tests
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 008deef98d1e..1722800c1541 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -12,7 +12,6 @@
   - project: $ARTIFACTS_REPO
     job: alpine-3.18-arm64-rootfs
     ref: $ARTIFACTS_BRANCH
-  - qemu-system-aarch64-6.0.0-arm64-export
 
 .arm32-test-needs: &arm32-test-needs
   # Bodge to ensure binaries/ is non-root.  Can be any artefact which comes
@@ -21,7 +20,6 @@
   - project: $ARTIFACTS_REPO
     job: microcode-x86
     ref: $ARTIFACTS_BRANCH
-  - qemu-system-aarch64-6.0.0-arm32-export
 
 .x86-64-test-needs: &x86-64-test-needs
   - project: $ARTIFACTS_REPO
diff --git a/automation/scripts/include/xtf-arm64 b/automation/scripts/include/xtf-arm64
index 1a318b7aa0ba..5d851af788a1 100644
--- a/automation/scripts/include/xtf-arm64
+++ b/automation/scripts/include/xtf-arm64
@@ -7,7 +7,7 @@
 function xtf_arch_prepare()
 {
     export FW_PREFIX="${FW_PREFIX:-/usr/lib/u-boot/qemu_arm64/}"
-    export QEMU_PREFIX="${QEMU_PREFIX:-${WORKDIR}/}"
+    export QEMU_PREFIX="${QEMU_PREFIX:-}"
     export XEN_BINARY="${XEN_BINARY:-${WORKDIR}/xen}"
     export XEN_CMDLINE="${XEN_CMDLINE:-loglvl=all noreboot console_timestamps=boot console=dtuart}"
     export XTF_SRC_BRANCH="${XTF_SRC_BRANCH:-xtf-arm}"
@@ -18,9 +18,6 @@ function xtf_arch_prepare()
 # Perform arch-specific XTF environment setup.
 function xtf_arch_setup()
 {
-    # QEMU looks for "efi-virtio.rom" even if it is unneeded
-    curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
-
     # Crude check for local testing
     if [ ! -d imagebuilder ]; then
         git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git
@@ -47,7 +44,7 @@ EOF
     cp ${XTF_BINARY} ${WORKDIR}/xtf-test
 
     # Generate virt-gicv2.dtb
-    ${WORKDIR}/qemu-system-aarch64 \
+    ${QEMU_PREFIX}qemu-system-aarch64 \
         -machine virtualization=true \
         -cpu cortex-a57 \
         -machine type=virt \
diff --git a/automation/scripts/qemu-smoke-dom0-arm32.sh b/automation/scripts/qemu-smoke-dom0-arm32.sh
index 58797f7d30d3..5dc348c71aa9 100755
--- a/automation/scripts/qemu-smoke-dom0-arm32.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm32.sh
@@ -39,9 +39,7 @@ cp ../zImage ./root
 find . | cpio -R 0:0 -H newc -o | gzip > ../initrd.gz
 cd ..
 
-# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
-curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
-./qemu-system-arm \
+qemu-system-arm \
    -machine virt \
    -machine virtualization=true \
    -smp 4 \
@@ -77,7 +75,7 @@ git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git
 bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
 
 rm -f ${serial_log}
-export TEST_CMD="./qemu-system-arm \
+export TEST_CMD="qemu-system-arm \
    -machine virt \
    -machine virtualization=true \
    -smp 4 \
diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
index 05962bdc0203..1d673f184251 100755
--- a/automation/scripts/qemu-smoke-dom0-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
@@ -57,9 +57,7 @@ chmod +x etc/local.d/xen.start
 find . | cpio -R 0:0 -H newc -o | gzip >> ../dom0-rootfs.cpio.gz
 cd ../..
 
-# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
-curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
-./binaries/qemu-system-aarch64 \
+qemu-system-aarch64 \
    -machine virtualization=true \
    -cpu cortex-a57 -machine type=virt \
    -m 2048 -smp 2 -display none \
@@ -90,7 +88,7 @@ bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/conf
 
 # Run the test
 rm -f smoke.serial
-export TEST_CMD="./binaries/qemu-system-aarch64 \
+export TEST_CMD="qemu-system-aarch64 \
     -machine virtualization=true \
     -cpu cortex-a57 -machine type=virt \
     -m 2048 -monitor none -serial stdio \
diff --git a/automation/scripts/qemu-smoke-dom0less-arm32.sh b/automation/scripts/qemu-smoke-dom0less-arm32.sh
index 627d890a3926..20e43b4f049d 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm32.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm32.sh
@@ -78,9 +78,7 @@ chmod +x init
 find . | cpio -R 0:0 -H newc -o | gzip > ../initrd.gz
 cd ..
 
-# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
-curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
-./qemu-system-arm \
+qemu-system-arm \
     -machine virt \
     -machine virtualization=true \
     -smp 4 \
@@ -130,7 +128,7 @@ bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
 
 # Run the test
 rm -f ${serial_log}
-export TEST_CMD="./qemu-system-arm \
+export TEST_CMD="qemu-system-arm \
     -machine virt \
     -machine virtualization=true \
     -smp 4 \
diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
index 05c4a6acbb59..a9e99f1ae392 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
@@ -78,9 +78,7 @@ if [[ "${test_variant}" == "gicv3" ]]; then
     domU_check="echo \"${passed}\""
 fi
 
-# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
-curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
-./binaries/qemu-system-aarch64 \
+qemu-system-aarch64 \
    -machine virtualization=true \
    -cpu cortex-a57 -machine type=virt,gic-version=$gic_version \
    -m 2048 -smp 2 -display none \
@@ -203,7 +201,7 @@ bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/conf
 
 # Run the test
 rm -f smoke.serial
-export TEST_CMD="./binaries/qemu-system-aarch64 \
+export TEST_CMD="qemu-system-aarch64 \
     -machine virtualization=true \
     -cpu cortex-a57 -machine type=virt,gic-version=$gic_version \
     -m 2048 -monitor none -serial stdio \
diff --git a/automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile b/automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile
deleted file mode 100644
index e9f5576be7a6..000000000000
--- a/automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile
+++ /dev/null
@@ -1,77 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/arm64/v8 debian:bookworm
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV QEMU_VERSION=6.0.0
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        curl \
-        python3 \
-        ninja-build \
-        pkg-config \
-        libglib2.0-dev \
-        libpixman-1-dev \
-        && \
-    \
-    curl -fsSLO https://download.qemu.org/qemu-"$QEMU_VERSION".tar.xz && \
-    tar xvJf qemu-"$QEMU_VERSION".tar.xz && \
-    cd qemu-"$QEMU_VERSION" && \
-    ./configure                \
-        --target-list=arm-softmmu,aarch64-softmmu \
-        --enable-system        \
-        --disable-blobs        \
-        --disable-bsd-user     \
-        --disable-debug-info   \
-        --disable-glusterfs    \
-        --disable-gtk          \
-        --disable-guest-agent  \
-        --disable-linux-user   \
-        --disable-sdl          \
-        --disable-spice        \
-        --disable-tpm          \
-        --disable-vhost-net    \
-        --disable-vhost-scsi   \
-        --disable-vhost-user   \
-        --disable-vhost-vsock  \
-        --disable-virtfs       \
-        --disable-vnc          \
-        --disable-werror       \
-        --disable-xen          \
-        --disable-safe-stack   \
-        --disable-libssh       \
-        --disable-opengl       \
-        --disable-tools        \
-        --disable-virglrenderer  \
-        --disable-stack-protector  \
-        --disable-containers   \
-        --disable-replication  \
-        --disable-cloop        \
-        --disable-dmg          \
-        --disable-vvfat        \
-        --disable-vdi          \
-        --disable-parallels    \
-        --disable-qed          \
-        --disable-bochs        \
-        --disable-qom-cast-debug  \
-        --disable-vhost-vdpa   \
-        --disable-vhost-kernel \
-        --disable-qcow1        \
-        --disable-live-block-migration \
-    && \
-    make -j$(nproc) && \
-    cp ./build/qemu-system-aarch64 / && \
-    cp ./build/qemu-system-arm / && \
-    cd /build && \
-    rm -rf qemu-"$QEMU_VERSION"* && \
-    apt-get autoremove -y && \
-    apt-get clean && \
-    rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 08 21:29:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 21:29:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304252.1577353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSl1-0005Q0-8n; Fri, 08 May 2026 21:29:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304252.1577353; Fri, 08 May 2026 21:29:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSl1-0005Pm-5i; Fri, 08 May 2026 21:29:15 +0000
Received: by outflank-mailman (input) for mailman id 1304252;
 Fri, 08 May 2026 21:29:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wLSkz-0004wH-4R
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 21:29:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLSky-008Ead-GQ
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 23:29:12 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fe559a-2eae-0a2a0a5409dd-0a2a450196e8-8
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:29:12 +0200
Received: from [209.85.221.52] (helo=mail-wr1-f52.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fe55a8-c1f2-0a2a45010019-d155dd34ed8c-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:29:12 +0200
Received: by mail-wr1-f52.google.com with SMTP id
 ffacd0b85a97d-44b330c5cc6so1746613f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 14:29:12 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491ca383asm7548608f8f.28.2026.05.08.14.29.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 14:29:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1778275752; x=1778880552; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UxdUfwcXb8ISQulfHsZ5+IBQxfYeU+5dzOWpCcoWqBo=;
        b=svfHOJtyRIt6foUhLLrmGzGMUWf7nLYydc6CJd3M2mBAlpVLSejt+xuCPekxhUhbfU
         sIbtHpmuxzn2TnnlTCpd84YXziOptC9Ip5oz3ZQUC0y3Wtmv+m3D921clGi6GNtwH28K
         bTkx3/nvreo7cqenRc5ISN/Q/2Z/l+e3a45AY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778275752; x=1778880552;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=UxdUfwcXb8ISQulfHsZ5+IBQxfYeU+5dzOWpCcoWqBo=;
        b=RX4nrYuz05udJdGFfWbVBYKIfKWY5GTxMFCD6U/2x12YA4vTt8aLrCBavy1zC1xVpy
         4TOaUBCTMWutTXT4a7yM8zQAsCbmHgsDfK2ZITmGOMm5w5lz0n+wmYCvQauL2AuGqQbi
         Tv0PKS56KI9UJJNSqt/CLoWsNq+lVPNW830LNAqyxL4UWmCq/nQVZuFEtplJlFsQ8+JU
         ybBkt4rW6zh5F19kWNsO7hVtKFgkv67iQosH++kLjrPccZVxnWba0nw5GjmlVZCQhIua
         J1erBXgDG+ne3JNoCJmcbDURM7W/VkG6zKLZZQCYi4YGkhcnmj91QCC+JSv2B05pX/2A
         3x8Q==
X-Gm-Message-State: AOJu0YxqDW8B3NgMoEFU8SV6KlJ8JGxBh3L8t38sor26NiyFwuw1bFw7
	5qburdkioqsESKvb177z2NwYJLx3wU0dqsMSdl1KST5X144SaP+I8EpakYh/NhGBsEo1klQJYbU
	KYmua/mY=
X-Gm-Gg: Acq92OHYFnHkhjLCC16vyUBVUyphuNPwyxGvwSQpwwUDDSi6T9J+5Zc2O1ITwily+n2
	ItdWZ4QwGnWcTMQ3A07zRTswrxejqLznRouU4DXSAVArDWNFfIsnLgx7/S0FqGyQVYZBk5lhIFr
	15Q78vXMI9pA1+5F8pQRUHZrfgEvZNvKlcKcMGOlLfVXQTH9JLkSBZWxg3zH6TCdn14UIIF0vBd
	4BP7PDddxvKxlx2AmSCRJozP9MNGe118+//eoyFT4fsNwnLY17HrNnnRJMi0310zLHA7Oc8CTMl
	vYIbaezD7MInqbsz4B3NeM98WAkUBqh840avtsfxNZbFMtIXB4EpbhikQv9Cl/pkuy1XVqVGW6W
	L7bsyGse1XwSqgaxOOtsorzT0/HcMAXszfznGXiB7VtJnMSB+Jw2OKALCT/BXi23wLbkTu7zlMD
	hZ/7NKER3+G4u+kDmp9ZOLJbzapAz5rT/+o8myyq2xhOcKpvSCWxRB6QVJSk1tdFDKrnhlW5+nf
	bX0
X-Received: by 2002:a5d:5683:0:b0:452:a5c3:3e4a with SMTP id ffacd0b85a97d-452a5c33e5amr11336261f8f.2.1778275751316;
        Fri, 08 May 2026 14:29:11 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH 3/5] CI: Refresh the Debian 12 arm64 container
Date: Fri,  8 May 2026 22:29:05 +0100
Message-Id: <20260508212907.1643761-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778275752-B7754FF4-8CED085D/10/63158204843
X-purgate-type: spam
X-purgate-size: 7184

From: Javi Merino <javi.merino@cloud.com>

Rework the container to user heredocs for readability, derive from
bookworm-slim and use apt-get --no-install-recommends to keep the size down.

Additionally:

 * Make it a non-root container.
 * Drop libext2fs-dev which is an x86-only dependency.
 * Add libncurses5-dev for xentop and zlib1g-dev which was missing from the
   libxenguest decompressors.
 * As there's no ninja, the container can no loger build QEMU so drop
   libglib2.0-dev and libpixman-1-dev too.
 * Swap libyajl-dev for libjson-c-dev given the latters deprecation.

Rename the job to debian-12-arm64-* to follow the naming scheme of all the
other CI jobs.

This reduces the size of the debian:12-arm64v8 from 2.25GB down to 1.62GB.

Signed-off-by: Javi Merino <javi.merino@cloud.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Doug Goldstein <cardoe@cardoe.com>

Depends on "[PATCH] tools/libxl: Fix libxl_nocpuid.c build with json-c"
submitted separately.
---
 automation/build/debian/12-arm64v8.dockerfile | 69 +++++++++++++++++++
 .../build/debian/bookworm-arm64v8.dockerfile  | 55 ---------------
 automation/gitlab-ci/build.yaml               |  8 +--
 automation/gitlab-ci/test.yaml                |  4 +-
 automation/scripts/containerize               |  2 +-
 5 files changed, 76 insertions(+), 62 deletions(-)
 create mode 100644 automation/build/debian/12-arm64v8.dockerfile
 delete mode 100644 automation/build/debian/bookworm-arm64v8.dockerfile

diff --git a/automation/build/debian/12-arm64v8.dockerfile b/automation/build/debian/12-arm64v8.dockerfile
new file mode 100644
index 000000000000..c0e08a010f6a
--- /dev/null
+++ b/automation/build/debian/12-arm64v8.dockerfile
@@ -0,0 +1,69 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/arm64/v8 debian:bookworm-slim
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    useradd --create-home user
+
+    apt-get update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        flex
+
+        # Tools (general)
+        ca-certificates
+        cpio
+        git-core
+        pkg-config
+        wget
+        # libxenguest dombuilder
+        libbz2-dev
+        liblzma-dev
+        liblzo2-dev
+        libzstd-dev
+        zlib1g-dev
+        # libacpi
+        acpica-tools
+        # libxl
+        libfdt-dev
+        libjson-c-dev
+        uuid-dev
+        # xentop
+        libncurses5-dev
+        # Python bindings
+        python3-dev
+        python3-setuptools
+        # Golang bindings
+        golang-go
+        # Ocaml bindings/oxenstored
+        ocaml-nox
+        ocaml-findlib
+
+        # for test phase, qemu-* jobs
+        busybox-static
+        curl
+        device-tree-compiler
+        expect
+        file
+        ovmf
+        u-boot-qemu
+        u-boot-tools
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+
+    rm -rf /var/lib/apt/lists*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/debian/bookworm-arm64v8.dockerfile b/automation/build/debian/bookworm-arm64v8.dockerfile
deleted file mode 100644
index da8ae7512589..000000000000
--- a/automation/build/debian/bookworm-arm64v8.dockerfile
+++ /dev/null
@@ -1,55 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/arm64/v8 debian:bookworm
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        zlib1g-dev \
-        libncurses5-dev \
-        python3-dev \
-        python3-setuptools \
-        uuid-dev \
-        libyajl-dev \
-        libaio-dev \
-        libglib2.0-dev \
-        clang \
-        libpixman-1-dev \
-        pkg-config \
-        flex \
-        bison \
-        acpica-tools \
-        libfdt-dev \
-        bin86 \
-        bcc \
-        liblzma-dev \
-        libnl-3-dev \
-        ocaml-nox \
-        libfindlib-ocaml-dev \
-        markdown \
-        transfig \
-        pandoc \
-        checkpolicy \
-        wget \
-        git \
-        nasm \
-        # for test phase, qemu-smoke-* jobs
-        u-boot-qemu \
-        u-boot-tools \
-        device-tree-compiler \
-        curl \
-        cpio \
-        busybox-static \
-        expect \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index d027f26a6d6b..e50ff6936c5c 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -413,15 +413,15 @@ debian-12-arm32-gcc-debug-mpu:
 
 # Arm builds
 
-debian-bookworm-gcc-arm64:
+debian-12-arm64-gcc:
   extends: .gcc-arm64-build
   variables:
-    CONTAINER: debian:bookworm-arm64v8
+    CONTAINER: debian:12-arm64v8
 
-debian-bookworm-gcc-debug-arm64:
+debian-12-arm64-gcc-debug:
   extends: .gcc-arm64-build-debug
   variables:
-    CONTAINER: debian:bookworm-arm64v8
+    CONTAINER: debian:12-arm64v8
 
 alpine-3.18-gcc-arm64:
   extends: .gcc-arm64-build
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index e1d6bb505674..982fd86db079 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -37,7 +37,7 @@
 .qemu-arm64:
   extends: .test-jobs-common
   variables:
-    CONTAINER: debian:bookworm-arm64v8
+    CONTAINER: debian:12-arm64v8
     LOGFILE: qemu-smoke-arm64.log
   artifacts:
     paths:
@@ -50,7 +50,7 @@
 .qemu-arm32:
   extends: .test-jobs-common
   variables:
-    CONTAINER: debian:bookworm-arm64v8
+    CONTAINER: debian:12-arm64v8
     LOGFILE: qemu-smoke-arm32.log
   artifacts:
     paths:
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index ef3b97b65578..bda06054ebde 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -39,7 +39,7 @@ case "_${CONTAINER}" in
     _trixie-x86_64|_) CONTAINER="${BASE}/debian:13-x86_64" ;;
     _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;;
     _bookworm-arm64v8-arm32) CONTAINER="${BASE}/debian:12-arm64v8-arm32" ;;
-    _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;;
+    _bookworm-arm64v8) CONTAINER="${BASE}/debian:12-arm64v8" ;;
     _bookworm-cppcheck) CONTAINER="${BASE}/debian:12-arm64v8-cppcheck" ;;
     _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
     _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 08 21:29:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 21:29:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304250.1577330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSky-0004oa-Mi; Fri, 08 May 2026 21:29:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304250.1577330; Fri, 08 May 2026 21:29:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLSky-0004oJ-Iu; Fri, 08 May 2026 21:29:12 +0000
Received: by outflank-mailman (input) for mailman id 1304250;
 Fri, 08 May 2026 21:29:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1wLSkx-0004lA-G4
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 21:29:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLSkw-000E8K-Ke
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 23:29:10 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fe5568-5cb7-0a2a0a5109dd-0a2a4504d398-24
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:29:10 +0200
Received: from [209.85.221.52] (helo=mail-wr1-f52.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69fe55a6-1dec-0a2a45040019-d155dd34d4e1-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:29:10 +0200
Received: by mail-wr1-f52.google.com with SMTP id
 ffacd0b85a97d-44985f4ab0fso1423792f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 14:29:10 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491ca383asm7548608f8f.28.2026.05.08.14.29.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 May 2026 14:29:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1778275749; x=1778880549; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=N7PhNq5m+H+OFW/x+gihCJ9/fpAKXYUtHMB+rax9vss=;
        b=FM0OR8FR30opGqMsRAySRLXdL3J383mB8ntp6Aq16juqWua3Lt52+pLRJg75yBiAul
         4Hhf6CTbFe90wc58cYfOXgx5Q+bzLg6rffRyDQy3Cd4Zyo+jmmCJJKeW4SttSscND9Zu
         Bn8swhWr5O63dOp3+e9qcrHd7PnAIAlDc6BzA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778275749; x=1778880549;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=N7PhNq5m+H+OFW/x+gihCJ9/fpAKXYUtHMB+rax9vss=;
        b=gysg0PU+R75rQ48/Z/xaNYeVxO2VoQr/yKjmXoZioI80kWli0Vb9DMVA/m8RN5gP/L
         PScY8DTmydyz3d9OhIEK1RLWJeONvUEFcF/7iqz1iHJSOBVynRbEEBa/oNacjrvy3sDM
         HbaKyLQehgjaYeFIzVmYTl7leITxuIAHwl9+N8yILJGMqCxZCvhRcpq0TCDnmpZ7ocj3
         +ds8EMKCeqXatC8fploznl2RsJmjKkezW4EVH7Ih34pfJqBujI520uT9J89f4aH2pyRc
         PlZTfKcbf4hnGj69m10KQw+LiSzMGa7AncfK9PHNUrk8Pu/6HSo4iJDwjgHDdjFodh11
         kKxQ==
X-Gm-Message-State: AOJu0YzGc19Od86FQtEGPVIoi41bbj3CnihhmXFw9EZp+mFcLAtsdM8E
	yRwEQfwAMnb3HnmyEhuR8RjX5Os1iKln0zSyoGysLFpntdjeajapKGcV19N4KGA0GTzBcQzPZSF
	vFb2pQIk=
X-Gm-Gg: Acq92OGz7ww1jEURp4rQ9h92/k5ZeNSX6hAkWwnYNvfNnkfmoe4kGXe6CMBlDxA+6b4
	awR1ZM0ddK5HP59Q0rFph5bMJ9XTnNXSSUU3FZKwGiUja4rIgVzG2X7tfTb4lNTvc6A9jpEVLDk
	rfgz6vUQFhZAuaaNnq4HrHWt7qDs1QbSUATp2sSWbQboWeRewsFhCu/61ALHJub9jD6ayU5IZGI
	dgIIz9lw/N4js1iRJMsc3Af/wcvBv+s/sLx9D1JCoNA/qMBLx/f9BHKKjrsOLcdCsM4Lqk0vFpA
	NRg7opeAQWUzh4LVM8/ZLqSW5npp8N68EBrpIcbEN3cgYce+psO94bknihUXdLghxJAsbyxkd3O
	4mgyw+R4OyH09SZvnxdz6Wo32NH6f4EZIzWB5kdKJYBRFVFPOcRUJB4aVwvISWh3qyVS+mgRB4M
	12SVOBML0/xFtyDX8+YnAIJ9DrZhJ5jatBaF1n3oNTazH5TyfwYxgJrx7qUhdc/n64WWKd6E86P
	fp5
X-Received: by 2002:a05:6000:24ca:b0:449:a07a:967f with SMTP id ffacd0b85a97d-4515cf127cemr23232077f8f.28.1778275748693;
        Fri, 08 May 2026 14:29:08 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH 0/5] CI: Refresh ARM Debian testing
Date: Fri,  8 May 2026 22:29:02 +0100
Message-Id: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1778275750-40B733FF-922BD691/0/0
X-purgate-type: clean
X-purgate-size: 2017

Long overdue.  Clean up the ARM Debian containers, conforming to the new style
and naming schemes, and purge the final *-export jobs.

I have already deployed the containers as they're new names and don't collide.
I have also checked that the series produces a green pipeline on every commit.

Andrew Cooper (3):
  CI: Adjust test needs[] to ensure binaries/ is non-root
  CI: Add a Debian 13 (Trixie) arm64 container
  CI: Switch qemu-arm* jobs to using the distro provided QEMU

Javi Merino (2):
  CI: Refresh the Debian 12 arm32 cross compile container
  CI: Refresh the Debian 12 arm64 container

 .../build/debian/12-arm64v8-arm32.dockerfile  | 32 ++++++++
 automation/build/debian/12-arm64v8.dockerfile | 69 +++++++++++++++++
 automation/build/debian/13-arm64v8.dockerfile | 71 +++++++++++++++++
 .../bookworm-arm64v8-arm32-gcc.dockerfile     | 24 ------
 .../build/debian/bookworm-arm64v8.dockerfile  | 55 -------------
 automation/gitlab-ci/build.yaml               | 65 ++++------------
 automation/gitlab-ci/test.yaml                | 30 ++++----
 automation/scripts/containerize               |  5 +-
 automation/scripts/include/xtf-arm64          |  7 +-
 automation/scripts/qemu-smoke-dom0-arm32.sh   |  6 +-
 automation/scripts/qemu-smoke-dom0-arm64.sh   |  6 +-
 .../scripts/qemu-smoke-dom0less-arm32.sh      |  6 +-
 .../scripts/qemu-smoke-dom0less-arm64.sh      |  6 +-
 .../6.0.0-arm64v8.dockerfile                  | 77 -------------------
 14 files changed, 218 insertions(+), 241 deletions(-)
 create mode 100644 automation/build/debian/12-arm64v8-arm32.dockerfile
 create mode 100644 automation/build/debian/12-arm64v8.dockerfile
 create mode 100644 automation/build/debian/13-arm64v8.dockerfile
 delete mode 100644 automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile
 delete mode 100644 automation/build/debian/bookworm-arm64v8.dockerfile
 delete mode 100644 automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 08 21:44:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 21:44:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304302.1577379 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLT00-00020V-8Q; Fri, 08 May 2026 21:44:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304302.1577379; Fri, 08 May 2026 21:44:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLT00-00020O-5j; Fri, 08 May 2026 21:44:44 +0000
Received: by outflank-mailman (input) for mailman id 1304302;
 Fri, 08 May 2026 21:44:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wLSzy-00020I-Ey
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 21:44:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLSzx-00H3kf-7q
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 23:44:41 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fe58e2-bab6-0a2a0a5309dd-0a2a4507c3bc-42
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:44:41 +0200
Received: from [209.85.208.178] (helo=mail-lj1-f178.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fe5948-229c-0a2a45070019-d155d0b2d467-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:44:41 +0200
Received: by mail-lj1-f178.google.com with SMTP id
 38308e7fff4ca-3922b35e69cso19992961fa.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 14:44:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778276680; cv=none;
        d=google.com; s=arc-20240605;
        b=DMHgSQN04B7y4DlEF2bRqY4Ien/48xkX17+d9ZZwVWpcD6qIk6nr1+SGmxwvQEhaD9
         9Y3QXHRCPHDobmF0NZpgHHTHfyz6znHWYqolKqElIbl0YFYHP9Iv/KziqOTpC/Bp44i4
         SYdLbnB8uK7XYYCDWvbanoKPKZXJKt23hMD2ileB4YyNGR0FQ8BgEvH/+IAVN2thnXnv
         4w0XSIir9gFflhOIxURRAB9E4RzymDXSXqCssIYUJGM7Mg0z7iUL48Snn9RI0MSm8ZCU
         CszL8LLLoSmS3zcJLqGCEWrx8uDRaI68tX5xfYrLqiq1G87eZXxkwZKpq7WtbbS9NtQn
         +poA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=E2Tfv4RQ0b6OUOJg1H7aF6Cfn8Il7mcxiJlBmQdg7Kg=;
        fh=jXKZth/5dXfK4eyQ3th9VcbDCKu2IJKxdxWeypBGkUc=;
        b=T/HZfxtIkEQtgOuKjcGvERvmLySjehvh/WHmJKqzJJb0sPseBixZZjInNqa6CXRS6m
         z/B9dDc/V86G/En0VM7KiojLDZKBpXxoUNIpqmbB+geQJYt8jCduO5Oy8+F8XxB4JKQW
         MI2ogE3ivTsxJN5+iC9P1n2hobj/ftO1hF8D/00wB8vXSsYMzbAZm/Lg4QwHicPRKgeo
         +IhWUJVGgax9uI1BxyM9LBhLSXM8OmCVRXZiIkkCWiaYlBI/zjRe2tGfvVKHWI43f+89
         Bh863r+rrxef2PkptaldurdZOhDcrSgh2B17vm34+JxSv8YicDtF9Zu95YklEXkkejts
         7NZw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778276680; x=1778881480; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=E2Tfv4RQ0b6OUOJg1H7aF6Cfn8Il7mcxiJlBmQdg7Kg=;
        b=mugB9sZHNil9p9yOSrC4wAPdxY9UA7lK6CcEtaz1dPaEfZTiLVwDv/8wi00K1yP9bb
         3OBHctJece0nO/XdeqAhBC9JqAZJrGqcwvamidJJ1ivBuiycnZnBlZz+FVbCWzGGNqMJ
         wETRBP+/8eQE1qTzdYhsZ9nH89xVUugYuxHktquYRH6Px4ZH6OgWmuGrTDk1wRqyQSim
         XTXKBMjNiHV+jsbfh2VWWiRwm78/+vmi4MWd/uKVsCOVbU9YgasU2NgI6TxfsKs7P2fj
         DN8OvDtoEqomIdTzj6nMNI8Ur2xljs9poRdvj7z6J6ZWoo9/mJ3LorSVsFvEbktGqENI
         ogrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778276680; x=1778881480;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=E2Tfv4RQ0b6OUOJg1H7aF6Cfn8Il7mcxiJlBmQdg7Kg=;
        b=G2GJaT13hR7/dWYvZZ/9XCzs8j8JKSOOc64krVg0ixSHfUnjCnU/2Lrhzbnv9ZIB/s
         AGuLOWefzVfKS4zd9U+NQwyxR+mzVk+O/h2yOPc39oRI5P7Co0ThLazlQyRk5DX4nJGc
         u+b6YwpUXTVRU42iue2Gv6RyFIE+9dcpas3xwv//9vvKcDo8hBNTg+D7Ze9Rvii0sCE2
         72vLndn4E+gs9I9Sat2L9RN9laED1F3YEOBe6T89TuWmaA+l80xga7tnCpcfZbNUEE7W
         nIcPMrl0ggpYs6SYa9sV4BzoN7IW6svlJfMOUVdVLcgM77StMgmYrXNqNARBKWO1HoMP
         i9/A==
X-Gm-Message-State: AOJu0Yzw35FL8prlxytNuKgkw9MRcPA0dSDb6SHDPMdlZWnYc0N4p97C
	8RPv5hNQFe0OyXV4SngspnHbGtDmWblEEHVhdW5Grtj5zdR9elpGtV6EHrIuDLYi1/OZafGt8Bb
	liX79Z6OrJftPlHjxW0RmNRIsW7caXtg=
X-Gm-Gg: Acq92OHzN70BVm55oJkb/E1clJil7wvzBRAE8DV92pSxY2pEOa2pnjjXXwxgVTQ/YWL
	9rG0pA/4irfjjHQA+T99TJXVCdfwD7QSVvX4MiVX6QBbG1g9CyOfeBd4PhOJE6RIMHNmQ1nH5oS
	67deiGLmJOOx2fqOX2kJ2em1jBxgAOIvrd937uTrBi3EB2uPs3PAyUDRjl5SCPdc9XZ2AgKmqcr
	y2IYx+MrxHf73j5NVocu6haUvnnTtQ70WQPIWnrjd+4ogMyKTo7wA77TNGWx3O1o1Lz+Nih5e3w
	kvqzJ0QmPGPN+Y21
X-Received: by 2002:a2e:960b:0:b0:393:a7d7:7e84 with SMTP id
 38308e7fff4ca-393c41efc0cmr41003591fa.24.1778276680155; Fri, 08 May 2026
 14:44:40 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <038337ec0e3f1474c6cc6a92090e28c6972e4dc6.1775125380.git.mykola_kvach@epam.com>
 <F5384D51-933E-48E6-AE7E-B54022AEAE11@arm.com> <CAGeoDV907jTK5RsN51ezapA5inhvG1jWpeybbqF=LkxWcEGnbQ@mail.gmail.com>
 <6E040BE7-0133-46AE-8B5C-85EA02704285@arm.com>
In-Reply-To: <6E040BE7-0133-46AE-8B5C-85EA02704285@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Sat, 9 May 2026 00:44:28 +0300
X-Gm-Features: AVHnY4I0Dk2BilN5FXWZwMs1RodiY10g2RcGJNBpEZQCimgeqB7rX_DKU3Xpq9s
Message-ID: <CAGeoDV9+kdwkdkA1CtPrOoBPeMH=TL5mdjrDoqdrS64hHuZGHg@mail.gmail.com>
Subject: Re: [PATCH v8 09/13] arm/smmu-v3: add suspend/resume handlers
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Rahul Singh <Rahul.Singh@arm.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ef75cf/1778276681-09969C48-B36CE70F/0/0
X-purgate-type: clean
X-purgate-size: 3043

On Fri, May 8, 2026 at 3:22=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.com=
> wrote:
>
> HI Mykola,
>
> >>>
> >>> -static int __init arm_smmu_device_reset(struct arm_smmu_device *smmu=
)
> >>> +static int arm_smmu_device_reset(struct arm_smmu_device *smmu)
> >>> {
> >>> int ret;
> >>> u32 reg, enables;
> >>> @@ -2163,17 +2166,9 @@ static int __init arm_smmu_device_reset(struct=
 arm_smmu_device *smmu)
> >>> }
> >>> }
> >>>
> >>> - ret =3D arm_smmu_setup_irqs(smmu);
> >>> - if (ret) {
> >>> - dev_err(smmu->dev, "failed to setup irqs\n");
> >>
> >> We are moving this one to the probe and ..
> >>
> >>> + ret =3D arm_smmu_enable_irqs(smmu);
> >>> + if ( ret )
> >>
> >> changing with this one, but arm_smmu_setup_irqs() also calls arm_smmu_=
setup_unique_irqs() which
> >> calls arm_smmu_setup_msis(), are we sure that on resume we will get th=
e same state?
> >
> > This follows the split introduced in the Linux arm-smmu-v3 runtime/syst=
em sleep
> > series:
> >
> > https://lore.kernel.org/linux-iommu/20260414194702.1229094-1-praan@goog=
le.com/
> >
> > The intent is to keep IRQ handler registration as one-time probe state,=
 while
> > reset/resume only restores the SMMU hardware state and re-enables inter=
rupt
> > generation.
> >
> > You are right that the MSI case needs extra care. In the Linux series t=
his is
> > handled by arm_smmu_resume_msis(), which restores the SMMU-side MSI
> > configuration. I did not port that part in this patch because Xen SMMUv=
3 MSI
> > support is currently documented as unsupported and is not part of the
> > supported/tested path, so this patch only covers the wired IRQ path use=
d by Xen
> > today.
> >
> > If Xen SMMUv3 MSI support becomes usable in the future, the resume path=
 will
> > need an equivalent MSI restore step before IRQ_CTRL is re-enabled.
>
> In the mean time should we check maybe smmu->features doesn=E2=80=99t hav=
e
> ARM_SMMU_FEAT_MSI flag and document it in commit message?
>
> What do you think about it? I=E2=80=99m just worried someone uses CONFIG_=
MSI and your
> feature and ends up in some trouble, while we know that your feature brea=
ks
> CONFIG_MSI.

Good point.

I don't think checking only ARM_SMMU_FEAT_MSI in this patch is the right
approach, since that reflects hardware capability rather than whether Xen i=
s
actually using the SMMUv3 MSI IRQ path.

For v9, I plan to keep this SMMUv3 patch limited to documenting the current
limitation in the driver and in the commit message: the MSI IRQ path is not
host-suspend-safe yet because resume does not restore the SMMU *_IRQ_CFGn
registers.

The actual runtime block will be added in a later host suspend policy patch=
,
together with the other runtime blockers. That keeps the policy in one plac=
e
and ensures PSCI_FEATURES(SYSTEM_SUSPEND) stays consistent with the actual
SYSTEM_SUSPEND handling.

Best regards,
Mykola

>
> Maybe the maintainers can give their opinion here as well.
>
> Cheers,
> Luca


From xen-devel-bounces@lists.xenproject.org Fri May 08 21:46:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 21:46:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304310.1577389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLT1K-0002Ue-Ht; Fri, 08 May 2026 21:46:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304310.1577389; Fri, 08 May 2026 21:46:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLT1K-0002UX-FF; Fri, 08 May 2026 21:46:06 +0000
Received: by outflank-mailman (input) for mailman id 1304310;
 Fri, 08 May 2026 21:46:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wLT1H-0002UN-QU
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 21:46:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLT1H-006YP8-7L
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 23:46:03 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe5967-5cb7-0a2a0a5109dd-0a2a450197ce-38
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:46:02 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe5998-c1f2-0a2a45010019-94a38ff143b8-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:46:01 +0200
Received: from pps.filterd (m0367129.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 648JU1UN2438151
 for <xen-devel@lists.xenproject.org>; Fri, 8 May 2026 21:46:00 GMT
Received: from dm1pr04cu001.outbound.protection.outlook.com
 (mail-centralusazon11010054.outbound.protection.outlook.com [52.101.61.54])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4e1f4hdvf1-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 21:45:59 +0000 (GMT)
Received: from MN2PR11CA0014.namprd11.prod.outlook.com (2603:10b6:208:23b::19)
 by BLAPR16MB3907.namprd16.prod.outlook.com (2603:10b6:208:27e::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.20; Fri, 8 May
 2026 21:45:56 +0000
Received: from MN1PEPF0000ECDB.namprd02.prod.outlook.com
 (2603:10b6:208:23b:cafe::fa) by MN2PR11CA0014.outlook.office365.com
 (2603:10b6:208:23b::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.19 via Frontend Transport; Fri,
 8 May 2026 21:45:56 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 MN1PEPF0000ECDB.mail.protection.outlook.com (10.167.242.139) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.8
 via Frontend Transport; Fri, 8 May 2026 21:45:56 +0000
Received: from pps.filterd (m0426317.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 648K0YLM4096769
 for <xen-devel@lists.xenproject.org>; Fri, 8 May 2026 17:45:55 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [44.208.76.22])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4dyxwd42xp-12
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 17:45:55 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id LT16wnCifMM0lLT17wpoAc; Fri, 08 May 2026 21:45:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=AzW29ifmTy2q85zPQ5kqe9FGXxf
	BzpBT4chc1Y/NQOg=; b=Df7wjx7jk/GzqsJMZCS91maoHTlAKX2nQ6c2vnmX+OP
	+tPhkiEDqbm6pVnlP5SO0kD82ilDs9wRLFYKCTRzvtIrfZ+7h8PjtZH2Rx/R/N3h
	gXEt65Hxlnka1Lab6plCT4b06JboQn3sdohUtxK3yEbj8K+sdbdeuBKNj/eDEi5O
	REvyT9wZTs2UgrZR+WgdPV3wxSg5pe56lQtZlU57lBI9tR2Vpd3D2d1oH8HvMGaT
	v0q7cwXfIsOkmCoypjcwlpeMv3gSBJDe9mdH3r+N5WTaJOqDEHxrRYE6IgSxP3Q7
	a1e7bgfK+hU82OdW7/u1aiQeP4vr/5GhVupubDhVfXw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kHiI5ee8jrBdRCjaLv7m8oc3NFYc+CDvdcD/+KKtHnQ9nQd0lHxxQRbXys+ftTSt0ip3sbyWN4wqPJaMr2K+FX12ckEoyxx0gkZ+unx21h+4XVoCdf1KjpW4aSamMf3EyR82bDP9zl5Aenn/TFtLSbcoTprFWTZ6wOedraaj3/rd2VmsWUpf/qOMgFsQNM+kJaSA07ilg5o68cbcu+pwsm6+a2r/mTkUlxLzNdxjFPYTFPNcXMKJzQe8nSUnJng8uUzfmTbj/XI6PxtnPMtX616yHkX2PV8AcY/NDpR6ZdiUtXGMFS64yaCP4m0fBg5auAZjyF5ieuF0CjfRE4/xjA==
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=AzW29ifmTy2q85zPQ5kqe9FGXxfBzpBT4chc1Y/NQOg=;
 b=fJzAbt6i9uV3VsSgHxAiU9OTqjs6iDbVsfpqBRmHr/scIrLS25JUzdnv1gXrXmwioLm7Sh59kIypuO+IdpCorVMlOk9Rc2AKSU6XDbfcmFspprH0yHRLqFnZKfC4QCEcZQQAy7Eqw4Atl7jUadzJL+4BAUbmTTZvUw/2CctZjic/LrD2wea4FwZ2BZbbWCzh7BjFGKZ1QAWXOPagus6cW8VWCeOuKEMzsCvw3B4jSXXFiF2uQciDKXDiXvWnWGvCEMuMIam9xrRnC2/Fn6wydsrc0VQCKO70t/+Ll6tn/IXAuCqTM5Ew/GzpTw0J0tIrd3UO9cccyMONKCyK9vCrKQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AzW29ifmTy2q85zPQ5kqe9FGXxfBzpBT4chc1Y/NQOg=;
 b=VLR0Mu0LfuBQlsuTRc32zRNIj1xufYg7FCvPaqM50c7imvxqR7fLlGM9Z2RjW1iMmHvYDfI8s+SpJtAbbArsbmD3yQPNDx8wUvZE5yn5p7WveoC21Ze6YRKADw0RILtadX7eX5QP57wIyEnw+qePN/P0932werEqw+rb0PsEMSE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=AzW29ifmTy2q85zPQ5kqe9FGXxfBzpBT4chc1Y/NQOg=; b=l2o77qeHwu93
	kDjhUgdQ5ahXkqmRXuVCgDPDvt28/FozUdkygTXvMf4OyVkC9dKHx7zRFFYdSGvf
	chkAvUUrBW9Z3nuSpyt/Ssv/fF9tFIY9VlsmHMSrUDX657Y3U+p7iBQImND9/ziy
	pyzkKQaT5MjK/shUNGoIoEhewBvZOMrLgL7y4SBkjBBlwvzNe+GvA9blL2Qr5BeS
	lYcbrG6Ct9AccybJql6SU1e3UNXwk7w8+V0dmpKGmeqRthpycNULVPU1JNgVkhOU
	EP0ZurAzfpLa0bgVd7xxnsTr0PE8z767R1TRGIL2NLvhvGqe/A5gvc7xbFynof1Y
	aW3/13ePXA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=AzW29ifmTy2q85zPQ5kq
	e9FGXxfBzpBT4chc1Y/NQOg=; b=gTkm0cexgQxYXtIvdx+HGZ4BEh2CHwkQa4pD
	TG8DBm8w2LtNkZ5WUrN2N6UYT9fbs9y6S0UE7MUUppfRdAaU7TJmZq2eI4K4y4q3
	/aQlXWbXSPhigrvH2HjRkYqYT0t9DvRECYQNbwlLLNwzUv7ubj10N+1cZCl32FQp
	J5V33UpiwgKDqWApy/WL8e65nuM+dL0TgniMtDa+GD821xkXfK3MotzRVdfJ/eX9
	hXCCKvw4BsGr5eXeBM3O5j1JNK5llX9HJoddc9XhD0857wY9R0MKPAX57zY7LMzw
	CcbeIoc/safcVYrgH7pRYAA6bm8f3iSX38wwhFU3j5pUE+lF1g==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: LT16wnCifMM0lLT17wpoAc
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Fri, 8 May 2026 14:45:52 -0700
To: Jan Beulich <jbeulich@suse.com>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
        michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
        dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 5/6] xen/console: update conring memory allocation
Message-ID: <af5ZkFyE+LO63BYh@kraken>
References: <20260205013606.3384798-1-dmukhin@ford.com>
 <20260205013606.3384798-6-dmukhin@ford.com>
 <b5c89f74-cdaf-40a7-b32b-6c54610a5d9c@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <b5c89f74-cdaf-40a7-b32b-6c54610a5d9c@suse.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-07_02,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 lowpriorityscore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000
 definitions=main-2605080215
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECDB:EE_|BLAPR16MB3907:EE_
X-MS-Office365-Filtering-Correlation-Id: cd6fdaf7-fc35-4e3b-ef64-08dead4b2f80
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700016|1800799024|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	V3XyphsvSPGWwmL042M263aTYKr5qksFMInm3mV0OlAXs4UWDXj7qUH1wXSBLqjBYphQYwg0JCx3esQEE3h3DXlF9D8KOHKW8QX9jgG1c2+W60cUroIaVrzuXO4kQsKMJ3ThBCC+sSFhUOyh5DS3D4M87JuJUI4e/H8UBE1ZUZsKJmBk+Jd4Ln2lU55XCWlyUUWTg1fXxJxvVikGEK7iOqigfp0lqcN/Xl6FnNKkwnLu/nnLHrvqtdD16qRrdRhU8iJ3ubX1niWPxm0wSIuxzjadyJrSxki7XL18t9a6y/cmUk455+7I02uq58JUHqV+lsCYEHUwfLwdDEThO9yedf25EgXGoenoyTEWO7gqYhdGN34N5V/C/uCPFlx7X388YqUx1w3AY+to/oZf7mru0u+QR3r8+Z2sLL7zaDmR0vxY7JAUt4OmeE0cG0OMlGRbENspkSVnkeIdoddjxAluK0lULUqkJ07XnZomRWqT5Bx4h1nsKPgot9j7wBur9bbxdkS/Qbjb7LGtQksoPB1V9BUDLQG+h8EQ3lxzauN++887Co//7M121YMbQ6Uce3XwuwQuqjkfCInCEgVuJyApDMdB7WNqQMKWIGl+ylgq/HCoEYApxJWaCEhGACxcUZ0X+DAt9vnt63ywCQoUmgc2MRS55GlUhbytV4NxVm4vGuY8tPb0I93sIEjZ054CLr5YmLOruY/mJRzrabFNa3/EE31LMwBoe2UU19gKGv75HKA=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700016)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	7enshLvSoo+/MuxuRxQSidG6h3zuNrTcc4EiK23fuqBn5Y14dNalH40da96cKf2GpMBF5STiLe5DbZCgDGOZ+SONpyYup4jwJlNUjUSZismWcCvYLmIgkoZ1GzSS+qDtIo2zY4sJWYnNy/JnFZC+rjBPjX3sse37fJ6Odp3qxbD4rDC40HiWIOnsPOFwBK8rJmBQBsMk/pEh3vg3aPwmn99LKxSRWXN4jRS3WH9EHd8lttTkDokPlvuezVIfE+GlLkrspSRbd7sv+bIPkPAPVuUqfmB0hS0wxZ7cfkh6n5NlO/fmDZCj8jJfkl+Cl2mKVyTzPc1rZuB9UjidSda5TKvHOW8gyRmLLORrJ+SIfqF/EyLcE4vDp6yKDNcRcN4a1ChnUaAlInq3EwsLhwE+F4kpL+JVkD+XmfrGRXz5XKy0AXn9pQt98L4vAqn+ePrV
X-Exchange-RoutingPolicyChecked:
	EOgA/tXfS4PYU7XblIFDOMseKb6stt+mUyYV4laK17ebjGmoSnrB3Lvzgk2TUzl7xnRNH60UAUJ1QIkA5K22DWb/B+ruf+BrV/HVGLjEl8voT+g5D43mjsdnW4ZHq494oVHG8Jm+PHLfY08yqOnPNYnmz+pj/BcTVqmTRUpPN3bIQh2Wgbw8SQl/mFZjOLAgPMAIDRjVl+FbF4lS7hinlnSYqVResbYL4rWsclsnQG+nNVG1+HM3ESdxvd47Irto3mwvToo3TIGNnBnWpUlUpIYuS1LZriHGxzHGWtMjKJ594Qbh8HW0Y8W8L/jYrtneAzdwySTRnYZqyMyXcqbubQ==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	aHFuly8ArJ+FTiMfszBoxrhtTUrA9ebVBzg9c92bGCBYerqEzL2ceRzI5x5m5FtY/vd8WoeDHT1AG1C1f+G7owsB1u0hLHiaOBY4qfVEmIbWDFEdnqguY77M+XGbEx5Qg4Z8GkeLkzNAyq/pW/xlLVmNqc/WBTJcb6kWahwO80itxTapXpVxmoTlRKCKcAUjYdgZJVEJoeqVhwPtjx2yQXNF3RYsDgJCvawwhzhGWWYZ/N4hkwkTggi7xYBvunAC6QKcjTiUkIg5ES1DyaQp2SjysTXIWHfpIx5MgATLf2aFGa96VhvW/ohEKzb3DOFsTzTEiPf9y1RI7VFsg6YhYVDbR15bfuECcMDS9GHl71vp/i/YHMWywlj1hlezQckEt3ZKxz9LGD6fIeLeU/09+Hlpgmp/YQV0BXPvbNxTY9JgaIRfhP/Qw9hU/yutFDaeCd5i0VXwAoGYtOI9dXpoGYt7c3S5+Qh5xDLrISN/TqDz3hnz2Vf5UuxMBhTTCRYNKSv4T7Qjmg/DnezXrFcP4/g10Af6hdJKQxDA4ZGhp3/i0EipmcimdHx3t7mnakFgMtd7/nHO24klhBdj2rAdFua+MepTZlAvzXnHmaqlI7QWo5+hOnkLSjhiULPOugOX
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 21:45:56.1424
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cd6fdaf7-fc35-4e3b-ef64-08dead4b2f80
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECDB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR16MB3907
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA4MDIxNSBTYWx0ZWRfXxNMf1qm8yY45
 9FF1W2g2Z6Xd7Uii5kn6ieioTI/CAZZT4ccWxrFMawI2KlQ1d6Ay/YzcJdcn5d9kCZWnMS/wU8i
 L7LMBlCh4SPXOQ6qKuWGPMpVFNXlRg5echiLdMe1GLFDiGQ/g0twP3nGcoMpid1LorEcdFLIrUh
 2OktMnfrchniepzEROfwsgH+LZq+gb6XWMgi6M4aheFVf/T9/N+idLLAwgooW2bM5dTpBA2uprv
 Z3uRCSJgMidjTxpSa4aofUuA5uosq/K1mtMNl9b2+WhLub3blqjwp2C6QJUlprjIxxEE7eWimxm
 LuPbqkWO2PD8OHE4OkG6n2dOva9WjKuzQ+ZUxBdQEaqLLKo81YrIwjHL5Hb2fgrwLLryVIpM7ek
 8MgcMfnRMrMLmotIDQrBlgkgVw1VC7qXefxDMoeob8o+JBvWZ9zHk5KNGC4nemTnBrkqXOdKXYG
 Uia5I1NsrdKcNiZzuRw==
X-Proofpoint-GUID: d7qYcfMGYAbyd7KaQ5obNPEbT56M5Y0_
X-Proofpoint-ORIG-GUID: d7qYcfMGYAbyd7KaQ5obNPEbT56M5Y0_
X-Authority-Analysis: v=2.4 cv=WLBPmHsR c=1 sm=1 tr=0 ts=69fe5998 cx=c_pps
 a=64b+Fh2X7ngyiwpNPLbe6w==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=X3KReqg2EL6A36SYCKpz:22
 a=mLnsDVdbAAAA:8 a=hCsd9eZRIN1V9IlIwUIA:9 a=CjuIK1q_8ugA:10
 a=3whSkbs7g9Me0DR5EJEX:22 a=xnp1pY6zelCj5OLna2To:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-07_02,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 adultscore=0 bulkscore=0 priorityscore=1501 impostorscore=0
 lowpriorityscore=0 malwarescore=0 phishscore=0 suspectscore=0 clxscore=1015
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605080215
X-purgate-ID: tlsNG-d62444/1778276762-B4D49FF4-30D6F80E/0/0
X-purgate-type: clean
X-purgate-size: 2440

On Mon, Feb 09, 2026 at 06:02:52PM +0100, Jan Beulich wrote:
> On 05.02.2026 02:36, dmukhin@xen.org wrote:
> > --- a/xen/drivers/char/console.c
> > +++ b/xen/drivers/char/console.c
> > @@ -463,20 +463,34 @@ static void cf_check conring_dump_keyhandler(unsigned char key)
> >  void __init console_init_ring(void)
> >  {
> >      char *ring;
> > -    unsigned int start, size, chunk, order, memflags;
> > +    unsigned int start, size, chunk;
> >      unsigned long flags;
> >  
> >      if ( !opt_conring_size )
> >          return;
> >  
> > -    order = get_order_from_bytes(max(opt_conring_size, conring_size));
> > -    memflags = MEMF_bits(crashinfo_maxaddr_bits);
> > -    while ( (ring = alloc_xenheap_pages(order, memflags)) == NULL )
> > +    opt_conring_size = max(opt_conring_size, conring_size);
> > +    size = ROUNDDOWN(opt_conring_size, PAGE_SIZE);
> > +    if ( size != opt_conring_size )
> >      {
> > -        BUG_ON(order == 0);
> > -        order--;
> > +        opt_conring_size = size;
> > +        printk(XENLOG_WARNING "Rounding down console ring size to multiple of %lu KiB.\n",
> > +               PAGE_SIZE >> 10);
> >      }
> > -    opt_conring_size = PAGE_SIZE << order;
> > +    if ( opt_conring_size >= GB(2) )
> > +    {
> > +        opt_conring_size = GB(2);
> > +        printk(XENLOG_WARNING "Limiting user-configured console ring size.\n");
> > +    }
> > +    else if ( opt_conring_size < _CONRING_SIZE )
> > +    {
> > +        opt_conring_size = _CONRING_SIZE;
> > +        printk(XENLOG_WARNING "Using compile-time console ring size.\n");
> > +    }
> > +
> > +    /* Contiguous buffer; does not need to be naturally aligned. */
> > +    ring = xmalloc_bytes(opt_conring_size);
> 
> I'm sorry, but I'm going to veto any new uses of xmalloc_bytes(). As per the
> comment at the top of xvmalloc.h, the family of functions there should be used
> in new code. That family deliberately doesn't include a counterpart of
> xmalloc_bytes(). You're wanting a multiple of page size anyway, so perhaps it
> is warranted here to actually use vmalloc() directly.

Thanks for taking a look at the series!

Sorry it's been a while, I am getting back to the series only now :-/

Turns out that vmalloc() is not available on MPU systems (*-mpu jobs in CI):
CONFIG_HAS_VMAP is disabled.

I will switch to xvmalloc-backed allocation, if that's OK.

--
Denis


From xen-devel-bounces@lists.xenproject.org Fri May 08 21:46:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 21:46:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304319.1577398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLT2A-00031A-1R; Fri, 08 May 2026 21:46:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304319.1577398; Fri, 08 May 2026 21:46:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLT29-000313-Tz; Fri, 08 May 2026 21:46:57 +0000
Received: by outflank-mailman (input) for mailman id 1304319;
 Fri, 08 May 2026 21:46:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wLT28-00030q-Dr
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 21:46:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLT27-006YP8-Qr
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 23:46:55 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe5951-5cb7-0a2a0a5109dd-0a2a4507b6c6-42
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:46:55 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe59cd-229c-0a2a45070019-94a392178832-3
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:46:55 +0200
Received: from pps.filterd (m0482516.ppops.net [127.0.0.1])
 by m0482516.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 648JTLPo1653719
 for <xen-devel@lists.xenproject.org>; Fri, 8 May 2026 14:46:53 -0700
Received: from bl2pr02cu003.outbound.protection.outlook.com
 (mail-eastusazon11011070.outbound.protection.outlook.com [52.101.52.70])
 by m0482516.ppops.net (PPS) with ESMTPS id 4e1kp9adj0-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 14:46:52 -0700 (PDT)
Received: from BLAPR05CA0036.namprd05.prod.outlook.com (2603:10b6:208:335::17)
 by SA2PR16MB4026.namprd16.prod.outlook.com (2603:10b6:806:148::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May
 2026 21:46:48 +0000
Received: from BL02EPF0001A107.namprd05.prod.outlook.com
 (2603:10b6:208:335:cafe::4d) by BLAPR05CA0036.outlook.office365.com
 (2603:10b6:208:335::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.7 via Frontend Transport; Fri, 8
 May 2026 21:46:48 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 BL02EPF0001A107.mail.protection.outlook.com (10.167.241.136) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Fri, 8 May 2026 21:46:48 +0000
Received: from pps.filterd (m0373461.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 648K5cmE599475
 for <xen-devel@lists.xenproject.org>; Fri, 8 May 2026 17:46:47 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [44.208.76.22])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4e192us5en-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 17:46:47 -0400 (EDT)
Received: from localhost ([19.12.92.221]) by cmsmtp with ESMTPSA
 id LT1xwVfWWEDsLLT1ywYTze; Fri, 08 May 2026 21:46:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=njKxrDWggm0LIULwXaj5zpeN+aG
	OrSKm0rRA71M/V6g=; b=XmF51oPX21bQx1qabXlTfqI+r3S1CAPNIVfle9xs8EU
	hYWCrQ5+bqx4K4hNw1IZ5mSnARYcDBMDR0tXRpF7i1vO64VfEUCzrPUuAfBetlvP
	JvXp+iNFcIcqcxctolJSzBF2MCqKlzGSrRF+7U6ZJYbSWVRCGYH6cck6R67/GTwe
	dvUV62K0swVQ37NixbRlNGSRznQe0JqgyiNo/m30tqS+AeB/tF2GIPKoEFvPK6UA
	Uyzo0zwB4vTP4T6zkz2o9rrtnSTc48YTFXEI1TXDNCo8nL6vvfuKm6fExpnHwVld
	cJD0/Oh+yfhxZOFefa3v6YAmd08dx2blY97MGGrrU9w==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GaEMrTJXgDUUAtsyqyrfW+v1VZfv58ohQTxDxS1VNKGVFytllDTkAbYxqyPKH+okFVhvuC7RRc56JlA02r14KewIdvYxY98NWQBKTAqiO8dg7FJk0YxZsnK4eBfKrMHE/4HE01+QiJQn58bORZHkBH8NQ7n0bhf0Ior5udgmq8W5+O633+KvAcFa/oUgEoDgfHyvokRZJ1PXXkwV03NJ93DCISJ+BAasVenGQ5slwukv0llD9qUG+OptRzPrkWunedZVu5cGx0ItVLklDuMqZ3xdzcfVYP13p1TGNYqASch8w37xIgwtJO8cPQQ1+qXu8SIy5J2yBtFEypZBXfsWNw==
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=njKxrDWggm0LIULwXaj5zpeN+aGOrSKm0rRA71M/V6g=;
 b=enmBK6sjhhNUXWcoLOOtttRONEjYToMqmSD5kL1bktzJO0J1AUIw0nEFXZJuR7XZ+uGtJ7F80w/+/WvSI9RBUR7Agx/+1j6eneUvQPHmOTbglIQq/iabNnMrIbKKI2oI0r630px3jiY216yUSbWLBKtqRMKqeZcxxy1v0f5MzZ0wRmHA89I/5rya3rT+FMWU0OjxEVGSu5QWipzv0yJf+8SlWb2Ab9z8wQXbVmboKeot38dHzweSiiuS6zrhTzJB9UfjdYOVZOp/6vTmgtu9yfA2AQyR/URGmpk2Jiye7ossD7CdF0KkYjsuZTfRMdgtIkJU3Zb9KselO/MSCYc8IQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=njKxrDWggm0LIULwXaj5zpeN+aGOrSKm0rRA71M/V6g=;
 b=C0pN3Sx6WPbwgCUuUR2UFijlDkygJub/5eXRasF5sXIe3r8651/NxShAnaigIR/4ycTYg83wl6iHZgFrajNASgpYR8K1v+SfWjDUqEE2ifrK1S934CsB6KcFcpjKAIWVFJ5RWxBIZaMGwwqCAZ4aOY6s+ZsE7LbZwIe2Myqlo88=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=njKxrDWggm0LIULwXaj5zpeN+aGOrSKm0rRA71M/V6g=; b=EhdFAzifoOMM
	Uhyhu6V5csRzNa1Bqvm4FCbVi2xWM39kO5+CyYjgzA1UIcaoiluenj+KpBwEH4Fl
	AuMtagSmQIXpJ6eVr7qom43zhvvALrX0rOzg0Boif9y9aL32yt1ehWbCL4XanJQ/
	OCZDwJiUjDX8cml7Ks0MtksF4n9HqXAbelSIvzz85JSp31eeKXsBiUQ8G1mhMxtH
	AP8KBptUJotszjIuZGhUdMu/n0jR+WwPDMUO+WKFlf+koE/i+f2v1Czl9u0CpdRC
	fy8vNNiFT/ctA3xyCXO+ApeVvaF3KLkYYqoe2VX+7TP+Dq/VPA21+MClw40/cFR1
	CgA6bKAo7A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=njKxrDWggm0LIULwXaj5
	zpeN+aGOrSKm0rRA71M/V6g=; b=O7EpqIWx4IdZ3wsc3GfLxSZitmF7dbHr4q0+
	ua78Tms4c6woTon/HbHTDlulD9qeLHQhxc727/uaheXvjzuV6JXhPXiX5BYRYPjp
	HNrsInTnlxRswwUsQqt63gT6ezlThIzbdKXH2wHUwwx1r2a6sapdBspOgPV9yACU
	BeLjiICFUR/7NmLgNH2q3micB8O+n3JDwMk63p9oPkYW3KRwjOMT9Nl3owEEasOn
	GscJr0pbgXqdSIgzrOpvPz6hxFDHqA4ZONr9Qtyn69wfd1Ykrw+GViQ3/hvUBZLa
	UgC4wjdEL2x4afHDbOHjMLSsHfw7gtDEr7ONnyE/OeyFHQzKzg==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: LT1xwVfWWEDsLLT1ywYTze
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Fri, 8 May 2026 14:46:45 -0700
To: Jan Beulich <jbeulich@suse.com>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
        michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
        dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 6/6] xen/console: add conring buffer size alignment
 setting
Message-ID: <af5ZxWVEiUPFT5xW@kraken>
References: <20260205013606.3384798-1-dmukhin@ford.com>
 <20260205013606.3384798-7-dmukhin@ford.com>
 <75df20e0-70f0-454c-9797-e62725f53b63@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <75df20e0-70f0-454c-9797-e62725f53b63@suse.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-07_02,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 adultscore=0 malwarescore=0 spamscore=0 lowpriorityscore=0 suspectscore=0
 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000
 definitions=main-2605080215
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A107:EE_|SA2PR16MB4026:EE_
X-MS-Office365-Filtering-Correlation-Id: 2ff1f3c3-c4bc-4ef4-7a94-08dead4b4e6b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|1800799024|82310400026|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	zNO4Ex/Ekzx34UXk/x2THHwClCX2SP+fn7dbJigSUe74YfBmeLfGOI70mhFu9DloMh+3Yll9IGsbCta4W8Zon+4+sKIkFEu7FJU3XQTGsBjxHNo8fnWdVdKp/aAgd7qCiF+441f+kCZICqyWVeWPgYQfUI0/GxJcOCN7Ah98mmTe8P4YrGZDu7uG9vZaSLM0WMSn6VSi6qPCS5D4+DLFncBiM2hYuxRTK14sSPxu5sGXVUcw0l0Cp+U8JjZM7dRnhiheipuS172Lq5u/gN/ArFoRdKlXwA3KctiR+moptJ8MmmroO8apIWNUe//Fiex7imGWai+SYfVvPRV55XIH+BBid80wHx6OJLZPYP2eW4x2YnLFnL97tWsRWZpATU/4pSeo/jis5gmVMA3rS5/5YkUe8tF/C/EBJDFoBAkBLucfSbkwxo8MQHrRscBfaXPZRdroMIfnfvPan/RtxMRkSjNQN/nPZJ6Vwm5cCtbaYg1HVXCFapS3416s900QZRQBmJWi2cmt6fvjHvkTDlezni436ZYDZbQyWMyP18ELbYNdLjsSnrfo14WEWBe+A6ebvN5dyq1t2hPuOF1A6xFrv2zDbtUrI3QS+/a5dL/SoojjJq01ItQunQvh1ADbR+f11wjnWfINa2xMLN9OmsMAAdv/iI8OvHhhxhPr/yNRMQFRyBVieMLQMcSOo/GvM6Lm1hvIYab0gHzH2lg9GVqWZCm0znYXBz/FGp4RowB9UtY=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(36860700016)(1800799024)(82310400026)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	eVFvumgfTkBQZ8BIAD8wBR9TEuYaANcchPUQwaKRwn96pmMiXVS31BzaZ7/Rfkl+G57g7XgfKAvIbi6ETyXZXR9yy/QV2askJnz+XWn4UruP1R9TA1qODK7FYBHdgwJgkuxxO+3aV/jG5ILCTTb5N4ymlNT8zn5/Fq1k1bHQenhKD4yCiJVIAcY9MV4bM6QtV8jrzUwpDvGWXEs3iAwp8rAxJklIiSfI7StR7dUvfGd1m/t1uepv64pQVvaDcxRblJFj5Qw+2SP3eHnOyJPziTg3hO74JYmRt0doVXmO1gazbb/Lyq7z5SwnZ1c5ig1eCCOUw/Wslwxz/kshu6Up5ezuWNLH0l5rGDc7yvwbrbtdnbD7SFdgMUhqmUmEKm80OBou2WKhX84QxpzAEJFzN6K33T4cHTWJx7ct+GnLZwEr7e0LpeKDCGoB87RMolvH
X-Exchange-RoutingPolicyChecked:
	X4o8ykj7X7ePOnWPN6yCqgtbdrr2h7qUMUuUvG+wh2q3W+HdjAMqTiLUHeUCiyLKxJtLLc5W9uZlh2/JWdjvRMTJfXWTT0aQrhBRSsfdHz8/wXQFSUvfIK8LRNZWSmJXOEo9oOiGLQWj8cPUnZLmd09Pj6Lko1MMjWIxHS+E0ZrYURTFYepAqIE1Hmwse2ZVX7XssyTKSOtUIy4bqG8ydPZe5JiYtU9ByGtOK+cRBAiIVDiCzHX7tfZg8Nkg89KYSzIrwxSZ2QCZngX7BxfYBI0I5WhKTdjrfIMOSebsgQM1dhdz/2udaumcJy3nb08r4xL7tNR7pONXS3f0krx48g==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	+74RFtdD7g64Sjt+q5rpVeaK1Plkmx1HPjESjUEI1CBJcGEJhzUkoZETZV0qWoMt5yP7MXvpZFcPgcAh6c6SpS1QTHHiXsdk47K9M0tJfHpLXggz8Jdryg2KMjnmlG60YUgqmtea7Fra11vM6vZeSt/ZrvP6WHZ4OnP9Ep35jxGyIUW9dGn6z2a2l1dgzmAdYlODxxrCxCP6ThqY6HVUWawMEH2JLTy6XI0PYHLIcCpyMa37T+UHXzhN/2dxyGn0aAC+esrMdtCphsWBATx+DR3hrHqzAoMYs+9QEYX3KgBlIBQlT0cxt2Cpfq4dP4b17Om/Wo4vyGTok4BwUSJVQSVKpPAAPotuoz5f7ajSsDf6FyQYKBKUTIhuX2BvsA4vFW9TafyjUvPdAnkSMFZcCZ7KyghJC6fysfXOMSn6kESG8uxDvuEOoYu+8XNtnjfaLq8Keuy4aYYqnjGFlGu9i/DfAZPh4r6uEFjrEWPNDYQdNPQPjTC+SJedcuW3FrFtHFhi7nNU7PGKGdFFtp2KMwTbO7tSGIPPttE11EnqBV7i6UoK2rlQnFWj5V/SuSs/JX93pqCyUhszXkUBksq4COHsPweqIn95+Qp1C+3TM/rLcAY6Vk72+q6V9aiB9U8k
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 21:46:48.1987
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2ff1f3c3-c4bc-4ef4-7a94-08dead4b4e6b
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A107.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR16MB4026
X-Proofpoint-GUID: Vo61fQ4IEE8X0kQegS02l4aKugcF68hI
X-Proofpoint-ORIG-GUID: Vo61fQ4IEE8X0kQegS02l4aKugcF68hI
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA4MDIxNSBTYWx0ZWRfX1r1KKLZYhA3E
 39v7Mq8NK1C5WOAYLjY6kr0E/P/8wZEnlGwnorUyclwKEddwALyQSGh27WD+9fBVDlEX82767VL
 RbyU50H/gv9VVhOtXgd6TZbwiky4g2f5tXA7LpERGj3UmNRYDU9mQczbxZpdCZftEFjdLjoUQPe
 Eo9sRl0OxtHT6+lSukPpCaRwGkFNsaazZ7XaW0YoVyKn0c2J+JlWZH0DpDdnfcHi8mUjCZm4wco
 dQWkBGZY2uaC+/RBw9ciNstJeSKhTMEj9qoayj284TBXtrLGB1VYootX88KTtELHG+mxhlt8sKm
 jNdG+TQIXcc2SbRuRGRJudX2o/inHJq0lC9YKqRq7T834gJFNu9iYxkGlBaIg5UTbNCcLJbkF8o
 2RuGHTEkSTcGSEbMfom5nbIS2vEEp+hbaOE0bCmF2T7MkonojM/8+z2wD3gxF7Ek/Tbn6ubRpcQ
 V3d87xx8OvSjy3CHJ4A==
X-Authority-Analysis: v=2.4 cv=T768ifKQ c=1 sm=1 tr=0 ts=69fe59cc cx=c_pps
 a=6Zlfg0iwFc/B+5Yb0ubQ1w==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=NvsXeTrgx-CJMFV-xl94:22
 a=mLnsDVdbAAAA:8 a=cbNQJ9GKAAAA:8 a=tHz9FfFoAAAA:8 a=YcgBAMpYmrOwQzKETNQA:9
 a=CjuIK1q_8ugA:10 a=3whSkbs7g9Me0DR5EJEX:22 a=xnp1pY6zelCj5OLna2To:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-07_02,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 suspectscore=0 spamscore=0 bulkscore=0 impostorscore=0
 malwarescore=0 clxscore=1015 priorityscore=1501 adultscore=0 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605080215
X-purgate-ID: tlsNG-ef75cf/1778276815-2887FC48-336338A0/0/0
X-purgate-type: clean
X-purgate-size: 985

On Tue, Feb 10, 2026 at 04:10:42PM +0100, Jan Beulich wrote:
> On 05.02.2026 02:36, dmukhin@xen.org wrote:
> > From: Denis Mukhin <dmukhin@ford.com> 
> > 
> > Introduce CONFIG_CONRING_ALIGN_PAGE_SIZE to control rounding down of the
> > user-defined conring buffer size.
> 
> What's wrong with the rounding? The more that, with the original behavior
> properly restored in patch 5, it'll be a power-of-2 multiple of PAGE_SIZE
> anyway?
> 
> > Also, update the logline reporting the final conring buffer size to report
> > bytes instead of kilobytes, since the user-defined size may not necessarily
> > be kilobyte-alined.
> 
> Yet making the number harder to grok.
> 
> > Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> Having talked to him, I don't think he meant what you're doing here. All he
> apparently meant is to stop using alloc_*heap_pages(), which needlessly
> supplies order-aligned memory.

Thanks, I will drop that patch.

--
Denis


From xen-devel-bounces@lists.xenproject.org Fri May 08 22:10:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 22:10:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304337.1577406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLTOT-0007NE-Po; Fri, 08 May 2026 22:10:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304337.1577406; Fri, 08 May 2026 22:10:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLTOT-0007Mj-MK; Fri, 08 May 2026 22:10:01 +0000
Received: by outflank-mailman (input) for mailman id 1304337;
 Fri, 08 May 2026 22:10:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wLTOS-0007Ec-K9
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 22:10:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLTOS-008ItA-0y
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 00:10:00 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69fe5f34-2eae-0a2a0a5409dd-0a2a450c9ac2-4
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 00:09:59 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 69fe5f36-62f1-0a2a450c0019-ac6904feecee-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 00:09:59 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 28D5860181;
 Fri,  8 May 2026 22:09:58 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AB865C2BCB0;
 Fri,  8 May 2026 22:09:57 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778278197;
	bh=kHdcgmqC5b2xNkh8ZM37T9xVRgnh1ZpkO/c85/rTw8M=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=VmUyuDEXWQ96wivWfgCTxptNpYwWfn2fwr4uIPSEVD/0d85lkXdPwjm7+fRmJNfvK
	 FIV0WVKd9onTZkRzLq7Upf4sb1Y3pSaK6MR0QS6AC6NnnPyHVgl6CNKH67M+LTlTS4
	 Il7IeQ5Xbf/2w75qiERGZ+Ba0MjmwnLyf1P1TU+ZTlZnCC7gtLsAIFiYqAvjxlarK7
	 SaywCoc3aCzcIZHAUOOlm+Lxc6a1RhGO1/TZ8X0Q91d20RxVCAy5UyPa53KduCrUfx
	 xc+csJVJIeplKjmEzdfJhqycu/6pKAufjVVj9I4xyOxnrZ+rtduhh05s8GL2jTjCmt
	 HAyjR9zYAtWzw==
Date: Fri, 8 May 2026 15:09:57 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] CI: collect certain intermediate files as artifacts
In-Reply-To: <84e74842-9a2e-42ce-9ec9-2892156353b1@suse.com>
Message-ID: <alpine.DEB.2.22.394.2605081508520.1779943@ubuntu-linux-20-04-desktop>
References: <6d9345e7-7ad9-48f4-8447-3a955305430a@suse.com> <alpine.DEB.2.22.394.2605061748080.1744448@ubuntu-linux-20-04-desktop> <alpine.DEB.2.22.394.2605061753050.1744448@ubuntu-linux-20-04-desktop> <540ef3bd-6fc6-4cf1-a1fe-3def9cfcc114@suse.com>
 <alpine.DEB.2.22.394.2605071441490.1779943@ubuntu-linux-20-04-desktop> <84e74842-9a2e-42ce-9ec9-2892156353b1@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-d25034/1778278199-E0D63CF5-3DBB9276/0/0
X-purgate-type: clean
X-purgate-size: 3694

On Fri, 8 May 2026, Jan Beulich wrote:
> On 07.05.2026 23:44, Stefano Stabellini wrote:
> > On Thu, 7 May 2026, Jan Beulich wrote:
> >> On 07.05.2026 02:54, Stefano Stabellini wrote:
> >>> On Wed, 6 May 2026, Stefano Stabellini wrote:
> >>>> On Wed, 6 May 2026, Jan Beulich wrote:
> >>>>> When one of the linking passes fails, additional intermediate files are
> >>>>> still in place. Having them available for analysis of the underlying
> >>>>> problem can be pretty helpful. Collect some into a new intermediates/
> >>>>> directory. (Nothing new will be collected if linking succeeds.)
> >>>>>
> >>>>> While there also make sure xen-syms is collected (into binaries/). This
> >>>>> is rather more useful for analysis of possible problems than its stripped
> >>>>> counterpart.
> >>>>>
> >>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >>>>> ---
> >>>>> As the issue this is meant to help with didn't re-occur with this in
> >>>>> place, the new logic wasn't really tested yet.
> >>>>
> >>>> It looks OK but please provide a link to a successful pipeline
> >>
> >> Well, I had it in use in
> >> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2503967215
> >> but does that count, when the issue the change is for didn't really occur?
> >> For now I can't test the additions without having a way to trigger that
> >> symbol table issue (or any other problem at one of the linking stages).
> >> Short of artificially breaking things, that is.
> > 
> > Please break it on purpose. Just push to a temporary branch.
> > 
> > 
> >>>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> >>
> >> Thanks, but the above wants clarifying first, and the below suggests you
> >> actually meant to take back the R-b.
> >>
> >>> Actually, I see that the build script is run with bash -ex so I wonder
> >>> if collect_xen_artefacts would even run if make fails. I think we need: 
> >>>
> >>> trap collect_xen_artefacts EXIT
> >>
> >> I don't feel comfortable making such a change. Furthermore it's unrelated,
> >> as it would mean that on other build failures successfully created final
> >> binaries wouldn't be collected either (after all on x86 it may be only one
> >> of the two links that failed). Plus then it would likely want doing
> >> differently, by making the EXIT hook invoke a new
> >> collect_xen_intermediates(), leaving collect_xen_artefacts() unaltered
> >> (except for the xen-syms addition there)?
> > 
> > "trap collect_xen_artefacts EXIT" was just a quick suggestion to explain
> > the type of change that would be needed to make this work, because as I
> > understand it, it does not work now.
> > 
> > From your comment I don't understand if you think that the patch as is
> > would work as intended or you agree with my comment that it would not
> > work.
> 
> Given the -e passed to bash, I don't expect it to work as is. However, I
> question this behavior. Exiting on error may be okay for any of the
> preparatory commands, but exiting on failure of make feels dubious [1].
> Hence I'm unsure which way to deal with that aspect (i.e. I'd prefer to
> latch the main make's status, collect artifacts, and then exit the
> script with make's status).

I am OK with your preference.


> Somewhat related: Why is it that collect_xen_artefacts is invoked three
> times, rather than just once at the very bottom of the script? At which
> point it wouldn't even need to be a function.

There doesn't seem to be a good reason



> Jan
> 
> [1] E.g. a failed tools build may also be easier to analyze if the
> already built components (libraries in particular) were collected.
> 


From xen-devel-bounces@lists.xenproject.org Fri May 08 22:11:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 May 2026 22:11:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304344.1577415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLTPf-0000E0-1l; Fri, 08 May 2026 22:11:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304344.1577415; Fri, 08 May 2026 22:11:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLTPe-0000Do-VT; Fri, 08 May 2026 22:11:14 +0000
Received: by outflank-mailman (input) for mailman id 1304344;
 Fri, 08 May 2026 22:11:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wLTPd-0000De-LQ
 for xen-devel@lists.xenproject.org; Fri, 08 May 2026 22:11:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLTPc-0046H4-OQ
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 00:11:12 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fe5f72-bab6-0a2a0a5309dd-0a2a4501bf2a-10
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 00:11:12 +0200
Received: from [209.85.208.174] (helo=mail-lj1-f174.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69fe5f80-c1f2-0a2a45010019-d155d0aec514-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 00:11:12 +0200
Received: by mail-lj1-f174.google.com with SMTP id
 38308e7fff4ca-38eab6cf7d8so20199951fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 15:11:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778278272; cv=none;
        d=google.com; s=arc-20240605;
        b=ctEPWtcrRH7/AL/gpGVlLx7wM7EkOI+33f4sCAwisOknQMFUMABo3E7hFQbuh/7VYC
         mVqExXjx79FxN4h59yFo8BGP5uk/KAoz7tEWRUl/GunO0XwMlHL64fVBL7De46dvvIpI
         eeUbdxgL1853u0NEUWMM8WHkG/nYFy1Y4wYL8+MRzFpusp3UqoNYSMx3J7NtYDkTTdnf
         JeLeZzgbYLbEop0uG7rP63PKkL7EnA9Dk8hzCLHxX/Mi4QWfyXU72R67y+8WmdGB0wj2
         4943bmQcWaUa58PFnjs1WvA9XHxplnldxn6xBaOmDMaarj66EEQjuqi7imJ7vyjRhoH4
         ZQeg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=4uoSD4dv/lM4JCjO11NQ3fturTKgoKsOxneWDpV0nVw=;
        fh=URHEk7klKxjqc5bXwxtPgt12zwbJaOVjsCphaVnE7cw=;
        b=Z/0mSUiTU3IoY0fIp3e5sDBGNOSFNuVxs6cB1DaTD7J4brf6nmLLui9X/Pul/TneuK
         rfD5jESnayv9cqeUd2ec7zct9gM8oPtSkz6KL1q0l0vojJgWHzYocj6zgro9dlACrEre
         k9QSEXgyQYfBRzADQ25l2dwdEu8enQOJDjaXfdyruy5UK1jDI+pLgrB9Il1rpv7WBwY2
         GnE2bZjuSKqnzVziWwp+h3o57EWbotlGpn3mxAS454ai06N6lhnXwClm+uhjWWrfqlEX
         DfiKkYAr9rkBGJr48ajTAL8/qmuzonrQmcyumGtaLfzOj4JKD36DTWOHy7SJZcxkxhjE
         F/8w==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778278272; x=1778883072; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4uoSD4dv/lM4JCjO11NQ3fturTKgoKsOxneWDpV0nVw=;
        b=sOONakH2mQP+bqcf3NFRKkE/IBDpvuBKda8Z34ugqiSW6Ag4PCxqbWQtuL9o4Ke7sM
         +SodNjhwhOzlcz/FrqNKocJy9+wub82xVhyjk/wMUbyAFzm9Yw72IGXzA89j429CowyH
         tz66yzu2RktJZhtknC+NeKVdjG2bh0xYSh6GQqkfLq++3A32npm0pAofqGL8vl9nobEG
         af8vvQwRnIsqGEkCcyFtlULFNvV/80FsXtVX+DORt/OgkdHdnbNMg+pDqejD8CPZAUQz
         EHIIUUkGobVytPgKG9uXVyrzy+xWIJMmNBDyPEboSW2uME62ZlZzvJ2vkmPgoqEBdWoN
         UCRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778278272; x=1778883072;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=4uoSD4dv/lM4JCjO11NQ3fturTKgoKsOxneWDpV0nVw=;
        b=QkN1G83I3xhmYyUEmKr13WavthHqIe8hcyZIUn46LDVyqZ/9fvy9XyoOl54PaQo+eZ
         +9V0WEx4vgzaXnfSmSzOvQ8ye2NspSZXl34ymqGrFoaQyf+vBy/rTR0SlvvhNLviZljh
         WKDFpu5DIzwlKj4AYCPvt16Kp+gEcGRqJ6Fbc+6uHsLbwwjBXEW7ZVjLC1f7+zCe5MkL
         Z20NB+wNaFb4+Zh164IVbVw1Ep7FWHJo9fm/QKzRCbdmjjVG2T7PwpUdnpppJdHttQvf
         cLgYnA3dSMKNzOKi/pb9tGtGtdssalL71tlNYHPCL4EmaZGnNesNz6VA79r2M54jqSvK
         QMNg==
X-Gm-Message-State: AOJu0YyTNa03nyodvcrl8Vlre4Nkq3hx6wnzioXkeyBtX2WBFQwaEvEH
	+1I31Oprsop++SCb8p37jnOp821OxINoGfpKbCalOOt+bZrLwvDoR1zMzS51rarj64mshCjt+df
	GBIAt2xhqGu4mWjbO1ZgpkiW1F3r7WQk=
X-Gm-Gg: Acq92OGf+egH37peHOKTK8vFRVPRRdeJ4/y/yznp74qmTUfJ2GyQiL6dTNXcW7QSwjs
	914UUz52FHg+2FuoPAdSsLGr/XKctOg77FWHAd2m/Sz0tlr3sasVpMQjaXHmYOUN0BGlG+K/9ox
	cdJ76bqpBn8mW0oNgVmPqLp579VAmxvEhjngSTzBM+Kz+RHpKbhLe4XalrfpJOd6F8e0TcVYRx2
	iUkxlwgCFh62Zj/94dSj0V54+e/4c91qoskGpgLK5qz+AIvJtujJ4gLCxCiFISstkqRE7ifeNSu
	jVmL1w==
X-Received: by 2002:a05:6512:308f:b0:5a8:94c2:d4cd with SMTP id
 2adb3069b0e04-5a894c2d734mr4503319e87.30.1778278271683; Fri, 08 May 2026
 15:11:11 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <5a42b7c32fadf21262b8342f27e685916d0e5812.1775125380.git.mykola_kvach@epam.com>
 <FDA8FF59-989D-42A8-9E75-1300E0B5EBD0@arm.com> <CAGeoDV_OkizsZj0hNXM3W84FpoeVjgSnzoRmAr3YtZj1Ri_3eA@mail.gmail.com>
 <0BBBB87D-4A54-4378-BC30-4CFAB7553286@arm.com>
In-Reply-To: <0BBBB87D-4A54-4378-BC30-4CFAB7553286@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Sat, 9 May 2026 01:11:00 +0300
X-Gm-Features: AVHnY4KELghW99FEnZfoYqB5SCXdtGae_3u-LzCWYOF0UcLWMBnXjDQnDLH9bQY
Message-ID: <CAGeoDV9J67ycr7aANcQDAmEYBA7GZBTOUY0_CVrwLVjNzQcrDQ@mail.gmail.com>
Subject: Re: [PATCH v8 05/13] xen/arm: gic-v3: add ITS suspend/resume support
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d62444/1778278272-B474CFF4-85C35F64/0/0
X-purgate-type: clean
X-purgate-size: 3800

On Fri, May 8, 2026 at 2:31=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.com=
> wrote:
>
> Hi Mykola,
>
> >
> > On Fri, Apr 24, 2026 at 1:54=E2=80=AFPM Luca Fancellu <Luca.Fancellu@ar=
m.com> wrote:
> >>
> >> Hi Mykola,
> >>
> >>> On 2 Apr 2026, at 11:45, Mykola Kvach <xakep.amatop@gmail.com> wrote:
> >>>
> >>> From: Mykola Kvach <mykola_kvach@epam.com>
> >>>
> >>> Handle system suspend/resume for GICv3 with an ITS present so LPIs ke=
ep
> >>> working after firmware powers the GIC down. Snapshot the CPU interfac=
e,
> >>> distributor and last-CPU redistributor state,
>
> =E2=80=9CSnapshot the CPU interface, distributor and last-CPU redistribut=
or state=E2=80=9D happened in the commit before?

Yes, fair point.

That wording is too broad for this patch. It describes the wider GICv3
suspend/resume flow in which the ITS handling is invoked, rather than the
ITS-specific part added here.

The CPU interface, distributor and redistributor handling are covered by
the related GICv3 suspend/resume patches, while this patch itself adds the
ITS state save/restore.

I will tighten the commit message in the next version so it only describes
the ITS-specific suspend/resume handling done by this patch.

>
> >>> disable the ITS to cache its
> >>> CTLR/CBASER/BASER registers, then restore everything and re-arm the
> >>> collection on resume.
> >>>
> >>> Add list_for_each_entry_continue_reverse() in list.h for the ITS susp=
end
> >>> error path that needs to roll back partially saved state.
> >>>
> >>> Based on Linux commit dba0bc7b76dc ("irqchip/gic-v3-its: Add ability =
to save/restore ITS state")
> >>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> >>> ---
> [=E2=80=A6]
> >
> >>
> >>> +    {
> >>> +        unsigned int i;
> >>> +        void __iomem *base =3D its->its_base;
> >>> +
> >>> +        its->suspend_ctx.ctlr =3D readl_relaxed(base + GITS_CTLR);
> >>> +        ret =3D gicv3_disable_its(its);
> >>
> >> This is called from system_suspend(), along the path iommu_suspend and
> >> console_suspend() are called, finally reaching gic_suspend() and this =
one.
> >>
> >> In the IHI 0069H.b, 5.6.2 Disabling an ITS, it says:
> >> =E2=80=9CEnsure that all interrupts that target the ITS that is being =
powered down are
> >> either redirected or disabled=E2=80=9D, is it correct to assume all th=
e ITS targeting source
> >> at this point are disabled because domains should be already suspended=
?
> >
> > Yes, that is the assumption here.
> >
> > Before Xen reaches this path, each domain must already have entered
> > SHUTDOWN_suspend. In other words, the guest OS has already requested
> > SYSTEM_SUSPEND only after completing its own suspend flow, so the
> > ITS-targeting interrupt sources owned by that OS are expected to be
> > quiesced at this point.
> >
> > So this code relies on the owning OS having disabled or otherwise
> > quiesced those sources before issuing SYSTEM_SUSPEND, rather than Xen
> > explicitly doing that in gicv3_its_suspend().
>
> Ok! I would be for a comment stating this assumption, unless the maintain=
ers disagree

Ack.

Best regards,
Mykola

>
> >
> >>
> >>
> >>> +        if ( ret )
> >>> +        {
> >>> +            writel_relaxed(its->suspend_ctx.ctlr, base + GITS_CTLR);
> >>
> >> here and in the other places we write GITS_CTLR, this reg has Quiescen=
t as RO,
> >> maybe we should mask the write to only the other bits that are writabl=
e?
> >
> > Yes, this was inherited from the Linux ITS suspend/resume code, which r=
estores
> > the saved GITS_CTLR value directly.
> >
> > That said, masking the write to the writable bits is cleaner, and I wil=
l do
> > that in the next version.
>
> ok
>
> Cheers,
> Luca
>


From xen-devel-bounces@lists.xenproject.org Sat May 09 00:57:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 00:57:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304390.1577452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLW0r-00068C-M6; Sat, 09 May 2026 00:57:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304390.1577452; Sat, 09 May 2026 00:57:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLW0r-000682-Gw; Sat, 09 May 2026 00:57:49 +0000
Received: by outflank-mailman (input) for mailman id 1304390;
 Sat, 09 May 2026 00:57:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wLW0p-00066j-Nl
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 00:57:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLW0p-006qJL-4T
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 02:57:47 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe8605-bab6-0a2a0a5309dd-0a2a450bcf24-44
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 02:57:46 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe8689-212f-0a2a450b0019-94a38ff12a26-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 02:57:46 +0200
Received: from pps.filterd (m0367130.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 648KKbcv1047156
 for <xen-devel@lists.xenproject.org>; Sat, 9 May 2026 00:57:45 GMT
Received: from sj2pr03cu001.outbound.protection.outlook.com
 (mail-westusazon11012067.outbound.protection.outlook.com [52.101.43.67])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4e1psk1fq8-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 00:57:45 +0000 (GMT)
Received: from SJ0PR05CA0184.namprd05.prod.outlook.com (2603:10b6:a03:330::9)
 by MW4PR16MB4629.namprd16.prod.outlook.com (2603:10b6:303:184::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Sat, 9 May
 2026 00:57:40 +0000
Received: from SJ1PEPF00002323.namprd03.prod.outlook.com
 (2603:10b6:a03:330:cafe::f4) by SJ0PR05CA0184.outlook.office365.com
 (2603:10b6:a03:330::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.6 via Frontend Transport; Sat, 9
 May 2026 00:57:40 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 SJ1PEPF00002323.mail.protection.outlook.com (10.167.242.85) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.9
 via Frontend Transport; Sat, 9 May 2026 00:57:39 +0000
Received: from pps.filterd (m0426315.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 648LHoDj652918
 for <xen-devel@lists.xenproject.org>; Fri, 8 May 2026 20:57:38 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [34.209.42.160])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4dx35qqsff-2
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 20:57:38 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id LW0dw72zAiHenLW0ewLgxO; Sat, 09 May 2026 00:57:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=rg7
	pAXaVnEF31+yMkdbfvgcrMi8aNPrCpSyJqn+Du8s=; b=GuoaqaWIKZMni206Xtk
	idFtw3C6/SAh6EDbVJgiPYpAi8I7g373c+y/a5Trva7ZJw9LrJtoVtHtrhwE5p/s
	7BTBy7VkrzMOBOtWfhcjoi9Ljc7p8JyCz+l77vPw6Uy9BHDdkTHGklMdOp39uH6K
	lVLFh1p5ggl90NcrOZ6rqyx9tc3DlCft04LC58FOdUWa8/Du+oUH0G1hchE5rh7y
	5B41zn5jkWcMR5vX+fSwN+4BdpWgcAQ2oLR8yzIGVCi4ydbcQVPihbyJXJ5KTiZ2
	jS67EM7rtMHAS/p6WitMMCRNz332kvre6czv2yHXJTr0NuQMYVolv0VhUrAnvuuu
	AFw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=y78meKgYTfgNra5iJ1vh/iDGR92WWVJNMXSr/zkY4ULZWxd8Drw5H95jRYnTjALQ1AfrkIamogD9p7FemQkoqgnxrmb9qY5BTg65d+BNyovucfFQ33GlPZi/E6GRZhq8GqfVLNXyv7vOXDy4uGlez8VUM/vwBPqrDi5L37nrTWRD2DAlyKQWwg2SEz+QExbFN9tytdRMXQl4bamnWZYSbTPO2w3gXxoj6VrQ63vNdKdBq+4yzCpRlvQ8Ul8jHawG2xCP481DdHL2kZIek9kV4rzqOg/FIdSPUr/S7G9NgYRPKb62eJ7PkLZSKb16RASyTme2svf5Wlg7m7SPt2LfQA==
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=rg7pAXaVnEF31+yMkdbfvgcrMi8aNPrCpSyJqn+Du8s=;
 b=LrSDmXZamC/zm2TrtMIAtLMhp9fSUYpemxsq7AC25+tWbGuSLA0LN/nbuZlZTpgP3NAKlpg7eeDB/Tz77k8scyMQswA7ZBbwYhAhKdAksKJvsnw7ChrZZH47OUEXYdNBmOEdRcSANvozbot8Qk8GHgM/TMl7OyjStPms9igkMU6f1ToKkKtw+WHrPfCNDoKKIuSXxI3/w/ZZt6So3HQvQfVdtH2ytJEha2RMG543Wde5Hv9SbfhAqIJBvjSq/Os4cXQt5qgIx5y/pEZYWzpISuUIU8SswE0+yOrbKP1a01+anppHEHelBHfdQLRo8SXEsczGMRiqSO2rYPIksOqdEw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rg7pAXaVnEF31+yMkdbfvgcrMi8aNPrCpSyJqn+Du8s=;
 b=I9DwvQ+kyFQP2BTCIrWaPh5Qs3bMOxym+4MGFb6m3+cPrk7b/gioXpu4wiE4DYQDhMDbH2B6D3zLKETfx6Tqei+4Zbu3rB571vWLrzI4zW+CvqR0QEJAJkxXHwCljZreQYASUk4Czwm0j/Yt4PL9yct3/H1RQJ18ibdChh9t18c=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=rg7pAXaVnEF31+yMkdbfvgcrMi8aNPrCpSyJqn+Du8s=; b=
	QOo/bhIpI2IHPOgcbzZCfaJnFhf+5DZAYjmnKnmKq9Kx5sLE2oFXNAocHJKiwjtW
	NqwGfwl6T8iIgHRqJiNuHZIjda1+qLCj7dUpc+T36K3qX+9vnNA9xbAGlfXWSQh4
	DnDvU0wGYlAjAviahBBm7gMYiqYlZrxtF5Qcr/r/cte7GZJT3ghE7anW6LSc/63X
	4aUhGjV2zNzm2zs+31tFmUF5t3g+X/qGMDGShArZMmFTB8ClXRNkByanI6cIUsaW
	T8PXAKPVdNuH/OICkftFfMAEKu1RvV3WmvZXFeq3z8lEcMHS7abAOcaG2y4eYS8o
	yZ4blqlQ3Ssxfj6DstRj2Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=rg7pAXa
	VnEF31+yMkdbfvgcrMi8aNPrCpSyJqn+Du8s=; b=SpuA+NiITV7V5B5yUrrq1En
	S6br6n4d3d41pX3AGZ7UfHRdxkYeZFXOD67gsvzibEkyGrKQDR3bHfBIVtYcf2Qr
	/njxoW4MXqdHFmUFxKWw1lAxbbPMGkPgOlVR2OrDpNq2fpbuKueSe/DE9Ue/oJ/Y
	d2XYGW3sxXEuwUKrxrm7rcvVJe7hepxpc/waHYdBf4RWORpPzkI99TicwXB3wwpW
	hZCGBaBZq/5mfHvDEx88hQcP9sQ7EYjMEhPNKWAOacO7JYVbGq3VzPM2fpE/1agv
	8piUgshwl1SwdtLFDpXu5DjTUl0gecjvscEgPokEd4f7SMOoIP0GZGi/0AO5+GA=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: LW0dw72zAiHenLW0ewLgxO
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v6 3/4] xen/console: use memcpy() in console_init_ring()
Date: Fri,  8 May 2026 17:57:13 -0700
Message-ID: <20260509005714.892018-4-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260509005714.892018-1-dmukhin@ford.com>
References: <20260509005714.892018-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-09_01,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 lowpriorityscore=0
 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000
 definitions=main-2605090007
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002323:EE_|MW4PR16MB4629:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: a3a733f9-cf12-4ff7-fc01-08dead65f827
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|1800799024|82310400026|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	J0IUFd6YJITBmhJ/vN6H5VJkxFc6VuN4mowSvKicotRW7A/+MW+PQEs902qPY4iKCxyQhmHMHcm1s/Yicv5BspFYvYxQo5oiqsoSncsNaKzhAi6t+/mcMlJkkBnOgv3wwDMRyqYkkK7fHOyFflx00eLpvGbqgLyFZWQ8RI5cToOgmrjpPzF4VPdKAOOLs6Ws33NH+f+WB7p/aO0PdEZXYds4KAwtj/myW7d3B8OqyEjrucqw8PZx1kLs1b11yK9GZfgMMStki2ePy8J05sjrli/0sQ6XT/G1nRuo/znaAOgHqwfhZ7kOXGP+5eG/DmKFAoTMJqCB08aNhcyB+p1EupS3fg209wEZFRZmMTSDZEcrfXWAQSWj3oi+JU3Vgf8OVF8E+mAFhkVpapCNhSCoB/JtyAqbWrAU9TQSxgoXKF7/1jL+tEf8fzV7B343ii8xZRwmUknXFPJ4AyPFmIVDhL69oyjMOjVjB5bab8pRJaAAOoo8q3mBzQsc2yKu08E7ppw2M8JvK1LaLOeOwDT/Tx4IlEskmiWCQL1bgljmzKOX8ytcTxD+iBfZjmUlRyRwqRY1Gsc4zOp4ZGVKND447ldFQd8uk+aRZLSOEUX9X2q1PW5xemyG6KaMEyDWmF2sigXS9M0JZzok+N04qy05sqVZ3Ijv7afuwnL4qj3odt8DOg7M+uGzCEd3/szVfuLBA5mJTupa207aowGpgfBU8GJDWz7yU7Wpx2F+GCRJBm4=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700016)(376014)(1800799024)(82310400026)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	UuLtYe92wWJu6Ua7KRCvfCs+sGqnQMZqot17NSSYvxUvn2SG7u8pC6LpxtyfkudF7BnbcL4WAJQ0Sr5pZ/eq67NOqRvIb/AV9+FhAluo08RDfrzotAFQMmOEUI316tuH06SzHalM98Q9BRy1HVNP3y/yvxAWQQV5dJAjDCWypJ/QwosJ0JP9h7lpSsrjEek95yooBgD5sUG44qYmzebm26QklmAGk+k3b5k8zYvpoL1X2vjv8nScJ5GmReYqTwlALaEM/gEUwL3XGuXh3v2MYYHcv1Bhplovz12+umh2NqSbkkxsTeKIoDzEsXhoDiOCyzcm2pVv+1kwXPsKR8UY5Rnp+r/WQlPW7tuAnYfoxqxndZFT8RLFbIQgasfxzABekzDJQvPclJ33kvp5+uuzDC7BJVwf7qPZJiPm8xXTA0VBcHgvBE2OwG5eBuCWVUZm
X-Exchange-RoutingPolicyChecked:
	B6Kr0hBHDfn37K9t3puPzPbhnizl0nRCK8uQ5o2Ujb3bvhlc1wEzap7y2xQeiXocmIf1Wm2vs0veiKT7QFzCneQifmnl7dFvJZTRrlI8RmIPdlc52+QgE3Q8FVzBj8jDobUz9n/Xct2NmVxxxwC/wlNgshvYnqbhbvAOFeD6ZAAva97xUwttBPLuRkNrNJCOFExP6qOh5k/jtDg2a5fFRu2OS89n61kEX/5C/VENhOac3+47ZaHVzssrYXBXx14X6FApRD1pZ7i3q/gwnSAFW1q419oFGnwhOnhgKipcuBCs74vIzTz29zMNX2/UYmTQqsDkBtslg/0tdbhugb0Adg==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	+32Q5kM61IKBwKppI4CMoV/cpsnNkxguT+8OxLW9+WS9+6HfwA/0YttoWMADKOHRCzHIOb16IC2p3Fs2Wnwq/6n5oHCjxv3xxwLH5/t17luYOiI3T5c5bISN4t/tEcAicbuxcgqGkQuL5lfzaP20z7j+7gx0lzAmj40oT0DdzsTmQ6UNcXIWdzTkFx6GFm44+noayUxVILAVXEd91WaCVvvIwW0+XLsEbCgAXm6xa/qYna4BH2EiavG7mUxGJzkCK5ulkImDtkKMSxuL5hpdlOH3aJGeRVDBXSVm1cYm2HpcOoGqwybNqHIsx3wy2+8gMszMWE4dRVygbI9i/aqvR/VpALyJvZcZUADd9NXGUwvzZUa+ugeEwXuqyb2rJVL34HO9R3a0dSRspZeutF9keiCagu6UmiZbQi3DnmY3pswERgfQiqDA++R1AnKD+nm8KwyeZHfjS2IrTx9J8VIdjhtwzZrRXHQuXoEVugKaqoLI4aA3nNq8yZqXd8GR0g5epMCcxYL0KLlNnxhnW99koev4IrKF2PvftU4N2gE305ZR7vnWnVWqsGZEXYrjNiteT3e8iaMMKbp8hqYccaE9Qe22Ua/bJ+Sn5BVmIk1JN0twzqIY0iLLYIsATVoYU1NL2tLxBJSx/wRyGv0F27HeJg==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2026 00:57:39.7041
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a3a733f9-cf12-4ff7-fc01-08dead65f827
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002323.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR16MB4629
X-Authority-Analysis: v=2.4 cv=aZpRWxot c=1 sm=1 tr=0 ts=69fe8689 cx=c_pps
 a=Getn/9gNXKMn2yU3BA3TiQ==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=vnUQfov-gS4s1L7hHvr-:22 a=cbNQJ9GKAAAA:8
 a=tHz9FfFoAAAA:8 a=bfffGLb1BPHTRRR5J6cA:9 a=P0bj-C3X3jJDpopQwM1U:22
X-Proofpoint-GUID: Uwifk5Vg7PLgJZekokj4yi6qrcJmA9Zx
X-Proofpoint-ORIG-GUID: Uwifk5Vg7PLgJZekokj4yi6qrcJmA9Zx
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA5MDAwNyBTYWx0ZWRfX1Vl+mTCAJDer
 gaszZfw0LMzc8Qu8psvHzCcXyqRC94qMKViueNd0KIqjVHkJgrKTa/fKhHo8SoKjxgAYK+czW4h
 o84vwja6HKESa9LZCOyYUsHaHpIzLIZ23Y4YZy+5ytZ5vvCjxIvVH/61PAv6Bm83RcMURo1ASoF
 P5AFYVkTN1ha0M0PpfMJiiOZmZYCw6WRAcGGQgLKvXQwbb+iZUxCQc1+boKAX7JPCgkOwbh0LIB
 UeSIcmzYN0TJ01BTSW9l0PePc2l6T1xAmA1Dg8jQW/l/KWgqAnk1Q9wSp5JqpSXNBxhq0C0S/5w
 8WqWmzaUWUup/7LWf3H0X/OGl5HvZ5ue/JZPjoLT4a2Lhmg5eA4nQlyMVfU7BB5B40McoEY5DLD
 Vt5P9NDFQcfC2Gu8NmhccoatZTqViLLquIrMcTJj9kSxavJ9eu0R4Yaw24uDzQnZzFun4Wvmyda
 CtKj8GEqYWjCBzZmSuQ==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-09_01,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 priorityscore=1501 adultscore=0 bulkscore=0 clxscore=1015 malwarescore=0
 phishscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605090007
X-purgate-ID: tlsNG-42698a/1778288266-2087FF3B-A4D0B245/0/0
X-purgate-type: clean
X-purgate-size: 1788

From: Denis Mukhin <dmukhin@ford.com> 

Make console_init_ring() more efficient by using memcpy()'s, rather than
copying the ring a byte at a time.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v5:
- fixed memcpy() logic
---
 xen/drivers/char/console.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 5ab3b0de12d8..5cac87d052b9 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -463,7 +463,8 @@ static void cf_check conring_dump_keyhandler(unsigned char key)
 void __init console_init_ring(void)
 {
     char *ring;
-    unsigned int i, order, memflags;
+    XENCONS_RING_IDX i, size;
+    unsigned int order, memflags;
     unsigned long flags;
 
     if ( !opt_conring_size )
@@ -479,8 +480,22 @@ void __init console_init_ring(void)
     opt_conring_size = PAGE_SIZE << order;
 
     nrspin_lock_irqsave(&console_lock, flags);
-    for ( i = conringc ; i != conringp; i++ )
-        ring[i & (opt_conring_size - 1)] = conring[i & (conring_size - 1)];
+
+    i = 0;
+    size = conringp - conringc;
+    while ( i < size )
+    {
+        XENCONS_RING_IDX src = (conringc + i) & (conring_size - 1);
+        XENCONS_RING_IDX dst = (conringc + i) & (opt_conring_size - 1);
+        XENCONS_RING_IDX n;
+
+        n = min(opt_conring_size - dst, conring_size - src);
+        n = min(size - i, n);
+
+        memcpy(&ring[dst], &conring[src], n);
+        i += n;
+    }
+
     conring = ring;
     smp_wmb(); /* Allow users of console_force_unlock() to see larger buffer. */
     conring_size = opt_conring_size;
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 00:57:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 00:57:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304387.1577425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLW0l-0005Sx-PU; Sat, 09 May 2026 00:57:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304387.1577425; Sat, 09 May 2026 00:57:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLW0l-0005So-L4; Sat, 09 May 2026 00:57:43 +0000
Received: by outflank-mailman (input) for mailman id 1304387;
 Sat, 09 May 2026 00:57:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wLW0j-0005Sb-He
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 00:57:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLW0i-00BEJu-Uv
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 02:57:40 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe8667-2eae-0a2a0a5409dd-0a2a450a9aaa-26
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 02:57:40 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe8681-56b3-0a2a450a0019-94a38ff1fd30-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 02:57:38 +0200
Received: from pps.filterd (m0482515.ppops.net [127.0.0.1])
 by m0482515.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 648JUeao525438
 for <xen-devel@lists.xenproject.org>; Fri, 8 May 2026 17:57:37 -0700
Received: from co1pr03cu002.outbound.protection.outlook.com
 (mail-westus2azon11010024.outbound.protection.outlook.com [52.101.46.24])
 by m0482515.ppops.net (PPS) with ESMTPS id 4e1dexqgcm-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 17:57:36 -0700 (PDT)
Received: from SA1P222CA0036.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:2d0::21)
 by DM4PR16MB5459.namprd16.prod.outlook.com (2603:10b6:8:185::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Sat, 9 May
 2026 00:57:31 +0000
Received: from SN1PEPF00036F41.namprd05.prod.outlook.com
 (2603:10b6:806:2d0:cafe::48) by SA1P222CA0036.outlook.office365.com
 (2603:10b6:806:2d0::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.20 via Frontend Transport; Sat,
 9 May 2026 00:57:31 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 SN1PEPF00036F41.mail.protection.outlook.com (10.167.248.25) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.8
 via Frontend Transport; Sat, 9 May 2026 00:57:31 +0000
Received: from pps.filterd (m0373460.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 648LwpRL2254113
 for <xen-devel@lists.xenproject.org>; Fri, 8 May 2026 20:57:30 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4e1j9d0t8g-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 20:57:30 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id LW0VwCgLg8dSWLW0Ww0qPr; Sat, 09 May 2026 00:57:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:Message-ID:MIME-Version:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=ppford; bh=uoMw8oYw+/re4inManVJEtjmN
	jWTs+EgvjkcXbZqY94=; b=V/PxcKPy0z9X+8GyMcekgtLTn1ypvpAnJvvdDx7G2
	TvtOYyL+DLjGO3HJP0cTFjnApR63oltz0SeHfmye2/7I3BubcLZTUJQ1p8JKAlmo
	rJl+C6mVBIodZzbAH9+hvdpezZMDmPfJ5Ex/X1dsjtMZIyXR22xiV0qOQqSa753F
	ZEWv88ZR8XW4PiGu/57mCjYSDAUtTuhLRLbrgIy8VP7mMqGr9NsE4Ax28RnBXWX9
	T+gN5dLWXibscYAYw/GmWZ91DCkygMwBMflbfkfrbZYXLm71xAUNT1ruab1YCz2+
	aRPZhpFH+nNuyMBJJTLHjYDaSJ7onNG0MTQfDwlJCPpgg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=x2X2RQ8SAqTgkxXlv+QZWSVPIw9l5dE1kSNxSZugFJpAoIJYzzy8IGpKXOB1du+b4RJqN6d54NHqrwYw7UN3fR1bnhbW7IvnTf8fO8weD02RB3lhNAaPDzBtIdvVOzSKHxg/GRpYI7ntkLY3ajA0szLGA9mk3zF0TvyUactmgpJ/KaNE/GAetzv+I8LWFiiGvID4Xe9AI1EaXuEp4FiNxnfvYgLnVy9x7Ik2MkSWYBfDmsx/GL+eaLjoi3tBR9fbx535fDxu7S6P0cO74gmnMyO1T6eFgYM/zxBHsx6wIpLnujXTfnx8are4BLqW3minDujtkd69IOpeKYq7f1Wyug==
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=uoMw8oYw+/re4inManVJEtjmNjWTs+EgvjkcXbZqY94=;
 b=UU3kZsavRDeO8cwtxCm0oQc2uAFQlRdSPkNs2w13n9rGXK6K93Hzmo22cXI7FzLVxRQ+kRVVom0ieQ4fCZhGABAs1Zu/YtplwQ8hsQwNkB6vWDZhfFhuqUjSQUAHvwNHxQj0iHi01PA7jCqwupEknpANEz+YQ4fHpwTg0YgH45sXs6d2T3KqlTcLU8DOpbFe/Ye0Uyvg7rPa46ce/Y1LtXw11pgIY2bq7gXPXnj0qIrz4QkRJJ6iTF/eJ+5KbajUjWvczLxqt1da2Ss+uvFCiAnZvFGSL+87eFlpQudngADYy1JRYscKctUPb79Cg1NsouXEfds0WnyLz3d6DduFqg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uoMw8oYw+/re4inManVJEtjmNjWTs+EgvjkcXbZqY94=;
 b=IqdlY62b+EUwnE7ZoGbPHdt1lM0fwBL9vXtqnqDQh7X6yveHv2UBXjEBIBlfmlr8lU4D/wjDHMlY26RaN8I17tFBjYYwfp2naD929wWCMS3RzHdLVd8feBkHwYgD25CeP6LBskDBEbe4aRhGfo131b8oQ/QvVfoipQ1H37TAuY4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:message-id:mime-version:subject:to; s=ppserprodsaar; bh=uoMw8oY
	w+/re4inManVJEtjmNjWTs+EgvjkcXbZqY94=; b=mKPB+s7VNs2iJwxfOcD1qu3
	BaYVtRmaXfhE4ag1e/mdyE+gxswRXwkCzLEvbhw9EMN4RnBFcQ3tdFk0HjoPQX7O
	ARwif9/YPDYsBNLOnJYAcbqeNJLoY/zhW0THiClgByUuQjO1HMvp4M6BGyGlmcTR
	vPcvj1Xoy2HtuqcvnncE1lXicFRz8pr0iINRvvBVKI4+XP6stbVdTUZlHDGnJkVL
	Zn0Fwh0wKZhJccOa3s4Qnd0T9IvGGs3ppzpqiV9xRGZOTRFhrJhhMsjZxpShE1mU
	z2wPYGJSYhn1odmPR+IJUUZIXnFd+42Gm1dyyWCjsg+FEj38aLr9mkHbICIVq7A=
	=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:message-id:mime-version
	:subject:to; s=ppfserpocford; bh=uoMw8oYw+/re4inManVJEtjmNjWTs+E
	gvjkcXbZqY94=; b=nnysrIQmcPVBmKVSZIZZ9AvFTKU5ULBFFpT9OjkScTTc9hD
	58gG+Ioxs4e8ckrySOR+Hns1c2kYsPwa2CAp09VO0j3NgvEzLtleSKoQP5hlRxCG
	p93kmdoFPt1bqxHdcPh6S0tEKteGGVC8GwKeMaSjUxmBStQMhjfm9Ma2564FbUtg
	WgtciWrs2HofgG7DfF3qFTKreQAsQtuIzeOvSoQ0BstTkf+jdfezZ3SyJYuV8ONw
	IxOD/x6xYpLU4A6egN1X3RCbVLd+sOAB9N/sgE1e3257slsqylmm9+7OijgjywUi
	MplTYolML9Ig4g3OAhKCBBwiETZa5MDrlV7qvjA==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: LW0VwCgLg8dSWLW0Ww0qPr
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v6 0/4] xen/console: configurable conring size
Date: Fri,  8 May 2026 17:57:10 -0700
Message-ID: <20260509005714.892018-1-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-09_01,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 adultscore=0 bulkscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0
 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000
 definitions=main-2605090007
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F41:EE_|DM4PR16MB5459:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: e79e94a1-fb6c-46ba-c612-08dead65f2fd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700016|13003099007|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	3ZTDjxSFpUNHxK0Deud2leZtmLKZB7Z4YB5sFZZIFNZZuqfBqH+zdoUT5mAnlC+W3cvre7k/POGO9DRFwBuwd4GaHhrcxOiqgv5JePjS7VgweIEwh6TI0lzkz8Wunu229MaYX9vAwjcT7nMv0DKpL0kBGLaJNZbMu3PMgvRszFirXLfXSqGsZF9aAatrkOpGAiVjr3eI5lkl3rRGPkIZp0Ilvy+RopW1C2SZ5uu/KK3MYUTvN+ubYMOjCu+1G85P5iD7uTR0yVwA+qman+acQ6FIQBFRPTnaPWeRCryLDHHXECZ83x9EQuEXvdKMlnSPJf0t1rdggnyixsMd7SHZSZy7aRROsNzKjmpeEfF8RFslXAiMpjfAxOtToQreSPTwnfVOVbH0OribwgZ5xhEfMmo6biqHzI4hq5+XG8AGKNBLJsx04BUZQ1j3ul8VPQR3oCRhANSAXgCDK1CB3lMDq1QxuB1zJNONtPZBFipxnDrX18SHJmPmgCe//s13i/rNUx0Ff/CHdx7DnsNe1cnibEDfS95+0XQTVhbOips+ERkF6jZuelHtBWt4M8AzJziXm5tote4KwmIWIL6wB3Ee1GXhPdMnsyS5yThj1v5rRlgPdbZLeeKIkfor1hedXWlaGbODkKUho+QNLolUcpyPUK/pMtE8db94K4Pw9YLs/whE5FNMmE+gVL4FMwJ9FPYjfljRgj99jQknb6v6rxP3m4GkKK7qtU1BD5uNyviJRyZR0EuwfGva0v1S9sZf8NS1
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700016)(13003099007)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	+HQf4eO5mrWCcXJ0Rwr8jYKAlcmyNOfFkvtslPIkALGT9ai0KG235vp+nUiRHhotCHy//tSTOTivLbF3jHtQxCp1BNWQV3V15Y+bPXHQqAZNuXOkFl06eeuMzqr24p+dI7t7Txt1N4CKjqEqI1sFt2HKiVCawzqBWtUQk6D9K3ufK0oqh9jqNgS8XxHCH4xrjuZs0b4yoklRFQiG2WnQ8i0jLUioqjFhhjgwm3S++KRj3DdYmSX4yYGblhupY+7lyZ9n8AqUq/Z1YrNGYJ4Z7sqef8VHk7L17FvBhd724owmu6OBXXf6Et15l6Mb4h6eeZqfAMXVM8IBYwgtwdiFwu6vM3bHgga3DY2cmYkwxpJMuyDCVfEh9H9A5tF9uoJps+AOtXXLYVUTBnarDgCSBTLEDrqKaDOoWVOI3jDd/KsjIt6ju8+vjlWjrGgGEiNj
X-Exchange-RoutingPolicyChecked:
	jXoyGK91MtOmqX7ZCu5AYDOLh7XgiF72zX6QI96rNdZwgHv7nZv0q17mQG1Giyxj5XGJgwHTEHjp4mMf5J0Y2FwM/JSiTYjm1Lz4VkiACgPSzzPRtMk1Pyg3SlzWcr4EITry4t0wvVaQzly83K2/4+sibPNHiuiwSMiCoM48vdAlqinsDkBAuEZ/J4+e0itmUfpIvNbT0UMcL0KWuqeiZL0PMVAiZ0YgRciF0XtRXysO6ofAz+qJRdujzGiA6IhsHG5tm+1RYNLfxJHTsDrfgT0InL3KP/MvrQacrmjOX/J4dnQSOj0BlbJ74Sp/dYuYrhBLRRW4WIzmUCNwUajokw==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	l3EtDdhlDJsYzDe2BOiHRTVQbv5saPwwFeHbViQYN9pT5iRWwljUlV2Fp96iW5XZQetfr2Q+3iogaZS7pHIrTXqJQ4JXCU70aiaBtVd8RkzzJhYgKo/Ul2N+0ygymWShe+tYOY5CCuHs8dPZVNpbjOiD/iQUTjX9aMcCTTxBWqNlYBzQk/DY9US3qzi0xro6PgiWI039aBjxUH4qksnSEtW889lsu2stEcaH+e2XuvICzry6OHtETNlZrkpq4KX/67bn4iZim3LJOoXkZZ3foKNBvP6PYKjkI9/F+1FdNHC4gVQhDXCPk53D80iI0rdFD1543eaNEf3Fuq3dO+oLD3eSisxCFwuNfRjeQBeU3GfqooqE9bBWzu15aVoS+UfN4t1HTY7R3438zgizODhN/nvdevIO8erK5QIMhBAPqv5AoiwZQnqnEVpx+e3xBXCR4Nrj1NBx1oEGzv2vxsZltRHiJ5eO5bJjtDmn/sSkeJsQFirG4fpxrGYTBjF8YuIcbpHsj4M1EOomf8nfhx5HCzlozE6my3yo8+tXeNXBPQ5o7TKUbhRYB5TB8XOgF7sZW5Qa3TADIE/Z4mDWhJsEcQR6Js5DekxEWbhbhsbwNDU1lN7OVU5U3mdy5WrcP5OG+/fmFGARmEoRC9GOrCSq5A==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2026 00:57:31.1521
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e79e94a1-fb6c-46ba-c612-08dead65f2fd
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F41.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR16MB5459
X-Authority-Analysis: v=2.4 cv=dLqWXuZb c=1 sm=1 tr=0 ts=69fe8681 cx=c_pps
 a=J0oTDZHsw5jmD/+vARdUUA==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=0GA0A_IKJoUHBEAzNTkD:22 a=VwQbUJbxAAAA:8
 a=cbNQJ9GKAAAA:8 a=tHz9FfFoAAAA:8 a=p0WdMEafAAAA:8 a=9Tw_VFh0EWTJ7hsjlrQA:9
 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA5MDAwNyBTYWx0ZWRfX4xryv+RYF5Js
 ovOFY+FAiFa1Cuuz9zOLATEke6O873DaUs1O4Ksj+6sK0Z1czxQvBaOVzg3s/zrHI+VRj48tc2m
 97zJppAGZD0RfDVO9aQnAZudwGDCx9MhyheRLK0pnWQFcVVgWrIQR9fimZlhaukWPk2yLjipZqw
 Mz/MYtfM/gLQBoaJDJexZTSje0JUEeNEaxgZk9kETWQG9mPcEWG3O4/ZB0OzmPuy4+xT7lii8dr
 g6ykUEgl5dFgwDT8bXegJv644Ieg7EdTP4le8c1zzzDC3SfLChN1dqHbR9PTYW653NSxX8ucysY
 zkfn1s4HkPNfWKn7VIpJDzhx+zDol1RJXgwyxnydEdzRdcF4gheP9buBfosUgyWC24WwO5a+9Zw
 MkbEAXMISgNM0LYqQockT1RNssd1/v+4dcMOEkiOVqhRpVG/qrVMaCi6n8hcWT7tG4wFFsaVrcS
 6Q3I8U+IuBgWovynzPA==
X-Proofpoint-ORIG-GUID: Z695j7cGBsMqida2ff6hOMAhCKmv3ytN
X-Proofpoint-GUID: Z695j7cGBsMqida2ff6hOMAhCKmv3ytN
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-09_01,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 priorityscore=1501 clxscore=1015 phishscore=0 malwarescore=0 adultscore=0
 impostorscore=0 suspectscore=0 lowpriorityscore=0 spamscore=0 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605090007
X-purgate-ID: tlsNG-4011c0/1778288260-7FF798B7-7E208F0E/0/0
X-purgate-type: clean
X-purgate-size: 1157

Series introduces compile-time configurable conring size along
with few cleanups in conring management.

Patch 1 introduces CONRING_CONRING_SHIFT to select compile-time
conring buffer size.

Patch 2 updates conring{,_size} annotations to __ro_after_init as per [2].

Patch 3 optimizes switch from early conring to permanent conring.

Patch 4 update the conring buffer allocation code.

[1] Link to v6: https://lore.kernel.org/xen-devel/20260205013606.3384798-1-dmukhin@ford.com/
[2] https://lore.kernel.org/xen-devel/1a5ed8ad-0cc7-4e05-9b9c-cd6930d9b9ea@citrix.com
[3] Link to CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2511597097

Denis Mukhin (4):
  xen/console: make console buffer size configurable
  xen/console: promote conring{,_size} to __ro_after_init
  xen/console: use memcpy() in console_init_ring()
  xen/console: switch conring runtime allocation to xvmalloc

 docs/misc/xen-command-line.pandoc |  5 +--
 xen/drivers/char/Kconfig          | 15 ++++++++
 xen/drivers/char/console.c        | 60 +++++++++++++++++++++++--------
 3 files changed, 63 insertions(+), 17 deletions(-)

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 00:57:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 00:57:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304388.1577431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLW0m-0005VK-2t; Sat, 09 May 2026 00:57:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304388.1577431; Sat, 09 May 2026 00:57:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLW0l-0005U9-Sm; Sat, 09 May 2026 00:57:43 +0000
Received: by outflank-mailman (input) for mailman id 1304388;
 Sat, 09 May 2026 00:57:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wLW0k-0005Sh-S2
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 00:57:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLW0k-000YE8-8p
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 02:57:42 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe8610-e002-0a2a0a5209dd-0a2a4505ec34-36
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 02:57:42 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe8684-aaa8-0a2a45050019-94a38ff111ce-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 02:57:42 +0200
Received: from pps.filterd (m0384717.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 648JTfpd2122805
 for <xen-devel@lists.xenproject.org>; Sat, 9 May 2026 00:57:40 GMT
Received: from bn8pr05cu002.outbound.protection.outlook.com
 (mail-eastus2azon11011067.outbound.protection.outlook.com [52.101.57.67])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4e1nc0j8e9-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 00:57:40 +0000 (GMT)
Received: from MN0PR03CA0030.namprd03.prod.outlook.com (2603:10b6:208:52f::19)
 by SA2PR16MB4139.namprd16.prod.outlook.com (2603:10b6:806:14f::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Sat, 9 May
 2026 00:57:37 +0000
Received: from MN1PEPF0000F0DE.namprd04.prod.outlook.com
 (2603:10b6:208:52f:cafe::16) by MN0PR03CA0030.outlook.office365.com
 (2603:10b6:208:52f::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.20 via Frontend Transport; Sat,
 9 May 2026 00:57:37 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 MN1PEPF0000F0DE.mail.protection.outlook.com (10.167.242.36) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.8
 via Frontend Transport; Sat, 9 May 2026 00:57:37 +0000
Received: from pps.filterd (m0426317.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 648LDDXV4098353
 for <xen-devel@lists.xenproject.org>; Fri, 8 May 2026 20:57:36 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4dyxwd48n3-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 20:57:36 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id LW0bwfoEdwlY7LW0cwA7Bt; Sat, 09 May 2026 00:57:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=9Cu
	hYlSXaFfyQQaLy3X2h44EEpfOSp6LjenvqrTCogI=; b=Qrfc/8XfnnWA+WTLT4x
	xisEDeMjXZwk96P12H9AlBLjKoWjMH3B2dIkamaD67z+53z+N7XoZTscmB/nxywM
	HR6iFb0mPP5O96Dg+OFGL465Veceu3myKWYG8ACEoji3RntWlWHz9vJHiGP4HSm8
	C/hiSYUHg09TqnzQMWkumKQcVX7f9x0O+VawxsML+mYM6Ma29kSIVeDaI5NZlhta
	0PI3R5c1dWT4/aQsLVdLR5FCVYHRlIt3hj8dl2DzQ0zkFbDu2LqUNL24H9ohoR3L
	aMSZR3DRtRHJCvBHpnrmz0RGSnzaJu5v/zoH2HO5FqY+RFwKcxQidXqu6iBzFA96
	JKg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PTvCNv6ruVTyRk5xdaGXigKUlBR43GaqpMxhguNMNB5L4/F7EvsmNMkzc1pOSnxuZNAloD2Q0+cUr967IUnnPeNh9nC7eTE15OLY0DZ5kZRfheuEWghkzUtxEaGzjnEOv7oHWVD0ciKKVWJhdyCJc2WU5dufXMgDaEpk2hOYWZJQdSR5ugMbArXvw4Jw/6ORSc3bNnsq2Toqq4oEyIyAh6LYNEU2zP6ulvH6vyj7DNHfd58paadqkLLvXj0ckwDMaT2XMoFKhPSid6cZUwDwxDRxP1hgMqb9R6foqx54SkWbjvZos6jwLDvLTf6Y+XfZzRzjxZSNuxzey5WRX2X3bw==
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=9CuhYlSXaFfyQQaLy3X2h44EEpfOSp6LjenvqrTCogI=;
 b=n1qSkcv5aCA2Fhe0ciHBbdE2J7qHRITwbalNFcw1AKZf1X1f5wKumD2S4OfqU2AnNyuDO1DuSKZngTiMSJqG/Ttn264ojt7hCvbj6gHRYn5JuF0V2PtUvBXR4yslHv8No+TqvzgNzP7dn1VvMtVh+ObdfMBt/KcMwP9TOpwDhKFVRD6v9mKmTeTKdetFEbdwaOeW1Xnd6u/rxahwmPvj2QJFe9lJDpaKWR/qdhC/EM3mGqodIX/FJxTbZ/ETqTDRbeHGUhUGEddb9HvpeWNgnBhvlbY8Y0jsM3sHofvuPL2JKmmkUeJVDIUzd/mdqZWJk0n/IqCz111wh840BKzcjw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9CuhYlSXaFfyQQaLy3X2h44EEpfOSp6LjenvqrTCogI=;
 b=R3GmgWkTT8alrytYXgmm7WLByiRu7TDgQYYnty+sd4iyYlaJTuOSu5OARNJ0t6HPhJAt6hU1V1FCCcnBZo7LduCkLLGdG9Wk5ZLjxYDkHbQVI8lFcQ1iyuIBlKvk4V0RbYSPw1jotGJ2Hi6jqK5oOvU+nTbCIOAG2G1viPybaTE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=9CuhYlSXaFfyQQaLy3X2h44EEpfOSp6LjenvqrTCogI=; b=
	Qf+kL+u2XtSQlElEohz9UXLyYKnumoG9ZMDXec4ztqjLWmaWGJpOGONf99iiTOY/
	PGt/I+wphBi0KLKoSHbw7ULY2ahZTPC7uDKEG1T0aVnRBhTw0fBqGl2iuFx6GFjA
	4Ab/lNH5Jx+MMxCggyIPhUy2ghr4guzY/+rmR49UmDX+XqvOrwedyJVpeb+lZJES
	X9iwmtcku0SF/fALqM+INyxRV45CE9h6D6rXXu/3+RS18JgNyN1tsjKJCLRblXcp
	5bMfPBHjvIiKFoKCIASJ1/l+Aaj8ESVSqg1ykA3GDL12lz6lXI1V2sNKc5tE3bgj
	9Zeh3+7lFuP0DPlLsrJegA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=9CuhYlS
	XaFfyQQaLy3X2h44EEpfOSp6LjenvqrTCogI=; b=Yvn6SrYGLccxO2ZwHNTSnG7
	7YoAWlUqpm9SPNdAj1+z2MWMQ1PZs9XYrDYtV9dh6IggBAfpNbX0zPgOrOkQTIOk
	iVk5SK7kyrmRdakU5xDxRJr8BUedvYXDd7+4uOdjBePaLbtJsnSi8eEVYpyBiGf/
	L/NhtPQHpxC0oDenptc+1SlpQjkwcwZfpy4DM/rhJdXJZbkMBCLQsrOGslGBn8BW
	Zn+bR4kEF7pVmivA8W2TaxzQSHW5BXTdoRDIDiEFqG15kbXJ2FXhsu+RkJ1fLC1s
	z99I3Lkft9AqO65xbwcJ5f8qa2RwS4HEPa0ef1srQYTvBomJ0uSRh1MMIrKsxOw=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: LW0bwfoEdwlY7LW0cwA7Bt
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v6 2/4] xen/console: promote conring{,_size} to __ro_after_init
Date: Fri,  8 May 2026 17:57:12 -0700
Message-ID: <20260509005714.892018-3-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260509005714.892018-1-dmukhin@ford.com>
References: <20260509005714.892018-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-09_01,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 lowpriorityscore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000
 definitions=main-2605090007
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0DE:EE_|SA2PR16MB4139:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 86e856ae-4084-48c6-de25-08dead65f6aa
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700016|82310400026|18002099003|56012099003|22082099003|3023799003;
X-Microsoft-Antispam-Message-Info:
	6kVdFbQK8NKHAuRxjxZYZ408yD2AZ4B9xAIwdNTBqlpb03eGivYpeS9L2EnCuO2Uf0DzOiybLSVAeDfiKcxzl8N4CHjblcjk2XVxjxf/R7s7pOWAbntmgxO1h1mckS3dIQcKNtorcY7aLjVxO9YjXyxUpbeowNMIjMI1Lx4h27INlsd64V9+FXJiqTF2o7xggvibwWbeIIBf7OPl5VwS26OYbkgz4Yb8WxS/1x+GIEOgJWj//0xaVf1GATpVa1W/qmQ7pSsMVUYlvWhzVU+Tbrt0iYhEKwZh+gpKURtv6HuTWebX673zT41BB6n6AUcDDoaAUhNk5VcoGItF6uEWwoi9kHqLGAuCbLHUKZXM1cFQN3XLF7GMTWyPofH6jdE1mt/VvuttYU0BhzQ94YwkKFzltPfBXkmc9aXQ6Bqj7BzCcyxA20Wcwx+VwPiso+RQOtfk03ArjbACfpoSKVgbSvWsTrv+PLOCBL8DKsFoMZMebHYajoy5/CIv/aaQ5iRZNsCum0Kb/Tevt8bEhXBjab+XcNk+UUvzYtpNZtj4n/gdw0vv4eXbjwYplJMYB6KblBsy9GsbDXOTLb4XV/8rSzAaY+OcS+GkluqohVleSViMFwc0z3lei7llwVm1O9DZc+jorWGPj0VH0ap0cnwvZPvrlkMcCbxixw5RGxIenFb03kJVMJhBhKdMZseKLCmKLoGTWjqja2p+2rt6l89g9QyCYM7ItOCtqnZKEkUdh+0=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700016)(82310400026)(18002099003)(56012099003)(22082099003)(3023799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	kea7IFUmGeI+SFL6ABAU20Esa8a7ciBNXLBeGHqsEfSEbIQmmXOCDhoirR/r95cr4E3B6wQeg8x473hFIOskKGGHBkfyrKPUNcEcrBZPV/De3TCSGwspfZQviDYdv0UqMOCoQ0V9os/fnLyVxJslDYhkLgAeMl4ZANVlWEVR7uH4VY97V37/5Y8ab05xb3heJ5/luwZZFfOLD4bboUMoa5PqpnuMupqi+UyF0Eou18MZzFe6uZApLiMCBfl9jwTVB8EbkyhxWE1S1nzlfZu7fCyONBXtPT8F8CwMoscZJ3WodbzvR8vDhJWxCOb31i02VunL+OCMFLOwyKkY0tQ/o1Yv+y8Pg08z9p1bOHCq4CVH4BVxRUHkuEbIQXB4589RfQg8UtgiZkGp+0qnKQl73l0QmpI4Jjg7pbmVd+2Wd4cFuIQuigKGiG+4Efd3U0Gl
X-Exchange-RoutingPolicyChecked:
	Ov/NieE0G+c7IwG1k/6Ht26QFKN7AjmkCJaubjXBAw26cDUokT1S0Xdyaj+cV/zLME/bBoXs4N9ogn/fSyOgdKMD25BPkTNjjU8AGuCEJ+KnZLp0+f9P3WtHzt09zNpTEaRjHaX9be+lyEcY/Znu5mo5MGbTllZuM2rSz2eBhaTKuIbfMu8ibBpDR1kWFADxzqTf4arkiCYE79cw+uxoUjA1EDBCMsslbIV65zKr+5k+J5ffgUfGD/diqR/2NmNNFqTee8e+fWeV8e8JbeperU+46XHWoX17NX0Moo+MnwJZgNcfm0wB5n2ctvnbi5s42RDw9Ip8hGTsD+NUCeTxRg==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	GtRDRMqJK/IfSWdzInTvcxW2dEq/J0ojsQY9Hf4s7QrnetTXOcr571gcavr6zhkIE7pOPjRT9PEPhoc6LJlurjmJ/gh0fgFAU+V/GSu7YXwXznEARkBnDon+4whGm3+StQTao56bkpFHWzZ28ri7GiUVZB5BTyMV50voy0gTwnb3xVM62VGbt57NwIjfV5+ftzfNTuRy5nQxU0dweyPGWlCBXi51WemE9aZXSsSv0FuTHFNylCOXpcOh81s25ctzVgUCH7vZL6vCad7r60S/8aD7+TFeqCxxTV/Nzj39SU2SfWrmHoV9WlXiEas30JS/bj6Z8B+3j6m+9fxeblLtuG+nWQP8xTeAC6Ezei0MGt1Sk+cueta+z2LZx3hL8DJwGew25eSgYBOePtd1HtXEw8TgbwOgYdpO6a4nogjoLAuw8gQ5u1smxQv/rF4k8dIO/oNh0VP0JjQrWv5w7TBoPOt83u2EURCr41yIqQbfT1oaWTVemrzyDreZaxxDibzFTcmd3wfCj7lmQzPu2eeaBwLXybgpNqoZL6D1HmggJctXy93Lp3Al+wlHiZXSWg4cBetmaab2WwlikR2BT1niZhcRz+vB8YSgdC2OvQHnEc2GoYH9DxjCgctQLRH+vcysDeKmvGwfKSvPZ/isFFExjw==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2026 00:57:37.1782
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 86e856ae-4084-48c6-de25-08dead65f6aa
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0DE.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR16MB4139
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA5MDAwNyBTYWx0ZWRfXyrsNRoSobnc+
 rnWZDGqGA20S0vdYysmI74JDo5rtp5YlI2UCHYx2WyERSgNlUT/NDYTyi8cNA63v0+LUyINKLXV
 hOPO7jBvQxAoA+PlARhE3hDpyFJQXF7M+FzB1SSKo1/oTPsSWHaMciGioDS7TBTaCF20HdghyuA
 8mdLWGrNsW/rbMWCOGmRESuJIsNP9U8KQ+dd748qmAeNURy50frGG9bOCS/Z4+NP2vmGs7aBmeT
 vaFpQIz7kZF+VZGDjkfMGNk8Xi5vgVqRwiSb09PU4Oluy9O1s0V5ViY3xcwVO9CKOc+En2kioAh
 0Jng6TOx8PCY04WOVBfQQSfKdYpRQo7ftvHMcMicRcIUnex1tzeZnK/TGcud8ha5Y1VjBRccHfI
 nVtHo9s08XwD/73aSPQ7JLm1a6Ve+M8iK+D3ZLBOkU1ki1OUdwsHpgryNVCEo1YteTUnDftGEuN
 ENe6CnxkfwZB3dBB3zA==
X-Authority-Analysis: v=2.4 cv=YuQ/gYYX c=1 sm=1 tr=0 ts=69fe8684 cx=c_pps
 a=mt+QW+PagoHSMqpqf5GGBw==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=AHe91QgOk3R4nFVtG5At:22 a=cbNQJ9GKAAAA:8
 a=tHz9FfFoAAAA:8 a=iox4zFpeAAAA:8 a=KJnTikxRzMM2nk4UrzYA:9
 a=G69WFyCBNqGPyalROSdv:22 a=WzC6qhA0u3u7Ye7llzcV:22
X-Proofpoint-GUID: Y_sY-X0Qah1Koq8UkQZr9CA_NywAZoX1
X-Proofpoint-ORIG-GUID: Y_sY-X0Qah1Koq8UkQZr9CA_NywAZoX1
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-09_01,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0
 spamscore=0 malwarescore=0 phishscore=0 adultscore=0 clxscore=1015
 lowpriorityscore=0 suspectscore=0 priorityscore=1501 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605090007
X-purgate-ID: tlsNG-c201ff/1778288262-D3563443-789F7921/0/0
X-purgate-type: clean
X-purgate-size: 1570

From: Denis Mukhin <dmukhin@ford.com> 

Both conring{,_size} should be RO after initialization is completed.

Change the conring integer parameters type to `unsigned int` as required
by CODING_STYLE.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v5:
- used `unsigned int`
- added Jan's A-b
---
 xen/drivers/char/console.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 522b2f489a53..5ab3b0de12d8 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -340,15 +340,15 @@ static void cf_check do_dec_thresh(unsigned char key, bool unused)
  */
 
 /* conring_size: override build-time CONFIG_CONRING_SHIFT setting. */
-static uint32_t __initdata opt_conring_size;
+static unsigned int __initdata opt_conring_size;
 size_param("conring_size", opt_conring_size);
 
 #define _CONRING_SIZE       (1U << CONFIG_CONRING_SHIFT)
 #define CONRING_IDX_MASK(i) ((i) & (conring_size - 1))
 static char __initdata _conring[_CONRING_SIZE];
-static char *__read_mostly conring = _conring;
-static uint32_t __read_mostly conring_size = _CONRING_SIZE;
-static uint32_t conringc, conringp;
+static char *__ro_after_init conring = _conring;
+static unsigned int __ro_after_init conring_size = _CONRING_SIZE;
+static unsigned int conringc, conringp;
 
 static void cf_check conring_notify(void *unused)
 {
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 00:57:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 00:57:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304391.1577457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLW0s-0006Eg-3h; Sat, 09 May 2026 00:57:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304391.1577457; Sat, 09 May 2026 00:57:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLW0r-0006Cy-V3; Sat, 09 May 2026 00:57:49 +0000
Received: by outflank-mailman (input) for mailman id 1304391;
 Sat, 09 May 2026 00:57:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wLW0q-00067L-GZ
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 00:57:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLW0p-00BEJu-TW
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 02:57:47 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe8632-2eae-0a2a0a5409dd-0a2a4502b864-36
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 02:57:47 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe868a-af86-0a2a45020019-94a3921705c2-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 02:57:47 +0200
Received: from pps.filterd (m0367126.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 648JTV4G704841
 for <xen-devel@lists.xenproject.org>; Sat, 9 May 2026 00:57:45 GMT
Received: from sj2pr03cu001.outbound.protection.outlook.com
 (mail-westusazon11012066.outbound.protection.outlook.com [52.101.43.66])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4e1fcnpf6h-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 00:57:45 +0000 (GMT)
Received: from CH0PR04CA0098.namprd04.prod.outlook.com (2603:10b6:610:75::13)
 by PH0PR16MB7135.namprd16.prod.outlook.com (2603:10b6:510:38d::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.20; Sat, 9 May
 2026 00:57:43 +0000
Received: from CH3PEPF00000010.namprd04.prod.outlook.com
 (2603:10b6:610:75:cafe::d2) by CH0PR04CA0098.outlook.office365.com
 (2603:10b6:610:75::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.19 via Frontend Transport; Sat,
 9 May 2026 00:57:42 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 CH3PEPF00000010.mail.protection.outlook.com (10.167.244.41) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.8
 via Frontend Transport; Sat, 9 May 2026 00:57:42 +0000
Received: from pps.filterd (m0426317.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 648LDDXW4098353
 for <xen-devel@lists.xenproject.org>; Fri, 8 May 2026 20:57:41 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [44.208.76.22])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4dyxwd48n7-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 20:57:41 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id LW0gwpjXNMM0lLW0hwt9Ul; Sat, 09 May 2026 00:57:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=QYm
	8EAry6WG8/+zkqrDQqEF0fU/zew7ZJhkCv6bfAns=; b=JkxXdL369QbapykPgYI
	EgQXFGYOYeiOqooneYfQXwmTQh5SD3KbpScly2l3OH7gx7+Mm0KJy98PI6d5YhcH
	PO2Z5KOY6ZxTV5tXzHpXpIZMUj6sBDVCMOYWm1UoR7Iw/qjuOQZ34l1yop2rA3mb
	nLoixTCY3PMQAHfHERI9Yt2KRfKNBAFmtrsR+QOa/sMJN4XE9QTcBZCG8S1R6wcx
	/oSW0Wj7tI9SPMG+hLvTV5f3iWMYeziwGrRN3pORZcLF7YPNGPHL8LgP2a76V4F8
	EuOBbOF4tmgeHpwbi+jWuJG3BHpaFvPI1CrQNvQpmgoX20oDK25Tz+oaO1T4/jVL
	Qlw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xBah3hE6FUezzwxApmOYVTnuPz+RAapmDqurdg7guGv9q1ljDEM7DuC1eAQBuvRehoQzRbgqR2gBbOmEG+FdkBfr7bNp3bTOH+UyxFShZCMWL6Z98CwM5SRwoM/w2j+8zi9iViGDxYxv479zDcdjCSjXOxERTdOMdlodMUTdQw6JZSsSK47UPYeYYo7gOzdECFnFwmvRiuICUVjIQazF+52bhUvfQpMKq36KHV2SLGp48TD5T1/ODVzWBZYPiIHrCYyTGK7DoXvW34XbYPW0a2ZGwun9QiN3R/Bbrf4PKc1Ohl9oQ9tAdzxrw4SB3b3z+i6iR0jTNim1S3z1hKgS6Q==
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=QYm8EAry6WG8/+zkqrDQqEF0fU/zew7ZJhkCv6bfAns=;
 b=Ip4d7rn6W86+SgtfK2XYX0MaFjgx9WafG6aewBPdnCboG9Ft3TWKxYON/tQJE0E/YHaEfBkjAd7cVxyVSIYLMQBJLIHQqoRMNONfrPVaE/Y8iVK3wzMoMA9SPuZlJrD7vKSXlf1lQ4Xz0m5rtAN1SHXNU4Sjebo/kVGVnOCfu42dFr5U7l3t+1mnWgkUNOI4tM4uMJWjQAQGCHafqAopbf2PpPLfGet7mk9fgpMfRvWKDm99mCnaurYv43CNxI+XruSSVa88HAtXgyj69UZBsKiD+0esme4BbsJpWTdDo/gtN6cTgCSDdD/QYaVsvsCNxec/HdPyrWINbWDn50WkFg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QYm8EAry6WG8/+zkqrDQqEF0fU/zew7ZJhkCv6bfAns=;
 b=fi6LUty4rlMszp3AX9pZhWtM4OFYn5R/gsds9HCbMqgWx2kqXeYTCpQbTlqA7QTCvsXoZGCLm1aCm7Hg8zrpbJJvEZCpLZ/GfsNHL4KTuWOEjBB/P8T+0tPddr4d46zOJd/sVH6/aDPm0/F+wCC5rmOO8s8IcfXfnsy21rKjIZM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=QYm8EAry6WG8/+zkqrDQqEF0fU/zew7ZJhkCv6bfAns=; b=
	M+vRX2TGSfVAPnRwwFTTj0/CHBAyVBK2+v20/YVppuGyj6ZuGh0en/EmeApM8DM2
	sIJsGmGgVkEJyifplO7Cohho1SywdQ4z2lQREv+59U5GSf+84cKfyuqE2HWwgMnd
	eG+1ayBpY+hvvVTR6bLo9p03/nl4VRnuqe51T+bAzB2krrdjxASdGDAg3at/X9Sl
	+D7rRSgwVNXdeU9RfhnXob1pxWpXAazCmhZoQLmVczbLQXKclZwFZ3KE/l8qCqmy
	D/GvEqfVDj4GHnaKUcYjoKYhRuKL4bgffJuDs6RpnnxBWMFnaQIc4JU6xTcMqlMV
	7ESb0OXGMdtMdW0Op7tiWQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=QYm8EAr
	y6WG8/+zkqrDQqEF0fU/zew7ZJhkCv6bfAns=; b=HBNRMUXU7oTUF4iVnThgCYg
	wzbwkxQouy8MvOnJYVaU+hXCbhr7B6HSGV6FUKrRXCaVJGkkeeTjKxRZIDJfYTiA
	s0x96pOj9vUFQJUMy7IgcNENwLOuTFGakw+TjFeqchu3bw/qbAH8R0XZM8r0jMWo
	KKTFXiXxamvwuy2P/rjMcHdBOw2n5/i8ATtywOiLEWOJrlXnIlX9zTKKhrQ8I6uG
	rwHhqXgtmhQlUuaYXeosHnaA744hHBlzaJZt6c8Hav45uAK4gDVdOC90pQauiJ42
	eOIesgZfEtcHM0Bw7KWqhuCWg+d++T+QuTUZmllsi+H7/9XUeTPJIH2qQGoXzFw=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: LW0gwpjXNMM0lLW0hwt9Ul
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v6 4/4] xen/console: switch conring runtime allocation to xvmalloc
Date: Fri,  8 May 2026 17:57:14 -0700
Message-ID: <20260509005714.892018-5-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260509005714.892018-1-dmukhin@ford.com>
References: <20260509005714.892018-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-09_01,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 lowpriorityscore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000
 definitions=main-2605090007
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF00000010:EE_|PH0PR16MB7135:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 98321d86-240d-43cc-06f8-08dead65f997
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|3023799003|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	NXu5i1Bpbi+l6apB3xZ68UcMIoU+WIvXjuwwonEDtUGahOaqsDXkZ5BwKs+eqxBr0E2KPOsEq7RJWq4OGoEsSZfiX0jKqAFn0CsfsC5JsstwIlyJJ0oJCyATUzz5kB/lxp8wWkGtYwYaLOw/eODAS4uPtbIT7bDRA4or7ZZHmpCeGs5X7dm6/vblY9u1zHNAh55OpNdalMcjGfd2wlJLoh1bhH6DTYmO4DtDvp2h1woxULtE2lT1oLBIdpQHKfaaI5HswwcSwlJaGTdJyL4o+94Pat5gvpIN9CEGCWBr8LCopXAhsGt/RidH/Kf95cn0KAPfqjESueBE41I307Pcq6QK5fv3SfYhauJvPnjx9dGB+53oaj8U/shXG2Lh10iFdOyppNkOl4YVmDs4Pf5CDk/tMX9WbSUG1F2ykvYpfFBX0oOmJQdQlQ3czYd21QjMcbOnKjLn/DcLlQZGMXizzh+e3r4HYeVGSxausItvVhjz3zoUsb/tin63SCwX3AzDBASAv5qdL+hwAt9cSecVB/OrHldVSEA2PlbJUtXi96qw5J5N35k22Af1YC07vtImnV8uQ8aKnt1mLJbfvFk0UVLItgb+8gEZHmwhRyin7x1fUwzIW8b7lsT4TdQZE/t3TaL+sDtnblXR7OlZRTYSbPjP2NKZloSXyMFIFEtQ/VfKdju3CPw2qSx+l6vQxQSf7Eblql9wkhQMSAvJZF7qmsubpPQhTtyRWXQUpNpwfOo=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(3023799003)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	cvBLFj5q763Z+5bOkodq9O/DuEeq3T33pzBAqARFKowiRJR2SEt2m4JUgcNyB1bme0icuztDAmlldZkqlfjlmsA28X91uPIFQH0q9KGBCLDKJBaruPNY1ad8TX4j0QHhVCdBN8D0b/mFCscP3lMAIiEdOdZrtF3fNJtYBDmuTb2mCQ2GuRYLBY2/z4ttWFldtNzKd6uq9JYpWb/xS+eSF59dyIhjyIfDcnVAI9vKpJbRXvA5RTSXf132tcrI4Sv4SYfMetsbVH25wqiM9TRQV1TVVmuN2jMWA0UgYlVXpvXfoyWuSnM9TAtRi3Nr2L12kJa5pT5k1uaiVcjx846hJUVYNOodlPuppGfTqPXl1rCz3Tx3SlmGjOVAScTM6zVo8GbtmEiK5mwuSqIDItFc2FRuCuOAhqDV0btqwTxMe7QfGBHzRMhxaBQ3jRpXDbQ7
X-Exchange-RoutingPolicyChecked:
	aMg45yWi5xhD/LI/LrsR4RcWj4byK04ELBpPrownMWXD9/KFAkixEYuEWL3HyLSCItt3eDxK8ZcD2IM268AsqxH9bxtcPgbT6SHp7h+yVbiQ4+EjGkNZSvQTgayHPlCdtrLbqLP5QoZTcfViKZ86slNJXdgICdiWCrLvVE8nwYgWv5xm1p7D2UGm0m7rZGRTSEHeeVHRa9XLIqcEg7pyuRZW/cugjgYL/d0UAzPv/y7Qd/J3AXSLWRT1o8wgqg9dXAJxaEmaeuCiIeBezefbD3R6A5sVg+OOpi8bxD3mDccyw9M6gEKbKDHNp1y31lSEGIevTymzxDmBzRS6WzlETw==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	fDt0TKX7+G225770N5T6DD/c3xWGBJ5xADTiLpe66243PFL8tF+fvipscyt4WbwJU31tYcbyqKYD6X0W3V8Vlv27rU4g1bOwBXIT3bB/vo868I6yViOaiwGa3qWX60yT4zYYjvb+imVUjAg4fVt7AY5LekY8peGjnHauFUQaAMDE7wINtDTCLVfgACA61UzABDyEKk5wHp3T0noRt/v6vXyZ7X3lcZN/nQZCo7pGsNxhuxQn2KOqfY7ndbScQaiPLbZ9dL0H9kYQUixdEPJ1d4DXDnxDDD31UGSa888TwMkOsfQ1R/DERY+1UyXsB9IghCAoeBHi3nkGVSAl37HBT82c5yNvIaRfQiV9aH2doy7FX7zbtMoxyGrjfljFEh09YOjFp2fvGaJjcrL9LcznPEWaxkakVF1VPthurYaD4PAXMULq5BgXI+VK3e6G7wzg98fu6yIJDXFuBQfr1u2kv+VmuSwQHsADEluLOwn5PZlt2zSX+bnXIg0iO4DT7XlGdfueaDrVP4QZ6RrxTztBofejO2pap/Rj9/hxiv6Wdz0tBhRsjenRSjjifk1vD00Ay+S0Q6J9M3WgWAUc+ZfiQNYhB5p2v1wM78bkx9l8+vrbTkcyQvNfiIB4qLEDvRXIOhLpoxazZ9tmBz+aW7FU4w==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2026 00:57:42.1672
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 98321d86-240d-43cc-06f8-08dead65f997
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH3PEPF00000010.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR16MB7135
X-Authority-Analysis: v=2.4 cv=e+s2j6p/ c=1 sm=1 tr=0 ts=69fe8689 cx=c_pps
 a=yPbt1s1ZvotafXW9/QH5sA==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=-OawqTZBqJjt90xPb8wn:22 a=cbNQJ9GKAAAA:8
 a=tHz9FfFoAAAA:8 a=FS9jIqOaDyTR5aBss1MA:9 a=3whSkbs7g9Me0DR5EJEX:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA5MDAwNyBTYWx0ZWRfX2Yw9ML7cyrrm
 OcMLE8Yh7gIAxgK4WzX9Ch48GFk7eHMIFW8QcL/zQHyd7UDedFxb/t4nKkvDmwi5SwZjShY+/pW
 adTnxVOj0/oCthFtYQCHMHO/3w0j05BzpFW06RSBZfn4JyVfExRE7XTq5fH6OTgOOguu3brWICJ
 Cqh4tkVnIG4qy6qNxxMNBn7PdcNUHaAQLHehawwk2W3PxCoDvicLr8ltkROHty2VEOXVf9wyx18
 LEYyLEl7XaJTj8Puh3RLzdv7rTgYfH4GhHa4D3mU1lCtgLKxcEQu6ReN7d8YrQuO2DAsi7weFUd
 bYqzietAcYSH/t3ACAsH45hsGFIqqgBvVKdF1Kar7+eljRML2TCX2XG/Yo0V0usT4XRh6t6IB9y
 xBljLOggFahltKvB72WCJv5QzkiifUSZAgu+Ksyj1weg0sIrJzNGe9NLS20jWLsTKYgS1JvGnuo
 GeTA63PXTIgdEjGbLnQ==
X-Proofpoint-ORIG-GUID: n05sY_7FcK_XUK5qGGydE9NoG03faJ_Z
X-Proofpoint-GUID: n05sY_7FcK_XUK5qGGydE9NoG03faJ_Z
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-09_01,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 spamscore=0 bulkscore=0 phishscore=0 malwarescore=0
 clxscore=1015 adultscore=0 suspectscore=0 priorityscore=1501 impostorscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605090007
X-purgate-ID: tlsNG-720697/1778288267-AB563161-EB1E07E5/0/0
X-purgate-type: clean
X-purgate-size: 2767

From: Denis Mukhin <dmukhin@ford.com> 

The console ring only needs to be virtually contiguous; it does not need
a naturally aligned or physically contiguous allocation. Replace the
runtime xenheap allocation in console_init_ring() with an xvmalloc-backed
buffer.

Also clamp the user-configured ring size to the supported range and emit
warnings when the requested size is adjusted.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v5:
- switched to xvmalloc_array()
- fixed conring size checks
- corrected diagnostic messages
---
 xen/drivers/char/console.c | 27 +++++++++++++++++++++------
 1 file changed, 21 insertions(+), 6 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 5cac87d052b9..29b9359468e7 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -33,6 +33,7 @@
 #include <asm/setup.h>
 #include <xen/sections.h>
 #include <xen/consoled.h>
+#include <xen/xvmalloc.h>
 
 #ifdef CONFIG_X86
 #include <asm/guest.h>
@@ -343,6 +344,7 @@ static void cf_check do_dec_thresh(unsigned char key, bool unused)
 static unsigned int __initdata opt_conring_size;
 size_param("conring_size", opt_conring_size);
 
+#define CONRING_SIZE_MIN    (1U << 14)
 #define _CONRING_SIZE       (1U << CONFIG_CONRING_SHIFT)
 #define CONRING_IDX_MASK(i) ((i) & (conring_size - 1))
 static char __initdata _conring[_CONRING_SIZE];
@@ -464,20 +466,33 @@ void __init console_init_ring(void)
 {
     char *ring;
     XENCONS_RING_IDX i, size;
-    unsigned int order, memflags;
+    unsigned int order;
     unsigned long flags;
 
     if ( !opt_conring_size )
         return;
 
     order = get_order_from_bytes(max(opt_conring_size, conring_size));
-    memflags = MEMF_bits(crashinfo_maxaddr_bits);
-    while ( (ring = alloc_xenheap_pages(order, memflags)) == NULL )
+    size = PAGE_SIZE << order;
+    if ( size != opt_conring_size )
     {
-        BUG_ON(order == 0);
-        order--;
+        opt_conring_size = size;
+        printk(XENLOG_WARNING "Normalizing console ring size.\n");
     }
-    opt_conring_size = PAGE_SIZE << order;
+    if ( opt_conring_size < CONRING_SIZE_MIN )
+    {
+        opt_conring_size = 0;
+        printk(XENLOG_WARNING "Ignoring too-small console ring size override.\n");
+        return;
+    }
+    else if ( opt_conring_size > GB(2) )
+    {
+        opt_conring_size = GB(2);
+        printk(XENLOG_WARNING "Limiting user-configured console ring size to 2 GiB.\n");
+    }
+
+    ring = xvmalloc_array(char, opt_conring_size);
+    BUG_ON(ring == NULL);
 
     nrspin_lock_irqsave(&console_lock, flags);
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 00:57:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 00:57:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304389.1577443 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLW0n-0005sx-DI; Sat, 09 May 2026 00:57:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304389.1577443; Sat, 09 May 2026 00:57:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLW0n-0005sm-A1; Sat, 09 May 2026 00:57:45 +0000
Received: by outflank-mailman (input) for mailman id 1304389;
 Sat, 09 May 2026 00:57:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wLW0l-0005Sn-Ej
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 00:57:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLW0k-000YE8-Rb
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 02:57:42 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe85dd-e002-0a2a0a5209dd-0a2a450cbf7a-44
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 02:57:41 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 69fe8683-62f1-0a2a450c0019-94a39217d3c8-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 02:57:41 +0200
Received: from pps.filterd (m0367126.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 648JTU96704811
 for <xen-devel@lists.xenproject.org>; Sat, 9 May 2026 00:57:39 GMT
Received: from ph0pr06cu001.outbound.protection.outlook.com
 (mail-westus3azon11011015.outbound.protection.outlook.com [40.107.208.15])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4e1fcnpf67-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 00:57:39 +0000 (GMT)
Received: from MN2PR14CA0014.namprd14.prod.outlook.com (2603:10b6:208:23e::19)
 by SA1PR16MB5690.namprd16.prod.outlook.com (2603:10b6:806:3d7::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Sat, 9 May
 2026 00:57:34 +0000
Received: from MN1PEPF0000F0E4.namprd04.prod.outlook.com
 (2603:10b6:208:23e:cafe::67) by MN2PR14CA0014.outlook.office365.com
 (2603:10b6:208:23e::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.18 via Frontend Transport; Sat,
 9 May 2026 00:57:34 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 MN1PEPF0000F0E4.mail.protection.outlook.com (10.167.242.42) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.8
 via Frontend Transport; Sat, 9 May 2026 00:57:34 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 648KjUhP4003054
 for <xen-devel@lists.xenproject.org>; Fri, 8 May 2026 20:57:33 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [34.209.42.160])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4e1j94rstd-2
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 20:57:33 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id LW0YwZiQTCO1sLW0ZwwDBo; Sat, 09 May 2026 00:57:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=Fd/
	cvDA7hUY/F2AucVo92dmDuZ0icoSx7MoWE0cO4vQ=; b=IaWti8CPMQI+PD5vswJ
	59fItcgkmx6WCp88zOFKMQFrehQ3ee31yIiGC6Qu1iS2n1xF+sBBcqNPP65a8Pxa
	l7R6lN2xLncal+PPiidCPanw/15RgnvNkkMoZhL/D1aRqZK0jOr5gx7pY5HxaYUN
	TNAyRJO/hmOl2YxSH/OFsSwgbWe6PvKXM2RdY12e7e8PYoJvmp5VSdDsSf+ELsT/
	C8cX8ZvXFRDt8/+XvIXlk6ph84ALfO9GH1DiXoXCiHdBlNQgfkmZnzR6a7UY9VrY
	atrQasyMFjGXlSUNX4R8arV1JXf4zFADmAy9z8MRxjHyefiDLHCfIiFG2HbuA7WQ
	CWA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uALeyOANVEKTdw5OCx+rorWo80ToRKtAq8OskWajJtNHIUVjn2fP+CUTkTVqpsS9aS4MFW2AQpy97P/nax39fe96jD8ljKb1Jt6JzFDu7PJtEc5CEw5+uKEfV/CeNqTS+TB6dyp9TrnspUu+taa0MFTGjVKLmiXT9cR6Y/eS8RRWCuuuMJNSSXQAhva5GBFrymjbMyNv/324EGM0TABS6xOChwOenYgykQ+nnGh8e2W5E8lMynEisZxqErrqkR1vpITjPpd6X1eNILUtpRPuA319llbHElZAHVqUdIrcrgYpOvBUL0VCsEQ3oQF/26sI8hk85IdBscXsy5KvwX2H7w==
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=Fd/cvDA7hUY/F2AucVo92dmDuZ0icoSx7MoWE0cO4vQ=;
 b=UmmYFwGIoCSfjn/nV/N42+rLxsYgjDB/JHBBVZ1qjvsexKrdbLe6Ca4LuQErGjgWwY/oYQAhoBEldYZIJaaSVZSgavKktE8XaAF6nrKVMKUZwW1l1Gvu4Q5L4dkt1n8MUA2zRVctY8+dgIJYuVZ025ZgFcmBZxtV3eDjXbQnH/GIDAoXjAxrvG4I/Of3b8n2W/cxushPVsYxDWviMoEBld6aIzawFLUxdK1KBKeFycEZsdrBHpKXGXpFyBZTN46nLvfnkT1k68cnY3ZVDrYaVzPjYA4S6lsmEhqmfA6U/64iJ88j09xJLC7k5woiJGtdls0V0BpdNBkdayAIrLO3eA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Fd/cvDA7hUY/F2AucVo92dmDuZ0icoSx7MoWE0cO4vQ=;
 b=NR5+w2Ikafv+RENuAy27QhKiXd5rkHwxiw8aXIPgQHi6cJ9uUxIU49vLgWoedApuqxR9WZp/Jl2zGUGFslai8hIyLe36U86pXriPc7yXxLmu/wHsj8Vo8oXgdCo/Fud4yhD+GoM6nxTbAwiwx3m6jg2ZPIY8rKWroLzRalsgatY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=Fd/cvDA7hUY/F2AucVo92dmDuZ0icoSx7MoWE0cO4vQ=; b=
	dX8KbPfrhPBbSQaidxewQyXtMd3IJDnWdMZ+5p8cO8qmyTB0NhZrjG2E3IT01PYE
	+VnoaSaKp6AUUyOPaaCYou3guzgZ+Kro4m7as4aad0F1Z9OUJ0Poa3sF9L3khrqO
	d4z3WhzXbY3P8P/8boKGsClwy55PgA6SSRfNcHyD0ZxDnZmcvvvMBeNtiGGTDG8X
	jesBCZebuyko+nhmIEHYizdAD9dbBxBe8flDAEHTHiaYnYC4OVhI9AlKkxiCh+cG
	50FE5eeysGBe9sw670MuvJzH6jP55nks5CUijRi0YngK0TphH/6WpfhpIL2YhiZs
	MYqti/nzv7sQit/k3OvngQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=Fd/cvDA
	7hUY/F2AucVo92dmDuZ0icoSx7MoWE0cO4vQ=; b=Y+qHoetsSxI8dymg6iX/Wtd
	CJU9DDBmUxvQaKkTuDEJIJn6ZWgKU7MYjt873PBJhekhlcsPSUF7Wp19yCkxL3qj
	lSsYZZjj7IHx3VOYZ9graVzBB4/ZbPLPEYv8bh0rjjtJLWoDp02nIhGKQ3WTIwB6
	YcU/B5wdAKYrdyjvsi8oYlIeskFVs3WvCjN8Yob0gAmSFBERtj5FN8/u6NLoNM+I
	Ns50Nv2eVjeYgHEAL6OUqIeRXvmKqg/xFnhDlOfnZP1XhvgvNvTt5Q8ah7jmfOkn
	ZE0IS/ayAc8FZPEWuOTsBb138MtjFpSzP4+RLk4ziufVGkl1jyabfd2DsD11qHQ=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: LW0YwZiQTCO1sLW0ZwwDBo
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com,
        Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v6 1/4] xen/console: make console buffer size configurable
Date: Fri,  8 May 2026 17:57:11 -0700
Message-ID: <20260509005714.892018-2-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260509005714.892018-1-dmukhin@ford.com>
References: <20260509005714.892018-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-09_01,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 lowpriorityscore=0 adultscore=0 spamscore=0 suspectscore=0 malwarescore=0
 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound
 adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000
 definitions=main-2605090007
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E4:EE_|SA1PR16MB5690:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 1e3d308b-5413-4296-641b-08dead65f4eb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|1800799024|82310400026|13003099007|56012099003|22082099003|18002099003|3023799003;
X-Microsoft-Antispam-Message-Info:
	G4HFFHdRKbsOTsSOOk8tPF/fbtOhXQVFmsTxH7pOiJmI4UolzSgRyUejNY+PK/6At6mNgqQSRvg6DGEXpva6/0OIxG3wyqeo/mQ5VTaHNLKWVLgo51CTbTrdlDYYC1I7xr+02Hep1uZbyiH0M9Pt7ayljHLWLB0FurHa17n92Fr1lRxB8Vdfu3V3i64MKwIGsMf6qxSv0TXzrfzScoUP4zLZgbVy/InpwXazSVv/D/6Bni60mOe33lxWSX57LofmTfEZKCHJKdk1WQPMsJjDIS6HcvyUOZXVcOIJZwUTEPxj+QXgCzhwJscgP3DfcnuD43xN9H29AT5ePp9k9hM6AWlfV+MnAKVCX63kmoLYF91ZYZUbATTXtga5o49T5DrNXiSnJgAVbsOIagvIG3Qt2ePQEDz3dqB9lKdLutrHULDQndr/rsMQSnNdtibieZCjnepx0VUj+eAc3yYkEEmPwIZoxaUbwJqdzlfiHcsVU+HLQ5IotKYJXVlL3IYpzf6hgfFuWxPRiV0bQ5v3FNcavouGKWjwR7E6bgRES859Rdf1hf8gazBzKVXbk/3Pwh3WV6t+bX/0P/9VzmRXh3isIKtT3exWpMMv11jDKWU7sxcZQBlg+MtX1/9/VWqOU2MevK+DtmvPqpTkXaSxYEmS54rnudAybw2q9f4oNcumtqJc5dmFLIdc0Tg0MbUuV7tfG5ZnrGQIquXX7Sz1cahvdWYSmw4sxHOGkZrqr5NqSNs=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(36860700016)(1800799024)(82310400026)(13003099007)(56012099003)(22082099003)(18002099003)(3023799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Kds82okT0lXpjEk2Hox0Y6TqSfGmGq/Yd8RXQ+R01rSYyTlOqddNj19k0bgA1mP8IHVl+n0Ck20dnQ5RA//7sWItKhsB1OYHl6A6I4hrZAFflBHxiUbZcqsgEfKjyDohUBFYoG4WJjSTc1n+GxBWS6gJgU+za4OBWoZuwzsfJ8MzjJf2gbI0HCFUOjxS0hGV3o4Xn6SKZnGa4J4ivb/cxdC3jfuPznX11MjNgv0rJl4svw0LzDNl1tdfSujhSaide/zz8FIGOiDvm1Y/xrpPTrtJIJsUErGbeQRrH0FjpEXKTbpXbGNQ2de9eJl5SMpAOzRGYZJS9NN/yMy2yw1fBdAW+pjlQJ7yTPhEG1GMI9iw92oAYGcv4ijDzNMXGjCg8pB9QwC9rNolyhTlOvMN2RAP1W6H5V0xjct3Rj+Yn0HT7isZszxq7onbqyCILAGm
X-Exchange-RoutingPolicyChecked:
	Ii0JXc1hCoDzZfYCSsgcO/whuTau8Zvsyv1HDkZkDrFARaHkWk6uLAfJj0SpmzQaI1SjJXeYyXc99X4bKP/32vicvjZv+wEc2JRg9Y/LIECmBH7CKgTymY0KC2A0Jpb10sd5j1iTUoeYVnvaLVHIhtzDHVRGQo15LysvM+JiYDUuHAAi4zLeHFN3zeKL8PlS8RQkpWISQGLr0Xdl0Z8H1zuustH/nWvkeuBQSSzS5xze5Jq01xR5EbmwAf2sS3rlSAIBmYcK3AtepuFXvtX+DE7/JoZ1Yd+qqThruoP33hwzKIPV5aekysYnZY6M0T//YT0+dEscLuMyLeEhA/nEeQ==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	uuNI3U8jGRz0nk6lX3ZzPHUYPlT+6l1JZhHuexdtdZ4ExWlT/aZocv+HvslM4eKpoQKym/8RRhe0L8skIXsfO19OZhlFb1QGHRooC1p2NQPlfMsMOcsxnyzFwygNQNir4XGRTJtnUrdgfELUI9FqgjDaSAbcZd53U12Ootb5XyQiTDMip3boOCTDJzufy0Y9G+nfN4k6gs4AfU6ye+WgG1bTQz4QQAJERrkGCBwIzGLqcyqQbcdakNHBpW3lkJ7nkr7LE4KZg1yN9IEuoAXoEIEOiRCNaF1Td9AQ+Lf0+rRB3107aRJ2Lq7+4QXTIk7hYJmdlN8bl0LSgOnqa9BSyRD47Caltfqsy1Oau/jsKhs28g/ew1Idtp30zeCjWYyt/97JnH3BYDD8RZk+msav+KbFA4VTon7iyPl5aZfhSNT+vizK6KyOyBCl2rFyAQnVkmrMpEbrAAXBLW9QWmdNizyFECgby8JnC3+hwH4iyP4FWkpS/11M0XkvUqxC3R6oKm0EodJ0DTIpuEVtqoc18nFwi9irfsLdh/S3L/snkurM9j6Bju6wW+cDyyUJKFIyUjLm7UOJXx9Z534gQoLaE55MHZKweDEjPIW/st1zbdM5TzqA4TC6gDvGtkLjuqVP5x70tSXq7Al2gUba52nuLQ==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2026 00:57:34.2622
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1e3d308b-5413-4296-641b-08dead65f4eb
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0E4.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR16MB5690
X-Authority-Analysis: v=2.4 cv=e+s2j6p/ c=1 sm=1 tr=0 ts=69fe8683 cx=c_pps
 a=+HTpKnCyMzx6Y2VIV8u7NA==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=-OawqTZBqJjt90xPb8wn:22 a=p0WdMEafAAAA:8
 a=cbNQJ9GKAAAA:8 a=zd2uoN0lAAAA:8 a=-724Dj084dJivNeTSg4A:9
 a=P0bj-C3X3jJDpopQwM1U:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA5MDAwNyBTYWx0ZWRfXxa3M69hwulQN
 fM5h9UcgYteuSOf6s6h2b2Ag1etgf2acKRAzSLgRGHfpndZSDpVYIRJv4KnAm3atNYYX49z3rK5
 3SjtHr+4LCSO1wlrACyvAdKIR8XfO5YgsGbEqAlud2H7AxIhFbzIwTpg2IUqQxJ7BWXQM7NHOG1
 /yfxVQ233If0FO3csNEP6KTmmgQ/iLAUA/SpDaFRAL05aCcgSyKb+MD1fODQt9oqAVM2AUVBNse
 qYx5p2CtCXN26+TX+TzKjxCvhY6/GXF2MFJzaI5toFbt7Si2sZ31HFwnovdmQQGLMKkxcuh3Vyo
 gaMRhqdONCBsu1Gvu35HiWPlhfU3N/DDiRlG6D1A4FUUfvnQ1Gz/sKvdqcH2ksV9R064meHgUgR
 plKvnmNTforGgbk+AL3RVM8fLHJz9UYneI6DTiwTglGbVi3+14goHlaMPO+mTcBMhrXT1x2dCn2
 gNyKoxeOHpDzKzVY2hg==
X-Proofpoint-ORIG-GUID: K2vXNp7tyxJwT0fZCoPGk7vr7JiqexvW
X-Proofpoint-GUID: K2vXNp7tyxJwT0fZCoPGk7vr7JiqexvW
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-09_01,2026-05-08_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 spamscore=0 bulkscore=0 phishscore=0 malwarescore=0
 clxscore=1015 adultscore=0 suspectscore=0 priorityscore=1501 impostorscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605090007
X-purgate-ID: tlsNG-d25034/1778288261-E2577CF5-1BD4C89F/0/0
X-purgate-type: clean
X-purgate-size: 3089

From: Denis Mukhin <dmukhin@ford.com> 

Add new CONRING_SHIFT Kconfig parameter to specify the boot console buffer size
as a power of 2.

The supported range is [14..27] -> [16KiB..128MiB].

Set default to 15 (32 KiB).

Resolves: https://gitlab.com/xen-project/xen/-/issues/185
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
Changes since v5:
- shortened the Kconfig option description
- kept Jason's R-b since the change is minimal - just dropping
  few lines from the Kconfig description
---
 docs/misc/xen-command-line.pandoc |  5 +++--
 xen/drivers/char/Kconfig          | 15 +++++++++++++++
 xen/drivers/char/console.c        |  6 +++---
 3 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 6c77129732bf..29393631d885 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -425,10 +425,11 @@ The following are examples of correct specifications:
 ### conring_size
 > `= <size>`
 
-> Default: `conring_size=16k`
-
 Specify the size of the console ring buffer.
 
+The default console ring buffer size is selected at build time via
+CONFIG_CONRING_SHIFT setting.
+
 ### console
 > `= List of [ vga | com1[H,L] | com2[H,L] | pv | dbgp | ehci | xhci | none ]`
 
diff --git a/xen/drivers/char/Kconfig b/xen/drivers/char/Kconfig
index 8e49a52c735b..11f48415c12a 100644
--- a/xen/drivers/char/Kconfig
+++ b/xen/drivers/char/Kconfig
@@ -95,6 +95,21 @@ config SERIAL_TX_BUFSIZE
 
 	  Default value is 32768 (32KiB).
 
+config CONRING_SHIFT
+	int "Console ring buffer size (power of 2)"
+	range 14 27
+	default 15
+	help
+	  Select the boot console ring buffer size as a power of 2.
+	  Run-time console ring buffer size is the same as the boot console ring
+	  buffer size, unless overridden via 'conring_size=' boot parameter.
+
+	    27 => 128 MiB
+	    26 =>  64 MiB
+	    ...
+	    15 =>  32 KiB (default)
+	    14 =>  16 KiB
+
 config XHCI
 	bool "XHCI DbC UART driver"
 	depends on X86
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index bcd6d261491b..522b2f489a53 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -339,12 +339,12 @@ static void cf_check do_dec_thresh(unsigned char key, bool unused)
  * ********************************************************
  */
 
-/* conring_size: allows a larger console ring than default (16kB). */
+/* conring_size: override build-time CONFIG_CONRING_SHIFT setting. */
 static uint32_t __initdata opt_conring_size;
 size_param("conring_size", opt_conring_size);
 
-#define _CONRING_SIZE 16384
-#define CONRING_IDX_MASK(i) ((i)&(conring_size-1))
+#define _CONRING_SIZE       (1U << CONFIG_CONRING_SHIFT)
+#define CONRING_IDX_MASK(i) ((i) & (conring_size - 1))
 static char __initdata _conring[_CONRING_SIZE];
 static char *__read_mostly conring = _conring;
 static uint32_t __read_mostly conring_size = _CONRING_SIZE;
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 05:07:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 05:07:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304451.1577470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLZtz-0005wS-RM; Sat, 09 May 2026 05:06:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304451.1577470; Sat, 09 May 2026 05:06:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLZtz-0005wD-MG; Sat, 09 May 2026 05:06:59 +0000
Received: by outflank-mailman (input) for mailman id 1304451;
 Sat, 09 May 2026 05:06:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Zhao.Jiaqing@amd.com>) id 1wLZty-0005w7-E5
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 05:06:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLZtw-000QAm-Er
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 07:06:56 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Zhao.Jiaqing@amd.com>)
 id 69fec0a5-5cb7-0a2a0a5109dd-0a2a4504c1ce-44
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 07:06:55 +0200
Received: from [40.93.198.30]
 (helo=CY7PR03CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Zhao.Jiaqing@amd.com>)
 id 69fec0ee-1dec-0a2a45040019-285dc61e0a58-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 07:06:55 +0200
Received: from CH0PR03CA0387.namprd03.prod.outlook.com (2603:10b6:610:119::21)
 by SA0PR12MB7073.namprd12.prod.outlook.com (2603:10b6:806:2d5::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.16; Sat, 9 May
 2026 05:06:49 +0000
Received: from DS3PEPF0000C37A.namprd04.prod.outlook.com
 (2603:10b6:610:119:cafe::19) by CH0PR03CA0387.outlook.office365.com
 (2603:10b6:610:119::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.20 via Frontend Transport; Sat,
 9 May 2026 05:06:47 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS3PEPF0000C37A.mail.protection.outlook.com (10.167.23.4) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9913.8 via Frontend Transport; Sat, 9 May 2026 05:06:47 +0000
Received: from zjiaqing-dev.amd.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Sat, 9 May
 2026 00:06:45 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D76Aco2fN+eH5WXgyTU3cdfSsdhLnQJR7ybTev68wqNUhK5Y7wz7kaprn7vZ37P4hUN0GblIffTIyzm4+nRNjr2lcqpO+yl2yQ85LFNUVW4trGIx9tLTavYg17KeYE4qXmHa5XLyQ6krsMDsLmiJsMb3fBsRDshlWXlfsFM09rIEL6voJsrrYxIDcp9DwwhT/LLxSckuqOeoPbiE3q13kA61hzlWrVs2oixrWki1tKLXD/HSJeM8vd3mMghlqGu6CqCtTjxCEBj+pElEWo9m71MK2vuQ7vo2F41pVamCdlTPQ2gNOdh1CCIWYmeCpil17NCFWfqDHNm4xOLxXLUnAw==
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=VOKg+8L7DZ2nsIB6/+JL5BYj/mjNp6wkTWTDRtxkxYg=;
 b=jXwGHF9dNSoRxRhzJ/XROUnpCNNFEYhsnsoJCEHuvnTG7JFRP4v6ERDi2Lk2e4h7jnOuYhalcYigznpXjrvD7CK3DPSu0H9Fiz8faB3zOZRerg9lxSS6crwNBMn75vLXBI9+uTt0/blYElCiXQmQv12uOPtJKj7J4LsUWt4shmvKMXWYZ3N4sFqQGzlKMf7oNR4UPS67I/U0FEuGlYh3SHBZtjREi34mipiM3zdxAaT4OtYVD9iiiIKpDJ8TvvDYWJcCRPVUllPu5P3ynytAilqj7LqfCGD4Zn/pm6zj4M89zRugcyBxzt/YL8GfPJKAAwg8OCgEWDHdkn/Rd/KrWw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VOKg+8L7DZ2nsIB6/+JL5BYj/mjNp6wkTWTDRtxkxYg=;
 b=5AWRogSbvIfQF1swpeli6y8myMjdPg5iDej+taiudoiTkUzLBFEsL5owN1lp4BVx6toQn26ZuHmg0eEv3RJVsN9dbvfb2yQuSs4lahkLx9NaMdm6aCRDy0Ut/9TxXTnHQ6VbqpXUlBqjRkiBjfrJEnl/cM70uWlLnlFPeu72lBM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
CC: Jiaqing Zhao <Zhao.Jiaqing@amd.com>, <xen-devel@lists.xenproject.org>
Subject: [PATCH v2] ns16550: add support for WCH CH382 serial adapters
Date: Sat, 9 May 2026 13:06:28 +0800
Message-ID: <20260509050629.12043-1-Zhao.Jiaqing@amd.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF0000C37A:EE_|SA0PR12MB7073:EE_
X-MS-Office365-Filtering-Correlation-Id: 6c7621fb-1c8c-4568-1671-08dead88c5d8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700016|376014|82310400026|13003099007|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	AEc1ip/3DTDPCgyUHKkcgY7v7sxWrfww2NYiXmbjl/WyK8/ugzfFQECmF4eveLCxBUakNHx+DaPEeEXYi0GuoBpxIRtM4YOOb3U3Q1GE/aZ/f2rJn3ucwS0Yn+Jngj5c1pglD+AQ+TdX8MXKc7nf0NDDlqFDD9bVmmKRJYfR4CZYaHxNK9CAkIy1kJ+UnRUgBIWX7AQqwbX98YTAbEaoWT6TkTplDJOuOhzxzDAegf+r9nJ1bHiwbQsbIREgBG4D8CbIGkuKM8qB4J2gfkKL2UllP+m1TdiGEot0hLm4Jfgvb27hJkpdfEB4Rx6bm+EOPhHFbzLatDf+tiAuJ8r6JjPLzULpMX8L+rAFJrVZ5UqxGPYSf+lpHyIKW3lXUd4ndbmGUvDSMQoP1wiTU0qAU0Z1djaaFVdtBoSeLX0JI9fc58Tc6ULSg97QcDjtQVhHFNpooi+TwN+fEoAz88zx7hUf1tfpD4fpJBc5d8Tt68Zc+/qO1LWyB2JQqdEgCO2lQdRnKZz1i6Zgnn/lbi6Wwj6Q5/j+crEs6jjSXxsM2DZD8i15kAqJ1h2/a2zL2Y5PWHBmIC4rqJK+jK8sTD8/CCDkur3FyRGRXM6ntc3fJki+HNuunT5jodCKpFikYY/mVPAGJkfLJYduUxdtZPkWBmEUpNmEbtER/rj4BUD59LijIXsKtEjCtjHtRXxrYFa2
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(376014)(82310400026)(13003099007)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	xjps7H6XNUlxQTtwpIWE24kyxMACd2Btv2mlaOvUc3gbyRmh42HNbOPu6Wcj3AgoK3HU6BiWa97SoPW+nUeC339q/dNtH1mnIVxhm9rHOaAqGeFWDizNvJdE7xtaFNHR8VKanBEX2QHer8a7gsEgx10pq96lsD1H9AiIsgzGq0ZwNKkJD9FC5x5RIOkGlKQUxqM4KYYT2xWmg5aUM5Q4R2l7c23XZBduDmeAUmlya0h0xC6bAf5AfG1xeomaOJ70aG1ThzHsRBuxDgBdZQgNiySa/NwchT+BZ5wxeVs8uOJS9XFsxyvBoT6T/9vRmpzCN3EM4r7BLg5pMovgCMu36mXL4m24yzOsDU0yoOH+u7sWQjvc8VjPdx4smVaw2jmg6bTxsj6urWyAcZRCzHF66FMlmYiT4D69s1pP8rIQd4voa/xYHB9ub+BmEc7aU6KM
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2026 05:06:47.9179
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6c7621fb-1c8c-4568-1671-08dead88c5d8
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF0000C37A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB7073
X-purgate-ID: tlsNG-ebf023/1778303215-4197A3FF-1FAA5359/0/0
X-purgate-type: clean
X-purgate-size: 2526

Add support for the WCH (Nanjing Qinheng Microelectronics Co., Ltd.)
CH382 PCIe dual port serial adapter. The CH382 is available in two
variants:
 - CH382 2S   [1c00:3253]: 2 serial ports
 - CH382 2S1P [1c00:3250]: 2 serial ports + 1 parallel port

This chip uses IO BAR0, base baud rate 115200, ports starting at offset
0xc0 and spaced 8 bytes apart, and a 256-byte FIFO. [1]

[1] https://www.wch-ic.com/downloads/CH382DS1_PDF.html

Signed-off-by: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
---
v2:
 - Reorder entries ns16550_config to keep it sorted by device ID.
 - Rename PCI_VENDOR_ID_WCH to PCI_VENDOR_ID_WCHIC as WCH has multiple
   vendor ids.

 xen/drivers/char/ns16550.c | 23 +++++++++++++++++++++++
 xen/include/xen/pci_ids.h  |  2 ++
 2 files changed, 25 insertions(+)

diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index 878da27f2e..cf10a06a3d 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -95,6 +95,7 @@ struct ns16550_config {
         param_exar_xr17v354,
         param_exar_xr17v358,
         param_intel_lpss,
+        param_wch_ch382,
     } param;
 };
 
@@ -861,6 +862,16 @@ static const struct ns16550_config_param __initconst uart_param[] = {
         .mmio = 1,
         .max_ports = 1,
     },
+    [param_wch_ch382] = {
+        .base_baud = 115200,
+        .first_offset = 0xc0,
+        .uart_offset = 8,
+        .reg_width = 1,
+        .fifo_size = 256,
+        .lsr_mask = UART_LSR_THRE,
+        .bar0 = 1,
+        .max_ports = 2,
+    },
 };
 
 static const struct ns16550_config __initconst uart_config[] =
@@ -1189,6 +1200,18 @@ static const struct ns16550_config __initconst uart_config[] =
         .dev_id = 0x7adc,
         .param = param_intel_lpss
     },
+    /* WCH CH382 2S1P */
+    {
+        .vendor_id = PCI_VENDOR_ID_WCHIC,
+        .dev_id = 0x3250,
+        .param = param_wch_ch382
+    },
+    /* WCH CH382 2S */
+    {
+        .vendor_id = PCI_VENDOR_ID_WCHIC,
+        .dev_id = 0x3253,
+        .param = param_wch_ch382
+    },
 };
 
 static int __init
diff --git a/xen/include/xen/pci_ids.h b/xen/include/xen/pci_ids.h
index 5884a20b8f..15e938225c 100644
--- a/xen/include/xen/pci_ids.h
+++ b/xen/include/xen/pci_ids.h
@@ -13,6 +13,8 @@
 
 #define PCI_VENDOR_ID_BROADCOM           0x14e4
 
+#define PCI_VENDOR_ID_WCHIC              0x1c00
+
 #define PCI_VENDOR_ID_INTEL              0x8086
 
 #endif /* XEN_PCI_IDS_H */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 06:32:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 06:32:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304467.1577479 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLbEm-0000v1-Ly; Sat, 09 May 2026 06:32:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304467.1577479; Sat, 09 May 2026 06:32:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLbEm-0000uu-Hu; Sat, 09 May 2026 06:32:32 +0000
Received: by outflank-mailman (input) for mailman id 1304467;
 Sat, 09 May 2026 06:32:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wLbEl-0000uo-1i
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 06:32:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLbEk-007LIm-Av
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 08:32:30 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69fed4e3-bab6-0a2a0a5309dd-0a2a4505ca8a-26
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 08:32:30 +0200
Received: from [209.85.218.43] (helo=mail-ej1-f43.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 69fed4fd-aaa8-0a2a45050019-d155da2bd87b-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 08:32:30 +0200
Received: by mail-ej1-f43.google.com with SMTP id
 a640c23a62f3a-bcc9fdc959cso4099166b.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 May 2026 23:32:30 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bcac02c834dsm189935566b.8.2026.05.08.23.32.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 May 2026 23:32:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778308349; x=1778913149; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Dx8/AKdgRRMuoOUwfUi6WK37kQ1YEVHdNdU+rtdAlP8=;
        b=UxvZWGGfWCq4tyPvniOxAWyJhKpdGbM2DOoeDKp81OsQSyLx6M04hzmJx4FGaqUxIL
         kWdA/0p0NixvXwckRnEuaI3dhVxMM7k0JazOn/h3OATV6jHfW30uCw++2AK8Iof8D5wB
         LAcbAVw1q9iyweAhIUT538f4ryBSt2kQugd8LABFx/uDufBMqWLhwaBwMuOrrDbS0Mns
         trVkCXRjBNwwTzJfZT1o+d7/JEwljrkSZpw/RyE2d/ojhfKY3eRqanQ8+IVymNELmBNs
         rOkvZSLu2iqVSjILJSsAOD4ojBG5ok1a0zpO4OWrGQLm/cL/bXSXprvG2u8IvHI94727
         dAjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778308349; x=1778913149;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Dx8/AKdgRRMuoOUwfUi6WK37kQ1YEVHdNdU+rtdAlP8=;
        b=Y7sLt3bY+pewHinLgHyzVqiLGMiZc+IfKeMXUZEu7BtY63eDbwJBVlfU7//QVQNows
         EnKAqUTLhYUiDKnNqcldeLhciqFe+PQapN6RD159OX9mrT/4k5SoL2y3wA0VjAZ8iPAV
         x3vvNVACu83M7STOTGBUCDvM6mZyNyBYZZ+kju2hq9uxbPECqzLKjE8lC1XfbumJJZlB
         flx7Bi6MW+J0ZVs56ly7Ao3aAIJIV7Gdd3zPxHTeBqHzT0v37qWzmcL50iEwBSUPYCYN
         XISHLT3XoOZsh+eyKpS3yNBVvrWBjfGvqLTZRW2sVn0Dj7E5NHYLCdjRvau2x1RCPjmK
         lBGg==
X-Forwarded-Encrypted: i=1; AFNElJ/l4x23gDCenncTKFtOKWLjD8kG2bFNwa69G7JffGyKXrUII8nihqLEZAujeub5T6gPjMiCGxtOOVg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxNoDQj7ixYlJJfNvfJ6sLpPFiEz/1046t8Flvmch8iNlupGim/
	9sudokabsA6NCJg2rfpAutV5vpYmGugKZ4HxxSXQN+MDtzKqdw1WrSnsh6XUkWchmSc=
X-Gm-Gg: Acq92OG5bk0SY+J4CAkC00cr4JAz44yf8/KTI48142TJCBfbxqAVwDOITxT9bXjnRjG
	eubFebvIDGfgL7LHR08wVdrq18l3EvaB//XPOVktv0E8dI5wVVzFl4xGSaiT3AMwxvHv+SQN531
	yLCMXIuMicqpY4KzY381sJ/EFNrzTdsp++6nnpDNZdezNwwMf2SoIuTkByktL6zku1GNuAFJnBz
	/0b1VvoknVG0qorKwE3hiQfnolfP63vTfbf6sZPLPYtaYNeL6hSw0SipDNhli3ooh5twsC+x5CV
	hdSY4HGVh9htgL63nNlWHGHn2TMO2bsr/mKk/GwvAOQePpxZDkF7Q629LGxSHDnCdwVhOQ7pFM1
	7740EY7RBKpgSbj8PegzSjEc8rlEcN2elA/KOqf2HTBMlTUZelxW6bxuD6j0seOMKsYkP62QmJD
	PhxnxupkOeg43CxrPUgz003e5mNlfbP6Qv5uvNQSsL+2T0km4RF6TPkzcjiynF2iuwgx4LTpxRx
	etvnkEJ2aBwnt4e4PbtCw6PTc8mQbTHzLPi3zvEBGKwOvx2VZafyg==
X-Received: by 2002:a17:906:ee84:b0:bb2:71a9:37d7 with SMTP id a640c23a62f3a-bc56dd1a539mr944804666b.39.1778308349353;
        Fri, 08 May 2026 23:32:29 -0700 (PDT)
Message-ID: <36fc4317-d7a0-410c-9d95-28858018053c@suse.com>
Date: Sat, 9 May 2026 08:32:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Tolerate nested XEN_LAZY_MMU entering/leaving
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-kernel@vger.kernel.org,
 x86@kernel.org
Cc: marmarek@invisiblethingslab.com,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org
References: <20260508143933.493013-1-jgross@suse.com>
 <362bc938-18ea-4f6a-938a-893dfb1c956d@arm.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <362bc938-18ea-4f6a-938a-893dfb1c956d@arm.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------yQe00ZL7pHPDBzCDdn2c0s4x"
X-purgate-ID: tlsNG-c201ff/1778308350-E3B8E443-69F41CA8/0/0
X-purgate-type: clean
X-purgate-size: 7999

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------yQe00ZL7pHPDBzCDdn2c0s4x
Content-Type: multipart/mixed; boundary="------------ep6tsSF0uwnyPXMR3gMS8gVC";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-kernel@vger.kernel.org,
 x86@kernel.org
Cc: marmarek@invisiblethingslab.com,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org
Message-ID: <36fc4317-d7a0-410c-9d95-28858018053c@suse.com>
Subject: Re: [PATCH] x86/xen: Tolerate nested XEN_LAZY_MMU entering/leaving
References: <20260508143933.493013-1-jgross@suse.com>
 <362bc938-18ea-4f6a-938a-893dfb1c956d@arm.com>
In-Reply-To: <362bc938-18ea-4f6a-938a-893dfb1c956d@arm.com>

--------------ep6tsSF0uwnyPXMR3gMS8gVC
Content-Type: multipart/mixed; boundary="------------m4M3UMd5trYCjNeUTP33zbJF"

--------------m4M3UMd5trYCjNeUTP33zbJF
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMDguMDUuMjYgMjI6NTQsIEtldmluIEJyb2Rza3kgd3JvdGU6DQo+IE9uIDA4LzA1LzIw
MjYgMTY6MzksIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBXaXRoIHRoZSBzdXBwb3J0IG9m
IG5lc3RlZCBsYXp5IG1tdSBzZWN0aW9ucyBpdCBjYW4gaGFwcGVuIHRoYXQNCj4+IGFyY2hf
ZW50ZXJfbGF6eV9tbXVfbW9kZSgpIGlzIGJlaW5nIGNhbGxlZCB0d2ljZSB3aXRob3V0IGEg
Y2FsbCBvZg0KPj4gYXJjaF9sZWF2ZV9sYXp5X21tdV9tb2RlKCkgaW4gYmV0d2VlbiwgYXMg
dGhlIGxhenlfbW11XyooKSBoZWxwZXJzDQo+PiBhcmUgbm90IGRpc2FibGluZyBwcmVlbXB0
aW9uIHdoZW4gY2hlY2tpbmcgZm9yIG5lc3RlZCBsYXp5IG1tdQ0KPj4gc2VjdGlvbnMuDQo+
IA0KPiBJIHRoaW5rIHRoaXMgaXMgYSBjb3JyZWN0IGRlc2NyaXB0aW9uIG9mIHRoZSBpc3N1
ZSwgaS5lLiBwb3RlbnRpYWxseSB3ZQ0KPiBoYXZlIGFyY2hfZW50ZXJfbGF6eV9tbXVfbW9k
ZSgpIGNhbGxlZCB0d2ljZSAqc2VxdWVudGlhbGx5Ki4gVGhlcmVmb3JlIEkNCj4gZG9uJ3Qg
dGhpbmsgdGhhdCBkaXNhYmxpbmcgcHJlZW1wdGlvbiBpbnNpZGUgYXJjaF9lbnRlcl9sYXp5
X21tdV9tb2RlKCkNCj4gaXMgZW5vdWdoIC0gd2UgaGF2ZSBhIHByb2JsZW0gd2l0aCBwcmVl
bXB0aW9uIG9jY3VycmluZyBpbnNpZGUNCj4gbGF6eV9tbXVfbW9kZV9lbmFibGUoKSBnZW5l
cmFsbHksIG5vdCBuZWNlc3NhcmlseSBpbnNpZGUNCj4gYXJjaF9lbnRlcl9sYXp5X21tdV9t
b2RlKCkuDQo+IA0KPiBQcmVlbXB0aW9uIHNob3VsZG4ndCBtYXR0ZXIgaWYgY29tbWl0IDI5
MWIzYWJlZDY1NyBpcyByZXZlcnRlZC4gQUZBSUNUDQo+IHRoaXMgaXMgdGhlIG9ubHkgZWFz
eSBmaXguDQpUaGUgZGVzY3JpcHRpb24gd2Fzbid0IHJlYWxseSBjb21wbGV0ZSwgSSB0aGlu
ay4NCg0KVGhlIGRvdWJsZSBjYWxsIHdpbGwgb25seSBiZSBwb3NzaWJsZSBpZiBhcmNoX2Vu
ZF9jb250ZXh0X3N3aXRjaCgpIGlzDQpjYWxsaW5nIGFyY2hfZW50ZXJfbGF6eV9tbXVfbW9k
ZSgpLCBhbmQgdGhpcyBpcyBoYXBwZW5pbmcgZm9yIFhlbiBQViBvbmx5Lg0KYXJjaF9lbmRf
Y29udGV4dF9zd2l0Y2goKSBpcyBhIG5vcCBmb3IgYWxsIG90aGVyIGNhc2VzLg0KDQpTbyB0
aGlzIGNhbiBiZSBoYW5kbGVkIGNvbXBsZXRlbHkgaW50ZXJuYWwgb2YgWGVuIChvdGhlcndp
c2UgYSByZXZlcnQgb2YNCjI5MWIzYWJlZDY1NyB3b3VsZG4ndCBoZWxwKSwgYW5kIGl0IGlz
IGVhc3kgdG8gZG8gc28gYXMgbXkgcGF0Y2ggaXMNCnNob3dpbmcuDQoNCkFzIHNhaWQsIEkn
ZCBsaWtlIHRvIGdldCByaWQgb2YgdGhlIGV4dHJhIHRyYWNraW5nIGJ5IFhlbiByZWdhcmRp
bmcgbGF6eSBtb2RlLg0KDQoNCkp1ZXJnZW4NCg==
--------------m4M3UMd5trYCjNeUTP33zbJF
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------m4M3UMd5trYCjNeUTP33zbJF--

--------------ep6tsSF0uwnyPXMR3gMS8gVC--

--------------yQe00ZL7pHPDBzCDdn2c0s4x
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmn+1PwFAwAAAAAACgkQsN6d1ii/Ey/p
eAgAmT5Sdo76MTzgwv4f7jjkBKC1GgDHVZxmoCAdy6dHTVCw42kN6mGpOD50J26LyVsoLJZuv4TQ
AVtfEDHAQa1aeQFDUntBqMHRVy50IsRvDLujI+Mgnb8LOoqlxLR+8pfF/FmQ2iK0143BOtrpO6St
pCDHh9EYZi7voawyisb1U1gPenvgfRV+LVDDSBm4QikXgoPYPZ8g6kHQhi0uhzj6XpWGd7SfcIid
QsOSqOhKE9AqFGDuM6AQzjcf8AK88DBGzFBHvEjvuz4YOc+gJqTIwjnUEo5Ss6KVOqDlWGMUUvFs
tWEwI/2KKZepFBlimv7qvL847PzYUD4p6j77FbjrSQ==
=HeqP
-----END PGP SIGNATURE-----

--------------yQe00ZL7pHPDBzCDdn2c0s4x--


From xen-devel-bounces@lists.xenproject.org Sat May 09 07:39:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 07:39:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304489.1577488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLcHX-00010R-Cu; Sat, 09 May 2026 07:39:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304489.1577488; Sat, 09 May 2026 07:39:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLcHX-00010K-9V; Sat, 09 May 2026 07:39:27 +0000
Received: by outflank-mailman (input) for mailman id 1304489;
 Sat, 09 May 2026 07:39:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marcandre.lureau@redhat.com>) id 1wLcHV-00010E-ON
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 07:39:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLcHV-00BrO7-5I
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 09:39:25 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marcandre.lureau@redhat.com>)
 id 69fee455-bab6-0a2a0a5309dd-0a2a4501bf78-34
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 09:39:24 +0200
Received: from [170.10.133.124] (helo=us-smtp-delivery-124.mimecast.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marcandre.lureau@redhat.com>)
 id 69fee4ab-c1f2-0a2a45010019-aa0a857c7e43-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 09:39:24 +0200
Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-70-manh_PZEMKe58UYmNSnICg-1; Sat,
 09 May 2026 03:39:16 -0400
Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id DD2BE195608B; Sat,  9 May 2026 07:39:10 +0000 (UTC)
Received: from localhost (unknown [10.44.24.4])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 8496E1800374; Sat,  9 May 2026 07:39:05 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mimecast20190719 header.d=redhat.com header.i="@redhat.com" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1778312363;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=7QYqPOdnppReAVRJ5P/m4/A1UFEhBGpvGj/XUDUfT3M=;
	b=R2pvFxDKTxTPwfuH259puMRLOPlnQHIJMyxgjmzuSS1auXaAThRDU3b/2jtwW0LgwmM5UC
	XSU3BMQRQ1l7zMI4BkbsllTH2Z8Rv+Gy/tPAMlNVKI5abCvSy23FPlrzy8Qv3wS03DymgU
	YgNpqU1yDNps0s09hhVrAYeTgBBk6a4=
X-MC-Unique: manh_PZEMKe58UYmNSnICg-1
X-Mimecast-MFC-AGG-ID: manh_PZEMKe58UYmNSnICg_1778312353
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: stefanha@gmail.com,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Jan Kiszka <jan.kiszka@web.de>,
	Peter Maydell <peter.maydell@linaro.org>,
	Phil Dennis-Jordan <phil@philjordan.eu>,
	Richard Henderson <richard.henderson@linaro.org>,
	Helge Deller <deller@gmx.de>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	Samuel Tardieu <sam@rfc1149.net>,
	=?UTF-8?q?Herv=C3=A9=20Poussineau?= <hpoussin@reactos.org>,
	Aleksandar Rikalo <arikalo@gmail.com>,
	Laurent Vivier <laurent@vivier.eu>,
	Thomas Huth <th.huth+qemu@posteo.eu>,
	BALATON Zoltan <balaton@eik.bme.hu>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Garzarella <sgarzare@redhat.com>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>,
	Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Dmitry Fleytman <dmitry.fleytman@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Alistair Francis <alistair@alistair23.me>,
	Alex Williamson <alex@shazbot.org>,
	=?UTF-8?q?C=C3=A9dric=20Le=20Goater?= <clg@redhat.com>,
	qemu-arm@nongnu.org (open list:Musicpal),
	qemu-ppc@nongnu.org (open list:sam460ex),
	xen-devel@lists.xenproject.org (open list:X86 Xen CPUs)
Subject: [PULL 28/32] ui/console: rename public API to use consistent qemu_console_ prefix
Date: Sat,  9 May 2026 11:36:14 +0400
Message-ID: <20260509073621.1011778-29-marcandre.lureau@redhat.com>
In-Reply-To: <20260509073621.1011778-1-marcandre.lureau@redhat.com>
References: <20260509073621.1011778-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93
X-Mimecast-MFC-PROC-ID: kE95bF1YTuOMHVChyh3duK1SQH_ovnBpQov2sB9RoBk_1778312353
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778312364-ACE52C54-FD554556/0/0
X-purgate-type: clean
X-purgate-size: 111657

From: Marc-André Lureau <marcandre.lureau@redhat.com>

Rename the display and graphic console public functions to follow a
consistent qemu_console_ (or qemu_graphic_console_) naming convention.

The previous API used a mix of prefixes: dpy_, graphic_hw_,
graphic_console_, console_has_, and update_displaychangelistener().
Unify them under a common qemu_console_ namespace for better
discoverability and consistency.

The main renames are:
- dpy_gfx_*() / dpy_text_*() / dpy_gl_*() → qemu_console_*()
- dpy_{get,set}_ui_info() → qemu_console_{get,set}_ui_info()
- graphic_hw_*() → qemu_console_hw_*()
- graphic_console_*() → qemu_graphic_console_*()
- console_has_gl() → qemu_console_has_gl()
- update_displaychangelistener() → qemu_console_listener_set_refresh()

No functional changes.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 include/ui/console.h             | 108 ++++++++++++------------
 hw/arm/musicpal.c                |   4 +-
 hw/display/artist.c              |   4 +-
 hw/display/ati.c                 |  16 ++--
 hw/display/bcm2835_fb.c          |   5 +-
 hw/display/bochs-display.c       |  14 ++--
 hw/display/cg3.c                 |   6 +-
 hw/display/cirrus_vga.c          |   8 +-
 hw/display/cirrus_vga_isa.c      |   2 +-
 hw/display/dm163.c               |   6 +-
 hw/display/exynos4210_fimd.c     |   4 +-
 hw/display/g364fb.c              |  10 +--
 hw/display/jazz_led.c            |   8 +-
 hw/display/macfb.c               |   6 +-
 hw/display/next-fb.c             |   4 +-
 hw/display/omap_lcdc.c           |   4 +-
 hw/display/pl110.c               |   4 +-
 hw/display/qxl-render.c          |  12 +--
 hw/display/qxl.c                 |  14 ++--
 hw/display/ramfb-standalone.c    |   2 +-
 hw/display/ramfb.c               |   4 +-
 hw/display/sm501.c               |   6 +-
 hw/display/ssd0303.c             |   4 +-
 hw/display/ssd0323.c             |   5 +-
 hw/display/tcx.c                 |  16 ++--
 hw/display/vga-isa.c             |   2 +-
 hw/display/vga-mmio.c            |   2 +-
 hw/display/vga-pci.c             |   6 +-
 hw/display/vga.c                 |  40 +++++----
 hw/display/vhost-user-gpu.c      |  22 ++---
 hw/display/virtio-gpu-base.c     |   2 +-
 hw/display/virtio-gpu-rutabaga.c |  10 +--
 hw/display/virtio-gpu-udmabuf.c  |   4 +-
 hw/display/virtio-gpu-virgl.c    |  20 ++---
 hw/display/virtio-gpu.c          |  26 +++---
 hw/display/virtio-vga.c          |   2 +-
 hw/display/vmware_vga.c          |  12 +--
 hw/display/xenfb.c               |   6 +-
 hw/display/xlnx_dp.c             |  10 +--
 hw/vfio/display.c                |  32 +++----
 ui/console-vc.c                  |  12 +--
 ui/console.c                     | 140 +++++++++++++++----------------
 ui/curses.c                      |   8 +-
 ui/dbus-console.c                |   4 +-
 ui/dbus-listener.c               |  10 +--
 ui/egl-headless.c                |   4 +-
 ui/gtk-egl.c                     |   6 +-
 ui/gtk-gl-area.c                 |   6 +-
 ui/gtk.c                         |  18 ++--
 ui/sdl2-2d.c                     |   2 +-
 ui/sdl2-gl.c                     |   2 +-
 ui/sdl2.c                        |   6 +-
 ui/spice-display.c               |  16 ++--
 ui/vnc.c                         |  22 ++---
 hw/display/apple-gfx.m           |  16 ++--
 ui/cocoa.m                       |  10 +--
 56 files changed, 372 insertions(+), 382 deletions(-)

diff --git a/include/ui/console.h b/include/ui/console.h
index 69ac7b01b33..cfa940d4c66 100644
--- a/include/ui/console.h
+++ b/include/ui/console.h
@@ -294,49 +294,49 @@ DisplayState *init_displaystate(void);
 void qemu_console_register_listener(QemuConsole *con,
                                     DisplayChangeListener *dcl,
                                     const DisplayChangeListenerOps *ops);
-void update_displaychangelistener(DisplayChangeListener *dcl,
-                                  uint64_t interval);
+void qemu_console_listener_set_refresh(DisplayChangeListener *dcl,
+                                       uint64_t interval);
 void qemu_console_unregister_listener(DisplayChangeListener *dcl);
 
-bool dpy_ui_info_supported(const QemuConsole *con);
-const QemuUIInfo *dpy_get_ui_info(const QemuConsole *con);
-int dpy_set_ui_info(QemuConsole *con, QemuUIInfo *info, bool delay);
-
-void dpy_gfx_update(QemuConsole *con, int x, int y, int w, int h);
-void dpy_gfx_update_full(QemuConsole *con);
-void dpy_gfx_replace_surface(QemuConsole *con,
-                             DisplaySurface *surface);
-void dpy_text_cursor(QemuConsole *con, int x, int y);
-void dpy_text_update(QemuConsole *con, int x, int y, int w, int h);
-void dpy_text_resize(QemuConsole *con, int w, int h);
-void dpy_mouse_set(QemuConsole *con, int x, int y, bool on);
-void dpy_cursor_define(QemuConsole *con, QEMUCursor *cursor);
-bool dpy_gfx_check_format(QemuConsole *con,
-                          pixman_format_code_t format);
-
-void dpy_gl_scanout_disable(QemuConsole *con);
-void dpy_gl_scanout_texture(QemuConsole *con,
-                            uint32_t backing_id, bool backing_y_0_top,
-                            uint32_t backing_width, uint32_t backing_height,
-                            uint32_t x, uint32_t y, uint32_t w, uint32_t h,
-                            void *d3d_tex2d);
-void dpy_gl_scanout_dmabuf(QemuConsole *con,
-                           QemuDmaBuf *dmabuf);
-void dpy_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf,
-                          bool have_hot, uint32_t hot_x, uint32_t hot_y);
-void dpy_gl_cursor_position(QemuConsole *con,
-                            uint32_t pos_x, uint32_t pos_y);
-void dpy_gl_release_dmabuf(QemuConsole *con,
-                           QemuDmaBuf *dmabuf);
-void dpy_gl_update(QemuConsole *con,
-                   uint32_t x, uint32_t y, uint32_t w, uint32_t h);
-
-QEMUGLContext dpy_gl_ctx_create(QemuConsole *con,
-                                QEMUGLParams *params);
-void dpy_gl_ctx_destroy(QemuConsole *con, QEMUGLContext ctx);
-int dpy_gl_ctx_make_current(QemuConsole *con, QEMUGLContext ctx);
-
-bool console_has_gl(QemuConsole *con);
+bool qemu_console_ui_info_supported(const QemuConsole *con);
+const QemuUIInfo *qemu_console_get_ui_info(const QemuConsole *con);
+int qemu_console_set_ui_info(QemuConsole *con, QemuUIInfo *info, bool delay);
+
+void qemu_console_update(QemuConsole *con, int x, int y, int w, int h);
+void qemu_console_update_full(QemuConsole *con);
+void qemu_console_set_surface(QemuConsole *con,
+                              DisplaySurface *surface);
+void qemu_console_text_set_cursor(QemuConsole *con, int x, int y);
+void qemu_console_text_update(QemuConsole *con, int x, int y, int w, int h);
+void qemu_console_text_resize(QemuConsole *con, int w, int h);
+void qemu_console_set_mouse(QemuConsole *con, int x, int y, bool on);
+void qemu_console_set_cursor(QemuConsole *con, QEMUCursor *cursor);
+bool qemu_console_check_format(QemuConsole *con,
+                               pixman_format_code_t format);
+
+void qemu_console_gl_scanout_disable(QemuConsole *con);
+void qemu_console_gl_scanout_texture(QemuConsole *con,
+                                     uint32_t backing_id, bool backing_y_0_top,
+                                     uint32_t backing_width, uint32_t backing_height,
+                                     uint32_t x, uint32_t y, uint32_t w, uint32_t h,
+                                     void *d3d_tex2d);
+void qemu_console_gl_scanout_dmabuf(QemuConsole *con,
+                                    QemuDmaBuf *dmabuf);
+void qemu_console_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf,
+                                   bool have_hot, uint32_t hot_x, uint32_t hot_y);
+void qemu_console_gl_cursor_position(QemuConsole *con,
+                                     uint32_t pos_x, uint32_t pos_y);
+void qemu_console_gl_release_dmabuf(QemuConsole *con,
+                                    QemuDmaBuf *dmabuf);
+void qemu_console_gl_update(QemuConsole *con,
+                            uint32_t x, uint32_t y, uint32_t w, uint32_t h);
+
+QEMUGLContext qemu_console_gl_ctx_create(QemuConsole *con,
+                                         QEMUGLParams *params);
+void qemu_console_gl_ctx_destroy(QemuConsole *con, QEMUGLContext ctx);
+int qemu_console_gl_ctx_make_current(QemuConsole *con, QEMUGLContext ctx);
+
+bool qemu_console_has_gl(QemuConsole *con);
 
 enum {
     GRAPHIC_FLAGS_NONE     = 0,
@@ -361,19 +361,19 @@ typedef struct GraphicHwOps {
     void (*gl_block)(void *opaque, bool block);
 } GraphicHwOps;
 
-QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,
-                                  const GraphicHwOps *ops,
-                                  void *opaque);
-void graphic_console_set_hwops(QemuConsole *con,
-                               const GraphicHwOps *hw_ops,
-                               void *opaque);
-void graphic_console_close(QemuConsole *con);
-
-void graphic_hw_update(QemuConsole *con);
-void graphic_hw_update_done(QemuConsole *con);
-void graphic_hw_invalidate(QemuConsole *con);
-void graphic_hw_text_update(QemuConsole *con, uint32_t *chardata);
-void graphic_hw_gl_block(QemuConsole *con, bool block);
+QemuConsole *qemu_graphic_console_create(DeviceState *dev, uint32_t head,
+                                         const GraphicHwOps *ops,
+                                         void *opaque);
+void qemu_graphic_console_set_hwops(QemuConsole *con,
+                                    const GraphicHwOps *hw_ops,
+                                    void *opaque);
+void qemu_graphic_console_close(QemuConsole *con);
+
+void qemu_console_hw_update(QemuConsole *con);
+void qemu_console_hw_update_done(QemuConsole *con);
+void qemu_console_hw_invalidate(QemuConsole *con);
+void qemu_console_hw_text_update(QemuConsole *con, uint32_t *chardata);
+void qemu_console_hw_gl_block(QemuConsole *con, bool block);
 
 void qemu_console_early_init(void);
 
diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c
index ba88ed756e2..83676eb7fea 100644
--- a/hw/arm/musicpal.c
+++ b/hw/arm/musicpal.c
@@ -170,7 +170,7 @@ static bool lcd_refresh(void *opaque)
         }
     }
 
-    dpy_gfx_update(s->con, 0, 0, 128*3, 64*3);
+    qemu_console_update(s->con, 0, 0, 128*3, 64*3);
     return true;
 }
 
@@ -253,7 +253,7 @@ static const GraphicHwOps musicpal_gfx_ops = {
 static void musicpal_lcd_realize(DeviceState *dev, Error **errp)
 {
     musicpal_lcd_state *s = MUSICPAL_LCD(dev);
-    s->con = graphic_console_init(dev, 0, &musicpal_gfx_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &musicpal_gfx_ops, s);
     qemu_console_resize(s->con, 128 * 3, 64 * 3);
 }
 
diff --git a/hw/display/artist.c b/hw/display/artist.c
index a07508378c7..288d466ec64 100644
--- a/hw/display/artist.c
+++ b/hw/display/artist.c
@@ -1324,7 +1324,7 @@ static bool artist_update_display(void *opaque)
     artist_draw_cursor(s);
 
     if (first >= 0) {
-        dpy_gfx_update(s->con, 0, first, s->width, last - first + 1);
+        qemu_console_update(s->con, 0, first, s->width, last - first + 1);
     }
 
     return true;
@@ -1424,7 +1424,7 @@ static void artist_realizefn(DeviceState *dev, Error **errp)
     s->misc_video |= 0x0A000000;
     s->misc_ctrl  |= 0x00800000;
 
-    s->con = graphic_console_init(dev, 0, &artist_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &artist_ops, s);
     qemu_console_resize(s->con, s->width, s->height);
 }
 
diff --git a/hw/display/ati.c b/hw/display/ati.c
index 3a7d45a8820..d77589df67a 100644
--- a/hw/display/ati.c
+++ b/hw/display/ati.c
@@ -161,7 +161,7 @@ static void ati_cursor_define(ATIVGAState *s)
     }
     cursor_set_mono(s->cursor, s->regs.cur_color1, s->regs.cur_color0,
                     (uint8_t *)&data[64], 1, (uint8_t *)&data[0]);
-    dpy_cursor_define(s->vga.con, s->cursor);
+    qemu_console_set_cursor(s->vga.con, s->cursor);
 }
 
 /* Alternatively support guest rendered hardware cursor */
@@ -626,9 +626,9 @@ static void ati_mm_write(void *opaque, hwaddr addr,
                 if (s->regs.crtc_gen_cntl & CRTC2_CUR_EN) {
                     ati_cursor_define(s);
                 }
-                dpy_mouse_set(s->vga.con, s->regs.cur_hv_pos >> 16,
-                              s->regs.cur_hv_pos & 0xffff,
-                              (s->regs.crtc_gen_cntl & CRTC2_CUR_EN) != 0);
+                qemu_console_set_mouse(s->vga.con, s->regs.cur_hv_pos >> 16,
+                                       s->regs.cur_hv_pos & 0xffff,
+                                       (s->regs.crtc_gen_cntl & CRTC2_CUR_EN) != 0);
             }
         }
         if ((val & (CRTC2_EXT_DISP_EN | CRTC2_EN)) !=
@@ -780,8 +780,8 @@ static void ati_mm_write(void *opaque, hwaddr addr,
         }
         if (!s->cursor_guest_mode &&
             (s->regs.crtc_gen_cntl & CRTC2_CUR_EN) && !(t & BIT(31))) {
-            dpy_mouse_set(s->vga.con, s->regs.cur_hv_pos >> 16,
-                          s->regs.cur_hv_pos & 0xffff, true);
+            qemu_console_set_mouse(s->vga.con, s->regs.cur_hv_pos >> 16,
+                                   s->regs.cur_hv_pos & 0xffff, true);
         }
         break;
     }
@@ -1094,7 +1094,7 @@ static void ati_vga_realize(PCIDevice *dev, Error **errp)
     }
     vga_init(vga, OBJECT(s), pci_address_space(dev),
              pci_address_space_io(dev), true);
-    vga->con = graphic_console_init(DEVICE(s), 0, s->vga.hw_ops, vga);
+    vga->con = qemu_graphic_console_create(DEVICE(s), 0, s->vga.hw_ops, vga);
     if (s->cursor_guest_mode) {
         vga->cursor_invalidate = ati_cursor_invalidate;
         vga->cursor_draw_line = ati_cursor_draw_line;
@@ -1167,7 +1167,7 @@ static void ati_vga_exit(PCIDevice *dev)
     ATIVGAState *s = ATI_VGA(dev);
 
     timer_del(&s->vblank_timer);
-    graphic_console_close(s->vga.con);
+    qemu_graphic_console_close(s->vga.con);
 }
 
 static const Property ati_vga_properties[] = {
diff --git a/hw/display/bcm2835_fb.c b/hw/display/bcm2835_fb.c
index 83c4c03c7ca..bd58f625fcd 100644
--- a/hw/display/bcm2835_fb.c
+++ b/hw/display/bcm2835_fb.c
@@ -207,8 +207,7 @@ static bool fb_update_display(void *opaque)
                                draw_line_src16, s, &first, &last);
 
     if (first >= 0) {
-        dpy_gfx_update(s->con, 0, first, s->config.xres,
-                       last - first + 1);
+        qemu_console_update(s->con, 0, first, s->config.xres, last - first + 1);
     }
 
     s->invalidate = false;
@@ -427,7 +426,7 @@ static void bcm2835_fb_realize(DeviceState *dev, Error **errp)
 
     bcm2835_fb_reset(dev);
 
-    s->con = graphic_console_init(dev, 0, &vgafb_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &vgafb_ops, s);
     qemu_console_resize(s->con, s->config.xres, s->config.yres);
 }
 
diff --git a/hw/display/bochs-display.c b/hw/display/bochs-display.c
index 8ef9b76cf85..64e669429c4 100644
--- a/hw/display/bochs-display.c
+++ b/hw/display/bochs-display.c
@@ -224,12 +224,12 @@ static bool bochs_display_update(void *opaque)
                                              mode.format,
                                              mode.stride,
                                              ptr + mode.offset);
-        dpy_gfx_replace_surface(s->con, ds);
+        qemu_console_set_surface(s->con, ds);
         full_update = true;
     }
 
     if (full_update) {
-        dpy_gfx_update_full(s->con);
+        qemu_console_update_full(s->con);
     } else {
         snap = memory_region_snapshot_and_clear_dirty(&s->vram,
                                                       mode.offset, mode.size,
@@ -243,14 +243,12 @@ static bool bochs_display_update(void *opaque)
                 ys = y;
             }
             if (!dirty && ys >= 0) {
-                dpy_gfx_update(s->con, 0, ys,
-                               mode.width, y - ys);
+                qemu_console_update(s->con, 0, ys, mode.width, y - ys);
                 ys = -1;
             }
         }
         if (ys >= 0) {
-            dpy_gfx_update(s->con, 0, ys,
-                           mode.width, y - ys);
+            qemu_console_update(s->con, 0, ys, mode.width, y - ys);
         }
 
         g_free(snap);
@@ -279,7 +277,7 @@ static void bochs_display_realize(PCIDevice *dev, Error **errp)
     }
     s->vgamem = pow2ceil(s->vgamem);
 
-    s->con = graphic_console_init(DEVICE(dev), 0, &bochs_display_gfx_ops, s);
+    s->con = qemu_graphic_console_create(DEVICE(dev), 0, &bochs_display_gfx_ops, s);
 
     memory_region_init_ram(&s->vram, obj, "bochs-display-vram", s->vgamem,
                            &error_fatal);
@@ -344,7 +342,7 @@ static void bochs_display_exit(PCIDevice *dev)
 {
     BochsDisplayState *s = BOCHS_DISPLAY(dev);
 
-    graphic_console_close(s->con);
+    qemu_graphic_console_close(s->con);
 }
 
 static const Property bochs_display_properties[] = {
diff --git a/hw/display/cg3.c b/hw/display/cg3.c
index 963bb3427a6..f9dda1549dd 100644
--- a/hw/display/cg3.c
+++ b/hw/display/cg3.c
@@ -137,7 +137,7 @@ static bool cg3_update_display(void *opaque)
             }
         } else {
             if (y_start >= 0) {
-                dpy_gfx_update(s->con, 0, y_start, width, y - y_start);
+                qemu_console_update(s->con, 0, y_start, width, y - y_start);
                 y_start = -1;
             }
             pix += width;
@@ -146,7 +146,7 @@ static bool cg3_update_display(void *opaque)
     }
     s->full_update = 0;
     if (y_start >= 0) {
-        dpy_gfx_update(s->con, 0, y_start, width, y - y_start);
+        qemu_console_update(s->con, 0, y_start, width, y - y_start);
     }
     /* vsync interrupt? */
     if (s->regs[0] & CG3_CR_ENABLE_INTS) {
@@ -311,7 +311,7 @@ static void cg3_realizefn(DeviceState *dev, Error **errp)
 
     sysbus_init_irq(sbd, &s->irq);
 
-    s->con = graphic_console_init(dev, 0, &cg3_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &cg3_ops, s);
     qemu_console_resize(s->con, s->width, s->height);
 }
 
diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c
index 48be3c8a932..0a8c74e1374 100644
--- a/hw/display/cirrus_vga.c
+++ b/hw/display/cirrus_vga.c
@@ -779,9 +779,9 @@ static int cirrus_do_copy(CirrusVGAState *s, int dst, int src, int w, int h)
                       s->cirrus_blt_width, s->cirrus_blt_height);
 
     if (notify) {
-        dpy_gfx_update(s->vga.con, dx, dy,
-                       s->cirrus_blt_width / depth,
-                       s->cirrus_blt_height);
+        qemu_console_update(s->vga.con, dx, dy,
+                            s->cirrus_blt_width / depth,
+                            s->cirrus_blt_height);
     }
 
     /* we don't have to notify the display that this portion has
@@ -2964,7 +2964,7 @@ static void pci_cirrus_vga_realize(PCIDevice *dev, Error **errp)
     }
     cirrus_init_common(s, OBJECT(dev), device_id, 1, pci_address_space(dev),
                        pci_address_space_io(dev));
-    s->vga.con = graphic_console_init(DEVICE(dev), 0, s->vga.hw_ops, &s->vga);
+    s->vga.con = qemu_graphic_console_create(DEVICE(dev), 0, s->vga.hw_ops, &s->vga);
 
     /* setup PCI */
     memory_region_init(&s->pci_bar, OBJECT(dev), "cirrus-pci-bar0", 0x2000000);
diff --git a/hw/display/cirrus_vga_isa.c b/hw/display/cirrus_vga_isa.c
index 76034a88605..b8052d1d8ed 100644
--- a/hw/display/cirrus_vga_isa.c
+++ b/hw/display/cirrus_vga_isa.c
@@ -62,7 +62,7 @@ static void isa_cirrus_vga_realizefn(DeviceState *dev, Error **errp)
     cirrus_init_common(&d->cirrus_vga, OBJECT(dev), CIRRUS_ID_CLGD5430, 0,
                        isa_address_space(isadev),
                        isa_address_space_io(isadev));
-    s->con = graphic_console_init(dev, 0, s->hw_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, s->hw_ops, s);
     rom_add_vga(VGABIOS_CIRRUS_FILENAME);
     /* XXX ISA-LFB support */
     /* FIXME not qdev yet */
diff --git a/hw/display/dm163.c b/hw/display/dm163.c
index 9ea62cb4f76..afade0b98c3 100644
--- a/hw/display/dm163.c
+++ b/hw/display/dm163.c
@@ -277,8 +277,8 @@ static uint32_t *update_display_of_row(DM163State *s, uint32_t *dest,
         }
     }
 
-    dpy_gfx_update(s->console, 0, LED_SQUARE_SIZE * row,
-                    RGB_MATRIX_NUM_COLS * LED_SQUARE_SIZE, LED_SQUARE_SIZE);
+    qemu_console_update(s->console, 0, LED_SQUARE_SIZE * row,
+                        RGB_MATRIX_NUM_COLS * LED_SQUARE_SIZE, LED_SQUARE_SIZE);
     s->redraw &= ~(1 << row);
     trace_dm163_redraw(s->redraw);
 
@@ -322,7 +322,7 @@ static void dm163_realize(DeviceState *dev, Error **errp)
     qdev_init_gpio_in(dev, dm163_en_b_gpio_handler, 1);
     qdev_init_gpio_out_named(dev, &s->sout, "sout", 1);
 
-    s->console = graphic_console_init(dev, 0, &dm163_ops, s);
+    s->console = qemu_graphic_console_create(dev, 0, &dm163_ops, s);
     qemu_console_resize(s->console, RGB_MATRIX_NUM_COLS * LED_SQUARE_SIZE,
                         RGB_MATRIX_NUM_ROWS * LED_SQUARE_SIZE);
 }
diff --git a/hw/display/exynos4210_fimd.c b/hw/display/exynos4210_fimd.c
index a91f04aaf79..5133623ee2e 100644
--- a/hw/display/exynos4210_fimd.c
+++ b/hw/display/exynos4210_fimd.c
@@ -1340,7 +1340,7 @@ static bool exynos4210_fimd_update(void *opaque)
             fimd_copy_line_toqemu(global_width, s->ifb + global_width * line *
                     RGBA_SIZE, d + global_width * line * bpp);
         }
-        dpy_gfx_update_full(s->console);
+        qemu_console_update_full(s->console);
     }
     s->invalidate = false;
     s->vidintcon[1] |= FIMD_VIDINT_INTFRMPEND;
@@ -1964,7 +1964,7 @@ static void exynos4210_fimd_realize(DeviceState *dev, Error **errp)
         return;
     }
 
-    s->console = graphic_console_init(dev, 0, &exynos4210_fimd_ops, s);
+    s->console = qemu_graphic_console_create(dev, 0, &exynos4210_fimd_ops, s);
 }
 
 static void exynos4210_fimd_class_init(ObjectClass *klass, const void *data)
diff --git a/hw/display/g364fb.c b/hw/display/g364fb.c
index bd15f6f0acc..af54f1f9005 100644
--- a/hw/display/g364fb.c
+++ b/hw/display/g364fb.c
@@ -191,8 +191,8 @@ static void g364fb_draw_graphic8(G364State *s)
         } else {
             int dy;
             if (xmax || ymax) {
-                dpy_gfx_update(s->con, xmin, ymin,
-                               xmax - xmin + 1, ymax - ymin + 1);
+                qemu_console_update(s->con, xmin, ymin,
+                                   xmax - xmin + 1, ymax - ymin + 1);
                 xmin = s->width;
                 xmax = 0;
                 ymin = s->height;
@@ -211,7 +211,7 @@ static void g364fb_draw_graphic8(G364State *s)
 
 done:
     if (xmax || ymax) {
-        dpy_gfx_update(s->con, xmin, ymin, xmax - xmin + 1, ymax - ymin + 1);
+        qemu_console_update(s->con, xmin, ymin, xmax - xmin + 1, ymax - ymin + 1);
     }
     g_free(snap);
 }
@@ -234,7 +234,7 @@ static void g364fb_draw_blank(G364State *s)
         d += surface_stride(surface);
     }
 
-    dpy_gfx_update_full(s->con);
+    qemu_console_update_full(s->con);
     s->blanked = 1;
 }
 
@@ -478,7 +478,7 @@ static const GraphicHwOps g364fb_ops = {
 
 static void g364fb_init(DeviceState *dev, G364State *s)
 {
-    s->con = graphic_console_init(dev, 0, &g364fb_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &g364fb_ops, s);
 
     memory_region_init_io(&s->mem_ctrl, OBJECT(dev), &g364fb_ctrl_ops, s,
                           "ctrl", 0x180000);
diff --git a/hw/display/jazz_led.c b/hw/display/jazz_led.c
index ee9758a94b5..84fe1058406 100644
--- a/hw/display/jazz_led.c
+++ b/hw/display/jazz_led.c
@@ -217,7 +217,7 @@ static bool jazz_led_update_display(void *opaque)
     }
 
     s->state = REDRAW_NONE;
-    dpy_gfx_update_full(s->con);
+    qemu_console_update_full(s->con);
 
     return true;
 }
@@ -233,7 +233,7 @@ static void jazz_led_text_update(void *opaque, uint32_t *chardata)
     LedState *s = opaque;
     char buf[3];
 
-    dpy_text_cursor(s->con, -1, -1);
+    qemu_console_text_set_cursor(s->con, -1, -1);
     qemu_console_resize(s->con, 2, 1);
 
     /* TODO: draw the segments */
@@ -243,7 +243,7 @@ static void jazz_led_text_update(void *opaque, uint32_t *chardata)
     *chardata++ = ATTR2CHTYPE(buf[1], QEMU_COLOR_BLUE,
                               QEMU_COLOR_BLACK, 1);
 
-    dpy_text_update(s->con, 0, 0, 2, 1);
+    qemu_console_text_update(s->con, 0, 0, 2, 1);
 }
 
 static int jazz_led_post_load(void *opaque, int version_id)
@@ -284,7 +284,7 @@ static void jazz_led_realize(DeviceState *dev, Error **errp)
 {
     LedState *s = JAZZ_LED(dev);
 
-    s->con = graphic_console_init(dev, 0, &jazz_led_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &jazz_led_ops, s);
 }
 
 static void jazz_led_reset(DeviceState *d)
diff --git a/hw/display/macfb.c b/hw/display/macfb.c
index 848c3c282bd..f40a7ed9f52 100644
--- a/hw/display/macfb.c
+++ b/hw/display/macfb.c
@@ -320,14 +320,14 @@ static void macfb_draw_graphic(MacfbState *s)
             }
         } else {
             if (ymin >= 0) {
-                dpy_gfx_update(s->con, 0, ymin, s->width, y - ymin);
+                qemu_console_update(s->con, 0, ymin, s->width, y - ymin);
                 ymin = -1;
             }
         }
     }
 
     if (ymin >= 0) {
-        dpy_gfx_update(s->con, 0, ymin, s->width, y - ymin);
+        qemu_console_update(s->con, 0, ymin, s->width, y - ymin);
     }
 
     g_free(snap);
@@ -671,7 +671,7 @@ static bool macfb_common_realize(DeviceState *dev, MacfbState *s, Error **errp)
     s->regs[DAFB_MODE_CTRL1 >> 2] = s->mode->mode_ctrl1;
     s->regs[DAFB_MODE_CTRL2 >> 2] = s->mode->mode_ctrl2;
 
-    s->con = graphic_console_init(dev, 0, &macfb_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &macfb_ops, s);
     surface = qemu_console_surface(s->con);
 
     if (surface_bits_per_pixel(surface) != 32) {
diff --git a/hw/display/next-fb.c b/hw/display/next-fb.c
index e758b223ef7..fa2e0d0da80 100644
--- a/hw/display/next-fb.c
+++ b/hw/display/next-fb.c
@@ -89,7 +89,7 @@ static bool nextfb_update(void *opaque)
                                src_width, dest_width, 0, 1, nextfb_draw_line,
                                s, &first, &last);
 
-    dpy_gfx_update(s->con, 0, 0, s->cols, s->rows);
+    qemu_console_update(s->con, 0, 0, s->cols, s->rows);
 
     return true;
 }
@@ -117,7 +117,7 @@ static void nextfb_realize(DeviceState *dev, Error **errp)
     s->cols = 1120;
     s->rows = 832;
 
-    s->con = graphic_console_init(dev, 0, &nextfb_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &nextfb_ops, s);
     qemu_console_resize(s->con, s->cols, s->rows);
 }
 
diff --git a/hw/display/omap_lcdc.c b/hw/display/omap_lcdc.c
index 1e8385ebffb..2a8d5ffdd57 100644
--- a/hw/display/omap_lcdc.c
+++ b/hw/display/omap_lcdc.c
@@ -320,7 +320,7 @@ static bool omap_update_display(void *opaque)
                                &first, &last);
 
     if (first >= 0) {
-        dpy_gfx_update(omap_lcd->con, 0, first, width, last - first + 1);
+        qemu_console_update(omap_lcd->con, 0, first, width, last - first + 1);
     }
     omap_lcd->invalidate = 0;
 
@@ -504,7 +504,7 @@ struct omap_lcd_panel_s *omap_lcdc_init(MemoryRegion *sysmem,
     memory_region_init_io(&s->iomem, NULL, &omap_lcdc_ops, s, "omap.lcdc", 0x100);
     memory_region_add_subregion(sysmem, base, &s->iomem);
 
-    s->con = graphic_console_init(NULL, 0, &omap_ops, s);
+    s->con = qemu_graphic_console_create(NULL, 0, &omap_ops, s);
 
     return s;
 }
diff --git a/hw/display/pl110.c b/hw/display/pl110.c
index e134ac28eb6..4a93cf4cda9 100644
--- a/hw/display/pl110.c
+++ b/hw/display/pl110.c
@@ -303,7 +303,7 @@ static bool pl110_update_display(void *opaque)
                                &first, &last);
 
     if (first >= 0) {
-        dpy_gfx_update(s->con, 0, first, s->cols, last - first + 1);
+        qemu_console_update(s->con, 0, first, s->cols, last - first + 1);
     }
     s->invalidate = 0;
     return true;
@@ -557,7 +557,7 @@ static void pl110_realize(DeviceState *dev, Error **errp)
     s->vblank_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL,
                                    pl110_vblank_interrupt, s);
     qdev_init_gpio_in(dev, pl110_mux_ctrl_set, 1);
-    s->con = graphic_console_init(dev, 0, &pl110_gfx_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &pl110_gfx_ops, s);
 }
 
 static void pl110_init(Object *obj)
diff --git a/hw/display/qxl-render.c b/hw/display/qxl-render.c
index 5b4f8842011..7b692d5a854 100644
--- a/hw/display/qxl-render.c
+++ b/hw/display/qxl-render.c
@@ -135,7 +135,7 @@ static void qxl_render_update_area_unlocked(PCIQXLDevice *qxl)
                 (width,
                  height);
         }
-        dpy_gfx_replace_surface(vga->con, surface);
+        qemu_console_set_surface(vga->con, surface);
     }
 
     if (!qxl->guest_primary.data) {
@@ -154,16 +154,16 @@ static void qxl_render_update_area_unlocked(PCIQXLDevice *qxl)
             continue;
         }
         qxl_blit(qxl, qxl->dirty+i);
-        dpy_gfx_update(vga->con,
-                       qxl->dirty[i].left, qxl->dirty[i].top,
-                       qxl->dirty[i].right - qxl->dirty[i].left,
-                       qxl->dirty[i].bottom - qxl->dirty[i].top);
+        qemu_console_update(vga->con,
+                            qxl->dirty[i].left, qxl->dirty[i].top,
+                            qxl->dirty[i].right - qxl->dirty[i].left,
+                            qxl->dirty[i].bottom - qxl->dirty[i].top);
     }
     qxl->num_dirty_rects = 0;
 
 end:
     if (qxl->render_update_cookie_num == 0) {
-        graphic_hw_update_done(qxl->ssd.dcl.con);
+        qemu_console_hw_update_done(qxl->ssd.dcl.con);
     }
 }
 
diff --git a/hw/display/qxl.c b/hw/display/qxl.c
index 4244ebe51d2..74258afa582 100644
--- a/hw/display/qxl.c
+++ b/hw/display/qxl.c
@@ -1153,13 +1153,13 @@ static void qxl_enter_vga_mode(PCIQXLDevice *d)
     }
     trace_qxl_enter_vga_mode(d->id);
     spice_qxl_driver_unload(&d->ssd.qxl);
-    graphic_console_set_hwops(d->ssd.dcl.con, d->vga.hw_ops, &d->vga);
-    update_displaychangelistener(&d->ssd.dcl, GUI_REFRESH_INTERVAL_DEFAULT);
+    qemu_graphic_console_set_hwops(d->ssd.dcl.con, d->vga.hw_ops, &d->vga);
+    qemu_console_listener_set_refresh(&d->ssd.dcl, GUI_REFRESH_INTERVAL_DEFAULT);
     qemu_spice_create_host_primary(&d->ssd);
     d->mode = QXL_MODE_VGA;
     qemu_spice_display_switch(&d->ssd, d->ssd.ds);
     vga_dirty_log_start(&d->vga);
-    graphic_hw_update(d->vga.con);
+    qemu_console_hw_update(d->vga.con);
 }
 
 static void qxl_exit_vga_mode(PCIQXLDevice *d)
@@ -1168,8 +1168,8 @@ static void qxl_exit_vga_mode(PCIQXLDevice *d)
         return;
     }
     trace_qxl_exit_vga_mode(d->id);
-    graphic_console_set_hwops(d->ssd.dcl.con, &qxl_ops, d);
-    update_displaychangelistener(&d->ssd.dcl, GUI_REFRESH_INTERVAL_IDLE);
+    qemu_graphic_console_set_hwops(d->ssd.dcl.con, &qxl_ops, d);
+    qemu_console_listener_set_refresh(&d->ssd.dcl, GUI_REFRESH_INTERVAL_IDLE);
     vga_dirty_log_stop(&d->vga);
     qxl_destroy_primary(d, QXL_SYNC);
 }
@@ -2237,7 +2237,7 @@ static void qxl_realize_primary(PCIDevice *dev, Error **errp)
     portio_list_add(&qxl->vga_port_list, pci_address_space_io(dev), 0x3b0);
     qxl->have_vga = true;
 
-    vga->con = graphic_console_init(DEVICE(dev), 0, &qxl_ops, qxl);
+    vga->con = qemu_graphic_console_create(DEVICE(dev), 0, &qxl_ops, qxl);
     qxl->id = qemu_console_get_index(vga->con); /* == channel_id */
     if (qxl->id != 0) {
         error_setg(errp, "primary qxl-vga device must be console 0 "
@@ -2262,7 +2262,7 @@ static void qxl_realize_secondary(PCIDevice *dev, Error **errp)
     memory_region_init_ram(&qxl->vga.vram, OBJECT(dev), "qxl.vgavram",
                            qxl->vga.vram_size, &error_fatal);
     qxl->vga.vram_ptr = memory_region_get_ram_ptr(&qxl->vga.vram);
-    qxl->vga.con = graphic_console_init(DEVICE(dev), 0, &qxl_ops, qxl);
+    qxl->vga.con = qemu_graphic_console_create(DEVICE(dev), 0, &qxl_ops, qxl);
     qxl->ssd.dcl.con = qxl->vga.con;
     qxl->id = qemu_console_get_index(qxl->vga.con); /* == channel_id */
 
diff --git a/hw/display/ramfb-standalone.c b/hw/display/ramfb-standalone.c
index 27f0ba19f90..8e8ba37514a 100644
--- a/hw/display/ramfb-standalone.c
+++ b/hw/display/ramfb-standalone.c
@@ -41,7 +41,7 @@ static void ramfb_realizefn(DeviceState *dev, Error **errp)
 {
     RAMFBStandaloneState *ramfb = RAMFB(dev);
 
-    ramfb->con = graphic_console_init(dev, 0, &wrapper_ops, dev);
+    ramfb->con = qemu_graphic_console_create(dev, 0, &wrapper_ops, dev);
     ramfb->state = ramfb_setup(ramfb->use_legacy_x86_rom, errp);
 }
 
diff --git a/hw/display/ramfb.c b/hw/display/ramfb.c
index 50c25706a52..7a88f934e11 100644
--- a/hw/display/ramfb.c
+++ b/hw/display/ramfb.c
@@ -111,12 +111,12 @@ void ramfb_display_update(QemuConsole *con, RAMFBState *s)
     }
 
     if (s->ds) {
-        dpy_gfx_replace_surface(con, s->ds);
+        qemu_console_set_surface(con, s->ds);
         s->ds = NULL;
     }
 
     /* simple full screen update */
-    dpy_gfx_update_full(con);
+    qemu_console_update_full(con);
 }
 
 static int ramfb_post_load(void *opaque, int version_id)
diff --git a/hw/display/sm501.c b/hw/display/sm501.c
index a3993ceba29..af870048372 100644
--- a/hw/display/sm501.c
+++ b/hw/display/sm501.c
@@ -1822,7 +1822,7 @@ static bool sm501_update_display(void *opaque)
         } else {
             if (y_start >= 0) {
                 /* flush to display */
-                dpy_gfx_update(s->con, 0, y_start, width, y - y_start);
+                qemu_console_update(s->con, 0, y_start, width, y - y_start);
                 y_start = -1;
             }
         }
@@ -1831,7 +1831,7 @@ static bool sm501_update_display(void *opaque)
 
     /* complete flush to display */
     if (y_start >= 0) {
-        dpy_gfx_update(s->con, 0, y_start, width, y - y_start);
+        qemu_console_update(s->con, 0, y_start, width, y - y_start);
     }
 
     return true;
@@ -1936,7 +1936,7 @@ static void sm501_init(SM501State *s, DeviceState *dev,
                                 &s->twoD_engine_region);
 
     /* create qemu graphic console */
-    s->con = graphic_console_init(dev, 0, &sm501_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &sm501_ops, s);
 }
 
 static const VMStateDescription vmstate_sm501_state = {
diff --git a/hw/display/ssd0303.c b/hw/display/ssd0303.c
index 229856cc427..4e3dede33f1 100644
--- a/hw/display/ssd0303.c
+++ b/hw/display/ssd0303.c
@@ -268,7 +268,7 @@ static bool ssd0303_update_display(void *opaque)
         }
     }
     s->redraw = 0;
-    dpy_gfx_update(s->con, 0, 0, 96 * MAGNIFY, 16 * MAGNIFY);
+    qemu_console_update(s->con, 0, 0, 96 * MAGNIFY, 16 * MAGNIFY);
 
     return true;
 }
@@ -309,7 +309,7 @@ static void ssd0303_realize(DeviceState *dev, Error **errp)
 {
     ssd0303_state *s = SSD0303(dev);
 
-    s->con = graphic_console_init(dev, 0, &ssd0303_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &ssd0303_ops, s);
     qemu_console_resize(s->con, 96 * MAGNIFY, 16 * MAGNIFY);
 }
 
diff --git a/hw/display/ssd0323.c b/hw/display/ssd0323.c
index 67db16086c8..9309d4d10c4 100644
--- a/hw/display/ssd0323.c
+++ b/hw/display/ssd0323.c
@@ -270,7 +270,8 @@ static bool ssd0323_update_display(void *opaque)
         }
     }
     s->redraw = 0;
-    dpy_gfx_update(s->con, 0, 0, 128 * MAGNIFY, 64 * MAGNIFY);
+    qemu_console_update(s->con, 0, 0, 128 * MAGNIFY, 64 * MAGNIFY);
+
     return true;
 }
 
@@ -356,7 +357,7 @@ static void ssd0323_realize(SSIPeripheral *d, Error **errp)
 
     s->col_end = 63;
     s->row_end = 79;
-    s->con = graphic_console_init(dev, 0, &ssd0323_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &ssd0323_ops, s);
     qemu_console_resize(s->con, 128 * MAGNIFY, 64 * MAGNIFY);
 
     qdev_init_gpio_in(dev, ssd0323_cd, 1);
diff --git a/hw/display/tcx.c b/hw/display/tcx.c
index cedbf5c7acd..2c33a9c4a32 100644
--- a/hw/display/tcx.c
+++ b/hw/display/tcx.c
@@ -243,8 +243,7 @@ static bool tcx_update_display(void *opaque)
         } else {
             if (y_start >= 0) {
                 /* flush to display */
-                dpy_gfx_update(ts->con, 0, y_start,
-                               ts->width, y - y_start);
+                qemu_console_update(ts->con, 0, y_start, ts->width, y - y_start);
                 y_start = -1;
             }
         }
@@ -253,8 +252,7 @@ static bool tcx_update_display(void *opaque)
     }
     if (y_start >= 0) {
         /* flush to display */
-        dpy_gfx_update(ts->con, 0, y_start,
-                       ts->width, y - y_start);
+        qemu_console_update(ts->con, 0, y_start, ts->width, y - y_start);
     }
     g_free(snap);
     return true;
@@ -297,8 +295,7 @@ static bool tcx24_update_display(void *opaque)
         } else {
             if (y_start >= 0) {
                 /* flush to display */
-                dpy_gfx_update(ts->con, 0, y_start,
-                               ts->width, y - y_start);
+                qemu_console_update(ts->con, 0, y_start, ts->width, y - y_start);
                 y_start = -1;
             }
         }
@@ -309,8 +306,7 @@ static bool tcx24_update_display(void *opaque)
     }
     if (y_start >= 0) {
         /* flush to display */
-        dpy_gfx_update(ts->con, 0, y_start,
-                       ts->width, y - y_start);
+        qemu_console_update(ts->con, 0, y_start, ts->width, y - y_start);
     }
     g_free(snap);
     return true;
@@ -864,9 +860,9 @@ static void tcx_realize(DeviceState *dev, Error **errp)
     sysbus_init_irq(sbd, &s->irq);
 
     if (s->depth == 8) {
-        s->con = graphic_console_init(dev, 0, &tcx_ops, s);
+        s->con = qemu_graphic_console_create(dev, 0, &tcx_ops, s);
     } else {
-        s->con = graphic_console_init(dev, 0, &tcx24_ops, s);
+        s->con = qemu_graphic_console_create(dev, 0, &tcx24_ops, s);
     }
     s->thcmisc = 0;
 
diff --git a/hw/display/vga-isa.c b/hw/display/vga-isa.c
index 5f55c884a1b..2cccb0ef12e 100644
--- a/hw/display/vga-isa.c
+++ b/hw/display/vga-isa.c
@@ -79,7 +79,7 @@ static void vga_isa_realizefn(DeviceState *dev, Error **errp)
                                         0x000a0000,
                                         vga_io_memory, 1);
     memory_region_set_coalescing(vga_io_memory);
-    s->con = graphic_console_init(dev, 0, s->hw_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, s->hw_ops, s);
 
     memory_region_add_subregion(isa_address_space(isadev),
                                 VBE_DISPI_LFB_PHYSICAL_ADDRESS,
diff --git a/hw/display/vga-mmio.c b/hw/display/vga-mmio.c
index 1a9608d865f..3cd64951c09 100644
--- a/hw/display/vga-mmio.c
+++ b/hw/display/vga-mmio.c
@@ -108,7 +108,7 @@ static void vga_mmio_realizefn(DeviceState *dev, Error **errp)
     }
 
     sysbus_init_mmio(sbd, &s->vga.vram);
-    s->vga.con = graphic_console_init(dev, 0, s->vga.hw_ops, &s->vga);
+    s->vga.con = qemu_graphic_console_create(dev, 0, s->vga.hw_ops, &s->vga);
 }
 
 static const Property vga_mmio_properties[] = {
diff --git a/hw/display/vga-pci.c b/hw/display/vga-pci.c
index 4e68dd57a17..d089847bdae 100644
--- a/hw/display/vga-pci.c
+++ b/hw/display/vga-pci.c
@@ -247,7 +247,7 @@ static void pci_std_vga_realize(PCIDevice *dev, Error **errp)
     vga_init(s, OBJECT(dev), pci_address_space(dev), pci_address_space_io(dev),
              true);
 
-    s->con = graphic_console_init(DEVICE(dev), 0, s->hw_ops, s);
+    s->con = qemu_graphic_console_create(DEVICE(dev), 0, s->hw_ops, s);
 
     /* XXX: VGA_RAM_SIZE must be a power of two */
     pci_register_bar(&d->dev, 0, PCI_BASE_ADDRESS_MEM_PREFETCH, &s->vram);
@@ -282,7 +282,7 @@ static void pci_secondary_vga_realize(PCIDevice *dev, Error **errp)
     if (!vga_common_init(s, OBJECT(dev), errp)) {
         return;
     }
-    s->con = graphic_console_init(DEVICE(dev), 0, s->hw_ops, s);
+    s->con = qemu_graphic_console_create(DEVICE(dev), 0, s->hw_ops, s);
 
     /* mmio bar */
     memory_region_init_io(&d->mmio, OBJECT(dev), &unassigned_io_ops, NULL,
@@ -306,7 +306,7 @@ static void pci_secondary_vga_exit(PCIDevice *dev)
     PCIVGAState *d = PCI_VGA(dev);
     VGACommonState *s = &d->vga;
 
-    graphic_console_close(s->con);
+    qemu_graphic_console_close(s->con);
     memory_region_del_subregion(&d->mmio, &d->mrs[0]);
     memory_region_del_subregion(&d->mmio, &d->mrs[1]);
     if (d->flags & (1 << PCI_VGA_FLAG_ENABLE_QEXT)) {
diff --git a/hw/display/vga.c b/hw/display/vga.c
index 2f266f47a39..0ac4bf37310 100644
--- a/hw/display/vga.c
+++ b/hw/display/vga.c
@@ -1246,7 +1246,7 @@ static void vga_draw_text(VGACommonState *s, int full_update)
         s->last_scr_height = height * cheight;
         qemu_console_resize(s->con, s->last_scr_width, s->last_scr_height);
         surface = qemu_console_surface(s->con);
-        dpy_text_resize(s->con, width, height);
+        qemu_console_text_resize(s->con, width, height);
         s->last_depth = 0;
         s->last_width = width;
         s->last_height = height;
@@ -1365,8 +1365,8 @@ static void vga_draw_text(VGACommonState *s, int full_update)
             ch_attr_ptr++;
         }
         if (cx_max != -1) {
-            dpy_gfx_update(s->con, cx_min * cw, cy * cheight,
-                           (cx_max - cx_min + 1) * cw, cheight);
+            qemu_console_update(s->con, cx_min * cw, cy * cheight,
+                                (cx_max - cx_min + 1) * cw, cheight);
         }
         dest += linesize * cheight;
         line1 = line + cheight;
@@ -1610,7 +1610,7 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
      */
     format = qemu_default_pixman_format(depth, !byteswap);
     if (format) {
-        allocate_surface = !dpy_gfx_check_format(s->con, format)
+        allocate_surface = !qemu_console_check_format(s->con, format)
             || s->force_shadow || force_shadow;
     } else {
         allocate_surface = true;
@@ -1647,7 +1647,7 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
             surface = qemu_create_displaysurface_from(disp_width,
                     height, format, s->params.line_offset,
                     s->vram_ptr + (s->params.start_addr * 4));
-            dpy_gfx_replace_surface(s->con, surface);
+            qemu_console_set_surface(s->con, surface);
         } else {
             qemu_console_resize(s->con, disp_width, height);
             surface = qemu_console_surface(s->con);
@@ -1720,8 +1720,7 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
         } else {
             if (y_start >= 0) {
                 /* flush to display */
-                dpy_gfx_update(s->con, 0, y_start,
-                               disp_width, y - y_start);
+                qemu_console_update(s->con, 0, y_start, disp_width, y - y_start);
                 y_start = -1;
             }
         }
@@ -1745,8 +1744,7 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
     }
     if (y_start >= 0) {
         /* flush to display */
-        dpy_gfx_update(s->con, 0, y_start,
-                       disp_width, y - y_start);
+        qemu_console_update(s->con, 0, y_start, disp_width, y - y_start);
     }
     g_free(snap);
     memset(s->invalidated_y_table, 0, sizeof(s->invalidated_y_table));
@@ -1767,7 +1765,7 @@ static void vga_draw_blank(VGACommonState *s, int full_update)
         /* unshare buffer, otherwise the blanking corrupts vga vram */
         surface = qemu_create_displaysurface(s->last_scr_width,
                                              s->last_scr_height);
-        dpy_gfx_replace_surface(s->con, surface);
+        qemu_console_set_surface(s->con, surface);
     }
 
     w = s->last_scr_width * surface_bytes_per_pixel(surface);
@@ -1776,7 +1774,7 @@ static void vga_draw_blank(VGACommonState *s, int full_update)
         memset(d, 0, w);
         d += surface_stride(surface);
     }
-    dpy_gfx_update_full(s->con);
+    qemu_console_update_full(s->con);
 }
 
 #define GMODE_TEXT     0
@@ -1967,7 +1965,7 @@ static void vga_update_text(void *opaque, uint32_t *chardata)
             s->last_scr_width = width * cw;
             s->last_scr_height = height * cheight;
             qemu_console_resize(s->con, s->last_scr_width, s->last_scr_height);
-            dpy_text_resize(s->con, width, height);
+            qemu_console_text_resize(s->con, width, height);
             s->last_depth = 0;
             s->last_width = width;
             s->last_height = height;
@@ -1992,11 +1990,11 @@ static void vga_update_text(void *opaque, uint32_t *chardata)
             s->cr[VGA_CRTC_CURSOR_END] != s->cursor_end || full_update) {
             cursor_visible = !(s->cr[VGA_CRTC_CURSOR_START] & 0x20);
             if (cursor_visible && cursor_offset < size && cursor_offset >= 0)
-                dpy_text_cursor(s->con,
-                                TEXTMODE_X(cursor_offset),
-                                TEXTMODE_Y(cursor_offset));
+                qemu_console_text_set_cursor(s->con,
+                                             TEXTMODE_X(cursor_offset),
+                                             TEXTMODE_Y(cursor_offset));
             else
-                dpy_text_cursor(s->con, -1, -1);
+                qemu_console_text_set_cursor(s->con, -1, -1);
             s->cursor_offset = cursor_offset;
             s->cursor_start = s->cr[VGA_CRTC_CURSOR_START];
             s->cursor_end = s->cr[VGA_CRTC_CURSOR_END];
@@ -2009,7 +2007,7 @@ static void vga_update_text(void *opaque, uint32_t *chardata)
             for (i = 0; i < size; src ++, dst ++, i ++)
                 *dst = VMEM2CHTYPE(le32_to_cpu(*src));
 
-            dpy_text_update(s->con, 0, 0, width, height);
+            qemu_console_text_update(s->con, 0, 0, width, height);
         } else {
             c_max = 0;
 
@@ -2032,7 +2030,7 @@ static void vga_update_text(void *opaque, uint32_t *chardata)
 
             if (c_min <= c_max) {
                 i = TEXTMODE_Y(c_min);
-                dpy_text_update(s->con, 0, i, width, TEXTMODE_Y(c_max) - i + 1);
+                qemu_console_text_update(s->con, 0, i, width, TEXTMODE_Y(c_max) - i + 1);
             }
         }
 
@@ -2057,8 +2055,8 @@ static void vga_update_text(void *opaque, uint32_t *chardata)
     /* Display a message */
     s->last_width = 60;
     s->last_height = height = 3;
-    dpy_text_cursor(s->con, -1, -1);
-    dpy_text_resize(s->con, s->last_width, height);
+    qemu_console_text_set_cursor(s->con, -1, -1);
+    qemu_console_text_resize(s->con, s->last_width, height);
 
     for (dst = chardata, i = 0; i < s->last_width * height; i ++)
         *dst++ = ' ';
@@ -2070,7 +2068,7 @@ static void vga_update_text(void *opaque, uint32_t *chardata)
         *dst++ = ATTR2CHTYPE(msg_buffer[i], QEMU_COLOR_BLUE,
                              QEMU_COLOR_BLACK, 1);
 
-    dpy_text_update(s->con, 0, 0, s->last_width, height);
+    qemu_console_text_update(s->con, 0, 0, s->last_width, height);
 }
 
 static uint64_t vga_mem_read(void *opaque, hwaddr addr,
diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c
index 3f6fb7a8033..6e5e6540a46 100644
--- a/hw/display/vhost-user-gpu.c
+++ b/hw/display/vhost-user-gpu.c
@@ -142,11 +142,11 @@ vhost_user_gpu_handle_cursor(VhostUserGPU *g, VhostUserGpuMsg *msg)
         memcpy(s->current_cursor->data, up->data,
                64 * 64 * sizeof(uint32_t));
 
-        dpy_cursor_define(s->con, s->current_cursor);
+        qemu_console_set_cursor(s->con, s->current_cursor);
     }
 
-    dpy_mouse_set(s->con, pos->x, pos->y,
-                  msg->request != VHOST_USER_GPU_CURSOR_POS_HIDE);
+    qemu_console_set_mouse(s->con, pos->x, pos->y,
+                           msg->request != VHOST_USER_GPU_CURSOR_POS_HIDE);
 }
 
 static void
@@ -238,7 +238,7 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)
         con = s->con;
 
         if (m->width == 0) {
-            dpy_gfx_replace_surface(con, NULL);
+            qemu_console_set_surface(con, NULL);
         } else {
             s->ds = qemu_create_displaysurface(m->width, m->height);
             /* replace surface on next update */
@@ -269,12 +269,12 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)
 
         if (dmabuf) {
             qemu_dmabuf_close(dmabuf);
-            dpy_gl_release_dmabuf(con, dmabuf);
+            qemu_console_gl_release_dmabuf(con, dmabuf);
             g_clear_pointer(&dmabuf, qemu_dmabuf_free);
         }
 
         if (fd == -1) {
-            dpy_gl_scanout_disable(con);
+            qemu_console_gl_scanout_disable(con);
             g->dmabuf[m->scanout_id] = NULL;
             break;
         }
@@ -291,7 +291,7 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)
                                  &fd, 1, false, m->fd_flags &
                                  VIRTIO_GPU_RESOURCE_FLAG_Y_0_TOP);
 
-        dpy_gl_scanout_dmabuf(con, dmabuf);
+        qemu_console_gl_scanout_dmabuf(con, dmabuf);
         g->dmabuf[m->scanout_id] = dmabuf;
         break;
     }
@@ -306,13 +306,13 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)
         }
 
         con = g->parent_obj.scanout[m->scanout_id].con;
-        if (!console_has_gl(con)) {
+        if (!qemu_console_has_gl(con)) {
             error_report("console doesn't support GL!");
             vhost_user_gpu_unblock(g);
             break;
         }
         g->backend_blocked = true;
-        dpy_gl_update(con, m->x, m->y, m->width, m->height);
+        qemu_console_gl_update(con, m->x, m->y, m->width, m->height);
         break;
     }
 #ifdef CONFIG_PIXMAN
@@ -337,9 +337,9 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)
 
         pixman_image_unref(image);
         if (qemu_console_surface(con) != s->ds) {
-            dpy_gfx_replace_surface(con, s->ds);
+            qemu_console_set_surface(con, s->ds);
         } else {
-            dpy_gfx_update(con, m->x, m->y, m->width, m->height);
+            qemu_console_update(con, m->x, m->y, m->width, m->height);
         }
         break;
     }
diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c
index bdc24492850..a68b1848295 100644
--- a/hw/display/virtio-gpu-base.c
+++ b/hw/display/virtio-gpu-base.c
@@ -253,7 +253,7 @@ virtio_gpu_base_device_realize(DeviceState *qdev,
     g->hw_ops = &virtio_gpu_ops;
     for (i = 0; i < g->conf.max_outputs; i++) {
         g->scanout[i].con =
-            graphic_console_init(DEVICE(g), i, &virtio_gpu_ops, g);
+            qemu_graphic_console_create(DEVICE(g), i, &virtio_gpu_ops, g);
     }
 
     return true;
diff --git a/hw/display/virtio-gpu-rutabaga.c b/hw/display/virtio-gpu-rutabaga.c
index ebb6c783fb0..6ff12639012 100644
--- a/hw/display/virtio-gpu-rutabaga.c
+++ b/hw/display/virtio-gpu-rutabaga.c
@@ -282,7 +282,7 @@ rutabaga_cmd_resource_flush(VirtIOGPU *g, struct virtio_gpu_ctrl_command *cmd)
                                              rf.resource_id, &transfer,
                                              &transfer_iovec);
     CHECK(!result, cmd);
-    dpy_gfx_update_full(scanout->con);
+    qemu_console_update_full(scanout->con);
 }
 
 static void
@@ -306,8 +306,8 @@ rutabaga_cmd_set_scanout(VirtIOGPU *g, struct virtio_gpu_ctrl_command *cmd)
     scanout = &vb->scanout[ss.scanout_id];
 
     if (ss.resource_id == 0) {
-        dpy_gfx_replace_surface(scanout->con, NULL);
-        dpy_gl_scanout_disable(scanout->con);
+        qemu_console_set_surface(scanout->con, NULL);
+        qemu_console_gl_scanout_disable(scanout->con);
         return;
     }
 
@@ -331,8 +331,8 @@ rutabaga_cmd_set_scanout(VirtIOGPU *g, struct virtio_gpu_ctrl_command *cmd)
 
     /* realloc the surface ptr */
     scanout->ds = qemu_create_displaysurface_pixman(res->image);
-    dpy_gfx_replace_surface(scanout->con, NULL);
-    dpy_gfx_replace_surface(scanout->con, scanout->ds);
+    qemu_console_set_surface(scanout->con, NULL);
+    qemu_console_set_surface(scanout->con, scanout->ds);
     res->scanout_bitmask = ss.scanout_id;
 }
 
diff --git a/hw/display/virtio-gpu-udmabuf.c b/hw/display/virtio-gpu-udmabuf.c
index 74b6a7766af..d5ac1cfca0e 100644
--- a/hw/display/virtio-gpu-udmabuf.c
+++ b/hw/display/virtio-gpu-udmabuf.c
@@ -156,7 +156,7 @@ static void virtio_gpu_free_dmabuf(VirtIOGPU *g, VGPUDMABuf *dmabuf)
     struct virtio_gpu_scanout *scanout;
 
     scanout = &g->parent_obj.scanout[dmabuf->scanout_id];
-    dpy_gl_release_dmabuf(scanout->con, dmabuf->buf);
+    qemu_console_gl_release_dmabuf(scanout->con, dmabuf->buf);
     g_clear_pointer(&dmabuf->buf, qemu_dmabuf_free);
     QTAILQ_REMOVE(&g->dmabuf.bufs, dmabuf, next);
     g_free(dmabuf);
@@ -232,7 +232,7 @@ int virtio_gpu_update_dmabuf(VirtIOGPU *g,
     height = qemu_dmabuf_get_height(new_primary->buf);
     g->dmabuf.primary[scanout_id] = new_primary;
     qemu_console_resize(scanout->con, width, height);
-    dpy_gl_scanout_dmabuf(scanout->con, new_primary->buf);
+    qemu_console_gl_scanout_dmabuf(scanout->con, new_primary->buf);
 
     if (old_primary) {
         virtio_gpu_free_dmabuf(g, old_primary);
diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c
index add85bd4e61..60c78af06a4 100644
--- a/hw/display/virtio-gpu-virgl.c
+++ b/hw/display/virtio-gpu-virgl.c
@@ -521,7 +521,7 @@ static void virtio_gpu_rect_update(VirtIOGPU *g, int idx, int x, int y,
         return;
     }
 
-    dpy_gl_update(g->parent_obj.scanout[idx].con, x, y, width, height);
+    qemu_console_gl_update(g->parent_obj.scanout[idx].con, x, y, width, height);
 }
 
 static void virgl_cmd_resource_flush(VirtIOGPU *g,
@@ -584,16 +584,15 @@ static void virgl_cmd_set_scanout(VirtIOGPU *g,
         qemu_console_resize(g->parent_obj.scanout[ss.scanout_id].con,
                             ss.r.width, ss.r.height);
         virgl_renderer_force_ctx_0();
-        dpy_gl_scanout_texture(
+        qemu_console_gl_scanout_texture(
             g->parent_obj.scanout[ss.scanout_id].con, info.tex_id,
             info.flags & VIRTIO_GPU_RESOURCE_FLAG_Y_0_TOP,
             info.width, info.height,
             ss.r.x, ss.r.y, ss.r.width, ss.r.height,
             d3d_tex2d);
     } else {
-        dpy_gfx_replace_surface(
-            g->parent_obj.scanout[ss.scanout_id].con, NULL);
-        dpy_gl_scanout_disable(g->parent_obj.scanout[ss.scanout_id].con);
+        qemu_console_set_surface(g->parent_obj.scanout[ss.scanout_id].con, NULL);
+        qemu_console_gl_scanout_disable(g->parent_obj.scanout[ss.scanout_id].con);
     }
     g->parent_obj.scanout[ss.scanout_id].resource_id = ss.resource_id;
 }
@@ -1315,7 +1314,7 @@ virgl_create_context(void *opaque, int scanout_idx,
     qparams.major_ver = params->major_ver;
     qparams.minor_ver = params->minor_ver;
 
-    ctx = dpy_gl_ctx_create(g->parent_obj.scanout[scanout_idx].con, &qparams);
+    ctx = qemu_console_gl_ctx_create(g->parent_obj.scanout[scanout_idx].con, &qparams);
     return (virgl_renderer_gl_context)ctx;
 }
 
@@ -1324,7 +1323,7 @@ static void virgl_destroy_context(void *opaque, virgl_renderer_gl_context ctx)
     VirtIOGPU *g = opaque;
     QEMUGLContext qctx = (QEMUGLContext)ctx;
 
-    dpy_gl_ctx_destroy(g->parent_obj.scanout[0].con, qctx);
+    qemu_console_gl_ctx_destroy(g->parent_obj.scanout[0].con, qctx);
 }
 
 static int virgl_make_context_current(void *opaque, int scanout_idx,
@@ -1333,8 +1332,7 @@ static int virgl_make_context_current(void *opaque, int scanout_idx,
     VirtIOGPU *g = opaque;
     QEMUGLContext qctx = (QEMUGLContext)ctx;
 
-    return dpy_gl_ctx_make_current(g->parent_obj.scanout[scanout_idx].con,
-                                   qctx);
+    return qemu_console_gl_ctx_make_current(g->parent_obj.scanout[scanout_idx].con, qctx);
 }
 
 static struct virgl_renderer_callbacks virtio_gpu_3d_cbs = {
@@ -1399,8 +1397,8 @@ void virtio_gpu_virgl_reset_scanout(VirtIOGPU *g)
     int i;
 
     for (i = 0; i < g->parent_obj.conf.max_outputs; i++) {
-        dpy_gfx_replace_surface(g->parent_obj.scanout[i].con, NULL);
-        dpy_gl_scanout_disable(g->parent_obj.scanout[i].con);
+        qemu_console_set_surface(g->parent_obj.scanout[i].con, NULL);
+        qemu_console_gl_scanout_disable(g->parent_obj.scanout[i].con);
     }
 }
 
diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index dbb72bbb22d..88526051a99 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -103,14 +103,14 @@ static void update_cursor(VirtIOGPU *g, struct virtio_gpu_update_cursor *cursor)
         if (cursor->resource_id > 0) {
             vgc->update_cursor_data(g, s, cursor->resource_id);
         }
-        dpy_cursor_define(s->con, s->current_cursor);
+        qemu_console_set_cursor(s->con, s->current_cursor);
 
         s->cursor = *cursor;
     } else {
         s->cursor.pos.x = cursor->pos.x;
         s->cursor.pos.y = cursor->pos.y;
     }
-    dpy_mouse_set(s->con, cursor->pos.x, cursor->pos.y, cursor->resource_id);
+    qemu_console_set_mouse(s->con, cursor->pos.x, cursor->pos.y, cursor->resource_id);
 }
 
 struct virtio_gpu_simple_resource *
@@ -390,7 +390,7 @@ void virtio_gpu_disable_scanout(VirtIOGPU *g, int scanout_id)
         res->scanout_bitmask &= ~(1 << scanout_id);
     }
 
-    dpy_gfx_replace_surface(scanout->con, NULL);
+    qemu_console_set_surface(scanout->con, NULL);
     scanout->resource_id = 0;
     scanout->ds = NULL;
     scanout->width = 0;
@@ -531,8 +531,8 @@ static void virtio_gpu_resource_flush(VirtIOGPU *g,
                 rf.r.y + rf.r.height >= scanout->y) {
                 within_bounds = true;
 
-                if (console_has_gl(scanout->con)) {
-                    dpy_gl_update(scanout->con, 0, 0, scanout->width,
+                if (qemu_console_has_gl(scanout->con)) {
+                    qemu_console_gl_update(scanout->con, 0, 0, scanout->width,
                                   scanout->height);
                     update_submitted = true;
                 }
@@ -582,8 +582,8 @@ static void virtio_gpu_resource_flush(VirtIOGPU *g,
         /* work out the area we need to update for each console */
         if (qemu_rect_intersect(&flush_rect, &rect, &rect)) {
             qemu_rect_translate(&rect, -scanout->x, -scanout->y);
-            dpy_gfx_update(g->parent_obj.scanout[i].con,
-                           rect.x, rect.y, rect.width, rect.height);
+            qemu_console_update(g->parent_obj.scanout[i].con,
+                                rect.x, rect.y, rect.width, rect.height);
         }
     }
 }
@@ -649,7 +649,7 @@ static bool virtio_gpu_do_set_scanout(VirtIOGPU *g,
     g->parent_obj.enable = 1;
 
     if (res->blob) {
-        if (console_has_gl(scanout->con)) {
+        if (qemu_console_has_gl(scanout->con)) {
             if (!virtio_gpu_update_dmabuf(g, scanout_id, res, fb, r)) {
                 virtio_gpu_update_scanout(g, scanout_id, res, fb, r);
             } else {
@@ -665,7 +665,7 @@ static bool virtio_gpu_do_set_scanout(VirtIOGPU *g,
     }
 
     /* create a surface for this scanout */
-    if ((res->blob && !console_has_gl(scanout->con)) ||
+    if ((res->blob && !qemu_console_has_gl(scanout->con)) ||
         !scanout->ds ||
         surface_data(scanout->ds) != data + fb->offset ||
         scanout->width != r->width ||
@@ -686,7 +686,7 @@ static bool virtio_gpu_do_set_scanout(VirtIOGPU *g,
         qemu_displaysurface_set_share_handle(scanout->ds, res->share_handle, fb->offset);
 
         pixman_image_unref(rect);
-        dpy_gfx_replace_surface(g->parent_obj.scanout[scanout_id].con,
+        qemu_console_set_surface(g->parent_obj.scanout[scanout_id].con,
                                 scanout->ds);
     }
 
@@ -1483,10 +1483,10 @@ static int virtio_gpu_post_load(void *opaque, int version_id)
             }
             scanout->ds = qemu_create_displaysurface_pixman(res->image);
             qemu_displaysurface_set_share_handle(scanout->ds, res->share_handle, 0);
-            dpy_gfx_replace_surface(scanout->con, scanout->ds);
+            qemu_console_set_surface(scanout->con, scanout->ds);
         }
 
-        dpy_gfx_update_full(scanout->con);
+        qemu_console_update_full(scanout->con);
         if (scanout->cursor.resource_id) {
             update_cursor(g, &scanout->cursor);
         }
@@ -1602,7 +1602,7 @@ static void virtio_gpu_reset_bh(void *opaque)
     }
 
     for (i = 0; i < g->parent_obj.conf.max_outputs; i++) {
-        dpy_gfx_replace_surface(g->parent_obj.scanout[i].con, NULL);
+        qemu_console_set_surface(g->parent_obj.scanout[i].con, NULL);
     }
 
     g->reset_finished = true;
diff --git a/hw/display/virtio-vga.c b/hw/display/virtio-vga.c
index efd4858f3d0..2ae649c91ae 100644
--- a/hw/display/virtio-vga.c
+++ b/hw/display/virtio-vga.c
@@ -172,7 +172,7 @@ static void virtio_vga_base_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
                                  vvga->vga_mrs, true, false);
 
     vga->con = g->scanout[0].con;
-    graphic_console_set_hwops(vga->con, &virtio_vga_base_ops, vvga);
+    qemu_graphic_console_set_hwops(vga->con, &virtio_vga_base_ops, vvga);
 
     for (i = 0; i < g->conf.max_outputs; i++) {
         object_property_set_link(OBJECT(g->scanout[i].con), "device",
diff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c
index 11f13c98d7a..f6f9edfd1d9 100644
--- a/hw/display/vmware_vga.c
+++ b/hw/display/vmware_vga.c
@@ -378,7 +378,7 @@ static inline void vmsvga_update_rect(struct vmsvga_state_s *s,
     for (line = h; line > 0; line--, src += bypl, dst += bypl) {
         memcpy(dst, src, width);
     }
-    dpy_gfx_update(s->vga.con, x, y, w, h);
+    qemu_console_update(s->vga.con, x, y, w, h);
 }
 
 static inline void vmsvga_update_rect_flush(struct vmsvga_state_s *s)
@@ -554,7 +554,7 @@ static inline void vmsvga_cursor_define(struct vmsvga_state_s *s,
         qc = cursor_builtin_left_ptr();
     }
 
-    dpy_cursor_define(s->vga.con, qc);
+    qemu_console_set_cursor(s->vga.con, qc);
     cursor_unref(qc);
 }
 #endif
@@ -1082,7 +1082,7 @@ static void vmsvga_value_write(void *opaque, uint32_t address, uint32_t value)
         s->cursor.on &= (value != SVGA_CURSOR_ON_HIDE);
 #ifdef HW_MOUSE_ACCEL
         if (value <= SVGA_CURSOR_ON_SHOW) {
-            dpy_mouse_set(s->vga.con, s->cursor.x, s->cursor.y, s->cursor.on);
+            qemu_console_set_mouse(s->vga.con, s->cursor.x, s->cursor.y, s->cursor.on);
         }
 #endif
         break;
@@ -1130,7 +1130,7 @@ static inline void vmsvga_check_size(struct vmsvga_state_s *s)
         surface = qemu_create_displaysurface_from(s->new_width, s->new_height,
                                                   format, stride,
                                                   s->vga.vram_ptr);
-        dpy_gfx_replace_surface(s->vga.con, surface);
+        qemu_console_set_surface(s->vga.con, surface);
         s->invalidated = 1;
     }
 }
@@ -1151,7 +1151,7 @@ static bool vmsvga_update_display(void *opaque)
 
     if (s->invalidated) {
         s->invalidated = 0;
-        dpy_gfx_update_full(s->vga.con);
+        qemu_console_update_full(s->vga.con);
     }
 
     return true;
@@ -1254,7 +1254,7 @@ static void vmsvga_init(DeviceState *dev, struct vmsvga_state_s *s,
     s->scratch_size = SVGA_SCRATCH_SIZE;
     s->scratch = g_malloc(s->scratch_size * 4);
 
-    s->vga.con = graphic_console_init(dev, 0, &vmsvga_ops, s);
+    s->vga.con = qemu_graphic_console_create(dev, 0, &vmsvga_ops, s);
 
     s->fifo_size = SVGA_FIFO_SIZE;
     memory_region_init_ram(&s->fifo_ram, NULL, "vmsvga.fifo", s->fifo_size,
diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
index 2e431e27be6..8e9953bda43 100644
--- a/hw/display/xenfb.c
+++ b/hw/display/xenfb.c
@@ -657,7 +657,7 @@ static void xenfb_guest_copy(struct XenFB *xenfb, int x, int y, int w, int h)
         xen_pv_printf(&xenfb->c.xendev, 0, "%s: oops: convert %d -> %d bpp?\n",
                       __func__, xenfb->depth, bpp);
 
-    dpy_gfx_update(xenfb->con, x, y, w, h);
+    qemu_console_update(xenfb->con, x, y, w, h);
 }
 
 #ifdef XENFB_TYPE_REFRESH_PERIOD
@@ -743,7 +743,7 @@ static bool xenfb_update(void *opaque)
             surface = qemu_create_displaysurface(xenfb->width, xenfb->height);
             break;
         }
-        dpy_gfx_replace_surface(xenfb->con, surface);
+        qemu_console_set_surface(xenfb->con, surface);
         xen_pv_printf(&xenfb->c.xendev, 1,
                       "update: resizing: %dx%d @ %d bpp%s\n",
                       xenfb->width, xenfb->height, xenfb->depth,
@@ -903,7 +903,7 @@ static int fb_initialise(struct XenLegacyDevice *xendev)
     if (rc != 0)
         return rc;
 
-    fb->con = graphic_console_init(NULL, 0, &xenfb_ops, fb);
+    fb->con = qemu_graphic_console_create(NULL, 0, &xenfb_ops, fb);
 
     if (xenstore_read_fe_int(xendev, "feature-update", &fb->feature_update) == -1)
         fb->feature_update = 0;
diff --git a/hw/display/xlnx_dp.c b/hw/display/xlnx_dp.c
index 50e6ef10984..2486d9e5825 100644
--- a/hw/display/xlnx_dp.c
+++ b/hw/display/xlnx_dp.c
@@ -605,7 +605,7 @@ static void xlnx_dp_recreate_surface(XlnxDPState *s)
 
     if ((width != 0) && (height != 0)) {
         /*
-         * As dpy_gfx_replace_surface calls qemu_free_displaysurface on the
+         * As qemu_console_replace_surface calls qemu_free_displaysurface on the
          * surface we need to be careful and don't free the surface associated
          * to the console or double free will happen.
          */
@@ -631,10 +631,10 @@ static void xlnx_dp_recreate_surface(XlnxDPState *s)
                                                             height,
                                                             s->g_plane.format,
                                                             0, NULL);
-            dpy_gfx_replace_surface(s->console, s->bout_plane.surface);
+            qemu_console_set_surface(s->console, s->bout_plane.surface);
         } else {
             s->bout_plane.surface = NULL;
-            dpy_gfx_replace_surface(s->console, s->g_plane.surface);
+            qemu_console_set_surface(s->console, s->g_plane.surface);
         }
 
         xlnx_dpdma_set_host_data_location(s->dpdma, DP_GRAPHIC_DMA_CHANNEL,
@@ -1287,7 +1287,7 @@ static bool xlnx_dp_update_display(void *opaque)
     /*
      * XXX: We might want to update only what changed.
      */
-    dpy_gfx_update_full(s->console);
+    qemu_console_update_full(s->console);
 
     return true;
 }
@@ -1387,7 +1387,7 @@ static void xlnx_dp_realize(DeviceState *dev, Error **errp)
     qdev_realize(DEVICE(s->edid), BUS(aux_get_i2c_bus(s->aux_bus)),
                  &error_fatal);
 
-    s->console = graphic_console_init(dev, 0, &xlnx_dp_gfx_ops, s);
+    s->console = qemu_graphic_console_create(dev, 0, &xlnx_dp_gfx_ops, s);
     surface = qemu_console_surface(s->console);
     xlnx_dpdma_set_host_data_location(s->dpdma, DP_GRAPHIC_DMA_CHANNEL,
                                       surface_data(surface));
diff --git a/hw/vfio/display.c b/hw/vfio/display.c
index 4a9a58036e3..8f91e83da88 100644
--- a/hw/vfio/display.c
+++ b/hw/vfio/display.c
@@ -264,7 +264,7 @@ static void vfio_display_free_one_dmabuf(VFIODisplay *dpy, VFIODMABuf *dmabuf)
     QTAILQ_REMOVE(&dpy->dmabuf.bufs, dmabuf, next);
 
     qemu_dmabuf_close(dmabuf->buf);
-    dpy_gl_release_dmabuf(dpy->con, dmabuf->buf);
+    qemu_console_gl_release_dmabuf(dpy->con, dmabuf->buf);
     g_clear_pointer(&dmabuf->buf, qemu_dmabuf_free);
     g_free(dmabuf);
 }
@@ -307,7 +307,7 @@ static bool vfio_display_dmabuf_update(void *opaque)
     if (dpy->dmabuf.primary != primary) {
         dpy->dmabuf.primary = primary;
         qemu_console_resize(dpy->con, width, height);
-        dpy_gl_scanout_dmabuf(dpy->con, primary->buf);
+        qemu_console_gl_scanout_dmabuf(dpy->con, primary->buf);
         free_bufs = true;
     }
 
@@ -321,21 +321,21 @@ static bool vfio_display_dmabuf_update(void *opaque)
     if (cursor && (new_cursor || cursor->hot_updates)) {
         bool have_hot = (cursor->hot_x != 0xffffffff &&
                          cursor->hot_y != 0xffffffff);
-        dpy_gl_cursor_dmabuf(dpy->con, cursor->buf, have_hot,
-                             cursor->hot_x, cursor->hot_y);
+        qemu_console_gl_cursor_dmabuf(dpy->con, cursor->buf, have_hot,
+                                      cursor->hot_x, cursor->hot_y);
         cursor->hot_updates = 0;
     } else if (!cursor && new_cursor) {
-        dpy_gl_cursor_dmabuf(dpy->con, NULL, false, 0, 0);
+        qemu_console_gl_cursor_dmabuf(dpy->con, NULL, false, 0, 0);
     }
 
     if (cursor && cursor->pos_updates) {
-        dpy_gl_cursor_position(dpy->con,
+        qemu_console_gl_cursor_position(dpy->con,
                                cursor->pos_x,
                                cursor->pos_y);
         cursor->pos_updates = 0;
     }
 
-    dpy_gl_update(dpy->con, 0, 0, width, height);
+    qemu_console_gl_update(dpy->con, 0, 0, width, height);
 
     if (free_bufs) {
         vfio_display_free_dmabufs(vdev);
@@ -363,7 +363,7 @@ static bool vfio_display_dmabuf_init(VFIOPCIDevice *vdev, Error **errp)
     }
 
     vdev->dpy = g_new0(VFIODisplay, 1);
-    vdev->dpy->con = graphic_console_init(DEVICE(vdev), 0,
+    vdev->dpy->con = qemu_graphic_console_create(DEVICE(vdev), 0,
                                           &vfio_display_dmabuf_ops,
                                           vdev);
     if (vdev->enable_ramfb) {
@@ -396,9 +396,9 @@ void vfio_display_reset(VFIOPCIDevice *vdev)
         return;
     }
 
-    dpy_gl_scanout_disable(vdev->dpy->con);
+    qemu_console_gl_scanout_disable(vdev->dpy->con);
     vfio_display_dmabuf_exit(vdev->dpy);
-    dpy_gfx_update_full(vdev->dpy->con);
+    qemu_console_update_full(vdev->dpy->con);
 }
 
 static bool vfio_display_region_update(void *opaque)
@@ -471,13 +471,13 @@ static bool vfio_display_region_update(void *opaque)
         dpy->region.surface = qemu_create_displaysurface_from
             (plane.width, plane.height, format,
              plane.stride, dpy->region.buffer.mmaps[0].mmap);
-        dpy_gfx_replace_surface(dpy->con, dpy->region.surface);
+        qemu_console_set_surface(dpy->con, dpy->region.surface);
     }
 
     /* full screen update */
-    dpy_gfx_update(dpy->con, 0, 0,
-                   surface_width(dpy->region.surface),
-                   surface_height(dpy->region.surface));
+    qemu_console_update(dpy->con, 0, 0,
+                        surface_width(dpy->region.surface),
+                        surface_height(dpy->region.surface));
     return true;
 
 err:
@@ -493,7 +493,7 @@ static const GraphicHwOps vfio_display_region_ops = {
 static bool vfio_display_region_init(VFIOPCIDevice *vdev, Error **errp)
 {
     vdev->dpy = g_new0(VFIODisplay, 1);
-    vdev->dpy->con = graphic_console_init(DEVICE(vdev), 0,
+    vdev->dpy->con = qemu_graphic_console_create(DEVICE(vdev), 0,
                                           &vfio_display_region_ops,
                                           vdev);
     if (vdev->enable_ramfb) {
@@ -553,7 +553,7 @@ void vfio_display_finalize(VFIOPCIDevice *vdev)
         return;
     }
 
-    graphic_console_close(vdev->dpy->con);
+    qemu_graphic_console_close(vdev->dpy->con);
     vfio_display_dmabuf_exit(vdev->dpy);
     vfio_display_region_exit(vdev->dpy);
     vfio_display_edid_exit(vdev->dpy);
diff --git a/ui/console-vc.c b/ui/console-vc.c
index 99ad6d079df..828e78c41ea 100644
--- a/ui/console-vc.c
+++ b/ui/console-vc.c
@@ -90,15 +90,15 @@ static void text_console_update(void *opaque, uint32_t *chardata)
                                           s->vt.cells[src].t_attrib.bgcol,
                                           s->vt.cells[src].t_attrib.bold);
             }
-        dpy_text_update(QEMU_CONSOLE(s), s->vt.text_x[0], s->vt.text_y[0],
-                        s->vt.text_x[1] - s->vt.text_x[0], i - s->vt.text_y[0]);
+        qemu_console_text_update(QEMU_CONSOLE(s), s->vt.text_x[0], s->vt.text_y[0],
+                                 s->vt.text_x[1] - s->vt.text_x[0], i - s->vt.text_y[0]);
         s->vt.text_x[0] = s->vt.width;
         s->vt.text_y[0] = s->vt.height;
         s->vt.text_x[1] = 0;
         s->vt.text_y[1] = 0;
     }
     if (s->vt.cursor_invalidate) {
-        dpy_text_cursor(QEMU_CONSOLE(s), s->vt.x, s->vt.y);
+        qemu_console_text_set_cursor(QEMU_CONSOLE(s), s->vt.x, s->vt.y);
         s->vt.cursor_invalidate = 0;
     }
 }
@@ -186,14 +186,14 @@ static void vc_chr_set_echo(Chardev *chr, bool echo)
 
 void qemu_text_console_update_size(QemuTextConsole *c)
 {
-    dpy_text_resize(QEMU_CONSOLE(c), c->vt.width, c->vt.height);
+    qemu_console_text_resize(QEMU_CONSOLE(c), c->vt.width, c->vt.height);
 }
 
 static void text_console_image_update(QemuVT100 *vt, int x, int y, int width, int height)
 {
     QemuTextConsole *console = container_of(vt, QemuTextConsole, vt);
 
-    dpy_gfx_update(QEMU_CONSOLE(console), x, y, width, height);
+    qemu_console_update(QEMU_CONSOLE(console), x, y, width, height);
 }
 
 static void text_console_out_flush(QemuVT100 *vt)
@@ -232,7 +232,7 @@ static bool vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         s = QEMU_TEXT_CONSOLE(object_new(TYPE_QEMU_FIXED_TEXT_CONSOLE));
     }
 
-    dpy_gfx_replace_surface(QEMU_CONSOLE(s), qemu_create_displaysurface(width, height));
+    qemu_console_set_surface(QEMU_CONSOLE(s), qemu_create_displaysurface(width, height));
     if (vc->has_encoding) {
         drv->encoding = vc->encoding;
     }
diff --git a/ui/console.c b/ui/console.c
index 22ca1c35db3..6f6330d61f1 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -129,26 +129,26 @@ static void gui_setup_refresh(DisplayState *ds)
     }
 }
 
-void graphic_hw_update_done(QemuConsole *con)
+void qemu_console_hw_update_done(QemuConsole *con)
 {
     if (con) {
         qemu_co_enter_all(&con->dump_queue, NULL);
     }
 }
 
-void graphic_hw_update(QemuConsole *con)
+void qemu_console_hw_update(QemuConsole *con)
 {
     if (!con) {
         return;
     }
     if (!con->hw_ops->gfx_update || con->hw_ops->gfx_update(con->hw)) {
-        graphic_hw_update_done(con);
+        qemu_console_hw_update_done(con);
     }
 }
 
-static void graphic_hw_update_bh(void *con)
+static void console_hw_update_bh(void *con)
 {
-    graphic_hw_update(con);
+    qemu_console_hw_update(con);
 }
 
 void qemu_console_co_wait_update(QemuConsole *con)
@@ -156,18 +156,18 @@ void qemu_console_co_wait_update(QemuConsole *con)
     if (qemu_co_queue_empty(&con->dump_queue)) {
         /* Defer the update, it will restart the pending coroutines */
         aio_bh_schedule_oneshot(qemu_get_aio_context(),
-                                graphic_hw_update_bh, con);
+                                console_hw_update_bh, con);
     }
     qemu_co_queue_wait(&con->dump_queue, NULL);
 
 }
 
-static void graphic_hw_gl_unblock_timer(void *opaque)
+static void console_hw_gl_unblock_timer(void *opaque)
 {
     warn_report("console: no gl-unblock within one second");
 }
 
-void graphic_hw_gl_block(QemuConsole *con, bool block)
+void qemu_console_hw_gl_block(QemuConsole *con, bool block)
 {
     uint64_t timeout;
     assert(con != NULL);
@@ -205,14 +205,14 @@ void qemu_console_set_window_id(QemuConsole *con, int window_id)
     con->window_id = window_id;
 }
 
-void graphic_hw_invalidate(QemuConsole *con)
+void qemu_console_hw_invalidate(QemuConsole *con)
 {
     if (con && con->hw_ops->invalidate) {
         con->hw_ops->invalidate(con->hw);
     }
 }
 
-void graphic_hw_text_update(QemuConsole *con, uint32_t *chardata)
+void qemu_console_hw_text_update(QemuConsole *con, uint32_t *chardata)
 {
     if (con && con->hw_ops->text_update) {
         con->hw_ops->text_update(con->hw, chardata);
@@ -502,7 +502,7 @@ qemu_graphic_console_init(Object *obj)
 {
 }
 
-bool console_has_gl(QemuConsole *con)
+bool qemu_console_has_gl(QemuConsole *con)
 {
     return con->gl != NULL;
 }
@@ -527,7 +527,7 @@ static bool console_compatible_with(QemuConsole *con,
 
     flags = con->hw_ops->get_flags ? con->hw_ops->get_flags(con->hw) : 0;
 
-    if (console_has_gl(con) &&
+    if (qemu_console_has_gl(con) &&
         !con->gl->ops->dpy_gl_ctx_is_compatible_dcl(con->gl, dcl)) {
         error_setg(errp, "Display %s is incompatible with the GL context",
                    dcl->ops->dpy_name);
@@ -535,7 +535,7 @@ static bool console_compatible_with(QemuConsole *con,
     }
 
     if (flags & GRAPHIC_FLAGS_GL &&
-        !console_has_gl(con)) {
+        !qemu_console_has_gl(con)) {
         error_setg(errp, "The console requires a GL context.");
         return false;
 
@@ -605,8 +605,8 @@ void qemu_console_register_listener(QemuConsole *con,
     vt100_update_cursor();
 }
 
-void update_displaychangelistener(DisplayChangeListener *dcl,
-                                  uint64_t interval)
+void qemu_console_listener_set_refresh(DisplayChangeListener *dcl,
+                                       uint64_t interval)
 {
     DisplayState *ds = dcl->ds;
 
@@ -645,7 +645,7 @@ static void dpy_set_ui_info_timer(void *opaque)
     con->hw_ops->ui_info(con->hw, head, &con->ui_info);
 }
 
-bool dpy_ui_info_supported(const QemuConsole *con)
+bool qemu_console_ui_info_supported(const QemuConsole *con)
 {
     if (con == NULL) {
         return false;
@@ -654,16 +654,16 @@ bool dpy_ui_info_supported(const QemuConsole *con)
     return con->hw_ops->ui_info != NULL;
 }
 
-const QemuUIInfo *dpy_get_ui_info(const QemuConsole *con)
+const QemuUIInfo *qemu_console_get_ui_info(const QemuConsole *con)
 {
-    assert(dpy_ui_info_supported(con));
+    assert(qemu_console_ui_info_supported(con));
 
     return &con->ui_info;
 }
 
-int dpy_set_ui_info(QemuConsole *con, QemuUIInfo *info, bool delay)
+int qemu_console_set_ui_info(QemuConsole *con, QemuUIInfo *info, bool delay)
 {
-    if (!dpy_ui_info_supported(con)) {
+    if (!qemu_console_ui_info_supported(con)) {
         return -1;
     }
     if (memcmp(&con->ui_info, info, sizeof(con->ui_info)) == 0) {
@@ -682,7 +682,7 @@ int dpy_set_ui_info(QemuConsole *con, QemuUIInfo *info, bool delay)
     return 0;
 }
 
-void dpy_gfx_update(QemuConsole *con, int x, int y, int w, int h)
+void qemu_console_update(QemuConsole *con, int x, int y, int w, int h)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -707,15 +707,15 @@ void dpy_gfx_update(QemuConsole *con, int x, int y, int w, int h)
     }
 }
 
-void dpy_gfx_update_full(QemuConsole *con)
+void qemu_console_update_full(QemuConsole *con)
 {
     int w = qemu_console_get_width(con, 0);
     int h = qemu_console_get_height(con, 0);
 
-    dpy_gfx_update(con, 0, 0, w, h);
+    qemu_console_update(con, 0, 0, w, h);
 }
 
-void dpy_gfx_replace_surface(QemuConsole *con,
+void qemu_console_set_surface(QemuConsole *con,
                              DisplaySurface *surface)
 {
     static const char placeholder_msg[] = "Display output is not active.";
@@ -753,8 +753,8 @@ void dpy_gfx_replace_surface(QemuConsole *con,
     qemu_free_displaysurface(old_surface);
 }
 
-bool dpy_gfx_check_format(QemuConsole *con,
-                          pixman_format_code_t format)
+bool qemu_console_check_format(QemuConsole *con,
+                               pixman_format_code_t format)
 {
     DisplayChangeListener *dcl;
     DisplayState *s = con->ds;
@@ -789,7 +789,7 @@ static void dpy_refresh(DisplayState *s)
     }
 }
 
-void dpy_text_cursor(QemuConsole *con, int x, int y)
+void qemu_console_text_set_cursor(QemuConsole *con, int x, int y)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -804,7 +804,7 @@ void dpy_text_cursor(QemuConsole *con, int x, int y)
     }
 }
 
-void dpy_text_update(QemuConsole *con, int x, int y, int w, int h)
+void qemu_console_text_update(QemuConsole *con, int x, int y, int w, int h)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -819,7 +819,7 @@ void dpy_text_update(QemuConsole *con, int x, int y, int w, int h)
     }
 }
 
-void dpy_text_resize(QemuConsole *con, int w, int h)
+void qemu_console_text_resize(QemuConsole *con, int w, int h)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -834,7 +834,7 @@ void dpy_text_resize(QemuConsole *con, int w, int h)
     }
 }
 
-void dpy_mouse_set(QemuConsole *c, int x, int y, bool on)
+void qemu_console_set_mouse(QemuConsole *c, int x, int y, bool on)
 {
     QemuGraphicConsole *con = QEMU_GRAPHIC_CONSOLE(c);
     DisplayState *s = c->ds;
@@ -853,7 +853,7 @@ void dpy_mouse_set(QemuConsole *c, int x, int y, bool on)
     }
 }
 
-void dpy_cursor_define(QemuConsole *c, QEMUCursor *cursor)
+void qemu_console_set_cursor(QemuConsole *c, QEMUCursor *cursor)
 {
     QemuGraphicConsole *con = QEMU_GRAPHIC_CONSOLE(c);
     DisplayState *s = c->ds;
@@ -871,26 +871,26 @@ void dpy_cursor_define(QemuConsole *c, QEMUCursor *cursor)
     }
 }
 
-QEMUGLContext dpy_gl_ctx_create(QemuConsole *con,
-                                struct QEMUGLParams *qparams)
+QEMUGLContext qemu_console_gl_ctx_create(QemuConsole *con,
+                                         QEMUGLParams *qparams)
 {
     assert(con->gl);
     return con->gl->ops->dpy_gl_ctx_create(con->gl, qparams);
 }
 
-void dpy_gl_ctx_destroy(QemuConsole *con, QEMUGLContext ctx)
+void qemu_console_gl_ctx_destroy(QemuConsole *con, QEMUGLContext ctx)
 {
     assert(con->gl);
     con->gl->ops->dpy_gl_ctx_destroy(con->gl, ctx);
 }
 
-int dpy_gl_ctx_make_current(QemuConsole *con, QEMUGLContext ctx)
+int qemu_console_gl_ctx_make_current(QemuConsole *con, QEMUGLContext ctx)
 {
     assert(con->gl);
     return con->gl->ops->dpy_gl_ctx_make_current(con->gl, ctx);
 }
 
-void dpy_gl_scanout_disable(QemuConsole *con)
+void qemu_console_gl_scanout_disable(QemuConsole *con)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -908,14 +908,14 @@ void dpy_gl_scanout_disable(QemuConsole *con)
     }
 }
 
-void dpy_gl_scanout_texture(QemuConsole *con,
-                            uint32_t backing_id,
-                            bool backing_y_0_top,
-                            uint32_t backing_width,
-                            uint32_t backing_height,
-                            uint32_t x, uint32_t y,
-                            uint32_t width, uint32_t height,
-                            void *d3d_tex2d)
+void qemu_console_gl_scanout_texture(QemuConsole *con,
+                                     uint32_t backing_id,
+                                     bool backing_y_0_top,
+                                     uint32_t backing_width,
+                                     uint32_t backing_height,
+                                     uint32_t x, uint32_t y,
+                                     uint32_t width, uint32_t height,
+                                     void *d3d_tex2d)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -939,8 +939,8 @@ void dpy_gl_scanout_texture(QemuConsole *con,
     }
 }
 
-void dpy_gl_scanout_dmabuf(QemuConsole *con,
-                           QemuDmaBuf *dmabuf)
+void qemu_console_gl_scanout_dmabuf(QemuConsole *con,
+                                    QemuDmaBuf *dmabuf)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -957,8 +957,8 @@ void dpy_gl_scanout_dmabuf(QemuConsole *con,
     }
 }
 
-void dpy_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf,
-                          bool have_hot, uint32_t hot_x, uint32_t hot_y)
+void qemu_console_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf,
+                                   bool have_hot, uint32_t hot_x, uint32_t hot_y)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -974,8 +974,8 @@ void dpy_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf,
     }
 }
 
-void dpy_gl_cursor_position(QemuConsole *con,
-                            uint32_t pos_x, uint32_t pos_y)
+void qemu_console_gl_cursor_position(QemuConsole *con,
+                                     uint32_t pos_x, uint32_t pos_y)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -990,8 +990,8 @@ void dpy_gl_cursor_position(QemuConsole *con,
     }
 }
 
-void dpy_gl_release_dmabuf(QemuConsole *con,
-                          QemuDmaBuf *dmabuf)
+void qemu_console_gl_release_dmabuf(QemuConsole *con,
+                                    QemuDmaBuf *dmabuf)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -1006,15 +1006,15 @@ void dpy_gl_release_dmabuf(QemuConsole *con,
     }
 }
 
-void dpy_gl_update(QemuConsole *con,
-                   uint32_t x, uint32_t y, uint32_t w, uint32_t h)
+void qemu_console_gl_update(QemuConsole *con,
+                            uint32_t x, uint32_t y, uint32_t w, uint32_t h)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
 
     assert(con->gl);
 
-    graphic_hw_gl_block(con, true);
+    qemu_console_hw_gl_block(con, true);
     QLIST_FOREACH(dcl, &s->listeners, next) {
         if (con != dcl->con) {
             continue;
@@ -1023,7 +1023,7 @@ void dpy_gl_update(QemuConsole *con,
             dcl->ops->dpy_gl_update(dcl, x, y, w, h);
         }
     }
-    graphic_hw_gl_block(con, false);
+    qemu_console_hw_gl_block(con, false);
 }
 
 /***********************************************************/
@@ -1060,17 +1060,17 @@ DisplayState *init_displaystate(void)
     return display_state;
 }
 
-void graphic_console_set_hwops(QemuConsole *con,
-                               const GraphicHwOps *hw_ops,
-                               void *opaque)
+void qemu_graphic_console_set_hwops(QemuConsole *con,
+                                    const GraphicHwOps *hw_ops,
+                                    void *opaque)
 {
     con->hw_ops = hw_ops;
     con->hw = opaque;
 }
 
-QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,
-                                  const GraphicHwOps *hw_ops,
-                                  void *opaque)
+QemuConsole *qemu_graphic_console_create(DeviceState *dev, uint32_t head,
+                                         const GraphicHwOps *hw_ops,
+                                         void *opaque)
 {
     static const char noinit[] =
         "Guest has not initialized the display (yet).";
@@ -1089,16 +1089,16 @@ QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,
         s = (QemuConsole *)object_new(TYPE_QEMU_GRAPHIC_CONSOLE);
     }
     QEMU_GRAPHIC_CONSOLE(s)->head = head;
-    graphic_console_set_hwops(s, hw_ops, opaque);
+    qemu_graphic_console_set_hwops(s, hw_ops, opaque);
     if (dev) {
         object_property_set_link(OBJECT(s), "device", OBJECT(dev),
                                  &error_abort);
     }
 
     surface = qemu_create_placeholder_surface(width, height, noinit);
-    dpy_gfx_replace_surface(s, surface);
+    qemu_console_set_surface(s, surface);
     s->gl_unblock_timer = timer_new_ms(QEMU_CLOCK_REALTIME,
-                                       graphic_hw_gl_unblock_timer, s);
+                                       console_hw_gl_unblock_timer, s);
     return s;
 }
 
@@ -1106,7 +1106,7 @@ static const GraphicHwOps unused_ops = {
     /* no callbacks */
 };
 
-void graphic_console_close(QemuConsole *con)
+void qemu_graphic_console_close(QemuConsole *con)
 {
     static const char unplugged[] =
         "Guest display has been unplugged";
@@ -1116,13 +1116,13 @@ void graphic_console_close(QemuConsole *con)
 
     trace_console_gfx_close(con->index);
     object_property_set_link(OBJECT(con), "device", NULL, &error_abort);
-    graphic_console_set_hwops(con, &unused_ops, NULL);
+    qemu_graphic_console_set_hwops(con, &unused_ops, NULL);
 
     if (con->gl) {
-        dpy_gl_scanout_disable(con);
+        qemu_console_gl_scanout_disable(con);
     }
     surface = qemu_create_placeholder_surface(width, height, unplugged);
-    dpy_gfx_replace_surface(con, surface);
+    qemu_console_set_surface(con, surface);
 }
 
 QemuConsole *qemu_console_lookup_default(void)
@@ -1308,7 +1308,7 @@ void qemu_console_resize(QemuConsole *s, int width, int height)
     }
 
     surface = qemu_create_displaysurface(width, height);
-    dpy_gfx_replace_surface(s, surface);
+    qemu_console_set_surface(s, surface);
 }
 
 DisplaySurface *qemu_console_surface(QemuConsole *console)
diff --git a/ui/curses.c b/ui/curses.c
index dbb5992981c..24d3713e57d 100644
--- a/ui/curses.c
+++ b/ui/curses.c
@@ -1,8 +1,8 @@
 /*
  * QEMU curses/ncurses display driver
- * 
+ *
  * Copyright (c) 2005 Andrzej Zaborowski  <balrog@zabor.org>
- * 
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
@@ -275,11 +275,11 @@ static void curses_refresh(DisplayChangeListener *dcl)
         clear();
         refresh();
         curses_calc_pad();
-        graphic_hw_invalidate(dcl->con);
+        qemu_console_hw_invalidate(dcl->con);
         invalidate = 0;
     }
 
-    graphic_hw_text_update(dcl->con, screen);
+    qemu_console_hw_text_update(dcl->con, screen);
 
     while (1) {
         /* while there are any pending key strokes to process */
diff --git a/ui/dbus-console.c b/ui/dbus-console.c
index 23f547a673d..b8e5c57b148 100644
--- a/ui/dbus-console.c
+++ b/ui/dbus-console.c
@@ -200,7 +200,7 @@ dbus_console_set_ui_info(DBusDisplayConsole *ddc,
         .height = arg_height,
     };
 
-    if (!dpy_ui_info_supported(ddc->dcl.con)) {
+    if (!qemu_console_ui_info_supported(ddc->dcl.con)) {
         g_dbus_method_invocation_return_error(invocation,
                                               DBUS_DISPLAY_ERROR,
                                               DBUS_DISPLAY_ERROR_UNSUPPORTED,
@@ -208,7 +208,7 @@ dbus_console_set_ui_info(DBusDisplayConsole *ddc,
         return DBUS_METHOD_INVOCATION_HANDLED;
     }
 
-    dpy_set_ui_info(ddc->dcl.con, &info, false);
+    qemu_console_set_ui_info(ddc->dcl.con, &info, false);
     qemu_dbus_display1_console_complete_set_uiinfo(ddc->iface, invocation);
     return DBUS_METHOD_INVOCATION_HANDLED;
 }
diff --git a/ui/dbus-listener.c b/ui/dbus-listener.c
index cc2c969686e..2e2f6ba4183 100644
--- a/ui/dbus-listener.c
+++ b/ui/dbus-listener.c
@@ -241,7 +241,7 @@ static void dbus_update_gl_cb(GObject *source_object,
     }
 #endif
 
-    graphic_hw_gl_block(ddl->dcl.con, false);
+    qemu_console_hw_gl_block(ddl->dcl.con, false);
     g_object_unref(ddl);
 }
 #endif
@@ -257,7 +257,7 @@ static void dbus_call_update_gl(DisplayChangeListener *dcl,
 
     glFlush();
 #ifdef CONFIG_GBM
-    graphic_hw_gl_block(ddl->dcl.con, true);
+    qemu_console_hw_gl_block(ddl->dcl.con, true);
     qemu_dbus_display1_listener_call_update_dmabuf(ddl->proxy,
         x, y, w, h,
         G_DBUS_CALL_FLAGS_NONE,
@@ -276,7 +276,7 @@ static void dbus_call_update_gl(DisplayChangeListener *dcl,
         Error *err = NULL;
         assert(ddl->d3d_texture);
 
-        graphic_hw_gl_block(ddl->dcl.con, true);
+        qemu_console_hw_gl_block(ddl->dcl.con, true);
         if (!d3d_texture2d_release0(ddl->d3d_texture, &err)) {
             error_report_err(err);
             return;
@@ -711,7 +711,7 @@ static void dbus_gl_refresh(DisplayChangeListener *dcl)
 {
     DBusDisplayListener *ddl = container_of(dcl, DBusDisplayListener, dcl);
 
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
 
     if (!ddl->ds || qemu_console_is_gl_blocked(ddl->dcl.con)) {
         return;
@@ -740,7 +740,7 @@ static void dbus_gl_refresh(DisplayChangeListener *dcl)
 
 static void dbus_refresh(DisplayChangeListener *dcl)
 {
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
 }
 
 #ifdef CONFIG_OPENGL
diff --git a/ui/egl-headless.c b/ui/egl-headless.c
index 4f046c975a9..878bfebb40c 100644
--- a/ui/egl-headless.c
+++ b/ui/egl-headless.c
@@ -23,7 +23,7 @@ typedef struct egl_dpy {
 
 static void egl_refresh(DisplayChangeListener *dcl)
 {
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
 }
 
 static void egl_gfx_update(DisplayChangeListener *dcl,
@@ -161,7 +161,7 @@ static void egl_scanout_flush(DisplayChangeListener *dcl,
     }
 
     egl_fb_read(edpy->ds, &edpy->blit_fb);
-    dpy_gfx_update(edpy->dcl.con, x, y, w, h);
+    qemu_console_update(edpy->dcl.con, x, y, w, h);
 }
 
 static const DisplayChangeListenerOps egl_ops = {
diff --git a/ui/gtk-egl.c b/ui/gtk-egl.c
index fa8fe8970c1..7c5c9b2428c 100644
--- a/ui/gtk-egl.c
+++ b/ui/gtk-egl.c
@@ -108,7 +108,7 @@ void gd_egl_draw(VirtualConsole *vc)
                 qemu_set_fd_handler(fence_fd, gd_hw_gl_flushed, NULL, vc);
                 return;
             }
-            graphic_hw_gl_block(vc->gfx.dcl.con, false);
+            qemu_console_hw_gl_block(vc->gfx.dcl.con, false);
         }
 #endif
     } else {
@@ -176,7 +176,7 @@ void gd_egl_refresh(DisplayChangeListener *dcl)
         return;
     }
 
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
 
     if (vc->gfx.glupdates) {
         vc->gfx.glupdates = 0;
@@ -405,7 +405,7 @@ void gd_egl_flush(DisplayChangeListener *dcl,
 
     if (vc->gfx.guest_fb.dmabuf &&
         !qemu_dmabuf_get_draw_submitted(vc->gfx.guest_fb.dmabuf)) {
-        graphic_hw_gl_block(vc->gfx.dcl.con, true);
+        qemu_console_hw_gl_block(vc->gfx.dcl.con, true);
         qemu_dmabuf_set_draw_submitted(vc->gfx.guest_fb.dmabuf, true);
         gtk_egl_set_scanout_mode(vc, true);
         gtk_widget_queue_draw_area(area, x, y, w, h);
diff --git a/ui/gtk-gl-area.c b/ui/gtk-gl-area.c
index ce49000d3f1..23806b9d01b 100644
--- a/ui/gtk-gl-area.c
+++ b/ui/gtk-gl-area.c
@@ -131,7 +131,7 @@ void gd_gl_area_draw(VirtualConsole *vc)
                 qemu_set_fd_handler(fence_fd, gd_hw_gl_flushed, NULL, vc);
                 return;
             }
-            graphic_hw_gl_block(vc->gfx.dcl.con, false);
+            qemu_console_hw_gl_block(vc->gfx.dcl.con, false);
         }
 #endif
     } else {
@@ -195,7 +195,7 @@ void gd_gl_area_refresh(DisplayChangeListener *dcl)
         }
     }
 
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
 
     if (vc->gfx.glupdates) {
         vc->gfx.glupdates = 0;
@@ -347,7 +347,7 @@ void gd_gl_area_scanout_flush(DisplayChangeListener *dcl,
 
     if (vc->gfx.guest_fb.dmabuf &&
         !qemu_dmabuf_get_draw_submitted(vc->gfx.guest_fb.dmabuf)) {
-        graphic_hw_gl_block(vc->gfx.dcl.con, true);
+        qemu_console_hw_gl_block(vc->gfx.dcl.con, true);
         qemu_dmabuf_set_draw_submitted(vc->gfx.guest_fb.dmabuf, true);
         gtk_gl_area_set_scanout_mode(vc, true);
     }
diff --git a/ui/gtk.c b/ui/gtk.c
index ef3707b3634..2c61b601f78 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -436,7 +436,7 @@ static void gd_update(DisplayChangeListener *dcl,
 
 static void gd_refresh(DisplayChangeListener *dcl)
 {
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
 }
 
 static GdkDevice *gd_get_pointer(GdkDisplay *dpy)
@@ -602,7 +602,7 @@ void gd_hw_gl_flushed(void *vcon)
         qemu_set_fd_handler(fence_fd, NULL, NULL, NULL);
         close(fence_fd);
         qemu_dmabuf_set_fence_fd(dmabuf, -1);
-        graphic_hw_gl_block(vc->gfx.dcl.con, false);
+        qemu_console_hw_gl_block(vc->gfx.dcl.con, false);
     }
 }
 
@@ -729,27 +729,27 @@ static void gd_set_ui_refresh_rate(VirtualConsole *vc, int refresh_rate)
 {
     QemuUIInfo info;
 
-    if (!dpy_ui_info_supported(vc->gfx.dcl.con)) {
+    if (!qemu_console_ui_info_supported(vc->gfx.dcl.con)) {
         return;
     }
 
-    info = *dpy_get_ui_info(vc->gfx.dcl.con);
+    info = *qemu_console_get_ui_info(vc->gfx.dcl.con);
     info.refresh_rate = refresh_rate;
-    dpy_set_ui_info(vc->gfx.dcl.con, &info, true);
+    qemu_console_set_ui_info(vc->gfx.dcl.con, &info, true);
 }
 
 static void gd_set_ui_size(VirtualConsole *vc, gint width, gint height)
 {
     QemuUIInfo info;
 
-    if (!dpy_ui_info_supported(vc->gfx.dcl.con)) {
+    if (!qemu_console_ui_info_supported(vc->gfx.dcl.con)) {
         return;
     }
 
-    info = *dpy_get_ui_info(vc->gfx.dcl.con);
+    info = *qemu_console_get_ui_info(vc->gfx.dcl.con);
     info.width = width;
     info.height = height;
-    dpy_set_ui_info(vc->gfx.dcl.con, &info, true);
+    qemu_console_set_ui_info(vc->gfx.dcl.con, &info, true);
 }
 
 #if defined(CONFIG_OPENGL)
@@ -2333,7 +2333,7 @@ static GSList *gd_vc_gfx_init(GtkDisplayState *s, VirtualConsole *vc,
     gd_connect_vc_gfx_signals(vc);
     group = gd_vc_menu_init(s, vc, idx, group, view_menu);
 
-    if (dpy_ui_info_supported(vc->gfx.dcl.con)) {
+    if (qemu_console_ui_info_supported(vc->gfx.dcl.con)) {
         zoom_to_fit = true;
     }
     if (s->opts->u.gtk.has_zoom_to_fit) {
diff --git a/ui/sdl2-2d.c b/ui/sdl2-2d.c
index 73052383c2e..68a3aff7151 100644
--- a/ui/sdl2-2d.c
+++ b/ui/sdl2-2d.c
@@ -129,7 +129,7 @@ void sdl2_2d_refresh(DisplayChangeListener *dcl)
     struct sdl2_console *scon = container_of(dcl, struct sdl2_console, dcl);
 
     assert(!scon->opengl);
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
     sdl2_poll_events(scon);
 }
 
diff --git a/ui/sdl2-gl.c b/ui/sdl2-gl.c
index bb066cdd885..1547ad2f6f8 100644
--- a/ui/sdl2-gl.c
+++ b/ui/sdl2-gl.c
@@ -115,7 +115,7 @@ void sdl2_gl_refresh(DisplayChangeListener *dcl)
 
     assert(scon->opengl);
 
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
     if (scon->updates && scon->real_window) {
         scon->updates = 0;
         sdl2_gl_render_surface(scon);
diff --git a/ui/sdl2.c b/ui/sdl2.c
index 89516f95c41..4fcdbd79d3c 100644
--- a/ui/sdl2.c
+++ b/ui/sdl2.c
@@ -604,7 +604,7 @@ static void handle_windowevent(SDL_Event *ev)
                 .width = ev->window.data1,
                 .height = ev->window.data2,
             };
-            dpy_set_ui_info(scon->dcl.con, &info, true);
+            qemu_console_set_ui_info(scon->dcl.con, &info, true);
         }
         sdl2_redraw(scon);
         break;
@@ -632,10 +632,10 @@ static void handle_windowevent(SDL_Event *ev)
         }
         break;
     case SDL_WINDOWEVENT_RESTORED:
-        update_displaychangelistener(&scon->dcl, GUI_REFRESH_INTERVAL_DEFAULT);
+        qemu_console_listener_set_refresh(&scon->dcl, GUI_REFRESH_INTERVAL_DEFAULT);
         break;
     case SDL_WINDOWEVENT_MINIMIZED:
-        update_displaychangelistener(&scon->dcl, 500);
+        qemu_console_listener_set_refresh(&scon->dcl, 500);
         break;
     case SDL_WINDOWEVENT_CLOSE:
         if (qemu_console_is_graphic(scon->dcl.con)) {
diff --git a/ui/spice-display.c b/ui/spice-display.c
index 56d8140fad8..e3716127203 100644
--- a/ui/spice-display.c
+++ b/ui/spice-display.c
@@ -468,7 +468,7 @@ void qemu_spice_cursor_refresh_bh(void *opaque)
         assert(ssd->dcl.con);
         cursor_ref(c);
         qemu_mutex_unlock(&ssd->lock);
-        dpy_cursor_define(ssd->dcl.con, c);
+        qemu_console_set_cursor(ssd->dcl.con, c);
         qemu_mutex_lock(&ssd->lock);
         cursor_unref(c);
     }
@@ -481,7 +481,7 @@ void qemu_spice_cursor_refresh_bh(void *opaque)
         ssd->mouse_x = -1;
         ssd->mouse_y = -1;
         qemu_mutex_unlock(&ssd->lock);
-        dpy_mouse_set(ssd->dcl.con, x, y, true);
+        qemu_console_set_mouse(ssd->dcl.con, x, y, true);
     } else {
         qemu_mutex_unlock(&ssd->lock);
     }
@@ -489,7 +489,7 @@ void qemu_spice_cursor_refresh_bh(void *opaque)
 
 void qemu_spice_display_refresh(SimpleSpiceDisplay *ssd)
 {
-    graphic_hw_update(ssd->dcl.con);
+    qemu_console_hw_update(ssd->dcl.con);
 
     WITH_QEMU_LOCK_GUARD(&ssd->lock) {
         if (QTAILQ_EMPTY(&ssd->updates) && ssd->ds) {
@@ -668,7 +668,7 @@ static int interface_client_monitors_config(QXLInstance *sin,
     QemuUIInfo info;
     int head;
 
-    if (!dpy_ui_info_supported(ssd->dcl.con)) {
+    if (!qemu_console_ui_info_supported(ssd->dcl.con)) {
         return 0; /* == not supported by guest */
     }
 
@@ -676,7 +676,7 @@ static int interface_client_monitors_config(QXLInstance *sin,
         return 1;
     }
 
-    info = *dpy_get_ui_info(ssd->dcl.con);
+    info = *qemu_console_get_ui_info(ssd->dcl.con);
 
     head = qemu_console_get_index(ssd->dcl.con);
     if (mc->num_of_monitors > head) {
@@ -690,7 +690,7 @@ static int interface_client_monitors_config(QXLInstance *sin,
     }
 
     trace_qemu_spice_ui_info(ssd->qxl.id, info.width, info.height);
-    dpy_set_ui_info(ssd->dcl.con, &info, false);
+    qemu_console_set_ui_info(ssd->dcl.con, &info, false);
     return 1;
 }
 
@@ -817,7 +817,7 @@ static void qemu_spice_gl_block(SimpleSpiceDisplay *ssd, bool block)
     } else {
         timer_del(ssd->gl_unblock_timer);
     }
-    graphic_hw_gl_block(ssd->dcl.con, block);
+    qemu_console_hw_gl_block(ssd->dcl.con, block);
 }
 
 static void qemu_spice_gl_unblock_bh(void *opaque)
@@ -861,7 +861,7 @@ static void spice_gl_refresh(DisplayChangeListener *dcl)
         return;
     }
 
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
     if (ssd->gl_updates && ssd->have_surface) {
         qemu_spice_gl_block(ssd, true);
         glFlush();
diff --git a/ui/vnc.c b/ui/vnc.c
index e8c8773a36e..d3dfabede03 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -2325,8 +2325,8 @@ static void set_pixel_format(VncState *vs, int bits_per_pixel,
 
     set_pixel_conversion(vs);
 
-    graphic_hw_invalidate(vs->vd->dcl.con);
-    graphic_hw_update(vs->vd->dcl.con);
+    qemu_console_hw_invalidate(vs->vd->dcl.con);
+    qemu_console_hw_update(vs->vd->dcl.con);
 }
 
 static void pixel_format_message (VncState *vs) {
@@ -2384,7 +2384,7 @@ static int protocol_client_msg(VncState *vs, uint8_t *data, size_t len)
     VncDisplay *vd = vs->vd;
 
     if (data[0] > 3) {
-        update_displaychangelistener(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
+        qemu_console_listener_set_refresh(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
     }
 
     switch (data[0]) {
@@ -2638,9 +2638,9 @@ static int protocol_client_msg(VncState *vs, uint8_t *data, size_t len)
         h = read_u16(data, 4);
 
         trace_vnc_msg_client_set_desktop_size(vs, vs->ioc, w, h, screens);
-        if (dpy_ui_info_supported(vs->vd->dcl.con)) {
+        if (qemu_console_ui_info_supported(vs->vd->dcl.con)) {
             QemuUIInfo info = { .width = w, .height = h };
-            dpy_set_ui_info(vs->vd->dcl.con, &info, false);
+            qemu_console_set_ui_info(vs->vd->dcl.con, &info, false);
             vnc_desktop_resize_ext(vs, 4 /* Request forwarded */);
         } else {
             vnc_desktop_resize_ext(vs, 3 /* Invalid screen layout */);
@@ -3242,14 +3242,14 @@ static void vnc_refresh(DisplayChangeListener *dcl)
     int has_dirty, rects = 0;
 
     if (QTAILQ_EMPTY(&vd->clients)) {
-        update_displaychangelistener(&vd->dcl, VNC_REFRESH_INTERVAL_MAX);
+        qemu_console_listener_set_refresh(&vd->dcl, VNC_REFRESH_INTERVAL_MAX);
         return;
     }
 
-    graphic_hw_update(vd->dcl.con);
+    qemu_console_hw_update(vd->dcl.con);
 
     if (vnc_trylock_display(vd)) {
-        update_displaychangelistener(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
+        qemu_console_listener_set_refresh(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
         return;
     }
 
@@ -3323,7 +3323,7 @@ static void vnc_connect(VncDisplay *vd, QIOChannelSocket *sioc,
               sioc, websocket, vs->auth, vs->subauth);
 
     VNC_DEBUG("New client on socket %p\n", vs->sioc);
-    update_displaychangelistener(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
+    qemu_console_listener_set_refresh(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
     qio_channel_set_blocking(vs->ioc, false, &error_abort);
     g_clear_handle_id(&vs->ioc_tag, g_source_remove);
     if (websocket) {
@@ -3363,7 +3363,7 @@ static void vnc_connect(VncDisplay *vd, QIOChannelSocket *sioc,
         vnc_update_server_surface(vd);
     }
 
-    graphic_hw_update(vd->dcl.con);
+    qemu_console_hw_update(vd->dcl.con);
 
     if (!vs->websocket) {
         vnc_start_protocol(vs);
@@ -3419,7 +3419,7 @@ static void vmstate_change_handler(void *opaque, bool running, RunState state)
     if (state != RUN_STATE_RUNNING) {
         return;
     }
-    update_displaychangelistener(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
+    qemu_console_listener_set_refresh(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
 }
 
 static bool vnc_display_open(VncDisplay *vd, Error **errp);
diff --git a/hw/display/apple-gfx.m b/hw/display/apple-gfx.m
index 77d80fb7cef..be0061b9db2 100644
--- a/hw/display/apple-gfx.m
+++ b/hw/display/apple-gfx.m
@@ -317,8 +317,8 @@ static void apple_gfx_render_frame_completed_bh(void *opaque)
             copy_mtl_texture_to_surface_mem(s->texture, surface_data(s->surface));
             if (s->gfx_update_requested) {
                 s->gfx_update_requested = false;
-                dpy_gfx_update_full(s->con);
-                graphic_hw_update_done(s->con);
+                qemu_console_update_full(s->con);
+                qemu_console_hw_update_done(s->con);
                 s->new_frame_ready = false;
             } else {
                 s->new_frame_ready = true;
@@ -337,7 +337,7 @@ static bool apple_gfx_fb_update_display(void *opaque)
 
     assert(bql_locked());
     if (s->new_frame_ready) {
-        dpy_gfx_update_full(s->con);
+        qemu_console_update_full(s->con);
         s->new_frame_ready = false;
     } else if (s->pending_frames > 0) {
         s->gfx_update_requested = true;
@@ -380,14 +380,14 @@ static void set_mode(AppleGFXState *s, uint32_t width, uint32_t height)
             (s->texture.storageMode == MTLStorageModeManaged);
     }
 
-    dpy_gfx_replace_surface(s->con, s->surface);
+    qemu_console_set_surface(s->con, s->surface);
 }
 
 static void update_cursor(AppleGFXState *s)
 {
     assert(bql_locked());
-    dpy_mouse_set(s->con, s->pgdisp.cursorPosition.x,
-                  s->pgdisp.cursorPosition.y, qatomic_read(&s->cursor_show));
+    qemu_console_set_mouse(s->con, s->pgdisp.cursorPosition.x,
+                           s->pgdisp.cursorPosition.y, qatomic_read(&s->cursor_show));
 }
 
 static void update_cursor_bh(void *opaque)
@@ -443,7 +443,7 @@ static void set_cursor_glyph(void *opaque)
             }
             px_data += padding_bytes_per_row;
         }
-        dpy_cursor_define(s->con, s->cursor);
+        qemu_console_set_cursor(s->con, s->cursor);
         update_cursor(s);
     }
     [glyph release];
@@ -792,7 +792,7 @@ bool apple_gfx_common_realize(AppleGFXState *s, DeviceState *dev,
         apple_gfx_create_display_mode_array(display_modes, num_display_modes);
     [mode_array release];
 
-    s->con = graphic_console_init(dev, 0, &apple_gfx_fb_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &apple_gfx_fb_ops, s);
     return true;
 }
 
diff --git a/ui/cocoa.m b/ui/cocoa.m
index aaf82421589..98394cdc507 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -421,7 +421,7 @@ - (void) selectConsoleLocked:(unsigned int)index
         return;
     }
 
-    unregister_displaychangelistener(&dcl);
+    qemu_console_unregister_listener(&dcl);
     qkbd_state_switch_console(kbd, con);
     qemu_console_register_listener(con, &dcl, &dcl_ops);
     [self notifyMouseModeChange];
@@ -669,8 +669,8 @@ - (void) updateUIInfoLocked
             CVTime period = CVDisplayLinkGetNominalOutputVideoRefreshPeriod(displayLink);
             CVDisplayLinkRelease(displayLink);
             if (!(period.flags & kCVTimeIsIndefinite)) {
-                update_displaychangelistener(&dcl,
-                                             1000 * period.timeValue / period.timeScale);
+                qemu_console_listener_set_refresh(&dcl,
+                                                  1000 * period.timeValue / period.timeScale);
                 info.refresh_rate = (int64_t)1000 * period.timeScale / period.timeValue;
             }
         }
@@ -688,7 +688,7 @@ - (void) updateUIInfoLocked
     info.width = frameSize.width * [[self window] backingScaleFactor];
     info.height = frameSize.height * [[self window] backingScaleFactor];
 
-    dpy_set_ui_info(dcl.con, &info, TRUE);
+    qemu_console_set_ui_info(dcl.con, &info, TRUE);
 }
 
 #pragma clang diagnostic pop
@@ -2056,7 +2056,7 @@ static void cocoa_refresh(DisplayChangeListener *dcl)
     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
 
     COCOA_DEBUG("qemu_cocoa: cocoa_refresh\n");
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
 
     if (cbchangecount != [[NSPasteboard generalPasteboard] changeCount]) {
         qemu_clipboard_info_unref(cbinfo);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 07:51:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 07:51:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304501.1577497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLcTY-0003oI-Md; Sat, 09 May 2026 07:51:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304501.1577497; Sat, 09 May 2026 07:51:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLcTY-0003oB-Ji; Sat, 09 May 2026 07:51:52 +0000
Received: by outflank-mailman (input) for mailman id 1304501;
 Sat, 09 May 2026 07:51:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wLcTX-0003o5-1S
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 07:51:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLcTW-009BYU-CC
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 09:51:50 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fee785-e002-0a2a0a5209dd-0a2a4508c7b2-32
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 09:51:49 +0200
Received: from [40.107.130.3]
 (helo=MRWPR03CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 69fee795-63b5-0a2a45080019-286b82037012-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 09:51:49 +0200
Received: from CWLP265CA0453.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:1b7::22)
 by AS2PR08MB10155.eurprd08.prod.outlook.com (2603:10a6:20b:62d::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.21; Sat, 9 May
 2026 07:51:45 +0000
Received: from AM3PEPF0000A798.eurprd04.prod.outlook.com
 (2603:10a6:400:1b7:cafe::b1) by CWLP265CA0453.outlook.office365.com
 (2603:10a6:400:1b7::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.20 via Frontend Transport; Sat,
 9 May 2026 07:51:45 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A798.mail.protection.outlook.com (10.167.16.103) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.8
 via Frontend Transport; Sat, 9 May 2026 07:51:45 +0000
Received: from AS8PR08MB7265.eurprd08.prod.outlook.com (2603:10a6:20b:420::10)
 by DB4PR08MB8005.eurprd08.prod.outlook.com (2603:10a6:10:38f::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.17; Sat, 9 May
 2026 07:50:40 +0000
Received: from AS8PR08MB7265.eurprd08.prod.outlook.com
 ([fe80::b001:5eea:7c3e:1a31]) by AS8PR08MB7265.eurprd08.prod.outlook.com
 ([fe80::b001:5eea:7c3e:1a31%6]) with mapi id 15.20.9891.019; Sat, 9 May 2026
 07:50:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Ano/IT14zKw3kYobaN9+xaFoz2UA7WXHBl1DJAR3QqA5USPbHhhUuYt4Oa4VjZtpvcOp4VjcqGy+JO0OyoWajsB+lG1mIgJpMi0M67L/fGjL//AAzuwvqEOsXYVhw5i5mHR8T5HJM+lNOoUMEI3Isve+Z2tEWXxXcj1bsnGYTToqqKflN8CyVmQ/UScdxqHZQ+NQTS7SOggsALKb5xBCDGMfqH/RKpRL7SezQZhN7prKFu1Rp+qjQtama9dn/tLOrsdeCwBwP+MGOkUtSXyNDw3s3M+eyaRHY0DioEa2TkxyCq0WpuUUCTw0AcdHF2bpDNeG6xdBdSjmfcWz3vsaTg==
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=eXvam/YZ/eDqHqEp8ToiSa3PuFcnOSmoOOyUdP1mmPQ=;
 b=gCs1D5d2Vvcd9p8Yo3bWh+lhSIAcYzLoJHxKW/a8szsplyJJ+RKRS2ziEnDSfbbHz6A2nSXWS56jFiUnXbVHecXdKug1V/Ca4nGFktO3VplzOPBxdXVMLG6Oh4CuIzK+ScHJJZmqRtlXW8ihJj0jtaXtuN+XtEPtAyJNXnugYtcbmyj1wbB6o7TgHpegIclEg32RmJL/nHxGwvfFZYeYCga+cYZ/oUzvxveIrINbAkBdLmrNDZ90NoNv5YsYs7+ZuzLXj8kx0gwOWCWS100kExFMg0oxVzMt9WpA6QPlQyYMSqVRf8aBgAbuWTuGLayW7QVRv9dTwaqyAzOW/WgNnA==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eXvam/YZ/eDqHqEp8ToiSa3PuFcnOSmoOOyUdP1mmPQ=;
 b=Y5nA8XI6818HfQnLMHEzViCb1rVl1Zp9wA3lFVJi+lwONd0yjfBp+wB8SMWnzJ8URUN1//Zj1/+u6r6ItEvPr2sSSgC2+Y3DTJlDidDpU4aURUvJATBdHe89hfAv82spCx/sLrtl509XGQ2DAYxYaQgSZwr23Ehxk0T+Ng99vZA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kzZVAluTo+bshLr8lCzE4RyI2nPq5jKUkfsdgFP12PbW3DXsN1ycV/NvsJGGzYVteg2LA0NejjHdP5WmjoMpUOnxo3/00k3P0cU3M/vqH84o0lMtK5yQtkJCLvksGZR6bCpe/OlLw7SJU8TKv9xtvMw/LVat2pLAGKkUMb08ZjoiFBuZZBKJLA9fWnQ0Wf1SoRnCXkk3yhI1c5j9QOICIfajeWQst9pamSt/5jfrszM34XmAweNeWte/ZcxYwS2/jl3GbwfhP/Qkrz0SJ7yOVOsVUGjwW+8HvzkAJOIdPMUJ6XWOh560DfLMPUuFSnXXqgP4BIjuPUqECAG12R0UGA==
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=eXvam/YZ/eDqHqEp8ToiSa3PuFcnOSmoOOyUdP1mmPQ=;
 b=iIOw/zkH+SuONepFO6H2W2iDJ/eayEryKrSzVxOT6qmyybHJcCEoNgWWHtKj+Q/RhnUHRqF9+0lTHorWfBDZsGfMZJWiaylhVoLYdl514Wx/M8n/6kpxylpzSP2+ekoaukqixRR9W9BHDR/l9du1JmJjLrbNvdG2WxHWm5AXKgqh53evpzLHjg/MtdhGP0i7t0+nexsz9HZaU3qjDFeWkuhkkHWkm2PGSxUuywotPXEQ8mmM9kTKmh4XY5nn8pd7Cfh3NqA5WFFlqUgr/aIwwVKr9HzReFac8qwxCFxqUxzdRRuQ1r2BrEFVxOZVqF5H3xIc1TpFaoV9aaGQegNDwA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eXvam/YZ/eDqHqEp8ToiSa3PuFcnOSmoOOyUdP1mmPQ=;
 b=Y5nA8XI6818HfQnLMHEzViCb1rVl1Zp9wA3lFVJi+lwONd0yjfBp+wB8SMWnzJ8URUN1//Zj1/+u6r6ItEvPr2sSSgC2+Y3DTJlDidDpU4aURUvJATBdHe89hfAv82spCx/sLrtl509XGQ2DAYxYaQgSZwr23Ehxk0T+Ng99vZA=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Rahul Singh <Rahul.Singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v8 09/13] arm/smmu-v3: add suspend/resume handlers
Thread-Topic: [PATCH v8 09/13] arm/smmu-v3: add suspend/resume handlers
Thread-Index: AQHc1k50BMsvUkAtf0yXvEOre8XAa7X/maIAgASD5YCAAJ2MAIAAqTsA
Date: Sat, 9 May 2026 07:50:40 +0000
Message-ID: <93C7B83B-A7AB-46F4-9E9E-98DD88483A00@arm.com>
References: <cover.1775125380.git.mykola_kvach@epam.com>
 <038337ec0e3f1474c6cc6a92090e28c6972e4dc6.1775125380.git.mykola_kvach@epam.com>
 <F5384D51-933E-48E6-AE7E-B54022AEAE11@arm.com>
 <CAGeoDV907jTK5RsN51ezapA5inhvG1jWpeybbqF=LkxWcEGnbQ@mail.gmail.com>
 <6E040BE7-0133-46AE-8B5C-85EA02704285@arm.com>
 <CAGeoDV9+kdwkdkA1CtPrOoBPeMH=TL5mdjrDoqdrS64hHuZGHg@mail.gmail.com>
In-Reply-To:
 <CAGeoDV9+kdwkdkA1CtPrOoBPeMH=TL5mdjrDoqdrS64hHuZGHg@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7265:EE_|DB4PR08MB8005:EE_|AM3PEPF0000A798:EE_|AS2PR08MB10155:EE_
X-MS-Office365-Filtering-Correlation-Id: f0fd7e0b-b2f8-485a-a98a-08dead9fd11c
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|56012099003|38070700021|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info-Original:
 zxTfKkdbsGtwtRXASQMu/09B5zGU9qCAOZxH1x4jyNYaZFtD74orHlg9qp96O9j9uU3L6Zxpi5HUH9TMw75/K+20cae40hJiq94X2kup7ZxXg8PV/C7QDtE0eMv1isBOx15aMePZH9lOuorn4XjWJRoOhtz1GJZiTKpMbGje+WJyLLwWYiNFHcPSfvPTk1cwKgAAhmQsFNjAMENWCFZ1/crmPXcjYkPYeD59QWNQYGyAdYINFRfqd2k9vyr4DY7Kz0rI47O20h7FR7qK/2/wE9VZ/qS3+HIR+u0/qRkQ30Bp4UhGjDrzGtFqtXuztq6onaKP5GvDoKeGimIBltzv4DH/6aWPI2p8Cg0ROshXxoD+taK2rwkM2w+mpVF4O/98OBtr1kNe86x7xkWGNi9FGOhMbbATr3nxZKgKWZ9jNGTmmQtJC6gPDbtY2NNbUIFkDnssxw9C0F4L6/J+FHCEonAmkdBP8Fl7B8q53p1Se0Fx2AAGFSOCARgncWQVjdXcArKDoBtZCroPyPOiW9eCMqr9rp3GnsSDShD/IMBxPzn4GZ9qZWolhIFjmd8VkqsCehmZu5+zauWHjTnt78od+QQ3OwHMe6cSkhFbZTrTIT486OIYcUvw8uCNhoXQqc7Vf7cLdkk8HRz8UiLS+xm/tpL+p7BsgvekP9hk15rbPGvPn7EIpF1AnAq5gP3QAhM9WcmfmblkTwXHMApJ+TA+euX5DePovXQgqGDpqZyIfwumBZxOSP1WuW027Z2AW44H
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7265.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(56012099003)(38070700021)(18002099003)(22082099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <43AD2EDEB958FA4189B1C61A2A62B7CE@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 l5WmaJsTxKulg/E3d4SMZ0h15VWedzLq5hbNix2PsdiiS2WYbt4mKtzd5Vr18iErLbSYPTdxk1XNpVcibVmOP1OMiJNT6HVBGF5eZFA9TkcJwDCRYps6qOpGNvBr2aXSRXPQjrESKQi9TC/kV0m8jKCnxdN1rUmt02CcHxCP5zNz8Yf4wVThljEpw31H9QKTWa7hnmIPjNTdzKBSiGodMuDNtRMBT1x3LtHszfeTkATqX0UTpwWn7C/ekLXJtmPXz2Zf8v/pZJA966tF9rG+haYp4ezVCpOxCX1JtwSLjThbGZLODcIzTVMKbvNwugM8hS7hgbUsFHvkmSbLwmWlYw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB8005
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A798.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	ae4ef47b-b827-4cca-36a8-08dead9faaa5
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|35042699022|82310400026|14060799003|1800799024|376014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	YW5leyGvX2Or18NfmX+SWt8D6xnXTAJaMvxBkKRbzk7esEZ+ygDvNQV710Uc9aEBpAcMN+gECY2z37jEIpPTw/p5w873V9AMSOmS/0NSECYoBfudfbUTHYwa7obfy2QVKa32BUr9sMNv2bcOoxUFHArnIiyXmBWJ4f8uO/eB5DoPnqqR/ZPVw6700S/guuUQe0srlBTk0z4Sw1U5eKdA/ZF9IIrM20jeBxOzqTIn6z3qLe1PAi7f/BvSnkdwSp9cQ6DVPjfSX9ISC4Ae6LGFigIqE/IapWQImwJFKzd5f5ZAxh9UuHS8S4/dtsqEaQHAsW5lYqf7RtlwBD8yLygnv/3eL232Mx5K0gnWwyXD5+oQ0UWPJP7zGFvmeeFYcuPTNZ4ohgs722E+3aZ1UpK8J9DzoC87NP/Bx3QERNMqyLGRx9+DqBI5FMzcl1s3Yj3nf44l73Kq5ppaMVrTnr0O6i51laXrCpPEGZLQxS3CxUKte1oH952JkYKKRY0ozrp8PziDWWaExCeKVBWZ+ZUbPDyXmHlNBdN/b+WftCfeus1k5LctW2P7Ncc5ZRFb5vnaT7ZcLtNkTMHvGGgdiN1s5blJQePqrOfh5BBQrbgCgq6n/f5Rf7VZ0WemZIcq6bDESq/auFlknC0BToMPh9UF5LD3HWtl7O9VYf49xK/j8Pvkai9emiYw3OJjhxLAIW/20mYtcVMLMHMhZzuHRiFsQQMJ0NglrVNytgz/fLxKbkf/ZJAqPpl2kydOlbQKlsY1
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(35042699022)(82310400026)(14060799003)(1800799024)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	J+c65WhtwpLsZh1kHZZhwQuJd6UBlElQ/7UGVgnJPZemtikfnO03HYFAAth55q0EoSl5H5bMN4t9yptkh4bhEBzPg9hr+2kZq+oy+KXc4p3ESVDCbzA0troJjB5eJQDaj1sanvP1VHqr1r/iwi33vtElta6HfLV0omdLEXg3jYGGJdgGAOsgg1hjDHO8Dxdktwy4uh/GA2zq4EnnL4b94NsWB44qHBwL7T9FFnzofWOcigYa/B6Gq4PASlf8sZCr3Zio2AzZPff72aVyxlKaAJMQ2pNXUeILeFL3l4+Sn1eBcjt2SEljJAJQqFeGrl1sT0dqHlHzFBwOaKpdnG588vnCk/0NeWtPLamqSWftafbF+vWSu8Zz8qfJyBhVpOj6BjTVhj1jcaqL0N7CotjNagAaWQgTv8sSbM5cMVIu3E7pTqxUW7zPIVuWMgsAz1+Q
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2026 07:51:45.1997
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f0fd7e0b-b2f8-485a-a98a-08dead9fd11c
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF0000A798.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB10155
X-purgate-ID: tlsNG-c1860d/1778313109-C447DDB1-BD7EC4BE/0/0
X-purgate-type: clean
X-purgate-size: 3716

SGkgTXlrb2xhLA0KDQo+IE9uIDggTWF5IDIwMjYsIGF0IDIyOjQ0LCBNeWtvbGEgS3ZhY2ggPHhh
a2VwLmFtYXRvcEBnbWFpbC5jb20+IHdyb3RlOg0KPiANCj4gT24gRnJpLCBNYXkgOCwgMjAyNiBh
dCAzOjIy4oCvUE0gTHVjYSBGYW5jZWxsdSA8THVjYS5GYW5jZWxsdUBhcm0uY29tPiB3cm90ZToN
Cj4+IA0KPj4gSEkgTXlrb2xhLA0KPj4gDQo+Pj4+PiANCj4+Pj4+IC1zdGF0aWMgaW50IF9faW5p
dCBhcm1fc21tdV9kZXZpY2VfcmVzZXQoc3RydWN0IGFybV9zbW11X2RldmljZSAqc21tdSkNCj4+
Pj4+ICtzdGF0aWMgaW50IGFybV9zbW11X2RldmljZV9yZXNldChzdHJ1Y3QgYXJtX3NtbXVfZGV2
aWNlICpzbW11KQ0KPj4+Pj4gew0KPj4+Pj4gaW50IHJldDsNCj4+Pj4+IHUzMiByZWcsIGVuYWJs
ZXM7DQo+Pj4+PiBAQCAtMjE2MywxNyArMjE2Niw5IEBAIHN0YXRpYyBpbnQgX19pbml0IGFybV9z
bW11X2RldmljZV9yZXNldChzdHJ1Y3QgYXJtX3NtbXVfZGV2aWNlICpzbW11KQ0KPj4+Pj4gfQ0K
Pj4+Pj4gfQ0KPj4+Pj4gDQo+Pj4+PiAtIHJldCA9IGFybV9zbW11X3NldHVwX2lycXMoc21tdSk7
DQo+Pj4+PiAtIGlmIChyZXQpIHsNCj4+Pj4+IC0gZGV2X2VycihzbW11LT5kZXYsICJmYWlsZWQg
dG8gc2V0dXAgaXJxc1xuIik7DQo+Pj4+IA0KPj4+PiBXZSBhcmUgbW92aW5nIHRoaXMgb25lIHRv
IHRoZSBwcm9iZSBhbmQgLi4NCj4+Pj4gDQo+Pj4+PiArIHJldCA9IGFybV9zbW11X2VuYWJsZV9p
cnFzKHNtbXUpOw0KPj4+Pj4gKyBpZiAoIHJldCApDQo+Pj4+IA0KPj4+PiBjaGFuZ2luZyB3aXRo
IHRoaXMgb25lLCBidXQgYXJtX3NtbXVfc2V0dXBfaXJxcygpIGFsc28gY2FsbHMgYXJtX3NtbXVf
c2V0dXBfdW5pcXVlX2lycXMoKSB3aGljaA0KPj4+PiBjYWxscyBhcm1fc21tdV9zZXR1cF9tc2lz
KCksIGFyZSB3ZSBzdXJlIHRoYXQgb24gcmVzdW1lIHdlIHdpbGwgZ2V0IHRoZSBzYW1lIHN0YXRl
Pw0KPj4+IA0KPj4+IFRoaXMgZm9sbG93cyB0aGUgc3BsaXQgaW50cm9kdWNlZCBpbiB0aGUgTGlu
dXggYXJtLXNtbXUtdjMgcnVudGltZS9zeXN0ZW0gc2xlZXANCj4+PiBzZXJpZXM6DQo+Pj4gDQo+
Pj4gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGludXgtaW9tbXUvMjAyNjA0MTQxOTQ3MDIuMTIy
OTA5NC0xLXByYWFuQGdvb2dsZS5jb20vDQo+Pj4gDQo+Pj4gVGhlIGludGVudCBpcyB0byBrZWVw
IElSUSBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBhcyBvbmUtdGltZSBwcm9iZSBzdGF0ZSwgd2hpbGUN
Cj4+PiByZXNldC9yZXN1bWUgb25seSByZXN0b3JlcyB0aGUgU01NVSBoYXJkd2FyZSBzdGF0ZSBh
bmQgcmUtZW5hYmxlcyBpbnRlcnJ1cHQNCj4+PiBnZW5lcmF0aW9uLg0KPj4+IA0KPj4+IFlvdSBh
cmUgcmlnaHQgdGhhdCB0aGUgTVNJIGNhc2UgbmVlZHMgZXh0cmEgY2FyZS4gSW4gdGhlIExpbnV4
IHNlcmllcyB0aGlzIGlzDQo+Pj4gaGFuZGxlZCBieSBhcm1fc21tdV9yZXN1bWVfbXNpcygpLCB3
aGljaCByZXN0b3JlcyB0aGUgU01NVS1zaWRlIE1TSQ0KPj4+IGNvbmZpZ3VyYXRpb24uIEkgZGlk
IG5vdCBwb3J0IHRoYXQgcGFydCBpbiB0aGlzIHBhdGNoIGJlY2F1c2UgWGVuIFNNTVV2MyBNU0kN
Cj4+PiBzdXBwb3J0IGlzIGN1cnJlbnRseSBkb2N1bWVudGVkIGFzIHVuc3VwcG9ydGVkIGFuZCBp
cyBub3QgcGFydCBvZiB0aGUNCj4+PiBzdXBwb3J0ZWQvdGVzdGVkIHBhdGgsIHNvIHRoaXMgcGF0
Y2ggb25seSBjb3ZlcnMgdGhlIHdpcmVkIElSUSBwYXRoIHVzZWQgYnkgWGVuDQo+Pj4gdG9kYXku
DQo+Pj4gDQo+Pj4gSWYgWGVuIFNNTVV2MyBNU0kgc3VwcG9ydCBiZWNvbWVzIHVzYWJsZSBpbiB0
aGUgZnV0dXJlLCB0aGUgcmVzdW1lIHBhdGggd2lsbA0KPj4+IG5lZWQgYW4gZXF1aXZhbGVudCBN
U0kgcmVzdG9yZSBzdGVwIGJlZm9yZSBJUlFfQ1RSTCBpcyByZS1lbmFibGVkLg0KPj4gDQo+PiBJ
biB0aGUgbWVhbiB0aW1lIHNob3VsZCB3ZSBjaGVjayBtYXliZSBzbW11LT5mZWF0dXJlcyBkb2Vz
buKAmXQgaGF2ZQ0KPj4gQVJNX1NNTVVfRkVBVF9NU0kgZmxhZyBhbmQgZG9jdW1lbnQgaXQgaW4g
Y29tbWl0IG1lc3NhZ2U/DQo+PiANCj4+IFdoYXQgZG8geW91IHRoaW5rIGFib3V0IGl0PyBJ4oCZ
bSBqdXN0IHdvcnJpZWQgc29tZW9uZSB1c2VzIENPTkZJR19NU0kgYW5kIHlvdXINCj4+IGZlYXR1
cmUgYW5kIGVuZHMgdXAgaW4gc29tZSB0cm91YmxlLCB3aGlsZSB3ZSBrbm93IHRoYXQgeW91ciBm
ZWF0dXJlIGJyZWFrcw0KPj4gQ09ORklHX01TSS4NCj4gDQo+IEdvb2QgcG9pbnQuDQo+IA0KPiBJ
IGRvbid0IHRoaW5rIGNoZWNraW5nIG9ubHkgQVJNX1NNTVVfRkVBVF9NU0kgaW4gdGhpcyBwYXRj
aCBpcyB0aGUgcmlnaHQNCj4gYXBwcm9hY2gsIHNpbmNlIHRoYXQgcmVmbGVjdHMgaGFyZHdhcmUg
Y2FwYWJpbGl0eSByYXRoZXIgdGhhbiB3aGV0aGVyIFhlbiBpcw0KPiBhY3R1YWxseSB1c2luZyB0
aGUgU01NVXYzIE1TSSBJUlEgcGF0aC4NCg0KWWVzIHlvdSBhcmUgcmlnaHQsIEkgcmVhbGlzZWQg
dGhhdCBtb21lbnRzIGFmdGVyIHNlbmRpbmcgbXkgcmVwbHksIGEgZ29vZCBjaGVjaw0Kd291bGQg
YmUgdG8gY29tcGxhaW4gb25seSBpZiBYZW4gaXMgYWN0dWFsbHkgdXNpbmcgdGhhdCBwYXRoLg0K
DQpMZXTigJlzIGdvIGZvciBkb2N1bWVudGluZyB0aGUgbGltaXRhdGlvbiB1bmxlc3MgbWFpbnRh
aW5lcnMgZGlzYWdyZWUuDQoNCkNoZWVycywNCkx1Y2ENCg0K


From xen-devel-bounces@lists.xenproject.org Sat May 09 10:48:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 10:48:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304604.1577551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLfEU-0002fU-6A; Sat, 09 May 2026 10:48:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304604.1577551; Sat, 09 May 2026 10:48:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLfEU-0002fN-2g; Sat, 09 May 2026 10:48:30 +0000
Received: by outflank-mailman (input) for mailman id 1304604;
 Sat, 09 May 2026 10:48:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>) id 1wLfES-0002X2-FY
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 10:48:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLfER-007lJU-Sq
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 12:48:27 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>)
 id 69ff10ec-5cb7-0a2a0a5109dd-0a2a4508be8e-4
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 12:48:27 +0200
Received: from [49.212.243.89] (helo=www3579.sakura.ne.jp)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>)
 id 69ff10f8-63b5-0a2a45080019-31d4f359d6d6-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 12:48:27 +0200
Received: from h183.csg.ci.i.u-tokyo.ac.jp (h183.csg.ci.i.u-tokyo.ac.jp
 [133.11.54.183]) (authenticated bits=0)
 by www3579.sakura.ne.jp (8.16.1/8.16.1) with ESMTPSA id 649AlY2A090834
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO);
 Sat, 9 May 2026 19:47:58 +0900 (JST)
 (envelope-from odaki@rsg.ci.i.u-tokyo.ac.jp)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=temperror header.s=rs20250326 header.d=rsg.ci.i.u-tokyo.ac.jp header.i="@rsg.ci.i.u-tokyo.ac.jp"
DKIM-Signature: a=rsa-sha256; bh=SBZa0nIoCp0ki8/Oc5ku4abkqOmqJgEICyF8p7mx+3g=;
        c=relaxed/relaxed; d=rsg.ci.i.u-tokyo.ac.jp;
        h=From:Message-Id:To:Subject:Date;
        s=rs20250326; t=1778323679; v=1;
        b=jMm6FSTg3+WzoljBa1xx0VEIo3rCyipLRB/bXqKMrcdNR+6DvkjrOPX+E8rgREyl
         fuoDukk7jeWjRH1RJb//0ZivG9KN+Ul5uESgLkuohDwIcRoPNt8uRy5T0Gp++vJT
         4ljy4BIr3xPq7yw9Gpv9nXQvfz4i8pRAk2U38IxKW5FtOqeKZ0ntoI+Lqs3KyDDv
         nDjEcHNRD6ijVNCuvkoaQ5cAbV5r1D3Dhm5B8CbAEzMIQN3EJEZr5W6C+DSMzgNd
         cVHxAtdtdiH/vXly+xP1n9bu5GWF/sZlyQ+nRmXFWnTsPqR04jZ5qyvejk2hAT2O
         axrvfxvwxSeG40g+JiQtnw==
From: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Date: Sat, 09 May 2026 19:34:21 +0900
Subject: [PATCH RFC 09/28] hw/display/xenfb: Use Linux key codes
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260509-input-v1-9-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
References: <20260509-input-v1-0-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
In-Reply-To: <20260509-input-v1-0-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
To: qemu-devel@nongnu.org
Cc: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,
        Paolo Bonzini <pbonzini@redhat.com>, Jan Kiszka <jan.kiszka@web.de>,
        Peter Maydell <peter.maydell@linaro.org>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Anthony PERARD <anthony@xenproject.org>,
        "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
        Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
        Gerd Hoffmann <kraxel@redhat.com>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Thomas Huth <th.huth+qemu@posteo.eu>,
        =?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,
        qemu-arm@nongnu.org, xen-devel@lists.xenproject.org,
        qemu-ppc@nongnu.org,
        =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
        Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
X-Mailer: b4 0.16-dev-16047
X-Developer-Signature: v=1; a=openpgp-sha256; l=1604;
 i=odaki@rsg.ci.i.u-tokyo.ac.jp; h=from:subject:message-id;
 bh=Q2mGMH2ClWf3nbm1bPmZWB8Bg9tg0j4lbTXQFfwDMGE=;
 b=owGbwMvMwCWmMbc20y1CyJDxtFoSQ+Z/gUtdcxRqAx2EuLe8LbbcLJ3V2baEYQqb3WGOpp0vp
 j7/IbKxo5SFQYyLQVZMkSWlaDe3RnTtp8KE+BaYOaxMIEMYuDgFYCI9RQy/2Q8qiKx+tYp1h+il
 SjZJSbOzDF2vF/9SspNzeul288a9zYwMdxVK8qJ7uQ2LMkV3Hb/AejX38skJoiU7t+x5kynJVxz
 DBgA=
X-Developer-Key: i=odaki@rsg.ci.i.u-tokyo.ac.jp; a=openpgp;
 fpr=AEDC03C9AF734F2EC26A7BFFA4BAEAA73536753C
X-purgate-ID: tlsNG-c1860d/1778323707-C4A7ADB1-63265AD0/0/0
X-purgate-type: clean
X-purgate-size: 1606

QemuInputEvent now stores Linux key codes for key events. Use those
codes directly instead of translating between internal key code
representations.

Signed-off-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
---
 hw/display/xenfb.c | 21 +++------------------
 1 file changed, 3 insertions(+), 18 deletions(-)

diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
index 9bf89a1e6223..ee23c483499f 100644
--- a/hw/display/xenfb.c
+++ b/hw/display/xenfb.c
@@ -191,29 +191,14 @@ static int xenfb_send_position(struct XenInput *xenfb,
     return xenfb_kbd_event(xenfb, &event);
 }
 
-/*
- * Send a key event from the client to the guest OS
- * QEMU gives us a QCode.
- * We have to turn this into a Linux Input layer keycode.
- *
- * Wish we could just send scancodes straight to the guest which
- * already has code for dealing with this...
- */
+/* Send a key event from the client to the guest OS */
 static void xenfb_key_event(DeviceState *dev, QemuConsole *src,
                             QemuInputEvent *evt)
 {
     struct XenInput *xenfb = (struct XenInput *)dev;
-    int qcode = qemu_input_linux_to_qcode(evt->key.key);
-    int lnx;
 
-    if (qcode < qemu_input_map_qcode_to_linux_len) {
-        lnx = qemu_input_map_qcode_to_linux[qcode];
-
-        if (lnx) {
-            trace_xenfb_key_event(xenfb, lnx, evt->key.down);
-            xenfb_send_key(xenfb, evt->key.down, lnx);
-        }
-    }
+    trace_xenfb_key_event(xenfb, evt->key.key, evt->key.down);
+    xenfb_send_key(xenfb, evt->key.down, evt->key.key);
 }
 
 /*

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 10:48:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 10:48:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304599.1577509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLfEQ-0001cK-5H; Sat, 09 May 2026 10:48:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304599.1577509; Sat, 09 May 2026 10:48:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLfEQ-0001bU-0D; Sat, 09 May 2026 10:48:26 +0000
Received: by outflank-mailman (input) for mailman id 1304599;
 Sat, 09 May 2026 10:48:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>) id 1wLfEN-0001aR-8o
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 10:48:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLfEM-007lJU-M4
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 12:48:22 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>)
 id 69ff10e2-5cb7-0a2a0a5109dd-0a2a45079184-8
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 12:48:22 +0200
Received: from [49.212.243.89] (helo=www3579.sakura.ne.jp)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>)
 id 69ff10f3-229c-0a2a45070019-31d4f359d5ec-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 12:48:21 +0200
Received: from h183.csg.ci.i.u-tokyo.ac.jp (h183.csg.ci.i.u-tokyo.ac.jp
 [133.11.54.183]) (authenticated bits=0)
 by www3579.sakura.ne.jp (8.16.1/8.16.1) with ESMTPSA id 649AlY2G090834
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO);
 Sat, 9 May 2026 19:48:00 +0900 (JST)
 (envelope-from odaki@rsg.ci.i.u-tokyo.ac.jp)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=temperror header.s=rs20250326 header.d=rsg.ci.i.u-tokyo.ac.jp header.i="@rsg.ci.i.u-tokyo.ac.jp"
DKIM-Signature: a=rsa-sha256; bh=uJTvyFxVV0KiKR88wATfRrbdCU5rpbZH8pTJ+9EpZgo=;
        c=relaxed/relaxed; d=rsg.ci.i.u-tokyo.ac.jp;
        h=From:Message-Id:To:Subject:Date;
        s=rs20250326; t=1778323680; v=1;
        b=ck991oxPhvCSI7vlQnQmqDhO8qPNpIzbu7vQgVPPFIogHVvJJp6FOUtEbLRQs7Wq
         rJybWJpAWrQKHDhTosWtzhajw2VXe/kw3fqKqiG2UhS9trsPHRXw5t29i1L3Pa2s
         +j0bnxv4lZ7iKLJ+RSnx/Fk6fV06j1QEd0f2DZaYOkH+hIvabREPjGBGXAfix4UT
         u5sxCXEef9jdvlJ4+vb2i2Iaa1BR1/88G7zSBM9FftH39xA9FNW9i9w0sJwKTfQE
         R8iErBOQm5A6UBQcyPdBjMiMgsjAiy42tAkuW960cpjVozRZs7xwxt+nafvBV0Ls
         pc6J3r84Hg0rUW0OzLGetw==
From: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Date: Sat, 09 May 2026 19:34:27 +0900
Subject: [PATCH RFC 15/28] replay: Use Linux key codes
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260509-input-v1-15-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
References: <20260509-input-v1-0-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
In-Reply-To: <20260509-input-v1-0-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
To: qemu-devel@nongnu.org
Cc: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,
        Paolo Bonzini <pbonzini@redhat.com>, Jan Kiszka <jan.kiszka@web.de>,
        Peter Maydell <peter.maydell@linaro.org>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Anthony PERARD <anthony@xenproject.org>,
        "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
        Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
        Gerd Hoffmann <kraxel@redhat.com>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Thomas Huth <th.huth+qemu@posteo.eu>,
        =?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,
        qemu-arm@nongnu.org, xen-devel@lists.xenproject.org,
        qemu-ppc@nongnu.org,
        =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
        Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
X-Mailer: b4 0.16-dev-16047
X-Developer-Signature: v=1; a=openpgp-sha256; l=2453;
 i=odaki@rsg.ci.i.u-tokyo.ac.jp; h=from:subject:message-id;
 bh=VN8yQ5lgMxcp3qE4EJjzPaXZLmpoeQItNok0BraEMYc=;
 b=owGbwMvMwCWmMbc20y1CyJDxtFoSQ+Z/gautArYL7NVW29YU/82Suvbv1+mU9UyamRs3sy+8c
 O1P+/W5HaUsDGJcDLJiiiwpRbu5NaJrPxUmxLfAzGFlAhnCwMUpABOZZM3wz26v8oI5qjXvGxZy
 vDj3JaP5tf5XTkkXuTjpzYxcrldXaTIyXGPb6Kos+3ROQNmxc851LwXPL1cJKFylWjyxeb+YNMN
 ETgA=
X-Developer-Key: i=odaki@rsg.ci.i.u-tokyo.ac.jp; a=openpgp;
 fpr=AEDC03C9AF734F2EC26A7BFFA4BAEAA73536753C
X-purgate-ID: tlsNG-ef75cf/1778323702-0B374C48-FF672CCC/0/0
X-purgate-type: clean
X-purgate-size: 2455

QemuInputEvent now stores Linux key codes for key events. Use those
codes directly instead of translating between internal key code
representations.

Signed-off-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
---
 replay/replay-input.c | 20 +++-----------------
 replay/replay.c       |  2 +-
 2 files changed, 4 insertions(+), 18 deletions(-)

diff --git a/replay/replay-input.c b/replay/replay-input.c
index acf0993c7285..c86e00af0efd 100644
--- a/replay/replay-input.c
+++ b/replay/replay-input.c
@@ -23,8 +23,7 @@ void replay_save_input_event(QemuInputEvent *evt)
 
     switch (evt->type) {
     case INPUT_EVENT_KIND_KEY:
-        replay_put_dword(KEY_VALUE_KIND_QCODE);
-        replay_put_dword(qemu_input_linux_to_qcode(evt->key.key));
+        replay_put_dword(evt->key.key);
         replay_put_byte(evt->key.down);
         break;
     case INPUT_EVENT_KIND_BTN:
@@ -55,25 +54,12 @@ void replay_save_input_event(QemuInputEvent *evt)
 QemuInputEvent *replay_read_input_event(void)
 {
     QemuInputEvent *evt = g_new(QemuInputEvent, 1);
-    int qcode;
 
     evt->type = replay_get_dword();
     switch (evt->type) {
     case INPUT_EVENT_KIND_KEY:
-        switch (replay_get_dword()) {
-        case KEY_VALUE_KIND_NUMBER:
-            qcode = qemu_input_key_number_to_qcode(replay_get_qword());
-            evt->key.down = replay_get_byte();
-            break;
-        case KEY_VALUE_KIND_QCODE:
-            qcode = (QKeyCode)replay_get_dword();
-            evt->key.down = replay_get_byte();
-            break;
-        default:
-            g_assert_not_reached();
-        }
-        evt->key.key = qcode < qemu_input_map_qcode_to_linux_len ?
-                       qemu_input_map_qcode_to_linux[qcode] : 0;
+        evt->key.key = replay_get_dword();
+        evt->key.down = replay_get_byte();
         break;
     case INPUT_EVENT_KIND_BTN:
         evt->btn.button = (InputButton)replay_get_dword();
diff --git a/replay/replay.c b/replay/replay.c
index 2e5c6fa82eaa..14437b32566b 100644
--- a/replay/replay.c
+++ b/replay/replay.c
@@ -22,7 +22,7 @@
 
 /* Current version of the replay mechanism.
    Increase it when file format changes. */
-#define REPLAY_VERSION              0xe0200d
+#define REPLAY_VERSION              0xe0200e
 /* Size of replay log header */
 #define HEADER_SIZE                 (sizeof(uint32_t) + sizeof(uint64_t))
 

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 10:48:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 10:48:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304601.1577515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLfEQ-0001fu-DX; Sat, 09 May 2026 10:48:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304601.1577515; Sat, 09 May 2026 10:48:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLfEQ-0001ez-7j; Sat, 09 May 2026 10:48:26 +0000
Received: by outflank-mailman (input) for mailman id 1304601;
 Sat, 09 May 2026 10:48:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>) id 1wLfEN-0001aS-Ej
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 10:48:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLfEM-0010Ja-SC
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 12:48:22 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>)
 id 69ff10a2-e002-0a2a0a5209dd-0a2a4504db1e-44
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 12:48:22 +0200
Received: from [49.212.243.89] (helo=www3579.sakura.ne.jp)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>)
 id 69ff10f3-1dec-0a2a45040019-31d4f359d5f0-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 12:48:21 +0200
Received: from h183.csg.ci.i.u-tokyo.ac.jp (h183.csg.ci.i.u-tokyo.ac.jp
 [133.11.54.183]) (authenticated bits=0)
 by www3579.sakura.ne.jp (8.16.1/8.16.1) with ESMTPSA id 649AlY2K090834
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO);
 Sat, 9 May 2026 19:48:01 +0900 (JST)
 (envelope-from odaki@rsg.ci.i.u-tokyo.ac.jp)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=temperror header.s=rs20250326 header.d=rsg.ci.i.u-tokyo.ac.jp header.i="@rsg.ci.i.u-tokyo.ac.jp"
DKIM-Signature: a=rsa-sha256; bh=+9TsdwOjpr1iHxskLt3f2EYt5zfwd9os5E2Yt8jChVM=;
        c=relaxed/relaxed; d=rsg.ci.i.u-tokyo.ac.jp;
        h=From:Message-Id:To:Subject:Date;
        s=rs20250326; t=1778323681; v=1;
        b=aLv1AfwGALDvOFPckAZuQsHV3Iq6x1BBqVwrJH00u/XyCobZnIeo+UuTjIee/uF1
         CE7iaauZdwme0etKlR5JtF6nC0R4K2QjXjLnqSFPtJWk2ZWtRkDDChsSXeBDsQYL
         t4cz59uBHpJkYTCKhAXYsXzKJcJw1fxZKr9JE5pnHcjQV/zCZWpQq4uz5NqOuYUA
         6z35XYQLT0Y79u8LPa5ntwP90qqvy4sTBUAfjBYPNVktzrWr3HocC6rjxSB+UTXf
         dAYGRlX4aivYRczJu9IfluABueOT/ha6MU3Piq4vdmWISSPc6JXVQqkGpIhsq0Ym
         sxPNGql4PziyvN6QUjaK9A==
From: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Date: Sat, 09 May 2026 19:34:31 +0900
Subject: [PATCH RFC 19/28] ui/input-barrier: Use Linux key codes
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260509-input-v1-19-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
References: <20260509-input-v1-0-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
In-Reply-To: <20260509-input-v1-0-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
To: qemu-devel@nongnu.org
Cc: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,
        Paolo Bonzini <pbonzini@redhat.com>, Jan Kiszka <jan.kiszka@web.de>,
        Peter Maydell <peter.maydell@linaro.org>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Anthony PERARD <anthony@xenproject.org>,
        "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
        Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
        Gerd Hoffmann <kraxel@redhat.com>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Thomas Huth <th.huth+qemu@posteo.eu>,
        =?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,
        qemu-arm@nongnu.org, xen-devel@lists.xenproject.org,
        qemu-ppc@nongnu.org,
        =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
        Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
X-Mailer: b4 0.16-dev-16047
X-Developer-Signature: v=1; a=openpgp-sha256; l=3193;
 i=odaki@rsg.ci.i.u-tokyo.ac.jp; h=from:subject:message-id;
 bh=c6O0syJR1NIU9Ef/YUHm+OV3aKIWUGDzhmEGlDmaM/E=;
 b=owGbwMvMwCWmMbc20y1CyJDxtFoSQ+Z/gete29q+nqlp3CUa0eKVzCXTcqzHpGl5rly6/9OtT
 k8dj+7pKGVhEONikBVTZEkp2s2tEV37qTAhvgVmDisTyBAGLk4BmMiLBYwM7x9FPytacndF5S3l
 7K2H5K7nWFySMXwgGDir9kdN9TrZDEaGJ1VfTL5p89oVhZ4UyOF8ofTxs8amlCAF+a3TbXacLtj
 BBAA=
X-Developer-Key: i=odaki@rsg.ci.i.u-tokyo.ac.jp; a=openpgp;
 fpr=AEDC03C9AF734F2EC26A7BFFA4BAEAA73536753C
X-purgate-ID: tlsNG-ebf023/1778323702-42D643FF-654C105C/0/0
X-purgate-type: clean
X-purgate-size: 3195

QemuInputEvent now stores Linux key codes for key events. Use those
codes directly instead of translating between internal key code
representations.

Signed-off-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
---
 ui/input-barrier.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/ui/input-barrier.c b/ui/input-barrier.c
index 0a2198ca5003..eb7f0b952d51 100644
--- a/ui/input-barrier.c
+++ b/ui/input-barrier.c
@@ -84,11 +84,11 @@ static const char *cmd_names[] = {
 
 static kbd_layout_t *kbd_layout;
 
-static int input_barrier_to_qcode(uint16_t keyid, uint16_t keycode)
+static int input_barrier_to_linux(uint16_t keyid, uint16_t keycode)
 {
     /* keycode is optional, if it is not provided use keyid */
-    if (keycode && keycode <= qemu_input_map_xorgkbd_to_qcode_len) {
-        return qemu_input_map_xorgkbd_to_qcode[keycode];
+    if (keycode && keycode <= qemu_input_map_xorgkbd_to_linux_len) {
+        return qemu_input_map_xorgkbd_to_linux[keycode];
     }
 
     if (keyid >= 0xE000 && keyid <= 0xEFFF) {
@@ -99,10 +99,10 @@ static int input_barrier_to_qcode(uint16_t keyid, uint16_t keycode)
     if (kbd_layout) {
         keycode = keysym2scancode(kbd_layout, keyid, NULL, false);
 
-        return qemu_input_key_number_to_qcode(keycode);
+        return qemu_input_key_number_to_linux(keycode);
     }
 
-    return qemu_input_map_x11_to_qcode[keyid];
+    return qemu_input_map_x11_to_linux[keyid];
 }
 
 static int input_barrier_to_mouse(uint8_t buttonid)
@@ -431,23 +431,23 @@ static gboolean writecmd(InputBarrier *ib, struct barrierMsg *msg)
 
     /* keyboard */
     case barrierCmdDKeyDown:
-        qemu_input_event_send_key_qcode(NULL,
-                        input_barrier_to_qcode(msg->key.keyid, msg->key.button),
+        qemu_input_event_send_key_linux(NULL,
+                        input_barrier_to_linux(msg->key.keyid, msg->key.button),
                                         true);
         break;
     case barrierCmdDKeyRepeat:
         for (i = 0; i < msg->repeat.repeat; i++) {
-            qemu_input_event_send_key_qcode(NULL,
-                  input_barrier_to_qcode(msg->repeat.keyid, msg->repeat.button),
+            qemu_input_event_send_key_linux(NULL,
+                  input_barrier_to_linux(msg->repeat.keyid, msg->repeat.button),
                                             false);
-            qemu_input_event_send_key_qcode(NULL,
-                  input_barrier_to_qcode(msg->repeat.keyid, msg->repeat.button),
+            qemu_input_event_send_key_linux(NULL,
+                  input_barrier_to_linux(msg->repeat.keyid, msg->repeat.button),
                                             true);
         }
         break;
     case barrierCmdDKeyUp:
-        qemu_input_event_send_key_qcode(NULL,
-                        input_barrier_to_qcode(msg->key.keyid, msg->key.button),
+        qemu_input_event_send_key_linux(NULL,
+                        input_barrier_to_linux(msg->key.keyid, msg->key.button),
                                         false);
         break;
     default:

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 10:48:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 10:48:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304600.1577506 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLfEP-0001ay-Uo; Sat, 09 May 2026 10:48:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304600.1577506; Sat, 09 May 2026 10:48:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLfEP-0001ap-Pr; Sat, 09 May 2026 10:48:25 +0000
Received: by outflank-mailman (input) for mailman id 1304600;
 Sat, 09 May 2026 10:48:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>) id 1wLfEN-0001aT-OQ
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 10:48:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLfEN-0010Ja-5Y
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 12:48:23 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>)
 id 69ff10a2-e002-0a2a0a5209dd-0a2a4504db1e-46
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 12:48:23 +0200
Received: from [49.212.243.89] (helo=www3579.sakura.ne.jp)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>)
 id 69ff10f4-1dec-0a2a45040019-31d4f359d609-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 12:48:22 +0200
Received: from h183.csg.ci.i.u-tokyo.ac.jp (h183.csg.ci.i.u-tokyo.ac.jp
 [133.11.54.183]) (authenticated bits=0)
 by www3579.sakura.ne.jp (8.16.1/8.16.1) with ESMTPSA id 649AlY2R090834
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO);
 Sat, 9 May 2026 19:48:03 +0900 (JST)
 (envelope-from odaki@rsg.ci.i.u-tokyo.ac.jp)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=temperror header.s=rs20250326 header.d=rsg.ci.i.u-tokyo.ac.jp header.i="@rsg.ci.i.u-tokyo.ac.jp"
DKIM-Signature: a=rsa-sha256; bh=1HZL/g+SoS2O30ERYe2Yb6nxo7jFOLr4qDArV1Di8vs=;
        c=relaxed/relaxed; d=rsg.ci.i.u-tokyo.ac.jp;
        h=From:Message-Id:To:Subject:Date;
        s=rs20250326; t=1778323683; v=1;
        b=t78Qg2FX6fQPQYjv6ccpjNB5PHM57Z7vH/sFNvFVepBntRbIzBYVxDoFA4Z8zcUH
         yNwbFuM/ho+hh5SZ7tf+Lkfd6Wii0FvKwt2Neo7Zxyyjj0CPtZ4hhs+44YPVNLLd
         H36Sm6ApZio0GZOtvJjE7gfl/iPNr1pEm9G79xaqieF17GWnxd4PNKVHVkqEn2ls
         /0VUSq1OHHAEnBbOUVdWr/eFNLlH0fNvZTrUrycauuM0c2twgV+IGere0olLlQui
         J1WlwuqN0kKbylZVRId1EEn/7T+bo86HLmzUhdvkZ04CYAklhxjCBTPvbnydSqGn
         /+uvgM+9RWPYf4U/G5z4Iw==
From: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Date: Sat, 09 May 2026 19:34:38 +0900
Subject: [PATCH RFC 26/28] qemu-keymap: Use Linux key codes
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260509-input-v1-26-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
References: <20260509-input-v1-0-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
In-Reply-To: <20260509-input-v1-0-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
To: qemu-devel@nongnu.org
Cc: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,
        Paolo Bonzini <pbonzini@redhat.com>, Jan Kiszka <jan.kiszka@web.de>,
        Peter Maydell <peter.maydell@linaro.org>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Anthony PERARD <anthony@xenproject.org>,
        "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
        Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
        Gerd Hoffmann <kraxel@redhat.com>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Thomas Huth <th.huth+qemu@posteo.eu>,
        =?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,
        qemu-arm@nongnu.org, xen-devel@lists.xenproject.org,
        qemu-ppc@nongnu.org,
        =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
        Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
X-Mailer: b4 0.16-dev-16047
X-Developer-Signature: v=1; a=openpgp-sha256; l=4832;
 i=odaki@rsg.ci.i.u-tokyo.ac.jp; h=from:subject:message-id;
 bh=gcrDwacqS5bkEtnqJY5QTRr0nAfP9KdzJWUdu+r+4i4=;
 b=owGbwMvMwCWmMbc20y1CyJDxtFoSQ+Z/gdv2pyc8enzc0iTzyvf7mQVVX9WD1Rq6ixadzH/JV
 yrMcK6po5SFQYyLQVZMkSWlaDe3RnTtp8KE+BaYOaxMIEMYuDgFYCJC+xn+x7yYeKUtmfn115RK
 3xvJgtvLP+5/9FLHS22im/b1xpj4EIb/gfX6z9rXXG/80tV+1W2F992I945mHGvOMaadZLTVPBL
 LDwA=
X-Developer-Key: i=odaki@rsg.ci.i.u-tokyo.ac.jp; a=openpgp;
 fpr=AEDC03C9AF734F2EC26A7BFFA4BAEAA73536753C
X-purgate-ID: tlsNG-ebf023/1778323703-42B633FF-F2E52775/0/0
X-purgate-type: clean
X-purgate-size: 4834

QemuInputEvent now stores Linux key codes for key events. Use those
codes directly instead of translating between internal key code
representations.

Signed-off-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
---
 qemu-keymap.c | 41 ++++++++++++++++++++---------------------
 1 file changed, 20 insertions(+), 21 deletions(-)

diff --git a/qemu-keymap.c b/qemu-keymap.c
index d4dccf456ef3..d63b6be8ce32 100644
--- a/qemu-keymap.c
+++ b/qemu-keymap.c
@@ -11,6 +11,7 @@
  */
 #include "qemu/osdep.h"
 #include "qemu/notify.h"
+#include "standard-headers/linux/input-event-codes.h"
 #include "ui/input.h"
 
 #include <xkbcommon/xkbcommon.h>
@@ -32,19 +33,17 @@ static FILE *outfile;
 
 /* ------------------------------------------------------------------------ */
 
-static uint32_t qcode_to_number(uint32_t qcode)
+static uint32_t linux_to_number(uint32_t lnx)
 {
-    KeyValue keyvalue;
     uint32_t number;
 
-    keyvalue.type = KEY_VALUE_KIND_QCODE;
-    keyvalue.u.qcode.data = qcode;
-    number = qemu_input_key_value_to_number(&keyvalue);
+    assert(lnx < qemu_input_map_linux_to_qnum_len);
+    number = qemu_input_map_linux_to_qnum[lnx];
     assert(number != 0);
     return number;
 }
 
-static void print_sym(xkb_keysym_t sym, uint32_t qcode, const char *mod)
+static void print_sym(xkb_keysym_t sym, uint32_t lnx, const char *mod)
 {
     char name[64];
 
@@ -54,7 +53,7 @@ static void print_sym(xkb_keysym_t sym, uint32_t qcode, const char *mod)
     xkb_keysym_get_name(sym, name, sizeof(name));
 
     /* TODO: make ui/keymap.c parser accept QKeyCode names */
-    fprintf(outfile, "%s 0x%02x%s\n", name, qcode_to_number(qcode), mod);
+    fprintf(outfile, "%s 0x%02x%s\n", name, linux_to_number(lnx), mod);
 }
 
 static void walk_map(struct xkb_keymap *map, xkb_keycode_t code, void *data)
@@ -84,37 +83,37 @@ static void walk_map(struct xkb_keymap *map, xkb_keycode_t code, void *data)
     fprintf(outfile, "# evdev %d (0x%x), QKeyCode \"%s\", number 0x%x\n",
             evdev, evdev,
             QKeyCode_str(qcode),
-            qcode_to_number(qcode));
+            linux_to_number(evdev));
 
     /*
      * check which modifier states generate which keysyms
      */
     xkb_state_update_mask(state,  0, 0, 0,  0, 0, 0);
     kbase = xkb_state_key_get_one_sym(state, code);
-    print_sym(kbase, qcode, "");
+    print_sym(kbase, evdev, "");
 
     xkb_state_update_mask(state,  0, 0, numlock,  0, 0, 0);
     knumlock = xkb_state_key_get_one_sym(state, code);
     if (kbase != knumlock) {
-        print_sym(knumlock, qcode, " numlock");
+        print_sym(knumlock, evdev, " numlock");
     }
 
     xkb_state_update_mask(state,  shift, 0, 0,  0, 0, 0);
     kshift = xkb_state_key_get_one_sym(state, code);
     if (kbase != kshift && knumlock != kshift) {
-        print_sym(kshift, qcode, " shift");
+        print_sym(kshift, evdev, " shift");
     }
 
     xkb_state_update_mask(state,  altgr, 0, 0,  0, 0, 0);
     kaltgr = xkb_state_key_get_one_sym(state, code);
     if (kbase != kaltgr) {
-        print_sym(kaltgr, qcode, " altgr");
+        print_sym(kaltgr, evdev, " altgr");
     }
 
     xkb_state_update_mask(state,  altgr | shift, 0, 0,  0, 0, 0);
     kaltgrshift = xkb_state_key_get_one_sym(state, code);
     if (kshift != kaltgrshift && kaltgr != kaltgrshift) {
-        print_sym(kaltgrshift, qcode, " shift altgr");
+        print_sym(kaltgrshift, evdev, " shift altgr");
     }
 }
 
@@ -251,16 +250,16 @@ int main(int argc, char *argv[])
             "# keysyms.  So append them here.\n"
             "#\n"
             "\n");
-    print_sym(XKB_KEY_Print,            Q_KEY_CODE_SYSRQ,      "");
-    print_sym(XKB_KEY_Sys_Req,          Q_KEY_CODE_SYSRQ,      "");
-    print_sym(XKB_KEY_Execute,          Q_KEY_CODE_SYSRQ,      "");
+    print_sym(XKB_KEY_Print,            KEY_SYSRQ,    "");
+    print_sym(XKB_KEY_Sys_Req,          KEY_SYSRQ,    "");
+    print_sym(XKB_KEY_Execute,          KEY_SYSRQ,    "");
 
-    print_sym(XKB_KEY_KP_Decimal,       Q_KEY_CODE_KP_DECIMAL, " numlock");
-    print_sym(XKB_KEY_KP_Separator,     Q_KEY_CODE_KP_DECIMAL, " numlock");
+    print_sym(XKB_KEY_KP_Decimal,       KEY_KPDOT,    " numlock");
+    print_sym(XKB_KEY_KP_Separator,     KEY_KPDOT,    " numlock");
 
-    print_sym(XKB_KEY_Alt_R,            Q_KEY_CODE_ALT_R,      "");
-    print_sym(XKB_KEY_ISO_Level3_Shift, Q_KEY_CODE_ALT_R,      "");
-    print_sym(XKB_KEY_Mode_switch,      Q_KEY_CODE_ALT_R,      "");
+    print_sym(XKB_KEY_Alt_R,            KEY_RIGHTALT, "");
+    print_sym(XKB_KEY_ISO_Level3_Shift, KEY_RIGHTALT, "");
+    print_sym(XKB_KEY_Mode_switch,      KEY_RIGHTALT, "");
 
     fprintf(outfile,
             "\n"

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 10:48:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 10:48:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304605.1577556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLfEU-0002hy-Ip; Sat, 09 May 2026 10:48:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304605.1577556; Sat, 09 May 2026 10:48:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLfEU-0002h7-Aw; Sat, 09 May 2026 10:48:30 +0000
Received: by outflank-mailman (input) for mailman id 1304605;
 Sat, 09 May 2026 10:48:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>) id 1wLfES-0002X5-Gq
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 10:48:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLfER-007lJU-Tw
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 12:48:27 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>)
 id 69ff10ec-5cb7-0a2a0a5109dd-0a2a4508be8e-6
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 12:48:27 +0200
Received: from [49.212.243.89] (helo=www3579.sakura.ne.jp)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>)
 id 69ff10f9-63b5-0a2a45080019-31d4f359d6d7-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 12:48:27 +0200
Received: from h183.csg.ci.i.u-tokyo.ac.jp (h183.csg.ci.i.u-tokyo.ac.jp
 [133.11.54.183]) (authenticated bits=0)
 by www3579.sakura.ne.jp (8.16.1/8.16.1) with ESMTPSA id 649AlY2B090834
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO);
 Sat, 9 May 2026 19:47:59 +0900 (JST)
 (envelope-from odaki@rsg.ci.i.u-tokyo.ac.jp)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=temperror header.s=rs20250326 header.d=rsg.ci.i.u-tokyo.ac.jp header.i="@rsg.ci.i.u-tokyo.ac.jp"
DKIM-Signature: a=rsa-sha256; bh=ROUhaRxtDzPB8FJJRyCm0S9ppDBULPhLkvEBb93D+50=;
        c=relaxed/relaxed; d=rsg.ci.i.u-tokyo.ac.jp;
        h=From:Message-Id:To:Subject:Date;
        s=rs20250326; t=1778323679; v=1;
        b=lzTC9DyfFbto9QQqJIWX4TjTyGPPBAJyLLupmTJeGxRQGJSl/m+z8PbzrGj5hs5Y
         84QpcOTGt4CAoUiRUmz6+tjrT/UqoeEQb9qAfhRxtUf7YNGY1wd1b3Lf8a0T6c11
         vor9zI6VjIBEyD7sutt1sCCc/pt+vyuQiA4Lr+CzuVgmzPORLpPOaycOiNXJy1aR
         KB2DGB0ETvv4v37fuYY7QfFxlZDJE9F4XyhrMnY5UaUcbnwTnYSm5SVr4SuKM/aQ
         E/5b8EMUHyI+CPmrnRojYg9V7ff5dRTjDhRpOe1G4l0ZZ3zplR32h3OZGA5AouHL
         XzFQzM4WKw9gg6KvIq+S0g==
From: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Date: Sat, 09 May 2026 19:34:22 +0900
Subject: [PATCH RFC 10/28] hw/input/adb-kbd: Use Linux key codes
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260509-input-v1-10-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
References: <20260509-input-v1-0-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
In-Reply-To: <20260509-input-v1-0-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
To: qemu-devel@nongnu.org
Cc: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,
        Paolo Bonzini <pbonzini@redhat.com>, Jan Kiszka <jan.kiszka@web.de>,
        Peter Maydell <peter.maydell@linaro.org>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Anthony PERARD <anthony@xenproject.org>,
        "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
        Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
        Gerd Hoffmann <kraxel@redhat.com>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Thomas Huth <th.huth+qemu@posteo.eu>,
        =?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,
        qemu-arm@nongnu.org, xen-devel@lists.xenproject.org,
        qemu-ppc@nongnu.org,
        =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
        Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
X-Mailer: b4 0.16-dev-16047
X-Developer-Signature: v=1; a=openpgp-sha256; l=11545;
 i=odaki@rsg.ci.i.u-tokyo.ac.jp; h=from:subject:message-id;
 bh=IuNc0nZq13Cfg85XfjaPn1/m1nF4glzSwdiuAeVhaoQ=;
 b=owGbwMvMwCWmMbc20y1CyJDxtFoSQ+Z/gUu3xSqPLlG2uVqgmuKU9vDaMn/3f4kTXl74G97Rw
 mkd//9PRykLgxgXg6yYIktK0W5ujejaT4UJ8S0wc1iZQIYwcHEKwEQi8hn+x/GuUVd/6lP7xX1l
 htXZq2nLzl24X71jt8LHrOe79m7oMGP4Xyd7QKOyrOl61MacbtUXanklidZJsRM2Meeov2i8r/u
 FAwA=
X-Developer-Key: i=odaki@rsg.ci.i.u-tokyo.ac.jp; a=openpgp;
 fpr=AEDC03C9AF734F2EC26A7BFFA4BAEAA73536753C
X-purgate-ID: tlsNG-c1860d/1778323707-C4E78DB1-4D55FD79/0/0
X-purgate-type: clean
X-purgate-size: 11547

QemuInputEvent now stores Linux key codes for key events. Use those
codes directly instead of translating between internal key code
representations.

Signed-off-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
---
 hw/input/adb-kbd.c | 242 ++++++++++++++++++++++++++---------------------------
 1 file changed, 120 insertions(+), 122 deletions(-)

diff --git a/hw/input/adb-kbd.c b/hw/input/adb-kbd.c
index 060481d0db6d..c4ef9ebb90c8 100644
--- a/hw/input/adb-kbd.c
+++ b/hw/input/adb-kbd.c
@@ -26,6 +26,7 @@
 #include "hw/input/adb.h"
 #include "migration/vmstate.h"
 #include "qemu/module.h"
+#include "standard-headers/linux/input-event-codes.h"
 #include "ui/input.h"
 #include "hw/input/adb-keys.h"
 #include "adb-internal.h"
@@ -55,124 +56,122 @@ struct ADBKeyboardClass {
 /* The adb keyboard doesn't have every key imaginable */
 #define NO_KEY 0xff
 
-int qcode_to_adb_keycode[] = {
+int linux_to_adb_keycode[] = {
      /* Make sure future additions are automatically set to NO_KEY */
-    [0 ... 0xff]               = NO_KEY,
-
-    [Q_KEY_CODE_SHIFT]         = ADB_KEY_LEFT_SHIFT,
-    [Q_KEY_CODE_SHIFT_R]       = ADB_KEY_RIGHT_SHIFT,
-    [Q_KEY_CODE_ALT]           = ADB_KEY_LEFT_OPTION,
-    [Q_KEY_CODE_ALT_R]         = ADB_KEY_RIGHT_OPTION,
-    [Q_KEY_CODE_CTRL]          = ADB_KEY_LEFT_CONTROL,
-    [Q_KEY_CODE_CTRL_R]        = ADB_KEY_RIGHT_CONTROL,
-    [Q_KEY_CODE_META_L]        = ADB_KEY_COMMAND,
-    [Q_KEY_CODE_META_R]        = ADB_KEY_COMMAND,
-    [Q_KEY_CODE_SPC]           = ADB_KEY_SPACEBAR,
-
-    [Q_KEY_CODE_ESC]           = ADB_KEY_ESC,
-    [Q_KEY_CODE_1]             = ADB_KEY_1,
-    [Q_KEY_CODE_2]             = ADB_KEY_2,
-    [Q_KEY_CODE_3]             = ADB_KEY_3,
-    [Q_KEY_CODE_4]             = ADB_KEY_4,
-    [Q_KEY_CODE_5]             = ADB_KEY_5,
-    [Q_KEY_CODE_6]             = ADB_KEY_6,
-    [Q_KEY_CODE_7]             = ADB_KEY_7,
-    [Q_KEY_CODE_8]             = ADB_KEY_8,
-    [Q_KEY_CODE_9]             = ADB_KEY_9,
-    [Q_KEY_CODE_0]             = ADB_KEY_0,
-    [Q_KEY_CODE_MINUS]         = ADB_KEY_MINUS,
-    [Q_KEY_CODE_EQUAL]         = ADB_KEY_EQUAL,
-    [Q_KEY_CODE_BACKSPACE]     = ADB_KEY_DELETE,
-    [Q_KEY_CODE_TAB]           = ADB_KEY_TAB,
-    [Q_KEY_CODE_Q]             = ADB_KEY_Q,
-    [Q_KEY_CODE_W]             = ADB_KEY_W,
-    [Q_KEY_CODE_E]             = ADB_KEY_E,
-    [Q_KEY_CODE_R]             = ADB_KEY_R,
-    [Q_KEY_CODE_T]             = ADB_KEY_T,
-    [Q_KEY_CODE_Y]             = ADB_KEY_Y,
-    [Q_KEY_CODE_U]             = ADB_KEY_U,
-    [Q_KEY_CODE_I]             = ADB_KEY_I,
-    [Q_KEY_CODE_O]             = ADB_KEY_O,
-    [Q_KEY_CODE_P]             = ADB_KEY_P,
-    [Q_KEY_CODE_BRACKET_LEFT]  = ADB_KEY_LEFT_BRACKET,
-    [Q_KEY_CODE_BRACKET_RIGHT] = ADB_KEY_RIGHT_BRACKET,
-    [Q_KEY_CODE_RET]           = ADB_KEY_RETURN,
-    [Q_KEY_CODE_A]             = ADB_KEY_A,
-    [Q_KEY_CODE_S]             = ADB_KEY_S,
-    [Q_KEY_CODE_D]             = ADB_KEY_D,
-    [Q_KEY_CODE_F]             = ADB_KEY_F,
-    [Q_KEY_CODE_G]             = ADB_KEY_G,
-    [Q_KEY_CODE_H]             = ADB_KEY_H,
-    [Q_KEY_CODE_J]             = ADB_KEY_J,
-    [Q_KEY_CODE_K]             = ADB_KEY_K,
-    [Q_KEY_CODE_L]             = ADB_KEY_L,
-    [Q_KEY_CODE_SEMICOLON]     = ADB_KEY_SEMICOLON,
-    [Q_KEY_CODE_APOSTROPHE]    = ADB_KEY_APOSTROPHE,
-    [Q_KEY_CODE_GRAVE_ACCENT]  = ADB_KEY_GRAVE_ACCENT,
-    [Q_KEY_CODE_BACKSLASH]     = ADB_KEY_BACKSLASH,
-    [Q_KEY_CODE_Z]             = ADB_KEY_Z,
-    [Q_KEY_CODE_X]             = ADB_KEY_X,
-    [Q_KEY_CODE_C]             = ADB_KEY_C,
-    [Q_KEY_CODE_V]             = ADB_KEY_V,
-    [Q_KEY_CODE_B]             = ADB_KEY_B,
-    [Q_KEY_CODE_N]             = ADB_KEY_N,
-    [Q_KEY_CODE_M]             = ADB_KEY_M,
-    [Q_KEY_CODE_COMMA]         = ADB_KEY_COMMA,
-    [Q_KEY_CODE_DOT]           = ADB_KEY_PERIOD,
-    [Q_KEY_CODE_SLASH]         = ADB_KEY_FORWARD_SLASH,
-    [Q_KEY_CODE_ASTERISK]      = ADB_KEY_KP_MULTIPLY,
-    [Q_KEY_CODE_CAPS_LOCK]     = ADB_KEY_CAPS_LOCK,
-
-    [Q_KEY_CODE_F1]            = ADB_KEY_F1,
-    [Q_KEY_CODE_F2]            = ADB_KEY_F2,
-    [Q_KEY_CODE_F3]            = ADB_KEY_F3,
-    [Q_KEY_CODE_F4]            = ADB_KEY_F4,
-    [Q_KEY_CODE_F5]            = ADB_KEY_F5,
-    [Q_KEY_CODE_F6]            = ADB_KEY_F6,
-    [Q_KEY_CODE_F7]            = ADB_KEY_F7,
-    [Q_KEY_CODE_F8]            = ADB_KEY_F8,
-    [Q_KEY_CODE_F9]            = ADB_KEY_F9,
-    [Q_KEY_CODE_F10]           = ADB_KEY_F10,
-    [Q_KEY_CODE_F11]           = ADB_KEY_F11,
-    [Q_KEY_CODE_F12]           = ADB_KEY_F12,
-    [Q_KEY_CODE_PRINT]         = ADB_KEY_F13,
-    [Q_KEY_CODE_SYSRQ]         = ADB_KEY_F13,
-    [Q_KEY_CODE_SCROLL_LOCK]   = ADB_KEY_F14,
-    [Q_KEY_CODE_PAUSE]         = ADB_KEY_F15,
-
-    [Q_KEY_CODE_NUM_LOCK]      = ADB_KEY_KP_CLEAR,
-    [Q_KEY_CODE_KP_EQUALS]     = ADB_KEY_KP_EQUAL,
-    [Q_KEY_CODE_KP_DIVIDE]     = ADB_KEY_KP_DIVIDE,
-    [Q_KEY_CODE_KP_MULTIPLY]   = ADB_KEY_KP_MULTIPLY,
-    [Q_KEY_CODE_KP_SUBTRACT]   = ADB_KEY_KP_SUBTRACT,
-    [Q_KEY_CODE_KP_ADD]        = ADB_KEY_KP_PLUS,
-    [Q_KEY_CODE_KP_ENTER]      = ADB_KEY_KP_ENTER,
-    [Q_KEY_CODE_KP_DECIMAL]    = ADB_KEY_KP_PERIOD,
-    [Q_KEY_CODE_KP_0]          = ADB_KEY_KP_0,
-    [Q_KEY_CODE_KP_1]          = ADB_KEY_KP_1,
-    [Q_KEY_CODE_KP_2]          = ADB_KEY_KP_2,
-    [Q_KEY_CODE_KP_3]          = ADB_KEY_KP_3,
-    [Q_KEY_CODE_KP_4]          = ADB_KEY_KP_4,
-    [Q_KEY_CODE_KP_5]          = ADB_KEY_KP_5,
-    [Q_KEY_CODE_KP_6]          = ADB_KEY_KP_6,
-    [Q_KEY_CODE_KP_7]          = ADB_KEY_KP_7,
-    [Q_KEY_CODE_KP_8]          = ADB_KEY_KP_8,
-    [Q_KEY_CODE_KP_9]          = ADB_KEY_KP_9,
-
-    [Q_KEY_CODE_UP]            = ADB_KEY_UP,
-    [Q_KEY_CODE_DOWN]          = ADB_KEY_DOWN,
-    [Q_KEY_CODE_LEFT]          = ADB_KEY_LEFT,
-    [Q_KEY_CODE_RIGHT]         = ADB_KEY_RIGHT,
-
-    [Q_KEY_CODE_HELP]          = ADB_KEY_HELP,
-    [Q_KEY_CODE_INSERT]        = ADB_KEY_HELP,
-    [Q_KEY_CODE_DELETE]        = ADB_KEY_FORWARD_DELETE,
-    [Q_KEY_CODE_HOME]          = ADB_KEY_HOME,
-    [Q_KEY_CODE_END]           = ADB_KEY_END,
-    [Q_KEY_CODE_PGUP]          = ADB_KEY_PAGE_UP,
-    [Q_KEY_CODE_PGDN]          = ADB_KEY_PAGE_DOWN,
-
-    [Q_KEY_CODE_POWER]         = ADB_KEY_POWER
+    [0 ... KEY_MAX]  = NO_KEY,
+
+    [KEY_LEFTSHIFT]  = ADB_KEY_LEFT_SHIFT,
+    [KEY_RIGHTSHIFT] = ADB_KEY_RIGHT_SHIFT,
+    [KEY_LEFTALT]    = ADB_KEY_LEFT_OPTION,
+    [KEY_RIGHTALT]   = ADB_KEY_RIGHT_OPTION,
+    [KEY_LEFTCTRL]   = ADB_KEY_LEFT_CONTROL,
+    [KEY_RIGHTCTRL]  = ADB_KEY_RIGHT_CONTROL,
+    [KEY_LEFTMETA]   = ADB_KEY_COMMAND,
+    [KEY_RIGHTMETA]  = ADB_KEY_COMMAND,
+    [KEY_SPACE]      = ADB_KEY_SPACEBAR,
+
+    [KEY_ESC]        = ADB_KEY_ESC,
+    [KEY_1]          = ADB_KEY_1,
+    [KEY_2]          = ADB_KEY_2,
+    [KEY_3]          = ADB_KEY_3,
+    [KEY_4]          = ADB_KEY_4,
+    [KEY_5]          = ADB_KEY_5,
+    [KEY_6]          = ADB_KEY_6,
+    [KEY_7]          = ADB_KEY_7,
+    [KEY_8]          = ADB_KEY_8,
+    [KEY_9]          = ADB_KEY_9,
+    [KEY_0]          = ADB_KEY_0,
+    [KEY_MINUS]      = ADB_KEY_MINUS,
+    [KEY_EQUAL]      = ADB_KEY_EQUAL,
+    [KEY_BACKSPACE]  = ADB_KEY_DELETE,
+    [KEY_TAB]        = ADB_KEY_TAB,
+    [KEY_Q]          = ADB_KEY_Q,
+    [KEY_W]          = ADB_KEY_W,
+    [KEY_E]          = ADB_KEY_E,
+    [KEY_R]          = ADB_KEY_R,
+    [KEY_T]          = ADB_KEY_T,
+    [KEY_Y]          = ADB_KEY_Y,
+    [KEY_U]          = ADB_KEY_U,
+    [KEY_I]          = ADB_KEY_I,
+    [KEY_O]          = ADB_KEY_O,
+    [KEY_P]          = ADB_KEY_P,
+    [KEY_LEFTBRACE]  = ADB_KEY_LEFT_BRACKET,
+    [KEY_RIGHTBRACE] = ADB_KEY_RIGHT_BRACKET,
+    [KEY_ENTER]      = ADB_KEY_RETURN,
+    [KEY_A]          = ADB_KEY_A,
+    [KEY_S]          = ADB_KEY_S,
+    [KEY_D]          = ADB_KEY_D,
+    [KEY_F]          = ADB_KEY_F,
+    [KEY_G]          = ADB_KEY_G,
+    [KEY_H]          = ADB_KEY_H,
+    [KEY_J]          = ADB_KEY_J,
+    [KEY_K]          = ADB_KEY_K,
+    [KEY_L]          = ADB_KEY_L,
+    [KEY_SEMICOLON]  = ADB_KEY_SEMICOLON,
+    [KEY_APOSTROPHE] = ADB_KEY_APOSTROPHE,
+    [KEY_GRAVE]      = ADB_KEY_GRAVE_ACCENT,
+    [KEY_BACKSLASH]  = ADB_KEY_BACKSLASH,
+    [KEY_Z]          = ADB_KEY_Z,
+    [KEY_X]          = ADB_KEY_X,
+    [KEY_C]          = ADB_KEY_C,
+    [KEY_V]          = ADB_KEY_V,
+    [KEY_B]          = ADB_KEY_B,
+    [KEY_N]          = ADB_KEY_N,
+    [KEY_M]          = ADB_KEY_M,
+    [KEY_COMMA]      = ADB_KEY_COMMA,
+    [KEY_DOT]        = ADB_KEY_PERIOD,
+    [KEY_SLASH]      = ADB_KEY_FORWARD_SLASH,
+    [KEY_CAPSLOCK]   = ADB_KEY_CAPS_LOCK,
+
+    [KEY_F1]         = ADB_KEY_F1,
+    [KEY_F2]         = ADB_KEY_F2,
+    [KEY_F3]         = ADB_KEY_F3,
+    [KEY_F4]         = ADB_KEY_F4,
+    [KEY_F5]         = ADB_KEY_F5,
+    [KEY_F6]         = ADB_KEY_F6,
+    [KEY_F7]         = ADB_KEY_F7,
+    [KEY_F8]         = ADB_KEY_F8,
+    [KEY_F9]         = ADB_KEY_F9,
+    [KEY_F10]        = ADB_KEY_F10,
+    [KEY_F11]        = ADB_KEY_F11,
+    [KEY_F12]        = ADB_KEY_F12,
+    [KEY_SYSRQ]      = ADB_KEY_F13,
+    [KEY_SCROLLLOCK] = ADB_KEY_F14,
+    [KEY_PAUSE]      = ADB_KEY_F15,
+
+    [KEY_NUMLOCK]    = ADB_KEY_KP_CLEAR,
+    [KEY_KPEQUAL]    = ADB_KEY_KP_EQUAL,
+    [KEY_KPSLASH]    = ADB_KEY_KP_DIVIDE,
+    [KEY_KPASTERISK] = ADB_KEY_KP_MULTIPLY,
+    [KEY_KPMINUS]    = ADB_KEY_KP_SUBTRACT,
+    [KEY_KPPLUS]     = ADB_KEY_KP_PLUS,
+    [KEY_KPENTER]    = ADB_KEY_KP_ENTER,
+    [KEY_KPDOT]      = ADB_KEY_KP_PERIOD,
+    [KEY_KP0]        = ADB_KEY_KP_0,
+    [KEY_KP1]        = ADB_KEY_KP_1,
+    [KEY_KP2]        = ADB_KEY_KP_2,
+    [KEY_KP3]        = ADB_KEY_KP_3,
+    [KEY_KP4]        = ADB_KEY_KP_4,
+    [KEY_KP5]        = ADB_KEY_KP_5,
+    [KEY_KP6]        = ADB_KEY_KP_6,
+    [KEY_KP7]        = ADB_KEY_KP_7,
+    [KEY_KP8]        = ADB_KEY_KP_8,
+    [KEY_KP9]        = ADB_KEY_KP_9,
+
+    [KEY_UP]         = ADB_KEY_UP,
+    [KEY_DOWN]       = ADB_KEY_DOWN,
+    [KEY_LEFT]       = ADB_KEY_LEFT,
+    [KEY_RIGHT]      = ADB_KEY_RIGHT,
+
+    [KEY_HELP]       = ADB_KEY_HELP,
+    [KEY_INSERT]     = ADB_KEY_HELP,
+    [KEY_DELETE]     = ADB_KEY_FORWARD_DELETE,
+    [KEY_HOME]       = ADB_KEY_HOME,
+    [KEY_END]        = ADB_KEY_END,
+    [KEY_PAGEUP]     = ADB_KEY_PAGE_UP,
+    [KEY_PAGEDOWN]   = ADB_KEY_PAGE_DOWN,
+
+    [KEY_POWER]      = ADB_KEY_POWER
 };
 
 static void adb_kbd_put_keycode(void *opaque, int keycode)
@@ -309,14 +308,13 @@ static void adb_keyboard_event(DeviceState *dev, QemuConsole *src,
                                QemuInputEvent *evt)
 {
     KBDState *s = (KBDState *)dev;
-    int qcode, keycode;
+    int keycode;
 
-    qcode = qemu_input_linux_to_qcode(evt->key.key);
-    if (qcode >= ARRAY_SIZE(qcode_to_adb_keycode)) {
+    if (evt->key.key >= ARRAY_SIZE(linux_to_adb_keycode)) {
         return;
     }
-    /* FIXME: take handler into account when translating qcode */
-    keycode = qcode_to_adb_keycode[qcode];
+    /* FIXME: take handler into account when translating evt->key.key */
+    keycode = linux_to_adb_keycode[evt->key.key];
     if (keycode == NO_KEY) {  /* We don't want to send this to the guest */
         trace_adb_device_kbd_no_key();
         return;

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 10:48:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 10:48:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304602.1577520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLfEQ-0001ib-LJ; Sat, 09 May 2026 10:48:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304602.1577520; Sat, 09 May 2026 10:48:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLfEQ-0001gc-EC; Sat, 09 May 2026 10:48:26 +0000
Received: by outflank-mailman (input) for mailman id 1304602;
 Sat, 09 May 2026 10:48:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>) id 1wLfEO-0001aX-Db
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 10:48:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLfEN-00FIIk-Qi
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 12:48:23 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>)
 id 69ff10e4-bab6-0a2a0a5309dd-0a2a4505bea4-12
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 12:48:23 +0200
Received: from [49.212.243.89] (helo=www3579.sakura.ne.jp)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>)
 id 69ff10f4-aaa8-0a2a45050019-31d4f359d627-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 12:48:23 +0200
Received: from h183.csg.ci.i.u-tokyo.ac.jp (h183.csg.ci.i.u-tokyo.ac.jp
 [133.11.54.183]) (authenticated bits=0)
 by www3579.sakura.ne.jp (8.16.1/8.16.1) with ESMTPSA id 649AlY2T090834
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO);
 Sat, 9 May 2026 19:48:03 +0900 (JST)
 (envelope-from odaki@rsg.ci.i.u-tokyo.ac.jp)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=temperror header.s=rs20250326 header.d=rsg.ci.i.u-tokyo.ac.jp header.i="@rsg.ci.i.u-tokyo.ac.jp"
DKIM-Signature: a=rsa-sha256; bh=xdQOdc7TBZKnyuoO4opRDkTrA3cJx8lBTarnEJcV0aU=;
        c=relaxed/relaxed; d=rsg.ci.i.u-tokyo.ac.jp;
        h=From:Message-Id:To:Subject:Date;
        s=rs20250326; t=1778323683; v=1;
        b=GIZRVXUprHxdgxXu37WO+oDE2tz2qK9qCDhUVa6i501Q91fZ3ewidrfX+a8lpkAF
         6GqCbMHjs4ZNM/T0U3JUUNO0lOuRgt45WaPhjxfRUQzQ7L41jedjZJWipNEubGOE
         phEjj2/PsKnUryJDy3atw73TABpx0Y4RKe2xapC3S35WIb2p/Sj+GgbMhxfd+I70
         AZYj1bbqe2j25S7YFoc+uJIXEsy4Kj2NTOTGcdZAcyrOD159de5VRjVD/hXBc01L
         nZ1SauA8vcN6tXKEc/UJt4UHl2gikPAmNjculIMWV+molbtmhbb9DaqjVYaa6FS5
         4ThCfIkHGRDhexBedKxrCQ==
From: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Date: Sat, 09 May 2026 19:34:40 +0900
Subject: [PATCH RFC 28/28] ui/input: Remove unused QKeyCode helpers and
 keymaps
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260509-input-v1-28-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
References: <20260509-input-v1-0-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
In-Reply-To: <20260509-input-v1-0-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
To: qemu-devel@nongnu.org
Cc: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,
        Paolo Bonzini <pbonzini@redhat.com>, Jan Kiszka <jan.kiszka@web.de>,
        Peter Maydell <peter.maydell@linaro.org>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Anthony PERARD <anthony@xenproject.org>,
        "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
        Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
        Gerd Hoffmann <kraxel@redhat.com>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Thomas Huth <th.huth+qemu@posteo.eu>,
        =?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,
        qemu-arm@nongnu.org, xen-devel@lists.xenproject.org,
        qemu-ppc@nongnu.org,
        =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
        Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
X-Mailer: b4 0.16-dev-16047
X-Developer-Signature: v=1; a=openpgp-sha256; l=10998;
 i=odaki@rsg.ci.i.u-tokyo.ac.jp; h=from:subject:message-id;
 bh=C1sfssKpLnbwImq0G/bJG/Pt5wdJQR3NAMSed0uq3qA=;
 b=owGbwMvMwCWmMbc20y1CyJDxtFoSQ+Z/gTsvbv/RVWZK0P/Ye32FUfvZF0LeavN4fqxacE/m2
 LZffzYc7yhlYRDjYpAVU2RJKdrNrRFd+6kwIb4FZg4rE8gQBi5OAZiINAfD/zyXjrvBn7VsX/38
 oJZuI3cv/2e13IRlN6JljeY/jlVWsWX4nz7hxrV1iZZ5b0xCA5OvZrmoHWAssvl9n2vl1as9GzJ
 yuQE=
X-Developer-Key: i=odaki@rsg.ci.i.u-tokyo.ac.jp; a=openpgp;
 fpr=AEDC03C9AF734F2EC26A7BFFA4BAEAA73536753C
X-purgate-ID: tlsNG-c201ff/1778323703-D8B78443-CA7F16EE/0/0
X-purgate-type: clean
X-purgate-size: 11000

Their users have migrated to Linux key codes.

Signed-off-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
---
 include/ui/input.h | 50 --------------------------------------------------
 ui/input-keymap.c  | 39 ---------------------------------------
 ui/input.c         | 18 +-----------------
 ui/meson.build     | 15 ---------------
 4 files changed, 1 insertion(+), 121 deletions(-)

diff --git a/include/ui/input.h b/include/ui/input.h
index caa757ea1c2e..6e4892b73155 100644
--- a/include/ui/input.h
+++ b/include/ui/input.h
@@ -58,18 +58,13 @@ void qemu_input_event_send_impl(QemuConsole *src, QemuInputEvent *evt);
 void qemu_input_event_sync(void);
 void qemu_input_event_sync_impl(void);
 
-void qemu_input_event_send_key(QemuConsole *src, KeyValue *key, bool down);
 void qemu_input_event_send_key_linux(QemuConsole *src, unsigned int lnx,
                                      bool down);
 void qemu_input_event_send_key_number(QemuConsole *src, int num, bool down);
-void qemu_input_event_send_key_qcode(QemuConsole *src, QKeyCode q, bool down);
 void qemu_input_event_send_key_delay(uint32_t delay_ms);
 int qemu_input_key_number_to_qcode(unsigned int nr);
 unsigned int qemu_input_key_number_to_linux(unsigned int nr);
-int qemu_input_key_value_to_number(const KeyValue *value);
-int qemu_input_key_value_to_qcode(const KeyValue *value);
 unsigned int qemu_input_key_value_to_linux(const KeyValue *value);
-int qemu_input_qcode_to_scancode(QKeyCode qcode, bool down, int *codes);
 int qemu_input_linux_to_scancode(unsigned int lnx, bool down, int *codes);
 int qemu_input_linux_to_qcode(unsigned int lnx);
 
@@ -94,96 +89,51 @@ void qemu_input_check_mode_change(void);
 void qemu_add_mouse_mode_change_notifier(Notifier *notify);
 void qemu_remove_mouse_mode_change_notifier(Notifier *notify);
 
-extern const guint qemu_input_map_atset1_to_qcode_len;
-extern const guint16 qemu_input_map_atset1_to_qcode[];
-
 extern const guint qemu_input_map_atset1_to_linux_len;
 extern const guint16 qemu_input_map_atset1_to_linux[];
 
 extern const guint qemu_input_map_linux_to_qcode_len;
 extern const guint16 qemu_input_map_linux_to_qcode[];
 
-extern const guint qemu_input_map_qcode_to_atset1_len;
-extern const guint16 qemu_input_map_qcode_to_atset1[];
-
 extern const guint qemu_input_map_linux_to_atset1_len;
 extern const guint16 qemu_input_map_linux_to_atset1[];
 
-extern const guint qemu_input_map_qcode_to_atset2_len;
-extern const guint16 qemu_input_map_qcode_to_atset2[];
-
 extern const guint qemu_input_map_linux_to_atset2_len;
 extern const guint16 qemu_input_map_linux_to_atset2[];
 
-extern const guint qemu_input_map_qcode_to_atset3_len;
-extern const guint16 qemu_input_map_qcode_to_atset3[];
-
 extern const guint qemu_input_map_linux_to_atset3_len;
 extern const guint16 qemu_input_map_linux_to_atset3[];
 
 extern const guint qemu_input_map_qcode_to_linux_len;
 extern const guint16 qemu_input_map_qcode_to_linux[];
 
-extern const guint qemu_input_map_qcode_to_qnum_len;
-extern const guint16 qemu_input_map_qcode_to_qnum[];
-
 extern const guint qemu_input_map_linux_to_qnum_len;
 extern const guint16 qemu_input_map_linux_to_qnum[];
 
-extern const guint qemu_input_map_qcode_to_sun_len;
-extern const guint16 qemu_input_map_qcode_to_sun[];
-
 extern const guint qemu_input_map_linux_to_sun_len;
 extern const guint16 qemu_input_map_linux_to_sun[];
 
-extern const guint qemu_input_map_qnum_to_qcode_len;
-extern const guint16 qemu_input_map_qnum_to_qcode[];
-
 extern const guint qemu_input_map_qnum_to_linux_len;
 extern const guint16 qemu_input_map_qnum_to_linux[];
 
-extern const guint qemu_input_map_usb_to_qcode_len;
-extern const guint16 qemu_input_map_usb_to_qcode[];
-
 extern const guint qemu_input_map_usb_to_linux_len;
 extern const guint16 qemu_input_map_usb_to_linux[];
 
-extern const guint qemu_input_map_win32_to_qcode_len;
-extern const guint16 qemu_input_map_win32_to_qcode[];
-
 extern const guint qemu_input_map_win32_to_linux_len;
 extern const guint16 qemu_input_map_win32_to_linux[];
 
-extern const guint qemu_input_map_x11_to_qcode_len;
-extern const guint16 qemu_input_map_x11_to_qcode[];
-
 extern const guint qemu_input_map_x11_to_linux_len;
 extern const guint16 qemu_input_map_x11_to_linux[];
 
-extern const guint qemu_input_map_xorgevdev_to_qcode_len;
-extern const guint16 qemu_input_map_xorgevdev_to_qcode[];
-
-extern const guint qemu_input_map_xorgkbd_to_qcode_len;
-extern const guint16 qemu_input_map_xorgkbd_to_qcode[];
-
 extern const guint qemu_input_map_xorgkbd_to_linux_len;
 extern const guint16 qemu_input_map_xorgkbd_to_linux[];
 
-extern const guint qemu_input_map_xorgxquartz_to_qcode_len;
-extern const guint16 qemu_input_map_xorgxquartz_to_qcode[];
-
 extern const guint qemu_input_map_xorgxquartz_to_linux_len;
 extern const guint16 qemu_input_map_xorgxquartz_to_linux[];
 
-extern const guint qemu_input_map_xorgxwin_to_qcode_len;
-extern const guint16 qemu_input_map_xorgxwin_to_qcode[];
-
 extern const guint qemu_input_map_xorgxwin_to_linux_len;
 extern const guint16 qemu_input_map_xorgxwin_to_linux[];
 
-extern const guint qemu_input_map_osx_to_qcode_len;
-extern const guint16 qemu_input_map_osx_to_qcode[];
-
 extern const guint qemu_input_map_osx_to_linux_len;
 extern const guint16 qemu_input_map_osx_to_linux[];
 
diff --git a/ui/input-keymap.c b/ui/input-keymap.c
index 2b77ef09fd66..ec2a1fbc1a95 100644
--- a/ui/input-keymap.c
+++ b/ui/input-keymap.c
@@ -4,36 +4,21 @@
 
 #include "standard-headers/linux/input.h"
 
-#include "ui/input-keymap-atset1-to-qcode.c.inc"
 #include "ui/input-keymap-atset1-to-linux.c.inc"
 #include "ui/input-keymap-linux-to-qcode.c.inc"
-#include "ui/input-keymap-qcode-to-atset1.c.inc"
 #include "ui/input-keymap-linux-to-atset1.c.inc"
-#include "ui/input-keymap-qcode-to-atset2.c.inc"
 #include "ui/input-keymap-linux-to-atset2.c.inc"
-#include "ui/input-keymap-qcode-to-atset3.c.inc"
 #include "ui/input-keymap-linux-to-atset3.c.inc"
 #include "ui/input-keymap-qcode-to-linux.c.inc"
-#include "ui/input-keymap-qcode-to-qnum.c.inc"
 #include "ui/input-keymap-linux-to-qnum.c.inc"
-#include "ui/input-keymap-qcode-to-sun.c.inc"
 #include "ui/input-keymap-linux-to-sun.c.inc"
-#include "ui/input-keymap-qnum-to-qcode.c.inc"
 #include "ui/input-keymap-qnum-to-linux.c.inc"
-#include "ui/input-keymap-usb-to-qcode.c.inc"
 #include "ui/input-keymap-usb-to-linux.c.inc"
-#include "ui/input-keymap-win32-to-qcode.c.inc"
 #include "ui/input-keymap-win32-to-linux.c.inc"
-#include "ui/input-keymap-x11-to-qcode.c.inc"
 #include "ui/input-keymap-x11-to-linux.c.inc"
-#include "ui/input-keymap-xorgevdev-to-qcode.c.inc"
-#include "ui/input-keymap-xorgkbd-to-qcode.c.inc"
 #include "ui/input-keymap-xorgkbd-to-linux.c.inc"
-#include "ui/input-keymap-xorgxquartz-to-qcode.c.inc"
 #include "ui/input-keymap-xorgxquartz-to-linux.c.inc"
-#include "ui/input-keymap-xorgxwin-to-qcode.c.inc"
 #include "ui/input-keymap-xorgxwin-to-linux.c.inc"
-#include "ui/input-keymap-osx-to-qcode.c.inc"
 #include "ui/input-keymap-osx-to-linux.c.inc"
 
 int qemu_input_linux_to_qcode(unsigned int lnx)
@@ -44,19 +29,6 @@ int qemu_input_linux_to_qcode(unsigned int lnx)
     return qemu_input_map_linux_to_qcode[lnx];
 }
 
-int qemu_input_key_value_to_number(const KeyValue *value)
-{
-    if (value->type == KEY_VALUE_KIND_QCODE) {
-        if (value->u.qcode.data >= qemu_input_map_qcode_to_qnum_len) {
-            return 0;
-        }
-        return qemu_input_map_qcode_to_qnum[value->u.qcode.data];
-    } else {
-        assert(value->type == KEY_VALUE_KIND_NUMBER);
-        return value->u.number.data;
-    }
-}
-
 int qemu_input_key_number_to_qcode(unsigned int nr)
 {
     return qemu_input_linux_to_qcode(qemu_input_key_number_to_linux(nr));
@@ -70,11 +42,6 @@ unsigned int qemu_input_key_number_to_linux(unsigned int nr)
     return qemu_input_map_qnum_to_linux[nr];
 }
 
-int qemu_input_key_value_to_qcode(const KeyValue *value)
-{
-    return qemu_input_linux_to_qcode(qemu_input_key_value_to_linux(value));
-}
-
 unsigned int qemu_input_key_value_to_linux(const KeyValue *value)
 {
     switch (value->type) {
@@ -89,12 +56,6 @@ unsigned int qemu_input_key_value_to_linux(const KeyValue *value)
     }
 }
 
-int qemu_input_qcode_to_scancode(QKeyCode qcode, bool down, int *codes)
-{
-    return qemu_input_linux_to_scancode(qemu_input_map_qcode_to_linux[qcode],
-                                        down, codes);
-}
-
 int qemu_input_linux_to_scancode(unsigned int lnx, bool down, int *codes)
 {
     int keycode = lnx < qemu_input_map_linux_to_qnum_len ?
diff --git a/ui/input.c b/ui/input.c
index e3e277117949..2524abaedf7b 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -352,14 +352,6 @@ void qemu_input_event_sync(void)
     replay_input_sync_event();
 }
 
-void qemu_input_event_send_key(QemuConsole *src, KeyValue *key, bool down)
-{
-    unsigned int lnx = qemu_input_key_value_to_linux(key);
-
-    g_free(key);
-    qemu_input_event_send_key_linux(src, lnx, down);
-}
-
 void qemu_input_event_send_key_linux(QemuConsole *src, unsigned int lnx,
                                      bool down)
 {
@@ -383,15 +375,7 @@ void qemu_input_event_send_key_linux(QemuConsole *src, unsigned int lnx,
 void qemu_input_event_send_key_number(QemuConsole *src, int num, bool down)
 {
     unsigned int lnx = qemu_input_key_number_to_linux(num);
-    qemu_input_event_send_key_qcode(src, lnx, down);
-}
-
-void qemu_input_event_send_key_qcode(QemuConsole *src, QKeyCode q, bool down)
-{
-    KeyValue *key = g_new0(KeyValue, 1);
-    key->type = KEY_VALUE_KIND_QCODE;
-    key->u.qcode.data = q;
-    qemu_input_event_send_key(src, key, down);
+    qemu_input_event_send_key_linux(src, lnx, down);
 }
 
 void qemu_input_event_send_key_delay(uint32_t delay_ms)
diff --git a/ui/meson.build b/ui/meson.build
index 4aa2a38c52f4..0b810925d2db 100644
--- a/ui/meson.build
+++ b/ui/meson.build
@@ -149,36 +149,21 @@ if spice.found()
 endif
 
 keymaps = [
-  ['atset1', 'qcode'],
   ['atset1', 'linux'],
   ['linux', 'qcode'],
-  ['qcode', 'atset1'],
   ['linux', 'atset1'],
-  ['qcode', 'atset2'],
   ['linux', 'atset2'],
-  ['qcode', 'atset3'],
   ['linux', 'atset3'],
   ['qcode', 'linux'],
-  ['qcode', 'qnum'],
   ['linux', 'qnum'],
-  ['qcode', 'sun'],
   ['linux', 'sun'],
-  ['qnum', 'qcode'],
   ['qnum', 'linux'],
-  ['usb', 'qcode'],
   ['usb', 'linux'],
-  ['win32', 'qcode'],
   ['win32', 'linux'],
-  ['x11', 'qcode'],
   ['x11', 'linux'],
-  ['xorgevdev', 'qcode'],
-  ['xorgkbd', 'qcode'],
   ['xorgkbd', 'linux'],
-  ['xorgxquartz', 'qcode'],
   ['xorgxquartz', 'linux'],
-  ['xorgxwin', 'qcode'],
   ['xorgxwin', 'linux'],
-  ['osx', 'qcode'],
   ['osx', 'linux'],
 ]
 

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 10:48:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 10:48:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304603.1577542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLfER-0002Ql-Vu; Sat, 09 May 2026 10:48:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304603.1577542; Sat, 09 May 2026 10:48:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLfER-0002Qe-Se; Sat, 09 May 2026 10:48:27 +0000
Received: by outflank-mailman (input) for mailman id 1304603;
 Sat, 09 May 2026 10:48:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>) id 1wLfEQ-0001il-M6
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 10:48:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLfEQ-00FIIk-2o
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 12:48:26 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>)
 id 69ff10e4-bab6-0a2a0a5309dd-0a2a4505bea4-20
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 12:48:26 +0200
Received: from [49.212.243.89] (helo=www3579.sakura.ne.jp)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <odaki@rsg.ci.i.u-tokyo.ac.jp>)
 id 69ff10f7-aaa8-0a2a45050019-31d4f359d68d-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 12:48:25 +0200
Received: from h183.csg.ci.i.u-tokyo.ac.jp (h183.csg.ci.i.u-tokyo.ac.jp
 [133.11.54.183]) (authenticated bits=0)
 by www3579.sakura.ne.jp (8.16.1/8.16.1) with ESMTPSA id 649AlY2L090834
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO);
 Sat, 9 May 2026 19:48:01 +0900 (JST)
 (envelope-from odaki@rsg.ci.i.u-tokyo.ac.jp)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=temperror header.s=rs20250326 header.d=rsg.ci.i.u-tokyo.ac.jp header.i="@rsg.ci.i.u-tokyo.ac.jp"
DKIM-Signature: a=rsa-sha256; bh=8DrbNDimPytD2Lqd2BsnuvqZLeFlu5Z+sunaR47ICfs=;
        c=relaxed/relaxed; d=rsg.ci.i.u-tokyo.ac.jp;
        h=From:Message-Id:To:Subject:Date;
        s=rs20250326; t=1778323681; v=1;
        b=EZUG6OgWnMEi80mWOv2bjQh69KIzj095fUuL+GG0Y+Ocgqc0ySNqx21bn9jTgoBi
         gIOOXCAYQ6WtAM8ujVLEiqtd9gSR0j4rd4xO7o5RqI2XPMW3/UooD+7tSggeiP4L
         gE0NUbscSS8YA+Mx1Gfr2UylEtbic/4xW8GTk6m2P9EznvTyEH4iV/4IZA+UHNGx
         dUmXYXfrVKC7U3HU4oua43HgpUYTg1YNjbSpvneEbJ8jidGE8CTbWnEeqeiXZVip
         MXUMoqwQTbNunaDlZcL3/vUInNW0z7NbHiONGReOLeJaq1Zb585hY6sdxGHqBKgs
         ZyyMt54SD4C3BEJvhcbbUw==
From: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Date: Sat, 09 May 2026 19:34:32 +0900
Subject: [PATCH RFC 20/28] ui/input-legacy: Use Linux key codes
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260509-input-v1-20-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
References: <20260509-input-v1-0-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
In-Reply-To: <20260509-input-v1-0-66f18d2edde6@rsg.ci.i.u-tokyo.ac.jp>
To: qemu-devel@nongnu.org
Cc: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,
        Paolo Bonzini <pbonzini@redhat.com>, Jan Kiszka <jan.kiszka@web.de>,
        Peter Maydell <peter.maydell@linaro.org>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Anthony PERARD <anthony@xenproject.org>,
        "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
        Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
        Gerd Hoffmann <kraxel@redhat.com>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Thomas Huth <th.huth+qemu@posteo.eu>,
        =?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,
        qemu-arm@nongnu.org, xen-devel@lists.xenproject.org,
        qemu-ppc@nongnu.org,
        =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
        Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
X-Mailer: b4 0.16-dev-16047
X-Developer-Signature: v=1; a=openpgp-sha256; l=2048;
 i=odaki@rsg.ci.i.u-tokyo.ac.jp; h=from:subject:message-id;
 bh=Fw4LZt0Zxdxd+pp/aswa6uqQEJsaIMY4eIVuWOuDFDU=;
 b=owGbwMvMwCWmMbc20y1CyJDxtFoSQ+Z/gRuRrFtN2E/2hy4vFXHjb+T9L3/4tGJiRbZhv8OPb
 n3ll5YdpSwMYlwMsmKKLClFu7k1oms/FSbEt8DMYWUCGcLAxSkAE7nAz/A/x8pUpe/X57bWK/cM
 bW+638299/u5v635S2aD3y8sV8SyMjIsmraO89bZEL2iixLlB53cTK4dZf/jVxn+dprRhGtK56R
 5AA==
X-Developer-Key: i=odaki@rsg.ci.i.u-tokyo.ac.jp; a=openpgp;
 fpr=AEDC03C9AF734F2EC26A7BFFA4BAEAA73536753C
X-purgate-ID: tlsNG-c201ff/1778323706-E338A443-BC534A78/0/0
X-purgate-type: clean
X-purgate-size: 2050

QemuInputEvent now stores Linux key codes for key events. Use those
codes directly instead of translating between internal key code
representations.

Signed-off-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
---
 ui/input-legacy.c | 22 +++++-----------------
 1 file changed, 5 insertions(+), 17 deletions(-)

diff --git a/ui/input-legacy.c b/ui/input-legacy.c
index e2b48dd8f0aa..193c9ae2ef9f 100644
--- a/ui/input-legacy.c
+++ b/ui/input-legacy.c
@@ -71,23 +71,11 @@ int index_from_key(const char *key, size_t key_length)
     return i;
 }
 
-static KeyValue *copy_key_value(KeyValue *src)
-{
-    KeyValue *dst = g_new(KeyValue, 1);
-    memcpy(dst, src, sizeof(*src));
-    if (dst->type == KEY_VALUE_KIND_NUMBER) {
-        QKeyCode code = qemu_input_key_number_to_qcode(dst->u.number.data);
-        dst->type = KEY_VALUE_KIND_QCODE;
-        dst->u.qcode.data = code;
-    }
-    return dst;
-}
-
 void qmp_send_key(KeyValueList *keys, bool has_hold_time, int64_t hold_time,
                   Error **errp)
 {
     KeyValueList *p;
-    KeyValue **up = NULL;
+    unsigned int *up = NULL;
     int count = 0;
 
     if (!has_hold_time) {
@@ -95,15 +83,15 @@ void qmp_send_key(KeyValueList *keys, bool has_hold_time, int64_t hold_time,
     }
 
     for (p = keys; p != NULL; p = p->next) {
-        qemu_input_event_send_key(NULL, copy_key_value(p->value), true);
-        qemu_input_event_send_key_delay(hold_time);
         up = g_realloc(up, sizeof(*up) * (count+1));
-        up[count] = copy_key_value(p->value);
+        up[count] = qemu_input_key_value_to_linux(p->value);
+        qemu_input_event_send_key_linux(NULL, up[count], true);
+        qemu_input_event_send_key_delay(hold_time);
         count++;
     }
     while (count) {
         count--;
-        qemu_input_event_send_key(NULL, up[count], false);
+        qemu_input_event_send_key_linux(NULL, up[count], false);
         qemu_input_event_send_key_delay(hold_time);
     }
     g_free(up);

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 17:01:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 17:01:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304888.1577569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLl2v-0002tL-Ki; Sat, 09 May 2026 17:00:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304888.1577569; Sat, 09 May 2026 17:00:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLl2v-0002tC-Fk; Sat, 09 May 2026 17:00:57 +0000
Received: by outflank-mailman (input) for mailman id 1304888;
 Sat, 09 May 2026 17:00:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgg@ziepe.ca>) id 1wLl2t-0002t6-Un
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 17:00:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLl2s-001bV2-VQ
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 19:00:55 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgg@ziepe.ca>)
 id 69ff6830-2eae-0a2a0a5409dd-0a2a45048f3a-26
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 19:00:54 +0200
Received: from [209.85.222.180] (helo=mail-qk1-f180.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgg@ziepe.ca>)
 id 69ff6845-1dec-0a2a45040019-d155deb4a4ee-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 19:00:54 +0200
Received: by mail-qk1-f180.google.com with SMTP id
 af79cd13be357-8dbbc6c16b2so404700585a.0
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 10:00:54 -0700 (PDT)
Received: from ziepe.ca
 (crbknf0213w-47-54-130-67.pppoe-dynamic.high-speed.nl.bellaliant.net.
 [47.54.130.67]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-8fc2c91c807sm2841885185a.32.2026.05.09.10.00.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 09 May 2026 10:00:52 -0700 (PDT)
Received: from jgg by wakko with local (Exim 4.97)
 (envelope-from <jgg@ziepe.ca>) id 1wLl2p-00000001ptR-0bDu;
 Sat, 09 May 2026 14:00:51 -0300
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=ziepe.ca header.i="@ziepe.ca" header.h="In-Reply-To:Content-Disposition:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=ziepe.ca; s=google; t=1778346053; x=1778950853; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=IRop8m7XaImUSxbpG/XbxbRCDh4G22WGRyOV4N0sJrU=;
        b=QISdGVENNJWF3WqynFWR9xj5ZY6K/dgoKEJvvh39m+ZOTOFpw/G31Xz7jZTqf2YMe8
         MR0kttlI4rmvboJKaxANkjBqlm8q7zupdVsEpiRn1lPuwX2hOs+uzz0MRoQL2+vv34qU
         ZSKMPd+xZkvob5u+vwfIFdJMzlPXFaY7f8wb34X2qCEUHBxdgVsMbUNg/lIoZoivTBGy
         Sad0AmzxZq3UGNJbpFfNCHDSHcEhdrybJTce1szDpi7wSbqQnZ9Nb26+lHjnbl4k770U
         hNuPCUJTt7g1Yt/rVAWwHeoiyOrelxoHwl9K41hmCRXQ6E1alqHf+GYONs33zH1SIAYL
         vzkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778346053; x=1778950853;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=IRop8m7XaImUSxbpG/XbxbRCDh4G22WGRyOV4N0sJrU=;
        b=cnpyIWjDbYGVwgoPSlMYuAOnI4tMy+0+KRIa967aXNlxvNJPLP2NLiiZyQNlHiaA0p
         T2S4PRNiqwwc25awUH5P0FgTULynOr4uPMb7mU61AKyTwf7TRRUsxlfuY70CU+AhyuxF
         kR0GL/DMSqgZc+d36kYzRJdVWryhQtLDkJefw2GCl2v4kMyB57Ah9wjqzl/pO2ZeguWk
         2AjbcbL0cfwmDIlnpNFwBzgt9JfqklRPRxnIeXGzIvOFNiZ/M9KfOalpLsoNi+5kf6qO
         jcJOP/X/WqLvXMI3NVUdWn/uOw69UAn1VnDCvqW4L69CbS1SKij8q2IbaY4rRDKi4t6X
         BAjA==
X-Forwarded-Encrypted: i=1; AFNElJ/HP+8ua7sEMp5YrkBs+6Fsqdp4qHOmem0nYdRWcJrGjeSZVWctcc/s2fHUK9HWwSLKR0RiYKwx1R0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx/UDbne6YoBr46onHakO0VcbzH9ACmWTJd8cfYzDtVUP5cLk1A
	w9Gi0njCqslJz2S9+m41IkR7wqZO890kLq6FsM0ObwAKG7kIM+RwZ1eaeedSO8bNHMg=
X-Gm-Gg: Acq92OFdmqNrvw15F6YnDZ830pRAwR9fHd7o46C2QBCj8PWEYJcL0iwpiO9s41ggxJf
	AqYV4ZsKCOHEaFinRATRcXIxYtxEFPf/8pwDvwUfVTqd9cviSffNVFUuILLckseO9cfYCg93K91
	lmXxjpX8HkzqrO/z4B+6I50Hcy1eNYajlTvlEP9LnJxox5v4/Lkgael2wz/aOWTnTYs0Kj1ime9
	5Qh9G5T/UeSaXl6b36krMamZJeswDAPjwoTFN934bUvxsWTsHE5UMyo7Ud/vzK6dwCanQI68Q4T
	XmgpiarHfylNhcWZw/MqYINIM+lJ9SWJ3BxW5lJ7+wKj8LzcxHGtSKojeZSXobB3OWDMioM8jb6
	OiTDXJnlrmpDY5Lw+NM8OSw3QYUGjo288wHutCBv+HkHgynn10NRnl+qc4n6YqVjMdBnrUmIuJP
	EdhhhbneITpRQwiu9TgjqihSeYoSYPHRjlZ/Ez5mQJU0lrdQU0NdgEQY0SUkm7+MjHnYWsYAKYG
	cL0WA==
X-Received: by 2002:a05:620a:45a6:b0:8d6:6db0:88de with SMTP id af79cd13be357-90653728e7emr1667325985a.44.1778346053103;
        Sat, 09 May 2026 10:00:53 -0700 (PDT)
Date: Sat, 9 May 2026 14:00:51 -0300
From: Jason Gunthorpe <jgg@ziepe.ca>
To: "Tian, Kevin" <kevin.tian@intel.com>
Cc: Teddy Astie <teddy.astie@vates.tech>,
	"iommu@lists.linux.dev" <iommu@lists.linux.dev>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: How to express "externally managed" IOMMU domains for
 VFIO/IOMMUFD ?
Message-ID: <20260509170051.GD9285@ziepe.ca>
References: <1776873531.8631fc262581453bbf619ec5b2062170.19db5ea67ab000f373@vates.tech>
 <BN9PR11MB5276B3A829AD624A7E1AB4408C2A2@BN9PR11MB5276.namprd11.prod.outlook.com>
 <20260426133027.GB3501894@ziepe.ca>
 <BN9PR11MB52768B5170F6CE558B0AC8AA8C3C2@BN9PR11MB5276.namprd11.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <BN9PR11MB52768B5170F6CE558B0AC8AA8C3C2@BN9PR11MB5276.namprd11.prod.outlook.com>
X-purgate-ID: tlsNG-ebf023/1778346054-2A5603FF-95453907/0/0
X-purgate-type: clean
X-purgate-size: 2153

On Thu, May 07, 2026 at 08:02:40AM +0000, Tian, Kevin wrote:
> > From: Jason Gunthorpe <jgg@ziepe.ca>
> > Sent: Sunday, April 26, 2026 9:30 PM
> > 
> > On Thu, Apr 23, 2026 at 08:01:50AM +0000, Tian, Kevin wrote:
> > > > On Xen, we have a dedicated hypercalls for moving a device into another
> > > > guest (so it no longer belongs in Dom0, at far as DMA is concerned).
> > > >
> > > > But it looks like there are no way to describe that idea of "attach that
> > > > device to this VM" nor "the device is in a VM"; which makes that
> > > > impracticable.
> > > >
> > > > There may be things that could be done with the vIOMMU objects, but
> > > > there would be no "parent domain" in such case, as said earlier it
> > > > doesn't exist in the IOMMU subsystem.
> > > >
> > > > What is expected to be done instead ?
> > > >
> > > > Teddy
> > > >
> > > > [1] https://www.youtube.com/watch?v=pLMGRgEJ-Eg
> > > >
> > >
> > > It'd be much easier to collect comments if you can put plain words
> > > to explain the problem rather than expecting other folks to watch
> > > the video first...
> > 
> > It sounds like CC and pkvm to me so I think it should re-use those
> > mechanisms..
> > 
> 
> for CC and pkvm the guest memory is still allocated from host.

>From an iommu perspective that doesn't entirely matter, what it sees
is that the translation is controlled by some secure world and it
only needs a way to associate the kvm handle for the secure world with
any required call for configuring the viommu.

It is not very different from KVM installing encrypted pages that have
been completed unmapped from all page tables in the hypervisor into
the VM's secure EPT through TDX calls and then iommufd creating a
viommu that re-uses the secure EPT.

The only thing dealing with the memory map is KVM. I'd expect Xen to
work the same, however the invisible memory was affiliated with the VM
through KVM the iommu side should pick up the KVM and then request a
VIOMMU to be setup for the VFIO device on the target KVM and that
should trigger the hypercalls to move the device into the selected
guest.

Jason


From xen-devel-bounces@lists.xenproject.org Sat May 09 17:17:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 17:17:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304899.1577578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLlIW-0004kF-TD; Sat, 09 May 2026 17:17:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304899.1577578; Sat, 09 May 2026 17:17:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLlIW-0004k8-P6; Sat, 09 May 2026 17:17:04 +0000
Received: by outflank-mailman (input) for mailman id 1304899;
 Sat, 09 May 2026 17:17:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marcandre.lureau@redhat.com>) id 1wLlIU-0004k2-GJ
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 17:17:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLlIT-0026KT-TV
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 19:17:01 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marcandre.lureau@redhat.com>)
 id 69ff6bfe-5cb7-0a2a0a5109dd-0a2a4502e204-8
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 19:17:01 +0200
Received: from [170.10.133.124] (helo=us-smtp-delivery-124.mimecast.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marcandre.lureau@redhat.com>)
 id 69ff6c0c-af86-0a2a45020019-aa0a857c766d-3
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 19:17:01 +0200
Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-636-BfaoMpQBOwe2Oicoz6BwWg-1; Sat,
 09 May 2026 13:16:55 -0400
Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 6AB3819560B4; Sat,  9 May 2026 17:16:50 +0000 (UTC)
Received: from localhost (unknown [10.44.24.4])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 444FB3002D30; Sat,  9 May 2026 17:16:44 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mimecast20190719 header.d=redhat.com header.i="@redhat.com" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1778347020;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=S55zZ457fOtWSDgpU0+d8V9m5MMTKNlkmEv79oOosxI=;
	b=C+TmSI3nIwTwD4oIrctDe9CWbo9P2q+dcej67Ab4ATrZPkE20KAHf35ntdpwWOVz0YQN94
	6WlFODnMCIPPg/WEWa8JdCVptM+ojhMTuYepz/WHVG13+ZCDh8BgfbWeQ+brjM+7yKXRYq
	WcWL1NzGNzlDeUROA94epJNehYQy2T0=
X-MC-Unique: BfaoMpQBOwe2Oicoz6BwWg-1
X-Mimecast-MFC-AGG-ID: BfaoMpQBOwe2Oicoz6BwWg_1778347011
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: stefanha@gmail.com,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Jan Kiszka <jan.kiszka@web.de>,
	Peter Maydell <peter.maydell@linaro.org>,
	Phil Dennis-Jordan <phil@philjordan.eu>,
	Richard Henderson <richard.henderson@linaro.org>,
	Helge Deller <deller@gmx.de>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	Samuel Tardieu <sam@rfc1149.net>,
	=?UTF-8?q?Herv=C3=A9=20Poussineau?= <hpoussin@reactos.org>,
	Aleksandar Rikalo <arikalo@gmail.com>,
	Jean-Christophe Dubois <jcd@tribudubois.net>,
	Laurent Vivier <laurent@vivier.eu>,
	Thomas Huth <th.huth+qemu@posteo.eu>,
	BALATON Zoltan <balaton@eik.bme.hu>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Stefano Garzarella <sgarzare@redhat.com>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>,
	Dmitry Osipenko <dmitry.osipenko@collabora.com>,
	Dmitry Fleytman <dmitry.fleytman@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Alistair Francis <alistair@alistair23.me>,
	Alex Williamson <alex@shazbot.org>,
	=?UTF-8?q?C=C3=A9dric=20Le=20Goater?= <clg@redhat.com>,
	qemu-arm@nongnu.org (open list:Musicpal),
	qemu-ppc@nongnu.org (open list:sam460ex),
	xen-devel@lists.xenproject.org (open list:X86 Xen CPUs)
Subject: [PULL v2 28/33] ui/console: rename public API to use consistent qemu_console_ prefix
Date: Sat,  9 May 2026 21:13:49 +0400
Message-ID: <20260509171356.1157879-29-marcandre.lureau@redhat.com>
In-Reply-To: <20260509171356.1157879-1-marcandre.lureau@redhat.com>
References: <20260509171356.1157879-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4
X-Mimecast-MFC-PROC-ID: D35fY0rVM-B65eHF4-ZLT2s8iET6TQw44jBDt0cMmao_1778347011
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778347021-7BD672C1-286549E4/0/0
X-purgate-type: clean
X-purgate-size: 114193

From: Marc-André Lureau <marcandre.lureau@redhat.com>

Rename the display and graphic console public functions to follow a
consistent qemu_console_ (or qemu_graphic_console_) naming convention.

The previous API used a mix of prefixes: dpy_, graphic_hw_,
graphic_console_, console_has_, and update_displaychangelistener().
Unify them under a common qemu_console_ namespace for better
discoverability and consistency.

The main renames are:
- dpy_gfx_*() / dpy_text_*() / dpy_gl_*() → qemu_console_*()
- dpy_{get,set}_ui_info() → qemu_console_{get,set}_ui_info()
- graphic_hw_*() → qemu_console_hw_*()
- graphic_console_*() → qemu_graphic_console_*()
- console_has_gl() → qemu_console_has_gl()
- update_displaychangelistener() → qemu_console_listener_set_refresh()

No functional changes.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 include/ui/console.h             | 108 ++++++++++++------------
 hw/arm/musicpal.c                |   4 +-
 hw/display/artist.c              |   4 +-
 hw/display/ati.c                 |  16 ++--
 hw/display/bcm2835_fb.c          |   5 +-
 hw/display/bochs-display.c       |  14 ++--
 hw/display/cg3.c                 |   6 +-
 hw/display/cirrus_vga.c          |   8 +-
 hw/display/cirrus_vga_isa.c      |   2 +-
 hw/display/dm163.c               |   6 +-
 hw/display/exynos4210_fimd.c     |   4 +-
 hw/display/g364fb.c              |  10 +--
 hw/display/imx6ul_lcdif.c        |  14 ++--
 hw/display/jazz_led.c            |   8 +-
 hw/display/macfb.c               |   6 +-
 hw/display/next-fb.c             |   4 +-
 hw/display/omap_lcdc.c           |   4 +-
 hw/display/pl110.c               |   4 +-
 hw/display/qxl-render.c          |  12 +--
 hw/display/qxl.c                 |  14 ++--
 hw/display/ramfb-standalone.c    |   2 +-
 hw/display/ramfb.c               |   4 +-
 hw/display/sm501.c               |   6 +-
 hw/display/ssd0303.c             |   4 +-
 hw/display/ssd0323.c             |   5 +-
 hw/display/tcx.c                 |  16 ++--
 hw/display/vga-isa.c             |   2 +-
 hw/display/vga-mmio.c            |   2 +-
 hw/display/vga-pci.c             |   6 +-
 hw/display/vga.c                 |  40 +++++----
 hw/display/vhost-user-gpu.c      |  22 ++---
 hw/display/virtio-gpu-base.c     |   2 +-
 hw/display/virtio-gpu-rutabaga.c |  10 +--
 hw/display/virtio-gpu-udmabuf.c  |   4 +-
 hw/display/virtio-gpu-virgl.c    |  20 ++---
 hw/display/virtio-gpu.c          |  26 +++---
 hw/display/virtio-vga.c          |   2 +-
 hw/display/vmware_vga.c          |  12 +--
 hw/display/xenfb.c               |   6 +-
 hw/display/xlnx_dp.c             |  10 +--
 hw/vfio/display.c                |  32 +++----
 ui/console-vc.c                  |  12 +--
 ui/console.c                     | 140 +++++++++++++++----------------
 ui/curses.c                      |   8 +-
 ui/dbus-console.c                |   4 +-
 ui/dbus-listener.c               |  10 +--
 ui/egl-headless.c                |   4 +-
 ui/gtk-egl.c                     |   6 +-
 ui/gtk-gl-area.c                 |   6 +-
 ui/gtk.c                         |  18 ++--
 ui/sdl2-2d.c                     |   2 +-
 ui/sdl2-gl.c                     |   2 +-
 ui/sdl2.c                        |   6 +-
 ui/spice-display.c               |  16 ++--
 ui/vnc.c                         |  22 ++---
 hw/display/apple-gfx.m           |  16 ++--
 ui/cocoa.m                       |  10 +--
 57 files changed, 379 insertions(+), 389 deletions(-)

diff --git a/include/ui/console.h b/include/ui/console.h
index 69ac7b01b33..cfa940d4c66 100644
--- a/include/ui/console.h
+++ b/include/ui/console.h
@@ -294,49 +294,49 @@ DisplayState *init_displaystate(void);
 void qemu_console_register_listener(QemuConsole *con,
                                     DisplayChangeListener *dcl,
                                     const DisplayChangeListenerOps *ops);
-void update_displaychangelistener(DisplayChangeListener *dcl,
-                                  uint64_t interval);
+void qemu_console_listener_set_refresh(DisplayChangeListener *dcl,
+                                       uint64_t interval);
 void qemu_console_unregister_listener(DisplayChangeListener *dcl);
 
-bool dpy_ui_info_supported(const QemuConsole *con);
-const QemuUIInfo *dpy_get_ui_info(const QemuConsole *con);
-int dpy_set_ui_info(QemuConsole *con, QemuUIInfo *info, bool delay);
-
-void dpy_gfx_update(QemuConsole *con, int x, int y, int w, int h);
-void dpy_gfx_update_full(QemuConsole *con);
-void dpy_gfx_replace_surface(QemuConsole *con,
-                             DisplaySurface *surface);
-void dpy_text_cursor(QemuConsole *con, int x, int y);
-void dpy_text_update(QemuConsole *con, int x, int y, int w, int h);
-void dpy_text_resize(QemuConsole *con, int w, int h);
-void dpy_mouse_set(QemuConsole *con, int x, int y, bool on);
-void dpy_cursor_define(QemuConsole *con, QEMUCursor *cursor);
-bool dpy_gfx_check_format(QemuConsole *con,
-                          pixman_format_code_t format);
-
-void dpy_gl_scanout_disable(QemuConsole *con);
-void dpy_gl_scanout_texture(QemuConsole *con,
-                            uint32_t backing_id, bool backing_y_0_top,
-                            uint32_t backing_width, uint32_t backing_height,
-                            uint32_t x, uint32_t y, uint32_t w, uint32_t h,
-                            void *d3d_tex2d);
-void dpy_gl_scanout_dmabuf(QemuConsole *con,
-                           QemuDmaBuf *dmabuf);
-void dpy_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf,
-                          bool have_hot, uint32_t hot_x, uint32_t hot_y);
-void dpy_gl_cursor_position(QemuConsole *con,
-                            uint32_t pos_x, uint32_t pos_y);
-void dpy_gl_release_dmabuf(QemuConsole *con,
-                           QemuDmaBuf *dmabuf);
-void dpy_gl_update(QemuConsole *con,
-                   uint32_t x, uint32_t y, uint32_t w, uint32_t h);
-
-QEMUGLContext dpy_gl_ctx_create(QemuConsole *con,
-                                QEMUGLParams *params);
-void dpy_gl_ctx_destroy(QemuConsole *con, QEMUGLContext ctx);
-int dpy_gl_ctx_make_current(QemuConsole *con, QEMUGLContext ctx);
-
-bool console_has_gl(QemuConsole *con);
+bool qemu_console_ui_info_supported(const QemuConsole *con);
+const QemuUIInfo *qemu_console_get_ui_info(const QemuConsole *con);
+int qemu_console_set_ui_info(QemuConsole *con, QemuUIInfo *info, bool delay);
+
+void qemu_console_update(QemuConsole *con, int x, int y, int w, int h);
+void qemu_console_update_full(QemuConsole *con);
+void qemu_console_set_surface(QemuConsole *con,
+                              DisplaySurface *surface);
+void qemu_console_text_set_cursor(QemuConsole *con, int x, int y);
+void qemu_console_text_update(QemuConsole *con, int x, int y, int w, int h);
+void qemu_console_text_resize(QemuConsole *con, int w, int h);
+void qemu_console_set_mouse(QemuConsole *con, int x, int y, bool on);
+void qemu_console_set_cursor(QemuConsole *con, QEMUCursor *cursor);
+bool qemu_console_check_format(QemuConsole *con,
+                               pixman_format_code_t format);
+
+void qemu_console_gl_scanout_disable(QemuConsole *con);
+void qemu_console_gl_scanout_texture(QemuConsole *con,
+                                     uint32_t backing_id, bool backing_y_0_top,
+                                     uint32_t backing_width, uint32_t backing_height,
+                                     uint32_t x, uint32_t y, uint32_t w, uint32_t h,
+                                     void *d3d_tex2d);
+void qemu_console_gl_scanout_dmabuf(QemuConsole *con,
+                                    QemuDmaBuf *dmabuf);
+void qemu_console_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf,
+                                   bool have_hot, uint32_t hot_x, uint32_t hot_y);
+void qemu_console_gl_cursor_position(QemuConsole *con,
+                                     uint32_t pos_x, uint32_t pos_y);
+void qemu_console_gl_release_dmabuf(QemuConsole *con,
+                                    QemuDmaBuf *dmabuf);
+void qemu_console_gl_update(QemuConsole *con,
+                            uint32_t x, uint32_t y, uint32_t w, uint32_t h);
+
+QEMUGLContext qemu_console_gl_ctx_create(QemuConsole *con,
+                                         QEMUGLParams *params);
+void qemu_console_gl_ctx_destroy(QemuConsole *con, QEMUGLContext ctx);
+int qemu_console_gl_ctx_make_current(QemuConsole *con, QEMUGLContext ctx);
+
+bool qemu_console_has_gl(QemuConsole *con);
 
 enum {
     GRAPHIC_FLAGS_NONE     = 0,
@@ -361,19 +361,19 @@ typedef struct GraphicHwOps {
     void (*gl_block)(void *opaque, bool block);
 } GraphicHwOps;
 
-QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,
-                                  const GraphicHwOps *ops,
-                                  void *opaque);
-void graphic_console_set_hwops(QemuConsole *con,
-                               const GraphicHwOps *hw_ops,
-                               void *opaque);
-void graphic_console_close(QemuConsole *con);
-
-void graphic_hw_update(QemuConsole *con);
-void graphic_hw_update_done(QemuConsole *con);
-void graphic_hw_invalidate(QemuConsole *con);
-void graphic_hw_text_update(QemuConsole *con, uint32_t *chardata);
-void graphic_hw_gl_block(QemuConsole *con, bool block);
+QemuConsole *qemu_graphic_console_create(DeviceState *dev, uint32_t head,
+                                         const GraphicHwOps *ops,
+                                         void *opaque);
+void qemu_graphic_console_set_hwops(QemuConsole *con,
+                                    const GraphicHwOps *hw_ops,
+                                    void *opaque);
+void qemu_graphic_console_close(QemuConsole *con);
+
+void qemu_console_hw_update(QemuConsole *con);
+void qemu_console_hw_update_done(QemuConsole *con);
+void qemu_console_hw_invalidate(QemuConsole *con);
+void qemu_console_hw_text_update(QemuConsole *con, uint32_t *chardata);
+void qemu_console_hw_gl_block(QemuConsole *con, bool block);
 
 void qemu_console_early_init(void);
 
diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c
index ba88ed756e2..83676eb7fea 100644
--- a/hw/arm/musicpal.c
+++ b/hw/arm/musicpal.c
@@ -170,7 +170,7 @@ static bool lcd_refresh(void *opaque)
         }
     }
 
-    dpy_gfx_update(s->con, 0, 0, 128*3, 64*3);
+    qemu_console_update(s->con, 0, 0, 128*3, 64*3);
     return true;
 }
 
@@ -253,7 +253,7 @@ static const GraphicHwOps musicpal_gfx_ops = {
 static void musicpal_lcd_realize(DeviceState *dev, Error **errp)
 {
     musicpal_lcd_state *s = MUSICPAL_LCD(dev);
-    s->con = graphic_console_init(dev, 0, &musicpal_gfx_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &musicpal_gfx_ops, s);
     qemu_console_resize(s->con, 128 * 3, 64 * 3);
 }
 
diff --git a/hw/display/artist.c b/hw/display/artist.c
index a07508378c7..288d466ec64 100644
--- a/hw/display/artist.c
+++ b/hw/display/artist.c
@@ -1324,7 +1324,7 @@ static bool artist_update_display(void *opaque)
     artist_draw_cursor(s);
 
     if (first >= 0) {
-        dpy_gfx_update(s->con, 0, first, s->width, last - first + 1);
+        qemu_console_update(s->con, 0, first, s->width, last - first + 1);
     }
 
     return true;
@@ -1424,7 +1424,7 @@ static void artist_realizefn(DeviceState *dev, Error **errp)
     s->misc_video |= 0x0A000000;
     s->misc_ctrl  |= 0x00800000;
 
-    s->con = graphic_console_init(dev, 0, &artist_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &artist_ops, s);
     qemu_console_resize(s->con, s->width, s->height);
 }
 
diff --git a/hw/display/ati.c b/hw/display/ati.c
index 3a7d45a8820..d77589df67a 100644
--- a/hw/display/ati.c
+++ b/hw/display/ati.c
@@ -161,7 +161,7 @@ static void ati_cursor_define(ATIVGAState *s)
     }
     cursor_set_mono(s->cursor, s->regs.cur_color1, s->regs.cur_color0,
                     (uint8_t *)&data[64], 1, (uint8_t *)&data[0]);
-    dpy_cursor_define(s->vga.con, s->cursor);
+    qemu_console_set_cursor(s->vga.con, s->cursor);
 }
 
 /* Alternatively support guest rendered hardware cursor */
@@ -626,9 +626,9 @@ static void ati_mm_write(void *opaque, hwaddr addr,
                 if (s->regs.crtc_gen_cntl & CRTC2_CUR_EN) {
                     ati_cursor_define(s);
                 }
-                dpy_mouse_set(s->vga.con, s->regs.cur_hv_pos >> 16,
-                              s->regs.cur_hv_pos & 0xffff,
-                              (s->regs.crtc_gen_cntl & CRTC2_CUR_EN) != 0);
+                qemu_console_set_mouse(s->vga.con, s->regs.cur_hv_pos >> 16,
+                                       s->regs.cur_hv_pos & 0xffff,
+                                       (s->regs.crtc_gen_cntl & CRTC2_CUR_EN) != 0);
             }
         }
         if ((val & (CRTC2_EXT_DISP_EN | CRTC2_EN)) !=
@@ -780,8 +780,8 @@ static void ati_mm_write(void *opaque, hwaddr addr,
         }
         if (!s->cursor_guest_mode &&
             (s->regs.crtc_gen_cntl & CRTC2_CUR_EN) && !(t & BIT(31))) {
-            dpy_mouse_set(s->vga.con, s->regs.cur_hv_pos >> 16,
-                          s->regs.cur_hv_pos & 0xffff, true);
+            qemu_console_set_mouse(s->vga.con, s->regs.cur_hv_pos >> 16,
+                                   s->regs.cur_hv_pos & 0xffff, true);
         }
         break;
     }
@@ -1094,7 +1094,7 @@ static void ati_vga_realize(PCIDevice *dev, Error **errp)
     }
     vga_init(vga, OBJECT(s), pci_address_space(dev),
              pci_address_space_io(dev), true);
-    vga->con = graphic_console_init(DEVICE(s), 0, s->vga.hw_ops, vga);
+    vga->con = qemu_graphic_console_create(DEVICE(s), 0, s->vga.hw_ops, vga);
     if (s->cursor_guest_mode) {
         vga->cursor_invalidate = ati_cursor_invalidate;
         vga->cursor_draw_line = ati_cursor_draw_line;
@@ -1167,7 +1167,7 @@ static void ati_vga_exit(PCIDevice *dev)
     ATIVGAState *s = ATI_VGA(dev);
 
     timer_del(&s->vblank_timer);
-    graphic_console_close(s->vga.con);
+    qemu_graphic_console_close(s->vga.con);
 }
 
 static const Property ati_vga_properties[] = {
diff --git a/hw/display/bcm2835_fb.c b/hw/display/bcm2835_fb.c
index 83c4c03c7ca..bd58f625fcd 100644
--- a/hw/display/bcm2835_fb.c
+++ b/hw/display/bcm2835_fb.c
@@ -207,8 +207,7 @@ static bool fb_update_display(void *opaque)
                                draw_line_src16, s, &first, &last);
 
     if (first >= 0) {
-        dpy_gfx_update(s->con, 0, first, s->config.xres,
-                       last - first + 1);
+        qemu_console_update(s->con, 0, first, s->config.xres, last - first + 1);
     }
 
     s->invalidate = false;
@@ -427,7 +426,7 @@ static void bcm2835_fb_realize(DeviceState *dev, Error **errp)
 
     bcm2835_fb_reset(dev);
 
-    s->con = graphic_console_init(dev, 0, &vgafb_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &vgafb_ops, s);
     qemu_console_resize(s->con, s->config.xres, s->config.yres);
 }
 
diff --git a/hw/display/bochs-display.c b/hw/display/bochs-display.c
index 8ef9b76cf85..64e669429c4 100644
--- a/hw/display/bochs-display.c
+++ b/hw/display/bochs-display.c
@@ -224,12 +224,12 @@ static bool bochs_display_update(void *opaque)
                                              mode.format,
                                              mode.stride,
                                              ptr + mode.offset);
-        dpy_gfx_replace_surface(s->con, ds);
+        qemu_console_set_surface(s->con, ds);
         full_update = true;
     }
 
     if (full_update) {
-        dpy_gfx_update_full(s->con);
+        qemu_console_update_full(s->con);
     } else {
         snap = memory_region_snapshot_and_clear_dirty(&s->vram,
                                                       mode.offset, mode.size,
@@ -243,14 +243,12 @@ static bool bochs_display_update(void *opaque)
                 ys = y;
             }
             if (!dirty && ys >= 0) {
-                dpy_gfx_update(s->con, 0, ys,
-                               mode.width, y - ys);
+                qemu_console_update(s->con, 0, ys, mode.width, y - ys);
                 ys = -1;
             }
         }
         if (ys >= 0) {
-            dpy_gfx_update(s->con, 0, ys,
-                           mode.width, y - ys);
+            qemu_console_update(s->con, 0, ys, mode.width, y - ys);
         }
 
         g_free(snap);
@@ -279,7 +277,7 @@ static void bochs_display_realize(PCIDevice *dev, Error **errp)
     }
     s->vgamem = pow2ceil(s->vgamem);
 
-    s->con = graphic_console_init(DEVICE(dev), 0, &bochs_display_gfx_ops, s);
+    s->con = qemu_graphic_console_create(DEVICE(dev), 0, &bochs_display_gfx_ops, s);
 
     memory_region_init_ram(&s->vram, obj, "bochs-display-vram", s->vgamem,
                            &error_fatal);
@@ -344,7 +342,7 @@ static void bochs_display_exit(PCIDevice *dev)
 {
     BochsDisplayState *s = BOCHS_DISPLAY(dev);
 
-    graphic_console_close(s->con);
+    qemu_graphic_console_close(s->con);
 }
 
 static const Property bochs_display_properties[] = {
diff --git a/hw/display/cg3.c b/hw/display/cg3.c
index 963bb3427a6..f9dda1549dd 100644
--- a/hw/display/cg3.c
+++ b/hw/display/cg3.c
@@ -137,7 +137,7 @@ static bool cg3_update_display(void *opaque)
             }
         } else {
             if (y_start >= 0) {
-                dpy_gfx_update(s->con, 0, y_start, width, y - y_start);
+                qemu_console_update(s->con, 0, y_start, width, y - y_start);
                 y_start = -1;
             }
             pix += width;
@@ -146,7 +146,7 @@ static bool cg3_update_display(void *opaque)
     }
     s->full_update = 0;
     if (y_start >= 0) {
-        dpy_gfx_update(s->con, 0, y_start, width, y - y_start);
+        qemu_console_update(s->con, 0, y_start, width, y - y_start);
     }
     /* vsync interrupt? */
     if (s->regs[0] & CG3_CR_ENABLE_INTS) {
@@ -311,7 +311,7 @@ static void cg3_realizefn(DeviceState *dev, Error **errp)
 
     sysbus_init_irq(sbd, &s->irq);
 
-    s->con = graphic_console_init(dev, 0, &cg3_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &cg3_ops, s);
     qemu_console_resize(s->con, s->width, s->height);
 }
 
diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c
index 48be3c8a932..0a8c74e1374 100644
--- a/hw/display/cirrus_vga.c
+++ b/hw/display/cirrus_vga.c
@@ -779,9 +779,9 @@ static int cirrus_do_copy(CirrusVGAState *s, int dst, int src, int w, int h)
                       s->cirrus_blt_width, s->cirrus_blt_height);
 
     if (notify) {
-        dpy_gfx_update(s->vga.con, dx, dy,
-                       s->cirrus_blt_width / depth,
-                       s->cirrus_blt_height);
+        qemu_console_update(s->vga.con, dx, dy,
+                            s->cirrus_blt_width / depth,
+                            s->cirrus_blt_height);
     }
 
     /* we don't have to notify the display that this portion has
@@ -2964,7 +2964,7 @@ static void pci_cirrus_vga_realize(PCIDevice *dev, Error **errp)
     }
     cirrus_init_common(s, OBJECT(dev), device_id, 1, pci_address_space(dev),
                        pci_address_space_io(dev));
-    s->vga.con = graphic_console_init(DEVICE(dev), 0, s->vga.hw_ops, &s->vga);
+    s->vga.con = qemu_graphic_console_create(DEVICE(dev), 0, s->vga.hw_ops, &s->vga);
 
     /* setup PCI */
     memory_region_init(&s->pci_bar, OBJECT(dev), "cirrus-pci-bar0", 0x2000000);
diff --git a/hw/display/cirrus_vga_isa.c b/hw/display/cirrus_vga_isa.c
index 76034a88605..b8052d1d8ed 100644
--- a/hw/display/cirrus_vga_isa.c
+++ b/hw/display/cirrus_vga_isa.c
@@ -62,7 +62,7 @@ static void isa_cirrus_vga_realizefn(DeviceState *dev, Error **errp)
     cirrus_init_common(&d->cirrus_vga, OBJECT(dev), CIRRUS_ID_CLGD5430, 0,
                        isa_address_space(isadev),
                        isa_address_space_io(isadev));
-    s->con = graphic_console_init(dev, 0, s->hw_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, s->hw_ops, s);
     rom_add_vga(VGABIOS_CIRRUS_FILENAME);
     /* XXX ISA-LFB support */
     /* FIXME not qdev yet */
diff --git a/hw/display/dm163.c b/hw/display/dm163.c
index 9ea62cb4f76..afade0b98c3 100644
--- a/hw/display/dm163.c
+++ b/hw/display/dm163.c
@@ -277,8 +277,8 @@ static uint32_t *update_display_of_row(DM163State *s, uint32_t *dest,
         }
     }
 
-    dpy_gfx_update(s->console, 0, LED_SQUARE_SIZE * row,
-                    RGB_MATRIX_NUM_COLS * LED_SQUARE_SIZE, LED_SQUARE_SIZE);
+    qemu_console_update(s->console, 0, LED_SQUARE_SIZE * row,
+                        RGB_MATRIX_NUM_COLS * LED_SQUARE_SIZE, LED_SQUARE_SIZE);
     s->redraw &= ~(1 << row);
     trace_dm163_redraw(s->redraw);
 
@@ -322,7 +322,7 @@ static void dm163_realize(DeviceState *dev, Error **errp)
     qdev_init_gpio_in(dev, dm163_en_b_gpio_handler, 1);
     qdev_init_gpio_out_named(dev, &s->sout, "sout", 1);
 
-    s->console = graphic_console_init(dev, 0, &dm163_ops, s);
+    s->console = qemu_graphic_console_create(dev, 0, &dm163_ops, s);
     qemu_console_resize(s->console, RGB_MATRIX_NUM_COLS * LED_SQUARE_SIZE,
                         RGB_MATRIX_NUM_ROWS * LED_SQUARE_SIZE);
 }
diff --git a/hw/display/exynos4210_fimd.c b/hw/display/exynos4210_fimd.c
index a91f04aaf79..5133623ee2e 100644
--- a/hw/display/exynos4210_fimd.c
+++ b/hw/display/exynos4210_fimd.c
@@ -1340,7 +1340,7 @@ static bool exynos4210_fimd_update(void *opaque)
             fimd_copy_line_toqemu(global_width, s->ifb + global_width * line *
                     RGBA_SIZE, d + global_width * line * bpp);
         }
-        dpy_gfx_update_full(s->console);
+        qemu_console_update_full(s->console);
     }
     s->invalidate = false;
     s->vidintcon[1] |= FIMD_VIDINT_INTFRMPEND;
@@ -1964,7 +1964,7 @@ static void exynos4210_fimd_realize(DeviceState *dev, Error **errp)
         return;
     }
 
-    s->console = graphic_console_init(dev, 0, &exynos4210_fimd_ops, s);
+    s->console = qemu_graphic_console_create(dev, 0, &exynos4210_fimd_ops, s);
 }
 
 static void exynos4210_fimd_class_init(ObjectClass *klass, const void *data)
diff --git a/hw/display/g364fb.c b/hw/display/g364fb.c
index bd15f6f0acc..af54f1f9005 100644
--- a/hw/display/g364fb.c
+++ b/hw/display/g364fb.c
@@ -191,8 +191,8 @@ static void g364fb_draw_graphic8(G364State *s)
         } else {
             int dy;
             if (xmax || ymax) {
-                dpy_gfx_update(s->con, xmin, ymin,
-                               xmax - xmin + 1, ymax - ymin + 1);
+                qemu_console_update(s->con, xmin, ymin,
+                                   xmax - xmin + 1, ymax - ymin + 1);
                 xmin = s->width;
                 xmax = 0;
                 ymin = s->height;
@@ -211,7 +211,7 @@ static void g364fb_draw_graphic8(G364State *s)
 
 done:
     if (xmax || ymax) {
-        dpy_gfx_update(s->con, xmin, ymin, xmax - xmin + 1, ymax - ymin + 1);
+        qemu_console_update(s->con, xmin, ymin, xmax - xmin + 1, ymax - ymin + 1);
     }
     g_free(snap);
 }
@@ -234,7 +234,7 @@ static void g364fb_draw_blank(G364State *s)
         d += surface_stride(surface);
     }
 
-    dpy_gfx_update_full(s->con);
+    qemu_console_update_full(s->con);
     s->blanked = 1;
 }
 
@@ -478,7 +478,7 @@ static const GraphicHwOps g364fb_ops = {
 
 static void g364fb_init(DeviceState *dev, G364State *s)
 {
-    s->con = graphic_console_init(dev, 0, &g364fb_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &g364fb_ops, s);
 
     memory_region_init_io(&s->mem_ctrl, OBJECT(dev), &g364fb_ctrl_ops, s,
                           "ctrl", 0x180000);
diff --git a/hw/display/imx6ul_lcdif.c b/hw/display/imx6ul_lcdif.c
index afcd0805ca4..7b5be2b5a75 100644
--- a/hw/display/imx6ul_lcdif.c
+++ b/hw/display/imx6ul_lcdif.c
@@ -203,7 +203,7 @@ static bool imx6ul_lcdif_update_display(void *opaque)
                                src_width, surface_stride(surface), 0,
                                s->invalidate, fn, s, &first, &last);
     if (first >= 0) {
-        dpy_gfx_update(s->con, 0, first, width, last - first + 1);
+        qemu_console_update(s->con, 0, first, width, last - first + 1);
     }
 
     s->invalidate = false;
@@ -301,7 +301,7 @@ static void imx6ul_lcdif_write(void *opaque, hwaddr offset,
         if (!FIELD_EX32(oldv, CTRL, RUN) &&
             FIELD_EX32(s->regs[idx], CTRL, RUN)) {
             s->invalidate = true;
-            graphic_hw_invalidate(s->con);
+            qemu_console_hw_invalidate(s->con);
             imx6ul_lcdif_maybe_schedule_frame(s);
             break;
         }
@@ -318,17 +318,17 @@ static void imx6ul_lcdif_write(void *opaque, hwaddr offset,
         break;
     case A_V4_TRANSFER_COUNT:
         s->invalidate = true;
-        graphic_hw_invalidate(s->con);
+        qemu_console_hw_invalidate(s->con);
         break;
     case A_V4_CUR_BUF:
         s->invalidate = true;
-        graphic_hw_invalidate(s->con);
+        qemu_console_hw_invalidate(s->con);
         break;
     case A_V4_NEXT_BUF:
         s->regs[IMX6UL_LCDIF_REG_V4_CUR_BUF] = s->regs[idx];
         imx6ul_lcdif_frame_done(s);
         s->invalidate = true;
-        graphic_hw_invalidate(s->con);
+        qemu_console_hw_invalidate(s->con);
         imx6ul_lcdif_maybe_schedule_frame(s);
         return;
     case A_AS_NEXT_BUF:
@@ -411,7 +411,7 @@ static void imx6ul_lcdif_realize(DeviceState *dev, Error **errp)
                           TYPE_IMX6UL_LCDIF, LCDIF_MMIO_SIZE);
     sysbus_init_mmio(SYS_BUS_DEVICE(dev), &s->iomem);
     sysbus_init_irq(SYS_BUS_DEVICE(dev), &s->irq);
-    s->con = graphic_console_init(dev, 0, &imx6ul_lcdif_graphic_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &imx6ul_lcdif_graphic_ops, s);
 }
 
 static void imx6ul_lcdif_unrealize(DeviceState *dev)
@@ -423,7 +423,7 @@ static void imx6ul_lcdif_unrealize(DeviceState *dev)
     s->frame_timer = NULL;
 
     if (s->con) {
-        graphic_console_close(s->con);
+        qemu_graphic_console_close(s->con);
         s->con = NULL;
     }
 }
diff --git a/hw/display/jazz_led.c b/hw/display/jazz_led.c
index ee9758a94b5..84fe1058406 100644
--- a/hw/display/jazz_led.c
+++ b/hw/display/jazz_led.c
@@ -217,7 +217,7 @@ static bool jazz_led_update_display(void *opaque)
     }
 
     s->state = REDRAW_NONE;
-    dpy_gfx_update_full(s->con);
+    qemu_console_update_full(s->con);
 
     return true;
 }
@@ -233,7 +233,7 @@ static void jazz_led_text_update(void *opaque, uint32_t *chardata)
     LedState *s = opaque;
     char buf[3];
 
-    dpy_text_cursor(s->con, -1, -1);
+    qemu_console_text_set_cursor(s->con, -1, -1);
     qemu_console_resize(s->con, 2, 1);
 
     /* TODO: draw the segments */
@@ -243,7 +243,7 @@ static void jazz_led_text_update(void *opaque, uint32_t *chardata)
     *chardata++ = ATTR2CHTYPE(buf[1], QEMU_COLOR_BLUE,
                               QEMU_COLOR_BLACK, 1);
 
-    dpy_text_update(s->con, 0, 0, 2, 1);
+    qemu_console_text_update(s->con, 0, 0, 2, 1);
 }
 
 static int jazz_led_post_load(void *opaque, int version_id)
@@ -284,7 +284,7 @@ static void jazz_led_realize(DeviceState *dev, Error **errp)
 {
     LedState *s = JAZZ_LED(dev);
 
-    s->con = graphic_console_init(dev, 0, &jazz_led_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &jazz_led_ops, s);
 }
 
 static void jazz_led_reset(DeviceState *d)
diff --git a/hw/display/macfb.c b/hw/display/macfb.c
index 848c3c282bd..f40a7ed9f52 100644
--- a/hw/display/macfb.c
+++ b/hw/display/macfb.c
@@ -320,14 +320,14 @@ static void macfb_draw_graphic(MacfbState *s)
             }
         } else {
             if (ymin >= 0) {
-                dpy_gfx_update(s->con, 0, ymin, s->width, y - ymin);
+                qemu_console_update(s->con, 0, ymin, s->width, y - ymin);
                 ymin = -1;
             }
         }
     }
 
     if (ymin >= 0) {
-        dpy_gfx_update(s->con, 0, ymin, s->width, y - ymin);
+        qemu_console_update(s->con, 0, ymin, s->width, y - ymin);
     }
 
     g_free(snap);
@@ -671,7 +671,7 @@ static bool macfb_common_realize(DeviceState *dev, MacfbState *s, Error **errp)
     s->regs[DAFB_MODE_CTRL1 >> 2] = s->mode->mode_ctrl1;
     s->regs[DAFB_MODE_CTRL2 >> 2] = s->mode->mode_ctrl2;
 
-    s->con = graphic_console_init(dev, 0, &macfb_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &macfb_ops, s);
     surface = qemu_console_surface(s->con);
 
     if (surface_bits_per_pixel(surface) != 32) {
diff --git a/hw/display/next-fb.c b/hw/display/next-fb.c
index e758b223ef7..fa2e0d0da80 100644
--- a/hw/display/next-fb.c
+++ b/hw/display/next-fb.c
@@ -89,7 +89,7 @@ static bool nextfb_update(void *opaque)
                                src_width, dest_width, 0, 1, nextfb_draw_line,
                                s, &first, &last);
 
-    dpy_gfx_update(s->con, 0, 0, s->cols, s->rows);
+    qemu_console_update(s->con, 0, 0, s->cols, s->rows);
 
     return true;
 }
@@ -117,7 +117,7 @@ static void nextfb_realize(DeviceState *dev, Error **errp)
     s->cols = 1120;
     s->rows = 832;
 
-    s->con = graphic_console_init(dev, 0, &nextfb_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &nextfb_ops, s);
     qemu_console_resize(s->con, s->cols, s->rows);
 }
 
diff --git a/hw/display/omap_lcdc.c b/hw/display/omap_lcdc.c
index 1e8385ebffb..2a8d5ffdd57 100644
--- a/hw/display/omap_lcdc.c
+++ b/hw/display/omap_lcdc.c
@@ -320,7 +320,7 @@ static bool omap_update_display(void *opaque)
                                &first, &last);
 
     if (first >= 0) {
-        dpy_gfx_update(omap_lcd->con, 0, first, width, last - first + 1);
+        qemu_console_update(omap_lcd->con, 0, first, width, last - first + 1);
     }
     omap_lcd->invalidate = 0;
 
@@ -504,7 +504,7 @@ struct omap_lcd_panel_s *omap_lcdc_init(MemoryRegion *sysmem,
     memory_region_init_io(&s->iomem, NULL, &omap_lcdc_ops, s, "omap.lcdc", 0x100);
     memory_region_add_subregion(sysmem, base, &s->iomem);
 
-    s->con = graphic_console_init(NULL, 0, &omap_ops, s);
+    s->con = qemu_graphic_console_create(NULL, 0, &omap_ops, s);
 
     return s;
 }
diff --git a/hw/display/pl110.c b/hw/display/pl110.c
index e134ac28eb6..4a93cf4cda9 100644
--- a/hw/display/pl110.c
+++ b/hw/display/pl110.c
@@ -303,7 +303,7 @@ static bool pl110_update_display(void *opaque)
                                &first, &last);
 
     if (first >= 0) {
-        dpy_gfx_update(s->con, 0, first, s->cols, last - first + 1);
+        qemu_console_update(s->con, 0, first, s->cols, last - first + 1);
     }
     s->invalidate = 0;
     return true;
@@ -557,7 +557,7 @@ static void pl110_realize(DeviceState *dev, Error **errp)
     s->vblank_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL,
                                    pl110_vblank_interrupt, s);
     qdev_init_gpio_in(dev, pl110_mux_ctrl_set, 1);
-    s->con = graphic_console_init(dev, 0, &pl110_gfx_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &pl110_gfx_ops, s);
 }
 
 static void pl110_init(Object *obj)
diff --git a/hw/display/qxl-render.c b/hw/display/qxl-render.c
index 5b4f8842011..7b692d5a854 100644
--- a/hw/display/qxl-render.c
+++ b/hw/display/qxl-render.c
@@ -135,7 +135,7 @@ static void qxl_render_update_area_unlocked(PCIQXLDevice *qxl)
                 (width,
                  height);
         }
-        dpy_gfx_replace_surface(vga->con, surface);
+        qemu_console_set_surface(vga->con, surface);
     }
 
     if (!qxl->guest_primary.data) {
@@ -154,16 +154,16 @@ static void qxl_render_update_area_unlocked(PCIQXLDevice *qxl)
             continue;
         }
         qxl_blit(qxl, qxl->dirty+i);
-        dpy_gfx_update(vga->con,
-                       qxl->dirty[i].left, qxl->dirty[i].top,
-                       qxl->dirty[i].right - qxl->dirty[i].left,
-                       qxl->dirty[i].bottom - qxl->dirty[i].top);
+        qemu_console_update(vga->con,
+                            qxl->dirty[i].left, qxl->dirty[i].top,
+                            qxl->dirty[i].right - qxl->dirty[i].left,
+                            qxl->dirty[i].bottom - qxl->dirty[i].top);
     }
     qxl->num_dirty_rects = 0;
 
 end:
     if (qxl->render_update_cookie_num == 0) {
-        graphic_hw_update_done(qxl->ssd.dcl.con);
+        qemu_console_hw_update_done(qxl->ssd.dcl.con);
     }
 }
 
diff --git a/hw/display/qxl.c b/hw/display/qxl.c
index 4244ebe51d2..74258afa582 100644
--- a/hw/display/qxl.c
+++ b/hw/display/qxl.c
@@ -1153,13 +1153,13 @@ static void qxl_enter_vga_mode(PCIQXLDevice *d)
     }
     trace_qxl_enter_vga_mode(d->id);
     spice_qxl_driver_unload(&d->ssd.qxl);
-    graphic_console_set_hwops(d->ssd.dcl.con, d->vga.hw_ops, &d->vga);
-    update_displaychangelistener(&d->ssd.dcl, GUI_REFRESH_INTERVAL_DEFAULT);
+    qemu_graphic_console_set_hwops(d->ssd.dcl.con, d->vga.hw_ops, &d->vga);
+    qemu_console_listener_set_refresh(&d->ssd.dcl, GUI_REFRESH_INTERVAL_DEFAULT);
     qemu_spice_create_host_primary(&d->ssd);
     d->mode = QXL_MODE_VGA;
     qemu_spice_display_switch(&d->ssd, d->ssd.ds);
     vga_dirty_log_start(&d->vga);
-    graphic_hw_update(d->vga.con);
+    qemu_console_hw_update(d->vga.con);
 }
 
 static void qxl_exit_vga_mode(PCIQXLDevice *d)
@@ -1168,8 +1168,8 @@ static void qxl_exit_vga_mode(PCIQXLDevice *d)
         return;
     }
     trace_qxl_exit_vga_mode(d->id);
-    graphic_console_set_hwops(d->ssd.dcl.con, &qxl_ops, d);
-    update_displaychangelistener(&d->ssd.dcl, GUI_REFRESH_INTERVAL_IDLE);
+    qemu_graphic_console_set_hwops(d->ssd.dcl.con, &qxl_ops, d);
+    qemu_console_listener_set_refresh(&d->ssd.dcl, GUI_REFRESH_INTERVAL_IDLE);
     vga_dirty_log_stop(&d->vga);
     qxl_destroy_primary(d, QXL_SYNC);
 }
@@ -2237,7 +2237,7 @@ static void qxl_realize_primary(PCIDevice *dev, Error **errp)
     portio_list_add(&qxl->vga_port_list, pci_address_space_io(dev), 0x3b0);
     qxl->have_vga = true;
 
-    vga->con = graphic_console_init(DEVICE(dev), 0, &qxl_ops, qxl);
+    vga->con = qemu_graphic_console_create(DEVICE(dev), 0, &qxl_ops, qxl);
     qxl->id = qemu_console_get_index(vga->con); /* == channel_id */
     if (qxl->id != 0) {
         error_setg(errp, "primary qxl-vga device must be console 0 "
@@ -2262,7 +2262,7 @@ static void qxl_realize_secondary(PCIDevice *dev, Error **errp)
     memory_region_init_ram(&qxl->vga.vram, OBJECT(dev), "qxl.vgavram",
                            qxl->vga.vram_size, &error_fatal);
     qxl->vga.vram_ptr = memory_region_get_ram_ptr(&qxl->vga.vram);
-    qxl->vga.con = graphic_console_init(DEVICE(dev), 0, &qxl_ops, qxl);
+    qxl->vga.con = qemu_graphic_console_create(DEVICE(dev), 0, &qxl_ops, qxl);
     qxl->ssd.dcl.con = qxl->vga.con;
     qxl->id = qemu_console_get_index(qxl->vga.con); /* == channel_id */
 
diff --git a/hw/display/ramfb-standalone.c b/hw/display/ramfb-standalone.c
index 27f0ba19f90..8e8ba37514a 100644
--- a/hw/display/ramfb-standalone.c
+++ b/hw/display/ramfb-standalone.c
@@ -41,7 +41,7 @@ static void ramfb_realizefn(DeviceState *dev, Error **errp)
 {
     RAMFBStandaloneState *ramfb = RAMFB(dev);
 
-    ramfb->con = graphic_console_init(dev, 0, &wrapper_ops, dev);
+    ramfb->con = qemu_graphic_console_create(dev, 0, &wrapper_ops, dev);
     ramfb->state = ramfb_setup(ramfb->use_legacy_x86_rom, errp);
 }
 
diff --git a/hw/display/ramfb.c b/hw/display/ramfb.c
index 50c25706a52..7a88f934e11 100644
--- a/hw/display/ramfb.c
+++ b/hw/display/ramfb.c
@@ -111,12 +111,12 @@ void ramfb_display_update(QemuConsole *con, RAMFBState *s)
     }
 
     if (s->ds) {
-        dpy_gfx_replace_surface(con, s->ds);
+        qemu_console_set_surface(con, s->ds);
         s->ds = NULL;
     }
 
     /* simple full screen update */
-    dpy_gfx_update_full(con);
+    qemu_console_update_full(con);
 }
 
 static int ramfb_post_load(void *opaque, int version_id)
diff --git a/hw/display/sm501.c b/hw/display/sm501.c
index a3993ceba29..af870048372 100644
--- a/hw/display/sm501.c
+++ b/hw/display/sm501.c
@@ -1822,7 +1822,7 @@ static bool sm501_update_display(void *opaque)
         } else {
             if (y_start >= 0) {
                 /* flush to display */
-                dpy_gfx_update(s->con, 0, y_start, width, y - y_start);
+                qemu_console_update(s->con, 0, y_start, width, y - y_start);
                 y_start = -1;
             }
         }
@@ -1831,7 +1831,7 @@ static bool sm501_update_display(void *opaque)
 
     /* complete flush to display */
     if (y_start >= 0) {
-        dpy_gfx_update(s->con, 0, y_start, width, y - y_start);
+        qemu_console_update(s->con, 0, y_start, width, y - y_start);
     }
 
     return true;
@@ -1936,7 +1936,7 @@ static void sm501_init(SM501State *s, DeviceState *dev,
                                 &s->twoD_engine_region);
 
     /* create qemu graphic console */
-    s->con = graphic_console_init(dev, 0, &sm501_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &sm501_ops, s);
 }
 
 static const VMStateDescription vmstate_sm501_state = {
diff --git a/hw/display/ssd0303.c b/hw/display/ssd0303.c
index 229856cc427..4e3dede33f1 100644
--- a/hw/display/ssd0303.c
+++ b/hw/display/ssd0303.c
@@ -268,7 +268,7 @@ static bool ssd0303_update_display(void *opaque)
         }
     }
     s->redraw = 0;
-    dpy_gfx_update(s->con, 0, 0, 96 * MAGNIFY, 16 * MAGNIFY);
+    qemu_console_update(s->con, 0, 0, 96 * MAGNIFY, 16 * MAGNIFY);
 
     return true;
 }
@@ -309,7 +309,7 @@ static void ssd0303_realize(DeviceState *dev, Error **errp)
 {
     ssd0303_state *s = SSD0303(dev);
 
-    s->con = graphic_console_init(dev, 0, &ssd0303_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &ssd0303_ops, s);
     qemu_console_resize(s->con, 96 * MAGNIFY, 16 * MAGNIFY);
 }
 
diff --git a/hw/display/ssd0323.c b/hw/display/ssd0323.c
index 67db16086c8..9309d4d10c4 100644
--- a/hw/display/ssd0323.c
+++ b/hw/display/ssd0323.c
@@ -270,7 +270,8 @@ static bool ssd0323_update_display(void *opaque)
         }
     }
     s->redraw = 0;
-    dpy_gfx_update(s->con, 0, 0, 128 * MAGNIFY, 64 * MAGNIFY);
+    qemu_console_update(s->con, 0, 0, 128 * MAGNIFY, 64 * MAGNIFY);
+
     return true;
 }
 
@@ -356,7 +357,7 @@ static void ssd0323_realize(SSIPeripheral *d, Error **errp)
 
     s->col_end = 63;
     s->row_end = 79;
-    s->con = graphic_console_init(dev, 0, &ssd0323_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &ssd0323_ops, s);
     qemu_console_resize(s->con, 128 * MAGNIFY, 64 * MAGNIFY);
 
     qdev_init_gpio_in(dev, ssd0323_cd, 1);
diff --git a/hw/display/tcx.c b/hw/display/tcx.c
index cedbf5c7acd..2c33a9c4a32 100644
--- a/hw/display/tcx.c
+++ b/hw/display/tcx.c
@@ -243,8 +243,7 @@ static bool tcx_update_display(void *opaque)
         } else {
             if (y_start >= 0) {
                 /* flush to display */
-                dpy_gfx_update(ts->con, 0, y_start,
-                               ts->width, y - y_start);
+                qemu_console_update(ts->con, 0, y_start, ts->width, y - y_start);
                 y_start = -1;
             }
         }
@@ -253,8 +252,7 @@ static bool tcx_update_display(void *opaque)
     }
     if (y_start >= 0) {
         /* flush to display */
-        dpy_gfx_update(ts->con, 0, y_start,
-                       ts->width, y - y_start);
+        qemu_console_update(ts->con, 0, y_start, ts->width, y - y_start);
     }
     g_free(snap);
     return true;
@@ -297,8 +295,7 @@ static bool tcx24_update_display(void *opaque)
         } else {
             if (y_start >= 0) {
                 /* flush to display */
-                dpy_gfx_update(ts->con, 0, y_start,
-                               ts->width, y - y_start);
+                qemu_console_update(ts->con, 0, y_start, ts->width, y - y_start);
                 y_start = -1;
             }
         }
@@ -309,8 +306,7 @@ static bool tcx24_update_display(void *opaque)
     }
     if (y_start >= 0) {
         /* flush to display */
-        dpy_gfx_update(ts->con, 0, y_start,
-                       ts->width, y - y_start);
+        qemu_console_update(ts->con, 0, y_start, ts->width, y - y_start);
     }
     g_free(snap);
     return true;
@@ -864,9 +860,9 @@ static void tcx_realize(DeviceState *dev, Error **errp)
     sysbus_init_irq(sbd, &s->irq);
 
     if (s->depth == 8) {
-        s->con = graphic_console_init(dev, 0, &tcx_ops, s);
+        s->con = qemu_graphic_console_create(dev, 0, &tcx_ops, s);
     } else {
-        s->con = graphic_console_init(dev, 0, &tcx24_ops, s);
+        s->con = qemu_graphic_console_create(dev, 0, &tcx24_ops, s);
     }
     s->thcmisc = 0;
 
diff --git a/hw/display/vga-isa.c b/hw/display/vga-isa.c
index 5f55c884a1b..2cccb0ef12e 100644
--- a/hw/display/vga-isa.c
+++ b/hw/display/vga-isa.c
@@ -79,7 +79,7 @@ static void vga_isa_realizefn(DeviceState *dev, Error **errp)
                                         0x000a0000,
                                         vga_io_memory, 1);
     memory_region_set_coalescing(vga_io_memory);
-    s->con = graphic_console_init(dev, 0, s->hw_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, s->hw_ops, s);
 
     memory_region_add_subregion(isa_address_space(isadev),
                                 VBE_DISPI_LFB_PHYSICAL_ADDRESS,
diff --git a/hw/display/vga-mmio.c b/hw/display/vga-mmio.c
index 1a9608d865f..3cd64951c09 100644
--- a/hw/display/vga-mmio.c
+++ b/hw/display/vga-mmio.c
@@ -108,7 +108,7 @@ static void vga_mmio_realizefn(DeviceState *dev, Error **errp)
     }
 
     sysbus_init_mmio(sbd, &s->vga.vram);
-    s->vga.con = graphic_console_init(dev, 0, s->vga.hw_ops, &s->vga);
+    s->vga.con = qemu_graphic_console_create(dev, 0, s->vga.hw_ops, &s->vga);
 }
 
 static const Property vga_mmio_properties[] = {
diff --git a/hw/display/vga-pci.c b/hw/display/vga-pci.c
index 4e68dd57a17..d089847bdae 100644
--- a/hw/display/vga-pci.c
+++ b/hw/display/vga-pci.c
@@ -247,7 +247,7 @@ static void pci_std_vga_realize(PCIDevice *dev, Error **errp)
     vga_init(s, OBJECT(dev), pci_address_space(dev), pci_address_space_io(dev),
              true);
 
-    s->con = graphic_console_init(DEVICE(dev), 0, s->hw_ops, s);
+    s->con = qemu_graphic_console_create(DEVICE(dev), 0, s->hw_ops, s);
 
     /* XXX: VGA_RAM_SIZE must be a power of two */
     pci_register_bar(&d->dev, 0, PCI_BASE_ADDRESS_MEM_PREFETCH, &s->vram);
@@ -282,7 +282,7 @@ static void pci_secondary_vga_realize(PCIDevice *dev, Error **errp)
     if (!vga_common_init(s, OBJECT(dev), errp)) {
         return;
     }
-    s->con = graphic_console_init(DEVICE(dev), 0, s->hw_ops, s);
+    s->con = qemu_graphic_console_create(DEVICE(dev), 0, s->hw_ops, s);
 
     /* mmio bar */
     memory_region_init_io(&d->mmio, OBJECT(dev), &unassigned_io_ops, NULL,
@@ -306,7 +306,7 @@ static void pci_secondary_vga_exit(PCIDevice *dev)
     PCIVGAState *d = PCI_VGA(dev);
     VGACommonState *s = &d->vga;
 
-    graphic_console_close(s->con);
+    qemu_graphic_console_close(s->con);
     memory_region_del_subregion(&d->mmio, &d->mrs[0]);
     memory_region_del_subregion(&d->mmio, &d->mrs[1]);
     if (d->flags & (1 << PCI_VGA_FLAG_ENABLE_QEXT)) {
diff --git a/hw/display/vga.c b/hw/display/vga.c
index 2f266f47a39..0ac4bf37310 100644
--- a/hw/display/vga.c
+++ b/hw/display/vga.c
@@ -1246,7 +1246,7 @@ static void vga_draw_text(VGACommonState *s, int full_update)
         s->last_scr_height = height * cheight;
         qemu_console_resize(s->con, s->last_scr_width, s->last_scr_height);
         surface = qemu_console_surface(s->con);
-        dpy_text_resize(s->con, width, height);
+        qemu_console_text_resize(s->con, width, height);
         s->last_depth = 0;
         s->last_width = width;
         s->last_height = height;
@@ -1365,8 +1365,8 @@ static void vga_draw_text(VGACommonState *s, int full_update)
             ch_attr_ptr++;
         }
         if (cx_max != -1) {
-            dpy_gfx_update(s->con, cx_min * cw, cy * cheight,
-                           (cx_max - cx_min + 1) * cw, cheight);
+            qemu_console_update(s->con, cx_min * cw, cy * cheight,
+                                (cx_max - cx_min + 1) * cw, cheight);
         }
         dest += linesize * cheight;
         line1 = line + cheight;
@@ -1610,7 +1610,7 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
      */
     format = qemu_default_pixman_format(depth, !byteswap);
     if (format) {
-        allocate_surface = !dpy_gfx_check_format(s->con, format)
+        allocate_surface = !qemu_console_check_format(s->con, format)
             || s->force_shadow || force_shadow;
     } else {
         allocate_surface = true;
@@ -1647,7 +1647,7 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
             surface = qemu_create_displaysurface_from(disp_width,
                     height, format, s->params.line_offset,
                     s->vram_ptr + (s->params.start_addr * 4));
-            dpy_gfx_replace_surface(s->con, surface);
+            qemu_console_set_surface(s->con, surface);
         } else {
             qemu_console_resize(s->con, disp_width, height);
             surface = qemu_console_surface(s->con);
@@ -1720,8 +1720,7 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
         } else {
             if (y_start >= 0) {
                 /* flush to display */
-                dpy_gfx_update(s->con, 0, y_start,
-                               disp_width, y - y_start);
+                qemu_console_update(s->con, 0, y_start, disp_width, y - y_start);
                 y_start = -1;
             }
         }
@@ -1745,8 +1744,7 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
     }
     if (y_start >= 0) {
         /* flush to display */
-        dpy_gfx_update(s->con, 0, y_start,
-                       disp_width, y - y_start);
+        qemu_console_update(s->con, 0, y_start, disp_width, y - y_start);
     }
     g_free(snap);
     memset(s->invalidated_y_table, 0, sizeof(s->invalidated_y_table));
@@ -1767,7 +1765,7 @@ static void vga_draw_blank(VGACommonState *s, int full_update)
         /* unshare buffer, otherwise the blanking corrupts vga vram */
         surface = qemu_create_displaysurface(s->last_scr_width,
                                              s->last_scr_height);
-        dpy_gfx_replace_surface(s->con, surface);
+        qemu_console_set_surface(s->con, surface);
     }
 
     w = s->last_scr_width * surface_bytes_per_pixel(surface);
@@ -1776,7 +1774,7 @@ static void vga_draw_blank(VGACommonState *s, int full_update)
         memset(d, 0, w);
         d += surface_stride(surface);
     }
-    dpy_gfx_update_full(s->con);
+    qemu_console_update_full(s->con);
 }
 
 #define GMODE_TEXT     0
@@ -1967,7 +1965,7 @@ static void vga_update_text(void *opaque, uint32_t *chardata)
             s->last_scr_width = width * cw;
             s->last_scr_height = height * cheight;
             qemu_console_resize(s->con, s->last_scr_width, s->last_scr_height);
-            dpy_text_resize(s->con, width, height);
+            qemu_console_text_resize(s->con, width, height);
             s->last_depth = 0;
             s->last_width = width;
             s->last_height = height;
@@ -1992,11 +1990,11 @@ static void vga_update_text(void *opaque, uint32_t *chardata)
             s->cr[VGA_CRTC_CURSOR_END] != s->cursor_end || full_update) {
             cursor_visible = !(s->cr[VGA_CRTC_CURSOR_START] & 0x20);
             if (cursor_visible && cursor_offset < size && cursor_offset >= 0)
-                dpy_text_cursor(s->con,
-                                TEXTMODE_X(cursor_offset),
-                                TEXTMODE_Y(cursor_offset));
+                qemu_console_text_set_cursor(s->con,
+                                             TEXTMODE_X(cursor_offset),
+                                             TEXTMODE_Y(cursor_offset));
             else
-                dpy_text_cursor(s->con, -1, -1);
+                qemu_console_text_set_cursor(s->con, -1, -1);
             s->cursor_offset = cursor_offset;
             s->cursor_start = s->cr[VGA_CRTC_CURSOR_START];
             s->cursor_end = s->cr[VGA_CRTC_CURSOR_END];
@@ -2009,7 +2007,7 @@ static void vga_update_text(void *opaque, uint32_t *chardata)
             for (i = 0; i < size; src ++, dst ++, i ++)
                 *dst = VMEM2CHTYPE(le32_to_cpu(*src));
 
-            dpy_text_update(s->con, 0, 0, width, height);
+            qemu_console_text_update(s->con, 0, 0, width, height);
         } else {
             c_max = 0;
 
@@ -2032,7 +2030,7 @@ static void vga_update_text(void *opaque, uint32_t *chardata)
 
             if (c_min <= c_max) {
                 i = TEXTMODE_Y(c_min);
-                dpy_text_update(s->con, 0, i, width, TEXTMODE_Y(c_max) - i + 1);
+                qemu_console_text_update(s->con, 0, i, width, TEXTMODE_Y(c_max) - i + 1);
             }
         }
 
@@ -2057,8 +2055,8 @@ static void vga_update_text(void *opaque, uint32_t *chardata)
     /* Display a message */
     s->last_width = 60;
     s->last_height = height = 3;
-    dpy_text_cursor(s->con, -1, -1);
-    dpy_text_resize(s->con, s->last_width, height);
+    qemu_console_text_set_cursor(s->con, -1, -1);
+    qemu_console_text_resize(s->con, s->last_width, height);
 
     for (dst = chardata, i = 0; i < s->last_width * height; i ++)
         *dst++ = ' ';
@@ -2070,7 +2068,7 @@ static void vga_update_text(void *opaque, uint32_t *chardata)
         *dst++ = ATTR2CHTYPE(msg_buffer[i], QEMU_COLOR_BLUE,
                              QEMU_COLOR_BLACK, 1);
 
-    dpy_text_update(s->con, 0, 0, s->last_width, height);
+    qemu_console_text_update(s->con, 0, 0, s->last_width, height);
 }
 
 static uint64_t vga_mem_read(void *opaque, hwaddr addr,
diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c
index 3f6fb7a8033..6e5e6540a46 100644
--- a/hw/display/vhost-user-gpu.c
+++ b/hw/display/vhost-user-gpu.c
@@ -142,11 +142,11 @@ vhost_user_gpu_handle_cursor(VhostUserGPU *g, VhostUserGpuMsg *msg)
         memcpy(s->current_cursor->data, up->data,
                64 * 64 * sizeof(uint32_t));
 
-        dpy_cursor_define(s->con, s->current_cursor);
+        qemu_console_set_cursor(s->con, s->current_cursor);
     }
 
-    dpy_mouse_set(s->con, pos->x, pos->y,
-                  msg->request != VHOST_USER_GPU_CURSOR_POS_HIDE);
+    qemu_console_set_mouse(s->con, pos->x, pos->y,
+                           msg->request != VHOST_USER_GPU_CURSOR_POS_HIDE);
 }
 
 static void
@@ -238,7 +238,7 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)
         con = s->con;
 
         if (m->width == 0) {
-            dpy_gfx_replace_surface(con, NULL);
+            qemu_console_set_surface(con, NULL);
         } else {
             s->ds = qemu_create_displaysurface(m->width, m->height);
             /* replace surface on next update */
@@ -269,12 +269,12 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)
 
         if (dmabuf) {
             qemu_dmabuf_close(dmabuf);
-            dpy_gl_release_dmabuf(con, dmabuf);
+            qemu_console_gl_release_dmabuf(con, dmabuf);
             g_clear_pointer(&dmabuf, qemu_dmabuf_free);
         }
 
         if (fd == -1) {
-            dpy_gl_scanout_disable(con);
+            qemu_console_gl_scanout_disable(con);
             g->dmabuf[m->scanout_id] = NULL;
             break;
         }
@@ -291,7 +291,7 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)
                                  &fd, 1, false, m->fd_flags &
                                  VIRTIO_GPU_RESOURCE_FLAG_Y_0_TOP);
 
-        dpy_gl_scanout_dmabuf(con, dmabuf);
+        qemu_console_gl_scanout_dmabuf(con, dmabuf);
         g->dmabuf[m->scanout_id] = dmabuf;
         break;
     }
@@ -306,13 +306,13 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)
         }
 
         con = g->parent_obj.scanout[m->scanout_id].con;
-        if (!console_has_gl(con)) {
+        if (!qemu_console_has_gl(con)) {
             error_report("console doesn't support GL!");
             vhost_user_gpu_unblock(g);
             break;
         }
         g->backend_blocked = true;
-        dpy_gl_update(con, m->x, m->y, m->width, m->height);
+        qemu_console_gl_update(con, m->x, m->y, m->width, m->height);
         break;
     }
 #ifdef CONFIG_PIXMAN
@@ -337,9 +337,9 @@ vhost_user_gpu_handle_display(VhostUserGPU *g, VhostUserGpuMsg *msg)
 
         pixman_image_unref(image);
         if (qemu_console_surface(con) != s->ds) {
-            dpy_gfx_replace_surface(con, s->ds);
+            qemu_console_set_surface(con, s->ds);
         } else {
-            dpy_gfx_update(con, m->x, m->y, m->width, m->height);
+            qemu_console_update(con, m->x, m->y, m->width, m->height);
         }
         break;
     }
diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c
index bdc24492850..a68b1848295 100644
--- a/hw/display/virtio-gpu-base.c
+++ b/hw/display/virtio-gpu-base.c
@@ -253,7 +253,7 @@ virtio_gpu_base_device_realize(DeviceState *qdev,
     g->hw_ops = &virtio_gpu_ops;
     for (i = 0; i < g->conf.max_outputs; i++) {
         g->scanout[i].con =
-            graphic_console_init(DEVICE(g), i, &virtio_gpu_ops, g);
+            qemu_graphic_console_create(DEVICE(g), i, &virtio_gpu_ops, g);
     }
 
     return true;
diff --git a/hw/display/virtio-gpu-rutabaga.c b/hw/display/virtio-gpu-rutabaga.c
index ebb6c783fb0..6ff12639012 100644
--- a/hw/display/virtio-gpu-rutabaga.c
+++ b/hw/display/virtio-gpu-rutabaga.c
@@ -282,7 +282,7 @@ rutabaga_cmd_resource_flush(VirtIOGPU *g, struct virtio_gpu_ctrl_command *cmd)
                                              rf.resource_id, &transfer,
                                              &transfer_iovec);
     CHECK(!result, cmd);
-    dpy_gfx_update_full(scanout->con);
+    qemu_console_update_full(scanout->con);
 }
 
 static void
@@ -306,8 +306,8 @@ rutabaga_cmd_set_scanout(VirtIOGPU *g, struct virtio_gpu_ctrl_command *cmd)
     scanout = &vb->scanout[ss.scanout_id];
 
     if (ss.resource_id == 0) {
-        dpy_gfx_replace_surface(scanout->con, NULL);
-        dpy_gl_scanout_disable(scanout->con);
+        qemu_console_set_surface(scanout->con, NULL);
+        qemu_console_gl_scanout_disable(scanout->con);
         return;
     }
 
@@ -331,8 +331,8 @@ rutabaga_cmd_set_scanout(VirtIOGPU *g, struct virtio_gpu_ctrl_command *cmd)
 
     /* realloc the surface ptr */
     scanout->ds = qemu_create_displaysurface_pixman(res->image);
-    dpy_gfx_replace_surface(scanout->con, NULL);
-    dpy_gfx_replace_surface(scanout->con, scanout->ds);
+    qemu_console_set_surface(scanout->con, NULL);
+    qemu_console_set_surface(scanout->con, scanout->ds);
     res->scanout_bitmask = ss.scanout_id;
 }
 
diff --git a/hw/display/virtio-gpu-udmabuf.c b/hw/display/virtio-gpu-udmabuf.c
index 74b6a7766af..d5ac1cfca0e 100644
--- a/hw/display/virtio-gpu-udmabuf.c
+++ b/hw/display/virtio-gpu-udmabuf.c
@@ -156,7 +156,7 @@ static void virtio_gpu_free_dmabuf(VirtIOGPU *g, VGPUDMABuf *dmabuf)
     struct virtio_gpu_scanout *scanout;
 
     scanout = &g->parent_obj.scanout[dmabuf->scanout_id];
-    dpy_gl_release_dmabuf(scanout->con, dmabuf->buf);
+    qemu_console_gl_release_dmabuf(scanout->con, dmabuf->buf);
     g_clear_pointer(&dmabuf->buf, qemu_dmabuf_free);
     QTAILQ_REMOVE(&g->dmabuf.bufs, dmabuf, next);
     g_free(dmabuf);
@@ -232,7 +232,7 @@ int virtio_gpu_update_dmabuf(VirtIOGPU *g,
     height = qemu_dmabuf_get_height(new_primary->buf);
     g->dmabuf.primary[scanout_id] = new_primary;
     qemu_console_resize(scanout->con, width, height);
-    dpy_gl_scanout_dmabuf(scanout->con, new_primary->buf);
+    qemu_console_gl_scanout_dmabuf(scanout->con, new_primary->buf);
 
     if (old_primary) {
         virtio_gpu_free_dmabuf(g, old_primary);
diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c
index add85bd4e61..60c78af06a4 100644
--- a/hw/display/virtio-gpu-virgl.c
+++ b/hw/display/virtio-gpu-virgl.c
@@ -521,7 +521,7 @@ static void virtio_gpu_rect_update(VirtIOGPU *g, int idx, int x, int y,
         return;
     }
 
-    dpy_gl_update(g->parent_obj.scanout[idx].con, x, y, width, height);
+    qemu_console_gl_update(g->parent_obj.scanout[idx].con, x, y, width, height);
 }
 
 static void virgl_cmd_resource_flush(VirtIOGPU *g,
@@ -584,16 +584,15 @@ static void virgl_cmd_set_scanout(VirtIOGPU *g,
         qemu_console_resize(g->parent_obj.scanout[ss.scanout_id].con,
                             ss.r.width, ss.r.height);
         virgl_renderer_force_ctx_0();
-        dpy_gl_scanout_texture(
+        qemu_console_gl_scanout_texture(
             g->parent_obj.scanout[ss.scanout_id].con, info.tex_id,
             info.flags & VIRTIO_GPU_RESOURCE_FLAG_Y_0_TOP,
             info.width, info.height,
             ss.r.x, ss.r.y, ss.r.width, ss.r.height,
             d3d_tex2d);
     } else {
-        dpy_gfx_replace_surface(
-            g->parent_obj.scanout[ss.scanout_id].con, NULL);
-        dpy_gl_scanout_disable(g->parent_obj.scanout[ss.scanout_id].con);
+        qemu_console_set_surface(g->parent_obj.scanout[ss.scanout_id].con, NULL);
+        qemu_console_gl_scanout_disable(g->parent_obj.scanout[ss.scanout_id].con);
     }
     g->parent_obj.scanout[ss.scanout_id].resource_id = ss.resource_id;
 }
@@ -1315,7 +1314,7 @@ virgl_create_context(void *opaque, int scanout_idx,
     qparams.major_ver = params->major_ver;
     qparams.minor_ver = params->minor_ver;
 
-    ctx = dpy_gl_ctx_create(g->parent_obj.scanout[scanout_idx].con, &qparams);
+    ctx = qemu_console_gl_ctx_create(g->parent_obj.scanout[scanout_idx].con, &qparams);
     return (virgl_renderer_gl_context)ctx;
 }
 
@@ -1324,7 +1323,7 @@ static void virgl_destroy_context(void *opaque, virgl_renderer_gl_context ctx)
     VirtIOGPU *g = opaque;
     QEMUGLContext qctx = (QEMUGLContext)ctx;
 
-    dpy_gl_ctx_destroy(g->parent_obj.scanout[0].con, qctx);
+    qemu_console_gl_ctx_destroy(g->parent_obj.scanout[0].con, qctx);
 }
 
 static int virgl_make_context_current(void *opaque, int scanout_idx,
@@ -1333,8 +1332,7 @@ static int virgl_make_context_current(void *opaque, int scanout_idx,
     VirtIOGPU *g = opaque;
     QEMUGLContext qctx = (QEMUGLContext)ctx;
 
-    return dpy_gl_ctx_make_current(g->parent_obj.scanout[scanout_idx].con,
-                                   qctx);
+    return qemu_console_gl_ctx_make_current(g->parent_obj.scanout[scanout_idx].con, qctx);
 }
 
 static struct virgl_renderer_callbacks virtio_gpu_3d_cbs = {
@@ -1399,8 +1397,8 @@ void virtio_gpu_virgl_reset_scanout(VirtIOGPU *g)
     int i;
 
     for (i = 0; i < g->parent_obj.conf.max_outputs; i++) {
-        dpy_gfx_replace_surface(g->parent_obj.scanout[i].con, NULL);
-        dpy_gl_scanout_disable(g->parent_obj.scanout[i].con);
+        qemu_console_set_surface(g->parent_obj.scanout[i].con, NULL);
+        qemu_console_gl_scanout_disable(g->parent_obj.scanout[i].con);
     }
 }
 
diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index dbb72bbb22d..88526051a99 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -103,14 +103,14 @@ static void update_cursor(VirtIOGPU *g, struct virtio_gpu_update_cursor *cursor)
         if (cursor->resource_id > 0) {
             vgc->update_cursor_data(g, s, cursor->resource_id);
         }
-        dpy_cursor_define(s->con, s->current_cursor);
+        qemu_console_set_cursor(s->con, s->current_cursor);
 
         s->cursor = *cursor;
     } else {
         s->cursor.pos.x = cursor->pos.x;
         s->cursor.pos.y = cursor->pos.y;
     }
-    dpy_mouse_set(s->con, cursor->pos.x, cursor->pos.y, cursor->resource_id);
+    qemu_console_set_mouse(s->con, cursor->pos.x, cursor->pos.y, cursor->resource_id);
 }
 
 struct virtio_gpu_simple_resource *
@@ -390,7 +390,7 @@ void virtio_gpu_disable_scanout(VirtIOGPU *g, int scanout_id)
         res->scanout_bitmask &= ~(1 << scanout_id);
     }
 
-    dpy_gfx_replace_surface(scanout->con, NULL);
+    qemu_console_set_surface(scanout->con, NULL);
     scanout->resource_id = 0;
     scanout->ds = NULL;
     scanout->width = 0;
@@ -531,8 +531,8 @@ static void virtio_gpu_resource_flush(VirtIOGPU *g,
                 rf.r.y + rf.r.height >= scanout->y) {
                 within_bounds = true;
 
-                if (console_has_gl(scanout->con)) {
-                    dpy_gl_update(scanout->con, 0, 0, scanout->width,
+                if (qemu_console_has_gl(scanout->con)) {
+                    qemu_console_gl_update(scanout->con, 0, 0, scanout->width,
                                   scanout->height);
                     update_submitted = true;
                 }
@@ -582,8 +582,8 @@ static void virtio_gpu_resource_flush(VirtIOGPU *g,
         /* work out the area we need to update for each console */
         if (qemu_rect_intersect(&flush_rect, &rect, &rect)) {
             qemu_rect_translate(&rect, -scanout->x, -scanout->y);
-            dpy_gfx_update(g->parent_obj.scanout[i].con,
-                           rect.x, rect.y, rect.width, rect.height);
+            qemu_console_update(g->parent_obj.scanout[i].con,
+                                rect.x, rect.y, rect.width, rect.height);
         }
     }
 }
@@ -649,7 +649,7 @@ static bool virtio_gpu_do_set_scanout(VirtIOGPU *g,
     g->parent_obj.enable = 1;
 
     if (res->blob) {
-        if (console_has_gl(scanout->con)) {
+        if (qemu_console_has_gl(scanout->con)) {
             if (!virtio_gpu_update_dmabuf(g, scanout_id, res, fb, r)) {
                 virtio_gpu_update_scanout(g, scanout_id, res, fb, r);
             } else {
@@ -665,7 +665,7 @@ static bool virtio_gpu_do_set_scanout(VirtIOGPU *g,
     }
 
     /* create a surface for this scanout */
-    if ((res->blob && !console_has_gl(scanout->con)) ||
+    if ((res->blob && !qemu_console_has_gl(scanout->con)) ||
         !scanout->ds ||
         surface_data(scanout->ds) != data + fb->offset ||
         scanout->width != r->width ||
@@ -686,7 +686,7 @@ static bool virtio_gpu_do_set_scanout(VirtIOGPU *g,
         qemu_displaysurface_set_share_handle(scanout->ds, res->share_handle, fb->offset);
 
         pixman_image_unref(rect);
-        dpy_gfx_replace_surface(g->parent_obj.scanout[scanout_id].con,
+        qemu_console_set_surface(g->parent_obj.scanout[scanout_id].con,
                                 scanout->ds);
     }
 
@@ -1483,10 +1483,10 @@ static int virtio_gpu_post_load(void *opaque, int version_id)
             }
             scanout->ds = qemu_create_displaysurface_pixman(res->image);
             qemu_displaysurface_set_share_handle(scanout->ds, res->share_handle, 0);
-            dpy_gfx_replace_surface(scanout->con, scanout->ds);
+            qemu_console_set_surface(scanout->con, scanout->ds);
         }
 
-        dpy_gfx_update_full(scanout->con);
+        qemu_console_update_full(scanout->con);
         if (scanout->cursor.resource_id) {
             update_cursor(g, &scanout->cursor);
         }
@@ -1602,7 +1602,7 @@ static void virtio_gpu_reset_bh(void *opaque)
     }
 
     for (i = 0; i < g->parent_obj.conf.max_outputs; i++) {
-        dpy_gfx_replace_surface(g->parent_obj.scanout[i].con, NULL);
+        qemu_console_set_surface(g->parent_obj.scanout[i].con, NULL);
     }
 
     g->reset_finished = true;
diff --git a/hw/display/virtio-vga.c b/hw/display/virtio-vga.c
index efd4858f3d0..2ae649c91ae 100644
--- a/hw/display/virtio-vga.c
+++ b/hw/display/virtio-vga.c
@@ -172,7 +172,7 @@ static void virtio_vga_base_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
                                  vvga->vga_mrs, true, false);
 
     vga->con = g->scanout[0].con;
-    graphic_console_set_hwops(vga->con, &virtio_vga_base_ops, vvga);
+    qemu_graphic_console_set_hwops(vga->con, &virtio_vga_base_ops, vvga);
 
     for (i = 0; i < g->conf.max_outputs; i++) {
         object_property_set_link(OBJECT(g->scanout[i].con), "device",
diff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c
index 11f13c98d7a..f6f9edfd1d9 100644
--- a/hw/display/vmware_vga.c
+++ b/hw/display/vmware_vga.c
@@ -378,7 +378,7 @@ static inline void vmsvga_update_rect(struct vmsvga_state_s *s,
     for (line = h; line > 0; line--, src += bypl, dst += bypl) {
         memcpy(dst, src, width);
     }
-    dpy_gfx_update(s->vga.con, x, y, w, h);
+    qemu_console_update(s->vga.con, x, y, w, h);
 }
 
 static inline void vmsvga_update_rect_flush(struct vmsvga_state_s *s)
@@ -554,7 +554,7 @@ static inline void vmsvga_cursor_define(struct vmsvga_state_s *s,
         qc = cursor_builtin_left_ptr();
     }
 
-    dpy_cursor_define(s->vga.con, qc);
+    qemu_console_set_cursor(s->vga.con, qc);
     cursor_unref(qc);
 }
 #endif
@@ -1082,7 +1082,7 @@ static void vmsvga_value_write(void *opaque, uint32_t address, uint32_t value)
         s->cursor.on &= (value != SVGA_CURSOR_ON_HIDE);
 #ifdef HW_MOUSE_ACCEL
         if (value <= SVGA_CURSOR_ON_SHOW) {
-            dpy_mouse_set(s->vga.con, s->cursor.x, s->cursor.y, s->cursor.on);
+            qemu_console_set_mouse(s->vga.con, s->cursor.x, s->cursor.y, s->cursor.on);
         }
 #endif
         break;
@@ -1130,7 +1130,7 @@ static inline void vmsvga_check_size(struct vmsvga_state_s *s)
         surface = qemu_create_displaysurface_from(s->new_width, s->new_height,
                                                   format, stride,
                                                   s->vga.vram_ptr);
-        dpy_gfx_replace_surface(s->vga.con, surface);
+        qemu_console_set_surface(s->vga.con, surface);
         s->invalidated = 1;
     }
 }
@@ -1151,7 +1151,7 @@ static bool vmsvga_update_display(void *opaque)
 
     if (s->invalidated) {
         s->invalidated = 0;
-        dpy_gfx_update_full(s->vga.con);
+        qemu_console_update_full(s->vga.con);
     }
 
     return true;
@@ -1254,7 +1254,7 @@ static void vmsvga_init(DeviceState *dev, struct vmsvga_state_s *s,
     s->scratch_size = SVGA_SCRATCH_SIZE;
     s->scratch = g_malloc(s->scratch_size * 4);
 
-    s->vga.con = graphic_console_init(dev, 0, &vmsvga_ops, s);
+    s->vga.con = qemu_graphic_console_create(dev, 0, &vmsvga_ops, s);
 
     s->fifo_size = SVGA_FIFO_SIZE;
     memory_region_init_ram(&s->fifo_ram, NULL, "vmsvga.fifo", s->fifo_size,
diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
index 2e431e27be6..8e9953bda43 100644
--- a/hw/display/xenfb.c
+++ b/hw/display/xenfb.c
@@ -657,7 +657,7 @@ static void xenfb_guest_copy(struct XenFB *xenfb, int x, int y, int w, int h)
         xen_pv_printf(&xenfb->c.xendev, 0, "%s: oops: convert %d -> %d bpp?\n",
                       __func__, xenfb->depth, bpp);
 
-    dpy_gfx_update(xenfb->con, x, y, w, h);
+    qemu_console_update(xenfb->con, x, y, w, h);
 }
 
 #ifdef XENFB_TYPE_REFRESH_PERIOD
@@ -743,7 +743,7 @@ static bool xenfb_update(void *opaque)
             surface = qemu_create_displaysurface(xenfb->width, xenfb->height);
             break;
         }
-        dpy_gfx_replace_surface(xenfb->con, surface);
+        qemu_console_set_surface(xenfb->con, surface);
         xen_pv_printf(&xenfb->c.xendev, 1,
                       "update: resizing: %dx%d @ %d bpp%s\n",
                       xenfb->width, xenfb->height, xenfb->depth,
@@ -903,7 +903,7 @@ static int fb_initialise(struct XenLegacyDevice *xendev)
     if (rc != 0)
         return rc;
 
-    fb->con = graphic_console_init(NULL, 0, &xenfb_ops, fb);
+    fb->con = qemu_graphic_console_create(NULL, 0, &xenfb_ops, fb);
 
     if (xenstore_read_fe_int(xendev, "feature-update", &fb->feature_update) == -1)
         fb->feature_update = 0;
diff --git a/hw/display/xlnx_dp.c b/hw/display/xlnx_dp.c
index 50e6ef10984..2486d9e5825 100644
--- a/hw/display/xlnx_dp.c
+++ b/hw/display/xlnx_dp.c
@@ -605,7 +605,7 @@ static void xlnx_dp_recreate_surface(XlnxDPState *s)
 
     if ((width != 0) && (height != 0)) {
         /*
-         * As dpy_gfx_replace_surface calls qemu_free_displaysurface on the
+         * As qemu_console_replace_surface calls qemu_free_displaysurface on the
          * surface we need to be careful and don't free the surface associated
          * to the console or double free will happen.
          */
@@ -631,10 +631,10 @@ static void xlnx_dp_recreate_surface(XlnxDPState *s)
                                                             height,
                                                             s->g_plane.format,
                                                             0, NULL);
-            dpy_gfx_replace_surface(s->console, s->bout_plane.surface);
+            qemu_console_set_surface(s->console, s->bout_plane.surface);
         } else {
             s->bout_plane.surface = NULL;
-            dpy_gfx_replace_surface(s->console, s->g_plane.surface);
+            qemu_console_set_surface(s->console, s->g_plane.surface);
         }
 
         xlnx_dpdma_set_host_data_location(s->dpdma, DP_GRAPHIC_DMA_CHANNEL,
@@ -1287,7 +1287,7 @@ static bool xlnx_dp_update_display(void *opaque)
     /*
      * XXX: We might want to update only what changed.
      */
-    dpy_gfx_update_full(s->console);
+    qemu_console_update_full(s->console);
 
     return true;
 }
@@ -1387,7 +1387,7 @@ static void xlnx_dp_realize(DeviceState *dev, Error **errp)
     qdev_realize(DEVICE(s->edid), BUS(aux_get_i2c_bus(s->aux_bus)),
                  &error_fatal);
 
-    s->console = graphic_console_init(dev, 0, &xlnx_dp_gfx_ops, s);
+    s->console = qemu_graphic_console_create(dev, 0, &xlnx_dp_gfx_ops, s);
     surface = qemu_console_surface(s->console);
     xlnx_dpdma_set_host_data_location(s->dpdma, DP_GRAPHIC_DMA_CHANNEL,
                                       surface_data(surface));
diff --git a/hw/vfio/display.c b/hw/vfio/display.c
index 4a9a58036e3..8f91e83da88 100644
--- a/hw/vfio/display.c
+++ b/hw/vfio/display.c
@@ -264,7 +264,7 @@ static void vfio_display_free_one_dmabuf(VFIODisplay *dpy, VFIODMABuf *dmabuf)
     QTAILQ_REMOVE(&dpy->dmabuf.bufs, dmabuf, next);
 
     qemu_dmabuf_close(dmabuf->buf);
-    dpy_gl_release_dmabuf(dpy->con, dmabuf->buf);
+    qemu_console_gl_release_dmabuf(dpy->con, dmabuf->buf);
     g_clear_pointer(&dmabuf->buf, qemu_dmabuf_free);
     g_free(dmabuf);
 }
@@ -307,7 +307,7 @@ static bool vfio_display_dmabuf_update(void *opaque)
     if (dpy->dmabuf.primary != primary) {
         dpy->dmabuf.primary = primary;
         qemu_console_resize(dpy->con, width, height);
-        dpy_gl_scanout_dmabuf(dpy->con, primary->buf);
+        qemu_console_gl_scanout_dmabuf(dpy->con, primary->buf);
         free_bufs = true;
     }
 
@@ -321,21 +321,21 @@ static bool vfio_display_dmabuf_update(void *opaque)
     if (cursor && (new_cursor || cursor->hot_updates)) {
         bool have_hot = (cursor->hot_x != 0xffffffff &&
                          cursor->hot_y != 0xffffffff);
-        dpy_gl_cursor_dmabuf(dpy->con, cursor->buf, have_hot,
-                             cursor->hot_x, cursor->hot_y);
+        qemu_console_gl_cursor_dmabuf(dpy->con, cursor->buf, have_hot,
+                                      cursor->hot_x, cursor->hot_y);
         cursor->hot_updates = 0;
     } else if (!cursor && new_cursor) {
-        dpy_gl_cursor_dmabuf(dpy->con, NULL, false, 0, 0);
+        qemu_console_gl_cursor_dmabuf(dpy->con, NULL, false, 0, 0);
     }
 
     if (cursor && cursor->pos_updates) {
-        dpy_gl_cursor_position(dpy->con,
+        qemu_console_gl_cursor_position(dpy->con,
                                cursor->pos_x,
                                cursor->pos_y);
         cursor->pos_updates = 0;
     }
 
-    dpy_gl_update(dpy->con, 0, 0, width, height);
+    qemu_console_gl_update(dpy->con, 0, 0, width, height);
 
     if (free_bufs) {
         vfio_display_free_dmabufs(vdev);
@@ -363,7 +363,7 @@ static bool vfio_display_dmabuf_init(VFIOPCIDevice *vdev, Error **errp)
     }
 
     vdev->dpy = g_new0(VFIODisplay, 1);
-    vdev->dpy->con = graphic_console_init(DEVICE(vdev), 0,
+    vdev->dpy->con = qemu_graphic_console_create(DEVICE(vdev), 0,
                                           &vfio_display_dmabuf_ops,
                                           vdev);
     if (vdev->enable_ramfb) {
@@ -396,9 +396,9 @@ void vfio_display_reset(VFIOPCIDevice *vdev)
         return;
     }
 
-    dpy_gl_scanout_disable(vdev->dpy->con);
+    qemu_console_gl_scanout_disable(vdev->dpy->con);
     vfio_display_dmabuf_exit(vdev->dpy);
-    dpy_gfx_update_full(vdev->dpy->con);
+    qemu_console_update_full(vdev->dpy->con);
 }
 
 static bool vfio_display_region_update(void *opaque)
@@ -471,13 +471,13 @@ static bool vfio_display_region_update(void *opaque)
         dpy->region.surface = qemu_create_displaysurface_from
             (plane.width, plane.height, format,
              plane.stride, dpy->region.buffer.mmaps[0].mmap);
-        dpy_gfx_replace_surface(dpy->con, dpy->region.surface);
+        qemu_console_set_surface(dpy->con, dpy->region.surface);
     }
 
     /* full screen update */
-    dpy_gfx_update(dpy->con, 0, 0,
-                   surface_width(dpy->region.surface),
-                   surface_height(dpy->region.surface));
+    qemu_console_update(dpy->con, 0, 0,
+                        surface_width(dpy->region.surface),
+                        surface_height(dpy->region.surface));
     return true;
 
 err:
@@ -493,7 +493,7 @@ static const GraphicHwOps vfio_display_region_ops = {
 static bool vfio_display_region_init(VFIOPCIDevice *vdev, Error **errp)
 {
     vdev->dpy = g_new0(VFIODisplay, 1);
-    vdev->dpy->con = graphic_console_init(DEVICE(vdev), 0,
+    vdev->dpy->con = qemu_graphic_console_create(DEVICE(vdev), 0,
                                           &vfio_display_region_ops,
                                           vdev);
     if (vdev->enable_ramfb) {
@@ -553,7 +553,7 @@ void vfio_display_finalize(VFIOPCIDevice *vdev)
         return;
     }
 
-    graphic_console_close(vdev->dpy->con);
+    qemu_graphic_console_close(vdev->dpy->con);
     vfio_display_dmabuf_exit(vdev->dpy);
     vfio_display_region_exit(vdev->dpy);
     vfio_display_edid_exit(vdev->dpy);
diff --git a/ui/console-vc.c b/ui/console-vc.c
index 99ad6d079df..828e78c41ea 100644
--- a/ui/console-vc.c
+++ b/ui/console-vc.c
@@ -90,15 +90,15 @@ static void text_console_update(void *opaque, uint32_t *chardata)
                                           s->vt.cells[src].t_attrib.bgcol,
                                           s->vt.cells[src].t_attrib.bold);
             }
-        dpy_text_update(QEMU_CONSOLE(s), s->vt.text_x[0], s->vt.text_y[0],
-                        s->vt.text_x[1] - s->vt.text_x[0], i - s->vt.text_y[0]);
+        qemu_console_text_update(QEMU_CONSOLE(s), s->vt.text_x[0], s->vt.text_y[0],
+                                 s->vt.text_x[1] - s->vt.text_x[0], i - s->vt.text_y[0]);
         s->vt.text_x[0] = s->vt.width;
         s->vt.text_y[0] = s->vt.height;
         s->vt.text_x[1] = 0;
         s->vt.text_y[1] = 0;
     }
     if (s->vt.cursor_invalidate) {
-        dpy_text_cursor(QEMU_CONSOLE(s), s->vt.x, s->vt.y);
+        qemu_console_text_set_cursor(QEMU_CONSOLE(s), s->vt.x, s->vt.y);
         s->vt.cursor_invalidate = 0;
     }
 }
@@ -186,14 +186,14 @@ static void vc_chr_set_echo(Chardev *chr, bool echo)
 
 void qemu_text_console_update_size(QemuTextConsole *c)
 {
-    dpy_text_resize(QEMU_CONSOLE(c), c->vt.width, c->vt.height);
+    qemu_console_text_resize(QEMU_CONSOLE(c), c->vt.width, c->vt.height);
 }
 
 static void text_console_image_update(QemuVT100 *vt, int x, int y, int width, int height)
 {
     QemuTextConsole *console = container_of(vt, QemuTextConsole, vt);
 
-    dpy_gfx_update(QEMU_CONSOLE(console), x, y, width, height);
+    qemu_console_update(QEMU_CONSOLE(console), x, y, width, height);
 }
 
 static void text_console_out_flush(QemuVT100 *vt)
@@ -232,7 +232,7 @@ static bool vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         s = QEMU_TEXT_CONSOLE(object_new(TYPE_QEMU_FIXED_TEXT_CONSOLE));
     }
 
-    dpy_gfx_replace_surface(QEMU_CONSOLE(s), qemu_create_displaysurface(width, height));
+    qemu_console_set_surface(QEMU_CONSOLE(s), qemu_create_displaysurface(width, height));
     if (vc->has_encoding) {
         drv->encoding = vc->encoding;
     }
diff --git a/ui/console.c b/ui/console.c
index 22ca1c35db3..6f6330d61f1 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -129,26 +129,26 @@ static void gui_setup_refresh(DisplayState *ds)
     }
 }
 
-void graphic_hw_update_done(QemuConsole *con)
+void qemu_console_hw_update_done(QemuConsole *con)
 {
     if (con) {
         qemu_co_enter_all(&con->dump_queue, NULL);
     }
 }
 
-void graphic_hw_update(QemuConsole *con)
+void qemu_console_hw_update(QemuConsole *con)
 {
     if (!con) {
         return;
     }
     if (!con->hw_ops->gfx_update || con->hw_ops->gfx_update(con->hw)) {
-        graphic_hw_update_done(con);
+        qemu_console_hw_update_done(con);
     }
 }
 
-static void graphic_hw_update_bh(void *con)
+static void console_hw_update_bh(void *con)
 {
-    graphic_hw_update(con);
+    qemu_console_hw_update(con);
 }
 
 void qemu_console_co_wait_update(QemuConsole *con)
@@ -156,18 +156,18 @@ void qemu_console_co_wait_update(QemuConsole *con)
     if (qemu_co_queue_empty(&con->dump_queue)) {
         /* Defer the update, it will restart the pending coroutines */
         aio_bh_schedule_oneshot(qemu_get_aio_context(),
-                                graphic_hw_update_bh, con);
+                                console_hw_update_bh, con);
     }
     qemu_co_queue_wait(&con->dump_queue, NULL);
 
 }
 
-static void graphic_hw_gl_unblock_timer(void *opaque)
+static void console_hw_gl_unblock_timer(void *opaque)
 {
     warn_report("console: no gl-unblock within one second");
 }
 
-void graphic_hw_gl_block(QemuConsole *con, bool block)
+void qemu_console_hw_gl_block(QemuConsole *con, bool block)
 {
     uint64_t timeout;
     assert(con != NULL);
@@ -205,14 +205,14 @@ void qemu_console_set_window_id(QemuConsole *con, int window_id)
     con->window_id = window_id;
 }
 
-void graphic_hw_invalidate(QemuConsole *con)
+void qemu_console_hw_invalidate(QemuConsole *con)
 {
     if (con && con->hw_ops->invalidate) {
         con->hw_ops->invalidate(con->hw);
     }
 }
 
-void graphic_hw_text_update(QemuConsole *con, uint32_t *chardata)
+void qemu_console_hw_text_update(QemuConsole *con, uint32_t *chardata)
 {
     if (con && con->hw_ops->text_update) {
         con->hw_ops->text_update(con->hw, chardata);
@@ -502,7 +502,7 @@ qemu_graphic_console_init(Object *obj)
 {
 }
 
-bool console_has_gl(QemuConsole *con)
+bool qemu_console_has_gl(QemuConsole *con)
 {
     return con->gl != NULL;
 }
@@ -527,7 +527,7 @@ static bool console_compatible_with(QemuConsole *con,
 
     flags = con->hw_ops->get_flags ? con->hw_ops->get_flags(con->hw) : 0;
 
-    if (console_has_gl(con) &&
+    if (qemu_console_has_gl(con) &&
         !con->gl->ops->dpy_gl_ctx_is_compatible_dcl(con->gl, dcl)) {
         error_setg(errp, "Display %s is incompatible with the GL context",
                    dcl->ops->dpy_name);
@@ -535,7 +535,7 @@ static bool console_compatible_with(QemuConsole *con,
     }
 
     if (flags & GRAPHIC_FLAGS_GL &&
-        !console_has_gl(con)) {
+        !qemu_console_has_gl(con)) {
         error_setg(errp, "The console requires a GL context.");
         return false;
 
@@ -605,8 +605,8 @@ void qemu_console_register_listener(QemuConsole *con,
     vt100_update_cursor();
 }
 
-void update_displaychangelistener(DisplayChangeListener *dcl,
-                                  uint64_t interval)
+void qemu_console_listener_set_refresh(DisplayChangeListener *dcl,
+                                       uint64_t interval)
 {
     DisplayState *ds = dcl->ds;
 
@@ -645,7 +645,7 @@ static void dpy_set_ui_info_timer(void *opaque)
     con->hw_ops->ui_info(con->hw, head, &con->ui_info);
 }
 
-bool dpy_ui_info_supported(const QemuConsole *con)
+bool qemu_console_ui_info_supported(const QemuConsole *con)
 {
     if (con == NULL) {
         return false;
@@ -654,16 +654,16 @@ bool dpy_ui_info_supported(const QemuConsole *con)
     return con->hw_ops->ui_info != NULL;
 }
 
-const QemuUIInfo *dpy_get_ui_info(const QemuConsole *con)
+const QemuUIInfo *qemu_console_get_ui_info(const QemuConsole *con)
 {
-    assert(dpy_ui_info_supported(con));
+    assert(qemu_console_ui_info_supported(con));
 
     return &con->ui_info;
 }
 
-int dpy_set_ui_info(QemuConsole *con, QemuUIInfo *info, bool delay)
+int qemu_console_set_ui_info(QemuConsole *con, QemuUIInfo *info, bool delay)
 {
-    if (!dpy_ui_info_supported(con)) {
+    if (!qemu_console_ui_info_supported(con)) {
         return -1;
     }
     if (memcmp(&con->ui_info, info, sizeof(con->ui_info)) == 0) {
@@ -682,7 +682,7 @@ int dpy_set_ui_info(QemuConsole *con, QemuUIInfo *info, bool delay)
     return 0;
 }
 
-void dpy_gfx_update(QemuConsole *con, int x, int y, int w, int h)
+void qemu_console_update(QemuConsole *con, int x, int y, int w, int h)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -707,15 +707,15 @@ void dpy_gfx_update(QemuConsole *con, int x, int y, int w, int h)
     }
 }
 
-void dpy_gfx_update_full(QemuConsole *con)
+void qemu_console_update_full(QemuConsole *con)
 {
     int w = qemu_console_get_width(con, 0);
     int h = qemu_console_get_height(con, 0);
 
-    dpy_gfx_update(con, 0, 0, w, h);
+    qemu_console_update(con, 0, 0, w, h);
 }
 
-void dpy_gfx_replace_surface(QemuConsole *con,
+void qemu_console_set_surface(QemuConsole *con,
                              DisplaySurface *surface)
 {
     static const char placeholder_msg[] = "Display output is not active.";
@@ -753,8 +753,8 @@ void dpy_gfx_replace_surface(QemuConsole *con,
     qemu_free_displaysurface(old_surface);
 }
 
-bool dpy_gfx_check_format(QemuConsole *con,
-                          pixman_format_code_t format)
+bool qemu_console_check_format(QemuConsole *con,
+                               pixman_format_code_t format)
 {
     DisplayChangeListener *dcl;
     DisplayState *s = con->ds;
@@ -789,7 +789,7 @@ static void dpy_refresh(DisplayState *s)
     }
 }
 
-void dpy_text_cursor(QemuConsole *con, int x, int y)
+void qemu_console_text_set_cursor(QemuConsole *con, int x, int y)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -804,7 +804,7 @@ void dpy_text_cursor(QemuConsole *con, int x, int y)
     }
 }
 
-void dpy_text_update(QemuConsole *con, int x, int y, int w, int h)
+void qemu_console_text_update(QemuConsole *con, int x, int y, int w, int h)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -819,7 +819,7 @@ void dpy_text_update(QemuConsole *con, int x, int y, int w, int h)
     }
 }
 
-void dpy_text_resize(QemuConsole *con, int w, int h)
+void qemu_console_text_resize(QemuConsole *con, int w, int h)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -834,7 +834,7 @@ void dpy_text_resize(QemuConsole *con, int w, int h)
     }
 }
 
-void dpy_mouse_set(QemuConsole *c, int x, int y, bool on)
+void qemu_console_set_mouse(QemuConsole *c, int x, int y, bool on)
 {
     QemuGraphicConsole *con = QEMU_GRAPHIC_CONSOLE(c);
     DisplayState *s = c->ds;
@@ -853,7 +853,7 @@ void dpy_mouse_set(QemuConsole *c, int x, int y, bool on)
     }
 }
 
-void dpy_cursor_define(QemuConsole *c, QEMUCursor *cursor)
+void qemu_console_set_cursor(QemuConsole *c, QEMUCursor *cursor)
 {
     QemuGraphicConsole *con = QEMU_GRAPHIC_CONSOLE(c);
     DisplayState *s = c->ds;
@@ -871,26 +871,26 @@ void dpy_cursor_define(QemuConsole *c, QEMUCursor *cursor)
     }
 }
 
-QEMUGLContext dpy_gl_ctx_create(QemuConsole *con,
-                                struct QEMUGLParams *qparams)
+QEMUGLContext qemu_console_gl_ctx_create(QemuConsole *con,
+                                         QEMUGLParams *qparams)
 {
     assert(con->gl);
     return con->gl->ops->dpy_gl_ctx_create(con->gl, qparams);
 }
 
-void dpy_gl_ctx_destroy(QemuConsole *con, QEMUGLContext ctx)
+void qemu_console_gl_ctx_destroy(QemuConsole *con, QEMUGLContext ctx)
 {
     assert(con->gl);
     con->gl->ops->dpy_gl_ctx_destroy(con->gl, ctx);
 }
 
-int dpy_gl_ctx_make_current(QemuConsole *con, QEMUGLContext ctx)
+int qemu_console_gl_ctx_make_current(QemuConsole *con, QEMUGLContext ctx)
 {
     assert(con->gl);
     return con->gl->ops->dpy_gl_ctx_make_current(con->gl, ctx);
 }
 
-void dpy_gl_scanout_disable(QemuConsole *con)
+void qemu_console_gl_scanout_disable(QemuConsole *con)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -908,14 +908,14 @@ void dpy_gl_scanout_disable(QemuConsole *con)
     }
 }
 
-void dpy_gl_scanout_texture(QemuConsole *con,
-                            uint32_t backing_id,
-                            bool backing_y_0_top,
-                            uint32_t backing_width,
-                            uint32_t backing_height,
-                            uint32_t x, uint32_t y,
-                            uint32_t width, uint32_t height,
-                            void *d3d_tex2d)
+void qemu_console_gl_scanout_texture(QemuConsole *con,
+                                     uint32_t backing_id,
+                                     bool backing_y_0_top,
+                                     uint32_t backing_width,
+                                     uint32_t backing_height,
+                                     uint32_t x, uint32_t y,
+                                     uint32_t width, uint32_t height,
+                                     void *d3d_tex2d)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -939,8 +939,8 @@ void dpy_gl_scanout_texture(QemuConsole *con,
     }
 }
 
-void dpy_gl_scanout_dmabuf(QemuConsole *con,
-                           QemuDmaBuf *dmabuf)
+void qemu_console_gl_scanout_dmabuf(QemuConsole *con,
+                                    QemuDmaBuf *dmabuf)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -957,8 +957,8 @@ void dpy_gl_scanout_dmabuf(QemuConsole *con,
     }
 }
 
-void dpy_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf,
-                          bool have_hot, uint32_t hot_x, uint32_t hot_y)
+void qemu_console_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf,
+                                   bool have_hot, uint32_t hot_x, uint32_t hot_y)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -974,8 +974,8 @@ void dpy_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf,
     }
 }
 
-void dpy_gl_cursor_position(QemuConsole *con,
-                            uint32_t pos_x, uint32_t pos_y)
+void qemu_console_gl_cursor_position(QemuConsole *con,
+                                     uint32_t pos_x, uint32_t pos_y)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -990,8 +990,8 @@ void dpy_gl_cursor_position(QemuConsole *con,
     }
 }
 
-void dpy_gl_release_dmabuf(QemuConsole *con,
-                          QemuDmaBuf *dmabuf)
+void qemu_console_gl_release_dmabuf(QemuConsole *con,
+                                    QemuDmaBuf *dmabuf)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
@@ -1006,15 +1006,15 @@ void dpy_gl_release_dmabuf(QemuConsole *con,
     }
 }
 
-void dpy_gl_update(QemuConsole *con,
-                   uint32_t x, uint32_t y, uint32_t w, uint32_t h)
+void qemu_console_gl_update(QemuConsole *con,
+                            uint32_t x, uint32_t y, uint32_t w, uint32_t h)
 {
     DisplayState *s = con->ds;
     DisplayChangeListener *dcl;
 
     assert(con->gl);
 
-    graphic_hw_gl_block(con, true);
+    qemu_console_hw_gl_block(con, true);
     QLIST_FOREACH(dcl, &s->listeners, next) {
         if (con != dcl->con) {
             continue;
@@ -1023,7 +1023,7 @@ void dpy_gl_update(QemuConsole *con,
             dcl->ops->dpy_gl_update(dcl, x, y, w, h);
         }
     }
-    graphic_hw_gl_block(con, false);
+    qemu_console_hw_gl_block(con, false);
 }
 
 /***********************************************************/
@@ -1060,17 +1060,17 @@ DisplayState *init_displaystate(void)
     return display_state;
 }
 
-void graphic_console_set_hwops(QemuConsole *con,
-                               const GraphicHwOps *hw_ops,
-                               void *opaque)
+void qemu_graphic_console_set_hwops(QemuConsole *con,
+                                    const GraphicHwOps *hw_ops,
+                                    void *opaque)
 {
     con->hw_ops = hw_ops;
     con->hw = opaque;
 }
 
-QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,
-                                  const GraphicHwOps *hw_ops,
-                                  void *opaque)
+QemuConsole *qemu_graphic_console_create(DeviceState *dev, uint32_t head,
+                                         const GraphicHwOps *hw_ops,
+                                         void *opaque)
 {
     static const char noinit[] =
         "Guest has not initialized the display (yet).";
@@ -1089,16 +1089,16 @@ QemuConsole *graphic_console_init(DeviceState *dev, uint32_t head,
         s = (QemuConsole *)object_new(TYPE_QEMU_GRAPHIC_CONSOLE);
     }
     QEMU_GRAPHIC_CONSOLE(s)->head = head;
-    graphic_console_set_hwops(s, hw_ops, opaque);
+    qemu_graphic_console_set_hwops(s, hw_ops, opaque);
     if (dev) {
         object_property_set_link(OBJECT(s), "device", OBJECT(dev),
                                  &error_abort);
     }
 
     surface = qemu_create_placeholder_surface(width, height, noinit);
-    dpy_gfx_replace_surface(s, surface);
+    qemu_console_set_surface(s, surface);
     s->gl_unblock_timer = timer_new_ms(QEMU_CLOCK_REALTIME,
-                                       graphic_hw_gl_unblock_timer, s);
+                                       console_hw_gl_unblock_timer, s);
     return s;
 }
 
@@ -1106,7 +1106,7 @@ static const GraphicHwOps unused_ops = {
     /* no callbacks */
 };
 
-void graphic_console_close(QemuConsole *con)
+void qemu_graphic_console_close(QemuConsole *con)
 {
     static const char unplugged[] =
         "Guest display has been unplugged";
@@ -1116,13 +1116,13 @@ void graphic_console_close(QemuConsole *con)
 
     trace_console_gfx_close(con->index);
     object_property_set_link(OBJECT(con), "device", NULL, &error_abort);
-    graphic_console_set_hwops(con, &unused_ops, NULL);
+    qemu_graphic_console_set_hwops(con, &unused_ops, NULL);
 
     if (con->gl) {
-        dpy_gl_scanout_disable(con);
+        qemu_console_gl_scanout_disable(con);
     }
     surface = qemu_create_placeholder_surface(width, height, unplugged);
-    dpy_gfx_replace_surface(con, surface);
+    qemu_console_set_surface(con, surface);
 }
 
 QemuConsole *qemu_console_lookup_default(void)
@@ -1308,7 +1308,7 @@ void qemu_console_resize(QemuConsole *s, int width, int height)
     }
 
     surface = qemu_create_displaysurface(width, height);
-    dpy_gfx_replace_surface(s, surface);
+    qemu_console_set_surface(s, surface);
 }
 
 DisplaySurface *qemu_console_surface(QemuConsole *console)
diff --git a/ui/curses.c b/ui/curses.c
index dbb5992981c..24d3713e57d 100644
--- a/ui/curses.c
+++ b/ui/curses.c
@@ -1,8 +1,8 @@
 /*
  * QEMU curses/ncurses display driver
- * 
+ *
  * Copyright (c) 2005 Andrzej Zaborowski  <balrog@zabor.org>
- * 
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
@@ -275,11 +275,11 @@ static void curses_refresh(DisplayChangeListener *dcl)
         clear();
         refresh();
         curses_calc_pad();
-        graphic_hw_invalidate(dcl->con);
+        qemu_console_hw_invalidate(dcl->con);
         invalidate = 0;
     }
 
-    graphic_hw_text_update(dcl->con, screen);
+    qemu_console_hw_text_update(dcl->con, screen);
 
     while (1) {
         /* while there are any pending key strokes to process */
diff --git a/ui/dbus-console.c b/ui/dbus-console.c
index 23f547a673d..b8e5c57b148 100644
--- a/ui/dbus-console.c
+++ b/ui/dbus-console.c
@@ -200,7 +200,7 @@ dbus_console_set_ui_info(DBusDisplayConsole *ddc,
         .height = arg_height,
     };
 
-    if (!dpy_ui_info_supported(ddc->dcl.con)) {
+    if (!qemu_console_ui_info_supported(ddc->dcl.con)) {
         g_dbus_method_invocation_return_error(invocation,
                                               DBUS_DISPLAY_ERROR,
                                               DBUS_DISPLAY_ERROR_UNSUPPORTED,
@@ -208,7 +208,7 @@ dbus_console_set_ui_info(DBusDisplayConsole *ddc,
         return DBUS_METHOD_INVOCATION_HANDLED;
     }
 
-    dpy_set_ui_info(ddc->dcl.con, &info, false);
+    qemu_console_set_ui_info(ddc->dcl.con, &info, false);
     qemu_dbus_display1_console_complete_set_uiinfo(ddc->iface, invocation);
     return DBUS_METHOD_INVOCATION_HANDLED;
 }
diff --git a/ui/dbus-listener.c b/ui/dbus-listener.c
index cc2c969686e..2e2f6ba4183 100644
--- a/ui/dbus-listener.c
+++ b/ui/dbus-listener.c
@@ -241,7 +241,7 @@ static void dbus_update_gl_cb(GObject *source_object,
     }
 #endif
 
-    graphic_hw_gl_block(ddl->dcl.con, false);
+    qemu_console_hw_gl_block(ddl->dcl.con, false);
     g_object_unref(ddl);
 }
 #endif
@@ -257,7 +257,7 @@ static void dbus_call_update_gl(DisplayChangeListener *dcl,
 
     glFlush();
 #ifdef CONFIG_GBM
-    graphic_hw_gl_block(ddl->dcl.con, true);
+    qemu_console_hw_gl_block(ddl->dcl.con, true);
     qemu_dbus_display1_listener_call_update_dmabuf(ddl->proxy,
         x, y, w, h,
         G_DBUS_CALL_FLAGS_NONE,
@@ -276,7 +276,7 @@ static void dbus_call_update_gl(DisplayChangeListener *dcl,
         Error *err = NULL;
         assert(ddl->d3d_texture);
 
-        graphic_hw_gl_block(ddl->dcl.con, true);
+        qemu_console_hw_gl_block(ddl->dcl.con, true);
         if (!d3d_texture2d_release0(ddl->d3d_texture, &err)) {
             error_report_err(err);
             return;
@@ -711,7 +711,7 @@ static void dbus_gl_refresh(DisplayChangeListener *dcl)
 {
     DBusDisplayListener *ddl = container_of(dcl, DBusDisplayListener, dcl);
 
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
 
     if (!ddl->ds || qemu_console_is_gl_blocked(ddl->dcl.con)) {
         return;
@@ -740,7 +740,7 @@ static void dbus_gl_refresh(DisplayChangeListener *dcl)
 
 static void dbus_refresh(DisplayChangeListener *dcl)
 {
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
 }
 
 #ifdef CONFIG_OPENGL
diff --git a/ui/egl-headless.c b/ui/egl-headless.c
index 4f046c975a9..878bfebb40c 100644
--- a/ui/egl-headless.c
+++ b/ui/egl-headless.c
@@ -23,7 +23,7 @@ typedef struct egl_dpy {
 
 static void egl_refresh(DisplayChangeListener *dcl)
 {
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
 }
 
 static void egl_gfx_update(DisplayChangeListener *dcl,
@@ -161,7 +161,7 @@ static void egl_scanout_flush(DisplayChangeListener *dcl,
     }
 
     egl_fb_read(edpy->ds, &edpy->blit_fb);
-    dpy_gfx_update(edpy->dcl.con, x, y, w, h);
+    qemu_console_update(edpy->dcl.con, x, y, w, h);
 }
 
 static const DisplayChangeListenerOps egl_ops = {
diff --git a/ui/gtk-egl.c b/ui/gtk-egl.c
index fa8fe8970c1..7c5c9b2428c 100644
--- a/ui/gtk-egl.c
+++ b/ui/gtk-egl.c
@@ -108,7 +108,7 @@ void gd_egl_draw(VirtualConsole *vc)
                 qemu_set_fd_handler(fence_fd, gd_hw_gl_flushed, NULL, vc);
                 return;
             }
-            graphic_hw_gl_block(vc->gfx.dcl.con, false);
+            qemu_console_hw_gl_block(vc->gfx.dcl.con, false);
         }
 #endif
     } else {
@@ -176,7 +176,7 @@ void gd_egl_refresh(DisplayChangeListener *dcl)
         return;
     }
 
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
 
     if (vc->gfx.glupdates) {
         vc->gfx.glupdates = 0;
@@ -405,7 +405,7 @@ void gd_egl_flush(DisplayChangeListener *dcl,
 
     if (vc->gfx.guest_fb.dmabuf &&
         !qemu_dmabuf_get_draw_submitted(vc->gfx.guest_fb.dmabuf)) {
-        graphic_hw_gl_block(vc->gfx.dcl.con, true);
+        qemu_console_hw_gl_block(vc->gfx.dcl.con, true);
         qemu_dmabuf_set_draw_submitted(vc->gfx.guest_fb.dmabuf, true);
         gtk_egl_set_scanout_mode(vc, true);
         gtk_widget_queue_draw_area(area, x, y, w, h);
diff --git a/ui/gtk-gl-area.c b/ui/gtk-gl-area.c
index ce49000d3f1..23806b9d01b 100644
--- a/ui/gtk-gl-area.c
+++ b/ui/gtk-gl-area.c
@@ -131,7 +131,7 @@ void gd_gl_area_draw(VirtualConsole *vc)
                 qemu_set_fd_handler(fence_fd, gd_hw_gl_flushed, NULL, vc);
                 return;
             }
-            graphic_hw_gl_block(vc->gfx.dcl.con, false);
+            qemu_console_hw_gl_block(vc->gfx.dcl.con, false);
         }
 #endif
     } else {
@@ -195,7 +195,7 @@ void gd_gl_area_refresh(DisplayChangeListener *dcl)
         }
     }
 
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
 
     if (vc->gfx.glupdates) {
         vc->gfx.glupdates = 0;
@@ -347,7 +347,7 @@ void gd_gl_area_scanout_flush(DisplayChangeListener *dcl,
 
     if (vc->gfx.guest_fb.dmabuf &&
         !qemu_dmabuf_get_draw_submitted(vc->gfx.guest_fb.dmabuf)) {
-        graphic_hw_gl_block(vc->gfx.dcl.con, true);
+        qemu_console_hw_gl_block(vc->gfx.dcl.con, true);
         qemu_dmabuf_set_draw_submitted(vc->gfx.guest_fb.dmabuf, true);
         gtk_gl_area_set_scanout_mode(vc, true);
     }
diff --git a/ui/gtk.c b/ui/gtk.c
index ef3707b3634..2c61b601f78 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -436,7 +436,7 @@ static void gd_update(DisplayChangeListener *dcl,
 
 static void gd_refresh(DisplayChangeListener *dcl)
 {
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
 }
 
 static GdkDevice *gd_get_pointer(GdkDisplay *dpy)
@@ -602,7 +602,7 @@ void gd_hw_gl_flushed(void *vcon)
         qemu_set_fd_handler(fence_fd, NULL, NULL, NULL);
         close(fence_fd);
         qemu_dmabuf_set_fence_fd(dmabuf, -1);
-        graphic_hw_gl_block(vc->gfx.dcl.con, false);
+        qemu_console_hw_gl_block(vc->gfx.dcl.con, false);
     }
 }
 
@@ -729,27 +729,27 @@ static void gd_set_ui_refresh_rate(VirtualConsole *vc, int refresh_rate)
 {
     QemuUIInfo info;
 
-    if (!dpy_ui_info_supported(vc->gfx.dcl.con)) {
+    if (!qemu_console_ui_info_supported(vc->gfx.dcl.con)) {
         return;
     }
 
-    info = *dpy_get_ui_info(vc->gfx.dcl.con);
+    info = *qemu_console_get_ui_info(vc->gfx.dcl.con);
     info.refresh_rate = refresh_rate;
-    dpy_set_ui_info(vc->gfx.dcl.con, &info, true);
+    qemu_console_set_ui_info(vc->gfx.dcl.con, &info, true);
 }
 
 static void gd_set_ui_size(VirtualConsole *vc, gint width, gint height)
 {
     QemuUIInfo info;
 
-    if (!dpy_ui_info_supported(vc->gfx.dcl.con)) {
+    if (!qemu_console_ui_info_supported(vc->gfx.dcl.con)) {
         return;
     }
 
-    info = *dpy_get_ui_info(vc->gfx.dcl.con);
+    info = *qemu_console_get_ui_info(vc->gfx.dcl.con);
     info.width = width;
     info.height = height;
-    dpy_set_ui_info(vc->gfx.dcl.con, &info, true);
+    qemu_console_set_ui_info(vc->gfx.dcl.con, &info, true);
 }
 
 #if defined(CONFIG_OPENGL)
@@ -2333,7 +2333,7 @@ static GSList *gd_vc_gfx_init(GtkDisplayState *s, VirtualConsole *vc,
     gd_connect_vc_gfx_signals(vc);
     group = gd_vc_menu_init(s, vc, idx, group, view_menu);
 
-    if (dpy_ui_info_supported(vc->gfx.dcl.con)) {
+    if (qemu_console_ui_info_supported(vc->gfx.dcl.con)) {
         zoom_to_fit = true;
     }
     if (s->opts->u.gtk.has_zoom_to_fit) {
diff --git a/ui/sdl2-2d.c b/ui/sdl2-2d.c
index 73052383c2e..68a3aff7151 100644
--- a/ui/sdl2-2d.c
+++ b/ui/sdl2-2d.c
@@ -129,7 +129,7 @@ void sdl2_2d_refresh(DisplayChangeListener *dcl)
     struct sdl2_console *scon = container_of(dcl, struct sdl2_console, dcl);
 
     assert(!scon->opengl);
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
     sdl2_poll_events(scon);
 }
 
diff --git a/ui/sdl2-gl.c b/ui/sdl2-gl.c
index bb066cdd885..1547ad2f6f8 100644
--- a/ui/sdl2-gl.c
+++ b/ui/sdl2-gl.c
@@ -115,7 +115,7 @@ void sdl2_gl_refresh(DisplayChangeListener *dcl)
 
     assert(scon->opengl);
 
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
     if (scon->updates && scon->real_window) {
         scon->updates = 0;
         sdl2_gl_render_surface(scon);
diff --git a/ui/sdl2.c b/ui/sdl2.c
index 89516f95c41..4fcdbd79d3c 100644
--- a/ui/sdl2.c
+++ b/ui/sdl2.c
@@ -604,7 +604,7 @@ static void handle_windowevent(SDL_Event *ev)
                 .width = ev->window.data1,
                 .height = ev->window.data2,
             };
-            dpy_set_ui_info(scon->dcl.con, &info, true);
+            qemu_console_set_ui_info(scon->dcl.con, &info, true);
         }
         sdl2_redraw(scon);
         break;
@@ -632,10 +632,10 @@ static void handle_windowevent(SDL_Event *ev)
         }
         break;
     case SDL_WINDOWEVENT_RESTORED:
-        update_displaychangelistener(&scon->dcl, GUI_REFRESH_INTERVAL_DEFAULT);
+        qemu_console_listener_set_refresh(&scon->dcl, GUI_REFRESH_INTERVAL_DEFAULT);
         break;
     case SDL_WINDOWEVENT_MINIMIZED:
-        update_displaychangelistener(&scon->dcl, 500);
+        qemu_console_listener_set_refresh(&scon->dcl, 500);
         break;
     case SDL_WINDOWEVENT_CLOSE:
         if (qemu_console_is_graphic(scon->dcl.con)) {
diff --git a/ui/spice-display.c b/ui/spice-display.c
index 56d8140fad8..e3716127203 100644
--- a/ui/spice-display.c
+++ b/ui/spice-display.c
@@ -468,7 +468,7 @@ void qemu_spice_cursor_refresh_bh(void *opaque)
         assert(ssd->dcl.con);
         cursor_ref(c);
         qemu_mutex_unlock(&ssd->lock);
-        dpy_cursor_define(ssd->dcl.con, c);
+        qemu_console_set_cursor(ssd->dcl.con, c);
         qemu_mutex_lock(&ssd->lock);
         cursor_unref(c);
     }
@@ -481,7 +481,7 @@ void qemu_spice_cursor_refresh_bh(void *opaque)
         ssd->mouse_x = -1;
         ssd->mouse_y = -1;
         qemu_mutex_unlock(&ssd->lock);
-        dpy_mouse_set(ssd->dcl.con, x, y, true);
+        qemu_console_set_mouse(ssd->dcl.con, x, y, true);
     } else {
         qemu_mutex_unlock(&ssd->lock);
     }
@@ -489,7 +489,7 @@ void qemu_spice_cursor_refresh_bh(void *opaque)
 
 void qemu_spice_display_refresh(SimpleSpiceDisplay *ssd)
 {
-    graphic_hw_update(ssd->dcl.con);
+    qemu_console_hw_update(ssd->dcl.con);
 
     WITH_QEMU_LOCK_GUARD(&ssd->lock) {
         if (QTAILQ_EMPTY(&ssd->updates) && ssd->ds) {
@@ -668,7 +668,7 @@ static int interface_client_monitors_config(QXLInstance *sin,
     QemuUIInfo info;
     int head;
 
-    if (!dpy_ui_info_supported(ssd->dcl.con)) {
+    if (!qemu_console_ui_info_supported(ssd->dcl.con)) {
         return 0; /* == not supported by guest */
     }
 
@@ -676,7 +676,7 @@ static int interface_client_monitors_config(QXLInstance *sin,
         return 1;
     }
 
-    info = *dpy_get_ui_info(ssd->dcl.con);
+    info = *qemu_console_get_ui_info(ssd->dcl.con);
 
     head = qemu_console_get_index(ssd->dcl.con);
     if (mc->num_of_monitors > head) {
@@ -690,7 +690,7 @@ static int interface_client_monitors_config(QXLInstance *sin,
     }
 
     trace_qemu_spice_ui_info(ssd->qxl.id, info.width, info.height);
-    dpy_set_ui_info(ssd->dcl.con, &info, false);
+    qemu_console_set_ui_info(ssd->dcl.con, &info, false);
     return 1;
 }
 
@@ -817,7 +817,7 @@ static void qemu_spice_gl_block(SimpleSpiceDisplay *ssd, bool block)
     } else {
         timer_del(ssd->gl_unblock_timer);
     }
-    graphic_hw_gl_block(ssd->dcl.con, block);
+    qemu_console_hw_gl_block(ssd->dcl.con, block);
 }
 
 static void qemu_spice_gl_unblock_bh(void *opaque)
@@ -861,7 +861,7 @@ static void spice_gl_refresh(DisplayChangeListener *dcl)
         return;
     }
 
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
     if (ssd->gl_updates && ssd->have_surface) {
         qemu_spice_gl_block(ssd, true);
         glFlush();
diff --git a/ui/vnc.c b/ui/vnc.c
index e8c8773a36e..d3dfabede03 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -2325,8 +2325,8 @@ static void set_pixel_format(VncState *vs, int bits_per_pixel,
 
     set_pixel_conversion(vs);
 
-    graphic_hw_invalidate(vs->vd->dcl.con);
-    graphic_hw_update(vs->vd->dcl.con);
+    qemu_console_hw_invalidate(vs->vd->dcl.con);
+    qemu_console_hw_update(vs->vd->dcl.con);
 }
 
 static void pixel_format_message (VncState *vs) {
@@ -2384,7 +2384,7 @@ static int protocol_client_msg(VncState *vs, uint8_t *data, size_t len)
     VncDisplay *vd = vs->vd;
 
     if (data[0] > 3) {
-        update_displaychangelistener(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
+        qemu_console_listener_set_refresh(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
     }
 
     switch (data[0]) {
@@ -2638,9 +2638,9 @@ static int protocol_client_msg(VncState *vs, uint8_t *data, size_t len)
         h = read_u16(data, 4);
 
         trace_vnc_msg_client_set_desktop_size(vs, vs->ioc, w, h, screens);
-        if (dpy_ui_info_supported(vs->vd->dcl.con)) {
+        if (qemu_console_ui_info_supported(vs->vd->dcl.con)) {
             QemuUIInfo info = { .width = w, .height = h };
-            dpy_set_ui_info(vs->vd->dcl.con, &info, false);
+            qemu_console_set_ui_info(vs->vd->dcl.con, &info, false);
             vnc_desktop_resize_ext(vs, 4 /* Request forwarded */);
         } else {
             vnc_desktop_resize_ext(vs, 3 /* Invalid screen layout */);
@@ -3242,14 +3242,14 @@ static void vnc_refresh(DisplayChangeListener *dcl)
     int has_dirty, rects = 0;
 
     if (QTAILQ_EMPTY(&vd->clients)) {
-        update_displaychangelistener(&vd->dcl, VNC_REFRESH_INTERVAL_MAX);
+        qemu_console_listener_set_refresh(&vd->dcl, VNC_REFRESH_INTERVAL_MAX);
         return;
     }
 
-    graphic_hw_update(vd->dcl.con);
+    qemu_console_hw_update(vd->dcl.con);
 
     if (vnc_trylock_display(vd)) {
-        update_displaychangelistener(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
+        qemu_console_listener_set_refresh(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
         return;
     }
 
@@ -3323,7 +3323,7 @@ static void vnc_connect(VncDisplay *vd, QIOChannelSocket *sioc,
               sioc, websocket, vs->auth, vs->subauth);
 
     VNC_DEBUG("New client on socket %p\n", vs->sioc);
-    update_displaychangelistener(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
+    qemu_console_listener_set_refresh(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
     qio_channel_set_blocking(vs->ioc, false, &error_abort);
     g_clear_handle_id(&vs->ioc_tag, g_source_remove);
     if (websocket) {
@@ -3363,7 +3363,7 @@ static void vnc_connect(VncDisplay *vd, QIOChannelSocket *sioc,
         vnc_update_server_surface(vd);
     }
 
-    graphic_hw_update(vd->dcl.con);
+    qemu_console_hw_update(vd->dcl.con);
 
     if (!vs->websocket) {
         vnc_start_protocol(vs);
@@ -3419,7 +3419,7 @@ static void vmstate_change_handler(void *opaque, bool running, RunState state)
     if (state != RUN_STATE_RUNNING) {
         return;
     }
-    update_displaychangelistener(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
+    qemu_console_listener_set_refresh(&vd->dcl, VNC_REFRESH_INTERVAL_BASE);
 }
 
 static bool vnc_display_open(VncDisplay *vd, Error **errp);
diff --git a/hw/display/apple-gfx.m b/hw/display/apple-gfx.m
index 77d80fb7cef..be0061b9db2 100644
--- a/hw/display/apple-gfx.m
+++ b/hw/display/apple-gfx.m
@@ -317,8 +317,8 @@ static void apple_gfx_render_frame_completed_bh(void *opaque)
             copy_mtl_texture_to_surface_mem(s->texture, surface_data(s->surface));
             if (s->gfx_update_requested) {
                 s->gfx_update_requested = false;
-                dpy_gfx_update_full(s->con);
-                graphic_hw_update_done(s->con);
+                qemu_console_update_full(s->con);
+                qemu_console_hw_update_done(s->con);
                 s->new_frame_ready = false;
             } else {
                 s->new_frame_ready = true;
@@ -337,7 +337,7 @@ static bool apple_gfx_fb_update_display(void *opaque)
 
     assert(bql_locked());
     if (s->new_frame_ready) {
-        dpy_gfx_update_full(s->con);
+        qemu_console_update_full(s->con);
         s->new_frame_ready = false;
     } else if (s->pending_frames > 0) {
         s->gfx_update_requested = true;
@@ -380,14 +380,14 @@ static void set_mode(AppleGFXState *s, uint32_t width, uint32_t height)
             (s->texture.storageMode == MTLStorageModeManaged);
     }
 
-    dpy_gfx_replace_surface(s->con, s->surface);
+    qemu_console_set_surface(s->con, s->surface);
 }
 
 static void update_cursor(AppleGFXState *s)
 {
     assert(bql_locked());
-    dpy_mouse_set(s->con, s->pgdisp.cursorPosition.x,
-                  s->pgdisp.cursorPosition.y, qatomic_read(&s->cursor_show));
+    qemu_console_set_mouse(s->con, s->pgdisp.cursorPosition.x,
+                           s->pgdisp.cursorPosition.y, qatomic_read(&s->cursor_show));
 }
 
 static void update_cursor_bh(void *opaque)
@@ -443,7 +443,7 @@ static void set_cursor_glyph(void *opaque)
             }
             px_data += padding_bytes_per_row;
         }
-        dpy_cursor_define(s->con, s->cursor);
+        qemu_console_set_cursor(s->con, s->cursor);
         update_cursor(s);
     }
     [glyph release];
@@ -792,7 +792,7 @@ bool apple_gfx_common_realize(AppleGFXState *s, DeviceState *dev,
         apple_gfx_create_display_mode_array(display_modes, num_display_modes);
     [mode_array release];
 
-    s->con = graphic_console_init(dev, 0, &apple_gfx_fb_ops, s);
+    s->con = qemu_graphic_console_create(dev, 0, &apple_gfx_fb_ops, s);
     return true;
 }
 
diff --git a/ui/cocoa.m b/ui/cocoa.m
index aaf82421589..98394cdc507 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -421,7 +421,7 @@ - (void) selectConsoleLocked:(unsigned int)index
         return;
     }
 
-    unregister_displaychangelistener(&dcl);
+    qemu_console_unregister_listener(&dcl);
     qkbd_state_switch_console(kbd, con);
     qemu_console_register_listener(con, &dcl, &dcl_ops);
     [self notifyMouseModeChange];
@@ -669,8 +669,8 @@ - (void) updateUIInfoLocked
             CVTime period = CVDisplayLinkGetNominalOutputVideoRefreshPeriod(displayLink);
             CVDisplayLinkRelease(displayLink);
             if (!(period.flags & kCVTimeIsIndefinite)) {
-                update_displaychangelistener(&dcl,
-                                             1000 * period.timeValue / period.timeScale);
+                qemu_console_listener_set_refresh(&dcl,
+                                                  1000 * period.timeValue / period.timeScale);
                 info.refresh_rate = (int64_t)1000 * period.timeScale / period.timeValue;
             }
         }
@@ -688,7 +688,7 @@ - (void) updateUIInfoLocked
     info.width = frameSize.width * [[self window] backingScaleFactor];
     info.height = frameSize.height * [[self window] backingScaleFactor];
 
-    dpy_set_ui_info(dcl.con, &info, TRUE);
+    qemu_console_set_ui_info(dcl.con, &info, TRUE);
 }
 
 #pragma clang diagnostic pop
@@ -2056,7 +2056,7 @@ static void cocoa_refresh(DisplayChangeListener *dcl)
     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
 
     COCOA_DEBUG("qemu_cocoa: cocoa_refresh\n");
-    graphic_hw_update(dcl->con);
+    qemu_console_hw_update(dcl->con);
 
     if (cbchangecount != [[NSPasteboard generalPasteboard] changeCount]) {
         qemu_clipboard_info_unref(cbinfo);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:48:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304993.1577613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTX-0005M5-LA; Sat, 09 May 2026 22:48:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304993.1577613; Sat, 09 May 2026 22:48:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTX-0005J3-EL; Sat, 09 May 2026 22:48:47 +0000
Received: by outflank-mailman (input) for mailman id 1304993;
 Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqTT-0004xs-TW
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqTT-008qns-AU; Sun, 10 May 2026 00:48:43 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb933-2eae-0a2a0a5409dd-0a2a450b82fa-44
 for <multiple-recipients>; Sun, 10 May 2026 00:48:42 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9c9-212f-0a2a450b0019-5a9b5cc7e070-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:41 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wzF-0RGR; Sat, 09 May 2026 22:48:27 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhI5-2o9a;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=Oq7VlckxNB8n7bgOcYWjANYFO3DaRLJberU5GacjSuU=; b=jOrFkvKSfeCH2LUZsk7Qa4q1si
	1cn2IXB0FgOjsTvTZrRNh7hhDnUF8iTy5VNQzVGLiQ984kbOjdsQRGiboozozJGahDXezf18ODPOP
	vLZ1u/o/ZKszo6dSJzCMpUstTESVub+zW6qh8ELRo/vVCiPiwiPqaopf43w87euwlcuz+Oa6kMbpx
	mDCdrHYDgvg45+ZMLcU/FFslcL9x2/h7QtNRBZ21TczgtYTF+SONYyGOjwayzVfwqLZVyvg45wqBd
	Wn9xGyIKM7wr67talThaujuyRgCWgtvctcUaOov/T4ngH7RYFyLBNTuQ7p8OJ1mcIMpwBU2PYI0q8
	N7Tvd8hQ==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 13/30] KVM: x86: Fix KVM clock precision in get_kvmclock() with TSC scaling
Date: Sat,  9 May 2026 23:46:39 +0100
Message-ID: <20260509224824.3264567-14-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-42698a/1778366922-21B86F3B-F70B1F2A/0/0
X-purgate-type: clean
X-purgate-size: 4576

From: David Woodhouse <dwmw@amazon.co.uk>

When in master clock mode, the KVM clock is defined in terms of the
guest TSC. But get_kvmclock() was computing it from the host TSC
without applying TSC scaling, leading to a systemic drift from the
values the guest computes from its own TSC.

Store the VM's TSC scaling ratio in kvm_arch and precompute the
guest-TSC-based mul/shift in pvclock_update_vm_gtod_copy(). Use these
in get_kvmclock() to scale the host TSC delta to guest TSC before
converting to nanoseconds.

This avoids "definition C" of the KVM clock described in the
earlier commit "KVM: x86/xen: Do not corrupt KVM clock in
kvm_xen_shared_info_init()".

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/include/asm/kvm_host.h |  4 +++
 arch/x86/kvm/x86.c              | 50 +++++++++++++++++++++++++++++----
 2 files changed, 49 insertions(+), 5 deletions(-)

diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 37264212c7df..5348fd5ea3f3 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -1490,6 +1490,7 @@ struct kvm_arch {
 	u64 last_tsc_write;
 	u32 last_tsc_khz;
 	u64 last_tsc_offset;
+	u64 last_tsc_scaling_ratio;
 	u64 cur_tsc_nsec;
 	u64 cur_tsc_write;
 	u64 cur_tsc_offset;
@@ -1504,6 +1505,9 @@ struct kvm_arch {
 	bool use_master_clock;
 	u64 master_kernel_ns;
 	u64 master_cycle_now;
+	u64 master_tsc_scaling_ratio;
+	s8  master_tsc_shift;
+	u32 master_tsc_mul;
 
 #ifdef CONFIG_KVM_HYPERV
 	struct kvm_hv hyperv;
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index f2653eaccdf8..09b00906b1de 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2781,6 +2781,7 @@ static void __kvm_synchronize_tsc(struct kvm_vcpu *vcpu, u64 offset, u64 tsc,
 	kvm->arch.last_tsc_write = tsc;
 	kvm->arch.last_tsc_khz = vcpu->arch.virtual_tsc_khz;
 	kvm->arch.last_tsc_offset = offset;
+	kvm->arch.last_tsc_scaling_ratio = vcpu->arch.l1_tsc_scaling_ratio;
 
 	vcpu->arch.last_guest_tsc = tsc;
 
@@ -3109,6 +3110,8 @@ static bool kvm_get_walltime_and_clockread(struct timespec64 *ts,
  *
  */
 
+static unsigned long get_cpu_tsc_khz(void);
+
 static void pvclock_update_vm_gtod_copy(struct kvm *kvm)
 {
 #ifdef CONFIG_X86_64
@@ -3132,9 +3135,28 @@ static void pvclock_update_vm_gtod_copy(struct kvm *kvm)
 				&& !ka->backwards_tsc_observed
 				&& !ka->boot_vcpu_runs_old_kvmclock;
 
-	if (ka->use_master_clock)
+	if (ka->use_master_clock) {
+		u64 tsc_hz;
+
 		atomic_set(&kvm_guest_has_master_clock, 1);
 
+		/*
+		 * Copy the scaling ratio and precompute the mul/shift for
+		 * converting guest TSC to nanoseconds. These are used by
+		 * get_kvmclock() to compute kvmclock from the host TSC
+		 * without needing a vCPU reference.
+		 */
+		ka->master_tsc_scaling_ratio = ka->last_tsc_scaling_ratio;
+		tsc_hz = (u64)get_cpu_tsc_khz() * 1000;
+		if (tsc_hz && kvm_caps.has_tsc_control)
+			tsc_hz = kvm_scale_tsc(tsc_hz,
+					       ka->master_tsc_scaling_ratio);
+		if (tsc_hz)
+			kvm_get_time_scale(NSEC_PER_SEC, tsc_hz,
+					   &ka->master_tsc_shift,
+					   &ka->master_tsc_mul);
+	}
+
 	vclock_mode = pvclock_gtod_data.clock.vclock_mode;
 	trace_kvm_update_master_clock(ka->use_master_clock, vclock_mode,
 					vcpus_matched);
@@ -3235,10 +3257,28 @@ static void get_kvmclock(struct kvm *kvm, struct kvm_clock_data *data)
 			data->flags |= KVM_CLOCK_TSC_STABLE;
 			hv_clock.tsc_timestamp = ka->master_cycle_now;
 			hv_clock.system_time = ka->master_kernel_ns + ka->kvmclock_offset;
-			kvm_get_time_scale(NSEC_PER_SEC, get_cpu_tsc_khz() * 1000LL,
-					   &hv_clock.tsc_shift,
-					   &hv_clock.tsc_to_system_mul);
-			data->clock = __pvclock_read_cycles(&hv_clock, data->host_tsc);
+
+			/*
+			 * Use the precomputed guest-TSC-based mul/shift
+			 * so that the kvmclock value matches what the
+			 * guest computes from its own TSC.
+			 */
+			hv_clock.tsc_shift = ka->master_tsc_shift;
+			hv_clock.tsc_to_system_mul = ka->master_tsc_mul;
+
+			if (kvm_caps.has_tsc_control) {
+				u64 tsc_delta = data->host_tsc - ka->master_cycle_now;
+
+				tsc_delta = kvm_scale_tsc(tsc_delta,
+							  ka->master_tsc_scaling_ratio);
+				data->clock = hv_clock.system_time +
+					pvclock_scale_delta(tsc_delta,
+							    hv_clock.tsc_to_system_mul,
+							    hv_clock.tsc_shift);
+			} else {
+				data->clock = __pvclock_read_cycles(&hv_clock,
+								    data->host_tsc);
+			}
 
 			put_cpu();
 		} else {
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:48:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304990.1577591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTW-00050F-Kr; Sat, 09 May 2026 22:48:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304990.1577591; Sat, 09 May 2026 22:48:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTW-000507-FG; Sat, 09 May 2026 22:48:46 +0000
Received: by outflank-mailman (input) for mailman id 1304990;
 Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqTU-0004xv-RP
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqTU-0026cu-8W; Sun, 10 May 2026 00:48:44 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb8f5-5cb7-0a2a0a5109dd-0a2a4506e2c6-30
 for <multiple-recipients>; Sun, 10 May 2026 00:48:44 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9cb-7371-0a2a45060019-5a9b5cc79ecc-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:44 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wzH-0U6f; Sat, 09 May 2026 22:48:28 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhID-35Yi;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=D3ZD9svrsYhkrCggc0KSRTT7FBRjbp88Q/98SjyDptU=; b=NrR9w8Khx8VGuwXJ3A16aybrkh
	ouMjKpQP6w9R9TcqzykS72xA/q0gH4AnT/doDfI3e5MH+ZYve9uiC4MpDjdR9lV6ySGhrydJumLyu
	NRE6qOZhbMnyVxh0P9LHfCe6NExErdMqYT1Nw3g8Wv/ITqy9kuvgl0DnJY4N544z/iucLmfyYY4c4
	YfuyAi3lxDKP1xpkaJePxhXdW73RHEX+f4rOvW6iiVc02rg0BLNX/qjWlRfklA0qK5eTITC9i6vD3
	6pSwy+DBngCkFGmK2VnZxRsO13YK8EaftPUcsEt0y86xLTVynuB/ogM2Ne36wGplkptXKQWhZVUSB
	R/Rz284g==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 15/30] KVM: x86: Fix compute_guest_tsc() to handle negative time deltas
Date: Sat,  9 May 2026 23:46:41 +0100
Message-ID: <20260509224824.3264567-16-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-16d1c6/1778366924-8C07ED75-342E4FF8/0/0
X-purgate-type: clean
X-purgate-size: 1886

From: David Woodhouse <dwmw@amazon.co.uk>

The compute_guest_tsc() function computes the guest TSC at a given
kernel_ns timestamp. When the master clock reference point
(master_kernel_ns) is earlier than vcpu->arch.this_tsc_nsec, the delta
is negative. Since pvclock_scale_delta() takes a u64, the negative
value wraps to a huge positive number, producing a wildly wrong result.

Change the return type to s64 and handle negative deltas explicitly by
negating the delta, scaling it, and subtracting from this_tsc_write.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/kvm/x86.c | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 2bbc2c7ac449..e281c49561fa 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2586,13 +2586,23 @@ static int kvm_set_tsc_khz(struct kvm_vcpu *vcpu, u32 user_tsc_khz)
 	return set_tsc_khz(vcpu, user_tsc_khz, use_scaling);
 }
 
-static u64 compute_guest_tsc(struct kvm_vcpu *vcpu, s64 kernel_ns)
+static s64 compute_guest_tsc(struct kvm_vcpu *vcpu, s64 kernel_ns)
 {
-	u64 tsc = pvclock_scale_delta(kernel_ns-vcpu->arch.this_tsc_nsec,
-				      vcpu->arch.virtual_tsc_mult,
-				      vcpu->arch.virtual_tsc_shift);
-	tsc += vcpu->arch.this_tsc_write;
-	return tsc;
+	s64 delta_ns = kernel_ns - vcpu->arch.this_tsc_nsec;
+	u64 tsc;
+
+	/* Handle negative deltas gracefully (master clock ref may be earlier) */
+	if (delta_ns < 0) {
+		tsc = pvclock_scale_delta(-delta_ns,
+					  vcpu->arch.virtual_tsc_mult,
+					  vcpu->arch.virtual_tsc_shift);
+		return vcpu->arch.this_tsc_write - tsc;
+	}
+
+	tsc = pvclock_scale_delta(delta_ns,
+				  vcpu->arch.virtual_tsc_mult,
+				  vcpu->arch.virtual_tsc_shift);
+	return vcpu->arch.this_tsc_write + tsc;
 }
 
 #ifdef CONFIG_X86_64
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:48:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304998.1577675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTb-00073C-UM; Sat, 09 May 2026 22:48:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304998.1577675; Sat, 09 May 2026 22:48:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTb-00071C-Lg; Sat, 09 May 2026 22:48:51 +0000
Received: by outflank-mailman (input) for mailman id 1304998;
 Sat, 09 May 2026 22:48:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wLqTX-00058x-8n
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:48:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqTW-008qns-Lp; Sun, 10 May 2026 00:48:46 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffb9ce-2eae-0a2a0a5409dd-0a2a4502d38a-0
 for <multiple-recipients>; Sun, 10 May 2026 00:48:46 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffb9cd-af86-0a2a45020019-5a9b32228c18-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:45 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-000000060LE-0JLi; Sat, 09 May 2026 22:48:27 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhIL-3UdM;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=Sender:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:
	From:Reply-To:Cc:Content-ID:Content-Description;
	bh=ryZ6RDjir7eBEFWKcHfpnqGgBXXchIxkMDMcoDjTga0=; b=oYH6BxSE1/APIWTTtlkr9hOcnO
	GVYavHsEtJ1rcc7nBZtYhkeXnYPtdBB0VJfIJ1yTlSI/efp3CMvNOrSGpTjYv+L3IkYoJU2jM+k9w
	D1JozTm+DSVNSXz8TrpuEO+XGJFQJHZVDEdzqV9324DIRBPFASZorppyCmEWb1PGax+JBNaviBtfe
	rtlmPRds0TKNavS5M8SBASEBFeeib8EYiDyB9u4bnAhgHEgz3gM3+1IXGJntw4buZeRH+mSoezzun
	a9HG9lmrKzQe8EMNelYypA8qTUCAdCJcXoHPWJVu3c8AaBGq6ROOlyg7Bgte+C2xigcy3oxXFr7bB
	8v+W0vfw==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 17/30] KVM: x86: Simplify and comment kvm_get_time_scale()
Date: Sat,  9 May 2026 23:46:43 +0100
Message-ID: <20260509224824.3264567-18-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-720697/1778366926-A9B70161-7656F2D5/0/0
X-purgate-type: clean
X-purgate-size: 3192

From: David Woodhouse <dwmw@amazon.co.uk>

The kvm_get_time_scale() function was entirely opaque. Add comments
explaining what it does: compute a fixed-point multiplier and shift for
converting TSC ticks to nanoseconds via pvclock_scale_delta().

Rename the local variables from the cryptic tps64/tps32/scaled64 to
base_hz_u64/base32/scaled_hz_u64 to make the code self-documenting.
The "tps32" name stood for "Ticks Per Second" but was misleading since
it held the shifted base frequency, not a tick count.

No functional change.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
---
 arch/x86/kvm/x86.c | 55 +++++++++++++++++++++++++++++++++-------------
 1 file changed, 40 insertions(+), 15 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 8e4993ef4f6b..980fc22ee05b 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2472,32 +2472,57 @@ static uint32_t div_frac(uint32_t dividend, uint32_t divisor)
 	return dividend;
 }
 
-static void kvm_get_time_scale(uint64_t scaled_hz, uint64_t base_hz,
+static void kvm_get_time_scale(u64 scaled_hz, u64 base_hz,
 			       s8 *pshift, u32 *pmultiplier)
 {
-	uint64_t scaled64;
-	int32_t  shift = 0;
-	uint64_t tps64;
-	uint32_t tps32;
+	u64 scaled_hz_u64 = scaled_hz;
+	s32 shift = 0;
+	u64 base_hz_u64;
+	u32 base32;
 
-	tps64 = base_hz;
-	scaled64 = scaled_hz;
-	while (tps64 > scaled64*2 || tps64 & 0xffffffff00000000ULL) {
-		tps64 >>= 1;
+	/*
+	 * This function calculates a fixed-point multiplier and shift such
+	 * that:
+	 *   time_ns = (tsc_cycles << shift) * multiplier >> 32
+	 *
+	 * Where tsc_cycles tick at base_hz, and time_ns should count at
+	 * scaled_hz (typically NSEC_PER_SEC for a TSC→nanoseconds conversion).
+	 *
+	 * The multiplier is: (scaled_hz << 32) / base_hz, adjusted by shift
+	 * to keep everything in range.
+	 */
+
+	base_hz_u64 = base_hz;
+
+	/*
+	 * Start by shifting base_hz right until it fits in 32 bits, and
+	 * is lower than double the target rate. This introduces a negative
+	 * shift value which would result in pvclock_scale_delta() shifting
+	 * the actual tick count right before performing the multiplication.
+	 */
+	while (base_hz_u64 > scaled_hz_u64 * 2 || base_hz_u64 >> 32) {
+		base_hz_u64 >>= 1;
 		shift--;
 	}
 
-	tps32 = (uint32_t)tps64;
-	while (tps32 <= scaled64 || scaled64 & 0xffffffff00000000ULL) {
-		if (scaled64 & 0xffffffff00000000ULL || tps32 & 0x80000000)
-			scaled64 >>= 1;
+	/* Now the shifted base_hz fits in 32 bits. */
+	base32 = (u32)base_hz_u64;
+
+	/*
+	 * Next, shift scaled_hz right until it fits in 32 bits, and ensure
+	 * that the shifted base_hz is not larger (so that the result of the
+	 * final division also fits in 32 bits).
+	 */
+	while (base32 <= scaled_hz_u64 || scaled_hz_u64 >> 32) {
+		if (scaled_hz_u64 >> 32 || base32 & BIT(31))
+			scaled_hz_u64 >>= 1;
 		else
-			tps32 <<= 1;
+			base32 <<= 1;
 		shift++;
 	}
 
 	*pshift = shift;
-	*pmultiplier = div_frac(scaled64, tps32);
+	*pmultiplier = div_frac(scaled_hz_u64, base32);
 }
 
 #ifdef CONFIG_X86_64
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:48:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304988.1577587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTW-0004z2-DV; Sat, 09 May 2026 22:48:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304988.1577587; Sat, 09 May 2026 22:48:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTW-0004yk-7u; Sat, 09 May 2026 22:48:46 +0000
Received: by outflank-mailman (input) for mailman id 1304988;
 Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqTV-0004xx-1k
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqTU-00DG64-De; Sun, 10 May 2026 00:48:44 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb8ed-e002-0a2a0a5209dd-0a2a450aedf4-32
 for <multiple-recipients>; Sun, 10 May 2026 00:48:44 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9ca-56b3-0a2a450a0019-5a9b5cc7c8dc-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:43 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wzE-0SAJ; Sat, 09 May 2026 22:48:34 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhI1-2gsb;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=zKn6rM5SNp1NUsYTwVeNP1ZCWEOK4E9JR5PloHDb+Ck=; b=nkedMhJt8F9vSW46ftqs+afk74
	R2kXr8DGF/BR2ZbLetJk7cK8mb7U8wrd+BjH0SLOd2HT+EGkf+eHfiV6BHYj9S3aMKR1w+7RbmCgL
	WfZdFYRkUyitRkvhEwFbn8/RZK606OSsjn+RxBhvg4DRPETaEapIcUUaSBInJkB6+TK5nUtBNgb72
	fA3ZOT6czVLlApEuNGzRjCGH87yrxPogqqE0x+gC0ah5O5nNxLIWkSQaGtRdHx9srHNiP4bM1d0lV
	h0qnlA792499cVUurkX1eNKfWL1N3jMb9S/HMH93MHG6mUxkvvyxBtKCKH195l2JIeGXuHxtogYJU
	dinfu75Q==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 12/30] KVM: x86: Use get_kvmclock_base_ns() as fallback in get_kvmclock()
Date: Sat,  9 May 2026 23:46:38 +0100
Message-ID: <20260509224824.3264567-13-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-4011c0/1778366924-725748B7-EE4BF64C/0/0
X-purgate-type: clean
X-purgate-size: 1265

From: David Woodhouse <dwmw@amazon.co.uk>

If kvm_get_walltime_and_clockread() fails unexpectedly (the WARN case),
restart the seqcount loop rather than falling back to a raw rdtsc()
which would set KVM_CLOCK_TSC_STABLE without KVM_CLOCK_REALTIME.

That code path could never actually be reached in practice: on 64-bit
hosts, use_master_clock can only be true when the clocksource is
TSC-based, and on 32-bit hosts, use_master_clock is never set. But
the fallback to raw rdtsc() was misleading and the resulting flags
combination was inconsistent.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/kvm/x86.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 9b395c00ccf2..f2653eaccdf8 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3225,7 +3225,8 @@ static void get_kvmclock(struct kvm *kvm, struct kvm_clock_data *data)
 				data->realtime = ts.tv_nsec + NSEC_PER_SEC * ts.tv_sec;
 				data->flags |= KVM_CLOCK_REALTIME | KVM_CLOCK_HOST_TSC;
 			} else if (WARN_ON_ONCE(!read_seqcount_retry(&ka->pvclock_sc, seq))) {
-				data->host_tsc = rdtsc();
+				put_cpu();
+				continue;
 			}
 #else
 			data->host_tsc = rdtsc();
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:48:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304995.1577627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTY-0005aA-G0; Sat, 09 May 2026 22:48:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304995.1577627; Sat, 09 May 2026 22:48:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTY-0005YC-1a; Sat, 09 May 2026 22:48:48 +0000
Received: by outflank-mailman (input) for mailman id 1304995;
 Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqTU-0004xt-3C
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqTT-002bXZ-Gi; Sun, 10 May 2026 00:48:43 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb8a3-bab6-0a2a0a5309dd-0a2a45028e02-46
 for <multiple-recipients>; Sun, 10 May 2026 00:48:42 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9ca-af86-0a2a45020019-5a9b5cc7d974-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:42 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTE-00000008wzN-1WDo; Sat, 09 May 2026 22:48:30 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTD-0000000DhJ3-1Fbj;
 Sat, 09 May 2026 23:48:27 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=6tRK559BiNuC9vPX6A/P9bB+NgbxmEIjWbF4mmHiKwg=; b=XdZwbo1A+QS0GQ4rSXUX4N1mON
	+BlsbG3jDpcSWQhV5QxKCntdc8Vov11hWedcSRVSsOFPwppBqsZ6Nis+O8bwl2CCSQ5hYR8W++geD
	vukV7rjaZBOrvt6I9xowd93yPY0C0Lzh/iojh9p1uQWpLnPfReYKg8eWZhCQMUPCsNXSqu/Y7toLg
	E6Frch+y/WEDPUhLCG957OQIe+Z+QGM3b4WJ3AXNaeyT5E4hHAIpCsvm122/2Vp2ysz/lvM+nk7kL
	WDy8f4TtKpFr0JcieI8f8+0F+JBj1RNoxvcmBf9YzAQnVG0oBiA+L4x/Lzr26MdYoNPIdFM9YVMzi
	3sLkfLjQ==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 28/30] KVM: x86: Remove runtime Xen TSC frequency CPUID update
Date: Sat,  9 May 2026 23:46:54 +0100
Message-ID: <20260509224824.3264567-29-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-720697/1778366922-7BF66161-A2170A75/0/0
X-purgate-type: clean
X-purgate-size: 3108

From: David Woodhouse <dwmw@amazon.co.uk>

Remove the code in kvm_cpuid() that dynamically updates the Xen TSC
info CPUID leaf at runtime. This code was updating the wrong sub-leaf
anyway (0x40000x03/2 EAX is the *host* TSC frequency per the Xen ABI,
not the guest frequency which belongs in 0x40000x03/0 ECX).

Userspace now has all the information it needs to populate the Xen TSC
info leaves (and the generic 0x40000010 timing leaf) at vCPU setup time:

  - KVM_GET_CLOCK_GUEST returns the pvclock_vcpu_time_info structure
    containing tsc_to_system_mul and tsc_shift (Xen leaf index 1)
  - KVM_VCPU_TSC_EFFECTIVE_FREQ returns the effective TSC and bus
    frequencies in kHz (Xen leaf index 2, and 0x40000010)
  - KVM_VCPU_TSC_SCALE returns the raw hardware scaling ratio for
    precise arithmetic (VMClock)

This eliminates the last instance of KVM modifying guest CPUID entries
at runtime for timing information.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/kvm/cpuid.c | 16 ----------------
 arch/x86/kvm/xen.h   | 13 -------------
 2 files changed, 29 deletions(-)

diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index 621d950ec692..826637a0b72d 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -2117,22 +2117,6 @@ bool kvm_cpuid(struct kvm_vcpu *vcpu, u32 *eax, u32 *ebx,
 		} else if (function == 0x80000007) {
 			if (kvm_hv_invtsc_suppressed(vcpu))
 				*edx &= ~feature_bit(CONSTANT_TSC);
-		} else if (IS_ENABLED(CONFIG_KVM_XEN) &&
-			   kvm_xen_is_tsc_leaf(vcpu, function)) {
-			/*
-			 * Update guest TSC frequency information if necessary.
-			 * Ignore failures, there is no sane value that can be
-			 * provided if KVM can't get the TSC frequency.
-			 */
-			if (kvm_check_request(KVM_REQ_CLOCK_UPDATE, vcpu))
-				kvm_guest_time_update(vcpu);
-
-			if (index == 1) {
-				*ecx = vcpu->arch.pvclock_tsc_mul;
-				*edx = vcpu->arch.pvclock_tsc_shift;
-			} else if (index == 2) {
-				*eax = div_u64(vcpu->arch.hw_tsc_hz, 1000);
-			}
 		}
 	} else {
 		*eax = *ebx = *ecx = *edx = 0;
diff --git a/arch/x86/kvm/xen.h b/arch/x86/kvm/xen.h
index 59e6128a7bd3..f372855857a8 100644
--- a/arch/x86/kvm/xen.h
+++ b/arch/x86/kvm/xen.h
@@ -50,14 +50,6 @@ static inline void kvm_xen_sw_enable_lapic(struct kvm_vcpu *vcpu)
 		kvm_xen_inject_vcpu_vector(vcpu);
 }
 
-static inline bool kvm_xen_is_tsc_leaf(struct kvm_vcpu *vcpu, u32 function)
-{
-	return static_branch_unlikely(&kvm_xen_enabled.key) &&
-	       vcpu->arch.xen.cpuid.base &&
-	       function <= vcpu->arch.xen.cpuid.limit &&
-	       function == (vcpu->arch.xen.cpuid.base | XEN_CPUID_LEAF(3));
-}
-
 static inline bool kvm_xen_msr_enabled(struct kvm *kvm)
 {
 	return static_branch_unlikely(&kvm_xen_enabled.key) &&
@@ -177,11 +169,6 @@ static inline bool kvm_xen_timer_enabled(struct kvm_vcpu *vcpu)
 {
 	return false;
 }
-
-static inline bool kvm_xen_is_tsc_leaf(struct kvm_vcpu *vcpu, u32 function)
-{
-	return false;
-}
 #endif
 
 int kvm_xen_hypercall(struct kvm_vcpu *vcpu);
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:48:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304989.1577598 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTX-00056O-0T; Sat, 09 May 2026 22:48:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304989.1577598; Sat, 09 May 2026 22:48:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTW-00055l-Np; Sat, 09 May 2026 22:48:46 +0000
Received: by outflank-mailman (input) for mailman id 1304989;
 Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqTU-0004xw-Uj
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqTU-008qns-Bp; Sun, 10 May 2026 00:48:44 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb933-2eae-0a2a0a5409dd-0a2a450b82fa-46
 for <multiple-recipients>; Sun, 10 May 2026 00:48:44 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9cc-212f-0a2a450b0019-5a9b5cc7a04e-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:44 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wzM-0Uid; Sat, 09 May 2026 22:48:28 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTD-0000000DhIv-0xnG;
 Sat, 09 May 2026 23:48:27 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=CvARcxGjW2rk76ZnbjloHmvArQA7vOXWK2cN1ZjzCjA=; b=JwWsCSTN0jP5CaRFdIC/kq7DJK
	1ckbZPZwhNr+bWo+2Nhf9ylITeR8BeXmgLFP+SLIQy4R3DZLic8UmfJCBL5L/HKQUEiJRG0E/oNuN
	+lwLHmVzILBn/0iCKWTWSrft7nOvyYmtLxwuFUVmSHB8ERSs5oQFnzVtmRGkTjYFBlwInjCp4Xkjk
	DZsdQFZY+Wi0hj8gEaa+ri3S19xehlprECPd42H2HjvqS913SmW4HTcoBeS5SSq8WxjSdNReZYJMO
	P7XDr1BLUNqOsGb6V0VGGUsZ6d3Y6v65PQFbi1ulY6TtP16QxEvcTW/cb1Z5dK786u3iT28gS5bBR
	/Fo08+AA==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 26/30] KVM: x86: Avoid redundant masterclock updates from multiple vCPUs
Date: Sat,  9 May 2026 23:46:52 +0100
Message-ID: <20260509224824.3264567-27-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-42698a/1778366924-1B77AF3B-836CBEAA/0/0
X-purgate-type: clean
X-purgate-size: 4493

From: David Woodhouse <dwmw@amazon.co.uk>

When a masterclock update is triggered (e.g. by the clocksource change
notifier), KVM_REQ_MASTERCLOCK_UPDATE is set on all vCPUs. Without this
fix, each vCPU independently processes the request and redundantly
re-executes the entire pvclock_update_vm_gtod_copy() sequence, serialized
only by tsc_write_lock. Each redundant re-snapshot of the master clock
reference point introduces potential clock drift.

Fix this by having __kvm_start_pvclock_update() check, after acquiring
the lock, whether the requesting vCPU's KVM_REQ_MASTERCLOCK_UPDATE is
still set. If another vCPU already did the update and cleared it, bail
out. Otherwise, clear the request on all other vCPUs before proceeding.

The caller in vcpu_enter_guest() now uses kvm_test_request() (non-clearing)
since the clearing is done inside __kvm_start_pvclock_update() under the
lock.

Suggested-by: Dongli Zhang <dongli.zhang@oracle.com>
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/kvm/x86.c | 56 ++++++++++++++++++++++++++++++++++++----------
 1 file changed, 44 insertions(+), 12 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 7d9ec0638d28..77dfd4455a4e 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3259,10 +3259,39 @@ static void kvm_make_mclock_inprogress_request(struct kvm *kvm)
 	kvm_make_all_cpus_request(kvm, KVM_REQ_MCLOCK_INPROGRESS);
 }
 
-static void __kvm_start_pvclock_update(struct kvm *kvm)
+static void kvm_clear_mclock_inprogress_request(struct kvm *kvm)
 {
+	struct kvm_vcpu *vcpu;
+	unsigned long i;
+
+	kvm_for_each_vcpu(i, vcpu, kvm)
+		kvm_clear_request(KVM_REQ_MCLOCK_INPROGRESS, vcpu);
+}
+
+static bool __kvm_start_pvclock_update(struct kvm *kvm, struct kvm_vcpu *requesting_vcpu)
+{
+	struct kvm_vcpu *vcpu;
+	unsigned long i;
+
 	raw_spin_lock_irq(&kvm->arch.tsc_write_lock);
+
+	/*
+	 * If another vCPU already did the update while we were waiting
+	 * for the lock, our request will have been cleared. Bail out.
+	 */
+	if (requesting_vcpu &&
+	    !kvm_test_request(KVM_REQ_MASTERCLOCK_UPDATE, requesting_vcpu)) {
+		kvm_clear_mclock_inprogress_request(kvm);
+		raw_spin_unlock_irq(&kvm->arch.tsc_write_lock);
+		return false;
+	}
+
+	/* The update is VM-wide; prevent other vCPUs from redoing it. */
+	kvm_for_each_vcpu(i, vcpu, kvm)
+		kvm_clear_request(KVM_REQ_MASTERCLOCK_UPDATE, vcpu);
+
 	write_seqcount_begin(&kvm->arch.pvclock_sc);
+	return true;
 }
 
 static void kvm_start_pvclock_update(struct kvm *kvm)
@@ -3270,7 +3299,7 @@ static void kvm_start_pvclock_update(struct kvm *kvm)
 	kvm_make_mclock_inprogress_request(kvm);
 
 	/* no guest entries from this point */
-	__kvm_start_pvclock_update(kvm);
+	__kvm_start_pvclock_update(kvm, NULL);
 }
 
 static void kvm_end_pvclock_update(struct kvm *kvm)
@@ -3279,22 +3308,25 @@ static void kvm_end_pvclock_update(struct kvm *kvm)
 	struct kvm_vcpu *vcpu;
 	unsigned long i;
 
-	write_seqcount_end(&ka->pvclock_sc);
-	raw_spin_unlock_irq(&ka->tsc_write_lock);
 	kvm_for_each_vcpu(i, vcpu, kvm)
 		kvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu);
 
 	/* guest entries allowed */
-	kvm_for_each_vcpu(i, vcpu, kvm)
-		kvm_clear_request(KVM_REQ_MCLOCK_INPROGRESS, vcpu);
+	kvm_clear_mclock_inprogress_request(kvm);
+
+	write_seqcount_end(&ka->pvclock_sc);
+	raw_spin_unlock_irq(&ka->tsc_write_lock);
 }
 
-static void kvm_update_masterclock(struct kvm *kvm)
+static void kvm_update_masterclock(struct kvm *kvm, struct kvm_vcpu *vcpu)
 {
 	kvm_hv_request_tsc_page_update(kvm);
-	kvm_start_pvclock_update(kvm);
-	pvclock_update_vm_gtod_copy(kvm);
-	kvm_end_pvclock_update(kvm);
+	kvm_make_mclock_inprogress_request(kvm);
+
+	if (__kvm_start_pvclock_update(kvm, vcpu)) {
+		pvclock_update_vm_gtod_copy(kvm);
+		kvm_end_pvclock_update(kvm);
+	}
 }
 
 /*
@@ -11485,8 +11517,8 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)
 			kvm_mmu_free_obsolete_roots(vcpu);
 		if (kvm_check_request(KVM_REQ_MIGRATE_TIMER, vcpu))
 			__kvm_migrate_timers(vcpu);
-		if (kvm_check_request(KVM_REQ_MASTERCLOCK_UPDATE, vcpu))
-			kvm_update_masterclock(vcpu->kvm);
+		if (kvm_test_request(KVM_REQ_MASTERCLOCK_UPDATE, vcpu))
+			kvm_update_masterclock(vcpu->kvm, vcpu);
 		if (kvm_check_request(KVM_REQ_GLOBAL_CLOCK_UPDATE, vcpu))
 			kvm_gen_kvmclock_update(vcpu);
 		if (kvm_check_request(KVM_REQ_CLOCK_UPDATE, vcpu)) {
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:48:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304992.1577606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTX-0005C8-BL; Sat, 09 May 2026 22:48:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304992.1577606; Sat, 09 May 2026 22:48:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTX-0005B4-4l; Sat, 09 May 2026 22:48:47 +0000
Received: by outflank-mailman (input) for mailman id 1304992;
 Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqTV-0004xy-8i
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqTU-008qns-Lo; Sun, 10 May 2026 00:48:44 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb87f-2eae-0a2a0a5409dd-0a2a4501d5b6-32
 for <multiple-recipients>; Sun, 10 May 2026 00:48:44 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9cb-c1f2-0a2a45010019-5a9b5cc7a03e-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:43 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wz9-0U27; Sat, 09 May 2026 22:48:28 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhHd-1ExZ;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=VZW3BYOsJBjCxrX0Ak3Y7mLfSYoVJvjVzeACh4h0wdA=; b=F8o2huYCyGm1b+IKEhxif0OKZe
	1/VjHOyqiLIQDr1VUqRvk7k4ZwOHLp8x2xUQoPmNubIdn/Y9PGOOKLUCPS0Bd6huZraf2VXT69Tcy
	PrYoG0wU7gMusTyFns2Sk+299Y82Z4fHtRYuTFtZd8fvUT/6x9Lu9Uqy/UPrHonTZFD7kEszHE5Es
	s0CbR3wEQ7PbLtr3p6fRXS1cxQxf/q+QIwcW3ESwiOvm2ZnZymrCuIOOmVlJ0ZsoEgLs3M07cKcok
	GwmW2q+R9tkBkUh3woXo6m/KggKAhiNjMtxICUNY9cdd96vI/ocFJGk0T4R8oFSPGI1cygwDPHqGH
	zDppAOQA==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 06/30] KVM: x86: Explicitly disable TSC scaling without CONSTANT_TSC
Date: Sat,  9 May 2026 23:46:32 +0100
Message-ID: <20260509224824.3264567-7-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d62444/1778366924-AEF58FF4-D61C0A67/0/0
X-purgate-type: clean
X-purgate-size: 1884

From: David Woodhouse <dwmw@amazon.co.uk>

KVM does make an attempt to cope with non-constant TSC, and has
notifiers to handle host TSC frequency changes. However, it *only*
adjusts the KVM clock, and doesn't adjust TSC frequency scaling when
the host changes.

This is presumably because non-constant TSCs were fixed in hardware
long before TSC scaling was implemented, so there should never be real
CPUs which have TSC scaling but *not* CONSTANT_TSC.

Such a combination could potentially happen in some odd L1 nesting
environment, but it isn't worth trying to support it. Just make the
dependency explicit.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
---
 arch/x86/kvm/svm/svm.c | 3 ++-
 arch/x86/kvm/vmx/vmx.c | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index e7fdd7a9c280..7817752533fe 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -5546,7 +5546,8 @@ static __init int svm_hardware_setup(void)
 				     XFEATURE_MASK_BNDCSR);
 
 	if (tsc_scaling) {
-		if (!boot_cpu_has(X86_FEATURE_TSCRATEMSR)) {
+		if (!boot_cpu_has(X86_FEATURE_TSCRATEMSR) ||
+		    !boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) {
 			tsc_scaling = false;
 		} else {
 			pr_info("TSC scaling supported\n");
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index 5c2c33a5f7dc..4f6035d72bbe 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -8696,7 +8696,7 @@ __init int vmx_hardware_setup(void)
 	if (!enable_apicv || !cpu_has_vmx_ipiv())
 		enable_ipiv = false;
 
-	if (cpu_has_vmx_tsc_scaling())
+	if (cpu_has_vmx_tsc_scaling() && boot_cpu_has(X86_FEATURE_CONSTANT_TSC))
 		kvm_caps.has_tsc_control = true;
 
 	kvm_caps.max_tsc_scaling_ratio = KVM_VMX_TSC_MULTIPLIER_MAX;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:48:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304997.1577664 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTa-0006ce-Sh; Sat, 09 May 2026 22:48:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304997.1577664; Sat, 09 May 2026 22:48:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTa-0006aw-Df; Sat, 09 May 2026 22:48:50 +0000
Received: by outflank-mailman (input) for mailman id 1304997;
 Sat, 09 May 2026 22:48:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wLqTY-0005Zz-Aa
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:48:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqTX-002bXZ-Ng; Sun, 10 May 2026 00:48:47 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffb9cf-bab6-0a2a0a5309dd-0a2a450bc9d2-0
 for <multiple-recipients>; Sun, 10 May 2026 00:48:47 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffb9cf-212f-0a2a450b0019-5a9b3222ce9e-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:47 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTC-000000060L9-2Pfv; Sat, 09 May 2026 22:48:32 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhHV-0c3b;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=QaE/jvGdpKCrMu7vuBQqqJqP5vWDROke7W8G0eRZk4g=; b=DoOTPUu0tDOpDhNUD5GD3VymGC
	agkMnNVNF3tXlzjfcJ3f8fgMLH0TVNE6lTDA+SmaBZpdndkRQvdUfYpNNQUjYo4h9pmFg1ghTy6JK
	TJTD6SNzc2p9xzSd92A3Nod6poc4y3RYpG6snRh5AMmLjSitEoxCD9SnH0EZvrtQ4BiPzgnLMFjUy
	usxXQCvIHAmTY5b1qUnWerxbab01zCu1M4crES3M4j2BRAHhvBHu1n2xa4oyoj0CIviPuT/Ak90um
	Wp9wF78NVSSs0glwlOn0E3FZMCPVRqMhutT0hqOqdevTMtFNPl2n/xRBHkhARcz3GtW5FPLogwoms
	3soFmUOA==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 04/30] KVM: x86: Add KVM_[GS]ET_CLOCK_GUEST for accurate KVM clock migration
Date: Sat,  9 May 2026 23:46:30 +0100
Message-ID: <20260509224824.3264567-5-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-42698a/1778366927-1A971F3B-EEF38261/0/0
X-purgate-type: clean
X-purgate-size: 10255

From: Jack Allister <jalliste@amazon.com>

In the common case (where kvm->arch.use_master_clock is true), the KVM
clock is defined as a simple arithmetic function of the guest TSC, based
on a reference point stored in kvm->arch.master_kernel_ns and
kvm->arch.master_cycle_now.

The existing KVM_[GS]ET_CLOCK functionality does not allow for this
relationship to be precisely saved and restored by userspace. All it can
currently do is set the KVM clock at a given UTC reference time, which
is necessarily imprecise.

So on live update, the guest TSC can remain cycle accurate at precisely
the same offset from the host TSC, but there is no way for userspace to
restore the KVM clock accurately.

Even on live migration to a new host, where the accuracy of the guest
time-keeping is fundamentally limited by the accuracy of wallclock
synchronization between the source and destination hosts, the clock jump
experienced by the guest's TSC and its KVM clock should at least be
*consistent*. Even when the guest TSC suffers a discontinuity, its KVM
clock should still remain the *same* arithmetic function of the guest
TSC, and not suffer an *additional* discontinuity.

To allow for accurate migration of the KVM clock, add per-vCPU ioctls
which save and restore the actual PV clock info in
pvclock_vcpu_time_info.

The restoration in KVM_SET_CLOCK_GUEST works by creating a new reference
point in time just as kvm_update_masterclock() does, and calculating the
corresponding guest TSC value. This guest TSC value is then passed
through the user-provided pvclock structure to generate the *intended*
KVM clock value at that point in time, and through the *actual* KVM
clock calculation. Then kvm->arch.kvmclock_offset is adjusted to
eliminate the difference.

Where kvm->arch.use_master_clock is false (because the host TSC is
unreliable, or the guest TSCs are configured strangely), the KVM clock
is *not* defined as a function of the guest TSC so KVM_GET_CLOCK_GUEST
returns an error. In this case, as documented, userspace shall use the
legacy KVM_GET_CLOCK ioctl. The loss of precision is acceptable in this
case since the clocks are imprecise in this mode anyway.

On *restoration*, if kvm->arch.use_master_clock is false, an error is
returned for similar reasons and userspace shall fall back to using
KVM_SET_CLOCK. This does mean that, as documented, userspace needs to
use *both* KVM_GET_CLOCK_GUEST and KVM_GET_CLOCK and send both results
with the migration data (unless the intent is to refuse to resume on a
host with bad TSC).

Co-developed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Jack Allister <jalliste@amazon.com>
Reviewed-by: Paul Durrant <paul@xen.org>
Cc: Dongli Zhang <dongli.zhang@oracle.com>
---
 Documentation/virt/kvm/api.rst |  37 ++++++++
 arch/x86/kvm/x86.c             | 151 +++++++++++++++++++++++++++++++++
 include/uapi/linux/kvm.h       |   3 +
 3 files changed, 191 insertions(+)

diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst
index 52bbbb553ce1..2268b4442df6 100644
--- a/Documentation/virt/kvm/api.rst
+++ b/Documentation/virt/kvm/api.rst
@@ -6553,6 +6553,43 @@ KVM_S390_KEYOP_SSKE
   Sets the storage key for the guest address ``guest_addr`` to the key
   specified in ``key``, returning the previous value in ``key``.
 
+4.145 KVM_GET_CLOCK_GUEST
+----------------------------
+
+:Capability: none
+:Architectures: x86_64
+:Type: vcpu ioctl
+:Parameters: struct pvclock_vcpu_time_info (out)
+:Returns: 0 on success, <0 on error
+
+Retrieves the current time information structure used for KVM/PV clocks,
+in precisely the form advertised to the guest vCPU, which gives parameters
+for a direct conversion from a guest TSC value to nanoseconds.
+
+When the KVM clock is not in "master clock" mode, for example because the
+host TSC is unreliable or the guest TSCs are oddly configured, the KVM clock
+is actually defined by the host CLOCK_MONOTONIC_RAW instead of the guest TSC.
+In this case, the KVM_GET_CLOCK_GUEST ioctl returns -EINVAL.
+
+4.146 KVM_SET_CLOCK_GUEST
+----------------------------
+
+:Capability: none
+:Architectures: x86_64
+:Type: vcpu ioctl
+:Parameters: struct pvclock_vcpu_time_info (in)
+:Returns: 0 on success, <0 on error
+
+Sets the KVM clock (for the whole VM) in terms of the vCPU TSC, using the
+pvclock structure as returned by KVM_GET_CLOCK_GUEST. This allows the precise
+arithmetic relationship between guest TSC and KVM clock to be preserved by
+userspace across migration.
+
+When the KVM clock is not in "master clock" mode, and the KVM clock is actually
+defined by the host CLOCK_MONOTONIC_RAW, this ioctl returns -EINVAL. Userspace
+may choose to set the clock using the less precise KVM_SET_CLOCK ioctl, or may
+choose to fail, denying migration to a host whose TSC is misbehaving.
+
 .. _kvm_run:
 
 5. The kvm_run structure
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index d9ef165df6a1..d1327d5fba3f 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -6205,6 +6205,149 @@ static int kvm_get_reg_list(struct kvm_vcpu *vcpu,
 	return 0;
 }
 
+#ifdef CONFIG_X86_64
+static int kvm_vcpu_ioctl_get_clock_guest(struct kvm_vcpu *v, void __user *argp)
+{
+	struct pvclock_vcpu_time_info hv_clock = {};
+	struct kvm_vcpu_arch *vcpu = &v->arch;
+	struct kvm_arch *ka = &v->kvm->arch;
+	unsigned int seq;
+
+	/*
+	 * If KVM_REQ_CLOCK_UPDATE is already pending, or if the pvclock
+	 * has never been generated at all, call kvm_guest_time_update().
+	 */
+	if (kvm_check_request(KVM_REQ_CLOCK_UPDATE, v) || !vcpu->hw_tsc_hz) {
+		int idx = srcu_read_lock(&v->kvm->srcu);
+		int ret = kvm_guest_time_update(v);
+
+		srcu_read_unlock(&v->kvm->srcu, idx);
+		if (ret)
+			return -EINVAL;
+	}
+
+	/*
+	 * Reconstruct the pvclock from the master clock state, matching
+	 * exactly what kvm_guest_time_update() writes to the guest.
+	 */
+	do {
+		seq = read_seqcount_begin(&ka->pvclock_sc);
+
+		if (!ka->use_master_clock)
+			return -EINVAL;
+
+		hv_clock.tsc_timestamp = kvm_read_l1_tsc(v, ka->master_cycle_now);
+		hv_clock.system_time = ka->master_kernel_ns + ka->kvmclock_offset;
+	} while (read_seqcount_retry(&ka->pvclock_sc, seq));
+
+	hv_clock.tsc_shift = vcpu->pvclock_tsc_shift;
+	hv_clock.tsc_to_system_mul = vcpu->pvclock_tsc_mul;
+	hv_clock.flags = PVCLOCK_TSC_STABLE_BIT;
+
+	if (copy_to_user(argp, &hv_clock, sizeof(hv_clock)))
+		return -EFAULT;
+
+	return 0;
+}
+
+/*
+ * Reverse the calculation in the hv_clock definition.
+ *
+ * time_ns = ( (cycles << shift) * mul ) >> 32;
+ * (although shift can be negative, so that's bad C)
+ *
+ * So for a single second,
+ * NSEC_PER_SEC = ( ( FREQ_HZ << shift) * mul ) >> 32
+ * NSEC_PER_SEC << 32 = ( FREQ_HZ << shift ) * mul
+ * ( NSEC_PER_SEC << 32 ) / mul = FREQ_HZ << shift
+ * ( NSEC_PER_SEC << 32 ) / mul ) >> shift = FREQ_HZ
+ */
+static u64 hvclock_to_hz(u32 mul, s8 shift)
+{
+	u64 tm = NSEC_PER_SEC << 32;
+
+	/* Maximise precision. Shift right until the top bit is set */
+	tm <<= 2;
+	shift += 2;
+
+	/* While 'mul' is even, increase the shift *after* the division */
+	while (!(mul & 1)) {
+		shift++;
+		mul >>= 1;
+	}
+
+	tm /= mul;
+
+	if (shift > 0)
+		return tm >> shift;
+	else
+		return tm << -shift;
+}
+
+static int kvm_vcpu_ioctl_set_clock_guest(struct kvm_vcpu *v, void __user *argp)
+{
+	struct pvclock_vcpu_time_info user_hv_clock;
+	struct kvm *kvm = v->kvm;
+	struct kvm_arch *ka = &kvm->arch;
+	u64 curr_tsc_hz, user_tsc_hz;
+	u64 user_clk_ns;
+	u64 guest_tsc;
+	int rc = 0;
+
+	if (copy_from_user(&user_hv_clock, argp, sizeof(user_hv_clock)))
+		return -EFAULT;
+
+	if (!user_hv_clock.tsc_to_system_mul)
+		return -EINVAL;
+
+	user_tsc_hz = hvclock_to_hz(user_hv_clock.tsc_to_system_mul,
+				    user_hv_clock.tsc_shift);
+
+	kvm_hv_request_tsc_page_update(kvm);
+	kvm_start_pvclock_update(kvm);
+	pvclock_update_vm_gtod_copy(kvm);
+
+	if (!ka->use_master_clock) {
+		rc = -EINVAL;
+		goto out;
+	}
+
+	curr_tsc_hz = (u64)get_cpu_tsc_khz() * 1000;
+	if (unlikely(curr_tsc_hz == 0)) {
+		rc = -EINVAL;
+		goto out;
+	}
+
+	if (kvm_caps.has_tsc_control)
+		curr_tsc_hz = kvm_scale_tsc(curr_tsc_hz,
+					    v->arch.l1_tsc_scaling_ratio);
+
+	/*
+	 * Allow for a discrepancy of 1 kHz either way between the TSC
+	 * frequency used to generate the user's pvclock and the current
+	 * host's measured frequency, since they may not precisely match.
+	 */
+	if (user_tsc_hz < curr_tsc_hz - 1000 ||
+	    user_tsc_hz > curr_tsc_hz + 1000) {
+		rc = -ERANGE;
+		goto out;
+	}
+
+	/*
+	 * Calculate the guest TSC at the new reference point, and the
+	 * corresponding KVM clock value according to user_hv_clock.
+	 * Adjust kvmclock_offset so both definitions agree.
+	 */
+	guest_tsc = kvm_read_l1_tsc(v, ka->master_cycle_now);
+	user_clk_ns = __pvclock_read_cycles(&user_hv_clock, guest_tsc);
+	ka->kvmclock_offset = user_clk_ns - ka->master_kernel_ns;
+
+out:
+	kvm_end_pvclock_update(kvm);
+	return rc;
+}
+#endif
+
 long kvm_arch_vcpu_ioctl(struct file *filp,
 			 unsigned int ioctl, unsigned long arg)
 {
@@ -6605,6 +6748,14 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
 		srcu_read_unlock(&vcpu->kvm->srcu, idx);
 		break;
 	}
+#ifdef CONFIG_X86_64
+	case KVM_SET_CLOCK_GUEST:
+		r = kvm_vcpu_ioctl_set_clock_guest(vcpu, argp);
+		break;
+	case KVM_GET_CLOCK_GUEST:
+		r = kvm_vcpu_ioctl_get_clock_guest(vcpu, argp);
+		break;
+#endif
 #ifdef CONFIG_KVM_HYPERV
 	case KVM_GET_SUPPORTED_HV_CPUID:
 		r = kvm_ioctl_get_supported_hv_cpuid(vcpu, argp);
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index 6c8afa2047bf..9b50191b859c 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -1669,4 +1669,7 @@ struct kvm_pre_fault_memory {
 	__u64 padding[5];
 };
 
+#define KVM_SET_CLOCK_GUEST	_IOW(KVMIO, 0xd6, struct pvclock_vcpu_time_info)
+#define KVM_GET_CLOCK_GUEST	_IOR(KVMIO, 0xd7, struct pvclock_vcpu_time_info)
+
 #endif /* __LINUX_KVM_H */
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:48:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304996.1577636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTY-0005jS-V1; Sat, 09 May 2026 22:48:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304996.1577636; Sat, 09 May 2026 22:48:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTY-0005gC-D1; Sat, 09 May 2026 22:48:48 +0000
Received: by outflank-mailman (input) for mailman id 1304996;
 Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqTV-0004yZ-T7
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqTV-00DG64-A9; Sun, 10 May 2026 00:48:45 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb98b-e002-0a2a0a5209dd-0a2a4508e700-30
 for <multiple-recipients>; Sun, 10 May 2026 00:48:45 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9cd-63b5-0a2a45080019-5a9b5cc7a050-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:45 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wz6-0Xpp; Sat, 09 May 2026 22:48:30 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTB-0000000DhHM-4BHL;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=wfrMtj5ZnQw5qzm4tVj9nJs76L69YTBE+psOfwhJUqs=; b=WH1+Pf0sgeUE/1kLOZi2zQe61+
	clX/XjFXxTT+HlO735BJ+oBKA2xFoMIwzCRYs9uPFc+tsR2LTvxBT9YU2rhNSq4xECjvRfuLc5zvP
	uUPr2hiZ/luP/qeJhQYWXATigOx1W799RsiWGCpFIGVbB6n1zkpYPwFnjZDgbFJLCzS+5x7nuIzvk
	aISbB4j22HT0p5iIcmczYYifqI4UCo1f4iaIVWGou3HmdziKDWtow1GUkQEwb1vSxtNUPcvB1WESA
	20D4xRu8stcXhQ493WDRq1vz29jJfNmBc2S8KOifh8+DNtKnbo0Js6r6FJVLPKtAmF3LKaTEaWwmV
	SJuOPcbw==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 02/30] KVM: x86: Improve accuracy of KVM clock when TSC scaling is in force
Date: Sat,  9 May 2026 23:46:28 +0100
Message-ID: <20260509224824.3264567-3-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-c1860d/1778366925-BE776DB1-84D15631/0/0
X-purgate-type: clean
X-purgate-size: 4034

From: David Woodhouse <dwmw@amazon.co.uk>

The kvm_guest_time_update() function scales the host TSC frequency to
the guest's using kvm_scale_tsc() and the v->arch.l1_tsc_scaling_ratio
scaling ratio previously calculated for that vCPU. Then calculates the
scaling factors for the KVM clock itself based on that guest TSC
frequency.

However, it uses kHz as the unit when scaling, and then multiplies by
1000 only at the end.

With a host TSC frequency of 3000MHz and a guest set to 2500MHz, the
result of kvm_scale_tsc() will actually come out at 2,499,999kHz. So
the KVM clock advertised to the guest is based on a frequency of
2,499,999,000 Hz.

By using Hz as the unit from the beginning, the KVM clock would be based
on a more accurate frequency of 2,499,999,999 Hz in this example.

Use u64 for the hw_tsc_hz field since an unsigned int would overflow for
TSC frequencies above 4GHz. Use div_u64() for the Xen CPUID leaf to
play nice with 32-bit kernels.

Fixes: 78db6a503796 ("KVM: x86: rewrite handling of scaled TSC for kvmclock")
Reviewed-by: Paul Durrant <paul@xen.org>
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/include/asm/kvm_host.h |  2 +-
 arch/x86/kvm/cpuid.c            |  2 +-
 arch/x86/kvm/x86.c              | 17 +++++++++--------
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index c470e40a00aa..37264212c7df 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -950,7 +950,7 @@ struct kvm_vcpu_arch {
 	gpa_t time;
 	s8  pvclock_tsc_shift;
 	u32 pvclock_tsc_mul;
-	unsigned int hw_tsc_khz;
+	u64 hw_tsc_hz;
 	struct gfn_to_pfn_cache pv_time;
 	/* set guest stopped flag in pvclock flags field */
 	bool pvclock_set_guest_stopped_request;
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index e69156b54cff..621d950ec692 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -2131,7 +2131,7 @@ bool kvm_cpuid(struct kvm_vcpu *vcpu, u32 *eax, u32 *ebx,
 				*ecx = vcpu->arch.pvclock_tsc_mul;
 				*edx = vcpu->arch.pvclock_tsc_shift;
 			} else if (index == 2) {
-				*eax = vcpu->arch.hw_tsc_khz;
+				*eax = div_u64(vcpu->arch.hw_tsc_hz, 1000);
 			}
 		}
 	} else {
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 0a1b63c63d1a..d9ef165df6a1 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3314,7 +3314,8 @@ static void kvm_setup_guest_pvclock(struct pvclock_vcpu_time_info *ref_hv_clock,
 int kvm_guest_time_update(struct kvm_vcpu *v)
 {
 	struct pvclock_vcpu_time_info hv_clock = {};
-	unsigned long flags, tgt_tsc_khz;
+	unsigned long flags;
+	u64 tgt_tsc_hz;
 	unsigned seq;
 	struct kvm_vcpu_arch *vcpu = &v->arch;
 	struct kvm_arch *ka = &v->kvm->arch;
@@ -3340,8 +3341,8 @@ int kvm_guest_time_update(struct kvm_vcpu *v)
 
 	/* Keep irq disabled to prevent changes to the clock */
 	local_irq_save(flags);
-	tgt_tsc_khz = get_cpu_tsc_khz();
-	if (unlikely(tgt_tsc_khz == 0)) {
+	tgt_tsc_hz = (u64)get_cpu_tsc_khz() * 1000;
+	if (unlikely(tgt_tsc_hz == 0)) {
 		local_irq_restore(flags);
 		kvm_make_request(KVM_REQ_CLOCK_UPDATE, v);
 		return 1;
@@ -3376,16 +3377,16 @@ int kvm_guest_time_update(struct kvm_vcpu *v)
 	/* With all the info we got, fill in the values */
 
 	if (kvm_caps.has_tsc_control) {
-		tgt_tsc_khz = kvm_scale_tsc(tgt_tsc_khz,
+		tgt_tsc_hz = kvm_scale_tsc(tgt_tsc_hz,
 					    v->arch.l1_tsc_scaling_ratio);
-		tgt_tsc_khz = tgt_tsc_khz ? : 1;
+		tgt_tsc_hz = tgt_tsc_hz ? : 1;
 	}
 
-	if (unlikely(vcpu->hw_tsc_khz != tgt_tsc_khz)) {
-		kvm_get_time_scale(NSEC_PER_SEC, tgt_tsc_khz * 1000LL,
+	if (unlikely(vcpu->hw_tsc_hz != tgt_tsc_hz)) {
+		kvm_get_time_scale(NSEC_PER_SEC, tgt_tsc_hz,
 				   &vcpu->pvclock_tsc_shift,
 				   &vcpu->pvclock_tsc_mul);
-		vcpu->hw_tsc_khz = tgt_tsc_khz;
+		vcpu->hw_tsc_hz = tgt_tsc_hz;
 	}
 
 	hv_clock.tsc_shift = vcpu->pvclock_tsc_shift;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:48:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304991.1577601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTX-00058N-6S; Sat, 09 May 2026 22:48:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304991.1577601; Sat, 09 May 2026 22:48:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTW-000575-U7; Sat, 09 May 2026 22:48:46 +0000
Received: by outflank-mailman (input) for mailman id 1304991;
 Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqTU-0004xu-Pl
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqTT-00DG64-Lm; Sun, 10 May 2026 00:48:44 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb98b-e002-0a2a0a5209dd-0a2a4508e700-24
 for <multiple-recipients>; Sun, 10 May 2026 00:48:42 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9c9-63b5-0a2a45080019-5a9b5cc79ec6-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:42 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wzB-0RLs; Sat, 09 May 2026 22:48:28 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhHp-297o;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=Rlefrv035dE/A4ZfqxoNxpMximz7sVxUML4oSeehurg=; b=BpdCMag+qQeRQ5HUSztZ5825NR
	CwsTyPlVzrIaUi3MD2Pgs7SkvujS/dAokWA6r0Uea/18K0TZbpMa+C1GC+RQlvY0ZYeA3V0RLgLyH
	p84QoHNsDoHOem2wktR9d4GMZ4ZXX4ztZGHkA1B2w/VbuGQwNcW4Mp0D5Gi7Vhk5jbzcpmAiPdeOu
	AxF8VicBNW8EGM7sV+t5BG+wftPQ6ysKcPuc12W/1jcsihSjGgIiHhma2EKG3q+C8LRMLwHtaGaiH
	454cyuN/RcRhYiF83g1XnCoTGkyuFg3UanYe4rklrxhs9DBPoMmVvUToHOkIEJ/RUQMiq/LdRh6py
	hcsFWZkw==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 09/30] KVM: x86: WARN if kvm_get_walltime_and_clockread() fails unexpectedly
Date: Sat,  9 May 2026 23:46:35 +0100
Message-ID: <20260509224824.3264567-10-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-c1860d/1778366922-B6368DB1-AA82E900/0/0
X-purgate-type: clean
X-purgate-size: 1130

From: David Woodhouse <dwmw@amazon.co.uk>

The master clock depends on the pvclock being based on TSC, so the only
way kvm_get_walltime_and_clockread() can fail when use_master_clock is
true is if the clocksource changed and use_master_clock is stale, in
which case a seqcount retry should be pending.

Add a WARN_ON_ONCE if the seqcount has not been invalidated, to catch
any case where the failure is genuinely unexpected.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/kvm/x86.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 1e1834533e98..ccdfd3fa3402 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3474,7 +3474,8 @@ uint64_t kvm_get_wall_clock_epoch(struct kvm *kvm)
 		local_tsc_khz = get_cpu_tsc_khz();
 
 		if (local_tsc_khz &&
-		    !kvm_get_walltime_and_clockread(&ts, &host_tsc))
+		    !kvm_get_walltime_and_clockread(&ts, &host_tsc) &&
+		    WARN_ON_ONCE(!read_seqcount_retry(&ka->pvclock_sc, seq)))
 			local_tsc_khz = 0; /* Fall back to old method */
 
 		put_cpu();
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:48:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1304994.1577620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTY-0005SX-29; Sat, 09 May 2026 22:48:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1304994.1577620; Sat, 09 May 2026 22:48:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqTX-0005Qw-OT; Sat, 09 May 2026 22:48:47 +0000
Received: by outflank-mailman (input) for mailman id 1304994;
 Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqTV-0004yF-Af
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:48:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqTU-00DG64-Nq; Sun, 10 May 2026 00:48:44 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb98b-e002-0a2a0a5209dd-0a2a4508e700-28
 for <multiple-recipients>; Sun, 10 May 2026 00:48:44 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9cc-63b5-0a2a45080019-5a9b5cc7e076-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:44 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wzG-0XFY; Sat, 09 May 2026 22:48:28 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhI9-2vDj;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=1qL8Ver0eVRy2vup5TVneuXo0fgeLVr0y5FVTqd09W0=; b=TIN9a1E8sNcAlsWC1Aa8d+j4n2
	ykdU+MKOO6mMS//0nZ9gk/6GtNeig/iy0ktOWfZxfE3Y9oC+BDjozpK+YTRlioH1mCNDrnrIIELfn
	Dk90c8X8czam38NJuoQCGkKSyonAfsIF0B4Gxy6aAg4JXguhERu1nsTDdjXKIBO+eLUfCrpEUY/KI
	TvcJr5SlC/FZt8Ny/XRCRRj8ai9g6+Wohw9ZHE3J4GVELHu0tc8Vjezkb9vglY98NiUkuDsAWG3W4
	8Keg1ENmXJQKCp20kaYBBMtgVeR3RnqtpIwL3rLtS4PlhMLY7MseveZJDp6XxLDLJem5Fzuh0or1E
	O8puK54w==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 14/30] KVM: x86: Use get_kvmclock() in kvm_get_wall_clock_epoch()
Date: Sat,  9 May 2026 23:46:40 +0100
Message-ID: <20260509224824.3264567-15-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-c1860d/1778366924-BDB6CDB1-357D2A13/0/0
X-purgate-type: clean
X-purgate-size: 2903

From: David Woodhouse <dwmw@amazon.co.uk>

Now that get_kvmclock() correctly handles TSC scaling and captures both
wallclock and kvmclock from the same TSC reading,
kvm_get_wall_clock_epoch()
can simply call it instead of duplicating the pvclock computation.

This eliminates the last instance of the "definition C" kvmclock
calculation that computed nanoseconds directly from the host TSC
without accounting for guest TSC scaling.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/kvm/x86.c | 58 +++++++---------------------------------------
 1 file changed, 8 insertions(+), 50 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 09b00906b1de..2bbc2c7ac449 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3491,60 +3491,18 @@ int kvm_guest_time_update(struct kvm_vcpu *v)
  */
 uint64_t kvm_get_wall_clock_epoch(struct kvm *kvm)
 {
-#ifdef CONFIG_X86_64
-	struct pvclock_vcpu_time_info hv_clock;
-	struct kvm_arch *ka = &kvm->arch;
-	unsigned long seq, local_tsc_khz;
-	struct timespec64 ts;
-	uint64_t host_tsc;
-
-	do {
-		seq = read_seqcount_begin(&ka->pvclock_sc);
-
-		local_tsc_khz = 0;
-		if (!ka->use_master_clock)
-			break;
-
-		/*
-		 * The TSC read and the call to get_cpu_tsc_khz() must happen
-		 * on the same CPU.
-		 */
-		get_cpu();
-
-		local_tsc_khz = get_cpu_tsc_khz();
-
-		if (local_tsc_khz &&
-		    !kvm_get_walltime_and_clockread(&ts, &host_tsc) &&
-		    WARN_ON_ONCE(!read_seqcount_retry(&ka->pvclock_sc, seq)))
-			local_tsc_khz = 0; /* Fall back to old method */
-
-		put_cpu();
-
-		/*
-		 * These values must be snapshotted within the seqcount loop.
-		 * After that, it's just mathematics which can happen on any
-		 * CPU at any time.
-		 */
-		hv_clock.tsc_timestamp = ka->master_cycle_now;
-		hv_clock.system_time = ka->master_kernel_ns + ka->kvmclock_offset;
+	struct kvm_clock_data data;
 
-	} while (read_seqcount_retry(&ka->pvclock_sc, seq));
+	get_kvmclock(kvm, &data);
 
 	/*
-	 * If the conditions were right, and obtaining the wallclock+TSC was
-	 * successful, calculate the KVM clock at the corresponding time and
-	 * subtract one from the other to get the guest's epoch in nanoseconds
-	 * since 1970-01-01.
+	 * If get_kvmclock() captured both wallclock and kvmclock from the
+	 * same TSC reading, use them for a precise epoch calculation.
 	 */
-	if (local_tsc_khz) {
-		kvm_get_time_scale(NSEC_PER_SEC, local_tsc_khz * NSEC_PER_USEC,
-				   &hv_clock.tsc_shift,
-				   &hv_clock.tsc_to_system_mul);
-		return ts.tv_nsec + NSEC_PER_SEC * ts.tv_sec -
-			__pvclock_read_cycles(&hv_clock, host_tsc);
-	}
-#endif
-	return ktime_get_real_ns() - get_kvmclock_ns(kvm);
+	if (data.flags & KVM_CLOCK_REALTIME)
+		return data.realtime - data.clock;
+
+	return ktime_get_real_ns() - data.clock;
 }
 
 /*
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:52:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:52:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305070.1577691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqWn-00030c-HD; Sat, 09 May 2026 22:52:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305070.1577691; Sat, 09 May 2026 22:52:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqWn-00030U-CQ; Sat, 09 May 2026 22:52:09 +0000
Received: by outflank-mailman (input) for mailman id 1305070;
 Sat, 09 May 2026 22:52:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqWl-0002wM-Mi
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:52:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqWk-008rH7-WF; Sun, 10 May 2026 00:52:07 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffba8d-2eae-0a2a0a5409dd-0a2a4509c56c-4
 for <multiple-recipients>; Sun, 10 May 2026 00:52:06 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9e2-2497-0a2a45090019-5a9b5cc7e918-3
 for <multiple-recipients>; Sun, 10 May 2026 00:49:06 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wz5-0QFm; Sat, 09 May 2026 22:48:28 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTB-0000000DhHJ-44Nq;
 Sat, 09 May 2026 23:48:25 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:
	From:Reply-To:Cc:Content-ID:Content-Description;
	bh=TZcXqNntDdHe2w9Q79uCDKAXjVj99JYmMNiVQxMISEk=; b=RYTR6PWoDUrLsNMTzdy0wN2kqO
	p2Ct4KIVednYPMMXB0h+BxNxxY7O6nyKBfNP26vfbtWUonLSjWNKqF8JNkVVWSgJgZl4CyajD+edo
	4EZlrbjl/OqTlok1XxDPd5FKMil3Wdsji/F6cFiRBrNRtoexB+/kFQLLzZF6BGgqQAlB2dFrOjpl2
	tKJmulW3eInQuCu10yq4buJjH3yMHj4IgjJlcUW41Feia/vkvndFrmwDxFdpdhVhXixJEvjKItda0
	eNWx5YWoDjbrSh11HV9CZ6JTdwttGJYpV1E8mDXXI8K+qyit3Bfka8oTtZN0UDnOxmjR6dYimmjQ5
	frlllr1w==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 01/30] KVM: x86/xen: Do not corrupt KVM clock in kvm_xen_shared_info_init()
Date: Sat,  9 May 2026 23:46:27 +0100
Message-ID: <20260509224824.3264567-2-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-bad1c0/1778366946-4015DA53-E50630F4/0/0
X-purgate-type: clean
X-purgate-size: 4433

From: David Woodhouse <dwmw@amazon.co.uk>

The KVM clock is an interesting thing. It is defined as "nanoseconds
since the guest was created", but in practice it runs at two *different*
rates — or three different rates, if you count implementation bugs.

Definition A is that it runs synchronously with the CLOCK_MONOTONIC_RAW
of the host, with a delta of kvm->arch.kvmclock_offset.

But that version doesn't actually get used in the common case, where the
host has a reliable TSC and the guest TSCs are all running at the same
rate and in sync with each other, and kvm->arch.use_master_clock is set.

In that common case, definition B is used: There is a reference point in
time at kvm->arch.master_kernel_ns (again a CLOCK_MONOTONIC_RAW time),
and a corresponding host TSC value kvm->arch.master_cycle_now. This
fixed point in time is converted to guest units (the time offset by
kvmclock_offset and the TSC Value scaled and offset to be a guest TSC
value) and advertised to the guest in the pvclock structure. While in
this 'use_master_clock' mode, the fixed point in time never needs to be
changed, and the clock runs precisely in time with the guest TSC, at the
rate advertised in the pvclock structure.

The third definition C is implemented in kvm_get_wall_clock_epoch() and
__get_kvmclock(), using the master_cycle_now and master_kernel_ns fields
but converting the *host* TSC cycles directly to a value in nanoseconds
instead of scaling via the guest TSC.

One might naïvely think that all three definitions are identical, since
CLOCK_MONOTONIC_RAW is not skewed by NTP frequency corrections; all
three are just the result of counting the host TSC at a known frequency,
or the scaled guest TSC at a known precise fraction of the host's
frequency. The problem is with arithmetic precision, and the way that
frequency scaling is done in a division-free way by multiplying by a
scale factor, then shifting right. In practice, all three ways of
calculating the KVM clock will suffer a systemic drift from each other.

Eventually, definition C should just be eliminated. Commit 451a707813ae
("KVM: x86/xen: improve accuracy of Xen timers") worked around it for
the specific case of Xen timers, which are defined in terms of the KVM
clock and suffered from a continually increasing error in timer expiry
times. That commit notes that get_kvmclock_ns() is non-trivial to fix
and says "I'll come back to that", which remains true.

Definitions A and B do need to coexist, the former to handle the case
where the host or guest TSC is suboptimally configured. But KVM should
be more careful about switching between them, and the discontinuity in
guest time which could result.

In particular, KVM_REQ_MASTERCLOCK_UPDATE will take a new snapshot of
time as the reference in master_kernel_ns and master_cycle_now, yanking
the guest's clock back to match definition A at that moment.

When invoked from in 'use_master_clock' mode, kvm_update_masterclock()
should probably *adjust* kvm->arch.kvmclock_offset to account for the
drift, instead of yanking the clock back to definition A. But in the
meantime there are a bunch of places where it just doesn't need to be
invoked at all.

To start with: there is no need to do such an update when a Xen guest
populates the shared_info page. This seems to have been a hangover from
the very first implementation of shared_info which automatically
populated the vcpu_info structures at their default locations, but even
then it should just have raised KVM_REQ_CLOCK_UPDATE on each vCPU
instead of using KVM_REQ_MASTERCLOCK_UPDATE. And now that userspace is
expected to explicitly set the vcpu_info even in its default locations,
there's not even any need for that either.

Fixes: 629b5348841a ("KVM: x86/xen: update wallclock region")
Reviewed-by: Paul Durrant <paul@xen.org>
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/kvm/xen.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c
index 91fd3673c09a..82e34edbfdbd 100644
--- a/arch/x86/kvm/xen.c
+++ b/arch/x86/kvm/xen.c
@@ -98,8 +98,6 @@ static int kvm_xen_shared_info_init(struct kvm *kvm)
 	wc->version = wc_version + 1;
 	read_unlock_irq(&gpc->lock);
 
-	kvm_make_all_cpus_request(kvm, KVM_REQ_MASTERCLOCK_UPDATE);
-
 out:
 	srcu_read_unlock(&kvm->srcu, idx);
 	return ret;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:52:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:52:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305069.1577685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqWn-0002xT-7s; Sat, 09 May 2026 22:52:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305069.1577685; Sat, 09 May 2026 22:52:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqWn-0002xM-4n; Sat, 09 May 2026 22:52:09 +0000
Received: by outflank-mailman (input) for mailman id 1305069;
 Sat, 09 May 2026 22:52:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqWl-0002wR-On
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:52:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqWl-008rH7-5c; Sun, 10 May 2026 00:52:07 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffba24-2eae-0a2a0a5409dd-0a2a4506b144-28
 for <multiple-recipients>; Sun, 10 May 2026 00:52:06 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9e2-7371-0a2a45060019-5a9b5cc7e19a-3
 for <multiple-recipients>; Sun, 10 May 2026 00:49:06 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wz7-0Xnk; Sat, 09 May 2026 22:48:34 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhHP-0ITl;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=cy4WX+pEhq0ONnRd44jsWeJgn8jdEFwX+WNyOailsXI=; b=f1v81ARMTELtkK8Uo8Dot8XJtu
	ZPciDZdzdNb1UHVK8ThK5p7adwR8E97R+9zIyV0sMXwSSyxjd4IvQlFS1KguGP5C+dFNoPz2650YT
	vZPBfyVoT3pRwi4VvjZVlaifWMSpT8PK8VePe/zBIi4e47aMk1d9kmUFgZknxrqOXL2hEvnpa6Snd
	y4uvxo7khgiNAVT2itX+II+hxxOa7kgC788aR89gNlujoCfM6pkUPukM1rscIT6j4W8yH9v0XoPYA
	LkcLMKnb6NvFlwXfeMKBZDHIP502+a0Hxb+TlAS4PXWuTHMYVmQlYlBXe0VjTlPt4/nVgJdkX0n4H
	2lt+5C2w==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 03/30] UAPI: x86: Move pvclock-abi to UAPI for x86 platforms
Date: Sat,  9 May 2026 23:46:29 +0100
Message-ID: <20260509224824.3264567-4-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-16d1c6/1778366946-84964D75-378A9408/0/0
X-purgate-type: clean
X-purgate-size: 2944

From: Jack Allister <jalliste@amazon.com>

A subsequent commit will provide a new KVM interface for performing a
fixup/correction of the KVM clock against the reference TSC. The
KVM_[GS]ET_CLOCK_GUEST API requires a pvclock_vcpu_time_info, as such
the caller must know about this definition.

Move the definition to the UAPI folder so that it is exported to
usermode and also change the type definitions to use the standard for
UAPI exports.

Signed-off-by: Jack Allister <jalliste@amazon.com>
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
---
 MAINTAINERS                                   |  4 +--
 arch/x86/include/{ => uapi}/asm/pvclock-abi.h | 27 ++++++++++---------
 2 files changed, 17 insertions(+), 14 deletions(-)
 rename arch/x86/include/{ => uapi}/asm/pvclock-abi.h (82%)

diff --git a/MAINTAINERS b/MAINTAINERS
index e0b307b2108c..e49676955c0c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -14406,7 +14406,7 @@ S:	Supported
 T:	git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
 F:	arch/um/include/asm/kvm_para.h
 F:	arch/x86/include/asm/kvm_para.h
-F:	arch/x86/include/asm/pvclock-abi.h
+F:	arch/x86/include/uapi/asm/pvclock-abi.h
 F:	arch/x86/include/uapi/asm/kvm_para.h
 F:	arch/x86/kernel/kvm.c
 F:	arch/x86/kernel/kvmclock.c
@@ -29087,7 +29087,7 @@ R:	Boris Ostrovsky <boris.ostrovsky@oracle.com>
 L:	xen-devel@lists.xenproject.org (moderated for non-subscribers)
 S:	Supported
 F:	arch/x86/configs/xen.config
-F:	arch/x86/include/asm/pvclock-abi.h
+F:	arch/x86/include/uapi/asm/pvclock-abi.h
 F:	arch/x86/include/asm/xen/
 F:	arch/x86/platform/pvh/
 F:	arch/x86/xen/
diff --git a/arch/x86/include/asm/pvclock-abi.h b/arch/x86/include/uapi/asm/pvclock-abi.h
similarity index 82%
rename from arch/x86/include/asm/pvclock-abi.h
rename to arch/x86/include/uapi/asm/pvclock-abi.h
index b9fece5fc96d..6d70cf640362 100644
--- a/arch/x86/include/asm/pvclock-abi.h
+++ b/arch/x86/include/uapi/asm/pvclock-abi.h
@@ -1,6 +1,9 @@
-/* SPDX-License-Identifier: GPL-2.0 */
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 #ifndef _ASM_X86_PVCLOCK_ABI_H
 #define _ASM_X86_PVCLOCK_ABI_H
+
+#include <linux/types.h>
+
 #ifndef __ASSEMBLER__
 
 /*
@@ -24,20 +27,20 @@
  */
 
 struct pvclock_vcpu_time_info {
-	u32   version;
-	u32   pad0;
-	u64   tsc_timestamp;
-	u64   system_time;
-	u32   tsc_to_system_mul;
-	s8    tsc_shift;
-	u8    flags;
-	u8    pad[2];
+	__u32   version;
+	__u32   pad0;
+	__u64   tsc_timestamp;
+	__u64   system_time;
+	__u32   tsc_to_system_mul;
+	__s8    tsc_shift;
+	__u8    flags;
+	__u8    pad[2];
 } __attribute__((__packed__)); /* 32 bytes */
 
 struct pvclock_wall_clock {
-	u32   version;
-	u32   sec;
-	u32   nsec;
+	__u32   version;
+	__u32   sec;
+	__u32   nsec;
 } __attribute__((__packed__));
 
 #define PVCLOCK_TSC_STABLE_BIT	(1 << 0)
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:52:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:52:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305071.1577697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqWn-00036x-RG; Sat, 09 May 2026 22:52:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305071.1577697; Sat, 09 May 2026 22:52:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqWn-00036j-MJ; Sat, 09 May 2026 22:52:09 +0000
Received: by outflank-mailman (input) for mailman id 1305071;
 Sat, 09 May 2026 22:52:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqWm-0002wd-0o
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:52:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqWl-00270l-Dw; Sun, 10 May 2026 00:52:07 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffba24-5cb7-0a2a0a5109dd-0a2a450b977a-32
 for <multiple-recipients>; Sun, 10 May 2026 00:52:07 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9e2-212f-0a2a450b0019-5a9b5cc7e19c-3
 for <multiple-recipients>; Sun, 10 May 2026 00:49:07 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wzC-0YnA; Sat, 09 May 2026 22:48:27 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhHt-2SQv;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=jlwAF/0oFWlcL5jvF9efjiI3xsQlH77nGl9RwL+uYeI=; b=BPY1gDnlXbmE3kfLuna2IeLpKr
	gAJPAQG+VmVP63PrS9DR6iJwAa3XiWGgYEMFPigPj5+AAbK2ymJY2GzO83Pfs2VhVePUAR6vdXTbS
	5C5qksKoOUOsOwG3vEJ6+/yRK+XVDg2sOyA/II9J6qgLdi6QoGcn1q+ilp9V/HwRXcctNhb0HsbPT
	zsLhjypwTexosWHNmC/5KMXuKS9TzRSIJEKOVphLf352aiL8u6x5SiB91QH8IYXPkaVf9qJ/8vZSB
	KllVBFoSyFDoHW6l1KRWg2AF+Ey5KlyyYX6GGxhR905ep42Bu3SCXUdMTXeW9LQdwvWZwKArztrLr
	aORDKKNQ==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 10/30] KVM: x86: Fold __get_kvmclock() into get_kvmclock()
Date: Sat,  9 May 2026 23:46:36 +0100
Message-ID: <20260509224824.3264567-11-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-42698a/1778366947-19B68F3B-F6348F77/0/0
X-purgate-type: clean
X-purgate-size: 3279

From: David Woodhouse <dwmw@amazon.co.uk>

There is no need for the separate __get_kvmclock() helper; just inline
its body into get_kvmclock() within the seqcount retry loop.

No functional change.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/kvm/x86.c | 63 +++++++++++++++++++++-------------------------
 1 file changed, 28 insertions(+), 35 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index ccdfd3fa3402..6f660c3210ee 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3200,50 +3200,43 @@ static unsigned long get_cpu_tsc_khz(void)
 		return __this_cpu_read(cpu_tsc_khz);
 }
 
-/* Called within read_seqcount_begin/retry for kvm->pvclock_sc.  */
-static void __get_kvmclock(struct kvm *kvm, struct kvm_clock_data *data)
+static void get_kvmclock(struct kvm *kvm, struct kvm_clock_data *data)
 {
 	struct kvm_arch *ka = &kvm->arch;
 	struct pvclock_vcpu_time_info hv_clock;
+	unsigned int seq;
 
-	/* both __this_cpu_read() and rdtsc() should be on the same cpu */
-	get_cpu();
+	do {
+		seq = read_seqcount_begin(&ka->pvclock_sc);
 
-	data->flags = 0;
-	if (ka->use_master_clock &&
-	    (static_cpu_has(X86_FEATURE_CONSTANT_TSC) || __this_cpu_read(cpu_tsc_khz))) {
+		/* both __this_cpu_read() and rdtsc() should be on the same cpu */
+		get_cpu();
+
+		data->flags = 0;
+		if (ka->use_master_clock &&
+		    (static_cpu_has(X86_FEATURE_CONSTANT_TSC) || __this_cpu_read(cpu_tsc_khz))) {
 #ifdef CONFIG_X86_64
-		struct timespec64 ts;
+			struct timespec64 ts;
 
-		if (kvm_get_walltime_and_clockread(&ts, &data->host_tsc)) {
-			data->realtime = ts.tv_nsec + NSEC_PER_SEC * ts.tv_sec;
-			data->flags |= KVM_CLOCK_REALTIME | KVM_CLOCK_HOST_TSC;
-		} else
+			if (kvm_get_walltime_and_clockread(&ts, &data->host_tsc)) {
+				data->realtime = ts.tv_nsec + NSEC_PER_SEC * ts.tv_sec;
+				data->flags |= KVM_CLOCK_REALTIME | KVM_CLOCK_HOST_TSC;
+			} else
 #endif
-		data->host_tsc = rdtsc();
-
-		data->flags |= KVM_CLOCK_TSC_STABLE;
-		hv_clock.tsc_timestamp = ka->master_cycle_now;
-		hv_clock.system_time = ka->master_kernel_ns + ka->kvmclock_offset;
-		kvm_get_time_scale(NSEC_PER_SEC, get_cpu_tsc_khz() * 1000LL,
-				   &hv_clock.tsc_shift,
-				   &hv_clock.tsc_to_system_mul);
-		data->clock = __pvclock_read_cycles(&hv_clock, data->host_tsc);
-	} else {
-		data->clock = get_kvmclock_base_ns() + ka->kvmclock_offset;
-	}
-
-	put_cpu();
-}
-
-static void get_kvmclock(struct kvm *kvm, struct kvm_clock_data *data)
-{
-	struct kvm_arch *ka = &kvm->arch;
-	unsigned seq;
+			data->host_tsc = rdtsc();
+
+			data->flags |= KVM_CLOCK_TSC_STABLE;
+			hv_clock.tsc_timestamp = ka->master_cycle_now;
+			hv_clock.system_time = ka->master_kernel_ns + ka->kvmclock_offset;
+			kvm_get_time_scale(NSEC_PER_SEC, get_cpu_tsc_khz() * 1000LL,
+					   &hv_clock.tsc_shift,
+					   &hv_clock.tsc_to_system_mul);
+			data->clock = __pvclock_read_cycles(&hv_clock, data->host_tsc);
+		} else {
+			data->clock = get_kvmclock_base_ns() + ka->kvmclock_offset;
+		}
 
-	do {
-		seq = read_seqcount_begin(&ka->pvclock_sc);
-		__get_kvmclock(kvm, data);
+		put_cpu();
 	} while (read_seqcount_retry(&ka->pvclock_sc, seq));
 }
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:52:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:52:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305072.1577712 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqWs-0003gU-7F; Sat, 09 May 2026 22:52:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305072.1577712; Sat, 09 May 2026 22:52:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqWs-0003gK-4V; Sat, 09 May 2026 22:52:14 +0000
Received: by outflank-mailman (input) for mailman id 1305072;
 Sat, 09 May 2026 22:52:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqWq-0003eE-Qf
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:52:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqWq-008rH7-7a; Sun, 10 May 2026 00:52:12 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffba24-2eae-0a2a0a5409dd-0a2a4506b144-32
 for <multiple-recipients>; Sun, 10 May 2026 00:52:11 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9e7-7371-0a2a45060019-5a9b5cc7eaac-3
 for <multiple-recipients>; Sun, 10 May 2026 00:49:11 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wzI-0OeQ; Sat, 09 May 2026 22:48:28 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhIH-3IBh;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=LepzYKC8zChWcqxDUMiFOK7RmizpFH9hCCvlIfnf3aY=; b=bkTTeIeQ6yjciV79dnwOCTS3X8
	kWPljQM5uuCcLf9xYvOMvxwp0BudJtlKdezBUn+2HsrUtDHGE8X85ygS5I9M1clK6zpm2ifFrsLyI
	6vHlr9bbTcd192RWw5BeCaycQCXib9QwDp+uVtaExyL6cHh0l//vCGieuOmQt3Zb6k0V42gUmdzy2
	v+X/RNkqyGK6O828YYwwQwcGi7JC5ICV2+sjdn6xRCbShFs6B4a8UPDR2YF3J0Ue6G7OcdLr2c0KW
	mS9Em/atYVqzn+EMq4KLzVjs83ETumOZCG//oet13+jOZDJ2WZbahqUjO1qRQftiPO8dK8pbrQTVE
	zPdP0YPA==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 16/30] KVM: x86: Restructure kvm_guest_time_update() for TSC upscaling
Date: Sat,  9 May 2026 23:46:42 +0100
Message-ID: <20260509224824.3264567-17-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-16d1c6/1778366951-86D72D75-A28EBC8B/0/0
X-purgate-type: clean
X-purgate-size: 4131

From: David Woodhouse <dwmw@amazon.co.uk>

Restructure kvm_guest_time_update() so that kernel_ns/host_tsc are
always "now" when doing TSC catchup, then swap in the master clock
reference values afterward for the hv_clock.

This makes the TSC upscaling code considerably simpler: the catchup
adjustment is computed as the delta between what the guest TSC *should*
be at "now" and what it actually is, rather than mixing "now" and
"master clock reference" timestamps.

The seqcount loop now also contains the kvm_get_time_and_clockread()
call (matching get_kvmclock's pattern), with the same WARN for
unexpected failure.

Based on a suggestion by Sean Christopherson.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/kvm/x86.c | 67 ++++++++++++++++++++++++++++++++--------------
 1 file changed, 47 insertions(+), 20 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index e281c49561fa..8e4993ef4f6b 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3363,39 +3363,51 @@ int kvm_guest_time_update(struct kvm_vcpu *v)
 	struct kvm_arch *ka = &v->kvm->arch;
 	s64 kernel_ns;
 	u64 tsc_timestamp, host_tsc;
+	u64 master_host_tsc = 0;
+	s64 master_kernel_ns = 0;
 	bool use_master_clock;
 
-	kernel_ns = 0;
-	host_tsc = 0;
-
 	/*
 	 * If the host uses TSC clock, then passthrough TSC as stable
 	 * to the guest.
 	 */
 	do {
 		seq = read_seqcount_begin(&ka->pvclock_sc);
+
 		use_master_clock = ka->use_master_clock;
-		if (use_master_clock) {
-			host_tsc = ka->master_cycle_now;
-			kernel_ns = ka->master_kernel_ns;
-		}
+
+		/*
+		 * The TSC read and the call to get_cpu_tsc_khz() must happen
+		 * on the same CPU.
+		 */
+		get_cpu();
+
+		tgt_tsc_hz = (u64)get_cpu_tsc_khz() * 1000;
+
+		if (use_master_clock &&
+		    !kvm_get_time_and_clockread(&kernel_ns, &host_tsc) &&
+		    WARN_ON_ONCE(!read_seqcount_retry(&ka->pvclock_sc, seq)))
+			use_master_clock = false;
+
+		put_cpu();
+
+		if (!use_master_clock)
+			break;
+
+		master_host_tsc = ka->master_cycle_now;
+		master_kernel_ns = ka->master_kernel_ns;
 	} while (read_seqcount_retry(&ka->pvclock_sc, seq));
 
-	/* Keep irq disabled to prevent changes to the clock */
-	local_irq_save(flags);
-	tgt_tsc_hz = (u64)get_cpu_tsc_khz() * 1000;
 	if (unlikely(tgt_tsc_hz == 0)) {
-		local_irq_restore(flags);
 		kvm_make_request(KVM_REQ_CLOCK_UPDATE, v);
 		return 1;
 	}
+
 	if (!use_master_clock) {
 		host_tsc = rdtsc();
 		kernel_ns = get_kvmclock_base_ns();
 	}
 
-	tsc_timestamp = kvm_read_l1_tsc(v, host_tsc);
-
 	/*
 	 * We may have to catch up the TSC to match elapsed wall clock
 	 * time for two reasons, even if kvmclock is used.
@@ -3404,17 +3416,32 @@ int kvm_guest_time_update(struct kvm_vcpu *v)
 	 *      entry to avoid unknown leaps of TSC even when running
 	 *      again on the same CPU.  This may cause apparent elapsed
 	 *      time to disappear, and the guest to stand still or run
-	 *	very slowly.
+	 *      very slowly.
 	 */
 	if (vcpu->tsc_catchup) {
-		u64 tsc = compute_guest_tsc(v, kernel_ns);
-		if (tsc > tsc_timestamp) {
-			adjust_tsc_offset_guest(v, tsc - tsc_timestamp);
-			tsc_timestamp = tsc;
-		}
+		s64 adjustment;
+
+		/*
+		 * Calculate the delta between what the guest TSC *should* be
+		 * and what it actually is according to kvm_read_l1_tsc().
+		 */
+		adjustment = compute_guest_tsc(v, kernel_ns) -
+			     kvm_read_l1_tsc(v, host_tsc);
+		if (adjustment > 0)
+			adjust_tsc_offset_guest(v, adjustment);
 	}
 
-	local_irq_restore(flags);
+	/*
+	 * Now that TSC upscaling is out of the way, the remaining calculations
+	 * are all relative to the reference time that's placed in hv_clock.
+	 * If the master clock is NOT in use, the reference time is "now".  If
+	 * master clock is in use, the reference time comes from there.
+	 */
+	if (use_master_clock) {
+		host_tsc = master_host_tsc;
+		kernel_ns = master_kernel_ns;
+	}
+	tsc_timestamp = kvm_read_l1_tsc(v, host_tsc);
 
 	/* With all the info we got, fill in the values */
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:52:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:52:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305099.1577721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXP-0004qr-Gz; Sat, 09 May 2026 22:52:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305099.1577721; Sat, 09 May 2026 22:52:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXP-0004qc-Da; Sat, 09 May 2026 22:52:47 +0000
Received: by outflank-mailman (input) for mailman id 1305099;
 Sat, 09 May 2026 22:52:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqXO-0004qF-Hz
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:52:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXN-008rH7-VM; Sun, 10 May 2026 00:52:45 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffba24-2eae-0a2a0a5409dd-0a2a4506b144-46
 for <multiple-recipients>; Sun, 10 May 2026 00:52:45 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9cc-7371-0a2a45060019-5a9b5cc78a84-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:44 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wz8-0RZG; Sat, 09 May 2026 22:48:28 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhHZ-0vyl;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:
	From:Reply-To:Cc:Content-ID:Content-Description;
	bh=fjV26NrwIY9cQcLo8KkXdG7OKt7Yi3rTCYPgBP8g6KA=; b=KLhaK8eBC6ebOLVUd2G2XJdjhp
	GXwrOjDkaQr8ATVtUHjTxBu5zBqFFwsjGTlzl3hjb+yDwKI/GmtnzkbTLBCprwF5i88X+i2gNfNtu
	AhTzqJLvX1o0xaW7BbsUEpF6HwIzH+C2ZBvSKAi6klr3u/5mYzzCxSJlrpU+cmgbBrcCNwGqty8hx
	MvQC0vAJX2NsYDgXYha5BQc60V0RqWatSl4OwQvuBRfWWCc1TYsEBzZ4dkPj7w/H8YWI9dn5o/cm6
	juwXijSC7WN8YToiRDEbEXHGa1bNmrufksGVCXtjiXykouJq4qg1d6G3d2NX7Gxi1KBXm5+3pWC0N
	o7slZr4g==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 05/30] KVM: selftests: Add KVM/PV clock selftest to prove timer correction
Date: Sat,  9 May 2026 23:46:31 +0100
Message-ID: <20260509224824.3264567-6-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-16d1c6/1778366924-8556ED75-AF4EFC7B/0/0
X-purgate-type: clean
X-purgate-size: 15144

From: Jack Allister <jalliste@amazon.com>

A VM's KVM/PV clock has an inherent relationship to its TSC. When either
the host system live-updates or the VM is live-migrated this pairing of
the two clock sources should stay the same. In reality this is not the
case without some correction taking place.

The KVM_GET_CLOCK_GUEST/KVM_SET_CLOCK_GUEST ioctls can be used to
perform a correction on the PVTI (PV time information) structure held by
KVM to effectively fix up the kvmclock_offset prior to the guest VM
resuming in either a live-update/migration scenario.

This test proves that without the necessary fixup there is a perceived
change in the guest TSC and KVM/PV clock relationship before and after a
simulated LU/LM takes place, and that the correction eliminates it.

The test:
  1. Snapshots the PVTI at boot (PVTI0).
  2. Induces a change in PVTI data (KVM_REQ_MASTERCLOCK_UPDATE).
  3. Snapshots the PVTI after the change (PVTI1).
  4. Requests correction via KVM_SET_CLOCK_GUEST using PVTI0.
  5. Snapshots the PVTI after correction (PVTI2).

Then samples the TSC at a single point in time and calculates the KVM
clock using each PVTI snapshot. The corrected clock should match the
boot clock to within ±1ns.

The test enumerates multiple TSC frequencies from 1GHz to 5GHz at 500MHz
steps, crossing the 32-bit boundary, to exercise the scaling path at
various ratios. The sleep duration between snapshots is configurable via
the -s/--sleep command line option.

Co-developed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Jack Allister <jalliste@amazon.com>
Reviewed-by: Paul Durrant <paul@xen.org>
Cc: Dongli Zhang <dongli.zhang@oracle.com>
---
 tools/testing/selftests/kvm/Makefile.kvm      |   1 +
 .../testing/selftests/kvm/x86/pvclock_test.c  | 415 ++++++++++++++++++
 2 files changed, 416 insertions(+)
 create mode 100644 tools/testing/selftests/kvm/x86/pvclock_test.c

diff --git a/tools/testing/selftests/kvm/Makefile.kvm b/tools/testing/selftests/kvm/Makefile.kvm
index 9118a5a51b89..fb935ae3bf38 100644
--- a/tools/testing/selftests/kvm/Makefile.kvm
+++ b/tools/testing/selftests/kvm/Makefile.kvm
@@ -105,6 +105,7 @@ TEST_GEN_PROGS_x86 += x86/pmu_counters_test
 TEST_GEN_PROGS_x86 += x86/pmu_event_filter_test
 TEST_GEN_PROGS_x86 += x86/private_mem_conversions_test
 TEST_GEN_PROGS_x86 += x86/private_mem_kvm_exits_test
+TEST_GEN_PROGS_x86 += x86/pvclock_test
 TEST_GEN_PROGS_x86 += x86/set_boot_cpu_id
 TEST_GEN_PROGS_x86 += x86/set_sregs_test
 TEST_GEN_PROGS_x86 += x86/smaller_maxphyaddr_emulation_test
diff --git a/tools/testing/selftests/kvm/x86/pvclock_test.c b/tools/testing/selftests/kvm/x86/pvclock_test.c
new file mode 100644
index 000000000000..1a3d52923c71
--- /dev/null
+++ b/tools/testing/selftests/kvm/x86/pvclock_test.c
@@ -0,0 +1,415 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright © Amazon.com, Inc. or its affiliates.
+ *
+ * Tests for pvclock API
+ * KVM_SET_CLOCK_GUEST/KVM_GET_CLOCK_GUEST
+ */
+#include <getopt.h>
+#include <stdint.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+
+#include "test_util.h"
+#include "kvm_util.h"
+#include "processor.h"
+
+#include <asm/pvclock-abi.h>
+
+/*
+ * Reproduce the pvclock calculation the guest uses to convert TSC to
+ * nanoseconds. This must match the kernel's __pvclock_read_cycles().
+ */
+static inline uint64_t pvclock_scale_delta(uint64_t delta, uint32_t mul,
+					   int8_t shift)
+{
+	if (shift < 0)
+		delta >>= -shift;
+	else
+		delta <<= shift;
+	return ((__uint128_t)delta * mul) >> 32;
+}
+
+static inline uint64_t pvclock_read_cycles(struct pvclock_vcpu_time_info *src,
+					   uint64_t tsc)
+{
+	uint64_t delta = tsc - src->tsc_timestamp;
+
+	return src->system_time + pvclock_scale_delta(delta,
+						      src->tsc_to_system_mul,
+						      src->tsc_shift);
+}
+
+enum {
+	STAGE_FIRST_BOOT,
+	STAGE_UNCORRECTED,
+	STAGE_CORRECTED
+};
+
+#define KVMCLOCK_GPA	0xc0000000ull
+#define KVMCLOCK_SIZE	sizeof(struct pvclock_vcpu_time_info)
+
+static void trigger_pvti_update(void)
+{
+	/*
+	 * Toggle between KVM's old and new system time methods to coerce KVM
+	 * into updating the fields in the PV time info struct.
+	 */
+	wrmsr(MSR_KVM_SYSTEM_TIME, KVMCLOCK_GPA | KVM_MSR_ENABLED);
+	wrmsr(MSR_KVM_SYSTEM_TIME_NEW, KVMCLOCK_GPA | KVM_MSR_ENABLED);
+}
+
+static void guest_code(void)
+{
+	struct pvclock_vcpu_time_info *pvti =
+		(void *)(unsigned long)KVMCLOCK_GPA;
+	struct pvclock_vcpu_time_info pvti_boot;
+	struct pvclock_vcpu_time_info pvti_uncorrected;
+	struct pvclock_vcpu_time_info pvti_corrected;
+	uint64_t tsc_guest;
+	uint64_t clk_boot, clk_uncorrected, clk_corrected;
+	int64_t delta_corrected;
+
+	/* Set up kvmclock and snapshot the initial pvclock parameters. */
+	wrmsr(MSR_KVM_SYSTEM_TIME_NEW, KVMCLOCK_GPA | KVM_MSR_ENABLED);
+	pvti_boot = *pvti;
+	GUEST_SYNC(STAGE_FIRST_BOOT);
+
+	/*
+	 * Trigger an update of the PVTI. Calculating the KVM clock using this
+	 * updated structure will show a delta from the original.
+	 */
+	trigger_pvti_update();
+	pvti_uncorrected = *pvti;
+	GUEST_SYNC(STAGE_UNCORRECTED);
+
+	/*
+	 * Snapshot the corrected time (the host does KVM_SET_CLOCK_GUEST when
+	 * handling STAGE_UNCORRECTED).
+	 */
+	pvti_corrected = *pvti;
+
+	/*
+	 * Sample the TSC at a single point in time, then calculate the
+	 * effective KVM clock using the PVTI from each stage. Verify that the
+	 * corrected clock matches the boot clock to within ±1ns.
+	 */
+	tsc_guest = rdtsc();
+
+	clk_boot = pvclock_read_cycles(&pvti_boot, tsc_guest);
+	clk_uncorrected = pvclock_read_cycles(&pvti_uncorrected, tsc_guest);
+	clk_corrected = pvclock_read_cycles(&pvti_corrected, tsc_guest);
+
+	delta_corrected = clk_boot - clk_corrected;
+
+	__GUEST_ASSERT(delta_corrected >= -2 && delta_corrected <= 2,
+		       "corrected delta %ld out of range (boot=%lu uncorrected=%lu corrected=%lu)",
+		       delta_corrected, clk_boot, clk_uncorrected, clk_corrected);
+
+	GUEST_SYNC(STAGE_CORRECTED);
+}
+
+static void run_test(struct kvm_vm *vm, struct kvm_vcpu *vcpu,
+		     unsigned int sleep_sec)
+{
+	struct pvclock_vcpu_time_info pvti_before;
+	struct ucall uc;
+
+	for (;;) {
+		vcpu_run(vcpu);
+		TEST_ASSERT_KVM_EXIT_REASON(vcpu, KVM_EXIT_IO);
+
+		switch (get_ucall(vcpu, &uc)) {
+		case UCALL_ABORT:
+			REPORT_GUEST_ASSERT(uc);
+			break;
+		case UCALL_SYNC:
+			break;
+		default:
+			TEST_FAIL("Unexpected ucall");
+		}
+
+		switch (uc.args[1]) {
+		case STAGE_FIRST_BOOT:
+			/* Save the pvclock parameters before the update. */
+			vcpu_ioctl(vcpu, KVM_GET_CLOCK_GUEST, &pvti_before);
+
+			/* Sleep to let the clocks diverge. */
+			sleep(sleep_sec);
+			break;
+
+		case STAGE_UNCORRECTED:
+			/* Restore the original pvclock parameters. */
+			vcpu_ioctl(vcpu, KVM_SET_CLOCK_GUEST, &pvti_before);
+			break;
+
+		case STAGE_CORRECTED:
+			/* Guest verified the delta in-guest. */
+			return;
+
+		default:
+			TEST_FAIL("Unknown stage %lu", uc.args[1]);
+		}
+	}
+}
+
+static void configure_pvclock(struct kvm_vm *vm)
+{
+	unsigned int nr_pages;
+
+	nr_pages = vm_calc_num_guest_pages(VM_MODE_DEFAULT, KVMCLOCK_SIZE);
+	vm_userspace_mem_region_add(vm, VM_MEM_SRC_ANONYMOUS,
+				    KVMCLOCK_GPA, 1, nr_pages, 0);
+	virt_map(vm, KVMCLOCK_GPA, KVMCLOCK_GPA, nr_pages);
+}
+
+static void run_at_frequency(uint64_t tsc_khz, unsigned int sleep_sec)
+{
+	struct kvm_vcpu *vcpu;
+	struct kvm_vm *vm;
+
+	pr_info("Testing at TSC frequency %lu kHz\n", tsc_khz);
+	vm = vm_create_with_one_vcpu(&vcpu, guest_code);
+	configure_pvclock(vm);
+	vcpu_ioctl(vcpu, KVM_SET_TSC_KHZ, (void *)tsc_khz);
+	run_test(vm, vcpu, sleep_sec);
+	kvm_vm_release(vm);
+}
+
+static void test_tsc_stable_bit(void);
+static void test_clock_guest_with_offsets(void);
+
+static void usage(const char *name)
+{
+	printf("Usage: %s [options]\n"
+	       "  -s, --sleep SEC     sleep duration between snapshots (default: 2)\n"
+	       "  -h, --help          show this help\n", name);
+}
+
+int main(int argc, char *argv[])
+{
+	static const struct option long_opts[] = {
+		{ "sleep", required_argument, NULL, 's' },
+		{ "help",  no_argument,       NULL, 'h' },
+		{ NULL,    0,                  NULL,  0  },
+	};
+	unsigned int sleep_sec = 2;
+	struct kvm_vcpu *vcpu;
+	struct kvm_vm *vm;
+	uint64_t host_khz;
+	uint64_t freq;
+	int opt;
+
+	while ((opt = getopt_long(argc, argv, "s:h", long_opts, NULL)) != -1) {
+		switch (opt) {
+		case 's':
+			sleep_sec = atoi(optarg);
+			break;
+		case 'h':
+		default:
+			usage(argv[0]);
+			return opt == 'h' ? 0 : 1;
+		}
+	}
+
+	TEST_REQUIRE(sys_clocksource_is_based_on_tsc());
+
+	vm = vm_create_with_one_vcpu(&vcpu, guest_code);
+	configure_pvclock(vm);
+
+	/* First run at native frequency (no scaling). */
+	run_test(vm, vcpu, sleep_sec);
+
+	/*
+	 * Then enumerate a range of TSC frequencies crossing the 32-bit
+	 * boundary, to exercise the scaling path at various ratios.
+	 */
+	host_khz = __vcpu_ioctl(vcpu, KVM_GET_TSC_KHZ, NULL);
+	kvm_vm_release(vm);
+
+	for (freq = 1000000; freq <= 5000000; freq += 500000) {
+		if (freq == host_khz)
+			continue;
+		run_at_frequency(freq, sleep_sec);
+	}
+
+	test_tsc_stable_bit();
+	test_clock_guest_with_offsets();
+
+	return 0;
+}
+
+static void guest_code_stable_bit(void)
+{
+	wrmsr(MSR_KVM_SYSTEM_TIME_NEW, KVMCLOCK_GPA | KVM_MSR_ENABLED);
+	GUEST_SYNC(0);
+	GUEST_SYNC(0);
+	GUEST_SYNC(0);
+}
+
+static void set_tsc_offset(struct kvm_vcpu *vcpu, uint64_t offset)
+{
+	struct kvm_device_attr attr = {
+		.group = KVM_VCPU_TSC_CTRL,
+		.attr = KVM_VCPU_TSC_OFFSET,
+		.addr = (__u64)(uintptr_t)&offset,
+	};
+	vcpu_ioctl(vcpu, KVM_SET_DEVICE_ATTR, &attr);
+}
+
+static void run_vcpu_once(struct kvm_vcpu *vcpu)
+{
+	struct ucall uc;
+
+	vcpu_run(vcpu);
+	TEST_ASSERT_KVM_EXIT_REASON(vcpu, KVM_EXIT_IO);
+	switch (get_ucall(vcpu, &uc)) {
+	case UCALL_ABORT:
+		REPORT_GUEST_ASSERT(uc);
+		break;
+	case UCALL_SYNC:
+		break;
+	default:
+		TEST_FAIL("Unexpected ucall");
+	}
+}
+
+static void test_tsc_stable_bit(void)
+{
+	struct pvclock_vcpu_time_info pvti;
+	struct kvm_vcpu *vcpus[2];
+	struct kvm_vm *vm;
+	int ret;
+
+	pr_info("Testing PVCLOCK_TSC_STABLE_BIT with matched/unmatched TSCs\n");
+
+	vm = vm_create_with_vcpus(2, guest_code_stable_bit, vcpus);
+	configure_pvclock(vm);
+
+	/*
+	 * Case 1: All TSCs matched (same frequency and offset).
+	 * Master clock should be active, PVCLOCK_TSC_STABLE_BIT set.
+	 */
+	run_vcpu_once(vcpus[0]);
+
+	ret = __vcpu_ioctl(vcpus[0], KVM_GET_CLOCK_GUEST, &pvti);
+	TEST_ASSERT(!ret, "GET_CLOCK_GUEST should succeed with matched TSCs");
+	TEST_ASSERT(pvti.flags & PVCLOCK_TSC_STABLE_BIT,
+		    "PVCLOCK_TSC_STABLE_BIT should be set with matched TSCs");
+
+	/*
+	 * Case 2: Different TSC offset, same frequency.
+	 * Master clock should still be active (frequency matches), but
+	 * PVCLOCK_TSC_STABLE_BIT should be cleared (offsets differ).
+	 */
+	set_tsc_offset(vcpus[1], 12345678);
+	run_vcpu_once(vcpus[1]);
+	run_vcpu_once(vcpus[0]);
+
+	ret = __vcpu_ioctl(vcpus[0], KVM_GET_CLOCK_GUEST, &pvti);
+	if (ret) {
+		/* Master clock disabled by offset mismatch — old kernel */
+		pr_info("  Skipping offset tests (master clock requires matched offsets)\n");
+		goto out_stable;
+	}
+	TEST_ASSERT(!(pvti.flags & PVCLOCK_TSC_STABLE_BIT),
+		    "PVCLOCK_TSC_STABLE_BIT should be clear with offset-mismatched TSCs");
+
+	/*
+	 * Case 3: Different TSC frequency.
+	 * Master clock should be disabled entirely.
+	 */
+	vcpu_ioctl(vcpus[1], KVM_SET_TSC_KHZ,
+		   (void *)(unsigned long)(__vcpu_ioctl(vcpus[1], KVM_GET_TSC_KHZ, NULL) / 2));
+	/* Write TSC to trigger kvm_synchronize_tsc / kvm_track_tsc_matching */
+	vcpu_set_msr(vcpus[1], MSR_IA32_TSC, 0);
+	run_vcpu_once(vcpus[1]);
+
+	ret = __vcpu_ioctl(vcpus[0], KVM_GET_CLOCK_GUEST, &pvti);
+	TEST_ASSERT(ret && errno == EINVAL,
+		    "GET_CLOCK_GUEST should fail with frequency-mismatched TSCs, got %d (errno %d)",
+		    ret, errno);
+
+out_stable:
+	kvm_vm_release(vm);
+}
+
+static void test_clock_guest_with_offsets(void)
+{
+	struct pvclock_vcpu_time_info pvti0, pvti1, pvti1_after;
+	struct kvm_vcpu *vcpus[2];
+	struct kvm_vm *vm;
+	int64_t delta;
+	int ret;
+
+	pr_info("Testing KVM_[GS]ET_CLOCK_GUEST with different TSC offsets\n");
+
+	vm = vm_create_with_vcpus(2, guest_code_stable_bit, vcpus);
+	configure_pvclock(vm);
+
+	/* Set different TSC offsets on the two vCPUs */
+	set_tsc_offset(vcpus[0], 0);
+	set_tsc_offset(vcpus[1], 1000000000ull);
+
+	/* Run both to establish kvmclock */
+	run_vcpu_once(vcpus[0]);
+	run_vcpu_once(vcpus[1]);
+
+	/* GET_CLOCK_GUEST on both — should succeed (master clock active) */
+	ret = __vcpu_ioctl(vcpus[0], KVM_GET_CLOCK_GUEST, &pvti0);
+	if (ret) {
+		pr_info("  Skipping (master clock requires matched offsets on this kernel)\n");
+		kvm_vm_release(vm);
+		return;
+	}
+	ret = __vcpu_ioctl(vcpus[1], KVM_GET_CLOCK_GUEST, &pvti1);
+	TEST_ASSERT(!ret, "GET_CLOCK_GUEST on vcpu1 failed");
+
+	/* The tsc_timestamps should differ (different offsets) */
+	TEST_ASSERT(pvti0.tsc_timestamp != pvti1.tsc_timestamp,
+		    "tsc_timestamps should differ with different offsets");
+
+	/* Sleep to let time elapse, then restore vcpu0's clock */
+	sleep(1);
+	vcpu_ioctl(vcpus[0], KVM_SET_CLOCK_GUEST, &pvti0);
+
+	/* Run vcpu0 to process the clock update */
+	run_vcpu_once(vcpus[0]);
+
+	/* GET_CLOCK_GUEST on vcpu1 — should reflect the correction */
+	ret = __vcpu_ioctl(vcpus[1], KVM_GET_CLOCK_GUEST, &pvti1_after);
+	TEST_ASSERT(!ret, "GET_CLOCK_GUEST on vcpu1 after SET failed");
+
+	/*
+	 * After SET on vcpu0, verify the correction worked by getting
+	 * the clock on vcpu0 again. The mul/shift should be the same,
+	 * and computing kvmclock at the same TSC should give the same
+	 * result as the original (within ±2ns).
+	 */
+	{
+		struct pvclock_vcpu_time_info pvti0_after;
+		uint64_t tsc_now, clk_from_old, clk_from_new;
+
+		ret = __vcpu_ioctl(vcpus[0], KVM_GET_CLOCK_GUEST, &pvti0_after);
+		TEST_ASSERT(!ret, "GET_CLOCK_GUEST on vcpu0 after SET failed");
+
+		tsc_now = pvti0_after.tsc_timestamp;
+		clk_from_old = pvclock_read_cycles(&pvti0, tsc_now);
+		clk_from_new = pvclock_read_cycles(&pvti0_after, tsc_now);
+
+		delta = (int64_t)clk_from_new - (int64_t)clk_from_old;
+		TEST_ASSERT(delta >= -2 && delta <= 2,
+			    "clock correction delta should be <=2ns, got %ld ns",
+			    delta);
+	}
+
+	/*
+	 * Also verify that vcpu1's clock is still accessible (master
+	 * clock still active with different offsets).
+	 */
+	ret = __vcpu_ioctl(vcpus[1], KVM_GET_CLOCK_GUEST, &pvti1_after);
+	TEST_ASSERT(!ret, "GET_CLOCK_GUEST on vcpu1 after SET failed");
+
+	kvm_vm_release(vm);
+}
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:52:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:52:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305100.1577730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXQ-00055G-T6; Sat, 09 May 2026 22:52:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305100.1577730; Sat, 09 May 2026 22:52:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXQ-000558-QG; Sat, 09 May 2026 22:52:48 +0000
Received: by outflank-mailman (input) for mailman id 1305100;
 Sat, 09 May 2026 22:52:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wLqXP-0004qN-8E
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:52:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXO-008rH7-LN; Sun, 10 May 2026 00:52:46 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffba24-2eae-0a2a0a5409dd-0a2a4506b144-48
 for <multiple-recipients>; Sun, 10 May 2026 00:52:46 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffb9cd-7371-0a2a45060019-5a9b3222d576-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:45 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-000000060LP-2pj4; Sat, 09 May 2026 22:48:30 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTD-0000000DhJ7-1V2k;
 Sat, 09 May 2026 23:48:27 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=HcPos2+xuZTjBV7pxq7NSClTpw+Fu99QdQJ5Jy1Ls+M=; b=Zf77LfPtfI70hL1gqLbAhPtLtX
	ibkr66p3p6/yNwf1wG6qqc/ms/D0cd+mf/gL9RKluGUlABJWL954X+hC7rfWjImiJ7CROZMthVqh7
	OTkMC4vADFkwf63SWHGMNbF2qJVf9rruhAcDBmTZgzvOH0jHPndB5bEQv9StPED9R1rJWRdq5KqsA
	idLIC0tiDnsbUYQlxQkaFsJ1rxU7HJqRe1UHoilCGBY2oTbY3Qok9mr4jH7I9F9puYYvsCXOgoRSg
	aGZgxEUEluS1lC7dL54o1eq6sM/iCEMUEUte4b9q7W4oNzFdeq8Z9C54Hgb9kHKHIxTuTapNwFb2v
	46Z9XONA==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 29/30] x86/kvm: Obtain TSC frequency from CPUID if present
Date: Sat,  9 May 2026 23:46:55 +0100
Message-ID: <20260509224824.3264567-30-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-16d1c6/1778366926-8FD7AD75-F860CF9A/0/0
X-purgate-type: clean
X-purgate-size: 3522

From: David Woodhouse <dwmw@amazon.co.uk>

In https://lore.kernel.org/all/1222881242.9381.17.camel@alok-dev1/
a proposal was made for generic CPUID conventions across hypervisors.
It was mostly shot down in flames, but the leaf at 0x40000010
containing timing information didn't die.

It's used by XNU and FreeBSD guests under all hypervisors to determine
the TSC frequency, and also exposed by the EC2 Nitro hypervisor and
VMware. Use it under KVM to obtain the TSC frequency more accurately,
instead of reverse-calculating the frequency from the mul/shift values
in the KVM clock.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/include/asm/kvm_para.h      |  1 +
 arch/x86/include/uapi/asm/kvm_para.h | 11 +++++++++++
 arch/x86/kernel/kvm.c                | 10 ++++++++++
 arch/x86/kernel/kvmclock.c           |  7 ++++++-
 4 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h
index 4a47c16e2df8..03fa1228fcf2 100644
--- a/arch/x86/include/asm/kvm_para.h
+++ b/arch/x86/include/asm/kvm_para.h
@@ -121,6 +121,7 @@ static inline long kvm_sev_hypercall3(unsigned int nr, unsigned long p1,
 void kvmclock_init(void);
 void kvmclock_disable(void);
 bool kvm_para_available(void);
+unsigned int kvm_para_tsc_khz(void);
 unsigned int kvm_arch_para_features(void);
 unsigned int kvm_arch_para_hints(void);
 void kvm_async_pf_task_wait_schedule(u32 token);
diff --git a/arch/x86/include/uapi/asm/kvm_para.h b/arch/x86/include/uapi/asm/kvm_para.h
index a1efa7907a0b..dc0d036fe678 100644
--- a/arch/x86/include/uapi/asm/kvm_para.h
+++ b/arch/x86/include/uapi/asm/kvm_para.h
@@ -44,6 +44,17 @@
  */
 #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT	24
 
+/*
+ * In https://lore.kernel.org/all/1222881242.9381.17.camel@alok-dev1/
+ * VMware proposed a timing information leaf providing the TSC and
+ * local APIC timer frequencies:
+ *
+ *  # EAX: (Virtual) TSC frequency in kHz.
+ *  # EBX: (Virtual) Bus (local apic timer) frequency in kHz.
+ *  # ECX, EDX: RESERVED (reserved fields are set to zero).
+ */
+#define KVM_CPUID_TIMING_INFO	0x40000010
+
 #define MSR_KVM_WALL_CLOCK  0x11
 #define MSR_KVM_SYSTEM_TIME 0x12
 
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 29226d112029..60375165b66c 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -910,6 +910,16 @@ bool kvm_para_available(void)
 }
 EXPORT_SYMBOL_GPL(kvm_para_available);
 
+unsigned int kvm_para_tsc_khz(void)
+{
+	u32 base = kvm_cpuid_base();
+
+	if (base && cpuid_eax(base) >= (base | KVM_CPUID_TIMING_INFO))
+		return cpuid_eax(base | KVM_CPUID_TIMING_INFO);
+
+	return 0;
+}
+
 unsigned int kvm_arch_para_features(void)
 {
 	return cpuid_eax(kvm_cpuid_base() | KVM_CPUID_FEATURES);
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index b5991d53fc0e..74aca22dc726 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -118,7 +118,12 @@ static inline void kvm_sched_clock_init(bool stable)
 static unsigned long kvm_get_tsc_khz(void)
 {
 	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
-	return pvclock_tsc_khz(this_cpu_pvti());
+
+	/*
+	 * If KVM advertises the frequency directly in CPUID, use that
+	 * instead of reverse-calculating it from the KVM clock data.
+	 */
+	return kvm_para_tsc_khz() ? : pvclock_tsc_khz(this_cpu_pvti());
 }
 
 static void __init kvm_get_preset_lpj(void)
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:52:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:52:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305101.1577736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXR-000580-95; Sat, 09 May 2026 22:52:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305101.1577736; Sat, 09 May 2026 22:52:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXR-00056z-1J; Sat, 09 May 2026 22:52:49 +0000
Received: by outflank-mailman (input) for mailman id 1305101;
 Sat, 09 May 2026 22:52:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wLqXP-0004qO-94
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:52:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXO-002c5y-MQ; Sun, 10 May 2026 00:52:46 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffba4c-e002-0a2a0a5209dd-0a2a450ae9e4-16
 for <multiple-recipients>; Sun, 10 May 2026 00:52:46 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffb9cd-56b3-0a2a450a0019-5a9b3222bc10-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:45 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTC-000000060L8-2QAw; Sat, 09 May 2026 22:48:27 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTB-0000000DhHG-3mRt;
 Sat, 09 May 2026 23:48:25 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=Sender:Content-Transfer-Encoding:
	MIME-Version:Message-ID:Date:Subject:To:From:Reply-To:Cc:Content-Type:
	Content-ID:Content-Description:In-Reply-To:References;
	bh=XG5p4cJcLgImpvW6Me4R9NQ4kt4cFymqrFSnQMVMwOY=; b=ES7WV1IaPYdAPQghiFOJa/RmZY
	4LlcRdnPpTdc4p2WmH6+v831QI/nCxKhQTpeiQvQrzWuSN4lUBadGmnwriNY/sd4I32yr/WcNisPu
	zxc1dbf2YiOSilzjsQoIyixtVnPxtRgYEGOk/3O7TNWwNux0b0TRIy1Ou5tsIHkzYUvYbfVgT6xxo
	TFOzByeaxUYJVDT/7L+l+B0HN24YMmuUuyb51SEhxtyguBU1yjwvirNy12P9s7lrPmH1QtMISeoV/
	VY6XaeAoQkrjuUqg8fTQThOxdknMqCh4N9HgtHWTEQqrk7RIg92pmHDd09fvkAm1nJkmrZgL2jgs/
	oRqO8Acg==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4] 00/30] Cleaning up the KVM clock mess
Date: Sat,  9 May 2026 23:46:26 +0100
Message-ID: <20260509224824.3264567-1-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-4011c0/1778366926-7C07C8B7-89B9C4F6/0/0
X-purgate-type: clean
X-purgate-size: 6354

This is v4 of the series to clean up the KVM clock, addressing review
feedback from Sean Christopherson and Paul Durrant on v3, rebased to
the current kernel, and incorporating related work from Dongli Zhang.

The KVM clock has historically suffered from three problems:

 1. Imprecision: get_kvmclock_ns() computed the clock from the *host*
    TSC without applying guest TSC scaling, causing systemic drift from
    the values the guest computes from its own TSC.

 2. Unnecessary discontinuities: gratuitous KVM_REQ_MASTERCLOCK_UPDATE
    requests caused the master clock reference point to be re-snapshotted,
    yanking the guest's clock due to arithmetic precision differences.

 3. No precise migration API: the existing KVM_[GS]ET_CLOCK only allows
    setting the clock at a given UTC reference time, which is necessarily
    imprecise. There was no way to preserve the exact arithmetic
    relationship between guest TSC and KVM clock across live migration.

This series addresses all three, and adds new APIs for precise clock
migration and TSC frequency reporting.

Changes since v3:
 - Rebased to v7.1-rc2
 - Split patch 09 (__get_kvmclock fix) into 6 incremental patches per
   Sean's review
 - Split patch 10 (TSC upscaling) into 2 patches per Sean's review
 - Split patch 15 (offset TSCs) into frequency-match vs offset-match
 - Addressed Sean's review: hw_tsc_hz overflow (u64), KVM_VCPU_TSC_SCALE
   gated on has_tsc_control, pvclock_gtod_notifier unregister path,
   kvm_get_time_scale() readability, and many more
 - Incorporated Dongli Zhang's masterclock drift mitigation, reworked as
   a proper deduplication of redundant updates via request clearing under
   the tsc_write_lock
 - Added KVM_VCPU_TSC_EFFECTIVE_FREQ attribute for userspace to populate
   CPUID timing leaves without KVM modifying guest CPUID at runtime
 - Removed runtime Xen TSC CPUID modification (was updating wrong leaf)
 - Added guest-side patches to use CPUID 0x40000010 for TSC frequency
   under both KVM and Xen
 - Selftest covers clock correction at multiple TSC frequencies,
   PVCLOCK_TSC_STABLE_BIT behaviour, and multi-vCPU offset scenarios
 - Fixed RCU splat in KVM_GET_CLOCK_GUEST (needs srcu_read_lock)

The series can be broadly grouped as:

Patches 1-5: Core clock fixes and new KVM_[GS]ET_CLOCK_GUEST API
Patches 6-8: TSC scaling prerequisites
Patches 9-14: Fix get_kvmclock() precision (split per review)
Patches 15-16: Fix kvm_guest_time_update() for TSC upscaling
Patches 17-20: Code cleanup and simplification
Patches 21-22: Allow master clock with offset TSCs
Patches 23-24: Eliminate gratuitous clock updates
Patch 25: Xen runstate negative time fix
Patch 26: Deduplicate redundant masterclock updates
Patches 27-28: TSC frequency reporting for CPUID
Patches 29-30: Guest-side CPUID frequency consumption

David Woodhouse (27):
      KVM: x86/xen: Do not corrupt KVM clock in kvm_xen_shared_info_init()
      KVM: x86: Improve accuracy of KVM clock when TSC scaling is in force
      KVM: x86: Explicitly disable TSC scaling without CONSTANT_TSC
      KVM: x86: Add KVM_VCPU_TSC_SCALE and fix the documentation on TSC migration
      KVM: x86: Avoid NTP frequency skew for KVM clock on 32-bit host
      KVM: x86: WARN if kvm_get_walltime_and_clockread() fails unexpectedly
      KVM: x86: Fold __get_kvmclock() into get_kvmclock()
      KVM: x86: Add WARN and restructure get_kvmclock()
      KVM: x86: Use get_kvmclock_base_ns() as fallback in get_kvmclock()
      KVM: x86: Fix KVM clock precision in get_kvmclock() with TSC scaling
      KVM: x86: Use get_kvmclock() in kvm_get_wall_clock_epoch()
      KVM: x86: Fix compute_guest_tsc() to handle negative time deltas
      KVM: x86: Restructure kvm_guest_time_update() for TSC upscaling
      KVM: x86: Simplify and comment kvm_get_time_scale()
      KVM: x86: Remove implicit rdtsc() from kvm_compute_l1_tsc_offset()
      KVM: x86: Improve synchronization in kvm_synchronize_tsc()
      KVM: x86: Kill last_tsc_{nsec,write,offset} fields
      KVM: x86: Replace nr_vcpus_matched_tsc count with all_vcpus_matched_tsc bool
      KVM: x86: Allow KVM master clock mode when TSCs are offset from each other
      KVM: x86: Factor out kvm_use_master_clock()
      KVM: x86: Avoid gratuitous global clock updates
      KVM: x86/xen: Prevent runstate times from becoming negative
      KVM: x86: Avoid redundant masterclock updates from multiple vCPUs
      KVM: x86: Add KVM_VCPU_TSC_EFFECTIVE_FREQ attribute
      KVM: x86: Remove runtime Xen TSC frequency CPUID update
      x86/kvm: Obtain TSC frequency from CPUID if present
      x86/xen: Obtain TSC frequency from CPUID if present

Jack Allister (3):
      UAPI: x86: Move pvclock-abi to UAPI for x86 platforms
      KVM: x86: Add KVM_[GS]ET_CLOCK_GUEST for accurate KVM clock migration
      KVM: selftests: Add KVM/PV clock selftest to prove timer correction

 Documentation/virt/kvm/api.rst                 |  37 ++
 Documentation/virt/kvm/devices/vcpu.rst        |  69 ++-
 MAINTAINERS                                    |   4 +-
 arch/x86/include/asm/kvm_host.h                |  13 +-
 arch/x86/include/asm/kvm_para.h                |   1 +
 arch/x86/include/uapi/asm/kvm.h                |  12 +
 arch/x86/include/uapi/asm/kvm_para.h           |  11 +
 arch/x86/include/{ => uapi}/asm/pvclock-abi.h  |  27 +-
 arch/x86/kernel/kvm.c                          |  10 +
 arch/x86/kernel/kvmclock.c                     |   7 +-
 arch/x86/kvm/cpuid.c                           |  16 -
 arch/x86/kvm/svm/svm.c                         |   3 +-
 arch/x86/kvm/vmx/vmx.c                         |   2 +-
 arch/x86/kvm/x86.c                             | 735 ++++++++++++++++++-------
 arch/x86/kvm/xen.c                             |  21 +-
 arch/x86/kvm/xen.h                             |  13 -
 arch/x86/xen/time.c                            |  12 +
 include/uapi/linux/kvm.h                       |   3 +
 tools/testing/selftests/kvm/Makefile.kvm       |   1 +
 tools/testing/selftests/kvm/x86/pvclock_test.c | 415 ++++++++++++++
 20 files changed, 1157 insertions(+), 255 deletions(-)
 create mode 100644 tools/testing/selftests/kvm/x86/pvclock_test.c
 rename arch/x86/include/{asm => uapi/asm}/pvclock-abi.h (82%)



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:52:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:52:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305102.1577742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXR-0005CL-Nb; Sat, 09 May 2026 22:52:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305102.1577742; Sat, 09 May 2026 22:52:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXR-0005A2-Cw; Sat, 09 May 2026 22:52:49 +0000
Received: by outflank-mailman (input) for mailman id 1305102;
 Sat, 09 May 2026 22:52:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wLqXP-0004qP-C2
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:52:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXO-00270l-PD; Sun, 10 May 2026 00:52:46 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffbabe-5cb7-0a2a0a5109dd-0a2a4506d9d8-0
 for <multiple-recipients>; Sun, 10 May 2026 00:52:46 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffb9ce-7371-0a2a45060019-5a9b3222972e-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:46 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-000000060LF-0WlZ; Sat, 09 May 2026 22:48:27 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhIP-3h9H;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=b7vK04j3ME79EByeo7DIf/aiU6TZ9fbb5omdiwpyWzc=; b=S2A6ymwriAt64z9TQK3O/qNgAN
	N8Ha10Fnpk9cyE11JyOV9pteTaq1j1VA/HgVSrPtKweFAdNaCJtwgaOB0BqIBjb2U5qybT08nHlqv
	xii0wn7hkW8fGmcyIX0jnFsCVvpGq7akuF7b9OK/S5JyBBC3Y8HtWS8HJclPsQNfa/UDTBuiPYyfn
	fhTclwPmu5i6rZ9PmzVgA0eLcOdU/nHxOFMHS54bZkPkb3Gp9jhjgUtG0NSInmOkImKCqDRj8Ae5c
	gGGeVrXNwhBE24V2+6zvu3na1yuNyDvRQ+GsAKRctkF7Ih1XQq1Q/F1Snn5YPhWeuHJWjLp83tBxT
	OXCP80SQ==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 18/30] KVM: x86: Remove implicit rdtsc() from kvm_compute_l1_tsc_offset()
Date: Sat,  9 May 2026 23:46:44 +0100
Message-ID: <20260509224824.3264567-19-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-16d1c6/1778366926-8797CD75-D2F4383B/0/0
X-purgate-type: clean
X-purgate-size: 2890

From: David Woodhouse <dwmw@amazon.co.uk>

Let the callers pass the host TSC value in as an explicit parameter.
This leaves some fairly obviously stupid code, which is using this
function to compare the guest TSC at some *other* time, with the
newly-minted TSC value from rdtsc(). Unless it's being used to measure
*elapsed* time, that isn't very sensible.

In this case, "obviously stupid" is an improvement over being
non-obviously so.

No functional change intended.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
---
 arch/x86/kvm/x86.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 980fc22ee05b..c9cbebd6a92a 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2693,11 +2693,12 @@ u64 kvm_scale_tsc(u64 tsc, u64 ratio)
 	return _tsc;
 }
 
-static u64 kvm_compute_l1_tsc_offset(struct kvm_vcpu *vcpu, u64 target_tsc)
+static u64 kvm_compute_l1_tsc_offset(struct kvm_vcpu *vcpu, u64 host_tsc,
+				     u64 target_tsc)
 {
 	u64 tsc;
 
-	tsc = kvm_scale_tsc(rdtsc(), vcpu->arch.l1_tsc_scaling_ratio);
+	tsc = kvm_scale_tsc(host_tsc, vcpu->arch.l1_tsc_scaling_ratio);
 
 	return target_tsc - tsc;
 }
@@ -2859,7 +2860,7 @@ static void kvm_synchronize_tsc(struct kvm_vcpu *vcpu, u64 *user_value)
 	bool synchronizing = false;
 
 	raw_spin_lock_irqsave(&kvm->arch.tsc_write_lock, flags);
-	offset = kvm_compute_l1_tsc_offset(vcpu, data);
+	offset = kvm_compute_l1_tsc_offset(vcpu, rdtsc(), data);
 	ns = get_kvmclock_base_ns();
 	elapsed = ns - kvm->arch.last_tsc_nsec;
 
@@ -2908,7 +2909,7 @@ static void kvm_synchronize_tsc(struct kvm_vcpu *vcpu, u64 *user_value)
 		} else {
 			u64 delta = nsec_to_cycles(vcpu, elapsed);
 			data += delta;
-			offset = kvm_compute_l1_tsc_offset(vcpu, data);
+			offset = kvm_compute_l1_tsc_offset(vcpu, rdtsc(), data);
 		}
 		matched = true;
 	}
@@ -4143,7 +4144,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
 		if (msr_info->host_initiated) {
 			kvm_synchronize_tsc(vcpu, &data);
 		} else if (!vcpu->arch.guest_tsc_protected) {
-			u64 adj = kvm_compute_l1_tsc_offset(vcpu, data) - vcpu->arch.l1_tsc_offset;
+			u64 adj = kvm_compute_l1_tsc_offset(vcpu, rdtsc(), data) -
+				  vcpu->arch.l1_tsc_offset;
 			adjust_tsc_offset_guest(vcpu, adj);
 			vcpu->arch.ia32_tsc_adjust_msr += adj;
 		}
@@ -5267,7 +5269,7 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
 			mark_tsc_unstable("KVM discovered backwards TSC");
 
 		if (kvm_check_tsc_unstable()) {
-			u64 offset = kvm_compute_l1_tsc_offset(vcpu,
+			u64 offset = kvm_compute_l1_tsc_offset(vcpu, rdtsc(),
 						vcpu->arch.last_guest_tsc);
 			kvm_vcpu_write_tsc_offset(vcpu, offset);
 			if (!vcpu->arch.guest_tsc_protected)
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:52:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:52:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305103.1577749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXS-0005MZ-4h; Sat, 09 May 2026 22:52:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305103.1577749; Sat, 09 May 2026 22:52:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXR-0005L2-S1; Sat, 09 May 2026 22:52:49 +0000
Received: by outflank-mailman (input) for mailman id 1305103;
 Sat, 09 May 2026 22:52:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wLqXP-0004qZ-J7
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:52:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXP-00270l-0L; Sun, 10 May 2026 00:52:47 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffba0e-5cb7-0a2a0a5109dd-0a2a450cd954-22
 for <multiple-recipients>; Sun, 10 May 2026 00:52:46 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffb9cd-62f1-0a2a450c0019-5a9b32228c26-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:45 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-000000060LH-1BBJ; Sat, 09 May 2026 22:48:30 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTD-0000000DhIb-00Lr;
 Sat, 09 May 2026 23:48:27 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=i7duIEXMStsWYL6WzEUEDaNP/mNDkLAL2ohxoamlxeI=; b=tUOlFFtqlQAYYwkkjSAjnrd09b
	FlczeN8fbJ55CAdtEjipsEF6BGQa+jEwKWCAu7ZQWWLZNA2WyNUiwJqoU+9cIhKfRX3YlSbjCad+8
	RJqZPdPJcvOSafcL8lIn0h/w9WRQZ42JkLCMmYn4ILswgFOm4+KN31x6l3TGrtDS/qyiqOqcGMmKo
	fW7cDJ9FimXogOx1R346817oTvmQRox1amlNQsTtmjffDrdm1jYEhJegyoEfIsc63AyrMh/jXzx7f
	Qd9kK+oZ4I03WNImARQGDVWRdK9mKi82Qx3p1Hw+Hu4WdPTsKlMcpx6Ju7nMHg0f2pvnTAmcwHySc
	jpEdKDRA==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 21/30] KVM: x86: Replace nr_vcpus_matched_tsc count with all_vcpus_matched_tsc bool
Date: Sat,  9 May 2026 23:46:47 +0100
Message-ID: <20260509224824.3264567-22-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d25034/1778366926-DB57FCF5-33742259/0/0
X-purgate-type: clean
X-purgate-size: 2980

From: David Woodhouse <dwmw@amazon.co.uk>

Using a count and comparing with kvm->online_vcpus was always racy
because a new vCPU could be created while kvm_track_tsc_matching() was
running and comparing with kvm->online_vcpus. That variable is only
atomic with respect to itself; kvm_arch_vcpu_create() runs before
kvm->online_vcpus is incremented for the new vCPU.

Replace the count with a boolean that is set in kvm_track_tsc_matching()
after comparing the count, and cleared when a new TSC generation starts.
The boolean is consumed by pvclock_update_vm_gtod_copy() under the
tsc_write_lock, which serializes against __kvm_synchronize_tsc().

Keep the count for now as it's still used in the trace event.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/include/asm/kvm_host.h |  1 +
 arch/x86/kvm/x86.c              | 13 +++++++------
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 59298a8f78eb..eb81f90284ba 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -1492,6 +1492,7 @@ struct kvm_arch {
 	u64 cur_tsc_write;
 	u64 cur_tsc_offset;
 	u64 cur_tsc_generation;
+	bool all_vcpus_matched_tsc;
 	int nr_vcpus_matched_tsc;
 
 	u32 default_tsc_khz;
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 3c68d2a4c8d0..b74fd8b088ad 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2648,11 +2648,12 @@ static void kvm_track_tsc_matching(struct kvm_vcpu *vcpu, bool new_generation)
 
 	/*
 	 * To use the masterclock, the host clocksource must be based on TSC
-	 * and all vCPUs must have matching TSCs.  Note, the count for matching
-	 * vCPUs doesn't include the reference vCPU, hence "+1".
+	 * and all vCPUs must have matching TSCs.
 	 */
-	bool use_master_clock = (ka->nr_vcpus_matched_tsc + 1 ==
-				 atomic_read(&vcpu->kvm->online_vcpus)) &&
+	ka->all_vcpus_matched_tsc = (ka->nr_vcpus_matched_tsc + 1 ==
+				     atomic_read(&vcpu->kvm->online_vcpus));
+
+	bool use_master_clock = ka->all_vcpus_matched_tsc &&
 				gtod_is_based_on_tsc(gtod->clock.vclock_mode);
 
 	/*
@@ -2837,6 +2838,7 @@ static void __kvm_synchronize_tsc(struct kvm_vcpu *vcpu, u64 offset, u64 tsc,
 		kvm->arch.cur_tsc_write = tsc;
 		kvm->arch.cur_tsc_offset = offset;
 		kvm->arch.nr_vcpus_matched_tsc = 0;
+		kvm->arch.all_vcpus_matched_tsc = false;
 	} else if (vcpu->arch.this_tsc_generation != kvm->arch.cur_tsc_generation) {
 		kvm->arch.nr_vcpus_matched_tsc++;
 	}
@@ -3176,8 +3178,7 @@ static void pvclock_update_vm_gtod_copy(struct kvm *kvm)
 	bool host_tsc_clocksource, vcpus_matched;
 
 	lockdep_assert_held(&kvm->arch.tsc_write_lock);
-	vcpus_matched = (ka->nr_vcpus_matched_tsc + 1 ==
-			atomic_read(&kvm->online_vcpus));
+	vcpus_matched = ka->all_vcpus_matched_tsc;
 
 	/*
 	 * If the host uses TSC clock, then passthrough TSC as stable
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:52:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:52:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305104.1577756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXS-0005Xy-Qa; Sat, 09 May 2026 22:52:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305104.1577756; Sat, 09 May 2026 22:52:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXS-0005W9-FU; Sat, 09 May 2026 22:52:50 +0000
Received: by outflank-mailman (input) for mailman id 1305104;
 Sat, 09 May 2026 22:52:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wLqXQ-000518-Fn
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:52:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXP-002c5y-Sz; Sun, 10 May 2026 00:52:47 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffba4c-e002-0a2a0a5209dd-0a2a450ae9e4-18
 for <multiple-recipients>; Sun, 10 May 2026 00:52:47 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffb9cf-56b3-0a2a450a0019-5a9b3222ce94-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:47 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-000000060LL-20sT; Sat, 09 May 2026 22:48:30 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTD-0000000DhIr-0oMS;
 Sat, 09 May 2026 23:48:27 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=cVUBIMjJ1XQ+25DjUmKRxKTuLcXblZ+qoogoFwNKcIc=; b=torvBl2IxVi6KiT3kAGIroWI4I
	UHAsuTdRPh4qRitOygfigQ1bAbUUG7McF3OzIG9i9a0E5Fdpf7W2dxYsdi2T+3Da7wSe5wrhAU0Hu
	UXTwlv8WaP3QzacDy4C4jM3KVH7+Pp5XHWGBU/9KK0WTB73LlGyLWuyHeZv0hc5Kyz465wyPP1mlc
	lhDLx6WzRZ83hVWzBaedx016ZIz5E3feT+mmNponeRyijVADq9F52nSgTNfk9oNhSl0O0YtolH7OG
	473u+7Q9XkH2jKKZnfrEAA5BnEuleCjxcuQLdk9/M+yQswQjTCyZ3FIwzZHbaOwIrPfMtA7EknKKU
	2zPWQIJA==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 25/30] KVM: x86/xen: Prevent runstate times from becoming negative
Date: Sat,  9 May 2026 23:46:51 +0100
Message-ID: <20260509224824.3264567-26-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-4011c0/1778366927-6FB5F8B7-CB0D16A1/0/0
X-purgate-type: clean
X-purgate-size: 2734

From: David Woodhouse <dwmw@amazon.co.uk>

When kvm_xen_update_runstate() is invoked to set a vCPU's runstate, the
time spent in the previous runstate is accounted. This is based on the
delta between the current KVM clock time, and the previous value stored
in vcpu->arch.xen.runstate_entry_time.

If the KVM clock goes backwards, that delta will be negative. Or, since
it's an unsigned 64-bit integer, very *large*. Linux guests deal with
that particularly badly, reporting 100% steal time for ever more (well,
for *centuries* at least, until the delta has been consumed).

So when a negative delta is detected, just refrain from updating the
runstates until the KVM clock catches up with runstate_entry_time again.

Also clamp steal_ns to delta_ns to prevent steal time from exceeding
the total elapsed time, and handle negative steal_ns (which can happen
if run_delay goes backwards across a scheduler update).

The userspace APIs for setting the runstate times do not allow them to
be set past the current KVM clock, but userspace can still adjust the
KVM clock *after* setting the runstate times, which would cause this
situation to occur.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
---
 arch/x86/kvm/xen.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c
index 82e34edbfdbd..fef52b8ea26a 100644
--- a/arch/x86/kvm/xen.c
+++ b/arch/x86/kvm/xen.c
@@ -586,24 +586,33 @@ void kvm_xen_update_runstate(struct kvm_vcpu *v, int state)
 {
 	struct kvm_vcpu_xen *vx = &v->arch.xen;
 	u64 now = get_kvmclock_ns(v->kvm);
-	u64 delta_ns = now - vx->runstate_entry_time;
 	u64 run_delay = current->sched_info.run_delay;
+	s64 delta_ns = now - vx->runstate_entry_time;
+	s64 steal_ns = run_delay - vx->last_steal;
 
 	if (unlikely(!vx->runstate_entry_time))
 		vx->current_runstate = RUNSTATE_offline;
 
+	vx->last_steal = run_delay;
+
+	/*
+	 * If KVM clock time went backwards, stop updating until it
+	 * catches up (or the runstates are reset by userspace).
+	 */
+	if (delta_ns < 0)
+		return;
+
 	/*
 	 * Time waiting for the scheduler isn't "stolen" if the
 	 * vCPU wasn't running anyway.
 	 */
-	if (vx->current_runstate == RUNSTATE_running) {
-		u64 steal_ns = run_delay - vx->last_steal;
+	if (vx->current_runstate == RUNSTATE_running && steal_ns > 0) {
+		if (steal_ns > delta_ns)
+			steal_ns = delta_ns;
 
 		delta_ns -= steal_ns;
-
 		vx->runstate_times[RUNSTATE_runnable] += steal_ns;
 	}
-	vx->last_steal = run_delay;
 
 	vx->runstate_times[vx->current_runstate] += delta_ns;
 	vx->current_runstate = state;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:52:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:52:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305105.1577762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXT-0005eb-70; Sat, 09 May 2026 22:52:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305105.1577762; Sat, 09 May 2026 22:52:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXS-0005cd-Rw; Sat, 09 May 2026 22:52:50 +0000
Received: by outflank-mailman (input) for mailman id 1305105;
 Sat, 09 May 2026 22:52:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wLqXQ-000532-LL
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:52:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXQ-006SzZ-2G; Sun, 10 May 2026 00:52:48 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffba91-bab6-0a2a0a5309dd-0a2a450884bc-22
 for <multiple-recipients>; Sun, 10 May 2026 00:52:48 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffb9cf-63b5-0a2a45080019-5a9b322294c0-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:47 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-000000060LJ-1pmT; Sat, 09 May 2026 22:48:31 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTD-0000000DhIj-0Fe7;
 Sat, 09 May 2026 23:48:27 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=Sender:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:
	From:Reply-To:Cc:Content-ID:Content-Description;
	bh=fg8C3e0zngZ/qjTwoH3UeG+KjIQgclDXz6pRh4tinms=; b=PKujpKHmlrgXqjPVL9jaYkGJO3
	T53JltigiUhtpHLz+35Soyi64kAnFI6avFDSQ7/IsNyZ28l+qFCRvclVStCfZHOZz828JXHb31UdJ
	N7lE9EYlEhuJZCzxJ4ROVt9rXq8DoQ6Kq4DUaUrRGuQx0dP4khkmjRDJ/M13crOzpM7oqACBUXIs3
	Q4nD8VTOzo/a5INBq2ieHxDAu27u1CaWybhnejK7d4D9LRkfa7L3FXKr81GvuOhbDZFGzyrQ8YMGi
	8v/2/UeGdEcEt4bq95OSqY24tuE+B53teUl+Vpo85e3cKBhcevIqPiHpEnEnceUh3LIMiGmLn2PyW
	NDQeV2eg==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 23/30] KVM: x86: Factor out kvm_use_master_clock()
Date: Sat,  9 May 2026 23:46:49 +0100
Message-ID: <20260509224824.3264567-24-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-c1860d/1778366927-BFD7BDB1-47E21989/13/0
X-purgate-type: clean
X-purgate-size: 3576

From: David Woodhouse <dwmw@amazon.co.uk>

Both kvm_track_tsc_matching() and pvclock_update_vm_gtod_copy() make a
decision about whether the KVM clock should be in master clock mode.
They used *different* criteria for the decision though. This isn't
really a problem; it only has the potential to cause unnecessary
invocations of KVM_REQ_MASTERCLOCK_UPDATE if the masterclock was
disabled due to TSC going backwards, or the guest using the old MSR.
But it isn't pretty.

Factor the decision out to a single function. And document the
historical reason why it's disabled for guests that use the old
MSR_KVM_SYSTEM_TIME.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
---
 arch/x86/kvm/x86.c | 33 ++++++++++++++++++++++++++-------
 1 file changed, 26 insertions(+), 7 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index d36d03b8268e..0656d901fe79 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2640,6 +2640,27 @@ static inline bool gtod_is_based_on_tsc(int mode)
 }
 #endif
 
+static bool kvm_use_master_clock(struct kvm *kvm)
+{
+	struct kvm_arch *ka = &kvm->arch;
+
+	/*
+	 * The 'old kvmclock' check is a workaround (from 2015) for a
+	 * SUSE 2.6.16 kernel that didn't boot if the system_time in
+	 * its kvmclock was too far behind the current time. So the
+	 * mode of just setting the reference point and allowing time
+	 * to proceed linearly from there makes it fail to boot.
+	 * Despite that being kind of the *point* of the way the clock
+	 * is exposed to the guest. By coincidence, the offending
+	 * kernels used the old MSR_KVM_SYSTEM_TIME, which was moved
+	 * only because it resided in the wrong number range. So the
+	 * workaround is activated for *all* guests using the old MSR.
+	 */
+	return ka->all_vcpus_matched_freq &&
+		!ka->backwards_tsc_observed &&
+		!ka->boot_vcpu_runs_old_kvmclock;
+}
+
 static void kvm_track_tsc_matching(struct kvm_vcpu *vcpu, bool new_generation)
 {
 #ifdef CONFIG_X86_64
@@ -2662,7 +2683,7 @@ static void kvm_track_tsc_matching(struct kvm_vcpu *vcpu, bool new_generation)
 	 * are fine — each vCPU's pvclock has its own tsc_timestamp that
 	 * accounts for its offset.
 	 */
-	bool use_master_clock = ka->all_vcpus_matched_freq &&
+	bool use_master_clock = kvm_use_master_clock(vcpu->kvm) &&
 				gtod_is_based_on_tsc(gtod->clock.vclock_mode);
 
 	/*
@@ -3190,10 +3211,9 @@ static void pvclock_update_vm_gtod_copy(struct kvm *kvm)
 #ifdef CONFIG_X86_64
 	struct kvm_arch *ka = &kvm->arch;
 	int vclock_mode;
-	bool host_tsc_clocksource, vcpus_matched;
+	bool host_tsc_clocksource;
 
 	lockdep_assert_held(&kvm->arch.tsc_write_lock);
-	vcpus_matched = ka->all_vcpus_matched_freq;
 
 	/*
 	 * If the host uses TSC clock, then passthrough TSC as stable
@@ -3203,9 +3223,8 @@ static void pvclock_update_vm_gtod_copy(struct kvm *kvm)
 					&ka->master_kernel_ns,
 					&ka->master_cycle_now);
 
-	ka->use_master_clock = host_tsc_clocksource && vcpus_matched
-				&& !ka->backwards_tsc_observed
-				&& !ka->boot_vcpu_runs_old_kvmclock;
+	ka->use_master_clock = host_tsc_clocksource &&
+				kvm_use_master_clock(kvm);
 
 	if (ka->use_master_clock) {
 		u64 tsc_hz;
@@ -3231,7 +3250,7 @@ static void pvclock_update_vm_gtod_copy(struct kvm *kvm)
 
 	vclock_mode = pvclock_gtod_data.clock.vclock_mode;
 	trace_kvm_update_master_clock(ka->use_master_clock, vclock_mode,
-					vcpus_matched);
+					ka->all_vcpus_matched_freq);
 #endif
 }
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:52:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:52:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305106.1577768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXT-0005kL-I0; Sat, 09 May 2026 22:52:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305106.1577768; Sat, 09 May 2026 22:52:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXT-0005j1-7k; Sat, 09 May 2026 22:52:51 +0000
Received: by outflank-mailman (input) for mailman id 1305106;
 Sat, 09 May 2026 22:52:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wLqXQ-00054w-S0
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:52:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXQ-00270l-8r; Sun, 10 May 2026 00:52:48 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffba8c-5cb7-0a2a0a5109dd-0a2a4502af40-16
 for <multiple-recipients>; Sun, 10 May 2026 00:52:48 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffb9cf-af86-0a2a45020019-5a9b322294d0-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:47 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-000000060LG-11bn; Sat, 09 May 2026 22:48:30 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhIX-44HE;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=iwNDogNMnm4WL4MqrZc8nsIfoorb7pJAk0uuGh5ggK4=; b=mRIMgmptP6nlE1xwJJE7wWchlj
	c5hj715Dq8L1J2PI/D8dsuU7xrbXhQSFIt0oyARLK3GdPSMaIrfKJHxkF9HDegFgOkjueS3rlt6/W
	67i4Frua5/XiZINxBRRzCpomDpKO/csTN/dT245yPE+YO/RGSemOgeVIrNqUFKZUie5YfIuoBg59D
	g4vHNMHV7b+p80wEm1WwTOrLjMRW61Rdrzxh+x2pC5SJvDvJ5xkIWKHTGA60lHzLK+h51bNW2SkUq
	GFEo/NItxLK2xl668Yom6hg1gOvV+KTatfa1uufQQBtqoY9AZDAAT79NjCzqnQxh6Fr9HrZUmpbLh
	cxvDdfFQ==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 20/30] KVM: x86: Kill last_tsc_{nsec,write,offset} fields
Date: Sat,  9 May 2026 23:46:46 +0100
Message-ID: <20260509224824.3264567-21-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-720697/1778366927-AB762161-F367B231/13/0
X-purgate-type: clean
X-purgate-size: 5500

From: David Woodhouse <dwmw@amazon.co.uk>

These pointlessly duplicate the cur_tsc_{nsec,write,offset} values.
The only place they were used was where the TSC is stable and a new
vCPU is being synchronized to the previous setting, in which case the
cur_tsc_* value is definitely identical.

Rename last_tsc_khz and last_tsc_scaling_ratio to cur_tsc_khz and
cur_tsc_scaling_ratio respectively, since they are properties of the
current TSC generation.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
---
 arch/x86/include/asm/kvm_host.h |  7 ++-----
 arch/x86/kvm/x86.c              | 32 ++++++++++++++------------------
 2 files changed, 16 insertions(+), 23 deletions(-)

diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 5348fd5ea3f3..59298a8f78eb 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -1486,11 +1486,8 @@ struct kvm_arch {
 	 * preemption-disabled region, so it must be a raw spinlock.
 	 */
 	raw_spinlock_t tsc_write_lock;
-	u64 last_tsc_nsec;
-	u64 last_tsc_write;
-	u32 last_tsc_khz;
-	u64 last_tsc_offset;
-	u64 last_tsc_scaling_ratio;
+	u32 cur_tsc_khz;
+	u64 cur_tsc_scaling_ratio;
 	u64 cur_tsc_nsec;
 	u64 cur_tsc_write;
 	u64 cur_tsc_offset;
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 097df58749c3..3c68d2a4c8d0 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2813,14 +2813,12 @@ static void __kvm_synchronize_tsc(struct kvm_vcpu *vcpu, u64 offset, u64 tsc,
 		vcpu->kvm->arch.user_set_tsc = true;
 
 	/*
-	 * We also track th most recent recorded KHZ, write and time to
-	 * allow the matching interval to be extended at each write.
+	 * Track the TSC frequency, scaling ratio, and offset for the current
+	 * generation. These are used to detect matching TSC writes and to
+	 * compute the guest TSC from the host clock.
 	 */
-	kvm->arch.last_tsc_nsec = ns;
-	kvm->arch.last_tsc_write = tsc;
-	kvm->arch.last_tsc_khz = vcpu->arch.virtual_tsc_khz;
-	kvm->arch.last_tsc_offset = offset;
-	kvm->arch.last_tsc_scaling_ratio = vcpu->arch.l1_tsc_scaling_ratio;
+	kvm->arch.cur_tsc_khz = vcpu->arch.virtual_tsc_khz;
+	kvm->arch.cur_tsc_scaling_ratio = vcpu->arch.l1_tsc_scaling_ratio;
 
 	vcpu->arch.last_guest_tsc = tsc;
 
@@ -2833,8 +2831,6 @@ static void __kvm_synchronize_tsc(struct kvm_vcpu *vcpu, u64 offset, u64 tsc,
 		 * nanosecond time, offset, and write, so if TSCs are in
 		 * sync, we can match exact offset, and if not, we can match
 		 * exact software computation in compute_guest_tsc()
-		 *
-		 * These values are tracked in kvm->arch.cur_xxx variables.
 		 */
 		kvm->arch.cur_tsc_generation++;
 		kvm->arch.cur_tsc_nsec = ns;
@@ -2873,7 +2869,7 @@ static void kvm_synchronize_tsc(struct kvm_vcpu *vcpu, u64 *user_value)
 	raw_spin_lock_irqsave(&kvm->arch.tsc_write_lock, flags);
 
 	offset = kvm_compute_l1_tsc_offset(vcpu, host_tsc, data);
-	elapsed = ns - kvm->arch.last_tsc_nsec;
+	elapsed = ns - kvm->arch.cur_tsc_nsec;
 
 	if (vcpu->arch.virtual_tsc_khz) {
 		if (data == 0) {
@@ -2883,7 +2879,7 @@ static void kvm_synchronize_tsc(struct kvm_vcpu *vcpu, u64 *user_value)
 			 */
 			synchronizing = true;
 		} else if (kvm->arch.user_set_tsc) {
-			u64 tsc_exp = kvm->arch.last_tsc_write +
+			u64 tsc_exp = kvm->arch.cur_tsc_write +
 						nsec_to_cycles(vcpu, elapsed);
 			u64 tsc_hz = vcpu->arch.virtual_tsc_khz * 1000LL;
 			/*
@@ -2914,14 +2910,14 @@ static void kvm_synchronize_tsc(struct kvm_vcpu *vcpu, u64 *user_value)
 	 * it's better to try to match offsets from the beginning.
          */
 	if (synchronizing &&
-	    vcpu->arch.virtual_tsc_khz == kvm->arch.last_tsc_khz) {
+	    vcpu->arch.virtual_tsc_khz == kvm->arch.cur_tsc_khz) {
 		/*
 		 * If synchronizing, the "last written" TSC value/time
 		 * recorded by __kvm_synchronize_tsc() should not change
 		 * (i.e. should be precisely the same as the existing
 		 * generation).
 		 */
-		data = kvm->arch.last_tsc_write;
+		data = kvm->arch.cur_tsc_write;
 
 		if (!kvm_check_tsc_unstable()) {
 			offset = kvm->arch.cur_tsc_offset;
@@ -3206,7 +3202,7 @@ static void pvclock_update_vm_gtod_copy(struct kvm *kvm)
 		 * get_kvmclock() to compute kvmclock from the host TSC
 		 * without needing a vCPU reference.
 		 */
-		ka->master_tsc_scaling_ratio = ka->last_tsc_scaling_ratio;
+		ka->master_tsc_scaling_ratio = ka->cur_tsc_scaling_ratio;
 		tsc_hz = (u64)get_cpu_tsc_khz() * 1000;
 		if (tsc_hz && kvm_caps.has_tsc_control)
 			tsc_hz = kvm_scale_tsc(tsc_hz,
@@ -6075,8 +6071,8 @@ static int kvm_arch_tsc_set_attr(struct kvm_vcpu *vcpu,
 		raw_spin_lock_irqsave(&kvm->arch.tsc_write_lock, flags);
 
 		matched = (vcpu->arch.virtual_tsc_khz &&
-			   kvm->arch.last_tsc_khz == vcpu->arch.virtual_tsc_khz &&
-			   kvm->arch.last_tsc_offset == offset);
+			   kvm->arch.cur_tsc_khz == vcpu->arch.virtual_tsc_khz &&
+			   kvm->arch.cur_tsc_offset == offset);
 
 		tsc = kvm_scale_tsc(rdtsc(), vcpu->arch.l1_tsc_scaling_ratio) + offset;
 		ns = get_kvmclock_base_ns();
@@ -13520,8 +13516,8 @@ int kvm_arch_enable_virtualization_cpu(void)
 			 * you may have some problem.  Solving this issue is
 			 * left as an exercise to the reader.
 			 */
-			kvm->arch.last_tsc_nsec = 0;
-			kvm->arch.last_tsc_write = 0;
+			kvm->arch.cur_tsc_nsec = 0;
+			kvm->arch.cur_tsc_write = 0;
 		}
 
 	}
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:52:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:52:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305107.1577770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXU-0005uO-1d; Sat, 09 May 2026 22:52:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305107.1577770; Sat, 09 May 2026 22:52:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXT-0005sG-Ok; Sat, 09 May 2026 22:52:51 +0000
Received: by outflank-mailman (input) for mailman id 1305107;
 Sat, 09 May 2026 22:52:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wLqXR-000585-AO
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:52:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXQ-006SzZ-NA; Sun, 10 May 2026 00:52:48 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffba4c-bab6-0a2a0a5309dd-0a2a4507d1b8-14
 for <multiple-recipients>; Sun, 10 May 2026 00:52:48 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffb9d0-229c-0a2a45070019-5a9b3222c1fe-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:48 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTC-000000060LA-3IS1; Sat, 09 May 2026 22:48:27 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhHl-1rbg;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=XMpTG0soXwBy/thkGcHgDsOpdH9egi4Ry9N+LywUSzQ=; b=EKu/r3asoX2SfZ406BfO/egThQ
	F7iNeLfLoiU4BsuJsLO9wR8exCZfZ16VgO9TgglaLHmvaRE6F70VHCnwl5QPDB/JwnS10nhgau/yJ
	J7wo3Gx/Lb6KtqMv+CitqIMVfrl98+1mN1P9qTui4wUaHmhIF2QPv9yvu5B+ImTV0eMefXLrJykZI
	RZJN17BBtlrWPeX5MOsjcAWOEZY+jE7pmxG6iDAaJ3T+mJBuYORNrVKRUOhpuPNI4KwilZw/E9oC2
	RqxHvK8aRbu2faUJNYRKNfBxBr/ZIi3kMgj6xBoxv/3p4ZSilEZi4CxBzlFx3KoZ7DRnwk1LjYxuB
	p3RWaigw==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 08/30] KVM: x86: Avoid NTP frequency skew for KVM clock on 32-bit host
Date: Sat,  9 May 2026 23:46:34 +0100
Message-ID: <20260509224824.3264567-9-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-ef75cf/1778366928-09D6FC48-54E68A94/13/0
X-purgate-type: clean
X-purgate-size: 3670

From: David Woodhouse <dwmw@amazon.co.uk>

Commit 53fafdbb8b21 ("KVM: x86: switch KVMCLOCK base to monotonic raw
clock") did so only for 64-bit hosts, by capturing the boot offset from
within the existing clocksource notifier update_pvclock_gtod().

That notifier was added in commit 16e8d74d2da9 ("KVM: x86: notifier for
clocksource changes") but only on x86_64, because its original purpose
was just to disable the "master clock" mode which is only supported on
x86_64.

Now that the notifier is used for more than disabling master clock mode,
enable it for the 32-bit build too so that get_kvmclock_base_ns() can be
unaffected by NTP sync on 32-bit too.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
---
 arch/x86/kvm/x86.c | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 2179ea2da8e0..1e1834533e98 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2342,7 +2342,6 @@ static int do_set_msr(struct kvm_vcpu *vcpu, unsigned index, u64 *data)
 	return kvm_set_msr_ignored_check(vcpu, index, *data, true);
 }
 
-#ifdef CONFIG_X86_64
 struct pvclock_clock {
 	int vclock_mode;
 	u64 cycle_last;
@@ -2400,13 +2399,6 @@ static s64 get_kvmclock_base_ns(void)
 	/* Count up from boot time, but with the frequency of the raw clock.  */
 	return ktime_to_ns(ktime_add(ktime_get_raw(), pvclock_gtod_data.offs_boot));
 }
-#else
-static s64 get_kvmclock_base_ns(void)
-{
-	/* Master clock not used, so we can just use CLOCK_BOOTTIME.  */
-	return ktime_get_boottime_ns();
-}
-#endif
 
 static void kvm_write_wall_clock(struct kvm *kvm, gpa_t wall_clock, int sec_hi_ofs)
 {
@@ -10160,6 +10152,7 @@ static void pvclock_irq_work_fn(struct irq_work *w)
 }
 
 static DEFINE_IRQ_WORK(pvclock_irq_work, pvclock_irq_work_fn);
+#endif
 
 /*
  * Notification about pvclock gtod data update.
@@ -10167,26 +10160,26 @@ static DEFINE_IRQ_WORK(pvclock_irq_work, pvclock_irq_work_fn);
 static int pvclock_gtod_notify(struct notifier_block *nb, unsigned long unused,
 			       void *priv)
 {
-	struct pvclock_gtod_data *gtod = &pvclock_gtod_data;
 	struct timekeeper *tk = priv;
 
 	update_pvclock_gtod(tk);
 
+#ifdef CONFIG_X86_64
 	/*
 	 * Disable master clock if host does not trust, or does not use,
 	 * TSC based clocksource. Delegate queue_work() to irq_work as
 	 * this is invoked with tk_core.seq write held.
 	 */
-	if (!gtod_is_based_on_tsc(gtod->clock.vclock_mode) &&
+	if (!gtod_is_based_on_tsc(pvclock_gtod_data.clock.vclock_mode) &&
 	    atomic_read(&kvm_guest_has_master_clock) != 0)
 		irq_work_queue(&pvclock_irq_work);
+#endif
 	return 0;
 }
 
 static struct notifier_block pvclock_gtod_notifier = {
 	.notifier_call = pvclock_gtod_notify,
 };
-#endif
 
 void kvm_setup_xss_caps(void)
 {
@@ -10375,9 +10368,9 @@ int kvm_x86_vendor_init(struct kvm_x86_init_ops *ops)
 
 	if (pi_inject_timer == -1)
 		pi_inject_timer = housekeeping_enabled(HK_TYPE_TIMER);
-#ifdef CONFIG_X86_64
 	pvclock_gtod_register_notifier(&pvclock_gtod_notifier);
 
+#ifdef CONFIG_X86_64
 	if (hypervisor_is_type(X86_HYPER_MS_HYPERV))
 		set_hv_tscchange_cb(kvm_hyperv_tsc_notifier);
 #endif
@@ -10434,8 +10427,8 @@ void kvm_x86_vendor_exit(void)
 					    CPUFREQ_TRANSITION_NOTIFIER);
 		cpuhp_remove_state_nocalls(CPUHP_AP_X86_KVM_CLK_ONLINE);
 	}
-#ifdef CONFIG_X86_64
 	pvclock_gtod_unregister_notifier(&pvclock_gtod_notifier);
+#ifdef CONFIG_X86_64
 	irq_work_sync(&pvclock_irq_work);
 	cancel_work_sync(&pvclock_gtod_work);
 #endif
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:52:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:52:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305109.1577803 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXZ-0007Co-O5; Sat, 09 May 2026 22:52:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305109.1577803; Sat, 09 May 2026 22:52:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXZ-0007Bf-G4; Sat, 09 May 2026 22:52:57 +0000
Received: by outflank-mailman (input) for mailman id 1305109;
 Sat, 09 May 2026 22:52:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wLqXX-000748-Pe
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:52:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXX-006SzZ-6b; Sun, 10 May 2026 00:52:55 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffba91-bab6-0a2a0a5309dd-0a2a450884bc-28
 for <multiple-recipients>; Sun, 10 May 2026 00:52:55 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+34a25b45fb3f66caac6a+8294+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 69ffb9d6-63b5-0a2a45080019-5a9b3222c200-3
 for <multiple-recipients>; Sun, 10 May 2026 00:48:54 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-000000060LN-26fo; Sat, 09 May 2026 22:48:27 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTD-0000000DhIz-16xH;
 Sat, 09 May 2026 23:48:27 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=iccKma5DaUh/za+fsn0g6dyqukLvuPzbIDc21T+eVFU=; b=u6RYDSbD4U67hGcbeOF2FyQMxF
	4dNfxJgj+Jw1VpmpgORUTUZi/lx3jqCjscmmNps9Ktu6RmyhKNQqG8Zrshc/lCMPNKFIfu5ClurIy
	afITS5d2xHSMWTG1ed+ca466NtWYvBcu88t51HCKij8WUt4q45fFjeqxZY2/6d429QdDCMJqzlYX7
	P+yZB0umg7J4duqoMjVX9Fgti9c5kdgIh1TnkR32o+5SZVuXwWnuwEIwgF0Q+TO4dsFx/cw9gg56g
	4jcjQhe2ozp2dKpbnlzBRde2x4i2wfno53zqxKIRk7l41GA2YKpPWUPfJlcBAfuh3NmuEZZFoC7Td
	q83vedYA==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 27/30] KVM: x86: Add KVM_VCPU_TSC_EFFECTIVE_FREQ attribute
Date: Sat,  9 May 2026 23:46:53 +0100
Message-ID: <20260509224824.3264567-28-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-c1860d/1778366934-BF77EDB1-33DC7014/13/0
X-purgate-type: clean
X-purgate-size: 5057

From: David Woodhouse <dwmw@amazon.co.uk>

Add a read-only per-vCPU attribute that reports the effective TSC and
APIC bus frequencies as seen by the guest, after hardware TSC scaling
is applied.

This allows userspace to populate CPUID leaf 0x40000010 (the "generic"
timing information leaf used by FreeBSD, XNU, and VMware) with correct
values, without KVM needing to modify guest CPUID at runtime.

The effective TSC frequency differs from what userspace requested via
KVM_SET_TSC_KHZ due to the granularity of hardware scaling and the
host kernel's measurement of its own TSC frequency.

The relationship between the attributes in KVM_VCPU_TSC_CTRL:

  KVM_VCPU_TSC_OFFSET: the offset added to the scaled host TSC
  KVM_VCPU_TSC_SCALE: the raw hardware scaling ratio and frac_bits,
    for VMClock and precise arithmetic
  KVM_VCPU_TSC_EFFECTIVE_FREQ: the resulting frequencies in kHz,
    for populating CPUID leaves

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 Documentation/virt/kvm/devices/vcpu.rst | 33 +++++++++++++++++++++++++
 arch/x86/include/uapi/asm/kvm.h         |  6 +++++
 arch/x86/kvm/x86.c                      | 23 +++++++++++++++++
 3 files changed, 62 insertions(+)

diff --git a/Documentation/virt/kvm/devices/vcpu.rst b/Documentation/virt/kvm/devices/vcpu.rst
index 56562b932280..75d1c2bbb8bc 100644
--- a/Documentation/virt/kvm/devices/vcpu.rst
+++ b/Documentation/virt/kvm/devices/vcpu.rst
@@ -326,3 +326,36 @@ host TSC values are converted to guest TSC using the formula:
 Userspace can use this to precisely calculate the guest TSC from the host
 TSC at any given moment. This is needed for accurate migration of guests,
 as described in the documentation for the KVM_VCPU_TSC_OFFSET attribute.
+
+4.3 ATTRIBUTE: KVM_VCPU_TSC_EFFECTIVE_FREQ
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:Parameters: struct kvm_vcpu_tsc_effective_freq
+
+Returns:
+
+	 ======= ======================================
+	 -EFAULT Error reading the provided parameter
+		 address.
+	 -ENXIO  Attribute not supported (no constant TSC)
+	 ======= ======================================
+
+This read-only attribute reports the effective TSC and APIC bus timer
+frequencies as observed by the guest, after hardware TSC scaling is
+applied::
+
+  struct kvm_vcpu_tsc_effective_freq {
+	__u32 tsc_khz;
+	__u32 bus_khz;
+  };
+
+The tsc_khz field is the guest's effective TSC frequency in kHz. This
+may differ slightly from what userspace requested via KVM_SET_TSC_KHZ
+due to the granularity of hardware scaling and the host kernel's
+measurement of its own TSC frequency.
+
+The bus_khz field is the APIC bus timer frequency in kHz.
+
+Userspace can use these values to populate CPUID timing leaves for the
+guest, such as the generic timing leaf at 0x40000010 (EAX=tsc_khz,
+EBX=bus_khz) or hypervisor-specific equivalents.
diff --git a/arch/x86/include/uapi/asm/kvm.h b/arch/x86/include/uapi/asm/kvm.h
index 384be9a53395..196899296f84 100644
--- a/arch/x86/include/uapi/asm/kvm.h
+++ b/arch/x86/include/uapi/asm/kvm.h
@@ -962,12 +962,18 @@ struct kvm_hyperv_eventfd {
 #define KVM_VCPU_TSC_CTRL 0 /* control group for the timestamp counter (TSC) */
 #define   KVM_VCPU_TSC_OFFSET 0 /* attribute for the TSC offset */
 #define   KVM_VCPU_TSC_SCALE  1 /* attribute for TSC scaling factor */
+#define   KVM_VCPU_TSC_EFFECTIVE_FREQ 2 /* attribute for effective frequencies */
 
 struct kvm_vcpu_tsc_scale {
 	__u64 tsc_ratio;
 	__u64 tsc_frac_bits;
 };
 
+struct kvm_vcpu_tsc_effective_freq {
+	__u32 tsc_khz;
+	__u32 bus_khz;
+};
+
 /* x86-specific KVM_EXIT_HYPERCALL flags. */
 #define KVM_EXIT_HYPERCALL_LONG_MODE	_BITULL(0)
 
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 77dfd4455a4e..c15303963686 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -6079,6 +6079,9 @@ static int kvm_arch_tsc_has_attr(struct kvm_vcpu *vcpu,
 	case KVM_VCPU_TSC_SCALE:
 		r = kvm_caps.has_tsc_control ? 0 : -ENXIO;
 		break;
+	case KVM_VCPU_TSC_EFFECTIVE_FREQ:
+		r = boot_cpu_has(X86_FEATURE_CONSTANT_TSC) ? 0 : -ENXIO;
+		break;
 	default:
 		r = -ENXIO;
 	}
@@ -6115,6 +6118,25 @@ static int kvm_arch_tsc_get_attr(struct kvm_vcpu *vcpu,
 		r = 0;
 		break;
 	}
+	case KVM_VCPU_TSC_EFFECTIVE_FREQ: {
+		struct kvm_vcpu_tsc_effective_freq freq;
+
+		if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) {
+			r = -ENXIO;
+			break;
+		}
+
+		if (kvm_check_request(KVM_REQ_CLOCK_UPDATE, vcpu))
+			kvm_guest_time_update(vcpu);
+
+		freq.tsc_khz = div_u64(vcpu->arch.hw_tsc_hz, 1000);
+		freq.bus_khz = 1000000 / vcpu->kvm->arch.apic_bus_cycle_ns;
+		r = -EFAULT;
+		if (copy_to_user(uaddr, &freq, sizeof(freq)))
+			break;
+		r = 0;
+		break;
+	}
 	default:
 		r = -ENXIO;
 	}
@@ -6155,6 +6177,7 @@ static int kvm_arch_tsc_set_attr(struct kvm_vcpu *vcpu,
 		break;
 	}
 	case KVM_VCPU_TSC_SCALE:
+	case KVM_VCPU_TSC_EFFECTIVE_FREQ:
 		r = -EINVAL; /* Read only */
 		break;
 	default:
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:53:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:53:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305120.1577812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXf-0007nO-4A; Sat, 09 May 2026 22:53:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305120.1577812; Sat, 09 May 2026 22:53:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXe-0007mx-Sm; Sat, 09 May 2026 22:53:02 +0000
Received: by outflank-mailman (input) for mailman id 1305120;
 Sat, 09 May 2026 22:53:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqXd-0007i0-Si
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:53:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXd-006SzZ-9C; Sun, 10 May 2026 00:53:01 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffba1a-bab6-0a2a0a5309dd-0a2a4501b8f8-24
 for <multiple-recipients>; Sun, 10 May 2026 00:53:01 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9dc-c1f2-0a2a45010019-5a9b5cc7e740-3
 for <multiple-recipients>; Sun, 10 May 2026 00:49:00 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wzD-0P9r; Sat, 09 May 2026 22:48:28 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhHx-2Z87;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=r8GUuEfSqVDY4ObHqgt5fkCwzZUXPNLZaFFwnl8uecE=; b=HmsoA/x37thVn7QmEUqzXzZ9dp
	ISe/5Rd32SNWt4q/Hbqvi9qSeQ3m/RtXJVGMmKWoN+OBAG8rHeLvJxRArpgwhp/bdKz6lzirvf8+j
	lU6es406aj7gY7eg4CaYfnmcL3Ekw6pKnOBZbpEf5Yi7Ujp3B0CbSJpFSogmG934w7gSa13zWF15F
	8WY2cypbbhm5GfQeDwrC57KIozrcjnTuGUB//phuSrDxdxKUBVfD8R4QRbDbZwVGHlu49uXm1L5jK
	p7AtGqj6hNRZwETSVvraP00ZpIIBVXPuj3ThBQtbUkwVhFMHy4lwLeaSA6Rd3M8bbeKoJBkhcuJxJ
	rYlaHovQ==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 11/30] KVM: x86: Add WARN and restructure get_kvmclock()
Date: Sat,  9 May 2026 23:46:37 +0100
Message-ID: <20260509224824.3264567-12-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d62444/1778366940-ADBA8FF4-964F25BB/13/0
X-purgate-type: clean
X-purgate-size: 2313

From: David Woodhouse <dwmw@amazon.co.uk>

Add the same WARN_ON_ONCE for unexpected kvm_get_walltime_and_clockread()
failure as in kvm_get_wall_clock_epoch().

Move get/put_cpu inside the use_master_clock branch since they are only
needed there (for RDTSC and get_cpu_tsc_khz() to be on the same CPU).

Also simplify the use_master_clock condition: the open-coded
CONSTANT_TSC || cpu_tsc_khz check is unnecessary since use_master_clock
can only be true when the TSC is usable.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/kvm/x86.c | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 6f660c3210ee..9b395c00ccf2 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3209,21 +3209,27 @@ static void get_kvmclock(struct kvm *kvm, struct kvm_clock_data *data)
 	do {
 		seq = read_seqcount_begin(&ka->pvclock_sc);
 
-		/* both __this_cpu_read() and rdtsc() should be on the same cpu */
-		get_cpu();
-
 		data->flags = 0;
-		if (ka->use_master_clock &&
-		    (static_cpu_has(X86_FEATURE_CONSTANT_TSC) || __this_cpu_read(cpu_tsc_khz))) {
+		if (ka->use_master_clock) {
 #ifdef CONFIG_X86_64
 			struct timespec64 ts;
+#endif
+			/*
+			 * The RDTSC and get_cpu_tsc_khz() must happen on
+			 * the same CPU.
+			 */
+			get_cpu();
 
+#ifdef CONFIG_X86_64
 			if (kvm_get_walltime_and_clockread(&ts, &data->host_tsc)) {
 				data->realtime = ts.tv_nsec + NSEC_PER_SEC * ts.tv_sec;
 				data->flags |= KVM_CLOCK_REALTIME | KVM_CLOCK_HOST_TSC;
-			} else
-#endif
+			} else if (WARN_ON_ONCE(!read_seqcount_retry(&ka->pvclock_sc, seq))) {
+				data->host_tsc = rdtsc();
+			}
+#else
 			data->host_tsc = rdtsc();
+#endif
 
 			data->flags |= KVM_CLOCK_TSC_STABLE;
 			hv_clock.tsc_timestamp = ka->master_cycle_now;
@@ -3232,11 +3238,11 @@ static void get_kvmclock(struct kvm *kvm, struct kvm_clock_data *data)
 					   &hv_clock.tsc_shift,
 					   &hv_clock.tsc_to_system_mul);
 			data->clock = __pvclock_read_cycles(&hv_clock, data->host_tsc);
+
+			put_cpu();
 		} else {
 			data->clock = get_kvmclock_base_ns() + ka->kvmclock_offset;
 		}
-
-		put_cpu();
 	} while (read_seqcount_retry(&ka->pvclock_sc, seq));
 }
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:53:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:53:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305121.1577817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXf-0007sI-Jt; Sat, 09 May 2026 22:53:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305121.1577817; Sat, 09 May 2026 22:53:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXf-0007re-Bq; Sat, 09 May 2026 22:53:03 +0000
Received: by outflank-mailman (input) for mailman id 1305121;
 Sat, 09 May 2026 22:53:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqXe-0007ik-0l
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:53:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXd-006SzZ-Dj; Sun, 10 May 2026 00:53:01 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffbac8-bab6-0a2a0a5309dd-0a2a45058fce-2
 for <multiple-recipients>; Sun, 10 May 2026 00:53:01 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9dc-aaa8-0a2a45050019-5a9b5cc785ee-3
 for <multiple-recipients>; Sun, 10 May 2026 00:49:00 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wzL-0Tzi; Sat, 09 May 2026 22:48:27 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTD-0000000DhIn-0aFl;
 Sat, 09 May 2026 23:48:27 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=gfI2hlP2ghO7kkyYaxpeS6acpLBXM/Xjzeg1dOVvOBY=; b=QRXeSw9e0EZn2zrMh0ZMFdeOuH
	gWYH1Am3+0BI9z6x5jPUh85q3k5sy+S+6PCYf+8U0ulYWYrn5/9WtjOSvz+Fb4yRPvNn8wMEVq2Ee
	FqXuKANiZmVNTzEwuvyyzfQAkk5rPcDM94g8+018sWE0TCxEZYMBGG0dANDcR7FGqRlFbpFf7uuVt
	L++xNEjHUy1cqZyLQx3TVzs2EHXd6EoPsZIbj3oBDvKW5wu6DgH0+fohc1QpxXw+gtceIic+69G9B
	p1nYyIjwdlj0NMHJxzeg3E8VYyVWxIgA+QxNsssMNKPpcSi3HsTIune8KieKthZ++YCViDvVKCj83
	1riSTOmA==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 24/30] KVM: x86: Avoid gratuitous global clock updates
Date: Sat,  9 May 2026 23:46:50 +0100
Message-ID: <20260509224824.3264567-25-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-c201ff/1778366940-E119B443-EB3518E7/13/0
X-purgate-type: clean
X-purgate-size: 2521

From: David Woodhouse <dwmw@amazon.co.uk>

Eliminate three sources of unnecessary KVM_REQ_GLOBAL_CLOCK_UPDATE:

1. kvm_write_system_time(): The global clock update was a workaround for
   ever-drifting clocks based on the host's CLOCK_MONOTONIC subject to
   NTP skew. On booting or resuming a guest, it just leads to running
   kvm_guest_time_update() twice for each vCPU for no good reason. Use
   KVM_REQ_CLOCK_UPDATE on the vCPU itself, and only when the clock is
   being enabled, not disabled.

2. kvm_arch_vcpu_load(): Use KVM_REQ_CLOCK_UPDATE instead of
   KVM_REQ_GLOBAL_CLOCK_UPDATE. There is no need to update all vCPUs'
   clocks when one vCPU is loaded.

3. kvm_gen_kvmclock_update(): Skip the periodic global update entirely
   when in master clock mode, since the clock is defined precisely by
   the guest TSC and doesn't drift.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
---
 arch/x86/kvm/x86.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 0656d901fe79..7d9ec0638d28 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2457,13 +2457,13 @@ static void kvm_write_system_time(struct kvm_vcpu *vcpu, gpa_t system_time,
 	}
 
 	vcpu->arch.time = system_time;
-	kvm_make_request(KVM_REQ_GLOBAL_CLOCK_UPDATE, vcpu);
 
 	/* we verify if the enable bit is set... */
-	if (system_time & 1)
+	if (system_time & 1) {
 		kvm_gpc_activate(&vcpu->arch.pv_time, system_time & ~1ULL,
 				 sizeof(struct pvclock_vcpu_time_info));
-	else
+		kvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu);
+	} else
 		kvm_gpc_deactivate(&vcpu->arch.pv_time);
 
 	return;
@@ -3638,6 +3638,10 @@ static void kvm_gen_kvmclock_update(struct kvm_vcpu *v)
 	struct kvm_vcpu *vcpu;
 	struct kvm *kvm = v->kvm;
 
+	/* In master clock mode, the clock doesn't need periodic updates. */
+	if (kvm->arch.use_master_clock)
+		return;
+
 	kvm_for_each_vcpu(i, vcpu, kvm) {
 		kvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu);
 		kvm_vcpu_kick(vcpu);
@@ -5339,7 +5343,7 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
 		 * kvmclock on vcpu->cpu migration
 		 */
 		if (!vcpu->kvm->arch.use_master_clock || vcpu->cpu == -1)
-			kvm_make_request(KVM_REQ_GLOBAL_CLOCK_UPDATE, vcpu);
+			kvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu);
 		if (vcpu->cpu != cpu)
 			kvm_make_request(KVM_REQ_MIGRATE_TIMER, vcpu);
 		vcpu->cpu = cpu;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:53:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:53:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305122.1577822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXg-0007y6-72; Sat, 09 May 2026 22:53:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305122.1577822; Sat, 09 May 2026 22:53:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXf-0007wb-Sh; Sat, 09 May 2026 22:53:03 +0000
Received: by outflank-mailman (input) for mailman id 1305122;
 Sat, 09 May 2026 22:53:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqXe-0007ja-6a
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:53:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXd-006SzZ-JV; Sun, 10 May 2026 00:53:01 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffba4c-bab6-0a2a0a5309dd-0a2a4507d1b8-18
 for <multiple-recipients>; Sun, 10 May 2026 00:53:01 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9dc-229c-0a2a45070019-5a9b5cc7b00c-3
 for <multiple-recipients>; Sun, 10 May 2026 00:49:00 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTE-00000008wzO-1SLK; Sat, 09 May 2026 22:48:29 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTD-0000000DhJB-1rWh;
 Sat, 09 May 2026 23:48:27 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=7Ju9ZkuVTj15MTYPuc5v1baLIQZcnrhBioVVlGYLmig=; b=p9tq+aOMSeacmQ+4Sy4WtR+Bw1
	rYvCfaSU8+lYsJ1CJ4Wy3pzj2uKXGy0pM0Ahea/jCqrw+5As5J8XgCbgN62RH7j2INOMeBQZuAIWB
	Hf1L4TNwru7qFAI4f8D1WGgtpujT/IjjqAWnDWz1VUrvNaFptMW1b+O++qTbN/ppWqeM6TyUvW8YV
	mflTFSI3RImhAJIQtf+O/jPIOeMiS7dA5nYi8sUibf5VboP3isIb2W1I3Dg+YT/BxfLoQkCXVpUAH
	R9/k0agLsuB17tEyMDxJhZ4DYg0sSBuzd2sIN4BUNWtGOm1xtsfk4W0cUu9vX8LGFQUJf9OwLePSX
	sjG3n0SA==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 30/30] x86/xen: Obtain TSC frequency from CPUID if present
Date: Sat,  9 May 2026 23:46:56 +0100
Message-ID: <20260509224824.3264567-31-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-ef75cf/1778366940-28C7DC48-9A34D9A4/13/0
X-purgate-type: clean
X-purgate-size: 2077

From: David Woodhouse <dwmw@amazon.co.uk>

The Xen CPUID leaf 3, sub-leaf 0, ECX provides the guest TSC frequency
in kHz directly. Use it when available instead of reverse-calculating
the frequency from the pvclock tsc_to_system_mul and tsc_shift values,
which loses precision.

This mirrors the equivalent change for KVM guests using the generic
0x40000010 timing leaf.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/kvm/x86.c  |  3 +--
 arch/x86/xen/time.c | 12 ++++++++++++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index c15303963686..ac982652e5e0 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3469,7 +3469,6 @@ static void kvm_setup_guest_pvclock(struct pvclock_vcpu_time_info *ref_hv_clock,
 int kvm_guest_time_update(struct kvm_vcpu *v)
 {
 	struct pvclock_vcpu_time_info hv_clock = {};
-	unsigned long flags;
 	u64 tgt_tsc_hz;
 	unsigned seq;
 	struct kvm_vcpu_arch *vcpu = &v->arch;
@@ -10162,7 +10161,7 @@ static void kvm_hyperv_tsc_notifier(void)
 	kvm_caps.max_guest_tsc_khz = tsc_khz;
 
 	list_for_each_entry(kvm, &vm_list, vm_list) {
-		__kvm_start_pvclock_update(kvm);
+		__kvm_start_pvclock_update(kvm, NULL);
 		pvclock_update_vm_gtod_copy(kvm);
 		kvm_end_pvclock_update(kvm);
 	}
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index 6f9f665bb7ae..862b8e9e8405 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -41,8 +41,20 @@ static unsigned long xen_tsc_khz(void)
 {
 	struct pvclock_vcpu_time_info *info =
 		&HYPERVISOR_shared_info->vcpu_info[0].time;
+	u32 eax, ebx, ecx, edx;
+	u32 base = xen_cpuid_base();
 
 	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
+
+	/*
+	 * If Xen provides the guest TSC frequency directly in CPUID
+	 * (leaf 3, sub-leaf 0, ECX), use that instead of reverse-
+	 * calculating from the pvclock mul/shift.
+	 */
+	cpuid_count(base + 3, 0, &eax, &ebx, &ecx, &edx);
+	if (ecx)
+		return ecx;
+
 	return pvclock_tsc_khz(info);
 }
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:53:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:53:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305123.1577828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXh-00085l-6G; Sat, 09 May 2026 22:53:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305123.1577828; Sat, 09 May 2026 22:53:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXg-000835-Hw; Sat, 09 May 2026 22:53:04 +0000
Received: by outflank-mailman (input) for mailman id 1305123;
 Sat, 09 May 2026 22:53:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqXe-0007k5-CC
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:53:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXd-00AYGp-P8; Sun, 10 May 2026 00:53:01 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffba0e-5cb7-0a2a0a5109dd-0a2a450cd954-24
 for <multiple-recipients>; Sun, 10 May 2026 00:53:01 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9dc-62f1-0a2a450c0019-5a9b5cc7e912-3
 for <multiple-recipients>; Sun, 10 May 2026 00:49:00 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wzA-0Oe2; Sat, 09 May 2026 22:48:32 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhHh-1YLk;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=dFbbY5OtZVYUw6Qy5tHS1aKoaYMuSOyj4x77iW34VYE=; b=SE6rkQzNLq7L4CqMdEC8BZZ0P6
	EjpyYbZKK7v43rP/AeQVjSCbX4CyqL7SJgHZ4T2fJwadBOsjBMNWV4O9xztFhbc8UcA+mg4CVAeM/
	pF/f/hHOOeWQWkfR1yJ2MttlyGrwYzwM8Us9usfEsF/GJA5jH2cvu8IwGenT2kPZ0o39/N1dT+CvY
	nxohuJurpY0cff1GFCz0rJ1gt7T7yFG3MUVg02Quc5oH80soyrmI4lVS78+lhGlGprjcpiGEuprPs
	JbtHdqIH9/IguEaANVzJe00VtBFhZaDJfm4NidetUasrra5NgYbGP82uPUI+FCBzQ8t4ujGxOn5Cs
	38tbJYDw==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 07/30] KVM: x86: Add KVM_VCPU_TSC_SCALE and fix the documentation on TSC migration
Date: Sat,  9 May 2026 23:46:33 +0100
Message-ID: <20260509224824.3264567-8-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d25034/1778366940-F4E78CF5-1807B8E8/13/0
X-purgate-type: clean
X-purgate-size: 4939

From: David Woodhouse <dwmw@amazon.co.uk>

The documentation on TSC migration using KVM_VCPU_TSC_OFFSET is woefully
inadequate. It ignores TSC scaling, and ignores the fact that the host
TSC may differ from one host to the next (and in fact because of the way
the kernel calibrates it, it generally differs from one boot to the next
even on the same hardware).

Add KVM_VCPU_TSC_SCALE to extract the actual scale ratio and frac_bits,
and attempt to document the process that userspace needs to follow to
preserve the TSC across migration.

Only enumerate KVM_VCPU_TSC_SCALE when kvm_caps.has_tsc_control is true,
since the scaling ratio is only meaningful when hardware TSC scaling is
supported.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
---
 Documentation/virt/kvm/devices/vcpu.rst | 36 ++++++++++++++++++++++++-
 arch/x86/include/uapi/asm/kvm.h         |  6 +++++
 arch/x86/kvm/x86.c                      | 22 +++++++++++++++
 3 files changed, 63 insertions(+), 1 deletion(-)

diff --git a/Documentation/virt/kvm/devices/vcpu.rst b/Documentation/virt/kvm/devices/vcpu.rst
index 5e3805820010..56562b932280 100644
--- a/Documentation/virt/kvm/devices/vcpu.rst
+++ b/Documentation/virt/kvm/devices/vcpu.rst
@@ -243,7 +243,10 @@ Returns:
 Specifies the guest's TSC offset relative to the host's TSC. The guest's
 TSC is then derived by the following equation:
 
-  guest_tsc = host_tsc + KVM_VCPU_TSC_OFFSET
+  guest_tsc = ((host_tsc * tsc_scale_ratio) >> tsc_scale_bits) + KVM_VCPU_TSC_OFFSET
+
+The values of tsc_scale_ratio and tsc_scale_bits can be obtained using
+the KVM_VCPU_TSC_SCALE attribute.
 
 This attribute is useful to adjust the guest's TSC on live migration,
 so that the TSC counts the time during which the VM was paused. The
@@ -292,3 +295,34 @@ From the destination VMM process:
 
 7. Write the KVM_VCPU_TSC_OFFSET attribute for every vCPU with the
    respective value derived in the previous step.
+
+4.2 ATTRIBUTE: KVM_VCPU_TSC_SCALE
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:Parameters: struct kvm_vcpu_tsc_scale
+
+Returns:
+
+	 ======= ======================================
+	 -EFAULT Error reading the provided parameter
+		 address.
+	 -ENXIO  Attribute not supported (no TSC scaling)
+	 -EINVAL Invalid request to write the attribute
+	 ======= ======================================
+
+This read-only attribute reports the guest's TSC scaling factor, in the form
+of a fixed-point number represented by the following structure::
+
+  struct kvm_vcpu_tsc_scale {
+	__u64 tsc_ratio;
+	__u64 tsc_frac_bits;
+  };
+
+The tsc_frac_bits field indicates the location of the fixed point, such that
+host TSC values are converted to guest TSC using the formula:
+
+  guest_tsc = ((host_tsc * tsc_ratio) >> tsc_frac_bits) + offset
+
+Userspace can use this to precisely calculate the guest TSC from the host
+TSC at any given moment. This is needed for accurate migration of guests,
+as described in the documentation for the KVM_VCPU_TSC_OFFSET attribute.
diff --git a/arch/x86/include/uapi/asm/kvm.h b/arch/x86/include/uapi/asm/kvm.h
index 5f2b30d0405c..384be9a53395 100644
--- a/arch/x86/include/uapi/asm/kvm.h
+++ b/arch/x86/include/uapi/asm/kvm.h
@@ -961,6 +961,12 @@ struct kvm_hyperv_eventfd {
 /* for KVM_{GET,SET,HAS}_DEVICE_ATTR */
 #define KVM_VCPU_TSC_CTRL 0 /* control group for the timestamp counter (TSC) */
 #define   KVM_VCPU_TSC_OFFSET 0 /* attribute for the TSC offset */
+#define   KVM_VCPU_TSC_SCALE  1 /* attribute for TSC scaling factor */
+
+struct kvm_vcpu_tsc_scale {
+	__u64 tsc_ratio;
+	__u64 tsc_frac_bits;
+};
 
 /* x86-specific KVM_EXIT_HYPERCALL flags. */
 #define KVM_EXIT_HYPERCALL_LONG_MODE	_BITULL(0)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index d1327d5fba3f..2179ea2da8e0 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -5930,6 +5930,9 @@ static int kvm_arch_tsc_has_attr(struct kvm_vcpu *vcpu,
 	case KVM_VCPU_TSC_OFFSET:
 		r = 0;
 		break;
+	case KVM_VCPU_TSC_SCALE:
+		r = kvm_caps.has_tsc_control ? 0 : -ENXIO;
+		break;
 	default:
 		r = -ENXIO;
 	}
@@ -5950,6 +5953,22 @@ static int kvm_arch_tsc_get_attr(struct kvm_vcpu *vcpu,
 			break;
 		r = 0;
 		break;
+	case KVM_VCPU_TSC_SCALE: {
+		struct kvm_vcpu_tsc_scale scale;
+
+		if (!kvm_caps.has_tsc_control) {
+			r = -ENXIO;
+			break;
+		}
+
+		scale.tsc_ratio = vcpu->arch.l1_tsc_scaling_ratio;
+		scale.tsc_frac_bits = kvm_caps.tsc_scaling_ratio_frac_bits;
+		r = -EFAULT;
+		if (copy_to_user(uaddr, &scale, sizeof(scale)))
+			break;
+		r = 0;
+		break;
+	}
 	default:
 		r = -ENXIO;
 	}
@@ -5989,6 +6008,9 @@ static int kvm_arch_tsc_set_attr(struct kvm_vcpu *vcpu,
 		r = 0;
 		break;
 	}
+	case KVM_VCPU_TSC_SCALE:
+		r = -EINVAL; /* Read only */
+		break;
 	default:
 		r = -ENXIO;
 	}
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:53:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305124.1577831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXh-0008Bw-Lr; Sat, 09 May 2026 22:53:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305124.1577831; Sat, 09 May 2026 22:53:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXh-00089s-3B; Sat, 09 May 2026 22:53:05 +0000
Received: by outflank-mailman (input) for mailman id 1305124;
 Sat, 09 May 2026 22:53:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqXe-0007kw-Ga
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:53:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXd-002c5y-Ts; Sun, 10 May 2026 00:53:01 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffba4c-e002-0a2a0a5209dd-0a2a450ae9e4-24
 for <multiple-recipients>; Sun, 10 May 2026 00:53:01 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9dc-56b3-0a2a450a0019-5a9b5cc7b01a-3
 for <multiple-recipients>; Sun, 10 May 2026 00:49:00 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wzK-0NIx; Sat, 09 May 2026 22:48:28 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTD-0000000DhIf-06oU;
 Sat, 09 May 2026 23:48:27 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:
	From:Reply-To:Cc:Content-ID:Content-Description;
	bh=kOxo26JgkgBnkgpV4u4u6bNS0TzdmD76LNhTnJ/HBkg=; b=S1Qj7ot+NvaVb/ETnLNcOSWLI7
	a8uV8eSZQIwsFNUiD0HkK8FYHDMAVTpOBbqWewmXi9iTOyErjosby5Pac1eE/QdywtKg3s1IgXLek
	HsNyTFM+ykVPLWmEpjCYTbzPzXkWq2gBFRY2VWy5lSXutf/hfKCAX5QZID2vs2Qba7bmYbLFSYdHJ
	e63CuDfT1qC1GqGhST/XGcE8ayKk2efxCazSVC33178g9UgpHiWeSxDzwAU6HGywcZLQDaNc+JTqO
	f/VY+Sc/cuha12qsM/abTJXD6y2KRPxWwrDd1pwd3HDISKnYc2g96zWw4BFuGCu9pg1BtxPbgj7Dm
	WQFH5k/g==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 22/30] KVM: x86: Allow KVM master clock mode when TSCs are offset from each other
Date: Sat,  9 May 2026 23:46:48 +0100
Message-ID: <20260509224824.3264567-23-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-4011c0/1778366940-727758B7-C95BCE30/13/0
X-purgate-type: clean
X-purgate-size: 4581

From: David Woodhouse <dwmw@amazon.co.uk>

There is no reason why the KVM clock cannot be in masterclock mode when
the TSCs are not in sync, as long as they are at the same *frequency*.

Running at a different frequency would lead to a systemic skew between
the clock(s) as observed by different vCPUs due to arithmetic precision
in the scaling. So that should indeed force the clock to be based on the
host's CLOCK_MONOTONIC_RAW instead of being in masterclock mode where it
is defined by the guest TSC.

But when the vCPUs merely have a different TSC *offset*, that's not a
problem. The offset is applied to that vCPU's kvmclock->tsc_timestamp
field, and it all comes out in the wash.

Track frequency matching separately from full TSC matching. Use
frequency match for master clock eligibility, and full TSC match
(including offset) only for PVCLOCK_TSC_STABLE_BIT, which tells the
guest it is safe to skip cross-vCPU monotonicity enforcement.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/include/asm/kvm_host.h |  1 +
 arch/x86/kvm/x86.c              | 27 +++++++++++++++++++++------
 2 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index eb81f90284ba..c770c63087cb 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -1493,6 +1493,7 @@ struct kvm_arch {
 	u64 cur_tsc_offset;
 	u64 cur_tsc_generation;
 	bool all_vcpus_matched_tsc;
+	bool all_vcpus_matched_freq;
 	int nr_vcpus_matched_tsc;
 
 	u32 default_tsc_khz;
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index b74fd8b088ad..d36d03b8268e 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2647,13 +2647,22 @@ static void kvm_track_tsc_matching(struct kvm_vcpu *vcpu, bool new_generation)
 	struct pvclock_gtod_data *gtod = &pvclock_gtod_data;
 
 	/*
-	 * To use the masterclock, the host clocksource must be based on TSC
-	 * and all vCPUs must have matching TSCs.
+	 * Track whether all vCPUs have matching TSC offsets (for
+	 * PVCLOCK_TSC_STABLE_BIT) and matching frequencies (for
+	 * master clock eligibility).
 	 */
 	ka->all_vcpus_matched_tsc = (ka->nr_vcpus_matched_tsc + 1 ==
 				     atomic_read(&vcpu->kvm->online_vcpus));
+	if (ka->all_vcpus_matched_tsc)
+		ka->all_vcpus_matched_freq = true;
 
-	bool use_master_clock = ka->all_vcpus_matched_tsc &&
+	/*
+	 * To use the masterclock, the host clocksource must be based on TSC
+	 * and all vCPUs must have matching TSC *frequency*. Different offsets
+	 * are fine — each vCPU's pvclock has its own tsc_timestamp that
+	 * accounts for its offset.
+	 */
+	bool use_master_clock = ka->all_vcpus_matched_freq &&
 				gtod_is_based_on_tsc(gtod->clock.vclock_mode);
 
 	/*
@@ -2817,7 +2826,13 @@ static void __kvm_synchronize_tsc(struct kvm_vcpu *vcpu, u64 offset, u64 tsc,
 	 * Track the TSC frequency, scaling ratio, and offset for the current
 	 * generation. These are used to detect matching TSC writes and to
 	 * compute the guest TSC from the host clock.
+	 *
+	 * If the frequency changed, master clock mode can no longer be used
+	 * since the kvmclock scaling factors differ between vCPUs.
 	 */
+	if (vcpu->arch.virtual_tsc_khz != kvm->arch.cur_tsc_khz)
+		kvm->arch.all_vcpus_matched_freq = false;
+
 	kvm->arch.cur_tsc_khz = vcpu->arch.virtual_tsc_khz;
 	kvm->arch.cur_tsc_scaling_ratio = vcpu->arch.l1_tsc_scaling_ratio;
 
@@ -3178,7 +3193,7 @@ static void pvclock_update_vm_gtod_copy(struct kvm *kvm)
 	bool host_tsc_clocksource, vcpus_matched;
 
 	lockdep_assert_held(&kvm->arch.tsc_write_lock);
-	vcpus_matched = ka->all_vcpus_matched_tsc;
+	vcpus_matched = ka->all_vcpus_matched_freq;
 
 	/*
 	 * If the host uses TSC clock, then passthrough TSC as stable
@@ -3513,7 +3528,7 @@ int kvm_guest_time_update(struct kvm_vcpu *v)
 
 	/* If the host uses TSC clocksource, then it is stable */
 	hv_clock.flags = 0;
-	if (use_master_clock)
+	if (use_master_clock && ka->all_vcpus_matched_tsc)
 		hv_clock.flags |= PVCLOCK_TSC_STABLE_BIT;
 
 	if (vcpu->pv_time.active) {
@@ -6340,7 +6355,7 @@ static int kvm_vcpu_ioctl_get_clock_guest(struct kvm_vcpu *v, void __user *argp)
 
 	hv_clock.tsc_shift = vcpu->pvclock_tsc_shift;
 	hv_clock.tsc_to_system_mul = vcpu->pvclock_tsc_mul;
-	hv_clock.flags = PVCLOCK_TSC_STABLE_BIT;
+	hv_clock.flags = ka->all_vcpus_matched_tsc ? PVCLOCK_TSC_STABLE_BIT : 0;
 
 	if (copy_to_user(argp, &hv_clock, sizeof(hv_clock)))
 		return -EFAULT;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sat May 09 22:53:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 May 2026 22:53:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305125.1577839 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXi-0008RV-TA; Sat, 09 May 2026 22:53:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305125.1577839; Sat, 09 May 2026 22:53:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLqXi-0008OH-AD; Sat, 09 May 2026 22:53:06 +0000
Received: by outflank-mailman (input) for mailman id 1305125;
 Sat, 09 May 2026 22:53:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wLqXf-0007tu-Tc
 for xen-devel@lists.xenproject.org; Sat, 09 May 2026 22:53:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLqXf-008rH7-8W; Sun, 10 May 2026 00:53:03 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffbac3-2eae-0a2a0a5409dd-0a2a450bb858-4
 for <multiple-recipients>; Sun, 10 May 2026 00:53:03 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+9b8b472e89b521af7d3c+8294+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 69ffb9de-212f-0a2a450b0019-5a9b5cc7e74a-3
 for <multiple-recipients>; Sun, 10 May 2026 00:49:02 +0200
Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wLqTD-00000008wzJ-0RiQ; Sat, 09 May 2026 22:48:28 +0000
Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1wLqTC-0000000DhIT-3ti3;
 Sat, 09 May 2026 23:48:26 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Sender:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding:
	MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:To:From:Reply-To:
	Cc:Content-Type:Content-ID:Content-Description;
	bh=zXYXQPXLzd2dcTYMg1gTvCK26tkN2cOEOzkWZ733ogk=; b=AEobeMIDugUN7eiHan6hG45ktT
	R8amBcPRPjDj++/KH0EpUAl64+jTiq4HqRCpFlKNJbg0Of6kv36aIL7EvtIvglcW5i5jGHAErQ/Vc
	dKqUBmeqrAnIe6LEB2fkB/ovB+UQdK3lXaCR+dnU6korDQshJ5DAdhqpWOyaEv2G77UTRa8f2x22C
	vKZ63Pm6BoF5585QClj84e8/cDylBglkhaMYVB2KseLvn9zQSkWprSvtDDW1OWTfLa57WKhE62eZM
	6HqViX8GtTkrFcAN4TnSazhzMhDCuRlzY/mlo7x8njgH/Krm4SCYrSqNM4P0sypNw9QrDVk8fCKh2
	5QfynusA==;
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sean Christopherson <seanjc@google.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Jonathan Cameron <jic23@kernel.org>,
	Sascha Bischoff <Sascha.Bischoff@arm.com>,
	Marc Zyngier <maz@kernel.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Jack Allister <jalliste@amazon.com>,
	Dongli Zhang <dongli.zhang@oracle.com>,
	joe.jin@oracle.com,
	kvm@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v4 19/30] KVM: x86: Improve synchronization in kvm_synchronize_tsc()
Date: Sat,  9 May 2026 23:46:45 +0100
Message-ID: <20260509224824.3264567-20-dwmw2@infradead.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Sender: David Woodhouse <dwmw2@infradead.org>
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-42698a/1778366942-19165F3B-805BB91F/13/0
X-purgate-type: clean
X-purgate-size: 3595

From: David Woodhouse <dwmw@amazon.co.uk>

When synchronizing to an existing TSC (either by explicitly writing
zero, or the legacy hack where the TSC is written within one second's
worth of the previously written TSC), the last_tsc_write and
last_tsc_nsec values were being misrecorded by __kvm_synchronize_tsc().
The *unsynchronized* value of the TSC (perhaps even zero) was being
recorded, along with the current time at which kvm_synchronize_tsc()
was called. This could cause *subsequent* writes to fail to synchronize
correctly.

Fix that by resetting {data, ns} to the previous values before passing
them to __kvm_synchronize_tsc() when synchronization is detected.
Except in the case where the TSC is unstable and *has* to be synthesised
from the host clock, in which case attempt to create a nsec/tsc pair
which is on the correct line.

Furthermore, there were *three* different TSC reads used for calculating
the "current" time, all slightly different from each other. Fix that by
using kvm_get_time_and_clockread() where possible and using the same
host_tsc value in all cases.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
---
 arch/x86/kvm/x86.c | 32 ++++++++++++++++++++++++++++----
 1 file changed, 28 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index c9cbebd6a92a..097df58749c3 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -203,6 +203,9 @@ module_param(mitigate_smt_rsb, bool, 0444);
  * usermode, e.g. SYSCALL MSRs and TSC_AUX, can be deferred until the CPU
  * returns to userspace, i.e. the kernel can run with the guest's value.
  */
+#ifdef CONFIG_X86_64
+static bool kvm_get_time_and_clockread(s64 *kernel_ns, u64 *tsc_timestamp);
+#endif
 #define KVM_MAX_NR_USER_RETURN_MSRS 16
 
 struct kvm_user_return_msrs {
@@ -2854,14 +2857,22 @@ static void kvm_synchronize_tsc(struct kvm_vcpu *vcpu, u64 *user_value)
 {
 	u64 data = user_value ? *user_value : 0;
 	struct kvm *kvm = vcpu->kvm;
-	u64 offset, ns, elapsed;
+	u64 offset, host_tsc, ns, elapsed;
 	unsigned long flags;
 	bool matched = false;
 	bool synchronizing = false;
 
+#ifdef CONFIG_X86_64
+	if (!kvm_get_time_and_clockread(&ns, &host_tsc))
+#endif
+	{
+		ns = get_kvmclock_base_ns();
+		host_tsc = rdtsc();
+	}
+
 	raw_spin_lock_irqsave(&kvm->arch.tsc_write_lock, flags);
-	offset = kvm_compute_l1_tsc_offset(vcpu, rdtsc(), data);
-	ns = get_kvmclock_base_ns();
+
+	offset = kvm_compute_l1_tsc_offset(vcpu, host_tsc, data);
 	elapsed = ns - kvm->arch.last_tsc_nsec;
 
 	if (vcpu->arch.virtual_tsc_khz) {
@@ -2904,12 +2915,25 @@ static void kvm_synchronize_tsc(struct kvm_vcpu *vcpu, u64 *user_value)
          */
 	if (synchronizing &&
 	    vcpu->arch.virtual_tsc_khz == kvm->arch.last_tsc_khz) {
+		/*
+		 * If synchronizing, the "last written" TSC value/time
+		 * recorded by __kvm_synchronize_tsc() should not change
+		 * (i.e. should be precisely the same as the existing
+		 * generation).
+		 */
+		data = kvm->arch.last_tsc_write;
+
 		if (!kvm_check_tsc_unstable()) {
 			offset = kvm->arch.cur_tsc_offset;
+			ns = kvm->arch.cur_tsc_nsec;
 		} else {
+			/*
+			 * ...unless the TSC is unstable and has to be
+			 * synthesised from the host clock in nanoseconds.
+			 */
 			u64 delta = nsec_to_cycles(vcpu, elapsed);
 			data += delta;
-			offset = kvm_compute_l1_tsc_offset(vcpu, rdtsc(), data);
+			offset = kvm_compute_l1_tsc_offset(vcpu, host_tsc, data);
 		}
 		matched = true;
 	}
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sun May 10 06:03:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 May 2026 06:03:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305289.1577866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLxFh-00046b-Q6; Sun, 10 May 2026 06:02:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305289.1577866; Sun, 10 May 2026 06:02:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wLxFh-00046T-Mm; Sun, 10 May 2026 06:02:57 +0000
Received: by outflank-mailman (input) for mailman id 1305289;
 Sun, 10 May 2026 06:02:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wLxFg-00046L-QO
 for xen-devel@lists.xenproject.org; Sun, 10 May 2026 06:02:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wLxFf-00B9iF-3A
 for xen-devel@lists.xenproject.org; Sun, 10 May 2026 08:02:55 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a001f87-5cb7-0a2a0a5109dd-0a2a450c9010-18
 for <xen-devel@lists.xenproject.org>; Sun, 10 May 2026 08:02:55 +0200
Received: from [209.85.208.171] (helo=mail-lj1-f171.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a001f8e-62f1-0a2a450c0019-d155d0abb41b-3
 for <xen-devel@lists.xenproject.org>; Sun, 10 May 2026 08:02:54 +0200
Received: by mail-lj1-f171.google.com with SMTP id
 38308e7fff4ca-38a01c80c34so25417961fa.0
 for <xen-devel@lists.xenproject.org>; Sat, 09 May 2026 23:02:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778392974; cv=none;
        d=google.com; s=arc-20240605;
        b=GrAID9Ic83N7uiGV/RNGIpAfq9AVCTf+BG0HxyJtzeZQ475A++9UgsNC4vE5Zmq3ol
         T3x7KjupsF2OezQLc7vjZMG+OGrm3/hC7iUhO48lbcfGXtr7JvzdhYOc3R+cv5J/uT1a
         dOsNo05HwHptBlnDs8kAk1JRDVUHimigdYRTknsCqkh0YOWNZiTv4jVRmicnofKWRlbE
         bKytrfjFwQYcDhnOXV1aRWnKtyBkWJAehjjkIv5hA2EiCkib6E39Ykp0uqYYNywEY3jM
         rsnvuZgzvFoCS4fMbVe55t7vcfVevDWGbXRifALKg1XuHhqNXNJvDNLe+1S/tg3QlggL
         dzrA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=z6OihLhbY+E3GNfLoo4qiue9hQsmjnzdWfT2BfQ9lhQ=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=AjV3iuSZZ87c/O7MX83aZZIY1hBhT5fC/QDVqXu1gePK5BeAo0c/DLVDSaM3Wrf02/
         lSWun1+cm9BS1nwLRfR2iiO6191Ka5miXeietGa3qDPESYyjtwWnsC5UEC0v2nZ+L+TQ
         rnQ8sA0rC7p9zpGI59fMCNbQfEnEG25vNwVkr4EKUziTp/SWEzAZW4HP8B3lnV4n4afR
         HExzbn5pglHNFzDebbGyzfKGZJAAH2+T/us1pmDzQnw5183LyBw5d0TpyS023k4F+CN4
         kc9SFJbAbrj9Pqm9yJ0Kk06FVpNcXHr2VkY76g4sjAPf5h37/mJilD2F87V305S+iB3p
         iqHw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778392974; x=1778997774; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=z6OihLhbY+E3GNfLoo4qiue9hQsmjnzdWfT2BfQ9lhQ=;
        b=rAmyJNIkpP8kE1aMgze2mOBLQlunpDypTu5yhmxBl/JW0HmcbqE4GEfqZtn3GZQURa
         xKNWoI+CMa4Ng0hqJUJkj/hIAmYW6B0F19ArhM5fZE2vm4RXfg9uxmO3d2t1AIybYOph
         /U9LmtHhFpjNVa4UTPHhuCziPCJtl9evjSwhd0plW3vCyXCAfCdIvD9eIEHg65FjU0P9
         msFBdpvik/GHrHfXYtHIvm6K5+TnHWT4vGahOzEuQH7wZ7ekIUg0GQWxIwxjwUnSjHm6
         D8JAkY8AHBIsj/uCa0GWommCcuiisf+NrDP6/ej5DYd3s1kERfaY9ZBxPH4ryXk/fk7C
         GHkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778392974; x=1778997774;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=z6OihLhbY+E3GNfLoo4qiue9hQsmjnzdWfT2BfQ9lhQ=;
        b=TT+JuqucG7TcZVkc9B2cTWBWHKWN+n+RyVwYwExV6ORqVKMmW2RDOg+2S01bpd5cYV
         I6c5FTy8sCEb2EBuWJnt3GJW1t8FNIBnBhE6ptwT3HlqXvmQ2hhZj2il6VSxPfBfaWBq
         EfhcneUNGNjMV7nNBuiIvzllQTzvIoBX5pzrn70AKvsACIDI7MAZCdCVmveWu9GMOANh
         6my7L9pwZ2dzi0Yt96A6kpVVo/UQNIWOj4peBp64G/cuZ/Puj3E0/mT673LuIT3GPCUk
         ilNzdmYjvNQIjS4ec70V/MuGdjiz69qJL9T1wCrOZYNE7mNiQOqqxbQoi/HN9KV80maK
         qUmA==
X-Gm-Message-State: AOJu0Yx2E1CqB1LPx1sjaSHqG3scK5Cjot/wn1CBoOSZychYWyQzJlXA
	lYy/n4pdsAQOBO8nlkUbJjcq9O1DmgbsAx04Negj3dLbd/nTj5qfJB1/Yy5IfMuxZXX9/e89Y77
	Y9MaVsca18GDbGxBFqxjDNZv6jCYH/+0=
X-Gm-Gg: Acq92OHSS8lEGRO8JXgZZ6C/psvFWdDFwDAjzY0U+j3HZOvisrJ9Gzj4bipSLppIwrn
	kUzsnHQK7rzuXOPIl6n+26EC/pu4H0ddV2M/lNwO1VfvDh+H4BLxDwY7qeHSFwxcPx2xrYLm4bG
	9uWphRG1p6UHCVyW3gFGQj04oAQTuX4cEBtcEFscKS5N4eoTXJzf7OPR4pZFpbsigVmoI0J5bR4
	cpZxrCYDHGe3G6UnMxYvKssjjA4vovwbPlZ3R1gjlbT0tKV/X4yXRpg7nLidDpYYk4HcAoPcrOp
	G/GlKA==
X-Received: by 2002:a05:651c:41c8:b0:394:4e7:9805 with SMTP id
 38308e7fff4ca-394081312f7mr13755891fa.19.1778392973629; Sat, 09 May 2026
 23:02:53 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <5e1951e1c17037e020de9c0eecb5fba94edcd9dd.1775125380.git.mykola_kvach@epam.com>
 <EB3F884F-FCD6-4AE7-84FA-79ABF31EA88E@arm.com> <CAGeoDV80QHdesYQF-J4fg7wYQ6RLNg6u27aQhj4F+JoM4hU3uQ@mail.gmail.com>
 <CF8E0EB2-3048-4B04-B763-AE5EF1909416@arm.com>
In-Reply-To: <CF8E0EB2-3048-4B04-B763-AE5EF1909416@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Sun, 10 May 2026 09:02:42 +0300
X-Gm-Features: AVHnY4Liw9b4vVk0zuGrKmULc20ZcK-O_7r4lptAmDphN-WnqIpD3Sa7zwS3D0Y
Message-ID: <CAGeoDV_SqVtcAZemSx1Ap0R6JqnbAxoLYCctPEU3DkcuQC-A1g@mail.gmail.com>
Subject: Re: [PATCH v8 02/13] xen/arm: gic-v2: Implement GIC suspend/resume functions
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d25034/1778392974-E0D63CF5-B8D4D1B9/0/0
X-purgate-type: clean
X-purgate-size: 6276

On Fri, May 8, 2026 at 1:57=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.com=
> wrote:
>
> Hi Mykola,
>
> >
> >>
> >>> +        }
> >>> +
> >>> +        off =3D i * sizeof(irqs->icfgr);
> >>> +        for ( j =3D 0; j < ARRAY_SIZE(irqs->icfgr); j++ )
> >>> +            writel_gicd(irqs->icfgr[j], GICD_ICFGR + off + j * 4);
> >>> +    }
> >>> +
> >>> +    /* Make sure all registers are restored and enable distributor *=
/
> >>> +    writel_gicd(gic_ctx.dist.ctlr, GICD_CTLR);
> >>> +
> >>> +    /* Restore GIC CPU interface configuration */
> >>> +    writel_gicc(gic_ctx.cpu.pmr, GICC_PMR);
> >>> +    writel_gicc(gic_ctx.cpu.bpr, GICC_BPR);
> >>> +
> >>> +    /* Enable GIC CPU interface */
> >>> +    writel_gicc(gic_ctx.cpu.ctlr, GICC_CTLR);
> >>> +}
> >>> +
> >>
> >> I also see that we don=E2=80=99t save pending SGIs state (by GICD_CPEN=
DSGIRn/GICD_SPENDSGIRn) or Active Priorities registers
> >> state (GICC_APRn/GICC_NSAPRn [latter if security extension are there])=
 as written in [1] =E2=80=9C4.5 Preserving and restoring GIC state=E2=80=9D=
,
> >> was it intentional?
> >
> > Yes, this was intentional.
> >
> > The GICv2 suspend callback is called at a quiescent point in the
> > SYSTEM_SUSPEND path: all domains are already shut down for suspend, gue=
st
> > execution is quiesced, the scheduler is disabled, non-boot CPUs have be=
en
> > offlined, and CPU0 enters gic_suspend() with local interrupts disabled.
> >
> > For SGIs, I don't consider GICD_CPENDSGIRn/GICD_SPENDSGIRn part of the =
saved
> > host GIC context. Xen uses physical SGIs as IPIs, and IPI delivery is a=
n
> > internal synchronization mechanism, not architectural state that should=
 be
> > replayed after SYSTEM_SUSPEND. Guest SGI state is virtual GIC state and=
 is not
> > represented by these physical GICD SGI pending registers.
>
> ack, I would maybe mention in the commit message that we exclude transien=
t IPI/active-priority
> state at the suspend quiescent point.

Ack.

>
> >
> > For GICC_APRn/GICC_NSAPRn, those registers describe active priority sta=
te for
> > interrupts already acknowledged by the CPU interface. The final suspend=
 path is
> > not expected to run with an active physical interrupt context. If those
> > registers were non-zero there, restoring only APR/NSAPR would not make =
the
> > corresponding interrupt handling context valid after resume, and could =
instead
> > leave the CPU interface with stale active priority state.
>
> Ok I understand now, but if we are expecting here GICD_ISACTIVERn zeroed,=
 why are
> we saving/restoring it? Shouldn=E2=80=99t we instead have a runtime check=
 that it=E2=80=99s zero and in case
> it=E2=80=99s not bail out? And in the resume path we would only zero it.
>
> Am I missing something?

Good questions.

Yes, the distinction I should have made clearer is between CPU-interface
active-priority state and distributor active state.

For GICC_APRn/GICC_NSAPRn, I expect the state to be quiesced at this point.
Those registers track active priorities in the CPU interface. Xen reaches
gic_suspend() with local interrupts disabled, and for the guest-routed
interrupt case that can leave a distributor active bit behind, Xen has
already performed the physical EOI, so the CPU-interface priority has been
dropped.
There is no CPU-interface active-priority context that we can meaningfully
replay after resume.

That is different from GICD_ISACTIVERn. In EOImode=3D=3D1, EOIR only drops =
the
priority. The interrupt remains active in the distributor until the separat=
e
deactivation step. For a guest-routed interrupt Xen's GICv2 guest end path =
does
only the physical EOI; deactivation is completed later by the virtual GIC/G=
ICV
path when the guest completes the interrupt.

This is why APR/NSAPR and ISACTIVERn are treated differently. For example:

  1. A physical IRQ routed to a guest is acknowledged by Xen.
  2. The GIC marks the interrupt active in the distributor.
  3. Xen EOIs it, which drops the physical priority.
  4. Xen queues/injects the interrupt to the vGIC.
  5. The guest has not yet run, or the virtual interrupt is not yet deliver=
able
     because of guest PMR/priority/local IRQ masking/vGIC state.
  6. Therefore the guest-side deactivate has not happened yet, and the phys=
ical
     distributor active bit remains set.

There is also a late suspend window in the current Xen path: domains are
suspended and the scheduler is disabled before local IRQs are disabled.
A guest-routed IRQ can therefore be taken by Xen after the guest is already
suspended, but before gic_suspend(). Xen can EOI/priority-drop it and queue
it for the guest, while the guest cannot run and deactivate it before the
GIC state is saved.

This is the same class of issue handled by Linux for GIC EOImode=3D=3D1. Li=
nux
saves/restores the active state because forwarded interrupts can remain act=
ive
while passed to a VM [1].

So I don't think GICD_ISACTIVERn should be treated as "must be zero" unless=
 we
also add an explicit suspend-abort/quiesce policy for in-flight guest
interrupts. That would be a different design: detect non-zero active/in-fli=
ght
state, unwind suspend, thaw domains, let the guest drain/deactivate the
interrupts, and retry later. This series does not implement that policy. Gi=
ven
the current flow, preserving GICD_ISACTIVERn avoids losing architectural
interrupt-controller state across suspend/resume.

I am not opposed to such a policy as a follow-up if we want stricter suspen=
d
quiescence rules, but I think it should be designed explicitly rather than
inferred from the GIC save/restore code.

Best regards,
Mykola

[1] https://patchwork.kernel.org/project/linux-arm-kernel/patch/1447701208-=
18150-5-git-send-email-marc.zyngier@arm.com/

>
> >
> > So I did not add save/restore for GICD_CPENDSGIRn/GICD_SPENDSGIRn or
> > GICC_APRn/GICC_NSAPRn in this patch. I can add a short comment in v9 to=
 make
> > this scope explicit.
> >
> > Please let me know if you think there is a suspend/resume path where th=
is
> > state still needs to be preserved.
> >
> > Best regards,
> > Mykola
>
> Cheers,
> Luca
>


From xen-devel-bounces@lists.xenproject.org Sun May 10 20:59:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 May 2026 20:59:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305593.1577884 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMBFI-0005H9-Eb; Sun, 10 May 2026 20:59:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305593.1577884; Sun, 10 May 2026 20:59:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMBFI-0005H2-AY; Sun, 10 May 2026 20:59:28 +0000
Received: by outflank-mailman (input) for mailman id 1305593;
 Sun, 10 May 2026 20:59:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+0abf7e93b395bf2e804e+8295+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wMBFH-0005FU-9P
 for xen-devel@lists.xenproject.org; Sun, 10 May 2026 20:59:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMBFG-003wke-Mc; Sun, 10 May 2026 22:59:26 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+0abf7e93b395bf2e804e+8295+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a00f152-5cb7-0a2a0a5109dd-0a2a450aec3c-34
 for <multiple-recipients>; Sun, 10 May 2026 22:59:25 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+0abf7e93b395bf2e804e+8295+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a00f1ad-56b3-0a2a450a0019-5a9b322292ea-3
 for <multiple-recipients>; Sun, 10 May 2026 22:59:25 +0200
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=u09cd745991455d.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wMBEe-00000007GLM-0IXw; Sun, 10 May 2026 20:58:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:To:From:Subject:Message-ID:Sender:Reply-To:Cc:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=xVN4cOYEHLvsvTsrs+Mo4ZF+TKkKL5dKm3kNYJ9llFY=; b=qnSpKJ33qhVTOfzu2g2xy/mOWn
	WgAnKyKONg75//4h4TDKLqKtbEQC7vadz8Gu58pP3oL3ub0M1GFAwcY9vKlYRq/oc8zuJV92NgJwN
	f0/3F1kmVCbhl4p3jm+cNSRXnfz7h4ZI6Wro/2ShZlH3AuHcVuiCSkNIe2CWQ44+SFexvzRskAKPJ
	T4d0cDCMojrcEffGmo1ijQzcCVZZp+YHV9S8qlpFnbGMvSBzPvWGFumv+QOsL2MzlaF3y1cNVq0zR
	1YRaRp9pbvZTesm0G9/tAEwB+YZfloUwHm951aEWeSoah+Ey4FFSi/QSgIo8wW8wNsxc+W7c3bUQ0
	F7hgqY/A==;
Message-ID: <6a820ac041d4d289dba2e78eff815443a036fe0d.camel@infradead.org>
Subject: [PATCH v4 31/30] KVM: selftests: Add Xen/generic CPUID timing leaf
 test
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
 Shuah Khan <skhan@linuxfoundation.org>, Sean Christopherson
 <seanjc@google.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
 <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,  Dave Hansen
 <dave.hansen@linux.intel.com>, x86@kernel.org, "H. Peter Anvin"
 <hpa@zytor.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross
 <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, David
 Woodhouse <dwmw2@infradead.org>, Paul Durrant <paul@xen.org>, Jonathan
 Cameron <jic23@kernel.org>, Sascha Bischoff <Sascha.Bischoff@arm.com>, Marc
 Zyngier <maz@kernel.org>, Dongli Zhang <dongli.zhang@oracle.com>, Jack
 Allister <jalliste@amazon.com>, Joe Jin <joe.jin@oracle.com>, Joey Gouly
 <joey.gouly@arm.com>, kvm@vger.kernel.org,  linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org,
 linux-kselftest@vger.kernel.org
Date: Sun, 10 May 2026 21:58:21 +0100
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-Baioh5K8VSQI5oIkCRkB"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-4011c0/1778446765-7D5868B7-18587396/0/0
X-purgate-type: clean
X-purgate-size: 16200


--=-Baioh5K8VSQI5oIkCRkB
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

From: David Woodhouse <dwmw@amazon.co.uk>

Verify that userspace can correctly populate Xen and generic CPUID
timing leaves using the KVM_VCPU_TSC_EFFECTIVE_FREQ and
KVM_VCPU_TSC_SCALE attributes.

This validates that the removal of KVM's runtime Xen CPUID modification
doesn't break guests: userspace queries the effective TSC and bus
frequencies, computes the pvclock mul/shift, populates the CPUID leaves,
and the guest verifies the values match.

The test exercises:
 - KVM_VCPU_TSC_EFFECTIVE_FREQ at native and scaled frequencies
 - KVM_VCPU_TSC_SCALE ratio verification against effective frequency
 - Generic timing leaf 0x40000010 (EAX=3Dtsc_khz, EBX=3Dbus_khz)
 - Xen leaf 3 sub-leaf 0 (ECX=3Dguest TSC kHz)
 - Xen leaf 3 sub-leaf 1 (ECX=3Dmul, EDX=3Dshift)

Gracefully skips TSC scaling tests on hardware without support.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 tools/testing/selftests/kvm/Makefile.kvm      |   1 +
 .../selftests/kvm/x86/xen_cpuid_timing_test.c | 232 ++++++++++++++++++
 2 files changed, 233 insertions(+)
 create mode 100644 tools/testing/selftests/kvm/x86/xen_cpuid_timing_test.c

diff --git a/tools/testing/selftests/kvm/Makefile.kvm b/tools/testing/selft=
ests/kvm/Makefile.kvm
index fb935ae3bf38..50f02116249f 100644
--- a/tools/testing/selftests/kvm/Makefile.kvm
+++ b/tools/testing/selftests/kvm/Makefile.kvm
@@ -139,6 +139,7 @@ TEST_GEN_PROGS_x86 +=3D x86/xss_msr_test
 TEST_GEN_PROGS_x86 +=3D x86/debug_regs
 TEST_GEN_PROGS_x86 +=3D x86/tsc_msrs_test
 TEST_GEN_PROGS_x86 +=3D x86/vmx_pmu_caps_test
+TEST_GEN_PROGS_x86 +=3D x86/xen_cpuid_timing_test
 TEST_GEN_PROGS_x86 +=3D x86/xen_shinfo_test
 TEST_GEN_PROGS_x86 +=3D x86/xen_vmcall_test
 TEST_GEN_PROGS_x86 +=3D x86/sev_init2_tests
diff --git a/tools/testing/selftests/kvm/x86/xen_cpuid_timing_test.c b/tool=
s/testing/selftests/kvm/x86/xen_cpuid_timing_test.c
new file mode 100644
index 000000000000..f574343ed449
--- /dev/null
+++ b/tools/testing/selftests/kvm/x86/xen_cpuid_timing_test.c
@@ -0,0 +1,232 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Test that userspace can correctly populate Xen and generic CPUID
+ * timing leaves using KVM_VCPU_TSC_EFFECTIVE_FREQ.
+ *
+ * This validates that the removal of KVM's runtime Xen CPUID modification
+ * doesn't break guests, because userspace has all the information needed.
+ */
+#include <stdint.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "test_util.h"
+#include "kvm_util.h"
+#include "processor.h"
+
+#include <asm/pvclock-abi.h>
+
+#define XEN_CPUID_BASE		0x40000100
+#define XEN_CPUID_LEAF(n)	(XEN_CPUID_BASE + (n))
+#define GENERIC_TIMING_LEAF	0x40000010
+
+/* Values set by host, verified by guest */
+static uint32_t expected_tsc_khz;
+static uint32_t expected_bus_khz;
+static uint32_t expected_tsc_mul;
+static int8_t   expected_tsc_shift;
+static uint64_t host_khz;
+
+static void guest_code(void)
+{
+	uint32_t eax, ebx, ecx, edx;
+
+	/* Check generic timing leaf 0x40000010 */
+	__cpuid(GENERIC_TIMING_LEAF, 0, &eax, &ebx, &ecx, &edx);
+	GUEST_ASSERT_EQ(eax, expected_tsc_khz);
+	GUEST_ASSERT_EQ(ebx, expected_bus_khz);
+
+	/* Check Xen leaf 3, sub-leaf 0: ECX =3D guest TSC frequency */
+	__cpuid(XEN_CPUID_LEAF(3), 0, &eax, &ebx, &ecx, &edx);
+	GUEST_ASSERT_EQ(ecx, expected_tsc_khz);
+
+	/* Check Xen leaf 3, sub-leaf 1: ECX =3D mul, EDX =3D shift */
+	__cpuid(XEN_CPUID_LEAF(3), 1, &eax, &ebx, &ecx, &edx);
+	GUEST_ASSERT_EQ(ecx, expected_tsc_mul);
+	GUEST_ASSERT_EQ((int8_t)edx, expected_tsc_shift);
+
+	GUEST_SYNC(0);
+}
+
+static void add_cpuid_entry(struct kvm_vcpu *vcpu, uint32_t function,
+			    uint32_t index, uint32_t eax, uint32_t ebx,
+			    uint32_t ecx, uint32_t edx)
+{
+	struct kvm_cpuid2 *cpuid =3D vcpu->cpuid;
+	struct kvm_cpuid_entry2 *entry;
+	int n =3D cpuid->nent;
+
+	vcpu->cpuid =3D realloc(vcpu->cpuid,
+			      sizeof(*cpuid) + (n + 1) * sizeof(*entry));
+	cpuid =3D vcpu->cpuid;
+	cpuid->nent =3D n + 1;
+
+	entry =3D &cpuid->entries[n];
+	memset(entry, 0, sizeof(*entry));
+	entry->function =3D function;
+	entry->index =3D index;
+	entry->flags =3D KVM_CPUID_FLAG_SIGNIFCANT_INDEX;
+	entry->eax =3D eax;
+	entry->ebx =3D ebx;
+	entry->ecx =3D ecx;
+	entry->edx =3D edx;
+}
+
+/*
+ * Compute pvclock mul/shift from frequency, matching kvm_get_time_scale()=
.
+ */
+static void compute_tsc_mul_shift(uint64_t tsc_hz, uint32_t *mul, int8_t *=
shift)
+{
+	uint64_t scaled =3D 1000000000ULL;
+	uint64_t base =3D tsc_hz;
+	int32_t s =3D 0;
+	uint32_t base32;
+
+	while (base > scaled * 2 || base >> 32) {
+		base >>=3D 1;
+		s--;
+	}
+	base32 =3D (uint32_t)base;
+	while (base32 <=3D scaled || scaled >> 32) {
+		if (scaled >> 32 || base32 & (1U << 31))
+			scaled >>=3D 1;
+		else
+			base32 <<=3D 1;
+		s++;
+	}
+	*mul =3D (uint32_t)((scaled << 32) / base32);
+	*shift =3D (int8_t)s;
+}
+
+static void run_test(uint64_t tsc_khz)
+{
+	struct kvm_vcpu *vcpu;
+	struct kvm_vm *vm;
+	struct ucall uc;
+	struct { uint32_t tsc_khz; uint32_t bus_khz; } freq;
+	struct kvm_device_attr freq_attr =3D {
+		.group =3D KVM_VCPU_TSC_CTRL,
+		.attr =3D 2, /* KVM_VCPU_TSC_EFFECTIVE_FREQ */
+		.addr =3D (uint64_t)(uintptr_t)&freq,
+	};
+
+	vm =3D vm_create_with_one_vcpu(&vcpu, guest_code);
+
+	if (tsc_khz) {
+		pr_info("Testing at TSC frequency %lu kHz\n", tsc_khz);
+		vcpu_ioctl(vcpu, KVM_SET_TSC_KHZ, (void *)(unsigned long)tsc_khz);
+	} else {
+		pr_info("Testing at native TSC frequency\n");
+	}
+
+	vcpu_ioctl(vcpu, KVM_GET_DEVICE_ATTR, &freq_attr);
+
+	/* If scaling wasn't applied, skip this frequency */
+	if (tsc_khz && freq.tsc_khz =3D=3D host_khz) {
+		pr_info("  TSC scaling not available, skipping\n");
+		kvm_vm_release(vm);
+		return;
+	}
+
+	pr_info("  Effective TSC: %u kHz, Bus: %u kHz\n", freq.tsc_khz, freq.bus_=
khz);
+
+	/* Also exercise KVM_VCPU_TSC_SCALE if available */
+	{
+		struct { uint64_t ratio; uint64_t frac_bits; } scale;
+		struct kvm_device_attr scale_attr =3D {
+			.group =3D KVM_VCPU_TSC_CTRL,
+			.attr =3D 1, /* KVM_VCPU_TSC_SCALE */
+			.addr =3D (uint64_t)(uintptr_t)&scale,
+		};
+
+		if (!__vcpu_ioctl(vcpu, KVM_HAS_DEVICE_ATTR, &scale_attr)) {
+			vcpu_ioctl(vcpu, KVM_GET_DEVICE_ATTR, &scale_attr);
+			pr_info("  TSC scale: ratio=3D%lu frac_bits=3D%lu\n",
+				scale.ratio, scale.frac_bits);
+
+			/*
+			 * Verify: applying the ratio to the host TSC frequency
+			 * should give approximately the effective frequency.
+			 */
+			if (tsc_khz) {
+				uint64_t computed =3D ((__uint128_t)host_khz * scale.ratio) >> scale.f=
rac_bits;
+				int64_t diff =3D (int64_t)computed - (int64_t)freq.tsc_khz;
+
+				TEST_ASSERT(diff >=3D -1 && diff <=3D 1,
+					    "TSC_SCALE ratio mismatch: computed %lu vs effective %u (diff %ld=
)",
+					    computed, freq.tsc_khz, diff);
+			}
+		}
+	}
+
+	compute_tsc_mul_shift((uint64_t)freq.tsc_khz * 1000,
+			      &expected_tsc_mul, &expected_tsc_shift);
+
+	expected_tsc_khz =3D freq.tsc_khz;
+	expected_bus_khz =3D freq.bus_khz;
+
+	sync_global_to_guest(vm, expected_tsc_khz);
+	sync_global_to_guest(vm, expected_bus_khz);
+	sync_global_to_guest(vm, expected_tsc_mul);
+	sync_global_to_guest(vm, expected_tsc_shift);
+
+	/* Populate CPUID leaves as a VMM would */
+	add_cpuid_entry(vcpu, GENERIC_TIMING_LEAF, 0,
+			freq.tsc_khz, freq.bus_khz, 0, 0);
+	add_cpuid_entry(vcpu, XEN_CPUID_LEAF(3), 0,
+			0, 0, freq.tsc_khz, 0);
+	add_cpuid_entry(vcpu, XEN_CPUID_LEAF(3), 1,
+			0, 0, expected_tsc_mul,
+			(uint32_t)(uint8_t)expected_tsc_shift);
+
+	vcpu_set_cpuid(vcpu);
+
+	pr_info("  pvclock mul=3D%u shift=3D%d\n", expected_tsc_mul, expected_tsc=
_shift);
+
+	vcpu_run(vcpu);
+	TEST_ASSERT_KVM_EXIT_REASON(vcpu, KVM_EXIT_IO);
+
+	switch (get_ucall(vcpu, &uc)) {
+	case UCALL_ABORT:
+		REPORT_GUEST_ASSERT(uc);
+		break;
+	case UCALL_SYNC:
+		break;
+	default:
+		TEST_FAIL("Unexpected ucall");
+	}
+
+	kvm_vm_release(vm);
+}
+
+int main(void)
+{
+	uint64_t freq;
+	struct kvm_vcpu *vcpu;
+	struct kvm_vm *vm;
+	struct kvm_device_attr attr =3D {
+		.group =3D KVM_VCPU_TSC_CTRL,
+		.attr =3D 2,
+	};
+
+	TEST_REQUIRE(sys_clocksource_is_based_on_tsc());
+
+	/* Check KVM_VCPU_TSC_EFFECTIVE_FREQ is supported */
+	vm =3D vm_create_with_one_vcpu(&vcpu, guest_code);
+	TEST_REQUIRE(!__vcpu_ioctl(vcpu, KVM_HAS_DEVICE_ATTR, &attr));
+	host_khz =3D __vcpu_ioctl(vcpu, KVM_GET_TSC_KHZ, NULL);
+	kvm_vm_release(vm);
+
+	/* Native frequency */
+	run_test(0);
+
+	/* Scaled frequencies =E2=80=94 skip if TSC scaling not available */
+	for (freq =3D 1000000; freq <=3D 4000000; freq +=3D 1000000) {
+		if (freq =3D=3D host_khz)
+			continue;
+		run_test(freq);
+	}
+
+	pr_info("PASS: All CPUID timing leaf tests passed\n");
+	return 0;
+}
--=20
2.43.0



--=-Baioh5K8VSQI5oIkCRkB
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUxMDIwNTgy
MVowLwYJKoZIhvcNAQkEMSIEIOs+sVtBDqNMC2S7uVGkKA5SADE6/V5PHWpeY5hohXohMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIALmACwOgyLop+
YOTggLSg+h4I46+NTsqWW29MkL15XRfMiYwzVU70RXsHl5I9AseAVYYWtWIQw4p0yXQp6CZvQnmV
P+ZVOogEQfemPFQVSnrgbPJ1aOUZbWFRcZiCpExegtvv18l998XG4wXaKdOpcF6oQnNjh/XcmpTn
4nvIL8S+vxZBe4FrAnY1Se2IkS9m0CTCDCnNd+6rv663fYUJLqj07QcyR1v56StlqXutr62B3ZSg
p3Wl7WURPUyZfvQv/NUS2qOPqV+7SePdHvJ2zT2S0GkmbAQX5LSe/mrKiOuy34gmp7drjaxzmd27
kUMA+4MFCggGs4aBHqEPwjoLxo0tETVLe8E1D10MsCEkI4afz7xOJ+S4gYTz1ib3BbsMTpMquNCD
WAPzadkJA5sSx5ItuLVbV0w9mq7TT/Ueyogjv11nF6c/Gv0lO6UezkvT2Sk6aoAMGvlUwYMyiTY6
4hDvhQqNvIHOb0qRc88gaJxsjioig2ukOhEw4S0blYcqoA2gh5q4yYAiMkszFYQ+I283e3IPeIMg
rcoi3rR/lfC3bUtyRi7ZDaFX3O/BSDynQsjmHxuz0jy8hM4JVg/UvYQMyELGsYcthMOHn5fHdDnr
3Jny1s4zfjzDuX6tE3OSbtbUZsTCzMdGXRYdCAeHpAXh03cGLqrozifAgT8HO6wAAAAAAAA=


--=-Baioh5K8VSQI5oIkCRkB--


From xen-devel-bounces@lists.xenproject.org Sun May 10 20:59:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 May 2026 20:59:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305591.1577875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMBEz-0004zy-98; Sun, 10 May 2026 20:59:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305591.1577875; Sun, 10 May 2026 20:59:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMBEz-0004zl-3s; Sun, 10 May 2026 20:59:09 +0000
Received: by outflank-mailman (input) for mailman id 1305591;
 Sun, 10 May 2026 20:59:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+0abf7e93b395bf2e804e+8295+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wMBEw-0004za-4D
 for xen-devel@lists.xenproject.org; Sun, 10 May 2026 20:59:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMBEs-002NBx-PP; Sun, 10 May 2026 22:59:05 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+0abf7e93b395bf2e804e+8295+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a00f11d-2eae-0a2a0a5409dd-0a2a45078b4e-28
 for <multiple-recipients>; Sun, 10 May 2026 22:59:04 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+0abf7e93b395bf2e804e+8295+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a00f197-229c-0a2a45070019-5a9b3222df74-3
 for <multiple-recipients>; Sun, 10 May 2026 22:59:04 +0200
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=u09cd745991455d.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wMBER-00000007GKB-3RrH; Sun, 10 May 2026 20:58:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:To:From:Subject:Message-ID:Sender:Reply-To:Cc:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=2fh66ArsKe8U1Q1vazOhgHC7ZL/RSaZ7Onoha+m5hJY=; b=vgVEtbex1j5sE2mCcKtcKlE90c
	nPwt7nAiy4w+dbfimkczHzK87JFH4kM4KgZjrdWnOLksjWypfG3VOs67WLsDD8y03Qqi0InQ2OtXC
	WYZXB/uvdNqa016XglX2VV6uCC+d7mD0aGi2i+5qfchaeHrFdf3sty4Lsrompyku6pTWNTcvjbBA6
	vihKszwBl4Nffc6cDeaKKXKEBO+wjUBJltWD5cvYUZtDGAAQUqK1UtUUNUWfxZBhQojEcmQ/90YKn
	QoO8kKJeV0kpegy7ENLQBcdbTpTH2LoKfQiCkFZBbchm6mcPDsPNSw83iPAmkMo3HqEc0TBTVKeya
	FAE5luUA==;
Message-ID: <0c199440c2cfd56a4c8e451134c6a0b1137507d6.camel@infradead.org>
Subject: [PATCH v4 33/30] KVM: selftests: Add Xen runstate migration test
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
 Shuah Khan <skhan@linuxfoundation.org>, Sean Christopherson
 <seanjc@google.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
 <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,  Dave Hansen
 <dave.hansen@linux.intel.com>, x86@kernel.org, "H. Peter Anvin"
 <hpa@zytor.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross
 <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, David
 Woodhouse <dwmw2@infradead.org>, Paul Durrant <paul@xen.org>, Jonathan
 Cameron <jic23@kernel.org>, Sascha Bischoff <Sascha.Bischoff@arm.com>, Marc
 Zyngier <maz@kernel.org>, Dongli Zhang <dongli.zhang@oracle.com>, Jack
 Allister <jalliste@amazon.com>, Joe Jin <joe.jin@oracle.com>, Joey Gouly
 <joey.gouly@arm.com>, kvm@vger.kernel.org,  linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org,
 linux-kselftest@vger.kernel.org
Date: Sun, 10 May 2026 21:56:35 +0100
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-SFVUe3tfsnRVPe9dwb/j"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-ef75cf/1778446744-0B175C48-6EC8CD65/0/0
X-purgate-type: clean
X-purgate-size: 15302


--=-SFVUe3tfsnRVPe9dwb/j
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

From: David Woodhouse <dwmw@amazon.co.uk>

Test that Xen runstate (steal time) is correctly accounted across a
simulated live migration using KVM_XEN_VCPU_ATTR and KVM_[GS]ET_CLOCK_GUEST=
.

The test simulates what a real VMM does during migration:
1. Creates a VM with Xen HVM config and runstate tracking
2. Runs the guest to accumulate some kvmclock time
3. Saves clock (KVM_GET_CLOCK_GUEST), TSC offset, and runstate
4. Marks the saved state as RUNSTATE_runnable (vCPU not running)
5. Destroys the source VM
6. Sleeps 10ms (simulating migration network transfer time)
7. Creates a new VM and restores all state precisely as saved
8. Runs the guest and verifies the migration gap appears as steal

The kernel accounts the gap because: on vcpu_load, it transitions from
RUNSTATE_runnable to RUNSTATE_running, computing delta =3D kvmclock_now -
state_entry_time. Since kvmclock has advanced past the saved entry time
(real time elapsed during migration), the delta is added to time_runnable.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 .../selftests/kvm/x86/xen_migration_test.c    | 194 ++++++++++++++++++
 1 file changed, 194 insertions(+)
 create mode 100644 tools/testing/selftests/kvm/x86/xen_migration_test.c

diff --git a/tools/testing/selftests/kvm/x86/xen_migration_test.c b/tools/t=
esting/selftests/kvm/x86/xen_migration_test.c
new file mode 100644
index 000000000000..37e8ace00611
--- /dev/null
+++ b/tools/testing/selftests/kvm/x86/xen_migration_test.c
@@ -0,0 +1,194 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Test Xen runstate (steal time) preservation across simulated migration.
+ *
+ * Verifies that the kernel correctly accounts the migration gap as
+ * steal time (runnable) when runstate data is saved and restored
+ * precisely, but real time elapses during the migration.
+ *
+ * The key insight: userspace saves the runstate with state=3DRUNSTATE_run=
nable
+ * (the vCPU is not running during migration). On restore, the kernel sees
+ * that kvmclock has advanced past state_entry_time, and accounts the
+ * difference as time spent in the runnable state.
+ */
+#include <inttypes.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "test_util.h"
+#include "kvm_util.h"
+#include "processor.h"
+
+#include <asm/pvclock-abi.h>
+
+#define SHINFO_GPA	0xc0000000ULL
+#define RUNSTATE_GPA	(SHINFO_GPA + 0x1000)
+
+#define RUNSTATE_running  0
+#define RUNSTATE_runnable 1
+#define RUNSTATE_blocked  2
+#define RUNSTATE_offline  3
+
+struct vcpu_runstate_info {
+	uint32_t state;
+	uint64_t state_entry_time;
+	uint64_t time[4];
+} __attribute__((packed));
+
+static void guest_code(void)
+{
+	volatile struct vcpu_runstate_info *rs =3D
+		(void *)(unsigned long)RUNSTATE_GPA;
+
+	/* Report runstate times =E2=80=94 no need to enable kvmclock MSR,
+	 * the kernel writes runstate using its internal kvmclock. */
+	GUEST_SYNC_ARGS(0, rs->time[RUNSTATE_runnable],
+			rs->time[RUNSTATE_running], 0, 0);
+}
+
+static struct kvm_vm *create_xen_vm(struct kvm_vcpu **vcpu)
+{
+	struct kvm_vm *vm;
+	int xen_caps;
+
+	vm =3D vm_create_with_one_vcpu(vcpu, guest_code);
+
+	xen_caps =3D kvm_check_cap(KVM_CAP_XEN_HVM);
+	TEST_REQUIRE(xen_caps & KVM_XEN_HVM_CONFIG_SHARED_INFO);
+	TEST_REQUIRE(xen_caps & KVM_XEN_HVM_CONFIG_RUNSTATE);
+
+	/* Map pages */
+	vm_userspace_mem_region_add(vm, VM_MEM_SRC_ANONYMOUS,
+				    SHINFO_GPA, 1, 2, 0);
+	virt_map(vm, SHINFO_GPA, SHINFO_GPA, 2);
+
+	/* Enable Xen HVM with MSR interception (enables runstate tracking) */
+	struct kvm_xen_hvm_config cfg =3D {
+		.flags =3D KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL,
+		.msr =3D 0x40000000,
+	};
+	vm_ioctl(vm, KVM_XEN_HVM_CONFIG, &cfg);
+
+	/* Set shared_info */
+	struct kvm_xen_hvm_attr ha =3D {
+		.type =3D KVM_XEN_ATTR_TYPE_SHARED_INFO,
+		.u.shared_info.gfn =3D SHINFO_GPA >> 12,
+	};
+	vm_ioctl(vm, KVM_XEN_HVM_SET_ATTR, &ha);
+
+	/* Set runstate address */
+	struct kvm_xen_vcpu_attr rs_addr =3D {
+		.type =3D KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADDR,
+		.u.gpa =3D RUNSTATE_GPA,
+	};
+	vcpu_ioctl(*vcpu, KVM_XEN_VCPU_SET_ATTR, &rs_addr);
+
+	return vm;
+}
+
+int main(void)
+{
+	struct pvclock_vcpu_time_info pvti;
+	struct kvm_xen_vcpu_attr runstate_save;
+	struct kvm_vcpu *vcpu;
+	struct kvm_vm *vm;
+	struct ucall uc;
+	uint64_t tsc_offset;
+	int ret;
+
+	/* =3D=3D=3D SOURCE SIDE =3D=3D=3D */
+	pr_info("=3D=3D=3D Source: create VM and run guest =3D=3D=3D\n");
+	vm =3D create_xen_vm(&vcpu);
+
+	/* Run guest once to accumulate some runstate time */
+	vcpu_run(vcpu);
+	TEST_ASSERT_KVM_EXIT_REASON(vcpu, KVM_EXIT_IO);
+	TEST_ASSERT_EQ(get_ucall(vcpu, &uc), UCALL_SYNC);
+
+	pr_info("  Guest sees: runnable=3D%" PRIu64 " running=3D%" PRIu64 "\n",
+		uc.args[2], uc.args[3]);
+
+	/* Save clock state */
+	ret =3D __vcpu_ioctl(vcpu, KVM_GET_CLOCK_GUEST, &pvti);
+	TEST_ASSERT(!ret, "KVM_GET_CLOCK_GUEST failed");
+
+	/* Save TSC offset */
+	tsc_offset =3D vcpu_get_msr(vcpu, MSR_IA32_TSC_ADJUST);
+
+	/* Save runstate =E2=80=94 the vCPU is now "runnable" (not running) */
+	runstate_save.type =3D KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_DATA;
+	vcpu_ioctl(vcpu, KVM_XEN_VCPU_GET_ATTR, &runstate_save);
+
+	/*
+	 * Transition to runnable state before saving =E2=80=94 the vCPU is
+	 * not running during migration.
+	 */
+	runstate_save.u.runstate.state =3D RUNSTATE_runnable;
+
+	pr_info("  Saved runstate: running=3D%" PRIu64 " runnable=3D%" PRIu64
+		" entry=3D%" PRIu64 "\n",
+		(uint64_t)runstate_save.u.runstate.time_running,
+		(uint64_t)runstate_save.u.runstate.time_runnable,
+		(uint64_t)runstate_save.u.runstate.state_entry_time);
+
+	uint64_t saved_runnable =3D runstate_save.u.runstate.time_runnable;
+
+	kvm_vm_release(vm);
+
+	/* =3D=3D=3D MIGRATION GAP =3D=3D=3D */
+	pr_info("=3D=3D=3D Simulating migration (sleeping 10ms) =3D=3D=3D\n");
+	usleep(10000);
+
+	/* =3D=3D=3D DESTINATION SIDE =3D=3D=3D */
+	pr_info("=3D=3D=3D Destination: create new VM and restore =3D=3D=3D\n");
+	vm =3D create_xen_vm(&vcpu);
+
+	/* Restore TSC offset */
+	vcpu_set_msr(vcpu, MSR_IA32_TSC_ADJUST, tsc_offset);
+
+	/* Restore clock =E2=80=94 kvmclock will now be ~10ms ahead of the snapsh=
ot */
+	vcpu_ioctl(vcpu, KVM_SET_CLOCK_GUEST, &pvti);
+
+	/* Restore runstate exactly as saved (state=3Drunnable) */
+	runstate_save.type =3D KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_DATA;
+	ret =3D __vcpu_ioctl(vcpu, KVM_XEN_VCPU_SET_ATTR, &runstate_save);
+	TEST_ASSERT(!ret, "Restore runstate failed: errno %d", errno);
+
+	/*
+	 * Run the guest. When the vCPU enters vcpu_run, the kernel
+	 * transitions from RUNSTATE_runnable to RUNSTATE_running.
+	 * It computes: delta =3D kvmclock_now - state_entry_time
+	 * This delta (which includes the migration gap) is added to
+	 * time_runnable (steal time).
+	 */
+	vcpu_run(vcpu);
+	TEST_ASSERT_KVM_EXIT_REASON(vcpu, KVM_EXIT_IO);
+	TEST_ASSERT_EQ(get_ucall(vcpu, &uc), UCALL_SYNC);
+
+	uint64_t guest_runnable =3D uc.args[2];
+	uint64_t guest_running =3D uc.args[3];
+
+	pr_info("  Guest sees: runnable=3D%" PRIu64 " running=3D%" PRIu64 "\n",
+		guest_runnable, guest_running);
+
+	uint64_t steal_increase =3D guest_runnable - saved_runnable;
+	pr_info("  Steal time increase: %" PRIu64 " ns (migration gap)\n",
+		steal_increase);
+
+	/*
+	 * The steal time increase should be at least 10ms (the sleep)
+	 * but not more than 5s (allowing for VM creation overhead).
+	 * The actual gap is from the source's state_entry_time to the
+	 * destination's kvmclock "now" at vcpu_load time.
+	 */
+	TEST_ASSERT(steal_increase >=3D 10000000ULL &&
+		    steal_increase < 5000000000ULL,
+		    "Steal time increase %" PRIu64 " ns not in expected range "
+		    "[10ms, 5s]", steal_increase);
+
+	kvm_vm_release(vm);
+	pr_info("PASS: Migration gap correctly accounted as steal time\n");
+	return 0;
+}
--=20
2.43.0



--=-SFVUe3tfsnRVPe9dwb/j
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUxMDIwNTYz
NVowLwYJKoZIhvcNAQkEMSIEIJd25+ZIyferprxmR1GEWUQ16lvRwmFQqpqO3JBs05w4MGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAq0XfF1F/vGl4
ykxCAI8ARC9jXo1En12d0TM1qf9Wxkv+8j0AfMJYLQe53Kge9JpbFEnGB6PghymF4224d16SJ/pQ
RWm5fg7PihYsJftwuidWXpupVu6VDWH/B2lNBHBuU03C7l74QOIzdoTDUkzXIWFAr3hyGM3nIgXx
0K7w6PEAGs154XmbOO/UOTQZX3WkV7Mwww4EN60UpMU/YPMq1x+RzOoetR56oTYp6+AOlQOLmqUb
Ag4lNYyCG0cDUn9CbdD9eqzZMT/PwMatJDEiv/BOzl+/6rDc2a15+hqH72m3XcpmmKp45ViTuxiE
LoNwzaXt9Yyzi38PEMu4zJ29+BRDWXoBsQj0xtkeLgWUv1muPVLdnPe0yCK8wZgPmiC4aaQLkmpA
oc+WZYcchNtmplpp4Iag/E+kciux37AlhIOO7tz3Rxcf2Yrkac8pVY+XNiidy06rDbAZB0o9Uzlh
1uCMWzmXr0P9BO7IgzHHgONMAf5pTduMHGcMwGgsJI6tdRHoLk212G5DY4j0p4LIxuQkyPy1sb/o
bSITFOIZRDZ9fm2K9yf8O+49YCHBZWlcyaSv8OOL30/ZsZFZXW8aOhWbojoVs/ao4AyixEVwB4hB
Jd9aivPSMVAJ1fPMK1rA1jCKVKRruDxA58wfb2N8t80T0+xAVdpiauNaZVwjJ2sAAAAAAAA=


--=-SFVUe3tfsnRVPe9dwb/j--


From xen-devel-bounces@lists.xenproject.org Sun May 10 21:06:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 May 2026 21:06:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305612.1577893 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMBLY-00076O-6G; Sun, 10 May 2026 21:05:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305612.1577893; Sun, 10 May 2026 21:05:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMBLY-00076H-3Z; Sun, 10 May 2026 21:05:56 +0000
Received: by outflank-mailman (input) for mailman id 1305612;
 Sun, 10 May 2026 21:05:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+0abf7e93b395bf2e804e+8295+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wMBLW-00076B-Fp
 for xen-devel@lists.xenproject.org; Sun, 10 May 2026 21:05:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMBLV-00FRbJ-PR; Sun, 10 May 2026 23:05:53 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+0abf7e93b395bf2e804e+8295+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a00f309-2eae-0a2a0a5409dd-0a2a4507d730-10
 for <multiple-recipients>; Sun, 10 May 2026 23:05:53 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+0abf7e93b395bf2e804e+8295+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a00f330-229c-0a2a45070019-5a9b3222e5ba-3
 for <multiple-recipients>; Sun, 10 May 2026 23:05:53 +0200
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=u09cd745991455d.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wMBLA-00000007GmD-1vIF; Sun, 10 May 2026 21:05:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:To:From:Subject:Message-ID:Sender:Reply-To:Cc:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=bhNOFvkH719t7i9pQvqgD9PQhJFs6ir/zUj3G3rKD18=; b=k3gDaT7vBcXRudpVf2JczbIT1q
	5afuzuA0DX9RyNuKWPIbcFfMzM95N5bcyy38ZIevIkLL9zY4zLoghfyqt5mCgw8RfARtFladk4DRS
	mhEmCZR0wnj1sMkVgMRew2bzKtPMcrFIMBGzMRto5CiJui/yonAWitgBo7DXOG5JF9RIu1i377M2A
	pgfSLhdq3rJcC+kwSrgxUxqx9iVfay9FgtA+vIZz0+eZTBiF3uABfmOlRptJ3ez23N83pSvwwqWSb
	icd8XPttOeADBiZBrMnnQzrvU7QGpB/zx9+imXaF4rhTGXJghLDrx3sI7cbaAI/Qvr8bngLVEixRy
	87Plb/WQ==;
Message-ID: <66458bbc44f98b7f9742007348a9f70ee8086429.camel@infradead.org>
Subject: [PATCH v4 32/30] KVM: x86: Re-synchronize TSC after KVM_SET_TSC_KHZ
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
 Shuah Khan <skhan@linuxfoundation.org>, Sean Christopherson
 <seanjc@google.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
 <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,  Dave Hansen
 <dave.hansen@linux.intel.com>, x86@kernel.org, "H. Peter Anvin"
 <hpa@zytor.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross
 <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, David
 Woodhouse <dwmw2@infradead.org>, Paul Durrant <paul@xen.org>, Jonathan
 Cameron <jic23@kernel.org>, Sascha Bischoff <Sascha.Bischoff@arm.com>, Marc
 Zyngier <maz@kernel.org>, Dongli Zhang <dongli.zhang@oracle.com>, Jack
 Allister <jalliste@amazon.com>, Joe Jin <joe.jin@oracle.com>, Joey Gouly
 <joey.gouly@arm.com>, kvm@vger.kernel.org,  linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org,
 linux-kselftest@vger.kernel.org
Date: Sun, 10 May 2026 22:05:31 +0100
In-Reply-To: <20260509224824.3264567-1-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-n1rYoFphXBZk9zIVxw0J"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-ef75cf/1778447153-28479C48-A21FFE83/0/0
X-purgate-type: clean
X-purgate-size: 9332


--=-n1rYoFphXBZk9zIVxw0J
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

From: David Woodhouse <dwmw@amazon.co.uk>

KVM_SET_TSC_KHZ changes the vCPU's TSC scaling ratio but does not
update the VM-wide cur_tsc_scaling_ratio used by get_kvmclock().
This causes get_kvmclock() to use a stale (default 1:1) ratio when
computing the KVM clock, leading to drift between the host-side
kvmclock and what the guest observes.

Fix this by calling kvm_synchronize_tsc() after changing the TSC
frequency. This:
 - Updates cur_tsc_scaling_ratio (consumed by pvclock_update_vm_gtod_copy)
 - Ensures the TSC value is continuous across the frequency change
 - Triggers kvm_track_tsc_matching() for proper masterclock handling
 - Allows subsequent vCPUs to synchronize via the 1-second slop hack

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/kvm/x86.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index ac982652e5e0..833a4f119e22 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -206,6 +206,7 @@ module_param(mitigate_smt_rsb, bool, 0444);
 #ifdef CONFIG_X86_64
 static bool kvm_get_time_and_clockread(s64 *kernel_ns, u64 *tsc_timestamp)=
;
 #endif
+static void kvm_synchronize_tsc(struct kvm_vcpu *vcpu, u64 *user_value);
 #define KVM_MAX_NR_USER_RETURN_MSRS 16
=20
 struct kvm_user_return_msrs {
@@ -2611,7 +2612,20 @@ static int kvm_set_tsc_khz(struct kvm_vcpu *vcpu, u3=
2 user_tsc_khz)
 			 user_tsc_khz, thresh_lo, thresh_hi);
 		use_scaling =3D 1;
 	}
-	return set_tsc_khz(vcpu, user_tsc_khz, use_scaling);
+	if (set_tsc_khz(vcpu, user_tsc_khz, use_scaling))
+		return -1;
+
+	/*
+	 * Re-synchronize the TSC after changing frequency. This ensures
+	 * cur_tsc_scaling_ratio is updated (used by get_kvmclock) and
+	 * the TSC value is continuous across the frequency change.
+	 */
+	{
+		u64 tsc =3D kvm_read_l1_tsc(vcpu, rdtsc());
+
+		kvm_synchronize_tsc(vcpu, &tsc);
+	}
+	return 0;
 }
=20
 static s64 compute_guest_tsc(struct kvm_vcpu *vcpu, s64 kernel_ns)
--=20
2.43.0



--=-n1rYoFphXBZk9zIVxw0J
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUxMDIxMDUz
MVowLwYJKoZIhvcNAQkEMSIEIFWN6n8X9WBM9wKga4UBdzpcqylFM6KbtxwIBVCVc0wEMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAmys03PU6Q2QV
trMeAzFqK3sy+3xeEJw/kWnC4KHJ+jbql833Q5hVWPwKe/aTz7TNHq+fsHtEVF0hB9BKclbiUKXR
JQxiF0cH8SHw6DGbQBGhAvsMiuVWdzA9IMNgFCSd+pkY1mQrHytDMS4pT+G3hGAsJm7ziN38yh0h
LnQDqs48uGvaoj8UP1FGNT0qYwhf7ld5m/4y0RO0+0QCJ6WKEcKFHxLCDneYe1suD4N65qe8pBlj
iNt50hI1HvCeCInnB0rwP0CiThVsotoeygra5pEkP3eTOwtyjdea8vudQ+dSxb3LZWt9rYZInUaO
AZHPrwjrYKebJ4ondGYI8cwMVyA/O0gzA2mvEfMPpX+oA4v/y8PMp6B0MLyL2Pod7IcX9AOYVfRS
djaQVPPbfSQwVOfc7DHirLiF7of6zyld0F5GIL1cCVa2ucrDFixP6IwZLah0+Fdh3/8gxoZdGUOL
+9E0ScuW/eaPlkwuIW9dl/RK8SAA9HF5oWAk//xjSoDnS8jzbJHkHvsN8HU7QD5eR9ObKiJI2nYV
QLH06FqbyGD3fP1frToGbRvXOMoyUapvUmhrFJoRixR6qokFcPRHspAvaeT9BglwP4E9w0Avgdlu
n6NcrZekVmLoVpKdlpeVDJptISLEmzq4A2w/h7yV0WNB6EWdPbfdLBPsZzVgBEgAAAAAAAA=


--=-n1rYoFphXBZk9zIVxw0J--


From xen-devel-bounces@lists.xenproject.org Sun May 10 23:33:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 May 2026 23:33:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305660.1577901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMDds-0000Jx-36; Sun, 10 May 2026 23:33:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305660.1577901; Sun, 10 May 2026 23:33:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMDdr-0000Jq-Vr; Sun, 10 May 2026 23:32:59 +0000
Received: by outflank-mailman (input) for mailman id 1305660;
 Sun, 10 May 2026 23:32:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <x1917x@gmail.com>) id 1wMDdq-0000Jk-PD
 for xen-devel@lists.xenproject.org; Sun, 10 May 2026 23:32:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMDdo-002arT-KK
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 01:32:58 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <x1917x@gmail.com>)
 id 6a011560-bab6-0a2a0a5309dd-0a2a450285c2-32
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 01:32:58 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <x1917x@gmail.com>)
 id 6a0115aa-af86-0a2a45020019-d155dd31b006-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 01:32:58 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-43fe608cb92so2238675f8f.2
 for <xen-devel@lists.xenproject.org>; Sun, 10 May 2026 16:32:58 -0700 (PDT)
Received: from LinuxLaptop ([45.157.112.7]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e702e6d41sm183399535e9.7.2026.05.10.16.32.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 10 May 2026 16:32:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Organization:References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778455977; x=1779060777; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:organization:references
         :in-reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Ta7TMvMqH6+uZY4QpSPG2FQFlhWtL36NChaZdBFFffI=;
        b=saPpRtVgRnb2bFGeB2oHcM/tvyEF0vJAZbM+du9aaqhX8S7oPBHOY22jUUDzB5NWGU
         LXSP8mmMIQwgHW3mRImXtvKjPgbM0DCnIYd3SZPF5XZCeoSqAGGEE9Z8vYA7OpyVastH
         3xExipRtxETUZhKf/1fRkOghhmU+wBwPLQt4ZltM8L01nJ5lPmu0PLsQc4zCz6dkVwa8
         qG2GBYmXS+FEYGp1khf+5Kd5kTy6dNR06HmeKv314ryd/OXVRWv1/jBtCQJphIOy7ZSv
         F6ZnmuJkFDFdt3FO94s0xXkDvGwODjH2O8SrH5ESn2fg+h6LM5ZVtfFyWNK4E/qVg9Mt
         EFDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778455977; x=1779060777;
        h=content-transfer-encoding:mime-version:organization:references
         :in-reply-to:message-id:subject:cc:to:from:date:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Ta7TMvMqH6+uZY4QpSPG2FQFlhWtL36NChaZdBFFffI=;
        b=V6ut8wSnXF2+vdaDRargEEg9sNUjF0BB7NSVT+LVKleTZHBV76CD583pO3uDp6kMr1
         h8xW3ciz/L4UrgpNg6av9Jirnz77BX538r30QmypNo7CeuZdlChsDkMzcAuH3EHW0rdf
         RnuxzWOy6qM0IdwUW/KHvCWJv00vmwsD7mySlpeW2TdjJYKxoBIfrS3YQbzeO5vsso3q
         a/y5yTleOPO207cXI/koO40Xzu9S58uusrURoKAu1vVfbuGWbj+YXPGXy4xxOso4veL0
         g87a2KjU1sXLo+U7lC2F1+YZvifNCm0ERsxG/mvcYemv1X8tM38UDcSuabrLv0XK5fGM
         1SlA==
X-Forwarded-Encrypted: i=1; AFNElJ8FdxaAxRHFMX4U0L2jsEXFB37lZYk25mEGIkVU3Fntn2R5twDS7fMF4xIRCoc3/Nle56poMAQM+Do=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzU2I1mLbx+ITGEVKs6ayaXiXhQ9zbWP6X+KmjC33CJVR5QZB4c
	ATx+cvtxDjIdNGi0xvXr4CpWNf6JtLT2Y/jpP3ysKSbbhSjLm2OEzEQx
X-Gm-Gg: Acq92OEUfgc+ZoLU2uDfOen5NdLoyZqhVwtsCuyEcFtJd6OVq+wdMZK4RlKRj8KElvo
	ZWcAPbKas0l649Di7eaybUq1zZipHYvfTgjNz6N+2BoSGXQuzFYKvlBygd09UCenYXLOJDFauFJ
	zaNabFyLKc7EEgWNBKMhGAm88Jsj7pskGXXHD+BXhANRS55v6EotvIIPkCanDL5Plt13+l0nBVH
	9p/TWzZUsFLFrgpBNDB2+e6TdpVdHrz+zv/9IFUEcfvMlwv8VWTtrMe4RF2BDikgg4Z0ghQEp2v
	eVs49ZckmDKvvtEwEGJxLbFcz03A5VaoUjHfRdT3HJfMyF8U4QJwtTTm/kxWvBQWg9Sq2zF09dW
	NxwHY7FhnGLpxWq2jpdx/Z5HppJg8OkOcBtd4wfl5w59fd1mkWOhLlln7jKxoGhYu6J93u57SlW
	dNpKZuhOiWKaZLo1g=
X-Received: by 2002:a05:600c:a30d:b0:48e:5d91:cfe3 with SMTP id 5b1f17b1804b1-48e6748a72fmr123941125e9.1.1778455977319;
        Sun, 10 May 2026 16:32:57 -0700 (PDT)
Date: Mon, 11 May 2026 01:32:52 +0200
From: Alexey G <x1917x@gmail.com>
To: Roger Pau =?UTF-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: Thierry Escande <thierry.escande@vates.tech>,
 xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
 <anthony.perard@vates.tech>
Subject: Re: [PATCH 07/17] hvmloader: add basic Q35 support
Message-ID: <20260511013252.326cd768@LinuxLaptop>
In-Reply-To: <afCy-IU85MdDBlUq@macbook.local>
References: <20260313163455.790692-1-thierry.escande@vates.tech>
	<20260313163455.790692-8-thierry.escande@vates.tech>
	<afCy-IU85MdDBlUq@macbook.local>
Organization: none
X-Mailer: Claws Mail 4.3.1 (GTK 3.24.38; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-720697/1778455978-B0B78161-EB2FB015/0/0
X-purgate-type: clean
X-purgate-size: 2556

On Tue, 28 Apr 2026 15:15:36 +0200
Roger Pau Monn=C3=A9 <roger.pau@citrix.com> wrote:
>
>> +        pci_writel(devfn, 0x40, ACPI_PM1A_EVT_BLK_ADDRESS_V1 | 1);
>> +        pci_writeb(devfn, 0x44, 0x80); /* enable PM io space */
>> +        outl(SCI_EN_IOPORT, inl(SCI_EN_IOPORT) | GBL_SMI_EN | APMC_EN);
>
>Most of the above looks like black magic.  It's not like the context
>of this function is great, most of the existing stuff is poorly
>documented.  Can we get a bit more comments about what's this supposed
>to do, and maybe a reference to the Intel specification that lists
>where those PCI config space registers are coming from?

This is a precondition for the (later) switch to ACPI.

First, we set the ACPI I/O registers base - it can be absolutely
arbitrary but we choose the same value that was used before for PIIX4 -
ACPI_PM1A_EVT_BLK_ADDRESS_V1. The "| 1" part is likely NOT necessary
and should be removed unless QEMU has a bug with its handling -
according to Intel datasheet, bit0 is "Hardwired to 1 to indicate I/O
space", no need to set it explicitly.

At this point we can use ACPI I/O register block at
ACPI_PM1A_EVT_BLK_ADDRESS_V1. We are only interested in one register
from this range - at offset +30h. SCI_EN_IOPORT is a wrong name
actually, it should be renamed to SMI_EN_IOPORT.

Finally, the line
"outl(SCI_EN_IOPORT, inl(SCI_EN_IOPORT) | GBL_SMI_EN | APMC_EN)"
enables SMI generation - we will use it later to perform a classic
APM -> ACPI switch via a write to the APM_CNT (0B2h) register to
trigger an SW SMI, followed by validating SCI_EN=3D1 to confirm the
successful switch.

Basically, all this setup is just a preparation for the step done in
the next patch - "hvmloader: add ACPI enabling for Q35".

What I don't remember is who was actually responsible for actual ACPI
enabling - either QEMU or firmware.
On real systems it is a bit more complicated - the APM -> ACPI switch
is done by an ACPI-aware OS itself (OSPM, how they call it). The OS
extracts information from ACPI tables and use it to find out what and
where to write in order to switch to ACPI. Under the hood it's still a
special value written to the SW SMI register, triggering a SMI handler
in the firmware. The actual hand-off to ACPI was done by the SMI
handler, including switching the PM interrupt from SMI to ACPI's SCI.

I'm not sure why hvmloader does this switch early instead. But at least
this APM -> ACPI switch flow matches the older (PIIX4) one. Perhaps
this is how it was handled by QEMU.


From xen-devel-bounces@lists.xenproject.org Mon May 11 06:17:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 06:17:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305758.1577911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMJww-0008B5-OM; Mon, 11 May 2026 06:17:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305758.1577911; Mon, 11 May 2026 06:17:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMJww-0008Ax-HX; Mon, 11 May 2026 06:17:06 +0000
Received: by outflank-mailman (input) for mailman id 1305758;
 Mon, 11 May 2026 06:17:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wMJwv-0008Ar-Gy
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 06:17:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMJwu-004sn7-Fn
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 08:17:04 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a017458-e002-0a2a0a5209dd-0a2a45038aec-24
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 08:17:03 +0200
Received: from [52.101.48.62]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a01745e-672d-0a2a45030019-3465303e43a2-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 08:17:03 +0200
Received: from BN0PR03CA0017.namprd03.prod.outlook.com (2603:10b6:408:e6::22)
 by SJ5PPF4D350AC80.namprd12.prod.outlook.com
 (2603:10b6:a0f:fc02::993) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.22; Mon, 11 May
 2026 06:16:57 +0000
Received: from BN1PEPF0000468A.namprd05.prod.outlook.com
 (2603:10b6:408:e6:cafe::76) by BN0PR03CA0017.outlook.office365.com
 (2603:10b6:408:e6::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.22 via Frontend Transport; Mon,
 11 May 2026 06:16:57 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN1PEPF0000468A.mail.protection.outlook.com (10.167.243.135) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Mon, 11 May 2026 06:16:57 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Mon, 11 May
 2026 01:16:57 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 11 May
 2026 01:16:56 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 11 May 2026 01:16:55 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TGPB9o+nUFjsuTGvX5kL9wnB7bVn4FyEncTmTmQ5LqTQw1dSjX88Jm4SVI4v9eRR9dYgDJ9J185I0wDvQ2RGlZWEjH0tV+WyJAghVuXLIkzw7JKd81hSe57bNv57TVF7HgEavZic1eDybJPC0PS8aJgNrJl5S8v5yHTHM5HtKqwkmsNcXAvoXoUssQqnmwokxngKJl2MhpRRG+ApJagCZmgFTvEeGy8ASofzl3r+ptjGFmAcuFUCRlb6V8jtxgxSnRW48/ntiOI4BjnHPC4MQMhR094WcFTS9uojFSUgAzih7egAdUmOmQ4X/+Q2t1s9zcyKP11qqrqFugHOWovuLw==
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=xB6YnHqIy3x5v/O1+TImmWizAfouAcAAeyLqOsoTeRM=;
 b=C19g/grNSg3q9r49IQyDpTKOYQdKIsQU8NXmz/LIPPAhgcsyrFSWEzGbbOKU5lWKNc0buSr5BaoizrRaU0hx1Wib6pjPdqgfDc6NtjqFgacrRjqHMAV5VYpHAkT43n27DKoryO0rE/EgHB+TQnD+FhsJt6lew3yZKWDEu1waseX0PuNcvvYTEvGMYmMQAfxs8aiAzuQaS4bfVo6NpsSAgt+k+WzL13TQ0OD4aKHfZK1NY9J2HMUdxjg9iFayEZWhThSeK0fYbx7YHl3HGkID+F+wKTMjvt08ZqoNn9c4i4AheOKGneaI1JpIbejgrK0wcqlUnMu/j/eQdbWmBvFTzA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xB6YnHqIy3x5v/O1+TImmWizAfouAcAAeyLqOsoTeRM=;
 b=isxZbv/GyWaHEWs+gAURr1lRvFOpMy4iTvYP+7x0YDEGNyrWNuCMTSuG5SK/m8X8D7kIR6z+Rk7qeW2lP2g508XC1ixVs+xBcgZOZEIsWZTILMT2b2lsP53RJVRJmLUpq8zJ9p1gmd0RipDszthkblfq/Qnet9pMevsP/INaPxE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <a7932bc7-86ad-401c-b462-01078e6e11bb@amd.com>
Date: Mon, 11 May 2026 08:16:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] CI: Adjust test needs[] to ensure binaries/ is
 non-root
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Stefano Stabellini
	<sstabellini@kernel.org>, Doug Goldstein <cardoe@cardoe.com>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
 <20260508212907.1643761-2-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260508212907.1643761-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF0000468A:EE_|SJ5PPF4D350AC80:EE_
X-MS-Office365-Filtering-Correlation-Id: 7b3daa51-a50f-438a-1005-08deaf24e7b5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700016|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	h57W9QwEx3I8NHIYajgaXLFlK1rOUbCi9/7Eakyn+TiO8DOVQLpaxUCTxgvEDqvB00SIpL4VuzMVA5f9mvBgBeMbxdVKJjvV1yn7F8sk8w8TV9MoS/dfFGuwv+UaRdR1Oks64K2E4N1S9IuWc4PdUFmOwZBjC8zgPKMLv658WOyrRWZPRoUnfo/cDTaYrxOcrVyXhaxuUYFaBeWPjmysY+6BQusfvOEiQ6YerFjriPlqJ/XeXIhlfDx51WtIF3NSseGpN1NmvSJQbG57vPfKAn1Yp0FS/h45zPGhaxJKDNMwr4EDpzLCntlYOlxsoyKwZ9vvZ0b7HXiMHMrX7VK450Kd/pnNAY0FQ3gzZ4sHyxIHJMgxRzq1ViSiaoHK4hoa2MSzP1ZlgYrGD4KKoQUqI8Lqmt6IUy6q1j83V3ZGNnRy85RCCJ7CQNEGGtSY/AO2onXR3wsFMYk0dZkh4D6R5qcvXbUtUvJB5KyavcItc3GqoO+zM65pQhhal6X/U1V3WAzdUmJ0DDGspietJP1o9Ybd1aNFDPX3VTyImn9N/OUdO66d60cJnuHEE0nZvUf5yGkpO2f91+xUCB0/rP7xAs3ylhXHiuR3xfjr4BhfuX5QllfVv5qJT0DTkM8r8jCb3r0YhewfpCqi4wSgncm37cQ8TWp84VytEllp5y3pDmT7StY/E7tJ9ErfaZIYcQdHOOB5pmgv/X4K9KcHhmSt7EjV35J64qgiknCF1YFj6vQ=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700016)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	PzD+cxI9Vgws0aogubZQWwvV+NhUTySfMr8pNfvcqPcLS37QXpIr/D+qjwaG3Fhh/3D6raN2+NeH8BXKXK741IbyE//pj2tuA81tRzSUtpqexjnXFHLcPgq9N+MFRcr5WixLZn6qcjEpGIsA7mwR3HajTM4oQlzUT3ZeaoNnLizQ3VL7nwbvSLkh2olbcdAOzwTmwpnRdYEIlrWM9R6GHbhNwyBzsETUM9Ih0LqqftB2+kcRYGkbUhy6x4T4y0UyyZMKyNrhw/kooh9iPkyAJ3kRzi4innXqX86DhECaoGrqIKuQQEcqAve9h867fx9T0fHUal+Dbx2lEzyyG60c/J90wnyP1AtIIIxBZ8J59o6wpl7WevBF1XI1Bz0G21PnS9DhpumO48XrDZmPRibfUCw4zdJL8phZFYk8bIa0P/ufQsuNjuJsipblf1Ufz8Nq
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 06:16:57.3853
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7b3daa51-a50f-438a-1005-08deaf24e7b5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF0000468A.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF4D350AC80
X-purgate-ID: tlsNG-33051d/1778480223-38B74938-F545CCBE/0/0
X-purgate-type: clean
X-purgate-size: 3134



On 08-May-26 23:29, Andrew Cooper wrote:
> The binaries/ directory is a composition from the artefacts, and also used as
> a working directory for most of the tests.  If the very first artefact is from
> a root container, then the test must also be a root container to use it as a
> working directory.
> 
> For arm64, the existing linux-arm64 artefact suffices.  For arm32, pull in the
> microcode-x86 artefact as it's the smallest available.  This bodge can be
> removed when all build containers have become non-root.
> 
> For the qemu-xtf-dom0less-arm64-*-xen-version jobs, use *arm64-test-needs
> ahead of alpine-3.18-gcc-* (as it's a root container), and to deduplicate
> the *-export dependency.
> 
> This will allow us to change containers to being non-root one at a time,
> rather than all in one go.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Doug Goldstein <cardoe@cardoe.com>
> 
> We should also stop using binaries/ as a working directory for the tests, but
> that gets very complicated very quickly and I don't have time to do it at this
> juncture.
> ---
>  automation/gitlab-ci/test.yaml | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 8770c523e228..517af1732437 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -15,6 +15,12 @@
>    - qemu-system-aarch64-6.0.0-arm64-export
>  
>  .arm32-test-needs: &arm32-test-needs
> +  # Bodge to ensure binaries/ is non-root.  Can be any artefact which comes
> +  # from a non-root container, and microcode-x86 is the smallest.  Remove when
> +  # all build containers have become non-root.
> +  - project: $ARTIFACTS_REPO
> +    job: microcode-x86
> +    ref: $ARTIFACTS_BRANCH
I don't see it being removed in this series even though the containers are non-root.

>    - qemu-system-aarch64-6.0.0-arm32-export
>  
>  .x86-64-test-needs: &x86-64-test-needs
> @@ -569,16 +575,16 @@ qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
>    script:
>      - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 | tee ${LOGFILE}
>    needs:
> +    - *arm64-test-needs
This also pulls in Linux image and rootfs which XTF tests don't need. I think
it's much better for a test to list the actual list of its dependencies.
Otherwise you are asking user/developer to dig into the yaml.

~Michal

>      - alpine-3.18-gcc-arm64
> -    - qemu-system-aarch64-6.0.0-arm64-export
>  
>  qemu-xtf-dom0less-arm64-gcc-debug-hyp-xen-version:
>    extends: .qemu-arm64
>    script:
>      - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 | tee ${LOGFILE}
>    needs:
> +    - *arm64-test-needs
>      - alpine-3.18-gcc-debug-arm64
> -    - qemu-system-aarch64-6.0.0-arm64-export
>  
>  qemu-smoke-dom0-arm32-gcc:
>    extends: .qemu-arm32



From xen-devel-bounces@lists.xenproject.org Mon May 11 06:20:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 06:20:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305769.1577920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMK0F-0001Ox-79; Mon, 11 May 2026 06:20:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305769.1577920; Mon, 11 May 2026 06:20:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMK0F-0001Oq-3e; Mon, 11 May 2026 06:20:31 +0000
Received: by outflank-mailman (input) for mailman id 1305769;
 Mon, 11 May 2026 06:20:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wMK0E-0001Oi-3r
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 06:20:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMK0D-00GQWb-GX
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 08:20:29 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a017527-e002-0a2a0a5209dd-0a2a450b86c6-38
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 08:20:29 +0200
Received: from [40.107.209.9]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a01752b-212f-0a2a450b0019-286bd1099363-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 08:20:28 +0200
Received: from MN0PR04CA0019.namprd04.prod.outlook.com (2603:10b6:208:52d::33)
 by DS7PR12MB5792.namprd12.prod.outlook.com (2603:10b6:8:77::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Mon, 11 May
 2026 06:20:20 +0000
Received: from BL02EPF0001A108.namprd05.prod.outlook.com
 (2603:10b6:208:52d:cafe::d) by MN0PR04CA0019.outlook.office365.com
 (2603:10b6:208:52d::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 06:20:20 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL02EPF0001A108.mail.protection.outlook.com (10.167.241.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Mon, 11 May 2026 06:20:19 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 11 May
 2026 01:20:19 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 11 May
 2026 01:20:19 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 11 May 2026 01:20:18 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HvrYTtCMlp0ILOS9LzkwyIr5cb4WJF7MToear3Bg9Tveej6ec+vzuwrb7MlNiwnNQQjyoqDwg6eOjN4+457lcK3g5lI66h2RHn6p3Dve69osHK3sbjgSirkCnY04wQ99Gq1dMNyoW3tlVde7wvTkiyIL0GYcePB0r/SaWUZQvKiIVbS0j/EoCf/Rp/gyDl55k9xuw43oHvC0J5AFcgg9JnSb2f2MoONPXFXBw/fkltKh1iDwjWUpq5qV01h6+xc4KVrhV2hUAa6WhuR4T2uwyJAqUQ4i349aDJeTJNb1VSEWNMTv6MF0T4Y2o0ZDsB9aPzdcAopOBQUZfGbPlhwXrA==
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=jdM50mrh+pLYS3OuhZx93MxruQNAV7za+f+2dsNIGHI=;
 b=vu8rH9OL6k1sLKsCRNPuUKLWqoyCrn3kZPg28SLRuq8ZxIT6pm1On/DwEGLOBX+li+1YlakyXulpXqIJT7gA47fdcJALngNjDxLlDfQlm7SJRRie8Phy2ne7prQzdYPne0v98a3iRsSaL/VG8KlmAkp1O1v/x7nPr35QmIYRhXOTR9T/YkiNVDWysANNmZojFIF8kgjwc1z67ed7aS1YTeHa7inTWyBxfRmmz3EAuAXYIaKK0gQkGB4V+VMTmuwwZhLdK2pwa9YJpY2RqarItVQ6ADMehzpIZko/zveo11Z2pk/CqISyV4ljruFiz4s49aPOgk8wFgE/TAWt4xJwzA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jdM50mrh+pLYS3OuhZx93MxruQNAV7za+f+2dsNIGHI=;
 b=DuhJUDGTUT0ApIGE104cq5qXHSMeZHIiXOEdLvlJqBtu3R3VM7p2qom3w6WOyMCxtPr3QOXJQgpKC8Wscut66m5S8zARHxyuXjVGzXCVMWAGxqWqpKE5bQJpqzYZkB/5QRwnTncp7Yr242v8cUlqHiPE5WTnhgjr75FRsSxPOTs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <d5f4943d-09a8-4a49-8179-d594022ad3a0@amd.com>
Date: Mon, 11 May 2026 08:20:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] CI: Refresh the Debian 12 arm32 cross compile
 container
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Stefano Stabellini
	<sstabellini@kernel.org>, Doug Goldstein <cardoe@cardoe.com>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
 <20260508212907.1643761-3-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260508212907.1643761-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A108:EE_|DS7PR12MB5792:EE_
X-MS-Office365-Filtering-Correlation-Id: a00b48ea-851d-425e-db29-08deaf25606e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	uv1JRKLit6bJzJDyEuhUL2TYBWWq+5wR0BLwRn4HEC+QdyJE6pLUuw0DDMQDF3xgdI6ub3p1LIiSkD8+YxSIw+f76KXvEHKjPJtu1XirPhhVLuVi1pfoBOcmaL7K1mCyXTbokInr15VSh2D6tdM2Pw/jYMdVk7BzM94HMHMnb00nndznkEyexPu0UWNU/kf5lBhQlayWiTyiaSRfMb6+DPwiwnXJW4FJfCSHpxcAHpt5oY5mMzGDx69eatguL1NKNn9YWiVJspOHB5piapJ/NmSX6xdObhS5F3/0HtQs/Clv9rad6FqDvhuCldpjCkxHJD10HI5h/RX4Ai5XhZ0BV1yCI2rSxePEIDp93MW08S8te0+MEjQMNZPwn1MendfmVRQLzpsMoh6PU7/1hPfHICAX+Nqd6x0zTKK9Px4i5Zlng0MkatOWMGNfsRLBDw/I2opuT4reovRCFAc0ivllLakY14x0WBCePv8s7UDaTLnRkIT9ku9KBEWJ32gLp3XCnxpbpxm3AuTmHKKDDT6scQV2y3r1Gdglos1OamE6XWC3AmyjRDusnatGy2LEv3UgPaPypKU7WWmF5ouLRTFBJuH95sbINRkisPCI7FWkWvVFO8Fm7moIm6l4RqneoCsp5Usx/TgaBWqJzSauLDWgVCJaFZXXVqj67TUV+jUfjz/xfRHR5hdKXWAUCx4dhA1rfIc8R+Wye7xsN/I/pak99pGh4PRTP1z3oCagbr0uV0U=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	7veMQPN66XqAvkyGCc5+jfHd8yIhGKAnc2BEY6bzTBt7whu3M9ynyUaGQnjGGX/RZtkSn+6iYqi5TxEnRodYGc8VV913ORSNEe0o9dUAupbKvk2zPufMZwhjda1yNnO7NUanjY5wtL6SxlYh1qMqdL7Xsqg2HuL7IiKn1E4PjEyPjptR/MV+xFFSy/bsAi1k1EztB+THr20LwER8hEGtLvr6xeaZDy7ZlWUQC1H1Ff8iURE591YouJpV8EVOJwhLf0bEsXKsB3CaJ0a3dPd3RpizWIUMhmj9is3HRDqYEzmeA3P5dvGzLZC1Rh7jqn0I+mLgIWE6Zy7MLPoNrRbCcSXqkzuKWqE0jTQMubcnLBNPaPH0NbARctzaoaAeSgxEGebYFjQdy/SozShPG4NfYAqdwKvU/k4YCZzm2lEWHl0QsHE63DXWQY5Qgdx+C3/P
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 06:20:19.9290
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a00b48ea-851d-425e-db29-08deaf25606e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A108.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5792
X-purgate-ID: tlsNG-42698a/1778480428-22589F3B-5C8879EC/0/0
X-purgate-type: clean
X-purgate-size: 702



On 08-May-26 23:29, Andrew Cooper wrote:
> From: Javi Merino <javi.merino@cloud.com>
> 
> Rework the container to user heredocs for readability, derive from
> bookworm-slim and use apt-get --no-install-recommends to keep the size down.
> 
> Convert it to being a non-root container.  Add checkpolicy as FLASK is an
> available build option for arm32 under Randconfig testing.
> 
> Rename the CI jobs to debian-12-arm32-* to follow the naming scheme of all the
> other CI jobs.
> 
> No functional change.
> 
> Signed-off-by: Javi Merino <javi.merino@cloud.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 11 06:23:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 06:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305779.1577928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMK34-0001wo-M4; Mon, 11 May 2026 06:23:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305779.1577928; Mon, 11 May 2026 06:23:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMK34-0001wh-JM; Mon, 11 May 2026 06:23:26 +0000
Received: by outflank-mailman (input) for mailman id 1305779;
 Mon, 11 May 2026 06:23:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wMK32-0001wZ-IU
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 06:23:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMK31-009WZV-Re
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 08:23:23 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0175cb-5cb7-0a2a0a5109dd-0a2a4503e620-32
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 08:23:23 +0200
Received: from [40.107.208.61]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0175d9-672d-0a2a45030019-286bd03d3964-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 08:23:23 +0200
Received: from MN0PR03CA0011.namprd03.prod.outlook.com (2603:10b6:208:52f::13)
 by BN7PPFABD533732.namprd12.prod.outlook.com
 (2603:10b6:40f:fc02::6df) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.16; Mon, 11 May
 2026 06:23:18 +0000
Received: from BL02EPF00029928.namprd02.prod.outlook.com
 (2603:10b6:208:52f:cafe::c6) by MN0PR03CA0011.outlook.office365.com
 (2603:10b6:208:52f::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 06:23:18 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL02EPF00029928.mail.protection.outlook.com (10.167.249.53) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Mon, 11 May 2026 06:23:18 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Mon, 11 May
 2026 01:23:16 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 11 May
 2026 01:23:16 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 11 May 2026 01:23:15 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YOjdv3HxxGLUua1UWD8rnUw3EILEBCRplN4iaMijFoX4j8Y4vdI1MvyhtmM8s8KClsTW2ua+rfkL8La8Fp5UxfswItgxRFl3/uArg8RJcjS1FN2VnuTumWcq8CqaZUv5LtOoIJZ+NnOfZoWyeavsxvEq4WnIII7EIVK572BFJO2Y2onE4dLHg9c2SKAKed6huyXl5R4L3Db0I+lKFYVdXteFGhjYUofwav6XLjjkMeKFklq079iBzp8qzzk9rcWlo703bim46gmEupVkMMDoA8qe43CUWOhSJdqR0hyD7P+NhEqj6qGvTxUTd+YqTuPPlcVdUa5SBoMZd62yhTQ3Hg==
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=9E2zqOU8stdp0eov5w5lPGGyrU6skZqTitwyf6EyazM=;
 b=q6mFxtQ2+L8ypWyJSAO+EcEZf9awcvw3pFGehOFeyXwd2ppfRAnir3/wPAyVgR8wdybVUieixaPu1nNwY5MuwwtXxqPnxNSuMZDaVO6YDI7tJXMALRgGc1pSzJUVZmRD2leqOV22EeaK9G2DqJwFmLIvPvzrFr8twbv4z5fXNjoxyMburr1lJKAHCLFB0K45rJSMmh8IjCZcSBXbX3HOBnYtUMykGrnW3EVgB7YjIDzbflX02JYTGFjlDAMoLPlY3T7eH9yTABbMBS1hrjT78G07Sz9DKBiNwvkPtNX25ONhTyI8AzKLdN+pgNXnvjMzG/Hc/xIJV9sl1y/apP3jHw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9E2zqOU8stdp0eov5w5lPGGyrU6skZqTitwyf6EyazM=;
 b=KGYmVD/xn1PBuseTyAMkV8uXIDtaGkPuNK/l8zf1IsBsI/ZwFylYSNcZ7rc4LOT5nMdLUetATG2TcnKsirmm5QZ4yW3qclYroYh2KUH5EKZp5ZvJcfi6lIKDbECnbWRDRwulGUfFL3a3I7q8cEPepTgyhgTfDMDF69tAkRlX10Y=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <efe33c0b-82f2-4851-889d-b954b2169aaa@amd.com>
Date: Mon, 11 May 2026 08:23:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] CI: Refresh the Debian 12 arm64 container
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Stefano Stabellini
	<sstabellini@kernel.org>, Doug Goldstein <cardoe@cardoe.com>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
 <20260508212907.1643761-4-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260508212907.1643761-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00029928:EE_|BN7PPFABD533732:EE_
X-MS-Office365-Filtering-Correlation-Id: ceb89621-e260-4f2c-f0be-08deaf25ca91
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|1800799024|82310400026|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	snGhAs1NIzWZQKrs+kuv11as/C5sxUTbh8YWkcssBV0FdtuqyZiqLTmLOtyBpo2tNMVMRGVynTOT2ssSeZkWZOh6nPsmzHjpgC/4rpCOaSgysp1RR/E+DB4HfrvHrXpFwcSWLEMKeLVVCGk2K6+s0uLm2HjNJUYK5Ojxht5bws16UO1agLFNVmsXhNd/Zstzji1ocglX6Y30bUPKjoq7gNXokREq33mYOn3ECb/VnubG5GV4unmzRd0iOfWOMubY9Ra9eDGece5NSTOgoZ4YsifTTrXnjMv8VBwJldwAgc5eS2IQjEo3tiV+jPoPZ4IztIfW9HzLdANlWx3yvpNdy2+WkeGNb1rngkuu6qaW536VO7H8DZzkZrR/55NmpRChAfBwi+Pa6Xsc+qtZ3mKydiEbq/Xiy3SD0b8+wfovf/zqrogldx4hyg/h6lurNJFU2pWzyiZoH+Owb6fuVEuFgzbtT8beMpZ6S7QFVgYy8Y91UvU8baIlKrpOR+eM/fU83tkciwwtAeKH4Vaqhp1ZStXtpvp1x4/gI1Y1VVuz+o48fxIgbDJaVa2/FMAVug7HClG26HGMxTpu+goU8Vv+m6LcQfg/QLc0WmVqALZqpnV6R5LhVjOGXSWFxMtFKnDBMAQiClriwiiLymb6dDk1cQhkpR6YjimFsebRjwrZcmmkc5n+EpumubAxpvLFgip9ifvRmuKnIpWqILO7Q+24yWByoEsQcRdHhp2YTXIGn6I=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(1800799024)(82310400026)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	QyIkAxWO9gXLOjkyKCkHKMq5ldkNVKefUdOFpaMpMkmG9ZbIo6rSCQlhkn11GEpHDji/OSUeNFcVuHcDcoZ/j1+Lt4mp5laUM/iK2nO9PqBZWqzJwIrlBCrZQBlzLgHJ44ch0RcGyv15xy0G7sGYT8Qy8tiZnUT5qiQkmwQtPS3z+Z9kzgFJHvNgSQFYipzVcRElwQgrW6sk9TlYD78gJgq/JuCgLUJ1iks+jBEdCKYyvy1QzyI5wz23N8DpeLgMV22dWRfB0kCr7a2/H+MHsdp/STAl5rB0VN2i68gG66eBJHDSxh9N8D9ezy9YoybP/qg35NimlAzFHj8xuE9gQ0aDx/NQu98/EXUYN+VDjLamBYkEk9zJ7gMoDRLrObVD5tgpC2f+cPLiLp5xesRAsX+P8f+wgUimi0vp4nJpNDt0NsJDwhpWLaT4uWn5PZ96
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 06:23:18.0046
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ceb89621-e260-4f2c-f0be-08deaf25ca91
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00029928.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPFABD533732
X-purgate-ID: tlsNG-33051d/1778480603-4279C938-8FA99089/0/0
X-purgate-type: clean
X-purgate-size: 1030



On 08-May-26 23:29, Andrew Cooper wrote:
> From: Javi Merino <javi.merino@cloud.com>
> 
> Rework the container to user heredocs for readability, derive from
> bookworm-slim and use apt-get --no-install-recommends to keep the size down.
> 
> Additionally:
> 
>  * Make it a non-root container.
>  * Drop libext2fs-dev which is an x86-only dependency.
>  * Add libncurses5-dev for xentop and zlib1g-dev which was missing from the
>    libxenguest decompressors.
>  * As there's no ninja, the container can no loger build QEMU so drop
>    libglib2.0-dev and libpixman-1-dev too.
>  * Swap libyajl-dev for libjson-c-dev given the latters deprecation.
> 
> Rename the job to debian-12-arm64-* to follow the naming scheme of all the
> other CI jobs.
> 
> This reduces the size of the debian:12-arm64v8 from 2.25GB down to 1.62GB.
> 
> Signed-off-by: Javi Merino <javi.merino@cloud.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 11 06:29:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 06:29:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305788.1577938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMK8l-0002iC-9B; Mon, 11 May 2026 06:29:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305788.1577938; Mon, 11 May 2026 06:29:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMK8l-0002i5-5k; Mon, 11 May 2026 06:29:19 +0000
Received: by outflank-mailman (input) for mailman id 1305788;
 Mon, 11 May 2026 06:29:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMK8j-0002hz-T6
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 06:29:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMK8i-001pmJ-Rd
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 08:29:16 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a017732-e002-0a2a0a5209dd-0a2a4502a242-34
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 08:29:16 +0200
Received: from [52.101.48.67]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a01773a-af86-0a2a45020019-346530432b0e-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 08:29:16 +0200
Received: from PH7PR02CA0007.namprd02.prod.outlook.com (2603:10b6:510:33d::13)
 by BY5PR12MB4116.namprd12.prod.outlook.com (2603:10b6:a03:210::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 06:29:10 +0000
Received: from CY4PEPF0000E9CF.namprd03.prod.outlook.com
 (2603:10b6:510:33d:cafe::f3) by PH7PR02CA0007.outlook.office365.com
 (2603:10b6:510:33d::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 06:29:09 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CY4PEPF0000E9CF.mail.protection.outlook.com (10.167.241.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Mon, 11 May 2026 06:29:09 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 11 May
 2026 01:29:08 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 11 May 2026 01:29:07 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=psaiCp/48bMH4h8ZGHjXvpWF6KkN0vP9TwMfQZqwQZLEsR62fkHoJoENAd2oU7OmZ3pQAANf/LjhLSI+LY9scS9iFGOg8DVd+/uEdlVUIuN+wSM48zSBcelWQ/goWKdYY4w1Yi1u9qXg65LblTc9mp1AsgsNkgfz+TQcCbb8XAS/w+GlkX0eGlyNbdcFBeREeyhvGxrY5XtIzyYZaGK/4b+kSJb1P4a738cEqrWMOzjaS9mlpMai+/O+3zqupqvDq93jFZwoDatCaPEQgeyCc9ybWjeyZwyCaviO0LgPAYvUFI82/n0WwBxCsHY5bvvoCuWAfXoa4YVW+0sxD1RUiA==
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=VymbfYdHQ47IFVLcQeL9KdeyJQUl9975L80LJGBG6ro=;
 b=CJFlHXFszcp1Wp0PiI/0lVRMMCa46c4HjyRO+BkdJLgmY/xLpUGT3+Tb9MiRCPlXuvsSBCHtFubqpp7IoB8BgRwx9bHMwDZKqUlfg4Taxm9yzCcIzkcoIiO3GjTHl2612V2Ak4JG119CUcI4WRsD7nO/+X9egqHYPdzrfXMziwzIIh/kWKWjmziOawKjctIR8Rpc0+5ft0aJIXodOIoWKnMzCH7VpQYjinaDhqX+5YViow3bIkFX65x5RWOQtJeKtGFaruIQF5KF7/Wac6Wfp76A/Qi3nJsPp3Qge4qvM/PpeI1aSU4Xu2bMKIRTxnB6kt/JTVqkJ0kMhWxf9KymMQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VymbfYdHQ47IFVLcQeL9KdeyJQUl9975L80LJGBG6ro=;
 b=GhVWroHuRUoDXEFPN8F8Rmz0DMZMLBJ4YI5mGgkGyObPtKsN3leyWzO1FBq99wEyOaqy0mPc3AG2Gt60K/M7sXa9JI9/yiGgux4xnWx/nT2jMMdYRPX3Jy2llBaH4AqCDAmAdPwVRqmPMFdcX4VnI+Pus5JQWMQ8wyz7bee9pj0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <249ca124-b144-4c50-a0fb-3c0e6db5a1ca@amd.com>
Date: Mon, 11 May 2026 08:29:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] CI: Add a Debian 13 (Trixie) arm64 container
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Stefano Stabellini
	<sstabellini@kernel.org>, Doug Goldstein <cardoe@cardoe.com>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
 <20260508212907.1643761-5-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260508212907.1643761-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9CF:EE_|BY5PR12MB4116:EE_
X-MS-Office365-Filtering-Correlation-Id: 77f5967f-4a23-4354-d775-08deaf269c3a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700016|82310400026|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	/sB6nWLGXu02VmR2bhwo2R8erEcZ0a7iYeDJIgA0UikYP1lY2ZEsZz10MyoqYKKvIqAJowcai2ukeSMAEt0qdCFwXXmvmrnboIbi4duX6yhbx7F+V5vB5zmqQLzTv07qNhDtqBg2T4eH+Rw44qE4z7vplNCXqP684lH8mCvpbf3iXpsuirVJz8bG9f3XobDh7+EgwGZu6+xrCH8UkyPhcFJT82+dmfxShDgRHttAXZ3JjZeNUvuhEs8HAeEMzzpPeOJTCen4t3x1jmY60OimDDEDqCu9fNZwYADzEGdak4tkaLOLXcwe/MmrItXTc0LFuQvERPoO1IZbjCQz/eUBrMq9FWi1WcqIT74TgoJpDlCkBPzrXwcxMQDNlPxdaBKSjHuo60jiQft09Agzf6MU8Ey+RmcZD6/OkITKtsKkwEPptmqcoMgLZzaN8XrOY8UU0Mrjtox5leyCI8UypV/kelooCsXqLfV3LcTCJR7AaMJkwgWwVCb1FcJDHeg3UniPHtnMlDLsUDitst1oXSRHcny9Lxv+XeFSfh06/mTvHvJe61CVsrIft6fxkIoHr96Ehzzh71yG11TaRhJophiG18ApKsHE1Q9iTAdE1OXTTZi1kA2BI7iFmRmBIuRwrx83Bwjabem21nj1Fu7wc6UXeCFwJeup+TyJlQybowMGLOe5k5JM74P5Fa/+Jf2UaKVMfmz9nQVR3xvyvKRgfYq+1MtHvXf3LNjqiTVys9JSzNs=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700016)(82310400026)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	zCpjqdGGJUEu4icy4WvLx0ZK09CB6WBsMeGTeh5WXIw3zZZHa/PivVXMkpQOstvK8ZgmS4O3cxA8Yit+SUV4VjUBjfImYIC8NLt5xTrLf0NCdK4iaBiPYrKKPG86d8T5ts7+BrAg+0ayMjmAvsmty2Z2W8e5T/QtDTlS/kPVZ7IJEK4+xPB+gVE6VJHv4aR6UNa1Dqdv57g58jsoPbrQsKZB7/KtibJyRKjGNXGpCRdRD9Ws2uoAxJZQQA4RRredBX3GqP5TwanF4oj7MaaX4YTOleRNMTTqoFVLWd8FjymEurlhQBRs3VTNEx3l8XcgvIPZARxraxSYomxCdDg+iE3lJAnLXvb9zXTs3x6iBCLKTr0KjwcjXjLipOG7RGPYUKOBep5/IOB1trYPDjGwVzt/j+AFgYSMmu5Hqq2SQIpl5x4z2ea61d93Eei4Mjrk
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 06:29:09.7036
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 77f5967f-4a23-4354-d775-08deaf269c3a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9CF.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4116
X-purgate-ID: tlsNG-720697/1778480956-A9971161-D022E69A/10/63158204843
X-purgate-type: spam
X-purgate-size: 4664



On 08-May-26 23:29, Andrew Cooper wrote:
> Exactly as per the Bookworm container, but additionally with the ipxe-qemu and
> qemu-system-aarch64 packages.  These will be used to remove the export jobs.
> 
> Switch qemu-arm{32,64} jobs to use this container.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Doug Goldstein <cardoe@cardoe.com>
> 
> We should probably wire up some build tests too, but it's too late on a Friday
> for me to be thinking about that for this posting.
> ---
>  automation/build/debian/13-arm64v8.dockerfile | 71 +++++++++++++++++++
>  automation/gitlab-ci/test.yaml                |  4 +-
>  automation/scripts/containerize               |  1 +
>  3 files changed, 74 insertions(+), 2 deletions(-)
>  create mode 100644 automation/build/debian/13-arm64v8.dockerfile
> 
> diff --git a/automation/build/debian/13-arm64v8.dockerfile b/automation/build/debian/13-arm64v8.dockerfile
> new file mode 100644
> index 000000000000..b9062ee8b443
> --- /dev/null
> +++ b/automation/build/debian/13-arm64v8.dockerfile
> @@ -0,0 +1,71 @@
> +# syntax=docker/dockerfile:1
> +FROM --platform=linux/arm64/v8 debian:trixie-slim
> +LABEL maintainer.name="The Xen Project"
> +LABEL maintainer.email="xen-devel@lists.xenproject.org"
> +
> +ENV DEBIAN_FRONTEND=noninteractive
> +
> +RUN <<EOF
> +#!/bin/bash
> +    set -eu
> +
> +    useradd --create-home user
> +
> +    apt-get update
> +
> +    DEPS=(
> +        # Xen
> +        bison
> +        build-essential
> +        checkpolicy
> +        flex
> +
> +        # Tools (general)
> +        ca-certificates
> +        cpio
> +        git-core
> +        pkg-config
> +        wget
> +        # libxenguest dombuilder
> +        libbz2-dev
> +        liblzma-dev
> +        liblzo2-dev
> +        libzstd-dev
> +        zlib1g-dev
> +        # libacpi
> +        acpica-tools
> +        # libxl
> +        libfdt-dev
> +        libjson-c-dev
> +        uuid-dev
> +        # xentop
> +        libncurses5-dev
> +        # Python bindings
> +        python3-dev
> +        python3-setuptools
> +        # Golang bindings
> +        golang-go
> +        # Ocaml bindings/oxenstored
> +        ocaml-nox
> +        ocaml-findlib
Since this is a container used only for tests, why listing packages required for
Xen and tools build?

> +
> +        # for test phase, qemu-* jobs
> +        busybox-static
> +        curl
> +        device-tree-compiler
> +        expect
> +        file
> +        ipxe-qemu
> +        ovmf
> +        qemu-system-aarch64
> +        u-boot-qemu
> +        u-boot-tools
So after this change, even though you replace debian-12 with debian-13 for all
the tests, the debian-12 still contains the unneeded packages (i.e. for a test
phase that it no longer runs).

~Michal

> +    )
> +
> +    apt-get -y --no-install-recommends install "${DEPS[@]}"
> +
> +    rm -rf /var/lib/apt/lists*
> +EOF
> +
> +USER user
> +WORKDIR /build
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 982fd86db079..008deef98d1e 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -37,7 +37,7 @@
>  .qemu-arm64:
>    extends: .test-jobs-common
>    variables:
> -    CONTAINER: debian:12-arm64v8
> +    CONTAINER: debian:13-arm64v8
>      LOGFILE: qemu-smoke-arm64.log
>    artifacts:
>      paths:
> @@ -50,7 +50,7 @@
>  .qemu-arm32:
>    extends: .test-jobs-common
>    variables:
> -    CONTAINER: debian:12-arm64v8
> +    CONTAINER: debian:13-arm64v8
>      LOGFILE: qemu-smoke-arm32.log
>    artifacts:
>      paths:
> diff --git a/automation/scripts/containerize b/automation/scripts/containerize
> index bda06054ebde..8bd2a847aac0 100755
> --- a/automation/scripts/containerize
> +++ b/automation/scripts/containerize
> @@ -41,6 +41,7 @@ case "_${CONTAINER}" in
>      _bookworm-arm64v8-arm32) CONTAINER="${BASE}/debian:12-arm64v8-arm32" ;;
>      _bookworm-arm64v8) CONTAINER="${BASE}/debian:12-arm64v8" ;;
>      _bookworm-cppcheck) CONTAINER="${BASE}/debian:12-arm64v8-cppcheck" ;;
> +    _trixie-arm64v8) CONTAINER="${BASE}/debian:13-arm64v8" ;;
>      _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
>      _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
>      _xenial) CONTAINER="${BASE}/ubuntu:16.04-x86_64" ;;



From xen-devel-bounces@lists.xenproject.org Mon May 11 06:42:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 06:42:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305801.1577947 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMKKv-0005dP-C3; Mon, 11 May 2026 06:41:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305801.1577947; Mon, 11 May 2026 06:41:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMKKv-0005dI-9I; Mon, 11 May 2026 06:41:53 +0000
Received: by outflank-mailman (input) for mailman id 1305801;
 Mon, 11 May 2026 06:41:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wMKKu-0005dC-0z
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 06:41:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMKKs-001sx9-Uv
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 08:41:50 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a017a1f-5cb7-0a2a0a5109dd-0a2a450cd110-46
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 08:41:50 +0200
Received: from [52.101.65.61]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a017a2d-62f1-0a2a450c0019-3465413d967d-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 08:41:49 +0200
Received: from CWLP265CA0402.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:1d6::12)
 by DU2PR08MB10229.eurprd08.prod.outlook.com (2603:10a6:10:496::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.22; Mon, 11 May
 2026 06:41:43 +0000
Received: from AM3PEPF0000A79C.eurprd04.prod.outlook.com
 (2603:10a6:400:1d6:cafe::eb) by CWLP265CA0402.outlook.office365.com
 (2603:10a6:400:1d6::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 06:41:41 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A79C.mail.protection.outlook.com (10.167.16.107) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Mon, 11 May 2026 06:41:41 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AS8PR08MB6408.eurprd08.prod.outlook.com (2603:10a6:20b:33a::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 06:40:37 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 06:40:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=UxffaIdkxn80s02BuJHF3zKIDjs9L7CN8J2R0vwgT/aGZZ7CRO5kZa0LpWeV+9ggrWac/sQ2QKty8kHOUk+aMjYVpjw74yGdY+f48INlaOejjbTF7JDTAvbDWQLmkY7Rcbpz0a902eNA/64FSZSmv7dDRRMx5fpdDWfa2l1oTrJ5sRl/e1UhF+4Y1AACUfWCVnx6VojYlV+BexnSDg8VRJ7Vmhpszb6x804mxrDlr8JFn9obRIfB6gnG8o2Ya4CayXaGYZCdmGlGVKh+Tg9Ltz5nsWPLYRnIPMi7k8KA7iFnhduTj7pOsPqHBVz6j0kVjQ8LzIL5gyu+oeB33SuAEw==
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=46TNZ7N5CLRKXK/jnAyrxUQ6YHSrZE5xfoFM9EUcVCk=;
 b=yvkPanJ7U8nKVYfaK3UDo560uqbsZ3D2/9GKiQCzafHxOsWIS2UE7zosROqUyLLmUGw2eNSn3PKHz7zWjYVsagIrNKa8sx9UkLIMcy9VNL5ca2hQhL/UYmIktVn+ikBTgBQ6P6smF8Z2bFZ1Rk8BCZXHXMzsJjARubJHAcAXD2BmqMWTXTUykwEIFfZ3Kr2sOSpB6BU2FgNACLKZhCIfxo7Mx7EpxKu2ReYwCXUMqjXZZiCMnXVS0BcgMhfKjO3FHjhh9sLaZtU11jzVYookpXiU5qYsx4RRlDEEJA7aRTy06afMIu/WcQ4QorRHftxmFK52PTC6UqrGeoV9QELMRw==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=46TNZ7N5CLRKXK/jnAyrxUQ6YHSrZE5xfoFM9EUcVCk=;
 b=qsZnhCVN6TxcV0JgfiqzmJhJOYQ29g4K5WIt291LY2GEttU0xNqdsZNH+J4bqNMAhMTy7HMCq3XyLn6JL52sxr39WT0gfIGVdlgiE5F4P6CAcPBgXjdf4Z3J9eBa1hbIBT0KonuxD0ZF1NIRPCUKYZC1mZePAf+6UaSn6uPbS/0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yY8IBotlf5pIgwTc+ZeTJxtIeZunLYsdPl4GHjVPtX0zQBCcGN8mduIFT3aMuhK/h89TlyyAjBxz8U8d91cNKsG2l1nSEoNFO5Kt+sqHE0E3MB0uTvvbEN6xXU8eciHU9aRS6kxH20FXi3Vz7lzSZyt0ii+1/WMQIpJrLvvg78plzPII4T+NoPFhOOWn/JzUPiU1k9SX2nS4Hztp7fshnKbUwZZ8ZszGK/Z7kumHkeaOjl3gcH8HUyTlUARwPFfvlamloV4fRwL5d9oDUg0aeds2LrVvT3Hlgkn5A2ELDkyzvcpPp5kww0RPVoYQlLl+l5b/q9ymtTxl2wlTdusfzA==
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=46TNZ7N5CLRKXK/jnAyrxUQ6YHSrZE5xfoFM9EUcVCk=;
 b=QTtzC9adly+anNVY08ckIot0mgU/lyx258cCj5s9WJP5hLU/9bxXsjOEB+8093JTwncdlWQY+x5HWUZvTZU5eVMCZp1HFTqKgTWbB9RxFqZiiWdAzpFdijyFl/GFjtMC5EWn9hfdwvj4/FJFXx4tEOpMKXSgNMKSnOOTWd95KVAbf5Q5E0CS4BUF/rpVVQ8kaPsWZjo7aVDAVPMLGZf3yYyn8cwEjXGxvoP7hcVHfk6ulkv9MwinHlEw4nf7UvqAZ4OUtjM6i20IBv5AKiyheQH1Bkp2zbkha5nG0ksBEUSaF4AxAoH0eQlqatWUtwxKUNhAIiiV/1LZGXHgaCeMJQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=46TNZ7N5CLRKXK/jnAyrxUQ6YHSrZE5xfoFM9EUcVCk=;
 b=qsZnhCVN6TxcV0JgfiqzmJhJOYQ29g4K5WIt291LY2GEttU0xNqdsZNH+J4bqNMAhMTy7HMCq3XyLn6JL52sxr39WT0gfIGVdlgiE5F4P6CAcPBgXjdf4Z3J9eBa1hbIBT0KonuxD0ZF1NIRPCUKYZC1mZePAf+6UaSn6uPbS/0=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v8 02/13] xen/arm: gic-v2: Implement GIC suspend/resume
 functions
Thread-Topic: [PATCH v8 02/13] xen/arm: gic-v2: Implement GIC suspend/resume
 functions
Thread-Index: AQHc0ZIp4iA20ItBV0OKtUp08vt6QrYCSMAAgAHGpwCAAtKuAIABnMgA
Date: Mon, 11 May 2026 06:40:37 +0000
Message-ID: <81FE9BB6-2C8D-49B8-86E4-BD1B19B3F76E@arm.com>
References: <cover.1775125380.git.mykola_kvach@epam.com>
 <5e1951e1c17037e020de9c0eecb5fba94edcd9dd.1775125380.git.mykola_kvach@epam.com>
 <EB3F884F-FCD6-4AE7-84FA-79ABF31EA88E@arm.com>
 <CAGeoDV80QHdesYQF-J4fg7wYQ6RLNg6u27aQhj4F+JoM4hU3uQ@mail.gmail.com>
 <CF8E0EB2-3048-4B04-B763-AE5EF1909416@arm.com>
 <CAGeoDV_SqVtcAZemSx1Ap0R6JqnbAxoLYCctPEU3DkcuQC-A1g@mail.gmail.com>
In-Reply-To:
 <CAGeoDV_SqVtcAZemSx1Ap0R6JqnbAxoLYCctPEU3DkcuQC-A1g@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AS8PR08MB6408:EE_|AM3PEPF0000A79C:EE_|DU2PR08MB10229:EE_
X-MS-Office365-Filtering-Correlation-Id: cf4673cc-b867-4d64-5570-08deaf285c6b
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info-Original:
 W89TE0tMQxk2vOhuMD5W4d69mxKpainjO75UTd4oKBMRbP4syr5+OTMlRyGUe2IeQZqmKh1wdEPAT0bBjEYKnmdjLT3NnZiR6iKL18FzJS/6KRdiCb2sheG0VVDYvVHuMP3J7L4lQul6o7KqarRCuxVN1t3H/EFGwBUs4gMLJ9bYWMVoNjnnYrZjPUNI1ydQth2TqGFathJNdXOnSZfqx5LWVwWrY1HzFoTfh9TpSahuhTfu/ieCE2nuWJjNp+hAz//PJo1CHSIzzr+3IJCBiZdoZX00NVt3efL4ElnALlvSzlH3RPEVgULZzo/C+lsyIQvk40lxVeoJc+5ie7EJX6zAvhL5CB6A28Yu6sT+OQ/ArCXZlwsXSgRUoBeQh/M2SDLgL6pf/JnN6KauAjFUmWo3gZR5HAwCrkhXLaGD0pQZpvLOxelIU4EPlQkp2AUwIrqcsztT3rvV+LAD++OWg71NmY654w0mZa8EWgeVDr7LyWIlXK/PAZk3igZ8fz+SXv3t1XcKQp4GXpC54b5TQivqnY4/UJhgvyE9Kw6XtWLR4p6ON4SsKJlusq51rKZNRXbJ2Lq8pT2cKK+Xlf6bNo/lrxa0/ysUJTu4258sNFN4Eo7wGQ8XmTDukcG1XHRfKx2ZtnOyWIJCUqVj4N9AAwwcHdElScm51MNtSc4bSHFYqH+tymLaKEYDNvl/1/XwNBnyXFnmGPd0wTv5OQNSbXoY+wEM2HoMLFjZ7C60Jdis+RPO7lnombDi4KRhUQJw
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <404C35CF1BF87548A5C2A0E05036BB8A@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 myrFUaAjOJNYwNuRa3dLGR+tUe5QL9WgSvFmg8s0NKX2ZwkMeAlK2/MyvI2xvHaPs5lNp1sJ1jcOxl3peoAYiHcRkrAVQaX4NWl8/FTS2zsHWaNvWeElxctRlCwizp68N/UV9sfNW1zP6OnW653u57rEjkPQKgB/H8F+0ij9iYtV3TH5vgKcRRrMXSH+PGeBcWgZv5xe+WcJHWow+BhqvuAvafaH4mKaSDAR3jLiB5u36syjx84nYAt2zLlb6M7Mf+YlvLldFDhJyaKO9XXtMMRRkg/Ha09UM4TYnJbKw13D+DWq6IciYRmBYKhbt+CWOHtVPlUxkJZpv/CfpOxC5A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6408
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A79C.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	2fa8ac1b-e6af-481e-bcef-08deaf2835e4
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|14060799003|1800799024|35042699022|82310400026|22082099003|56012099003|18002099003|13003099007;
X-Microsoft-Antispam-Message-Info:
	pyPqQIMgos5oUkvSzmva9rSBKAmLpJlavCSINxbKiIae+5QZyoXKxiQBNKpDOUxLa/3t+fqkOmA3f9CHxPwNiGao4CZ71rpGi2vTeWxwZOCNdk9K/xRsg9nOzt5T6kTyd/OGFbbXB1c/ZuecoLs8b47DN2ddSp+PHfdf4wh8ndUYJXo/sONIjHp4nPSYoSbu5ODor2Nzb1ems/11jyK2UozZsYwt5snQA7ZOsbMgh7/EH24Ox/bGcLKRMwlahcxcdhqOhd1C1k5/e25zxjNdwWNjbRJcL22/EmEVgH/v0SDYQUlMG+y1giDd5r5LWi1n3RnTsL31D1XEJIZ54TtCTYnmv/kR8Nf/27KmjcjHO/qsGfyKqEbhTPvzW73LiruyhETPAisanJb6L5Zhak1O5WQPxCm5HxnBddGBvj/sXkne2+78d4oCf6CX8dY8ugaPs6MXKw9NLzcQl4RueFUExpUBCkRrZcMRg2zwttGuuBWQlDkEhvlZUpLcE8b1sWp8/RpMoJ9FPUf1Zh8p0VLSktUs2Rf9dWEa6omQFPyD5wTLt1F70ckRkM6TmQxHZ/WB8O/Z7fBzBxa1mjMr4Nie81Xx0wkHqpADzPjRfdQ1RLmoPYbf3R66Lw4npwfPDSFxte363DIP84PHm79MsnL70QgxUSrkgvb2aUxChRBus811xoehn0lb17d9ydDBtzBoe3829Fan54Ps9e0TCGaGWxDG1HzfarXl7HRRrJNK8oCNPJezkQ2sX1trfU4MseeC
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(14060799003)(1800799024)(35042699022)(82310400026)(22082099003)(56012099003)(18002099003)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	irGcDPKU+e4klToLzfqi63zZktukbeRXToTUlfY/cZMamzSAYNuBtqKHurXawcQFKWbvsvwFGtMHZITgnmP3hIycU9saiGzJloeFewmOyE4cLmMd9uzNt2IxfBkiZo8GF/rH8FfhU/yGTDUNTSMTITlbhdU3E1pk5QDUKQGPXtzaCuzOIB0EBXJeUXP/DhArtwF4jknJZM/sSD2w7/e3xnNAAmJGPFvyyKMMQAJyroziYjxJkiZedo5bsye5l7naorQB8p/IXO1rRdmwoiA2ibi/YGmd/iypykcEp7LPJREkhb2EjLFqVcUWz+JePVaXjjt4/S4HbH8UmDkabCFbw1ZeegDOdFGu5g0pZOC0xli9m7WddzbMq0U8aEQhrat0aasXbf1k8moO3FfwxMUqfNThUfbZF3ZhNVYpNj3LKO2kmUG8giITA2tONOPBL22M
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 06:41:41.6321
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cf4673cc-b867-4d64-5570-08deaf285c6b
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF0000A79C.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB10229
X-purgate-ID: tlsNG-d25034/1778481710-DAB74CF5-4F3714C2/0/0
X-purgate-type: clean
X-purgate-size: 5732

SGkgTXlrb2xhLA0KDQo+IA0KPj4gDQo+Pj4gDQo+Pj4gRm9yIEdJQ0NfQVBSbi9HSUNDX05TQVBS
biwgdGhvc2UgcmVnaXN0ZXJzIGRlc2NyaWJlIGFjdGl2ZSBwcmlvcml0eSBzdGF0ZSBmb3INCj4+
PiBpbnRlcnJ1cHRzIGFscmVhZHkgYWNrbm93bGVkZ2VkIGJ5IHRoZSBDUFUgaW50ZXJmYWNlLiBU
aGUgZmluYWwgc3VzcGVuZCBwYXRoIGlzDQo+Pj4gbm90IGV4cGVjdGVkIHRvIHJ1biB3aXRoIGFu
IGFjdGl2ZSBwaHlzaWNhbCBpbnRlcnJ1cHQgY29udGV4dC4gSWYgdGhvc2UNCj4+PiByZWdpc3Rl
cnMgd2VyZSBub24temVybyB0aGVyZSwgcmVzdG9yaW5nIG9ubHkgQVBSL05TQVBSIHdvdWxkIG5v
dCBtYWtlIHRoZQ0KPj4+IGNvcnJlc3BvbmRpbmcgaW50ZXJydXB0IGhhbmRsaW5nIGNvbnRleHQg
dmFsaWQgYWZ0ZXIgcmVzdW1lLCBhbmQgY291bGQgaW5zdGVhZA0KPj4+IGxlYXZlIHRoZSBDUFUg
aW50ZXJmYWNlIHdpdGggc3RhbGUgYWN0aXZlIHByaW9yaXR5IHN0YXRlLg0KPj4gDQo+PiBPayBJ
IHVuZGVyc3RhbmQgbm93LCBidXQgaWYgd2UgYXJlIGV4cGVjdGluZyBoZXJlIEdJQ0RfSVNBQ1RJ
VkVSbiB6ZXJvZWQsIHdoeSBhcmUNCj4+IHdlIHNhdmluZy9yZXN0b3JpbmcgaXQ/IFNob3VsZG7i
gJl0IHdlIGluc3RlYWQgaGF2ZSBhIHJ1bnRpbWUgY2hlY2sgdGhhdCBpdOKAmXMgemVybyBhbmQg
aW4gY2FzZQ0KPj4gaXTigJlzIG5vdCBiYWlsIG91dD8gQW5kIGluIHRoZSByZXN1bWUgcGF0aCB3
ZSB3b3VsZCBvbmx5IHplcm8gaXQuDQo+PiANCj4+IEFtIEkgbWlzc2luZyBzb21ldGhpbmc/DQo+
IA0KPiBHb29kIHF1ZXN0aW9ucy4NCj4gDQo+IFllcywgdGhlIGRpc3RpbmN0aW9uIEkgc2hvdWxk
IGhhdmUgbWFkZSBjbGVhcmVyIGlzIGJldHdlZW4gQ1BVLWludGVyZmFjZQ0KPiBhY3RpdmUtcHJp
b3JpdHkgc3RhdGUgYW5kIGRpc3RyaWJ1dG9yIGFjdGl2ZSBzdGF0ZS4NCj4gDQo+IEZvciBHSUND
X0FQUm4vR0lDQ19OU0FQUm4sIEkgZXhwZWN0IHRoZSBzdGF0ZSB0byBiZSBxdWllc2NlZCBhdCB0
aGlzIHBvaW50Lg0KPiBUaG9zZSByZWdpc3RlcnMgdHJhY2sgYWN0aXZlIHByaW9yaXRpZXMgaW4g
dGhlIENQVSBpbnRlcmZhY2UuIFhlbiByZWFjaGVzDQo+IGdpY19zdXNwZW5kKCkgd2l0aCBsb2Nh
bCBpbnRlcnJ1cHRzIGRpc2FibGVkLCBhbmQgZm9yIHRoZSBndWVzdC1yb3V0ZWQNCj4gaW50ZXJy
dXB0IGNhc2UgdGhhdCBjYW4gbGVhdmUgYSBkaXN0cmlidXRvciBhY3RpdmUgYml0IGJlaGluZCwg
WGVuIGhhcw0KPiBhbHJlYWR5IHBlcmZvcm1lZCB0aGUgcGh5c2ljYWwgRU9JLCBzbyB0aGUgQ1BV
LWludGVyZmFjZSBwcmlvcml0eSBoYXMgYmVlbg0KPiBkcm9wcGVkLg0KPiBUaGVyZSBpcyBubyBD
UFUtaW50ZXJmYWNlIGFjdGl2ZS1wcmlvcml0eSBjb250ZXh0IHRoYXQgd2UgY2FuIG1lYW5pbmdm
dWxseQ0KPiByZXBsYXkgYWZ0ZXIgcmVzdW1lLg0KPiANCj4gVGhhdCBpcyBkaWZmZXJlbnQgZnJv
bSBHSUNEX0lTQUNUSVZFUm4uIEluIEVPSW1vZGU9PTEsIEVPSVIgb25seSBkcm9wcyB0aGUNCj4g
cHJpb3JpdHkuIFRoZSBpbnRlcnJ1cHQgcmVtYWlucyBhY3RpdmUgaW4gdGhlIGRpc3RyaWJ1dG9y
IHVudGlsIHRoZSBzZXBhcmF0ZQ0KPiBkZWFjdGl2YXRpb24gc3RlcC4gRm9yIGEgZ3Vlc3Qtcm91
dGVkIGludGVycnVwdCBYZW4ncyBHSUN2MiBndWVzdCBlbmQgcGF0aCBkb2VzDQo+IG9ubHkgdGhl
IHBoeXNpY2FsIEVPSTsgZGVhY3RpdmF0aW9uIGlzIGNvbXBsZXRlZCBsYXRlciBieSB0aGUgdmly
dHVhbCBHSUMvR0lDVg0KPiBwYXRoIHdoZW4gdGhlIGd1ZXN0IGNvbXBsZXRlcyB0aGUgaW50ZXJy
dXB0Lg0KPiANCj4gVGhpcyBpcyB3aHkgQVBSL05TQVBSIGFuZCBJU0FDVElWRVJuIGFyZSB0cmVh
dGVkIGRpZmZlcmVudGx5LiBGb3IgZXhhbXBsZToNCj4gDQo+ICAxLiBBIHBoeXNpY2FsIElSUSBy
b3V0ZWQgdG8gYSBndWVzdCBpcyBhY2tub3dsZWRnZWQgYnkgWGVuLg0KPiAgMi4gVGhlIEdJQyBt
YXJrcyB0aGUgaW50ZXJydXB0IGFjdGl2ZSBpbiB0aGUgZGlzdHJpYnV0b3IuDQo+ICAzLiBYZW4g
RU9JcyBpdCwgd2hpY2ggZHJvcHMgdGhlIHBoeXNpY2FsIHByaW9yaXR5Lg0KPiAgNC4gWGVuIHF1
ZXVlcy9pbmplY3RzIHRoZSBpbnRlcnJ1cHQgdG8gdGhlIHZHSUMuDQo+ICA1LiBUaGUgZ3Vlc3Qg
aGFzIG5vdCB5ZXQgcnVuLCBvciB0aGUgdmlydHVhbCBpbnRlcnJ1cHQgaXMgbm90IHlldCBkZWxp
dmVyYWJsZQ0KPiAgICAgYmVjYXVzZSBvZiBndWVzdCBQTVIvcHJpb3JpdHkvbG9jYWwgSVJRIG1h
c2tpbmcvdkdJQyBzdGF0ZS4NCj4gIDYuIFRoZXJlZm9yZSB0aGUgZ3Vlc3Qtc2lkZSBkZWFjdGl2
YXRlIGhhcyBub3QgaGFwcGVuZWQgeWV0LCBhbmQgdGhlIHBoeXNpY2FsDQo+ICAgICBkaXN0cmli
dXRvciBhY3RpdmUgYml0IHJlbWFpbnMgc2V0Lg0KPiANCj4gVGhlcmUgaXMgYWxzbyBhIGxhdGUg
c3VzcGVuZCB3aW5kb3cgaW4gdGhlIGN1cnJlbnQgWGVuIHBhdGg6IGRvbWFpbnMgYXJlDQo+IHN1
c3BlbmRlZCBhbmQgdGhlIHNjaGVkdWxlciBpcyBkaXNhYmxlZCBiZWZvcmUgbG9jYWwgSVJRcyBh
cmUgZGlzYWJsZWQuDQo+IEEgZ3Vlc3Qtcm91dGVkIElSUSBjYW4gdGhlcmVmb3JlIGJlIHRha2Vu
IGJ5IFhlbiBhZnRlciB0aGUgZ3Vlc3QgaXMgYWxyZWFkeQ0KPiBzdXNwZW5kZWQsIGJ1dCBiZWZv
cmUgZ2ljX3N1c3BlbmQoKS4gWGVuIGNhbiBFT0kvcHJpb3JpdHktZHJvcCBpdCBhbmQgcXVldWUN
Cj4gaXQgZm9yIHRoZSBndWVzdCwgd2hpbGUgdGhlIGd1ZXN0IGNhbm5vdCBydW4gYW5kIGRlYWN0
aXZhdGUgaXQgYmVmb3JlIHRoZQ0KPiBHSUMgc3RhdGUgaXMgc2F2ZWQuDQo+IA0KPiBUaGlzIGlz
IHRoZSBzYW1lIGNsYXNzIG9mIGlzc3VlIGhhbmRsZWQgYnkgTGludXggZm9yIEdJQyBFT0ltb2Rl
PT0xLiBMaW51eA0KPiBzYXZlcy9yZXN0b3JlcyB0aGUgYWN0aXZlIHN0YXRlIGJlY2F1c2UgZm9y
d2FyZGVkIGludGVycnVwdHMgY2FuIHJlbWFpbiBhY3RpdmUNCj4gd2hpbGUgcGFzc2VkIHRvIGEg
Vk0gWzFdLg0KPiANCj4gU28gSSBkb24ndCB0aGluayBHSUNEX0lTQUNUSVZFUm4gc2hvdWxkIGJl
IHRyZWF0ZWQgYXMgIm11c3QgYmUgemVybyIgdW5sZXNzIHdlDQo+IGFsc28gYWRkIGFuIGV4cGxp
Y2l0IHN1c3BlbmQtYWJvcnQvcXVpZXNjZSBwb2xpY3kgZm9yIGluLWZsaWdodCBndWVzdA0KPiBp
bnRlcnJ1cHRzLiBUaGF0IHdvdWxkIGJlIGEgZGlmZmVyZW50IGRlc2lnbjogZGV0ZWN0IG5vbi16
ZXJvIGFjdGl2ZS9pbi1mbGlnaHQNCj4gc3RhdGUsIHVud2luZCBzdXNwZW5kLCB0aGF3IGRvbWFp
bnMsIGxldCB0aGUgZ3Vlc3QgZHJhaW4vZGVhY3RpdmF0ZSB0aGUNCj4gaW50ZXJydXB0cywgYW5k
IHJldHJ5IGxhdGVyLiBUaGlzIHNlcmllcyBkb2VzIG5vdCBpbXBsZW1lbnQgdGhhdCBwb2xpY3ku
IEdpdmVuDQo+IHRoZSBjdXJyZW50IGZsb3csIHByZXNlcnZpbmcgR0lDRF9JU0FDVElWRVJuIGF2
b2lkcyBsb3NpbmcgYXJjaGl0ZWN0dXJhbA0KPiBpbnRlcnJ1cHQtY29udHJvbGxlciBzdGF0ZSBh
Y3Jvc3Mgc3VzcGVuZC9yZXN1bWUuDQo+IA0KPiBJIGFtIG5vdCBvcHBvc2VkIHRvIHN1Y2ggYSBw
b2xpY3kgYXMgYSBmb2xsb3ctdXAgaWYgd2Ugd2FudCBzdHJpY3RlciBzdXNwZW5kDQo+IHF1aWVz
Y2VuY2UgcnVsZXMsIGJ1dCBJIHRoaW5rIGl0IHNob3VsZCBiZSBkZXNpZ25lZCBleHBsaWNpdGx5
IHJhdGhlciB0aGFuDQo+IGluZmVycmVkIGZyb20gdGhlIEdJQyBzYXZlL3Jlc3RvcmUgY29kZS4N
Cj4gDQo+IEJlc3QgcmVnYXJkcywNCj4gTXlrb2xhDQo+IA0KPiBbMV0gaHR0cHM6Ly9wYXRjaHdv
cmsua2VybmVsLm9yZy9wcm9qZWN0L2xpbnV4LWFybS1rZXJuZWwvcGF0Y2gvMTQ0NzcwMTIwOC0x
ODE1MC01LWdpdC1zZW5kLWVtYWlsLW1hcmMuenluZ2llckBhcm0uY29tLw0KDQpSaWdodCwgeWVz
IEkgYWdyZWUhIEkgaGF2ZSBhbm90aGVyIHF1ZXN0aW9uIHRob3VnaCwgc2luY2UgR0lDQ19BUFJu
IHN0YXRlIHNob3VsZCBiZQ0KcXVpZXNjZWQgaW4gdGhlIHN1c3BlbmQgcGF0aCAoYWxsaW1wbGVt
ZW50ZWQgYWN0aXZlLXByaW9yaXR5IGJpdHMgc2hvdWxkIHJlYWQgYXMgemVybyksDQpzaG91bGQg
d2UgaGF2ZSBhIHJ1bnRpbWUgY2hlY2sganVzdCBhZnRlciBkaXNhYmxpbmcgdGhlIENQVSBpbnRl
cmZhY2U/DQoNCkNoZWVycywNCkx1Y2ENCg0K


From xen-devel-bounces@lists.xenproject.org Mon May 11 07:55:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 07:55:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305819.1577974 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMLU7-0006yF-5s; Mon, 11 May 2026 07:55:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305819.1577974; Mon, 11 May 2026 07:55:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMLU7-0006y6-1j; Mon, 11 May 2026 07:55:27 +0000
Received: by outflank-mailman (input) for mailman id 1305819;
 Mon, 11 May 2026 07:55:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Zhao.Jiaqing@amd.com>) id 1wMLU4-0006wa-S8
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 07:55:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMLU4-00GmeR-91
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 09:55:24 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Zhao.Jiaqing@amd.com>)
 id 6a018b68-2eae-0a2a0a5409dd-0a2a4503b7a6-20
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 09:55:23 +0200
Received: from [52.101.61.19]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Zhao.Jiaqing@amd.com>)
 id 6a018b6a-672d-0a2a45030019-34653d136033-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 09:55:23 +0200
Received: from BL0PR1501CA0015.namprd15.prod.outlook.com
 (2603:10b6:207:17::28) by IA1PR12MB6068.namprd12.prod.outlook.com
 (2603:10b6:208:3ec::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Mon, 11 May
 2026 07:55:12 +0000
Received: from MN1PEPF0000F0E0.namprd04.prod.outlook.com
 (2603:10b6:207:17:cafe::a5) by BL0PR1501CA0015.outlook.office365.com
 (2603:10b6:207:17::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 07:55:12 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000F0E0.mail.protection.outlook.com (10.167.242.38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Mon, 11 May 2026 07:55:12 +0000
Received: from zjiaqing-dev.amd.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 11 May
 2026 02:55:10 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IpfuizC03LO09Mynfgf709o8gwGPglI+Hpcsgifl91CrK5kNDGabRPQfiM2I4/3RT9JLFszbGjBuaSJ8iz6SICBUM6evdFFB7PScgF+rmwrOOrcparx+7sK8EPSnK2O9qwhcUwLx/3Q5UlnQOO3gcTFM6K/UTiTSE+Qzo7J6MPU8bhqAHanxNj1BQ1lyyaEeyXN4zHB6gWTez+NvbkoGSuJlEVM3UBsnjr29uxlHD01eM9zXQ6Pt53fjvHGOd4tKnjgg8LzI9BU+NRL6c4Lc+rfK8NimOm3b151qcTgoQM1C9RoXbWkPC/0e1Xubt0w1ln9IDKBxnyyQPNUpb3mLjA==
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=09anfy61K4RuK/0oYkCwZ4jVFWhXDaLGNl0OpQxgJOU=;
 b=N4qM8qUPUnw45MGNcih5z1Y08eh78JwvD4hz6vlji10OwOJAFvwnjDv5+xbsSjFsQihZ6/mQNlGL1qIg4hn2L3PyybWbUApKWda4XSnXVmP22dau3+m3pPtGbj7LwaczfKasCNQGTanTB0JEwpNcxTWx/kx8P5tvz+beoAUixHAWpVZshFYcyHuiGUi14fFhVKRCcR9Xl5KMW8KPrzL707BDgV4nyOExzKUA0JqzQLHJu/b9dIkMSz3sz8pKmocHMQNAGO+F/xWdBeaFeOTKdhITWUCLIQz+c8xVqIOwz8qVs3xtzY2mRZGujC7DQZOlw5UF/iqIYhESVDxYab4p3A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=09anfy61K4RuK/0oYkCwZ4jVFWhXDaLGNl0OpQxgJOU=;
 b=xGtKRvFhfDHz27AwzlZn50as7sAcGUXxJV47MPyok4qX1exsS+07V1ZP2jM6oagF5idUkrUHIFgeshdTdmbBV9IYu6zEbyfV/gAW4rZIkb37ppxXDO2Hcb4pcEu89edSU0KjQKBVykLIjKHFCPrjcxN80ZF7KPs46S90dP1C9M0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
CC: <xen-devel@lists.xenproject.org>, Jiaqing Zhao <Zhao.Jiaqing@amd.com>
Subject: [PATCH v3 2/2] ns16550: add support for ASIX AX99100 PCIe Multi-I/O controller
Date: Mon, 11 May 2026 15:54:15 +0800
Message-ID: <20260511075415.36538-3-Zhao.Jiaqing@amd.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260511075415.36538-1-Zhao.Jiaqing@amd.com>
References: <20260511075415.36538-1-Zhao.Jiaqing@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E0:EE_|IA1PR12MB6068:EE_
X-MS-Office365-Filtering-Correlation-Id: 56c2be1f-9609-47e9-fb2f-08deaf32a191
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700016|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	Ut5V74R7F/fwwNvIinpJlqOjcjouS+cbHruBxuOOx0EP/RRxGLKpJ4cjaY1WaXvS6KPu66T9Le0L52cIH3klfr9KCRtwapXZPBJi6Zr5LUpfWGiINfONpqp2LA1RwKikfOSUhc4HA0LVMin2rxNBqaPBU+HUNDbov6hBcxn/ya+VLzXYCvzGsKQNKIo3AiilVorg1o2HClUQhlj0peP1SgWhTSGTiIEfNZsBBu9fwl0lEhNFXXgNqGFihFh5+B3npznpA8/3reN4dqyOgewm97vn1SkPqCy0Os5teLQgwzzwkDdP6mtQYoNi9A9EuV/GbrgPxNZ1ITpzg4G5ogQeC8a7J703oKmTSgmAy0HHpEqWPFnbrb4rYIMB9xp9uYzGOnHRXpaoVWqMv/LFrPEXGzVWs95m8DWA1qz0PmtmdpU5Fvw+zBtKmV7Mk+mOP/rg2Aj8AyvgzCdQweaSO0GoCKLbDOSj3BNPsB/RCSEH/0HIiEXWbRDChPkngmFvQN1xtii0XVBE3nIcSGoIwhWSChvwCwE+47jvEH0E++GNrsSGDZwiI2dCUSDPMlxtsI1BL62u4sk3Wt9KLAfc/rJy1/83VPAGoxDROPGmKQPs+M9f5cHX6afBJ8U5CCgawIu7KErlDwmT/olm09qd9iU0X0Y4JC6mTDXXdB7APTGSc7yOwGQfnfW5hfwYI6Ppt5Buf97YDmOgHZ3Lb/UxIcT58iZb6i8mshfeS7Tv/HIHo0A=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700016)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	zQorApm8cH+Ug72m2cLknW6DOrP4v6+xr7apVbusuG5DR9xqyL5lipirV3jWNthPxsFJU8+pH3MRekQ+jpPP7FgfK5JNZ9Gz97yWozH5qqX8ge+QLjAUYIf0lvVJiPS4tvp9ZSFZT7T90ZtdwMjNt+RBlfomPCDTlEIoL5+wqE1t6ls1+Bn3ESuN8L1egwkhX2nyrnKUGGEL2wi1Hp3SVAQDOfI/dqgZ8j/iPs9kl3Qa3bwxJMsg+4Ik3p2w0VByXyGO1TD79x+jc4ZfQzJ3nBVNOJ0sIX7LxSEix2cH9EDSab9MEXSJXPOsGpn0zv0MByPrXwBoaYXC+sFRMU3sjtQ28bRE1WyVHlHYx9F1WjMYbYeC4ExnS/6dPb1T4YeCYD3dHG3m/+H5GEfl7breQowSkD2K7FBP8u9qgbVNtusRROl/bTAnbeVYbizQoL4v
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 07:55:12.6682
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 56c2be1f-9609-47e9-fb2f-08deaf32a191
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0E0.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6068
X-purgate-ID: tlsNG-33051d/1778486123-36945938-9A72C49F/0/0
X-purgate-type: clean
X-purgate-size: 1937

Add a PCI device table entry and matching parameter for the ASIX
AX99100 PCIe to Multi-I/O controller [125b:9910]. Each port on the
chip is a standalone PCI function, with UART registers on its I/O
BAR0.

Signed-off-by: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
---
 xen/drivers/char/ns16550.c | 15 +++++++++++++++
 xen/include/xen/pci_ids.h  |  2 ++
 2 files changed, 17 insertions(+)

diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index cf10a06a3d..26503070dc 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -96,6 +96,7 @@ struct ns16550_config {
         param_exar_xr17v358,
         param_intel_lpss,
         param_wch_ch382,
+        param_asix,
     } param;
 };
 
@@ -872,6 +873,14 @@ static const struct ns16550_config_param __initconst uart_param[] = {
         .bar0 = 1,
         .max_ports = 2,
     },
+    [param_asix] = {
+        .base_baud = 115200,
+        .reg_width = 1,
+        .fifo_size = 256,
+        .lsr_mask = UART_LSR_THRE,
+        .bar0 = 1,
+        .max_ports = 1,
+    },
 };
 
 static const struct ns16550_config __initconst uart_config[] =
@@ -1212,6 +1221,12 @@ static const struct ns16550_config __initconst uart_config[] =
         .dev_id = 0x3253,
         .param = param_wch_ch382
     },
+    /* ASIX AX99100 PCIe to Multi I/O Controller */
+    {
+        .vendor_id = PCI_VENDOR_ID_ASIX,
+        .dev_id = 0x9910,
+        .param = param_asix
+    },
 };
 
 static int __init
diff --git a/xen/include/xen/pci_ids.h b/xen/include/xen/pci_ids.h
index 15e938225c..fd424ef55d 100644
--- a/xen/include/xen/pci_ids.h
+++ b/xen/include/xen/pci_ids.h
@@ -5,6 +5,8 @@
 
 #define PCI_VENDOR_ID_NVIDIA             0x10de
 
+#define PCI_VENDOR_ID_ASIX               0x125b
+
 #define PCI_VENDOR_ID_PERICOM            0x12d8
 
 #define PCI_VENDOR_ID_EXAR               0x13a8
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon May 11 07:55:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 07:55:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305818.1577964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMLU0-0006hK-Oy; Mon, 11 May 2026 07:55:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305818.1577964; Mon, 11 May 2026 07:55:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMLU0-0006hD-M6; Mon, 11 May 2026 07:55:20 +0000
Received: by outflank-mailman (input) for mailman id 1305818;
 Mon, 11 May 2026 07:55:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Zhao.Jiaqing@amd.com>) id 1wMLTz-0006gq-8v
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 07:55:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMLTy-005EcB-Lr
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 09:55:18 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Zhao.Jiaqing@amd.com>)
 id 6a018b59-5cb7-0a2a0a5109dd-0a2a450384ca-38
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 09:55:18 +0200
Received: from [52.101.62.3]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Zhao.Jiaqing@amd.com>)
 id 6a018b62-672d-0a2a45030019-34653e03cb99-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 09:55:15 +0200
Received: from BL0PR1501CA0014.namprd15.prod.outlook.com
 (2603:10b6:207:17::27) by DS7PR12MB8201.namprd12.prod.outlook.com
 (2603:10b6:8:ef::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 07:55:10 +0000
Received: from MN1PEPF0000F0E0.namprd04.prod.outlook.com
 (2603:10b6:207:17:cafe::a8) by BL0PR1501CA0014.outlook.office365.com
 (2603:10b6:207:17::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 07:55:10 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000F0E0.mail.protection.outlook.com (10.167.242.38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Mon, 11 May 2026 07:55:10 +0000
Received: from zjiaqing-dev.amd.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 11 May
 2026 02:55:07 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nQczhBALhZafnJgLB0CiPfezrXhgKTlThpztVntQBnuj4u03t1f3xV1EUXjhO7uVPJbFplJTV4OyGy7NTrfribpdQRCioJRhUGbTg924KFpk8VLhZ69y/ep+QMc/sjDuzmpn1fTfKli7NTExfIjzXlPE5Vkd98lOW+mZO4nNFhQPO80xUJt7W4QOj9m19FlWye5EIx2Lg2V/XpQVU568TgQobvBhPmJBro/jNnszZWIvEpBt//XcV9GAA8agtWSq0ShZ+dUh3cBRQZRIV5o0Sik7UeD4Lme/eeEv0piHQjlcrLb2eKn2Kmh4e5UkCRCFI/UmBHcrM1H1TDoudof76Q==
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=oTKXd9YUSZDMBp5MvD4C+12RK6xJu6gzXgdL9CFEZag=;
 b=RBAGp1ddeMvDJMM3U2Ne513gWsp7R5daNaa/xH+nmwVjQLi9iQr4YDDWRLS8/uOj+11+yTnmQnOW+mHXCEurQG2UBX6VrwOb3GXVgGEKQ2+ALxdfDUFa21aeqNyJVGcrGDGH6gRFs9+1+Thdch/JPjb3wIudIfv4CRvX4vzvEjI5isT4w885HNNjzq4AJzAH4rNfgvdacGzPgMuEXzdBNxKnt2w0bDaltP7TgNnSRBP6tNyEeQgR86+lm8sXVnWKItsS7fwd/9Wz44aQfdg3I6DzBGniifmmYQKWc7aV2FjJax1fQmol+z3Wd5FJevp3Ki2Kt7Kpm9bz3/U/WSmtYg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=oTKXd9YUSZDMBp5MvD4C+12RK6xJu6gzXgdL9CFEZag=;
 b=NGM8pTMXGw1/EBvU9K9d06BfDueZ8REq83d9RkwMOyjMWaSHRC5OXu3GZIZ/26FOClx5BRFLGQDGrC5ueXldyjLxVhtGZVx6VKFGNT0CI+J95qgr1abu11zcpb/0/0FIfSSyM/JhsfIoW0E49quO5OJH1354jxg/GszeB+8Td40=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
CC: <xen-devel@lists.xenproject.org>, Jiaqing Zhao <Zhao.Jiaqing@amd.com>,
	Denis Mukhin <dmukhin@ford.com>
Subject: [PATCH v3 1/2] ns16550: add support for WCH CH382 serial adapters
Date: Mon, 11 May 2026 15:54:14 +0800
Message-ID: <20260511075415.36538-2-Zhao.Jiaqing@amd.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260511075415.36538-1-Zhao.Jiaqing@amd.com>
References: <20260511075415.36538-1-Zhao.Jiaqing@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E0:EE_|DS7PR12MB8201:EE_
X-MS-Office365-Filtering-Correlation-Id: 212133d8-d9db-4f2e-f848-08deaf32a02b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|1800799024|82310400026|18002099003|13003099007|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	B3dgCLiGPT7edfgAVI1lZWI2WKPc1Wss7+KuCG3Rjt/jhqrCFSXio0Udn9WIR+/9Ww6NSIKPp+fp18RJ9DUEhJPw/xH7fKnAz7s4prFVQUxoNHYBgJLWHGAKpHUG6aEA/P+fLWvrlquRUh1A9OpgzZ6IdnPrnHhRN7d7pmGfZDk/1xAILWJ89Ldyo5MjILupw9pkDJp0DvtopZeUL9IW3GVUKQfS4CtewlML0TuHXxkETdS1733KjgdJUNuv6NEk3bUTKaSz4umUXkhCTW483f9Wvz0JkYP7lIxwE8Lsmh17Is++0fkyNj1xBkL+r+pVfKChsB2n0tGa/dJ7kxOSOGRyPavKmwvpS173DmgUkN+idTroOfHdrbCgOA+7NdJyHXTm545pnaTfjRR0un23CzMDdo34smWwjN8mNl2A4xMeCHpIXBmJJFaeOBPxCL1+1TX6ydIdWIt3lufSJ3eCV9T69OvQ+U6XUiG5L8JxOz5LqM49t8yLZZCvNfgyIUjmq4MhhMLsr2y0EI/Jdzm9jj8xGkqZxRToJHY6u1fHGR+WRFoMs2KWdxskjqKgX9NUV/tcoWhOhHC1YXJxtSYKBA4Ek3MNLQnIROSgLHihGGvqQ0ByIa9p7IC4yxoxHXskS/dhKH9U3tSYx70rbfz1O3yCSYm4lizhyzTllz+s4kZol88m4Te8FKypOaRW+jB6
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(1800799024)(82310400026)(18002099003)(13003099007)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	lbdfuL8yoqteu7LSunsSVZeFTp+jfms6s1Usxt9LFMdg8FjXADeUR0G3Cu49nTM3BZFbTlQsBYNsMyJhHb9stGmV9xvev6TEPhkJ0yzZjAkBFtLFPqSkhxlIpttBKakCDEyLVmygYA0UM+LERA3vvbPsYgED5zrTWnOrHDayT0MRzA5vO7rGaSkoIfzPrhG9YnMaErM+xk7WRB4F4eOAdPeKgyq8Z36DtT4XtEIDj0jsI36RRV0FJVeQXj2C2feXlTEef4WOf6msECQdS+0xJrB33tV/pAybUcIHKYSFzgY/YzaOs+eA1oXFnNvkj+ZXB7dwNeVdi8q9cn1VqAFGcW0Alay8gfPNNOMdNS+g1ilVsMskAk2MiXgV/YiygJ/d+nPECjiNQ+CLamxar7VMvHx5oqKSYiD3QttlprRKpyPMo8mRkJ+BoYWxtgEEzFG3
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 07:55:10.3214
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 212133d8-d9db-4f2e-f848-08deaf32a02b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0E0.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8201
X-purgate-ID: tlsNG-33051d/1778486115-3A567938-78703441/0/0
X-purgate-type: clean
X-purgate-size: 2410

Add support for the WCH (Nanjing Qinheng Microelectronics Co., Ltd.)
CH382 PCIe dual port serial adapter. The CH382 is available in two
variants:
 - CH382 2S   [1c00:3253]: 2 serial ports
 - CH382 2S1P [1c00:3250]: 2 serial ports + 1 parallel port

This chip uses IO BAR0, base baud rate 115200, ports starting at offset
0xc0 and spaced 8 bytes apart, and a 256-byte FIFO. [1]

[1] https://www.wch-ic.com/downloads/CH382DS1_PDF.html

Signed-off-by: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/char/ns16550.c | 23 +++++++++++++++++++++++
 xen/include/xen/pci_ids.h  |  2 ++
 2 files changed, 25 insertions(+)

diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index 878da27f2e..cf10a06a3d 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -95,6 +95,7 @@ struct ns16550_config {
         param_exar_xr17v354,
         param_exar_xr17v358,
         param_intel_lpss,
+        param_wch_ch382,
     } param;
 };
 
@@ -861,6 +862,16 @@ static const struct ns16550_config_param __initconst uart_param[] = {
         .mmio = 1,
         .max_ports = 1,
     },
+    [param_wch_ch382] = {
+        .base_baud = 115200,
+        .first_offset = 0xc0,
+        .uart_offset = 8,
+        .reg_width = 1,
+        .fifo_size = 256,
+        .lsr_mask = UART_LSR_THRE,
+        .bar0 = 1,
+        .max_ports = 2,
+    },
 };
 
 static const struct ns16550_config __initconst uart_config[] =
@@ -1189,6 +1200,18 @@ static const struct ns16550_config __initconst uart_config[] =
         .dev_id = 0x7adc,
         .param = param_intel_lpss
     },
+    /* WCH CH382 2S1P */
+    {
+        .vendor_id = PCI_VENDOR_ID_WCHIC,
+        .dev_id = 0x3250,
+        .param = param_wch_ch382
+    },
+    /* WCH CH382 2S */
+    {
+        .vendor_id = PCI_VENDOR_ID_WCHIC,
+        .dev_id = 0x3253,
+        .param = param_wch_ch382
+    },
 };
 
 static int __init
diff --git a/xen/include/xen/pci_ids.h b/xen/include/xen/pci_ids.h
index 5884a20b8f..15e938225c 100644
--- a/xen/include/xen/pci_ids.h
+++ b/xen/include/xen/pci_ids.h
@@ -13,6 +13,8 @@
 
 #define PCI_VENDOR_ID_BROADCOM           0x14e4
 
+#define PCI_VENDOR_ID_WCHIC              0x1c00
+
 #define PCI_VENDOR_ID_INTEL              0x8086
 
 #endif /* XEN_PCI_IDS_H */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon May 11 07:55:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 07:55:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305817.1577956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMLTv-0006U1-Gu; Mon, 11 May 2026 07:55:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305817.1577956; Mon, 11 May 2026 07:55:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMLTv-0006Tu-E9; Mon, 11 May 2026 07:55:15 +0000
Received: by outflank-mailman (input) for mailman id 1305817;
 Mon, 11 May 2026 07:55:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Zhao.Jiaqing@amd.com>) id 1wMLTt-0006Tm-Tn
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 07:55:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMLTt-0028mT-AR
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 09:55:13 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Zhao.Jiaqing@amd.com>)
 id 6a018b58-bab6-0a2a0a5309dd-0a2a450c9a7e-46
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 09:55:12 +0200
Received: from [52.101.56.43]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Zhao.Jiaqing@amd.com>)
 id 6a018b5f-62f1-0a2a450c0019-3465382b35e2-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 09:55:12 +0200
Received: from BL0PR1501CA0022.namprd15.prod.outlook.com
 (2603:10b6:207:17::35) by SJ2PR12MB9237.namprd12.prod.outlook.com
 (2603:10b6:a03:554::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 07:55:08 +0000
Received: from MN1PEPF0000F0E0.namprd04.prod.outlook.com
 (2603:10b6:207:17:cafe::b6) by BL0PR1501CA0022.outlook.office365.com
 (2603:10b6:207:17::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 07:55:07 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000F0E0.mail.protection.outlook.com (10.167.242.38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Mon, 11 May 2026 07:55:07 +0000
Received: from zjiaqing-dev.amd.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 11 May
 2026 02:55:04 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Hk6MqGg0nRhjpF4ytuMkNKxdinBFkY5F702dOwTEANVQSSk03dJ3EIH0HkqgPwAbIxSQYFeStmlOoM/E0kPFhnEV1emz243qEB19rtEl5Xlw3J0GR/tPhhEYM2kya+ibtKTJANznd6yK3WZPH/aNl4awc9Ja0oDFgHbIAXqNAlIhlLucIkiqLzh9tI4UvXxHoJkdeXqSNP1ySsJ8Aiz1wjhZ60gDy3AemwizNeqa0NneP/nMD2pgL0kWggzAJl7d9dSPeRURbF8ZRP98qWy2rH0Km8eJv3f1nGtrzfLxF0LA+CRy7wk8NwWmG7LS88oEAUhFF63LhA9DmnhDsRW4pQ==
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=p8eFitT7eqPkRdE+pmjgDzqR+P32FmKPrzk5O9kcink=;
 b=ED2fbzPnZ5lPN5GjnsTCDc02eUu9U1662NXqYUSfkzFdHa/UQezuLJIFiULAylgyIs5IOlJ+6a26SE/4Z/sskf2WuXgDuuvPEh36ngJtOGr5Gxp0xIbMHNcK/3+MqXjJRZ/R3CLJe2AipDOo+csRnVksJ3t8sbAy+hirrxg3mbiRslWogmu3W+H45jdpL7fbHcmKXvN69hWKUC8FpSEDvk3F56xm7KVvBa7vQ82oIGr+agTNheMFK5okWVLIitQJ0xcbB9koNtbiDu44vQThGJrspbszG80Nkn75DZrfiJAaO68P87lDctm/ZE0ybq/GP+oJDoysqSUCb23umLGMpg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=p8eFitT7eqPkRdE+pmjgDzqR+P32FmKPrzk5O9kcink=;
 b=MF0Sr7eeQ5gPdVmZ17eB5kK6X3F1xjL1H48F8w/Qc9fTROKfAAp/mp+E4BM0W7TqKg0oKrhoCcEoJSrJtE17blfNCKhD9SI4Tm9J1v+DmFRHjvW2WDlDamdyEV88J2AxoKxFOY9jFeooTw8a7wNG5hNpj25zswVoofGSggMSIHI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
CC: <xen-devel@lists.xenproject.org>, Jiaqing Zhao <Zhao.Jiaqing@amd.com>
Subject: [PATCH v3 0/2] ns16550: add support for WCH CH382 and ASIX AX99100
Date: Mon, 11 May 2026 15:54:13 +0800
Message-ID: <20260511075415.36538-1-Zhao.Jiaqing@amd.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E0:EE_|SJ2PR12MB9237:EE_
X-MS-Office365-Filtering-Correlation-Id: 5a2f3a31-fff7-4330-06cf-08deaf329e7d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700016|1800799024|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	aB/BRV0jDxNUxoocxZcZTmE7OaUb7orQfqmD8eQ/LzDAezIgu4VXtlyLFraKWgz9o06rZ26i9xiWSF1W50D0DB1d8+oDIv9O+p14GpnORrvf1Ge4dCkZAnHN28VEVc5vYgdie6jpQg5KyeBhVVO61qQrsyCT/l3IhhQFQOxAqGknUyR1lfX6NjrMyQMKWBocfNrUVfc2guCX3P9CjkqVpLM14crSCcCqekkmO8+cY2tzPT1qkzqhk9q+8l8bqYokIg+tro0n9Ll3vrxXjjTtNy90DEMKb1LKTslHjw/HWXQ1bN+LAacdpXhtQWsh2ZbSGjnb9QIvYojDav38zuFYEpjNQxhN9pPP47R9XfVMxRduNQMHpSj1Lw4KPHJ614YCe1EADcRKdtnCmW+p0kD/51XAYdpOk/vKD0FyvtYNimPhMvMjitFNOfp4oWqZUeF9byAqvenoE6g5sPfxvMSDbr992ATgL/cVeTq8dO3UlxZW5bpN0GVDyliq/xnxRgepuEzbpMW7lbWL68qJ67w+4jinC0FLfdWrTJtcngzDw6gSvFO1dThlsJB9Bq8BKe5xrJILP2dDSLpi2Mv7LBuMM4LOtFQwK5YPJHOPwQekslS1nLRQwikTlOILTSJqZFl0yASqU9GNulBSlOyb/LMhHg4c4UcZiRjULzZLCYZglnulFKAsQ5ZQnHGqQYn0xmzwM3cMvPyqoirSRDnsp7bvtorI6I5e+c0qml6/Nfx3LcI=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700016)(1800799024)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	rEYpvNLgb0wGwbZg7RSpHcff4xXsQktOx79Z7t0VDujl73guCfFEQfN1NRD28KbNowKrzs5OyjCQPbqmDacsCUNuN3dCjTvmYDBH65z7ef9eHHKw3MGvmP0H0FY0xJhTyF3FpBxXa9QYW1QmzcKNKEEi79Woah3MCIakl5fc623s/2ogPtFrmhFwWGNb/5c79hchpPrXeyiH6Pci+ZtSjGcQnL9neY0lrMJ1ql8pqTAt2dVKIpLVAxgw9fwqewUZH/LBY5CrZ++wgYJ55FJqn7qQIAtMLdcZgE6G5Iu+CdtxZHLAZ4YrRiwBGI1DZw7VhAZafOdS+7AFEtKYJsICcHpwkpJlY8fW0t6p+GzjUrb4rK79SvSga6zBvkUvfoCyGo/HeNqMBKbm+H9YS+QFJzr6ij2NTxfarhEMA2S5vvGG035dj/wHfyVSe7qbooux
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 07:55:07.4956
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5a2f3a31-fff7-4330-06cf-08deaf329e7d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0E0.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9237
X-purgate-ID: tlsNG-d25034/1778486112-E2169CF5-50E1A60C/0/0
X-purgate-type: clean
X-purgate-size: 1030

This series adds ns16550 support for two PCIe serial adapters found on
market:

 - WCH (Nanjing Qinheng Microelectronics) CH382, available as
   CH382 2S [1c00:3253] and CH382 2S1P [1c00:3250].
 - ASIX AX99100 PCIe to Multi-I/O Controller [125b:9910].

Both chips expose 16550-compatible UARTs through PCI I/O BAR0 and
work with the existing ns16550 driver once a matching device table
entry and parameter set are added.

v3:
 - New patch 2/2: add support for ASIX AX99100.
 - Add forgotten Reviewed-by from Denis in patch 1/2 (WCH CH382).

v2:
 - Reorder entries in ns16550_config to keep them sorted by device ID.
 - Rename PCI_VENDOR_ID_WCH to PCI_VENDOR_ID_WCHIC as WCH has multiple
   vendor IDs.

Jiaqing Zhao (2):
  ns16550: add support for WCH CH382 serial adapters
  ns16550: add support for ASIX AX99100 PCIe Multi-I/O controller

 xen/drivers/char/ns16550.c | 38 ++++++++++++++++++++++++++++++++++++++
 xen/include/xen/pci_ids.h  |  4 ++++
 2 files changed, 42 insertions(+)

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon May 11 08:28:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 08:28:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305856.1577983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMM0J-0004I6-SP; Mon, 11 May 2026 08:28:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305856.1577983; Mon, 11 May 2026 08:28:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMM0J-0004Hz-PY; Mon, 11 May 2026 08:28:43 +0000
Received: by outflank-mailman (input) for mailman id 1305856;
 Mon, 11 May 2026 08:28:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMM0I-0004Hn-JK
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 08:28:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMM0G-009vIl-Nz
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 10:28:40 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a019334-e002-0a2a0a5209dd-0a2a4507814c-20
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 10:28:40 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a019338-229c-0a2a45070019-d1558029d9e4-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 10:28:40 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-48e82c23840so4886825e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 01:28:40 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e6fff9c91sm179957505e9.1.2026.05.11.01.28.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 01:28:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778488120; x=1779092920; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NqWZ/tTu3mVHMTLVrNUdy2henhKD5qcqDf5QsKf7Yhc=;
        b=GQzQvmxGrwlynskIlFD110hH2vlUqa410Us7JaC/+yiL5OCwAQsPoXMRp+naUP8UKq
         pgfzUND2q/B1kDqqVSSX6EAxVfznj8lFY7OWIOWw/CsFnFvwp3upTY08yE29RDjjrxZm
         A/Jn8ZSRGO4uCVIIgjSqGtkvc3wJAC3QOLfjhf6PwN4eOI8VO5nOvE2e1ZE2BqaI/ehj
         ebPWBVglLhFV0q0TqDHmHCaKsPBiqgf71DbpE9WaxNKnQAfgWgej95beZAjdcr83km50
         gIiqudVSd5gUhMeVLhqK9xJOItgzDS4GZVMrLCkT8G6QMifGigh2fo9t3vgmNmQQWlRe
         B1pA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778488120; x=1779092920;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NqWZ/tTu3mVHMTLVrNUdy2henhKD5qcqDf5QsKf7Yhc=;
        b=VONX5rJJcz7rcxrbdn+hRzm7YWQ8E/vBBgzSDzFPFgIBYFlPiaj1YGH9SXnJS+RFeu
         yA/5VE04yDhyAFzVUZ1hxW1J3vSatJPDW4xa/gKgX9GQpSrZ+COhrtOtwFAEHwzhUsVM
         4QbGjMTKMIU5mmcMV6bsvhE4nLsWnbYhbcc4HIM6WYXiIYmGvZ93wZ1EgtFo88kqh5pP
         l4D0kihIR1YGsyI3urYfopSqThHVOFhkPinD6Zc2v428oCPKmtXej8zVc1Fff91vyH5R
         eqnYNTgoeaguscPgi4FZmhYyODhdlJ77JWM5amiTEFX7FZ8y6EhRV6wivdFDky0rUcjr
         PbAw==
X-Gm-Message-State: AOJu0Yx83Co+bv5dX6iXSbIIsy2VyH7pDOl0fJn8WwERVRiaLJ6jhxBf
	wgTWNhre4Gr+K761R4mYSKlM+jWF43+H5xxq4RW3cI1S9gZQcu88zntNh0/V2Aotfg==
X-Gm-Gg: Acq92OFLENnTU0ypqxX44Ty+RJKH2pDqRwHeBIcP05AAZq37ZijTpZvbjWU8uOjmddR
	T+4eV4FrkqNuSV5M+m7nQQ3a3bY7tmaU3vxVY+sUyYCxWkQtdWd/y5ZFOmZFxAJNhVOkaCUPU9o
	3z+MvEZz/SKUZ28PYOf8jvMrBd4xJLU3M2pWRZTmtHletAJrNj6Mdkh8nPTUNLQD1izEqcjGSA+
	aaZRfqop8EEfxHdQIX2WMa7Q3tzEYElHFgW3cOqs9858CfO15RyUS6OzKjZg4jF2RQ7ehQ2VPuI
	QicnzV+5J3jB1dFcIf39xNrlHohYQUccBSyUwsKcrNDv+69alkqhJv4Ty6D2INH7cmCwvXnPWWT
	jngzPm/oRD0WTfsmV0r9AkILWuNW8oKC6+opBca8jOfaMBpT08ttj8ZFNXgI7ou7JwZNI9ASUbc
	XusC+vksXIwhQdkNu6XCLWFAQLwgAOv89YWUBn0je0fpmYIqd95PCMuZeB4LyEeWrwYkCmJ4NzR
	iE/EPhg2wPK+r8=
X-Received: by 2002:a05:600c:c08b:b0:489:201c:dc46 with SMTP id 5b1f17b1804b1-48e51e204b5mr261909705e9.12.1778488119918;
        Mon, 11 May 2026 01:28:39 -0700 (PDT)
Message-ID: <e238b131-0e66-4929-b09a-71afb8666883@suse.com>
Date: Mon, 11 May 2026 10:28:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 0/2] ns16550: add support for WCH CH382 and ASIX
 AX99100
To: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20260511075415.36538-1-Zhao.Jiaqing@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260511075415.36538-1-Zhao.Jiaqing@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778488120-22F76C48-E4B26C31/0/0
X-purgate-type: clean
X-purgate-size: 1230

On 11.05.2026 09:54, Jiaqing Zhao wrote:
> This series adds ns16550 support for two PCIe serial adapters found on
> market:
> 
>  - WCH (Nanjing Qinheng Microelectronics) CH382, available as
>    CH382 2S [1c00:3253] and CH382 2S1P [1c00:3250].
>  - ASIX AX99100 PCIe to Multi-I/O Controller [125b:9910].
> 
> Both chips expose 16550-compatible UARTs through PCI I/O BAR0 and
> work with the existing ns16550 driver once a matching device table
> entry and parameter set are added.
> 
> v3:
>  - New patch 2/2: add support for ASIX AX99100.
>  - Add forgotten Reviewed-by from Denis in patch 1/2 (WCH CH382).
> 
> v2:
>  - Reorder entries in ns16550_config to keep them sorted by device ID.
>  - Rename PCI_VENDOR_ID_WCH to PCI_VENDOR_ID_WCHIC as WCH has multiple
>    vendor IDs.
> 
> Jiaqing Zhao (2):
>   ns16550: add support for WCH CH382 serial adapters
>   ns16550: add support for ASIX AX99100 PCIe Multi-I/O controller
> 
>  xen/drivers/char/ns16550.c | 38 ++++++++++++++++++++++++++++++++++++++
>  xen/include/xen/pci_ids.h  |  4 ++++
>  2 files changed, 42 insertions(+)

Please can you adhere to patch submission rules? They're sent To: the list,
with relevant maintainers Cc:-ed.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 11 09:03:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 09:03:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305869.1577991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMMXw-0001CA-CG; Mon, 11 May 2026 09:03:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305869.1577991; Mon, 11 May 2026 09:03:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMMXw-0001C3-9c; Mon, 11 May 2026 09:03:28 +0000
Received: by outflank-mailman (input) for mailman id 1305869;
 Mon, 11 May 2026 09:03:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wMMXu-0001Bx-DD
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 09:03:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMMXt-002OOg-Ga
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 11:03:25 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a019b5a-5cb7-0a2a0a5109dd-0a2a450ac0be-26
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 11:03:25 +0200
Received: from [52.101.46.61]
 (helo=CO1PR03CU002.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a019b5b-56b3-0a2a450a0019-34652e3d6df8-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 11:03:24 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CHXPR03MB989196.namprd03.prod.outlook.com (2603:10b6:610:2fd::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.26; Mon, 11 May
 2026 09:03:22 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 09:03:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JHipfDw9CgvUej9oXf1nqoePBZmrlOGjRGPQJkE1oEKh9Gr6A/9fPKMuICPc0tZyDOoE8QWIpVcIkguHV641iQVgQvinhk7JljajVHv2ejb/R6zSYGa+wZfJWV5OdcWFWwPiCgsSx0HHLZGdLANJ22XRYk2wlNI3nqu8wR7PNN6QqlU0BJSRZ05Q5SAKIy/PGcnhofhXhpMiVRxpdogIaysmLt0kY9gHRBJOX0A4mpkrjNkSih9AFgGIQP2cdp5sn4+DCzAV3TXpqxoqSX0UQXt+3f4N+RzlsoQR6gz8Y1mFqjq/qoFPSB+CUpv0Xtn0QOZA/MHMALrDpIzhPWpqnw==
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=8oG10SayMrqEogdE2+xZWBJaUMiEzpOs9UQzcLRW+Ww=;
 b=KtxeXimqngl3hXqmSsohCBUMj3SC+3/9TpLDvH7DlAmlrT7r6cZTWo1j3/eo6ivtxpu0rIkdXOADRHt71aUlUYikMe+oBIoLhCBT0NvlHnjmMzTEYn2cOkrYTxFJifNXmHzHlZTsN3BGYdzIzcbrhZ4OkGo+IwLtA6U4pTWsIYqcHdzByaK5neMqwQoZYkeAJEFkEN4MtTMQrGEB8vy9idQVB51pbuIxrS1OPrtDf+rrb/NG9KX/bPeRRxGEwNEaTUnnqQ4gWtD4kMCwERNGsYtfgIuwyf254seBiKH8SHrpCPRSJ+LkojGukVF0LKIj27pkXr4MYv3lmQ6IKiXqDA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8oG10SayMrqEogdE2+xZWBJaUMiEzpOs9UQzcLRW+Ww=;
 b=mABMZweKq4SwwIT2R9k5+YoKfNAP+15v2d3QeR8JROcsE0cbz4c8NDEalfC76KANKvedoRsA/VqahmlYyCcYKT+wZYrd4j1LDz+uFs2BvO56PA8ktRpdDhv+UkPpmmTzVgVUNU+O37QVOq+xuruAkxTGE0uQn3gREEwOAEqwkII=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <455c64a2-bae4-47d0-a2bd-902be3ea6127@citrix.com>
Date: Mon, 11 May 2026 10:03:17 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH 1/5] CI: Adjust test needs[] to ensure binaries/ is
 non-root
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
 <20260508212907.1643761-2-andrew.cooper3@citrix.com>
 <a7932bc7-86ad-401c-b462-01078e6e11bb@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <a7932bc7-86ad-401c-b462-01078e6e11bb@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0273.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:37a::10) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CHXPR03MB989196:EE_
X-MS-Office365-Filtering-Correlation-Id: 0b3d2c57-5bd5-4538-8f22-08deaf3c26a6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	KxxFo/xKxei9fftduC0OLH19yXKoyBs+guE0+0FdICmz5Ja0k2QSsEm6xz6e43tWCr0fzqjqMIsD4Gvdac/O2vcLDiOikgo/xR9IKWNDwrLudjxrBuCGcjATpO+JvbFGzRuSxtZUYCwU40RmXuWYbf+aDdSVdg/5L3SXya+XN0IhpNRuL+3h9opbxMHWj3a2KWm3Czyn8j0NSds+TXIBbJOLUBZ+Xisx72WAQzWy/RZ1aU80XLm/nmHyC/qC9Wk5JyF0mINP6rtQEn7Etmago3KESEooztOse5cm/KIIvT9f/p/qBESRyc8trKI/bw1m6vYqAGb48cA0MKaid8Tz8DhsoH85EGv4lukpwKR7S+wqwP43tqYJj4ISMvMPTEQwvc2MkpB9hX2M0DUP0IoZEERIto/jX61QqeHrKbSAoLuwWTmg+go8ndt0yt+l6adir1cl3T2hwnZtlopzF0zyWEi38MDT9So/NDZtV1NTwooST9j4gS1NDiF8aHBVGUJStnbesQs6/scrKGf9sHrdj+O8jIZafwKXNhfBkEezV+tblQ/JeG4f1MkBvTNp5PJu99IYkgB1N4rf/0cHHFdrH/Af3Lfd+7qVX5fYNOxYWiBTa/xmwo3NmFszU4jPxdeVohENTELWGZJrrOuwiaP28GfzPIZcQ8CaUemPCHKmeNeanegMP4M0E9hfFE+igNl7
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MHNTSnN0aXRITlo4TjNvYkN1NkFSZUtwTUx4SUIremVDZ2Y4S0hRbGF3SmVL?=
 =?utf-8?B?OGJ4ZFpNdkhMZ3BqSE1BVm92anVxWVk5WHZzaHpzZXVmSFcrZkhwd3JETDFj?=
 =?utf-8?B?Yjg1TW5wcTVyM1JGRXFKaHZnMW5HaTd0MEtRSlk4V3NBUWhCSVdBd1RINlNt?=
 =?utf-8?B?QmFMSTNPaEdqdzVKQXpaWEZZeVEzRnRZOHlsdVlvREJ0d0dpN0F3L0xxaUR5?=
 =?utf-8?B?dWN2akEyS2k5bnRyZ1VmQlJkS2Q5YnI4UFowQnplajdhTmo3MDRhYnJmSlhq?=
 =?utf-8?B?Rk1ISkVvMEphQ1ltVWw5MVpCdW1mVEJTRXlPKzgvNWR5L1dZOTJRUVpYTlY3?=
 =?utf-8?B?MlVyZW9QSVRoRFNpdHhJL3R3WmRPc2pHM0JGb09DcHRkQnVFc0pESkFpOVh1?=
 =?utf-8?B?OXJtM1dzaDhVZ1ZMVU5CV1k4bjZDTjRGaktSckN6VURCS3NWR2E4NXkwTklV?=
 =?utf-8?B?SE5BUUpJSTBCM1MvVWZoNktMZ2FzSm9BNW9KMElJdFdWUWdJTk9CK2tCbWc4?=
 =?utf-8?B?T3dFUFVldEppSHllaTVjVDRsT3N4RmJEc2VTOXRadUxmcEFOQ05rTjVRVzJR?=
 =?utf-8?B?dXJTcmgvcWpUeGhkdUQ0c2JSYzdFcUVHa1l3NEtoOEpFQUpMTHlrRjcyVjIy?=
 =?utf-8?B?blBzNHJNYnU4dzROYVduLzVSTkpJcHZNRHRMS0p3NXAzVHpzNHVTMlQ1emdG?=
 =?utf-8?B?WWtOZ1I0eEZBbWJpanhjSzlvOXlTMVFvU0NMRG5PL3hMaFE0aFFNK3FJTkpK?=
 =?utf-8?B?azhnTnErY0xENE52eVBpVTNCVHdQTnU5TUcyekdpSTQrSTBPY1Q3Vi8xNktR?=
 =?utf-8?B?YUc4S3RxM25zUDZsWEdsNGIvZWoxcE1JNWt5dDZnVG9LWEJzVXNQamxVK3JM?=
 =?utf-8?B?NENLWDdSdWRSRUtTQ2tYRXRYcDkzd1IyWmZHWHQrNnprd1pUL1pzSy9JZGt3?=
 =?utf-8?B?R3QwU3ZlellZYnVFQjhUdHNTVHJjUWpQVjZnRldYMWNZSk9oWmE0UTR2cUEv?=
 =?utf-8?B?VkcwNzRRZFVKeGJXbDdLVTkvZzJmaHRHRmRTMmhUOFhoY0dvV0ZNZEZMMmpn?=
 =?utf-8?B?bFJ2ZEF4aDRjbzd3clR6VWx3MENLTmkyYW1rQnYvTUdxbVpXYVRrTHlnaklD?=
 =?utf-8?B?VEV0MjMrOVA0TlcrOUM2clJzRTRkSFp5Tk9wSkpsOGY3WitHUFVIcmlqaUZv?=
 =?utf-8?B?NlNCdjlab0lhVCsvajJudXJmemtCbkhhMWNsS3NDaW9RNW1EUnRlMzNWa3ph?=
 =?utf-8?B?VWttTUlDTHF5d3ZRQ3ZsSFVUbERSN282ZktTVTNIajQ0Z3Q0WFpYa002KzVm?=
 =?utf-8?B?UG5mM2gzSlN6S0ZXazk3WCtVV2VYNmhUVzNkcGovZ3NjS2g4a05pdGc3aHk0?=
 =?utf-8?B?VndXdE56Zm4xYkVETmZyNDhVNVU3cFNWVkpzSWhIcVpGQ1ptVUhUSUN3NkdV?=
 =?utf-8?B?bERRbEZwWDNURlhQdkxUeDJLYzhIU1VDZnc3T0ZwNmxWUjVZeEcrSGxvWTE2?=
 =?utf-8?B?ZjRsNG1tMFN1SWZaWkdmZ2hZRktxc2xvajVEL29WYWJQcEZCWkwwd1RraVcx?=
 =?utf-8?B?Y2cwaERzYUZhaGZsdDZndnlSZ0NLZ3ZIdUtHQTlHcTVGK2dhbW15L2hsM0lO?=
 =?utf-8?B?a2cyNW1MOTdGYTYwZ2dCVFZXOURiTzZLZlViZ3F0ZFVwY2NmdFFlbWlsdnEr?=
 =?utf-8?B?NmhTWXJTZ3g3ZUIyZ2g0TmtsdXdWUGVWbTZtek1CUTNVekJsTEtPSzUwelZ2?=
 =?utf-8?B?VXZWMTRqYlFRbm1leThGRld3alRSOWtKVHVsRGVVYVJwMmZTY2NvTTM1UFpo?=
 =?utf-8?B?WWxKa3piYXJIeFNpR0ZpYXdDendERXlBTWNZSVFiS1N2My9CSG1uN0wyV29r?=
 =?utf-8?B?WXhBKzhMMGJLTUlZc1dzSWowRWlvVlZ0V0I1bUJQNzUveUowUkxkZXlHcXVF?=
 =?utf-8?B?R3NkQnNxc0VFdnJBeU1tRVlzK3VFaUxoaEFDUGlRYVdWc2UzcEgzalMrR0RM?=
 =?utf-8?B?QnRJSld5TVFjUFpIWUlpUG51eHk3OERPQmlIaWpJK0FlR2VUMFF5amxIZ1Zl?=
 =?utf-8?B?WkJ4UEFwNnVyNFhQQXFYMDQyQlk4NDZmamk2U2hjK2hWRHBVWFUwc3BoZVRs?=
 =?utf-8?B?eFJaVUludnpheHFWem5WU1VtQ1BWc2pHdmhzTVN6d1FreERmdjVRS2JBU0NR?=
 =?utf-8?B?MU5GOVhqY1k2TFFVVWFmc1ZSdXZnYmY1aHJaMG9VK3J2UE1TNnI1OUt2TXpI?=
 =?utf-8?B?Zys4eGFLK0JGblJzbXBNUnIrUjVWeVJzMEh4UjlydUlVaXduOW00RTBuMXcr?=
 =?utf-8?B?c0E2bEU0TzBPOVZ5TXUyc0NiZVNkMUNtczhpbkRzUDVJdjBCZWVhV29ObU4w?=
 =?utf-8?Q?MIIi0NUGWYC/1sTg=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0b3d2c57-5bd5-4538-8f22-08deaf3c26a6
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 09:03:21.6040
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: suh4hkt46wXsZw/xsviipvxZ2npYXdrSwSyk6BZIRIIfiFyfjE/DyoKgDq0E756BZAup/n2AH0Q1k7k88KPu6O6pYZTj36xCazategNZ2Q0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CHXPR03MB989196
X-purgate-ID: tlsNG-4011c0/1778490205-73D788B7-BCC99DF0/0/0
X-purgate-type: clean
X-purgate-size: 3131

On 11/05/2026 7:16 am, Orzel, Michal wrote:
>
> On 08-May-26 23:29, Andrew Cooper wrote:
>> The binaries/ directory is a composition from the artefacts, and also used as
>> a working directory for most of the tests.  If the very first artefact is from
>> a root container, then the test must also be a root container to use it as a
>> working directory.
>>
>> For arm64, the existing linux-arm64 artefact suffices.  For arm32, pull in the
>> microcode-x86 artefact as it's the smallest available.  This bodge can be
>> removed when all build containers have become non-root.
>>
>> For the qemu-xtf-dom0less-arm64-*-xen-version jobs, use *arm64-test-needs
>> ahead of alpine-3.18-gcc-* (as it's a root container), and to deduplicate
>> the *-export dependency.
>>
>> This will allow us to change containers to being non-root one at a time,
>> rather than all in one go.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Anthony PERARD <anthony.perard@vates.tech>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Michal Orzel <michal.orzel@amd.com>
>> CC: Doug Goldstein <cardoe@cardoe.com>
>>
>> We should also stop using binaries/ as a working directory for the tests, but
>> that gets very complicated very quickly and I don't have time to do it at this
>> juncture.
>> ---
>>  automation/gitlab-ci/test.yaml | 10 ++++++++--
>>  1 file changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
>> index 8770c523e228..517af1732437 100644
>> --- a/automation/gitlab-ci/test.yaml
>> +++ b/automation/gitlab-ci/test.yaml
>> @@ -15,6 +15,12 @@
>>    - qemu-system-aarch64-6.0.0-arm64-export
>>  
>>  .arm32-test-needs: &arm32-test-needs
>> +  # Bodge to ensure binaries/ is non-root.  Can be any artefact which comes
>> +  # from a non-root container, and microcode-x86 is the smallest.  Remove when
>> +  # all build containers have become non-root.
>> +  - project: $ARTIFACTS_REPO
>> +    job: microcode-x86
>> +    ref: $ARTIFACTS_BRANCH
> I don't see it being removed in this series even though the containers are non-root.

Correct.  The Alpine container still being root is discussed in the
commit message, and is why ...

>
>>    - qemu-system-aarch64-6.0.0-arm32-export
>>  
>>  .x86-64-test-needs: &x86-64-test-needs
>> @@ -569,16 +575,16 @@ qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
>>    script:
>>      - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 | tee ${LOGFILE}
>>    needs:
>> +    - *arm64-test-needs

... why use here is ahead of ...


> This also pulls in Linux image and rootfs which XTF tests don't need. I think
> it's much better for a test to list the actual list of its dependencies.
> Otherwise you are asking user/developer to dig into the yaml.
>
> ~Michal
>
>>      - alpine-3.18-gcc-arm64
>> -    - qemu-system-aarch64-6.0.0-arm64-export

... the alpine inclusion here.

This can get reverted once the alpine container is split/reworked, but
not before.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon May 11 09:07:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 09:07:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305878.1578001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMMbQ-0001n9-UM; Mon, 11 May 2026 09:07:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305878.1578001; Mon, 11 May 2026 09:07:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMMbQ-0001n2-Qz; Mon, 11 May 2026 09:07:04 +0000
Received: by outflank-mailman (input) for mailman id 1305878;
 Mon, 11 May 2026 09:07:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wMMbO-0001mu-PZ
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 09:07:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMMbN-00H4Tm-S0
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 11:07:01 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a019c2b-2eae-0a2a0a5409dd-0a2a4508b3c2-32
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 11:07:01 +0200
Received: from [40.107.208.29]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a019c33-63b5-0a2a45080019-286bd01d531f-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 11:07:01 +0200
Received: from CH0PR08CA0024.namprd08.prod.outlook.com (2603:10b6:610:33::29)
 by DS7PR12MB6007.namprd12.prod.outlook.com (2603:10b6:8:7e::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.22; Mon, 11 May
 2026 09:06:56 +0000
Received: from CH3PEPF00000011.namprd21.prod.outlook.com
 (2603:10b6:610:33:cafe::8e) by CH0PR08CA0024.outlook.office365.com
 (2603:10b6:610:33::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 09:06:56 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CH3PEPF00000011.mail.protection.outlook.com (10.167.244.116) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.3 via Frontend Transport; Mon, 11 May 2026 09:06:56 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 11 May
 2026 04:06:56 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 11 May
 2026 04:06:55 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 11 May 2026 04:06:54 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LV72yy0hazOjRNm5VBVJnAF/5Ghg1GGwn3xNG4YtRqSjEPwOm2diXdOXCdomDCI5orZiWSSdT1yt0DEDGzL2dvptSs6SmHgJ5Ahgfz+rjnOC50T+GQskfHoIgzkKPqrzUaZYwaTm7N09OGYAKZooni6MyYikS1Gi5SJAgyU86fFKRgzToLhbjDA/V9FglYX4w+bB7yM3Zp1TsTkInb+w583h2cCVHUFoDXgDDzxpuXKMOFQV3XhfEQeZMDyCCYqUrK8PjSO3dX95/qDq6xAig4fv86f9jj4JCkrBbDUKZ/bpTlfZAdcB/IbTa2uQrCSt389kV7RpsIX687vLbXhkfQ==
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=VNNpEWZNOWj8GR5qhCHhoPedjD2cb6cMhr+uoI5xJQk=;
 b=GQpRDaJ8LSStkaIs0+IS2gS2vOzMMx+8gbanx5pTutEqPbvF/hZ/nb4V8LfMioKFDdRxgK/IePVdayAFBCT6BY4zq/MLVK+i+0nuGQfcAS/W2ezN0mLdLup2luGZ1g6jBULABfcpvJhTawDGjuON4WYIbdAP+3y4oE8BURIufSveZFEyI9CBMe1PGImLz5uYLzIzzkYLVC8v0q+Aeucn0NV0hLwduLYuOdQa1SBbCkdIMIetaIyX484eD4DAsn8lqBgchQIr5vOw6JGxLDJ0diWBH9yKDyFmShJ2WnDEf9mc1gllKc0dwLnHICPMlUOEI9AfmFR2ZZhRzD+aGfKwQQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VNNpEWZNOWj8GR5qhCHhoPedjD2cb6cMhr+uoI5xJQk=;
 b=ds86QHYKm9oXOaNhhw9co9i4yqZW/+S3VfjwHFgi/hEEt0rxQXzBOTuSzxxuTqcy2qIDfbwtQ3ccgDgVwWvFJYiZ68eeTKuJ9oKt6Pyz8oPucB0QsmJBIS3yqJMy48b+PpnNw26GV9Clk/oYHnUhIaYFmidqUiS8f8e8pkZ9w+g=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <fd6d9873-d1db-4aef-acbf-6f7659f5c528@amd.com>
Date: Mon, 11 May 2026 11:06:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] CI: Adjust test needs[] to ensure binaries/ is
 non-root
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Stefano Stabellini
	<sstabellini@kernel.org>, Doug Goldstein <cardoe@cardoe.com>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
 <20260508212907.1643761-2-andrew.cooper3@citrix.com>
 <a7932bc7-86ad-401c-b462-01078e6e11bb@amd.com>
 <455c64a2-bae4-47d0-a2bd-902be3ea6127@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <455c64a2-bae4-47d0-a2bd-902be3ea6127@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF00000011:EE_|DS7PR12MB6007:EE_
X-MS-Office365-Filtering-Correlation-Id: 7ece4e74-363c-4a7d-1ad8-08deaf3ca6d0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|376014|1800799024|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	5RmHdlYV8RT/DNCx/hbwkOwiTvd/xPrUiERWNFKqq+u8LbFUvrgm6Qfw2vjEzjhhZNF5HnxZbCEhmh3+iDL7tBT0FGKkloIlutflvmeeZXhsU9vswcAblKJ/uaTFKmLJtinNdek1z0Fr8O42TzUDtzsG5ZUvFK4QtCviC5bsTgPKjqS3tLdUPpla0AkGImfYidGdy1nZQVBjkAePFJEF3/ByBHqVvW+qjzj8ZCBxQmf/+C84j3QwdTS04JWYRTrmNzTZ6KFukGHv75nbD5S8+70Rm/sg0hVLUQtvsteGevdrC+1VHyQxH37TcoNXPprgRQdZLVa+kJ2RsWsOu2s3ShvwECLlGa8a8VE9aPppbHl9NfsKogIU+j1Y5WLTNlQ3X3hK2y1eOZOSd078JCnzcE2zs9CZ3PPNi3IAJGBsvxZisY4AgGS0TbVgctrYoIk/XU/LbE9yHdn38216aNr+8UmJcm4Y3yGwkaLJL0BNtn74Eb/WMOy3c/oZa/IxMXLdNuCX4rCaZ7KIx4Hm27A9udi/0EUDC0tGSAjpPvyO30jvUcczS3FXgGIaYeMbXTDagoDb90mf4hY5BNjVR7VSdszq7gZYZIgXhd3nWLkThdW8VEVYFtNtJBJ/0vXPF+oa3Wurlvnf34+kQgb1ta8CYcOj3Dv5xm/PDim80E1UtNT+daeoUFY+rCgDDeTIZ3WUDJi2yX2nW1wVV8TAgtf9nqrTorI7uW+1hI/cXDsOzM8=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(376014)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	p7n6e9Oh9u6lH+QStZorANeaavRV1KQAuUlwLmkqi6UaEjxlZZLkheBkNZimDi1DQe28D5ePsCtYrCMkmXrxoQ2O3N5D+X7mNbRT23AYa/NqYph1BZyTMiMXtpeJl5EOrsmyxKCK9kmnxSGm5oTCGPR9mmudQnWb+vHAlNvqxvNaz5CyJdQASMEQ7M4a379uJbTqI6eeXjWnXevwfivwosUK/oHTriiF6vTeaJfRHJKvQYAYs6XqvzYvt7R9EcE6zgrNfLUUBI0mVEC7/hmEiwPj4GfEMPC3FmHPerWOhL5pxNED02eMFmeG5M50v0u0gcrEFo3EcH4Rqf7VuFNDpHU7ox7+fYf8Odo6RKCtusyfT0Wzbw4QbSdQ/HOyUmP+1l1FZeBBrSRQbm0EZn+TLSl2HsghaMu7Dre8c3rp7o3maThrxP3DHl4GZaF01brg
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 09:06:56.4445
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7ece4e74-363c-4a7d-1ad8-08deaf3ca6d0
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH3PEPF00000011.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6007
X-purgate-ID: tlsNG-c1860d/1778490421-B6D73DB1-B56C75CD/0/0
X-purgate-type: clean
X-purgate-size: 3431



On 11-May-26 11:03, Andrew Cooper wrote:
> On 11/05/2026 7:16 am, Orzel, Michal wrote:
>>
>> On 08-May-26 23:29, Andrew Cooper wrote:
>>> The binaries/ directory is a composition from the artefacts, and also used as
>>> a working directory for most of the tests.  If the very first artefact is from
>>> a root container, then the test must also be a root container to use it as a
>>> working directory.
>>>
>>> For arm64, the existing linux-arm64 artefact suffices.  For arm32, pull in the
>>> microcode-x86 artefact as it's the smallest available.  This bodge can be
>>> removed when all build containers have become non-root.
>>>
>>> For the qemu-xtf-dom0less-arm64-*-xen-version jobs, use *arm64-test-needs
>>> ahead of alpine-3.18-gcc-* (as it's a root container), and to deduplicate
>>> the *-export dependency.
>>>
>>> This will allow us to change containers to being non-root one at a time,
>>> rather than all in one go.
>>>
>>> No functional change.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Anthony PERARD <anthony.perard@vates.tech>
>>> CC: Stefano Stabellini <sstabellini@kernel.org>
>>> CC: Michal Orzel <michal.orzel@amd.com>
>>> CC: Doug Goldstein <cardoe@cardoe.com>
>>>
>>> We should also stop using binaries/ as a working directory for the tests, but
>>> that gets very complicated very quickly and I don't have time to do it at this
>>> juncture.
>>> ---
>>>  automation/gitlab-ci/test.yaml | 10 ++++++++--
>>>  1 file changed, 8 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
>>> index 8770c523e228..517af1732437 100644
>>> --- a/automation/gitlab-ci/test.yaml
>>> +++ b/automation/gitlab-ci/test.yaml
>>> @@ -15,6 +15,12 @@
>>>    - qemu-system-aarch64-6.0.0-arm64-export
>>>  
>>>  .arm32-test-needs: &arm32-test-needs
>>> +  # Bodge to ensure binaries/ is non-root.  Can be any artefact which comes
>>> +  # from a non-root container, and microcode-x86 is the smallest.  Remove when
>>> +  # all build containers have become non-root.
>>> +  - project: $ARTIFACTS_REPO
>>> +    job: microcode-x86
>>> +    ref: $ARTIFACTS_BRANCH
>> I don't see it being removed in this series even though the containers are non-root.
> 
> Correct.  The Alpine container still being root is discussed in the
> commit message, and is why ...
> 
>>
>>>    - qemu-system-aarch64-6.0.0-arm32-export
>>>  
>>>  .x86-64-test-needs: &x86-64-test-needs
>>> @@ -569,16 +575,16 @@ qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
>>>    script:
>>>      - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 | tee ${LOGFILE}
>>>    needs:
>>> +    - *arm64-test-needs
> 
> ... why use here is ahead of ...
> 
> 
>> This also pulls in Linux image and rootfs which XTF tests don't need. I think
>> it's much better for a test to list the actual list of its dependencies.
>> Otherwise you are asking user/developer to dig into the yaml.
>>
>> ~Michal
>>
>>>      - alpine-3.18-gcc-arm64
>>> -    - qemu-system-aarch64-6.0.0-arm64-export
> 
> ... the alpine inclusion here.
> 
> This can get reverted once the alpine container is split/reworked, but
> not before.
Ok, so once the Alpine container is reworked, we will get back to proper
dependencies list. In that case:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 11 09:21:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 09:21:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305901.1578009 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMMp9-0004jf-2n; Mon, 11 May 2026 09:21:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305901.1578009; Mon, 11 May 2026 09:21:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMMp8-0004jY-WB; Mon, 11 May 2026 09:21:14 +0000
Received: by outflank-mailman (input) for mailman id 1305901;
 Mon, 11 May 2026 09:21:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMMp7-0004jS-T2
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 09:21:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMMp7-00EFS9-9N
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 11:21:13 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a019f82-5cb7-0a2a0a5109dd-0a2a4504ecd6-40
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 11:21:13 +0200
Received: from [52.101.52.44]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a019f87-1dec-0a2a45040019-3465342c6ff1-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 11:21:12 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV8PR03MB8161.namprd03.prod.outlook.com (2603:10b6:408:297::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 09:21:09 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 09:21:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=v8Ocid7ypBnWa+O+UPXzNGn3LRSuK0EXr+kw1Mbv9wF5PSV8JELmT6VwIMCN7WgjFfam74QN0Fucc0P8wT2nno/oHvn1LH0d4UIT48VwEC1vboUG4owpqyFr2bPKShf5REVcxtAcZImeNiTAcecuSzeacJbQpaDFk9PUQnrykirR/RCdkyrsRh4+0fxZe/Qeer8ErW4yvbalNBsCkWsntTpQARl+Luv9mt7iyOFt0NXf62tOEPA8GDJeeNObqDHjnxS209Wwc+rMGLyyz0Rzmhz6+Hz21YogenobiQxIPaWWzxxYdP8RJ4cmsj+1HVkI0pHlaX7SSEJZUShNF1vh1g==
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=IO+ui3F99BmJf+gViCxM6DNbLt1cyr3cXtlyxcfuQgk=;
 b=W7VF5wZOpWX0jucHpAd/JRsWFfsYoEqKD+FGWUWrI9N7NJlF0CyVbkIPPZuM3yVnM3cGCTsG6DnKvSVp8hfy5OZtnsFefFt9gNgroEZIzxhImyJ79Xy/jQBKSxOAjII/b2cAGt0egAWKxH/BePEYGQ55gWUHDvPckNcxyY22GMPrKsZ3B0YUdgPtF/IpCV8de9ksLQwwvbtU+lAkRiOHmzVpuXxq5bCNr1YuKbRG02QJ8dobVknh03l0mO4x9Ma35xFIsH3oDuTs2qq8AMF2JZZjGz2wf1hIM3BhNwfXCEJRWgEhfiykqZbz1yCBd9eF3MiRgKy0qi8jkOkyesDcdQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IO+ui3F99BmJf+gViCxM6DNbLt1cyr3cXtlyxcfuQgk=;
 b=DSnDd5jDX1jAuhiK8Tgc0r17gaeiWBts8ExF9hfj1Cuet//WNp6iSTMOA4tkFGW3Nl/nW9qzIUyPhLDyhd8R/V6s/WVwbkbtea599FDLpLt9191z7X7dL+wic4TLz3lUS1HN5+14fG5x0kaqAcnacdbqzKnWWTg9WOspakrGJF8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d1037e15-cde7-40a1-9011-a02c23e870e8@citrix.com>
Date: Mon, 11 May 2026 10:21:06 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH 4/5] CI: Add a Debian 13 (Trixie) arm64 container
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
 <20260508212907.1643761-5-andrew.cooper3@citrix.com>
 <249ca124-b144-4c50-a0fb-3c0e6db5a1ca@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <249ca124-b144-4c50-a0fb-3c0e6db5a1ca@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0227.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:b::23) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|LV8PR03MB8161:EE_
X-MS-Office365-Filtering-Correlation-Id: 5277e973-31f7-4e8b-0d55-08deaf3ea35e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	SLI/Om9qoJTN/npyqYiPDV/R2bwAjHxDeL/U2pyaQnfZM/eZ7GPxoiwNiQH99xK0HFxArqoj/ySyRjGdCuJuRG1rUUjw9mm/8m5bX+Xo9lBhgcCe7nwUNdVWjh3n3KciQYtUK/7f3fDVtlvf5/uBUPEx7BgBEt0MZY+VV8VUAip3bD9u/TnjfYMLfC7YEv47k7/uoPinVqsa5pSGsxUQs0yP4V7gqjCBs5KH7FoYtuaG6GJWmqwl8utWozlJphvZeHCkhLudHHUmvELrs8WzXNxMJMkCDe7HPLUndWdjil7DC06MJ1T8+QJO67GeFEp44xh336zlo1166tgGGk0bqSM5BTWxI7lQrEnOTmcAxzy2UjbEvsKDWWIroG/mYAEutF93GinZIAbixxiv3Bu5pEX6kFtDckzrvGciVsQJme5rLBMO0zUkKrIHCX9GjYBfZqpNXm9f3atRqq5wlcw83kA7GP9ekx/oLmOg2+BUn8AUkSlLKE3Xqr4Axh857MWrnthzaav24G+2pjcJx8sNq/1nX2U1jUCWCNwuEvnenYxgvqG/1xndMf0nCvhbWhWo+SI35DyDOAhNMbG7uaC4pJB97FM6F3X1DTJsLVvnPfH0UrlRhea2mfmlaDkxgmP2eA9NCJZ5sTiwUHIfA/KCJ5oeU0HHzXsRizMMKqSNYTIYDoI99eyzJLU4gGp0Rde2
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RmtHenV1a2pBRDZsRG1tdTZiQmwwUVJHeFJETzhqUUV0ak1tWDNzYkRKQXI3?=
 =?utf-8?B?UUhvYVo2M3J6UjNwUlZtM0Y0ekNVOHVLNlFOaVNzT0pwTjEvc0pJUmEzWmo5?=
 =?utf-8?B?UUliVVZ0Z1RpdG9UTHkvSTR3NngyRk85SWtadVEvMTdqOXhYdU0wWUlUMTlJ?=
 =?utf-8?B?M1VhdlhFbXp2N1V3Tk9pWFRmRG9Pc3pMVXpUNVhYVVhxMFlRUHg4R1FkSk1Y?=
 =?utf-8?B?aWtHbE5xaEo0MklKQThVT0dHZ2JNL0lIbndjNTdoNXBITVBaU0ZES1orWElP?=
 =?utf-8?B?Ry9QU29RMVVBVWQ1cGZtblhUamRCME0vS2NRTlVEOUhmWi8wWFFUMU14QVlR?=
 =?utf-8?B?U0FTQUxYNUJxcnVrQWJtOE92NEZqbnhZSjVjZDd2WXdmTWFuclRET0VNb0Zy?=
 =?utf-8?B?ZEdBK0tKSnU0VThOZ2pXckEzeHpKaUlUamxhQ3pJK2FYTklsL0cvMGgzY3FW?=
 =?utf-8?B?Vk9MNjB6QUQ1WFJRZjNLdGdET2loeWI2QnZjWlAvYkhTNkIvdXpBazZUdmp0?=
 =?utf-8?B?NkxtQm1DakRwUUtUZjlKLzRiRjVpdUFzMmNRVktzZUpjV20wRUNBY3g4TVpm?=
 =?utf-8?B?OUJxSFhJaWNmM3hhb3hVRHNMODdwbzBSV2grMWl1YnpBTDZidnlOZmtOQVo4?=
 =?utf-8?B?Zy84V1A1T1JLcFllTDFxazNuN0ttZ3ZOKzV1OE9YNVNES000M0V3RnlaZ2E3?=
 =?utf-8?B?RFlqZDFucmFsQk1RUXhIR3lFRzd2Sk9TVjZjc1AyWE03VHd2eHdPTzBJdzVX?=
 =?utf-8?B?N3ZJd04yQTFOeWhpNW8weTRlYlJ2cXpxNldKTmFRTmQ4TTNxcitZNHA3Nkpp?=
 =?utf-8?B?VGtGSFFZdTJ5YUIwYWhqWGRQMmF5Um5WbG0wUnA0ZHV0RDRzZllOREtYRVNP?=
 =?utf-8?B?TmM2Q2RGOXBEdVB4VHlqYmprNDZab29XaVVoL0VQWEljT2pKRHpKTkhZQ2xy?=
 =?utf-8?B?WmI3YUZSc3V5SU5yWmtKRnRUMTMzMm1yd1N0dGhqbXA2TVFGVStXS2dMeEdy?=
 =?utf-8?B?TytIODNXakU2ZWsydUtaK2RZb0IvbmpzZUM4bGZ5L0ZLbnIrQTBPY3hWdGdL?=
 =?utf-8?B?ZXBBY3J3QVhTZ0NVL1kxWFR6ek8velJXLy9UNDdKaG5XU2pZZXBOQjBGRGdV?=
 =?utf-8?B?eHA4ZDVEK1VhSVo4cXFiVS9zZCtPSGsvekFRanJxVWNTSkZCN09HWjlrcHdM?=
 =?utf-8?B?VjduaUYydldBZW0vN1lGM3V5dmMvdDI2N2IraDJ0UThkTTFPK25NU05YNnFO?=
 =?utf-8?B?NUdHaWF1a0JoUUdHelhhd0FmVzM5RFZSYy9jMUlCMW91WmhrYUk1RDNVWWU0?=
 =?utf-8?B?Mzk1elpxc2JLRXh1UVoxOTZUMEczdHJLdGhzMVlrS3lwOHBvbzdVYWlYOTU4?=
 =?utf-8?B?MTErdk90cWh0N3FyMnY1emNBL1ExMktlYlh2TjZsV1dIV2VVRWd0b2M5Y1ZE?=
 =?utf-8?B?aldhRms3VTh0bS9KUjVHM2orUk1xalh2VHV0YVQ4TFYydGNLbXBBc294ZjhG?=
 =?utf-8?B?NlY5YUVVZzdrVHZEU01nM2YwOXFZaHBOak9ac0JLNTVvVlRZV0JrRG9ZNVlD?=
 =?utf-8?B?MEJreVcxYkZCVVRGdG91a3hBZDZKaE43dHlERGt0QkJUbjRvdDIxSHgwUTRy?=
 =?utf-8?B?VVhBK0hXZzlra25CWnZuVDg0Q1l1Q3hFSDdtMnVVdDFKOEVDTUwyY0VpaXRL?=
 =?utf-8?B?OTJtM0lSWkZLdGJmYVB6bFF1NVVLUGRoTEJXcVJURXZmSytxc0tqc0JwdFpL?=
 =?utf-8?B?UElLYk84SzRBTTNWajgrc1FTSy84RVBJb2Y4eUViOWZLNzR4UUkyNllUWWRy?=
 =?utf-8?B?dUdLYmp6M0FuZ3lsTjV1SkpoRmhBWEQvd0NrckVSbTl1SWFibDlzU0R6TGNw?=
 =?utf-8?B?N01GY21wb1BoNk9XaklFZm1sdUpreGV5VElJYnRVS1BGOUREZmpJTUdIenNw?=
 =?utf-8?B?cGpRTXFPcUZQRTJudWtpVmlnMGJpc3Z2bVFwTXVUTUJYSThRdHFLVHBuS1Bt?=
 =?utf-8?B?YUoyWEtFdUpYU3g2SlF3K3BydnFyb3N6MEdZYlZxenVQY3JKbE13SnZhSmZM?=
 =?utf-8?B?MFFWeTl4dGJzdXVwWVgyQ1dXelp0K0ZSUS9rYm1CckZ4bnRQaVFRN1VpYXo5?=
 =?utf-8?B?SldCS203dWhqNFJZS09GZjV3RjBIUFdYRisvbHVJSWlRMzh1R2pLMzNQQ1o1?=
 =?utf-8?B?YktwRlptL0ViOEcvZ05DWEVtV0wwU2d1L0xzemlzTm9VMGRLZTlMWWltTkE1?=
 =?utf-8?B?SXFrZjVJN0pSVHZOTllYdnZmRGlZazRTbUl1RzhhaHcrLzRzTHhWazJYZkM3?=
 =?utf-8?B?NHRFN0pQS3puQ0laYmRwbFh0Sy83UkU0cE1Xd1htZCtyU0J6UE5kRGptRDhM?=
 =?utf-8?Q?PmoYYWf5NGDck7vo=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5277e973-31f7-4e8b-0d55-08deaf3ea35e
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 09:21:09.7610
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: orkIGkU0gu5xexLRwo3IhTDTuaKMKq0cBR901OjC3G2TNb/KvYzDOxOMSY52br8jXi0AnLEblj3EqQ8jX7/uoNyPJ/zaqcv6X8fAH35i7vc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR03MB8161
X-purgate-ID: tlsNG-ebf023/1778491272-40D743FF-BCB50EFE/10/63158204843
X-purgate-type: spam
X-purgate-size: 3751

On 11/05/2026 7:29 am, Orzel, Michal wrote:
>
> On 08-May-26 23:29, Andrew Cooper wrote:
>> Exactly as per the Bookworm container, but additionally with the ipxe-qemu and
>> qemu-system-aarch64 packages.  These will be used to remove the export jobs.
>>
>> Switch qemu-arm{32,64} jobs to use this container.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Anthony PERARD <anthony.perard@vates.tech>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Michal Orzel <michal.orzel@amd.com>
>> CC: Doug Goldstein <cardoe@cardoe.com>
>>
>> We should probably wire up some build tests too, but it's too late on a Friday
>> for me to be thinking about that for this posting.
>> ---
>>  automation/build/debian/13-arm64v8.dockerfile | 71 +++++++++++++++++++
>>  automation/gitlab-ci/test.yaml                |  4 +-
>>  automation/scripts/containerize               |  1 +
>>  3 files changed, 74 insertions(+), 2 deletions(-)
>>  create mode 100644 automation/build/debian/13-arm64v8.dockerfile
>>
>> diff --git a/automation/build/debian/13-arm64v8.dockerfile b/automation/build/debian/13-arm64v8.dockerfile
>> new file mode 100644
>> index 000000000000..b9062ee8b443
>> --- /dev/null
>> +++ b/automation/build/debian/13-arm64v8.dockerfile
>> @@ -0,0 +1,71 @@
>> +# syntax=docker/dockerfile:1
>> +FROM --platform=linux/arm64/v8 debian:trixie-slim
>> +LABEL maintainer.name="The Xen Project"
>> +LABEL maintainer.email="xen-devel@lists.xenproject.org"
>> +
>> +ENV DEBIAN_FRONTEND=noninteractive
>> +
>> +RUN <<EOF
>> +#!/bin/bash
>> +    set -eu
>> +
>> +    useradd --create-home user
>> +
>> +    apt-get update
>> +
>> +    DEPS=(
>> +        # Xen
>> +        bison
>> +        build-essential
>> +        checkpolicy
>> +        flex
>> +
>> +        # Tools (general)
>> +        ca-certificates
>> +        cpio
>> +        git-core
>> +        pkg-config
>> +        wget
>> +        # libxenguest dombuilder
>> +        libbz2-dev
>> +        liblzma-dev
>> +        liblzo2-dev
>> +        libzstd-dev
>> +        zlib1g-dev
>> +        # libacpi
>> +        acpica-tools
>> +        # libxl
>> +        libfdt-dev
>> +        libjson-c-dev
>> +        uuid-dev
>> +        # xentop
>> +        libncurses5-dev
>> +        # Python bindings
>> +        python3-dev
>> +        python3-setuptools
>> +        # Golang bindings
>> +        golang-go
>> +        # Ocaml bindings/oxenstored
>> +        ocaml-nox
>> +        ocaml-findlib
> Since this is a container used only for tests, why listing packages required for
> Xen and tools build?

I did leave a note about that.

>
>> +
>> +        # for test phase, qemu-* jobs
>> +        busybox-static
>> +        curl
>> +        device-tree-compiler
>> +        expect
>> +        file
>> +        ipxe-qemu
>> +        ovmf
>> +        qemu-system-aarch64
>> +        u-boot-qemu
>> +        u-boot-tools
> So after this change, even though you replace debian-12 with debian-13 for all
> the tests, the debian-12 still contains the unneeded packages (i.e. for a test
> phase that it no longer runs).

Yes.  I can't do this series bisectably without it.  Also, in the past
people have explicitly requested to be able to run the qemu smoke
testing from the build container, which is why it's like this and not split.

Honestly, I was hoping to leave the Trixie update to the ARM
maintainers, but despite the Bookworm QEMU (7.2) being newer than the
6.0 in the export jobs, it contains the SYSREG interception bugs which
prevents hiding ThumbEE from guests, and breaks all the arm32 testing
with a Linux dom0.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon May 11 09:35:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 09:35:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305911.1578018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMN31-0006e3-8U; Mon, 11 May 2026 09:35:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305911.1578018; Mon, 11 May 2026 09:35:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMN31-0006dw-5t; Mon, 11 May 2026 09:35:35 +0000
Received: by outflank-mailman (input) for mailman id 1305911;
 Mon, 11 May 2026 09:35:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMN30-0006dp-Ia
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 09:35:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMN2y-00ACPl-WE
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 11:35:33 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01a2e3-2eae-0a2a0a5409dd-0a2a4508d342-16
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 11:35:32 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01a2e4-63b5-0a2a45080019-d1558029e161-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 11:35:32 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-488a8ca4aadso37066515e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 02:35:32 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4549217b782sm21661807f8f.35.2026.05.11.02.35.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 02:35:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778492132; x=1779096932; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TpRIYyL45g/Ev+vsRJmEdxkEyRfmCX/rb/JlC6C5ZYI=;
        b=IZmShz84aR/xw4PVYObUx+cVbnaEXgdfiJGO9Qp/20gdg5pizNvv1QuVOaW4+rIsw1
         S+FLhkFqvnQC0wWOqjRa9TazcW4/99iywNPF0xY/DZCFGTx5WCqAYF7yqGHGENT2aY9/
         3UZig9IqdZVrp2RUtm2Q9lpAPL7AK3Yna/m3a/q2vch4nOa3+NEqt89Ji1sgjkKVqpPB
         tdFaRrMYiAnBrOjk6eqhWEUBHIS9zdXW+Bda5MWbZlUKjZZ4NeoIgTFl1VXhsqxZ2/rr
         xm7zfY7DzspoOU5f/xcl/3UeyIJ3m373CHoOE8Br9TGGUlxsiC2iGerO2O2HaPY/C8BW
         ANUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778492132; x=1779096932;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TpRIYyL45g/Ev+vsRJmEdxkEyRfmCX/rb/JlC6C5ZYI=;
        b=Vw+KNBgqs7SOPFEIR2tLIR9ZEQ9ElMR4TFoGMTWo+MfdGQm4vZicYQfU2aEI6VMzbC
         C1QkIrwHELTym5Z851LBPtfMzeTsEPjTjY01v4aKcz3LDCLzVqg9g93qyCApG1Q6IPXx
         BpqDUApqJuHJhRQaTlTUZ4EKCh0xH9tr5OpnYUN1It8SSPEo1F9XoAyhb1a7cqIMZMfP
         3q81Ere6uOlSFSkerhTNX2p/I17Jor7bKfXEGAoIAuOD/QXHy9JZK6MRcXKHxbNTmLNu
         qIPb+mgItBNjjAirbO/RUCoxK53QhkyGOM8kpd/WfVKL3m+vUyLA0m+xwjlDi4Tz2xEZ
         id+w==
X-Forwarded-Encrypted: i=1; AFNElJ9KjKOBWjX4lsXosRQdH7PfVLznsxqxaDJQUya2R0hXGLpYhir4ls7h65I1br2hRn8lEpH4fgyxfik=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyBYZBc+Q3utVwNboSBhLXdwCwgAokw3LmcHxq+kcvNp3Oy7Kwu
	OyYZsBIJgBQsy5bXIhob3/AEi26ko9oXDjGtr7Z5iQ7dqF81ArXIONNuN9KhiWcQMg==
X-Gm-Gg: Acq92OEAXX6cuNNY4MrxuwZ1FeVHj5kvIeXC1j3hDkiPG6W/2G+8mRkdQGcAMSdOdO5
	qPen9q90t5XTZhO9u5yubNZT+JkCNi9py3uAj5guv8l+/U7ja8/G2AhI6xQZNLhrS0vm2XrG8k2
	gCPNpv/FWAvnChm9Kl8SCW1bgLJE09SAWzeqbC9AjdhT7HIudf/r79q+5f0mxv5Zt0EgA3N/GqZ
	RwFgrRXCbAPqVOkCxlQlS3orwTX1mkBg+85Hzkc1KumzIdn9uSLeJgBFaEwTTSwC+k7k/hpHo88
	SrhFsDi3oORudS73Tog+pGzZbchH0DiYPUT+ofP5VGBgEFDkEUhoTlt8lUcYN5s8Z43NRFiZmcz
	h4JxVJrFh+ZidCPP4ggrrZs83JLEPFfseHTGFc4wcEGVSWZBKlXvK/PjrF4k9kBRoW1RUx+idSl
	GZJ+kfSDO8t7GnXH/nSVuOEXxsLzJ+WbLagUcr2I/wLMssDZ0dIAQGk7M9K8SMjWRH6xOE/nSv/
	LUTExyzPn3GAosTSrxC3jfRPw==
X-Received: by 2002:a05:6000:144f:b0:43d:7c1b:b8c7 with SMTP id ffacd0b85a97d-4515ce1c951mr38106473f8f.21.1778492131951;
        Mon, 11 May 2026 02:35:31 -0700 (PDT)
Message-ID: <d18d7536-99a3-4680-af55-316e64b9e01b@suse.com>
Date: Mon, 11 May 2026 11:35:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
To: Luca Fancellu <luca.fancellu@arm.com>, Harry Ramsey <harry.ramsey@arm.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
 <20260508143353.3512004-3-luca.fancellu@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260508143353.3512004-3-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1778492132-BED73DB1-3A8411D4/0/0
X-purgate-type: clean
X-purgate-size: 1316

On 08.05.2026 16:33, Luca Fancellu wrote:
> --- a/xen/include/public/arch-arm.h
> +++ b/xen/include/public/arch-arm.h
> @@ -330,6 +330,10 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
>  #define XEN_DOMCTL_CONFIG_ARM_SCI_NONE      0
>  #define XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC  1
>  
> +#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE    0
> +#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA    1
> +#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA    2
> +
>  struct xen_arch_domainconfig {
>      /* IN/OUT */
>      uint8_t gic_version;
> @@ -355,6 +359,8 @@ struct xen_arch_domainconfig {
>      uint32_t clock_frequency;
>      /* IN */
>      uint8_t arm_sci_type;
> +    /* IN */
> +    uint8_t v8r_el1_msa;
>  };

Can you please take the opportunity and insert (and check) explicit
padding, so that the next uint8_t field addition won't require ...

> --- a/xen/include/public/domctl.h
> +++ b/xen/include/public/domctl.h
> @@ -30,9 +30,9 @@
>   * fields) don't require a change of the version.
>   * Stable ops are NOT covered by XEN_DOMCTL_INTERFACE_VERSION!
>   *
> - * Last version bump: Xen 4.19
> + * Last version bump: Xen 4.22
>   */
> -#define XEN_DOMCTL_INTERFACE_VERSION 0x00000017
> +#define XEN_DOMCTL_INTERFACE_VERSION 0x00000018

... such a bump?

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 11 09:36:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 09:36:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305916.1578027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMN3Q-00071z-LP; Mon, 11 May 2026 09:36:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305916.1578027; Mon, 11 May 2026 09:36:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMN3Q-00071s-IS; Mon, 11 May 2026 09:36:00 +0000
Received: by outflank-mailman (input) for mailman id 1305916;
 Mon, 11 May 2026 09:35:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMN3P-00070M-57
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 09:35:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMN3O-00ACdq-I7
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 11:35:58 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a01a2f3-2eae-0a2a0a5409dd-0a2a4509caf0-26
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 11:35:58 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a01a2fe-2497-0a2a45090019-d155dd2cd4c7-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 11:35:58 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-44985f4ab0fso2286058f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 02:35:58 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4548ec6c221sm25032697f8f.13.2026.05.11.02.35.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 02:35:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778492157; x=1779096957; darn=lists.xenproject.org;
        h=content-transfer-encoding:subject:from:cc:to:content-language
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nsTmKpDELRBTxsrDy0RJiIm7lTKfkE3CaovSEAq1Zvc=;
        b=b3SW6mzbxy6p34NQ1XQxJJP5Ie8iVrc2Q6Vv9XX5rxPeiQX9RqiDQChZFptQovdsSL
         PL9CzGQIbq1vMmnPruzEiKw4rBLSXyGQnu5jLhD25Nsj3TxbNfQgeEDocAPnY2h7Frk3
         Ll7LNezNt8AStxrHmiHs3XyJiYXxswQEKFHNAJUM3E2fYthxKA9fNlaK0BbXkH5b69eo
         3g+VRfA0ce2/DRjWcbsv4O8B5VVeAK6954VhmybtKSkl+Mcdyw/N3getpa8IFeCK5u5n
         jPMkcK/Dh4Jigto0IluGyCt6q+mqky0Oq0m+g+N6V1o1Sa8wHZ/fzXoKHF4Moe//wGtm
         5gMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778492157; x=1779096957;
        h=content-transfer-encoding:subject:from:cc:to:content-language
         :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=nsTmKpDELRBTxsrDy0RJiIm7lTKfkE3CaovSEAq1Zvc=;
        b=KHIJcS+fB2aymJXlNdbNZEIN4wMCDHBLbO6CRgem0PeWDWiWVj2FLrys3FFaWFSiNu
         z8L//sqbSj5SQwkW8SAig7hcHDpb4PATeIMFVh0+cGo0X3qa65z73vm9b1qsYZ4+c+zg
         NEcRF/r57SF6dwDXomyuNnP+vJGibTFsnu+vGe1Pa2N6LE0X7vNmZNTUxC6pZNixNSMv
         DZ3zhTOqrS8x6dI6xWmm50LCh5gAj8WsT8oCvBIUjCSqksqNSy5KL2Tmv9gCgId3GJ5Z
         5Tnb2suRxvE/3C0G+DNzFYziayFdH2TmgzjAr5D4Gfa3RXZoJ5HDCnuq0RyY7qnfmHDD
         THZA==
X-Gm-Message-State: AOJu0YxP/ACoqpbL6lLgPW1iit/5ergflAIomEpts8McPLAIFzQ9N7M4
	V7aVJSLmSt71/ohPK1a2qhzjLhetwm1XiL33iwyMIUwvnAxI6vrb08ubDDiV+w==
X-Gm-Gg: Acq92OFjXZ4ZVIxznHpPoij/pp5g40Wv+DTiNnAxiHIY7pbmDXTweTy5r+dcHTwpatD
	Wf2eHbb8+RVExMb4oPq4McZixxuqHJBRy/UZJimn7qCvkA79PFEb5q7ZjP01s0rmtYM7wZRw3jE
	1CPxGWox5z1YOkTdBPhiuqDvj5sIf7zaA89fcsTLDBvBh7ZNehbsXswsHA4Z5rndqXY5rfTt583
	ll5BAb7iKpaud9QF4xkGk8K0ZdKBkbgX7do4UzQ6CZmIRLpuydqMhFoIFwm25/N5EXcNwKU5BOo
	rMWGiKnyDobdlGHENHcx2+95HiP3fXflQdisFGyjU5Qgx1ASQtwyfQ33RK1klm2abVTGwg0D+Ns
	Zu9JOuh3R0pAjCBbN4WG3eEu8WnbOK67CVhZUbRWJQXTE2EViJH7IoQpvsQyHiyTzjyr6uOiw9T
	8W641udoBFSVnVO8V2ghyMiGm9d7R20IWIc+oP0hD1Qd9a4GtV6WBhZ0rrp8Nj+f1KLX3mni9+m
	YwbylZbzlTk7g==
X-Received: by 2002:a5d:5f47:0:b0:449:c1e8:7655 with SMTP id ffacd0b85a97d-4515cf125bbmr37422969f8f.27.1778492156913;
        Mon, 11 May 2026 02:35:56 -0700 (PDT)
Message-ID: <e21070ac-3a84-4ad7-a4d1-9178d89c1435@gmail.com>
Date: Mon, 11 May 2026 11:35:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Code freeze for 4.22 started on May 11, 2026
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1778492158-8AB8EA53-54B3D33D/10/73395122804
X-purgate-type: spam
X-purgate-size: 278

Hello everyone,

I would like to inform you that Code freeze period is started and will 
be until Fri Jun 05, 2026 (+4 weeks from Feature freeze).

Bugfixes may continue to be accepted by maintainers without R-Ack.

Thanks in advance. Have a good week.

~ Oleksii




From xen-devel-bounces@lists.xenproject.org Mon May 11 09:39:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 09:39:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305933.1578036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMN6W-0007ud-3X; Mon, 11 May 2026 09:39:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305933.1578036; Mon, 11 May 2026 09:39:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMN6W-0007uW-0i; Mon, 11 May 2026 09:39:12 +0000
Received: by outflank-mailman (input) for mailman id 1305933;
 Mon, 11 May 2026 09:39:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMN6U-0007uQ-SL
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 09:39:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMN6U-005lBz-9L
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 11:39:10 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01a3b7-e002-0a2a0a5209dd-0a2a450cc314-42
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 11:39:10 +0200
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01a3be-62f1-0a2a450c0019-d155dd33d5be-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 11:39:10 +0200
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-43d7645adbdso2175959f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 02:39:10 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4548bb51d40sm23488806f8f.0.2026.05.11.02.39.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 02:39:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778492350; x=1779097150; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=O48vKOkh4FXLBWarD/c9ETg3W1blsY9p5bn1qnH/PQc=;
        b=Kkp4VXNL1QeSCctcOyhtSAupN25l+crJg4AMWs2xQd7fOq0s0e0tS5l7jk32tbi424
         /bav1lTy2FPapHJARj4U2GWIdjermcVYd4bEgn6CtGvnXjEIiz70l5HVa1DYvNCpry++
         HhnQrqb5v2oBg7W59QKGEJxfI3cLdgjY83B4+JQAwm69kHJF/0kGegF8XcgjuCWPHA4O
         l8kE7GBkPqEeXvwDkegEBtZY1F+6QcyZmtERufmXc1xyE3rWp8Gzyhb4ralZ+x4jzpDp
         y4wK0+76O5wejatwyQN8C2jFu4hD1hMBr7I8UIVXztyC/tDKGvxiy0zYBVGe26iyqnbA
         3PNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778492350; x=1779097150;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=O48vKOkh4FXLBWarD/c9ETg3W1blsY9p5bn1qnH/PQc=;
        b=XR7pIWhZzOSaOM6pyCMVwy82sj7NvU3WIFM2lMs/Ontx46UWHv1yH+tsfVDDHKj0cQ
         v6rHN+RiLlmWY4pQ2Hmt2Q++uqQyyccadb24bFOz4yOLfgvlg8pblJdULW7a7B2alJsx
         pb8OPQkof1bdxc1c1V5YQUDbviW4Jrrcy41qsfpO7eMqCVh7V5PMuigsJT+emRp6YTds
         cL04twqu7gFR457Erds9h3TSUS1gb6rBfyWimXLeOVc3pzdz++5jhS7/apSd0ueJ2xSz
         kZhnpH1TDy6oouyfAyHctoUEXYdwoWhXmaQ4HIwoPHKQP/BgZTXKAFb5fMzf3bM3JAF8
         Vd1w==
X-Forwarded-Encrypted: i=1; AFNElJ/gG2BTYaTTweB0Mo/SFB79BaCkaSr1692Ynl0Siy210oWeTXkmsPp1OWoxdeyiEINMZFDUpjnXzAU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxDJu4Omx8UO2Laz1ltmCsdooFM7Y4e6HWVzcmqoAC5sVtba0l2
	HHqb9D3J7oPxeDlTJ995gH8nmeqB55Kv2e7+jISgevbGx/u2rrlARzefeLqCda6FOQ==
X-Gm-Gg: Acq92OGgeRAf8VBGMMp1xj0YRDtn4j7Os6sDUBXqw/3un4nDExhGKadUk3Mb7ngwN4m
	VpWG1Jmz5FeiWPQlkOtIdkESkrQRj0/qTwSXA9KmSd/jD1e4kYO5mjJJlHjSFIhlG/cuQE5KAj2
	hmCi65J0WIxKUkWtLVwRN7EbUaCn+66beGeg5L2xgLhGGrPKIB51CMb38RF1pz5xSrl9KYixWAq
	v/5CuATdvU/noZhBrCVnI+OvMpPfhyKqg0ockB3/5+Dv/1P01TBLwc+cO5RQ6w4/a1UfvpvXiuV
	R8NMOOZ3RcTfPplgHvdfGvY+oeFeVIbAxCqGm8tYY64Py4u9YaY+IICP/iWg7I+m4qhXPbX0fm3
	AF58ujLSm0rafF5og9QoUcdc6xXNXSw9811J1y2oKEXTOGnNOFyZRaR1b3BL8hQJoj8YuazQwJI
	e9f1mXz8l8kluW5kH9qH792RwYb+i3RFwa05mgWUYigX884zKRh8u0izFvWgo02Hkwskm5FdMXm
	IFLgTiCKjrZCyVlSV16ZIwFVQ==
X-Received: by 2002:a5d:6942:0:b0:452:2bb2:9dbe with SMTP id ffacd0b85a97d-4522bb29e31mr25210913f8f.1.1778492349473;
        Mon, 11 May 2026 02:39:09 -0700 (PDT)
Message-ID: <b60c1209-fdaf-4e9a-b93a-878a3aeb64fc@suse.com>
Date: Mon, 11 May 2026 11:39:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 3/3] tools/ocaml: Add OCaml binding for NUMA claim sets
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: Christian Lindig <christian.lindig@citrix.com>,
 David Scott <dave@recoil.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Christian Lindig <christian.lindig@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1778272036.git.bernhard.kaindl@citrix.com>
 <10726c7afb43856a1014c6b6e24700442ff8740e.1778272036.git.bernhard.kaindl@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <10726c7afb43856a1014c6b6e24700442ff8740e.1778272036.git.bernhard.kaindl@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1778492350-DB97DCF5-304221DF/0/0
X-purgate-type: clean
X-purgate-size: 693

On 08.05.2026 22:27, Bernhard Kaindl wrote:
> Add an OCaml binding for xc_domain_claim_memory():
> 
> - tools/ocaml/libs/xc/xenctrl.ml/mli:
>   Add claim record type and domain_claim_memory external.
> 
> - tools/ocaml/libs/xc/xenctrl_stubs.c:
>   Marshal the OCaml claim array into a xen_memory_claim_t array.
>   Map nodes of -1 to XEN_DOMCTL_CLAIM_MEMORY_HOST for host-wide claims.
> 
> Acked-by: Christian Lindig <christian.lindig@cloud.com>
> Requested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>

Nit: Chronologically order tags, please: Christian can't have ack-ed
this before you signed off on it.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 11 09:41:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 09:41:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305939.1578047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMN8r-0000wM-GK; Mon, 11 May 2026 09:41:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305939.1578047; Mon, 11 May 2026 09:41:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMN8r-0000wF-CM; Mon, 11 May 2026 09:41:37 +0000
Received: by outflank-mailman (input) for mailman id 1305939;
 Mon, 11 May 2026 09:41:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMN8p-0000w9-DP
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 09:41:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMN8n-0044AH-4x
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 11:41:34 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01a430-5cb7-0a2a0a5109dd-0a2a4509894a-46
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 11:41:34 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01a44e-2497-0a2a45090019-d1558033b105-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 11:41:34 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-4893940bb5eso24218605e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 02:41:34 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e7040a9a9sm300943895e9.9.2026.05.11.02.41.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 02:41:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778492494; x=1779097294; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=n/f9AUUPGmipxjgK19TT0cQ/OJNmx4x1CYlAHdHnG24=;
        b=alE5gjly2wpiXDV4NAQnyQkdCi7k+0lN3InA9kjl6rhe/0DFVIaKw26htc7kioL2qf
         hqfgh8SKYiwAEWFLhx6BiA9I3ugeXg+pvxDU3no1vSDUb/f6b3LycnKXYcb+kdmtJ5w4
         Xyp7q9J50RagJ8g5Z3QE+9dVAWeLDN3c1NufUb6hT9jJavtha1oxc5yym0/meGspXgTC
         SA2HAX52LPHmQFGTPiec40rGI16aDnEcEsl7klq1bEpXXITJM9hVnAW8Z8BL7ZzMjPb5
         tAEHO+dLYAUJ6flAWxEW4yj8ddWeMBUL09Ezi7NyrFP1zHdPzUPwA0oIFi4wFymlrdtU
         duJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778492494; x=1779097294;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=n/f9AUUPGmipxjgK19TT0cQ/OJNmx4x1CYlAHdHnG24=;
        b=e6YvwNPGIPRrxEBYkHOfVGWjk6itxkADl5TuYenDDgbiLRwSSrlbFe+P6GvLknQ3OB
         R7mPergkgAa97qlYIV/cZI70VjTa1Crhq6kuz+pa1GxZuojpADNU2sWy70WmWWK+NJ6T
         Fp4EixtKI2nbjLNWyk4FrpcDKzfR9KdnTlWru+9WGqty1TnGmKu4a12KesR1SEmNfZhj
         f1X1uJxt9Fygp4lbL7BBWUDNmCMHljcO8YBZ2wASZ6I2Ka1+HUBU5fC7zgTrFIQXfuDg
         9m1E9uaTqWyvWPwQdYvolCfo7N+JHqqd/QnIkVh5JPNAWwkV13o0UpcZxUcqy11xbGdJ
         ejuA==
X-Forwarded-Encrypted: i=1; AFNElJ/eTO73bi/iYbn22ITO3lQGSyZRwCAb2nO7CNrLxfZ3v9RxW285zLON7K4C3PacO8kyHiaAVfRhoc4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyteRU6FQ30Yd/WfNsU/Ml5rsAO4zEjUQrzWkUOX+ZEUjcXfcc4
	AOeLMFT9FiJ3sQxIgN2KgssKU54cWLipGloH0rQ90Q9GQlVTH/1lMXd0cd8T3Z2xlg==
X-Gm-Gg: Acq92OHWQuLA4EMgSuolTFYR/41/+/DK32qrMy4HuhgTBIDmRpMbXTG7bMOJ1lO2G4s
	0DmnFng45t5c/tzIQtVpnoDCZ8H2dqIdRzBij40iqhYYmh/WILOo9IJalb5V7/APIUbyAaVnvsw
	S/fqjguTnoY+Bc5PQsL0ar8K/G3AHgfs91kPXU8AuJVuBHiU+hoKJQxQ5XoA0SChPQngIVZClPN
	lM6l/oJmNnD3x1Zvqb5s7oi5gxhkK4ffRvzAu6vrp8r7Vuw8GMAk9dwJU90mceyypizva3rslYo
	q0a5PS44dGlx8CDxspy0uQC97reIeSblxVIsatguM/P7c20AEbm0XmL8yRDEgnbBI9D7q+dQ0BY
	Ba1gmmoyOd71a5Pb5yOdrFbyzdFGPbzPgboJH8Uflst39hXA9wPBU8ZExpRyltBiBNr6G5IKpEd
	UsVrF72pdrpCyIrEWzYONSJJqn59hNUf8v6qfTGaf9PSoldBBUR/HzuSLDlyKp7v78Nd2kLP2A7
	4oduZ2Ha5VDAZI=
X-Received: by 2002:a05:600c:8904:b0:488:a916:14a8 with SMTP id 5b1f17b1804b1-48e6767ddf9mr150619235e9.10.1778492494101;
        Mon, 11 May 2026 02:41:34 -0700 (PDT)
Message-ID: <2a6117e6-e458-4818-9c22-0c356982eb59@suse.com>
Date: Mon, 11 May 2026 11:41:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Code freeze for 4.22 started on May 11, 2026
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <e21070ac-3a84-4ad7-a4d1-9178d89c1435@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e21070ac-3a84-4ad7-a4d1-9178d89c1435@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1778492494-8A589A53-FD705782/0/0
X-purgate-type: clean
X-purgate-size: 541

On 11.05.2026 11:35, Oleksii Kurochko wrote:
> I would like to inform you that Code freeze period is started and will 
> be until Fri Jun 05, 2026 (+4 weeks from Feature freeze).
> 
> Bugfixes may continue to be accepted by maintainers without R-Ack.

Gives me context to ask right away: "x86/mwait-idle: sync up with Linux
7.0-rc" has had a few small adjustments and hence would want re-posting.
Question is: Does that even make sense at this point, i.e. would you
give it a release-ack despite it not all being bug fixes?

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 11 10:00:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 10:00:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305952.1578055 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMNQh-0003dg-TA; Mon, 11 May 2026 10:00:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305952.1578055; Mon, 11 May 2026 10:00:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMNQh-0003dC-Q0; Mon, 11 May 2026 10:00:03 +0000
Received: by outflank-mailman (input) for mailman id 1305952;
 Mon, 11 May 2026 10:00:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMNQh-0003PO-8x
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 10:00:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMNQg-006U3W-6y
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 12:00:02 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01a890-bab6-0a2a0a5309dd-0a2a45028a90-44
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:00:02 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01a8a1-af86-0a2a45020019-d1558029d935-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:00:02 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-48e82c23840so6070855e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 03:00:02 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e701e957asm176120265e9.6.2026.05.11.03.00.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 03:00:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778493601; x=1779098401; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=HVd9iugrtUDUjoruVF6GpRXRAR1XLlPcsH6axxeJ14k=;
        b=Uz8Vlu4GKIX8xMidHyYgANMxK/ZuetjMR/8Snbe7zIAde0dawyLAh//cMxhvPdw+MZ
         s2zxFJkPIIw55dTOHTOjOzEIXm9I6qaao0tnxj6aSTMS89u018U+HthvcN/Kxkt16ski
         nYsePBNvK4KF54gm/5h7MS/8rSM6kmtQn319ezIe3dwJpp/RaOJ3m5hWFAsOETj0Iu0G
         CR9IoBYs+hpE7i2Qc35A2cfXjuCK7zQ1vzEN+BMnXk6tVfpb4BhCB5fY08/5JMYTVsn8
         V6IEWqGfOQH0GNoNqbM4QwDI6t8qk1si6VNDD0TB9wFptYQelzIifpCp/vFqYGNvdyHP
         7zCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778493601; x=1779098401;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=HVd9iugrtUDUjoruVF6GpRXRAR1XLlPcsH6axxeJ14k=;
        b=Qj+gL0X0g8+znumDDgMVeiY/5BVgdZXQmFE1xkhs707kefsQHXc0u4GQZnny2fXfG8
         JfB6Lv5q0SWboeVoiigQ0fLpPEvlT7wabqvxe7uoWogjob9DzmP5HpiYjbupCbqUkaYn
         tkipttwPJ8eqyHtAzLrM0HXYYMkrLr4CTwMG/s1Oky/9AUpEsek8ZfgZa3dLEU2ROv6V
         2rhTxbs/P3s2QRq19PqLpJTKFMripWndhGsvyokp0jAQIohtP6X4VRDC79CzCiSRRRu5
         OJ3BKPNPyDv73ioJMIVxdk9JfetQKnh8O00srSbQy4Oe/IFPqdqObdCAdTnlgAtF6oCN
         bBLQ==
X-Gm-Message-State: AOJu0YzArqsnS8eKDG6m3vASQwrU0JXKQX84AKHmFvO0QH2yb+BhhTFZ
	aG/66NLsV5uUERQUub80FdCX26aRK09dKQHEtloONddMYZYIId1tcokqA74DDYxSK3WI+LzhD1O
	QzAg=
X-Gm-Gg: Acq92OG4oA2oEaYCv+7ZBvokAjEeq8zzyds3RHw7rikUO0w/SA4SpjFAro2FH9ZvELM
	ewOUJW/sBHLpZJ+WBAtVv2FEzQ7ZjRmjGurMslq19iERQvad0k1WZcRqAPY1R7SLzAuJNZc4E65
	HNbWnRYSa5Q5Z5hfYxv6yUkbW3XcjAnfuezgpZnEyatvWoftHTUyIn7/IYjYXaZgWFoXUAVmi49
	Triae/tOwydA7wTyDZbvvy5N3HU7PcdZIGhzXlJpxOeJYVwDFPAhAClLLmTuxh/Z+R1jHnToqYA
	T1OXF13Nl2mpWttTho47HEWBRbnHCFxvwwWQJWoTxlJJUBsGBlRkqhRZDDL4YkeRZUDfbnZAznc
	AA+aFhDEJOzRDn5jjPIYlB2a2HB3S5qArHjvKkdGkfKotxj4gY0I3Gj6x3RmjFcVR5AI1jFibVU
	2ccj59wb+oKhptHnfxcAf7HsuhehODQpq1q7i6Ow8ODcSJoR9NaaopYb01qqaK1XLYgxzdXpvDC
	y1OF2j3ahZn70Q=
X-Received: by 2002:a05:600c:a30b:b0:489:1c1f:35f9 with SMTP id 5b1f17b1804b1-48e51e1773bmr320788445e9.9.1778493601443;
        Mon, 11 May 2026 03:00:01 -0700 (PDT)
Message-ID: <f921abc1-1f1a-4ef1-b21b-a65b5d50eafd@suse.com>
Date: Mon, 11 May 2026 12:00:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] symbols: explicitly specify source file name for symtab
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1778493602-A8D7F161-852BBC38/10/73395122804
X-purgate-type: spam
X-purgate-size: 3295

If there are any local symbols in an object file, GNU ld will create an
STT_FILE symbol derived from the object file name if there is none in the
incoming symbol table. The object file name, however, varies between
linking passes. As a result, symbol name compression can yield different
results if any of those local symbols need retaining (Arm [and RISC-V]
mapping symbols are omitted, for example). If that difference in
compression would yield a difference in the sizes of symbol_names[] or
symbols_token_table[], the compare-symbol-tables sanity check will fail.

Fixes: d37d63d4b548 ("symbols: prefix static symbols with their source file names")
Reported-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
The observed problem was with a stub generated as Arm64 erratum 843419
workaround. Such stubs' symbols (imo wrongly) are associated with the last
input object, rather than the input object they belong to. Also for other
kinds of stubs, afaict. See
https://sourceware.org/bugzilla/show_bug.cgi?id=34140.

As per the above, having a Fixes: tag here is questionable.

--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -200,7 +200,8 @@ $(TARGET).efi: $(objtree)/prelink.o $(no
 ifeq ($(CONFIG_DEBUG_INFO),y)
 	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),echo,:) "Will strip debug info from $(@F)"
 endif
-	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0s.S
+	$(objtree)/tools/symbols $(all_symbols) --source-name=$(@F).S --empty \
+		> $(dot-target).0s.S
 	$(MAKE) $(build)=$(@D) .$(@F).0s.o
 	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
 	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds $< $(relocs-dummy) \
@@ -210,6 +211,7 @@ endif
 		> $(dot-target).1r.S
 	$(NM) -pa --format=sysv $(dot-target).$(VIRT_BASE).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
+                  --source-name=$(@F).S \
 		> $(dot-target).1s.S
 	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
 	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
@@ -220,6 +222,7 @@ endif
 		> $(dot-target).2r.S
 	$(NM) -pa --format=sysv $(dot-target).$(VIRT_BASE).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
+                  --source-name=$(@F).S \
 		> $(dot-target).2s.S
 	$(MAKE) $(build)=$(@D) .$(@F).2r.o .$(@F).2s.o
 	$(call compare-symbol-tables, $(dot-target).1r.o, $(dot-target).2r.o)
--- a/xen/tools/symbols.c
+++ b/xen/tools/symbols.c
@@ -66,6 +66,7 @@ int token_profit[0x10000];
 unsigned char best_table[256][2];
 unsigned char best_table_len[256];
 
+static const char *srcname = "xen-syms.S";
 
 static void usage(void)
 {
@@ -356,6 +357,7 @@ static void write_src(void)
 	printf("#define ALGN 4\n");
 	printf("#endif\n");
 
+	printf("\t.file \"%s\"\n", srcname);
 	printf("\t.section .rodata, \"a\"\n");
 
 	printf("#ifndef SYMBOLS_ORIGIN\n");
@@ -679,6 +681,8 @@ int main(int argc, char **argv)
 				unsorted = true;
 			else if (strcmp(argv[i], "--sort-by-name") == 0)
 				sort_by_name = 1;
+			else if (strncmp(argv[i], "--source-name=", 14) == 0)
+				srcname = argv[i] + 14;
 			else if (strcmp(argv[i], "--warn-dup") == 0)
 				warn_dup = true;
 			else if (strcmp(argv[i], "--error-dup") == 0)


From xen-devel-bounces@lists.xenproject.org Mon May 11 10:16:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 10:16:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305966.1578064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMNgB-00066b-Am; Mon, 11 May 2026 10:16:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305966.1578064; Mon, 11 May 2026 10:16:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMNgB-00066U-7M; Mon, 11 May 2026 10:16:03 +0000
Received: by outflank-mailman (input) for mailman id 1305966;
 Mon, 11 May 2026 10:16:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wMNg9-00066O-FJ
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 10:16:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMNg8-002fTn-SM
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 12:16:00 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a01ac52-2eae-0a2a0a5409dd-0a2a4505c22a-26
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:16:00 +0200
Received: from [52.101.46.64]
 (helo=CO1PR03CU002.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a01ac5e-aaa8-0a2a45050019-34652e40ecff-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:16:00 +0200
Received: from CY8PR12CA0022.namprd12.prod.outlook.com (2603:10b6:930:4e::17)
 by SN7PR12MB6984.namprd12.prod.outlook.com (2603:10b6:806:260::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.22; Mon, 11 May
 2026 10:15:53 +0000
Received: from CY4PEPF0000E9D0.namprd03.prod.outlook.com
 (2603:10b6:930:4e:cafe::7d) by CY8PR12CA0022.outlook.office365.com
 (2603:10b6:930:4e::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 10:15:53 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000E9D0.mail.protection.outlook.com (10.167.241.135) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Mon, 11 May 2026 10:15:52 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Mon, 11 May
 2026 05:15:52 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 11 May
 2026 05:15:52 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 11 May 2026 05:15:50 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ULJSeZK/b90pb+Vu99pRsy487KGXHyFwc/PXBfjRf6JROKm8hOflHehBl4SGWqayj5oaXyXzoWRPmBouqwN0DOfNHFgm8rt/BZlH27n9CILDyUvJrJzHwMbZ1JWfF6NT5x4q+p4p59jzDeop6EjXTo6AfXmsZaFHxj65tc/CVPYZAbTE6cY0SfFx0sCiuhmMuvgfY8aqM66FSkUZ7PZL7+P6oML9icHzHHUrF+ZVHO/ME7TQXmNHmpNnOdgmkhDeKgnmZT56/aCyP52P0L4WtguyaEmtSHgyWIlGFVCO9yrGDyoNzNBCvX9CabBpA+I8LTV+0IcpLvkkkJLyB2LJPw==
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=wy62t5pMG6OU0Yn66m7Z2DmwJW0UbR2c54uKV84Z7PU=;
 b=qlahfv3TSAOOYXEB3yhnPnSIHu0v2U0zZQM0/f1dxTZ46ApLVew7p7NCz2CaLqrL6RQr25yLVwb09lCwBUxn+bnL2GRVMRPSTqczC4K21FH6oqeZuCNnNNjvlnS4lfA4JGelSOE+8rPI6+I+SxBKvMQ3KaSK6aZc1v73pfu5iBfHouTYt/65hPLRg9S/GsH1PbWdF5rZNsybBRD/hDGSRxLMts3WL1C8RsAi32KhPwCINUnbIFKUnwVMxogMFKLEPFO4cvDhML4k9rvL9YWaWxCYoQ3g30yWpLZjlh3cTU7dKCgX2DXbfZpVxFberMVRkEvSGSLxzQ1VpQwfL3YXPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wy62t5pMG6OU0Yn66m7Z2DmwJW0UbR2c54uKV84Z7PU=;
 b=y5TBnJ9/R/JPNzw+fGM/A7nUo+0BCbFB4dxOKY9Lo1Uc+xM27DrQqsLCNTzoFv1At/cJ5NhBt1tin1KRe8oz/M6Jp4p4jxrAWPHKbS+7JtLs4Xi/jdyWYTDuAWwULo3ZeRrl3SvdvIYQmGjgbf13JzvinleY7z+BMu6Kau58D6I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <63c08741-42dd-41c2-9f27-b14f350544c7@amd.com>
Date: Mon, 11 May 2026 12:15:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
To: Luca Fancellu <luca.fancellu@arm.com>, <xen-devel@lists.xenproject.org>
CC: Harry Ramsey <harry.ramsey@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
 <20260508143353.3512004-3-luca.fancellu@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260508143353.3512004-3-luca.fancellu@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D0:EE_|SN7PR12MB6984:EE_
X-MS-Office365-Filtering-Correlation-Id: 87f1bc23-f951-4305-9893-08deaf464858
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|36860700016|1800799024|82310400026|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	OJtzhJ2RocMMLimkiDj5uw0QS/U6ZbEV63hpVHEdgWk59BvGncf2Aziijj3cBXHhUgrr0YBTxZsvr2/S2Yy9G/qt1piwN2kWJCNfKO1gaIhOLbkbGN8dw8QeqEsqhGB33O6ZRktaqihM64ndRRjpMOL0z3zy/JDJY2Hao6Hyvp0ESxhHZRMCEp/nUIsWqxX2TbWdZVzQHNKaqEmGtVaMPQfXbYf3iFSvrBqmDhldkPue24EkLkGCllOgiXvpJC/La2lLiSZww7v8eHxmJLuYF3101rL/Ex6N13xLyQoybs4slh937ZByn1Mowqe6SvBsqnTaFfxAMaJ9ANMhNCcvxhJmATflunuxpktBrZu6hiE0S5yh+B9j3R0ZYF4s7YEpMUXEGifcpIR8h739QHaVH6aL7qse+TKmnNPMwrMCKFea0U/kc7xw/L9yFNwtCbXH8NJGOvZG3YFQAFJHgycbrzoOOoz/TkilF2giilVfJ0j87UeqTbYQTjCn8L1+TbxFrVyh3kbRTcFDnyKoVY577rAsuOm1ydAP185KuzARUW68mCjVYuYJ5NWYza9il0FJdqxr9+UK0OKBAkwvEb5P18ZXJ3dzfV4484AL59cen1E8LkY1t5GOElV1J12QSvkrL7jR9Rx9SiGA9tnn3lwG4tSmtQU4Y3dCD2nb7K+Hc1tnocoU1J9Hv9q8rgErNBSZBfRfSOsrg6uMjoEiDSBQdY3GapYKyNp6ob8Zju6NnJE=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(36860700016)(1800799024)(82310400026)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	6E2i9eEwH3eNSU08KxErThEKw+hdyS+BCYlWNrXcZ3kjdLnvcU+TxZ1CyKlBFO1ipZ3arGCFWT502O/VQPkL3uxbSmZKIc1xQeg8wBvAMCaVfXBlb92xuqWhaa9QY8LFNCbFfRsL1raGv7W1jSPQ2NHjWjiF3TurLePA2NL6IMFI2C+c3VAtUDiqKSyklXlu1zuiQsVuzInl8VdaTeeY7+HkcKF4IrFdjv0km1R9M5y0vyffmySERw3czvrNHcLYlAOCcKLesfRseolQeluoQuD5Z3qg5i7yUwDNN03tvMAPBea/T3ziW/HDmxMUGHvSp+onSk2UgMU06Pfly1JDat4D11/QR7WBUJUutdN4iWAPU5Lq7RZpMth1QWq+PrrnS/JYs+GRh+x83bzxWCs9x4CSdimBYK7VoiGPXBorGlYAc61us47haOfuWJ5IKTgu
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 10:15:52.8618
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 87f1bc23-f951-4305-9893-08deaf464858
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D0.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6984
X-purgate-ID: tlsNG-c201ff/1778494560-E0461443-F87F1A77/0/0
X-purgate-type: clean
X-purgate-size: 10302



On 08-May-26 16:33, Luca Fancellu wrote:
> From: Harry Ramsey <harry.ramsey@arm.com>
> 
> Add a new device tree property `v8r_el1_msa` to select the MSA (memory
> system architecture) at EL1 for Armv8-R architecture: MPU or MMU, the
> former is the default if the property is not passed.
> 
> Implement the dom0less path to parse the new device tree property, add
> a new domctl hypercall input parameter `v8r_el1_msa` for arm and
> add the sanitisation in arch_sanitise_domain_config(), the parameter
> is intended to be used on CONFIG_MPU systems and returns an error if
> selected for MMU.
> 
> Given the breaking change, bump the XEN_DOMCTL_INTERFACE_VERSION.
> 
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> v5:
>  - follow the way domu_dt_sci_parse and ARM_SCI is doing, but
>    return error if property is present in MMU systems.
>  - Align the commit message on the new changes
>  - fix documentation
>  - fix multiline comment
>  - drop the explicit padding from struct xen_arch_domainconfig
> v4:
> - Rework the patch to have the v8r_el1_msa input parameter more
>   enclosed in the Armv8-A (mmu)/Armv8-R (mpu) space.
> v3:
> - Improve commit message and device tree property description
> - Remove macro protection
> - Remove unused function is_mpu_domain
> - Code formatting
> ---
>  docs/misc/arm/device-tree/booting.txt   | 14 +++++
>  xen/arch/arm/dom0less-build.c           | 74 +++++++++++++++++++++++++
>  xen/arch/arm/domain.c                   | 11 ++++
>  xen/arch/arm/include/asm/domain.h       |  4 ++
>  xen/arch/arm/include/asm/domain_build.h | 21 +++++++
>  xen/arch/arm/mpu/arm32/mm.c             | 17 ++++++
>  xen/arch/arm/mpu/arm64/mm.c             | 18 ++++++
>  xen/include/public/arch-arm.h           |  6 ++
>  xen/include/public/domctl.h             |  4 +-
>  9 files changed, 167 insertions(+), 2 deletions(-)
> 
> diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
> index 977b4286082f..2389ae610963 100644
> --- a/docs/misc/arm/device-tree/booting.txt
> +++ b/docs/misc/arm/device-tree/booting.txt
> @@ -322,6 +322,20 @@ with the following properties:
>      Should be used together with scmi-smc-passthrough Xen command line
>      option.
>  
> +- v8r_el1_msa
> +
> +    A string property specifying whether, on Armv8-R systems at EL1, a domain
> +    should use PMSAv8 (MPU) or VMSAv8 (MMU).
> +
> +    - "mmu"
> +    Enables VMSAv8 at EL1. This requires hardware support and is only
> +    optionally available on AArch64. Not supported on AArch32.
> +
> +    - "mpu"
> +    Enables PMSAv8 at EL1. This is the default behaviour when the property is
s/behaviour/behavior/

> +    not passed. This configuration requires static allocation (xen,static-mem)
> +    and direct mapping (direct-map).
> +
>  Under the "xen,domain" compatible node, one or more sub-nodes are present
>  for the DomU kernel and ramdisk.
>  
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index 6f73c65e5151..2a0671bd0e8e 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -295,6 +295,77 @@ static int __init domu_dt_sci_parse(struct dt_device_node *node,
>      return 0;
>  }
>  
> +static int __init
> +domu_dt_v8r_el1_msa_parse(struct dt_device_node *node,
node can be const

> +                          struct xen_domctl_createdomain *d_cfg,
> +                          unsigned int flags)
> +{
> +    bool property_present = dt_property_read_bool(node, "v8r_el1_msa");
> +
> +    if ( !property_present )
> +        d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE;
> +    else
> +    {
> +        const char *v8r_el1_msa;
> +        int ret = dt_property_read_string(node, "v8r_el1_msa", &v8r_el1_msa);
> +
> +        if ( ret )
> +            return ret;
> +
> +        if ( !strcmp(v8r_el1_msa, "mpu") )
> +            d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA;
> +        else if ( !strcmp(v8r_el1_msa, "mmu") )
> +            d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA;
> +        else
> +        {
> +            printk(XENLOG_ERR
> +                   "v8r_el1_msa value (%s) not valid for domain %s\n",
> +                   v8r_el1_msa, dt_node_name(node));
dt_node_name can be any arbitrary name not necessarily denoting a domain in a
meaningful way. Without a full path it can be misleading. Either print a full
path or don't print it at all. Here and elsewhere.

> +            return -EINVAL;
> +        }
> +    }
> +
> +    if ( !IS_ENABLED(CONFIG_MPU) )
> +    {
> +        if ( !property_present )
> +            return 0;
> +
> +        printk(XENLOG_ERR
> +               "Not supported 'v8r_el1_msa' DT property found for domain %s\n",
> +               dt_node_name(node));
> +        return -EINVAL;
> +    }
> +
> +    switch ( d_cfg->arch.v8r_el1_msa )
> +    {
> +    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE:
> +        fallthrough;
> +    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA:
> +        if ( !(flags & CDF_staticmem) || !(flags & CDF_directmap) )
> +        {
> +            printk(XENLOG_ERR
> +                   "PMSA is not valid for domain (%s) without static allocation and direct map (v8r_el1_msa)\n",
> +                   dt_node_name(node));
> +            return -EINVAL;
> +        }
> +        break;
> +
> +    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA:
> +        if ( !has_v8r_vmsa_support() )
> +        {
> +            printk(XENLOG_ERR
> +                   "Platform doesn't support VMSA at EL1 (v8r_el1_msa)\n");
> +            return -EINVAL;
> +        }
> +        break;
> +
> +    default:
> +        return -EINVAL;
> +    }
> +
> +    return 0;
> +}
> +
>  int __init arch_parse_dom0less_node(struct dt_device_node *node,
>                                      struct boot_domain *bd)
>  {
> @@ -308,6 +379,9 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
>      if ( domu_dt_sci_parse(node, d_cfg) )
>          panic("Error getting SCI configuration\n");
>  
> +    if ( domu_dt_v8r_el1_msa_parse(node, d_cfg, flags) )
> +        panic("Error getting v8r_el1_msa configuration\n");
> +
>      if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
>      {
>          int vpl011_virq = GUEST_VPL011_SPI;
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 26380a807cad..ac7d1abd9c7c 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -18,6 +18,7 @@
>  #include <asm/cpuerrata.h>
>  #include <asm/cpufeature.h>
>  #include <asm/current.h>
> +#include <asm/domain_build.h>
>  #include <asm/event.h>
>  #include <asm/gic.h>
>  #include <asm/guest_atomics.h>
> @@ -630,6 +631,12 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>          return -EINVAL;
>      }
>  
> +    if ( !v8r_el1_msa_domain_sanitise_config(config) )
> +    {
> +        dprintk(XENLOG_INFO, "Unsupported v8r_el1_msa value\n");
> +        return -EINVAL;
> +    }
> +
>      return sci_domain_sanitise_config(config);
>  }
>  
> @@ -722,6 +729,10 @@ int arch_domain_create(struct domain *d,
>      d->arch.sve_vl = config->arch.sve_vl;
>  #endif
>  
> +#ifdef CONFIG_MPU
> +    d->arch.v8r_el1_msa = config->arch.v8r_el1_msa;
> +#endif
> +
>      if ( (rc = sci_domain_init(d, config)) != 0 )
>          goto fail;
>  
> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
> index b24f02d269be..ac7300e41fcd 100644
> --- a/xen/arch/arm/include/asm/domain.h
> +++ b/xen/arch/arm/include/asm/domain.h
> @@ -112,6 +112,10 @@ struct arch_domain
>  #endif
>  
>      struct resume_info resume_ctx;
> +
> +#ifdef CONFIG_MPU
> +    uint8_t v8r_el1_msa;
> +#endif
>  }  __cacheline_aligned;
>  
>  struct arch_vcpu
> diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
> index 6674dac5e2f8..50ddc0511e7e 100644
> --- a/xen/arch/arm/include/asm/domain_build.h
> +++ b/xen/arch/arm/include/asm/domain_build.h
> @@ -19,6 +19,27 @@ int prepare_acpi(struct domain *d, struct kernel_info *kinfo);
>  
>  int add_ext_regions(unsigned long s_gfn, unsigned long e_gfn, void *data);
>  
> +#ifdef CONFIG_MPU
> +/* Utility function to determine if an Armv8-R processor supports VMSA. */
> +bool has_v8r_vmsa_support(void);
> +bool v8r_el1_msa_domain_sanitise_config(
> +    const struct xen_domctl_createdomain *config);
> +#else
> +static inline bool has_v8r_vmsa_support(void)
> +{
> +    return false;
> +}
> +
> +static inline bool v8r_el1_msa_domain_sanitise_config(
> +    const struct xen_domctl_createdomain *config)
Why can't this function be common? I can see 3 definitions (Arm64 MPU, Arm32
MPU, MMU) but they do not have anything that would prevent from generalizing
them in a single function.

> +{
> +    if ( config->arch.v8r_el1_msa != XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE )
> +        return false;
> +
> +    return true;
> +}
> +#endif /* CONFIG_MPU */
> +
>  #endif
>  
>  /*
> diff --git a/xen/arch/arm/mpu/arm32/mm.c b/xen/arch/arm/mpu/arm32/mm.c
> index a4673c351141..a759ebdfc124 100644
> --- a/xen/arch/arm/mpu/arm32/mm.c
> +++ b/xen/arch/arm/mpu/arm32/mm.c
> @@ -5,6 +5,8 @@
>  #include <asm/mpu.h>
>  #include <asm/sysregs.h>
>  #include <asm/system.h>
> +#include <public/arch-arm.h>
> +#include <public/domctl.h>
>  
>  #define GENERATE_WRITE_PR_REG_CASE(num, pr)               \
>      case num:                                             \
> @@ -38,6 +40,21 @@
>          break;                                            \
>      }
>  
> +bool has_v8r_vmsa_support(void)
> +{
> +    return false;
> +}
> +
> +bool v8r_el1_msa_domain_sanitise_config(
> +    const struct xen_domctl_createdomain *config)
> +{
> +    if ( config->arch.v8r_el1_msa != XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE &&
> +         config->arch.v8r_el1_msa != XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA )
Please add brackets ( () && () )


~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 11 10:36:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 10:36:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305979.1578072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMO06-0000o5-UN; Mon, 11 May 2026 10:36:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305979.1578072; Mon, 11 May 2026 10:36:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMO06-0000ny-RV; Mon, 11 May 2026 10:36:38 +0000
Received: by outflank-mailman (input) for mailman id 1305979;
 Mon, 11 May 2026 10:36:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wMO05-0000nr-N6
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 10:36:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMO04-005y1f-Sl
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 12:36:36 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a01b134-5cb7-0a2a0a5109dd-0a2a4509b7fe-2
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:36:36 +0200
Received: from [52.101.61.10]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a01b132-2497-0a2a45090019-34653d0a84b9-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:36:36 +0200
Received: from SA1PR02CA0012.namprd02.prod.outlook.com (2603:10b6:806:2cf::17)
 by PH0PR12MB999088.namprd12.prod.outlook.com (2603:10b6:510:38d::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 10:36:31 +0000
Received: from SN1PEPF00036F41.namprd05.prod.outlook.com
 (2603:10b6:806:2cf:cafe::1f) by SA1PR02CA0012.outlook.office365.com
 (2603:10b6:806:2cf::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 10:36:31 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SN1PEPF00036F41.mail.protection.outlook.com (10.167.248.25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Mon, 11 May 2026 10:36:31 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 11 May
 2026 05:36:30 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 11 May 2026 05:36:29 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mVY8qfB/vE6NAAuWlRaVFrayI1i/FtTmtVcQbX+vKbA1NSLdlU3WM5NVc3cR86G7ZwohHUfN4ZbR5ScDeU82l9TwerulAQd+eUOTVsKs48uNAyqkxbwJFjb9CzmcAQf7rOWrzAK5FAodOc2VXIoCWZTs9hMVN3XoNqqQBvSB8nnnb/+nMYYB4xvroemvXTEUR1xmfIFkHIjVfKHJdRYoFk2ozlWKhAFvW8zhAFpV/0k3rGlvvRTG94oYfgS8fSCkT53M0Z/wOUd1+cNGpQF0TJgJKXKE3s0H6QR+BmetMURVnbNK1dGtrdzOjhUzlIgddJDXb/YOOEPfZ0llOudrQw==
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=RmlcBMtgTUbMbO5vSUFU8z0giO0xkCTKxNxFf/bABSU=;
 b=RrwgelmiUkYmxen+xxyuyYEYIPb2PpjaxjMh/BvLpm75N6GY3PHJXtpANFk44rjSw7qoDR9wsOydc/Dr7A0rTp63qbEshAWoGwt6avDFLUqW8xX+P/jmkZ0KmK3CnquqEBMvtYhU8yTBgwMmQGqCHCeaP31hQuq5Zd2MWe2XzGfnHz+B9eE+aLpXsmGpsl5eogvf8L6TW42WkGZZvI72dzgDz08NpwvLm1dLINxWFD1LaPETbbRlOXdTu8kulV3PkuVDJZBx/R8NbP/obppKL2d0MXxk1rNYMq+hU0F0UfkivCL+hlbjJ+ne44lKtms6cmVkbYaumfdaqt0gUHk8vA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RmlcBMtgTUbMbO5vSUFU8z0giO0xkCTKxNxFf/bABSU=;
 b=4LhAGxe8C48MvneKm5QzGVsG34hAFfM1ECDTfUUlsEt771BWW22+VPeWfkGS6xx+kFI8iKc85JnCGsSw8tSLe7syxqLKTMvu/PGuEVwTzqK6KaXJtZn8uHCi05/NHs7OZ9EK9t5RqCsKv8XpYQ227sYgMsi8NHzKxdO+fT8n8YU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <a9460f33-1798-461d-95dc-c40cdf2f7f68@amd.com>
Date: Mon, 11 May 2026 12:36:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 3/3] arm/mpu: Implement p2m tables
To: Luca Fancellu <luca.fancellu@arm.com>, <xen-devel@lists.xenproject.org>
CC: Harry Ramsey <harry.ramsey@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
 <20260508143353.3512004-4-luca.fancellu@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260508143353.3512004-4-luca.fancellu@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F41:EE_|PH0PR12MB999088:EE_
X-MS-Office365-Filtering-Correlation-Id: 53816c8d-cf0c-4632-3fa7-08deaf492a58
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700016|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	n4BRrBukqoz6GykjW4b7dryO+EzgGiz4unT5hdWTyal5072g0j5xo+AHYlRVb3H+JcWR7wu6ODkDtKi5PMs3edvH03b143ZB4lzi0GHH1NtUKhF/TqUZ5dlpfEodm3O/9Gk5gQdOS3tqU3Ip+erriv4uQ5gEhPzTfRxWhEgX4Hm2ReGJChDg6E/VxyuAGoLJ2WoJh7/fZobB+zzoo9XUfW+SSH3VocqIbvEL+ga5aK+ZK5zpeMfqwdbbtuYMxXGgeZYAeCocmDfkJ7WqFfG3MYyenuP5FV0kVHVh1N5PhiIIfRVYGF9bivuotO6bwnp28kmxFUMgnhq7fQbzRTPq3DkH9+d8acQG6Sytuj9Cthn7m+/o75IZh6ujNM9cAKpU/x8MoZRTXQqq5BnX0t4CZUV74Dz8PHvPCCZUSaYfOmFRvwArYsLDEZVqMnJDEQEO8JdRkYG7GiZ3ZeRlksa8jxNlRdIUldRHnzfJA2YWfl/296WOE+ob0SUy54aAHolvpijH48jgH9QZoiqLm4HX8ypSDWBU2g5mJ3wIvCX6zv+HcOU++GIBOdvhzlTf2VFxvECe5VxXswbKSOuTul+IQJ94kWxvEm5C54LWNnje/POdRLbUzy9Pv1YhTf2uwPo4Rx/nYJky7qGxNYr3UlfdEe7TDC1CAJ0Ia0DQUBAoxOIL4KQ3dxySZ5z91MZOWqyCMoZlsFy+4XCI7fujUOkrWYccx5HP9PGBzFu+NR1SYZo=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700016)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	86qu4UT6d5AUdGI8zPjOp8rS8wP11DAPEzlG9Ztu3J8UJSs2+piciVNzqnsnvkuCHxa5/g+a9nxCFJayJtdPJYG3vEa4MVyomqJ7yz8D9Nwy5LqEU5P0R9de1OzPaP1ReXZW34FIiqGGpbOzp3ydK/SJ2TUWjY4H2xhFmlLrsq99222lsw4me5lDClyk2oh6r5zyLFRQ6F1Oc+S2ARZhdj+H8Nr9Y2wDteVUJuR4jshP9Zxca+UVDsjVwqvDUNfPgNjQKSCXl5n+WrBJM5y/8WLcK3yOK2Y7Kgq53iNIFfgUdwMn+aZ0Rb7b6V4pUkr9QDMHrbFKEEO4y0h/3ussbueieQkWXE/YUvTPwT1jn4Z1qaHVdRuBhjg/uvBbDlyslLuvLpIHPebHXxqGyMkeqy5s/lMBDX+vbZdjhN/E6711wNu+2ziWP5JRYjK4t0jy
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 10:36:31.0784
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 53816c8d-cf0c-4632-3fa7-08deaf492a58
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F41.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB999088
X-purgate-ID: tlsNG-bad1c0/1778495796-43D7FA53-EF40598B/0/0
X-purgate-type: clean
X-purgate-size: 4961



On 08-May-26 16:33, Luca Fancellu wrote:
> From: Harry Ramsey <harry.ramsey@arm.com>
> 
> Implement `p2m_alloc_table`, `p2m_init` and `p2m_final_teardown` for MPU
> systems.
> 
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> v5:
>  - removed comment for P2M_ROOT_PAGES/P2M_ROOT_ORDER
>  - used MAX_MPU_REGION_NR instead of opencoding 255
>  - use 'table' in p2m_alloc_table to clear pages
>  - remove p2m_free_vmid() from error path in p2m_init()
>    which is already handled outside
> v4:
>  - no changes
> v3:
> - Check for alloc_xenheap_pages allocation
> - Clear additional page allocated for ARM64
> - Add check for INVALID_VCPU_ID
> - Remove unnecessary function generate_vsctlr
> - Code formatting fixes
> ---
>  xen/arch/arm/include/asm/arm32/mpu.h |  2 +
>  xen/arch/arm/include/asm/arm64/mpu.h |  2 +
>  xen/arch/arm/include/asm/mpu/p2m.h   |  7 +++
>  xen/arch/arm/include/asm/p2m.h       |  5 ++
>  xen/arch/arm/mpu/p2m.c               | 72 ++++++++++++++++++++++++++--
>  5 files changed, 85 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
> index 2cf0f8cbacae..d565230f84ee 100644
> --- a/xen/arch/arm/include/asm/arm32/mpu.h
> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
> @@ -11,6 +11,8 @@
>   */
>  #define MPU_REGION_RES0       0x0
>  
> +#define VSCTLR_VMID_SHIFT     16
> +
>  /* Hypervisor Protection Region Base Address Register */
>  typedef union {
>      struct {
> diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
> index 4f694190a8a3..8b86a03fee44 100644
> --- a/xen/arch/arm/include/asm/arm64/mpu.h
> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
> @@ -7,6 +7,8 @@
>  
>  #define MPU_REGION_RES0        (0xFFFFULL << 48)
>  
> +#define VSCTLR_VMID_SHIFT      48
> +
>  /* Protection Region Base Address Register */
>  typedef union {
>      struct __packed {
> diff --git a/xen/arch/arm/include/asm/mpu/p2m.h b/xen/arch/arm/include/asm/mpu/p2m.h
> index e46d9e757a1d..0d4149c71987 100644
> --- a/xen/arch/arm/include/asm/mpu/p2m.h
> +++ b/xen/arch/arm/include/asm/mpu/p2m.h
> @@ -3,8 +3,15 @@
>  #ifndef __ARM_MPU_P2M_H__
>  #define __ARM_MPU_P2M_H__
>  
> +#include <xen/bitops.h>
> +#include <xen/macros.h>
> +#include <xen/page-size.h>
> +
>  struct p2m_domain;
>  
> +#define P2M_ROOT_PAGES DIV_ROUND_UP(MAX_MPU_REGION_NR * sizeof(pr_t), PAGE_SIZE)
You should include mpu.h for MAX_MPU_REGION_NR definition

> +#define P2M_ROOT_ORDER get_count_order(P2M_ROOT_PAGES)
> +
>  static inline void p2m_clear_root_pages(struct p2m_domain *p2m) {}
>  
>  static inline void p2m_tlb_flush_sync(struct p2m_domain *p2m) {}
> diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
> index 010ce8c9ebbd..ed1b6dd40f40 100644
> --- a/xen/arch/arm/include/asm/p2m.h
> +++ b/xen/arch/arm/include/asm/p2m.h
> @@ -48,8 +48,13 @@ struct p2m_domain {
>      /* Current VMID in use */
>      uint16_t vmid;
>  
> +#ifdef CONFIG_MMU
>      /* Current Translation Table Base Register for the p2m */
>      uint64_t vttbr;
> +#else
> +    /* Current Virtualization System Control Register for the p2m */
> +    register_t vsctlr;
> +#endif
>  
>      /* Highest guest frame that's ever been mapped in the p2m */
>      gfn_t max_mapped_gfn;
> diff --git a/xen/arch/arm/mpu/p2m.c b/xen/arch/arm/mpu/p2m.c
> index f7fb58ab6aa8..8d5c65b1003f 100644
> --- a/xen/arch/arm/mpu/p2m.c
> +++ b/xen/arch/arm/mpu/p2m.c
> @@ -28,10 +28,63 @@ void p2m_dump_info(struct domain *d)
>      BUG_ON("unimplemented");
>  }
>  
> +static int p2m_alloc_table(struct domain *d)
> +{
> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
> +    char *table = alloc_xenheap_pages(P2M_ROOT_ORDER, 0);
Why char and not void? We use void and pointer arithmetic is done by treating
the size of a void as 1.
> +    unsigned int i;
> +
> +    if ( !table )
> +    {
> +        printk(XENLOG_G_ERR "%pd: p2m: unable to allocate P2M MPU mapping table\n",
> +               d);
> +        return -ENOMEM;
> +    }
> +
> +    p2m->root = virt_to_page(table);
> +
> +    for ( i = 0; i < P2M_ROOT_PAGES; i++ )
> +        clear_page(table + (i * PAGE_SIZE));
> +
> +    return 0;
> +}
> +
>  int p2m_init(struct domain *d)
>  {
> -    BUG_ON("unimplemented");
> -    return -EINVAL;
> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
> +    int rc = 0;
> +    unsigned int cpu;
> +
> +    rwlock_init(&p2m->lock);
> +
> +    p2m->vmid = INVALID_VMID;
> +    p2m->max_mapped_gfn = _gfn(0);
> +    p2m->lowest_mapped_gfn = _gfn(ULONG_MAX);
> +
> +    p2m->default_access = p2m_access_rwx;
> +    /* mem_access is NOT supported in MPU system. */
s/in/on

With the above fixed:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 11 10:40:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 10:40:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305988.1578081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMO4D-0002Ye-H8; Mon, 11 May 2026 10:40:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305988.1578081; Mon, 11 May 2026 10:40:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMO4D-0002YX-EA; Mon, 11 May 2026 10:40:53 +0000
Received: by outflank-mailman (input) for mailman id 1305988;
 Mon, 11 May 2026 10:40:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wMO4B-0002YR-L4
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 10:40:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMO4B-005pqu-1z
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 12:40:51 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a01b221-e002-0a2a0a5209dd-0a2a450cd6ba-34
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:40:50 +0200
Received: from [40.107.162.45]
 (helo=PA4PR04CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a01b231-62f1-0a2a450c0019-286ba22d5cbe-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:40:49 +0200
Received: from DUZP191CA0047.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f8::14)
 by DU4PR08MB11269.eurprd08.prod.outlook.com (2603:10a6:10:61d::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 10:40:44 +0000
Received: from DB5PEPF00014B8F.eurprd02.prod.outlook.com
 (2603:10a6:10:4f8:cafe::fe) by DUZP191CA0047.outlook.office365.com
 (2603:10a6:10:4f8::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 10:40:44 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B8F.mail.protection.outlook.com (10.167.8.203) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Mon, 11 May 2026 10:40:43 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DB4PR08MB9287.eurprd08.prod.outlook.com (2603:10a6:10:3f5::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 10:39:37 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 10:39:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=SEEMIO0ytTT9Lp6NuFQzrkaQ+B9Ntk4KhvfFApZokBOJMkwBeMGHfQhfJD6mQR7x1MNjm/tchEZ45SSfWLLd8NUMM040MnFfWrzeei70Rr6rhQaJiqJ4cqYRSu7Xy2xCa9SqWq/eD64Kqe+F8ELozRGiEEKfS+LBWUL0TSgNguLxgW0l0yyPLe//PJu+D4c7U+dWgLGjfLn8C1b/NADhpNhSMQtbatr9/xCXutJ6uTmLEK0ohs6wanzIAAdCZwt1TqbswRDC+anTqLyvIfKejTE1v8yBuQN/D8+bthRFg2hlE6rMZcfS57KYr+sfpIiBKH+pZ50voyWQy9DK73egJw==
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=JgJDG/5mgcxmN6oUqi5VaSKghnPgVzUskTU5CM0QXBY=;
 b=OHj2pzH0PiYxul5lrUJbEDPRARzmwXnrFnkAN/dkVcx3kg2pdZOx/hCfoGsHQ/ZrTg+04sfklPbrQrkVFK+On5iIto3XGbbsI0xo1K9b9JBZonfQN3ieFde+6OEHyHyIf1tvSi4UVPo8mu9U+mpMPnQ1JQN1uQyCUs9xVff+R/88DzQPu2DnTTa/coBh4emp+tRppwqtIawF4G7zUJiIL+Rq40Wh1HzThoGFQjk4pb8mWlpJJpM632R7aIM95GEWX64DFOMtJ1N5wxpPl2iNnrC1UjZr9ZpwYzQriykZVu09EUIGiY8e9RclDMDM/wwW2/7R/ASjZweEbe8o2lzcMA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JgJDG/5mgcxmN6oUqi5VaSKghnPgVzUskTU5CM0QXBY=;
 b=eXRYVoA3tLOxHLCb2/NSO2hWm9vepT+MwaN79tBaSrx2f5M4zKjvXVV9R5FCKXGkOnZ+AB2QOXqznXLjGKqr/tvUXKobqFPLACpDbtjZHy9KNKHkVzg/EdYFUDSE5yBeZXivzTbUOoKiCRJ1MP1QyEQNSBnlsDgTFFWZwaYZXwM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ls1VG1c/t7wbh7+f4aUZl++LmtLPz2r/rSk6CgvMiBCosRc8vhgDl2ZRtSNcoO0Gmr6rR6uV6VyEbQFwdQL/IfpjUuA+9OfIYxAiG2GOw6uBjxIEwUw6mWcm2/SLbRYZNsYP/qrE55zMAFgmn+Wuqp5bfopt2aiXWRJZenihqdZbX340JwpFuBSU9M0uu8GG/3kjKTe/X+cV0L3Zd8jxwfoDoDgR1fOYmhySNK1bVRsQoWa2bIUzx4R24i8ZuGE8uhqIQXuuGoKIm/eJNhspjtzwuFH2fw//4rMOPWDAE4SpZ3z++CoJLF89NQpN4b2ALwQUdZxpXQX5Z5HTd9m3pg==
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=JgJDG/5mgcxmN6oUqi5VaSKghnPgVzUskTU5CM0QXBY=;
 b=nenKPSvEYwUalweBnXPkBgy0rCAGDQ1/7Q48LR+uJlLmsGlM5xZ0nQJQ3P9/3FSdMaFdDKDQGs7upIzd0JpCqEIcm903V68oC3ovzd8Q6kXytKvwwIaYLaN6GeOStCMqROqkY3BuWcBeWjWovlJHZ7DAU3BaDygFzhFElKAuMTYa5rRLLxs9kqM1rgTP7n7MLYhWoK9zFHf2TRCj4tn83uBDSpKK82txgmU8YcqWwonwVQeDnMpC7BNM9iRR4lZu4VWcLxHbf96hrFLjwr8/aCTA5bRwxDuWZ9b3EddpoUt4j5l+cTvDzHe5AsCBMpsfzqrwG/DGnDwhbji0/1RTfg==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JgJDG/5mgcxmN6oUqi5VaSKghnPgVzUskTU5CM0QXBY=;
 b=eXRYVoA3tLOxHLCb2/NSO2hWm9vepT+MwaN79tBaSrx2f5M4zKjvXVV9R5FCKXGkOnZ+AB2QOXqznXLjGKqr/tvUXKobqFPLACpDbtjZHy9KNKHkVzg/EdYFUDSE5yBeZXivzTbUOoKiCRJ1MP1QyEQNSBnlsDgTFFWZwaYZXwM=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Harry
 Ramsey <Harry.Ramsey@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v5 3/3] arm/mpu: Implement p2m tables
Thread-Topic: [PATCH v5 3/3] arm/mpu: Implement p2m tables
Thread-Index: AQHc3vfIzyH7Owu7tEuG8ufNQ6r2lLYIphwAgAAAvoA=
Date: Mon, 11 May 2026 10:39:37 +0000
Message-ID: <0A9C53BD-D9FD-4CBF-B874-E7465C8E421E@arm.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
 <20260508143353.3512004-4-luca.fancellu@arm.com>
 <a9460f33-1798-461d-95dc-c40cdf2f7f68@amd.com>
In-Reply-To: <a9460f33-1798-461d-95dc-c40cdf2f7f68@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DB4PR08MB9287:EE_|DB5PEPF00014B8F:EE_|DU4PR08MB11269:EE_
X-MS-Office365-Filtering-Correlation-Id: d0744bce-608a-4ed3-a474-08deaf49c103
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|22082099003|38070700021|56012099003;
X-Microsoft-Antispam-Message-Info-Original:
 GznBrYcrpCnMGViyNhGnFdigmXTLO8gM0/6yd/stQTOQbYQV2UxAsknJTfqVoBwl36UXTGx5YDDusOUJXrEYsLNHCM9NHLdMpv/0YdzF3iYyxVJXSZilrfiVmez0clpxXN1RIe/Cg9ws3LJ6uvey2A7jYKZEuu/zLGSPpqWKVqCBgE7oKqJdj8tCHndna6jETdZNJbm6aW9d/VC7IsfX7PHR5nrWpqVa7XhNBQfau8SlN7obLF6P13O8Rai6MqCdbPVxxjeiHMYAhVxQHCCHFtKwPR7Puu7nwqyqoTsT40glmfLUNgUm0jEssouurnxS4eIz0M146/OFrlAnB8xz6wGvdPZwleK+Co29Bdusdz6iYgy2vN/b35WoHRwatnp1oYiy2/KKyIdCnzL4qIoX3UBVyN4qwJnL/yLPAekoqtW9BTYcD/OcujKTIZG+IkrnW+UL+0l7CuDbAUrTAsOl99tW2lh4I5MEvgjM9Ri9C5kwZMnwHQKRQnZWAt545fuT1sg8DQP50lsB3hENCKHqRcvzcVtHHzrHeLXrxO4A4CQi8bIYYQI3qZQdNiyzfYunLnAX4ASYuXFaF92qyXSthjEth8P53pg0Wbd7FS8JuQdo6XKTMBzZE27jFrNzv2YWnagj6LcfW0p+6uPM4Bs5H/Zyo34PFDg4olc699peBV0uZNp3qoaFodsCx+3XBDcMcEv9vEKD43yygnu/Adk/NbrbItRirczfXRdWFJgb712t/dNHKetvHP/vpRXBDYVx
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(22082099003)(38070700021)(56012099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <6A2B6BA3B43A7F46A4E2601321DAFC30@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 gnx9o12EnjqnpDWrVwvGHQW9vr/prYZSOf8yHFY7YULYwhHjzG02ZBsAcl2lLHDZyE6oJvAIHuGFfM8m4hYQ3ScLVfTahV+z0IYgtv7Q+YHalNbI01QuZX8L4Kx7FEGjKBL2lr+SRXMeqku4lh8L4W5sKaLIa78zSAwaLhzSEx29oRAmxqxSWSWd6dHKA2F9XiKguPNq7zvsx9j3DiLv/RsObrBqdRz998nMpYVSlgFE6GMstzTy/V83hOi4+ZDmrc/+bn56GhicP5mLzVBEoDx8ScJ+yx+sfj7Ix2+hdD6v6oOTmpy1M7jBVkq5zaG6efJmCVh40Gve7vbniP+jNA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB9287
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B8F.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	c7fbe06f-e79f-4c51-b295-08deaf499984
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|1800799024|14060799003|35042699022|82310400026|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	IvKk63LbE06sgtpQ5CEvp164Ob3GRz8CFbRPcaDzfz4mAL9ng5wJjv32M9Hx54Cewn0QSNV/AYLxBHdhKkdDkSHcllOe/XZyKidaaP7UYjYlIaXRDbM+Zn9rZdeFqHevxU40/pZV/rPA2o5hoMjby5Ghnn9nzIDX5ijplmN/jaVd/Z1wQ6AF2MVwDU7BFSa1+aLIZxRNCWFe6uPnECdiomKPYEumcemuKlj+BJKsEkoNnPp5fd8WSM+IBH45gK1O5MZGFCrYavCgyb2M9yk3gJF4Gr30IE+Mlyz96biYlAllMbMSsi7yXYkX2jIpXsbyaSyu/P881/yZD/Q9HrR4J0ohyVKhRZIfSR3Ye1V3UFixRPjZNRadquvzKnk6/3JBENWnX/0zTa3Rr0UzkiCT62FpHxq35KBLO/IF5y7cU8I+VGVukq055+mXYnQK+mrt5jnoFWs09nFoLofXAW/fRARSeFOo/oBaLoHyf7T4nlgl8xVxo/9WkqN6TAfJzDQ5PEkpi/nGZAvtfaoqZwoIR4/8RyeyUbj5hLV0w8rZ7EPjyvCveXHzK/CGm0s98qSVopElMq1/LjDgtd5oOS9JNWZDLE/tnpBLcBQWjOC4D7pohzL73Xj+jKRpsBxQ/b6oqU/uoZkMeO2CZUJ20oQHWucUd9ekuUty8DHzhfDu2786Ums6ox+IfNsZhPkqq0b4kiBqr43g7JCrYUWqq1C1cJSIKaYYSMA9tCE1ZluPZT0=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(1800799024)(14060799003)(35042699022)(82310400026)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	k40qL4HsZUQcDHvIG2vT+IVmuZxPC0QAHhtXOHnJWDr7vO2aXhAgS7oBCvYWD1PZQTnRs3kb3C9QVYojW5vxAHHhMbXm9hQTZLg/xTDEjRXU3kzq5Q5x49lZh50RfTffz4jctSHaC3RRa5bL9BKe49oj9CIo3Qdi7jWgfxC7vXNh9HjYj69VY3M9AR+7JQic+FgsAUeGZ5xNexRC2zqT2FQWIFuaWm/z5eJYVlQV9pmKpzxW6HxSISzEQh4155eVUm/fLcEHXO52n8xumXSWKtP+mQwfwx6C2mVh7CpZhFnsMyMA2GZcudYzuflQmLoGZU+JrlllZKHGZn+kBrynxXmokr6vCViAxl9IdzAOFtZyLQ1kzftlOQ8c/LCnVCMFhPBWMETMTVZgZWPlhX2quA7USU5zc+VKyRLVvc3tELfyI7r5646Rm3weF+NUKJ5C
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 10:40:43.7847
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d0744bce-608a-4ed3-a474-08deaf49c103
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B8F.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR08MB11269
X-purgate-ID: tlsNG-d25034/1778496050-E2F72CF5-23B48D95/0/0
X-purgate-type: clean
X-purgate-size: 4374

SGkgTWljaGFsLA0KDQoNCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20v
bXB1L3AybS5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21wdS9wMm0uaA0KPj4gaW5kZXgg
ZTQ2ZDllNzU3YTFkLi4wZDQxNDljNzE5ODcgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0v
aW5jbHVkZS9hc20vbXB1L3AybS5oDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20v
bXB1L3AybS5oDQo+PiBAQCAtMyw4ICszLDE1IEBADQo+PiAjaWZuZGVmIF9fQVJNX01QVV9QMk1f
SF9fDQo+PiAjZGVmaW5lIF9fQVJNX01QVV9QMk1fSF9fDQo+PiANCj4+ICsjaW5jbHVkZSA8eGVu
L2JpdG9wcy5oPg0KPj4gKyNpbmNsdWRlIDx4ZW4vbWFjcm9zLmg+DQo+PiArI2luY2x1ZGUgPHhl
bi9wYWdlLXNpemUuaD4NCj4+ICsNCj4+IHN0cnVjdCBwMm1fZG9tYWluOw0KPj4gDQo+PiArI2Rl
ZmluZSBQMk1fUk9PVF9QQUdFUyBESVZfUk9VTkRfVVAoTUFYX01QVV9SRUdJT05fTlIgKiBzaXpl
b2YocHJfdCksIFBBR0VfU0laRSkNCj4gWW91IHNob3VsZCBpbmNsdWRlIG1wdS5oIGZvciBNQVhf
TVBVX1JFR0lPTl9OUiBkZWZpbml0aW9uDQoNCnJpZ2h0LCBJ4oCZbGwgaW5jbHVkZQ0KDQo+IA0K
Pj4gKyNkZWZpbmUgUDJNX1JPT1RfT1JERVIgZ2V0X2NvdW50X29yZGVyKFAyTV9ST09UX1BBR0VT
KQ0KPj4gKw0KPj4gc3RhdGljIGlubGluZSB2b2lkIHAybV9jbGVhcl9yb290X3BhZ2VzKHN0cnVj
dCBwMm1fZG9tYWluICpwMm0pIHt9DQo+PiANCj4+IHN0YXRpYyBpbmxpbmUgdm9pZCBwMm1fdGxi
X2ZsdXNoX3N5bmMoc3RydWN0IHAybV9kb21haW4gKnAybSkge30NCj4+IGRpZmYgLS1naXQgYS94
ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vcDJtLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20v
cDJtLmgNCj4+IGluZGV4IDAxMGNlOGM5ZWJiZC4uZWQxYjZkZDQwZjQwIDEwMDY0NA0KPj4gLS0t
IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3AybS5oDQo+PiArKysgYi94ZW4vYXJjaC9hcm0v
aW5jbHVkZS9hc20vcDJtLmgNCj4+IEBAIC00OCw4ICs0OCwxMyBAQCBzdHJ1Y3QgcDJtX2RvbWFp
biB7DQo+PiAgICAgLyogQ3VycmVudCBWTUlEIGluIHVzZSAqLw0KPj4gICAgIHVpbnQxNl90IHZt
aWQ7DQo+PiANCj4+ICsjaWZkZWYgQ09ORklHX01NVQ0KPj4gICAgIC8qIEN1cnJlbnQgVHJhbnNs
YXRpb24gVGFibGUgQmFzZSBSZWdpc3RlciBmb3IgdGhlIHAybSAqLw0KPj4gICAgIHVpbnQ2NF90
IHZ0dGJyOw0KPj4gKyNlbHNlDQo+PiArICAgIC8qIEN1cnJlbnQgVmlydHVhbGl6YXRpb24gU3lz
dGVtIENvbnRyb2wgUmVnaXN0ZXIgZm9yIHRoZSBwMm0gKi8NCj4+ICsgICAgcmVnaXN0ZXJfdCB2
c2N0bHI7DQo+PiArI2VuZGlmDQo+PiANCj4+ICAgICAvKiBIaWdoZXN0IGd1ZXN0IGZyYW1lIHRo
YXQncyBldmVyIGJlZW4gbWFwcGVkIGluIHRoZSBwMm0gKi8NCj4+ICAgICBnZm5fdCBtYXhfbWFw
cGVkX2dmbjsNCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vbXB1L3AybS5jIGIveGVuL2Fy
Y2gvYXJtL21wdS9wMm0uYw0KPj4gaW5kZXggZjdmYjU4YWI2YWE4Li44ZDVjNjViMTAwM2YgMTAw
NjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vbXB1L3AybS5jDQo+PiArKysgYi94ZW4vYXJjaC9h
cm0vbXB1L3AybS5jDQo+PiBAQCAtMjgsMTAgKzI4LDYzIEBAIHZvaWQgcDJtX2R1bXBfaW5mbyhz
dHJ1Y3QgZG9tYWluICpkKQ0KPj4gICAgIEJVR19PTigidW5pbXBsZW1lbnRlZCIpOw0KPj4gfQ0K
Pj4gDQo+PiArc3RhdGljIGludCBwMm1fYWxsb2NfdGFibGUoc3RydWN0IGRvbWFpbiAqZCkNCj4+
ICt7DQo+PiArICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0gPSBwMm1fZ2V0X2hvc3RwMm0oZCk7
DQo+PiArICAgIGNoYXIgKnRhYmxlID0gYWxsb2NfeGVuaGVhcF9wYWdlcyhQMk1fUk9PVF9PUkRF
UiwgMCk7DQo+IFdoeSBjaGFyIGFuZCBub3Qgdm9pZD8gV2UgdXNlIHZvaWQgYW5kIHBvaW50ZXIg
YXJpdGhtZXRpYyBpcyBkb25lIGJ5IHRyZWF0aW5nDQo+IHRoZSBzaXplIG9mIGEgdm9pZCBhcyAx
Lg0KDQpJIGRpZCBpdCBvbiBwdXJwb3NlIHNpbmNlIGl04oCZcyBhIGNvbXBpbGVyIGV4dGVuc2lv
biwgYnV0IGlmIHlvdSBzYXkgaXTigJlzIG9rIEnigJlsbCBjaGFuZ2UgaXQgdG8gdm9pZC4NCg0K
Pj4gKyAgICB1bnNpZ25lZCBpbnQgaTsNCj4+ICsNCj4+ICsgICAgaWYgKCAhdGFibGUgKQ0KPj4g
KyAgICB7DQo+PiArICAgICAgICBwcmludGsoWEVOTE9HX0dfRVJSICIlcGQ6IHAybTogdW5hYmxl
IHRvIGFsbG9jYXRlIFAyTSBNUFUgbWFwcGluZyB0YWJsZVxuIiwNCj4+ICsgICAgICAgICAgICAg
ICBkKTsNCj4+ICsgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPj4gKyAgICB9DQo+PiArDQo+PiAr
ICAgIHAybS0+cm9vdCA9IHZpcnRfdG9fcGFnZSh0YWJsZSk7DQo+PiArDQo+PiArICAgIGZvciAo
IGkgPSAwOyBpIDwgUDJNX1JPT1RfUEFHRVM7IGkrKyApDQo+PiArICAgICAgICBjbGVhcl9wYWdl
KHRhYmxlICsgKGkgKiBQQUdFX1NJWkUpKTsNCj4+ICsNCj4+ICsgICAgcmV0dXJuIDA7DQo+PiAr
fQ0KPj4gKw0KPj4gaW50IHAybV9pbml0KHN0cnVjdCBkb21haW4gKmQpDQo+PiB7DQo+PiAtICAg
IEJVR19PTigidW5pbXBsZW1lbnRlZCIpOw0KPj4gLSAgICByZXR1cm4gLUVJTlZBTDsNCj4+ICsg
ICAgc3RydWN0IHAybV9kb21haW4gKnAybSA9IHAybV9nZXRfaG9zdHAybShkKTsNCj4+ICsgICAg
aW50IHJjID0gMDsNCj4+ICsgICAgdW5zaWduZWQgaW50IGNwdTsNCj4+ICsNCj4+ICsgICAgcnds
b2NrX2luaXQoJnAybS0+bG9jayk7DQo+PiArDQo+PiArICAgIHAybS0+dm1pZCA9IElOVkFMSURf
Vk1JRDsNCj4+ICsgICAgcDJtLT5tYXhfbWFwcGVkX2dmbiA9IF9nZm4oMCk7DQo+PiArICAgIHAy
bS0+bG93ZXN0X21hcHBlZF9nZm4gPSBfZ2ZuKFVMT05HX01BWCk7DQo+PiArDQo+PiArICAgIHAy
bS0+ZGVmYXVsdF9hY2Nlc3MgPSBwMm1fYWNjZXNzX3J3eDsNCj4+ICsgICAgLyogbWVtX2FjY2Vz
cyBpcyBOT1Qgc3VwcG9ydGVkIGluIE1QVSBzeXN0ZW0uICovDQo+IHMvaW4vb24NCg0Kd2lsbCBm
aXgNCg0KPiANCj4gV2l0aCB0aGUgYWJvdmUgZml4ZWQ6DQo+IFJldmlld2VkLWJ5OiBNaWNoYWwg
T3J6ZWwgPG1pY2hhbC5vcnplbEBhbWQuY29tPg0KDQpUaGFua3MhDQoNCkNoZWVycywNCkx1Y2EN
Cg0K


From xen-devel-bounces@lists.xenproject.org Mon May 11 10:41:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 10:41:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1305990.1578091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMO4R-0002qJ-P3; Mon, 11 May 2026 10:41:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1305990.1578091; Mon, 11 May 2026 10:41:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMO4R-0002qC-Lo; Mon, 11 May 2026 10:41:07 +0000
Received: by outflank-mailman (input) for mailman id 1305990;
 Mon, 11 May 2026 10:41:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMO4Q-0002pf-H0
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 10:41:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMO4P-00HPCC-UF
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 12:41:05 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01b224-2eae-0a2a0a5409dd-0a2a4508cac8-42
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:41:05 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01b23f-63b5-0a2a45080019-d155802ca5a6-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:41:04 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-48a3e9862f0so27365245e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 03:41:03 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e6db10684sm62178105e9.26.2026.05.11.03.41.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 03:41:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778496063; x=1779100863; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WFnDQY3nl0rAn8uRDrd2NFIgR7luB1LYS5pBNgIoge0=;
        b=Hw21UskFjtbzAmp1MsiXjE6LTbzLwaOChmFcLFCW90OlPVh3mOw1KdDNPb22iVaMCW
         tbXsIbwScsAIUrLPhmMi6NC1SJ8CvXyGdvtKWJhTioQ1qli+LblL5nKNLYiSSVgIPfsj
         uwyU+6uFwFmwmnCdD49vgXBfTzIA6K8ef3DHrE5uTWHM5fMFjKSS/5Mtj1TNZpUnVWur
         RzbPTVcTJ1utzBVoT/Kq9WBWf4+u7L8ebrvS0n0/VVWwYszD6i++/4eJeEyFka9nF8wO
         cGQXcT3kJHXU2Cl5YZ6DBi+1lSnPQcmZhok6edXcgvrtfaTDKGo7yT/lrZ40rtFBEOey
         94YA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778496063; x=1779100863;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WFnDQY3nl0rAn8uRDrd2NFIgR7luB1LYS5pBNgIoge0=;
        b=FdaEmzNx6yB+K/dUqJ5O5HVkiNqthFnoevbxBRfs8VjVAu+I/vTk/tcMK2+b09KN21
         VhSZbVY6dOYlZkG4OujIeIh9ni+Vd7jmv3T+e6NpJtXRJ48WhEHQujetiG6nfcwpth9C
         5oa1UHNncR7W9Jub2nqw0q9/CqiZuZndplH7YGWh6VhuRu3AkxhsEDPERFJse60YuGR8
         hpNBoiqvnbm1FYIm1jwyN/n8KLvKH40HaYsE07GvVwfpxJsOILbiY3JLxMgYOOiojdoo
         rfrDPYE1yQLCAE6Es8r4mPsY2uOBIVe618hWX9Bh0bkrpPjDnuzsuss0tvCK57Um5wAk
         uCAg==
X-Gm-Message-State: AOJu0Yx+p/yxSaJltLOnD5nNv9jQy+3iG6TdqL2QVDnah9uN1BGkhenu
	JpmTlQ5oqywIQ7ciXn1j5cz5wNO8sPDy1+BlbukI5tHDXHi/aRIw49E8qF5rtExI8NN6y5kA1b5
	XyZ4=
X-Gm-Gg: Acq92OEbw7BeelkQ2IUDpX9mMo2qU17y/X0ppDD6O9sPARvcVaXYN8+iWa2DdWwXyt4
	lt1mSVHKGEs1JOB7R3TB6UDDAYVPJzXadizTda/4kJ6zBvFP6lc+/OLMJd27GQQFMiVp6vJ7sdD
	gj9dxGh42C8uNQvRXcKBkdsXoyih/NhW+zOPzs2XCKt0nlB3IWf7XloS6LY1f1Juu2UGi3M2tr/
	vuL+BFxrBeH/ymA2toJdNT9YgZl3ne9Mmq3kOnGfkrdD4WQbhGm7eRlsjaoSxPMYuJxQ2req9cK
	V/OnMkhaXKAvff66WROLc+m9pUeldNRj3+0vzb7/6Kgege12AcWRkuQ67m7rp8HoICz0kNj8oZC
	p1wkEKqU2Bw467nI0gHRQFzDOROpLsQw4eJl3lZHYkGjPgkS4RMn1+QQPngHZrMqWkRInZfdsoP
	Q/nhQ3ZQSUiWLrNwi2+V8Y2TqZX4xwsrc++baxPjGYSgyEmjgJ7JYHl08Z0CUdAropZbcK3CSgZ
	KDlnJeccNdHdew=
X-Received: by 2002:a05:600c:4749:b0:488:aa33:dc8f with SMTP id 5b1f17b1804b1-48e5df8d7a7mr269771505e9.0.1778496063499;
        Mon, 11 May 2026 03:41:03 -0700 (PDT)
Message-ID: <eacdc304-d3f7-4f45-87b2-f533ca8fce03@suse.com>
Date: Mon, 11 May 2026 12:41:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 9/9] x86/mwait-idle: Add C-states validation
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
 <d13912c9-8820-44e7-8aad-d8ee9ea17980@suse.com>
 <aevBUh77IeMuXjw4@macbook.local>
 <57233a5d-3944-433c-a7c5-a1a491a2c1dd@suse.com>
 <af2TBOapUCCChHjg@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <af2TBOapUCCChHjg@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1778496064-C5784DB1-064AD845/0/0
X-purgate-type: clean
X-purgate-size: 2912

On 08.05.2026 09:38, Roger Pau Monné wrote:
> On Mon, May 04, 2026 at 11:34:40AM +0200, Jan Beulich wrote:
>> On 24.04.2026 21:15, Roger Pau Monné wrote:
>>> On Thu, Mar 12, 2026 at 05:58:21PM +0100, Jan Beulich wrote:
>>>> @@ -1589,6 +1594,41 @@ static char *__init get_cmdline_field(ch
>>>>  }
>>>>  
>>>>  /**
>>>> + * validate_cmdline_cstate - Validate a C-state from cmdline.
>>>> + * @state: The C-state to validate.
>>>> + * @prev_state: The previous C-state in the table or NULL.
>>>> + *
>>>> + * Return: 0 if the C-state is valid or -EINVAL otherwise.
>>>
>>> Hm, I know we picked this up from upstream, but this function would
>>> better return a boolean, rather than 0 or -EINVAL.
>>
>> I agree, but I didn't want to deviate from their code purely for cosmetic
>> reasons.
>>
>>>> +static int __init validate_cmdline_cstate(struct cpuidle_state *state,
>>>> +					  struct cpuidle_state *prev_state)
>>>> +{
>>>> +	if (state->exit_latency == 0)
>>>> +		/* Exit latency 0 can only be used for the POLL state */
>>>> +		return -EINVAL;
>>>> +
>>>> +	if (state->exit_latency > MAX_CMDLINE_LATENCY_US)
>>>> +		return -EINVAL;
>>>> +
>>>> +	if (state->target_residency > MAX_CMDLINE_RESIDENCY_US)
>>>> +		return -EINVAL;
>>>> +
>>>> +	if (state->target_residency < state->exit_latency)
>>>> +		return -EINVAL;
>>>> +
>>>> +	if (!prev_state)
>>>> +		return 0;
>>>> +
>>>> +	if (state->exit_latency <= prev_state->exit_latency)
>>>> +		return -EINVAL;
>>>> +
>>>> +	if (state->target_residency <= prev_state->target_residency)
>>>> +		return -EINVAL;
>>>
>>> I'm not an expert on C-states, but isn't this checking against the
>>> previous value kind of defeating part of the purpose of the command
>>> line?
>>
>> I don't know. The question would need raising to the author.
>>
>>> Also, it might help to also write down those limits in the command
>>> line documentation.
>>
>> What do you mean there? Some of the values are universal, but some
>> checks are against model-specific values. I don't think you mean to
>> enumerate them all?
> 
> Maybe it's indeed not very useful.  What I referring to was something
> along the lines of: "the command line provided residency and latency
> values must be smaller than the default ones".  As noted above it
> seems weird to me than higher than current values cannot be set,
> albeit I have no idea what's the expected usage of this interface.

Hmm, while meaning to make this change I came to wonder: What exactly do
you refer to by "current values" and "default ones"? prev_state here
isn't "previous state" as in "before this option was parsed", but as in
"next lower C-state", as per

		prev_state = i ? &cmdline_states[i - 1] : NULL;

ahead of the call site.

Instead what I'm inclined to do (despite deviating from the original) is
to constify the function's parameters.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 11 10:45:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 10:45:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306005.1578100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMO8u-0003bB-AT; Mon, 11 May 2026 10:45:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306005.1578100; Mon, 11 May 2026 10:45:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMO8u-0003b4-6f; Mon, 11 May 2026 10:45:44 +0000
Received: by outflank-mailman (input) for mailman id 1306005;
 Mon, 11 May 2026 10:45:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wMO8t-0003ay-Bg
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 10:45:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMO8s-00EYui-Oq
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 12:45:42 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a01b351-5cb7-0a2a0a5109dd-0a2a4506d142-24
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:45:42 +0200
Received: from [40.107.162.52]
 (helo=PA4PR04CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a01b356-7371-0a2a45060019-286ba2341fe5-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:45:42 +0200
Received: from DB9PR05CA0001.eurprd05.prod.outlook.com (2603:10a6:10:1da::6)
 by AS8PR08MB6327.eurprd08.prod.outlook.com (2603:10a6:20b:31a::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 10:45:38 +0000
Received: from DB1PEPF000509F7.eurprd02.prod.outlook.com
 (2603:10a6:10:1da:cafe::84) by DB9PR05CA0001.outlook.office365.com
 (2603:10a6:10:1da::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 10:45:38 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509F7.mail.protection.outlook.com (10.167.242.153) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Mon, 11 May 2026 10:45:37 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by GV2PR08MB11941.eurprd08.prod.outlook.com (2603:10a6:150:341::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.22; Mon, 11 May
 2026 10:44:33 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 10:44:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=mrjktAf/+WtNaIbd3hZvScts17RzVIAR5x8OhtLkOo84eeaqLqyw+cNrDbu+6OnvWio/8HXDr7pXfVq+2+upzW9DXS8WfjfonHhJ9X6tMFkyjFM+Z82RpVLe+FOXOZmBKJ2yDI2m2oRPPnjGynQYF/HUn7vbYjAr01N+p2jsrvMBVjY3AmDYEUMQ1JNBqzurOqULc8XiSVxCMs5pOAIbQOLwQsM9+fEWltpcg+ZNnKLhFtNzDTfFtKUr5dq5BxjRLy4KU1mCVURS3J2GLmygvOCyyeNNprrChJgnUgmRjbGq9UDU1DubgbBc0TrjcqGau1tdJOqgguu5Iz0YCYUYKA==
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=7Nxr9pLZSiMWqsWhbZB/mQXbRf/uUqO+o48bL0WzCyM=;
 b=jrohP2vgNO1ScSabIO+VdpJrHrATc6qXDX0iGSBpw2bf6jKvkrmJdXOQ/hZPv/ZO3qtU4arMYgWkD3/yINlwDlKTZNnCmFQ3VxMDx9oQrRDzsb/VsrWEzmE134bRTdSvKklHuRyL1aB2biYQU7AhUp1HrRp/VZNYUPwlwqAR2nZTrzg48EX9w376iAZaIo2diK51OQWd1widmTGltyp16cLcWc2B8nNOZtdfmW7XqVSJdfJcNyTHZhxJlSCR+afJEL+F3/UjVsT7e4T+AkNJeI9mo5gkuxAHJX406UopZ8xKmJ4twN03tTbEgl7/sor2HBfnYwspIDRSS8P6Q1Nfyg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7Nxr9pLZSiMWqsWhbZB/mQXbRf/uUqO+o48bL0WzCyM=;
 b=j0gcpAiJUNh2xOXVFTfxr+iufDYULSuoUDZW8Eewo2vUxT4xU2/FUILMTfgAKdbwQm2Bz5AhAkEf1GR8U2c8xITaGoMKkCVGuwLknVAjGQ0JVphGpTPuPpc+0IHYGPZnamAqZ8MzdiUrhHHDW/4Wur5Sfr7EvCZP79zjbXlAgnQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nl0oEmtEy3Y7q78MDGvgW0URlty4Ya9vB249zy9MLykBOHj/j37QokiG/1isFZgqvmMfrTaSorc12iVuKJcy37qASeMV+Ib6FVg5gwThDoAoFgkC0DfCTDeKIUL8BgI5Z0L+OME4YfNaY7fVXM0ypbWnkVko0MZ2a4ttZQoZkCMqBvNiHmsnQKmFxvFcM4/p4bE9Go2u50FMuzvRBgFXtEjulFM2smkh3CHemzBZM77Vx4Gg35NQeIxam1+UqxJGjBUu3TAqVc6zBXDNNxCw7uxrrK+1pe+IeHhRhRDxXsG71NjYNkC0BmTlFalQFJeSH7Z03Bz38FsxagFsO7obng==
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=7Nxr9pLZSiMWqsWhbZB/mQXbRf/uUqO+o48bL0WzCyM=;
 b=W4qY0wUfM3lmFr0i/C6vodGsI74KrvVBxUWjUbspJ/4QVud1ilhlWrUp1K8nD+nBtONC9cnKCjLX52sirhW/wCdfO0WP6y1/viwqz8pbIDvbsZZVX1UpGmHboK9ar7us38bs7LSSx970ceGFoa1RgSJwps2p4u6LR+wDflYvOXha7OWT1vak0wdcggh31rvNZvQRjYPbU/xC545RyP1m49sknBPsyKhxWEGzIMkh4Cf/kcAI4/TQyYSXzUbSXZybx0hEbpJ7d7mbvKYJNul8P+byI0UwS6GsQLm6YKPVPo7KGpwhmQfiY7fy3PZcTz/tAkLNRof4KoS+iQOkSC/lyw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7Nxr9pLZSiMWqsWhbZB/mQXbRf/uUqO+o48bL0WzCyM=;
 b=j0gcpAiJUNh2xOXVFTfxr+iufDYULSuoUDZW8Eewo2vUxT4xU2/FUILMTfgAKdbwQm2Bz5AhAkEf1GR8U2c8xITaGoMKkCVGuwLknVAjGQ0JVphGpTPuPpc+0IHYGPZnamAqZ8MzdiUrhHHDW/4Wur5Sfr7EvCZP79zjbXlAgnQ=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Harry
 Ramsey <Harry.Ramsey@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
Subject: Re: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
Thread-Topic: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
Thread-Index: AQHc3vfGpFkxMscyakiMWMN4gJbZfLYIoFeAgAAH44A=
Date: Mon, 11 May 2026 10:44:33 +0000
Message-ID: <4372B93E-1AC7-4BF5-93A7-D1AD8FCE42FE@arm.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
 <20260508143353.3512004-3-luca.fancellu@arm.com>
 <63c08741-42dd-41c2-9f27-b14f350544c7@amd.com>
In-Reply-To: <63c08741-42dd-41c2-9f27-b14f350544c7@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|GV2PR08MB11941:EE_|DB1PEPF000509F7:EE_|AS8PR08MB6327:EE_
X-MS-Office365-Filtering-Correlation-Id: 878965f2-0c0a-407f-9ce4-08deaf4a704c
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|56012099003|22082099003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 rBgpKpwahqanc6u4mqxkR9bwoo+aGeHCPsDys9SmkRJJYMy7trzyw7zValCvg/IB4nFu+YB2wMxv/ZrHbi8P9Ti9NfrzHo2DS9AZbP22ihgFgzoZR4wazG5IXn4kVfilRwWnU6p7Q15w4LmhQwDaubjSbwDJIWYtLKetK0M0XB548A9fIlmBf33iDzc0F3KiKwHEtRt9J1cMkrzE4+xtPBfY+EGV3uleMHuLtctBUsoxVj9nJCiNulEh7U+LuJj3ramni4DV4hCqqNv189v+uxdsKHNZz+ddYiHh5rI7vwsEdU60pS/Fjcoq9rfUXhxnqryn3KI2rLM6rms4T2ZuSAHFaDukxRN4rsZmPGEnxpVzbhrCmU/AcnNE3RIa6bwneQHt+AerQGUux9ptuIiaOvm8uIg0KekIVTcLeWo4U2DUltILURuRMdjoOQEhgHgKAH88jDw0iwlfa3AsAT14+DHG4qghNU949vpgXFTvUdUBmAAKS73V4BE6OLU3UN3I4JBs+j03ZreXjMz1I89nDdDVrRN6hO4wH/5BM7XRSwOluXRFgRZTW1Lkok3Hin6NmZy6fUW+FBg1XiMRADbICVrOU3ewc+o4WVJX83PBkJr+0oeHBcqBj30jI/1pOwtKPCtqbTx2XMQM8Ahhx7tgkme1vkYUnFrjp2m6Tyt4wplAEHh7Pi/qgSNm3FfqGzwL9cx48zGiy87usEdAToIUJ1lddm602jnaYa4xXrXZVyviDow/XTz3MmxzBiBJsFFT
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(56012099003)(22082099003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <034414B75A1E0E4BB7A5D8F4DC26B6A6@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 v1l+5YsukzEBkOqNmkhjPKlTQ0bgCevSY/BGUlzn9PILbK/+KnoNVR/sXMjhMUAAdR19TkHCd3D6GFcSQV0d3CVkQisy9MoWKS+b8c0Ztnfl31H2gNAGGjfKGvjGbMTtk7bM8Hhm22JmNiPe2KYMOR5Vu9vpp23tchrWA50qfSJUNAMD5cu1Er3SUhhW31WleIQgaxfQoDv0dpGFPXhgRErrzCEM5aQzJPeywacldryc12iaa0tzw/7XBXQpUaJref9LorfcgbDY7s4LufoUqvwUNKZNyvBsUlC8FNw3xZtfyTHAbbPP8lBJYzDDo4kQYWCYZ7sYtMDNVdKvPS+3Hw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB11941
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509F7.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f2008690-cf7f-4bfe-5edc-08deaf4a4a05
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|1800799024|36860700016|35042699022|82310400026|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	EsAisNQnEMluac0DxtTFGb48/efU5AqrAIdbNtYXHccv+BaHegwY5ikgYNzcksOWEi4G0/o3Dp6ZkTxWKUc8BcjmhDf6auxAWzqZ+a9thSdhQ1k9mYASEgYqnfDCjlYA21p6N6SBj+/1l1n7DkRFICH2Pt6VrwLCVl1F339YxzkcV0G3inFa9a5PL7MIBmC+SseJXSq7Nv+hXIxWADogbyOZvThmk+1yyd5HlurQ0NSqov3Iw5sz7wZue85C+TBEH+8TMV5r8hIgi6tdRgK2EDRtD/m1a8h9rkTmrzu2Z4VZ6h+0zJj6kVPOiAIi9CWlKfaItbCvoq527RtDZMsgWnBZcV44fQGpaLzzz3avKxqhuumvKh/rxOszv2zBeVoTBoLg2mrS5rnb4RRwDBovRPVZQiPfa31rtDfHPEe7tHtVS96dZmwAoEjhljcviFZlK2GmBx1KDgt5zJeDMzA7UglET1aEyWJVPFD/e53awIfb+CgRR42QkCkOra3X40fTJMovTdPWmH34/aW4mfQl89iJp/tX0wlwC9n074iFcAdPVLbns9PyQtWe5V0LckJCta6LcrVVPXZQAlhnYBXznpcbbx7srGEW2aREu4dzVK92aZmA5grJfIBiuUxIt3sDD50/22wI8+h8RByKMvPCWhjIfIRDMRPyKkBfkJQHqmCTU0EC+ercyRngn54lDTPvGbjBLPn0rmloZMu3XnwjMG/OdpHrVKlRVFKnT+ZqmSQ=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(1800799024)(36860700016)(35042699022)(82310400026)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	gqbPBZ3liHykjHK1bxBrBnebTEzQPFCQvVpsAiSyj3wq74ic20dq7BiY8GMbPsKGtm+G3POYSbs2McOjsAo9AFkVmV6yqdYTwIe/fVsAqouvEqQMoWK21Xs1S6H9dy1ekPv7W5oVjb+6W0GrAFg1OWxS0Y1F8pvRGtWTcu4Omw3+7PXiZCbXB4SxrLXKQ6bjpOJj++zC6arfDta+YXlpcUQQ/K47NDmkCaweNAmECklZjpu11VBUFTyyvA+ZvUxJWsHRGjKdy/JIUmSicvC37JS8cS3q9IfHwbCILCPg4Ulk1dU6yD62loNbldVY/OyTIqZ3w7E0+cIJwqEwVnjQKuh5HuemUledhFukm7TLhK6HYJC0DIG1WxTDght9N3pJ2rWET0fOQs/s11rPoWScY5qktkIW9HlrHfJ7AWywPBraxiRhi7IgpYZvfJQENCeg
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 10:45:37.8616
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 878965f2-0c0a-407f-9ce4-08deaf4a704c
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF000509F7.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6327
X-purgate-ID: tlsNG-16d1c6/1778496342-87D7AD75-79813524/0/0
X-purgate-type: clean
X-purgate-size: 2160

SGkgTWljaGFsLA0KDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Rv
bWFpbl9idWlsZC5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2RvbWFpbl9idWlsZC5oDQo+
PiBpbmRleCA2Njc0ZGFjNWUyZjguLjUwZGRjMDUxMWU3ZSAxMDA2NDQNCj4+IC0tLSBhL3hlbi9h
cmNoL2FybS9pbmNsdWRlL2FzbS9kb21haW5fYnVpbGQuaA0KPj4gKysrIGIveGVuL2FyY2gvYXJt
L2luY2x1ZGUvYXNtL2RvbWFpbl9idWlsZC5oDQo+PiBAQCAtMTksNiArMTksMjcgQEAgaW50IHBy
ZXBhcmVfYWNwaShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvKTsN
Cj4+IA0KPj4gaW50IGFkZF9leHRfcmVnaW9ucyh1bnNpZ25lZCBsb25nIHNfZ2ZuLCB1bnNpZ25l
ZCBsb25nIGVfZ2ZuLCB2b2lkICpkYXRhKTsNCj4+IA0KPj4gKyNpZmRlZiBDT05GSUdfTVBVDQo+
PiArLyogVXRpbGl0eSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYgYW4gQXJtdjgtUiBwcm9jZXNz
b3Igc3VwcG9ydHMgVk1TQS4gKi8NCj4+ICtib29sIGhhc192OHJfdm1zYV9zdXBwb3J0KHZvaWQp
Ow0KPj4gK2Jvb2wgdjhyX2VsMV9tc2FfZG9tYWluX3Nhbml0aXNlX2NvbmZpZygNCj4+ICsgICAg
Y29uc3Qgc3RydWN0IHhlbl9kb21jdGxfY3JlYXRlZG9tYWluICpjb25maWcpOw0KPj4gKyNlbHNl
DQo+PiArc3RhdGljIGlubGluZSBib29sIGhhc192OHJfdm1zYV9zdXBwb3J0KHZvaWQpDQo+PiAr
ew0KPj4gKyAgICByZXR1cm4gZmFsc2U7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbmxpbmUg
Ym9vbCB2OHJfZWwxX21zYV9kb21haW5fc2FuaXRpc2VfY29uZmlnKA0KPj4gKyAgICBjb25zdCBz
dHJ1Y3QgeGVuX2RvbWN0bF9jcmVhdGVkb21haW4gKmNvbmZpZykNCj4gV2h5IGNhbid0IHRoaXMg
ZnVuY3Rpb24gYmUgY29tbW9uPyBJIGNhbiBzZWUgMyBkZWZpbml0aW9ucyAoQXJtNjQgTVBVLCBB
cm0zMg0KPiBNUFUsIE1NVSkgYnV0IHRoZXkgZG8gbm90IGhhdmUgYW55dGhpbmcgdGhhdCB3b3Vs
ZCBwcmV2ZW50IGZyb20gZ2VuZXJhbGl6aW5nDQo+IHRoZW0gaW4gYSBzaW5nbGUgZnVuY3Rpb24u
DQoNCkkgY2FuIGRvIGEgY29tbW9uIG9uZSBJIHRoaW5rLCBqdXN0IHRvIGJlIGFsaWduZWQsIHNo
b3VsZCB0aGUgY29tbW9uIG9uZSBiZWhhdmVzIGFzIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9u
Pw0KDQpBcm02NC8zMiBNTVU6IE9ubHkgdjhyX2VsMV9tc2EgPT0gWEVOX0RPTUNUTF9DT05GSUdf
QVJNX1Y4Ul9FTDFfTVNBX05PTkUgYWxsb3dlZA0KQXJtNjQ6IE9ubHkgdjhyX2VsMV9tc2EgPT0g
WEVOX0RPTUNUTF9DT05GSUdfQVJNX1Y4Ul9FTDFfTVNBX3tOT05FLFBNU0EsVk1TQX0gIGFsbG93
ZWQNCkFybTMyOiBPbmx5IHY4cl9lbDFfbXNhID09IFhFTl9ET01DVExfQ09ORklHX0FSTV9WOFJf
RUwxX01TQV97Tk9ORSxQTVNBfSAgYWxsb3dlZA0KDQoNCknigJlsbCBmaXggYWxsIHlvdXIgb3Ro
ZXIgZmluZGluZ3MgYW5kIEnigJlsbCBhZGRyZXNzIEphbiBjb21tZW50IG9uIHRoZSBleHBsaWNp
dCBwYWRkaW5nICsgY2hlY2suDQoNCkNoZWVycywNCkx1Y2ENCg0K


From xen-devel-bounces@lists.xenproject.org Mon May 11 10:50:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 10:50:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306016.1578109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMODt-0005Ns-Ul; Mon, 11 May 2026 10:50:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306016.1578109; Mon, 11 May 2026 10:50:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMODt-0005Nl-S1; Mon, 11 May 2026 10:50:53 +0000
Received: by outflank-mailman (input) for mailman id 1306016;
 Mon, 11 May 2026 10:50:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wMODs-0005Nf-Jx
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 10:50:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMODr-00ATb8-TR
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 12:50:51 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a01b489-2eae-0a2a0a5409dd-0a2a450a800e-6
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:50:51 +0200
Received: from [52.101.62.57]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a01b489-56b3-0a2a450a0019-34653e3934cc-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:50:51 +0200
Received: from PH7P220CA0160.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:33b::18)
 by MW4PR12MB7144.namprd12.prod.outlook.com (2603:10b6:303:21b::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 10:50:44 +0000
Received: from SN1PEPF00036F41.namprd05.prod.outlook.com
 (2603:10b6:510:33b:cafe::28) by PH7P220CA0160.outlook.office365.com
 (2603:10b6:510:33b::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 10:50:44 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SN1PEPF00036F41.mail.protection.outlook.com (10.167.248.25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Mon, 11 May 2026 10:50:43 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 11 May
 2026 05:50:43 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 11 May 2026 05:50:41 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GHonaANgBEZMW45qe4mECxeVBbDz2UGXCboUQpnSbNr1LX37kwvzMF+oetjz2FV7BJ7VjT+kW1XB0/cj/Grb6dSQSA1SPZxmkYAW+u0J2jtWSs/Dh8rmmxG2t8Dd1AtOadauqMSnir1q+jL0XvjMUo4Brk60h2HPH57otBEBxcdu9nzavo3CD5EX5ia6vpe1hgjCUvT5VlYWaZhweHPEiJShAKJ0RbUrv+pPt0oz7Rrhf1CpKtHJ3mqHMP0YMzribli+J39Q+sKGW5fbACKcmatdrvClW65Xnfaq+l7EH5X4gfW1XD9rIOphg9CNAS6ZgF1tNjbu3d40Dh7qPmpiPw==
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=3UUBguPlhjyv2WTqU3xP1vMGoLN6aTg6DByEoeNDgSA=;
 b=nWGyu+WwdKBN/UhiXjPYJPZQy+tJD/Te1tO/6eUEwy6bwK4nJPXk4cxLQkO0gaC8FdH0cTi+gbYGOW23Nr8ogc5w7LNB/1+SeWiYQCXuhRE2SLIKyTkzTavGfAIub49RQQ9GMficC/QtXGjhG3FyYHz4APa80njpdKPKRnKCPL05fZBG6faPoBgvEkE/C8uPnjQls4oII8aRCJrHNwz4k5yyfM59DMD66AFg2n867TK+p9wH5IxZlRdNvudrSBjE0Ml60EwOXGg8Pj4v93x6nPTceb1UO7kIbzYtrip73owerb60dsUJDzBQ6M3sg5uh3ZP/Jnqnx5e1PcO1TFrshQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3UUBguPlhjyv2WTqU3xP1vMGoLN6aTg6DByEoeNDgSA=;
 b=Z2bMSfd/Xl00T7alORmA8x7rij4UFo9SgvZCoaV3SmpgdyXFuHoCYI/+9oVIuIcysNkI1iDUkSsVaZ54H5D8BrnFiBhEVQLpKq1qyqP7yIhHSSxjr665842IWOVa2bGv+w4upb7IZkENAWIVFjnsNLKOFQQwZ8phvc0lv0Un0F4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <ce38f845-42ac-491b-98c2-eb2bd90f00c1@amd.com>
Date: Mon, 11 May 2026 12:50:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
To: Luca Fancellu <Luca.Fancellu@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Harry
 Ramsey <Harry.Ramsey@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
 <20260508143353.3512004-3-luca.fancellu@arm.com>
 <63c08741-42dd-41c2-9f27-b14f350544c7@amd.com>
 <4372B93E-1AC7-4BF5-93A7-D1AD8FCE42FE@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <4372B93E-1AC7-4BF5-93A7-D1AD8FCE42FE@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F41:EE_|MW4PR12MB7144:EE_
X-MS-Office365-Filtering-Correlation-Id: ac027343-50cf-422b-747d-08deaf4b2697
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|7416014|36860700016|82310400026|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	2d0xDtZcsx5LM7EnpR4B866R9l7xc8JqsIdFUM/+7oWryuanJQPwJv11WmXGe8zeujvt1WbVUAJemQck5svVEjgyyVpG9jb5IH3ZdpjHEOspQUSg8Bq1zdzgcniq0CpO7PNJmojP+551D63nFs+ceFHE1NevSzYgpBSgHlKJjR7D/Vi1QNCVCPR6YHU7QOMA89mKhk9vQEPGIH+eMYwOFz3pjfLqB9PXUphcjy/QHEh9cd4Pi6bpdDEtNxfZx/6luBYA8dTo6JXK7qj0x/NiUOPyRhqdaRoTjOeXcltnZfBThZ1X38E0Fu75yxd/rLOB0EZwkvgPQw2ql1DjYRSr2MQoyZ4GBWtFPrNXr9GMH6hlYgCugiXxnpi+VHOhzt8/uE6BApLQq/N0BFTtK0nTeAS9JyGIsE9FMMRTEdjdzJhz+istx7nvtGg2NMZPHaRFSktONtdN60ibMRFdplBBcp2ezgczDTI9Gl3QttL2XCLKRCE80rqumr+aIGqaeXOteVrlNrkAc9eAF/d1E+JqjWcYdnGWrrFNSEeIeBWFJvK8WBaiftJA1rjrAtr0uXOQgA12DMWiFC7rYz4LGnJxLPRrZ9ntJ3CjMnOS0xlFlGkQbavxpHzvGj1ssZfxj6MDZd9dQHPar8nSHHUQ9a0VHiw6uG/go2B/+i3xFTQky8zLR9tHPMbBJOVWaXDo3ri5uXvio5n8CI0nvFxibwoTCkP0YJXvYHsg3X/4TGRTHuo=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(36860700016)(82310400026)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	8Kf3/8ImtdbGmAHp+uhJGRveW6ByO4CtqUuSxJlD2wqangZ1SdhpkKcHTuD0rQf5ozDUB8/WOmST6NfaAQX4bhR/3FULdoabLnkOoBpnErIVDWFy+/XowPPE8feeN1Y4h8uN7jVJ1YC6WTSWmg4N5k5hQZOkglnHgvmdtk/+wPHzeuKATY7sEqXFqDg7d6vj3C9EnipmP/MFpXeNi2LZ9CmzNb7F5+TBAk2VLD7BtNihA83hulEL02jsPHQ31lMC8M05eB3k19u8Wg3du8ZLltK3aRhbxyPrD7WC7K+snEGgE2fToB6S1Z9zONksc4DHwyHWzPQoISkilwcuzDlHbs0GNzl8rZsg9vs6Z50As+DObXKy60mgQk2BIBHVdbdEnLjHm3PTuR1jOfTPyepDXhab7BuLjFq4TSOBXZardIafado49aHmdeTbreXP+DdO
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 10:50:43.7696
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ac027343-50cf-422b-747d-08deaf4b2697
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F41.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7144
X-purgate-ID: tlsNG-4011c0/1778496651-709668B7-5DDC8C7B/0/0
X-purgate-type: clean
X-purgate-size: 1689



On 11-May-26 12:44, Luca Fancellu wrote:
> Hi Michal,
> 
>>> diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
>>> index 6674dac5e2f8..50ddc0511e7e 100644
>>> --- a/xen/arch/arm/include/asm/domain_build.h
>>> +++ b/xen/arch/arm/include/asm/domain_build.h
>>> @@ -19,6 +19,27 @@ int prepare_acpi(struct domain *d, struct kernel_info *kinfo);
>>>
>>> int add_ext_regions(unsigned long s_gfn, unsigned long e_gfn, void *data);
>>>
>>> +#ifdef CONFIG_MPU
>>> +/* Utility function to determine if an Armv8-R processor supports VMSA. */
>>> +bool has_v8r_vmsa_support(void);
>>> +bool v8r_el1_msa_domain_sanitise_config(
>>> +    const struct xen_domctl_createdomain *config);
>>> +#else
>>> +static inline bool has_v8r_vmsa_support(void)
>>> +{
>>> +    return false;
>>> +}
>>> +
>>> +static inline bool v8r_el1_msa_domain_sanitise_config(
>>> +    const struct xen_domctl_createdomain *config)
>> Why can't this function be common? I can see 3 definitions (Arm64 MPU, Arm32
>> MPU, MMU) but they do not have anything that would prevent from generalizing
>> them in a single function.
> 
> I can do a common one I think, just to be aligned, should the common one behaves as the current implementation?
> 
> Arm64/32 MMU: Only v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE allowed
> Arm64: Only v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_{NONE,PMSA,VMSA}  allowed
> Arm32: Only v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_{NONE,PMSA}  allowed
What's the reason for allowing NONE for MPU here? None denotes property not
specified but at this point it should be set to a default.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 11 10:52:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 10:52:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306023.1578117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMOFd-0005uV-8K; Mon, 11 May 2026 10:52:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306023.1578117; Mon, 11 May 2026 10:52:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMOFd-0005uO-5X; Mon, 11 May 2026 10:52:41 +0000
Received: by outflank-mailman (input) for mailman id 1306023;
 Mon, 11 May 2026 10:52:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wMOFb-0005u0-3o
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 10:52:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMOFa-00CizY-Gg
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 12:52:38 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a01b4e3-5cb7-0a2a0a5109dd-0a2a4509a1ba-40
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:52:38 +0200
Received: from [52.101.43.5]
 (helo=SJ2PR03CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a01b34f-2497-0a2a45090019-34652b05dda1-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:45:37 +0200
Received: from PH7PR17CA0022.namprd17.prod.outlook.com (2603:10b6:510:324::7)
 by DS0PR12MB8416.namprd12.prod.outlook.com (2603:10b6:8:ff::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 10:45:30 +0000
Received: from SN1PEPF0002529F.namprd05.prod.outlook.com
 (2603:10b6:510:324:cafe::59) by PH7PR17CA0022.outlook.office365.com
 (2603:10b6:510:324::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 10:45:30 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF0002529F.mail.protection.outlook.com (10.167.242.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Mon, 11 May 2026 10:45:30 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 11 May
 2026 05:45:29 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 11 May 2026 05:45:28 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=prqm+kZiGDTle7W9Y+DX3DnkKub05igOlvVmcWISjxluRcjdUnYDjWakOBuZJfQSTJ+irZx54yc1S9meP+g2EFgtM5BXftMjhJPaxnZ2/7aBRa8n5Xk95jH4luBcoUHpwNJxmDbQ8Cg9/LIBG5LJmccuXKdj8Tc/QmJKOPkPAELkGU06DSdQPphV+GeIbVrzafXK7kDlui7ma35RWmjH6Yp3RHrJzh1bnYy8k0YLu4t/nFFAhQXEr3puDA474t7NIJgSfxOV5eJITKXWDALcLrJpcP44y3Oxr8wnIKxoKmASm4J/eIaDynqx7t0Swdl6TjJ/89tLUpFi0qlolhhzCQ==
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=yNB2libJw3++ctP4LmCO3yxzuvARImjF/CR4UhFMlKY=;
 b=GjEds9wW1280HCD9Au0qUKuDoHgj/HNlZhAsycuWjUYJZmqX6j2ZP2Y+D+tLr/NlfLQMoA3XGLE+6uREEej/EUc9xmCDOJswgfxUe+2QmnlVjwi68xsdwTmvGByWPuGlaMAV7nDVO3eQksKw1rwb2rwRoQvvFEHVA0gs8sQAS2vusioU+t9JsVAi5CrJEba+N5TrnUKRBDpxV7NJDtuhbDZAR5qDkzqr0hVEjbdr9ErSv88CLiE6TemaRlRPD9r6CyBIDYZ0R/gT92lImSg3JfYqmGj7RKKJzumrIjRlSvzbSFf+vi93SWuljzQvScxDt+qGqv3SaJS/TK5REZTBLg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yNB2libJw3++ctP4LmCO3yxzuvARImjF/CR4UhFMlKY=;
 b=ScpG6636OlBslyV1RLSEB9+fZW17hAThbZajlRF1AOagTatIH7Gf7cGjRGtWVWlzA5VRArueYXtoRFCK41D2PPXsjlao3VQIcWd6kvVL1Jvuz02tQ3S0xORLWGjbD+5UhlcYXwlrzgAQAich+byxwaqxPIs9bX9eGm9z5Urbfnw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <494b99b4-2d45-4893-9300-b3e8ffdd4396@amd.com>
Date: Mon, 11 May 2026 12:45:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 3/3] arm/mpu: Implement p2m tables
To: Luca Fancellu <Luca.Fancellu@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Harry
 Ramsey <Harry.Ramsey@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
 <20260508143353.3512004-4-luca.fancellu@arm.com>
 <a9460f33-1798-461d-95dc-c40cdf2f7f68@amd.com>
 <0A9C53BD-D9FD-4CBF-B874-E7465C8E421E@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0A9C53BD-D9FD-4CBF-B874-E7465C8E421E@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002529F:EE_|DS0PR12MB8416:EE_
X-MS-Office365-Filtering-Correlation-Id: 3d0f368a-ce0d-469a-25dd-08deaf4a6be4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|1800799024|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	2nlhoa8Wp1uWfkWNVuOhGkUzwwQKvkmV1FcrfeeRwPRE5hCts/XDJGFy72YzD0lDJnolaL5xdhS0YIuE2nm+gd8JxevIpk3TECrlXMK3VoRVss0XAgyiMzwkym79Ns5JrOysXZzNztmDJvb6QbQa1aAsQp8dnDRuQNaz5zM3skHZpcK16+mAH38DaQdkP5QjyoVdRK5Ln+CR7lFwURPmCMZbdekT0jcSDt2ac8xtYx6vNM8SeTR9UboylIv4EuNXX97hHDVK101eZcrtmEk0xMpmLvwx/r1Gm9sUrgJDKfmBs0mi+aHs8tKnBneC6bbMfCw5ZWwZ8ipuxqyxClkw7tTQ55bgE9Xh7T8yqe9MGW0nmZ5tfdBMqQ5UU1cr1gJV2KJ8zHW1vBIEqW9SkdO/cWkCHYUjYUQY2fEkuw6KBimxfeUh6ZGwLctbaq9mVGZaueIPGchMO6fAwxNVQ18lBa90TXhIpNjm6o+pOcPClCFXzWZYWHBErEIkXeMX3kxBMb7ML7cjDNX4LL10ENMLI1VEhLtulPTMIk3x0wVPDWJbAHYoa6r4OSa9n5CHBSbzYUqJiRWOxSjvzZ3/sQlpBGaXt9IFQvu4aMI/GErkvqBEuwDql23Kk5yiy7KJfH8eq8NXAII+CJw9vZJCz3jdDGcKDrYoXZfyDIAVyEcyYzRnAR1dpVvfzNj+lweVIpXSGL8LUtzixbY904HZMYaoh3uXxyJ6vOOM+gtjZldRoYQ=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(1800799024)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	hPWgL4FGdLEi79U4gEPJKG+AvbMZ6h921NhI9Od4xDIJ1fcl4oGO3pSFBsesR5byUghe/uXjFHjEMINfNgF5eaUxGgGVcwPp89T3Z2aPQqFyaplhY/MK1WHEBuDSyQf1VFkG7z2q4mC4pp2hu8ZMY9s8XQVDX9OoUEdIwVT52qSLaaRNCXYd9xdZ4/mborHlinxVPHA1YlFnfeRMcuV0sTgs/YFFayE2dqGwN87Pfcm5hS59rU21u/gLDqSinjuQmC/nWx72PgbmbH7xt9VxRw80V3jT6c0C+WxOTZQDxlat5jp1aQKN9KIyftmw1Ve5XnnehHV5KvZIFl+54khNxJYljsFzhi3sDXYhEO6HBNqoNsajBxO8bQcuZ6hszGqfiYPDyFAet8KNIwU68Zrh4PClEmsarRBAVtWLd9cBlDof6Rd/rJoWfvyQbEn3P+TN
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 10:45:30.5088
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3d0f368a-ce0d-469a-25dd-08deaf4a6be4
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002529F.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8416
X-purgate-ID: tlsNG-bad1c0/1778496337-89377A53-B48A3C80/37/8731086901-1579827
X-purgate-type: clean
X-purgate-size: 3075



On 11-May-26 12:39, Luca Fancellu wrote:
> Hi Michal,
> 
> 
>>> diff --git a/xen/arch/arm/include/asm/mpu/p2m.h b/xen/arch/arm/include/asm/mpu/p2m.h
>>> index e46d9e757a1d..0d4149c71987 100644
>>> --- a/xen/arch/arm/include/asm/mpu/p2m.h
>>> +++ b/xen/arch/arm/include/asm/mpu/p2m.h
>>> @@ -3,8 +3,15 @@
>>> #ifndef __ARM_MPU_P2M_H__
>>> #define __ARM_MPU_P2M_H__
>>>
>>> +#include <xen/bitops.h>
>>> +#include <xen/macros.h>
>>> +#include <xen/page-size.h>
>>> +
>>> struct p2m_domain;
>>>
>>> +#define P2M_ROOT_PAGES DIV_ROUND_UP(MAX_MPU_REGION_NR * sizeof(pr_t), PAGE_SIZE)
>> You should include mpu.h for MAX_MPU_REGION_NR definition
> 
> right, I’ll include
> 
>>
>>> +#define P2M_ROOT_ORDER get_count_order(P2M_ROOT_PAGES)
>>> +
>>> static inline void p2m_clear_root_pages(struct p2m_domain *p2m) {}
>>>
>>> static inline void p2m_tlb_flush_sync(struct p2m_domain *p2m) {}
>>> diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
>>> index 010ce8c9ebbd..ed1b6dd40f40 100644
>>> --- a/xen/arch/arm/include/asm/p2m.h
>>> +++ b/xen/arch/arm/include/asm/p2m.h
>>> @@ -48,8 +48,13 @@ struct p2m_domain {
>>>     /* Current VMID in use */
>>>     uint16_t vmid;
>>>
>>> +#ifdef CONFIG_MMU
>>>     /* Current Translation Table Base Register for the p2m */
>>>     uint64_t vttbr;
>>> +#else
>>> +    /* Current Virtualization System Control Register for the p2m */
>>> +    register_t vsctlr;
>>> +#endif
>>>
>>>     /* Highest guest frame that's ever been mapped in the p2m */
>>>     gfn_t max_mapped_gfn;
>>> diff --git a/xen/arch/arm/mpu/p2m.c b/xen/arch/arm/mpu/p2m.c
>>> index f7fb58ab6aa8..8d5c65b1003f 100644
>>> --- a/xen/arch/arm/mpu/p2m.c
>>> +++ b/xen/arch/arm/mpu/p2m.c
>>> @@ -28,10 +28,63 @@ void p2m_dump_info(struct domain *d)
>>>     BUG_ON("unimplemented");
>>> }
>>>
>>> +static int p2m_alloc_table(struct domain *d)
>>> +{
>>> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
>>> +    char *table = alloc_xenheap_pages(P2M_ROOT_ORDER, 0);
>> Why char and not void? We use void and pointer arithmetic is done by treating
>> the size of a void as 1.
> 
> I did it on purpose since it’s a compiler extension, but if you say it’s ok I’ll change it to void.
Yes, this is a documented extension in our MISRA language toolchain and as you
can see, we use it in our code base.

BTW, please also ...

> 
>>> +    unsigned int i;
>>> +
>>> +    if ( !table )
>>> +    {
>>> +        printk(XENLOG_G_ERR "%pd: p2m: unable to allocate P2M MPU mapping table\n",
>>> +               d);
>>> +        return -ENOMEM;
>>> +    }
>>> +
>>> +    p2m->root = virt_to_page(table);
>>> +
>>> +    for ( i = 0; i < P2M_ROOT_PAGES; i++ )
>>> +        clear_page(table + (i * PAGE_SIZE));
>>> +
>>> +    return 0;
>>> +}
>>> +
>>> int p2m_init(struct domain *d)
>>> {
>>> -    BUG_ON("unimplemented");
>>> -    return -EINVAL;
>>> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
>>> +    int rc = 0;
... drop this redundant assignment.

~Michal


From xen-devel-bounces@lists.xenproject.org Mon May 11 10:55:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 10:55:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306029.1578128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMOI7-0006QT-Ld; Mon, 11 May 2026 10:55:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306029.1578128; Mon, 11 May 2026 10:55:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMOI7-0006QM-Ha; Mon, 11 May 2026 10:55:15 +0000
Received: by outflank-mailman (input) for mailman id 1306029;
 Mon, 11 May 2026 10:55:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wMOI5-0006QG-Hj
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 10:55:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMOI3-004Kg4-9C
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 12:55:12 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a01b58d-2eae-0a2a0a5409dd-0a2a450683a0-16
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:55:12 +0200
Received: from [52.101.69.53]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a01b590-7371-0a2a45060019-34654535d277-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:55:12 +0200
Received: from DUZPR01CA0065.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:3c2::8) by AS2PR08MB8312.eurprd08.prod.outlook.com
 (2603:10a6:20b:557::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 10:55:09 +0000
Received: from DU6PEPF0000952A.eurprd02.prod.outlook.com
 (2603:10a6:10:3c2:cafe::48) by DUZPR01CA0065.outlook.office365.com
 (2603:10a6:10:3c2::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 10:55:09 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF0000952A.mail.protection.outlook.com (10.167.8.11) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13 via
 Frontend Transport; Mon, 11 May 2026 10:55:09 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by VI0PR08MB10620.eurprd08.prod.outlook.com (2603:10a6:800:1b8::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 10:53:58 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 10:53:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=OrFtmLx1/X9IwDslsFEECEVhHfIK6V/14nXaTix41F+ND7QSX+0qeWtqJPuGDoCnPxLCYktB0IpNCuc5/DjpbL2mHrOoPsQMUwfDklW0OcdNh6TNFYaVYx418QS1ANm0Vz/hVY9dqXC/giTa7CGTdIrwZe09Cq//4rrwqyImAFTYgDl4kEffwbR2cVlBHcWYkgOz3F0bL9lzIuuvUJgmIDCE42Lea+eeyvV9q74Hpb5PF1jK0lWhPDyqwpmiJ1EKyR9z98pSGAyg3/xOR0oee8Uv1vTvOpUnurkMOUtVjf1YFXbjYjHzMM6ku4YSvVrtRbRH2YlxjHTAQfboVrnl8g==
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=BngnCWkypmX6r8VHDDEVwfpGPAPJFtqfXcW2ZXtgsPA=;
 b=PI0Fh/eoohoJH9nWL/g1qrrtrARTUb5B8KSznZ2pzuCtf8p2R+Fb4lenP6HVe6qRtxpQrJlYfblUgbHVRJDn5nsStAeJHByVslvN6YpKONJlbwG0aQP0zAO5LFifxpJXJuIQ5tIWgBuBNt8Go6fQCOT/Nwq/YvkDyDAVCbSxbVzQzJ2B06b+OEeNuKu61glVJft0TeuOvhQ72K90HTJr4/xJ0dhWq13wXp6ZuwR1atltpShE4PklTdsESBOJaB9BuYODTGpHsVFBUVUlpqImEyhOidls+qPuhtX1OHktgmx6LPabIKgCOeZIV9RiRg3BcZK+zyKsRfvCthQ/1va2iA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BngnCWkypmX6r8VHDDEVwfpGPAPJFtqfXcW2ZXtgsPA=;
 b=ixyZwSGNeuFmZXjoVXvtlsJr7qdOL6sHhKAUfW8zoYg8BoHYGmnPR3z/nKgtKe9ky2lqikisBnQjhvySPpLFaXWmgf01CjtJs7Xfhk7YA0VpUYFIvuoXCCwx3tWJ5rbYanOO4Gur12Fc92Hx61u2bnC5FvAaZymDyVtGZDQp0AY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NCC4jsv4s+s6fNtfmGQH57Z3JqF+npion4puqaDKNEc2temY/N1I6BdaLeWRuQPZj7IVfpKopLNwhvNhVG0/+rcZnglZoFX3i3mLDxMYmxNQOnDCPjmZSA2BuBF1Crd6z8G/lTQVXw8AYtNz0VvIlMwXbZlJZSWn52z1DlGI2v6gAjGqfqRqXh/8pevb1v4rHzUcyUW1tVMQFz54WEqAnUudrJhZwPNv6/Gysoyf/f80T73meMJdOm5fax06NXwGIsiepun4YoJy0+nVPg6LbVzl+7d3S4/2d86+RQfwvQHZYk7j7J33IcGk7EloHYzuFzBVK/LCa75i0CtOMkHAuA==
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=BngnCWkypmX6r8VHDDEVwfpGPAPJFtqfXcW2ZXtgsPA=;
 b=w/KY0LgeTlgR7GTg4l0OCCd1924F7aapa0Ymlano4yR2vqlOmLIIDnQSvnaN1L3MojKxjFzXtQQg4rvJWFaCLiv6GoTA21Pt/wwoskYIP0IKtuVsykGGrjNNniEcg/b0P9QyOcoAzLrY9AfkVC6IogZnyeA2yvT/QJNERH5BlxD4aGrbD6WU6rmCBj6N162wLC8HtMzz6It5x60R1bYK9vSYKndb7IninvaEPdzbUvogZsxboHM8cGeAbAnbO+xkL4qUR01cZ6ALQdIPrQiq6UxFKMICkskZCfgky6ciH8VPsFvE6qAlEUlEUCEGW1CeBDmgIjfpKbydgATWCrHXmA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BngnCWkypmX6r8VHDDEVwfpGPAPJFtqfXcW2ZXtgsPA=;
 b=ixyZwSGNeuFmZXjoVXvtlsJr7qdOL6sHhKAUfW8zoYg8BoHYGmnPR3z/nKgtKe9ky2lqikisBnQjhvySPpLFaXWmgf01CjtJs7Xfhk7YA0VpUYFIvuoXCCwx3tWJ5rbYanOO4Gur12Fc92Hx61u2bnC5FvAaZymDyVtGZDQp0AY=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Harry
 Ramsey <Harry.Ramsey@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: Re: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
Thread-Topic: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
Thread-Index: AQHc3vfGpFkxMscyakiMWMN4gJbZfLYIoFeAgAAH44CAAAHaAIAAAMeA
Date: Mon, 11 May 2026 10:53:57 +0000
Message-ID: <A3D4B900-2A5B-4398-A914-C1635E34C8C3@arm.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
 <20260508143353.3512004-3-luca.fancellu@arm.com>
 <63c08741-42dd-41c2-9f27-b14f350544c7@amd.com>
 <4372B93E-1AC7-4BF5-93A7-D1AD8FCE42FE@arm.com>
 <ce38f845-42ac-491b-98c2-eb2bd90f00c1@amd.com>
In-Reply-To: <ce38f845-42ac-491b-98c2-eb2bd90f00c1@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|VI0PR08MB10620:EE_|DU6PEPF0000952A:EE_|AS2PR08MB8312:EE_
X-MS-Office365-Filtering-Correlation-Id: 69b3a831-88f5-4b78-f1d1-08deaf4bc4e2
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|38070700021|56012099003;
X-Microsoft-Antispam-Message-Info-Original:
 MoRGJ6+iBwYjtdnmjHovqNaYv7M9OoozlkVcvEYPj+g2tTWtzzyjGYgAPH2v1OsPC8aJlhCDzt8DivoWrfxDRE+d4MurkJ//Zo/sbIORToLSwf/E+hDoZ51WujODcHaxdo12oYAomEah8ycwGdhGdNg6r4fW0IYrkHVh55gpqyrF6lwsKE6Hi0Bi+Wq+tuum9ZhHLQPpJFe2c4XylpYyDMKxCVcOhPFAY8MT2KoQQ0F969WHr9n3uyldu1/wkFLsUzaUnR+5BlTixAl75P07fG5kIqj//U0vHmE+xa9QqnZ7RItVF7FjHa/Qks37szcVNuiXGDoz5NKz4VWaFWLGs0Z/oebVV83ZsTiury3do9dp4wgd7iFAdT701eu1PZPHIf2PyWbEXc80+Dn04o2ThNwgUotgU4EqUw3boThTltDrwjlXj2N35pXU3CMmNBBnwprHIyiwaTXlcg7eLgmopECfX7H2Bec3rHMXOytIDJm4EbA6vARKQF9zKHIW7FWxIQPxrJiuzJyhkG9VXA+i9DEz4uzfKSFJBs3LAvV9slkQmMXX3Qk2avTluGwVoaoFRybdzv643LiBmCr4NBUasKds6GsHCl2wsumUB4GHK72diWn6sfUUvhwQIxM8ol5iSvp6z0JPvanE+05ECC4kv2uEtfMm0LIrwDPztOT6876jKGk49cJnuCR3K4DIfBnm8P+vqzga1P70o9iOcbrPSpUeWdXkhkGaMTkctQxsimqvsbglxm4C5vRCE/Cn5ikc
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(22082099003)(38070700021)(56012099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <A63605161AF08E459CABC5EC2C608DED@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 jp36vj8z+CdlnwuO6MWQSxpuuUQ8tL7JjRPzyI0t1SeRXiZMswgAO+D2Uqbtm9OUlfFVLB2LRFACbX8uiuNdIhMpzUPFWIJNDXNL0j0lYeRPHjtGgd7zkIFr0OhJ3UPxjHBWfgeKX3LHUh62stD8blmBKpCUWKnrQUG66VFbhzARvUHF/+FY3EDzZNCWMOonqQhmTgwBVb679Z2pzTGfXpD/LqRjg3TubmhU+Mqzuz+A0ezbWU5s1Ov4nAgBX6sPKA260CyjwxPBFuvYcVEXU9hrmvZvFUZlBtqmw1rPr9bQo9yajHQ8Srkwl5hhfe/Hu2WSD6Omp2jGdAdg3kdsoQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10620
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000952A.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	12cb8bd6-4c01-4202-e3e5-08deaf4b9a36
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|14060799003|36860700016|1800799024|35042699022|82310400026|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	tW13uoG1XFJVM381OZI8tAwPn6BH3d8s+PvwHewCB4sTYDbMZN/AbWdWinj4uPKqvQzByWRqpMuIajYsrXkZzLI/qPYgOpODyJfXn/ZdoZfo+qfplgAKmuUqOAmhVDsY48EpHETkhC8Ji1xIOlVjssgmTChBBQhCEn16edVCZQuUZhI/mIII5KAHWbeQBcRYx3lfmfSZIZ91k9Wy04h4V0j6Aubkc34dCVPDmmWNutVca0ZR3ImrtwkpCY66bRrIHnUEQQcTY+AcyWkrS8JiOAmEXTwREtN6g9y8pt8U7Td7bVBJCGHo2xyiCbtSVNG7R2EsU9mWTfVsTHHa6aqMjlRerrTZ/01YhlVDJTyIIKk8OFRLLnleNQ390lA28ld1rGVJbVboINYnpm4RHhxhK5zBkTej2hvCHx0vtKL+BFWUmNBxR0Osrh9czoIfLKqGl3T+0XQA/89mrG82m/B4gk1WEEyOWINJxTDnN5DuPKlf3zBCb/l84O22OkZE1KHVvoZl3WuXGfuQ4vpmF1ZO6C3fCP1zpKHxmqEunOv/hleS8T5Fhlt0STtVeAQpqVbzY4iSDSJwGU7Rlf52CofpbWfWf3+bhdvhHx3GGfnGio7lDcfTKTlG++1me6kFUEPOFHAp0Aoucw8cDuzbSyew0HAjfPHBqUbUg/tspzrJ/FhoYHVR1u+hy5vc5R8RRSK+Y5FTuFwAVOHYZqGjCm1q3ZCRMdFpwQP6tQbm/wvULYw=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(14060799003)(36860700016)(1800799024)(35042699022)(82310400026)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	vgrhQewiVT9ued8NF0+33I3R56cmnV43kMG8xDpGv6CoNtmwtY+Y36qsAESxoQ1gszlR02V8EfiBM/Vl9cEcOz2IzY9X5ANsGLpEtjjSnPBPyZW7R75hhqXMPh0d/+rbCPQBOb6R9oIlW9GXGSdE7ziLe6iop2D5rpl42fcHdjMFvk0GMXsG6TfKr/fXFN4ncnMF3GrqjwEPtobXfFedSm1umVjxy1pjxlJrKJS95apKocWmL/yvF1jgNUP67GZ3sJPQHVyBSvRkQM3s4qvxNRiGTgOV+6vg4b3fsek6DlWTYQJmoxC+Cgi9FQyuhluMbtj6CclCD/+6/AM4gkFaUwChgkRpsUGeRaOZkOZ2FG+Q+a8d+h/3UuV8DPwNtJqqpr8nBNOxOaYXJmOeNxTAALx2KU5aJqEVXtQJCVdUhFVzWMqS0HOFyg/Cbms5tAil
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 10:55:09.2761
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 69b3a831-88f5-4b78-f1d1-08deaf4bc4e2
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU6PEPF0000952A.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8312
X-purgate-ID: tlsNG-16d1c6/1778496912-86168D75-5626FBD7/0/0
X-purgate-type: clean
X-purgate-size: 1020

Hi Michal,

>>>> +
>>>> +static inline bool v8r_el1_msa_domain_sanitise_config(
>>>> +    const struct xen_domctl_createdomain *config)
>>> Why can't this function be common? I can see 3 definitions (Arm64 MPU, =
Arm32
>>> MPU, MMU) but they do not have anything that would prevent from general=
izing
>>> them in a single function.
>>=20
>> I can do a common one I think, just to be aligned, should the common one=
 behaves as the current implementation?
>>=20
>> Arm64/32 MMU: Only v8r_el1_msa =3D=3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_=
NONE allowed
>> Arm64: Only v8r_el1_msa =3D=3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_{NONE,P=
MSA,VMSA}  allowed
>> Arm32: Only v8r_el1_msa =3D=3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_{NONE,P=
MSA}  allowed
> What's the reason for allowing NONE for MPU here? None denotes property n=
ot
> specified but at this point it should be set to a default.

We treat NONE as PMSA on Armv8-R, so either NONE and PMSA are valid and lea=
d to PMSA at EL1

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Mon May 11 10:59:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 10:59:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306045.1578136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMOMK-0007Gz-8Z; Mon, 11 May 2026 10:59:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306045.1578136; Mon, 11 May 2026 10:59:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMOMK-0007Gs-5H; Mon, 11 May 2026 10:59:36 +0000
Received: by outflank-mailman (input) for mailman id 1306045;
 Mon, 11 May 2026 10:59:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wMOMI-0007Gm-Sr
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 10:59:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMOMI-006h5M-9a
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 12:59:34 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a01b695-5cb7-0a2a0a5109dd-0a2a450aa472-0
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:59:33 +0200
Received: from [40.93.195.62]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a01b694-56b3-0a2a450a0019-285dc33e08d8-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 12:59:33 +0200
Received: from PH0P220CA0030.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:d3::30)
 by SA3PR12MB7951.namprd12.prod.outlook.com (2603:10b6:806:318::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 10:59:27 +0000
Received: from CY4PEPF0000FCC4.namprd03.prod.outlook.com
 (2603:10b6:510:d3:cafe::53) by PH0P220CA0030.outlook.office365.com
 (2603:10b6:510:d3::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 10:59:27 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CY4PEPF0000FCC4.mail.protection.outlook.com (10.167.242.106) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Mon, 11 May 2026 10:59:26 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 11 May
 2026 05:59:25 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 11 May 2026 05:59:24 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FYW2gu6S/fhkiKQrSPHp4XzQB6iwUv+tjdVYofClcYGZmMvnWWRYcrScJAgQaR+v/4OPE/Eh5ZezYKnzeprC/H5U8GiUoEU7yfeGPOLPU5VTxa//T1P0Y8xx9+U+mi2qR4Vt+asVGSy0G3eEYunEugBTgWbkonZUYN9HydZBjuvhqBTAxf+1VTNkfeq5v7ReXH2jqGJT8iS9efmRvdXyqrWSWOOvKTHyGwcazLn/it/vvEgetFHFRQYYFrOD/4DYcRw/5dsRurEhnJjC6QvPJ0IO1jbjWCAT1C3CBgjj9PuZ+GWViCvyPgCPCvkV817auVRFFcdG0dKWhX3ehYA/Jw==
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=Nl5j1KA24WKyWFg5Cml4YccFJsGQDTn/KT7vL1qPicE=;
 b=TtHdBCZnG65nZn59TgIBtF8J+MLfJLg2pMXmdoGbGgLUkeBxfWkbbgaXX1uYdW/gFxJ1KJRqxB6LtUi5S/+AZ/5JnC7bTicb742OaP/IanBxqWRd17v8ADoX3HbcEwVv4WwsqHXVYmzhRLsPItG0PnFHgu11sdPkCoE8ch7PVC8ZE6WjfQmj96nHkLy2c+IT7RvxvQm+W7dm3P0m7hU7YBuuzCWPCF121nRXYbUeO5Zl8rpBu4abYdeFBxTbW++AIC5obhbjR1R/0+sJ3WNgNfLhqbCOjtu1NBMH8bmRkjlFPgnYSMUWkrEFmd+LKWHtbbTam9RAFb2/d/Vj9GH2tg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Nl5j1KA24WKyWFg5Cml4YccFJsGQDTn/KT7vL1qPicE=;
 b=4M6TvFavvcnhc2nwTp+N4igo8O8KCSrK5rLgEWAw9BHbXZDBido4fevVqCmPPJUJC4M8aUUd2G4uLoK8IwaxCjoZ6SFua1vuQSXyjizJZLbHGKSL+KneQdmOUqPqN7ATV3pk0LUzcGSYfBrAw8I87cg5tYFWSXlRfjxNWlVQSHA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <74ffed08-caae-4d70-959b-12daf5d67cb1@amd.com>
Date: Mon, 11 May 2026 12:59:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
To: Luca Fancellu <Luca.Fancellu@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Harry
 Ramsey <Harry.Ramsey@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
 <20260508143353.3512004-3-luca.fancellu@arm.com>
 <63c08741-42dd-41c2-9f27-b14f350544c7@amd.com>
 <4372B93E-1AC7-4BF5-93A7-D1AD8FCE42FE@arm.com>
 <ce38f845-42ac-491b-98c2-eb2bd90f00c1@amd.com>
 <A3D4B900-2A5B-4398-A914-C1635E34C8C3@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <A3D4B900-2A5B-4398-A914-C1635E34C8C3@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCC4:EE_|SA3PR12MB7951:EE_
X-MS-Office365-Filtering-Correlation-Id: c48abdf5-4178-4237-eccc-08deaf4c5e1d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|7416014|36860700016|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	7UZ112WghX6lSL45s+iLp+UvfCqIAXAOAl0VaOPuyaNaueSo3+ln91wn1xEQT9DjyJLPj07Ua4XeV8K+Xmc63acYytLgXtHpV6FBJV3YmiwJNg5ZvilyyAi3ynJuf9P7UnfxnvRgiPWq+FIM/n0INpVp1xaaLSrvmihpGsFDfe15JZpQ6+fmMMNQmo1+fydwfIf96x9vfTa9I7snhVPaGMmT2SDAYLKmH95QU81LairbfjcN2aiJwqQ8tLLFN8H45/zERZN9tdq2GWVBWMEFjEbcOu69AFkTmsKk7+deffxk+GtmrEdUtmgbmNKQ934dffA/V4xd97FQvIhv8CWL9mg+SlaHYlpVtCCDaskll0sJTvkcqS3B7aQS5AkaBjyhNtUhGuXN14IM/x8LEfKL4A7ZqM/kK4UngHjN1OkMLH5IBdG3knfuxb/3Q3mQvmxl352ozL9AYY89ks0aanR82PAgYg9XzXbkhzdmHrHzsPvhKLJ4Uvy/WvTd9f0EQaxVu8BthNYXbBO01Bf5XiaSURqw50wvRLf/Akv4WDqYMdWRdBayNGt3nDNyl2V4bsTA6HC8/qp3LwH4SEHuFMgg//n2t4tFRWmQeZsBfZR+AYlZHfF5XosDunxMvAgP4LD1P2JfZfWzLua6vcyp1ucyEP7Rl9wJdNXSZpMTQpDk/NmN1uDlFissNekR4Ye8/5IeSE7oqphD1GvyxlSZst+b8b8hgKpd+7mfz8TADXCLcaM=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700016)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	DTBfqOwGsrvLvQs0eC4eWxRbcsoJPdp/e9BFHLMuXZF6ZDurn+Fw9S6qDU8i9lkoLEw3xZnujJySA8vM8XVGoHRJRchMu78mbBWIQYFnsmXj99ORyCzDtdpTqlQCwYpZ0XlVcQ7OFen/AMmcSw1y0BKlIBs54z3FYGfH3IBW2hHrogShDYQwETy/+/W4UP04J5eGSc4XSLraCAataqESRmYVwmOlTGkTj8+HreluPXtJe4ojKYJ7UfYwtEWx3w0yWKrxi9E3Ye/6p+wLNJMLwjZd9t09KQaImiwXr3Zpp58lhw9TC4IPBY7tR1lB1KZPtaJFMdFPuMwBGXnEIxObD7YCGiGgAosw1lKUgV0ij9eEq5chpAf9GnBN+jTeT+PrQzPgkX8S0GX/1HAXjuWQ5CyFQ5fie3T2mpkNjfsLAIOfgmDIrzIdLLch2buVLq7j
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 10:59:26.3693
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c48abdf5-4178-4237-eccc-08deaf4c5e1d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000FCC4.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7951
X-purgate-ID: tlsNG-4011c0/1778497173-7E58E8B7-009DECE8/0/0
X-purgate-type: clean
X-purgate-size: 1312



On 11-May-26 12:53, Luca Fancellu wrote:
> Hi Michal,
> 
>>>>> +
>>>>> +static inline bool v8r_el1_msa_domain_sanitise_config(
>>>>> +    const struct xen_domctl_createdomain *config)
>>>> Why can't this function be common? I can see 3 definitions (Arm64 MPU, Arm32
>>>> MPU, MMU) but they do not have anything that would prevent from generalizing
>>>> them in a single function.
>>>
>>> I can do a common one I think, just to be aligned, should the common one behaves as the current implementation?
>>>
>>> Arm64/32 MMU: Only v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE allowed
>>> Arm64: Only v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_{NONE,PMSA,VMSA}  allowed
>>> Arm32: Only v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_{NONE,PMSA}  allowed
>> What's the reason for allowing NONE for MPU here? None denotes property not
>> specified but at this point it should be set to a default.
> 
> We treat NONE as PMSA on Armv8-R, so either NONE and PMSA are valid and lead to PMSA at EL1
NONE denotes property not set i.e. set a default. IMO at the place where we set
a default, NONE should be switched to PMSA. This is a cleaner solution than
giving two options the same meaning. Sanitization could then verify that indeed
the default setting took place.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 11 11:08:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 11:08:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306056.1578145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMOUg-0000gK-0t; Mon, 11 May 2026 11:08:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306056.1578145; Mon, 11 May 2026 11:08:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMOUf-0000gD-U0; Mon, 11 May 2026 11:08:13 +0000
Received: by outflank-mailman (input) for mailman id 1306056;
 Mon, 11 May 2026 11:08:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wMOUe-0000g7-K4
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 11:08:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMOUe-006jmi-0E
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 13:08:12 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a01b89b-bab6-0a2a0a5309dd-0a2a450be4b8-4
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 13:08:11 +0200
Received: from [52.101.65.62]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a01b89b-212f-0a2a450b0019-3465413ee8e5-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 13:08:11 +0200
Received: from DUZPR01CA0235.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4b5::19) by VI0PR08MB11197.eurprd08.prod.outlook.com
 (2603:10a6:800:24f::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.22; Mon, 11 May
 2026 11:08:05 +0000
Received: from DB1PEPF000509FE.eurprd03.prod.outlook.com
 (2603:10a6:10:4b5:cafe::bf) by DUZPR01CA0235.outlook.office365.com
 (2603:10a6:10:4b5::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 11:08:05 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509FE.mail.protection.outlook.com (10.167.242.40) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Mon, 11 May 2026 11:08:04 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by GV1PR08MB7683.eurprd08.prod.outlook.com (2603:10a6:150:62::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.22; Mon, 11 May
 2026 11:07:00 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 11:07:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=RZsQh0kb0+BpEMqFfpC60k08uflqJ1CtA9fg9uK4eoPKTeUzd5cYqr6iktepYv+zn0enZrbO2fg4TdrUtVU5IQBtwCNb5QOIm1qU6QaGbHuUdIo7L59WwuOo9/QbE+zUtrPql/xny6jMJCTZYtgOLwq88kIgtkrl+1O8u9mNKsGXRlUV1rwAvINSia48VZrTabi8/FVfV2it+H143fb/xpLT5vyJ46knHnHJQVYa2tSkzfzYeQ5Yxa0Ad5uo1yFr7Q6OP3Ynik5amkLkJxxdKVjO3RRNPOKLGWpm9FAl+tNQokXJq2stw5sDugb7XTSdLl6PbtW8I4+b8JpkuX6fWw==
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=L+Rb7bgn0tenNgBzKaW1W4YE+T7q9qHIjclUqsrketM=;
 b=KP4I0IStalFg9NJV6yLvvXHZ1qBer4b0utsF3akHfrQJP/3B23EHevvylKySIDRi+n/udDLSCHhJYIY/bDgwyEr0+/t6UyEw7gNk7v4sO/Q7IVG/+IMJxxbYgXzrbIjDx04jomMgc+nLxu2CCbHGmq9z20zXsiJQnQ5ylu87LlKwnXP86ksg7U12jiNwvnyiCMHryO3EGxAsRjvEraf/0Mv5+u2Jjzl2OVBEw6WmmOtHY5XXyE2GjYUnuZdpNFVDOUdTBX4Ei51xcMkkTW2yBfbZ6VjcjxsNPn/6qf23GbjTSWPNUokKRcWKaI4BJI5QH3nuaPRVs7FTkBRkdxyNvQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L+Rb7bgn0tenNgBzKaW1W4YE+T7q9qHIjclUqsrketM=;
 b=Pooy6zg4jtGsn7qa/DiyC2nPTToyaTsBXSaldamkDHC+qPrQQr9oniaI6X9hka5NmsEEX4XSf1ttRkJ1z4sjQBvsHBs7LgInRMIZuGZQtPPvX5ciWZQe3vVC5Gym/gcMDlOEseKav/RrLHmCNkQRfBlfcgF65ug3b5gnkW0vT+I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UJIy3Ef3SeK7Dq3hRj5/q8kdQnNI0jB8h87sAcFfsLyvn2LMkOTMVNQtk5+1GJ94+eawMBvulNwpdVCbBhdYWLHQ5TNDvV1iM6Z6dfHI1fhf2efR9CWlErWcF/qkmPYVk3UR2o3cvrAjJKqCPn7T1LVt/4F4zV1sbBs+otbwNsFdcsf1rfgS4PQSulhl/caWA5g3JaSqvZ2lxwyC9STnzMUppGOM5OHp5IdGjzYnJ09VWFovkO3GoMWGn1GeqZCBggwvPgf8YDNVBGfpARjHMyfQoANpouzKssV8gGGaD0KznB3sy090/1eeTubllHKOOFtcpPIXpcU5xsmrKfmolQ==
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=L+Rb7bgn0tenNgBzKaW1W4YE+T7q9qHIjclUqsrketM=;
 b=Sh5L8f5F8gJNB21IaLVkasUka94prl5n4InGpdLCjzs2oJQqQ5/DR0lrC8J6EseI5xTUDYnFcm94QZkraWThqxublP1yKLycUEDors5UxRGgmf5TKxFsC+UDQ20pphp90gh5tbO8BrLG/G7F8PI/P2ISPdZV/jGRZCSdjX2LrdqmxCWoEgIXKP/0frVX/Wyq4GyFUKBLrtbYpysvxa7RSJqwuvfUzJAOBWZ3CerWQnMZecsOTWdypPyFlbQzp3F4ii2AMP0m/2P+PrR/II+vN09lTyZ+GD0pkRJ4URPztBgJOGvcS8o605Nkof8ktc42wZCopm9bTdocHrAGL3CJ3A==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L+Rb7bgn0tenNgBzKaW1W4YE+T7q9qHIjclUqsrketM=;
 b=Pooy6zg4jtGsn7qa/DiyC2nPTToyaTsBXSaldamkDHC+qPrQQr9oniaI6X9hka5NmsEEX4XSf1ttRkJ1z4sjQBvsHBs7LgInRMIZuGZQtPPvX5ciWZQe3vVC5Gym/gcMDlOEseKav/RrLHmCNkQRfBlfcgF65ug3b5gnkW0vT+I=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Harry
 Ramsey <Harry.Ramsey@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: Re: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
Thread-Topic: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
Thread-Index:
 AQHc3vfGpFkxMscyakiMWMN4gJbZfLYIoFeAgAAH44CAAAHaAIAAAMeAgAABqICAAAH9AA==
Date: Mon, 11 May 2026 11:07:00 +0000
Message-ID: <4E3CC074-A194-4B55-9B69-12204047D1E4@arm.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
 <20260508143353.3512004-3-luca.fancellu@arm.com>
 <63c08741-42dd-41c2-9f27-b14f350544c7@amd.com>
 <4372B93E-1AC7-4BF5-93A7-D1AD8FCE42FE@arm.com>
 <ce38f845-42ac-491b-98c2-eb2bd90f00c1@amd.com>
 <A3D4B900-2A5B-4398-A914-C1635E34C8C3@arm.com>
 <74ffed08-caae-4d70-959b-12daf5d67cb1@amd.com>
In-Reply-To: <74ffed08-caae-4d70-959b-12daf5d67cb1@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|GV1PR08MB7683:EE_|DB1PEPF000509FE:EE_|VI0PR08MB11197:EE_
X-MS-Office365-Filtering-Correlation-Id: 8536f11c-0295-4ca9-7998-08deaf4d92f9
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700021|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info-Original:
 bXc2M2CVaW82UhijI2OGkUvgRVa+9PVlIJHOIQ4mBeeu93c9dy1AFmwkJ4sq3hxu8OJllUD4FWZI5MaM08XXxNrzIDUaHClDjTYWSK+5u63Ez9ILNr+9341P7A4C/fnzQXKE58u84BTb+bZ73kTOx0uSfBQCXOglbyLm9WedRrldsFXJVltTg8fqCeBA2+6JB+tfBQuWhQCRE5VfsJC9JdLdEjLlMD3Q4wkKTjRfmgmrYyMg0E1Fl7A47vdo+QTbzkgtSltWi8Np/pM0iYV+C3QKP5lfK1hErGeXp+5ghN2YoAU57+fNvyQPh4vlAwbZgKcPiJDPquqVh88brvVc7byc8yBRJq4va9soKgQW/6lSR2CrrojrpNSndsj2eKPlglEgDQ16HlctFjwlSdtC8ZlcJyid2ZfSgHKCUBJ9/Jll+UbAxgO1XdfvsV9N1NInNVYSF3fNhDvlJgXqzVmNxR/84d7qtPQZxEZjchYnNSkXjqsnBQygfunk7DSp8rVzolkP1NIDtkQB83OUEe24rwvh8V53n8yVBAvN5J/OgYyHmo5N3f4J611mA2zzPiGqV0lCSIp/Pg18PQZvqKwdXFuR7QBo8hQ4virLZ11snODrYMufMigw3fYliXmeZKNZW/JhEQz8qEtmdN/i5qqCTla1I2JdgsFw4xH2QDloiWQznZLQXP5OndJdmIKWeCHM7zBbdqgpAzWOc38fPNEpWUPrd4W+8M3rFqfkqw5pmsi1TSLnZzeYw1htzrMsrY3R
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <7D67594D31E4AA42B83FBAEC9771B9A6@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 p6mRpUlgG1o27h42a+TYC+9/Gs5qQdQ7tfkD+oReJNGraH9SzYHdIKt1g/KP3WSCV4TbkT/sXjX0IcwV1opciWZ44paCojWpyw2Mqrdzh0Y95XfLqu6VokFNHxwyiequ3lJjrTSzVhLgW4S0B+fleIqLymtUwEM7FWksQMymiPE/LO5dQAUdFo/Jr+hXjRMkDQskr4NtxXjFWUHf91zesDtK3WSmG6EbViSt9tkwVaMKbr6MmNY1KZkrI5zpsfaYYPcZm3MpOELyhUqfYW3iN4Fqhm7fcSbVSNiXjRwW4bzsFCvw88zeQ4FF/hA4/4oC/tZtLd9to+vTw+C4AojLBA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB7683
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509FE.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	1604027d-2205-4140-0efc-08deaf4d6cc2
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|14060799003|1800799024|35042699022|82310400026|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	teCAeU0Hseft8ebhkn+h5fW92dzxgiXEwtKhVUKrQ9N2aSsTToqYrorFCsIOQm+o8LN2QpqI1PMyWEE2SDUCUWUQRoF+/fRVxZwVvwtfUgSutBCNRe5OAoSb7USXDm4FrnoSZqKW+fF6QVjIgHFjWPoMzKG32morj9jgWKRC8x5frTHgmWf/v/CbUNNiC4fTuIi3cYayLH0kcsD50YbmQTXnkaJZXw3R40JVvy5ssxmOGtwg+IrrKawkl5DR1eQc6ai/j7djKxwrmEKHDcv9FjmYh60XQzknC1BEgwsYOeV9suC3j3RXxmR8HINlbsDeym80quKyt1pFPGyywG+NDy4BMr5T/fnTvfEmDgwt5dDxC3xE6Bk1V0IQhp6I2/dcQWr4QVKBmDK6tjNm2SigVcSycY0qwMQseG4rIJFmHVT4NeOFRIkwJqDtDzjyybgBT4EH4uW0laW1xo0TRxQgMeIeDOc4KsKZr6c8u+lAfqC1KK5ZjpdXwxLHzUGgvs7IFyEEInHstLFMe7jHXTDJZQR1Atnc+xK4j7FpE55npZrgJJVstR94138LCFOms/f4qHR76kdRlVyDzrpP6r+J25mEhza8vx6PoiBfEwERIo5n1UDomRl9a/MXScxigbnVVCxaMeNd0q2WI9I7OQWQnwsWoDj8Uh4TRVoYWFNQ3bp5wS/skteEeOHWbTcIaEgrbleKnSoXoSZd+PfmJouosVf77aLn2BsXlMBBZuD/3Gs=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(14060799003)(1800799024)(35042699022)(82310400026)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	7JpWQ4JJgz2G4tg8zJyqLl4WkQ+6JO0/Qk38Gf4IbpQhaurxqc+919t/YNp691EyHDJ1XRQ8paip8xhjm02Me/RfiDmbrgFIdlfdTZmvkpmTTqvypdjlmD69P1LLeJlmIJL85+4PVNGPG9O+0ghVEdbcQBUzNWQnAJOPQcISrVOoudHF0RlQFx4CTmCwwzma0fRcaX+xxyE9N4WljA68+kRf7fqfSOUTXQBJ+KZRmu/ftQca818W11Xnr9RvwesI1ZJ0CI9FxBeYc+BD+1IBiQSmI81DKkXvmjXMe+h1JQWKTVDLzNPFtJlRmIGHfd24cq2KbfQAYnrEwoxuNoSiUVzSA29Ev8bjvHntUZKZa3VEZUSeYPnuHajGhFFkuLZ+i7fPOXEB1NGTJ59d2zaInZjRtoBQeVUV6CyPz0KlgYOegiHeBbepmxunSPtFw+B3
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 11:08:04.5384
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8536f11c-0295-4ca9-7998-08deaf4d92f9
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF000509FE.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB11197
X-purgate-ID: tlsNG-42698a/1778497691-1BD7FF3B-09ED619E/0/0
X-purgate-type: clean
X-purgate-size: 1673

Hi Michal,

>>=20
>>>>>> +
>>>>>> +static inline bool v8r_el1_msa_domain_sanitise_config(
>>>>>> +    const struct xen_domctl_createdomain *config)
>>>>> Why can't this function be common? I can see 3 definitions (Arm64 MPU=
, Arm32
>>>>> MPU, MMU) but they do not have anything that would prevent from gener=
alizing
>>>>> them in a single function.
>>>>=20
>>>> I can do a common one I think, just to be aligned, should the common o=
ne behaves as the current implementation?
>>>>=20
>>>> Arm64/32 MMU: Only v8r_el1_msa =3D=3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MS=
A_NONE allowed
>>>> Arm64: Only v8r_el1_msa =3D=3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_{NONE=
,PMSA,VMSA}  allowed
>>>> Arm32: Only v8r_el1_msa =3D=3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_{NONE=
,PMSA}  allowed
>>> What's the reason for allowing NONE for MPU here? None denotes property=
 not
>>> specified but at this point it should be set to a default.
>>=20
>> We treat NONE as PMSA on Armv8-R, so either NONE and PMSA are valid and =
lead to PMSA at EL1
> NONE denotes property not set i.e. set a default. IMO at the place where =
we set
> a default, NONE should be switched to PMSA. This is a cleaner solution th=
an
> giving two options the same meaning. Sanitization could then verify that =
indeed
> the default setting took place.

Ok so this is a bit different from how all other *_NONE are handled current=
ly (TEE and SCI).

So on MPU Arm32/64 now we will stop the domain creation if NONE is passed, =
is that the behaviour
you are expecting for DOMCTL v8r_el1_msa? (Ideally we should not get this b=
ecause we will switch
during DT parse)

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Mon May 11 11:09:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 11:09:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306062.1578154 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMOWF-0001AG-CR; Mon, 11 May 2026 11:09:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306062.1578154; Mon, 11 May 2026 11:09:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMOWF-0001A9-8q; Mon, 11 May 2026 11:09:51 +0000
Received: by outflank-mailman (input) for mailman id 1306062;
 Mon, 11 May 2026 11:09:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wMOWD-00019z-Ui
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 11:09:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMOWC-002qTm-Te
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 13:09:48 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a01b8fa-5cb7-0a2a0a5109dd-0a2a45099f90-4
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 13:09:48 +0200
Received: from [40.93.196.50]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a01b8fb-2497-0a2a45090019-285dc4329d5a-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 13:09:48 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BL1PR03MB6117.namprd03.prod.outlook.com (2603:10b6:208:308::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Mon, 11 May
 2026 11:09:37 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 11:09:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Cmkrv8Eu00guOCvJc8N8/iVxkb74sAHwnlgQ5b6NGZxquHTO7/gCtYy3RVrm0LuCkF/BFBKBbwQaNv3qwlboXZ/YLx9GQvIMZiHHzyhbRdvpVM2YKjQBe0HDLsmTjR+Wa9kPzWLQS6UhBeVb13EnxiF8JytBIjxl9pZFhspGnswfRZ6cnWHAtzN5l6YnA2FVGHTb5e1HDyuLmTFcd+G5rcGPZx5px3sZNUZLrMPHkKwXx11CuW+Gu+OkO3LEE/B7XaCacCaogon8QIMpmGdTX0j36gWXF7+a2CloK31kV5LI55xLEz3qvROERHGq79c0n/MZ0GdacDbb59bge6S0IA==
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=haYQnbyMwK0rL7Ngqtt3E/by4BGsY9AHl6NGAth1ZNM=;
 b=x4Guf0gVXoulGBa7XvZe0kAH9TC3AINKGi7YRB7flVWcb5LzeNE+knX548k0p6ZnDjj9kJHmVKCptjDnNkvleFVfVc0OxmaXx2+QlqEB3lVPYqN/f3DLx/IhUMLKKgMOEFNgZqoX8F7EDobcNXDfYI6OHRuTc77z7RD7e6gl/qHSBpE4Z6lqCorPo8/wDpw5mAeVicFCJBz1HsIqmIlXqrOfFKCZP4V+tID6PorX4jjHTAbOuxRIsZXgxXw/lj8LpOggaCKa5r3gkEpO8af4d0Gjj/IO7/IB7CX91FCR174wwZ1EN7wkm8U9C1sri1RMxGM/g5mfNWkKI1iShDQGiQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=haYQnbyMwK0rL7Ngqtt3E/by4BGsY9AHl6NGAth1ZNM=;
 b=CiXTEQqEM4UACaz/oqeBMWV0LQefwtlkl71CfzCRcw/UCuk8wzFY7IbT1DR9sqMDs70uoKiANoEPyq97s3owz1QzrFFep3XqCzhIaLri/HoBq/3mAgiroIlLbY/QU4n2KaeZErISb2Q1X1UZaYU7ZrCFtf6xldhPWRLF6AIoqto=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <12f44475-f4de-494f-8d75-3c3ac039b96c@citrix.com>
Date: Mon, 11 May 2026 12:09:33 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH 1/5] CI: Adjust test needs[] to ensure binaries/ is
 non-root
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
 <20260508212907.1643761-2-andrew.cooper3@citrix.com>
 <a7932bc7-86ad-401c-b462-01078e6e11bb@amd.com>
 <455c64a2-bae4-47d0-a2bd-902be3ea6127@citrix.com>
 <fd6d9873-d1db-4aef-acbf-6f7659f5c528@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <fd6d9873-d1db-4aef-acbf-6f7659f5c528@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR3P195CA0004.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:102:b6::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BL1PR03MB6117:EE_
X-MS-Office365-Filtering-Correlation-Id: 53361046-e23a-4b6b-a323-08deaf4dca2e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	cegfCjfrrWN3xV4n5u9CIrde7UxjJYJmmBmsU+D/3KCd1nAOyP8oTstjtae4lyz6AoWIR/inJeBqig6cahaJ/Z+rdVdHHBpOdavueK2n9Jos4ymQy69xK/u+3XjOPYPigPzOeNb5lUj6M69V+dLUZje7jws1FdDdiSP4jNxb7eZOWGXHSQ0EjHEKrveSnhCYc0SsB7Q/8iH8UNsxIq6NqBnAP7puTdOFs6qGhTIgNr788uef3AujmUNTqwA+MSRk4c0QPqKPUW0XE7RZyidMQSbZfh0NjFZJV8SfPGB4FbP1oo12GcbTpEMxwTKqxpfM1u/dI4zx4GBN0Te2rdeAIVuuDwvkOApVhqQp/sigSQeX2kBljPcud/ZOuHNaJCOAbRn6hWFZ6ErwWOM+4MTkxXQRQh/ADHnrsOe55nTcF6wJTPQC8BkScE2H51uIK8LZb2tcmc7uLscD+IUjql2zvYFHu2/z2vuDp6XeOlFxxMU1ncnQsgpMwpOfDB9qGsnBJj5IeP/djIHVhsEJJ+LPiILkGRWi+E+JMNDiab6jC4yIqo8UECmgxQ7MNBAT4qXtCrUlLSx+1PAfmWBzPhXQ245NyA0KSCJRFAP3MpgDKGdztwtWw3gkXV5TM9JBSGY86JmR8+0Lzg3i5y0WJ/K8casljff/b14eMj/uy5gXP3wDGpojcjj/qm1aOzie6WHf
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bWphT1p3OTlWTkUrSWpJM3JMVjk0SzExeElYS0x6N1BqdFdBak9nZlRmOHpZ?=
 =?utf-8?B?Y1l6bWRpUDF0cnQ2c2pyNWVtVnV5aHhMemYwaVVrd0JrckZmZ3JJMnNYaHFq?=
 =?utf-8?B?UUlpL2pER0xkRWlxOGZuM1c5KzZDRUVvcFlDTkNDL1g5cGFybE8xR3NFbWhj?=
 =?utf-8?B?cTBmTGsySGdrajNXbndPRHIwRXA4am93aFRKdmpzRHlEamFyUHEwN2JpbDVH?=
 =?utf-8?B?cC9iN3c2b0VCNStTb1dUSUFDWWl6RmtDSWQrV0hOTGlwRWNTaEVIeXo5ekZ5?=
 =?utf-8?B?VkpmT1FZVS9nNHhLUmtBbXdDTVhkbDRwY3pwTDVqUFJQVFdybmlEQVFuYnoz?=
 =?utf-8?B?Wlh2TllYY1IzVEhldUErVXA3T2p4dVBIRGZCUGhZNENGYXRTbkV2VE56M2ti?=
 =?utf-8?B?My9ZQTYvTzEyY1ZlSENlcE9mRDdscFVxNlJOUCt3aFJKZkZ3Y2NlanRqZm1E?=
 =?utf-8?B?NWgweWNmblNPMTdXYXl5Zm9JOGlJYjlPbmpLeThIYnhWY2FlWll2Yk1aYkFo?=
 =?utf-8?B?eGYwQkI0NFhxeVdMb3B2RjNSNGZwZmdHdnNCdEEwWEJtcGRPL1NTZ0JyOXNx?=
 =?utf-8?B?elRTZ3cvbDZyWWRZSi80NW41QnF1YmgrcWtrQXQ3NWdGU3FvUjZyUjJtVUtV?=
 =?utf-8?B?MlZNQXhZTGEyYXVob3c3ZFJHdlcvcHZSMEl3ZnJKdE5lWVVUMnd3ZmF6bGFx?=
 =?utf-8?B?U0tSQnlOSitnZEdsbVllS0orRnBrUlBYektyNmV6Y0Ixbk10dWNybnRBcDhF?=
 =?utf-8?B?dnhXQ0M0a3RjQlFXN0JDRDVKR25pR0FLUFBQb0JzTTlqakw3VW9XVmdFbmpp?=
 =?utf-8?B?ZzEyKzI4VldyMjBxZlBLdUZROFVGTWFYMEJBeEprcHk4T1FNNkMvV3d3eWo0?=
 =?utf-8?B?NWdPSzVEeVZHaDFZUk9sd1I3aGRPd2lrU2w1VkZ2SDY3bFo1U1JYRGEvQ0ZM?=
 =?utf-8?B?UkdscDVBeWVENTZTRjBTUjQ0VGl6RVNOSnNKT1BuLy9uR3B3MkpZR1dvRnRH?=
 =?utf-8?B?V0FMdXlnN1ZITGEyOGticklMMnl3WS92dVcvbUpGSHZNdjRBczZBZkh1QU0x?=
 =?utf-8?B?c2R5OTFvOWo2ZCszQ0tyNzlsUG1PUmlJLzJLakNWOHJkSmNCdXVyZmkzRjMv?=
 =?utf-8?B?aXlhdnBGNWlGZkRFTERLS0FtWm10N2FQUWlmOUhGNmpYdVc1NnNWRmhERFZD?=
 =?utf-8?B?SWxGVmlBTmdZUmVUOENiRmw0WE9DMWNKRmtqOVMvMjNqd2dobXpnOCttVUd2?=
 =?utf-8?B?QlFqWHNYM05wRzJIWEJ0amF5M1dudEhqTk9CWkVzOWtLaUNKYkp5SFBra2Rh?=
 =?utf-8?B?L1dLTm5WNTM2Y2RXMTZEaXdwNmo5OVhkVUlncTdyc2dWeXQ0bGYvVXJHSDNY?=
 =?utf-8?B?dVlrVmdFTFllNEh5QndQK2JkYTNOYU1nbDg4SVh5a1BydVgwSjFOY2pObDBm?=
 =?utf-8?B?b0JMOU5KVm5wZU9MZzBoYytpTGJFcVF4VzhFV0FaU1BjYm1KOTBwUThwN2xw?=
 =?utf-8?B?NDBLZHVLVUpicFBmdVZpZXlXK2NBcnd2cmFIb1JyUlNEUTZmeGtPRjlaZHlK?=
 =?utf-8?B?b0pjTExYamhteGN4Ky96R2hUNmhmd0pGazd3YzI2M1Z5UENLak9Mdm9jZDRY?=
 =?utf-8?B?N0gzeWRLZWtja3pmOGQ1SExNZGJYaGNSTHdtQk10VGcvaDVHN1JPUENkd0ZC?=
 =?utf-8?B?VEVHNktiRi9aR1pIR3hucEY3OG5ENzg5TWh1N0Uyb3pOM0l3TkVFUHQ2b1Bn?=
 =?utf-8?B?RWNsTm5jUm51N0RyU29JSHdPc1dBcnEyb2xibnlxaWNuRkl6c28wNlRHcDR4?=
 =?utf-8?B?c1FUUlBmNDhRV3g3akprbXJRT0M0QlVRSnlRUnVZNEQ2N09mR3BML0FxeU04?=
 =?utf-8?B?WDI1QVZ2a29HN2dTZXYxUUFZdGl3cGxaeGU1ZHFnVzlUVHQvOEZ3TDhhVnI3?=
 =?utf-8?B?S1N6RC85dlZTNW42RXgyK1g5eWE3QVVta0hXSGRNb0o3T3llYS9qTDJCaFpm?=
 =?utf-8?B?UDlpenZjblQwQzFZNUU1YlBIRGFBL25IYzMyQ3dkclVrL0dreHhyUWltTi9L?=
 =?utf-8?B?NU95L0llYkhMZmt2eUhyZkdnSTFGOUM5eklBU2xrZWg4N3BXMG81dWw0RFdQ?=
 =?utf-8?B?bmxQZThKVThkcUpFUU41Qmx3VUhyRlZ1ODlOREV3cW9SWnYrNVRUblE5M3RE?=
 =?utf-8?B?RGRFVTdZRTY3UEVvcTlrVCtwbnQrL2YzWFhBcGVWOHdYVE9scUtkVEIyYmha?=
 =?utf-8?B?NlN0TE5MQTRlandmU29mbHViUXplUzI1T2puSSsvblVsbmZJQjFJdmJ3NlNW?=
 =?utf-8?B?b2UvbCs4VHcrYk9EUjFPZDFPWFpMcjNNbkJLZVUvQ2tLeXVEUXVLdzBPT0hq?=
 =?utf-8?Q?M8C1/p8VpLH6q2OY=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 53361046-e23a-4b6b-a323-08deaf4dca2e
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 11:09:37.3408
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: EMesIK3Dud3ILPkZYilEV7iJKy6wud0GQdF4fkA8VfW5Egy35IF6opLNE0lcwT0NRsG+BlLbHSQkeLY1dS5SAQxE8wOTBtcjNhLuqKYv+ps=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB6117
X-purgate-ID: tlsNG-bad1c0/1778497788-89D85A53-F698FDAE/0/0
X-purgate-type: clean
X-purgate-size: 3699

On 11/05/2026 10:06 am, Orzel, Michal wrote:
>
> On 11-May-26 11:03, Andrew Cooper wrote:
>> On 11/05/2026 7:16 am, Orzel, Michal wrote:
>>> On 08-May-26 23:29, Andrew Cooper wrote:
>>>> The binaries/ directory is a composition from the artefacts, and also used as
>>>> a working directory for most of the tests.  If the very first artefact is from
>>>> a root container, then the test must also be a root container to use it as a
>>>> working directory.
>>>>
>>>> For arm64, the existing linux-arm64 artefact suffices.  For arm32, pull in the
>>>> microcode-x86 artefact as it's the smallest available.  This bodge can be
>>>> removed when all build containers have become non-root.
>>>>
>>>> For the qemu-xtf-dom0less-arm64-*-xen-version jobs, use *arm64-test-needs
>>>> ahead of alpine-3.18-gcc-* (as it's a root container), and to deduplicate
>>>> the *-export dependency.
>>>>
>>>> This will allow us to change containers to being non-root one at a time,
>>>> rather than all in one go.
>>>>
>>>> No functional change.
>>>>
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> ---
>>>> CC: Anthony PERARD <anthony.perard@vates.tech>
>>>> CC: Stefano Stabellini <sstabellini@kernel.org>
>>>> CC: Michal Orzel <michal.orzel@amd.com>
>>>> CC: Doug Goldstein <cardoe@cardoe.com>
>>>>
>>>> We should also stop using binaries/ as a working directory for the tests, but
>>>> that gets very complicated very quickly and I don't have time to do it at this
>>>> juncture.
>>>> ---
>>>>  automation/gitlab-ci/test.yaml | 10 ++++++++--
>>>>  1 file changed, 8 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
>>>> index 8770c523e228..517af1732437 100644
>>>> --- a/automation/gitlab-ci/test.yaml
>>>> +++ b/automation/gitlab-ci/test.yaml
>>>> @@ -15,6 +15,12 @@
>>>>    - qemu-system-aarch64-6.0.0-arm64-export
>>>>  
>>>>  .arm32-test-needs: &arm32-test-needs
>>>> +  # Bodge to ensure binaries/ is non-root.  Can be any artefact which comes
>>>> +  # from a non-root container, and microcode-x86 is the smallest.  Remove when
>>>> +  # all build containers have become non-root.
>>>> +  - project: $ARTIFACTS_REPO
>>>> +    job: microcode-x86
>>>> +    ref: $ARTIFACTS_BRANCH
>>> I don't see it being removed in this series even though the containers are non-root.
>> Correct.  The Alpine container still being root is discussed in the
>> commit message, and is why ...
>>
>>>>    - qemu-system-aarch64-6.0.0-arm32-export
>>>>  
>>>>  .x86-64-test-needs: &x86-64-test-needs
>>>> @@ -569,16 +575,16 @@ qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
>>>>    script:
>>>>      - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 | tee ${LOGFILE}
>>>>    needs:
>>>> +    - *arm64-test-needs
>> ... why use here is ahead of ...
>>
>>
>>> This also pulls in Linux image and rootfs which XTF tests don't need. I think
>>> it's much better for a test to list the actual list of its dependencies.
>>> Otherwise you are asking user/developer to dig into the yaml.
>>>
>>> ~Michal
>>>
>>>>      - alpine-3.18-gcc-arm64
>>>> -    - qemu-system-aarch64-6.0.0-arm64-export
>> ... the alpine inclusion here.
>>
>> This can get reverted once the alpine container is split/reworked, but
>> not before.
> Ok, so once the Alpine container is reworked, we will get back to proper
> dependencies list.

Yes.  I hope to do so for 4.22, but the alpine container needs more
careful work as it's also used by the QubeOS hardware runner environment.

>  In that case:
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>

Thankyou.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon May 11 11:18:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 11:18:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306074.1578162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMOe4-00035M-6i; Mon, 11 May 2026 11:17:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306074.1578162; Mon, 11 May 2026 11:17:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMOe4-00035E-3R; Mon, 11 May 2026 11:17:56 +0000
Received: by outflank-mailman (input) for mailman id 1306074;
 Mon, 11 May 2026 11:17:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wMOe1-000358-Sp
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 11:17:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMOe1-00HYdV-6A
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 13:17:53 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a01bad7-e002-0a2a0a5209dd-0a2a45079918-26
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 13:17:52 +0200
Received: from [52.101.57.27]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a01badf-229c-0a2a45070019-3465391b96d5-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 13:17:52 +0200
Received: from DM6PR03CA0070.namprd03.prod.outlook.com (2603:10b6:5:100::47)
 by SA3PR12MB8021.namprd12.prod.outlook.com (2603:10b6:806:305::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 11:17:44 +0000
Received: from DS3PEPF0000C37D.namprd04.prod.outlook.com
 (2603:10b6:5:100:cafe::e3) by DM6PR03CA0070.outlook.office365.com
 (2603:10b6:5:100::47) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 11:17:44 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS3PEPF0000C37D.mail.protection.outlook.com (10.167.23.7) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Mon, 11 May 2026 11:17:43 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 11 May
 2026 06:17:43 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 11 May 2026 06:17:41 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EQIioPTVrIdw9CROqzdvXUaUroyEm/q+Fzv6PkMMeQLhhJsndLVcHUo5EBnqr8EcIDNfRLVESHMuIm9uTUn8GmgzAEQzhBZguUWAZM005Nnd7IwjhhUtU9x7N1w6UbsNTVg6lYbBJHD7oM/iA+ZdogkjALKCd4WJ088m9SjnCVYUE5jhsX016aZN2Gsg0ZczsgqpPoIb2pu9j5dPpSpWIoEtH5k0/OUYUnkOZTmtL/IndPpXKuHM0DH8zTTc1DC26gQGkuks/OguebxxZeklqmd7WL/j5zpn/wTeQpctI6YR/lKGkohqoNF1YDUR9B9Nj57zWDCIsX+nMykqT0t92A==
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=29pvWVDMjHINi8k+yed9tHwgmlIcnunz/kvSVVpKoYA=;
 b=TODtB48ttjFCY8uzbxjHqlKhysHHdKIl69/acUeIQNMANnuOaEeFXrW2jUsKaK3T7Y01CkSglBQETdQqbVyp4pG+OAUN75FETAl8IeUZHZ0NkGibKfYa0CVAYyM80ASWdY09lknd7+A42NPfBDnhLvGNvPt+TEia+I+aGRV9/aiJHEsUL88nHn/f3+Fi9XhFv1P+4gDCKuftPf/fj8czf9zYOCKPRmn7PP6XT4IymJ2xDE5YJ4OVV25OsWTM+InDydtWUpDHul+EGXPdgUqc3YeU/pPCmUvkuTjVzq9LxBRu3RY39IF+fBKaxPnxV1jR2y9xfxMB8/pnbsgBNArRYQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=29pvWVDMjHINi8k+yed9tHwgmlIcnunz/kvSVVpKoYA=;
 b=hVDPY3DhjChePNxcLGgfR5/WDh5Y6wVY7Fnn/rDqMuvNzQZVVZaj+thSkhMN+7UDlWOj2OJLQAIc9te8VrEx8UlZiInZw8dtQQC87141J18MJekTmzNGPGAe5KEPg2DV3eYQsVPLflPrkTBO+GeRccqsfrVNB98qcoPS5lwcT18=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <c429d2d8-d655-4c39-a703-f9e29ec37135@amd.com>
Date: Mon, 11 May 2026 13:17:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
To: Luca Fancellu <Luca.Fancellu@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Harry
 Ramsey <Harry.Ramsey@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
 <20260508143353.3512004-3-luca.fancellu@arm.com>
 <63c08741-42dd-41c2-9f27-b14f350544c7@amd.com>
 <4372B93E-1AC7-4BF5-93A7-D1AD8FCE42FE@arm.com>
 <ce38f845-42ac-491b-98c2-eb2bd90f00c1@amd.com>
 <A3D4B900-2A5B-4398-A914-C1635E34C8C3@arm.com>
 <74ffed08-caae-4d70-959b-12daf5d67cb1@amd.com>
 <4E3CC074-A194-4B55-9B69-12204047D1E4@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <4E3CC074-A194-4B55-9B69-12204047D1E4@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF0000C37D:EE_|SA3PR12MB8021:EE_
X-MS-Office365-Filtering-Correlation-Id: f042fea1-ab06-461f-a36f-08deaf4eec48
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|1800799024|7416014|376014|56012099003|22082099003|18002099003|11063799002;
X-Microsoft-Antispam-Message-Info:
	07nznslFPCF1PV6+kIHLyQEqnrgbxIZ4cTF1fm6V7QE3C1aBIfB8Bn1rgan5Ws1qBs20hTUaVeYcgl8QpX2RlBzWlmMU6D9tjqCy3e2+c1Y/uk4PK6aM6Ld0wf1GHkhOKGMShOCKMjFIdh6wSy5J0/kbAI1OvSGwFyH56zBewxaOtOduIz7ENB56m68GSshlw7MITCQ4hBgnw0N2pL1xPPVb0qMvw8DQ74dN0UnxMWDq9PvlBFtltgV7IxL94cY3UA/4RdDS2CNfieYvb0rp85aoagfNLP8enlimrmSzeOFK/JmwFW48e3hpg5KC05E/KizXt94zLfwqC328YForE20CwmFfLe5Zbzh9rDoi4nS0Fpq347YknqwBgqorRbQBWqTSwhFi2Emgt/Rh3pSUSo3Q1sGIZHErgupbcmhXZ2SQjO+isdz2fZAPMbgfGXTDGGqz2BgAhy+fBdXd6Bq0s5ohPHl6RRN5sjpW4yKtd7KLU1vYzfgOJM4Dmf0eOsZhFWG1m8SdcitaHDy5KRDDxFkYkdRoObtrzkVhVlkhYD1yhI6/49eHb14kI9hGN83RBkF/yUnM9ZEvn7McOGMfqWT0awHePTi1xq1wasYK8+Dp3ToNtIgWPcaY9VYq5ZbYpdZGu+Xh3wzsxPnSqj9DD2q/eJRmnvLRApTQ7ZITaTNvOjqPATsg2JDuOKS4HeuaJ56iL3nJweR+bL06KpIxZf7j7Zl4SHDBMF+ooeoemTY=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(1800799024)(7416014)(376014)(56012099003)(22082099003)(18002099003)(11063799002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	cOGXfhaPsIlq6Vbr45rpKoBVLDh+Ug8bcVvdossImhp0tzvpEhZfQEmZGjkR3IKEmxRhYdH7Fb8AthbLeGvODpt7WdCSyDKFHsFtf8KCZSpLG9gQ40jtPEe/kHls1CvgBMbm2tmvehg2GpO9uT8HTtMPE0/7Mbvtzjt0OmKSK3PGs8RZZUwnZJOtTEeZaIyxLooNwa8tFBfZL2WCp3WIPdEXAKi5nBbvACMyDA5hZKgBl8vf5JP03oRyUKv2UZX7t89m8m5fJ8bVrLilhbibphWuu2/EJ1DW02qGUC5TnBi2qgr1a6/n+SavT1BOczu+C4LJbVusi3Jzj4LsneHM3rPAyOqP0GuWhfz6zjhpfXASIlJSamYMTshPjffDUVKBSDyO8yzXImxv7yNfUWp+p+K/NdfqXDBqt0+UnUhUrSrsrPf29dy5W8o59m/AIk1X
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 11:17:43.8846
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f042fea1-ab06-461f-a36f-08deaf4eec48
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF0000C37D.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB8021
X-purgate-ID: tlsNG-ef75cf/1778498272-0AF76C48-5BFDBE7F/0/0
X-purgate-type: clean
X-purgate-size: 2005



On 11-May-26 13:07, Luca Fancellu wrote:
> Hi Michal,
> 
>>>
>>>>>>> +
>>>>>>> +static inline bool v8r_el1_msa_domain_sanitise_config(
>>>>>>> +    const struct xen_domctl_createdomain *config)
>>>>>> Why can't this function be common? I can see 3 definitions (Arm64 MPU, Arm32
>>>>>> MPU, MMU) but they do not have anything that would prevent from generalizing
>>>>>> them in a single function.
>>>>>
>>>>> I can do a common one I think, just to be aligned, should the common one behaves as the current implementation?
>>>>>
>>>>> Arm64/32 MMU: Only v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE allowed
>>>>> Arm64: Only v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_{NONE,PMSA,VMSA}  allowed
>>>>> Arm32: Only v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_{NONE,PMSA}  allowed
>>>> What's the reason for allowing NONE for MPU here? None denotes property not
>>>> specified but at this point it should be set to a default.
>>>
>>> We treat NONE as PMSA on Armv8-R, so either NONE and PMSA are valid and lead to PMSA at EL1
>> NONE denotes property not set i.e. set a default. IMO at the place where we set
>> a default, NONE should be switched to PMSA. This is a cleaner solution than
>> giving two options the same meaning. Sanitization could then verify that indeed
>> the default setting took place.
> 
> Ok so this is a bit different from how all other *_NONE are handled currently (TEE and SCI).
> 
> So on MPU Arm32/64 now we will stop the domain creation if NONE is passed, is that the behaviour
> you are expecting for DOMCTL v8r_el1_msa? (Ideally we should not get this because we will switch
> during DT parse)
I think the confusion is that you are mixing the meaning of none (i.e. I don't
want it) with not set. In case of TEE and SCI, none means you I don't want TEE
or SCI, please disable them. Now, how would this look like for MPU. I don't want
PMSA or VMSA? This does not make any sense because it's something impossible.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 11 11:27:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 11:27:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306082.1578172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMOnS-0004m2-0R; Mon, 11 May 2026 11:27:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306082.1578172; Mon, 11 May 2026 11:27:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMOnR-0004lv-Tr; Mon, 11 May 2026 11:27:37 +0000
Received: by outflank-mailman (input) for mailman id 1306082;
 Mon, 11 May 2026 11:27:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wMOnQ-0004kV-Hk
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 11:27:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMOnN-004Rhn-Us
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 13:27:35 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a01bd1f-e002-0a2a0a5209dd-0a2a4505a742-30
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 13:27:35 +0200
Received: from [52.101.84.44]
 (helo=DB3PR0202CU003.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a01bd26-aaa8-0a2a45050019-3465542ce874-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 13:27:35 +0200
Received: from DB9PR01CA0009.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:1d8::14) by PA6PR08MB11287.eurprd08.prod.outlook.com
 (2603:10a6:102:514::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 11:27:32 +0000
Received: from DU2PEPF00028D00.eurprd03.prod.outlook.com
 (2603:10a6:10:1d8:cafe::43) by DB9PR01CA0009.outlook.office365.com
 (2603:10a6:10:1d8::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 11:27:32 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU2PEPF00028D00.mail.protection.outlook.com (10.167.242.184) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Mon, 11 May 2026 11:27:32 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by FRRPR08MB11968.eurprd08.prod.outlook.com (2603:10a6:d10:1ce::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 11:26:30 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 11:26:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=wKU/rZDbz3cktZ3dsQfGpCG3q4YfhxNv69pJP7ttiM3OuCH8ZzKAxoyMDX23mQaZIxcWGb8sHGEvRGtUfd4mhw5LTzzlGAsBGyUeDB+z1l6CRG3ioL/BwYJNBq8/KRa0jra/kEvCS+vD6v5Ze6BXLIDEoGky80lMMqFMPE9WBMYAj5Amn2j3CmLgNHy6slGt/teowU70lxG//eYtsJ/vGhWHdyIxNOlArGrU1C2XfKhCS4HfpU7G4KriMjqRF1og2vO+oilD4uL7wi3iwTEy4hXzI8QigKeN/N2TPU5O5r73acPwEmycbTlyTFio9A3N/j9KOe2blwEKoOuyRa1rLQ==
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=WdlZIU2PP+msux/Ann/M7BCZaM2zeQD8OPawu/rv7VQ=;
 b=IiX2pNn4Xn3q2fDEsnYiMNliKrP4yQqTdEQXp+ziGatHzYo/otMkm+nwkHbF/MChZwiwBoEogGbPd3A1fVZ8STQBSdp8xjxT6Uk+gA/SVi+/iKa9rkVI3TDNFM0i756+/9zPA08xhVmaS6RF2xWHTMAa3bY0rB70HfF9PoUpBeUL2a7slL3Is3lnS34EAeHafUzhAJVtM0OQTSASWs2l82r4l/6C0lah1lvbM1jPRvaco4VCZ14c1T7RfPBDP2JQQLYnypXFspIJ53ha/OIWHzZa/z2eGWWL0aX3mzq+iF0pXFuEKQBc+d5Ut/a+rtf9N9eHMvojMA47rkID0oiQXw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WdlZIU2PP+msux/Ann/M7BCZaM2zeQD8OPawu/rv7VQ=;
 b=IQg6x0CT7Cc4zN1b3WAX61/WtW4VKXCk4dIMNq4qQVbiBPnXRcsLcZAg2RWUdCCpHv4BXXw3/i4HfLc7XaY5Y8sEwv+S/7l28Bc0dB7QoI4M7rXuLt+9WBqvSCy6Ip101cYmOkPktOI0pKPouOrZRzcIueO8ok6htB5udoeftw0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ic+AEbS6jr5NAkfSfQOyiU04MtuUIBdIjD62YSERT0f9/WV0EcclO1OoF1HynNlP4swP+pHTk7X2fOCU62EtTZZkPCIDtxZbKdceNQ2SqdHYOFH7xvURjJkRnQXD4iDOxLufYZRTdays7eh8XLihiaDgxgj5M/IMGYO9arnKFcRkIX4ocBtfiWOddIXpZrD2IQCRpFz+072hnD6fq76DYOyhlwI73VrrwT/eblvFiEp/JWr3r4nWAwHTFdmrfBgaVV+nBNx5nwsAUs29X+WDtWGoANYLxIPSVuW4lQ3UndiDMsPqPZbLnrGgByWeFHppfw7cFYYl4DY18fj/T2i/nQ==
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=WdlZIU2PP+msux/Ann/M7BCZaM2zeQD8OPawu/rv7VQ=;
 b=uK0tJdpYmutHaatBQm70d2qCPfzIqNqTIboZW+Cs7v7STNhFbq1y/6FWTxRZXqxOgLlB0hHGKwYpFUz3sOK2PWkloCgiTBla6EM8uyYVlLoRavXPaTLH5UHKqT1gxUHEH3mPKS300NJS40b1yjKK2+EkmPxST53x/pykuy2PIwXHUDj20i0DoZchvSsmJxSiUEN7ZK9G2orQXgwT4VdvINF0BASP2p+6tHe4ekmeB83bd2sKQc218f6Npvcw0waT3ChFc7KhD7wQKR1H8FPMa/spDWYNKYL5/3zU2u/frURgW4oTbXJ/ceYv0Iz/StxQJyBQHChrhrRj7DXK5kJFag==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WdlZIU2PP+msux/Ann/M7BCZaM2zeQD8OPawu/rv7VQ=;
 b=IQg6x0CT7Cc4zN1b3WAX61/WtW4VKXCk4dIMNq4qQVbiBPnXRcsLcZAg2RWUdCCpHv4BXXw3/i4HfLc7XaY5Y8sEwv+S/7l28Bc0dB7QoI4M7rXuLt+9WBqvSCy6Ip101cYmOkPktOI0pKPouOrZRzcIueO8ok6htB5udoeftw0=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Harry
 Ramsey <Harry.Ramsey@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: Re: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
Thread-Topic: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
Thread-Index:
 AQHc3vfGpFkxMscyakiMWMN4gJbZfLYIoFeAgAAH44CAAAHaAIAAAMeAgAABqICAAAH9AIAAAx8AgAACTIA=
Date: Mon, 11 May 2026 11:26:29 +0000
Message-ID: <36ED2CB3-27A1-4C35-9A21-3558C4F0E527@arm.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
 <20260508143353.3512004-3-luca.fancellu@arm.com>
 <63c08741-42dd-41c2-9f27-b14f350544c7@amd.com>
 <4372B93E-1AC7-4BF5-93A7-D1AD8FCE42FE@arm.com>
 <ce38f845-42ac-491b-98c2-eb2bd90f00c1@amd.com>
 <A3D4B900-2A5B-4398-A914-C1635E34C8C3@arm.com>
 <74ffed08-caae-4d70-959b-12daf5d67cb1@amd.com>
 <4E3CC074-A194-4B55-9B69-12204047D1E4@arm.com>
 <c429d2d8-d655-4c39-a703-f9e29ec37135@amd.com>
In-Reply-To: <c429d2d8-d655-4c39-a703-f9e29ec37135@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|FRRPR08MB11968:EE_|DU2PEPF00028D00:EE_|PA6PR08MB11287:EE_
X-MS-Office365-Filtering-Correlation-Id: 54e72a20-9566-41c0-c0ed-08deaf504ad7
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|56012099003|11063799002|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info-Original:
 3l/8rGsT/t69BESaNHPE2rLQ6t6fjrTdxgVZRv4hs+alCjeqBbuOh8MFsJRgxOJ0IJEsQbzkowi0ASf7f7q+EadH+3xz+fZo2iMn6XuCuVu9i4/1CPxKeXp51K6lgfIH+yUPyVVik2Qhc0On+YJIPybHvo/k5jlqBjqKqrgzfzP2Ag+yUaxiyoHmJDuWLfr9CB0C786ShdL7IT6CO44WZY7PezrFDRmYDWjoxAvpaagwC/0RvK13HU6u4S4pOvnaRplekgjRCZQ0SIpmNwemO+Q3qtFb8nOlNlYyoiA3EzUivbol/FstM6VBp/hmmYobUsH3XuVv3vX/eXzwAfiGSAK52Nge0aRYFQ5PVc5DkACLteb4WFtpfl21gIRuFqCOBVxE+sm4vJjhGNwVuGlxzjyRlKU2LjamldR2qIiX5oy8KtP7mISbPcEw96605CVsM0l7xdM9s0fqELtJ6kypq2eIex4qL8hOE+tuqTFZWodc7edlfCssXLnG6OfD0X8Wek/M73FBsf7sCYYoOVhuIVIhafa33DTVd8xFnzRWB2Y0DaVSZtM+7k8TzRmF3HSo3BxwuwNnZ+liBXOspyydnBd2w6BmtzrRoUywzWJEG77oFKGnwFxx2qZgSPLs1vU9TIDoy1VsTGzNQl7lSXJHlPqDXNYzaae7l5wJGYx1sPjiBGk4zy7RztkRI3YR2lzoc+hFTr+R6be7W6drpXAaUdFRAvPz9DZWNpXJj/9v4635SXNc8u1/0J0sjrL90YGJ
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(56012099003)(11063799002)(22082099003)(18002099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <5BDE3F6D8E651E4AB1E9E82A9648B80B@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 v50JwnsycwVvzXswB9ofSz7JBUhTXxgr+7ZmnGwKF6eGLeB7mYL6qLOX7TG2AmDy0hLFsRdH2+0yrDsha+g6jZ4iuSwfcIwjOaNqMDi9DzFI7gHh3xapd8QEQrcemAaJydVt5mrSBfxHKPIPZxQaKX7Bqd08MakEc0X6ZC5wzTMIud2qLcfOek/mO9gIffFE6c667xtA0hsI8kX3M6wd//AQXH7K4Gxca2jS/rbkqL0LjZd30YAo//m7Qww4yp93RBbb2YhddRvEL+XK3iLvFL+BcBzLFrI2hk0NjYpI2JVbeZIgHQyAaT8IDgM3bn6g9jvicir2ThaYyOKPutGlvg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: FRRPR08MB11968
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF00028D00.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	c5e93b9a-a0de-49cf-a1b9-08deaf5025bb
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|1800799024|36860700016|82310400026|35042699022|376014|56012099003|22082099003|18002099003|11063799002;
X-Microsoft-Antispam-Message-Info:
	Uprj5de8wUhvlyZvRAdlve9nI5Vj37Um5giGfLF+0jiFOT3lrPk7+UEtSsXlwc05hqDsGqxXmNwhiKQOPO/jpr0l8gWwq7le9DtQLxeN0OJYF4AY8X4JV9Lkbl8y0hmbfSfWTBdnHeVcbt19rxPZwXPi2T6YHY3q02rsWNkyjQ92Q3EfuPUzZgVCiBqe8B62yX+OrXwsXgHaUO/GcQKE286tO1+ZdV3EwudrwVKXxLA6hg3NmRunlwEhVQkvrsA0QLUUzW6sKifPbRZx34161ahZc1HFn0fs3gWBq8f3sVn2qcK5ryXB5x34MyPGt9UKQC/h0dXGmk2QpQg306L/d1m93QS+Reztiksob3z4XcFL0h6cdQk93dN2suLevCz4O0u3krBS7XH2rLBY1+RU4sWbDUE1VUrWGMJJ89c+l5oPfDAe2y9nTyG8yOWj5itYm+i1CrScIpvuXvS4VLeIB1Tihto/etGpQIsqtb3bUBCTPbG2dVqIOfV8S4zc5fnEOMaqMfsjzoz717feR+7gOZqezJTE5IIUKXY5Wc+f1zblTqMZ6uxKxiQlSWYaUGeXXWqHEzuJCsenJFNtjxqr8MQ4DGhpkPesIwUi2MzSfidLqZ+kCOR3+4txP3GZxvhDzTn9E0rMGjIzSOeKMGjJJlCvkDuZu6B40d4ZlJ6D/397t4ATa0f8yb33CbHmoi9tYXa4w8/LwGzkx1VaJ/3bsi1EXdopyZEJkjcOodTZFVI=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(1800799024)(36860700016)(82310400026)(35042699022)(376014)(56012099003)(22082099003)(18002099003)(11063799002);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	7O1EG7RYNHqybvGtK1bMgSkQTC1A7qNFB7nye/EvXnm9mh+I9hZrWR8MtAmLPvQAKXl2CSUF3LTbFFyAUTuJi8FuZ5A3pE6qFINEYn6YO1+X1826shRguAcRiN9BZZz5H17H22As7Vv4vOKmYcD0q4HaLSp5+fAZvqp29MXmty573Sf5kRE6VgNxV55QgGo9DOnlxNhp8dDAVZlDkWers8j5OFB8T81cVfb9tFhBPh1wyLauYurdhtC2O4iGH1nGbAWJ2qSJcaNMj5oJv6X4mJsOytSjm9eQYfHJdcHaNktX/s+9xxs04xlhYlikz3Qk4El/gpdIVQnbOE5HsFZcHEEVOwl2vWkl2pwBmI9s6nYtPlzrxHEKM5jT+L/lydmNr7OKFvtYz+9+LZf2bdISMDoQWaKiiA0Clf6DAugNBC18S4vO2H55PfVDwOKZyJ6n
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 11:27:32.0057
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 54e72a20-9566-41c0-c0ed-08deaf504ad7
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU2PEPF00028D00.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB11287
X-purgate-ID: tlsNG-c201ff/1778498855-DBF66443-5E3A6A47/37/8731104561-1579941
X-purgate-type: clean
X-purgate-size: 2294

>>=20
>>>>=20
>>>>>>>> +
>>>>>>>> +static inline bool v8r_el1_msa_domain_sanitise_config(
>>>>>>>> +    const struct xen_domctl_createdomain *config)
>>>>>>> Why can't this function be common? I can see 3 definitions (Arm64 M=
PU, Arm32
>>>>>>> MPU, MMU) but they do not have anything that would prevent from gen=
eralizing
>>>>>>> them in a single function.
>>>>>>=20
>>>>>> I can do a common one I think, just to be aligned, should the common=
 one behaves as the current implementation?
>>>>>>=20
>>>>>> Arm64/32 MMU: Only v8r_el1_msa =3D=3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_=
MSA_NONE allowed
>>>>>> Arm64: Only v8r_el1_msa =3D=3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_{NO=
NE,PMSA,VMSA}  allowed
>>>>>> Arm32: Only v8r_el1_msa =3D=3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_{NO=
NE,PMSA}  allowed
>>>>> What's the reason for allowing NONE for MPU here? None denotes proper=
ty not
>>>>> specified but at this point it should be set to a default.
>>>>=20
>>>> We treat NONE as PMSA on Armv8-R, so either NONE and PMSA are valid an=
d lead to PMSA at EL1
>>> NONE denotes property not set i.e. set a default. IMO at the place wher=
e we set
>>> a default, NONE should be switched to PMSA. This is a cleaner solution =
than
>>> giving two options the same meaning. Sanitization could then verify tha=
t indeed
>>> the default setting took place.
>>=20
>> Ok so this is a bit different from how all other *_NONE are handled curr=
ently (TEE and SCI).
>>=20
>> So on MPU Arm32/64 now we will stop the domain creation if NONE is passe=
d, is that the behaviour
>> you are expecting for DOMCTL v8r_el1_msa? (Ideally we should not get thi=
s because we will switch
>> during DT parse)
> I think the confusion is that you are mixing the meaning of none (i.e. I =
don't
> want it) with not set. In case of TEE and SCI, none means you I don't wan=
t TEE
> or SCI, please disable them. Now, how would this look like for MPU. I don=
't want
> PMSA or VMSA? This does not make any sense because it's something impossi=
ble.

ok makes sense, I will then:

Arm 64/32 MMU: allow only XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE
Arm 64 MPU: allow XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_{PMSA,VMSA}
Arm 32 MPU: allow XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Mon May 11 12:27:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 12:27:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306111.1578180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMPim-0004XL-53; Mon, 11 May 2026 12:26:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306111.1578180; Mon, 11 May 2026 12:26:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMPim-0004XE-2C; Mon, 11 May 2026 12:26:52 +0000
Received: by outflank-mailman (input) for mailman id 1306111;
 Mon, 11 May 2026 12:26:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wMPik-0004X8-LG
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 12:26:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMPij-0069vV-SZ
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 14:26:49 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a01cb04-2eae-0a2a0a5409dd-0a2a4508bfc8-32
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 14:26:49 +0200
Received: from [40.107.209.33]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a01cb07-63b5-0a2a45080019-286bd1212653-4
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 14:26:49 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH2PR03MB5205.namprd03.prod.outlook.com (2603:10b6:610:9b::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 12:26:45 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 12:26:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZTxxkD3ahKNc0OsHdVQFEsA/R6xlp+LrUusF+OZZu9IJHolEfR4FZb3DazC/DY8zCqq1iIYjKKh0xmZHUZzxRYuxW2K6rXsOuEvW+TVdMRdWI6k1xaw0znDxh30ik86Q+IT8KwvfZucouXp9XvIgolNFqBiiAMdq+NEMkd7+Hdog4wOuISEQhBb71V9wnU/NKVMpEaBl05U++26qfcTXmNNFmzict2z9Ph2RMVnpA85TQA4uQGrcmEPs1zj8fuZDw1/xznQh9tzaLK/NVtMnokZH8eJKFn4dh8WSM5BfUQYEbuvQJ1Kyl5McHZT7o9uwC520+aMIT0a4yJZHZaRfSQ==
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=FU+dJ8hryVeVfewUOjAM6q4G/U8PSqpsg7iy7KXantU=;
 b=PExG/dYENgS2sNIMDwG7FJykIuHp87odr5iML/eucvKLW6cM/E3zpHO7mF0dJq5VFMqURVUH3r5ZQRpKUwszTeubTwat4y2VVZ3tN1Ilu5CmJNvf0BSJQf7QvFmEgPS20WlBUqABknXXkuuPRRtB0jzN81FOa7Xi3iEsMR9x4GSk8ISFUYW4GYTvLpsfz9M+a2VqGS8dX7etBKDPbvfqHs4hWZJ+lwjDOTKyuwNIYdoeQKgCyle2y18tGP5rmZX0q2dxoBRVxwJxxbKsnRORLXd9cxcnmVRFger6muKYzUFvOhbn9QQx8exvXuSAA8YPa2hqPrcvIf3S5T5padq+9g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FU+dJ8hryVeVfewUOjAM6q4G/U8PSqpsg7iy7KXantU=;
 b=rp4rEuUW5ZCpjtyTRpgEVubQ85brgz07hWsTg1KxW0SSs1cNZgF5gdo8syM9LPUp2PqlSDBK1wlKTFSaGnzqvXzUkdYVKLwpRyqteJqD1FCuMUdItViBPDqyOLwyuWR4V9HNyYYVXhpAq9aqu400yox5qoSq+kfyV2cYUAcRy1U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b703fceb-4ef3-4869-8341-225173bc406d@citrix.com>
Date: Mon, 11 May 2026 13:26:41 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v11] x86emul: support LKGS
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <0099bc30-ce07-496a-b9b2-6d7ca400737b@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <0099bc30-ce07-496a-b9b2-6d7ca400737b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO6P265CA0030.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ff::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH2PR03MB5205:EE_
X-MS-Office365-Filtering-Correlation-Id: a5c79229-2515-466c-109f-08deaf589065
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|22082099003|56012099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	455pnqsjHPYS/b2JhSgRsb5Qbwe9FtfvW3/lyRUy5wjHlv2383PVdlXi2pEn3/2sxieMmVDnuQFKfZvFelNT2pKhDQcs2RUj0rcYS32Q/Vi48YI64EEwqeva6DvZAkh4sMF7OPPzbW6HrL2hMEwzEHbPzcjlgYdZemz6xb5BWWVzOass7xopxiDSyDU/GHIyNslix/H4Msq34cJau0x2RE3HJgJ9iEeh+tKkomP4rVzz69V+n1H+YFiLHT1fE4sr7NQIQbEWfa1XI5U3CzjQVpRPMQIAfvUbjLdQcIXEoNlkM6cl+jIgjLYbsUSXFzm4J7Dekz2jIMvtLT9bL2DcA0/YqCp1+RwmoLS5tT98Za9romcbSjyN9EkvkiM36HGwDGr/K68ck2hCr9xTrIdIiWGt+lCQeGoLIa+Wm6EgVVA2ijmVMK2LflJKh8multAdVJZ38eiWQkKpiQfGrCq57SOHONddx5UcBba1bVSr2lmIDyckTq3Hbvnqfu53vn8KF4C8hGuWB3avzbY+u0aB4n81OBWJmx/wy8XA9HHJHDxeXWZEp5qiqoEVR13waCWjj5o0xtOfh/wZrinV8E/Wb2N1uloC28+CVSEwrCDjH7EssqbBUuMZtHRVcG5fZhW9I8MY6vZ3Tb+SAftXX7fZjdI2PXJdUVc5gQgeNe1bl9JDiJlSolfZ2aQzcU3p94g5
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(22082099003)(56012099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dTcxYU5GNnBwZGVKbW8ydGxyZlhidkxDNUFMUER3K0M2WUtSZTRNZWpCcjNo?=
 =?utf-8?B?c2V2SGJNcDk5UEcrRWYxMERLN3BPaVJSNGN2Y3U0aVYvUVBuOGpRbkJrMzFs?=
 =?utf-8?B?ak8yUW4rOWZ3d1hZZUpwMW93eDlsaFZsSTJ3ZWVyRGdNNlBkTDF4OFpmamJn?=
 =?utf-8?B?QnNsazFEeGVVZDA1azBSaXdHeHFpaDM1S0xRNzF5SlB6TVdaeHh3U0hNZU9w?=
 =?utf-8?B?U0hjSVh4d2RlUHpLbWdlL2ZpSCs1TVdrVlpXaU1GTkxxbjdqYkhqWTNIc05T?=
 =?utf-8?B?aDlvMmJESUgyQ1p4VjZVZkFCQWVyQ1QrVzl1bFhCdXBPaGpsa1pCNTdiTE5J?=
 =?utf-8?B?VWtjdWdXYWE4OEtxaDVYZW9pc0dqWldOTG1ZT2JZTWt4L28zZWx0ZTZ2amFH?=
 =?utf-8?B?MmhLZU0yajUzNitLOG91Q3NaelJiMDY4b2h6NmNWUk0rTXE5STBjNElNamJw?=
 =?utf-8?B?UmViZHJSKzRmQitGcnpMVGowazN3Q3dDV1d2V2pneEtTbnBoTjAvSUlNSWt6?=
 =?utf-8?B?Q3lYTVdqYWY4czVHaWYxWCt6cnBvMjNQMXNpdVNGOG0rZ0RtcEUvbklhY2o0?=
 =?utf-8?B?bUVYUUlITjl3MVN2V0k3ZTJPcmdtbkF3dzRtT21WaU1mMkR3TVpUbTRCMXpV?=
 =?utf-8?B?Mm5EQ2JZSFRFQUVXaWRQRUZSWFVzenhqMkE4Ym1aM01tMjhiME42NGExSmJ5?=
 =?utf-8?B?NTZUN015U0kxcDhXbmh6RDNnUDk0aHNJUStSRHBYODBSZkVmY3FQN2MvQy9w?=
 =?utf-8?B?ejNQUDdqeFU4Q3dYUmdJY0EyR3ZDQnJYMHRNV2VuZkIzcG9IaDI1MzVlQXpX?=
 =?utf-8?B?QkI0eHp2K21GWVRxNXZuTG4xVUxKbEE4TTRqMGwwdWxJRU40RjNHWXZWUm84?=
 =?utf-8?B?NkpnVVd5OFQvTE5jRGRxbW1uamNZRUxubmNNVXhVUHIyakVsSmVGRUs3Tzha?=
 =?utf-8?B?QjNGaDRBcVh2SFpHb3BHZkM0UTJhOWcvcW0yMkhkZjlqN1NPVEt1enlBNTVO?=
 =?utf-8?B?Si82VE9ROW83bktkRGY0M2hzUEcxUloyLzN6QjVKcWxVcm02a25vKzhwU3lZ?=
 =?utf-8?B?UHF2eHNHZW43Z1BOZkE1MVA3VjZDaEdBWDJCSVQ3eFluRTJ6RXBybCt6bWgv?=
 =?utf-8?B?UVV0V1pBbE1tcitjZGJuY2RqcDB3d1RuQXI5enRqMm1HcjM1dzF3T3hzeUlX?=
 =?utf-8?B?WUZoOTNWbzBvWnoxbGlHZUJLTzgzWUwrdndTdk1ZZVk5OWFFNDJrN0RGRXE3?=
 =?utf-8?B?Ym1UY3EvN01sTGNyNlJ5Qk15YkNNcnNYTkhLTktRVUh3WlZ0SHh0UW5wNlA5?=
 =?utf-8?B?cit1UkJxYkMzaVIzOU80N0VCN1R2Q3FXWDBSTG1DVWNpTE1jTDh4WjBLbzRD?=
 =?utf-8?B?SFFXQXpOQitIMHFsdVQ4WDJjU1Q1ckk5c3VDbms1SVB4c1lYNDlhd24yL080?=
 =?utf-8?B?UWgwSC9FSFJ4VS9zMk5MaUpsbmlVcFlqK0NsS3R2ckRRNENuaDdqL2d3Uk1I?=
 =?utf-8?B?TmVXQ1gzbkkwUVVJamdLV2x3Rjh1eEw0UXo2Zm9uQUlPMGRJUk82YUpuZjhC?=
 =?utf-8?B?QTFhelFPMXlVUjVPdks2QkJWcnQwLzhoNTI2bDVZdENrMWtjemdUT0pzeEVa?=
 =?utf-8?B?Y3RyVUtuWVdJdzBncjdJUE5NNUsrNTZlcENnWEFKV2Y4YVFKaDBKUnoxS3dX?=
 =?utf-8?B?aXRvT0dSb0U0VE1zeVd5dHBjbnp4ektKRG1QMVYwQW41WUNlZlhLbDhZQkRY?=
 =?utf-8?B?UE9oVUhpYWg1NUZYbUpTUXpMQWF4UWVUL1JGRkxMOG5XME9IMVJHTFMzak1S?=
 =?utf-8?B?U29xaW5wWlVxU3c5RHlaWnVOakc5Zi81QkNaTU1nZkNKRlZhaTIzODlHeFBQ?=
 =?utf-8?B?V1hjS2NMUDZNNUs5NXNGb3FsYnowdmcrSFZrTGEvSmZsSmJCN296VDZzcGhX?=
 =?utf-8?B?UW1KRGNrT2tBVmc1TDBxUXlIUHFieW80SVVwNkxWdEJ5bklla1R5eVJlUnVZ?=
 =?utf-8?B?Q0p4OWRsWlFRMno3cnlJcUpEdCtMU3VXV2NEb1FZU3RxR1Rob010YjQ3b0lD?=
 =?utf-8?B?LzVaUzkwSHJYTU1ZWlFaQjBoL3I0OCtpWHhlVkJhZWcvQm9GaWVhaktlcHov?=
 =?utf-8?B?bUpkUit6eVNNSCtpS24zUDd4bEVDRHU0VkdzQ1JFTVZqNTc3TDhwT05RQ0V1?=
 =?utf-8?B?bUY2VU4xWUYyWjIvcTlMUDMvMHk1QVgraEVNcXMveGg1UjA2NWs2T2VycHpG?=
 =?utf-8?B?czQ0T2lnK2IyTW9UdWxmUjhtaTlsT09IMXkxSjNobGRYTHk0R0N2a0hxRUdM?=
 =?utf-8?B?bDY5cDUwSm5QbGV2REpKMG04ditIMW5wTkpGU0tDSXhjVlpOMFNWcnpHRWxt?=
 =?utf-8?Q?benMfIPlephG1K98=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a5c79229-2515-466c-109f-08deaf589065
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 12:26:44.8656
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: lOCs2OU9BQjwXMyrtIHwOzdJLeZiTQWFA4snPdSB+gAS/9GE6WUhcfjmKGNiNdb6wg52ZRrfhFRBQelErVWEvTcWRTcyub/gTRj3s9U3Zro=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5205
X-purgate-ID: tlsNG-c1860d/1778502409-B5B6CDB1-294C04F6/0/0
X-purgate-type: clean
X-purgate-size: 499

On 20/04/2026 3:07 pm, Jan Beulich wrote:
> Provide support for this insn, which is a prereq to FRED. CPUID-wise,
> while its and FRED's enumerators were already introduced, their dependency
> still needs adding.
>
> While adding a testcase, also add a SWAPGS one. In order to not affect
> the behavior of pre-existing tests, install write_{segment,msr} hooks
> only transiently.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Mon May 11 12:37:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 12:37:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306124.1578189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMPtD-0006RX-2d; Mon, 11 May 2026 12:37:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306124.1578189; Mon, 11 May 2026 12:37:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMPtD-0006RQ-02; Mon, 11 May 2026 12:37:39 +0000
Received: by outflank-mailman (input) for mailman id 1306124;
 Mon, 11 May 2026 12:37:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wMPtB-0006RK-DO
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 12:37:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMPtA-00EyM6-QU
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 14:37:36 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a01cd8a-2eae-0a2a0a5409dd-0a2a450b917a-14
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 14:37:36 +0200
Received: from [40.107.209.58]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a01cd8f-212f-0a2a450b0019-286bd13a560a-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 14:37:36 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MN2PR03MB5213.namprd03.prod.outlook.com (2603:10b6:208:1e2::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 12:37:32 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 12:37:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PomrkHFPsD3axxiiaTD4qv48AeMpfOoxd+y177N6UfewIh5nh19ZMVMOS4LYkTf/ukdb0xh7MLQGMPIABfFWSulzaBEEQ9PIBIrMSJ6Awk6cbFKh4hJA/dN06G8M/20HDWo+EB6VQD+ts8ONVzVSYLjrRl/+J9YmSi142HSKId4Ya8iGT62Aqw+xV0gkVuGL1goqGqNf7Q+6tM8bB1WvNfGvjcmH6d3xABaHdWVrYIkb0iYWCXRBrPp43ES3nkkPyg6cxUxvJvlRBCXpWqXpbnzSYjzw4xNkW+i29rbUpKnu7RXINwgvufTUX8CMNkR5OSD1/i7hG7Q9CXNxgDbQ7Q==
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=hms/RpbCto/QnfYn4Se9uj+xD2gVfhyzXgF5kAG17Xc=;
 b=iXIN6OpHmIwYXen7OjzoE/HeOkWxsL7so4Bnq86FcCpWVkB+uJyzxhMzKqt0awxOC/+WhKE2p8sPnXKXMELrieWNLD8R8mZpdgLtKQZffY+7Z044tYHR6qSvpVkqm8rDUssKZKEEwWtfcxnUlw+Ht9twgtqwID3jhT9C/N0XEt6kFQncgXuoDONtkxK6ehwBIcCzNjzl88w+4AJeJ/C/x+tLqXKz/ASwNbm3IAshGaRPfHIJUbzdnhfbjN5DeUHiQWz88reMKtLuvOsoMWBDwOqFad5ug6J1dUgyk9wgdgmJvzYO1I8HcMLYLP5yjaJ0c+qtLqYli8yv8Ev7T7LzYg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hms/RpbCto/QnfYn4Se9uj+xD2gVfhyzXgF5kAG17Xc=;
 b=LhimOa7MBEXii+8CcW4TkopYuEwEWfbQ+Qnc76y0U5yZlVs3oQeregl5eq1HVkCxrtiBsn0D3ZKD9HtwfAObdmSKIRpsu9ilAEWIxurdog7zP6msalsItI5Ge6/mBD3OZa1v3M68Kn21ZvmMvbPSH/eHqqK5P4iUNaIR0CqVxAc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <cf0e9b57-c015-4ba2-b7de-a506c981dfba@citrix.com>
Date: Mon, 11 May 2026 13:37:29 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/MCE: adjust S3 resume handling
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <1e0a8808-4594-4574-819b-1a75d104294d@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1e0a8808-4594-4574-819b-1a75d104294d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0059.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:60::23) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MN2PR03MB5213:EE_
X-MS-Office365-Filtering-Correlation-Id: 6433a9f2-361f-4d5f-0a10-08deaf5a122d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|11063799003|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	5G/rKuMF+CQIMto9RwBYauyubmC+InJ24bHDYZv6dWUTyIMALt774hiiuTG47U9b5MbObvO/4SWkpoE5+joY/fVqbUobkE2DOhVVvsBfKFnZ9Cqkv2rn/HynIVgBScia642sj4kcdXZGm7dqxzEjZOYvzO6S6g3Rn5PAaMYoanTakKMHzqGaescy6MPaxPSO3EJ8eIHHE9gp5tGlH6cPkkUzGNkc2Ctw6KqiscPGv2gLavCLZHOpfP7xqU7k5rcFN0vDW3TvyRf3p4EG0ZcTFkzglTQCgwuPlCSNPr827WxPlYg2ICLfltcKHh6ATT1TeDNy6732XLzdinw3yyulYMFerpb0uxU8De+9J7Lk2zfsSEtYJqSqgcaO4WcWEENv36Ih1ZwfX1DuWOk+5ywmM27k1y6Gqi0ZmYeIFrj5DFdv+KQevcxXSWf9Xcp5S/ut/7XfB9jppHg4AnDsIujiepk9rLUtS4JcVRPEfTjurtCDCnLSSh2PkEkDJojMGmuThIgl1jGCHbQ758ZMgmxQQDIg7A0HQg37etv1YA1Gr+QodenoUzJR6Ya6CHK79nWsRWTcd1P9iGlVujq3/LCYQ3y2UExxLXR//78V4rSBNEIwodIVRkBqORbBDSZiWjD9L6eKC9wm/Emir9nb2NNFwQizyYwJTzYTxNyBRu+Ayf299zf7CKkwIY4rHclLZUNn
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(11063799003)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZmZyZWJOSEtNbUhHWDl2ZkF4amVqaGV5YTJMUFVudG0vTCs4eTlTYngxSHpJ?=
 =?utf-8?B?Tk94NEVSQTJGSHJmNDFobWgrSU5PWjIxWElQREQ3eTdMdUxmT1J1YmUrTGFS?=
 =?utf-8?B?MW5IckxDcnMwZk43eHB4Mlp2ZjNYbkVUQXk0bkhVVzBoOGpyb1NPWTllakh5?=
 =?utf-8?B?b29USi9ZajVlTTF2SUVmczBMblZTZ0Iyd2J6UURJMU9XS1l5c3c2Z09udUNU?=
 =?utf-8?B?MFl0ZnhaamxKamRJbjI3eGlQdE04eUg0dHM0MXR3YTRtZURpZk9oZVRqS3NP?=
 =?utf-8?B?RFQ4bEpWWFhjblZDTXZib2gwQ2NUeXU1OTZ6T0lzTlVJanRpQnBDN3lzVjM1?=
 =?utf-8?B?NjFScEFWRXlIdmtOQk9CaERQWFBaQTRyanVVM2ZQYm9GamtEUzBtV0djVUh3?=
 =?utf-8?B?akhmK28vQWVWV3ZhTWNHVGkxa1pKb2laTFF2VTd6N053V2RzR0laVXhXT3ZF?=
 =?utf-8?B?NlVZQVVjZjBpeHFWOFVIYk1Nd3htVlFoZ01RR3pYYnR6d25GeVZhYTBDMUZr?=
 =?utf-8?B?NjVXRnJNSHI5a2hmSWFqK1BnQjBFeFBUSFE0VUEzVmxLRENrWmtqMmdJNjlQ?=
 =?utf-8?B?VXNjeGJOV3MvZ1diL29FVHRhbExRWmpPTTlONlM1YkpMWEVjNWplbnNyTGcz?=
 =?utf-8?B?dzBFbWRJTEd3MFU2aGZCdEZnZzhla1VTa0xMeldyUzNyVngvTmI2L0pLK0hC?=
 =?utf-8?B?MUxLV044T2lYNGc0dUVwOXp1aXRVV2V5Z3dTSExwVmthS09tR2xLN25kMEFB?=
 =?utf-8?B?UkxoUjExdHBjZjZiTFlrNXhCQmNoWXV5NE5WN1Zad2tEVWtJcEM3dWFxTVZU?=
 =?utf-8?B?VU84ZkE0NG5RaE9FUHZKQks4Sy9wV21JSDN1NW0vem9xa2Urcy9GRFhydElT?=
 =?utf-8?B?REp3aE1SS1NWLzVZVklTdUVLWWR2WktHcUl2c3RTM2hZRUk5KzJCZ0tTcWNZ?=
 =?utf-8?B?YkpWajAzdEtRUmtaL25rYjNzOG5za3FyVzZCbFlkOWRicFBQa1l1SjFEdE5N?=
 =?utf-8?B?Q0JMenVObGI4eG5MSEFHWGdqYytlQW5WOFZxa3Rjbld6dzdkZWNPcW5PN3BS?=
 =?utf-8?B?Y3V6TkpFcTBTOTBsT1Q2MW1mWENwNTNwaDhWbC9sek91akJteEhZVlVOL3Z4?=
 =?utf-8?B?NzVRWnFwMXlaVlhlZlNhek1Sc284REVCYVF6c0lIaTJlbFd0K2J2ZU1aV3FB?=
 =?utf-8?B?Tll0ZllnNHJQZDU0MXM5Tk4yQjJJUnJ6akd4cHlHbEtMcWYxS2tlanlqZHNu?=
 =?utf-8?B?REN5bFJOOXZVK0dMazBLRzZXeXZQb0IvVEx2UStsZmRhZ29LczlFWXhybGZw?=
 =?utf-8?B?eVh2UzdOQmxLSjF2L1hBNnJFT2p5c3A5dk1jYmpvWWkyWjBnNWRjeFluOWw3?=
 =?utf-8?B?TmJkc09KelpoUFovMGs0R0U0TElKd0U1TUtyMjRJRlB3M2pNdE5oU1JJeWsx?=
 =?utf-8?B?a2tMUTRGS01kOFhPZDlmZFBvNlRGUkw0V2o1ZnlHOThSR3VVZFdRYmtIMXgw?=
 =?utf-8?B?Q3lTY0QwU2Vzc2lmUXZEQnRtczFDUTUzS0pZaE1KNE42SzAway9oTU82aTJ5?=
 =?utf-8?B?bEU4ZzZiQmUvbllWdTFOZjBiN1dCSWt6WFhscGx0b3YvcDRVdnVscXg2U250?=
 =?utf-8?B?N0N2eGFsbFRXd0V6MTJJU0E0VDZ5NVY0aVF0SDlzL3lpUmVGUzd6MUpZd0w2?=
 =?utf-8?B?Um9CZzBGUW5Sa1FnUDMrRFpyR0JIREMrbWRPZlE4ZVFGSVhJdkk5SkhNQXF0?=
 =?utf-8?B?aTI0clgwazZ6MXBMdGluZ0FncElLVENycEZCaHd3YTlkVkJnR2xncVZ4M1dx?=
 =?utf-8?B?ei92QURzbWtocVo2K0JTeE9oK3dNVjUraktyK0lKU2pBUVRvWjdVUEtBUDh4?=
 =?utf-8?B?eUVTNTB6RER3Z0Ftd00rOGFDZmIzQlFuQUsvOTVlZWNFL0g1S1pmdjlrQlI1?=
 =?utf-8?B?cjZXbHNmTWVsRjRMbUZGakZuYTZUVlJWZVNMWVN3REJtMTh0clpybkhCZTNm?=
 =?utf-8?B?Nmh2T3hHVjBJcmlpQ1UzNjlDWnVNT1NlRkVyM3p6ZjNoUDlJZC9XV3lwYkR5?=
 =?utf-8?B?RzYzVEN6K2plT0VCLzV2OFJDbEM5RS9ocnJCa1N2UlA1OXJqQlo1eWRFL29N?=
 =?utf-8?B?VzlQeVJWbWdiQjVoMnFVK2FYTm1rYVlINGpVdG1FVEUrNWM2VG92NHRwb0pC?=
 =?utf-8?B?WmFKVzV0RFFSWWNWb21HdTMxOS9hM2VEQXRQeFROVXV6bW40aFdzNkJzQ09p?=
 =?utf-8?B?c1JFN3MvaDNqdjI3WUhtVWFnS3A2dFEwUm9UNFZ4ZkZIV1kwcDJic1BudEJD?=
 =?utf-8?B?SXErM2g0M2I5aVNIbGRBUHIyZ3oyOU9RK0dQZFErc3lkYzlWZGF3VWtSTnl5?=
 =?utf-8?Q?Oh/ofQvII7LWga3s=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6433a9f2-361f-4d5f-0a10-08deaf5a122d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 12:37:32.1016
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mq9LX5sbNCEWjGXQsSHhaP4KzqvMxsjk9h6orQzWD1xvx94eofCpTpzLxQYIobD6XH/blJURpmooSHBlInp8BgPBjSIEYIYzaVC5ngbmUyA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5213
X-purgate-ID: tlsNG-42698a/1778503056-1A971F3B-5C268A2F/0/0
X-purgate-type: clean
X-purgate-size: 550

On 23/07/2025 1:20 pm, Jan Beulich wrote:
> The BSP resume path calls mcheck_init() with the address of
> boot_cpu_data, thus rendering comparisons against that pointer
> ineffective. The additional "bsp" boolean needs to be used (and
> propagated as necessary) instead.
>
> While touching intel_init_thermal(), constify its 1st parameter, which
> in turn requires touching intel_thermal_supported() as well.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

This is all horrible.


From xen-devel-bounces@lists.xenproject.org Mon May 11 13:01:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 13:01:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306136.1578198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQFm-000266-QC; Mon, 11 May 2026 13:00:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306136.1578198; Mon, 11 May 2026 13:00:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQFm-00025z-NW; Mon, 11 May 2026 13:00:58 +0000
Received: by outflank-mailman (input) for mailman id 1306136;
 Mon, 11 May 2026 13:00:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wMQFl-00025t-DR
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 13:00:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMQFj-004lzR-8M
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 15:00:56 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a01d2fe-2eae-0a2a0a5409dd-0a2a4504d2ec-30
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:00:56 +0200
Received: from [52.101.66.1]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a01d307-1dec-0a2a45040019-3465420141cf-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:00:55 +0200
Received: from CWLP265CA0539.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:18d::16)
 by AS8PR08MB6279.eurprd08.prod.outlook.com (2603:10a6:20b:294::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 13:00:53 +0000
Received: from AM4PEPF00027A63.eurprd04.prod.outlook.com
 (2603:10a6:400:18d:cafe::f6) by CWLP265CA0539.outlook.office365.com
 (2603:10a6:400:18d::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 13:00:51 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00027A63.mail.protection.outlook.com (10.167.16.73) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Mon, 11 May 2026 13:00:51 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DU5PR08MB10635.eurprd08.prod.outlook.com (2603:10a6:10:51d::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.22; Mon, 11 May
 2026 12:59:45 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 12:59:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=LdRvRyiZ1uU2e8OAejhISg1E23+bu1rIY2h1LZsDAeKSSFqEsuZHP/wcpCPnRIiPFLjE9KYSfWKAXiGm1aYCeH1FpGospFCWSFhprcBAlEX9CkSBnuf+DjRHDijGhNEUX3HgB5hR8z+JoFeWvIsNuQ+3DxB/rnL+26535FrtHcIBmlaYqdaTisyMEgEE99FcOuvzT1x9FncvbK2ABMa2AM9CAabBxmiTVwaHtnmEqlYWDWq7ldaFxMhdtIGfZZfLlm6R35g7CEe9jtdVGkI2l0nrt6lWY2uB/pNBbVTyJwZ+1cDKRjWDFyO9+IiqR9CMKfe2rknekEGgkVhT3H/kYw==
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=oHQ6ELv4z7rKgce1afPVoeXUmD67Zg8B2xFMpYIteCI=;
 b=qNwQcS2kP0h7/GRQmvXW/KBP0bsDVjwjgaC9lVd2v6zP7FDy6QKPROMtwVFJ3jU4xmLHo9kmyrCe7vU1E0OCSz9+h2AemGKeIbteXlDBFUn5/xaOLVM/CVRTMJlsxdkn19ExTSixFf/S24MJ9yR4SUmBTKRVHcx/tSD7z7oTxK62ZGewOM06CaGH7FTiptuhSdNBxoz7yhdS0fFgTeOi4ve3jdDHOAVUaP6tOG0XV1zpwv1h/K4Fbu/F4nYd0pAsnrRBMDma3WA/To2PpMMvSo46j8imkJRCW/XKDx1+OOKAkEvDuSki7FmF+Kcvqa1XJ2O3Ol4ZVGmCVdwg9+r46w==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=suse.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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=oHQ6ELv4z7rKgce1afPVoeXUmD67Zg8B2xFMpYIteCI=;
 b=qGFh8gqYm8kJcjM+UbQ3weSKsb4w9sP8LMA+8FU6JcHYZO84eofSzOgnQq6D3uJjZevAN3inJlybYqizeOoPONqJH0zuEQFjQVwH9oIeGXOFE3AWBIpXUe2EMwd3D88TttdJNOfOuqkFQ65vpl0hOXbPTOiyi5fPLesGjC8tS4c=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EDb/3JVLSh4wHM3Nq7qgA7VICSqjyaaenJpPJ1NPtuZBOXpLMByDeVns1bkeZtg7zRN+51G1kJuKO3DBLk1MKdhg9qMEc4m726c9Wrtm2j8VpilKdVMFjZ1tmyBkTjOsuB8lU/a/Z3nBGmrI5CVryUIgKbnR78HdQsiOnpDMs0Db9bD04Q1sVkJLtNw9QRetiN1n09pzti+L8uHWvxo5nPgxYvRhs3Hq5jqx+z+9tUE/VXTx2XYDCVFsA7TUuKmNVBIyZdEi+SS3/pwYWfx9dJkqr9ZeDPjPxyfyvwOIHDbq9T25P4SKb8thgBNgdoI4JxbIHMZyUQd3pfJoUpgfFA==
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=oHQ6ELv4z7rKgce1afPVoeXUmD67Zg8B2xFMpYIteCI=;
 b=y3L7qbZZxoLGH4ESxXuFDr1vEn/EHRLY18GAYhCs8F2NcpHuPt+a1kkob6igYFgV3BuXzGn2EqRM7SDUBaiQ2CvVGlPkobv1UgFSAsXgFEXGNCZjE/j0s8mvbip7S2/p5UATL6pQ9L/URXKFp29pDHjQ8jcVDwMPg5nVlG5+lKVB7IM3ZI0uW9OrHqMiuQNIXaqitZYMBqXCm+B2NApK6rBLaIcvT18F5JSPHul3ZL/QD0DFCJkM0/l0ietnQ2u8gx+UgLuFThMipPQoZ3cc0az7hrP6olEzj1iuBs0EphNXldrROteFlFvN/cOBU1KQjmRtjTPzU2tWrBjbQNdXCw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=oHQ6ELv4z7rKgce1afPVoeXUmD67Zg8B2xFMpYIteCI=;
 b=qGFh8gqYm8kJcjM+UbQ3weSKsb4w9sP8LMA+8FU6JcHYZO84eofSzOgnQq6D3uJjZevAN3inJlybYqizeOoPONqJH0zuEQFjQVwH9oIeGXOFE3AWBIpXUe2EMwd3D88TttdJNOfOuqkFQ65vpl0hOXbPTOiyi5fPLesGjC8tS4c=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Harry Ramsey <Harry.Ramsey@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
Thread-Topic: [PATCH v5 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
Thread-Index: AQHc3vfGpFkxMscyakiMWMN4gJbZfLYIlReAgAA46oA=
Date: Mon, 11 May 2026 12:59:45 +0000
Message-ID: <33A78E1B-35CA-44A1-BF1F-C9C7E968DC77@arm.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
 <20260508143353.3512004-3-luca.fancellu@arm.com>
 <d18d7536-99a3-4680-af55-316e64b9e01b@suse.com>
In-Reply-To: <d18d7536-99a3-4680-af55-316e64b9e01b@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DU5PR08MB10635:EE_|AM4PEPF00027A63:EE_|AS8PR08MB6279:EE_
X-MS-Office365-Filtering-Correlation-Id: 8aa5fd0d-5593-4b4b-93f5-08deaf5d5442
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|56012099003|22082099003|11063799003|38070700021|18002099003;
X-Microsoft-Antispam-Message-Info-Original:
 K1qGPb3Qrn1iSQ2GjaNO8n1Zy68J3riD170K+gXPAjKHNFDxRQ2wmCBU2xzB531gLj0E+M36xrHOfDtPxS0KYiinHBHZJsfmR1ctwX5R+laHb1te8cRMw/f59wEHdoPfn4ed9sZ7igPqFehq8D6qJdVCFY5ZiUDisGTbmsbZYRyg2zLqYgX3DcZEhgYOyRg3xIwZewE/UwJgxk0bJtO02Z7otdxeGY0i5TvkcY0/g03mhTWICyfvU6WC+ZO1w68JxRDllX8pAmwk1edX1XJG/1oCPKy/0j2zSB3/MZLXA8+HGCQwYV8BNOa8fS4KSaAMaoP1HeUpY7rt1yBOB9JMPaBBKsZl2X7xszOI3ZmIOBPQ5fI08UYvTTXf6x0dqh0uCLv75MvW1dgENiRpxr06Qxdoh+nehTqHSF1CMXZCywTLnZko/ApJoFoLwb+j8bzl20OMlVhzoPsYHhOFAd9lo77/iTpwa/SjszKpcwA5IAmOowlkhj39bRGcluFPtclduO42tPi/+Is4IUf5LwYqeZJR0/kYgVAu56K1Pwnuqeqa566IZZXvqVCwVwugLgwVD6eMlCvcDNSHV0Fc9FoQ8n3bbPxuuN1wjHPWbgjq5PRf3DnjC4qQB9Ge2RRkUSMYBGs66RcIHOstPjpWphyjj+L7rfmkPFMID/CjGSC/k5NId2sz3zfq9D3o968N79/ffkFIXcpVPIGNRZ2ZC9KYXZO89tbyDOMLVjskPFhukehEQiwSjiMqjndpz6haVdyc
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(56012099003)(22082099003)(11063799003)(38070700021)(18002099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <006B0AE553B5A64680A592BE9F1D2912@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 WK5chqChn2EuZuJzaRDmx0DH9LuuPkydCL/S1F5IVhiJnVfIFBT7lqbrXwKOZav94Itqwl9+HNQi2PfY0I2zAV7UrAeq83h2b13DCT+Xlwv+xYH1yzmjJOsCKPuWuqAFJR5XV6s3yXmWMjdsqAse/uQDa3ieldW2qcyynll3GH8iFSwnIXF87RXhgFQ5glh25u5E1FyJ1xgIaekgDw38QIG2amq3pQPiRnlIebvSFdAKkQnoBxqlcCqbFQL0ZWY5lpX2tgyTXnYXUmhQ+u92pUCYQCsfqZSTgTWmwv90Yk/Y5bLmzGWicx7XxU7JARI4Upw6/GrfKcXBaTb9zrAXfA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR08MB10635
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00027A63.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5c367e5d-7e87-470e-4575-08deaf5d2cfe
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|14060799003|36860700016|82310400026|35042699022|376014|11063799003|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	Bq529S4e6R6175dYH+gqth/HhtLPnH3AQW8exWJxXzjD2DRnYar2Pkd6j8SNCnNlmuK6bqXbjulaeMVF/gDlYRufc+6syVlKPbzI3B+6a3vfJyR2yx/EBcNE00/76tDp2pnUtAKsNqcWqCJfInGuJDVbGFJhE8OGS3hWIfA++PZ8FOYOT9xzF0G4reIaJxySyZMGMN14/7ue+F7OTIh6oFfszwV2Yd2RhKdCukFQYLVduVbsFT/18zio+KE8KDKG/b0pKF8aXLZIVX1nnjvLQ6Mff5yWNesj4DWzpR3QotTvKuLS0OpqxoGCPsiZSMc7KO8TM5pwT2Pr7JhTYpjHrhJ/KkNT+CAGFwWIwxmur4dNBPbDobfqC2ZNh6/3dDhO0zcZO8rtk61P8ujeHStyjndy71uCtVKzSzX5z+Gd9Zg3SHXuPtCmaqeAUDXImmnsI7ezyDPzB+mKlpDORZa5P5UPU/VcN3yyDOvy6bTdLUIopuykxAgNJNQNZ9F4tDhOYSHSnwr3XcC3N1ERM1C5Wsv8pYr9f4z3Z5kST8ljH++NE9b9FckROjM5DYJvDF4tnI+A+INmAnIC8xbHLGZRdtNJwYCZnm636IYBGORMou6BBrvW4kJLb81RcVTuSDMAoW8bLu+N9phXL9hyppnZHDnaH/P1G4J5SN+tv0QkUSv8dWZI5LmZsQ6JaoxTy5Ny4tvZZSAeNLgNLsCsVQpEceuUOO5dPeYaGR1VCc2dtOE=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(14060799003)(36860700016)(82310400026)(35042699022)(376014)(11063799003)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	IDL4av6ioJS9Oz+LN0A3wyXW9KUsY892AKLoasavoXFrQO3eiK+HDjzQf8A108JdxPURxKs8Pyut9bRbIuyEpyBPVFo6k60VaSeezCnfBHPDulXVEijJiGenNgZss7JF25s65+0+FMYjakfkW89gOaBYlFqNFahfOmOsTUHlhMtQgTN0UbHPnNdvjFqm+fTJ+rMpGUpowBcHP9N0vB6+kOBIas+2xAXMMJ3yDOUlJwfNFIRVzD9UdcfyqUR630/2MUcHAU2cwQQDUNXjn6Tf78gT8/aueRt9+RI5cmI67zhggJAc/ViziEHPVaYMPtmXHFr7sJiARAhkviHNS4O/ftVCH5ZpD6H9OiFM9LvKSxl90Pc7mfEkpajtEupjikrbPXfME1L89pAh4Af1/hLxSCr2Waa2OnRPiDAe52DaRJH/V1XNFXDw+Rc1csWWwbwS
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 13:00:51.2695
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8aa5fd0d-5593-4b4b-93f5-08deaf5d5442
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00027A63.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6279
X-purgate-ID: tlsNG-ebf023/1778504456-413773FF-5903C9D4/0/0
X-purgate-type: clean
X-purgate-size: 1504

Hi Jan,

> On 11 May 2026, at 10:35, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 08.05.2026 16:33, Luca Fancellu wrote:
>> --- a/xen/include/public/arch-arm.h
>> +++ b/xen/include/public/arch-arm.h
>> @@ -330,6 +330,10 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
>> #define XEN_DOMCTL_CONFIG_ARM_SCI_NONE      0
>> #define XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC  1
>>=20
>> +#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE    0
>> +#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA    1
>> +#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA    2
>> +
>> struct xen_arch_domainconfig {
>>     /* IN/OUT */
>>     uint8_t gic_version;
>> @@ -355,6 +359,8 @@ struct xen_arch_domainconfig {
>>     uint32_t clock_frequency;
>>     /* IN */
>>     uint8_t arm_sci_type;
>> +    /* IN */
>> +    uint8_t v8r_el1_msa;
>> };
>=20
> Can you please take the opportunity and insert (and check) explicit
> padding, so that the next uint8_t field addition won't require ...
>=20
>> --- a/xen/include/public/domctl.h
>> +++ b/xen/include/public/domctl.h
>> @@ -30,9 +30,9 @@
>>  * fields) don't require a change of the version.
>>  * Stable ops are NOT covered by XEN_DOMCTL_INTERFACE_VERSION!
>>  *
>> - * Last version bump: Xen 4.19
>> + * Last version bump: Xen 4.22
>>  */
>> -#define XEN_DOMCTL_INTERFACE_VERSION 0x00000017
>> +#define XEN_DOMCTL_INTERFACE_VERSION 0x00000018
>=20
> ... such a bump?

Yes, will be part of v6, thanks for your review.

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Mon May 11 13:03:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 13:03:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306146.1578208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQIU-0002id-BA; Mon, 11 May 2026 13:03:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306146.1578208; Mon, 11 May 2026 13:03:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQIU-0002iW-8F; Mon, 11 May 2026 13:03:46 +0000
Received: by outflank-mailman (input) for mailman id 1306146;
 Mon, 11 May 2026 13:03:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMQIS-0002iO-BG
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 13:03:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMQIR-006Tjw-ON
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 15:03:43 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01d3aa-bab6-0a2a0a5309dd-0a2a450aa54c-12
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:03:43 +0200
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01d3af-56b3-0a2a450a0019-d155dd33b85a-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:03:43 +0200
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-43d76dd4ee8so3939332f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 06:03:43 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e6fffba5fsm177478885e9.2.2026.05.11.06.03.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 06:03:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Content-Language:Cc:To:Subject:From:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778504623; x=1779109423; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=wUoJK4XDhRgnZtEgQTpPwZ92ka9XV+2KFMeknnPSOcc=;
        b=CpmlHsV4lNctvibB7crtljEca5nV04TevawPeb2pKL/T0d7ZXTQAYPR6qAazpJ6tfu
         4INXP6wim6dIbNDhZvgTXq4j45TAJCr4aUl+2cGqp4a5ueX7L16tcpjEEaodoak1hRL7
         mCNwjcNKJz6YfgG4Pliyeal3ng1RpnpKiigKAagkM4kAXbPZKdDTTXt8Ug6oGPevQEk9
         pYIRdycdy2HuuRbqPX5pznACk0BVdvFDox1vk6lnPLrc59HQdvvuQ/tBAdAYytmDxUxB
         gYEkowWbkiD1aSXYqQG4qijiRflhbY1ei6NSHFy4e00y8weJocFw4HcL/ddJkJfOUXJK
         CVIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778504623; x=1779109423;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=wUoJK4XDhRgnZtEgQTpPwZ92ka9XV+2KFMeknnPSOcc=;
        b=NXr2QSlS8yJcEx8hNSbBvuJGLgwALswD8UiegouPqSgg+yqbFayEUtSI2aRrfHmi3j
         BmPRsfRIkA8IvTU/bKUDJtfBY1WnqhRrQBEfwavFXembbXqv8hfRWzhLKyy3RkEnudcP
         9gmssQ9PrqBAp0bJrMrdserdi2ZhAOaJ43pAFEPKA2dibLTcN+xwGKi8iptBGwL06Wty
         DsiSadwMQzZx4PvYxGvmH+bpWQED52yQrfDi339itsg9+T2PDWF/WRAV8vYzWNM+/QQV
         hyCDDl3rK/mIRw274PZj0TmKKQYS5qcNRIo3xVPRTyRV31p3hu5Ekj5SenxiT/ZU4zo2
         Lxug==
X-Gm-Message-State: AOJu0Yy3m/DhTlmQE1GxY3iFk/ttL5tFuVaRr/kHzPPdP0+pNCY4UCXY
	+FjkjPe1s0usjNpCSfv6K9rYWpPhZwuF5nJBHejSEBBojLEfnSn+4RoyhHhbgsvocH1NiTpgqXZ
	KFtg=
X-Gm-Gg: Acq92OFODQWIxDr/5TcS+nW5Tv8pxKr3+HkDQkxSkGAy3EWTKZKJRHTrUfIRcAl85GM
	c3/2UtJ5Oe+Dqmu843gx/ZkemStWJ21SzVWiYXWr0C/72HHvfeYWsnLeTBVCA/iqL4AboLrxrDb
	ZuE8eCobeWzHmIxo9KUoJgmg9SzXfdGUDGCxtxLYHRqoQ//0CXfZNbMaQNJVlUDkQZxStObOvMH
	DIon4EL2NbSWf1LZ47OEsqcEaK8rxnG2pPpx0K4q32DATU1AfBLvz4RjNS52grw8fH8nEM3VjEP
	b8aBgIoBxDKQyvUoD4xcQy18RpYsBS170ttoN9Hsna7kY1poTmyMirTgFjPpXrlDaQIlVvLleAO
	ZjZHFXYJkVJXunCSkRc0WRZXddFVv8eIWMWNc2uS+doKs+dmo58kD+eIQJRbvL1pNgQh75xSXbf
	t9fpEkDuI+X73PUQCg21FeXfPgKdewgs8hazyONxEHiAvqtYZ6TWcyB9JHGhyLE8gwhbMtkFVTR
	pw/HhdqeaElviPnVGwAJI+ZYg==
X-Received: by 2002:a05:600c:3507:b0:489:1b0c:8b43 with SMTP id 5b1f17b1804b1-48e706ad0e5mr151676895e9.1.1778504623040;
        Mon, 11 May 2026 06:03:43 -0700 (PDT)
Message-ID: <ced1547a-f1cd-42c8-a050-51430adc829b@suse.com>
Date: Mon, 11 May 2026 15:03:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2 0/2] CI: re-work / extend artifacts collection
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1778504623-7C67F8B7-96893E8B/0/0
X-purgate-type: clean
X-purgate-size: 212

1: re-work Xen artifacts collection
2: collect certain intermediate files as artifacts

Pipeline (PPC intentionally broken):
https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2515787945

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 11 13:04:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 13:04:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306153.1578217 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQJF-0003BY-JM; Mon, 11 May 2026 13:04:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306153.1578217; Mon, 11 May 2026 13:04:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQJF-0003BR-GE; Mon, 11 May 2026 13:04:33 +0000
Received: by outflank-mailman (input) for mailman id 1306153;
 Mon, 11 May 2026 13:04:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMQJE-0003BF-4C
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 13:04:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMQJD-006IPn-HD
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 15:04:31 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01d3d1-5cb7-0a2a0a5109dd-0a2a450ab54c-42
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:04:31 +0200
Received: from [209.85.221.42] (helo=mail-wr1-f42.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01d3df-56b3-0a2a450a0019-d155dd2ac0a1-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:04:31 +0200
Received: by mail-wr1-f42.google.com with SMTP id
 ffacd0b85a97d-4526a8170ceso2326570f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 06:04:31 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4548ec6aea4sm29766551f8f.10.2026.05.11.06.04.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 06:04:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778504671; x=1779109471; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2fASRzB8nQ57rMJi7XMHtCPQOTg59xiY5NktzJBJKvI=;
        b=XaF+gaO8MyPa/N1dzTOnViLpGGcBtAxTHWs0D32uv1lQtrW0Ky/UEMaDzxJI4PArkK
         L0WWqfBlVGe8u1Ymd863OcD01DUgPtZdqetgO42/rMT2yVcJEJ3irr4uupPQRKtjAPft
         7ZdcT0bBx77Wlf7CJIgkRGAxpwgP9aCKP8MFCvKPExo+dvth4DA8Uy5h9di1kE5TWLiJ
         D3OYeFPvoYxJNtVwGEQ287+qb7poxn5mNJGzXEFE6pQAbUS/JVfcrg1gHyWUGpErDrq+
         PgbTCbA52APzlzlvZW++JC99ry+2XLFv3dOcoZ6/Zyl3+37VoRoIaTgqSoBRG8t2Q8qC
         IeHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778504671; x=1779109471;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2fASRzB8nQ57rMJi7XMHtCPQOTg59xiY5NktzJBJKvI=;
        b=s/L+ifawjI3ol6s/wVCNG+siU46QNTBC2eYyfvxHMYkMhWtUTXfx6jwIcJoFT1h9OS
         E9FJPdUd8BoPmP38RFafxWDvx76F9RthtulLeXOlvChNHRXlmUdbUdrmO+t7Jyl64DLC
         OuzX2HtK1opZJrlu5nYGzuTWR6lI0LJCXSmeY8tU81zG+gL+SN5qDT6K2+FHQXKyVQRJ
         evO8ODyMXHf4c2IGzInZOFJKIwRWHs4lh8gcoz3g9WYYJQ8RS0Q5dvH5CpotTw3tsOXg
         78K1C0KXu3qF++KOCnsK2HVEKEERUHBLB/Fvzyvm6WWeemNVjqTJUvmzbemghMU64IZr
         nvfQ==
X-Gm-Message-State: AOJu0YwtVxosTG31BSMojzxQmnous+OR2zfb3dw9k79oZJ1qbeeWashi
	ZlcGPoqiQizT+bLl2G+XNz1wpbZ4RZIwTl1rD9pDiNOgjY9Is0BCtJHBQ3Bi7AnMKZ3+s4YumzL
	8T7Y=
X-Gm-Gg: Acq92OFQJLcgEIi+4pbfRTDeezcF0y9NGI1PjqUaemE1V8txDGiU86Jmaatp2sydjrI
	S7rRv0TKSeH4QnhCuQfWAjI+CFFiWCUv3sOF9P98ybkR3NAfoZpdq9Sf/X6Pl2TbM1t6XXRGCs6
	nZU2YgqzkPsmv5MoojW3oh4/dcECmF4QjqXoABNlkxZF0BUjcIPkc9gz69/62svNoTgojzlr6I7
	ACf9MOPL1TyTHN47EUu/wV0L7w7gyis3tt/vi6gxoiE9bqAHPj6LU4j/Y/yyKLllftW6BX78sdI
	Il5Syw9lbYFuJbrjdmqgHbhxOfA3BUyeDNxFJ5K8u/ik1bCoUlZgmYhlI7HdUSdECBZMxNLFThU
	R8aSF+QVP1kfPzruI2A19CP64EAf2caQLb9Z3CPkBHtH6xp3GQbgi6mzPzP1sQes350Ssrf2bma
	UEJjQgP/RhB4rTadgFtUssF5ZrMqqCLOjyKkQmI1zD8NMwZm2z39ZIwRuIn1LQRgKfo6vNT4/3f
	4s4UkxV+mHubco=
X-Received: by 2002:a5d:584c:0:b0:441:1c18:f779 with SMTP id ffacd0b85a97d-4568e70690amr14375770f8f.37.1778504670844;
        Mon, 11 May 2026 06:04:30 -0700 (PDT)
Message-ID: <b2eb6d3a-f5ed-4ca6-a556-c9bf06809abb@suse.com>
Date: Mon, 11 May 2026 15:04:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 1/2] CI: re-work Xen artifacts collection
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <ced1547a-f1cd-42c8-a050-51430adc829b@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ced1547a-f1cd-42c8-a050-51430adc829b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1778504671-7377D8B7-AF9A630E/0/0
X-purgate-type: clean
X-purgate-size: 1989

There's no need to do this separately from three places. Once moved to the
bottom of the script, the need for this to be a function also disappears.

While there also make sure xen-syms is collected. This is rather more
useful for analysis of possible problems than its stripped counterpart.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -44,30 +44,15 @@ cp xen/.config xen-config
 # Directory for the artefacts to be dumped into
 mkdir -p binaries
 
-collect_xen_artefacts()
-{
-    local f
-
-    for f in xen/xen xen/xen.efi; do
-        if [[ -f $f ]]; then
-            cp $f binaries/
-        fi
-    done
-}
-
 if [[ "${CPPCHECK}" == "y" ]] && [[ "${HYPERVISOR_ONLY}" == "y" ]]; then
     # Cppcheck analysis invokes Xen-only build
     xen/scripts/xen-analysis.py --run-cppcheck --cppcheck-misra -- -j$(nproc)
 
     # Preserve artefacts
-    collect_xen_artefacts
     cp xen/cppcheck-report/xen-cppcheck.txt xen-cppcheck.txt
 elif [[ "${HYPERVISOR_ONLY}" == "y" ]]; then
     # Xen-only build
     make -j$(nproc) xen
-
-    # Preserve artefacts
-    collect_xen_artefacts
 else
     # Full build.  Figure out our ./configure options
     cfgargs=("--prefix=/usr")
@@ -108,9 +93,16 @@ else
     make -j$(nproc) dist
 
     # Preserve artefacts
-    # Note: Some smoke tests depending on finding binaries/xen on a full build
-    # even though dist/ contains everything, while some containers don't even
-    # build Xen
     (cd dist/install; find | cpio -R 0:0 -o -H newc | gzip) > binaries/xen-tools.cpio.gz
-    collect_xen_artefacts
 fi
+
+# Preserve Xen artefacts
+#
+# Note: Some smoke tests depend on finding binaries/xen on a full build
+# even though dist/ contains everything, while some containers don't even
+# build Xen.
+for f in xen/xen xen/xen-syms xen/xen.efi; do
+    if [[ -f $f ]]; then
+        cp $f binaries/
+    fi
+done



From xen-devel-bounces@lists.xenproject.org Mon May 11 13:05:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 13:05:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306158.1578225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQJj-0003bg-Qy; Mon, 11 May 2026 13:05:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306158.1578225; Mon, 11 May 2026 13:05:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQJj-0003bZ-O6; Mon, 11 May 2026 13:05:03 +0000
Received: by outflank-mailman (input) for mailman id 1306158;
 Mon, 11 May 2026 13:05:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMQJi-0003bJ-4o
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 13:05:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMQJh-00DB1g-HZ
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 15:05:01 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01d3fb-2eae-0a2a0a5409dd-0a2a450ba71a-6
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:05:01 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01d3fd-212f-0a2a450b0019-d1558030bd12-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:05:01 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-488b0046078so35992875e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 06:05:01 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e6fffb9bdsm172144195e9.1.2026.05.11.06.05.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 06:05:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778504701; x=1779109501; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ExMfZGjK/TN3VobC9Bl8Sp492l2t0I9xSSZ7GtLdHpc=;
        b=eTkry5uy02QFGIkf5varVjuOzbugZIg3rsflNTp/q2uhfD7m14V6EtVxsXCBkD0EQy
         OEBpj6Itc7GoNtSO1JbUz++cOwiD4b+HsaEUGTn2JwBqgwS4gI5AFg+D/meC3qz5y/0B
         ldqa4KfmiMuUz/57EX62DbJiUQIr36yL7N9doMD/L4hB22SGf1xDuuIyp7uz0FAbeaaX
         lLGpMBy2Ah9EnB76ydJPTMPTdgbPY9JuP8O0LvIhLwYZuD8IvSuWqRSP29gVdQpewUbn
         wFRgwjXxXdSr5Rw5bVlLQJYxUe8g2Du9DX9QddOFCs+rh93RxiTt9OAsuMKNEDyiaost
         +CWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778504701; x=1779109501;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ExMfZGjK/TN3VobC9Bl8Sp492l2t0I9xSSZ7GtLdHpc=;
        b=LhsbG38s5Y22zEnj2e3geAW9/GiWugpQOffqBtWvNhmnAqsbf8qeMIdf5K+yeW0H49
         Ki+sq1vO6tY2s7klFD7nfTqmjWqKGqs5TJkcXblac5NoHxhE+qO4FQxRq6piRXpt3o8l
         HTF1iwwXAYvG+vBvODBpBeJ1l4JaPM+EJ+J6jRAEIisdtMOIvS+Qd9hqLRKrbAkjRW3S
         EwzPnuu/gb8PyFeCUPs095c04lyYA9SbMr3m0ocG1IPurg/p9/FSYKug4jXdl3VSu+Xz
         wvQMwkITUyae1pCkmyqY4IOffTcSRLJFXnHta0hTVkElUWSgeaNLnmvBwCu9SsZMsTbR
         UeqQ==
X-Gm-Message-State: AOJu0YxbVB14TseJue0T20sBfq1aG7atTO2w+xMYs+Hn4SwLA+n/asuQ
	7p2u8yS3KBaX+jdiLjWpPID32BUxGWSJS90NTGIjK1tgcwLlGmG6d9fohaopoXSDUNQ3d3oJoGt
	r93c=
X-Gm-Gg: Acq92OFPF+bx3jnjJHXg8KbQXtCk+jqEEjd9fdiGTi4ddpW/sXs7KFFL+gVjDzX8kGy
	4mlkEREXFU7aV5npcxv8YCykxXA6DIdlmwfJKm6rOhJgNWTIDoEIuokWEvG9ZojheIsCdRAW6ds
	qHvLR3z8WEWYcdliWTyI20kySk8Zcw+RgLzSsFGMD4BqBT90BZTrlBk3Z/IDm0JAsZKqIuyY3hs
	ZdqBQWLZdHdptrmptRToC1w1LnyyYHljwhUfqDiDbPjL2UPJenqkg4aR7K3ewhrZ3AL3+BoESON
	0MR/TwVTNrTlh9l+KJeAEy55EpFfVaFm/AO6zzA+p26dv2BFNY352mjUot1rIhHCnR19lqFg0VE
	xRh0IOkrksVFUzOuyZQTfH8Y5qCApMC/BQBhPf6tBCMboEYZtwh4GDXC9CrqmedAXv+c5gI2ovQ
	PA09JKbZIlwVsXPyucZIHCeUPI1/JFnIv65jN0JDgSAd/F7w2VGKVIpSZQlUis7wqB/guOgjzcx
	DjUrHJ/paQFf8A=
X-Received: by 2002:a05:600c:8b65:b0:488:a824:fdff with SMTP id 5b1f17b1804b1-48e706c7e20mr159001025e9.22.1778504700900;
        Mon, 11 May 2026 06:05:00 -0700 (PDT)
Message-ID: <6e0266e6-8dda-4a87-886d-79da637c2172@suse.com>
Date: Mon, 11 May 2026 15:05:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 2/2] CI: collect certain intermediate files as artifacts
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <ced1547a-f1cd-42c8-a050-51430adc829b@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ced1547a-f1cd-42c8-a050-51430adc829b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1778504701-22589F3B-C2F86D50/0/0
X-purgate-type: clean
X-purgate-size: 2753

When one of the linking passes fails, additional intermediate files are
still in place. Having them available for analysis of the underlying
problem can be pretty helpful. Collect some into a new intermediates/
directory. (Nothing new will be collected if linking succeeds.)

As the script is run with -e passed to bash, defer exit if the main
"make" (or substituent script thereof) failed. This way more artifacts
are collected, potentially making it easier to analyze the failure.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2515787945
(with PPC forced to invoke the new logic, hence respective failures there)
---
v2: Different approach.

--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -6,6 +6,7 @@
   artifacts:
     paths:
       - binaries/
+      - intermediates/
       - xen-config
       - xen-cppcheck.txt
       - '*.log'
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -37,22 +37,24 @@ else
     make -j$(nproc) -C xen olddefconfig
 fi
 
-# Save the config file before building because build failure causes the script
-# to exit early -- bash is invoked with -e.
+# Save the config file before building, just in case.
 cp xen/.config xen-config
 
-# Directory for the artefacts to be dumped into
-mkdir -p binaries
+# Directories for artefacts to be dumped into
+mkdir -p binaries intermediates
+
+# Script exit status, to be overridden by the main make's status below.
+ret=0
 
 if [[ "${CPPCHECK}" == "y" ]] && [[ "${HYPERVISOR_ONLY}" == "y" ]]; then
     # Cppcheck analysis invokes Xen-only build
-    xen/scripts/xen-analysis.py --run-cppcheck --cppcheck-misra -- -j$(nproc)
+    xen/scripts/xen-analysis.py --run-cppcheck --cppcheck-misra -- -j$(nproc) || ret=$?
 
     # Preserve artefacts
     cp xen/cppcheck-report/xen-cppcheck.txt xen-cppcheck.txt
 elif [[ "${HYPERVISOR_ONLY}" == "y" ]]; then
     # Xen-only build
-    make -j$(nproc) xen
+    make -j$(nproc) xen || ret=$?
 else
     # Full build.  Figure out our ./configure options
     cfgargs=("--prefix=/usr")
@@ -90,7 +92,7 @@ else
     fi
 
     ./configure "${cfgargs[@]}"
-    make -j$(nproc) dist
+    make -j$(nproc) dist || ret=$?
 
     # Preserve artefacts
     (cd dist/install; find | cpio -R 0:0 -o -H newc | gzip) > binaries/xen-tools.cpio.gz
@@ -106,3 +108,12 @@ for f in xen/xen xen/xen-syms xen/xen.ef
         cp $f binaries/
     fi
 done
+
+# Preserve Xen intermediate files.  Some may be there only upon build failure.
+for f in xen/.xen-syms.* xen/.xen.efi.*; do
+    if [[ -f $f ]]; then
+        cp $f intermediates/
+    fi
+done
+
+exit $ret



From xen-devel-bounces@lists.xenproject.org Mon May 11 13:17:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 13:17:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306171.1578239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQVj-0005fY-UP; Mon, 11 May 2026 13:17:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306171.1578239; Mon, 11 May 2026 13:17:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQVj-0005fR-R2; Mon, 11 May 2026 13:17:27 +0000
Received: by outflank-mailman (input) for mailman id 1306171;
 Mon, 11 May 2026 13:17:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Bertrand.Marquis@arm.com>) id 1wMQVi-0005el-L6
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 13:17:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMQVh-006WVZ-Ij
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 15:17:25 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Bertrand.Marquis@arm.com>)
 id 6a01d6e0-e002-0a2a0a5209dd-0a2a45099280-14
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:17:24 +0200
Received: from [52.101.65.14]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Bertrand.Marquis@arm.com>)
 id 6a01d6e4-2497-0a2a45090019-3465410ea86e-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:17:24 +0200
Received: from CWLP265CA0430.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:1d7::12)
 by AS2PR08MB8904.eurprd08.prod.outlook.com (2603:10a6:20b:5f8::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.22; Mon, 11 May
 2026 13:17:16 +0000
Received: from AMS0EPF000001A6.eurprd05.prod.outlook.com
 (2603:10a6:400:1d7:cafe::f5) by CWLP265CA0430.outlook.office365.com
 (2603:10a6:400:1d7::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Mon,
 11 May 2026 13:17:16 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001A6.mail.protection.outlook.com (10.167.16.233) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Mon, 11 May 2026 13:17:16 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DB9PR08MB9681.eurprd08.prod.outlook.com (2603:10a6:10:45c::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.22; Mon, 11 May
 2026 13:16:11 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%5]) with mapi id 15.20.9891.019; Mon, 11 May 2026
 13:16:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=V10aPhv4UutPAXwpqe5hWTY4nsTmsPzRjnJb3GwgaboXm5q4H/ZfmLoUEqRejnd3HZ4YMiUOU4vi+8m2OwLMrknhJ6jkNe81QY9KFWT0KJ5/LX33+071LmCkdzFgk7kMsG7oje58TM+T4bXNZzFGLwhAWoW/LaPzFdBsyaD4teywur3F1j/XwAxsL9bq7QzQZU/BolhsWS/KQQJsFL9PVbsX5oDnWiaR3G4guWuV0kKZhlB5p5ewWcaC/TmO4Uwzk691UeL52FhGr4TCexDk9cQy6SI8huQtxZNmxj7dzI9LkF2gvDHJCaFskf6wmzhmi00CYANlsW2Gl4XcMfRGkQ==
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=Kme/demMMAAaZm77U98WvERpvK8HXjHbB+VmpkFcDO8=;
 b=xC4OIJUj1OVm3cAGbJs10AnUTVMR+4RhSU9nhav/tg5uJmY+R7n/llF0BFoGd78okNJPcvGnproo7jnL4xHkeaIuPRNAV5IGrDdZPb50b5iz1iBHRXgvN2xqJfZMnvlrw9JShZZXABVVuYAkPzddK49Qjz79E/Iea07YKIchwoXukuBzcsHMEtgmQPz4f+6wRClGPRKbQGZ/kM3L6BBmOzwJ5/CACjWJVbfC01vr879USMsqRsZgiVyoXKBvMBsTh+HQrS/fTkffGTODl0dPUsGobYyqbXAC3HG/Pt06YfQVYTcWQ+0fc5heFLLImYDoX/CYsJPeRdvAVFam4/L1fA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org 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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Kme/demMMAAaZm77U98WvERpvK8HXjHbB+VmpkFcDO8=;
 b=Iaad1ClIJYV4piwHcUyDLhj0M8uP6VYIdSUsZxW1qmsBBLtCaFNtlYe4L5OH2Msoq4Y0hb7BukD0hRHjKNVIYl1H0vggo7zfEwjnVpPWUfIO2vuUsvp8GYnnyZQ+4csMYYMVVRewolbctHHevhwukx2+Y4XkcIYs3XgIi68T1uw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uIW7FWZnxO/vA+5rojw0DCku0oOhuN6a84V8H6f0hBI4pXJLAaKLRBeowEh/PMU0l6/rzN2RHba5OmBzxn3xViqiSwnvjkSIj4tQ703qG3ZLuJo7xP/PDkpkkU4vdOjjfw1oBhSY3Vlvh72YZqExHB+VDRiBFV4Unwv4UGURlS3fuQ2sZkWGITJVRe+IoFHkxDRLl7UAv2+ejvNcpDcjXdkGaFYSuHWA6YivAIyuWYW+BGgpzAKHd91HkAZj8jy4Q0mgMHyif1z/tTotUVx0c+nYaVtSei02BN+9cpzWhVXXB71G+F8+bhXYVVCz8eXJ3fE0r/tbjxauJ0A/yTx+og==
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=Kme/demMMAAaZm77U98WvERpvK8HXjHbB+VmpkFcDO8=;
 b=IrWJRbZIqkZIVH980FK0G/wxuBzKfz4bL6CsW2/dBn6gnrbhqHMB2XQKFbXtov/s2M/POP8+jcVwMLf0kUVRmNLcLVBV0DjxbR8dLF1hSCQtORMGTiz4mFRwswI9fRDwOvikA3GBnLkqbi7AnP4phKq30b8c6rrfmPofyXOoxCI+7E65hhLCiflWi77Hv4L5dkXVfBwZbh+wOKgJMzNtyEtnLN4QSkf7HleQtAHMJnSgXDBWDDY+MXCCxGVuYFE0+aFZohvRummqGLkzuZnZFoFkM970iaGLDUgA8m3I9s73fRI7ZVAWLbGEcdGCwrGaquXMMwoRc+LmfDz24x8r5A==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Kme/demMMAAaZm77U98WvERpvK8HXjHbB+VmpkFcDO8=;
 b=Iaad1ClIJYV4piwHcUyDLhj0M8uP6VYIdSUsZxW1qmsBBLtCaFNtlYe4L5OH2Msoq4Y0hb7BukD0hRHjKNVIYl1H0vggo7zfEwjnVpPWUfIO2vuUsvp8GYnnyZQ+4csMYYMVVRewolbctHHevhwukx2+Y4XkcIYs3XgIi68T1uw=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH v2 6/6] xen/arm: ffa: Deliver VM-to-VM notifications
 locally
Thread-Topic: [PATCH v2 6/6] xen/arm: ffa: Deliver VM-to-VM notifications
 locally
Thread-Index: AQHc15tBfAqUtgqv9kG77vlVw6CxULX/MgaAgAmvYgA=
Date: Mon, 11 May 2026 13:16:11 +0000
Message-ID: <109D53DA-85D7-4AA5-BBB1-F54DF529BA8D@arm.com>
References: <cover.1776955622.git.bertrand.marquis@arm.com>
 <1ead2af7182a0501f16e7b4e9ad3e58ccd8f538c.1776955622.git.bertrand.marquis@arm.com>
 <CAHUa44ES1LD6wgDic8Y6zm7+AzWFg6x7pSZhY6NkneW3mse+wA@mail.gmail.com>
In-Reply-To:
 <CAHUa44ES1LD6wgDic8Y6zm7+AzWFg6x7pSZhY6NkneW3mse+wA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.500.181)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DB9PR08MB9681:EE_|AMS0EPF000001A6:EE_|AS2PR08MB8904:EE_
X-MS-Office365-Filtering-Correlation-Id: 9869ee5a-420b-4435-27c5-08deaf5f9f35
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021|11063799003|3023799003|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info-Original:
 8BYfFf9Xgrdex59obP9js59OR1d2N+dhy1RhA6tm/I4mP35a36/wltUSqH7wcDuselRp1fzzfVj7OxIpPQtNPBKUhQiOZifCxHBmafYpdD0gW0dRlmbP84X6ZfILKWVHhtuMnXjwWIoz8wuBr3xNKgud/pbT5/fuLhYUlwMJsyxZdHlcqIYKXMfWsfgOcArFGRZ7MkuXkNvgz85gv/8aGWP2hwU5h7hNH2yZgWEdae+nMfA+STxSS0+CsZCb3Ccoz/VlrFcbtQZeEpujg3YLN4kLSHh/aKAh00BPRshTKhncgWc4Bgt5pOVV5Y6FV2r0XHy/LdHn8BvSlyznvIYmvJlDI9bKFamVahEnozzkntKoCGhZUu2N6e+BqtQnzEn2mhNXZUhvEUn1Xdu6MdlMSNEKPp5Xtr2MBImToJ+rSbwYMiBSfz7mNJcvWpTd62J1JjwycmYai4oz7XK2NipdzMuQznKBjGmFByjfyeUYDB1VQ4MURpWMQuzSadlzji4l4NYpPFjw6gVYhmpO+70dZlJNfsLOWlHXNyDQNNi7Vok7Puwmt8jhHd5OIPTwDRQgXsLi2/5ka7BZDWwPPp94fFumTsqrdD1o1lkIGcNGaH9HFfCDXMxSjAFSuJQNvQlWd4x7LBt1OE8LlrkFpPz4IYHUPVbS+CkvrIpwPf/XGhwkfI+3wUd4lKghFxGc8s4p5jPQqbHt9NgNsnN77x1Sux7uyW4+t4Xc406IZQ+8jsKKN9pc6QmDdB25jqX3XEZb
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021)(11063799003)(3023799003)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <63B6969A5BB2974A84C1EC7B2EF99539@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 G5ZLf2D5Lto104LrxFn1q5yfOw62oq0exqObsneojmQsecsMpKfEGM3VKA6kVeymCRc+LvnmAwK9eZUsSADq7rP4FaFmuNxpQw5p+GNWeEGQE2sAk57lDSyH0FJW8hDMkDhq+zSjnWYQKnnBk+jGHESdoBneiQkiGBq5poz2mjt85k2wia0ksic+DYRoulWoOJQCsjHL2sez+Gf4piOIOXvnLW9sDrhCv9CSgJI6Wd2I6x2bYsRKGEj61oHImV0tGOp1BgTftE6mfDGMXE+n1gvJ5PjhZY+1CIInzByVo8wfMkyMHDLBCr3FWJx7P/MV1Kua4qpTYPIdlaZ3jDR7Vw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9681
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001A6.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	77bfd6f2-6aa0-4be7-0145-08deaf5f78aa
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700016|1800799024|14060799003|35042699022|18002099003|22082099003|11063799003|56012099003|3023799003;
X-Microsoft-Antispam-Message-Info:
	HJ7OmRogY/JMcL/aSaNpwH/3vC6jHN4DdALf8D65vRvzFfRIz8q+XPbVCPtVvf4XNO01SgUg16AxbeJr0juZwkgS8OEQsdtzx/UNEye9zE/sCYI80z9A971/+yfalQZvg+ce2gVBRD412KAEhvoNtVvAbWmYWIPCyyGEwTgwuIc7Ac4NpDq37jcbDArU9SFP8FMvvSq7qY4SGyE2gsGQC64oikDowzbWd/ek02owlSMNkEC+hL1BgJr6iCcJyXg37jDejXinIsnfbMBDnbnNd9I88RIz3M0UhpXCqi3R9D2SVutZrEfyXueXC0JJQqE8Bv90RVqMpRGavbN+G1VGEtAm5rImXwjIYaTlvjwdKdTtF79mCqGKRPMcM0gYcCJz53mC3Ef+QJsUmP9GpmLVSBEDb9Jhr9XDV0FvNwnf6bcu9evuXbu9U4BQRYGRdZahqVy76dlpvsWg6JmjcZywt8XRj7nq++ixM2tL6kS5G28FcQHLdJ7ppPEsMKgWpLw7v7aW4sI3SIrNa18dHPcMGimPlnoMCQPVV1NB7J3J2vc/NoRLUPSoIbwrX5DidQl3Ppv2GJg1SqCn8DkMd1kxO+V6mIR3UXnGmpb+MDXz3hXyrfGqUgvQ7WsJlb0PquoOhanP8fqTN3Vt8/8x+7ztnTFSje0pxa51FrTmGfhB4FgzEQBMPrTQAjlVGxal3R7q/Jphs9aLYiaSmim1Jp6INMJSVOhoJEewUz4J+QZwXB0=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700016)(1800799024)(14060799003)(35042699022)(18002099003)(22082099003)(11063799003)(56012099003)(3023799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	fLSq25uawl0KX6kxd4XlHZtwnP0a+Cyzex9hflnmzYdby5yMgYRQPlRASKOP5wBfZmGyyXLWyNXhubBjvVF5tI1+4i4c6LOPrsKNJyuJuv1sA5gqfGvqGtuI+uKH1DcZuNKLmrjQKwh1vitGW9R5l9SfHyFzp2Ym4QrBRBczPO2+K2V+kzWaeZ7EK0016sfKul5J/afU49BON66wABJS2WX3V6z2H/kz/S1ofuf/T5aJIe72NVpXVc0HssNpSXfBQiyqt/oU9mZBEhqU7ZffMRpfIJ9gXwPjFotK4NDFMgaL2+VehHYufLuB2i1wSQx0j/Aq2WAeksJCJxybvV8nX9lVn79qNmBdRFehBRuqrLxE5CMunSyU4wAwjUhcGQojIcqn6L7D1VYwtQ2i20rgzXyLCiHa64G30H1UbTuWQ0WwumZlOSyKSmdSsesR8jCT
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 13:17:16.0005
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9869ee5a-420b-4435-27c5-08deaf5f9f35
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001A6.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8904
X-purgate-ID: tlsNG-bad1c0/1778505444-8A589A53-DCB7CB34/0/0
X-purgate-type: clean
X-purgate-size: 15060

SGkgSmVucywNCg0KPiBPbiA1IE1heSAyMDI2LCBhdCAxMToyMSwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBXZWQsIEFwciAyOSwgMjAyNiBhdCA3OjQ04oCvQU0gQmVydHJhbmQgTWFycXVpcw0KPiA8
YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gVk0gbm90aWZpY2F0aW9u
IGJpbmRpbmcgYW5kIHBlbmRpbmcgdHJhY2tpbmcgZXhpc3QgZm9yIG5vbi1zZWN1cmUNCj4+IGVu
ZHBvaW50cywgYnV0IEZGQV9OT1RJRklDQVRJT05fU0VUIHN0aWxsIG9ubHkgZm9yd2FyZHMgc2Vj
dXJlDQo+PiBkZXN0aW5hdGlvbnMgdG8gdGhlIFNQTUMuIE5vbi1zZWN1cmUgVk1zIHRoZXJlZm9y
ZSBjYW5ub3QgcmVjZWl2ZQ0KPj4gbm90aWZpY2F0aW9ucyBmcm9tIG90aGVyIFZNcy4gTG9jYWwg
TlBJIGRlbGl2ZXJ5IGFsc28gbmVlZHMgZXhwbGljaXQNCj4+IHJlLWFybSB0cmFja2luZyBzbyBy
ZXBlYXRlZCByYWlzZXMgYXJlIG5vdCBsb3N0IHdoaWxlIHRoZSBpbnRlcnJ1cHQgaXMNCj4+IGFs
cmVhZHkgcGVuZGluZy4NCj4+IA0KPj4gQWRkIGEgbG9jYWwgVk0gbm90aWZpY2F0aW9uIGRlbGl2
ZXJ5IHBhdGggZm9yIG5vbi1zZWN1cmUgZGVzdGluYXRpb25zLg0KPj4gbm90aWZpY2F0aW9uX3Nl
dF92bSgpIHJlc29sdmVzIHRoZSBkZXN0aW5hdGlvbiBlbmRwb2ludCwgdmVyaWZpZXMgdGhhdA0K
Pj4gZXZlcnkgcmVxdWVzdGVkIGJpdCBpcyBib3VuZCB0byB0aGUgc2VuZGVyLCBzZXRzIHRoZSBy
ZWNlaXZlcidzDQo+PiB2bV9wZW5kaW5nIGJpdG1hcCB1bmRlciBub3RpZl9sb2NrLCBhbmQgcmFp
c2VzIGFuIE5QSSBvbmx5IHdoZW4gbG9jYWwNCj4+IHBlbmRpbmcgc3RhdGUgaXMgbm90IGFscmVh
ZHkgYXJtZWQuDQo+PiANCj4+IFRyYWNrIHdoZXRoZXIgYSBsb2NhbCBOUEkgaXMgYWxyZWFkeSBh
cm1lZCB3aXRoIG5vdGlmX2lycV9yYWlzZWQsDQo+PiBjbGVhciB0aGF0IHN0YXRlIG9uY2UgYm90
aCBWTSBhbmQgaHlwZXJ2aXNvciBwZW5kaW5nIGJpdG1hcHMgYXJlDQo+PiBkcmFpbmVkLCBhbmQg
a2VlcCBub3RpZl9sb2NrIGhlbGQgYWNyb3NzIHRoZSBWTSBub3RpZmljYXRpb24gaW5qZWN0aW9u
DQo+PiBhdHRlbXB0LiBJZiBubyBkZXN0aW5hdGlvbiB2Q1BVIGlzIG9ubGluZSwgbGVhdmUgdGhl
IHBlbmRpbmcgYml0cyBzZXQNCj4+IGFuZCBrZWVwIG5vdGlmX2lycV9yYWlzZWQgY2xlYXIgc28g
ZGVsaXZlcnkgY2FuIGJlIHJldHJpZWQgbGF0ZXIuDQo+PiBBbHNvIGV4cG9zZSBmaXJtd2FyZSBu
b3RpZmljYXRpb24gYXZhaWxhYmlsaXR5IHNvIEZGQV9GRUFUVVJFUyBvbmx5DQo+PiBhZHZlcnRp
c2VzIG5vdGlmaWNhdGlvbiBzdXBwb3J0IHdoZW4gaXQgaXMgYWN0dWFsbHkgcHJvdmlkZWQgYnkg
dGhlDQo+PiBmaXJtd2FyZSBvciBieSBDT05GSUdfRkZBX1ZNX1RPX1ZNLg0KPj4gDQo+PiBGdW5j
dGlvbmFsIGltcGFjdDogd2hlbiBDT05GSUdfRkZBX1ZNX1RPX1ZNIGlzIGVuYWJsZWQsIG5vbi1z
ZWN1cmUNCj4+IEZGQV9OT1RJRklDQVRJT05fU0VUIGRlbGl2ZXJzIFZNLXRvLVZNIG5vdGlmaWNh
dGlvbnMgbG9jYWxseSBhbmQga2VlcHMNCj4+IE5QSSBkZWxpdmVyeSByZWxpYWJsZSBhY3Jvc3Mg
cmVwZWF0ZWQgcmFpc2VzLg0KPj4gDQo+PiBTaWduZWQtb2ZmLWJ5OiBCZXJ0cmFuZCBNYXJxdWlz
IDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+DQo+PiAtLS0NCj4+IENoYW5nZXMgc2luY2UgdjE6
DQo+PiAtIHNlcmlhbGl6ZSBub3RpZmljYXRpb25fc2V0X3ZtKCkgc3RhdGUgdXBkYXRlcyB3aXRo
IHRoZSBOUEkgYXR0ZW1wdA0KPj4gLSBrZWVwIHBlbmRpbmcgVk0gbm90aWZpY2F0aW9ucyBzZXQg
d2hlbiBsb2NhbCBpbmplY3Rpb24gZmFpbHMNCj4+IC0tLQ0KPj4geGVuL2FyY2gvYXJtL3RlZS9m
ZmEuYyAgICAgICAgIHwgMjQgKysrKysrKystLQ0KPj4geGVuL2FyY2gvYXJtL3RlZS9mZmFfbm90
aWYuYyAgIHwgODIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQ0KPj4geGVuL2Fy
Y2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oIHwgMTcgKysrKy0tLQ0KPj4gMyBmaWxlcyBjaGFuZ2Vk
LCAxMDcgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pDQo+PiANCj4+IGRpZmYgLS1naXQg
YS94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jIGIveGVuL2FyY2gvYXJtL3RlZS9mZmEuYw0KPj4gaW5k
ZXggMWZlMzNmMjY0NTRhLi43ZmUwMjEwNDljYmEgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9h
cm0vdGVlL2ZmYS5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jDQo+PiBAQCAtMzks
OCArMzksMTMgQEANCj4+ICAqIG8gRkZBX01TR19TRU5EX0RJUkVDVF9SRVE6DQo+PiAgKiAgIC0g
b25seSBzdXBwb3J0ZWQgZnJvbSBhIFZNIHRvIGFuIFNQDQo+PiAgKiBvIEZGQV9OT1RJRklDQVRJ
T05fKjoNCj4+ICsgKiAgIC0gb25seSBzdXBwb3J0ZWQgd2hlbiBmaXJtd2FyZSBub3RpZmljYXRp
b25zIGFyZSBlbmFibGVkIG9yIFZNLXRvLVZNDQo+PiArICogICAgIHN1cHBvcnQgaXMgYnVpbHQg
aW4NCj4+ICAqICAgLSBvbmx5IHN1cHBvcnRzIGdsb2JhbCBub3RpZmljYXRpb25zLCB0aGF0IGlz
LCBwZXIgdkNQVSBub3RpZmljYXRpb25zDQo+PiAtICogICAgIGFyZSBub3Qgc3VwcG9ydGVkDQo+
PiArICogICAgIGFyZSBub3Qgc3VwcG9ydGVkIGFuZCBzZWN1cmUgcGVyLXZDUFUgbm90aWZpY2F0
aW9uIGluZm9ybWF0aW9uIGlzDQo+PiArICogICAgIG5vdCBmb3J3YXJkZWQNCj4+ICsgKiAgIC0g
dGhlIHNvdXJjZSBlbmRwb2ludCBJRCByZXBvcnRlZCBmb3IgYSBub3RpZmljYXRpb24gbWF5IG5v
IGxvbmdlcg0KPj4gKyAqICAgICBleGlzdCBieSB0aGUgdGltZSB0aGUgcmVjZWl2ZXIgY29uc3Vt
ZXMgaXQNCj4+ICAqICAgLSBkb2Vzbid0IHN1cHBvcnQgc2lnbmFsbGluZyB0aGUgc2Vjb25kYXJ5
IHNjaGVkdWxlciBvZiBwZW5kaW5nDQo+PiAgKiAgICAgbm90aWZpY2F0aW9uIGZvciBzZWN1cmUg
cGFydGl0aW9ucw0KPj4gICogICAtIGRvZXNuJ3Qgc3VwcG9ydCBub3RpZmljYXRpb25zIGZvciBY
ZW4gaXRzZWxmDQo+PiBAQCAtMjQ1LDYgKzI1MCw4IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9mZWF0
dXJlcyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykNCj4+ICAgICB1aW50MzJfdCBhMSA9IGdl
dF91c2VyX3JlZyhyZWdzLCAxKTsNCj4+ICAgICBzdHJ1Y3QgZG9tYWluICpkID0gY3VycmVudC0+
ZG9tYWluOw0KPj4gICAgIHN0cnVjdCBmZmFfY3R4ICpjdHggPSBkLT5hcmNoLnRlZTsNCj4+ICsg
ICAgYm9vbCBub3RpZl9zdXBwb3J0ZWQgPSBJU19FTkFCTEVEKENPTkZJR19GRkFfVk1fVE9fVk0p
IHx8DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgZmZhX25vdGlmX2Z3X2VuYWJsZWQo
KTsNCj4+IA0KPj4gICAgIC8qDQo+PiAgICAgICogRkZBX0ZFQVRVUkVTIGRlZmluZXMgdzIgYXMg
aW5wdXQgcHJvcGVydGllcyBvbmx5IGZvciBzcGVjaWZpYw0KPj4gQEAgLTM0MywxMCArMzUwLDE2
IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9mZWF0dXJlcyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVn
cykNCj4+IA0KPj4gICAgICAgICBicmVhazsNCj4+ICAgICBjYXNlIEZGQV9GRUFUVVJFX05PVElG
X1BFTkRfSU5UUjoNCj4+IC0gICAgICAgIGZmYV9zZXRfcmVnc19zdWNjZXNzKHJlZ3MsIEdVRVNU
X0ZGQV9OT1RJRl9QRU5EX0lOVFJfSUQsIDApOw0KPj4gKyAgICAgICAgaWYgKCBub3RpZl9zdXBw
b3J0ZWQgKQ0KPj4gKyAgICAgICAgICAgIGZmYV9zZXRfcmVnc19zdWNjZXNzKHJlZ3MsIEdVRVNU
X0ZGQV9OT1RJRl9QRU5EX0lOVFJfSUQsIDApOw0KPj4gKyAgICAgICAgZWxzZQ0KPj4gKyAgICAg
ICAgICAgIGZmYV9zZXRfcmVnc19lcnJvcihyZWdzLCBGRkFfUkVUX05PVF9TVVBQT1JURUQpOw0K
Pj4gICAgICAgICBicmVhazsNCj4+ICAgICBjYXNlIEZGQV9GRUFUVVJFX1NDSEVEVUxFX1JFQ1Zf
SU5UUjoNCj4+IC0gICAgICAgIGZmYV9zZXRfcmVnc19zdWNjZXNzKHJlZ3MsIEdVRVNUX0ZGQV9T
Q0hFRFVMRV9SRUNWX0lOVFJfSUQsIDApOw0KPj4gKyAgICAgICAgaWYgKCBub3RpZl9zdXBwb3J0
ZWQgKQ0KPj4gKyAgICAgICAgICAgIGZmYV9zZXRfcmVnc19zdWNjZXNzKHJlZ3MsIEdVRVNUX0ZG
QV9TQ0hFRFVMRV9SRUNWX0lOVFJfSUQsIDApOw0KPj4gKyAgICAgICAgZWxzZQ0KPj4gKyAgICAg
ICAgICAgIGZmYV9zZXRfcmVnc19lcnJvcihyZWdzLCBGRkFfUkVUX05PVF9TVVBQT1JURUQpOw0K
Pj4gICAgICAgICBicmVhazsNCj4+ICAgICBjYXNlIEZGQV9QQVJUSVRJT05fSU5GT19HRVRfUkVH
UzoNCj4+ICAgICAgICAgaWYgKCBBQ0NFU1NfT05DRShjdHgtPmd1ZXN0X3ZlcnMpID49IEZGQV9W
RVJTSU9OXzFfMiApDQo+PiBAQCAtMzYxLDcgKzM3NCwxMCBAQCBzdGF0aWMgdm9pZCBoYW5kbGVf
ZmVhdHVyZXMoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiAgICAgY2FzZSBGRkFfTk9U
SUZJQ0FUSU9OX1NFVDoNCj4+ICAgICBjYXNlIEZGQV9OT1RJRklDQVRJT05fSU5GT19HRVRfMzI6
DQo+PiAgICAgY2FzZSBGRkFfTk9USUZJQ0FUSU9OX0lORk9fR0VUXzY0Og0KPj4gLSAgICAgICAg
ZmZhX3NldF9yZWdzX3N1Y2Nlc3MocmVncywgMCwgMCk7DQo+PiArICAgICAgICBpZiAoIG5vdGlm
X3N1cHBvcnRlZCApDQo+PiArICAgICAgICAgICAgZmZhX3NldF9yZWdzX3N1Y2Nlc3MocmVncywg
MCwgMCk7DQo+PiArICAgICAgICBlbHNlDQo+PiArICAgICAgICAgICAgZmZhX3NldF9yZWdzX2Vy
cm9yKHJlZ3MsIEZGQV9SRVRfTk9UX1NVUFBPUlRFRCk7DQo+PiAgICAgICAgIGJyZWFrOw0KPj4g
ICAgIGRlZmF1bHQ6DQo+PiAgICAgICAgIGZmYV9zZXRfcmVnc19lcnJvcihyZWdzLCBGRkFfUkVU
X05PVF9TVVBQT1JURUQpOw0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX25v
dGlmLmMgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9ub3RpZi5jDQo+PiBpbmRleCBhODQxYzhmOGQ3
NDcuLmIyOWQ5NDhhNzExMCAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX25v
dGlmLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX25vdGlmLmMNCj4+IEBAIC0yMSw2
ICsyMSwxMSBAQCBzdGF0aWMgYm9vbCBfX3JvX2FmdGVyX2luaXQgZndfbm90aWZfZW5hYmxlZDsN
Cj4+IHN0YXRpYyB1bnNpZ25lZCBpbnQgX19yb19hZnRlcl9pbml0IG5vdGlmX3NyaV9pcnE7DQo+
PiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKG5vdGlmX2luZm9fbG9jayk7DQo+PiANCj4+ICtib29s
IGZmYV9ub3RpZl9md19lbmFibGVkKHZvaWQpDQo+PiArew0KPj4gKyAgICByZXR1cm4gZndfbm90
aWZfZW5hYmxlZDsNCj4+ICt9DQo+PiArDQo+PiBzdGF0aWMgYm9vbCBpbmplY3Rfbm90aWZfcGVu
ZGluZyhzdHJ1Y3QgZG9tYWluICpkKQ0KPj4gew0KPj4gICAgIHN0cnVjdCB2Y3B1ICp2Ow0KPj4g
QEAgLTEwNyw2ICsxMTIsNTUgQEAgb3V0X3VubG9jazoNCj4+ICAgICByZXR1cm4gcmV0Ow0KPj4g
fQ0KPj4gDQo+PiArLyoNCj4+ICsgKiBEZWxpdmVyIGEgVk0tdG8tVk0gbm90aWZpY2F0aW9uLiBj
dHgtPm5vdGlmLm5vdGlmX2xvY2sgcHJvdGVjdHMNCj4+ICsgKiB2bV9iaW5kL3ZtX3BlbmRpbmcg
c28gY2FsbGVycyBtdXN0IG5vdCBob2xkIGl0IGFscmVhZHkuDQo+PiArICovDQo+PiArc3RhdGlj
IGludDMyX3Qgbm90aWZpY2F0aW9uX3NldF92bSh1aW50MTZfdCBkc3RfaWQsIHVpbnQxNl90IHNy
Y19pZCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGZs
YWdzLCB1aW50NjRfdCBiaXRtYXApDQo+PiArew0KPj4gKyAgICBzdHJ1Y3QgZG9tYWluICpkc3Rf
ZDsNCj4+ICsgICAgc3RydWN0IGZmYV9jdHggKmRzdF9jdHg7DQo+PiArICAgIHVuc2lnbmVkIGlu
dCBpZDsNCj4+ICsgICAgaW50MzJfdCByZXQ7DQo+PiArDQo+PiArICAgIGlmICggZmxhZ3MgKQ0K
Pj4gKyAgICAgICAgcmV0dXJuIEZGQV9SRVRfSU5WQUxJRF9QQVJBTUVURVJTOw0KPj4gKw0KPj4g
KyAgICByZXQgPSBmZmFfZW5kcG9pbnRfZG9tYWluX2xvb2t1cChkc3RfaWQsICZkc3RfZCwgJmRz
dF9jdHgpOw0KPj4gKyAgICBpZiAoIHJldCApDQo+PiArICAgICAgICByZXR1cm4gcmV0Ow0KPj4g
Kw0KPj4gKyAgICByZXQgPSBGRkFfUkVUX09LOw0KPj4gKw0KPj4gKyAgICBzcGluX2xvY2soJmRz
dF9jdHgtPm5vdGlmLm5vdGlmX2xvY2spOw0KPj4gKw0KPj4gKyAgICBmb3IgKCBpZCA9IDA7IGlk
IDwgRkZBX05VTV9WTV9OT1RJRjsgaWQrKyApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIGlmICgg
IShiaXRtYXAgJiBCSVQoaWQsIFVMTCkpICkNCj4+ICsgICAgICAgICAgICBjb250aW51ZTsNCj4+
ICsNCj4+ICsgICAgICAgIGlmICggZHN0X2N0eC0+bm90aWYudm1fYmluZFtpZF0gIT0gc3JjX2lk
ICkNCj4+ICsgICAgICAgIHsNCj4+ICsgICAgICAgICAgICByZXQgPSBGRkFfUkVUX0RFTklFRDsN
Cj4+ICsgICAgICAgICAgICBnb3RvIG91dF91bmxvY2s7DQo+PiArICAgICAgICB9DQo+PiArICAg
IH0NCj4+ICsNCj4+ICsgICAgZHN0X2N0eC0+bm90aWYudm1fcGVuZGluZyB8PSBiaXRtYXA7DQo+
PiArICAgIGlmICggIWRzdF9jdHgtPm5vdGlmLm5vdGlmX2lycV9yYWlzZWQgJiYNCj4+ICsgICAg
ICAgICAoZHN0X2N0eC0+bm90aWYudm1fcGVuZGluZyB8fCBkc3RfY3R4LT5ub3RpZi5oeXBfcGVu
ZGluZykgJiYNCj4+ICsgICAgICAgICBpbmplY3Rfbm90aWZfcGVuZGluZyhkc3RfZCkgKQ0KPj4g
KyAgICAgICAgZHN0X2N0eC0+bm90aWYubm90aWZfaXJxX3JhaXNlZCA9IHRydWU7DQo+PiArDQo+
PiArb3V0X3VubG9jazoNCj4+ICsgICAgc3Bpbl91bmxvY2soJmRzdF9jdHgtPm5vdGlmLm5vdGlm
X2xvY2spOw0KPj4gKw0KPj4gKyAgICByY3VfdW5sb2NrX2RvbWFpbihkc3RfZCk7DQo+PiArDQo+
PiArICAgIHJldHVybiByZXQ7DQo+PiArfQ0KPj4gKw0KPj4gaW50MzJfdCBmZmFfaGFuZGxlX25v
dGlmaWNhdGlvbl9iaW5kKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gew0KPj4gICAg
IHN0cnVjdCBkb21haW4gKmQgPSBjdXJyZW50LT5kb21haW47DQo+PiBAQCAtMjg4LDYgKzM0Miw4
IEBAIHZvaWQgZmZhX2hhbmRsZV9ub3RpZmljYXRpb25fZ2V0KHN0cnVjdCBjcHVfdXNlcl9yZWdz
ICpyZWdzKQ0KPj4gDQo+PiAgICAgaWYgKCBJU19FTkFCTEVEKENPTkZJR19GRkFfVk1fVE9fVk0p
ICkNCj4+ICAgICB7DQo+PiArICAgICAgICBib29sIHBlbmRpbmc7DQo+PiArDQo+PiAgICAgICAg
IHNwaW5fbG9jaygmY3R4LT5ub3RpZi5ub3RpZl9sb2NrKTsNCj4+IA0KPj4gICAgICAgICBpZiAo
IChmbGFncyAmIEZGQV9OT1RJRl9GTEFHX0JJVE1BUF9IWVApICYmIGN0eC0+bm90aWYuaHlwX3Bl
bmRpbmcgKQ0KPj4gQEAgLTI5OCw2ICszNTQsMTggQEAgdm9pZCBmZmFfaGFuZGxlX25vdGlmaWNh
dGlvbl9nZXQoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiAgICAgICAgICAgICAgICAg
Y3R4LT5ub3RpZi5ub3RpZl9pcnFfcmFpc2VkID0gZmFsc2U7DQo+PiAgICAgICAgIH0NCj4+IA0K
Pj4gKyAgICAgICAgaWYgKCAoZmxhZ3MgJiBGRkFfTk9USUZfRkxBR19CSVRNQVBfVk0pICYmIGN0
eC0+bm90aWYudm1fcGVuZGluZyApDQo+PiArICAgICAgICB7DQo+PiArICAgICAgICAgICAgdzQg
PSAodWludDMyX3QpKGN0eC0+bm90aWYudm1fcGVuZGluZyAmIEdFTk1BU0soMzEsIDApKTsNCj4+
ICsgICAgICAgICAgICB3NSA9ICh1aW50MzJfdCkoKGN0eC0+bm90aWYudm1fcGVuZGluZyA+PiAz
MikgJiBHRU5NQVNLKDMxLCAwKSk7DQo+PiArICAgICAgICAgICAgY3R4LT5ub3RpZi52bV9wZW5k
aW5nID0gMDsNCj4+ICsgICAgICAgIH0NCj4+ICsNCj4+ICsgICAgICAgIHBlbmRpbmcgPSAoY3R4
LT5ub3RpZi5oeXBfcGVuZGluZyAhPSAwKSB8fA0KPj4gKyAgICAgICAgICAgICAgICAgIChjdHgt
Pm5vdGlmLnZtX3BlbmRpbmcgIT0gMCk7DQo+PiArICAgICAgICBpZiAoICFwZW5kaW5nICkNCj4+
ICsgICAgICAgICAgICBjdHgtPm5vdGlmLm5vdGlmX2lycV9yYWlzZWQgPSBmYWxzZTsNCj4gDQo+
IFRoaXMgc2VlbXMgdG8gdGFrZSBjYXJlIG9mIGNsZWFyaW5nIG5vdGlmX2lycV9yYWlzZWQgZm9y
IGFsbCBjYXNlcy4gRG8NCj4gd2Ugc3RpbGwgbmVlZCB0aGUgb25lIGp1c3QgYWJvdmUgdGhpcyBi
bG9jayAoY29waWVkIGhlcmUpOg0KPiAgICAgICAgICAgIGlmICggIWN0eC0+bm90aWYudm1fcGVu
ZGluZyApDQo+ICAgICAgICAgICAgICAgIGN0eC0+bm90aWYubm90aWZfaXJxX3JhaXNlZCA9IGZh
bHNlOw0KPiA/DQoNClllcyB5b3UgYXJlIHJpZ2h0LCB0aGlzIGlzIG5vdyByZWR1bmRhbnQuDQpJ
IHdpbGwgZHJvcCBpdCBpbiB2My4NCg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQo+IA0KPiBDaGVlcnMs
DQo+IEplbnMNCj4gDQo+PiArDQo+PiAgICAgICAgIHNwaW5fdW5sb2NrKCZjdHgtPm5vdGlmLm5v
dGlmX2xvY2spOw0KPj4gICAgIH0NCj4+IA0KPj4gQEAgLTMyMyw5ICszOTEsMTcgQEAgaW50MzJf
dCBmZmFfaGFuZGxlX25vdGlmaWNhdGlvbl9zZXQoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3Mp
DQo+PiAgICAgaWYgKCBmbGFncyApDQo+PiAgICAgICAgIHJldHVybiBGRkFfUkVUX0lOVkFMSURf
UEFSQU1FVEVSUzsNCj4+IA0KPj4gLSAgICBpZiAoIEZGQV9JRF9JU19TRUNVUkUoZGVzdF9pZCkg
JiYgZndfbm90aWZfZW5hYmxlZCApDQo+PiAtICAgICAgICByZXR1cm4gZmZhX3NpbXBsZV9jYWxs
KEZGQV9OT1RJRklDQVRJT05fU0VULCBzcmNfZHN0LCBmbGFncywgYml0bWFwX2xvLA0KPj4gLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRtYXBfaGkpOw0KPj4gKyAgICBpZiAoIEZG
QV9JRF9JU19TRUNVUkUoZGVzdF9pZCkgKQ0KPj4gKyAgICB7DQo+PiArICAgICAgICBpZiAoIGZ3
X25vdGlmX2VuYWJsZWQgKQ0KPj4gKyAgICAgICAgICAgIHJldHVybiBmZmFfc2ltcGxlX2NhbGwo
RkZBX05PVElGSUNBVElPTl9TRVQsIHNyY19kc3QsIGZsYWdzLA0KPj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYml0bWFwX2xvLCBiaXRtYXBfaGkpOw0KPj4gKyAgICB9DQo+
PiArICAgIGVsc2UgaWYgKCBJU19FTkFCTEVEKENPTkZJR19GRkFfVk1fVE9fVk0pICkNCj4+ICsg
ICAgew0KPj4gKyAgICAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbl9zZXRfdm0oZGVzdF9pZCwgY2Fs
bGVyX2lkLCBmbGFncywNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgo
dWludDY0X3QpYml0bWFwX2hpIDw8IDMyKSB8IGJpdG1hcF9sbyk7DQo+PiArICAgIH0NCj4+IA0K
Pj4gICAgIHJldHVybiBGRkFfUkVUX05PVF9TVVBQT1JURUQ7DQo+PiB9DQo+PiBkaWZmIC0tZ2l0
IGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oIGIveGVuL2FyY2gvYXJtL3RlZS9mZmFf
cHJpdmF0ZS5oDQo+PiBpbmRleCA3OGEwYTk4MTVkNTYuLjkyM2EwNzFhOWQ3YyAxMDA2NDQNCj4+
IC0tLSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaA0KPj4gKysrIGIveGVuL2FyY2gv
YXJtL3RlZS9mZmFfcHJpdmF0ZS5oDQo+PiBAQCAtMzQwLDIwICszNDAsMTggQEAgc3RydWN0IGZm
YV9jdHhfbm90aWYgew0KPj4gICAgIHVpbnQ2NF90IHZtX3BlbmRpbmc7DQo+PiANCj4+ICAgICAv
Kg0KPj4gLSAgICAgKiBTb3VyY2UgZW5kcG9pbnQgYm91bmQgdG8gZWFjaCBWTSBub3RpZmljYXRp
b24gSUQgKDAgbWVhbnMgdW5ib3VuZCkuDQo+PiArICAgICAqIFRyYWNrcyB3aGV0aGVyIGFuIE5Q
SSBoYXMgYmVlbiByYWlzZWQgZm9yIGxvY2FsIHBlbmRpbmcgbm90aWZpY2F0aW9ucy4NCj4+ICsg
ICAgICogUHJvdGVjdGVkIGJ5IG5vdGlmX2xvY2suDQo+PiAgICAgICovDQo+PiAtICAgIHVpbnQx
Nl90IHZtX2JpbmRbRkZBX05VTV9WTV9OT1RJRl07DQo+PiArICAgIGJvb2wgbm90aWZfaXJxX3Jh
aXNlZDsNCj4+IA0KPj4gICAgIC8qDQo+PiAtICAgICAqIExvY2sgcHJvdGVjdGluZyB0aGUgaHlw
ZXJ2aXNvci1tYW5hZ2VkIG5vdGlmaWNhdGlvbiBzdGF0ZS4NCj4+ICsgICAgICogU291cmNlIGVu
ZHBvaW50IGJvdW5kIHRvIGVhY2ggVk0gbm90aWZpY2F0aW9uIElEICgwIG1lYW5zIHVuYm91bmQp
Lg0KPj4gICAgICAqLw0KPj4gLSAgICBzcGlubG9ja190IG5vdGlmX2xvY2s7DQo+PiArICAgIHVp
bnQxNl90IHZtX2JpbmRbRkZBX05VTV9WTV9OT1RJRl07DQo+PiANCj4+IC0gICAgLyoNCj4+IC0g
ICAgICogVHJhY2tzIHdoZXRoZXIgYSBsb2NhbCBub3RpZmljYXRpb24gcGVuZGluZyBpbnRlcnJ1
cHQgd2FzIHJhaXNlZC4NCj4+IC0gICAgICogUHJvdGVjdGVkIGJ5IG5vdGlmX2xvY2suDQo+PiAt
ICAgICAqLw0KPj4gLSAgICBib29sIG5vdGlmX2lycV9yYWlzZWQ7DQo+PiArICAgIC8qIExvY2sg
cHJvdGVjdGluZyBsb2NhbCBub3RpZmljYXRpb24gc3RhdGUuICovDQo+PiArICAgIHNwaW5sb2Nr
X3Qgbm90aWZfbG9jazsNCj4+IA0KPj4gICAgIC8qDQo+PiAgICAgICogQml0bWFwIG9mIHBlbmRp
bmcgaHlwZXJ2aXNvciBub3RpZmljYXRpb25zIChmb3IgSFlQIGJpdG1hcCBxdWVyaWVzKS4NCj4+
IEBAIC00OTUsNiArNDkzLDcgQEAgdm9pZCBmZmFfbm90aWZfaW5pdCh2b2lkKTsNCj4+IHZvaWQg
ZmZhX25vdGlmX2luaXRfaW50ZXJydXB0KHZvaWQpOw0KPj4gaW50IGZmYV9ub3RpZl9kb21haW5f
aW5pdChzdHJ1Y3QgZG9tYWluICpkKTsNCj4+IHZvaWQgZmZhX25vdGlmX2RvbWFpbl9kZXN0cm95
KHN0cnVjdCBkb21haW4gKmQpOw0KPj4gK2Jvb2wgZmZhX25vdGlmX2Z3X2VuYWJsZWQodm9pZCk7
DQo+PiANCj4+IGludDMyX3QgZmZhX2hhbmRsZV9ub3RpZmljYXRpb25fYmluZChzdHJ1Y3QgY3B1
X3VzZXJfcmVncyAqcmVncyk7DQo+PiBpbnQzMl90IGZmYV9oYW5kbGVfbm90aWZpY2F0aW9uX3Vu
YmluZChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncyk7DQo+PiAtLQ0KPj4gMi41My4wDQo+PiAN
Cg0K


From xen-devel-bounces@lists.xenproject.org Mon May 11 13:35:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 13:35:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306187.1578248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQmV-0000Q1-Cs; Mon, 11 May 2026 13:34:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306187.1578248; Mon, 11 May 2026 13:34:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQmV-0000Pu-9l; Mon, 11 May 2026 13:34:47 +0000
Received: by outflank-mailman (input) for mailman id 1306187;
 Mon, 11 May 2026 13:34:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMQmT-0000Po-9d
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 13:34:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMQmS-00DGQ6-Hb
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 15:34:44 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a01dae8-2eae-0a2a0a5409dd-0a2a4505d4fc-48
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:34:44 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a01daf3-aaa8-0a2a45050019-d155802cd44f-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:34:44 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-48e6db3ff7eso13281705e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 06:34:43 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4548eb75c29sm25228969f8f.9.2026.05.11.06.34.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 06:34:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778506483; x=1779111283; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ZyfSKtemJ4B5/1Xkw7Iua6vD+OSBFh12dJNY7eKBuDY=;
        b=aUmSeOLD9OT8K85s4rNsKT14lzL0TK9PfVBpW3kP4nTskAXg6uryz+I72vF637U4J4
         CwngBNnMu8Xsm2A5/MvOrNqEzeML6NWrFGyuuU5khu7DbUIy3haIIYUAnB0pLi766CIV
         squCQLXMV8AfXrQtnvr4cY+cq6XWyGgeHtqjNlW8jLgxW2/9DWRmWhendY/C5+wRqEuE
         AoBgwhzSAkOmsixh3O57mgC4rWjCnznZJIaNp5mrKj0ymTjKH8DTZJ/hhP66SFuB8tZA
         sutb2IK2yI7DGjkJO92I5qN+zs4wX6eDoDxvFkx8K2gZNyRbnyCmO6nCB6Nw0RkJ8krn
         FD4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778506483; x=1779111283;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ZyfSKtemJ4B5/1Xkw7Iua6vD+OSBFh12dJNY7eKBuDY=;
        b=o/8tZOQRQgYdnp63y421xd8FXwsIS9ACybBaA9p108c8fojlscVaQuzl/I9IZQzN6q
         o5NHkZzzSMDpVglCw/hrZcsvCL368gU10JyQejgLV06aGo3E6bqg16g3UYby7J+8gYMQ
         ITJdXUkLM/VU5Fg4yH7jtCjBGs4fDq78JwMwiHOf2V3iYjgF5ksThYjIBDIJqr3ntu6B
         JK+Ey9zBF5DvtDhmtVLME37Xa2X2NHODBCdYP8IqiKxbe7dEEYOJiByY5xU97DLm3Y3F
         hqFyQcvtmYwu2sL+1S6mAhL52gFsTSPLrGqaKgRlFht3MoFuzUHRlhKIZwBYevornejc
         mKRQ==
X-Forwarded-Encrypted: i=1; AFNElJ/3z+9QdeFUdC4s1gT7lmfmCUP9lxTPnl6oWXIk2ZbA/wrB4XxyDJSmiDqHvVZQiWAA6tG4v7XEQwU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzGIy2OSQUy9gfZ0bq4ATJT6lHAXhF0cBljW1gzvhTioV4qLd2q
	W1VgGXIodLlvLqBRygZowQcRJIVghKRWEoX0v+6shb0+CplNyElMkVatHBjb/A==
X-Gm-Gg: Acq92OEcConok5LKyzqqoa7Boh9/mRtGEKANVNu57auAgKINwlradcPti+Zz+hdP5Pc
	Hs9mm8smG4aG7qhkZW3kTa1E0MeQGUb0D+3walGLqXHxVlMz/r+lsblP8qVCjq5XUHhSp+tL/iA
	G9E8y483vhts7K4K2Djt5JaQBwhkRUE/RnzHeM+8eec4A2P63lVSycFJJYeeDZvgjmxIJb7wXaL
	auQD6MsxSTyGrEC6dq6FIKC2nonCzCJSUZHyWPBHQNkSWd7O2q7FSkKnpAxl1QCJnBRjnjFR2F8
	u0Bu4ccloajLaD4gxiyjriZEIxNmo+ofpEWs4oBCmh1e/A08Ik0AkFOwBUlvmmrIKmb1M5VEost
	qJxJccZ2335PxI6YEOFnlba+VyW5ZbpKVAV2aK0hs+S3Cv3sOFeVh3PG7mG3/wuWrDb20foPkQa
	rUJfOLTjhFtOdfNYxy6VO+g+6+jE5Wk6ou2sPnCGB9bBJCZcRjWfkCLJQV6kIAf1XrArzNw7HKM
	e5JSMCYVdehUw==
X-Received: by 2002:a05:600c:1d18:b0:489:149a:f9e6 with SMTP id 5b1f17b1804b1-48e51f46dcfmr359798425e9.28.1778506483229;
        Mon, 11 May 2026 06:34:43 -0700 (PDT)
Message-ID: <58f80bf6-b9e0-42b8-9f84-831a1c546768@gmail.com>
Date: Mon, 11 May 2026 15:34:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Code freeze for 4.22 started on May 11, 2026
To: Jan Beulich <jbeulich@suse.com>
Cc: Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <e21070ac-3a84-4ad7-a4d1-9178d89c1435@gmail.com>
 <2a6117e6-e458-4818-9c22-0c356982eb59@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <2a6117e6-e458-4818-9c22-0c356982eb59@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1778506484-E318B443-D976BE08/10/73395122804
X-purgate-type: spam
X-purgate-size: 788



On 5/11/26 11:41 AM, Jan Beulich wrote:
> On 11.05.2026 11:35, Oleksii Kurochko wrote:
>> I would like to inform you that Code freeze period is started and will
>> be until Fri Jun 05, 2026 (+4 weeks from Feature freeze).
>>
>> Bugfixes may continue to be accepted by maintainers without R-Ack.
> 
> Gives me context to ask right away: "x86/mwait-idle: sync up with Linux
> 7.0-rc" has had a few small adjustments and hence would want re-posting.
> Question is: Does that even make sense at this point, i.e. would you
> give it a release-ack despite it not all being bug fixes?

I don't see any Fixes: tag in the mentioned patch series and also based 
on cover letter it doesn't really clear what this patch series is fixing.

Could you please clarify?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon May 11 13:41:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 13:41:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306195.1578257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQtD-0002D3-1W; Mon, 11 May 2026 13:41:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306195.1578257; Mon, 11 May 2026 13:41:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQtC-0002Cw-Ui; Mon, 11 May 2026 13:41:42 +0000
Received: by outflank-mailman (input) for mailman id 1306195;
 Mon, 11 May 2026 13:41:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMQtC-0002Cq-4R
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 13:41:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMQtB-00B4U0-3G
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 15:41:41 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a01dc8a-e002-0a2a0a5209dd-0a2a450997be-34
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:41:40 +0200
Received: from [40.107.208.2]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a01dc93-2497-0a2a45090019-286bd002d708-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:41:40 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BLAPR03MB5441.namprd03.prod.outlook.com (2603:10b6:208:29d::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 13:41:36 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 13:41:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rhf8o3I49HcQmNNxuJNJ7ySyEh/EyVgm3RrNVMjl+Nr3vb0IbytcRFUfp8k+A/XJ0ugLaMkmcvrZjTxNmQdHxqmHQJRCLMy4f9gc/np9JUJClUnGMeE28j0aStun20iEBzk4+x4n+DLukUp8Aj0JJ+Rit/6f6nBA6BN0FlPD7Rtl435ZcJsGfUtQxhYQU9fF7OOFNFwu5b+eoTiwuBIURdxw0WU8VMr/Et91iB3OhFpH+5MzvZ2PIQNzWte/ZAvRAsyAKI6ngrTqHfku1RfxzS5jiBmhUgD6RPxaDDcHHD+gmp92+vbyMqePms1LUfZV/ylxhFqMB472PclIHfhljg==
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=EvYRzyODOAZBVzhtd5gsDvMERNy1XWvNqPwJaW0Dh2M=;
 b=j99m1gSNsy/NGPOP6N31YCW24KAk+hYIkTm61AaQ1tbtI2ErLEpYdtXz4pf2Uhx4U/S6xGkiV4dOIjemrTztSqX3Vwpyu8aN8tcSK1UBYCkIyGv4EuoskrwIT5D7KSCfbaUBp61YNEnA3jd2CFUqv2KG4kAgRWsAS7mxAs1vFJSGj60h9DPCDnhfXbW1LZJCQYeLmWXh0Pl6FOnpCZFQbn18wu9RqiYX4MIo3g6wiEROTClg5ttlmFwLYKKK0/Te8jOnOEiBEA4Nuj1sEsIAfOYIrEIwEXhAdslbXEt+hySILem75YycumGtQgnaAeCJDqGGJei4zU4s/zdXRC6gtA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EvYRzyODOAZBVzhtd5gsDvMERNy1XWvNqPwJaW0Dh2M=;
 b=IsLkbhh5NfHvk/pHqP5G7os3D73XTQogzgsQzN1qWKmbu57Ud4gIDXnwNA4P7u7YSkalEtOpmwHvPE4r2eUou1FLkBil4y081mwNey5zEdSX+ueUYuz7mneHTDDaQ/4WFyxpx7P4LqGezWOr/Xg9slxDVr57duYlhqVJcg2NBZY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <da3020e0-cfa8-425c-95a4-1dfe8394000a@citrix.com>
Date: Mon, 11 May 2026 14:41:30 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] symbols: explicitly specify source file name for symtab
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f921abc1-1f1a-4ef1-b21b-a65b5d50eafd@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <f921abc1-1f1a-4ef1-b21b-a65b5d50eafd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0330.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18c::11) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BLAPR03MB5441:EE_
X-MS-Office365-Filtering-Correlation-Id: f0a62ed0-24d4-428f-ffd1-08deaf6304af
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|11063799003|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	YdU/FDotC6JIgfh5Rhl7IKMHQPgES6ZkQrXFx6Ut60Nv8paKNg/7c2ALlAbqx8+nnoE5jy9kR/A1hd33I/W1Ij6DmZTFQ2XQ8FSwroOf62QdI7X2mRluwgiWsD47MFcICbA6jy3jyXmgyD3xIxunJbZ3fmdCZ/ylXUT9iU1GsZkZmHP0cMtyAVQNTMM5LgnAczkf8JMwAt4J+hrYcGBa2mzQIWUY68FhRWa/rLtArQZJI3dluLJPqeqDJ/F9l+/waHWCVl7Wlw/oM9I5482YpuaSe2JDxpXXqltBBcuPXrHWpRIzzaoH32MY4zfN+3Mn8xA3St5EHf9daPiYIklRpfyGNP03a9v/KRU5cAyeHblGKHwQHtOkfDGOHmN5yTlwQqejE/O0aseVHMsX8iq6ha0cKVBSgPYC/V2e5I7ZFbo1/BwurvClpd4H3FMcw5/CWdptBr3WEi0uJfKQOBaGfBpqnaN8Qoz/hpurUxcMK3qLsf5ZuBybqj6Eu8jgBpmTuCNTVceBR3UMHQRYbwg2pYDOS3RjSICv8qYnXwEtBihHri5v1Cf6kBjNie8asCrRoGMs05UKI9hI/25yIGdaDmqmbWUE8UhnPOvHtr6gQ1s8tlqbo5h7YYHLM0eVKhB7Y6FiowxvC6W+LKanHTLJ/WMGaQwSGwFnjrOC0YWQWQIVJgYL3G1Jyx+EbdEThLNo
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(11063799003)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?V2R4WUdaYmp4VGYybG1yazU1MWNHVnFZK0JuM2tuam9LdVBqdFduWlIrL2w3?=
 =?utf-8?B?bHJGc25UMUVxdWl5SWtzVkdDZjg0ek1ya2J5SFV1aXJFdkdYS0lMUTRTSjlk?=
 =?utf-8?B?L3YzNysydGZJQnJTcmRaMUJ6L0dVQzAyYWlnZzNrVVZuK2g4Q3BWUDcwazkw?=
 =?utf-8?B?a0FXVVY4RmFEUnA1NkhWSUpDQmhLUmdncDY2Tnp4SFRma3hCdVM1WHlIOHlW?=
 =?utf-8?B?YXNBRHFlcFluQ2ozek9sKzhCTm1MSStRTHFRSUIyb0xEUW1idjkwTjhPdkxB?=
 =?utf-8?B?a3hSVEEzcmRhSDhRZXdaYUZhRGNSU2pKMkE1YW9YQ2NqaWI0YzB2QVh4RGUz?=
 =?utf-8?B?UGlzRTNSV1NmTlVIeWJRdjZsQ1pOWkovQlNyT1AzbUpUc1MvS3k2WlRmcy9r?=
 =?utf-8?B?SitnYWh0NXNscEpWcEsxdzJRS1VOazdIaUJlUlJ2Y3RRRjJhbDFsQ1VCV3dx?=
 =?utf-8?B?bHlXQUE4RUxRSlY0SlR1YlR4UnpzWWhWU3FOZW82dUt3VnRKQ0RGNWFJNVhB?=
 =?utf-8?B?TFc5WW0xc3FCeXBSc01KNGo2Z0JqcnhCRDhEaTZsZEpmMVZtbFUxaG9qMU92?=
 =?utf-8?B?WERwYnArb3dQRUJDT3o2dlJxVG9CM3gwWlpwWnZ3cVZmUzJhUkNqc3dJZHN4?=
 =?utf-8?B?S2NSampRN2dMMncyS2pKV29wWVNvbVZrTTllczNyTFkveTd1NE5aSHFYUkVE?=
 =?utf-8?B?SFNjam9ud0xXZUtYNmQ3dnZWYXpzdjVZQjBOb2JIWWx6WDJnOVNjTlljUFF5?=
 =?utf-8?B?UkN1d2ZJT3VObnVZbHFLR01id3UrS3VJRkRFTVU2dHV2U2hiYnB6QngyeXhY?=
 =?utf-8?B?RzQra0dxNGpOT2FaeFlSUldONGQzQS9WaHFTMVNYSWR6eldXVENPbjZWcENL?=
 =?utf-8?B?dDgxME9JTkt3OXk1akFxNzVna25iQWlKY0I2Mm9sT2JUM0RVUlVaTkEwVzNI?=
 =?utf-8?B?SVJNNm9PeURaT04vaml5MXdhdGc2VDM1Mmg1Q3pBZ2crcE1BeE0weVM0TUVT?=
 =?utf-8?B?S21PeDVLaDlITEk2MEw0UTlLVnpXU0syZ2lNSGxTU3NqRTljZHB2bDArVzFo?=
 =?utf-8?B?dUovQUhpWDNJL0ZKMGlFeXR1WDdsRHFqazRXOE9Ub1J4TlhEcERGblZMSXhZ?=
 =?utf-8?B?WHNhbHY5VzhGZFRHdzNGNlRTVEVMNjBrZWdYSnE4ZVB3RmltNlo3dkVkek4y?=
 =?utf-8?B?eU9vUWxjU3Rqc3BHdnFEbmRsOGhhSmpHOHJBc0xhWTF0blVUTDhqSnd5VUNE?=
 =?utf-8?B?NnJ1cXB4ODVQU3hKdkVDS25pZlhiVEJMS2xhME4yck04QkdMVlhEWHJ4OWdk?=
 =?utf-8?B?dDJDL2xnN004aEpLUkcrek5ka0trV3FLeHN5ZzFCc0NUdGRaZ3Bkd01qM2Q5?=
 =?utf-8?B?Wkg1TmpkbTNKNlE3SXlzVEJnZVZraGlzaE5vVlhPb3VmRnpBMGorUFR5a0Fo?=
 =?utf-8?B?bktpU3dzR0I1NFo0S3Vxais5bGFSS3ZERTFSNnBRbXpqRGl6T2NXUTlOYXlI?=
 =?utf-8?B?NXZ4WkVWLzY2YnoyOW9SL3VsVytIanUvSDdNZFRidEpXenBEVmh4TXZmL2lD?=
 =?utf-8?B?ZzE2SEVjRDB6VmY0R2lhenY1QVpOUzRZOHNmb1k1Q2gvcVo0YnRUSlhxTGgw?=
 =?utf-8?B?TGozVnRlL0RCSWZXTXU4U0hsdXh1K0J0eENUcGlsUVJBQmxDM05WNHl4UDlZ?=
 =?utf-8?B?NUhIeEJHSUxPbXNLbGlGRk8rOWlna3JzNzZuSW9TTVZCTGJtQVEvbGZQbVg5?=
 =?utf-8?B?YVRGazNSUjhIMysybzh3VHVTVnZweU5rNDZwQXNpWWZtUXhBSnhFazkwL2c2?=
 =?utf-8?B?Nk1ReVdlcTREaFZldEVJOHdrejUyVVB1VDNOQXBFdDlTaldvYUF5aS9ncDAz?=
 =?utf-8?B?MDF4dldpY0ZtQ2NzQ0dJQkgzTGtBaitITG15MTQwN2docmdDUUI1cjkyb0x2?=
 =?utf-8?B?MUxaSGFCKzFiZGdNaDdIN3htNWpFbndxNjRXM3hKcFpwRTk2WUJUenplZFpF?=
 =?utf-8?B?WnZXWjlITTlSazRJV0JOWk9JNlFRQy9lcXpsc2RxNk5zMGRvdU1UY2dHUWY2?=
 =?utf-8?B?RHFWbjVRWHVIcnZuQ3dpbVNRT2RTVllpa1p2c1FQUnZ2ajBacElpd3pnZnZn?=
 =?utf-8?B?Yjk4WU1DbXhPVXJnS3N0YkZGb0ZrNkdFQjc0a0ZwT1p4T1dMZ2JmNUViVHJU?=
 =?utf-8?B?dW5WN2ZwM25ENG9ZWmd0azlIY2xhc0NNdk10UytUd3ZiZ1pEZ1ZmSHVBV2V3?=
 =?utf-8?B?Q1crMmRBMkhsNVI2MStYczJnbk9UV1dTY2lzRm1xZDJDamtsbDVDNGdteDdz?=
 =?utf-8?B?WWxsTm95OWI5emdtZGxRV2t5Q1NsVDRsemQrTWZnU3hJN3Q0TFVQeGJqSzFR?=
 =?utf-8?Q?Y9NijKjlb1Wid9zY=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f0a62ed0-24d4-428f-ffd1-08deaf6304af
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 13:41:35.4473
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Apqum5fLgWuQzyuj0b++d7J4VFbnplHIcFc144tp1Id8V3fAemlc0BTtl+uD2wMAXgDhtHWs+v7GZz0r+/hLyst3hGegbFsdoAky6vntw7U=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5441
X-purgate-ID: tlsNG-bad1c0/1778506900-40B60A53-19EC44AF/10/73395122804
X-purgate-type: spam
X-purgate-size: 3672

On 11/05/2026 11:00 am, Jan Beulich wrote:
> If there are any local symbols in an object file, GNU ld will create an
> STT_FILE symbol derived from the object file name if there is none in the
> incoming symbol table. The object file name, however, varies between
> linking passes. As a result, symbol name compression can yield different
> results if any of those local symbols need retaining (Arm [and RISC-V]
> mapping symbols are omitted, for example). If that difference in
> compression would yield a difference in the sizes of symbol_names[] or
> symbols_token_table[], the compare-symbol-tables sanity check will fail.
>
> Fixes: d37d63d4b548 ("symbols: prefix static symbols with their source file names")
> Reported-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> The observed problem was with a stub generated as Arm64 erratum 843419
> workaround. Such stubs' symbols (imo wrongly) are associated with the last
> input object, rather than the input object they belong to. Also for other
> kinds of stubs, afaict. See
> https://sourceware.org/bugzilla/show_bug.cgi?id=34140.
>
> As per the above, having a Fixes: tag here is questionable.
>
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -200,7 +200,8 @@ $(TARGET).efi: $(objtree)/prelink.o $(no
>  ifeq ($(CONFIG_DEBUG_INFO),y)
>  	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),echo,:) "Will strip debug info from $(@F)"
>  endif
> -	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0s.S
> +	$(objtree)/tools/symbols $(all_symbols) --source-name=$(@F).S --empty \
> +		> $(dot-target).0s.S
>  	$(MAKE) $(build)=$(@D) .$(@F).0s.o
>  	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
>  	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds $< $(relocs-dummy) \
> @@ -210,6 +211,7 @@ endif
>  		> $(dot-target).1r.S
>  	$(NM) -pa --format=sysv $(dot-target).$(VIRT_BASE).0 \
>  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
> +                  --source-name=$(@F).S \
>  		> $(dot-target).1s.S
>  	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
>  	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
> @@ -220,6 +222,7 @@ endif
>  		> $(dot-target).2r.S
>  	$(NM) -pa --format=sysv $(dot-target).$(VIRT_BASE).1 \
>  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
> +                  --source-name=$(@F).S \
>  		> $(dot-target).2s.S
>  	$(MAKE) $(build)=$(@D) .$(@F).2r.o .$(@F).2s.o
>  	$(call compare-symbol-tables, $(dot-target).1r.o, $(dot-target).2r.o)
> --- a/xen/tools/symbols.c
> +++ b/xen/tools/symbols.c
> @@ -66,6 +66,7 @@ int token_profit[0x10000];
>  unsigned char best_table[256][2];
>  unsigned char best_table_len[256];
>  
> +static const char *srcname = "xen-syms.S";
>  
>  static void usage(void)
>  {
> @@ -356,6 +357,7 @@ static void write_src(void)
>  	printf("#define ALGN 4\n");
>  	printf("#endif\n");
>  
> +	printf("\t.file \"%s\"\n", srcname);
>  	printf("\t.section .rodata, \"a\"\n");
>  
>  	printf("#ifndef SYMBOLS_ORIGIN\n");
> @@ -679,6 +681,8 @@ int main(int argc, char **argv)
>  				unsorted = true;
>  			else if (strcmp(argv[i], "--sort-by-name") == 0)
>  				sort_by_name = 1;
> +			else if (strncmp(argv[i], "--source-name=", 14) == 0)
> +				srcname = argv[i] + 14;
>  			else if (strcmp(argv[i], "--warn-dup") == 0)
>  				warn_dup = true;
>  			else if (strcmp(argv[i], "--error-dup") == 0)

Why does x86 need to plumb the source name in, but the other
architectures don't?

xen-syms.S suffices for both x86 builds AFAICT, so can't it just be
unconditional?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon May 11 13:45:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 13:45:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306203.1578265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQx4-0002kb-FV; Mon, 11 May 2026 13:45:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306203.1578265; Mon, 11 May 2026 13:45:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQx4-0002kU-Cw; Mon, 11 May 2026 13:45:42 +0000
Received: by outflank-mailman (input) for mailman id 1306203;
 Mon, 11 May 2026 13:45:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMQx3-0002kO-Rw
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 13:45:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMQx3-00DIsP-8P
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 15:45:41 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01dd79-e002-0a2a0a5209dd-0a2a450c9c28-34
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:45:41 +0200
Received: from [209.85.221.45] (helo=mail-wr1-f45.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01dd84-62f1-0a2a450c0019-d155dd2de8e2-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:45:41 +0200
Received: by mail-wr1-f45.google.com with SMTP id
 ffacd0b85a97d-44e5624c053so2436454f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 06:45:41 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491304505sm25771075f8f.22.2026.05.11.06.45.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 06:45:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778507140; x=1779111940; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+YTgXmWq9qLFy6bEkuJcYNTC6uGfrxokEmbM3hqNgqk=;
        b=aftNDMD1xYcO9tIccodYzsFpUfWzDtQgKTuwcB0rU/cZpWbV6IVy4DxFJH8s39/pF9
         b+HT9uqC7gchPSFSc4fbjvwixg7FsVwwf5Cv11xMMQyTD3hkJnsZjhXSqo2rPKmp8KIO
         OTQKuD2jIOMKhebF5OrKmRyQE9ACjZJ2uMR3ZcKpsGWCS/z5SND+o2L/78O2cYHhwoAN
         Yi9pRimXD4p3Natj3XmJ6G2XmojHagWQfpEix/Fr422qb2r4QoQhevcEtjHCGifN37sE
         n0zmbNPMgj/gnbfRSfAIu5kxy5BvxK+KM+jk9JYGeOmipTt0subDp++sUOIVDXMup3+B
         YI5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778507140; x=1779111940;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+YTgXmWq9qLFy6bEkuJcYNTC6uGfrxokEmbM3hqNgqk=;
        b=sRxMYc0LrsHIaR46Nj5h7Gmrw6x6pmhfRDxcXpI548pLucTqPrrsnep0aHSGaCMjYa
         4ihHiFKgQurvVVcf6sy5EnY6qI7nkr4cvMj1Mgg1269QGblWCosui9wTfjV/8CnHWYrU
         dOkX24QvKIq9w9+dzaHCYnwPQsd3fKcYPjueSt3AFsJT3QwEzqwHEiR1RVQAwVHb86bG
         Z4U4rvWcMaHddXg3c7plOkl/h9UBA8AiXRPL90MdY1Lb0dRveWFrXvIh/ak3b4EuW2ot
         mVJ7RX2zsBJPSz2ebq1EpfF5FXIySxbk2y9+2JPyw2Olb5INgotz8JhQ4SOz6gJNAwhO
         lNhw==
X-Forwarded-Encrypted: i=1; AFNElJ/gp0hbxZ3hvMFaRqUSIP1k75CbPzEFycXq263laWOWN5/RS4w7ixRHFbLpnoktwdRIbVGreGaFAMA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwnkIX6pAw0XSAZPK5Aoj1Qbc0M9jT6M1Pg/VIEWBa2foD8lYll
	hIOCi6YvkVNKxaT8S1dPfDl/2/4R0GzbhQg+muwoslaecRBSf8O5DdBHkgmdCQl1jg==
X-Gm-Gg: Acq92OHTMIWt9O4UhqGJ4fAKsinEtPmT2olvnFKJMtpO/WVn2MLueOgDtvmmkM7Rzv+
	HfwhxuUBBCI9k3tlgcjmFZKUWRfBcO9Jj2z39BeL6LT9OxbBbZ4WMJ2v6XHeqn0S6hKEsi6BE/A
	EEw6AGehF+AbcdKnXL8WpZLRlalXmuZuNw30KJwHtTPC1Ac9Eqr/MfHLL7Gy4aqUtaDyOFIsTvL
	IH0BvW871Sk9JWt0ct5z0KHAU1urKE/rs9OT/Ut7TF6XVQA1iGJQnIdMG/HlkO2v2dpwtMjzF6p
	7FELQhbFv+QsEzYiMquN/KVR76RzpN4y75Ko6dr96R9cPp+E+qi2mcdqaRiWDvSbiXg2gQHv6UA
	XmuSJ4VP33XvoOFHGErYjanRL5PXHzOg8Q04nd6M2OWR1fhQjPIGAdfvsVs9Sy1hRASLV2wEXe8
	0HR9mJWkXdL/JbJGQl49VZz033NcJ2P2bpzgLxCnDMbQ2xoAmzn36JB58KwNJJoeNutSAqExrYE
	FKXBJl+GtIQ9KY=
X-Received: by 2002:a05:6000:1ac6:b0:43e:a9ba:b194 with SMTP id ffacd0b85a97d-4515d5c6b69mr39595707f8f.34.1778507140425;
        Mon, 11 May 2026 06:45:40 -0700 (PDT)
Message-ID: <4b0f55a1-1e9b-4ce1-b6b6-29b868d57e25@suse.com>
Date: Mon, 11 May 2026 15:45:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Code freeze for 4.22 started on May 11, 2026
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <e21070ac-3a84-4ad7-a4d1-9178d89c1435@gmail.com>
 <2a6117e6-e458-4818-9c22-0c356982eb59@suse.com>
 <58f80bf6-b9e0-42b8-9f84-831a1c546768@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <58f80bf6-b9e0-42b8-9f84-831a1c546768@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1778507141-E3B7CCF5-4321E6A0/0/0
X-purgate-type: clean
X-purgate-size: 965

On 11.05.2026 15:34, Oleksii Kurochko wrote:
> On 5/11/26 11:41 AM, Jan Beulich wrote:
>> On 11.05.2026 11:35, Oleksii Kurochko wrote:
>>> I would like to inform you that Code freeze period is started and will
>>> be until Fri Jun 05, 2026 (+4 weeks from Feature freeze).
>>>
>>> Bugfixes may continue to be accepted by maintainers without R-Ack.
>>
>> Gives me context to ask right away: "x86/mwait-idle: sync up with Linux
>> 7.0-rc" has had a few small adjustments and hence would want re-posting.
>> Question is: Does that even make sense at this point, i.e. would you
>> give it a release-ack despite it not all being bug fixes?
> 
> I don't see any Fixes: tag in the mentioned patch series and also based 
> on cover letter it doesn't really clear what this patch series is fixing.
> 
> Could you please clarify?

It is "fixing" us lagging behind the Linux driver that ours was cloned
from. Plus the series was posted well in time.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 11 13:47:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 13:47:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306213.1578274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQyb-0003Kl-TY; Mon, 11 May 2026 13:47:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306213.1578274; Mon, 11 May 2026 13:47:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMQyb-0003Ke-QR; Mon, 11 May 2026 13:47:17 +0000
Received: by outflank-mailman (input) for mailman id 1306213;
 Mon, 11 May 2026 13:47:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMQya-0003KY-Mb
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 13:47:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMQyZ-00DJLC-VI
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 15:47:15 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01dddc-bab6-0a2a0a5309dd-0a2a450ae674-18
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:47:15 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a01dde3-56b3-0a2a450a0019-d1558033e13a-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:47:15 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-488a8ca4aadso39865255e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 06:47:15 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e6d8d3113sm87638315e9.2.2026.05.11.06.47.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 06:47:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778507235; x=1779112035; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wg0W2iAQ1/HBRB5CGJb70HRfS4RhUAa3wrK7q77R4aU=;
        b=Lyek5Z4JKTwmKyhjJ/Izy5Kc33+euFq7cQpXwTdBWF7mr6FTfgieSFoC1hxwJDOx/n
         LfZfZEquJ+HIASevfHnE0XE2QrHS3/Sd6biyAgMq9aPOyrbgkn+FBUTv25brL/81eJ78
         F5/8vI+B/4tmKeiJ4TAZHEzqvoUBnYEAy9qofotI5Pz3f1MRgsSz4NhFyEE5xW7h7OVk
         n+RYiAzibhk0w8tFANkQTBDz4uy/b/bCubSzUVLMD36IiNmlpZag2rLPDjVQgOGqo7Aa
         NBDcF3DhDXswBl079y/KH/jQw7vykzumRyGwPbnzjghyL7e71fcDPlekmSNTgdvyUxIT
         GNwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778507235; x=1779112035;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wg0W2iAQ1/HBRB5CGJb70HRfS4RhUAa3wrK7q77R4aU=;
        b=F8yOUdvImNvGDkYkx/GTqgicb8JySAIK0BN65ObYylG8gS400KGtOCrRdveDSdhwW8
         iY6q+7A6yqAz5N96QNnYI7BM9Cx+TwXl2Aae39niA1UUPDXLm25Zuo4iMiW7hhXCs981
         BCSxKQGzMJHyG9rVjO2HwFzjwrWJaHC8zaXJZnDBa06JS8hdRORXN94SNNcI8Lmm2a0A
         yZ32G6HBEu6WnPNUwBdBUD8+QgPE4xkLyYVNITtcYuq0xuyfCnwd5XuyQBk5ShyTE+Pw
         moqjGlMyWHnZbNhqwbRvCjYEdJL0Og0bp15Vf8lD8FSjrnEbJprKQ4GDQou8ZpD5Cfrp
         g6Bw==
X-Forwarded-Encrypted: i=1; AFNElJ++mYvCO/z6OOF3PEMdTEOQ5PK+Mogrl9KHP5/IMnM41uc7Es29wDLV1LwB1vq0n/8WTt+Oox4tSLU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yykm1o9jsU/AshQHs7Xs6VWKdZTcCWpPmzTpRz2orNe52sLL/zq
	Wh8Zp/+o9T+bTKI1loXtrVl3sFR9JpF6eU6F38BLsCrI7705/iAjM/mquZGL5OW3ag==
X-Gm-Gg: Acq92OFUCn3/oFcwuZiPYUMSl8ECgjhStMox2saqHhiM0ObRKJzHzEJTTqAYpQrcsqT
	S3qTFIpcGU1LjO4tbpXNiqDR1gc86+5WawqtU7MOBMHx3LCeMkDXgomXhT7fC1WBj0jcWUlsG33
	NusB4l0qgj1cqcvk9//FnkQNCmD8BmZjUbAlSbuZtt29ePYkr4vaZaaX80SVfWR+cX+kPkYJMfM
	1+ssNdqwV2bxj3bZkUlGIk9/nWaAK6SrY9eZGAf2oRPz5A+SgLPxbWIXB3f5J8iCBHbkEi59s0h
	oIcDK0lF0+HWXDhWCrwtjtUqLZFNNn2sZ2tAAhHxGG2+XvfQBDSb0ks7TQcQHHSkhBXpdTqmMcP
	+miQCqSDDrs0kW+30lqUUjkumsmBrUpwAzfjlC5LjQ22Lf53jvej1YgnZUbcyztblMcVVm+NVG+
	9TjCe/ZAhW1PXSnuHQNIDogKdu+uNuCppxrwwCipPLWDUP1U9tTIK1XmNCRYbICHRW+adX05MET
	NVkpDBkbTmRqaFeufdq2n2EVg==
X-Received: by 2002:a05:600c:37c6:b0:48e:7f22:d90 with SMTP id 5b1f17b1804b1-48e7f7de432mr94241785e9.4.1778507235424;
        Mon, 11 May 2026 06:47:15 -0700 (PDT)
Message-ID: <a0cd1cd4-12d9-44aa-8204-c607e597c396@suse.com>
Date: Mon, 11 May 2026 15:47:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] symbols: explicitly specify source file name for symtab
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f921abc1-1f1a-4ef1-b21b-a65b5d50eafd@suse.com>
 <da3020e0-cfa8-425c-95a4-1dfe8394000a@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <da3020e0-cfa8-425c-95a4-1dfe8394000a@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1778507235-71B6F8B7-0703080A/0/0
X-purgate-type: clean
X-purgate-size: 1358

On 11.05.2026 15:41, Andrew Cooper wrote:
> On 11/05/2026 11:00 am, Jan Beulich wrote:
>> --- a/xen/tools/symbols.c
>> +++ b/xen/tools/symbols.c
>> @@ -66,6 +66,7 @@ int token_profit[0x10000];
>>  unsigned char best_table[256][2];
>>  unsigned char best_table_len[256];
>>  
>> +static const char *srcname = "xen-syms.S";
>>  
>>  static void usage(void)
>>  {
>> @@ -356,6 +357,7 @@ static void write_src(void)
>>  	printf("#define ALGN 4\n");
>>  	printf("#endif\n");
>>  
>> +	printf("\t.file \"%s\"\n", srcname);
>>  	printf("\t.section .rodata, \"a\"\n");
>>  
>>  	printf("#ifndef SYMBOLS_ORIGIN\n");
>> @@ -679,6 +681,8 @@ int main(int argc, char **argv)
>>  				unsorted = true;
>>  			else if (strcmp(argv[i], "--sort-by-name") == 0)
>>  				sort_by_name = 1;
>> +			else if (strncmp(argv[i], "--source-name=", 14) == 0)
>> +				srcname = argv[i] + 14;
>>  			else if (strcmp(argv[i], "--warn-dup") == 0)
>>  				warn_dup = true;
>>  			else if (strcmp(argv[i], "--error-dup") == 0)
> 
> Why does x86 need to plumb the source name in, but the other
> architectures don't?
> 
> xen-syms.S suffices for both x86 builds AFAICT, so can't it just be
> unconditional?

It could. Yet I'd prefer the distinction between xen.efi and xen-syms to
be recognizable (in case any dependent local symbol would show up).

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 11 13:53:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 13:53:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306222.1578284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMR46-0005D3-Fv; Mon, 11 May 2026 13:52:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306222.1578284; Mon, 11 May 2026 13:52:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMR46-0005Cw-DF; Mon, 11 May 2026 13:52:58 +0000
Received: by outflank-mailman (input) for mailman id 1306222;
 Mon, 11 May 2026 13:52:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMR44-0005Cq-Rk
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 13:52:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMR42-00FE5f-MQ
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 15:52:54 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a01df27-e002-0a2a0a5209dd-0a2a450ca008-44
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:52:54 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a01df36-62f1-0a2a450c0019-d1558031d93d-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:52:54 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-48e82c23840so8884275e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 06:52:54 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e702e5630sm172893775e9.8.2026.05.11.06.52.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 06:52:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778507574; x=1779112374; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ZFmoW6JntkeQx2+RQzRMcSb9LFMgoGGLEeiywY/lSFU=;
        b=JTE+yFmKtsHnEfA9ryTvOkyqr4tXj7X5XclYAvfb2vONlDr4W99jhHGrs4HWPaOBj7
         aLcBwXtDZ+LRiNUBV7qSDHTnaQxAUpieifrnnTeTnG1ZMzvfD58vS8ACsuRBnMKgVCw9
         fQBfhATouJ4b78K/tjWfuHtwBJd6JczHC/aKSubd/OvScq5tugHwp+ZggWWLl+3eFT14
         hOVn1vgNKT2UGQqQzfqwRuQiwrEB0BL8EX9AIJ5JbOh0gaRBP5VLNkfJyjKVBArTKhiT
         1ggTeafFHhvsoc58zXNV98x4gkgQGSrhJC5uWthV6U0ASmGgIus7aHC6q95H/3abw6mi
         QfUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778507574; x=1779112374;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ZFmoW6JntkeQx2+RQzRMcSb9LFMgoGGLEeiywY/lSFU=;
        b=TA1xbtyaj32P8IP+tWmfYWVrDsTfCg4tQrx6Cfe9N1L5O2/HNU5l7GzKAU05otYbTe
         hBbmu98rQGgvunvSVU4ME0+6hPY5qMjewjhJWnCyJ2Si+xuEjQtb8fH8eA9G6WRsrSQ7
         RZc3pJlP6WGmEn8rptcWHl1h01jrM/3YQIlrmu51GwYpAfHkFO5Cfv1gsig3as9OxWC9
         FV39L1+0HQOA5PJ0Mg8uPausn9o1JvvO+jzh/h+/+p7+xjBk6TVcoSW14DzgJUoZKyNM
         XW9xuS7eNZR9HZiq35YJ1zqUvaliNNIC0cjUfQ6tdSkaZjjz6UsO/tqy5/kA9i3Kw5t9
         2ayw==
X-Forwarded-Encrypted: i=1; AFNElJ+tavS0NDucqrIjxoD1mJFLC+YhTONxsyK90DmZ5YrWYMkdopF8rKxXsNos5I1BirE/AWshG1i4Pq0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyUPJf63J/E4CuGRN8K/pb44VNm9sPCfmV/ZBi0Bpg17S3DoJyi
	zh4XKyWL24j2OXB9KFGLfeYmu21YgZ+cnBbS7kM058wJQHTHrwYOG6d28C9NtA==
X-Gm-Gg: Acq92OHvezg8HivnfeNH+7Gy3zKCZhc7bRNoY0f58xfGY/l7XRjMkbmX5RwKLHZhKpx
	DF5wcLPVx1nSWXyVcSpUBGzylEfe+wXSccj2yZvgKnUO/0MhFmRqmKsk43XuKgYeOHsxbac2a+U
	kKyj851qKbZLB6Jc1gwuWS5bhymKAz9ge9La2Wjj6JkgleyWYOeCC+Gma7WV9dkQ8VbGn0/2of+
	5tKf8jaZjckgCJ9vspzxqYULcbrg8+Dt+qEzIcfYilMZ3AdDu9/W+44htO55r4jSr+zg0cxweLk
	aGq5LiqhyCp27lbnA/6QLyRjs9XxDu8nsmTOKPIZgHd/tpeP7FqnlhbZ4H+pkynDOuB7Ekzp92O
	2zintfiVb3EWIs0tJj37SDbd6i+bktO3fyMvuTokgjn36PZ5xSGE6wrgrWk6+CYhqViz/hKLyVZ
	Lxh8B0zHcZcS17YBjDrOCR44anPO/POGvwImRu+WRhhUBr3hIcb/fOqCQsQLEeEu3NlTjG+FjW4
	8k=
X-Received: by 2002:a05:600c:1f89:b0:48e:8741:fd43 with SMTP id 5b1f17b1804b1-48e8741ff6fmr28938555e9.13.1778507573894;
        Mon, 11 May 2026 06:52:53 -0700 (PDT)
Message-ID: <9d56ec7f-4502-4133-92ce-e536f4ab3177@gmail.com>
Date: Mon, 11 May 2026 15:52:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] symbols: explicitly specify source file name for symtab
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <f921abc1-1f1a-4ef1-b21b-a65b5d50eafd@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f921abc1-1f1a-4ef1-b21b-a65b5d50eafd@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1778507574-DBB7CCF5-9F4DB3BC/10/73395122804
X-purgate-type: spam
X-purgate-size: 1948



On 5/11/26 12:00 PM, Jan Beulich wrote:
> If there are any local symbols in an object file, GNU ld will create an
> STT_FILE symbol derived from the object file name if there is none in the
> incoming symbol table. The object file name, however, varies between
> linking passes. As a result, symbol name compression can yield different
> results if any of those local symbols need retaining (Arm [and RISC-V]
> mapping symbols are omitted, for example). If that difference in
> compression would yield a difference in the sizes of symbol_names[] or
> symbols_token_table[], the compare-symbol-tables sanity check will fail.
> 
> Fixes: d37d63d4b548 ("symbols: prefix static symbols with their source file names")
> Reported-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

I would like to note that with the current staging I can't reproduce 
this bug anymore with configs I have:

10d417b8b62e (HEAD -> staging, upstream/staging) xen/arm: skip holes in 
physical address space when setting up frametable
2611377cf9c9 xen/riscv: fix MMIO alignment check in imsic_init()
54ca0aadc821 x86/time: make do_settime() uses more accurate
4526d6763466 x86/time: make early NOW() uses slightly more precise
9f976dec039c xen: introduce CONFIG_HAS_DOMAIN_TYPE
bdb30883f352 iommu/amd-vi: do not zero IOMMU MMIO region
4f9457ece11a xsm/flask: Fix undefined behaviour in avc_dump_av()
4ff927133ebc EFI: adjust cfg file buffer freeing
96ffccef5a5f xvmalloc: adjust XVFREE() ordering
e8c1feab33cb CI: Refresh the Debian 12 cppcheck container
278953f6c155 (origin/staging, origin/HEAD) automation/gitlab: introduce 
macOS build jobs

But when I switched to origin/HEAD I can reproduce the bug and I applied 
the suggested patch on top of it and I don't see this bug anymore with 
this fix:
   Tested-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon May 11 13:58:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 13:58:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306232.1578293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMR93-00063e-1X; Mon, 11 May 2026 13:58:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306232.1578293; Mon, 11 May 2026 13:58:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMR92-00063X-V1; Mon, 11 May 2026 13:58:04 +0000
Received: by outflank-mailman (input) for mailman id 1306232;
 Mon, 11 May 2026 13:58:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wMR91-00061l-8W
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 13:58:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMR90-007JqB-Hy
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 15:58:02 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a01e05d-2eae-0a2a0a5409dd-0a2a4502ab7a-42
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:58:02 +0200
Received: from [40.93.201.26]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a01e067-af86-0a2a45020019-285dc91a1962-4
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 15:58:01 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DSWPR03MB989106.namprd03.prod.outlook.com (2603:10b6:8:35e::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 13:57:58 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 13:57:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=izIJswXDZC4F9ujhfjaLIcf+FWSsaozoUgqOhRL7+LBfqPABtmlvJlsL+0q32IGAmtc97dnAoDJv/M1iUjDRmDWaPu0PoCbuzu+K6mnvS3Bf+7BkKFCS4+z/OTnnh50kZD+TVZRYWLw9i8mOk/GEGtjezEWFq/Jd1/3VERy7O1l/Ny01j1Hl4hrjT/D6dDiYEwZ706GNXN2KKJL0Damqj+Q4aE+Hb51eEU5tWTpgfM6vz9a7HWpQRCNdcHZmNKaGwHMyiwZJoo5GInjL2zRflvgQoLcaRBJVYzlPnTokBjaC4iLTryPAvk3hIJmG5uenhBj8X6wO6ILMer5SCClwpw==
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=Tc/KKf2zGsQej0e4TCm+LkqvwBRiX1vXgUPwcE4RYAM=;
 b=vyL9M8by+fBbYtBGPsFDrMWpgOMamAsTLqxVCyUqurJKhrMX//qQV4MVyvE86MRMbR5RaLur6oUtn3YxwPb0zRRd1ZoKCDKnoIK7E8o9KVVmjzdSwkRv3QB2cUYWGdKu8DVVpExRSJkn8fxFoJdxjCGyRAHFWVHiImAMv4CcoIoMhb8NWtMTOjKfjOU69O9MLPFaH2JJX+54xtcev8dsZCfGmWGQXh8rrMq7otL9zI+s/bshsmbcrgz2fm+bliXV5SiUN83K+Sew3PhA42GOs/9cNx4I2keS5aHF3+t1PjI6DncXoj9a7vlTPvnnrpemsn5rxRvg6OqYfke+MfoWsw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Tc/KKf2zGsQej0e4TCm+LkqvwBRiX1vXgUPwcE4RYAM=;
 b=eXmttEcXwuLXs70rGvFF/RpMN4OU8OZbkHrWi1onxtD5jTW4H9oT/jvlCWZ8NciK+UhA4N4SYsWXvMrHd1wrABAc6mVmRKuW1x3HFO9qAJf+3Jf/+Kjv4YAfvBdHSHyDFKnz746nIHdwhZZQ7QVgYgC/PFbzBqtg+fyS77+Wk/w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d3f3e745-6d24-4e41-b8bb-de7145a3b2ea@citrix.com>
Date: Mon, 11 May 2026 14:57:52 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Code freeze for 4.22 started on May 11, 2026
To: Jan Beulich <jbeulich@suse.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <e21070ac-3a84-4ad7-a4d1-9178d89c1435@gmail.com>
 <2a6117e6-e458-4818-9c22-0c356982eb59@suse.com>
 <58f80bf6-b9e0-42b8-9f84-831a1c546768@gmail.com>
 <4b0f55a1-1e9b-4ce1-b6b6-29b868d57e25@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <4b0f55a1-1e9b-4ce1-b6b6-29b868d57e25@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR3P189CA0038.EURP189.PROD.OUTLOOK.COM
 (2603:10a6:102:53::13) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DSWPR03MB989106:EE_
X-MS-Office365-Filtering-Correlation-Id: 953f6014-50ae-40e9-15c0-08deaf654e01
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|11063799003|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	sKDcSCabxj+DTFO+fLZb+xanjbEOW2QI9RNPh07NDfhIssF1PitgUZrN7nkKFYgCm48XYJaSb0REe6k/N9sScHWDthVz+jhNFSmVjLkYsO/QK02PQAImFZUr02eXaZIPanPYZvcQw6S6CjHvyDGTgsjTQR82BZP3XyXtjXUum8hsEQ4kKgQEGHQwFxMr1wObANqId/jp7g+bw+pzQLFNC+d064BmEBFlWCqta0gF2lh8IhuCKsthJu6GF38pDcCE6rQbUJT4u6xUGGvEfOjr9qjeQu/qqEuEI6E7ldviKX7V2ZOtrHgPCIiwZ1h4Jf4aed2hLLB4p9C5Jm5mZSdSreIA23S2Afn8mq+xm6VNkg/jhEgNUJjKn4OiVCyvFsecVQDIM8bq0gKKI1ToNLu6yMtiO+wspCVjqwua1xzxvZu43HlescLlRN4eUHbGjTECETMKBiamZiafmykuYcT/1NboS1EGdJCdZSBhPY0qJdmE6E9UUL5Vm3k8BQh1zkBTpwOd60N+gcFqIbn3L314hJqp7UjDxJg/apgb2AxgmF6B5pC4nQ9qtU/d66WmlJ95A3r7SMZQ+76xHWNG9ofcVF9oRmzvUJBCBHpRpnPZWXWsuR/f18xI3nW3SMncV0nMptAmbW6Oq/8lyrgUHFV89rGBMxxuBT8ysnUL85UubYSOCyDBDMa5I0mx9Zakml3C
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(11063799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Z0x4UnJ2R2Z0S0FRWFZJZDY4cVF4Y3htZVFubjlXRzZ6YUFNTWZYSlIvdEJw?=
 =?utf-8?B?ZXZJRmRQRDVJdXJ2TEp5dmRTeXZQTXFkeUVIZXhpMHhoS09RazdvKzh6OVBC?=
 =?utf-8?B?TTFrRFhJdWZQNnlaMmNHdWR1cnZ0QWF1RnpXbTNvREFpRlp2L1RGZW9NUTJp?=
 =?utf-8?B?YndXalVJWXpuU2d1dFc4U2phTnA2ck1ZNUpSMHFiUTR4SkhIMGw2Z21ySEh3?=
 =?utf-8?B?aGN5clpIQzRnT21xbzJTbUZZVUxpZFB3REhFdGNWSGdidDl6b2pSLzhTaDF3?=
 =?utf-8?B?a01uMUdETnpJRzV5OENmVmJLOS9COWRJVk9ZTmNwR1VnNTA0cFhqSWVHSXQ2?=
 =?utf-8?B?UG45SjRqUGgrTmc4M1hrRzlQRlZsdHMwQUhJcjFiZVJPWVhIMmlJNzZJQW03?=
 =?utf-8?B?TlJxaFAvdGNYbWJHMkpaTU10NWFOd3R5bUxhenJmNVZDQ0ZsSjd0WTdWWldw?=
 =?utf-8?B?WFl3RFlWWFFnZWxEMWVrb1p0disxSG12YS9ETmExZnZqM2hTdCtPL2tNcHFF?=
 =?utf-8?B?ZnIrQUpOaFJtbWZ1OWoxL2NXc0w3QzNGS1YzdkNsbmtYMVNUb2xyR0hxam5y?=
 =?utf-8?B?RzJhK2huWUdPdkplOVF5WjBpTmVabk1kQm42VmNwZS9adExrVU5zYUpseGRE?=
 =?utf-8?B?NDdXOXVYVWJIOEh2TzRKaloxOVZ3a2F3NThvWTIyczZ3REU5ZlRkM1dpbkpn?=
 =?utf-8?B?N2dHSm5RQjdUVUllV3l1OVMxekUxTkE4amg2U2dXRTViMFdLKzZscjVUUGdN?=
 =?utf-8?B?ZmRDNHRKaDFVOU9PVzduVnFJcWUwNDZIQUdqV3BtRmU3NUEvSThwUkdsK1c3?=
 =?utf-8?B?c1BOSVRtSzkzTzdINnF5VkxnVldLQzJFc2liakd6elRSQVEvOG0xNkNTT0d1?=
 =?utf-8?B?WEJUK29mSUhqaWNPc1dDRnd4aXhKSHFvSGlIUlREd3djREJqUVg3dy9LS0tT?=
 =?utf-8?B?Kzc3YmErdGhOb2xiQ2JHT2IzS1dUcjIreDgzMzB2aXorNUxqRzJiVlN3dzMx?=
 =?utf-8?B?Zkx4OHhjZmJzSFdxbXdoY0FUTWpwejI1L3J1bmFvb1M0NTEwTDd0YnRRNWwy?=
 =?utf-8?B?TnRCMDdSc2t2OHpFOVBSSndkS1UrOVAzSVc1aXY3djRieDF0clAydVYzOHVF?=
 =?utf-8?B?R3pLZTU1VTlyT3lCeE0vUU9BSU4rMlNXcitlaFJsQVFFUVhodE41bXErSTha?=
 =?utf-8?B?dVYrdnZ4TTZaMGhabzdVbHZabFByWUI1RWQwU2toZ0xFVWRoNDEwUEYzQzJi?=
 =?utf-8?B?N09qSTBhTGFKZHFJTEp6bGlkZHBtZXRkRXI3SlRJNXExckpaQ1dhdWdPMEpT?=
 =?utf-8?B?NFo3YmtIL0gwdUoza05LZjdTd3cydVhENUtlcHVrcnFvQjczM01aSVN5Q1lW?=
 =?utf-8?B?SWZzM1ZhZFdpMUNHUG01dG51SWRuVkRvNEt0MjFPV0x4TUlqWENHblpzZ3dn?=
 =?utf-8?B?aUNrOTVZTm1yT2VGcldYZGNDdUxaZmpZVVNwcmRFU014Zjljd2lNaS9FWnBD?=
 =?utf-8?B?WmlXaWRoa1pTeTFSamZyeWhHZjU4OEYzdHBmSEN1RTNEOHdJaGpuMFZQUVVq?=
 =?utf-8?B?RHFZUndSUFVDajVhenRHdVAwcTA5OTVhNUlvbTVJVldNNlA2ZklVaFVGSWZs?=
 =?utf-8?B?R2N1bjAyaFNMNG8zQ1VNMDUrc05MdS9WOFNPN0pMdEhVUWt3SWQ3N1dOZnJk?=
 =?utf-8?B?L1BvZEtQb1ZzNEt0YlVlbEhtcDRtdXV0SDg3OFpjM2JtOEZEKzRSY1JaamRI?=
 =?utf-8?B?eDNlRDJDQmZmSlA2NHBzRUI3dkVhbWJoc05FYVhJbDdmL3pUYTlUMGRYUzFZ?=
 =?utf-8?B?RUFtMXRudS9JSVBINEF4TDdkb2JKTEc1WDFYT2R5SjdiYXVUaDlkTkVsMHJs?=
 =?utf-8?B?blIxb2F2VTVWeitKSHVVVU1iSGJaMjF2QUpRNnpwci9JREVqbWxzUUR1Q0tn?=
 =?utf-8?B?K3dGbERqZHR5cExFT0dOMmJaVkgvRnZkMllaWEZKTnFIRSt1dVc2MVRQcWs5?=
 =?utf-8?B?OUx2ZkpSVDMwejNORzAzOEZqaUhVbHlNZlE2NG5KQkg3cUpnQU5HVUtpNmJo?=
 =?utf-8?B?ZmtlNmRsOXdBbHZtSXRRV3ZvRUVWK1NseUNQeDRkZ0tCeGM1WnhmRG00cGlV?=
 =?utf-8?B?UXJmNVBieUh6cGtiVXVraTc3S0YxOWJET1U0QmE4akpPQmVMRU0vU3VNYnVO?=
 =?utf-8?B?L2h3MTVSZ2xKNlV3TGFoalh3WFlxNTh5dUcvRnlwaFZFVUZtZFdLMHAyQmMy?=
 =?utf-8?B?c3dZamV5MFVLcCtaQk5EMFB4bTZPZmZiOGp6cmF1eTk0SXdlTW0vZ3ZGalVM?=
 =?utf-8?B?N1psUkZLekJ5cmh0S1l2VERHYmxEQlFDTm5aVDQzMURCRFk3V0dqc2ZPdjVH?=
 =?utf-8?Q?1wODCKT0I/FvPxIk=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 953f6014-50ae-40e9-15c0-08deaf654e01
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 13:57:58.3536
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2043MXVdyWjuZqXFNKPgh5NiuKd/gj9y8V335r/fg1hNnYS5wBWixbISPiJXWhS9nlCWeACkM44XQiNS2H5TOOM8/dwm38tRiLS76mIipuM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DSWPR03MB989106
X-purgate-ID: tlsNG-720697/1778507881-A8145161-E93BD2B0/0/0
X-purgate-type: clean
X-purgate-size: 1118

On 11/05/2026 2:45 pm, Jan Beulich wrote:
> On 11.05.2026 15:34, Oleksii Kurochko wrote:
>> On 5/11/26 11:41 AM, Jan Beulich wrote:
>>> On 11.05.2026 11:35, Oleksii Kurochko wrote:
>>>> I would like to inform you that Code freeze period is started and will
>>>> be until Fri Jun 05, 2026 (+4 weeks from Feature freeze).
>>>>
>>>> Bugfixes may continue to be accepted by maintainers without R-Ack.
>>> Gives me context to ask right away: "x86/mwait-idle: sync up with Linux
>>> 7.0-rc" has had a few small adjustments and hence would want re-posting.
>>> Question is: Does that even make sense at this point, i.e. would you
>>> give it a release-ack despite it not all being bug fixes?
>> I don't see any Fixes: tag in the mentioned patch series and also based 
>> on cover letter it doesn't really clear what this patch series is fixing.
>>
>> Could you please clarify?
> It is "fixing" us lagging behind the Linux driver that ours was cloned
> from. Plus the series was posted well in time.

This is updating/resyncing the mwait_idle driver with Linux.  It is
necessary for new CPUs.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon May 11 14:10:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 14:10:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306246.1578302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMRKo-0000gB-33; Mon, 11 May 2026 14:10:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306246.1578302; Mon, 11 May 2026 14:10:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMRKo-0000g4-0E; Mon, 11 May 2026 14:10:14 +0000
Received: by outflank-mailman (input) for mailman id 1306246;
 Mon, 11 May 2026 14:10:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Volodymyr_Babchuk@epam.com>) id 1wMRKn-0000fy-5n
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 14:10:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMRKm-000Zp5-GE
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 16:10:12 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 6a01e341-bab6-0a2a0a5309dd-0a2a4502e6d2-18
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 16:10:11 +0200
Received: from [40.107.130.80]
 (helo=MRWPR03CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 6a01e342-af86-0a2a45020019-286b8250d1fc-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 16:10:10 +0200
Received: from AM6PR03MB6070.eurprd03.prod.outlook.com (2603:10a6:20b:d4::24)
 by AM9PR03MB7850.eurprd03.prod.outlook.com (2603:10a6:20b:431::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 14:10:08 +0000
Received: from AM6PR03MB6070.eurprd03.prod.outlook.com
 ([fe80::6498:3539:2e93:7416]) by AM6PR03MB6070.eurprd03.prod.outlook.com
 ([fe80::6498:3539:2e93:7416%2]) with mapi id 15.20.9891.008; Mon, 11 May 2026
 14:10:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oZ7j/PBfB6Zf371IjQhakHSxjduNFGKQetFDGeWFL0Eo2RUlA9DiZdMs4v+cPO3+Z60oIls5ADPtBu0GKMHt6NVoUUDmC5y6L5z+Rh5qToFrGSKVu3wo3/JTyNzkoJRIud3tX01oEJgFhP15Artd7hqduXLxXsXajui52WQcmJ9gFCy9N7hsJHWxPli/8Rj6GKsvUhgUGZnEH/aT90N6z8x/Pt3bk7BtJQOuEdKTiXooi6q0Tn2N9yUctwY/7DKdD+fRP7aI8GS3C+yix2fQnDf7rTurqmcpF3Gv5kqrNR6vH49uh99jIuAk6ixThAP5wy60wBPwR8153jPetNGOPw==
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=3hZLdnkGwo5abQg7i0gPKLLtqfBYEy6gK2VAG6S2m/4=;
 b=ZiI2sXGucCBR/A9suE8z91yODZ42a3IDSdIGNXH6cx65nxnL2KHmcHTf86w/htNWN0bnKUhg3w3oJg0pLCAEDdAmCkm4RYQTK74Xz3zxWVUbE1c499SMN5GD3C21anXpaax73oCGQxrkR2xzZVOIpCTyN9An4lPDfUbXqTDWCytqJNqMZ6OmaivbCIQVwBMcWvVNlTlaPuXOyuHo6c8nJTh2mdF6WFqZ/NdC6Pgo6nzTNdDIS+CAPGjOC6CTb0vvEQcmBIWGe3Wytd6jSEj2dxqsSuSy3v0IZH7omA+Nc26trr5/R9PMdeb6cfol4vtokElVyx2xUpYKshPfoww4eQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3hZLdnkGwo5abQg7i0gPKLLtqfBYEy6gK2VAG6S2m/4=;
 b=HKQNCEvbNAKXLSOZxWehRzPOozWPWENgE/7/2HmtehdNBOtcejLCPMwsClB7wO9UiEWDmqj+o3gjKFc60sO4vakjxroLhTaijIVZ18YSaezWVoHsqGSn+lgVe+OtA4cvf20KGkX6Ij05/70NnYw4F7b/X+qJMH2RW8Mt2CK/he78Ahvwzle5aNDQoyp/lPrY5alx2aVhtvHtIwig9s3lbpRVVI9jHosxP7zQqUpa9g5leuQdcEVsgQ3u4UDGxRhMlj38KnJZcF4nnipYv+xrgP53u+Gs//wtrajp+ZrOf/tO0cZtYAtELy/HIXIll64LxiTxPPICZPijNsz9Rdxi3A==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>
Subject: Re: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
Thread-Topic: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
Thread-Index: AQHcyClfuk/Yqk/9/E2oGahG1JP+sg==
Date: Mon, 11 May 2026 14:10:08 +0000
Message-ID: <877bparq9t.fsf@epam.com>
References: <cover.1775742115.git.mykyta_poturai@epam.com>
	<a0abd984989237d2f36e1628db577fb25af1cdbe.1775742115.git.mykyta_poturai@epam.com>
	<5efddecc-3665-4a53-9eaa-b117370cc0e4@suse.com>
	<5168207f-33ed-4fc4-918e-6c3b454b0efa@epam.com>
	<efb254c2-f52a-408d-b225-e4e03935d05e@suse.com>
	<d0916f22-b5c0-4c93-935c-4cbe17e626d4@epam.com>
	<e5844c28-aa68-4bf6-8287-a4ceeda3a1d2@suse.com>	<878q9vt0lg.fsf@epam.com>
	<e9610f70-85b8-44d9-8e13-da26d506d5b7@suse.com>
In-Reply-To: <e9610f70-85b8-44d9-8e13-da26d506d5b7@suse.com> (Jan Beulich's
	message of "Fri, 8 May 2026 07:52:04 +0200")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM6PR03MB6070:EE_|AM9PR03MB7850:EE_
x-ms-office365-filtering-correlation-id: 20a6b063-9825-4ca8-6df2-08deaf6701f6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|42112799006|376014|38070700021|11063799003|56012099003|22082099003|18002099003;
x-microsoft-antispam-message-info:
 BumeUh4gXdsJbG9Jvt+Ue/xAorBBQzej95d76VQBiu3fIatpPJRp1JAV9EbczCWu3NwlPnVVSRxuxFbryaIvGInEAmf31Tz6jTUNdgztXSKFNENTG8QL9/1xHPxe1O/yvAZoFu3V9PCAl5+rcYXKCqxltfboEU5qxIIzMj4gat31AXJZbuLsthLcqKHpLbQzih8x1ly6DIWpVbXoKl8Kj7xwA7/DCwGbcCVYCXxf8aOBwa3M31feo7wPZ4EPb4DiL/JMGw79rrE6Ebburw/FSYSprNJLgVoQ73zUz1LLXgKxkLqZ7bSQNw65832T5qm/fJncV/b3vfFvie6dRKdOv5SX1FqArfhlkeZmXudiB9ba25JEA87ozyr8YhGah60UiJf46kZWGcBmpJ1zye10tHUGUNNZQzyzrktk6smpGMFf/xH7BJ88foS4xkZdXimetw3FFKbA17DD/qpgX+sIotCzQEBqZqc7x8IDluvfTpPugSOPyMWAIqgQROLQa7qZeM89NLx17/V3hnoSfkuU7AbTJGasUwfniOVqvapeJdtIPKLnqV7mfhx1pFjGJLd6oKQFeDzQW7UyxECfYvdpY1n6pZ25Swu1iWXG4l6xKHnNDrlAzSCqLgE64AK0pYorJ0vQbcbJjF15V/zYemPIBVo2pH4cGQE/pSqEZQWJ5skbCMX9hUVsLWysYMGSxmtBa7Ik1fNhvKAJ1neR6O4mWZCe7RByHq78T0bxkA4fL0s/EEkiPMrZmsj+2huyEzYo
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB6070.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(42112799006)(376014)(38070700021)(11063799003)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?cvsKCl6bQruN9VJ5Jb38FyUkLClsbrY1euh/orfXaZuRhKMrt23Cta9REA?=
 =?iso-8859-1?Q?FMXdvF0Ls6C68US/JI0H+wHDwmKzCm1d0EW4KPqOX3+1DJh0IAjUqE07PO?=
 =?iso-8859-1?Q?+HJRvTp0TVqNPZczo60X3KumAe/S/L0zIGm0WSoIFtkHX0DAU1WmqLs7WX?=
 =?iso-8859-1?Q?enVGhXWgpH04yeMb+MUHkidI23k/dICCiRLqhj763Oo0FI+VodsnXOnpyU?=
 =?iso-8859-1?Q?Ax5Ps3WxNcm3rGC8zizg/D7LzPXS+1YmZvEzAsq1setGDbwJ7avr9ZXOAT?=
 =?iso-8859-1?Q?qCHiSI2ry7jvDFLIXEX3yZUDAfZCif7Iui0PjTLG1eHQ+9SdND/M31pw6S?=
 =?iso-8859-1?Q?5taKWDYqa/qeZzc1Z49NWmB8ymCiD6+Orn5+qJqas1C+TfWq1iv2KOC+xL?=
 =?iso-8859-1?Q?Eh9WZ2gwSvb4om495m5NEykSFEVPeoHvhgYf7H2tkbm2kc8UOMdmsywpdZ?=
 =?iso-8859-1?Q?m8zLJj16HYoT3wB52EUEkO/btBEU/C6U8H66x6zYzIJtI5VFO5JMeHmqcc?=
 =?iso-8859-1?Q?cLN2zMhD9svBZ79sUdZ0MtIcb1vSOzc81zpSXcljch75ugqawLk0VQnN5i?=
 =?iso-8859-1?Q?3cduoW2E8QUdTAjRZ8iQMiq7n+0q8WZ8gxvgLyMEMLNSj5kXwu1uUoOpVE?=
 =?iso-8859-1?Q?QsGIgTz8jWNno1W/5WALr4ADzTQzzhU+8BU8oqTwfLYRZ/FBFaDSGM/xvv?=
 =?iso-8859-1?Q?uDGkPboj3K4Sh6xUbJBGMY6MsKdP8haIZajZyE57ltgta4EHHKFJxWLu7d?=
 =?iso-8859-1?Q?3w22gra7nJJ49HoDqfvDYewpGSv3hmL/aO9n8/8MCVM0yIt71jM3jKCge2?=
 =?iso-8859-1?Q?5RFy+IYK1KA5F1gsE6mcKnYJilyLyvQIerdCWBt2hjp7btICMsmolcDqzm?=
 =?iso-8859-1?Q?frcAk176U7oqnltz9ml9uMhAGG1LbZXuiIDvREsRcJ5vjGqUswF/srQgaR?=
 =?iso-8859-1?Q?2Tp6oPQ/8kLpzGsEAfQi/kqFZMOx/Q5/Ev7C+nTtJm2Xdrj+GVw2pHhiw9?=
 =?iso-8859-1?Q?e++DY1sqvTUZD+hTHyTJY7XhgGBGP/H6Akmlyv83m2YB20xRy1ocwFZQQl?=
 =?iso-8859-1?Q?em4fdjQMuFxVaEIvXJ7Ms1Crwquw6sFy2Iz4R7pE9SCZD8c4YW9yAll69W?=
 =?iso-8859-1?Q?Hu3KAF49L9tLi4ht4wEHnmxB5Z9kH+YioXhIelk5ZLV8ooCF5dtiIkal1C?=
 =?iso-8859-1?Q?dyEV//Foc6dwAVe2VJxLIl2bAbMm1c7vLDbaX/bR/8DIn7UTtkHs3fkL3X?=
 =?iso-8859-1?Q?zJQrC3ua2KiFoN8isueBqKO51DLZISnQZjov7d29OrA4IIQd8pHEDoGyBd?=
 =?iso-8859-1?Q?wZlRCpHAlhAoOUGMVLF0H+HzpAgYK8Yo1wD23KUfCNs9lzoFKw/9sUA0Aj?=
 =?iso-8859-1?Q?NviSQ7UN42UB4dcIE9Wa44xbcF1sWVe25Xsm7r+nIx3uRlbHWuKoFxT+sH?=
 =?iso-8859-1?Q?xqxZJ3hgNHFbnfzgmVUXvbsMbm7j0Ef5ZxG7Kkmwp1chAdfTpgF2UB8oqk?=
 =?iso-8859-1?Q?Jr1utXRRNSclqSzIggbbDIv0r3eBH0UIfgyOWLNAuUusjemceWNbyuRJmB?=
 =?iso-8859-1?Q?PlsIdwRGg9llRamkKqThNCmj4/5VJMdZ6LENpV9loxTisvKb5ss87XxyG2?=
 =?iso-8859-1?Q?K/oD+thIT1RfL+hETeuIhbBYPeUM95CRY3qjihoLu7X5CkxgWqVQKbalhv?=
 =?iso-8859-1?Q?VF3STZbNao7fxFvWBsEmyHuYHVQdJ4np0fH1588JE/WSn7JPwAMn60LowV?=
 =?iso-8859-1?Q?j4iy6V9c7+Plkuiae7lT0Q9f53d4bn4iYYGrcnxOxyIaIlPVOyO0PQZWGf?=
 =?iso-8859-1?Q?ZiZfs0Lk1yS3/TRbHnytsMVfrzDeWFE=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB6070.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 20a6b063-9825-4ca8-6df2-08deaf6701f6
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 May 2026 14:10:08.2545
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: VOW8xu4AfxP0j6Cqf5LDcJBu4WK/OvgbtdijC4OcgXaWlSTFuUn1k2CRIHVx4U2kmTjOd3FewP3u6X2yCvYoOwmmQqwR7pFuUMSpSi53Yo4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7850
X-purgate-ID: tlsNG-720697/1778508610-8256B161-1303DAF6/0/0
X-purgate-type: clean
X-purgate-size: 4202

Hi Jan,

Jan Beulich <jbeulich@suse.com> writes:

> On 07.05.2026 22:40, Volodymyr Babchuk wrote:
>> Jan Beulich <jbeulich@suse.com> writes:
>>> On 06.05.2026 11:39, Mykyta Poturai wrote:
>>>> On 5/4/26 08:37, Jan Beulich wrote:
>>>>> On 23.04.2026 12:12, Mykyta Poturai wrote:
>>>>>> On 4/21/26 17:43, Jan Beulich wrote:
>>>>>>> On 09.04.2026 16:01, Mykyta Poturai wrote:
>>>>>>>> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>>>>>>
>>>>>>>> This code is expected to only be used by privileged domains,
>>>>>>>> unprivileged domains should not get access to the SR-IOV capabilit=
y.
>>>>>>>>
>>>>>>>> Implement RW handlers for PCI_SRIOV_CTRL register to dynamically
>>>>>>>> map/unmap VF BARS. Recalculate BAR sizes before mapping VFs to acc=
ount
>>>>>>>> for possible changes in the system page size register. Also force =
VFs to
>>>>>>>> always use emulated reads for command register, this is needed to
>>>>>>>> prevent some drivers accidentally unmapping BARs.
>>>>>>>
>>>>>>> This apparently refers to the change to vpci_init_header(). Writes =
are
>>>>>>> already intercepted. How would a read lead to accidental BAR unmap?=
 Even
>>>>>>> for writes I don't see how a VF driver could accidentally unmap BAR=
s, as
>>>>>>> the memory decode bit there is hardwired to 0.
>>>>>>>
>>>>>>>> Discovery of VFs is
>>>>>>>> done by Dom0, which must register them with Xen.
>>>>>>>
>>>>>>> If we intercept control register writes, why would we still require
>>>>>>> Dom0 to report the VFs that appear?
>>>>>>>
>>>>>>
>>>>>> Sorry, I don't understand this question. You specifically requested =
this
>>>>>> to be done this way in V2. Quoting your reply from V2 below.
>>>>>>
>>>>>>   > Aren't you effectively busy-waiting for these 100ms, by simply
>>>>>> returning "true"
>>>>>>   > from vpci_process_pending() until the time has passed? This imo =
is a
>>>>>> no-go. You
>>>>>>   > want to set a timer and put the vCPU to sleep, to wake it up aga=
in
>>>>>> when the
>>>>>>   > timer has expired. That'll then eliminate the need for the
>>>>>> not-so-nice patch 4.
>>>>>>
>>>>>>   > Question is whether we need to actually go this far (right away)=
. I
>>>>>> expect you
>>>>>>   > don't mean to hand PFs to DomU-s. As long as we keep them in the=
 hardware
>>>>>>   > domain, can't we trust it to set things up correctly, just like =
we
>>>>>> trust it in
>>>>>>   > a number of other aspects?
>>>>>
>>>>> How's any of this related to the question I raised here, or your repl=
y
>>>>> thereto? If we intercept PCI_SRIOV_CTRL, we know when VFs are created=
.
>>>>> Why still demand Dom0 to report them then?
>>>>>
>>>>
>>>> The spec states that VFs can take up to 100ms after the VF_ENABLE bit =
is=20
>>>> set to become alive. We discussed in the V2 that it is not acceptable =
to=20
>>>> do a required 100ms wait in Xen while blocking a domain. And not doing=
=20
>>>> that blocking would require some mechanism to only allow a domain to r=
un=20
>>>> for precisely 99(or more?)ms. You yourself suggested that we can trust=
=20
>>>> the hardware domain with registering VFs if we already trust it with=20
>>>> other PCI-related stuff. Did you change your mind, or am I completely=
=20
>>>> misunderstanding this question?
>>>
>>> No, I still think that we can trust hwdom enough. Nevertheless we shoul=
d
>>> aim at being independent of it where possible. And I seem to recall tha=
t
>>> I had also outlined an approach how to avoid spin-waiting for 100ms in
>>> the hypervisor.
>>=20
>> I want to clarify: you are telling that Xen should not wait for hwdom to
>> report VFs and instead create them by itself. Is this correct?
>
> If that's technically possible, yes.

Okay, so let's clear this. If I remember correct, you discussed this
with Mykyta in the previous version and suggested to put the vCPU to
sleep for 100ms. I don't think that this is a good idea, because guest
kernel will not be happy about that. So, IMO, it is better to just
allows the guest to tell Xen when VFs are ready.

Or maybe I am missing something and you had some another idea?

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Mon May 11 14:24:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 14:24:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306255.1578311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMRYL-0002e8-7V; Mon, 11 May 2026 14:24:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306255.1578311; Mon, 11 May 2026 14:24:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMRYL-0002e1-4b; Mon, 11 May 2026 14:24:13 +0000
Received: by outflank-mailman (input) for mailman id 1306255;
 Mon, 11 May 2026 14:24:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMRYK-0002dv-Gw
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 14:24:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMRYJ-006jwc-G8
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 16:24:11 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a01e679-5cb7-0a2a0a5109dd-0a2a4505baae-28
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 16:24:11 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a01e68b-aaa8-0a2a45050019-d155802eb863-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 16:24:11 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-488a88aeec9so49510335e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 07:24:11 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e6db171c9sm64927005e9.30.2026.05.11.07.24.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 07:24:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778509451; x=1779114251; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=1Qta2ghmQXIVYNmkq22xRyfJO4b8bpbFrkUtNMm7TrA=;
        b=oRMFq1In4AkblpH5cmYST+HlSBTWVZ8CUAJqmAwOwu+kYOg8RCDK2rNSOkIl7tOIk9
         8T79qJJclruTuW5uBCCtZ5mi6Vkxc/2hfgJR4/jUbRcEeYbVOslD5cCt1KVVq21r5QH2
         dG5ZPGENsmlnIWI0T0x7I9uOL2WpefKq6HyUaaulvXMm4dos3UlZNeqXZx8YJv7UQjX2
         rPZ3MqxJZgUva15wPKnY6Gkk7Ye/A+6lsw1dMz44+LP2q+5jH2gHZjMNNmK9i5kr92W6
         pl6HEwAzGoFsl/I8FW8rmMGvGbj6FLQZDNZY0IQs6rSVBH+2+GqNH+6FZab75e1tr3cA
         +rVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778509451; x=1779114251;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=1Qta2ghmQXIVYNmkq22xRyfJO4b8bpbFrkUtNMm7TrA=;
        b=FXvs2rbc0l7M0Tc9nVGSqhjfzO9WDAuhF6FKeSSY6+gOlpYSE4KBsvsjfm7TV2MOU3
         nctVBoWkcSH8B4IgTeRVM9hcwrO1fVNqWpaOSqo1xivXAyv3A2Zsd++xtDuCh0c5erZy
         Oxrs3DneJO2Ri8HoP9HnDp8kEau7YfPyxt6AkYh/ijuius7C6KBwLp/llRBxFZ6aMpkJ
         xcMLMMfcScmrb7Lgokrb7DFvi8m8RtcOslwqXjDIJ9Gkq5ilKCZIWP9JIcJawR0K34/O
         W/nn2GkApV/YNIe9JlycF7kL7LuzrMoNwAdwPpO5GqVhc85fiPEeRBPpS9Vtgk/KrqRj
         ozwA==
X-Forwarded-Encrypted: i=1; AFNElJ/SRr/RT0dcEcATGcwAkK2290dKgRwfnASDkh9NK0JnT52MpqqjRKx9EZBM/0OpxzvZYuMrS3uMghE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy44HNwq0EWsEcbWzSZ7aTIj/VaSFSv9tYIhNQxZRpC0REkV43E
	sh2cmRtgHSsq/daYlth3NUWhUFaec2tSGjmLUb13d5XVDz8r0uGUtFtA
X-Gm-Gg: Acq92OHLkAEtDxy7iiXQdLBrrxA+pdOMxIjBkKZGIM2mrL35hXAuel+yU4/yrtj6JF/
	yDO+zyURrgkk14Pkx4kfShzAMV7FgvreCKxPQA7bVb1K0JTvC/xKk8QjjQ/1JQo5A0Vz4mpOypK
	ILJ49tuwTMhmrj5NMbJcq9urFeVAtQawC4MYOpQVuYVSbEdF2kMp2YR4ZK/m9R6EdAwsyzkR2js
	tOMyslstQ/cJXc2/wx47rNGZXDRe5VXRAxmWJUmYdqh5mKHnBaqDb05xXzzX/j5ux5ii9EZKmjb
	CBxlQ9BDfDMXEFfYSo9bIIDsF+58TuinkQnlJCD2lF/ps+5GwgWw4D+4ozUpHQgzbTBkwyXjq3o
	7RvlupF9hPb0Ds7noUIN/lhE8UaOSRbMVLj8hq3ycMoIsK3+3CUIfN9dE1u7rVy1Dvx33W1O2x1
	9kyqxwxLi5eHXf5g85b1b+ft30WH3t0POdDY5i2Z4OSbMz3xFPIyGYReRwMBJQptHJLOseIbCQt
	hODdMlGX83ieA==
X-Received: by 2002:a05:600c:4e0d:b0:48a:5c23:cab with SMTP id 5b1f17b1804b1-48e70700e20mr168329405e9.19.1778509450820;
        Mon, 11 May 2026 07:24:10 -0700 (PDT)
Message-ID: <925577e8-4339-4917-98ef-bbe12a69c100@gmail.com>
Date: Mon, 11 May 2026 16:24:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Code freeze for 4.22 started on May 11, 2026
To: Jan Beulich <jbeulich@suse.com>
Cc: Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <e21070ac-3a84-4ad7-a4d1-9178d89c1435@gmail.com>
 <2a6117e6-e458-4818-9c22-0c356982eb59@suse.com>
 <58f80bf6-b9e0-42b8-9f84-831a1c546768@gmail.com>
 <4b0f55a1-1e9b-4ce1-b6b6-29b868d57e25@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <4b0f55a1-1e9b-4ce1-b6b6-29b868d57e25@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1778509451-E0063443-5B0516F8/10/73395122804
X-purgate-type: spam
X-purgate-size: 1249



On 5/11/26 3:45 PM, Jan Beulich wrote:
> On 11.05.2026 15:34, Oleksii Kurochko wrote:
>> On 5/11/26 11:41 AM, Jan Beulich wrote:
>>> On 11.05.2026 11:35, Oleksii Kurochko wrote:
>>>> I would like to inform you that Code freeze period is started and will
>>>> be until Fri Jun 05, 2026 (+4 weeks from Feature freeze).
>>>>
>>>> Bugfixes may continue to be accepted by maintainers without R-Ack.
>>>
>>> Gives me context to ask right away: "x86/mwait-idle: sync up with Linux
>>> 7.0-rc" has had a few small adjustments and hence would want re-posting.
>>> Question is: Does that even make sense at this point, i.e. would you
>>> give it a release-ack despite it not all being bug fixes?
>>
>> I don't see any Fixes: tag in the mentioned patch series and also based
>> on cover letter it doesn't really clear what this patch series is fixing.
>>
>> Could you please clarify?
> 
> It is "fixing" us lagging behind the Linux driver that ours was cloned
> from. Plus the series was posted well in time.

It was posted well in time but it wasn't committed before Code freeze 
started.

But considering that it is necessary for new CPUs (as Andrew C. 
mentioned in one of reply) we want to have that in release.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon May 11 14:36:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 14:36:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306266.1578319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMRjs-0004SO-7O; Mon, 11 May 2026 14:36:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306266.1578319; Mon, 11 May 2026 14:36:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMRjs-0004SH-3h; Mon, 11 May 2026 14:36:08 +0000
Received: by outflank-mailman (input) for mailman id 1306266;
 Mon, 11 May 2026 14:36:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e17775cf1000f373@swg.vates.tech>)
 id 1wMRjp-0004SB-Pr
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 14:36:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMRjo-00DSIM-WD
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 16:36:05 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e17775cf1000f373@swg.vates.tech>)
 id 6a01e952-e002-0a2a0a5209dd-0a2a450cc764-8
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 16:36:04 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e17775cf1000f373@swg.vates.tech>)
 id 6a01e954-62f1-0a2a450c0019-b9ff1c229467-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 16:36:04 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e17775cf1000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 11 May 2026 14:35:59 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id 4AE3586223;
 Mon, 11 May 2026 16:35:58 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=a0q201vIKf1vO7S42ZZHRgvkH9wSeEzbBYXM2JnybF8=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=V8MqBWm04AuDl1a1z51cnFDQt+J5C+n/jORdx/RAQe+2faalV6c01fsblUpIpQp48YD7s7Pb8
 IcHQVTTHHzBnau8FH18wUekMcTEAcwPth0XUOXC4CMsG7+Ao/GYxH7Ih2hsUIjxkSALZ5QaoNh8
 ryJBY+94Bf/nqT9BI+UuJtEJqstecQNve32DAnwKZi3NKKthbnt5BHPeD0C/qVhQ8OGDmDJ+JXv
 LYtzn5oMugsROh1cTpMdfqvT9Xyx0a/uKwp8hSPhsE3cVWDJ7biFb1HOt6EWH7QJx3V0Mpgmu33
 +v6kAk22eqNmeDuPCgrHocsVx/oYGmrZ0l+P9Rwhn5Lg==
X-Zone-Loop: 78f179093fe7b0610ca74ffcc80f43a459d16538e9c5
x-campaign-type: default
x-transaction-id: 54fdc653-9cd2-4b3b-93d9-8b7273cb7261
x-swg-uid: 01-7354f868-cbc0-4385-9139-e58603462f12
X-Mailer: Sweego
Message-ID:
 <1778510159.8631fc262581453bbf619ec5b2062170.19e17775cf1000f373@vates.tech>
x-swg-bid: 1778510159.8631fc262581453bbf619ec5b2062170.19e17775cf1000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Mon, 11 May 2026 16:35:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] nestedsvm: Clear GIF when injecting VMEXIT
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
References: <20260423161112.50221-1-ross.lagerwall@citrix.com>
 <1777481694.8631fc262581453bbf619ec5b2062170.19dda2a3d88000f373@vates.tech>
 <c41ff9d5-82ff-4a7e-bff3-85e866338897@citrix.com>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
Autocrypt: addr=teddy.astie@vates.tech; keydata=
 xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7LTBVHV/XO
 Zw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJT4ny+OGntnJntUoR
 KRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJAWicutjkkUgd28Bh6HV9EIumH
 tCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaT
 VqMdqul07o72m3eA2mf+LMu9a04FX/d4wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/
 EoucejoZ5SH49ksmVAmKOLktOaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+S
 PhHar7TPKjFz0G3DPNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89
 MXfQXZ3qt1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
 LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWjmoACGwME
 CwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNzuyOVCskwfUZPla6Z
 pd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp0x0HfuhcYfAYPR46XHTvjaJE
 v99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuROxdK8G+YHccJY8PvWSq2K2yiae2KGiAv
 1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhP
 eP3IdpfWc8cyRLXF06Rk46YMYCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcT
 UwgnYlFRk2FLq0QeKEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9
 Egr/Wmu3MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
 f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEMAKiQiZa3
 yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ3DbVf+en3/FvdVZg
 2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTmetSG5/52AjtmPFtlXAk0NmLv
 fJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0s3109sJeXT5ImVdphFs9cvyZyBT9t1Pb
 Rowv58EgV0zE4hbAeVkULAbxFV5b/ExTjjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKb
 Yu6NCfiHfEyB3Xyg9hfdrRgjMRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ov
 XoK4jm+Py0FiUGUaA6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/
 eVtR2Q1wZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
 IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWjmoACGwwA
 CgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiVoUiHYN5QwhnbZnsa
 JDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764QxyX6rld2f2RcWkDuBHun55ZWXj
 by8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk/dS0XTOQi2wVUb17sW/+ybCEokdVacZG
 zOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fuoGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+
 lOWSvdNHgoEkWR0RXBPQjnGmLKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/Off
 O485NOTKwGOxyWb006cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR
 8ULR9nX0LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
 x9fhaZEsniw8/bYgC3igkk5YJiOa
In-Reply-To: <c41ff9d5-82ff-4a7e-bff3-85e866338897@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------2tCv8lah157BJQF9rpGpL77U"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1778510158434
X-purgate-ID: tlsNG-d25034/1778510164-DBD7BCF5-553F3735/0/0
X-purgate-type: clean
X-purgate-size: 8354

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------2tCv8lah157BJQF9rpGpL77U
Content-Type: multipart/mixed; boundary="------------C0cURaa7BNCpW75c6NUlBXOP";
 protected-headers="v1"
From: Teddy Astie <teddy.astie@vates.tech>
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
Message-ID: <00bc6b62-3529-4b55-8626-d25ba9376bda@vates.tech>
Subject: Re: [PATCH] nestedsvm: Clear GIF when injecting VMEXIT
References: <20260423161112.50221-1-ross.lagerwall@citrix.com>
 <1777481694.8631fc262581453bbf619ec5b2062170.19dda2a3d88000f373@vates.tech>
 <c41ff9d5-82ff-4a7e-bff3-85e866338897@citrix.com>
In-Reply-To: <c41ff9d5-82ff-4a7e-bff3-85e866338897@citrix.com>

--------------C0cURaa7BNCpW75c6NUlBXOP
Content-Type: multipart/mixed; boundary="------------ZN9nz83x4Y6svk0UURO5xRNp"

--------------ZN9nz83x4Y6svk0UURO5xRNp
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

TGUgMDcvMDUvMjAyNiDDoCAxNTowMywgUm9zcyBMYWdlcndhbGwgYSDDqWNyaXTCoDoNCj4g
T24gNC8yOS8yNiA1OjU0IFBNLCBUZWRkeSBBc3RpZSB3cm90ZToNCj4+IExlIDIzLzA0LzIw
MjYgw6AgMTg6MTMsIFJvc3MgTGFnZXJ3YWxsIGEgw6ljcml0IDoNCj4+PiBJZiBMMSBleGVj
dXRlcyBWTVJVTiB3aXRoIHRoZSBHSUYgc2V0IGFuZCBpdCBmYWlscyBjb25zaXN0ZW5jeSBj
aGVja3MsDQo+Pj4gWGVuIHdpbGwgaW5qZWN0IGEgVk1FWElUIGFuZCBmYWlsIHRoZSBhc3Nl
cnQgY2hlY2tpbmcgdGhlIEdJRiBpcyANCj4+PiBjbGVhcmVkLg0KPj4+DQo+Pj4gSW5zdGVh
ZCwgY2xlYXIgdGhlIEdJRiB3aGVuIGluamVjdGluZyBhIFZNRVhJVCB0byBtYXRjaCB3aGF0
IGhhcmR3YXJlDQo+Pj4gZG9lcy4NCj4+Pg0KPj4+IEZpeGVzOiA5YTc3OWU0ZmMxNjEgKCJJ
bXBsZW1lbnQgU1ZNIHNwZWNpZmljIHBhcnQgZm9yIE5lc3RlZCANCj4+PiBWaXJ0dWFsaXph
dGlvbiIpDQo+Pj4gU2lnbmVkLW9mZi1ieTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3
YWxsQGNpdHJpeC5jb20+DQo+Pj4gLS0tDQo+Pj4gwqDCoCB4ZW4vYXJjaC94ODYvaHZtL3N2
bS9uZXN0ZWRzdm0uYyB8IDQgKystLQ0KPj4+IMKgwqAgMSBmaWxlIGNoYW5nZWQsIDIgaW5z
ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4+Pg0KPj4+IGRpZmYgLS1naXQgYS94ZW4v
YXJjaC94ODYvaHZtL3N2bS9uZXN0ZWRzdm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtLyAN
Cj4+PiBuZXN0ZWRzdm0uYw0KPj4+IGluZGV4IGVmNmZhNWQyM2I2Ny4uZjg5YjA4N2ExMTU1
IDEwMDY0NA0KPj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL25lc3RlZHN2bS5jDQo+
Pj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vbmVzdGVkc3ZtLmMNCj4+PiBAQCAtNzMz
LDkgKzczMyw5IEBAIG5zdm1fdmNwdV92bWV4aXRfaW5qZWN0KHN0cnVjdCB2Y3B1ICp2LCBz
dHJ1Y3QgDQo+Pj4gY3B1X3VzZXJfcmVncyAqcmVncywNCj4+PiDCoMKgwqDCoMKgwqAgc3Ry
dWN0IHZtY2Jfc3RydWN0ICp2bWNiID0gdi0+YXJjaC5odm0uc3ZtLnZtY2I7DQo+Pj4gwqDC
oMKgwqDCoMKgIGlmICggdm1jYi0+X3ZpbnRyLmZpZWxkcy52Z2lmX2VuYWJsZSApDQo+Pj4g
LcKgwqDCoMKgwqDCoMKgIEFTU0VSVCh2bWNiLT5fdmludHIuZmllbGRzLnZnaWYgPT0gMCk7
DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHZtY2ItPl92aW50ci5maWVsZHMudmdpZiA9IDA7DQo+
Pj4gwqDCoMKgwqDCoMKgIGVsc2UNCj4+PiAtwqDCoMKgwqDCoMKgwqAgQVNTRVJUKHN2bS0+
bnNfZ2lmID09IDApOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCBuZXN0ZWRzdm1fdmNwdV9jbGdp
KHYpOw0KPj4+IMKgwqDCoMKgwqDCoCBuc192bWNiID0gbnYtPm52X3Z2bWN4Ow0KPj4NCj4+
IExvb2tzIGdvb2QgdG8gbWUsIHRob3VnaCBJIHRoaW5rIHdlIGFyZSBoZXJlIGxvb2tpbmcg
dG8gbWFrZSBhICJndWVzdA0KPj4gQ0xHSSIgKGNsZWFyIEdJRiksIHNvIHRoZSB2R0lGIHNw
ZWNpZmljIGxvZ2ljIHNob3VsZCBiZSBjb2xsYXBzZWQgaW50bw0KPj4gbmVzdGVkc3ZtX3Zj
cHVfY2xnaSgpIGluc3RlYWQgb2YgaGF2aW5nIGl0IGFzIHRoZSBub24tdmdpZi1zdXBwb3J0
IGNhc2UuDQo+PiAoYXMgSUlVQywgdkdJRiBpcyBhIGhhcmR3YXJlIGFjY2VscmF0aW9uIGZv
ciBuZXN0ZWQgR0lGIGhhbmRsaW5nID8pDQo+IA0KPiBOb3QgMTAwJSBzdXJlIEkgZm9sbG93
IHlvdXIgcG9pbnQgaGVyZSBidXQgdjIgb2YgdGhpcyBzZXJpZXMgcmVtb3Zlcw0KPiBuZXN0
ZWRzdm1fdmNwdV9jbGdpKCkgZW50aXJlbHkuIERvZXMgdGhhdCBhZGRyZXNzIHlvdXIgY29u
Y2Vybj8NCj4gDQo+Pg0KPj4gKGFsc28gbWFraW5nIG1lIG5vdGljZSB0aGF0IHN2bV92bWV4
aXRfZG9fe3N0Z2ksY2xnaX0oKSBzZWVtcyB0byBsYWNrDQo+PiB2R0lGIHNwZWNpZmljIGxv
Z2ljKQ0KPj4NCj4gDQo+IElzbid0IHRoYXQgYnkgZGVzaWduPyBJZiB2R0lGIGlzIGVuYWJs
ZWQgdGhlIGhhcmR3YXJlIHNob3VsZCBoYW5kbGUNCj4gU1RHSS9DTEdJIHdpdGhvdXQgYSBW
TUVYSVQuDQo+IA0KDQpJIHRoaW5rIGF0IHNvbWUgcG9pbnQgaW4gdGhlIGZ1dHVyZSwgd2Ug
bWF5IG5lZWQgYSANCmBuZXN0ZWRzdm1fdmNwdV97c3RnaSxjbGdpfSgpYCBmdW5jdGlvbiwg
b3Igc29tZXRoaW5nIGluIHRoYXQgcmVnYXJkOyANCmUuZyBmb3IgZW11bGF0aW5nIHRoaXMg
aW5zdHJ1Y3Rpb24gb3V0c2lkZSBvZiBhIFNWTSBpbnRlcmNlcHQgcGF0aCAoeDg2IA0KZW11
bGF0b3IgYml0cyA/KS4gQXMgSSB0aGluayB0aGVyZSBhcmUgY2FzZXMgd2hlcmUgdGhlIGlu
c3RydWN0aW9uIGlzIA0Kbm90IGludGVyY2VwdGVkIGJ1dCBzdGlsbCBuZWVkcyB0byBiZSBl
bXVsYXRlZC4NCg0KU3VjaCBmdW5jdGlvbiB3b3VsZCBuZWVkIHRvIGtub3cgd2hldGhlciBv
ciBub3Qgd2UgdXNlIHZHSUYuDQoNCj4gUm9zcw0KPiANCg0KVGVkZHkNCg==
--------------ZN9nz83x4Y6svk0UURO5xRNp
Content-Type: application/pgp-keys; name="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Disposition: attachment; filename="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7L
TBVHV/XOZw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJ
T4ny+OGntnJntUoRKRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJA
WicutjkkUgd28Bh6HV9EIumHtCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO
8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaTVqMdqul07o72m3eA2mf+LMu9a04FX/d4
wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/EoucejoZ5SH49ksmVAmKOLkt
OaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+SPhHar7TPKjFz0G3D
PNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89MXfQXZ3q
t1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWj
moACGwMECwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNz
uyOVCskwfUZPla6Zpd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp
0x0HfuhcYfAYPR46XHTvjaJEv99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuR
OxdK8G+YHccJY8PvWSq2K2yiae2KGiAv1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50
wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhPeP3IdpfWc8cyRLXF06Rk46YM
YCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcTUwgnYlFRk2FLq0Qe
KEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9Egr/Wmu3
MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEM
AKiQiZa3yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ
3DbVf+en3/FvdVZg2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTm
etSG5/52AjtmPFtlXAk0NmLvfJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0
s3109sJeXT5ImVdphFs9cvyZyBT9t1PbRowv58EgV0zE4hbAeVkULAbxFV5b/ExT
jjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKbYu6NCfiHfEyB3Xyg9hfdrRgj
MRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ovXoK4jm+Py0FiUGUa
A6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/eVtR2Q1w
ZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWj
moACGwwACgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiV
oUiHYN5QwhnbZnsaJDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764Qxy
X6rld2f2RcWkDuBHun55ZWXjby8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk
/dS0XTOQi2wVUb17sW/+ybCEokdVacZGzOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fu
oGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+lOWSvdNHgoEkWR0RXBPQjnGm
LKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/OffO485NOTKwGOxyWb0
06cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR8ULR9nX0
LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
x9fhaZEsniw8/bYgC3igkk5YJiOa
=3DlUIA
-----END PGP PUBLIC KEY BLOCK-----

--------------ZN9nz83x4Y6svk0UURO5xRNp--

--------------C0cURaa7BNCpW75c6NUlBXOP--

--------------2tCv8lah157BJQF9rpGpL77U
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmoB6U4FAwAAAAAACgkQZg+p0QLLz9CH
RAv+Njhg4aoZOxwXzk43zNbO4ppsGiRoSFX2IgyZMRvCfZQslqwhqvNpkIvzSy79mMJTNwoNAyKm
t59yMNbl4VzprsYUiQpeDrFrXusbnItZp1c6tOyL2p82MKlA1ZeTl127s0fzzvjxFNi2fZXsQEQS
2gYU3u4qTb36NxR3xqnZsGvVGNLlh+AHqLJ0/bLZl3n/umSk6ZYbfgD1dJWv3l9acC+1wcRBj9qY
+zx7wTRmtyyVWGI9LlI/VSCgtjSqT0uDP/tGcoKlEcxc01vqKe0BXFM/0+2nwTG0dYwBZ0CF6Zif
CGqUujHFiRu31zGChiSO/xolsH8bznYKDsAzF2ualSVZD/ZcL/b9TyB2zZWCZaVqOE6cIMa0moDg
KhjjJ8qZ8T4IWO3wX6qbvWToC/cnE+bVTRanH6NePC4tiBuh6z1UN/cv2nnYS4INjAfNhaVK3fyu
Qnf9v68MjGDl5wDkuxAVlI4MN/BJloQ/g2H3rNfPsyFPE8bQxJqPkDG7UFPk
=G7NF
-----END PGP SIGNATURE-----

--------------2tCv8lah157BJQF9rpGpL77U--


From xen-devel-bounces@lists.xenproject.org Mon May 11 15:14:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 15:14:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306288.1578330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMSKr-0001gf-6Q; Mon, 11 May 2026 15:14:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306288.1578330; Mon, 11 May 2026 15:14:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMSKr-0001gY-1G; Mon, 11 May 2026 15:14:21 +0000
Received: by outflank-mailman (input) for mailman id 1306288;
 Mon, 11 May 2026 15:14:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wMSKo-0001gS-TM
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 15:14:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMSKo-007ZZn-9f
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 17:14:18 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a01f24a-5cb7-0a2a0a5109dd-0a2a4506c068-0
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 17:14:18 +0200
Received: from [40.107.201.54]
 (helo=CH4PR04CU002.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a01f247-7371-0a2a45060019-286bc936a6aa-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 17:14:17 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB5664.namprd03.prod.outlook.com (2603:10b6:a03:28f::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 15:14:13 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 15:14:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TjTSrFfZS2Z7/pqW4IurIGG/5O88Iekndg9JmbBunoI68rUyB68dO+rGHM97dq9catzT/D+qSux4W9LQUZl7rXymmA++R6Q58xD8rdMTvkpcWFrtqFKIZ/vwQbdAxI5wJorNFkBjUCv7hA9fktUoNGjI1NzyPmZkxu3VXcOth1Lo4fMVk1y9Kc0zXKtK7XUAjy7P9/zTIRyrtkJTBVCiOoVQyvlBfQW6TROyJZLJO3WwQcXYUO4sWwKygkONDQohhms3j3iezx4SJo5l5DrVUZ6hDPAxPxuKQsENnxn8V5z/Wm2DSTmzDj9PgXFUoxbq4rAGsa0wQIv2TAYxF+BgKQ==
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=M97IDBq+YnAUaXPWbaO956Apv6hCI5spQG7tyga0720=;
 b=tCcMwLEtXiIGtHImUT04s6u9DGfb5u7zj0j5tqxRc08xG6VnUnA4MPO5LX4EIYeUnwTXTj0m553iiRaVc/A0YvXSjAPgHVnOMXt6tLR5LtMQhSTYz72/F9dkq5Z7s2dffGSNYLVWeHciEdNtIa/saOZpTBh7y8XlWybUDxIO38kKkkZyblj0wtPzzpiyJ75P6TsgYuOKylU14gxi7BnD1tzx5Q9oTgq8+nZPjUHR4zEFanSIBqbLfgTKRgL3MPFNGvL0/xSqFNECVAm1ztKmalgPNxIRvXYM4XUpdZftvEfGclZq4j4FveF7wW67laGjsxEDm7mGr91PGvoIXHODuw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=M97IDBq+YnAUaXPWbaO956Apv6hCI5spQG7tyga0720=;
 b=AMlePjkA1obn+hBz/elmRTJaLq6cq0qmiVP6NHVUP6EqvDElqTUKdIcTs8EIrQNpTmoe9a/FzTsKJjN3GaAY31WDdGnrJBzqadgob0krHmtbdzmFdnmTnuSS44FMsaRv8CJSyjNcJn7RaXoXVluhvDllH7kvaVjt1z4Ra/IblaU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <7a834ada-c91b-4305-bed7-90e8b5331791@citrix.com>
Date: Mon, 11 May 2026 16:14:07 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH] nestedsvm: Clear GIF when injecting VMEXIT
To: Teddy Astie <teddy.astie@vates.tech>,
 Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260423161112.50221-1-ross.lagerwall@citrix.com>
 <1777481694.8631fc262581453bbf619ec5b2062170.19dda2a3d88000f373@vates.tech>
 <c41ff9d5-82ff-4a7e-bff3-85e866338897@citrix.com>
 <1778510159.8631fc262581453bbf619ec5b2062170.19e17775cf1000f373@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1778510159.8631fc262581453bbf619ec5b2062170.19e17775cf1000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0362.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18e::7) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ0PR03MB5664:EE_
X-MS-Office365-Filtering-Correlation-Id: 9686fc1b-da72-4672-8948-08deaf6ff48e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|3023799003|11063799003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	f4FEsAOPab3g5D0vIgkyRudkVnTTZjrdNCFHGiyTAuWLY94ERNmwve6p8LjGu+d4a/Fg3y0GIVyGe0QDwuxO7RVeYm0pXrJQh/eLXQNspR3m4ZZTCmSZE0zXc75cHjlmUh3AbLTXHCoucogj0xrYdUmIftozznKiKV5s1FAlHbXPAlI1tFm7nTxSK02ST6dwjaCt2YTJQFd10NZX+rzq6Vx1GivY0+LAvihK8VTRpdp7SJEICq/KJRTwKWvsJfMR4A1ZHH/ex6ddVVSSmAiy8ThPMxYrpjKnHTtN1to+XFy/A7yCgnXa5R7LlgyQc99Fy+/WqgAXuxoNHbkdhP3CyO/rEs6xtJOOEsexnfNvcOystTUAh6zTi1bfCfPkWu14WbY269fygFEo1/3yntc4zXpPf0n+x1x5S1bSYZJcYy8v4wwDcXv30d/qcuRGPWlfHIGGU18Cd3Mjy6dB5FtYQ0hmi48yiaiy6cJoQh+fdYfqGWlETonA/XSAPamgKiMyhde9Hd4veKiRPEdzq4mkvbsRnkdOsp+NuuKb6PML8vvCj324PU5X5XePSvfqEkH+RIzjzIocZcJVU+YxmjPDW3m9q/EDDXGTeJ8XZcql+wQCxAuT8Nm8ISVZklr9cxBK2O+mVRM8GtN8HtiucNlrLyDs3z9/Ti6Zp5HGh99qATWDb4PWQTO1W+zMBXVLUhgH
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(3023799003)(11063799003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OTlnV0l1emNqS24wdzRRZDFORlZjYkhIdU9kREdiSTJHVlQ2WGxVMEJxYk5X?=
 =?utf-8?B?MnM0MGREbWZ6T0NOYmJOVUxkbEM5R2JGcDdRSnpjMjU1VnRBVHBweWtVcTlh?=
 =?utf-8?B?Q3NJK1FvUEV2Ni96Q2JYbU04T20vZkhkaitJNE5QcURkOExlamY2a1dxZmJD?=
 =?utf-8?B?VUVWZSs5SS9CbG9ZV1hCM095UzlZT3JZVTRrZTZlc2g5UHJKS0ExeGUyTXFD?=
 =?utf-8?B?WkIyeTR5WTR0aThzN0lpUVlSbVVwdVFYZkxRQk1UMzFOMzZnZHNhN0EvbUYw?=
 =?utf-8?B?U3loaHVDWFBrWTB2UCtXdmpUWFJyTkh5dHJtN1d2K0ozSHZiUHlxeGU0MUlp?=
 =?utf-8?B?bTZzSGEwc0VURkRhdGNhSjRRSlhQKzUyRnl3NUlNalRid2ZGZXQ1bzdZalVP?=
 =?utf-8?B?MVFsWWdRTTBIQlNYU0drL1FVT2VmTk5OZzJjQThSTEVYM3FkT2o2ZmhRNVJF?=
 =?utf-8?B?aDVJRmlEREtsNHJFRTRVdmdQUlFmNmRhUnJZeUJHUWNNR3U1eThpc05xT25L?=
 =?utf-8?B?dlFJRzdUa1ovSFlndHBCMzdaNzcrWS9DM3MrY0pVeUJBa1pYRFZyLzRSSnVV?=
 =?utf-8?B?aDd5UlRjb3NpczZiT1UxcU4yMmRxbUFYc0EvSTluZC80MUZWT1BWLzNUblUr?=
 =?utf-8?B?RjhTaCtTa3A3Z012ZS9paktYaHFUNlhUbGxmM2l6QnlTbng5dE9yQXZxeUtx?=
 =?utf-8?B?ZVVuR2k5WEN6QVo5Qmk4M1J2a0NDYzdDNHd3NTJsTjYrMW0xVTYybk9vL3Rn?=
 =?utf-8?B?aFlQY3lyQ2ZtVGh2LzFxN3Izd2J0RFZsOXk1M2NGUjNOemkrWWU1WS9qQmpG?=
 =?utf-8?B?emszVklpeDF6L1JXTGZ2dEJQSThJOCtXMDNsaWFpcVNZYW1DY2VuQ0VoWm11?=
 =?utf-8?B?MW1wS2YzRGpQMjFKd2hsV1JqaXRlbnpzUWtKWXlJYURiVThvc3dnMTRvbjk5?=
 =?utf-8?B?T2FoMVhMcnVUQ2g4bW5zUHllekNoYVBybUNHdEphZEsxWmRJUXc5Yi9CdzJh?=
 =?utf-8?B?N3pNUGhmYWV4b3B4N3RlVnVBMFVVbjJiamhlS3dtQjNxMzFINVJnR0tiOTFp?=
 =?utf-8?B?cTRtaFlEY2R3a0ZkUFFFa3BxcXlZejl6bnFkeHpjWEJiWEtKQktYdU9mazFZ?=
 =?utf-8?B?WlFKRzRrYU1XZzQwZ09VK3A1aGRHcjNWRWkxWXdhc2YzYThGbmFHV3dETXpX?=
 =?utf-8?B?WlIxaHI4N1FCaDNLRlN4NUV0WW80NGdQOEFYODJXWFhZM2ptWi9uRExRMmpX?=
 =?utf-8?B?N2N4aVpvdlFLYzJqUFdBZ2R1eDEwcWNPWWFvY2dwUmo2UzVGdERYU2pKZVNG?=
 =?utf-8?B?a3N2V1NLUlB4ZVJxa2ZpRGdhSVhNaTVNMEF0WVp1YnJ3Qkt0OC9za0w5TVhj?=
 =?utf-8?B?NHdMVGhiUElFZEZGdnlOa1VZZkh5NlFmOGh0Ukt4amVqa0VOOGRhZC9VL2Jw?=
 =?utf-8?B?dVZ2NStjeVJxY2FxZEhDTnJ6YXR1S013VjJDcE9IazY3K0lrd0tVRVlVenBu?=
 =?utf-8?B?alZIQ1RYTXRsNXV1eWNzRnZpTTU4SkJEVzZndUhaanlXeEZ4cTRJeFF3Vnhh?=
 =?utf-8?B?N3VzdEg1dnJsVVpmOE1uYW5NWkRldnJBdmhpZjhlcTVPT3RIeFc1aHRGYllU?=
 =?utf-8?B?dDd3RG5uT3dsZ3IwWlNxbHhxY0FaMzBxQ1BESGpwTEZ3QzRZMHN1RlRtZ2tN?=
 =?utf-8?B?Q2FqVkRHNlluMmtuTk8zd21EUUdJZmF1aG5UWnNvUGtNbkV5ZjA3TzYyK1k3?=
 =?utf-8?B?ZmRWNVBZeU9tQjQ2ZmRTRzJHcUxKbThtZEpzQmpnMnk5UzBRUVVSbGZubEY0?=
 =?utf-8?B?SEJ0Ky9YeEdBbHFmcjZOajE3d2QwMjJ0RmdhTWMzd3VMaGpta1lFTVBOZlRm?=
 =?utf-8?B?TnhPb2dNYjBUT3dNZVdjcFBSdllkRHEvbmkybkJFWExFRUxBWVZvejFXeFc5?=
 =?utf-8?B?Q2pzUjJSQzlrcEl2WEREZmRUcEl6bDRvbWVVTitSQnp5enN1QjBJUzZ2UUto?=
 =?utf-8?B?MXN0ejBKRGo1eUZXL2x5NzEwa2t4YzQ4bjdqQU5BeldFeGhJeGVFNWpXWitC?=
 =?utf-8?B?c3UxZE83RzBhWmlmd09Ob0gvckhlNmxqUktURnlJNG1tb1JrWEdHelp6RGlD?=
 =?utf-8?B?d3BXTTJCeVRVWkI1dU5uSHhtTVJDdjdzTmF5MFFpZUhxUEV5RXRlQkpiYU5L?=
 =?utf-8?B?SXB5b1lCRVYwVWZEL3VZL2l6T2ozTFRNc1kzQjBJc1U5ZC9pYm91Z1luaVgw?=
 =?utf-8?B?RHZ5YnF2ZWUydXRyODN0ZUlsdXFEVzZiRDF0aUFZdDA4RlNJWmNXNTZMSVV3?=
 =?utf-8?B?Nkp4UVFrTTJGaVdwS0RSOHlXVWp1ZTlDSGt3dUUzOUk1WHJTVFJDTnZCbklU?=
 =?utf-8?Q?QOte5bxf8YddyNvk=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9686fc1b-da72-4672-8948-08deaf6ff48e
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 15:14:12.2858
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OvvHOKyDZAOb2XYXX9BN11GjdjcqDgdTPhm1dCdqOZ09P2IfSmVSfE2ky0cc4U4arC9pNpalftlr/qkY1WXU4JyRIBI1xfz5ZzMNQxEWAZg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5664
X-purgate-ID: tlsNG-16d1c6/1778512458-84158D75-D5E68047/0/0
X-purgate-type: clean
X-purgate-size: 3437

On 11/05/2026 3:35 pm, Teddy Astie wrote:
> Le 07/05/2026 à 15:03, Ross Lagerwall a écrit :
>> On 4/29/26 5:54 PM, Teddy Astie wrote:
>>> Le 23/04/2026 à 18:13, Ross Lagerwall a écrit :
>>>> If L1 executes VMRUN with the GIF set and it fails consistency checks,
>>>> Xen will inject a VMEXIT and fail the assert checking the GIF is
>>>> cleared.
>>>>
>>>> Instead, clear the GIF when injecting a VMEXIT to match what hardware
>>>> does.
>>>>
>>>> Fixes: 9a779e4fc161 ("Implement SVM specific part for Nested
>>>> Virtualization")
>>>> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
>>>> ---
>>>>    xen/arch/x86/hvm/svm/nestedsvm.c | 4 ++--
>>>>    1 file changed, 2 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c
>>>> b/xen/arch/x86/hvm/svm/ nestedsvm.c
>>>> index ef6fa5d23b67..f89b087a1155 100644
>>>> --- a/xen/arch/x86/hvm/svm/nestedsvm.c
>>>> +++ b/xen/arch/x86/hvm/svm/nestedsvm.c
>>>> @@ -733,9 +733,9 @@ nsvm_vcpu_vmexit_inject(struct vcpu *v, struct
>>>> cpu_user_regs *regs,
>>>>        struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
>>>>        if ( vmcb->_vintr.fields.vgif_enable )
>>>> -        ASSERT(vmcb->_vintr.fields.vgif == 0);
>>>> +        vmcb->_vintr.fields.vgif = 0;
>>>>        else
>>>> -        ASSERT(svm->ns_gif == 0);
>>>> +        nestedsvm_vcpu_clgi(v);
>>>>        ns_vmcb = nv->nv_vvmcx;
>>>
>>> Looks good to me, though I think we are here looking to make a "guest
>>> CLGI" (clear GIF), so the vGIF specific logic should be collapsed into
>>> nestedsvm_vcpu_clgi() instead of having it as the non-vgif-support
>>> case.
>>> (as IIUC, vGIF is a hardware accelration for nested GIF handling ?)
>>
>> Not 100% sure I follow your point here but v2 of this series removes
>> nestedsvm_vcpu_clgi() entirely. Does that address your concern?
>>
>>>
>>> (also making me notice that svm_vmexit_do_{stgi,clgi}() seems to lack
>>> vGIF specific logic)
>>>
>>
>> Isn't that by design? If vGIF is enabled the hardware should handle
>> STGI/CLGI without a VMEXIT.
>>
>
> I think at some point in the future, we may need a
> `nestedsvm_vcpu_{stgi,clgi}()` function, or something in that regard;
> e.g for emulating this instruction outside of a SVM intercept path
> (x86 emulator bits ?). As I think there are cases where the
> instruction is not intercepted but still needs to be emulated.
>
> Such function would need to know whether or not we use vGIF.

Yes we will (eventually) want emulation of STGI/CLGI.  It will
specifically not reintroduce nestedsvm_vcpu_{stgi,clgi}().

With introspection, we do get arbitrary instructions running through the
emulator.  This is why we take care to ensure that the emulator can cope
before a feature gets enabled generally.

For normal cases, we either have vGIF active and everything is handled
without VMExit, or we don't have vGIF active and everything hits the
intercept; this is not a split based on hardware support - it includes
both L0 and L1's configuration.

In fact, vGIF is a feature where on older hardware it's actually faster
for L0 to emulate it for L1, because a virtual VMExit/Entry and running
the L1 vmexit handler is much slower than L0 just emulating it and
re-entering L2 as if nothing had happened.  But that's an optimisation
for a later day.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon May 11 16:01:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 16:01:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306308.1578338 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMT3z-0000Y6-CH; Mon, 11 May 2026 16:00:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306308.1578338; Mon, 11 May 2026 16:00:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMT3z-0000Xz-8k; Mon, 11 May 2026 16:00:59 +0000
Received: by outflank-mailman (input) for mailman id 1306308;
 Mon, 11 May 2026 16:00:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <olekstysh@gmail.com>) id 1wMT3x-0000Xp-Rv
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 16:00:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMT3u-007hct-AW
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 18:00:54 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a01fd25-5cb7-0a2a0a5109dd-0a2a45019b44-18
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 18:00:54 +0200
Received: from [209.85.208.181] (helo=mail-lj1-f181.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a01fd35-c1f2-0a2a45010019-d155d0b5b19b-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 18:00:54 +0200
Received: by mail-lj1-f181.google.com with SMTP id
 38308e7fff4ca-39393c1b5aaso40018451fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 09:00:54 -0700 (PDT)
Received: from [10.17.80.122] (ll-74.141.223.85.sovam.net.ua. [85.223.141.74])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-393f6131c08sm28569531fa.30.2026.05.11.09.00.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 09:00:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778515253; x=1779120053; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=+ug0aCUEmDPdrZzEZL+s+UF5tIuI8VwfPl3ENnEI/bU=;
        b=Wxnbl9hnWsu9UWf3ytnnBycu+lhrFtPqhA1Oa3jPOWs73v5iFOFhTgnkklL3TZJnt8
         UY6DnHn3swnBjPr8lo4aEUabFqNXPswTegfANc709ovqliHgUBOPTK0XcXRqXlcHh0zp
         oDV1xh++GcucaRfAByYkXxepk8DyGNXBtIvrZ6ZneDSV403JWQtBuL3ksbZRr7quzhty
         wScZciAOMc0vbirQbiN1+MIXTwbfYnY8DlGANXkwriNlZKuj/ABFqmpS5i9SPxEnsVSI
         kWz+SvC8c/KftJSaQaFz3Pkkflr+heRBU61iDj8E0IJ0cFOUcsHUIY1IZVqmsXv5zm41
         cRwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778515253; x=1779120053;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=+ug0aCUEmDPdrZzEZL+s+UF5tIuI8VwfPl3ENnEI/bU=;
        b=JC1u4SEZUKKNnBWwHTRPX7ASAr4qCDNx4auPWjgzJ+gqnm3ozXbxY5t3uDgC2SYZxc
         j2Sd+YmTLLlLklva0JtIDkbDHlHliOKE15hWXIYTcWa7RgD3psK3tQWpOvAc8hyaetNU
         urKbfSTMfvNMympEEXMyqWsCpUAdIVxym4DPlSW3AAyVAIS4+Y17Ou8rgqHYqZGy4n0A
         PrP6Ffuatp0cQDiX5hYcc2QBkjDNzRkLrbIgM3z0Y6MbcalgW5ddePB3dlH9zweealaa
         49Alc+oTl5V36PGPF4HLcEPo4c7SbimMzTiCF/zf37Ih4CjERqHEuRIbHOVpUnnw2nFu
         jC7w==
X-Forwarded-Encrypted: i=1; AFNElJ8Lo0P1LoJ14JAMvOcTdvjUjwa4tiffBzlsOJw7zq7zjrXwEBnYOsq8CQRY7a+QrhY5I7atJweeFiE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyhbzWEaP8RP/8r3gkWOJikpP4y6ZVSd3DgGf82RAMqgBbD0w2s
	671+Dku+Sc5rlRD7H5evC3cdc9pwFicNQR13tbvEV1N0zXOVFncuQy7k
X-Gm-Gg: Acq92OHycYWSFmqQhylMKVoy3u5xJ0yedIJYBdrK62mFy28uNpKqbZ1zSMYgjV9DJy9
	F2pAleBfups842PnxTRINqI33GdL7UOwCZQFBT5dJTOavg5pVWSotZ3ZmM8OSA3eGPpTJjt4c34
	hDd6PZ9cLMpukHdEV4MJmZGxkYrs5vvRqC//UMGGNhIixtt9Xo9YuffPMCDPDvOJ6YOgNq46Gm/
	TzLrryoA8fRPmMGSGmKREB6rbg4AyIjxjhBHPYTLqMUegnvhiiAU/ZsDLqtvZSPC4CsNkaPPgjk
	dPfenjyK5RgXqTBP2zfS4j6GBdhCDEJZRbO25FLlF1JV/hurvC3AiRe7HePKeZ8uNxQ5l8sX/bN
	wy1cHp6w3jiIc2exNS4WlG4eAkFVnNFTXXVhcBCsbgv1CgCMwNOOvJ3Nrhc8YPxPKw+8bl8yiJ1
	Z8Ana7a8efdblRoIPrV5dZb5kUKhbb/xJB0WVXCALpIfW5ZI/To9kkz8fyuYw3kW+ZPA==
X-Received: by 2002:a2e:bc09:0:b0:393:bffa:d815 with SMTP id 38308e7fff4ca-393f4f1d3edmr38453991fa.21.1778515253066;
        Mon, 11 May 2026 09:00:53 -0700 (PDT)
Message-ID: <515377c0-2d8c-4069-86d0-e50674fefc68@gmail.com>
Date: Mon, 11 May 2026 19:00:50 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 11/13] xen/arm: Save/restore context on suspend/resume
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1775125380.git.mykola_kvach@epam.com>
 <f87a2bcb6b09e95e07e51c27541ad91406e849d1.1775125380.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <f87a2bcb6b09e95e07e51c27541ad91406e849d1.1775125380.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778515254-AC055FF4-57AE83BC/0/0
X-purgate-type: clean
X-purgate-size: 7202



On 4/2/26 13:45, Mykola Kvach wrote:

Hello Mykola

I did not spot any obvious issues with this patch. As far as I can tell, 
the save/restore register set appears to be complete and correct for the 
current codebase.

Just one observation: there is an API asymmetry between 
prepare_resume_ctx() and hyp_resume() (save uses pointer, restore 
hardcodes global) ...

> From: Mirela Simonovic <mirela.simonovic@aggios.com>
> 
> The context of CPU general purpose and system control registers must be
> saved on suspend and restored on resume. This is implemented in
> prepare_resume_ctx and before the return from the hyp_resume function.
> The prepare_resume_ctx must be invoked just before the PSCI system suspend
> call is issued to the ATF. The prepare_resume_ctx must return a non-zero
> value so that the calling 'if' statement evaluates to true, causing the
> system suspend to be invoked. Upon resume, the context saved on suspend
> will be restored, including the link register. Therefore, after
> restoring the context, the control flow will return to the address
> pointed to by the saved link register, which is the place from which
> prepare_resume_ctx was called. To ensure that the calling 'if' statement
> does not again evaluate to true and initiate system suspend, hyp_resume
> must return a zero value after restoring the context.
> 
> Note that the order of saving register context into cpu_context structure
> must match the order of restoring.
> 
> Support for ARM32 is not implemented. Instead, compilation fails with a
> build-time error if suspend is enabled for ARM32.
> 
> Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
> Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Changes in v8:
> - fix alignments in code
> 
> Changes in v7:
> - no changes
> ---
>   xen/arch/arm/Makefile              |  1 +
>   xen/arch/arm/arm64/head.S          | 90 +++++++++++++++++++++++++++++-
>   xen/arch/arm/include/asm/suspend.h | 26 +++++++++
>   xen/arch/arm/suspend.c             | 14 +++++
>   4 files changed, 130 insertions(+), 1 deletion(-)
>   create mode 100644 xen/arch/arm/suspend.c
> 
> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> index 69200b2728..c36158271a 100644
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -51,6 +51,7 @@ obj-y += setup.o
>   obj-y += shutdown.o
>   obj-y += smp.o
>   obj-y += smpboot.o
> +obj-$(CONFIG_SYSTEM_SUSPEND) += suspend.o
>   obj-$(CONFIG_SYSCTL) += sysctl.o
>   obj-y += time.o
>   obj-y += traps.o
> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> index 596e960152..2cb02ee314 100644
> --- a/xen/arch/arm/arm64/head.S
> +++ b/xen/arch/arm/arm64/head.S
> @@ -562,6 +562,52 @@ END(efi_xen_start)
>   #endif /* CONFIG_ARM_EFI */
>   
>   #ifdef CONFIG_SYSTEM_SUSPEND
> +/*
> + * int prepare_resume_ctx(struct cpu_context *ptr)
> + *
> + * x0 - pointer to the storage where callee's context will be saved

    ... the C signature takes a pointer (struct cpu_context *ptr) and 
the save path uses it, ...

> + *
> + * CPU context saved here will be restored on resume in hyp_resume function.
> + * prepare_resume_ctx shall return a non-zero value. Upon restoring context
> + * hyp_resume shall return value zero instead. From C code that invokes
> + * prepare_resume_ctx, the return value is interpreted to determine whether
> + * the context is saved (prepare_resume_ctx) or restored (hyp_resume).
> + */
> +FUNC(prepare_resume_ctx)
> +        /* Store callee-saved registers */
> +        stp   x19, x20, [x0], #16
> +        stp   x21, x22, [x0], #16
> +        stp   x23, x24, [x0], #16
> +        stp   x25, x26, [x0], #16
> +        stp   x27, x28, [x0], #16
> +        stp   x29, lr, [x0], #16
> +
> +        /* Store stack-pointer */
> +        mov   x2, sp
> +        str   x2, [x0], #8
> +
> +        /* Store system control registers */
> +        mrs   x2, VBAR_EL2
> +        str   x2, [x0], #8
> +        mrs   x2, VTCR_EL2
> +        str   x2, [x0], #8
> +        mrs   x2, VTTBR_EL2
> +        str   x2, [x0], #8
> +        mrs   x2, TPIDR_EL2
> +        str   x2, [x0], #8
> +        mrs   x2, MDCR_EL2
> +        str   x2, [x0], #8
> +        mrs   x2, HSTR_EL2
> +        str   x2, [x0], #8
> +        mrs   x2, CPTR_EL2
> +        str   x2, [x0], #8
> +        mrs   x2, HCR_EL2
> +        str   x2, [x0], #8
> +
> +        /* prepare_resume_ctx must return a non-zero value */
> +        mov   x0, #1
> +        ret
> +END(prepare_resume_ctx)
>   
>   FUNC(hyp_resume)
>           /* Initialize the UART if earlyprintk has been enabled. */
> @@ -580,7 +626,49 @@ FUNC(hyp_resume)
>           b     enable_secondary_cpu_mm
>   
>   mmu_resumed:
> -        b .
> +        /* Now we can access the cpu_context, so restore the context here */
> +        ldr   x0, =cpu_context

    ... but the restore path hardcodes =cpu_context, ignoring whatever 
pointer was originally passed. If a caller were to pass anything other 
than &cpu_context, the resume would load from the wrong location. Since 
the sole call site does pass &cpu_context (called from system_suspend() 
in the last patch), this works correctly today — but the API is somewhat 
misleading.

I might be missing something, but why not make prepare_resume_ctx() take 
no arguments and use =cpu_context directly inside the assembly? That way 
the save and restore paths would both use the same global, and the API 
would not be misleading.

> +
> +        /* Restore callee-saved registers */
> +        ldp   x19, x20, [x0], #16
> +        ldp   x21, x22, [x0], #16
> +        ldp   x23, x24, [x0], #16
> +        ldp   x25, x26, [x0], #16
> +        ldp   x27, x28, [x0], #16
> +        ldp   x29, lr, [x0], #16
> +
> +        /* Restore stack pointer */
> +        ldr   x2, [x0], #8
> +        mov   sp, x2
> +
> +        /* Restore system control registers */
> +        ldr   x2, [x0], #8
> +        msr   VBAR_EL2, x2
> +        ldr   x2, [x0], #8
> +        msr   VTCR_EL2, x2
> +        ldr   x2, [x0], #8
> +        msr   VTTBR_EL2, x2
> +        ldr   x2, [x0], #8
> +        msr   TPIDR_EL2, x2
> +        ldr   x2, [x0], #8
> +        msr   MDCR_EL2, x2
> +        ldr   x2, [x0], #8
> +        msr   HSTR_EL2, x2
> +        ldr   x2, [x0], #8
> +        msr   CPTR_EL2, x2
> +        ldr   x2, [x0], #8
> +        msr   HCR_EL2, x2
> +        isb
> +
> +        /*
> +         * Since context is restored return from this function will appear
> +         * as return from prepare_resume_ctx. To distinguish a return from
> +         * prepare_resume_ctx which is called upon finalizing the suspend,
> +         * as opposed to return from this function which executes on resume,
> +         * we need to return zero value here.
> +         */
> +        mov   x0, #0
> +        ret
>   END(hyp_resume)
>   
>   #endif /* CONFIG_SYSTEM_SUSPEND */


[snip]




From xen-devel-bounces@lists.xenproject.org Mon May 11 16:11:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 16:11:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306319.1578347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMTE2-0002Ju-9s; Mon, 11 May 2026 16:11:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306319.1578347; Mon, 11 May 2026 16:11:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMTE2-0002Jn-6l; Mon, 11 May 2026 16:11:22 +0000
Received: by outflank-mailman (input) for mailman id 1306319;
 Mon, 11 May 2026 16:11:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <olekstysh@gmail.com>) id 1wMTE0-0002Jf-VY
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 16:11:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMTE0-006ykw-1o
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 18:11:20 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a01ff99-bab6-0a2a0a5309dd-0a2a4504e8f0-28
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 18:11:20 +0200
Received: from [209.85.167.48] (helo=mail-lf1-f48.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a01ffa7-1dec-0a2a45040019-d155a730dd6d-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 18:11:19 +0200
Received: by mail-lf1-f48.google.com with SMTP id
 2adb3069b0e04-5a8cb92f26aso1217441e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 09:11:19 -0700 (PDT)
Received: from [10.17.80.122] (ll-74.141.223.85.sovam.net.ua. [85.223.141.74])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a8a956606fsm2729763e87.60.2026.05.11.09.11.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 09:11:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778515879; x=1779120679; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Sls1bHMvWLGjROEhjj794p0jW0oEgupA7PELvWg6QEo=;
        b=E7+Ldo0P8dunEG3fGto7rH9E4gvzoctBQMNXNPNK/9gDSRrqM9qUHU1Z67kRuZNECF
         5yOHCa3RU4VNG5F2uW/Sbs5oreVx/zMReAF1J/XKK0SSzvbZivtO45iNXkQlDmlo2GNj
         EMFMev5c2GLlGlo3C3jNrEq+s4tMGXERKNynCROeRLs4XKNK72/zM5uoeqKi5y8VPEgD
         MhreLSw9p4JZAqJ5+zagvNRaaOezyOOdJOqe1/xKge3MOhWa3/QIVG85p4PCresFLk2U
         hr99TSKRSi2BYBP5QtNY6NDgK+c+kWLIj/hAjq00TQqDf2Ybh7OB3CFzNVFyG0Xb/Suc
         ArGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778515879; x=1779120679;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Sls1bHMvWLGjROEhjj794p0jW0oEgupA7PELvWg6QEo=;
        b=A0FAAzYs+s9QlIXuynN0+syA1dAKRHCP6orEqZEzQ6Vm++FFYXaUUoa2UlIx2TYTGG
         x641wWWGYmNk4i2BRtcddkYSJZCTcPlgPSnOyG36YWe1zAfhZb5hYsBfYUZxx6eF9dBs
         4/3EcqlERcqXwLwlATXfS0VKmNBF1TD2tFsiVpkxVlwLCRQK0N4vVlmJOrNl0DrvQofL
         akVezXWJogL/YQBpOIPaGRxEtKjBCMGRZZ62uuZZGxdRdg/ev/2l9pqjjZ/oW/hXnq4u
         +wxUKRg8YcsRXJ1ZU5YAfmhy2xcLQP5WEzJgv3xNDQm8ck3cuWjmAH0Yu5lElTl/v8TE
         Xw5g==
X-Forwarded-Encrypted: i=1; AFNElJ/Cm7jE1fNW1seFIlOAjPzlQVVYHB/FcXbRdPx5HaXouvBl9RhFv4IMrwgz6jZXz+sV7SS+UqY6HvU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzMTqjl5sopHId+c7Zkge/bCSfmDdVF2lkJynRw83T+HIv9yo5S
	NDS/e+N0JnAK7hcCIw6pJ4pDhyKw9ojygxEECfHg4mSA9yJ13Hx/c4aq
X-Gm-Gg: Acq92OEVLaJjUUDyrvr9ksrl2GCCgkb7Pl6mF/mrZNts+O9MvYcj8XvRanTrRaQgv5A
	6fEd+EgwI2P4O4Uyj9jjqlEtS8k7HlfN4ZZbH1aXIEh5ZqzS/hErbHw6/U2Nv0A83XPVLIItI+O
	97dFJAsLpiVZsG2OqlZh1xVdhISlqyaWah+6pE1amzzDj5IW5Cwyh04VSihH3pfb3dAZEP71VzV
	rLFlSJK33PJGx20GsdLhed29AZwJe+bZxsjkf/fUP7OBu9uzHIrQEqk7/CDF/QIqz7WIpv4qAm4
	BM8x7+NKeGujfSTUxZI4yfNpwmT9T6hEV5JajJanwIS271DQVmp12yKj3vY1nJD50XGpoGvESPy
	pue9yj/m1J/gsTXYCyhRK9bZr7wZaSDr7wRfZTK+ChsO4lbIAZbE4uSGaFAhFm3pUZKi0jcnC8l
	rlYhCgAaRLUjSwUysqF0bSiXGhQuWKJnJjgenJcc7H0gjAOf0iSCe+x1Y=
X-Received: by 2002:a05:6512:3188:b0:5a3:f2ed:87cd with SMTP id 2adb3069b0e04-5a887adfccemr9511589e87.10.1778515878947;
        Mon, 11 May 2026 09:11:18 -0700 (PDT)
Message-ID: <aa86b867-417c-4dbb-a5ac-aea9910369ce@gmail.com>
Date: Mon, 11 May 2026 19:11:15 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 10/13] xen/arm: Resume memory management on Xen resume
To: Mykola Kvach <xakep.amatop@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Mykola Kvach <Mykola_Kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1775125380.git.mykola_kvach@epam.com>
 <02b55a02f329d09c9f8b15d97ca9176b3c33017a.1775125380.git.mykola_kvach@epam.com>
 <873402ub63.fsf@epam.com>
 <CAGeoDV8KppmniGEtRzCeHMLuVdXD-2bRXa_CeOPh8P9xPjiCTg@mail.gmail.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <CAGeoDV8KppmniGEtRzCeHMLuVdXD-2bRXa_CeOPh8P9xPjiCTg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1778515879-42F653FF-4178308E/0/0
X-purgate-type: clean
X-purgate-size: 2925



On 5/8/26 23:59, Mykola Kvach wrote:

Hello Mykola

> Hi Volodymyr,
> 
> Thank you for the feedback.
> 
> On Fri, May 8, 2026 at 1:06 AM Volodymyr Babchuk
> <Volodymyr_Babchuk@epam.com> wrote:
>>
>> Hi Mykola,
>>
>> Mykola Kvach <xakep.amatop@gmail.com> writes:
>>
>>> From: Mirela Simonovic <mirela.simonovic@aggios.com>
>>>
>>> The MMU must be enabled during the resume path before restoring context,
>>> as virtual addresses are used to access the saved context data.
>>>
>>
>> I agree with Luca, this patch does not makes sense as is. I don't see
>> why it should be separated from the rest of the resume path that is
>> added in the next patch
> 
> Ack. I'll combine this with the next patch in v9.
> 
> Best regards,
> Mykola
> 
>>
>>> This patch adds MMU setup during resume by reusing the existing
>>> enable_secondary_cpu_mm function, which enables data cache and the MMU.
>>> Before the MMU is enabled, the content of TTBR0_EL2 is changed to point
>>> to init_ttbr (page tables used at runtime).
>>>
>>> Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
>>> Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
>>> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
>>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>>> ---
>>> Changes in v7:
>>> - no functional changes, just moved commit
>>> ---
>>>   xen/arch/arm/arm64/head.S | 24 ++++++++++++++++++++++++
>>>   1 file changed, 24 insertions(+)
>>>
>>> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
>>> index 72c7b24498..596e960152 100644
>>> --- a/xen/arch/arm/arm64/head.S
>>> +++ b/xen/arch/arm/arm64/head.S
>>> @@ -561,6 +561,30 @@ END(efi_xen_start)
>>>
>>>   #endif /* CONFIG_ARM_EFI */
>>>
>>> +#ifdef CONFIG_SYSTEM_SUSPEND
>>> +
>>> +FUNC(hyp_resume)
>>> +        /* Initialize the UART if earlyprintk has been enabled. */
>>> +#ifdef CONFIG_EARLY_PRINTK
>>> +        bl    init_uart
>>> +#endif
>>> +        PRINT_ID("- Xen resuming -\r\n")
>>> +
>>> +        bl    check_cpu_mode
>>> +        bl    cpu_init
>>> +
>>> +        ldr   x0, =start
>>> +        adr   x20, start             /* x20 := paddr (start) */
>>> +        sub   x20, x20, x0           /* x20 := phys-offset */
>>> +        ldr   lr, =mmu_resumed
>>> +        b     enable_secondary_cpu_mm
>>> +
>>> +mmu_resumed:
>>> +        b .

I also think this patch would be better squashed with the next one, as 
they are tightly coupled.

During the review of patch 11, I had to switch between patches 10 and 11 
several times to understand the full context—patch 10 sets up hyp_resume 
with a placeholder (b .), and patch 11 immediately fills in the actual 
context restore.


>>> +END(hyp_resume)
>>> +
>>> +#endif /* CONFIG_SYSTEM_SUSPEND */
>>> +
>>>   /*
>>>    * Local variables:
>>>    * mode: ASM
>>
>> --
>> WBR, Volodymyr
> 



From xen-devel-bounces@lists.xenproject.org Mon May 11 18:52:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 18:52:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306366.1578356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMVjR-0005wK-9b; Mon, 11 May 2026 18:51:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306366.1578356; Mon, 11 May 2026 18:51:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMVjR-0005w4-3t; Mon, 11 May 2026 18:51:57 +0000
Received: by outflank-mailman (input) for mailman id 1306366;
 Mon, 11 May 2026 18:51:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wMVjP-0005vy-HR
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 18:51:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMVjO-007EpK-RG
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 20:51:54 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a022540-bab6-0a2a0a5309dd-0a2a4501d11c-26
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 20:51:54 +0200
Received: from [52.101.85.34]
 (helo=BYAPR05CU005.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a022548-c1f2-0a2a45010019-346555228de1-4
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 20:51:54 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH5PR03MB7792.namprd03.prod.outlook.com (2603:10b6:610:215::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 18:51:50 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 18:51:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=siJmZm/InMatD5Yx8d73HyB9uHUQmtN6b0Qwmc62DtAIkwMtiTs+vpiqc6fOH87NEO2ymH46wPfEyvUk4icsrA5yC0BbfTNhUEtHB4FCYNTBWYD5mDFiJODdtDO2gOB5+FQRzBMGmkMQKIhhGxwL4NXctaegeIORTaBhPVhoexhk2PHvMZWxrWJQT00Rhx8pTDIBWDjfAHQwSVH80FkVSPJV5qua3tExA7A6rik1+V8MdP3nMY8qSh5HA5wDQC05GroglWDmqwvFjAiEn4hkpvphSD7xvzfk59Z+7No0pNxwGVq4biFAVUrfd20C+1eXNAlzxEmF71IdDuy/ZaCJWQ==
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=RWhMxsqM5QCJaP97OCbM04Lq6/lCSArZnYYo/iyvrYk=;
 b=v6rVugydnnmmohOFkO41Gds7KlPmAu6neFbGWf2h7/z1WD4vGaFjtCst/TzhhwOEUuR6053Xg92YfqLX2J/WoW8YOxF/WnC/VEEB/oxCgY4mVnhtDsVkSZ8wcPmiukGtns+im8C9S8enPqDWqBspqqxXUPh+Fnvcf7Cb3JyG0KmqsTzP56q2mEdYm4jo2gJJ5vRwhTlqpyoUYHayFYWOw20DW4eoRwdVBEuwvVGdgjxH6xeX/Sdel8RY+IEvExaciPeodER6isFlSfodQ9aqibsUiHwpPpzVTrqu03ZePG3+pQmVV4J7Gl54ASntOfa0GxPVnIarvCAp7AWkjxMBCw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RWhMxsqM5QCJaP97OCbM04Lq6/lCSArZnYYo/iyvrYk=;
 b=FN1IIq+c60Vb05MsQcPYQFIUBRA8dXnQCewMtdNvwMed997jAtz8FRNWHJWixlu35hPahBN9I+XyCULj6fLOhUpAJgdBCqkaEOYBllw6S6HlHDK5QB6BScwHZT3cJ+u19sUd3UqwluNfOqCZaVyG10q97TiJLlpwJAGr+oeoQqs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v2] x86/dom0: enable pf-fixup by default for PVH dom0
Date: Mon, 11 May 2026 20:51:45 +0200
Message-ID: <20260511185145.23750-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.53.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA2P292CA0002.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:1::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH5PR03MB7792:EE_
X-MS-Office365-Filtering-Correlation-Id: 640db228-2350-4255-abb7-08deaf8e5c38
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|3023799003|11063799003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	43QlVrp95OuIp9DciDZpepq3tuwmRnVaLKD15xv2wTjrIJZpGchBmFG0RwRkhq8oyXbXrBphPOewE9VD8J7d+WtLJiXCOzVsnWenjLG0MDKmwO5HLOVkMKtXF2PbDHxdEBjsqicFq3t/vvKh+m+C0dhiVASKxY9279n7YhaBeqUQH08Q9WC0dnyIKbo4hTiNaFpRizjaWKZf8XQtxKJaFdVfJcHFRonnyqpY8Z+nC2NHa9yhrYuqTTsVrW2o6g8L1ZYAsbX5ewsSJAVXrT8k0IoSWDAk3nPyrIkndIRAScnWPbicE11aqYVssQPa5CEf4AOtpNnGqb3OykxrTdAFUyZbTxu4y2+YJWPHmReBO7YE09j1mWzzFGodE4MWHBJGZLUA9hd5LVcbsuTGAT4mP+xm6/9NjPRRvYeWYy2kduygL+oyScm2N8wY0EGirCpCerJzFog7nEw2Cl+f+Tg3ojH1FszH4GZ+zkGUQhoRzl7+W7PgwKQ+BKpM2OD+JfPql3yV57M0SCZ91EneT/jchYwrlH1xYN9OmI6GuHSAVQ0uotHaYwjMiIb08oOKnOhtYNSC8DT/z7KYh6zYIiXeCr8CCECJx7SMnRmFUafW/cxntT+4/1GcykYgIa80McQzNRzawIOkJhL3d2U1PewXDw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(3023799003)(11063799003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dWtOYkVYeEsyMHcxKy9rUnZyWUxHZlZ2Z1V5ekxKTzlDRWVrbHhSbWg0akVx?=
 =?utf-8?B?TDlVLytualdrR1RwcVlPYUREK2V4eDBDRDBlQ3NWR2lLdiszd0dvblhzRnI0?=
 =?utf-8?B?MGgvWVAzM1ozYlpOMVNqbnVCOWU2SG1FZDNxR2NFWmJmRE1zY21tNmZNdHlp?=
 =?utf-8?B?aW1DM3g4MDZXc2t5QTRDQXEwU3Y0VklZeWVjY21KQUFmSGlNeVFiS2xTYjdH?=
 =?utf-8?B?YmJjaWh4NUhhNU10UzZSbCtKZGFVdGVFbncxaWdHbkJuK0EzSEsrVk9IWlhy?=
 =?utf-8?B?MG5SUU5neFl3TVBhRXBpc25hOHhPaURBRnlCS2E2V0kxZG93eHJBY0FiaEc1?=
 =?utf-8?B?OENFSmRic3V6RmV4V2VmZ2FVNjVCQTdtaHpEcUNtUG5lZHdFMFVpZG5SSGd6?=
 =?utf-8?B?emtDZGFmYWpVL1RDUVJzc21meENTUUxpbklGNlpuU2d5WEVhT0JDOXhub3lB?=
 =?utf-8?B?RVNHNWk2R1dkSUxnd2JnU3R5OEcvZkdMcXJUR2ljc04xKzcwTnpHdkNOZVo5?=
 =?utf-8?B?RmJ0UXd0ZURWeG5vMDhwQ3VPNXlNM3o5WGpBb2pCcCs1WWFGQk1sVkQ5bDBy?=
 =?utf-8?B?T0QydGFabVZjL25OTWdnOEFFVldPNnlsUXhVV2RxY1dZRjhDMEZ0akNPRE5R?=
 =?utf-8?B?c2hWV0JHRnpMeDRzM3Z2YXlHeVBERkhnczJzZ0VEemNyTVNOdnpKODBhaVlz?=
 =?utf-8?B?ZTZpMW1nVktIeUJXQ2lOcC9XZ1YzUVozYk9CUGZ1U3FhSlJQRjNlZ0Y0eUNX?=
 =?utf-8?B?TlFBNUxxSVpKajVPNDhWbXVpUzBNbFU3cDJpa213YTRtZFZWSm4zNkxseGFL?=
 =?utf-8?B?UktjRHJHVmNiL09UMWxuc3A2aXY5cWlCWGg5dUFWZHZkSGUzUUtqUGx5a2ho?=
 =?utf-8?B?c3Z1U3dZWGd0TVErbng4SE9IcmcyN3VzdkhIblZlN1c2UHg3MDkyYjNUZGFz?=
 =?utf-8?B?RVFHUnlyR3FKaS9SL05JOWpqZjMvKzBQSGFYNjAxNmpmWm81aDJ6ZGNBbGpH?=
 =?utf-8?B?OXJZUlVFL3lkNHhOYWtjU08vTk9uZEY4bXppajR2MXRtZ3hnYkxVTktncTZE?=
 =?utf-8?B?MTFFbDMrNzNYVlJ2NENHOWV2U3VES3F3cmJBUnRjMllaQWJVOE9CQXo2cUkw?=
 =?utf-8?B?TDg5WjNyOFhXaEFHblBJT04zUys2cDhZR0NiMFhZaFUyQS9YUmF6TnJGYnN3?=
 =?utf-8?B?dzJUbEF3RHVtbzlYTUlvZ0JZRCs5WHByNnRGR29SU3dUZlJVR1dPaEFOTWRk?=
 =?utf-8?B?M00ySkFSVXh3NVo4VHd2Y0pvLzcySVB2OVJ0MmxDV2kxQXZ3SGdJOTZ6dWUy?=
 =?utf-8?B?eC9reUlSN0VETm5NbE9mL21QaC8rYUtDd0lxSU5YdTJRRDFZTGZ1TUJnMnJD?=
 =?utf-8?B?NVlxbENVRzNhTWZoZldOVk1rNlJZODhGTmFmeFFkRFhudjBkZUU2TnRFYmVn?=
 =?utf-8?B?UU92OXJFbmFzaTA5RStqZUJRc1E1dnd6aGpBYnF4WjhrdmV0MHljeDZBR3Rp?=
 =?utf-8?B?TDA3aHpmaGRKZXlWemdmZUFaeFZxZi91T0pXbTd3VHlxM1c4RUZKNGJjTjVx?=
 =?utf-8?B?V04wYnA4UnVhWE5Gd1cvcFBnK2N3bE9scWtCa1NOYTdLYnBNYURJaVlEaGNl?=
 =?utf-8?B?N2UyZ1Q1S00rRW5CZzhHRTlBMnpPNFIyaTlLTnFZbmdReTlsQ0FsZFVwME41?=
 =?utf-8?B?QWFNYytKQmdJaVY1K3FUL2hRMkppS2NEN0IrL0dJanlXU3VzUGtEbmxXaVUv?=
 =?utf-8?B?RHRzTFE1UitBQ29sZVVTMFhnSGJIN1d0ZjQ4dVRuQTVtV0VsVlNKQVN4V2da?=
 =?utf-8?B?bXZGT09sWDBIUDBwRzhNWko5eFQ1TFpSN282OElTcURVTDl0RDI4QjdLdXdM?=
 =?utf-8?B?N21UTXZMMjB4MTMrZ1BReUpZaG9DM3BWSm9yUVBMTmxhSnBiOHF5a0k3UVNm?=
 =?utf-8?B?WW52b1hQTTVLOC9kUDJlUVRYamRkTkN2bEZkWktCa1hCdW1paEhyWFcycW9l?=
 =?utf-8?B?Ry9VTysyYVpwZUNCL3Yxd0YrYS9tSXhuQ0NXV09WVWc1OGJvREUvTm9uOG4x?=
 =?utf-8?B?Sy81clVaSlhhTzhCaE5KcUlsTDRvK1JFcTRwZmJtVFpyRVZGSzRpdkUrSjJV?=
 =?utf-8?B?YmVvTWh5QnhCZjBBSFJyempQZktpYjBwQWI4a0l2b01QK0RnSmlyL2F4alla?=
 =?utf-8?B?dVZRQ0FKN09BOThXcEFVWUh4VSsyT05oSFFTWngzVW1YQUlORE5lM0ZFbHd6?=
 =?utf-8?B?V2dHcStFU1FsRUlOSlZYczc4TjYrME9iTlhCOVdFVXFGd0dMY2Y4WjVZS1ZP?=
 =?utf-8?B?WDNqMVhqUkpJNzJGcExDa2hmYUhkU0lHWVpJTlAxV3drVnA3WHE2dz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 640db228-2350-4255-abb7-08deaf8e5c38
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 18:51:50.2025
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: i0/APC6TX+xAS+anpyyMhVlEVqQFYz9ul1TrRIFSbRw2qsUs+Jnc/AC8Fs5PODVSBNt+gyKwpm8gO1LxgaRIGg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH5PR03MB7792
X-purgate-ID: tlsNG-d62444/1778525514-B695FFF4-D6233A47/0/0
X-purgate-type: clean
X-purgate-size: 3080

A non-trivial amount of issues related to PVH dom0 are fixed by enabling
the `pf-fixup` command line option, and no issues have been reported as a
result of its usage.  Enable the option by default to make PVH dom0 more
robust in its default configuration.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v1:
 - Slightly reword an expand option help text.
 - Mention the change of defaults in CHANGELOG.
---
 CHANGELOG.md                      | 2 ++
 docs/misc/xen-command-line.pandoc | 8 ++++++--
 xen/arch/x86/hvm/emulate.c        | 2 +-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index ce46020dbdb4..25f5a192ed48 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 ## [4.22.0 UNRELEASED](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=staging) - TBD
 
 ### Changed
+ - On x86:
+   - Enable pf-fixup option by default for PVH dom0.
 
 ### Added
  - Support for per-domain Xenstore quota in C xenstored (includes
diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 6c77129732bf..2da90548d8fb 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -849,7 +849,7 @@ Controls for how dom0 is constructed on x86 systems.
     If using this option is necessary to fix an issue, please report a bug.
 
 *   The `pf-fixup` boolean is only applicable when using a PVH dom0 and
-    defaults to false.
+    defaults to true.
 
     When running dom0 in PVH mode the dom0 kernel has no way to map MMIO
     regions into its physical memory map, such mode relies on Xen dom0 builder
@@ -857,10 +857,14 @@ Controls for how dom0 is constructed on x86 systems.
     access.  However Xen doesn't have a complete picture of the host memory
     map, due to not being able to process ACPI dynamic tables.
 
-    The `pf-fixup` option allows Xen to attempt to add missing MMIO regions
+    The `pf-fixup` option causes Xen to attempt to add missing MMIO regions
     to the dom0 physical memory map in response to page-faults generated by
     dom0 trying to access unpopulated entries in the memory map.
 
+    Users having to disable the feature to boot in PVH dom0 mode should report
+    it to the xen-devel mailing list, together with Xen and dom0 output with the
+    option enabled.
+
 Enables features on dom0 on Arm systems.
 
 *   The `sve` integer parameter enables Arm SVE usage for Dom0 and sets the
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index f3aae158e9f8..bb1bb03ac4e9 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -165,7 +165,7 @@ void hvmemul_cancel(struct vcpu *v)
     hvmemul_cache_disable(v);
 }
 
-bool __ro_after_init opt_dom0_pf_fixup;
+bool __ro_after_init opt_dom0_pf_fixup = true;
 static int hwdom_fixup_p2m(paddr_t addr)
 {
     unsigned long gfn = paddr_to_pfn(addr);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon May 11 18:52:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 18:52:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306370.1578365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMVk5-0006NJ-FU; Mon, 11 May 2026 18:52:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306370.1578365; Mon, 11 May 2026 18:52:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMVk5-0006NC-Bo; Mon, 11 May 2026 18:52:37 +0000
Received: by outflank-mailman (input) for mailman id 1306370;
 Mon, 11 May 2026 18:52:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMVk3-0006N1-J7
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 18:52:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMVk3-001EDj-01
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 20:52:35 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a022534-2eae-0a2a0a5409dd-0a2a450484c4-40
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 20:52:34 +0200
Received: from [209.85.208.176] (helo=mail-lj1-f176.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a022572-1dec-0a2a45040019-d155d0b0c1ed-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 20:52:34 +0200
Received: by mail-lj1-f176.google.com with SMTP id
 38308e7fff4ca-393a44854d2so36868541fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 11:52:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778525554; cv=none;
        d=google.com; s=arc-20240605;
        b=RP9t7sQxDmWQhcJV8e61lJ39PyBiFXfwGaHAsJIRr/HrbXkT3MWzJfJz1DMro0xor/
         sPLh+DV7PN4rakmAKvAh9WnY3L9RIW5Hm5ld5aPZ7Z8tnojDM04EsI7VNakfjDU5e5pg
         1QDOZAD7C8MCQ8ACeUm5YBl1sxXGsjeerRrB2j38uI45J41gRMubGo91MueVA6YqMojG
         0Nl6vGkrhOKoLQZx7j2wkC6qzKloD6p+2O1w7fA4b53JYcv/H3U6xl3EikDEdidZHBkB
         uPomSKnVNwU5TBbTDnWoHlEq4L4if0Rlx5LmChwo3nmjj3MfsgiDv2nLL9MTwLJsPWp0
         rTkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=naYHQ6TyAdVtGN3Kv18P8iV2zmMmIC7Yo8VrV1NrKyc=;
        fh=SFtdlMni3BnFH+oTSZbVgVF1hLyFxrwlVmTI+BqD6+c=;
        b=CyQI9JA6w/iY+0hVHOX0dvJ3GmKbAA1M3GpsnkvBdgh+pkLkTMDH7KUbw5mpWKcDq7
         GBrLD6igd0sUlueNuL/x64eHYJ/DF4jKsSiiZhu8cMRndmXMrzVUs8YTy2ZboucfuLeX
         Hiz5GUAeYC3S7hVGHnZeg0lu1Z0kJnj/4qYpr8HTXL8ZKz1wDMsSbSNP0UuEAdbO2fHc
         5exClNuvdvNcc0ULmwkQfDo/S0p0P35tN6sq+QCrem43rKN6A+/VgJuActW6naa1x8Z6
         kjZ4bhOsatKpEft3dA+L50sU7nvnr4P9vXuzIjk6CC4l7lwCc4nGbUs2S0eRwdTcY5wp
         nwZA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778525554; x=1779130354; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=naYHQ6TyAdVtGN3Kv18P8iV2zmMmIC7Yo8VrV1NrKyc=;
        b=clXdQWTS1qEVSnd2qnpOKvri4HDWY2sEmQKYq8At0B+WthUmZ0IGaokU0oB0aB+/j3
         erEMlVYbID9+hHR1L5is4H4EEojNfeZ8RXo9d29CEN3M9uaA+9I+wCXHiBow8zmNk5bC
         W92R0pVyDGfOwypmqtybPzzL8lIyOF4y5/UHn36BFhcV8oSms1/s/wO67uliFA/+ezBf
         GO890Fdvr7JHiNqsDehAQkIsYU+XKJTsN+kepBZDqnPNyIQbO+tcs121VkjNnwVIzorw
         8NRHwZTg5oWdD2nRLbJPLxYHaoLlGX4sVI7JhaO6FQhM2XnuGcvC8pbZ+Ki+FJjdu/eM
         TYGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778525554; x=1779130354;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=naYHQ6TyAdVtGN3Kv18P8iV2zmMmIC7Yo8VrV1NrKyc=;
        b=IKmlkV75oTVF1sZSZTPTqyQHeKXWkUg+Dc0kVtPphc/vBKGa5Y7YtIS9mHjGTvcDCf
         0M2oXSN+9jE4F1fXXPJik6Lwtn4QWFa4j2L96d738HLPdOxsgB2fWZufycvlsVGXGZ2Z
         iZ6vbo94QbVd+sUA3dhYbpyeaAVOq4Qz9AHd7zFVFcscDiLNDaiGX5wKfn8Z/CpEzje4
         9Men0lexklg/jypXF/+pIi8NHmPxLsYN/NBX0x1mb8F38DxeqYDzNk0GwGLOrJOYA9U8
         7z8scFgjr4gCf2Ohkh7RoBBCZe6N0rpsYdYo5yWaPUXQLjC02jXMft/mS6LAqF2mjque
         XCMA==
X-Gm-Message-State: AOJu0YxTK8e17q08YCxaLgSYDI+CE2y+uBR5EZlQ6GH5Fp2fvBX2RMEx
	Kpg1ynqzkn0mh401inOk+m+Ozgf2xJVUFMqhgHjwCka6u0j/1cbIbMnxcW5ac+S1dKsZCw1v4MN
	o8aVEgZzznFwTMAi8rf5w8I5ezNEDdmc=
X-Gm-Gg: Acq92OFVn00bSsGje58hz+sMwg8bQcQCgwCbLCkxPSKDPH/LgawefwgrnlcCwHFQAid
	14Rd3LkJ2JJ4osT6AomrJdmtLgI9cMPeyfNULEh1hGDbMgmt71H4D9+yvqKkoLL8F6YaRG5FGEG
	7hgP+A1mLDrLFzfJ3XsRWdOz+/B2AWJp5908O/l4vSmTMKAzhiJCLKvhRssNLblhfOR/z+kK5rL
	qE35QpMM3KPt2s/m3SspcFUkQazqS5HeC2swy7w3zb56XxYgAVS1u2DOgo4kznkL3D4I8VKiw9o
	nmnrPQ==
X-Received: by 2002:a2e:a80b:0:b0:393:55e1:4bcd with SMTP id
 38308e7fff4ca-394081a4cd1mr30841201fa.31.1778525553821; Mon, 11 May 2026
 11:52:33 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <f87a2bcb6b09e95e07e51c27541ad91406e849d1.1775125380.git.mykola_kvach@epam.com>
 <515377c0-2d8c-4069-86d0-e50674fefc68@gmail.com>
In-Reply-To: <515377c0-2d8c-4069-86d0-e50674fefc68@gmail.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 11 May 2026 21:52:22 +0300
X-Gm-Features: AVHnY4J3h-b6myBnxQz8_mxa7K4zWtVZ_3YhrYRdOqN1yMuVXJvULZvcvf1b5gI
Message-ID: <CAGeoDV9OxZGFhORoXRGYnDKOXdUvGaFwLCo8Otbi2g96FRYkgA@mail.gmail.com>
Subject: Re: [PATCH v8 11/13] xen/arm: Save/restore context on suspend/resume
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ebf023/1778525554-491763FF-87D55BBF/0/0
X-purgate-type: clean
X-purgate-size: 8050

Hi Oleksandr,

Thank you for the review.

On Mon, May 11, 2026 at 7:00=E2=80=AFPM Oleksandr Tyshchenko
<olekstysh@gmail.com> wrote:
>
>
>
> On 4/2/26 13:45, Mykola Kvach wrote:
>
> Hello Mykola
>
> I did not spot any obvious issues with this patch. As far as I can tell,
> the save/restore register set appears to be complete and correct for the
> current codebase.
>
> Just one observation: there is an API asymmetry between
> prepare_resume_ctx() and hyp_resume() (save uses pointer, restore
> hardcodes global) ...
>
> > From: Mirela Simonovic <mirela.simonovic@aggios.com>
> >
> > The context of CPU general purpose and system control registers must be
> > saved on suspend and restored on resume. This is implemented in
> > prepare_resume_ctx and before the return from the hyp_resume function.
> > The prepare_resume_ctx must be invoked just before the PSCI system susp=
end
> > call is issued to the ATF. The prepare_resume_ctx must return a non-zer=
o
> > value so that the calling 'if' statement evaluates to true, causing the
> > system suspend to be invoked. Upon resume, the context saved on suspend
> > will be restored, including the link register. Therefore, after
> > restoring the context, the control flow will return to the address
> > pointed to by the saved link register, which is the place from which
> > prepare_resume_ctx was called. To ensure that the calling 'if' statemen=
t
> > does not again evaluate to true and initiate system suspend, hyp_resume
> > must return a zero value after restoring the context.
> >
> > Note that the order of saving register context into cpu_context structu=
re
> > must match the order of restoring.
> >
> > Support for ARM32 is not implemented. Instead, compilation fails with a
> > build-time error if suspend is enabled for ARM32.
> >
> > Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
> > Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
> > Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Changes in v8:
> > - fix alignments in code
> >
> > Changes in v7:
> > - no changes
> > ---
> >   xen/arch/arm/Makefile              |  1 +
> >   xen/arch/arm/arm64/head.S          | 90 +++++++++++++++++++++++++++++=
-
> >   xen/arch/arm/include/asm/suspend.h | 26 +++++++++
> >   xen/arch/arm/suspend.c             | 14 +++++
> >   4 files changed, 130 insertions(+), 1 deletion(-)
> >   create mode 100644 xen/arch/arm/suspend.c
> >
> > diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> > index 69200b2728..c36158271a 100644
> > --- a/xen/arch/arm/Makefile
> > +++ b/xen/arch/arm/Makefile
> > @@ -51,6 +51,7 @@ obj-y +=3D setup.o
> >   obj-y +=3D shutdown.o
> >   obj-y +=3D smp.o
> >   obj-y +=3D smpboot.o
> > +obj-$(CONFIG_SYSTEM_SUSPEND) +=3D suspend.o
> >   obj-$(CONFIG_SYSCTL) +=3D sysctl.o
> >   obj-y +=3D time.o
> >   obj-y +=3D traps.o
> > diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> > index 596e960152..2cb02ee314 100644
> > --- a/xen/arch/arm/arm64/head.S
> > +++ b/xen/arch/arm/arm64/head.S
> > @@ -562,6 +562,52 @@ END(efi_xen_start)
> >   #endif /* CONFIG_ARM_EFI */
> >
> >   #ifdef CONFIG_SYSTEM_SUSPEND
> > +/*
> > + * int prepare_resume_ctx(struct cpu_context *ptr)
> > + *
> > + * x0 - pointer to the storage where callee's context will be saved
>
>     ... the C signature takes a pointer (struct cpu_context *ptr) and
> the save path uses it, ...
>
> > + *
> > + * CPU context saved here will be restored on resume in hyp_resume fun=
ction.
> > + * prepare_resume_ctx shall return a non-zero value. Upon restoring co=
ntext
> > + * hyp_resume shall return value zero instead. From C code that invoke=
s
> > + * prepare_resume_ctx, the return value is interpreted to determine wh=
ether
> > + * the context is saved (prepare_resume_ctx) or restored (hyp_resume).
> > + */
> > +FUNC(prepare_resume_ctx)
> > +        /* Store callee-saved registers */
> > +        stp   x19, x20, [x0], #16
> > +        stp   x21, x22, [x0], #16
> > +        stp   x23, x24, [x0], #16
> > +        stp   x25, x26, [x0], #16
> > +        stp   x27, x28, [x0], #16
> > +        stp   x29, lr, [x0], #16
> > +
> > +        /* Store stack-pointer */
> > +        mov   x2, sp
> > +        str   x2, [x0], #8
> > +
> > +        /* Store system control registers */
> > +        mrs   x2, VBAR_EL2
> > +        str   x2, [x0], #8
> > +        mrs   x2, VTCR_EL2
> > +        str   x2, [x0], #8
> > +        mrs   x2, VTTBR_EL2
> > +        str   x2, [x0], #8
> > +        mrs   x2, TPIDR_EL2
> > +        str   x2, [x0], #8
> > +        mrs   x2, MDCR_EL2
> > +        str   x2, [x0], #8
> > +        mrs   x2, HSTR_EL2
> > +        str   x2, [x0], #8
> > +        mrs   x2, CPTR_EL2
> > +        str   x2, [x0], #8
> > +        mrs   x2, HCR_EL2
> > +        str   x2, [x0], #8
> > +
> > +        /* prepare_resume_ctx must return a non-zero value */
> > +        mov   x0, #1
> > +        ret
> > +END(prepare_resume_ctx)
> >
> >   FUNC(hyp_resume)
> >           /* Initialize the UART if earlyprintk has been enabled. */
> > @@ -580,7 +626,49 @@ FUNC(hyp_resume)
> >           b     enable_secondary_cpu_mm
> >
> >   mmu_resumed:
> > -        b .
> > +        /* Now we can access the cpu_context, so restore the context h=
ere */
> > +        ldr   x0, =3Dcpu_context
>
>     ... but the restore path hardcodes =3Dcpu_context, ignoring whatever
> pointer was originally passed. If a caller were to pass anything other
> than &cpu_context, the resume would load from the wrong location. Since
> the sole call site does pass &cpu_context (called from system_suspend()
> in the last patch), this works correctly today =E2=80=94 but the API is s=
omewhat
> misleading.
>
> I might be missing something, but why not make prepare_resume_ctx() take
> no arguments and use =3Dcpu_context directly inside the assembly? That wa=
y
> the save and restore paths would both use the same global, and the API
> would not be misleading.

Yes, good point. Since the resume path restores from the global context obj=
ect,
the argument to prepare_resume_ctx() is misleading.

I will remove the argument and make both the save and restore paths use the
same global resume_cpu_context object.

Best regards,
Mykola

>
> > +
> > +        /* Restore callee-saved registers */
> > +        ldp   x19, x20, [x0], #16
> > +        ldp   x21, x22, [x0], #16
> > +        ldp   x23, x24, [x0], #16
> > +        ldp   x25, x26, [x0], #16
> > +        ldp   x27, x28, [x0], #16
> > +        ldp   x29, lr, [x0], #16
> > +
> > +        /* Restore stack pointer */
> > +        ldr   x2, [x0], #8
> > +        mov   sp, x2
> > +
> > +        /* Restore system control registers */
> > +        ldr   x2, [x0], #8
> > +        msr   VBAR_EL2, x2
> > +        ldr   x2, [x0], #8
> > +        msr   VTCR_EL2, x2
> > +        ldr   x2, [x0], #8
> > +        msr   VTTBR_EL2, x2
> > +        ldr   x2, [x0], #8
> > +        msr   TPIDR_EL2, x2
> > +        ldr   x2, [x0], #8
> > +        msr   MDCR_EL2, x2
> > +        ldr   x2, [x0], #8
> > +        msr   HSTR_EL2, x2
> > +        ldr   x2, [x0], #8
> > +        msr   CPTR_EL2, x2
> > +        ldr   x2, [x0], #8
> > +        msr   HCR_EL2, x2
> > +        isb
> > +
> > +        /*
> > +         * Since context is restored return from this function will ap=
pear
> > +         * as return from prepare_resume_ctx. To distinguish a return =
from
> > +         * prepare_resume_ctx which is called upon finalizing the susp=
end,
> > +         * as opposed to return from this function which executes on r=
esume,
> > +         * we need to return zero value here.
> > +         */
> > +        mov   x0, #0
> > +        ret
> >   END(hyp_resume)
> >
> >   #endif /* CONFIG_SYSTEM_SUSPEND */
>
>
> [snip]
>
>


From xen-devel-bounces@lists.xenproject.org Mon May 11 18:54:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 18:54:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306377.1578373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMVlR-0006tC-Ns; Mon, 11 May 2026 18:54:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306377.1578373; Mon, 11 May 2026 18:54:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMVlR-0006t5-LL; Mon, 11 May 2026 18:54:01 +0000
Received: by outflank-mailman (input) for mailman id 1306377;
 Mon, 11 May 2026 18:54:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wMVlP-0006sp-Rg
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 18:53:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMVlP-00FxWw-8M
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 20:53:59 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a0225b1-bab6-0a2a0a5309dd-0a2a4508c2fc-12
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 20:53:59 +0200
Received: from [52.101.48.50]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a0225c5-63b5-0a2a45080019-346530328061-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 20:53:58 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB7144.namprd03.prod.outlook.com (2603:10b6:510:290::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May
 2026 18:53:53 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.021; Mon, 11 May 2026
 18:53:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=N4kHKWTeb80IbQQOoRitCawGJdbPiKsP1dOtJYwviGSH964ZImCtwj6mP5VEJHm8Cz2p+NCBiDufDWZGMAKCpl5VZRAPLc6mTASaxPplNZhN8KS/tUqghOi3uDtOptwfVh31w1SyQtbVINfHSJoiefNAdtJmFq2a/1rWRyRBrBDUvLXwtiENWL3loILsA4MfVGxNKupPBp4HRpCTWbQA48hCbgNxP1gd784N9wTA2yXMkSmGCUHU+QQ9jG/OieHlhoXbgQ81ZU69Ii39iR+NtX61wLCHKGMwjjTGj9CqUc0Njps9D/FsWoPOdjAy6Y4nH8G6cV41cG06d29eNeMdIA==
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=EKfIc1mackmL21mordHHTfHxFKxbb1d1cK7hyp1j8WM=;
 b=oPmGPlykUVK5f8CUa1iCvzplYDLC4r3mTiP0RD8/zLfsHTUlSuaLh5hFImuUpx4HFrJ+atzMPR3GA1Ok7H+JUKbeeBJC8Oo52t3UXR43TQU09xlkQc+tnVl5Fxa1kxAOjYSlE0N1Jz4TP1UsWKmLJmYgxB9/l7h7Tyr7kZ5J5mGVslOkzX6q1+eP4xcQQ+fMqs94SLMDSBcttx9gAfeHB5iuMdMruCTr2Y9GpViEVf0Cl2ovn9l4LvlM9J8cUUSNj33Wt9OBOfUnWX4Jjudf/5TK94pxIOQ+l8EYBePP5LGsXiKFVTVaWcpxC4B2QHDGY+xKeWp9Uzbz7aF7HiFMxw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EKfIc1mackmL21mordHHTfHxFKxbb1d1cK7hyp1j8WM=;
 b=0KBVk6UYWlZdI6jRgmZcFdRPGBtx69gnETUzTmp8EMsOVEKyiZsQ4XcRFz8jKUNmk4Nsy4DtYhxnikT+vqf2Lu5eEGxMqu4vjshAydMFn593mHGjegqPpQi0QLT8TEHh/lezbaHZFQMt+7LJguRnsNpmPFWRkMuTbrHsu1nvNUI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 11 May 2026 20:53:50 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Community Manager <community.manager@xenproject.org>,
	"committers@xenproject.org" <committers@xenproject.org>
Subject: Re: Code freeze for 4.22 started on May 11, 2026
Message-ID: <agIlvjBPH4ppBuKY@macbook.local>
References: <e21070ac-3a84-4ad7-a4d1-9178d89c1435@gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <e21070ac-3a84-4ad7-a4d1-9178d89c1435@gmail.com>
X-ClientProxiedBy: BN9PR03CA0348.namprd03.prod.outlook.com
 (2603:10b6:408:f6::23) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB7144:EE_
X-MS-Office365-Filtering-Correlation-Id: cb771618-d9b1-49e9-e443-08deaf8ea5c7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|22082099003|56012099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	6o3pM43Yj0qS1QDWvTer+Ax6LNYzomtIsgwTHiKIqSei8z0G8xTCMqr1B/icqGKg6TVtXIgMEGuINvC06kWymZn9an1rTmtM1yhmg8vKjxu4LpDO+EuzkiTBJws8AFuvZ8Ah/i4eZGzDSZiFLwWPuS+QeHwI8VdSeCz9S3hBhY0JeJSu9kQ7Vwvy7VrqwKKSylg9bfCJ/nmRnyukiD+2YHBIgfmclkcmrAhGOrDzA5lpcPNNFhWuvx/+FNeFUlqiT1nOgEwJU/3TOITmwAkUI/5iybIkTObQ+7d/d5HpSaIwTOSsn6GL3VkiMyAmSvQIe96oBQwD/JU4tUhNR3CCELYiGXKcSqIoiJdZs2BTNnNopjw60chbd76nf81arBpC8OcARaghxl951dWjazRoL8M93eKpC9ChctcBPpbX0sE/yhxRTDzUsy/L2fRWKScTye0GAodRGKbz15aJkCa0GZVjvMQZBK7KZDV+lirbO57YEp0PiiJ0betb47SSUuMF2rzd25CpsUPeAeN37NfD2zhs771UXburkAWOX5lIxgA2s2hQQAkp7/lBkFT+UP6xflY06YZPYadkuXfgbykKJXQoD9qc+UhPqxyYW+lZ2NAXTCQR8Qj/l0Z7iAD6Xr+R5xBEfBgajNUkkxPod6P7AXiNFfXgkvNRL0A6rSpeWFstC7q357EflZwujV34KdY5/7XSXChVSSGyDcK4xGUMiw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(22082099003)(56012099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UU9hZUFhNGNWYmhoelRxOU5UUHR1ekg1TXdxM0V0ZllkNkhMTjVYelNMazRi?=
 =?utf-8?B?eUxJTi92K2VGOFNFdFlwTndJUHFvYytuQ1p0WHUyS0NIMTJWTGdudkYxYTRZ?=
 =?utf-8?B?MDZqZHloaXRYUEdOczdTNTNmZ29EZlV5RytkQ0w4by9YL2IyR3hhb3NUc3Ew?=
 =?utf-8?B?N2p5bW1tTTJMbDRvRE9XWmhJYVh1bjNURXR4Z3R4Z3UwUDVzNkJwdjNWQXJD?=
 =?utf-8?B?TENuRWgwVUhTMjBua2thWENCaUZLdEMyZVY1WSt1c1k5ckhCWmNtOUFEMndS?=
 =?utf-8?B?YitwWXF6RElxTk9JUURnMmN1U3NsMFBqclRWb3Z1RGl3Z0x0Um9mWlZycSsr?=
 =?utf-8?B?SWxjclBwWDIzc0JWc2FxOUFhbUVRaVB5VzhwVzMrSHZRdWNmMXR5cU1lRGJp?=
 =?utf-8?B?dWo0UTZsUVlGZ1pJRmZ4Mk9lcEhLNFF1aWZZWlZEdHYrZ3A2TCtLanpiTkJk?=
 =?utf-8?B?b3ROVnEwTEVnVXpHaHFvcGJtbFJSaDlRRlZQR25aWGZ6eUZrS2xJYmtlbGlp?=
 =?utf-8?B?bEJLWFVuUEpuYjY5UU9XQ3E1bUpDZS9nZE9RUmd5Y2puVE9jV3JGVEZEajVY?=
 =?utf-8?B?UVVPc0M3aExDYVBpR0RFdnpBMGpsWnFQUFdmTVBNR2pJeWpzOVR1NnJwYVVo?=
 =?utf-8?B?MnFXTjQ4dGJjWDVZSExRZmxjMGVKS0VNYUN6UndyVnd3UmZGWlk5Q1JzN3pF?=
 =?utf-8?B?dUJMZTdTQ0x1Wnh2eTBlWXYzS1cwMEJ6dWh6OEFUdlBBd0dJQUVldWNuNFRH?=
 =?utf-8?B?ZjlPQ2J0Mk1IampUWk13ejZaQU9CNlg2UVRFbkFqWkRkak91SFo0ck5vWklN?=
 =?utf-8?B?bFg5Q2s2bTRKb3lWRzlHMmdGWkxta2hBRWhpNWdMM0NWZHRCRC9wWm1sQml3?=
 =?utf-8?B?aGhPMm55THJZc24rL3lQSEcxeHduU0xRZVBwSlRwTGtTY2ZwbFliMklMdHp2?=
 =?utf-8?B?empWS1pWMk8vRnNrakpxNXRXSVMvUTRSSWpPSHNORk5RVlQvbzRmMGZqQmFD?=
 =?utf-8?B?Y1VyNnJwWTQ0dUhJKy9VNmppMmJFOFlDMlJRdGJNL0F0UGRmZFR4QWJmRm5n?=
 =?utf-8?B?bHc0alBreGZiaStJVXk4RnFWZU9RVVRlWTBOUGNTblZBMmdUdkhINHZoTjhJ?=
 =?utf-8?B?aFUxaS81Sk1sTUpnWjFzRFcxWU9nUmpLODdvY2FlSEtvZ05TVUNlN21JYjVl?=
 =?utf-8?B?M1RSRmxCdi9pUXA5MUVqc2RnZkhFZXBiUURKaGRBUlhvYTFXdGEyYklqYnlN?=
 =?utf-8?B?bURCZ3J6SUJHcjVMNVZ4VE9nV0tyamhhSEJCT2Vtdk1oUjJodGd0ZXdINjJn?=
 =?utf-8?B?bXhCd0M4WG00c1lvWE5wVmJkM1pCZlVGOVFsanl4TWdHWXFvVTJWQjd5dEN6?=
 =?utf-8?B?UEdKVmIwbndKQ1dMblN3b1ZZbU1ESDJpM1YxNC9aZW1DSUwxU0xrWHpZNldR?=
 =?utf-8?B?OGlJZGNZT0Y3R3lTRk9jbms4bTVyRE9xRGZwWDg2U0kydTN3bC8vV0ppTWlC?=
 =?utf-8?B?RUFFeG9UUXRiVWp2Z20xZUdRU0NMakF4MWhTSCs0MlMreU0rdFkvVGdCeGF3?=
 =?utf-8?B?Mzg3RVROZHJCUG96QldPTHZzaGlBUnVCTkcwQ0RuTDVYcjloZGxRcnAwQ2Mw?=
 =?utf-8?B?MEo4SGU1QUNncytIRWVPc2RQeUdDSlcxNHM0NmRpQmFkVXEvYXp4U2dOV09Q?=
 =?utf-8?B?VGg5YlhTazVjcVR2R2VQNXZ4cEYyMEZsUmdJcGZWaFdFbFdxTGJ0UVZ1T3RN?=
 =?utf-8?B?ajV0dXAydkN3UzFwYVA5THJZMXhBK0JEbEdrNU9XVEdRZDgzek01MG0zTCtz?=
 =?utf-8?B?RlBlNVU0MHBZV3F4L3N1R0JUL2ZwckdYdDNMbUVQWnJMdUF1R0FJNnZmd1lw?=
 =?utf-8?B?L1pKaFI5TTcvbHA2bUNuQktJTkV2OTh2cjFLcUlVZ3lzSk5iRkx4cGFZdEhJ?=
 =?utf-8?B?SzBSWitSSVhrUHdaVXZoeDJ5QVRnc2QwOTduWU1YVTVMSlg4VG9EbU9HUkp3?=
 =?utf-8?B?cXZoTDlQMmh1Y3dxZW5wMWNIV3p6dU91SnV6MzBXdE83SW9neWZTT3NnZUxT?=
 =?utf-8?B?TGFYd1ZTazhWWVA2eU5pWlI4cFN5R0dyZjZMZHhoeHpTSEgwNHJmMURmRkVT?=
 =?utf-8?B?R0tFeUV1a1NmNmNIeWJjME51aUJoNW82UHUxdTVZaWlBSTIzUE1iSkIvWHRN?=
 =?utf-8?B?cmpWTjFTSFFsRlk1MXRHMlF0cnlINVozV2dkTXJqbERXWXdWbmU0cEFBSGRN?=
 =?utf-8?B?ZkdBU0xYNER2UEtEVjRiVk1tQ3VuKzd1TzBZdGlLZHNYanVrK1QvSGtTTk9N?=
 =?utf-8?B?TGQ3UlVGUlBLOWJGTDdvTDhtRWRaNVV2S0V3eUVjQ0ZhWWwrMzdKdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cb771618-d9b1-49e9-e443-08deaf8ea5c7
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 18:53:53.6873
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 4+4rLbR3yhhn/P2c/Oi2VVM9hwkPJzgc3UWnoEeLLiTUinjKIXqPFAIniuH1lT6h2fUVg7LdEPGYl0ikrfVcFQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB7144
X-purgate-ID: tlsNG-c1860d/1778525639-BFD7BDB1-BBF055E2/0/0
X-purgate-type: clean
X-purgate-size: 640

On Mon, May 11, 2026 at 11:35:55AM +0200, Oleksii Kurochko wrote:
> Hello everyone,
> 
> I would like to inform you that Code freeze period is started and will be
> until Fri Jun 05, 2026 (+4 weeks from Feature freeze).
> 
> Bugfixes may continue to be accepted by maintainers without R-Ack.

Hello,

I would like to inquire about whether changing an option default value
could still be accepted:

https://lore.kernel.org/xen-devel/20260511185145.23750-1-roger.pau@citrix.com/

This is not new code, just changing a default.  I believe this makes
dom0 PVH more usable out of the box (see commit message).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon May 11 20:41:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 May 2026 20:41:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306409.1578383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMXRR-00047z-4f; Mon, 11 May 2026 20:41:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306409.1578383; Mon, 11 May 2026 20:41:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMXRQ-00047s-Vn; Mon, 11 May 2026 20:41:28 +0000
Received: by outflank-mailman (input) for mailman id 1306409;
 Mon, 11 May 2026 20:41:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMXRO-00047m-Ro
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 20:41:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMXRN-00G9v0-Qk
 for xen-devel@lists.xenproject.org; Mon, 11 May 2026 22:41:25 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a023edb-e002-0a2a0a5209dd-0a2a450aa09c-30
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 22:41:25 +0200
Received: from [209.85.208.171] (helo=mail-lj1-f171.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a023ef5-56b3-0a2a450a0019-d155d0abc105-3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 22:41:25 +0200
Received: by mail-lj1-f171.google.com with SMTP id
 38308e7fff4ca-393a44854d2so37678741fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 13:41:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778532085; cv=none;
        d=google.com; s=arc-20240605;
        b=jaHjkqhkKShhEzqmBTR3TG22tcULvkPN5qyhgY8w3UbmJ8FY3v9iXdwrfcdHHSs9ZO
         w+7bcyrgMMDbgDsaEeZYWV4GAKtUeYxfgUbhHqxrGKw6eQzSOeRvxSUWdl/SHqLDQskf
         2c93zeSlxQWJYnOD0m2GMMiVArpnZD2VZeVfCmr1aorlQAGLUIwHadnZfbH1oFhLA07a
         h97RYfLd3ce7Ucy4efWJNdrh4U6sBHmPzR7hWokiC71AReBnfoKTiAJSl8vEdKzfh39Y
         uB5nSSiiO4dooNWUap+cie9K8FhjAkOB0kxCumXx4tvdirZEofDxtxfNHeIEYdASFUNy
         oDgw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=WRemxzkQYjKIVnvZ1Hx2EfW0Nt+e2MfR2vsQ8gRiO2I=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=LWWK++JPPpUHSNwfJHZZzeWeJOIA2g2g5NJA+PHpfkzGowFIwC5A33LYPCKow0+QAg
         W8J+gQcHgTsFCN1IqcOBK2WgrDte6JyG6fbBKLUr6o/WI6Vgynqt9T7nlrm8yBCdqN/V
         n/fPkLxDK0+zSOjCkD3zH6oYImfLpedWHjt7eG/fIxUpGdbn7UxVzON74SGRdrv1vxBp
         2laTUlmWpQ/Y1ux+ePDuyTxV1OS9lCMtgSqGZgmJ4iYeRi1LVv4Yim6aHUajxtcTQTyE
         SMQx/uQ5om9mZ52HfOBEPQKQzvmh0Aqq3XVK8v84DGmRZde9GoHioHrLFeKYN+IciRu8
         8mww==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778532085; x=1779136885; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WRemxzkQYjKIVnvZ1Hx2EfW0Nt+e2MfR2vsQ8gRiO2I=;
        b=ddxJ8b+DLStacYBZdOQsDNixI6yQD6xMDbl83P4BEgk4FT9REdIZteeSr+0tC28xlR
         YKW6ftI44OSiL3SZ2nubZCU/NlLyGBtVARrxPf3DbcQyTsrpShAJBo7g5Evtl1blpU7P
         wO3O/zf8EA4VXz5/Q3CR7ACFQkDP4Ldum9wdPjjjT3Qn5EotB3R9x/BN5UqdrpngkzXy
         y/NcpbgnOUs3RAn7ChGuv/gJckG+qkkiUJ4REkSXT9GYKgZ1OjVnALM5E+6CDFG5ykuM
         6aSfYvKp3+V9poCPBwWc7Vn6Z9rLAOs1CmV5ZpqDR5R5HrripJ5SjVCXBMQg4RyH9B98
         jMiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778532085; x=1779136885;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=WRemxzkQYjKIVnvZ1Hx2EfW0Nt+e2MfR2vsQ8gRiO2I=;
        b=eNILM710CMMv6v3TqM5G5oKLD/UtNtjjgsV5309ly8jCvTeuxQYBUm5psFCOGNOdMJ
         2XL3NHQRSj8WAcbxLG5UYpVJalUxrQPWcRFfLo/j7de4sLoXH5W+n6brgETkkcQh0MIO
         XCTaN+418EzhvZKvXctxpjfGuqWS6j5jgsXRP0ejNuWefE8JSs3ACQmwgrFNcPglu1bR
         NDxPM+bnyhY+YkBCq3rNXDyEPppd1gN/NPD+yQLW7PtH6F280KIpcGYTQOuS3tEIpi3N
         zgbr1bl60gyi9wz4P6ZowyOJ6Fx6yH/isipHfHfGWITLy8GzzeZJxEA9xxSzVf7wAiNA
         ANqg==
X-Gm-Message-State: AOJu0Yxb7ptdSnBwFJBdSw0JMxRfeqMv6CvF+U5iVIJ5k3aHIQGzq7XC
	N7AFu0WOVyBGz2tPyvAAT9TTcsayc2EzK3tvHUDthjih9lg7hjkh9cR8vB9tJPu+GtAfwy7QANs
	Bsj9esI45475bV+2LpasiZZlwyP9mK/c=
X-Gm-Gg: Acq92OEH+0rXKkvermBMX5R1kXQ6TB5pXw1eEH3uwxHhzn9PAeZQt9hiztwDxE/z2/3
	3d8FsxT7nMEoCrpQ5jtbrFS1eBzmMHaxPXJlE4EDN4NlmhhVNnr8zMD2SxF9AXhCosDLKcZ7Jr7
	2GvfIgfzmotfGF/amTSeZa4jY1Z73FxRWfqdRAQaKyLSYsS2BueHHHBCtVAN70g8vgli/CMjkvE
	OeLRjm9thEBe7k8UxqQt6xsroowwd3mOuZtbAp3YKVrK2I4BNxZT2juu64l5WyNmZAArzLQ9AdR
	5Em5Yg==
X-Received: by 2002:a2e:bd8b:0:b0:38a:3ad8:6f32 with SMTP id
 38308e7fff4ca-3940819faaamr34245301fa.30.1778532084754; Mon, 11 May 2026
 13:41:24 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1775125380.git.mykola_kvach@epam.com> <5e1951e1c17037e020de9c0eecb5fba94edcd9dd.1775125380.git.mykola_kvach@epam.com>
 <EB3F884F-FCD6-4AE7-84FA-79ABF31EA88E@arm.com> <CAGeoDV80QHdesYQF-J4fg7wYQ6RLNg6u27aQhj4F+JoM4hU3uQ@mail.gmail.com>
 <CF8E0EB2-3048-4B04-B763-AE5EF1909416@arm.com> <CAGeoDV_SqVtcAZemSx1Ap0R6JqnbAxoLYCctPEU3DkcuQC-A1g@mail.gmail.com>
 <81FE9BB6-2C8D-49B8-86E4-BD1B19B3F76E@arm.com>
In-Reply-To: <81FE9BB6-2C8D-49B8-86E4-BD1B19B3F76E@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 11 May 2026 23:41:13 +0300
X-Gm-Features: AVHnY4L6KVcmSANctcbMbzU_-qNRJXjCUsosZNN4ylII2i0mx_ZY4nBcQsbGw5k
Message-ID: <CAGeoDV-11WDZjCkjo+BNsf2DWPwxomeWKAUuTs=Kg4GL+j+Z=A@mail.gmail.com>
Subject: Re: [PATCH v8 02/13] xen/arm: gic-v2: Implement GIC suspend/resume functions
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-4011c0/1778532085-7CE7B8B7-A5661A24/0/0
X-purgate-type: clean
X-purgate-size: 4638

On Mon, May 11, 2026 at 9:41=E2=80=AFAM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> >
> >>
> >>>
> >>> For GICC_APRn/GICC_NSAPRn, those registers describe active priority s=
tate for
> >>> interrupts already acknowledged by the CPU interface. The final suspe=
nd path is
> >>> not expected to run with an active physical interrupt context. If tho=
se
> >>> registers were non-zero there, restoring only APR/NSAPR would not mak=
e the
> >>> corresponding interrupt handling context valid after resume, and coul=
d instead
> >>> leave the CPU interface with stale active priority state.
> >>
> >> Ok I understand now, but if we are expecting here GICD_ISACTIVERn zero=
ed, why are
> >> we saving/restoring it? Shouldn=E2=80=99t we instead have a runtime ch=
eck that it=E2=80=99s zero and in case
> >> it=E2=80=99s not bail out? And in the resume path we would only zero i=
t.
> >>
> >> Am I missing something?
> >
> > Good questions.
> >
> > Yes, the distinction I should have made clearer is between CPU-interfac=
e
> > active-priority state and distributor active state.
> >
> > For GICC_APRn/GICC_NSAPRn, I expect the state to be quiesced at this po=
int.
> > Those registers track active priorities in the CPU interface. Xen reach=
es
> > gic_suspend() with local interrupts disabled, and for the guest-routed
> > interrupt case that can leave a distributor active bit behind, Xen has
> > already performed the physical EOI, so the CPU-interface priority has b=
een
> > dropped.
> > There is no CPU-interface active-priority context that we can meaningfu=
lly
> > replay after resume.
> >
> > That is different from GICD_ISACTIVERn. In EOImode=3D=3D1, EOIR only dr=
ops the
> > priority. The interrupt remains active in the distributor until the sep=
arate
> > deactivation step. For a guest-routed interrupt Xen's GICv2 guest end p=
ath does
> > only the physical EOI; deactivation is completed later by the virtual G=
IC/GICV
> > path when the guest completes the interrupt.
> >
> > This is why APR/NSAPR and ISACTIVERn are treated differently. For examp=
le:
> >
> >  1. A physical IRQ routed to a guest is acknowledged by Xen.
> >  2. The GIC marks the interrupt active in the distributor.
> >  3. Xen EOIs it, which drops the physical priority.
> >  4. Xen queues/injects the interrupt to the vGIC.
> >  5. The guest has not yet run, or the virtual interrupt is not yet deli=
verable
> >     because of guest PMR/priority/local IRQ masking/vGIC state.
> >  6. Therefore the guest-side deactivate has not happened yet, and the p=
hysical
> >     distributor active bit remains set.
> >
> > There is also a late suspend window in the current Xen path: domains ar=
e
> > suspended and the scheduler is disabled before local IRQs are disabled.
> > A guest-routed IRQ can therefore be taken by Xen after the guest is alr=
eady
> > suspended, but before gic_suspend(). Xen can EOI/priority-drop it and q=
ueue
> > it for the guest, while the guest cannot run and deactivate it before t=
he
> > GIC state is saved.
> >
> > This is the same class of issue handled by Linux for GIC EOImode=3D=3D1=
. Linux
> > saves/restores the active state because forwarded interrupts can remain=
 active
> > while passed to a VM [1].
> >
> > So I don't think GICD_ISACTIVERn should be treated as "must be zero" un=
less we
> > also add an explicit suspend-abort/quiesce policy for in-flight guest
> > interrupts. That would be a different design: detect non-zero active/in=
-flight
> > state, unwind suspend, thaw domains, let the guest drain/deactivate the
> > interrupts, and retry later. This series does not implement that policy=
. Given
> > the current flow, preserving GICD_ISACTIVERn avoids losing architectura=
l
> > interrupt-controller state across suspend/resume.
> >
> > I am not opposed to such a policy as a follow-up if we want stricter su=
spend
> > quiescence rules, but I think it should be designed explicitly rather t=
han
> > inferred from the GIC save/restore code.
> >
> > Best regards,
> > Mykola
> >
> > [1] https://patchwork.kernel.org/project/linux-arm-kernel/patch/1447701=
208-18150-5-git-send-email-marc.zyngier@arm.com/
>
> Right, yes I agree! I have another question though, since GICC_APRn state=
 should be
> quiesced in the suspend path (allimplemented active-priority bits should =
read as zero),
> should we have a runtime check just after disabling the CPU interface?

Yes, I think a runtime check is appropriate here.

Best regards,
Mykola

>
> Cheers,
> Luca
>


From xen-devel-bounces@lists.xenproject.org Tue May 12 01:39:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 01:39:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306497.1578392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMc5G-0006ls-Ie; Tue, 12 May 2026 01:38:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306497.1578392; Tue, 12 May 2026 01:38:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMc5G-0006lj-Da; Tue, 12 May 2026 01:38:54 +0000
Received: by outflank-mailman (input) for mailman id 1306497;
 Tue, 12 May 2026 01:38:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wMc5F-0006ld-8d
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 01:38:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMc5E-00CVao-MA
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 03:38:52 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a028472-2eae-0a2a0a5409dd-0a2a4506b7fe-36
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 03:38:52 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a0284ab-7371-0a2a45060019-ac6904feb2f2-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 03:38:52 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 0FB0960055;
 Tue, 12 May 2026 01:38:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 95B27C2BCB0;
 Tue, 12 May 2026 01:38:50 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778549930;
	bh=8yKlDYprkgFD+kXbd1+3tO2NcMOvkhTdD+b0zY6Bwgg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=pBNl3uf5nH7g8NANprrSypC3QbgSBw6YLGTCJJ55dpByV0ewjskUvOIdPP9x2cmax
	 R2hhQHrqpp+P01Y3kLy5cngcYTbOzFAsXQ4fON2zFmkk1mNUj+any9ANyzargQlxR8
	 Nt3wd2CgqmkDIkE1OTuvMFWH9nNFCvxA9CqI+IrYnxV28EsiF293suEjCr8l2+Mgc7
	 Rk5HsSijJdS3FOC7TfeRypycelBxw94oGSu6x7+QGjaG1PO8ESzrtY4TLXZrIWoSUz
	 vCHiX2nTncnVUQnMG7oZMSbkjCobd9zrJCjnzPG6oRfGhE5myAkg737jv4W5qESPS7
	 BEq4YmayosTAg==
Date: Mon, 11 May 2026 18:38:49 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2 1/2] CI: re-work Xen artifacts collection
In-Reply-To: <b2eb6d3a-f5ed-4ca6-a556-c9bf06809abb@suse.com>
Message-ID: <alpine.DEB.2.22.394.2605111838340.1779943@ubuntu-linux-20-04-desktop>
References: <ced1547a-f1cd-42c8-a050-51430adc829b@suse.com> <b2eb6d3a-f5ed-4ca6-a556-c9bf06809abb@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-16d1c6/1778549932-8596CD75-DB421C3C/0/0
X-purgate-type: clean
X-purgate-size: 2216

On Mon, 11 May 2026, Jan Beulich wrote:
> There's no need to do this separately from three places. Once moved to the
> bottom of the script, the need for this to be a function also disappears.
> 
> While there also make sure xen-syms is collected. This is rather more
> useful for analysis of possible problems than its stripped counterpart.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> --- a/automation/scripts/build
> +++ b/automation/scripts/build
> @@ -44,30 +44,15 @@ cp xen/.config xen-config
>  # Directory for the artefacts to be dumped into
>  mkdir -p binaries
>  
> -collect_xen_artefacts()
> -{
> -    local f
> -
> -    for f in xen/xen xen/xen.efi; do
> -        if [[ -f $f ]]; then
> -            cp $f binaries/
> -        fi
> -    done
> -}
> -
>  if [[ "${CPPCHECK}" == "y" ]] && [[ "${HYPERVISOR_ONLY}" == "y" ]]; then
>      # Cppcheck analysis invokes Xen-only build
>      xen/scripts/xen-analysis.py --run-cppcheck --cppcheck-misra -- -j$(nproc)
>  
>      # Preserve artefacts
> -    collect_xen_artefacts
>      cp xen/cppcheck-report/xen-cppcheck.txt xen-cppcheck.txt
>  elif [[ "${HYPERVISOR_ONLY}" == "y" ]]; then
>      # Xen-only build
>      make -j$(nproc) xen
> -
> -    # Preserve artefacts
> -    collect_xen_artefacts
>  else
>      # Full build.  Figure out our ./configure options
>      cfgargs=("--prefix=/usr")
> @@ -108,9 +93,16 @@ else
>      make -j$(nproc) dist
>  
>      # Preserve artefacts
> -    # Note: Some smoke tests depending on finding binaries/xen on a full build
> -    # even though dist/ contains everything, while some containers don't even
> -    # build Xen
>      (cd dist/install; find | cpio -R 0:0 -o -H newc | gzip) > binaries/xen-tools.cpio.gz
> -    collect_xen_artefacts
>  fi
> +
> +# Preserve Xen artefacts
> +#
> +# Note: Some smoke tests depend on finding binaries/xen on a full build
> +# even though dist/ contains everything, while some containers don't even
> +# build Xen.
> +for f in xen/xen xen/xen-syms xen/xen.efi; do
> +    if [[ -f $f ]]; then
> +        cp $f binaries/
> +    fi
> +done
> 


From xen-devel-bounces@lists.xenproject.org Tue May 12 01:40:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 01:40:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306504.1578401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMc6z-0008Bd-Sz; Tue, 12 May 2026 01:40:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306504.1578401; Tue, 12 May 2026 01:40:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMc6z-0008BW-Ou; Tue, 12 May 2026 01:40:41 +0000
Received: by outflank-mailman (input) for mailman id 1306504;
 Tue, 12 May 2026 01:40:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wMc6y-0008BQ-EH
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 01:40:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMc6x-007pn1-OB
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 03:40:39 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a02845f-bab6-0a2a0a5309dd-0a2a450ab7bc-30
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 03:40:39 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a028516-56b3-0a2a450a0019-aceafc1f9a3e-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 03:40:39 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 5D1434452E;
 Tue, 12 May 2026 01:40:37 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1DFEBC2BCB0;
 Tue, 12 May 2026 01:40:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778550037;
	bh=WCPI3dg8DDCJlpoPRAjEBYQiGGCHc21thDzCEXK8g74=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=iz0i5OXtoc9GL0oQ2CXsNwvuNChREi6mxIBhONyw7M+pqM5zD1Yc9Ooqd6aiRDw8p
	 LWFVSuRC+1BL55fSIM8g/OJeOsmMc3kXZwxsVxXRids722Vg/wOGC653oSm3kq27ex
	 LuP3xYoY0HtQV0BTLv9vc/vUPwKpCyp6hzXbeou5pn4rT4OPcWpJeRnLzCWgocdu9R
	 Aq9Dl5LiaNIX2gTvaoNnNkT+uIveCZgOaPAYW4AdG2wovqI8/KEmW7kRZ8S4ws/vUU
	 bwtiGS/2knMqoXNwKPMAKvqt/qQRSu6DqDmUY47EkXYgbQoDYnW9Xa98CCcfTgY+FZ
	 3K3FpoQIw21Ag==
Date: Mon, 11 May 2026 18:40:36 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2 2/2] CI: collect certain intermediate files as
 artifacts
In-Reply-To: <6e0266e6-8dda-4a87-886d-79da637c2172@suse.com>
Message-ID: <alpine.DEB.2.22.394.2605111840280.1779943@ubuntu-linux-20-04-desktop>
References: <ced1547a-f1cd-42c8-a050-51430adc829b@suse.com> <6e0266e6-8dda-4a87-886d-79da637c2172@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-4011c0/1778550039-705648B7-8D5D352F/0/0
X-purgate-type: clean
X-purgate-size: 3020

On Mon, 11 May 2026, Jan Beulich wrote:
> When one of the linking passes fails, additional intermediate files are
> still in place. Having them available for analysis of the underlying
> problem can be pretty helpful. Collect some into a new intermediates/
> directory. (Nothing new will be collected if linking succeeds.)
> 
> As the script is run with -e passed to bash, defer exit if the main
> "make" (or substituent script thereof) failed. This way more artifacts
> are collected, potentially making it easier to analyze the failure.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

> ---
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2515787945
> (with PPC forced to invoke the new logic, hence respective failures there)
> ---
> v2: Different approach.
> 
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -6,6 +6,7 @@
>    artifacts:
>      paths:
>        - binaries/
> +      - intermediates/
>        - xen-config
>        - xen-cppcheck.txt
>        - '*.log'
> --- a/automation/scripts/build
> +++ b/automation/scripts/build
> @@ -37,22 +37,24 @@ else
>      make -j$(nproc) -C xen olddefconfig
>  fi
>  
> -# Save the config file before building because build failure causes the script
> -# to exit early -- bash is invoked with -e.
> +# Save the config file before building, just in case.
>  cp xen/.config xen-config
>  
> -# Directory for the artefacts to be dumped into
> -mkdir -p binaries
> +# Directories for artefacts to be dumped into
> +mkdir -p binaries intermediates
> +
> +# Script exit status, to be overridden by the main make's status below.
> +ret=0
>  
>  if [[ "${CPPCHECK}" == "y" ]] && [[ "${HYPERVISOR_ONLY}" == "y" ]]; then
>      # Cppcheck analysis invokes Xen-only build
> -    xen/scripts/xen-analysis.py --run-cppcheck --cppcheck-misra -- -j$(nproc)
> +    xen/scripts/xen-analysis.py --run-cppcheck --cppcheck-misra -- -j$(nproc) || ret=$?
>  
>      # Preserve artefacts
>      cp xen/cppcheck-report/xen-cppcheck.txt xen-cppcheck.txt
>  elif [[ "${HYPERVISOR_ONLY}" == "y" ]]; then
>      # Xen-only build
> -    make -j$(nproc) xen
> +    make -j$(nproc) xen || ret=$?
>  else
>      # Full build.  Figure out our ./configure options
>      cfgargs=("--prefix=/usr")
> @@ -90,7 +92,7 @@ else
>      fi
>  
>      ./configure "${cfgargs[@]}"
> -    make -j$(nproc) dist
> +    make -j$(nproc) dist || ret=$?
>  
>      # Preserve artefacts
>      (cd dist/install; find | cpio -R 0:0 -o -H newc | gzip) > binaries/xen-tools.cpio.gz
> @@ -106,3 +108,12 @@ for f in xen/xen xen/xen-syms xen/xen.ef
>          cp $f binaries/
>      fi
>  done
> +
> +# Preserve Xen intermediate files.  Some may be there only upon build failure.
> +for f in xen/.xen-syms.* xen/.xen.efi.*; do
> +    if [[ -f $f ]]; then
> +        cp $f intermediates/
> +    fi
> +done
> +
> +exit $ret
> 


From xen-devel-bounces@lists.xenproject.org Tue May 12 06:20:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 06:20:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306561.1578430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMgTX-0001Nl-Ot; Tue, 12 May 2026 06:20:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306561.1578430; Tue, 12 May 2026 06:20:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMgTX-0001Nd-JU; Tue, 12 May 2026 06:20:15 +0000
Received: by outflank-mailman (input) for mailman id 1306561;
 Tue, 12 May 2026 06:20:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMgTW-0001NX-6N
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 06:20:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMgTT-006t8m-Ht
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 08:20:13 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a02c68b-e002-0a2a0a5209dd-0a2a45068d94-30
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:20:12 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a02c69c-7371-0a2a45060019-d155dd31adfd-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:20:12 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-459bf19e87bso876161f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 23:20:12 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4548e4bbebdsm33200542f8f.5.2026.05.11.23.20.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 23:20:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778566812; x=1779171612; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ToT7jHPqNCRBwRxDRbOEDQFVPkZu8mA1RX9SdQ2+cks=;
        b=X+0GgVf8g/cYFE+jQOdkiObsoO7C6tw9jrRVA5FuVfaiWygaA8MASMZ97h2cDfnvBo
         qURK/N5oY3usBKklXt0eya8ybtsNuRWXIQOSRr2UyxG007tX4Ccu9ypVQMAPyD5tOi0m
         6VsQjr1ryKLf8NmUnuGhc2aDuBAKwwxpChHpW/vOzBXezeSP+GUW98c2qbJXxCZI/T5D
         HWZTYfFHdL/BOFB4dMUzblMgLUXZQP15p8tezXnHGtzqINbsKt+M1TgX2C9yju7fCy1a
         Ka1rrrOYh30LpgTGMmY52zBkfQemReV3mY+T2MJsWcQlVJ0KsX5L2AC88IeNbsveT9QB
         WTdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778566812; x=1779171612;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ToT7jHPqNCRBwRxDRbOEDQFVPkZu8mA1RX9SdQ2+cks=;
        b=oVivr2in2+wWQ4DAT/dr0FQBHQMFsh38rrg+XKL9epVkAQbKHUe1XK/6QLEPvkevP6
         ruLJVkE4QLHPmDZ5GdAlQS8/JZ5z8s0k2LkosiDzpszJcPOic8McsRjJJmq+U/TXFFp1
         7JD52PynKEosg5IIu5UVogBa2gfj3GQGd/6oE8vFLMfB4XhieFzy5P/XkranbCMxm9ve
         wkDRmu4VViSUwOUo4yRRa7o7ysmtmlDE/6MpsYWIS40ej+G6y1s+rrgZiYp/h7nzbRyB
         bSy71uP8tX2SG+i4UfIpD7aRwNAePD8gl5EPJWmIcGEPs/vrTDASTnZh3rn9LfD78zW6
         OE3w==
X-Forwarded-Encrypted: i=1; AFNElJ8vDH3PuGYKGEJiWiRhx5X9UDNyXy1s68eNlRA/epWyrPG3puNdCj5fT00iC7nJ+zhg5+AF/xIBPL8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzkfM7L/FHZDDdhaaxcpuLVw7K3kMjjFVo4DCQdSh2c0SseevT9
	ID2YeydYHBaKlvKNOvsgkfUls1BsRsjRBSwPs9/6dQBwJxzWgS+12NQXMzBCtmLN9w==
X-Gm-Gg: Acq92OHIUYrswdNwLreFxdNVDxXc+cnMsy3hzDx008lvDE0di+89eoEo4pc5P9z1dI+
	Xji51SJNml0De5I3HOPlN49LX2vey8fWp8O2c/nOMoqNPZDYKDGr5mQx2hV7Tx05xH2xFXI3y5/
	fuUp97tRZf93APCHhoMT8g1YuyyMImk8Kv119HL7GQmBdz2SFFQwDOMRHg1jP8tcVzUH/0hQ1z1
	ClQ5AkC+LNoaEz/KqdQOsNIucAP7jce7C4Ak2ZKx3XNAv/6aBfH9MPstHyYDo8NT9nCyy0UBh8C
	150I2UPo6msRwEispfOfFsPq5lP6vTIZ57QElD3Nny4dAOiG+R53d46IvuIOfK4eVTuNpOebODd
	legIgy9nJOHEXoi1acDfyFbeL6/suVqqiZlevrPJQVeR7yqXmzQxcfxN2pLj9dLHkqGP2VBOOmZ
	kv8uzUWc24FGFLcY194dv47cfUCIbU27WEK3kLWRe2ih5r++61WjhQfMxca3ASAKBurXgbP8PWS
	HXSQwUdzQiOpZg=
X-Received: by 2002:a5d:5f44:0:b0:441:2473:c30a with SMTP id ffacd0b85a97d-454631feb51mr26638351f8f.31.1778566812089;
        Mon, 11 May 2026 23:20:12 -0700 (PDT)
Message-ID: <1d591ff7-599d-4dfa-b521-bfaded430a76@suse.com>
Date: Tue, 12 May 2026 08:20:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <cover.1775742115.git.mykyta_poturai@epam.com>
 <a0abd984989237d2f36e1628db577fb25af1cdbe.1775742115.git.mykyta_poturai@epam.com>
 <5efddecc-3665-4a53-9eaa-b117370cc0e4@suse.com>
 <5168207f-33ed-4fc4-918e-6c3b454b0efa@epam.com>
 <efb254c2-f52a-408d-b225-e4e03935d05e@suse.com>
 <d0916f22-b5c0-4c93-935c-4cbe17e626d4@epam.com>
 <e5844c28-aa68-4bf6-8287-a4ceeda3a1d2@suse.com> <878q9vt0lg.fsf@epam.com>
 <e9610f70-85b8-44d9-8e13-da26d506d5b7@suse.com> <877bparq9t.fsf@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <877bparq9t.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1778566812-8EF89D75-7771194F/0/0
X-purgate-type: clean
X-purgate-size: 4311

On 11.05.2026 16:10, Volodymyr Babchuk wrote:
> Hi Jan,
> 
> Jan Beulich <jbeulich@suse.com> writes:
> 
>> On 07.05.2026 22:40, Volodymyr Babchuk wrote:
>>> Jan Beulich <jbeulich@suse.com> writes:
>>>> On 06.05.2026 11:39, Mykyta Poturai wrote:
>>>>> On 5/4/26 08:37, Jan Beulich wrote:
>>>>>> On 23.04.2026 12:12, Mykyta Poturai wrote:
>>>>>>> On 4/21/26 17:43, Jan Beulich wrote:
>>>>>>>> On 09.04.2026 16:01, Mykyta Poturai wrote:
>>>>>>>>> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>>>>>>>
>>>>>>>>> This code is expected to only be used by privileged domains,
>>>>>>>>> unprivileged domains should not get access to the SR-IOV capability.
>>>>>>>>>
>>>>>>>>> Implement RW handlers for PCI_SRIOV_CTRL register to dynamically
>>>>>>>>> map/unmap VF BARS. Recalculate BAR sizes before mapping VFs to account
>>>>>>>>> for possible changes in the system page size register. Also force VFs to
>>>>>>>>> always use emulated reads for command register, this is needed to
>>>>>>>>> prevent some drivers accidentally unmapping BARs.
>>>>>>>>
>>>>>>>> This apparently refers to the change to vpci_init_header(). Writes are
>>>>>>>> already intercepted. How would a read lead to accidental BAR unmap? Even
>>>>>>>> for writes I don't see how a VF driver could accidentally unmap BARs, as
>>>>>>>> the memory decode bit there is hardwired to 0.
>>>>>>>>
>>>>>>>>> Discovery of VFs is
>>>>>>>>> done by Dom0, which must register them with Xen.
>>>>>>>>
>>>>>>>> If we intercept control register writes, why would we still require
>>>>>>>> Dom0 to report the VFs that appear?
>>>>>>>>
>>>>>>>
>>>>>>> Sorry, I don't understand this question. You specifically requested this
>>>>>>> to be done this way in V2. Quoting your reply from V2 below.
>>>>>>>
>>>>>>>   > Aren't you effectively busy-waiting for these 100ms, by simply
>>>>>>> returning "true"
>>>>>>>   > from vpci_process_pending() until the time has passed? This imo is a
>>>>>>> no-go. You
>>>>>>>   > want to set a timer and put the vCPU to sleep, to wake it up again
>>>>>>> when the
>>>>>>>   > timer has expired. That'll then eliminate the need for the
>>>>>>> not-so-nice patch 4.
>>>>>>>
>>>>>>>   > Question is whether we need to actually go this far (right away). I
>>>>>>> expect you
>>>>>>>   > don't mean to hand PFs to DomU-s. As long as we keep them in the hardware
>>>>>>>   > domain, can't we trust it to set things up correctly, just like we
>>>>>>> trust it in
>>>>>>>   > a number of other aspects?
>>>>>>
>>>>>> How's any of this related to the question I raised here, or your reply
>>>>>> thereto? If we intercept PCI_SRIOV_CTRL, we know when VFs are created.
>>>>>> Why still demand Dom0 to report them then?
>>>>>>
>>>>>
>>>>> The spec states that VFs can take up to 100ms after the VF_ENABLE bit is 
>>>>> set to become alive. We discussed in the V2 that it is not acceptable to 
>>>>> do a required 100ms wait in Xen while blocking a domain. And not doing 
>>>>> that blocking would require some mechanism to only allow a domain to run 
>>>>> for precisely 99(or more?)ms. You yourself suggested that we can trust 
>>>>> the hardware domain with registering VFs if we already trust it with 
>>>>> other PCI-related stuff. Did you change your mind, or am I completely 
>>>>> misunderstanding this question?
>>>>
>>>> No, I still think that we can trust hwdom enough. Nevertheless we should
>>>> aim at being independent of it where possible. And I seem to recall that
>>>> I had also outlined an approach how to avoid spin-waiting for 100ms in
>>>> the hypervisor.
>>>
>>> I want to clarify: you are telling that Xen should not wait for hwdom to
>>> report VFs and instead create them by itself. Is this correct?
>>
>> If that's technically possible, yes.
> 
> Okay, so let's clear this. If I remember correct, you discussed this
> with Mykyta in the previous version and suggested to put the vCPU to
> sleep for 100ms.

I don't think I did (except perhaps from a very abstract perspective),
precisely because of ...

> I don't think that this is a good idea, because guest
> kernel will not be happy about that.

... this. Instead iirc I suggested to refuse (short-circuit) handling
VF register accesses for the next 100ms.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 12 06:27:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 06:27:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306570.1578439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMgZq-000219-F8; Tue, 12 May 2026 06:26:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306570.1578439; Tue, 12 May 2026 06:26:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMgZq-000211-BN; Tue, 12 May 2026 06:26:46 +0000
Received: by outflank-mailman (input) for mailman id 1306570;
 Tue, 12 May 2026 06:26:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMgZp-00020v-Ba
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 06:26:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMgZo-008Opg-L6
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 08:26:44 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a02c80e-e002-0a2a0a5209dd-0a2a450ac0c8-42
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:26:44 +0200
Received: from [209.85.221.52] (helo=mail-wr1-f52.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a02c824-56b3-0a2a450a0019-d155dd34ad6c-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:26:44 +0200
Received: by mail-wr1-f52.google.com with SMTP id
 ffacd0b85a97d-459bf19e87bso879573f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 May 2026 23:26:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4549120eab7sm29755149f8f.23.2026.05.11.23.26.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 May 2026 23:26:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778567204; x=1779172004; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=K250rKmBEtrlsIr2d1MtsYeB0UaG3/8VH+Dt3+zVzfU=;
        b=TbYR/Fn10e50tqdacSYZECtTZJBI8EyUEPpJYhMmRP7S7ZCubDvE58twTT+mFZNgkl
         pdjvDqnbugJli2QlNcjr09PPPw97vbB4qKtvM1YtpfUnZCngtJZ2XZmI7ja6RxHS2ID6
         lHE70Wk6s08wCS57gQN1u3MEi/OULCiwP2FzFILzFPZbM8p2CYkMa9z3KWS6Vsqa8Mwd
         0Nb8Q/yVgvA9yTpxcBonyIjMgAsKg5fPeUVKCNWSVDNtvJv6Ihz4rZLavzZHO6Ahg/6t
         65CnU7k4qsx9wRJjWYz5+F3o7IlHJzeVhkbFxB+3T+Pw1yFsf6MJ3rNZxqKOV0TWUTLV
         mc4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778567204; x=1779172004;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=K250rKmBEtrlsIr2d1MtsYeB0UaG3/8VH+Dt3+zVzfU=;
        b=IqeySLeNuh0KBEtu287KMmeHboeLyXL9/Yn0hgFsVAG6C4QFDSppCsmd63f3LiURvw
         QTlGcFaSAQ9/vnMX4FzEXVDI+4cnUouGNtA5Ez1RjtyUjwirJ+Gi9kCxWXm0WhQ9by3o
         R4JfSg1Sx+cBYBQxdf8AmVE5h70hWQhpPQPQqiOlsLz99nuhGdZ3L82ambf3It2GxbAC
         aUrOFj/8rNaTDnudfzBinVXI0zIStzqtWT3XqjXFt5mEXekWb3sh+7fhi3I+A2WSO9I1
         GZdwbl/RXBwHH+kSQEevMF6HtXLSdNt5oV2DiiIDgrlx+lRkmAour5yrM4GakZy9xb6L
         iEmw==
X-Forwarded-Encrypted: i=1; AFNElJ8X9h1cE+S16jDfU7HHFvJO3Z1zRkXpqIC09/QoJAqVR2Bg62c87PgPmEYgfjHTnZey0nyqbyg1JHA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwNZnS47qKvqw2xeukLUp2f7aW4nt7kJ2VIj+nv2qzYMtAA661r
	INdxpEAA1JkP6rTDIfnPf9a7rsyNPnbYXbixbLs94HvH+E3wo5SsTZYYj1oL+LuEOg==
X-Gm-Gg: Acq92OEbIuNpf7+txDl+UCek/3ogrqkPrdaURWoiyT/g803PVrZzjKwVohvoWDHvkHQ
	Dc5eufcWtDJ+2j75oevlNZeeB5hvipoqZv8KaXaOQFIjMZyEEnqx7xyMx2rMIG2wjaQZvwmTTV6
	+u05aNgBf1ICX7mliKFyp5HtVbSEymQluxLshMuvbDyFMnfz8QRsarKomHy5i5vCD/fe/0etB9b
	1AM1+21YexHcQ02fQ4c0yZTF3Pd+up9UtXuMzNnXjdP7qTT7n4e9xT3KFdfKc5Xu6egIb/TzSbI
	uMm8eMB3bgHSklO4VlUHwTgccPywcg48XB7PNApSqHrXWwZxGCQVekzQMvJnc6dtwbOV//gPLnr
	ZZd9TT8IqJgeksZz2IDYTxKyeVm+ZX8EsY5MpX8zaAxOGljxgTqI9Y8coJPxYMgwXoOcAf7y6Aq
	k5WAcoE93icHJ2Cv793Jfzsc5m6YVcKVHyhIWLZK3wKG+6ujsbPmMFIkOr81IRIk6p4hkv8w1cI
	WEQ+kl3X/dX8t2rQtykiREk6Q==
X-Received: by 2002:a05:6000:24c3:b0:441:3144:efc5 with SMTP id ffacd0b85a97d-45463d8a9a9mr27201888f8f.42.1778567203918;
        Mon, 11 May 2026 23:26:43 -0700 (PDT)
Message-ID: <d251abdd-0cf9-4542-ba78-63db890b5d10@suse.com>
Date: Tue, 12 May 2026 08:26:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/dom0: enable pf-fixup by default for PVH dom0
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <20260511185145.23750-1-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260511185145.23750-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778567204-7FD788B7-9076BA07/0/0
X-purgate-type: clean
X-purgate-size: 426

On 11.05.2026 20:51, Roger Pau Monne wrote:
> A non-trivial amount of issues related to PVH dom0 are fixed by enabling
> the `pf-fixup` command line option, and no issues have been reported as a
> result of its usage.  Enable the option by default to make PVH dom0 more
> robust in its default configuration.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Tue May 12 07:32:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 07:32:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306586.1578448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMhbP-0002sK-TG; Tue, 12 May 2026 07:32:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306586.1578448; Tue, 12 May 2026 07:32:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMhbP-0002sD-Q1; Tue, 12 May 2026 07:32:27 +0000
Received: by outflank-mailman (input) for mailman id 1306586;
 Tue, 12 May 2026 07:32:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1wMhbO-0002s5-7O
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 07:32:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMhbN-009Tbs-2j
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 09:32:25 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a02d77b-e002-0a2a0a5209dd-0a2a4501eb6c-38
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 09:32:25 +0200
Received: from [40.107.162.105]
 (helo=PA4PR04CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a02d788-c1f2-0a2a45010019-286ba2693bc0-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 09:32:24 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PR3PR03MB6378.eurprd03.prod.outlook.com
 (2603:10a6:102:5f::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Tue, 12 May
 2026 07:32:21 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9891.020; Tue, 12 May 2026
 07:32:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Q2bT+ramku/bOZvmMW0cIyU9Rn6hd7T13T2g6TIPBfOrurHQhLlXUCjjI4/DAchtBP5468XRkoOt/eYIAeoDI9I/T+GLDqZFNqYNMQdjaxzt2dY4N0v4mudpJ/zpnlTWFZUYDQ/vwOMcLETU9v2sVfjRw5KQmo3w9AHQVvsAAUlwLT4C7W7byYg+EFIWJaO7Zlm+Rhsgc2TMqK44ntstdIpwOB0TvNu32X9tx0NUxC/XMVkTEqnn22lARatAbU9LzNbcGtfmkUi/O8vdHLI1O/HZ74EDlkMPWxGaCECYChF25EFuF8+g1FykpP+t7vQTDRipw4TuWzvz5dNM4585dw==
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=x11TnGOl04orQbuqqYgUo62byMZqkXSryoufrsNuqH0=;
 b=gfsjC8CZMG/c5DKBPJxsH07hhDFrDFqBqaZQWhrY3UBZfW8gIwI9/73o/LsaeVKk/PccTu5s5ZXRgkKa1e3F6hQna496HKiIH6+0mB7ylkKQZpFDlscWQGYu+Dw4llWbO6X9fVZi7vA4Pmg34PRQZzPniBnP86OYemYx9cPciJa+0AidX9opCBexE/k+hVJI0x4XC7OQMhpVh/RGSyPwTDCNHGgaKULPIk8xOeVjJfukYNMir9BJiSI34dVMX2UqEPAa6Man3wsW1esdd/yf5e2AAHDR8q9FNRZIC1eGehtT4xfHxn0Ttm2Dux5Ash7xLKPYV99Sca3JGFCef8DEYg==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=x11TnGOl04orQbuqqYgUo62byMZqkXSryoufrsNuqH0=;
 b=JyUMKLHvAxICUBK64Ol3+C6CoPZLMjceuCEsm5FQfUQeVTkp+T3ET1SHHuXK96t6E04mT2P7eSv3NazK9SP3t9yK806AyuFerbxb/Kf9A7tjsQdOErgJTPMqc4STnweL6MYg00bR8KyAVerdggH2QE91uRilP17KxOZCZIy+1Eiw9DLEuyF+HW2t3RbbGdblfPpxE6o1NXohMLB19rnhVmEan7PRR0NIwKvKrF+zGnvS72MYvYHMcI/SMBcRqLZARgHTO3/A1GgOPrnVtvr81igYaq+YhIRKnVKxBNGBYcnLPklPeyjVvAZ+lhMIO3CaFlQNRX9V6o/CJxUVxgGevg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Jan Beulich <jbeulich@suse.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
CC: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, "Daniel P.
 Smith" <dpsmith@apertussolutions.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>
Subject: Re: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
Thread-Topic: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
Thread-Index: AQHcyClfuk/Yqk/9/E2oGahG1JP+srYKHnIAgAAUKQA=
Date: Tue, 12 May 2026 07:32:20 +0000
Message-ID: <925f2076-f98b-4102-ba45-a85a83861c9f@epam.com>
References: <cover.1775742115.git.mykyta_poturai@epam.com>
 <a0abd984989237d2f36e1628db577fb25af1cdbe.1775742115.git.mykyta_poturai@epam.com>
 <5efddecc-3665-4a53-9eaa-b117370cc0e4@suse.com>
 <5168207f-33ed-4fc4-918e-6c3b454b0efa@epam.com>
 <efb254c2-f52a-408d-b225-e4e03935d05e@suse.com>
 <d0916f22-b5c0-4c93-935c-4cbe17e626d4@epam.com>
 <e5844c28-aa68-4bf6-8287-a4ceeda3a1d2@suse.com> <878q9vt0lg.fsf@epam.com>
 <e9610f70-85b8-44d9-8e13-da26d506d5b7@suse.com> <877bparq9t.fsf@epam.com>
 <1d591ff7-599d-4dfa-b521-bfaded430a76@suse.com>
In-Reply-To: <1d591ff7-599d-4dfa-b521-bfaded430a76@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PR3PR03MB6378:EE_
x-ms-office365-filtering-correlation-id: b54d0815-88a5-404c-cb42-08deaff89a53
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|11063799003|18002099003|56012099003|22082099003|38070700021;
x-microsoft-antispam-message-info:
 moT0JKLGTUiLXzglgXf5plzyX1N1VNjB0eR0H+1dy1W2oShD2r8naT7+Ks9NCBkr9zSwIRqC8YdurtEmTP4o0f0pPh6n13H1Supzff7CJIV0ksrL4pcRlWjUzm6QSFUbltqxpGTTrUFqinluVvB+140vf8WlnlUhoJ/addLSpAbslx5NRjffdUs41C7RnW6q44v5NJpJJx9faKOgBtQpqj0VKt/S4DPWL43Y4+ceBSs6OMuUWHny2uByb+66ajKQjMwCJFNvmcTjY22MUSxznOyAicpcWTrtAN+0xAF6XNHh064SaIR/yHonC0BvMkdfmc8PBHi9GTIby4Q7NHGNLLkSCU/i3O0SRpVkmurMZuKZx6jtalz0DznZ0TfKC0ZVHrkdeC5czATAINeIfm7fy3p1tzruHvnmdkWfOOwqpMITwu2OW3V2/deTfYpDlHbNJpvmCfoKZzc7/n34YXj6AQNfzX8PlvLmwHgsJJT2VSpu6gkdtEGg2oZguoXDI9MYvfwRzQ7Lj/QKazByK3WL3WxcKdlb45Rd/YxMmqCD1GXJLfej9/N1CD1kQccbbL4ztpVlezb0dij4Y60yVquMWH0L+/L4MxN26W2Tt8OKIR0FqWQk48hRq/RrxOyVBz4oQvohCCY4nzIMCK0olPSstuR9XyPMpWtZgySpioHi4LPNTjkYVW7xm4RrPJ45VoXJZUIXndlB0brVsX+FWrh7uLF0QKRgug928hzNL2tlv70n9UfSzugwA4X/Lh7VT+T5
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(11063799003)(18002099003)(56012099003)(22082099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?b2JncTExSmZieGtoQmxvMW1GbmErMGg3T2lVNmVjQkR4cjZDc0REQlFYYXRT?=
 =?utf-8?B?WFVwVjRWdC82b2lWY0QzeFhqcmhKckxlNXVtd0NlUk5jbjA3N240L3N1ZktC?=
 =?utf-8?B?d3ZoT0pSOTZyRjArY1hGTlB0L3YzT0Exb0oyZXUvV3NkWHowem1YaWhRcHYz?=
 =?utf-8?B?eFFqTlBGc3hVejJLemJNNVRWZjJ3MmZkdndNTVNqZjRSZ0xsTTVSWkp2OG1U?=
 =?utf-8?B?Mld1OXRxWWMvdFV3dHcrQVBFWDBNRHhFMklXNlFCaExOUHBZK05uVUJkQStz?=
 =?utf-8?B?LzV6Z2FkcjgvcUFCY1JFMWxKVHB2ekxlUzN3M0R3RVdjdjhDWWxNUnhyWk45?=
 =?utf-8?B?c090M3pnNldNNWNTVnVKd0tnZEQweFVqNCt0ci92N3VsMjVuR3NGZnBFTUJE?=
 =?utf-8?B?aXQ0SjNlTzZyL1lXbDZSZzlpMVJ3bVBCaW5hRlRwOXFHZGxEemdqcm5ocmpO?=
 =?utf-8?B?NVJrM1Vta3RETTRjQkVNTW1LUFlLL3dVbm9oUzMyb2h5UTNtNnZpZ1FBU0px?=
 =?utf-8?B?Nk1qMU5KMEErNE9QcVVoZ1lEUUlrdWhLcnB1cFEyUldpdkFGTnRsZDdhMnhz?=
 =?utf-8?B?SDNKckcwbElUQWJubUV6anA4TUZSd0pEa1ZUblhkTy90OXNoOXByakl2NmRK?=
 =?utf-8?B?TWNMaVI3bVFYaUFuRDZQUlVjZWFFN3JEZW5uanM4bEZNZlNCYVR3ZGJZZ1Bm?=
 =?utf-8?B?bzZSZ0I5bGtLL1FIM0Z3dXpyaEJpQ3V6eFdKTVZTcDkrUTJNc2h0VWMxc25X?=
 =?utf-8?B?a3h6V3VjcVVJMkpGTjI5UTMzWGZoMHVLaEpBWS92d1BYNXlYay9EaUhmNldu?=
 =?utf-8?B?U2Zzd0todjVhdlMxN3NrVzl0TGV6ZVpEQlRBSm1ZY1NCSThTWlZmNVowWXc3?=
 =?utf-8?B?Ykt3cWhYY3pRY3V1MTBMbTFGZWFjRGtxNktUb3UyR1lzUEs5OHdtcEFWRzlj?=
 =?utf-8?B?eFNRV2k1Nm1NZkJ1QlZJNFRkbmVmSUU3TlpVajZXaFkydWVrSU1KcXJJRWJh?=
 =?utf-8?B?UlZHVXJ6dWZmalYwbHVtUFgyazg2V0pxR0w1UnRYVDg2NGR0UTFJOHR1Rkth?=
 =?utf-8?B?VE9hWjdrK2xsOGkwMkdSQURrZ0JPN2s1OGhFMk4yeU9qOC8wVU90d25nR2Zz?=
 =?utf-8?B?Q3lkMDdvQWUrWnJGNjQ4SEc0QnVSNWlzeTJpbGZ3TlU2WVBsd2J4Zm5tUXVa?=
 =?utf-8?B?WW9KNnBvWVBnaCt5ZWtURW5XYlNpWkxvZEFFRzVIVHg0dkpBRGFwNTBUVWlH?=
 =?utf-8?B?QUhrOHkxUjJYVFVtYTNFUDdzVEZSR0hWbGFRK2NVVjdXbUdtRGtYY2ZjVXpV?=
 =?utf-8?B?MGprcHFDOWk4T2NscWt0K1FvOUZJTTMwYnM2dWptOXBVenFaTDFXWXF3bTc4?=
 =?utf-8?B?K1gxNXNnSkFXM3I3Q1k2TXVITXR5b2ZmNklUTTcySjliVFhacXdIcFArMVpU?=
 =?utf-8?B?Tkg3YmtDQVU5S0JvcitLNjBXbFpMSFBBSjZMWFNBZVptbWp5Ny83NG05YkQ4?=
 =?utf-8?B?REZwVE1jUlc1VGVnMTVsTFVXT2JJRlBhcHFnOHpmSzZBRENOWTdLUFA0ZGo0?=
 =?utf-8?B?enNaVW14bUFHQ2Q5UERzbGxqOHptdzhKL2p6QTVtYVoya0lPWlJXTFE1L28y?=
 =?utf-8?B?azRSV01yV29xY09MbmovaXdqWmtlQjBuUHpFUkpYVVhPSnR2WDhEdkNYTXBN?=
 =?utf-8?B?WnhCenVwYW1zS1pMaU1XV01SeVpDS3d3dUtPWGNEcEpmTHcvNFhLZWZ1WWRV?=
 =?utf-8?B?NDI4ZjEzbXFCN2NRUVpaUDVRM0hFOW8vNjV2REFsaU91SnhYZmlvLzhkQWRL?=
 =?utf-8?B?UGJ4ODFKOHhkMkdtZ0IwVjBMVUEwaHdhSUJKcGwzZ3BTQ05wRElEQlVZaUJK?=
 =?utf-8?B?QWdrOEIzcFZPNjZFM1VBeElpdS9VSVRTWTlpa0pMNjJYS0lvT3dGWXVCV0w2?=
 =?utf-8?B?dDY0SkVWZUVVb1pYM2lOMzM2U0k4RzNNbWJzc1NzdkdSc3hWOFVCejdwOVU5?=
 =?utf-8?B?ZzlVRkhkU2hnaXJ3RGFYaUxZMFE0UVpsSWlXRFJxc0xwM0FrcDJtM1NUZ05q?=
 =?utf-8?B?QVJ1VTFyNVpsMzFSWmFieDZFMTdobVhaUndpZm5lVGNQRFZ0OFU1eW85Z0xH?=
 =?utf-8?B?TWQ4WVJtNTN3OGpOWktUc1U1c3JYRWVhZ0pnaDNSRyttZEIvTVkxR3pJNTd6?=
 =?utf-8?B?eWJNd3RtaW9rVldxZmVObzJ1Um1vMThFYno4aTlRSWRlMXZYODBrNlYreWRF?=
 =?utf-8?B?WlNWZjNRUmM2TmhVcDZLcFA0TlRWOGo5ZWFGYmlYZU1QUUU2ZGxvQ01BQW8z?=
 =?utf-8?B?SWtDL0YzYkMxTk9qUnVJa2hHb3lBL0swYmt6WWRzSTRBZVNYWjc5cUZWSm1Z?=
 =?utf-8?Q?hPYs9dmuJsKqQkF0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F19D3B484E81B541BA3A9DC1BB2918A0@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b54d0815-88a5-404c-cb42-08deaff89a53
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 May 2026 07:32:20.8214
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: VsYkt4odjHEmxKtCf+SG/216LMC37yQ4wyb0kjpasXOBnBV8o6ZKm5ikhj1aWijPkr5g/DoVNEyGmB62cr+d3w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6378
X-purgate-ID: tlsNG-d62444/1778571144-AF35AFF4-1638BAEC/0/0
X-purgate-type: clean
X-purgate-size: 7460

DQoNCk9uIDUvMTIvMjYgMDk6MjAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxMS4wNS4yMDI2
IDE2OjEwLCBWb2xvZHlteXIgQmFiY2h1ayB3cm90ZToNCj4+IEhpIEphbiwNCj4+DQo+PiBKYW4g
QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+IHdyaXRlczoNCj4+DQo+Pj4gT24gMDcuMDUuMjAy
NiAyMjo0MCwgVm9sb2R5bXlyIEJhYmNodWsgd3JvdGU6DQo+Pj4+IEphbiBCZXVsaWNoIDxqYmV1
bGljaEBzdXNlLmNvbT4gd3JpdGVzOg0KPj4+Pj4gT24gMDYuMDUuMjAyNiAxMTozOSwgTXlreXRh
IFBvdHVyYWkgd3JvdGU6DQo+Pj4+Pj4gT24gNS80LzI2IDA4OjM3LCBKYW4gQmV1bGljaCB3cm90
ZToNCj4+Pj4+Pj4gT24gMjMuMDQuMjAyNiAxMjoxMiwgTXlreXRhIFBvdHVyYWkgd3JvdGU6DQo+
Pj4+Pj4+PiBPbiA0LzIxLzI2IDE3OjQzLCBKYW4gQmV1bGljaCB3cm90ZToNCj4+Pj4+Pj4+PiBP
biAwOS4wNC4yMDI2IDE2OjAxLCBNeWt5dGEgUG90dXJhaSB3cm90ZToNCj4+Pj4+Pj4+Pj4gRnJv
bTogU3Rld2FydCBIaWxkZWJyYW5kIDxzdGV3YXJ0LmhpbGRlYnJhbmRAYW1kLmNvbT4NCj4+Pj4+
Pj4+Pj4NCj4+Pj4+Pj4+Pj4gVGhpcyBjb2RlIGlzIGV4cGVjdGVkIHRvIG9ubHkgYmUgdXNlZCBi
eSBwcml2aWxlZ2VkIGRvbWFpbnMsDQo+Pj4+Pj4+Pj4+IHVucHJpdmlsZWdlZCBkb21haW5zIHNo
b3VsZCBub3QgZ2V0IGFjY2VzcyB0byB0aGUgU1ItSU9WIGNhcGFiaWxpdHkuDQo+Pj4+Pj4+Pj4+
DQo+Pj4+Pj4+Pj4+IEltcGxlbWVudCBSVyBoYW5kbGVycyBmb3IgUENJX1NSSU9WX0NUUkwgcmVn
aXN0ZXIgdG8gZHluYW1pY2FsbHkNCj4+Pj4+Pj4+Pj4gbWFwL3VubWFwIFZGIEJBUlMuIFJlY2Fs
Y3VsYXRlIEJBUiBzaXplcyBiZWZvcmUgbWFwcGluZyBWRnMgdG8gYWNjb3VudA0KPj4+Pj4+Pj4+
PiBmb3IgcG9zc2libGUgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHBhZ2Ugc2l6ZSByZWdpc3Rlci4g
QWxzbyBmb3JjZSBWRnMgdG8NCj4+Pj4+Pj4+Pj4gYWx3YXlzIHVzZSBlbXVsYXRlZCByZWFkcyBm
b3IgY29tbWFuZCByZWdpc3RlciwgdGhpcyBpcyBuZWVkZWQgdG8NCj4+Pj4+Pj4+Pj4gcHJldmVu
dCBzb21lIGRyaXZlcnMgYWNjaWRlbnRhbGx5IHVubWFwcGluZyBCQVJzLg0KPj4+Pj4+Pj4+DQo+
Pj4+Pj4+Pj4gVGhpcyBhcHBhcmVudGx5IHJlZmVycyB0byB0aGUgY2hhbmdlIHRvIHZwY2lfaW5p
dF9oZWFkZXIoKS4gV3JpdGVzIGFyZQ0KPj4+Pj4+Pj4+IGFscmVhZHkgaW50ZXJjZXB0ZWQuIEhv
dyB3b3VsZCBhIHJlYWQgbGVhZCB0byBhY2NpZGVudGFsIEJBUiB1bm1hcD8gRXZlbg0KPj4+Pj4+
Pj4+IGZvciB3cml0ZXMgSSBkb24ndCBzZWUgaG93IGEgVkYgZHJpdmVyIGNvdWxkIGFjY2lkZW50
YWxseSB1bm1hcCBCQVJzLCBhcw0KPj4+Pj4+Pj4+IHRoZSBtZW1vcnkgZGVjb2RlIGJpdCB0aGVy
ZSBpcyBoYXJkd2lyZWQgdG8gMC4NCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiBEaXNjb3Zlcnkgb2Yg
VkZzIGlzDQo+Pj4+Pj4+Pj4+IGRvbmUgYnkgRG9tMCwgd2hpY2ggbXVzdCByZWdpc3RlciB0aGVt
IHdpdGggWGVuLg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gSWYgd2UgaW50ZXJjZXB0IGNvbnRyb2wg
cmVnaXN0ZXIgd3JpdGVzLCB3aHkgd291bGQgd2Ugc3RpbGwgcmVxdWlyZQ0KPj4+Pj4+Pj4+IERv
bTAgdG8gcmVwb3J0IHRoZSBWRnMgdGhhdCBhcHBlYXI/DQo+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+DQo+
Pj4+Pj4+PiBTb3JyeSwgSSBkb24ndCB1bmRlcnN0YW5kIHRoaXMgcXVlc3Rpb24uIFlvdSBzcGVj
aWZpY2FsbHkgcmVxdWVzdGVkIHRoaXMNCj4+Pj4+Pj4+IHRvIGJlIGRvbmUgdGhpcyB3YXkgaW4g
VjIuIFF1b3RpbmcgeW91ciByZXBseSBmcm9tIFYyIGJlbG93Lg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+
ICAgID4gQXJlbid0IHlvdSBlZmZlY3RpdmVseSBidXN5LXdhaXRpbmcgZm9yIHRoZXNlIDEwMG1z
LCBieSBzaW1wbHkNCj4+Pj4+Pj4+IHJldHVybmluZyAidHJ1ZSINCj4+Pj4+Pj4+ICAgID4gZnJv
bSB2cGNpX3Byb2Nlc3NfcGVuZGluZygpIHVudGlsIHRoZSB0aW1lIGhhcyBwYXNzZWQ/IFRoaXMg
aW1vIGlzIGENCj4+Pj4+Pj4+IG5vLWdvLiBZb3UNCj4+Pj4+Pj4+ICAgID4gd2FudCB0byBzZXQg
YSB0aW1lciBhbmQgcHV0IHRoZSB2Q1BVIHRvIHNsZWVwLCB0byB3YWtlIGl0IHVwIGFnYWluDQo+
Pj4+Pj4+PiB3aGVuIHRoZQ0KPj4+Pj4+Pj4gICAgPiB0aW1lciBoYXMgZXhwaXJlZC4gVGhhdCds
bCB0aGVuIGVsaW1pbmF0ZSB0aGUgbmVlZCBmb3IgdGhlDQo+Pj4+Pj4+PiBub3Qtc28tbmljZSBw
YXRjaCA0Lg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+ICAgID4gUXVlc3Rpb24gaXMgd2hldGhlciB3ZSBu
ZWVkIHRvIGFjdHVhbGx5IGdvIHRoaXMgZmFyIChyaWdodCBhd2F5KS4gSQ0KPj4+Pj4+Pj4gZXhw
ZWN0IHlvdQ0KPj4+Pj4+Pj4gICAgPiBkb24ndCBtZWFuIHRvIGhhbmQgUEZzIHRvIERvbVUtcy4g
QXMgbG9uZyBhcyB3ZSBrZWVwIHRoZW0gaW4gdGhlIGhhcmR3YXJlDQo+Pj4+Pj4+PiAgICA+IGRv
bWFpbiwgY2FuJ3Qgd2UgdHJ1c3QgaXQgdG8gc2V0IHRoaW5ncyB1cCBjb3JyZWN0bHksIGp1c3Qg
bGlrZSB3ZQ0KPj4+Pj4+Pj4gdHJ1c3QgaXQgaW4NCj4+Pj4+Pj4+ICAgID4gYSBudW1iZXIgb2Yg
b3RoZXIgYXNwZWN0cz8NCj4+Pj4+Pj4NCj4+Pj4+Pj4gSG93J3MgYW55IG9mIHRoaXMgcmVsYXRl
ZCB0byB0aGUgcXVlc3Rpb24gSSByYWlzZWQgaGVyZSwgb3IgeW91ciByZXBseQ0KPj4+Pj4+PiB0
aGVyZXRvPyBJZiB3ZSBpbnRlcmNlcHQgUENJX1NSSU9WX0NUUkwsIHdlIGtub3cgd2hlbiBWRnMg
YXJlIGNyZWF0ZWQuDQo+Pj4+Pj4+IFdoeSBzdGlsbCBkZW1hbmQgRG9tMCB0byByZXBvcnQgdGhl
bSB0aGVuPw0KPj4+Pj4+Pg0KPj4+Pj4+DQo+Pj4+Pj4gVGhlIHNwZWMgc3RhdGVzIHRoYXQgVkZz
IGNhbiB0YWtlIHVwIHRvIDEwMG1zIGFmdGVyIHRoZSBWRl9FTkFCTEUgYml0IGlzDQo+Pj4+Pj4g
c2V0IHRvIGJlY29tZSBhbGl2ZS4gV2UgZGlzY3Vzc2VkIGluIHRoZSBWMiB0aGF0IGl0IGlzIG5v
dCBhY2NlcHRhYmxlIHRvDQo+Pj4+Pj4gZG8gYSByZXF1aXJlZCAxMDBtcyB3YWl0IGluIFhlbiB3
aGlsZSBibG9ja2luZyBhIGRvbWFpbi4gQW5kIG5vdCBkb2luZw0KPj4+Pj4+IHRoYXQgYmxvY2tp
bmcgd291bGQgcmVxdWlyZSBzb21lIG1lY2hhbmlzbSB0byBvbmx5IGFsbG93IGEgZG9tYWluIHRv
IHJ1bg0KPj4+Pj4+IGZvciBwcmVjaXNlbHkgOTkob3IgbW9yZT8pbXMuIFlvdSB5b3Vyc2VsZiBz
dWdnZXN0ZWQgdGhhdCB3ZSBjYW4gdHJ1c3QNCj4+Pj4+PiB0aGUgaGFyZHdhcmUgZG9tYWluIHdp
dGggcmVnaXN0ZXJpbmcgVkZzIGlmIHdlIGFscmVhZHkgdHJ1c3QgaXQgd2l0aA0KPj4+Pj4+IG90
aGVyIFBDSS1yZWxhdGVkIHN0dWZmLiBEaWQgeW91IGNoYW5nZSB5b3VyIG1pbmQsIG9yIGFtIEkg
Y29tcGxldGVseQ0KPj4+Pj4+IG1pc3VuZGVyc3RhbmRpbmcgdGhpcyBxdWVzdGlvbj8NCj4+Pj4+
DQo+Pj4+PiBObywgSSBzdGlsbCB0aGluayB0aGF0IHdlIGNhbiB0cnVzdCBod2RvbSBlbm91Z2gu
IE5ldmVydGhlbGVzcyB3ZSBzaG91bGQNCj4+Pj4+IGFpbSBhdCBiZWluZyBpbmRlcGVuZGVudCBv
ZiBpdCB3aGVyZSBwb3NzaWJsZS4gQW5kIEkgc2VlbSB0byByZWNhbGwgdGhhdA0KPj4+Pj4gSSBo
YWQgYWxzbyBvdXRsaW5lZCBhbiBhcHByb2FjaCBob3cgdG8gYXZvaWQgc3Bpbi13YWl0aW5nIGZv
ciAxMDBtcyBpbg0KPj4+Pj4gdGhlIGh5cGVydmlzb3IuDQo+Pj4+DQo+Pj4+IEkgd2FudCB0byBj
bGFyaWZ5OiB5b3UgYXJlIHRlbGxpbmcgdGhhdCBYZW4gc2hvdWxkIG5vdCB3YWl0IGZvciBod2Rv
bSB0bw0KPj4+PiByZXBvcnQgVkZzIGFuZCBpbnN0ZWFkIGNyZWF0ZSB0aGVtIGJ5IGl0c2VsZi4g
SXMgdGhpcyBjb3JyZWN0Pw0KPj4+DQo+Pj4gSWYgdGhhdCdzIHRlY2huaWNhbGx5IHBvc3NpYmxl
LCB5ZXMuDQo+Pg0KPj4gT2theSwgc28gbGV0J3MgY2xlYXIgdGhpcy4gSWYgSSByZW1lbWJlciBj
b3JyZWN0LCB5b3UgZGlzY3Vzc2VkIHRoaXMNCj4+IHdpdGggTXlreXRhIGluIHRoZSBwcmV2aW91
cyB2ZXJzaW9uIGFuZCBzdWdnZXN0ZWQgdG8gcHV0IHRoZSB2Q1BVIHRvDQo+PiBzbGVlcCBmb3Ig
MTAwbXMuDQo+IA0KPiBJIGRvbid0IHRoaW5rIEkgZGlkIChleGNlcHQgcGVyaGFwcyBmcm9tIGEg
dmVyeSBhYnN0cmFjdCBwZXJzcGVjdGl2ZSksDQo+IHByZWNpc2VseSBiZWNhdXNlIG9mIC4uLg0K
PiANCj4+IEkgZG9uJ3QgdGhpbmsgdGhhdCB0aGlzIGlzIGEgZ29vZCBpZGVhLCBiZWNhdXNlIGd1
ZXN0DQo+PiBrZXJuZWwgd2lsbCBub3QgYmUgaGFwcHkgYWJvdXQgdGhhdC4NCj4gDQo+IC4uLiB0
aGlzLiBJbnN0ZWFkIGlpcmMgSSBzdWdnZXN0ZWQgdG8gcmVmdXNlIChzaG9ydC1jaXJjdWl0KSBo
YW5kbGluZw0KPiBWRiByZWdpc3RlciBhY2Nlc3NlcyBmb3IgdGhlIG5leHQgMTAwbXMuDQo+IA0K
PiBKYW4NCg0KRG8geW91IGhhdmUgYW55IHN1Z2dlc3Rpb25zIG9uIGhvdyB0byBlbnN1cmUgdGhh
dCB3ZSBhY2N1cmF0ZWx5IGNhdGNoIA0KdGhlIHdpbmRvdyB3aGVyZSAxMDBtcyBoYXZlIGFscmVh
ZHkgcGFzc2VkLCBidXQgZ3Vlc3RzIGhhdmVu4oCZdCB0cmllZCB0byANCnJlYWQgYW55dGhpbmcg
eWV0LCB0byBmbGlwIHRoaXMgYmFjaz8gQXMgSSBtZW50aW9uZWQgaW4gdGhlIHByZXZpb3VzIA0K
dmVyc2lvbiwgTGludXgsIGZvciBleGFtcGxlLCBkb2VzbuKAmXQgYXR0ZW1wdCB0byByZS1yZWFk
IGFueXRoaW5nIGlmIHRoZSANCmZpcnN0IHJlYWQgZmFpbGVkIGFmdGVyIDEwMG1zLiBTbyBpdCBh
cHBlYXJzIHRvIG1lIHRoYXQgdGhpcyBhcHByb2FjaCANCndvdWxkIGJlIHByb25lIHRvIHJhY2lu
ZyB3aXRoIHRoZSBndWVzdCBmb3IgZ2V0dGluZyB0byB0aGUgVkYgZmlyc3QuIE9uZSANCmFwcHJv
YWNoIEkgY2FuIHRoaW5rIG9mIGlzIHRvIHNvbWVob3cgc3dhcCB0aGUgcmVnaXN0ZXIgaGFuZGxl
cnMgYmFjayANCmluLWZsaWdodCBkdXJpbmcgdGhlIGZpcnN0IHJlYWQgYnkgdGhlIGd1ZXN0IGlm
IDEwMG1zIGhhdmUgYWxyZWFkeSANCnBhc3NlZC4gSG93ZXZlciwgdGhpcyB3b3VsZCBzdGlsbCBk
ZXBlbmQgb24gRG9tMCBmb3IgcmVnaXN0ZXJpbmcgVkZzLCANCmJ1dCBpbiBhIG1vcmUgY29udm9s
dXRlZCB3YXkuIFdlIGFsc28gY2Fu4oCZdCBhZGQgdGhlIFZGcyBiZWZvcmUgMTAwbXMgDQpoYXZl
IHBhc3NlZCBhbmQgYWRkIHRpbWluZyBjaGVja3MgdG8gYWxsIHJlZ2lzdGVyIGhhbmRsZXJzLCBi
ZWNhdXNlIA0KcGNpX2FkZF9kZXZpY2UgYW5kIGV2ZXJ5dGhpbmcgYmVsb3cgaXQgZXhwZWN0cyB0
aGUgZGV2aWNlIHRvIGJlIA0KZnVuY3Rpb25hbCBhdCB0aGUgbW9tZW50IG9mIGFkZGl0aW9uLg0K
DQoNCg0KTWF5YmUgeW91IHNlZSBzb21lIG90aGVyIHdheSB0byBhdm9pZCB0aGVzZSBwcm9ibGVt
cyB0aGF0IEkgYW0gbWlzc2luZz8NCg0KLS0gDQpNeWt5dGE=


From xen-devel-bounces@lists.xenproject.org Tue May 12 08:15:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 08:15:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306611.1578458 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMiGf-0000WZ-8j; Tue, 12 May 2026 08:15:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306611.1578458; Tue, 12 May 2026 08:15:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMiGf-0000WS-4U; Tue, 12 May 2026 08:15:05 +0000
Received: by outflank-mailman (input) for mailman id 1306611;
 Tue, 12 May 2026 08:15:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wMiGd-0000WM-ME
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 08:15:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMiGc-005hPj-Vd
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 10:15:03 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a02e17b-bab6-0a2a0a5309dd-0a2a4504c028-36
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:15:02 +0200
Received: from [52.101.85.27]
 (helo=BYAPR05CU005.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a02e184-1dec-0a2a45040019-3465551b2260-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:15:01 +0200
Received: from CH2PR07CA0039.namprd07.prod.outlook.com (2603:10b6:610:5b::13)
 by MN2PR12MB4125.namprd12.prod.outlook.com (2603:10b6:208:1d9::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Tue, 12 May
 2026 08:14:56 +0000
Received: from CH1PEPF0000A349.namprd04.prod.outlook.com
 (2603:10b6:610:5b:cafe::b3) by CH2PR07CA0039.outlook.office365.com
 (2603:10b6:610:5b::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Tue,
 12 May 2026 08:14:56 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CH1PEPF0000A349.mail.protection.outlook.com (10.167.244.9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Tue, 12 May 2026 08:14:56 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 12 May
 2026 03:14:55 -0500
Received: from APPOL-18KY0J4.xilinx.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via
 Frontend Transport; Tue, 12 May 2026 03:14:53 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=J/vMmPrji07mWzP3W5+CTWrUCYYks8X0OWFaHt0uP45n1FPzhfmge4Ib4VxCewIlJ0GR+mPI+vIS5MRrGSq9BFZvfSLGLHr/sQlAtlleY+WvQYnGVG3NVJT+phQJOcS6sNA31MxVCXjvZXpJ/Iv1Xo4KIdK6Ej4Y5auUnwir6RODL6HICJp7+vTBSj6cZSiwM2nuqHaW8UlsbVN9ZdhpFJVCZhTQ79vLUYZi6JORnJYP1uIj6x/vCf4YmMmxg07QCzwmvFV76ZB0pAAvLPx6szwkLtQv10a2fKz81B399YXCjVwGQQqdpiJ6DoSpq4Ez0ssd+dzsfzEUii/IQHlMAw==
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=tKswvIF4y7K3yp5QmM7rqu8Sxek2Dgy5WMsD5+uf7Mc=;
 b=GBl+HeSTmaNFf92sqYoVsJkvpxrJj+ddOjcmiJEuEbsERb1ZrpSqbamBCcxPklEjKqP2gluCCabkZk9P4uxdowsqge/3pUyELgIpEU/EFWxRZ2yHYHHIVQDYfI0dbAL6Uu1bh43u8QvHGxU9T7yRvWXDTJ2tYrr5QyBSJ67gVSZ5pd+98e/biNv2GuyYjN4FkU/2oEvmTMcdVgV0Nt/+QhjPhJgv0raUlKyTnqPCfIZ1xR9sY/QU6dRWwcqjxMCV2ejlARszfKCIaMPzxLNGr4J4maJ09RZSx7Yp4vvwUPkS9TPFCFCYWBw8pOc0lGbsNGl2AyYdQxvhzKlW+coZyw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org 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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tKswvIF4y7K3yp5QmM7rqu8Sxek2Dgy5WMsD5+uf7Mc=;
 b=SF2kDDVyA6+l7bI70Nf3BqNTA/5tuOxM1vuGhEWmGykmsvnfLjH8t6MvIh4EE4VIq2iA35a4CZfYy7aJQF2sHhlpYpkLS4ZuJkjjliOlxuGMEooR0s9USX6b1EHTXmN5M97X0mKaWuE+PWJfMrTXuGfLMLryoSRgrGiXmwr0Ce8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Michal Orzel <michal.orzel@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Oleksii Moisieiev <oleksii_moisieiev@epam.com>
Subject: [PATCH] xen/arm: sci: Don't create a domain with unsatisfied user requests
Date: Tue, 12 May 2026 10:14:42 +0200
Message-ID: <20260512081442.48149-1-michal.orzel@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A349:EE_|MN2PR12MB4125:EE_
X-MS-Office365-Filtering-Correlation-Id: 3c47f011-cae1-4dc4-1450-08deaffe8d5b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700016|18002099003|56012099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	HoctdsyCMk7OuX9Hv2HmNkp7JTMqZyy0c3InzaNkfM+SKGarP0WzwFFd6gyfYxQ/ftPJWqxQCP5+mweuaiQhs4wJKzkGhHnSJIVWzgpwysR8Xa03rTKKZnzbHgvv1VRgKCO2Su0zXIWo+VjlRaoiBRJnhzWK2gu+TsOdyOpXlRj7WpZqIJvFUrkWu44726GSGWRC5E4/25Oyfaz+Y6j/FUtmJ1GKg2w30qQ6hluQG7C0GWLM8irt16yQaPrrQaETLb9RmBQZ/QrOSY9KEqnu1CiawG1NBs2PSNPBdYv+cLYndnfMBBM55yN7q2N0cTz1NHpHD+IjDaSeB6bDoWwn24YhOiL+cvMVYHGsQBPIUjNVeweBKyGpbI/LA9IUX8BVQgdCPn/r3E4qgTI5W+6QpniXPvzztgYn/vB1sluIc57+zGXA7nuoRcR6sqhPU6DlzCCf2Faot6KJTUi1X4zyj7MGPsYDgtcGScXWaQKrhewAWMqNR7eLTX45MFHMbDyNLuhffDv9aHcmivcW6OAaLkLHYhz9cG/g7AjmoMXFy4kY+NsLB3Y9vE/Q5Z2gvtcfmyrWvR7yodPyMszmIvdS4F26neX3OduMBsgl6COk6/k4bsbtae5b2u0V7fjgqaV8ZNhGjB5+z88w6SL/W4s/prpPQREgPspFiYIYc++Hgjk2EqtQtQ4zjJ76bJ4SeMggox4wNIY/8ZkOl551GIxtoSiHpxIhfTlBgNWC24kmRQQ=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700016)(18002099003)(56012099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	TXXcuH49MPvH4CaPiSLn9fbeEDYXzukPL2Wb3EIj5+otuSabVNczWkAyiQr35Z8VKGpPhxqKWPu6XtrR3GdO5uuaY5enNtfxog3nuVlQI8b5xd7onBkM5sZ9dTs3WFbSH7cBC0he3PFY5DU7eIH/HXHi77GK4954ijA4OzWgpbnrz3r0kl0rskChtswHzrHUm5sy6QhSBWD3Csmk66WZZay/DDq51q/BFRytlb+TIosazqW1Gsss61frRMJU9AfFIFNTKKo9liLjlcmyQj7DvHXWY55qW4PrFCHYY+Gwk4axCbtcaFEB/e4mjBOjzdPXZicOSj+SuBzR9F2m1mM4FbQDxVJNTsCRh0XYhxdTOF9V3QIOdnAVSdifoNt4W34dRnxZTXb0VS9hvEex6/BB9D4Wt2dtP0kdU0dkobg9fUjU/7VswIZlxeAXn+MMK91K
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2026 08:14:56.0747
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3c47f011-cae1-4dc4-1450-08deaffe8d5b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000A349.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4125
X-purgate-ID: tlsNG-ebf023/1778573702-2B96A3FF-31ED3B11/0/0
X-purgate-type: clean
X-purgate-size: 2812

On Arm we stay on the safe side and refuse to create a domain on user
requests (e.g. via xl.cfg, DT options) that cannot be satisfied due to
the feature not being compiled in. SCI fall through the crack and does not
adhere to that i.e. a user request for SCI type other than NONE when
CONFIG_SCMI_SMC (and thus CONFIG_ARM_SCI) is not set would be silently
ignored. Fix it by not allowing anything else other than NONE if the
feature is not enabled.

Fixes: 10e7473d6024 ("xen/arm: scmi-smc: passthrough SCMI SMC to domain, single agent")
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 xen/arch/arm/dom0less-build.c           | 11 +++++++++--
 xen/arch/arm/include/asm/firmware/sci.h |  5 +++++
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 6f73c65e5151..52cf788a45ea 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -273,8 +273,7 @@ static int __init domu_dt_sci_parse(struct dt_device_node *node,
 
     d_cfg->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_NONE;
 
-    if ( !IS_ENABLED(CONFIG_ARM_SCI) ||
-         !dt_property_read_bool(node, "xen,sci_type") )
+    if ( !dt_property_read_bool(node, "xen,sci_type") )
         return 0;
 
     ret = dt_property_read_string(node, "xen,sci_type", &sci_type);
@@ -284,7 +283,15 @@ static int __init domu_dt_sci_parse(struct dt_device_node *node,
     if ( !strcmp(sci_type, "none") )
         d_cfg->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_NONE;
     else if ( !strcmp(sci_type, "scmi_smc") )
+    {
+        if ( !IS_ENABLED(CONFIG_SCMI_SMC) )
+        {
+            printk(XENLOG_ERR "xen,sci_type=scmi_smc requested, but CONFIG_SCMI_SMC not set\n");
+            return -EINVAL;
+        }
+
         d_cfg->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC;
+    }
     else
     {
         printk(XENLOG_ERR "xen,sci_type in not valid (%s) for domain %s\n",
diff --git a/xen/arch/arm/include/asm/firmware/sci.h b/xen/arch/arm/include/asm/firmware/sci.h
index 3500216bc250..485ce211c995 100644
--- a/xen/arch/arm/include/asm/firmware/sci.h
+++ b/xen/arch/arm/include/asm/firmware/sci.h
@@ -148,6 +148,8 @@ int sci_dt_finalize(struct domain *d, void *fdt);
 int sci_assign_dt_device(struct domain *d, struct dt_device_node *dev);
 #else
 
+#include <public/arch-arm.h>
+
 static inline bool sci_domain_is_enabled(struct domain *d)
 {
     return false;
@@ -162,6 +164,9 @@ static inline int sci_domain_init(struct domain *d,
 static inline int
 sci_domain_sanitise_config(struct xen_domctl_createdomain *config)
 {
+    if ( config->arch.arm_sci_type != XEN_DOMCTL_CONFIG_ARM_SCI_NONE )
+        return -EINVAL;
+
     return 0;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 12 08:54:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 08:54:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306626.1578466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMise-00062m-0r; Tue, 12 May 2026 08:54:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306626.1578466; Tue, 12 May 2026 08:54:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMisd-00062f-UN; Tue, 12 May 2026 08:54:19 +0000
Received: by outflank-mailman (input) for mailman id 1306626;
 Tue, 12 May 2026 08:54:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wMisb-00062X-Sh
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 08:54:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMisa-00DfSy-QR
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 10:54:16 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a02eab5-2eae-0a2a0a5409dd-0a2a4503c76c-4
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:54:15 +0200
Received: from [52.101.72.7]
 (helo=AM0PR02CU008.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a02eab7-672d-0a2a45030019-346548071e12-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:54:15 +0200
Received: from DB9PR02CA0026.eurprd02.prod.outlook.com (2603:10a6:10:1d9::31)
 by AM9PR08MB6289.eurprd08.prod.outlook.com (2603:10a6:20b:2d7::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Tue, 12 May
 2026 08:54:07 +0000
Received: from DU2PEPF00028D0D.eurprd03.prod.outlook.com
 (2603:10a6:10:1d9:cafe::1) by DB9PR02CA0026.outlook.office365.com
 (2603:10a6:10:1d9::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.11 via Frontend Transport; Tue,
 12 May 2026 08:54:07 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU2PEPF00028D0D.mail.protection.outlook.com (10.167.242.21) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.8
 via Frontend Transport; Tue, 12 May 2026 08:54:07 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by GVXPR08MB11184.eurprd08.prod.outlook.com (2603:10a6:150:1fe::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Tue, 12 May
 2026 08:53:00 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Tue, 12 May 2026
 08:53:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=pBj5FEHuO/xXKcFRZ3w7q85U8tNHmqzp+a9QSdToxUfm6VulGwfX93NlgXozuC3I3tzerTKvemUTqaVsGXv1+/q/ylakFiGzrQUjRCoFz2HZpm9+s82s+OCxZmFv/uyCKL4sTnPUoCe+RJyS3S/n0o5TAhV8yJKdV3GKAJ/1MrgVWgFSuOCSUfBx9TOE//PHWKwEljA6eQmUcsxE1BFEwfi3V9KarlWnx+zUFSnyBBSSfRx6zADb2eT7QHkinumYM0iFftdpk+Cy3RYYKNAfzZ6ESjU7ny6kBEa6N6Egbo/Bip3gNkfhByrrXaZwGg+eYNrTV3JRIPhAOr0LaeiI9A==
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=cSvijUsJe/UOwM67snX7fIDYWf5TwmyPin4/myZJ2io=;
 b=c2XmONMhirWN6118UC/Xhfyb3cOg4MYfAvnOhHb3GBM1Dg4WRw22tNGexvoQmgCScjgivv4U3gLvTxHbyQt5NQNBON83It17gpVp4dJ9xEg8W1L+INy4b1dWcjvVFmnERsHH1BFN/vY7DZiIZROI7i29eMzr3UWfXckWTiZ81CicaQwHUwSoZqJ00RrHf343KQQQzm4h7rPBMKPO8AYaZgaI0BfN1jL3ePk5ezqtpWwsAn9xUoR37Iyl1J+eIP0IK4/StY2GqLXG+wHt0+FOX21qU34mRYduKFcmdofqbt2IYyPeUbVOtn0p9GmEW9sdAhS8GH2GgOzI56S/MJJK/w==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cSvijUsJe/UOwM67snX7fIDYWf5TwmyPin4/myZJ2io=;
 b=Lm1dNpWG+TfMAREk8ymXTzShfQuVm30nyd5frfphUFqrFgJpzwkNlBjebdGU/Yn5VwW2Pj84VOFjJHybOwLBmOGlLiL/Ab1wSnSW5xbzF7ngYRbLagOUgWnhALXOvNc2wCrMlMFgheuqSpe0Akbv9FeInSPRP1OMNaSTJoLY+48=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=K2P4olRIsemva2iDEN9/jKFRKwp4mbGX55ptazMRHCWBVgfAG4SUZHcnhX6yHZOPotml4FuoccYUx4SSngzhkAZ7PN/H+NsA4Jwpyu2pNDRKnRH+RFLguiOcM5+OfcIXg8ETNYFQeEaJYploJlfPLRbKmeEB/zyqSCj4EFGX96YikEr511cIgLlsJThtSSa26gLGtexAK7Cx7IafcPxWHbedQYUeGyM1KTCj2CJGSKBPQQVIU4SzaQzQgjsnoIbxoDYFhm5UBHVFAorXsjaoOVMf22v6YzGjeXrFeZyy6bxRKsNpT5oI2WuLlkz59M68SVrruDw9n91GxS1flXWh7A==
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=cSvijUsJe/UOwM67snX7fIDYWf5TwmyPin4/myZJ2io=;
 b=H85SI1+HQdC2h0lf6SlcxL1JOjf+mv+AI12fA9O0ll6c82+iDCELn8x974uECWgYA8kH4qdcJY7ydk6/o2UuCPi/7jkL/n2gWzmgF8tdRo25a9sH4ySiRVt+Nnsxw6KFWTk6rZmtNKvEx6gsCPVXmPMcGFZOmmoa+aCcPV+rPWN0k6PL1YAc/mhIAmPhlNfj5bD6dfb3qzMrHv7T8ijuxk0JYl0HEFIt4obuDZKw/Z0laBCL+v9qsGfXLpulVgBnDyjZ0zRtGlViMcZhuPQlRjsv25w93hYgffTcWHxXgEFyH2mAilaiPgYxaJXhhBfwWTXjBcFOG1nCWffw8zZ8tw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cSvijUsJe/UOwM67snX7fIDYWf5TwmyPin4/myZJ2io=;
 b=Lm1dNpWG+TfMAREk8ymXTzShfQuVm30nyd5frfphUFqrFgJpzwkNlBjebdGU/Yn5VwW2Pj84VOFjJHybOwLBmOGlLiL/Ab1wSnSW5xbzF7ngYRbLagOUgWnhALXOvNc2wCrMlMFgheuqSpe0Akbv9FeInSPRP1OMNaSTJoLY+48=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Michal Orzel <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Oleksii Moisieiev <oleksii_moisieiev@epam.com>
Subject: Re: [PATCH] xen/arm: sci: Don't create a domain with unsatisfied user
 requests
Thread-Topic: [PATCH] xen/arm: sci: Don't create a domain with unsatisfied
 user requests
Thread-Index: AQHc4eeP1O8mBXB1rk+o//qB93qmFLYKFYUA
Date: Tue, 12 May 2026 08:53:00 +0000
Message-ID: <DDA5C908-6C05-4196-AD53-1B40A3E72C1A@arm.com>
References: <20260512081442.48149-1-michal.orzel@amd.com>
In-Reply-To: <20260512081442.48149-1-michal.orzel@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|GVXPR08MB11184:EE_|DU2PEPF00028D0D:EE_|AM9PR08MB6289:EE_
X-MS-Office365-Filtering-Correlation-Id: ec9faf35-6823-48d1-7412-08deb00406e3
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|11063799003|56012099003|22082099003|18002099003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 oBH5gPyAvKAP6ZNTscxxwOPsGw1nXsIZbRbEAV0tiX3FFfZNCwCeBoamfHxTq1iFqDYJMkL9ScbbguMbZ8nHle8+4mYHqezaIQ1y50otqCC+f5ZCY+Kb9oVVnPZrx15S+Al3P5BhjIxoaFmK/GguOzT7gFlits0cxb+/q/VBLvBLJQ/v6PvToBCfU4Xx18B11NBlVKHKaPVfKEVAP6JM495R9c9kZf6FVbTt8lRrN/6u3zp/Cz5TjIBi9zcDWMKH6J/R+YPcGWEud2xNDqWXXCX+ZNqIteLmCpdOoEAji5VcwBRSp8cytA0gYlTu0g3LSE5SlOQQfbBEgVyBoj22Bmb5GM11ACPejD5oaKYIp+4tqsk4kc+JhCsKY9hGGA9jMTtWoHMAIUBvHGUcHU0kbHKjlgrbBnIxdWxOamp2aoV9r6QKdMo31zVnV0NsvBWEgSjULR/6I4anyRA/H1xBEp+SbgdmRJoyQclD8tJ0FasQJfD0eRjmi8qv4tkAWfg7oMBQyidSBzhIRs/0BWUrB2/ovNu4cCFk9nSAmlhO1q1VJCWS+XCLMMvAAMqu+cycJgCdHt17S7GAVTQ99kj7dTqmAv8zCCvqM/ZlX859pRHo71BqikSmosTZvwQ7DL1IhD0+UZcAD8UBzb8coXXiHJmcasYAW18kKUVlxkZ2xk1/64byYtpL7aEuS5zfeSjeuGLN+e4jDt3SolqQjHAM3QSbMNOcxpreuQ1hLeqjZdmWef7FAYWGQkH9xhXnU4Ug
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(11063799003)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <DE39E31374419449B3BD03847B5E555D@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 DoF6pKaATShF51MiFrc4CNwZuSRmbHrI8J+O+4aHGwLKK/01UJLN9OsldZISVSu4eVQ238wzrv5Q3J3S674XdBIHK8kxladLxJKPrawxf/1VaH83m3fTFD2rZ3EVl5Z7nXlpbXK5+bSy7bqG2cu5bMPBgAKh2CVfjhOSc5QJ2bNlGdLlL2KB1jJFMfu8OZToVv5zFUUUE2/gd5svdxKeXl7qVeFvqtdkbEZ6LeoxKXJrofTtW3Xqdkk27+XPy56A9Lggm4IgdAgRoOXOYaJjt0F1fjtTNn3zahduvORP6dB9Oh6i5Xg40HpCTmRfwTSnn87/nkJmspXCrsc+f9EQ5Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB11184
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF00028D0D.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	76b2988b-30ee-42e2-aac1-08deb003df29
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700016|82310400026|35042699022|1800799024|376014|22082099003|56012099003|11063799003|18002099003;
X-Microsoft-Antispam-Message-Info:
	0MBkyZxRscBoIzSx5g6pTErrbvEQk5oVRTvpVUOpOsG50llx1kfV93l0P3JLjnv4+n1rgYnLaJ4e4szEHQNM8sEVHfwbLAxZgp+zo0fCnjjj9h596JgrtGJDGgtriHXM82DdYK8jmAEJDsoZb9v7Apsh6KJnVrOQLXs6nDYbCk6qEj1RJMgfqPch9bOduOq4B1RReN7j40I4lgvLHBnJGVp5n/mLPWC8eIXjP4z/3c2MVGMSFi382G+75Lwz1Y81WuzPD239K8OJxEvApfa+Qky9yk2/EzLhTD25nyCIeySvzQqxy60i51oaJ68aMTaokff2TGBOpN57EE95v6B+ZxMkJYvWZUbEhWzffxyD+yBu3I+e0ZsaNFCqlcTyITZasaFMS6In9RW1mbC19NkYTwzPmXKHV0KhpEHHIyQY/OlNC8oQnDzccTd+pLgVis7PTFH9FtNYWYzwO/4HVp0k/oHl7vEv50ScmmRZs2JMklMkljzny1YD3fsyNgLcEBRdRvoYXilvdOFY94C6a68tGFHb5to89LWaZdYxwVOWNlx4Hos5D/fFSsDHuphzrPIMicZ+zo6dOApLHkO9NwUW1gemfVfJuUg6Nk9nBt93mu3O3I4naGmuYBW6EaeKdrKoruS7LtIhcHNx/ZnyT/VXWOvRndF8p5mrRlfwLw2xkNjKF96YpTl2hoQE4Hlz56tulfE0flrz7lhy0HnJmdGpS7rohR/A4Lgd3UD0SafuTno=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(36860700016)(82310400026)(35042699022)(1800799024)(376014)(22082099003)(56012099003)(11063799003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	y8RvMewNYyqngI48n0lc96h0Uz5Nd9nmvSW5LchAbL824ZJK4Ecm3N21LLUfR3C5u7vpRk/1rO6PlZh1eck7qeJTMjbnXJdmjN1XomCcbiedqo6CxwpaDbXXx6L47oOP3jgIr7VtVG2/acjAtUSkhx/mMB0mgU1H9i1JzFivAn/Ukj4m6yAJMW91CxKqMPnSfXK9F9L/7EAGSmGbtwp5fOlmtEeudn0gAiU/zGO9Q5umgLlQ8JACoyMgM9aBWjdqwyKYdrj+HH4SskxkaY2lC/v/oARD4pQi7JRGtqOiMcM4NIWpEwGlGsHmsbscxlzd6nerideZfZNjkGZNSJtq4QyelErf82t9giQ+Qb14fx9CPtJKAF8Gp03AKCr/aOHEzMkGv07qiF4O8P7ad/yO/8TkTn2EACQJED4H/Zm/HgjNXdnfDhffAm5OcU37cMgd
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2026 08:54:07.4100
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ec9faf35-6823-48d1-7412-08deb00406e3
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU2PEPF00028D0D.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6289
X-purgate-ID: tlsNG-33051d/1778576055-4006F938-3D8BB1D4/0/0
X-purgate-type: clean
X-purgate-size: 984

Hi Michal,

> On 12 May 2026, at 09:14, Michal Orzel <michal.orzel@amd.com> wrote:
>=20
> On Arm we stay on the safe side and refuse to create a domain on user
> requests (e.g. via xl.cfg, DT options) that cannot be satisfied due to
> the feature not being compiled in. SCI fall through the crack and does no=
t
> adhere to that i.e. a user request for SCI type other than NONE when
> CONFIG_SCMI_SMC (and thus CONFIG_ARM_SCI) is not set would be silently
> ignored. Fix it by not allowing anything else other than NONE if the
> feature is not enabled.
>=20
> Fixes: 10e7473d6024 ("xen/arm: scmi-smc: passthrough SCMI SMC to domain, =
single agent")
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> ---
> xen/arch/arm/dom0less-build.c           | 11 +++++++++--
> xen/arch/arm/include/asm/firmware/sci.h |  5 +++++
> 2 files changed, 14 insertions(+), 2 deletions(-)

Looks ok to me

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Tue May 12 08:58:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 08:58:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306636.1578475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMiwu-0006l3-H0; Tue, 12 May 2026 08:58:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306636.1578475; Tue, 12 May 2026 08:58:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMiwu-0006kw-Ds; Tue, 12 May 2026 08:58:44 +0000
Received: by outflank-mailman (input) for mailman id 1306636;
 Tue, 12 May 2026 08:58:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wMiws-0006kq-3L
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 08:58:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMiwr-00325c-GT
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 10:58:41 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a02ebc0-bab6-0a2a0a5309dd-0a2a45019034-4
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:58:41 +0200
Received: from [52.101.62.35]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a02ebc0-c1f2-0a2a45010019-34653e232d5a-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:58:41 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH4PR03MB7603.namprd03.prod.outlook.com (2603:10b6:610:23c::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Tue, 12 May
 2026 08:58:38 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.021; Tue, 12 May 2026
 08:58:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nnxlfFEIl6LbOy5ahady0CbZ3k4PGlQaHE2iX0YaQsxb6oqNE9Lls+PJ/w1IASsy6IjDU0qABeEFZEH2zP+mf2MxpQtItse9pAvnPJgxCLCfNGulB1IBFuiDjhIlYq5UjAzk76OwFv+CjWr/qQ5DPkiHw/e5KZ0CEpFwJJsuhOtEUlXdpkf8phpDOVOMTFeFbxdkUFqV743M1G2DJaIKJ2wcSoVY2dSGCj2lxIIVMDHfipkpULUI63zUr9ltid9Ny6YK3QiCAxiLq84Lijs7+eyIuHC+ce7R1ZExeudXQgGLTyOv9l/9YZepPVTzBZ4PntzmJLX6P1B93GA0qXmphw==
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=qH4EWmAqN6sVd9w3DT5QYXve3FhDQLaIzlvXI4tn7w8=;
 b=FjZs75dTFqogmSMMmoqDHnmV2d2SAry+GkyHaEFCHIVTvY4BqDoARPOFKgcpWsRqG0jd6KZHGcXTRn4W/lo5GEeK53fRSbCCZEE4h4i9dhofWDF1CFYeQtMZjmVDTbujgzOV1EOiVRzP1AhRxh+0pjKx8rcbFlOtKueRMoYrHZZPUV1l1TaX4JcqlNx0e88BPuFFAp69sRGgarZVQC9ymxev72tEALAS/Rib4amiiDHGLcY44YBmCoH9g2fCXMOP+p4zuFkc4+4HENTEfaTQyMQWdgIuzNj+DcmIAwv404j6nonSA+ib8hR+h7GO6scgtMQhgeglI6hH2iY2lILfUg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qH4EWmAqN6sVd9w3DT5QYXve3FhDQLaIzlvXI4tn7w8=;
 b=hTSVqqLmUtvXKccTCLImU8P5r6GG+en4bFc8IJs4dfmj2ZIGjsfgpa52/jhb0DwmTstJG1uBsE10nbCxhFUnT2MCRD0r51Ok9wr/fVHSCtDacJWA/YTWywqZVf2rcrBd8OW6Ese3ucl1BzyeE9Vc5PGv1oZTyw/r9goHSnszRNk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 12 May 2026 10:58:34 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
Message-ID: <agLruvURfBUb-VgF@macbook.local>
References: <5efddecc-3665-4a53-9eaa-b117370cc0e4@suse.com>
 <5168207f-33ed-4fc4-918e-6c3b454b0efa@epam.com>
 <efb254c2-f52a-408d-b225-e4e03935d05e@suse.com>
 <d0916f22-b5c0-4c93-935c-4cbe17e626d4@epam.com>
 <e5844c28-aa68-4bf6-8287-a4ceeda3a1d2@suse.com>
 <878q9vt0lg.fsf@epam.com>
 <e9610f70-85b8-44d9-8e13-da26d506d5b7@suse.com>
 <877bparq9t.fsf@epam.com>
 <1d591ff7-599d-4dfa-b521-bfaded430a76@suse.com>
 <925f2076-f98b-4102-ba45-a85a83861c9f@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <925f2076-f98b-4102-ba45-a85a83861c9f@epam.com>
X-ClientProxiedBy: MR1P264CA0205.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:56::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH4PR03MB7603:EE_
X-MS-Office365-Filtering-Correlation-Id: 5ca4d1e6-781f-49eb-b1f9-08deb004a807
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|22082099003|18002099003|11063799003|56012099003;
X-Microsoft-Antispam-Message-Info:
	pvPKAKsVLLkl8pSs8QlzmGS7GSRHqWd6hxf05emM+aqu6PrnEmcYicIItb6vbQp+dpLKAfKwwFQT+Tz80imF9nEaGIE0y3k39Bg9XzpWjnLsi90X0BHRbLg5RLhIKnoGg0uF3fS2y7m2zYxygc3ItmzsJVWJAee+Qh702/IG5tYCx5j1Gjd/w091+vxn6hjtHHTC6+RvjBk+o7MDnC8mBqrZMfFmiMKQ3N4Z4G0cQcT1DduMCxC871bKe5jIug4hvqASS9C6aOTtmyfxFbIJh9H8ApnMDiYe41GyFf7SLT5Dbmf6O08ydZMLOTxGtdKRTO3QBFdjJ4twuq4KBBM2xkLMkB5Vj+jE7WeelPoks91IeEN5ayk6ALGu90Yz5QqLfwDKnf1gxDLAewnMnwHxH8Uif0+RkN0zlatIvlZNswlTdcCkzGBugps1H57oBK9XFSaeUKhd+ebT0g5j9yvsW13mylnL00TJTpPa5SuEmn6kUtkEhqWcstg30GbPY5N+4FkE8KKCZD9aSIz0UYAy8h0K49Lvw3XABIbBVtGv3aSfpznEfxmM9XIA06gdI546Jxydfod8tY7LXJrQmmrOA8k0F9R9/Kvypc2v5z3t2gojeNCzdqC557CHlEtT0Csbv6CugWdrj5KxrKEq8iGI7SbBZ9xmk7/WNxZUPWRq9b9D3ov3oWVk06zuHBH0BJ/7
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(22082099003)(18002099003)(11063799003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b0xFSDFnQXU4NUQ2cGFEVXdLUndIT3VzUDlUcFk1Snp5aFpXUDlMdVBWRVRP?=
 =?utf-8?B?NmROWjdHMVJyWmlWQWxMYVJzL3RWSlF4TTVKaURrdzArcklxcDN4c2c4VVdx?=
 =?utf-8?B?bng0ZDF5TG9CQjg4YTNHRGZ2cGh5eHlnQjFoU3MwRUNXY3U5R29OUzBSWXVO?=
 =?utf-8?B?aW11VVZpQjZEcDlPM3EwTmU3c0tjMFdaa2tIZGlncFJIRDdPM3JCUlRBdUpU?=
 =?utf-8?B?SUtueStmS0tBZWNROFhHU2tCSGxVNTE3dXJ6SUdubGxhMG1FWVBNdU1jaENI?=
 =?utf-8?B?TTFRa25XR3cvdThMNjUrYjdockZrT0RSUHErL21ZK2ZDNzQ0R0pwSmJaU1A5?=
 =?utf-8?B?OEovSEJ3Ykg1bnA3aTVWYWJYR3pqazhCNnY0endhN1VCVDJ3ZURHdHNhYy9w?=
 =?utf-8?B?T1NQbFdPWHBZVWtjaWxPb1J1dzRVcjhFaWJOVERmMUtUWTEvcHZBTWZwd25p?=
 =?utf-8?B?bzN6d010Umt6KzhSdUF0NnU0bmpzenlKQ3AvY3czNUJGUzQ1ekFoQWFyZ1NQ?=
 =?utf-8?B?Q2ltVnVkeDlXY0E3aXdLNUphMDR4V3gwcDQrQ1RPNkplQjlrWlZQcXBaRUVl?=
 =?utf-8?B?SEczY0RLdCs3dTM5T21yT1MzeW5JMlkvL0dtSVpLYW9OVHF6ek1qVzhaRVNv?=
 =?utf-8?B?VW1IV3dsa2ZvTUd2OS9wdktoVS8vSHZJRFhodGhyejNtNno0eGlaVlUzUHRF?=
 =?utf-8?B?bENHVlFJVjdBeWJrQm4wT1JjNzdKelJOSEt2OGJJV0JyN2pxdUhxSGtoTjEw?=
 =?utf-8?B?Z1ZJUnFkSUR0YXFxTzJKdFdwbDJ2ZnRJTGk1SnNhdVVCbVczK1NCek00Z3Y1?=
 =?utf-8?B?ZitYc3MzNFltOEdBUG9ndlU5NEdFUzdoQmRGOSswd25DMzFHRjg3aTdNNVdM?=
 =?utf-8?B?VnNuSkZpSnNzWnlHdC9xZXpYQm9QbnpuWEtKQllDc01vcHdENlNQRUo1Sk9v?=
 =?utf-8?B?K2RWcmdqWCswaTkxaXhjdGlZQlpjNVBqY1FUZW5JQ2s2VURQcmlTVlhLcWxr?=
 =?utf-8?B?UmNaVlFGUXJVU1lpSEZvbW5sWlROY3MrUkY2bkZ3eGduTDhMNzU5YUlTTXE0?=
 =?utf-8?B?NnFBMU5OelE2L3JpY0VNeGVWSGFSeDJDQmI3N3VmYnVCayttU1YrWXFoZW9D?=
 =?utf-8?B?czNRSklOWnBjMjgrR1p6US9FRlE5VkxhSTV2ZjFvMG1wN3pXcUF5K2Y1Y1N4?=
 =?utf-8?B?ZDd5Q2tkUmhYMmdQc0haUWdkejJ0OWpHYXR1ZWhZOU1XZUhlSHJFUGZuUEF1?=
 =?utf-8?B?MkY5ZVhiamZ2eTl6Snk3YTA5R3lDZnkxSWVEM1NVeThqYmg1TzhtWis5Mlhz?=
 =?utf-8?B?Tnl1UzZENWpyRXhESlYva1ZwNFY3OExBVjBQMmZBZjFqWVl3blY3WVZqTmZV?=
 =?utf-8?B?dVNkNklsTnBaOTdPQUlXZjFCd1MvUmpJcDVjeDdndm5qbHVNaXJFSXBrMndr?=
 =?utf-8?B?eVY5T2I5b1ZJRXE4b2dZWUd4bjNLak41TU83NWo2QWxIbG93UVBiOW9MNkZT?=
 =?utf-8?B?ekNWME9GUzdnM2pNV2pPNkt3NE9iM3N6UWc5aEhHUHpHMzlNMlpCVkVEb0NS?=
 =?utf-8?B?S3VQRW5GM1BIOFkxTmx3TVlsSnZ0dnlSeDBwSmZxM1YwK2lSL1pUYWxHT2pB?=
 =?utf-8?B?NlFmUUI3NnZGcnIzWHRZQWJvUWhWM0hhU2JFcXpQZHV1NllyTGZDQ0Q3UG1z?=
 =?utf-8?B?eWNiMUhML29OYnl0Yy85eFhrSjZ0NTdzMm0xR0F6cDkvZmpRd0xHcFNRRmNT?=
 =?utf-8?B?N0h0SHlUTHlROXRhWjZUWlZ2U1VuNnBOaDFRZHRIa1BuYXNneG5rUmZ2L1d3?=
 =?utf-8?B?dlp5cjRHVk1obHJ5MHA3b0tpSmFDZ0I1RHJ0cU5TRWcwanVPMlFFanZsK0tm?=
 =?utf-8?B?Wkt3M3hDTTZ0OHlEWmNIbHpweWF6aTJsWXM1YVlWYU9teEQvdDBsL29ISUhi?=
 =?utf-8?B?dktsM3hHT1hHTnk3dkZDLzBWeXJ0WTd3Tm1GYnVyN2t2Q01OZE5aZHh4Z0lk?=
 =?utf-8?B?TWthT2dxOThvVXJ1TlZ0anRKVlNob2lJaWhKN2lrWmYzbW5UK2FBay96TFVy?=
 =?utf-8?B?cGNUNUJxYXFMMmlrL2FyTG9iS0lOb2lFZ1BMV0lPbkhxM3pIZlF0cWVsdzF2?=
 =?utf-8?B?eklCUzR5Z3R5VEFPT013R2htV2NnWDMvbXh1RWlXdmd4RTJyYVZhbldMREF6?=
 =?utf-8?B?ZEk2OGxGanJONnBSZDh5ajNXbHF6OVAxOUVzZDgrMGxscVEzL0RjcU1nbmVh?=
 =?utf-8?B?YXh4Yk0vSlR5TEJzQm8vRVZkeFNwSEtHVEdVUXJlbnJDdWsrQkRUeC9RN1Ra?=
 =?utf-8?B?emJZTW43L1VMYkZEZkdmN0twbm9NdU9Fa2EvdEkyZFVhYzNLTkZDQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5ca4d1e6-781f-49eb-b1f9-08deb004a807
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2026 08:58:38.1183
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Y9PrDyRQ6T/3PJfldxTPPJmWmlxWjlSYiUvQW0wH/YWHicohRiRMBozFRVonrcLB6MK3brPANbg03f1G+qSRmg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7603
X-purgate-ID: tlsNG-d62444/1778576321-AE55DFF4-D25A4595/0/0
X-purgate-type: clean
X-purgate-size: 6889

On Tue, May 12, 2026 at 07:32:20AM +0000, Mykyta Poturai wrote:
> 
> 
> On 5/12/26 09:20, Jan Beulich wrote:
> > On 11.05.2026 16:10, Volodymyr Babchuk wrote:
> >> Hi Jan,
> >>
> >> Jan Beulich <jbeulich@suse.com> writes:
> >>
> >>> On 07.05.2026 22:40, Volodymyr Babchuk wrote:
> >>>> Jan Beulich <jbeulich@suse.com> writes:
> >>>>> On 06.05.2026 11:39, Mykyta Poturai wrote:
> >>>>>> On 5/4/26 08:37, Jan Beulich wrote:
> >>>>>>> On 23.04.2026 12:12, Mykyta Poturai wrote:
> >>>>>>>> On 4/21/26 17:43, Jan Beulich wrote:
> >>>>>>>>> On 09.04.2026 16:01, Mykyta Poturai wrote:
> >>>>>>>>>> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
> >>>>>>>>>>
> >>>>>>>>>> This code is expected to only be used by privileged domains,
> >>>>>>>>>> unprivileged domains should not get access to the SR-IOV capability.
> >>>>>>>>>>
> >>>>>>>>>> Implement RW handlers for PCI_SRIOV_CTRL register to dynamically
> >>>>>>>>>> map/unmap VF BARS. Recalculate BAR sizes before mapping VFs to account
> >>>>>>>>>> for possible changes in the system page size register. Also force VFs to
> >>>>>>>>>> always use emulated reads for command register, this is needed to
> >>>>>>>>>> prevent some drivers accidentally unmapping BARs.
> >>>>>>>>>
> >>>>>>>>> This apparently refers to the change to vpci_init_header(). Writes are
> >>>>>>>>> already intercepted. How would a read lead to accidental BAR unmap? Even
> >>>>>>>>> for writes I don't see how a VF driver could accidentally unmap BARs, as
> >>>>>>>>> the memory decode bit there is hardwired to 0.
> >>>>>>>>>
> >>>>>>>>>> Discovery of VFs is
> >>>>>>>>>> done by Dom0, which must register them with Xen.
> >>>>>>>>>
> >>>>>>>>> If we intercept control register writes, why would we still require
> >>>>>>>>> Dom0 to report the VFs that appear?
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>> Sorry, I don't understand this question. You specifically requested this
> >>>>>>>> to be done this way in V2. Quoting your reply from V2 below.
> >>>>>>>>
> >>>>>>>>    > Aren't you effectively busy-waiting for these 100ms, by simply
> >>>>>>>> returning "true"
> >>>>>>>>    > from vpci_process_pending() until the time has passed? This imo is a
> >>>>>>>> no-go. You
> >>>>>>>>    > want to set a timer and put the vCPU to sleep, to wake it up again
> >>>>>>>> when the
> >>>>>>>>    > timer has expired. That'll then eliminate the need for the
> >>>>>>>> not-so-nice patch 4.
> >>>>>>>>
> >>>>>>>>    > Question is whether we need to actually go this far (right away). I
> >>>>>>>> expect you
> >>>>>>>>    > don't mean to hand PFs to DomU-s. As long as we keep them in the hardware
> >>>>>>>>    > domain, can't we trust it to set things up correctly, just like we
> >>>>>>>> trust it in
> >>>>>>>>    > a number of other aspects?
> >>>>>>>
> >>>>>>> How's any of this related to the question I raised here, or your reply
> >>>>>>> thereto? If we intercept PCI_SRIOV_CTRL, we know when VFs are created.
> >>>>>>> Why still demand Dom0 to report them then?
> >>>>>>>
> >>>>>>
> >>>>>> The spec states that VFs can take up to 100ms after the VF_ENABLE bit is
> >>>>>> set to become alive. We discussed in the V2 that it is not acceptable to
> >>>>>> do a required 100ms wait in Xen while blocking a domain. And not doing
> >>>>>> that blocking would require some mechanism to only allow a domain to run
> >>>>>> for precisely 99(or more?)ms. You yourself suggested that we can trust
> >>>>>> the hardware domain with registering VFs if we already trust it with
> >>>>>> other PCI-related stuff. Did you change your mind, or am I completely
> >>>>>> misunderstanding this question?
> >>>>>
> >>>>> No, I still think that we can trust hwdom enough. Nevertheless we should
> >>>>> aim at being independent of it where possible. And I seem to recall that
> >>>>> I had also outlined an approach how to avoid spin-waiting for 100ms in
> >>>>> the hypervisor.
> >>>>
> >>>> I want to clarify: you are telling that Xen should not wait for hwdom to
> >>>> report VFs and instead create them by itself. Is this correct?
> >>>
> >>> If that's technically possible, yes.
> >>
> >> Okay, so let's clear this. If I remember correct, you discussed this
> >> with Mykyta in the previous version and suggested to put the vCPU to
> >> sleep for 100ms.
> > 
> > I don't think I did (except perhaps from a very abstract perspective),
> > precisely because of ...
> > 
> >> I don't think that this is a good idea, because guest
> >> kernel will not be happy about that.
> > 
> > ... this. Instead iirc I suggested to refuse (short-circuit) handling
> > VF register accesses for the next 100ms.
> > 
> > Jan
> 
> Do you have any suggestions on how to ensure that we accurately catch 
> the window where 100ms have already passed, but guests haven’t tried to 
> read anything yet, to flip this back? As I mentioned in the previous 
> version, Linux, for example, doesn’t attempt to re-read anything if the 
> first read failed after 100ms. So it appears to me that this approach 
> would be prone to racing with the guest for getting to the VF first. One 
> approach I can think of is to somehow swap the register handlers back 
> in-flight during the first read by the guest if 100ms have already 
> passed. However, this would still depend on Dom0 for registering VFs, 
> but in a more convoluted way. We also can’t add the VFs before 100ms 
> have passed and add timing checks to all register handlers, because 
> pci_add_device and everything below it expects the device to be 
> functional at the moment of addition.
> 
> 
> 
> Maybe you see some other way to avoid these problems that I am missing?

We could maybe do some middle ground here, kind of similar to what
Linux does.  The overall idea would be to put on hold any accesses to
the device(s) PCI config space for 100ms, that would include the PF
and any VFs.  At the point when VF enable is set Xen already knows the
position of the VFs in the PCI config space.

Any PCI config space access attempts to the PF or VFs during that
100ms window would cause the guest vCPU to be put on hold, and the
access would only be retried once the 100ms window has passed and Xen
has registered the VFs with vPCI.  This approach needs extra logic to
put vPCI accesses on hold, similar to what Xen does when mapping a BAR
into the p2m, and a timer to defer the adding of the Vfs and the
unlocking of the affected PCI config space region.

That would be a middle ground IMO, as the guest vCPUs could be running
freely, unless accesses to the affected PCI config space was attempted
before the 100ms window, at which point they would be blocked waiting
for the timeout to expire.  A well-behaved domain shouldn't try to
access the PCI config space either ahead the 100ms window expiring.

Roger.


From xen-devel-bounces@lists.xenproject.org Tue May 12 09:20:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 09:20:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306647.1578484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMjI4-0002Me-7C; Tue, 12 May 2026 09:20:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306647.1578484; Tue, 12 May 2026 09:20:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMjI4-0002MX-3m; Tue, 12 May 2026 09:20:36 +0000
Received: by outflank-mailman (input) for mailman id 1306647;
 Tue, 12 May 2026 09:20:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMjI3-0002MR-KP
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 09:20:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMjI2-005tO6-0r
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 11:20:34 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a02f0e1-5cb7-0a2a0a5109dd-0a2a450bb04a-0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 11:20:33 +0200
Received: from [52.101.48.64]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a02f0e0-212f-0a2a450b0019-346530404aef-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 11:20:33 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ2PR03MB7500.namprd03.prod.outlook.com (2603:10b6:a03:559::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Tue, 12 May
 2026 09:20:28 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.021; Tue, 12 May 2026
 09:20:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yJSuPQ7/6u+LsvjNqB41FHLsMYDpD3M/jQYjg0CT9AWBKSjsN92lwMQvmMpXw2EVMk14mzH1pCiZvuyHgB+QwCGgIBGwz/MTr6tAS2rlJoSwpK+uq+ojMTyxHnpkkYiKzYOtxSBkOu2+Y3O/a/3fhC3s8DJAPnjTahZcY/zQKI2XKZIrDXe9EWFNG3V7bao2BGfd8gAv8Te1VYsjdxnUBN/zVF+mG5bsRbCfwv1ug1afNPYqpRGDIItBlJgFlFsi7eNWqOuKi3CD6G36X4/GW+AaGtT1P4+AQrqD+NNSA+uLnKxkWmVG6nmOx1rIGGyGlXl8fiobhn9ALSSeZeP6jQ==
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=YWM+ag0W9mhABysx3tzXRLWlPkiACGfWHmZFRB1ABz8=;
 b=qnU9E2PvIBlN8blnHyF2crqBoR7kfz2Z6/F9ZGoUgjpXBWvyeirQRgmiOpLtqWGBzdySYv//Z5YUimzGnonzMnBaI/e9hbKeAcCQs1BJFX9V7WiN/Khh1TH8CA3kHzBrF60Of3LwKiEctFGs/MoWY92aWXjaUGO/4zqEtkDG71h1GNFBhqbI7D4d5DxytR686SKbQpM/4aFAIevCTdsE3VJL5sg79zjpbnGiF02kLAFeDpCG6oleerTvpluKA/qgISekh6oB29HaUee0qIHXfeVYpz9EIbwmFl9R+a1gVZpxVM8F3tcOxlMrpKkA51H8wvBzaO4XfU6c+RwAGYY/Xg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YWM+ag0W9mhABysx3tzXRLWlPkiACGfWHmZFRB1ABz8=;
 b=h7Y6pCBwoOutBiV57UcaKXx3tQAzqxuuX/hkpDIFuWOOlibdQ89mDLmonPkEIcN69zAc1p00c/63lrXOqWf8R2zynY8oQ5gEhChwTB97vQf8EJHb3Rd5a9mun0+O6KtE+/wXiCIw+XRMuxS60prac6pnh5pmdRimXQgQilhyNtM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 12 May 2026 11:20:23 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] symbols: explicitly specify source file name for symtab
Message-ID: <agLw10IR1KO3tNKX@macbook.local>
References: <f921abc1-1f1a-4ef1-b21b-a65b5d50eafd@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f921abc1-1f1a-4ef1-b21b-a65b5d50eafd@suse.com>
X-ClientProxiedBy: MR1P264CA0219.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:56::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ2PR03MB7500:EE_
X-MS-Office365-Filtering-Correlation-Id: 635d0b21-7901-4faf-5e42-08deb007b4b4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|56012099003|22082099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	j/XJ81Bj8InSWfsUOHY5658Z1DDjcIHiuNTWR8yg1uDVQRgNvJPndhlCkFzmbITVlgO/tKWNa/jDIvIBjJc0MfQ7+7buKvIys3L3ibBba7pykSob0tJevgGvu2Kpi8KzBrJ9X3F8m/PIK7UW3SJYhlqnkxtpYtiebbtUd4UC4kxs91UyGyHeXE8bODgQijp8tonu1w2AGNDQkSYazku/hJqnv6QwFC08+buBStlEbuMi6aiN4hSY1KKeOmD+CXyBaj2HfrCSsv3LiylIz9jlx8ijuA+1LvJpm3XSaDibi1/Ht3fHIB6dea1O1ZwDMQ9qjtavoJegJKzW60z6dhdxL4za46xEpQ2XKt3rzAZA+sY3Zoikksw67+p3KPCT5/E9aRZsKtgvZFz7/O/ErBLeq3PJM1SKmoNqmAgAijc8yNn+9/QDRt5FEY83tVtRzHxk96+oaGTKaphBLQd9IXOk/igM1F8PNHsPqPR239VdBeHyaL2vVnSzc5/w/G3gS3e5VOiq9q6kZ0QmwAkiy2BXYL/1LncLrpaca2mpTjYCz97ZY3AEC7RBPz1P02UtV9ZevZ9WYtYcDIBngmEEFRLVZzFA30qc7e+eJnkFnOZMZsHN8hjwuljpiOG3GUWnRexkgt0Oe9GO0GStBvBCmk8LXTTGMHPMqZbwZJ2Xr1U51+YnLzjJ45hn2uBJ4yvP7TlL
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(56012099003)(22082099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Q1pEdVpqaVZKQWlWbnZqK1g0K0VOTllIODZCZzVLSjJoSGFkZVN3TDcydG1Z?=
 =?utf-8?B?Z1JRQVNkS2Uzczl1Rzk1UDAySEowbkJSbTlaNHA5Sjg3c09EQ21STm1pMXFX?=
 =?utf-8?B?SEhlczhuc2lFY2FnaCtyNFNvU3JHQzFmUkpSRzhkVVk2dTR5RlZzSisrMUZC?=
 =?utf-8?B?eElEQkhiMW1rMzZCUTErTFQ4UXU2Z0FzWFJvQW1qbWxVcnMvSU05L3BVdG95?=
 =?utf-8?B?UzhheVZQK00yb01DTFFSRnoxd3JZVkRraklrRzZKOGU0ZFRpTEZvcmNMa0lQ?=
 =?utf-8?B?SXFCOHRwNEV4ZVlQM3NibmxPbFpJb3dWa2FVM1BnVkNLSUQ0NXNncU9KaXdT?=
 =?utf-8?B?YmVBdnkrYjJ1aHhKbEhIVFozRWttU3dmWTFxdVpnVEI2bk1zckVidXEyM2th?=
 =?utf-8?B?YThycGI1NFdLcXpObDQ1SzhmeWZQKzYwKzF4dEdKZWFSajVnWmo5Y2U1Z1Rw?=
 =?utf-8?B?bXJiZ1Z4R2dLZDI3VHFGaXU2RDV2VEQvQnEzTEc3VnkycHR1bkxveW51di9i?=
 =?utf-8?B?Ty9ySlZKeVVFM0MwNjNUN1Ryam1kYStWSFBZQmpYYjI1RVIvMDNIM2puelM3?=
 =?utf-8?B?ZCtZc1JtaE4vcDFVVkZMd0tOR3JkWnFGTkp1dCtxMmYySzY5YkNRZXBsN2pu?=
 =?utf-8?B?b0hmd2l1QkErK0dwYWd6TVl2bTE0Yk9WOVVkcTdGVHNxLzJrMFBYLzN1TDZ1?=
 =?utf-8?B?WUM3S1Y1b1pYWGpuVHVpZXpDSkkxNDhWS1VZVE16aEJvWC93djVHNjArd1ZO?=
 =?utf-8?B?T3ZaWkhFeDNIOWhibjhlcENTazQwVmFPc0pBWURxVjhiS1owWU9DUFYvTlZa?=
 =?utf-8?B?cWJEcmRkSnlqY2sxYVZYRi9TMmJET21Yb1lvdVUxTjl6SlA5RDd4MW5Ta2E4?=
 =?utf-8?B?cE1FNU5nVTVVN0R5SEFncHM1TDNiYURrc3hpQUdnQ1lFdkYxOUxYTUdnVnVI?=
 =?utf-8?B?bE1VcVBvMVZSSmxsbHdXT0hwVHd6S3lUcmM2K2xCTDhsVmhxcmdOcWJJOGho?=
 =?utf-8?B?Y25ORUdBRTROZXdrdDRzZHpiTDZNbkNvUEhxOC9kT3p3SEFvUng1aFdvZHNu?=
 =?utf-8?B?K0VzS3YveHVBVGlZOUxHZ2Y4aUdVNjlBamRoYnpSUkRDdU5haUlVbFF1NENz?=
 =?utf-8?B?U0hmcWVPdkNUT1J3c1M0c2JYRHhDVFJTNUhaNUNweWlJL2kyaThSY2NOcjNt?=
 =?utf-8?B?UUlWc1hzUGI3a21mUnA3dHZnSVlIWXFBRmRReXk2dHBFOVFVQWxpMCtrRHpx?=
 =?utf-8?B?REpISXJOb0cwa3Zkc1FGcGNQbmV6L09kSVY1aFZ2T1hDLzVsNUdITmoyeEwz?=
 =?utf-8?B?bG5yNlJWaWFvVzFURlhBaW8vREJDNjY3QjNWWGVMMjhxNkxSeFUraGJXZTJz?=
 =?utf-8?B?M3VpS1VSb1poTmN6K0hUVVQ2OTRkNkEwaWpqTEJBR0VoRDRpT1MyZE14ZEF0?=
 =?utf-8?B?Vlh0WGVNVEdDZFJKOWhUUHBOMU1PcW10MHNQT3R5RTdKeGZ2cFk4TW1sSTdZ?=
 =?utf-8?B?SUs4NWl5YzZKZUxyT2x0VFNFd0pDYXJXTVRSK3BScjJFTnFRcDh4ZmYxZU9j?=
 =?utf-8?B?VHdSd3RvU0RwME94Qks0bTBkNkdLK1YzTWZxbGZDODV1aDZOVERvcmp5UXlX?=
 =?utf-8?B?RTI3ZHV1dkQyQkZRRmhaamw0TG91ZGZJTWcyNFN1TkNQZkZTbHBIRWhNeHc2?=
 =?utf-8?B?QVNVeWtqTWVXY3hnL1Z1TWdmL2NuZmU2Z0N5YkdnUVhTVzdObDlTODdjNUxh?=
 =?utf-8?B?WElLbWVYazh1ZDJ0bHhwTE00Nm1pZXNZbEJuR2RWWXlQY1VFYUZ0Nk5JYzZk?=
 =?utf-8?B?QkROc25mTFJVUlJ2RWNPYVgzSlZ2aDltNUNmVHhZK3E4NmhDbzQ4VUhNUmFR?=
 =?utf-8?B?WCtMaHR3ZWJhemNZMjEvNkZiVGxYeFRaajl1cjJYVmJ0OHRadEhmTlQ4T0tI?=
 =?utf-8?B?K2pnMkJ0ME1sckhaOU1hRkpCMWhOMUllSmdyS2cyaVoycXBTbHk1SGsySFBB?=
 =?utf-8?B?c2lLK1ZlWlN4eWJSL2hYTXdhWUdXZ2g4NlRSYXdnaSt5ZENIRTBhZm82UWtR?=
 =?utf-8?B?V3FlRzN3cFcwK3dXWlM1QjNsbHErb3BoR1d1K2VHcVlQSzRhdWM1SDd0NXdt?=
 =?utf-8?B?TmNnbzVqcU95ZmhZbTdkanZhUmhoU2VORWVyMkpqeFQxYk9GL0dpc2NnQzlM?=
 =?utf-8?B?K1hLWlJDK1BFVUQyNjlIMWJuMGsyWFRXK3VXNC85RW1VQ3NlWFFCZjdyVUFB?=
 =?utf-8?B?bkhOZ01LcEZBVElSeWYvYmtFTXRpOS94aGptODR1NXJqQ2ZJeHh2eUZmM2hv?=
 =?utf-8?B?QThJNXlTYWFOTDM0V0UyM0o4YnlGMHZjYWlZTVZYMHEyd01zczc2Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 635d0b21-7901-4faf-5e42-08deb007b4b4
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2026 09:20:27.8256
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9NU9S8kSXCxCY7V4GyrmOQLLmkbNm1hA+5BoAAkPoZZUMywNEv0Rf5E0pTQbapH+fmQFQYGFZDs7I4XyuW/ZIQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7500
X-purgate-ID: tlsNG-42698a/1778577633-13D7FF3B-C46EDBE5/10/73395122804
X-purgate-type: spam
X-purgate-size: 2760

On Mon, May 11, 2026 at 12:00:03PM +0200, Jan Beulich wrote:
> If there are any local symbols in an object file, GNU ld will create an
> STT_FILE symbol derived from the object file name if there is none in the
> incoming symbol table. The object file name, however, varies between
> linking passes. As a result, symbol name compression can yield different
> results if any of those local symbols need retaining (Arm [and RISC-V]
> mapping symbols are omitted, for example). If that difference in
> compression would yield a difference in the sizes of symbol_names[] or
> symbols_token_table[], the compare-symbol-tables sanity check will fail.
> 
> Fixes: d37d63d4b548 ("symbols: prefix static symbols with their source file names")
> Reported-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

> ---
> The observed problem was with a stub generated as Arm64 erratum 843419
> workaround. Such stubs' symbols (imo wrongly) are associated with the last
> input object, rather than the input object they belong to. Also for other
> kinds of stubs, afaict. See
> https://sourceware.org/bugzilla/show_bug.cgi?id=34140.
> 
> As per the above, having a Fixes: tag here is questionable.
> 
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -200,7 +200,8 @@ $(TARGET).efi: $(objtree)/prelink.o $(no
>  ifeq ($(CONFIG_DEBUG_INFO),y)
>  	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),echo,:) "Will strip debug info from $(@F)"
>  endif
> -	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0s.S
> +	$(objtree)/tools/symbols $(all_symbols) --source-name=$(@F).S --empty \
> +		> $(dot-target).0s.S
>  	$(MAKE) $(build)=$(@D) .$(@F).0s.o
>  	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
>  	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds $< $(relocs-dummy) \
> @@ -210,6 +211,7 @@ endif
>  		> $(dot-target).1r.S
>  	$(NM) -pa --format=sysv $(dot-target).$(VIRT_BASE).0 \
>  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
> +                  --source-name=$(@F).S \
>  		> $(dot-target).1s.S
>  	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
>  	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
> @@ -220,6 +222,7 @@ endif
>  		> $(dot-target).2r.S
>  	$(NM) -pa --format=sysv $(dot-target).$(VIRT_BASE).1 \
>  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
> +                  --source-name=$(@F).S \
>  		> $(dot-target).2s.S

Wouldn't it be more accurate to use $(dot-target) as the source name?

Maybe $(notdir $(dot-target)).S?

I see the default is already set to the target filename for other
arches, so not a big deal IMO.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue May 12 09:31:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 09:31:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306660.1578493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMjSC-0004AS-3x; Tue, 12 May 2026 09:31:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306660.1578493; Tue, 12 May 2026 09:31:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMjSC-0004AL-12; Tue, 12 May 2026 09:31:04 +0000
Received: by outflank-mailman (input) for mailman id 1306660;
 Tue, 12 May 2026 09:31:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Bertrand.Marquis@arm.com>) id 1wMjSB-0004AD-8K
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 09:31:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMjSA-005wM7-6o
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 11:31:02 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Bertrand.Marquis@arm.com>)
 id 6a02f352-bab6-0a2a0a5309dd-0a2a450cad80-14
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 11:31:02 +0200
Received: from [52.101.70.39]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Bertrand.Marquis@arm.com>)
 id 6a02f355-62f1-0a2a450c0019-34654627fa1a-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 11:31:02 +0200
Received: from DU7P251CA0016.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:551::31)
 by GV1PR08MB11167.eurprd08.prod.outlook.com (2603:10a6:150:1ed::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Tue, 12 May
 2026 09:30:54 +0000
Received: from DB5PEPF00014B9B.eurprd02.prod.outlook.com
 (2603:10a6:10:551:cafe::d3) by DU7P251CA0016.outlook.office365.com
 (2603:10a6:10:551::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.11 via Frontend Transport; Tue,
 12 May 2026 09:30:54 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B9B.mail.protection.outlook.com (10.167.8.168) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Tue, 12 May 2026 09:30:52 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DU0PR08MB9798.eurprd08.prod.outlook.com (2603:10a6:10:445::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Tue, 12 May
 2026 09:29:48 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%5]) with mapi id 15.20.9891.019; Tue, 12 May 2026
 09:29:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Aj8BAV+hlwbcY4fPampr/tkSP+f3aZJyuRbEHTGGWJMtcXLx3zWEjTH9+zePW20bYwM5libx7rcrcAOqIgthlaYlbLD6vN5tnnZgmifUuzsk9w06z+IWLotSkn/msNlWifiA1du5xGMPGkFHQ74tG40iUIUwnyA41F1qs+4SU6dN0qalg3JQ9iaGrgiORPjU0vxNZ17iunTtUTtJVKnRqfzRgk0rIJyCGuNrRnIaPHV4neJw5vpqWisrO+YoV7vWPXNfjaGy9VSpqEa83lIZv2jGRxY/t4HPqu4FvxTLHsWgyDdOUqUF1nLFB9Ulk2jj/NP4ECY3HrViNATq0c6f1A==
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=sKPeGkuSUj1mglfBetH6uxEyHN33Qze/mgf/BV6Oiko=;
 b=MX8w4TkMfufaN45u5DCquri3QBcFg+/8PLSYq90e89XPiEITygIxZky3fIALIFgan/ghXWyUWii/QjKnlXGX82OHMauUDXmqvPEEPk6ohRCNtE03tcmXZCnD5hCRg+JWI0OJDemllR8hQdpbcmyt/+H+VH1RssJA9aiw1EPFeDQxUJDbTo0E3LbScOTuvE4JJDeb71MbfNmhj5dl98A6Yv6WStas0mjWj4GPAP0f+NVQ/SYeVsNZBjq2yCh+yUR5cOgVclXgVbYXDzkockRNzNnYMUdYRxzQOuMQpX7dxLeTX/7hJ/gP0ksfO3ZVQNB11dp0mDqPRWey1MZdhFn8jg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sKPeGkuSUj1mglfBetH6uxEyHN33Qze/mgf/BV6Oiko=;
 b=keD2CKYE829Wckn9u84LeZ5TQIoyQwe/yEgtNAfQU52u0eruo0PK3/wQ3xLN8hoRO/YZqpNez1fQQ0XwVwSYQYTKVq4VcrGqm62KDskcUKSW3bH4hcjY6sWl7Q6vijFFkst7psW5ZfgOKeo/AWHMDCV9UHZUsqNWipNIKKD6Rsk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=N05MdeU8/VjTpzeov1acnDCUfK8FbPirn3hBzPd+YPNkCyaSyTAJ/g5akCzV4uzIXJ5hGEN+1oppfIKQjFOcLFjpAEl90yrn/NO0W7ZPg+XTgMoVnDBEfnzOy36l521MF+JUbstVknSQZIul6F5RnsMZydQ27tu9TL7Esrc3tfiGpAE94kPxuP67Af+k3sBAoRW27M2LyW6qg3959BTt5YufTnQ3OcVx0HQJ0j0YyiTRWDMIWSz695pn0vQ6RRPql42GYRZ97C5HMyKyv/icnwUNxrTYeSWFkfcVHq88BbVL5Sv+k5yLyOth8HcYZ+1L3MnCbXE6Sfmqz3Cj2FIxKg==
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=sKPeGkuSUj1mglfBetH6uxEyHN33Qze/mgf/BV6Oiko=;
 b=HpUREcWjyxOPiPeSzSf/iqc5s9amE5UK+Uea8rNtAoSDd2Rjp+rxrxQFdlpqO5wobVLBa7pJjVljYR5TC43X3/RqkHKAyauf1U01MByjfOzlfFuTCBE49mtNdhwZ99dkRGh+mKKqFXPUW1hrxfLD2J+ZyA0p9sdN4qLkPsWjyi+47bX9YLzevVVVohMPKFLQGWcHbBXTrat8yUpiUD5bWUk0avKHAjXfSoaprahJ4mw1EwOAYYiTLcYG9CYgG6MaKFLL+P65xuKWTMsw7TjJ/JOUb6C8ZUoqjMcTwHDYMys4wlWE057ay9b3FJHiNWmldaAZD7+SdpfZQs3WAtIPIQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sKPeGkuSUj1mglfBetH6uxEyHN33Qze/mgf/BV6Oiko=;
 b=keD2CKYE829Wckn9u84LeZ5TQIoyQwe/yEgtNAfQU52u0eruo0PK3/wQ3xLN8hoRO/YZqpNez1fQQ0XwVwSYQYTKVq4VcrGqm62KDskcUKSW3bH4hcjY6sWl7Q6vijFFkst7psW5ZfgOKeo/AWHMDCV9UHZUsqNWipNIKKD6Rsk=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Michal Orzel <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Oleksii Moisieiev
	<oleksii_moisieiev@epam.com>
Subject: Re: [PATCH] xen/arm: sci: Don't create a domain with unsatisfied user
 requests
Thread-Topic: [PATCH] xen/arm: sci: Don't create a domain with unsatisfied
 user requests
Thread-Index: AQHc4edxplgStM9xlEqAVSLJleDsJLYKH+UA
Date: Tue, 12 May 2026 09:29:48 +0000
Message-ID: <60249A8A-76AA-4EF4-B334-C83DE41B79ED@arm.com>
References: <20260512081442.48149-1-michal.orzel@amd.com>
In-Reply-To: <20260512081442.48149-1-michal.orzel@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.500.181)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DU0PR08MB9798:EE_|DB5PEPF00014B9B:EE_|GV1PR08MB11167:EE_
X-MS-Office365-Filtering-Correlation-Id: 2ee8026b-2286-45b1-7371-08deb009297a
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|56012099003|22082099003|18002099003|11063799003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 2AU0iy9m8qlqjaGLQIrjxP2G1VRtSKo5PKFAwIyulzNRPxi8cSUKQhvINaNuuJiN8mcgNTV/cKfhBfHklqLb+LaaRqiug2ehkYCJovmSeLIOB5anIgnD4LIljI1phlWMpJuu13zkoAqyqOJkEeg6gu2oh18t5PtOLPCNYtdMJN/qw5+rN351J7HuV1hRalLLg7jX+W/87sU5onFtcUXZWUN7Jcdk5EDYsEiGj2pxaMG6l1KcdLTx1MKXwx/SZ8EqBj2GL+A6G9VJ4dMG4Q+L2TY2xIZlKkVJxLWUg7C3veQWjiw0PeqBu4eMzpB3Bm9lnJFaOGir856tl1s1Sf5HaDO8iDbdImNUBwZ0fo1/VZ1sCPm1LRiEkE3uhjg3IndmkRMU5twxaic6NzllJDonScD2Mimen78Y/3PfTQMM1p0Fz2m4v1ZXv8Yx+ZLHOfBz9QW1h7NOeKzA3Sl12qb3ix20EI475ThW2Yj6H7jnH2GlbqV7QRJ6Tjo7EnugcHuiVe079WttVse3zgtpA0HXneINdYuFQqjyLmcqwg7OtxU5i7AgU7kkA72RM5TI6gw+RFCChT8+GoMAeG+vrroUeBQytTQJSpXmmWNsx+pxJpwE6tFoh94jetsaXnhSmTg34BYReXRiTIZ8zHyc94FBOnb98yMr7dY2FFENAHBTOvu2ah9zJ03IknX3RlXo2mN5LI5E54/lr2b8JGdDhQ0jMipPW/pa+jgjD5Ahs98Ukia+Q7NbWe6Q/8cmeefM7EXD
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(56012099003)(22082099003)(18002099003)(11063799003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <1AEF338DE9236D4D9F7CEC030B371626@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 QtwLvCL3Tmb+B7Q+qv9m9SvkQ/FYDA1GxtcUmBtzwIxWXsKeDQ2s+0c2v/lrqMQ8ecEpvPO5e0JrrSoHiiunAv2fDayux5B5bsRiel343Y4IDqxj+qLdkoX5Xi/RBxNkVvuuEg/agXHzouUSq+iHJZq9PbwwbEfzbGASGr6RQgmwonwhlMXDS8kzLzqd0pDHlBEaupMaUcJihtoEvCm5/NC+bM6JFKMmcvNHfZktsy8q9CGSjicJcPHLAmkd+mOxSs3uJX2wO7lPBcYmxi9swStru8q0HPmMNpEmq1j5OmMmA6m++wVKPe3NCSgvaFwx7yZbr1tOurr/hljoZY+DTA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9798
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B9B.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	58df3d9b-0d72-4e9d-aaac-08deb0090327
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700016|14060799003|82310400026|35042699022|56012099003|22082099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	xPWAjf60QKhTjFtuXEwIwpHj/qPJejymhSDjdQhI/wkSobn/+HCUHvumhXFHbWc4daWrad/yna4O8eQ9/bnmSj3/le7F3LGSlANmY8FhkzvTZLp2m0sDApywG1d9siatOcnn24voDxZcll2sduLYJh5dzJrSGCIKQ4q4bR1MwqO+IrZFsCKh1zbDECmqadbeKg81MhtjraXiD7SV6lmG3ujxy/dK3QKUq6e/Z6oC0KeAwx9ArcMiKZ2zyNmNodmKqI6uwqASh9pe1mOAZHBVb+k/7T9Y+GLsDNzVP6Ba5EKeDuOR1BfIu2NqxnvoLRHHy6nMckJklCKJVvf7L74ms3ZHKyZQtttrLNf76mvmTHWBGdX6E8Fl/2LV0wZP8vpleAXQCs5n2oiZqdiSOdAHPA+pWsDk+iLaDGFVHa8di3K7IZUh4OEQK4VANoFvvoPmrTaNGMv4dAqjqBinxPBBoJtJYiVuAZ7IHeKpLaN0VqEiY1aEOvbBTUSvCRdqTBl8Ebihnp2oRk4lD7JvasZyVfCl/B3Dualv0VgSJ77cVVaXHjEa33hlbKh7mLNbx4Jrqf3LUNHDa0Q0/ey9gMuWrfTMisWsqTQIqWjEbl7afoJVndsu+t82+oZICHMrynyYN+fgBeZjU7FRRb5xuKVrFe0b1l0KaoPcBsRqj4GOSNK4Im+kXNKcwBBQvZb62LvHWTyXE8O0QLX/gfoT3dMuGU3vaEArmk6w7iFSYZWHAxM=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700016)(14060799003)(82310400026)(35042699022)(56012099003)(22082099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Vv19JzTfa2MMOurpAFjE/2g5kTKiaqzMI65+hgtNK68pyBSWRaN9Q9V1MUs1a2sTGoYCbj5QOMQsrCuYco3c2BDvrg3BbSXjpwOomYBOagRWBg48mi2CRqiLYLwllSws3XFGASSJk3UPGo9fRmYJw2XcPMk+e2iVwLfWdWdv0l3kz68FroEzuOQ60HTC4rhxi21CUAPmtJ38t9qWMxPmHYmOVuqdlkqS3dNAqlhYJQxRLpFveBwKnnU1MxvzK79K1bwkB+H/KbixDfAwiULlyvMJ05WxTYggKNcUD3eT+60HROAiUCu7GJLNXVoYulPK5ERckYiZwuDiGHeh2d4TpE9YqD0jUYIQ1jCsisNEbXBubvOQStRK9cwQ31xIdgfxHyvq1Fj9e4WRTtwKFxyHYhwo7zRtbIe3YFGP0KML+wK5CfRVLqBsD4ih+eetqWmG
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2026 09:30:52.9245
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2ee8026b-2286-45b1-7371-08deb009297a
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B9B.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB11167
X-purgate-ID: tlsNG-d25034/1778578262-F407FCF5-6EFEC896/0/0
X-purgate-type: clean
X-purgate-size: 820

Hi Michal,

> On 12 May 2026, at 10:14, Michal Orzel <michal.orzel@amd.com> wrote:
>=20
> On Arm we stay on the safe side and refuse to create a domain on user
> requests (e.g. via xl.cfg, DT options) that cannot be satisfied due to
> the feature not being compiled in. SCI fall through the crack and does no=
t
> adhere to that i.e. a user request for SCI type other than NONE when
> CONFIG_SCMI_SMC (and thus CONFIG_ARM_SCI) is not set would be silently
> ignored. Fix it by not allowing anything else other than NONE if the
> feature is not enabled.
>=20
> Fixes: 10e7473d6024 ("xen/arm: scmi-smc: passthrough SCMI SMC to domain, =
single agent")
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

Looks good to me:
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand



From xen-devel-bounces@lists.xenproject.org Tue May 12 10:28:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 10:28:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306684.1578510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMkLW-00033m-7Y; Tue, 12 May 2026 10:28:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306684.1578510; Tue, 12 May 2026 10:28:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMkLW-00033e-4J; Tue, 12 May 2026 10:28:14 +0000
Received: by outflank-mailman (input) for mailman id 1306684;
 Tue, 12 May 2026 10:28:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Volodymyr_Babchuk@epam.com>) id 1wMkLU-00033W-2m
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 10:28:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMkLT-000aIq-Fu
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 12:28:11 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 6a0300ac-bab6-0a2a0a5309dd-0a2a45039c0c-38
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 12:28:11 +0200
Received: from [40.107.159.98]
 (helo=OSPPR02CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 6a0300b9-672d-0a2a45030019-286b9f6286d5-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 12:28:09 +0200
Received: from VE1PR03MB6078.eurprd03.prod.outlook.com (2603:10a6:803:113::29)
 by VI1PR03MB10078.eurprd03.prod.outlook.com (2603:10a6:800:1ca::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Tue, 12 May
 2026 10:28:06 +0000
Received: from VE1PR03MB6078.eurprd03.prod.outlook.com
 ([fe80::4722:b91:9b24:ee48]) by VE1PR03MB6078.eurprd03.prod.outlook.com
 ([fe80::4722:b91:9b24:ee48%4]) with mapi id 15.20.9891.021; Tue, 12 May 2026
 10:28:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=b5CjJJ5VmvcEiygxMATkEfLNMjYT0m5YmbzuqaXUTmvjO0hYa2UWs1S3uOFzJxFbZ93rQf1kRbctiTTFsx69TgfhV1aYt9dfLcFEnw47TbvPyv/r33C4zoQ0spFbJReKEEUlvbFhNazYp1CnUP6RFbXLPm0nHkdz11/sqJUkvFGhd0iHzArd2c9Ic/tjusyYZkd6KuyGOBO3rDCmvXo+lJ6NbYEXIr/Bp1XjhzaP7k10F5K/HituZpZNEZ+pn76+CWuSo0z0QtlSCTE1LdrxE1SeHPlDMk4eANcDTOW+dCIf63bTaC9RQhTnsIOnPUmiogDZGtOvuMgzYkMVqhfVpw==
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=3iO3TnDT3jNgS1XIX49S5ps9lb9t8niIpRoBJCLC8eY=;
 b=Je7UM4FR9wwHmsAfoZgAICyxwsqtYpiRXMJmW7niHhj/qlSx58Nu3YTdp6ICvfzbVKeQLHjN0+C9ivzbO8welIVjtald9hr6OdtIS5H0NJIBjH11BaZafWH8qS/pgl0IGIPbWzwQAQWx0Daa0giws51ktKhJJUsI1FyuMXHwqqOucmeA3SCAzeRGT+h11m8g9nhnxhuRo9hif4gHUDHIAOZwvBOseHGTyYQAH+gra7wFeHj2OVuQtPr+VEJ4Eh9AiBFGrRWjYpCXX0qfW4vszCwhpUy39Pt1dqgoF8zFUNpbuJvzgZ0KKPHXcthD2xwHVj0zoHEy5nopaTHYHcVcPg==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3iO3TnDT3jNgS1XIX49S5ps9lb9t8niIpRoBJCLC8eY=;
 b=VFccf7+SCRC2bI/foY8GNugjFRob3YnJ4Qcq6iynory4dkWBU402rq+dZ6Rh+iIDDb4Ox2EVIxhIxy+v/n5I/wmPQDtt5ATbZqkqxhDNhl+11NSTvdhGBxg2w5ugWhaPeDXPgVrLLv2XNSXWig1S8gQn7l+63/o/BmObLWPo/4+7RfWFP4KGff1Zy3hKG6smjbzF1g/k7TQcC7k3LN/1p1hXcIrcrANGcucB5AKYDY7A2fY9PCX39knrUpld65cKfsEpxNNva2GokCKE4RQ73M5vOKMkiEUvo6GdhzBywt6GKcFyzWe/iwEpzq9Ee7CwoZedIghMghK9PY8tnOYFBw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Jan Beulich <jbeulich@suse.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stewart
 Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
Thread-Topic: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
Thread-Index: AQHcyClfuk/Yqk/9/E2oGahG1JP+sg==
Date: Tue, 12 May 2026 10:28:05 +0000
Message-ID: <87v7csrkgb.fsf@epam.com>
References: <5efddecc-3665-4a53-9eaa-b117370cc0e4@suse.com>
	<5168207f-33ed-4fc4-918e-6c3b454b0efa@epam.com>
	<efb254c2-f52a-408d-b225-e4e03935d05e@suse.com>
	<d0916f22-b5c0-4c93-935c-4cbe17e626d4@epam.com>
	<e5844c28-aa68-4bf6-8287-a4ceeda3a1d2@suse.com>	<878q9vt0lg.fsf@epam.com>
	<e9610f70-85b8-44d9-8e13-da26d506d5b7@suse.com>	<877bparq9t.fsf@epam.com>
	<1d591ff7-599d-4dfa-b521-bfaded430a76@suse.com>
	<925f2076-f98b-4102-ba45-a85a83861c9f@epam.com>
	<agLruvURfBUb-VgF@macbook.local>
In-Reply-To: <agLruvURfBUb-VgF@macbook.local> ("Roger Pau =?utf-8?Q?Monn?=
 =?utf-8?Q?=C3=A9=22's?= message of	"Tue, 12 May 2026 10:58:34 +0200")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VE1PR03MB6078:EE_|VI1PR03MB10078:EE_
x-ms-office365-filtering-correlation-id: 4d34842f-41ae-4549-82b4-08deb01127a5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|42112799006|1800799024|18002099003|22082099003|11063799003|38070700021|56012099003;
x-microsoft-antispam-message-info:
 MR8xPLIeeiJEx9ZrVZXgh41wMcrBIaRPpyxz8MqrCYkxWx5tsyU6AE1aUg3pdX/2Ss7QXN+85MzV0yOy4QFrRlTkAvieh3KK+KHzUp10QKQFJZ75agTvvUeOdokZ36YEQeZjNnxyZ16CC+iKdEM6NR6/qjAf6147RQveKVNoSDFszNEymkvm/DD87C0WOMkTwlPNfUMESB+lMlEaA43i+r8+ZkjaODn+fRgFvtWoSQyZUxgR3ZHrGtz0o5VizY8w90JZtoqExrnyFuyfStX6JpEd8Jkkotdarap+xCCUR/dT/CpQ95D086UjgdNdOnasfCObydLbl6CTeSN8q54H68ob3Z6xrpQrpSyOZNxFVwh8xH6SqRBSu0v/E9rhEBPk7Q+UuQs/rC9ynx2SukMnN7Y2jO3dQQu5SX1gUTloiEYUFj9obkh9B83muDPSE3quS0+yRgmoW5wOlFlREV1W61Ey1PbWIT6HvJubnjnDLKecVaJTbJ9zhYL+zbaI0gxcLpGp3fnnBMEc1YufSP9LqfN/gQtdKAjEHr+o9J/LirAQ8A+DPN7YbJWeYu+uX2B+lXXTiaWn+O4FMxTxZwZswHg3OaMWPH7XVCrqp8S32wsvLZKs6LpygRNIJXa4mNM6A+dciMJHndEtt0gE+fqFcbR+LX8M0VpRtIK/Um85AaHbJ5KHO3p5yEleUwe7GJpQZNvAkYAU5+xpPFcB2LlBKg+y96FtMwU9q35n55HzJzkrD+P5Dp7FLPSa/5QHUwU+
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR03MB6078.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(42112799006)(1800799024)(18002099003)(22082099003)(11063799003)(38070700021)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MlZYYmlQNEowdVNZM3FubWZvbmJGYno2Qit6ZlZRQ2cvZG5Ldm1qWXNXdGpV?=
 =?utf-8?B?VDQ0OUkzVE42dk1XckREVGduYkFPL1l5U1dUeGN1dkl6SHJLQmt0czNmb0pS?=
 =?utf-8?B?NVpaaGJUQ2U3RG1rVjQzV1dOUWZhUDIwMXdKQVExUHlLWTIvdWlxaGtWWEo3?=
 =?utf-8?B?OTVnUnRFa1RnakFUTjlhdDAyaGFUN2pXR0FvMzl1a2RTdUVKRmdTdm1xQVBI?=
 =?utf-8?B?WUJnbnZPakErOWdKVmptWHlPa2dwZ29Vc0oyQ0ZleEdpQ3RSR0ZQb0F4MUNB?=
 =?utf-8?B?MTBuWjNUaXVaeVJDRnNZdXdCOUthYXVVZVU2cFVDMGpzd2cwMWNLTzVKSUhX?=
 =?utf-8?B?MnZBM3dleEViZXZsaXZ5dCtOV3oxRnU5OVhBK25qRWh2eno5RzArY3RVMXF4?=
 =?utf-8?B?bkZpd1ZFOE50RGhtbVdUS2c4MlRNS1gwTyt4MGhpT1hZM0FveGNiaVVHVW9n?=
 =?utf-8?B?VFdSUWZYTzBiRSsydzZtSW96dEZBYitTZlVMZk5wZ2M2VzNJcjBNS2g3WTc1?=
 =?utf-8?B?ZjVpWGwxV2twVSs2Ny9DMHZDN2Z3c1JEcWlsZkxZbGNqNEM1MVBXZjlCNVBH?=
 =?utf-8?B?OGRCSnlLWmVndk1CUXR0Vm1iS3cvMVlaMEtFZ2UrZHB6ZTRuMWVEejZxNG1y?=
 =?utf-8?B?RGxqYjdtTFYwUENXSGt0ZGJaVWRUSzZYVk1kcFV0bG9qVjNvcDF6UkZHUWdB?=
 =?utf-8?B?UmxsWUUzaGJrUjhKSGswY3BVOWdTS3FCZ0xNTzNPclNnVnhod0NDQ2RjUi9L?=
 =?utf-8?B?TGxidzFMVXVYMVRIOTVVQ1FMWlRla2tZUTJDZmlnalFacHYxZmxmL2FRN21u?=
 =?utf-8?B?RDFPdFVOKzg3QjhmL1VUTzNudTBxUTJod202Vm5OaERMaVlzTnMvb2Zyb1ZV?=
 =?utf-8?B?M0JhbFpudjZ3Skk0RkJtQzdsRjlrOU1ETkRQaE5nR2FwTWYvRW0xSXd3Y2dR?=
 =?utf-8?B?ZmRtUGJQQXRYWUNqU1FoOXVyM2toSS9JbmplLzdSS3RkZ1ZxSjk5Q093N3Nh?=
 =?utf-8?B?Mm95TUtockZIUUFEL3FONGExc2JweHF1MWhzeVF1UFVTaEo4MFJPZVh0RDRZ?=
 =?utf-8?B?REwzbE9BenJReEZHRmNjOVdsd2V2ZjhueExEdDRPTGdlQnNYTFVsc2g5WHFV?=
 =?utf-8?B?RHhWRHQ0UjlLWFFrK0dObnZVaWMzd2ZjMnVMM1dJczduS1laRU5jazIxV2JF?=
 =?utf-8?B?L0ovRVJCdHdocUxNQ3Q0N1pyS1IzVWhxbERQeFBMTnpCNCt1SEhIODF4Wmd3?=
 =?utf-8?B?REhvWGl2QktlbHNKWS9jc0Y4UVF1MTZaQ3dzWHVBeU5oaDFnWk9PVTdab2E5?=
 =?utf-8?B?VVI2d0krVHkwMHpyVUNPYS9ORVNPWE5jbDY3Vlk1ajdmY0tUWUZPUUZHSXJw?=
 =?utf-8?B?cmlxRGZHdS9oektSYTFiY3BTeTkzUTZ4V1pIRHhETXhLZU5MWWN3OUJzL2ht?=
 =?utf-8?B?MmdOeGxPYWFDRkw3N25jZ1FJRSs0eERDaEVJeEh6VG81dy84YzRBd29BaXZl?=
 =?utf-8?B?YmJmOGh6blZaWkhaeW5naHN3Q3hBcXIyMEhoUlVCdEQvYnYvN2JVT0lzYzhL?=
 =?utf-8?B?MEtmMG4wKzFNTHZIMW9WOUg1RHFadkt0dzE4ME5tc1FqOWlSOUdwOUkvYWRu?=
 =?utf-8?B?OG1XaUl1dHluN2lWZ3dueVlvRGJHemd6TlpqemJmL2lvRGlsTWZHOUtzSWJh?=
 =?utf-8?B?cEdXanRDZ2tUUkIzR0dwVjJyTzNaUkZqUE9NNytWMGFiWE9NbzIxMUFYVW92?=
 =?utf-8?B?M1dzUzJOcFJQVWE3eTUwWmNpdUlzell3b2dzV1NRR0Z3S2IxK0dVbnNSRklB?=
 =?utf-8?B?WXZrSithU2Z5eXlwazc1dlJLU3RKY0pvUmJpVzh3UjhFTDR2MEJnMTZqQWxm?=
 =?utf-8?B?SVpnNTJHN0J5Nm8zYzBTZFJjaXRTRDZrTWNjTmdiZnd3NGhDaWt2azFrOXFE?=
 =?utf-8?B?WmJPa2s1ZWd3cmJlZmliUE8wVlBIQzZtMXFoV2xpakUwM3c1OS9yaC9hbm5m?=
 =?utf-8?B?Nm5WREROM0x3bFJLQ0lwb29wd0pUNnRrbS83WHQ2V0RHc0UxSng2YUZISFM1?=
 =?utf-8?B?anByYXpQd2ZLV2pPeHdYZGRHMFFuUktCTFh6UDUvd251UXhKWW0vbmJLT0VF?=
 =?utf-8?B?S093ZTZSS2pLRjhxb1hhWnFuWHYzZ3hlcTRzTUFNYlJhQjVBNDRUR2tLaXFB?=
 =?utf-8?B?NThLWVJ4TG4rNVRKVWV5eEgwUVpCUFVkY09CY0lqNVFTbjVJLy9vZjZzeXc1?=
 =?utf-8?B?Ui9SWTB6TXc3N1VuZ0ZqZFNGREFHUHU3ZmJPOFNWQWR0SmlSVUc5WEIzTW05?=
 =?utf-8?B?RE53N0dqa1FnNEFvUjEwQk9ibDF3NWJJem1KOE9uOEY1YWVwb0RsSmtmdUhD?=
 =?utf-8?Q?bVH+gFI1aL5cAf4o=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3E84C96451658444AD2441BE1943FB32@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VE1PR03MB6078.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d34842f-41ae-4549-82b4-08deb01127a5
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 May 2026 10:28:05.9120
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pzw9c7stkemNo7Prlx6oDFqyDT1MTi49KGrYNp5xmG9leRsQTYb2T9d22WNvipD3q0ZiddZnp6+wz1g8l3tBxhaHPVeKvHI2eQMYr+BD0WE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB10078
X-purgate-ID: tlsNG-33051d/1778581689-3794D938-42F253BC/0/0
X-purgate-type: clean
X-purgate-size: 10708

SGkgUm9nZXIsDQoNClJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPiB3cml0
ZXM6DQoNCj4gT24gVHVlLCBNYXkgMTIsIDIwMjYgYXQgMDc6MzI6MjBBTSArMDAwMCwgTXlreXRh
IFBvdHVyYWkgd3JvdGU6DQo+PiANCj4+IA0KPj4gT24gNS8xMi8yNiAwOToyMCwgSmFuIEJldWxp
Y2ggd3JvdGU6DQo+PiA+IE9uIDExLjA1LjIwMjYgMTY6MTAsIFZvbG9keW15ciBCYWJjaHVrIHdy
b3RlOg0KPj4gPj4gSGkgSmFuLA0KPj4gPj4NCj4+ID4+IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz
dXNlLmNvbT4gd3JpdGVzOg0KPj4gPj4NCj4+ID4+PiBPbiAwNy4wNS4yMDI2IDIyOjQwLCBWb2xv
ZHlteXIgQmFiY2h1ayB3cm90ZToNCj4+ID4+Pj4gSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu
Y29tPiB3cml0ZXM6DQo+PiA+Pj4+PiBPbiAwNi4wNS4yMDI2IDExOjM5LCBNeWt5dGEgUG90dXJh
aSB3cm90ZToNCj4+ID4+Pj4+PiBPbiA1LzQvMjYgMDg6MzcsIEphbiBCZXVsaWNoIHdyb3RlOg0K
Pj4gPj4+Pj4+PiBPbiAyMy4wNC4yMDI2IDEyOjEyLCBNeWt5dGEgUG90dXJhaSB3cm90ZToNCj4+
ID4+Pj4+Pj4+IE9uIDQvMjEvMjYgMTc6NDMsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4gPj4+Pj4+
Pj4+IE9uIDA5LjA0LjIwMjYgMTY6MDEsIE15a3l0YSBQb3R1cmFpIHdyb3RlOg0KPj4gPj4+Pj4+
Pj4+PiBGcm9tOiBTdGV3YXJ0IEhpbGRlYnJhbmQgPHN0ZXdhcnQuaGlsZGVicmFuZEBhbWQuY29t
Pg0KPj4gPj4+Pj4+Pj4+Pg0KPj4gPj4+Pj4+Pj4+PiBUaGlzIGNvZGUgaXMgZXhwZWN0ZWQgdG8g
b25seSBiZSB1c2VkIGJ5IHByaXZpbGVnZWQgZG9tYWlucywNCj4+ID4+Pj4+Pj4+Pj4gdW5wcml2
aWxlZ2VkIGRvbWFpbnMgc2hvdWxkIG5vdCBnZXQgYWNjZXNzIHRvIHRoZSBTUi1JT1YgY2FwYWJp
bGl0eS4NCj4+ID4+Pj4+Pj4+Pj4NCj4+ID4+Pj4+Pj4+Pj4gSW1wbGVtZW50IFJXIGhhbmRsZXJz
IGZvciBQQ0lfU1JJT1ZfQ1RSTCByZWdpc3RlciB0byBkeW5hbWljYWxseQ0KPj4gPj4+Pj4+Pj4+
PiBtYXAvdW5tYXAgVkYgQkFSUy4gUmVjYWxjdWxhdGUgQkFSIHNpemVzIGJlZm9yZSBtYXBwaW5n
IFZGcyB0byBhY2NvdW50DQo+PiA+Pj4+Pj4+Pj4+IGZvciBwb3NzaWJsZSBjaGFuZ2VzIGluIHRo
ZSBzeXN0ZW0gcGFnZSBzaXplIHJlZ2lzdGVyLiBBbHNvIGZvcmNlIFZGcyB0bw0KPj4gPj4+Pj4+
Pj4+PiBhbHdheXMgdXNlIGVtdWxhdGVkIHJlYWRzIGZvciBjb21tYW5kIHJlZ2lzdGVyLCB0aGlz
IGlzIG5lZWRlZCB0bw0KPj4gPj4+Pj4+Pj4+PiBwcmV2ZW50IHNvbWUgZHJpdmVycyBhY2NpZGVu
dGFsbHkgdW5tYXBwaW5nIEJBUnMuDQo+PiA+Pj4+Pj4+Pj4NCj4+ID4+Pj4+Pj4+PiBUaGlzIGFw
cGFyZW50bHkgcmVmZXJzIHRvIHRoZSBjaGFuZ2UgdG8gdnBjaV9pbml0X2hlYWRlcigpLiBXcml0
ZXMgYXJlDQo+PiA+Pj4+Pj4+Pj4gYWxyZWFkeSBpbnRlcmNlcHRlZC4gSG93IHdvdWxkIGEgcmVh
ZCBsZWFkIHRvIGFjY2lkZW50YWwgQkFSIHVubWFwPyBFdmVuDQo+PiA+Pj4+Pj4+Pj4gZm9yIHdy
aXRlcyBJIGRvbid0IHNlZSBob3cgYSBWRiBkcml2ZXIgY291bGQgYWNjaWRlbnRhbGx5IHVubWFw
IEJBUnMsIGFzDQo+PiA+Pj4+Pj4+Pj4gdGhlIG1lbW9yeSBkZWNvZGUgYml0IHRoZXJlIGlzIGhh
cmR3aXJlZCB0byAwLg0KPj4gPj4+Pj4+Pj4+DQo+PiA+Pj4+Pj4+Pj4+IERpc2NvdmVyeSBvZiBW
RnMgaXMNCj4+ID4+Pj4+Pj4+Pj4gZG9uZSBieSBEb20wLCB3aGljaCBtdXN0IHJlZ2lzdGVyIHRo
ZW0gd2l0aCBYZW4uDQo+PiA+Pj4+Pj4+Pj4NCj4+ID4+Pj4+Pj4+PiBJZiB3ZSBpbnRlcmNlcHQg
Y29udHJvbCByZWdpc3RlciB3cml0ZXMsIHdoeSB3b3VsZCB3ZSBzdGlsbCByZXF1aXJlDQo+PiA+
Pj4+Pj4+Pj4gRG9tMCB0byByZXBvcnQgdGhlIFZGcyB0aGF0IGFwcGVhcj8NCj4+ID4+Pj4+Pj4+
Pg0KPj4gPj4+Pj4+Pj4NCj4+ID4+Pj4+Pj4+IFNvcnJ5LCBJIGRvbid0IHVuZGVyc3RhbmQgdGhp
cyBxdWVzdGlvbi4gWW91IHNwZWNpZmljYWxseSByZXF1ZXN0ZWQgdGhpcw0KPj4gPj4+Pj4+Pj4g
dG8gYmUgZG9uZSB0aGlzIHdheSBpbiBWMi4gUXVvdGluZyB5b3VyIHJlcGx5IGZyb20gVjIgYmVs
b3cuDQo+PiA+Pj4+Pj4+Pg0KPj4gPj4+Pj4+Pj4gICAgPiBBcmVuJ3QgeW91IGVmZmVjdGl2ZWx5
IGJ1c3ktd2FpdGluZyBmb3IgdGhlc2UgMTAwbXMsIGJ5IHNpbXBseQ0KPj4gPj4+Pj4+Pj4gcmV0
dXJuaW5nICJ0cnVlIg0KPj4gPj4+Pj4+Pj4gICAgPiBmcm9tIHZwY2lfcHJvY2Vzc19wZW5kaW5n
KCkgdW50aWwgdGhlIHRpbWUgaGFzIHBhc3NlZD8gVGhpcyBpbW8gaXMgYQ0KPj4gPj4+Pj4+Pj4g
bm8tZ28uIFlvdQ0KPj4gPj4+Pj4+Pj4gICAgPiB3YW50IHRvIHNldCBhIHRpbWVyIGFuZCBwdXQg
dGhlIHZDUFUgdG8gc2xlZXAsIHRvIHdha2UgaXQgdXAgYWdhaW4NCj4+ID4+Pj4+Pj4+IHdoZW4g
dGhlDQo+PiA+Pj4+Pj4+PiAgICA+IHRpbWVyIGhhcyBleHBpcmVkLiBUaGF0J2xsIHRoZW4gZWxp
bWluYXRlIHRoZSBuZWVkIGZvciB0aGUNCj4+ID4+Pj4+Pj4+IG5vdC1zby1uaWNlIHBhdGNoIDQu
DQo+PiA+Pj4+Pj4+Pg0KPj4gPj4+Pj4+Pj4gICAgPiBRdWVzdGlvbiBpcyB3aGV0aGVyIHdlIG5l
ZWQgdG8gYWN0dWFsbHkgZ28gdGhpcyBmYXIgKHJpZ2h0IGF3YXkpLiBJDQo+PiA+Pj4+Pj4+PiBl
eHBlY3QgeW91DQo+PiA+Pj4+Pj4+PiAgICA+IGRvbid0IG1lYW4gdG8gaGFuZCBQRnMgdG8gRG9t
VS1zLiBBcyBsb25nIGFzIHdlIGtlZXAgdGhlbSBpbiB0aGUgaGFyZHdhcmUNCj4+ID4+Pj4+Pj4+
ICAgID4gZG9tYWluLCBjYW4ndCB3ZSB0cnVzdCBpdCB0byBzZXQgdGhpbmdzIHVwIGNvcnJlY3Rs
eSwganVzdCBsaWtlIHdlDQo+PiA+Pj4+Pj4+PiB0cnVzdCBpdCBpbg0KPj4gPj4+Pj4+Pj4gICAg
PiBhIG51bWJlciBvZiBvdGhlciBhc3BlY3RzPw0KPj4gPj4+Pj4+Pg0KPj4gPj4+Pj4+PiBIb3cn
cyBhbnkgb2YgdGhpcyByZWxhdGVkIHRvIHRoZSBxdWVzdGlvbiBJIHJhaXNlZCBoZXJlLCBvciB5
b3VyIHJlcGx5DQo+PiA+Pj4+Pj4+IHRoZXJldG8/IElmIHdlIGludGVyY2VwdCBQQ0lfU1JJT1Zf
Q1RSTCwgd2Uga25vdyB3aGVuIFZGcyBhcmUgY3JlYXRlZC4NCj4+ID4+Pj4+Pj4gV2h5IHN0aWxs
IGRlbWFuZCBEb20wIHRvIHJlcG9ydCB0aGVtIHRoZW4/DQo+PiA+Pj4+Pj4+DQo+PiA+Pj4+Pj4N
Cj4+ID4+Pj4+PiBUaGUgc3BlYyBzdGF0ZXMgdGhhdCBWRnMgY2FuIHRha2UgdXAgdG8gMTAwbXMg
YWZ0ZXIgdGhlIFZGX0VOQUJMRSBiaXQgaXMNCj4+ID4+Pj4+PiBzZXQgdG8gYmVjb21lIGFsaXZl
LiBXZSBkaXNjdXNzZWQgaW4gdGhlIFYyIHRoYXQgaXQgaXMgbm90IGFjY2VwdGFibGUgdG8NCj4+
ID4+Pj4+PiBkbyBhIHJlcXVpcmVkIDEwMG1zIHdhaXQgaW4gWGVuIHdoaWxlIGJsb2NraW5nIGEg
ZG9tYWluLiBBbmQgbm90IGRvaW5nDQo+PiA+Pj4+Pj4gdGhhdCBibG9ja2luZyB3b3VsZCByZXF1
aXJlIHNvbWUgbWVjaGFuaXNtIHRvIG9ubHkgYWxsb3cgYSBkb21haW4gdG8gcnVuDQo+PiA+Pj4+
Pj4gZm9yIHByZWNpc2VseSA5OShvciBtb3JlPyltcy4gWW91IHlvdXJzZWxmIHN1Z2dlc3RlZCB0
aGF0IHdlIGNhbiB0cnVzdA0KPj4gPj4+Pj4+IHRoZSBoYXJkd2FyZSBkb21haW4gd2l0aCByZWdp
c3RlcmluZyBWRnMgaWYgd2UgYWxyZWFkeSB0cnVzdCBpdCB3aXRoDQo+PiA+Pj4+Pj4gb3RoZXIg
UENJLXJlbGF0ZWQgc3R1ZmYuIERpZCB5b3UgY2hhbmdlIHlvdXIgbWluZCwgb3IgYW0gSSBjb21w
bGV0ZWx5DQo+PiA+Pj4+Pj4gbWlzdW5kZXJzdGFuZGluZyB0aGlzIHF1ZXN0aW9uPw0KPj4gPj4+
Pj4NCj4+ID4+Pj4+IE5vLCBJIHN0aWxsIHRoaW5rIHRoYXQgd2UgY2FuIHRydXN0IGh3ZG9tIGVu
b3VnaC4gTmV2ZXJ0aGVsZXNzIHdlIHNob3VsZA0KPj4gPj4+Pj4gYWltIGF0IGJlaW5nIGluZGVw
ZW5kZW50IG9mIGl0IHdoZXJlIHBvc3NpYmxlLiBBbmQgSSBzZWVtIHRvIHJlY2FsbCB0aGF0DQo+
PiA+Pj4+PiBJIGhhZCBhbHNvIG91dGxpbmVkIGFuIGFwcHJvYWNoIGhvdyB0byBhdm9pZCBzcGlu
LXdhaXRpbmcgZm9yIDEwMG1zIGluDQo+PiA+Pj4+PiB0aGUgaHlwZXJ2aXNvci4NCj4+ID4+Pj4N
Cj4+ID4+Pj4gSSB3YW50IHRvIGNsYXJpZnk6IHlvdSBhcmUgdGVsbGluZyB0aGF0IFhlbiBzaG91
bGQgbm90IHdhaXQgZm9yIGh3ZG9tIHRvDQo+PiA+Pj4+IHJlcG9ydCBWRnMgYW5kIGluc3RlYWQg
Y3JlYXRlIHRoZW0gYnkgaXRzZWxmLiBJcyB0aGlzIGNvcnJlY3Q/DQo+PiA+Pj4NCj4+ID4+PiBJ
ZiB0aGF0J3MgdGVjaG5pY2FsbHkgcG9zc2libGUsIHllcy4NCj4+ID4+DQo+PiA+PiBPa2F5LCBz
byBsZXQncyBjbGVhciB0aGlzLiBJZiBJIHJlbWVtYmVyIGNvcnJlY3QsIHlvdSBkaXNjdXNzZWQg
dGhpcw0KPj4gPj4gd2l0aCBNeWt5dGEgaW4gdGhlIHByZXZpb3VzIHZlcnNpb24gYW5kIHN1Z2dl
c3RlZCB0byBwdXQgdGhlIHZDUFUgdG8NCj4+ID4+IHNsZWVwIGZvciAxMDBtcy4NCj4+ID4gDQo+
PiA+IEkgZG9uJ3QgdGhpbmsgSSBkaWQgKGV4Y2VwdCBwZXJoYXBzIGZyb20gYSB2ZXJ5IGFic3Ry
YWN0IHBlcnNwZWN0aXZlKSwNCj4+ID4gcHJlY2lzZWx5IGJlY2F1c2Ugb2YgLi4uDQo+PiA+IA0K
Pj4gPj4gSSBkb24ndCB0aGluayB0aGF0IHRoaXMgaXMgYSBnb29kIGlkZWEsIGJlY2F1c2UgZ3Vl
c3QNCj4+ID4+IGtlcm5lbCB3aWxsIG5vdCBiZSBoYXBweSBhYm91dCB0aGF0Lg0KPj4gPiANCj4+
ID4gLi4uIHRoaXMuIEluc3RlYWQgaWlyYyBJIHN1Z2dlc3RlZCB0byByZWZ1c2UgKHNob3J0LWNp
cmN1aXQpIGhhbmRsaW5nDQo+PiA+IFZGIHJlZ2lzdGVyIGFjY2Vzc2VzIGZvciB0aGUgbmV4dCAx
MDBtcy4NCj4+ID4gDQo+PiA+IEphbg0KPj4gDQo+PiBEbyB5b3UgaGF2ZSBhbnkgc3VnZ2VzdGlv
bnMgb24gaG93IHRvIGVuc3VyZSB0aGF0IHdlIGFjY3VyYXRlbHkgY2F0Y2ggDQo+PiB0aGUgd2lu
ZG93IHdoZXJlIDEwMG1zIGhhdmUgYWxyZWFkeSBwYXNzZWQsIGJ1dCBndWVzdHMgaGF2ZW7igJl0
IHRyaWVkIHRvIA0KPj4gcmVhZCBhbnl0aGluZyB5ZXQsIHRvIGZsaXAgdGhpcyBiYWNrPyBBcyBJ
IG1lbnRpb25lZCBpbiB0aGUgcHJldmlvdXMgDQo+PiB2ZXJzaW9uLCBMaW51eCwgZm9yIGV4YW1w
bGUsIGRvZXNu4oCZdCBhdHRlbXB0IHRvIHJlLXJlYWQgYW55dGhpbmcgaWYgdGhlIA0KPj4gZmly
c3QgcmVhZCBmYWlsZWQgYWZ0ZXIgMTAwbXMuIFNvIGl0IGFwcGVhcnMgdG8gbWUgdGhhdCB0aGlz
IGFwcHJvYWNoIA0KPj4gd291bGQgYmUgcHJvbmUgdG8gcmFjaW5nIHdpdGggdGhlIGd1ZXN0IGZv
ciBnZXR0aW5nIHRvIHRoZSBWRiBmaXJzdC4gT25lIA0KPj4gYXBwcm9hY2ggSSBjYW4gdGhpbmsg
b2YgaXMgdG8gc29tZWhvdyBzd2FwIHRoZSByZWdpc3RlciBoYW5kbGVycyBiYWNrIA0KPj4gaW4t
ZmxpZ2h0IGR1cmluZyB0aGUgZmlyc3QgcmVhZCBieSB0aGUgZ3Vlc3QgaWYgMTAwbXMgaGF2ZSBh
bHJlYWR5IA0KPj4gcGFzc2VkLiBIb3dldmVyLCB0aGlzIHdvdWxkIHN0aWxsIGRlcGVuZCBvbiBE
b20wIGZvciByZWdpc3RlcmluZyBWRnMsIA0KPj4gYnV0IGluIGEgbW9yZSBjb252b2x1dGVkIHdh
eS4gV2UgYWxzbyBjYW7igJl0IGFkZCB0aGUgVkZzIGJlZm9yZSAxMDBtcyANCj4+IGhhdmUgcGFz
c2VkIGFuZCBhZGQgdGltaW5nIGNoZWNrcyB0byBhbGwgcmVnaXN0ZXIgaGFuZGxlcnMsIGJlY2F1
c2UgDQo+PiBwY2lfYWRkX2RldmljZSBhbmQgZXZlcnl0aGluZyBiZWxvdyBpdCBleHBlY3RzIHRo
ZSBkZXZpY2UgdG8gYmUgDQo+PiBmdW5jdGlvbmFsIGF0IHRoZSBtb21lbnQgb2YgYWRkaXRpb24u
DQo+PiANCj4+IA0KPj4gDQo+PiBNYXliZSB5b3Ugc2VlIHNvbWUgb3RoZXIgd2F5IHRvIGF2b2lk
IHRoZXNlIHByb2JsZW1zIHRoYXQgSSBhbSBtaXNzaW5nPw0KPg0KPiBXZSBjb3VsZCBtYXliZSBk
byBzb21lIG1pZGRsZSBncm91bmQgaGVyZSwga2luZCBvZiBzaW1pbGFyIHRvIHdoYXQNCj4gTGlu
dXggZG9lcy4gIFRoZSBvdmVyYWxsIGlkZWEgd291bGQgYmUgdG8gcHV0IG9uIGhvbGQgYW55IGFj
Y2Vzc2VzIHRvDQo+IHRoZSBkZXZpY2UocykgUENJIGNvbmZpZyBzcGFjZSBmb3IgMTAwbXMsIHRo
YXQgd291bGQgaW5jbHVkZSB0aGUgUEYNCj4gYW5kIGFueSBWRnMuICBBdCB0aGUgcG9pbnQgd2hl
biBWRiBlbmFibGUgaXMgc2V0IFhlbiBhbHJlYWR5IGtub3dzIHRoZQ0KPiBwb3NpdGlvbiBvZiB0
aGUgVkZzIGluIHRoZSBQQ0kgY29uZmlnIHNwYWNlLg0KPg0KPiBBbnkgUENJIGNvbmZpZyBzcGFj
ZSBhY2Nlc3MgYXR0ZW1wdHMgdG8gdGhlIFBGIG9yIFZGcyBkdXJpbmcgdGhhdA0KPiAxMDBtcyB3
aW5kb3cgd291bGQgY2F1c2UgdGhlIGd1ZXN0IHZDUFUgdG8gYmUgcHV0IG9uIGhvbGQsIGFuZCB0
aGUNCj4gYWNjZXNzIHdvdWxkIG9ubHkgYmUgcmV0cmllZCBvbmNlIHRoZSAxMDBtcyB3aW5kb3cg
aGFzIHBhc3NlZCBhbmQgWGVuDQo+IGhhcyByZWdpc3RlcmVkIHRoZSBWRnMgd2l0aCB2UENJLiAg
VGhpcyBhcHByb2FjaCBuZWVkcyBleHRyYSBsb2dpYyB0bw0KPiBwdXQgdlBDSSBhY2Nlc3NlcyBv
biBob2xkLCBzaW1pbGFyIHRvIHdoYXQgWGVuIGRvZXMgd2hlbiBtYXBwaW5nIGEgQkFSDQo+IGlu
dG8gdGhlIHAybSwgYW5kIGEgdGltZXIgdG8gZGVmZXIgdGhlIGFkZGluZyBvZiB0aGUgVmZzIGFu
ZCB0aGUNCj4gdW5sb2NraW5nIG9mIHRoZSBhZmZlY3RlZCBQQ0kgY29uZmlnIHNwYWNlIHJlZ2lv
bi4NCj4NCj4gVGhhdCB3b3VsZCBiZSBhIG1pZGRsZSBncm91bmQgSU1PLCBhcyB0aGUgZ3Vlc3Qg
dkNQVXMgY291bGQgYmUgcnVubmluZw0KPiBmcmVlbHksIHVubGVzcyBhY2Nlc3NlcyB0byB0aGUg
YWZmZWN0ZWQgUENJIGNvbmZpZyBzcGFjZSB3YXMgYXR0ZW1wdGVkDQo+IGJlZm9yZSB0aGUgMTAw
bXMgd2luZG93LCBhdCB3aGljaCBwb2ludCB0aGV5IHdvdWxkIGJlIGJsb2NrZWQgd2FpdGluZw0K
PiBmb3IgdGhlIHRpbWVvdXQgdG8gZXhwaXJlLiAgQSB3ZWxsLWJlaGF2ZWQgZG9tYWluIHNob3Vs
ZG4ndCB0cnkgdG8NCj4gYWNjZXNzIHRoZSBQQ0kgY29uZmlnIHNwYWNlIGVpdGhlciBhaGVhZCB0
aGUgMTAwbXMgd2luZG93IGV4cGlyaW5nLg0KDQpUaGlzIGFwcHJvYWNoIHNlZW1zIHJlYXNvbmFi
bGUgZm9yIG1lLCBidXQgdGhpcyB3b3VsZCByZXF1aXJlIGJpZw0KY2hhbmdlcyBpbiB2UENJIGxv
Z2ljLCBhcyBub3cgcGNpX2FkZF9kZXZpY2UoKSBuZWVkcyBhYmlsaXR5IHRvIGRlZmVyDQphbGwg
Y29uZmlnIHNwYWNlIGFjY2Vzc2VzIHRpbGwgVkZzIGFyZSByZWFkeSBhbmQgaW4gbWVhbnRpbWUg
d2UnbGwgaGF2ZQ0KdG8gZGVhbCB3aXRoIGhhbGYtaW5pdGlhbGl6ZWQgcGRldi4gUENJL3ZQQ0kg
bG9naWMgaXMgYWxyZWFkeSBjb252b2x1dGVkDQplbm91Z2ggYW5kIGFkZGluZyBtb3JlIGludGVy
bWVkaWF0ZSBzdGF0ZXMsIHdoaWNoIG5lZWQgdG8gYmUgZGVhbHQgd2l0aA0KaW4gZGlmZmVyZW50
IHBsYWNlcyB3aWxsIG1ha2UgdGhpbmdzIGV2ZW4gd29yc2UuIFVubGVzcyBJIG1pc3Mgc29tZSBl
YXN5DQpmaXgsIG9mIGNvdXJzZS4uLg0KDQpXaGF0IEkgYW0gdHJ5aW5nIHRvIHNheSBpcyB0aGF0
IHlvdXIgc3VnZ2VzdGlvbiBpcyB0ZWNobmljYWxseSBkb2FibGUsDQpidXQgcmVxdWlyZXMgbG90
cyBvZiB3b3JrLCBhbmQgd2UgZG9uJ3QgbmVlZCByZXNvdXJjZXMgZm9yIHRoaXMgcmlnaHQNCm5v
dy4gU28sIHdoYXQncyB5b3VyIG9waW5pb24gb24gZXhpc3RpbmcgYXBwcm9hY2g/IElzIHJlbHlp
bmcgb24gYQ0KZG9tYWluIHRvIGludHJvZHVjZSBWRnMgc3VjaCBhIGJhZCBpZGVhPw0KDQotLSAN
CldCUiwgVm9sb2R5bXly


From xen-devel-bounces@lists.xenproject.org Tue May 12 10:44:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 10:44:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306700.1578527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMkbc-00061W-PB; Tue, 12 May 2026 10:44:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306700.1578527; Tue, 12 May 2026 10:44:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMkbc-00061P-MG; Tue, 12 May 2026 10:44:52 +0000
Received: by outflank-mailman (input) for mailman id 1306700;
 Tue, 12 May 2026 10:44:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMkba-00061F-Ul
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 10:44:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMkba-00GGxj-BX
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 12:44:50 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a030496-5cb7-0a2a0a5109dd-0a2a450595e0-46
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 12:44:50 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0304a2-aaa8-0a2a45050019-d155802cc51f-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 12:44:50 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-488af9fdaa7so30816965e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 03:44:50 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e8f41b0b1sm26931135e9.8.2026.05.12.03.44.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 03:44:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778582690; x=1779187490; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=twFKg2Ud7k2lpx5wr391RNoyJOpRt564IQf7R4nh7eg=;
        b=PP9b7jlzIBwc2Aem3Gcu80/FsDtgBb+nodDOaqLP5Nb+gMrEW3ub7G7PCxDidrQDUs
         WnUuDjZY9XLwzos9nCwngdC/rQ3Dkhc+xFgYVGR45XSu7SDyllViX/gE2jj8irB8IGPF
         VEgJFKdkWfL9SaUVA7PeJ3ydVvio8tPtdX44FJ+jLO8EG8d0HBmcbCNythEwKvz3ki/t
         aay5IMdb6xMcnHnu8WobrS9vUbxh51NfJ7msjzSqulkgbznfCE6mAKmmoytOLopbV72a
         xIKcMrckIMtaBVcwKAp2IUGkllpd8ti2de8HjJHvKQm5GAyD8qbDSg7oKcQ472iueSjb
         e8uQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778582690; x=1779187490;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=twFKg2Ud7k2lpx5wr391RNoyJOpRt564IQf7R4nh7eg=;
        b=ha8/lP4LtGicIIDnMKZ++vBkFfbj+mEDnz1R+SdCnUuYPVZ/gvWISF91BU9QxFxEWP
         cXpw28G8BFWktYpYNDA5Xysg7IHNyNtua+XMrxYGxqgU90Y4TMUSZGqW80398ahlNY5x
         2kf70XLpymo+WqD1r+rCyb07h3jL9H6KZ/y0PQaFQR7jQijskMInVYd913QiH929xFfL
         93K+rJs6KkXspTos9bvstWmmvvUUlpEfQ09YsFckb2VFQx9Uy1I1SX0szkmzF3D2lsKP
         eUWpMacij8G+1S0EbLJ5pOSk9pdumkuWbYsUF7s+Qr/NG7DLmDgM4ABiGS1hGScC3epU
         yGtA==
X-Forwarded-Encrypted: i=1; AFNElJ9q8/JXLLxoOChy2MqjwlK5EnequjcuzObFHnUjdnS8qxJD+882V8rfmwjQenNtv9kMk7kuwJUsqPM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJwaqEZBxN4k3M4yG2Nb6BYNkVYY5CmMni9MM3VClFdAzFGFGb
	rI4fpKcg3MX6c4fX9tTEna70DMKGSh6igW3Fo5sjHfLCyFJassQAOxF0TB/0gpXmyA==
X-Gm-Gg: Acq92OE+YY4c4ajX1x+/mlKczaZFSkIA9JU+oq8Yexu8psa1dbTIfZLrFrRa+aB9Vgp
	VfBKxfD7QXdBIr2TRhMRfb4yRIVYj4FNTQjA72vZQSbCE/ndNrG4Udvho1ET8OC9deNze0wevSv
	sfFpZ8TkiE4EyaGRm2SxQWaL6pE4jbSzv2Mtf923n0qbZqQIklkcsWucQd1Athul9LFWmviuiIJ
	R8Q7iCcR9sRKa5TCQrD7K+v1TXWVY4gKnkeLPjrbFjXEFl9dopKbhXftAez7NQDI/6zTVoocc/4
	kHSSYnm0NajcLKpIkiHL3eHf9OFtfj1toSC0aXJXkjvZWCPbhv04Rd8Jtqmm1dmSR0YvQjVaBkq
	cJObwo8q46SzbPTgT3fRd/WwTIL25tcsCb8qcEycuOxuNyP2W2K6e4Inz5fJWrFJ4uhjVsNrf1r
	vNWeqp4ndtUgRAW9HGAFvjQAe/3gyGw79sJSNLCNKLVmaAVfeBcAFeWlUfRNu23PY4GqkiIbncK
	qu6WOtMcCqWfs9nq8xc4xSr0Q==
X-Received: by 2002:a05:600c:c058:b0:48a:599a:3716 with SMTP id 5b1f17b1804b1-48e8fe7fa6fmr25803155e9.23.1778582689569;
        Tue, 12 May 2026 03:44:49 -0700 (PDT)
Message-ID: <37888ed4-b800-4a8a-b9c2-f69ce3526de6@suse.com>
Date: Tue, 12 May 2026 12:44:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>
References: <5efddecc-3665-4a53-9eaa-b117370cc0e4@suse.com>
 <5168207f-33ed-4fc4-918e-6c3b454b0efa@epam.com>
 <efb254c2-f52a-408d-b225-e4e03935d05e@suse.com>
 <d0916f22-b5c0-4c93-935c-4cbe17e626d4@epam.com>
 <e5844c28-aa68-4bf6-8287-a4ceeda3a1d2@suse.com> <878q9vt0lg.fsf@epam.com>
 <e9610f70-85b8-44d9-8e13-da26d506d5b7@suse.com> <877bparq9t.fsf@epam.com>
 <1d591ff7-599d-4dfa-b521-bfaded430a76@suse.com>
 <925f2076-f98b-4102-ba45-a85a83861c9f@epam.com>
 <agLruvURfBUb-VgF@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agLruvURfBUb-VgF@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1778582690-D3563443-EE73FDAD/0/0
X-purgate-type: clean
X-purgate-size: 3091

On 12.05.2026 10:58, Roger Pau Monné wrote:
> On Tue, May 12, 2026 at 07:32:20AM +0000, Mykyta Poturai wrote:
>> On 5/12/26 09:20, Jan Beulich wrote:
>>> On 11.05.2026 16:10, Volodymyr Babchuk wrote:
>>>> Okay, so let's clear this. If I remember correct, you discussed this
>>>> with Mykyta in the previous version and suggested to put the vCPU to
>>>> sleep for 100ms.
>>>
>>> I don't think I did (except perhaps from a very abstract perspective),
>>> precisely because of ...
>>>
>>>> I don't think that this is a good idea, because guest
>>>> kernel will not be happy about that.
>>>
>>> ... this. Instead iirc I suggested to refuse (short-circuit) handling
>>> VF register accesses for the next 100ms.
>>
>> Do you have any suggestions on how to ensure that we accurately catch 
>> the window where 100ms have already passed, but guests haven’t tried to 
>> read anything yet, to flip this back? As I mentioned in the previous 
>> version, Linux, for example, doesn’t attempt to re-read anything if the 
>> first read failed after 100ms. So it appears to me that this approach 
>> would be prone to racing with the guest for getting to the VF first.

When we do the write to the control register in Xen, our timer will start
ticking before the guest's. Hence our 100ms will be over (slightly)
earlier, and a well-behaved guest (having waited for the full 100ms
according to its own tracking) will be handled fine.

>> One 
>> approach I can think of is to somehow swap the register handlers back 
>> in-flight during the first read by the guest if 100ms have already 
>> passed. However, this would still depend on Dom0 for registering VFs, 
>> but in a more convoluted way. We also can’t add the VFs before 100ms 
>> have passed and add timing checks to all register handlers, because 
>> pci_add_device and everything below it expects the device to be 
>> functional at the moment of addition.

I fear I'm not following this.

> We could maybe do some middle ground here, kind of similar to what
> Linux does.  The overall idea would be to put on hold any accesses to
> the device(s) PCI config space for 100ms, that would include the PF
> and any VFs.

For the PF, at most parts of the SR-IOV capability should be thus
constrained, I think.

>  At the point when VF enable is set Xen already knows the
> position of the VFs in the PCI config space.
> 
> Any PCI config space access attempts to the PF or VFs during that
> 100ms window would cause the guest vCPU to be put on hold, and the
> access would only be retried once the 100ms window has passed and Xen
> has registered the VFs with vPCI.  This approach needs extra logic to
> put vPCI accesses on hold, similar to what Xen does when mapping a BAR
> into the p2m, and a timer to defer the adding of the Vfs and the
> unlocking of the affected PCI config space region.

I was meaning to have this done in even simpler a way: Simply record
when the VFs were configured, and within the next 100ms terminate all
accesses (read all ones, discard writes).

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 12 10:51:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 10:51:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306710.1578535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMki9-0007j5-CB; Tue, 12 May 2026 10:51:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306710.1578535; Tue, 12 May 2026 10:51:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMki9-0007iy-9C; Tue, 12 May 2026 10:51:37 +0000
Received: by outflank-mailman (input) for mailman id 1306710;
 Tue, 12 May 2026 10:51:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMki8-0007iq-0j
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 10:51:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMki7-009TKy-AN
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 12:51:35 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a03062f-e002-0a2a0a5209dd-0a2a4505b3c0-42
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 12:51:35 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a030636-aaa8-0a2a45050019-d1558031ec92-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 12:51:35 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-48a7fe4f40bso62304055e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 03:51:35 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e8e60f3d1sm23344885e9.3.2026.05.12.03.51.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 03:51:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778583094; x=1779187894; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=feCZtOsL2ZtBJMcko9VfAUJEm4qJa5DneRCyJ1kdOEU=;
        b=JAlSy9Is9RYEAyJ9qTKRheNt2FHOpsmhTDBvoIO0lbAckK6OeOhLQkMvZp7nYyeUlt
         Ju+WuXJxg8yU4lT9yqNGFE3goX7QlIokBmJh2DYakSplAkaZ9p5/UkvEwtC2ZmFoKlNz
         t2UTy7+aHDzlWSEeLEHn/jOmWO8PPjbxind5A3eUgWDHLCCLESYs03p05pw9mxH8SniY
         U2M8/gcNb+IPdO2XW+iPXkZEJFiE8OMA3nEABv8DjfwQLKjxr0w6ATrLfVPUvGgVAq+P
         5HnnoQDEWdhsvujr62P63BLpD9uy03MomZreYD4GtIFPqf1PUZTCiPyMJbx5NgvlxxLP
         HVgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778583094; x=1779187894;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=feCZtOsL2ZtBJMcko9VfAUJEm4qJa5DneRCyJ1kdOEU=;
        b=eg1YLULuiSZa/r58ddZsJk1egtOgUaPXo3Kqz8R8BlDT/AtXAk8owF6mypH0uvP/d/
         vzOWULG49rFUxLsFB8PX+sfXO9WNAAsVVdnMuWb4ixYHwBu9vJSEdo7rcQoZuH/CsWH7
         Vk7z8eFw3vSiCBCUqPtFjvNt2vlGTLF/Q56XUlGzwX2pbDAtLx5lsLiI8OXvJRkUf8yJ
         W0XajIGAWFe2kD7FAAaSfC1A3Sx9e77PLFp4/eb4WBswKol7Esx+Zy4gaj3lao6f+Xvp
         q1ucrDpEHye4Yn8Ig6ukc6iq4j6PdxoNLnsCV+ZpWn7ollYqNgXMBgh6NtEaw7ep7z9a
         dN9g==
X-Gm-Message-State: AOJu0Yz57+BB0p/C7T84Pl2YBdDmkW6Tq8JEiiTH+jeKA+Io8csbnrX4
	Yo1HNBvW4RoKMJ5JTSqIaf3ONdKuLlIlqXjO6iQi/xg+D9eoGSbczQnMZW0E5/QNgg==
X-Gm-Gg: Acq92OESp7jspNo9l4ljQAH9/e4vBJt+JxEnCpegM5E9ntM4KFvCopHM4seZ6CKq+sr
	m7NkpahMWKtKcmHJrZNkqIv1O/5ZzX5omVTtZCocwOD1KYzpVUcgfH/xMD62Gl0qt5JSBYHrW++
	C92H1hsy6/xUwfnYiheYlHt+eFRIyti2VzikMzLII7IVnuncMr69SvO5EI5v3vOj1cPlphfXgRK
	1y5+3EMpdma3GlOmGp5LVbtVGuJDpTwMw+/qTGWTegsnrwKEbVd9A48z/c4KEPVef7spcYDkXDx
	N41x0Hyeb3CjacrhScQVx7JM2yHVn8URzjkFVmykVBgQrwy0AAtwTFHlx4qmLobA7BxzIcYFpoj
	j1JH8CpqrHUU1uCFWklAYle/inFen3j7EA+MgXoCGa9vfb2GGS73Z4GlAzea4SnqG7NvluQQpXf
	Hq4O90JVrzfBkTEMWQX0eAxaoU/3msn9EOr8l4o6AQJOUKZkBU7FWcY4jSoHMfIH52j0up0sY/G
	cmJMSNiB5p89r8=
X-Received: by 2002:a05:600c:8211:b0:489:c57:7836 with SMTP id 5b1f17b1804b1-48e51f40ecemr488630785e9.27.1778583094587;
        Tue, 12 May 2026 03:51:34 -0700 (PDT)
Message-ID: <5b77896d-4f56-439c-9b7f-c3d83d671066@suse.com>
Date: Tue, 12 May 2026 12:51:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] symbols: explicitly specify source file name for symtab
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <f921abc1-1f1a-4ef1-b21b-a65b5d50eafd@suse.com>
 <agLw10IR1KO3tNKX@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agLw10IR1KO3tNKX@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1778583095-D3D67443-AD105564/10/73395122804
X-purgate-type: spam
X-purgate-size: 2711

On 12.05.2026 11:20, Roger Pau Monné wrote:
> On Mon, May 11, 2026 at 12:00:03PM +0200, Jan Beulich wrote:
>> If there are any local symbols in an object file, GNU ld will create an
>> STT_FILE symbol derived from the object file name if there is none in the
>> incoming symbol table. The object file name, however, varies between
>> linking passes. As a result, symbol name compression can yield different
>> results if any of those local symbols need retaining (Arm [and RISC-V]
>> mapping symbols are omitted, for example). If that difference in
>> compression would yield a difference in the sizes of symbol_names[] or
>> symbols_token_table[], the compare-symbol-tables sanity check will fail.
>>
>> Fixes: d37d63d4b548 ("symbols: prefix static symbols with their source file names")
>> Reported-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

>> --- a/xen/arch/x86/Makefile
>> +++ b/xen/arch/x86/Makefile
>> @@ -200,7 +200,8 @@ $(TARGET).efi: $(objtree)/prelink.o $(no
>>  ifeq ($(CONFIG_DEBUG_INFO),y)
>>  	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),echo,:) "Will strip debug info from $(@F)"
>>  endif
>> -	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0s.S
>> +	$(objtree)/tools/symbols $(all_symbols) --source-name=$(@F).S --empty \
>> +		> $(dot-target).0s.S
>>  	$(MAKE) $(build)=$(@D) .$(@F).0s.o
>>  	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
>>  	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds $< $(relocs-dummy) \
>> @@ -210,6 +211,7 @@ endif
>>  		> $(dot-target).1r.S
>>  	$(NM) -pa --format=sysv $(dot-target).$(VIRT_BASE).0 \
>>  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>> +                  --source-name=$(@F).S \
>>  		> $(dot-target).1s.S
>>  	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
>>  	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
>> @@ -220,6 +222,7 @@ endif
>>  		> $(dot-target).2r.S
>>  	$(NM) -pa --format=sysv $(dot-target).$(VIRT_BASE).1 \
>>  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>> +                  --source-name=$(@F).S \
>>  		> $(dot-target).2s.S
> 
> Wouldn't it be more accurate to use $(dot-target) as the source name?
> 
> Maybe $(notdir $(dot-target)).S?

Why would that be better (more accurate)? The file names change, so the
specified file is "virtual" anyway. I simply don't see why prepending a
. would be helpful.

> I see the default is already set to the target filename for other
> arches, so not a big deal IMO.

It's a "virtual" filename also there. No real xen-syms.S is ever created.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 12 11:11:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 11:11:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306723.1578546 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMl1V-0002OM-Vu; Tue, 12 May 2026 11:11:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306723.1578546; Tue, 12 May 2026 11:11:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMl1V-0002OF-RY; Tue, 12 May 2026 11:11:37 +0000
Received: by outflank-mailman (input) for mailman id 1306723;
 Tue, 12 May 2026 11:11:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wMl1U-0002O9-Qx
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 11:11:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMl1T-00EC1r-MG
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 13:11:35 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a030adc-2eae-0a2a0a5409dd-0a2a4508d71e-28
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 13:11:35 +0200
Received: from [52.101.201.67]
 (helo=PH7PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a030ae5-63b5-0a2a45080019-3465c943cb0f-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 13:11:35 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MN2PR03MB5312.namprd03.prod.outlook.com (2603:10b6:208:1e9::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Tue, 12 May
 2026 11:11:30 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.021; Tue, 12 May 2026
 11:11:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S8LKEFURr8ZcTlm6D6bsKOb+ylOPfQFY8pUj5uiGgv+33TE4iI5awqBQicV6Ghhsb4oHXridWw9P29KEjLpl7vw1Ana5YKR5TiCydqu/BPg0WT6z5NgCXUhhLwaAQMh1P0Q6EMZw06MUN2Q9xccA32Ukfu02i/aDnAojKaZYumitFlrckaL8aRwMJuYycmD7I3RH0azImqZ9wxCOr037O0CZ3NRmhdIB9cDPE53KKuMN1oSskrQd3ldBt73OgLZd85mVGObwaQkaGZbgI+l6n2VaNJy44Ku36JKGLa1zxOPNrFD8pPREawCDpr0IE/Dq77qxsgIxswjNxP6tCQf9VA==
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=AWreu2g8IqKYu/Eg2gQn2qeacYML4OnsnZs+qppdjN4=;
 b=U0sY1MA9drygee3a2KU6L0RvTK6c+G1WqA8p6FqEiTHJ19clSvRCBaZL6aCLC56+qL2WZKT0y6CNV0jPx2rPB+N7HFAuwvQ6vdqsoZaU4fgs8zMxeEJCrVzJAhIi2yMSvRygKU6xXxTIJwjRRXEY5/RdTXArY3U1tc8C25MS9z66J0Lrk6ntOq6bcqnyiJvH8YDwlSO8CpwPFuy4L3y0s4UuWNjv09tb3BuYcexwSAfzHodzag574zFIU+5qV49BCXShWx346l3l5Wc+qWmuzYk1YBh6A0zil1PkzhPyd9Uj4YqkUkQtKswlkGWyJIuPrdcrizBH/JRuKWJzEm3fVQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AWreu2g8IqKYu/Eg2gQn2qeacYML4OnsnZs+qppdjN4=;
 b=uNfCoHHRYzSyKtEbx6V0zA7lx9AVmiJJdLL+rTiEZyKARWYYzA9YkqYaRZMlQ89O3afX0IdrIwWBGxsjS/vloCPKb5SCJU+OBiQJgjW6vQMKDVld2no9isWBmKWSdkACloxWKJWDC1OcIKcFfBU4iTg2c3lXF9GGefiaIcEH320=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 12 May 2026 13:11:26 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: Re: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
Message-ID: <agMK3qCDKWTlNXMa@macbook.local>
References: <efb254c2-f52a-408d-b225-e4e03935d05e@suse.com>
 <d0916f22-b5c0-4c93-935c-4cbe17e626d4@epam.com>
 <e5844c28-aa68-4bf6-8287-a4ceeda3a1d2@suse.com>
 <878q9vt0lg.fsf@epam.com>
 <e9610f70-85b8-44d9-8e13-da26d506d5b7@suse.com>
 <877bparq9t.fsf@epam.com>
 <1d591ff7-599d-4dfa-b521-bfaded430a76@suse.com>
 <925f2076-f98b-4102-ba45-a85a83861c9f@epam.com>
 <agLruvURfBUb-VgF@macbook.local>
 <37888ed4-b800-4a8a-b9c2-f69ce3526de6@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <37888ed4-b800-4a8a-b9c2-f69ce3526de6@suse.com>
X-ClientProxiedBy: MR1P264CA0013.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MN2PR03MB5312:EE_
X-MS-Office365-Filtering-Correlation-Id: f099390c-c076-405b-3a50-08deb0173806
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|22082099003|18002099003|56012099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	JRmvw74ggBgygjTO6HYuhae8Yti3X9QwLqIaPmXq4xyyS//tLyCYnR7oVo78e1mSi2Dz91THL4a2KNOpR4U7AjgwSw65LFL+Orwh/GF4Ca3bW2u7KjKqeU3oS5I+ezxOv2PFzP4+0EKYhf1og6t6UJWkvrsMWJB07C7L4s8vZociv2rWiuZCHUX/J7jGpHdUHtczQE1aIVsv/oAsV+M+deAJ1UxcmD1wqrGH5G9+/6sR6UFuPFl7oXpfrEjNDVrf5s91qV6VVRQaTuHFP+L6d7L69MzxoweRQn+5/soKhFjFyk388GViyGd1BhvepSHRwQmeP52WpZaXPAqMGGJ8IEo8JBrEmdlD+sBBVi6tMrV4L7GvI7v9zGLest0Yv0+DC2Zsl4NL4gFgr74pMgDo4qOimQYJ2bRaZB2TiYrisvN6mS7vnd3ZCLS3rVDNCJYPKzO2b33YqTwsPP/ietDcQNXNDFkl9xboJ16KYogLtF234vDUnqzjk2iepg0YH5ztXgAbF2pdNOmdMTYmgh6TYir7IBB8f4VG/sQvAbi6BYMIu4TLp4BOKywZ6LAqeM8Hca9iGCE299maf2AUL4l4yH3ALGueuWjPSvAHTwdEMyKthp8/WGxeX+UJvXoNo9sOp51hECTuUmY19wsz6DclOk/4Y5S7W/j0fnmkRRB8FCp8K43NPIz3fOHojif7uvd9
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(22082099003)(18002099003)(56012099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cUVBbEE3YVZReFBWSnU5K214c1RtanNEZmtRYVVlN3A5UHlMdnpSMW56SjNn?=
 =?utf-8?B?eW4wcmZET0lOS281czB5Z1cxMjZJZk5sUzRQZE52ZW1JSU1WaXdMdmphZ1dZ?=
 =?utf-8?B?Y2xZQ3EwUjZQMldqR0JtUlNYYjNoTmlyYWlhWHNCTjFvMVJsL1d6SUhUZENT?=
 =?utf-8?B?WlEzQzMzRnRJWmJVZ0lhMW4xSUZmOG1KSWlyUGdvR25XVThEUWIzalhyTWRl?=
 =?utf-8?B?LzBkMFBQTjlWWVBQQ0RRd0U3U0RERjc3OVl1NEZMczhoZFZYYTU3dXdobW91?=
 =?utf-8?B?aU5ZYVBCT2JLVkVRbnU4ZFU2YjlQcmhRQjcxVytrMGNkK0hBRWFPYzBWVFNE?=
 =?utf-8?B?Q1NCOGdlQjZwSFJXczVmRGx6RTlWaUhld1h6ZWIvNjIra2FkSmk1Q1Jja1c3?=
 =?utf-8?B?ckNSU3MrMUM3c2JHVDlZM0g1N2RRSUJQdVdRdTlacjl3ZlF4RjlUTUdBRktE?=
 =?utf-8?B?eWVqb0YyZm5DcU5ORHFmMmlvVVlIekVhbUJDRVlBS3N2YnMra0hpbXZ0amhn?=
 =?utf-8?B?ODVwV25kSFdrS29PR0p2RW5jdkh2VHVvRER5NitYOEJ1OXVkb0lrek0rb2ZT?=
 =?utf-8?B?NlZSd0JMTlB5U0hqQWtxeTNUMExqK1EyMVpkbjhmUEV5NDRwL3dHZ0s5aW9o?=
 =?utf-8?B?OHRSa0Y1Q08rVlRtOEZDbEZrQ3hYVkxvN0RvcVljdStMVGx4bXZvMkdjN1Mz?=
 =?utf-8?B?T1Ara2xWWldzaUV5ZFVQZmVLcklrcTN3RjhIRVlzeEZOVTNCcnl6NXgyZTc5?=
 =?utf-8?B?ZkhmVkliUGRvRnRpWUJrN29CUkMvREVaeUcrMkxYWEFzSStIOEIvaEdPSnRv?=
 =?utf-8?B?VjM4emhhcFNnK1BmVU8rdklaYlFUaFd4M2R5bXBWQmtzUnRuWlFWMmVHc3Yw?=
 =?utf-8?B?R3VuSVNENUtvaVBmbitkdm5pQUpTOHNURjMwSUUxNlZoQmU2amhGc2RFMHVw?=
 =?utf-8?B?Q1ViQ2hXblVuRnhqMjYwc2pBdWQyUzkwd3ZpWWFqMkRSZFhST1EzOGt6Z1Bu?=
 =?utf-8?B?YlNWMUhLU2ZqKzhobmFlbUV5c0hQdnRYaFQ5c01YZW81VExGMkFHaCsybUdI?=
 =?utf-8?B?dlZsZzRqbkc0Q3BxYTdYZnM3VzQ1Z0Y4NGw4U0lXS0c5NStYOU1EZjNodzlz?=
 =?utf-8?B?MVRzMlFFSGZoSWdGdzhCaGs4SVRPblZhSWs1OC8vOHphWDZ0d1dHMkxFWVR2?=
 =?utf-8?B?V1h4cjhUOUNNV0xNdUlLeFQyWmNMUjMveFJqVFIxM2kxNk9rT0dkU0FZbTM2?=
 =?utf-8?B?UHFNS2JOZzY1Zzg3b0IyTFRRaTNjQTVrdjREVlFueHVvKzdjU1BhRDR3TDFN?=
 =?utf-8?B?bXloL0d2OHptUnM4Y0gwcllrNXY0MTdkL2cyMkVpK0pkTEhTMHpJc3Y5dmxx?=
 =?utf-8?B?SG5VSG50cldDVlpPaVV3VkM1cjlOVGdWZFRaMGdZcFBJU3EwNTdvOXJWVWds?=
 =?utf-8?B?S1NWaUIyWTJPNlhoTm1Bb2JEejd0UkZFNU1kRkxaR1puQXZNWkNhMmFoUTRu?=
 =?utf-8?B?dHR0Skw5NXMxTkpSQlF6ZjZScWVVQmtnTEhXdnJORlpISWdsbmVhbHFjWTZ3?=
 =?utf-8?B?bWZpVThtZzhEbFA2dFdtekQ0SnJVRUIzMUNGbEt2b3IzTW1xMjJwcXJzOExN?=
 =?utf-8?B?aXhyUWFIUmpWTUw4MnJlbTB2enBnckNNd3Qxc1JkeVdRTHNXaXQ4SkRxbEE5?=
 =?utf-8?B?Y3NQcW0wOVM1WXBFOWlYckY1dDVWSnhtbTQ2eEw0YUNvbGlvV1NFWTlXazRt?=
 =?utf-8?B?Q1dmUUt1QWVRWHVuUzRybjVCcVFzTlcrdEhPNGExcDJkUm9iSENBRE5HRVNy?=
 =?utf-8?B?V2RJZi9URU5DajQxWFZNTTN0dWo2WE1Zc1ZsbG9kMW44ZHI3WDBvS0RTMmFY?=
 =?utf-8?B?MGNpSDlTRkoyb1oreWN5WDlSQ1VsZUwrYnlTN2dTVHhtT0luczhUdSsvRTBU?=
 =?utf-8?B?MWRmallyYlRlcDY4RjBEN0JzNTY4Y0l3V3hlZFFGdE1nWG9xT2w3eGYvS0Yw?=
 =?utf-8?B?b00vZE5ramZHOXVvR0VOeHpPcm9MUmhjQXgxMVg3akZ0MU5jK2JPMHdFdVhy?=
 =?utf-8?B?LytBUXk0aXhvUE1JTHFqNjc1SkgxdktTc2RpUERMN2k5bkRoMVVoWnBpQmIr?=
 =?utf-8?B?elJKMXFGckJBZnBFNmg1ZXpVSkNPZERmcVFkWm5rYjV6bFkzSGpzcUdsdjVn?=
 =?utf-8?B?Rld2UzhxWDZsY2I1ZXgxUy85QjZwblc5cGtxT2pSUkJoMUE5TG14WXQ0bHE4?=
 =?utf-8?B?QTZxYWN1OWw5ZFlITzRaTFZGTzAzWDhiZ0txWDN3N2FLYk1mbTREcUxmMktC?=
 =?utf-8?B?Zkk5YXFISkN1V29abDZoek5DdzVteEdXT0YxRW9zSDNMenJTZm5BUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f099390c-c076-405b-3a50-08deb0173806
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2026 11:11:30.7253
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6ATOiKUbvrrgG5s3HJjhfCtUZIru+T4TbKaT8Nl5NMaNiPgfoXVRb+4Vi4dooKY+OXk58HXz8hyEfEb26Ltuog==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5312
X-purgate-ID: tlsNG-c1860d/1778584295-C447DDB1-D224ADDD/0/0
X-purgate-type: clean
X-purgate-size: 4040

On Tue, May 12, 2026 at 12:44:48PM +0200, Jan Beulich wrote:
> On 12.05.2026 10:58, Roger Pau Monné wrote:
> > On Tue, May 12, 2026 at 07:32:20AM +0000, Mykyta Poturai wrote:
> >> On 5/12/26 09:20, Jan Beulich wrote:
> >>> On 11.05.2026 16:10, Volodymyr Babchuk wrote:
> >>>> Okay, so let's clear this. If I remember correct, you discussed this
> >>>> with Mykyta in the previous version and suggested to put the vCPU to
> >>>> sleep for 100ms.
> >>>
> >>> I don't think I did (except perhaps from a very abstract perspective),
> >>> precisely because of ...
> >>>
> >>>> I don't think that this is a good idea, because guest
> >>>> kernel will not be happy about that.
> >>>
> >>> ... this. Instead iirc I suggested to refuse (short-circuit) handling
> >>> VF register accesses for the next 100ms.
> >>
> >> Do you have any suggestions on how to ensure that we accurately catch 
> >> the window where 100ms have already passed, but guests haven’t tried to 
> >> read anything yet, to flip this back? As I mentioned in the previous 
> >> version, Linux, for example, doesn’t attempt to re-read anything if the 
> >> first read failed after 100ms. So it appears to me that this approach 
> >> would be prone to racing with the guest for getting to the VF first.
> 
> When we do the write to the control register in Xen, our timer will start
> ticking before the guest's. Hence our 100ms will be over (slightly)
> earlier, and a well-behaved guest (having waited for the full 100ms
> according to its own tracking) will be handled fine.
> 
> >> One 
> >> approach I can think of is to somehow swap the register handlers back 
> >> in-flight during the first read by the guest if 100ms have already 
> >> passed. However, this would still depend on Dom0 for registering VFs, 
> >> but in a more convoluted way. We also can’t add the VFs before 100ms 
> >> have passed and add timing checks to all register handlers, because 
> >> pci_add_device and everything below it expects the device to be 
> >> functional at the moment of addition.
> 
> I fear I'm not following this.
> 
> > We could maybe do some middle ground here, kind of similar to what
> > Linux does.  The overall idea would be to put on hold any accesses to
> > the device(s) PCI config space for 100ms, that would include the PF
> > and any VFs.
> 
> For the PF, at most parts of the SR-IOV capability should be thus
> constrained, I think.

Linux blocks access to the whole device PCI config space, but that
might be simply because it's easier to implement that way on their
side.  Certainly the spec doesn't mention any restriction in accessing
the PF config space during that window.

As a simpler approach we might want to reject write accesses to the
SR-IOV capability during that window.

> >  At the point when VF enable is set Xen already knows the
> > position of the VFs in the PCI config space.
> > 
> > Any PCI config space access attempts to the PF or VFs during that
> > 100ms window would cause the guest vCPU to be put on hold, and the
> > access would only be retried once the 100ms window has passed and Xen
> > has registered the VFs with vPCI.  This approach needs extra logic to
> > put vPCI accesses on hold, similar to what Xen does when mapping a BAR
> > into the p2m, and a timer to defer the adding of the Vfs and the
> > unlocking of the affected PCI config space region.
> 
> I was meaning to have this done in even simpler a way: Simply record
> when the VFs were configured, and within the next 100ms terminate all
> accesses (read all ones, discard writes).

Hm, I thought about such approach also, I was mostly worried that some
drivers might know the device has a shorter initialization time, and
hence attempt to access before the 100ms window.  However simply
discarding accesses might be easier to implement initially, and hence
I would be fien with such approach.  We would need to log any such
discarded accesses during the init window.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue May 12 13:22:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 13:22:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306767.1578554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMn4G-00025z-2X; Tue, 12 May 2026 13:22:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306767.1578554; Tue, 12 May 2026 13:22:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMn4F-00025r-U9; Tue, 12 May 2026 13:22:35 +0000
Received: by outflank-mailman (input) for mailman id 1306767;
 Tue, 12 May 2026 13:22:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wMn4E-00025f-9D
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 13:22:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMn4D-00GqOI-Je
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:22:33 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a03298c-e002-0a2a0a5209dd-0a2a450a8d3c-20
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 15:22:33 +0200
Received: from [52.101.57.67]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a032998-56b3-0a2a450a0019-34653943cbb8-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 15:22:33 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB7053.namprd03.prod.outlook.com (2603:10b6:806:326::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Tue, 12 May
 2026 13:22:29 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9891.021; Tue, 12 May 2026
 13:22:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UWqonfqFprsAx34Z1NMdrUKvP+SEtVR8xNt3M3eKUxt1F6O56qoPgUaZjCgoxfkvul1ZxDydTn456PfHrtfcDqkQEPfQLdwWKh/VjFdtRzIy5IQxTM4IKAZs0lfpc+24hQAgnVv3BRgNzOcNZZ56H9bvBLKaOsBPqyRDM5kBmnqDnZJ6RSWJeY9Oba4EfEhCMqgNioOPxEjM5oiu+xNoMSfNBlKM9IhfuC+yv0ZejPVSl9L5oDCeMp4StIaAstOlulLqKpEQB3BC6WgH0hwewp8ltGv0/ILMm9fxlEWidwM3VEOAJxM05KZmvt6qNPu+zuecMVXWpM1+xdx6gXbt9w==
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=Wj4h3Ia5IEE4WoUj7agL//1EIIs9tQPFwXwLKzXfi90=;
 b=ZA7x5WJi3qBve+WRf4z+Sv1rZMnHv+q8Hb/rgDC9KIlllCC/AJHrS9Ytc2tTUmaEz0gsKA8HMzrexFZMdQTldalI7uxdu1y+3B3RG7OwU3iInzvU6/lC9a+PnE14S0cQ2k9L7WRQ+h18Flp4ieuLonhXiUkNd/hJf/+xpDQHmazlbW5/T5CYSz1imsFKgt75gsQVD+RLkBR69zF4cIvHkCG5vOOyOOHmQWemn6PIrzJMmXLN4dsygnOTFz47lUXr/X+dzjfRY9/yTuYJaeb5p5RkjfPR4Y9lhaOPm4H9fI3Mkh/jYkCvYFzxLXXvOym04lLz+jXZxMgAwc7/9p+vHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Wj4h3Ia5IEE4WoUj7agL//1EIIs9tQPFwXwLKzXfi90=;
 b=FB3qE9GjjwW9L4Cs8m5tAxduxJAt1QEJtst8mBvniHKRMaTClJMebjUPy+KBCx55Scw5hI17JYFFLOi7cb1b/T0VKf72uefyT7joHPtj11M9VEG39ifxkK7ty5qq0USB5UsqlJ9YL2nGqM9k64i9OCHvNwOsUc7Ht4Dol7OXuvM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 12 May 2026 15:22:25 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Mykyta Poturai <Mykyta_Poturai@epam.com>,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v3 5/7] vpci: add SR-IOV support for PVH Dom0
Message-ID: <agMpkflDCV9hBMKZ@macbook.local>
References: <efb254c2-f52a-408d-b225-e4e03935d05e@suse.com>
 <d0916f22-b5c0-4c93-935c-4cbe17e626d4@epam.com>
 <e5844c28-aa68-4bf6-8287-a4ceeda3a1d2@suse.com>
 <878q9vt0lg.fsf@epam.com>
 <e9610f70-85b8-44d9-8e13-da26d506d5b7@suse.com>
 <877bparq9t.fsf@epam.com>
 <1d591ff7-599d-4dfa-b521-bfaded430a76@suse.com>
 <925f2076-f98b-4102-ba45-a85a83861c9f@epam.com>
 <agLruvURfBUb-VgF@macbook.local>
 <87v7csrkgb.fsf@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <87v7csrkgb.fsf@epam.com>
X-ClientProxiedBy: BN9PR03CA0543.namprd03.prod.outlook.com
 (2603:10b6:408:138::8) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB7053:EE_
X-MS-Office365-Filtering-Correlation-Id: 16d537a5-c150-4db3-f180-08deb02983ec
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|56012099003|22082099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	0k1iM+7QYtjvOX+K5FMN852Iu4ueFjgVLT87xj1PuWJiYoQoPW2QO/jII2q13+gTYks9ge1oouHZwXSxhEZtjRFutB9e1iK3F5QBT2qOK461Q1ra02hRhjUk8hvSYF3Pmv3cikFZOslkUcC1ZIAwfcQ8SNiycCfZLK/YISgEzNBjgnJwvmMZRi4sFwGX5l3Kn1/dBhSLyYPbCh2zE8SSsHfWsbIJf4owyDwj0XuIOZClWeCD0bUvhookdsLvmOJLv9zDYaZwuQTU8z5sq/ofve2O+6IwTJtVO2gfvLxHOGJNwvBwNAGv6VVgO/3FaJeCxcbjqebku9mU8IA8NpqKSCJYTBLNFdsY3IygRly4UPy8P7uQVKnH1MrjXTxkXKCyiwbsNTQPE6ezThIMkaJPetPo8eWPuefbtfSUJzFi8du5f8prxSREM9CfLySr9khoC36gpyLIVDDFtZ/QvsblLr1XFdxnp+dpf9uXiq2PSswphkYnEOmifhHtKAZLUZOTLYL/b8lDDqZ0v2IRlQ13xjYxK4v/mtDAU714roT7Q77jRlc+0NtDeItZemqG2LY7NR0Tnr3UcgKlCnHVljLciwfciwn/ow6AmHqp5pxgTV4+xgFGFq7udDzPqAN1JLMoJ8CaJp5Rs3UNKenx3kEvWHWlPeRK9NlNpNZU0umvXTehy25JRgGlI0vw1VynPvig
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(56012099003)(22082099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eGlwT0NxRXg0ZVhCTWFPSTlRWFNJV1U4dGc3RVFNaE5MVFEremNrR295b3ZB?=
 =?utf-8?B?dHpmS0YrNzI3VE9RN2tUcDUzaklJYlVYZ0QxQXQwVVRkSnZQUDJoZ0hiYi83?=
 =?utf-8?B?c1ZXcUk0N3NGYllVdWpkbCtkRWJsb2J3bG5Hbkx3YUVkWmgyVnpoSTN0TUFC?=
 =?utf-8?B?OVRTYzM3WC8rSGlxNkFhR1IrUitISm5uZ01RVUNMNUhsa3ZkSng0Z281WFR1?=
 =?utf-8?B?Uk9xRUNDSFpMa2hJODdWWllPU0pWQ1hQNnpYYTZjM0hYby9SRWJLMzR5VUdl?=
 =?utf-8?B?amZrRGN6bThOZjVMUDdPV3BGbXdsWTFlb3VZWW9mbWlDdTloZWx0bkVlWHd0?=
 =?utf-8?B?SVpSVVFtL3o3L2JQSVdkQzlCVXljS0lmRXJsd2kvOWpic2pZTFBIa2t5SzQ0?=
 =?utf-8?B?aGhEakV3ejlSeXBDQ2srbmJiZ1dNTlNENmlaL0p4OXVVeDBQc0prUFdkSFJi?=
 =?utf-8?B?TXF3Tlc2UUxqY2Q1Mldwb1QrYkM1NkRHeXJMLzBKay9zcEVaSmJLWHZySDk1?=
 =?utf-8?B?OEh4UEFEZFNQSkpQRDQ0VXBQMSsvZkRZdWhTUk82QkludXdNUS9rK290d1lT?=
 =?utf-8?B?YVJENm50UFdjTlFLdHlwMWR6V3pUcFZxUGhVL3BzNEhaa0xyOXVtemNFTmdF?=
 =?utf-8?B?OFpFaUxPWTlXelE4U2tpZWVQWVFuWTcxdkVHeFQ2NFR4ODBmY0NxdE9nVjRz?=
 =?utf-8?B?SzRlU1ZSeU05dnhtUFNxbzVPM01LUVlPZGQ4dFhicFlOYXRBU3RKMmt0Kzc1?=
 =?utf-8?B?cWJLSWlDeWhLdFVXblhwVWRYSGlCWWMraDBWcHRmb2YrWDh5SUJsWkpVMjFi?=
 =?utf-8?B?ZFhzdVNTL1dyWTdWdkcxK1pjRk9CMUxuNnM3U3I4b1NmdlRLUlhPMG5sRGFp?=
 =?utf-8?B?ODJRV3BQbGhnL2JLbnZXeDBobm1LSk9qZVI2anEyaCtnc3FUNm15SU4vbUdY?=
 =?utf-8?B?YVBKMEdCK2V2WWJ5dk04bUV5SXRUQ0I0d2xsTlNZeXMxQTJ6R2JYSG1nY20w?=
 =?utf-8?B?blFIWkJDOGNQVjB5UW1BVzlKVSt5TkdUTmIyRERjMVNRWGl5RmJIT09zRkpy?=
 =?utf-8?B?bGtMc3J6UVBITXREV211NDFaSlFxUG9MRHJUdmthL1JsRjM3WEhwYkVNQXhX?=
 =?utf-8?B?NTFYZjIweWxyUGk3TFhVUDhHbUp4SlJjMWZabUNQK2NzRzhUQVBwYTdoTzdo?=
 =?utf-8?B?K0IwWjRTbk5MZ21jcm1obEhpQllTcXFOdlNzTWowUDQ2eUZqN21SYnVxSDFW?=
 =?utf-8?B?MGZKRDBJRklIaUlGeDlLc2RuRVlMSFBWaE9mY3pxa2gzRXBSWVdldUxMZDVN?=
 =?utf-8?B?Y3pHcDBQTVVqOFQ0QTJucEk2eVNLVWovUDkrSGFOQzNJNVNHU0o4S3NwK1JP?=
 =?utf-8?B?NUdyb0JRQmpzLzd2M3BMK1lmUUZpUzZIRHZwZGVFYTQrTmwwdE5CQSt4SnlG?=
 =?utf-8?B?S0pTSDhKK3ErSk8vMmcyMVNBVExIcllST0w1NjZDQmRKY211OVl2YnczcWxp?=
 =?utf-8?B?a0srZERtNkNDbkRQS2tMSVJnT2UyZXlIeEFIQlBvTTVQRitiaGV5bTd2d3Y0?=
 =?utf-8?B?eWFyekdqRjdrV2ZwYWxOTDFTcjlGSEZSd0tWZjB3eGFqTEJ3bXRKdFhPU0tx?=
 =?utf-8?B?RFJUbnJyYVdRRTFyMExZMDYvdEZVamIwYXZtb0liSnlOdUNiWjNmRVdMYTMy?=
 =?utf-8?B?dm5QSUJ0WVFqTExEMTZZei9xRXhUaWpRQXAvU0pRME9JODNKREI4NGJXL25X?=
 =?utf-8?B?S0tKZDMydkhLUlZMVm8yS0x6WHRZYmR2QWFQUWZ4bWpBTy96QXlRRUc0NHJa?=
 =?utf-8?B?STdXcDI4VTROWm9YTzlkMXFMVVdpYlFZQmVmMHRVVzUvRUpPdkwza0xmcTNp?=
 =?utf-8?B?cSs4RjhMTzJlSWd4U2kxbXR3R0QxcXhwTGZxZnJnRE9TNUUyc2lERjhFOFhs?=
 =?utf-8?B?NUpKZU40czBQVHZWZHNYb3JHNTBwSVUxc3JNZHBXeFZRTWo0NVN6c2JoVVFw?=
 =?utf-8?B?VWJhT0l6aEV3TnpmR1BiQlNxOG9oYklBbE83NXB5WjdiMzh1QnVuOE1Ndnkr?=
 =?utf-8?B?MVZhcnMvSm9lU3RtcVA5YlR3OHN2TTNXNkQ0UUUyRlp5TjZKRzFJSDRFa1Bv?=
 =?utf-8?B?eG40SDdHRDZqZmU5VXg2ajRtVmZnMDFJbjgrUzJHRWRBdlFxNFR0dk1QMkJV?=
 =?utf-8?B?cjUyWDVOT0dQcHdORVBkNVNkTGdtd1dhclozWkxUaWN2cUlHdTEvWStoRDJB?=
 =?utf-8?B?TW9oLzlia1BLVTNwczJGQXYyaGJWOEV2RWpaMGRwbXo2ZFFxQmt2bmJLTnhH?=
 =?utf-8?B?TUpNci84WE4xc1c3YXZKb1dsb1dkV3hwckRFU0tlSlY5VEhKVmxVdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 16d537a5-c150-4db3-f180-08deb02983ec
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2026 13:22:28.9392
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0FiFjZ77NWYEW6ZY9dFXquXHvU/4wNF/XSkmJOT+V2oTD51u4nuYuj60Y4xaCHqfkM7XGj0bLnUwzFs4FZo/4Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB7053
X-purgate-ID: tlsNG-4011c0/1778592153-7F3958B7-8D979058/0/0
X-purgate-type: clean
X-purgate-size: 9169

On Tue, May 12, 2026 at 10:28:05AM +0000, Volodymyr Babchuk wrote:
> Hi Roger,
> 
> Roger Pau Monné <roger.pau@citrix.com> writes:
> 
> > On Tue, May 12, 2026 at 07:32:20AM +0000, Mykyta Poturai wrote:
> >> 
> >> 
> >> On 5/12/26 09:20, Jan Beulich wrote:
> >> > On 11.05.2026 16:10, Volodymyr Babchuk wrote:
> >> >> Hi Jan,
> >> >>
> >> >> Jan Beulich <jbeulich@suse.com> writes:
> >> >>
> >> >>> On 07.05.2026 22:40, Volodymyr Babchuk wrote:
> >> >>>> Jan Beulich <jbeulich@suse.com> writes:
> >> >>>>> On 06.05.2026 11:39, Mykyta Poturai wrote:
> >> >>>>>> On 5/4/26 08:37, Jan Beulich wrote:
> >> >>>>>>> On 23.04.2026 12:12, Mykyta Poturai wrote:
> >> >>>>>>>> On 4/21/26 17:43, Jan Beulich wrote:
> >> >>>>>>>>> On 09.04.2026 16:01, Mykyta Poturai wrote:
> >> >>>>>>>>>> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
> >> >>>>>>>>>>
> >> >>>>>>>>>> This code is expected to only be used by privileged domains,
> >> >>>>>>>>>> unprivileged domains should not get access to the SR-IOV capability.
> >> >>>>>>>>>>
> >> >>>>>>>>>> Implement RW handlers for PCI_SRIOV_CTRL register to dynamically
> >> >>>>>>>>>> map/unmap VF BARS. Recalculate BAR sizes before mapping VFs to account
> >> >>>>>>>>>> for possible changes in the system page size register. Also force VFs to
> >> >>>>>>>>>> always use emulated reads for command register, this is needed to
> >> >>>>>>>>>> prevent some drivers accidentally unmapping BARs.
> >> >>>>>>>>>
> >> >>>>>>>>> This apparently refers to the change to vpci_init_header(). Writes are
> >> >>>>>>>>> already intercepted. How would a read lead to accidental BAR unmap? Even
> >> >>>>>>>>> for writes I don't see how a VF driver could accidentally unmap BARs, as
> >> >>>>>>>>> the memory decode bit there is hardwired to 0.
> >> >>>>>>>>>
> >> >>>>>>>>>> Discovery of VFs is
> >> >>>>>>>>>> done by Dom0, which must register them with Xen.
> >> >>>>>>>>>
> >> >>>>>>>>> If we intercept control register writes, why would we still require
> >> >>>>>>>>> Dom0 to report the VFs that appear?
> >> >>>>>>>>>
> >> >>>>>>>>
> >> >>>>>>>> Sorry, I don't understand this question. You specifically requested this
> >> >>>>>>>> to be done this way in V2. Quoting your reply from V2 below.
> >> >>>>>>>>
> >> >>>>>>>>    > Aren't you effectively busy-waiting for these 100ms, by simply
> >> >>>>>>>> returning "true"
> >> >>>>>>>>    > from vpci_process_pending() until the time has passed? This imo is a
> >> >>>>>>>> no-go. You
> >> >>>>>>>>    > want to set a timer and put the vCPU to sleep, to wake it up again
> >> >>>>>>>> when the
> >> >>>>>>>>    > timer has expired. That'll then eliminate the need for the
> >> >>>>>>>> not-so-nice patch 4.
> >> >>>>>>>>
> >> >>>>>>>>    > Question is whether we need to actually go this far (right away). I
> >> >>>>>>>> expect you
> >> >>>>>>>>    > don't mean to hand PFs to DomU-s. As long as we keep them in the hardware
> >> >>>>>>>>    > domain, can't we trust it to set things up correctly, just like we
> >> >>>>>>>> trust it in
> >> >>>>>>>>    > a number of other aspects?
> >> >>>>>>>
> >> >>>>>>> How's any of this related to the question I raised here, or your reply
> >> >>>>>>> thereto? If we intercept PCI_SRIOV_CTRL, we know when VFs are created.
> >> >>>>>>> Why still demand Dom0 to report them then?
> >> >>>>>>>
> >> >>>>>>
> >> >>>>>> The spec states that VFs can take up to 100ms after the VF_ENABLE bit is
> >> >>>>>> set to become alive. We discussed in the V2 that it is not acceptable to
> >> >>>>>> do a required 100ms wait in Xen while blocking a domain. And not doing
> >> >>>>>> that blocking would require some mechanism to only allow a domain to run
> >> >>>>>> for precisely 99(or more?)ms. You yourself suggested that we can trust
> >> >>>>>> the hardware domain with registering VFs if we already trust it with
> >> >>>>>> other PCI-related stuff. Did you change your mind, or am I completely
> >> >>>>>> misunderstanding this question?
> >> >>>>>
> >> >>>>> No, I still think that we can trust hwdom enough. Nevertheless we should
> >> >>>>> aim at being independent of it where possible. And I seem to recall that
> >> >>>>> I had also outlined an approach how to avoid spin-waiting for 100ms in
> >> >>>>> the hypervisor.
> >> >>>>
> >> >>>> I want to clarify: you are telling that Xen should not wait for hwdom to
> >> >>>> report VFs and instead create them by itself. Is this correct?
> >> >>>
> >> >>> If that's technically possible, yes.
> >> >>
> >> >> Okay, so let's clear this. If I remember correct, you discussed this
> >> >> with Mykyta in the previous version and suggested to put the vCPU to
> >> >> sleep for 100ms.
> >> > 
> >> > I don't think I did (except perhaps from a very abstract perspective),
> >> > precisely because of ...
> >> > 
> >> >> I don't think that this is a good idea, because guest
> >> >> kernel will not be happy about that.
> >> > 
> >> > ... this. Instead iirc I suggested to refuse (short-circuit) handling
> >> > VF register accesses for the next 100ms.
> >> > 
> >> > Jan
> >> 
> >> Do you have any suggestions on how to ensure that we accurately catch 
> >> the window where 100ms have already passed, but guests haven’t tried to 
> >> read anything yet, to flip this back? As I mentioned in the previous 
> >> version, Linux, for example, doesn’t attempt to re-read anything if the 
> >> first read failed after 100ms. So it appears to me that this approach 
> >> would be prone to racing with the guest for getting to the VF first. One 
> >> approach I can think of is to somehow swap the register handlers back 
> >> in-flight during the first read by the guest if 100ms have already 
> >> passed. However, this would still depend on Dom0 for registering VFs, 
> >> but in a more convoluted way. We also can’t add the VFs before 100ms 
> >> have passed and add timing checks to all register handlers, because 
> >> pci_add_device and everything below it expects the device to be 
> >> functional at the moment of addition.
> >> 
> >> 
> >> 
> >> Maybe you see some other way to avoid these problems that I am missing?
> >
> > We could maybe do some middle ground here, kind of similar to what
> > Linux does.  The overall idea would be to put on hold any accesses to
> > the device(s) PCI config space for 100ms, that would include the PF
> > and any VFs.  At the point when VF enable is set Xen already knows the
> > position of the VFs in the PCI config space.
> >
> > Any PCI config space access attempts to the PF or VFs during that
> > 100ms window would cause the guest vCPU to be put on hold, and the
> > access would only be retried once the 100ms window has passed and Xen
> > has registered the VFs with vPCI.  This approach needs extra logic to
> > put vPCI accesses on hold, similar to what Xen does when mapping a BAR
> > into the p2m, and a timer to defer the adding of the Vfs and the
> > unlocking of the affected PCI config space region.
> >
> > That would be a middle ground IMO, as the guest vCPUs could be running
> > freely, unless accesses to the affected PCI config space was attempted
> > before the 100ms window, at which point they would be blocked waiting
> > for the timeout to expire.  A well-behaved domain shouldn't try to
> > access the PCI config space either ahead the 100ms window expiring.
> 
> This approach seems reasonable for me, but this would require big
> changes in vPCI logic, as now pci_add_device() needs ability to defer
> all config space accesses till VFs are ready and in meantime we'll have
> to deal with half-initialized pdev. PCI/vPCI logic is already convoluted
> enough and adding more intermediate states, which need to be dealt with
> in different places will make things even worse. Unless I miss some easy
> fix, of course...

You could just defer the pci_add_device() to after the 100ms window
from having enabled VFs?  The only requirement would be blocking PCI
config space accesses to VFs during those 100ms.  You could use a
bitmap to signal which SBDF should be rejected in vpci_{read,write}.
There's already logic in those functions to reject accesses.

> What I am trying to say is that your suggestion is technically doable,
> but requires lots of work, and we don't need resources for this right
> now. So, what's your opinion on existing approach? Is relying on a
> domain to introduce VFs such a bad idea?

IMO yes, requiring the usage of an hypercall (or any other side-band
interface) when not strictly required is just adding a handicap for
OSes that then need to be ported to run on Xen.  It might seem easier
at first, but adding and maintaining such side-band interfaces in OSes
tend to be cumbersome and prone to errors.

We could have avoided introducing vPCI at the cost of adding a
completely new side-band interface to manage PCI config space
accesses and interrupts on x86 PVH, yet we didn't do it because albeit
easier to implement from the Xen side, it would have a huge cost on
OSes that would want to run in PVH mode.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue May 12 13:34:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 13:34:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306780.1578564 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMnFO-0003r2-0Z; Tue, 12 May 2026 13:34:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306780.1578564; Tue, 12 May 2026 13:34:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMnFN-0003qv-Sc; Tue, 12 May 2026 13:34:05 +0000
Received: by outflank-mailman (input) for mailman id 1306780;
 Tue, 12 May 2026 13:34:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMnFM-0003qp-EX
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 13:34:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMnFL-006rFl-RW
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:34:03 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a032c4b-e002-0a2a0a5209dd-0a2a4507cd14-10
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 15:34:03 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a032c4b-229c-0a2a45070019-d155dd2be430-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 15:34:03 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-44c4cc7c1cfso4525895f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 06:34:03 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4549130549bsm33484917f8f.18.2026.05.12.06.34.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 06:34:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778592843; x=1779197643; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=q5p/reA1z4bDeOlhcrfuCX4r5dDlgone514JG+dWwZA=;
        b=daV8KYUXPSH8qzSraz49xMyJ8SyBOUYbgTxp1vrTfHGTGvKZFHY2Hy3x78/2gvGWKS
         tYY+2aSTgYxXCc5VZhyRle2On6h3Hk1Iz7iok6COIBIP+Aw6RYMoRBy7PsycCvjn5Vw3
         X3/oZp92a6SD7TwVuWkXKtP/7Mt9XsukbhvVwAUCcgZ1nEPFSatx34slX88ok3GZufyt
         ieWMRlPVtU5yuCm1+rvj5euNUE+V0FV4lLwCqZjoNvi0U2ouDRXINgqKzTf8SSpiik46
         O3//+mmSX4QuWqDSUxPI8oWq65JidD1TW5wL+94ZjZEgR0MmmNPZZNgw93i5CxWRq09A
         sgcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778592843; x=1779197643;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=q5p/reA1z4bDeOlhcrfuCX4r5dDlgone514JG+dWwZA=;
        b=f1hhkx6PhUhgRJHnbmBM76uYysHaubQ6fCWEJfGygfynAt+FpvDjI0dVUmEoMnEZKD
         5lU6JOpkDJ5FkxNXqlV8GV+EIHnXs34F2tzu7ywRnafI09vu+8iKKyjYg8F0Jo8X57UG
         JXAicmiT087noX9dS8dycgDBB6YVc3bN7P1Xkv2HfefuKIEv9t7n6bSama/RKX6fbPS/
         rg+sKmjenNC2onZx8NNw5dT1dGpfvLxLBLiidrjJtK2L+dOSeGapXFOl+KF/1RyFCxep
         4sH5b+e8qvkw9YHqBevYNRvpkgwQtGv2973EEAFwA5THTA3Z6QgvKFmXj7ZcDDNOmtbW
         BC/Q==
X-Gm-Message-State: AOJu0YycM8+O0Fgse2OVw9gFY9HXAdS4/zZLjiKxi/1+1yULTCk8Ae9G
	ObqNUgV9s5MnsB+a18ipfecPG8S5zksd463JkpGFpXV+FrzPWoBLjowUSs1RTg==
X-Gm-Gg: Acq92OHE+xd6SkiFdgrbJZz37HhncPDA0H+ZBriKK6D3J5mRnUb/uGnuXzi6CKBT1Ku
	+mYFrCa/qcxRCpR+YVcd3gtOMvXEIm0Hm0mVDspRmYmdDeTobaGVLisv8z8fLNUF6tL81VRSQtT
	gfVYBMkxda6jTCd1sYENAbA+oBnod8E6gWfhSVDfhIYv7OWFtppscI3Cu9G+gWU5qukG6uMZ1n+
	xNuDo+k2KoYqeiP5uaTABJqNf2bFsqXACImSJAqwG4ieC0/tPUyJ14d4yftZguNd3UbeC8ewYOz
	4hQzVDVK6rlHKE5NPv6GHctc7eIqAyYYsZEHGD8P6H+0VM9q9PhgiBySqzkVmfD1QDdVP3wg0nv
	+hMNf4M03kN+Bw+3xa+CcCCcyX34Ymqi/Nk3Cm4a37wwjCZqbiyqkZF5AqTq8bxp4C8Z8SSc4wb
	wfcX7uuXEDrITcNew1QHf1lMHwDuzEhIoOvN9TjxsJRQ1OFpGfWuKW/rRa2fNJzXZRykSCe8QuX
	vI=
X-Received: by 2002:a05:6000:2082:b0:43d:7e34:889c with SMTP id ffacd0b85a97d-4515da97e81mr44959588f8f.39.1778592843025;
        Tue, 12 May 2026 06:34:03 -0700 (PDT)
Message-ID: <0c35fdcf-dd0f-4565-9c66-9319e0d14aed@gmail.com>
Date: Tue, 12 May 2026 15:34:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Code freeze for 4.22 started on May 11, 2026
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>
References: <e21070ac-3a84-4ad7-a4d1-9178d89c1435@gmail.com>
 <agIlvjBPH4ppBuKY@macbook.local>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <agIlvjBPH4ppBuKY@macbook.local>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1778592843-2236CC48-0ECF66DB/10/73395122804
X-purgate-type: spam
X-purgate-size: 766

Hello Roger,

On 5/11/26 8:53 PM, Roger Pau Monné wrote:
> On Mon, May 11, 2026 at 11:35:55AM +0200, Oleksii Kurochko wrote:
>> Hello everyone,
>>
>> I would like to inform you that Code freeze period is started and will be
>> until Fri Jun 05, 2026 (+4 weeks from Feature freeze).
>>
>> Bugfixes may continue to be accepted by maintainers without R-Ack.
> 
> Hello,
> 
> I would like to inquire about whether changing an option default value
> could still be accepted:
> 
> https://lore.kernel.org/xen-devel/20260511185145.23750-1-roger.pau@citrix.com/
> 
> This is not new code, just changing a default.  I believe this makes
> dom0 PVH more usable out of the box (see commit message).

I am okay to have this patch in release.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 12 13:36:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 13:36:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306788.1578572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMnHU-0004KY-BK; Tue, 12 May 2026 13:36:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306788.1578572; Tue, 12 May 2026 13:36:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMnHU-0004KR-7Z; Tue, 12 May 2026 13:36:16 +0000
Received: by outflank-mailman (input) for mailman id 1306788;
 Tue, 12 May 2026 13:36:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMnHT-0004KL-JR
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 13:36:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMnHS-003yMz-SJ
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:36:14 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a032cce-2eae-0a2a0a5409dd-0a2a4505896e-0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 15:36:14 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a032cce-aaa8-0a2a45050019-d1558033c07d-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 15:36:14 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-488a9033b2cso51066445e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 06:36:14 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e908cb403sm43449755e9.9.2026.05.12.06.36.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 06:36:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778592974; x=1779197774; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ZaZ+NTBSU/ub/f0LQjzSVpAxRfv4aAjAGsxul3GYYRw=;
        b=RmK/V7ym5cGpvCjMg2byM+sBuRun8BhCQAfod4SGqg9XBiSZFskoAtI6Nj8NAU25l2
         jp2+3Q5Yzqkeb4xvXvXZVzci89drlBub51yVcQiiDn04J+zlmEIz1vDr2GSKPzxqz3HC
         JJJIcyS3JM2sZl4R6CbNzlkTReFdPiGBFcUIOL3XEN8K3QFjVHQE5OVqeIbJlkrSN6Ry
         LNhVL3fTAoRjBD9MmCkn9m0w+ywhLKBSZqw16B/5Ei69UfBiTypB42GQfpn1YB+IGzJs
         jtMmLC4tsan3xLcq2UN2/mH5ItVgY4husNYUmegdUDeNzmUMgi/DHkBGyeFNH9gJbOqg
         0LVQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778592974; x=1779197774;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ZaZ+NTBSU/ub/f0LQjzSVpAxRfv4aAjAGsxul3GYYRw=;
        b=jGBFvJ1E4q59wlB65kup9aloUV9w3kvs5I+AVnrNpPxN3QiHrOT77pibiO3mLQxX5c
         NPgIKG5L9cBuOyvnluUWVNjgFqg30UBHlbTZ1K/eX27MCjAqPy5LBozFCwSP+AuWV3cw
         dmDwZDH2yeD1AtO5+N1M5jxiAOZBtsMKFTNJbrsQi3QBNG/5uKd1bYS6HhkuQmqmuoTS
         Q+BFIAc15ozpetlyPx0IGVh/R0O6e7/dthGIrzkKfhTbuh6XgOVbu/LFp4LbxquXrkxO
         jB5NEjw7JgBEGTWydNQqA4Ffy6eEQ/1FIdB3D6bTkhKBlmraOBoutHlDo37ybtf2gH2D
         w7HA==
X-Forwarded-Encrypted: i=1; AFNElJ8dH5Bcx5+C+aIIY/Mwx1ryXszrZje5e3yqZc4hFcZhj+2XxIe1oO7YJVxkNxxqqpCNydkzSFz7kpA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwEgR4cRWSBt25j3QkDosRYSvMiUL3F1KmXx8+BkpMw1cEXMhQk
	1s4qZX9e1kPPkFzSSnSdbyfQxoJuLWw9hrhkf7Qnq4T0KHXO5Cbj+mby
X-Gm-Gg: Acq92OFa2U+kRrnEFEJk/zE5zOcYtYTNTREPngpbQxIqQ7jNnWRcQoueT+GPcQ6TRpz
	LC/2p9IFWqsCAS6oT6qrKO5ObnzYngkcGjWNTCFz/s+TuWm5219rCpBjzfSGOfvfid0cGeoaGm5
	Vb3jz/hZvDA6wuaXwWUab57CuZifBlS9wvnYKJvtuaVTIYnVXrrFgYuUO9BGWwQxy1ZHDORX15+
	jJpG6zfFeKHGJ2MZympZFdeC4v1LzuCbwHBzoaGLwUj6KuzVB9qc6C8UIDGhRRUTnp7PppG1+OZ
	O+V0PcL8IhMmKlO8UnUq24Xb3bAXfxA0vJAipFbitrf3Xaz7sVZ18ZyGGxHL4OsMLI+BdSys5Gp
	7Qc5VXxhZXhb/BHc4tnDNkp09kUCpR7Ee42QDW+fcrD2TAyV5Nej+Xn+zKruGY3qo901Ek6TePB
	uQT5lQ6baJ2TinPFagUnMKh+DGoOj6iI48Mc2JIzovpW3GHuB6jma/oKPT31A2VlTt8O+sBHfTO
	Zw=
X-Received: by 2002:a05:600c:4fc4:b0:48a:58ae:9938 with SMTP id 5b1f17b1804b1-48e706bd7bdmr223927435e9.19.1778592973599;
        Tue, 12 May 2026 06:36:13 -0700 (PDT)
Message-ID: <f16e96c7-7835-48c9-a44b-595457ac01f8@gmail.com>
Date: Tue, 12 May 2026 15:36:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/dom0: enable pf-fixup by default for PVH dom0
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Teddy Astie <teddy.astie@vates.tech>
References: <20260511185145.23750-1-roger.pau@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20260511185145.23750-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1778592974-DAB68443-19A47BDC/10/73395122804
X-purgate-type: spam
X-purgate-size: 1321



On 5/11/26 8:51 PM, Roger Pau Monne wrote:
> A non-trivial amount of issues related to PVH dom0 are fixed by enabling
> the `pf-fixup` command line option, and no issues have been reported as a
> result of its usage.  Enable the option by default to make PVH dom0 more
> robust in its default configuration.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> Changes since v1:
>   - Slightly reword an expand option help text.
>   - Mention the change of defaults in CHANGELOG.
> ---
>   CHANGELOG.md                      | 2 ++
>   docs/misc/xen-command-line.pandoc | 8 ++++++--
>   xen/arch/x86/hvm/emulate.c        | 2 +-
>   3 files changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index ce46020dbdb4..25f5a192ed48 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -7,6 +7,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>   ## [4.22.0 UNRELEASED](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=staging) - TBD
>   
>   ### Changed
> + - On x86:
> +   - Enable pf-fixup option by default for PVH dom0.

LGTM:
  Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

And also,
  Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 12 14:46:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 14:46:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306832.1578584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoNG-0005LK-DG; Tue, 12 May 2026 14:46:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306832.1578584; Tue, 12 May 2026 14:46:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoNG-0005LD-AJ; Tue, 12 May 2026 14:46:18 +0000
Received: by outflank-mailman (input) for mailman id 1306832;
 Tue, 12 May 2026 14:46:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMoNE-0005L7-OV
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 14:46:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMoNE-00AHY7-55
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 16:46:16 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a033d2d-5cb7-0a2a0a5109dd-0a2a4503d1c6-30
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 16:46:16 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a033d37-672d-0a2a45030019-d155802ad525-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 16:46:15 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-488ba840146so50706295e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 07:46:15 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4548ec6b071sm32678652f8f.14.2026.05.12.07.46.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 07:46:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Content-Language:Cc:To:Subject:From:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778597175; x=1779201975; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=ef0Ej7/EwGOt8gsXR4m1PlHknpHJki/daNNQxhNXIi8=;
        b=AQKc++IRs2q9crTXDygnm2D1dpgGRl/Oi384E2RhQ4IdAKGIXlM244Idd2bZskNAS6
         pGQZUqeMwpsMD2lXHqf5F0QkEXLzpu50hEE8Qw4ssNLp15DpiVESMocQ+V7bAj5pAf0X
         Wd5bvbAP068wmHICtdty3Tj7+409Erq1L03ibIMOuOS+QnjX3LmBgY06uPSmL2na4SpV
         Bh5eQZiceLuekGmb7ABQck0QrQsMMVnHd9fKatQjqNqhQ5qDGRA40P3hvWTjryqzUKBY
         T09BzZhiyLAq32U7kCfZIGX51L0u4W2jl1cHJYTGQfUqSCyziziYWVOaSoz7pVGuJ4Eg
         KTdg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778597175; x=1779201975;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ef0Ej7/EwGOt8gsXR4m1PlHknpHJki/daNNQxhNXIi8=;
        b=I3QRh2WKXjHUXiNhZPTODZlNj66/sF9YnbNgtaqvHlH0rUE6INnHrWoCY+817R/a1h
         DaOymv8YLNo2rF8dTfXJMqYcpXwVWy34AN9UBxMzi7sKf6jBBstOdK5sd4AYTcHrUsSB
         YU/TTmu9yry3vQrX77Jn3Yg82kzI5ZV56N+Pt9Z+PnhcxEEDEl38bJ5cAVlOilB85ERH
         Hd/YVdujA3ZmW+q55I8aiSioiblHgbaRXgMWqV5dNFjQVsSl6Z6GuTMVblx+W1C8LoSC
         bBVoP03w9qz7QlYTRE6aTRUeYbMhqwuYxzx6shsjIdRR+PiNXp3RwOf1KIylKq4OX15m
         smeA==
X-Gm-Message-State: AOJu0Yx3clgRgI6MVXAxEw8he56IHVaQ8MtqTu7ScIyMaiXvlYcR6t9S
	Exifw47yitmG+xD+87hy+3T8O9wfCTq7P67t0f9kZhsxlO0OaOOkYQyRBmIu5OuPG4OmZNZCPI0
	tuQk=
X-Gm-Gg: Acq92OFTAULNj6mm46nOkEXTGnbS6ay6TUr5PfA+d0Mu9aTC3fEe3tFzqc+VuDrhOgT
	qynnHYweliwBCvZZP2oI1kCM1fzkoUaQLBOhiVvpvMqmGhU9Admjp8uLjNOnKB+Tpnn0whuYGl+
	8JFhtYwnRNYRJ8fbnjY+iBoutLGUEIZaD0lceBd9cEx6PV6TvrVYqAZgb7BiMATgDVdNuWSB+B6
	FD+N9d3UtZTHG9uXFMj1pmW4DL+TPa4HIR4H3xvaMEgaVtcvWoYMzUwM06yMKpQG2Tig4a5psHV
	aTpV4SaIjbRjenoVSm8YkPhJZLrK4KAk7+Dkp6AtoBtYWOP0+tGbAulPAVYkFZ+kT7BngTgNaAr
	EsWv/rS0Z0sulXPd6iVHcvF8LKsWIBHLjIM1rm4s5K+ktLCFJ5Eq91wBfNB69VzmYkWsl8ec8m3
	DN/+tNUAYK5pSDX5Vg4SAk0I0Jzax+gL6GRMTMXxGxIsPLWZzadvebCuQcmfz29xltdEiokSSUc
	GhmDI2Snsqyk2WgR9ty0+n7mA==
X-Received: by 2002:a05:6000:24c7:b0:44a:198a:5256 with SMTP id ffacd0b85a97d-45b138873e9mr4882549f8f.24.1778597175256;
        Tue, 12 May 2026 07:46:15 -0700 (PDT)
Message-ID: <6e3dbb4f-5849-4525-8f8b-a2818c39da2d@suse.com>
Date: Tue, 12 May 2026 16:46:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH for-4.22(?) v2] gnttab: simplify (really: drop)
 gnttab_set_frame_gfn()
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Rafal Wojtczuk <rafal.wojtczuk@7bulls.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1778597175-42965938-03EF2E91/0/0
X-purgate-type: clean
X-purgate-size: 3269

It's not really doing anything for valid GFNs, which renders its one use
site pretty pointless. The other isn't so much about setting anything, but
rather about clearing.

The main point here, however, is about Rafal spotting the double
fetching of the GFN (first in gnttab_unpopulate_status_frames(), then
again in gnttab_set_frame_gfn()). Re-purpose the macro parameter to pass
in the already fetched GFN, while dropping the no longer used parameters.

As the result is a mere wrapper around guest_physmap_remove_page(), drop
the hook altogether.

Suggested-by: Rafal Wojtczuk <rafal.wojtczuk@7bulls.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Drop hook altogether.

--- a/xen/arch/arm/include/asm/grant_table.h
+++ b/xen/arch/arm/include/asm/grant_table.h
@@ -50,13 +50,6 @@ int replace_grant_host_mapping(uint64_t
 #define gnttab_dom0_frames()                                             \
     min_t(unsigned int, opt_max_grant_frames, PFN_DOWN(_etext - _stext))
 
-#define gnttab_set_frame_gfn(gt, st, idx, gfn, mfn)                      \
-    (gfn_eq(gfn, INVALID_GFN)                                            \
-     ? guest_physmap_remove_page((gt)->domain,                           \
-                                 gnttab_get_frame_gfn(gt, st, idx),      \
-                                 mfn, 0)                                 \
-     : 0)
-
 #define gnttab_get_frame_gfn(gt, st, idx) ({                             \
    (st) ? gnttab_status_gfn(NULL, gt, idx)                               \
         : gnttab_shared_gfn(NULL, gt, idx);                              \
--- a/xen/arch/x86/include/asm/grant_table.h
+++ b/xen/arch/x86/include/asm/grant_table.h
@@ -32,12 +32,6 @@ static inline int replace_grant_host_map
     return replace_grant_pv_mapping(addr, frame, new_addr, flags);
 }
 
-#define gnttab_set_frame_gfn(gt, st, idx, gfn, mfn)                      \
-    (gfn_eq(gfn, INVALID_GFN)                                            \
-     ? guest_physmap_remove_page((gt)->domain,                           \
-                                 gnttab_get_frame_gfn(gt, st, idx),      \
-                                 mfn, 0)                                 \
-     : 0 /* Handled in add_to_physmap_one(). */)
 #define gnttab_get_frame_gfn(gt, st, idx) ({                             \
     mfn_t mfn_ = (st) ? gnttab_status_mfn(gt, idx)                       \
                       : gnttab_shared_mfn(gt, idx);                      \
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -1844,8 +1844,7 @@ gnttab_unpopulate_status_frames(struct d
         {
             int rc = gfn_eq(gfn, INVALID_GFN)
                      ? 0
-                     : gnttab_set_frame_gfn(gt, true, i, INVALID_GFN,
-                                            page_to_mfn(pg));
+                     : guest_physmap_remove_page(d, gfn, page_to_mfn(pg), 0);
 
             if ( rc )
             {
@@ -4285,8 +4284,6 @@ int gnttab_map_frame_begin(
          */
         if ( !get_page(pg, d) )
             rc = -EBUSY;
-        else if ( (rc = gnttab_set_frame_gfn(gt, status, idx, gfn, *mfn)) )
-            put_page(pg);
     }
 
     if ( rc )


From xen-devel-bounces@lists.xenproject.org Tue May 12 14:49:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 14:49:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306865.1578595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoQW-00062Z-RU; Tue, 12 May 2026 14:49:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306865.1578595; Tue, 12 May 2026 14:49:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoQW-00062S-Nf; Tue, 12 May 2026 14:49:40 +0000
Received: by outflank-mailman (input) for mailman id 1306865;
 Tue, 12 May 2026 14:49:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMoQV-00062K-CH
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 14:49:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMoQU-004Dpu-PN
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 16:49:38 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a033dfb-e002-0a2a0a5209dd-0a2a450ac3d2-12
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 16:49:38 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a033e02-56b3-0a2a450a0019-d155dd31d89a-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 16:49:38 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-44e1ebb3122so2950226f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 07:49:38 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491bae13csm32284298f8f.29.2026.05.12.07.49.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 07:49:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Content-Language:Cc:To:Subject:From:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778597378; x=1779202178; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=BkBBCMkmJExXqLA468nivUiDeCwwD3TxXfg9UbGdhnI=;
        b=ZG5h0VQliZaCGL5EjRhfxf/5ETW4gcDkMK7qVneGkvkQHt0jzzXysdAiJEpBMA2wbs
         TJyz+6fjshlN101J1BidZXdjt3lsmCcOTO8Fr7oJJg+NSUTthDmbXOqUWMmP/W0yewmW
         T0YrdiBlBIqMypBC6aVE5C4AVMBMTa6KFHn+vTgUBM0nOIp90nW1Svwbi4GO0TJsZHze
         n3GSI4Ly2mx/G7DIqnAq5+pfxlAOoTfmH7LDcfQoe9tSpL8hfLl50Ec4JKPj7mn/xWHA
         NiZvSxNypYVt3nUaSdahZmAiVX9fcL7yRYrqcW4DwWPHBxiXvNY7nHOAZHbbj0Ix61of
         1umw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778597378; x=1779202178;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=BkBBCMkmJExXqLA468nivUiDeCwwD3TxXfg9UbGdhnI=;
        b=PfI8HhXGPXsHgd+yt/mWRixGqB6y6tO1FccQVBuWAb+i4mzFbVCPd++cWbmx5UMUzb
         ph3zUliWs6RU2aLxinSyWMF/aWC5KfQWxu1LDUl2xK6Nbh8juVKGdbqpCCr9RPBCWyLm
         70IGpW0hc4x/btzf5T2mhj/tFheP0tANDFUvcOrgUwbL7/fmVwiCVM9jLzfy/xm0l0tQ
         qb74Enj9DvzCLzMGrQMQxMxQVFe4wEFVeWLTJhbCtg5Jpugf/SIT1g0XZtQVu7UKU/qj
         f/8oqWDfBlRh56ZU4fW/FMS+ai8G2cR7w6sFlpcyexMdRnq4AxoBkjfOthkUKbQBa7hG
         bfMA==
X-Gm-Message-State: AOJu0YzrmiTSMdcpVohzh5oj9m2DGliH7xTvXmJzGUxMlokjy5VZsIdp
	aNcUgTHQK1Y87dqZDAenSB5AFug8Vowo8JTsVFU+Fo96eLIZrV+wu2/1pkGkEnho7ELid6kTIKO
	ctBc=
X-Gm-Gg: Acq92OHYIil/vvI4RslSIU34MSBWmzT1ZDpNf37BYPznlySOfrc7ycrXigYT9PcdlLf
	KSN9JLWuEQnmiKV3b6YOkAFO/HaHtrzF3qWJkE4X6EVlG+fmMWGg8uY3thrvG4POXVU2S8diW8r
	T3xz8SFOICblmky/NUpDysrclY3nhqyG2OdhavrjK/Nbfg2xJWtWVpVa6FNnuD0zvdWKXPkbS+m
	EX5CvAPzyNuno6JRdjSA048vyTyIWh5iUnhTLWmDGRZ73Et9GVRwru+b81Z5P3GJcGoah/Q3kQr
	nB8i5stLRhr0cL4Lj9DoE3ql9IETBp7p96jjjxSWZ5V8ef9Am9DsRwlOxNC7gwkZdFHm5xJbsY8
	wpFFzrVuSMpWqyBIP64pFNfbRL+OniwUiSfJvaB7Yl2GPScz5OwspxoEq94JvCksOXOUiBmY0Mc
	dkM/F+Q1hOzxWy0WET+YHr0GyJRy+Wh/+WDgNojGjKctLI9nvBX12iRRD67uhTn+02qo+5JEMty
	aqRjUyqbVutHKc=
X-Received: by 2002:a05:6000:2483:b0:451:2157:6291 with SMTP id ffacd0b85a97d-45b14adc11bmr4866067f8f.41.1778597378108;
        Tue, 12 May 2026 07:49:38 -0700 (PDT)
Message-ID: <7b5dd0c9-ff34-4d03-be4c-7d50e517b0e9@suse.com>
Date: Tue, 12 May 2026 16:49:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH RFC v2] x86/time: set AP's TSC scale estimate earlier
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1778597378-7397E8B7-C2DD9C81/0/0
X-purgate-type: clean
X-purgate-size: 2010

NOW() (in particular) can be used ahead of init_percpu_time(). As the
initial scale value set is merely the BSP's, we can as well set it very
early when the AP is coming up.

Setting the scale alone, however, doesn't work, so the entire struct
cpu_time is copied.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
RFC: Copying the entire struct won't work very well when tsc_adjust[] is
     in use (and values there differ between sockets).

This in particular mostly eliminates an anomaly with log messages issued
early while APs are coming up, when "boot" console timestamps are in use.
---
v2: Call the function from very early in start_secondary()

--- a/xen/arch/x86/include/asm/time.h
+++ b/xen/arch/x86/include/asm/time.h
@@ -21,6 +21,7 @@ mktime (unsigned int year, unsigned int
 int time_suspend(void);
 int time_resume(void);
 
+void preinit_percpu_time(unsigned int cpu);
 void init_percpu_time(void);
 void time_latch_stamps(void);
 
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -356,6 +356,8 @@ void asmlinkage start_secondary(void)
     /* Safe to enable feature such as CR4.MCE with the IDT set up now. */
     write_cr4(mmu_cr4_features);
 
+    preinit_percpu_time(cpu);
+
     percpu_traps_init();
 
     cpu_init();
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -2346,6 +2346,12 @@ void time_latch_stamps(void)
     ap_bringup_ref.local_stime = get_s_time_fixed(ap_bringup_ref.local_tsc);
 }
 
+void preinit_percpu_time(unsigned int cpu)
+{
+    /* Initial estimate for TSC rate etc. */
+    per_cpu(cpu_time, cpu) = per_cpu(cpu_time, 0);
+}
+
 void init_percpu_time(void)
 {
     struct cpu_time *t = &this_cpu(cpu_time);
@@ -2353,9 +2359,6 @@ void init_percpu_time(void)
     u64 tsc;
     s_time_t now;
 
-    /* Initial estimate for TSC rate. */
-    t->tsc_scale = per_cpu(cpu_time, 0).tsc_scale;
-
     if ( tsc_adjust )
     {
         unsigned int socket = cpu_to_socket(smp_processor_id());


From xen-devel-bounces@lists.xenproject.org Tue May 12 14:57:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 14:57:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306878.1578603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoXz-0007do-HC; Tue, 12 May 2026 14:57:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306878.1578603; Tue, 12 May 2026 14:57:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoXz-0007dh-DS; Tue, 12 May 2026 14:57:23 +0000
Received: by outflank-mailman (input) for mailman id 1306878;
 Tue, 12 May 2026 14:57:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMoXx-0007da-Mv
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 14:57:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMoXv-008lpm-EY
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 16:57:21 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a033fc7-e002-0a2a0a5209dd-0a2a45018c90-12
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 16:57:20 +0200
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a033fd0-c1f2-0a2a45010019-d155dd29ed54-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 16:57:20 +0200
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-44b330c5cc6so4097357f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 07:57:20 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491304505sm33349503f8f.22.2026.05.12.07.57.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 07:57:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778597840; x=1779202640; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=yEFQ1R78NO62nghWNzHqK8JNPvDTRtf7it9+UXQQMTo=;
        b=bubVGWJCW8KwYNRim8rCnY762ut2N4NhV7F/l75ajJ+QFabWnq9EK51ckpZ5/JkCUz
         66XHShR8EgnzjkUbywrf0uNqhUz+c9J6rKLd01mL9/87WJas4eFhgyfCniRSzGMgnbn2
         NyCUMFq2Qx7Zua3o+sI8uOuOK+6kMSh1BWPe8uMvjJh7qd5eHOTnQ4vQRRdV0IVPiOJV
         26PF1QpuMaRLKNQLuxroMqdgbckJBrnaIT0s0sL5uw39BuKuVTK+d5QNVorHiygdJe2a
         rK8ufwboHofK2edINGE94UsiOmQe6Cp9LU5ltDfZKrQqd9QQH3pfi8B6iWgHDsMsbPTD
         496w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778597840; x=1779202640;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=yEFQ1R78NO62nghWNzHqK8JNPvDTRtf7it9+UXQQMTo=;
        b=QPEjZtt9Gmv92JZR148W7fCKrCF4/UWj07VFqvGSmJnhFx6k/54XfmNkr7LG4QKxrJ
         gyz/b+Rg8SHPNAWpeVOu0TxPxY5UHRE6uLIEWZM7CnXdHiXFnT3GVbn21XtBJm/zvdAH
         bDAWwObKYuTV/ebXgt4DCBfthg58ZfMIntntygak5QR0GNi3c6lh5t6MndIu9JYCeqj+
         A/HzdfEJYbfGoj/ecDN0JtUdXg9C5qtTHMlGZeVU7mRuIS6ye/2M7QDs0rcRAnOwtouR
         n5vXP1OYuC5hQQ4+XCAUC242FXfZWgwhESzlyHsBPAZAErsWf3LhP9/WyQITgce7vh0p
         ULlA==
X-Gm-Message-State: AOJu0YyKPEIvQbTQ6JxV00BoR3uZ84LNqZ4vsq3sFiGhTgAoWcdeu8t5
	zPVg+CeQQ2IIVOPu9StxKQumB+iE4lsDziUP2fGPTPH6Y5aSPelPsUxcLUk465YFWgK9sXjlvgD
	g/z0=
X-Gm-Gg: Acq92OHKOKO8AdjK2IKCOzTB4/zkiMICcMMDEtNYI+O98iXTK7kz2308y8xBgqNsXwq
	90iV7JWXXQ2JJYRABuJjcQJkBvkn+iscrmoZwpCSVF7mKL22LucWv9flTaSJRqTEmXk5bMr8q30
	AM93NylHZnyBPjF6mcKBZIMRLCSQn0z+Cmqu4VdnrDCtWvxMwCWhZQMIwIOEi3a+Bf9uuHvwzCJ
	exnWSPQNP8qTE0jRm5Bjn17ofd412m1v6VsKh0BX2ryHYInEenF33I1K3G4Qb+Qd+rGjzB3ICj4
	ZuRyMZ0aH09VQD/GgDChEgPMC0sWBcEOnXr3nJuZMRvfXw1RmLJG/XQqyzaJzJYL9TJpHAZRley
	rv5sN+mRX/8O6KfbXbNfilmSAf5nyYN8f910OnO45ncX0OcV+Y4X5BLN/cDCXMIQlsUWsWt0aWt
	TgK86UsJVjdv1wANF8eGIbNRt0sTTIKLh1yBBWuRUBVQXtlbTDeV6i8IPS8tG9PBGJI6uri1Cq7
	gHgffk5/WUL/e4=
X-Received: by 2002:a5d:5d08:0:b0:43f:ea25:c965 with SMTP id ffacd0b85a97d-4515d3dc1femr42835656f8f.32.1778597840367;
        Tue, 12 May 2026 07:57:20 -0700 (PDT)
Message-ID: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
Date: Tue, 12 May 2026 16:57:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/5] x86/time: CMOS RTC century byte
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1778597840-B534AFF4-ADE2EF33/0/0
X-purgate-type: clean
X-purgate-size: 499

I'm surprised that we didn't consume this thus far, and that we got away with
also not emulating it for HVM guests.

The 1st and 3rd patches are imo candidates for 4.22, whereas the others (more
or less associated cleanup) likely aren't.

1: x86/time: use RTC century byte when available
2: x86/time: move BCD_TO_BIN() uses
3: x86/vRTC: support century field
4: x86/vRTC: use available macros for BCD <-> BIN conversion
5: tools/xen-hvmctx: shorten various format strings a little

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 12 14:58:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 14:58:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306883.1578611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoZK-0008Gs-Pn; Tue, 12 May 2026 14:58:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306883.1578611; Tue, 12 May 2026 14:58:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoZK-0008Gl-Mu; Tue, 12 May 2026 14:58:46 +0000
Received: by outflank-mailman (input) for mailman id 1306883;
 Tue, 12 May 2026 14:58:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMoZJ-0008Gd-FN
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 14:58:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMoZI-001UUo-SJ
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 16:58:44 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034015-2eae-0a2a0a5409dd-0a2a4505cdba-38
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 16:58:44 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034024-aaa8-0a2a45050019-d155dd2bd5dc-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 16:58:44 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-43d7645adbdso3076242f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 07:58:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4549120ec0asm32552049f8f.17.2026.05.12.07.58.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 07:58:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778597924; x=1779202724; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vb/ECc+CQkgyVidhmMkxB17AGrIKgu+mPY3rejswq4s=;
        b=AdKyJosijduxu28veENhrg152LJlxB9mD4NRq/mmLOeNAEqLnebMaICtVpHUNf2QwB
         IDIrvdCqqSi607iPeHq0Yn5kdn3Cx2j4ohRrRJRq+ur1QZMQhP1X2CucvECyQOFYIphP
         9HJc+kZVEwX6EtgOAgVOXYPwHr7u6VoUSlpT5AQfdkSTr5SJVtRnKfvrhMU49ZHJzt2r
         n5AjNEvt7uFQkZPWcseQYskiScXbQRPBPGqkRhQZoEBX2qUEHUAriJWMRcoBMd3gj1QG
         rhKj22yohOb9VEuVVsIlDX6tUcpwXgSx0W05K1bi3dghh60BJZtjk3tlp26sg10E8vc/
         2Dsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778597924; x=1779202724;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vb/ECc+CQkgyVidhmMkxB17AGrIKgu+mPY3rejswq4s=;
        b=hmHuCCdnGflSS8oWQmsdfWgjlGJwvgNp75FTeweE/Zkw+HDANepS6gCQg5XqbhLj7O
         n3+zyr8Wnnt2sL/dT/1IFGi6nrEYoPruSxLzA7T2qixJcPgDNAjBYnhiVbNOAAWI0NMJ
         /LHsR2c2famS400VcPxoPkEG2M26bQ94wLBDcD3lcXO5mKHhkpgh1sdp7pj+b2lwgF3t
         9+mG3M3WXwhgIpQ6Jg83Ql7eIuyMxBpziMKIXKGAzvoaeCsVSeAUR+1NDOuLz+bgNYLN
         5IZzBpByzL1c5YSJFty8QOCfNGGPhk6f3W5hDhyxDNDhY3QFIBcjk/ScmfG5oDW8ZbNK
         PyZQ==
X-Gm-Message-State: AOJu0YzoNRJ6pMzH1ImJ3OPyGPpD1bovGQ4kbE5zF2gDlbRaP3v1tBQJ
	30yTy++FcFiHL1MXTgnZFSKmNPb5J4YdKunDQHi0S9fk+w6ZY1+9PFnGNG7Fm+3azVjGSB8Rjws
	H7cQ=
X-Gm-Gg: Acq92OEFJ9zeRBV0TdzLE/7r1HOPOicqYiWqFWGteIrzkPwZV0b8s4iX9CjBIl/82v7
	bVH2HahbcHsufEwPlOQ2mQjLhsP1hd/55ERCzo4w2gkaQHDkFyPWhgmNkHjUduOpk9tMnvs6E0Y
	+/WYIXqO5h4T66hm7AIDGwMYTA8B9gWiE2KTzC9rjTrwMPjR4aBdRx52fYZRc4+mTECrH9Np05A
	3kM0qzgX9WizZ1JkXefRILYvbJ1AO8LNcY8jKhwi1AQufcmi3dm5utXQ/uCzUFfRjLgN9H7bGR3
	fZX00qQv1KhbWXZ3/KGQSCLzsyN1lQeA5N97uvKFeDf0P+mxanYTViY56T7yeqojbYcX0NzXJon
	MYxSZCGdXqAH2Ufr2fewdRRHwlBDcdRZRahKifuvr2L5p/lFYl9N9G+E+sh6cJxOV53oZCoNol6
	Vla/sbGRxZDf5E2tyOlUkypNpglttLrDxi4nqwxLY5n7FhjTgD3JUSO5vAA/RbdtVOj242yoh48
	fCpWVXgVlw/bXHrniYQT6dKGA==
X-Received: by 2002:a05:6000:310a:b0:44a:52d5:e4f1 with SMTP id ffacd0b85a97d-45b115c7b81mr5059543f8f.5.1778597924266;
        Tue, 12 May 2026 07:58:44 -0700 (PDT)
Message-ID: <2723456f-5d8c-4a2a-9876-e65d35579936@suse.com>
Date: Tue, 12 May 2026 16:58:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH for-4.22 1/5] x86/time: use RTC century byte when available
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1778597924-D8145443-669DBB71/0/0
X-purgate-type: clean
X-purgate-size: 1198

Without this the present logic will misbehave from 2070 onwards.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -1257,6 +1257,7 @@ struct rtc_time {
 static bool __get_cmos_time(struct rtc_time *rtc)
 {
     s_time_t start, t1, t2;
+    unsigned int century = 0;
     unsigned long flags;
 
     spin_lock_irqsave(&rtc_lock, flags);
@@ -1280,6 +1281,8 @@ static bool __get_cmos_time(struct rtc_t
     rtc->day  = CMOS_READ(RTC_DAY_OF_MONTH);
     rtc->mon  = CMOS_READ(RTC_MONTH);
     rtc->year = CMOS_READ(RTC_YEAR);
+    if ( acpi_gbl_FADT.century && acpi_gbl_FADT.century < 0x80 )
+        century = CMOS_READ(acpi_gbl_FADT.century);
     
     if ( RTC_ALWAYS_BCD || !(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) )
     {
@@ -1293,7 +1296,12 @@ static bool __get_cmos_time(struct rtc_t
 
     spin_unlock_irqrestore(&rtc_lock, flags);
 
-    if ( (rtc->year += 1900) < 1970 )
+    if ( century )
+    {
+        BCD_TO_BIN(century);
+        rtc->year += century * 100;
+    }
+    else if ( (rtc->year += 1900) < 1970 )
         rtc->year += 100;
 
     return t1 <= SECONDS(1) && t2 < MILLISECS(3);



From xen-devel-bounces@lists.xenproject.org Tue May 12 14:59:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 14:59:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306887.1578621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoZe-0000Eo-50; Tue, 12 May 2026 14:59:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306887.1578621; Tue, 12 May 2026 14:59:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoZe-0000Eh-1s; Tue, 12 May 2026 14:59:06 +0000
Received: by outflank-mailman (input) for mailman id 1306887;
 Tue, 12 May 2026 14:59:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMoZd-0000EM-7h
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 14:59:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMoZc-00B5ja-Kr
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 16:59:04 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034037-5cb7-0a2a0a5109dd-0a2a4506e0c2-4
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 16:59:04 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034038-7371-0a2a45060019-d1558029f084-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 16:59:04 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-488d2079582so59943355e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 07:59:04 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e8e566cf7sm36384185e9.0.2026.05.12.07.59.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 07:59:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778597944; x=1779202744; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RtTs+7fsFA7jyJwnZMuGqHUYX2G2jVMYQ4upOGKNn6I=;
        b=OPH+LzGLdGsl5lvR3urPIkpn6vtSX76DyKQmdc0SChH/5gl1JfZ5EAHMS6CQOJhmst
         PerqNdZrEChEiB0D/kytk2JLuFrsv0olaSkeSafZ8+0Tmwfgz1cuv6UQed1LrhSLkV3U
         PAS/x0PhbwBEb0asnGAPPU8evwM9cyPjodpVCoXWu8swg/ejjjevTMbRF/afPpEVwsxk
         vI2cIl5dGLRo1tdzp1tYXE3A8G0Yv9qSUriibPkGjCSyiHsAIla+xTdylhH553hJ31wZ
         tBII7otLmxClOijtGIhSYNdFieCVL+Gs4oqI+8cDJc47L/QUv6Tex5KlsD6UI6ZiaAKk
         dSig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778597944; x=1779202744;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RtTs+7fsFA7jyJwnZMuGqHUYX2G2jVMYQ4upOGKNn6I=;
        b=JRca08NTpslnZco/6ZOR2wjuToxze3qd6kOzdIlC7luEdDU42oHvzt9VNJvrKxhWip
         IsRmDD10EZbPn/PKTtRJtWqvkAZwRsUWsnfwOIsSo5KUE03gIazugYrIWA9qkUNd9QeF
         iKJsV0QvRYUJSGPMyeth7jUCAe1PxwCz7GvYWYyU+vpTj+C6fE6KdTg+YVOGErLGNK25
         d1oXN4Vg5ol3yKHv3myu+AI3w3XXsCZb7dSfL16+1ckGRHyI5VGpf71pU4K8gIqtluj7
         5VVpXKpnDsdaYEkIgkyahGeYUV3x5bvak8+uLAoJ9yhPWMSXRX0P71yRTSGk50u1JyGl
         k6gQ==
X-Gm-Message-State: AOJu0YxtGh7IOuYE+lEkAjMuARBqTjyfJW0OT0DkmMS3Vn8mNpLo72Dj
	7XNR08YJoF4TMm+YXslNsq5iedl0Bpe+QzHK7Zz1TFtwK5vpNfMtGTYHTCT9YhPDbtzVMSclV4L
	ngBc=
X-Gm-Gg: Acq92OFf7TOHCOIdq1C22MhW52Z3ITN+/dvF30YcnHyhhGIXyGAPtHjCXCthvOmnnId
	H1lsYX86d5kDKuz41LiarRTAPeQh12OxmXlkaP7fecEQ9luW/WZKDXHsElkuApSN1vjcB7dKU1B
	blygT+3NETvPJPA1s9j3tDd4CE8mAgljSFjE1CxIdH/z8Ak0hPGovfgdYfPDiyfbIZ/pYxtmCDB
	C9nocekemGM27Z+tJ9kNVfV4jovuBGluW9G94397qWdi+zXC7XoKqItOZhvJwVCWbPRQadqBIT2
	X/nLV3PrxDXursiVv9f9gH1oI0T1XWaMmoQX+XxHlcnqLapJAbP6njbk5eSJ5xe/me1g5zuWtRf
	cyrNLmOJ38xx532/KYYyDHPDOZ0aAHlMUKsKv9wCpuC+X5fxX9f2zWo/o2FuUMgsXfWbqRh6nLR
	rSKwX+qT+8/MEvxMhbhbh8Yi1yDRXi0wpio5hyApqr0aM0GNf7QChzePIwJbBynDIHS4ffpdRag
	eDy7VkI5/hYfMg=
X-Received: by 2002:a05:600c:1d18:b0:488:78f2:6b0 with SMTP id 5b1f17b1804b1-48e51f41b9cmr453681025e9.29.1778597944085;
        Tue, 12 May 2026 07:59:04 -0700 (PDT)
Message-ID: <2c5af8f9-05f6-43c4-afb4-a50cbacd2d49@suse.com>
Date: Tue, 12 May 2026 16:59:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/5] x86/time: move BCD_TO_BIN() uses
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1778597944-8797CD75-EA009AFA/0/0
X-purgate-type: clean
X-purgate-size: 1496

... outside of __get_cmos_time()'s locked region. There's no need to hold
the lock for these computations.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
How come RTC_ALWAYS_BCD is compile-time constant 1? And then even with an
inverted comment? Looks like we've inherited this from Linux, and even in
Linus'es current tree it's still this same way. Yet all half-way recent
chipsets I'm aware of properly implement the DM bit in reg B. Might this
be another 32-bit leftover?

--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -1257,6 +1257,7 @@ struct rtc_time {
 static bool __get_cmos_time(struct rtc_time *rtc)
 {
     s_time_t start, t1, t2;
+    bool bcd;
     unsigned int century = 0;
     unsigned long flags;
 
@@ -1283,8 +1284,12 @@ static bool __get_cmos_time(struct rtc_t
     rtc->year = CMOS_READ(RTC_YEAR);
     if ( acpi_gbl_FADT.century && acpi_gbl_FADT.century < 0x80 )
         century = CMOS_READ(acpi_gbl_FADT.century);
-    
-    if ( RTC_ALWAYS_BCD || !(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) )
+
+    bcd = RTC_ALWAYS_BCD || !(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY);
+
+    spin_unlock_irqrestore(&rtc_lock, flags);
+
+    if ( bcd )
     {
         BCD_TO_BIN(rtc->sec);
         BCD_TO_BIN(rtc->min);
@@ -1294,8 +1299,6 @@ static bool __get_cmos_time(struct rtc_t
         BCD_TO_BIN(rtc->year);
     }
 
-    spin_unlock_irqrestore(&rtc_lock, flags);
-
     if ( century )
     {
         BCD_TO_BIN(century);



From xen-devel-bounces@lists.xenproject.org Tue May 12 14:59:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 14:59:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306897.1578629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoaB-0000pI-Bi; Tue, 12 May 2026 14:59:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306897.1578629; Tue, 12 May 2026 14:59:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoaB-0000pB-97; Tue, 12 May 2026 14:59:39 +0000
Received: by outflank-mailman (input) for mailman id 1306897;
 Tue, 12 May 2026 14:59:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMoaA-0000nk-7x
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 14:59:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMoa9-00B61l-Kx
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 16:59:37 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a03403e-e002-0a2a0a5209dd-0a2a4503a98e-30
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 16:59:37 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034059-672d-0a2a45030019-d1558029b5cf-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 16:59:37 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-488b150559bso44170885e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 07:59:37 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e8f3cf0cdsm36745795e9.2.2026.05.12.07.59.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 07:59:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778597977; x=1779202777; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=B8notKPIJCgXsLW2/zUhwvqNucwwalfHeP2cxpiywdE=;
        b=G/U/WGIEI/0J686iM8KHKBxa7VKJgmGQvQ/UiMwamOTX1jjgRcClRsh9nm85WgXmra
         xJsgNfhlQHHSu5mzKvbuDegGDzfjRBAOKmaq+ZHfLGnmVHUBHSXS3/jkR71AoJV3Crmd
         /7YLnrcK7jLZTzzg3XmgOaCmjYS2odtn68o87J/NpELoyOveRJmd1U25ONJgydhrbxA1
         CnFajvNRok6SkXlHUdgPGf+ei1PpUOP1Jjp24DdrDn/3QZ/4Z8OyMxkJwO7ZmQgqYPac
         9ahfdqy6H9riPe4qVR2EwWGQUrKDHNOTpRaH+Ml//gHQDnWsxK5ds1Ll6wFQlnhtyeNZ
         3Kag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778597977; x=1779202777;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=B8notKPIJCgXsLW2/zUhwvqNucwwalfHeP2cxpiywdE=;
        b=Taq/ZaCHb0iiJvyVduyXkBa00AnXMvcBLiYo/lzFYdapjqnqvXeJ/krEs1tZMYPz5E
         rLDrVzPoSnBWuDfhF3wcfkAk2i0ak+hg7HLkg1DxWXZ+ch9pgMWzKvh6wNX5h//Wih4y
         Ayd2FiTcyNfYZKXTP7rMi/swfvrssPVkmhAhj5CZkE53FgwI7JOPSbC+0VlzZe4FThaH
         UTBiH8FYkNrCksJ9sbBogLKiYO1XCK6hAPTyKHHT/Ocjbb+QAeh47fH4vY+P+mB/3RyP
         PBFSgPWE+U/NEB84AmWGpJ8UHvjkyzg+yjc4a2Cxpv2GSMdX6JAymfUL0E1Nm+2lpNJM
         c92Q==
X-Gm-Message-State: AOJu0YzF2WZ/DzjTQorTGd6mlgx3Kw1nq7k/GQBGGeQsRgRPh0P//ZiG
	Ve5mRdkuamZmaQ27iV9mHYaO5LKUcu4TI1jXtGFX0GpLG5NCEBJ1tR5zFCID1uhd+oUWiL7gbMC
	XEGo=
X-Gm-Gg: Acq92OGz0RoUfChJ3sjld8naEIg6oDbcslhKxqMixTTHw5rMzD3J3zs08uonvCa9AY/
	cOpgSu8NPhpQCQqjkIzfBcVs2LeItjP9xmZMCjKDIiOSw5dYKzzHWWEElOETDGX0PWsUu/Y857F
	1XFDKYB7BasoBg+aB7EAMFLuC7ZPi9kcYGEUi2bIY01lNoBGzS4qnwnGu4hdF73lq+tXOFwT6vB
	pJUta1qgyvAI7pbkieQ47YCMeIDibsGVL0An+HMWYf/TBmwqYpnur6icSMKNe+tP0NbGdWaLzFo
	DiRfg+TwkEgQnPHATJZJWSpWKzfTsFGgxSqZ8Y0YOe8wiUv0BRDgFHq1IYztLN0d8IDEwTKqWC6
	FKVS/87aOrFSffgFD7rfUb5QgMvrsJV2kM7dXL1mg4bvNZk7kq3mxs7Os6EmAajNmKmsXkcGIEg
	s9i1yCewhMWMBT8IfEIiirBuJ3/SnkayH4U1fiM7A46p8HYW0p61F6oqcF/aBF7xYbDKpzpFzzL
	Bqfo2LIZWUcP0s=
X-Received: by 2002:a05:600c:8b83:b0:485:40db:d40c with SMTP id 5b1f17b1804b1-48e706acfb7mr221411515e9.3.1778597976920;
        Tue, 12 May 2026 07:59:36 -0700 (PDT)
Message-ID: <383355d1-7032-4445-8a06-cb4411ea797e@suse.com>
Date: Tue, 12 May 2026 16:59:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH for-4.22 3/5] x86/vRTC: support century field
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1778597977-4086B938-1FA6D66E/0/0
X-purgate-type: clean
X-purgate-size: 8908

Both ROMBIOS and SeaBIOS (with CONFIG_QEMU=y, as we build it) blindly
assume availability of this field (at its conventional index 0x32); OVMF
at least has code to inspect FADT. Hence we ought to have supported it
virtually forever.

As the index is beyond RTC_CMOS_SIZE, leverage the padding field in
struct hvm_hw_rtc to hold its value. Update the field only when involved
values are valid BCD century specifiers. Otherwise (for VMs migrated in
from an older hypervisor) leave handling to the DM.

This makes the Linux rtc-cmos driver report y3k compatibility.

While extending xen-hvmctx.c:dump_rtc() also add RTC offset there.

Fixes: 4ca161214355 ("[HVM] Move RTC emulation into the hypervisor")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Am I overly paranoid with the checking of the field, considering that
Xen 3.x post-dates year 2000 and hence all firmware nowadays usable guests
have ever run with should have been aware of the field? Or am I, quite the
opposite, still not strict enough?

I can't help the impression that this introduces a latency issue for
the 2nd of gmtime()'s while() loops: We now allow years up into the 99th
century, i.e. over 8000 years away from 1970. 8000 years are very roughly
2^^38 seconds, making for (again very roughly) 5 million iterations there.
Did I get my math wrong, or do we need a prereq change to (vastly) reduce
the number of iterations of that loop (e.g. along the lines of the other
one, first going in 400 year steps)?

Isn't day-of-week handling flawed? If the field is brought out of sync
with the other values, shouldn't it stay respectively out-of-sync? And
isn't it excessive overhead to go through rtc_set_time() when the field
is updated while SET is clear?

Perhaps we ought to also support alarm day/month features?

--- a/tools/libacpi/static_tables.c
+++ b/tools/libacpi/static_tables.c
@@ -33,6 +33,8 @@ struct acpi_20_facs Facs = {
 #define ACPI_PM_TMR_BLK_BIT_WIDTH           0x20
 #define ACPI_PM_TMR_BLK_BIT_OFFSET          0x00
 
+#define CMOS_CENTURY 0x32 /* Conventional index used also without ACPI */
+
 struct acpi_fadt Fadt = {
     .header = {
         .signature    = ACPI_FADT_SIGNATURE,
@@ -88,7 +90,9 @@ struct acpi_fadt Fadt = {
         .register_bit_width  = ACPI_PM_TMR_BLK_BIT_WIDTH,
         .register_bit_offset = ACPI_PM_TMR_BLK_BIT_OFFSET,
         .address             = ACPI_PM_TMR_BLK_ADDRESS_V1,
-    }
+    },
+
+    .century = CMOS_CENTURY,
 };
 
 struct acpi_20_rsdt Rsdt = {
--- a/tools/misc/xen-hvmctx.c
+++ b/tools/misc/xen-hvmctx.c
@@ -311,7 +311,7 @@ static void dump_rtc(void)
     printf("              0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x, index 0x%2.2x\n",
            r.cmos_data[8], r.cmos_data[9], r.cmos_data[10], r.cmos_data[11], 
            r.cmos_data[12], r.cmos_data[13], r.cmos_index);
-
+    printf("         century 0x%02x  offset %"PRId64"\n", r.century, r.rtc_offset);
 }
 
 static void dump_hpet(void)
--- a/xen/arch/x86/hvm/rtc.c
+++ b/xen/arch/x86/hvm/rtc.c
@@ -47,6 +47,12 @@
 #define epoch_year     1900
 #define get_year(x)    ((x) + epoch_year)
 
+static inline bool is_century(unsigned int x)
+{
+    /* Constant below should match epoch_year above, just as BCD value. */
+    return x >= 0x19 && (x & 0xf) < 10 && (x >> 4) < 10;
+}
+
 enum rtc_mode {
    rtc_mode_no_ack,
    rtc_mode_strict
@@ -482,16 +488,32 @@ static int rtc_ioport_write(void *opaque
         data &= 0x7f;
         s->hw.cmos_index = data;
         spin_unlock(&s->lock);
+        /* RTC_CENTURY always forwarded to DM. */
         return (data < RTC_CMOS_SIZE);
     }
 
-    if ( s->hw.cmos_index >= RTC_CMOS_SIZE )
+    switch ( s->hw.cmos_index )
     {
+    case 0 ... RTC_CMOS_SIZE - 1:
+        orig = s->hw.cmos_data[s->hw.cmos_index];
+        break;
+
+    case RTC_CENTURY:
+        orig = s->hw.century;
+        if ( !is_century(orig) || !is_century(data) )
+        {
+            /* Prevent further use of the field. */
+            s->hw.century = 0;
+            spin_unlock(&s->lock);
+            return 0;
+        }
+        break;
+
+    default:
         spin_unlock(&s->lock);
         return 0;
     }
 
-    orig = s->hw.cmos_data[s->hw.cmos_index];
     switch ( s->hw.cmos_index )
     {
     case RTC_SECONDS_ALARM:
@@ -507,6 +529,7 @@ static int rtc_ioport_write(void *opaque
     case RTC_DAY_OF_MONTH:
     case RTC_MONTH:
     case RTC_YEAR:
+    case RTC_CENTURY:
         /* if in set mode, just write the register */
         if ( (s->hw.cmos_data[RTC_REG_B] & RTC_SET) )
             s->hw.cmos_data[s->hw.cmos_index] = data;
@@ -515,7 +538,10 @@ static int rtc_ioport_write(void *opaque
             /* Fetch the current time and update just this field. */
             s->current_tm = gmtime(get_localtime(d));
             rtc_copy_date(s);
-            s->hw.cmos_data[s->hw.cmos_index] = data;
+            if ( s->hw.cmos_index != RTC_CENTURY )
+                s->hw.cmos_data[s->hw.cmos_index] = data;
+            else
+                s->hw.century = data;
             rtc_set_time(s);
         }
         alarm_timer_update(s);
@@ -591,7 +617,16 @@ static void rtc_set_time(RTCState *s)
     tm->tm_wday = from_bcd(s, s->hw.cmos_data[RTC_DAY_OF_WEEK]);
     tm->tm_mday = from_bcd(s, s->hw.cmos_data[RTC_DAY_OF_MONTH]);
     tm->tm_mon = from_bcd(s, s->hw.cmos_data[RTC_MONTH]) - 1;
-    tm->tm_year = from_bcd(s, s->hw.cmos_data[RTC_YEAR]) + 100;
+    tm->tm_year = from_bcd(s, s->hw.cmos_data[RTC_YEAR]);
+    if ( is_century(s->hw.century) )
+    {
+        unsigned int century = s->hw.century;
+
+        BCD_TO_BIN(century);
+        tm->tm_year += century * 100 - epoch_year;
+    }
+    else
+        tm->tm_year += 100;
 
     after = mktime(get_year(tm->tm_year), tm->tm_mon + 1, tm->tm_mday,
                    tm->tm_hour, tm->tm_min, tm->tm_sec);
@@ -629,6 +664,12 @@ static void rtc_copy_date(RTCState *s)
     s->hw.cmos_data[RTC_DAY_OF_MONTH] = to_bcd(s, tm->tm_mday);
     s->hw.cmos_data[RTC_MONTH] = to_bcd(s, tm->tm_mon + 1);
     s->hw.cmos_data[RTC_YEAR] = to_bcd(s, tm->tm_year % 100);
+
+    if ( is_century(s->hw.century) )
+    {
+        s->hw.century = get_year(tm->tm_year) / 100;
+        BIN_TO_BCD(s->hw.century);
+    }
 }
 
 static int update_in_progress(RTCState *s)
@@ -656,6 +697,13 @@ static uint32_t rtc_ioport_read(RTCState
 
     switch ( s->hw.cmos_index )
     {
+    case RTC_CENTURY:
+        if ( !is_century(s->hw.century) )
+        {
+            ret = UINT32_MAX;
+            break;
+        }
+        fallthrough;
     case RTC_SECONDS:
     case RTC_MINUTES:
     case RTC_HOURS:
@@ -669,7 +717,10 @@ static uint32_t rtc_ioport_read(RTCState
             s->current_tm = gmtime(get_localtime(d));
             rtc_copy_date(s);
         }
-        ret = s->hw.cmos_data[s->hw.cmos_index];
+        if ( s->hw.cmos_index != RTC_CENTURY )
+            ret = s->hw.cmos_data[s->hw.cmos_index];
+        else
+            ret = s->hw.century;
         break;
     case RTC_REG_A:
         ret = s->hw.cmos_data[s->hw.cmos_index];
@@ -718,10 +769,12 @@ static int cf_check handle_rtc_io(
         *val = 0xff;
         return X86EMUL_OKAY;
     }
-    else if ( vrtc->hw.cmos_index < RTC_CMOS_SIZE )
+    else if ( vrtc->hw.cmos_index < RTC_CMOS_SIZE ||
+              vrtc->hw.cmos_index == RTC_CENTURY )
     {
         *val = rtc_ioport_read(vrtc);
-        return X86EMUL_OKAY;
+        if ( *val != UINT32_MAX )
+            return X86EMUL_OKAY;
     }
 
     return X86EMUL_UNHANDLEABLE;
@@ -873,6 +926,8 @@ void rtc_init(struct domain *d)
     s->hw.cmos_data[RTC_REG_C] = 0;
     s->hw.cmos_data[RTC_REG_D] = RTC_VRT;
 
+    s->hw.century = 0x20; /* Arbitrary initial value satisfying is_century() */
+
     s->current_tm = gmtime(get_localtime(d));
     s->start_time = NOW();
 
--- a/xen/arch/x86/include/asm/mc146818rtc.h
+++ b/xen/arch/x86/include/asm/mc146818rtc.h
@@ -37,6 +37,9 @@ bool is_cmos_port(unsigned int port, uns
 #define RTC_REG_C               12
 #define RTC_REG_D               13
 
+/* Conventional index used without (and typically also with) ACPI. */
+#define RTC_CENTURY             0x32
+
 /**********************************************************************
  * register details
  **********************************************************************/
--- a/xen/include/public/arch-x86/hvm/save.h
+++ b/xen/include/public/arch-x86/hvm/save.h
@@ -485,7 +485,7 @@ struct hvm_hw_rtc {
     uint8_t cmos_data[RTC_CMOS_SIZE];
     /* Index register for 2-part operations */
     uint8_t cmos_index;
-    uint8_t pad0;
+    uint8_t century;
     /* RTC offset from host time */
     int64_t rtc_offset;
 };



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:00:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:00:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306906.1578638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoae-0002Is-KJ; Tue, 12 May 2026 15:00:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306906.1578638; Tue, 12 May 2026 15:00:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoae-0002Il-H1; Tue, 12 May 2026 15:00:08 +0000
Received: by outflank-mailman (input) for mailman id 1306906;
 Tue, 12 May 2026 15:00:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMoac-0002Fv-R3
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:00:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMoac-00AJkn-7g
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:00:06 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034076-bab6-0a2a0a5309dd-0a2a4508cdb2-0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:00:06 +0200
Received: from [209.85.221.54] (helo=mail-wr1-f54.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034076-63b5-0a2a45080019-d155dd36ac8c-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:00:06 +0200
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-44e1860558fso3656599f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:00:06 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491304387sm32459259f8f.21.2026.05.12.08.00.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:00:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778598005; x=1779202805; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2L5XWk37Hty4eGHWvaxUEX6h6h0l+D2/1Nxh6sBvqFg=;
        b=D/oRAY/Z1bkF+oIGgGRd4+OFrQSm96a6pXz5gi6UnrF4kIPoPz57Dcsy4kAGyZNcXE
         +2hvOMwtFof7EJ5yYXXeHmuvRau8mnnno641O0P24NUhA4vT7ilYL4jHIwscWHSOyhG3
         2gyOAuk0Cz4109RZOeOn5ABb3ZSmfqW3HxD3Rwsne3jk3WYPZvj6J+j9xqJtgI1JdAu8
         uC41ue9axhLZB1RDpRIcuxhoEZ3x24sSv8PbVP5kdlAWqxJxrMaSESRDyjLZtBZoO4DP
         Lb4uDiq3N7Q60/nm4cw40ZUCYbXiSEg3ZEBT+kfnLuw6uMr0/U/m5Wlux/cVILEeYEt5
         QPdg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778598005; x=1779202805;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2L5XWk37Hty4eGHWvaxUEX6h6h0l+D2/1Nxh6sBvqFg=;
        b=d0AaBMnSKWLqwk8ws34rplh8xyror5+862NSRDmGSN08O+XVNQoSyMk9cQzUKETa+C
         OGoWHU29hlcS9y3q6WJq7U39rSK9XDNDKdllgUxtmop7EsYnr8m3D9KW2aW64pTK33+2
         FNqbjwbvI0bWY4o6jzj9jhKsMvSG+1AMmGIvNGfJ6ZUYdeoejtd63/63JfOq1OFPpbmD
         wYo76UHmlk8JuCJPTHLn+6lNKmwh8xZ2yFB3t/e4xABAFNADQ9ck75RP18RuCc9wApN6
         9B9kPhXRuA9IXF/5pYi+cxa6uofbdM7EBg8Wr4C41ic+LeZOsXOavvywoZy7g3pQLJDn
         bFTw==
X-Gm-Message-State: AOJu0YyJRH76MG4LCklmOjIsOaU9LpYecqUSg+CFbs23HiNOus/eZzR0
	vycGJ3/VWJ6qK4BUfSyaKn2ZNzs4w1yZvg/u94B4RvhFdGS1312o22owjl7FpH9LCQXKK1CNO0m
	uaM4=
X-Gm-Gg: Acq92OEkFAuJTpSKE2Ax2pMdSD6fGnuUVKZXXHdhGgupqgK8gtVjH3eS+CAldgOGG0F
	Cq3eoSof11vR2TWYaZdcUAWr8WZVzDdjRc6Zl9mVlnuDNDEm/JLzy84YbRRijmGnXkZdAJzEK5J
	XYcIpN3C2PAOVJRAaqwZMDmT/tp2qHYxhg3kDh2vl1fmMAGBWswyS6kSlJmkoHhGfGjwHN7NmwV
	xjJpAsOQ6kxbrsBYEtFHGOav3YXZXY2plIpzioEBiQn1io+hZtEnX0lOFT6YnvAiQseqiVgKh40
	yd77lM4L1CKHa3LAiLZ2LZnex3g6hKgXmJdLveDs5PT4KS/+GrO5ie/ZXzZXwyTEjw857XY/1DO
	qZXvM0HaGdZJXS6KsYpExNq/sxoGT3N/9I5y3x09cVormFaN4krRbD85ZoDzXeWcpsyF23jdjXK
	T4DpSFx5Fk+bcgajHwSQKU4PQdmkjRX29+ysn71rMps/+oSmymSG/2Ux1wxcARoRMvF7set+Pf
X-Received: by 2002:a05:6000:1a85:b0:43c:fdd:ea96 with SMTP id ffacd0b85a97d-45462c342e0mr30075541f8f.26.1778598005512;
        Tue, 12 May 2026 08:00:05 -0700 (PDT)
Message-ID: <dac2443b-3ef4-4508-aa49-1e7d68a72d02@suse.com>
Date: Tue, 12 May 2026 17:00:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 4/5] x86/vRTC: use available macros for BCD <-> BIN conversion
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1778598006-C5386DB1-604F2D14/0/0
X-purgate-type: clean
X-purgate-size: 889

There's no need to open-code these. No functional change intended, even if
the | changes to + in to_bcd().

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/hvm/rtc.c
+++ b/xen/arch/x86/hvm/rtc.c
@@ -253,18 +253,18 @@ static void cf_check rtc_update_timer2(v
 
 static unsigned int to_bcd(const RTCState *s, unsigned int a)
 {
-    if ( s->hw.cmos_data[RTC_REG_B] & RTC_DM_BINARY )
-        return a;
+    if ( !(s->hw.cmos_data[RTC_REG_B] & RTC_DM_BINARY) )
+        BIN_TO_BCD(a);
 
-    return ((a / 10) << 4) | (a % 10);
+    return a;
 }
 
 static unsigned int from_bcd(const RTCState *s, unsigned int a)
 {
-    if ( s->hw.cmos_data[RTC_REG_B] & RTC_DM_BINARY )
-        return a;
+    if ( !(s->hw.cmos_data[RTC_REG_B] & RTC_DM_BINARY) )
+        BCD_TO_BIN(a);
 
-    return ((a >> 4) * 10) + (a & 0x0f);
+    return a;
 }
 
 /*



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:00:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:00:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306914.1578648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMobI-0002qx-0w; Tue, 12 May 2026 15:00:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306914.1578648; Tue, 12 May 2026 15:00:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMobH-0002qp-Tp; Tue, 12 May 2026 15:00:47 +0000
Received: by outflank-mailman (input) for mailman id 1306914;
 Tue, 12 May 2026 15:00:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMobF-0002qd-QA
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:00:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMobF-004Fsk-70
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:00:45 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034097-bab6-0a2a0a5309dd-0a2a4504baf4-36
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:00:45 +0200
Received: from [209.85.221.45] (helo=mail-wr1-f45.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a03409d-1dec-0a2a45040019-d155dd2dc5a2-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:00:45 +0200
Received: by mail-wr1-f45.google.com with SMTP id
 ffacd0b85a97d-45562c41ec7so2406316f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:00:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4548ec6be40sm34620921f8f.12.2026.05.12.08.00.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:00:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778598044; x=1779202844; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+4wWtJqQjz6zQQRwVYkyfsmuZHB9+q0gyFAm93ZpUBw=;
        b=M9CWg80+qkur906rO/i8XQBcF/l54mFXNXnXUuB7QBpdgIYfqHRADqXPxj6epez5aT
         tK6khm1NBuUxLDP5zcjVHSBpDUqyt+Sfkg7JRoDyZTdJiPEN5859daJtyqbsMv+7tguD
         75i9XJFSguC6PwJo+nKjclinDFTSk/xcByjzwINIIQxf36l87+dy+2UQNm+zztJIADmd
         b2m7I7QHncAY86LaypPESi3fHmKvaD1MAvCTPrQqM0WKyOMquakIOQbQZzhX5bKNLoQt
         PBGetPePVC0FmGet2dXayFemhIBoVwbXgjy+LgVyANp4OfHKumlbbF75xnPg+PCUle/O
         3k2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778598044; x=1779202844;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+4wWtJqQjz6zQQRwVYkyfsmuZHB9+q0gyFAm93ZpUBw=;
        b=o7ErCHNxQMXZb4wNNiby4JuxJZGZWx0m2mVVq4ToqGBc4Rzjk0yX6vVHeFZPL/KrIb
         ENQ0ugbFljD2CpSBiitMqEXMhtis4tYsENAh+frwK46MMYnx7ITjTM0QHosl2w8Kf4xa
         3zQHlLAm3+ETk9qkeXLn7MQpou+GDpNdlCnYyDD0sEsNyMfQ27dDJ72bARpq1Nf/UurV
         IBmjL1OfoUv6bEYCFXDH68q5wzOkiZqA3dM3pZtPbF8x7BEPE0sg4js+ukig2JMkO+Oz
         xmwWnkpeI6C1/16k2m6w2KUzbKvwOO0jWeYFcaQzqUpLWEjKtcaPVV77VmzntSnOyEnq
         LioA==
X-Gm-Message-State: AOJu0YxRetPNfHKXwqoxTW7arBiJf+Ix14GelMoKhmEW1h0AGqjQGevb
	QdeoHmNS7+Z8cdNzMBPQeR7YpF0hxK+n0tAa+Bq2Mz9Az3i22FDZl3iLvlrqymSo2NEDjgr4v6H
	OqoU=
X-Gm-Gg: Acq92OHKBZjGVwAZ+dU8ccIYAJczruylgYq/aDL3vQC2zO6KXAhcQ3eltfwgFBzruTQ
	5K7aerau3rGMsE/sTduIoDmEgBdbor/nxSsczcQmxo0tSX94kBYxhDQSdwL5OteqmwR2YqyJt9k
	g/yBLUs5xe8MGrOHC0aUoq6hrpKurp8QOOLZqfU26VooKQWXQGij7IHa4i46yilvXLbqFJdBgzw
	v6KWG2wDpQ9bY1UsIL9Eo7e5L/njeLrzbrveuIw9lyCx9nqJsjihleKlGH1WInfFC7FLjXVoutD
	TNqGGLFMh+vLwVFZV8ozPcxrV8NsZYliVKmkel4REsvWnOmCGXVsqfpVaTaB5OAQGHNDWm1zvS7
	LzE+KPPmiT3DEOMgON8MEnKEd5scFMWyFF6YeNe5hW6sKgcJSgbbFHDVEQHrL656dVeknoCcMea
	3vuU7tL3rLyMiOqPu9BOu5W+/8x6Kfk+ir01ZlOXRyCFTOR7XpBUiTq561ConJA3CU644iDR+7O
	WUMtZaJSbS4bvQ=
X-Received: by 2002:a5d:5f86:0:b0:43d:77a8:3baf with SMTP id ffacd0b85a97d-45b15682310mr5149035f8f.32.1778598044522;
        Tue, 12 May 2026 08:00:44 -0700 (PDT)
Message-ID: <4bcd76e9-1bd5-4a2c-8d75-7d29b9dfa31f@suse.com>
Date: Tue, 12 May 2026 17:00:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 5/5] tools/xen-hvmctx: shorten various format strings a little
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1778598045-433673FF-6E94AD80/0/0
X-purgate-type: clean
X-purgate-size: 6655

%4.4x and alike format specifiers can be expressed shorter as %04x or, as
e.g. dump_ioapic() has it, %.4x.

In dump_fpu()'s XMM register dumping, also move away from showing bogus
xmm03 and alike. The proper register name is xmm3 for that particular
example.

Also strip trailing whitespace from lines touched.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/tools/misc/xen-hvmctx.c
+++ b/tools/misc/xen-hvmctx.c
@@ -107,26 +107,26 @@ static void dump_fpu(void *p)
     struct fpu_regs *r = p;
     int i;
 
-    printf("    FPU:    fcw 0x%4.4x fsw 0x%4.4x\n"  
-           "            ftw 0x%2.2x (0x%2.2x) fop 0x%4.4x\n"
-           "          fpuip 0x%16.16"PRIx64" fpudp 0x%16.16"PRIx64"\n"
-           "          mxcsr 0x%8.8lx mask 0x%8.8lx\n",
+    printf("    FPU:    fcw 0x%04x fsw 0x%04x\n"
+           "            ftw 0x%02x (0x%02x) fop 0x%04x\n"
+           "          fpuip 0x%016"PRIx64" fpudp 0x%016"PRIx64"\n"
+           "          mxcsr 0x%08lx mask 0x%08lx\n",
            (unsigned)r->fcw, (unsigned)r->fsw, 
            (unsigned)r->ftw, (unsigned)r->res0, (unsigned)r->fop, 
            r->fpuip, r->fpudp, 
            (unsigned long)r->mxcsr, (unsigned long)r->mxcsr_mask);
 
     for ( i = 0 ; i < 8 ; i++ ) 
-        printf("            mm%i 0x%4.4x%16.16"PRIx64" (0x%4.4x%4.4x%4.4x)\n",
+        printf("            mm%i 0x%04x%016"PRIx64" (0x%04x%04x%04x)\n",
                i, r->mm[i].hi, r->mm[i].lo,
                r->mm[i].pad[2], r->mm[i].pad[1], r->mm[i].pad[0]);
 
     for ( i = 0 ; i < 16 ; i++ ) 
-        printf("          xmm%2.2i 0x%16.16"PRIx64"%16.16"PRIx64"\n",
+        printf("          xmm%-2i 0x%016"PRIx64"%016"PRIx64"\n",
                i, r->xmm[i].hi, r->xmm[i].lo);
     
     for ( i = 0 ; i < 6 ; i++ ) 
-        printf("               (0x%16.16"PRIx64"%16.16"PRIx64")\n",
+        printf("               (0x%016"PRIx64"%016"PRIx64")\n",
                r->res1[2*i+1], r->res1[2*i]);
 }
 
@@ -134,20 +134,20 @@ static void dump_cpu(void)
 {
     HVM_SAVE_TYPE(CPU) c;
     READ(c);
-    printf("    CPU:    rax 0x%16.16llx     rbx 0x%16.16llx\n"
-           "            rcx 0x%16.16llx     rdx 0x%16.16llx\n"
-           "            rbp 0x%16.16llx     rsi 0x%16.16llx\n"
-           "            rdi 0x%16.16llx     rsp 0x%16.16llx\n"
-           "             r8 0x%16.16llx      r9 0x%16.16llx\n"
-           "            r10 0x%16.16llx     r11 0x%16.16llx\n"
-           "            r12 0x%16.16llx     r13 0x%16.16llx\n"
-           "            r14 0x%16.16llx     r15 0x%16.16llx\n"
-           "            rip 0x%16.16llx  rflags 0x%16.16llx\n"
-           "            cr0 0x%16.16llx     cr2 0x%16.16llx\n"
-           "            cr3 0x%16.16llx     cr4 0x%16.16llx\n"
-           "            dr0 0x%16.16llx     dr1 0x%16.16llx\n"
-           "            dr2 0x%16.16llx     dr3 0x%16.16llx\n"
-           "            dr6 0x%16.16llx     dr7 0x%16.16llx\n"
+    printf("    CPU:    rax 0x%016llx     rbx 0x%016llx\n"
+           "            rcx 0x%016llx     rdx 0x%016llx\n"
+           "            rbp 0x%016llx     rsi 0x%016llx\n"
+           "            rdi 0x%016llx     rsp 0x%016llx\n"
+           "             r8 0x%016llx      r9 0x%016llx\n"
+           "            r10 0x%016llx     r11 0x%016llx\n"
+           "            r12 0x%016llx     r13 0x%016llx\n"
+           "            r14 0x%016llx     r15 0x%016llx\n"
+           "            rip 0x%016llx  rflags 0x%016llx\n"
+           "            cr0 0x%016llx     cr2 0x%016llx\n"
+           "            cr3 0x%016llx     cr4 0x%016llx\n"
+           "            dr0 0x%016llx     dr1 0x%016llx\n"
+           "            dr2 0x%016llx     dr3 0x%016llx\n"
+           "            dr6 0x%016llx     dr7 0x%016llx\n"
            "             cs %#6.4" PRIx32 " (%#18.8" PRIx64 " + %#10.8" PRIx32 " / %#7.4" PRIx32 ")\n"
            "             es %#6.4" PRIx32 " (%#18.8" PRIx64 " + %#10.8" PRIx32 " / %#7.4" PRIx32 ")\n"
            "             ds %#6.4" PRIx32 " (%#18.8" PRIx64 " + %#10.8" PRIx32 " / %#7.4" PRIx32 ")\n"
@@ -158,12 +158,12 @@ static void dump_cpu(void)
            "           ldtr %#6.4" PRIx32 " (%#18.8" PRIx64 " + %#10.4" PRIx32 " / %#7.4" PRIx32 ")\n"
            "           idtr        (%#18.8" PRIx64 " + %#10.4" PRIx32 ")\n"
            "           gdtr        (%#18.8" PRIx64 " + %#10.4" PRIx32 ")\n"
-           "    sysenter cs 0x%8.8llx  eip 0x%16.16llx  esp 0x%16.16llx\n"
+           "    sysenter cs 0x%08llx  eip 0x%016llx  esp 0x%016llx\n"
            "      shadow gs %#18.16" PRIx64 "   efer %#18.8" PRIx64 "\n"
            "          lstar %#18.16" PRIx64 "  cstar %#18.16" PRIx64 "\n"
            "           star %#18.16" PRIx64 " sfmask %#18.8" PRIx64 "\n"
-           "            tsc 0x%16.16llx\n"
-           "          event 0x%8.8lx error 0x%8.8lx\n",
+           "            tsc 0x%016llx\n"
+           "          event 0x%08lx error 0x%08lx\n",
            (unsigned long long) c.rax, (unsigned long long) c.rbx,
            (unsigned long long) c.rcx, (unsigned long long) c.rdx,
            (unsigned long long) c.rbp, (unsigned long long) c.rsi,
@@ -260,7 +260,7 @@ static void dump_pci_irq(void)
 {
     HVM_SAVE_TYPE(PCI_IRQ) i;
     READ(i);
-    printf("    PCI IRQs: 0x%16.16llx%16.16llx\n", 
+    printf("    PCI IRQs: 0x%016llx%016llx\n",
            (unsigned long long) i.pad[0], (unsigned long long) i.pad[1]);
 }
 
@@ -268,7 +268,7 @@ static void dump_isa_irq(void)
 {
     HVM_SAVE_TYPE(ISA_IRQ) i;
     READ(i);
-    printf("    ISA IRQs: 0x%4.4llx\n", 
+    printf("    ISA IRQs: 0x%04llx\n",
            (unsigned long long) i.pad[0]);
 }
 
@@ -305,10 +305,10 @@ static void dump_rtc(void)
 {
     HVM_SAVE_TYPE(RTC) r;
     READ(r);
-    printf("    RTC: regs 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x\n",
+    printf("    RTC: regs 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x\n",
            r.cmos_data[0], r.cmos_data[1], r.cmos_data[2], r.cmos_data[3], 
            r.cmos_data[4], r.cmos_data[5], r.cmos_data[6], r.cmos_data[7]);
-    printf("              0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x, index 0x%2.2x\n",
+    printf("              0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x, index 0x%02x\n",
            r.cmos_data[8], r.cmos_data[9], r.cmos_data[10], r.cmos_data[11], 
            r.cmos_data[12], r.cmos_data[13], r.cmos_index);
     printf("         century 0x%02x  offset %"PRId64"\n", r.century, r.rtc_offset);



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:07:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:07:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306929.1578656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMohL-0003VX-Ke; Tue, 12 May 2026 15:07:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306929.1578656; Tue, 12 May 2026 15:07:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMohL-0003VQ-Ho; Tue, 12 May 2026 15:07:03 +0000
Received: by outflank-mailman (input) for mailman id 1306929;
 Tue, 12 May 2026 15:07:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wMohK-0003VK-KI
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:07:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMohJ-00HBBO-TS
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:07:02 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a034204-e002-0a2a0a5209dd-0a2a4501d81e-28
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:07:01 +0200
Received: from [52.101.61.29]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a034213-c1f2-0a2a45010019-34653d1db8e7-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:07:01 +0200
Received: from SJ0PR13CA0111.namprd13.prod.outlook.com (2603:10b6:a03:2c5::26)
 by PH8PR12MB7231.namprd12.prod.outlook.com (2603:10b6:510:225::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 12 May
 2026 15:06:51 +0000
Received: from SJ1PEPF00001CE9.namprd03.prod.outlook.com
 (2603:10b6:a03:2c5:cafe::1e) by SJ0PR13CA0111.outlook.office365.com
 (2603:10b6:a03:2c5::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.17 via Frontend Transport; Tue, 12
 May 2026 15:06:50 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ1PEPF00001CE9.mail.protection.outlook.com (10.167.242.25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Tue, 12 May 2026 15:06:50 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Tue, 12 May
 2026 10:06:50 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 12 May
 2026 10:06:49 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Tue, 12 May 2026 10:06:48 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MEblssxI7t6FxNaMkviTM0rZ7Sl6tlplHP2iO+bVOXXkvBJEgo+b2J0rIH6fY49ti0L9Sy14VqgnalbhdypBy4XXpIUHf17Hd3syRG9lXJd+54uBEsqsZ4lbcLEnBKfMyXF3MCdpsveNpgZ3a19YqD7NABBfq5/EP86tCwiNRA2nKawOwJjwKl2pK+dQyEyyuIgTMYAVI62EoxJDOil90UjX9ZdNcbmUma524xpWJKaTkL0/Sxwm1yvDaZSMfwgskT//RysofqRSd6zXCJbuK0w4WToABpu8gdXWMmbgVDw2RX1YmuNpq3Wm6J7KMhuaZvch5rbEwXuGIDtvEKMF5w==
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=SVpMux7L250Is6nPBwS3JGR0AaQu25tsuA+5psG4O6E=;
 b=c3+cc5vsiJ0Bxq4ZbpBsZLYcQssspWETv19liVrzMtD3fnNk5x+IWwrK/x8jB3XJmOMqUfuSotEY77u6i0XdX7FT+tMK53BEWoclHyNj+pLQr0viv3/z1hv227cWUTNGRY8vKbV2+eCX7vjQZuGByGKfJYEDs7dUvvZu05SZOle1hiBXH+eXL5/oPIKREKINOq0p+8ptYkopat2sOJhfpWQUm9vQbphToQ4stZPwgG/RcAVnzn25e58gn5NQCjX015fNIP+rd1FlSXrj7JEIXDVFJ23fJ9UJy1RjsfW66ohdIZSQyqfBYzBYYvymM2Jmrb/sizTDbTyizCYyv2WUug==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SVpMux7L250Is6nPBwS3JGR0AaQu25tsuA+5psG4O6E=;
 b=FiTVoKATsTZLA7tsYCwxMUncpKU/OijpnSZ9Wd/PkBb+0+K4e8p0qHNByJen2Rh+AghmGfCliNjtcPDVFkoQBNX4c36REwCMdZcj+teYO4bdFKPrFEMd0kb0NxwwRJL63YLzwYN4IsBogXElyxhZlTsqIVceGOouRr7fZjbZJBY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <c3589eab-da92-4199-b760-ce2eba899fb3@amd.com>
Date: Tue, 12 May 2026 17:06:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/5] CI: Switch qemu-arm* jobs to using the distro
 provided QEMU
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Stefano Stabellini
	<sstabellini@kernel.org>, Doug Goldstein <cardoe@cardoe.com>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
 <20260508212907.1643761-6-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260508212907.1643761-6-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE9:EE_|PH8PR12MB7231:EE_
X-MS-Office365-Filtering-Correlation-Id: c586d971-af51-468a-e442-08deb038184e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700016|11063799003|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	C9rCp3K1AeM0yp/9r/qCkDJNTB7+OnI4luGdrW27x8vJwRJW/0MhFYVehTTsTsgLKYNHqMIe71F3U6C+wgRKtxjNCc1PwUNJIQ+8YRLWdil677DDBQlXvbHLDFOOH1jZa90pE2tcWVeXLBajJJsmyN70APaeQWVEXG5f3xzaKY/FzPAUXw2EX7MYKtPiS4KUp0bI4chWUDaEpaZZKXhDNDOcyi/hwkyvZu0pkEljWvFWboRUIHTzBYRZXgT0sU2EB4Hu1P8qn8pthx7DqqZf6GpmB4NI+PVbL/WOVyNNj3EjD6IpKFN+lhp4olFIcykvMzTaA+YFpCALv3zvp6/Q2QKc8fjuLsoMWbaPrj0AKBqjhRheRik/jxuxeGgHEvx8qXF2dcigCaUDfwz/arApkNni7TuG815YKJetqD2/y0zFbbDg/Ujqf7/JtYQeA0cTE7vdy95fjgrBRF3waXfsBiMf39uI08VuWXHijLyG+WXlm9ltg9N4KAOhcG00fdvbEiDWA7n7cw6nZTkKP+3KLGPvtz8ltzZZWN/xu4W1QOzI64iyGaGogV/23RGO+JmMQWIEFjMgLVC3Nyd08T1HD46kDJxRD/+0JQ9GXyjWLm9TbxyBYf3CAPX/VTDPCLI1UJRd5QZ3CTCkL9yhKpwzFXDnEZdfevAAPqFwd8YdRUSu3GbQRKDd1T4lSDJ7GgyJc0A3a9E3DCMuaEhsV1uZmNHIH412W3mDsKjqYuoVkkM=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700016)(11063799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	EJi8tj4wtlP9jl+hP3wK2rzdJtmjlLl1ki0cQCzvRPip7xcLWB5zsE1AOWC6PDYDCVCio87RQ6ngAvphN4wmsLroDpcDOQF/LRBjwrn5yLHW4iuapdkSunoRH9gcBJZ058ZV7vmjfVTPbRamhRSLq9OAVxynZLunckADlyp+p3UZkwlS7FtpfMNyo5yIXNtZsWP59vKFyRqL6qPuaoKUu6nEj73cjxzYwRtjHoTT6KQOYuil0uRe43V1cWblBUFmvNlDqQKI41DUP7e/98neSXsiLm8JX5uq+gUnt7gEdV4bHdkzBGIbWDkleNP36YgZz3j6qSVDCl93UmUppmi3tm7/6K52opcT26qXEiQks7jNdZmi64GVPgHBMLyQwYZyr50Xfb18nF3bsc6bhJBBIZMc94BIyCqO/o9pxJmyESq8coABfTs5nUyfFwdtO2ci
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2026 15:06:50.4866
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c586d971-af51-468a-e442-08deb038184e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CE9.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7231
X-purgate-ID: tlsNG-d62444/1778598421-AD9A9FF4-C741064B/0/0
X-purgate-type: clean
X-purgate-size: 349



On 08-May-26 23:29, Andrew Cooper wrote:
> This removes qemu-system-aarch64-6.0.0-*-export and fixes the outstanding
> TODOs about efi-virtio.rom, now that the QEMU in use has it's /usr/share/
> properly packaged.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:23:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:23:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306940.1578665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMowl-0006oh-Ud; Tue, 12 May 2026 15:22:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306940.1578665; Tue, 12 May 2026 15:22:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMowl-0006oa-RO; Tue, 12 May 2026 15:22:59 +0000
Received: by outflank-mailman (input) for mailman id 1306940;
 Tue, 12 May 2026 15:22:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMowk-0006oE-EP
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:22:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMowj-00F0wi-N9
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:22:57 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0345cc-bab6-0a2a0a5309dd-0a2a4505d3cc-14
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:22:57 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0345d1-aaa8-0a2a45050019-d155dd31d125-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:22:57 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-45297094718so4569466f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:22:57 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491e94c0fsm34465243f8f.32.2026.05.12.08.22.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:22:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778599377; x=1779204177; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=UbmWzJK9tVEiQkJFNESC0HiQhi9drHePm3IQIdmCNrc=;
        b=h6iYsomhLp6DzBCrk4+KJpTIDnlq5BSiIUVXyuZ42o8/7sTnkq3fjxESksoBfxUv8l
         TkL2NfasaUR0h8TVE4p/I8dpt3v87YvK6wsitNOfnd7mMVPiQw3NtTegPC3m3rRYclep
         X76zUBKSuNeA3jrXfXXKwo8dYw9kmxHfaJwJnljnU/kkOgEY1HdGmt7AUmkDSOaZgXKJ
         rcsX2w8siHuXiv/SYA1/Zoqft/HIje0sR5DLvGAUiIG+Fu/sqApIu7iJ/UdXp2VGMHj/
         vaQ11fpdxTc35YARTI4JtWYuGdmeaAxCfK/8N1eW0qBfk7lX8rlBf/EIu1sMRKF2vgT7
         Gpxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778599377; x=1779204177;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=UbmWzJK9tVEiQkJFNESC0HiQhi9drHePm3IQIdmCNrc=;
        b=P3al9TCVTCT0Ad928LgiTGCUkwI/01e61w3eEDq6CFCpbqHQ+aIJM3KOC8jXSeO99S
         NHNyLv+9Ig+/PXbBZdYlXvTbEcZ3db3q3NPwzSPnTdiDhduZ4gX1zW4+bHHbGUeGcLre
         SmwVj0kmlj/J7pRAHGqdJmhA0HgeggH6v2/WpdVNHa7SYGSnW9dLzRqjB+vRKqNcBMXI
         0uvjff8OraqSFzvV1WItL6Bp2WtxTknSfbHjYHkBC890Mgg4UlNn1rgoX+JdbUY9OEBT
         NZUssA+gymviHjJxUWkkAEVOWpz18UsxJcYLXpwCwf7DUnsNbe2w8zwWFojtWc7uiFQU
         5EFA==
X-Forwarded-Encrypted: i=1; AFNElJ/rsOETh+ObrLC+b/USEo6nSmJUKlT1PwR3hPhlvYGI5SJoAy0vb1soi4qLUxZFXmluxmFxqnv5HFQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwVnpdsueHS+spgtmBJZ6FmBEO4IoU+3jXhuiw/fz3sjoV062zB
	DVdM5KfliC3UsPk+dgg6ifWCP0W3QtAzMALV9Duu5D6yAGK+5Wd91wyz
X-Gm-Gg: Acq92OF+xuxMCVrvIu3A1D81+StJqXagoVQo5JcACSdCL9LQFChfZuJ1WI2OnuuGUyk
	78TQD1nMSc6dlFS6mGlPf0uPJ2mmiGNOIZ6yymJPMOqOXDvB1Yf9r9TWCUTe7wIynhHzY+AxvAi
	t5J8Z9kOEqQQFaEFSGx45GEbcARQpHVSuW/q5g/3M0485r8dLMPLTJJjcEoEP1cCcMYfBmxv/WN
	ySP5IbeKo8r0PZT6aWyiwxCWKeQvGIFgn8fdkoRt534Ahhgue8YaBIx5ZHH8pe3qV6mOo9QpSBU
	lVXOwYobH2SuMIXsvUlc5dWlRFj6/NOrqCl5I61Yqx3NrwBAWBlEIlybUCrCRetGb5y5i0fiFF8
	5g7uCnc3lAp3gxuCTAa2945xHGwVm9OBGxgL9z6T3tv7x0d8RVoxPsE5TfGo8WDO2TIz3/7V6+k
	aVPvkgXvgyG+Hlxu5KtK52xM4OJfbrR8UhUxMVlb3IyPaii2MaCWNjFkDgBp7WUQDk2k0s0T4SY
	y4=
X-Received: by 2002:a05:6000:2308:b0:43d:50c:6f33 with SMTP id ffacd0b85a97d-45b13790ffbmr5597262f8f.26.1778599377019;
        Tue, 12 May 2026 08:22:57 -0700 (PDT)
Message-ID: <cba2c354-2aae-4333-a323-bb4a36c7e439@gmail.com>
Date: Tue, 12 May 2026 17:22:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/9] x86/mwait-idle: sync up with Linux 7.0-rc
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1778599377-D8F7E443-2BC24D1F/10/73395122804
X-purgate-type: spam
X-purgate-size: 582



On 3/12/26 5:53 PM, Jan Beulich wrote:
> Includes a few custom changes, too.
> 
> 1: arrange for BSP MSR adjustments during S3 resume
> 2: clean up BYT/CHT auto demotion disable
> 3: latch struct idle_cpu contents
> 4: move pre-initialized struct idle_cpu instances
> 5: Remove unused driver version constant
> 6: Remove the 'preferred_cstates' parameter
> 7: drop const from struct cpuidle_state arrays
> 8: Add cmdline option to adjust C-states table
> 9: Add C-states validation
> 

Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 12 15:23:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:23:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306946.1578675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoxg-0007GF-6G; Tue, 12 May 2026 15:23:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306946.1578675; Tue, 12 May 2026 15:23:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMoxg-0007G8-3K; Tue, 12 May 2026 15:23:56 +0000
Received: by outflank-mailman (input) for mailman id 1306946;
 Tue, 12 May 2026 15:23:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMoxe-0007Fy-RS
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:23:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMoxd-00AOFE-TL
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:23:53 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0345fb-2eae-0a2a0a5409dd-0a2a45068124-14
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:23:53 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a034609-7371-0a2a45060019-d1558033d80e-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:23:53 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-4891c00e7aeso48816765e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:23:53 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e8f410558sm40446705e9.5.2026.05.12.08.23.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:23:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778599433; x=1779204233; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=xwBXFHs0lzdhpjzG5xBxPBnMCMuNjVm0MveNrz4qwK0=;
        b=U8MVMrjb4XceUr5VLqJhX3xvCfD2jFXjV/mU7fLRankjx8ur6lRdzSYBtSj8JyqMPX
         APeaCR/a8V+J8/QhTcHthJN8GLIGYzKyeBJjcA1YQVSqsA5yYOy1SLW70EGPFFwMIjV+
         PSFvDmndbP9+bFd1J9Ss8Skhl6hB1yuEg1CvOOtY4KFrBodSxWdxQ6Z2pI6dAKaX7M9y
         FwJ1nhjggii5ygeiMQkGYQHaVi810GgDD8iJe0A8kihJG6iH/Y0bOUN6d/0/6pk1J3Do
         /z4hmFPORGrUMJ8NlV05+3ZKEwIXVqpqNPT2Jr9262eNhPqXaJ901ESsdxb0O/xI51kp
         VEaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778599433; x=1779204233;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=xwBXFHs0lzdhpjzG5xBxPBnMCMuNjVm0MveNrz4qwK0=;
        b=HpTMIA6pPyFW4VmnFli24GDXV9fq77RUa2KswcsDkzyWXvv0/kqzjourTo3b7nJCPa
         afm2wajGvDUUUxVZRK7g25Q2gDsLodcEsI/Gb1DuGAluIG2/zJ+IVvMymnvCIvaXcZne
         Rpnup/eJvJWqFiE9xgzO72Cg7O3a2KcUw2mZB0geOzMIALGMFNiePbWywXXoAzoplhwS
         QAl4xBZ58dgnTt47i8iJeRw/ZspSzQL93AWDj0VIFpHOmX/g1tYlAhtIf4ixUlkaO0Qj
         yMIVxM/ZXR+7QGtsSZG3/Ng9ZMlmLqTFeGk+KWAmra49fyWmk982HnHpku4uT/JXiFBs
         62cA==
X-Forwarded-Encrypted: i=1; AFNElJ9+/Mwj3Ay2aT+M8QAOE8DcANTXqYTDl7/NMUkulS+CY54Y2N+Yp2ZpuHjwCwjJHgUXeIfhBuluzuk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzKGRV3zCbBD2pdROs88DMp+O+bPkLhlyUrN6KGg9VCtIVgYKzc
	T9PMTGXNQPeYA7MVqqwJ7CVpHjLw30iGvFB92I1dGLIHNsjF/IBaSwAC
X-Gm-Gg: Acq92OFsuddkUMy4QxTR2+mw+AyVWMxdH7mJAHtqQ3as/meVxLqv39Jikk4hAYpF29c
	lJF1cgnqWdb5huZzJtbjXFfPDTxSArSVdqSp9hkOWGHqzA2KtOK3psj+/797WKJyszDMBVEStKf
	SOZrkNGEqr1JXQayld2w32akjAcdZSwLU6lWXP3g7gJ0x7eTj0gcC/25SFGz95KhdqK2nKtjjhZ
	b1Pr/g4WzngfhTy8/+UcN3HTGtKfJoM8FIdzfMbbaoShMXiKLki17g+eDewJV2rf0xpzulOQ31+
	qJwxsuKYCj+iL0378pMBYqq8TJH8Ob61kmSrYz7iGXhBFTW1wb3Lm7HlTWsmXmyKLZ7z9v9p0aF
	XmWDFc93yaWhC7iSCDDarVJHKPYVJVRV8W4EzyvNl8BNOHDuZOAGcRtDwCbkUw/Yq9nPgjqXXQ/
	JeCTBOuBK181Th+r+wVCMvPJlABHr84+NBuXJIQNqQyKwL3Zl8K8cOR9fejHNdi9UvD2vO3adMS
	G4=
X-Received: by 2002:a05:600c:c058:b0:489:1aed:1658 with SMTP id 5b1f17b1804b1-48e8fe7b8bemr37613455e9.23.1778599433216;
        Tue, 12 May 2026 08:23:53 -0700 (PDT)
Message-ID: <3d8e5b0b-f7f5-4102-b3d2-a973517c8daf@gmail.com>
Date: Tue, 12 May 2026 17:23:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 0/3] Fifth MPU Series
To: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20260508143353.3512004-1-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1778599433-87371D75-43463CD8/10/73395122804
X-purgate-type: spam
X-purgate-size: 1804

Hello Luca,

On 5/8/26 4:33 PM, Luca Fancellu wrote:
> This series continues to further the ongoing work to introduce support
> for MPU systems in Xen.
> 
> The patches in this series aim to implement MPU specific p2m functions.
> 
> This serie is based on staging 10d417b8b62efa5093707c1dfe9bd48e0abeb331.
> 
> Harry Ramsey (2):
>    arm/mpu: Introduce `v8r_el1_msa` device tree property for domains
>    arm/mpu: Implement p2m tables
> 
> Penny Zheng (1):
>    arm/mpu: implement setup_virt_paging for MPU systems
> 
>   docs/misc/arm/device-tree/booting.txt    | 14 +++++
>   xen/arch/arm/arm64/mpu/p2m.c             | 80 +++++++++++++++++++++++-
>   xen/arch/arm/dom0less-build.c            | 74 ++++++++++++++++++++++
>   xen/arch/arm/domain.c                    | 11 ++++
>   xen/arch/arm/include/asm/arm32/mpu.h     |  2 +
>   xen/arch/arm/include/asm/arm64/mpu.h     |  2 +
>   xen/arch/arm/include/asm/arm64/sysregs.h |  4 ++
>   xen/arch/arm/include/asm/cpufeature.h    | 13 +++-
>   xen/arch/arm/include/asm/domain.h        |  4 ++
>   xen/arch/arm/include/asm/domain_build.h  | 21 +++++++
>   xen/arch/arm/include/asm/mpu/p2m.h       |  7 +++
>   xen/arch/arm/include/asm/p2m.h           |  5 ++
>   xen/arch/arm/include/asm/processor.h     |  8 +++
>   xen/arch/arm/mpu/arm32/mm.c              | 17 +++++
>   xen/arch/arm/mpu/arm64/mm.c              | 18 ++++++
>   xen/arch/arm/mpu/p2m.c                   | 72 ++++++++++++++++++++-
>   xen/include/public/arch-arm.h            |  6 ++
>   xen/include/public/domctl.h              |  4 +-
>   18 files changed, 353 insertions(+), 9 deletions(-)
> 

I am okay to have this patch series in the current release:
   Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 12 15:25:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:25:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306958.1578683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMozb-0007s6-Ix; Tue, 12 May 2026 15:25:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306958.1578683; Tue, 12 May 2026 15:25:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMozb-0007rz-GG; Tue, 12 May 2026 15:25:55 +0000
Received: by outflank-mailman (input) for mailman id 1306958;
 Tue, 12 May 2026 15:25:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wMozZ-0007rp-TL
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:25:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMozZ-007D5o-84
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:25:53 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a03467c-2eae-0a2a0a5409dd-0a2a450bbec6-4
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:25:53 +0200
Received: from [52.101.57.48]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a03467f-212f-0a2a450b0019-346539308f59-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:25:52 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH8PR03MB8179.namprd03.prod.outlook.com (2603:10b6:610:2c0::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Tue, 12 May
 2026 15:25:50 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.021; Tue, 12 May 2026
 15:25:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wVNLRUCg8I6+zc8thppUaTW3RZ2EPvfKRxm370co67QDOlCj4DA1Kk53NvotVtwGXamu4kZ5bdtvxWsUDyenwbdwbQ8+fWYVsEI/O3RVyy1mPsrczN8uII91D/TCZ90QclHhqhPEBolVzrtuhIME+9GiQ0y+TU9Adui1kXC7Daqj7jDVQvW7B2GlFltE/R7iTLxUneiH6DiPN01RwmCSC/FJmtIyRJQ0Qqut2eIytHliOP3HevNaQcNw4zu0S+EZ8rwKuFzWSE+B3yy9aph3kQfGnAW/YoO1A7WQhSklWw6adiuOk0uycMp+Vzuhu5MY13j/joV2fVvEksFFM69++A==
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=Fz3aGodIEVNcRkKWa8sKERiaJbQOd2lKVnRzjD9AO8U=;
 b=rp+A6966RKvvFpPlrihG9Q9o0E4PrqjiaFvW1XhiV1TCMkx8a7O3aDkYSbzmA9sz5iVZyqsNEiRw08y3d5gPG8adccgSQ3nLJxuk5bC1B8OMHMV9i253FQxc41neT3cLVlt4FC1g/7Kb3rE98MTqy2l++Uitwabj7nW7Y2aEl6jg3CRcRptd0fp+0oykh5UhIgDeeBtX+naL0BN4okCEpAYoTTzHHWU/QIZy9UpQ5MC95BcYytY235V4FkUhb6Cd5GB8KmHRoi5xEoaKxBGp6VUAamnpxLUNz7TcejKPBJnvqmSj5mN++Z9PYsW5iknwkLaKL4AduQDE+iLeSYLVyw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Fz3aGodIEVNcRkKWa8sKERiaJbQOd2lKVnRzjD9AO8U=;
 b=VlehBsEk3oVwEdImVHz0qUxcmEVqCH1Mt61kMdtKwpooGoYrnGaPtoSgl0KYcdHDEziDRkL9Gae11RDWjuWFi95A+VmAT+LxUOxnxXRyrNDDLIll3N/sWk7JZQIdnqAZDw6JfmrwjrHB9/Skdp22vy56R9kf214IYXFwQjylIug=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <940ba092-9a5c-4f97-a37a-05d0cc6b220a@citrix.com>
Date: Tue, 12 May 2026 16:25:46 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Rafal Wojtczuk <rafal.wojtczuk@7bulls.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.22(?) v2] gnttab: simplify (really: drop)
 gnttab_set_frame_gfn()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <6e3dbb4f-5849-4525-8f8b-a2818c39da2d@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <6e3dbb4f-5849-4525-8f8b-a2818c39da2d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0283.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:38f::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH8PR03MB8179:EE_
X-MS-Office365-Filtering-Correlation-Id: 7b6c8316-7fe9-496f-4b9c-08deb03abf68
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|56012099003|18002099003|22082099003|11063799003|3023799003;
X-Microsoft-Antispam-Message-Info:
	TDSxDE1d5dsvFe3Vyw4STRqhIJkuznXut8wEyc8rCEG4CXe9F8FEEbHBg8Pg/zogi9YTZLwsw1t4TJp+3Lh9L5yHA7kyQ52JU1NZPqDr9pJgWioIDIGhR7/wCYcnq/a3duQZEUdmGNObd2L+zoNeXDS/n07+LXArcYUYZBPiPRVpnKcC+ybYpM1BFy4KCNNFFf4ctGHon3zHSzMesfXrROwpiS9RnnEyf1hk7n+5LD8xuM/jyTuwZlhcpeyCyTZIWiJtGd0edU5iijHQDR7y1CK8ok6hZkJbU01PHAETyL3Xo99Rzvx4xixSI4Ohx6Y5j/WrevREtzrH973DWX+u5lnZ9/t+/jC0Exc4GFEDumw/OPMq3djzg4EL8hakbNOwGMSyxU5uYpjSeFBQQEuD8leisNUKXGXJGHMX68LKtFpNMmlXzXjV9qVlMKi317cUCRjWO9gN/ZG7KPSmWI0b579YahmlRfajWJvF5V/KAnYpLPJMcruxHwn8Sejyt/O4gEKwW7yWM9vs11zL9BupaPPX5dlaOhUEtU+WvYAusmRSRVV2Jy5RCquPbxN0OqEatmfdDiddpyWpIC6Ayk/zdf/ZpbONPqeP6zxR9YHe46F3Nq0WpClRsevloij+iVAkURAOPpticaBDxfsSfNTn9bZl+V5JatQP3hXa49rZuIrW2LR5xSC68KXzbgna0Oap
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(56012099003)(18002099003)(22082099003)(11063799003)(3023799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bmZqRitNYkxFZ0MyRzErWnZYQ2FaWVNRWUh5L0NaVm5MVkRTcnlmS3A4LzBN?=
 =?utf-8?B?S2tDREp1MFRDYVZmaDl0U0NuSWJxZmtOcWltM2V2eE8yWDdMS2hsa3FRc1Jo?=
 =?utf-8?B?TGFwaEdzcHdpcVVYcDBqVXdBOURRWktYN1hXMHJydmwrQWZsS2VidER6Um9X?=
 =?utf-8?B?UVhGbC9waXovTktlRGFkOWRvVkx6MllFQkRSWi9UTVA4OHRMNU5iSG5VRmVw?=
 =?utf-8?B?eHkrRWxGenNxQ0IvY1JXYjdEMlV0SmVRMEZnMXV4NmZuRDFzTE5CNmhlK2Rm?=
 =?utf-8?B?am5VTUxBYkt3ZE9wODdqOWVsTDFad3YxVm1hcHQ0a2lqWFdrNmUzVGRJa1o1?=
 =?utf-8?B?a2JFVEgrR2NqU09SanZxUndTTTVwODJveW9UVkMvZ2JyRUkzN0NrZ01hM1hX?=
 =?utf-8?B?L0YxeVNoU1FaZEg2aVdUNlZ0SDlmR0R1QXNXYUF6N3MzSVg4bFkyQ0N2NnRh?=
 =?utf-8?B?UWdmUUFXM1VSZzZRam8zaHhqWkh3SFZCQ253cnhVYUVWZm9JS1AwSk52UWg2?=
 =?utf-8?B?dENicEJkbnY0Ris5b2lRMTNGSjZsdnpOMzMwaFpxZjAvRnVKdmdaTlBDNnoy?=
 =?utf-8?B?NjFpSVdDUUppT1JjRjdiTW44TkY3QVFHSW9SUmVHalRpZjFpenRQNEdkUUw5?=
 =?utf-8?B?aUczcUpWK0NBUXJYa29xN3gyNmZ0cXNabE9BdGowRGU5cFVBWVA5cERMZFU4?=
 =?utf-8?B?YVFFbFM0cm5vSk9qQloyWW1tMFJyaVRxdU81dDFYdzFXdG5PbjhoTFNnemxm?=
 =?utf-8?B?S0p0MnQ2RkdUSE5WVW5KQUdhSkMyNXZzRHJDeHRCWENrcXV3R053OHZaTjVr?=
 =?utf-8?B?N2lsb2tKTytHY3dMb0pUdXFQQ3pJaTYzSnJRYXBDVlBERkpEWndZazdXM0RR?=
 =?utf-8?B?QzhKSnNDN2NKOEphUE9qd2lXSm40RGlyZFZxYVBVeGtFWTViaDkwYzFqaUl0?=
 =?utf-8?B?K1ZZcExiY1ljMXU4eUNpQ05oemdkbnJwWkZvUzB2RFJTZCtvRCt3TkRMMnJj?=
 =?utf-8?B?MGF2aGozWGdGU1hzTVFrbGNZOFozWDhqVGJCeThZNTVJUGlucXM0cyt4UzRC?=
 =?utf-8?B?dy9JcE53RWdER2s5aGczNjRTeGJxT1lNVEY2Q2xHdHF3Y0haelpxSGNhQmF5?=
 =?utf-8?B?RkZ0V3RUS252ckF0SmNTekNuSkpxbW5vdmo5VnZVOXFMWXJBTDVSa0cxOVNk?=
 =?utf-8?B?bnZmeHFVRC83KzhyKzF3L3FZUVhPYmh0OWExNXhNRVNNY3FtNVkwQUdpRnBv?=
 =?utf-8?B?dERXcGtFbkFzYTB6ZXpNcXduWFhhdEtYTlJCdWtOTEpqNGhwKzcvWmt2SU1L?=
 =?utf-8?B?QUxUT3lMenBoeEljMEwxZVBsQUlXYTJ6bFArYk9iVUtoRFc2V0RDTWFDMG4x?=
 =?utf-8?B?eS9WVHVabkduN0NMU3JiNUkzc2IweXpheEg1a25mNjZRb2pCNllnWWxWV3Fz?=
 =?utf-8?B?aC96TmwyRVZJTzArYnRTVGpoa29VVmNTYTV6dGR1ZnBKNUFtd1BtRkdtTXRk?=
 =?utf-8?B?QjhaaGFTdXIzUzRoV3ljTGlzOUlRR2lYZmIwc2dwQmFIeFpXMng5M2dIUElD?=
 =?utf-8?B?RGo2bmF0aDU2dTNQREVoNkVIN0pzdThQZ0Qxa0wyYUtZT0xBK05kWktPaGE3?=
 =?utf-8?B?Z0l2Mi9xOHU4dmF1Y3g2d3J6NFRVaW1JQ2ZXZHFlWldGODkvYnJPcWFONUZR?=
 =?utf-8?B?dDQxVGdOV01xYmVEZWUzdWtwSzVXTndycWVCMzhoQTFvSXZhYzgyU3NPWk5i?=
 =?utf-8?B?elkwOVpGUHdzTm9oQ3dSQ1NwWFAzV1lHbndjeHJ0b3IzbEg2Yjh2NmRkV1By?=
 =?utf-8?B?aVZIeG5WN0dNZGNaUmh6UUJZazdhb05rMzBJZnNrampiR1JKY2VFUDhHOU14?=
 =?utf-8?B?aDllaS91NmZVNHBXRjdtMUUvb1Z2YzRDcVZSSjU1dTNtZGdSMmF5OTdmb1Av?=
 =?utf-8?B?TEFTU05VamNoUzhHR0FjMGhlbk5ySkpMVHZaem05K3REUHBpNDN6MW5ZTlhJ?=
 =?utf-8?B?alJ1empTUFVEREZab1BaVGdxdmFtQWI1Z1M0Y05TcHpReXVacEl6dlh6NUNv?=
 =?utf-8?B?UGhlTElEZEhEQlBOdk1uWXZTak1LdGFUN1RqRkRmVzlwWldxaGFUZXlpWWx4?=
 =?utf-8?B?KzNmeWlOSEk1eGpFemlHOXh6b2UxRUlXYzVobmlXSVNZanBvQXVVSm5GRlBF?=
 =?utf-8?B?MFY5c0tUODhXcG04VUc4SEUycllEVS9DQ3hac3psMlBwVjdhZUxjanV4eC8v?=
 =?utf-8?B?enl0UU5CWnZ6VlJmLzEyU0x5MjloR05sNFJIS0hmUWFjUC9JSFlOSUZndmNT?=
 =?utf-8?B?b3ZsTXM4WWNGdXMwL20xYTVuVUx0R0duSE4zbGUrMFA2SEwzN3VFcU15MlNh?=
 =?utf-8?Q?VzG6vnUdz8X4VfNY=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7b6c8316-7fe9-496f-4b9c-08deb03abf68
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2026 15:25:50.0057
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OKaPI39d1JRmq0YgKY6L0RIfLccCxMI8+NVt8Yr3TI20RFbrYhyav/akJeU/GKPKbYjE3pP6lhl3CdBmfQACqf05X5NXsN5CLaN12Jrix8Q=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH8PR03MB8179
X-purgate-ID: tlsNG-42698a/1778599553-12D77F3B-E70B6397/0/0
X-purgate-type: clean
X-purgate-size: 791

On 12/05/2026 3:46 pm, Jan Beulich wrote:
> It's not really doing anything for valid GFNs, which renders its one use
> site pretty pointless. The other isn't so much about setting anything, but
> rather about clearing.
>
> The main point here, however, is about Rafal spotting the double
> fetching of the GFN (first in gnttab_unpopulate_status_frames(), then
> again in gnttab_set_frame_gfn()). Re-purpose the macro parameter to pass
> in the already fetched GFN, while dropping the no longer used parameters.
>
> As the result is a mere wrapper around guest_physmap_remove_page(), drop
> the hook altogether.
>
> Suggested-by: Rafal Wojtczuk <rafal.wojtczuk@7bulls.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue May 12 15:27:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:27:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306966.1578692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMp0k-0008M3-Ra; Tue, 12 May 2026 15:27:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306966.1578692; Tue, 12 May 2026 15:27:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMp0k-0008Lw-Ot; Tue, 12 May 2026 15:27:06 +0000
Received: by outflank-mailman (input) for mailman id 1306966;
 Tue, 12 May 2026 15:27:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMp0i-0008Lo-J0
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:27:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMp0h-001ZcJ-Vm
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:27:04 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a0346c4-e002-0a2a0a5209dd-0a2a450ced34-6
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:27:03 +0200
Received: from [52.101.65.69]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a0346c6-62f1-0a2a450c0019-346541459935-4
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:27:03 +0200
Received: from AS4P189CA0060.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:659::15)
 by PAXPR08MB6349.eurprd08.prod.outlook.com (2603:10a6:102:15b::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Tue, 12 May
 2026 15:26:59 +0000
Received: from AMS0EPF000001AD.eurprd05.prod.outlook.com
 (2603:10a6:20b:659:cafe::6d) by AS4P189CA0060.outlook.office365.com
 (2603:10a6:20b:659::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.16 via Frontend Transport; Tue, 12
 May 2026 15:26:59 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001AD.mail.protection.outlook.com (10.167.16.153) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Tue, 12 May 2026 15:26:59 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AMBPR08MB11964.eurprd08.prod.outlook.com (2603:10a6:20b:779::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Tue, 12 May
 2026 15:25:57 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Tue, 12 May 2026
 15:25:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=nIsfauQyK2PQEBlmr+O+kWxwG48rrJtv6CRTSd4sOqJcXlAZu932iqf3PPL0a8qcfibJmojpZe8YXkxkoG9VgcCL+iNDw3eFy91CdAZUE3XLs15mjHK8OMbwhyYOz7kFTn9A/Oqcp9RdGJwKLv9F+rBoDlzhy3V2Q0fUgj0lYru4s2XAWtrdgUaVhAR86tcLGUpf4pquWx95IuZE7l+wF0J66ZzyecIGUTxhlDfuPuayDUg4WXt6sUH/XNj7/lklGtQZNwOiU3+mcC8+i1r2kFVUcp8LLetGxx8S64wbPfgr04af/cQZyHQEDt16leJPDedWSMLpK4TNtZPUGjPXPA==
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=7+TM6OmSHPm/yc+EZ/KicAkU8RvVEoB2+MHR9VBrIXU=;
 b=karhXZUyKnANbZu86wWwEZIXtrdPOvIH/bMD3up23Y/GNZuVD3ahKNis4l5oBR7AENgYkbIpuDC2IqapDgUZY0tL17mmPt710Oso51/huUWXoVFwsL/AMYTrKOlWoYsKT8zugrMgkUFChd7/HWNduNBJdY5xFC72degJrhVCYTdkvvkMcHOFVtKMsPbP0chQim/iWgWfuUb6nvV9kfiNOtLDk6y1ML6wTctKOaPHPusxqzLPtu/DAW+O+4khcZSZvW+61Cixa3F2RSrR0yco2pkk7Y4fPSO5ffCQwGchPTq7wonS9r6RxTDvN1e4ZpyUqJJamf+c9LYGE1TPwnyYYQ==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7+TM6OmSHPm/yc+EZ/KicAkU8RvVEoB2+MHR9VBrIXU=;
 b=T7Sl12nzXpBr2oPOtY8eK935kmcORKvkxWuJSVwBpgpsK5JGTErbwNCwakzgOm6E8uYDkWQL4tWfEXTghdVQYZEMDjND/a+go8rYsWWNrA3hP7+4VELjxgKtghascCf7ay9eoR5TLgmDpo2buFNe1lmMM1tBaEUew4wI83WkB/U=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OwHiZuRQUcIECSXUOOP+XCj1uBy++QG+PNANd3aXZ4Xg/gR9olO+6Z4aMT6KVTcOBHGmnTVn8XlzLTmVEFUWGwea8W88JO1za5XhVmWVPY3XsPwEgRr5eu1wok+lt4wGcjB++N0WvQjKO/gMA3BmBSMtLdAMQqzEWOSBqbe6uNApX5icmizVGH0odaCBow2sLi7SqmOxChzV3DbqIIKN4E/Y2pyDE5V7eYVK2WV08OAg57BExFvTaaJnJNmlAPAEfnTLJHACwaGLEpasc12gFRRpWu6kN9EOn1Yz7eMgaNtyTBHzFSp5Zn1ysObXjGamjqsK+KXY0dwv71y74pUZLg==
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=7+TM6OmSHPm/yc+EZ/KicAkU8RvVEoB2+MHR9VBrIXU=;
 b=wm3t91bl7RB5Gl+/zQ6lwd8zAVSopKG5h0PyJPTsZmbVnQ63qb5OfbLnipMxusQxxOJxZPLOal/q17uwRiINobx1ZhJCgB/8Apvl1+GUrFanJWhZaUwwDWQlb4G2wmWn6RiGBRcbVa09kdc19d8abLxqaPCWzJWbIDZ64g5R1ci6CtaZy2YfhsJi2VyWvoRrAxaf7X9buLz+V+1wZcP/IORcCnrixeH8F3mkX33ZhC/DNci1NCrovqtwqqIIxNUYvhIp1RWN8HP76UBak3NMDRpNfr43wI7B9iXFekVT0ul6wfYiyZ9HBlxBo8MleeRJt3F1GljyF1DKSCsS/9Kzuw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7+TM6OmSHPm/yc+EZ/KicAkU8RvVEoB2+MHR9VBrIXU=;
 b=T7Sl12nzXpBr2oPOtY8eK935kmcORKvkxWuJSVwBpgpsK5JGTErbwNCwakzgOm6E8uYDkWQL4tWfEXTghdVQYZEMDjND/a+go8rYsWWNrA3hP7+4VELjxgKtghascCf7ay9eoR5TLgmDpo2buFNe1lmMM1tBaEUew4wI83WkB/U=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: Re: [PATCH v5 0/3] Fifth MPU Series
Thread-Topic: [PATCH v5 0/3] Fifth MPU Series
Thread-Index: AQHc3vevt71hZe8lskS1PtpxlhNAy7YKiLyAgAAAcgA=
Date: Tue, 12 May 2026 15:25:57 +0000
Message-ID: <8E3746EE-8AC2-482C-AF55-A2745E0C32EB@arm.com>
References: <20260508143353.3512004-1-luca.fancellu@arm.com>
 <3d8e5b0b-f7f5-4102-b3d2-a973517c8daf@gmail.com>
In-Reply-To: <3d8e5b0b-f7f5-4102-b3d2-a973517c8daf@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AMBPR08MB11964:EE_|AMS0EPF000001AD:EE_|PAXPR08MB6349:EE_
X-MS-Office365-Filtering-Correlation-Id: dbd57d7e-61f2-48c3-aa23-08deb03ae8d4
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|7416014|1800799024|22082099003|18002099003|38070700021|56012099003|11063799003;
X-Microsoft-Antispam-Message-Info-Original:
 NbWLp6fjm8gq5m9kO5A2uOnV4MZfhx/Ai4/ZgD1Xn8qvL+8efvz0LTvWVuNdVtZSpDxWRW8rrCP4qMp248CrKYinDEEDllcB2etGWe1xO7lTmPYK7/xwPZzNYL+eCFx0bKWtm7oBvJxNJVFVAT5HId8cfoeD2anKFnJ63L18GsTF3XQKhGJootjM/j8ld4VQXmyketbf8KgjSSNJdTDNQ4KYW+nrJT/3nOVwpzbz3nUKkRewKjjYeAFOEX0LZPtLOcg1indsFM5h91BRSmYBR8yLZb+CEaUE2WBw9xF4OQ5cX6eJykpyK3mk7pIDZdxK+qyOFmdjBRs+lql7LVATylOfbeBSzcxXOUNPKTnySCO3BZRARNbvg0R2coht9MzNkifBUWFCOnQUao6xt5eZ2lbJ8CHyG4cW1F5WpIFcRKFwVsTsAg7zA3RM+gK+yw/+2FKkIYOOd/rgx1QppmNMyLL+odRF/spyp3INp5dANIJuvEHlDNfwoNuGl8STuquT90zFtACvCff5O1z/mivlVwxJxLmYB/N1bZm+sM6ylLsQhn1wQYDA11EOPkYh/P1igFLvolt5lXSV91d0k/d+Xr7YUC/3Ke5t8mteMfPI2DeyasMKUhFQ+x4uZGgdt+5JHuXMenhzkgVyUBD594ouIBhH0CnJ5VXeQdzhXHvgHS8i6IbDoB1M9SncVpezfTnSGIahW9EE33GTWkBw+KzlGyrppnOb+Zy0s1UKlMGaF5Kb/FAuTIdPxMpcCnkUwdaO
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(22082099003)(18002099003)(38070700021)(56012099003)(11063799003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <5548875D22D5B741916934D09FF5B2CD@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 IbMgah15kGogI5WFF9kYHAOnlaHtfc4fD/7ah8Rbdglicm35D4LpMUH8JP6PYWPSLaEdTYq4EQHsC4yLuBVknNq6p11Ki2Ds+2m4AnqR/HSNTDz4S1uGkRZfUTPeBkHZZny3cKO+nzKxY8kICAORJ1e2DY0ki9NVzAgeP3+++PF80zGuRYNCALlSV8bk0bNZnAC1i8u4T705BqJM43xWvUrQ5I12EI/FdY7wbX7LCG2k4qwaXAYu30ajTv0x+1G6mh57/nwfktWrECNpH9bNrD7Jwg6j2eRFv5bPoZtCVlGkJjXaCEG/8zlfL7++yOoVwS3lHzOex2i110WKZ6cfmQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR08MB11964
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001AD.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3c2930e0-fe2a-4e35-d399-08deb03ac3c7
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|7416014|376014|1800799024|35042699022|36860700016|82310400026|11063799003|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	Y1ylA+rTwwJppdaM5Svtiowbr8pCS13AwPH6gbT3byy93rh4muoYw8DO0UBtY6UjuH64Pwhdv3p9cFGB95FWrTERg1ZCowe037LyP2BgIaCQgOIqYWVBkXpd+rxkQ5UWBA9pbx9L2jd89OVqmwfp5kc6qhgFquKDfEhw7vFCBdjsjCKszmUtpAgjUPtfPk550Y3AiPXEnm2hOKkAQ8SNVBytfJUiZADjZ02Uv1A1iijyHjg9oZ8uagqCt8PJrupqlDZr6m5CwL293A8wIw4w+z0DHSjyggSs/kWFk78gg/Irns80HaySbRBc8NY9IsxbEkykI6ZdEe4eFa7QcuD6YJJzF9zMOv2q4Pt0v718FPSp8uQY48pLW91TRv6OQ/GeHZoIy/uzcEdpUxix2ynWZPN8g5lP1dfATQu/WZf30mCE8ovBGOxEG9Su+zTumiA0crA4jkqnx+IJYXd73UeWYdRuHiyXhIQHgoEDkS1mqQSOE/fkrGbkcTWqix4UenW8/hYvl+Q+nmN2tFG7O8nKuVFXg5BZJf/4ipFnSLlye5xAu3/+uiPMGVSZx2df4tT5kOc7fZhi3O8q2kCI8monCFMkrvo5NIoM5BYIegeWgyJwt70lNYdhPcIqFQXentikGNMJWjdvfm1HOUUaW5Iapm7GMHrUFKNDrIJ72iwhdc7ieC2kSjZMEg6mjSIHcKN2FfSsi47/7BNsLzheHBwLI2hUT3vWUdgkdFY3PtbJJKY=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(7416014)(376014)(1800799024)(35042699022)(36860700016)(82310400026)(11063799003)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	8Sf6Ls6wLoE2w8NfLl+DB/xV7KpjS109ThpkNcf3TOZHIPUu8SI2YAFIkb8mwdABkih5UaVeVM24r8URdbzf5uGKe8vVD/58UPYgqbR9ZcpN4mrUtZMQd68AFy4kq+y9q5YUoJOgiJsw3XfHyUZQwMAp+6deWMlZgZ7gZL7QVjvmgczVUZZBtSogkysgnASpqR4czd1EMOwk+eIdkYPlyibB91wXvb4cXkH4kgCwEz1nYU7VJfARtNp0ke89ImuQf2p+qdIUvG3WPymvDjYEEfaTP6VZXaCmZ7LOfCIeCb9LGQv1gOgruyrSBI18gYCg4t+GiE2Z3KgGpu61cW+P+Iiv73rSlWnk2k4boLygo4ZmJW7wSovwHTNSsjHPH1BomlVYnL3aG2uGDhCNynQsoYelHEI0DkyAm7LVfaMznoxBhgjVSeB6FeHSMRN/0aUC
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2026 15:26:59.3147
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dbd57d7e-61f2-48c3-aa23-08deb03ae8d4
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001AD.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6349
X-purgate-ID: tlsNG-d25034/1778599623-E2169CF5-CC246201/10/73395122804
X-purgate-type: spam
X-purgate-size: 1979

Hi Oleksii,

> On 12 May 2026, at 16:23, Oleksii Kurochko <oleksii.kurochko@gmail.com> w=
rote:
>=20
> Hello Luca,
>=20
> On 5/8/26 4:33 PM, Luca Fancellu wrote:
>> This series continues to further the ongoing work to introduce support
>> for MPU systems in Xen.
>> The patches in this series aim to implement MPU specific p2m functions.
>> This serie is based on staging 10d417b8b62efa5093707c1dfe9bd48e0abeb331.
>> Harry Ramsey (2):
>>   arm/mpu: Introduce `v8r_el1_msa` device tree property for domains
>>   arm/mpu: Implement p2m tables
>> Penny Zheng (1):
>>   arm/mpu: implement setup_virt_paging for MPU systems
>>  docs/misc/arm/device-tree/booting.txt    | 14 +++++
>>  xen/arch/arm/arm64/mpu/p2m.c             | 80 +++++++++++++++++++++++-
>>  xen/arch/arm/dom0less-build.c            | 74 ++++++++++++++++++++++
>>  xen/arch/arm/domain.c                    | 11 ++++
>>  xen/arch/arm/include/asm/arm32/mpu.h     |  2 +
>>  xen/arch/arm/include/asm/arm64/mpu.h     |  2 +
>>  xen/arch/arm/include/asm/arm64/sysregs.h |  4 ++
>>  xen/arch/arm/include/asm/cpufeature.h    | 13 +++-
>>  xen/arch/arm/include/asm/domain.h        |  4 ++
>>  xen/arch/arm/include/asm/domain_build.h  | 21 +++++++
>>  xen/arch/arm/include/asm/mpu/p2m.h       |  7 +++
>>  xen/arch/arm/include/asm/p2m.h           |  5 ++
>>  xen/arch/arm/include/asm/processor.h     |  8 +++
>>  xen/arch/arm/mpu/arm32/mm.c              | 17 +++++
>>  xen/arch/arm/mpu/arm64/mm.c              | 18 ++++++
>>  xen/arch/arm/mpu/p2m.c                   | 72 ++++++++++++++++++++-
>>  xen/include/public/arch-arm.h            |  6 ++
>>  xen/include/public/domctl.h              |  4 +-
>>  18 files changed, 353 insertions(+), 9 deletions(-)
>=20
> I am okay to have this patch series in the current release:
>  Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks, I will send the v6 shortly and CC you as well in the cover letter.

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:32:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:32:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306979.1578702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMp6J-0001ts-EK; Tue, 12 May 2026 15:32:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306979.1578702; Tue, 12 May 2026 15:32:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMp6J-0001tk-Av; Tue, 12 May 2026 15:32:51 +0000
Received: by outflank-mailman (input) for mailman id 1306979;
 Tue, 12 May 2026 15:32:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMp6H-0001te-LA
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:32:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMp6H-00ALJ3-1x
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:32:49 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a03481b-e002-0a2a0a5209dd-0a2a4508e73a-8
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:32:49 +0200
Received: from [209.85.221.46] (helo=mail-wr1-f46.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a034820-63b5-0a2a45080019-d155dd2eb916-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:32:49 +0200
Received: by mail-wr1-f46.google.com with SMTP id
 ffacd0b85a97d-453903ee4adso4957149f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:32:48 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4548e4bbebdsm36820959f8f.5.2026.05.12.08.32.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:32:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778599968; x=1779204768; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=krkCfLdJTeqwM34LMyW5fkxOOAUpw436Q9/r8m7cEBs=;
        b=PiUTZawceiCxC4+PPVDXlszVHhFkvL5C6qd8BoYa77CruMArR0jR/31ZyLbMP42r+f
         NuFE9SfUhS1UOLWRpXZF5uzSEdYsnQoLFVMtgMmd0FRpPpquZqPqFjrbIovhmgUT2czt
         MbO6x31fzWDB/DHEGPny7L+LJ9MCiP7GcK4qq1Ra/UIjbTspEYFia1nnnM7oTrAzGbY3
         aLuXBpBq574/yqg6ZeiQ6Tg+hPq4T26wAhAx1tx/90mymarAPrCio9IRGPxe3eWqqjvK
         3vnw92yNazz82nzf+mHGeUdvSZLTgb5SRSPBAqmKHPXIwQUFGxP1hOLajh9Fgd+BqgOP
         UxFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778599968; x=1779204768;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=krkCfLdJTeqwM34LMyW5fkxOOAUpw436Q9/r8m7cEBs=;
        b=rF5jgnH+wfWy5BzVStuOisHIDTesgMXyb5R4g/5xtRFfljubJlMpMtXwpylC6YW7n1
         rGHNakZWam8Vt/kcwmCL/eiR2nR5cIQm0E36cGWB/Uva56aE082ja5lZ2OlwdK9myecM
         nPxqr5+zHpuxQcGL1Db5mYEJS9ufya41LCnAYFpB5hkxfr5om6yrX5IavoCcdheaV0TJ
         3GeuitqfGd8KQWB6663vktKMZAYyzXUxVIZkFTcWgbVJJQ3H4gAymxIk8fKuZMHOmLiZ
         fVEi7uqbq9EwGS9n1pyC3WKxMBJxQRUMlTMFTBYXp5pNzt8gX17+zK7UM+FNnE+xrY6M
         0orQ==
X-Forwarded-Encrypted: i=1; AFNElJ+/Ukan4UFnY59ENrgwVcB+ufJfytq2Vj4m0+Haqj5MsvftL7UcLNNor+7yOgfA4uxNIisc1APeRIw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxmSm77MLg5UZUEDizpL1+X0cyGOklxII4ls9e6T1aiWEFzVG4l
	v1Ly2DzvF9c3fIyRLru8p2NQ1NVK0v5PINDT1yuBjeIZVrvhX9s/s6ra
X-Gm-Gg: Acq92OGkiU0FyoSrk89qNWAgda5hQONsa7FMiuuA1L45atiuXU44hZ+3/t0cdpECoDV
	GycgdjQjJTqm+WrFgZdrlxvVeMZf5hvarhmVCAzlFxP/Yt2wMnTBXbIytFmLssI94X0wVef2Fed
	l6dfFb/L9us6T0HOLqO2AGhjIR6LfvXESldGTRawLFKqzqdU/HDLNhdOxzoxJt42wgItYzLC6A5
	x6iHoGGeHyzH62fIDMnMwP3GS944fY9CYc+KmuQObevfECb533u5KRC52B2RxMNGpmQ1vJcuTCk
	bFZwyMGG1TKL0rOkJhHn5ylcxtcsnV8+aMunFRaiyNcDLlxjJqYB8AC3F8kW9Xab9xvbX1sxSW/
	82s1yP8H9Avq345Un6QfxQytvSzkaTZCEB8MhKnuKX1yUkmFvmp7aqo7sgIEJw9oATvaEoQd+5Y
	k1DcLA44G5wPoXFhg3g0+96xvJCvbgc63W8o9m028aIVf/gCpd3+wVl+CeJLKqw6Xhp+62radqw
	AeTv1WiKzLCUw==
X-Received: by 2002:a05:6000:2387:b0:43d:77e1:6a69 with SMTP id ffacd0b85a97d-456a4ac992fmr21377448f8f.38.1778599968449;
        Tue, 12 May 2026 08:32:48 -0700 (PDT)
Message-ID: <b39eb91c-c071-4f47-84e3-028f54c3f4eb@gmail.com>
Date: Tue, 12 May 2026 17:32:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22(?) v2] gnttab: simplify (really: drop)
 gnttab_set_frame_gfn()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Rafal Wojtczuk <rafal.wojtczuk@7bulls.com>
References: <6e3dbb4f-5849-4525-8f8b-a2818c39da2d@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <6e3dbb4f-5849-4525-8f8b-a2818c39da2d@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1778599969-C5585DB1-A087730E/10/73395122804
X-purgate-type: spam
X-purgate-size: 829



On 5/12/26 4:46 PM, Jan Beulich wrote:
> It's not really doing anything for valid GFNs, which renders its one use
> site pretty pointless. The other isn't so much about setting anything, but
> rather about clearing.
> 
> The main point here, however, is about Rafal spotting the double
> fetching of the GFN (first in gnttab_unpopulate_status_frames(), then
> again in gnttab_set_frame_gfn()). Re-purpose the macro parameter to pass
> in the already fetched GFN, while dropping the no longer used parameters.
> 
> As the result is a mere wrapper around guest_physmap_remove_page(), drop
> the hook altogether.
> 
> Suggested-by: Rafal Wojtczuk <rafal.wojtczuk@7bulls.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 12 15:34:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:34:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306988.1578711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMp7T-0002RV-RH; Tue, 12 May 2026 15:34:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306988.1578711; Tue, 12 May 2026 15:34:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMp7T-0002RO-OG; Tue, 12 May 2026 15:34:03 +0000
Received: by outflank-mailman (input) for mailman id 1306988;
 Tue, 12 May 2026 15:34:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMp7T-0002RI-4Y
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:34:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMp7S-00ALYr-6z
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:34:02 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034867-5cb7-0a2a0a5109dd-0a2a4509dbf6-10
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:34:02 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034869-2497-0a2a45090019-d155802cc8e7-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:34:02 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-4891e5b9c1fso53004525e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:34:02 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e8f3c65f2sm36321405e9.1.2026.05.12.08.34.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:34:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Content-Language:Cc:To:Subject:From:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778600041; x=1779204841; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=DVlAjN7oCtdQ+4Y1t/rIyBl6pNsqatvAE/XRuXnvxyw=;
        b=Wo4Fv1UPZAh+6cUNakNZvvUa0IPFVH86r80V8Cl9vyB/eiKPIe4JH9+lqYfC3RosGy
         Ti3N3Nm9FylAc38+haKHQ+Ooo/j+/qWCD1ha3rZUx73jEbVnBaM4wcDQ6ENfbGsB1Zl7
         7WlLDwNNmnrn56Fp6VEh52QGGO6dmpf9E//eKXUkxKLxRvpFf1DQ9G2trgAFZXn9x+Po
         JrEpN/E48r0s4DO0kxSPUA1TsmtkTfYE160CtuMxKBiYVj1NsRf9R92yuc7mWG54iOmT
         FPEzm32rmz6hyrga9S+KPsFXlmhVmEUr0UfZx0KxHuYXOfxlN/Tf7GGP3gHc7t7uB3H0
         Ov6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778600041; x=1779204841;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=DVlAjN7oCtdQ+4Y1t/rIyBl6pNsqatvAE/XRuXnvxyw=;
        b=IyG3TeLhgVtEr/EzPcyM74sDupiZdyOu/3ikXxEQlwb+Q64v9uMveeIf1FIfHl5SqI
         mVlLaFZs+F0hgOqKXP7N5XLkIoiQH/Y/xs0URnniAUK2Xf1rHl3oS5eeIt7ipwnyG5vB
         Eqqra8m0HMEna1HcyN5QQs/bg/VIZkNUt5Cf3nNb4KcMIkGFsolMKINYRI2DPtwBWnZI
         JGdJ5TvADJqFImFHCWSfIgdzXEve44cLh0x1eAQqo74Qz/ZzG7XVL4RNZNOaRu642fOq
         2pvAF+hkBuZ6mw062cHuMkJMspL1cdbjG1wOmOyP5HC3VR4CymYMBVFKuQOHde4Vmm9C
         KR0w==
X-Gm-Message-State: AOJu0YyzkgAvDRE8zJ5cV3nCZsBrRG4Whxf9Z1fu2r8aS1vBTOZNipab
	I0nqWFx8NEaT6f700DS6B57zXmPWfOWWKVPwpah6/Of3nKFQOcsOtO/5DwQ4Z/pBIcC8AABtSoL
	zCFw=
X-Gm-Gg: Acq92OHZbjICRgOMfu69uRAinmz5OA8DNNKIs8PpHGLvahDIRcKPhWOhgrNlvDwxsIm
	+t3M2BEw4PvogwWwc3g6PDHDchH/5f/ImByr/iPa9vP7Ria3SNth06MMKkdyaXPh73dk6cx4nrh
	5Gf7F78ZPbbjAUmqWlH9GMv0Eb+LK1iqU1wubaqJzz3M5188Kl+Dquz7IcacUC/hJ1LD6yq8zpk
	+n86npFF1g+oa49+JxCoDi+Kqux2FDvUroK78GtoDUomGnOOM57pfdxdNFYNevpXcrpzR39J8+5
	V1wiHuaxZ7rz0Q7k9o0pfdz3yUR68uVrXueXBUlSDkle3puypVZkMuEHPrywyKSLZaea5G/oK9e
	OWATLduUpFFwv2rltFG7O1ONJMSLTEhd2gDyMng7Ol4npLGJBar5ch+XLm5fpuaGU6mMx1AH413
	gt2/4DkKvlNvT6DfQLlQbBJei/voA4eXxiivxXnYBMFPQo5FuKQW1K63AEeE7vlZTF+AlzQKVvQ
	UAXItb2LPcF/0M=
X-Received: by 2002:a05:600c:1f85:b0:48e:8741:fd4d with SMTP id 5b1f17b1804b1-48e8fe72438mr54685065e9.18.1778600041540;
        Tue, 12 May 2026 08:34:01 -0700 (PDT)
Message-ID: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Date: Tue, 12 May 2026 17:34:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH for-4.22 v2 0/8] x86/mwait-idle: sync up with Linux 7.0-rc
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1778600042-3777AA53-922562DE/0/0
X-purgate-type: clean
X-purgate-size: 397

Includes a few custom changes, too.

1: arrange for BSP MSR adjustments during S3 resume
2: clean up BYT/CHT auto demotion disable
3: latch struct idle_cpu contents
4: move pre-initialized struct idle_cpu instances
5: Remove the 'preferred_cstates' parameter
6: drop const from struct cpuidle_state arrays
7: Add cmdline option to adjust C-states table
8: Add C-states validation

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 12 15:35:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:35:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306994.1578719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMp8z-0002wn-3t; Tue, 12 May 2026 15:35:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306994.1578719; Tue, 12 May 2026 15:35:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMp8z-0002wg-13; Tue, 12 May 2026 15:35:37 +0000
Received: by outflank-mailman (input) for mailman id 1306994;
 Tue, 12 May 2026 15:35:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMp8y-0002wY-7F
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:35:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMp8x-00HGoL-Gh
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:35:35 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0348c3-e002-0a2a0a5209dd-0a2a450794fc-26
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:35:35 +0200
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0348c7-229c-0a2a45070019-d155dd33b8ad-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:35:35 +0200
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-43d76dd4ee8so5264888f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:35:35 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491304505sm33585782f8f.22.2026.05.12.08.35.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:35:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778600135; x=1779204935; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+F18zTQ2tYhuJeL6OBgVxAMYMHPNiYmv6o58vYh8r4k=;
        b=OQKxYwGUB1j7rijXPZQ+DtPbrw+MKIcVxEZfMOjEU6xrBy2ogOVxlTJ1f4CSAolZjO
         VKp5plf/1Ridv+XFQDbfprO7192DMp80DiDkEwk1TPKtBJz/6D//GL7FFqCqynAwZXUg
         fexPyqelIRthaFPi9v33EqwgclBy5jCCGgVZLFHAW6k/u1O9s78Q5dysVE571zqlAFD9
         MX/dwIwIyEF7x6YkHRGMC1f6sU/bKdfsaKivV5dmdyZXeiyzHmkQdB0vfZmSnv2afJbz
         HzlZOvHd1g+2kSmdp7vEkKyxeZ36IcUL7eFmzKj2PHsaWYXDFBF6Dx6xXraI00cJwE7H
         FXwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778600135; x=1779204935;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+F18zTQ2tYhuJeL6OBgVxAMYMHPNiYmv6o58vYh8r4k=;
        b=GclHBz0L4AO2XV2QVUGbDYDkjNBJTk7vM7qcIXom5NRIQov2WFNXLnOwYLZrau4VLK
         abAyAe/lz6tvZaKeea93d3yjZ+sRWYcDrX6i+MOYccmU6h+5L71DwgVxl5H4WLrZVKuJ
         JpJMLubqL5kUGYvpTDxeBWGTw+Orb74nlKOk5JMuS04KHLwb01Gb213WDxj3v/4zXwQm
         lcFuVQdrv9UpYdfnL7bO377SQKGJuXkxhAEPbwpg2AJVbtMaIjMubmhSRdN3cWREtgP7
         F2zrUcbQ7XjtjXauBLvDFvOxNYMNx8RXcAjTTYKZnDGqRjKisQxHTDntjqU92agueF/v
         zjZQ==
X-Gm-Message-State: AOJu0YxMJVY7H33s5nSoxbrcmb637zedoJY2rmgOGoGym53K8mSbgHm4
	ftgMxXwlVcKJziCn1VxRXSYKdqO+iFDEYbOgh180opOpPj3Iqq5/I6cm1RAnGXmeYBTBmHR0Av0
	BFcw=
X-Gm-Gg: Acq92OGZE7dgxLd4Q+UinBrGfYwqEQyCJ5ZN7cTgxspUInG2/Vi6Kudekjj2aTtjrFg
	PX5jqx75Kp1C6sOhHIe+4Fnu1IojE5Lwx8FCt8fFmpkkdbDpJvCwxQQEahh/Z+GXXzRRt05QdOf
	7AnEFiFYubFFI8KshTi+lL6JIr2y1qUblrjYKueiO4dFKClUEaSx+7fiexd7tLZFKKxNx1JdQZ8
	yvGct3n+ZV6RUzZbGkKaMslyZrM37DNHcIbobrQ7xTHMFDJD9hzP1roOclHsLl8p1owom985Z0C
	JOTr9Fo1lJThZIja4XH+BPKDOV/07j/L7+S7/JocxcRjXGJsewLCTTHqhSj8/AFJybFp75M3ONJ
	LR5livL5aPeQRhOX65CkM2WE7krd87dCjZQ6YX+sRiVGMu7BkJmK0CNs+Z+EeMiin4o+z1jWOIC
	E4m3aDZGGri4yvYTY2i0wxZzQrgzbSb2nYKmzvsIpM9OguuT5wUWM2ZRmqkwH+/W87DiUi4Q8+X
	4yHXftFhC+H8yM=
X-Received: by 2002:a05:6000:3113:b0:456:15fa:9eba with SMTP id ffacd0b85a97d-456a4daccb9mr21661640f8f.43.1778600134763;
        Tue, 12 May 2026 08:35:34 -0700 (PDT)
Message-ID: <5c66cfb1-e234-4efa-9a01-88acb284e414@suse.com>
Date: Tue, 12 May 2026 17:35:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH for-4.22 v2 1/8] x86/mwait-idle: arrange for BSP MSR
 adjustments during S3 resume
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778600135-0AB70C48-33CB9FDF/0/0
X-purgate-type: clean
X-purgate-size: 3124

mwait_idle_cpu_init() is only called for APs, yet MSR writes will
typically need re-doing post-S3 even for the BSP. When multiple cores /
threads are present (and to come back online) in a package, for package
scope MSRs this may be covered by APs doing the writes, but we can't rely
on that.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/acpi/power.c
+++ b/xen/arch/x86/acpi/power.c
@@ -28,6 +28,7 @@
 #include <asm/io_apic.h>
 #include <asm/irq.h>
 #include <asm/microcode.h>
+#include <asm/mwait.h>
 #include <asm/prot-key.h>
 #include <asm/spec_ctrl.h>
 #include <asm/tboot.h>
@@ -299,6 +300,7 @@ static int enter_state(u32 state)
     acpi_sleep_post(state);
     if ( hvm_cpu_up() )
         BUG();
+    mwait_idle_resume();
     cpufreq_add_cpu(0);
 
  enable_cpu:
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -1677,6 +1677,28 @@ static int __init mwait_idle_probe(void)
 	return 0;
 }
 
+static void mwait_idle_cpu_tweak(unsigned int cpu)
+{
+	if (icpu->auto_demotion_disable_flags)
+		on_selected_cpus(cpumask_of(cpu), auto_demotion_disable, NULL, 1);
+
+	if (icpu->byt_auto_demotion_disable_flag)
+		on_selected_cpus(cpumask_of(cpu), byt_auto_demotion_disable, NULL, 1);
+
+	switch (icpu->c1e_promotion) {
+	case C1E_PROMOTION_DISABLE:
+		on_selected_cpus(cpumask_of(cpu), c1e_promotion_disable, NULL, 1);
+		break;
+
+	case C1E_PROMOTION_ENABLE:
+		on_selected_cpus(cpumask_of(cpu), c1e_promotion_enable, NULL, 1);
+		break;
+
+	case C1E_PROMOTION_PRESERVE:
+		break;
+	}
+}
+
 static int cf_check mwait_idle_cpu_init(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
@@ -1759,24 +1781,7 @@ static int cf_check mwait_idle_cpu_init(
 		dev->count++;
 	}
 
-	if (icpu->auto_demotion_disable_flags)
-		on_selected_cpus(cpumask_of(cpu), auto_demotion_disable, NULL, 1);
-
-	if (icpu->byt_auto_demotion_disable_flag)
-		on_selected_cpus(cpumask_of(cpu), byt_auto_demotion_disable, NULL, 1);
-
-	switch (icpu->c1e_promotion) {
-	case C1E_PROMOTION_DISABLE:
-		on_selected_cpus(cpumask_of(cpu), c1e_promotion_disable, NULL, 1);
-		break;
-
-	case C1E_PROMOTION_ENABLE:
-		on_selected_cpus(cpumask_of(cpu), c1e_promotion_enable, NULL, 1);
-		break;
-
-	case C1E_PROMOTION_PRESERVE:
-		break;
-	}
+	mwait_idle_cpu_tweak(cpu);
 
 	return NOTIFY_DONE;
 }
@@ -1808,6 +1813,14 @@ int __init mwait_idle_init(struct notifi
 	return err;
 }
 
+void mwait_idle_resume(void)
+{
+	if (!icpu)
+		return;
+
+	mwait_idle_cpu_tweak(smp_processor_id());
+}
+
 /* Helper function for HPET. */
 bool __init mwait_pc10_supported(void)
 {
--- a/xen/arch/x86/include/asm/mwait.h
+++ b/xen/arch/x86/include/asm/mwait.h
@@ -14,9 +14,12 @@
 #define MWAIT_ECX_INTERRUPT_BREAK	0x1
 
 void mwait_idle_with_hints(unsigned int eax, unsigned int ecx);
+
 #ifdef CONFIG_INTEL
+void mwait_idle_resume(void);
 bool mwait_pc10_supported(void);
 #else
+static inline void mwait_idle_resume(void) {}
 static inline bool mwait_pc10_supported(void)
 {
     return false;



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:36:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:36:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1306999.1578729 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMp9W-0003Nc-Bk; Tue, 12 May 2026 15:36:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1306999.1578729; Tue, 12 May 2026 15:36:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMp9W-0003NV-7x; Tue, 12 May 2026 15:36:10 +0000
Received: by outflank-mailman (input) for mailman id 1306999;
 Tue, 12 May 2026 15:36:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMp9U-0003NH-QH
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:36:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMp9U-00AQXI-6u
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:36:08 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0348dc-bab6-0a2a0a5309dd-0a2a4503a70c-40
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:36:08 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0348e8-672d-0a2a45030019-d1558032c526-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:36:08 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-488af9fdaa7so32813645e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:36:08 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e8f410558sm41030815e9.5.2026.05.12.08.36.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:36:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778600167; x=1779204967; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9ZzX9y9DzM/pf6lRtwdmKQ1uBuLJ5k1HbTo5s1srMNQ=;
        b=O5yNjw6fI55+fKspXzZ/e+w7J1NmeGG8U48oFiwJSM6Caejs5QX4IN/qWtOLdQSbBa
         5ROnXXrVgMzrqUl9TWEsmwADvA44QZr16xQCuFgYqXH6wkm8qUHLhPV6G/T/KjCgezw7
         Acm6TC2CuOH7WAKMbhPLkdd8xmgYBt/w4R1ktKX76yDOHDkoFewTREcqxgvXGGDKBque
         0irBF2D+Dt4Vwoz+0xrMFL/GQvcOPCLeeseEM9O4+lb3xRl33tjMYI/amKzmJDMkKh17
         yPaBiIlkE0CJvhWp5Y6BzSl3i7YlMO7YMP27xCim3m1O9DcB+TodBHLoxc07Nc1OZFMA
         ELlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778600167; x=1779204967;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9ZzX9y9DzM/pf6lRtwdmKQ1uBuLJ5k1HbTo5s1srMNQ=;
        b=ZYZXXT3hfMhYbKgL8LdTQArA6jUnOcmgc33QFfBvV2dp7qCjNkoVWpLJnW1dB2NXec
         r0wElmH9bKcIfaPbJh8CW34X9r8uQWXp41DuuDgrWbGLd0rBSm540E9ISZk/decqsuij
         jKUEzRS6vbftJUkaCjCR6RhRXwz75ahe9mkcgvifGXq+SzcxmU0ejb6/IT5wrj7E6J92
         jYA8tPoyLRyPtnImvlPHIVRdISkqET7vNrJeWhMVW6Ogjj00OuaMg/sdvfGiUnb8jjmV
         VxcvoiQHly6eBskQE5zscXmuv8ZJKp86rihpBcUZoAWwlTkkVUg8/LVGDRBtIJ3ed5hs
         8x8Q==
X-Gm-Message-State: AOJu0Yx78e7x68lknRzLHQ/MuSSyIW9nonEf65N+UUuh98cFeFKPVmrO
	95KQGsSvDhNkcDu6IM9jOpUAPqlQOBKwPBKlKTdYrsx3f4YCpZd6jxGbkEoM+RURtID8b4HRTZL
	Vzcw=
X-Gm-Gg: Acq92OHEii2EF9xfHLw3m5hHD0zQFl1Co9ATmHvYK4cmn0fRZMh07Q2DK2XL0Wx30jD
	Mbnrlv2ujerRAaIWqMh1U0WtwNjpNZ8h0reGRJsjCMuHK3WqM11M+fom4TJiDgTA8h/M6/D4NdO
	4XTjzWiytd6xmvgeFNSDeoXMjvTc+kRHuhcg4jvOEZR3IDCJap4czdgkR3VjHk30CihkiKA0W+U
	A/mwcVRrSKzW3DHcQJtcCiAG9AMHiLJSrBTcr968ah/wLKe76Lhfss0MJARmKokw4VzP2ldoN4f
	mRVUqUZiuLokYvPo/RPvfuQ8VvVhuSv/B7tZwcWdmWglhc7neouLU6TjknobSqHMiqk2juhlma8
	Qx23rj/eS/TBdOznuHkuHRf4uxAvagVL84SkWztD2nm0apXB3wrdqdZifxXUn4zyv8UU7xIirer
	fQhfcg4HYAh1t9NgROCXACy5Ir+kDl//a6AWE5oTsYFLQN/eu2OtRh5ZCkBGc5jOs8+zJGuXmAn
	zo/PoLZAJt47VQ=
X-Received: by 2002:a05:600c:3e88:b0:48a:55d8:7882 with SMTP id 5b1f17b1804b1-48e8fe5494bmr53983685e9.9.1778600167550;
        Tue, 12 May 2026 08:36:07 -0700 (PDT)
Message-ID: <aa14f45e-44fa-4cfc-8c51-d48548d55f3a@suse.com>
Date: Tue, 12 May 2026 17:36:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH for-4.22 v2 2/8] x86/mwait-idle: clean up BYT/CHT auto
 demotion disable
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1778600168-3B96D938-1DFE7A89/0/0
X-purgate-type: clean
X-purgate-size: 3850

Bay Trail (BYT) and Cherry Trail (CHT) platforms have a very specific way
of disabling auto-demotion via specific MSR bits. Clean up the code so that
BYT/CHT-specifics do not show up in the common 'struct idle_cpu' data
structure.

Remove the 'byt_auto_demotion_disable_flag' flag from 'struct idle_cpu',
because a better coding pattern is to avoid very case-specific fields like
'bool byt_auto_demotion_disable_flag' in a common data structure, which is
used for all platforms, not only BYT/CHT. The code is just more readable
when common data structures contain only commonly used fields.

Instead, match BYT/CHT in the 'intel_idle_init_cstates_icpu()' function,
and introduce a small helper to take care of BYT/CHT auto-demotion. This
is consistent with how platform-specific things are done for other
platforms.

No intended functional changes.

Inspired by (and description largely taken from) Linux'es c93d13b661a6
("intel_idle: clean up BYT/CHT auto demotion disable").

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Init "first" to "true" in mwait_idle_cpu_init().

--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -103,7 +103,6 @@ struct idle_cpu {
 	 * Indicate which enable bits to clear here.
 	 */
 	unsigned long auto_demotion_disable_flags;
-	bool byt_auto_demotion_disable_flag;
 	enum c1e_promotion c1e_promotion;
 };
 
@@ -1144,7 +1143,7 @@ static void cf_check auto_demotion_disab
 	wrmsrl(MSR_PKG_CST_CONFIG_CONTROL, msr_bits);
 }
 
-static void cf_check byt_auto_demotion_disable(void *dummy)
+static void byt_cht_auto_demotion_disable(void)
 {
 	wrmsrl(MSR_CC6_DEMOTION_POLICY_CONFIG, 0);
 	wrmsrl(MSR_MC6_DEMOTION_POLICY_CONFIG, 0);
@@ -1195,13 +1194,11 @@ static const struct idle_cpu idle_cpu_sn
 static const struct idle_cpu idle_cpu_byt = {
 	.state_table = byt_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
-	.byt_auto_demotion_disable_flag = true,
 };
 
 static const struct idle_cpu idle_cpu_cht = {
 	.state_table = cht_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
-	.byt_auto_demotion_disable_flag = true,
 };
 
 static const struct idle_cpu idle_cpu_ivb = {
@@ -1677,14 +1674,11 @@ static int __init mwait_idle_probe(void)
 	return 0;
 }
 
-static void mwait_idle_cpu_tweak(unsigned int cpu)
+static void mwait_idle_cpu_tweak(unsigned int cpu, bool bsp)
 {
 	if (icpu->auto_demotion_disable_flags)
 		on_selected_cpus(cpumask_of(cpu), auto_demotion_disable, NULL, 1);
 
-	if (icpu->byt_auto_demotion_disable_flag)
-		on_selected_cpus(cpumask_of(cpu), byt_auto_demotion_disable, NULL, 1);
-
 	switch (icpu->c1e_promotion) {
 	case C1E_PROMOTION_DISABLE:
 		on_selected_cpus(cpumask_of(cpu), c1e_promotion_disable, NULL, 1);
@@ -1697,12 +1691,24 @@ static void mwait_idle_cpu_tweak(unsigne
 	case C1E_PROMOTION_PRESERVE:
 		break;
 	}
+
+	/* Pkg-scope MSRs on 1-socket-only systems need writing only once. */
+	if (!bsp)
+		return;
+
+	switch (boot_cpu_data.vfm) {
+	case INTEL_ATOM_SILVERMONT:
+	case INTEL_ATOM_AIRMONT:
+		byt_cht_auto_demotion_disable();
+		break;
+	}
 }
 
 static int cf_check mwait_idle_cpu_init(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
 	unsigned int cpu = (unsigned long)hcpu, cstate;
+	static bool first = true;
 	struct acpi_processor_power *dev = processor_powers[cpu];
 
 	switch (action) {
@@ -1781,7 +1787,8 @@ static int cf_check mwait_idle_cpu_init(
 		dev->count++;
 	}
 
-	mwait_idle_cpu_tweak(cpu);
+	mwait_idle_cpu_tweak(cpu, first);
+	first = false;
 
 	return NOTIFY_DONE;
 }
@@ -1818,7 +1825,7 @@ void mwait_idle_resume(void)
 	if (!icpu)
 		return;
 
-	mwait_idle_cpu_tweak(smp_processor_id());
+	mwait_idle_cpu_tweak(smp_processor_id(), true);
 }
 
 /* Helper function for HPET. */



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:36:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:36:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307004.1578737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMp9s-0003lj-HG; Tue, 12 May 2026 15:36:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307004.1578737; Tue, 12 May 2026 15:36:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMp9s-0003lc-EX; Tue, 12 May 2026 15:36:32 +0000
Received: by outflank-mailman (input) for mailman id 1307004;
 Tue, 12 May 2026 15:36:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMp9q-0003lF-NC
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:36:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMp9q-00AQbz-47
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:36:30 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0348fa-bab6-0a2a0a5309dd-0a2a4501acb2-8
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:36:30 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0348fd-c1f2-0a2a45010019-d1558032d188-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:36:30 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-48d146705b4so69766415e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:36:30 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8d15e09sm5644885e9.3.2026.05.12.08.36.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:36:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778600189; x=1779204989; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+p/Ij2CgQ3Fd9f/uexuTOqD95AbabIMcKqaBQDpzCqU=;
        b=KvNEsXF1uAgYhkqcMYcyThaf1izdepbk4naGvQxLb57cyuU9sm5dDY8RTnLU9Dw/zP
         xT7Nma28BGCWIO1Qv/T6GtARH6RuSNGOVy3Wlz9dwvtPSReMVENN/zJWFDwVGreQ48+6
         3GclYMYPU7QYRdu5ToKu85OsEWZgW/L0cAazVr1XzX6NzwuTY7OdaBjU6c+vGJdBlli3
         TtZqyXCGp7ctxCowTqPRiDTCT4cG8cXdDwZ+e+/MshQh/vgpctjBkPSiceonrw9zxrpW
         bB8VyAgdOybuheHfT6TNjgEQzQoYfV86pQmssW8gAv9fB2aGHF7IWuAqsz99NIw1XtTd
         POlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778600189; x=1779204989;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+p/Ij2CgQ3Fd9f/uexuTOqD95AbabIMcKqaBQDpzCqU=;
        b=dVxXUvM5X8x/dMNFXVV9P8Zah6TSWhd1NtWGMdgUcS2Yl02AXrl7RlW491AIYypSQz
         xi1E9XSQV7sgCS75H4LeMNpd5gQuQ4OmiozG922gNwVVzm+wtQl6vW3LRFhvQUU7LJww
         qm2PluVgw0JhqC5GKvMYHVDOH5bCmPvxqNHtZR2kwuJn0BYlB/EXtRYNSVu3LM7S94By
         wxgPvYL0qFIk3bcf7WJZgE9Y9NNNfGd81rd26G6Q+gyElI4YtuAl9vfAzMNVgdaRchRt
         254vGkIaeHxaxLayTQYWkQdIy0XneSDVL3Dg43b7lw8My5o5rdauBfDyH8RiqFt29YVy
         S/Sw==
X-Gm-Message-State: AOJu0YzOzC65rb1ScutTyfBT9xm2xqKwQp0Ag0Kca3vYD5WmZfWsBH2p
	d5hMJTHO9mBKXY3a0Jb+lICKngdJvyY7HwvHLiSFo+Va3AUbsvuSUOYo/Sly/1MnqjhQhiQWW1g
	cAno=
X-Gm-Gg: Acq92OF6pDSVNM4JNsUzhA8JFpTDRuzw5s8J7MlLb/nFf4uRsdzLv0zLbqdAeqUsIjS
	Pvk1oMsQg6nN+x2RZd5Etg6rDOBiOKffJCdmXFpGnt3zl/hBthZMLcFBUpqOCocFC3us1SfPEtH
	+AMItInbLDf2jWq2peRHkxpulUYOOmsdQA4YTL48jq1SIfpxEt4YtAb5Ifj5tIX8jiwOrkzxsq8
	T7hWX+JA5hn2y+NbLjqUttHe1stpCFUDtzGuz4LsvXx7psSyRyhoy3CH67KqfzsxRF88Zkkyrje
	bBdhQjSyXiMnV2Ss1dYc1elf0JnjCqxhzC7VvFuFRF8Mc5U/96ilHMQezMu5h6UojisS+ClU0Qk
	6KcnGZFxIR8hLB4pWAeyhOUDdWX059uRdSnCIRz/2GSoY58DQ5ZbqZKr/UQaOJO2EmarR2pBY4Y
	ope6ShIYQ39bDgC6I66Una+saOwJiuzMcU328ds0Dj5kNopC4kP8dXdA1O6ukRaJma7egVRLmSc
	+FiPWr23eHFqDNWh4l2rII5IA==
X-Received: by 2002:a05:600c:3e0e:b0:48a:52f2:a0f1 with SMTP id 5b1f17b1804b1-48e8fe73355mr58352175e9.18.1778600189596;
        Tue, 12 May 2026 08:36:29 -0700 (PDT)
Message-ID: <696b4fe5-d8a5-4768-9b24-5c2d2975e686@suse.com>
Date: Tue, 12 May 2026 17:36:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH for-4.22 v2 3/8] x86/mwait-idle: latch struct idle_cpu
 contents
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778600190-B695FFF4-1EE8C1D0/0/0
X-purgate-type: clean
X-purgate-size: 5850

Rather than storing a pointer (and needing to keep all struct instances in
memory post-init), and rather than (like the Linux counterpart has it)
keeping individual variables, simply copy the respective structure
instance. By implication, subsequent updates now need doing to the copy.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>

--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -106,14 +106,14 @@ struct idle_cpu {
 	enum c1e_promotion c1e_promotion;
 };
 
-static const struct idle_cpu *__ro_after_init icpu;
+static struct idle_cpu __ro_after_init icpu;
 
-static const struct cpuidle_state {
+struct cpuidle_state {
 	char		name[16];
 	unsigned int	flags;
 	unsigned int	exit_latency; /* in US */
 	unsigned int	target_residency; /* in US */
-} *__ro_after_init cpuidle_state_table;
+};
 
 #define CPUIDLE_FLAG_DISABLED		0x1
 /*
@@ -1097,7 +1097,7 @@ static void cf_check mwait_idle(void)
 	 * leave_mm() to avoid costly and often unnecessary wakeups
 	 * for flushing the user TLB's associated with the active mm.
 	 */
-	if (cpuidle_state_table[].flags & CPUIDLE_FLAG_TLB_FLUSHED)
+	if (icpu.state_table[].flags & CPUIDLE_FLAG_TLB_FLUSHED)
 		leave_mm(cpu);
 #endif
 
@@ -1139,7 +1139,7 @@ static void cf_check auto_demotion_disab
 	u64 msr_bits;
 
 	rdmsrl(MSR_PKG_CST_CONFIG_CONTROL, msr_bits);
-	msr_bits &= ~(icpu->auto_demotion_disable_flags);
+	msr_bits &= ~icpu.auto_demotion_disable_flags;
 	wrmsrl(MSR_PKG_CST_CONFIG_CONTROL, msr_bits);
 }
 
@@ -1371,10 +1371,10 @@ static void __init ivt_idle_state_table_
 		/* 1 and 2 socket systems use default ivt_cstates */
 		break;
 	case 2: case 3:
-		cpuidle_state_table = ivt_cstates_4s;
+		icpu.state_table = ivt_cstates_4s;
 		break;
 	default:
-		cpuidle_state_table = ivt_cstates_8s;
+		icpu.state_table = ivt_cstates_8s;
 		break;
 	}
 }
@@ -1525,14 +1525,12 @@ static void __init adl_idle_state_table_
 		adl_l_cstates[1].flags |= CPUIDLE_FLAG_DISABLED;
 
 		/* Disable C1E by clearing the "C1E promotion" bit. */
-		idle_cpu_adl.c1e_promotion = C1E_PROMOTION_DISABLE;
-		idle_cpu_adl_l.c1e_promotion = C1E_PROMOTION_DISABLE;
+		icpu.c1e_promotion = C1E_PROMOTION_DISABLE;
 		return;
 	}
 
 	/* Make sure C1E is enabled by default */
-	idle_cpu_adl.c1e_promotion = C1E_PROMOTION_ENABLE;
-	idle_cpu_adl_l.c1e_promotion = C1E_PROMOTION_ENABLE;
+	icpu.c1e_promotion = C1E_PROMOTION_ENABLE;
 }
 
 /*
@@ -1593,6 +1591,7 @@ static int __init mwait_idle_probe(void)
 {
 	unsigned int eax, ebx, ecx;
 	const struct x86_cpu_id *id;
+	const struct idle_cpu *idle_cpu;
 	const char *str;
 
 	if (boot_cpu_data.vendor != X86_VENDOR_INTEL)
@@ -1627,8 +1626,8 @@ static int __init mwait_idle_probe(void)
 
 	pr_debug(PREFIX "MWAIT substates: %#x\n", mwait_substates);
 
-	icpu = id->driver_data;
-	cpuidle_state_table = icpu->state_table;
+	idle_cpu = id->driver_data;
+	icpu = *idle_cpu;
 
 	if (boot_cpu_has(X86_FEATURE_XEN_ARAT))
 		lapic_timer_reliable_states = LAPIC_TIMER_ALWAYS_RELIABLE;
@@ -1644,7 +1643,7 @@ static int __init mwait_idle_probe(void)
 		const char *ss;
 
 		do {
-			const struct cpuidle_state *state = icpu->state_table;
+			const struct cpuidle_state *state = idle_cpu->state_table;
 			unsigned int bit = 1;
 
 			ss = strchr(str, ',');
@@ -1676,10 +1675,10 @@ static int __init mwait_idle_probe(void)
 
 static void mwait_idle_cpu_tweak(unsigned int cpu, bool bsp)
 {
-	if (icpu->auto_demotion_disable_flags)
+	if (icpu.auto_demotion_disable_flags)
 		on_selected_cpus(cpumask_of(cpu), auto_demotion_disable, NULL, 1);
 
-	switch (icpu->c1e_promotion) {
+	switch (icpu.c1e_promotion) {
 	case C1E_PROMOTION_DISABLE:
 		on_selected_cpus(cpumask_of(cpu), c1e_promotion_disable, NULL, 1);
 		break;
@@ -1732,11 +1731,11 @@ static int cf_check mwait_idle_cpu_init(
 
 	dev->count = 1;
 
-	for (cstate = 0; cpuidle_state_table[cstate].target_residency; ++cstate) {
+	for (cstate = 0; icpu.state_table[cstate].target_residency; ++cstate) {
 		unsigned int num_substates, hint, state;
 		struct acpi_processor_cx *cx;
 
-		hint = flg2MWAIT(cpuidle_state_table[cstate].flags);
+		hint = flg2MWAIT(icpu.state_table[cstate].flags);
 		state = MWAIT_HINT2CSTATE(hint) + 1;
 
 		if (state > max_cstate()) {
@@ -1752,10 +1751,10 @@ static int cf_check mwait_idle_cpu_init(
 			continue;
 
 		/* if state marked as disabled, skip it */
-		if (cpuidle_state_table[cstate].flags &
+		if (icpu.state_table[cstate].flags &
 		    CPUIDLE_FLAG_DISABLED) {
 			printk(XENLOG_DEBUG PREFIX "state %s is disabled\n",
-			       cpuidle_state_table[cstate].name);
+			       icpu.state_table[cstate].name);
 			continue;
 		}
 
@@ -1773,15 +1772,15 @@ static int cf_check mwait_idle_cpu_init(
 		cx->type = state;
 		cx->address = hint;
 		cx->entry_method = ACPI_CSTATE_EM_FFH;
-		cx->latency = cpuidle_state_table[cstate].exit_latency;
+		cx->latency = icpu.state_table[cstate].exit_latency;
 		cx->target_residency =
-			cpuidle_state_table[cstate].target_residency;
-		if ((cpuidle_state_table[cstate].flags &
+			icpu.state_table[cstate].target_residency;
+		if ((icpu.state_table[cstate].flags &
 		     CPUIDLE_FLAG_IRQ_ENABLE) &&
 		    /* cstate_restore_tsc() needs to be a no-op */
 		    boot_cpu_has(X86_FEATURE_NONSTOP_TSC))
 			cx->irq_enable_early = true;
-		if (cpuidle_state_table[cstate].flags & CPUIDLE_FLAG_IBRS)
+		if (icpu.state_table[cstate].flags & CPUIDLE_FLAG_IBRS)
 			cx->ibrs_disable = true;
 
 		dev->count++;
@@ -1822,7 +1821,7 @@ int __init mwait_idle_init(struct notifi
 
 void mwait_idle_resume(void)
 {
-	if (!icpu)
+	if (!icpu.state_table)
 		return;
 
 	mwait_idle_cpu_tweak(smp_processor_id(), true);



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:36:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:36:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307009.1578747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpAB-0004Gq-S7; Tue, 12 May 2026 15:36:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307009.1578747; Tue, 12 May 2026 15:36:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpAB-0004Gj-Og; Tue, 12 May 2026 15:36:51 +0000
Received: by outflank-mailman (input) for mailman id 1307009;
 Tue, 12 May 2026 15:36:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMpAA-0004G2-47
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:36:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpA9-00AM4u-H4
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:36:49 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034911-bab6-0a2a0a5309dd-0a2a4508c200-0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:36:49 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034911-63b5-0a2a45080019-d1558029e984-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:36:49 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-4891d7164ddso32279685e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:36:49 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8d15e09sm5653765e9.3.2026.05.12.08.36.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:36:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778600209; x=1779205009; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Oi+Og7lmHi8fzPQHLlkJ8CT1xlB+s06Eq97nVFSpVO8=;
        b=IeH7ecdVEaaBi/1qTxUZOeRvkKadcscVEzGutApZIKleWkrxDQwM64SWyfQKny54z9
         9QQA7WxJFgh81G5NUFcMo7xdxtCjkN6Ao7YAG1MTDEgrwFb6egSmclvbryI+cHDRCuyA
         q7gA93TxmF8UANSu8rWdPxQsHe2M2+kOS/SyODjPAt/4w8/4AAd+w7B7AesxLnnEJ4Fr
         1DPhiYHsIMtBHJ3kBWjcSFrI4r8FI64lXf5C1Sx77X5w111bdSPve7OjLtWNJQY8E2BE
         fwrfN3B7PWk52RR9lG7SMrA+LmAMfsMQ2OYiU2ff2AO9H4zr6wtPOKbjm9MNbFXUegXa
         XdiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778600209; x=1779205009;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Oi+Og7lmHi8fzPQHLlkJ8CT1xlB+s06Eq97nVFSpVO8=;
        b=LWvEFBwEjjz4puR9jTHvcUhfJ2O8Y+MQN2494cBwqesK28GDWgvUTgtZ+Z0MVWVtQj
         BIdASPpspN6Il+sKsZrZbEagt1U8mj9oDZlDViFy+elLplN6RWMePQf1vQRsh266MDbT
         bT8IqpoAD5mo60axpyxk3RU8i3M8ehUHEZkqpkuAws8KbfwH9odhQt+FaqG52KPLRkYc
         cp5S/X0SrVEtxQ3gCswuG75ne41PVvYv+mGF9n986qhqOMOKqhPs4zW4VXTyXEaMPeuB
         WnKUTnxGJ1eduZPbQetbCqXniM7hElF1BPTyHsj3ifraQ3bG4B9GMBWfxr37RtW5pxxG
         9xWA==
X-Gm-Message-State: AOJu0YyP+RTAsCj+B8BnD8bsfOElgEw/Gxve1pS4COocYqaHXyxNpTAB
	jF5/Oie2Yiy20QREWNMTpeEfdiaZ94YZyfAo/vOqHNq3azq65/AgMAiMFTw/yU27WC6Ht89pGTU
	CqFk=
X-Gm-Gg: Acq92OHJ5mNRsb+xXimGwQK4jajjFqT/XTCjgMHDvknrmNv+i8cmROCylWVZw4hs4sR
	HvJgG9xJNmePgoaKLsem9smjLhnT7EstxLzQUdDoLeXZCGjSStqHNTS3zMqO/KVtFilH7VHUtpO
	Whn0EU5WRhSYgLSfyWVZjEfknhWQW5cFgywDc8vCtk8wNkSeszbEzKJ4+op5BZFlVSn1IjIgdei
	hRBq3phHua1PjrXHPgv9E/tz8DYMjLMYttfqtt/mY2sTUH/8prUJnTQLk213idnho8h+fSRgvfE
	7pZyB8ETaG4bAWWBCYc4XM9el5iK0OMzsUG/QaIlLtIQVY8DBa5YMa29xVQPZgfCJ2tLbWnq/4K
	qt4aiIYkLk/k1ikt1hEYJCkTcvfTDFKuWujQeHdvIiaeGVXHtSlqx/vGK9IapL/hZQOVSzF88+9
	zEi86jw7OgFzBeBEQ178ddHzfOmLca0ZegSNxvSxMzzR8Tl+CD7CAZGGpEA8s3fYPL9sivV5UL2
	PoZizrmvu6T+og=
X-Received: by 2002:a05:600c:6290:b0:485:3f30:6250 with SMTP id 5b1f17b1804b1-48e51f3fd58mr510167455e9.20.1778600208885;
        Tue, 12 May 2026 08:36:48 -0700 (PDT)
Message-ID: <2e8a4a74-fae9-4c75-aa98-f4b0dc7ac6bf@suse.com>
Date: Tue, 12 May 2026 17:36:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH for-4.22 v2 4/8] x86/mwait-idle: move pre-initialized struct
 idle_cpu instances
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1778600209-BCD63DB1-4E30620E/0/0
X-purgate-type: clean
X-purgate-size: 5568

Now that they're not referenced anymore post-init, they can themselves
move into .init.rodata. (idle_cpu_adl{,_l} can also become const in the
first place.)

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>

--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -1167,132 +1167,132 @@ static void cf_check c1e_promotion_disab
 	wrmsrl(MSR_IA32_POWER_CTL, msr_bits);
 }
 
-static const struct idle_cpu idle_cpu_nehalem = {
+static const struct idle_cpu __initconstrel idle_cpu_nehalem = {
 	.state_table = nehalem_cstates,
 	.auto_demotion_disable_flags = NHM_C1_AUTO_DEMOTE | NHM_C3_AUTO_DEMOTE,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_atom = {
+static const struct idle_cpu __initconstrel idle_cpu_atom = {
 	.state_table = atom_cstates,
 };
 
-static const struct idle_cpu idle_cpu_tangier = {
+static const struct idle_cpu __initconstrel idle_cpu_tangier = {
 	.state_table = tangier_cstates,
 };
 
-static const struct idle_cpu idle_cpu_lincroft = {
+static const struct idle_cpu __initconstrel idle_cpu_lincroft = {
 	.state_table = atom_cstates,
 	.auto_demotion_disable_flags = ATM_LNC_C6_AUTO_DEMOTE,
 };
 
-static const struct idle_cpu idle_cpu_snb = {
+static const struct idle_cpu __initconstrel idle_cpu_snb = {
 	.state_table = snb_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_byt = {
+static const struct idle_cpu __initconstrel idle_cpu_byt = {
 	.state_table = byt_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_cht = {
+static const struct idle_cpu __initconstrel idle_cpu_cht = {
 	.state_table = cht_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_ivb = {
+static const struct idle_cpu __initconstrel idle_cpu_ivb = {
 	.state_table = ivb_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_ivt = {
+static const struct idle_cpu __initconstrel idle_cpu_ivt = {
 	.state_table = ivt_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_hsw = {
+static const struct idle_cpu __initconstrel idle_cpu_hsw = {
 	.state_table = hsw_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_bdw = {
+static const struct idle_cpu __initconstrel idle_cpu_bdw = {
 	.state_table = bdw_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_skl = {
+static const struct idle_cpu __initconstrel idle_cpu_skl = {
 	.state_table = skl_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_skx = {
+static const struct idle_cpu __initconstrel idle_cpu_skx = {
 	.state_table = skx_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_icx = {
+static const struct idle_cpu __initconstrel idle_cpu_icx = {
 	.state_table = icx_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static struct idle_cpu __ro_after_init idle_cpu_adl = {
+static const struct idle_cpu __initconstrel idle_cpu_adl = {
 	.state_table = adl_cstates,
 };
 
-static struct idle_cpu __ro_after_init idle_cpu_adl_l = {
+static const struct idle_cpu __initconstrel idle_cpu_adl_l = {
 	.state_table = adl_l_cstates,
 };
 
-static const struct idle_cpu idle_cpu_mtl_l = {
+static const struct idle_cpu __initconstrel idle_cpu_mtl_l = {
 	.state_table = mtl_l_cstates,
 };
 
-static const struct idle_cpu idle_cpu_gmt = {
+static const struct idle_cpu __initconstrel idle_cpu_gmt = {
 	.state_table = gmt_cstates,
 };
 
-static const struct idle_cpu idle_cpu_spr = {
+static const struct idle_cpu __initconstrel idle_cpu_spr = {
 	.state_table = spr_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_gnr = {
+static const struct idle_cpu __initconstrel idle_cpu_gnr = {
 	.state_table = gnr_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_gnrd = {
+static const struct idle_cpu __initconstrel idle_cpu_gnrd = {
 	.state_table = gnrd_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_avn = {
+static const struct idle_cpu __initconstrel idle_cpu_avn = {
 	.state_table = avn_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_bxt = {
+static const struct idle_cpu __initconstrel idle_cpu_bxt = {
 	.state_table = bxt_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_dnv = {
+static const struct idle_cpu __initconstrel idle_cpu_dnv = {
 	.state_table = dnv_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_snr = {
+static const struct idle_cpu __initconstrel idle_cpu_snr = {
 	.state_table = snr_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_grr = {
+static const struct idle_cpu __initconstrel idle_cpu_grr = {
 	.state_table = grr_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_srf = {
+static const struct idle_cpu __initconstrel idle_cpu_srf = {
 	.state_table = srf_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:37:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:37:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307018.1578756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpAZ-0004r9-2k; Tue, 12 May 2026 15:37:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307018.1578756; Tue, 12 May 2026 15:37:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpAY-0004r2-Vq; Tue, 12 May 2026 15:37:14 +0000
Received: by outflank-mailman (input) for mailman id 1307018;
 Tue, 12 May 2026 15:37:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMpAY-0004oR-0U
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:37:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpAX-00AQoL-D1
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:37:13 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034925-2eae-0a2a0a5409dd-0a2a4503e522-12
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:37:13 +0200
Received: from [209.85.221.46] (helo=mail-wr1-f46.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034929-672d-0a2a45030019-d155dd2ed03a-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:37:13 +0200
Received: by mail-wr1-f46.google.com with SMTP id
 ffacd0b85a97d-44ccbd3290aso4535273f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:37:13 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4548bb51d40sm32522460f8f.0.2026.05.12.08.37.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:37:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778600233; x=1779205033; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/VtB2qT+5tGhAJA0XOdWRU5yzj8hriXeFmDZ5tClNyo=;
        b=eyMCK0YumD1+VYVREb5HreMpqJbHb940yNpvNgkyh/rJeAiJn2SNnOlMWnJ+Hpek4N
         s+/UbCfcgLbQAMnjNItYvBzd1QNgAt6yTmDCT7Pdk4bZYDO9zbCYI2/Hijm+eMhzoN+B
         n7/xZ58Aa8v334+sQiXtVg07nUMw7SsXbB5k9wOFwFPL9b9SBTJ1veCVjIb9Fex+yJTt
         ipojpEDqJtBCOz8dPqIXPmfl39kXvf1JOvoR5/5XJhKDvoezP8odlT5K56SaQDvHsU2k
         PCKrGEnAQe0vac1au7oAU8WnnBgiVVvBjoCkdKTZjxYijrENNzMnuOwLnvTKouQxPOwb
         HqGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778600233; x=1779205033;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/VtB2qT+5tGhAJA0XOdWRU5yzj8hriXeFmDZ5tClNyo=;
        b=mjb0yhYSoFNNFnVWGHygU2AuqGGpnCwY33x+LNw9+hcQYsI3wRgdV2wapy70y/LjpF
         YM2zDL0ceT6YjEib+3iSHmd3nNE14vqbus3g18eU7L/v1/ZU8N+1zBST6+pE64JexOwC
         1fJZ97SQidEsNyV63hGytCpFUxLEYK7K8suPrZYOHfWZ3kp250tDx8WxNf0dzlr46S/G
         iV02tmOAJ5TEVr861KUnKQmvzOjzRBAhnpCQzrirefSuynNWVNWnHLLbUMbTPgj0QFg0
         QGN7aGNVsw7lxN8Wd6BGNMGdMg4+vinueeuYpePY8luLb+ZUPjFeavX7ZDL/uFlq9e1V
         y57Q==
X-Gm-Message-State: AOJu0Yz+Y8bxkZajTMiR+FNOi+0FgPNOz0T1UeTXXqKdka9gjeTGuHHv
	RJGejv8Ao7wzBz4iXDdxtL4B7ebzDEBmnzTWsXNYwXIidfwDlDNwNYED8XLyHwswKSxkLNM9zTX
	sEcw=
X-Gm-Gg: Acq92OE9FxajBBCWYTZo1QAr1DilxCxAp15wzWuQ8MTqj0U2k+lzHRWpBQGS8VXN4Yj
	T4AUJIDDkfMOaMZA6IuR3CKraACJDHVzBndrnISZ9OcNM6rzdUNTVNhgeJO/N60DkS/IES1km1z
	mVYLCnJmrxVoiSntG7n14hPp1A6JhwaeE+3IWeSoTmvbY843pNBDN3w+ifxiZ/jXkhick2ZJe4q
	ZBNe9tcqaKI20LUKwBrdX2XBu+4bmeJRI56LCGpM0FFoaqG1DAa+qKaIzOAuZw6f2zb/cDphYg7
	ihsBdHXlkg/Fsf5cnsDpwplFOJLsq3Cv+vFd6FnfYkl2RXvRoBSat6lq/YRilQzdWnsqZiKXDY+
	bz3eDRgd42VyHnhfMO4xbcIy+Kvm9z02uePyEbN28mcl1SbBYJ/unUf3fLJCetPAIaqwfGsMLJP
	s/sxzZA9EYwiS6zDYwdWDYCyfzeeRbWudaaL9SxDGYp4fFrytSTedOhCvRblehrlyIIYjLduC8I
	t/CTmiepLf730nYMABt1WcQPA==
X-Received: by 2002:a05:6000:4287:b0:43d:70de:1c70 with SMTP id ffacd0b85a97d-45b13e55369mr4966799f8f.32.1778600232697;
        Tue, 12 May 2026 08:37:12 -0700 (PDT)
Message-ID: <70787b38-b656-4259-a496-0d0545fa98ba@suse.com>
Date: Tue, 12 May 2026 17:37:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH for-4.22 v2 5/8] x86/mwait-idle: Remove the
 'preferred_cstates' parameter
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1778600233-3B161938-09C28C5E/0/0
X-purgate-type: clean
X-purgate-size: 5567

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

Remove the 'preferred_cstates' module parameter as it is not really useful.

The parameter currently only affects Alder Lake, where it controls C1/C1E
preference, with C1E being the default. The parameter does not support any
other platform. For example, Meteor Lake has a similar C1/C1E limitation,
but the parameter does not support Meteor Lake. This indicates that the
parameter is not very useful.

Generally, independent C1 and C1E are important for server platforms where
low latency is key. However, they are not as important for client platforms,
like Alder Lake, where C1E providing better energy savings is generally
preferred.

The parameter was originally introduced for Sapphire Rapids Xeon:
da0e58c038e6 intel_idle: add 'preferred_cstates' module argument

Later it was added to Alder Lake:
d1cf8bbfed1ed ("intel_idle: Add AlderLake support")

But it was removed from Sapphire Rapids when firmware fixed the C1/C1E
limitation:
1548fac47a114 ("intel_idle: make SPR C1 and C1E be independent")

So Alder Lake is the only platform left where this parameter has any effect.
Remove this parameter to simplify the driver and reduce maintenance burden.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Link: https://patch.msgid.link/20251215111300.132803-1-dedekind1@gmail.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git a36dc37b5672
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>

--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2071,12 +2071,6 @@ compression is selected at build time fr
 ### ple_window (Intel)
 > `= <integer>`
 
-### preferred-cstates (x86)
-> `= ( <integer> | List of ( C1 | C1E | C2 | ... )`
-
-This is a mask of C-states which are to be used preferably.  This option is
-applicable only on hardware were certain C-states are exclusive of one another.
-
 ### probe-port-aliases (x86)
 > `= <boolean>`
 
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -72,19 +72,6 @@ boolean_param("mwait-idle", opt_mwait_id
 
 static unsigned int mwait_substates;
 
-/*
- * Some platforms come with mutually exclusive C-states, so that if one is
- * enabled, the other C-states must not be used. Example: C1 and C1E on
- * Sapphire Rapids platform. This parameter allows for selecting the
- * preferred C-states among the groups of mutually exclusive C-states - the
- * selected C-states will be registered, the other C-states from the mutually
- * exclusive group won't be registered. If the platform has no mutually
- * exclusive C-states, this parameter has no effect.
- */
-static unsigned int __ro_after_init preferred_states_mask;
-static char __initdata preferred_states[64];
-string_param("preferred-cstates", preferred_states);
-
 #define LAPIC_TIMER_ALWAYS_RELIABLE 0xFFFFFFFF
 /* Reliable LAPIC Timer States, bit 1 for C1 etc. Default to only C1. */
 static unsigned int lapic_timer_reliable_states = (1 << 1);
@@ -1512,28 +1499,6 @@ static void __init skx_idle_state_table_
 }
 
 /*
- * adl_idle_state_table_update - Adjust AlderLake idle states table.
- */
-static void __init adl_idle_state_table_update(void)
-{
-	/* Check if user prefers C1 over C1E. */
-	if ((preferred_states_mask & BIT(1, U)) &&
-	    !(preferred_states_mask & BIT(2, U))) {
-		adl_cstates[0].flags &= ~CPUIDLE_FLAG_DISABLED;
-		adl_cstates[1].flags |= CPUIDLE_FLAG_DISABLED;
-		adl_l_cstates[0].flags &= ~CPUIDLE_FLAG_DISABLED;
-		adl_l_cstates[1].flags |= CPUIDLE_FLAG_DISABLED;
-
-		/* Disable C1E by clearing the "C1E promotion" bit. */
-		icpu.c1e_promotion = C1E_PROMOTION_DISABLE;
-		return;
-	}
-
-	/* Make sure C1E is enabled by default */
-	icpu.c1e_promotion = C1E_PROMOTION_ENABLE;
-}
-
-/*
  * spr_idle_state_table_update - Adjust Sapphire Rapids idle states table.
  */
 static void __init spr_idle_state_table_update(void)
@@ -1579,11 +1544,6 @@ static void __init mwait_idle_state_tabl
 	case INTEL_EMERALDRAPIDS_X:
 		spr_idle_state_table_update();
 		break;
-	case INTEL_ALDERLAKE:
-	case INTEL_ALDERLAKE_L:
-	case INTEL_ATOM_GRACEMONT:
-		adl_idle_state_table_update();
-		break;
 	}
 }
 
@@ -1592,7 +1552,6 @@ static int __init mwait_idle_probe(void)
 	unsigned int eax, ebx, ecx;
 	const struct x86_cpu_id *id;
 	const struct idle_cpu *idle_cpu;
-	const char *str;
 
 	if (boot_cpu_data.vendor != X86_VENDOR_INTEL)
 		return -ENODEV;
@@ -1635,39 +1594,6 @@ static int __init mwait_idle_probe(void)
 	pr_debug(PREFIX "lapic_timer_reliable_states %#x\n",
 		 lapic_timer_reliable_states);
 
-	str = preferred_states;
-	if (isdigit(str[0]))
-		preferred_states_mask = simple_strtoul(str, &str, 0);
-	else if (str[0])
-	{
-		const char *ss;
-
-		do {
-			const struct cpuidle_state *state = idle_cpu->state_table;
-			unsigned int bit = 1;
-
-			ss = strchr(str, ',');
-			if (!ss)
-				ss = strchr(str, '\0');
-
-			for (; state->name[0]; ++state) {
-				bit <<= 1;
-				if (!cmdline_strcmp(str, state->name)) {
-					preferred_states_mask |= bit;
-					break;
-				}
-			}
-			if (!state->name[0])
-				break;
-
-			str = ss + 1;
-		} while (*ss);
-
-		str -= str == ss + 1;
-	}
-	if (str[0])
-		printk("unrecognized \"preferred-cstates=%s\"\n", str);
-
 	mwait_idle_state_table_update();
 
 	return 0;



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:37:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:37:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307026.1578764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpAx-0005Tb-9k; Tue, 12 May 2026 15:37:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307026.1578764; Tue, 12 May 2026 15:37:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpAx-0005TU-6k; Tue, 12 May 2026 15:37:39 +0000
Received: by outflank-mailman (input) for mailman id 1307026;
 Tue, 12 May 2026 15:37:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMpAw-0005Ov-5K
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:37:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpAv-00BBxs-I1
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:37:37 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034938-bab6-0a2a0a5309dd-0a2a45098220-34
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:37:37 +0200
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034941-2497-0a2a45090019-d155dd32c877-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:37:37 +0200
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-43d77f6092eso3543632f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:37:37 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-454922715b9sm35519829f8f.36.2026.05.12.08.37.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:37:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778600257; x=1779205057; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xN4esOL29pmrNzImPmRnozsyDtFvl0psKxBdCZmg1fA=;
        b=TEPcNpsP4D6Z4BnCyhRYfgAm/HsA5F83A53KIdnq0ABQn5gjUXgSkH2n5CtE718BoZ
         pdB/K6ODzbXjfG217/EraXCRP9JFoLsxvsFI4Uv+jc8YmFUD5J9ea1LyluHubGQ+SP8V
         BC/cx1LYN2tDUjsrhqva/Ry49ofTOZ5tk3lDShv4BSh+p2A2mYzu+iy8rW3uL5sGHKCx
         2tiDUpIKQC6aI4Qr1VdDBBY8v8ZsFjRBf2cV2jXUjqew2viqQmoT07mskTLKiJ7ylDO8
         goPT2HHZZWocH1CZfsUtesfwIjRKu6QDIn6LCKVM4FpI5Th1kkrWimC0rPuxq3JUyfG7
         YQzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778600257; x=1779205057;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xN4esOL29pmrNzImPmRnozsyDtFvl0psKxBdCZmg1fA=;
        b=DUarif0K5Ow6oW1xtLK8sWXBr0LuYVx/pP0JZ/RpuJanONKClvPK1oJ3bjPI5GmQCT
         0ub7xzM28dNcvA17xLaa9hG4xjK+ZOp1s1G4QzznVbGvfeQue/Flx1F6GtVuthAJNghN
         Sh5fhHURARpqX/HaeeRQAypgi8Zy1URKvkOwoVB8eKVInbEOV+GB0XDwHhPZ7MPqQFHb
         rsT1ypez/B0Z/F0nUw8TI8RSmfQYcIKBRfpEmy/GrUd9oECkIw5FdGaHvS1elc7bsIv4
         F5+nmEcqUgn0g6TieC/zP83h4yWpNTA9miLuiL+6qZhF5P759cot4oayrRuEY66XDti4
         3kIg==
X-Gm-Message-State: AOJu0Yynb9aIxh/BJi33E94Jx2GAQMA6yrvKwYgIU4IbxZx3+Fn7pj1z
	Lr7HDVknYKXJ62STAqIxejo4M5tQX+qD/xHJgp8wPXxma2a2vh9MZWgkV0s47PMjteXRxkgovYr
	8G00=
X-Gm-Gg: Acq92OH/afjSxEDlK3aVGXyM7xvSWOu/QvYomDJmAScT5djr/DHPITpTEfB2iNJ1wrw
	Ji509PSGe+Bzh94/5HVh+vUZ7HBxU7KZSCaAqxhkUd0qPhZkI24FrIVI4Hnf/U5jTPhygRray7O
	by+a3m7uv53ohOZjhrdZgJnGwBQBUnnKuilAdTjiA0ya47qBeDpZ41Epk/MKwzSJeqAVEUqrAZf
	/fbhm6Ytr7WnQczG7t6hUx35DFP/8AFJmlAWMGpiivq7ZRHQ8DQJBHU5nCMFsWtlJLmvARxRMBh
	GELIfwttTREaCJpYwa5hODu6oBRh8UJdlMIQQq6duqFzqaIVsngMAjpf+J11cWaU8W6aP/bub2k
	8qQffUUy15SXHw8+9qRJ6NjA+toDxlPhviqYVpkbgtrTW5VqmJESx7xQ1joFmXaY4jgbM+FBVJ2
	LrMBrmeuXJI7+Z5HBEH7VtolggTp7FdRRicqpvDD9JIJN8/YccRk3u2z/4TjU8iBncz0YiXA0QC
	i+dAL7iNLj6FcY=
X-Received: by 2002:a5d:5e01:0:b0:43f:dc54:9493 with SMTP id ffacd0b85a97d-45b14adc2cemr5530776f8f.21.1778600256958;
        Tue, 12 May 2026 08:37:36 -0700 (PDT)
Message-ID: <a0d86137-b334-43e6-92c5-be42dac44aa7@suse.com>
Date: Tue, 12 May 2026 17:37:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH for-4.22 v2 6/8] x86/mwait-idle: drop const from struct
 cpuidle_state arrays
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778600257-40D67A53-BB1F923F/0/0
X-purgate-type: clean
X-purgate-size: 6280

A subsequent change will want to be able to alter them based on a new
command line option. (Note that some were __ro_after_init already.)

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>

--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -83,7 +83,7 @@ enum c1e_promotion {
 };
 
 struct idle_cpu {
-	const struct cpuidle_state *state_table;
+	struct cpuidle_state *state_table;
 
 	/*
 	 * Hardware C-state auto-demotion may not always be optimal.
@@ -139,7 +139,7 @@ struct cpuidle_state {
  * which is also the index into the MWAIT hint array.
  * Thus C0 is a dummy.
  */
-static const struct cpuidle_state nehalem_cstates[] = {
+static struct cpuidle_state __ro_after_init nehalem_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -167,7 +167,7 @@ static const struct cpuidle_state nehale
 	{}
 };
 
-static const struct cpuidle_state snb_cstates[] = {
+static struct cpuidle_state __ro_after_init snb_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -201,7 +201,7 @@ static const struct cpuidle_state snb_cs
 	{}
 };
 
-static const struct cpuidle_state byt_cstates[] = {
+static struct cpuidle_state __ro_after_init byt_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -235,7 +235,7 @@ static const struct cpuidle_state byt_cs
 	{}
 };
 
-static const struct cpuidle_state cht_cstates[] = {
+static struct cpuidle_state __ro_after_init cht_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -269,7 +269,7 @@ static const struct cpuidle_state cht_cs
 	{}
 };
 
-static const struct cpuidle_state ivb_cstates[] = {
+static struct cpuidle_state __ro_after_init ivb_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -303,7 +303,7 @@ static const struct cpuidle_state ivb_cs
 	{}
 };
 
-static const struct cpuidle_state ivt_cstates[] = {
+static struct cpuidle_state __ro_after_init ivt_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -331,7 +331,7 @@ static const struct cpuidle_state ivt_cs
 	{}
 };
 
-static const struct cpuidle_state ivt_cstates_4s[] = {
+static struct cpuidle_state __ro_after_init ivt_cstates_4s[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -359,7 +359,7 @@ static const struct cpuidle_state ivt_cs
 	{}
 };
 
-static const struct cpuidle_state ivt_cstates_8s[] = {
+static struct cpuidle_state __ro_after_init ivt_cstates_8s[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -387,7 +387,7 @@ static const struct cpuidle_state ivt_cs
 	{}
 };
 
-static const struct cpuidle_state hsw_cstates[] = {
+static struct cpuidle_state __ro_after_init hsw_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -439,7 +439,7 @@ static const struct cpuidle_state hsw_cs
 	{}
 };
 
-static const struct cpuidle_state bdw_cstates[] = {
+static struct cpuidle_state __ro_after_init bdw_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -565,7 +565,7 @@ static struct cpuidle_state __ro_after_i
 	{}
 };
 
-static const struct cpuidle_state icx_cstates[] = {
+static struct cpuidle_state __ro_after_init icx_cstates[] = {
        {
                .name = "C1",
                .flags = MWAIT2flg(0x00) | CPUIDLE_FLAG_IRQ_ENABLE,
@@ -665,7 +665,7 @@ static struct cpuidle_state __ro_after_i
 	{}
 };
 
-static const struct cpuidle_state mtl_l_cstates[] = {
+static struct cpuidle_state __ro_after_init mtl_l_cstates[] = {
 	{
 		.name = "C1E",
 		.flags = MWAIT2flg(0x01),
@@ -687,7 +687,7 @@ static const struct cpuidle_state mtl_l_
 	{}
 };
 
-static const struct cpuidle_state gmt_cstates[] = {
+static struct cpuidle_state __ro_after_init gmt_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00) | CPUIDLE_FLAG_DISABLED,
@@ -743,7 +743,7 @@ static struct cpuidle_state __ro_after_i
 	{}
 };
 
-static const struct cpuidle_state gnr_cstates[] = {
+static struct cpuidle_state __ro_after_init gnr_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -771,7 +771,7 @@ static const struct cpuidle_state gnr_cs
 	{}
 };
 
-static const struct cpuidle_state gnrd_cstates[] = {
+static struct cpuidle_state __ro_after_init gnrd_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -799,7 +799,7 @@ static const struct cpuidle_state gnrd_c
 	{}
 };
 
-static const struct cpuidle_state atom_cstates[] = {
+static struct cpuidle_state __ro_after_init atom_cstates[] = {
 	{
 		.name = "C1E",
 		.flags = MWAIT2flg(0x00),
@@ -827,7 +827,7 @@ static const struct cpuidle_state atom_c
 	{}
 };
 
-static const struct cpuidle_state tangier_cstates[] = {
+static struct cpuidle_state __ro_after_init tangier_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -861,7 +861,7 @@ static const struct cpuidle_state tangie
 	{}
 };
 
-static const struct cpuidle_state avn_cstates[] = {
+static struct cpuidle_state __ro_after_init avn_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -923,7 +923,7 @@ static struct cpuidle_state __ro_after_i
 	{}
 };
 
-static const struct cpuidle_state dnv_cstates[] = {
+static struct cpuidle_state __ro_after_init dnv_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -949,7 +949,7 @@ static const struct cpuidle_state dnv_cs
  * Note, depending on HW and FW revision, SnowRidge SoC may or may not support
  * C6, and this is indicated in the CPUID mwait leaf.
  */
-static const struct cpuidle_state snr_cstates[] = {
+static struct cpuidle_state __ro_after_init snr_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -971,7 +971,7 @@ static const struct cpuidle_state snr_cs
 	{}
 };
 
-static const struct cpuidle_state grr_cstates[] = {
+static struct cpuidle_state __ro_after_init grr_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -993,7 +993,7 @@ static const struct cpuidle_state grr_cs
 	{}
 };
 
-static const struct cpuidle_state srf_cstates[] = {
+static struct cpuidle_state __ro_after_init srf_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:38:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:38:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307035.1578774 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpBT-0006PN-Jf; Tue, 12 May 2026 15:38:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307035.1578774; Tue, 12 May 2026 15:38:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpBT-0006PF-Gw; Tue, 12 May 2026 15:38:11 +0000
Received: by outflank-mailman (input) for mailman id 1307035;
 Tue, 12 May 2026 15:38:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMpBS-0006Ni-GJ
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:38:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpBR-00F2s1-TJ
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:38:09 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a03495f-2eae-0a2a0a5409dd-0a2a45048ee0-10
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:38:09 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a034961-1dec-0a2a45040019-d1558029ad43-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:38:09 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-4891c0620bcso40444275e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:38:09 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8d1f669sm5321055e9.4.2026.05.12.08.38.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:38:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778600289; x=1779205089; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=h9wUOSHCkf5lnhgbGUcgfm3/6j74fw4Q/KRVFYcRtW4=;
        b=cLAvyYBmOb7ukEJtmSwWtAWeOhvmFQcVIb+xdJEi1898IqK8ob1j5lWF0yItfMhLPI
         5DoRsnPhfwmLHfoC9hf47T5CNfpMlLpCrLIw7H6mk7SCG5UJ0SB40VxP9P7dhZ8f3Vbm
         3xZenzr6pCOx2qmddfUG9Qa6lo25VglXNYLZNjASItyU2IXAViGvKgcnVEYRpMdbWIE3
         6WX/ecwKJ5Ize1Y845CUxfKz0qbMmXi8mcBJ+V0hcnzfSgQd8ojckJ9oLdBth7YyIJl5
         82RoJGQjR2oTwmBJUmkyYtyk588FWBIFwPpFWWoLCmYFTdFm0awlVnFGhuayq+5oDiFV
         YTSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778600289; x=1779205089;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h9wUOSHCkf5lnhgbGUcgfm3/6j74fw4Q/KRVFYcRtW4=;
        b=gq5oshrLWfwrYi31lKzXiTKqU4NIVXC/nd1FVaYIB6nVT9d0EnK6tV7kfWP6/RnGu1
         fpkFweheIp6TbLELk4dgjwQoki4OG2iQ7Etz7AN4SZhzNbqg1AoKugjM8gcznDqqQEzk
         V8WCytXgxs8dTvSB87rbvUr68WBu3t+GwaWybSISVlSFIljqRksAAg7He4cRqi0/JSbw
         gxTrbdKx/s8rREAJnIeOBDAqdhKs2PFppmLIQDcOPAEp33PlJC9Dj6GlnkYMuDX6uRzh
         IUlELJKENj5am7Lveqh8kbtCZp33czd/xo72UOTnOi5KKbqkkO+QaLCvfAEPzmdQHCwl
         Uz8Q==
X-Gm-Message-State: AOJu0YwYaFFwZIcExL8hbSJWfEmjvHNJJ2OeaM0/0T95IbXKxSr8vq84
	tb6MP+WQgAi9eGPi+nOafpuSPCP0W6FSq4e96s5tWf3CF2zof+4yc1n4ttzurSG79N4y+IsRvct
	GuS0=
X-Gm-Gg: Acq92OFP3MZBVJpLYIGS/2rsu7WEdzJpDwBNrwts8SL/96LYscEcqz+bE00GunT5YIS
	qQ9tedrSewW9sYkXwQhf18S5oD3N9BtPEZJqL7+SDxBWEmxqrKowj2PMLMwBqk7cCb1K3pNwGpF
	ReEd+VqYSL+OKCsvdiDj+Hyk9v+GEscPSsi2gOZordgEUhtI1TVQHpK+xmFL0cO367FafE/wHXq
	Wpc0j9CjOfZk5iaG0fyefcRRgY5cC1UiWAnHJlqffyiSGnnZmeh3EwIv/9OicHIuud8GANXObpV
	r016vnVIlZG8OI/oRNiMvpj5NPFyjgOPLJgFORH9HKohdv4Pflt/GmOLDRfXl18kV3tZeBoi3yJ
	6rnGg2RcXVBBrOe75sCoEYgKRL52ol2WPGezAvx5FxdWiolG1ujomgg6RScPOIq6i8f16yjDHv7
	K6M61Dvwhd1dkPtYt2r/t01ISzY+5S468R+lAD6ej1DyWzB0mXlm7MvqmaHjV6Qy9FMaEpu34HD
	j66aNfR2Zlf4doEuJ/lA+4ZtQ==
X-Received: by 2002:a05:600c:a412:b0:48a:525b:e148 with SMTP id 5b1f17b1804b1-48e6748a724mr195782845e9.4.1778600289165;
        Tue, 12 May 2026 08:38:09 -0700 (PDT)
Message-ID: <8c46fedd-f1f3-4cad-91fb-1b3b8d58db50@suse.com>
Date: Tue, 12 May 2026 17:38:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH for-4.22 v2 7/8] x86/mwait-idle: Add cmdline option to adjust
 C-states table
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1778600289-4217E3FF-6158878D/0/0
X-purgate-type: clean
X-purgate-size: 8619

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

Add a new module parameter that allows adjusting the C-states table used by
the driver.

Currently, the C-states table is hardcoded in the driver based on the CPU
model. The goal is to have good enough defaults for most users.

However, C-state characteristics, such as exit latency and residency, can
vary between different variants of the same CPU model and BIOS settings.
Moreover, different platform usage models and user preferences may benefit
from different C-state target_residency values.

Provide a way for users to adjust the C-states table via a module parameter
"table". The general format is:
"state1:latency1:target_residency1,state2:latency2:target_residency2,..."

In other words, represent each C-state by its name, exit latency (in
microseconds), and target residency (in microseconds), separated by colons.
Separate multiple C-states by commas.

For example, suppose a CPU has 3 C-states with the following
characteristics:
  C1:  exit_latency=1, target_residency=2
  C1E: exit_latency=10, target_residency=10
  C6:  exit_latency=100, target_residency=500

Users can specify a custom C-states table as follows:

1. intel_idle.table="C1:2:2,C1E:5:20,C6:150:600"
   Result: C1:  exit_latency=2, target_residency=2
           C1E: exit_latency=5, target_residency=20
           C6:  exit_latency=150, target_residency=600
2. intel_idle.table="C6::400"
   Result: C1:  exit_latency=1, target_residency=2 (unchanged)
           C1E: exit_latency=10, target_residency=10 (unchanged)
           C6:  exit_latency=100, target_residency=400
                (only target_residency changed)

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Link: https://patch.msgid.link/20251216080402.156988-3-dedekind1@gmail.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 111f77a23348

Add __init to get_cmdline_field(). Put cmdline_table_str[] in .init.data.
Other adjustments to fit our env.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
For the initial attempt, I've left the new option as a standalone one. It
may be worth integrating with "mwait-idle", but I think much of the
parsing would then want doing differently. It'll then likely be much
harder to apply future Linux changes there.
---
v2: Correct example in cmdline doc.

--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1916,6 +1916,23 @@ Print boot time MTRR state.
 Use the MWAIT idle driver (with model specific C-state knowledge) instead
 of the ACPI based one.
 
+### mwait-idle.table (x86)
+> `= <string>`
+
+ Define the C-states table from a user input string. Expected format is
+ 'name:latency:residency', where:
+ - name: The C-state name.
+ - latency: The C-state exit latency in us.
+ - residency: The C-state target residency in us.
+
+ Multiple C-states can be defined by separating them with commas:
+ 'name1:latency1:residency1,name2:latency2:residency2'
+
+ Example: mwait-idle.table=C1:1:1,C1E:5:10,C6:100:600
+
+ To leave latency or residency unchanged, use an empty field, for example:
+ 'C1:1:1,C1E::10' - leaves C1E latency unchanged.
+
 ### nmi (x86)
 > `= ignore | dom0 | fatal`
 
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -70,6 +70,11 @@
 static __initdata bool opt_mwait_idle = true;
 boolean_param("mwait-idle", opt_mwait_idle);
 
+/* The maximum allowed length for the 'table' module parameter  */
+#define MAX_CMDLINE_TABLE_LEN 256
+static char cmdline_table_str[MAX_CMDLINE_TABLE_LEN] __initdata;
+string_param("mwait-idle.table", cmdline_table_str);
+
 static unsigned int mwait_substates;
 
 #define LAPIC_TIMER_ALWAYS_RELIABLE 0xFFFFFFFF
@@ -122,6 +127,9 @@ struct cpuidle_state {
  */
 #define CPUIDLE_FLAG_IBRS		0x20000
 
+/* C-states data from the 'mwait-idle.table' cmdline parameter */
+static struct cpuidle_state cmdline_states[ACPI_PROCESSOR_MAX_POWER] __initdata;
+
 /*
  * MWAIT takes an 8-bit "hint" in EAX "suggesting"
  * the C-state (top nibble) and sub-state (bottom nibble)
@@ -1547,6 +1555,161 @@ static void __init mwait_idle_state_tabl
 	}
 }
 
+ /**
+  * get_cmdline_field - Get the current field from a cmdline string.
+  * @args: The cmdline string to get the current field from.
+  * @field: Pointer to the current field upon return.
+  * @sep: The fields separator character.
+  *
+  * Examples:
+  *   Input: args="C1:1:1,C1E:2:10", sep=':'
+  *   Output: field="C1", return "1:1,C1E:2:10"
+  *   Input: args="C1:1:1,C1E:2:10", sep=','
+  *   Output: field="C1:1:1", return "C1E:2:10"
+  *   Ipnut: args="::", sep=':'
+  *   Output: field="", return ":"
+  *
+  * Return: The continuation of the cmdline string after the field or NULL.
+  */
+static char *__init get_cmdline_field(char *args, char **field, char sep)
+{
+	unsigned int i;
+
+	for (i = 0; args[i] && !isspace(args[i]); i++) {
+		if (args[i] == sep)
+			break;
+	}
+
+	*field = args;
+
+	if (args[i] != sep)
+		return NULL;
+
+	args[i] = '\0';
+	return args + i + 1;
+}
+
+/**
+ * cmdline_table_adjust - Adjust the C-states table with data from cmdline.
+ *
+ * Adjust the C-states table with data from the 'mwait-idle.table' parameter
+ * (if specified).
+ */
+static void __init cmdline_table_adjust(void)
+{
+	char *args = cmdline_table_str;
+	struct cpuidle_state *state;
+	unsigned int i, state_count;
+
+	if (args[0] == '\0')
+		/* The 'mwait-idle.table' module parameter was not specified */
+		return;
+
+	/* Create a copy of the C-states table */
+	for (i = 0;
+	     i < ARRAY_SIZE(cmdline_states) && icpu.state_table[i].name[0];
+	     i++)
+		cmdline_states[i] = icpu.state_table[i];
+
+	state_count = i;
+
+	/*
+	 * Adjust the C-states table copy with data from the 'mwait-idle.table'
+	 * module parameter.
+	 */
+	while (args) {
+		char *fields, *name, *val;
+
+		/*
+		 * Get the next C-state definition, which is expected to be
+		 * '<name>:<latency_us>:<target_residency_us>'. Treat "empty"
+		 * fields as unchanged. For example,
+		 * '<name>::<target_residency_us>' leaves the latency unchanged.
+		 */
+		args = get_cmdline_field(args, &fields, ',');
+
+		/* name */
+		fields = get_cmdline_field(fields, &name, ':');
+		if (!fields)
+			goto error;
+
+		/* Find the C-state by its name */
+		state = NULL;
+		for (i = 0; i < state_count; i++) {
+			if (!strcmp(name, cmdline_states[i].name)) {
+				state = &cmdline_states[i];
+				break;
+			}
+		}
+
+		if (!state) {
+			printk(XENLOG_ERR PREFIX "C-state '%s' was not found\n",
+			       name);
+			continue;
+		}
+
+		/* Latency */
+		fields = get_cmdline_field(fields, &val, ':');
+		if (!fields)
+			goto error;
+
+		if (*val) {
+			const char *end;
+			unsigned long n = simple_strtoul(val, &end, 0);
+
+			state->exit_latency = n;
+			if (*end || state->exit_latency != n)
+				goto error;
+		}
+
+		/* Target residency */
+		fields = get_cmdline_field(fields, &val, ':');
+
+		if (*val) {
+			const char *end;
+			unsigned long n = simple_strtoul(val, &end, 0);
+
+			state->target_residency = n;
+			if (*end || state->target_residency != n)
+				goto error;
+		}
+
+		/*
+		 * Allow for 3 more fields, but ignore them. Helps to make
+		 * possible future extensions of the cmdline format backward
+		 * compatible.
+		 */
+		for (i = 0; fields && i < 3; i++) {
+			fields = get_cmdline_field(fields, &val, ':');
+			if (!fields)
+				break;
+		}
+
+		if (fields) {
+			printk(XENLOG_ERR PREFIX
+			       "Too many fields for C-state '%s'\n",
+			       state->name);
+			goto error;
+		}
+
+		printk(XENLOG_INFO PREFIX
+		       "C-state from cmdline: name=%s, latency=%u, residency=%u\n",
+		       state->name, state->exit_latency, state->target_residency);
+	}
+
+	/* Copy the adjusted C-states table back */
+	for (i = 0; i < state_count; i++)
+		icpu.state_table[i] = cmdline_states[i];
+
+	printk(XENLOG_INFO PREFIX
+	       "Adjusted C-states with data from 'mwait-idle.table'\n");
+	return;
+
+ error:
+	printk(PREFIX
+	       "Failed to adjust C-states with data from 'mwait-idle.table'\n");
+}
+
 static int __init mwait_idle_probe(void)
 {
 	unsigned int eax, ebx, ecx;
@@ -1596,6 +1759,8 @@ static int __init mwait_idle_probe(void)
 
 	mwait_idle_state_table_update();
 
+	cmdline_table_adjust();
+
 	return 0;
 }
 



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:38:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:38:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307041.1578782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpBs-0006yV-Rw; Tue, 12 May 2026 15:38:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307041.1578782; Tue, 12 May 2026 15:38:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpBs-0006xs-Oz; Tue, 12 May 2026 15:38:36 +0000
Received: by outflank-mailman (input) for mailman id 1307041;
 Tue, 12 May 2026 15:38:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMpBr-0006ve-1f
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:38:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpBq-004MKj-Eh
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:38:34 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a03495d-5cb7-0a2a0a5109dd-0a2a4505e454-42
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:38:34 +0200
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a03497a-aaa8-0a2a45050019-d1558034dc9f-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:38:34 +0200
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-48909558b3aso58479815e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:38:34 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8d624fbsm13356605e9.10.2026.05.12.08.38.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:38:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778600314; x=1779205114; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WzBd3MuuDBK0yJ9aRas8h0fwt5fLexFcIS7F696osWI=;
        b=DQI62Jfa+Khb/WlloCeKmxta1Hm9KDkNjkG+laZ84Oje+rI7RZJFZuiQ9u/zpGsmHQ
         L52D6TTSMAJhbWjMA0VGzHgsRxLjFMqwfMoUKOakjFfoW/FsifnlBO9UZaiNdcvf3C84
         9khpFIXy6L4Ppm4sraA8z2x+tRfBFrcVBnjW2O1YLK07Qz6+OrBpkuO/xVdhBa9RfkR2
         uJgkO3L1oYCzt52p8RJxK2ATKMiPLAZFIzp677URNEHoaYpWOskD2Tt4WDnnsAWdXt/O
         IjKC3+UxWiDwrEwYcaArMcFjEcUEOwB7+s+T8ZDU6AuLIiUh6NTTNUDmGxZHy0YT9F+I
         ABFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778600314; x=1779205114;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WzBd3MuuDBK0yJ9aRas8h0fwt5fLexFcIS7F696osWI=;
        b=F5BVthsC4F9qEkECefiSW1Uv/wqyP/V8LX9biqy3C5LiPdM4LZsEXVV65qSwAXkqqS
         C8UIn46CHwc1WNXO5bpLCf8M5NbgU89wONj4SC731U+4a0TNkDeu3d+5+ftrZh5/hbJz
         6+wcrOJqc94aX+NvZWVDu9HqaS2g7h7gRdJG1GQSANyiMr/053r/LlAwBzD1NvNyh4nF
         TXEdA9JmsFHM46fQy9Dr7DOsArlvFSc5tN5Q39FCp5C6UPGISB5Xk0Q9b/p9YHDQk+I+
         gvSP5XWfi7JOEQJeX9+/seOOU2TXPLa8se3gzHoW5UUwjdj0rNzdNQOa/6i9px0vNl4U
         SXEA==
X-Gm-Message-State: AOJu0YwcESzmK20jOtRpRlvZ7zkHm62BmX4DvWRZzZ9atbzpT3cK5teH
	tsyBuycQSuAf0/xJHiBW3Vvg6gOEFBLyj/gSTNKfHcEIZG6WqFueMhI/NO0EJtztQAMGoolaPfl
	mnJ4=
X-Gm-Gg: Acq92OHISxxLp0VGvxBHufzxYfIaOhMYWG7tZMT7czpDxcFNCPZpHjgLC5hgZXigmsV
	E1m0o35fJyLUQp0idWupFjLuQlTpmnTQpUDDj2CAHUPgkMGbHvAGNuD864r/BIlBfw049qhnqNy
	nURFxDT1Gq7SVI0TVK+wfw7Km/8LFyGCbLNSzVlGRG2Lx04c99eRyt/qa52qkVN38l970JLPM16
	Bm1NFLkJWSmAjos1rtQm9wCPiXhMe9nXqByRzYzKoO1XVACy7GaU53ekA/I6zjLiug0pCuc4vhZ
	Hi63e4NeVzPsklMcK99I3osmMQUwE4N1DPEP62GQSrwvrMDP3QtXP4q8501Acpccd8jFJ3QSbRQ
	SAWrJpJSkt7xiqMo/p8nRTvwB78VDum5ehvoE2gSH6xI0cW75ZikUY6vugtWo+Xx2YzDTqzM0cH
	TPVwJzR6K9Co0gRBLcd2idc9h7BaMol5pZMh3bRCPrPB9koicnDITVZwYWMiP3sBDsCLm85e2Hk
	EpD6AMzWuGaefHlJFmMazcnUw==
X-Received: by 2002:a05:600c:c094:b0:488:b14f:b8ed with SMTP id 5b1f17b1804b1-48e51dd89ffmr336736725e9.0.1778600313756;
        Tue, 12 May 2026 08:38:33 -0700 (PDT)
Message-ID: <d8c66d85-59c1-4107-b283-a03f92f6eab1@suse.com>
Date: Tue, 12 May 2026 17:38:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH for-4.22 v2 8/8] x86/mwait-idle: Add C-states validation
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1778600314-DAD6F443-93512BCA/0/0
X-purgate-type: clean
X-purgate-size: 3148

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

Add validation for C-states specified via the "table=" module parameter.
Treat this module parameter as untrusted input and validate it thoroughly.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Link: https://patch.msgid.link/20251216080402.156988-4-dedekind1@gmail.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git be6a150829b3

Add __init to validate_cmdline_cstate(). Other adjustments to fit our env.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Const-ify validate_cmdline_cstate()'s parameters.

--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -72,6 +72,11 @@ boolean_param("mwait-idle", opt_mwait_id
 
 /* The maximum allowed length for the 'table' module parameter  */
 #define MAX_CMDLINE_TABLE_LEN 256
+/* Maximum allowed C-state latency */
+#define MAX_CMDLINE_LATENCY_US (5 * 1000 /* USEC_PER_MSEC */)
+/* Maximum allowed C-state target residency */
+#define MAX_CMDLINE_RESIDENCY_US (100 * 1000 /* USEC_PER_MSEC */)
+
 static char cmdline_table_str[MAX_CMDLINE_TABLE_LEN] __initdata;
 string_param("mwait-idle.table", cmdline_table_str);
 
@@ -1590,6 +1595,41 @@ static char *__init get_cmdline_field(ch
 }
 
 /**
+ * validate_cmdline_cstate - Validate a C-state from cmdline.
+ * @state: The C-state to validate.
+ * @prev_state: The previous C-state in the table or NULL.
+ *
+ * Return: 0 if the C-state is valid or -EINVAL otherwise.
+ */
+static int __init validate_cmdline_cstate(const struct cpuidle_state *state,
+					  const struct cpuidle_state *prev_state)
+{
+	if (state->exit_latency == 0)
+		/* Exit latency 0 can only be used for the POLL state */
+		return -EINVAL;
+
+	if (state->exit_latency > MAX_CMDLINE_LATENCY_US)
+		return -EINVAL;
+
+	if (state->target_residency > MAX_CMDLINE_RESIDENCY_US)
+		return -EINVAL;
+
+	if (state->target_residency < state->exit_latency)
+		return -EINVAL;
+
+	if (!prev_state)
+		return 0;
+
+	if (state->exit_latency <= prev_state->exit_latency)
+		return -EINVAL;
+
+	if (state->target_residency <= prev_state->target_residency)
+		return -EINVAL;
+
+	return 0;
+}
+
+/**
  * cmdline_table_adjust - Adjust the C-states table with data from cmdline.
  *
  * Adjust the C-states table with data from the 'mwait-idle.table' parameter
@@ -1697,6 +1737,21 @@ static void __init cmdline_table_adjust(
 		       state->name, state->exit_latency, state->target_residency);
 	}
 
+	/* Validate the adjusted C-states */
+	for (i = 0; i < state_count; i++) {
+		struct cpuidle_state *prev_state;
+
+		state = &cmdline_states[i];
+		prev_state = i ? &cmdline_states[i - 1] : NULL;
+
+		if (validate_cmdline_cstate(state, prev_state)) {
+			printk(XENLOG_ERR PREFIX
+			       "C-state '%s' validation failed\n",
+			       state->name);
+			goto error;
+		}
+	}
+
 	/* Copy the adjusted C-states table back */
 	for (i = 0; i < state_count; i++)
 		icpu.state_table[i] = cmdline_states[i];



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:39:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:39:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307053.1578791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpCy-0007ac-4A; Tue, 12 May 2026 15:39:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307053.1578791; Tue, 12 May 2026 15:39:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpCy-0007aV-1X; Tue, 12 May 2026 15:39:44 +0000
Received: by outflank-mailman (input) for mailman id 1307053;
 Tue, 12 May 2026 15:39:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wMpCw-0007aL-LQ
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:39:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpCw-00AMT0-2C
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:39:42 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0349a6-bab6-0a2a0a5309dd-0a2a4501e428-36
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:39:42 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0349bd-c1f2-0a2a45010019-d155802acc0b-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:39:41 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-48984d29fe3so60580955e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:39:41 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4548e4bbebdsm36877386f8f.5.2026.05.12.08.39.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:39:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778600381; x=1779205181; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DL8Q7t2XncyxaDtSAnCnBT1mRwgenE/2U9CE4qm6meI=;
        b=XSNuRN0bzCN75x1vo3WGV8XF4XRr7tGjC8b1t63N0KzmyYaTyGLc/zQy+Oi5TS5/Tq
         MmP3Z2GpLIq/f99/NYaso2eezco4D8UxbDBcARqSgSTXSUrjrN3BFAY9Z7F68oYBBlGo
         /DWKjeyn3WNmhRAFWH3mBDxJSr0PevM67DpkraSaGDvHr3iRJwep31EOIWykLgSMOO1F
         Na2Xfb+YgF3LO4o+O8PbhfCu2DnUE9pxnuaVJS+MgjF7k7Wb3s7ktWjUdQpFgpHoNUWv
         fojpQrMUFGZf0Li8jswWEzi4tB6gOyVg3mGr4RncKbuPbgtBa/fsx9GLU2dIhrIV+IsT
         QZuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778600381; x=1779205181;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DL8Q7t2XncyxaDtSAnCnBT1mRwgenE/2U9CE4qm6meI=;
        b=jhtkgcO2zvPYGQSWJXL2+KXa7/kEahYaSoNF8nNQzugjXvSKLVdyfQGIkvHprLqygj
         MNICvnipSKtpnNdz+Pk+rL0dUcRa0+3B8D8MKxVcEzDxO8eHg9P7CY0V2tHARXAg/yS8
         r5zZJ585dH4zLosp+YdiBu+5ExYtFrDPSvPNhBlRBZF1lPJf+R1Fm9O4fwEekPOOhgxw
         pKUDXEHF/YPRyeIHuUeHhuKrJttUmZsyDus32mQEgRnckWLz2xwTSImYZ+WQJKww0nnM
         qyHqXtLcKkXuqfBij8iGktJGWJW1P6IbBA12gMEOfqRws7jXYpu7mjAD/HcZKIQg7nMj
         KTxQ==
X-Forwarded-Encrypted: i=1; AFNElJ9R5tOT9sOwhZi6ofzrT1fgrDaPYKjcygCQ2c2rbeu1J5Y5/EJeq5a0vAiYTanSxE/jr5l/6tyExIc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YznSHd/6NBgOBX4RpBVGhwImgI/xauD6BTCLd82ZV2dbU3jAON+
	rUBom3BS2lEmYmNKiYMvpoRgB+WMRkXju8hQW1sL+JPP3KouNs90E3/eVl6+peNopeVniKzlKUH
	JGfA=
X-Gm-Gg: Acq92OFslkTxoULKOhGSz9Yi+mBO+qAEpK2GzH74/sj5PxrD/KC4VDzNnXTWUcuqjPt
	1DBEm88630XnAw4ZoPUq1UJF1yITxNQpvPOu6JE8ey4W45MESCoaO39TZWxzLe8uVLkAxUaRCEr
	NGnZeMBAXzB8Ehkk2wQ08SoXpg2sy2NEgnHLQb9rlbnPEtOsg9LN9gP0XHGpbzNbrEv0maOCHBl
	PFPzuJiAP55r9PXf2HbjB5bpf4ejvcWhaDbC/jajIPRrDpHqImUAc51sXdqXK/nPEr0FEaWAsj5
	MmeeZRIBqiv7U57BsCzmpCPr7PkLoV+6ebNlPd+1HOYeMcWZ2FdeglaPrBH2qbn/rRijUT5g8gz
	S//vDPAB1CUGRBBlx5QcOZNbHf4unAXwJUgpd/5kl+R3zAmDnfKeO2/Zj6b3dRhL1wG6LykS3Tu
	2q2P/USmUcKH7I4UV+3rrZGLBpA8ivBxQ0ogqsvaa6N7FfZ7oiVP1T02sBB8XkUTlAOYOA7rQZM
	xUwOIAhB63rLMY=
X-Received: by 2002:a05:600c:8b77:b0:48e:8741:fd42 with SMTP id 5b1f17b1804b1-48e8fe59c3amr56201575e9.12.1778600381495;
        Tue, 12 May 2026 08:39:41 -0700 (PDT)
Message-ID: <13ca8476-1164-4436-89ba-d4da52d3c8c3@suse.com>
Date: Tue, 12 May 2026 17:39:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 v2 0/8] x86/mwait-idle: sync up with Linux 7.0-rc
From: Jan Beulich <jbeulich@suse.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1778600382-AE342FF4-B284F238/0/0
X-purgate-type: clean
X-purgate-size: 516

On 12.05.2026 17:34, Jan Beulich wrote:
> Includes a few custom changes, too.
> 
> 1: arrange for BSP MSR adjustments during S3 resume
> 2: clean up BYT/CHT auto demotion disable
> 3: latch struct idle_cpu contents
> 4: move pre-initialized struct idle_cpu instances
> 5: Remove the 'preferred_cstates' parameter
> 6: drop const from struct cpuidle_state arrays
> 7: Add cmdline option to adjust C-states table
> 8: Add C-states validation

I probably should have Cc-ed you on the v2 submission.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 12 15:49:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:49:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307074.1578801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpLv-0001N3-2x; Tue, 12 May 2026 15:48:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307074.1578801; Tue, 12 May 2026 15:48:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpLv-0001Mw-0E; Tue, 12 May 2026 15:48:59 +0000
Received: by outflank-mailman (input) for mailman id 1307074;
 Tue, 12 May 2026 15:48:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMpLu-0001MZ-Id
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:48:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpLt-00HJSC-VX
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:48:57 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a034bde-e002-0a2a0a5209dd-0a2a4502a8bc-44
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:48:57 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a034be9-af86-0a2a45020019-d155802ae921-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:48:57 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-4891d7164ddso32344545e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:48:57 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e8f41a8b1sm31989155e9.7.2026.05.12.08.48.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:48:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778600937; x=1779205737; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=oJwQnC+99LxDyEz1ZKRp0nX/wm7Pp6O7+kV6TjSLTSU=;
        b=jp8PXRjkUUGAFThWmzufUBsSyfxeTQCtB4LWtomIsBZkE3UgqPNha10nVwsyy7ya/L
         LauOSnO7NsgmjRL7mZzOmszGF70MKYBNL0dxo8r8QeNmDuwGbUSgqMbPocT7xSjejPKe
         /3vxl4uvYamnPJzFai+Dg+8MRrrwZ2qOg+WOgvNRUARkeNlovLefD3c1TGJP6d/ybTWE
         VE8ASwWY0X5gnpFt98SAsCWeK2WBFaB67G3vETnxcIhIBJwxpns3i0wcr+hrLMd4PnnG
         wB//5uSEaUa92PjqDE4lTqMyQEOYr2BlCDRQ/BzDdZBzhWg+V4bJBfGbQhNLPybQjpCf
         nZ/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778600937; x=1779205737;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=oJwQnC+99LxDyEz1ZKRp0nX/wm7Pp6O7+kV6TjSLTSU=;
        b=qKdy3nr/wFYjjPRLoCJTfK6KWE1lGYxVAoP+HV/sYnufyMUrDsfcGLnme6PgobSUkk
         JFeGD9syS6vM9BsK6EABm/3SANWju7wbxZfb1MB6VaiG51AJSlrKwJnPMgmEOFk5AONb
         NjHG1XjGrJqSHrSdkZoTnbvD2cezTs+Ag6+jiP6Fuj4PpXpqHDzlz1eBi8dOORn2BRmD
         +Y+/wdUWOSH0Qk5NKZg1EFYpVTRJaD23rOWqpCiR8RDwpvWdivb5Rwzvv+UDtykamybH
         g+apYTblQVNySn/O4p4lXGf2IOVFDlAlnNaJBkWcyhwohm9vHGrFkaD1JgphjDydfSzN
         TkBQ==
X-Forwarded-Encrypted: i=1; AFNElJ/j+VFudWbfctSpM0JqJ8w7Dtz0dUxjj8Yw0uq5Wt3QDNG5H/1N+ZQ+z7ENWlKxs2mT8247NuxK1HM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxXlCVj4xcK7KVZdnq789b75Do7JAWiGj0OaZg5I9R/RWPWQkrq
	LqdSqCBPNZjqrHMY3kr2TGbszO1MWpfrOTSQYjBiIESFwC/4nV9w0UGS
X-Gm-Gg: Acq92OFJkO1SyATP2jkkqeRsDF2wC3rXmqiGBzxSLaZF/foRqTbolg14ItC04FIIVm4
	AyYolG/6yfOUXGoIDi2WkZyY+4yyjm6pj1cCugOSNBGKzz4wZCQ04DvI3zw6ddfxdWF+mC+V2SL
	UFcnN5r6s1Aznwimk5VbCooYWk31CUk/jzNnxQzs0QbznRUk6fBqssfqiqjsJYJ+ru1VMzN5paX
	jI0ZR8iTwJauyG2V/DPAASEqclgYQwdunTMQugmnuql4Ww0i5ArOojDhfqc1hnr44KXvvpIryZB
	Y4yG4DB8pgnR+X5r3VmOjoKsCnbNxsVg+WgJzN2jyewW9GiS7Boyuex2Bx52GXeChOdcOXfVT3v
	JqcVGYcKshDOcrrcLRPNnRjo1UJ6j1wnhAbA/5XFh1WrIwfLYzsJuq++JZEFicBVomFup1GFhpe
	9FI/0fx1FWWorNZGfao4B5h4Epjs0UdatCBuam/XwS1P/xxT4dXLNoQB2U9O4blMEmcCxvkpieS
	T8=
X-Received: by 2002:a05:600c:8508:b0:48f:99a9:bbcc with SMTP id 5b1f17b1804b1-48f99a9bd89mr19326595e9.10.1778600937263;
        Tue, 12 May 2026 08:48:57 -0700 (PDT)
Message-ID: <7a911029-57ba-421d-9657-03762dfe1109@gmail.com>
Date: Tue, 12 May 2026 17:48:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/4] tools/xenstore: fix issue related to XSA-417
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20260429120619.1013440-1-jgross@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20260429120619.1013440-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1778600937-ABD67161-B728FC79/10/73395122804
X-purgate-type: spam
X-purgate-size: 3179



On 4/29/26 2:06 PM, Juergen Gross wrote:
> There is one corner case of XSA-417 which wasn't handled completely
> with the patches back then.
> 
> The XSA-417 fixes tried to solve the problem, that a new domU would
> inherit access permissions to access Xenstore entries with that domid
> listed in the access rights. In order not to make it easy for a domU
> to query existence of a domid, adding permission for a non-existing
> domain is not rejected by Xenstore. The XSA-417 patches solved that
> problem by adding a flag to a permission entry referencing a not
> existing domain, indicating that the permission should not be
> effective for Xenstore.
> 
> One corner case was not handled:
> 
> Consider guest 1 and guest 2 running. Guest 1 adds guest 2 to be able
> to access a Xenstore entry. Now guest 2 is removed from the system and
> a new guest 3 with the same domid as guest 2 had is being created.
> 
> When guest 3 would try now to access the Xenstore entry, it would fail,
> as Xenstore would see that the Xenstore entry is older than guest 3.
> 
> But if guest 1 is modifying the permissions of the Xenstore entry
> again, e.g. by adding another domain, the permission entry for guest 2
> would lose its "special flag", resulting in guest 3 now really gaining
> access to the Xenstore entry.
> 
> This series is fixing this problem by the following means:
> 
> - In order to allow guests to know that a Xenstore entry permission
>    might have gone stale, allow unprivileged guests to receive
>    @releaseDomain watch events. This doesn't open a security hole, as
>    the only knowledge which can by gathered from that change is that a
>    domain is gone, not that a domain with a specific domid is existing.
> 
> - When a domain is removed, remove all permissions relating to this
>    domain from all Xenstore entries.
> 
> Note that this issue was discussed by the Xen security team and we
> decided not to issue an XSA, as there are no known use cases where one
> unprivileged guest would grant access to its Xenstore nodes to more
> than one other unprivileged guests.
> 
> We decided to delay this patch series until the watch depth feature has
> been committed, as with that feature available it is now possible for
> a guest to handle the death of a specific domain in a sane way.
> 
> Changes in V2:
> - some minor comments addressed
> 
> Denis Mukhin (1):
>    xen/public: introduce DOMID_ANY
> 
> Juergen Gross (3):
>    tools/xenstored: add support for "all domains" node permission
>    tools/xenstored: allow @releaseDomain watch for all domains
>    tools/xenstored: remove permissions related to dead domain
> 
>   docs/man/xl.cfg.5.pod.in        |  4 ++
>   tools/xenstored/core.c          | 45 ++++++++++++++-----
>   tools/xenstored/domain.c        | 78 +++++++++++++++++++++------------
>   tools/xenstored/domain.h        |  3 +-
>   xen/include/public/io/xs_wire.h |  2 +
>   xen/include/public/xen.h        |  7 +++
>   6 files changed, 100 insertions(+), 39 deletions(-)
> 

Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:53:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:53:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307082.1578810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpPq-0002zK-IL; Tue, 12 May 2026 15:53:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307082.1578810; Tue, 12 May 2026 15:53:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpPq-0002zD-FT; Tue, 12 May 2026 15:53:02 +0000
Received: by outflank-mailman (input) for mailman id 1307082;
 Tue, 12 May 2026 15:53:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMpPo-0002z7-Th
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:53:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpPo-004OV0-7B
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:53:00 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a034cd7-5cb7-0a2a0a5109dd-0a2a450193be-6
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:53:00 +0200
Received: from [209.85.208.50] (helo=mail-ed1-f50.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a034cdb-c1f2-0a2a45010019-d155d032c0ad-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:53:00 +0200
Received: by mail-ed1-f50.google.com with SMTP id
 4fb4d7f45d1cf-67e2498f3a7so9388797a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:53:00 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd11371bad9sm283557666b.57.2026.05.12.08.52.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 08:52:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778601179; x=1779205979; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=wBz7wmmAOV83XcRvhQ7yJstvTpFKV1EJpCrEX2DZycg=;
        b=OiEKNu1zkDpCTUiBLaASbxbf3yx8RyCcP4YsaYEB/SLhyAEUF0pnB+yqAQhJhtt+Pb
         +7SvD+aU+WF/cgYKo0A+JkapZSiHLyQm//C9MPup+vlqS+YagyWbssbNeo5fuc9Rcyra
         VP+4VuxuyWCAKLNEUh3b6oT9KU4YpPSWSDYZhwOPLQD/16vtL1unGk+ysiIaeyShuiwD
         j24QWg48wszRUk6BrpFnfRI42jP91XsAWIZP9HYkNHZ5cITc4daN2QL6fr4n1u6j8bFZ
         Ajtqr54dTMqAIk+t2VHep8oBUL734+E1lkJdQfFqW1ciJ4IsYuCMscS0K0DV6RC5/4mn
         ZNXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778601179; x=1779205979;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=wBz7wmmAOV83XcRvhQ7yJstvTpFKV1EJpCrEX2DZycg=;
        b=kZ+1byXjjzYV5cUaz2+c2qTfjudvj2rmOH36jGizd++Rk3bpShdN527cPHzQ44P9cE
         B9SO7VtuNAAho+PQ+Vod4X2dOt8hR19n5869x2iZ9g7izM3aSOYjVeFNLMVrRB6CnyMR
         i20ztLPuvNqSOTzSlEz+GomtUXE/hU0VDg5M0h7FlkShPEhasno2odG6rIVyAhS9Vlid
         k0Iazso61ny6aWxdgQO/RXoNGn4t+DDnj+8PLkOplfJVt9lzJAgZoDoxF26X7Gw7aSWg
         PTqgf5xvBKMMnq3G/IY2PFrA7gt1KXDJJOdZoBrF/5qhger8hjkeBsR6zpkrxcq9S1bP
         L0CQ==
X-Forwarded-Encrypted: i=1; AFNElJ8W8UtMmkzam5cexZS67bW5evxQcsx+ZIQsXl4qXLf5FUEXOT2L8g4XSclzQyPW2CTd7w4J+qF4TUY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyE2wk7MsSpUJKQlRGrvOZXCa+oY7mMI4RvU+E5OKm9FiW6Fd4+
	Ph+75PqVhSTCdpYtwR4ZrWfHmvGBGnZlH0UIBi7IlLmYzwi3JOhh6swI6GpioF0blA0=
X-Gm-Gg: Acq92OEjeyy4udvoGTFKIYG2fVUDxomRFyFoaQbyYJ+QaYLLR/cAlZha8XJ+kYWMYzS
	PrH0p85/FDiN7xcFrBlYVTGPgNir0dqjEvHff3zOY9TvuG4xaRB+fvdKSPRfIXkqIn44lnzt5Ao
	9nE3TqmuwpPM/q8JMPg3bLznJy4/COXi7wgSmnhw2oOdt8gZHL0R7/CZ3n9KnJZ/VRr+BXq7m5N
	HCIEa6yk2/0HmPiHXp5QEHncb3zuXajEPBmq3TwQkOj/TCrb6JMZy219KWaUmxc4WSzemIDdQ4U
	dk13fO+ZqygzfrLofdrz8n1dAJpYPveZBi+F4JCaIYhLYwnR50p4K6oPw5WtedF5rrJ6qNhtZv3
	i4Y0AOXxThx0Y6ar0GjF4tlXGaXp3GkYGjutKT8+6mOX0tsABh08ZO8xNIitsMsivIdh0G79bze
	ngjDf9C1z+ttcQgbD75/UiEKmbDZWJknEBa/D9rENH+5JI4vB78z3GCQM3if+taX3WeXyk5nuAm
	ZCsOJdIcr33GVsffZcxq4qk0vQAubfJhwz88j8lalbXKIyUBWU/pXxru/FQhxCZ
X-Received: by 2002:a17:907:d041:b0:bd3:23d6:acb7 with SMTP id a640c23a62f3a-bd323d6b280mr135610466b.14.1778601179579;
        Tue, 12 May 2026 08:52:59 -0700 (PDT)
Message-ID: <06e1554e-87b0-4aae-ac55-a547bf810a92@suse.com>
Date: Tue, 12 May 2026 17:52:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/4] tools/xenstore: fix issue related to XSA-417
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20260429120619.1013440-1-jgross@suse.com>
 <7a911029-57ba-421d-9657-03762dfe1109@gmail.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <7a911029-57ba-421d-9657-03762dfe1109@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------lTQ1cRUfiNgBk99CdoxkFxlz"
X-purgate-ID: tlsNG-d62444/1778601180-B7555FF4-13DA3B1C/10/73395122804
X-purgate-type: spam
X-purgate-size: 12454

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------lTQ1cRUfiNgBk99CdoxkFxlz
Content-Type: multipart/mixed; boundary="------------RODOeHPUGP0nvgf27v1Dq21C";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <06e1554e-87b0-4aae-ac55-a547bf810a92@suse.com>
Subject: Re: [PATCH v2 0/4] tools/xenstore: fix issue related to XSA-417
References: <20260429120619.1013440-1-jgross@suse.com>
 <7a911029-57ba-421d-9657-03762dfe1109@gmail.com>
In-Reply-To: <7a911029-57ba-421d-9657-03762dfe1109@gmail.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------RODOeHPUGP0nvgf27v1Dq21C
Content-Type: multipart/mixed; boundary="------------50cbvmlR3VA9RtbtZCDrbhZI"

--------------50cbvmlR3VA9RtbtZCDrbhZI
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTIuMDUuMjYgMTc6NDgsIE9sZWtzaWkgS3Vyb2Noa28gd3JvdGU6DQo+IA0KPiANCj4g
T24gNC8yOS8yNiAyOjA2IFBNLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gVGhlcmUgaXMg
b25lIGNvcm5lciBjYXNlIG9mIFhTQS00MTcgd2hpY2ggd2Fzbid0IGhhbmRsZWQgY29tcGxl
dGVseQ0KPj4gd2l0aCB0aGUgcGF0Y2hlcyBiYWNrIHRoZW4uDQo+Pg0KPj4gVGhlIFhTQS00
MTcgZml4ZXMgdHJpZWQgdG8gc29sdmUgdGhlIHByb2JsZW0sIHRoYXQgYSBuZXcgZG9tVSB3
b3VsZA0KPj4gaW5oZXJpdCBhY2Nlc3MgcGVybWlzc2lvbnMgdG8gYWNjZXNzIFhlbnN0b3Jl
IGVudHJpZXMgd2l0aCB0aGF0IGRvbWlkDQo+PiBsaXN0ZWQgaW4gdGhlIGFjY2VzcyByaWdo
dHMuIEluIG9yZGVyIG5vdCB0byBtYWtlIGl0IGVhc3kgZm9yIGEgZG9tVQ0KPj4gdG8gcXVl
cnkgZXhpc3RlbmNlIG9mIGEgZG9taWQsIGFkZGluZyBwZXJtaXNzaW9uIGZvciBhIG5vbi1l
eGlzdGluZw0KPj4gZG9tYWluIGlzIG5vdCByZWplY3RlZCBieSBYZW5zdG9yZS4gVGhlIFhT
QS00MTcgcGF0Y2hlcyBzb2x2ZWQgdGhhdA0KPj4gcHJvYmxlbSBieSBhZGRpbmcgYSBmbGFn
IHRvIGEgcGVybWlzc2lvbiBlbnRyeSByZWZlcmVuY2luZyBhIG5vdA0KPj4gZXhpc3Rpbmcg
ZG9tYWluLCBpbmRpY2F0aW5nIHRoYXQgdGhlIHBlcm1pc3Npb24gc2hvdWxkIG5vdCBiZQ0K
Pj4gZWZmZWN0aXZlIGZvciBYZW5zdG9yZS4NCj4+DQo+PiBPbmUgY29ybmVyIGNhc2Ugd2Fz
IG5vdCBoYW5kbGVkOg0KPj4NCj4+IENvbnNpZGVyIGd1ZXN0IDEgYW5kIGd1ZXN0IDIgcnVu
bmluZy4gR3Vlc3QgMSBhZGRzIGd1ZXN0IDIgdG8gYmUgYWJsZQ0KPj4gdG8gYWNjZXNzIGEg
WGVuc3RvcmUgZW50cnkuIE5vdyBndWVzdCAyIGlzIHJlbW92ZWQgZnJvbSB0aGUgc3lzdGVt
IGFuZA0KPj4gYSBuZXcgZ3Vlc3QgMyB3aXRoIHRoZSBzYW1lIGRvbWlkIGFzIGd1ZXN0IDIg
aGFkIGlzIGJlaW5nIGNyZWF0ZWQuDQo+Pg0KPj4gV2hlbiBndWVzdCAzIHdvdWxkIHRyeSBu
b3cgdG8gYWNjZXNzIHRoZSBYZW5zdG9yZSBlbnRyeSwgaXQgd291bGQgZmFpbCwNCj4+IGFz
IFhlbnN0b3JlIHdvdWxkIHNlZSB0aGF0IHRoZSBYZW5zdG9yZSBlbnRyeSBpcyBvbGRlciB0
aGFuIGd1ZXN0IDMuDQo+Pg0KPj4gQnV0IGlmIGd1ZXN0IDEgaXMgbW9kaWZ5aW5nIHRoZSBw
ZXJtaXNzaW9ucyBvZiB0aGUgWGVuc3RvcmUgZW50cnkNCj4+IGFnYWluLCBlLmcuIGJ5IGFk
ZGluZyBhbm90aGVyIGRvbWFpbiwgdGhlIHBlcm1pc3Npb24gZW50cnkgZm9yIGd1ZXN0IDIN
Cj4+IHdvdWxkIGxvc2UgaXRzICJzcGVjaWFsIGZsYWciLCByZXN1bHRpbmcgaW4gZ3Vlc3Qg
MyBub3cgcmVhbGx5IGdhaW5pbmcNCj4+IGFjY2VzcyB0byB0aGUgWGVuc3RvcmUgZW50cnku
DQo+Pg0KPj4gVGhpcyBzZXJpZXMgaXMgZml4aW5nIHRoaXMgcHJvYmxlbSBieSB0aGUgZm9s
bG93aW5nIG1lYW5zOg0KPj4NCj4+IC0gSW4gb3JkZXIgdG8gYWxsb3cgZ3Vlc3RzIHRvIGtu
b3cgdGhhdCBhIFhlbnN0b3JlIGVudHJ5IHBlcm1pc3Npb24NCj4+IMKgwqAgbWlnaHQgaGF2
ZSBnb25lIHN0YWxlLCBhbGxvdyB1bnByaXZpbGVnZWQgZ3Vlc3RzIHRvIHJlY2VpdmUNCj4+
IMKgwqAgQHJlbGVhc2VEb21haW4gd2F0Y2ggZXZlbnRzLiBUaGlzIGRvZXNuJ3Qgb3BlbiBh
IHNlY3VyaXR5IGhvbGUsIGFzDQo+PiDCoMKgIHRoZSBvbmx5IGtub3dsZWRnZSB3aGljaCBj
YW4gYnkgZ2F0aGVyZWQgZnJvbSB0aGF0IGNoYW5nZSBpcyB0aGF0IGENCj4+IMKgwqAgZG9t
YWluIGlzIGdvbmUsIG5vdCB0aGF0IGEgZG9tYWluIHdpdGggYSBzcGVjaWZpYyBkb21pZCBp
cyBleGlzdGluZy4NCj4+DQo+PiAtIFdoZW4gYSBkb21haW4gaXMgcmVtb3ZlZCwgcmVtb3Zl
IGFsbCBwZXJtaXNzaW9ucyByZWxhdGluZyB0byB0aGlzDQo+PiDCoMKgIGRvbWFpbiBmcm9t
IGFsbCBYZW5zdG9yZSBlbnRyaWVzLg0KPj4NCj4+IE5vdGUgdGhhdCB0aGlzIGlzc3VlIHdh
cyBkaXNjdXNzZWQgYnkgdGhlIFhlbiBzZWN1cml0eSB0ZWFtIGFuZCB3ZQ0KPj4gZGVjaWRl
ZCBub3QgdG8gaXNzdWUgYW4gWFNBLCBhcyB0aGVyZSBhcmUgbm8ga25vd24gdXNlIGNhc2Vz
IHdoZXJlIG9uZQ0KPj4gdW5wcml2aWxlZ2VkIGd1ZXN0IHdvdWxkIGdyYW50IGFjY2VzcyB0
byBpdHMgWGVuc3RvcmUgbm9kZXMgdG8gbW9yZQ0KPj4gdGhhbiBvbmUgb3RoZXIgdW5wcml2
aWxlZ2VkIGd1ZXN0cy4NCj4+DQo+PiBXZSBkZWNpZGVkIHRvIGRlbGF5IHRoaXMgcGF0Y2gg
c2VyaWVzIHVudGlsIHRoZSB3YXRjaCBkZXB0aCBmZWF0dXJlIGhhcw0KPj4gYmVlbiBjb21t
aXR0ZWQsIGFzIHdpdGggdGhhdCBmZWF0dXJlIGF2YWlsYWJsZSBpdCBpcyBub3cgcG9zc2li
bGUgZm9yDQo+PiBhIGd1ZXN0IHRvIGhhbmRsZSB0aGUgZGVhdGggb2YgYSBzcGVjaWZpYyBk
b21haW4gaW4gYSBzYW5lIHdheS4NCj4+DQo+PiBDaGFuZ2VzIGluIFYyOg0KPj4gLSBzb21l
IG1pbm9yIGNvbW1lbnRzIGFkZHJlc3NlZA0KPj4NCj4+IERlbmlzIE11a2hpbiAoMSk6DQo+
PiDCoMKgIHhlbi9wdWJsaWM6IGludHJvZHVjZSBET01JRF9BTlkNCj4+DQo+PiBKdWVyZ2Vu
IEdyb3NzICgzKToNCj4+IMKgwqAgdG9vbHMveGVuc3RvcmVkOiBhZGQgc3VwcG9ydCBmb3Ig
ImFsbCBkb21haW5zIiBub2RlIHBlcm1pc3Npb24NCj4+IMKgwqAgdG9vbHMveGVuc3RvcmVk
OiBhbGxvdyBAcmVsZWFzZURvbWFpbiB3YXRjaCBmb3IgYWxsIGRvbWFpbnMNCj4+IMKgwqAg
dG9vbHMveGVuc3RvcmVkOiByZW1vdmUgcGVybWlzc2lvbnMgcmVsYXRlZCB0byBkZWFkIGRv
bWFpbg0KPj4NCj4+IMKgIGRvY3MvbWFuL3hsLmNmZy41LnBvZC5pbsKgwqDCoMKgwqDCoMKg
IHzCoCA0ICsrDQo+PiDCoCB0b29scy94ZW5zdG9yZWQvY29yZS5jwqDCoMKgwqDCoMKgwqDC
oMKgIHwgNDUgKysrKysrKysrKysrKystLS0tLQ0KPj4gwqAgdG9vbHMveGVuc3RvcmVkL2Rv
bWFpbi5jwqDCoMKgwqDCoMKgwqAgfCA3OCArKysrKysrKysrKysrKysrKysrKystLS0tLS0t
LS0tLS0NCj4+IMKgIHRvb2xzL3hlbnN0b3JlZC9kb21haW4uaMKgwqDCoMKgwqDCoMKgIHzC
oCAzICstDQo+PiDCoCB4ZW4vaW5jbHVkZS9wdWJsaWMvaW8veHNfd2lyZS5oIHzCoCAyICsN
Cj4+IMKgIHhlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaMKgwqDCoMKgwqDCoMKgIHzCoCA3ICsr
Kw0KPj4gwqAgNiBmaWxlcyBjaGFuZ2VkLCAxMDAgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRp
b25zKC0pDQo+Pg0KPiANCj4gUmVsZWFzZS1BY2tlZC1ieTogT2xla3NpaSBLdXJvY2hrbyA8
b2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20+DQoNClRoYW5rIHlvdS4NCg0KQW55IHJlc3Qg
bWFpbnRhaW5lciB3aWxsaW5nIHRvIGFjayBwYXRjaCAxPw0KDQoNCkp1ZXJnZW4NCg==
--------------50cbvmlR3VA9RtbtZCDrbhZI
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------50cbvmlR3VA9RtbtZCDrbhZI--

--------------RODOeHPUGP0nvgf27v1Dq21C--

--------------lTQ1cRUfiNgBk99CdoxkFxlz
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmoDTNoFAwAAAAAACgkQsN6d1ii/Ey8X
AQf/czV3eozegtxuUwnqXhiGgwIW0+htQ26fLwRZTRSIMNM7bZQTVPEurz4IhVZa3LR9GXypS20J
P0H80L7JChOdFdXkgiiRcAJ0zOSf+z+f7bzPjSva60toaP+ZBuNp3tSXCHr7hQoD/v7xlKIF2Ogr
TvP97mKMsZUIoPVWCjNLYfMyYz7hioOhhG1b7idhRb3Qe+mEFKRuB0L96sOiJ/jvny0fQHGaAZ7e
i6Jhhh2p+Bes3gJ+vv1JBWFyliP9Eb1/i0FHgldbvHcWsHOz78oRenefOKX065nSxSjmY/ExTO2E
qcz3iwSFv2g0Ojpfjz+jGCsBdnqgDKTjn2TUL7Pmrw==
=NhOb
-----END PGP SIGNATURE-----

--------------lTQ1cRUfiNgBk99CdoxkFxlz--


From xen-devel-bounces@lists.xenproject.org Tue May 12 15:55:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:55:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307094.1578837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpSd-0003uT-Fr; Tue, 12 May 2026 15:55:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307094.1578837; Tue, 12 May 2026 15:55:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpSd-0003uM-Bl; Tue, 12 May 2026 15:55:55 +0000
Received: by outflank-mailman (input) for mailman id 1307094;
 Tue, 12 May 2026 15:55:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMpSb-0003UQ-BI
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:55:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpSa-00BEWS-OV
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:55:52 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 6a034d88-e002-0a2a0a5209dd-0a2a4509d4fc-2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:55:52 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 6a034d88-2497-0a2a45090019-d155802fb4e4-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:55:52 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-488af96f6b2so68703525e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:55:52 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8d69d0bsm4361335e9.13.2026.05.12.08.55.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 08:55:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1778601352; x=1779206152; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eWLklbcInMPQObYaiBnOHsAE/t9hZPY8o89RLu9YkzU=;
        b=O9THNi4xrLB6Y1oPM3C5RAVefSiWxB0mUz1/YviUnYfo77kyEii4xWoAaSKojZpRRo
         Ou71vQ/vApP4fDmX+Gguo8TN2NqBAu0j7H+nmj9FLLOqlk7SFrltzAMYF1pMnOQclL+M
         EZuXEP9bezZLP3AignX6yU2lpNTpWoKZQcTyc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778601352; x=1779206152;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=eWLklbcInMPQObYaiBnOHsAE/t9hZPY8o89RLu9YkzU=;
        b=gHce2PX/HUB0AsAD88hC5IpcZXfu39enfhZnTG/LxSYZwnxLu3g8ZQbYAfgbKIWE2H
         Sqc13k6FDtLO/g4T32O/MwjSMlVDHnsLHH03ylNIcbaQlF4gjzZg6+oZBZzZe86RDrVE
         YboDLtXvuXN+JuLMNKbI0Qo/P8lseQ9oCtpeofUXW0NhlAdi+xzos9hw72kGUpZTON2f
         6fwU4qgpa9qRWi2HW133eCOxEdMEGMUPB/KwPJW7Bf3Lah/Qq9q8ZqvAFasuB+PJS2gJ
         GVSt6r1jgaZvDRrN5um3UKvztEbQJyBCFexdFdV6DBZBvm2cRbPFrH3kdrB+FTO7ZWOH
         aEeQ==
X-Gm-Message-State: AOJu0YxjKKhf3PQX4vVaAEdXit5cmzIegT0g2tJvK/4SjHkgdBrFoEpz
	qypkpjHqKsW0jswSZ7gIFt/ZiUZXNV78yGXzKvwMgvKC6T3CjQbiwHbsup6+jOnEEgf+QPhFOKn
	uV/l7zVc=
X-Gm-Gg: Acq92OFZnFGKEj3datAxcOHrrQ4jtTaTOf6u+neKNOvtTKw21+BOwLQLapg3RE745ja
	XUqdC7AH/NqrIIcOcPQbazjxV/hRp3z9hh90Tzl62rz+G3OJ2l0C7c2WmnIREQWffj4KYBVaJmz
	I9kSPm0oFQnadFel535d6fbBkRBbLEcIxpyVF0uIYabQU3EJTEvTW3oSpUU5vr+jzwW+fucxipF
	V3f4GjvFntZcO/r+5xcnX/3YwVemyPunPA6pJAW5nhRG//vRjhXi668WrSBF7ecG1QKZe9fu3C0
	6No2r3iu3EAwhyaMMeysgKb6vvVVqWlaET7Z7zL1yOnBeXBAU7SICwyCSXPqNrerMyMj8npUjD9
	a6403XygFWeHoJihhpGCWrwidM5vpvDDUUQY8dHjpQs21T7s7fo/+2Q4Ud+fSSgiNYiFGhaLCrA
	c0GF7GRUBSPqpbgYmfRirhv3J2MHgy2zbs2G5hJXwKPJTBtMw+Z+fFEwqeZMAhICOpfMfiXGnTw
	nmn
X-Received: by 2002:a05:600c:45d0:b0:488:7ff6:1f75 with SMTP id 5b1f17b1804b1-48e707f821dmr238327625e9.21.1778601351719;
        Tue, 12 May 2026 08:55:51 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 2/2] tests/paging-mempool: Extend to test P2M relocation
Date: Tue, 12 May 2026 16:55:40 +0100
Message-Id: <20260512155540.1733403-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260512155540.1733403-1-andrew.cooper3@citrix.com>
References: <20260512155540.1733403-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778601352-37F7EA53-072FC948/10/73395122804
X-purgate-type: spam
X-purgate-size: 12153

XENMAPSPACE_gmfn_range was found to be buggy with overlapping ranges, and the
fix is sufficiently far from clear that yours truely decided a test was in
order.

XENMAPSPACE_gmfn_range is exposed by xendevicemodel_relocate_memory() so take
the opportunity to create a better example for others to copy.

The test works as follows.  Populate 2M of RAM in the guest, marking the pages
so they can be identified later.  Then construct four relocation test
cases (overlapping vs non-overlapping, forwards vs backwards) using the marks
in the guest pages to confirm that the P2M was adjusted correctly.

The use of XEN_DOMCTL_CDF_iommu forces xenmem_add_to_physmap() to limit the
iteration count to a maximum of 16.  Use this to force a continuation and
exercise more of the logic.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

paging-mempool isn't necessary the best named test to put this in, but it's
the one with the best structure to fit it.  We are going to want to shuffle
the testing structure a bit when we've got a couple more examples to draw good
lines between.

Without "memory: overlapping XENMAPSPACE_gmfn_range requests", this fails:

  ...
  Test p2m memory relocation
    Test forward, no overlap:   GFNs [3e0...3ff] -> [400...41f]
    Test forward, overlapping:  GFNs [3c0...3df] -> [3c1...3e0]
      Fail: check mark unable to map 003c1: -22
      Fail: check mark unable to map 003c2: -22
      Fail: check mark unable to map 003c3: -22
      Fail: check mark unable to map 003c4: -22
      Fail: check mark unable to map 003c5: -22
      Fail: check mark unable to map 003c6: -22
      Fail: check mark unable to map 003c7: -22
      Fail: check mark unable to map 003c8: -22
      Fail: check mark unable to map 003c9: -22
      Fail: check mark unable to map 003ca: -22
      Fail: check mark unable to map 003cb: -22
      Fail: check mark unable to map 003cc: -22
      Fail: check mark unable to map 003cd: -22
      Fail: check mark unable to map 003ce: -22
      Fail: check mark unable to map 003cf: -22
      Fail: check mark unable to map 003d0: -22
      Fail: check mark unable to map 003d1: -22
      Fail: check mark unable to map 003d2: -22
      Fail: check mark unable to map 003d3: -22
      Fail: check mark unable to map 003d4: -22
      Fail: check mark unable to map 003d5: -22
      Fail: check mark unable to map 003d6: -22
      Fail: check mark unable to map 003d7: -22
      Fail: check mark unable to map 003d8: -22
      Fail: check mark unable to map 003d9: -22
      Fail: check mark unable to map 003da: -22
      Fail: check mark unable to map 003db: -22
      Fail: check mark unable to map 003dc: -22
      Fail: check mark unable to map 003dd: -22
      Fail: check mark unable to map 003de: -22
      Fail: check mark unable to map 003df: -22
      Fail: check mark: gfn 003e0 expecting fffffe20 (479), got fffffe3f (448)

With the fix in place, the test passes:

  ...
  Test p2m memory relocation
    Test forward, no overlap:   GFNs [3e0...3ff] -> [400...41f]
    Test forward, overlapping:  GFNs [3c0...3df] -> [3c1...3e0]
    Test backwards, no overlap: GFNs [200...21f] -> [1e0...1ff]
    Test backwards, no overlap: GFNs [220...23f] -> [21f...23e]
---
 tools/tests/paging-mempool/Makefile           |   4 +
 .../paging-mempool/test-paging-mempool.c      | 197 +++++++++++++++++-
 xen/common/memory.c                           |   2 +-
 3 files changed, 201 insertions(+), 2 deletions(-)

diff --git a/tools/tests/paging-mempool/Makefile b/tools/tests/paging-mempool/Makefile
index a1e12584ce80..7444d81b8460 100644
--- a/tools/tests/paging-mempool/Makefile
+++ b/tools/tests/paging-mempool/Makefile
@@ -25,9 +25,13 @@ uninstall:
 
 CFLAGS += $(CFLAGS_xeninclude)
 CFLAGS += $(CFLAGS_libxenctrl)
+CFLAGS += $(CFLAGS_libxendevicemodel)
+CFLAGS += $(CFLAGS_libxenforeignmemory)
 CFLAGS += $(APPEND_CFLAGS)
 
 LDFLAGS += $(LDLIBS_libxenctrl)
+LDFLAGS += $(LDLIBS_libxendevicemodel)
+LDFLAGS += $(LDLIBS_libxenforeignmemory)
 LDFLAGS += $(APPEND_LDFLAGS)
 
 %.o: Makefile
diff --git a/tools/tests/paging-mempool/test-paging-mempool.c b/tools/tests/paging-mempool/test-paging-mempool.c
index d1207d26d3fc..fc0375358324 100644
--- a/tools/tests/paging-mempool/test-paging-mempool.c
+++ b/tools/tests/paging-mempool/test-paging-mempool.c
@@ -6,6 +6,7 @@
 #include <sys/mman.h>
 
 #include <xenctrl.h>
+#include <xendevicemodel.h>
 #include <xenforeignmemory.h>
 #include <xengnttab.h>
 #include <xen-tools/common-macros.h>
@@ -19,10 +20,15 @@ static unsigned int nr_failures;
 })
 
 static xc_interface *xch;
+static xendevicemodel_handle *dh;
+static xenforeignmemory_handle *fh;
 static uint32_t domid;
 
 static struct xen_domctl_createdomain create = {
-    .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
+    .flags = (XEN_DOMCTL_CDF_hvm |
+              XEN_DOMCTL_CDF_hap |
+              XEN_DOMCTL_CDF_iommu |
+              0),
     .max_vcpus = 1,
     .max_grant_frames = 1,
     .grant_opts = XEN_DOMCTL_GRANT_version(1),
@@ -145,6 +151,183 @@ static int test_paging_mempool_size(void)
     return 0;
 }
 
+static int mark_guest_mem(xen_pfn_t gfn, size_t count)
+{
+    xen_pfn_t gfns[count];
+    uint32_t *mem;
+    size_t i;
+    int rc;
+
+    for ( i = 0; i < count; ++i )
+        gfns[i] = gfn + i;
+
+    mem = xenforeignmemory_map(fh, domid, PROT_READ | PROT_WRITE,
+                               count, gfns, NULL);
+    if ( !mem )
+        return fail("  Fail: mark mem foreign map: %d - %s\n",
+                    errno, strerror(errno));
+
+    for ( i = 0; i < count; ++i )
+    {
+        uint32_t *mark = &mem[i << 10];
+
+        *mark = ~i;
+    }
+
+    rc = xenforeignmemory_unmap(fh, mem, count);
+    if ( rc )
+        return fail("  Fail: mark mem foreign unmap: %d - %s\n",
+                    errno, strerror(errno));
+
+    return 0;
+}
+
+static int check_guest_marks(xen_pfn_t gfn, uint32_t mark_start, size_t count)
+{
+    xen_pfn_t gfns[count];
+    int errs[count];
+    uint32_t *mem;
+    size_t i;
+    int rc = 0;
+
+    for ( i = 0; i < count; ++i )
+        gfns[i] = gfn + i;
+
+    mem = xenforeignmemory_map(fh, domid, PROT_READ,
+                               count, gfns, errs);
+    if ( !mem )
+        return fail("    Fail: check mark foreign map: %d - %s\n",
+                    errno, strerror(errno));
+
+    for ( i = 0; i < count; ++i )
+    {
+        uint32_t *mark = &mem[i << 10];
+        uint32_t exp = ~(mark_start + i);
+
+        if ( errs[i] )
+        {
+            rc = -1;
+            fail("    Fail: check mark unable to map %05lx: %d\n", gfns[i], errs[i]);
+            continue;
+        }
+
+        if ( *mark == exp )
+            continue;
+
+        fail("    Fail: check mark: gfn %05lx expecting %08x (%u), got %08x (%u)\n",
+               gfns[i], exp, ~exp, *mark, ~*mark);
+        rc = -1;
+    }
+
+    if ( xenforeignmemory_unmap(fh, mem, count) )
+        return fail("    Fail: check marks foreign unmap: %d - %s\n",
+                    errno, strerror(errno));
+
+    return rc;
+}
+
+static int test_p2m_relocate_memory(void)
+{
+#define GFN_2M ((2UL << 20) >> 12)
+#define GFN_4M ((4UL << 20) >> 12)
+
+    xen_pfn_t physmap[] = { GFN_2M };
+    int rc;
+
+    /*
+     * Inherited state of the domain:
+     * - Unlimited allocation
+     *
+     * Construction of the test:
+     * - Populate 2M at 2M, mark the pages.
+     */
+    printf("Test p2m memory relocation\n");
+
+    rc = xc_domain_populate_physmap_exact(xch, domid, ARRAY_SIZE(physmap),
+                                          9 /* order 2M */, 0 /* flags */, physmap);
+    if ( rc )
+        return fail("  Fail: populate physmap: %d - %s\n",
+                    errno, strerror(errno));
+
+    rc = mark_guest_mem(GFN_2M, 1 << 9 /* order 2M */);
+    if ( rc )
+        return rc;
+
+    /* Sanity check the start and end markers. */
+    if ( (rc = check_guest_marks(GFN_2M,     0,       8)) ||
+         (rc = check_guest_marks(GFN_4M - 8, 512 - 8, 8)) )
+        return rc;
+
+
+#define GFN_PAIR(g, c) (g), ((g) + (c) - 1)
+
+    /*
+     * Move the final 32 pages below 4M forward by 32 pages.  All destination
+     * GFNs free, and no overlap.
+     */
+    printf("  Test forward, no overlap:   GFNs [%lx...%lx] -> [%lx...%lx]\n",
+           GFN_PAIR(GFN_4M - 32, 32), GFN_PAIR(GFN_4M, 32));
+
+    rc = xendevicemodel_relocate_memory(dh, domid, 32, GFN_4M - 32, GFN_4M);
+    if ( rc )
+        return fail("  Fail: relocate memory: %d - %s\n",
+                    errno, strerror(errno));
+
+    rc = check_guest_marks(GFN_4M, 512 - 32, 32);
+    if ( rc )
+        return rc;
+
+    /*
+     * Move the next 32 pages below 4M forward by 1 page.  The region is
+     * almost completely overlapping.
+     */
+    printf("  Test forward, overlapping:  GFNs [%lx...%lx] -> [%lx...%lx]\n",
+           GFN_PAIR(GFN_4M - 64, 32), GFN_PAIR(GFN_4M - 63, 32));
+
+    rc = xendevicemodel_relocate_memory(dh, domid, 32, GFN_4M - 64, GFN_4M - 63);
+    if ( rc )
+        return fail("  Fail: relocate memory: %d - %s\n",
+                    errno, strerror(errno));
+
+    rc = check_guest_marks(GFN_4M - 63, 512 - 64, 32);
+    if ( rc )
+        return rc;
+
+    /*
+     * Move the first 32 pages above 2M backwards by 32 pages.  All
+     * destination GFNs free, and no overlap.
+     */
+    printf("  Test backwards, no overlap: GFNs [%lx...%lx] -> [%lx...%lx]\n",
+           GFN_PAIR(GFN_2M, 32), GFN_PAIR(GFN_2M - 32, 32));
+
+    rc = xendevicemodel_relocate_memory(dh, domid, 32, GFN_2M, GFN_2M - 32);
+    if ( rc )
+        return fail("  Fail: relocate memory: %d - %s\n",
+                    errno, strerror(errno));
+
+    rc = check_guest_marks(GFN_2M - 32, 0, 32);
+    if ( rc )
+        return rc;
+
+    /*
+     * Move the next 32 pages above 2M backwards by 1 page.  The region is
+     * almost completely overlapping.
+     */
+    printf("  Test backwards, no overlap: GFNs [%lx...%lx] -> [%lx...%lx]\n",
+           GFN_PAIR(GFN_2M + 32, 32), GFN_PAIR(GFN_2M + 31, 32));
+
+    rc = xendevicemodel_relocate_memory(dh, domid, 32, GFN_2M + 32, GFN_2M + 31);
+    if ( rc )
+        return fail("  Fail: relocate memory: %d - %s\n",
+                    errno, strerror(errno));
+
+    rc = check_guest_marks(GFN_2M + 31, 32, 32);
+    if ( rc )
+        return rc;
+
+    return 0;
+}
+
 static int run_tests(void)
 {
     int rc;
@@ -153,6 +336,10 @@ static int run_tests(void)
     if ( rc )
         return rc;
 
+    rc = test_p2m_relocate_memory();
+    if ( rc )
+        return rc;
+
     return 0;
 }
 
@@ -166,6 +353,14 @@ int main(int argc, char **argv)
     if ( !xch )
         err(1, "xc_interface_open");
 
+    dh = xendevicemodel_open(NULL, 0);
+    if ( !dh )
+        err(1, "xendevicemodel_open");
+
+    fh = xenforeignmemory_open(NULL, 0);
+    if ( !fh )
+        err(1, "xenforeignmemory_open");
+
     rc = xc_domain_create(xch, &domid, &create);
     if ( rc )
     {
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 1ad4b51c5b02..c6109dc7d664 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -962,7 +962,7 @@ int xenmem_add_to_physmap(struct domain *d, struct xen_add_to_physmap *xatp,
     unsigned int done = 0;
     long rc = 0;
     union add_to_physmap_extra extra = {};
-    struct page_info *pages[16];
+    struct page_info *pages[16]; /* If changing this, adjust test-paging-mempool too */
 
     if ( !paging_mode_translate(d) )
     {
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:55:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:55:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307093.1578825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpSc-0003XP-7j; Tue, 12 May 2026 15:55:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307093.1578825; Tue, 12 May 2026 15:55:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpSc-0003WC-1l; Tue, 12 May 2026 15:55:54 +0000
Received: by outflank-mailman (input) for mailman id 1307093;
 Tue, 12 May 2026 15:55:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wMpSa-0003UK-Vd
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:55:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpSa-001eB7-CF
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:55:52 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 6a034d80-2eae-0a2a0a5409dd-0a2a450696ee-8
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:55:52 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 6a034d88-7371-0a2a45060019-d155802dd027-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:55:52 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-488e1a8ac40so55895555e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:55:52 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8d69d0bsm4361335e9.13.2026.05.12.08.55.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 08:55:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1778601351; x=1779206151; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F5KS7/+TNO6Mwmt8V0F9s0vRqo8U83BG2diX81j3zbo=;
        b=Uk/kMh0q1dKI+I79XoCmEbXdkOGVXiicrGQYU4DDStrxTQNHJq4AQdyVhwXwGElM+w
         JUTb59oOR92tjdWHxqMA1KDdvlu+bNk5rziqgi9PvHLlvJd7Z5rA/AP/Eh/wjnvs45B0
         sMGG9uo0W3iBB0PCTavvSHM9beeh4cTil8jxk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778601351; x=1779206151;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=F5KS7/+TNO6Mwmt8V0F9s0vRqo8U83BG2diX81j3zbo=;
        b=dGUkKxnpSIIgwohVElHVr6RS4pQXncYNjHl6DgseC3MOPTmpEHuyqrCM0LsGeiIlsB
         Smee8BBPShbQgxZ41L8rr50+BTplnwT04SPnJS0+hs0+8pf2hRORG8MYF9PGAVDB8Exc
         etoqDbJzhJDC3dzlMxO1dY3GpbhBHCV5wp06q4AEyOFr/ZaFw9sNMPhFYkX7l7L2ktZX
         BXWrMjLVdk5jtFcFL0uq2FyESD3snwXmcmGaUKMlZKDhRLNFuoKREPzAUHz/a6ucfF4F
         OBASKIf3pVVEEdlMXbSsRjw4rAm0vr/BWA9xjILF1MzQ5poIOtthinBm60t9tpkmN0Z3
         /DQg==
X-Gm-Message-State: AOJu0YxdHArqNnlLLJUXyCTpJibqnQeAl+huA6lzhrrbN15mighgfEQH
	q5B7ZOeCF5EdEsjuRb0RFvlkD4T2eJoM28u/MapXPfDgob9a7Myq0V2X1fpVhNOA0BE88syRkZi
	FvlpligI=
X-Gm-Gg: Acq92OEMaJ/Tgv0KJ83YsJSdwVoUSHJreW643EN0Q83hXSc0XgFV7d4NT/0pCmdQgFh
	qqrvCAUeorMRZ3YTwnRgSpbRojj9u8haiuY/m8NpaqsR5fqPPUBH+bBwwq4a/x1pdlBagSqrC0b
	bbt5hQVwxTTZmk7UWFe34ZPpEV+YMYJIno51bm5RfXiNm8HySZNcVdkBMqUo0RQArhzmkPqk8sL
	m5VG0L5M3D9X8+kYaYMR5r8GwpBK7DU2ql8pZBm/YcOYLYAUw8+epy0J2Y8AsRIyrmGr15HgvD5
	DBql54I7gA/9GmQzUeaQVq5LiKFyJivodvr7G8WqH54/9joN4M1U9YN2o0CjxL6zMpFEfU2Whc7
	ULYEp3CtPq0GrsNYBFiV1bvy/WJafHZBwyzMrb0c0wnP3OqpdBHap+1SmZLYTPsr9Si62n8nrfZ
	vd78bd8QrmO8pFKCXU/hNiaVNbatEI6wfzCQIjT2XGR2QzMH7F/4p1eOHsSxisd7yK48JIw838v
	Ar3
X-Received: by 2002:a05:600c:c4a4:b0:48a:906b:14ca with SMTP id 5b1f17b1804b1-48e8fe7cdfbmr53019775e9.20.1778601351053;
        Tue, 12 May 2026 08:55:51 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 1/2] tests/paging-mempool: Misc cleanup
Date: Tue, 12 May 2026 16:55:39 +0100
Message-Id: <20260512155540.1733403-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260512155540.1733403-1-andrew.cooper3@citrix.com>
References: <20260512155540.1733403-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1778601352-87F7BD75-59128DD6/10/73395122804
X-purgate-type: spam
X-purgate-size: 3334

... ahead of extending it with a second test.

Rename run_tests() to test_paging_mempool_size() and have it return int so the
newly wrapping run_tests() can decide whether to run the next or not.

Comment the parameters to xc_domain_populate_physmap_exact() to make it
clearer what's going on, and remove the page added to the physmap when the
test is done.

No practical change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 .../paging-mempool/test-paging-mempool.c      | 25 ++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/tools/tests/paging-mempool/test-paging-mempool.c b/tools/tests/paging-mempool/test-paging-mempool.c
index 1ebc13455ac2..d1207d26d3fc 100644
--- a/tools/tests/paging-mempool/test-paging-mempool.c
+++ b/tools/tests/paging-mempool/test-paging-mempool.c
@@ -15,6 +15,7 @@ static unsigned int nr_failures;
 ({                                              \
     nr_failures++;                              \
     (void)printf(fmt, ##__VA_ARGS__);           \
+    -1;                                         \
 })
 
 static xc_interface *xch;
@@ -40,7 +41,7 @@ static uint64_t default_mempool_size_bytes =
     16 << 12;
 #endif
 
-static void run_tests(void)
+static int test_paging_mempool_size(void)
 {
     xen_pfn_t physmap[] = { 0 };
     uint64_t size_bytes, old_size_bytes;
@@ -80,7 +81,8 @@ static void run_tests(void)
         return fail("  Fail: setmaxmem: : %d - %s\n",
                     errno, strerror(errno));
 
-    rc = xc_domain_populate_physmap_exact(xch, domid, 1, 0, 0, physmap);
+    rc = xc_domain_populate_physmap_exact(xch, domid, ARRAY_SIZE(physmap),
+                                          0 /* order 4k */, 0 /* flags */, physmap);
     if ( rc )
         return fail("  Fail: populate physmap: %d - %s\n",
                     errno, strerror(errno));
@@ -98,6 +100,11 @@ static void run_tests(void)
         return fail("  Fail: mempool size changed %"PRIu64" => %"PRIu64"\n",
                     old_size_bytes, size_bytes);
 
+    /* We added one 4k page.  Check we can remove it. */
+    rc = xc_domain_remove_from_physmap(xch, domid, physmap[0]);
+    if ( rc )
+        return fail("  Fail: remove from physmap: %d - %s\n",
+                    errno, strerror(errno));
 
 
     printf("Test bad set size\n");
@@ -134,6 +141,19 @@ static void run_tests(void)
     if ( size_bytes != 64 << 20 )
         return fail("  Fail: expected mempool size %u, got %"PRIu64"\n",
                     64 << 20, size_bytes);
+
+    return 0;
+}
+
+static int run_tests(void)
+{
+    int rc;
+
+    rc = test_paging_mempool_size();
+    if ( rc )
+        return rc;
+
+    return 0;
 }
 
 int main(int argc, char **argv)
@@ -143,7 +163,6 @@ int main(int argc, char **argv)
     printf("Paging mempool tests\n");
 
     xch = xc_interface_open(NULL, NULL, 0);
-
     if ( !xch )
         err(1, "xc_interface_open");
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue May 12 15:55:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 15:55:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307092.1578819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpSb-0003Ud-VH; Tue, 12 May 2026 15:55:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307092.1578819; Tue, 12 May 2026 15:55:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpSb-0003UW-ST; Tue, 12 May 2026 15:55:53 +0000
Received: by outflank-mailman (input) for mailman id 1307092;
 Tue, 12 May 2026 15:55:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1wMpSa-0003UE-Hc
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 15:55:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpSZ-00AP0L-HM
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:55:51 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 6a034d71-bab6-0a2a0a5309dd-0a2a4509d370-42
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:55:51 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 6a034d87-2497-0a2a45090019-d155802ae877-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 17:55:51 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-488ff90d6c7so51665355e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 08:55:51 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8d69d0bsm4361335e9.13.2026.05.12.08.55.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 08:55:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1778601350; x=1779206150; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RdJbawsRx2NHWvGwQTSpYec3I5aB0xq42jCcL60C/1k=;
        b=csR8cvws7JNwxpCv2Xgx5H96fXdpChT72txAObea/RuiNp8zNYLH2q9eS2OHHHKlAG
         aBWi5a+dak/tTohKQNCjGoqt5fCDm6foPm993K3VMIL6HFAHRnEBcMDj8D9F0zzBAcXc
         GrJfZxUM+uAPm8187Joxw5GjYVH+kKbk4JaH0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778601350; x=1779206150;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=RdJbawsRx2NHWvGwQTSpYec3I5aB0xq42jCcL60C/1k=;
        b=FyIXT+pu1dTuA2vJP5bY6/1j6AbSoAtj3OCDvHpoKvwQeKmGW352wBPJr5019s/XfH
         5+EWilIC9SKi/V6n9HA5ZXqcruFmd7Fi0buXY2wCXTR88SrxAz9YLSXqfIwVBsyUvGT2
         wlhe/CCAqICLrKvs7Ff/MJlozf8UVhqbudU4/I8f40UIOCiIlIMcVyH0GnUBbClhzkhd
         hNqGalWeL9m3zy4MA8vquCF6WrY6fGPoF8k2SES2mwxOsZfI9CA/2AyUCeKeW8st/Jsk
         cRaZ6ZHKqytt/q0vYSBdxmaDbZ8F3cxrIcDE8gIorqLF9f4VMiHvbaHkuKaJqO1n7huX
         r9lg==
X-Gm-Message-State: AOJu0Yy8QeXO5n7+CDJ11WjIlgKa1U7yt87zQ3EnGntJFZP4dP7kvfJ1
	kjOXgnRpkTxoRM8p5xwtYRhN4QGROy3BsjZ4DpbZ2YJT7YU8g9fDirMThfCy/MZbY+lh5ezwsm+
	UPhAqM0Y=
X-Gm-Gg: Acq92OEyOIe83uhV42wGABzoRdN25bX1JRvxcqnT8Vl5K2qwPbLGZg84xr4ThYE+JTk
	UAtBhE9yplzUbRpsVOGDJw8WI3Dd/SYZNXUe4rfK9ATnG8pD7KK9FnfxlRrrpNcIpTvX0La2jo1
	w86ogksBFwzLaegFo1cOlZ3GbAL0pg7a5P4IzC78t1ymzNbzcITSpcw7VH2znzaHki72A81QQ4Q
	vNo+bJzdLtluSr2O7yLb+XAe76P90aijX6E0mi1hkJERSiLAz6U62LBA189gJ22bwutW6sSn3I/
	r7vQNYJ0zrtmPHdALXwh1zxnWdDT2dCetwNLQNLtADrvNJIYHWehnw3li2+XgkvAPK6TmHzZlFk
	g7Z1sPW+5dGbY/x8T863V5wlzOy8wjq41INKcqcmvnlC0qPAV3YEmQqf8OEdsa0AznQ5ML8ipRl
	tBjwLaC7Z0hi0P0sF6knmPYr8yPXQ5OrUYi0/94nvpTR3vf8Rw1Ytj1zynt+EU9PxKEqW9jKQx9
	HPI
X-Received: by 2002:a05:600c:a08b:b0:489:1ba8:5bf0 with SMTP id 5b1f17b1804b1-48e51f4119bmr452561625e9.21.1778601350433;
        Tue, 12 May 2026 08:55:50 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 0/2] tests/paging-mempool: Testing for P2M relocation
Date: Tue, 12 May 2026 16:55:38 +0100
Message-Id: <20260512155540.1733403-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: e3af387a-dd8b-4d58-8356-777319c7a2bf@suse.com
References: 
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778601351-4216DA53-B5ABC0E1/0/0
X-purgate-type: clean
X-purgate-size: 371

Andrew Cooper (2):
  tests/paging-mempool: Misc cleanup
  tests/paging-mempool: Extend to test P2M relocation

 tools/tests/paging-mempool/Makefile           |   4 +
 .../paging-mempool/test-paging-mempool.c      | 222 +++++++++++++++++-
 xen/common/memory.c                           |   2 +-
 3 files changed, 223 insertions(+), 5 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue May 12 16:00:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 16:00:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307119.1578847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpXO-0007Gd-0m; Tue, 12 May 2026 16:00:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307119.1578847; Tue, 12 May 2026 16:00:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpXN-0007GW-TR; Tue, 12 May 2026 16:00:49 +0000
Received: by outflank-mailman (input) for mailman id 1307119;
 Tue, 12 May 2026 16:00:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wMpXN-0007GQ-3O
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 16:00:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpXM-001f5C-GT
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 18:00:48 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a034ea0-e002-0a2a0a5209dd-0a2a450ce802-48
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 18:00:48 +0200
Received: from [40.93.194.54]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a034eae-62f1-0a2a450c0019-285dc2360737-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 18:00:48 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH7PR03MB7932.namprd03.prod.outlook.com (2603:10b6:610:24e::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Tue, 12 May
 2026 16:00:43 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.021; Tue, 12 May 2026
 16:00:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=biREu3GZwBgapqgndEkFO7oXJB4jJCeQvm4OD6DvrgT+HgBfThH42jK0mqyOSKSm2d3a+qEsC7ZSSRTmw+tUk4f8IU9lvOhcUakGXhCW1AnJvIS/egM/j/9uJe5fMsvT16VtSUYPwzuSuNHpcuGG5WbEE6J5aEaBliVDjwOcp+20jyVu/r9A98/OQj0e8OZDwwhW7azO8BOj7gZ7StclxQo6l/E9b+MMOZJjzOyhOBTev2jN31jvgmOzhPkkql7ALndRTFrfG1oPG/jRcomgoFn9Q3Qao+A5hKZovPRiNWHy9CoLTmTrH7lZtWeGaobAFJjL4j5WeDqkk5gXHD9bJA==
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=DhT6Vs6Jx06fGzR4NA3PVDjreTWo2DacVg2LjuEUJ+4=;
 b=uOgXXxc8rEJQQxWOHDLcqMqjRa1SZAFCyq+W8ovmhL1zku5cWTnPmqZSjybj+Gvw7pujm1t0u4mi/c/o20STTa8/S0Ne8LFowxMGWzR1IhHx1pq44tHqStEp/hsJ35At4FHx1C55Tp6AYAcqU2rh+kNdBA2kQAa3BSORKq9INpcA7+No0zj+lSCaBQpeuXH6RqFaJvTQcfUsjYPRTaZ/P3RWltBnnDnawA8Mjrvs1KjXUhE36gyhQ1BUdMTfOipCSPU3PmjKTv4oXVEussR10sHDJetvY2ioi9POPZrJDwJG4qNWNQ1/7FXPB80S+IB4GxijoH7ZYOAObrsESoxElA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DhT6Vs6Jx06fGzR4NA3PVDjreTWo2DacVg2LjuEUJ+4=;
 b=G22ZULkkc3v2K3DR/BX4T3/Ken1sCZtTw4LQdrtkQORkLajic4otfKzRQYZlb6R3H0vlcMQrL4k5+zgwHMGXesvKXVBhNEfbbHgQhp6FJdHVTU8cWOqcbJSJETlN73Lzi9xPQKufiHnTqo7UYCGryLcM2voWA1DFrM+vmURpN+8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <0865df94-79bf-429a-856f-498e96d1fbeb@citrix.com>
Date: Tue, 12 May 2026 17:00:39 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH v2] memory: overlapping XENMAPSPACE_gmfn_range requests
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <e3af387a-dd8b-4d58-8356-777319c7a2bf@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <e3af387a-dd8b-4d58-8356-777319c7a2bf@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0629.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:294::10) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH7PR03MB7932:EE_
X-MS-Office365-Filtering-Correlation-Id: a06ee24d-f53d-44a6-295b-08deb03f9f41
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|11063799003|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	o0/uOW/lZwzxw78zA/rIV7HJH1ftEeKGPsY467HFcZJnkErCiqz0mLPjL5m2bFwei+QJ8bONTCMwbkwFm01W7FOQ6QqyjX6t+661V+loyf1ZRsY4/kuydf7DYTDT4JK3r4McJTKToECmu34JqxTrvTLw5SWe/T0YngzbLsAa3qUhK8fYYpG1lEXo/xuU6fab4fPm176QQ6P6eRObQV2qWq0FTR5S7lvmKxTgqi5kcLToqdkC8Uj01Gf9d0JZ24prcxnQvrvfn0Mdf4+pNScCDgNKagAPYaZX+P1u7lFWUOx945Caf7e4tAAUi7gsan5XAHYgmT9VamwHX57z+FYNGLDF/cV+D93BBD9nBGHgbd6k/49MwzR0eEoDlqP5DTiggjlsCQV1QVOXpgRKLgdBUFTdN1jVjI19zgB9FOzzc6Rd2t3n7RTicL5IhhXLaxoBfmmHZHi5qzMWac7qad1ycC/FtZe1oJ9tjw94vjTaU9kDynu1ACC6rjXjHWuinMLlo4BACWGSkd7fbLxPf+54d9NkzvszO4Xo7a/E8WMuQi16YFuEKUugodcgqM+fAP07QhU9uNSNk1mQ9N2Lq3aYOn/ucSU9absnsb5q4HOCgDh52iwOGhtYsBlehax87IOUnGS4PaE2NTNsL2j+Cl6DB1ytGJG4XnaQsae85GA1zf9ndZrqGC5hdIXbRfZ3ZOvz
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(11063799003)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aEZYSVVXNjFSclhmVldpcnczVUpLcFo2ZzBESE5hZ21QcmV2NFB0b05kNTNv?=
 =?utf-8?B?TERMMnlqUE9MSGVMN0J2eWZ2V0JoMjJDT2FiL29tOU9OMzNtbDdUanJnWFN4?=
 =?utf-8?B?USt2L1VldFRjNnBLV2d4SDVJKzJpSHdHSUdxUmUzRldqN3lDYkxGZmNiVUlV?=
 =?utf-8?B?NldIVWI5cXR6T1AxTjk5d2x3NGdLeWNxTVordzlQR1NnRGh0a0QxN0dIeTJn?=
 =?utf-8?B?MEx3c0d3d2xRS1E2UHNrd3l3ci9CdHYwSFlmanpwSFRkbkNMcGNMZWZQTFk4?=
 =?utf-8?B?T2NrRlgrdmRRUWh3TDFDVVdOekFCN0VPVjNVeEtkQnhVTUg1Nk52QzBwa0cv?=
 =?utf-8?B?K2syWE84QUo2ekszbER4NU03Q0lHQ0hZOTRqVnFVOExNd0lZOTUyQkVpaCtt?=
 =?utf-8?B?bEVJc0h4Q3lQYmU2WE9RY01UN0hoaHl4dDRwQUlXdzFpdGVuZHRiK3lQZHRl?=
 =?utf-8?B?NHpVQnIrOVBtZzV3dzVsVzVwQk5xNVNkT3owS1lCVFp0VTBMbUY1d0RSQmtD?=
 =?utf-8?B?YlR0S09iMllzMmhkN1NCMkRKZ09DQ0pWTXhqc2xPR010bkpWWEJHRU1NMW5m?=
 =?utf-8?B?ZzQ5RnJ5eDFPb1dmb0FOWmRYVlQ3cHV6UFBQSFFKK2dLOTFENXg4K2cxMG5S?=
 =?utf-8?B?Tm9OZHE1aE5pbmhxSFR1WTNUbkI1ZlpxT3IzTi9tcGNTeE5rZTBjWVFxd2dy?=
 =?utf-8?B?Q2Q0VlcvSUtDSUtpc0VTZ2xUK2Vzdk83eGNXd3c4eWwwZ3NobHJsK0NGblh6?=
 =?utf-8?B?V1BMOW1ad295WlN3OUt6amhXbDBXNHc3TUpES2dTb2pkcWRJdUhjT2o5MjdI?=
 =?utf-8?B?dThpWE9kcjg0THhnK2xicmxCUVQxbXlZT25zZ1QzUFBXNHROVDRYV2RTTlFQ?=
 =?utf-8?B?U3EvUnFxNlRFeXRwYUp3cWhIWEptY3VnWm9IODNQRkZTZm1rTG5BcVRJbHha?=
 =?utf-8?B?Nk9tUzg4djlrT1V0aUJYOVdUVnk5SzR5b1paWS9BWFNsa3JNcFl1bmVaU2hp?=
 =?utf-8?B?Uit6MFJpWDdDRUJ3YlJOaWY4OC9LZUNNaHhWK2dyVlFKU0NOM25wRTZ4SEFL?=
 =?utf-8?B?cHc0L0U4TGU4VzhZNC9IS0hlVmlUUDBtY0ZsK0ZwYTlsSHhtQXJHYXBJRGt0?=
 =?utf-8?B?L253SDh1OUpyRnFrMVh1UytrTklnNmFPZVhFcVRDU1lpUUpkSFNOb3JFcUJ2?=
 =?utf-8?B?d1BRNWtvcVRRLzJUdDR5NXdoc3VGcjhuVjIyUTY0L3FoZURiNE5GdmtuRTFp?=
 =?utf-8?B?ZVFEalQ5dEp2ak1sV2UzMlFZQzRZSm05K0hwaW4vZU92UWZpb1BpejAvUW1B?=
 =?utf-8?B?VDl4WWdnSVFobm9wVlRLNVVEVTU3NDZtWU1oV3ZCRmc0QmRYeGtOUXVhd3Nr?=
 =?utf-8?B?OGtiUzVDa3h4cktnbzdKTDZsV09GRmo3UFU3OG1rQWF2VjdqeUN5R3NqUU12?=
 =?utf-8?B?S08vOXVwVDQ2NUVUSGpiVzYxajcwUXNSNXVjVUhRS2hreUk1dkhVWVRSL2lL?=
 =?utf-8?B?UktEUHBNcjVzTi9VUzF2RmhaNEswYjN1d3A4cmtNZ0xPMW1PZlJTZzJmZlda?=
 =?utf-8?B?UUhaNU5pSkJ5V0JUV1JOdEtUdERWWUJNSUhpMVAyb1RVUm9iOGJUNm1xUEt6?=
 =?utf-8?B?OGNYektzRGJrdnphNWdBM3VESitwU01Kc0JaS25hbkg5dVV1a3I1UUQxcFlY?=
 =?utf-8?B?UGpMNVYwdUUvZVhtcjlVV0FhWW9VN01EdWJ2TGJraFRlVmpGWlRCdjRaWXRF?=
 =?utf-8?B?K1pMd1VnOU5pbWJURko5US8yc3NEZHFBalVRTnY5TEJwWmVYMS9GbG8wTjcz?=
 =?utf-8?B?alNzYWFBZmRVQkVDZWZXODdPbEVqTjE0VzY4M1pBdGFyRHp4VWdiT1BGK1NI?=
 =?utf-8?B?bFNkMHk2QTVaVTdITEhYZEpFYllOcjM4OW9pZHdjSjdDUDZJU3Q3ck1zRWNY?=
 =?utf-8?B?M1l0V2RncS9FZXJUMzlyYkxqSi9zSm5Td3h4d3V2U3BKNTlGbWZVUDVIdlVU?=
 =?utf-8?B?Q21wVXBEM3p0dENNRjN5ZmdtSGJwdWtka0ozZ2k5emtyQlFndnp6SnNHNXEw?=
 =?utf-8?B?Y01ZZlBDaUhpQ2tXTUdsSWkvSDJsTWk0cFplVVNKREJZeHhLaHlCNngzVVRt?=
 =?utf-8?B?UHhpMDYyd0N0anJaNUlzMHhyeFFEODJnOUhEVUFKNkIySTNLcVZtK0xUd3BC?=
 =?utf-8?B?djI5UTI4enVpM3NVUUFiNzNyV3FuT2hFRXRJTURGWmNwYUFjS205NVhtbHlW?=
 =?utf-8?B?YVhRR1NSTy9DZXEzVThMN0RSQjNEOWZSTUZJazRTUXNzV0E4Z0x5SkNQSVNY?=
 =?utf-8?B?Y0o4cFc0TlZyMi9vc1NLMVFPcFp2TU5EN1RLWi9nb0ZGbC83NXR3ejN5SEFV?=
 =?utf-8?Q?E+cEi39tG9mivis8=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a06ee24d-f53d-44a6-295b-08deb03f9f41
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2026 16:00:43.5323
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sORlPqzh95AN9GHyUr17VkqjNp62IlTR0EF33wrW6K3t/Ps8E8L6ylBzk8oRGbcgFY43nPF5f96vBcioq3ykG/UnGKeyAtTs7minByZacOw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH7PR03MB7932
X-purgate-ID: tlsNG-d25034/1778601648-DB370CF5-656EED0C/0/0
X-purgate-type: clean
X-purgate-size: 1120

On 22/12/2025 10:33 am, Jan Beulich wrote:
> Overlapping requests may need processing backwards, or else the intended
> effect wouldn't be achieved (and instead some pages would be moved more
> than once).
>
> With some adjustment there this also covers XEN_DMOP_relocate_memory,
> where the potential issue was first noticed.
>
> Fixes: a04811a315e0 ("mm: New XENMEM space, XENMAPSPACE_gmfn_range")
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Of course an alternative would be to simply reject overlapping requests.
> Then we should reject all overlaps though, I think. But since the code
> change didn't end up overly intrusive, I thought I would go the "fix it"
> route first.
> ---
> v2: Adjust XEN_DMOP_relocate_memory handling for the working-backwards
>     case.

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Tested-by: Andrew Cooper <andrew.cooper3@citrix.com>

I can't say that I've understood everything going on here (hence the
test case), but the test case says it does fix the bug I reported.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue May 12 16:02:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 16:02:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307130.1578863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpYv-0007uT-Pz; Tue, 12 May 2026 16:02:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307130.1578863; Tue, 12 May 2026 16:02:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpYv-0007tZ-Jn; Tue, 12 May 2026 16:02:25 +0000
Received: by outflank-mailman (input) for mailman id 1307130;
 Tue, 12 May 2026 16:02:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrewcoop@xenbits.xen.org>)
 id 1wMpYt-0007pW-LN; Tue, 12 May 2026 16:02:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpYt-00AUkp-25; Tue, 12 May 2026 18:02:23 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrewcoop@xenbits.xen.org>)
 id 6a034f05-2eae-0a2a0a5409dd-0a2a4502ad60-28
 for <multiple-recipients>; Tue, 12 May 2026 18:02:23 +0200
Received: from [104.130.215.37] (helo=mail.xenproject.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrewcoop@xenbits.xen.org>)
 id 6a034f0d-af86-0a2a45020019-6882d725d11a-3
 for <multiple-recipients>; Tue, 12 May 2026 18:02:22 +0200
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1wMpYl-001iLv-2l;
 Tue, 12 May 2026 16:02:15 +0000
Received: from andrewcoop by xenbits.xenproject.org with local (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1wMpYl-001fwg-1X;
 Tue, 12 May 2026 16:02:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.510 (Entity 5.510)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 490 v1 (CVE-2025-54518) - x86: CPU Opcode
 Cache corruption
Message-Id: <E1wMpYl-001fwg-1X@xenbits.xenproject.org>
Date: Tue, 12 May 2026 16:02:15 +0000
X-purgate-ID: tlsNG-720697/1778601742-82969161-928BE5B8/0/0
X-purgate-type: clean
X-purgate-size: 29472

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

            Xen Security Advisory CVE-2025-54518 / XSA-490

                   x86: CPU Opcode Cache corruption

ISSUE DESCRIPTION
=================

AMD have disclosed a potential vulnerability in certain CPUs which can
cause instructions to execute at a higher privilege.

For more information, see:
  https://www.amd.com/en/resources/product-security/bulletin/amd-sb-7052.html

IMPACT
======

Code of any privilege could escalate to a higher privilege, including
userspace to kernel, and guest to host.

VULNERABLE SYSTEMS
==================

Systems running all versions of Xen are affected.

Only AMD Fam17h CPUs (Zen2 microarchitecture) are believed to be
vulnerable.  Other AMD CPUs and CPUs from other manufacturers are not
known to be affected.

MITIGATION
==========

There are no mitigations.

RESOLUTION
==========

Applying the appropriate attached patch resolves this issue.

For Xen 4.17, patch 1 is a backport of a change which only went back as
far as 4.18 under normal bugfix rules, but which is tightly texturally
coupled with the XSA-940 fix.  It is possible to rework patch 2 to avoid
patch 1, but a number of Xen-focused downstreams already have patch 1
backported, and those without patch 1 really ought to take it.  So,
while this is slightly abnormal for an XSA, it is believed to be in the
best interest of everyone with a 4.17 based Xen.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa490.patch           xen-unstable
xsa490-4.21.patch      Xen 4.21.x - Xen 4.18.x
xsa490-4.17-?.patch    Xen 4.17.x

$ sha256sum xsa490*
7c256d3384bf640d171ae2f18930c193a72bbdd92ebeb8942e58634dd7b27439  xsa490.patch
4d64d95937630f2147bb69d0d0ff24fc7d97efd48e376d882265662f93886ec7  xsa490-4.17-1.patch
6c717a5bd914088463c74b89893672388848a2222165478aed63b6c2a4151e28  xsa490-4.17-2.patch
1e397550a542bc0957bf93a6e6f01ffcdfe8f005697a505c62ec6120a72d3f90  xsa490-4.21.patch
$
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmoDTuQMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZn38H/2xujQ3YDEsE2U8RiH/6M1yVxnATlCEqEPBxIcVX
h6W4QMzlFw/IXZBi6twduuzMME2uX6eKWCbE9riw2v4lybgNYMxV20oW86LhjLwr
uL1NHJ3Fop1IuRy+po20jmT9sPfpieHU9zGmFvgd/k91gSZ1b/5G8k36MtgODL0j
4Svsdo3LYSvULQn5EymjO/t57ZZIDBWj5Od7aBbPuGkQKtW6+/UCE0JnrzOtP+Di
0Y5bBSUhwrMh0h32AV/w2nwvFQN/EeyakfjDWQc1ST6wHzFMLSo2kaY40TZ6C+T8
RnN646ouPizmiSDu2G/dMrLJ5kc3PFqQvN3JRI4dyf075yg=
=Dclq
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa490.patch"
Content-Disposition: attachment; filename="xsa490.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L2FtZDogTWl0aWdhdGUgQU1ELVNOLTcwNTIKClRo
aXMgaXMgWFNBLTQ5MCAvIENWRS0yMDI1LTU0NTE4LgoKU2lnbmVkLW9mZi1i
eTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4K
UmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRy
aXguY29tPgoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMg
Yi94ZW4vYXJjaC94ODYvY3B1L2FtZC5jCmluZGV4IDcxMjczNGE2ZTcyMy4u
NzA3ODNjOWEwYWYwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L2Ft
ZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMKQEAgLTEwMTUsMTEg
KzEwMTUsMjUgQEAgc3RhdGljIHZvaWQgYW1kX2NoZWNrX2JwX2NmZyh2b2lk
KQogewogCXVpbnQ2NF90IHZhbCwgbmV3ID0gMDsKIAotCS8qCi0JICogQU1E
IEVycmF0dW0gIzE0ODUuICBTZXQgYml0IDUsIGFzIGluc3RydWN0ZWQuCi0J
ICovCi0JaWYgKCFjcHVfaGFzX2h5cGVydmlzb3IgJiYgYm9vdF9jcHVfZGF0
YS5mYW1pbHkgPT0gMHgxOSAmJiBpc196ZW40X3VhcmNoKCkpCi0JCW5ldyB8
PSAoMSA8PCA1KTsKKwlpZiAoIWNwdV9oYXNfaHlwZXJ2aXNvcikgeworCQkv
KgorCQkgKiBBTUQgRXJyYXR1bSAjMTQ4NS4gIElmIFNNVCBpcyBlbmFibGVk
IGFuZCBTVElCUCBkaXNhYmxlZCwKKwkJICogdGhlIENQVSBtYXkgZmV0Y2gg
aW5jb3JyZWN0IGluc3RydWN0aW9uIGJ5dGVzLgorCQkgKgorCQkgKiBTZXQg
Yml0IDUsIGFzIGluc3RydWN0ZWQuCisJCSAqLworCQlpZiAoYm9vdF9jcHVf
ZGF0YS5mYW1pbHkgPT0gMHgxOSAmJiBpc196ZW40X3VhcmNoKCkpCisJCQlu
ZXcgfD0gKDEgPDwgNSk7CisKKwkJLyoKKwkJICogQU1EIFNCLTcwNTIuICBD
UFUgT1AgQ2FjaGUgY29ycnVwdGlvbiwgY2F1c2luZyBpbnN0cnVjdGlvbnMK
KwkJICogdG8gYmUgZXhlY3V0ZWQgYXQgYSBoaWdoZXIgcHJpdmlsZWdlLgor
CQkgKgorCQkgKiBTZXQgYml0IDMzLCBhcyBpbnN0cnVjdGVkLgorCQkgKi8K
KwkJaWYgKGJvb3RfY3B1X2RhdGEuZmFtaWx5ID09IDB4MTcgJiYgaXNfemVu
Ml91YXJjaCgpKQorCQkJbmV3IHw9ICgxVUwgPDwgMzMpOworCX0KIAogCS8q
CiAJICogT24gaGFyZHdhcmUgc3VwcG9ydGluZyBTUlNPX01TUl9GSVgsIGFj
dGl2YXRlIEJQX1NQRUNfUkVEVUNFIGJ5Cg==

--=separator
Content-Type: application/octet-stream; name="xsa490-4.17-1.patch"
Content-Disposition: attachment; filename="xsa490-4.17-1.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L3NwZWMtY3RybDogU3VwcG9ydCBmb3IgU1JTT19V
L1NfTk8gYW5kIFNSU09fTVNSX0ZJWAoKQU1EIGhhdmUgdXBkYXRlZCB0aGUg
U1JTTyB3aGl0ZXBhcGVyWzFdIHdpdGggZnVydGhlciBpbmZvcm1hdGlvbi4g
IFRoZXNlCmZlYXR1cmVzIGV4aXN0IG9uIEFNRCBaZW41IENQVXMgYW5kIGFy
ZSBuZWNlc3NhcnkgZm9yIFhlbiB0byB1c2UuCgpUaGUgdHdvIGZlYXR1cmVz
IGFyZSBpbiBwcmluY2lwbGUgdW5yZWxhdGVkOgoKICogU1JTT19VL1NfTk8g
aXMgYW4gZW51bWVyYXRpb24gc2F5aW5nIHRoYXQgU1JTTyBhdHRhY2tzIGNh
bid0IGNyb3NzIHRoZQogICBVc2VyKENQTDMpIC8gU3VwZXJ2aXNvcihDUEw8
MykgYm91bmRhcnkuICBpLmUuIFhlbiBkb24ndCBuZWVkIHRvIHVzZQogICBJ
QlBCLW9uLWVudHJ5IGZvciBQVjY0LiAgUFYzMiBndWVzdHMgYXJlIGV4cGxp
Y2l0bHkgdW5zdXBwb3J0ZWQgZm9yCiAgIHNwZWN1bGF0aXZlIGlzc3Vlcywg
YW5kIGV4Y2x1ZGVkIGZyb20gY29uc2lkZXJhdGlvbiBmb3Igc2ltcGxpY2l0
eS4KCiAqIFNSU09fTVNSX0ZJWCBpcyBhbiBlbnVtZXJhdGlvbiBpZGVudGlm
eWluZyB0aGF0IHRoZSBCUF9TUEVDX1JFRFVDRSBiaXQgaXMKICAgYXZhaWxh
YmxlIGluIE1TUl9CUF9DRkcuICBXaGVuIHNldCwgU1JTTyBhdHRhY2tzIGNh
bid0IGNyb3NzIHRoZSBob3N0L2d1ZXN0CiAgIGJvdW5kYXJ5LiAgaS5lLiBY
ZW4gZG9uJ3QgbmVlZCB0byB1c2UgSUJQQi1vbi1lbnRyeSBmb3IgSFZNLgoK
RXh0ZW5kIGlicGJfY2FsY3VsYXRpb25zKCkgdG8gYWNjb3VudCBmb3IgdGhl
c2Ugd2hlbiBjYWxjdWxhdGluZwpvcHRfaWJwYl9lbnRyeV97cHYsaHZtfSBk
ZWZhdWx0cy4gIEFkZCBhIGBicC1zcGVjLXJlZHVjZT08Ym9vbD5gIG9wdGlv
biB0bwpjb250cm9sIHRoZSB1c2Ugb2YgQlBfU1BFQ19SRURVQ0UsIHdpdGgg
aXQgYWN0aXZlIGJ5IGRlZmF1bHQuCgpCZWNhdXNlIE1TUl9CUF9DRkcgaXMg
Y29yZS1zY29wZWQgd2l0aCBhIHJhY2UgY29uZGl0aW9uIHVwZGF0aW5nIGl0
LCByZXB1cnBvc2UKYW1kX2NoZWNrX2VycmF0dW1fMTQ4NSgpIGludG8gYW1k
X2NoZWNrX2JwX2NmZygpIGFuZCBjYWxjdWxhdGUgYWxsIHVwZGF0ZXMgYXQK
b25jZS4KClhlbiBhbHNvIG5lZWRzIHRvIHRvIGFkdmVydGlzZSBTUlNPX1Uv
U19OTyB0byBndWVzdHMgdG8gYWxsb3cgdGhlIGd1ZXN0IGtlcm5lbAp0byBz
a2lwIFNSU08gbWl0aWdhdGlvbnMgdG9vOgoKICogVGhpcyBpcyB0cml2aWFs
IGZvciBIVk0gZ3Vlc3RzLiAgSXQgaXMgYWxzbyBpcyBhY2N1cmF0ZSBmb3Ig
UFYzMiBndWVzdHMKICAgdG9vLCBidXQgd2UgaGF2ZSBhbHJlYWR5IGV4Y2x1
ZGVkIHRoZW0gZnJvbSBjb25zaWRlcmF0aW9uLCBhbmQgZG8gc28gYWdhaW4K
ICAgaGVyZSB0byBzaW1wbGlmeSB0aGUgcG9saWN5IGxvZ2ljLgoKICogQXMg
d3JpdHRlbiwgU1JTT19VL1NfTk8gZG9lcyBub3QgaGVscCBmb3IgdGhlIFBW
NjQgdXNlci0+a2VybmVsIGJvdW5kYXJ5LgogICBIb3dldmVyLCBhZnRlciBk
aXNjdXNzaW5nIHdpdGggQU1ELCBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwg
b2YgaGF2aW5nCiAgIEJQX1NQRUNfUkVEVUNFIGFjdGl2ZSBjYXVzZXMgdGhl
IFBWNjQgdXNlci0+a2VybmVsIGJvdW5kYXJ5IHRvIGhhdmUgdGhlCiAgIHBy
b3BlcnR5IGRlc2NyaWJlZCBieSBTUlNPX1UvU19OTywgc28gd2UgY2FuIGFk
dmVydGlzZSBTUlNPX1UvU19OTyB0bwogICBndWVzdHMgd2hlbiB0aGUgQlBf
U1BFQ19SRURVQ0UgcHJlY29uZGl0aW9uIGlzIG1ldC4KCkZpbmFsbHksIGZp
eCBhIHR5cG8gaW4gdGhlIFNSU09fTk8ncyBjb21tZW50LgoKWzFdIGh0dHBz
Oi8vd3d3LmFtZC5jb20vY29udGVudC9kYW0vYW1kL2VuL2RvY3VtZW50cy9j
b3Jwb3JhdGUvY3Ivc3BlY3VsYXRpdmUtcmV0dXJuLXN0YWNrLW92ZXJmbG93
LXdoaXRlcGFwZXIucGRmClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIg
PGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBSb2dl
ciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KKGNoZXJyeSBw
aWNrZWQgZnJvbSBjb21taXQgYTE3NDZjZDQ0MzRkZDI3Y2EyZGE4NDMwZGZi
MTBlZGM3NjI2NGJiMykKCmRpZmYgLS1naXQgYS9kb2NzL21pc2MveGVuLWNv
bW1hbmQtbGluZS5wYW5kb2MgYi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGlu
ZS5wYW5kb2MKaW5kZXggNGYyOTA3ZWI2N2YyLi5hZDgwMjc3MzI2NjUgMTAw
NjQ0Ci0tLSBhL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLnBhbmRvYwor
KysgYi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5wYW5kb2MKQEAgLTIz
MzAsNyArMjMzMCw3IEBAIEJ5IGRlZmF1bHQgU1NCRCB3aWxsIGJlIG1pdGln
YXRlZCBhdCBydW50aW1lIChpLmUgYHNzYmQ9cnVudGltZWApLgogPiAgICAg
ICAgICAgICAge2licnMsaWJwYixzc2JkLHBzZmQsCiA+ICAgICAgICAgICAg
ICBlYWdlci1mcHUsbDFkLWZsdXNoLGJyYW5jaC1oYXJkZW4sc3JiLWxvY2ss
CiA+ICAgICAgICAgICAgICB1bnByaXYtbW1pbyxnZHMtbWl0LGRpdi1zY3J1
Yixsb2NrLWhhcmRlbiwKLT4gICAgICAgICAgICAgIGJoaS1kaXMtc309PGJv
b2w+IF1gCis+ICAgICAgICAgICAgICBiaGktZGlzLXMsYnAtc3BlYy1yZWR1
Y2V9PTxib29sPiBdYAogCiBDb250cm9scyBmb3Igc3BlY3VsYXRpdmUgZXhl
Y3V0aW9uIHNpZGVjaGFubmVsIG1pdGlnYXRpb25zLiAgQnkgZGVmYXVsdCwg
WGVuCiB3aWxsIHBpY2sgdGhlIG1vc3QgYXBwcm9wcmlhdGUgbWl0aWdhdGlv
bnMgYmFzZWQgb24gY29tcGlsZWQgaW4gc3VwcG9ydCwKQEAgLTI0NzksNiAr
MjQ3OSwxMyBAQCBib29sZWFuIGNhbiBiZSB1c2VkIHRvIGZvcmNlIG9yIHBy
ZXZlbnQgWGVuIGZyb20gdXNpbmcgc3BlY3VsYXRpb24gYmFycmllcnMgdG8K
IHByb3RlY3QgbG9jayBjcml0aWNhbCByZWdpb25zLiAgVGhpcyBtaXRpZ2F0
aW9uIHdvbid0IGJlIGVuZ2FnZWQgYnkgZGVmYXVsdCwKIGFuZCBuZWVkcyB0
byBiZSBleHBsaWNpdGx5IGVuYWJsZWQgb24gdGhlIGNvbW1hbmQgbGluZS4K
IAorT24gaGFyZHdhcmUgc3VwcG9ydGluZyBTUlNPX01TUl9GSVgsIHRoZSBg
YnAtc3BlYy1yZWR1Y2U9YCBvcHRpb24gY2FuIGJlIHVzZWQKK3RvIGZvcmNl
IG9yIHByZXZlbnQgWGVuIGZyb20gdXNpbmcgTVNSX0JQX0NGRy5CUF9TUEVD
X1JFRFVDRSB0byBtaXRpZ2F0ZSB0aGUKK1NSU08gKFNwZWN1bGF0aXZlIFJl
dHVybiBTdGFjayBPdmVyZmxvdykgdnVsbmVyYWJpbGl0eS4gIFhlbiB3aWxs
IHVzZQorYnAtc3BlYy1yZWR1Y2Ugd2hlbiBhdmFpbGFibGUsIGFzIGl0IGlz
IHByZWZlcmFibGUgdG8gdXNpbmcgYGlicGItZW50cnk9aHZtYAordG8gbWl0
aWdhdGUgU1JTTyBmb3IgSFZNIGd1ZXN0cywgYW5kIGJlY2F1c2UgaXQgaXMg
YSBwcmVyZXF1aXNpdGUgdG8gYWR2ZXJ0aXNlCitTUlNPX1UvU19OTyB0byBQ
ViBndWVzdHMuCisKICMjIyBzeW5jX2NvbnNvbGUKID4gYD0gPGJvb2xlYW4+
YAogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jIGIv
eGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYwppbmRleCBmMjU5Yzc3NDM1ZWEu
LjkyMjRjMzZkODFiNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS1w
b2xpY3kuYworKysgYi94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jCkBAIC0x
NCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8YXNtL21zci1pbmRleC5oPgogI2lu
Y2x1ZGUgPGFzbS9wYWdpbmcuaD4KICNpbmNsdWRlIDxhc20vc2V0dXAuaD4K
KyNpbmNsdWRlIDxhc20vc3BlY19jdHJsLmg+CiAjaW5jbHVkZSA8YXNtL3hz
dGF0ZS5oPgogCiBzdHJ1Y3QgY3B1X3BvbGljeSBfX3JvX2FmdGVyX2luaXQg
ICAgIHJhd19jcHVfcG9saWN5OwpAQCAtNjUwLDYgKzY1MSwyNiBAQCBzdGF0
aWMgdm9pZCBfX2luaXQgY2FsY3VsYXRlX3B2X21heF9wb2xpY3kodm9pZCkK
ICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfSUJSUywgZnMpOwog
ICAgIH0KIAorICAgIC8qCisgICAgICogU1JTT19VL1NfTk8gbWVhbnMgdGhh
dCB0aGUgQ1BVIGlzIG5vdCB2dWxuZXJhYmxlIHRvIFNSU08gYXR0YWNrcyBh
Y3Jvc3MKKyAgICAgKiB0aGUgVXNlciAoQ1BMMykgLyBTdXBlcnZpc29yIChD
UEw8MykgYm91bmRhcnkuCisgICAgICoKKyAgICAgKiBQVjMyIGd1ZXN0cyBh
cmUgdW5zdXBwb3J0ZWQgZm9yIHNwZWN1bGF0aXZlIGlzc3VlcywgYW5kIGV4
Y2x1ZGVkIGZyb20KKyAgICAgKiBjb25zaWRlcmF0aW9uIGZvciBzaW1wbGlj
aXR5LgorICAgICAqCisgICAgICogVGhlIFBWNjQgdXNlci9rZXJuZWwgYm91
bmRhcnkgaXMgQ1BMMyBvbiBib3RoIHNpZGVzLCBzbyBTUlNPX1UvU19OTwor
ICAgICAqIHdvbid0IGNvbnZleSB0aGUgbWVhbmluZyB0aGF0IGEgUFYga2Vy
bmVsIGV4cGVjdHMuCisgICAgICoKKyAgICAgKiBBZnRlciBkaXNjdXNzaW9u
cyB3aXRoIEFNRCwgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIGhhdmlu
ZworICAgICAqIEJQX1NQRUNfUkVEVUNFIGFjdGl2ZSBjYXVzZXMgdGhlIFBW
NjQgdXNlci9rZXJuZWwgYm91bmRhcnkgdG8gaGF2ZSBhCisgICAgICogcHJv
cGVydHkgY29tcGF0aWJsZSB3aXRoIHRoZSBtZWFuaW5nIG9mIFNSU09fVS9T
X05PLgorICAgICAqCisgICAgICogSWYgQlBfU1BFQ19SRURVQ0UgaXNuJ3Qg
YWN0aXZlLCByZW1vdmUgU1JTT19VL1NfTk8gZnJvbSB0aGUgUFYgbWF4Cisg
ICAgICogcG9saWN5LCB3aGljaCB3aWxsIGNhdXNlIGl0IHRvIGZpbHRlciBv
dXQgb2YgUFYgZGVmYXVsdCB0b28uCisgICAgICovCisgICAgaWYgKCAhYm9v
dF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1NSU09fTVNSX0ZJWCkgfHwgIW9wdF9i
cF9zcGVjX3JlZHVjZSApCisgICAgICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFU
VVJFX1NSU09fVVNfTk8sIGZzKTsKKwogICAgIGd1ZXN0X2NvbW1vbl9tYXhf
ZmVhdHVyZV9hZGp1c3RtZW50cyhmcyk7CiAgICAgZ3Vlc3RfY29tbW9uX2Zl
YXR1cmVfYWRqdXN0bWVudHMoZnMpOwogCmRpZmYgLS1naXQgYS94ZW4vYXJj
aC94ODYvY3B1L2FtZC5jIGIveGVuL2FyY2gveDg2L2NwdS9hbWQuYwppbmRl
eCAzMzEyZDg5NmRkOTAuLjhjNGU1MGRlNDUzNiAxMDA2NDQKLS0tIGEveGVu
L2FyY2gveDg2L2NwdS9hbWQuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L2Ft
ZC5jCkBAIC0xMDE4LDE2ICsxMDE4LDMzIEBAIHN0YXRpYyB2b2lkIGFtZF9p
bml0X2ZwX2NmZyhjb25zdCBzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiAgICAg
d3Jtc3JsKE1TUl9BTUQ2NF9GUF9DRkcsIHZhbCB8IG5ldyk7CiB9CiAKLXN0
YXRpYyB2b2lkIGFtZF9jaGVja19lcnJhdHVtXzE0ODUodm9pZCkKK3N0YXRp
YyB2b2lkIGFtZF9jaGVja19icF9jZmcodm9pZCkKIHsKLQl1aW50NjRfdCB2
YWwsIGNoaWNrZW5iaXQgPSAoMSA8PCA1KTsKKwl1aW50NjRfdCB2YWwsIG5l
dyA9IDA7CiAKLQlpZiAoY3B1X2hhc19oeXBlcnZpc29yIHx8IGJvb3RfY3B1
X2RhdGEueDg2ICE9IDB4MTkgfHwgIWlzX3plbjRfdWFyY2goKSkKKwkvKgor
CSAqIEFNRCBFcnJhdHVtICMxNDg1LiAgU2V0IGJpdCA1LCBhcyBpbnN0cnVj
dGVkLgorCSAqLworCWlmICghY3B1X2hhc19oeXBlcnZpc29yICYmIGJvb3Rf
Y3B1X2RhdGEueDg2ID09IDB4MTkgJiYgaXNfemVuNF91YXJjaCgpKQorCQlu
ZXcgfD0gKDEgPDwgNSk7CisKKwkvKgorCSAqIE9uIGhhcmR3YXJlIHN1cHBv
cnRpbmcgU1JTT19NU1JfRklYLCBhY3RpdmF0ZSBCUF9TUEVDX1JFRFVDRSBi
eQorCSAqIGRlZmF1bHQuICBUaGlzIGxldHMgdXMgZG8gdHdvIHRoaW5nczoK
KwkgKgorCSAqIDEpIEF2b2lkIElCUEItb24tZW50cnkgdG8gbWl0aWdhdGUg
U1JTTyBhdHRhY2tzIGZyb20gSFZNIGd1ZXN0cy4KKwkgKiAyKSBBZHZlcnRp
c2UgU1JTT19VU19OTyB0byBQViBndWVzdHMuCisJICovCisJaWYgKGJvb3Rf
Y3B1X2hhcyhYODZfRkVBVFVSRV9TUlNPX01TUl9GSVgpICYmIG9wdF9icF9z
cGVjX3JlZHVjZSkKKwkJbmV3IHw9IEJQX0NGR19TUEVDX1JFRFVDRTsKKwor
CS8qIEF2b2lkIHJlYWRpbmcgQlBfQ0ZHIGlmIHdlIGRvbid0IGludGVuZCB0
byBjaGFuZ2UgYW55dGhpbmcuICovCisJaWYgKCFuZXcpCiAJCXJldHVybjsK
IAogCXJkbXNybChNU1JfQU1ENjRfQlBfQ0ZHLCB2YWwpOwogCi0JaWYgKHZh
bCAmIGNoaWNrZW5iaXQpCisJaWYgKCh2YWwgJiBuZXcpID09IG5ldykKIAkJ
cmV0dXJuOwogCiAJLyoKQEAgLTEwMzYsNyArMTA1Myw3IEBAIHN0YXRpYyB2
b2lkIGFtZF9jaGVja19lcnJhdHVtXzE0ODUodm9pZCkKIAkgKiBzYW1lIHRp
bWUgYmVmb3JlIHRoZSBjaGlja2VuYml0IGlzIHNldC4gSXQncyBiZW5pZ24g
YmVjYXVzZSB0aGUKIAkgKiB2YWx1ZSBiZWluZyB3cml0dGVuIGlzIHRoZSBz
YW1lIG9uIGJvdGguCiAJICovCi0Jd3Jtc3JsKE1TUl9BTUQ2NF9CUF9DRkcs
IHZhbCB8IGNoaWNrZW5iaXQpOworCXdybXNybChNU1JfQU1ENjRfQlBfQ0ZH
LCB2YWwgfCBuZXcpOwogfQogCiBzdGF0aWMgdm9pZCBjZl9jaGVjayBpbml0
X2FtZChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCkBAIC0xMzE0LDcgKzEzMzEs
NyBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBpbml0X2FtZChzdHJ1Y3QgY3B1
aW5mb194ODYgKmMpCiAJCWRpc2FibGVfYzFfcmFtcGluZygpOwogCiAJYW1k
X2NoZWNrX3plbmJsZWVkKCk7Ci0JYW1kX2NoZWNrX2VycmF0dW1fMTQ4NSgp
OworCWFtZF9jaGVja19icF9jZmcoKTsKIAogCWlmIChmYW0xN19jNl9kaXNh
YmxlZCkKIAkJZmFtMTdfZGlzYWJsZV9jNihOVUxMKTsKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3ItaW5kZXguaCBiL3hlbi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3ItaW5kZXguaAppbmRleCBiZWQwYWI3
YjIxM2MuLmRiM2RiMDhhNTRhMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL21zci1pbmRleC5oCisrKyBiL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9tc3ItaW5kZXguaApAQCAtMzkxLDYgKzM5MSw3IEBACiAj
ZGVmaW5lIEFNRDY0X0RFX0NGR19MRkVOQ0VfU0VSSUFMSVNFCShfQUMoMSwg
VUxMKSA8PCAxKQogI2RlZmluZSBNU1JfQU1ENjRfRVhfQ0ZHCQkweGMwMDEx
MDJjCiAjZGVmaW5lIE1TUl9BTUQ2NF9CUF9DRkcJCTB4YzAwMTEwMmUKKyNk
ZWZpbmUgIEJQX0NGR19TUEVDX1JFRFVDRQkJKF9BQygxLCBVTEwpIDw8ICA0
KQogI2RlZmluZSBNU1JfQU1ENjRfREVfQ0ZHMgkJMHhjMDAxMTBlMwogCiAj
ZGVmaW5lIE1TUl9BTUQ2NF9EUjBfQUREUkVTU19NQVNLCTB4YzAwMTEwMjcK
ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0
cmwuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0cmwuaApp
bmRleCA2MDg0NGI3NTVkZmYuLmI3MzQ5YWM4OTg1MiAxMDA2NDQKLS0tIGEv
eGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwZWNfY3RybC5oCisrKyBiL3hl
bi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0cmwuaApAQCAtMTAyLDYg
KzEwMiw3IEBAIGV4dGVybiBpbnQ4X3Qgb3B0X3hwdGlfaHdkb20sIG9wdF94
cHRpX2RvbXU7CiAKIGV4dGVybiBib29sIGNwdV9oYXNfYnVnX2wxdGY7CiBl
eHRlcm4gaW50OF90IG9wdF9wdl9sMXRmX2h3ZG9tLCBvcHRfcHZfbDF0Zl9k
b211OworZXh0ZXJuIGJvb2wgb3B0X2JwX3NwZWNfcmVkdWNlOwogCiAvKgog
ICogVGhlIEwxRCBhZGRyZXNzIG1hc2ssIHdoaWNoIG1pZ2h0IGJlIHdpZGVy
IHRoYW4gcmVwb3J0ZWQgaW4gQ1BVSUQsIGFuZCB0aGUKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYyBiL3hlbi9hcmNoL3g4Ni9zcGVj
X2N0cmwuYwppbmRleCA1MDA1ZjBhY2RkZTkuLmI3MWZlMGE0ZWNlMSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jCisrKyBiL3hlbi9h
cmNoL3g4Ni9zcGVjX2N0cmwuYwpAQCAtOTUsNiArOTUsNyBAQCBzdGF0aWMg
Ym9vbCBfX2luaXRkYXRhIG9wdF91bnByaXZfbW1pbzsKIHN0YXRpYyBib29s
IF9fcm9fYWZ0ZXJfaW5pdCBvcHRfdmVyd19tbWlvOwogc3RhdGljIGludDhf
dCBfX2luaXRkYXRhIG9wdF9nZHNfbWl0ID0gLTE7CiBzdGF0aWMgaW50OF90
IF9faW5pdGRhdGEgb3B0X2Rpdl9zY3J1YiA9IC0xOworYm9vbCBfX3JvX2Fm
dGVyX2luaXQgb3B0X2JwX3NwZWNfcmVkdWNlID0gdHJ1ZTsKIAogc3RhdGlj
IGludCBfX2luaXQgY2ZfY2hlY2sgcGFyc2Vfc3BlY19jdHJsKGNvbnN0IGNo
YXIgKnMpCiB7CkBAIC0xNTUsNiArMTU2LDcgQEAgc3RhdGljIGludCBfX2lu
aXQgY2ZfY2hlY2sgcGFyc2Vfc3BlY19jdHJsKGNvbnN0IGNoYXIgKnMpCiAg
ICAgICAgICAgICBvcHRfdW5wcml2X21taW8gPSBmYWxzZTsKICAgICAgICAg
ICAgIG9wdF9nZHNfbWl0ID0gMDsKICAgICAgICAgICAgIG9wdF9kaXZfc2Ny
dWIgPSAwOworICAgICAgICAgICAgb3B0X2JwX3NwZWNfcmVkdWNlID0gZmFs
c2U7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoIHZhbCA+IDAgKQog
ICAgICAgICAgICAgcmMgPSAtRUlOVkFMOwpAQCAtMzc1LDYgKzM3Nyw4IEBA
IHN0YXRpYyBpbnQgX19pbml0IGNmX2NoZWNrIHBhcnNlX3NwZWNfY3RybChj
b25zdCBjaGFyICpzKQogICAgICAgICAgICAgb3B0X2dkc19taXQgPSB2YWw7
CiAgICAgICAgIGVsc2UgaWYgKCAodmFsID0gcGFyc2VfYm9vbGVhbigiZGl2
LXNjcnViIiwgcywgc3MpKSA+PSAwICkKICAgICAgICAgICAgIG9wdF9kaXZf
c2NydWIgPSB2YWw7CisgICAgICAgIGVsc2UgaWYgKCAodmFsID0gcGFyc2Vf
Ym9vbGVhbigiYnAtc3BlYy1yZWR1Y2UiLCBzLCBzcykpID49IDAgKQorICAg
ICAgICAgICAgb3B0X2JwX3NwZWNfcmVkdWNlID0gdmFsOwogICAgICAgICBl
bHNlCiAgICAgICAgICAgICByYyA9IC1FSU5WQUw7CiAKQEAgLTUxNyw3ICs1
MjEsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhlbnVt
IGluZF90aHVuayB0aHVuaykKICAgICAgKiBIYXJkd2FyZSByZWFkLW9ubHkg
aW5mb3JtYXRpb24sIHN0YXRpbmcgaW1tdW5pdHkgdG8gY2VydGFpbiBpc3N1
ZXMsIG9yCiAgICAgICogc3VnZ2VzdGlvbnMgb2Ygd2hpY2ggbWl0aWdhdGlv
biB0byB1c2UuCiAgICAgICovCi0gICAgcHJpbnRrKCIgIEhhcmR3YXJlIGhp
bnRzOiVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMl
cyVzJXMlcyVzXG4iLAorICAgIHByaW50aygiICBIYXJkd2FyZSBoaW50czol
cyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVz
JXMlcyVzXG4iLAogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19SRENM
X05PKSAgICAgICAgICAgICAgICAgICAgICAgID8gIiBSRENMX05PIiAgICAg
ICAgOiAiIiwKICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfRUlCUlMp
ICAgICAgICAgICAgICAgICAgICAgICAgICA/ICIgRUlCUlMiICAgICAgICAg
IDogIiIsCiAgICAgICAgICAgIChjYXBzICYgQVJDSF9DQVBTX1JTQkEpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPyAiIFJTQkEiICAgICAgICAgICA6
ICIiLApAQCAtNTQyLDExICs1NDYsMTIgQEAgc3RhdGljIHZvaWQgX19pbml0
IHByaW50X2RldGFpbHMoZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgICAg
ICAgIChlOGIgICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0lCUEJfUkVU
KSkgICAgICAgPyAiIElCUEJfUkVUIiAgICAgICA6ICIiLAogICAgICAgICAg
ICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9JQlBCX0JSVFlQ
RSkpICAgID8gIiBJQlBCX0JSVFlQRSIgICAgOiAiIiwKICAgICAgICAgICAg
KGUyMWEgJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfU1JTT19OTykpICAg
ICAgICA/ICIgU1JTT19OTyIgICAgICAgIDogIiIsCisgICAgICAgICAgIChl
MjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09fVVNfTk8pKSAg
ICAgPyAiIFNSU09fVVNfTk8iICAgICA6ICIiLAogICAgICAgICAgICAoZTIx
YyAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9UU0FfU1FfTk8pKSAgICAg
ID8gIiBUU0FfU1FfTk8iICAgICAgOiAiIiwKICAgICAgICAgICAgKGUyMWMg
JiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfVFNBX0wxX05PKSkgICAgICA/
ICIgVFNBX0wxX05PIiAgICAgIDogIiIpOwogCiAgICAgLyogSGFyZHdhcmUg
ZmVhdHVyZXMgd2hpY2ggbmVlZCBkcml2aW5nIHRvIG1pdGlnYXRlIGlzc3Vl
cy4gKi8KLSAgICBwcmludGsoIiAgSGFyZHdhcmUgZmVhdHVyZXM6JXMlcyVz
JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4iLAorICAgIHByaW50aygiICBI
YXJkd2FyZSBmZWF0dXJlczolcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVz
JXMlc1xuIiwKICAgICAgICAgICAgKGU4YiAgJiBjcHVmZWF0X21hc2soWDg2
X0ZFQVRVUkVfSUJQQikpIHx8CiAgICAgICAgICAgIChfN2QwICYgY3B1ZmVh
dF9tYXNrKFg4Nl9GRUFUVVJFX0lCUlNCKSkgICAgICAgICAgPyAiIElCUEIi
ICAgICAgICAgICA6ICIiLAogICAgICAgICAgICAoZThiICAmIGNwdWZlYXRf
bWFzayhYODZfRkVBVFVSRV9JQlJTKSkgfHwKQEAgLTU2Niw2ICs1NzEsNyBA
QCBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhlbnVtIGluZF90
aHVuayB0aHVuaykKICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfR0RT
X0NUUkwpICAgICAgICAgICAgICAgICAgICAgICA/ICIgR0RTX0NUUkwiICAg
ICAgIDogIiIsCiAgICAgICAgICAgIChjYXBzICYgQVJDSF9DQVBTX1JGRFNf
Q0xFQVIpICAgICAgICAgICAgICAgICAgICAgPyAiIFJGRFNfQ0xFQVIiICAg
ICA6ICIiLAogICAgICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZf
RkVBVFVSRV9TQlBCKSkgICAgICAgICAgID8gIiBTQlBCIiAgICAgICAgICAg
OiAiIiwKKyAgICAgICAgICAgKGUyMWEgJiBjcHVmZWF0X21hc2soWDg2X0ZF
QVRVUkVfU1JTT19NU1JfRklYKSkgICA/ICIgU1JTT19NU1JfRklYIiAgIDog
IiIsCiAgICAgICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFU
VVJFX1ZFUldfQ0xFQVIpKSAgICAgPyAiIFZFUldfQ0xFQVIiICAgICA6ICIi
KTsKIAogICAgIC8qIENvbXBpbGVkLWluIHN1cHBvcnQgd2hpY2ggcGVydGFp
bnMgdG8gbWl0aWdhdGlvbnMuICovCkBAIC0xMTM4LDcgKzExNDQsNyBAQCBz
dGF0aWMgdm9pZCBfX2luaXQgZGl2X2NhbGN1bGF0aW9ucyhib29sIGh3X3Nt
dF9lbmFibGVkKQogCiBzdGF0aWMgdm9pZCBfX2luaXQgaWJwYl9jYWxjdWxh
dGlvbnModm9pZCkKIHsKLSAgICBib29sIGRlZl9pYnBiX2VudHJ5ID0gZmFs
c2U7CisgICAgYm9vbCBkZWZfaWJwYl9lbnRyeV9wdiA9IGZhbHNlLCBkZWZf
aWJwYl9lbnRyeV9odm0gPSBmYWxzZTsKIAogICAgIC8qIENoZWNrIHdlIGhh
dmUgaGFyZHdhcmUgSUJQQiBzdXBwb3J0IGJlZm9yZSB1c2luZyBpdC4uLiAq
LwogICAgIGlmICggIWJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9JQlJTQikg
JiYgIWJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9JQlBCKSApCkBAIC0xMTYz
LDIyICsxMTY5LDQzIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBpYnBiX2NhbGN1
bGF0aW9ucyh2b2lkKQogICAgICAgICAgKiBDb25mdXNpb24uICBNaXRpZ2F0
ZSB3aXRoIElCUEItb24tZW50cnkuCiAgICAgICAgICAqLwogICAgICAgICBp
ZiAoICFib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQlRDX05PKSApCi0gICAg
ICAgICAgICBkZWZfaWJwYl9lbnRyeSA9IHRydWU7CisgICAgICAgICAgICBk
ZWZfaWJwYl9lbnRyeV9wdiA9IGRlZl9pYnBiX2VudHJ5X2h2bSA9IHRydWU7
CiAKICAgICAgICAgLyoKLSAgICAgICAgICogRnVydGhlciB0byBCVEMsIFpl
bjMvNCBDUFVzIHN1ZmZlciBmcm9tIFNwZWN1bGF0aXZlIFJldHVybiBTdGFj
awotICAgICAgICAgKiBPdmVyZmxvdyBpbiBtb3N0IGNvbmZpZ3VyYXRpb25z
LiAgTWl0aWdhdGUgd2l0aCBJQlBCLW9uLWVudHJ5IGlmIHdlCi0gICAgICAg
ICAqIGhhdmUgdGhlIG1pY3JvY29kZSB0aGF0IG1ha2VzIHRoaXMgYW4gZWZm
ZWN0aXZlIG9wdGlvbi4KKyAgICAgICAgICogSW4gYWRkaXRpb24gdG8gQlRD
LCBaZW4zIGFuZCBsYXRlciBDUFVzIHN1ZmZlciBmcm9tIFNwZWN1bGF0aXZl
CisgICAgICAgICAqIFJldHVybiBTdGFjayBPdmVyZmxvdyBpbiBtb3N0IGNv
bmZpZ3VyYXRpb25zLiAgSWYgd2UgaGF2ZSBtaWNyb2NvZGUKKyAgICAgICAg
ICogdGhhdCBtYWtlcyBJQlBCLW9uLWVudHJ5IGFuIGVmZmVjdGl2ZSBtaXRp
Z2F0aW9uLCBzZWUgYWJvdXQgdXNpbmcKKyAgICAgICAgICogaXQuCiAgICAg
ICAgICAqLwogICAgICAgICBpZiAoICFib290X2NwdV9oYXMoWDg2X0ZFQVRV
UkVfU1JTT19OTykgJiYKICAgICAgICAgICAgICBib290X2NwdV9oYXMoWDg2
X0ZFQVRVUkVfSUJQQl9CUlRZUEUpICkKLSAgICAgICAgICAgIGRlZl9pYnBi
X2VudHJ5ID0gdHJ1ZTsKKyAgICAgICAgeworICAgICAgICAgICAgLyoKKyAg
ICAgICAgICAgICAqIFNSU09fVS9TX05PIGlzIGEgc3Vic2V0IG9mIFNSU09f
Tk8sIGlkZW50aWZ5aW5nIHRoYXQgU1JTTyBpc24ndAorICAgICAgICAgICAg
ICogcG9zc2libGUgYWNyb3NzIHRoZSBVc2VyIChDUEwzKSAvIFN1cGVydmlz
b3IgKENQTDwzKSBib3VuZGFyeS4KKyAgICAgICAgICAgICAqCisgICAgICAg
ICAgICAgKiBJZ25vcmluZyBQVjMyIChub3Qgc2VjdXJpdHkgc3VwcG9ydGVk
IGZvciBzcGVjdWxhdGl2ZSBpc3N1ZXMpLAorICAgICAgICAgICAgICogdGhp
cyBtZWFucyB3ZSBvbmx5IG5lZWQgdG8gdXNlIElCUEItb24tZW50cnkgZm9y
IFBWIGd1ZXN0cyBvbgorICAgICAgICAgICAgICogaGFyZHdhcmUgd2hpY2gg
ZG9lc24ndCBlbnVtZXJhdGUgU1JTT19VU19OTy4KKyAgICAgICAgICAgICAq
LworICAgICAgICAgICAgaWYgKCAhYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJF
X1NSU09fVVNfTk8pICkKKyAgICAgICAgICAgICAgICBkZWZfaWJwYl9lbnRy
eV9wdiA9IHRydWU7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAg
KiBTUlNPX01TUl9GSVggZW51bWVyYXRlcyB0aGF0IHdlIGNhbiB1c2UgTVNS
X0JQX0NGRy5TUEVDX1JFRFVDRQorICAgICAgICAgICAgICogdG8gbWl0aWdh
dGUgU1JTTyBhY3Jvc3MgdGhlIGhvc3QvZ3Vlc3QgYm91bmRhcnkuICBXZSBv
bmx5IG5lZWQKKyAgICAgICAgICAgICAqIHRvIHVzZSBJQlBCLW9uLWVudHJ5
IGZvciBIVk0gZ3Vlc3RzIGlmIHdlIGhhdmVuJ3QgZW5hYmxlZCB0aGlzCisg
ICAgICAgICAgICAgKiBjb250cm9sLgorICAgICAgICAgICAgICovCisgICAg
ICAgICAgICBpZiAoICFib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfU1JTT19N
U1JfRklYKSB8fCAhb3B0X2JwX3NwZWNfcmVkdWNlICkKKyAgICAgICAgICAg
ICAgICBkZWZfaWJwYl9lbnRyeV9odm0gPSB0cnVlOworICAgICAgICB9CiAg
ICAgfQogCiAgICAgaWYgKCBvcHRfaWJwYl9lbnRyeV9wdiA9PSAtMSApCi0g
ICAgICAgIG9wdF9pYnBiX2VudHJ5X3B2ID0gSVNfRU5BQkxFRChDT05GSUdf
UFYpICYmIGRlZl9pYnBiX2VudHJ5OworICAgICAgICBvcHRfaWJwYl9lbnRy
eV9wdiA9IElTX0VOQUJMRUQoQ09ORklHX1BWKSAmJiBkZWZfaWJwYl9lbnRy
eV9wdjsKICAgICBpZiAoIG9wdF9pYnBiX2VudHJ5X2h2bSA9PSAtMSApCi0g
ICAgICAgIG9wdF9pYnBiX2VudHJ5X2h2bSA9IElTX0VOQUJMRUQoQ09ORklH
X0hWTSkgJiYgZGVmX2licGJfZW50cnk7CisgICAgICAgIG9wdF9pYnBiX2Vu
dHJ5X2h2bSA9IElTX0VOQUJMRUQoQ09ORklHX0hWTSkgJiYgZGVmX2licGJf
ZW50cnlfaHZtOwogCiAgICAgaWYgKCBvcHRfaWJwYl9lbnRyeV9wdiApCiAg
ICAgewpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2
L2NwdWZlYXR1cmVzZXQuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4
Ni9jcHVmZWF0dXJlc2V0LmgKaW5kZXggNDJkYjEzMmI0YzJmLi4xMmNhM2Vm
YzVjZTkgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4
Ni9jcHVmZWF0dXJlc2V0LmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2Fy
Y2gteDg2L2NwdWZlYXR1cmVzZXQuaApAQCAtMjg5LDcgKzI4OSw5IEBAIFhF
Tl9DUFVGRUFUVVJFKE5TQ0IsICAgICAgICAgICAgICAgMTEqMzIrIDYpIC8q
QSAgTnVsbCBTZWxlY3RvciBDbGVhcnMgQmFzZSAoYW5kCiBYRU5fQ1BVRkVB
VFVSRShBVVRPX0lCUlMsICAgICAgICAgIDExKjMyKyA4KSAvKiAgIEF1dG9t
YXRpYyBJQlJTICovCiBYRU5fQ1BVRkVBVFVSRShTQlBCLCAgICAgICAgICAg
ICAgIDExKjMyKzI3KSAvKkEgIFNlbGVjdGl2ZSBCcmFuY2ggUHJlZGljdG9y
IEJhcnJpZXIgKi8KIFhFTl9DUFVGRUFUVVJFKElCUEJfQlJUWVBFLCAgICAg
ICAgMTEqMzIrMjgpIC8qQSAgSUJQQiBmbHVzaGVzIEJyYW5jaCBUeXBlIHBy
ZWRpY3Rpb25zIHRvbyAqLwotWEVOX0NQVUZFQVRVUkUoU1JTT19OTywgICAg
ICAgICAgICAxMSozMisyOSkgLypBICBIYXJkd2FyZSBub3QgdnVsZW5yYWJs
ZSB0byBTcGVjdWxhdGl2ZSBSZXR1cm4gU3RhY2sgT3ZlcmZsb3cgKi8KK1hF
Tl9DUFVGRUFUVVJFKFNSU09fTk8sICAgICAgICAgICAgMTEqMzIrMjkpIC8q
QSAgSGFyZHdhcmUgbm90IHZ1bG5lcmFibGUgdG8gU3BlY3VsYXRpdmUgUmV0
dXJuIFN0YWNrIE92ZXJmbG93ICovCitYRU5fQ1BVRkVBVFVSRShTUlNPX1VT
X05PLCAgICAgICAgIDExKjMyKzMwKSAvKkEhIEhhcmR3YXJlIG5vdCB2dWxu
ZXJhYmxlIHRvIFNSU08gYWNyb3NzIHRoZSBVc2VyL1N1cGVydmlzb3IgYm91
bmRhcnkgKi8KK1hFTl9DUFVGRUFUVVJFKFNSU09fTVNSX0ZJWCwgICAgICAg
MTEqMzIrMzEpIC8qICAgTVNSX0JQX0NGRy5CUF9TUEVDX1JFRFVDRSBhdmFp
bGFibGUgKi8KIAogLyogSW50ZWwtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQ
VUlEIGxldmVsIDB4MDAwMDAwMDc6MS5lYngsIHdvcmQgMTIgKi8KIFhFTl9D
UFVGRUFUVVJFKElOVEVMX1BQSU4sICAgICAgICAgMTIqMzIrIDApIC8qICAg
UHJvdGVjdGVkIFByb2Nlc3NvciBJbnZlbnRvcnkgTnVtYmVyICovCg==

--=separator
Content-Type: application/octet-stream; name="xsa490-4.17-2.patch"
Content-Disposition: attachment; filename="xsa490-4.17-2.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L2FtZDogTWl0aWdhdGUgQU1ELVNOLTcwNTIKClRo
aXMgaXMgWFNBLTQ5MCAvIENWRS0yMDI1LTU0NTE4LgoKU2lnbmVkLW9mZi1i
eTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4K
UmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRy
aXguY29tPgoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMg
Yi94ZW4vYXJjaC94ODYvY3B1L2FtZC5jCmluZGV4IDhjNGU1MGRlNDUzNi4u
ODYyNjhlODYxOWI3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L2Ft
ZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMKQEAgLTEwMjIsMTEg
KzEwMjIsMjUgQEAgc3RhdGljIHZvaWQgYW1kX2NoZWNrX2JwX2NmZyh2b2lk
KQogewogCXVpbnQ2NF90IHZhbCwgbmV3ID0gMDsKIAotCS8qCi0JICogQU1E
IEVycmF0dW0gIzE0ODUuICBTZXQgYml0IDUsIGFzIGluc3RydWN0ZWQuCi0J
ICovCi0JaWYgKCFjcHVfaGFzX2h5cGVydmlzb3IgJiYgYm9vdF9jcHVfZGF0
YS54ODYgPT0gMHgxOSAmJiBpc196ZW40X3VhcmNoKCkpCi0JCW5ldyB8PSAo
MSA8PCA1KTsKKwlpZiAoIWNwdV9oYXNfaHlwZXJ2aXNvcikgeworCQkvKgor
CQkgKiBBTUQgRXJyYXR1bSAjMTQ4NS4gIElmIFNNVCBpcyBlbmFibGVkIGFu
ZCBTVElCUCBkaXNhYmxlZCwKKwkJICogdGhlIENQVSBtYXkgZmV0Y2ggaW5j
b3JyZWN0IGluc3RydWN0aW9uIGJ5dGVzLgorCQkgKgorCQkgKiBTZXQgYml0
IDUsIGFzIGluc3RydWN0ZWQuCisJCSAqLworCQlpZiAoYm9vdF9jcHVfZGF0
YS54ODYgPT0gMHgxOSAmJiBpc196ZW40X3VhcmNoKCkpCisJCQluZXcgfD0g
KDEgPDwgNSk7CisKKwkJLyoKKwkJICogQU1EIFNCLTcwNTIuICBDUFUgT1Ag
Q2FjaGUgY29ycnVwdGlvbiwgY2F1c2luZyBpbnN0cnVjdGlvbnMKKwkJICog
dG8gYmUgZXhlY3V0ZWQgYXQgYSBoaWdoZXIgcHJpdmlsZWdlLgorCQkgKgor
CQkgKiBTZXQgYml0IDMzLCBhcyBpbnN0cnVjdGVkLgorCQkgKi8KKwkJaWYg
KGJvb3RfY3B1X2RhdGEueDg2ID09IDB4MTcgJiYgaXNfemVuMl91YXJjaCgp
KQorCQkJbmV3IHw9ICgxVUwgPDwgMzMpOworCX0KIAogCS8qCiAJICogT24g
aGFyZHdhcmUgc3VwcG9ydGluZyBTUlNPX01TUl9GSVgsIGFjdGl2YXRlIEJQ
X1NQRUNfUkVEVUNFIGJ5Cg==

--=separator
Content-Type: application/octet-stream; name="xsa490-4.21.patch"
Content-Disposition: attachment; filename="xsa490-4.21.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L2FtZDogTWl0aWdhdGUgQU1ELVNOLTcwNTIKClRo
aXMgaXMgWFNBLTQ5MCAvIENWRS0yMDI1LTU0NTE4LgoKU2lnbmVkLW9mZi1i
eTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4K
UmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRy
aXguY29tPgoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMg
Yi94ZW4vYXJjaC94ODYvY3B1L2FtZC5jCmluZGV4IDFiYjA3NjZlYmYxMy4u
YjViZjJiNzMyZThmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L2Ft
ZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMKQEAgLTExMTYsMTEg
KzExMTYsMjUgQEAgc3RhdGljIHZvaWQgYW1kX2NoZWNrX2JwX2NmZyh2b2lk
KQogewogCXVpbnQ2NF90IHZhbCwgbmV3ID0gMDsKIAotCS8qCi0JICogQU1E
IEVycmF0dW0gIzE0ODUuICBTZXQgYml0IDUsIGFzIGluc3RydWN0ZWQuCi0J
ICovCi0JaWYgKCFjcHVfaGFzX2h5cGVydmlzb3IgJiYgYm9vdF9jcHVfZGF0
YS54ODYgPT0gMHgxOSAmJiBpc196ZW40X3VhcmNoKCkpCi0JCW5ldyB8PSAo
MSA8PCA1KTsKKwlpZiAoIWNwdV9oYXNfaHlwZXJ2aXNvcikgeworCQkvKgor
CQkgKiBBTUQgRXJyYXR1bSAjMTQ4NS4gIElmIFNNVCBpcyBlbmFibGVkIGFu
ZCBTVElCUCBkaXNhYmxlZCwKKwkJICogdGhlIENQVSBtYXkgZmV0Y2ggaW5j
b3JyZWN0IGluc3RydWN0aW9uIGJ5dGVzLgorCQkgKgorCQkgKiBTZXQgYml0
IDUsIGFzIGluc3RydWN0ZWQuCisJCSAqLworCQlpZiAoYm9vdF9jcHVfZGF0
YS54ODYgPT0gMHgxOSAmJiBpc196ZW40X3VhcmNoKCkpCisJCQluZXcgfD0g
KDEgPDwgNSk7CisKKwkJLyoKKwkJICogQU1EIFNCLTcwNTIuICBDUFUgT1Ag
Q2FjaGUgY29ycnVwdGlvbiwgY2F1c2luZyBpbnN0cnVjdGlvbnMKKwkJICog
dG8gYmUgZXhlY3V0ZWQgYXQgYSBoaWdoZXIgcHJpdmlsZWdlLgorCQkgKgor
CQkgKiBTZXQgYml0IDMzLCBhcyBpbnN0cnVjdGVkLgorCQkgKi8KKwkJaWYg
KGJvb3RfY3B1X2RhdGEueDg2ID09IDB4MTcgJiYgaXNfemVuMl91YXJjaCgp
KQorCQkJbmV3IHw9ICgxVUwgPDwgMzMpOworCX0KIAogCS8qCiAJICogT24g
aGFyZHdhcmUgc3VwcG9ydGluZyBTUlNPX01TUl9GSVgsIGFjdGl2YXRlIEJQ
X1NQRUNfUkVEVUNFIGJ5Cg==

--=separator--


From xen-devel-bounces@lists.xenproject.org Tue May 12 16:05:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 16:05:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307184.1578895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpbf-0001dl-V5; Tue, 12 May 2026 16:05:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307184.1578895; Tue, 12 May 2026 16:05:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpbf-0001de-RY; Tue, 12 May 2026 16:05:15 +0000
Received: by outflank-mailman (input) for mailman id 1307184;
 Tue, 12 May 2026 16:05:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wMpbe-0001dM-33
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 16:05:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpbd-00HM86-FF
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 18:05:13 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 6a034fac-5cb7-0a2a0a5109dd-0a2a4509aa68-20
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 18:05:13 +0200
Received: from [202.12.124.154] (helo=fhigh-b3-smtp.messagingengine.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 6a034fb8-2497-0a2a45090019-ca0c7c9addc7-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 18:05:13 +0200
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 53B667A0118;
 Tue, 12 May 2026 12:05:11 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Tue, 12 May 2026 12:05:11 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 12 May 2026 12:05:05 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm3 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1778601911;
	 x=1778688311; bh=q6u7b2PUR+mLnvMgH6P/y+fc2nesAkTPNVf1mznQplE=; b=
	ikhOIOPA5cxyfI8T3Tf7gtO/NFMSMXR8posp18yCqz3L2pRPGo8Fz1Sr09+oPocj
	EluO+TG6CJagyysD+M0MHQ1DIWlDLy4mam9D2QpRjXnNvGOVbqf/E5Y8j2xafc8L
	AYgOie8nWh/EWQlFjQqNxQHZngXUeSOotlyYt7xqmBRaNCgF2MHZcOwFrEmmggfV
	JYgOqZe0/8ItUZtkwC4OROPnosVxxbnLwF2/Qi1kB0JnEUDL6mthiOwXlGP7ttVY
	KijOl6nFOCYKoCzyI4FKExuNJn5I/duKjKQClHTa0flF7axliI+hm8FQu5TUT57K
	/t+bvpl39VD1EEc4rqMXwg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=
	1778601911; x=1778688311; bh=q6u7b2PUR+mLnvMgH6P/y+fc2nesAkTPNVf
	1mznQplE=; b=dCdrkjYgFK1MrwHQXQ+kRk2YlnXLXYZk/tKilonRUMpI0AkDEqB
	/GGSGu6yFePQ1XMUCYQdFoyyl1Tb9ANPLCDTPIjA8KX7fJPO8PFnONqnlzsqcjYw
	4S1QyAgeoO4ZmPjzl/PaKeFyN7tybW9AUrCdW+n8iax6ETL0lkBzxNiAJRbWWW8B
	4qeQUvKoJoS3Q8XqkoCvqc6GUITxyL2ee/ILvgUNBd+9ArJHth0QMFiN99xkkauH
	q3NltT9vhOZV1t7WmcZTxPZLhp090cxNnQSRKzI6mvJqPR+P8MW5DDKgeqAUrbUi
	MbF1ZNs7wcWJVohoUPx+3eikjCH7HpZUXKw==
X-ME-Sender: <xms:tU8DasonUkycxOtfgXuBegFYXad_JkKHXEwF7F2-ifGpn6Fl-d-qLw>
    <xme:tU8Daug_1x-MELF0w4cqhBosOaWdOHxQHD2L5W7I4D4NUBIu_GPprzJj34gb6devC
    qEVFPxIiYnrGmBp1xWKK4bHOa3A0crRQ4r-QcH3mASI54XR>
X-ME-Received: <xmr:tU8DauPAu9tuin-E9DISlMd_HemUksaHpN9v9LKiAP2cwLkhTP402ZIrO-razgkyMxAwDKMafAdgR7MtlmsSY3t_OyTm55_EZs4>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduvddvvdefucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtroertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnheptdetvdfh
    kedutedvleffgeeutdektefhtefhfffhfeetgefhieegledvtddtkedtnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepuddupd
    hmohguvgepshhmthhpohhuthdprhgtphhtthhopehjghhrohhsshesshhushgvrdgtohhm
    pdhrtghpthhtoheplhhinhhugidqkhgvrhhnvghlsehvghgvrhdrkhgvrhhnvghlrdhorh
    hgpdhrtghpthhtohepgiekieeskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepkhgvvhhi
    nhdrsghrohgushhkhiesrghrmhdrtghomhdprhgtphhtthhopegsohhrihhsrdhoshhtrh
    hovhhskhihsehorhgrtghlvgdrtghomhdprhgtphhtthhopehtghhlgieskhgvrhhnvghl
    rdhorhhgpdhrtghpthhtohepmhhinhhgohesrhgvughhrghtrdgtohhmpdhrtghpthhtoh
    epsghpsegrlhhivghnkedruggvpdhrtghpthhtohepuggrvhgvrdhhrghnshgvnheslhhi
    nhhugidrihhnthgvlhdrtghomh
X-ME-Proxy: <xmx:tU8Daox9sqbt6V7_9SfrHnyu0ew_B1zFovtWXqEueWM9fgK6U-rUlA>
    <xmx:tU8Dagp2LETUv27F6t2vqezhrh-GvcAu14fYnMloEUMnUTX7ihP4hg>
    <xmx:tU8DaoN74ajHyQwXeefP3bbXZwh_fMd8UrEp74jvr5IKUGtVSQkObg>
    <xmx:tU8DakffRzr1IUA3wa5CJh1j2xo3wqhelI_VWnbS9LjcxGxbGTRTpg>
    <xmx:t08DakdtuRpRtGBfb2nkRh_nITHA2bdGwJpjM89DDaIZNpLsvRhb1uVD>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 12 May 2026 18:05:01 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Juergen Gross <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org, kevin.brodsky@arm.com,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/xen: Tolerate nested XEN_LAZY_MMU entering/leaving
Message-ID: <agNPrRfBnRdMCGrE@mail-itl>
References: <20260508143933.493013-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="TX6pd/gDPiw+HuTq"
Content-Disposition: inline
In-Reply-To: <20260508143933.493013-1-jgross@suse.com>
X-purgate-ID: tlsNG-bad1c0/1778601913-42573A53-857CACF2/0/0
X-purgate-type: clean
X-purgate-size: 3498


--TX6pd/gDPiw+HuTq
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 12 May 2026 18:05:01 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Juergen Gross <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org, kevin.brodsky@arm.com,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/xen: Tolerate nested XEN_LAZY_MMU entering/leaving

On Fri, May 08, 2026 at 04:39:33PM +0200, Juergen Gross wrote:
> With the support of nested lazy mmu sections it can happen that
> arch_enter_lazy_mmu_mode() is being called twice without a call of
> arch_leave_lazy_mmu_mode() in between, as the lazy_mmu_*() helpers
> are not disabling preemption when checking for nested lazy mmu
> sections.
>=20
> This is a problem when running as a Xen PV guest, as
> xen_enter_lazy_mmu() and xen_leave_lazy_mmu() don't tolerate this
> case.
>=20
> Fix that in xen_enter_lazy_mmu() and xen_leave_lazy_mmu() in order
> not to hurt all other lazy mmu mode users.
>=20
> Fixes: 291b3abed657 ("x86/xen: use lazy_mmu_state when context-switching")
> Signed-off-by: Juergen Gross <jgross@suse.com>

I have ran several test iterations with this patch (on top of 7.0.4) and
it seems to fix the issue. So,

Tested-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>

I did run some tests also with 291b3abed657 reverted (instead of this
patch), and that seems to work too, but I didn't run enough of
iterations to be 100% sure. Would it be helpful to that that further
too?

> ---
>  arch/x86/xen/mmu_pv.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
>=20
> diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
> index c80d0058efd1..3eee5f84f8a7 100644
> --- a/arch/x86/xen/mmu_pv.c
> +++ b/arch/x86/xen/mmu_pv.c
> @@ -2145,7 +2145,10 @@ static void xen_set_fixmap(unsigned idx, phys_addr=
_t phys, pgprot_t prot)
> =20
>  static void xen_enter_lazy_mmu(void)
>  {
> -	enter_lazy(XEN_LAZY_MMU);
> +	preempt_disable();
> +	if (xen_get_lazy_mode() !=3D XEN_LAZY_MMU)
> +		enter_lazy(XEN_LAZY_MMU);
> +	preempt_enable();
>  }
> =20
>  static void xen_flush_lazy_mmu(void)
> @@ -2182,7 +2185,8 @@ static void xen_leave_lazy_mmu(void)
>  {
>  	preempt_disable();
>  	xen_mc_flush();
> -	leave_lazy(XEN_LAZY_MMU);
> +	if (xen_get_lazy_mode() !=3D XEN_LAZY_NONE)
> +		leave_lazy(XEN_LAZY_MMU);
>  	preempt_enable();
>  }
> =20
> --=20
> 2.54.0
>=20

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--TX6pd/gDPiw+HuTq
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmoDT60ACgkQ24/THMrX
1yx4bAf/VQ75g91ht89MgBxSdIsuH3bHFEoMWP584OeaPmODQ286u3tzJYlkk6A0
N4hU2vs2cf6FGx1zFkwRrW4mCe7jsI2J0ZNinxpKEiX8Gkan1LqDWRI568/7lwHJ
RoWSFmeM6fq/EmpVnRIVvTucul9r6+I5LqV3cG01RcOyV50f3zRZgIacIIgQKdU/
F0b/vQVZ9FksDmCudohF6xdOH1kFMhC/wBu+GRmE1j2rALpRZhGp9ofiLxpwtyqp
6EE45bopaGTU2EecaeSOCnmmvtP+M4BIPaRDqsdXXvh8qKFDCjuCn+0wqUWUKItr
Gb8dxWXuPRtvYz/Q1el+pajOBkviBQ==
=QeYe
-----END PGP SIGNATURE-----

--TX6pd/gDPiw+HuTq--


From xen-devel-bounces@lists.xenproject.org Tue May 12 16:07:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 16:07:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307208.1578904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpdu-0002Jt-AG; Tue, 12 May 2026 16:07:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307208.1578904; Tue, 12 May 2026 16:07:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpdu-0002Jj-6g; Tue, 12 May 2026 16:07:34 +0000
Received: by outflank-mailman (input) for mailman id 1307208;
 Tue, 12 May 2026 16:07:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e1cf17f96000f373@swg.vates.tech>)
 id 1wMpds-0002JY-24
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 16:07:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpdr-00ARDz-Ck
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 18:07:31 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e1cf17f96000f373@swg.vates.tech>)
 id 6a035023-e002-0a2a0a5209dd-0a2a450bcc6e-36
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 18:07:31 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e1cf17f96000f373@swg.vates.tech>)
 id 6a035042-212f-0a2a450b0019-b9ff1c2296a9-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 18:07:31 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e1cf17f96000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 12 May 2026 16:07:29 +0000
Received: from l14.. (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 8768981617;
 Tue, 12 May 2026 18:07:28 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=Api6dZu/kYwbQY6iMbeIAyrVF8cQmcaLDQnh0B2K++o=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:feedback-id;
 b=TPJCNANsOxRaFsdRsZqF7gOcrk7PsQaX43Af5qC2t3N5EnKNwk1IUrEOE9B/oCFZNj4W6KLyW
 r/XZj7nr7xmzRfew+FCsu3ZscjDxl9IWSvqdRjWsG5ekNZwgmGh09PFtDhA8P0uNyIzWp94aMFA
 +klhS3bhZwxY4iZIhf4cejhyvS7jHaDHc0FiMy48xFICnF6qTo2iSq1a4IR8elQN3lBImhYy3U9
 daXN0zZoWocv6bxRn1pO6n5D82ExFeOvRlYsX9BbKWyvB7MatAnTDMb7ixKr3JDr8gRGi/tc/G3
 7zXCAuI7+6C29ZNNiFxBbI3JCWRvlujHwlnS2HNcxDsQ==
X-Zone-Loop: 961a7766eba627a5ddfde0227fce3ac0adcadf422438
x-campaign-type: default
x-transaction-id: 1d358507-51e9-4734-8ddd-062f1f3a7107
x-swg-uid: 01-28159fd6-ba5f-446b-acc9-bc7b6ec44ae6
X-Mailer: Sweego
Message-ID:
 <1778602049.8631fc262581453bbf619ec5b2062170.19e1cf17f96000f373@vates.tech>
x-swg-bid: 1778602049.8631fc262581453bbf619ec5b2062170.19e1cf17f96000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Anthony PERARD <anthony.perard@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH] automation/eclair: Restrict where eclair jobs are auto-started
Date: Tue, 12 May 2026 18:07:22 +0200
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.abc.a9ca9332a5435f32.19e1cf17cb0.7336cce55c47b1f4=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1778602048688
X-purgate-ID: tlsNG-42698a/1778602051-19165F3B-B2974F6D/0/0
X-purgate-type: clean
X-purgate-size: 1530

---=Part.abc.a9ca9332a5435f32.19e1cf17cb0.7336cce55c47b1f4=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

This will prevent eclair jobs from been started automatically
everywhere but in the main push repo, but still have the option to
start a jobs manually=2E

Signed-off-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>
---

Notes:
    eclair jobs are still manual under people:
        https://gitlab=2Ecom/xen-project/people/anthonyper/xen/-/pipelines=
/2519778881
   =20
    and they are still running in hardware repos:
        https://gitlab=2Ecom/xen-project/hardware/xen-staging/-/pipelines/=
2519784420

 automation/gitlab-ci/analyze=2Eyaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/automation/gitlab-ci/analyze=2Eyaml b/automation/gitlab-ci/an=
alyze=2Eyaml
index b3f99f472d9e=2E=2Ed6b6cf3e548b 100644
--- a/automation/gitlab-ci/analyze=2Eyaml
+++ b/automation/gitlab-ci/analyze=2Eyaml
@@ -33,7 +33,7 @@
       when: never
     - if: $CI_JOB_NAME !~ $SELECTED_JOBS_ONLY
       when: never
-    - if: $WTOKEN && $CI_PROJECT_PATH =3D~ /^xen-project\/people\/=2E*$/
+    - if: $WTOKEN && $CI_PROJECT_PATH !~ /^xen-project\/hardware\//
       when: manual
       allow_failure: true
     - !reference [=2Eeclair-analysis, rules]


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.abc.a9ca9332a5435f32.19e1cf17cb0.7336cce55c47b1f4=---


From xen-devel-bounces@lists.xenproject.org Tue May 12 16:10:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 16:10:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307223.1578913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpgU-0004Ix-NA; Tue, 12 May 2026 16:10:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307223.1578913; Tue, 12 May 2026 16:10:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpgU-0004Iq-KU; Tue, 12 May 2026 16:10:14 +0000
Received: by outflank-mailman (input) for mailman id 1307223;
 Tue, 12 May 2026 16:10:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wMpgS-0004HT-HE
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 16:10:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpgR-004RH4-UH
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 18:10:11 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a0350dd-bab6-0a2a0a5309dd-0a2a4504aab6-8
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 18:10:11 +0200
Received: from [209.85.208.45] (helo=mail-ed1-f45.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a0350e3-1dec-0a2a45040019-d155d02dbcc0-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 18:10:11 +0200
Received: by mail-ed1-f45.google.com with SMTP id
 4fb4d7f45d1cf-67da63ae541so10077971a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 09:10:11 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd059f10d36sm317917466b.3.2026.05.12.09.10.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 09:10:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778602211; x=1779207011; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=9MkvQXAPfDfe0acn5x/x8Uh/+eGu9e6ihqYtWilJKD8=;
        b=foYvtMYKVIsb/ACtm8mGebtorAJDlcKmm1t1+J2iCnJrYW1a35myWLU+QhXP1I1f7U
         HVrMCgjBzluQ8kNBeYtun6nWT6rk4wgABxsOM2q0se4ct0NDM+HuVRmzuR5+o6zh7gYN
         Tl4ynROQm2Q6VdpvZW6Q+154TQ+ZbvEll3uzuEemY4gimyZbFi0Tf2ZzsysxGgfIk6pk
         r3upMEEZ4k32s5hc4g4bhFKocDshBpH8HO1gGZE60ytNHTd4nDHP4ugoXvcq3imti7n3
         Jmjchfo+VvDMphqDTa9TurwwdFJ0LYFsNKIo4eJ80KBEGSAacsyFIPTWkWD6m4iYq5qK
         TdKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778602211; x=1779207011;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=9MkvQXAPfDfe0acn5x/x8Uh/+eGu9e6ihqYtWilJKD8=;
        b=iN3eaBb/Iv+Z8Tnj1xHMPiP+eQltt1TvWkgC9augTI5CzQWU1nFlvv5Xkj/6O5rdbH
         akFt4LCBedRbSXH3L7+/KqGNoxQJMnSyF+LfiFgIuegU5Mv/FJKLRwaiZnkR3YDvCqH0
         hX8Kbhimg5mkoWyB4nE3sWvM5HtxbongOI8oViSWIWS9Ir4LwLwO2W4GwBVCjuntHciS
         zu8zvHvUyulIZ0e6pR2VyJUluC1UrMFr1TLpVkcqJ+FZvi2m83TS4oUEYMrnYzc4FtSN
         /r+/XwIayWoC3LF33oHOOfEEliooVXg1Mtnx6nIrGKe4sanyBXQfxURM3JuQgc/pTBRR
         oryg==
X-Forwarded-Encrypted: i=1; AFNElJ8NqLvFIhwgvei8j9gfB0thNBUR6fAqndB/klqSfj7F6RmP+taiq4BJDywJtLJVZcTL8unc8qzTnjQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqXfXvx0h/5ULHC/x9i77sQkedpeDawjyhnhpaseSFwiPRZpuH
	Ustkd5VpT4JMYdAmb3WTHHYhMh2dqpDb4mAAOBNyJcZ8gldCUvelF6HRmtN+xREnmaQ=
X-Gm-Gg: Acq92OFtQpLOfcMFT4VAktxCmZfPG+flC9Jip2StXaLRrekX1r3FIQmNvByJOM775sj
	fzcs4jUi4nAumcId51fXSQxmhERUm1Y5fz1SJ5qVeHFfm6JdTw/V5lDCyL5WjB098NwN8gDgQM3
	WXgK67v66xZh6ESdwpx08jtHY7Ktf2dOvKZb9EEk905+1/p3Ynf5HsjropsWvI/CZdhPZVaWRVf
	5b73WWVfeNKEIkYM50Pcx5SSZZeNjHtJ6ncVmo/UfrsuVSyXSqv7tsLJZ/1+W+YX2JjqQGWGxDt
	UKTpAsbvIl67/h4xT1v13xUeXHwG2BHMk2JEwk9MLU/Aypks30m1y0LIFimpgNVS9HaYnSivUdL
	Zk5Akj9BTORhsm3UmGlgoARSRNWfm4bcV5x9TBNYyAm6RjDJZlvl297jk6U4ToFTWqsj3cq/QvW
	WZiBGmd79wKieJzGDhuHcCHbVDYlGU+KgYbpRM2/xKEcThAa17mrabXZLN0bQ3WI7QCDnv+cDGO
	jGvR1oi6XbNMorS4LytyndZQDHulkfqFC7m0tdCms4HLq/BO7m1rg==
X-Received: by 2002:a17:907:3d88:b0:bab:d909:b89d with SMTP id a640c23a62f3a-bcc13c95c2amr879902866b.26.1778602211162;
        Tue, 12 May 2026 09:10:11 -0700 (PDT)
Message-ID: <35936020-53e2-463f-846f-f222d75e768c@suse.com>
Date: Tue, 12 May 2026 18:10:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Tolerate nested XEN_LAZY_MMU entering/leaving
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org, kevin.brodsky@arm.com,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org
References: <20260508143933.493013-1-jgross@suse.com>
 <agNPrRfBnRdMCGrE@mail-itl>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <agNPrRfBnRdMCGrE@mail-itl>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------0Tod8Lg01GRoSUt0eYLZ2069"
X-purgate-ID: tlsNG-ebf023/1778602211-2B5683FF-E788D96F/0/0
X-purgate-type: clean
X-purgate-size: 8073

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------0Tod8Lg01GRoSUt0eYLZ2069
Content-Type: multipart/mixed; boundary="------------Wy767085Ws1QL0FOH35jU760";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org, kevin.brodsky@arm.com,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org
Message-ID: <35936020-53e2-463f-846f-f222d75e768c@suse.com>
Subject: Re: [PATCH] x86/xen: Tolerate nested XEN_LAZY_MMU entering/leaving
References: <20260508143933.493013-1-jgross@suse.com>
 <agNPrRfBnRdMCGrE@mail-itl>
In-Reply-To: <agNPrRfBnRdMCGrE@mail-itl>

--------------Wy767085Ws1QL0FOH35jU760
Content-Type: multipart/mixed; boundary="------------JjmlKxfKwtEwFxHfBuAt65Jq"

--------------JjmlKxfKwtEwFxHfBuAt65Jq
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTIuMDUuMjYgMTg6MDUsIE1hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraSB3cm90ZToN
Cj4gT24gRnJpLCBNYXkgMDgsIDIwMjYgYXQgMDQ6Mzk6MzNQTSArMDIwMCwgSnVlcmdlbiBH
cm9zcyB3cm90ZToNCj4+IFdpdGggdGhlIHN1cHBvcnQgb2YgbmVzdGVkIGxhenkgbW11IHNl
Y3Rpb25zIGl0IGNhbiBoYXBwZW4gdGhhdA0KPj4gYXJjaF9lbnRlcl9sYXp5X21tdV9tb2Rl
KCkgaXMgYmVpbmcgY2FsbGVkIHR3aWNlIHdpdGhvdXQgYSBjYWxsIG9mDQo+PiBhcmNoX2xl
YXZlX2xhenlfbW11X21vZGUoKSBpbiBiZXR3ZWVuLCBhcyB0aGUgbGF6eV9tbXVfKigpIGhl
bHBlcnMNCj4+IGFyZSBub3QgZGlzYWJsaW5nIHByZWVtcHRpb24gd2hlbiBjaGVja2luZyBm
b3IgbmVzdGVkIGxhenkgbW11DQo+PiBzZWN0aW9ucy4NCj4+DQo+PiBUaGlzIGlzIGEgcHJv
YmxlbSB3aGVuIHJ1bm5pbmcgYXMgYSBYZW4gUFYgZ3Vlc3QsIGFzDQo+PiB4ZW5fZW50ZXJf
bGF6eV9tbXUoKSBhbmQgeGVuX2xlYXZlX2xhenlfbW11KCkgZG9uJ3QgdG9sZXJhdGUgdGhp
cw0KPj4gY2FzZS4NCj4+DQo+PiBGaXggdGhhdCBpbiB4ZW5fZW50ZXJfbGF6eV9tbXUoKSBh
bmQgeGVuX2xlYXZlX2xhenlfbW11KCkgaW4gb3JkZXINCj4+IG5vdCB0byBodXJ0IGFsbCBv
dGhlciBsYXp5IG1tdSBtb2RlIHVzZXJzLg0KPj4NCj4+IEZpeGVzOiAyOTFiM2FiZWQ2NTcg
KCJ4ODYveGVuOiB1c2UgbGF6eV9tbXVfc3RhdGUgd2hlbiBjb250ZXh0LXN3aXRjaGluZyIp
DQo+PiBTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQo+
IA0KPiBJIGhhdmUgcmFuIHNldmVyYWwgdGVzdCBpdGVyYXRpb25zIHdpdGggdGhpcyBwYXRj
aCAob24gdG9wIG9mIDcuMC40KSBhbmQNCj4gaXQgc2VlbXMgdG8gZml4IHRoZSBpc3N1ZS4g
U28sDQo+IA0KPiBUZXN0ZWQtYnk6IE1hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraSA8bWFy
bWFyZWtAaW52aXNpYmxldGhpbmdzbGFiLmNvbT4NCg0KVGhhbmtzIGZvciB0ZXN0aW5nLg0K
DQo+IA0KPiBJIGRpZCBydW4gc29tZSB0ZXN0cyBhbHNvIHdpdGggMjkxYjNhYmVkNjU3IHJl
dmVydGVkIChpbnN0ZWFkIG9mIHRoaXMNCj4gcGF0Y2gpLCBhbmQgdGhhdCBzZWVtcyB0byB3
b3JrIHRvbywgYnV0IEkgZGlkbid0IHJ1biBlbm91Z2ggb2YNCj4gaXRlcmF0aW9ucyB0byBi
ZSAxMDAlIHN1cmUuIFdvdWxkIGl0IGJlIGhlbHBmdWwgdG8gdGhhdCB0aGF0IGZ1cnRoZXIN
Cj4gdG9vPw0KDQpJIGRvIHByZWZlciBteSB2YXJpYW50LCBhcyBpdCBpcyBvbiBteSBwcmVm
ZXJyZWQgcGF0aCB0byBnZXQgcmlkIG9mIHRoZQ0KWGVuLXByaXZhdGUgbGF6eSBtb2RlIHRy
YWNraW5nLg0KDQpTbyBpbiBteSBwZXJzb25hbCBvcGluaW9uIHlvdSBkb24ndCBuZWVkIHRv
IGNvbnRpbnVlIHRoaXMgdGVzdC4NCg0KDQpKdWVyZ2VuDQo=
--------------JjmlKxfKwtEwFxHfBuAt65Jq
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------JjmlKxfKwtEwFxHfBuAt65Jq--

--------------Wy767085Ws1QL0FOH35jU760--

--------------0Tod8Lg01GRoSUt0eYLZ2069
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmoDUOIFAwAAAAAACgkQsN6d1ii/Ey+R
igf/bLkJbK/E0deKsFcXjFAm3VlBqZmmPWllGpqk1qIJmfsCfE7YkxhY9aJHeDsElcdj/xn7sHWj
b/pHVEUO/+FXaycgDzmxnAehWB7ugaFNyrR7CLprUdNQjH+j8ZODTS/JzfwrkvPbvVbt8YRbu1U2
Grck0XSF6newKzl7yoPYnIQL+CQYMUJqzFOL3neYZbPe1GUbUGkjXUFtNH+AovVR/q7LMNe8vute
ArXHCoMJ1f3Qc18JgTfLY6UPjRcRg9EzXkfVn8SeT4OXuU6gy1nRj8Znuqpk7+4tEo+0pev7EpCA
9wSS1OQVqOEGGltswvcvknsLZAqoaVKYo5MlUbX2Mg==
=dbfb
-----END PGP SIGNATURE-----

--------------0Tod8Lg01GRoSUt0eYLZ2069--


From xen-devel-bounces@lists.xenproject.org Tue May 12 16:18:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 16:18:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307243.1578930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpoC-0005PY-Nw; Tue, 12 May 2026 16:18:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307243.1578930; Tue, 12 May 2026 16:18:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMpoC-0005PR-Kp; Tue, 12 May 2026 16:18:12 +0000
Received: by outflank-mailman (input) for mailman id 1307243;
 Tue, 12 May 2026 16:18:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wMpoB-0005PL-GU
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 16:18:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMpoA-00F7TR-IY
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 18:18:10 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0352c1-bab6-0a2a0a5309dd-0a2a4508ac3e-2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 18:18:10 +0200
Received: from [40.107.209.34]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0352c0-63b5-0a2a45080019-286bd122d6be-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 18:18:10 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH4PR03MB7577.namprd03.prod.outlook.com (2603:10b6:610:23e::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Tue, 12 May
 2026 16:18:06 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9891.021; Tue, 12 May 2026
 16:18:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qGPjab/Rz2zVYq+7Z91HakEqEVgphH+UvgKgIa7FZbGz8ZQ4XkhmTU8mSLhcwiH/N6QF9gFR0laeh/mYJe/vZgNMLijnz0w3Jh7AjafYTlmKXUiccwPZqmlXA34/vaFihJsi/1LWL4KCSwWL8zRJq30CdpwkuLLNpBckxw1elpvzrNX4/gN96aVdq3mo3gD6uTMk0SIsxQK8g2tkocc509j70Scl/63o6TtEaL5YKhsMhPF7984WQzzR2bMlxFeytzhgxDYGsDLcAIlrqxf1BEPNKubK2fCGIVMiPKINS7iKf6Lnvv+SwMtKyBiZPtdSNhzFDsI756PvMls5Ca7hqA==
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=ih+fpdpzU1+Jw4x3igq9L9Z0UrwTgTSxfu5oNUK11xQ=;
 b=EEXzVrxPS2wkHFBrD0Rf/OLDb57mDKoLxtDt4rad/k0mIFOSIpO/XsLgTQ+XN8MOO2QiCTptQwPTHNqktGidq9kFr4GEgXa4fLeJjWAwKLOnZShGrdhqk/cHKKRhWEdZbXupQ68wE3eY69e7v80mUdUGYyV0tyx/fdwm+w1sRREmmspA/rINNA2ocAn59SpEyF1QcHeFQI7KDw3Zca4JepBSDXNKM49QY8VuCAVHy+Ia5+XxjIl61WRpN46+xUEzs8KeG3GwyGYdItHyNp/f/cYYerHGG0Y31CqMYffJ6WCLIF0bDEM+KGi1fRkdZAObNBgqrzEWx1PBOFtaOVlNKw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ih+fpdpzU1+Jw4x3igq9L9Z0UrwTgTSxfu5oNUK11xQ=;
 b=OHwTbHAwrF3R4L9NzmB6Lespv+aBbo7Oj2zQnPa6bvdmyuS7x9qMmuSl7jglnL4qsYWLLfUSsY3s+SjDGUBSSnhBP2wutu2rnyAThnIPd0w7DiQQYTOmBLfq2Sth0XpIdWZJ/CrfWa1W8K+K5CFE0DCRL2XbV91sGK+KbJ5RpyY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f5a935dd-2b8b-4bd1-a43f-bff0de11ee53@citrix.com>
Date: Tue, 12 May 2026 17:18:03 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH] automation/eclair: Restrict where eclair jobs are
 auto-started
To: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <1778602049.8631fc262581453bbf619ec5b2062170.19e1cf17f96000f373@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1778602049.8631fc262581453bbf619ec5b2062170.19e1cf17f96000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0006.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ad::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH4PR03MB7577:EE_
X-MS-Office365-Filtering-Correlation-Id: 9c435e95-4f35-4761-19a7-08deb0420d18
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|18002099003|11063799003|56012099003;
X-Microsoft-Antispam-Message-Info:
	JhqxArNttBXiDSphXis+DWk7cFyNOm5beBVT2OJ6Ksx8YwOLNOAhfQFO22+zHIP6H8FOUxHNzTlWiM2klGreonrlAWyAEmg/6aJvLaBNsUSXBanVGi1ifsSKk//DDm1ffms+yGjrQU1P7nCRx/Lnu5/XSZ/ngBp0ajhFvk+Mm2jC0kQ2vp3ERQy5XdV30ov6R6o3vFDtUU8PY3Ds4hV69r9h/mTBm31Dy+I4HKWmqcB+SnMFKTcRKSA4qxslHoNHum4QLjqP4/ct6jCH/XMwx9G1BcQ/A8UEm2QRkkFbw9Gm7CPIeVZapIozQ2nfiHpwcG5sSy23mzSBroPwpfRbqzIHb6jby29FBhMIwO55wq3kdWLJ94i0BB8Tg5cINSnjTnFSNmcBA6m2XU/XOFTxn+ez6UIK3Fql/FTGkYMV0xcQtXyJzjHLZVdXiJI0YmLY59pVGRkusJqc+nUKS0RGDrMV/xb498/MiqLPAsOgDuOxYuPs/tyGZc3YGAybGM3tVd3UJ0fMtIHhodPSbz82tM1MB/H+YvHUX8FPxcDvj2XOBT2RfLj7kfKssJC3y1zZUVX5ildB4a4X0WuG7EPEMw3OTtgviHjH84Rny0pMqo6yVy4R7iM0ljFUMdSq9C4gbQhUzviHCl4sxzZN3my7pOEMj5lDUQ7DJBfkYD2lYunQU810+HESG06Qz4QbZaAm
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(18002099003)(11063799003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OXFLTDJQMGJoZUU5UUpUQXhEbUtiTmRVZGR1VnJMdHFsOHM3NnRLTmQzcGNs?=
 =?utf-8?B?MTZuSThIdW43TVFkemhVelI5ZC9oeUVCZFY1c0RjeE9JNHZ4a1BlUFA0Szhp?=
 =?utf-8?B?N2s2R0U2V3BHRGlId1lvWjZhUXAwem90aE5XN1NIdlJLZE1naE1RRnBMSUcx?=
 =?utf-8?B?RGFvVHBSTVc5cDRWK0R1TVB6Uy91RE96Z0N0bzh0bHNvSm5sNU5Vb0JiZjdv?=
 =?utf-8?B?VktOcUVYTFd4cHFCdHNGYlJVM1J4cVQ2cERmbDR2L0JNMDUvaUVicHdFQTRF?=
 =?utf-8?B?b2VyUk1aK0U3N1FOSlp5RW5yU0tpNkdLdTNhckhmZnZDdUlwclZLTmh3TGhB?=
 =?utf-8?B?QmhvRUhHWkkybnFTQ1VOY05MUVF3WXhMUFR5L09JM04reEk2Ri9sNzIzbmMw?=
 =?utf-8?B?VGhiN3pHci9oSVoweHp0VlpFaXhSd2MvaHVhcjdXVUU0ZytTRy9PdnNPUUQr?=
 =?utf-8?B?dEZjWWtzWUJSMzZiRE5pTEVmTERSbEZHZHRpNis4b3AxelJRVmRyZHF1NWJP?=
 =?utf-8?B?aVB4SEZycUpvMXRBajZtby9XMzZyQWxWRkNUc0tNYUpVdE84ODU3dXBobFAv?=
 =?utf-8?B?UE5OeWZZT1lJOFkwRlRJSnpPSmU4clhkeFZIUFFiWFJHc1VyQ0c4dTNnQ1NF?=
 =?utf-8?B?ci9kUlhoSjJxYTdEVmw5SlQvV20xWmk3eUVGbTc4cklpb092THBHUU1RKy85?=
 =?utf-8?B?M0RPdHVYdlg0aGxBR0RzZDdJcWdPak1Sc2RMTzE5M1JjS1lHMUlXTDRiSm5W?=
 =?utf-8?B?eW45Mm56Y282SE9wS0lFbStGbzRTNXk5VzF6RmZyOTFIZ1k0SzRYY3pkRUtu?=
 =?utf-8?B?dFZheG1tKzBLWUJMRk9XSEVWS0dhRHZ2VEZybEIxOGRzUThrczh1cG94VVQ1?=
 =?utf-8?B?VFByOVdUQnRVL2F3QzdRODNQNWI4OERMOHFZMzN3WElweXpqeHhqVUNhcThn?=
 =?utf-8?B?VHIvWXQrZHAxMzZNa1o3MSt2K2ZqM0NXZjd2WE5aclVicnRBeDFDaUF0S2Vh?=
 =?utf-8?B?ME9DandYSUhkbkpaMklTZTZxZ3FSdTZxQmluVmphdGo1NUhwTktUTGNjU0V0?=
 =?utf-8?B?cThQSnRZNTBLZ25YU3JJTzVoYVdsWmNxQ3pPS29CS1NvMktmTmtNdWROMnhI?=
 =?utf-8?B?VEo1VVJQV0t6bVlKM1poc3BCR2w0Sy9MdG41M0d0TGtYbG1KQXlrU3BHcHQz?=
 =?utf-8?B?OG5wNlVzLzVpVVhBbk80SEd2bW9xeElGRTRqRUg0NEZMWk5SZGxCQjV4VTRH?=
 =?utf-8?B?N0k0WUFGejVadHZjOWRTSUpBY1NmMjI4b0tKSWg5MWVuODR4MlNhUVA0azhM?=
 =?utf-8?B?VlR0YStSU0N5VDFCaFdBQ2prMENSVVB4Y25OeW1Vb2t6NkcvZFN5VWxDUkdh?=
 =?utf-8?B?Ry9oSFh6dXVLK0ovd1lmRXowaE9weTA4VzdGQS8yejE0K3d2aXp3RFJ5S24y?=
 =?utf-8?B?V3ZyOHpySkd1ODFQU2dwSU5lWlM2bmwzdlJNdjBkNEg3dGZPc0ZhaE5RT1pa?=
 =?utf-8?B?ZzYyVTVaaFRla3NGdllZa2szMFNzYmNUNVZZK1IxL1FEOWRHM0FUYkk0UE1v?=
 =?utf-8?B?cmU4L0ZBKzU4dTgyTEVlSzI2OW16b3RxdHIvU2I2TVdkRlNIMlQ2WWRnakgv?=
 =?utf-8?B?MTJnRGhIem1LSjlFTzhPVUtFQjZESVp6RTFoaTlVT3VmcU5YWEhoVldLWU9t?=
 =?utf-8?B?UEdDTENnTWxxUk4wYzROb3JuNFY0RjhyYVNXTGlYRFptSmRUTDRhdUhsNmtZ?=
 =?utf-8?B?VE1PMWg1U2xuUXF5ZXJ0OVljaUlZY1JpSitTS1lKczM2V080bFJIRUc5YUlm?=
 =?utf-8?B?dWhXOHNyc0w2OFZtOTlRSDAxSjlMK3pyK0E4QUxYQTFScGJaajVEVit6b3pR?=
 =?utf-8?B?dWtRYXJ0bHh2M2I5eXM3eUdtSTZldUZRMXZIdzFBS2ZQSVpIRDdIREQ5OHMw?=
 =?utf-8?B?cFZha0xrZUtWekR6V2dmWDVwanp3QTVPTGVDNkF1bXp5dmJjT2xzczZQdkJh?=
 =?utf-8?B?bW14MGNRT1BSbDFuSUdvRGhRNFo1T2ZMKzRWRGl3MTJtc3RzbTcza2QxNEZp?=
 =?utf-8?B?RWkzMENoRGIxOCtLMDNLb2cxSWJEQXpCTi9DTkFORE9uL3ZxU1lTNk1kVmJh?=
 =?utf-8?B?ZjJqbVdHcUtZWFkwaHBFVTh6dmtvMGtQdjFob3dYejMxa1pwQUVtc3Y5ejg4?=
 =?utf-8?B?YVNDRGo0UUhhcVZrMlRvL2RQSlBBNTFtSWx0RHVjTXVsRDNhMWJxdEZJM3VT?=
 =?utf-8?B?RUFvcUtMa1lqRzFZWDFmL0RJZ05iOVY0Ui9Rb1k2ZmlHd3Q2bXBlbE9ITzhS?=
 =?utf-8?B?UFY5SXdOc0tTeDFKdlBvY2JGTEVmS0xHL01SVFFKb0NWUWZKM1ZnQkMvTFRi?=
 =?utf-8?Q?nThBzfXVFvNJm7rE=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c435e95-4f35-4761-19a7-08deb0420d18
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2026 16:18:06.7892
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: q5gJXo49AzBVb8EkqYfa/nITipPIq64XlKh3jbQT6DC0spu1WwbmnT4SIGX//9N/LGPmJ3RnUMxjv0mXJdq9KlP7lqbBef5elSBN8NmLrkg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7577
X-purgate-ID: tlsNG-c1860d/1778602690-B5D6BDB1-60E762D6/0/0
X-purgate-type: clean
X-purgate-size: 326

On 12/05/2026 5:07 pm, Anthony PERARD wrote:
> This will prevent eclair jobs from been started automatically
> everywhere but in the main push repo, but still have the option to
> start a jobs manually.
>
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue May 12 16:48:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 16:48:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307265.1578970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqH9-0002TD-6Z; Tue, 12 May 2026 16:48:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307265.1578970; Tue, 12 May 2026 16:48:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqH9-0002T6-3c; Tue, 12 May 2026 16:48:07 +0000
Received: by outflank-mailman (input) for mailman id 1307265;
 Tue, 12 May 2026 16:48:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wMqH7-0002R5-FI
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 16:48:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMqH6-007Oof-SN
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 18:48:04 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0359a5-2eae-0a2a0a5409dd-0a2a45029870-30
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 18:48:04 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0359c4-af86-0a2a45020019-a237832f8eba-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 18:48:04 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 76D9C4EE3BFE;
 Tue, 12 May 2026 18:48:04 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1778604484;
	b=z0i0lcXOcrofiGh8ovrLdXau6Fm6TLN/zcxPVlLIjX7MJ6Rjn+wgesFUkYpAA5TCTrpa
	 OVwl81Kajl/n4RQuZtiPuSdauFWdqYO6RIeR6ZEgWwj29HtfvkYkiGbQ2YHXhHl65d0Cb
	 FiNFgrfJyakAhSNVo6UXoNb9pY+LEQy7buXlmRKo62EQvwcqO4XK9TzYWCuPpUo8QdICd
	 03RBlGZsj6+b54dsJRbNm4Tp0Ucz/qCN468kjPRAJeN/xJGrwugqVwGBJnv+nbxK4MYp+
	 JhiEUlldGL8ORS0OVDBVKLX1kr9jIro5y5z4fGaufKiGrKym6tGKZ7eD6xYZUOzpugdJw
	 Lzlrt+jQUWyI2edN+U6hC8MieFEaslZZx8oF206xJ42LsRqs1ZbifU8giUOSpRY6zt3SO
	 uyHh72RargypYeb3kAsUXrrPvUWeo/co4BLmD/V6AyeHnbXuEUjz4+bVsulvYsS0lOXRL
	 m2/osJ1TaQe7gYtvUA963UQM3XrAvXvHllLYRE7uHmtz+grk2QvSbkBAFaalocal9dEFb
	 HpwETcUl934VaB7KeUIdHSJJX8tiI53eJJq5UzIQJnzW2CKiiaTKaXZyTWZiYScY960ms
	 P/0ryoWNr61X32638kCrMDWVegLRVHTdWkJEyDCgQotcDgSA37ZwWABjz2Se2Vs=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1778604484;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=CqnvSaUlStiy3Ko+J06Piky154NZPJUBk6JT45MLJJA=;
	b=XNacqxhDlJVdOEubIYh2T5IXb5+qABFU1FN/UKyfbszOAsH9lJNF0k9DofiXBnV7APfg
	 bvIEOJjh/sojEY2mpSc/KyBfpw1keJa5yLd+td5sUZu0Xf0LBcHIKCb0HL0BCg5/+wTBO
	 JcFL3uKQXyWzx7pnp9EByS7h17103TmFgaDAO4peAsEeO7InEjNxIx1LjfCiXd8IjFHAz
	 sgH1qMgS+VJml8uUCEkIOetV6mlG7ytA1E9zy1IY5Ytb2yq3DE/7+Zg6WRa46rEJsvAae
	 9ZImZBOyqAjc83ABuFI2Vl/iU1sWVqbe6C56lSRVoJiPA9IkLco1iSDLaK+JHAW2d8kpd
	 ZTpZNV5hO8XOtVJV8cGkOKOhF6now+06zSWqxQWEM4VdhOg5Xlc9GtNDhhMTv9w07BAc/
	 qToayB65diW7OmkoC+0Hc5eLKqjt9Qm19TPBoa3/SrUl4WntLPe5iEL/fN8d9n26NX9p7
	 +VzWZw6w7zm+/+1WZc0S3xQ3O6h8bfWSVFsb+4fLigLP90jJgCavXdwyVrYnpjsB0vLQf
	 09mG9xu9hazpU0PukPU49VMkQiR6YWoBQN9W5KWNZ4x479Mt5hchmigAGQAbxLw6BXhfP
	 fKZJsQKy1jz5gFXcTBzx8Asc9rl5uawcY8ecjvWphO6/hjatxMbJiuairAtblOA=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Tue, 12 May 2026 18:48:04 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH] automation/eclair: Restrict where eclair jobs are
 auto-started
In-Reply-To: <1778602049.8631fc262581453bbf619ec5b2062170.19e1cf17f96000f373@vates.tech>
References: <1778602049.8631fc262581453bbf619ec5b2062170.19e1cf17f96000f373@vates.tech>
Message-ID: <dde437002b6299523ce01370b96cf247@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1778604484-80B78161-086A03E3/0/0
X-purgate-type: clean
X-purgate-size: 1599

On 2026-05-12 18:07, Anthony PERARD wrote:
> This will prevent eclair jobs from been started automatically
> everywhere but in the main push repo, but still have the option to
> start a jobs manually.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> 
> Notes:
>     eclair jobs are still manual under people:
>         
> https://gitlab.com/xen-project/people/anthonyper/xen/-/pipelines/2519778881
> 
>     and they are still running in hardware repos:
>         
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2519784420
> 
>  automation/gitlab-ci/analyze.yaml | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/automation/gitlab-ci/analyze.yaml 
> b/automation/gitlab-ci/analyze.yaml
> index b3f99f472d9e..d6b6cf3e548b 100644
> --- a/automation/gitlab-ci/analyze.yaml
> +++ b/automation/gitlab-ci/analyze.yaml
> @@ -33,7 +33,7 @@
>        when: never
>      - if: $CI_JOB_NAME !~ $SELECTED_JOBS_ONLY
>        when: never
> -    - if: $WTOKEN && $CI_PROJECT_PATH =~ /^xen-project\/people\/.*$/
> +    - if: $WTOKEN && $CI_PROJECT_PATH !~ /^xen-project\/hardware\//
>        when: manual
>        allow_failure: true
>      - !reference [.eclair-analysis, rules]
> 
> 
> --
> Anthony Perard | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Tue May 12 17:09:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:09:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307277.1579016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqc9-0006UH-2Y; Tue, 12 May 2026 17:09:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307277.1579016; Tue, 12 May 2026 17:09:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqc8-0006U6-Uh; Tue, 12 May 2026 17:09:48 +0000
Received: by outflank-mailman (input) for mailman id 1307277;
 Tue, 12 May 2026 17:09:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMqc7-0006Dp-FW
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:09:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMqc6-007RzZ-Sm
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:09:46 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ec9-2eae-0a2a0a5409dd-0a2a4501afae-14
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:46 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035eda-c1f2-0a2a45010019-d155802edcc3-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:46 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-48909558b3aso59331895e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:09:46 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8cccf90sm10838845e9.0.2026.05.12.10.09.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 10:09:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778605786; x=1779210586; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=l8t5jxqUnUpYd4m0eBF1jttpmfOSXj9O/o10a7IBFAI=;
        b=hrwrbB0Zb98YYjYphgzOt8hsQLzcmzoxySgsE4lAMA6OBIrpfSeFwA+rkYQLrrK9Wk
         KgLVO9HjR1cZSIsu0kVLj9Q++rkHuOpj5/qmGMLxo1footvzhzhn+94NxcAcHa87ykxL
         afs+zPwWZ/925dq0oTIlh+BMmDPXibxmH0iTwPI1U+FKiA/DJXPrpHMdywc9l0Bfc6B2
         NW/BQssgSq8gmvJNXitGka+RAQaFFemc2xoQn/qF2VTuc1byCzJn2Vl+PggoAPCl6OXu
         YCGMt6b37SOtTddw8ofM/xwFbBOxJzZUlfB3Z4ZcmJihbqPgjTzIfBqCKZUjtbfPp9d1
         b/Gw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778605786; x=1779210586;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=l8t5jxqUnUpYd4m0eBF1jttpmfOSXj9O/o10a7IBFAI=;
        b=TCz4dqP4GDKlVkA3IWatnUg+qPku1Z7dkGsHvGIXp+o0S6PLAXdgtKKvhZ8IEb/0pe
         6hQlBq5ztxhgEvyYdcNTeUKwA2SHlMmUbaeUZv34Qc1oOPskBwZ1vWYHnCTgTibeRGDQ
         YBnt0GVGRglUfbgITK6tiBZf03k/QTmgrDNhNxAnn9q/BU2knfherAYbu2gecu5hpDhl
         3LxSSzVKPS1+oJnBstYXETOrGtmCQW97c6gdbtXt9uHbYmCV5CBxwIGF4iTI/f3nto47
         SzAQF39/CNIMxYaY/CarjeSwWuf5ZhJx2IzSTTupyWUarsWNVg/+4970dkrYZdpx9mdN
         AXDQ==
X-Gm-Message-State: AOJu0Yy0woTdzCjbXnk+FzfbBuBKQ/ZIPO6d6qDNFgEhHrCghieOFOct
	EA9T1VQTo7s558/JncI1ky4eXbPjOGta9KgRi6OIq3sG4yfRLW/O4i7TyFquSQ==
X-Gm-Gg: Acq92OG8w732IG70gerqNlLBNZoXzbE2MTWv8BXjorW0s9T9Ebu0cpebM00GhYoJDCA
	ltlYBFFe02/KXNy2WMgNwBWUDve/pNGRhojfygaiYMB9YL8usJRCmdAG9B4mEs0gE2pDS8toZXR
	Y365rWk1pBriGhmoFl20UpOK1aJmQsJorFQMai6iHr4whtoacT1DgfYMc07Lo/OjE2r/vOKUSSM
	3ty3BC+FRstMxZknyjQxRm23KxNqev84f3FB6krXrXmSLYgRyjdZAzn2rX7Hy9+wiPPug8nONKG
	QG9VFXaQiElL/pEs+b2S0RL9TYSsiS/Ec5Vj3iCgD9B0b/s62GnZBiRmbzMApgcg5nIe1VbQWBP
	38JG6QswLjbMco9t2hSVGf5HypmnvUEJDiCSpf/g7/qjECX9Vt8+RDx1AN09KXbGstYWBENHKvN
	ipVW67iWJbNJvIqbu/tpZWvptnZg==
X-Received: by 2002:a05:600c:46d2:b0:488:b187:3c with SMTP id 5b1f17b1804b1-48e51f32c65mr459278545e9.14.1778605785937;
        Tue, 12 May 2026 10:09:45 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v9 04/13] xen/arm: gic-v3: Implement GICv3 suspend/resume functions
Date: Tue, 12 May 2026 20:07:11 +0300
Message-ID: <8973fc6bf69d8b20cebb61289c1b8596b1a09900.1778605274.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1778605274.git.mykola_kvach@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778605786-B675CFF4-4A0A0646/0/0
X-purgate-type: clean
X-purgate-size: 15807

From: Mykola Kvach <mykola_kvach@epam.com>

System suspend may lead to a state where GIC would be powered down.
Therefore, Xen should save/restore the context of GIC on suspend/resume.

Note that the context consists of states of registers which are
controlled by the hypervisor. Other GIC registers which are accessible
by guests are saved/restored on context switch.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V9:
- fix the suspend-context comment typo and split dist_ctx declarations;
- restore ICC_IGRPEN1_EL1 on the suspend error path;
- re-initialize GICD_IGROUPRnE during resume;
- restore GICD_IROUTER only after re-enabling ARE_NS during resume.

Changes in V8:
- use right rdist base for prop/pend baser and ctrl

Changes in V7:
- restore LPI regs on resume
- add timeout during redist disabling
- squash with suspend/resume handling for GICv3 eSPI registers
- drop ITS guard paths so suspend/resume always runs; switch missing ctx
  allocation to panic
- trim TODO comments; narrow redistributor storage to PPI icfgr
- keep distributor context allocation even without ITS; adjust resume
  to use GENMASK(31, 0) for clearing enables
- drop storage of the SGI configuration register, as SGIs are always
  edge-triggered
---
 xen/arch/arm/gic-v3-lpi.c              |   3 +
 xen/arch/arm/gic-v3.c                  | 362 ++++++++++++++++++++++++-
 xen/arch/arm/include/asm/gic_v3_defs.h |   1 +
 3 files changed, 363 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/gic-v3-lpi.c b/xen/arch/arm/gic-v3-lpi.c
index 36bb45738e..b0289ee4dc 100644
--- a/xen/arch/arm/gic-v3-lpi.c
+++ b/xen/arch/arm/gic-v3-lpi.c
@@ -467,6 +467,9 @@ static int cpu_callback(struct notifier_block *nfb, unsigned long action,
     switch ( action )
     {
     case CPU_UP_PREPARE:
+        if ( system_state == SYS_STATE_resume )
+            break;
+
         rc = gicv3_lpi_allocate_pendtable(cpu);
         if ( rc )
             printk(XENLOG_ERR "Unable to allocate the pendtable for CPU%lu\n",
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index cc0569a157..6fc4354e2e 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -1072,12 +1072,12 @@ out:
     return res;
 }
 
-static void gicv3_hyp_disable(void)
+static void gicv3_hyp_enable(bool enable)
 {
     register_t hcr;
 
     hcr = READ_SYSREG(ICH_HCR_EL2);
-    hcr &= ~GICH_HCR_EN;
+    hcr = enable ? (hcr | GICH_HCR_EN) : (hcr & ~GICH_HCR_EN);
     WRITE_SYSREG(hcr, ICH_HCR_EL2);
     isb();
 }
@@ -1184,7 +1184,7 @@ static void gicv3_disable_interface(void)
     spin_lock(&gicv3.lock);
 
     gicv3_cpu_disable();
-    gicv3_hyp_disable();
+    gicv3_hyp_enable(false);
 
     spin_unlock(&gicv3.lock);
 }
@@ -1920,6 +1920,354 @@ static bool gic_dist_supports_lpis(void)
     return (readl_relaxed(GICD + GICD_TYPER) & GICD_TYPE_LPIS);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+/* This struct represents a block of 32 IRQs */
+struct dist_irq_block {
+    uint32_t icfgr[2];
+    uint32_t ipriorityr[8];
+    uint64_t irouter[32];
+    uint32_t isactiver;
+    uint32_t isenabler;
+};
+
+struct redist_ctx {
+    uint32_t ctlr;
+    uint32_t icfgr; /* only PPIs stored */
+    uint32_t igroupr;
+    uint32_t ipriorityr[8];
+    uint32_t isactiver;
+    uint32_t isenabler;
+
+    uint64_t pendbase;
+    uint64_t propbase;
+};
+
+/* GICv3 registers to be saved/restored on system suspend/resume */
+struct gicv3_ctx {
+    struct dist_ctx {
+        uint32_t ctlr;
+        struct dist_irq_block *irqs;
+        struct dist_irq_block *espi_irqs;
+    } dist;
+
+    /* have only one rdist structure for last running CPU during suspend */
+    struct redist_ctx rdist;
+
+    struct cpu_ctx {
+        uint32_t ctlr;
+        uint32_t pmr;
+        uint32_t bpr;
+        uint32_t sre_el2;
+        uint32_t grpen;
+    } cpu;
+};
+
+static struct gicv3_ctx gicv3_ctx;
+
+static void __init gicv3_alloc_context(void)
+{
+    uint32_t blocks = DIV_ROUND_UP(gicv3_info.nr_lines, 32);
+
+    /* The spec allows for systems without any SPIs */
+    if ( blocks > 1 )
+    {
+        gicv3_ctx.dist.irqs = xzalloc_array(struct dist_irq_block, blocks - 1);
+        if ( !gicv3_ctx.dist.irqs )
+            panic("Failed to allocate memory for GICv3 suspend context\n");
+    }
+
+#ifdef CONFIG_GICV3_ESPI
+    if ( !gic_number_espis() )
+        return;
+
+    blocks = gic_number_espis() / 32;
+    gicv3_ctx.dist.espi_irqs = xzalloc_array(struct dist_irq_block, blocks);
+    if ( !gicv3_ctx.dist.espi_irqs )
+        panic("Failed to allocate memory for GICv3 eSPI suspend context\n");
+#endif
+}
+
+static int gicv3_disable_redist(void)
+{
+    void __iomem *waker = GICD_RDIST_BASE + GICR_WAKER;
+    s_time_t deadline;
+
+    /*
+     * Avoid infinite loop if Non-secure does not have access to GICR_WAKER.
+     * See Arm IHI 0069H.b, 12.11.42 GICR_WAKER:
+     *     When GICD_CTLR.DS == 0 and an access is Non-secure accesses to this
+     *     register are RAZ/WI.
+     */
+    if ( !(readl_relaxed(GICD + GICD_CTLR) & GICD_CTLR_DS) )
+        return 0;
+
+    deadline = NOW() + MILLISECS(1000);
+
+    writel_relaxed(readl_relaxed(waker) | GICR_WAKER_ProcessorSleep, waker);
+    while ( (readl_relaxed(waker) & GICR_WAKER_ChildrenAsleep) == 0 )
+    {
+        if ( NOW() > deadline )
+        {
+            printk("GICv3: Timeout waiting for redistributor to sleep\n");
+            return -ETIMEDOUT;
+        }
+        cpu_relax();
+        udelay(10);
+    }
+
+    return 0;
+}
+
+#define GET_SPI_REG_OFFSET(name, is_espi) \
+    ((is_espi) ? GICD_##name##nE : GICD_##name)
+
+static void gicv3_store_spi_irq_block(struct dist_irq_block *irqs,
+                                      unsigned int i, bool is_espi)
+{
+    void __iomem *base;
+    unsigned int irq;
+
+    base = GICD + GET_SPI_REG_OFFSET(ICFGR, is_espi) + i * sizeof(irqs->icfgr);
+    irqs->icfgr[0] = readl_relaxed(base);
+    irqs->icfgr[1] = readl_relaxed(base + 4);
+
+    base = GICD + GET_SPI_REG_OFFSET(IPRIORITYR, is_espi);
+    base += i * sizeof(irqs->ipriorityr);
+    for ( irq = 0; irq < ARRAY_SIZE(irqs->ipriorityr); irq++ )
+        irqs->ipriorityr[irq] = readl_relaxed(base + 4 * irq);
+
+    base = GICD + GET_SPI_REG_OFFSET(IROUTER, is_espi);
+    base += i * sizeof(irqs->irouter);
+    for ( irq = 0; irq < ARRAY_SIZE(irqs->irouter); irq++ )
+        irqs->irouter[irq] = readq_relaxed_non_atomic(base + 8 * irq);
+
+    base = GICD + GET_SPI_REG_OFFSET(ISACTIVER, is_espi);
+    base += i * sizeof(irqs->isactiver);
+    irqs->isactiver = readl_relaxed(base);
+
+    base = GICD + GET_SPI_REG_OFFSET(ISENABLER, is_espi);
+    base += i * sizeof(irqs->isenabler);
+    irqs->isenabler = readl_relaxed(base);
+}
+
+static void gicv3_restore_spi_irq_config(struct dist_irq_block *irqs,
+                                         unsigned int i, bool is_espi)
+{
+    void __iomem *base;
+    unsigned int irq;
+
+    base = GICD + GET_SPI_REG_OFFSET(ICFGR, is_espi) + i * sizeof(irqs->icfgr);
+    writel_relaxed(irqs->icfgr[0], base);
+    writel_relaxed(irqs->icfgr[1], base + 4);
+
+    base = GICD + GET_SPI_REG_OFFSET(IPRIORITYR, is_espi);
+    base += i * sizeof(irqs->ipriorityr);
+    for ( irq = 0; irq < ARRAY_SIZE(irqs->ipriorityr); irq++ )
+        writel_relaxed(irqs->ipriorityr[irq], base + 4 * irq);
+}
+
+static void gicv3_restore_spi_irq_routing(struct dist_irq_block *irqs,
+                                          unsigned int i, bool is_espi)
+{
+    void __iomem *base;
+    unsigned int irq;
+
+    base = GICD + GET_SPI_REG_OFFSET(IROUTER, is_espi);
+    base += i * sizeof(irqs->irouter);
+    for ( irq = 0; irq < ARRAY_SIZE(irqs->irouter); irq++ )
+        writeq_relaxed_non_atomic(irqs->irouter[irq], base + 8 * irq);
+}
+
+static void gicv3_restore_spi_irq_state(struct dist_irq_block *irqs,
+                                        unsigned int i, bool is_espi)
+{
+    void __iomem *base;
+
+    base = GICD + GET_SPI_REG_OFFSET(ICENABLER, is_espi) + i * 4;
+    writel_relaxed(GENMASK(31, 0), base);
+
+    base = GICD + GET_SPI_REG_OFFSET(ISENABLER, is_espi);
+    base += i * sizeof(irqs->isenabler);
+    writel_relaxed(irqs->isenabler, base);
+
+    base = GICD + GET_SPI_REG_OFFSET(ICACTIVER, is_espi) + i * 4;
+    writel_relaxed(GENMASK(31, 0), base);
+
+    base = GICD + GET_SPI_REG_OFFSET(ISACTIVER, is_espi);
+    base += i * sizeof(irqs->isactiver);
+    writel_relaxed(irqs->isactiver, base);
+}
+
+static int gicv3_suspend(void)
+{
+    unsigned int i;
+    void __iomem *base;
+    int ret;
+    struct redist_ctx *rdist = &gicv3_ctx.rdist;
+
+    /* Save GICC configuration */
+    gicv3_ctx.cpu.ctlr     = READ_SYSREG(ICC_CTLR_EL1);
+    gicv3_ctx.cpu.pmr      = READ_SYSREG(ICC_PMR_EL1);
+    gicv3_ctx.cpu.bpr      = READ_SYSREG(ICC_BPR1_EL1);
+    gicv3_ctx.cpu.sre_el2  = READ_SYSREG(ICC_SRE_EL2);
+    gicv3_ctx.cpu.grpen    = READ_SYSREG(ICC_IGRPEN1_EL1);
+
+    gicv3_disable_interface();
+
+    ret = gicv3_disable_redist();
+    if ( ret )
+        goto out_enable_iface;
+
+    /* Save GICR configuration */
+    gicv3_redist_wait_for_rwp();
+
+    base = GICD_RDIST_BASE;
+
+    rdist->ctlr = readl_relaxed(base + GICR_CTLR);
+
+    rdist->propbase = readq_relaxed(base + GICR_PROPBASER);
+    rdist->pendbase = readq_relaxed(base + GICR_PENDBASER);
+
+    base = GICD_RDIST_SGI_BASE;
+
+    /* Save priority on PPI and SGI interrupts */
+    for ( i = 0; i < NR_GIC_LOCAL_IRQS / 4; i++ )
+        rdist->ipriorityr[i] = readl_relaxed(base + GICR_IPRIORITYR0 + 4 * i);
+
+    rdist->isactiver = readl_relaxed(base + GICR_ISACTIVER0);
+    rdist->isenabler = readl_relaxed(base + GICR_ISENABLER0);
+    rdist->igroupr   = readl_relaxed(base + GICR_IGROUPR0);
+    rdist->icfgr     = readl_relaxed(base + GICR_ICFGR1);
+
+    /* Save GICD configuration */
+    gicv3_dist_wait_for_rwp();
+    gicv3_ctx.dist.ctlr = readl_relaxed(GICD + GICD_CTLR);
+
+    for ( i = 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ )
+        gicv3_store_spi_irq_block(gicv3_ctx.dist.irqs + i - 1, i, false);
+
+#ifdef CONFIG_GICV3_ESPI
+    for ( i = 0; i < gic_number_espis() / 32; i++ )
+        gicv3_store_spi_irq_block(gicv3_ctx.dist.espi_irqs + i, i, true);
+#endif
+
+    return 0;
+
+ out_enable_iface:
+    gicv3_hyp_enable(true);
+    WRITE_SYSREG(gicv3_ctx.cpu.grpen, ICC_IGRPEN1_EL1);
+    isb();
+
+    return ret;
+}
+
+static void gicv3_resume(void)
+{
+    int ret;
+    unsigned int i;
+    uint32_t dist_ctlr;
+    void __iomem *base;
+    struct redist_ctx *rdist = &gicv3_ctx.rdist;
+
+    writel_relaxed(0, GICD + GICD_CTLR);
+
+    for ( i = NR_GIC_LOCAL_IRQS; i < gicv3_info.nr_lines; i += 32 )
+        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) * 4);
+
+    for ( i = 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ )
+        gicv3_restore_spi_irq_config(gicv3_ctx.dist.irqs + i - 1, i, false);
+
+#ifdef CONFIG_GICV3_ESPI
+    for ( i = 0; i < gic_number_espis() / 32; i++ )
+    {
+        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + i * 4);
+        gicv3_restore_spi_irq_config(gicv3_ctx.dist.espi_irqs + i, i, true);
+    }
+#endif
+
+    dist_ctlr = gicv3_ctx.dist.ctlr & GICD_CTLR_ARE_NS;
+    if ( dist_ctlr )
+    {
+        writel_relaxed(dist_ctlr, GICD + GICD_CTLR);
+        gicv3_dist_wait_for_rwp();
+
+        for ( i = 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ )
+            gicv3_restore_spi_irq_routing(gicv3_ctx.dist.irqs + i - 1, i,
+                                          false);
+
+#ifdef CONFIG_GICV3_ESPI
+        for ( i = 0; i < gic_number_espis() / 32; i++ )
+            gicv3_restore_spi_irq_routing(gicv3_ctx.dist.espi_irqs + i, i,
+                                          true);
+#endif
+    }
+
+    for ( i = 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ )
+        gicv3_restore_spi_irq_state(gicv3_ctx.dist.irqs + i - 1, i, false);
+
+#ifdef CONFIG_GICV3_ESPI
+    for ( i = 0; i < gic_number_espis() / 32; i++ )
+        gicv3_restore_spi_irq_state(gicv3_ctx.dist.espi_irqs + i, i, true);
+#endif
+
+    writel_relaxed(gicv3_ctx.dist.ctlr, GICD + GICD_CTLR);
+    gicv3_dist_wait_for_rwp();
+
+    ret = gicv3_lpi_init_rdist(GICD_RDIST_BASE);
+    /*
+     * If LPIs are already enabled, assume firmware or the still-powered
+     * redistributor has valid PROPBASER/PENDBASER and skip reprogramming.
+     * Return -EBUSY so callers can ignore this case.
+     */
+    if ( ret && ret != -ENODEV && ret != -EBUSY )
+        panic("GICv3: Failed to re-initialize LPIs during resume\n");
+    else if ( ret == -EBUSY ) /* extra checks, just to be sure */
+    {
+        base = GICD_RDIST_BASE;
+        if ( readq_relaxed(base + GICR_PROPBASER) != rdist->propbase ||
+             readq_relaxed(base + GICR_PENDBASER) != rdist->pendbase )
+            panic("GICv3: LPIs already enabled with unexpected PROPBASER/PENDBASER during resume\n");
+    }
+
+    /* Restore GICR (Redistributor) configuration */
+    if ( gicv3_enable_redist() )
+        panic("GICv3: Failed to re-enable redistributor during resume\n");
+
+    base = GICD_RDIST_SGI_BASE;
+
+    writel_relaxed(GENMASK(31, 0), base + GICR_ICENABLER0);
+    gicv3_redist_wait_for_rwp();
+
+    for ( i = 0; i < NR_GIC_LOCAL_IRQS / 4; i++ )
+        writel_relaxed(rdist->ipriorityr[i], base + GICR_IPRIORITYR0 + i * 4);
+
+    writel_relaxed(rdist->isactiver, base + GICR_ISACTIVER0);
+    writel_relaxed(rdist->igroupr,   base + GICR_IGROUPR0);
+    writel_relaxed(rdist->icfgr,     base + GICR_ICFGR1);
+
+    gicv3_redist_wait_for_rwp();
+
+    writel_relaxed(rdist->isenabler, base + GICR_ISENABLER0);
+    writel_relaxed(rdist->ctlr, GICD_RDIST_BASE + GICR_CTLR);
+
+    gicv3_redist_wait_for_rwp();
+
+    WRITE_SYSREG(gicv3_ctx.cpu.sre_el2, ICC_SRE_EL2);
+    isb();
+
+    /* Restore CPU interface (System registers) */
+    WRITE_SYSREG(gicv3_ctx.cpu.pmr,   ICC_PMR_EL1);
+    WRITE_SYSREG(gicv3_ctx.cpu.bpr,   ICC_BPR1_EL1);
+    WRITE_SYSREG(gicv3_ctx.cpu.ctlr,  ICC_CTLR_EL1);
+    WRITE_SYSREG(gicv3_ctx.cpu.grpen, ICC_IGRPEN1_EL1);
+    isb();
+
+    gicv3_hyp_init();
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 /* Set up the GIC */
 static int __init gicv3_init(void)
 {
@@ -1994,6 +2342,10 @@ static int __init gicv3_init(void)
 
     gicv3_hyp_init();
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+    gicv3_alloc_context();
+#endif
+
 out:
     spin_unlock(&gicv3.lock);
 
@@ -2033,6 +2385,10 @@ static const struct gic_hw_operations gicv3_ops = {
 #endif
     .iomem_deny_access   = gicv3_iomem_deny_access,
     .do_LPI              = gicv3_do_LPI,
+#ifdef CONFIG_SYSTEM_SUSPEND
+    .suspend             = gicv3_suspend,
+    .resume              = gicv3_resume,
+#endif
 };
 
 static int __init gicv3_dt_preinit(struct dt_device_node *node, const void *data)
diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/asm/gic_v3_defs.h
index c373b94d19..992c8f9c2f 100644
--- a/xen/arch/arm/include/asm/gic_v3_defs.h
+++ b/xen/arch/arm/include/asm/gic_v3_defs.h
@@ -94,6 +94,7 @@
 #define GICD_TYPE_LPIS               (1U << 17)
 
 #define GICD_CTLR_RWP                (1UL << 31)
+#define GICD_CTLR_DS                 (1U << 6)
 #define GICD_CTLR_ARE_NS             (1U << 4)
 #define GICD_CTLR_ENABLE_G1A         (1U << 1)
 #define GICD_CTLR_ENABLE_G1          (1U << 0)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:09:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:09:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307276.1579007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqc7-0006Fs-Ll; Tue, 12 May 2026 17:09:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307276.1579007; Tue, 12 May 2026 17:09:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqc7-0006Fj-Ih; Tue, 12 May 2026 17:09:47 +0000
Received: by outflank-mailman (input) for mailman id 1307276;
 Tue, 12 May 2026 17:09:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMqc6-0005xD-1w
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:09:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMqc5-00AZDT-F1
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:09:45 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035eca-e002-0a2a0a5209dd-0a2a45078240-26
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:45 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ed9-229c-0a2a45070019-d1558036e1eb-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:45 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-488a8ca4aadso53136715e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:09:45 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8cccf90sm10838845e9.0.2026.05.12.10.09.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 10:09:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778605784; x=1779210584; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XXX7LiIDl3A+pjPnWv0DkG9B7a9KxTjMmrGlAN2uPmo=;
        b=VWCqtQu9XJmjbzceO96JPfwoRYiZGQOusmT5/rBDrzxvI6P8YORsDVhS5MHneEwMbs
         Xata0uBfRfHfsRSRY84BLfZuwb9fL9kr0JMNAepgjUzHr59qk28T0n/9Id/hIObNaY8J
         XQeeJ9ucIsPJDfl11tO+Lv3tNx3gEeWUwXFr7z8QwrWc9rEWEssYExHscQEJg40TRfK7
         0MSlxY4U30NZgtSYyHCiiqsDbG9gkeMAEKgiHfKe4kPq9UaEheBLIXpRLREKZo46NLTJ
         jHRd2D1wGY5yc7mTAC7L4BXLGV44lIPu+SpmHXCGFMenCzbKxFwIDfXTWEApKkXm3JQd
         8iKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778605784; x=1779210584;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=XXX7LiIDl3A+pjPnWv0DkG9B7a9KxTjMmrGlAN2uPmo=;
        b=N9f/rUhvTqgC8V0/YhL6XAUhXEVK3531rbu4f7HRy5EEYPwveTp7I4AeUiMD++5aZ5
         HG0AgOgbRpwwH/hnQbfYcCw9IFChv6A6Qo0donoLehRl4TvNKJRcU6X+LyRXkFSB8JW2
         5zayS+3h6gMX52j+FNGX5ZpZs2MpkZZGYC+X47kYJR9YNvzRNIhOuxJCsaijzRFFhlUy
         uNtijB0pfoybVIFNZc6Vly4EPHPZfzRUR6wAtSseR2tFJ3tCECnYgkAdkKKCKml2+3QU
         7PwYZFYJ/oUt9xBZoIpAnmMCrWjjw8x9pcuordZwglm3LdUttMzblAwj8OHweqdKvl0S
         4zdQ==
X-Gm-Message-State: AOJu0Ywsf9hUm62rrHN3faP+nziBm+jqoP+Cqs6Hcn/xPQY3v02IQjyA
	3b4Hvfi8Ayy9IQKcB1K0WykeYcFU1wLdMrHIfOurVHirjMjrSLmA2/xBQluHCA==
X-Gm-Gg: Acq92OEQcSPRBqQNCeTbx4q8ELVYrkiA/e49p9C8JjA5jsmcd7J6x57iCoSM8uv6Goe
	BGkEYNyDVgGvb13ueBzdB3Wg9L/6oqEhu3xgpA5hhOEJFYl1VICDlexQt/ajkaHFi7MuttIsSlw
	/OzJY2z96ORXeDRSzQT6GQoqUXCvJh36x2kC+DENqVo+d+3M4hCqGToHMB+NjpuMSrDZLmlzomx
	i6eMNQIKq46twG6tPQvmyavP5wzVvrp42I2K0j3DyeVuEp/C7gzRaESFC6zBVZlxD6jWStmecm8
	AuQ8Aieax6UxYsDKhw34zqUTD8MemT5zfHOTbkpf9ZHeMQ+/e/wt6Rc1FwHFUmozqgF5LnG4BK8
	hSBqcm5gCeusJkhw3H6bpx2tYh2JV4rtAjaV50XtiA5o+2q2nBGdmIkPEB+iRihUYp+6EQhadbA
	JxXC9OCozH65aOrSt/BaxYfNAs3A==
X-Received: by 2002:a05:600c:37c6:b0:48e:7f22:d90 with SMTP id 5b1f17b1804b1-48e7f7de432mr182800855e9.4.1778605784332;
        Tue, 12 May 2026 10:09:44 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v9 03/13] xen/arm: gic-v3: tolerate retained redistributor LPI state across CPU_OFF
Date: Tue, 12 May 2026 20:07:10 +0300
Message-ID: <ddf37bff562e7e2055ee049ab63111c5a2a2e611.1778605274.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1778605274.git.mykola_kvach@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1778605785-2887FC48-52A15AD8/0/0
X-purgate-type: clean
X-purgate-size: 10164

From: Mykola Kvach <mykola_kvach@epam.com>

PSCI does not guarantee that a GICv3 redistributor is powered down across
CPU_OFF -> CPU_ON.

DEN0022F.b says CPU_OFF powers down the calling core (5.5) and CPU_ON
brings the core back with a defined initial CPU state (5.6, 6.4).
However, PSCI leaves interrupt migration and GIC re-initialization to the
supervisory software/firmware stack: the caller must migrate interrupts
away before CPU_OFF (5.5.2), and the execution context that is lost in a
powerdown state must be saved and restored by software (6.8). PSCI also
calls out GIC management explicitly in 6.8, including retargeting SPIs,
preventing PPIs/SGIs from targeting a powered down CPU, and reinitializing
the CPU interface after CPU_ON.

This matches the GIC architecture. IHI0069H.b Chapter 11.1 requires the PE
and CPU interface to share a power domain, but explicitly allows the
associated redistributor, distributor, and ITS to remain powered while the
PE and CPU interface are off. All other GIC power-management behavior is
IMPLEMENTATION DEFINED. DEN0050D Chapter 4.2, "Generic Interrupt
Controller (GIC)", says the GICv3 redistributor may live either in the AP
core power domain or in a relatively always-on parent domain. So after
CPU_OFF -> CPU_ON a secondary CPU can legitimately come back to a live
redistributor with GICR_CTLR.EnableLPIs still set.

Handle that case in the LPI setup path instead of assuming a fully reset
redistributor.

The LPI path needs special care because the GIC spec makes redistributor
LPI state sticky and partially implementation defined. IHI0069H.b 5.1.1
and 5.1.2 say that changing GICR_PROPBASER or GICR_PENDBASER while
GICR_CTLR.EnableLPIs == 1 is UNPREDICTABLE. After clearing EnableLPIs,
software must wait for GICR_CTLR.RWP == 0 before touching the pending
table. The architecture also permits implementations where, once
EnableLPIs has been set, clearing it again is not guaranteed to work.
Where an ITS is present, the spec strongly recommends moving LPIs to
another redistributor before clearing EnableLPIs.

Because of that, treat a retained EnableLPIs state as valid when the
redistributor still points at Xen's expected PROPBASER/PENDBASER tables.
Only try to clear EnableLPIs when the retained configuration does not
match Xen's state, and wait for RWP before reprogramming the tables.

This is also consistent with platform firmware reality: PSCI and the GIC
architecture allow platform-specific redistributor power handling, and not
all platform firmware implementations force a full redistributor power-off
through implementation-defined controls during CPU_OFF. Xen therefore needs
to tolerate retained redistributor state on secondary CPU bring-up.

Keep gicv3_populate_rdist() resident as well, because gicv3_cpu_init()
reuses it on secondary CPU bring-up after init.

Tested using Xen's non-boot CPU disable/enable path on Arm
FVP_Base_RevC-2xAEMvA, both with and without:
-C gic_distributor.allow-LPIEN-clear=1
-C gic_distributor.GICR-clear-enable-supported=1
and on Orange Pi 5.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v9:
- move gicv3_do_wait_for_rwp prototype from its related header to gic.h
- drop __init from gicv3_populate_rdist(), which is reused on secondary
  CPU bring-up after boot
- changed print format for smp_processor_id in gicv3_populate_rdist func
- cosmetic changes
---
 xen/arch/arm/gic-v3-lpi.c      | 77 +++++++++++++++++++++++++++++++++-
 xen/arch/arm/gic-v3.c          | 23 ++++++----
 xen/arch/arm/include/asm/gic.h |  4 ++
 3 files changed, 94 insertions(+), 10 deletions(-)

diff --git a/xen/arch/arm/gic-v3-lpi.c b/xen/arch/arm/gic-v3-lpi.c
index 9ee338edc2..36bb45738e 100644
--- a/xen/arch/arm/gic-v3-lpi.c
+++ b/xen/arch/arm/gic-v3-lpi.c
@@ -81,6 +81,13 @@ static DEFINE_PER_CPU(struct lpi_redist_data, lpi_redist);
 #define MAX_NR_HOST_LPIS   (lpi_data.max_host_lpi_ids - LPI_OFFSET)
 #define HOST_LPIS_PER_PAGE      (PAGE_SIZE / sizeof(union host_lpi))
 
+#define GICR_PROPBASER_XEN_MASK  GENMASK_ULL(51, 12)
+/*
+ * For retained redistributor state, match the pending table by address only.
+ * Attribute bits such as PTZ may not read back with the programmed value.
+ */
+#define GICR_PENDBASER_XEN_MASK  GENMASK_ULL(51, 16)
+
 static union host_lpi *gic_get_host_lpi(uint32_t plpi)
 {
     union host_lpi *block;
@@ -296,6 +303,60 @@ static int gicv3_lpi_set_pendtable(void __iomem *rdist_base)
     return 0;
 }
 
+static uint64_t gicv3_lpi_expected_proptable(void)
+{
+    return virt_to_maddr(lpi_data.lpi_property);
+}
+
+static uint64_t gicv3_lpi_expected_pendtable(void)
+{
+    return virt_to_maddr(this_cpu(lpi_redist).pending_table);
+}
+
+static bool gicv3_lpi_tables_match(void __iomem *rdist_base)
+{
+    uint64_t propbase, pendbase;
+
+    if ( !lpi_data.lpi_property || !this_cpu(lpi_redist).pending_table )
+        return false;
+
+    propbase = readq_relaxed(rdist_base + GICR_PROPBASER);
+    pendbase = readq_relaxed(rdist_base + GICR_PENDBASER);
+
+    return ((propbase & GICR_PROPBASER_XEN_MASK) ==
+            (gicv3_lpi_expected_proptable() & GICR_PROPBASER_XEN_MASK)) &&
+           ((pendbase & GICR_PENDBASER_XEN_MASK) ==
+            (gicv3_lpi_expected_pendtable() & GICR_PENDBASER_XEN_MASK));
+}
+
+static int gicv3_lpi_disable_lpis(void __iomem *rdist_base)
+{
+    uint32_t reg = readl_relaxed(rdist_base + GICR_CTLR);
+    int ret;
+
+    if ( !(reg & GICR_CTLR_ENABLE_LPIS) )
+        return 0;
+
+    writel_relaxed(reg & ~GICR_CTLR_ENABLE_LPIS, rdist_base + GICR_CTLR);
+
+    /*
+     * The spec only guarantees programmability when we have observed the bit
+     * cleared. Where clearing is supported, RWP must reach 0 before touching
+     * PROPBASER/PENDBASER again.
+     */
+    wmb();
+
+    ret = gicv3_do_wait_for_rwp(rdist_base);
+    if ( ret )
+        return ret;
+
+    reg = readl_relaxed(rdist_base + GICR_CTLR);
+    if ( reg & GICR_CTLR_ENABLE_LPIS )
+        return -EBUSY;
+
+    return 0;
+}
+
 /*
  * Tell a redistributor about the (shared) property table, allocating one
  * if not already done.
@@ -374,7 +435,21 @@ int gicv3_lpi_init_rdist(void __iomem * rdist_base)
     /* Make sure LPIs are disabled before setting up the tables. */
     reg = readl_relaxed(rdist_base + GICR_CTLR);
     if ( reg & GICR_CTLR_ENABLE_LPIS )
-        return -EBUSY;
+    {
+        if ( gicv3_lpi_tables_match(rdist_base) )
+            return -EBUSY;
+
+        ret = gicv3_lpi_disable_lpis(rdist_base);
+        if ( ret == -EBUSY )
+        {
+            printk(XENLOG_ERR
+                   "GICv3: CPU%u: LPIs still enabled with unexpected redistributor tables\n",
+                   smp_processor_id());
+            return -EINVAL;
+        }
+        if ( ret )
+            return ret;
+    }
 
     ret = gicv3_lpi_set_pendtable(rdist_base);
     if ( ret )
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 7f365cdbe9..cc0569a157 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -274,8 +274,8 @@ static void gicv3_enable_sre(void)
     isb();
 }
 
-/* Wait for completion of a distributor change */
-static void gicv3_do_wait_for_rwp(void __iomem *base)
+/* Wait for completion of a distributor/redistributor write-pending change. */
+int gicv3_do_wait_for_rwp(void __iomem *base)
 {
     uint32_t val;
     bool timeout = false;
@@ -295,17 +295,22 @@ static void gicv3_do_wait_for_rwp(void __iomem *base)
     } while ( 1 );
 
     if ( timeout )
+    {
         dprintk(XENLOG_ERR, "RWP timeout\n");
+        return -ETIMEDOUT;
+    }
+
+    return 0;
 }
 
 static void gicv3_dist_wait_for_rwp(void)
 {
-    gicv3_do_wait_for_rwp(GICD);
+    (void)gicv3_do_wait_for_rwp(GICD);
 }
 
 static void gicv3_redist_wait_for_rwp(void)
 {
-    gicv3_do_wait_for_rwp(GICD_RDIST_BASE);
+    (void)gicv3_do_wait_for_rwp(GICD_RDIST_BASE);
 }
 
 static void gicv3_wait_for_rwp(int irq)
@@ -857,7 +862,7 @@ static bool gicv3_enable_lpis(void)
     return true;
 }
 
-static int __init gicv3_populate_rdist(void)
+static int gicv3_populate_rdist(void)
 {
     int i;
     uint32_t aff;
@@ -925,15 +930,15 @@ static int __init gicv3_populate_rdist(void)
                     gicv3_set_redist_address(rdist_addr, procnum);
 
                     ret = gicv3_lpi_init_rdist(ptr);
-                    if ( ret && ret != -ENODEV )
+                    if ( ret && ret != -ENODEV && ret != -EBUSY )
                     {
-                        printk("GICv3: CPU%d: Cannot initialize LPIs: %u\n",
+                        printk("GICv3: CPU%u: Cannot initialize LPIs: %d\n",
                                smp_processor_id(), ret);
                         break;
                     }
                 }
 
-                printk("GICv3: CPU%d: Found redistributor in region %d @%p\n",
+                printk("GICv3: CPU%u: Found redistributor in region %d @%p\n",
                         smp_processor_id(), i, ptr);
                 return 0;
             }
@@ -953,7 +958,7 @@ static int __init gicv3_populate_rdist(void)
         } while ( !(typer & GICR_TYPER_LAST) );
     }
 
-    dprintk(XENLOG_ERR, "GICv3: CPU%d: mpidr 0x%"PRIregister" has no re-distributor!\n",
+    dprintk(XENLOG_ERR, "GICv3: CPU%u: mpidr 0x%"PRIregister" has no re-distributor!\n",
             smp_processor_id(), cpu_logical_map(smp_processor_id()));
 
     return -ENODEV;
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.h
index fbf0d69edd..9293aa56e2 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -301,6 +301,10 @@ extern int gicv_setup(struct domain *d);
 extern void gic_save_state(struct vcpu *v);
 extern void gic_restore_state(struct vcpu *v);
 
+#ifdef CONFIG_GICV3
+int gicv3_do_wait_for_rwp(void __iomem *base);
+#endif
+
 #ifdef CONFIG_SYSTEM_SUSPEND
 /* Suspend/resume */
 extern int gic_suspend(void);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:09:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:09:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307274.1578983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqc5-0005fJ-1v; Tue, 12 May 2026 17:09:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307274.1578983; Tue, 12 May 2026 17:09:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqc4-0005ef-VH; Tue, 12 May 2026 17:09:44 +0000
Received: by outflank-mailman (input) for mailman id 1307274;
 Tue, 12 May 2026 17:09:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMqc3-0005XT-D3
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:09:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMqc2-00HVXc-Q6
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:09:42 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035eaa-5cb7-0a2a0a5109dd-0a2a450a84bc-40
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:42 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ed6-56b3-0a2a450a0019-d1558032c817-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:42 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-4891e5b9c1fso53835975e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:09:42 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8cccf90sm10838845e9.0.2026.05.12.10.09.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 10:09:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778605782; x=1779210582; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=j/x0rT1oB7OVwr8zqPawvId6h6lac1Z+SScMfAw/LeE=;
        b=aX1Lyq+Px+KI01SjPa6ASdPvaDCV/EOHsqRaNMl06VQxpdbqvQWd02AgwMkqMUFcaE
         QjGWmpMj0NPkzYPpRpCQ+DrHGByu8Sk/yKTpuY5mXYONiC+44b7JmILgKehRzmo3IaSn
         7/D2dx8IsHA0mESVHeqyVTxfYdq5O9Pjhn3xoydCPAnXah49o7UEbHeV7mIa9ojyUvyL
         LxzeBVqwJhMXENYiKWfHeRfSUKR0PhtoBv4903Yqm+xlMpFSUo5FfpPjcATIphlqRG1R
         DbnNLqoOJiAzzieB859na/lp7dO03blR8fE7mGXzMcFMTST3Dvgo8t0r26Iwx1wBVacS
         af3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778605782; x=1779210582;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=j/x0rT1oB7OVwr8zqPawvId6h6lac1Z+SScMfAw/LeE=;
        b=aeQ4Rj46u2cWh1zbJ1jzHjetGELiYlHLwHcpmqcAKstVWSdLj7xV7N/vtooYvQYnEP
         nvIY/TEQSC5dS+/eJU0qu1Uzhv2DHKagQPa07DtVlil375VTTuUokGQDxjaVL9tg7Ru2
         tlEDD2xj6aaJFdIYHUuOxZFSLjHbpY2F4AjzvSA8jvul/Dzyz4Cjvgc4w9uf3txlalqG
         BeqiojUtHduk4L7oszvWtUc1+hlwq8WiVqQ1nmFTwmDuBT+14yS8ZtjuUruvZk1sQUov
         wvQ9BduhU4vkYclLZIpz3hFWBB8nZxzGip7SUM803AJddvHKnzzjORoI/3rr5lkJnvi6
         /G1Q==
X-Gm-Message-State: AOJu0YxUHd8GDsKxtPMdf8k9kKkY/jYllYsKeolYdqkK9o1sykOfvP27
	pbmjw+FJ3J+WqcKl1xMPMipa4pCXfHuMY7ScH+YfLXTM0uBmKtEVVDTYrDhd1g==
X-Gm-Gg: Acq92OFAOmArw3ZTNgdlkcGi+Ur/uQ6qPV5dTLUpGSUGVBmHceW8xBkqcEFaBcAFxeD
	xul8tT2nAz1uSM4DNaXqKQIWbDlarM4KzBKjPE7MnV14pGvoRFGrtkUbsQEW5zTGs5fc0H9bntI
	lUqpyFO7dIm9AKK9zN+ZljStyvHMz4DIh9G8rjF8mIFlRzHE9yeORKJkeSeN83t7lZLDpmKIehv
	PzGLFiln+/phqyD6/pfK52EONEy7JXn3onCFMbnDx2OpkBOHS/+uhmK5EDXlP2yTdECS61KIwo3
	IZRjFSTUpboLmuMxvzYfIhLpN//a27fh92XRtwqyQaYMh+f/M6w68jEDdJ/NTtdN5BAqsiqMp1O
	d/Rgcpe70CzEauyg70SAIymnVUzBEmZpUF5L6lQAig4lqi47CJ1NZg3fVa8Yj2HTIYozkkHi+pM
	krQ6aqSy9QiMu8RK1L2VXsRZiM8g==
X-Received: by 2002:a05:600c:a11a:b0:48e:635a:18d2 with SMTP id 5b1f17b1804b1-48e8fe4dc0bmr45550805e9.2.1778605781824;
        Tue, 12 May 2026 10:09:41 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Julien Grall <jgrall@amazon.com>,
	Luca Fancellu <luca.fancellu@arm.com>
Subject: [PATCH v9 01/13] xen/arm: Add suspend and resume timer helpers
Date: Tue, 12 May 2026 20:07:08 +0300
Message-ID: <178c6b2d729d6d341e3647cb63f36af9df6c3301.1778605274.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1778605274.git.mykola_kvach@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778605782-6FF598B7-1695E299/0/0
X-purgate-type: clean
X-purgate-size: 5064

From: Mirela Simonovic <mirela.simonovic@aggios.com>

Timer interrupts must be disabled while the system is suspended to prevent
spurious wake-ups. Suspending timers in Xen consists of disabling the
physical timer and the hypervisor timer on the current CPU. The virtual
timer does not need explicit handling here, as it is already disabled on
vCPU context switch and its state is restored per-vCPU on the next context
restore.

Resuming consists of raising TIMER_SOFTIRQ, which prompts the generic
timer code to reprogram the hypervisor timer with the correct timeout.

Xen does not use or expose the physical timer, so it remains disabled
across suspend/resume.

Introduce a new helper, disable_phys_hyp_timers(), to encapsulate disabling
of the physical and hypervisor timers.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Julien Grall <jgrall@amazon.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes in V7:
  - Dropped EL1/EL2 wording; use "physical timer" and "hypervisor timer"
  - Renamed helper to disable_phys_hyp_timers() to reflect its actual scope
  - Clarified virtual timer handling (disabled on vCPU switch-out, restored
    on context restore) and added comments in suspend/resume paths
  - Added resume comment explaining which timers are restored by
    TIMER_SOFTIRQ
---
 xen/arch/arm/include/asm/time.h |  5 ++++
 xen/arch/arm/time.c             | 44 ++++++++++++++++++++++++++++-----
 2 files changed, 43 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/include/asm/time.h b/xen/arch/arm/include/asm/time.h
index c194dbb9f5..9313b157ea 100644
--- a/xen/arch/arm/include/asm/time.h
+++ b/xen/arch/arm/include/asm/time.h
@@ -105,6 +105,11 @@ void preinit_xen_time(void);
 
 void force_update_vcpu_system_time(struct vcpu *v);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+void time_suspend(void);
+void time_resume(void);
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 #endif /* __ARM_TIME_H__ */
 /*
  * Local variables:
diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index 6955b2788f..fff8e4aca6 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -296,6 +296,14 @@ static void check_timer_irq_cfg(unsigned int irq, const char *which)
 static DEFINE_PER_CPU_READ_MOSTLY(struct irqaction, irq_hyp);
 static DEFINE_PER_CPU_READ_MOSTLY(struct irqaction, irq_virt);
 
+/* Disable physical and hypervisor timers on the current CPU */
+static inline void disable_phys_hyp_timers(void)
+{
+    WRITE_SYSREG(0, CNTP_CTL_EL0);    /* Physical timer disabled */
+    WRITE_SYSREG(0, CNTHP_CTL_EL2);   /* Hypervisor's timer disabled */
+    isb();
+}
+
 /* Set up the timer interrupt on this CPU */
 void init_timer_interrupt(void)
 {
@@ -306,9 +314,7 @@ void init_timer_interrupt(void)
     WRITE_SYSREG64(0, CNTVOFF_EL2);     /* No VM-specific offset */
     /* Do not let the VMs program the physical timer, only read the physical counter */
     WRITE_SYSREG(CNTHCTL_EL2_EL1PCTEN, CNTHCTL_EL2);
-    WRITE_SYSREG(0, CNTP_CTL_EL0);    /* Physical timer disabled */
-    WRITE_SYSREG(0, CNTHP_CTL_EL2);   /* Hypervisor's timer disabled */
-    isb();
+    disable_phys_hyp_timers();
 
     hyp_action->name = "hyptimer";
     hyp_action->handler = htimer_interrupt;
@@ -333,9 +339,7 @@ void init_timer_interrupt(void)
  */
 static void deinit_timer_interrupt(void)
 {
-    WRITE_SYSREG(0, CNTP_CTL_EL0);    /* Disable physical timer */
-    WRITE_SYSREG(0, CNTHP_CTL_EL2);   /* Disable hypervisor's timer */
-    isb();
+    disable_phys_hyp_timers();
 
     release_irq(timer_irq[TIMER_HYP_PPI], NULL);
     release_irq(timer_irq[TIMER_VIRT_PPI], NULL);
@@ -375,6 +379,34 @@ void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
     /* XXX update guest visible wallclock time */
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+void time_suspend(void)
+{
+    /* CNTV already disabled by virt_timer_save() during vcpu context switch. */
+    disable_phys_hyp_timers();
+}
+
+void time_resume(void)
+{
+    /*
+     * Raising TIMER_SOFTIRQ triggers generic timer code to reprogram the
+     * hypervisor timer with the correct timeout (not known here).
+     *
+     * Xen doesn't use or expose the physical timer, so it remains disabled
+     * across suspend/resume.
+     *
+     * The virtual timer state is restored per-vCPU on the next context switch.
+     *
+     * No further action is needed to restore timekeeping after power down,
+     * since the system counter is unaffected. See ARM DDI 0487 L.a, D12.1.2
+     * "The system counter must be implemented in an always-on power domain."
+     */
+    raise_softirq(TIMER_SOFTIRQ);
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 static int cpu_time_callback(struct notifier_block *nfb,
                              unsigned long action,
                              void *hcpu)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:09:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:09:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307279.1579034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcC-000702-Qo; Tue, 12 May 2026 17:09:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307279.1579034; Tue, 12 May 2026 17:09:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcC-0006zo-Ll; Tue, 12 May 2026 17:09:52 +0000
Received: by outflank-mailman (input) for mailman id 1307279;
 Tue, 12 May 2026 17:09:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMqcB-0006je-AA
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:09:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMqcA-007RzZ-NY
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:09:50 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ecd-2eae-0a2a0a5409dd-0a2a450cc83c-42
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:50 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ede-62f1-0a2a450c0019-d155802cd561-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:50 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-488ba840146so52227225e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:09:50 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8cccf90sm10838845e9.0.2026.05.12.10.09.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 10:09:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778605789; x=1779210589; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DakayXl1HcfjZmxzjuOvWT6rEYilW0CjJi4UVOgEk64=;
        b=cAQIIWgAWAGIPmnaZZAS4XIMFuJXfTRMsGWqcwEacYG+636c4ClEYaCqJ8enY7erIQ
         wki+qF17lLkph6PvoVud8mKLdwl2kPCIST2rJLFTKoQqwlbhymFWvjq4Y6R17ZCdh78W
         rj+0Egmbhcs5c+OGDRwKwrn+enmZcFAKPVVnehqiNkq7VB+ICgJLWkwRDecMJfEsL40J
         lAJF0jOIl3FRJ3XLp9m0vk3tnqWuG3pJzjsr93hDEfA5rxUuyY2cnbalTsIvtj8zoM7P
         u8Bc2LECdGECYhgDdZg3MzMhSPy7hMBGMsuK1VMY1Z4vWSUDU8IQNroX0Hl8mdn2FZY/
         fShA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778605789; x=1779210589;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=DakayXl1HcfjZmxzjuOvWT6rEYilW0CjJi4UVOgEk64=;
        b=hcNGrQ/ozKXRyXe/rcFSMf30VJQRDfslBkr7jv3MD1gmCFQoDMfZzwrsyGsZKymkko
         Uafu/ckrRbIELzPagxRkWQhTAWiax4BFCoi84ZM92uU11PF9rxUfGx6t9I2NaSIS91GU
         zzF7bnObajHLoLljfoMiH/6aZwWjmLKXQQQm0zL/iwAx9A2FA1EI8wGeLNa6YbQie0NM
         qTbybOojidbxf3Op1jggmmmcEZKyWxmrebV46Usb2og1ndICx+GmNTMn7shtNvk7XxWG
         lB/jOiH8JfI9sIDWp3Q4yd7NRHMuVAKD/o81KkOTbRq3SMDIttEXkvhBCX3YZwRCv6Lb
         trlg==
X-Gm-Message-State: AOJu0YwtMLiGkk/Om7WiUdcOTOMbvWq0YU/XmRFqQorH+evb0xVze5rJ
	1tFetFr19UUqaaE/LmIyLdKZJDzWVi59WQT4GB9qpZrKsk04R3jBdi0rKenuFA==
X-Gm-Gg: Acq92OGejGBwkRi7a7ChsvyNgw9/a3NQYsDiKsv2rEgHqbx4mN0KTZM7AIce+UpjvOF
	xDVR4rmq4KgUMG9QChBkl/FdG23JrWQEwop57DrZuO1dnayzkx931U2+OEYdbMEjwIdLRnCa8kA
	O8L87oGAqtj1xS8Ogiy8LN3nYUtMIqK5rabaVZpDn3gCozC8Ad3VcL3CTVBZChNf4Y/44I2KXrJ
	OnvGReqKOz3ldnfzZCrhBGP+o8gZ7Ix9YMIOO8OrhQUBNQSYboGaHm5dhbhQl3ywfSSnOOHQ92K
	roidLMK/kp/ROmT/re2ADMVmm341SgWLO7P1R+MGRle+wkro5ZPnKB7T/Lv78O6YBgbJr+qhsIO
	ISW1+WzI676sbdZiUjeuGD6a7vKiE8Q3gLD8MpwvwNUD5A/t+Nn2qLdu+KjhM3LxJDhZbdRgM5m
	a5FyvZMDMDol7W4R3Q6+ZtGbHiAQ==
X-Received: by 2002:a05:600c:a11a:b0:48e:60a3:220a with SMTP id 5b1f17b1804b1-48e8fe018bdmr46019965e9.0.1778605789514;
        Tue, 12 May 2026 10:09:49 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Luca Fancellu <luca.fancellu@arm.com>
Subject: [PATCH v9 06/13] xen/arm: tee: keep init_tee_secondary() for hotplug and resume
Date: Tue, 12 May 2026 20:07:13 +0300
Message-ID: <dc2c77383cdbd1dda524a5c1c4778fa93cb07706.1778605274.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1778605274.git.mykola_kvach@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1778605790-DB370CF5-72B238B9/0/0
X-purgate-type: clean
X-purgate-size: 1063

From: Mykola Kvach <mykola_kvach@epam.com>

init_tee_secondary() was marked __init and freed after boot. Calling it
from the CPU hotplug/resume path then executed discarded code, which
could crash Xen. Drop __init so the TEE mediator secondary init can run
safely on hotplugged and resumed CPUs.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
 xen/arch/arm/tee/tee.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/tee/tee.c b/xen/arch/arm/tee/tee.c
index 8501443c8e..00e561fc78 100644
--- a/xen/arch/arm/tee/tee.c
+++ b/xen/arch/arm/tee/tee.c
@@ -128,7 +128,7 @@ static int __init tee_init(void)
 
 presmp_initcall(tee_init);
 
-void __init init_tee_secondary(void)
+void init_tee_secondary(void)
 {
     if ( cur_mediator && cur_mediator->ops->init_secondary )
         cur_mediator->ops->init_secondary();
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:09:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:09:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307278.1579025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcB-0006jx-CT; Tue, 12 May 2026 17:09:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307278.1579025; Tue, 12 May 2026 17:09:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcB-0006jh-7h; Tue, 12 May 2026 17:09:51 +0000
Received: by outflank-mailman (input) for mailman id 1307278;
 Tue, 12 May 2026 17:09:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMqc9-0006ej-Vt
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:09:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMqc9-007RzZ-9b
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:09:49 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ecd-2eae-0a2a0a5409dd-0a2a450cc83c-40
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:49 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035edd-62f1-0a2a450c0019-d1558031dcc7-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:49 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-48909558b3aso59332165e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:09:49 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8cccf90sm10838845e9.0.2026.05.12.10.09.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 10:09:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778605788; x=1779210588; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0IZE3vvZX8wTCOIvxrr5h+/UmQXvZVQaktiFrkuAMu4=;
        b=IcD5Ikeb+fSV5jb87eN5sdQt4h2F2BytaEeYehJUmw40qv/cp+XqzuB4FGVlAd+9SP
         GfpwGoHKfP2AF4D9VUK3Aj0Cz/KZz2sLaIFezm4Wd2nnGIpbvZrSIVUaUQSrnngX8hM4
         k4wFFEh2UBX94XBGL1wy/S8f+1ki0X6Z6KCtAdEi4Z7t7zJOCsM//hUg2e+/EIX8VXFI
         TBmkki1ew5FG3Y2Cr9YQIt7pNS7SI/WLf6m7ioxXFUttOH4uf1rPCE3RLzuLxeiHzK+u
         S9ovfQFWIi67h3j5jTSXlXQFOU/ngOdYSmalLxkC6H4fxeetUDhbssLkgj5EJW7NaPLm
         fuSw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778605788; x=1779210588;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=0IZE3vvZX8wTCOIvxrr5h+/UmQXvZVQaktiFrkuAMu4=;
        b=Dv8n+k4f4HLDPxVvDwiaJk5+VmA7K2Mp15xHPo97UC4Ps4V9yT5Swa07uWPv5DKHoh
         YhWVZ4L10HFxYVFpY/GKCfQXqA9//IQ9CZ0cO4nw9E9bF/FxLcIh6pGlRpi0C/j2aDL4
         VkoAytNDjPouUiOcQvEFP9ptJAxe2VgfHCl1slepQwv04OOtbm+C0W4qgHPH3NBw03Be
         CGkm3cmQpKkzN2yWWs9xolP4a+cQMv4/QJCksPgO0MPLnONNBEOChPNjUpBgGh+Wts0U
         EwrNX30iZJfFbSK+5ifn3tUXzfdrACLOcGmR5tnE6868fOGllp3PbmMnHobkdxDJFDYa
         cJMw==
X-Gm-Message-State: AOJu0YyTaEjCgIvA+gmHhO4EVHCcCY+1SnqMScpScK9BnLo7lkIuG64E
	1Sj8piNmPPfoq0M1X7GYPS6pmpbMMq20NkKWXnV65eCPh/CC/brwcIwfIa8TOw==
X-Gm-Gg: Acq92OHO1CIs/KGzFDNXleamW1+7YGauD0qAByiutdwvykQ9OF9+5f48aXhABcCy4+o
	5pS6oHMCLb3/MHm2OoYLaXlWoS/pa3+RpBodYWEgfYYZiqPYbtY3v9S01rgZGgFiQ5/ns4qDiUb
	DhCMP78+I8B+4vthgPICauD1sOZiu/TbhzAt4RnDKxd3pSOH0GQGLW4tOuANx31RVf3vDKyPsiR
	wGBm0PocQOogWmBEIAfTcCRbcyVIoeI/YjSYvIAkVERk86ZskR+Rpa9Xu3xIFDc6+mAuew07iKp
	ibzuh2nAP6m8JlZjgGFHdgayaFpCtdmPSor8jkV9dx9LrwE0u1QsopUfxVp1VwtRDJygQRfnoJ3
	F87d6gQWLDHrUTSKId17jLEtuYhZDTE56eA2s7EhKHlg/XMoMoREWSXCRulliWhXn7XNrisAUxK
	WUKeIuQrEququ3vsm7m1aoneA4GQ==
X-Received: by 2002:a05:600c:3b0f:b0:48a:7965:b943 with SMTP id 5b1f17b1804b1-48e51f4e9admr478114025e9.29.1778605788240;
        Tue, 12 May 2026 10:09:48 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v9 05/13] xen/arm: gic-v3: add ITS suspend/resume support
Date: Tue, 12 May 2026 20:07:12 +0300
Message-ID: <bd79226263c1dd9c915a7fffd4f92b194af864ee.1778605274.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1778605274.git.mykola_kvach@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1778605789-DB57FCF5-620AAA48/0/0
X-purgate-type: clean
X-purgate-size: 9457

From: Mykola Kvach <mykola_kvach@epam.com>

Handle system suspend/resume for GICv3 with an ITS present so LPIs keep
working after firmware powers the GIC down. Save and restore the ITS
CTLR, CBASER and BASER registers, and re-establish the collection mapping
on resume.

Add list_for_each_entry_continue_reverse() in list.h for the ITS suspend
error path that needs to roll back partially saved state.

Based on Linux commit dba0bc7b76dc:
"irqchip/gic-v3-its: Add ability to save/restore ITS state".
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V9:
- fix the ITS suspend/resume coding-style nits;
- preserve the saved GITS_CTLR state while masking the read-only
  QUIESCENT bit.

Changes in V8:
- Reword the CBASER/CWRITER comment to match Xen and drop the stale Linux
  cmd_write reference.
- Clarify the list_for_each_entry_continue_reverse() comment.
- Factor out per-ITS helpers for collection setup and resume.
- Restore each ITS and re-establish its collection mapping in the same
  loop, so a failed ITS resume is not followed by MAPC/SYNC on that
  un-restored instance.
- panic in case when resume of an ITS failed
- cleanup baser cache during suspend
---
 xen/arch/arm/gic-v3-its.c             | 133 ++++++++++++++++++++++++--
 xen/arch/arm/gic-v3.c                 |  11 ++-
 xen/arch/arm/include/asm/gic_v3_its.h |  23 +++++
 xen/include/xen/list.h                |  14 +++
 4 files changed, 171 insertions(+), 10 deletions(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index 9005ce8ce5..582c26d964 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -335,6 +335,22 @@ static int its_send_cmd_inv(struct host_its *its,
     return its_send_command(its, cmd);
 }
 
+static int gicv3_its_setup_collection_single(struct host_its *its,
+                                             unsigned int cpu)
+{
+    int ret;
+
+    ret = its_send_cmd_mapc(its, cpu, cpu);
+    if ( ret )
+        return ret;
+
+    ret = its_send_cmd_sync(its, cpu);
+    if ( ret )
+        return ret;
+
+    return gicv3_its_wait_commands(its);
+}
+
 /* Set up the (1:1) collection mapping for the given host CPU. */
 int gicv3_its_setup_collection(unsigned int cpu)
 {
@@ -343,15 +359,7 @@ int gicv3_its_setup_collection(unsigned int cpu)
 
     list_for_each_entry(its, &host_its_list, entry)
     {
-        ret = its_send_cmd_mapc(its, cpu, cpu);
-        if ( ret )
-            return ret;
-
-        ret = its_send_cmd_sync(its, cpu);
-        if ( ret )
-            return ret;
-
-        ret = gicv3_its_wait_commands(its);
+        ret = gicv3_its_setup_collection_single(its, cpu);
         if ( ret )
             return ret;
     }
@@ -1210,6 +1218,113 @@ int gicv3_its_init(void)
     return 0;
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+int gicv3_its_suspend(void)
+{
+    struct host_its *its;
+    int ret;
+
+    list_for_each_entry( its, &host_its_list, entry )
+    {
+        unsigned int i;
+        void __iomem *base = its->its_base;
+
+        /*
+         * By the time Xen reaches gic_suspend(), every domain is already in
+         * SHUTDOWN_suspend, so ITS-targeting interrupt sources are expected
+         * to have been quiesced by the owning OS before SYSTEM_SUSPEND.
+         */
+        /* Preserve saved GITS_CTLR state, excluding read-only QUIESCENT. */
+        its->suspend_ctx.ctlr = readl_relaxed(base + GITS_CTLR) &
+                                ~GITS_CTLR_QUIESCENT;
+        ret = gicv3_disable_its(its);
+        if ( ret )
+        {
+            writel_relaxed(its->suspend_ctx.ctlr, base + GITS_CTLR);
+            goto err;
+        }
+
+        its->suspend_ctx.cbaser = readq_relaxed(base + GITS_CBASER);
+
+        for ( i = 0; i < GITS_BASER_NR_REGS; i++ )
+        {
+            uint64_t baser = readq_relaxed(base + GITS_BASER0 + i * 8);
+
+            its->suspend_ctx.baser[i] = 0;
+
+            if ( !(baser & GITS_VALID_BIT) )
+                continue;
+
+            its->suspend_ctx.baser[i] = baser;
+        }
+    }
+
+    return 0;
+
+ err:
+    list_for_each_entry_continue_reverse( its, &host_its_list, entry )
+        writel_relaxed(its->suspend_ctx.ctlr, its->its_base + GITS_CTLR);
+
+    return ret;
+}
+
+static int gicv3_its_resume_single(struct host_its *its, unsigned int cpu)
+{
+    void __iomem *base = its->its_base;
+    unsigned int i;
+    int ret;
+
+    /*
+     * Make sure that the ITS is disabled. If it fails to quiesce,
+     * don't restore it since writing to CBASER or BASER<n>
+     * registers is undefined according to the GIC v3 ITS
+     * Specification.
+     */
+    WARN_ON(readl_relaxed(base + GITS_CTLR) & GITS_CTLR_ENABLE);
+    ret = gicv3_disable_its(its);
+    if ( ret )
+        return ret;
+
+    writeq_relaxed(its->suspend_ctx.cbaser, base + GITS_CBASER);
+
+    /*
+     * Writing CBASER resets CREADR to 0, so reset CWRITER to
+     * keep the command queue pointers aligned.
+     */
+    writeq_relaxed(0, base + GITS_CWRITER);
+
+    /* Restore GITS_BASER from the value cache. */
+    for ( i = 0; i < GITS_BASER_NR_REGS; i++ )
+    {
+        uint64_t baser = its->suspend_ctx.baser[i];
+
+        if ( !(baser & GITS_VALID_BIT) )
+            continue;
+
+        writeq_relaxed(baser, base + GITS_BASER0 + i * 8);
+    }
+
+    writel_relaxed(its->suspend_ctx.ctlr, base + GITS_CTLR);
+
+    return gicv3_its_setup_collection_single(its, cpu);
+}
+
+void gicv3_its_resume(void)
+{
+    struct host_its *its;
+    unsigned int cpu = smp_processor_id();
+    int ret;
+
+    list_for_each_entry( its, &host_its_list, entry )
+    {
+        ret = gicv3_its_resume_single(its, cpu);
+        if ( ret )
+            panic("GICv3: ITS@%"PRIpaddr": failed to restore during resume: %d\n",
+                   its->addr, ret);
+    }
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
 
 /*
  * Local variables:
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 6fc4354e2e..8ef9f416d0 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -2115,10 +2115,14 @@ static int gicv3_suspend(void)
 
     gicv3_disable_interface();
 
-    ret = gicv3_disable_redist();
+    ret = gicv3_its_suspend();
     if ( ret )
         goto out_enable_iface;
 
+    ret = gicv3_disable_redist();
+    if ( ret )
+        goto out_its_resume;
+
     /* Save GICR configuration */
     gicv3_redist_wait_for_rwp();
 
@@ -2154,6 +2158,9 @@ static int gicv3_suspend(void)
 
     return 0;
 
+ out_its_resume:
+    gicv3_its_resume();
+
  out_enable_iface:
     gicv3_hyp_enable(true);
     WRITE_SYSREG(gicv3_ctx.cpu.grpen, ICC_IGRPEN1_EL1);
@@ -2253,6 +2260,8 @@ static void gicv3_resume(void)
 
     gicv3_redist_wait_for_rwp();
 
+    gicv3_its_resume();
+
     WRITE_SYSREG(gicv3_ctx.cpu.sre_el2, ICC_SRE_EL2);
     isb();
 
diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include/asm/gic_v3_its.h
index fc5a84892c..492c468ae0 100644
--- a/xen/arch/arm/include/asm/gic_v3_its.h
+++ b/xen/arch/arm/include/asm/gic_v3_its.h
@@ -129,6 +129,13 @@ struct host_its {
     spinlock_t cmd_lock;
     void *cmd_buf;
     unsigned int flags;
+#ifdef CONFIG_SYSTEM_SUSPEND
+    struct suspend_ctx {
+        uint32_t ctlr;
+        uint64_t cbaser;
+        uint64_t baser[GITS_BASER_NR_REGS];
+    } suspend_ctx;
+#endif
 };
 
 /* Map a collection for this host CPU to each host ITS. */
@@ -204,6 +211,11 @@ uint64_t gicv3_its_get_cacheability(void);
 uint64_t gicv3_its_get_shareability(void);
 unsigned int gicv3_its_get_memflags(void);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+int gicv3_its_suspend(void);
+void gicv3_its_resume(void);
+#endif
+
 #else
 
 #ifdef CONFIG_ACPI
@@ -271,6 +283,17 @@ static inline int gicv3_its_make_hwdom_dt_nodes(const struct domain *d,
     return 0;
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+static inline int gicv3_its_suspend(void)
+{
+    return 0;
+}
+
+static inline void gicv3_its_resume(void)
+{
+}
+#endif
+
 #endif /* CONFIG_HAS_ITS */
 
 #endif
diff --git a/xen/include/xen/list.h b/xen/include/xen/list.h
index 98d8482dab..2aab274157 100644
--- a/xen/include/xen/list.h
+++ b/xen/include/xen/list.h
@@ -535,6 +535,20 @@ static inline void list_splice_init(struct list_head *list,
          &(pos)->member != (head);                                        \
          (pos) = list_entry((pos)->member.next, typeof(*(pos)), member))
 
+/**
+ * list_for_each_entry_continue_reverse - iterate backwards from the given point
+ * @pos:    the type * to use as a loop cursor.
+ * @head:   the head for your list.
+ * @member: the name of the list_head within the struct.
+ *
+ * Iterate over list of given type backwards, starting from the element previous
+ * to the current one in list order.
+ */
+#define list_for_each_entry_continue_reverse(pos, head, member)           \
+    for ((pos) = list_entry((pos)->member.prev, typeof(*(pos)), member);  \
+         &(pos)->member != (head);                                        \
+         (pos) = list_entry((pos)->member.prev, typeof(*(pos)), member))
+
 /**
  * list_for_each_entry_from - iterate over list of given type from the
  *                            current point
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:09:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:09:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307281.1579042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcE-0007Fn-4E; Tue, 12 May 2026 17:09:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307281.1579042; Tue, 12 May 2026 17:09:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcE-0007FC-0C; Tue, 12 May 2026 17:09:54 +0000
Received: by outflank-mailman (input) for mailman id 1307281;
 Tue, 12 May 2026 17:09:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMqcC-0006to-7x
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:09:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMqcB-007RzZ-Km
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:09:51 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ec9-2eae-0a2a0a5409dd-0a2a4501afae-30
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:51 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035edf-c1f2-0a2a45010019-d155802cb4e9-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:51 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-488af96f6b2so69609145e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:09:51 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8cccf90sm10838845e9.0.2026.05.12.10.09.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 10:09:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778605791; x=1779210591; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F0jUJYHm37yuKRA04SvTDMOB3esx5h23DnnVhZYfk0I=;
        b=ggpm0ec0fA0bp1goMWuheTGx9TqOYlr+wHChAfDZ9lBlX256N+/Hq8h6qJfJGRvyVZ
         heyf7si4eQ6z5hURq5s9p1eGFWm87/QiSl1YrWs0vUkI6uyoY71iKnS3fKv0rb81/eX8
         +E/MUPtsH162f+nXLOFVwNZUV7cSvRtn0jPh5x/GUxrYyh0M8CEMiRj7z7d3AtHqwv8U
         Lu1Tft/KXZYkWk3+aEw1cztnVddb8LrJMq2t38ESERAvp1wNj20bd+wkIwiGwSDnMRld
         rFDYaYEpVMQK30OFK+4XJGMyeN4ej7ytBlQvk4vgvBQX2o2aX8Z7yHik7zu4HnscL24S
         4dbw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778605791; x=1779210591;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=F0jUJYHm37yuKRA04SvTDMOB3esx5h23DnnVhZYfk0I=;
        b=AM5rBrh9ZHbuFbYao0P6tFdEQyaVYWFUsY5EUN/+3gkPZDU7epZ9XPnHhIMNRa8lZq
         v+meheFYvz1hmkFywnwoeN1IZCBorhec9+S+y1FvpdrT8CLFNOG/rPyr0tIq8AXahT3B
         w95NfvtXFRmCKaquLwCzcjYrRHqPX55ClJVBXsCOwBZORYlB3F3C75EwntJEyqJtVzFs
         fq88OuPtrm5IIH+3E9c1h0YkA2jQUeTyc6DtEao6+0ELHicQSaNWzJRiVelzZP/Ua0jy
         H/LuLllPOjmvbM9k2C1fx3V0zwbFGLznu2+aIoHtbMWTmmgw7Dww+fKr0uQS5MC6PADo
         p5JQ==
X-Gm-Message-State: AOJu0YwPag7Q8H60E+YjjzSyAHlw0EP4S3Oqr9gZzs8S4ZXdNGc28elG
	hC2RU40RKNhcOB1wGp0Cs7nhMEFFUnh0C2oSUQfV5xxUkeu3jIFluZPUPzv7fQ==
X-Gm-Gg: Acq92OFxx30AB80x+yygAaGwwrAbI+t9Q7jUNpYxRkMrerpoAABQnlu6/b3xN0m9ZHa
	1twBTQxgQzsmGGXmqEbq91X1Eq7slS/+EyVYry73pKed/6B4ivfaKUWdxEA19dU0UqH5y/XzLGQ
	n8FFTFvC1rRyzp+2ZiwgywNwkWMYT1BwyRqtYYkNNUzkGMLkDMDALiwjYgMzySDp8i/Kv+Jg/Gd
	WFZR0XkCdz4ZyO2e/XTuFGA9gHYGqjNb1+TwbLk999jY8IBbtlvlePnxvQfv5EW4NooeigX+Wud
	6lapYgM68xBfe6LG5prtpbYSieyIg9i/72VWKWX0fPoUF0AMeeuBQUS+y4cC+qOeETMSaVqb+Od
	JqgSdI3SEP759YlNL9/Grk9cwsOM5+SQMUlz8RkbZLfhYZQjrEcQVc83jrTPZGAQAEJaMfr5CBU
	xsMdnQlQrqYuSlBStaYBGLvJtiBA==
X-Received: by 2002:a05:600c:8b68:b0:48a:5574:3a5b with SMTP id 5b1f17b1804b1-48e70809f8fmr252913185e9.27.1778605790729;
        Tue, 12 May 2026 10:09:50 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Luca Fancellu <luca.fancellu@arm.com>
Subject: [PATCH v9 07/13] xen/arm: ffa: fix notification SRI across CPU hotplug/suspend
Date: Tue, 12 May 2026 20:07:14 +0300
Message-ID: <f56ef93fd90ebd599437620047050cd5d23b8f17.1778605274.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1778605274.git.mykola_kvach@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778605791-AFF50FF4-A4C47A8C/0/0
X-purgate-type: clean
X-purgate-size: 3700

From: Mykola Kvach <mykola_kvach@epam.com>

The FF-A notification SRI interrupt handler was not correctly tied to
CPU hotplug and suspend/resume. As a result, CPUs going offline and
back online could end up with stale or missing handlers, breaking
delivery of FF-A notifications.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa_notif.c | 63 ++++++++++++++++++++++++++++--------
 1 file changed, 50 insertions(+), 13 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
index 186e726412..513c399594 100644
--- a/xen/arch/arm/tee/ffa_notif.c
+++ b/xen/arch/arm/tee/ffa_notif.c
@@ -360,10 +360,28 @@ static int32_t ffa_notification_bitmap_destroy(uint16_t vm_id)
     return ffa_simple_call(FFA_NOTIFICATION_BITMAP_DESTROY, vm_id, 0, 0, 0);
 }
 
-void ffa_notif_init_interrupt(void)
+static DEFINE_PER_CPU_READ_MOSTLY(struct irqaction, sri_irq);
+
+static int request_sri_irq(void)
 {
     int ret;
+    struct irqaction *sri_action = &this_cpu(sri_irq);
+
+    sri_action->name = "FF-A notif";
+    sri_action->handler = notif_irq_handler;
+    sri_action->dev_id = NULL;
+    sri_action->free_on_release = 0;
+
+    ret = setup_irq(notif_sri_irq, 0, sri_action);
+    if ( ret )
+        printk(XENLOG_ERR "ffa: setup_irq irq %u failed: error %d\n",
+               notif_sri_irq, ret);
 
+    return ret;
+}
+
+void ffa_notif_init_interrupt(void)
+{
     if ( fw_notif_enabled && notif_sri_irq < NR_GIC_SGI )
     {
         /*
@@ -376,14 +394,36 @@ void ffa_notif_init_interrupt(void)
          * pending, while the SPMC in the secure world will not notice that
          * the interrupt was lost.
          */
-        ret = request_irq(notif_sri_irq, 0, notif_irq_handler, "FF-A notif",
-                          NULL);
-        if ( ret )
-            printk(XENLOG_ERR "ffa: request_irq irq %u failed: error %d\n",
-                   notif_sri_irq, ret);
+        request_sri_irq();
     }
 }
 
+static void deinit_ffa_notif_interrupt(void)
+{
+    if ( fw_notif_enabled && notif_sri_irq < NR_GIC_SGI )
+        release_irq(notif_sri_irq, NULL);
+}
+
+static int cpu_ffa_notif_callback(struct notifier_block *nfb,
+                                  unsigned long action,
+                                  void *hcpu)
+{
+    switch ( action )
+    {
+    case CPU_DYING:
+        deinit_ffa_notif_interrupt();
+        break;
+    default:
+        break;
+    }
+
+    return NOTIFY_DONE;
+}
+
+static struct notifier_block cpu_ffa_notif_nfb = {
+    .notifier_call = cpu_ffa_notif_callback,
+};
+
 void ffa_notif_init(void)
 {
     const struct arm_smccc_1_2_regs arg = {
@@ -392,7 +432,6 @@ void ffa_notif_init(void)
     };
     struct arm_smccc_1_2_regs resp;
     unsigned int irq;
-    int ret;
 
     /* Only enable fw notification if all ABIs we need are supported */
     if ( ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_CREATE) &&
@@ -408,13 +447,11 @@ void ffa_notif_init(void)
         notif_sri_irq = irq;
         if ( irq >= NR_GIC_SGI )
             irq_set_type(irq, IRQ_TYPE_EDGE_RISING);
-        ret = request_irq(irq, 0, notif_irq_handler, "FF-A notif", NULL);
-        if ( ret )
-        {
-            printk(XENLOG_ERR "ffa: request_irq irq %u failed: error %d\n",
-                   irq, ret);
+
+        if ( request_sri_irq() )
             return;
-        }
+
+        register_cpu_notifier(&cpu_ffa_notif_nfb);
         fw_notif_enabled = true;
     }
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:09:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:09:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307283.1579047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcE-0007IU-Fh; Tue, 12 May 2026 17:09:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307283.1579047; Tue, 12 May 2026 17:09:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcE-0007I9-9w; Tue, 12 May 2026 17:09:54 +0000
Received: by outflank-mailman (input) for mailman id 1307283;
 Tue, 12 May 2026 17:09:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMqcD-0007Av-Q1
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:09:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMqcD-007RzZ-6w
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:09:53 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ec9-2eae-0a2a0a5409dd-0a2a4501afae-36
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:53 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ee1-c1f2-0a2a45010019-d155802cc06e-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:53 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-488a9033b2cso53223425e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:09:53 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8cccf90sm10838845e9.0.2026.05.12.10.09.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 10:09:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778605792; x=1779210592; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pT1AJ8vJVr+Es3f8Ijw7DVXZgIihu6GcB10i8wyJqXY=;
        b=XQaNkCv8e/xa6SJp6IaorzUiICTIe73+1JmcUsd7VJNI0RZcR/jVPptk9XT+g4F8XT
         dpgdWPnMiKlTQPjnBTk7R7O/LBC8bki+4WzgRIelT0JFTndVNaBdBlT9UkgC24RfqeHi
         bCuebZD7KY52QT8zBbzic4P7578bpyk174LxK9ItpjjjFapdw/SB0I85P8m2LAZqa7n/
         V1eop4xuJVZGvu5Iij9vfSL0VVVJa2NGkzOp2b8k+TOsrb8V3tEb41kZHw225i7HAiiw
         cSSgBR8CPd4SUxa5tVMRGafOHG5YNJZ5aDx90aOq9oWTMuLS5x21NwQ7xu7W6moho+uW
         xTCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778605792; x=1779210592;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=pT1AJ8vJVr+Es3f8Ijw7DVXZgIihu6GcB10i8wyJqXY=;
        b=TenhDgYb3Qkuxlbo6e+xIykiN77Qb26G4xBrgHnmruAXNWm+zKDD811w1t6nvZLnnM
         lIPvSfAxsvp9j+UFFm5srk3KuD0Bfq1pGjSeL0IjsIlVyA3R8oacExbAPXAUtYq1yWuZ
         tW7A3dEJ4J1uGvyxlSNsDRqXbqB/WFjEQ492mLKo5coS4piZwX2BYT+hR2QCNPtaTnTc
         ImYh2sNqDK01ZtRnSmmC8CKQG8cuxnBcConKb+gmvRT0JMvYETH0NuXpFiIwXJeR68lo
         6Kaj9nYTzBcKjhh6mnaNmsZHodj4H+ec6RcGLcuuDkdPPzk4o1sTwwMVx3Nxog2gT0Of
         y4Mg==
X-Gm-Message-State: AOJu0YzpJJL9q5yNmz9vUVyTuSIeXrRBJxIyBjUtiGkvB6O3yjh7kAzM
	mvkY3wvhIPmkkUJJ7KeboRfU+oM8QvVKB21AYkC7Ubv3IVfkUVo7mDoGxVMmCg==
X-Gm-Gg: Acq92OHfz1CjpF/tiBPvlJR8Ais0/YSYfZOnUJe12xXnbNF/XnV7xbg8CF450W+kCAR
	8DZpVYMQ2uMZCMm3Ov2xHbnztZKQ1c8lrGlF7RMx8hZUYW19PAisKeOeebwJ8aDW/az2smWpZSx
	kpzFAvdYPwGaxXyZne4KO46JYRLwsakaT1ItmhVYSqzHB2xi6qoLuRF4jo/NQIUqQF9bygu4Jrb
	IBmbyPVdkKE4v7QHpHd4TnT72kT+ESyexAuwpNqRI0sx5IdvUlKqV1fhWaiTJGiZvha9zPznRDN
	dem1VqLHSc3omvQp5aYdvdpX5AnQ6+/7Mt51AN8MjXLn0Gle8aa6UKeBp/K+NS0SDfXyeaJJHHj
	3oazqu/gZOMW8sp86uTt/IzT16FqanYobOfW6VT63a7XHvxRzxq9B2TVoO8gkGSpnwSyUymNL7t
	w8Dt1a28it85GM4kC3kZsvmYYe+A==
X-Received: by 2002:a05:600c:4ec7:b0:48e:51f8:eb37 with SMTP id 5b1f17b1804b1-48e706d8ad9mr242690535e9.25.1778605791897;
        Tue, 12 May 2026 10:09:51 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v9 08/13] iommu/ipmmu-vmsa: Implement suspend/resume callbacks
Date: Tue, 12 May 2026 20:07:15 +0300
Message-ID: <4162aa58c351677a4a267fe85989c6d4e07487d8.1778605274.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1778605274.git.mykola_kvach@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778605793-B715BFF4-1027C592/0/0
X-purgate-type: clean
X-purgate-size: 13768

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Store and restore active context and micro-TLB registers.

Tested on R-Car H3 Starter Kit.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V9:
- set dt_device_set_protected() only after ipmmu_alloc_ctx_suspend()
  succeeds, so DT devices do not remain protected on allocation failure.

Changes in V7:
- moved suspend context allocation before pci stuff
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 319 +++++++++++++++++++++--
 1 file changed, 304 insertions(+), 15 deletions(-)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index fa9ab9cb13..e1b47a5824 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -71,6 +71,8 @@
 })
 #endif
 
+#define dev_dbg(dev, fmt, ...)    \
+    dev_print(dev, XENLOG_DEBUG, fmt, ## __VA_ARGS__)
 #define dev_info(dev, fmt, ...)    \
     dev_print(dev, XENLOG_INFO, fmt, ## __VA_ARGS__)
 #define dev_warn(dev, fmt, ...)    \
@@ -130,6 +132,24 @@ struct ipmmu_features {
     unsigned int imuctr_ttsel_mask;
 };
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+struct ipmmu_reg_ctx {
+    unsigned int imttlbr0;
+    unsigned int imttubr0;
+    unsigned int imttbcr;
+    unsigned int imctr;
+};
+
+struct ipmmu_vmsa_backup {
+    struct device *dev;
+    unsigned int *utlbs_val;
+    unsigned int *asids_val;
+    struct list_head list;
+};
+
+#endif
+
 /* Root/Cache IPMMU device's information */
 struct ipmmu_vmsa_device {
     struct device *dev;
@@ -142,6 +162,9 @@ struct ipmmu_vmsa_device {
     struct ipmmu_vmsa_domain *domains[IPMMU_CTX_MAX];
     unsigned int utlb_refcount[IPMMU_UTLB_MAX];
     const struct ipmmu_features *features;
+#ifdef CONFIG_SYSTEM_SUSPEND
+    struct ipmmu_reg_ctx *reg_backup[IPMMU_CTX_MAX];
+#endif
 };
 
 /*
@@ -547,6 +570,245 @@ static void ipmmu_domain_free_context(struct ipmmu_vmsa_device *mmu,
     spin_unlock_irqrestore(&mmu->lock, flags);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+static DEFINE_SPINLOCK(ipmmu_devices_backup_lock);
+static LIST_HEAD(ipmmu_devices_backup);
+
+static struct ipmmu_reg_ctx root_pgtable[IPMMU_CTX_MAX];
+
+static uint32_t ipmmu_imuasid_read(struct ipmmu_vmsa_device *mmu,
+                                   unsigned int utlb)
+{
+    return ipmmu_read(mmu, ipmmu_utlb_reg(mmu, IMUASID(utlb)));
+}
+
+static void ipmmu_utlbs_backup(struct ipmmu_vmsa_device *mmu)
+{
+    struct ipmmu_vmsa_backup *backup_data;
+
+    dev_dbg(mmu->dev, "Handle micro-TLBs backup\n");
+
+    spin_lock(&ipmmu_devices_backup_lock);
+
+    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
+    {
+        struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(backup_data->dev);
+        unsigned int i;
+
+        if ( to_ipmmu(backup_data->dev) != mmu )
+            continue;
+
+        for ( i = 0; i < fwspec->num_ids; i++ )
+        {
+            unsigned int utlb = fwspec->ids[i];
+
+            backup_data->asids_val[i] = ipmmu_imuasid_read(mmu, utlb);
+            backup_data->utlbs_val[i] = ipmmu_imuctr_read(mmu, utlb);
+        }
+    }
+
+    spin_unlock(&ipmmu_devices_backup_lock);
+}
+
+static void ipmmu_utlbs_restore(struct ipmmu_vmsa_device *mmu)
+{
+    struct ipmmu_vmsa_backup *backup_data;
+
+    dev_dbg(mmu->dev, "Handle micro-TLBs restore\n");
+
+    spin_lock(&ipmmu_devices_backup_lock);
+
+    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
+    {
+        struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(backup_data->dev);
+        unsigned int i;
+
+        if ( to_ipmmu(backup_data->dev) != mmu )
+            continue;
+
+        for ( i = 0; i < fwspec->num_ids; i++ )
+        {
+            unsigned int utlb = fwspec->ids[i];
+
+            ipmmu_imuasid_write(mmu, utlb, backup_data->asids_val[i]);
+            ipmmu_imuctr_write(mmu, utlb, backup_data->utlbs_val[i]);
+        }
+    }
+
+    spin_unlock(&ipmmu_devices_backup_lock);
+}
+
+static void ipmmu_domain_backup_context(struct ipmmu_vmsa_domain *domain)
+{
+    struct ipmmu_vmsa_device *mmu = domain->mmu->root;
+    struct ipmmu_reg_ctx *regs = mmu->reg_backup[domain->context_id];
+
+    dev_dbg(mmu->dev, "Handle domain context %u backup\n", domain->context_id);
+
+    regs->imttlbr0 = ipmmu_ctx_read_root(domain, IMTTLBR0);
+    regs->imttubr0 = ipmmu_ctx_read_root(domain, IMTTUBR0);
+    regs->imttbcr  = ipmmu_ctx_read_root(domain, IMTTBCR);
+    regs->imctr    = ipmmu_ctx_read_root(domain, IMCTR);
+}
+
+static void ipmmu_domain_restore_context(struct ipmmu_vmsa_domain *domain)
+{
+    struct ipmmu_vmsa_device *mmu = domain->mmu->root;
+    struct ipmmu_reg_ctx *regs  = mmu->reg_backup[domain->context_id];
+
+    dev_dbg(mmu->dev, "Handle domain context %u restore\n", domain->context_id);
+
+    ipmmu_ctx_write_root(domain, IMTTLBR0, regs->imttlbr0);
+    ipmmu_ctx_write_root(domain, IMTTUBR0, regs->imttubr0);
+    ipmmu_ctx_write_root(domain, IMTTBCR,  regs->imttbcr);
+    ipmmu_ctx_write_all(domain,  IMCTR,    regs->imctr | IMCTR_FLUSH);
+}
+
+/*
+ * Xen: Unlike Linux implementation, Xen uses a single driver instance
+ * for handling all IPMMUs. There is no framework for ipmmu_suspend/resume
+ * callbacks to be invoked for each IPMMU device. So, we need to iterate
+ * through all registered IPMMUs performing required actions.
+ *
+ * Also take care of restoring special settings, such as translation
+ * table format, etc.
+ */
+static int __must_check ipmmu_suspend(void)
+{
+    struct ipmmu_vmsa_device *mmu;
+
+    if ( !iommu_enabled )
+        return 0;
+
+    printk(XENLOG_DEBUG "ipmmu: Suspending...\n");
+
+    spin_lock(&ipmmu_devices_lock);
+
+    list_for_each_entry( mmu, &ipmmu_devices, list )
+    {
+        if ( ipmmu_is_root(mmu) )
+        {
+            unsigned int i;
+
+            for ( i = 0; i < mmu->num_ctx; i++ )
+            {
+                if ( !mmu->domains[i] )
+                    continue;
+                ipmmu_domain_backup_context(mmu->domains[i]);
+            }
+        }
+        else
+            ipmmu_utlbs_backup(mmu);
+    }
+
+    spin_unlock(&ipmmu_devices_lock);
+
+    return 0;
+}
+
+static void ipmmu_resume(void)
+{
+    struct ipmmu_vmsa_device *mmu;
+
+    if ( !iommu_enabled )
+        return;
+
+    printk(XENLOG_DEBUG "ipmmu: Resuming...\n");
+
+    spin_lock(&ipmmu_devices_lock);
+
+    list_for_each_entry( mmu, &ipmmu_devices, list )
+    {
+        uint32_t reg;
+
+        /* Do not use security group function */
+        reg = IMSCTLR + mmu->features->control_offset_base;
+        ipmmu_write(mmu, reg, ipmmu_read(mmu, reg) & ~IMSCTLR_USE_SECGRP);
+
+        if ( ipmmu_is_root(mmu) )
+        {
+            unsigned int i;
+
+            /* Use stage 2 translation table format */
+            reg = IMSAUXCTLR + mmu->features->control_offset_base;
+            ipmmu_write(mmu, reg, ipmmu_read(mmu, reg) | IMSAUXCTLR_S2PTE);
+
+            for ( i = 0; i < mmu->num_ctx; i++ )
+            {
+                if ( !mmu->domains[i] )
+                    continue;
+                ipmmu_domain_restore_context(mmu->domains[i]);
+            }
+        }
+        else
+            ipmmu_utlbs_restore(mmu);
+    }
+
+    spin_unlock(&ipmmu_devices_lock);
+}
+
+static int ipmmu_alloc_ctx_suspend(struct device *dev)
+{
+    struct ipmmu_vmsa_backup *backup_data;
+    unsigned int *utlbs_val, *asids_val;
+    struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
+
+    utlbs_val = xzalloc_array(unsigned int, fwspec->num_ids);
+    if ( !utlbs_val )
+        return -ENOMEM;
+
+    asids_val = xzalloc_array(unsigned int, fwspec->num_ids);
+    if ( !asids_val )
+    {
+        xfree(utlbs_val);
+        return -ENOMEM;
+    }
+
+    backup_data = xzalloc(struct ipmmu_vmsa_backup);
+    if ( !backup_data )
+    {
+        xfree(utlbs_val);
+        xfree(asids_val);
+        return -ENOMEM;
+    }
+
+    backup_data->dev = dev;
+    backup_data->utlbs_val = utlbs_val;
+    backup_data->asids_val = asids_val;
+
+    spin_lock(&ipmmu_devices_backup_lock);
+    list_add(&backup_data->list, &ipmmu_devices_backup);
+    spin_unlock(&ipmmu_devices_backup_lock);
+
+    return 0;
+}
+
+#ifdef CONFIG_HAS_PCI
+static void ipmmu_free_ctx_suspend(struct device *dev)
+{
+    struct ipmmu_vmsa_backup *backup_data, *tmp;
+
+    spin_lock(&ipmmu_devices_backup_lock);
+
+    list_for_each_entry_safe( backup_data, tmp, &ipmmu_devices_backup, list )
+    {
+        if ( backup_data->dev == dev )
+        {
+            list_del(&backup_data->list);
+            xfree(backup_data->utlbs_val);
+            xfree(backup_data->asids_val);
+            xfree(backup_data);
+            break;
+        }
+    }
+
+    spin_unlock(&ipmmu_devices_backup_lock);
+}
+#endif /* CONFIG_HAS_PCI */
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
 {
     uint64_t ttbr;
@@ -559,6 +821,9 @@ static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
         return ret;
 
     domain->context_id = ret;
+#ifdef CONFIG_SYSTEM_SUSPEND
+    domain->mmu->root->reg_backup[ret] = &root_pgtable[ret];
+#endif
 
     /*
      * TTBR0
@@ -615,6 +880,9 @@ static void ipmmu_domain_destroy_context(struct ipmmu_vmsa_domain *domain)
     ipmmu_ctx_write_root(domain, IMCTR, IMCTR_FLUSH);
     ipmmu_tlb_sync(domain);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+    domain->mmu->root->reg_backup[domain->context_id] = NULL;
+#endif
     ipmmu_domain_free_context(domain->mmu->root, domain->context_id);
 }
 
@@ -1338,10 +1606,11 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
     struct iommu_fwspec *fwspec;
 
 #ifdef CONFIG_HAS_PCI
+    int ret;
+
     if ( dev_is_pci(dev) )
     {
         struct pci_dev *pdev = dev_to_pci(dev);
-        int ret;
 
         if ( devfn != pdev->devfn )
             return 0;
@@ -1358,17 +1627,24 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
     if ( !to_ipmmu(dev) )
         return -ENODEV;
 
-    if ( !dev_is_pci(dev) )
+    if ( !dev_is_pci(dev) && dt_device_is_protected(dev_to_dt(dev)) )
     {
-        if ( dt_device_is_protected(dev_to_dt(dev)) )
-        {
-            dev_err(dev, "Already added to IPMMU\n");
-            return -EEXIST;
-        }
+        dev_err(dev, "Already added to IPMMU\n");
+        return -EEXIST;
+    }
 
-        /* Let Xen know that the master device is protected by an IOMMU. */
-        dt_device_set_protected(dev_to_dt(dev));
+#ifdef CONFIG_SYSTEM_SUSPEND
+    if ( ipmmu_alloc_ctx_suspend(dev) )
+    {
+        dev_err(dev, "Failed to allocate context for suspend\n");
+        return -ENOMEM;
     }
+#endif
+
+    /* Let Xen know that the master device is protected by an IOMMU. */
+    if ( !dev_is_pci(dev) )
+        dt_device_set_protected(dev_to_dt(dev));
+
 #ifdef CONFIG_HAS_PCI
     if ( dev_is_pci(dev) )
     {
@@ -1377,26 +1653,28 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
         struct pci_host_bridge *bridge;
         struct iommu_fwspec *fwspec_bridge;
         unsigned int utlb_osid0 = 0;
-        int ret;
 
         bridge = pci_find_host_bridge(pdev->seg, pdev->bus);
         if ( !bridge )
         {
             dev_err(dev, "Failed to find host bridge\n");
-            return -ENODEV;
+            ret = -ENODEV;
+            goto free_suspend_ctx;
         }
 
         fwspec_bridge = dev_iommu_fwspec_get(dt_to_dev(bridge->dt_node));
         if ( fwspec_bridge->num_ids < 1 )
         {
             dev_err(dev, "Failed to find host bridge uTLB\n");
-            return -ENXIO;
+            ret = -ENXIO;
+            goto free_suspend_ctx;
         }
 
         if ( fwspec->num_ids < 1 )
         {
             dev_err(dev, "Failed to find uTLB");
-            return -ENXIO;
+            ret = -ENXIO;
+            goto free_suspend_ctx;
         }
 
         rcar4_pcie_osid_regs_init(bridge);
@@ -1405,7 +1683,7 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
         if ( ret < 0 )
         {
             dev_err(dev, "No unused OSID regs\n");
-            return ret;
+            goto free_suspend_ctx;
         }
         reg_id = ret;
 
@@ -1420,7 +1698,7 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
         {
             rcar4_pcie_osid_bdf_clear(bridge, reg_id);
             rcar4_pcie_osid_reg_free(bridge, reg_id);
-            return ret;
+            goto free_suspend_ctx;
         }
     }
 #endif
@@ -1429,6 +1707,13 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
              dev_name(fwspec->iommu_dev), fwspec->num_ids);
 
     return 0;
+#ifdef CONFIG_HAS_PCI
+ free_suspend_ctx:
+#ifdef CONFIG_SYSTEM_SUSPEND
+    ipmmu_free_ctx_suspend(dev);
+#endif
+    return ret;
+#endif
 }
 
 static int ipmmu_iommu_domain_init(struct domain *d)
@@ -1490,6 +1775,10 @@ static const struct iommu_ops ipmmu_iommu_ops =
     .unmap_page      = arm_iommu_unmap_page,
     .dt_xlate        = ipmmu_dt_xlate,
     .add_device      = ipmmu_add_device,
+#ifdef CONFIG_SYSTEM_SUSPEND
+    .suspend         = ipmmu_suspend,
+    .resume          = ipmmu_resume,
+#endif
 };
 
 static __init int ipmmu_init(struct dt_device_node *node, const void *data)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:09:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:09:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307275.1578998 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqc6-00062Q-DI; Tue, 12 May 2026 17:09:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307275.1578998; Tue, 12 May 2026 17:09:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqc6-00062I-AP; Tue, 12 May 2026 17:09:46 +0000
Received: by outflank-mailman (input) for mailman id 1307275;
 Tue, 12 May 2026 17:09:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMqc4-0005cE-PB
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:09:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMqc4-00AZDT-64
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:09:44 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ece-e002-0a2a0a5209dd-0a2a4503d7ac-8
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:44 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ed8-672d-0a2a45030019-d155802ac93e-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:44 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-488b8bc6bc9so36427515e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:09:44 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8cccf90sm10838845e9.0.2026.05.12.10.09.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 10:09:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778605783; x=1779210583; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b8mWSeU/iVgrcW8itSSelUy+85kdfMSQifdUDUET2DY=;
        b=LTPP27S+Io1RZQjOui0W3qz/JnNkHBqUjIVY3wmDAlNzQfCa8vrYp7qL/fbtTIc7OQ
         hJpFIsh2h5sMTl/qwY8UAzcwT2Kpg3yrNxFtWFNIV+nCb+LwmGImTpkGGCOCTQ0XHyoQ
         O/A3/ro7kMd3J6WHhLKBSD8jpv6TQD0pudvISbCvlhl2A+ae3Bh5uTEJ3NYavcU3FcT8
         wNgSXYroYryWf49b1i8T4mQmmmz9/dxA4YOIyiRvmpqEJLHv5gSYyGwz3qUlnT+89gDh
         Re+0wJdz+1zFqw8TVBKk48nyyWHYsXVxF5sesObe1xJ9XkdpilXZjx1QSP22P5D11F/T
         y4cA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778605783; x=1779210583;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=b8mWSeU/iVgrcW8itSSelUy+85kdfMSQifdUDUET2DY=;
        b=E10hxMnlujv+pfw7jv8DZjTaWMhSMJXWj7/1I2lo/dOYC6A49CUEBpVDF57K1vnaKv
         cqm3HOZ4lASRg5sjc4OXe4ZenQzLvOMOH/g91MnmZ4aQHQ/HWU+Ipvm9BFrUW0ofq/Kt
         i/fdtBEgO+rnS4B/+m5s5oGll/mFlLHZrRUxm36VXLnrhpmvqaIzA7aqTnxzis57nqPb
         tQbdVEeKVAJsjteJaUrACO6GvF7wyl4vKTttgKA6J7gsgr3z/AD2DAaDBXLf/YdPfidv
         dBXZH6VDtFbgcN4iH6HJYnlxdskEg66ELZCRlz4WGalodUT7Oi5RKkwkCczcZt1Mdbq1
         jqew==
X-Gm-Message-State: AOJu0YyUG4zpY0blEwCqNL+qBeZ4/U5LDaelOzGlfD5Y5uCwgcdBOgaC
	H15l6fdFYN7bIKeorzrwNFeugdKVSeI8pihQzBUdJtIvxYhcLIiboKdWl5rsgg==
X-Gm-Gg: Acq92OG/R6lU0U+iucan/6yYLwJY678mJXxXDHRzumHdDiSlaNNoQJSacgSrjQZ0ApS
	/CRArLJOBn7d6YEt55beP2zSebZQmHFk372dbTtmFldHbEfAyeSeKLLlXwWeTg5Vi5XDFmM5tqY
	NbW5wcQPHy1rvrtC3rd92r3E86NbZVqD/YWv2cTSFtvCxaCNX8xRMXHrF0kqpW5IfNamLZpojdb
	Jhoq4UTrQZVhEgovWCb071++vmZ9UEc3/YSB0tFwq5EVmK/cZnfDUloDSkb+Ixg0FwvBMuEq7bL
	sjpyfDoNwufLkNuSDfs5rEofr5eqIsysTS6dSd/1q6gfi7K8SA6wOjIJeJS+Rf423uOfO1E9jIN
	C8oo9WhbmXHbk6XwFOaihbcnV3oa5lxPCFv8LnjU8PNzzAMh0IppvtTCw3eWzmwsE2KIJCpQ+b2
	s8z+thUo5EnuwcxZrj32xmvke9Og==
X-Received: by 2002:a05:600c:c166:b0:48a:93f8:dd02 with SMTP id 5b1f17b1804b1-48e8fe7227cmr61787625e9.14.1778605783038;
        Tue, 12 May 2026 10:09:43 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v9 02/13] xen/arm: gic-v2: Implement GIC suspend/resume functions
Date: Tue, 12 May 2026 20:07:09 +0300
Message-ID: <613c8d67a66924ea62c2436dac14708d939f6784.1778605274.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1778605274.git.mykola_kvach@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1778605784-37141938-096D7344/0/0
X-purgate-type: clean
X-purgate-size: 11669

From: Mirela Simonovic <mirela.simonovic@aggios.com>

System suspend may lead to a state where GIC would be powered down.
Therefore, Xen should save/restore the context of GIC on suspend/resume.

Note that the context consists of states of registers which are
controlled by the hypervisor. Other GIC registers which are accessible
by guests are saved/restored on context switch.

Transient physical SGI pending state (GICD_CPENDSGIRn/GICD_SPENDSGIRn)
is intentionally excluded. CPU-interface active-priority state is also
not restored across suspend/resume. Xen reaches the final suspend path
at a quiescent point, so there is no active-priority execution context
to replay after resume. Enforce this with a runtime check after
disabling the CPU interface: if any implemented GICC_APRn word is still
non-zero, restore GICC_CTLR and abort suspend with -EBUSY.

This does not apply to distributor active state. With GICv2 EOImode==1,
EOIR only drops the interrupt priority; final deactivation is a separate
step. For guest-routed interrupts, Xen can have already EOIed the physical
IRQ while deactivation is still pending on the vGIC/GICV path. Therefore
GICD_ISACTIVER is preserved as architectural in-flight interrupt state.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V9:
- Skip saving/restoring GICD_ITARGETSR0..7 because SGI/PPI target
  registers hold no state (read-only on MP, RAZ/WI on UP).
- Add a runtime GICC_APRn quiescence check after disabling the CPU
  interface, and restore GICC_CTLR before returning -EBUSY.

Changes in V8:
- disable cpu interface + distributor before suspend
- change 0xffffffff to GENMASK;
- cosmetic changes;

Changes in V7:
- Allocate one contiguous memory block for the GICv2 dist suspend context.
- gicv2_resume() no longer unconditionally re-enables the distributor/CPU
  interface; it now writes back the saved CTLR values as-is.
- gicv2_alloc_context() now returns 0 on success and panics on failure,
  since suspend context allocation is not recoverable.
---
 xen/arch/arm/gic-v2.c          | 181 +++++++++++++++++++++++++++++++++
 xen/arch/arm/gic.c             |  29 ++++++
 xen/arch/arm/include/asm/gic.h |  12 +++
 3 files changed, 222 insertions(+)

diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
index 43a379fdda..1970c4feb9 100644
--- a/xen/arch/arm/gic-v2.c
+++ b/xen/arch/arm/gic-v2.c
@@ -1108,6 +1108,178 @@ static int gicv2_iomem_deny_access(struct domain *d)
     return iomem_deny_access(d, mfn, mfn + nr - 1);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+/* This struct represents block of 32 IRQs */
+struct irq_block {
+    uint32_t icfgr[2]; /* 2 registers of 16 IRQs each */
+    uint32_t ipriorityr[8];
+    uint32_t isenabler;
+    uint32_t isactiver;
+    uint32_t itargetsr[8];
+};
+
+/* GICv2 registers to be saved/restored on system suspend/resume */
+struct gicv2_context {
+    /* GICC context */
+    struct cpu_ctx {
+        uint32_t ctlr;
+        uint32_t pmr;
+        uint32_t bpr;
+    } cpu;
+
+    /* GICD context */
+    struct dist_ctx {
+        uint32_t ctlr;
+        /* Includes banked SGI/PPI state for the boot CPU. */
+        struct irq_block *irqs;
+    } dist;
+};
+
+static struct gicv2_context gic_ctx;
+
+#define GICV2_NR_APRS 4
+
+static int gicv2_suspend(void)
+{
+    unsigned int i, blocks = DIV_ROUND_UP(gicv2_info.nr_lines, 32);
+
+    /* Save GICC_CTLR configuration. */
+    gic_ctx.cpu.ctlr = readl_gicc(GICC_CTLR);
+
+    /* Quiesce the GIC CPU interface before suspend. */
+    gicv2_cpu_disable();
+
+    /*
+     * Check the active-priority state for the group Xen drives through the
+     * CPU interface. GICC_CTL_ENABLE enables Group 0 without SecurityExtn and
+     * Group 1 in Xen's Non-secure view with SecurityExtn, and in both cases
+     * the relevant state is visible through GICC_APRn. Only zero/non-zero
+     * matters here, not the implementation-defined bit layout.
+     */
+    for ( i = 0; i < GICV2_NR_APRS; i++ )
+    {
+        uint32_t apr = readl_gicc(GICC_APR + i * 4);
+
+        if ( !apr )
+            continue;
+
+        printk(XENLOG_ERR "GICv2: suspend aborted: GICC_APR%u=%#08x\n", i, apr);
+        writel_gicc(gic_ctx.cpu.ctlr, GICC_CTLR);
+        return -EBUSY;
+    }
+
+    /* Save GICD configuration */
+    gic_ctx.dist.ctlr = readl_gicd(GICD_CTLR);
+    writel_gicd(0, GICD_CTLR);
+
+    gic_ctx.cpu.pmr = readl_gicc(GICC_PMR);
+    gic_ctx.cpu.bpr = readl_gicc(GICC_BPR);
+
+    for ( i = 0; i < blocks; i++ )
+    {
+        struct irq_block *irqs = gic_ctx.dist.irqs + i;
+        size_t j, off = i * sizeof(irqs->isenabler);
+
+        irqs->isenabler = readl_gicd(GICD_ISENABLER + off);
+
+        /*
+         * Save distributor active state as part of the hypervisor-owned
+         * physical interrupt state. In GICv2 EOImode==1, EOIR only drops the
+         * priority; final deactivation is separate. For guest-routed
+         * interrupts, Xen may have EOIed the physical IRQ while the guest/vGIC
+         * side still owns the deactivate step. Therefore GICD_ISACTIVER can
+         * legitimately remain set even though transient SGI pending state and
+         * CPU-interface active-priority state are expected to be quiesced here.
+         */
+        irqs->isactiver = readl_gicd(GICD_ISACTIVER + off);
+
+        off = i * sizeof(irqs->ipriorityr);
+        for ( j = 0; j < ARRAY_SIZE(irqs->ipriorityr); j++ )
+            irqs->ipriorityr[j] = readl_gicd(GICD_IPRIORITYR + off + j * 4);
+
+        /*
+         * GICD_ITARGETSR0..7 cover SGIs/PPIs and hold no state to save:
+         * they are read-only on multiprocessor implementations and RAZ/WI
+         * on uniprocessor implementations.
+         */
+        if ( i )
+        {
+            off = i * sizeof(irqs->itargetsr);
+            for ( j = 0; j < ARRAY_SIZE(irqs->itargetsr); j++ )
+                irqs->itargetsr[j] = readl_gicd(GICD_ITARGETSR + off + j * 4);
+        }
+
+        off = i * sizeof(irqs->icfgr);
+        for ( j = 0; j < ARRAY_SIZE(irqs->icfgr); j++ )
+            irqs->icfgr[j] = readl_gicd(GICD_ICFGR + off + j * 4);
+    }
+
+    return 0;
+}
+
+static void gicv2_resume(void)
+{
+    unsigned int i, blocks = DIV_ROUND_UP(gicv2_info.nr_lines, 32);
+
+    gicv2_cpu_disable();
+    /* Disable distributor */
+    writel_gicd(0, GICD_CTLR);
+
+    for ( i = 0; i < blocks; i++ )
+    {
+        struct irq_block *irqs = gic_ctx.dist.irqs + i;
+        size_t j, off = i * sizeof(irqs->isenabler);
+
+        writel_gicd(GENMASK(31, 0), GICD_ICENABLER + off);
+        writel_gicd(irqs->isenabler, GICD_ISENABLER + off);
+
+        writel_gicd(GENMASK(31, 0), GICD_ICACTIVER + off);
+        writel_gicd(irqs->isactiver, GICD_ISACTIVER + off);
+
+        off = i * sizeof(irqs->ipriorityr);
+        for ( j = 0; j < ARRAY_SIZE(irqs->ipriorityr); j++ )
+            writel_gicd(irqs->ipriorityr[j], GICD_IPRIORITYR + off + j * 4);
+
+        /*
+         * GICD_ITARGETSR0..7 cover SGIs/PPIs and hold no state to save:
+         * they are read-only on multiprocessor implementations and RAZ/WI
+         * on uniprocessor implementations.
+         */
+        if ( i )
+        {
+            off = i * sizeof(irqs->itargetsr);
+            for ( j = 0; j < ARRAY_SIZE(irqs->itargetsr); j++ )
+                writel_gicd(irqs->itargetsr[j], GICD_ITARGETSR + off + j * 4);
+        }
+
+        off = i * sizeof(irqs->icfgr);
+        for ( j = 0; j < ARRAY_SIZE(irqs->icfgr); j++ )
+            writel_gicd(irqs->icfgr[j], GICD_ICFGR + off + j * 4);
+    }
+
+    /* Make sure all registers are restored and enable distributor */
+    writel_gicd(gic_ctx.dist.ctlr, GICD_CTLR);
+
+    /* Restore GIC CPU interface configuration */
+    writel_gicc(gic_ctx.cpu.pmr, GICC_PMR);
+    writel_gicc(gic_ctx.cpu.bpr, GICC_BPR);
+
+    /* Enable GIC CPU interface */
+    writel_gicc(gic_ctx.cpu.ctlr, GICC_CTLR);
+}
+
+static void __init gicv2_alloc_context(void)
+{
+    uint32_t blocks = DIV_ROUND_UP(gicv2_info.nr_lines, 32);
+
+    gic_ctx.dist.irqs = xzalloc_array(struct irq_block, blocks);
+    if ( !gic_ctx.dist.irqs )
+        panic("Failed to allocate memory for GICv2 suspend context\n");
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 #ifdef CONFIG_ACPI
 static unsigned long gicv2_get_hwdom_extra_madt_size(const struct domain *d)
 {
@@ -1312,6 +1484,11 @@ static int __init gicv2_init(void)
 
     spin_unlock(&gicv2.lock);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+    /* Allocate memory to be used for saving GIC context during the suspend */
+    gicv2_alloc_context();
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
     return 0;
 }
 
@@ -1355,6 +1532,10 @@ static const struct gic_hw_operations gicv2_ops = {
     .map_hwdom_extra_mappings = gicv2_map_hwdom_extra_mappings,
     .iomem_deny_access   = gicv2_iomem_deny_access,
     .do_LPI              = gicv2_do_LPI,
+#ifdef CONFIG_SYSTEM_SUSPEND
+    .suspend             = gicv2_suspend,
+    .resume              = gicv2_resume,
+#endif /* CONFIG_SYSTEM_SUSPEND */
 };
 
 /* Set up the GIC */
diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index ee75258fc3..7727ffed5a 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -432,6 +432,35 @@ int gic_iomem_deny_access(struct domain *d)
     return gic_hw_ops->iomem_deny_access(d);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+int gic_suspend(void)
+{
+    /* Must be called by boot CPU#0 with interrupts disabled */
+    ASSERT(!local_irq_is_enabled());
+    ASSERT(!smp_processor_id());
+
+    if ( !gic_hw_ops->suspend || !gic_hw_ops->resume )
+        return -ENOSYS;
+
+    return gic_hw_ops->suspend();
+}
+
+void gic_resume(void)
+{
+    /*
+     * Must be called by boot CPU#0 with interrupts disabled after gic_suspend
+     * has returned successfully.
+     */
+    ASSERT(!local_irq_is_enabled());
+    ASSERT(!smp_processor_id());
+    ASSERT(gic_hw_ops->resume);
+
+    gic_hw_ops->resume();
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 static int cpu_gic_callback(struct notifier_block *nfb,
                             unsigned long action,
                             void *hcpu)
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.h
index ff22dea40d..fbf0d69edd 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -301,6 +301,12 @@ extern int gicv_setup(struct domain *d);
 extern void gic_save_state(struct vcpu *v);
 extern void gic_restore_state(struct vcpu *v);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+/* Suspend/resume */
+extern int gic_suspend(void);
+extern void gic_resume(void);
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 /* SGI (AKA IPIs) */
 enum gic_sgi {
     GIC_SGI_EVENT_CHECK,
@@ -444,6 +450,12 @@ struct gic_hw_operations {
     int (*iomem_deny_access)(struct domain *d);
     /* Handle LPIs, which require special handling */
     void (*do_LPI)(unsigned int lpi);
+#ifdef CONFIG_SYSTEM_SUSPEND
+    /* Save GIC configuration due to the system suspend */
+    int (*suspend)(void);
+    /* Restore GIC configuration due to the system resume */
+    void (*resume)(void);
+#endif /* CONFIG_SYSTEM_SUSPEND */
 };
 
 extern const struct gic_hw_operations *gic_hw_ops;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:09:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:09:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307273.1578980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqc4-0005cM-Rz; Tue, 12 May 2026 17:09:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307273.1578980; Tue, 12 May 2026 17:09:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqc4-0005cF-OV; Tue, 12 May 2026 17:09:44 +0000
Received: by outflank-mailman (input) for mailman id 1307273;
 Tue, 12 May 2026 17:09:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMqc2-0005Ur-KU
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:09:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMqc2-007Rte-1E
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:09:42 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ecd-2eae-0a2a0a5409dd-0a2a450cc83c-20
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:41 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ed5-62f1-0a2a450c0019-d155802ca4e3-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:41 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-4891f625344so54025605e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:09:41 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8cccf90sm10838845e9.0.2026.05.12.10.09.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 10:09:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778605781; x=1779210581; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=lkAVF3rUIUDvK/pY3FL3dGuLtmv4jNNUzUEEqbDZZd4=;
        b=XsQrhaJNR2quaPSnsm6vTg24R52rvxYUrlsalkC+cR1iqRKezwRtKAw1KYNbOBnwc3
         AL4UQMRD+jUzXWRcT6BcSflpgN4/KVTrT+ZhYrI+Kh2SLcIB0Ei6aVURKpOPQ4kEn3n2
         xJVHGc1XZZ8Sw3ziK8BVrAtOysW4OLIdnhsfbeReh5sh41ZBfP4M2/9iumQHgWKBuzEI
         i95uCu9sKGsuqyVJOjtB9d0t6kebUG/dW+NFeu+TKm1QLFzGbBfelxef+pfMYr/7AYeD
         bh1kVXHd6+NBHzyxmYHFq4gYk/0BPYU8IFxd0kvHJXJqc/WGGXJjdRmKBoT/CNY4oLDM
         7L6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778605781; x=1779210581;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lkAVF3rUIUDvK/pY3FL3dGuLtmv4jNNUzUEEqbDZZd4=;
        b=MTMsYwyO2G674oVbQEO27TiGqkC436jF+v5Jtr/C5CIuV4A2C9e/OXYwim5AQYkVXE
         mCjC+VFn3Srdywd+fxouIrmLZO+ad8pTpsjfpGnZHt+wSFXf/eB1jGF3qMDqOqpD8QaZ
         hddmrceJoBQHtQoymp7RdHjUVnYdLCpfMzevSormh7/jmaZaRB62IOOq9RdmCuec64RA
         4F/pfM0GIqv8GEE6kBU10pTqU9bvjui7JLuViHZMYoxxCBIrIbFyJde+w1SFhBLcvGWC
         HwrBvpJtN54uOd381QJXLubpsqI2wPzHpIsYRLPRoxUvGBxWpfH3LxO+FtBJNsXonr7E
         nWNw==
X-Gm-Message-State: AOJu0Yz7kK+zGwo/kGYo6bzGDQDUkA/3gXtIa7+u2zYEcro08B3V40dZ
	0yfxon7JjS7/XyvASzpq8LjCiG+EwUq+33ds5SEB1jvOJZCIT3rGOSODX9qrbQ==
X-Gm-Gg: Acq92OFgorAv8qDYo98E6KKB177zZKfv0r6KfKg/ghmI/6HYPPNBd7rFB1fad19OQDt
	aSxwbYS0Y+0OP/hp1bDttAMfWntC44GVajR13mM4rB9i8up9BNrZcnS11Z/5JLqOCDMUMUnWW6E
	gRJWKr1SAVO8YgM9bhEa2sbWDuaN9mStuBsf8dvNWeJqFp+pA23hjaOpiJNyhipvd1ys18MiTsi
	biILDazm9R85KPAKNot4p9d3SSaLHSJ0lkbOP1n2wOdkjrt7eUz4pXiuIll1as6HzU28RknEkRn
	973pHaHP1uehwcJ+eBNbvcuMgs3FmOJfiknKC21CrRJcyO3OXfnta42+33zB+2lQXP7Jq/jVXk5
	pNpZuSFG5UClS1LX0Mvp/il6ejPQE+KSHypUkH7EuDDcfnPKVUqiSBpexMd+BtWtDPFi0JJ1kiP
	nAg3hYSqvlUgtv1/pq59CYwv0TQw==
X-Received: by 2002:a05:600c:3488:b0:488:aa33:dc8f with SMTP id 5b1f17b1804b1-48e8decf95amr67028955e9.0.1778605780569;
        Tue, 12 May 2026 10:09:40 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Rahul Singh <rahul.singh@arm.com>
Subject: [PATCH v9 00/13] Add initial Xen Suspend-to-RAM support on ARM64
Date: Tue, 12 May 2026 20:07:07 +0300
Message-ID: <cover.1778605274.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1778605781-E2975CF5-D2B20BCB/0/0
X-purgate-type: clean
X-purgate-size: 6549

From: Mykola Kvach <mykola_kvach@epam.com>

This is part 2 of the ARM Xen system suspend/resume patch series, based
on earlier work by Mirela Simonovic and Mykyta Poturai.

Part 1, covering guest suspend functionality, is already in mainline.

NOTE: Host-wide suspend/resume support is guarded by CONFIG_SYSTEM_SUSPEND,
which can currently only be selected when UNSUPPORTED is set, and thus the
host suspend backend is neither enabled by default nor built in supported
configurations. The separate HAS_HWDOM_SYSTEM_SUSPEND policy bit only changes
how ARM treats SHUTDOWN_suspend from the hardware domain; it does not enable
the host-wide suspend backend by itself.

This version is ported to Xen master and includes extensive improvements
based on reviewer feedback. The patch series restructures code to improve
robustness, maintainability, and implements system Suspend-to-RAM support
on ARM64 hardware/control domains.

Key updates in this series:
 - Introduced architecture-specific suspend/resume infrastructure
 - Integrated GICv2/GICv3 suspend and resume, including memory-backed context
   save/restore with error handling
 - Added time and IRQ suspend/resume hooks, ensuring correct timer/interrupt
   state across suspend cycles
 - Implemented proper PSCI SYSTEM_SUSPEND invocation and version checks
 - Improved state management and recovery in error cases during suspend/resume
 - Added support for IPMMU-VMSA/SMMUv3 context save/restore
 - Added support for GICv3 eSPI registers context save/restore
 - Added support for ITS registers context save/restore
---

TODOs:
 - Enable "xl suspend" support on ARM
 - Add suspend/resume CI test for ARM (QEMU if feasible)
 - PCI suspend ?
---

Detailed changelogs can be found in each patch.

Changes in v9:
- Split the control-domain SYSTEM_SUSPEND flow so host availability,
  runtime blockers and domain-readiness checks are handled separately from
  the host suspend backend.
- Gate vPSCI SYSTEM_SUSPEND on cached host PSCI support and Xen runtime
  suspend blockers, and log firmware support during initialization.
- Fold the arm64 resume trampoline into the CPU context save/restore patch
  and use asm-offsets-generated RESUME_CTX_* definitions for the assembly
  save/restore path.
- Tighten the GICv2/GICv3/ITS/IPMMU/SMMUv3 suspend/resume paths based on
  review feedback, including state-save/restore fixes and safer failure
  handling.
- Reorder the host suspend/resume phases so timer and GIC state are
  handled with local IRQs disabled and restored before console/IOMMU
  resume.

Changes in v8:
- Rebased to latest master and refreshed the series accordingly.
- Added a new GICv3 patch to tolerate retained redistributor LPI state
  across CPU_OFF/CPU_ON.
- GICv2 suspend now disables the CPU interface and distributor before
  saving state.
- GICv3 suspend/resume fixes the redistributor base used for LPI state.
- ITS and SMMUv3 suspend/resume paths were tightened, with safer
  restore/rollback handling and stricter fatal-error handling.
- System suspend now checks that all domains are already in
  SHUTDOWN_suspend before proceeding, and renames the hardware-domain
  suspend capability/helper for clearer semantics.
- Fixed alignment/cleanup issues in the low-level suspend/resume code.

Changes in v7:
- Timer helper renamed/clarified; virtual/hyper/phys handling documented.
- GICv2 uses one context block; restore saved CTLR; panic on alloc failure.
- GICv3/eSPI/ITS always suspend/resume; restore LPI/eSPI; rdist timeout.
- IPMMU suspend context allocated before PCI setup.
- System suspend: control domain drives host suspend.
- Dropped v6 IRQ descriptor restore patches; use setup_irq and re-register
  local IRQs on resume instead.

For earlier changelogs, please refer to the previous cover letters.

Mirela Simonovic (5):
  xen/arm: Add suspend and resume timer helpers
  xen/arm: gic-v2: Implement GIC suspend/resume functions
  xen/arm64: Save/restore CPU context across SYSTEM_SUSPEND
  xen/arm: Implement PSCI SYSTEM_SUSPEND call (host interface)
  xen/arm: Add host system suspend backend

Mykola Kvach (7):
  xen/arm: gic-v3: tolerate retained redistributor LPI state across
    CPU_OFF
  xen/arm: gic-v3: Implement GICv3 suspend/resume functions
  xen/arm: gic-v3: add ITS suspend/resume support
  xen/arm: tee: keep init_tee_secondary() for hotplug and resume
  xen/arm: ffa: fix notification SRI across CPU hotplug/suspend
  xen/arm: smmu-v3: add suspend/resume handlers
  xen/arm: Add vPSCI SYSTEM_SUSPEND policy

Oleksandr Tyshchenko (1):
  iommu/ipmmu-vmsa: Implement suspend/resume callbacks

 xen/arch/arm/Kconfig                     |   2 +
 xen/arch/arm/Makefile                    |   1 +
 xen/arch/arm/arm64/asm-offsets.c         |  20 ++
 xen/arch/arm/arm64/head.S                | 118 +++++++
 xen/arch/arm/gic-v2.c                    | 181 +++++++++++
 xen/arch/arm/gic-v3-its.c                | 133 +++++++-
 xen/arch/arm/gic-v3-lpi.c                |  80 ++++-
 xen/arch/arm/gic-v3.c                    | 394 ++++++++++++++++++++++-
 xen/arch/arm/gic.c                       |  35 ++
 xen/arch/arm/include/asm/gic.h           |  16 +
 xen/arch/arm/include/asm/gic_v3_defs.h   |   1 +
 xen/arch/arm/include/asm/gic_v3_its.h    |  23 ++
 xen/arch/arm/include/asm/mm.h            |   2 +
 xen/arch/arm/include/asm/psci.h          |   4 +
 xen/arch/arm/include/asm/suspend.h       |  36 +++
 xen/arch/arm/include/asm/time.h          |   5 +
 xen/arch/arm/mmu/smpboot.c               |   2 +-
 xen/arch/arm/psci.c                      |  38 ++-
 xen/arch/arm/suspend.c                   | 194 +++++++++++
 xen/arch/arm/tee/ffa_notif.c             |  63 +++-
 xen/arch/arm/tee/tee.c                   |   2 +-
 xen/arch/arm/time.c                      |  44 ++-
 xen/arch/arm/vpsci.c                     | 120 ++++++-
 xen/common/Kconfig                       |   3 +
 xen/common/domain.c                      |   7 +-
 xen/drivers/char/serial.c                |  12 +
 xen/drivers/passthrough/arm/iommu.c      |   4 +
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 319 +++++++++++++++++-
 xen/drivers/passthrough/arm/smmu-v3.c    | 182 ++++++++---
 xen/include/xen/list.h                   |  14 +
 xen/include/xen/serial.h                 |   1 +
 xen/include/xen/suspend.h                |   2 +
 32 files changed, 1951 insertions(+), 107 deletions(-)
 create mode 100644 xen/arch/arm/suspend.c

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:09:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:09:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307285.1579062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcH-0007rp-HP; Tue, 12 May 2026 17:09:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307285.1579062; Tue, 12 May 2026 17:09:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcH-0007rR-8A; Tue, 12 May 2026 17:09:57 +0000
Received: by outflank-mailman (input) for mailman id 1307285;
 Tue, 12 May 2026 17:09:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMqcF-0007Om-10
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:09:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMqcE-007RzZ-D4
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:09:54 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035eb4-2eae-0a2a0a5409dd-0a2a45059d4c-28
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:54 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ee2-aaa8-0a2a45050019-d1558030b83b-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:54 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-488a88aeec9so64771745e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:09:54 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8cccf90sm10838845e9.0.2026.05.12.10.09.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 10:09:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778605793; x=1779210593; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mHxx4CKtYsSgQQ7LLyGnfT6MKbRYsbWPPOV7hCJys74=;
        b=Uv3lsVoKxgfWPyp0kXZNKz1M3ujv/+qaJDZWW2yowkB9UbYEkQwRZntmgDC77CxcwR
         4RFP4FfNnQuzCETgvG1lUj1KqUGS5uYds3EuLAfE4fRL6C5uQCaYLiQ6vqEgOzrUW/1i
         v9T5dbrZ5NSp6Pto8T7iW+0bswxZWFqcdw64dsLiawg9GPgabsaZuXqd3+yuzKk894Up
         YlDeqV5HyC/0tbH06kPCS2KoJDfk9/sndr91rdzyISaIh7wzYHre5e6Np46W1aMxcN3+
         lm2bWO6uO7mg3PaMEMojn5kqz6ESB8fdj/IaBATT/JNhNR4bdlp4YB6+naUEqU6GJvs1
         yMkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778605793; x=1779210593;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=mHxx4CKtYsSgQQ7LLyGnfT6MKbRYsbWPPOV7hCJys74=;
        b=kQTGLUVNmiPZ6yu9f8tM9G2sd6bU79K5gZD4zNTXbYHPtiin9cCxmAI/9yF/SHMtYa
         LLVMBQCMlSc9Lo4hnCGbsubXeZFOY+W0csB9teo67BxEVJLh5f1RkqaZOwXzpuUK3Jb6
         GezoBDq/odmyNYMOS3meBA9VfvrVyCKvHsCTstCjLC3p6Ui5JGasPdPmW1WR+gaZ0mnN
         xEGIvysNijtomEEwZhq/ZB2PR3Fv6bhPajsSdnXEZ3KQ8CDLr+GcXDSFEquMjKtXXSYK
         LodJ5m5yXxLp8ScM9NSZXHXFT0alHBC4OTsDmz85tzd+UhQcSuDel5NhfPo8axxvDV/N
         092A==
X-Gm-Message-State: AOJu0Yy2uoiPDFlYZ+M37GM+YntUj/SGjyB++kyfk4Syk67ptBQTAJ3n
	Qpy625WYZHIX4qwELMoJH67byoAoG34rmNcZV6KSDjhcqiJ00EDAt88UdIqSOg==
X-Gm-Gg: Acq92OFB5DgZtFQJh0yFi+OIOprpa5Dljjdgt0jRd/ospwpMWvJs2nsZxmwnRmrI3Eu
	FW95G1dIC6lw44wAPYZ5fGyZ/BfMX4jw9GwU1sw7ZZ7OyWW5wHdm2GaFCUKSplp6c4S98RNH80e
	srKIA1U6Rvg52D+vCecZtORulLti2Vjo3QZ0NM9fsbRumYDqpETw167NP3ie/s8t053pp3n143Z
	9P53eUgW+jCWFEkJSIgZ8uUQYYM2cw1xuil/osf2fqE8FxjSMtas2gG7Mshj2+0aCgsQw/SFRS6
	EZNfq2YXN4FdPeG/eMCFkRM2Nu07KzgTNZcfvdnTsZ+HIRrszC0Nn6L2Rjwi9/60ZHTzg+Zcuhw
	GQv9ROpBQA0zFAOAh8q1OL5DSJ9/zYtCkkSVtR0K7Cr7bWOxWgWmDo+wcg84QAJiclkCWZkpZEk
	4eYmisZ/Tq9rH/yze/PCWcB8hMIw==
X-Received: by 2002:a05:600c:5306:b0:48e:526e:101a with SMTP id 5b1f17b1804b1-48e706c781emr247211505e9.12.1778605793481;
        Tue, 12 May 2026 10:09:53 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Rahul Singh <rahul.singh@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Pranjal Shrivastava <praan@google.com>
Subject: [PATCH v9 09/13] xen/arm: smmu-v3: add suspend/resume handlers
Date: Tue, 12 May 2026 20:07:16 +0300
Message-ID: <fae03d32bb817d56a20b0437e433bd124f89ac88.1778605274.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1778605274.git.mykola_kvach@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1778605794-E1B9E443-16BCACED/0/0
X-purgate-type: clean
X-purgate-size: 10168

Add system suspend/resume callbacks for the Arm SMMUv3 driver.

During suspend, configure GBPA to abort incoming transactions, disable the
translation interface while keeping CMDQ enabled, issue CMD_SYNC to ensure
all previously issued commands have completed, then disable the SMMU.

Resume uses arm_smmu_device_reset() to reprogram the SMMU and re-enable
translation and interrupt generation.

The IRQ setup split follows the approach from Pranjal Shrivastava's Linux
arm-smmu-v3 runtime/system sleep series: IRQ handlers are requested once
during probe, while reset/resume only restores SMMU hardware state and
re-enables IRQ_CTRL.

Only the pieces relevant to Xen's currently supported SMMUv3 path are
ported here. Xen documents SMMUv3 MSI and PCI ATS as unsupported and not
compiled/tested, so this patch does not restore SMMU MSI IRQ_CFGn registers
nor reinitialize ATS/PRI endpoints. If those paths become usable,
suspend/resume will need corresponding MSI restore and ATS/PRI
quiesce/reinit steps.

Link: https://lore.kernel.org/r/20260414194702.1229094-1-praan@google.com/
Based-on-patch-by: Pranjal Shrivastava <praan@google.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V9:
- Use CMD_SYNC in suspend instead of polling CMDQ_CONS, so the suspend
  path waits for command completion rather than only command consumption.
- Document that arm_smmu_setup_irqs() is probe-only and that future Xen
  SMMUv3 MSI support will need to restore SMMU IRQ_CFGn registers on
  resume.
- Restore the reference to Pranjal's Linux runtime/system sleep series and
  clarify that MSI/ATS/PRI resume handling is outside the supported Xen
  path.
- Prefix the subject with xen/arm for consistency with the rest of the
  Arm suspend/resume series.

Changes in V8:
- Honor ARM_SMMU_FEAT_SEV when draining the CMDQ during suspend, matching
  the existing runtime CMD_SYNC path.
- Fold the suspend rollback reset path into a helper and rename the error
  reporting to describe suspend rollback rather than resume.
- Treat SMMU reset failure during resume as fatal instead of logging and
  continuing with a potentially unusable IOMMU.
- cosmetic changes
---
 xen/drivers/passthrough/arm/smmu-v3.c | 178 ++++++++++++++++++++------
 1 file changed, 142 insertions(+), 36 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
index bf153227db..82c8ead979 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -1814,8 +1814,7 @@ static int arm_smmu_write_reg_sync(struct arm_smmu_device *smmu, u32 val,
 }
 
 /* GBPA is "special" */
-static int __init arm_smmu_update_gbpa(struct arm_smmu_device *smmu,
-                                       u32 set, u32 clr)
+static int arm_smmu_update_gbpa(struct arm_smmu_device *smmu, u32 set, u32 clr)
 {
 	int ret;
 	u32 reg, __iomem *gbpa = smmu->base + ARM_SMMU_GBPA;
@@ -1995,10 +1994,35 @@ err_free_evtq_irq:
 	return ret;
 }
 
+static int arm_smmu_enable_irqs(struct arm_smmu_device *smmu)
+{
+	int ret;
+	u32 irqen_flags = IRQ_CTRL_EVTQ_IRQEN | IRQ_CTRL_GERROR_IRQEN;
+
+	if ( smmu->features & ARM_SMMU_FEAT_PRI )
+		irqen_flags |= IRQ_CTRL_PRIQ_IRQEN;
+
+	/* Enable interrupt generation on the SMMU */
+	ret = arm_smmu_write_reg_sync(smmu, irqen_flags,
+				      ARM_SMMU_IRQ_CTRL, ARM_SMMU_IRQ_CTRLACK);
+	if ( ret )
+	{
+		dev_warn(smmu->dev, "failed to enable irqs\n");
+		return ret;
+	}
+
+	return 0;
+}
+
+/*
+ * Probe-time only: request host IRQs and, when available, program the SMMU's
+ * MSI doorbells. Resume does not restore the SMMU *_IRQ_CFGn MSI registers,
+ * so any host suspend support must treat the active MSI IRQ path as
+ * unsupported until that restore path exists.
+ */
 static int __init arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
 {
 	int ret, irq;
-	u32 irqen_flags = IRQ_CTRL_EVTQ_IRQEN | IRQ_CTRL_GERROR_IRQEN;
 
 	/* Disable IRQs first */
 	ret = arm_smmu_write_reg_sync(smmu, 0, ARM_SMMU_IRQ_CTRL,
@@ -2028,22 +2052,7 @@ static int __init arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
 		}
 	}
 
-	if (smmu->features & ARM_SMMU_FEAT_PRI)
-		irqen_flags |= IRQ_CTRL_PRIQ_IRQEN;
-
-	/* Enable interrupt generation on the SMMU */
-	ret = arm_smmu_write_reg_sync(smmu, irqen_flags,
-				      ARM_SMMU_IRQ_CTRL, ARM_SMMU_IRQ_CTRLACK);
-	if (ret) {
-		dev_warn(smmu->dev, "failed to enable irqs\n");
-		goto err_free_irqs;
-	}
-
 	return 0;
-
-err_free_irqs:
-	arm_smmu_free_irqs(smmu);
-	return ret;
 }
 
 static int arm_smmu_device_disable(struct arm_smmu_device *smmu)
@@ -2057,7 +2066,7 @@ static int arm_smmu_device_disable(struct arm_smmu_device *smmu)
 	return ret;
 }
 
-static int __init arm_smmu_device_reset(struct arm_smmu_device *smmu)
+static int arm_smmu_device_reset(struct arm_smmu_device *smmu)
 {
 	int ret;
 	u32 reg, enables;
@@ -2163,17 +2172,9 @@ static int __init arm_smmu_device_reset(struct arm_smmu_device *smmu)
 		}
 	}
 
-	ret = arm_smmu_setup_irqs(smmu);
-	if (ret) {
-		dev_err(smmu->dev, "failed to setup irqs\n");
+	ret = arm_smmu_enable_irqs(smmu);
+	if ( ret )
 		return ret;
-	}
-
-	/* Initialize tasklets for threaded IRQs*/
-	tasklet_init(&smmu->evtq_irq_tasklet, arm_smmu_evtq_tasklet, smmu);
-	tasklet_init(&smmu->priq_irq_tasklet, arm_smmu_priq_tasklet, smmu);
-	tasklet_init(&smmu->combined_irq_tasklet, arm_smmu_combined_irq_tasklet,
-				 smmu);
 
 	/* Enable the SMMU interface, or ensure bypass */
 	if (disable_bypass) {
@@ -2181,20 +2182,16 @@ static int __init arm_smmu_device_reset(struct arm_smmu_device *smmu)
 	} else {
 		ret = arm_smmu_update_gbpa(smmu, 0, GBPA_ABORT);
 		if (ret)
-			goto err_free_irqs;
+			return ret;
 	}
 	ret = arm_smmu_write_reg_sync(smmu, enables, ARM_SMMU_CR0,
 				      ARM_SMMU_CR0ACK);
 	if (ret) {
 		dev_err(smmu->dev, "failed to enable SMMU interface\n");
-		goto err_free_irqs;
+		return ret;
 	}
 
 	return 0;
-
-err_free_irqs:
-	arm_smmu_free_irqs(smmu);
-	return ret;
 }
 
 static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu)
@@ -2558,10 +2555,23 @@ static int __init arm_smmu_device_probe(struct platform_device *pdev)
 	if (ret)
 		goto out_free;
 
+	ret = arm_smmu_setup_irqs(smmu);
+	if ( ret )
+	{
+		dev_err(smmu->dev, "failed to setup irqs\n");
+		goto out_free;
+	}
+
+	/* Initialize tasklets for threaded IRQs*/
+	tasklet_init(&smmu->evtq_irq_tasklet, arm_smmu_evtq_tasklet, smmu);
+	tasklet_init(&smmu->priq_irq_tasklet, arm_smmu_priq_tasklet, smmu);
+	tasklet_init(&smmu->combined_irq_tasklet, arm_smmu_combined_irq_tasklet,
+				smmu);
+
 	/* Reset the device */
 	ret = arm_smmu_device_reset(smmu);
 	if (ret)
-		goto out_free;
+		goto out_free_irqs;
 
 	/*
 	 * Keep a list of all probed devices. This will be used to query
@@ -2575,6 +2585,8 @@ static int __init arm_smmu_device_probe(struct platform_device *pdev)
 
 	return 0;
 
+out_free_irqs:
+	arm_smmu_free_irqs(smmu);
 
 out_free:
 	arm_smmu_free_structures(smmu);
@@ -2855,6 +2867,96 @@ static void arm_smmu_iommu_xen_domain_teardown(struct domain *d)
 	xfree(xen_domain);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+static void arm_smmu_reset_for_suspend_rollback(struct arm_smmu_device *smmu)
+{
+	int ret = arm_smmu_device_reset(smmu);
+
+	if ( ret )
+		dev_err(smmu->dev, "Failed to reset during suspend rollback: %d\n",
+				ret);
+}
+
+static int arm_smmu_suspend(void)
+{
+	struct arm_smmu_device *smmu;
+	int ret = 0;
+
+	list_for_each_entry(smmu, &arm_smmu_devices, devices)
+	{
+		/* Abort all transactions before disable to avoid spurious bypass */
+		ret = arm_smmu_update_gbpa(smmu, GBPA_ABORT, 0);
+		if ( ret )
+			goto fail;
+
+		/* Disable the SMMU via CR0.EN and all queues except CMDQ */
+		ret = arm_smmu_write_reg_sync(smmu, CR0_CMDQEN, ARM_SMMU_CR0,
+					ARM_SMMU_CR0ACK);
+		if ( ret )
+		{
+			dev_err(smmu->dev, "Timed-out while disabling smmu\n");
+			goto fail;
+		}
+
+		/*
+		 * At this point the translation interface is disabled and the
+		 * SMMU won't access translation/config structures, even
+		 * speculatively, as per the IHI0070 spec (section 6.3.9.6).
+		 * CMDQ is still enabled so that a CMD_SYNC can complete any
+		 * previously issued commands.
+		 */
+
+		/* Ensure all previously issued commands have completed. */
+		ret = arm_smmu_cmdq_issue_sync(smmu);
+		if ( ret )
+		{
+			dev_err(smmu->dev, "Timed-out waiting for pending commands\n");
+			goto fail;
+		}
+
+		/* Disable everything */
+		ret = arm_smmu_device_disable(smmu);
+		if ( ret )
+			goto fail;
+
+		dev_dbg(smmu->dev, "Suspended smmu\n");
+	}
+
+	return 0;
+
+ fail:
+	/* Reset the device that failed as well as any already-suspended ones. */
+	arm_smmu_reset_for_suspend_rollback(smmu);
+
+	list_for_each_entry_continue_reverse(smmu, &arm_smmu_devices, devices)
+		arm_smmu_reset_for_suspend_rollback(smmu);
+
+	return ret;
+}
+
+static void arm_smmu_resume(void)
+{
+	int ret;
+	struct arm_smmu_device *smmu;
+
+	list_for_each_entry(smmu, &arm_smmu_devices, devices)
+	{
+		dev_dbg(smmu->dev, "Resuming device\n");
+
+		/*
+		 * The reset will re-initialize all the base addresses, queues,
+		 * prod and cons maintained within struct arm_smmu_device as well as
+		 * re-enable the interrupts.
+		 */
+		ret = arm_smmu_device_reset(smmu);
+		if ( ret )
+			panic("SMMUv3: %s: Failed to reset during resume: %d\n",
+			      dev_name(smmu->dev), ret);
+	}
+}
+#endif
+
 static const struct iommu_ops arm_smmu_iommu_ops = {
 	.page_sizes		= PAGE_SIZE_4K,
 	.init			= arm_smmu_iommu_xen_domain_init,
@@ -2867,6 +2969,10 @@ static const struct iommu_ops arm_smmu_iommu_ops = {
 	.unmap_page		= arm_iommu_unmap_page,
 	.dt_xlate		= arm_smmu_dt_xlate,
 	.add_device		= arm_smmu_add_device,
+#ifdef CONFIG_SYSTEM_SUSPEND
+	.suspend		= arm_smmu_suspend,
+	.resume			= arm_smmu_resume,
+#endif
 };
 
 static __init int arm_smmu_dt_init(struct dt_device_node *dev,
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:09:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:09:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307286.1579066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcI-0007xC-76; Tue, 12 May 2026 17:09:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307286.1579066; Tue, 12 May 2026 17:09:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcH-0007vj-Qu; Tue, 12 May 2026 17:09:57 +0000
Received: by outflank-mailman (input) for mailman id 1307286;
 Tue, 12 May 2026 17:09:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMqcG-0007mm-Ix
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:09:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMqcF-00AdLt-Vm
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:09:55 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ecd-bab6-0a2a0a5309dd-0a2a4506e5aa-36
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:55 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ee3-7371-0a2a45060019-d155802fbd5a-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:55 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-488b0046078so48589675e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:09:55 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8cccf90sm10838845e9.0.2026.05.12.10.09.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 10:09:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778605795; x=1779210595; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lkhNyEzobDpYCgF/TpDVG4OQjxYfp1uqUAAZRreqhtU=;
        b=HIjHo2uRftMJxoWplko2MV09aZb+TgQQDwXc/9X8jOIBHNH+emuV09INzgmvNX0kWf
         gwVplwoTi0hvlTUKN+PwB7wJHMQqkESi5ftc48LyKXfqIgrDeaQsewfSXe+20cztL2WM
         gDJ91vUEYhbRGTIScsLG1AWpokGnkf/mQbAPzBqnlI+pS+Bo/dirE1XyPmUrLcJtKUyo
         9G1lktAWbBU0CUdxKQKHNFIByR7qLVYdF1NtumGRL6M9ZsAqXFpV89nOUHX1fO6jOStq
         BUUOATjAc8I7TBYc/JJpT/43CPgz4uDj4ynsdRy1u08NIFQIzgaLd/xEWuha8MQJwU+j
         qbmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778605795; x=1779210595;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=lkhNyEzobDpYCgF/TpDVG4OQjxYfp1uqUAAZRreqhtU=;
        b=BPsQ6zxy/aLh+M8bOGOekgKfLUynOC/ToEgfF+0/y+1r23iQz+JHJgBbuuji2Xt7ff
         fz0gG4bhzgMS/IXdB6O6MbQSggOuBlrMjuDEPzeGHxpl3RFAMWmtK/H2nq6ONWccg5Mn
         8KXQ8rbdgk4t2/C3T6Lg6gDRtCXEgpZMfAfyjqjoedfw2Dmkq77fXSu00vQMImU0A01r
         6x0udCAKn4xzNrrxiRbTUJf8+fxpE5xiAzHzXSijtr08y4xFouSKyIy8SCxf426qc9/C
         7uHiyYGxI+MvmuuzVehAXapAEozxOsc6QR6xcxxXsjzANjUNGNuklRKVGcZy8u50NfiY
         GnrA==
X-Gm-Message-State: AOJu0YwnzLC1ypjX8naGysuUwsI4la7ULlOXMkjpF7XImAMGuOp1rZDY
	InL0mEcdMtgrcWcnTw4zUjmodabLWs9CCx6U1xwpt4eCZbBo0R+bxlowmWDBAQ==
X-Gm-Gg: Acq92OGObMgOjuE+Wct8qwdrJBgPcddU6k+/Tu4wkCdEg56HGdtSK5bTsDmQtO3RJjl
	+pzQqqAl8xVpriARLEmxka02PNvMsLDRg/Lu9hIiPL0eLcnzEK1AREzJA3NvNKNaMb6KxL1ddkm
	uiSKbfJS3SHt2H/OuYWqO6Hnq2d8onA12cR7UE9KyftnKp0xC5lEAP37B2JJEghrkg6LmPY+LpF
	QA6MMNKQNJH/uW2lRomzX/iBDTxPa3XToiVcv1uiJlip5tnvB28M1URf3aV7xOFr0/Yvyh117Qh
	iZDYJnz8pGywViSWOq1f/sHQe6JtVSuCBfVApj8jK83QGG6LsHqS2kyTJfSH1U4Cr6jiMIUiL7u
	V970glNf4TaLHiD+e4dw1tw9M/N59j9Wm9P3IR6sCdJeHGBjELKjsVTSVnbGLowpMxhwY/pCpnS
	3AHsLJ+s7E8twPiu0afXkhz1mVgw==
X-Received: by 2002:a05:600c:5248:b0:48a:906a:9050 with SMTP id 5b1f17b1804b1-48e7069175fmr245499865e9.10.1778605794944;
        Tue, 12 May 2026 10:09:54 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v9 10/13] xen/arm64: Save/restore CPU context across SYSTEM_SUSPEND
Date: Tue, 12 May 2026 20:07:17 +0300
Message-ID: <46bbc9e008a65dd86fb2b368e4751eb7d2014afa.1778605274.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1778605274.git.mykola_kvach@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1778605795-85361D75-333E9410/0/0
X-purgate-type: clean
X-purgate-size: 11024

From: Mirela Simonovic <mirela.simonovic@aggios.com>

On wakeup from PSCI SYSTEM_SUSPEND, Xen re-enters EL2 with the MMU and
data cache disabled. The resume path must first switch back to Xen's
runtime page tables before it can access the saved CPU context using
virtual addresses.

Add an arm64 hyp_resume trampoline that reuses enable_secondary_cpu_mm()
to enable the data cache and MMU, switch to init_ttbr, and resume in the
runtime virtual mapping. The trampoline then restores the saved CPU
general-purpose and system-control register context.

prepare_resume_ctx() must be invoked just before the PSCI system suspend
call is issued to the platform firmware. It saves the current CPU context
and returns a non-zero value so that the caller enters the physical
SYSTEM_SUSPEND call.

On resume, hyp_resume restores the saved context, including the saved link
register. Control therefore returns to the place where prepare_resume_ctx()
was called. To avoid re-entering the suspend path, the restored path sees
prepare_resume_ctx() return zero.

The assembly save/restore code uses offsets generated by asm-offsets.c
from struct resume_cpu_context, keeping the assembly memory accesses in
sync with the C structure layout.

Support for ARM32 is not implemented. Instead, compilation fails with a
build-time error if suspend is enabled for ARM32.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v9:
- Drop the misleading prepare_resume_ctx() pointer argument and make both
  save/restore paths use the global resume_cpu_context.
- Squash the arm64 resume trampoline into the context save/restore patch.
- Document in code that hyp_resume relies on PSCI initial-state rules.
- Use generic platform firmware wording instead of ATF-specific wording.
- Rename the saved context type/storage to resume_cpu_context and rely on
  implicit zero-initialization for the file-scope object.
- Use asm-offsets.c-generated RESUME_CTX_* offsets to keep the assembly
  save/restore code in sync with struct resume_cpu_context.

Changes in v8:
- Fix alignments in code.

Changes in v7:
- No functional changes, just moved commit.
---
 xen/arch/arm/Makefile              |   1 +
 xen/arch/arm/arm64/asm-offsets.c   |  20 +++++
 xen/arch/arm/arm64/head.S          | 118 +++++++++++++++++++++++++++++
 xen/arch/arm/include/asm/suspend.h |  26 +++++++
 xen/arch/arm/suspend.c             |  14 ++++
 5 files changed, 179 insertions(+)
 create mode 100644 xen/arch/arm/suspend.c

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 982c6c396a..c97df7f3a0 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -51,6 +51,7 @@ obj-y += setup.o
 obj-y += shutdown.o
 obj-y += smp.o
 obj-y += smpboot.o
+obj-$(CONFIG_SYSTEM_SUSPEND) += suspend.o
 obj-$(CONFIG_SYSCTL) += sysctl.o
 obj-y += time.o
 obj-y += traps.o
diff --git a/xen/arch/arm/arm64/asm-offsets.c b/xen/arch/arm/arm64/asm-offsets.c
index 38a3894a3b..4da5fff584 100644
--- a/xen/arch/arm/arm64/asm-offsets.c
+++ b/xen/arch/arm/arm64/asm-offsets.c
@@ -13,6 +13,7 @@
 #include <asm/mm.h>
 #include <asm/setup.h>
 #include <asm/smccc.h>
+#include <asm/suspend.h>
 
 #define DEFINE(_sym, _val)                                                 \
     asm volatile ( "\n.ascii\"==>#define " #_sym " %0 /* " #_val " */<==\""\
@@ -57,6 +58,25 @@ void __dummy__(void)
    OFFSET(INITINFO_stack, struct init_info, stack);
    BLANK();
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+   OFFSET(RESUME_CTX_X19, struct resume_cpu_context, callee_regs[0]);
+   OFFSET(RESUME_CTX_X21, struct resume_cpu_context, callee_regs[2]);
+   OFFSET(RESUME_CTX_X23, struct resume_cpu_context, callee_regs[4]);
+   OFFSET(RESUME_CTX_X25, struct resume_cpu_context, callee_regs[6]);
+   OFFSET(RESUME_CTX_X27, struct resume_cpu_context, callee_regs[8]);
+   OFFSET(RESUME_CTX_X29, struct resume_cpu_context, callee_regs[10]);
+   OFFSET(RESUME_CTX_SP, struct resume_cpu_context, sp);
+   OFFSET(RESUME_CTX_VBAR_EL2, struct resume_cpu_context, vbar_el2);
+   OFFSET(RESUME_CTX_VTCR_EL2, struct resume_cpu_context, vtcr_el2);
+   OFFSET(RESUME_CTX_VTTBR_EL2, struct resume_cpu_context, vttbr_el2);
+   OFFSET(RESUME_CTX_TPIDR_EL2, struct resume_cpu_context, tpidr_el2);
+   OFFSET(RESUME_CTX_MDCR_EL2, struct resume_cpu_context, mdcr_el2);
+   OFFSET(RESUME_CTX_HSTR_EL2, struct resume_cpu_context, hstr_el2);
+   OFFSET(RESUME_CTX_CPTR_EL2, struct resume_cpu_context, cptr_el2);
+   OFFSET(RESUME_CTX_HCR_EL2, struct resume_cpu_context, hcr_el2);
+   BLANK();
+#endif
+
    OFFSET(SMCCC_RES_a0, struct arm_smccc_res, a0);
    OFFSET(SMCCC_RES_a2, struct arm_smccc_res, a2);
    OFFSET(ARM_SMCCC_1_2_REGS_X0_OFFS, struct arm_smccc_1_2_regs, a0);
diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
index 72c7b24498..512a3c35b2 100644
--- a/xen/arch/arm/arm64/head.S
+++ b/xen/arch/arm/arm64/head.S
@@ -561,6 +561,124 @@ END(efi_xen_start)
 
 #endif /* CONFIG_ARM_EFI */
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+/*
+ * int prepare_resume_ctx(void)
+ *
+ * CPU context saved here will be restored on resume in hyp_resume function.
+ * prepare_resume_ctx shall return a non-zero value. Upon restoring context
+ * hyp_resume shall return value zero instead. From C code that invokes
+ * prepare_resume_ctx, the return value is interpreted to determine whether
+ * the context is saved (prepare_resume_ctx) or restored (hyp_resume).
+ */
+FUNC(prepare_resume_ctx)
+        ldr   x0, =resume_cpu_context
+
+        /* Store callee-saved registers */
+        stp   x19, x20, [x0, #RESUME_CTX_X19]
+        stp   x21, x22, [x0, #RESUME_CTX_X21]
+        stp   x23, x24, [x0, #RESUME_CTX_X23]
+        stp   x25, x26, [x0, #RESUME_CTX_X25]
+        stp   x27, x28, [x0, #RESUME_CTX_X27]
+        stp   x29, lr, [x0, #RESUME_CTX_X29]
+
+        /* Store stack-pointer */
+        mov   x2, sp
+        str   x2, [x0, #RESUME_CTX_SP]
+
+        /* Store system control registers */
+        mrs   x2, VBAR_EL2
+        str   x2, [x0, #RESUME_CTX_VBAR_EL2]
+        mrs   x2, VTCR_EL2
+        str   x2, [x0, #RESUME_CTX_VTCR_EL2]
+        mrs   x2, VTTBR_EL2
+        str   x2, [x0, #RESUME_CTX_VTTBR_EL2]
+        mrs   x2, TPIDR_EL2
+        str   x2, [x0, #RESUME_CTX_TPIDR_EL2]
+        mrs   x2, MDCR_EL2
+        str   x2, [x0, #RESUME_CTX_MDCR_EL2]
+        mrs   x2, HSTR_EL2
+        str   x2, [x0, #RESUME_CTX_HSTR_EL2]
+        mrs   x2, CPTR_EL2
+        str   x2, [x0, #RESUME_CTX_CPTR_EL2]
+        mrs   x2, HCR_EL2
+        str   x2, [x0, #RESUME_CTX_HCR_EL2]
+
+        /* prepare_resume_ctx must return a non-zero value */
+        mov   x0, #1
+        ret
+END(prepare_resume_ctx)
+
+FUNC(hyp_resume)
+        /*
+         * PSCI states that SYSTEM_SUSPEND follows the CPU_SUSPEND initial
+         * state rules, so PSCI-compliant firmware must enter the return
+         * exception level with DAIF masked.
+         */
+
+        /* Initialize the UART if earlyprintk has been enabled. */
+#ifdef CONFIG_EARLY_PRINTK
+        bl    init_uart
+#endif
+        PRINT_ID("- Xen resuming -\r\n")
+
+        bl    check_cpu_mode
+        bl    cpu_init
+
+        ldr   x0, =start
+        adr   x20, start             /* x20 := paddr (start) */
+        sub   x20, x20, x0           /* x20 := phys-offset */
+        ldr   lr, =mmu_resumed
+        b     enable_secondary_cpu_mm
+
+mmu_resumed:
+        /* Now we can access the saved context, so restore it here. */
+        ldr   x0, =resume_cpu_context
+
+        /* Restore callee-saved registers */
+        ldp   x19, x20, [x0, #RESUME_CTX_X19]
+        ldp   x21, x22, [x0, #RESUME_CTX_X21]
+        ldp   x23, x24, [x0, #RESUME_CTX_X23]
+        ldp   x25, x26, [x0, #RESUME_CTX_X25]
+        ldp   x27, x28, [x0, #RESUME_CTX_X27]
+        ldp   x29, lr, [x0, #RESUME_CTX_X29]
+
+        /* Restore stack pointer */
+        ldr   x2, [x0, #RESUME_CTX_SP]
+        mov   sp, x2
+
+        /* Restore system control registers */
+        ldr   x2, [x0, #RESUME_CTX_VBAR_EL2]
+        msr   VBAR_EL2, x2
+        ldr   x2, [x0, #RESUME_CTX_VTCR_EL2]
+        msr   VTCR_EL2, x2
+        ldr   x2, [x0, #RESUME_CTX_VTTBR_EL2]
+        msr   VTTBR_EL2, x2
+        ldr   x2, [x0, #RESUME_CTX_TPIDR_EL2]
+        msr   TPIDR_EL2, x2
+        ldr   x2, [x0, #RESUME_CTX_MDCR_EL2]
+        msr   MDCR_EL2, x2
+        ldr   x2, [x0, #RESUME_CTX_HSTR_EL2]
+        msr   HSTR_EL2, x2
+        ldr   x2, [x0, #RESUME_CTX_CPTR_EL2]
+        msr   CPTR_EL2, x2
+        ldr   x2, [x0, #RESUME_CTX_HCR_EL2]
+        msr   HCR_EL2, x2
+        isb
+
+        /*
+         * Since context is restored return from this function will appear
+         * as return from prepare_resume_ctx. To distinguish a return from
+         * prepare_resume_ctx which is called upon finalizing the suspend,
+         * as opposed to return from this function which executes on resume,
+         * we need to return zero value here.
+         */
+        mov   x0, #0
+        ret
+END(hyp_resume)
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 /*
  * Local variables:
  * mode: ASM
diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
index 31a98a1f1b..2d9fc331fc 100644
--- a/xen/arch/arm/include/asm/suspend.h
+++ b/xen/arch/arm/include/asm/suspend.h
@@ -3,6 +3,8 @@
 #ifndef ARM_SUSPEND_H
 #define ARM_SUSPEND_H
 
+#include <xen/types.h>
+
 struct domain;
 struct vcpu;
 struct vcpu_guest_context;
@@ -14,6 +16,30 @@ struct resume_info {
 
 void arch_domain_resume(struct domain *d);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+#ifdef CONFIG_ARM_64
+struct resume_cpu_context {
+    register_t callee_regs[12];
+    register_t sp;
+    register_t vbar_el2;
+    register_t vtcr_el2;
+    register_t vttbr_el2;
+    register_t tpidr_el2;
+    register_t mdcr_el2;
+    register_t hstr_el2;
+    register_t cptr_el2;
+    register_t hcr_el2;
+} __aligned(16);
+#else
+#error "Define resume_cpu_context structure for arm32"
+#endif
+
+extern struct resume_cpu_context resume_cpu_context;
+
+int prepare_resume_ctx(void);
+void hyp_resume(void);
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 #endif /* ARM_SUSPEND_H */
 
 /*
diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
new file mode 100644
index 0000000000..6ea4a0f9cc
--- /dev/null
+++ b/xen/arch/arm/suspend.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <asm/suspend.h>
+
+struct resume_cpu_context resume_cpu_context;
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:09:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:09:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307288.1579071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcJ-00088e-1d; Tue, 12 May 2026 17:09:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307288.1579071; Tue, 12 May 2026 17:09:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcI-00085R-P0; Tue, 12 May 2026 17:09:58 +0000
Received: by outflank-mailman (input) for mailman id 1307288;
 Tue, 12 May 2026 17:09:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMqcH-0007rj-GK
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:09:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMqcG-00AZHt-TV
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:09:56 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035eca-e002-0a2a0a5209dd-0a2a45078240-46
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:56 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ee4-229c-0a2a45070019-d1558030e133-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:56 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-488a8ca4aadso53138125e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:09:56 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8cccf90sm10838845e9.0.2026.05.12.10.09.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 10:09:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778605796; x=1779210596; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=d9w5Gr7BSqTZeQ8Yv/eCImtGJXonwn8c1SkX4Mjo9nY=;
        b=szPHLkmU0w+MO57eAG6IE6mDg0vJISqQMTT5hNI90Ct/2KHjOGUMQ6GPRIYml4NkHr
         RQm0evuGWfckv8u/uCFk2ENb7FUfyhOAh/XrDjAHBY31DI7o5ZL2JrAw2wJLKuSxPuGJ
         XT56pt2NYPIR+BIjx+/JPPLjfKQ2SGvBy/3UiUfsSn8CSs+McwAAYB+rGj2aEcwY+Isn
         6OXvo/2aBwHY6TRTx/hGEbiTrkw95bxue79UOFZ0pYPo5lI1zUk/iPkmGPmUe2M1/mo5
         1HO/T9HdaEVKU/yezcKFK8GqVLigLBWLR7WOkIpBWCTzX2iVSjVZn3+BSUxk7gHnHNRO
         AMDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778605796; x=1779210596;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=d9w5Gr7BSqTZeQ8Yv/eCImtGJXonwn8c1SkX4Mjo9nY=;
        b=DLRtppArV9t1MkYKhkOnw2yeGyLVrV366X/t9e+lpHZ4CYmzRj2y+lEpt+NwNaAE/z
         Xcr/BbQx8QEe3Y2mn81nwkEGrSdIceBimqgjf/FPVsr+YBgvAimjdjwXLhdP7e4XLfVF
         afPCo9qkW6eDowCnda4MZShea6n8+yyUSPiE84ln1ddZNYVDrr548T4A4WlP53xsBL5W
         MwjSPxJ/uH3M0kQNdivkOG7nFtPXU1XxfUakBBkOpnXyHJ4yx5PEk8G+tpy+kyRcMuPa
         YjP6l6fezQbrdvxGVs2KCwNGqgje8H+5r9CshVUue0o0O4HfvRELS9ojbmVKSmxr4q6k
         OqWg==
X-Gm-Message-State: AOJu0YyGYhHP5N7D4S3U5WBDX1DDiD+7XjMOmGiAf3rUcxJIqE49AMzA
	hTBYLuFWY+ezv/yrz88hvQHBQ1hZ8S6QWwlIZvJyv6e7X+IwghsrVP0zsPlGlw==
X-Gm-Gg: Acq92OEuj1mX4bYGJWPg2cpqXK9DSLcfh34G5gIoAV2atYRBoYkiRbtPUYbViC0ckHF
	J1t3ZaDgdLZJMEcVUvsziGSFIYb74kp91INljZarIjyuojyoNC5ccjtgZy1e3KD/X5z+2KFZI6S
	rz7ZHqsjzPrJf3v4OO5qQK04pDT1jhf1COU3tCTGXVckk0ADHLR5BhOzdA4QQclvVtuphCmF7oG
	xEzfUZqU33oAElLIy3BbHZzDMml/8h2W0VeNKPUGnCCfXiGFVM88sSR+U3QstXE5iFk2LCiaij/
	K4A46UGHtV9e6+UgLAep8ZfjM/32RSG0ZDuxZaVbfueb+Gz3bcfvuCzQxokwB2HnO7di2YYbGpM
	SAHN1pzXwVnWJXa+aF4Jwu7nqa21lfrX0OVMkm/w8oT5DXcCt3GHfPJA8GBYL8jJWNaoxsEqn/P
	IQenMAzh4LFGI8lQpstyaogCE8JA==
X-Received: by 2002:a05:600d:849c:20b0:488:a2ac:a34c with SMTP id 5b1f17b1804b1-48e51f220e7mr354003745e9.12.1778605796005;
        Tue, 12 May 2026 10:09:56 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v9 11/13] xen/arm: Implement PSCI SYSTEM_SUSPEND call (host interface)
Date: Tue, 12 May 2026 20:07:18 +0300
Message-ID: <9d76348fdd25f0ac7c449ed302ce24ac93b70e95.1778605274.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1778605274.git.mykola_kvach@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1778605796-22D77C48-F1299423/0/0
X-purgate-type: clean
X-purgate-size: 4029

From: Mirela Simonovic <mirela.simonovic@aggios.com>

Invoke PSCI SYSTEM_SUSPEND to finalize Xen's suspend sequence on ARM64
platforms. Pass the Xen resume entry point (hyp_resume) to EL3 together
with a zero context ID, matching Linux.

This patch wires up only the host-side PSCI SYSTEM_SUSPEND invocation.
The resume trampoline and context restore are provided by earlier patches
in the series.

Only enable this path when CONFIG_SYSTEM_SUSPEND is set and PSCI
advertises SYSTEM_SUSPEND via PSCI_FEATURES.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v9:
- cache SYSTEM_SUSPEND support using PSCI_FEATURES and gate the host call
  on the cached capability
- keep the cached SYSTEM_SUSPEND capability read-only after init
- log whether firmware reports SYSTEM_SUSPEND support
- pass an explicit zero context ID in the SYSTEM_SUSPEND call
- drop the stale note claiming hyp_resume is still a stub
---
 xen/arch/arm/include/asm/psci.h |  1 +
 xen/arch/arm/psci.c             | 31 ++++++++++++++++++++++++++++++-
 2 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
index 48a93e6b79..bb3c73496e 100644
--- a/xen/arch/arm/include/asm/psci.h
+++ b/xen/arch/arm/include/asm/psci.h
@@ -23,6 +23,7 @@ int call_psci_cpu_on(int cpu);
 void call_psci_cpu_off(void);
 void call_psci_system_off(void);
 void call_psci_system_reset(void);
+int call_psci_system_suspend(void);
 
 /* Range of allocated PSCI function numbers */
 #define	PSCI_FNUM_MIN_VALUE                 _AC(0,U)
diff --git a/xen/arch/arm/psci.c b/xen/arch/arm/psci.c
index b6860a7760..e05dae1133 100644
--- a/xen/arch/arm/psci.c
+++ b/xen/arch/arm/psci.c
@@ -17,23 +17,27 @@
 #include <asm/cpufeature.h>
 #include <asm/psci.h>
 #include <asm/acpi.h>
+#include <asm/suspend.h>
 
 /*
  * While a 64-bit OS can make calls with SMC32 calling conventions, for
  * some calls it is necessary to use SMC64 to pass or return 64-bit values.
- * For such calls PSCI_0_2_FN_NATIVE(x) will choose the appropriate
+ * For such calls PSCI_*_FN_NATIVE(x) will choose the appropriate
  * (native-width) function ID.
  */
 #ifdef CONFIG_ARM_64
 #define PSCI_0_2_FN_NATIVE(name)    PSCI_0_2_FN64_##name
+#define PSCI_1_0_FN_NATIVE(name)    PSCI_1_0_FN64_##name
 #else
 #define PSCI_0_2_FN_NATIVE(name)    PSCI_0_2_FN32_##name
+#define PSCI_1_0_FN_NATIVE(name)    PSCI_1_0_FN32_##name
 #endif
 
 uint32_t psci_ver;
 uint32_t smccc_ver;
 
 static uint32_t psci_cpu_on_nr;
+static bool __ro_after_init has_psci_system_suspend;
 
 #define PSCI_RET(res)   ((int32_t)(res).a0)
 
@@ -60,6 +64,25 @@ void call_psci_cpu_off(void)
     }
 }
 
+int call_psci_system_suspend(void)
+{
+#ifdef CONFIG_SYSTEM_SUSPEND
+    struct arm_smccc_res res;
+
+    if ( !has_psci_system_suspend )
+        return PSCI_NOT_SUPPORTED;
+
+    /* Context ID is unused for the Xen resume path. */
+    arm_smccc_smc(PSCI_1_0_FN_NATIVE(SYSTEM_SUSPEND), __pa(hyp_resume), 0,
+                  &res);
+    return PSCI_RET(res);
+#else
+    dprintk(XENLOG_WARNING,
+            "SYSTEM_SUSPEND not supported (CONFIG_SYSTEM_SUSPEND disabled)\n");
+    return PSCI_NOT_SUPPORTED;
+#endif
+}
+
 void call_psci_system_off(void)
 {
     if ( psci_ver > PSCI_VERSION(0, 1) )
@@ -223,9 +246,15 @@ int __init psci_init(void)
 
     psci_init_smccc();
 
+    has_psci_system_suspend =
+        psci_features(PSCI_1_0_FN_NATIVE(SYSTEM_SUSPEND)) == 0;
+
     printk(XENLOG_INFO "Using PSCI v%u.%u\n",
            PSCI_VERSION_MAJOR(psci_ver), PSCI_VERSION_MINOR(psci_ver));
 
+    printk(XENLOG_DEBUG "PSCI SYSTEM_SUSPEND is %ssupported by firmware\n",
+           has_psci_system_suspend ? "" : "not ");
+
     return 0;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:10:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:10:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307291.1579087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcL-0000HX-FO; Tue, 12 May 2026 17:10:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307291.1579087; Tue, 12 May 2026 17:10:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcL-0000FZ-7b; Tue, 12 May 2026 17:10:01 +0000
Received: by outflank-mailman (input) for mailman id 1307291;
 Tue, 12 May 2026 17:09:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMqcI-00084X-T5
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:09:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMqcI-007RzZ-9l
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:09:58 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ec9-2eae-0a2a0a5409dd-0a2a4501afae-42
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:58 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ee6-c1f2-0a2a45010019-d155802dbd81-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:58 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-488b0046078so48589885e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:09:58 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8cccf90sm10838845e9.0.2026.05.12.10.09.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 10:09:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778605797; x=1779210597; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Qsze4I9Yt/cMI8M+tY/BjiP5Otbdm5FY4KxVXe9YCJU=;
        b=AAplRYV8rMejoKhWP2iI5KYR3jhS94dbaV8i23b/5m4XGMGJDoP7OlpkVvuwS2Q7xN
         kQ/aodTJpgRz5p1b6p7S/tEF1sr2E2B39Lo/Es1royG84ySfOnZxOY1iQu6kTPvdBji5
         QwdI8p/9DwyZnDRHMsPXvARSI0RDjV4RDj3P397X5Elo1wD94FKYr3J2bncufuMCUvRB
         zGx9qBgL7PfHvUio05D1QVfTztFIXVOjs5iYimejj1toxoE+OoB+0T/8epQH1b0tmxeL
         H/WSQ4a4Y/EjHuzVPCXBJ1tWzoXImwN4wWs52yMcQlYTHrq9Nv9DBJbMv54NZPbIi/4i
         YsEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778605797; x=1779210597;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Qsze4I9Yt/cMI8M+tY/BjiP5Otbdm5FY4KxVXe9YCJU=;
        b=i2/z9x+EUVG9TdespivNlyXYkONUdhX+BOTWfPDpI2xr/nGcalBxOTqflQgCbr7yil
         qnjAInXsk7WoO3GHzc4dULNpRdSRL9bSGwMvGDizh6AMJFpORAxog5nuy83ar4iJdvVy
         gNHsj+Oomt/c4Ds57hs7NlStGxd9q/E/FkQUGAGYccbnoXgiKV/fulC8oTWHWHx6joaK
         ItmviNcpNXRFi5LALlY/JBVTIBH54tAnRSZdInZ2OnzeQPTU55zAcDLwIJkCUpOU5vAj
         jWhWutdQcUIyT3ySXrv7J2rHO2P7rmdCiBLzDijCdCoUQYxFkZIjowzat0q+STBLGLdv
         xNDA==
X-Gm-Message-State: AOJu0Yy3tfi+P5PmyVZl2y/jJENV5vOr/ZetMvdms7PESqVNykH4mLyu
	u7NEL/LG0kgwcn8NGm9pDJv+TK3DeetUCmsR6ySr43w9liinUty/ROriuy+1dA==
X-Gm-Gg: Acq92OFehrvUxPKUSJlVVi4A/MuAM5GSY3DASD6M8CbUEnShfugeV0T8XDzXQWY7NXt
	mSJBGFV2oGMO45/xH8FKRSVt6Ut6TfuBDwr7+I6JIc7ew62qc1qv7UmSGn8B+YjammrAVmpD2Kj
	hYvnhBGwNsNRl/AekKOXcIx1j5rSGfbWoSvu0rJ+RkApfgqS9fb30fthx8JtbpeXR/aqosV0MJG
	IKVaCKloYPkjF68D2cPGJYSP0+ofKa1Y3TYakKVy+lMrji04J6gADSlg4I5oJfvMJLZ6OwO/djs
	Sc/EnYbeVGZsnnPRE8Ir+HNVYsUXvHovxSdYsfBw2M8Rmnf1XPCzL4e3xqA8nQ9hRAflvbyCMa7
	zr9bq2gf7zc7m1gPAz7ZwrhwJY0s+0HnUVop/aTEEfWnmOOxEfhCdJXj0nw+JNaHhtapIAq3W2t
	Uh2vXBx+fVYeAqt8Dqe2L83zXp2w==
X-Received: by 2002:a05:600c:8b28:b0:489:149a:f9e7 with SMTP id 5b1f17b1804b1-48e706e1ce9mr265592235e9.27.1778605797177;
        Tue, 12 May 2026 10:09:57 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Rahul Singh <rahul.singh@arm.com>
Subject: [PATCH v9 12/13] xen/arm: Add vPSCI SYSTEM_SUSPEND policy
Date: Tue, 12 May 2026 20:07:19 +0300
Message-ID: <06448a30ef6694a55ac85d4c8c78ca2d71342430.1778605274.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1778605274.git.mykola_kvach@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778605798-B5F40FF4-B662D68F/0/0
X-purgate-type: clean
X-purgate-size: 16491

From: Mykola Kvach <mykola_kvach@epam.com>

Introduce CONFIG_HAS_HWDOM_SYSTEM_SUSPEND as an architecture-selected
capability for platforms where the hardware domain can be parked with
SHUTDOWN_suspend without calling hwdom_shutdown().

Expose PSCI SYSTEM_SUSPEND as a vPSCI operation for all domains. For
non-control domains, including the hardware domain when it is not acting as a
control domain, the call is handled as a guest/domain suspend request and
parks the domain in SHUTDOWN_suspend.

Control domains need additional sequencing because their SYSTEM_SUSPEND
request is used to coordinate host-wide suspend. A non-last awake control
domain may be parked in SHUTDOWN_suspend without requiring the host suspend
path to be available. The last awake control domain is treated as the point
where the request becomes a host-suspend request, and it may only proceed
when all non-control domains are already in SHUTDOWN_suspend and the host
suspend path is available.

Keep the control-domain sequencing and domain-readiness checks out of
PSCI_FEATURES. They are per-attempt runtime conditions rather than stable PSCI
function availability. Advertise SYSTEM_SUSPEND as implemented by vPSCI and
enforce the sequencing policy in the call handler.

Select HAS_HWDOM_SYSTEM_SUSPEND independently from CONFIG_SYSTEM_SUSPEND so
that SHUTDOWN_suspend from the hardware domain can be treated as a domain
suspend state rather than as a hardware-domain initiated host shutdown. This
does not by itself imply that host-wide suspend is available.

Add host_system_suspend_allowed() to combine the host PSCI SYSTEM_SUSPEND
capability with runtime blockers reported by Xen-owned subsystems. Add
runtime blockers for registered serial, IOMMU, GIC and SMMUv3 MSI IRQ paths
lacking suspend/resume support. These blockers are runtime based, so they
only apply to drivers or paths that Xen actually uses on the platform. For
SMMUv3, the blocker applies only when Xen actually uses the MSI IRQ path,
since resume does not restore the SMMU *_IRQ_CFGn MSI registers yet.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/arch/arm/Kconfig                  |   1 +
 xen/arch/arm/gic.c                    |   6 ++
 xen/arch/arm/include/asm/psci.h       |   3 +
 xen/arch/arm/include/asm/suspend.h    |  10 ++-
 xen/arch/arm/psci.c                   |   7 ++
 xen/arch/arm/suspend.c                |  40 +++++++++
 xen/arch/arm/vpsci.c                  | 114 +++++++++++++++++++++++---
 xen/common/Kconfig                    |   3 +
 xen/common/domain.c                   |   7 +-
 xen/drivers/char/serial.c             |  12 +++
 xen/drivers/passthrough/arm/iommu.c   |   4 +
 xen/drivers/passthrough/arm/smmu-v3.c |   4 +
 xen/include/xen/serial.h              |   1 +
 xen/include/xen/suspend.h             |   2 +
 14 files changed, 201 insertions(+), 13 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 79622b46a1..54a5bfb9ae 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -19,6 +19,7 @@ config ARM
 	select HAS_ALTERNATIVE if HAS_VMAP
 	select HAS_DEVICE_TREE_DISCOVERY
 	select HAS_DOM0LESS
+	select HAS_HWDOM_SYSTEM_SUSPEND if !MPU
 	select HAS_GRANT_CACHE_FLUSH if GRANT_TABLE
 	select HAS_STACK_PROTECTOR
 	select HAS_UBSAN
diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index 7727ffed5a..a5efcaeb4c 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -26,6 +26,7 @@
 #include <asm/device.h>
 #include <asm/io.h>
 #include <asm/gic.h>
+#include <asm/suspend.h>
 #include <asm/vgic.h>
 #include <asm/acpi.h>
 
@@ -44,6 +45,11 @@ static void __init __maybe_unused build_assertions(void)
 void register_gic_ops(const struct gic_hw_operations *ops)
 {
     gic_hw_ops = ops;
+
+#ifdef CONFIG_SYSTEM_SUSPEND
+    if ( !ops->suspend || !ops->resume )
+        host_system_suspend_disable("GIC driver lacks suspend/resume support");
+#endif
 }
 
 static void clear_cpu_lr_mask(void)
diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
index bb3c73496e..142fa1bfe5 100644
--- a/xen/arch/arm/include/asm/psci.h
+++ b/xen/arch/arm/include/asm/psci.h
@@ -24,6 +24,9 @@ void call_psci_cpu_off(void);
 void call_psci_system_off(void);
 void call_psci_system_reset(void);
 int call_psci_system_suspend(void);
+#ifdef CONFIG_SYSTEM_SUSPEND
+bool psci_system_suspend_allowed(void);
+#endif
 
 /* Range of allocated PSCI function numbers */
 #define	PSCI_FNUM_MIN_VALUE                 _AC(0,U)
diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
index 2d9fc331fc..87db12eac3 100644
--- a/xen/arch/arm/include/asm/suspend.h
+++ b/xen/arch/arm/include/asm/suspend.h
@@ -38,7 +38,15 @@ extern struct resume_cpu_context resume_cpu_context;
 
 int prepare_resume_ctx(void);
 void hyp_resume(void);
-#endif /* CONFIG_SYSTEM_SUSPEND */
+bool host_system_suspend_allowed(void);
+void host_system_suspend_disable(const char *reason);
+
+#else /* !CONFIG_SYSTEM_SUSPEND */
+
+static inline bool host_system_suspend_allowed(void) { return false; }
+static inline void host_system_suspend_disable(const char *reason) {}
+
+#endif
 
 #endif /* ARM_SUSPEND_H */
 
diff --git a/xen/arch/arm/psci.c b/xen/arch/arm/psci.c
index e05dae1133..e9d78668fd 100644
--- a/xen/arch/arm/psci.c
+++ b/xen/arch/arm/psci.c
@@ -41,6 +41,13 @@ static bool __ro_after_init has_psci_system_suspend;
 
 #define PSCI_RET(res)   ((int32_t)(res).a0)
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+bool psci_system_suspend_allowed(void)
+{
+    return has_psci_system_suspend;
+}
+#endif
+
 int call_psci_cpu_on(int cpu)
 {
     struct arm_smccc_res res;
diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
index 6ea4a0f9cc..a571035d2c 100644
--- a/xen/arch/arm/suspend.c
+++ b/xen/arch/arm/suspend.c
@@ -1,9 +1,49 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <asm/psci.h>
 #include <asm/suspend.h>
 
+#include <xen/lib.h>
+#include <xen/serial.h>
+
 struct resume_cpu_context resume_cpu_context;
 
+/*
+ * Non-PSCI infrastructure can make host suspend impossible even when the PSCI
+ * SYSTEM_SUSPEND conduit is present, e.g. when a Xen-owned driver has no valid
+ * suspend/resume path.
+ *
+ * This gate is checked only when the last awake control domain attempts to
+ * turn a guest SYSTEM_SUSPEND request into a host-suspend request.
+ */
+static bool host_system_suspend_runtime_allowed = true;
+
+static bool host_serial_suspend_allowed(void)
+{
+    if ( serial_suspend_supported() )
+        return true;
+
+    printk_once(XENLOG_INFO
+                "Host SYSTEM_SUSPEND blocked: serial driver lacks suspend/resume support\n");
+
+    return false;
+}
+
+bool host_system_suspend_allowed(void)
+{
+    return psci_system_suspend_allowed() &&
+           host_serial_suspend_allowed() &&
+           host_system_suspend_runtime_allowed;
+}
+
+void host_system_suspend_disable(const char *reason)
+{
+    host_system_suspend_runtime_allowed = false;
+
+    printk(XENLOG_INFO "Host SYSTEM_SUSPEND blocked: %s\n",
+           reason ? reason : "unsupported suspend/resume path");
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index ac6af6118f..48a963ae3e 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -5,6 +5,7 @@
 
 #include <asm/current.h>
 #include <asm/domain.h>
+#include <asm/suspend.h>
 #include <asm/vgic.h>
 #include <asm/vpsci.h>
 #include <asm/event.h>
@@ -219,6 +220,89 @@ static void do_psci_0_2_system_reset(void)
     domain_shutdown(d,SHUTDOWN_reboot);
 }
 
+/*
+ * Serialise SYSTEM_SUSPEND policy decisions with the domain suspend transition,
+ * so multiple control domains cannot all observe each other as still awake.
+ */
+static DEFINE_SPINLOCK(vpsci_system_suspend_lock);
+
+static bool domain_in_suspend_state(struct domain *d)
+{
+    bool suspended;
+
+    spin_lock(&d->shutdown_lock);
+    suspended = d->is_shut_down && d->shutdown_code == SHUTDOWN_suspend;
+    spin_unlock(&d->shutdown_lock);
+
+    return suspended;
+}
+
+static int32_t domain_psci_system_suspend_policy(struct domain *d)
+{
+    struct domain *other;
+    bool last_awake_control_domain = true;
+    bool awake_non_control_domain = false;
+
+    /* Only control domains participate in sequencing policy. */
+    if ( !is_control_domain(d) )
+        return 0;
+
+    rcu_read_lock(&domlist_read_lock);
+
+    for_each_domain ( other )
+    {
+        bool suspended;
+
+        if ( other == d )
+            continue;
+
+        suspended = domain_in_suspend_state(other);
+        if ( suspended )
+            continue;
+
+        if ( is_control_domain(other) )
+        {
+            last_awake_control_domain = false;
+            break;
+        }
+
+        awake_non_control_domain = true;
+    }
+
+    rcu_read_unlock(&domlist_read_lock);
+
+    /*
+     * Another control domain is still awake. This request is only the first
+     * phase of the sequencing: park this control domain and leave the host
+     * running. Host-wide suspend gates must not block this intermediate state.
+     */
+    if ( !last_awake_control_domain )
+        return 0;
+
+    /*
+     * This is the last awake control domain. It must not be parked unless the
+     * request can proceed as a host-suspend request; otherwise Xen would lose
+     * the last domain that can coordinate the system suspend.
+     */
+    if ( awake_non_control_domain )
+    {
+        printk(XENLOG_DEBUG
+               "SYSTEM_SUSPEND denied: last awake control domain dom%u requested host suspend while non-control domains are still awake\n",
+               d->domain_id);
+        return PSCI_DENIED;
+    }
+
+    /*
+     * Host-wide gates are relevant only for the last-control-domain case. They
+     * must not block parking of a non-last control domain, but they must reject
+     * the last control domain when host suspend is not available.
+     */
+    if ( !host_system_suspend_allowed() )
+        return PSCI_NOT_SUPPORTED;
+
+    return 0;
+}
+
 static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
 {
     int32_t rc;
@@ -232,10 +316,6 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
     if ( is_64bit_domain(d) && is_thumb )
         return PSCI_INVALID_ADDRESS;
 
-    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
-    if ( is_hardware_domain(d) )
-        return PSCI_NOT_SUPPORTED;
-
     /* Ensure that all CPUs other than the calling one are offline */
     domain_lock(d);
     for_each_vcpu ( d, v )
@@ -252,16 +332,29 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
     if ( rc )
         return PSCI_DENIED;
 
-    rc = domain_shutdown(d, SHUTDOWN_suspend);
+    spin_lock(&vpsci_system_suspend_lock);
+
+    rc = domain_psci_system_suspend_policy(d);
+    if ( !rc )
+    {
+        rc = domain_shutdown(d, SHUTDOWN_suspend);
+        if ( rc )
+            rc = PSCI_DENIED;
+        else
+        {
+            rctx->ctxt = ctxt;
+            rctx->wake_cpu = current;
+        }
+    }
+
+    spin_unlock(&vpsci_system_suspend_lock);
+
     if ( rc )
     {
         free_vcpu_guest_context(ctxt);
-        return PSCI_DENIED;
+        return rc;
     }
 
-    rctx->ctxt = ctxt;
-    rctx->wake_cpu = current;
-
     gprintk(XENLOG_DEBUG,
             "SYSTEM_SUSPEND requested, epoint=%#"PRIregister", cid=%#"PRIregister"\n",
             epoint, cid);
@@ -287,10 +380,9 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
     case PSCI_0_2_FN32_SYSTEM_RESET:
     case PSCI_1_0_FN32_PSCI_FEATURES:
     case ARM_SMCCC_VERSION_FID:
-        return 0;
     case PSCI_1_0_FN32_SYSTEM_SUSPEND:
     case PSCI_1_0_FN64_SYSTEM_SUSPEND:
-        return is_hardware_domain(current->domain) ? PSCI_NOT_SUPPORTED : 0;
+        return 0;
     default:
         return PSCI_NOT_SUPPORTED;
     }
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 5ff71480ee..816a1a4ecb 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -140,6 +140,9 @@ config HAS_EX_TABLE
 config HAS_FAST_MULTIPLY
 	bool
 
+config HAS_HWDOM_SYSTEM_SUSPEND
+	bool
+
 config HAS_IOPORTS
 	bool
 
diff --git a/xen/common/domain.c b/xen/common/domain.c
index bb9e210c28..d3edfb2a13 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1375,6 +1375,11 @@ void __domain_crash(struct domain *d)
     domain_shutdown(d, SHUTDOWN_crash);
 }
 
+static inline bool want_hwdom_shutdown(uint8_t reason)
+{
+    return !IS_ENABLED(CONFIG_HAS_HWDOM_SYSTEM_SUSPEND) ||
+           reason != SHUTDOWN_suspend;
+}
 
 int domain_shutdown(struct domain *d, u8 reason)
 {
@@ -1391,7 +1396,7 @@ int domain_shutdown(struct domain *d, u8 reason)
         d->shutdown_code = reason;
     reason = d->shutdown_code;
 
-    if ( is_hardware_domain(d) )
+    if ( is_hardware_domain(d) && want_hwdom_shutdown(reason) )
         hwdom_shutdown(reason);
 
     if ( d->is_shutting_down )
diff --git a/xen/drivers/char/serial.c b/xen/drivers/char/serial.c
index adb312d796..cc2b5b5dee 100644
--- a/xen/drivers/char/serial.c
+++ b/xen/drivers/char/serial.c
@@ -497,6 +497,8 @@ const struct vuart_info *serial_vuart_info(int idx)
 
 #ifdef CONFIG_SYSTEM_SUSPEND
 
+static bool __read_mostly serial_suspend_available = true;
+
 void serial_suspend(void)
 {
     int i;
@@ -513,6 +515,11 @@ void serial_resume(void)
             com[i].driver->resume(&com[i]);
 }
 
+bool serial_suspend_supported(void)
+{
+    return serial_suspend_available;
+}
+
 #endif /* CONFIG_SYSTEM_SUSPEND */
 
 void __init serial_register_uart(int idx, struct uart_driver *driver,
@@ -521,6 +528,11 @@ void __init serial_register_uart(int idx, struct uart_driver *driver,
     /* Store UART-specific info. */
     com[idx].driver = driver;
     com[idx].uart   = uart;
+
+#ifdef CONFIG_SYSTEM_SUSPEND
+    if ( !driver->suspend || !driver->resume )
+        serial_suspend_available = false;
+#endif
 }
 
 void __init serial_async_transmit(struct serial_port *port)
diff --git a/xen/drivers/passthrough/arm/iommu.c b/xen/drivers/passthrough/arm/iommu.c
index 100545e23f..420b9fbdf0 100644
--- a/xen/drivers/passthrough/arm/iommu.c
+++ b/xen/drivers/passthrough/arm/iommu.c
@@ -19,6 +19,7 @@
 #include <xen/device_tree.h>
 #include <xen/iommu.h>
 #include <xen/lib.h>
+#include <xen/suspend.h>
 
 #include <asm/device.h>
 
@@ -46,6 +47,9 @@ void __init iommu_set_ops(const struct iommu_ops *ops)
     }
 
     iommu_ops = ops;
+
+    if ( !ops->suspend || !ops->resume )
+        host_system_suspend_disable("IOMMU driver lacks suspend/resume support");
 }
 
 int __init iommu_hardware_setup(void)
diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
index 82c8ead979..443dd0e893 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -91,6 +91,7 @@
 #include <asm/io.h>
 #include <asm/iommu_fwspec.h>
 #include <asm/platform.h>
+#include <asm/suspend.h>
 
 #include "smmu-v3.h"
 
@@ -1903,6 +1904,9 @@ static void arm_smmu_setup_msis(struct arm_smmu_device *smmu)
 		}
 	}
 
+	host_system_suspend_disable(
+		"SMMUv3 MSI IRQ path is unsupported for host suspend");
+
 	/* Add callback to free MSIs on teardown */
 	devm_add_action(dev, arm_smmu_free_msis, dev);
 }
diff --git a/xen/include/xen/serial.h b/xen/include/xen/serial.h
index 8e18445552..418b00ead0 100644
--- a/xen/include/xen/serial.h
+++ b/xen/include/xen/serial.h
@@ -137,6 +137,7 @@ const struct vuart_info* serial_vuart_info(int idx);
 /* Serial suspend/resume. */
 void serial_suspend(void);
 void serial_resume(void);
+bool serial_suspend_supported(void);
 #endif
 
 /*
diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
index 6f94fd53b0..a941331035 100644
--- a/xen/include/xen/suspend.h
+++ b/xen/include/xen/suspend.h
@@ -6,6 +6,8 @@
 #if __has_include(<asm/suspend.h>)
 #include <asm/suspend.h>
 #else
+struct domain;
+
 static inline void arch_domain_resume(struct domain *d) {}
 #endif
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:10:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:10:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307294.1579093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcM-0000Qh-8W; Tue, 12 May 2026 17:10:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307294.1579093; Tue, 12 May 2026 17:10:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMqcL-0000Oq-U9; Tue, 12 May 2026 17:10:01 +0000
Received: by outflank-mailman (input) for mailman id 1307294;
 Tue, 12 May 2026 17:10:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wMqcJ-0008JG-V4
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:10:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMqcJ-00HVbk-Bv
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:09:59 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ee6-5cb7-0a2a0a5109dd-0a2a4507b76a-2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:59 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a035ee7-229c-0a2a45070019-d1558029c526-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:09:59 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-488af9fdaa7so33351435e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 10:09:59 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8cccf90sm10838845e9.0.2026.05.12.10.09.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 May 2026 10:09:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778605798; x=1779210598; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ibGyBzTWotDComsaOUE0ixj57R/0uTs4BWKAvB2xeVg=;
        b=KC25qTOVAhEmuxwwYEr6lHcuM//ugu9+kW5sqVHg9zKVn6uxFZB+dvkI+csnHr1l+A
         QN8kvMClmBDEWqb9sp4Z2R2bvB+ZOZBzCnJtHScxH4jj7xKj/+i8tNW+I+VwXIPfqFrE
         /7pBR0hJuHuP7krjkiglL1bcdBcFagejA3+bRTZLCJhVrIf2hrk/y3n/aBEcFamEOtjI
         DhyY7Rqy0O0jdYUDsuB724FE7u9W8PASsPr9LtXdPok3p5AYrkHpE98T42XdnyOc0grC
         ROY0O+7n62GGw8rq5rUELY0SQpmD8F8k3yc15kXuFo3f1L739HLyIcamQHjsbvLSv4Jw
         wcvw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778605798; x=1779210598;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ibGyBzTWotDComsaOUE0ixj57R/0uTs4BWKAvB2xeVg=;
        b=aQS90JYfzd8F0UdOujDLBmZxSjCiu3GN7wyIzonZTVnIFyENrZUpOieckn8aI/jlYH
         q7WjdEklzgcqJNPkl4VluErLaVFQ6Bl28BxR6K8Cn0/ZT9+sdaVnuS44A1z3TDwAPo9T
         PYclqaJbsPYDgny6y3egawo51Ft2CGZBAHkttCmDYdBnxUF+mGSQzdhdjn3qpma1G3av
         tDfPZYxJsiX9l5nr3YSsqRmnzIMU+Xa0x23g9LM43iyVkkih5Za0lF7WFGjCwhB+kTS/
         OEwFvaACPaR/9FjEWkBgQmlw6h6VjtSDhU6E9VqPzxkyfYiG65Za/Ecu0YEBQpoLcD5H
         GhKg==
X-Gm-Message-State: AOJu0YwRh9y9Iwh0yDonJqnUNN4Srfc7osturxquVeFEtGVx+67YpwPh
	xsDlB2JjYNs7FrS/JSk73nch0n/qhn4vtbvXah4oVvJLEi7N4ig+WYh3unIhKg==
X-Gm-Gg: Acq92OHTFyxpq7iJD8zwzFUXxLn1RtuS49dAr9+esHsPBmhBOkplWEf8I3hc2a32TLX
	8DAMLehwvKmbA4lEjfJiRp9gvtmkcLJfDI6W1yWmvCb9FEIxxDyA+dSx3q5espbrM7b288R+XKd
	DS3oxGrsJ7E5lA1xFhEsmN0fM+Dz9zDHib1m9LnkD0wJl7L5rhGbBE1TTzY0I23lK8ReXk7VZwQ
	V0fRa00uj7hCljpr6MmIaxhHgP2uw7Z5WNPWbzj+Nj2Em0KwdcvQAXwy9uwer0PpY1VU/wF8pzV
	a9fEnLdHtgrYMCPmeoAxsQmls2A3eCWUiD5nT1T2p6XNjIjorqis0ocb+8J9SOzGWP2CpLHT571
	6rX2EN+G+CaN36njrNNkshFOLFkhj8NyBY5oSAnMdbhwTBNLkYqf9SO9N5yvIofQOb9zBYe5Fwx
	3XWZbwtQ1QIxEM40W6TR3eN2SD92gslHLnJdhf
X-Received: by 2002:a05:600c:3f0f:b0:488:a797:f0ac with SMTP id 5b1f17b1804b1-48e9007290cmr63915715e9.28.1778605798406;
        Tue, 12 May 2026 10:09:58 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v9 13/13] xen/arm: Add host system suspend backend
Date: Tue, 12 May 2026 20:07:20 +0300
Message-ID: <2268857aa7eef95444169564c17f7e9a6f59b1c5.1778605274.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1778605274.git.mykola_kvach@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1778605799-22772C48-87001D5D/0/0
X-purgate-type: clean
X-purgate-size: 11802

From: Mirela Simonovic <mirela.simonovic@aggios.com>

Add the Xen-wide suspend/resume backend used after a control-domain
vPSCI SYSTEM_SUSPEND request has been accepted. The vPSCI policy,
runtime driver blockers and control-domain sequencing checks are handled
by the preceding commit; this change adds the code that actually drives
the host suspend attempt.

The backend runs from a tasklet scheduled on pCPU0, because non-boot CPUs
are disabled during suspend. It freezes domains, disables the scheduler
and then disables non-boot CPUs.

Host-side suspend participants are handled in phases. IOMMU and console
state are suspended first. Local IRQs are then disabled before suspending
timer and GIC state. On resume or failure, the completed suspend phases
are unwound in reverse: GIC and timer state are restored while IRQs are
still disabled, local IRQs are restored, and then console and IOMMU state
are restored.

On boot, init_ttbr is normally initialized during secondary CPU hotplug.
On uniprocessor systems this can leave init_ttbr uninitialized, so set it
from the boot CPU before entering suspend.

Note: the code is behind CONFIG_HAS_SYSTEM_SUSPEND, which is currently
only selected when UNSUPPORTED is set and MPU is not set.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V9:
- Split vPSCI availability policy, runtime host-suspend blockers and the
  domain-readiness precheck into the preceding commit.
- Trigger the host suspend backend from the control-domain SYSTEM_SUSPEND
  path.
- Reorder the host suspend/resume phases so the timer is suspended with
  local IRQs disabled and local IRQs are restored after the GIC and timer
  resume paths, before the console and IOMMU resume paths.
- Move HAS_HWDOM_SYSTEM_SUSPEND and related logic to policy patch.

Changes in V8:
- Add a pre-suspend check in system_suspend() after scheduler_disable() to
  require all domains to be in the shut down state with SHUTDOWN_suspend
  before proceeding with the global suspend flow.
- Drop the common-level depends on !ARM_64 || !SYSTEM_SUSPEND from
  CONFIG_HAS_HWDOM_SHUTDOWN_ON_SUSPEND and model the ARM64 suspend case
  with an arch-selected capability instead.
- Rename CONFIG_HAS_HWDOM_SHUTDOWN_ON_SUSPEND to
  CONFIG_HAS_HWDOM_SYSTEM_SUSPEND.
- Rename need_hwdom_shutdown() to want_hwdom_shutdown().

Changes in V7:
- Control domain is responsible for host suspend.
- Add an empty inline host_system_suspend() function when SYSTEM_SUSPEND
  config is disabled.
- Use IS_ENABLED() for config checking instead of #ifdef.
- Replace #ifdef checks in domain_shutdown() with IS_ENABLED() to simplify
  control flow.
- Factor hardware domain shutdown condition into a helper
  (need_hwdom_shutdown()) to avoid preprocessor directives inside the
  function.
- Squash with iommu suspend/resume commit.
---
 xen/arch/arm/Kconfig               |   1 +
 xen/arch/arm/include/asm/mm.h      |   2 +
 xen/arch/arm/include/asm/suspend.h |   2 +
 xen/arch/arm/mmu/smpboot.c         |   2 +-
 xen/arch/arm/suspend.c             | 140 +++++++++++++++++++++++++++++
 xen/arch/arm/vpsci.c               |  10 ++-
 6 files changed, 154 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 54a5bfb9ae..119bc00674 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -9,6 +9,7 @@ config ARM_64
 	select 64BIT
 	select HAS_DOMAIN_TYPE
 	select HAS_FAST_MULTIPLY
+	select HAS_SYSTEM_SUSPEND if !MPU && UNSUPPORTED
 	select HAS_VPCI_GUEST_SUPPORT if PCI_PASSTHROUGH
 
 config ARM
diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index 2eb8465aa9..de119cad3a 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -360,6 +360,8 @@ static inline void page_set_xenheap_gfn(struct page_info *p, gfn_t gfn)
     } while ( (y = cmpxchg(&p->u.inuse.type_info, x, nx)) != x );
 }
 
+void set_init_ttbr(lpae_t *root);
+
 #endif /*  __ARCH_ARM_MM__ */
 /*
  * Local variables:
diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
index 87db12eac3..a194dbb21a 100644
--- a/xen/arch/arm/include/asm/suspend.h
+++ b/xen/arch/arm/include/asm/suspend.h
@@ -40,11 +40,13 @@ int prepare_resume_ctx(void);
 void hyp_resume(void);
 bool host_system_suspend_allowed(void);
 void host_system_suspend_disable(const char *reason);
+void host_system_suspend(struct domain *d);
 
 #else /* !CONFIG_SYSTEM_SUSPEND */
 
 static inline bool host_system_suspend_allowed(void) { return false; }
 static inline void host_system_suspend_disable(const char *reason) {}
+static inline void host_system_suspend(struct domain *d) {}
 
 #endif
 
diff --git a/xen/arch/arm/mmu/smpboot.c b/xen/arch/arm/mmu/smpboot.c
index 37e91d72b7..ff508ecf40 100644
--- a/xen/arch/arm/mmu/smpboot.c
+++ b/xen/arch/arm/mmu/smpboot.c
@@ -72,7 +72,7 @@ static void clear_boot_pagetables(void)
     clear_table(boot_third);
 }
 
-static void set_init_ttbr(lpae_t *root)
+void set_init_ttbr(lpae_t *root)
 {
     /*
      * init_ttbr is part of the identity mapping which is read-only. So
diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
index a571035d2c..b1cc67fbdb 100644
--- a/xen/arch/arm/suspend.c
+++ b/xen/arch/arm/suspend.c
@@ -1,10 +1,16 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <asm/gic.h>
 #include <asm/psci.h>
 #include <asm/suspend.h>
 
+#include <xen/console.h>
+#include <xen/cpu.h>
+#include <xen/iommu.h>
 #include <xen/lib.h>
+#include <xen/sched.h>
 #include <xen/serial.h>
+#include <xen/tasklet.h>
 
 struct resume_cpu_context resume_cpu_context;
 
@@ -44,6 +50,140 @@ void host_system_suspend_disable(const char *reason)
            reason ? reason : "unsupported suspend/resume path");
 }
 
+/* Xen suspend. data identifies the domain that initiated suspend. */
+static void system_suspend(void *data)
+{
+    int status;
+    unsigned long flags;
+    struct domain *d = (struct domain *)data;
+
+    BUG_ON(system_state != SYS_STATE_active);
+
+    system_state = SYS_STATE_suspend;
+
+    printk("Xen suspending...\n");
+
+    freeze_domains();
+    scheduler_disable();
+
+    /*
+     * Non-boot CPUs have to be disabled on suspend and enabled on resume
+     * (hotplug-based mechanism). Disabling non-boot CPUs will lead to PSCI
+     * CPU_OFF to be called by each non-boot CPU. Depending on the underlying
+     * platform capabilities, this may lead to the physical powering down of
+     * CPUs.
+     */
+    status = disable_nonboot_cpus();
+    if ( status )
+    {
+        system_state = SYS_STATE_resume;
+        goto resume_nonboot_cpus;
+    }
+
+    console_start_sync();
+    status = iommu_suspend();
+    if ( status )
+    {
+        system_state = SYS_STATE_resume;
+        goto resume_end_sync;
+    }
+
+    status = console_suspend();
+    if ( status )
+    {
+        dprintk(XENLOG_ERR, "Failed to suspend the console, err=%d\n", status);
+        system_state = SYS_STATE_resume;
+        goto resume_iommu;
+    }
+
+    local_irq_save(flags);
+
+    time_suspend();
+
+    status = gic_suspend();
+    if ( status )
+    {
+        system_state = SYS_STATE_resume;
+        goto resume_time;
+    }
+
+    set_init_ttbr(xen_pgtable);
+
+    /*
+     * Enable identity mapping before entering suspend to simplify
+     * the resume path
+     */
+    update_boot_mapping(true);
+
+    if ( prepare_resume_ctx() )
+    {
+        status = call_psci_system_suspend();
+        /*
+         * If suspend is finalized properly by above system suspend PSCI call,
+         * the code below in this 'if' branch will never execute. Execution
+         * will continue from hyp_resume which is the hypervisor's resume point.
+         * In hyp_resume CPU context will be restored and since link-register is
+         * restored as well, it will appear to return from prepare_resume_ctx.
+         * The difference in returning from prepare_resume_ctx on system suspend
+         * versus resume is in function's return value: on suspend, the return
+         * value is a non-zero value, on resume it is zero. That is why the
+         * control flow will not re-enter this 'if' branch on resume.
+         */
+        if ( status )
+            dprintk(XENLOG_WARNING, "PSCI system suspend failed, err=%d\n",
+                    status);
+    }
+
+    system_state = SYS_STATE_resume;
+    update_boot_mapping(false);
+
+    gic_resume();
+
+ resume_time:
+    time_resume();
+
+    local_irq_restore(flags);
+
+    console_resume();
+
+ resume_iommu:
+    iommu_resume();
+
+ resume_end_sync:
+    console_end_sync();
+
+ resume_nonboot_cpus:
+    /*
+     * The rcu_barrier() has to be added to ensure that the per cpu area is
+     * freed before a non-boot CPU tries to initialize it (_free_percpu_area()
+     * has to be called before the init_percpu_area()). This scenario occurs
+     * when non-boot CPUs are hot-unplugged on suspend and hotplugged on resume.
+     */
+    rcu_barrier();
+    enable_nonboot_cpus();
+
+    scheduler_enable();
+    thaw_domains();
+
+    system_state = SYS_STATE_active;
+
+    printk("Resume (status %d)\n", status);
+
+    domain_resume(d);
+}
+
+static DECLARE_TASKLET(system_suspend_tasklet, system_suspend, NULL);
+
+void host_system_suspend(struct domain *d)
+{
+    system_suspend_tasklet.data = (void *)d;
+    /*
+     * The suspend procedure has to be finalized by the pCPU#0 (non-boot pCPUs
+     * will be disabled during the suspend).
+     */
+    tasklet_schedule_on_cpu(&system_suspend_tasklet, 0);
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 48a963ae3e..79100cbb1e 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -237,7 +237,8 @@ static bool domain_in_suspend_state(struct domain *d)
     return suspended;
 }
 
-static int32_t domain_psci_system_suspend_policy(struct domain *d)
+static int32_t domain_psci_system_suspend_policy(struct domain *d,
+                                                 bool *host_suspend)
 {
     struct domain *other;
     bool last_awake_control_domain = true;
@@ -300,6 +301,7 @@ static int32_t domain_psci_system_suspend_policy(struct domain *d)
     if ( !host_system_suspend_allowed() )
         return PSCI_NOT_SUPPORTED;
 
+    *host_suspend = true;
     return 0;
 }
 
@@ -310,6 +312,7 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
     struct vcpu *v;
     struct domain *d = current->domain;
     bool is_thumb = epoint & 1;
+    bool host_suspend = false;
     struct resume_info *rctx = &d->arch.resume_ctx;
 
     /* THUMB set is not allowed with 64-bit domain */
@@ -334,7 +337,7 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
 
     spin_lock(&vpsci_system_suspend_lock);
 
-    rc = domain_psci_system_suspend_policy(d);
+    rc = domain_psci_system_suspend_policy(d, &host_suspend);
     if ( !rc )
     {
         rc = domain_shutdown(d, SHUTDOWN_suspend);
@@ -359,6 +362,9 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
             "SYSTEM_SUSPEND requested, epoint=%#"PRIregister", cid=%#"PRIregister"\n",
             epoint, cid);
 
+    if ( host_suspend )
+        host_system_suspend(d);
+
     return rc;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:57:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:57:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307399.1579132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMrMb-0003pd-Qm; Tue, 12 May 2026 17:57:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307399.1579132; Tue, 12 May 2026 17:57:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMrMb-0003pW-Nk; Tue, 12 May 2026 17:57:49 +0000
Received: by outflank-mailman (input) for mailman id 1307399;
 Tue, 12 May 2026 17:57:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <luca.fancellu@arm.com>) id 1wMrMa-0003Q1-Ei
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:57:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMrMY-009D7s-AA
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:57:47 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a036a11-bab6-0a2a0a5309dd-0a2a4502963a-18
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:57:47 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a036a19-af86-0a2a45020019-d98c6eacd7ce-3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:57:47 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2EA27168F;
 Tue, 12 May 2026 10:57:41 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 774F53F85F;
 Tue, 12 May 2026 10:57:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778608666; bh=VCpUi1qw2aTk/5VvkiebTI4EVFxVnB22sLNkwL9YBf4=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=C8OtUX6BcH+wQikMQAXfmgaR4vGdDRscBuS4SkctVe6FamUTgyyXnMxN4YEMJ7Tzv
	 I+DX034qS0NsfRQU5+YyObmDQMIDl7MVGuHtgU1yFV9EUhYywR1okYmWm72Dg5rLsF
	 AX7szD/UPQBqplpxxgbOy1v6JnbOq5X4Fd7dakUQ=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Harry Ramsey <harry.ramsey@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v6 3/3] arm/mpu: Implement p2m tables
Date: Tue, 12 May 2026 18:57:29 +0100
Message-Id: <20260512175729.1915120-4-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260512175729.1915120-1-luca.fancellu@arm.com>
References: <20260512175729.1915120-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778608667-8336C161-6EE4EC13/0/0
X-purgate-type: clean
X-purgate-size: 5922

From: Harry Ramsey <harry.ramsey@arm.com>

Implement `p2m_alloc_table`, `p2m_init` and `p2m_final_teardown` for MPU
systems.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
v6:
 - Included mpu.h for MAX_MPU_REGION_NR
 - used void* instead of char* in pointer arithmetic
 - fixed typo in comment
 - Add Michal R-by
v5:
 - removed comment for P2M_ROOT_PAGES/P2M_ROOT_ORDER
 - used MAX_MPU_REGION_NR instead of opencoding 255
 - use 'table' in p2m_alloc_table to clear pages
 - remove p2m_free_vmid() from error path in p2m_init()
   which is already handled outside
v4:
 - no changes
v3:
- Check for alloc_xenheap_pages allocation
- Clear additional page allocated for ARM64
- Add check for INVALID_VCPU_ID
- Remove unnecessary function generate_vsctlr
- Code formatting fixes
---
 xen/arch/arm/include/asm/arm32/mpu.h |  2 +
 xen/arch/arm/include/asm/arm64/mpu.h |  2 +
 xen/arch/arm/include/asm/mpu/p2m.h   |  8 ++++
 xen/arch/arm/include/asm/p2m.h       |  5 ++
 xen/arch/arm/mpu/p2m.c               | 72 ++++++++++++++++++++++++++--
 5 files changed, 86 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
index 2cf0f8cbacae..d565230f84ee 100644
--- a/xen/arch/arm/include/asm/arm32/mpu.h
+++ b/xen/arch/arm/include/asm/arm32/mpu.h
@@ -11,6 +11,8 @@
  */
 #define MPU_REGION_RES0       0x0
 
+#define VSCTLR_VMID_SHIFT     16
+
 /* Hypervisor Protection Region Base Address Register */
 typedef union {
     struct {
diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
index 4f694190a8a3..8b86a03fee44 100644
--- a/xen/arch/arm/include/asm/arm64/mpu.h
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -7,6 +7,8 @@
 
 #define MPU_REGION_RES0        (0xFFFFULL << 48)
 
+#define VSCTLR_VMID_SHIFT      48
+
 /* Protection Region Base Address Register */
 typedef union {
     struct __packed {
diff --git a/xen/arch/arm/include/asm/mpu/p2m.h b/xen/arch/arm/include/asm/mpu/p2m.h
index e46d9e757a1d..1484c75b55aa 100644
--- a/xen/arch/arm/include/asm/mpu/p2m.h
+++ b/xen/arch/arm/include/asm/mpu/p2m.h
@@ -3,8 +3,16 @@
 #ifndef __ARM_MPU_P2M_H__
 #define __ARM_MPU_P2M_H__
 
+#include <xen/bitops.h>
+#include <xen/macros.h>
+#include <xen/page-size.h>
+#include <asm/mpu.h>
+
 struct p2m_domain;
 
+#define P2M_ROOT_PAGES DIV_ROUND_UP(MAX_MPU_REGION_NR * sizeof(pr_t), PAGE_SIZE)
+#define P2M_ROOT_ORDER get_count_order(P2M_ROOT_PAGES)
+
 static inline void p2m_clear_root_pages(struct p2m_domain *p2m) {}
 
 static inline void p2m_tlb_flush_sync(struct p2m_domain *p2m) {}
diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
index 010ce8c9ebbd..ed1b6dd40f40 100644
--- a/xen/arch/arm/include/asm/p2m.h
+++ b/xen/arch/arm/include/asm/p2m.h
@@ -48,8 +48,13 @@ struct p2m_domain {
     /* Current VMID in use */
     uint16_t vmid;
 
+#ifdef CONFIG_MMU
     /* Current Translation Table Base Register for the p2m */
     uint64_t vttbr;
+#else
+    /* Current Virtualization System Control Register for the p2m */
+    register_t vsctlr;
+#endif
 
     /* Highest guest frame that's ever been mapped in the p2m */
     gfn_t max_mapped_gfn;
diff --git a/xen/arch/arm/mpu/p2m.c b/xen/arch/arm/mpu/p2m.c
index f7fb58ab6aa8..f3ca8a4ab35f 100644
--- a/xen/arch/arm/mpu/p2m.c
+++ b/xen/arch/arm/mpu/p2m.c
@@ -28,10 +28,63 @@ void p2m_dump_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
+static int p2m_alloc_table(struct domain *d)
+{
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+    void *table = alloc_xenheap_pages(P2M_ROOT_ORDER, 0);
+    unsigned int i;
+
+    if ( !table )
+    {
+        printk(XENLOG_G_ERR "%pd: p2m: unable to allocate P2M MPU mapping table\n",
+               d);
+        return -ENOMEM;
+    }
+
+    p2m->root = virt_to_page(table);
+
+    for ( i = 0; i < P2M_ROOT_PAGES; i++ )
+        clear_page(table + (i * PAGE_SIZE));
+
+    return 0;
+}
+
 int p2m_init(struct domain *d)
 {
-    BUG_ON("unimplemented");
-    return -EINVAL;
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+    int rc = 0;
+    unsigned int cpu;
+
+    rwlock_init(&p2m->lock);
+
+    p2m->vmid = INVALID_VMID;
+    p2m->max_mapped_gfn = _gfn(0);
+    p2m->lowest_mapped_gfn = _gfn(ULONG_MAX);
+
+    p2m->default_access = p2m_access_rwx;
+    /* mem_access is NOT supported on MPU system. */
+    p2m->mem_access_enabled = false;
+
+    /* Ensure that the type chosen is large enough for MAX_VIRT_CPUS. */
+    BUILD_BUG_ON((1 << (sizeof(p2m->last_vcpu_ran[0]) * 8)) < MAX_VIRT_CPUS);
+    BUILD_BUG_ON((1 << (sizeof(p2m->last_vcpu_ran[0]) * 8)) < INVALID_VCPU_ID);
+
+    for_each_possible_cpu(cpu)
+        p2m->last_vcpu_ran[cpu] = INVALID_VCPU_ID;
+
+    /*
+     * "Trivial" initialization is now complete. Set the backpointer so that
+     * p2m_teardown() and related functions know to do something.
+     */
+    p2m->domain = d;
+
+    rc = p2m_alloc_vmid(d);
+    if ( rc )
+        return rc;
+
+    p2m->vsctlr = ((register_t)p2m->vmid << VSCTLR_VMID_SHIFT);
+
+    return p2m_alloc_table(d);
 }
 
 void p2m_save_state(struct vcpu *p)
@@ -46,7 +99,20 @@ void p2m_restore_state(struct vcpu *n)
 
 void p2m_final_teardown(struct domain *d)
 {
-    BUG_ON("unimplemented");
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+
+    /* p2m not actually initialized */
+    if ( !p2m->domain )
+        return;
+
+    if ( p2m->root )
+        free_xenheap_pages(page_to_virt(p2m->root), P2M_ROOT_ORDER);
+
+    p2m->root = NULL;
+
+    p2m_free_vmid(d);
+
+    p2m->domain = NULL;
 }
 
 bool p2m_resolve_translation_fault(struct domain *d, gfn_t gfn)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:57:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:57:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307397.1579115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMrMa-0003Oo-6J; Tue, 12 May 2026 17:57:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307397.1579115; Tue, 12 May 2026 17:57:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMrMa-0003Oh-3Q; Tue, 12 May 2026 17:57:48 +0000
Received: by outflank-mailman (input) for mailman id 1307397;
 Tue, 12 May 2026 17:57:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <luca.fancellu@arm.com>) id 1wMrMX-0003Bf-W5
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:57:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMrMV-009D7s-RO
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:57:45 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a036a11-bab6-0a2a0a5309dd-0a2a4502963a-12
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:57:45 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a036a17-af86-0a2a45020019-d98c6eaca98e-1
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:57:44 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 205A6168F;
 Tue, 12 May 2026 10:57:38 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 024873F85F;
 Tue, 12 May 2026 10:57:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778608663; bh=3OwJmJ83fF7wYUwwajm97vdwH/PiBu+huX5oR7YFd8I=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=YGtG+/FGraeXfKwo6j2ZszCbIexHGTz5euMS3ApNO7W1S5knzb1eWlLwl7yHl76z8
	 htJu4fA71TzqxS+kS3Z+OK0tqmxB6fu5EB+s8UfHIAxCpzSVgQ1fm4dMxs9A93hetA
	 B9kf5ORAAl6b45uX7SF1vjDdqw4xYWvcUCbV/kBE=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Penny Zheng <Penny.Zheng@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Penny Zheng <penny.zheng@arm.com>,
	Wei Chen <wei.chen@arm.com>,
	Hari Limaye <hari.limaye@arm.com>,
	Harry Ramsey <harry.ramsey@arm.com>
Subject: [PATCH v6 1/3] arm/mpu: implement setup_virt_paging for MPU systems
Date: Tue, 12 May 2026 18:57:27 +0100
Message-Id: <20260512175729.1915120-2-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260512175729.1915120-1-luca.fancellu@arm.com>
References: <20260512175729.1915120-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778608664-ABB60161-24A4E566/0/0
X-purgate-type: clean
X-purgate-size: 7761

From: Penny Zheng <Penny.Zheng@arm.com>

Implement setup_virt_paging for AArch64 MPU systems, taking care of
stage 2 address translation regime, IPA bits, supported VMID length
configuration and VTCR_EL2/VSTCR_EL2 register programming.

Implement also the Armv8-R specific changes to ID_AA64MMFR0_EL1,
related to the supported memory system architecture (PMSA/VMSA)
and check that when MPU is built, the underlying HW is compatible
with PMSA. By default MPU at EL2 and EL1 is required.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
Signed-off-by: Wei Chen <wei.chen@arm.com>
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Hari Limaye <hari.limaye@arm.com>
Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
v5:
 - removed spaces in inline if condition
 - Add Michal R-by
v4:
- Fixed typo in the comments
- Fixed typo in the commit title and message
- moved p2m_vmid_allocator_init() after write of
  VTCR_EL2
- Fixed printf format specifier %d -> %u
v3:
- Refactor unused code to more relevant commits.
- Add P2M print information
- Formatting issues
- Update commit message
v2:
- Separate commit into multiple commits
---
 xen/arch/arm/arm64/mpu/p2m.c             | 80 +++++++++++++++++++++++-
 xen/arch/arm/include/asm/arm64/sysregs.h |  4 ++
 xen/arch/arm/include/asm/cpufeature.h    | 13 +++-
 xen/arch/arm/include/asm/processor.h     |  8 +++
 4 files changed, 101 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/arm64/mpu/p2m.c b/xen/arch/arm/arm64/mpu/p2m.c
index b6d8b2777b58..4547417df97e 100644
--- a/xen/arch/arm/arm64/mpu/p2m.c
+++ b/xen/arch/arm/arm64/mpu/p2m.c
@@ -2,11 +2,89 @@
 
 #include <xen/bug.h>
 #include <xen/init.h>
+#include <xen/lib.h>
 #include <asm/p2m.h>
 
 void __init setup_virt_paging(void)
 {
-    BUG_ON("unimplemented");
+    register_t vtcr_el2 = READ_SYSREG(VTCR_EL2);
+    register_t vstcr_el2 = READ_SYSREG(VSTCR_EL2);
+
+    /* PA size */
+    const unsigned int pa_range_info[] = {32, 36, 40, 42, 44, 48, 52, 0,
+                                          /* Invalid */};
+
+    /*
+     * Restrict "p2m_ipa_bits" if needed. As P2M table is always configured
+     * with IPA bits == PA bits, compare against PA size.
+     */
+    if ( pa_range_info[system_cpuinfo.mm64.pa_range] < p2m_ipa_bits )
+        p2m_ipa_bits = pa_range_info[system_cpuinfo.mm64.pa_range];
+
+    /*
+     * The MSA and MSA_frac fields in the ID_AA64MMFR0_EL1 register identify the
+     * memory system configurations supported. In Armv8-R AArch64, the
+     * only permitted value for ID_AA64MMFR0_EL1.MSA is 0b1111.
+     */
+    if ( system_cpuinfo.mm64.msa != MM64_MSA_PMSA_SUPPORT )
+        goto fault;
+
+    /* Permitted values for ID_AA64MMFR0_EL1.MSA_frac are 0b0001 and 0b0010. */
+    if ( (system_cpuinfo.mm64.msa_frac != MM64_MSA_FRAC_PMSA_SUPPORT) &&
+         (system_cpuinfo.mm64.msa_frac != MM64_MSA_FRAC_VMSA_SUPPORT) )
+        goto fault;
+
+    /* Stage 1 EL1&0 translation regime uses PMSAv8 by default */
+    vtcr_el2 &= ~VTCR_MSA;
+
+    /*
+     * Clear VTCR_EL2.NSA bit to configure non-secure stage 2 translation output
+     * address space to access the Secure PA space as Armv8-R only implements
+     * secure state.
+     */
+    vtcr_el2 &= ~VTCR_NSA;
+
+    /*
+     * cpuinfo sanitization makes sure we support 16-bits VMID only if all cores
+     * are supporting it.
+     *
+     * Set the VS bit only if 16 bit VMID is supported.
+     */
+    if ( system_cpuinfo.mm64.vmid_bits == MM64_VMID_16_BITS_SUPPORT )
+    {
+        vtcr_el2 |= VTCR_VS;
+        max_vmid = MAX_VMID_16_BIT;
+    }
+    else
+        vtcr_el2 &= ~VTCR_VS;
+
+    WRITE_SYSREG(vtcr_el2, VTCR_EL2);
+
+    p2m_vmid_allocator_init();
+
+    /*
+     * VSTCR_EL2.SA defines secure stage 2 translation output address space.
+     * To make sure that all stage 2 translations for the Secure PA space access
+     * the Secure PA space, we keep SA bit as 0.
+     *
+     * VSTCR_EL2.SC is NS check enable bit. To make sure that Stage 2 NS
+     * configuration is checked against stage 1 NS configuration in EL1&0
+     * translation regime for the given address, and generates a fault if they
+     * are different, we set SC bit 1.
+     */
+    vstcr_el2 &= ~VSTCR_EL2_SA;
+    vstcr_el2 |= VSTCR_EL2_SC;
+    WRITE_SYSREG(vstcr_el2, VSTCR_EL2);
+
+    printk("P2M: %u-bit IPA with %u-bit PA and %u-bit VMID\n",
+           p2m_ipa_bits,
+           pa_range_info[system_cpuinfo.mm64.pa_range],
+           (MAX_VMID == MAX_VMID_16_BIT) ? 16 : 8);
+
+    return;
+
+ fault:
+    panic("Hardware with no PMSAv8-64 support in any translation regime\n");
 }
 
 /*
diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
index 19d409d3eb5a..f3c11d871e86 100644
--- a/xen/arch/arm/include/asm/arm64/sysregs.h
+++ b/xen/arch/arm/include/asm/arm64/sysregs.h
@@ -462,6 +462,10 @@
 #define ZCR_ELx_LEN_SIZE             9
 #define ZCR_ELx_LEN_MASK             0x1ff
 
+/* Virtualization Secure Translation Control Register */
+#define VSTCR_EL2_SA                 (_AC(0x1,U) << 30)
+#define VSTCR_EL2_SC                 (_AC(0x1,U) << 20)
+
 #ifdef CONFIG_MPU
 /*
  * The Armv8-R AArch64 architecture always executes code in Secure
diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
index 13353c8e1ad1..bf902a397068 100644
--- a/xen/arch/arm/include/asm/cpufeature.h
+++ b/xen/arch/arm/include/asm/cpufeature.h
@@ -248,6 +248,12 @@ struct cpuinfo_arm {
             unsigned long tgranule_16K:4;
             unsigned long tgranule_64K:4;
             unsigned long tgranule_4K:4;
+#ifdef CONFIG_MPU
+            unsigned long __res0:16;
+            unsigned long msa:4;
+            unsigned long msa_frac:4;
+            unsigned long __res1:8;
+#else
             unsigned long tgranule_16k_2:4;
             unsigned long tgranule_64k_2:4;
             unsigned long tgranule_4k_2:4;
@@ -255,6 +261,7 @@ struct cpuinfo_arm {
             unsigned long __res0:8;
             unsigned long fgt:4;
             unsigned long ecv:4;
+#endif
 
             /* MMFR1 */
             unsigned long hafdbs:4;
@@ -267,13 +274,13 @@ struct cpuinfo_arm {
             unsigned long xnx:4;
             unsigned long twed:4;
             unsigned long ets:4;
-            unsigned long __res1:4;
+            unsigned long __res2:4;
             unsigned long afp:4;
-            unsigned long __res2:12;
+            unsigned long __res3:12;
             unsigned long ecbhb:4;
 
             /* MMFR2 */
-            unsigned long __res3:64;
+            unsigned long __res4:64;
         };
     } mm64;
 
diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 1a48c9ff3b39..895d7cd50244 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -403,6 +403,9 @@
 
 #define VTCR_RES1       (_AC(1,UL)<<31)
 
+#define VTCR_MSA        (_AC(0x1,UL)<<31)
+#define VTCR_NSA        (_AC(0x1,UL)<<30)
+
 /* HCPTR Hyp. Coprocessor Trap Register */
 #define HCPTR_TAM       ((_AC(1,U)<<30))
 #define HCPTR_TTA       ((_AC(1,U)<<20))        /* Trap trace registers */
@@ -464,6 +467,11 @@
 #define MM64_VMID_16_BITS_SUPPORT   0x2
 #endif
 
+#define MM64_MSA_PMSA_SUPPORT       0xf
+#define MM64_MSA_FRAC_NONE_SUPPORT  0x0
+#define MM64_MSA_FRAC_PMSA_SUPPORT  0x1
+#define MM64_MSA_FRAC_VMSA_SUPPORT  0x2
+
 #ifndef __ASSEMBLER__
 
 extern register_t __cpu_logical_map[];
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:57:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:57:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307396.1579106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMrMY-0003Bn-06; Tue, 12 May 2026 17:57:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307396.1579106; Tue, 12 May 2026 17:57:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMrMX-0003Bg-TR; Tue, 12 May 2026 17:57:45 +0000
Received: by outflank-mailman (input) for mailman id 1307396;
 Tue, 12 May 2026 17:57:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <luca.fancellu@arm.com>) id 1wMrMW-0003BZ-H8
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:57:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMrMT-009D2R-UK
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:57:43 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a036a05-bab6-0a2a0a5309dd-0a2a4509aae2-22
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:57:42 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a036a16-2497-0a2a45090019-d98c6eac94d0-1
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:57:42 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6EF4A1684;
 Tue, 12 May 2026 10:57:36 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4BAE13F85F;
 Tue, 12 May 2026 10:57:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="From:To:Cc:Subject:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778608661; bh=nReNm4K5rZibVDy0hIHmSNZc8OOuIK2HBFp4E3sLKok=;
	h=From:To:Cc:Subject:Date:From;
	b=s4Fs3ga/THENyHcOtOeLwzXdXQ7rtlVpYWuKxlxYKFfGfiqdA7JJ8+zxz8sGYNofx
	 n/wpQaOt9HL6/eVdGGvO0/F/6zEno0MW2H0v+GLsqMKCSS1bWybis/Re9TmWb7pjHB
	 iZ3q5fkMedUjLC5EYESdnqPfFi83nJPvqgJtK3pc=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	"Oleksii Kurochko" <oleksii.kurochko@gmail.com>
Subject: [PATCH v6 0/3] Fifth MPU Series
Date: Tue, 12 May 2026 18:57:26 +0100
Message-Id: <20260512175729.1915120-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778608662-89F84A53-ED08F955/0/0
X-purgate-type: clean
X-purgate-size: 1441

This series continues to further the ongoing work to introduce support
for MPU systems in Xen.

The patches in this series aim to implement MPU specific p2m functions.

Harry Ramsey (2):
  arm/mpu: Introduce `v8r_el1_msa` device tree property for domains
  arm/mpu: Implement p2m tables

Penny Zheng (1):
  arm/mpu: implement setup_virt_paging for MPU systems

 docs/misc/arm/device-tree/booting.txt    | 14 +++++
 xen/arch/arm/arm64/mpu/p2m.c             | 80 +++++++++++++++++++++++-
 xen/arch/arm/dom0less-build.c            | 74 ++++++++++++++++++++++
 xen/arch/arm/domain.c                    | 37 +++++++++++
 xen/arch/arm/include/asm/arm32/mpu.h     |  2 +
 xen/arch/arm/include/asm/arm64/mpu.h     |  2 +
 xen/arch/arm/include/asm/arm64/sysregs.h |  4 ++
 xen/arch/arm/include/asm/cpufeature.h    | 13 +++-
 xen/arch/arm/include/asm/domain.h        |  4 ++
 xen/arch/arm/include/asm/domain_build.h  | 10 +++
 xen/arch/arm/include/asm/mpu/p2m.h       |  8 +++
 xen/arch/arm/include/asm/p2m.h           |  5 ++
 xen/arch/arm/include/asm/processor.h     |  8 +++
 xen/arch/arm/mpu/arm32/mm.c              |  7 +++
 xen/arch/arm/mpu/arm64/mm.c              |  7 +++
 xen/arch/arm/mpu/p2m.c                   | 72 ++++++++++++++++++++-
 xen/include/public/arch-arm.h            |  7 +++
 xen/include/public/domctl.h              |  4 +-
 18 files changed, 349 insertions(+), 9 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue May 12 17:57:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 May 2026 17:57:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307398.1579120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMrMa-0003VD-Iy; Tue, 12 May 2026 17:57:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307398.1579120; Tue, 12 May 2026 17:57:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wMrMa-0003Tz-Fu; Tue, 12 May 2026 17:57:48 +0000
Received: by outflank-mailman (input) for mailman id 1307398;
 Tue, 12 May 2026 17:57:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <luca.fancellu@arm.com>) id 1wMrMZ-0003OZ-45
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 17:57:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wMrMW-009D7s-Vd
 for xen-devel@lists.xenproject.org; Tue, 12 May 2026 19:57:46 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a036a11-bab6-0a2a0a5309dd-0a2a4502963a-14
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:57:46 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a036a19-af86-0a2a45020019-d98c6eacd7ce-1
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 19:57:46 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E6CC51684;
 Tue, 12 May 2026 10:57:39 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A60AE3F85F;
 Tue, 12 May 2026 10:57:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778608665; bh=pUlihSCtoluRvHSQDgApxcwFy6+3MCxnxU+k0Ku8GtY=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=TBbSArrt/uJJn0ZPk8KH0Uc5HoDBRzJdPOfk8dunk+ud0bHsMl8NKbiZWoZgLAzT7
	 H1utUjad+9BZPz3jIv7WhTjgsdbkydUJkoqCHDyRc05g/kAu3vjp9V2ISgAS/aBdci
	 WYTxFgBrnxLIPkUxhHhiVBRnDADroFY1jgRm7rGk=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Harry Ramsey <harry.ramsey@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v6 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree property for domains
Date: Tue, 12 May 2026 18:57:28 +0100
Message-Id: <20260512175729.1915120-3-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260512175729.1915120-1-luca.fancellu@arm.com>
References: <20260512175729.1915120-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778608666-A9B70161-2DB769CA/0/0
X-purgate-type: clean
X-purgate-size: 12627

From: Harry Ramsey <harry.ramsey@arm.com>

Add a new device tree property `v8r_el1_msa` to select the MSA (memory
system architecture) at EL1 for Armv8-R architecture: MPU or MMU, the
former is the default if the property is not passed.

Implement the dom0less path to parse the new device tree property, add
a new domctl hypercall input parameter `v8r_el1_msa` for arm and
add the sanitisation in arch_sanitise_domain_config(), the parameter
is intended to be used on CONFIG_MPU systems and returns an error if
selected for MMU.

While there, add explicit padding and check that it's zero during
arch domain config sanitisation, given the breaking change, bump the
XEN_DOMCTL_INTERFACE_VERSION.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
v6:
 - Add explicit padding to `struct xen_arch_domainconfig` and check it
 - Provide common v8r_el1_msa_domain_sanitise_config() for MMU/MPU
 - During domu_dt_v8r_el1_msa_parse() set PMSA when property not present
 - constify *node in domu_dt_v8r_el1_msa_parse()
 - Print full path of the node in domu_dt_v8r_el1_msa_parse() error msgs
 - typo fixing
v5:
 - follow the way domu_dt_sci_parse and ARM_SCI is doing, but
   return error if property is present in MMU systems.
 - Align the commit message on the new changes
 - fix documentation
 - fix multiline comment
 - drop the explicit padding from struct xen_arch_domainconfig
v4:
- Rework the patch to have the v8r_el1_msa input parameter more
  enclosed in the Armv8-A (mmu)/Armv8-R (mpu) space.
v3:
- Improve commit message and device tree property description
- Remove macro protection
- Remove unused function is_mpu_domain
- Code formatting
---
 docs/misc/arm/device-tree/booting.txt   | 14 +++++
 xen/arch/arm/dom0less-build.c           | 74 +++++++++++++++++++++++++
 xen/arch/arm/domain.c                   | 37 +++++++++++++
 xen/arch/arm/include/asm/domain.h       |  4 ++
 xen/arch/arm/include/asm/domain_build.h | 10 ++++
 xen/arch/arm/mpu/arm32/mm.c             |  7 +++
 xen/arch/arm/mpu/arm64/mm.c             |  7 +++
 xen/include/public/arch-arm.h           |  7 +++
 xen/include/public/domctl.h             |  4 +-
 9 files changed, 162 insertions(+), 2 deletions(-)

diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
index 977b4286082f..f73839df090b 100644
--- a/docs/misc/arm/device-tree/booting.txt
+++ b/docs/misc/arm/device-tree/booting.txt
@@ -322,6 +322,20 @@ with the following properties:
     Should be used together with scmi-smc-passthrough Xen command line
     option.
 
+- v8r_el1_msa
+
+    A string property specifying whether, on Armv8-R systems at EL1, a domain
+    should use PMSAv8 (MPU) or VMSAv8 (MMU).
+
+    - "mmu"
+    Enables VMSAv8 at EL1. This requires hardware support and is only
+    optionally available on AArch64. Not supported on AArch32.
+
+    - "mpu"
+    Enables PMSAv8 at EL1. This is the default behavior when the property is
+    not passed. This configuration requires static allocation (xen,static-mem)
+    and direct mapping (direct-map).
+
 Under the "xen,domain" compatible node, one or more sub-nodes are present
 for the DomU kernel and ramdisk.
 
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 52cf788a45ea..fecdb33d3e3a 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -302,6 +302,77 @@ static int __init domu_dt_sci_parse(struct dt_device_node *node,
     return 0;
 }
 
+static int __init
+domu_dt_v8r_el1_msa_parse(const struct dt_device_node *node,
+                          struct xen_domctl_createdomain *d_cfg,
+                          unsigned int flags)
+{
+    bool property_present = dt_property_read_bool(node, "v8r_el1_msa");
+
+    if ( !IS_ENABLED(CONFIG_MPU) )
+    {
+        d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE;
+
+        if ( !property_present )
+            return 0;
+
+        printk(XENLOG_ERR
+               "Not supported 'v8r_el1_msa' DT property found for domain %s\n",
+               dt_node_full_name(node));
+        return -EINVAL;
+    }
+
+    if ( !property_present )
+        d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA;
+    else
+    {
+        const char *v8r_el1_msa;
+        int ret = dt_property_read_string(node, "v8r_el1_msa", &v8r_el1_msa);
+
+        if ( ret )
+            return ret;
+
+        if ( !strcmp(v8r_el1_msa, "mpu") )
+            d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA;
+        else if ( !strcmp(v8r_el1_msa, "mmu") )
+            d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA;
+        else
+        {
+            printk(XENLOG_ERR
+                   "v8r_el1_msa value (%s) not valid for domain %s\n",
+                   v8r_el1_msa, dt_node_full_name(node));
+            return -EINVAL;
+        }
+    }
+
+    switch ( d_cfg->arch.v8r_el1_msa )
+    {
+    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA:
+        if ( !(flags & CDF_staticmem) || !(flags & CDF_directmap) )
+        {
+            printk(XENLOG_ERR
+                   "PMSA is not valid for domain (%s) without static allocation and direct map (v8r_el1_msa)\n",
+                   dt_node_full_name(node));
+            return -EINVAL;
+        }
+        break;
+
+    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA:
+        if ( !has_v8r_vmsa_support() )
+        {
+            printk(XENLOG_ERR
+                   "Platform doesn't support VMSA at EL1 (v8r_el1_msa)\n");
+            return -EINVAL;
+        }
+        break;
+
+    default:
+        return -EINVAL;
+    }
+
+    return 0;
+}
+
 int __init arch_parse_dom0less_node(struct dt_device_node *node,
                                     struct boot_domain *bd)
 {
@@ -315,6 +386,9 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
     if ( domu_dt_sci_parse(node, d_cfg) )
         panic("Error getting SCI configuration\n");
 
+    if ( domu_dt_v8r_el1_msa_parse(node, d_cfg, flags) )
+        panic("Error getting v8r_el1_msa configuration\n");
+
     if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
     {
         int vpl011_virq = GUEST_VPL011_SPI;
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 26380a807cad..e579c3b1bb3c 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -18,6 +18,7 @@
 #include <asm/cpuerrata.h>
 #include <asm/cpufeature.h>
 #include <asm/current.h>
+#include <asm/domain_build.h>
 #include <asm/event.h>
 #include <asm/gic.h>
 #include <asm/guest_atomics.h>
@@ -538,6 +539,24 @@ void vcpu_switch_to_aarch64_mode(struct vcpu *v)
     v->arch.hcr_el2 |= HCR_RW;
 }
 
+static bool v8r_el1_msa_domain_sanitise_config(
+    const struct xen_domctl_createdomain *config)
+{
+    uint8_t v8r_el1_msa = config->arch.v8r_el1_msa;
+
+    if ( !IS_ENABLED(CONFIG_MPU) )
+        return v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE;
+
+    if ( IS_ENABLED(CONFIG_ARM_32) )
+        return v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA;
+
+    if ( IS_ENABLED(CONFIG_ARM_64) )
+        return (v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA) ||
+               (v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA);
+
+    return false;
+}
+
 int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
 {
     unsigned int max_vcpus;
@@ -554,6 +573,14 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
         return -EINVAL;
     }
 
+    /* Check config structure padding */
+    if ( config->arch.pad )
+    {
+        dprintk(XENLOG_INFO,
+                "Invalid domain configuration during domain creation\n");
+        return -EINVAL;
+    }
+
     /* Check feature flags */
     if ( sve_vl_bits > 0 )
     {
@@ -630,6 +657,12 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
         return -EINVAL;
     }
 
+    if ( !v8r_el1_msa_domain_sanitise_config(config) )
+    {
+        dprintk(XENLOG_INFO, "Unsupported v8r_el1_msa value\n");
+        return -EINVAL;
+    }
+
     return sci_domain_sanitise_config(config);
 }
 
@@ -722,6 +755,10 @@ int arch_domain_create(struct domain *d,
     d->arch.sve_vl = config->arch.sve_vl;
 #endif
 
+#ifdef CONFIG_MPU
+    d->arch.v8r_el1_msa = config->arch.v8r_el1_msa;
+#endif
+
     if ( (rc = sci_domain_init(d, config)) != 0 )
         goto fail;
 
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index b24f02d269be..ac7300e41fcd 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -112,6 +112,10 @@ struct arch_domain
 #endif
 
     struct resume_info resume_ctx;
+
+#ifdef CONFIG_MPU
+    uint8_t v8r_el1_msa;
+#endif
 }  __cacheline_aligned;
 
 struct arch_vcpu
diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
index 6674dac5e2f8..13e88fc0891b 100644
--- a/xen/arch/arm/include/asm/domain_build.h
+++ b/xen/arch/arm/include/asm/domain_build.h
@@ -19,6 +19,16 @@ int prepare_acpi(struct domain *d, struct kernel_info *kinfo);
 
 int add_ext_regions(unsigned long s_gfn, unsigned long e_gfn, void *data);
 
+#ifdef CONFIG_MPU
+/* Utility function to determine if an Armv8-R processor supports VMSA. */
+bool has_v8r_vmsa_support(void);
+#else
+static inline bool has_v8r_vmsa_support(void)
+{
+    return false;
+}
+#endif /* CONFIG_MPU */
+
 #endif
 
 /*
diff --git a/xen/arch/arm/mpu/arm32/mm.c b/xen/arch/arm/mpu/arm32/mm.c
index a4673c351141..702bea804acd 100644
--- a/xen/arch/arm/mpu/arm32/mm.c
+++ b/xen/arch/arm/mpu/arm32/mm.c
@@ -5,6 +5,8 @@
 #include <asm/mpu.h>
 #include <asm/sysregs.h>
 #include <asm/system.h>
+#include <public/arch-arm.h>
+#include <public/domctl.h>
 
 #define GENERATE_WRITE_PR_REG_CASE(num, pr)               \
     case num:                                             \
@@ -38,6 +40,11 @@
         break;                                            \
     }
 
+bool has_v8r_vmsa_support(void)
+{
+    return false;
+}
+
 /*
  * Armv8-R supports direct access and indirect access to the MPU regions through
  * registers:
diff --git a/xen/arch/arm/mpu/arm64/mm.c b/xen/arch/arm/mpu/arm64/mm.c
index ed643cad4073..b8abcc6f7bc6 100644
--- a/xen/arch/arm/mpu/arm64/mm.c
+++ b/xen/arch/arm/mpu/arm64/mm.c
@@ -5,6 +5,8 @@
 #include <asm/mpu.h>
 #include <asm/sysregs.h>
 #include <asm/system.h>
+#include <public/arch-arm.h>
+#include <public/domctl.h>
 
 /*
  * The following are needed for the cases: GENERATE_WRITE_PR_REG_CASE
@@ -32,6 +34,11 @@
         break;                                                  \
     }
 
+bool has_v8r_vmsa_support(void)
+{
+    return system_cpuinfo.mm64.msa_frac == MM64_MSA_FRAC_VMSA_SUPPORT;
+}
+
 /*
  * Armv8-R supports direct access and indirect access to the MPU regions through
  * registers:
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index cd563cf70684..7d6f87e8b2b1 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -330,6 +330,10 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
 #define XEN_DOMCTL_CONFIG_ARM_SCI_NONE      0
 #define XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC  1
 
+#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE    0
+#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA    1
+#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA    2
+
 struct xen_arch_domainconfig {
     /* IN/OUT */
     uint8_t gic_version;
@@ -355,6 +359,9 @@ struct xen_arch_domainconfig {
     uint32_t clock_frequency;
     /* IN */
     uint8_t arm_sci_type;
+    /* IN */
+    uint8_t v8r_el1_msa;
+    uint16_t pad;
 };
 #endif /* __XEN__ || __XEN_TOOLS__ */
 
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 8f6708c0a7cd..23124547f347 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -30,9 +30,9 @@
  * fields) don't require a change of the version.
  * Stable ops are NOT covered by XEN_DOMCTL_INTERFACE_VERSION!
  *
- * Last version bump: Xen 4.19
+ * Last version bump: Xen 4.22
  */
-#define XEN_DOMCTL_INTERFACE_VERSION 0x00000017
+#define XEN_DOMCTL_INTERFACE_VERSION 0x00000018
 
 /*
  * NB. xen_domctl.domain is an IN/OUT parameter for this operation.
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed May 13 05:51:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 05:51:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307573.1579170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN2VL-0003P0-HX; Wed, 13 May 2026 05:51:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307573.1579170; Wed, 13 May 2026 05:51:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN2VL-0003Oh-B8; Wed, 13 May 2026 05:51:35 +0000
Received: by outflank-mailman (input) for mailman id 1307573;
 Wed, 13 May 2026 05:51:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jens.wiklander@linaro.org>) id 1wN2VJ-0003Ob-Pj
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 05:51:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN2VI-00Cgwd-NX
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 07:51:32 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jens.wiklander@linaro.org>)
 id 6a041160-5cb7-0a2a0a5109dd-0a2a4502afd4-12
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:51:32 +0200
Received: from [209.85.161.43] (helo=mail-oo1-f43.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jens.wiklander@linaro.org>)
 id 6a041163-af86-0a2a45020019-d155a12bc91f-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:51:32 +0200
Received: by mail-oo1-f43.google.com with SMTP id
 006d021491bc7-694932346a1so2309890eaf.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 22:51:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=linaro.org header.i="@linaro.org" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778651491; cv=none;
        d=google.com; s=arc-20240605;
        b=JCDibiwu7oFrtD+v704GIPIM3EUR/OJSFCLPm3GDsZLEvLSGUcU54wJcb74vGFo4iS
         s2YgFPcYfEdWITwg9PeObDaTWuTJvgQFSXne+nGVzNemie7lg49FHspe2jkfZeDFXSIp
         WvH07voxOHvMZFEv2qBv+BOv3MxzhS6IJQDwHFrm7id3zNhlvJjnlnb/+dhcm57Pl38I
         yoGKcdhXzfk+7uj2JFe/arGpP8hK0KDQCozGMrP/LEFCCGqqAA2rfR2Ssl8QTts64leX
         Vz2iPnv7EnMSF3oY/6O4Mtjwy3s79VvmryXCyS+pBy1XGIgubtC0cX63p5BRrD4IEm6T
         L56w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=bhTpi/CpEXo8RyqZTmivoo9OsZQNme5x14a7tnaLrZE=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=VYz5UsNToDfBMxCxrr6lqCoD6lx1pndqsSaQpUKTxY/lH2SihH6z/GP+941RREnagv
         l+FkLkswGR4xxqTFAHzCXsr5ZOkGtl8KO2sF/qWxQU8w2+nWAb/LBD8iEnLSCKfsBtXL
         exyjGIKVnH6TD1vYPj0Xn9zqJgno1xOXds+Qp+Ql2k/2RyGvWCt0RXK+UcrhY0gShAbf
         YTcgn9qE3d9l8Ncuinc0Ly9Sxh3OAsRIv9RyGYjv0J4NyVIvVnU46CW/N5y9VsKSm4ME
         hyFoUgFrsGbLYjBoLe3Hp0mAQbcOpGqjc1zK7DqlL/KaiadpLINo6aN4SV7Cx2nCS2bh
         bH2g==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1778651491; x=1779256291; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bhTpi/CpEXo8RyqZTmivoo9OsZQNme5x14a7tnaLrZE=;
        b=szJQOtsEMXLBCxi0dJvlAPzbQvljV2XgLXi8uHkQU+xl0+TNdBEvKTuOR3PdKWetuV
         1Tcnbmjmxj9xse8PoEIukQLuMfuTpFF0QWDRyaHpcw5n2FdSkzUuWP2NQCZglHSlHCmd
         ZBGAq+e/DiMO6c6pO+HNChrf5K5ap2B343xEfEIh3mXSl2mVvbFlNATiFg0JcKHwMZQe
         5duYHaGBiITxD39H9Cjq/scxrJssAOuIFoDRrvqfrO5jWlyhWF9SOpozYeLiAFg85EU2
         2PHYc540hymgem3pGApJdllvn4OCD4eWfaX5M/jCB/Eroyjo03k3zHl4myBUJhbFKcDc
         /HLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778651491; x=1779256291;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=bhTpi/CpEXo8RyqZTmivoo9OsZQNme5x14a7tnaLrZE=;
        b=mM1Do5rnMUxNPCIW5OpkcDqN47iVrXiuH+WeaVp0w0PAQWvRImJY6UoXixnym7hTHI
         lzQFDKKxuktHg2kIyd6V3VRC3yzv7QGH/DCMcQ9p1ZSwyFOs5d03Xbzc0r1H1CgRgwGP
         0R8AHTeIilxVPOfbGi9MVPaxxk/Lu/90SNx1OBinGoip9WnNpB3nfqhkPZGjdbBN2N9s
         JXeV2FHWQ72Qq1au4uuDO5lVSulodgvi0yWCt62FedKul7RZkK5H+f1Tkj5K/f+gyD/C
         +qceCu1yeKwKNGU9Dr1k5Ey+CsYF4tTFBiYoDveDagPFbLzssv4rezisVnCI+RoeaQsu
         DnKw==
X-Gm-Message-State: AOJu0YyH0uTB/JG/RRoaN0Z6SG56gLBHeEwm9hEOGYUPd08kQpnCXSRc
	oKS+PIjvfWOV4gfLMmvKLjTAMHNyrmRVgLdOPgI++jcoxfctIg4BqFMAOLVckVs30tAM2RAnH68
	GUi796W+W4oi8/ZqWYN3yAH0U/sWXH+zBMM38wApHpg==
X-Gm-Gg: Acq92OEoO/Kwb/FUii/RKCMmuTCvEz+jvYL7a/nGgBPJ76HNDVGdwvO5nXjQ/oahEZS
	MBOLT2dv/TLKOyNx/GzuaoBvwa2vMmForzA/QZBKZZrpFcJBLCRSIs1Y0XpvuEpTDCU54HA2CDx
	BrhrL10UP1rO9n0aIGJLSYjAWHgSSUdpBgstrrBAakqly2nMzDMAhCGukJ3pW1ux52B1XYgQM9r
	kgZodhAp/esr/a3cvBUx4vD1DwGOfFmMdzIdUC0PFritmhCpsiXU9WGBL1pJePf5FN0gl8tRpbM
	ETBL+AyVF/l5aH1pstJ1DqSy3ifAv/2xKkBuKQnJBR0yRLJy
X-Received: by 2002:a05:6820:814:b0:696:1d34:3271 with SMTP id
 006d021491bc7-69b78e4a46fmr1111690eaf.58.1778651490688; Tue, 12 May 2026
 22:51:30 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1776955622.git.bertrand.marquis@arm.com> <b83650603daa853d7069748a2575ebe6ece040c2.1776955622.git.bertrand.marquis@arm.com>
In-Reply-To: <b83650603daa853d7069748a2575ebe6ece040c2.1776955622.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 13 May 2026 07:51:19 +0200
X-Gm-Features: AVHnY4Kt3Zf2s_av28Irr6I9SAXTnMMXzbj2154gD1vg7BivIcdLyJ0bhJxZRRw
Message-ID: <CAHUa44HLK9dNdh1cffXAr5A4Nbo5_ZvtXgSOYxSe3hMH06TLmg@mail.gmail.com>
Subject: Re: [PATCH v2 2/6] xen/arm: ffa: Track hypervisor notifications in a bitmap
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-720697/1778651492-81B70161-82860AF4/0/0
X-purgate-type: clean
X-purgate-size: 7434

Hi Bertrand,

On Wed, Apr 29, 2026 at 7:44=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Hypervisor notifications are currently tracked with a dedicated
> buff_full_pending boolean. The old RX-buffer-full path also exposed a
> pending indication indirectly via vm_pending, so
> FFA_NOTIFICATION_INFO_GET could clear that summary before the guest
> retrieved the Hypervisor notification bitmap with
> FFA_NOTIFICATION_GET.
>
> Replace the single boolean with a Hypervisor notification bitmap
> protected by notif_lock. INFO_GET reports pending when hyp_pending is
> non-zero, GET returns and clears the HYP bitmap under the lock, and
> RX-buffer-full now keeps notif_lock held across the local NPI
> decision. notif_irq_raised is only set when an NPI is actually
> injected, and is cleared once the local pending state is consumed.
>
> Initialize and clear the bitmap during domain lifecycle handling, and
> use ctx->ffa_id for bitmap create and destroy so the notification
> state stays tied to the cached FF-A endpoint ID.
>
> If the local injection attempt fails because no vCPU is online,
> hyp_pending remains set and notif_irq_raised remains clear. This
> keeps the RX-buffer-full notification pending until the guest
> retrieves it, without publishing a successful local IRQ state too
> early.
>
> Functional impact: RX-buffer-full remains pending in hyp_pending
> until FFA_NOTIFICATION_GET, and failed local NPI injection no longer
> leaves Xen thinking the interrupt was already raised.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes since v1:
> - clarify that v1 exposed RX-buffer-full indirectly via vm_pending
> - document that v2 keeps the HYP pending indication until
>   FFA_NOTIFICATION_GET
> - keep RX-buffer-full pending state stable across failed local NPI
>   injection attempts
> ---
>  xen/arch/arm/tee/ffa_notif.c   | 56 ++++++++++++++++++++++++++--------
>  xen/arch/arm/tee/ffa_private.h | 15 +++++++--
>  2 files changed, 56 insertions(+), 15 deletions(-)


Looks good.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
>
> diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
> index 07bc5cb3a430..a631481e3815 100644
> --- a/xen/arch/arm/tee/ffa_notif.c
> +++ b/xen/arch/arm/tee/ffa_notif.c
> @@ -19,7 +19,7 @@
>  static bool __ro_after_init fw_notif_enabled;
>  static unsigned int __ro_after_init notif_sri_irq;
>
> -static void inject_notif_pending(struct domain *d)
> +static bool inject_notif_pending(struct domain *d)
>  {
>      struct vcpu *v;
>
> @@ -33,13 +33,15 @@ static void inject_notif_pending(struct domain *d)
>          if ( is_vcpu_online(v) )
>          {
>              vgic_inject_irq(d, v, GUEST_FFA_NOTIF_PEND_INTR_ID, true);
> -            return;
> +            return true;
>          }
>      }
>
>      if ( printk_ratelimit() )
>          printk(XENLOG_G_DEBUG "%pd: ffa: can't inject NPI, all vCPUs off=
line\n",
>                 d);
> +
> +    return false;
>  }
>
>  int32_t ffa_handle_notification_bind(struct cpu_user_regs *regs)
> @@ -94,8 +96,15 @@ void ffa_handle_notification_info_get(struct cpu_user_=
regs *regs)
>
>      notif_pending =3D test_and_clear_bool(ctx->notif.secure_pending);
>      if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> +    {
>          notif_pending |=3D test_and_clear_bool(ctx->notif.vm_pending);
>
> +        spin_lock(&ctx->notif.notif_lock);
> +        if ( ctx->notif.hyp_pending )
> +            notif_pending =3D true;
> +        spin_unlock(&ctx->notif.notif_lock);
> +    }
> +
>      if ( notif_pending )
>      {
>          /* A pending global notification for the guest */
> @@ -174,12 +183,19 @@ void ffa_handle_notification_get(struct cpu_user_re=
gs *regs)
>              w6 =3D resp.a6;
>      }
>
> -    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) &&
> -          flags & FFA_NOTIF_FLAG_BITMAP_HYP &&
> -          test_and_clear_bool(ctx->notif.buff_full_pending) )
> +    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
>      {
> -        ACCESS_ONCE(ctx->notif.vm_pending) =3D false;
> -        w7 =3D FFA_NOTIF_RX_BUFFER_FULL;
> +        spin_lock(&ctx->notif.notif_lock);
> +
> +        if ( (flags & FFA_NOTIF_FLAG_BITMAP_HYP) && ctx->notif.hyp_pendi=
ng )
> +        {
> +            w7 =3D ctx->notif.hyp_pending;
> +            ctx->notif.hyp_pending =3D 0;
> +            if ( !ctx->notif.vm_pending )
> +                ctx->notif.notif_irq_raised =3D false;
> +        }
> +
> +        spin_unlock(&ctx->notif.notif_lock);
>      }
>
>      ffa_set_regs(regs, FFA_SUCCESS_32, 0, w2, w3, w4, w5, w6, w7);
> @@ -211,9 +227,12 @@ void ffa_raise_rx_buffer_full(struct domain *d)
>      if ( !ctx )
>          return;
>
> -    ACCESS_ONCE(ctx->notif.buff_full_pending) =3D true;
> -    if ( !test_and_set_bool(ctx->notif.vm_pending) )
> -        inject_notif_pending(d);
> +    spin_lock(&ctx->notif.notif_lock);
> +    ctx->notif.hyp_pending |=3D FFA_NOTIF_RX_BUFFER_FULL;
> +    if ( !ctx->notif.notif_irq_raised &&
> +         inject_notif_pending(d) )
> +        ctx->notif.notif_irq_raised =3D true;
> +    spin_unlock(&ctx->notif.notif_lock);
>  }
>  #endif
>
> @@ -426,12 +445,16 @@ void ffa_notif_init(void)
>
>  int ffa_notif_domain_init(struct domain *d)
>  {
> +    struct ffa_ctx *ctx =3D d->arch.tee;
>      int32_t res;
>
> +    spin_lock_init(&ctx->notif.notif_lock);
> +    ctx->notif.notif_irq_raised =3D false;
> +    ctx->notif.hyp_pending =3D 0;
> +
>      if ( fw_notif_enabled )
>      {
> -
> -        res =3D ffa_notification_bitmap_create(ffa_get_vm_id(d), d->max_=
vcpus);
> +        res =3D ffa_notification_bitmap_create(ctx->ffa_id, d->max_vcpus=
);
>          if ( res )
>              return -ENOMEM;
>      }
> @@ -441,10 +464,17 @@ int ffa_notif_domain_init(struct domain *d)
>
>  void ffa_notif_domain_destroy(struct domain *d)
>  {
> +    struct ffa_ctx *ctx =3D d->arch.tee;
> +
> +    spin_lock(&ctx->notif.notif_lock);
> +    ctx->notif.notif_irq_raised =3D false;
> +    ctx->notif.hyp_pending =3D 0;
> +    spin_unlock(&ctx->notif.notif_lock);
> +
>      /*
>       * Call bitmap_destroy even if bitmap create failed as the SPMC will
>       * return a DENIED error that we will ignore.
>       */
>      if ( fw_notif_enabled )
> -        ffa_notification_bitmap_destroy(ffa_get_vm_id(d));
> +        ffa_notification_bitmap_destroy(ctx->ffa_id);
>  }
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index c291f32b56ff..9ddda3f88986 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -340,9 +340,20 @@ struct ffa_ctx_notif {
>      bool vm_pending;
>
>      /*
> -     * True if domain has buffer full notification pending
> +     * Lock protecting the hypervisor-managed notification state.
>       */
> -    bool buff_full_pending;
> +    spinlock_t notif_lock;
> +
> +    /*
> +     * Tracks whether a local notification pending interrupt was raised.
> +     * Protected by notif_lock.
> +     */
> +    bool notif_irq_raised;
> +
> +    /*
> +     * Bitmap of pending hypervisor notifications (for HYP bitmap querie=
s).
> +     */
> +    uint32_t hyp_pending;
>  };
>
>  struct ffa_ctx {
> --
> 2.53.0
>


From xen-devel-bounces@lists.xenproject.org Wed May 13 05:52:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 05:52:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307577.1579178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN2Vu-0003nS-R3; Wed, 13 May 2026 05:52:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307577.1579178; Wed, 13 May 2026 05:52:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN2Vu-0003nL-OF; Wed, 13 May 2026 05:52:10 +0000
Received: by outflank-mailman (input) for mailman id 1307577;
 Wed, 13 May 2026 05:52:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jens.wiklander@linaro.org>) id 1wN2Vt-0003n1-6P
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 05:52:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN2Vs-00GVmr-JX
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 07:52:08 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jens.wiklander@linaro.org>)
 id 6a04116d-2eae-0a2a0a5409dd-0a2a4503a882-28
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:52:08 +0200
Received: from [209.85.167.182] (helo=mail-oi1-f182.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jens.wiklander@linaro.org>)
 id 6a041187-672d-0a2a45030019-d155a7b6e965-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:52:08 +0200
Received: by mail-oi1-f182.google.com with SMTP id
 5614622812f47-479dd56d016so4692180b6e.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 22:52:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=linaro.org header.i="@linaro.org" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778651527; cv=none;
        d=google.com; s=arc-20240605;
        b=KCZvoD2FzNWU1yL5ZPXkS5yih6b+wec9xicSzd1nlf2wpmyevHGAftUaTbtRuocSOZ
         LGm8WHaEJIm3TUTNP/ZLkSn9h7ZGWVnq9mjF3nTtViSUDouRmOktuk11dCMblkhnS5Ty
         iQ2UEoO3N697GT474N25hkKiJ8EHyMaHiWNRN/S47gNbCBL0ml+4NdfCIad2MLh6FgUF
         FZCVsnpB1Rs8HCEkPyVDmE6MamcCXzL/C1aysy4ITk50AjE73NWVlmqP/ttmKEfNgfgb
         zk/lp2AcpybZjTXIxEOBEU/LAGxuBE3uve1zd2CvmyD4rkPbpdVaz8uc62t+Dl2+qdhI
         LQJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=pjtW/ih8DgRup9tUYord5CdhpuchYBY3fKaAqR8q44M=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=j9LACpKzNU+CQgztoWmgUdt28yRQ4a93SowNU5LjOvMiCDcVc1B4/LI/8jAxXabVMh
         JjED9r0hLvqg/lIptzH0SLQ/NMhtyiAEMtRrR8BOmW/5iDtkAAyT76L8pU++XKRNFaMw
         UrgBNsBvYWV09de9jwl6TZXWYN9mnPqHlKfEo7e0oEaza0yuoi24RRoyfhwuyyiRGsO1
         nkM9LNMucxhyGuC6jXDfdEdXk8/9/l+HGm1kzDSQkutnM2HW9he3fJzU+Dqm8JdNjMPW
         Ep1zc5Q7zG2VMxMA0BrjYBMCescAjkzogl+6snYfg35P4CDiLMLZidrrZXUsV7ctSLXC
         LqRw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1778651527; x=1779256327; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pjtW/ih8DgRup9tUYord5CdhpuchYBY3fKaAqR8q44M=;
        b=VJbKm+G+87tlF0uA+hn7iz38bCvyB+tKQFuozmSi8Saxy1jbdQZb0BzZ3qvR+smGE9
         lUC6h/nBg63qQUCWIa3ilfC8ysfhAe4GaSg7VDBkaRBBXO2g7mV241nHYzSmdfkYp+nG
         m26RGU/6TiYK0UOwWNyHD+yJ2IdV12lgSmWmH/eB+C/xyossXKPeFLjd7CFK/K3y1cET
         4nFEHXDWdwkB+b1bOQoRiDxaG0khN8/bsLHU9mOEYjKlhY6RnOCucTO/9lgPKIns7enc
         6uzbVMMMhmizkI3FD7XIM9FJuzrJ7tIeHW/ur7hwp1DVHdAWdWl5bVZpOb7wcuu9NnIL
         9AeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778651527; x=1779256327;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=pjtW/ih8DgRup9tUYord5CdhpuchYBY3fKaAqR8q44M=;
        b=EIHKE/+LyA8Fl8U9VsgSH1A9iyCDIXHZUU4QM+GT+k+7X4/i6F0UUf5/QMEz1dyCQT
         EwZonNxdMbI94vxwNd4XIApsMpHn4RLH+r/qLXuylaMn1n9kVObICMkkPeD0v5mCF0Rl
         vhnmKJ5PaMp6hPLaWWtqZIng70hP4/8KdwoK2ivW/5MILMcMqlI9X1muX0AL/niHY6ur
         qQE1oVNU9spqfu16EvO0mEJ7nTx7FmxjnSOTWxfCVRMUWI2sY+TvY1UY93mo13M4VZ4N
         osXbrnATiMrhiAUP9HLO8u3OODv5UNAbgX2yCOgIbmkIF2bI9upV3uYlpdy/GSyi74rk
         XVng==
X-Gm-Message-State: AOJu0YzxcaPcNwVcypIZWUU+93Gh9K1dlHDA2ooBUC+0fRcGJ7uaSs4/
	uFm6ydIckNuWjAvKZPp2fOeoXwaOkAwTgY58dghI38jEwrxCwvl+GH71RLdU6zIkTaZvSZi+vyh
	LxPY4tDnr65a7mHp4bFlfpaXqYXp/T5YIRhcbOvvTnHcBCNdCT/jTPt8Aqw==
X-Gm-Gg: Acq92OGc1MNcGNHuEnDQnO5ELUCgqYeho0XSKbQpq4aRKg8K3+A1o9UcOCDwxdzPcrf
	okPN4O+OBCmRQDcyD248Era6vemd0fL4w1qfnB7MZznyshmKQ46jN1TxwOZifsE8EC67uv+cr05
	AxtyGj7he5WcggaPdNhDA1Ss/1K74zDYUsv2VdE+KR7Q9mQjdjrSXaPrX/uuUooylo2PgQRJPAS
	tevhw0CWcE7sp0h4FAgKviIcp0O/1ORVq7RqwyBXO6MkDTKc7NCUujnvrfqW1KZluaxgZEFfqb1
	3En3N+hP16Uf0RMrUZElLUwwwPy7RwZPKwSlrv1ryq0AF6JC
X-Received: by 2002:a05:6808:3c43:b0:45c:881c:e0c0 with SMTP id
 5614622812f47-482b6288b52mr966806b6e.47.1778651526471; Tue, 12 May 2026
 22:52:06 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1776955622.git.bertrand.marquis@arm.com> <b22ff7b7bf12fc21e6fbff47d77b092f5c487aec.1776955622.git.bertrand.marquis@arm.com>
In-Reply-To: <b22ff7b7bf12fc21e6fbff47d77b092f5c487aec.1776955622.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 13 May 2026 07:51:55 +0200
X-Gm-Features: AVHnY4JDr4br8YW584uPXHxxnLvNtoDya9_GfV9ljZW70CeJkuhrYmlrDTHC6SY
Message-ID: <CAHUa44EOHaFyyExqLRHtF0c+4MAxhrtW6UfqAmhvPQSXOEpr3w@mail.gmail.com>
Subject: Re: [PATCH v2 4/6] xen/arm: ffa: Preserve secure notification state
 when polling SPMC
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-33051d/1778651528-40E68938-CD8BE204/0/0
X-purgate-type: clean
X-purgate-size: 7845

Hi Bertrand,

On Wed, Apr 29, 2026 at 7:44=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Secure pending state is latched when the SPMC raises the schedule
> receiver interrupt, but Xen currently clears that latch too aggressively.
> Guest FFA_NOTIFICATION_INFO_GET consumes secure_pending even though it
> only reports pending state, and secure FFA_NOTIFICATION_GET only clears
> the latch when both SP and SPM bitmaps are requested together. This can
> drop a pending indication before the receiver retrieves secure
> notifications, or keep INFO_GET reporting stale secure pending state
> after a successful GET.
>
> Keep secure_pending as a latched indication until secure notifications
> are actually retrieved. Guest FFA_NOTIFICATION_INFO_GET now reports the
> latched state without clearing it, while a successful secure
> FFA_NOTIFICATION_GET clears the latch regardless of which secure bitmap
> flags were requested. Also protect secure_pending with notif_lock,
> serialize SPMC INFO_GET polling behind notif_info_lock, and preserve the
> caller-visible INFO_GET success width.
>
> Functional impact: guest INFO_GET preserves the secure pending
> indication until secure notifications are retrieved, and successful
> secure GET clears the guest-visible pending latch.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes since v1:
> - drop the defensive fw_notif_enabled guard in notif_sri_action()
> ---
>  xen/arch/arm/tee/ffa_notif.c | 51 ++++++++++++++++++++++--------------
>  1 file changed, 32 insertions(+), 19 deletions(-)

Looks good.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
> index 1260f98a77e9..e1cd852d1c53 100644
> --- a/xen/arch/arm/tee/ffa_notif.c
> +++ b/xen/arch/arm/tee/ffa_notif.c
> @@ -18,6 +18,7 @@
>
>  static bool __ro_after_init fw_notif_enabled;
>  static unsigned int __ro_after_init notif_sri_irq;
> +static DEFINE_SPINLOCK(notif_info_lock);
>
>  static bool inject_notif_pending(struct domain *d)
>  {
> @@ -111,6 +112,7 @@ void ffa_handle_notification_info_get(struct cpu_user=
_regs *regs)
>  {
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
> +    uint32_t fid =3D get_user_reg(regs, 0);
>      bool notif_pending;
>
>      if ( !IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !fw_notif_enabled )
> @@ -119,7 +121,10 @@ void ffa_handle_notification_info_get(struct cpu_use=
r_regs *regs)
>          return;
>      }
>
> -    notif_pending =3D test_and_clear_bool(ctx->notif.secure_pending);
> +    spin_lock(&ctx->notif.notif_lock);
> +    notif_pending =3D ctx->notif.secure_pending;
> +    spin_unlock(&ctx->notif.notif_lock);
> +
>      if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
>      {
>          notif_pending |=3D test_and_clear_bool(ctx->notif.vm_pending);
> @@ -133,7 +138,9 @@ void ffa_handle_notification_info_get(struct cpu_user=
_regs *regs)
>      if ( notif_pending )
>      {
>          /* A pending global notification for the guest */
> -        ffa_set_regs(regs, FFA_SUCCESS_64, 0,
> +        ffa_set_regs(regs,
> +                     smccc_is_conv_64(fid) ? FFA_SUCCESS_64 : FFA_SUCCES=
S_32,
> +                     0,
>                       1U << FFA_NOTIF_INFO_GET_ID_COUNT_SHIFT, ffa_get_vm=
_id(d),
>                       0, 0, 0, 0);
>      }
> @@ -156,6 +163,8 @@ void ffa_handle_notification_get(struct cpu_user_regs=
 *regs)
>      uint32_t w5 =3D 0;
>      uint32_t w6 =3D 0;
>      uint32_t w7 =3D 0;
> +    uint32_t secure_flags =3D flags & ( FFA_NOTIF_FLAG_BITMAP_SP |
> +                                      FFA_NOTIF_FLAG_BITMAP_SPM );
>
>      if ( !IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !fw_notif_enabled )
>      {
> @@ -175,27 +184,16 @@ void ffa_handle_notification_get(struct cpu_user_re=
gs *regs)
>          return;
>      }
>
> -    if ( fw_notif_enabled && (flags & ( FFA_NOTIF_FLAG_BITMAP_SP |
> -                                        FFA_NOTIF_FLAG_BITMAP_SPM )) )
> +    if ( fw_notif_enabled && secure_flags )
>      {
>          struct arm_smccc_1_2_regs arg =3D {
>              .a0 =3D FFA_NOTIFICATION_GET,
>              .a1 =3D recv,
> -            .a2 =3D flags & ( FFA_NOTIF_FLAG_BITMAP_SP |
> -                            FFA_NOTIF_FLAG_BITMAP_SPM ),
> +            .a2 =3D secure_flags,
>          };
>          struct arm_smccc_1_2_regs resp;
>          int32_t e;
>
> -        /*
> -         * Clear secure pending if both FFA_NOTIF_FLAG_BITMAP_SP and
> -         * FFA_NOTIF_FLAG_BITMAP_SPM are set since secure world can't ha=
ve
> -         * any more pending notifications.
> -         */
> -        if ( ( flags  & FFA_NOTIF_FLAG_BITMAP_SP ) &&
> -             ( flags & FFA_NOTIF_FLAG_BITMAP_SPM ) )
> -            ACCESS_ONCE(ctx->notif.secure_pending) =3D false;
> -
>          arm_smccc_1_2_smc(&arg, &resp);
>          e =3D ffa_get_ret_code(&resp);
>          if ( e )
> @@ -212,6 +210,10 @@ void ffa_handle_notification_get(struct cpu_user_reg=
s *regs)
>
>          if ( flags & FFA_NOTIF_FLAG_BITMAP_SPM )
>              w6 =3D resp.a6;
> +
> +        spin_lock(&ctx->notif.notif_lock);
> +        ctx->notif.secure_pending =3D false;
> +        spin_unlock(&ctx->notif.notif_lock);
>      }
>
>      if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> @@ -356,7 +358,10 @@ static void notif_vm_pend_intr(uint16_t vm_id)
>       * guarantees that the data structure isn't freed while we're access=
ing
>       * it.
>       */
> -    ACCESS_ONCE(ctx->notif.secure_pending) =3D true;
> +    spin_lock(&ctx->notif.notif_lock);
> +    ctx->notif.secure_pending =3D true;
> +    spin_unlock(&ctx->notif.notif_lock);
> +
>      inject_notif_pending(d);
>
>  out_unlock:
> @@ -375,11 +380,15 @@ static void notif_sri_action(void *unused)
>      unsigned int n;
>      int32_t res;
>
> -    do {
> +    spin_lock(&notif_info_lock);
> +
> +    do
> +    {
>          arm_smccc_1_2_smc(&arg, &resp);
>          res =3D ffa_get_ret_code(&resp);
>          if ( res )
>          {
> +            spin_unlock(&notif_info_lock);
>              if ( res !=3D FFA_RET_NO_DATA && printk_ratelimit() )
>                  printk(XENLOG_WARNING
>                         "ffa: notification info get failed: error %d\n", =
res);
> @@ -393,7 +402,7 @@ static void notif_sri_action(void *unused)
>          id_pos =3D 0;
>          for ( n =3D 0; n < list_count; n++ )
>          {
> -            unsigned int count =3D ((ids_count >> 2 * n) & 0x3) + 1;
> +            unsigned int count =3D ((ids_count >> (2 * n)) & 0x3) + 1;
>              uint16_t vm_id =3D get_id_from_resp(&resp, id_pos);
>
>              notif_vm_pend_intr(vm_id);
> @@ -401,7 +410,9 @@ static void notif_sri_action(void *unused)
>              id_pos +=3D count;
>          }
>
> -    } while (resp.a2 & FFA_NOTIF_INFO_GET_MORE_FLAG);
> +    } while ( resp.a2 & FFA_NOTIF_INFO_GET_MORE_FLAG );
> +
> +    spin_unlock(&notif_info_lock);
>  }
>
>  static DECLARE_TASKLET(notif_sri_tasklet, notif_sri_action, NULL);
> @@ -489,6 +500,7 @@ int ffa_notif_domain_init(struct domain *d)
>
>      spin_lock_init(&ctx->notif.notif_lock);
>      ctx->notif.notif_irq_raised =3D false;
> +    ctx->notif.secure_pending =3D false;
>      ctx->notif.hyp_pending =3D 0;
>
>      if ( fw_notif_enabled )
> @@ -507,6 +519,7 @@ void ffa_notif_domain_destroy(struct domain *d)
>
>      spin_lock(&ctx->notif.notif_lock);
>      ctx->notif.notif_irq_raised =3D false;
> +    ctx->notif.secure_pending =3D false;
>      ctx->notif.hyp_pending =3D 0;
>      spin_unlock(&ctx->notif.notif_lock);
>
> --
> 2.53.0
>


From xen-devel-bounces@lists.xenproject.org Wed May 13 05:52:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 05:52:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307585.1579189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN2WZ-0004MB-4Z; Wed, 13 May 2026 05:52:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307585.1579189; Wed, 13 May 2026 05:52:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN2WZ-0004M3-0N; Wed, 13 May 2026 05:52:51 +0000
Received: by outflank-mailman (input) for mailman id 1307585;
 Wed, 13 May 2026 05:52:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jens.wiklander@linaro.org>) id 1wN2WX-0004Lp-ED
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 05:52:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN2WV-00AU8j-9V
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 07:52:48 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jens.wiklander@linaro.org>)
 id 6a041197-bab6-0a2a0a5309dd-0a2a45039770-24
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:52:48 +0200
Received: from [209.85.160.48] (helo=mail-oa1-f48.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jens.wiklander@linaro.org>)
 id 6a0411af-672d-0a2a45030019-d155a030cc1d-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:52:48 +0200
Received: by mail-oa1-f48.google.com with SMTP id
 586e51a60fabf-4042905015cso4894700fac.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 22:52:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=linaro.org header.i="@linaro.org" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778651567; cv=none;
        d=google.com; s=arc-20240605;
        b=SR+MeaqmUupI3L/M6nc2qLK4pmZXc9xEIuUnNJ0z+2yvR/nQuapDUj3bL1+g6wTDcf
         ggViygSc4tIl+cF8TFU3j0RfZZvIH27wTpaIIxSs7ylb5PToZzuURdgjSbK+RsAbj8VJ
         pSkvw3FwlQQyU5OzGTfYnWhjaSDWGnzvhbBV5xGMCMB0c3fwCWM29ryfivI4rHwbPm8m
         v9Yj2lcnDgcTDJCfQ8Yk4FjVsgDyhkwuYDW2WkxTzt6aun1Fcnf+/BTxYHeDrlzThdmv
         Aj/m6KeiDEwb53JzbiPFuOd60BcUdAlwI0yXtPElZgCdYdCq2ZkElQdiCjR4e2gM6HCl
         tsWw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=NXUjdWNeODBSfWxlIrlBiTMnEe9tlVlb1+Ow/hbQX+Q=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=GxSut/12u4tUlQi0XENNCAUZe2XkiruGQazMxqnpix5naUCFUm650PDV079CjHR3tV
         D48XfC5pu0i9wWFiRM0hUnXzsgLSI8VUpFLwijNumMHxAh8ZYzTAaO6Rlzk7mDiUtx+a
         X90FlR7u0b42k3GQKOLN6FaP74pNKzeHH8z7fFjnItaXUciDAhb+jQAYwMdz4gDpNkIy
         xTVN4Tl0lomhh6jihvejI4h7W3lnuXA//Yz2wwSVO9FmrKtHBCPoFfErEPdIKYw4ahCc
         PnRZdteAmduMzO9ltfKez8CPSAi+35Q4bzDTgv+9wEpUkVC17+3rPYSsn94YILt2b0q/
         bVKw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1778651567; x=1779256367; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NXUjdWNeODBSfWxlIrlBiTMnEe9tlVlb1+Ow/hbQX+Q=;
        b=fJBgojr10mr3bQ57xjBSIgQqyUK+KkuRAPWKy8GerpGriDDvdMCX0/ghfM+KjSiS5U
         KVCEOmgOfVSx49LXPS8N+FTfObFRtrmuglmU+wSpXeDO0Mvcp02mYDAfd42lGZy8pJq+
         jSm+xjFxhfVWmsu7RqYhS15iR8/L9Wq+4xA7tokzEtanAO5QYV+pWIEYlXJoCq9EVPPS
         oZvsti6IVsNxVG+B3Ni8Oanl9WmfON3DLqnbLvSL6VSlXWeVmnW1lWY48LfO8IKmNwU+
         pDaK7S/DGfElJExBCJJuuw87H+0lQWFp3twrMyu/baErWBbE8+N8JDGaJt3oSPuluF2y
         GEkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778651567; x=1779256367;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=NXUjdWNeODBSfWxlIrlBiTMnEe9tlVlb1+Ow/hbQX+Q=;
        b=PDdUYai1r3cVIFah4EZ2VJzbJ15CJp/YNHF3J1BuRwmUpdxsw3QXo6O/5tZ2b1V2tD
         cGC8EQHWeVdq0aOgg5zbiHAN6QVVKAk3kyguWHYUvmQ89Z/UeOAIRH2x1chow5Wf/Di8
         F3NxM4imlU79477klEWDC3JyhGmCNi9021qxjnVk8VkWKrZiXA7bc1nFzI6C9GPJLLRK
         Wo8/qN/9prhhe1rlyLovokBAmt0fRA8GNm8fWruiHyJxM9UUSwv2Rb2L4gEoRC29VSN2
         gkIcUOZ4VU3LDCuliU3dc5+nTeYv6GB4pf0iuF7BXytRrHROinJ6ZPydSavP6sURaYLf
         P9Bw==
X-Gm-Message-State: AOJu0YzXHhKdE37kCX5rzJWODBdrVQKJ82ChaG11kEWOz5UF3S+rlaTn
	w8+ZqC+OZQD07sgxiQOq9AA0mW/Kn+T9Ws6UuYMQr37x/x/6W64YLzCn9SpquBUXwXNd07VaPCF
	dQ+Gsm9WHnxYktP7o39W/aZ6ip3mpUk1hN55QfOWF+oX/o+9ExVFZsbc0bA==
X-Gm-Gg: Acq92OEiVOK1tdJnFjj/nOuBX/BBeMpnkS+uHAPxgm1mo5uEsi6eFkbt64q9iK8rEdO
	Ml2h9hMNRSj5ZF9TsUGktAdJ5JV2NnoWw5bDGtBmUppSy3iEd71L2Zo+r09BoNROhRNT8RXeH3E
	ueoTSfOGtw2tWYZAhBJpriizxmU6DjPaRzePZqGt5DKXtow5ZVL6nEbzZ4dw+CYyxgGsWY7rwCN
	dX8If8TtW1pup6pXb/993YMcAZ/X7lxnju5ho8ilO0k0GgcVDC0GbhIpv5VqNvTR7oGj4wt5lRF
	FmMmChwCE9Kqy6y9MMrOUq3Jzsb6oQHBGtPYJQ==
X-Received: by 2002:a05:6870:8103:b0:42f:c146:da68 with SMTP id
 586e51a60fabf-439ce141d9amr1149962fac.16.1778651566885; Tue, 12 May 2026
 22:52:46 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1776955622.git.bertrand.marquis@arm.com> <13a7b810346a31acb5b1407b51c17141aebb33f8.1776955622.git.bertrand.marquis@arm.com>
In-Reply-To: <13a7b810346a31acb5b1407b51c17141aebb33f8.1776955622.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 13 May 2026 07:52:35 +0200
X-Gm-Features: AVHnY4K9JECQh14N9OrT82FgU5rHyonVvTFLPN2aLmujgK0Zwpmvyj1lSGGAIJI
Message-ID: <CAHUa44GWg77y3=vREMA9bQ3QVjkMENE2UMMzHPAL4LS-gsn-LQ@mail.gmail.com>
Subject: Re: [PATCH v2 5/6] xen/arm: ffa: Track VM notification bindings locally
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-33051d/1778651568-3BB6C938-188A492E/0/0
X-purgate-type: clean
X-purgate-size: 8241

Hi Bertrand,

On Wed, Apr 29, 2026 at 7:44=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> VM-to-VM notifications need receiver-side bind state so Xen can validate
> which sender owns each notification bit. Non-secure BIND and UNBIND
> requests currently have no local state and cannot enforce that contract.
>
> Add per-bit VM notification binding state to struct ffa_ctx_notif and
> use it to handle non-secure BIND and UNBIND requests when
> CONFIG_FFA_VM_TO_VM is enabled. The update helper validates the whole
> request under notif_lock before mutating anything, denies bind or
> unbind when a bit is pending, rejects rebinding to a different sender,
> and keeps rebinding to the same sender idempotent.
>
> Promote vm_pending to a bitmap so the bind logic can reason per
> notification ID, use that bitmap directly when reporting pending state,
> and initialize and clear the new VM notification state during domain
> init and teardown.
>
> Functional impact: when CONFIG_FFA_VM_TO_VM is enabled, Xen tracks VM
> notification bindings locally and validates non-secure bind and unbind
> requests against that state.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes since v1:
> - use memset() to clear vm_bind[] in init/destroy
> - replace the file-scope #error check with BUILD_BUG_ON()
> ---
>  xen/arch/arm/tee/ffa_notif.c   | 96 ++++++++++++++++++++++++++++++----
>  xen/arch/arm/tee/ffa_private.h | 11 ++--
>  2 files changed, 94 insertions(+), 13 deletions(-)

Looks good.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
> index e1cd852d1c53..a841c8f8d747 100644
> --- a/xen/arch/arm/tee/ffa_notif.c
> +++ b/xen/arch/arm/tee/ffa_notif.c
> @@ -8,6 +8,7 @@
>  #include <xen/list.h>
>  #include <xen/notifier.h>
>  #include <xen/spinlock.h>
> +#include <xen/string.h>
>  #include <xen/tasklet.h>
>  #include <xen/types.h>
>
> @@ -58,6 +59,54 @@ static int32_t ffa_notif_validate_params(uint16_t dom_=
id, uint16_t caller_id,
>      return FFA_RET_OK;
>  }
>
> +static int32_t ffa_notif_update_vm_binding(struct ffa_ctx *ctx,
> +                                           uint16_t dest_id, uint64_t bi=
tmap,
> +                                           bool bind)
> +{
> +    unsigned int id;
> +    int32_t ret =3D FFA_RET_OK;
> +
> +    spin_lock(&ctx->notif.notif_lock);
> +
> +    for ( id =3D 0; id < FFA_NUM_VM_NOTIF; id++ )
> +    {
> +        if ( !(bitmap & BIT(id, ULL)) )
> +            continue;
> +
> +        if ( ctx->notif.vm_pending & BIT(id, ULL) )
> +        {
> +            ret =3D FFA_RET_DENIED;
> +            goto out_unlock;
> +        }
> +
> +        if ( bind )
> +        {
> +            if ( ctx->notif.vm_bind[id] !=3D 0 &&
> +                 ctx->notif.vm_bind[id] !=3D dest_id )
> +            {
> +                ret =3D FFA_RET_DENIED;
> +                goto out_unlock;
> +            }
> +        }
> +        else if ( ctx->notif.vm_bind[id] !=3D dest_id )
> +        {
> +            ret =3D FFA_RET_DENIED;
> +            goto out_unlock;
> +        }
> +    }
> +
> +    for ( id =3D 0; id < FFA_NUM_VM_NOTIF; id++ )
> +    {
> +        if ( bitmap & BIT(id, ULL) )
> +            ctx->notif.vm_bind[id] =3D bind ? dest_id : 0;
> +    }
> +
> +out_unlock:
> +    spin_unlock(&ctx->notif.notif_lock);
> +
> +    return ret;
> +}
> +
>  int32_t ffa_handle_notification_bind(struct cpu_user_regs *regs)
>  {
>      struct domain *d =3D current->domain;
> @@ -78,11 +127,21 @@ int32_t ffa_handle_notification_bind(struct cpu_user=
_regs *regs)
>      if ( ret )
>          return ret;
>
> -    if ( FFA_ID_IS_SECURE(dest_id) && fw_notif_enabled )
> -        return ffa_simple_call(FFA_NOTIFICATION_BIND, src_dst, flags,
> -                               bitmap_lo, bitmap_hi);
> +    if ( FFA_ID_IS_SECURE(dest_id) )
> +    {
> +        if ( fw_notif_enabled )
> +            return ffa_simple_call(FFA_NOTIFICATION_BIND, src_dst, flags=
,
> +                                   bitmap_lo, bitmap_hi);
>
> -    return FFA_RET_NOT_SUPPORTED;
> +        return FFA_RET_NOT_SUPPORTED;
> +    }
> +
> +    if ( !IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> +        return FFA_RET_NOT_SUPPORTED;
> +
> +    return ffa_notif_update_vm_binding(ctx, dest_id,
> +                                       ((uint64_t)bitmap_hi << 32) | bit=
map_lo,
> +                                       true);
>  }
>
>  int32_t ffa_handle_notification_unbind(struct cpu_user_regs *regs)
> @@ -101,11 +160,21 @@ int32_t ffa_handle_notification_unbind(struct cpu_u=
ser_regs *regs)
>      if ( ret )
>          return ret;
>
> -    if ( FFA_ID_IS_SECURE(dest_id) && fw_notif_enabled )
> -        return ffa_simple_call(FFA_NOTIFICATION_UNBIND, src_dst, 0, bitm=
ap_lo,
> -                               bitmap_hi);
> +    if ( FFA_ID_IS_SECURE(dest_id) )
> +    {
> +        if ( fw_notif_enabled )
> +            return ffa_simple_call(FFA_NOTIFICATION_UNBIND, src_dst, 0,
> +                                   bitmap_lo, bitmap_hi);
>
> -    return FFA_RET_NOT_SUPPORTED;
> +        return FFA_RET_NOT_SUPPORTED;
> +    }
> +
> +    if ( !IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> +        return FFA_RET_NOT_SUPPORTED;
> +
> +    return ffa_notif_update_vm_binding(ctx, dest_id,
> +                                       ((uint64_t)bitmap_hi << 32) | bit=
map_lo,
> +                                       false);
>  }
>
>  void ffa_handle_notification_info_get(struct cpu_user_regs *regs)
> @@ -127,9 +196,10 @@ void ffa_handle_notification_info_get(struct cpu_use=
r_regs *regs)
>
>      if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
>      {
> -        notif_pending |=3D test_and_clear_bool(ctx->notif.vm_pending);
> -
>          spin_lock(&ctx->notif.notif_lock);
> +        if ( ctx->notif.vm_pending )
> +            notif_pending =3D true;
> +
>          if ( ctx->notif.hyp_pending )
>              notif_pending =3D true;
>          spin_unlock(&ctx->notif.notif_lock);
> @@ -498,9 +568,13 @@ int ffa_notif_domain_init(struct domain *d)
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      int32_t res;
>
> +    BUILD_BUG_ON(FFA_NUM_VM_NOTIF > 64);
> +
>      spin_lock_init(&ctx->notif.notif_lock);
>      ctx->notif.notif_irq_raised =3D false;
>      ctx->notif.secure_pending =3D false;
> +    ctx->notif.vm_pending =3D 0;
> +    memset(ctx->notif.vm_bind, 0, sizeof(ctx->notif.vm_bind));
>      ctx->notif.hyp_pending =3D 0;
>
>      if ( fw_notif_enabled )
> @@ -520,6 +594,8 @@ void ffa_notif_domain_destroy(struct domain *d)
>      spin_lock(&ctx->notif.notif_lock);
>      ctx->notif.notif_irq_raised =3D false;
>      ctx->notif.secure_pending =3D false;
> +    ctx->notif.vm_pending =3D 0;
> +    memset(ctx->notif.vm_bind, 0, sizeof(ctx->notif.vm_bind));
>      ctx->notif.hyp_pending =3D 0;
>      spin_unlock(&ctx->notif.notif_lock);
>
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 9ddda3f88986..78a0a9815d56 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -236,6 +236,7 @@
>  #define FFA_NOTIF_INFO_GET_ID_COUNT_MASK    0x1F
>
>  #define FFA_NOTIF_RX_BUFFER_FULL        BIT(0, U)
> +#define FFA_NUM_VM_NOTIF                64U
>
>  /* Feature IDs used with FFA_FEATURES */
>  #define FFA_FEATURE_NOTIF_PEND_INTR     0x1U
> @@ -334,10 +335,14 @@ struct ffa_ctx_notif {
>      bool secure_pending;
>
>      /*
> -     * True if domain is reported by FFA_NOTIFICATION_INFO_GET to have
> -     * pending notifications from VMs (including framework ones).
> +     * Bitmap of pending notifications from VMs (including framework one=
s).
> +     */
> +    uint64_t vm_pending;
> +
> +    /*
> +     * Source endpoint bound to each VM notification ID (0 means unbound=
).
>       */
> -    bool vm_pending;
> +    uint16_t vm_bind[FFA_NUM_VM_NOTIF];
>
>      /*
>       * Lock protecting the hypervisor-managed notification state.
> --
> 2.53.0
>


From xen-devel-bounces@lists.xenproject.org Wed May 13 05:53:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 05:53:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307591.1579197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN2XL-0004pA-Bl; Wed, 13 May 2026 05:53:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307591.1579197; Wed, 13 May 2026 05:53:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN2XL-0004p3-8w; Wed, 13 May 2026 05:53:39 +0000
Received: by outflank-mailman (input) for mailman id 1307591;
 Wed, 13 May 2026 05:53:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jens.wiklander@linaro.org>) id 1wN2XJ-0004ox-Rr
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 05:53:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN2XJ-005vV7-8o
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 07:53:37 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jens.wiklander@linaro.org>)
 id 6a0411cf-e002-0a2a0a5209dd-0a2a4504c82c-32
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:53:37 +0200
Received: from [209.85.160.43] (helo=mail-oa1-f43.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jens.wiklander@linaro.org>)
 id 6a0411df-1dec-0a2a45040019-d155a02bcc2a-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:53:36 +0200
Received: by mail-oa1-f43.google.com with SMTP id
 586e51a60fabf-4042905015cso4895160fac.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 22:53:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=linaro.org header.i="@linaro.org" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778651615; cv=none;
        d=google.com; s=arc-20240605;
        b=AiuQYGgSJrwNIn19LKXgFdXCA8H+HokE8iRz3j0LAn6t+tzgdfD5nkogyPodRs3q/A
         IEMi/bNc8T2BecSFfv+mz9I0iin0AJaTZhORkMKVt4PNz14m1yQzGk4B4f3TLVOGAtQc
         Jx+IWIsD4/Oof+/IaoYSm/uZMMbE7/sU7d4MEPKX48MAUIDjzcfHWCO6MrwGQ98mlIX/
         LV23KnmbnkFCAsKTlgyjwZ5YRKV15rEe0UiQkF0PfybbUDxYdXw6VCEXaU3h5Az2nIyE
         VqPQ5Ec9eFhzLPLC6j2qcZ/hYCtO9RfFXg9kr8XhDa6D8gYkVKRncCNRGqK1v6fbMEyK
         1hEA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=2Pc1uggmRTA2DwslDfcvnBBkST/j89rI3aeF6qhsmnc=;
        fh=wB0f5JGUSpWYejuxtnrl8SDqvqyWrEsEaWvC32LbdiU=;
        b=HaiQa9uYOi7AePSutIIN+SjG/RHxJ2EvYSLr8zOHIL7E4jEANPV3eR4Uc5fjBJsLqU
         khmd5lv81mOLaurIYBHw7FRzRTjftCEi9kswQugZ8J1yqbpFU/IZxl/9q9zMcyXQp/mw
         BxTrfnf4PM8gOqmE0opbPfTL+96OWbZebPsXccJsdUXmukgDw/MJXX7gp/nPYvK6TnEC
         eG0IifDG6Dyqejm+JSNJPp0EriJ7BoR9E9be+dF+jbo7a6PCJHhZSOJoJ7qD8I+SpSPA
         8ksxv982WOC2MRPNC6eGZFNuGNOmh+h1pQyV0OIYirV2paCeoQ62+xthUE5LjV1fslNz
         8e3Q==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1778651615; x=1779256415; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2Pc1uggmRTA2DwslDfcvnBBkST/j89rI3aeF6qhsmnc=;
        b=xSS7pjeUA2a3hlizDAwTmCe1mys9fcl+OWAZQ4k8vgLmlWJt6QXbYlHPg1I5VdaIDR
         tQvveRJujZ4ysWsWcs2dqDjJGh7KuJZmLt5DG6vnkDp30y9lTUuP9lSN2CTY4+pAWxdu
         3MFy4jUP0M7LqiTBswvh1Ixhe5kKXxy9D7D3NSYkjwZHzFeemoDcyKomnf3w9SqIuZi1
         ulWbQ4TRxOc4o6H0at2cGI0C1fgJysd+BdoAtPzLpRYd+ZV2P2FqmKfwM/ZnS2+bvQyR
         VzTaO082cnh8/xLfaNNZiugSDo7W5B/gh1n7bFdnnIPofLB2qYr9gJwTJuW/f3rWP+/3
         hAhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778651615; x=1779256415;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=2Pc1uggmRTA2DwslDfcvnBBkST/j89rI3aeF6qhsmnc=;
        b=HXexZ98e6gdRpCqSi3ZqxrVXQjtfn6/gZByRNyZRhBKVNP9w6Y2Gy1ENpLGHQFyYWn
         1JodiO/zZDvAV8Aim43F5zokNoOdIL3SuqnsWk+AWBD3d0FhT3oIVpVLrDCPr1es9Tqp
         UHItBPItzn8hpBXKAL8/WYU27lXufnZ+blD/SyFhvYP4p1SAjkoiU+0JGRqF2YR9r/yO
         /fv72jHrsMCkmOfAwEmVXwI9BLlR7CKXSK0rF69aMtSZ0ZDJG72BJ72vKnQ4iWOo8SjV
         vuqioI4dguYLg81+Pm8k/k47cuBI5vPREbg57Sk5X3VDyqX2sQxH19r9xrtkGWo7woaD
         iA5A==
X-Gm-Message-State: AOJu0Yzggf8Tz4i1UFMjSZIldjv66Lv//iuG/efvoHnIeXYRpWaYfVY8
	SgBJnxiJA+D0UjNhrSPThlUcEM1FS/1zf3vaac+RAtaVccnkHN5Sm+Akp7YgPTlaxkyON0sXLvW
	MGq5ZVz3OjQb/U/RDGfoF4f9tOvkiCCET9KG2ogjP7w==
X-Gm-Gg: Acq92OF4onwvpi85HqZJ6YRXe7ebkV0Oe5QR41BYq72bqHys7auhi81O23uk/r8Mktl
	cEQ5ZzNosoIWVc+tQt2ijwAdOPI39eK63iGlxtLtxcM/S12SpNcE2SJawu5VV5eFqUz3qVFZ9Yt
	T/UcaZXuapoY4ucU2evNJfAYoGfln/47MA9YfS4dkpbFTwLVA9M4d286NDPi3ap8Waqx7wh6djL
	RjR8lTVYHsDi706nAqcnW/EGnF9deABgCt7fV8W2ert+LZMQmSOK2bKNOHwXDHouN14Gc1gOUJN
	KQQTsRa/MazEB3pCtQe7q2Uaw9VFmp9SSk/9CA==
X-Received: by 2002:a05:6870:2e0b:b0:430:1519:5cf7 with SMTP id
 586e51a60fabf-439ce106332mr1129014fac.14.1778651614736; Tue, 12 May 2026
 22:53:34 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1776955622.git.bertrand.marquis@arm.com>
 <1ead2af7182a0501f16e7b4e9ad3e58ccd8f538c.1776955622.git.bertrand.marquis@arm.com>
 <CAHUa44ES1LD6wgDic8Y6zm7+AzWFg6x7pSZhY6NkneW3mse+wA@mail.gmail.com> <109D53DA-85D7-4AA5-BBB1-F54DF529BA8D@arm.com>
In-Reply-To: <109D53DA-85D7-4AA5-BBB1-F54DF529BA8D@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 13 May 2026 07:53:23 +0200
X-Gm-Features: AVHnY4In8dqg6cLibmw3h9X9c5XFn51UMHigSTRhtcPOk9mPT4p3t68Pzg_54gU
Message-ID: <CAHUa44EoJQMXf-+XF0bx_xWAopGnbt=K5j7D39TAhAVgMEFn6w@mail.gmail.com>
Subject: Re: [PATCH v2 6/6] xen/arm: ffa: Deliver VM-to-VM notifications locally
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ebf023/1778651616-29F7D3FF-8A44E5E3/0/0
X-purgate-type: clean
X-purgate-size: 11828

Hi Bertrand,

On Mon, May 11, 2026 at 3:17=E2=80=AFPM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Jens,
>
> > On 5 May 2026, at 11:21, Jens Wiklander <jens.wiklander@linaro.org> wro=
te:
> >
> > Hi Bertrand,
> >
> > On Wed, Apr 29, 2026 at 7:44=E2=80=AFAM Bertrand Marquis
> > <bertrand.marquis@arm.com> wrote:
> >>
> >> VM notification binding and pending tracking exist for non-secure
> >> endpoints, but FFA_NOTIFICATION_SET still only forwards secure
> >> destinations to the SPMC. Non-secure VMs therefore cannot receive
> >> notifications from other VMs. Local NPI delivery also needs explicit
> >> re-arm tracking so repeated raises are not lost while the interrupt is
> >> already pending.
> >>
> >> Add a local VM notification delivery path for non-secure destinations.
> >> notification_set_vm() resolves the destination endpoint, verifies that
> >> every requested bit is bound to the sender, sets the receiver's
> >> vm_pending bitmap under notif_lock, and raises an NPI only when local
> >> pending state is not already armed.
> >>
> >> Track whether a local NPI is already armed with notif_irq_raised,
> >> clear that state once both VM and hypervisor pending bitmaps are
> >> drained, and keep notif_lock held across the VM notification injection
> >> attempt. If no destination vCPU is online, leave the pending bits set
> >> and keep notif_irq_raised clear so delivery can be retried later.
> >> Also expose firmware notification availability so FFA_FEATURES only
> >> advertises notification support when it is actually provided by the
> >> firmware or by CONFIG_FFA_VM_TO_VM.
> >>
> >> Functional impact: when CONFIG_FFA_VM_TO_VM is enabled, non-secure
> >> FFA_NOTIFICATION_SET delivers VM-to-VM notifications locally and keeps
> >> NPI delivery reliable across repeated raises.
> >>
> >> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> >> ---
> >> Changes since v1:
> >> - serialize notification_set_vm() state updates with the NPI attempt
> >> - keep pending VM notifications set when local injection fails
> >> ---
> >> xen/arch/arm/tee/ffa.c         | 24 ++++++++--
> >> xen/arch/arm/tee/ffa_notif.c   | 82 ++++++++++++++++++++++++++++++++--
> >> xen/arch/arm/tee/ffa_private.h | 17 ++++---
> >> 3 files changed, 107 insertions(+), 16 deletions(-)
> >>
> >> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> >> index 1fe33f26454a..7fe021049cba 100644
> >> --- a/xen/arch/arm/tee/ffa.c
> >> +++ b/xen/arch/arm/tee/ffa.c
> >> @@ -39,8 +39,13 @@
> >>  * o FFA_MSG_SEND_DIRECT_REQ:
> >>  *   - only supported from a VM to an SP
> >>  * o FFA_NOTIFICATION_*:
> >> + *   - only supported when firmware notifications are enabled or VM-t=
o-VM
> >> + *     support is built in
> >>  *   - only supports global notifications, that is, per vCPU notificat=
ions
> >> - *     are not supported
> >> + *     are not supported and secure per-vCPU notification information=
 is
> >> + *     not forwarded
> >> + *   - the source endpoint ID reported for a notification may no long=
er
> >> + *     exist by the time the receiver consumes it
> >>  *   - doesn't support signalling the secondary scheduler of pending
> >>  *     notification for secure partitions
> >>  *   - doesn't support notifications for Xen itself
> >> @@ -245,6 +250,8 @@ static void handle_features(struct cpu_user_regs *=
regs)
> >>     uint32_t a1 =3D get_user_reg(regs, 1);
> >>     struct domain *d =3D current->domain;
> >>     struct ffa_ctx *ctx =3D d->arch.tee;
> >> +    bool notif_supported =3D IS_ENABLED(CONFIG_FFA_VM_TO_VM) ||
> >> +                           ffa_notif_fw_enabled();
> >>
> >>     /*
> >>      * FFA_FEATURES defines w2 as input properties only for specific
> >> @@ -343,10 +350,16 @@ static void handle_features(struct cpu_user_regs=
 *regs)
> >>
> >>         break;
> >>     case FFA_FEATURE_NOTIF_PEND_INTR:
> >> -        ffa_set_regs_success(regs, GUEST_FFA_NOTIF_PEND_INTR_ID, 0);
> >> +        if ( notif_supported )
> >> +            ffa_set_regs_success(regs, GUEST_FFA_NOTIF_PEND_INTR_ID, =
0);
> >> +        else
> >> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> >>         break;
> >>     case FFA_FEATURE_SCHEDULE_RECV_INTR:
> >> -        ffa_set_regs_success(regs, GUEST_FFA_SCHEDULE_RECV_INTR_ID, 0=
);
> >> +        if ( notif_supported )
> >> +            ffa_set_regs_success(regs, GUEST_FFA_SCHEDULE_RECV_INTR_I=
D, 0);
> >> +        else
> >> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> >>         break;
> >>     case FFA_PARTITION_INFO_GET_REGS:
> >>         if ( ACCESS_ONCE(ctx->guest_vers) >=3D FFA_VERSION_1_2 )
> >> @@ -361,7 +374,10 @@ static void handle_features(struct cpu_user_regs =
*regs)
> >>     case FFA_NOTIFICATION_SET:
> >>     case FFA_NOTIFICATION_INFO_GET_32:
> >>     case FFA_NOTIFICATION_INFO_GET_64:
> >> -        ffa_set_regs_success(regs, 0, 0);
> >> +        if ( notif_supported )
> >> +            ffa_set_regs_success(regs, 0, 0);
> >> +        else
> >> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> >>         break;
> >>     default:
> >>         ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> >> diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif=
.c
> >> index a841c8f8d747..b29d948a7110 100644
> >> --- a/xen/arch/arm/tee/ffa_notif.c
> >> +++ b/xen/arch/arm/tee/ffa_notif.c
> >> @@ -21,6 +21,11 @@ static bool __ro_after_init fw_notif_enabled;
> >> static unsigned int __ro_after_init notif_sri_irq;
> >> static DEFINE_SPINLOCK(notif_info_lock);
> >>
> >> +bool ffa_notif_fw_enabled(void)
> >> +{
> >> +    return fw_notif_enabled;
> >> +}
> >> +
> >> static bool inject_notif_pending(struct domain *d)
> >> {
> >>     struct vcpu *v;
> >> @@ -107,6 +112,55 @@ out_unlock:
> >>     return ret;
> >> }
> >>
> >> +/*
> >> + * Deliver a VM-to-VM notification. ctx->notif.notif_lock protects
> >> + * vm_bind/vm_pending so callers must not hold it already.
> >> + */
> >> +static int32_t notification_set_vm(uint16_t dst_id, uint16_t src_id,
> >> +                                   uint32_t flags, uint64_t bitmap)
> >> +{
> >> +    struct domain *dst_d;
> >> +    struct ffa_ctx *dst_ctx;
> >> +    unsigned int id;
> >> +    int32_t ret;
> >> +
> >> +    if ( flags )
> >> +        return FFA_RET_INVALID_PARAMETERS;
> >> +
> >> +    ret =3D ffa_endpoint_domain_lookup(dst_id, &dst_d, &dst_ctx);
> >> +    if ( ret )
> >> +        return ret;
> >> +
> >> +    ret =3D FFA_RET_OK;
> >> +
> >> +    spin_lock(&dst_ctx->notif.notif_lock);
> >> +
> >> +    for ( id =3D 0; id < FFA_NUM_VM_NOTIF; id++ )
> >> +    {
> >> +        if ( !(bitmap & BIT(id, ULL)) )
> >> +            continue;
> >> +
> >> +        if ( dst_ctx->notif.vm_bind[id] !=3D src_id )
> >> +        {
> >> +            ret =3D FFA_RET_DENIED;
> >> +            goto out_unlock;
> >> +        }
> >> +    }
> >> +
> >> +    dst_ctx->notif.vm_pending |=3D bitmap;
> >> +    if ( !dst_ctx->notif.notif_irq_raised &&
> >> +         (dst_ctx->notif.vm_pending || dst_ctx->notif.hyp_pending) &&
> >> +         inject_notif_pending(dst_d) )
> >> +        dst_ctx->notif.notif_irq_raised =3D true;
> >> +
> >> +out_unlock:
> >> +    spin_unlock(&dst_ctx->notif.notif_lock);
> >> +
> >> +    rcu_unlock_domain(dst_d);
> >> +
> >> +    return ret;
> >> +}
> >> +
> >> int32_t ffa_handle_notification_bind(struct cpu_user_regs *regs)
> >> {
> >>     struct domain *d =3D current->domain;
> >> @@ -288,6 +342,8 @@ void ffa_handle_notification_get(struct cpu_user_r=
egs *regs)
> >>
> >>     if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> >>     {
> >> +        bool pending;
> >> +
> >>         spin_lock(&ctx->notif.notif_lock);
> >>
> >>         if ( (flags & FFA_NOTIF_FLAG_BITMAP_HYP) && ctx->notif.hyp_pen=
ding )
> >> @@ -298,6 +354,18 @@ void ffa_handle_notification_get(struct cpu_user_=
regs *regs)
> >>                 ctx->notif.notif_irq_raised =3D false;
> >>         }
> >>
> >> +        if ( (flags & FFA_NOTIF_FLAG_BITMAP_VM) && ctx->notif.vm_pend=
ing )
> >> +        {
> >> +            w4 =3D (uint32_t)(ctx->notif.vm_pending & GENMASK(31, 0))=
;
> >> +            w5 =3D (uint32_t)((ctx->notif.vm_pending >> 32) & GENMASK=
(31, 0));
> >> +            ctx->notif.vm_pending =3D 0;
> >> +        }
> >> +
> >> +        pending =3D (ctx->notif.hyp_pending !=3D 0) ||
> >> +                  (ctx->notif.vm_pending !=3D 0);
> >> +        if ( !pending )
> >> +            ctx->notif.notif_irq_raised =3D false;
> >
> > This seems to take care of clearing notif_irq_raised for all cases. Do
> > we still need the one just above this block (copied here):
> >            if ( !ctx->notif.vm_pending )
> >                ctx->notif.notif_irq_raised =3D false;
> > ?
>
> Yes you are right, this is now redundant.
> I will drop it in v3.

Good, thanks.

Cheers,
Jens

>
> Cheers
> Bertrand
>
> >
> > Cheers,
> > Jens
> >
> >> +
> >>         spin_unlock(&ctx->notif.notif_lock);
> >>     }
> >>
> >> @@ -323,9 +391,17 @@ int32_t ffa_handle_notification_set(struct cpu_us=
er_regs *regs)
> >>     if ( flags )
> >>         return FFA_RET_INVALID_PARAMETERS;
> >>
> >> -    if ( FFA_ID_IS_SECURE(dest_id) && fw_notif_enabled )
> >> -        return ffa_simple_call(FFA_NOTIFICATION_SET, src_dst, flags, =
bitmap_lo,
> >> -                               bitmap_hi);
> >> +    if ( FFA_ID_IS_SECURE(dest_id) )
> >> +    {
> >> +        if ( fw_notif_enabled )
> >> +            return ffa_simple_call(FFA_NOTIFICATION_SET, src_dst, fla=
gs,
> >> +                                   bitmap_lo, bitmap_hi);
> >> +    }
> >> +    else if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> >> +    {
> >> +        return notification_set_vm(dest_id, caller_id, flags,
> >> +                                   ((uint64_t)bitmap_hi << 32) | bitm=
ap_lo);
> >> +    }
> >>
> >>     return FFA_RET_NOT_SUPPORTED;
> >> }
> >> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_pri=
vate.h
> >> index 78a0a9815d56..923a071a9d7c 100644
> >> --- a/xen/arch/arm/tee/ffa_private.h
> >> +++ b/xen/arch/arm/tee/ffa_private.h
> >> @@ -340,20 +340,18 @@ struct ffa_ctx_notif {
> >>     uint64_t vm_pending;
> >>
> >>     /*
> >> -     * Source endpoint bound to each VM notification ID (0 means unbo=
und).
> >> +     * Tracks whether an NPI has been raised for local pending notifi=
cations.
> >> +     * Protected by notif_lock.
> >>      */
> >> -    uint16_t vm_bind[FFA_NUM_VM_NOTIF];
> >> +    bool notif_irq_raised;
> >>
> >>     /*
> >> -     * Lock protecting the hypervisor-managed notification state.
> >> +     * Source endpoint bound to each VM notification ID (0 means unbo=
und).
> >>      */
> >> -    spinlock_t notif_lock;
> >> +    uint16_t vm_bind[FFA_NUM_VM_NOTIF];
> >>
> >> -    /*
> >> -     * Tracks whether a local notification pending interrupt was rais=
ed.
> >> -     * Protected by notif_lock.
> >> -     */
> >> -    bool notif_irq_raised;
> >> +    /* Lock protecting local notification state. */
> >> +    spinlock_t notif_lock;
> >>
> >>     /*
> >>      * Bitmap of pending hypervisor notifications (for HYP bitmap quer=
ies).
> >> @@ -495,6 +493,7 @@ void ffa_notif_init(void);
> >> void ffa_notif_init_interrupt(void);
> >> int ffa_notif_domain_init(struct domain *d);
> >> void ffa_notif_domain_destroy(struct domain *d);
> >> +bool ffa_notif_fw_enabled(void);
> >>
> >> int32_t ffa_handle_notification_bind(struct cpu_user_regs *regs);
> >> int32_t ffa_handle_notification_unbind(struct cpu_user_regs *regs);
> >> --
> >> 2.53.0
> >>
>


From xen-devel-bounces@lists.xenproject.org Wed May 13 06:32:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 06:32:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307607.1579205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN38g-0002Zw-8N; Wed, 13 May 2026 06:32:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307607.1579205; Wed, 13 May 2026 06:32:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN38g-0002Zp-5X; Wed, 13 May 2026 06:32:14 +0000
Received: by outflank-mailman (input) for mailman id 1307607;
 Wed, 13 May 2026 06:32:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wN38f-0002Zj-0Q
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 06:32:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN38e-00C2pj-9j
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 08:32:12 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a041ae7-bab6-0a2a0a5309dd-0a2a4507b346-38
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 08:32:11 +0200
Received: from [52.101.53.49]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a041aea-229c-0a2a45070019-346535312ba7-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 08:32:11 +0200
Received: from BLAPR03CA0033.namprd03.prod.outlook.com (2603:10b6:208:32d::8)
 by LV8PR12MB9452.namprd12.prod.outlook.com (2603:10b6:408:200::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 06:32:07 +0000
Received: from BN1PEPF0000468B.namprd05.prod.outlook.com
 (2603:10b6:208:32d:cafe::6e) by BLAPR03CA0033.outlook.office365.com
 (2603:10b6:208:32d::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.23 via Frontend Transport; Wed,
 13 May 2026 06:32:07 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN1PEPF0000468B.mail.protection.outlook.com (10.167.243.136) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Wed, 13 May 2026 06:32:07 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 01:32:04 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 13 May 2026 01:32:03 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vT1+dYOuO4FtmIZ3bnoicz69/al2XIubd+Z20q5Omynl+xUTjaPbpROmQs20D/jHsRCzydRg9AX2rtuM2/IWEfYqSI9+iUnXj02kxwRf6QXQjqBz69snzDU/KZWqsPEnXe/tLYY5JLz+wVVZstXt1vcbYMVCTJVhpfWWUcpeLr1y82RbxEEH6cU+kgqmwel8PiBJNcc/yRJIxZ8ONhcfh6k/yAFnnecnzcE0Cups9CvGNw4Ho9A/Qm1+4j6kvPC5i/RL09NVehnwqlSPCAXTmZWOiNziWcqjstU5YZqntlOesHeQLX6r51er0sTeVg8Mqc60L3odD85LXKRCSSyBzQ==
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=4nnedsHeDiEFp1HsXvQiXNMLNfyxh1rOKP1OQLerBsQ=;
 b=BrLH6toO2dCwl8wcMvarSKLHGzWzfpgwPnFy3MJWYZThKMiMkhPIG3uFprRxtsYirgU7hIoH8Q7A8bWGbaj3+tK4vjkTvq74E+V+uPkDp85UNriDx7E/iVkn0qBrh/cUSSMfz21pQQhGcJHu9USimSpnfmi0wNg0dzoJ1i2KQI12Oyd/aHMzADJEugwoKzcqnLO67iCzuy5wWoFZADQ0Xkxnn0v+Uyak9/aCM5/SM5uQzxvGF6POgCx+Wh6sVglD59QaCbAf1D3NDilL7DrqUbSCy0mmmsEaVojUsQxA7Rbior1qIHPqatzn4SHVIQ4iYakr75pnSG2OMNmYpLNrAA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4nnedsHeDiEFp1HsXvQiXNMLNfyxh1rOKP1OQLerBsQ=;
 b=VqenwQ5/ijknhRrkA132fCrLsyUW8I3jMxoGZI0ecKH5YhqMhXqcUOrrUhTxk9CsVRv5nCYFLZkDX8Po4XKojajyUZeXA4DzumLuJtLHpWIXmO8vNfC06zfRk7MPeLufVUB+MeZeCHF+6/GX52Fz4XifmhOoMVgP9HexubA9ZC8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <36527d70-da8c-454d-8de4-54c29c3bd565@amd.com>
Date: Wed, 13 May 2026 08:32:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] CI: Add a Debian 13 (Trixie) arm64 container
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Stefano Stabellini
	<sstabellini@kernel.org>, Doug Goldstein <cardoe@cardoe.com>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
 <20260508212907.1643761-5-andrew.cooper3@citrix.com>
 <249ca124-b144-4c50-a0fb-3c0e6db5a1ca@amd.com>
 <d1037e15-cde7-40a1-9011-a02c23e870e8@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <d1037e15-cde7-40a1-9011-a02c23e870e8@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF0000468B:EE_|LV8PR12MB9452:EE_
X-MS-Office365-Filtering-Correlation-Id: cebb09d0-6e21-46e2-f354-08deb0b95ac6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700016|376014|11063799003|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	6UY5hknrLRijp+xBAGcuHv69gXo7Amtum2W1FuuMJtP6eZuLTEoUa5Zk96I7CIN5jCWTRS8mM2F1lKodXoo6ceF0x05T9qCM7+7pypX23m+sE5pTYHUzA8j6fpfKy5FyyOpRAwsXeh/00riPE4WlEfzyjLdRc6OQgYR4tjBUQLPSmKnqpL9MgTeddLWUsXvQteG2M06xR6RLzPu2zTHToATLZUlwq4Q/6HTTnBOciEy+P95Zbl/qnqxw5l76u2DN4XBmxkuDEb1H5Wecw9rXHUe8tXbQ6DkMo7VH91a4rZhqI7oGRW4cjE5BtA4e0C/zDgz3c1aawP7oJ6Ebih9uC0dj5QXHXAio4HReotP1F699F9WRdktO66zAKHuyMyBPXw5S2hBjeyM+T67oRH1MrlBtLG3rAibA/Y6j+hb3VJfalo8tzIOsdWmgSHSlwQy3IoiBJfCbUVCQpsvXRLFsvG0cP7a+gsX0OAuo2Uzf63am4jwFzNFjYGjqa7g5MGduXrvoNPE+4XIT0q53lQgsNqJVXkWQIdMlp51eequgxfQtkw3F6VkzMbO9PDRAkqsBv/yH6Fe7G148Y5VaBhrbx03hcM+UyeqR7EppDvIV9pBIKAJRAGeCRKm89vEsQ6H0Cuq3m61Dnmyy5mpNA3US77aFXidWak+BiGhxmWHXQ2lSr/4KOulzuExSBuwO7zHkgdLuY6ip8Jam4VskUorrU2BhfMO0pvASeiEO0zdKsAg=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700016)(376014)(11063799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	sGS48mLdiIbO2GCCBzp/YYm2b+t+g973Mt6TIG+Oz+ur5NqN6ONR56aWVy+p5Zr0qjslEXM37DVkNbLr4uX+AWClZ+jrZ9vKnPN7Qgys/4/YFp/s4tIvxzgwkNtcNdgpQxGkQiiIRWotV7LFkwb0I7Our+YRwIUvEQoSTEzf/RzMs0qEVkd7ubEvQ8kx+RZjFPYdQuqAoYaQmm7rS/2fp8FGgBpKCG3wnCvqXegUFh7jH/8ga7d2+s/htoMCumoqiylKbWVsKvdv1XQ8ONSHM4ASCfVQSdAg+uTfYu5tCbPIsznGQNyN2xJqogoHUxUx6q8AOLwfK/+Ej6oAeZvKs1DWmQQkbBJMf6zcRgj2UfxVypIcU7BIa4IZRVhD4i8Vubum9hVZOkQzpIau8J9XUMTY06eet1jTasqZUAt4E83cta82upBbWIDeL+cHTnrK
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 06:32:07.1222
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cebb09d0-6e21-46e2-f354-08deb0b95ac6
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF0000468B.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9452
X-purgate-ID: tlsNG-ef75cf/1778653931-23374C48-5C54813F/10/63158204843
X-purgate-type: spam
X-purgate-size: 4599



On 11-May-26 11:21, Andrew Cooper wrote:
> On 11/05/2026 7:29 am, Orzel, Michal wrote:
>>
>> On 08-May-26 23:29, Andrew Cooper wrote:
>>> Exactly as per the Bookworm container, but additionally with the ipxe-qemu and
>>> qemu-system-aarch64 packages.  These will be used to remove the export jobs.
>>>
>>> Switch qemu-arm{32,64} jobs to use this container.
>>>
>>> No functional change.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Anthony PERARD <anthony.perard@vates.tech>
>>> CC: Stefano Stabellini <sstabellini@kernel.org>
>>> CC: Michal Orzel <michal.orzel@amd.com>
>>> CC: Doug Goldstein <cardoe@cardoe.com>
>>>
>>> We should probably wire up some build tests too, but it's too late on a Friday
>>> for me to be thinking about that for this posting.
>>> ---
>>>  automation/build/debian/13-arm64v8.dockerfile | 71 +++++++++++++++++++
>>>  automation/gitlab-ci/test.yaml                |  4 +-
>>>  automation/scripts/containerize               |  1 +
>>>  3 files changed, 74 insertions(+), 2 deletions(-)
>>>  create mode 100644 automation/build/debian/13-arm64v8.dockerfile
>>>
>>> diff --git a/automation/build/debian/13-arm64v8.dockerfile b/automation/build/debian/13-arm64v8.dockerfile
>>> new file mode 100644
>>> index 000000000000..b9062ee8b443
>>> --- /dev/null
>>> +++ b/automation/build/debian/13-arm64v8.dockerfile
>>> @@ -0,0 +1,71 @@
>>> +# syntax=docker/dockerfile:1
>>> +FROM --platform=linux/arm64/v8 debian:trixie-slim
>>> +LABEL maintainer.name="The Xen Project"
>>> +LABEL maintainer.email="xen-devel@lists.xenproject.org"
>>> +
>>> +ENV DEBIAN_FRONTEND=noninteractive
>>> +
>>> +RUN <<EOF
>>> +#!/bin/bash
>>> +    set -eu
>>> +
>>> +    useradd --create-home user
>>> +
>>> +    apt-get update
>>> +
>>> +    DEPS=(
>>> +        # Xen
>>> +        bison
>>> +        build-essential
>>> +        checkpolicy
>>> +        flex
>>> +
>>> +        # Tools (general)
>>> +        ca-certificates
>>> +        cpio
>>> +        git-core
>>> +        pkg-config
>>> +        wget
>>> +        # libxenguest dombuilder
>>> +        libbz2-dev
>>> +        liblzma-dev
>>> +        liblzo2-dev
>>> +        libzstd-dev
>>> +        zlib1g-dev
>>> +        # libacpi
>>> +        acpica-tools
>>> +        # libxl
>>> +        libfdt-dev
>>> +        libjson-c-dev
>>> +        uuid-dev
>>> +        # xentop
>>> +        libncurses5-dev
>>> +        # Python bindings
>>> +        python3-dev
>>> +        python3-setuptools
>>> +        # Golang bindings
>>> +        golang-go
>>> +        # Ocaml bindings/oxenstored
>>> +        ocaml-nox
>>> +        ocaml-findlib
>> Since this is a container used only for tests, why listing packages required for
>> Xen and tools build?
> 
> I did leave a note about that.
> 
>>
>>> +
>>> +        # for test phase, qemu-* jobs
>>> +        busybox-static
>>> +        curl
>>> +        device-tree-compiler
>>> +        expect
>>> +        file
>>> +        ipxe-qemu
>>> +        ovmf
>>> +        qemu-system-aarch64
>>> +        u-boot-qemu
>>> +        u-boot-tools
>> So after this change, even though you replace debian-12 with debian-13 for all
>> the tests, the debian-12 still contains the unneeded packages (i.e. for a test
>> phase that it no longer runs).
> 
> Yes.  I can't do this series bisectably without it.  Also, in the past
Ok, I understand the bisectibility problem.
> people have explicitly requested to be able to run the qemu smoke
> testing from the build container, which is why it's like this and not split.
Unless it's a rule that every container follows and is documented somewhere I
don't like this argument. My plan then is to do the clean up of Arm containers
in the future to remove packages not used. It creates more confusion for people
willing to create their own dockerfiles for testing (or just to see what it
takes to build e.g. Xen on Arm) than it gives benefits.
> 
> Honestly, I was hoping to leave the Trixie update to the ARM
> maintainers, but despite the Bookworm QEMU (7.2) being newer than the
> 6.0 in the export jobs, it contains the SYSREG interception bugs which
> prevents hiding ThumbEE from guests, and breaks all the arm32 testing
> with a Linux dom0.
Does it make sense to have both Debian 12 and Debian 13 build/test? Can't we
have just the latest one?

All of the remarks above are not something that should prevent this patch from
going in, so:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal




From xen-devel-bounces@lists.xenproject.org Wed May 13 06:44:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 06:44:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307616.1579214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN3Ks-0004ha-9o; Wed, 13 May 2026 06:44:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307616.1579214; Wed, 13 May 2026 06:44:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN3Ks-0004hT-6z; Wed, 13 May 2026 06:44:50 +0000
Received: by outflank-mailman (input) for mailman id 1307616;
 Wed, 13 May 2026 06:44:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wN3Kr-0004hL-Dx
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 06:44:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN3Kq-001RW2-CS
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 08:44:48 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a041dd4-2eae-0a2a0a5409dd-0a2a450c9570-48
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 08:44:48 +0200
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a041de0-62f1-0a2a450c0019-d1558034e181-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 08:44:48 +0200
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-488a8ca4aadso57796565e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 23:44:48 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fcdf6408bsm29081335e9.3.2026.05.12.23.44.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 23:44:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Content-Language:Cc:To:Subject:From:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778654688; x=1779259488; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=ZUrH8i/YVTA1yhjN7VVQDsPDHU1txiZ6leU/AQLk+WA=;
        b=auMjt5Z3H3LYAK3irQq1Fxjq6qFNb0ef5GtxP8nDjvOC90Ddx5gyviCAxq7Y/XB0c/
         oacaH57TB02ML2lv/ZP0Ta17aTqC2oVRUXBqlkHJvAhyRxrARjLropbPEJnnnLzTe8+1
         9hhZK5sCwXk5MRFv3reVupJpKVuQs20pBnCUeDhSJbxa1WJZv/XzjYCjQfrfvour54CL
         O0VLntkpJr29SojPri5rAF6O+YAXvCY0qhKw5lpg3/+4d+J2yr0dNHp5Nix2XxVUf/Nv
         HkFhF5AMCveBYsP73g2Pr8zicBrjS+UJ1ewd9dfD/EooD2FVhB5zXm5Zs6Rl4Gz5Jm4l
         LTiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778654688; x=1779259488;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ZUrH8i/YVTA1yhjN7VVQDsPDHU1txiZ6leU/AQLk+WA=;
        b=Ch9Q4CO7X5djI3eAu40Rl41HoYHYQ7kgWQWjEi/6420KvwxJMwjc8XWNo8dEXw6DjP
         XiISG4m/ilg9GsldWDSr0ngLW4rq6aYPvmbx/9ULI9mBHwSF7T6LMKBTZa4LgVD5ir4l
         sW7GAdjZ4QXWVXKLeUHtwcJlp0udgEtJJYI0HZJEhvEhySFKXPRtrB24NG5jt7jrrmRS
         59dmfD5lEltNW4k+KOjKG2SVttVH0qEOe3lkYK4mm/9WSy4kw7Iey6qB7NSY7jYFlHQ7
         RteN/KWN8FrkmJBVRiqh1jDF9RVvI0GbfDGOHvngVJHsqEescHwmBRoJIc35Gup0NucX
         cGXQ==
X-Gm-Message-State: AOJu0YxSJPatc4LZ6Twdhu1THr0JAJ/zM06hbhPCeENAGwhImtYy8Fhk
	MdzkbFSJGRp545Ft4QeE/HQOf+GjntJR6m++VQf6auep0/S7MK4wwD9unyNi3G+S3gYa4s/zZ/9
	Hrac=
X-Gm-Gg: Acq92OHnemjy6UVj7RUJpbYM8KPVU15rVI1lUVT8K47PeSvanKo3dPe8ojyNCnV9SRy
	90bS8iy9/wet//sF4kfLWkC44LsFWCIKVISAuqsS8Y6l473uBMPmTcM6+VAuispCA98Ic+stg5f
	tX9Zjn4KTJNOV/riIsZxBjPBeECSmOzDHn3uDBUY7COBfhZSl252Z0s1K4L86IHT+zWMrlRb0y0
	eUvHDLSgsWNWKg+FaNrtIRWPXmCc6YDikf5vvMFGlNc1BS2j+YB4Y38NvChs4yb31jBsUPfaIzK
	gpivo8y/mU4YhukZP1Ij6VxdRITkV95n4gD8Pg8OgV8JVOKPsmNZbGwLeUYRCOqkjggoHKBlXRx
	Gs+SQu+ttBNdB/c9drIcbiMpsGwCjUZxP0ihcM8aI5RSh7JytAJ5UUo8l+1fPYacjTtqpaCY9RM
	mvweGUQPWqwIMBCUe9Bjb63XfFcrcX/BymQogCjQydJshAcnOID0MfZEOq2W39eV7+7viFT9XVk
	4ZZZzOwP3/vhSU=
X-Received: by 2002:a05:600d:4:b0:488:a2ac:a34c with SMTP id 5b1f17b1804b1-48fce9d6283mr15741225e9.12.1778654687560;
        Tue, 12 May 2026 23:44:47 -0700 (PDT)
Message-ID: <68b1607a-f2a1-4f53-84c5-43c61eeb1869@suse.com>
Date: Wed, 13 May 2026 08:44:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2 RFC] x86/time: avoid early uses of NOW() to return zero
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1778654688-DA368CF5-9A085F9D/0/0
X-purgate-type: clean
X-purgate-size: 5826

Waiting loops like the one in flush_command_buffer() will degenerate to
infinite ones when used early enough for NOW() to still return constant
zero. Make sure the returned value at least monotonically increases. When
available, use nominal frequency values as initial approximation.

Do this only in get_s_time(), as producing a sane value in
get_s_time_fixed() for non-zero inputs won't be reasonably possible.
Put an assertion there.

Reported-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
RFC: This breaks at least the TSM_BOOT case printk_start_of_line(), which
     checks for NOW() returning 0 (falling back to TSM_RAW in this case).
     For now I have no idea how to avoid this; perhaps that's tolerable at
     least in the case where we put in place an early estimate? Should we
     maybe weaken the fallback condition to take effect for any value
     below 1μs?

RFC: While generally the mentioned waiting loops will take longer to time
     out, on a very fast CPU tight loops may time out too early.

RFC: For the AMD/Hygon case, if the "nominal" value isn't available, we
     could use the "high" one. That would cause NOW() to run too slowly
     (until the scale is properly set), but maybe that's still better than
     it returning 0? (As it stands, I can't really test the new code
     there, as my Rome system only supplies the lo/hi pair of values.)

RFC: On the 2nd pass through early_cpu_init() it may be okay to skip the
     new additions.

With "x86/time: set AP's TSC scale estimate earlier" the counter update
may not need to be atomic anymore, as then only the BSP can reasonably hit
that path.

I don't think Fixes: tags should be put here. If we did, we'd have to
enumerate all introductions of early uses of NOW() (or get_s_time()), with
the exception of those dealing with getting back 0 (which I expect is only
printk_start_of_line()). Will want backporting nevertheless (unless deemed
too risky).
---
v2: Add assertion to get_s_time_fixed(). Use nominal frequencies for very
    early setting, if available.

--- unstable.orig/xen/arch/x86/cpu/common.c	2026-05-13 08:35:28.640503356 +0200
+++ unstable/xen/arch/x86/cpu/common.c	2026-05-12 12:30:35.475284195 +0200
@@ -19,6 +19,7 @@
 #include <asm/random.h>
 #include <asm/setup.h>
 #include <asm/shstk.h>
+#include <asm/time.h>
 #include <asm/xstate.h>
 
 #include <public/sysctl.h>
@@ -403,6 +404,25 @@ void __init early_cpu_init(bool verbose)
 				    &c->x86_capability[FEATURESET_7d1]);
 	}
 
+	if (c->cpuid_level >= 0x15) {
+		cpuid(0x15, &eax, &ebx, &ecx, &edx);
+
+		if (ecx && ebx && eax)
+			preset_tsc_scale(DIV_ROUND_UP(ecx * 1UL * ebx, eax));
+		else if (c->cpuid_level >= 0x16) {
+			/* Assume CPU base freq ≈ TSC freq. */
+			cpuid(0x16, &eax, &ebx, &ecx, &edx);
+			if (eax)
+				preset_tsc_scale(eax * 1000000UL);
+		}
+	} else if (c->vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) {
+		unsigned int nom_mhz = 0;
+
+		amd_process_freq(c, NULL, &nom_mhz, NULL);
+		if (nom_mhz)
+			preset_tsc_scale(nom_mhz * 1000000UL);
+	}
+
 	eax = cpuid_eax(0x80000000);
 	if ((eax >> 16) == 0x8000 && eax >= 0x80000008) {
 		ebx = eax >= 0x8000001f ? cpuid_ebx(0x8000001f) : 0;
--- unstable.orig/xen/arch/x86/include/asm/time.h	2026-05-13 08:35:28.640503356 +0200
+++ unstable/xen/arch/x86/include/asm/time.h	2026-05-12 12:25:14.435489339 +0200
@@ -23,6 +23,7 @@ mktime (unsigned int year, unsigned int
 int time_suspend(void);
 int time_resume(void);
 
+void preset_tsc_scale(unsigned long freq);
 void init_percpu_time(void);
 void time_latch_stamps(void);
 
--- unstable.orig/xen/arch/x86/time.c	2026-05-13 08:35:28.640503356 +0200
+++ unstable/xen/arch/x86/time.c	2026-05-13 08:33:54.000000000 +0200
@@ -1655,6 +1655,9 @@ s_time_t get_s_time_fixed(u64 at_tsc)
     const struct cpu_time *t = &this_cpu(cpu_time);
     u64 tsc, delta;
 
+    /* scale_delta() degenerates when the scale wasn't set yet. */
+    ASSERT(t->tsc_scale.mul_frac);
+
     if ( at_tsc )
         tsc = at_tsc;
     else
@@ -1670,6 +1673,20 @@ s_time_t get_s_time_fixed(u64 at_tsc)
 
 s_time_t get_s_time(void)
 {
+    /*
+     * Before the TSC scale is set, avoid returning constant 0 (or whatever
+     * this_cpu(cpu_time).stamp.local_stime is set to).  While the returned
+     * value is in no way representing time, it at least increases
+     * monotonically, thus avoiding e.g. waiting loops to degenerate to
+     * entirely infinite ones.
+     */
+    if ( unlikely(!this_cpu(cpu_time).tsc_scale.mul_frac) )
+    {
+        static s_time_t counter;
+
+        return arch_fetch_and_add(&counter, 1);
+    }
+
     return get_s_time_fixed(0);
 }
 
@@ -2623,6 +2640,21 @@ int __init init_xen_time(void)
     return 0;
 }
 
+/* BSP-only function to pre-set an approximate TSC scale. */
+void __init preset_tsc_scale(unsigned long freq)
+{
+    struct cpu_time *t = &this_cpu(cpu_time);
+
+    /*
+     * The incoming frequency is only approximate (nominal).  Increase it by
+     * 1% to make NOW() output rather a little too slow than too fast, thus
+     * avoiding a possible backwards jump once the final scale is set.
+     */
+    freq += DIV_ROUND_UP(freq, 100);
+
+    set_time_scale(&t->tsc_scale, freq);
+    t->stamp.local_tsc = boot_tsc_stamp;
+}
 
 /* Early init function. */
 void __init early_time_init(void)
@@ -2640,6 +2672,9 @@ void __init early_time_init(void)
                    "TSC ADJUST set to %lx on boot CPU - clearing\n", tmp);
             wrmsrl(MSR_IA32_TSC_ADJUST, 0);
             boot_tsc_stamp -= tmp;
+
+            if ( t->stamp.local_tsc )
+                t->stamp.local_tsc -= tmp;
         }
     }
 


From xen-devel-bounces@lists.xenproject.org Wed May 13 06:54:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 06:54:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307624.1579225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN3To-0006Xa-6V; Wed, 13 May 2026 06:54:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307624.1579225; Wed, 13 May 2026 06:54:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN3To-0006XT-2R; Wed, 13 May 2026 06:54:04 +0000
Received: by outflank-mailman (input) for mailman id 1307624;
 Wed, 13 May 2026 06:54:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wN3Tm-0006XN-Hz
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 06:54:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN3Tl-001TRv-Ra
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 08:54:01 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a042000-e002-0a2a0a5209dd-0a2a4506b008-36
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 08:54:01 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a042009-7371-0a2a45060019-d1558033e0e7-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 08:54:01 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-488b0e1b870so107085685e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 May 2026 23:54:01 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e8f410d9fsm49248815e9.6.2026.05.12.23.53.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 May 2026 23:54:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778655241; x=1779260041; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0WQBOK2y5ytwxP8GeopHUORAq13cq7X0A3saVGSqMMM=;
        b=ViV2wDZIoLnwkdFp3VDV1sDNuqM3UCZloKdFZ0poW163zEgJUh71qzMQvHEv35VLB6
         lLO+g8AdIcDHwFbKqVjgGy07Zem5Bg+RymGE4TyQ6kVY18seSXtqGBQzoG3ZMIGUFTLy
         BgOm/7ir9JTrpx6jUvrlNGiYw6ZLZv/m98uv6CKyJyOz0+fwRmnQUbAOFJ3XGv4RNEgd
         XeeHasKTrJV5nE+MA9mIZ0ZSXr2x+0NiDi2I8FMZkD8sCtbQRDFKM89ZwK04HRYEgl91
         eE7a2Qct7CpkhyEZlRo4KbqMXqYjn3PNUaVurnxjcnaAWpVsHH79kBVA5ddKy1iLZTS3
         CXqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778655241; x=1779260041;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0WQBOK2y5ytwxP8GeopHUORAq13cq7X0A3saVGSqMMM=;
        b=IeMIoDUEB1hkKdc2h5THn7SjoYgqPopAwHSNiGNHpJUxOMUAf85l9mWUS9bGyw1vJl
         jMLqYPfDjV8rvjwftuj4GZeYX0V04BqeugF7HO6KalqzR/o7YXRDvE/EyV41W8zjnOEF
         g+qqBiZkOrfKiFfGqoih8hPEa/FaXsHeA4jB+fd5sKDLCZM1NaabTxlljPyrK7faoTEb
         /HVBtFGjBt86CPvRr0v8/lTOEgBi0vsEBks9yc9Rru76/5v9pJDbn9ll6M5/GgFGCm7b
         QnWAf8oTQ5dL9nYZ3iluHrcwK0DmSbwOlquP+2r5fcOcgDI6mWlaFJ0Arp7ZU91V7eDH
         TEvQ==
X-Forwarded-Encrypted: i=1; AFNElJ+ykg0sE6zbF7t3WOzThck4kcZl1mQmxp/ZsO8tIOoZNl2UvumOrAfsD6IX0n/L9e67t9QbeSxLvV0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1GCBrlELJ1AYqzR9XgqvIF6lSLpWl0mMjxL1J0U1p6czrO8+r
	fHHDrQKcXFRRib2QrE6CEmztjBxMmnUNG55GzE9g2rF8AVTtpK02TEZ0eJQYHavPfw==
X-Gm-Gg: Acq92OFJddW/NQCUR6UJXCokvnsiQqZgGA8vAzJrfNUwjz/BDA+lFWqwCSVUUw6hqdd
	yGIq/NanB9FCwt0YHvH/TQcn3LR68blA9yLzcm64dqgbBX3yS74iestOhjL7FnrRUTo76mxWmBC
	c58lX49LHyZcatOuNeCseE28SiZ0gAbrze+CmNGsSsnc2rlb6+d01TjkO7357sJgfd3WXDHKPlT
	24YyL23CWaKsXFYNKk+zMfX12oAx5kFJbDaLXQmZrFkpobpXcDj6x4VTmnuvg/uMFf8rpXfGg8B
	cpwN0OxV8dIHFBXEfVbW+6KOb1fdcE+l6nK6NIdDLn2+a56CmBWeCg/ES4lPrPWFocFSpC1pIVy
	+XLQ77eNWdNhXbLYttpZ7lRWDXAriqdcvySl9hJSXQFKaIQxIsDpYrgK4LYhohgNTT53tbOp4j4
	DsJIfmUlWP6N6bQnEAH551ZDYXR6PFYu5c750pZQ8+HpU9ePHTsggGcB85zNliKdPN8i3l4PtAj
	pGHRzWCOj0U+kg=
X-Received: by 2002:a05:600c:8705:b0:487:5c0:671f with SMTP id 5b1f17b1804b1-48fce9c731dmr18906225e9.9.1778655240745;
        Tue, 12 May 2026 23:54:00 -0700 (PDT)
Message-ID: <7a540913-adc4-4172-9108-9c91eaf854fe@suse.com>
Date: Wed, 13 May 2026 08:53:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 12/13] xen/arm: Add vPSCI SYSTEM_SUSPEND policy
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Rahul Singh <rahul.singh@arm.com>, xen-devel@lists.xenproject.org
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <06448a30ef6694a55ac85d4c8c78ca2d71342430.1778605274.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <06448a30ef6694a55ac85d4c8c78ca2d71342430.1778605274.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1778655241-8EB8BD75-C0D0E279/0/0
X-purgate-type: clean
X-purgate-size: 6329

On 12.05.2026 19:07, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> Introduce CONFIG_HAS_HWDOM_SYSTEM_SUSPEND as an architecture-selected
> capability for platforms where the hardware domain can be parked with
> SHUTDOWN_suspend without calling hwdom_shutdown().
> 
> Expose PSCI SYSTEM_SUSPEND as a vPSCI operation for all domains. For
> non-control domains, including the hardware domain when it is not acting as a
> control domain, the call is handled as a guest/domain suspend request and
> parks the domain in SHUTDOWN_suspend.
> 
> Control domains need additional sequencing because their SYSTEM_SUSPEND
> request is used to coordinate host-wide suspend. A non-last awake control
> domain may be parked in SHUTDOWN_suspend without requiring the host suspend
> path to be available. The last awake control domain is treated as the point
> where the request becomes a host-suspend request, and it may only proceed
> when all non-control domains are already in SHUTDOWN_suspend and the host
> suspend path is available.
> 
> Keep the control-domain sequencing and domain-readiness checks out of
> PSCI_FEATURES. They are per-attempt runtime conditions rather than stable PSCI
> function availability. Advertise SYSTEM_SUSPEND as implemented by vPSCI and
> enforce the sequencing policy in the call handler.
> 
> Select HAS_HWDOM_SYSTEM_SUSPEND independently from CONFIG_SYSTEM_SUSPEND so
> that SHUTDOWN_suspend from the hardware domain can be treated as a domain
> suspend state rather than as a hardware-domain initiated host shutdown. This
> does not by itself imply that host-wide suspend is available.
> 
> Add host_system_suspend_allowed() to combine the host PSCI SYSTEM_SUSPEND
> capability with runtime blockers reported by Xen-owned subsystems. Add
> runtime blockers for registered serial, IOMMU, GIC and SMMUv3 MSI IRQ paths
> lacking suspend/resume support. These blockers are runtime based, so they
> only apply to drivers or paths that Xen actually uses on the platform. For
> SMMUv3, the blocker applies only when Xen actually uses the MSI IRQ path,
> since resume does not restore the SMMU *_IRQ_CFGn MSI registers yet.
> 
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
>  xen/arch/arm/Kconfig                  |   1 +
>  xen/arch/arm/gic.c                    |   6 ++
>  xen/arch/arm/include/asm/psci.h       |   3 +
>  xen/arch/arm/include/asm/suspend.h    |  10 ++-
>  xen/arch/arm/psci.c                   |   7 ++
>  xen/arch/arm/suspend.c                |  40 +++++++++
>  xen/arch/arm/vpsci.c                  | 114 +++++++++++++++++++++++---
>  xen/common/Kconfig                    |   3 +
>  xen/common/domain.c                   |   7 +-
>  xen/drivers/char/serial.c             |  12 +++
>  xen/drivers/passthrough/arm/iommu.c   |   4 +
>  xen/drivers/passthrough/arm/smmu-v3.c |   4 +
>  xen/include/xen/serial.h              |   1 +
>  xen/include/xen/suspend.h             |   2 +
>  14 files changed, 201 insertions(+), 13 deletions(-)
> 

Contrary to what the cover letter says, there's no revlog here.

> --- a/xen/arch/arm/suspend.c
> +++ b/xen/arch/arm/suspend.c
> @@ -1,9 +1,49 @@
>  /* SPDX-License-Identifier: GPL-2.0-only */
>  
> +#include <asm/psci.h>
>  #include <asm/suspend.h>
>  
> +#include <xen/lib.h>
> +#include <xen/serial.h>
> +
>  struct resume_cpu_context resume_cpu_context;
>  
> +/*
> + * Non-PSCI infrastructure can make host suspend impossible even when the PSCI
> + * SYSTEM_SUSPEND conduit is present, e.g. when a Xen-owned driver has no valid
> + * suspend/resume path.
> + *
> + * This gate is checked only when the last awake control domain attempts to
> + * turn a guest SYSTEM_SUSPEND request into a host-suspend request.
> + */
> +static bool host_system_suspend_runtime_allowed = true;
> +
> +static bool host_serial_suspend_allowed(void)
> +{
> +    if ( serial_suspend_supported() )
> +        return true;
> +
> +    printk_once(XENLOG_INFO
> +                "Host SYSTEM_SUSPEND blocked: serial driver lacks suspend/resume support\n");

Please try to keep log messages down to a reasonable size. In the case here,
what value does "suspend/resume" add?

> +static int32_t domain_psci_system_suspend_policy(struct domain *d)
> +{
> +    struct domain *other;
> +    bool last_awake_control_domain = true;
> +    bool awake_non_control_domain = false;
> +
> +    /* Only control domains participate in sequencing policy. */
> +    if ( !is_control_domain(d) )
> +        return 0;
> +
> +    rcu_read_lock(&domlist_read_lock);
> +
> +    for_each_domain ( other )
> +    {
> +        bool suspended;
> +
> +        if ( other == d )
> +            continue;
> +
> +        suspended = domain_in_suspend_state(other);
> +        if ( suspended )
> +            continue;
> +
> +        if ( is_control_domain(other) )
> +        {
> +            last_awake_control_domain = false;
> +            break;
> +        }
> +
> +        awake_non_control_domain = true;
> +    }
> +
> +    rcu_read_unlock(&domlist_read_lock);
> +
> +    /*
> +     * Another control domain is still awake. This request is only the first
> +     * phase of the sequencing: park this control domain and leave the host
> +     * running. Host-wide suspend gates must not block this intermediate state.
> +     */
> +    if ( !last_awake_control_domain )
> +        return 0;
> +
> +    /*
> +     * This is the last awake control domain. It must not be parked unless the
> +     * request can proceed as a host-suspend request; otherwise Xen would lose
> +     * the last domain that can coordinate the system suspend.
> +     */
> +    if ( awake_non_control_domain )
> +    {
> +        printk(XENLOG_DEBUG
> +               "SYSTEM_SUSPEND denied: last awake control domain dom%u requested host suspend while non-control domains are still awake\n",
> +               d->domain_id);

Same here, plus please use %pd.

> --- a/xen/drivers/char/serial.c
> +++ b/xen/drivers/char/serial.c
> @@ -497,6 +497,8 @@ const struct vuart_info *serial_vuart_info(int idx)
>  
>  #ifdef CONFIG_SYSTEM_SUSPEND
>  
> +static bool __read_mostly serial_suspend_available = true;

__ro_after_init?

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 13 07:35:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 07:35:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307638.1579232 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN47J-0003wd-1x; Wed, 13 May 2026 07:34:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307638.1579232; Wed, 13 May 2026 07:34:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN47I-0003wW-VW; Wed, 13 May 2026 07:34:52 +0000
Received: by outflank-mailman (input) for mailman id 1307638;
 Wed, 13 May 2026 07:34:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wN47G-0003wO-QI
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 07:34:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN47G-003ZpV-1u
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 09:34:50 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a042995-e002-0a2a0a5209dd-0a2a4502b3a2-12
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 09:34:49 +0200
Received: from [40.107.200.1]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a042997-af86-0a2a45020019-286bc8010fdd-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 09:34:49 +0200
Received: from CH0PR13CA0020.namprd13.prod.outlook.com (2603:10b6:610:b1::25)
 by SA1PR12MB999107.namprd12.prod.outlook.com (2603:10b6:806:4a2::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Wed, 13 May
 2026 07:34:40 +0000
Received: from CH3PEPF00000010.namprd04.prod.outlook.com
 (2603:10b6:610:b1:cafe::63) by CH0PR13CA0020.outlook.office365.com
 (2603:10b6:610:b1::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.17 via Frontend Transport; Wed, 13
 May 2026 07:34:40 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000010.mail.protection.outlook.com (10.167.244.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Wed, 13 May 2026 07:34:39 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 02:34:39 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 00:34:39 -0700
Received: from [10.252.145.116] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 13 May 2026 02:34:37 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wlryTcnyNbBveaz2Yjh6snIpO6RM81aAd4k4wtd4xcROQxvNdXXSHIT46Q5kOmFdwpFQUursfLrEa+VcFG6PUdltsz20KlCv9cvqVjnGOtx4IDnfOthmrR8dlnW9i4M7xaDMtqbLmcZo9JyOkra1c19dtIXB766a1PUdl9S7GZY6zyq7B+K4y0JB2Cts/Zs5h1Z8YwtZSkkx5GngoQsJpZ22CmqZXxGqzaaaaB/A2++hzwMIEz0bQEWL7VpdSHylW5TvMPxQwps/+2EVn1ZqiMDfjrNWs8EkaTLFqbnI2Dp6wYsVowxWvPgRzNrh5gvgl3Nz0rAmMpL+CWjZMUNz/A==
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=U1VlGwiKFIn3nfu3rl8MUo5VieFoKPN42QSZBbZM11A=;
 b=iQB50aFBFtVHWLffiw/2iG5pA27PZCtf62m9/rDTaZriRbS7oQIXl8T2mU0vf9kImhBOjte5ia443IBy7lfnF1xxIQ5ZTPjNiqpnd7s6JwEwkWEDoMdsWojjVm+sm4szrwsC0sNs+83j0xtpPRtuJwk1xPtlALNUYJXOg6FYJps3beh63sTZkIz7UTxzOjxmg/n7Eaae2f2vh3Mn9L6n7D9P7wDiCWN0VnsTVC2BJtEW3aXvqC84rwCG1rq12WoJtJCenGncGBKFaydpH4S2SwdX/b4HFofwHqIP5dY7mFqtqKs1MXP6bw8lp2s1uKI3+DFyLmp3Yv5OiT6JkqEGNg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=U1VlGwiKFIn3nfu3rl8MUo5VieFoKPN42QSZBbZM11A=;
 b=RMuk8nL3x/t5nwoJI9w3oMVrRZQdtTQ10oZKRv0th0iDCwdzn2Hmn6N34DVsw9cLDVxyNojUXCelMil/i1TzKgCIqHTemSdBP7F5Zt6Mr6MJTMvVHHOinwUXdaXFNhtEr2aYG//1xBq/X2Uc8XLklCbvLhYScMnvzWPKMFlaUck=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <12115791-513e-4d1b-956c-6b0c00bebe3b@amd.com>
Date: Wed, 13 May 2026 09:34:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
To: Luca Fancellu <luca.fancellu@arm.com>, <xen-devel@lists.xenproject.org>
CC: Harry Ramsey <harry.ramsey@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260512175729.1915120-1-luca.fancellu@arm.com>
 <20260512175729.1915120-3-luca.fancellu@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260512175729.1915120-3-luca.fancellu@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF00000010:EE_|SA1PR12MB999107:EE_
X-MS-Office365-Filtering-Correlation-Id: 79b4ad87-142f-44fd-e4a4-08deb0c2179f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|7416014|1800799024|82310400026|11063799003|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	X6ovzJL4stbQyl//0NOVFfXOxl+AI3Qd0Fg0AZEQ7unjAN1HmqpfLig1Ie6GkTUoh7nnpIJ2N8Ka2j/wlDuXOAv8mbfvc+7Yl6Pc5lSPsYJy0DQ2s4sAZ/4MKog4GaYQk/AdFXjWWL9Xdxzg3Ve843VYfVQrl2TFjqZbN+gNyHAN2S6kPEKoO2NKPDD9Z7+AEBjUVPP1PEeZMoBOqhG/uekV81lePJhfTd3PjFLgoOReh3QDpO/gTbbwCspe2xrF2EFE9puDSswfwlzKAh3ib2vDU5/1TBuFYGOdboP2ge2jU6W4XvnfiS9v9GBO4b0gl1XK69a8xliXUyiFZI07DWJkLvUdxovyXiKmGrDvUFDCvG53AhzPn+n74gfjQjyRbvujItoZlY1kdfCGghXrYaoEKL++ybtxFV5LvgiP4RQlOdKFf+O4KJPs17oFh0ao3HOnVA5OGRovWzmYdLZAUQZ9nXm0rBUghrICr1kmDaI4GQORD81b1M/pUdwj8/xa1O4+xurcpOBNt2UVgIZ7NvCwoBk0oRPHZf0q8JE1gZssMzX1BfA3j3T2+6sh9BrfkLYb2e9lvfHh4iB8SBTIFLvX+doXSvnFfqUkO/GJQsyE/rusLyHWQpgda7zL04zR4ZLW7691hkQIn6plfMAjhWFFvS7Ct8mWKNSTIllxWiLzethfHlDFE+bvU7/lkFtgw0scz6dFEyqa42Fe4LTRLHVemebwz++0kFKDK0Jgb3Q=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(7416014)(1800799024)(82310400026)(11063799003)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	nmNLfDK6cLJIR+AncfkfsfIMUY26lKA57PdTC2s0vTqWNe4wwoFjlpTSvVxIqVAn1foUSS8Sv2NCKdobOP1mKBCXal19JQIzPLZ8xT8UW7+4eFNpGmmtx2J8j/TDtdr2AOzPC17iuIRqqyPFSHpkWRbMSBkyi3j6kr7YTAlWvBfoiDKRlUGucd9dLofP0oS5MasK6iMJhtcKcE0s3oaXdDNDZswS/lQK1WNy1zTxdnxN7ZXnjbeTkoEvUtyxYnLvs2WPqwsurChiFC3Epgo2sF33ZF2uM5QqhmElw0iwCbAyS76Kqj1d3iNv6GbFop0nylfc5s+mtM0TWJDiwTtYjD5XqEyp0tLyYejSewcNV6ptvnExdPN8Vprr/h80gAWqk3nIP6fjZKHFU9xP5anXVqQD2MIfo7MKccZdsoeti6l3aAjsChAanjwfpDM5C6F6
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 07:34:39.9353
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 79b4ad87-142f-44fd-e4a4-08deb0c2179f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH3PEPF00000010.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB999107
X-purgate-ID: tlsNG-720697/1778657689-A9B70161-1E4B1D7A/0/0
X-purgate-type: clean
X-purgate-size: 14499



On 12-May-26 19:57, Luca Fancellu wrote:
> From: Harry Ramsey <harry.ramsey@arm.com>
> 
> Add a new device tree property `v8r_el1_msa` to select the MSA (memory
> system architecture) at EL1 for Armv8-R architecture: MPU or MMU, the
> former is the default if the property is not passed.
> 
> Implement the dom0less path to parse the new device tree property, add
> a new domctl hypercall input parameter `v8r_el1_msa` for arm and
> add the sanitisation in arch_sanitise_domain_config(), the parameter
> is intended to be used on CONFIG_MPU systems and returns an error if
> selected for MMU.
> 
> While there, add explicit padding and check that it's zero during
> arch domain config sanitisation, given the breaking change, bump the
> XEN_DOMCTL_INTERFACE_VERSION.
> 
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> v6:
>  - Add explicit padding to `struct xen_arch_domainconfig` and check it
>  - Provide common v8r_el1_msa_domain_sanitise_config() for MMU/MPU
>  - During domu_dt_v8r_el1_msa_parse() set PMSA when property not present
>  - constify *node in domu_dt_v8r_el1_msa_parse()
>  - Print full path of the node in domu_dt_v8r_el1_msa_parse() error msgs
>  - typo fixing
> v5:
>  - follow the way domu_dt_sci_parse and ARM_SCI is doing, but
>    return error if property is present in MMU systems.
>  - Align the commit message on the new changes
>  - fix documentation
>  - fix multiline comment
>  - drop the explicit padding from struct xen_arch_domainconfig
> v4:
> - Rework the patch to have the v8r_el1_msa input parameter more
>   enclosed in the Armv8-A (mmu)/Armv8-R (mpu) space.
> v3:
> - Improve commit message and device tree property description
> - Remove macro protection
> - Remove unused function is_mpu_domain
> - Code formatting
> ---
>  docs/misc/arm/device-tree/booting.txt   | 14 +++++
>  xen/arch/arm/dom0less-build.c           | 74 +++++++++++++++++++++++++
>  xen/arch/arm/domain.c                   | 37 +++++++++++++
>  xen/arch/arm/include/asm/domain.h       |  4 ++
>  xen/arch/arm/include/asm/domain_build.h | 10 ++++
>  xen/arch/arm/mpu/arm32/mm.c             |  7 +++
>  xen/arch/arm/mpu/arm64/mm.c             |  7 +++
>  xen/include/public/arch-arm.h           |  7 +++
>  xen/include/public/domctl.h             |  4 +-
>  9 files changed, 162 insertions(+), 2 deletions(-)
> 
> diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
> index 977b4286082f..f73839df090b 100644
> --- a/docs/misc/arm/device-tree/booting.txt
> +++ b/docs/misc/arm/device-tree/booting.txt
> @@ -322,6 +322,20 @@ with the following properties:
>      Should be used together with scmi-smc-passthrough Xen command line
>      option.
>  
> +- v8r_el1_msa
> +
> +    A string property specifying whether, on Armv8-R systems at EL1, a domain
> +    should use PMSAv8 (MPU) or VMSAv8 (MMU).
> +
> +    - "mmu"
> +    Enables VMSAv8 at EL1. This requires hardware support and is only
> +    optionally available on AArch64. Not supported on AArch32.
> +
> +    - "mpu"
> +    Enables PMSAv8 at EL1. This is the default behavior when the property is
> +    not passed. This configuration requires static allocation (xen,static-mem)
> +    and direct mapping (direct-map).
> +
>  Under the "xen,domain" compatible node, one or more sub-nodes are present
>  for the DomU kernel and ramdisk.
>  
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index 52cf788a45ea..fecdb33d3e3a 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -302,6 +302,77 @@ static int __init domu_dt_sci_parse(struct dt_device_node *node,
>      return 0;
>  }
>  
> +static int __init
> +domu_dt_v8r_el1_msa_parse(const struct dt_device_node *node,
> +                          struct xen_domctl_createdomain *d_cfg,
> +                          unsigned int flags)
> +{
> +    bool property_present = dt_property_read_bool(node, "v8r_el1_msa");
I know it's present in the code for SCI, but it's not really necessary to do the
DT parsing twice (once for boot, second for string given that
dt_property_read_string returns -EINVAL if no property found).

You could move this bool check ...

> +
> +    if ( !IS_ENABLED(CONFIG_MPU) )
> +    {
> +        d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE;
> +
> +        if ( !property_present )
... here.

> +            return 0;
> +
> +        printk(XENLOG_ERR
> +               "Not supported 'v8r_el1_msa' DT property found for domain %s\n",
> +               dt_node_full_name(node));
> +        return -EINVAL;
> +    }
> +
> +    if ( !property_present )
> +        d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA;
> +    else
> +    {
> +        const char *v8r_el1_msa;
> +        int ret = dt_property_read_string(node, "v8r_el1_msa", &v8r_el1_msa);
> +
> +        if ( ret )
> +            return ret;
> +
> +        if ( !strcmp(v8r_el1_msa, "mpu") )
> +            d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA;
> +        else if ( !strcmp(v8r_el1_msa, "mmu") )
> +            d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA;
> +        else
> +        {
> +            printk(XENLOG_ERR
> +                   "v8r_el1_msa value (%s) not valid for domain %s\n",
> +                   v8r_el1_msa, dt_node_full_name(node));
> +            return -EINVAL;
> +        }
> +    }
> +
> +    switch ( d_cfg->arch.v8r_el1_msa )
> +    {
> +    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA:
> +        if ( !(flags & CDF_staticmem) || !(flags & CDF_directmap) )
> +        {
> +            printk(XENLOG_ERR
> +                   "PMSA is not valid for domain (%s) without static allocation and direct map (v8r_el1_msa)\n",
> +                   dt_node_full_name(node));
> +            return -EINVAL;
> +        }
> +        break;
> +
> +    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA:
> +        if ( !has_v8r_vmsa_support() )
> +        {
> +            printk(XENLOG_ERR
> +                   "Platform doesn't support VMSA at EL1 (v8r_el1_msa)\n");
> +            return -EINVAL;
> +        }
> +        break;
> +
> +    default:
> +        return -EINVAL;
> +    }
> +
> +    return 0;
This does not look very clean. How about:

static int __init
domu_dt_v8r_el1_msa_parse(const struct dt_device_node *node,
                          struct xen_domctl_createdomain *d_cfg,
                          unsigned int flags)
{
    const char *value;
    int ret;

    if ( !IS_ENABLED(CONFIG_MPU) )
    {
        d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE;

        if ( !dt_property_read_bool(node, "v8r_el1_msa") )
            return 0;

        printk(XENLOG_ERR
               "v8r_el1_msa not supported on this build for domain %s\n",
               dt_node_full_name(node));
        return -EINVAL;
    }

    ret = dt_property_read_string(node, "v8r_el1_msa", &value);
    /* property absent: PMSA is the default */
    if ( ret == -EINVAL )
        value = "mpu";
    else if ( ret )
        return ret;

    if ( !strcmp(value, "mpu") )
    {
        if ( !(flags & CDF_staticmem) || !(flags & CDF_directmap) )
        {
            printk(XENLOG_ERR
                   "v8r_el1_msa=mpu requires static-mem and direct-map for
domain %s\n",
                   dt_node_full_name(node));
            return -EINVAL;
        }
        d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA;
        return 0;
    }

    if ( !strcmp(value, "mmu") )
    {
        if ( !has_v8r_vmsa_support() )
        {
            printk(XENLOG_ERR
                   "v8r_el1_msa=mmu unsupported by platform for domain %s\n",
                   dt_node_full_name(node));
            return -EINVAL;
        }
        d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA;
        return 0;
    }

    printk(XENLOG_ERR "v8r_el1_msa value '%s' not valid for domain %s\n",
           value, dt_node_full_name(node));
    return -EINVAL;
}


> +}
> +
>  int __init arch_parse_dom0less_node(struct dt_device_node *node,
>                                      struct boot_domain *bd)
>  {
> @@ -315,6 +386,9 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
>      if ( domu_dt_sci_parse(node, d_cfg) )
>          panic("Error getting SCI configuration\n");
>  
> +    if ( domu_dt_v8r_el1_msa_parse(node, d_cfg, flags) )
> +        panic("Error getting v8r_el1_msa configuration\n");
> +
>      if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
>      {
>          int vpl011_virq = GUEST_VPL011_SPI;
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 26380a807cad..e579c3b1bb3c 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -18,6 +18,7 @@
>  #include <asm/cpuerrata.h>
>  #include <asm/cpufeature.h>
>  #include <asm/current.h>
> +#include <asm/domain_build.h>
You don't seem to use anything from this header.

>  #include <asm/event.h>
>  #include <asm/gic.h>
>  #include <asm/guest_atomics.h>
> @@ -538,6 +539,24 @@ void vcpu_switch_to_aarch64_mode(struct vcpu *v)
>      v->arch.hcr_el2 |= HCR_RW;
>  }
>  
> +static bool v8r_el1_msa_domain_sanitise_config(
> +    const struct xen_domctl_createdomain *config)
> +{
> +    uint8_t v8r_el1_msa = config->arch.v8r_el1_msa;
That is not a useful assignment.

> +
> +    if ( !IS_ENABLED(CONFIG_MPU) )
> +        return v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE;
> +
> +    if ( IS_ENABLED(CONFIG_ARM_32) )
> +        return v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA;
> +
> +    if ( IS_ENABLED(CONFIG_ARM_64) )
> +        return (v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA) ||
> +               (v8r_el1_msa == XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA);
> +
> +    return false;
Arm32 and Arm64 are mutually exclusive, so this line is unreachable.
How about:
  static bool v8r_el1_msa_domain_sanitise_config(
      const struct xen_domctl_createdomain *config)
  {
      switch ( config->arch.v8r_el1_msa )
      {
      case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE:
          return !IS_ENABLED(CONFIG_MPU);

      case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA:
          return IS_ENABLED(CONFIG_MPU);

      case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA:
          return IS_ENABLED(CONFIG_MPU) && IS_ENABLED(CONFIG_ARM_64);

      default:
          return false;
      }
  }

> +}
> +
>  int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>  {
>      unsigned int max_vcpus;
> @@ -554,6 +573,14 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>          return -EINVAL;
>      }
>  
> +    /* Check config structure padding */
> +    if ( config->arch.pad )
> +    {
> +        dprintk(XENLOG_INFO,
> +                "Invalid domain configuration during domain creation\n");
> +        return -EINVAL;
> +    }
> +
>      /* Check feature flags */
>      if ( sve_vl_bits > 0 )
>      {
> @@ -630,6 +657,12 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>          return -EINVAL;
>      }
>  
> +    if ( !v8r_el1_msa_domain_sanitise_config(config) )
> +    {
> +        dprintk(XENLOG_INFO, "Unsupported v8r_el1_msa value\n");
> +        return -EINVAL;
> +    }
> +
>      return sci_domain_sanitise_config(config);
>  }
>  
> @@ -722,6 +755,10 @@ int arch_domain_create(struct domain *d,
>      d->arch.sve_vl = config->arch.sve_vl;
>  #endif
>  
> +#ifdef CONFIG_MPU
> +    d->arch.v8r_el1_msa = config->arch.v8r_el1_msa;
> +#endif
> +
>      if ( (rc = sci_domain_init(d, config)) != 0 )
>          goto fail;
>  
> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
> index b24f02d269be..ac7300e41fcd 100644
> --- a/xen/arch/arm/include/asm/domain.h
> +++ b/xen/arch/arm/include/asm/domain.h
> @@ -112,6 +112,10 @@ struct arch_domain
>  #endif
>  
>      struct resume_info resume_ctx;
> +
> +#ifdef CONFIG_MPU
> +    uint8_t v8r_el1_msa;
> +#endif
>  }  __cacheline_aligned;
>  
>  struct arch_vcpu
> diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
> index 6674dac5e2f8..13e88fc0891b 100644
> --- a/xen/arch/arm/include/asm/domain_build.h
> +++ b/xen/arch/arm/include/asm/domain_build.h
> @@ -19,6 +19,16 @@ int prepare_acpi(struct domain *d, struct kernel_info *kinfo);
>  
>  int add_ext_regions(unsigned long s_gfn, unsigned long e_gfn, void *data);
>  
> +#ifdef CONFIG_MPU
You could do: && CONFIG_ARM64 and then ...

> +/* Utility function to determine if an Armv8-R processor supports VMSA. */
> +bool has_v8r_vmsa_support(void);
> +#else
> +static inline bool has_v8r_vmsa_support(void)
> +{
> +    return false;
> +}
> +#endif /* CONFIG_MPU */
> +
>  #endif
>  
>  /*
> diff --git a/xen/arch/arm/mpu/arm32/mm.c b/xen/arch/arm/mpu/arm32/mm.c
> index a4673c351141..702bea804acd 100644
> --- a/xen/arch/arm/mpu/arm32/mm.c
> +++ b/xen/arch/arm/mpu/arm32/mm.c
> @@ -5,6 +5,8 @@
>  #include <asm/mpu.h>
>  #include <asm/sysregs.h>
>  #include <asm/system.h>
> +#include <public/arch-arm.h>
> +#include <public/domctl.h>
You don't seem to add anything from these headers.

>  
>  #define GENERATE_WRITE_PR_REG_CASE(num, pr)               \
>      case num:                                             \
> @@ -38,6 +40,11 @@
>          break;                                            \
>      }
>  
> +bool has_v8r_vmsa_support(void)
> +{
> +    return false;
> +}
... and then you could get rid of this stub
> +
>  /*
>   * Armv8-R supports direct access and indirect access to the MPU regions through
>   * registers:
> diff --git a/xen/arch/arm/mpu/arm64/mm.c b/xen/arch/arm/mpu/arm64/mm.c
> index ed643cad4073..b8abcc6f7bc6 100644
> --- a/xen/arch/arm/mpu/arm64/mm.c
> +++ b/xen/arch/arm/mpu/arm64/mm.c
> @@ -5,6 +5,8 @@
>  #include <asm/mpu.h>
>  #include <asm/sysregs.h>
>  #include <asm/system.h>
> +#include <public/arch-arm.h>
> +#include <public/domctl.h>
You don't seem to add anything from these headers.

~Michal



From xen-devel-bounces@lists.xenproject.org Wed May 13 07:37:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 07:37:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307644.1579242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN49R-0004Q4-CU; Wed, 13 May 2026 07:37:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307644.1579242; Wed, 13 May 2026 07:37:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN49R-0004Px-9z; Wed, 13 May 2026 07:37:05 +0000
Received: by outflank-mailman (input) for mailman id 1307644;
 Wed, 13 May 2026 07:37:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wN49Q-0004Pr-LZ
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 07:37:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN49Q-00GtbJ-2P
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 09:37:04 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a042a1c-2eae-0a2a0a5409dd-0a2a45078024-10
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 09:37:03 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a042a1f-229c-0a2a45070019-d1558030c5b1-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 09:37:03 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-488af9fdaa7so36431135e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 00:37:03 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e8e566cf7sm60450735e9.0.2026.05.13.00.37.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 00:37:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778657823; x=1779262623; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=7m+FQHvz9kO7Kgw3skVSIRaX9Sm7rbHYwzhnzPm6IE8=;
        b=C7oiO3NIw3vJD+AU+CW6gYd7qzsSsZjoQ3GP3qTZhsgqKZ6WEiGWMHboM/YIzgRkZN
         Me51E5ZnMCDp+WXZ2Zp2IUWoNAIn3U9jG3xPrBMB4m6jHnFCjy5VPPqHeFUbu0R8FPEA
         g611NPHgo1e3GxD4BF+8vxvtUL988EU1tG2Tr66pMR18O5+BjszIQKojA3vbkOhmR1wu
         zr4K2yX4RXxKu9xUXTxcg+9jeFvAV/A7oX8sU/UEzvefbh+Uq5LHFKlFy42VilSIgtnY
         BUc2e/aKX9QjinUj07sBnl52L7ZBbtpqoPcQV20NvFVw3YZgY2n0OKfSyBCVHTp/LsH7
         1urQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778657823; x=1779262623;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=7m+FQHvz9kO7Kgw3skVSIRaX9Sm7rbHYwzhnzPm6IE8=;
        b=cVVhhpv0k3drNNhQqcqHGMDS17v13NjA17JqY2jRsjmQ64oG3aLBA5xT4ucw1nRBKW
         Actyn/40UATIn3iirv0CJCZ0Wp//cEA+rS3goq9A4+SfgzPZ3p6pOPdOWLnSCkcrgQ3n
         rvZcC2btFIvVDyGWURxpEJ4+HxNw+NwCY7sc6K8ipXMx6QZAGKE4urxoOhAMboRk/RLW
         ZidKRnV57fPjhhKr73nNsmd6cL7ichD9fEJFx+lZdwJe+vxZckIIHOsvfrU3H1HKBJeY
         1DRgpvAIkQHTlSDgN+leuDvg5QiiNEqASTP/1kQcA+CjcfubSI+Co8lXTpRhWqux0vlX
         izRw==
X-Gm-Message-State: AOJu0YxpP3z6OEsBQ+Z5doe443khixSY/DeWAtyGHLGU590/YYZ0I2BX
	f2MAhV+d2FWGkNfKkwg1cV7VMgIroWya8WRrvWDeUzNFy2Ls/R75KgfV9NmAJ6Y3Emen/iZ5ucJ
	1BAY=
X-Gm-Gg: Acq92OFwzLQgQ5OyEltJfAJuikWIJfQeEnftgW914ypFcWKWDZrUEQGgVosHC0gL+Il
	2seYmjvdT3y3Gd9hyaGuk1sP1oDG4uYBnaRiVzUYzf+w9Rka4PUJAuPS+mzfRGnKTUSuRu3J5qZ
	TN0Sane5MfnQ5RfyCxkZcG5rUM9nn8kwVrt3EApy3LRuKz6odMPO0bYThOB4pzl8i4+1Yda8q9y
	JfYP8ITg6T7no4fIOOg30ZYQ/laSNXchIGvCspogxZu3kCsLNoOuj1jKc441+llYuZS7Y8Mv7Jd
	EOc/ZGNYAC+fvyBsCiyoamV37qL7S2Ch+WeQhYndKgfO97enGyJQvUf1dOKDuXzYvizPQI/K4lM
	eF3UHKfTsH8MNNy8WqmXdz6omIAm6RB88LTmV5ixbS5qw9mQDi4ps1FyGbpn44w+9jqpaCaMVPf
	uOZ0eM44+WNR28qwEwAuetmHXH6uxXZJddw0gMqsnPi5Ss4Ze2VvhLuMbeOo48oJTYF5+CeoBWY
	68PABZBL/Ix3qLcEkpksmcQzA==
X-Received: by 2002:a05:600c:4f54:b0:488:ab1d:dcc5 with SMTP id 5b1f17b1804b1-48fc9a4b276mr29361245e9.27.1778657823436;
        Wed, 13 May 2026 00:37:03 -0700 (PDT)
Message-ID: <8d758429-8c2b-4578-a2fc-9ac7dac0a62f@suse.com>
Date: Wed, 13 May 2026 09:37:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] xl/parse: mark as GNU source
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778657823-28678C48-587E8332/0/0
X-purgate-type: clean
X-purgate-size: 608

Very old glibc (2.4 in the observed case) declares strndup() only when
_GNU_SOURCE is defined.

Fixes: ad860c6454ba ("tools/xl: add xl commands for xenstore quota operations")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
This follows what xl_info.c and xl_utils.c already do. Question is whether
instead the Makefile would want to uniformly define _GNU_SOURCE.

--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -12,6 +12,8 @@
  * GNU Lesser General Public License for more details.
  */
 
+#define _GNU_SOURCE
+
 #include <ctype.h>
 #include <inttypes.h>
 #include <limits.h>


From xen-devel-bounces@lists.xenproject.org Wed May 13 08:07:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 08:07:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307668.1579251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN4cL-0000vm-2f; Wed, 13 May 2026 08:06:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307668.1579251; Wed, 13 May 2026 08:06:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN4cL-0000vf-00; Wed, 13 May 2026 08:06:57 +0000
Received: by outflank-mailman (input) for mailman id 1307668;
 Wed, 13 May 2026 08:06:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wN4cJ-0000vZ-E9
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 08:06:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN4cI-003ilc-Cs
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 10:06:54 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a043114-e002-0a2a0a5209dd-0a2a45068cb0-32
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 10:06:54 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a04311d-7371-0a2a45060019-d155802bd06a-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 10:06:54 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-488e1a8ac40so62230765e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 01:06:54 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e8f43de84sm36074855e9.26.2026.05.13.01.06.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 01:06:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778659613; x=1779264413; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=a1FDlrEZYHkmNRTGvaIPBLKEivfEuHLBmnLVK1kiJKI=;
        b=PYW+7DFxlA+KQBIEbRwgjJ+VqvN5f4qvd7eS5LhkM+q09CtmJtIxifY1ajKnuuZ/YY
         SctsGsCW5ZEzZmzm4ssBjJ7YI3nlPMtZcuskQzClLtG7Ievb5kVa7lygwuzRgcmzx+cs
         CDSV6TzuB5LpYUC1iBnBqTN4QPYgVl/k+l2fasEvkVA/2/rcq8gcHlefwXTfibpH58IN
         mLbjA4AvjyrxujD6yvrAxkdgn5YOGSVXu8iRL7bwYWe1XVWAk4r3EbpZX77Lvg/ivho3
         FW7bH5o0RvDqUwfalJP3Q+dfqoLxGov+Kd9n47/pBTiwdQ501WFJbFbSa4nHi/Ls+X/K
         uepw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778659613; x=1779264413;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=a1FDlrEZYHkmNRTGvaIPBLKEivfEuHLBmnLVK1kiJKI=;
        b=CECcLpq1/LIJEMgXBzjtUXPS2YwYJFSix0j8lV3Ftm+X22iAMudAfOmBwROQL1CiMX
         t7GYfqMzf8httbV1GJQmM8XG0eoJM4PQN2c5wwlnQeIoEqpN0qYocb/eSQh1hyq0AALU
         +j+GFAGW9H9+jwZWMWGSu3z2T6QRak/5ZGO01x9z0ibfkLK2JNhKNUnFhcZb+1D2byWL
         2vwPltLHrd7z8YXxnFuHgMRuivQNz7jFmwfRNgAwhMgGmlAEEcxfb/0A7//0xkm8KVx1
         ZrqtQhUbilb/aTdjja7d3TThBAJa8DcnAleXHDYTjTvxuF3ySZ1x9HeAsKMs9LEXX6Ez
         0r6g==
X-Forwarded-Encrypted: i=1; AFNElJ8pxcqfK1TxKJpWY8nPXx6NlCpxzt6opDHkX9chOopLtvWu4WQuuLGDpHqdWGJ1Y8V+TAkoexrTmaQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzNUphfQF2z4uxBqzdyvTIqGa4jMFu/OifnS02w8NgRQdysD6Xi
	H55nPMYLBUe/6GDromv3XnTNcirQS9vKXGS82EThD8yEqOxlCMNeKUX7UmQXcF7inA==
X-Gm-Gg: Acq92OECMp7sZ6xsKLE4wp5tjTszajc8KrrCMODDVbpepPaTHGPP0u6Xq4ys8gnwZEi
	7UIsmUHFiy4ka3HUk6X57ywYXqyQKiPDgciw+LfUjDqCTSx0uZCztCKKqHVbvXT52NtKzgeT2kl
	NPMKMqs6LPhBjpIxl+hKvBsjy9x7/mw49ZehOvgYMputmI96JC6wtNDdK6e1NppSMd365TIUFml
	WfFk2rothNmZuLTeXTNfOqiYEp+IlvGEy5oftxpk8AlDuPh9ZdJErMpcjgddeCfUp+U1Vtz6rga
	qb23nbpdEyWEs/SoJ214I8MedzEX8G0SeVHVI9WBxHPxtXdyCwuhg3XDFa03fX7zNwWpvxb7rQQ
	B0CRAXHgu6FZ2B+RT/j9OEULoDVPWp+pn91UBtdG1Nl2Ez4pUG+Anw1X8DpZIhEjoOPEgQPj1Q9
	USiTTfti9dhle3lj11oMS7Wk173vgT93AyGOTzpFUNRSgHJba16jTQXyUKsIYoCwtnSjKMMqj+E
	IRdw6Akrb9gseY=
X-Received: by 2002:a05:600c:811b:b0:48a:52f2:a0f1 with SMTP id 5b1f17b1804b1-48fc9a35f35mr28284285e9.18.1778659613512;
        Wed, 13 May 2026 01:06:53 -0700 (PDT)
Message-ID: <9827d24b-bc75-4a9e-bd34-950bc6663666@suse.com>
Date: Wed, 13 May 2026 10:06:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/2] tests/paging-mempool: Testing for P2M relocation
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260512155540.1733403-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260512155540.1733403-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1778659614-7FB7DD75-A9CB6B13/0/0
X-purgate-type: clean
X-purgate-size: 566

On 12.05.2026 17:55, Andrew Cooper wrote:
> Andrew Cooper (2):
>   tests/paging-mempool: Misc cleanup
>   tests/paging-mempool: Extend to test P2M relocation
> 
>  tools/tests/paging-mempool/Makefile           |   4 +
>  .../paging-mempool/test-paging-mempool.c      | 222 +++++++++++++++++-
>  xen/common/memory.c                           |   2 +-
>  3 files changed, 223 insertions(+), 5 deletions(-)

Acked-by: Jan Beulich <jbeulich@suse.com>
ideally with line length of 80 chars not exceeded, as looks to be the case
in both of the patches.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 13 08:33:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 08:33:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307680.1579260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN521-0005B2-2H; Wed, 13 May 2026 08:33:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307680.1579260; Wed, 13 May 2026 08:33:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN520-0005Av-Vm; Wed, 13 May 2026 08:33:28 +0000
Received: by outflank-mailman (input) for mailman id 1307680;
 Wed, 13 May 2026 08:33:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e2078180c000f373@swg.vates.tech>)
 id 1wN51y-0005Ap-Sq
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 08:33:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN51y-003qST-4A
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 10:33:26 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e2078180c000f373@swg.vates.tech>)
 id 6a04374c-bab6-0a2a0a5309dd-0a2a4502c56c-28
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 10:33:25 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e2078180c000f373@swg.vates.tech>)
 id 6a043755-af86-0a2a45020019-b9ff1c228a39-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 10:33:25 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e2078180c000f373.004 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 13 May 2026 08:33:21 +0000
Received: from l14 (lfbn-lyo-1-414-55.w2-7.abo.wanadoo.fr [2.7.24.55])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 44B2A863FD;
 Wed, 13 May 2026 10:33:21 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=BLxOg0+mLn9yXHhy3MEH1LEgqG3zIrha9S3RgANZTNQ=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=JMZuLxcFC+hrJ3fLrIi7vtRwhwf2yH+FuanFvWyzDCLAHth8oPYaUZWbInITpMEouy7ckU7+9
 dod4+Y72/epdPSa707lqktmaiyXCJk++GrRU5b/97wyLVAU+Ye+D+1oLQpVXeG1jbzTvZQALWtn
 qB0vSbtAcRb8XYyB/GPpWjRnie03rhkWXb+3yCOcQXjqPh1JRyRhWYXjJou1Kvu06w0Uydaa7oJ
 xO3zvU9bP2SJU7wDeihBWMep+rqvRHoQ6zwS1X/VprIKRakEQtiJm0TAk5MS9r4B++rZC613AIp
 xtziG8lFD/W7GyqGxHlXvQugF96hLHfW5ebntIY+OiUw==
X-Zone-Loop: 14610ecd834d6021d94370fe1ca0bdc6c2e4b727ad3b
x-campaign-type: default
x-transaction-id: 95a45314-1519-47a4-9f5f-47747ee4a867
x-swg-uid: 01-466186c3-7371-4b44-9ac4-6e7b00dce5cd
X-Mailer: Sweego
Message-ID:
 <1778661201.8631fc262581453bbf619ec5b2062170.19e2078180c000f373@vates.tech>
x-swg-bid: 1778661201.8631fc262581453bbf619ec5b2062170.19e2078180c000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Wed, 13 May 2026 10:33:20 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Juergen Gross <jgross@suse.com>,
	Michael Young <m.a.young@durham.ac.uk>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] tools/libxl: Fix libxl_nocpuid.c build with json-c
References: <20260508162815.1617203-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <20260508162815.1617203-1-andrew.cooper3@citrix.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.aff.f9d4c5bc86c0d911.19e207815ec.18ede270610a7821=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1778661201388
X-purgate-ID: tlsNG-720697/1778661205-83961161-BF4918F7/0/0
X-purgate-type: clean
X-purgate-size: 1157

---=Part.aff.f9d4c5bc86c0d911.19e207815ec.18ede270610a7821=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, May 08, 2026 at 05:28:15PM +0100, Andrew Cooper wrote:
> libxl_nocpuid=2Ec needs the same treatment as libxl_cpuid=2Ec
>=20
> Fixes: f6c6f2679d49 ("libxl: Convert libxl__object_to_json() to json-c")
> Signed-off-by: Andrew Cooper <andrew=2Ecooper3@citrix=2Ecom>
> ---
>=20
> Discovered while trying to complete the ARM CI cleanup=2E
>=20
> This supercedes
> https://lore=2Ekernel=2Eorg/xen-devel/94ffdeb1-6826-4c3a-a9c1-3ccc8b129a=
61@durham=2Eac=2Euk/T/#u
> using Anthony's suggested approach=2E
>=20
> Failed run:
>   https://gitlab=2Ecom/xen-project/hardware/xen-staging/-/jobs/142822797=
51
>=20
> Succeeding run (same container):
>   https://gitlab=2Ecom/xen-project/hardware/xen-staging/-/jobs/142827145=
27

Reviewed-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.aff.f9d4c5bc86c0d911.19e207815ec.18ede270610a7821=---


From xen-devel-bounces@lists.xenproject.org Wed May 13 08:49:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 08:49:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307689.1579269 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN5HL-00078G-Bx; Wed, 13 May 2026 08:49:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307689.1579269; Wed, 13 May 2026 08:49:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN5HL-000789-8O; Wed, 13 May 2026 08:49:19 +0000
Received: by outflank-mailman (input) for mailman id 1307689;
 Wed, 13 May 2026 08:49:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wN5HK-000783-Bs
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 08:49:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN5HJ-00HB6H-Iv
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 10:49:17 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a043b02-5cb7-0a2a0a5109dd-0a2a450182e6-48
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 10:49:17 +0200
Received: from [52.101.52.60]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a043b0c-c1f2-0a2a45010019-3465343cb590-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 10:49:17 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM4PR03MB5968.namprd03.prod.outlook.com (2603:10b6:5:38b::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.18; Wed, 13 May
 2026 08:49:14 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 08:49:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RuUPVzJ/gJLCqc8YZudhbRd2j3h5nNb5TZxAmgULzD4rW6A6ZiZxyKNxiKPHHxRFX0aEryg9WXf4yoG9I+T/ERjsuEwTbOxmJMoHCWkqKrJIYADuKkc3mETJuoJ6Z2Ta16/G4/w8ErOZUDL31G4Gdztmz6moFNj9kFyepmFkqVl8f6T2s4VYpFRVoBGth7fhh8Rv4zX3jHqRMPo4lruEoGsC9lJM21SgxlT6xurlsc6eX5LmIVxVWhECwb0By2eweaMYohfa9N58bSrYajnqo7pJlf4E/z4XU4Uc7zx40mWtfREAphmCX/lV/rhVE4nurkZMmg9YJNTAKSNfe4iWfA==
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=W49FHZbHPmFrpLjGvbUyOWxlZojt27IdOfJ48Y8esuA=;
 b=N4BJNGCpxe9LR70ebCbdIWSnrTDuV2oHBwbPzaW5WsVXgNXPSy3mWZaWb4UxNQxm3o3bKBpR1WoFjkcI4GM9rYRspZmBfSDcVFEbY8pSoUNDSTHmG9Y/CaCXC+wQIZgzWzsAU1eeBUF0NkPnnE9SRlDs92IaSMvV+EtUQVeH5A61ch0zESk6tJ2NMx18qiLT/e18lBPCnWjfOI8wJhn/I/PVbgHRRhfUsPPZHCHCxpbX21nQEtqXjcB1/rz39BP0r3wm77lPIGQeFkSmZJ1D/ZjfJ6/5juUU0o8jBvF3xJ7MiVNorRq3jxAEbiZBzwz3UKKKyG7ZhhRJoQSSQNTi5g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=W49FHZbHPmFrpLjGvbUyOWxlZojt27IdOfJ48Y8esuA=;
 b=V5xbmQMNYBDcWmkTHBfpZBxAOIOpH24P9vfosnTJzHp8S8PKHjYAEG3K02VZoqShJnGH1PnPLIQ9A3JiLyEVBV6slH8M9h/DZWWBSbzcIbQkSvMMxCAsfdRFOoHGBwtagqFkcnrbEXHeFYFMYwY6DF478RrOgD/OjTimJ1WjsSU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 13 May 2026 10:49:11 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.22 1/5] x86/time: use RTC century byte when
 available
Message-ID: <agQ7B0JQqisZ55jp@macbook.local>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <2723456f-5d8c-4a2a-9876-e65d35579936@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <2723456f-5d8c-4a2a-9876-e65d35579936@suse.com>
X-ClientProxiedBy: BN0PR04CA0161.namprd04.prod.outlook.com
 (2603:10b6:408:eb::16) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DM4PR03MB5968:EE_
X-MS-Office365-Filtering-Correlation-Id: c7ab6cba-914a-47a3-1ddc-08deb0cc825e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|18002099003|56012099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	LmwCKCeS3X76TUZMhrqvvJan9yvh3rDSdm3aZBECVERty6qfqxMXgclq8MnnAbAnrKAnENF8nWzjOlg+1zkdF2Yn+lgX09HGz8O+SPVOV8Zjwu8CgP0pm5T/v/vIUSxc8UQbyHLDUvEXrfDOZAtIAvDl/F5oLCmwwjb7q1y4cvfhdQNzP8wzhdnzy9zoU8Zt572xfqqgJumsDJm9j525siI+ONkUGaqCbIq+RICbNdb8ZUxnBCCH+IGMcXGQvEiNBkB4pOBENI4GF2g0M38EFXU1AA4PxUb2vX7gDDQfKO9JLR5xK6WATicLRqaEjG7aMnPOT95SfaVFW9wGmEOyNw0lG+Z28sP8b0meDI6v6M1nBSBunng19rt7kadGyLHbhDfKbxUmzKMZ3Sj5PRmIBwwu9Ud7WjCuhlMu5j6rpm4UYbzzdxuf3N+1T7U4KjSoDtqUwog79PX7Smoz4CNp7oRHwGnH/+aIXLghVhXE/KevnaAFduwHvFltDki38WxGLUBzsjGkzcQtp3OuWPT6CGhyocML0r4zCkkD3er0fzXv/LcZjT9AqknEFvRf1n5ceNvKaJfHiBY5clcq6WKqmr2fTr5NyZmHq7AIPYLGsCf3mREQSsVnLf2vAkAzVdfJVNNg4VHYZeo2cQ8mnZsop8ZSAXudlcLuhw9w3PG5DTREjB0gvixjvF/iAQ349Jkq
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(18002099003)(56012099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WXpucmZ3ajFjbVVudFNISXA5TXgvUnY5d1VtSmJLeUJDblU3VHdxaVQ5dUZO?=
 =?utf-8?B?NGs0UlRHR2lEaTlTREZzODY3VlkxRWlYbnlvR3pJY2RBRzRqbnNhQWJlU1hW?=
 =?utf-8?B?VXBlVldERG53NU9pbzVwT3ZwV0JGYTdOd0QxYkJUVzFiVXNCVWJ5bldtQ1I2?=
 =?utf-8?B?eE55VmNLd0NLcmlPaTF5emJiVVdDRkxqSm9LamFLb3hGbVpZM0c2U3hmbkpq?=
 =?utf-8?B?Y1BjdHJ6K1pEb1I4aXpWcmdLR0JTQ1BEMzluRFdiaU1iczZOeUluNXhMbHMr?=
 =?utf-8?B?OGdjRWx1Z20yRFVVenU1Wit5ZXI1SXdhTkxqSVN0THhSN3U3UjQ1QXJEK2wz?=
 =?utf-8?B?UThOdWpXbU1KeENVc1RkRGtuKzBwV05qeDJqQmh3L0VGRFFSSk94eHlXMmxv?=
 =?utf-8?B?ZTRqY2tnMnhURXo4YU9ZSXl6dUpUWUN0UUNWUDN5NUtvUVlSa09Wa3pHTmhl?=
 =?utf-8?B?dXlGNkRqZDNleHNPVjQvVDhDN3VQSlZKaUo1eEhFUkl1OXJLWkhTa0laVnAw?=
 =?utf-8?B?NFVSRFdwcXlaRTk2Uzk1dnNISTZacjV2dmh6MEwwQ1VsRVIrMmJQbFdVQjM3?=
 =?utf-8?B?dmhUNkxiU2xLbk9ZNzY2L1duYk9KRGZYZ3UzWFBEYi9ZMWROaVdZcmViMm1K?=
 =?utf-8?B?c3FoNGJYR1oydXFUdXV2VTVaR2JLNzdiM1lzY1NnckNMd1NtL2FZSzR5SFJz?=
 =?utf-8?B?SGR0SDBwVXpKbGlid1MvcHJhNXBoTm1Qa1lGOVRqSnJZZUZFMHNROHIyUVBo?=
 =?utf-8?B?WkNTNDczVTB2cnNjb1lOSlJzK2Z5akdNcHFNRmNTbVNoekUyVDlXTndZL3k4?=
 =?utf-8?B?dGNaL3hSYmdQd1NXZjFIMHlEOVdTRXdwWGphUVVGK2FVODhRb2NkckRkQ2VQ?=
 =?utf-8?B?Q1ZzbHprVXBnTlVLY2hVelZwRnB5UHo0TzFIZ0E5a0NERnYxYlk4WlRvcm1u?=
 =?utf-8?B?eFRaa3hnTUdURnFuVXdHOFRSM2tJWFhXNWQ0dC9QUnVOR0t6ZWdCaXZkL1RY?=
 =?utf-8?B?eGFpSGRJZ1JHZ21pRi93RWIrTmJZRVdRcGJ0WHZESmRrYjhqVHhnZzF4Slpk?=
 =?utf-8?B?TGw3YlNMNDBEQXdEMytzWXU1eFBQVVZEaGFqWC8ycFh1ZGRkUWRvbU95aFNu?=
 =?utf-8?B?YzFTM2R3ZEp6TmY4VFlvRVZnYkZQSzNtUjExV2orYWwybDE5czBiVTYzaEI4?=
 =?utf-8?B?WmJDMU5OTGJ4UGZ4Y3p2L04yNWpOWm5wM21OUWo1T0dPbzB5TXV3Z3Rtd3dx?=
 =?utf-8?B?Rlh0YTkzNTZqcHJ3VEVNUGtlMENhbkZXMGZTQXlXbHdCbXRpeDVuT3U5dTE5?=
 =?utf-8?B?KzZaL3FuRFRPMHMwdFA2M1J0Z3pZME82R0VFcXFQejE0ZEpqYXh0bDlFOHFx?=
 =?utf-8?B?dDhKT05ieUt0SlZxV05Ib0UyMldBYTErbnBFSFR6SmgzSGNTN3Rwb1VDYTR4?=
 =?utf-8?B?aisrS3dVcHdodys3bHVsL1hkMHFqMnMzeU8ySHNRd3pMR2E1RWRWbUVQTVZ4?=
 =?utf-8?B?eHBqNCt0UXNoZkxrNlNPMlRneDZqOWV2NmdIWlVjMklVcVEzcStUckx0UFRO?=
 =?utf-8?B?ekxSa3Z4VC9uVDVWZm4vZURqbnBMSHdXRkJVQkx4U1M2SkFLV3pmeVgrcER4?=
 =?utf-8?B?QVFmcUVuZXY4YVhtbFhoNnZid0pxQS9GdGlVTlJsYmF4SFpTRW81Z092NWZX?=
 =?utf-8?B?bkNVSHhqR3Y2ZEd2cmp1SnZQeW96Y2dLUEZFck5WN1pBQlhXdS93Uk9SL2FT?=
 =?utf-8?B?MkNWalJySHdIWm1Nazk3YUg5cWkvVi9wNGtLd2ZTMXIxZEN6WmgzNDJxL0ND?=
 =?utf-8?B?L0RNMU1JMTVuOXBNdXYyZjFhRTJZNW1OalhpaEhhbXVCalBUZUJXeGlwWUV4?=
 =?utf-8?B?NlNuZjlrczZVN3NteUFWTEFoNlU0OXY2RmFIZlNRMkhLUnVuSEIrZ2RoeGNl?=
 =?utf-8?B?eVFsd1V6NEdaaHYvV0s4bzlycXcydUNVNUEzSnRYbVhUN0d6SHNSZytVbmo3?=
 =?utf-8?B?ODZoSFNRemxuek0rVlZKUlMveVFYN2FQS3VoRXl2MEwvUDF5N05jVStNeDJQ?=
 =?utf-8?B?S2hzaXVwdFRXMVZUOXBBSmhKUW5WNlNENkhKcnBTQmtPVmRUdHZsczZrSEcw?=
 =?utf-8?B?QmVQWjJxblJ2c0tlRGhqOURybnlES09ka1ZqUkpoSm1VUkdGYzV5Y0xuUzRv?=
 =?utf-8?B?RFdheTNBTm5maThYb2czSVJ3QTMrajErTzBWTmRmSE5HeUpJenVJNTc3OHFt?=
 =?utf-8?B?MXhMSXZtUWo5MDBuVlpBWnhpQWFWeThCQTNNc2VlNS9ydzEvTXdSVXRobEhi?=
 =?utf-8?B?M2V3NEJUL3k1UUU0cDRjS3pPUkdSbzIxMUY3RG82MjhEbTZjUENUUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c7ab6cba-914a-47a3-1ddc-08deb0cc825e
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 08:49:14.2554
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: FRZmNA94dCEUn4rpqigI6g5Raa9nuctJAVu08KbYkDGoRn/y9FFUGz/kr21cuKgoK6feHlbWnpVnTTiLhnBFOQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB5968
X-purgate-ID: tlsNG-d62444/1778662157-B695FFF4-62B5DD3C/0/0
X-purgate-type: clean
X-purgate-size: 1269

On Tue, May 12, 2026 at 04:58:43PM +0200, Jan Beulich wrote:
> Without this the present logic will misbehave from 2070 onwards.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> --- a/xen/arch/x86/time.c
> +++ b/xen/arch/x86/time.c
> @@ -1257,6 +1257,7 @@ struct rtc_time {
>  static bool __get_cmos_time(struct rtc_time *rtc)
>  {
>      s_time_t start, t1, t2;
> +    unsigned int century = 0;
>      unsigned long flags;
>  
>      spin_lock_irqsave(&rtc_lock, flags);
> @@ -1280,6 +1281,8 @@ static bool __get_cmos_time(struct rtc_t
>      rtc->day  = CMOS_READ(RTC_DAY_OF_MONTH);
>      rtc->mon  = CMOS_READ(RTC_MONTH);
>      rtc->year = CMOS_READ(RTC_YEAR);
> +    if ( acpi_gbl_FADT.century && acpi_gbl_FADT.century < 0x80 )
> +        century = CMOS_READ(acpi_gbl_FADT.century);
>      
>      if ( RTC_ALWAYS_BCD || !(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) )
>      {
> @@ -1293,7 +1296,12 @@ static bool __get_cmos_time(struct rtc_t
>  
>      spin_unlock_irqrestore(&rtc_lock, flags);
>  
> -    if ( (rtc->year += 1900) < 1970 )
> +    if ( century )
> +    {
> +        BCD_TO_BIN(century);

Don't you need to move the BCD_TO_BIN() translation with the rest, so
it's not done unconditionally?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 13 08:54:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 08:54:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307697.1579278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN5MB-0000Cq-ST; Wed, 13 May 2026 08:54:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307697.1579278; Wed, 13 May 2026 08:54:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN5MB-0000Cj-P7; Wed, 13 May 2026 08:54:19 +0000
Received: by outflank-mailman (input) for mailman id 1307697;
 Wed, 13 May 2026 08:54:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e208b39e3000f373@swg.vates.tech>)
 id 1wN5MA-0000Cd-PI
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 08:54:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN5M9-00CY5T-Pj
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 10:54:17 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e208b39e3000f373@swg.vates.tech>)
 id 6a043c2a-e002-0a2a0a5209dd-0a2a450a996e-20
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 10:54:17 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e208b39e3000f373@swg.vates.tech>)
 id 6a043c39-56b3-0a2a450a0019-b9ff1c22aaab-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 10:54:17 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e208b39e3000f373.001 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 13 May 2026 08:54:15 +0000
Received: from l14 (lfbn-lyo-1-414-55.w2-7.abo.wanadoo.fr [2.7.24.55])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 28A208636C;
 Wed, 13 May 2026 10:54:15 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=CnX5O2p0QQt5FLQjcwiWGsVpu665UGO3dj9rFSugdp0=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=LWkcILAftIv27KTNFL47Ipr6M7dOwFWkBMbhjAzcuadX9oNCDQ/T6ySYSUV/M5YNigUxFOm1d
 kCLzTfIocW3CdKpFc1kX9QUsEB+E4bT1SoCeQj2wGI6B9GD92BKU/08faEKoZyfXwhxK0NaXwzf
 liJ+GbJevitfm9MvU6mXQA0dFLSsX7meQWVXBaXtgHUA7Cx8KSODFD7dmS1uimMkBSDcLHIu6Lw
 TTBpv7LaBRN7u9TPdQv0T5RLbqofN/ig+BKfo8vnlgghj+SIzgGKL7dRD3c3oEX17YK2n2HnraC
 b5+8PpScMyYLLJ8YyYOtHUMZWsY5qzQ10RvB22Yxbwig==
X-Zone-Loop: 0d44efe66d2677e8fdc59c183b4a15c138599af1783b
x-campaign-type: default
x-transaction-id: 1bd0ce06-9756-48cc-9595-2b1214142419
x-swg-uid: 01-5aff09eb-c63c-4706-8dde-af8328650e2b
X-Mailer: Sweego
Message-ID:
 <1778662455.8631fc262581453bbf619ec5b2062170.19e208b39e3000f373@vates.tech>
x-swg-bid: 1778662455.8631fc262581453bbf619ec5b2062170.19e208b39e3000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Wed, 13 May 2026 10:54:14 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] xl/parse: mark as GNU source
References: <8d758429-8c2b-4578-a2fc-9ac7dac0a62f@suse.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <8d758429-8c2b-4578-a2fc-9ac7dac0a62f@suse.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.b15.30d14826cf67bb18.19e208b37be.fde1075920b6cad1=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1778662455230
X-purgate-ID: tlsNG-4011c0/1778662457-7DB818B7-A7E1A28C/0/0
X-purgate-type: clean
X-purgate-size: 927

---=Part.b15.30d14826cf67bb18.19e208b37be.fde1075920b6cad1=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, May 13, 2026 at 09:37:02AM +0200, Jan Beulich wrote:
> Very old glibc (2=2E4 in the observed case) declares strndup() only when
> _GNU_SOURCE is defined=2E
>=20
> Fixes: ad860c6454ba ("tools/xl: add xl commands for xenstore quota opera=
tions")
> Signed-off-by: Jan Beulich <jbeulich@suse=2Ecom>

Acked-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

> ---
> This follows what xl_info=2Ec and xl_utils=2Ec already do=2E Question is=
 whether
> instead the Makefile would want to uniformly define _GNU_SOURCE=2E

It would probably be ok to do so=2E

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.b15.30d14826cf67bb18.19e208b37be.fde1075920b6cad1=---


From xen-devel-bounces@lists.xenproject.org Wed May 13 08:55:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 08:55:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307706.1579287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN5NI-0000kC-A4; Wed, 13 May 2026 08:55:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307706.1579287; Wed, 13 May 2026 08:55:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN5NI-0000k5-6t; Wed, 13 May 2026 08:55:28 +0000
Received: by outflank-mailman (input) for mailman id 1307706;
 Wed, 13 May 2026 08:55:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wN5NG-0000jv-TN
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 08:55:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN5NF-003v5A-Vk
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 10:55:26 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a043c79-e002-0a2a0a5209dd-0a2a450bbf08-4
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 10:55:25 +0200
Received: from [40.107.162.35]
 (helo=PA4PR04CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a043c7d-212f-0a2a450b0019-286ba2230fe2-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 10:55:25 +0200
Received: from AS4PR10CA0010.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5dc::7)
 by AS8PR08MB9600.eurprd08.prod.outlook.com (2603:10a6:20b:618::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 08:55:20 +0000
Received: from AM4PEPF00025F9C.EURPRD83.prod.outlook.com
 (2603:10a6:20b:5dc:cafe::1d) by AS4PR10CA0010.outlook.office365.com
 (2603:10a6:20b:5dc::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.17 via Frontend Transport; Wed, 13
 May 2026 08:55:19 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00025F9C.mail.protection.outlook.com (10.167.16.11) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.3 via
 Frontend Transport; Wed, 13 May 2026 08:55:19 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AS8PR08MB6389.eurprd08.prod.outlook.com (2603:10a6:20b:33e::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 08:54:17 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 08:54:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=v+78jAezfQLD74UQ+QHwyEY5qUUZ+IKF07GzwvKpb/xxmcu4MMFbeWRowkVH9camtzRig2RiwACILA7iIQNZ8YvRfIj83t3kXkriskvYHlJsg/OoCAEji+K1ir2VZR9Y0uQ8FK1HDfdfthLya0wYG77HsEaabiubSJ3cbQ6k401M5I21Jpdy+MFQolz5tiUvhviq8fxe0Z20jDSeGPEmQtKPa3WTGE9LzV6t1uvkJxBvLb4R4g2vA/AsQSm9u7ILtsuEJmN5wsCAITWTfYPyPa17t44+unxYeyNeInXAHsfWueXskvKPWst4RWgmHCPkcmMvD0NwG3LSz2TDSgRATg==
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=OcXmkXA27Cys9Y9PmY4NkZ7gwXBuk62oSprMZNpmrCA=;
 b=bOX/+mDZWxLQzQw02n+dUBE46w+NbniejqyP5klOttWzxhPC1w9GNj1MRIHbMYVjtHdxIXkC9ET22DnCQffyAJos2I7Hj0/foco/lnqZF7mFufxqk5NqTqwH8Vxj1RSRaT8bzMzHLdNyGri4vJvhMGg/cBnZnJuN155M2PZeYe6kMBuQYRRUoP7Pu095XGVztQqcDV9YgM4kYG/uxwz8NlCtEwCtFI+PnNKeSwIKbGORuMKmlJInLLYb6XyUBbTMinHOhX+S+7CmgsMulPuJxAKlvdYgZvofevaif8J7zf+/A8ScVnUoVCQOdhmZbSydmv+B1EUmCxXxfYLZbRT16w==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OcXmkXA27Cys9Y9PmY4NkZ7gwXBuk62oSprMZNpmrCA=;
 b=TvwAEk7jFU8/HAPYgx7a0VRcATWSsRMZs28fmkdHPv0IyH+hRde0vOsdEaFYK9pW80NWGd1SacMk9MzB4fKlllIQxS7M97mJIBMCBgLRS8y7XHVzvLcOTzV0WYzig6IxT5/KzsoopY+elS4mopUCvXXv0I5qETVLa4QUjAkB910=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZdqSaIkuJ4BYdVMYWAxPA/cZNbVDA6Zw70oTHIZ+H52U6Gcq0sm4kcbZ3D3Iuv8P0+uv6mqErI6m0/Yh8B70L3g4Px67Q0AXK+zXlZkCKNHb+zfWY8ZNZ2wZJ7p80zFocxDgQdlZBP2EUvtP+W1OmnJVUB5EVhddwzN5U4WcomC04so/M3QnNeaoGdBGPps2i3kcy6L8S+qx2buYxYFlz7cpcWzcVS9ZjNfzMSOK5myqhWSebabLgGQXw9moEFev+gbj1suuZ8R+NC+S17QRRYNjnu8d+/o3m9QxW53TLMYc1u3rDWeRBkCE4mTbVwgiiGZKc4HNKZk3pPIvr5Etxg==
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=OcXmkXA27Cys9Y9PmY4NkZ7gwXBuk62oSprMZNpmrCA=;
 b=E8gfyHFAVgo2IvZtpOaQEQVKUroKdj63yzceDgrgV2l80QMT8ShsaCDnqz18pzmQDiFiNseilfMP9QVfrtmGJctdr6dhMraooySQOL35N8FnFmMbOZ/Npfk9GhCTytbs78yrYVXHqrzW6gCGYbB8RQ84BVB5DSZT+XvkLYE+ipMVIFHCgf0+cPSeip4aap5Q+cA9MPAcsnRf0GI0rSTyMcm/ddVgKoYZC5DgSQSuOZ/yRbT8m6jR1X9f+rPjUJ8USiv4g5luio7vnSqR5GvGpN8EyNV2Rl4HaZgly3b+/0tRW9hZP5yYB1PtW4YcvSKlSW3PcOrcpxq76Pjyrv3+3g==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OcXmkXA27Cys9Y9PmY4NkZ7gwXBuk62oSprMZNpmrCA=;
 b=TvwAEk7jFU8/HAPYgx7a0VRcATWSsRMZs28fmkdHPv0IyH+hRde0vOsdEaFYK9pW80NWGd1SacMk9MzB4fKlllIQxS7M97mJIBMCBgLRS8y7XHVzvLcOTzV0WYzig6IxT5/KzsoopY+elS4mopUCvXXv0I5qETVLa4QUjAkB910=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Harry
 Ramsey <Harry.Ramsey@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: Re: [PATCH v6 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
Thread-Topic: [PATCH v6 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
Thread-Index: AQHc4jjk+ii595NFpkWdCINvGnB407YLkW2AgAAWJQA=
Date: Wed, 13 May 2026 08:54:17 +0000
Message-ID: <CBA96303-70FF-4356-A4A4-EC0059F8FD94@arm.com>
References: <20260512175729.1915120-1-luca.fancellu@arm.com>
 <20260512175729.1915120-3-luca.fancellu@arm.com>
 <12115791-513e-4d1b-956c-6b0c00bebe3b@amd.com>
In-Reply-To: <12115791-513e-4d1b-956c-6b0c00bebe3b@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AS8PR08MB6389:EE_|AM4PEPF00025F9C:EE_|AS8PR08MB9600:EE_
X-MS-Office365-Filtering-Correlation-Id: 24ff61c5-e292-4ca9-f08f-08deb0cd5c5f
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|22082099003|56012099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info-Original:
 1VP6O5ULENXzw2clruVUYAkt7PO0TWQcAR279oR+LaTO1/wZmpxd2Uq7hBcair88xNNrPMlVG9cCs97kJ6ZLMangCwmUfGN5zeCP6BGl6molwlXhR1QKSACTJFqemb+g/EhIyt9SGtrEJDi1nxJwept8A7UmNOJqeVPgXy6YzcdR34lGQvA2eccp1CeKfEQrne0ZT9SiniRbWif0TGvGte+TG2r4/HM/6D2YGliwtoj0W8PTqUzkpJVa8p4CKdl4TnLwcRUVHHCj0pL7V5q2QPgUub9L9sn9liqFrmacIdDGTzxQNtBNZM6E5qcQZ0LEdclqnPSvKTrw/darHq5J8xycj+l1Ag3RRhNTGGI5k0mqcwJ0Ia1drs89aFW98MtiampHwidlqvxlRt0reTy0G53vOSUeWs5Gmynm3iHJvSpdFxeKhlKjqJ/Q3ylnM+JxQc1+PHMmnWk1WHHSUFxqdIiP7DrPO0dHwCSRQVRhUDbYEvzI7VLRvHiT0m7Zg0Cuck25cbxaQBzsr3R86J6b3zmJplPFlFGzxmQ0SiJuQrdTAZ3FDsBgUr8SMsw1crbrUNNsfR4x4KGvZgFY/YNqr5s8tgU/x2v7hWRCtm1FMhcZdT2XgFu3NQgFNHQlnBeMy1wOh3e4QyQF887tGzowm11p+6zTuy3pt205mHIOvvhJ1Es3XsIs2kfxVlP5ZZKBkHI7or6Moik7U7HYLirjXXUBO+hrRGkEh/RoBxLfmh6PR7fLrVDLAhPrVD4x+RX/
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(22082099003)(56012099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <6DC4DC59A09F2248A7A03F1B1CF2FB53@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 hXQSg8LFPaxnTh8THCJirtQXmlSkR1vyRZJ3jqHzVgc9ej6wTesQo19v/H/9EFxEyR8P9IGZyi/CXiepj48yzqDUwP2dzJvPsh/STV5xzUUVINHKdvM0eSfGt1eBJ4owFEfkO7WtLGbR5q12CSqGkGzOsSMARESPcrkF611oYcxFDlz99n6Xve353YxplhdqtiuiS0ZtZ3vjDQPxxvb/CWFy8Tse8l/z8Xo2QgsqSeep3s1QA4hvbTtpzxlD6mBZp+CNoUDmD8oQp26LOMVRKK/HNip11rOYL2ywWzSPIpq//aktMBs5zdONdJo4j8ktxI3+f2VFXpWS1es3Ubfipw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6389
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00025F9C.EURPRD83.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	6d1a16ab-642f-4221-5aa2-08deb0cd370e
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|35042699022|14060799003|36860700016|11063799003|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	fHUXgzJC2KG/Iqy4i+7gtDEX2YTaXgQfJ8w8i1Itqc/czTfPufc7LN8O3W5n6fp67XjSSj5I/Eed2Jh+TAEYomeWYfVjPCZe4dkwnc5x3yJdRadtBRt4KzatZn3hPVUjyH3xAJdZDs7ku/aZX9gvpa0O2RprBYX1rza90NmOjGT+DqyFfs2gT2gkQbSJXPa4dwXuhrSxOQlDOSsjANdbr4M4eT5TIa1xqbFKkWlan3MBLclVnZC2qUijwTbXiUMiV1pTx8fSrCqIhFx8CMq31OFILjEu3aH7MhOya71ACXVMfXSizFmx8yfw3FkSkhNF03fd9HsVgMSs1PobOnc6m/i8vOD7FKYD1cw48a/EZk/MKB++B/UBsnPcR+WX6jPkE67AxhPsQcN3lGdTgGGW2q7WB23WhN09x0qIhgi8FyspLVoBbnxh8G0Srok9o5YzWPPzpJokr3+gS4BhG3QtJoAuCaSbwr+2GcFb4SYNZnqzE8TwzJdmQR8l1ii/UI7gfEHsuDSU/UBQyy3TS55F9JqDVwR8n9lhOX0tQIsBjmIYXiwLjeznFfxyC8grMscAmzhAMUMjygxhBkV7WFxE7K491Fx0fblk/l22xDarBWfeClLYQHFxNjEaA7VnWBi7lGePcAWQ/OzIkDwClWTJc5eaMobby+2tdVN/MKibB7TPgtjNl4fZEMlY8ByuCbLTopFFjZfrackqSrxTqG0ynlme7Fxtarh9CrKJzGuuk7o=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(35042699022)(14060799003)(36860700016)(11063799003)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	sJoBEvfd1PswxSWM2AnxBoi6MoAxzKTaZNZf0EVyeQHzLsU/qwWtf9rxoA8qfl+al4gfYc0GiWXmEzXu+DNFYVp365IWV+LqzpreBVyHEty4jf91OYXLOL8PBiYEVjtNNhjfv86+Ek/MTdxiBufhWYSCWDe2nnlbg5SoqHVu2JMdL6Ec1HoeHKuQ1//iXzBpHICVebGDu0rDcFcw1S/NsdRQSIdrCAuxgDxtihIBX+fXPntIOLiCWopHtjcdHzxUHCJigl+HmzDTyzIOWSs1Jaq1DkQJAjUQo+l5wHBtYaE84RX5EOZTFjTUueq84IzbksHUspUSp3SUWftF5P7iV5wrYj8Z1MTNZvZoO/ftG/UxPRyKSro0amjN/ENrO3buKGLwO85enS7VwBmJcAWO7mvlNro6qyjqsZ7RHrsST60zBAcMn8FSulevfmkpJ9/e
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 08:55:19.6721
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 24ff61c5-e292-4ca9-f08f-08deb0cd5c5f
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00025F9C.EURPRD83.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9600
X-purgate-ID: tlsNG-42698a/1778662525-19B68F3B-9C1380B4/0/0
X-purgate-type: clean
X-purgate-size: 9664

Hi Michal,

thanks for your review

>>=20
>> +static int __init
>> +domu_dt_v8r_el1_msa_parse(const struct dt_device_node *node,
>> +                          struct xen_domctl_createdomain *d_cfg,
>> +                          unsigned int flags)
>> +{
>> +    bool property_present =3D dt_property_read_bool(node, "v8r_el1_msa"=
);
> I know it's present in the code for SCI, but it's not really necessary to=
 do the
> DT parsing twice (once for boot, second for string given that
> dt_property_read_string returns -EINVAL if no property found).
>=20
> You could move this bool check ...
>=20
>> +
>> +    if ( !IS_ENABLED(CONFIG_MPU) )
>> +    {
>> +        d_cfg->arch.v8r_el1_msa =3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_N=
ONE;
>> +
>> +        if ( !property_present )
> ... here.
>=20
>> +            return 0;
>> +
>> +        printk(XENLOG_ERR
>> +               "Not supported 'v8r_el1_msa' DT property found for domai=
n %s\n",
>> +               dt_node_full_name(node));
>> +        return -EINVAL;
>> +    }
>> +
>> +    if ( !property_present )
>> +        d_cfg->arch.v8r_el1_msa =3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_P=
MSA;
>> +    else
>> +    {
>> +        const char *v8r_el1_msa;
>> +        int ret =3D dt_property_read_string(node, "v8r_el1_msa", &v8r_e=
l1_msa);
>> +
>> +        if ( ret )
>> +            return ret;
>> +
>> +        if ( !strcmp(v8r_el1_msa, "mpu") )
>> +            d_cfg->arch.v8r_el1_msa =3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_M=
SA_PMSA;
>> +        else if ( !strcmp(v8r_el1_msa, "mmu") )
>> +            d_cfg->arch.v8r_el1_msa =3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_M=
SA_VMSA;
>> +        else
>> +        {
>> +            printk(XENLOG_ERR
>> +                   "v8r_el1_msa value (%s) not valid for domain %s\n",
>> +                   v8r_el1_msa, dt_node_full_name(node));
>> +            return -EINVAL;
>> +        }
>> +    }
>> +
>> +    switch ( d_cfg->arch.v8r_el1_msa )
>> +    {
>> +    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA:
>> +        if ( !(flags & CDF_staticmem) || !(flags & CDF_directmap) )
>> +        {
>> +            printk(XENLOG_ERR
>> +                   "PMSA is not valid for domain (%s) without static al=
location and direct map (v8r_el1_msa)\n",
>> +                   dt_node_full_name(node));
>> +            return -EINVAL;
>> +        }
>> +        break;
>> +
>> +    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA:
>> +        if ( !has_v8r_vmsa_support() )
>> +        {
>> +            printk(XENLOG_ERR
>> +                   "Platform doesn't support VMSA at EL1 (v8r_el1_msa)\=
n");
>> +            return -EINVAL;
>> +        }
>> +        break;
>> +
>> +    default:
>> +        return -EINVAL;
>> +    }
>> +
>> +    return 0;
> This does not look very clean. How about:
>=20
> static int __init
> domu_dt_v8r_el1_msa_parse(const struct dt_device_node *node,
>                          struct xen_domctl_createdomain *d_cfg,
>                          unsigned int flags)
> {
>    const char *value;
>    int ret;
>=20
>    if ( !IS_ENABLED(CONFIG_MPU) )
>    {
>        d_cfg->arch.v8r_el1_msa =3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE=
;
>=20
>        if ( !dt_property_read_bool(node, "v8r_el1_msa") )
>            return 0;
>=20
>        printk(XENLOG_ERR
>               "v8r_el1_msa not supported on this build for domain %s\n",
>               dt_node_full_name(node));
>        return -EINVAL;
>    }
>=20
>    ret =3D dt_property_read_string(node, "v8r_el1_msa", &value);
>    /* property absent: PMSA is the default */
>    if ( ret =3D=3D -EINVAL )
>        value =3D "mpu";
>    else if ( ret )
>        return ret;
>=20
>    if ( !strcmp(value, "mpu") )
>    {
>        if ( !(flags & CDF_staticmem) || !(flags & CDF_directmap) )
>        {
>            printk(XENLOG_ERR
>                   "v8r_el1_msa=3Dmpu requires static-mem and direct-map f=
or
> domain %s\n",
>                   dt_node_full_name(node));
>            return -EINVAL;
>        }
>        d_cfg->arch.v8r_el1_msa =3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA=
;
>        return 0;
>    }
>=20
>    if ( !strcmp(value, "mmu") )
>    {
>        if ( !has_v8r_vmsa_support() )
>        {
>            printk(XENLOG_ERR
>                   "v8r_el1_msa=3Dmmu unsupported by platform for domain %=
s\n",
>                   dt_node_full_name(node));
>            return -EINVAL;
>        }
>        d_cfg->arch.v8r_el1_msa =3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA=
;
>        return 0;
>    }
>=20
>    printk(XENLOG_ERR "v8r_el1_msa value '%s' not valid for domain %s\n",
>           value, dt_node_full_name(node));
>    return -EINVAL;
> }

ack

>=20
>=20
>> +}
>> +
>> int __init arch_parse_dom0less_node(struct dt_device_node *node,
>>                                     struct boot_domain *bd)
>> {
>> @@ -315,6 +386,9 @@ int __init arch_parse_dom0less_node(struct dt_device=
_node *node,
>>     if ( domu_dt_sci_parse(node, d_cfg) )
>>         panic("Error getting SCI configuration\n");
>>=20
>> +    if ( domu_dt_v8r_el1_msa_parse(node, d_cfg, flags) )
>> +        panic("Error getting v8r_el1_msa configuration\n");
>> +
>>     if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
>>     {
>>         int vpl011_virq =3D GUEST_VPL011_SPI;
>> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
>> index 26380a807cad..e579c3b1bb3c 100644
>> --- a/xen/arch/arm/domain.c
>> +++ b/xen/arch/arm/domain.c
>> @@ -18,6 +18,7 @@
>> #include <asm/cpuerrata.h>
>> #include <asm/cpufeature.h>
>> #include <asm/current.h>
>> +#include <asm/domain_build.h>
> You don't seem to use anything from this header.

Yep my bad, leftover

>=20
>> #include <asm/event.h>
>> #include <asm/gic.h>
>> #include <asm/guest_atomics.h>
>> @@ -538,6 +539,24 @@ void vcpu_switch_to_aarch64_mode(struct vcpu *v)
>>     v->arch.hcr_el2 |=3D HCR_RW;
>> }
>>=20
>> +static bool v8r_el1_msa_domain_sanitise_config(
>> +    const struct xen_domctl_createdomain *config)
>> +{
>> +    uint8_t v8r_el1_msa =3D config->arch.v8r_el1_msa;
> That is not a useful assignment.

yeah it was only to shorten the line

>=20
>> +
>> +    if ( !IS_ENABLED(CONFIG_MPU) )
>> +        return v8r_el1_msa =3D=3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NON=
E;
>> +
>> +    if ( IS_ENABLED(CONFIG_ARM_32) )
>> +        return v8r_el1_msa =3D=3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMS=
A;
>> +
>> +    if ( IS_ENABLED(CONFIG_ARM_64) )
>> +        return (v8r_el1_msa =3D=3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PM=
SA) ||
>> +               (v8r_el1_msa =3D=3D XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VM=
SA);
>> +
>> +    return false;
> Arm32 and Arm64 are mutually exclusive, so this line is unreachable.
> How about:
>  static bool v8r_el1_msa_domain_sanitise_config(
>      const struct xen_domctl_createdomain *config)
>  {
>      switch ( config->arch.v8r_el1_msa )
>      {
>      case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE:
>          return !IS_ENABLED(CONFIG_MPU);
>=20
>      case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA:
>          return IS_ENABLED(CONFIG_MPU);
>=20
>      case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA:
>          return IS_ENABLED(CONFIG_MPU) && IS_ENABLED(CONFIG_ARM_64);
>=20
>      default:
>          return false;
>      }
>  }

ack

>>=20
>> diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/incl=
ude/asm/domain_build.h
>> index 6674dac5e2f8..13e88fc0891b 100644
>> --- a/xen/arch/arm/include/asm/domain_build.h
>> +++ b/xen/arch/arm/include/asm/domain_build.h
>> @@ -19,6 +19,16 @@ int prepare_acpi(struct domain *d, struct kernel_info=
 *kinfo);
>>=20
>> int add_ext_regions(unsigned long s_gfn, unsigned long e_gfn, void *data=
);
>>=20
>> +#ifdef CONFIG_MPU
> You could do: && CONFIG_ARM64 and then ...
>=20
>> +/* Utility function to determine if an Armv8-R processor supports VMSA.=
 */
>> +bool has_v8r_vmsa_support(void);
>> +#else
>> +static inline bool has_v8r_vmsa_support(void)
>> +{
>> +    return false;
>> +}
>> +#endif /* CONFIG_MPU */
>> +
>> #endif
>>=20
>> /*
>> diff --git a/xen/arch/arm/mpu/arm32/mm.c b/xen/arch/arm/mpu/arm32/mm.c
>> index a4673c351141..702bea804acd 100644
>> --- a/xen/arch/arm/mpu/arm32/mm.c
>> +++ b/xen/arch/arm/mpu/arm32/mm.c
>> @@ -5,6 +5,8 @@
>> #include <asm/mpu.h>
>> #include <asm/sysregs.h>
>> #include <asm/system.h>
>> +#include <public/arch-arm.h>
>> +#include <public/domctl.h>
> You don't seem to add anything from these headers.

Yep, leftover

>=20
>>=20
>> #define GENERATE_WRITE_PR_REG_CASE(num, pr)               \
>>     case num:                                             \
>> @@ -38,6 +40,11 @@
>>         break;                                            \
>>     }
>>=20
>> +bool has_v8r_vmsa_support(void)
>> +{
>> +    return false;
>> +}
> ... and then you could get rid of this stub

ack

>> +
>> /*
>>  * Armv8-R supports direct access and indirect access to the MPU regions=
 through
>>  * registers:
>> diff --git a/xen/arch/arm/mpu/arm64/mm.c b/xen/arch/arm/mpu/arm64/mm.c
>> index ed643cad4073..b8abcc6f7bc6 100644
>> --- a/xen/arch/arm/mpu/arm64/mm.c
>> +++ b/xen/arch/arm/mpu/arm64/mm.c
>> @@ -5,6 +5,8 @@
>> #include <asm/mpu.h>
>> #include <asm/sysregs.h>
>> #include <asm/system.h>
>> +#include <public/arch-arm.h>
>> +#include <public/domctl.h>
> You don't seem to add anything from these headers.

Yep, leftover

Will respin with the fixes soon.

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Wed May 13 08:56:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 08:56:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307712.1579295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN5OJ-0001E7-Jg; Wed, 13 May 2026 08:56:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307712.1579295; Wed, 13 May 2026 08:56:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN5OJ-0001E0-Gc; Wed, 13 May 2026 08:56:31 +0000
Received: by outflank-mailman (input) for mailman id 1307712;
 Wed, 13 May 2026 08:56:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wN5OH-0001Dp-US
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 08:56:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN5OH-001zoo-Ao
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 10:56:29 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a043cb1-bab6-0a2a0a5309dd-0a2a4508d6f4-48
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 10:56:29 +0200
Received: from [40.107.200.13]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a043cbb-63b5-0a2a45080019-286bc80dbc57-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 10:56:28 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA0PR03MB5402.namprd03.prod.outlook.com (2603:10b6:806:b7::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 08:56:25 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 08:56:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GSv8EA90mkhayk/T4EQY5UPgZUe+DW3W84OjJBKXMs9sUCkVl0W1BVK04w6H9rrcBBmtfREsLuUpUNTM7VyKDcvCaXN2sBS2+KgQGaKjo4hZZQOYqwElZL7Kf8tAXd/dd5CxVAh4KFbAVFpauO4AmfHKAbZanLMxtHLd016bWf3VHX8KPzqIhewxwXpWHNO5DZgCkbBeVtrKaB4pAV8wJLCrMU+9ulTynW0m3FVmMm13xALsl8VCj7dck5wvEJi/YwPdwmrECsfIw7UHmYKMJ+aUdVBpkov6nR0dowwzuk4EItm80m5TXHhs+ZiDS757jO89ernkodseP4OY7lyuHg==
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=XP3WQuQURq4bqXMRqu2WUgpsN5UQQNKBcWqSipehal4=;
 b=izeIzFEIiNaZ0QOnwhYx34EuSJyq/RwJHDy2m+K+1y/ohRcGxW9ECfXkNHXWXXHsjRbtYiK7t10ObQOApTPWYGC7Q9VBsVRNR84GDmtWzyGCVARn4n09T/zHGwCxSdqdBOSpq8eavG1jVA06gVLmazh5b9pgsz4KzCn1/ze9IRnx/x+ZwjdhD2X1p97pJ0uOsBXEiWarjGe/vFGtikqUy/fWFoPrAGsQG3oD16uWPIhAkNyRLop4hKclGfd/s7C8RFFpYitCPT2XqdtyH+TQSg5rZLj5K3fxqwPs7VlIVFRZRIKmE4oTC3A0qZUeFA+euY6htpMBTX3FHLlMH/Vm8w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XP3WQuQURq4bqXMRqu2WUgpsN5UQQNKBcWqSipehal4=;
 b=oPVMKLeeGZ2cSRFAUNUFGGkmH00a33FSvxwUKnyWDkS1gHPMD7qIna1SIEcN5te10G4o0DMbvuOFU8hqL0k6lQUbh5psuxzM2PLfSnF6NKDpdywhWeVowsoFq/OuNQY+HkbsQm1pmKPcb85VCO9UfOroSIKDlWrACmU4pvE5D+M=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 13 May 2026 10:56:21 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH 2/5] x86/time: move BCD_TO_BIN() uses
Message-ID: <agQ8tRY3Kya6RasY@macbook.local>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <2c5af8f9-05f6-43c4-afb4-a50cbacd2d49@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <2c5af8f9-05f6-43c4-afb4-a50cbacd2d49@suse.com>
X-ClientProxiedBy: MR1P264CA0177.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:58::8) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA0PR03MB5402:EE_
X-MS-Office365-Filtering-Correlation-Id: 9c8d8503-75ec-4010-783e-08deb0cd832a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|11063799003|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	9xWgUZILOZrfi50AMHFQ3wyY0YWYJNIvA+VuMVHpzrtpviFKG6k7CjdlJlGWw7z9x4eSdfO1GnNpPoefJnTKq2t2SpXGY3beFIIHZfUE1MPVIyvffyR8U0e+ayoT8ZTRtY0Sh7MvZ0qBsyH/wFx12dAINpgqKBWBuXMQOSKHkY0SxKyT/BUyxgBq01fQdN9vHSXaGkB5Nk6gGCrNbtrqMT+Hf36tSFWfUZ+RewxM2Rojw+G9CfrIvsPTyGSB2WTYwDiGdRpKwRiOINkPHWrcLIjJroyj0eE7Bvl+b9TGGz7RHrnUePdIKlg22PREltncFTTZmNRvGoKIhyHApXzhmwT9SH62uBwHldr3ZgB2ZmPK0l75KL9cn73iJ6ecp/8lKE8j8JyI61HO6brKJuAEdQiDnMwjG4WQknCzG/cxn5/bpxJ/73XsXO//kJRxjoMkN9oAhK+DXfGohJKLB4Vx+gYs2Q2/4FKOjGaVPxRI7UtZmbk0BrK9MNIgi5EWSfiiph8SWTS+TA2myaMK1eglYEOZKRF0Kq2TktlpQBVwErfkKe2Yxd/dxOhOlymohfl7f7YjFd5lKFtKChSwZOXKmYJSmQFp5uYh50zhDsAgRNRhiik+CJ8ryr/WLheBZyLLKP4jkqAFuK3E2HT/4P5la1IdLq87aXmZqxpRBt1UWQwUnE9LfjflZOiX899ZveQE
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(11063799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eU56bEFGTzNFZnF6L0M2czBDS3NpaFNKU01YYjZVRVBOWUVYRG1oZ0cxZEp2?=
 =?utf-8?B?MUpMMmJMSTc4bWRhMWtnNFdYYjR6TThMTGltMkVscENHeHNmM011eWRITEdx?=
 =?utf-8?B?K2tHN3BOSCt2U2w3Qjk4WFgyTkVrWHp5K2xNaFkzYlhGb3NwVitZWko5M3Zw?=
 =?utf-8?B?RDNrckRIcGxHSE5BOFVlcDRCbU1LSFhiL25pTExjSU4ra2l0YnhpNGx1eFI1?=
 =?utf-8?B?OEdtRnlhM3lBdUFPSEk3b0o1T0c0THhrZVB5bUNOcXdTSmt5WDlHTitkL28w?=
 =?utf-8?B?NE5QVWc4UFVJOUFSTXlEZFRhRjIzVkYvMmc2THJMNC90TElGeFpQbnFEQ0Ra?=
 =?utf-8?B?K0UyaC9BeXFpZkhNWjJPVTNVcTRVTjJMYnNNclZIbDNxdlJGUUxuNEVIQ3ZH?=
 =?utf-8?B?R1JXckg5Q05XQ2d0eml3OXlHdU52S3YxaDV5aUJIdDU1SHI0aVNWWHBVcVFl?=
 =?utf-8?B?aDg2V2dDQlNrdTMrS1djQ21jL2E0blVGaDk1ZUZSVE9vMUNseGMwL2Y3Ykgz?=
 =?utf-8?B?b3dFUFZ6SkRXYTBpb2IrVWFzNVhhUFRCbzdScDAvR1UraCt1b1hTd29jV29v?=
 =?utf-8?B?dlNCMGRQaGpMOTMvQ0dUbHRSalI1cEEwZmExN0hwM0g1bDZtTUVERCtpRWIz?=
 =?utf-8?B?cTZnOC8vdzQyWHg5ZEg3N3M0MVJERm4xT1hYc3UwN05SOFdOUGtxREdEMkJJ?=
 =?utf-8?B?NWZsNGtxWFNTdXlDbWNucEoweGU1bytVWGFic09HajliOWlMaFlXZExBcTNa?=
 =?utf-8?B?SHd4WjBlK21hQXpFZXptUE5NOWNPTjNFeDh5Mkd2UjJSOHdobk1MY2thNklN?=
 =?utf-8?B?QUp5QXJZMkRESTg1ZFpyeGpTVGtuTFkvQndGb2FOWFB6cHZJWUNiSnpMc2lM?=
 =?utf-8?B?QWgvcE5mY0c0aU9jZHdldDl5TFZ1Sk9Xa2F1VVhvekxBdXhJbVRsMmZ4V3U0?=
 =?utf-8?B?WjB0Z1A0aU44Z2lGbXFXUFdiU3RVdmJWWlFhVnBhNTBzWENhMm9aRjhMNC90?=
 =?utf-8?B?YkZaaGRQR3JGYmk0bnFERmZvdExYb0s3VVVibVg1NjBhMkx3MUhoeWFUaEg3?=
 =?utf-8?B?SGRML09kR1pOVDNiOUd6Z0JOQXlveTVuM3ZUV29Qc2ZvdVJWUHVaSnBzcllk?=
 =?utf-8?B?cVJmdS9PNmY1cFQwdnVORy9IYmlLZzBqczhZV2FZamJPWE12N1lGM2dLZTNU?=
 =?utf-8?B?NFNqdS9RZUFyM1pmU3E3NWtNbDhSOGZMR3hrSU9lZE1PN1pFMFNLVjFUWjBs?=
 =?utf-8?B?RnpLTGxDQ3BTSVRvSk1HbWdyZ2N4clFCUDVIczhIbjJaWXcrczNxOXgyL0lq?=
 =?utf-8?B?MDFKVFV3N2w5U0NzWGt1VmhkNDl6VGszNy93Z1p1WTRtZzZaZXhTMGJOdG95?=
 =?utf-8?B?ZXd3d1llVzJhamNvbEZlKzAvaUR6K3ZPc0kxTzZ2bXQzK1B0RjY0WlROMVVo?=
 =?utf-8?B?QmJPTXNPZ1k2K1RJTndMd0p6Um9rS3JIRGZQbVltMEFkVnNJWE1rV0w5ZWkw?=
 =?utf-8?B?UGd2Z1VrVkxna0s2ejNZSFdsVTJvVVI4ZUZhdVcvZUFNTmtOK3Zqb3hUYi9L?=
 =?utf-8?B?aFZwV0kxTXByM0xvSkRyd2NaRi8xMTVTOHF5NG1McWRJOFl4S2VBRmJNWGg4?=
 =?utf-8?B?NUZwcUlwa0YvTkdGckdDQnNRZVROUXlidWk5bG5HMGo1QjJKblYxZmFJNTYz?=
 =?utf-8?B?eVNjN2RrM1VtdlFWV0E5VW9DSmd0TXJpNGVlQmE5VHRKVnNVM3NNaEtqbUJz?=
 =?utf-8?B?ckpXWWk5NTI0NFBzZVl4a2ZMcXNRemtWV05hanBQYjVoNGtZdFhvdTEzSlJt?=
 =?utf-8?B?N3FnS05ZL0NwZ2RyS3pGUll0bEdOekZvZzV6bFhJQ1hyK2JSOEp2eDAvKy9t?=
 =?utf-8?B?d3phTVVrZHQ4STBNdHBwOXRpcXdBT2QxRTdCMjZ2N0FlWjhvQWhZdy9qblov?=
 =?utf-8?B?YVR4RXEzTTkvM3hrdXZrTDRUbVhhcTNsQW5iOEFhQ2NFc25zOUZFbXc5Y1ZL?=
 =?utf-8?B?dVJ6NVkrOGZSMUpPS2VvL0o3c2ZpZWdrVjg2TnltOC9iZVllVkUxRFNkaGJC?=
 =?utf-8?B?Slk4RzRFVlE3QWJOa1FHalBrQTJYZUZkQjFMNlZ6S1U1bXA4ekFQT3ZheGF1?=
 =?utf-8?B?S1ZGREdRcWdDOXZ0WEVyL0ExNE1qNU83RE9xSG9XelIzN1VlZXR1eWp6L0Qy?=
 =?utf-8?B?YXYyYll0N0hPL2ViOGFMcDh4NmxlUjIzS3VqN04yVGFhREYveEFVcHNTWU1o?=
 =?utf-8?B?UWVNRjdyZjNpbVo2a3BQQktwWURWaWtQcW9rYUZPZnRGekM4VWxOc1JWUTB2?=
 =?utf-8?B?N0t0UnN4MVl3TW42VWFPSzJYUFpURjRMQzVJaG82SGMwamt2WEYvQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c8d8503-75ec-4010-783e-08deb0cd832a
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 08:56:24.9583
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dPnGfjFOthsjUFANMVnYwa0tcF5hcGxbWAWko67CWkQk9lspMmoPuTSCiBn+2RMVkod9VqMhzU143WAj/BOYBw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5402
X-purgate-ID: tlsNG-c1860d/1778662588-C5F80DB1-21B43540/0/0
X-purgate-type: clean
X-purgate-size: 1117

On Tue, May 12, 2026 at 04:59:03PM +0200, Jan Beulich wrote:
> ... outside of __get_cmos_time()'s locked region. There's no need to hold
> the lock for these computations.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

I had the same thought about moving the conversion out of the locked
region when reviewing the previous patch.

As noted in the previous patch, we should move the conversion of the
century field with the rest?

> ---
> How come RTC_ALWAYS_BCD is compile-time constant 1? And then even with an
> inverted comment? Looks like we've inherited this from Linux, and even in
> Linus'es current tree it's still this same way. Yet all half-way recent
> chipsets I'm aware of properly implement the DM bit in reg B. Might this
> be another 32-bit leftover?

*shrugs* I don't know.  Seems like Linux is still doing it, so it's
likely safer for us to continue doing it also?  We had no reports of
it being problematic, albeit one could argue it would be best to
prevent such reports by doing the right thing.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 13 09:40:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 09:40:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307734.1579318 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN64n-0000Om-26; Wed, 13 May 2026 09:40:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307734.1579318; Wed, 13 May 2026 09:40:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN64m-0000Of-U1; Wed, 13 May 2026 09:40:24 +0000
Received: by outflank-mailman (input) for mailman id 1307734;
 Wed, 13 May 2026 09:40:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1wN64l-0000OZ-Qx
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 09:40:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN64k-006mvJ-PR
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 11:40:22 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 6a0446f9-5cb7-0a2a0a5109dd-0a2a4502a658-38
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 11:40:22 +0200
Received: from [52.101.72.140]
 (helo=AM0PR02CU008.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <milan_djokic@epam.com>)
 id 6a044706-af86-0a2a45020019-3465488cbe2b-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 11:40:22 +0200
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com (2603:10a6:20b:595::7)
 by AS8PR03MB7671.eurprd03.prod.outlook.com (2603:10a6:20b:401::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Wed, 13 May
 2026 09:40:20 +0000
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5]) by AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5%4]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 09:40:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C6S3nud66yOErQNUBeZ7qVpZaGTHfyYv+A8Gzpb0DyuF4ogGLH6Y8/EAf5wUjC+sJBMViFY56Y774s9pmNO1Q4vB7NtB/C6QV8Y5oWTcsSr2itJD4DbsGjK3C5/oxFFNgAyVfeAA9+cXA+R5UWIFkyNGuId87T6Lyum3AJWWOtCLcslRhS4SnaDvlaxO0q/DWY0vtZm7MlPWv69DWRuWhkUudIgBKKVlCkiaPrPUZpk2eeJAZQ7ZP8ihrdL1xrukM4SVXDkMvvfl1mtddJKhvAlbMIlTatRPbp0Ejey2YftTkXi2B4EiFmVBA277RmnmiAvHN4SKf6IHfOVQAMwPwQ==
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=MV/sq1dch9FW6vA4MHXb6hzqxYAXOLEG0PRlqFeD7yE=;
 b=cFnYMV5baXGAWeyK1sCX7vz3HltZhAyZxcA9BVBwKTtBG0j4YmiE/Z5rFtMt2fFBw2Varb/QrKmeEh/6lJpiBaJgev7VCcEMacNIBKBkS4d2YiNMTLVbJq2ogGkGbe53MhtJm9kWi37PLAq/6TaIxnuXYHP8MKzgncpPMCTZEKddrm/Tmtf7OhlQubehPVDuuetJE56FoFPiSqt5hmnyZLUomHy9uAxNiWUEGclopsuRJkSgX7CYrRwBmx4PXtmHJavFQLkPXnwBvHdhz3vT1jvRWz8fECohMGpfBOubiWHJk+VIl21wi1d7RiVZQTmsOrLucSBnFAnzT9JJreYrtg==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MV/sq1dch9FW6vA4MHXb6hzqxYAXOLEG0PRlqFeD7yE=;
 b=va6MnRMMKLArUJRTbr1UrJjhIgh0RHT7JGoBZu1B2pNaxVr2vVeF8heoOqR82dxX9Un+Ow6L2WsAqMibsa0H7kgaHzXgjA2PRgnT/2iwh+rzACB5WE2nC1ORg4a5qtqSmJDvmYWaSrFgQu7jjwF43keSr07q/IHt/TIK9GrlMu1uACSUURW3sO6zfIMFaTXb9R+cX5qopM/zhnqXnhwzh48hqf/Ze8K63ujpbCAFTQ6dri1on6afOkN9UBmGm41izF9TckwZTU/Q+tINKJaOFqlH3LxQurphKsVkX3CEnxjAPh6XKobqwuAarOc/dXtO6wDD5++wjeJZl6OnhDdPmQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <4a9385bc-0b9f-4ea7-a015-40fbc014e4e7@epam.com>
Date: Wed, 13 May 2026 11:40:18 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 07/23] xen/arm: vIOMMU: Add cmdline boot option "viommu
 = <string>"
To: Julien Grall <julien@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
 <5d86efa38ca99439153822fa19064bda6843fdc2.1774918270.git.milan_djokic@epam.com>
 <4d00797b-fe24-43d6-9ada-42426bcdab30@xen.org>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <4d00797b-fe24-43d6-9ada-42426bcdab30@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: VI1P191CA0008.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:800:1ba::6) To AS2PR03MB9587.eurprd03.prod.outlook.com
 (2603:10a6:20b:595::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB9587:EE_|AS8PR03MB7671:EE_
X-MS-Office365-Filtering-Correlation-Id: 3b6d0ea8-3df3-4f1a-fa59-08deb0d3a5b8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|7416014|376014|18002099003|56012099003|22082099003|7136999003|11063799003;
X-Microsoft-Antispam-Message-Info:
	Gzb8wgNyhWcpgK+f6lPLBIpEiSG7ijgLdR1SXrusHws+JWd41SVJsEiXQpZbyEg8nGFDcq8OE5F+LlftqyMfqJ1Sj56wkiCmE5VYCKlEPNBz/NEjbB0wHt18WD6FnGq/IiT4sPkJ6QqrTVLzGVntMyyEMtjjJRF5Jffss6wocHRklGejEbDE8h4BB5kz23HHX4HGvTVc4In9bPRfTEqNHq+UlXqk6mZpoXOO7WbqAKwK5BjCggigkgGYuE+4omSUrVDT8WFkHvPonVsWhHkbZ1UgJMkIdc72zNnyOOV8r44JIvFc13leN+WkbQti3/CfoxoYi5s9xnqU7BDDD40Ozx5lGIPl+DoYBb5mahPMnTFYjxtFouwSrq/Ju4T4iT2YMlb8mizOcuvLpRUVzSJiLbkCeTk40QrKuVi1Svemyv5erBGod5TXsBINObcTTvO0oS+iQnIRPpnEF9yVkjPtoAiWIOgA8s7VR7kLn8w/gyfwrLmFDROB+7aLJNVSmSDCG1dnxmQmkXSIRqmMJSWuE9VlhqL6XF2EskkvrxF69FozPCED5UV7qBl3Wz5eCwNox5287SDfxElxGJqH6DeFU8rVaWfV71y185FPByb562m93uPw7vxaX92jLgbluq0xTXWnqyqYHQDMgwRE9nlt6koxPg/9u6HprKeXbriopLPqIRvMH4tRJ0q86xjkLHsb
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB9587.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(18002099003)(56012099003)(22082099003)(7136999003)(11063799003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OGNSeHROYm51Z2hZUStMY1dPRlovK0dzaWx1MG1KQ3gydEdZOUJoOUE4WEpp?=
 =?utf-8?B?UFN5Y2RvZFd3Q3FGaU42ZnNlSXhBWklpdDNPdlZEUFl4amhYZ0gyMW5xejBT?=
 =?utf-8?B?em13aE1pMFpGWVVaRkUyenRRem1OdzhFS1ZldWZYM0RMUEZZTEYxeUpCMmVV?=
 =?utf-8?B?MnJlK1pjNUc4ZUk1bDhQMWNJMjdzYmUwaGZ1U3E2cG0xQzRIY2xoeEtrTTRy?=
 =?utf-8?B?NWczS01PQUcreFhzcEVKdTBVdjhrUTlzQW5McHVwMEJMaGxUVExIL01uMUw0?=
 =?utf-8?B?SjRMOHpWZU9zZ0ZBcFFraWF3TU85NmxReWFDdmRKNVJrekg2ekdBMVF2V0ZF?=
 =?utf-8?B?T1Q2R1VDcGc4OE9VdlkrdVN4OEtmbE5HdnRxTENFdEVrNTJOMk5YMDhvK2k2?=
 =?utf-8?B?dEExdlZseGxnUXM1cEsyLyt6dFAxc2VaMVppTnlObS9RdGRlSC8zNXJMYkpO?=
 =?utf-8?B?anlXL3ZRczNGd2NQNExtbHQxUi9sZFoxc1JlVjUwcjhNcTEwN1VXYmRBLzBh?=
 =?utf-8?B?elFaOHk1bzZObFVhMDYxN2crSTJiUEJnVlJSYUdNSGhKYVNUUkN3L2RwdHZG?=
 =?utf-8?B?SmZMTVlhQ2dFaDJTRVhFYm1HZ0NDZHhGLzNrMG4yQ0dtZThGajFqalFHYWxr?=
 =?utf-8?B?VUJsMnk1Q3RaS01HSTNTeVdORWt2UWpvRVE2SUNNbk1qVFMxVUVkejNFN2FB?=
 =?utf-8?B?TlovT1d4RElEYjJxaURmbHZ2T0ZBVnJFVm5CR0dVcWdNU25Zb0s5VWJWckJH?=
 =?utf-8?B?UUZwSGFhVlZ0cDgzWk0zV3ZFT0c0bDBsVjFIdTc0RWtXRGpRSVd1QTRiUFh6?=
 =?utf-8?B?VDQ2bjBhZHZOUExxMjJ1aXBGY1l5RUJqNzUyVmJyd1gxaXJjLzdnOWc1MG5D?=
 =?utf-8?B?Nm9GblZFNnFIMktuVVlyWDVtWWwza2REYVBQRWlILzJQMFkvcWhhUkpoZEE3?=
 =?utf-8?B?MmJqckUvM3hKUFl5ZlZRMUgxcTR3ZUVkdmUxQW5ubHdpTmdQWjB0cExtMnlP?=
 =?utf-8?B?VzRtV3lZbVdKZElGZ0JqbXZuSERWV085MkNMTXFnTmdpSGVYRmpOSXB4Sk1M?=
 =?utf-8?B?MzdORUd6OWxSOFoxVXlxaythbDF2RXpmZ1Q2UEZiaVh2WFpJNGZUVGFGOVRS?=
 =?utf-8?B?LzQ3cnAxMG84UUswQ2pDYkt2TkRwVnNESHVyalF5RUI1bFdaaENOWURXYVZl?=
 =?utf-8?B?TkE1K3RXeGhtSG9RYzdrQW1BODlwU3BadzBwSDY3UXhUMHo4c2pWcy9PZFMy?=
 =?utf-8?B?V0hnUUtrVDdHRHBBK0tmWUVKc3VDcFJyeHZreE51WHByWHRyQUtFTGxiV1hj?=
 =?utf-8?B?ZXVKbkdOUVA3eWc2T2lnUDdiczJtTHdrSmZ4UDNtK09zMkc5NFZGc05GaTZn?=
 =?utf-8?B?aGhjRFFqbUdLc3Iwbit3YVd6Q3JFSElXbzJFNEdTRVovQjI4VTA0elovd1Zq?=
 =?utf-8?B?ZGo1dzhtejhEWm92RE55akpBR3BhY3hGOGRIYUs3WnJMNTdpRDcrMUJ2ZlZ2?=
 =?utf-8?B?a3pwNC9ZTlczSDJ1WVMxR3l1eW5tb01tUHg1UEFUUkVLSTFaMGQxV3VCRHFZ?=
 =?utf-8?B?aVBlTi9mUW9SY2pWY2ZWNElyT3ArN09KaW9hbmdHSFJNN2wvR2hyUXhZYmo0?=
 =?utf-8?B?YlE0N0x3ZmFRMnQwUzNwYkRFRTdrOElqU2Rvb0swWTB6YllvT3VYNHJJR3lR?=
 =?utf-8?B?aUw0U0M3d3d6cTY1ZTdhemc0WWc0UFl4YWQ5SmN4cTNmWTNldVhxREhTbzlS?=
 =?utf-8?B?QlBlQkYrZ0JLUWxPRlVCSjRmeUlZekkxU0ZSRlBSc3NBUmd6eXo1VithVmRI?=
 =?utf-8?B?akRBU01NY0xuYmRpQWpTZ2lnazA1aFBEYjJOUlhPdUg1UHptQXl0b003QmJS?=
 =?utf-8?B?WFExd1RudWtETVVhS0RPK3FPRnVMNWpzYUxPZ3RrZnZieEI0b0dqK05TaXhN?=
 =?utf-8?B?S3gvU2w5ZFArbW93SldXMHBwTThnQ2s1emRUNXY3QWJwd0pxTHVLTjFZVGlp?=
 =?utf-8?B?aDdrTE9pS0szL1lWbTBhTWVFYkZ2N2pxQUFVOUozeVdINXBCS3FSQ1NJSWVK?=
 =?utf-8?B?MVdYNm5sTUdkbDZUbmpsYzVvTnJ1dG1LdUlGOFFiY0dRekVsRVpoYUdxQkNp?=
 =?utf-8?B?NDl4bUxIM0k1Y2l6Y21XRHlDY3JkWXIvcGRCaTZkdGVTWkFVdjRJVENvUldW?=
 =?utf-8?B?VW1WSmpmNkE5VXE2ckQvK0pJc1dMVHBVcmpmYXlTUVZqK1Q3T3JCc2wwUTA0?=
 =?utf-8?B?Tkl0ZUNoTXEwQnBQOTIzS0RDN3BGdnNMS3Z0WUFzZFU0eU5qRFcrZGJoS2VV?=
 =?utf-8?B?enRBdWR1cWZzbmZXZjRNbU9GdW9wYkZIeGNUc0U5eFc2dHFia1hrUT09?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3b6d0ea8-3df3-4f1a-fa59-08deb0d3a5b8
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB9587.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 09:40:20.0773
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: o7mI6DosBp2xy0yW4qAer12wFq7z4xKp3kXlkYZfECRgHvRJxRcOna7MCUNCYRVtWLsDlkvSnCu4UfOO8RLkCg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7671
X-purgate-ID: tlsNG-720697/1778665222-ABB60161-995994CC/0/0
X-purgate-type: clean
X-purgate-size: 5820

Hi Julien,

On 4/14/26 09:18, Julien Grall wrote:
> Hi Milan,
> 
> On 31/03/2026 10:52, Milan Djokic wrote:
>> From: Rahul Singh <rahul.singh@arm.com>
>>
>> Add cmdline boot option "viommu = <string>" to enable or disable the
>> virtual iommu support for guests on ARM (only viommu="smmuv3" supported
>> for now).
> 
> In Xen terminology, 'guests' refers to domUs. IOW, this doesn't include
> dom0. Is this what you meant? If so, how would you enable it for dom0?
> 

This boot option enables vIOMMU initialization in Xen itself and also 
enables vIOMMU for dom0. For domUs, vIOMMU is enabled via the guest 
configuration file.
The exception is dom0less mode, where setting this boot option enables 
vIOMMU for all guests.

> That said, is there any particular reason why this can't be
> automatically enabled based on the SMMUv3 discovered?
> 

This boot option was intended to provide a runtime enable/disable 
mechanism for vIOMMU even when the vIOMMU build options 
(CONFIG_VIRTUAL_IOMMU / CONFIG_VIRTUAL_ARM_SMMU_V3) are enabled.

However, this may be unnecessary, and relying on the build options for 
enabling vIOMMU seems sufficient. I will remove this commit from the 
patch series.


>>
>> Signed-off-by: Rahul Singh <rahul.singh@arm.com>
>> Signed-off-by: Milan Djokic <milan_djokic@epam.com>
>> ---
>>    docs/misc/xen-command-line.pandoc      |  9 +++++++++
>>    xen/arch/arm/include/asm/viommu.h      | 12 ++++++++++++
>>    xen/drivers/passthrough/arm/viommu.c   | 11 +++++++++++
>>    xen/drivers/passthrough/arm/vsmmu-v3.c |  3 +++
>>    4 files changed, 35 insertions(+)
>>
>> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
>> index 6c77129732..6531c2355c 100644
>> --- a/docs/misc/xen-command-line.pandoc
>> +++ b/docs/misc/xen-command-line.pandoc
>> @@ -2850,6 +2850,15 @@ The optional `keep` parameter causes Xen to continue using the vga
>>    console even after dom0 has been started.  The default behaviour is to
>>    relinquish control to dom0.
>>    
>> +### viommu (arm)
>> +> `= <string>`
>> +
>> +> Default: ``
>> +
>> +Flag to enable or disable support for the virtual IOMMU for guests. Disabled by
>> +default. Enable by specifying target IOMMU type (if supported). Only "smmuv3"
>> +IOMMU emulation supported at this point.
>> +
>>    ### viridian-spinlock-retry-count (x86)
>>    > `= <integer>`
>>    
>> diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/include/asm/viommu.h
>> index 2a6742de73..ed338fe0ec 100644
>> --- a/xen/arch/arm/include/asm/viommu.h
>> +++ b/xen/arch/arm/include/asm/viommu.h
>> @@ -10,6 +10,7 @@
>>    #include <public/xen.h>
>>    
>>    extern struct list_head host_iommu_list;
>> +extern char viommu[];
>>    
>>    /* data structure for each hardware IOMMU */
>>    struct host_iommu {
>> @@ -50,6 +51,12 @@ uint16_t viommu_get_type(void);
>>    void add_to_host_iommu_list(paddr_t addr, paddr_t size,
>>                                const struct dt_device_node *node);
>>    
>> +static always_inline bool is_viommu_enabled(void)
> 
> Regardless what Luca wrote, why do we need to force "always_inline"?
> 

I don't think it's necessary to use always_inline here, anyway this 
function will be removed.

>> +{
>> +    /* only smmuv3 emulation supported */
>> +    return !strcmp(viommu, "smmuv3");
>> +}
>> +
>>    #else
>>    
>>    static inline uint8_t viommu_get_type(void)
>> @@ -76,6 +83,11 @@ static inline void add_to_host_iommu_list(paddr_t addr, paddr_t size,
>>        return;
>>    }
>>    
>> +static always_inline bool is_viommu_enabled(void)
>> +{
>> +    return false;
>> +}
>> +
>>    #endif /* CONFIG_ARM_VIRTUAL_IOMMU */
>>    
>>    #endif /* __ARCH_ARM_VIOMMU_H__ */
>> diff --git a/xen/drivers/passthrough/arm/viommu.c b/xen/drivers/passthrough/arm/viommu.c
>> index 53ae46349a..5f5892fbb2 100644
>> --- a/xen/drivers/passthrough/arm/viommu.c
>> +++ b/xen/drivers/passthrough/arm/viommu.c
>> @@ -3,6 +3,7 @@
>>    #include <xen/errno.h>
>>    #include <xen/init.h>
>>    #include <xen/irq.h>
>> +#include <xen/param.h>
>>    #include <xen/types.h>
>>    
>>    #include <asm/viommu.h>
>> @@ -38,8 +39,18 @@ void add_to_host_iommu_list(paddr_t addr, paddr_t size,
>>        list_add_tail(&iommu_data->entry, &host_iommu_list);
>>    }
>>    
>> +/* By default viommu is disabled.
>> + * If enabled, 'viommu' param indicates type (smmuv3 is only supported type atm)
>> + */
>> +char __read_mostly viommu[10] = "";
>> +string_param("viommu", viommu);
>> +
>>    int domain_viommu_init(struct domain *d, uint16_t viommu_type)
>>    {
>> +    /* Enable viommu when it has been enabled explicitly (viommu="smmuv3"). */
>> +    if ( !is_viommu_enabled() )
>   > +        return 0;> +
>>        if ( viommu_type == XEN_DOMCTL_CONFIG_VIOMMU_NONE )
>>            return 0;
>>    
>> diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrough/arm/vsmmu-v3.c
>> index 6b4009e5ef..e36f200ba5 100644
>> --- a/xen/drivers/passthrough/arm/vsmmu-v3.c
>> +++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
>> @@ -105,6 +105,9 @@ void __init vsmmuv3_set_type(void)
>>    {
>>        const struct viommu_desc *desc = &vsmmuv3_desc;
>>    
>> +    if ( !is_viommu_enabled() )
> 
> This is likely going to go wrong in the future if we add support for
> other vIOMMU in the future. If we decide to continue using the command
> line option (see above), you would want want an helper to return the
> selected emulation and check against SMMUv3 here.
> 

Yes, I will remove the command-line option and use the viommu_get_type() 
helper where needed to check the selected vIOMMU emulation type.

> Cheers,
> 

Best regards,
Milan



From xen-devel-bounces@lists.xenproject.org Wed May 13 09:41:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 09:41:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307741.1579326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN65T-0000pE-93; Wed, 13 May 2026 09:41:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307741.1579326; Wed, 13 May 2026 09:41:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN65T-0000p7-5x; Wed, 13 May 2026 09:41:07 +0000
Received: by outflank-mailman (input) for mailman id 1307741;
 Wed, 13 May 2026 09:41:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1wN65R-0000ox-ID
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 09:41:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN65Q-009eUs-RR
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 11:41:04 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 6a044720-2eae-0a2a0a5409dd-0a2a4501bc6c-44
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 11:41:04 +0200
Received: from [52.101.70.127]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <milan_djokic@epam.com>)
 id 6a044730-c1f2-0a2a45010019-3465467fe088-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 11:41:04 +0200
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com (2603:10a6:20b:595::7)
 by AS8PR03MB7671.eurprd03.prod.outlook.com (2603:10a6:20b:401::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Wed, 13 May
 2026 09:41:02 +0000
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5]) by AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5%4]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 09:41:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CDbaWv79hCwMPQtNj4o4+iWSgf+Ef/Q8C2bExvuVDnO3KOD/mpBypoXXs4GorFqzMDsEZS7eRNWGIj+1Z8qdDIha5iepGz5azywyJumzyHBQo4WTbw7LriLdTbCoVupQKkKh4KdVpbGdmrj/mbxaCcogqzpw052gzeAFLg6jKtsBIfm06hXMtOk9mZ4eyG4JoMVJyhjnO7+bZP5YI/334wNIlumRlYVDFzkyFbwEaC8Ph8tbRTN+I2HlMaLMl3Rj6MstjoW3WYQYMkuwKB2QUjJt40UPUqRBwWeFV5XOY0+k1QNqySSQvgNm2iB0hB3Y6M1baXs91Qt4+agQQSjAOg==
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=9jFPrXpRbrfrR/muoX+iMH2iK5Y9JkVdH1twkdQ0HrY=;
 b=DcAEBFbfhk05he+Jm7+MQMjMosF6+VFIbxuDsgnOXEoBxqpQd6NIk3reNIafSOD1uzMPH0ps7mV7luVo9jny7SPXZCivMYvElFuCz69LodRamP0YPh8XXWa/mEJcbmJKtHnWQqZ7zf5xvW6VggJT5NyE0aDxyeaw4x3KVn/DnnlO3kOJR8jNNBXk3JfSSDHCEuvObXvbJdgaJRSpFLZTPW28t8btHQkJrPu0H+sLgkbdy6Q+R0U6vkU8sj1syVL1qAmxQDG0WxD60qw94VyvnYg32uxSkPlhbQDFrYKpVyBTE7UXQLTE2MedyxCkEKM1gMRSULnvl9MjAwB2f37hNQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9jFPrXpRbrfrR/muoX+iMH2iK5Y9JkVdH1twkdQ0HrY=;
 b=m1C8EMQtdPAuPdKXbSGQBOgjNepvrz68RhYFf0GGX1Lede5RuF8JP7w97tkVFuYnkaDxQNv1v+Pl1cyIwUfRMRCoHLsebbwdCjnkw2bxDX5E3bgMDrRXoD6dZ4kF0SceDzvbWxIrDikA0YjabWTFj7S6MEtnWqgr8EREyha9TqHvcW7R0QPx06uzemaYD46Rbd69eBxCsGxzLMOASGt1CD5hvhWcgPSl6HCODrhac8CcvLwCmDtUZ0DfBho499pzwgZ/vzy37CZjMVpg+4JkZt2TmCvApHmuMGF4lZ/U72vZa2s0kHoB8Y6jLhBU0O2KgtCDUcLgSabo23jig1Wijg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <dd4ff55e-dced-4146-a2e7-e5819f0a1448@epam.com>
Date: Wed, 13 May 2026 11:41:00 +0200
User-Agent: Mozilla Thunderbird
From: Milan Djokic <milan_djokic@epam.com>
Subject: Re: [PATCH v3 07/23] xen/arm: vIOMMU: Add cmdline boot option "viommu
 = <string>"
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Rahul Singh <Rahul.Singh@arm.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
 <5d86efa38ca99439153822fa19064bda6843fdc2.1774918270.git.milan_djokic@epam.com>
 <461C3828-5BCB-4F53-9B39-AB7FC8517039@arm.com>
Content-Language: en-US
In-Reply-To: <461C3828-5BCB-4F53-9B39-AB7FC8517039@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: VI1P191CA0007.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:800:1ba::17) To AS2PR03MB9587.eurprd03.prod.outlook.com
 (2603:10a6:20b:595::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB9587:EE_|AS8PR03MB7671:EE_
X-MS-Office365-Filtering-Correlation-Id: 9b07a8a8-98e6-403c-f102-08deb0d3befd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|7416014|376014|18002099003|56012099003|22082099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	Km4HFbYX9pprWvUP4yYzWBVQMYbRz6ojL4qMSOk0SWqXSsDbnoqC6teUdavA/ldWuoe+xUUI1B/bR6NhKeVdOT4a5XJwQbDyKI98mcvIH2ie90czf5BkcyVxb5rNXV8UB/q3ogVkrAPurkBFMcaC9MQWREUJn2YCzDYmlKA1r1RM/gFZUBg/cLdrNVNRXlOysLcjVSeMvDlmsWq29l236qhYsgASCrgAP+WfLOJ+ZSDHU9hBeq3WUzBpE35pPtictnxQwOHR3N1w4XYO4yNraJVE9mQO1QeBhuhmaKL3xUiC+m5c12YejXo3HliNpJfWn9GuQ4dQzl6Nkn1xwIcoS/Udx7AVIM417vu65dhqB+RWyXGzGMajAAX4hNBLPRsECJgVFoEDi7un6+1oIRW5dJV4kJpsgx5dWLNvJV+lzOL6iubVFZZcPRrhS2B2x50TWAsYHCvqRln6Je2l09nonEO5BLLMb3vYmnsLM9S+wqm/yOfyRfRab+f9ZDnMnJSXAqd0SoQ4EbuLlHYElu4epTxyHdQK8MLMITscHG6RDoSF8iDu5AzI+d6huR5gProy0ZNdLrJ4DZm+4zJemhIAXO39kkKlL1hGPTcfCcuG2CoSQsUjhAw+FwcVRPUUWhbof1EgmG4AMpa9SZnnC+Lh5bg4gsL8dmz+9NLRarTJBrB6T6ApZAaykEKFKYbh4qyP
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB9587.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(18002099003)(56012099003)(22082099003)(11063799003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RG9VQWdpZVluUUxxZEJXVnBnUU1kUHBQN0ZxUjdiVlhQRERIbEcxc2paK3Vk?=
 =?utf-8?B?NzV5cUpoYTVob0haUjVDQ2dqM3RvUm05Q2t4NlYrQUF5U2RVTm8yMEpEVy9r?=
 =?utf-8?B?NnIzWUY0VVlWdHFEOFR5di9vMnFFUktKOVNQRVZ4Nkt0WDl1bXF3ZVpmK2Zm?=
 =?utf-8?B?NHBsMFNzSVFuYVdwZ0ZjeTBjTnVPNnJmK0tCeHp2N1ovQVZOd2VmYlYxczBq?=
 =?utf-8?B?a1ZkcVRNeU1IQnlvQktNMk5pNDhEb0tjK0Zpellsa3NmYmllWThMRU1rVGxI?=
 =?utf-8?B?WTB3V1RWZjJlWFRMNy9lZ0o4RGZRam02RTBranRxTGhOcVJqUUpOdWhiNzdx?=
 =?utf-8?B?WkJyeDFkdFE1Wi9LYWNSb056NlNiUm4xSXpsNUJKa2R5REsrM0xjR01VUkhs?=
 =?utf-8?B?RHF3L291SC9JRjRVS1Z3cGUyUm9qcTBoNHhTMzZzSldKMklBVTJ6TDUxdmdz?=
 =?utf-8?B?Rm90WGhEK2k4cC9JYjA4cEhwR1ZiSUtWbmJ2eGo5YVkxcHl0M1dhci9hbFR4?=
 =?utf-8?B?aTdWOGx5Y0JVb0poVUpvdTMvTXg0TTIvVXZSQXpNQjl2UmQ5WlZOeHFVUG42?=
 =?utf-8?B?V0FERHRkTXFPeUdoenpMdWZleEF3THpCOVkwVE9EV0VNUGdzUGJIb1ZXbDZP?=
 =?utf-8?B?Tk1mbEhyK0FJK0NobVB1R2swQ2djblN4UjlmOVBtSlZCY20zSVFvQVp1SU1u?=
 =?utf-8?B?bEJLdUdmejN2K2F0OEtnUElKK3ZVNVkxT2p1TzFUZjF2Vy9IY2FOODEyU3lY?=
 =?utf-8?B?TE0yakp0VWs1VjBUbmFpaTVNamhNaGlpbzQ2UlA4VXVxRWg1RmQ2MFZ0ZnJh?=
 =?utf-8?B?NDZaUkxWbDZLcDlBdWNieTJjRDNFZzJuOGZjMmlJajlPOWJYaFVvYm5CV3Zq?=
 =?utf-8?B?Q3lYSWYrTCs1Ym1Qbkg4czA5Ry9YN1JVT0JWU0JJOGZSQ3VHRnNUeFBtUTM4?=
 =?utf-8?B?aGRJN2pUckkxL0hPeG1zMmJNVEZTOUVLYjhINXVIWGJQUDFWNzFDUFhEcmUr?=
 =?utf-8?B?dXZ3elZZVnFLdVNRTFpwazl6STRsbnN6VFhBNDMvTjRhTkF2WS93aXd4MTNL?=
 =?utf-8?B?U0t1NUw3UDZ6QmxzYmIrYTJLbFhsZytleTAyT05qVWMxcytsYmZFNmZWRWNp?=
 =?utf-8?B?clcxdi9UVFdMcHhybmhqYTcrQ2tFY3NTTWZURDdzTmQxTllQRlc1S1hSRjFD?=
 =?utf-8?B?NDd0ZUd2RHgzYXRjRm5UWkJxYjdRM0o2YlozUVEvdGFYZDNWTlFESWppTjJr?=
 =?utf-8?B?d3VMc1cxbCtBWTZGdVh2UmdVSlpjc0szaHErNUF6elgrZkRMK1lMaUhtVk9G?=
 =?utf-8?B?Nlk1NTZLSHZrRDdXa0hZMVk0S2VRTnRpL0dzd2phOTd3TmprTHNHT3hwUzh0?=
 =?utf-8?B?MUoxdGtsdWEvQTBsR1hVU3grSUtmK2FrL2hTN3E4dnFPSmNRUVhUZUphT216?=
 =?utf-8?B?SEt0U3NSR2hEK2srYU1XNW9OeXN4TUlLbStMY0xuSFVUMVJnZUFSTC90WnUr?=
 =?utf-8?B?NkNiUkMxYW5YQ3BNOUk0ckk4L0Zxd0Zkd0p3VTl3clNBNnZId09MK250b0RF?=
 =?utf-8?B?M2RmRWtwTmoydmtSaTljMDVoSlFmTUx0dW01MnB4SEFTTGpGbTNJZ2EzRUVZ?=
 =?utf-8?B?RjAycHdaMTNJNk9nR3lBRm1IWnloM204TEo0ZEhxMUV4TGhEYVI2RG16T2RC?=
 =?utf-8?B?OW1BU3ZBWjhqdkMxREVuZmtVR2VZV0xVWThPVEt3Q2JTMXJjQU84a0J5K1ls?=
 =?utf-8?B?Ym1wWStkY1Q2ZDY2MkdrQi8yVUZGVytwdVNDQ2x2bWhLMGxjS1p4aktNREFm?=
 =?utf-8?B?Y0hETmdUZGtpOVh6Q2hONjJiRy92Rjg2VTdYS0hGYXFURzBGdUJ4TTdvQzky?=
 =?utf-8?B?Z01FNXpZTnZSaUkzV0lhRFU5UytNNWdLOFovNHBQaVUvb21BR25ITS8vclV5?=
 =?utf-8?B?Mmx2YlVxRnRHNEN4Ui9pVlFFZThueGZSbnpZVmFQNS9KVVpobGlxT2JYMzI5?=
 =?utf-8?B?MGFDcEdleXA0VUdxOVd2dmF3TTF4WFpRL3M3SlBXK0M3L1lTMHdSZlFualZ5?=
 =?utf-8?B?NVNvMm5OOFFheVZ6OXdMR3ArZnZ2Y2lBcW41aUlmN0dia1NRbW9SUlgvRCtK?=
 =?utf-8?B?YzkwbTgwWDRRckpaekZMZWl2bjdUSGs5ZzZaYkVqQ2NIdWJsckh5OVZwTGlz?=
 =?utf-8?B?di9XcWxsYjFTd2Z4b2xoQkl4Rk9vZUVYbmpCTW9HcDlsb1BzVkRSQnBWMlNL?=
 =?utf-8?B?MjJBVjZOL1JGelFOYWgxVytuV01ieDV5Z0F0MHJ2L0lna09nRzEzVXQ4V2I1?=
 =?utf-8?B?UUlCbjJsM0wvTzZiZ2pVbVBMc3psWWlsR21xcGxEaVVzN3RJN3BDQT09?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9b07a8a8-98e6-403c-f102-08deb0d3befd
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB9587.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 09:41:02.4086
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 1v7Eln3swaw7gJNQp6vFbi+DAaqh1DPXzT/3myKEwHccp5qAtGyEth62UiOmIXvfrHF7JALyYvZ8kDEVSjtDSQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7671
X-purgate-ID: tlsNG-d62444/1778665264-B4173FF4-E05E8ED7/0/0
X-purgate-type: clean
X-purgate-size: 1367

Hi Luca,

On 4/10/26 16:28, Luca Fancellu wrote:
> HI Milan,
> 
>>
>> diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/include/asm/viommu.h
>> index 2a6742de73..ed338fe0ec 100644
>> --- a/xen/arch/arm/include/asm/viommu.h
>> +++ b/xen/arch/arm/include/asm/viommu.h
>> @@ -10,6 +10,7 @@
>> #include <public/xen.h>
>>
>> extern struct list_head host_iommu_list;
>> +extern char viommu[];
> 
> As far as I can see this one is used only in this header by ...
> 
>>
>> /* data structure for each hardware IOMMU */
>> struct host_iommu {
>> @@ -50,6 +51,12 @@ uint16_t viommu_get_type(void);
>> void add_to_host_iommu_list(paddr_t addr, paddr_t size,
>>                              const struct dt_device_node *node);
>>
>> +static always_inline bool is_viommu_enabled(void)
>> +{
>> +    /* only smmuv3 emulation supported */
>> +    return !strcmp(viommu, "smmuv3");
>> +}
> 
> this function, it seems cleaner to me if viommu is static inside xen/xen/drivers/passthrough/arm/viommu.c
> and this one can be defined there as well, so here we will have only the declaration.
> 

I will remove this patch, including the additional boot option and 
is_viommu_enabled(). Relying on the existing vIOMMU config options 
should be sufficient for vIOMMU enable/disable control.

> Cheers,
> Luca
> 

Best regards,
Milan



From xen-devel-bounces@lists.xenproject.org Wed May 13 10:36:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 10:36:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307766.1579346 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN6x5-0007ua-95; Wed, 13 May 2026 10:36:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307766.1579346; Wed, 13 May 2026 10:36:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN6x5-0007uT-6P; Wed, 13 May 2026 10:36:31 +0000
Received: by outflank-mailman (input) for mailman id 1307766;
 Wed, 13 May 2026 10:36:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wN6x3-0007uN-LG
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 10:36:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN6x1-00BYSE-5t
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 12:36:28 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a045421-bab6-0a2a0a5309dd-0a2a4502e210-28
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 12:36:28 +0200
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a04542c-af86-0a2a45020019-d155dd33a46e-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 12:36:28 +0200
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-43d734223e4so4073134f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 03:36:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491da03a7sm40225880f8f.33.2026.05.13.03.36.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 03:36:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778668588; x=1779273388; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=K5DeNQ+P3aDKY/gxbWlqjCRir9DtqEU+hexTZ6Msi0c=;
        b=GtoUGq08gs/oSprDjXG+/PFLnup6ELv+xxy6vbqSnIG7lHMIb+CSd3PBQGHFOIh0Db
         jeakA8Gx/4K2OtoKNf/UWYO92QIfgPDBWyGX4XE5NXIAtlxNKZ0T7lu0vK5T+5GxS116
         BWGmQg/yaxs9rvkb6A0eC6WGSp0gMpDgpvtQNbmxwiTkUPO7qLkfqRgSpvFzQbm1iTep
         BV2We7YVfvb9eRbU6iYyM8qKc0hlERhp8w1OcJbxqlC8O6JwGvLHGqyPXkio0mJgZMCR
         zdpmM7M8Fx9jJ/5t2NqMIB+/a2LeAA1sQfODdHyO0Ci3ltkS+c3aEjn9ndnXSog7YsT8
         FT/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778668588; x=1779273388;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=K5DeNQ+P3aDKY/gxbWlqjCRir9DtqEU+hexTZ6Msi0c=;
        b=YhkfsbXdT4MkKcGWq6+1BEkyA1stAI6zuxw/hg/w6aeE7PSZmqkcuhefMt1wUJP+Ic
         No7HYo3LHpvb9fWtpMazhhsQezC1kZL/9g+9XYByqwJyJRUb7PnriFa+s80sLvCuoorI
         YYu8NjRD3ttc3oiHqAfECILhoa0usuZ+9L36LB1754oRMvH5ekJKw9ZJ5zwFJU+bljIu
         rWkhyZYRp+25/6GOZxZDrO4fhVNlvLpLN0axIsD+Q+v9FVijFmbjS9RTJlS0rUAiHKUa
         Pv/iveD0iC6k4t6q4LG+lP5+AE2nRYtN0oABJ/mAD1etXiiuTIxBid/r0JMTDCYP5Da8
         HqGg==
X-Gm-Message-State: AOJu0YxZ1umv+opsLhd/QChcJ33ijisXtwT54eowqIGLdO1R7BKxurLa
	tTqZkZ4L6c6dXsa3or9++kNokCUdZUQykUyTO11I/ZOscQNxk1yz20YcgFDlGJvePA==
X-Gm-Gg: Acq92OH0sYr+lLYbMaLT52yF2dqhUXdW3iVH2n4ijZZwFcp8pl4VKgC2OPvFOCVbqqU
	6FBOmDop/FCCyyS8WZM2e3znDiTpaWupCA5URytWy/ov6P781Tk0kVyqfR9YmM9M4xq2nQLqS5j
	n6UI6/qACjQs7KkCCxC5AsrklY0sh/CKow8wlxyktALprNaCIutfT/NGln2GAYEFrj4OC77SlML
	HvdU+qGw5H3BgoX7vV/n5lJwZWlTTPg/Zc7iLBon9c6QNAluEudmmARnXGR938TrGxsDJt0u3v2
	/RQP4kRaIntQayWDB7/a2D95JKMBK2CGOy9zx+tv2GgUe5Lh8cHkEAtCkvqlYLOOszO6qhkNWEg
	/oR3XH6so+Lfz6LMrfcYtMtiox2mhgLzwdLkLRmd//Z2tSej6EzYvM78v1K20Mhl+X/Iqnges19
	VdlYFPVVuv4XgdwJ3gtFXe/LIBOxoNfTLFc+U/ixDmg5u/UogQmjKXnFj1I28Nm5CXIvzClqidE
	jY41y+bxGd0LgY=
X-Received: by 2002:a05:6000:2f83:b0:448:d2f8:be2a with SMTP id ffacd0b85a97d-45c46ef76bdmr4703662f8f.19.1778668587982;
        Wed, 13 May 2026 03:36:27 -0700 (PDT)
Message-ID: <35e23e0f-5439-4516-906c-4310cd05a4a9@suse.com>
Date: Wed, 13 May 2026 12:36:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 1/5] x86/time: use RTC century byte when
 available
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <2723456f-5d8c-4a2a-9876-e65d35579936@suse.com>
 <agQ7B0JQqisZ55jp@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agQ7B0JQqisZ55jp@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778668588-8137C161-66984141/0/0
X-purgate-type: clean
X-purgate-size: 937

On 13.05.2026 10:49, Roger Pau Monné wrote:
> On Tue, May 12, 2026 at 04:58:43PM +0200, Jan Beulich wrote:
>> @@ -1280,6 +1281,8 @@ static bool __get_cmos_time(struct rtc_t
>>      rtc->day  = CMOS_READ(RTC_DAY_OF_MONTH);
>>      rtc->mon  = CMOS_READ(RTC_MONTH);
>>      rtc->year = CMOS_READ(RTC_YEAR);
>> +    if ( acpi_gbl_FADT.century && acpi_gbl_FADT.century < 0x80 )
>> +        century = CMOS_READ(acpi_gbl_FADT.century);
>>      
>>      if ( RTC_ALWAYS_BCD || !(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) )
>>      {
>> @@ -1293,7 +1296,12 @@ static bool __get_cmos_time(struct rtc_t
>>  
>>      spin_unlock_irqrestore(&rtc_lock, flags);
>>  
>> -    if ( (rtc->year += 1900) < 1970 )
>> +    if ( century )
>> +    {
>> +        BCD_TO_BIN(century);
> 
> Don't you need to move the BCD_TO_BIN() translation with the rest, so
> it's not done unconditionally?

No, the century field is always BCD.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 13 10:39:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 10:39:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307777.1579356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN70I-0000F7-QA; Wed, 13 May 2026 10:39:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307777.1579356; Wed, 13 May 2026 10:39:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN70I-0000F0-Ml; Wed, 13 May 2026 10:39:50 +0000
Received: by outflank-mailman (input) for mailman id 1307777;
 Wed, 13 May 2026 10:39:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wN70H-0000Es-8j
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 10:39:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN70G-009oFH-LL
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 12:39:48 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0454f3-bab6-0a2a0a5309dd-0a2a4507856c-6
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 12:39:48 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0454f4-229c-0a2a45070019-d155802fc560-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 12:39:48 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-488af9fdaa7so37589815e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 03:39:48 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8d74536sm67159735e9.15.2026.05.13.03.39.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 03:39:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778668788; x=1779273588; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dbW5P/dH109E6LCimmcdaL3NKfgA1YIzofmBlk9ui8g=;
        b=GhpQKN5O35qHPhY2LjcRv5TuECoAGg9Yr/3Rt2eRSdCY8hatiL6jSyYMbPOWHGJZS5
         57Rla6aQKn/t9j188S/maRBaLGL4cofp1+CTRbhf0pu+bMqiKIVnJ43RONPvXj1RSNWu
         pr62bsXvFJvTWmwNVojcPbuXeK12X9syhgKdQCAr+vktjW5leP/DplEpcE6w4/mYFeVs
         6LgsGcM4vBdiAvLdjG02ZmC19yT36v3lhOeXCprzoqVtODddcQd2lxv8LXVFuORl5mJ+
         4bHG5pwiD4Ueu5NXY/Pr7Kww1bxO/8Fto0p9HCX+Q+MHShD1t1P3RhyS/uhqhpnN01rW
         B9tw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778668788; x=1779273588;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dbW5P/dH109E6LCimmcdaL3NKfgA1YIzofmBlk9ui8g=;
        b=kNO/XUdvz1AwHQI9q/nl9tSrwYBXgLfu+SUWdKbj5+FHaEAJ4gN1yamx5gEw2JB3ft
         wKqqE6/MkezUsQvEvxn0zSVXaZlCnShDK3Pvmr98IBRh1MFAcEv+sDdi7Apol0puTKIX
         22JA8tX+sgTgs0FbZa/O7sZfm9zUlsz8wSeNNAZNVgJvVwHdpFoZ5K+PvYr5tm9lcPTy
         UnJtvur9TkN0Cf7xD3F37cPb1sEAXHzKM1GXKc+OKv3ktHASDDpv0w2/opfgiFuoFSAu
         lY14x3H4Fm4ucESvUFu8DtRmmNwHelS1iP56rqIGFySzteZagcCIQsTESTA6/QKgsUd0
         O9LA==
X-Gm-Message-State: AOJu0YyLRKvX3jtY6PR5xAdacq5gttvlkCBzUeWIjCYHrEuaUEDWwS3Z
	brV69GsEj3PyR+CwuirJYVXHeC+kQheS9K32zi2Gh4glyqF8kIkLXPCG6SXVRV7wRg==
X-Gm-Gg: Acq92OGTQmi8bIcPAIB2aGgUCxIvNa+qnzl/r2dkbhaL+e+B6sTjYPS732ipdbBJaMh
	ecSsfe6wa3oq+O01ChHwH2HQipkg7FzgnYbAit9CZLF0MzDOtn4Ff3cAnfVJwxpRvBwElbAaXuh
	/fA3q9yR+MGtAenftkjmTZ7pRlcplSwNXceOFgI1ebI3A0BJjd2p/IpY42jDt32Vwa6/0zM8r6a
	7q8iMIX2tdnQrRrZ3WLQj2iHVFkvyUR8baPKWZsReRWsE7Ui4OE2xr2BQWMaC2TTGHjWgHmpk9c
	JUrfq2UbfwfJBNdsjXoqIJuf1ms7/vGNLizTjD3e7z0hoI4HT66vqgy3ibru6Jz2NhBrhvxWCjU
	4IffTLlrWs5eUUZt1EXrAjYtD4ff49I0si4LERrzxzrh0OiOdzyhgb46hbmEoTOu9GCbDTmDkYC
	p8Oq0cp0dSoU6JFT9VMalxh96PB0i2voUA+L++3m/H3MxswjbyMOBSCcYse/oQbm35DSb8aMxX3
	XH8wsuDN7jgJ1w=
X-Received: by 2002:a05:600c:4fcb:b0:485:9a50:3370 with SMTP id 5b1f17b1804b1-48fc9a0ebc2mr39063545e9.8.1778668787958;
        Wed, 13 May 2026 03:39:47 -0700 (PDT)
Message-ID: <d37322ac-fdf9-48bb-91e3-3e8d560fa758@suse.com>
Date: Wed, 13 May 2026 12:39:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] x86/time: move BCD_TO_BIN() uses
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <2c5af8f9-05f6-43c4-afb4-a50cbacd2d49@suse.com>
 <agQ8tRY3Kya6RasY@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agQ8tRY3Kya6RasY@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1778668788-20F66C48-CF883A97/0/0
X-purgate-type: clean
X-purgate-size: 1519

On 13.05.2026 10:56, Roger Pau Monné wrote:
> On Tue, May 12, 2026 at 04:59:03PM +0200, Jan Beulich wrote:
>> ... outside of __get_cmos_time()'s locked region. There's no need to hold
>> the lock for these computations.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

> I had the same thought about moving the conversion out of the locked
> region when reviewing the previous patch.
> 
> As noted in the previous patch, we should move the conversion of the
> century field with the rest?

As said there, no, I don't think so.

>> ---
>> How come RTC_ALWAYS_BCD is compile-time constant 1? And then even with an
>> inverted comment? Looks like we've inherited this from Linux, and even in
>> Linus'es current tree it's still this same way. Yet all half-way recent
>> chipsets I'm aware of properly implement the DM bit in reg B. Might this
>> be another 32-bit leftover?
> 
> *shrugs* I don't know.  Seems like Linux is still doing it, so it's
> likely safer for us to continue doing it also?  We had no reports of
> it being problematic, albeit one could argue it would be best to
> prevent such reports by doing the right thing.

That's my point. If we did this as specified, we'd unbreak systems with the
DM bit set correctly, but we'd break (hypothetical) systems with it bogusly
set. Like with a few other fixes, perhaps we should correct it, but provide
a command line option to restore old behavior?

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 13 10:59:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 10:59:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307793.1579365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN7J3-0003NM-8O; Wed, 13 May 2026 10:59:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307793.1579365; Wed, 13 May 2026 10:59:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN7J3-0003NF-4y; Wed, 13 May 2026 10:59:13 +0000
Received: by outflank-mailman (input) for mailman id 1307793;
 Wed, 13 May 2026 10:59:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wN7J1-0003Mn-Fm
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 10:59:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN7Iu-00Bd2k-E0
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 12:59:05 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a045979-5cb7-0a2a0a5109dd-0a2a450b960c-0
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 12:59:05 +0200
Received: from [52.101.48.2]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a045977-212f-0a2a450b0019-34653002309a-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 12:59:05 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MN6PR03MB7599.namprd03.prod.outlook.com (2603:10b6:208:4fa::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Wed, 13 May
 2026 10:59:01 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 10:59:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TA8R9o02xeMfGYTjtPSmiqIpkYMDbh2CMqN1KSXCI+mHe9sDxsQWrJd04nfSMrS9JL+bQwxP0Lh5zpKm3GZSHHWm0SID3WRC/3xcJboTNB7VE4388ym6zm75T+ee8UTM7GH5We7VC2snWEhDL8NLeZ2kWu4L2hSmLuyH5GmjYq5KBGaalB9haQp4R9cEzTDUVXTyBErhkymLEOvMz5/uPPFp7w1KmnrJWpX1ftKFcMHUnQ2GpcpoS2JdezOe8gJfyoo1JVh5IFWpXB2k4+vGcFxE4G8pPeGcwMMlT8lK/wUgAdKjEfVTMTXm/jCC/vbS2B2HHmeXZdDWI5z13+Hpew==
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=C2697FogvK+GbgqC3vp/4msEAktZ6w8pUzrzsytVNV0=;
 b=YYB8OgPEq3I7sDujqGAwBN6NFwtok+myZZUK3j9MHOEY+TvVDaxxJY0oEaBRk0spuoPGG9WIZH58pmWXmJht5N6cOzWet7WWP4Gn38BxfH96zsrRubWVh8h4BTkaoW7nKFNcBybv7nOEDaK2gFepQDQgm1yCyY+deNqlS2j+QI1Y8QsRFuw4T5OGn7uQUJ2yg4EmI9Vj0c2vpV5FVoCAe2/n90j5qOCw4N6MrIyV8P24zxg8xPvBYitgT1qiYxch3esUQPLXBDIgzxJKFrpFqDNBmmRp/q99nIISSKbWmoyek32pD1rZG1BAtC2Wtd9gqeV+CJvLxtGZObrJWV7fZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=C2697FogvK+GbgqC3vp/4msEAktZ6w8pUzrzsytVNV0=;
 b=gVYFFCVF6gmlE6RX/aniIVAFBIEXJdRPT6hlr+DDaCyuDwtGJdFCWtdWegnnEAn+rfUv8ZntuPHDHFe1/LQWx+Hi15+YKS+kOMzKBeoOHwMNdymVR2Xw84MRskXoNpO8LiBLhXdsOXhopahAWNu6X+u5Op4TjBduLyNmunNO0tU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d6bbc387-4049-4c0b-8d30-34a287393cfa@citrix.com>
Date: Wed, 13 May 2026 11:58:57 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH 4/5] CI: Add a Debian 13 (Trixie) arm64 container
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
 <20260508212907.1643761-5-andrew.cooper3@citrix.com>
 <249ca124-b144-4c50-a0fb-3c0e6db5a1ca@amd.com>
 <d1037e15-cde7-40a1-9011-a02c23e870e8@citrix.com>
 <36527d70-da8c-454d-8de4-54c29c3bd565@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <36527d70-da8c-454d-8de4-54c29c3bd565@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P265CA0009.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:bb::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MN6PR03MB7599:EE_
X-MS-Office365-Filtering-Correlation-Id: 9c4f6fd7-b679-493e-0118-08deb0dea39c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|18002099003|56012099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	rcrs8xzJXlLRp76MqjyOOBw/ObppYfBIYO4NTB70S35vZhOyLZDOj9w175J/nWrfxVOz6BfJWT6mKaj/Y+SnMQ3JCajtcv+SNJY1rabhoB7lxl210M5m5uzu9nnRk4ePR47U0jkHskSq8LG/t68pnMpTNqgTg79VUZJDN7SCFR2pJfEK4bmejXsHLk/MauiH2xontDqnBEf064wk4uHu0WEzaRBsaYVSXC6we6h8uV15S2QUy7b0dwvJHCUu0X8hW6JFFrMnRo6H+XwDzBsA/GaocpBi7b/brivPzQ9WYY9jbv0QJGU+071w7+ir6+tbKQRQEtk5Te3vt0xdPdUtyfXuPUj4p0NtKZ5+ETSvR9uDyILjkMMzbPlJBjQfr5SHXJhDPzLZ8R2mrTAynN2P1p2tMvM5rgyN9dqfu0/ys1+1u22vLsa4/Dqsopg7C+hiT6WXbFCtGdXQ6c0mE+spS6Uccc/LwdIgA5xhCbBJfOdoBxZ4h9e09UeyA2Yno9CYGUi9kSMuqXn0FY5TRNCWF0uMGtWYOiFV1/ltHBY4eMGInIaspuY1wgIwi5iWf7bId6fHAr9D8kwafJo+kH3YtvBw5uPWf7cy8nIiAdcVSDctpBP9xWIQ6untjavfR2Lh1LDqVv2Z4OwHd9ya15fWIBDXaj8XfdC3K/0KVEhBVF3tvsdQtajlJbSTjGyqXCVG
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(18002099003)(56012099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SjRHT294RXJNak5HR1A4dE1jcHl5MEZ5UkR5c05tb2N2UDVMUjRTZXVZazJV?=
 =?utf-8?B?bGRhUjJKdDU3YkY1MkhnSFp1bTZBZG0vTjhlby9kcndxSHB6akc0UEo0SFVT?=
 =?utf-8?B?bVZMaCtPQlQxcFFFVTA5ZEJ2b1haODhzWnB5cnRJVDJhS1NkNzk1SUxhaE9U?=
 =?utf-8?B?blNSUnBOUCtsSVI3cnVUUFRLUG5KV1ZrR2NRcS8vczNnWklsMHZvUFgzcDNv?=
 =?utf-8?B?L2R0MW5lZHM3UFY3WEdWQ1U2elpnYXZpUVFiMExtUkUyWGNScXRjMXhYQXpH?=
 =?utf-8?B?V0tBeHlxRmJmemRVVW83cVMrSVBwaXdWamFOb0FQbStob0VHUGN1dWd5WExQ?=
 =?utf-8?B?dVJyTHd4SE1HTFppSnhiK0pWcTZQYUtsWktXcGhIQXdpWENvaEVYaFh6bXUz?=
 =?utf-8?B?bFBZekhESVRNVFAxS2R3NURBVzBTQzlpRDFuMERrbnVUSjdSWWpXOGN5d1Yv?=
 =?utf-8?B?RVQ1dGxnOXB2RE05WVM4UE1saEVET09RWTNxZmFMd3BVc3pkcmlyVUNFeWVk?=
 =?utf-8?B?cU5xbEkxSFZkSEFZS2NvOW1MMitOcEhzMmJIRXlwY0lFMFZ3aTFWNTQxcDR1?=
 =?utf-8?B?Zk02bndUaGNtWERhLzlwVzNhdDRZc2dRNlZvNERNYmVDcm9CMUZMR09kOC9P?=
 =?utf-8?B?eFIxUHFFb0FkV0NUV3A4ZjUzQzZMOVRYaGM2U2x3dlYvNWtXL2Fjbysxem8v?=
 =?utf-8?B?bzZTZzk1WVp4NDNUYVpVVTF6cVhFU2VOb0p2VUQ4dThyYkwxVUZUMXhPc202?=
 =?utf-8?B?blc3MTJzaUZWOG1uZFQvblk3dG02VWprTWRWRE1SWGtRbjZxRXpSNGZ0b0Zu?=
 =?utf-8?B?T2lhVHpkRnVnelRNU3ZsN1crdWlaK21aWGFEZEJ3dXBURkszNmFNbW9zbG1m?=
 =?utf-8?B?bkliSXJvSEd6NWd2SmdSQk9vQW1iTFFSQm1GSEdYNHE3eG5nU3lOK2QyRlhW?=
 =?utf-8?B?TVU0WkJTNWg1dTJuTDdtWlB2SXdNZlZHazlRUHVITk05cjZySGlzQjl3SDRI?=
 =?utf-8?B?bFV5Nkh3REgreG9jek5UMjNHMll4c04rYkFMWENjNmljczBYSnY1Q0JQZ3dL?=
 =?utf-8?B?QU1mUG01SlRjdDBsc1YvNnN4cTNSNzJwakt0OFlXQUJqeGgyamV0bFF5NHVD?=
 =?utf-8?B?UFE5a0pjcFBIa20wWlRPR24raDZwSHVoaFdNb0cyQmNjOGV3ak5aeVhUd05z?=
 =?utf-8?B?WStLeit6d1hFb3hIanY2ZWxFVFNxVEZrbG51dnUrbkxIVlVkWlk4ZTBlL3Uz?=
 =?utf-8?B?RzdNcXZoV01MZXd4RFlvbi80Nkc1VmNvN0RGazkwdm0vR3hQQmJubTZnTGZl?=
 =?utf-8?B?ejBHcVJCUE1Da1BNczVjV3U0T2dneFVuNXV0c1NlSk96Mlovdkx3aExsOWxK?=
 =?utf-8?B?KzU2T0F4S0d5dXgyQU8ycklxUnVqa1pyRkhLT01ueDRsNEkzNTkzalBPSTlr?=
 =?utf-8?B?cE9HQ2gxMEp6Z2JJS01sQ3JsVGFVQjh1Q2lKbzg4L29wMGNybDNYK28wOW14?=
 =?utf-8?B?VDg1YWlFQnNTMWJLZ0ZXdjdlMnVVKzl6alBOaUlqR2hWOXFEb2FXNGtaMFVj?=
 =?utf-8?B?R1A0VlZSV1JZaWhOVXYyMjJkd05tclBTTk9kdWN4OU9VUDNXdktzQzNWakJK?=
 =?utf-8?B?T2FjV3pEZmxtNk82akpleERqNVQvSjBHaUNXd1VJZGFkMUlXaWF4cTdwTU4z?=
 =?utf-8?B?eS82ckNZbVAwOHRUa3VNV1U0akJXTUxtRVJXUnFKUEpEaFMrQWpKY0ZrdmE5?=
 =?utf-8?B?VHloUENqeGRHbU1zdWpYaFd5Ykc2NDVOZitlVkFIazRxZmZRbE4zZUd2aVkv?=
 =?utf-8?B?Z291SEE0VmRrYVZsS2Zsck14Qm5ZekwxNmt3WGxGVHB2SzVYVDRBWU5TOGg5?=
 =?utf-8?B?ODcybHl5MlN0VytiZ1JWMkFoSG96L1QzeTNPVU5CQ1BNb3VtRG5lUG1mYVh2?=
 =?utf-8?B?d0xFQy9zRVFmRVVieVhYTjNubFJOQXFYcWJOK0ZGOHRKcUdpcG5MTE1xaWpv?=
 =?utf-8?B?czlZWjRjTW15SWxqbWkxZEhHT0RwRHZGaEpJeXN3NkpQdjlldVBqa1NxTm1v?=
 =?utf-8?B?L1lRc0ZxakMxMjY3Y2xTdUxtN2lWYlYycVlFenhLUTNFamQwVWxmQmNTWTF6?=
 =?utf-8?B?S1owRjcyN1o2MktXWERSRDhob1RyaVRrOHZMWjhtUjJIcjIzTmg5NWQ0ZzVT?=
 =?utf-8?B?NUp5YUNHa0lXWXJlR29UL2JDUEVuVkJENndHNlF1SDZhV29TYTMyRXdrQnFv?=
 =?utf-8?B?bHRNa1pQeTBUYXBId0xtYUhLYThEL2hwZWVnZXhXNjIxQ3NNbmE1MG1aUTZ3?=
 =?utf-8?B?d0g1TExSZG1wTUJzWFEySWtMT3RVUUk3RHM1TlNYY0NRWnU3eUNhK3NFWnNn?=
 =?utf-8?Q?Mki8geigBQJs/bcc=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c4f6fd7-b679-493e-0118-08deb0dea39c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 10:59:00.9080
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: V5jgT+FYcixwUIuhvUDvhG4R1v9+Ivtt7p6aSL9ecHE9LqLyJsb1XP0DVDgi/4KglTjiQpYr0LGJ2WefrY+HHPw9bWt5bJNpEGkTIpdacGU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR03MB7599
X-purgate-ID: tlsNG-42698a/1778669945-20C7DF3B-0556E012/10/63158204843
X-purgate-type: spam
X-purgate-size: 6341

On 13/05/2026 7:32 am, Orzel, Michal wrote:
>
> On 11-May-26 11:21, Andrew Cooper wrote:
>> On 11/05/2026 7:29 am, Orzel, Michal wrote:
>>> On 08-May-26 23:29, Andrew Cooper wrote:
>>>> Exactly as per the Bookworm container, but additionally with the ipxe-qemu and
>>>> qemu-system-aarch64 packages.  These will be used to remove the export jobs.
>>>>
>>>> Switch qemu-arm{32,64} jobs to use this container.
>>>>
>>>> No functional change.
>>>>
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> ---
>>>> CC: Anthony PERARD <anthony.perard@vates.tech>
>>>> CC: Stefano Stabellini <sstabellini@kernel.org>
>>>> CC: Michal Orzel <michal.orzel@amd.com>
>>>> CC: Doug Goldstein <cardoe@cardoe.com>
>>>>
>>>> We should probably wire up some build tests too, but it's too late on a Friday
>>>> for me to be thinking about that for this posting.
>>>> ---
>>>>  automation/build/debian/13-arm64v8.dockerfile | 71 +++++++++++++++++++
>>>>  automation/gitlab-ci/test.yaml                |  4 +-
>>>>  automation/scripts/containerize               |  1 +
>>>>  3 files changed, 74 insertions(+), 2 deletions(-)
>>>>  create mode 100644 automation/build/debian/13-arm64v8.dockerfile
>>>>
>>>> diff --git a/automation/build/debian/13-arm64v8.dockerfile b/automation/build/debian/13-arm64v8.dockerfile
>>>> new file mode 100644
>>>> index 000000000000..b9062ee8b443
>>>> --- /dev/null
>>>> +++ b/automation/build/debian/13-arm64v8.dockerfile
>>>> @@ -0,0 +1,71 @@
>>>> +# syntax=docker/dockerfile:1
>>>> +FROM --platform=linux/arm64/v8 debian:trixie-slim
>>>> +LABEL maintainer.name="The Xen Project"
>>>> +LABEL maintainer.email="xen-devel@lists.xenproject.org"
>>>> +
>>>> +ENV DEBIAN_FRONTEND=noninteractive
>>>> +
>>>> +RUN <<EOF
>>>> +#!/bin/bash
>>>> +    set -eu
>>>> +
>>>> +    useradd --create-home user
>>>> +
>>>> +    apt-get update
>>>> +
>>>> +    DEPS=(
>>>> +        # Xen
>>>> +        bison
>>>> +        build-essential
>>>> +        checkpolicy
>>>> +        flex
>>>> +
>>>> +        # Tools (general)
>>>> +        ca-certificates
>>>> +        cpio
>>>> +        git-core
>>>> +        pkg-config
>>>> +        wget
>>>> +        # libxenguest dombuilder
>>>> +        libbz2-dev
>>>> +        liblzma-dev
>>>> +        liblzo2-dev
>>>> +        libzstd-dev
>>>> +        zlib1g-dev
>>>> +        # libacpi
>>>> +        acpica-tools
>>>> +        # libxl
>>>> +        libfdt-dev
>>>> +        libjson-c-dev
>>>> +        uuid-dev
>>>> +        # xentop
>>>> +        libncurses5-dev
>>>> +        # Python bindings
>>>> +        python3-dev
>>>> +        python3-setuptools
>>>> +        # Golang bindings
>>>> +        golang-go
>>>> +        # Ocaml bindings/oxenstored
>>>> +        ocaml-nox
>>>> +        ocaml-findlib
>>> Since this is a container used only for tests, why listing packages required for
>>> Xen and tools build?
>> I did leave a note about that.
>>
>>>> +
>>>> +        # for test phase, qemu-* jobs
>>>> +        busybox-static
>>>> +        curl
>>>> +        device-tree-compiler
>>>> +        expect
>>>> +        file
>>>> +        ipxe-qemu
>>>> +        ovmf
>>>> +        qemu-system-aarch64
>>>> +        u-boot-qemu
>>>> +        u-boot-tools
>>> So after this change, even though you replace debian-12 with debian-13 for all
>>> the tests, the debian-12 still contains the unneeded packages (i.e. for a test
>>> phase that it no longer runs).
>> Yes.  I can't do this series bisectably without it.  Also, in the past
> Ok, I understand the bisectibility problem.

On further thought, I can in principle fix bisectibility by introducing
Trixie first, but that loses the logical sequence of events somewhat.

>> people have explicitly requested to be able to run the qemu smoke
>> testing from the build container, which is why it's like this and not split.
> Unless it's a rule that every container follows and is documented somewhere I
> don't like this argument.

It was explicitly requested by ARM, and accepted at a time.

If you'd like to revisit this decision, that's also fine too, but I
don't want to be flip-flopping on it.

I could:
1) Make a 13-arm64v8-test.dockerfile containing only the test phase stuff
2) Switch to this ahead of the 12 cleanup
3) Do the 12 cleanup without the test phase stuff

although this makes a new scheme that we haven't used before.

The one thing to say.  It's almost always safe to add packages to an
existing container, but ...

> My plan then is to do the clean up of Arm containers
> in the future to remove packages not used.

... you can't remove packages from an existing container.  The
containers are shared by all stable branches, and you'll generally break
older branches by doing this.

Where we have dropped dependences, e.g. ae26101f6bfc, I've commented the
dockerfile so it doesn't get copied forwards into a new container, and
can be dropped when the identified version falls out of stable support.

a0e29b316 is an example where the containers did get rebuilt after the
version of Xen ceased being tested.

>  It creates more confusion for people
> willing to create their own dockerfiles for testing (or just to see what it
> takes to build e.g. Xen on Arm) than it gives benefits.

That's why the dependencies are grouped and labelled.  I do expect
people to be able to figure out the bits they don't need based on the
comments.

>> Honestly, I was hoping to leave the Trixie update to the ARM
>> maintainers, but despite the Bookworm QEMU (7.2) being newer than the
>> 6.0 in the export jobs, it contains the SYSREG interception bugs which
>> prevents hiding ThumbEE from guests, and breaks all the arm32 testing
>> with a Linux dom0.
> Does it make sense to have both Debian 12 and Debian 13 build/test? Can't we
> have just the latest one?

Build, yes absolutely.  You want as wider range of compilers/toolchains
as possible.

Test, we tend to only do one.  For x86 it's the alpine build; for ARM,
it's from the Debian build.

> All of the remarks above are not something that should prevent this patch from
> going in, so:
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>

Thanks, but lets see about the latest proposal first.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 13 11:08:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 11:08:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307804.1579382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN7S8-0005Nq-CX; Wed, 13 May 2026 11:08:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307804.1579382; Wed, 13 May 2026 11:08:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN7S8-0005Nj-9b; Wed, 13 May 2026 11:08:36 +0000
Received: by outflank-mailman (input) for mailman id 1307804;
 Wed, 13 May 2026 11:08:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wN7S6-0005HN-NH
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 11:08:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN7S6-002TdR-3y
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:08:34 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a045b9b-bab6-0a2a0a5309dd-0a2a4502805c-38
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:08:33 +0200
Received: from [52.101.193.58]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a045bb0-af86-0a2a45020019-3465c13a49aa-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:08:33 +0200
Received: from SJ0PR03CA0083.namprd03.prod.outlook.com (2603:10b6:a03:331::28)
 by MW6PR12MB8915.namprd12.prod.outlook.com (2603:10b6:303:23e::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 11:08:28 +0000
Received: from MWH0EPF000C618E.namprd02.prod.outlook.com
 (2603:10b6:a03:331:cafe::ed) by SJ0PR03CA0083.outlook.office365.com
 (2603:10b6:a03:331::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.24 via Frontend Transport; Wed,
 13 May 2026 11:08:27 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MWH0EPF000C618E.mail.protection.outlook.com (10.167.249.100) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Wed, 13 May 2026 11:08:27 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 06:07:56 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 06:07:41 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 13 May 2026 06:07:38 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EOW24Ny5izJi+G6QtZBj1xLgiBX6Fm1OHFKxp5X2EnZw+bkxH62jLmVARCItv6mUC/5iEfdjc/6iv3Jbkb+fIQszjP1PD1TfXWFAfJnE4GtCykxT9oknrPPcLwymS2I//kfTfpj5nLLXYFnFP56Km4lb066tEQttd8AkRZvDK4YR682DavJt9sZhVTkWyQC4FitBI33Zuu7zsdCp6mW9yzc9vGkMph3qjFQ0LbkyGpdVqkcvBYncOu/gf8o3KJBP0Mz6fBlHcnPZssNtwIZEEGDg0/3Q8n8AmwX1NIgvYIhBzYDvcWL5rsjmi8TACZRR9Z17me3Ok604uOc0b0hn3A==
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=81Lcg54rbVRNgI+d80x3GYaeOkzYglYsyvUwhW+O5gc=;
 b=R88YKNpYFCPr0tVHEKwrN8q05zI3uUSs1OtvrU/V2v3v7kwziq1acdW4UBAgso1pHc4myTjdWCl33hTTkDczYn/TAEWibxXBD5gsy1Zpnf6cLrvunivgVAs0am324RaqLIw+ghk4ZzC1hQ6IsPYGe8mabbqbh7i0dxR+cRKXk3K8t+DalxB3sUvD9ee6R0fLAzQcIoIdIc9VQpyajAM/nEXpJKXBw4LZOFYouBCzt1DLPyUDAo+MouLZA0nW3plg8XkQl7OAPTmP4zvZNMjhRhhUpk6GJYVudIj/wqFIdIePDYESHaxhXgiLlyl7yhBE+NE6eIx5VVdvPbxG+rzFpg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=81Lcg54rbVRNgI+d80x3GYaeOkzYglYsyvUwhW+O5gc=;
 b=sCXrmN1zJcFKxwJ6HmG7nekUIADtrM6jRszdu7Tf401fYaAuiy5KqpTZDK4+1d6VZozn1xvYW9g1Mio+UGbAVlvNHGJ5htqCLFLNKaL5GAougAerhaSLSiqD1SPkZYfacWk8aGJbHgmOE+ksTLVMxykSs2ocCq+lWSsok4yDNi4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <117c626c-c8e5-4e4c-9d2a-280e56fc88d9@amd.com>
Date: Wed, 13 May 2026 13:07:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 01/11] xen: arm: fix len type for guest copy functions
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Romain Caritey <Romain.Caritey@microchip.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Luca Fancellu
	<luca.fancellu@arm.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
 <6f629fe2e194382534d3b1e2400b753c43ccb04b.1778140240.git.oleksii.kurochko@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <6f629fe2e194382534d3b1e2400b753c43ccb04b.1778140240.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000C618E:EE_|MW6PR12MB8915:EE_
X-MS-Office365-Filtering-Correlation-Id: 15750208-db1e-4cff-0330-08deb0dff589
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700016|7416014|56012099003|22082099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	kiAyx8ecvGMyDySaK5sVEPD042v4tS0WL9RcJlbVQl+crVvqQxYf2HKOUjiHDoQcnLFt11dwcmC4suNS1WcYRB9V5pTBAGq0vieQxfCfBINtj57+zEUgf5l4FfylGPUdkr0aeXBujP8wTP+FjdOWnbJORWQ87CkEVqqiaDhICIEfNFoZpwosW9rhOLMX1jzLIR9aik2HpI5npPr3mi32X3lQmtk0xbY5+bUQ2B9xSsPQylI8Tvy9QxDKk6Jd7pPKuRi1JrFlp7F8WTzlIhQ5Jo46immRO/wqQN31mIL7KJvrRNqhr/dwxmhTKkbCuSvGAGvZoOUhXgjBSPpVYRDmD0R3aRz/9eybFIZS2hjMkclt03XfnUhVvYNARwZzoNkndLNrHgI53hbLW6TY0t0fZxTGV2dPhvV6F5O9o56v7eu2OM8moCbITz9IuW8RmenbZN1Y0NTeUvGQXAB/w8KU3jFid2AVqeSa3A0J0ixW47m+LpiwfQtTyWbfHhonqtdFbCcTivDhdgJWhpkYmiCSZGvXCjoG3ShVpGJIYs6mr+exDXxPIE7FsQV35/yC8OWPG4ELRbbABMNA3pS3rfY8SzIxxisTF50N9KoQvqb160sYZSnZ4GVx7Ue+jw/f5Yn2zaAFTETfp698JOe/ltAV7jQLrUKhn6NiG91iMTdOxr3ynPAXQpI7ZkJbW8kn2oM4XiS9FlNRZddpWUHigDwBB0ec7NhTPjliFTFB6nGI/dI=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700016)(7416014)(56012099003)(22082099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	aUR/NhzCj1Tb3I+X2rv3ZqNxVcoq6sItyi9qaHP54cSYcDO4vLD/3gbDtuSf/V2U9YCMa2Er8sCxVo/NdbFZzQGnwGG6KCMVeTT28JZH7wX+WzAWig+z2hT/3FUzK3kTNCds1InoiWgE6Dev/ElLR3TRx62PpnzwMPhVtsm9uswUkrPKeqNRzMeBwVnbA+XZSCuz6M5xqkb00+rodHSNKwPepDq3yBX1are/7lCV2RBsA9uTKl076+ZBUt6oLdNuT7jZjczDT/9XRFB1qY4KanFNVrBFpMHPCO6bRvwJUG6e+xq5ptX6zHwhVK1fTmBDa81Y0qzqbhFTj20HhkiDbNQTVcPVvBtTSAq/uVZv3zQmh/a9unnpG9s9tsXc3U7+a0pcTPRhRGckd/sYLopc2+NZS5cr6GGR7Lfn4yC1d0XJS8s4uhhX3KttBXg9HuC8
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 11:08:27.5617
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 15750208-db1e-4cff-0330-08deb0dff589
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C618E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8915
X-purgate-ID: tlsNG-720697/1778670513-A877A161-37050CF0/10/73395122804
X-purgate-type: spam
X-purgate-size: 1357



On 07-May-26 10:58, Oleksii Kurochko wrote:
> Widen the len argument of copy_to_guest_phys_flush_dcache() and the
> copy_to_guest_phys_cb typedef from unsigned int to unsigned long, as
> the function can be used to copy large blobs such as the initrd which
> may exceed 4GB. Update the internal copy_guest() len argument to
> unsigned long accordingly.
> 
> Change the type for local variable size in copy_guest() to avoid
> compilation error because of type mismatch.
> 
> raw_* wrappers above copy_guest() keep returning unsigned long to
> avoid type narrowing; it is not an issue for raw_*'s len argument
> to remain 'unsigned int' since the assignment to copy_guest()'s wider
> unsigned long parameter is safe and there is no raw_* users who
> are using a value bigger than what can fit into 'unsigned int'.
> 
> Fixes: 2986481b3d9e6 ("xen/arm: guest_copy: Extend the prototype to pass the vCPU")
> Fixes: 5302bd490bea7 ("xen/arm: Introduce copy_to_guest_phys_flush_dcache")
> Fixes: d07b7369aa65b ("xen/common: dom0less: introduce common domain-build.c")
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Wed May 13 11:08:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 11:08:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307803.1579373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN7S6-0005AS-3X; Wed, 13 May 2026 11:08:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307803.1579373; Wed, 13 May 2026 11:08:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN7S6-0005AL-0r; Wed, 13 May 2026 11:08:34 +0000
Received: by outflank-mailman (input) for mailman id 1307803;
 Wed, 13 May 2026 11:08:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wN7S5-0005AF-D4
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 11:08:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN7S4-004R9d-MV
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:08:32 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a045ba3-2eae-0a2a0a5409dd-0a2a450aacd8-42
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:08:32 +0200
Received: from [40.107.209.14]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a045bae-56b3-0a2a450a0019-286bd10e4422-4
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:08:32 +0200
Received: from DM6PR08CA0058.namprd08.prod.outlook.com (2603:10b6:5:1e0::32)
 by SA1PR12MB999251.namprd12.prod.outlook.com (2603:10b6:806:4dd::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 11:08:26 +0000
Received: from SN1PEPF0002BA4B.namprd03.prod.outlook.com
 (2603:10b6:5:1e0:cafe::20) by DM6PR08CA0058.outlook.office365.com
 (2603:10b6:5:1e0::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.18 via Frontend Transport; Wed, 13
 May 2026 11:08:26 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF0002BA4B.mail.protection.outlook.com (10.167.242.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Wed, 13 May 2026 11:08:26 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 06:08:22 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 04:07:56 -0700
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 13 May 2026 06:07:53 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fZX5D/NrSECkZH59ya87/UNhl6xvV/QYL9UaLAbn1malzkL+BRDZQbAm4WRk+4HwybygygA+vfCwBNg1W7zubCsArIYagsJJycHgNzmA/5HA/7rBNqOCCrq52WH+D9mWt3bM1YYRmB2HqG7NVucCaYmBGa6TdAw5LW8cUka+UF5ru87exhxNOUbNjdYB10DADDbd6ualiE8JdfFabp8cb7W9MygLGHLW6jpamkWuocKKeiEkjqDO5KP/Sumawa+oWWm7v60UwUzRNtSC1LiC39JSvNYYpwB2fOO/5/ea4xAWA0KI5aFboIfV9c/n6ZkJ4HFOFoHt+8OVoGXXL/gnJQ==
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=YeASYNi/s9le+LhlUEurTSp9ik2KbZ34qZ9jed191Pw=;
 b=DUPuhKXxntpPKiKVS9Dor0QJ1NtezpakF5+O8esc1BLbnfZxrsf4UfJgP8qkFjkJRF0kmGkHD07ZgvalaOnROBEHYJVjEKJrTnkyi14hPLh6cAVUsqeVeOXFYfXTRLAuH3b/dWla6jRx5cWJnfP20jX5BQYdatkE+pthFkA7Wc+UE3mGhtzVHC7hWD3ZLvY+vHHrRyQn11IqLnvhmebCmVhXEUjEiih7GCSE0dSjD1R3868Riu1HLnVDLse0cY/gM1tfh34Tyz0MM6dCsYcC/v3keNx8aRrklnAB5qCPqKwX2tVG22nsE+hrG2RKpmywVnALVE2CCAnDmIO6z9byWw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YeASYNi/s9le+LhlUEurTSp9ik2KbZ34qZ9jed191Pw=;
 b=suwz7iW3KHRtde0mRKtUkt8s29pbjkJModjVrxm/mEbUcMyiHbsyCvP8OOCanhjIQLlQCz29aywbw/2WIze9mZp7HMqpMoNz9A0rZiG0OZRVbozrKmZsSRFOAk3RnRWtxYPzBjME+0MkiLwY6WRzr7CssFaeICz5riBGpmiz/Zo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <56900ab8-0f43-4b85-9866-66d7fdabd39d@amd.com>
Date: Wed, 13 May 2026 13:07:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 02/11] xen/dom0less: rename kernel_zimage_probe() to
 kernel_image_probe()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Romain Caritey <Romain.Caritey@microchip.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Luca Fancellu
	<luca.fancellu@arm.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
 <ceddcb0daabf3e58b1811e3499265dc6588ea4b4.1778140240.git.oleksii.kurochko@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <ceddcb0daabf3e58b1811e3499265dc6588ea4b4.1778140240.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4B:EE_|SA1PR12MB999251:EE_
X-MS-Office365-Filtering-Correlation-Id: 647944f2-af09-49f9-9941-08deb0dff4db
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700016|7416014|376014|11063799003|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	y/NCGv4b5FixGnE4bQMf9CKuds9PQm2LBfTIJLHbBmqAB4NGEdAgu21myeJCIyY9s0A1MOHCdatJqpc/k/BLes0+SCAjfM8/ZcR0KB8kCgdIVWYv5F+ZnHBuTqcixfa9qVxpyprs/6w9mVwFlqXR+9QuHJtHSC6dOZe5/X4SrqjKLrVHNf9wS5ZaGc2MN/5FUsHaLxOiAzHhyC91ZproaHEIJge52oQZVFwYVk8FztpGcmH7BsdSA6pAiQO4YJrp6wGUMM14ImPTIijGiO1BhNPSwL+piHJtnMwdWHPfiqesbJV/nAlQuw+ziLr4TjIKM8qFKDgShBiphLeXWPwnhQMAIIjmh8zwzuk6C4QnsKl6OYOBbfi6qkdC3G3tVpMQ4D2wEgnVW5Z1Z0AKlT+E1b+LYWVFfzj8DPPNRPWQVpoHbNO+uGtX6VuBYRywDjGFFfuf6O6P5X8VpoTwbx8fQsKDd0XiCabL4yAKr2YnWn/psY7yqSVYDQE4Ar8jO2nCEkfG43scEJmp7Aso/KJ5i0UsIYictD+hIJoMDhg7+8mKrkfjlsB2PYL0Priz6QqCbl6Ck6IstQOfP39W7OxQ8Rr62Rf52dtf7uB5FhLuulfwWpQCHMyo2k1MtX7LJCmvuAX0GPfsKxL6Wd3ghup/4B9t+eBu7L9I0nKrjFsaR1FYiFNLuac5F2UaYvj6WUygeJK0DtGZzqZBjONC4QO01GzJjcRlrdPwD2WSwFDi5CM=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700016)(7416014)(376014)(11063799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	SPB5r0oZV7053Dw68q6q1gsxb6T4RpSSmY/t9DX1p17j+uNlAMcrt06MJfmmBilZXPDXNcJAuhSL+80KWzx0kAoCbdGs4jwAfpgfZj6dBPlzohbYKY0h1G8HzGdqD99R4lPntdIPypKKVHv1f3Gv0efKE9jpM+aD7xJXZN4Rz12rDCizHqedqvMsx0YGtiOkenEUIxB/vWDKKwts4mfambAWd5NHKcHg1rN23KLPSIaYyL455rf8pS9NLa9CphjDB+jU7A4m5Ssxm4ZVCgom2chvxRc+F0zSZaKxcr7AdV2dRM9NWGrqvRJP21kbzYjRDcYt4fLn7d0C0x64PGQvlzPlJFr38r3IivyyeqLxWNUy4AjEH+FAuhWu2C67jUnA/zAio4yebQWdxbBIRPWRTV6XUXNuDy5J8aUTavgpfzMsDf9bbHjMtuIngNuYa4Hu
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 11:08:26.4814
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 647944f2-af09-49f9-9941-08deb0dff4db
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002BA4B.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB999251
X-purgate-ID: tlsNG-4011c0/1778670512-711628B7-8A966658/10/73395122804
X-purgate-type: spam
X-purgate-size: 999



On 07-May-26 10:58, Oleksii Kurochko wrote:
> The helper kernel_zimage_probe() is referenced from common code
> (xen/common/device-tree/kernel.c), but its name is tied to the zImage
> format which is specific to Arm (from architectures supported by Xen).
> 
> Other architectures supported by Xen, such as RISC-V, do not use the
> zImage format and instead rely on other kernel image types (e.g. Image
> or compressed Image variants: Image.gz, etc). Using "zimage" in the
> name is therefore misleading in architecture-independent code.
> 
> Rename kernel_zimage_probe() to kernel_image_probe() and update the
> associated structure field from "zimage" to "image" to reflect that the
> code handles generic kernel images rather than the zImage format
> specifically.
> 
> No functional change intended.
> 
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Wed May 13 11:08:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 11:08:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307806.1579392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN7SE-0005fQ-JN; Wed, 13 May 2026 11:08:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307806.1579392; Wed, 13 May 2026 11:08:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN7SE-0005fJ-Fm; Wed, 13 May 2026 11:08:42 +0000
Received: by outflank-mailman (input) for mailman id 1307806;
 Wed, 13 May 2026 11:08:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wN7SC-0005dT-QC
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 11:08:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN7SC-00D0ZR-6i
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:08:40 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a045bb2-e002-0a2a0a5209dd-0a2a450ab42c-12
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:08:39 +0200
Received: from [40.107.208.24]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a045bb6-56b3-0a2a450a0019-286bd018b843-4
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:08:39 +0200
Received: from BYAPR06CA0066.namprd06.prod.outlook.com (2603:10b6:a03:14b::43)
 by DM6PR12MB4185.namprd12.prod.outlook.com (2603:10b6:5:216::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 11:08:29 +0000
Received: from MWH0EPF000C6193.namprd02.prod.outlook.com
 (2603:10b6:a03:14b:cafe::2f) by BYAPR06CA0066.outlook.office365.com
 (2603:10b6:a03:14b::43) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.11 via Frontend Transport; Wed,
 13 May 2026 11:08:29 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MWH0EPF000C6193.mail.protection.outlook.com (10.167.249.107) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Wed, 13 May 2026 11:08:29 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 06:08:22 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 04:08:12 -0700
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 13 May 2026 06:08:09 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fkLONzpW2an0jbCwCd2VPsYBsH8RGxUt/MF5OsCtts7iU00MW7TjMMxtr8F/ZXXPahGQFEZVDcc9UPZ6VxSsTkHvoTuSlplhe6HMLyuwrxFnSBZrLL41iu4PS7qVvpphnJwi36AYMQAMRa6PH0VSNyILXmdaVxx+CjhqJrMzkxsIKRB0BN+Xvh/Qqy906HOnEQEsfketXcfQkUg8JnIUOb2dvPaocCtnVTP0mHSQcmF+vA//50Tmj1ih9OpHU3qfcAO8V3WJRKGCg8NCd4h9eG5sICDL3Gw+JMKPOI1F/6mv31WW4aq3kRbGIoaDG61y8HduuVB5YLqQRdA63YQvfg==
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=NfVx5iqwz5K8cvw+XXqSAEbzC3Qeo5a8zfHEwXV40P0=;
 b=KLP8/8Nva880muQWnLF+WCMlWkuPMx+YnEB8CWAA3U71NCyi864Pr8rVRZnWibhDfBEYx0SKmVgT+TAC/tmLCEocry2UMqbuntlnjw3BIE97InZh9imi8bsxfwmmN0aa6rym6eflHycqyk6CdScFaO+Sx0EjVsPz9Ghz5SZrXcNpe2xvsCdIl4p5LjycwTn9SepSsz3u8bbqunXokqvxClKndY0d27r9wcMB3LvxWg7miV9OtzL4yI7yzaFRHs8/dM+qc8g+69jfUWZv9EAfLFzSAxK4o1Nl/wCSqy7qeF/uIol2RBO8AZ1pinp86Bl3Uthn0Iezwd6F+tNJTFl9Kg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NfVx5iqwz5K8cvw+XXqSAEbzC3Qeo5a8zfHEwXV40P0=;
 b=HIZKbtGgNY+/hazZsLHnOU/XlLq/FiFqW9MQdL9tP+Ns6q55OIBDcvqYa9Ebt0OZ4/0w8Hl4cUfMu7mm6GzJGjU2TZpX7Ons57x1xy3jZQso30wCLQ/2gwchQAiJ5BpBHar4SvrHP0LwcpnCtco/1Lm00FNSWms+clw0gMvYCco=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <eaa3ef64-5d2c-4da9-ba24-c488176fa331@amd.com>
Date: Wed, 13 May 2026 13:08:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 03/11] xen: move declaration of fw_unreserved_regions()
 to common header
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Romain Caritey <Romain.Caritey@microchip.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Luca Fancellu
	<luca.fancellu@arm.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
 <6e79a0cf0a718e8e8c582cc5848ce5221cd56902.1778140240.git.oleksii.kurochko@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <6e79a0cf0a718e8e8c582cc5848ce5221cd56902.1778140240.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000C6193:EE_|DM6PR12MB4185:EE_
X-MS-Office365-Filtering-Correlation-Id: 7559d8e4-e364-454d-5b99-08deb0dff67b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|1800799024|7416014|82310400026|376014|11063799003|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	vVyvSvdoCGQFRCzAmW/NvIGA5yCYmgY7ER2pADIgv5XLc6LsEH3l8/PdkYzBp6T9p7PQ1vP6kC0iIy8iVVDkJzSsq0dx+JOLTPeLCqVeh4TmadVqYlK2lPq/PHFLwBRmdz9vy+d+q5FmeNNZUa9fEsoOcLs1WoV1gvHJ7WeUuJ0az5nq9WJp7sRiHGfsrm2WBTytsTmQinzZiLWcU7/Z3NR3Jesl4N3DlX5+2X8BBrX6y+2ttTeqEGaINvu+gKYH4w7RzAZeNakxzlZq2193AFDDzxZg5cQzJOR5QrmFe41btbX+9k05q+keuF1DNHtBkpP/IKX8wKYtrfUFK6Q/s9yFtG/MvvLqeQ7xNjSJWj0Z5OnVgOt6P7tOpAWuYw2miHzPnfY8TDFb3v4bHgQ/HMMBWZw+XPzGoJacL3I8w6uuw5UbaD4ShQ1AiJBuwgg9gzux6cSYagvxOYUn7I/vn/DaWP79IElUV29A4aPREDX9zY5s7Ejsz2PIaB9qXWpRRbvtGqX1kfSqHonmj5vjwQqhSE3qvF4bgnnkQl+PTrdCFsdnLd7fTIv/JwuRGPybYyJ6YpT7j4yp2cw4TQLEr/HyXzcPUbkOLnDVyLb5zH4JxAitdA26oqq/OqRjXmZF+dI2MBNBN5dt6FpTKmviZK8mZCbgRgR9YKO9MTSUFXeQ4cowgArgfDnUdHMMWB8x9NS2NYXiYX8sAp86zAXNU1SlS6ZjMwAPpiHFrG/rrEI=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(7416014)(82310400026)(376014)(11063799003)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	elwesyRKCeLAGkWBQ0/lVoYOaPNEsmCxI0PZRLkeqiR8IPAIZqXYMqU+UvKmExLWj8rIonLyLVmSTWACv7Cg/X6LQ8Be6moxfX1llGRw1WaJ46hxLxUCzRvC3Ufwlh2CNqgpP7xH4US92sh73UpU+uXvZ94Y5JCpUnkPxEtq5Xz+pbAbxQGngy9SbwFtt1J5Ckymtv/OJSUtO4JB/u1uYvbLDxQsmeTbiv+AheDOLbdNpr4rydQ5YTlAv35hYtNjblzHh2nn12ITMcSzNcl1r4c43spSvbVyT7qdTveiM1UF0xpEhLtuBZGnR4BEPvBSfW6aTpd+qPjhRFoHaYN/rCxSkLEkAoc08eh8aC17OzU3tK7NrLXYkxMApHsoWhDhPATXspfNGLaR9Vtro2C/bo8wWhp3js47+2rxbM09tuZcs3zJOYhOkYfXQ9KgWMAy
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 11:08:29.1377
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7559d8e4-e364-454d-5b99-08deb0dff67b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C6193.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4185
X-purgate-ID: tlsNG-4011c0/1778670519-6FF598B7-F2059D2D/10/73395122804
X-purgate-type: spam
X-purgate-size: 348



On 07-May-26 10:58, Oleksii Kurochko wrote:
> Since the implementation of fw_unreserved_regions() is in common code, move
> its declaration to xen/bootinfo.h.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Wed May 13 11:10:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 11:10:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307826.1579401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN7Tp-0007dY-UB; Wed, 13 May 2026 11:10:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307826.1579401; Wed, 13 May 2026 11:10:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN7Tp-0007dR-RA; Wed, 13 May 2026 11:10:21 +0000
Received: by outflank-mailman (input) for mailman id 1307826;
 Wed, 13 May 2026 11:10:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wN7To-0007cw-8k
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 11:10:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN7Tn-004Rn0-LC
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:10:19 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a045c18-2eae-0a2a0a5409dd-0a2a450aa000-10
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:10:19 +0200
Received: from [40.107.209.28]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a045c19-56b3-0a2a450a0019-286bd11c133a-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:10:18 +0200
Received: from IA1P220CA0007.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:461::17)
 by SA0PR12MB4350.namprd12.prod.outlook.com (2603:10b6:806:92::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 11:10:13 +0000
Received: from MN1PEPF0000ECD4.namprd02.prod.outlook.com
 (2603:10b6:208:461:cafe::40) by IA1P220CA0007.outlook.office365.com
 (2603:10b6:208:461::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.12 via Frontend Transport; Wed,
 13 May 2026 11:10:13 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MN1PEPF0000ECD4.mail.protection.outlook.com (10.167.242.132) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Wed, 13 May 2026 11:10:13 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 06:10:12 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 04:10:12 -0700
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 13 May 2026 06:10:08 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nunXxu2LKryhW2fkHoAYaCBjBlk1DozfD7kFUd8pfycfGqpA352vzkN51enuouSvM6Hw1aKA/2VIjlWvzQryrVQkjbMeIQxf46x8zL5eyX27Yo91x9Ptq/jxUXj1WkORLtTrWNKumdGR3hs9YkxLQDCU8sFos02/jRWrx349HjvY/DwzrlKGm3jsNW9bikqxnGLP7ZWTqfrQl2E4xRrgbl2rVgxbFOwVlBHRq9bUZn2if4I5tnO087D671P8GP2nRJRT4z2o0g0xSq7BNA0Iu1EvvyZQuIA3L55NzXmGw3DKxHIWoJ0U+aYv04OL+0an+ofhOLyohbnwzW67DA1PgQ==
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=vif5HSQCWb0njHbszUUuI4ehkx1leDPgfdyJ93Fb1iI=;
 b=h2VGmk2kj/Yz7hM6qg/pzVLjOenhzv/9dIUFw6Ac7dJ6yOYXyEH2ERo1RyUlXOBHrdQa5EDgv5scvOfjqk9tWWwg284XeuscdBATXfmHfAQvabl1eMrqQIVe8XsjAt/gizAXwqvH6VF4tsRp3lvUHTdlCtP2D/98n1911YDF8QmFFKP2K64EVG2x6ioUI8+9kZuGD4ucfgE08bQcSlVGWVspJlZAp0Jan4GSSzWBqBotpWd8dX0ZXdPLalxgWIA3DPm+IY1d8mJ2Q5XakmLpWMUX473pLMnpajLw8SsL3yU4zj8rfqggwXBIMooHBIOlHxnYSwwLKMOTIr2xheAdmg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vif5HSQCWb0njHbszUUuI4ehkx1leDPgfdyJ93Fb1iI=;
 b=Lu7+a/sxKtbN4yWfk1PnXtgO//GaqjwCxqPvJe5xu0V69tOqWEujGrXsMG0IXj4Q9QmkL3/w/Nyr/KBORTnKAFyVUYYNVGFiq91kIscgWZRAVC3/7wG5hQjKDCAkrlXDhRs4LTWJoLqP85TDmUB6MWbP6prskOEX1V0XOTTce+0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <bdeac837-9b6e-44a5-9633-031878bbea06@amd.com>
Date: Wed, 13 May 2026 13:10:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 04/11] xen: introduce domain-layout.h with common
 domain_use_host_layout()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Romain Caritey <Romain.Caritey@microchip.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Alistair Francis
	<alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>, "Luca
 Fancellu" <luca.fancellu@arm.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
 <a95e0968d4213a07984ac112c178ff72d03eaf96.1778140240.git.oleksii.kurochko@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <a95e0968d4213a07984ac112c178ff72d03eaf96.1778140240.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECD4:EE_|SA0PR12MB4350:EE_
X-MS-Office365-Filtering-Correlation-Id: f66c43cd-806d-4b3f-866d-08deb0e03470
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|1800799024|7416014|82310400026|376014|13003099007|11063799003|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	UsWdqCp3NHsEeBxYFcXBRyU06h/FwOsqxtFcyB5EsydfeP1gKh7au+YH0n2xnS++z3990sfOmQR93GYf+zGW53HkKNNWrTdw7tDp8rT4cr9VUUujMoug/4hArJ888eo1afJbL7VCfyghFBDOBMGVhDHmR3lT3pjvevo7PZ6brB/V5WN+okUa7OYhM/LTVb4I6iTGf2RXU1sdKN+9/qs7WkheDvwH00PgfGOoYbqHk+bTeZ7UTL0aDCXDMj4JUR5znDdSIc/VLod+evfNVR9kNkiCY1XUDr9a1YckMl453+D6lKoctWqwGCjlv+YpS0XWRYJmesH0Cfbubjhz8EIvzIdeNFs4VvMjvQQWndA8sGzoHgCZdiKcmoqdoNq0GfppE4I9jEZC6cGT9mfwkSfmLGA6eTXboK3YcDro+/hAzg3Um3EbmnU2jJwiTCvVLTtT/wUcR4Y9NFC5zmphYsEPt2a5EK+zosHI+KwaEY0VyqPYlxq8B0XohD8HZod4Ni8SJPZljO/68HH9rhSe5qDrpV+EvG0v3a+wBm5BkC+1nLEP0nvXVIGLzBVscML9DBvbjd3z/au3a8QHcyaYFQQ6LQ9ITMJNV64vd6IeCK4qLz1S5CpGQK3Y9hyEvxX+K07JnJaYREdpZTgnl7Vb/XARSmANlt0g2RMx73illwdx2AFOcM42UDMaoKCcMMc8NQdFWPkJphY007HhNnLUC1uy77rp6pKRM91I2L31Clblwlw=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(7416014)(82310400026)(376014)(13003099007)(11063799003)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	6Bvfd86EWJ4/ELp65WHPF7z7z6uqd6y0UDCvUtD1DPIaYtcPhvJCbelPsbzHkCp0KXSxtEKdjTBTh/Y0dmJ5dP9YQJFin33cr1aLSONkzeYC09uxRSyc1Ccr6TmmCVOgkcCC9HjXX+2wF0WxZGCtKTC4n60lIdwLH18dCM77dZmRr21+SfEpk4BDx8T4ExSTnlYAPd6h2+s6C7QV/TerfMgLMhO2izZlabWMc05txAWzwBP+mi0tEzw2OuBwNgWPENw9vT7GExUjg5ov50XorMERP6gx518zzc24jCKjQI3fn2QO/Q6rNQPN9ZzF37GHiOwhhB+e/aUzorvEu6TiihQi5sd8qen3n20aPNPjhbyXqaSn/JzX5Rho+0TopmaxW7oQArasyaPiUQH5E17Ee46PM3DXzdx1DBaObpU4lOgzyevAGbrzHWJ3Hc+wpw6x
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 11:10:13.1696
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f66c43cd-806d-4b3f-866d-08deb0e03470
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECD4.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4350
X-purgate-ID: tlsNG-4011c0/1778670619-71B6F8B7-55EAA6AB/10/73395122804
X-purgate-type: spam
X-purgate-size: 1876



On 07-May-26 10:58, Oleksii Kurochko wrote:
> domain_use_host_layout() is not architecture-specific and may be needed
> on x86 [1]. Replace the ARM-specific macro in asm/domain.h with a common
> static inline in a new dedicated header, xen/domain-layout.h.
> 
> xen/domain.h would be the natural home, but placing it there would
> require including xen/paging.h (for paging_mode_translate()) and
> xen/sched.h (for is_hardware_domain()), which would introduce circular
> dependencies. A separate header that callers opt into avoids this.
> 
> Adjust the implementation to take paging_mode_translate() into account
> so it works correctly for all architectures, including x86. Some extra
> details about implementation [2] and [3].
> 
> To avoid the following compilation issue:
> 
> In file included from ./include/xen/paging.h:4,
>                  from ./include/xen/domain-layout.h:6,
>                  from common/device-tree/domain-build.c:4:
> ./arch/riscv/include/asm/paging.h:17:48: error: 'struct page_info'
> declared inside parameter list will not be visible outside of this
> definition or declaration [-Werror]
>    17 | void paging_free_page(struct domain *d, struct page_info *pg);
> 
> add the forward declaration of struct page_info to RISC-V's asm/paging.h.
> 
> [1] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602161038120.359097@ubuntu-linux-20-04-desktop/
> [2] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602271742400.3148344@ubuntu-linux-20-04-desktop/
> [3] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602271750190.3148344@ubuntu-linux-20-04-desktop/
> 
> Suggested-by: Stefano Stabellini <sstabellini@kernel.org>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Wed May 13 11:15:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 11:15:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307843.1579410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN7YK-0008GJ-HR; Wed, 13 May 2026 11:15:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307843.1579410; Wed, 13 May 2026 11:15:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN7YK-0008GC-E5; Wed, 13 May 2026 11:15:00 +0000
Received: by outflank-mailman (input) for mailman id 1307843;
 Wed, 13 May 2026 11:14:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wN7YI-0008G6-Nu
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 11:14:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN7YH-004Sjl-Up
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:14:57 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a045d1d-5cb7-0a2a0a5109dd-0a2a4507d862-38
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:14:57 +0200
Received: from [40.107.201.44]
 (helo=CH4PR04CU002.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a045d2f-229c-0a2a45070019-286bc92cc0d1-4
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:14:57 +0200
Received: from BY3PR05CA0057.namprd05.prod.outlook.com (2603:10b6:a03:39b::32)
 by MW6PR12MB8759.namprd12.prod.outlook.com (2603:10b6:303:243::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 11:14:51 +0000
Received: from MWH0EPF000A6730.namprd04.prod.outlook.com
 (2603:10b6:a03:39b:cafe::64) by BY3PR05CA0057.outlook.office365.com
 (2603:10b6:a03:39b::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.16 via Frontend Transport; Wed, 13
 May 2026 11:14:51 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MWH0EPF000A6730.mail.protection.outlook.com (10.167.249.22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Wed, 13 May 2026 11:14:50 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 06:14:50 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 06:14:49 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 13 May 2026 06:14:47 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QO4gTSTjCUIQU6BrRFsak6fSQeCq79A3W2uomMWCgi+UB5A/Ja2K33Zx/2hZVkywPxEFpqHO5/YxNln6KowD8HNKKVZ2J8tc3XLWLQIn5gKelwR4X1Q5RhEYQiW1aLYYScJB2920JyiWqyqvcOHqmwFTidwO9GXYCMFI661eaZPgPlN7vG3acjrqb7sjwsI8ffF8U4suvKnN319j6ZsU20qXNQCwzUpK8zniUm1RoEvCmwOExTN7iLotGkBe/a8JoyCPDE3Qv0GUTAKzDEl3asMaQQaOJDYeuNJw/Hl0nC0iIG+CXb9q7Dl1oVUXQCrhjnQ5FkryLZFYQtrqbVdD9g==
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=r/OLRIHqLJektnMGyGVA0cjMD0CGXKpbqesJdkd3mcg=;
 b=OQItAywQfF0YvThZ3b9UcUPTQ6gKF3IjDsM/vZiDSAqoeAB8Y1+uygZPdhmhiLzxCrVPRVHigao4qZY2vf1+LlDC4hMWUo5qxZdt8GTnPP+JVkBTucRk1eq4XamAyUNWDmlrJRpSiizx2eMBO77lb6vQJbi8aHwsXEcR+TAdSS0rCd6pK2pw5QCroUuakOMw/8LhJZut8MpX0IsrlXUgFQ6x96MQ38bx455R29cGcvBNSjV7+Pmh2X9oESbZvziiWPdda4MvbANXqTUKZHwHOBcHDP7UcKu/M6sodl5lZuwuztkB40k8e1tvZt8sX7XqK29D81hIiC5x1lLqhPd+/g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=r/OLRIHqLJektnMGyGVA0cjMD0CGXKpbqesJdkd3mcg=;
 b=Ygpg6HYLL8S2Qti+A2Ht77BA4FivyGNgd0WSXuPFzNsADfri3T4eRofCKgby2WFNO6YSl5aX9qu+vvdGIpqP0C3TY2Z5nKnyolknNb3+heAvX/H5qA+pDF/Uut0V2VQUmvJghONMkE9Y/GtJDizmMJghPAMaNmUJjhyG5sIGq5E=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <46c3f430-77a6-4baf-9597-17873e0782c4@amd.com>
Date: Wed, 13 May 2026 13:14:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 05/11] xen/device-tree: use p2m_gpa_bits in common code
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Romain Caritey <Romain.Caritey@microchip.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>, Jan Beulich <jbeulich@suse.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
 <da9139f28ec72a7a2b9be949e67d57693af8b780.1778140240.git.oleksii.kurochko@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <da9139f28ec72a7a2b9be949e67d57693af8b780.1778140240.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000A6730:EE_|MW6PR12MB8759:EE_
X-MS-Office365-Filtering-Correlation-Id: 98b1f939-66bd-4999-8b90-08deb0e0d9fe
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700016|82310400026|18002099003|22082099003|11063799003|56012099003;
X-Microsoft-Antispam-Message-Info:
	aX9/frkfL+Yq2mFj4LA85nBDtid/uHbczwsCCXJvCI++No6T1vE7OSdRveElHPWJJvy3IiKpI+ez4MYuIZsOAP3GyQ2RGUa3IY1H3j0prse2nTL36RsaO98ZQ2JAjSCLdhzyOipMVMAQkpTfoKE0jmguwMOFtKHJZfN9w5P2WapfSmMqrnyVr5vXatgxahWaqLAUxtDbvZhlCIxnyBCevFaYXrG7+p/6Au6ZcCoGXnGbbG2pdCJcGahnBTyGUgn4R5wXyGb+Ci63RZkiCGr4Xjv+2CWO6terVgcjAqFXNpyBthvujNnB8f/kmr90oZQvHAPZfm8RO/rXLeFeYeGVneiBJrMoTfedoyEyxwP8/Po3gzhB3uMxtrXkkSXfEGLTY9goBjz914oGwCrY1mMcktYthcc4ny3YfVmvn6EiDVDtmK2+09Xq5FZ8M1/yzXBYf6o8iSFkXSLEOjsnRdkb0KObEvgIhzV4hPMnewhwlFq2NFG0s5GqcEVEnC1+VPY0Pl4BAJ8If0QW2O1s+KYmHIBr/mP6DYu2y6EISJdwEQE9azpeEu3umOCAXfEARFBFIR7LbDTZB433xwxNW07DIL5PmzLyGf1CAFIm1ZavWJM7ghuvzg5I3kju9DSTKimre/hcLgU12HgTVNV1I2J0lqEOjARdhmsSaizeonLQ4XAX+rBt33+QeffNVWx/6yRXmi6v0mlOtq9xKjVE8i5iw49PO06HzPWkoxdLS+LQKag=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700016)(82310400026)(18002099003)(22082099003)(11063799003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	sETQaRTG4/nT/w9NieA+6ZuCNhG9WBzEk/YfMQbD4czIUvvsDpxIwG0NiNYnOoaqmONnG6RSNWWgsUvzTTb6JCwGc4ReuxQ2+jPr0bLPWb0Q+nUHh8+cQqytirMsUc0/qA0KhIndB356YsvCUzXIgJtSxlb9dvK2I9CXegVuz7yku99uZ5nrZ4/HQQdwu3LyLaHUgH3aN7Co9hGfq15gxVrK6nFdPMHy1TOs+KPQpLbnjYNgQzmiqkKVBWmAoGd3y9vfsZi4JERHIi4rYZaDZV4VHfGOelYLxllqtRw5CiiaMhclDjuXGgsorJqI7izsokX7pTca1MYgXgzTyg3jBLJefklNREb2m1uJDJgPUvEVUcgK4GCu3ua1C5xjNWjIxj5gVlBJIRiDnBUzRfBSN4pVc8G7NJu8mNmvdVFRu0YGVeZituGfb9yutjMjjMKy
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 11:14:50.8324
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 98b1f939-66bd-4999-8b90-08deb0e0d9fe
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000A6730.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8759
X-purgate-ID: tlsNG-ef75cf/1778670897-21364C48-C00B3392/10/73395122804
X-purgate-type: spam
X-purgate-size: 1560



On 07-May-26 10:58, Oleksii Kurochko wrote:
> The IPA terminology is Arm-specific, so rename p2m_ipa_bits to
> p2m_gpa_bits to use architecture-neutral naming in
> xen/common/device-tree/ code.
> 
> No functional changes.
> 
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> Changes in v5:
>  - Rephraze commit subject.
>  - Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>.
> ---
> Changes in v4:
>  - Nothing changed only rebase.
> ---
> Changes in v3:
>  - Introduce #define p2m_gpa_bits p2m_ipa_bits for Arm instead of
>    renaming of p2m_ipa_bits to p2m_gpa_bits to keep Arm part of
>    changes clearer and keep using Arm-specific terminolgy inside
>    Arm code.
> ---
> Changes in v2:
>  - New patch.
> ---
> ---
>  xen/arch/arm/include/asm/p2m.h        | 2 ++
>  xen/common/device-tree/domain-build.c | 2 +-
>  2 files changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
> index 010ce8c9ebbd..7957dbd96e57 100644
> --- a/xen/arch/arm/include/asm/p2m.h
> +++ b/xen/arch/arm/include/asm/p2m.h
> @@ -14,6 +14,8 @@
>  /* Holds the bit size of IPAs in p2m tables.  */
>  extern unsigned int p2m_ipa_bits;
>  
> +#define p2m_gpa_bits p2m_ipa_bits
This deserves the comment e.g.:
/* Common-code alias; ARM keeps the IPA spelling internally */

With that:
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Wed May 13 11:16:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 11:16:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307849.1579419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN7Zk-0000K7-RC; Wed, 13 May 2026 11:16:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307849.1579419; Wed, 13 May 2026 11:16:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN7Zk-0000K0-OH; Wed, 13 May 2026 11:16:28 +0000
Received: by outflank-mailman (input) for mailman id 1307849;
 Wed, 13 May 2026 11:16:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wN7Zj-0000Js-Mn
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 11:16:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN7Zj-00Drtp-36
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:16:27 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a045d86-e002-0a2a0a5209dd-0a2a450c8e88-18
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:16:26 +0200
Received: from [40.93.201.54]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a045d88-62f1-0a2a450c0019-285dc9360562-4
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:16:26 +0200
Received: from BY5PR17CA0019.namprd17.prod.outlook.com (2603:10b6:a03:1b8::32)
 by PH7PR12MB7843.namprd12.prod.outlook.com (2603:10b6:510:27e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 11:16:17 +0000
Received: from SJ1PEPF00001CEB.namprd03.prod.outlook.com
 (2603:10b6:a03:1b8:cafe::a4) by BY5PR17CA0019.outlook.office365.com
 (2603:10b6:a03:1b8::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.12 via Frontend Transport; Wed,
 13 May 2026 11:16:17 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF00001CEB.mail.protection.outlook.com (10.167.242.27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Wed, 13 May 2026 11:16:17 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 06:16:16 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 13 May 2026 06:16:14 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GpMT63Tqzvb7hYg5Ke6V7IJ534Jhtedn9qysaA198c8nAYc+SoidacOfPwTGckPz1gBwV+dVMenhonbREF1mU+dy2yXeyZvtdkFy7V3Xp2c//mvgkDx9hVcAe9POqFTR1U3NcVE1gbr+iY3dyqeknpGCIcEURDsdWiVBpLZb6/+G7BIQWXpVdmoETzDXtHNzhxKwzmG8KRGO9QPcuGnMcAFHvEfyYwzIS8Pv7wdQ/TYnv5nDKA8ROa9KbBTPELX24jWxeYFYHhQqQTg3U5RnnzZe0eEhxtNFk31M+ryo1NtoFgg+qVFMAqaL3FWTNtuS10IYp7uPVxYHR3W+Lyum0A==
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=Z6ctmR95F2abZpp2TiEnYeOb23ZkcIQWevkFBVpF5FA=;
 b=AlOMN+GiiAMTTP61vQ9SLfzUtE4YmtC1h9eDRoWGtUD57eg/9vyYU5UEweqFufCrOOkoDJwaD2zM+zhqX9s77ZrudIJ5Wva8EGH+++5LhE0CQtqTND+qhGMW25gFZqHPgDQPf9ACeZokmiELB6E9PbPMFjSL+ZbBloDT3MULhebeUKQVxgzyOsF1BlhgRcaSL1wjxtoET7fpFdw/kw30UONxlnnkLQZltoJNlYD4zXjRiIKKUMkJnemAR3UeD93zpI3wDxKJf+dhIfy54mZ/Thw3uVKvRjmcQWasgiQFZphTWi451jOpFH39sNWpZWb9aLy0fHLA6YRjlWeiFrt9PQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Z6ctmR95F2abZpp2TiEnYeOb23ZkcIQWevkFBVpF5FA=;
 b=Eiwmo0V72vHuVAxWCgFozVrE2jcucFD59DC+HpSYDti/s/Epp9+nC7VuJ4VmYdNuC+Xpcxp8vI6dB3HCkU5A+Ye4mqVG0k1Ym2Okl/vhJ9CJ51anO2ZaClkUL+O+NgvXrMs98aPfxXpjjr1hfAzQAR5111GpbpT8Xj561SA7HKE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <7c75dce1-f0e9-44f6-bda5-9d18435b882d@amd.com>
Date: Wed, 13 May 2026 13:16:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 05/11] xen/device-tree: use p2m_gpa_bits in common code
From: "Orzel, Michal" <michal.orzel@amd.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Romain Caritey <Romain.Caritey@microchip.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>, Jan Beulich <jbeulich@suse.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
 <da9139f28ec72a7a2b9be949e67d57693af8b780.1778140240.git.oleksii.kurochko@gmail.com>
 <46c3f430-77a6-4baf-9597-17873e0782c4@amd.com>
Content-Language: en-US
In-Reply-To: <46c3f430-77a6-4baf-9597-17873e0782c4@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CEB:EE_|PH7PR12MB7843:EE_
X-MS-Office365-Filtering-Correlation-Id: 09ae9472-ccaf-4091-97dd-08deb0e10d76
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|11063799003|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	MmsrU0VVqw3RfCXHpPrMNJibloMlWpg/Aspm2CVGXmnQ275R7J56QWGNx3C8i4GA0miiy/bvuj5ZUEzLGOYpghDTroQVWS9HDCsps5DSZGjmQFCQf5puGrzKejIaBptadaTC722KzwTlzZ7sY2F+QxqG8M0k5ggY4EJMg7uiLLfcjKt0KT/nuWzmE/adSCR/DcV8IplqHtoW582Q/TwohnJ/guFa3DWJ7iQbyD11qyw012DOLoRiyGa0+Arq+zFX+iEgA6zbz92ERAXXNJ7fRAUaeVW7WbjdlhTGLHlf6aahgRtjzMrcOMLIm5qj6fGwbzFRFkMaFy2TibRaQGemNf7F0qQkhJPNJHl9BptjBxjSXmHlM8NENbeFoqgUIyOnHbcf+MvmdDuiMq/u+EZ1YyHBsZ2sTZxva6vBwq97NfRFDDvNrpRc6q4zCCyaDj6b2NetTWkxVXUmWUHUF79f1tYKUGEzuWfrgFakXzTkNbG27Elix7b64C8duicWroiZjCQdZ4AGSVkVV659YKHDQHP163dlwbRw0BaWkqL2nrYklLJ3C1QyV/yEc43QaLYF54s0Q855lBIM28sHAtnS3qhBKF1v+s1g23fL8N+4vgDcU59Kx4qV4t67BnGPSYaJZuc5xCzHJtIhlEEi4QNhuCJ28dS6agK2LHeMS1GRgTrrFYIVies3MuW8IfSKGhvsbAWQk9SLw0ihjQ9IfIEPRAU8srvx3NYtgDG2MUFr/2A=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(11063799003)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	g3ZlNxZBRHiQVOhgwJmywYVA4POVd55c1W5OuANRNzfA+QJ3/7Kle/2PZUEPgFnZmlMKZCVcULHeDSzt5GLBJgwy11RLHqpZ3D57JSerrML527MTqxEiNa68qs4l3Sybu4gfOVLcrMmd2iAWT0N95q2hy/tWg1NmCYrPgJg21gAELbR+zpDk+BqKq7qsgvYGIU4NNc0H8y/09PF3jZgqC9mXjHvNaImWKXZhHujepBoBy9t4JcKY/ps4xxDzbtZYGXKGdU/Uz8/v2hbNSWhN82ZF442OvwsZepRFttdPyMC3iLhHLsCExAQVxQ/jiGh2KQiVUUdi8eGQFmLiQ+bpBELzB7YOd2o6LOmuazKuoBrqoWv3To8mhJMUQDNflyKOoeRzdpGJQua4K/kpccBSnECQZPznx3lNIrtQS7xvyfpnxeEZo3eAcTSM3Ry5tdjJ
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 11:16:17.1845
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 09ae9472-ccaf-4091-97dd-08deb0e10d76
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CEB.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7843
X-purgate-ID: tlsNG-d25034/1778670986-E0766CF5-9DCFE38A/10/73395122804
X-purgate-type: spam
X-purgate-size: 1761



On 13-May-26 13:14, Orzel, Michal wrote:
> 
> 
> On 07-May-26 10:58, Oleksii Kurochko wrote:
>> The IPA terminology is Arm-specific, so rename p2m_ipa_bits to
>> p2m_gpa_bits to use architecture-neutral naming in
>> xen/common/device-tree/ code.
>>
>> No functional changes.
>>
>> Reported-by: Jan Beulich <jbeulich@suse.com>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
>> ---
>> Changes in v5:
>>  - Rephraze commit subject.
>>  - Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>.
>> ---
>> Changes in v4:
>>  - Nothing changed only rebase.
>> ---
>> Changes in v3:
>>  - Introduce #define p2m_gpa_bits p2m_ipa_bits for Arm instead of
>>    renaming of p2m_ipa_bits to p2m_gpa_bits to keep Arm part of
>>    changes clearer and keep using Arm-specific terminolgy inside
>>    Arm code.
>> ---
>> Changes in v2:
>>  - New patch.
>> ---
>> ---
>>  xen/arch/arm/include/asm/p2m.h        | 2 ++
>>  xen/common/device-tree/domain-build.c | 2 +-
>>  2 files changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
>> index 010ce8c9ebbd..7957dbd96e57 100644
>> --- a/xen/arch/arm/include/asm/p2m.h
>> +++ b/xen/arch/arm/include/asm/p2m.h
>> @@ -14,6 +14,8 @@
>>  /* Holds the bit size of IPAs in p2m tables.  */
>>  extern unsigned int p2m_ipa_bits;
>>  
>> +#define p2m_gpa_bits p2m_ipa_bits
> This deserves the comment e.g.:
> /* Common-code alias; ARM keeps the IPA spelling internally */
> 
> With that:
> Acked-by: Michal Orzel <michal.orzel@amd.com>
Forgot to mention that I'm ok to do this change on commit (patches 1-5 are ready
from this series).

~Michal



From xen-devel-bounces@lists.xenproject.org Wed May 13 11:43:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 11:43:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307866.1579429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN800-0004sJ-TN; Wed, 13 May 2026 11:43:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307866.1579429; Wed, 13 May 2026 11:43:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN800-0004sC-OM; Wed, 13 May 2026 11:43:36 +0000
Received: by outflank-mailman (input) for mailman id 1307866;
 Wed, 13 May 2026 11:43:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wN7zz-0004s6-AZ
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 11:43:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN7zy-004ZAc-Na
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:43:34 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0463de-5cb7-0a2a0a5109dd-0a2a450284bc-26
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:43:34 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0463e6-af86-0a2a45020019-d155802dbccc-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:43:34 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-4896c22fcbaso58436885e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 04:43:34 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-454913049ecsm38841796f8f.19.2026.05.13.04.43.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 04:43:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778672614; x=1779277414; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=JaI4iGc9p81xoyHCgeQ7T8nyLB0WjdM6V+d3y3f8ChA=;
        b=ZIWAlqkIooCq5zBKl/pVJHvUwrtOE/zWmM/SAoYDkwkf/Hir1Vqvh51b1cBOCIVMvU
         g0z0pCEer84ES3l5O+WT0tu870EL6J0c9WKxCHKTyqtB/IjLo8fFoaY1VnTFdtijERGx
         yza0EngSs86oZBSTBcwRyTEfOBJ+gXcNiVFORgFu9FJ3ze1wnXuJZVJ5SKInUt/K47dp
         LH5bD47FfRRcbES7biquhjRyPVYc1/V87mleExXlukWPBNT0teZPGEhHNBVi+7yZduaw
         YKlbnoVzGIIAS8rLjNM7Yb6B2IdkbL72ldY02Rfhz6XgzZNCjBm6eLQGpHKT44JeTp7Q
         g21Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778672614; x=1779277414;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=JaI4iGc9p81xoyHCgeQ7T8nyLB0WjdM6V+d3y3f8ChA=;
        b=Nj1/DSiEOV5caeShLX1l/QnaXjsLL8d2uBFzSlkYM5oidMaPz+W/oaRZl97E67OEc6
         8yO1lpVZqkqTCgP+JmDYj+bvHITzsZcvWaz6NicqZOZ+5RWvEF7KM42esp3wEepn+csj
         ZGA66JMuHB7jCGkCQM9pCUXtVbZP0lrXn6m1EIqLa0wf02pO/w7rc58uP0qPLqMEt/Nr
         5+p6QOenFoQXpq09V/2uXeZGfxmzURKgge8GZtd1DZaLw6jgrxgAkH32959uuU4dSaHc
         p57FBLPwAiTk/kf1QmfNaHQ+xj20MC0mosTfMZDpLeq6k8irztrW5IBs68LVmk/mnX+4
         Hqeg==
X-Gm-Message-State: AOJu0YyDvE90kQWJlNmZy18kALamRor1YWFgb5mhJiw3k9Rg5IfyZtsM
	DiEu+AItLSbLSP320Dr4+BeEZGhaOBTNUQ4o98unKP/h34OeSOfOCam0rs6f4Zw39+5nzEVCwDR
	GPwg=
X-Gm-Gg: Acq92OFpxqR3E2xSNDaS6yBG0M9NhNqcif2BFAV8GRrLerWxiJLEHWrP1uhDbXNkz+0
	qLTsrJZPuel0iZ7mr0aQNR1r84z3EOP2oqkxBG5KKes0qSvoepXlNAHmnaTZtosPzLkr2LjpTyj
	EYI+J7prdjgMU3EScC8HslCBKv9oaix215EbP8eYDyikdo83zyxg20kK0CA+CuGUWR0cRTKGzD4
	RLJ/U7NTWWVQJDYSOmVbDJ0KFV8wRlDQKxr3EQ9aoTQaSiyRFJDASvQHyb5nrGGI97UKAbkAh3+
	rWAGtxVLE5+7p0RySlYrVadNUPR/5jSKuRX1C7+dIvMme86zF6gQcIwyHUt5xwXkCnAF3E7Fmpd
	eXkI4l67UwEUjzPViWfytyZIEuMft7zh4G0HjyPJR44ZnLBPrAf4Rtq0tEzkEmn+TbWAbvViT0I
	WCi4gUPfHy0VL1y64EfO5rhKYXZUtP3l7BtErOZcXIU5qklsR/aVIJeBEgl0fLBtMeZF/5kJzpb
	F7zHQa/HBc+V90=
X-Received: by 2002:a05:600d:8496:20b0:48f:a75e:c21 with SMTP id 5b1f17b1804b1-48fc9a0291emr26222995e9.6.1778672613983;
        Wed, 13 May 2026 04:43:33 -0700 (PDT)
Message-ID: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
Date: Wed, 13 May 2026 13:43:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/5] x86: Misra rule 5.3
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1778672614-83961161-110248AA/0/0
X-purgate-type: clean
X-purgate-size: 389

1: guest: rename a local variable
2: PV: rename a local variable in pv_emulate_gate_op()
3: shadow: conditionalize / rename local variables
4: shadow: split a nested max() invocation
5: shadow: rename a parameter of shadow_l<N>_index()

For reference (also covering the one rule 5.6 I'm going to send):
https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14348506098

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 13 11:44:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 11:44:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307873.1579437 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN80t-0005K1-3N; Wed, 13 May 2026 11:44:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307873.1579437; Wed, 13 May 2026 11:44:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN80t-0005Ju-0U; Wed, 13 May 2026 11:44:31 +0000
Received: by outflank-mailman (input) for mailman id 1307873;
 Wed, 13 May 2026 11:44:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wN80r-0005Jl-Ut
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 11:44:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN80r-00A1it-7v
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:44:29 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a046419-bab6-0a2a0a5309dd-0a2a450adfe8-14
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:44:29 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a04641c-56b3-0a2a450a0019-d155802dd47c-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:44:29 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-48e6db3ff7eso26500785e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 04:44:29 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e8f43de84sm40207105e9.26.2026.05.13.04.44.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 04:44:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778672668; x=1779277468; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GQE8DFe4DRPLmoSnOwxaRoHlZT5zD9oiU41YpusLj+w=;
        b=U0lHgAKtbkIlrK7ISAWjxe49o5Xpp/07bM2hyHm/dfd9KV3XyvRhBkqwjrOwQzliR+
         57wtf6SkaFnpXmxnXDjDTBRLxXBSYb8drbXuvoKUfR7iV/0EoQLwSFGOaKcDxqtnCukx
         cHOI1/nYaFt/iujcC1kPp3jMlM3lCVfssIQW5OMRoZni9L30Bhx7WDvQ8jpYqhKlm5sl
         EbsWql5WJOBEWwhAFpy1tA7UZIF6tkQzk+fq94SGdUM7572jHiY1T3lcr2wy/1kpMQ0q
         av8rv1Bm8XfHqRmKJVh1Oj/zSxbLH5caYKwNlQsaAmoY16jmeQULkxRxnhuwtUxu5D/d
         vfOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778672668; x=1779277468;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GQE8DFe4DRPLmoSnOwxaRoHlZT5zD9oiU41YpusLj+w=;
        b=P8gIt9YThTS28cfwcg1itS8PvRQYWd+HgiHyjtq69D1yFrDbeGwgJvP8vCy25nof8m
         d1oLXmCFzNlygZEYzMCiujvna3dW+EsCAbImb21HqAgNyb8tYvw3r+y6PYxpx+OL2MR9
         fSZpWUXuaPvl9EREZyxhiMTc/a5Ycy/XPdotaG8xoQCn+rlV5fASEp4UjPIhPa1COES3
         hH3CbeJ8ZjBfLNAApcO2bpmqPkHSTrx2ALuFWpvTYjlQkRF2+acmGBDIyatXVxkkZJ+b
         VqLLFkJy0VR9ifB76GHlzanSKU7VpGIlcwM50CLrCBHYuY5b8t02ogI0adsjtVg8ALeY
         RKpw==
X-Gm-Message-State: AOJu0YwZSYRc9QZbnmwQUOawZyEwL3bdkP1ClGCA3pql0Awj3N2sBVqj
	fh0TMabK+3WG2rbQc594H+ansKRsSqLQ3argSltk3/iu5ad9hEVYGvsYl3IquMGTH8LgxwTtm2x
	9xfk=
X-Gm-Gg: Acq92OEDzzXZmAuuO0leqm2y+/hSFkop4saL6KwqPFL42KjEXMYUo3ohTW88Kfjkn0Y
	M1Y+E6gqMsmZlV6u6rop9fmUnJrxdcuIPIbXGWbdxw/Oe+ha6eQ8Z7GklgEJK1WdxanoiQOF9pq
	kewd3rqi1BQvh6pB/wprbTjqtY9wSWQNFABwtZCgkZRW64Ve0Bu/2VtwTR2ALAaQibizSwb3sIB
	AtcsY2xfZc5QRxgj6B1SktWhYx6oB5EJnEONT0wdXzF9bHFyfNi09c6XwkpDCv0G5Kz27a40Y4l
	DxwmvSNOwxvb4FOton5r7/s7I71/6V3LTLYKTLwj7P3nopTatLfgKKzkxWIGTIoik2npTUjVphY
	pnhOYeRKaVoozS6okZZL04VAXu7cqxajC4psOlItgKQdm/TgRjI0ySbViYuU8cDfBCTTusuWePZ
	AW8eQKKeG50kQolNLz4wp0Ht1GOxyD/xSGFpHRyR/2gz+084zjlnaKJNYn71KyNqDEgy8zR/Tnp
	IAL6Jir3d50psY=
X-Received: by 2002:a05:600c:a318:b0:488:a977:8d6 with SMTP id 5b1f17b1804b1-48fc9a371e4mr30342855e9.19.1778672668631;
        Wed, 13 May 2026 04:44:28 -0700 (PDT)
Message-ID: <ea005773-792a-4db8-a8d9-a88049006870@suse.com>
Date: Wed, 13 May 2026 13:44:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/5] x86/guest: rename a local variable
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1778672669-7176D8B7-06DFC93F/0/0
X-purgate-type: clean
X-purgate-size: 810

... shadowing a file scope one, thuis violating Misra C:2012 rule 5.3
("An identifier declared in an inner scope shall not hide an identifier
declared in an outer scope"). No difference in generated code.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/guest/xen/xen.c
+++ b/xen/arch/x86/guest/xen/xen.c
@@ -203,11 +203,11 @@ static void __init init_memmap(void)
 
 static void cf_check xen_evtchn_upcall(void)
 {
-    struct vcpu_info *vcpu_info = this_cpu(vcpu_info);
+    struct vcpu_info *vi = this_cpu(vcpu_info);
     unsigned long pending;
 
-    vcpu_info->evtchn_upcall_pending = 0;
-    pending = xchg(&vcpu_info->evtchn_pending_sel, 0);
+    vi->evtchn_upcall_pending = 0;
+    pending = xchg(&vi->evtchn_pending_sel, 0);
 
     while ( pending )
     {



From xen-devel-bounces@lists.xenproject.org Wed May 13 11:44:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 11:44:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307878.1579446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN81E-0005kG-D1; Wed, 13 May 2026 11:44:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307878.1579446; Wed, 13 May 2026 11:44:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN81E-0005k9-9w; Wed, 13 May 2026 11:44:52 +0000
Received: by outflank-mailman (input) for mailman id 1307878;
 Wed, 13 May 2026 11:44:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wN81C-0005iQ-K5
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 11:44:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN81C-000Ge9-13
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:44:50 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a046424-e002-0a2a0a5209dd-0a2a450bb526-44
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:44:49 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a046431-212f-0a2a450b0019-d1558030bcf6-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:44:49 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-4896c22fcbaso58449745e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 04:44:49 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fce37b182sm71879535e9.9.2026.05.13.04.44.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 04:44:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778672689; x=1779277489; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gwBkQd9qd5e7EV+25xbt2DulcaBMv8dm8NGWegkW3Ow=;
        b=cpy8b6PyX5A4NtjSZA4H+LeHllppSFQ1veL+gUQdyDmuI0tczLSqg/d6RYe1jf8bO+
         OACmFsPhheh+6EylhB9hHB2tJkc7f6+ASYeNm3E6Fg6aQg7QNFuA7lKIet5Y3ABOrLQR
         1/ZzM/2oqZ4BseD0uVUHpqdAfnqPofINioGUa+zY3wETyBDDb+8Dx6MtzHHxmCtuysry
         nQBOFfPeUo1PoX+afXqRcLtXTPPBtL7fasdd6c5YRbfRdKowBabdmdZGngceaktSicHG
         87LIoZ0KLRY7lfxocW8Y1SYHi76/rJMS0UEpijKCaAtyC3hnTgEVfcMqhnxyE1sVt7Cv
         njWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778672689; x=1779277489;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gwBkQd9qd5e7EV+25xbt2DulcaBMv8dm8NGWegkW3Ow=;
        b=TG/F/uHLR5oyAVm5REIIn6Yrs1tan3N9nRQCeS3khXV4Rcir3Pm6GVwyxmfEN57Z/5
         0LKVAVHPfFggeU9PT1ebNLX70QxhnJjkMSuPijK+WXVKCgRGO8JY3p3HbKw5PoK9fbRk
         aDAC6zMJOlu2TygGZaGuKj3i3a5u8UtheRbeowwhGtf4VMaNKOtFMJKNdJWsifsUFP0z
         924L68OiZXfxdyq91RaTnU9LMmdRY/5SjMnOzK26yppUHg3jq7zkvfkpslGdOH4ty4wU
         HnsarB+BDQ2OZeDrgnPfXF5BNwJETM/sZ8UDWlig8f+uJOskp2Hyxj99ZxSRIKeZOjmd
         A+Jw==
X-Gm-Message-State: AOJu0YwlGyc7XOI9YOQCuay0LcK+LAzzhr5Soec5haj31SDWWGEeyEU2
	9mwJM2tFRM5du9fdOw+AoscrKxnPbzmD4bfkaDW3llYS/OO3eWA/VLHchR2uKcrTYBCw+8zK+Ee
	GO1c=
X-Gm-Gg: Acq92OE+q946S6YQwkyUOebMIGlhMkz/We4omIedkaKw3QIMYRUZq0FYlapke11lvnv
	L6gj9m8aYYl3bUgF2+a7bO1Am20DZA0pNt3qANSJ7dqLXIDUYTBH/fQxaCopaavRjPlgLpmQte1
	iAq/8PjmqFtYhNBTldbyKUjrAzj880YEweXNTG495or2Lso0z0jSJUQqIY1PMXpzBkn5SuZ0fZJ
	lROHSj3OWnVPFrdWME9eByEUXMaZFwpuBCCSeu97VhRoJlmpVS0NwKmSzkUvzzcu9eLn5thWiOI
	mQkQ0fLzS8oTXz13662VVFckyQn4tpXS/pjnMRWRYslxoS9O1EGmyOvWFi7yndsSb0TfuV8LMVj
	xv6KBQHYYYIH3faCNsvhKfVa3I8l1hxwgZWy/1JYXXmJcHWcfmhE7Yji8KglmtLJcPABsiJ2bPa
	4BaTkueOEKT7vbxf5MaP1TQfayFmC+V495xH1ULJR/FrtWKMhCx+arlREd2d3f6DVVVbaAqXnC1
	yj3BQyZW4kmhkRzu7rdjfEO4A==
X-Received: by 2002:a05:600c:3513:b0:48e:635a:18d9 with SMTP id 5b1f17b1804b1-48fc9a34ae6mr42181585e9.15.1778672688744;
        Wed, 13 May 2026 04:44:48 -0700 (PDT)
Message-ID: <871c0ca7-898f-4bc6-8115-d94d40b88301@suse.com>
Date: Wed, 13 May 2026 13:44:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/5] x86/PV: rename a local variable in pv_emulate_gate_op()
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1778672689-12971F3B-A993FEAD/0/0
X-purgate-type: clean
X-purgate-size: 1840

... shadowing a function scope one, thus violating Misra C:2012 rule 5.3
("An identifier declared in an inner scope shall not hide an identifier
declared in an outer scope"). No difference in generated code.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Technically, as the outer scope "rc" isn't used again later, we could
simply drop the inner decl. That seemed more error prone to me, though.

--- a/xen/arch/x86/pv/emul-gate-op.c
+++ b/xen/arch/x86/pv/emul-gate-op.c
@@ -286,16 +286,16 @@ void pv_emulate_gate_op(struct cpu_user_
     if ( !jump )
     {
         unsigned int ss, esp, *stkp;
-        int rc;
+        int left;
 #define push(item) do \
         { \
             --stkp; \
             esp -= 4; \
-            rc = __put_guest(item, stkp); \
-            if ( rc ) \
+            left = __put_guest(item, stkp); \
+            if ( left ) \
             { \
                 pv_inject_page_fault(PFEC_write_access, \
-                                     (unsigned long)(stkp + 1) - rc); \
+                                     (unsigned long)(stkp + 1) - left); \
                 return; \
             } \
         } while ( 0 )
@@ -359,10 +359,11 @@ void pv_emulate_gate_op(struct cpu_user_
                     unsigned int parm;
 
                     --ustkp;
-                    rc = __get_guest(parm, ustkp);
-                    if ( rc )
+                    left = __get_guest(parm, ustkp);
+                    if ( left )
                     {
-                        pv_inject_page_fault(0, (unsigned long)(ustkp + 1) - rc);
+                        pv_inject_page_fault(0,
+                                             (unsigned long)(ustkp + 1) - left);
                         return;
                     }
                     push(parm);



From xen-devel-bounces@lists.xenproject.org Wed May 13 11:45:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 11:45:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307887.1579455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN81c-0006Ex-K5; Wed, 13 May 2026 11:45:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307887.1579455; Wed, 13 May 2026 11:45:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN81c-0006Eq-Ha; Wed, 13 May 2026 11:45:16 +0000
Received: by outflank-mailman (input) for mailman id 1307887;
 Wed, 13 May 2026 11:45:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wN81a-0006EV-Hz
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 11:45:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN81Z-002bZs-Um
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:45:13 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a046448-2eae-0a2a0a5409dd-0a2a4504e9a4-10
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:45:13 +0200
Received: from [209.85.221.53] (helo=mail-wr1-f53.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a046449-1dec-0a2a45040019-d155dd35e1e6-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:45:13 +0200
Received: by mail-wr1-f53.google.com with SMTP id
 ffacd0b85a97d-4585a116a4aso2624280f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 04:45:13 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4549120eab7sm39590855f8f.23.2026.05.13.04.45.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 04:45:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778672713; x=1779277513; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8KDAfpZOnzo89l1OvnPb3ALjiYAkA9DUYfDlOPj7cuI=;
        b=N+R6y1M2ABZQ/E5qhaMyzBGgaV/Pm++wPS+lz0Lbln8AFteD0A05a6iqlW+67OX26H
         gAMp2Pq5e+FkHYMl/1zeQd2dGy281jpGXuC38tUnPsaHjaImPW7uia5avzZQZOwVdWnS
         G8SGVrvZrTnNgzUFa+ReTBpVW0XwhWxLlPpt7yJAlV4Q6XQkEUkSZaKy8JFQLyE9w8FB
         qx0Y9yjFiZ5SuSLff+NoZ0rSK04cers1vQBBxkXvWfn+8jpSmK3EsUlpK+gL8a8p1ZJU
         +GjlWtw16eVMNCvh94oN0e727/G8SXzRv0xtl7KuXk2TUz2kAm3zhoBv2c2lGaR+U5TP
         3PQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778672713; x=1779277513;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8KDAfpZOnzo89l1OvnPb3ALjiYAkA9DUYfDlOPj7cuI=;
        b=JUVj5Qak2iRJQ0YuqZ9T8qhQx1NutKQll6YiEVLeuDRwnOYySZjFbVZuN0UEcF+rwp
         mEsx2nAHSyfWaKDkXzasgHAQh6p9h67gFc2McJ6m3PHsk/KlQtxWR7sdSVVocxupBGs2
         L7a2AChdNnYfOL4tojg460ffVdSYwUJCZEV/xlmb7/WvJNcgCHoqEkfnu7wV4TLQB3O2
         DVQEdnoTmdHQQBL7cxqtZQ+Bux0zQv4EtZR6DhAJtGo1gIFa3R8JJOKNIxuVpT0BjdJ3
         t65UZq7/fK9s8uyxstJZn9RngfT1CzA41JP3tVz9ytQvKuWeJdh5y6wUYodnJSksvTB2
         g07w==
X-Gm-Message-State: AOJu0YzhUaWZTzL9+hyk3QVmsE2ubSXUi40GkD0epXbFJsYEbfNAvPCd
	MPQpbA1m+VxZht+xleZLPD/yAYvNDA/h8qX1zyHakZQT/8Q/vwZdsgKBfQRJIgosnebE1KHLVP/
	jwXM=
X-Gm-Gg: Acq92OHs6X+5a5f3WPLzKMokfpgOI2cpQbZ47wagP24Ba0LtJ+bRIBwamDcuuOG77A7
	rl5zZx5BOmvSqFO0nyIAxuxeSwHLarVuCAOpcCKSyetl+M57uEp2J7iOlgzmg0W+dKAfBnaYPQV
	BuHylLt1qLlI2THUGolAUA3+RxPJ2fvXkUKuf9Oh3T1HlfIfvhUbNR4cOG1S2w3Uv6bmRTF8Cbt
	2Ma6aBe0LL3tfBwcAZAc3p5rH5E4nR7MT4KOCkbMMevF3kPXDK/5rPeGBA3GA3dRv5lHfwYQ+Qf
	sOX0U1xwzdpFetgYMYlmnqKnw+BoVcNzKyWMuSGd52n7v5UfhRKl41bfKZSWS2Asv0mSD/tGXDe
	ApRhQsHlrBTmJoNS4pfjxSr5RRrh9/uTXUWr2x//mkYeN8mfpc/AnYWnQgDBgZ9MVFA9He/oAe1
	OCPT5b4ebXjvKM7sAyHFMvSzWbHRZcGRN1I1EqEZYpEdDblt0ertCTffDPIouXjErKU9oQSsXuZ
	i9bH9S7wlzLKd4=
X-Received: by 2002:a05:6000:4203:b0:43d:7868:21f0 with SMTP id ffacd0b85a97d-45c790b2918mr3990637f8f.9.1778672713343;
        Wed, 13 May 2026 04:45:13 -0700 (PDT)
Message-ID: <86b0f926-6733-48ca-90d5-5601e7c6f0bb@suse.com>
Date: Wed, 13 May 2026 13:45:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 3/5] x86/shadow: conditionalize / rename local variables
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1778672713-41B7B3FF-3D8EEAA2/0/0
X-purgate-type: clean
X-purgate-size: 2006

... shadowing a function scope one in one case and the global _end[] in
another, thus violating Misra C:2012 rule 5.3 ("An identifier declared in
an inner scope shall not hide an identifier declared in an outer scope").
No difference in generated code.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -857,13 +857,13 @@ do {
 /* 64-bit l2: touch all entries except for PAE compat guests. */
 #define FOREACH_PRESENT_L2E(_sl2mfn, _sl2e, _gl2p, _done, _dom, _code)      \
 do {                                                                        \
-    unsigned int _i, _end = SHADOW_L2_PAGETABLE_ENTRIES;                    \
+    unsigned int _i, _nr = SHADOW_L2_PAGETABLE_ENTRIES;                     \
     shadow_l2e_t *_sp = map_domain_page((_sl2mfn));                         \
     ASSERT_VALID_L2(mfn_to_page(_sl2mfn)->u.sh.type);                       \
     if ( is_pv_32bit_domain(_dom) /* implies !paging_mode_external */ &&    \
          mfn_to_page(_sl2mfn)->u.sh.type != SH_type_l2_64_shadow )          \
-        _end = COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT(_dom);                    \
-    for ( _i = 0; _i < _end; ++_i )                                         \
+        _nr = COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT(_dom);                     \
+    for ( _i = 0; _i < _nr; ++_i )                                          \
     {                                                                       \
         (_sl2e) = _sp + _i;                                                 \
         if ( shadow_l2e_get_flags(*(_sl2e)) & _PAGE_PRESENT )               \
@@ -3349,7 +3349,9 @@ static pagetable_t cf_check sh_update_cr
 #if SHADOW_PAGING_LEVELS == 3
         {
             mfn_t smfn = pagetable_get_mfn(v->arch.paging.shadow.shadow_table[0]);
+#if GUEST_PAGING_LEVELS != 3
             unsigned int i;
+#endif
 
             for_each_shadow_table(v, i)
             {



From xen-devel-bounces@lists.xenproject.org Wed May 13 11:46:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 11:46:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307896.1579464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN82U-0006mb-UR; Wed, 13 May 2026 11:46:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307896.1579464; Wed, 13 May 2026 11:46:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN82U-0006mS-Qz; Wed, 13 May 2026 11:46:10 +0000
Received: by outflank-mailman (input) for mailman id 1307896;
 Wed, 13 May 2026 11:46:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wN82U-0006mM-7C
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 11:46:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN82T-00D90v-K3
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:46:09 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a04647c-2eae-0a2a0a5409dd-0a2a450ad202-16
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:46:09 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a046481-56b3-0a2a450a0019-d155802adc46-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:46:09 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-48909558b3aso66381825e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 04:46:09 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8d74536sm71732675e9.15.2026.05.13.04.46.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 04:46:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778672769; x=1779277569; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pZuQ87zTRQs5K2PzA9WOyQftHPdtCVC/Cj62DUtB07o=;
        b=cvgG9udHWEIoY2pPm3m/wYgF5cgUpkMFnYjy7ZiRZGSQrpzzQEN23bUusSDpC2k0u3
         OAPNXtGN6BMXhhqBFfhGLprySX/uQ2dmT16KDnPWQjXTWJwmpVxfxoT0G34KQc/emisu
         FSf6dwDzqavPr1j3lqTzSBRMLNfSbt3vtAN7+ADhV5eiddRLO5I6fwS45uLg07c+l0o4
         ZqBIVozG2vLkW2dv3dK9TqHTkfZ4TM8RZXBNJz1zopi5kvFBpoC+xNaR8al1kODkBRAc
         LQWL2O4zBy56AIIIAtMvcumpHoCYUvft7Y1hoRiCOYwLQlu2fNyqHqzYGw1ZR/kD9clV
         nRMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778672769; x=1779277569;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pZuQ87zTRQs5K2PzA9WOyQftHPdtCVC/Cj62DUtB07o=;
        b=M+JfRidLO7aEfyyJ07qFBMoyCpSRzP79kRBMdKUvJYnu898LVKwx5WLj25Kgv2+Z9G
         isVmU95NyrFDnwHZt3jOvbka+jFUFO9fU6hHHCTyfhqLsf1M7mZIgO8IbyUpy2wu3Nws
         TdV/heKqyr4f47/IZsK6PT8XcZYJ4on8SVkbIgRFvII/XKNXLxf+srLRYf2S2KzIv2Pc
         9lFg/mg7+Z6m6YEm6tOtZ3GV9Cq0+jztI11AtyEJ2vdUQLj1FNP0gBqo1Qi1VMBPn5at
         /GIhFdFDO6Lf0IZw86meOem4cBSS7Tx0VaCtYOLMXjplaDUNl9CeWvwmMZmtxgiTX5l9
         mhXw==
X-Gm-Message-State: AOJu0YyGBcaMoq4EkvJYEoxLgZKXwnknLHB/FqF/Me6GI+fxMORctQVL
	KetvTxyIvsy3JRo66ybF/eAcxFkJKkl6rZ0D4EvfNpoUsszPB++JjfQfBb1IQffvWO6BZd0UJmd
	ycKQ=
X-Gm-Gg: Acq92OGkRkNiffrrfbf+lxapcJjaSq8xu5uyJEOddGyxr8oEcBauzxx9kLXNNWGoHS8
	2lxsN/t16bmx6a7qWekZmC3aclOTxEJ8XOWsIRRGJ1gBlu+RwXQiKY1hI3h25XW6yxJ48XkMluv
	fEzj6oL39wgRWLCgJLzx7stwPWKMIgYDmivbdVCZ9xhd0cLqfa4FqhsHQC/DqVs30YKoi1tALM3
	oLMcINHZ+69QwNYWDX+Q1yWYmsWDh4ZfzE+8XP2Mskn8HFW/ycs+MhyXRYAaIWwKyRDb4jhhtUA
	W4V2d9wnKXRZCAAKW6q/WVjDxKNIwvmF7a//E0xbWGnrOwoNUL6ysthVqv8VsV/9WIuq/Iwxn++
	mavwLeRbWzCg9qsFuEGIEam0Ux0FPDxpaEWGyutcHj0zIxj9c3YpTrJRRK7C3vs6xm3ggPmbYj+
	FHZ9R/vGhe/hW14be+JxaACF6uxP/QMGY7/Drd/i17QoPrVRPtwLBig++u8zIBKLZJ+yMnPUKgF
	Ha66Azugl19nU8=
X-Received: by 2002:a05:600c:4583:b0:487:2439:b7be with SMTP id 5b1f17b1804b1-48fce9b2fe7mr33310625e9.6.1778672769058;
        Wed, 13 May 2026 04:46:09 -0700 (PDT)
Message-ID: <146d214c-e766-4b3f-bc50-0b9beee50473@suse.com>
Date: Wed, 13 May 2026 13:46:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 4/5] x86/shadow: split a nested max() invocation
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1778672769-73F798B7-C5C149AD/0/0
X-purgate-type: clean
X-purgate-size: 1655

Such nesting causes the inner instance to shadow the outer instance's
macro-local variables, thus violating Misra C:2012 rule 5.3 ("An
identifier declared in an inner scope shall not hide an identifier
declared in an outer scope"). Use an intermediate variable for the
inner invocation. No difference in generated code.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Supposedly this case is deviated (rules.rst). Does that deviation not work
quite right? Actually, am I mis-reading deviations.ecl or is the
respective setting only covering the combination of min() and max(), but
not multiple use of the same macro? Furthermore, why would e.g.
min(max_t(), ...) need a deviation? Even more generally, aren't those
expressions too permissive?

--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -767,11 +767,12 @@ static unsigned int sh_min_allocation(co
      * megabyte of RAM (for the p2m table, minimally enough for HVM's setting
      * up of slot zero and an LAPIC page), plus one for HVM's 1-to-1 pagetable.
      */
+    unsigned int extra = max(domain_tot_pages(d) / 256,
+                             is_hvm_domain(d) ? CONFIG_PAGING_LEVELS + 2 : 0U) +
+                         is_hvm_domain(d);
+
     return shadow_min_acceptable_pages(d) +
-           max(max(domain_tot_pages(d) / 256,
-                   is_hvm_domain(d) ? CONFIG_PAGING_LEVELS + 2 : 0U) +
-               is_hvm_domain(d),
-               d->arch.paging.p2m_pages);
+           max(extra, d->arch.paging.p2m_pages);
 }
 
 int shadow_set_allocation(struct domain *d, unsigned int pages, bool *preempted)



From xen-devel-bounces@lists.xenproject.org Wed May 13 11:47:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 11:47:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307902.1579473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN83L-0007GU-5z; Wed, 13 May 2026 11:47:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307902.1579473; Wed, 13 May 2026 11:47:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN83L-0007GN-2v; Wed, 13 May 2026 11:47:03 +0000
Received: by outflank-mailman (input) for mailman id 1307902;
 Wed, 13 May 2026 11:47:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wN83J-0007GD-Jp
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 11:47:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN83J-00A2US-0T
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:47:01 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0464a0-bab6-0a2a0a5309dd-0a2a450898be-40
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:47:00 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0464b4-63b5-0a2a45080019-d1558035e080-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:47:00 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-488b0e1b870so112025175e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 04:47:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fce38e42fsm46744745e9.15.2026.05.13.04.46.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 04:47:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778672820; x=1779277620; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5LnypQr9QCdWJIq8PrShfWfOV8zW0x3TsVs9GGSmzQg=;
        b=J8a0kJaxHNDFCmQ2SkkVqFNSbFK7b9COjP7ZWj58BR4RZclWrXWo3Uuzihb0H03m56
         JjckQvXSICynw9HZD4Qkx+bDK1HDjxROkELXfEoDEAVzSVwpDlk1ucnz+Oki3nWXypxq
         nQGzvRAPawL6mFp534GEzhb2yJE0aDNRvanXWecRpMeVQ0l8EZWN6z4Ka+W2YT/NYezT
         /k8/EL3GEUIKq1k1Wa5Do01QkkhNJfWJRLm2qhXX1bdwIQy1tuR7sxesWVEZLw8ks93A
         e1tVbzgIqMEz3dGdztTPw+AVFHZFXxm+iFBs2B1SfhjIoDqsrd0DbXSNcoEQHIV2npuv
         CodA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778672820; x=1779277620;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5LnypQr9QCdWJIq8PrShfWfOV8zW0x3TsVs9GGSmzQg=;
        b=EPQc8d/0gUn5s7YHTzZvlrMZqPLY0LWtGBVnWgDcVQGCFs0xbTBIBG2RO66Shl8rtZ
         vLDBwiP3g8EexU9WmHXsNMYU1vbHXZOrKx0cXMCb+IVEyhaEEbbPrmwlFttoSg3niusx
         xLNuNV/Ndrv3AR9dFUsG45A0gBWKwRcw4AxuzoCAzT8wuW5gjYQuSYMtzjdmN/b1HyG9
         f3j0DFMZdqwj2PiGct2F6wFz1fa3pekltvOGInH28ZwizSyibc2hDUxUsWOx73HzSPX6
         B3zEITz+fAC31MgKGGo6awo4sok/62x1lcsv+/MmNr76JS0YBFYx+jJwQ+WS5P0Amkll
         Hy9Q==
X-Gm-Message-State: AOJu0Ywf5x5QPsJZeIBrAua7TKaRW1+Ip5XAt0Co0BcliUPVgZjUGj9o
	fwkqBKz1sIDAXGuaKtPHfH9Le9/rwuQxeFrpq4Fgu4qtw3VYo31VPsmuK952zgsjdY3E8e1gcAq
	XhFE=
X-Gm-Gg: Acq92OHpUvY8Cq2HoZvQ22IpPjlAAuntB7llv/hRKYbJbaW/zaeCpPhDV029vUnBod+
	uMGgmcDS83QNf2OMBZpT20EsSLOJb2SzAIhXBaaJM0bE7yS9MUAqSRogtWe2Fmyd1fScz1t9SwP
	hU1vSgyX4kZ4Sa96dsPedXlLlQlOmg3EsR32X4C1mNQFq1EHak5Hh4o5sc1eN4ezZyXCcqAZhju
	/fJFHkT4UcOylbIYQWEky7QtkDBEPdtnm9NYk5uDu2uZxwxT9QCZ+VtQRfzzlibR5SHGJ+Sqg5t
	Fy/3TSCVTHoLRDWVGI45uQ82Xo5HxWDbeXrbzJ1Cr0v/N0x3aDL+CbwRo2UIje5VVxcsZCOftdG
	i7qFgu8urSuv+7DsxkHk15G1EWJTHnrB93dTW8ml4BZ0G7kKkbLgxRX52xIBMPYJylQsuQPc53Q
	LbpER1jMMl/4dVPQavOi0jynZEnIowT0R+2WZ9nGlsgPtMy43wxVgnAwcc7W9jpM0G7U5nlAq2F
	HtM895shsfjtR6f86BzPwP+Dg==
X-Received: by 2002:a05:600c:4e54:b0:488:c014:34da with SMTP id 5b1f17b1804b1-48fcea15f3cmr36451015e9.26.1778672820418;
        Wed, 13 May 2026 04:47:00 -0700 (PDT)
Message-ID: <8aca671a-eb6f-475d-87cb-7a738ecd0793@suse.com>
Date: Wed, 13 May 2026 13:46:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 5/5] x86/shadow: rename a parameter of shadow_l<N>_index()
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1778672820-BC766DB1-D6F222C2/0/0
X-purgate-type: clean
X-purgate-size: 2555

... shadowing a file scope one, thus violating Misra C:2012 rule 5.3
("An identifier declared in an inner scope shall not hide an identifier
declared in an outer scope").

While there,
- replace u32 by uint32_t,
- reduce the number of cf_check by aliasing shadow_l<N>_index() to
  shadow_l1_index() for N > 1 and GUEST_PAGING_LEVELS > 2.

No difference in generated code, except of course the removal of the
duplicate function instances.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -402,46 +402,39 @@ guest_index(const void *ptr)
     return (u32)((unsigned long)ptr & ~PAGE_MASK) / sizeof(guest_l1e_t);
 }
 
-static u32 cf_check shadow_l1_index(mfn_t *smfn, u32 guest_index)
+static uint32_t cf_check shadow_l1_index(mfn_t *smfn, uint32_t gidx)
 {
 #if (GUEST_PAGING_LEVELS == 2)
     ASSERT(mfn_to_page(*smfn)->u.sh.head);
-    if ( guest_index >= SHADOW_L1_PAGETABLE_ENTRIES )
+    if ( gidx >= SHADOW_L1_PAGETABLE_ENTRIES )
         *smfn = sh_next_page(*smfn);
-    return (guest_index % SHADOW_L1_PAGETABLE_ENTRIES);
+    return (gidx % SHADOW_L1_PAGETABLE_ENTRIES);
 #else
-    return guest_index;
+    return gidx;
 #endif
 }
 
-static u32 cf_check shadow_l2_index(mfn_t *smfn, u32 guest_index)
-{
 #if (GUEST_PAGING_LEVELS == 2)
+static uint32_t cf_check shadow_l2_index(mfn_t *smfn, uint32_t gidx)
+{
     int i;
     ASSERT(mfn_to_page(*smfn)->u.sh.head);
     // Because we use 2 shadow l2 entries for each guest entry, the number of
     // guest entries per shadow page is SHADOW_L2_PAGETABLE_ENTRIES/2
-    for ( i = 0; i < guest_index / (SHADOW_L2_PAGETABLE_ENTRIES / 2); i++ )
+    for ( i = 0; i < gidx / (SHADOW_L2_PAGETABLE_ENTRIES / 2); i++ )
         *smfn = sh_next_page(*smfn);
     // We multiply by two to get the index of the first of the two entries
     // used to shadow the specified guest entry.
-    return (guest_index % (SHADOW_L2_PAGETABLE_ENTRIES / 2)) * 2;
+    return (gidx % (SHADOW_L2_PAGETABLE_ENTRIES / 2)) * 2;
+}
 #else
-    return guest_index;
+#define shadow_l2_index shadow_l1_index
 #endif
-}
 
 #if GUEST_PAGING_LEVELS >= 4
 
-static u32 cf_check shadow_l3_index(mfn_t *smfn, u32 guest_index)
-{
-    return guest_index;
-}
-
-static u32 cf_check shadow_l4_index(mfn_t *smfn, u32 guest_index)
-{
-    return guest_index;
-}
+#define shadow_l3_index shadow_l1_index
+#define shadow_l4_index shadow_l1_index
 
 #endif // GUEST_PAGING_LEVELS >= 4
 



From xen-devel-bounces@lists.xenproject.org Wed May 13 11:48:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 11:48:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307915.1579481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN84r-0007wA-IB; Wed, 13 May 2026 11:48:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307915.1579481; Wed, 13 May 2026 11:48:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN84r-0007w3-FI; Wed, 13 May 2026 11:48:37 +0000
Received: by outflank-mailman (input) for mailman id 1307915;
 Wed, 13 May 2026 11:48:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wN84q-0007vt-3H
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 11:48:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN84p-00CwTx-4m
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:48:35 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a04650e-2eae-0a2a0a5409dd-0a2a4508a3d8-38
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:48:35 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a046512-63b5-0a2a45080019-d1558029b87a-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 13:48:34 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-488a88aeec9so74440135e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 04:48:34 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8d624fbsm158685195e9.10.2026.05.13.04.48.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 04:48:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778672914; x=1779277714; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=TcSnLg1p9V0A0oQKeQpJzI+pac+/NbM+PTH1HSiMLdM=;
        b=YDFqjTuuFTa4CX9ECTcTo9d79jSiR1cxf2PRiIn3xfqlD4MrfLMIdPUWNIJ1NHFfKL
         Hk3XF6qNRRTeNCpz2/ThkkLR5kCEFxMEcmtABT7fz1jQ1PbrIQnFXrfvFePxPRg9RUmU
         EaOKzaejX9TGP0tcbxoTWUfQQTCxKtnSGQD4WFgvjtprFnZGJemIO7ADV2RsRBN5h+4c
         7mlkKW32g/EhvAYsa8xBuBUAblJogzd2HoBHwOLRVe2MmAk1rQ4nDcD+3zBi/EPTkqHk
         +qAVd3RMZ9RyL08j0pB6MHFhKeShVaLDyTkMcc765GJv/Y5Tk/nsbGeJVgEDb9/I1tTY
         FzbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778672914; x=1779277714;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=TcSnLg1p9V0A0oQKeQpJzI+pac+/NbM+PTH1HSiMLdM=;
        b=MnkjbcVmTFwjo49v1HLQ6Tx+vNVttQEaVYWhdx8cHdmHQ8nN9OWJmTQMB5WytaU05F
         q3RjdG9+AipMbqiTj9iyLTa73MMm8uq7pxvyWtY8n5/u4INwmrXPQon+6Q5MwxkL339U
         f/DGsBveGBAxLnDPN3gzTwOfnPQOvUOkygQ3OnsQ54TWkw/NVjWsKqyLeQuI6BvYNfZ/
         ccz1PjmyHVWkqxHc7Sc6ceBwgPhdGx2yZOPeZ6Wt54HGmPzlONs2Dwq4cUls2aE0T1DF
         eEm25CUyrTuaiVxHuCCwK9bD9BeUZLvrzicqDPi2sJrU4uQ9KBrUE8aGTdJf9pEW1bht
         C9OQ==
X-Gm-Message-State: AOJu0YzHucHvoCMvqH316lYjjr1drIjinJDCiJk1XRomMETNwyvsidaX
	C6JZ6uqMnjmoYa1UnE8qcdKE6D4lQhRRi+K4dBCQ7tLHyPcBtPA1TGaj92Wh5A/Y68nadworLCy
	HNI8=
X-Gm-Gg: Acq92OE4TTLekYCPjvJFeW/dSYSNs2Pxj3Wiqxeljc+VVUVnJW85k6fq2O0fGW3/IMD
	QazNe4+XTlTFq3JvNJW9jnMMfs2IRQuNVXTDR7oWwLHYaAd1MDacbATGuKWOu7+fJoDjmOcOw8u
	NPbQwnPEoAkJbYE6K8S6aUYBtOsU9GshU2k1hkibGF/IjHFSiJpC6j2RErnLRcE62fKJ7lDOaKk
	XRIwqIZqTH4RlDKewtWoAuTKzCz9AE0vaZFSOb5t7lSxKlX6u07VSdd8rZc9kX9bFDa2eZMvznL
	l0huPVrsZTjeHA//GcX0fqDyNmb/e4ZB7HVgXdgqQjUb7eYJndnpjkKwm1V9gSSRZ4IcHeAs1ft
	XuuyBwMqivSMyLSMTW2UdkI5BGguRU9tQ/MAZzeGTmISV48WL0pdhXxR7PJrS3hLx6qpKWQxkYH
	WeKq4uVLkb6ECCivwtnyal/WvMi3/kdVMyVx2tflSJ/CGahHc6O7F8hFlF5CI3P4wTVGXPfjee4
	q35a5oGX+k3q42YN8mikZuaKQ==
X-Received: by 2002:a05:600c:4f53:b0:48e:8974:c377 with SMTP id 5b1f17b1804b1-48fc9a53d16mr40098355e9.29.1778672914332;
        Wed, 13 May 2026 04:48:34 -0700 (PDT)
Message-ID: <4c96b39c-ddfe-41ad-ae6c-3393dd4f9e90@suse.com>
Date: Wed, 13 May 2026 13:48:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/shadow: deviate guest_va_t wrt Misra C:2012 rule 5.6
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1778672914-B757FDB1-342779AD/0/0
X-purgate-type: clean
X-purgate-size: 1063

... ("A `typedef' name shall be a unique identifier"). Much like already
done for guest_intpte_t and guest_l[12]e_t, but limited to shadow/multi.c.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -143,6 +143,11 @@ number of guest paging levels."
 -config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(file(^xen/arch/x86/include/asm/guest_pt\\.h$)))&&any_area(any_loc(text(^.*(guest_intpte_t|guest_l[12]e_t).*$)))"}
 -doc_end
 
+-doc_begin="In x86 shadow code, the type \"guest_va_t\" is deliberately defined
+multiple times, depending on the number of guest paging levels."
+-config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(file(^xen/arch/x86/mm/shadow/multi\\.c$)))&&any_area(any_loc(text(^.*guest_va_t.*$)))"}
+-doc_end
+
 -doc_begin="The following files are imported from the gnu-efi package."
 -file_tag+={adopted_r5_6,"^xen/include/efi/.*$"}
 -file_tag+={adopted_r5_6,"^xen/arch/.*/include/asm/.*/efibind\\.h$"}


From xen-devel-bounces@lists.xenproject.org Wed May 13 12:42:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 12:42:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307953.1579500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN8uT-0000Lk-T0; Wed, 13 May 2026 12:41:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307953.1579500; Wed, 13 May 2026 12:41:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN8uT-0000Ld-Pe; Wed, 13 May 2026 12:41:57 +0000
Received: by outflank-mailman (input) for mailman id 1307953;
 Wed, 13 May 2026 12:41:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <luca.fancellu@arm.com>) id 1wN8uS-0000LP-R5
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 12:41:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN8uQ-00C24R-J7
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:41:56 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a04718e-2eae-0a2a0a5409dd-0a2a450aa664-20
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 14:41:55 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a047192-56b3-0a2a450a0019-d98c6eacd6de-1
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 14:41:55 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A485E1C14;
 Wed, 13 May 2026 05:41:48 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5E0693F7B4;
 Wed, 13 May 2026 05:41:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778676113; bh=yqnUbiBLy+WsRZlIKSSExjsOXHwN130L4LLW2aQM8Eo=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=HyHikizYDISUAxlGmYeMk04sY3KsFDohwBOm5bJDOVuJXPZyY/w9XIfkIge71Mt6c
	 FJlRyAk2hpTbZRQgFxMb1c5QswiiEiYZ60AiAdoU8iF9WW4wcyEamOGZpOUUT+2EeU
	 XzYwJ2GzqsmWCO7Bo4611bdgfKz0rjKyRykL/iUQ=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Penny Zheng <Penny.Zheng@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Oleksii Kurochko" <oleksii.kurochko@gmail.com>,
	Penny Zheng <penny.zheng@arm.com>,
	Wei Chen <wei.chen@arm.com>,
	Hari Limaye <hari.limaye@arm.com>,
	Harry Ramsey <harry.ramsey@arm.com>
Subject: [PATCH v7 1/3] arm/mpu: implement setup_virt_paging for MPU systems
Date: Wed, 13 May 2026 13:41:36 +0100
Message-Id: <20260513124138.275290-2-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260513124138.275290-1-luca.fancellu@arm.com>
References: <20260513124138.275290-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778676115-7C47E8B7-C1F80581/0/0
X-purgate-type: clean
X-purgate-size: 7784

From: Penny Zheng <Penny.Zheng@arm.com>

Implement setup_virt_paging for AArch64 MPU systems, taking care of
stage 2 address translation regime, IPA bits, supported VMID length
configuration and VTCR_EL2/VSTCR_EL2 register programming.

Implement also the Armv8-R specific changes to ID_AA64MMFR0_EL1,
related to the supported memory system architecture (PMSA/VMSA)
and check that when MPU is built, the underlying HW is compatible
with PMSA. By default MPU at EL2 and EL1 is required.

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
Signed-off-by: Wei Chen <wei.chen@arm.com>
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Hari Limaye <hari.limaye@arm.com>
Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
v6/v7:
 - no changes
v5:
 - removed spaces in inline if condition
 - Add Michal R-by
v4:
- Fixed typo in the comments
- Fixed typo in the commit title and message
- moved p2m_vmid_allocator_init() after write of
  VTCR_EL2
- Fixed printf format specifier %d -> %u
v3:
- Refactor unused code to more relevant commits.
- Add P2M print information
- Formatting issues
- Update commit message
v2:
- Separate commit into multiple commits
---
 xen/arch/arm/arm64/mpu/p2m.c             | 80 +++++++++++++++++++++++-
 xen/arch/arm/include/asm/arm64/sysregs.h |  4 ++
 xen/arch/arm/include/asm/cpufeature.h    | 13 +++-
 xen/arch/arm/include/asm/processor.h     |  8 +++
 4 files changed, 101 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/arm64/mpu/p2m.c b/xen/arch/arm/arm64/mpu/p2m.c
index b6d8b2777b58..4547417df97e 100644
--- a/xen/arch/arm/arm64/mpu/p2m.c
+++ b/xen/arch/arm/arm64/mpu/p2m.c
@@ -2,11 +2,89 @@
 
 #include <xen/bug.h>
 #include <xen/init.h>
+#include <xen/lib.h>
 #include <asm/p2m.h>
 
 void __init setup_virt_paging(void)
 {
-    BUG_ON("unimplemented");
+    register_t vtcr_el2 = READ_SYSREG(VTCR_EL2);
+    register_t vstcr_el2 = READ_SYSREG(VSTCR_EL2);
+
+    /* PA size */
+    const unsigned int pa_range_info[] = {32, 36, 40, 42, 44, 48, 52, 0,
+                                          /* Invalid */};
+
+    /*
+     * Restrict "p2m_ipa_bits" if needed. As P2M table is always configured
+     * with IPA bits == PA bits, compare against PA size.
+     */
+    if ( pa_range_info[system_cpuinfo.mm64.pa_range] < p2m_ipa_bits )
+        p2m_ipa_bits = pa_range_info[system_cpuinfo.mm64.pa_range];
+
+    /*
+     * The MSA and MSA_frac fields in the ID_AA64MMFR0_EL1 register identify the
+     * memory system configurations supported. In Armv8-R AArch64, the
+     * only permitted value for ID_AA64MMFR0_EL1.MSA is 0b1111.
+     */
+    if ( system_cpuinfo.mm64.msa != MM64_MSA_PMSA_SUPPORT )
+        goto fault;
+
+    /* Permitted values for ID_AA64MMFR0_EL1.MSA_frac are 0b0001 and 0b0010. */
+    if ( (system_cpuinfo.mm64.msa_frac != MM64_MSA_FRAC_PMSA_SUPPORT) &&
+         (system_cpuinfo.mm64.msa_frac != MM64_MSA_FRAC_VMSA_SUPPORT) )
+        goto fault;
+
+    /* Stage 1 EL1&0 translation regime uses PMSAv8 by default */
+    vtcr_el2 &= ~VTCR_MSA;
+
+    /*
+     * Clear VTCR_EL2.NSA bit to configure non-secure stage 2 translation output
+     * address space to access the Secure PA space as Armv8-R only implements
+     * secure state.
+     */
+    vtcr_el2 &= ~VTCR_NSA;
+
+    /*
+     * cpuinfo sanitization makes sure we support 16-bits VMID only if all cores
+     * are supporting it.
+     *
+     * Set the VS bit only if 16 bit VMID is supported.
+     */
+    if ( system_cpuinfo.mm64.vmid_bits == MM64_VMID_16_BITS_SUPPORT )
+    {
+        vtcr_el2 |= VTCR_VS;
+        max_vmid = MAX_VMID_16_BIT;
+    }
+    else
+        vtcr_el2 &= ~VTCR_VS;
+
+    WRITE_SYSREG(vtcr_el2, VTCR_EL2);
+
+    p2m_vmid_allocator_init();
+
+    /*
+     * VSTCR_EL2.SA defines secure stage 2 translation output address space.
+     * To make sure that all stage 2 translations for the Secure PA space access
+     * the Secure PA space, we keep SA bit as 0.
+     *
+     * VSTCR_EL2.SC is NS check enable bit. To make sure that Stage 2 NS
+     * configuration is checked against stage 1 NS configuration in EL1&0
+     * translation regime for the given address, and generates a fault if they
+     * are different, we set SC bit 1.
+     */
+    vstcr_el2 &= ~VSTCR_EL2_SA;
+    vstcr_el2 |= VSTCR_EL2_SC;
+    WRITE_SYSREG(vstcr_el2, VSTCR_EL2);
+
+    printk("P2M: %u-bit IPA with %u-bit PA and %u-bit VMID\n",
+           p2m_ipa_bits,
+           pa_range_info[system_cpuinfo.mm64.pa_range],
+           (MAX_VMID == MAX_VMID_16_BIT) ? 16 : 8);
+
+    return;
+
+ fault:
+    panic("Hardware with no PMSAv8-64 support in any translation regime\n");
 }
 
 /*
diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
index 19d409d3eb5a..f3c11d871e86 100644
--- a/xen/arch/arm/include/asm/arm64/sysregs.h
+++ b/xen/arch/arm/include/asm/arm64/sysregs.h
@@ -462,6 +462,10 @@
 #define ZCR_ELx_LEN_SIZE             9
 #define ZCR_ELx_LEN_MASK             0x1ff
 
+/* Virtualization Secure Translation Control Register */
+#define VSTCR_EL2_SA                 (_AC(0x1,U) << 30)
+#define VSTCR_EL2_SC                 (_AC(0x1,U) << 20)
+
 #ifdef CONFIG_MPU
 /*
  * The Armv8-R AArch64 architecture always executes code in Secure
diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
index 13353c8e1ad1..bf902a397068 100644
--- a/xen/arch/arm/include/asm/cpufeature.h
+++ b/xen/arch/arm/include/asm/cpufeature.h
@@ -248,6 +248,12 @@ struct cpuinfo_arm {
             unsigned long tgranule_16K:4;
             unsigned long tgranule_64K:4;
             unsigned long tgranule_4K:4;
+#ifdef CONFIG_MPU
+            unsigned long __res0:16;
+            unsigned long msa:4;
+            unsigned long msa_frac:4;
+            unsigned long __res1:8;
+#else
             unsigned long tgranule_16k_2:4;
             unsigned long tgranule_64k_2:4;
             unsigned long tgranule_4k_2:4;
@@ -255,6 +261,7 @@ struct cpuinfo_arm {
             unsigned long __res0:8;
             unsigned long fgt:4;
             unsigned long ecv:4;
+#endif
 
             /* MMFR1 */
             unsigned long hafdbs:4;
@@ -267,13 +274,13 @@ struct cpuinfo_arm {
             unsigned long xnx:4;
             unsigned long twed:4;
             unsigned long ets:4;
-            unsigned long __res1:4;
+            unsigned long __res2:4;
             unsigned long afp:4;
-            unsigned long __res2:12;
+            unsigned long __res3:12;
             unsigned long ecbhb:4;
 
             /* MMFR2 */
-            unsigned long __res3:64;
+            unsigned long __res4:64;
         };
     } mm64;
 
diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 1a48c9ff3b39..895d7cd50244 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -403,6 +403,9 @@
 
 #define VTCR_RES1       (_AC(1,UL)<<31)
 
+#define VTCR_MSA        (_AC(0x1,UL)<<31)
+#define VTCR_NSA        (_AC(0x1,UL)<<30)
+
 /* HCPTR Hyp. Coprocessor Trap Register */
 #define HCPTR_TAM       ((_AC(1,U)<<30))
 #define HCPTR_TTA       ((_AC(1,U)<<20))        /* Trap trace registers */
@@ -464,6 +467,11 @@
 #define MM64_VMID_16_BITS_SUPPORT   0x2
 #endif
 
+#define MM64_MSA_PMSA_SUPPORT       0xf
+#define MM64_MSA_FRAC_NONE_SUPPORT  0x0
+#define MM64_MSA_FRAC_PMSA_SUPPORT  0x1
+#define MM64_MSA_FRAC_VMSA_SUPPORT  0x2
+
 #ifndef __ASSEMBLER__
 
 extern register_t __cpu_logical_map[];
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed May 13 12:42:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 12:42:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307952.1579490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN8uQ-00007z-LJ; Wed, 13 May 2026 12:41:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307952.1579490; Wed, 13 May 2026 12:41:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN8uQ-00007s-Iq; Wed, 13 May 2026 12:41:54 +0000
Received: by outflank-mailman (input) for mailman id 1307952;
 Wed, 13 May 2026 12:41:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <luca.fancellu@arm.com>) id 1wN8uP-00007k-9p
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 12:41:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN8uN-00C24R-56
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:41:52 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a04718a-2eae-0a2a0a5409dd-0a2a4506aeac-20
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 14:41:52 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a04718f-7371-0a2a45060019-d98c6eacd714-1
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 14:41:51 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A1A2E165C;
 Wed, 13 May 2026 05:41:45 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7EB323F7B4;
 Wed, 13 May 2026 05:41:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="From:To:Cc:Subject:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778676110; bh=NM3eJlbqL8Yo0QXE/TrTFd72EjUsY9X8TYQBIlW72YY=;
	h=From:To:Cc:Subject:Date:From;
	b=R9Zsuyeqy9jSA1DVX+V2FfsM326JQXb+nRJbr4GGC9s/msBsSeFKVpMVYis7d4faB
	 R7kf6aT07aOoZc4jHI67PbusPP+PmqITxF7ssazO+Qnmbny0o8RIkqQiEZ4HFTndE7
	 6ZIF6rUt2fVeDCxxMDmUCh2Cu2iE96ACHgwWGXfg=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	"Oleksii Kurochko" <oleksii.kurochko@gmail.com>
Subject: [PATCH v7 0/3] Fifth MPU Series
Date: Wed, 13 May 2026 13:41:35 +0100
Message-Id: <20260513124138.275290-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1778676112-85B6DD75-8C75625D/0/0
X-purgate-type: clean
X-purgate-size: 1462

This series continues to further the ongoing work to introduce support
for MPU systems in Xen.

The patches in this series aim to implement MPU specific p2m functions.

This serie is based on staging 8070bdfa7220e772fae248abd3cbf5e87fc0fefb.


Harry Ramsey (2):
  arm/mpu: Introduce `v8r_el1_msa` device tree property for domains
  arm/mpu: Implement p2m tables

Penny Zheng (1):
  arm/mpu: implement setup_virt_paging for MPU systems

 docs/misc/arm/device-tree/booting.txt    | 14 +++++
 xen/arch/arm/arm64/mpu/p2m.c             | 80 +++++++++++++++++++++++-
 xen/arch/arm/dom0less-build.c            | 62 ++++++++++++++++++
 xen/arch/arm/domain.c                    | 37 +++++++++++
 xen/arch/arm/include/asm/arm32/mpu.h     |  2 +
 xen/arch/arm/include/asm/arm64/mpu.h     |  2 +
 xen/arch/arm/include/asm/arm64/sysregs.h |  4 ++
 xen/arch/arm/include/asm/cpufeature.h    | 13 +++-
 xen/arch/arm/include/asm/domain.h        |  4 ++
 xen/arch/arm/include/asm/domain_build.h  | 10 +++
 xen/arch/arm/include/asm/mpu/p2m.h       |  8 +++
 xen/arch/arm/include/asm/p2m.h           |  5 ++
 xen/arch/arm/include/asm/processor.h     |  8 +++
 xen/arch/arm/mpu/arm64/mm.c              |  5 ++
 xen/arch/arm/mpu/p2m.c                   | 72 ++++++++++++++++++++-
 xen/include/public/arch-arm.h            |  7 +++
 xen/include/public/domctl.h              |  4 +-
 17 files changed, 328 insertions(+), 9 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed May 13 12:42:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 12:42:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307955.1579517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN8uY-0000o7-AY; Wed, 13 May 2026 12:42:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307955.1579517; Wed, 13 May 2026 12:42:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN8uY-0000o0-7i; Wed, 13 May 2026 12:42:02 +0000
Received: by outflank-mailman (input) for mailman id 1307955;
 Wed, 13 May 2026 12:42:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <luca.fancellu@arm.com>) id 1wN8uX-0000Zz-20
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 12:42:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN8uW-00AEoG-F6
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:42:00 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a047190-e002-0a2a0a5209dd-0a2a4501a82e-34
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 14:42:00 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a047197-c1f2-0a2a45010019-d98c6eacd74a-1
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 14:42:00 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CE2961C14;
 Wed, 13 May 2026 05:41:53 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2627B3F7B4;
 Wed, 13 May 2026 05:41:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778676118; bh=n2Ld6NodaMnOgoYtwOiJc5QPXnSYY1O1/IBqkPwZA40=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=jMVKWhCGRs0OdQpLs/rYoU22HoB+mkoagomFQXvoL2QDQ9kAHzw968iP0qFFPDXPE
	 qmlRUD+Rt2QyviB7xw2bXZn0MZEt0WS1xzR1YoNMz69zRIBCKKBzqcL3u6Nk1kW7yf
	 5Zuf+bGn0bm4KAsy9tdFStbRnkXbViLslqrMtTAk=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Harry Ramsey <harry.ramsey@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Oleksii Kurochko" <oleksii.kurochko@gmail.com>
Subject: [PATCH v7 3/3] arm/mpu: Implement p2m tables
Date: Wed, 13 May 2026 13:41:38 +0100
Message-Id: <20260513124138.275290-4-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260513124138.275290-1-luca.fancellu@arm.com>
References: <20260513124138.275290-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778676120-B675CFF4-1E66B698/0/0
X-purgate-type: clean
X-purgate-size: 5942

From: Harry Ramsey <harry.ramsey@arm.com>

Implement `p2m_alloc_table`, `p2m_init` and `p2m_final_teardown` for MPU
systems.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
v7:
 - no changes
v6:
 - Included mpu.h for MAX_MPU_REGION_NR
 - used void* instead of char* in pointer arithmetic
 - fixed typo in comment
 - Add Michal R-by
v5:
 - removed comment for P2M_ROOT_PAGES/P2M_ROOT_ORDER
 - used MAX_MPU_REGION_NR instead of opencoding 255
 - use 'table' in p2m_alloc_table to clear pages
 - remove p2m_free_vmid() from error path in p2m_init()
   which is already handled outside
v4:
 - no changes
v3:
- Check for alloc_xenheap_pages allocation
- Clear additional page allocated for ARM64
- Add check for INVALID_VCPU_ID
- Remove unnecessary function generate_vsctlr
- Code formatting fixes
---
 xen/arch/arm/include/asm/arm32/mpu.h |  2 +
 xen/arch/arm/include/asm/arm64/mpu.h |  2 +
 xen/arch/arm/include/asm/mpu/p2m.h   |  8 ++++
 xen/arch/arm/include/asm/p2m.h       |  5 ++
 xen/arch/arm/mpu/p2m.c               | 72 ++++++++++++++++++++++++++--
 5 files changed, 86 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
index 2cf0f8cbacae..d565230f84ee 100644
--- a/xen/arch/arm/include/asm/arm32/mpu.h
+++ b/xen/arch/arm/include/asm/arm32/mpu.h
@@ -11,6 +11,8 @@
  */
 #define MPU_REGION_RES0       0x0
 
+#define VSCTLR_VMID_SHIFT     16
+
 /* Hypervisor Protection Region Base Address Register */
 typedef union {
     struct {
diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
index 4f694190a8a3..8b86a03fee44 100644
--- a/xen/arch/arm/include/asm/arm64/mpu.h
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -7,6 +7,8 @@
 
 #define MPU_REGION_RES0        (0xFFFFULL << 48)
 
+#define VSCTLR_VMID_SHIFT      48
+
 /* Protection Region Base Address Register */
 typedef union {
     struct __packed {
diff --git a/xen/arch/arm/include/asm/mpu/p2m.h b/xen/arch/arm/include/asm/mpu/p2m.h
index e46d9e757a1d..1484c75b55aa 100644
--- a/xen/arch/arm/include/asm/mpu/p2m.h
+++ b/xen/arch/arm/include/asm/mpu/p2m.h
@@ -3,8 +3,16 @@
 #ifndef __ARM_MPU_P2M_H__
 #define __ARM_MPU_P2M_H__
 
+#include <xen/bitops.h>
+#include <xen/macros.h>
+#include <xen/page-size.h>
+#include <asm/mpu.h>
+
 struct p2m_domain;
 
+#define P2M_ROOT_PAGES DIV_ROUND_UP(MAX_MPU_REGION_NR * sizeof(pr_t), PAGE_SIZE)
+#define P2M_ROOT_ORDER get_count_order(P2M_ROOT_PAGES)
+
 static inline void p2m_clear_root_pages(struct p2m_domain *p2m) {}
 
 static inline void p2m_tlb_flush_sync(struct p2m_domain *p2m) {}
diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
index 010ce8c9ebbd..ed1b6dd40f40 100644
--- a/xen/arch/arm/include/asm/p2m.h
+++ b/xen/arch/arm/include/asm/p2m.h
@@ -48,8 +48,13 @@ struct p2m_domain {
     /* Current VMID in use */
     uint16_t vmid;
 
+#ifdef CONFIG_MMU
     /* Current Translation Table Base Register for the p2m */
     uint64_t vttbr;
+#else
+    /* Current Virtualization System Control Register for the p2m */
+    register_t vsctlr;
+#endif
 
     /* Highest guest frame that's ever been mapped in the p2m */
     gfn_t max_mapped_gfn;
diff --git a/xen/arch/arm/mpu/p2m.c b/xen/arch/arm/mpu/p2m.c
index f7fb58ab6aa8..f3ca8a4ab35f 100644
--- a/xen/arch/arm/mpu/p2m.c
+++ b/xen/arch/arm/mpu/p2m.c
@@ -28,10 +28,63 @@ void p2m_dump_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
+static int p2m_alloc_table(struct domain *d)
+{
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+    void *table = alloc_xenheap_pages(P2M_ROOT_ORDER, 0);
+    unsigned int i;
+
+    if ( !table )
+    {
+        printk(XENLOG_G_ERR "%pd: p2m: unable to allocate P2M MPU mapping table\n",
+               d);
+        return -ENOMEM;
+    }
+
+    p2m->root = virt_to_page(table);
+
+    for ( i = 0; i < P2M_ROOT_PAGES; i++ )
+        clear_page(table + (i * PAGE_SIZE));
+
+    return 0;
+}
+
 int p2m_init(struct domain *d)
 {
-    BUG_ON("unimplemented");
-    return -EINVAL;
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+    int rc = 0;
+    unsigned int cpu;
+
+    rwlock_init(&p2m->lock);
+
+    p2m->vmid = INVALID_VMID;
+    p2m->max_mapped_gfn = _gfn(0);
+    p2m->lowest_mapped_gfn = _gfn(ULONG_MAX);
+
+    p2m->default_access = p2m_access_rwx;
+    /* mem_access is NOT supported on MPU system. */
+    p2m->mem_access_enabled = false;
+
+    /* Ensure that the type chosen is large enough for MAX_VIRT_CPUS. */
+    BUILD_BUG_ON((1 << (sizeof(p2m->last_vcpu_ran[0]) * 8)) < MAX_VIRT_CPUS);
+    BUILD_BUG_ON((1 << (sizeof(p2m->last_vcpu_ran[0]) * 8)) < INVALID_VCPU_ID);
+
+    for_each_possible_cpu(cpu)
+        p2m->last_vcpu_ran[cpu] = INVALID_VCPU_ID;
+
+    /*
+     * "Trivial" initialization is now complete. Set the backpointer so that
+     * p2m_teardown() and related functions know to do something.
+     */
+    p2m->domain = d;
+
+    rc = p2m_alloc_vmid(d);
+    if ( rc )
+        return rc;
+
+    p2m->vsctlr = ((register_t)p2m->vmid << VSCTLR_VMID_SHIFT);
+
+    return p2m_alloc_table(d);
 }
 
 void p2m_save_state(struct vcpu *p)
@@ -46,7 +99,20 @@ void p2m_restore_state(struct vcpu *n)
 
 void p2m_final_teardown(struct domain *d)
 {
-    BUG_ON("unimplemented");
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+
+    /* p2m not actually initialized */
+    if ( !p2m->domain )
+        return;
+
+    if ( p2m->root )
+        free_xenheap_pages(page_to_virt(p2m->root), P2M_ROOT_ORDER);
+
+    p2m->root = NULL;
+
+    p2m_free_vmid(d);
+
+    p2m->domain = NULL;
 }
 
 bool p2m_resolve_translation_fault(struct domain *d, gfn_t gfn)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed May 13 12:42:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 12:42:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307954.1579508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN8uX-0000aB-2s; Wed, 13 May 2026 12:42:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307954.1579508; Wed, 13 May 2026 12:42:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN8uW-0000a0-Vn; Wed, 13 May 2026 12:42:00 +0000
Received: by outflank-mailman (input) for mailman id 1307954;
 Wed, 13 May 2026 12:41:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <luca.fancellu@arm.com>) id 1wN8uV-0000Z6-BS
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 12:41:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN8uU-00E9Ns-OZ
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:41:58 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a04718b-5cb7-0a2a0a5109dd-0a2a450b9894-26
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 14:41:58 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a047195-212f-0a2a450b0019-d98c6eac9412-1
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 14:41:58 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 95A8B165C;
 Wed, 13 May 2026 05:41:51 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 37A433F7B4;
 Wed, 13 May 2026 05:41:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1778676116; bh=aOA8pGXM8+sNDr47EDKPkNf3yIEB9x8YW7eu8Tal1Kk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Sbj9hQxV4DZBvt+sGnpkvCwe9W8Hot25QZ0Hzl5ktAtaVH9pCv559w5MUAsdLXQUK
	 rTEy/qecPIIjbiEw5HWtHFLieOaD6g04RyrWrILRuOhllXLE2/Emx+RsVJup3Ai8Bb
	 /VmXGNk6gFSFe276oNKV8Zu9b9IJzFikpjIuT41I=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Harry Ramsey <harry.ramsey@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	"Oleksii Kurochko" <oleksii.kurochko@gmail.com>
Subject: [PATCH v7 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree property for domains
Date: Wed, 13 May 2026 13:41:37 +0100
Message-Id: <20260513124138.275290-3-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260513124138.275290-1-luca.fancellu@arm.com>
References: <20260513124138.275290-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1778676118-2007BF3B-907EDB15/0/0
X-purgate-type: clean
X-purgate-size: 11210

From: Harry Ramsey <harry.ramsey@arm.com>

Add a new device tree property `v8r_el1_msa` to select the MSA (memory
system architecture) at EL1 for Armv8-R architecture: MPU or MMU, the
former is the default if the property is not passed.

Implement the dom0less path to parse the new device tree property, add
a new domctl hypercall input parameter `v8r_el1_msa` for arm and
add the sanitisation in arch_sanitise_domain_config(), the parameter
is intended to be used on CONFIG_MPU systems and returns an error if
selected for MMU.

While there, add explicit padding and check that it's zero during
arch domain config sanitisation, given the breaking change, bump the
XEN_DOMCTL_INTERFACE_VERSION.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
v7:
 - Refactor domu_dt_v8r_el1_msa_parse() and v8r_el1_msa_domain_sanitise_config()
 - remove unused headers from mpu/{arm32,arm64}/mm.c
 - remove has_v8r_vmsa_support() stub from mpu/arm32/mm.c and use the one in
   asm/domain_build.h
v6:
 - Add explicit padding to `struct xen_arch_domainconfig` and check it
 - Provide common v8r_el1_msa_domain_sanitise_config() for MMU/MPU
 - During domu_dt_v8r_el1_msa_parse() set PMSA when property not present
 - constify *node in domu_dt_v8r_el1_msa_parse()
 - Print full path of the node in domu_dt_v8r_el1_msa_parse() error msgs
 - typo fixing
v5:
 - follow the way domu_dt_sci_parse and ARM_SCI is doing, but
   return error if property is present in MMU systems.
 - Align the commit message on the new changes
 - fix documentation
 - fix multiline comment
 - drop the explicit padding from struct xen_arch_domainconfig
v4:
- Rework the patch to have the v8r_el1_msa input parameter more
  enclosed in the Armv8-A (mmu)/Armv8-R (mpu) space.
v3:
- Improve commit message and device tree property description
- Remove macro protection
- Remove unused function is_mpu_domain
- Code formatting
---
 docs/misc/arm/device-tree/booting.txt   | 14 ++++++
 xen/arch/arm/dom0less-build.c           | 62 +++++++++++++++++++++++++
 xen/arch/arm/domain.c                   | 37 +++++++++++++++
 xen/arch/arm/include/asm/domain.h       |  4 ++
 xen/arch/arm/include/asm/domain_build.h | 10 ++++
 xen/arch/arm/mpu/arm64/mm.c             |  5 ++
 xen/include/public/arch-arm.h           |  7 +++
 xen/include/public/domctl.h             |  4 +-
 8 files changed, 141 insertions(+), 2 deletions(-)

diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
index 977b4286082f..f73839df090b 100644
--- a/docs/misc/arm/device-tree/booting.txt
+++ b/docs/misc/arm/device-tree/booting.txt
@@ -322,6 +322,20 @@ with the following properties:
     Should be used together with scmi-smc-passthrough Xen command line
     option.
 
+- v8r_el1_msa
+
+    A string property specifying whether, on Armv8-R systems at EL1, a domain
+    should use PMSAv8 (MPU) or VMSAv8 (MMU).
+
+    - "mmu"
+    Enables VMSAv8 at EL1. This requires hardware support and is only
+    optionally available on AArch64. Not supported on AArch32.
+
+    - "mpu"
+    Enables PMSAv8 at EL1. This is the default behavior when the property is
+    not passed. This configuration requires static allocation (xen,static-mem)
+    and direct mapping (direct-map).
+
 Under the "xen,domain" compatible node, one or more sub-nodes are present
 for the DomU kernel and ramdisk.
 
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 52cf788a45ea..3f48f742260b 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -302,6 +302,65 @@ static int __init domu_dt_sci_parse(struct dt_device_node *node,
     return 0;
 }
 
+static int __init
+domu_dt_v8r_el1_msa_parse(const struct dt_device_node *node,
+                          struct xen_domctl_createdomain *d_cfg,
+                          unsigned int flags)
+{
+    const char *value;
+    int ret;
+
+    if ( !IS_ENABLED(CONFIG_MPU) )
+    {
+        d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE;
+
+        if ( !dt_property_read_bool(node, "v8r_el1_msa") )
+            return 0;
+
+        printk(XENLOG_ERR
+               "v8r_el1_msa not supported on this build for domain %s\n",
+               dt_node_full_name(node));
+        return -EINVAL;
+    }
+
+    ret = dt_property_read_string(node, "v8r_el1_msa", &value);
+    /* Property absent: PMSA is the default */
+    if ( ret == -EINVAL )
+        value = "mpu";
+    else if ( ret )
+        return ret;
+
+    if ( !strcmp(value, "mpu") )
+    {
+        if ( !(flags & CDF_staticmem) || !(flags & CDF_directmap) )
+        {
+            printk(XENLOG_ERR
+                   "v8r_el1_msa=mpu requires static-mem and direct-map for domain %s\n",
+                   dt_node_full_name(node));
+            return -EINVAL;
+        }
+        d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA;
+        return 0;
+    }
+
+    if ( !strcmp(value, "mmu") )
+    {
+        if ( !has_v8r_vmsa_support() )
+        {
+            printk(XENLOG_ERR
+                   "v8r_el1_msa=mmu unsupported by platform for domain %s\n",
+                   dt_node_full_name(node));
+            return -EINVAL;
+        }
+        d_cfg->arch.v8r_el1_msa = XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA;
+        return 0;
+    }
+
+    printk(XENLOG_ERR "v8r_el1_msa value '%s' not valid for domain %s\n",
+           value, dt_node_full_name(node));
+    return -EINVAL;
+}
+
 int __init arch_parse_dom0less_node(struct dt_device_node *node,
                                     struct boot_domain *bd)
 {
@@ -315,6 +374,9 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
     if ( domu_dt_sci_parse(node, d_cfg) )
         panic("Error getting SCI configuration\n");
 
+    if ( domu_dt_v8r_el1_msa_parse(node, d_cfg, flags) )
+        panic("Error getting v8r_el1_msa configuration\n");
+
     if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
     {
         int vpl011_virq = GUEST_VPL011_SPI;
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 26380a807cad..baa3a5d7086c 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -538,6 +538,25 @@ void vcpu_switch_to_aarch64_mode(struct vcpu *v)
     v->arch.hcr_el2 |= HCR_RW;
 }
 
+static bool v8r_el1_msa_domain_sanitise_config(
+    const struct xen_domctl_createdomain *config)
+{
+    switch ( config->arch.v8r_el1_msa )
+    {
+    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE:
+        return !IS_ENABLED(CONFIG_MPU);
+
+    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA:
+        return IS_ENABLED(CONFIG_MPU);
+
+    case XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA:
+        return IS_ENABLED(CONFIG_MPU) && IS_ENABLED(CONFIG_ARM_64);
+
+    default:
+        return false;
+    }
+}
+
 int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
 {
     unsigned int max_vcpus;
@@ -554,6 +573,14 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
         return -EINVAL;
     }
 
+    /* Check config structure padding */
+    if ( config->arch.pad )
+    {
+        dprintk(XENLOG_INFO,
+                "Invalid domain configuration during domain creation\n");
+        return -EINVAL;
+    }
+
     /* Check feature flags */
     if ( sve_vl_bits > 0 )
     {
@@ -630,6 +657,12 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
         return -EINVAL;
     }
 
+    if ( !v8r_el1_msa_domain_sanitise_config(config) )
+    {
+        dprintk(XENLOG_INFO, "Unsupported v8r_el1_msa value\n");
+        return -EINVAL;
+    }
+
     return sci_domain_sanitise_config(config);
 }
 
@@ -722,6 +755,10 @@ int arch_domain_create(struct domain *d,
     d->arch.sve_vl = config->arch.sve_vl;
 #endif
 
+#ifdef CONFIG_MPU
+    d->arch.v8r_el1_msa = config->arch.v8r_el1_msa;
+#endif
+
     if ( (rc = sci_domain_init(d, config)) != 0 )
         goto fail;
 
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index b24f02d269be..ac7300e41fcd 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -112,6 +112,10 @@ struct arch_domain
 #endif
 
     struct resume_info resume_ctx;
+
+#ifdef CONFIG_MPU
+    uint8_t v8r_el1_msa;
+#endif
 }  __cacheline_aligned;
 
 struct arch_vcpu
diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
index 6674dac5e2f8..df8b361b3da5 100644
--- a/xen/arch/arm/include/asm/domain_build.h
+++ b/xen/arch/arm/include/asm/domain_build.h
@@ -19,6 +19,16 @@ int prepare_acpi(struct domain *d, struct kernel_info *kinfo);
 
 int add_ext_regions(unsigned long s_gfn, unsigned long e_gfn, void *data);
 
+#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
+/* Utility function to determine if an Armv8-R processor supports VMSA. */
+bool has_v8r_vmsa_support(void);
+#else
+static inline bool has_v8r_vmsa_support(void)
+{
+    return false;
+}
+#endif /* CONFIG_MPU */
+
 #endif
 
 /*
diff --git a/xen/arch/arm/mpu/arm64/mm.c b/xen/arch/arm/mpu/arm64/mm.c
index ed643cad4073..b07e729a7d05 100644
--- a/xen/arch/arm/mpu/arm64/mm.c
+++ b/xen/arch/arm/mpu/arm64/mm.c
@@ -32,6 +32,11 @@
         break;                                                  \
     }
 
+bool has_v8r_vmsa_support(void)
+{
+    return system_cpuinfo.mm64.msa_frac == MM64_MSA_FRAC_VMSA_SUPPORT;
+}
+
 /*
  * Armv8-R supports direct access and indirect access to the MPU regions through
  * registers:
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index cd563cf70684..7d6f87e8b2b1 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -330,6 +330,10 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
 #define XEN_DOMCTL_CONFIG_ARM_SCI_NONE      0
 #define XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC  1
 
+#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_NONE    0
+#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_PMSA    1
+#define XEN_DOMCTL_CONFIG_ARM_V8R_EL1_MSA_VMSA    2
+
 struct xen_arch_domainconfig {
     /* IN/OUT */
     uint8_t gic_version;
@@ -355,6 +359,9 @@ struct xen_arch_domainconfig {
     uint32_t clock_frequency;
     /* IN */
     uint8_t arm_sci_type;
+    /* IN */
+    uint8_t v8r_el1_msa;
+    uint16_t pad;
 };
 #endif /* __XEN__ || __XEN_TOOLS__ */
 
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 8f6708c0a7cd..23124547f347 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -30,9 +30,9 @@
  * fields) don't require a change of the version.
  * Stable ops are NOT covered by XEN_DOMCTL_INTERFACE_VERSION!
  *
- * Last version bump: Xen 4.19
+ * Last version bump: Xen 4.22
  */
-#define XEN_DOMCTL_INTERFACE_VERSION 0x00000017
+#define XEN_DOMCTL_INTERFACE_VERSION 0x00000018
 
 /*
  * NB. xen_domctl.domain is an IN/OUT parameter for this operation.
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed May 13 12:44:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 12:44:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1307981.1579527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN8xB-00025Y-Tg; Wed, 13 May 2026 12:44:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1307981.1579527; Wed, 13 May 2026 12:44:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN8xB-00025R-QL; Wed, 13 May 2026 12:44:45 +0000
Received: by outflank-mailman (input) for mailman id 1307981;
 Wed, 13 May 2026 12:44:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wN8x9-00025L-MO
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 12:44:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN8x8-00D6k6-W7
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:44:43 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a047226-bab6-0a2a0a5309dd-0a2a450297b4-48
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 14:44:42 +0200
Received: from [40.93.198.33]
 (helo=CY7PR03CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a047238-af86-0a2a45020019-285dc621b122-4
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 14:44:42 +0200
Received: from BN9PR03CA0283.namprd03.prod.outlook.com (2603:10b6:408:f5::18)
 by MN2PR12MB4045.namprd12.prod.outlook.com (2603:10b6:208:1d6::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 12:44:33 +0000
Received: from BN3PEPF0000B077.namprd04.prod.outlook.com
 (2603:10b6:408:f5:cafe::42) by BN9PR03CA0283.outlook.office365.com
 (2603:10b6:408:f5::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.11 via Frontend Transport; Wed,
 13 May 2026 12:44:30 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN3PEPF0000B077.mail.protection.outlook.com (10.167.243.122) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Wed, 13 May 2026 12:44:29 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 07:44:29 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May
 2026 07:44:29 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 13 May 2026 07:44:27 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dcYCbzrigERLMJ5codk/tBuyv1Tv6DSZesWj5i0+JiWMq3KTjWHjBUmlATkHrid4ugXP5QEdxWq2gajF344VLJbKyY247daHRJ4OBlKpCkbKfZGL7aVk6MgoLPy0+qSF4ntrDxGryIKK2QgXCd4gUum/t1wCBp/lfPteikPl11ZoMM+df6sVDUA17VxWM27taqyrDYeJsdCJHxKMG4KbtiYatXQpp9dCJl4Gn8at5/d6LusCIsox7ClRrpfp+xCbcOBfZO3WaV8WpWWr1E4cNkG9WK3qjX6HeFOImZtiCwqpW81i9atCHei6pKlxB9pGVTYKIecx4JSq1rrb7xgJfw==
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=xy5TRS+D5s54Wr780fF87hz1xDyTSeCMmrSyRjQnrxY=;
 b=eFOc/voTWdRH/4eJrVXwZjXKgwys7QY6t+36ho2BnpZbH8WwwRngJ7pWvydp/MdWndfNdxM2QDb7SbC/QDFd9FOet3PIPQZGoinfvtf9O0+D+GRZUg439aYGSxnLgUv1QtLRWwLKoz91a6Yc6tbJvgNSx5+g+BjyRSoS78LlXRS/HZ7q57B6NxQ75MuosAu5Q9AWh1dAxYkOBW98kNAlR7ATyz9FAtmKETiz8AUfcUBsaViYeZNWEMTKZTFFfmiReBjWsbVjWtp/2FGuCKJl4CI9FzzSreu/EsMDNzWG/c7FG2TGggvIC8LLHVjr9oWsx2jWaObvW76XFo/ZCzsghQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xy5TRS+D5s54Wr780fF87hz1xDyTSeCMmrSyRjQnrxY=;
 b=ZrOpLqrNX7wohzUOZmO9obwcLp6f+JarwO/6L/0yyOovSDAIxbmymioaHYQcKMdGjWgZqoy6ZWrOBHXlpPOukhZywrRQRVSxS207zMzMyodOIRkdhwqPLn81AQCjFwLfOtWTo0XdheJRgmb9DyoVTPCxNHoSRKxGwau+ofAuB0I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <740cca52-656f-4c82-b979-58f2f5874c91@amd.com>
Date: Wed, 13 May 2026 14:44:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
To: Luca Fancellu <luca.fancellu@arm.com>, <xen-devel@lists.xenproject.org>
CC: Harry Ramsey <harry.ramsey@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>
References: <20260513124138.275290-1-luca.fancellu@arm.com>
 <20260513124138.275290-3-luca.fancellu@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260513124138.275290-3-luca.fancellu@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B077:EE_|MN2PR12MB4045:EE_
X-MS-Office365-Filtering-Correlation-Id: 40457883-8f05-4dcf-f93f-08deb0ed6028
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|1800799024|7416014|82310400026|376014|11063799003|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	pwVzFZm3/i507lTL4HGJRYLQ8qchTrw0CuFiXh6foaltUUCuTEpXGWZjaFZgD7nDHSdYSywGh8WZTjmp3/D8jTSZWtCJCIJ+5M4hSX9SO+B1VrtiaKk/AM8CjcI9iDIzVns/6n+/8fiuqBdUrOmO50sWAPx1WlvBkA7KpoP4+RXXLn9dtASMkSAU2x8yWx4I14ARkQGk6GVWrBELc/I775NCWnP9PSPA5W+AI7MMVGd4ZXemyHuBbIIwFDj/SyvbYvA2vE4OTgFiiaHWMm1MTuvWDD6YxJYMlR3xe43IdwdI0O5tjVWh2WALaXBu1n53PiD+7ahhiX8iHGXspZPSuwdT7SAp23y1Pmy9ufrUnVsbuAmQEPftVPwdbQZiP31B3cnWRdUroqst3s+0pz3gvlNhi//28vTnEY6+Z+SBlE/xAWSq+iTnLOCiIpFsHM2R7pQMkthrGYSvkhcFtSW7fvwekpgpNG77bQMOP058GoJQPH+8u/T8vuJa4jRgEDZx+mEnUSQm9/EEEpgxploOX00Squsp+hMBGpSIiXcDliAXPvboDYcS/mxDbECj419H75K9V9ACXU4QkSV83B3rQ/bW20UokvconCWmw/B8lVvyH6Spay8XXUNO+Za1vWGijSXBBTcgu3DyysIyIs16HNNX7bM2OIn60qc4wCEGji3q+LynovsIcQ+lCrrDgzfjGYNEOb84tg5rtE8GXp2LBIdw25yeJpeTC6F4SSYgO6E=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(7416014)(82310400026)(376014)(11063799003)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	vhRnthjz/HTNzsJPbxLc/a8JDgAXXykPYCo7rcpyBsC5sfNmm7bJE51DZIsRuEVoo04VDcgYQnjZ4Z3yULuLgn0NIpLFZ0wfgfTUj4tl7ZXBYv+XqW9lxC4R2G+sYQFBwPyGXu7bC2Z4PdN4cYwnpqULkeBG3fQVWBMsIxhefXlIg2USfU+epRYSUGZ4rWNJFTzJ9u9PxDdXyBC9JPLLx2AhoWfRlPpsOs7wg8rKuYVtEm/4hlk5lX9XXZphz2ZIfar9jJ/31EJwmnkP0dis5QXV1qQNg7MgDr89Yn5Fi0OAR1FOnl/6dQMs3FfMl16NRHgJOIJdlvIFlxTB3A8ZITdzo1SvKSh9L77aJbIG9otwN1c64CP5qB1njrO4r64KZahlr/LD8PNyRkIw5RkDtDgMq+b418BMelJStNi1mCR4LdpmrZ+GP63wyHC0lFQI
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 12:44:29.9802
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 40457883-8f05-4dcf-f93f-08deb0ed6028
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B077.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4045
X-purgate-ID: tlsNG-720697/1778676282-A877A161-B9486FA9/0/0
X-purgate-type: clean
X-purgate-size: 964



On 13-May-26 14:41, Luca Fancellu wrote:
> From: Harry Ramsey <harry.ramsey@arm.com>
> 
> Add a new device tree property `v8r_el1_msa` to select the MSA (memory
> system architecture) at EL1 for Armv8-R architecture: MPU or MMU, the
> former is the default if the property is not passed.
> 
> Implement the dom0less path to parse the new device tree property, add
> a new domctl hypercall input parameter `v8r_el1_msa` for arm and
> add the sanitisation in arch_sanitise_domain_config(), the parameter
> is intended to be used on CONFIG_MPU systems and returns an error if
> selected for MMU.
> 
> While there, add explicit padding and check that it's zero during
> arch domain config sanitisation, given the breaking change, bump the
> XEN_DOMCTL_INTERFACE_VERSION.
> 
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Wed May 13 13:42:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 13:42:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308004.1579535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN9r8-0002Hf-2b; Wed, 13 May 2026 13:42:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308004.1579535; Wed, 13 May 2026 13:42:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wN9r7-0002HY-W9; Wed, 13 May 2026 13:42:33 +0000
Received: by outflank-mailman (input) for mailman id 1308004;
 Wed, 13 May 2026 13:41:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <zhangxf344@gmail.com>) id 1wN9pq-0002Eq-EE
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:41:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN9pp-005092-R5
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 15:41:13 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <zhangxf344@gmail.com>)
 id 6a047f6f-e002-0a2a0a5209dd-0a2a450ae058-48
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 15:41:13 +0200
Received: from [209.85.208.68] (helo=mail-ed1-f68.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <zhangxf344@gmail.com>)
 id 6a047f79-56b3-0a2a450a0019-d155d044acfb-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 15:41:13 +0200
Received: by mail-ed1-f68.google.com with SMTP id
 4fb4d7f45d1cf-67e9b3037dcso9851971a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 06:41:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="To:Subject:Message-ID:Date:From:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778679673; cv=none;
        d=google.com; s=arc-20240605;
        b=ZHeUY7u9qXgAs50a5I2iUYV1nDG1VvW/87MLNTQPBg8EGDXZLSDpk4fBuXPgVkyfry
         uSngoA/Kb6pYdnh5EI5nEfXMLTxz8gLW+9LglXu3RDl4ttXZhM5FaN8buAJ5tP+JTLSJ
         tma7UpB48305WEx3zDK1GKDAEsx2h7uju1KoK6FpqQQ92QkNl9O7r5bSgXedE+dlQ/JQ
         c/nvSKcCalF8oKDST2RkbsrFgm4eYMIParNMYOLDSHiM4bjXh/XV0gxPgPvZsai3cJFZ
         SR9K03H143Arwcry/pY8cJSHm/bm5gQ5kE5iOBI6Z1EbNQFt6cjrHsdJNH20YXwJBLau
         hwSQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=to:subject:message-id:date:from:mime-version:dkim-signature;
        bh=0bcFKawoTpQ91l/r41fpmktorNSztoRiwIetTvfC76o=;
        fh=quJY5mN2l4ZorNvEoO9ngNXalhEvTdq/+W8CvHWhECs=;
        b=kCXYuAYGVgJZjPfO+AG6lN6ZeDgz5W0UgHYT4eR9DzC+a9W/gn1lJ4RgpTFcv8q/f6
         TdZy1xMjZL5hONxcvh6ZJuXkLbQMvflzYhIFqIXOwuMKn+hn+tYy9WnpBGfim5FpGwhW
         7H8EwYVNU7R9ML4HNCh7JD1AsH4ZfzLpIrIFZLBFvcIH4g8g77pisZMEtrwAbnJjbPrS
         DbpMKqXatpfo7e4vCPhjm3njQrXhAPJt1+W9vXA6PW7FeQbzT/Z1oAUbe0SHKAd9shnk
         XqMW6RoI3tpErn9/QQXByJDatPrrrYcaGFa2EXURowtfIBa0z1ZgTZdLhcvWhOI0XeHK
         Jwug==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778679673; x=1779284473; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=0bcFKawoTpQ91l/r41fpmktorNSztoRiwIetTvfC76o=;
        b=JoHBjQHBu+U1rLGpLW2eEFjYCBA1YilE3MpZaY0gET1VW2sWXz/KpWnjUERenrLoJC
         ga+MMSeNtaw7J5VCMx3iDe4q+XEmT37CvjZsHnS/OAXoKcdji1JBKHYXIPp813ErLRbj
         JotoZ+wJVaVgwRezNGzUFA9Cl7m4wTiuNcotVotYnuUxaCXKHKYbYAhWp8XE7en/s18e
         jwm8AD49IaudpEoqis+YWbV+uSkvIROe5qTldDbePSu4RCHvpKunYN2gha5T3A4itU4B
         ncVPBERTHi1b5gsV61A5LSprQdAqHNCuIfZoZgEnPhOLGaIz8joa1rayxfkNz/mXvF3r
         v5Dg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778679673; x=1779284473;
        h=to:subject:message-id:date:from:mime-version:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=0bcFKawoTpQ91l/r41fpmktorNSztoRiwIetTvfC76o=;
        b=R99kXotQ3IhPpr6VlwC1JCLVyudJuWhPUOREGkxAG16QwU3pjZ4bpuOPeHLm28StDa
         2Q7UiKqSAfVOQxcn2hgLSW0WKcPFyuDhg+J/UI6Htj0y1Wv/3LVMR2UNQ8jlpq13gEoh
         +zJH6KPSY/x1oJQQNHw4Wl1obTQhPTLVmxQxgo78qgR5jRyFCPy8RLCQvoNQ2VvwN6ks
         9jlgN/IyVC4wP535RsNUBBZkvXwQr5ASNiPz3etGcwEBUNDwBz3uWoTPm9uwAnIUxreH
         J7jQWwWPPk8yg6TwgPTzXTKfGPhJPXn1tIlXadfJ0rVmq3ukCcLH6jfOypuQV40mpASm
         ulAA==
X-Gm-Message-State: AOJu0YxMER0iXV9hnldSlFr/+D/Uwz3N6p1Yjy4cI89rPf7SAp/vSon5
	+8bgoSJHIkPpvzcADLmcWi2BIxIfaBodhWYlXqtfDHietXt6UyqqO4UrMJxfEieNDLjyt2UhISC
	ChmJFP8q7J2xcQyEzXHSSuhdgfG0DGqZ+HKAtYcAbNbs=
X-Gm-Gg: Acq92OF0LMcMS+/e02Agfj2wMDJTWHWI0ZZMiKUe0rIaN9u/fSXAVHetilTDTvTiWD0
	U7hLEgIH+2rnQ5TsQPnokYOEdPSGa4lTy/e+DI74OUnZEnfNYMH1RWdyEHSqbbIVuIqZsnuYQvQ
	jJXDkhb/Pt2gGAp3ur6sBZItGSPFfeW+jkRkH1I7FUUfYua7TaEabWWqQghh1Ul422tfWWFWS1F
	9YMoew95hBlYbxOOLJMynVh5zpetTSarlzjtAJ5AfXLKR+lVjS8EHRHQ+fF4ybLbBvyo65LH8sh
	WbHt7e4NHyyf6rB7qYOFYVbLPzlWFRaL+L98wg==
X-Received: by 2002:a17:907:6b0e:b0:bd2:149b:1f99 with SMTP id
 a640c23a62f3a-bd3bfb7df2emr245699266b.14.1778679672523; Wed, 13 May 2026
 06:41:12 -0700 (PDT)
MIME-Version: 1.0
From: xf zhang <zhangxf344@gmail.com>
Date: Wed, 13 May 2026 21:41:01 +0800
X-Gm-Features: AVHnY4KzzXxz915eiSwR3akIJUf1hq94xBY99YkXV9C-mH6tCVqEOJZNNNn4kEw
Message-ID: <CALZJF5PMdce3dxDayqiKChBj3xf6cD+Bp_qbtVxoUL=USSQfOQ@mail.gmail.com>
Subject: A student seeking help: HVMI instruction emulation crashes on Windows
 guest (tried many approaches, still stuck)
To: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000000cd1bd0651b322b0"
X-purgate-ID: tlsNG-4011c0/1778679673-72B778B7-A07AB54C/0/0
X-purgate-type: clean
X-purgate-size: 28898

--0000000000000cd1bd0651b322b0
Content-Type: text/plain; charset="UTF-8"

Dear HVMI maintainers and Xen community,

Hello! I am a China student currently learning and researching Virtual
Machine Introspection (VMI) technology. I have been working with HVMI and
encountered several persistent issues. I would like to kindly ask if there
are any known solutions or workarounds.

Background: To test and reproduce these issues, I have kept my Windows
guest running for several days and tried many different approaches
(including source code modifications and configuration changes).
Unfortunately, nothing has worked so far. The issues keep recurring, and I
am truly stuck. I would greatly appreciate your guidance.

Please forgive me if I have misunderstood anything.
------------------------------
My Environment
Item Information
Host Linux (Ubuntu [20.04])
Guest Windows ([Windows 10_17763_x64])
Virtualization [Xen]


------------------------------
Issues Encountered

When using HVMI to introspect a Windows guest, the introcore module crashes
when handling certain instructions due to "spills in the next entry". Here
are the specific issues:
Issue 1: MOVZX causes process crash
text

[ERROR] Access at 1aafa7 spills in the next entry, size 4, instruction 'MOVZX'
[ERROR] IntHookPtwEmulateWrite failed: 0xe1000508
process 48416 crashed

Issue 2: PUSH causes introspection engine shutdown
text

[ERROR] Access at 1aa975 spills in the next entry, size 8, instruction 'PUSH'
[ERROR] IntHookPtwEmulateWrite failed: 0xe1000508
Introcore shutdown complete

Issue 3: CMP instruction not supported
text

[ERROR] Instruction 'CMP dword ptr [rbx+0x108], esi' not supported
Introcore shutdown complete

Issue 4: Agent deployment fails (cascading effect)
text

[WARNING] Agent bdQL9CeR.exe will not be deployed as the guest is NOT
initialized!

------------------------------
What I Have Tried (all failed)

I have spent several days trying the following approaches, but the issues
persist:

   1.

   Source code modifications: Commented out IntBugCheck(), forced
   INT_STATUS_SUCCESS return
   2.

   Configuration changes: Tried disabling certain hook types, modified EPT
   protection parameters
   3.

   Restarting services: Restarted hvmid and the guest VM multiple times
   4.

   Different Windows versions: Tried both Windows 10 and Windows 7
   5.

   Documentation search: Searched for HVMI-related resources but found no
   similar solutions

------------------------------
My Questions

   1.

   Are there any known solutions or patches for these issues?
   2.

   Are there any plans to fix these issues in future releases?
   3.

   If no official fix is available yet, could you suggest any temporary
   workarounds? (e.g., disabling certain hook types, changing configuration
   parameters, etc.)
   4.

   Do you have any advice for a student learning HVMI and VMI technology?

------------------------------

Thank you for your open-source work on HVMI and the Xen community, which
has given students like me the opportunity to learn and explore VMI
technology. I look forward to your reply.

Best regards,

[name]Xiaofei Zhang
[School Name] Beijing University of Posts and Telecommunications

--0000000000000cd1bd0651b322b0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><p style=3D"margin:16px 0px;color:rgb(15,17,21);font-famil=
y:quote-cjk-patch,Inter,system-ui,-apple-system,BlinkMacSystemFont,&quot;Se=
goe UI&quot;,Roboto,Oxygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Hel=
vetica Neue&quot;,sans-serif;font-size:16px">Dear HVMI maintainers and Xen =
community,</p><p style=3D"margin:16px 0px;color:rgb(15,17,21);font-family:q=
uote-cjk-patch,Inter,system-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe=
 UI&quot;,Roboto,Oxygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Helvet=
ica Neue&quot;,sans-serif;font-size:16px">Hello! I am a China student curre=
ntly learning and researching Virtual Machine Introspection (VMI) technolog=
y. I have been working with HVMI and encountered several persistent issues.=
 I would like to kindly ask if there are any known solutions or workarounds=
.</p><p style=3D"margin:16px 0px;color:rgb(15,17,21);font-family:quote-cjk-=
patch,Inter,system-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;=
,Roboto,Oxygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&=
quot;,sans-serif;font-size:16px"><span style=3D"font-weight:600">Background=
</span>: To test and reproduce these issues, I have kept my Windows guest r=
unning for=C2=A0<span style=3D"font-weight:600">several days</span>=C2=A0an=
d tried many different approaches (including source code modifications and =
configuration changes). Unfortunately, nothing has worked so far. The issue=
s keep recurring, and I am truly stuck. I would greatly appreciate your gui=
dance.</p><p style=3D"margin:16px 0px;color:rgb(15,17,21);font-family:quote=
-cjk-patch,Inter,system-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&=
quot;,Roboto,Oxygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica =
Neue&quot;,sans-serif;font-size:16px">Please forgive me if I have misunders=
tood anything.</p><hr style=3D"background:none 0% 0%/auto repeat scroll pad=
ding-box border-box rgba(0,0,0,0.1);border-width:medium;border-style:none;b=
order-color:currentcolor;height:1px;margin:32px 0px;font-family:quote-cjk-p=
atch,Inter,system-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,=
Roboto,Oxygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&q=
uot;,sans-serif;font-size:16px"><h2 style=3D"font-variant:normal;font-size-=
adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:nor=
mal;font-size:22px;line-height:32px;font-family:quote-cjk-patch,Inter,syste=
m-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Oxygen,Ub=
untu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sans-serif;=
margin:32px 0px 16px;color:rgb(15,17,21)">My Environment</h2><div style=3D"=
overflow-x:auto;color:rgb(15,17,21);font-family:quote-cjk-patch,Inter,syste=
m-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Oxygen,Ub=
untu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sans-serif;=
font-size:16px"><div style=3D"width:752px;height:0px;opacity:1"><div style=
=3D"padding:2px 0px;height:10px"></div><div style=3D"padding:0px 2px;width:=
10px"></div></div><table width=3D"752" height=3D"215" style=3D"border-colla=
pse:collapse;max-width:unset"><thead><tr><th style=3D"border-bottom:1px sol=
id rgba(0,0,0,0.12);font:500 15px/25px quote-cjk-patch,Inter,system-ui,-app=
le-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Oxygen,Ubuntu,Cant=
arell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sans-serif;border-to=
p-width:medium;border-top-style:none;border-top-color:currentcolor;padding:=
10px 16px 10px 0px;text-align:left">Item</th><th style=3D"border-bottom:1px=
 solid rgba(0,0,0,0.12);font:500 15px/25px quote-cjk-patch,Inter,system-ui,=
-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Oxygen,Ubuntu,=
Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sans-serif;borde=
r-top-width:medium;border-top-style:none;border-top-color:currentcolor;padd=
ing:10px 16px;text-align:left">Information</th></tr></thead><tbody><tr><td =
style=3D"border-bottom:1px solid rgba(0,0,0,0.1);font-variant:normal;font-s=
ize-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch=
:normal;font-size:15px;line-height:25px;min-width:100px;padding:10px 16px 1=
0px 0px">Host</td><td style=3D"border-bottom:1px solid rgba(0,0,0,0.1);font=
-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settin=
gs:normal;font-stretch:normal;font-size:15px;line-height:25px;min-width:100=
px;padding:10px 0px 10px 16px">Linux (Ubuntu [20.04])</td></tr><tr><td styl=
e=3D"border-bottom:1px solid rgba(0,0,0,0.1);font-variant:normal;font-size-=
adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:nor=
mal;font-size:15px;line-height:25px;min-width:100px;padding:10px 16px 10px =
0px">Guest</td><td style=3D"border-bottom:1px solid rgba(0,0,0,0.1);font-va=
riant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:=
normal;font-stretch:normal;font-size:15px;line-height:25px;min-width:100px;=
padding:10px 0px 10px 16px">Windows ([Windows 10_17763_x64])</td></tr><tr><=
td style=3D"border-bottom:1px solid rgba(0,0,0,0.1);font-variant:normal;fon=
t-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stre=
tch:normal;font-size:15px;line-height:25px;min-width:100px;padding:10px 16p=
x 10px 0px">Virtualization</td><td style=3D"border-bottom:1px solid rgba(0,=
0,0,0.1);font-variant:normal;font-size-adjust:none;font-kerning:auto;font-f=
eature-settings:normal;font-stretch:normal;font-size:15px;line-height:25px;=
min-width:100px;padding:10px 0px 10px 16px">[Xen]</td></tr><tr><td style=3D=
"border-bottom:1px solid rgba(0,0,0,0.1);font-variant:normal;font-size-adju=
st:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;=
font-size:15px;line-height:25px;min-width:100px;padding:10px 16px 10px 0px"=
><br></td><td style=3D"border-bottom:1px solid rgba(0,0,0,0.1);font-variant=
:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:norma=
l;font-stretch:normal;font-size:15px;line-height:25px;min-width:100px;paddi=
ng:10px 0px 10px 16px"><br></td></tr></tbody></table></div><hr style=3D"bac=
kground:none 0% 0%/auto repeat scroll padding-box border-box rgba(0,0,0,0.1=
);border-width:medium;border-style:none;border-color:currentcolor;height:1p=
x;margin:32px 0px;font-family:quote-cjk-patch,Inter,system-ui,-apple-system=
,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Oxygen,Ubuntu,Cantarell,&qu=
ot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sans-serif;font-size:16px"><h=
2 style=3D"font-variant:normal;font-size-adjust:none;font-kerning:auto;font=
-feature-settings:normal;font-stretch:normal;font-size:22px;line-height:32p=
x;font-family:quote-cjk-patch,Inter,system-ui,-apple-system,BlinkMacSystemF=
ont,&quot;Segoe UI&quot;,Roboto,Oxygen,Ubuntu,Cantarell,&quot;Open Sans&quo=
t;,&quot;Helvetica Neue&quot;,sans-serif;margin:32px 0px 16px;color:rgb(15,=
17,21)">Issues Encountered</h2><p style=3D"margin:16px 0px;color:rgb(15,17,=
21);font-family:quote-cjk-patch,Inter,system-ui,-apple-system,BlinkMacSyste=
mFont,&quot;Segoe UI&quot;,Roboto,Oxygen,Ubuntu,Cantarell,&quot;Open Sans&q=
uot;,&quot;Helvetica Neue&quot;,sans-serif;font-size:16px">When using HVMI =
to introspect a Windows guest, the=C2=A0<code style=3D"box-sizing:border-bo=
x;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-=
settings:normal;font-stretch:normal;font-size:0.875em;line-height:22px;font=
-family:Menlo,Monaco,Consolas,&quot;Cascadia Mono&quot;,&quot;Ubuntu Mono&q=
uot;,&quot;DejaVu Sans Mono&quot;,&quot;Liberation Mono&quot;,&quot;JetBrai=
ns Mono&quot;,&quot;Fira Code&quot;,Cousine,&quot;Roboto Mono&quot;,&quot;C=
ourier New&quot;,Courier,sans-serif,system-ui;background-color:rgb(235,238,=
242);border-radius:6px;padding:0px 5px;display:inline-flex">introcore</code=
>=C2=A0module crashes when handling certain instructions due to &quot;spill=
s in the next entry&quot;. Here are the specific issues:</p><h3 style=3D"fo=
nt-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-sett=
ings:normal;font-stretch:normal;font-size:20px;line-height:30px;font-family=
:quote-cjk-patch,Inter,system-ui,-apple-system,BlinkMacSystemFont,&quot;Seg=
oe UI&quot;,Roboto,Oxygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Helv=
etica Neue&quot;,sans-serif;margin:32px 0px 16px;color:rgb(15,17,21)">Issue=
 1: MOVZX causes process crash</h3><div style=3D"color:rgb(15,17,21);backgr=
ound:none 0% 0%/auto repeat scroll padding-box border-box rgb(249,250,251);=
border-radius:12px;margin:16px 0px 11.43px;font-family:quote-cjk-patch,Inte=
r,system-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Ox=
ygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sans=
-serif;font-size:16px"><div style=3D"background-color:rgb(255,255,255);bord=
er-top-left-radius:12px;border-top-right-radius:12px"><div style=3D"backgro=
und:none 0% 0%/auto repeat scroll padding-box border-box rgb(249,250,251);p=
adding:0px;font-size:12.573px;line-height:12.573px;display:flex;border-top-=
left-radius:12px;border-top-right-radius:12px"><div style=3D"width:740px;pa=
dding:6px;display:flex"><div><span style=3D"font-family:Menlo,Monaco,Consol=
as,&quot;Cascadia Mono&quot;,&quot;Ubuntu Mono&quot;,&quot;DejaVu Sans Mono=
&quot;,&quot;Liberation Mono&quot;,&quot;JetBrains Mono&quot;,&quot;Fira Co=
de&quot;,Cousine,&quot;Roboto Mono&quot;,&quot;Courier New&quot;,Courier,sa=
ns-serif,system-ui;margin-left:8px;font-size:12px;line-height:18px">text</s=
pan></div></div></div></div><pre style=3D"white-space:pre-wrap;font-variant=
:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:norma=
l;font-stretch:normal;font-size:13px;line-height:22px;font-family:Menlo,Mon=
aco,Consolas,&quot;Cascadia Mono&quot;,&quot;Ubuntu Mono&quot;,&quot;DejaVu=
 Sans Mono&quot;,&quot;Liberation Mono&quot;,&quot;JetBrains Mono&quot;,&qu=
ot;Fira Code&quot;,Cousine,&quot;Roboto Mono&quot;,&quot;Courier New&quot;,=
Courier,sans-serif,system-ui;overflow:auto;word-break:break-all;padding:16p=
x;margin:0px">[ERROR] Access at 1aafa7 spills in the next entry, size 4, in=
struction &#39;MOVZX&#39;
[ERROR] IntHookPtwEmulateWrite failed: 0xe1000508
process 48416 crashed</pre></div><h3 style=3D"font-variant:normal;font-size=
-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:no=
rmal;font-size:20px;line-height:30px;font-family:quote-cjk-patch,Inter,syst=
em-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Oxygen,U=
buntu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sans-serif=
;margin:32px 0px 16px;color:rgb(15,17,21)">Issue 2: PUSH causes introspecti=
on engine shutdown</h3><div style=3D"color:rgb(15,17,21);background:none 0%=
 0%/auto repeat scroll padding-box border-box rgb(249,250,251);border-radiu=
s:12px;margin:16px 0px 11.43px;font-family:quote-cjk-patch,Inter,system-ui,=
-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Oxygen,Ubuntu,=
Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sans-serif;font-=
size:16px"><div style=3D"background-color:rgb(255,255,255);border-top-left-=
radius:12px;border-top-right-radius:12px"><div style=3D"background:none 0% =
0%/auto repeat scroll padding-box border-box rgb(249,250,251);padding:0px;f=
ont-size:12.573px;line-height:12.573px;display:flex;border-top-left-radius:=
12px;border-top-right-radius:12px"><div style=3D"width:740px;padding:6px;di=
splay:flex"><div><span style=3D"font-family:Menlo,Monaco,Consolas,&quot;Cas=
cadia Mono&quot;,&quot;Ubuntu Mono&quot;,&quot;DejaVu Sans Mono&quot;,&quot=
;Liberation Mono&quot;,&quot;JetBrains Mono&quot;,&quot;Fira Code&quot;,Cou=
sine,&quot;Roboto Mono&quot;,&quot;Courier New&quot;,Courier,sans-serif,sys=
tem-ui;margin-left:8px;font-size:12px;line-height:18px">text</span></div></=
div></div></div><pre style=3D"white-space:pre-wrap;font-variant:normal;font=
-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stret=
ch:normal;font-size:13px;line-height:22px;font-family:Menlo,Monaco,Consolas=
,&quot;Cascadia Mono&quot;,&quot;Ubuntu Mono&quot;,&quot;DejaVu Sans Mono&q=
uot;,&quot;Liberation Mono&quot;,&quot;JetBrains Mono&quot;,&quot;Fira Code=
&quot;,Cousine,&quot;Roboto Mono&quot;,&quot;Courier New&quot;,Courier,sans=
-serif,system-ui;overflow:auto;word-break:break-all;padding:16px;margin:0px=
">[ERROR] Access at 1aa975 spills in the next entry, size 8, instruction &#=
39;PUSH&#39;
[ERROR] IntHookPtwEmulateWrite failed: 0xe1000508
Introcore shutdown complete</pre></div><h3 style=3D"font-variant:normal;fon=
t-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stre=
tch:normal;font-size:20px;line-height:30px;font-family:quote-cjk-patch,Inte=
r,system-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Ox=
ygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sans=
-serif;margin:32px 0px 16px;color:rgb(15,17,21)">Issue 3: CMP instruction n=
ot supported</h3><div style=3D"color:rgb(15,17,21);background:none 0% 0%/au=
to repeat scroll padding-box border-box rgb(249,250,251);border-radius:12px=
;margin:16px 0px 11.43px;font-family:quote-cjk-patch,Inter,system-ui,-apple=
-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Oxygen,Ubuntu,Cantar=
ell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sans-serif;font-size:1=
6px"><div style=3D"background-color:rgb(255,255,255);border-top-left-radius=
:12px;border-top-right-radius:12px"><div style=3D"background:none 0% 0%/aut=
o repeat scroll padding-box border-box rgb(249,250,251);padding:0px;font-si=
ze:12.573px;line-height:12.573px;display:flex;border-top-left-radius:12px;b=
order-top-right-radius:12px"><div style=3D"width:740px;padding:6px;display:=
flex"><div><span style=3D"font-family:Menlo,Monaco,Consolas,&quot;Cascadia =
Mono&quot;,&quot;Ubuntu Mono&quot;,&quot;DejaVu Sans Mono&quot;,&quot;Liber=
ation Mono&quot;,&quot;JetBrains Mono&quot;,&quot;Fira Code&quot;,Cousine,&=
quot;Roboto Mono&quot;,&quot;Courier New&quot;,Courier,sans-serif,system-ui=
;margin-left:8px;font-size:12px;line-height:18px">text</span></div></div></=
div></div><pre style=3D"white-space:pre-wrap;font-variant:normal;font-size-=
adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:nor=
mal;font-size:13px;line-height:22px;font-family:Menlo,Monaco,Consolas,&quot=
;Cascadia Mono&quot;,&quot;Ubuntu Mono&quot;,&quot;DejaVu Sans Mono&quot;,&=
quot;Liberation Mono&quot;,&quot;JetBrains Mono&quot;,&quot;Fira Code&quot;=
,Cousine,&quot;Roboto Mono&quot;,&quot;Courier New&quot;,Courier,sans-serif=
,system-ui;overflow:auto;word-break:break-all;padding:16px;margin:0px">[ERR=
OR] Instruction &#39;CMP dword ptr [rbx+0x108], esi&#39; not supported
Introcore shutdown complete</pre></div><h3 style=3D"font-variant:normal;fon=
t-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stre=
tch:normal;font-size:20px;line-height:30px;font-family:quote-cjk-patch,Inte=
r,system-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Ox=
ygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sans=
-serif;margin:32px 0px 16px;color:rgb(15,17,21)">Issue 4: Agent deployment =
fails (cascading effect)</h3><div style=3D"color:rgb(15,17,21);background:n=
one 0% 0%/auto repeat scroll padding-box border-box rgb(249,250,251);border=
-radius:12px;margin:16px 0px 11.43px;font-family:quote-cjk-patch,Inter,syst=
em-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Oxygen,U=
buntu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sans-serif=
;font-size:16px"><div style=3D"background-color:rgb(255,255,255);border-top=
-left-radius:12px;border-top-right-radius:12px"><div style=3D"background:no=
ne 0% 0%/auto repeat scroll padding-box border-box rgb(249,250,251);padding=
:0px;font-size:12.573px;line-height:12.573px;display:flex;border-top-left-r=
adius:12px;border-top-right-radius:12px"><div style=3D"width:740px;padding:=
6px;display:flex"><div><span style=3D"font-family:Menlo,Monaco,Consolas,&qu=
ot;Cascadia Mono&quot;,&quot;Ubuntu Mono&quot;,&quot;DejaVu Sans Mono&quot;=
,&quot;Liberation Mono&quot;,&quot;JetBrains Mono&quot;,&quot;Fira Code&quo=
t;,Cousine,&quot;Roboto Mono&quot;,&quot;Courier New&quot;,Courier,sans-ser=
if,system-ui;margin-left:8px;font-size:12px;line-height:18px">text</span></=
div></div></div></div><pre style=3D"white-space:pre-wrap;font-variant:norma=
l;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font=
-stretch:normal;font-size:13px;line-height:22px;font-family:Menlo,Monaco,Co=
nsolas,&quot;Cascadia Mono&quot;,&quot;Ubuntu Mono&quot;,&quot;DejaVu Sans =
Mono&quot;,&quot;Liberation Mono&quot;,&quot;JetBrains Mono&quot;,&quot;Fir=
a Code&quot;,Cousine,&quot;Roboto Mono&quot;,&quot;Courier New&quot;,Courie=
r,sans-serif,system-ui;overflow:auto;word-break:break-all;padding:16px;marg=
in:0px">[WARNING] Agent bdQL9CeR.exe will not be deployed as the guest is N=
OT initialized!</pre></div><hr style=3D"background:none 0% 0%/auto repeat s=
croll padding-box border-box rgba(0,0,0,0.1);border-width:medium;border-sty=
le:none;border-color:currentcolor;height:1px;margin:32px 0px;font-family:qu=
ote-cjk-patch,Inter,system-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe =
UI&quot;,Roboto,Oxygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Helveti=
ca Neue&quot;,sans-serif;font-size:16px"><h2 style=3D"font-variant:normal;f=
ont-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-st=
retch:normal;font-size:22px;line-height:32px;font-family:quote-cjk-patch,In=
ter,system-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,=
Oxygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sa=
ns-serif;margin:32px 0px 16px;color:rgb(15,17,21)">What I Have Tried (all f=
ailed)</h2><p style=3D"margin:16px 0px;color:rgb(15,17,21);font-family:quot=
e-cjk-patch,Inter,system-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI=
&quot;,Roboto,Oxygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica=
 Neue&quot;,sans-serif;font-size:16px">I have spent several days trying the=
 following approaches, but the issues persist:</p><ol start=3D"1" style=3D"=
margin:16px 0px;padding-left:18px;color:rgb(15,17,21);font-family:quote-cjk=
-patch,Inter,system-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot=
;,Roboto,Oxygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue=
&quot;,sans-serif;font-size:16px"><li style=3D"margin-left:15px"><p style=
=3D"margin:0px"><span style=3D"font-weight:600">Source code modifications</=
span>: Commented out=C2=A0<code style=3D"box-sizing:border-box;font-variant=
:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:norma=
l;font-stretch:normal;font-size:0.875em;line-height:22px;font-family:Menlo,=
Monaco,Consolas,&quot;Cascadia Mono&quot;,&quot;Ubuntu Mono&quot;,&quot;Dej=
aVu Sans Mono&quot;,&quot;Liberation Mono&quot;,&quot;JetBrains Mono&quot;,=
&quot;Fira Code&quot;,Cousine,&quot;Roboto Mono&quot;,&quot;Courier New&quo=
t;,Courier,sans-serif,system-ui;background-color:rgb(235,238,242);border-ra=
dius:6px;padding:0px 5px;display:inline-flex">IntBugCheck()</code>, forced=
=C2=A0<code style=3D"box-sizing:border-box;font-variant:normal;font-size-ad=
just:none;font-kerning:auto;font-feature-settings:normal;font-stretch:norma=
l;font-size:0.875em;line-height:22px;font-family:Menlo,Monaco,Consolas,&quo=
t;Cascadia Mono&quot;,&quot;Ubuntu Mono&quot;,&quot;DejaVu Sans Mono&quot;,=
&quot;Liberation Mono&quot;,&quot;JetBrains Mono&quot;,&quot;Fira Code&quot=
;,Cousine,&quot;Roboto Mono&quot;,&quot;Courier New&quot;,Courier,sans-seri=
f,system-ui;background-color:rgb(235,238,242);border-radius:6px;padding:0px=
 5px;display:inline-flex">INT_STATUS_SUCCESS</code>=C2=A0return</p></li><li=
 style=3D"margin-left:15px;margin-top:6px"><p style=3D"margin:0px"><span st=
yle=3D"font-weight:600">Configuration changes</span>: Tried disabling certa=
in hook types, modified EPT protection parameters</p></li><li style=3D"marg=
in-left:15px;margin-top:6px"><p style=3D"margin:0px"><span style=3D"font-we=
ight:600">Restarting services</span>: Restarted=C2=A0<code style=3D"box-siz=
ing:border-box;font-variant:normal;font-size-adjust:none;font-kerning:auto;=
font-feature-settings:normal;font-stretch:normal;font-size:0.875em;line-hei=
ght:22px;font-family:Menlo,Monaco,Consolas,&quot;Cascadia Mono&quot;,&quot;=
Ubuntu Mono&quot;,&quot;DejaVu Sans Mono&quot;,&quot;Liberation Mono&quot;,=
&quot;JetBrains Mono&quot;,&quot;Fira Code&quot;,Cousine,&quot;Roboto Mono&=
quot;,&quot;Courier New&quot;,Courier,sans-serif,system-ui;background-color=
:rgb(235,238,242);border-radius:6px;padding:0px 5px;display:inline-flex">hv=
mid</code>=C2=A0and the guest VM multiple times</p></li><li style=3D"margin=
-left:15px;margin-top:6px"><p style=3D"margin:0px"><span style=3D"font-weig=
ht:600">Different Windows versions</span>: Tried both Windows 10 and Window=
s 7<br></p></li><li style=3D"margin-left:15px;margin-top:6px"><p style=3D"m=
argin:0px"><span style=3D"font-weight:600">Documentation search</span>: Sea=
rched for HVMI-related resources but found no similar solutions</p></li></o=
l><hr style=3D"background:none 0% 0%/auto repeat scroll padding-box border-=
box rgba(0,0,0,0.1);border-width:medium;border-style:none;border-color:curr=
entcolor;height:1px;margin:32px 0px;font-family:quote-cjk-patch,Inter,syste=
m-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Oxygen,Ub=
untu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sans-serif;=
font-size:16px"><h2 style=3D"font-variant:normal;font-size-adjust:none;font=
-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:22=
px;line-height:32px;font-family:quote-cjk-patch,Inter,system-ui,-apple-syst=
em,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Oxygen,Ubuntu,Cantarell,&=
quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sans-serif;margin:32px 0px =
16px;color:rgb(15,17,21)">My Questions</h2><ol start=3D"1" style=3D"margin:=
16px 0px;padding-left:18px;color:rgb(15,17,21);font-family:quote-cjk-patch,=
Inter,system-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Robot=
o,Oxygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,=
sans-serif;font-size:16px"><li style=3D"margin-left:15px"><p style=3D"margi=
n:0px"><span style=3D"font-weight:600">Are there any known solutions or pat=
ches for these issues?</span></p></li><li style=3D"margin-left:15px;margin-=
top:6px"><p style=3D"margin:0px"><span style=3D"font-weight:600">Are there =
any plans to fix these issues in future releases?</span></p></li><li style=
=3D"margin-left:15px;margin-top:6px"><p style=3D"margin:0px"><span style=3D=
"font-weight:600">If no official fix is available yet, could you suggest an=
y temporary workarounds?</span>=C2=A0(e.g., disabling certain hook types, c=
hanging configuration parameters, etc.)</p></li><li style=3D"margin-left:15=
px;margin-top:6px"><p style=3D"margin:0px"><span style=3D"font-weight:600">=
Do you have any advice for a student learning HVMI and VMI technology?</spa=
n></p></li></ol><hr style=3D"background:none 0% 0%/auto repeat scroll paddi=
ng-box border-box rgba(0,0,0,0.1);border-width:medium;border-style:none;bor=
der-color:currentcolor;height:1px;margin:32px 0px;font-family:quote-cjk-pat=
ch,Inter,system-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Ro=
boto,Oxygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quo=
t;,sans-serif;font-size:16px"><br><p style=3D"margin:16px 0px;color:rgb(15,=
17,21);font-family:quote-cjk-patch,Inter,system-ui,-apple-system,BlinkMacSy=
stemFont,&quot;Segoe UI&quot;,Roboto,Oxygen,Ubuntu,Cantarell,&quot;Open San=
s&quot;,&quot;Helvetica Neue&quot;,sans-serif;font-size:16px">Thank you for=
 your open-source work on HVMI and the Xen community, which has given stude=
nts like me the opportunity to learn and explore VMI technology. I look for=
ward to your reply.</p><p style=3D"margin:16px 0px;color:rgb(15,17,21);font=
-family:quote-cjk-patch,Inter,system-ui,-apple-system,BlinkMacSystemFont,&q=
uot;Segoe UI&quot;,Roboto,Oxygen,Ubuntu,Cantarell,&quot;Open Sans&quot;,&qu=
ot;Helvetica Neue&quot;,sans-serif;font-size:16px">Best regards,</p><p styl=
e=3D"margin:16px 0px;color:rgb(15,17,21);font-family:quote-cjk-patch,Inter,=
system-ui,-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Oxyg=
en,Ubuntu,Cantarell,&quot;Open Sans&quot;,&quot;Helvetica Neue&quot;,sans-s=
erif;font-size:16px">[name]Xiaofei Zhang</p><span style=3D"color:rgb(15,17,=
21);font-family:quote-cjk-patch,Inter,system-ui,-apple-system,BlinkMacSyste=
mFont,&quot;Segoe UI&quot;,Roboto,Oxygen,Ubuntu,Cantarell,&quot;Open Sans&q=
uot;,&quot;Helvetica Neue&quot;,sans-serif;font-size:16px">[School Name]=C2=
=A0</span><span style=3D"text-decoration:rgb(10,10,10);color:rgb(15,17,21);=
font-size:16px;font-family:Arial,sans-serif;font-weight:600;margin:0px;bord=
er-bottom:0px rgb(10,10,10)">Beijing University of Posts and Telecommunicat=
ions</span></div>

--0000000000000cd1bd0651b322b0--


From xen-devel-bounces@lists.xenproject.org Wed May 13 13:51:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 13:51:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308014.1579545 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNA02-00046b-Va; Wed, 13 May 2026 13:51:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308014.1579545; Wed, 13 May 2026 13:51:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNA02-00046U-Sk; Wed, 13 May 2026 13:51:46 +0000
Received: by outflank-mailman (input) for mailman id 1308014;
 Wed, 13 May 2026 13:51:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e219b849d000f373@swg.vates.tech>)
 id 1wNA01-00046O-CX
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:51:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wN9zy-00CFuB-PL
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 15:51:44 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e219b849d000f373@swg.vates.tech>)
 id 6a0481f0-2eae-0a2a0a5409dd-0a2a4505a4d4-0
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 15:51:44 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e219b849d000f373@swg.vates.tech>)
 id 6a0481ef-aaa8-0a2a45050019-b9ff1c229251-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 15:51:43 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e219b849d000f373.006 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 13 May 2026 13:51:40 +0000
Received: from l14 (lfbn-lyo-1-414-55.w2-7.abo.wanadoo.fr [2.7.24.55])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 028F782EAC;
 Wed, 13 May 2026 15:51:39 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=c5mn0R3cSrwYsFzqCU6S4JzSDzyRSIJQ1FFNjRhpbGo=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=k2OZtpIOa+Cvjn/Pw1h+MqfoXKkLG4azhejXuaTQMfXKAb3BRvCC0jFiJnByXx5fXy/lRsGwO
 n0awKnImfYnMLEb0E/aZCIfWQW8aicndzusiN4qeS67YLcNcGurGcMlK0wC7tBvQ10zWoDPUwKq
 QAbc5HOUPnUAiKa6opBz5rY1pwZuo4uvCWMVPr0W3GODdWj9e7M+/S4c+BPH/MoiEVQxQpYqGPY
 6z/SLSVVE31z7cmfImaJtcbwvwNOyFcVa1/s8iOycZnrh9+Wf9duzGGk2r4XitL1SWQ8gevN0RH
 R6FDyXBjSPxJ44ZZC0ioxGm+5uhaxTR+meUGF4Q74oSQ==
X-Zone-Loop: 6fef3e81695edb80aa42e09278e61849d45f6577c01f
x-campaign-type: default
x-transaction-id: 28d12be7-15c9-4204-8ce3-43febf1818e0
x-swg-uid: 01-387a348c-9a6b-4dc4-bd5c-c000351858da
X-Mailer: Sweego
Message-ID:
 <1778680300.8631fc262581453bbf619ec5b2062170.19e219b849d000f373@vates.tech>
x-swg-bid: 1778680300.8631fc262581453bbf619ec5b2062170.19e219b849d000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Wed, 13 May 2026 15:51:39 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com,
	roger.pau@citrix.com, sstabellini@kernel.org
Subject: Re: [PATCH v8] xen/domain: introduce DOMID_ANY
References: <20260507202840.293269-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <20260507202840.293269-1-dmukhin@ford.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.b6f.f50e21ee35a0dab2.19e219b8280.d8cc0075e210b33e=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1778680300161
X-purgate-ID: tlsNG-c201ff/1778680304-E0063443-6E85778E/0/0
X-purgate-type: clean
X-purgate-size: 1568

---=Part.b6f.f50e21ee35a0dab2.19e219b8280.d8cc0075e210b33e=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, May 07, 2026 at 01:28:40PM -0700, dmukhin@ford=2Ecom wrote:
> From: Denis Mukhin <dmukhin@ford=2Ecom>=20
>=20
> Add a new symbol DOMID_ANY to improve the readability of the code=2E
>=20
> Update all relevant domid_alloc() call sites and harden the domid_alloc(=
)
> input value check=2E
>=20
> Also, fix problem with passing invalid domain IDs in
> XEN_DOMCTL_createdomain: turns out libxl__domain_make() (toolstack)
> uses 0xffff as domain ID=2E
>=20
> Fix failing tools tests too=2E
>=20
> Amends: 2d5065060710 ("xen/domain: unify domain ID allocation")
> Signed-off-by: Denis Mukhin <dmukhin@ford=2Ecom>
> ---
> Changes since v7:
> - aligned the DOMID_ANY comment with another patch sent separately to
>   unblock xenstore series: https://lore=2Ekernel=2Eorg/xen-devel/2026042=
9120619=2E1013440-2-jgross@suse=2Ecom/
> - added fixups to mem-claim, paging-mempool, resource and tsx tests=2E
> - Link to v7: https://lore=2Ekernel=2Eorg/xen-devel/20260408234046=2E131=
4021-1-dmukhin@ford=2Ecom/
> - Link to full CI: https://gitlab=2Ecom/xen-project/people/sstabellini/x=
en/-/pipelines/2508345752

For the tools part:
Reviewed-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.b6f.f50e21ee35a0dab2.19e219b8280.d8cc0075e210b33e=---


From xen-devel-bounces@lists.xenproject.org Wed May 13 13:59:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 13:59:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308022.1579554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNA7U-0004uQ-MX; Wed, 13 May 2026 13:59:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308022.1579554; Wed, 13 May 2026 13:59:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNA7U-0004uJ-Ji; Wed, 13 May 2026 13:59:28 +0000
Received: by outflank-mailman (input) for mailman id 1308022;
 Wed, 13 May 2026 13:59:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNA7T-0004uD-A8
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 13:59:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNA7S-007fs2-I4
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 15:59:26 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0483a4-bab6-0a2a0a5309dd-0a2a4502dbbe-46
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 15:59:26 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0483be-af86-0a2a45020019-d155802face2-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 15:59:26 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-488a14c31eeso46792875e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 06:59:26 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fce37b182sm84522315e9.9.2026.05.13.06.59.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 06:59:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778680766; x=1779285566; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=FYcDpS0ohCmuC4c6r+owxa4nOatQt/GrowgGaH6tQgM=;
        b=FnE5PEO2/BnLz1ILpLjdU6K2Ulf7GR+KC/lBsCTnOjYKTIU9k43KvEOUQ1zEM/pDmh
         WcWOz3BumuFVGLDISIuRVskkrY19t5cy9QnNHBL/rq4NldkbGpJq/EWIXBdc5L/96CtC
         +ARfYV2EVYuWytgiHxBvFy5bpNEnP9gF0STgiyqfbl9v6v8/rnkVFbZQKQ0dXJbF6WsJ
         ptiigeiJk/y19FlYCmqcBhIXmjKXEsGph6qppMK2iv4hYH3Rpu0T6Evm4ehYxj72qx3O
         uVLLqFzO0Cbu8jqYEVNylE6afuUKsvuScXpuhwBXzuXUJS8go2S1ytf0IYUAOxsV7FHw
         kvzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778680766; x=1779285566;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=FYcDpS0ohCmuC4c6r+owxa4nOatQt/GrowgGaH6tQgM=;
        b=QtNgPgsbwQMrPRsU6+2aohyIVRHrZftFgJw9kImY92JeGPnCQf4tvmZh5phNVk8IHx
         dVA2iTrA1cnzi20zlpCgzUd3B6AQDHuTUJ3YzkASK151rMgfu3Yk87wU6Djm9stLj9XN
         yGho0N04bB9jnSXZ/O6RYfToLiVZ3Z9cBvBbfBjPWfPn+MDYuPqTt51oZ/c4hjN1p77n
         ZciRevPbzNNHhttSeHebjPk/u8R8kzm0iGCVjbBloMjZpaYj+JSOWMpiZZFBojRDJTtT
         cGPe02/RrH9urYdCOhMak3Q2gG9Y14WvnoNhFZlFx1WzwCMZl/X87bWVtKbkSIY+6DF4
         bjqQ==
X-Gm-Message-State: AOJu0YwyZLjla1HLXmHlymKpf4IgOJbj5ms7j+eQTQ1Fgg3I6r9RACM3
	UVLkTnmYr9mtD/CsdokhO6T1KLv+tYE19zKITZFAsFL+ixqCGk7vEWnwwB96FcHgaWV5v9Torov
	SnEI=
X-Gm-Gg: Acq92OHU2eoKGsV6wFhZA9x/cWAg92jUQlkWdNJx3UK+qMPzMXjDAgjpLeauXIvVLPq
	P9WfBWjMq+Mvy3XOnV6LEUElDe71HNfwhSxAx6HkgCc/1Ha0conKcu4P1WwyR4tlkTyEgDXV9hI
	CX+Zw4YxmE1Cq9G4PugvDfvIXim1Qfd05ZeghA6I/Xj6DRVtVbozDjnDu+gWyJGsfrSn+OU0RKr
	S+Q/KhcvMLId/kPXakEZ/8bLZkqhk5BueLfw/oE0g+d77W47J51sr0qoGClwh2xFwIHJcnzSk0v
	eSPMlpHH/OEfIr3dWTalrHc27EdU2xqCgKmdOqWcRU0qzE8jEYVcMPlz8d2Eb3/Rc2g/G3OeODn
	SypFmVnospVJ92rAbRqmyS4D4lIrCgmgqXaBaxEc00a5bDWI8XkcQ05GALV+EjpW4sPE/fs+0PY
	iSXIfb431fjI6TURNnSgvA1YKxPnR9COrHqw/12BIpQ/9zLxUuzLs8Is9T2/o2uPex1qdML4J0+
	EAHgoTK1kUsK/8=
X-Received: by 2002:a05:600c:811b:b0:489:2005:b36e with SMTP id 5b1f17b1804b1-48fc9a397a1mr49115715e9.19.1778680765889;
        Wed, 13 May 2026 06:59:25 -0700 (PDT)
Message-ID: <d3021a09-9832-4255-9944-c9f8384a2db4@suse.com>
Date: Wed, 13 May 2026 15:59:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: common: Misra rule 8.3
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1778680766-ABF66161-F144F2BB/0/0
X-purgate-type: clean
X-purgate-size: 227

https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
(covering more than just this)

1: kexec: kexec_crash_save_info() vs Misra C:2012 rule 8.3
2: crypto/rijndael: adjust for Misra C:2012 rule 8.3

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 13 14:00:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:00:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308028.1579563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNA83-0005xG-U3; Wed, 13 May 2026 14:00:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308028.1579563; Wed, 13 May 2026 14:00:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNA83-0005wk-Qc; Wed, 13 May 2026 14:00:03 +0000
Received: by outflank-mailman (input) for mailman id 1308028;
 Wed, 13 May 2026 14:00:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNA82-0005f0-JF
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:00:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNA82-00DNJz-01
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:00:02 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0483d8-bab6-0a2a0a5309dd-0a2a4507d6a6-14
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:00:01 +0200
Received: from [209.85.221.47] (helo=mail-wr1-f47.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0483e1-229c-0a2a45070019-d155dd2fd93f-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:00:01 +0200
Received: by mail-wr1-f47.google.com with SMTP id
 ffacd0b85a97d-43fe62837baso3577780f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:00:01 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4548ec6cd75sm39586716f8f.16.2026.05.13.07.00.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 07:00:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Content-Language:Cc:To:Subject:From:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778680801; x=1779285601; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=FYcDpS0ohCmuC4c6r+owxa4nOatQt/GrowgGaH6tQgM=;
        b=YGp5/p1dNJX+48+jejhjviLMiet7eel8vN9EcRk8RlQ/vJ2IYW/i1LnkFYO6ISZPhX
         c3T7aegK+QzkwVjqnuP/kbtfF999zUQXlxkkFyFrPUcRjjLwiGKfzLy2V8YLPhl8AMmV
         isxlY0j6HeHvtX5yu0OAgUB/+dTQAWCxdNXUTUyaNXO/ozR1YCOORWQko1/Gt3ZvBFWm
         Myv1yqQNKW001iS1AF4B8aGy97AG5Az0WpG4jyC007iHk/B5T7pnu8jrowuBMdXO30mY
         Y+CI9ORDGgPGhqnycyCibZsqQHJBvaKqi445euWJ/aYUDiWMOdSaSQnZdL+P5p5mE0/L
         WDtA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778680801; x=1779285601;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=FYcDpS0ohCmuC4c6r+owxa4nOatQt/GrowgGaH6tQgM=;
        b=Zw7/uTo0tI1/6tdvp7eAyQdtNTMJ5mzc8+fnyoINQfXBP/R1Hlx6yZk1W1TK3fU6wp
         D9HQxNuFpO5AXpRIXyT7hhUHgE2HJVxHGXCshj1xxA9U37hfExZlCVXYYyLFMqRpJYRQ
         PLSTfL6/cHi1NbCf28wIVM2vZO8PZs7jZ+VZ7GXWmtpo/p4aUZ0aDNLaLB8ubjbHPs58
         CnQhYu2QHicyzCi5B5TO4jk446PVbC+KhEaHeU5l7Q7wDi8sEEL7ob7khAehq3Gp0Z4r
         Yx757kfE14FZ/LixQLE0G6tTaZlJ+nwSgfOfeNmnRHwYh0XFVJd8CuLU0Sh86ggmNKkF
         X9Xg==
X-Gm-Message-State: AOJu0Yx4Ry9s7bzzEV9DMdJpJwoVzY/813QLbR785rhlp/I2kz4TIAh1
	jWUmiNbfWd9YvZrbRXhiiEDcfYY4DJMq6jIq1oyoWwf18TmZALUrhSpWvKG18rBTY//OlLnl2v3
	aK3Y=
X-Gm-Gg: Acq92OFL0Bp2Qnr1fOOUaiu5KuM3aV6sdFYSWQT8t8ddmt5Y+29MbZFaxPt2yNJ8T4Z
	VdC8FeFjyJISJwkGyZ1wCuIVPS5YOWsa1DifwVaqJSv4vXfxA+erEAgVIR5AI9TcHT8Vj4Bv14u
	JwJnLlunsmyCE889kZkW7h4U28Iz9yEaQOKn7TdVucnAJX5eqM2fLKABsYep6OtejJGHxZMwytY
	X98pLDAE7Qb5wQbcBIzhC5KtniVEhiSGgijOcydfZhK+oQeP6LD7h/CKFpWfA42h5UDzC348JV7
	q2L4oE+bgIF9gI+5P/Dapx1a6SkD0PbjV3ONdMVRnEBCV8WY/t3GKtNWC4BQ4N0QeJCVAwWeFJo
	S5smrWtpqhsS3oiSg/njR0Tqu+l9OoxJgg/N1J22Bhw+Lo17oyLroEyWFVq92VEm+hvdxsyhxxX
	TjMuYafA3ez0ATMhyljwNKXagbsnskI4tXVNo9bmcNvE9ga9AJaTeq0L7MzAL64pU1OwFOe1ILz
	vN1BRmGadgdBPU=
X-Received: by 2002:a5d:64e3:0:b0:455:51ee:7afb with SMTP id ffacd0b85a97d-45c5859f1efmr5562569f8f.2.1778680801127;
        Wed, 13 May 2026 07:00:01 -0700 (PDT)
Message-ID: <13ca5f9f-d985-41bf-9c30-afd657dade89@suse.com>
Date: Wed, 13 May 2026 16:00:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/2] common: Misra rule 8.3
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778680801-21165C48-6B70E4CA/0/0
X-purgate-type: clean
X-purgate-size: 227

https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
(covering more than just this)

1: kexec: kexec_crash_save_info() vs Misra C:2012 rule 8.3
2: crypto/rijndael: adjust for Misra C:2012 rule 8.3

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 13 14:00:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:00:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308029.1579571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNA8G-0006fl-4J; Wed, 13 May 2026 14:00:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308029.1579571; Wed, 13 May 2026 14:00:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNA8G-0006fe-1N; Wed, 13 May 2026 14:00:16 +0000
Received: by outflank-mailman (input) for mailman id 1308029;
 Wed, 13 May 2026 14:00:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e21a3491a000f373@swg.vates.tech>)
 id 1wNA8D-0006eW-V9
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:00:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNA8D-00549D-BN
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:00:13 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e21a3491a000f373@swg.vates.tech>)
 id 6a0483ea-e002-0a2a0a5209dd-0a2a4502dca8-24
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:00:13 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e21a3491a000f373@swg.vates.tech>)
 id 6a0483ec-af86-0a2a45020019-b9ff1c22abcb-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:00:12 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e21a3491a000f373.002 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 13 May 2026 14:00:09 +0000
Received: from l14 (lfbn-lyo-1-414-55.w2-7.abo.wanadoo.fr [2.7.24.55])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 26A7486325;
 Wed, 13 May 2026 16:00:09 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=4F3qy5FshBiukcq6f2QlrscuPwKnV9FhFH3+nMgpNSY=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=Rmxc0A9jsG5q8HlhNsRFTReAL/SgfScTg9jlACQwLD9oevEO/vLR54dOHspQMh6PccLS0gNwx
 LaMqhdkdqAzNurXWWwdKQPFJY0NHRd8XE7wXQDK8RjxzYBrCeHISLJ4WYExsh+NKOZs8bE8FnP/
 DN2erlvC7i56JVKfyjV3lD4PJoOsDwmD88BVwe7b/Yodq8dfMHfGlfDNAfE4rf5e+2BXTI3yYZj
 1U1/Cd+6BCffibsN9fjTw2nTyCWvv569yAuknCBY4ErVbXY+fhNfsuks4q8ZsYC+Q4kp9nQH1io
 gW/Zx84Mxi48Jv9bDr0Fq5G9uFs50yo7bPyS3SEQDBUA==
X-Zone-Loop: 7fbc1c5f169fd20823d135b78d4f1fc5834e45c550d6
x-campaign-type: default
x-transaction-id: 5c87f954-506c-4ab5-9e1e-9361579faa6f
x-swg-uid: 01-cc9bee46-2cc1-4c02-8504-617014310f80
X-Mailer: Sweego
Message-ID:
 <1778680809.8631fc262581453bbf619ec5b2062170.19e21a3491a000f373@vates.tech>
x-swg-bid: 1778680809.8631fc262581453bbf619ec5b2062170.19e21a3491a000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Wed, 13 May 2026 16:00:08 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v7 5/6] tools: Allow building xen-hptool without
 CONFIG_MIGRATE
References: <cover.1774871881.git.mykyta_poturai@epam.com>
 <73db845e6617130966a565cdca6274db4cb46428.1774871881.git.mykyta_poturai@epam.com>
 <58cfab3b-7cf2-4e38-9968-1248e665f985@suse.com>
 <f4a1cfa1-f3ea-4fa0-bffd-1f6346e07d39@epam.com>
 <28900826-5a96-4bf0-8d5b-11fd1be8386a@suse.com>
 <96829f0b-faac-4100-8c30-c93ac9459600@epam.com>
 <1777473230.8631fc262581453bbf619ec5b2062170.19dd9a915bc000f373@vates.tech>
 <d1c7d83c-debe-46bf-9bec-614c0a343a8f@epam.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <d1c7d83c-debe-46bf-9bec-614c0a343a8f@epam.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.b79.2671a3264dfd5530.19e21a34721.d489baf10e185a4b=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1778680809250
X-purgate-ID: tlsNG-720697/1778680813-AA76A161-08B26096/0/0
X-purgate-type: clean
X-purgate-size: 1680

---=Part.b79.2671a3264dfd5530.19e21a34721.d489baf10e185a4b=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, May 06, 2026 at 08:52:29AM +0000, Mykyta Poturai wrote:
> On 4/29/26 17:33, Anthony PERARD wrote:
> > So you are trying to modify a library and introduced untested
> > functionality just to be able to build a different tool? I don't think
> > that a good idea especially in this case where it's more than just glu=
e
> > code between a binary and xen=2E
> >=20
> > We could change the library to provide the missing symbols, but it is
> > probably best to keep it that way for now=2E
> >=20
> > So, how about changing `xen-hptool` to have reduced functionality on
> > other platform, and keep the 'mem-*' command on x86 only? You could mo=
ve
> > the function that implement the 'mem-*' command into a separate file,
> > that compile only on x86 (or more specifically when CONFIG_MIGRATE is
> > set) and just have a "#if defined(__i386__) || defined(__x86_64__)" in
> > the `main_options` array=2E
> >=20
> > They are compile-time arch-specific check everywhere in tools=2E Arch
> > specific are often implemented in separated source file, this mean we
> > can limit the #ifdefs to a minimum and keep the code readable=2E
>=20
> Should I also do the same thing for SMT operations?

I guess it wouldn't hurt they are x86 only=2E So yes, looks like a good
idea to do it for the smt op as well=2E

Cheers,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.b79.2671a3264dfd5530.19e21a34721.d489baf10e185a4b=---


From xen-devel-bounces@lists.xenproject.org Wed May 13 14:00:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:00:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308036.1579580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNA8k-00079i-Bu; Wed, 13 May 2026 14:00:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308036.1579580; Wed, 13 May 2026 14:00:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNA8k-00079b-9H; Wed, 13 May 2026 14:00:46 +0000
Received: by outflank-mailman (input) for mailman id 1308036;
 Wed, 13 May 2026 14:00:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNA8j-00079K-Io
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:00:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNA8i-00357C-T6
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:00:44 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a048406-bab6-0a2a0a5309dd-0a2a4501e290-6
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:00:43 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a04840b-c1f2-0a2a45010019-d155802fc065-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:00:43 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-488a9033b2cso61476385e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:00:43 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fce38328esm44172595e9.13.2026.05.13.07.00.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 07:00:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778680843; x=1779285643; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=G79nBLbusI+wOTeHofiLWxIFyMI86o2grvlpiB2XF6M=;
        b=HL+QtMsCYJ9DdQAmdNhVSJ8IJUzYd6pJs9yTNSxoJMVpGn0pyya/PjY4PbDOHx8S6s
         TYYOXxc4Ie0EjqfmSoV9QXqJuxsUzC56d7RVpujkKvxmC3zBTvMxFje/nPMmckuMjCEq
         XgYwMAlxATR7+YS3NvhK6HHgzmWGGiHerTeqJ0JkhtJPaPpa/Opc2LzECIoNrVHF6tbm
         2vmk0up88jZRb/RP7sJEB702EaMOybpB8qjjtri3Mb5iUAcHcMxUtJEYRwPtUkWa0/Km
         Uqs+AwW7zWZzyoRJz8maNRRs16bIIEilVh/SSQVov4fst1Xqi/XGFFBaFBZVNFtExlRh
         uTZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778680843; x=1779285643;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=G79nBLbusI+wOTeHofiLWxIFyMI86o2grvlpiB2XF6M=;
        b=NDwAD+IxFD9cOmgd6i4Jw8YfMmiV6eyy79qYcwRhPyNxys4Ja+RkevehzEJG4A8TKt
         J+2xT/2Cr6thymJmOx9yhHEKbipKicRA56GzOsVz1ptmsWStKtXC3rcD6UaNRsvuoZMy
         tRp24O/lOMIJihq9I9ZIP8lq/bYOv0fXn5iHsi5IsBFknWw/XlDvehZ0QMlXCT04I4Ur
         rDPlYnTxI7NR9TDWdwr0+EMRPS8yQ4iP3biVp/7ybZr2uTPxIR5vuTUqtsgQIuoVYaAE
         aC5d4wA0UFWwAYZxO6e3e2gDBb9IjzFSRxNgxXisl1t1s0HsGuTqsA1KEYOKq42m/ERy
         b3Zw==
X-Gm-Message-State: AOJu0Yz+iah28r9G0O1GHi5gmGFYU2Q2hScLt6+4H3EEVlsEKFbtcl7j
	9v/mRi2bAKD9RApcqP8JofUGWo0/htP7+ddsYl4mG1eRwAdObXIBaNS8SA9WGjXgsuz0jXGY4Z/
	rB08=
X-Gm-Gg: Acq92OGef3NeAC5aIQsZEhpIcOZqvSMpW1e5U3s3kIRd02jSS4VnTZ5oV5N6jTXzCAZ
	2+nudHuzcrYILclRXvuKy8ppU4mtKBsnn1pDzwqIBHIdxWOHOto8w79ZidNEPi0O0Lz69Sn9irS
	CIGzjxdLTENxewuUF4pbvcQznpVUwhCd0UeKMu4pAfRzhcH9J07TIYlrNpUcsy5OfGhLyATnBvm
	CUAqLurskffTfZ1RRepadjuDh387iOpdqlOE1v6in9etYA7eWf0HmlQayfna5Q2t5u4J+i+X5W3
	HYwsukCWHN7uizq4b9dn+v6aKkKy7pT05eihSEt2D9kN7hE2+6FbpMKIvEnYMKryWQcwBAUNThJ
	mavL20StmhFBJJxKL1frH6qSQhVXFgyFudFfcAGCz3RMlJgqbMFxxf1vjfehD60ukPsP6dYpZv9
	gY1WUDAOlsYhYwAaCDofJaNs+VLz8JX92s9pKClwMzFfjRzzzwaeJA6O80AFZOATdqm9oObaL//
	DzClF5Vynu5eYs=
X-Received: by 2002:a05:600c:4e43:b0:489:1fa5:997f with SMTP id 5b1f17b1804b1-48fc9a0ef11mr46192765e9.9.1778680842484;
        Wed, 13 May 2026 07:00:42 -0700 (PDT)
Message-ID: <0af810a1-3392-472a-93c9-c98fcb81c43a@suse.com>
Date: Wed, 13 May 2026 16:00:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/2] kexec: kexec_crash_save_info() vs Misra C:2012 rule 8.3
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
References: <13ca5f9f-d985-41bf-9c30-afd657dade89@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <13ca5f9f-d985-41bf-9c30-afd657dade89@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1778680843-AC851FF4-E60505C5/0/0
X-purgate-type: clean
X-purgate-size: 644

... ("All declarations of an object or function shall use the same names
and type qualifiers"). The declaration doesn't use the typedef, so the
definition shouldn't either.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Really, is the typedef of much use? I.e. can't we drop it altogether?

--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
@@ -333,7 +333,7 @@ void kexec_crash_save_cpu(void)
 }
 
 /* Set up the single Xen-specific-info crash note. */
-crash_xen_info_t *kexec_crash_save_info(void)
+struct crash_xen_info *kexec_crash_save_info(void)
 {
     int cpu = smp_processor_id();
     crash_xen_info_t info;



From xen-devel-bounces@lists.xenproject.org Wed May 13 14:01:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:01:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308042.1579590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNA9A-0007ga-OS; Wed, 13 May 2026 14:01:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308042.1579590; Wed, 13 May 2026 14:01:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNA9A-0007gA-Jl; Wed, 13 May 2026 14:01:12 +0000
Received: by outflank-mailman (input) for mailman id 1308042;
 Wed, 13 May 2026 14:01:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNA99-0007dz-GR
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:01:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNA98-00EQdJ-Rc
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:01:10 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a048416-2eae-0a2a0a5409dd-0a2a4503a792-40
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:01:10 +0200
Received: from [209.85.221.54] (helo=mail-wr1-f54.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a048426-672d-0a2a45030019-d155dd36cc9b-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:01:10 +0200
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-44ce78ab5feso5843028f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:01:10 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491e94c0fsm43198189f8f.32.2026.05.13.07.01.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 07:01:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778680870; x=1779285670; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=femi926UTfwC+WciGwdWOVpE8CZ0X7r6UWioon78b18=;
        b=YvQHJ5NZbx37SYN5wrokhD+e6WzoybxJURedj3Lj5uEVGMeREWhqDqR9OGwbpC7FAW
         3BG5bmHOHTZVWLD6ZxIouOpzc7t1MR/uSeD0pmp3Tf0SEoj88pgmpAVW7Gv6/KI5NKOb
         grYEcRPdn3in7QynXTKaA90NohLkygKrQI38CXj04xp/x4GE/3liJv0OIe9+zBcF1tFl
         EHw71MqQDz6pG66fF7yJWEYMJ0ULbn7NpUqVymYiStWQJwPHY+mQU/pTJe2440Npa/jl
         FSga4QVodcSzLYCc6F1Zd/6+w83ldFC52FeP9MYgJ3OGnxUkOaEnptpylUsXvvS1OnJA
         e1eg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778680870; x=1779285670;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=femi926UTfwC+WciGwdWOVpE8CZ0X7r6UWioon78b18=;
        b=Yp/Ifq9NHRefNJfSuo8YTh5+3ecfdYI7+XNMPrzj/niXXtxfdLlu38uO81QdIxqm3X
         fxDMjOo7O2LEYsuZx+ZmvGEw3d0ljvDs+fkb/9DieDaj6m1syCSrsB8+wdRxSz4C5gyW
         5f2X6sGXlx9akT1TsYgY6EJ5dXBQSAy3ZWCswuzLyYLL7ggaAyBWlas8hw0TUtxzloYP
         qGMfTxjhb1x6mu2mtzjB2pXa01VqcEtr1uRQXzwYSWbX58IUXNr+ZmdW+rlccqYmtOy0
         hGw5KLtIBjAfNzV+UIq2DkwWdPZWjVLgHPtzuyBk6LPPh46iqII9vtjYh95PAc+Oim+r
         Y77Q==
X-Gm-Message-State: AOJu0Yz3xo66VcIQ8OcAeKagg4slDpViOEsLyQXerbop1BpgUMXjXk5l
	0f6DE+PnFOwj/93rEspEnIrjwA+XXIEQ5ebROsICMEDMmsUpXnZCjIdx4UZUpeGwYuwve1Hd8Jy
	gxK4=
X-Gm-Gg: Acq92OEZ0c//3eOazubRhFNJqlIvMtcO3dJTb9RGZs5WSicVB3l/LmKvl4V6b+f8opu
	ayewMCtz6BWg6O2oCQnoBeWYzT++hLmgzrJDJXAyc5fEfHj8hSJ87ZWt8tt16pEEYuYrJhkf8RG
	732tirKPUA5ZWz/in8Y4afzQ1e/JPaYMkz73FXiKYx4Bkz3uK6ZLACnkpl8xN+9kJiejEhzcScm
	DCnrbHn/v7JlmwvSoEY+FekGfDp/NKb8k+qh/SxmnnpyUgK4dXmF3tL67AqgsCNBRyQBSbdOvfe
	JkdrEFhMop77mbq/U/i3H4T3bXzYz7UhTOBVh7YKMcOZtN+zJ8eVQcG9+vOcKftuIB7pDZysYxG
	aBtLI38lt+ieLdMUzYD0qvkBkmJKnCOuWFbYoScTWSvRhMPIZSkoTyWrEMm4paA72teMev97+H2
	kuIkmxbS/v3a6nrymR1epvzSQkQQ2fCoj41gpNiR6541bCdEx7i/0oCtSWhYOHfbXPthyCpnICq
	e2Kno3LSEhBfEE=
X-Received: by 2002:a5d:5d13:0:b0:43d:76d8:5794 with SMTP id ffacd0b85a97d-45c5ac51c66mr5460534f8f.36.1778680869772;
        Wed, 13 May 2026 07:01:09 -0700 (PDT)
Message-ID: <3ca0351a-8be9-4b3b-989f-0ba004fada2f@suse.com>
Date: Wed, 13 May 2026 16:01:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/2] crypto/rijndael: adjust for Misra C:2012 rule 8.3
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <13ca5f9f-d985-41bf-9c30-afd657dade89@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <13ca5f9f-d985-41bf-9c30-afd657dade89@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1778680870-39B7C938-8944C878/0/0
X-purgate-type: clean
X-purgate-size: 1235

... ("All declarations of an object or function shall use the same names
and type qualifiers"). Bring declarations in line with the corresponding
definitions, accepting the use of the being-phased-out u<N> types. While
we don't define NEED_RIJNDAEL_DECRYPT, cover rijndaelKeySetupDec() as
well for completeness.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/include/crypto/rijndael.h
+++ b/xen/include/crypto/rijndael.h
@@ -50,9 +50,8 @@ int	rijndael_set_key_enc_only(rijndael_c
 void	rijndael_decrypt(rijndael_ctx *ctx, const unsigned char *src, unsigned char *dst);
 void	rijndael_encrypt(rijndael_ctx *ctx, const unsigned char *src, unsigned char *dst);
 
-int	rijndaelKeySetupEnc(unsigned int rk[], const unsigned char cipherKey[], int keyBits);
-int	rijndaelKeySetupDec(unsigned int rk[], const unsigned char cipkerKey[], int keyBits);
-void	rijndaelEncrypt(const unsigned int rk[], int Nr, const unsigned char pt[16],
-			unsigned char ct[16]);
+int	rijndaelKeySetupEnc(u32 rk[], const u8 cipherKey[], int keyBits);
+int	rijndaelKeySetupDec(u32 rk[], const u8 cipkerKey[], int keyBits);
+void	rijndaelEncrypt(const u32 rk[], int Nr, const u8 pt[16], u8 ct[16]);
 
 #endif /* __RIJNDAEL_H */



From xen-devel-bounces@lists.xenproject.org Wed May 13 14:03:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:03:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308062.1579599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNABB-0008Ti-2X; Wed, 13 May 2026 14:03:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308062.1579599; Wed, 13 May 2026 14:03:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNABA-0008Tb-V3; Wed, 13 May 2026 14:03:16 +0000
Received: by outflank-mailman (input) for mailman id 1308062;
 Wed, 13 May 2026 14:03:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNAB9-0008TM-Fy
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:03:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNAB7-00ER8U-JN
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:03:13 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a048492-bab6-0a2a0a5309dd-0a2a4503c550-42
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:03:13 +0200
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0484a1-672d-0a2a45030019-d155dd33e4d8-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:03:13 +0200
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-44c4cc7c1cfso5649862f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:03:13 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491e94c0fsm43215896f8f.32.2026.05.13.07.03.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 07:03:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778680993; x=1779285793; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=XTam2C7JN5eqbDP5Ol+DtfDVm/JvrFigtKiO7DH4+fk=;
        b=gWupDNpfggVAOKpOCct/kEPwk936b1o5Y2swnlJWL6AH65KEUrpDwjp/5t4F7Mvjk3
         cY7+AuqniXXmQz65COn0KNhIgaQd7mBNQgiX6/kMH21Y0NpHL/VjN9rlE9eakGoJoCoK
         IovOnVf0GW5dXhd1OH79pVAMUSLzFIFAmDymvCgHTY0Cr4LicNfaFwmgl71Dxp5OkMQ+
         53Ay3KTTPZ4SNFGn8nN8J1TFeXIy2WhQb+g5jeBX9Dkaie4z1JyF+EJByGSrfJdn30FL
         ypw+qgPjZkeyT6g+5PRN8ZQh31J89Vj+G+ZdxGACeghGCNqoOAmQgcNJm7FZLkBcpmWM
         CY/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778680993; x=1779285793;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=XTam2C7JN5eqbDP5Ol+DtfDVm/JvrFigtKiO7DH4+fk=;
        b=DmdgzCcFKUlmnexN+XsjSS6GYme+vJgYko8i+4AtNiXlUH91yc3Vl2DcHRt/mcf69Q
         HlhsYRaTr7IFFGhfpZSyhwSnHmxc/oBzqyclMS/2l4ZQrCscIyOayDzFdI4nKz6Dno8d
         /hTX3LO5Vy7BfRHZRMuPQ9DSeFJ+r48K+9b99WWFNRh+xD/Jm7z+UOKwqpVeczjEDSdR
         E9R8aXak+AQF6Pxo479A9v9w7QlNOSXJppyg/62zwIBMh2O15AELCsJehybj30qDaAjf
         L1r5wvg8iEx2Olo7t9Dx+RKrD8tmo8fRC+dBylIvB6U+xXCp0/h9aYEpKCp6B0myjIYc
         e6CA==
X-Gm-Message-State: AOJu0YzsSEBO7JZ7lLgu8WYZ+U7n0MG3pmwz+rp7Any73ZN3BYZVH6kT
	geXbfbq/oNVCis0sJ2wp3FbKC6QNm45tkBch3uuL8ehQbqGNS3pBPla6uuX2RjAQDzQVGknVIia
	Rrck=
X-Gm-Gg: Acq92OEnCwvXCH8olaarwP9CpMIeupPah2w6BguC8qdzup+qvy3mFbxijEtQ4qIsIZj
	SoAyv2DgbselJ9IiDZN/zYSWu6SubwSpwHrTtYkwQYGi1fC4QR4NR7whnXmrw2IV8CiUEC3ECyh
	UCIQh8nKp53n+/IvfttFu/CQ0sJCJdlmV9w3fZdqREd4v5PA3GWHa15+AyQRiQPcrOx8mdmxqJ/
	qnAIM795eFBeRywnUR8IAQvJanoCDvhRHcfa0clCEwz8mHYlWD/aZeNYZQLOs7fzsSQHVWjCwmk
	S78iXfGloddLbkexZvkbi/eCFJiRUPSlnzBebgdsErjuQGUMhVBS4WDmLJDGJ9RL0p1zMn51fU7
	l1x+nph6Nan0fxEFgXfCGSoYyf3SZwTKpyfXtJfPRUEnJS4T3vbe0imY1bhbdouMEpygrefjiGw
	vlrRsmh9wH34TwWYEs2SQWBNKmXPpVJfIWMvPeG5A8k74BTZULTvrofoieYiJyu3MhiMB3gCCvK
	fyngxDps+ziNyk=
X-Received: by 2002:a05:6000:220b:b0:43c:f583:126a with SMTP id ffacd0b85a97d-45c7843076emr5140692f8f.14.1778680992924;
        Wed, 13 May 2026 07:03:12 -0700 (PDT)
Message-ID: <bc6027ad-c8e8-4586-b165-d0f730cfa63c@suse.com>
Date: Wed, 13 May 2026 16:03:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86: address Misra C:2012 rule 8.4
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1778680993-37B4C938-E3BB1213/0/0
X-purgate-type: clean
X-purgate-size: 1425

... ("A compatible declaration shall be visible when an object or function
with external linkage is defined"). Three variables lack asmlinkage
annotations.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
(covering more than just this)

--- a/xen/arch/x86/guest/xen/pvh-boot.c
+++ b/xen/arch/x86/guest/xen/pvh-boot.c
@@ -22,7 +22,7 @@
 
 /* Initialised in head.S, before .bss is zeroed. */
 bool __initdata pvh_boot;
-uint32_t __initdata pvh_start_info_pa;
+uint32_t asmlinkage __initdata pvh_start_info_pa;
 
 static multiboot_info_t __initdata pvh_mbi;
 static module_t __initdata pvh_mbi_mods[8];
--- a/xen/arch/x86/guest/xen/xen.c
+++ b/xen/arch/x86/guest/xen/xen.c
@@ -40,7 +40,7 @@ DEFINE_PER_CPU(struct vcpu_info *, vcpu_
  *     0 vmcall
  *   > 0 vmmcall
  */
-int8_t __initdata early_hypercall_insn = -1;
+int8_t asmlinkage __initdata early_hypercall_insn = -1;
 
 /*
  * Called once during the first hypercall to figure out which instruction to
--- a/xen/arch/x86/pv/hypercall.c
+++ b/xen/arch/x86/pv/hypercall.c
@@ -180,7 +180,7 @@ void pv_ring1_init_hypercall_page(void *
     }
 }
 
-void do_entry_int82(struct cpu_user_regs *regs)
+void asmlinkage do_entry_int82(struct cpu_user_regs *regs)
 {
     if ( unlikely(untrusted_msi) )
         check_for_unexpected_msi((uint8_t)regs->entry_vector);


From xen-devel-bounces@lists.xenproject.org Wed May 13 14:03:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:03:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308070.1579608 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNABf-0000TQ-AF; Wed, 13 May 2026 14:03:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308070.1579608; Wed, 13 May 2026 14:03:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNABf-0000TJ-79; Wed, 13 May 2026 14:03:47 +0000
Received: by outflank-mailman (input) for mailman id 1308070;
 Wed, 13 May 2026 14:03:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNABd-0000T7-OT
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:03:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNABd-00ERMx-4V
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:03:45 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0484bd-bab6-0a2a0a5309dd-0a2a4503af22-12
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:03:45 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0484c0-672d-0a2a45030019-d1558031c5e1-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:03:45 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-488af9fdaa7so38921535e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:03:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8d19974sm73566305e9.2.2026.05.13.07.03.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 07:03:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778681024; x=1779285824; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=gyfgLp6BbNzu6gMmN240f/olsGIMSN44g4V0czTEdLk=;
        b=UoeZziFnqjkK3wgkqNhqrkPB5ZJz67zrG22iMtFi9BYKl+UVmUcWuwyCeNTf0ij3Pb
         1q+GguMLXQX7v0AZB/d9o630G2LMmXowyt8ZbszAux/XaxNGOi4bntXPl0WoZbb3jNG6
         N22qwh1lHbrKnKZHkC8R0h3c1giKvBA1KVcn3NqozjGKsGGPEfEwJIIezM4cvE0xelEH
         fY/+wPIZYSS/0BVKNKXuE9O6TAEym9ETZF9jeaKNQbql004qpw+4xkoYG4Z4kqONtu5i
         htLVHA7sqsXzJKhrhYbjWKvThztLmSaf5+2TP+kAXqJh2nP6DCJbpZ3PCQnuE6G6HS/2
         SMcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778681024; x=1779285824;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=gyfgLp6BbNzu6gMmN240f/olsGIMSN44g4V0czTEdLk=;
        b=hsAjYbPAUUL0z9ptgRc4zWUbaCEYqEV4R8yReiSI7gHiBAWvY5Jvr3K+R/OsON4s1Q
         ZvBeVOvmP0AMeMyCzI0CkAzEloCbhCFy/l6CgshWpMk9HEYti2g+vYXm4v20+yHjTqID
         44xEVx48+rs5SQ+5wEg/IIxJE4gJzEh7xoyrZaAbnSswJSkvGWSFUENExvC1t5fD86Qp
         BZnWEmay8CpLVVKCcbao/Dz9XdkMY/maVSW3EeBfcyBrdoptqLpCAH+xKWCq/OTe9URi
         QpYXfBDOwhmOfdbGMJ5zN8Rj9StjLkkC19kCHLD/vZzGZFeCdNTM1gw6cufkiDkplkgb
         cFaA==
X-Gm-Message-State: AOJu0YykK6oiIn43MsWU6+7caQcWEnfYBIEs1huueJSyDlJvCIAVM8Gj
	EWES22uCUCFiRd7TbPTjJfCl5HqTUZlGB7etXslbM1rXCPiJsN+4fYxQr4urqmTdTwl8RVv9NHx
	5oFc=
X-Gm-Gg: Acq92OETayr/+0bJhzsPE/ppfoDvW+v36aBzzG3WnOv6PaU9576o+1vIU5LGpbrGyY4
	EMYfYWh1mQDPCl+s2k0kO+hb5tnC5WFHItq90h5LG8WGdHYcyyUbVz8WGBAXnP7wOiPK7nN0uHU
	xySGzX38oKrqThGo6Qb391rI5ooa50sJWSgNIzd7eLOLosoNSD0Q3Fpu5ZwHmRTz+VPCQio60P+
	wfikwDE+NU1Wcc0R8ETWjATUjI3i0g2/FR2vIedXvkL+wcZSOT0byqsMnfzFAkooC4P5oKUmLNX
	ewjazxr34EdAtRAkJ9k8JaGuocxRZBK6b5RgXlPB2BWPfRyDebmKmb+/hELR+XHdp7C3rJjM+DF
	rh9NpseOAEfBTzayw73HM5NC5YTuM36lJlDh67SSeoCSRw2lIPNAUpwkNfnIlJGp+kPyuVIHHAZ
	Fh5zpehBl9oG6uuhsJ7gwn4JWb7FpiOt7xAyIiF1+lvkuDop/5hN+pbvKa3+KR7uB1QK/EkuuSy
	HXVohl4/UEe01w=
X-Received: by 2002:a05:600c:4f54:b0:488:ab1d:dcc5 with SMTP id 5b1f17b1804b1-48fc9a4b276mr52734895e9.27.1778681024534;
        Wed, 13 May 2026 07:03:44 -0700 (PDT)
Message-ID: <bc9ed10d-5ae6-4d9d-af90-648931731a52@suse.com>
Date: Wed, 13 May 2026 16:03:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1778681025-41B92938-0520B090/0/0
X-purgate-type: clean
X-purgate-size: 650

... ("Conversions shall not be performed between a pointer to an
incomplete type and any other type"): Add an intermediate cat to void *.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
(covering more than just this)

--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -1264,7 +1264,7 @@ static void cf_check __maybe_unused x86_
 
 #if BITS_PER_LONG == 64
 
-#define ID2COOKIE(id) ((mctelem_cookie_t)(id))
+#define ID2COOKIE(id) ((mctelem_cookie_t)(void *)(id))
 #define COOKIE2ID(c) ((uint64_t)(c))
 
 #elif defined(BITS_PER_LONG)


From xen-devel-bounces@lists.xenproject.org Wed May 13 14:06:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:06:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308078.1579621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNADo-00015S-NW; Wed, 13 May 2026 14:06:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308078.1579621; Wed, 13 May 2026 14:06:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNADo-00015L-KM; Wed, 13 May 2026 14:06:00 +0000
Received: by outflank-mailman (input) for mailman id 1308078;
 Wed, 13 May 2026 14:05:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNADn-00015F-8l
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:05:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNADl-00CJAv-3v
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:05:58 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a048541-5cb7-0a2a0a5109dd-0a2a450aad26-12
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:05:58 +0200
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a048546-56b3-0a2a450a0019-d155dd32ac9b-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:05:58 +0200
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-44e1860558fso4404839f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:05:58 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-454913049ecsm39703682f8f.19.2026.05.13.07.05.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 07:05:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778681158; x=1779285958; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LGLDB1oLz7dytXJNDddp3ZiftmqYBvYmdivYW9ydtQI=;
        b=e1E79wOtISn7omuHm+TCiG2rFYn091hAQdWdXcikykJjdTPVmuEhhwT+fdyMV3ymJc
         CBj1AAcnjJERqmyGpBEnpHAzGUU6CwHotZ92C/oXrp4zBgrlwlO4/RzWS90v+ppJYo/1
         firjWvPU52WdcpFj7uHVmky519Jnd1Vgy+ds/jbiP3gpAM+fjyjE6vd0tBfWWatu9DgN
         hx4wODLMiWZ7kXFwbTdHZIgHpiyALJ8rqU4aarftx77nJq5ds72r86I+4ldh7G2Rtx9N
         /CmSVbjgppI2hEaasVN+cgT1sn7wWTf/20Yz8dthW6tiXcEPfwacwwwkp7hrtEcwYKa0
         j8PA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778681158; x=1779285958;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LGLDB1oLz7dytXJNDddp3ZiftmqYBvYmdivYW9ydtQI=;
        b=PuyE6+GashqrGawofs9xf6FU0mBOD+qB1zpc4FRO1oMSLumxlsf1yrCWCDgJs4Sbmi
         ElIvqBKU7eb9PEB4WnnDU5N1komrvlnA0Z9iDIlaDgXhajE3GtBXdZsJNEUwB7GVIpu1
         4I7acaIlVS4YaWK6fb61i1n8gVnz23wyuUO5PCGhGuM5f2l7KdFFjSgtFhUA+Qf9MW71
         6gqsRBLaKQoRfrbkYXJBvHAy1DuxZtDHgNOKKlE/ASd5ObKfxYiiEtM0nchXQwFW4uOK
         Nvm+A7rRr61w6KwxMAaGOP845zKjDK/o2/SU7+iSD7Ymy8h78Fwxz6SVumHDxKnMW5eI
         3WRQ==
X-Gm-Message-State: AOJu0YwiXiHph83VkgEVm0aSJADCPrcM5zaFiVrMEQxULyw4FDNE569b
	8Z9QghlM0ojHd2bX+CIqvgY7iA0TX4KsJkw2n5Pu3XV/GuAJbLQ+gmXLtcd2KVvs2FVW/fpZ2qW
	tJuQ=
X-Gm-Gg: Acq92OHcs2rf6PnLTI6wf9zawDIRhHEhSFWzddwt8v580xh2KGj8Yn6Q34KFN/1YcR+
	xdaDd7eJPFW95nV8D73xfpPVGGRghDiXA+ShZZvf4Wkjh+65AokVhcmjShMdmE+66WZ9lIbBzV/
	RO6QrX/RelNjE961f+MX2gyniTMzjlX8UkeRusi2sjbXEqBVn9cQBtLh5T/ZmSM0stg+NoyzENb
	gNlr7A8JB/H9seFxS6v/5mDDQPlYzNbisPbVpShQm3btQXZxjlDgIm03c8hz1tiLUDIB6zqS5/1
	LXgZnYArU4+wllKX81dJRXRwghYxLMcoVIFmJqtnRZfyGuu1XRke9TghL2Snp/CrQaFbzp8ZSHU
	gAdgbh1Q1CGwSnOHFIzSXR7PhSOIqc5HXL4VNgUuGaxAcpDeJRlGFK5NeRT0bZLTIVqjo85gY3v
	obnggxmcZbZ7hIIcKya7g14EbRsN3CyP5ou8QU7FC33h04ffRRRC2GwuFSXoBPNENu56L0hdqrb
	Ys6Sa7muaxv280=
X-Received: by 2002:a05:6000:18a5:b0:43d:50c:6f18 with SMTP id ffacd0b85a97d-45c58696122mr5641842f8f.11.1778681156869;
        Wed, 13 May 2026 07:05:56 -0700 (PDT)
Message-ID: <ddecaf67-a167-4a1e-8674-20284f6f02b3@suse.com>
Date: Wed, 13 May 2026 16:05:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/2] x86/mm: address Misra C:2012 rule 16.2
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <e3cdf68f-122a-4a41-a72c-8e6ed857b282@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e3cdf68f-122a-4a41-a72c-8e6ed857b282@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1778681158-731728B7-668B4DC0/0/0
X-purgate-type: clean
X-purgate-size: 1228

... ("A switch label shall only be used when the most closely-enclosing
compound statement is the body of a `switch' statement"). Use a form of
fall-through instead. No difference in generated code, except for some
line number changes.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -2663,15 +2663,17 @@ static int validate_page(struct page_inf
                  get_gpfn_from_mfn(mfn_x(page_to_mfn(page))),
                  type, page->count_info, page->u.inuse.type_info);
         if ( page != current->arch.old_guest_table )
-            page->u.inuse.type_info = 0;
-        else
         {
-            ASSERT((page->u.inuse.type_info &
-                    (PGT_count_mask | PGT_validated)) == 1);
-    case -ERESTART:
-            get_page_light(page);
-            page->u.inuse.type_info |= PGT_partial;
+            page->u.inuse.type_info = 0;
+            break;
         }
+
+        ASSERT((page->u.inuse.type_info &
+                (PGT_count_mask | PGT_validated)) == 1);
+        fallthrough;
+    case -ERESTART:
+        get_page_light(page);
+        page->u.inuse.type_info |= PGT_partial;
         break;
     }
 



From xen-devel-bounces@lists.xenproject.org Wed May 13 14:06:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:06:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308083.1579629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAEC-0001Tp-12; Wed, 13 May 2026 14:06:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308083.1579629; Wed, 13 May 2026 14:06:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAEB-0001Ti-Uf; Wed, 13 May 2026 14:06:23 +0000
Received: by outflank-mailman (input) for mailman id 1308083;
 Wed, 13 May 2026 14:06:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNAEA-0001TM-IT
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:06:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNAE8-00CJHY-DX
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:06:21 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a04855b-5cb7-0a2a0a5109dd-0a2a45029b4a-14
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:06:21 +0200
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a04855d-af86-0a2a45020019-d1558034e582-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:06:21 +0200
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-48e8132c6d0so30464545e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:06:21 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491f8d4c3sm41175703f8f.34.2026.05.13.07.06.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 07:06:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778681181; x=1779285981; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wy+UKfr0jpUKnUnHywACAxAHzw2WJmvRPSq5Ydx2cgA=;
        b=LTqa4d4CptUL/o1ZQ1dz+3eY4yOhYFzHJcz4/s/67tlwjEBGYgJl3NVZfCNqeZfAGY
         itPxzMVAQouhngLeDDmV4BQBfS5LGjmKQr6r6WmvJfFmn8pEuIhMTqLEOnzY9PYOw+4E
         JQkwhKlrC5ggKZz8ZPv71ZzV3EY303G+m7dPwrK4dpCPKHEZ4FOWZoRw+9pk9tsAjz3b
         LC/t99+TuU3g7fm3C15VE7DYimBX5f+RIgcJL+kRgyzJLJ4ZiBcPDeaImZQ7lLoI1XUi
         ixRRproB/qgfInNeShzHNSG8WiH7vKmvQzMRYPC9sAwEG+aSWVXZcwApcNiEsQQ8d+/u
         e3+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778681181; x=1779285981;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wy+UKfr0jpUKnUnHywACAxAHzw2WJmvRPSq5Ydx2cgA=;
        b=mrYc4voN9bUvwKWSkKEo7SyqfeeCMu1VtBQ+fNJnLKTwnc0Ud5bQQO5+9ZiRIbxUKs
         zGaOUL9OWFmp+0JJAb5jkUH84LrxsftFOg4qCwhv9K3Ve7Q3N/ZiMp3lKgRqMbmch9+l
         IGGUzb7zXkkrp1rGUE3QkNc8RTG6hghZP4bXKZ6Q15cIwqQdJUmnyK+tYmIapRDJZfyd
         zLa5s2bHKYbH8k3/hw5kBCj87O7j6eyuUWwts7USVorvhzpE5vn0OYXZCA1uDXiwsEp9
         y9Erkost9jLfvghmzKFy3OSFHRDZjp4dwpgCygZ+4JrTNPNsr3RmsSYIkPqPupy82WYD
         aM2w==
X-Gm-Message-State: AOJu0YwKTByDRiTxdq6WEEFvZBAp2M42FCLosVWxdry8601pGwG/zajU
	vFn6pcY7kyCUdrfRCYRhdiwkqm4aOw9tvc7M+IZ8uNKYmrUtcIpwbPBnZTfa9XTMVSX61U25qrZ
	k8zY=
X-Gm-Gg: Acq92OG5nWc4mwsQ6/pBBnKCvk67DjlAQlGFo7M56Hsqf5myHtrNWSqqh3OX8uK0orG
	LtKyLZjZ7R/C6jQiaSKw0xX0Hmi/pbCbJ9gsO0idgJBNynfyYNIkeXJ8qglcNZpYk6loRg2hnU9
	KDZ6xNrombL3wggYd5fN9FTjRkG++O0rp+k7cCiYMxIGENKf54FWSsOoVae/H+uhiGgQCbqxV75
	OUfq+13HtwIGdB4YYw4dR8HUWepVfEakr4ath5ZLcRmosesxcFoLZFTLnAC5Ae7r7l2ojJVTkRu
	WZ+ge6lIs2NTu5pu3TKkbJ/81oZbyojx2YS+em0oCwKjZobYQoIwWsKTQzZQv0uG7Ui86K9Bi6D
	SDI4X9vh5vi0hGspjF0Psw0rvmdBdm90ERJ9ek3MCdcceAKSYVhHwB09IF5HbUwb7ha8NhXDN1x
	ny9wxps83hRibQONBt61njQEYquSDVy9IRTbtumw9QpSE9t6UGdY7p1At1R0El/suun8V9yEAJm
	u9eJhHsWNHqkZ0=
X-Received: by 2002:a05:600d:18:b0:48a:5574:3a5d with SMTP id 5b1f17b1804b1-48fce9bd5d1mr35850885e9.7.1778681181303;
        Wed, 13 May 2026 07:06:21 -0700 (PDT)
Message-ID: <d04afa56-1197-4f5c-b158-b4b7eb7fc6b9@suse.com>
Date: Wed, 13 May 2026 16:06:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/2] x86/PV: address Misra C:2012 rule 16.2
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <e3cdf68f-122a-4a41-a72c-8e6ed857b282@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e3cdf68f-122a-4a41-a72c-8e6ed857b282@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1778681181-AB36C161-C8707750/0/0
X-purgate-type: clean
X-purgate-size: 3535

... ("A switch label shall only be used when the most closely-enclosing
compound statement is the body of a `switch' statement"). While I don't
really like doing so, use a few "goto" instead. No change in generated
code (somewhat to my surprise).

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -897,7 +897,7 @@ static int cf_check read_msr(
     struct vcpu *curr = current;
     const struct domain *currd = curr->domain;
     const struct cpu_policy *cp = currd->arch.cpu_policy;
-    bool vpmu_msr = false, warn = false;
+    bool warn = false;
     uint64_t tmp;
     int ret;
 
@@ -996,21 +996,21 @@ static int cf_check read_msr(
     case MSR_CORE_PERF_FIXED_CTR0 ... MSR_CORE_PERF_FIXED_CTR2:
     case MSR_CORE_PERF_FIXED_CTR_CTRL ... MSR_CORE_PERF_GLOBAL_OVF_CTRL:
         if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
-        {
-            vpmu_msr = true;
-            /* fall through */
+            goto vpmu;
+        goto check_relaxed;
+
     case MSR_AMD_FAM15H_EVNTSEL0 ... MSR_AMD_FAM15H_PERFCTR5:
     case MSR_K7_EVNTSEL0 ... MSR_K7_PERFCTR3:
-            if ( vpmu_msr || (boot_cpu_data.vendor &
-                              (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
-            {
-                if ( vpmu_do_rdmsr(reg, val) )
-                    break;
-                return X86EMUL_OKAY;
-            }
+        if ( boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+        {
+    vpmu:
+            if ( vpmu_do_rdmsr(reg, val) )
+                break;
+            return X86EMUL_OKAY;
         }
         /* fall through */
     default:
+    check_relaxed:
         if ( currd->arch.msr_relaxed && !rdmsr_safe(reg, &tmp) )
         {
             *val = 0;
@@ -1049,7 +1049,6 @@ static int cf_check write_msr(
     const struct domain *currd = curr->domain;
     const struct cpu_policy *cp = currd->arch.cpu_policy;
     uint64_t temp = 0;
-    bool vpmu_msr = false;
     int ret;
 
     if ( (ret = guest_wrmsr(curr, reg, val)) != X86EMUL_UNHANDLEABLE )
@@ -1179,24 +1178,25 @@ static int cf_check write_msr(
     case MSR_CORE_PERF_FIXED_CTR0 ... MSR_CORE_PERF_FIXED_CTR2:
     case MSR_CORE_PERF_FIXED_CTR_CTRL ... MSR_CORE_PERF_GLOBAL_OVF_CTRL:
         if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
-        {
-            vpmu_msr = true;
+            goto vpmu;
+        goto check_relaxed;
+
     case MSR_AMD_FAM15H_EVNTSEL0 ... MSR_AMD_FAM15H_PERFCTR5:
     case MSR_K7_EVNTSEL0 ... MSR_K7_PERFCTR3:
-            if ( vpmu_msr || (boot_cpu_data.vendor &
-                              (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
-            {
-                if ( (vpmu_mode & XENPMU_MODE_ALL) &&
-                     !is_hardware_domain(currd) )
-                    return X86EMUL_OKAY;
-
-                if ( vpmu_do_wrmsr(reg, val) )
-                    break;
+        if ( boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+        {
+    vpmu:
+            if ( (vpmu_mode & XENPMU_MODE_ALL) &&
+                 !is_hardware_domain(currd) )
                 return X86EMUL_OKAY;
-            }
+
+            if ( vpmu_do_wrmsr(reg, val) )
+                break;
+            return X86EMUL_OKAY;
         }
         /* fall through */
     default:
+    check_relaxed:
         if ( currd->arch.msr_relaxed && !rdmsr_safe(reg, &val) )
             return X86EMUL_OKAY;
 



From xen-devel-bounces@lists.xenproject.org Wed May 13 14:07:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:07:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308094.1579639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAEz-00026n-AK; Wed, 13 May 2026 14:07:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308094.1579639; Wed, 13 May 2026 14:07:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAEz-00026g-75; Wed, 13 May 2026 14:07:13 +0000
Received: by outflank-mailman (input) for mailman id 1308094;
 Wed, 13 May 2026 14:07:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNAEx-00025d-W1
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:07:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNAEx-00DPNx-Cj
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:07:11 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a04858c-2eae-0a2a0a5409dd-0a2a450abbf2-12
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:07:11 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a048517-56b3-0a2a450a0019-d155dd2bc89a-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:05:11 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-43d77f6092eso4314438f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:05:11 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491ca383asm39787299f8f.28.2026.05.13.07.05.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 07:05:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778681111; x=1779285911; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=vZk4DuQaTrqFMq7vwcvBSZ7FBo8uSnF/2RWcSDO69h0=;
        b=C3fb7jLBC69BISNRV0TvBROsv/j+ka2awnHv0CR8smF1wQdylo0/f/Y/8lw8EPt/Er
         5R5ua/pgMVBx1hen+AQ9m3ranTK0fpd3Zogvb2Du+U9hT9ahdgNPHU52sbc8A/m8X49t
         aBf67qaG4ZN5z7LCfIQwqwOVMOnnBWQV2ILK1MNcCcV03TRakrtqtLXFgI3OCzzE/qAM
         C/Cz/uYcUzcxShmw/pPLZBDw+EsABxKx++RUejiknxBdbJw90qcjZpgwG70OW+7MDBaF
         XwMjtpP7HeejIqA2dketZ1Y5KwtEj7cLj6efNg2okFE5Cje/AY/EhGtGGtQ1lgYFIJxv
         aT6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778681111; x=1779285911;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=vZk4DuQaTrqFMq7vwcvBSZ7FBo8uSnF/2RWcSDO69h0=;
        b=k/WK6AxIExA3vRjPVzRvGSNX/4ic0417Dn2tsgjOfjWt2Ww7YDtTkeE5kQxg2S5YFG
         UR+pq8lGeb8R4XKJTHBL+JPR9fHzTAIUhVnTft8lS2vze/8QEGEfJA6BAUx+0vPwqdxg
         7FfZ9SORrHu04uF5q4D/ETn31Q1LzTDW2nUCGq2nySeVSQc8z4YGErn1Fnaen2X9akrf
         f2JaJ1IpU9amRXfK/UzSgxDJIFsoiYXUhuyjm+fuJcU+qb6fWViOIt6N6gtk5YtlRMGA
         l2yiOpWq5wfls6Xqi8kk2M9KbpN3Cg+r2aSqhd8m886FO2P4ij0oP5XSOah25zOLlOHl
         o7pw==
X-Gm-Message-State: AOJu0YzR/r2SXulx90cS5gyTRqV/439qmOzn+jzolN013/a3wMW3TevS
	vWPxMOAKh8U+bj4Fd/Y0Cp+8NCJf4gb6Z0vNl2AzOx5RnD9sd2txigWTRerkxziUz25PpxhntiU
	IGEw=
X-Gm-Gg: Acq92OEZhyzanA4wlDeYpocAbjKIpjxAlwlN4kOUaosz0Vt/F8HCiN7Bp0i4n7mQ8PZ
	T2DKyVrHjtaQBiYByUybFoi01lx/q6pRtEraisZr0mSnCBlXX66tzGfM4WkDUzSjNb7PCXZW7Iz
	CyS1W0hz2h/fjK6oalWfaAqDBAXxo80S3s6jMveCbb/6i96egFsBWRHjYND2NG9L3lpaF0tt4vX
	SiRACImeOR1GPD2V1fIJbc1SLVeVyTStynfs9ZUtDIwX33Cht4d/v0lZzZtP2oRusDVPCQe7fGH
	vnwC5TB0G5Jlut96NMl13E6cwgNn8+tsKrxLCxOnj/zyBwcupeFotaCcIfrbMHFnvBe8N2UcjKn
	0llUDq5+omhM39DtefJLmbupiakbcLCfvrr2NRcU4p8OcmdF6vOz4rT9XnCl7gV9emh1W+WmZOV
	Zw1iH69hdNbG4J/Xls9Cyg20r3mLulkBK4kAKwmyp+IdVhh22d5faxjfTK8R6UI65cWrB0Can4n
	iu4vvuUUIz5AJ0=
X-Received: by 2002:a05:6000:24c3:b0:448:8db5:410b with SMTP id ffacd0b85a97d-45c599ebcc5mr5726250f8f.20.1778681108528;
        Wed, 13 May 2026 07:05:08 -0700 (PDT)
Message-ID: <e3cdf68f-122a-4a41-a72c-8e6ed857b282@suse.com>
Date: Wed, 13 May 2026 16:05:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/2] x86: Misra rule 16.2
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1778681111-7035B8B7-0E0B13A7/13/0
X-purgate-type: clean
X-purgate-size: 191

https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
(covering more than just this)

1: mm: address Misra C:2012 rule 16.2
2: PV: address Misra C:2012 rule 16.2

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 13 14:09:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:09:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308107.1579648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAHU-000395-La; Wed, 13 May 2026 14:09:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308107.1579648; Wed, 13 May 2026 14:09:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAHU-00038y-IT; Wed, 13 May 2026 14:09:48 +0000
Received: by outflank-mailman (input) for mailman id 1308107;
 Wed, 13 May 2026 14:09:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wNAHS-00038s-HM
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:09:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNAHR-000mxS-UO
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:09:45 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a04861a-bab6-0a2a0a5309dd-0a2a4505d0c0-48
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:09:45 +0200
Received: from [40.107.162.58]
 (helo=PA4PR04CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a048629-aaa8-0a2a45050019-286ba23ab93a-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:09:45 +0200
Received: from AS4P191CA0012.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:5d5::11)
 by VI1PR08MB10298.eurprd08.prod.outlook.com (2603:10a6:800:1be::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 14:09:40 +0000
Received: from AM4PEPF00027A64.eurprd04.prod.outlook.com
 (2603:10a6:20b:5d5:cafe::24) by AS4P191CA0012.outlook.office365.com
 (2603:10a6:20b:5d5::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.12 via Frontend Transport; Wed,
 13 May 2026 14:09:40 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00027A64.mail.protection.outlook.com (10.167.16.75) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Wed, 13 May 2026 14:09:39 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AMBPR08MB11654.eurprd08.prod.outlook.com (2603:10a6:20b:737::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 14:08:37 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 14:08:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=wKkPM54Ywb64mCG8VXRZomIGCWZUy9vgN5Rh+5Np+jx2QuWG3MCauTRqXity80fP2l7nIs3T5KHR0prdzelQW+QSy2KliLXoCCxjgIqk7SHeNY+Sc77jYtaz1Pv0YiLWjwID3n3C1n1zjXJDnrF/j1z3bccPLooDm4dwuQggOXcanSrO7ICk9ryOW6+PjTMVwUGpZ7+6fuwF0YptLiBuzcHEP60pf1Yqopv17LxRdbpY9K3uNJQnhXtaJrNun73Za9zTG1EUr6B/GKgJPiyX/KuvXZ6+PS7nMv/94ORdpqE4njWrFpJ+48ez5xrmY5Xd9+qCQnTQMAtV0MRctljkoQ==
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=ZL4+9RzTBp0OdibY7cDOYg9n7P0dqjXUmHHEHExTaC4=;
 b=WTFxJhu1ObFEFYii43vzitJt3wPvjnGV6RHHd5lqv2GDHSLds8epO1Z1WzrCl44ZqV2VwpWLIlYKv+fO+KLJZ+6ZhLVv+dmsjXTzNg/qaFNdCNL2X11QCOHftgytitup07ptSZ38oaYzk8I9ImIY802DqA1LDT6Ho8qBbzLcL6LT1hMKabs6OoeCyZxMYP5lfScAXasXd0NOmtR8RaIhnme2cXroD1RK668W3rfeGugj2AuNtFOrb6yzj5zwPl9GBvwQpOEgTW0ZNx4c8CdymjTpLF4OIfkW7cpG81ES5ws+EvDVQ85rn0KEO5cZo1N35WM9sn4PGmfIrqRHi5tVQA==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZL4+9RzTBp0OdibY7cDOYg9n7P0dqjXUmHHEHExTaC4=;
 b=P1Nb8gdUlnhf5v3I31V7u+5+8IicXT0UVwvejnGBMfPfPgrh7G7tDCz2GF1FKX6Wk80T4lLf3PKPXOpZmHATnU46DqdMOmbc+i6HU3wjpkka03z4D5ZovOt2ANfb1pYwq9ZG0N3VJBGqV7cDR11wziCCZ/ISK8dOl4GJYTiiBSg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vLMu3WoSwNNhsYhWK5jgeF+E9TzOWgsXeZudK5Q4332VIEAAllpq5NbyaDTP64PxlpzxNShbnptbuohx/PezKUaYRDESWQYImpIeRmwtI7p45HRggaANFmUm6ptFnMvwTSyA3cnJdEuodsO2B6NWSPv8cdsICuZjau7L15O4/zVA5j9pB8+yBxH1AwjCA5vyOaA70RJmZTKUceUm9X1JMmQ8zsCQx2THnRp2+nsWeLUd2I4tqI12/bsBvDPIhpMw4+vFEWLBO1ZGdpqWeKU+alwFMqbOO+dBSXfJR2/6RdfnQmeaKsis5xPSS3Gu8MIWCbqKMuE34ErlicpkoX5Onw==
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=ZL4+9RzTBp0OdibY7cDOYg9n7P0dqjXUmHHEHExTaC4=;
 b=bpop2uDrmmW0xFIcXxuqP78rrwOjsBinFeoQLx/DlaoZV52W0G4zI8YT36IPONPYG8ok+rcfg/IrmrkwlLZM3yADPA7ilinSX0jP0/kIdhzo8R25lq9uqDFUpypJsUSx0Sohud1Yp38LCE9DCEpY3sADFFU3H+yahg0zuxXTBvPhoX43vBXZYek7leflibcL0So5ybIHZlY4xCkDY1Tbdrc6Bi/uQkqd90B3VDlu8Sjh7GNLCcjidSKQJRSgYsvCiA4AF46Aym2F+RfAfiKHfGGOvJeVzNWe6ZnVzhp5dTNStAjYFx1SZmvWchfH9EToQxSf0QaO6fRMUxv3zKhBIg==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZL4+9RzTBp0OdibY7cDOYg9n7P0dqjXUmHHEHExTaC4=;
 b=P1Nb8gdUlnhf5v3I31V7u+5+8IicXT0UVwvejnGBMfPfPgrh7G7tDCz2GF1FKX6Wk80T4lLf3PKPXOpZmHATnU46DqdMOmbc+i6HU3wjpkka03z4D5ZovOt2ANfb1pYwq9ZG0N3VJBGqV7cDR11wziCCZ/ISK8dOl4GJYTiiBSg=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v9 02/13] xen/arm: gic-v2: Implement GIC suspend/resume
 functions
Thread-Topic: [PATCH v9 02/13] xen/arm: gic-v2: Implement GIC suspend/resume
 functions
Thread-Index: AQHc4jIxK7EE6l+HQkWYC60FHhQX47YL/3OA
Date: Wed, 13 May 2026 14:08:37 +0000
Message-ID: <8E531A25-5AB5-41CD-AB61-C426C58C8E1C@arm.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <613c8d67a66924ea62c2436dac14708d939f6784.1778605274.git.mykola_kvach@epam.com>
In-Reply-To:
 <613c8d67a66924ea62c2436dac14708d939f6784.1778605274.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AMBPR08MB11654:EE_|AM4PEPF00027A64:EE_|VI1PR08MB10298:EE_
X-MS-Office365-Filtering-Correlation-Id: af369cf1-e237-4296-552b-08deb0f945ed
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|11063799003|3023799003|56012099003|18002099003|22082099003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 SJXK3x9hx/8ZxXZilPXd4OOg3r7sOwsJwMWEwJwGpSZJpu9FW5a8xftobkEE3K4VAoueu0KqdbefgUrSc3HR2Poamj1oM4m75Zyxu/d1B7b3OYJQySRr/PjiWWVZqHYLv9Lt9PAGzSuHZwuqozpYrmbZlqxogs6dCr7ewIBDfqAAxXuomSQsccCb9edAWDyaFYfFPOZ0btdXcRrk4CKzqWlukedqYhADrBdvz0QdirEh/x8KyDfoYm9shRVMwqh448NNlQUSDGV4HzRQhCyMAPWa2J5RRI6iTeFBAJ8xImTSP5tOkPn1bzEfRyyhrK570ljhKK8W0OuwS0mRlTFW5nqnZZwYCMWFbWsH7UuyEGYLF5G23aILChdNYMuiW4aEGR5fsvfm9VjiUuv6e9lGUhWrm6/S7jpfCZkoLow0j4DL4n3H5f30jXKPyVEqdBUFPnEdYqU0uteth9aXoHwQRGRKLolTUkRvpRX6S2ErlzO/lvW1cisvm6q8uqvaNA+zXntUc+Ekm/X71qhQAcQiL4eD1bbXIQDLHcBK09Ce6suLWufGHsiGaJhEwUljo5QSf3M3FRRvr43YJB5UHrqFGzIKX8vaIXJGJvBcxNQEt0eGJFP4ZgP9yzHrJ/TuzjC7E+A4bw1nEcR0PJr9tVXRKNsnizzMmH5cdIfysDbhhlJ8in1YplM5AGd+dIG4sRvsqYwUcptX3NZ5IvjTfK0jDPFVLnWAUh/gTouC4A9s6/vkx9UhO4oSqQ+9vSXmd+ve
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(11063799003)(3023799003)(56012099003)(18002099003)(22082099003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <684EAB3BC4066A45B220CAD2BCC87390@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 vpLHyHnzjPSY3Rit+9LVuoySkFe/fVRLGcnRpr8PoLEWFWa2Lh0yGRrTFtuFLGBZ+T93nYhquSpbUGkhXqleLu13OW1SiJED2i6i8LcvU/MNBqIA8ITDZIuqvzzPnHw6uHncy+gDAuEBhEsiEjdVgPmlfIlckie55BKjDGFCxsiuHczY7Q8Kkzu3bDtlBXBaNEgQBCyGH1IsFgmiTdFf+y6eyq5jPSurvBSHQY2pyzQ7J1oZaFrKa3bfHFJEFevC11EZOXBc27RMQUnYrSuy+jQ/mpcqRgSagn5R/gy4Wc60UimZW6CeU9wCNFZ3MzT58oPzitFHdUszRI183di3vg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR08MB11654
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00027A64.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	dd135dd9-a355-4657-c24e-08deb0f92092
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|14060799003|376014|35042699022|82310400026|36860700016|22082099003|18002099003|3023799003|11063799003|56012099003;
X-Microsoft-Antispam-Message-Info:
	dINLBE6m/7ervEK7Xhg37YyIRySDa7D4FJhTILkEj/lxZDzQDdNI6LCyFbk6ldqoaaIaJyytdFg5WGBSguVP5FKHkCvrXZTZIW5/aQpm+vzVei3YyM5eTfHMd7xhns/AydNFXxEFhHj02y0FCZX5Vn2vDjzgenlo1F8rQgZ6M+X6oplEW2XBSRjvUrP49D6EGudYWpU3v1CZ1+X9RFWhvZOQ/atLpQCeW80bN8BRh6pnqFKbuuQrJ1bG9GSLPDdpKW2osmsW8Nut8e7ozGTtvUt8effhQrXZkAO0NkednOfYxzamfnsHp9wurk8aOw3aqONSaCFrqfnk7DdK0lVwJkZklTpYKk2pWmOmDhN2fHcEv/EjQMD2f6kWtgImQx0pGCgHVAq01JzQRWVh/tGkR/KLw1gTunrFyWua1umLvkNs6K2042xvh1uEUIUsRmtYupuTDuIHTzm9yFNeQcoU147f5Rjwg9hTSN1khYFrwc2+727X1E9XKzC1+SouGFtmyYZZk+kH29sv7ehV/zTNOhs8DrhhGXcZ8+4YyIBEhTCxbbwUMiIBC+cn4xDK1SqeTCLhoP5+G8sd0HxJzVzdYR7MJZtEZhZJh5liMqzWLEYE/cePRL+Ymab/vpvYUJxjcxqTJTf470MpZBuR26BcDChR82xOf3Uyue3xzW9GyO1Fp/kVRi5TG3KDAl7RHefwdPjUOqhwaodTiVlzj7MfHVBgdGGrnhJ7yiwGttueOZ0=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(14060799003)(376014)(35042699022)(82310400026)(36860700016)(22082099003)(18002099003)(3023799003)(11063799003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	+y6noabc7xBqJPLrLpP1xD4WA6uJxouI2HS9NQ7BUJiN+b9eCmCySIMNPa4tmHWcASn/wr2PvLwwBjChFHpFM+fRsN12uBTgKSrD2PFpn7KP6s1MKhZVTuIIO+1Z1+XWyY9otuMw2Gag/V3FYrFA5Xgig8eYmGW4+f08Xw8VSL8QfY2YuovsvuWLLZ47InTFqcwFYii6Pm17a/Js9Yyukulq2qy4h9Qww0BOliJwVzMiCye8JQVX7fn6KWQEQP1HJWl1dfU8nbri14BT8OGFkuUkqJ5ZT9F6bSG87/zaIVBkw53JnxE5Y0oN/vE9yBZLQfrwHqGJiOUW90kchd/lioqB5R+t2VrP25TzN8M7oZI0mVmqid++C4D+Jh/0XKAmUalYnYihWtvWXVKZFKojGzWBrbfUpP4yQniT1dEiDc8mIS0NjlSh0nUiSTnraI0C
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 14:09:39.8671
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: af369cf1-e237-4296-552b-08deb0f945ed
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00027A64.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB10298
X-purgate-ID: tlsNG-c201ff/1778681385-E1D9D443-CEE6ECCB/0/0
X-purgate-type: clean
X-purgate-size: 6792

SGkgTXlrb2xhLA0KDQo+ICsNCj4gK3N0YXRpYyB2b2lkIGdpY3YyX3Jlc3VtZSh2b2lkKQ0KPiAr
ew0KPiArICAgIHVuc2lnbmVkIGludCBpLCBibG9ja3MgPSBESVZfUk9VTkRfVVAoZ2ljdjJfaW5m
by5ucl9saW5lcywgMzIpOw0KPiArDQo+ICsgICAgZ2ljdjJfY3B1X2Rpc2FibGUoKTsNCj4gKyAg
ICAvKiBEaXNhYmxlIGRpc3RyaWJ1dG9yICovDQo+ICsgICAgd3JpdGVsX2dpY2QoMCwgR0lDRF9D
VExSKTsNCj4gKw0KPiArICAgIGZvciAoIGkgPSAwOyBpIDwgYmxvY2tzOyBpKysgKQ0KPiArICAg
IHsNCj4gKyAgICAgICAgc3RydWN0IGlycV9ibG9jayAqaXJxcyA9IGdpY19jdHguZGlzdC5pcnFz
ICsgaTsNCj4gKyAgICAgICAgc2l6ZV90IGosIG9mZiA9IGkgKiBzaXplb2YoaXJxcy0+aXNlbmFi
bGVyKTsNCj4gKw0KPiArICAgICAgICB3cml0ZWxfZ2ljZChHRU5NQVNLKDMxLCAwKSwgR0lDRF9J
Q0VOQUJMRVIgKyBvZmYpOw0KPiArICAgICAgICB3cml0ZWxfZ2ljZChpcnFzLT5pc2VuYWJsZXIs
IEdJQ0RfSVNFTkFCTEVSICsgb2ZmKTsNCj4gKw0KPiArICAgICAgICB3cml0ZWxfZ2ljZChHRU5N
QVNLKDMxLCAwKSwgR0lDRF9JQ0FDVElWRVIgKyBvZmYpOw0KPiArICAgICAgICB3cml0ZWxfZ2lj
ZChpcnFzLT5pc2FjdGl2ZXIsIEdJQ0RfSVNBQ1RJVkVSICsgb2ZmKTsNCj4gKw0KPiArICAgICAg
ICBvZmYgPSBpICogc2l6ZW9mKGlycXMtPmlwcmlvcml0eXIpOw0KPiArICAgICAgICBmb3IgKCBq
ID0gMDsgaiA8IEFSUkFZX1NJWkUoaXJxcy0+aXByaW9yaXR5cik7IGorKyApDQo+ICsgICAgICAg
ICAgICB3cml0ZWxfZ2ljZChpcnFzLT5pcHJpb3JpdHlyW2pdLCBHSUNEX0lQUklPUklUWVIgKyBv
ZmYgKyBqICogNCk7DQoNCmFwb2xvZ2llcyBmb3Igc3BvdHRpbmcgdGhlc2Ugb25seSBub3csIGlu
IGNhc2UgZ2ljdjJfaW5mby5ucl9saW5lcyBpcyAxMDIwLA0KaGVyZSBhbmQgYmVsb3cgZm9yIEdJ
Q0RfSVRBUkdFVFNSIHdlIGFyZSBnb2luZyB0byBzYXZlIGFsc28gSURzIDEwMjAtMTAyMw0Kd2hp
Y2ggYXJlIHJlc2VydmVkLg0KDQpDb3VsZCB3ZSBhc3N1bWUgaXJxcy0+aXByaW9yaXR5ciBhbmQg
aXJxcy0+aXRhcmdldHNyIGhhdmUgdGhlIHNhbWUgc2l6ZSBhbmQgaW1wbGVtZW50DQpzb21lIGNh
cCBsb2dpYyB3aGljaCBtaWdodCBjYXAgdGhlIGxhc3QgbG9vcCAoZXZlbnR1YWxseSk6DQoNCiAg
ICBmb3IgKCBpID0gMDsgaSA8IGJsb2NrczsgaSsrICkNCiAgICB7DQogICAgICAgIHN0cnVjdCBp
cnFfYmxvY2sgKmlycXMgPSBnaWNfY3R4LmRpc3QuaXJxcyArIGk7DQogICAgICAgIHNpemVfdCBq
LCBvZmYgPSBpICogc2l6ZW9mKGlycXMtPmlzZW5hYmxlcik7DQogICAgICAgIHNpemVfdCBucl9y
ZWdzID0gQVJSQVlfU0laRShpcnFzLT5pcHJpb3JpdHlyKTsNCg0KICAgICAgICBpZiAoIGkgPT0g
YmxvY2tzIC0gMSApDQogICAgICAgICAgICBucl9yZWdzID0gRElWX1JPVU5EX1VQKGdpY3YyX2lu
Zm8ubnJfbGluZXMgLSBpICogMzIsIDQpOw0KDQogICAgICAgIFvigKZdDQoNCiAgICAgICAgb2Zm
ID0gaSAqIHNpemVvZihpcnFzLT5pcHJpb3JpdHlyKTsNCiAgICAgICAgZm9yICggaiA9IDA7IGog
PCBucl9yZWdzOyBqKysgKQ0KICAgICAgICAgICAgd3JpdGVsX2dpY2QoaXJxcy0+aXByaW9yaXR5
cltqXSwgR0lDRF9JUFJJT1JJVFlSICsgb2ZmICsgaiAqIDQpOw0KDQogICAgICAgIC8qDQogICAg
ICAgICAqIEdJQ0RfSVRBUkdFVFNSMC4uNyBjb3ZlciBTR0lzL1BQSXMgYW5kIGhvbGQgbm8gc3Rh
dGUgdG8gc2F2ZToNCiAgICAgICAgICogdGhleSBhcmUgcmVhZC1vbmx5IG9uIG11bHRpcHJvY2Vz
c29yIGltcGxlbWVudGF0aW9ucyBhbmQgUkFaL1dJDQogICAgICAgICAqIG9uIHVuaXByb2Nlc3Nv
ciBpbXBsZW1lbnRhdGlvbnMuDQogICAgICAgICAqLw0KICAgICAgICBpZiAoIGkgKQ0KICAgICAg
ICB7DQogICAgICAgICAgICBvZmYgPSBpICogc2l6ZW9mKGlycXMtPml0YXJnZXRzcik7DQogICAg
ICAgICAgICBmb3IgKCBqID0gMDsgaiA8IG5yX3JlZ3M7IGorKyApDQogICAgICAgICAgICAgICAg
d3JpdGVsX2dpY2QoaXJxcy0+aXRhcmdldHNyW2pdLCBHSUNEX0lUQVJHRVRTUiArIG9mZiArIGog
KiA0KTsNCiAgICAgICAgfQ0KDQogICAgICAgIFvigKZdDQogICAgfQ0KDQo+ICsNCj4gKyAgICAg
ICAgLyoNCj4gKyAgICAgICAgICogR0lDRF9JVEFSR0VUU1IwLi43IGNvdmVyIFNHSXMvUFBJcyBh
bmQgaG9sZCBubyBzdGF0ZSB0byBzYXZlOg0KPiArICAgICAgICAgKiB0aGV5IGFyZSByZWFkLW9u
bHkgb24gbXVsdGlwcm9jZXNzb3IgaW1wbGVtZW50YXRpb25zIGFuZCBSQVovV0kNCj4gKyAgICAg
ICAgICogb24gdW5pcHJvY2Vzc29yIGltcGxlbWVudGF0aW9ucy4NCj4gKyAgICAgICAgICovDQo+
ICsgICAgICAgIGlmICggaSApDQo+ICsgICAgICAgIHsNCj4gKyAgICAgICAgICAgIG9mZiA9IGkg
KiBzaXplb2YoaXJxcy0+aXRhcmdldHNyKTsNCj4gKyAgICAgICAgICAgIGZvciAoIGogPSAwOyBq
IDwgQVJSQVlfU0laRShpcnFzLT5pdGFyZ2V0c3IpOyBqKysgKQ0KPiArICAgICAgICAgICAgICAg
IHdyaXRlbF9naWNkKGlycXMtPml0YXJnZXRzcltqXSwgR0lDRF9JVEFSR0VUU1IgKyBvZmYgKyBq
ICogNCk7DQo+ICsgICAgICAgIH0NCj4gKw0KPiArICAgICAgICBvZmYgPSBpICogc2l6ZW9mKGly
cXMtPmljZmdyKTsNCj4gKyAgICAgICAgZm9yICggaiA9IDA7IGogPCBBUlJBWV9TSVpFKGlycXMt
PmljZmdyKTsgaisrICkNCj4gKyAgICAgICAgICAgIHdyaXRlbF9naWNkKGlycXMtPmljZmdyW2pd
LCBHSUNEX0lDRkdSICsgb2ZmICsgaiAqIDQpOw0KDQppbiB0aGUgR0lDdjIgc3BlY3MgdGhlIHVz
YWdlIGNvbnN0cmFpbnRzDQpvZiBHSUNEX0lDRkdSIHNheXM6IOKAnEJlZm9yZSBjaGFuZ2luZyB0
aGUgdmFsdWUgb2YgYSBwcm9ncmFtbWFibGUgSW50X2NvbmZpZyBmaWVsZCwNCnNvZnR3YXJlIG11
c3QgZGlzYWJsZSB0aGUgY29ycmVzcG9uZGluZyBpbnRlcnJ1cHQsIG90aGVyd2lzZSBHSUMgYmVo
YXZpb3IgaXMNClVOUFJFRElDVEFCTEUiDQoNCkFSTSBJSEkgMDA0OEIuYiwgNC4zLjEzLg0KDQpJ
IHRoaW5rIHdlIHNob3VsZCBtb3ZlIHRoaXMgcmVzdG9yZSBqdXN0IGFmdGVyIEdJQ0RfSUNFTkFC
TEVSIHdyaXRlLCBiZWZvcmUgd3JpdGluZw0KR0lDRF9JU0VOQUJMRVIuDQoNCkFuZCBhbHNvIHRo
ZSBzZWN0aW9uIHNheXMgdGhhdCB0aGUgR0lDRF9JQ0ZHUjAgaXMgcmVhZC1vbmx5Lg0KDQpMZXQg
bWUga25vdyB5b3VyIHRob3VnaHRzIG9uIHRoYXQuDQoNCj4gKyAgICB9DQo+ICsNCj4gKyAgICAv
KiBNYWtlIHN1cmUgYWxsIHJlZ2lzdGVycyBhcmUgcmVzdG9yZWQgYW5kIGVuYWJsZSBkaXN0cmli
dXRvciAqLw0KPiArICAgIHdyaXRlbF9naWNkKGdpY19jdHguZGlzdC5jdGxyLCBHSUNEX0NUTFIp
Ow0KPiArDQo+ICsgICAgLyogUmVzdG9yZSBHSUMgQ1BVIGludGVyZmFjZSBjb25maWd1cmF0aW9u
ICovDQo+ICsgICAgd3JpdGVsX2dpY2MoZ2ljX2N0eC5jcHUucG1yLCBHSUNDX1BNUik7DQo+ICsg
ICAgd3JpdGVsX2dpY2MoZ2ljX2N0eC5jcHUuYnByLCBHSUNDX0JQUik7DQo+ICsNCj4gKyAgICAv
KiBFbmFibGUgR0lDIENQVSBpbnRlcmZhY2UgKi8NCj4gKyAgICB3cml0ZWxfZ2ljYyhnaWNfY3R4
LmNwdS5jdGxyLCBHSUNDX0NUTFIpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBfX2luaXQg
Z2ljdjJfYWxsb2NfY29udGV4dCh2b2lkKQ0KPiArew0KPiArICAgIHVpbnQzMl90IGJsb2NrcyA9
IERJVl9ST1VORF9VUChnaWN2Ml9pbmZvLm5yX2xpbmVzLCAzMik7DQo+ICsNCj4gKyAgICBnaWNf
Y3R4LmRpc3QuaXJxcyA9IHh6YWxsb2NfYXJyYXkoc3RydWN0IGlycV9ibG9jaywgYmxvY2tzKTsN
Cj4gKyAgICBpZiAoICFnaWNfY3R4LmRpc3QuaXJxcyApDQo+ICsgICAgICAgIHBhbmljKCJGYWls
ZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBHSUN2MiBzdXNwZW5kIGNvbnRleHRcbiIpOw0KPiAr
fQ0KPiArDQo+ICsjZW5kaWYgLyogQ09ORklHX1NZU1RFTV9TVVNQRU5EICovDQo+ICsNCj4gI2lm
ZGVmIENPTkZJR19BQ1BJDQo+IHN0YXRpYyB1bnNpZ25lZCBsb25nIGdpY3YyX2dldF9od2RvbV9l
eHRyYV9tYWR0X3NpemUoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCkNCj4gew0KPiBAQCAtMTMxMiw2
ICsxNDg0LDExIEBAIHN0YXRpYyBpbnQgX19pbml0IGdpY3YyX2luaXQodm9pZCkNCj4gDQo+ICAg
ICBzcGluX3VubG9jaygmZ2ljdjIubG9jayk7DQo+IA0KPiArI2lmZGVmIENPTkZJR19TWVNURU1f
U1VTUEVORA0KPiArICAgIC8qIEFsbG9jYXRlIG1lbW9yeSB0byBiZSB1c2VkIGZvciBzYXZpbmcg
R0lDIGNvbnRleHQgZHVyaW5nIHRoZSBzdXNwZW5kICovDQo+ICsgICAgZ2ljdjJfYWxsb2NfY29u
dGV4dCgpOw0KPiArI2VuZGlmIC8qIENPTkZJR19TWVNURU1fU1VTUEVORCAqLw0KPiArDQo+ICAg
ICByZXR1cm4gMDsNCj4gfQ0KPiANCj4gQEAgLTEzNTUsNiArMTUzMiwxMCBAQCBzdGF0aWMgY29u
c3Qgc3RydWN0IGdpY19od19vcGVyYXRpb25zIGdpY3YyX29wcyA9IHsNCj4gICAgIC5tYXBfaHdk
b21fZXh0cmFfbWFwcGluZ3MgPSBnaWN2Ml9tYXBfaHdkb21fZXh0cmFfbWFwcGluZ3MsDQo+ICAg
ICAuaW9tZW1fZGVueV9hY2Nlc3MgICA9IGdpY3YyX2lvbWVtX2RlbnlfYWNjZXNzLA0KPiAgICAg
LmRvX0xQSSAgICAgICAgICAgICAgPSBnaWN2Ml9kb19MUEksDQo+ICsjaWZkZWYgQ09ORklHX1NZ
U1RFTV9TVVNQRU5EDQo+ICsgICAgLnN1c3BlbmQgICAgICAgICAgICAgPSBnaWN2Ml9zdXNwZW5k
LA0KPiArICAgIC5yZXN1bWUgICAgICAgICAgICAgID0gZ2ljdjJfcmVzdW1lLA0KPiArI2VuZGlm
IC8qIENPTkZJR19TWVNURU1fU1VTUEVORCAqLw0KPiB9Ow0KPiANCg0KSSBkb27igJl0IGhhdmUg
YW55IG90aGVyIGZpbmRpbmdzIGZvciB0aGlzIHBhdGNoLg0KDQpDaGVlcnMsDQpMdWNhDQoNCg0K
DQo=


From xen-devel-bounces@lists.xenproject.org Wed May 13 14:24:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:24:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308119.1579658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAVo-0006DS-0K; Wed, 13 May 2026 14:24:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308119.1579658; Wed, 13 May 2026 14:24:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAVn-0006DL-SO; Wed, 13 May 2026 14:24:35 +0000
Received: by outflank-mailman (input) for mailman id 1308119;
 Wed, 13 May 2026 14:24:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNAVm-0006DF-3X
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:24:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNAVl-0058n7-Gh
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:24:33 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a048995-2eae-0a2a0a5409dd-0a2a4506a7f0-36
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:24:33 +0200
Received: from [52.101.61.64]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a04899f-7371-0a2a45060019-34653d40a8ba-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:24:33 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH7PR03MB7244.namprd03.prod.outlook.com (2603:10b6:510:24b::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 14:24:26 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 14:24:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vQKBa61HGYdIIZY6hFXCMPPK/rDuwNK3wcRkQfXFlSkDkJ921rspBUOQCZmV5AW5mxJV4WyvaSuHb54tR3Mj+Uve2RyHt58l169JDlEPUer18SOkSnWkX/WrPblYZNKWOvm6v8O/rELGjfBkuyHi7/toMCyfQoATWGhJkGx0W/kCiOuy4becStj4bPRYNTrCwv8y7MFZ2Smjsisou7wo/ak0vU5mo1pYIPC8BUecVgh7iIBaKJ3eDxq7MuwW88izawZZnTmAlBvH7IBQdgpo6bdOwJwpXNLR53vEvVsCd9EAXN/k+9k8PzNKL6bDB2QQW0RzEVNaUkWD5rqsfrzuOQ==
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=L6tH1DzWP7kTqpyEIXpYlbkFd2UO+V+9H697SiL9rhk=;
 b=Mf4BxlYIZoS72Hh3R1xUcBNCZLFqQgtUU+PFDMNNxuETw5C/NoPhH6X+d9XABSTIvzNOO+ibDxrcLC1keOSSCSrRoe11jEKRjR9L3T222PeBVwtD+nWyFF/wY7fsikKYFCjIagjwSmMyzBwv7g39cVzg35puC01xs9OS6pPEV6Vq6ud3cZT72ydr9TDPQ9Nop6wpjTLQaUYazoqjhJdibF8wm8aiVAtxtwnaMyJo2euh0U8KcrDop6qT9CAofBg0xsSovr20Iwb4WBVujSTeTw1S442R9xbXG316aM3IEmDRn/CI0P6kkLM1+XoE4XujQ7LA6d21hWeONXs881Fz6g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L6tH1DzWP7kTqpyEIXpYlbkFd2UO+V+9H697SiL9rhk=;
 b=uig2ThJBsFeJUS5WN0PI/SAe08vkyi3nHfHdboaQHyfQ8QIYXxYiuyo9ZJkmjG4K49uMlfM+OJFDL+dcCHBMuvpqv0aZmGUTy4vfdozxDImD2Xx0iEO0IHNYAG7ELXzvRbiQI9SmmrN+g1RQeyicaV3OolSoNh2HAMtZpZHY3wU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 13 May 2026 16:24:22 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.22 3/5] x86/vRTC: support century field
Message-ID: <agSJlh8KQ9orL6wC@macbook.local>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <383355d1-7032-4445-8a06-cb4411ea797e@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <383355d1-7032-4445-8a06-cb4411ea797e@suse.com>
X-ClientProxiedBy: MA4P292CA0004.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2d::10) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH7PR03MB7244:EE_
X-MS-Office365-Filtering-Correlation-Id: 60fcb7ec-f781-4ecf-c073-08deb0fb55d8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|22082099003|18002099003|18092099006|56012099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	xsVt6L44x2qtZsVXhC0uZmP3N0tsoU6sw+5JCQQy9frOc9SVu4lOkJnBJACDmNBgNqDh5oyPb195MZa13IVmSJ27zShPI27fieTfqcJK4ELjeY55Z+Z97two4psdyht2Gyc6Ya2wy76ieoNojHfrHdiNylwSecR1QiJ0qkRTHlku6k/znXt7XHcYF7nn2jogeFgTTxulLrg4hFhjIPgn8MxXhR4+/XWYGXdWi6R6kQNqpTtuyreEoEx7cRj2kk0X6SJj/3aUzBmM6fI/wtBSnJtu7EoTGyzUn3pkpRurZSVmJvfRxU1jMw5NojTsWYijnJd+nt13qrVTFANwCfQfZtkb6L0EU4YZgmKoy708QZnH9wTKk7Mdz9VBpVDAkZX1UzQSIXSA8pLjoFfTa4d878zC17uW8QGzlVXrURvNuL0wI2Ahi7lIPqDnztzK8ZlEdT9Lvyf2SDoUX3adLb6i89WqZejOXPdC3Mp5C/ZEvrHAAvJX7ajxcfppK4RGQeoKR0jRtUfHt3/QF1zJvCUurfMfP7f1uFyyfX3pOFmuiHDrPTRnJXyAnV+0e+kN6FWsuq7vf4sgJWub8VET8/g2e+N4oXrANdBLn5rWg7rMZgOR4n545TPZhjHg2ZKMCfNwJimTo/dQgbjy4ohoEkZPwBc2cS8yozNIH9GlYn1MYCG3Dizc4tS5y5LHFIsDdR4n
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(22082099003)(18002099003)(18092099006)(56012099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Wk9OSEpQMDJCMWZEUkRZR0ZNZXRDeGJDNmZzQlo3WUlZSzJVb1lHTlJTMVBX?=
 =?utf-8?B?UC9jV1pNM0ZYek52OG1PUDVuV1hTc3JjTDdDK1FYa3dzalJqTGNxeEVNVmlT?=
 =?utf-8?B?LzRYb2lsdHJueWphOHpQTWFaV1lJeHFYTmppcGN4N0RvUGxFUXJqaStTZW5Y?=
 =?utf-8?B?Rld6SC84KzUrTTdsVXhLNDFjMUVyaC8yd1NxZy9zK2Q1NTlFcFRnWDJaK1Z0?=
 =?utf-8?B?dmwwcnVjNjZOejljcFcvbVZhR2VSVmV4bFgvVlpJS0ZibzVLaVlsdEpneEox?=
 =?utf-8?B?SlBQNnFoanlicVFtZmVVZDdSOE45VWNucnJrdEtuV2x0b2NKcHVYV0RwTEpu?=
 =?utf-8?B?YkV0UzFnR1FlRHJyaFhXaHpaU2tZT3VvOTAxbXNQL2ZOdWgwdDYwNHdiR0dW?=
 =?utf-8?B?VUF0QklQVzFlQ2U0dlBzeDZjNFZJcnJzdWpSZ0s5YlBsN0ZlcnpkdnhNcFFl?=
 =?utf-8?B?eUNkcWJKcVJFMlgvSkZkNUlyNkNlMUdkSDdpRGFyZURWd1hlYnIrSXZrTG1Q?=
 =?utf-8?B?OUxqV0V4U0RVNG5lOWtzR2t6NVU1dlRWL2xOcnprOGtodXF0NXdYUWJqcFFQ?=
 =?utf-8?B?alNOSkU1eWp6RExzYXllNFFpMGxDTkl4OHZvQTVvbnBUa3pXa3hyd3hRaCtQ?=
 =?utf-8?B?Vi96Z0dKSkp4UmlmS2l6UHR1cW01OTNTMlhaVllML1ovK3dRS2pIemZwNmFR?=
 =?utf-8?B?NGNLQWNtclhPVk1CUWNIL05nMEsvbHlpOUNwRzBTdjNQQW5rRTM0UjhzWm4v?=
 =?utf-8?B?emUyT2xOZ045Wnd3dE53YUkzV3J0bXZ6dXM0dFRnaDBUcmNidnh6MUx2L25J?=
 =?utf-8?B?QThweXhvbVFob05ycGF3R0hSdWd1TVdXM3ZSRkVuRGxYTkxzRVVuN1NkOS9t?=
 =?utf-8?B?dFpIRldNV3NncENkNExuVkhMZ3p1R2xrOEF4K2ZTMzc3OUMvYjJqRFp1WFJP?=
 =?utf-8?B?TWlFblFCcjJWamtXRnJzVTlxd1A5Z1ExV3M4Sk81bGJpYUhqRG9vMlNKa0Yy?=
 =?utf-8?B?M3lZN1pyVFZQakdSdmpPTXo5WDczbFBjcGoxRlVFTmViRTF4UW13T2w4NkRx?=
 =?utf-8?B?cjVvd0xQRU1KcjgxcTJNREl1TC9hRDVtNGFGWUVOQUdDSGRzY2hOK0hLT041?=
 =?utf-8?B?cUtZNmxneTZtajUwWTdub3VHbFFJQlVweTh1L3ZmL2tiRnRmRXZIbUxZNVlx?=
 =?utf-8?B?enVXWHFQUEg5d2o0ZHMzQjhLTkZHd2xxUHNZL3NzeHkvNktaQlpSQndvQWdo?=
 =?utf-8?B?Uk9USkhCNE81SXdlOWdiMXVlaUt4QVo5d1NGSk0vM1MwWUUycXlXa0ZaUmVx?=
 =?utf-8?B?akhxeDYrbFVja1RCM2d2VXVWb3IzU3cvc0t4ZXhTdnU5cG5BZEpoQzRnZ0R0?=
 =?utf-8?B?M3N2cVV2emVCSVZicWNVT05iTWhMUHZpVHlnSm5HUUlkanhVSWF5cVhjVTA4?=
 =?utf-8?B?RHNpZlQxUTdyazJLYy8yazREVnBlZkhmNTYzZHRLS29OdElCVGFhM2xsWGRB?=
 =?utf-8?B?UEdMMlRKdWhvUHlhemtMYWxsaU5QamJkTXZmQmxLQk02Uk0zK1ZxR2oxRW0r?=
 =?utf-8?B?K0g4Z1Mvd2tCMUNwdVlCZGwySndHaVluVGtRTTFidElENWMrVFUxVyt3Szgr?=
 =?utf-8?B?NEtGcHZPa2lXNTkxelBhZ3ZYNkZZZmtGbTZaZGsyeTBvZ1BCT055dGNnY0N1?=
 =?utf-8?B?VTJJbFBVR2dWa1IzOERQNmFyWEdNeTBPcFBmQzVNb0lCOHVtc1ZxcmNDYisw?=
 =?utf-8?B?eWRhYk93eGxhTkRJd3JxaGNJNS9vMmxkS2g3eWpqbVBCaVc5RzdYUGZtcEhC?=
 =?utf-8?B?N0JxR0RsZDdHVUROd1dNNjd6cmhlemxqdFNrTUQ3cFZhcGU0cER4aE1Cai8x?=
 =?utf-8?B?MGRpbW5uckVtZUlZbTlVakc3UEM2bEFPNTVmak5DUjJDU1E0SG1zUjRnNmtO?=
 =?utf-8?B?eHVCc2gxRjdOR05NZElOTmMzWGFLWnFCaENwTU9SNy84VEpxNEkvNngyM3Bl?=
 =?utf-8?B?UjZiQWszVHJ3SVpGZlVhUTI4aDFQYk1xWGxYMUxyMHFvTkxacUJZL2RLSS9q?=
 =?utf-8?B?M0FGbXIva0RMM1pUcWNkc01wM3FjNkZBUDRVZWdXMlJNYWhlNTNFejJEUUVv?=
 =?utf-8?B?eVd5R1dDUFlwTU5lMldtcnpocUYzUU9MbDN5a3F2dzZzVTB1M09OR29QYUp4?=
 =?utf-8?B?Q2dhRFhZRmxIMExrRzZYV0ZqZlhqaGh0aEVFekFqVUZDMTh3OTZkQ2MrbWNF?=
 =?utf-8?B?SmgrcnNVZHJOcGFZcE92R25sSmdIckRrQmtNbnI1N0o3YWw2QXQyYnJmR1By?=
 =?utf-8?B?T1c0ODNRY3A2d1BjR0JlVU9WQkZtdEVNODloWitiYlU0eE5tUk1HZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 60fcb7ec-f781-4ecf-c073-08deb0fb55d8
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 14:24:25.9204
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: giUr+NjTzRDnRFQ/dynVORHZGU0NgN9hQm1kJBvqxwl3ZGxzFs+/f4oorqCcwDReEy+b5XVq4GeKvH6uWAYiIA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB7244
X-purgate-ID: tlsNG-16d1c6/1778682273-8DF81D75-AF43F9E9/0/0
X-purgate-type: clean
X-purgate-size: 6530

On Tue, May 12, 2026 at 04:59:35PM +0200, Jan Beulich wrote:
> Both ROMBIOS and SeaBIOS (with CONFIG_QEMU=y, as we build it) blindly
> assume availability of this field (at its conventional index 0x32); OVMF
> at least has code to inspect FADT. Hence we ought to have supported it
> virtually forever.
> 
> As the index is beyond RTC_CMOS_SIZE, leverage the padding field in
> struct hvm_hw_rtc to hold its value. Update the field only when involved
> values are valid BCD century specifiers. Otherwise (for VMs migrated in
> from an older hypervisor) leave handling to the DM.
> 
> This makes the Linux rtc-cmos driver report y3k compatibility.
> 
> While extending xen-hvmctx.c:dump_rtc() also add RTC offset there.
> 
> Fixes: 4ca161214355 ("[HVM] Move RTC emulation into the hypervisor")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Am I overly paranoid with the checking of the field, considering that
> Xen 3.x post-dates year 2000 and hence all firmware nowadays usable guests
> have ever run with should have been aware of the field? Or am I, quite the
> opposite, still not strict enough?
> 
> I can't help the impression that this introduces a latency issue for
> the 2nd of gmtime()'s while() loops: We now allow years up into the 99th
> century, i.e. over 8000 years away from 1970. 8000 years are very roughly
> 2^^38 seconds, making for (again very roughly) 5 million iterations there.
> Did I get my math wrong, or do we need a prereq change to (vastly) reduce
> the number of iterations of that loop (e.g. along the lines of the other
> one, first going in 400 year steps)?

Hm, maybe we need to add some XTF testing for the RTC?  I'm slightly
worried how much time this could take, and since those calls are
serialized on the s->lock I wonder whether enough parallel accesses
from the guest could manage to trigger the watchdog?

> 
> Isn't day-of-week handling flawed? If the field is brought out of sync
> with the other values, shouldn't it stay respectively out-of-sync? And
> isn't it excessive overhead to go through rtc_set_time() when the field
> is updated while SET is clear?
> 
> Perhaps we ought to also support alarm day/month features?
> 
> --- a/tools/libacpi/static_tables.c
> +++ b/tools/libacpi/static_tables.c
> @@ -33,6 +33,8 @@ struct acpi_20_facs Facs = {
>  #define ACPI_PM_TMR_BLK_BIT_WIDTH           0x20
>  #define ACPI_PM_TMR_BLK_BIT_OFFSET          0x00
>  
> +#define CMOS_CENTURY 0x32 /* Conventional index used also without ACPI */

IMO this define (together with the RTC_CENTURY one below) need to be
in a public header so it can be consumed by both the hypervisor and
the toolstack.  Having two separate defines, one for the hypervisor,
and another for the toolstack will just create confusion.

> +
>  struct acpi_fadt Fadt = {
>      .header = {
>          .signature    = ACPI_FADT_SIGNATURE,
> @@ -88,7 +90,9 @@ struct acpi_fadt Fadt = {
>          .register_bit_width  = ACPI_PM_TMR_BLK_BIT_WIDTH,
>          .register_bit_offset = ACPI_PM_TMR_BLK_BIT_OFFSET,
>          .address             = ACPI_PM_TMR_BLK_ADDRESS_V1,
> -    }
> +    },
> +
> +    .century = CMOS_CENTURY,
>  };
>  
>  struct acpi_20_rsdt Rsdt = {
> --- a/tools/misc/xen-hvmctx.c
> +++ b/tools/misc/xen-hvmctx.c
> @@ -311,7 +311,7 @@ static void dump_rtc(void)
>      printf("              0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x, index 0x%2.2x\n",
>             r.cmos_data[8], r.cmos_data[9], r.cmos_data[10], r.cmos_data[11], 
>             r.cmos_data[12], r.cmos_data[13], r.cmos_index);
> -
> +    printf("         century 0x%02x  offset %"PRId64"\n", r.century, r.rtc_offset);
>  }
>  
>  static void dump_hpet(void)
> --- a/xen/arch/x86/hvm/rtc.c
> +++ b/xen/arch/x86/hvm/rtc.c
> @@ -47,6 +47,12 @@
>  #define epoch_year     1900
>  #define get_year(x)    ((x) + epoch_year)
>  
> +static inline bool is_century(unsigned int x)
> +{
> +    /* Constant below should match epoch_year above, just as BCD value. */
> +    return x >= 0x19 && (x & 0xf) < 10 && (x >> 4) < 10;
> +}
> +
>  enum rtc_mode {
>     rtc_mode_no_ack,
>     rtc_mode_strict
> @@ -482,16 +488,32 @@ static int rtc_ioport_write(void *opaque
>          data &= 0x7f;
>          s->hw.cmos_index = data;
>          spin_unlock(&s->lock);
> +        /* RTC_CENTURY always forwarded to DM. */
>          return (data < RTC_CMOS_SIZE);
>      }
>  
> -    if ( s->hw.cmos_index >= RTC_CMOS_SIZE )
> +    switch ( s->hw.cmos_index )
>      {
> +    case 0 ... RTC_CMOS_SIZE - 1:
> +        orig = s->hw.cmos_data[s->hw.cmos_index];
> +        break;
> +
> +    case RTC_CENTURY:
> +        orig = s->hw.century;
> +        if ( !is_century(orig) || !is_century(data) )

Is a real RTC strict in such a way, ie: will it refuse to set the
century value to < 19 (0x19)?  For example QEMU seems to be way more
relaxed, and allow any century value.

> +        {
> +            /* Prevent further use of the field. */
> +            s->hw.century = 0;
> +            spin_unlock(&s->lock);
> +            return 0;
> +        }
> +        break;
> +
> +    default:
>          spin_unlock(&s->lock);
>          return 0;
>      }
>  
> -    orig = s->hw.cmos_data[s->hw.cmos_index];
>      switch ( s->hw.cmos_index )
>      {
>      case RTC_SECONDS_ALARM:
> @@ -507,6 +529,7 @@ static int rtc_ioport_write(void *opaque
>      case RTC_DAY_OF_MONTH:
>      case RTC_MONTH:
>      case RTC_YEAR:
> +    case RTC_CENTURY:
>          /* if in set mode, just write the register */
>          if ( (s->hw.cmos_data[RTC_REG_B] & RTC_SET) )
>              s->hw.cmos_data[s->hw.cmos_index] = data;
> @@ -515,7 +538,10 @@ static int rtc_ioport_write(void *opaque
>              /* Fetch the current time and update just this field. */
>              s->current_tm = gmtime(get_localtime(d));
>              rtc_copy_date(s);
> -            s->hw.cmos_data[s->hw.cmos_index] = data;
> +            if ( s->hw.cmos_index != RTC_CENTURY )
> +                s->hw.cmos_data[s->hw.cmos_index] = data;
> +            else
> +                s->hw.century = data;
>              rtc_set_time(s);
>          }
>          alarm_timer_update(s);

Don't you need to adjust the tail return of rtc_ioport_write() (below
the context here) to return 0 when s->hw.cmos_index == RTC_CENTURY, so
the set value is also propagated to the DM, and not only the index?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 13 14:32:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:32:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308128.1579667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAdc-0007p0-Pi; Wed, 13 May 2026 14:32:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308128.1579667; Wed, 13 May 2026 14:32:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAdc-0007ot-L4; Wed, 13 May 2026 14:32:40 +0000
Received: by outflank-mailman (input) for mailman id 1308128;
 Wed, 13 May 2026 14:32:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wNAdc-0007on-0Z
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:32:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNAdb-007myz-3Z
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:32:39 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a048b7b-bab6-0a2a0a5309dd-0a2a4506a596-24
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:32:39 +0200
Received: from [52.101.57.42]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a048b85-7371-0a2a45060019-3465392ac272-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:32:38 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA1PR03MB6450.namprd03.prod.outlook.com (2603:10b6:806:1c1::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 14:32:34 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 14:32:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=G1TNOYJM+spUKpOsaCXuw6f83SLzHr8NxTg3wlMyRxbAI3xV5ckHW/GGSHPJHTax1NsLLA8LeZlptzXDBCDZRmPxBTptILNWiIh0UC/hQKChb+v1/bNzFDuDj60uGjTxHRH0YOppy10nA+rqDa4skao6H1DAl7Wqkla86oIZKuPRwKV/zgTbkG1cq7ji8CupFLtXcrUHOaX/hAiTen+iCw385RCZ34eGNAI1vMBqNLsaToy+GLqJG+0iI3FHZR9oPVvTq26bfGNv9FDzENFh0u1bqK/udq5rVWaK1d3Sb01bNJYdswfgnGXQUtsSPImveNSxvr4eXv38KQAq8i1GOw==
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=MU1WW/LUf9BVWKKOnbaHTgNrJ1dHX/y9ePkdoldNbjw=;
 b=PcKTBYBCpAzqzgZII3JnXJrj2w4jL8XODGHYTLn3fHpebn9BgaX9PR7iuMqp9P0Deua6+SsRHXKO+E/viUsyovoZNdwRbi42Zs4bv9UXG4NJiP8W/LPp/iAd0oROaJT6ugOK0EwnYedzu9sYdMlC1ZhRd/vdKYMp9utx5Exy4XxgboopkG1ebTXOcWcdj0ovsxL00/luwwLe52RBqBd/Ic4wlsbAmD12zxxZvHIT4xrBLvi6tQ0I7OX1HxE1b7ccxpVfgdHvKw6imTgDdnLaEiUj8m0fODyPQOxMF7TuE7ISmidSXtLdSQp+ojg+MQti5D4p6+UlbtrIOwK35LRRyg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MU1WW/LUf9BVWKKOnbaHTgNrJ1dHX/y9ePkdoldNbjw=;
 b=AQL1N4TbZDo+1Z7bGHb3xgKXfcrU/m6Km3EpheAjnHKdXWY9tzYTBsxHp+CzJZq7QdJD3GFU24/sYJABeNt4rzHI3oJCfmS/0yEYwzk/dF2Xpn53ou2GAqvjJPS8u+i7OHSKUPTXpPx7f7gb90CaQDLgwypfpmS5CI6MrQGZADU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b47d1d49-3b2c-4d55-a19b-73df24488fa7@citrix.com>
Date: Wed, 13 May 2026 15:32:31 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 1/2] kexec: kexec_crash_save_info() vs Misra C:2012 rule
 8.3
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <13ca5f9f-d985-41bf-9c30-afd657dade89@suse.com>
 <0af810a1-3392-472a-93c9-c98fcb81c43a@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <0af810a1-3392-472a-93c9-c98fcb81c43a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P123CA0017.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:ba::22) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA1PR03MB6450:EE_
X-MS-Office365-Filtering-Correlation-Id: c3f8a45b-e390-406d-d7da-08deb0fc7924
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|22082099003|18002099003|56012099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	jfiHHrHWy41vADZH0n3qwFI2cuMYzkqD4zKoNFmXq69KXxxjJ4jFMPyh/e6Bj39C9qYsL8zbkaDtPIv2unhkne7Cb5k6xw/dgAuJSigqp8n0i4fwLNKbUMwJ25R9BBrOaLWIYQHm+6GlBf7jIngdM7BX3ndBZr+0AUYqLf2Q9EuMi9lN36IxASbtm7BGl26Pb9BJg8s0WU7d85fnFGgxkv6r4cj6sTC9CuU7DW6XFUf0DWdfmhikwMfcjj/Na5VJI6ngd//VZtMB6b098TEPoY2FzEB8u8nT8ufrXNuOGNzEU6yXKAC+CT3r1H6eY1DcB72mk67PnCAt1Bs9LF0vtqYolP7l5186M/TOD6lTFAwyUEGG/L+lv/Eo156PM88YuILoEieU11/joifdYGa9bHTnbXwFiIvwQ5Z/uD59LZaSavZ3tqUpasDFx6norgh31dR1fC8chaKBhosA0A0Pa3g947WZMgeIsdkeHAKF7CnfOye7zh1vzuuo5cSIbhc7c/DuV4NcvhYK+P6/1zNYqj1AEZYnwWWb89zg8xNICvMmuq8eNUkXZrpsn9DW8vn2erkQ5+MgZbm4HOc65afGnMKdLZQ4ZF5zMBfKG1yFB2ZkUAotg0ekn9mpWb3WsWfPsDpaivQDnV2p0xuQde6sOdfea39R19bCSO8lrjHELg65k78xr2tYlOf368B3TG4J
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(22082099003)(18002099003)(56012099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cFA5RTlJd2g2L1JzWHpGb2dSMUNGSG16bGpJWVBjRE91T3pkME1NMWFPQzd4?=
 =?utf-8?B?a0NmMkVzM0tMdzRhRmNSMGEvaDVwUDZ0M2EvVGlHTllSWmZaL1ppWm9Ra0lp?=
 =?utf-8?B?UmhjdGRVeTcwd2FyV1pwNVgxNzZBWFVjQldHT0ZaMWdiKy8wMytRZHpkYUhy?=
 =?utf-8?B?d2lHbC9MdDZkVDhYT2g0Slo1TFRrRm1MM0VXc2szQ1IvTWdWVUJsZTFFU0N2?=
 =?utf-8?B?Nzl1bFNlQVdkc016Z1RQNjZPYUVWSFlxNlorQzhPSXBoaHY3UG43dkN1SlVI?=
 =?utf-8?B?MG14dUdnaTNreWptcTJZSVl3R0MwVkFuZ1pyMEdsbEROYmhoeVRrbmZtcEtw?=
 =?utf-8?B?V25Ndjh6OGNtRkplSmJET0drd3NEMUY0ZVJoVXVUbExya05vRXVaYjE4Z2s0?=
 =?utf-8?B?U1B4dEZzWTlxemxabUJLMGZhdWFiT2ZOWTBkQ2JSdnQyTTlkVlZRVGgrZVBz?=
 =?utf-8?B?dDNueE9SZ082TVhkSW9wcU5XenR2K3NBWUR6NzZPRXBKZzBGcVVsQlVPTEE0?=
 =?utf-8?B?czdBUm04NG1tWjY4aWVCYWhnd2plVXdla0lLMzI4MVplYjMwSk1lc0JSSUxC?=
 =?utf-8?B?akl5OTRDODl0R3hCbE52QzEwVW03OFJJZFo5OE5JaVVwV09RSDNzS0x0VWR0?=
 =?utf-8?B?VWZaeHFNL3FNSjhNYjh0dEdFRDZNVC9DSnZMUmxVZ2FRalFkc1NDNncxMWNP?=
 =?utf-8?B?MmgxMGJpSFlUT1VFL2JlcHRBU1d1S1FmVmMxbThZcXZBZkdBUFRQYjU0VWxn?=
 =?utf-8?B?YnBLY3UyS1k3RnBpM1B3TUZSak16WFNHVWhMSDRkQlZ0OU5ueW1acHZ0V1ZP?=
 =?utf-8?B?NkRNd1dQcUxUcHBOUGNoNmFkVDJEakRISFRuRE84ZHhjdzh3aGtHRll5eGM3?=
 =?utf-8?B?QS8rWDA3NTk2TFp3WlBsZnhyY2FsZTUwSFRlNXBEVXkrZi80UWhReFdOTHFG?=
 =?utf-8?B?TnRmRlhxQzBZWk5OTmIwaG9lUkRQRHNMSm51WWdxbDlwckZDUE5CZHZyZ1M0?=
 =?utf-8?B?ZU85cHFKN2N2T1NaWTQ2QU54QUROWTNHMW9Xei81V3BEaTRDOXBBeS9HYU9k?=
 =?utf-8?B?VkZycHFwS2lQY2dIMFloY2VkNENKZzNhdTNKaDFjK3pJM1F6YkZrWDFEWjZX?=
 =?utf-8?B?UTBQbEpLY0dwa3NqdGVCRi84Q3VZM2VEZHNGcDJUMkdTWllaR2wzeUVLckZL?=
 =?utf-8?B?b3VGakFlMEtZdkdWUTROSzJVdFovZlkvbHlhVUYzMmh3TlUxUEN5U2RxUzR5?=
 =?utf-8?B?UFc3TnJCK25JditOMlExU25MYTQzWkZLNVRPMEdaeHVIcGNkUHM0WmltNlVI?=
 =?utf-8?B?TVp2QUk0M1dUYWQ1TUdqTFM4Uk5wTVN4bW5XNUxXZDRvTlRWZ0RVUzZzdG5n?=
 =?utf-8?B?UkRGV2UrcEtGK3NINGxHRHUzQitGb2tKNUc3TTlYcmxDb3B1RklOakNXSDQ1?=
 =?utf-8?B?WW9yOGFKd092MWJHVDlRT2IyblZXMUQ5VVZHdGJJVFNXbTdKcU9CclNwZjA0?=
 =?utf-8?B?azBzVS8xbXVhS2s1YjRVZ2p5Tk1JYVFiekl3UkVFaDcrbysyZ2NZdlhzVHY3?=
 =?utf-8?B?cmFta3BGNU51VmV1aEtyMDBad0czaCsxTnBEclFYdERiWVdXYUF4ZG1SeXE2?=
 =?utf-8?B?RmpEOWR3U1hIRVFPYTZxeWFqUlRIOEdsdHNjSkdDQlVuY2F6QVQydlRZV2VR?=
 =?utf-8?B?UGFqZkl2MmhVd2d6L1Y4VUM5RDdlMGNiUlArY1hSWkhMT3lxbkczemxLYzJt?=
 =?utf-8?B?Sk5yYXZZNytyL0d2S2RQa05VRmRqZnVUdkUzbHdXTUNOQnlUREFwaHVrTW1R?=
 =?utf-8?B?eEkySWFnV1RSL1JEOEJHZzNUdnplbW00WC9yRHlnNUVtdnUyODlNei9aNHhV?=
 =?utf-8?B?RDF0dERQL2wzRlFkVkw4bjd5emQwcytWbHY1WGxyY0hmTmYrWkMyaGx0RFI3?=
 =?utf-8?B?WnNWL0g1UTVWQUxYVWc2YkQwdVZWcThVZkhoRk5QeEZJWlJmaWpXWmFuaHph?=
 =?utf-8?B?eVU4Mm5OZCtoRXlZUUNGeHlJUFIyNmZObEVIclphWC9xWWl5ckNtL2UvbHox?=
 =?utf-8?B?M3RZaHBJaDV6V01PdFlXNjRTblp0U2hMY0Z1NzZtRHdJVmpzMVVWREY1ZUZ6?=
 =?utf-8?B?UzhFTkZBSlVPY0NFenpzcjVSQ0VydUxrWU4wVk1BSmJlQTJRYTQxdjE3bHVX?=
 =?utf-8?B?RzhzNThSTmdwZDFtVVROeXJZWlZCOXRQTEViVkEycnMyYVlmdmlyTy9FS00r?=
 =?utf-8?B?M2FpNml3WmE5aFpHV0ViQ05MMHNOZko4bHltWGxSVEpVcHhoaGdoOEFmR3p6?=
 =?utf-8?B?bmI5VUo2TjBhZnlsYUNsSks1N3d2cTQxOU1hUng1ZXo2dG9Sek50Z1BJUG9G?=
 =?utf-8?Q?/iGGynpbWeQ0AG3w=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c3f8a45b-e390-406d-d7da-08deb0fc7924
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 14:32:34.5134
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 93AwcHopklMdlfpaH74nkLhpqWap3I6hwYFc4V+jWTO3l2R0LytGwJ+bKlUc1fu0oWgrOSLCuLIRk3uZdNRH7vWqvWmjAvMuAXibtMEyntA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6450
X-purgate-ID: tlsNG-16d1c6/1778682759-8F397D75-D7931DD9/0/0
X-purgate-type: clean
X-purgate-size: 638

On 13/05/2026 3:00 pm, Jan Beulich wrote:
> ... ("All declarations of an object or function shall use the same names
> and type qualifiers"). The declaration doesn't use the typedef, so the
> definition shouldn't either.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Really, is the typedef of much use? I.e. can't we drop it altogether?

It doesn't look to be much use.

I thought I'd tried this fix before but it hadn't worked.  (I dropped it
from my series as a result).  Perhaps the later include shuffling
addressed the secondary issue I was seeing.

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed May 13 14:39:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:39:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308137.1579674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAkP-0000cH-Eq; Wed, 13 May 2026 14:39:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308137.1579674; Wed, 13 May 2026 14:39:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAkP-0000cA-Bx; Wed, 13 May 2026 14:39:41 +0000
Received: by outflank-mailman (input) for mailman id 1308137;
 Wed, 13 May 2026 14:39:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNAkN-0000c1-PY
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:39:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNAkN-00DVtX-1o
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:39:39 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a048d1a-5cb7-0a2a0a5109dd-0a2a450cd046-38
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:39:38 +0200
Received: from [52.101.193.30]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a048d29-62f1-0a2a450c0019-3465c11ec56b-4
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:39:38 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS7PR03MB5558.namprd03.prod.outlook.com (2603:10b6:5:2c3::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 14:39:35 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 14:39:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PYJsOVfCj3b24y/LyR8M/oUj0fbdM/+GKfjTQwaCxdByQebZaTS0pF9MhQG4ntpntAws8yu266RLgqjJbj4qcR/mnG+P00jDccbOk5ESBpAXKNW47yk6RdRViYljbt3dF3rY1/GdsqIGiP6e/CHqAIJ+ZvNYKIZzn3uEGUZ2L/7M+ZYmQVuzvDZ6yerj1wKPFzBz0qQ9IWiD31TTnSizJuvBh1N/cf7GIR+0EO13SH1NhO5RKl1AAAgKGl7rhJPV4kYz25YJ4i6zCHhD/3KvWwJGf6fY3u0UfAaPZFskItpMR+SOpMyLzl5MlxiiDzHPgXzMmkLXW9HAa48ercjLtQ==
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=H3Ji7mgDZRx0MSPA702xj0A7KjQdb21Pw2pcElLZ7t4=;
 b=CrwR//HdqMlOJWQuXdTTk4m/5jObwJ7cIdp/NQWu46i5pYj+Zt5M+oobxm4DOzShueHrN522IcyldOI+SPihEKKAaVYIu3kCW4yrjFlVg69Eilg4geSMBh5hcE0z8GuJYYuV6Ti4pAkFcsNYChTiJgCNKtjZDvCQnL2T1lVdEBrvzA1MHvuZc+vIOpvG5qQsat6GEYMswY232fPDDClWdoaNQ2Ct6a7LsSV9CbXxWiALXmnOUiEiYvEYHGj+xxV3QZI9pzLwmb6SJAJwKeOn6+BB3x2mCQDWV2hb9RL6Efkjv8VQTqHsAht9vh6fD5yLMLMOr1xDub2yTSlv70OzBQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=H3Ji7mgDZRx0MSPA702xj0A7KjQdb21Pw2pcElLZ7t4=;
 b=zrsScTEg01Ej1sKQLTUtRl5e4ljbfJrLfkZ47nSNrmju53RWZ3GqiLG13fGewApt8IfrJEzNKG0KCRMDs/D41736DQVJqlgadE1ZqVb1fvin91ggyvZJHSWNWqvGf9HWGiK3zK0QHFlwwqe0mu9qxRurHKyPAa4+fqB1gRdpYd8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 13 May 2026 16:39:32 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 4/5] x86/vRTC: use available macros for BCD <-> BIN
 conversion
Message-ID: <agSNJLsyBC7TKcEI@macbook.local>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <dac2443b-3ef4-4508-aa49-1e7d68a72d02@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <dac2443b-3ef4-4508-aa49-1e7d68a72d02@suse.com>
X-ClientProxiedBy: IA1P220CA0015.NAMP220.PROD.OUTLOOK.COM
 (2603:10b6:208:464::15) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB5558:EE_
X-MS-Office365-Filtering-Correlation-Id: 53b385e8-5da3-4acb-a012-08deb0fd73fd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|22082099003|56012099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	7U4+s1XgXYBa1FJSRNfK4Lr3nVmUDfiNF2zpxRn29ii3sf5EzXQOPa0qH0c8xE4BOpKBZE0RGok05icz4b97z5Mn2xRJBYG5EqKxhlBD0PIAHPK+kuZD/9hvD1rKKDIBqKE+fCr9x4GisD82u7tuIVvyI08rbvvzDmDRjM1SAVIbzRYGA+/1jTwSUmzqsdnO4+KQYsbjsfFr5P5Csf74otm9mBWkZ1PkT/nSJEdc8emdJltcmpAn4wZLwal8e2i0wgnutPacimhiWbvayEDIkjygfkhAoeLi/l4FD7TKICtdGM971GpFsAx3qLUqJdaSZ8/N5kuq+0Egc42ayqOdYtKUFgoJtZiAYlJEWNnU/gnDO+peSaTq8HPrD35tv5Q0Jz6jysa8nLpkLFElGwc4mmlZlin3axplWp/v+kFoY1EO3qRU+Rf1zhpGbTAnV2nDurDrucGjin8OgcsMvoqLUBhl2T2Y2EXOrdm3cqgSof/4EWJOiksjVO3EzGnw8dn8Qxv8Y1F6bfljEt62NX8MC1dzzMRM1yjuPv0IFnMKqd1Udoi5XuVj9oOFeF4mB0GjTJzkp9qVpo2QGAckuGlfHa49+srGGTLsGIKQbS57cjGMXXQYcGpR3/uGScOM5560eBzXKztVwxXxOqCxl6QHDbnItiXD7vLjXv8jZ3TkKNyFLJZlf+/lejoSjoGQ4DOp
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(22082099003)(56012099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NDZRdzhKUmxSOFhFcWtqWkZEYnI2R1M2NnVHVURzbGp1VlZJcnNkbHFFcWpP?=
 =?utf-8?B?RTZrbEc1Tmh1Z2wrTXYrelJ1Z0VFTlpTS0wxWkg4Nk9LeSswM01NOG5lOVda?=
 =?utf-8?B?N1VnM0dFV3Vnc1NYSXVOZ3lHNVNBWWNnRWN4UDZOSTBoNHlxODdIc1RNN25s?=
 =?utf-8?B?S296OWt1eHY1TEEzbng1MU84Y1lTWTZVZGo2WUlqNlkvRWp3OXBxd2dQOE9K?=
 =?utf-8?B?cmZQTlZENEZYK1FuaFEzNkhDa1VEMFhhK2tPOGRGSnIrS2t3bVlMQUZpNWVo?=
 =?utf-8?B?RzZ4dkFkK0Y3bkt6R1ZRVEdhcCtxNG5neG9zUXpYMi80ZHVDL2FEWllVZ0Vs?=
 =?utf-8?B?UC9kWTY5ZXpmakc2V3hTZjk1NzZmeFdCSGU1N1l3dS9ZYzArNGxIVER0alFq?=
 =?utf-8?B?dEJpcnRqazJLRE50bzhrcjNUMUw2UE5nbG5PaVJLRUJoMXo3MGdXNXpxdG4v?=
 =?utf-8?B?OGptc1Jud0JmSTJ0Si8zM0NHbUsvNTM3b0hDNWphTjJ2NDdXOWRySStCSUV5?=
 =?utf-8?B?TWJzeGNaTFhnUENNbzhoQmxnZE5LUGNuQURsZmZkeHJ0TkVHbjNzcUVRQVE0?=
 =?utf-8?B?ME5GRGRIazRLQjg3RmYwd3Qvc2dGRFFHa0hKU0RhUWI2TFBEZXFZNVp4dDJZ?=
 =?utf-8?B?cGxUQlZyU3JidmhncUoyYklLeW80VXZoNEJTU0NHSFJlbi9zcGhSb1MzcHlo?=
 =?utf-8?B?OXVMenJDbVJpczl0ajFzSHdndlpKSktvbnZTVHI0SHBXZ3VyK1RLUzV6a1pn?=
 =?utf-8?B?bFBiL2ZDNGdOaERCR2piVHRUQzhDeVF1N3NRTkg5eEVaZVE5S3YrZkpzcGNn?=
 =?utf-8?B?SDhSMWhBcVdCdGJDMFJVNEE5eWJlanIycjh4Zm44QkxOL3IvSE15dVdyenpj?=
 =?utf-8?B?N3BXL2NiMmFneXNaQ2JCbTRvMGxMWjV5WDVyWHJYWDdvQTc2WkVvREFJMnBX?=
 =?utf-8?B?cnVCa2Z1OWZRaVVKSXVHNytYVmRid1FuWXVLSCtlRU9MbFBKVksrMzdPd0Fm?=
 =?utf-8?B?UDB4MFd0MGUrTmQwRnBxb3hMZlUrQnhjNUFGbDF5WVpoRGhjY3RiODRWOHFu?=
 =?utf-8?B?WDV3dFFzWFRvV09OUVVPMlluajBYckJMeUJzUTVkSWlvQkdoTWRMKzFsbU1n?=
 =?utf-8?B?YjBoZ0diU2RSY242NlF1Q25sV0FtUEJZRnVNd1hTTHZINVBzZlJyUGswc0ZV?=
 =?utf-8?B?WnNPai9FQnNuR1lWaHg5N2YrMkh2QjVmM3VQL1oxN2ROV3pKSWM2MzE3QnhY?=
 =?utf-8?B?OVJDRU1sejIwSWhMZ2k5T0w1YWlSYldqRzhHR1VGbmNOemxFL3NvL0Y5eHBy?=
 =?utf-8?B?OHN1cVo5WGpGdWwyQWluMmdzVVFZQjc0ek1KUFBnT2ZXQnVNdnVoVGdJTHpy?=
 =?utf-8?B?VldoM0hNSHVjNzNXL1dNY2JEODQvWDZwZGx4NUg5Z05pc2lYdE9CczdwdGhr?=
 =?utf-8?B?SVUrWnR6UkZyN3pPMG0wczFTaUR3c2UvU2ZDb2RIN1piOEl4SGVHUVpQVDk0?=
 =?utf-8?B?S1YzWTZDVFM0Y2V3RVQ3cEFmSGd3YjZqaCtsU3ZmSWZHZkNHMFRJTGV1aGw5?=
 =?utf-8?B?S25GUDhoMXh3Rjk0T1k1d0lkNWZyZkJhdWJoQzVuWWFHUGxydEt4S3dZck8w?=
 =?utf-8?B?SHFRT0V3cTdaZmpjekxYUXVVT0Zkbmx5cFRiYjBDUzYrUmdxVkkrSk5ZYUMw?=
 =?utf-8?B?UUJvY01EcEpYZkVIZ0V3UEE3cnNESzRIWWdwYlR1eWZQUkR3TDJ1Q0pxRG5z?=
 =?utf-8?B?eWg5Q1diSVVhQ0NTRDdYaTN0MkJERFNBR0lpbzdPU1l2VGU4SEhnS0ZmMVlM?=
 =?utf-8?B?T1NLTXNwVjdYQk1zeWtFdEZ5WTRTZHZkTjZrekhBOTJ1aDcweXo0ZXNib2hx?=
 =?utf-8?B?RFF0ZmdJdHk5QThFOU1MbnlFOFhnQXJIZDVDRDJvcFkyNUV1OEc1Q3Fzakpz?=
 =?utf-8?B?Q0UrbW1yaUQ2TStaQm94YmZkSjgzRHlxSlRqdXROT3p1cW5TR3dZWDd0S1JH?=
 =?utf-8?B?S3VVREtyaUZGMHZsUWhITmxVK0k0SVZtRlNvS21GRnYxa29KNG1MQ0puZ3BZ?=
 =?utf-8?B?M01pbWFTeDRtMnFWTmhtR3A0cGlGdWY3T2cvNFpub1p1NC9VTUVTRG9oTHB3?=
 =?utf-8?B?djFUWEZiUkYxOG9DTElObUlqbHFIL3dVMVJnTTE2cXNuYlB0L3hkMHY3UVhJ?=
 =?utf-8?B?V0VIQ0szZ0FPZkdFVCtDa2NmNFlkOERLaVNoaFVSdFpJNG5sVjk0Q050SDRX?=
 =?utf-8?B?VzIyczdwdVh3RitnQS9jdThGZGg4Z2pZQzBTNXEydXRpMC84bXM0RStEQkJy?=
 =?utf-8?B?a2U3QXJXbDI0Ky9zMVdCZnBaOHFjeCtoNExiZjVISitwNlVINEpCdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 53b385e8-5da3-4acb-a012-08deb0fd73fd
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 14:39:35.4646
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2V2BWh0egnzOC7rmqSNneewjHCN97dWozhHHZSYgV7msXudWpEwQKt7J+zCC8JFvmgx11tzaaodeyhmYC1Chfg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5558
X-purgate-ID: tlsNG-d25034/1778683178-F467CCF5-BE5FA243/0/0
X-purgate-type: clean
X-purgate-size: 300

On Tue, May 12, 2026 at 05:00:04PM +0200, Jan Beulich wrote:
> There's no need to open-code these. No functional change intended, even if
> the | changes to + in to_bcd().
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 13 14:51:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:51:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308152.1579684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAw0-0003aE-I4; Wed, 13 May 2026 14:51:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308152.1579684; Wed, 13 May 2026 14:51:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAw0-0003a7-FN; Wed, 13 May 2026 14:51:40 +0000
Received: by outflank-mailman (input) for mailman id 1308152;
 Wed, 13 May 2026 14:51:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNAvz-0003a1-Ar
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:51:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNAvy-00DYPq-NI
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:51:38 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a048fe7-bab6-0a2a0a5309dd-0a2a4507ba7c-42
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:51:38 +0200
Received: from [52.101.57.43]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a048ff9-229c-0a2a45070019-3465392bfa02-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:51:38 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MW4PR03MB6396.namprd03.prod.outlook.com (2603:10b6:303:123::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 14:51:35 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 14:51:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wZjWxCQUxkBMZorLwJZzw/oEGqnZFrQ9FgxFoylVOD+8SMOMMFO1mNHFFB/QihSqn9stU878KD8aeKyRG0OGT3OILwy4FUkwepVGVwpsntTk/3WmGrzEkcefv2T8tx8Ftnx/Sv/XwtFl87Zsa7ZAVu3AONb/z0NAQRfakNKVGAB4GKHmju9SRvADtKr/pYyPEetCkXX165ZbTapQPbW9TB3abt8Ocf0+pL0FxwxmlX7/Ri3FoWcy7u65WlkzuroeQFhnoKrz1tOc8I0DmDVTPq0O6pOWBT+BKtqSMSfNSiQEtMvjPYjPHy+0KycxfXp/mQFHNJRBdoMhLBrx/BOOVQ==
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=1PnMIYYDrjMoksVc8qk88Z6j3Av6oz9ZuhJER4OfKts=;
 b=xbTkgq1rI4ie2budUJf7DOfyyFE//E28LA8JZPpmJTp6PamD8rEh+zECOVR8n6J2J86pUjHJYTeoPqjktenZIBcAgVWr5S4a+fNI3TeiZDe9rhUuZiRKHoT5p7HiiB1q7awDVgQxoyp8EDqmhQiykMBzGnFjGCQw4PNbkJ+f4rEfd19FFZj/pBZeFPbyxVuQGxVh0ut/hYMgpr/wNPx2wwN0Eh8CAUuRuhJrtumJcxmt+JUWTShwGk/shqNOQ260QSzmuMkYOQEIfWljoE60CLSkdoCc9yextsouO1G4MT3WrSYa0sQyoXQZuTZY1odWrfij6dI5t/2cMsoXlayEww==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1PnMIYYDrjMoksVc8qk88Z6j3Av6oz9ZuhJER4OfKts=;
 b=T9ElPHPp1vlM9owKplxY4DKQSrizGE37pjNdWuFCPC8g4ZtLyT/Yvy1+SwY2mOJ1cprkvNb4XANXSbUzFdOp2pw4GFfxHMo0eQ8p9rTdV/fu6xhyVq6B9/xJBsKr5Q7OBCSteA0Gr9DXYLhiflDZbGyJSawJEm8MARxfTc5OStQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 13 May 2026 16:51:30 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.22 1/5] x86/time: use RTC century byte when
 available
Message-ID: <agSP8jYIylnPfl_H@macbook.local>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <2723456f-5d8c-4a2a-9876-e65d35579936@suse.com>
 <agQ7B0JQqisZ55jp@macbook.local>
 <35e23e0f-5439-4516-906c-4310cd05a4a9@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <35e23e0f-5439-4516-906c-4310cd05a4a9@suse.com>
X-ClientProxiedBy: MR1P264CA0024.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2f::11) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MW4PR03MB6396:EE_
X-MS-Office365-Filtering-Correlation-Id: 7f7ebbcc-7301-47c2-f570-08deb0ff20c9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|11063799003|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	glCIbEN6QvXWWu0F4hC+CZ9J+LIUFBQy0yPuC6R9Z4wEVZC9KIedRhn517shoLP7DIveSjZmbdy6/w2+DEndKhJCaht8jNFOK8mjkn8MFMprnzsGSyXTVmTLQSBb8J7A5J2wAFEEyo/3lkhXlo6VWeu0o2YI7/c0Wp4y7UrTPQjhl2lBybWj7LfEfNvFoCf6ae5m6L16uMcxD6vPxxJ7Lyp1OGR8dKW5mRy5u/7KzTIoaSHabB/G3R2NtAczyaGZivjDl1b7FYDxfj8uRuI1R+ohJ6JhAt8RgUnBrtf8B6DWJeVJlG1n3VNtHqjd1MmmEgGl6JKl6NTkIgh1GzQy3KywCcVM66+ZSmxTJqiKSLHjbvf09E/v6KSCz8AJqcxqfojybwimXeUhm4Eg24WWVb5VYugLlrD3yZx2i/7dArNh+mcgTEmFP9rOmoh+nTqGAaPjcjPHrgvujZZJ8io6GGAxIUjjlKKevHtpC3YpWX2XrDMkANScSvtUCqiXPsCD/m6dugRA41NpC11d7vzg5fNkn83FNrZYazqZ2KV8sY97P89tlkQobM3mVLmOftgT9aNzDoPtRXIaOPPsRscHDkYqM+2vvUrT5CRD26mqW9IEQT0N9nksDkAV1LXnDfJKhAaskjJSqthHkO9crOgBugUmgh2mwYw5qSsPWo5mwx7PnirAkqoxK+dtI1Nb5tg8
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(11063799003)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?STgxYzdRK2FRUEVXY1R6UG1EV0pTcFllcEc3N2FkNTZFR0hDWmQvVDQ2aWl6?=
 =?utf-8?B?VE8ybjA2Sm9nZXpjTFZxT1RmVUNheXRrVFBya2ttWGM2WmhXN1dlRTIyWkRp?=
 =?utf-8?B?S3RmS2VUZzE1ZEJiS0pGdHVxdEw3Ukp5N0g4M2phNmN3TWttcjNZcmpOcEJY?=
 =?utf-8?B?b1phK29JOGpiTVFXVExKbytFd0s4Yk5NK1B1MXVhTFBWMWVrZG9vMUxEVGhH?=
 =?utf-8?B?cnNFVGp4Mm5zaXphY2lKQnNHTWlnb0liREZMQnNHcTJIcE1kS0lBMEw5dDl3?=
 =?utf-8?B?N0NUVHFsT1o1VGdmWDVLQkQwUm9PdWd2MFBkZUtiNGlsN0NXeHNGeHUva0dy?=
 =?utf-8?B?RzNZUEp5TEhhanFseUxNVDQ0L1ZhZjRkSVhTNzNxNGY0ZDhLYVlJOERZUjRn?=
 =?utf-8?B?aGdGM1FBVm0zaUNDbVB5ckp1NTh5MG44Sm1aM0Z5VXRJTTRoVlpJVWo5Z3Z0?=
 =?utf-8?B?N1ZGRmdFRWlJdDRkNTl1RlA2SHVSeWVadDdPTGpaeExGWk05bWc3czVzaE5q?=
 =?utf-8?B?R0dRYzZVdHJtUjM0a1ZWaUxBdWVFVWIzazE0dUppR0FVY0wwM0tHWC83eFZi?=
 =?utf-8?B?OHhvanNOZyt6a25wQUZTSXhiL1JvS0JLaVVORHdZd0RXakFWc2RUNU5ZNm5B?=
 =?utf-8?B?SGNOVlFrWFpyeFpDbHlCVy9COGMrRS9LT1U4cDJIWXFRZ0FOM3ZUUkxzcklL?=
 =?utf-8?B?NnZLLzgyNHpsbkxKdFVmZEVoMm9YSVZXUHBoMzBLQStheGVqZlJtZ0E5UVl0?=
 =?utf-8?B?R0FrTEdqQlVRQkFxWnlCTWNvdjJnb2Vobis3cFMvVlAzVW9DcmJqdGVvM2ls?=
 =?utf-8?B?THE5VWFuaEZmUFBGZ2JQUkV3WVk1Mzc4aE5BNkdlZ3VqUTF1MVgvemN5N0Zv?=
 =?utf-8?B?OFNaWmNKVUZuNzFrZUJ5V1lQNUVIMzhSZ1ppRDlJZVdqK3hYQXdMY1c4NWxE?=
 =?utf-8?B?L2hNWVZWZzNSSXZKYTUyanFFQlRBdXphWWpOK2FFMFlRSzhLT2t0dFVlLzBK?=
 =?utf-8?B?anJRUTBGUHVkb0ZqbERNOWF4a0dtcTNISENXS1JDbDJQU2NCaUxkWGx2enFT?=
 =?utf-8?B?VmZQRzRqSEJrZ2JpWFk1U3pjUGRTakRqazllSUpXeEkzS0Q5UFlaYUZBeWF1?=
 =?utf-8?B?YlVGY1k1ZTExVFM4MXJrbFVlaDVaSUhudlhETlRzL3BYQzNzck84WGJUZEVD?=
 =?utf-8?B?TnNubURYN3VEMHM3U3lqL09hRWJTbEt1b1hYTHNTZUZJa3dmRVZOdGFkanMr?=
 =?utf-8?B?SmtPTFlpODh4Y2M5U1hTamlPZGxBZmc4LzdJa0xGZ1FHUDhBOFh5a2ZLZ2RZ?=
 =?utf-8?B?cloyRlNwbWR6aUJyN0tDNWdON0hEaG9RcFFhR1prTEp5K1RHRkxldm1za1lX?=
 =?utf-8?B?SldzZGRoYlRMMWZ3ZWVzbEhvTHF0NUk5WXlGZGxCemw1THRDcG15MjBOcWtM?=
 =?utf-8?B?VTd0TFFzelRTRS8vZUZjZ0kzcys0OGRHTS82VDZHM1FXVHc1TFcxMWpRM0ts?=
 =?utf-8?B?V252UCtXb0JqNzVNTURDRGJBZFdCVWtwWVV2REh5a2h0TlI4RHhaanQ1dXNK?=
 =?utf-8?B?MDVDcFhoWTlrNnQwWFFCTEtxYzk0eEE3dFJIVmU0V3lpSXJtQVdNM0E1b2RV?=
 =?utf-8?B?VmNidUMreGk1OWx5K3RheHBmelVnaGljRnM3dlhsVHphTHFoK3lzTklwYlBV?=
 =?utf-8?B?SWxtZGl2cmlGME5Qc0NSWXRUVTJLN1dPYmpySU5mek5ianJpckpBTHZFeDJO?=
 =?utf-8?B?T3R4N0VLV253V0QwV1dTN3hpWTV5ZlFQZ1NDRDlRVzRZeWpuYk52MU5HdExr?=
 =?utf-8?B?eldXUmtoQkV3VGFrbGFlNnhTQ24zUXZZU0V0WDEwekRMcHJGWE4zaGYwNWVV?=
 =?utf-8?B?bGFzd05VRDYrYnBBelhSTmpiWVJZWCtKZ3JzMXdrTCtmbzRqNVNzWHdJMU5w?=
 =?utf-8?B?RGhFd2lMcjlKVjBhaEp6b1Vac0tzbTdUeWR5TENPK01mcEh3WmZDRWlrTTN5?=
 =?utf-8?B?NGFOSzBoeDZjK2JrZzRGSVFqSGRYc3ZMR0hzWnlsdTJHS1ZHcmZxQzdpK1BF?=
 =?utf-8?B?RFNRR2ZYR0lrNjRMMHM4MHJTOU9DdTVCemViU1BhTE9pZlVJd3hrMW1NaXR3?=
 =?utf-8?B?NWpta0MwdU9HSmFyL2J4cnJMZEw0VHpUYVhUSnB3VFJaNFIzMkNUYW5DRnJW?=
 =?utf-8?B?MDE2UHBBUjlvMXU1UkMvZzZ5cktHOVRIYmxBVzcrbGc3MUFRYWZrN3crQ2p6?=
 =?utf-8?B?cGltdkpCc3lhUE1QUVFYbTdjWVpyZ2xVQmw4SGJHOFVWSU5HSldjUmovb3Nv?=
 =?utf-8?B?WVJrK2Myc0pHRjVld2M2dVcyK0ljQ05wSHJpV2hvQkFsdVlEVnowZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7f7ebbcc-7301-47c2-f570-08deb0ff20c9
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 14:51:34.8845
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: LtozMxyJRuKLZXv29UimkdrCi4I9yIB76gUCQY2LadHRVvdjvzrQuEi49qRaklrDZ4bEHL26WFhleQr9yU9AkA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6396
X-purgate-ID: tlsNG-ef75cf/1778683898-2176AC48-FB780C5D/0/0
X-purgate-type: clean
X-purgate-size: 1399

On Wed, May 13, 2026 at 12:36:26PM +0200, Jan Beulich wrote:
> On 13.05.2026 10:49, Roger Pau Monné wrote:
> > On Tue, May 12, 2026 at 04:58:43PM +0200, Jan Beulich wrote:
> >> @@ -1280,6 +1281,8 @@ static bool __get_cmos_time(struct rtc_t
> >>      rtc->day  = CMOS_READ(RTC_DAY_OF_MONTH);
> >>      rtc->mon  = CMOS_READ(RTC_MONTH);
> >>      rtc->year = CMOS_READ(RTC_YEAR);
> >> +    if ( acpi_gbl_FADT.century && acpi_gbl_FADT.century < 0x80 )
> >> +        century = CMOS_READ(acpi_gbl_FADT.century);
> >>      
> >>      if ( RTC_ALWAYS_BCD || !(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) )
> >>      {
> >> @@ -1293,7 +1296,12 @@ static bool __get_cmos_time(struct rtc_t
> >>  
> >>      spin_unlock_irqrestore(&rtc_lock, flags);
> >>  
> >> -    if ( (rtc->year += 1900) < 1970 )
> >> +    if ( century )
> >> +    {
> >> +        BCD_TO_BIN(century);
> > 
> > Don't you need to move the BCD_TO_BIN() translation with the rest, so
> > it's not done unconditionally?
> 
> No, the century field is always BCD.

Hm, then I guess Linux needs adjusting, as mc146818_set_time() only
converts the century to the BCD format conditionally on the control
register or RTC_ALWAYS_BCD.

I've found several sources only that as you mention also claim the
century value is unconditionally in BCD format.

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 13 14:53:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:53:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308156.1579693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAxS-00044M-T2; Wed, 13 May 2026 14:53:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308156.1579693; Wed, 13 May 2026 14:53:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNAxS-00044F-PR; Wed, 13 May 2026 14:53:10 +0000
Received: by outflank-mailman (input) for mailman id 1308156;
 Wed, 13 May 2026 14:53:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wNAxR-000447-06
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:53:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNAxP-00Ead7-VD
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:53:08 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a049049-bab6-0a2a0a5309dd-0a2a450588fa-10
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:53:06 +0200
Received: from [52.101.66.67]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a049052-aaa8-0a2a45050019-346542435bd6-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:53:06 +0200
Received: from DUZPR01CA0138.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4bc::14) by DU0PR08MB7858.eurprd08.prod.outlook.com
 (2603:10a6:10:3b2::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 14:53:00 +0000
Received: from DU6PEPF0000B61F.eurprd02.prod.outlook.com
 (2603:10a6:10:4bc:cafe::bd) by DUZPR01CA0138.outlook.office365.com
 (2603:10a6:10:4bc::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.12 via Frontend Transport; Wed,
 13 May 2026 14:53:00 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF0000B61F.mail.protection.outlook.com (10.167.8.134) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Wed, 13 May 2026 14:52:59 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DB9PR08MB6505.eurprd08.prod.outlook.com (2603:10a6:10:23e::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 14:51:56 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 14:51:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=nOyicki5ijhmJu731vwbmVxA+IT25uDHRjapAbrx3gdxpw97JyUs6F4htcSsvWP3jn0/1sB2gbYAFS3xsQyau3XQt3yxdP3sPxKocPmQmGWSSzesH/NXK4+c5eNpxuOjyMw9iJbToZ6121Bh4ByTWtlcfK1fAaAfBOoZgPNafgUxL9+ToH7nDRtQA+DzgSiEtjsod1sJsuirVRctFnmjHDpSCN1qIxTXdzS8Dw+oennY+4amcILnOmkieTaZY3LwvSSLj/HgV/ub8w47R5kKA1jsm6KTRnbczaDBSg2YCvpkZXy5pxb9lwS60GoNdt2FEZc/4X78EgqT+GF3a3F0qg==
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=dO7ShRY36w57wbiMsIK3Rl4eb8jS6Nq9Afir6qTjEhA=;
 b=D6oYLP7ARTd9+uq0/9WTDheV1mmeQWBCZMZRPAWhHE7VGvvv+nCMYIFRxPgpx0z7qSanczWDwsN7sDsPA0OcOEy2o3ZmAuMYThW9onXzCgF+02gpNT7KHEKkuZ3S3zN0GEnUCWzQWGMa7AQIFL0LtglYP0GgRH875r7lmQQQSmU1vrSY7ZnnGXO9CO0ouok18rGjby89YVFgP8cvHPFbEiEvBX4Yk24KxbOfBbxkfIbk3NNXJYKpergve89iSDAVyr8QI99xYs8kz3ACXm6E8VbWjm7MW/vo9faIz0fvd+wTX6hAdrp3NDX9BOvfvt97UMOT1qcrVnDxZZIVB37cJQ==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dO7ShRY36w57wbiMsIK3Rl4eb8jS6Nq9Afir6qTjEhA=;
 b=UwUvl1u7nKAGxCseL4ka+2PGbkTNH03wUtOxRQg1RBXBzFBzjmSljFHfD6D4y4fchnbzCNSC4HYjos95CGRzFRCqwxT5d1rwQFSJpfJd0aRWi37aL0EYYlPu307ElbvLM/zkTP8T8UTjqrVAEiGyBk34BddqmaUMRj/4WLCQMqg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Uz90EdWJmdEnQpVutLPuuo6+TTnees29v0I+QovIASUO61WogDKERl3Ooknru4RSGkg+b2QG6NnOdexXblVn0h3qvf9tNsKqDRb0xRZH5Ru5z59Mhb00Sk1oGeVjGKsmNOaQmQGSi3fdAnJT5TdVvmT1Uo6BcoMRckUrR+iSTceS6R7iYmXQyCN2rEfNAPBzKqqsJxGS501L6TIQlEVBZFEKpTrQBJU8CLjsKg3HvcWwpd5HQJV18H1Q7XRIU+CVpPG2vVmsGP9gtFXUp9fzBdSzL0L2+6cUtMQAtI/i2jqYXS6fH29AD5LqkDFr2jqlDfLGQZITrvK++j/bpqhX7w==
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=dO7ShRY36w57wbiMsIK3Rl4eb8jS6Nq9Afir6qTjEhA=;
 b=IfotcW2fRv0AjjKXQsm0MLTDSAruvZG5ExgE9aElHhHXe7U5o1GiCWM7Xz2vy0Hvdq/vD85mQd67RY8eJIWEQkt9FubJKrME7HnYepUI79VcFa+5uQ8wZMsjDYVcgFC9ONRcUAGlJfVSnQLgQRWxU+lcAucCl1mtN1AI2kwZ3zcOtl5ZU6t0bzVXjBGennJ4eQNM8eufcuzWj7az8oGuusDuBBz65l9NVKMhtW5eG73BCBQRP7FvVt3LzCw4bidAieOCwGtIOnx3+Y7b1vLZ1RQo3G5IH6/7apPZzXy0a5ulQW22lucKtKTHQsItQu/AUXhLb75Rzr4kBDugJCiMgA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dO7ShRY36w57wbiMsIK3Rl4eb8jS6Nq9Afir6qTjEhA=;
 b=UwUvl1u7nKAGxCseL4ka+2PGbkTNH03wUtOxRQg1RBXBzFBzjmSljFHfD6D4y4fchnbzCNSC4HYjos95CGRzFRCqwxT5d1rwQFSJpfJd0aRWi37aL0EYYlPu307ElbvLM/zkTP8T8UTjqrVAEiGyBk34BddqmaUMRj/4WLCQMqg=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v9 03/13] xen/arm: gic-v3: tolerate retained redistributor
 LPI state across CPU_OFF
Thread-Topic: [PATCH v9 03/13] xen/arm: gic-v3: tolerate retained
 redistributor LPI state across CPU_OFF
Thread-Index: AQHc4jIy41V2wcxbLEmxgJuFq+19qLYMC40A
Date: Wed, 13 May 2026 14:51:56 +0000
Message-ID: <B1776A58-502C-403E-8EDD-6FF3B62E1EBE@arm.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <ddf37bff562e7e2055ee049ab63111c5a2a2e611.1778605274.git.mykola_kvach@epam.com>
In-Reply-To:
 <ddf37bff562e7e2055ee049ab63111c5a2a2e611.1778605274.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DB9PR08MB6505:EE_|DU6PEPF0000B61F:EE_|DU0PR08MB7858:EE_
X-MS-Office365-Filtering-Correlation-Id: 34ceafd1-6b12-4393-7c81-08deb0ff53a2
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|56012099003|22082099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info-Original:
 +qoBPr/4k5oDhvt0YRpM5rt9B0FgILZ9YXu5NiORVyFlmylHxdXixGaWif02p0LJQxLGFmeF0+7zpmYev4UFdubYFgx+4LpFrkIYK559REYOg3LBI7c7fLlwcBgNaphFasrVEXfb9VkYLMAHK5BHfFE0g2IqD94KUa+O4lgrzWpXJ40a2k8CBfvPMHQcAJrfhE6hF8SY5dOrC4Kka27UHvZJ1LHuzD/Fp+M4VSkg/eibqI7qFU/PSSqu+paSmKr7Bs6Ps2LzcQxYCJRbNrE2ltcVfyYP02t7b8ziG0mHnNwWIuwmam/ne9k62xywvW5FFMSfzVtWHXseMYf/zo5Mqtal9o67pjedxTuaPoHGkJX7ZtTCqjdAg5L6aYEQ+VFPM93Jw9DV3ELtxW6/XxUrlYtRhdmaOz3CNcffpjqPW2sMQ8IPOm26sXuGJ8RQt9CxObQhjQ6bFOFk6UkW2PxMhlOjb//Gtv/grVO8wREiF+FS6sYJGfCWbuK+11BSmy5H8peNVhkdocacKqCTGNd8C/ED+yc2WFrF1RqPKgksyefXPcC2MowJR/eyrrDBUCMd7q3NdZtn0p8YCcVAzlb/3PJReGlRHi+NR8rwLqAcLKPrAmqWqCiLfj0wnUgNd4QaFE7AyJMfSSnGYv2924NDT/0cHb4IdTd5nUissftX+CzzMgBjCd9POq1aqzX4xP84fDNECdBJU7kYDVuc4mnLelUADoH9E6IU2bkhbo+3pkP/DmasG2NH8xQYtBMrBhZx
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(56012099003)(22082099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <35CC3BC2AE65114E8508E8105E11A42C@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 QG2F01IAOeqViD3xy6r0GSWXVDK1oLM6lifSQcyWtVMovhEin9vUcPCuP7XBGtaxqkFpHEHXYW4Si5iyt6biAo8/x6Lh7dnzMCAaNM8RRj1ZoSK0ghfu4e9rTnIAZbY0paDKNBGye5BLGGdZj4OIZeypeYYEAaCIGyb4fgaTGJ19g+FxJueIoLp6I40Kren1nhjd6qb3PWHbxLTMaPbk4PINIeMLMdwrGKoGRScfppna7x9HnO/X8Q5bZzSA1amKne4Fa39S7NHRYGftPUyPfrWfJPuJGGLfJu2u/Y8VW8HpHBH9SOfvOzUTwgYGUlYnQ3Txi0DYk01jnbB1jvdpKQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6505
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000B61F.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	31b511aa-9e4b-4231-8acf-08deb0ff2dbe
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700016|376014|35042699022|82310400026|1800799024|56012099003|22082099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	4Awc6UAurnfY5ZFUnZllHP0bIusKtkOXTtWF0SUfHeSuV0R6taIxoWpyldO+DYppZw15dESZ/w99tUfmSXKQnZQGEJVU5Lf3wveAU/85sw/y5vOPMEy/KrtfCaxv/Z4LrkkYLJAzNnch82rDcLq9wz5xCovVe9BW6m1GoL6T4Hurds0rnUw/Rqe6vIRNEv8g+uUu3obmX3U3DpBGZsrmu/CJy2ITZCE1umelsXiFB0xHF411mIN7vjRmU2nQIeT5ReTmpkQLhs5oiuQxyT5RfuzDNDAh7KRnG2T1M1Fy/jd0wrM3H+EJyciy6IXS7k7BYb5zfMbC1d0OIEFIT/ruGh/NXNhMvEO4hUtFA0Lk5b2dXkT/MWHOIq5PHFSNCXnSBAvQgEJigvNNTWTahFPFPLV2Z2fYJOl8AbYbntXIo6VrNhDqfEBhP6ltjO7xILFQIW4ii+0lSv6C8BkS2kubALr8PQ7dDlxMy2glkTcP4S2e7fcwj2Oip8C4Y9tdSB4TupdUaRTGuYnogmUqO/08h+doMJ6OPPqmvFuKReA08mAhs9iRS9UerU5RVpdDb6+bGu6DdSQVlZeZl7HzSxTY731LH+Ctp8rjeTzvpiqpl7NC9ZmbMFds5k3QPxHjvAZNFD0QdiSFtKdELTt76+qw/t+qtYFKuTICs3zCRvX1wbhYxly+U9nmt/b4jmXC6Bw+vcx6WAFsYTVThp11KiuHav/RGUxbgb/hBKJfBdebL6g=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(36860700016)(376014)(35042699022)(82310400026)(1800799024)(56012099003)(22082099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ADsHmcLLsJBiREKU2nYAnCsY+vp8MZJEjJi8O01YQq5SJ0NAJGd7sNBg4W+KIN4FFokjhD8nIGrGZwa6taX62qxTq7qVDID1j5CtYtF+XF3AtlumSXvvUYIVh3n13E7GYG4RTQcqZ05qdty4cJMJ66LNAWNZ4g/utb/pI9MXm5m6ManlTPGvtb+3f116DhlFYOTqRBFp+/SLZZdXkmGE0YERHJtLBop0kPjHfIPsZ8JzE+ATKduPGMHK6n87Zg18zYz/xNcb/uKtq+nH/JmClDBNiZLr4QEcovka6GZyivHVk7fDySmpt6TmzLv1Jay+6Y/lQNQGyo4nfTxVr+iRXcte8gLylZMpDFr9FTk8uYvs/4sUPRFQTj0C0II39069qMehdQJ1Z/vd7vkvBfFeIaAhbPhTUqq6RuPCszu9Q47YzmDHng09qElnfjNTggBJ
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 14:52:59.8429
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 34ceafd1-6b12-4393-7c81-08deb0ff53a2
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU6PEPF0000B61F.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7858
X-purgate-ID: tlsNG-c201ff/1778683986-D917D443-FAF8D808/0/0
X-purgate-type: clean
X-purgate-size: 5158

SGkgTXlrb2xhLA0KDQo+IE9uIDEyIE1heSAyMDI2LCBhdCAxODowNywgTXlrb2xhIEt2YWNoIDx4
YWtlcC5hbWF0b3BAZ21haWwuY29tPiB3cm90ZToNCj4gDQo+IEZyb206IE15a29sYSBLdmFjaCA8
bXlrb2xhX2t2YWNoQGVwYW0uY29tPg0KPiANCj4gUFNDSSBkb2VzIG5vdCBndWFyYW50ZWUgdGhh
dCBhIEdJQ3YzIHJlZGlzdHJpYnV0b3IgaXMgcG93ZXJlZCBkb3duIGFjcm9zcw0KPiBDUFVfT0ZG
IC0+IENQVV9PTi4NCj4gDQo+IERFTjAwMjJGLmIgc2F5cyBDUFVfT0ZGIHBvd2VycyBkb3duIHRo
ZSBjYWxsaW5nIGNvcmUgKDUuNSkgYW5kIENQVV9PTg0KPiBicmluZ3MgdGhlIGNvcmUgYmFjayB3
aXRoIGEgZGVmaW5lZCBpbml0aWFsIENQVSBzdGF0ZSAoNS42LCA2LjQpLg0KPiBIb3dldmVyLCBQ
U0NJIGxlYXZlcyBpbnRlcnJ1cHQgbWlncmF0aW9uIGFuZCBHSUMgcmUtaW5pdGlhbGl6YXRpb24g
dG8gdGhlDQo+IHN1cGVydmlzb3J5IHNvZnR3YXJlL2Zpcm13YXJlIHN0YWNrOiB0aGUgY2FsbGVy
IG11c3QgbWlncmF0ZSBpbnRlcnJ1cHRzDQo+IGF3YXkgYmVmb3JlIENQVV9PRkYgKDUuNS4yKSwg
YW5kIHRoZSBleGVjdXRpb24gY29udGV4dCB0aGF0IGlzIGxvc3QgaW4gYQ0KPiBwb3dlcmRvd24g
c3RhdGUgbXVzdCBiZSBzYXZlZCBhbmQgcmVzdG9yZWQgYnkgc29mdHdhcmUgKDYuOCkuIFBTQ0kg
YWxzbw0KPiBjYWxscyBvdXQgR0lDIG1hbmFnZW1lbnQgZXhwbGljaXRseSBpbiA2LjgsIGluY2x1
ZGluZyByZXRhcmdldGluZyBTUElzLA0KPiBwcmV2ZW50aW5nIFBQSXMvU0dJcyBmcm9tIHRhcmdl
dGluZyBhIHBvd2VyZWQgZG93biBDUFUsIGFuZCByZWluaXRpYWxpemluZw0KPiB0aGUgQ1BVIGlu
dGVyZmFjZSBhZnRlciBDUFVfT04uDQo+IA0KPiBUaGlzIG1hdGNoZXMgdGhlIEdJQyBhcmNoaXRl
Y3R1cmUuIElISTAwNjlILmIgQ2hhcHRlciAxMS4xIHJlcXVpcmVzIHRoZSBQRQ0KPiBhbmQgQ1BV
IGludGVyZmFjZSB0byBzaGFyZSBhIHBvd2VyIGRvbWFpbiwgYnV0IGV4cGxpY2l0bHkgYWxsb3dz
IHRoZQ0KPiBhc3NvY2lhdGVkIHJlZGlzdHJpYnV0b3IsIGRpc3RyaWJ1dG9yLCBhbmQgSVRTIHRv
IHJlbWFpbiBwb3dlcmVkIHdoaWxlIHRoZQ0KPiBQRSBhbmQgQ1BVIGludGVyZmFjZSBhcmUgb2Zm
LiBBbGwgb3RoZXIgR0lDIHBvd2VyLW1hbmFnZW1lbnQgYmVoYXZpb3IgaXMNCj4gSU1QTEVNRU5U
QVRJT04gREVGSU5FRC4gREVOMDA1MEQgQ2hhcHRlciA0LjIsICJHZW5lcmljIEludGVycnVwdA0K
PiBDb250cm9sbGVyIChHSUMpIiwgc2F5cyB0aGUgR0lDdjMgcmVkaXN0cmlidXRvciBtYXkgbGl2
ZSBlaXRoZXIgaW4gdGhlIEFQDQo+IGNvcmUgcG93ZXIgZG9tYWluIG9yIGluIGEgcmVsYXRpdmVs
eSBhbHdheXMtb24gcGFyZW50IGRvbWFpbi4gU28gYWZ0ZXINCj4gQ1BVX09GRiAtPiBDUFVfT04g
YSBzZWNvbmRhcnkgQ1BVIGNhbiBsZWdpdGltYXRlbHkgY29tZSBiYWNrIHRvIGEgbGl2ZQ0KPiBy
ZWRpc3RyaWJ1dG9yIHdpdGggR0lDUl9DVExSLkVuYWJsZUxQSXMgc3RpbGwgc2V0Lg0KPiANCj4g
SGFuZGxlIHRoYXQgY2FzZSBpbiB0aGUgTFBJIHNldHVwIHBhdGggaW5zdGVhZCBvZiBhc3N1bWlu
ZyBhIGZ1bGx5IHJlc2V0DQo+IHJlZGlzdHJpYnV0b3IuDQo+IA0KPiBUaGUgTFBJIHBhdGggbmVl
ZHMgc3BlY2lhbCBjYXJlIGJlY2F1c2UgdGhlIEdJQyBzcGVjIG1ha2VzIHJlZGlzdHJpYnV0b3IN
Cj4gTFBJIHN0YXRlIHN0aWNreSBhbmQgcGFydGlhbGx5IGltcGxlbWVudGF0aW9uIGRlZmluZWQu
IElISTAwNjlILmIgNS4xLjENCj4gYW5kIDUuMS4yIHNheSB0aGF0IGNoYW5naW5nIEdJQ1JfUFJP
UEJBU0VSIG9yIEdJQ1JfUEVOREJBU0VSIHdoaWxlDQo+IEdJQ1JfQ1RMUi5FbmFibGVMUElzID09
IDEgaXMgVU5QUkVESUNUQUJMRS4gQWZ0ZXIgY2xlYXJpbmcgRW5hYmxlTFBJcywNCj4gc29mdHdh
cmUgbXVzdCB3YWl0IGZvciBHSUNSX0NUTFIuUldQID09IDAgYmVmb3JlIHRvdWNoaW5nIHRoZSBw
ZW5kaW5nDQo+IHRhYmxlLiBUaGUgYXJjaGl0ZWN0dXJlIGFsc28gcGVybWl0cyBpbXBsZW1lbnRh
dGlvbnMgd2hlcmUsIG9uY2UNCj4gRW5hYmxlTFBJcyBoYXMgYmVlbiBzZXQsIGNsZWFyaW5nIGl0
IGFnYWluIGlzIG5vdCBndWFyYW50ZWVkIHRvIHdvcmsuDQo+IFdoZXJlIGFuIElUUyBpcyBwcmVz
ZW50LCB0aGUgc3BlYyBzdHJvbmdseSByZWNvbW1lbmRzIG1vdmluZyBMUElzIHRvDQo+IGFub3Ro
ZXIgcmVkaXN0cmlidXRvciBiZWZvcmUgY2xlYXJpbmcgRW5hYmxlTFBJcy4NCj4gDQo+IEJlY2F1
c2Ugb2YgdGhhdCwgdHJlYXQgYSByZXRhaW5lZCBFbmFibGVMUElzIHN0YXRlIGFzIHZhbGlkIHdo
ZW4gdGhlDQo+IHJlZGlzdHJpYnV0b3Igc3RpbGwgcG9pbnRzIGF0IFhlbidzIGV4cGVjdGVkIFBS
T1BCQVNFUi9QRU5EQkFTRVIgdGFibGVzLg0KPiBPbmx5IHRyeSB0byBjbGVhciBFbmFibGVMUElz
IHdoZW4gdGhlIHJldGFpbmVkIGNvbmZpZ3VyYXRpb24gZG9lcyBub3QNCj4gbWF0Y2ggWGVuJ3Mg
c3RhdGUsIGFuZCB3YWl0IGZvciBSV1AgYmVmb3JlIHJlcHJvZ3JhbW1pbmcgdGhlIHRhYmxlcy4N
Cj4gDQo+IFRoaXMgaXMgYWxzbyBjb25zaXN0ZW50IHdpdGggcGxhdGZvcm0gZmlybXdhcmUgcmVh
bGl0eTogUFNDSSBhbmQgdGhlIEdJQw0KPiBhcmNoaXRlY3R1cmUgYWxsb3cgcGxhdGZvcm0tc3Bl
Y2lmaWMgcmVkaXN0cmlidXRvciBwb3dlciBoYW5kbGluZywgYW5kIG5vdA0KPiBhbGwgcGxhdGZv
cm0gZmlybXdhcmUgaW1wbGVtZW50YXRpb25zIGZvcmNlIGEgZnVsbCByZWRpc3RyaWJ1dG9yIHBv
d2VyLW9mZg0KPiB0aHJvdWdoIGltcGxlbWVudGF0aW9uLWRlZmluZWQgY29udHJvbHMgZHVyaW5n
IENQVV9PRkYuIFhlbiB0aGVyZWZvcmUgbmVlZHMNCj4gdG8gdG9sZXJhdGUgcmV0YWluZWQgcmVk
aXN0cmlidXRvciBzdGF0ZSBvbiBzZWNvbmRhcnkgQ1BVIGJyaW5nLXVwLg0KPiANCj4gS2VlcCBn
aWN2M19wb3B1bGF0ZV9yZGlzdCgpIHJlc2lkZW50IGFzIHdlbGwsIGJlY2F1c2UgZ2ljdjNfY3B1
X2luaXQoKQ0KPiByZXVzZXMgaXQgb24gc2Vjb25kYXJ5IENQVSBicmluZy11cCBhZnRlciBpbml0
Lg0KPiANCj4gVGVzdGVkIHVzaW5nIFhlbidzIG5vbi1ib290IENQVSBkaXNhYmxlL2VuYWJsZSBw
YXRoIG9uIEFybQ0KPiBGVlBfQmFzZV9SZXZDLTJ4QUVNdkEsIGJvdGggd2l0aCBhbmQgd2l0aG91
dDoNCj4gLUMgZ2ljX2Rpc3RyaWJ1dG9yLmFsbG93LUxQSUVOLWNsZWFyPTENCj4gLUMgZ2ljX2Rp
c3RyaWJ1dG9yLkdJQ1ItY2xlYXItZW5hYmxlLXN1cHBvcnRlZD0xDQo+IGFuZCBvbiBPcmFuZ2Ug
UGkgNS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE15a29sYSBLdmFjaCA8bXlrb2xhX2t2YWNoQGVw
YW0uY29tPg0KPiAtLS0NCg0KSSB1bmRlcnN0YW5kIHlvdSB3aWxsIHNlbmQgYSBzZXBhcmF0ZSBw
YXRjaCB0byBmaXggUldQLg0KDQpMb29rcyBvayB0byBtZSwgSSBzZWUgeW914oCZdmUgdG91Y2hl
ZCBzb21lIHByaW50ayBpbiBnaWN2M19wb3B1bGF0ZV9yZGlzdCgpIHdoaWNoDQp3ZXJlIHdyb25n
bHkgaGF2aW5nICVkIGZvciBzbXBfcHJvY2Vzc29yX2lkKCksIHNvbWV0aW1lcyBtYWludGFpbmVy
cyBhcmUgbm90DQpyZWFsbHkgb2sgd2l0aCB0aGF0IHdoZW4gdGhlIGNoYW5nZXMgYXJlIG5vdCBy
ZWxhdGVkIHRvIHRoZSBjb21taXQsIGJ1dCBhcGFydCBmcm9tIHRoYXQ6DQoNClJldmlld2VkLWJ5
OiBMdWNhIEZhbmNlbGx1IDxsdWNhLmZhbmNlbGx1QGFybS5jb20+DQoNCkNoZWVycywNCkx1Y2EN
Cg0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed May 13 14:58:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:58:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308167.1579701 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNB2q-0004xs-EG; Wed, 13 May 2026 14:58:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308167.1579701; Wed, 13 May 2026 14:58:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNB2q-0004xl-Bg; Wed, 13 May 2026 14:58:44 +0000
Received: by outflank-mailman (input) for mailman id 1308167;
 Wed, 13 May 2026 14:58:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNB2o-0004xe-Uv
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:58:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNB2n-005ESy-T3
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:58:41 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a049194-5cb7-0a2a0a5109dd-0a2a4509d910-22
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:58:41 +0200
Received: from [52.101.48.20]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a04919f-2497-0a2a45090019-34653014a673-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:58:41 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH8PR03MB8273.namprd03.prod.outlook.com (2603:10b6:610:2bc::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 14:58:38 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 14:58:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=blIIqIUgzMDEO4Sf0m4bMZljkGX/6ynCMIuNlNj/rqCMTz6xhhP3wg+BD8LhXiB0Z/ruuCgd0ANwcmByS/ZabwNIabko354E60pgXt08gNhczLnYJ5hDrenip1+PUxvVG1Rg+Pn0/w1igJIZADXI/alm2DmW0uRnQ48v1SIJ5plBz8zpEGDNdPsO5wUeOwSaIIlTd/ifffNCfUmU7sySqvOC5lZ7zjIQ0k2w+tluDcE/CgxgfM+QZLJBw/Efv806HbsO9D/3/O/ZHMhVHNSD5CMlB3SuWKrTQns56rfifCTZE24/RPNRCkCp6DuxJH3KhoZvZH6htTy5TKQVlU/dzw==
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=unoB3QIHNs4bTbAoLczl1reCBSGGGUvprvYblE2hkzI=;
 b=qnIcPJ3+7rh+4AINTPLu+ZyWBRuKWAFzaqOZDsGg7G177n/rsUwUcOWG12x9xhkEdoLso3O+yB070hYASoyC/Fl5ZARFJ7Vizt6t5+rk0F8C6nqp/j1YniV7skPtZgW2KUFXi04P3TNO43ZvjE57FK5uyISbXYkvVcHzC74+Gi4mO8Qi+WNTNwf8CnkPruURl6CX5LREzRjZBHe+pUDOIPujuhb5cmEocZBHpc8cyuhF6IMD/ILb/+3vzQPvVDSHfHu5cQfhlD0KxOUuWCKdRLQ/ug92SwzuVmsaiQcQWBUTv5VDu9u1I4CjraeE/4j5ohVJ3X/ml6dmEU4JTmcOyA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=unoB3QIHNs4bTbAoLczl1reCBSGGGUvprvYblE2hkzI=;
 b=wWBPkp1xIOTT/s0muyTahPQxhLd6ShRsqIipOidRI/52lhgVJRghwiLBgSRjV+xu10ys2z7N5ql68kCJoggDpcE0zVQKGZxgSJg7ilVnyumnRZ2sdawLg1XETluXM4fv8MyZKwHKOgb87meI1U31rmnP/XY8zpnEe7dxP2azq28=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 13 May 2026 16:58:35 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH 2/5] x86/time: move BCD_TO_BIN() uses
Message-ID: <agSRm3T0Y3EfuqFb@macbook.local>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <2c5af8f9-05f6-43c4-afb4-a50cbacd2d49@suse.com>
 <agQ8tRY3Kya6RasY@macbook.local>
 <d37322ac-fdf9-48bb-91e3-3e8d560fa758@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d37322ac-fdf9-48bb-91e3-3e8d560fa758@suse.com>
X-ClientProxiedBy: MR1P264CA0209.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:56::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH8PR03MB8273:EE_
X-MS-Office365-Filtering-Correlation-Id: 90f33fe1-8364-4261-e13f-08deb1001d51
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|11063799003|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	AJ2Eg2zTl3Qu4e2qBBV/FbBgqrDU14/3gDkbq8LcEKpVo7RVoLyDvMqw4tgqo2CuJivr0M6Qd1T7+FJZNQkwID4MB3Z6kii/LsSsKSCR9Q5l1ttrHdkWOl/yVRBCigwnnzSiY52wDO09IcnqlGZbYre3wZc6iGTg98NXp9jwUFd/psPphl16H9T7VLqWyQ8B5LhZ4X8CRuLnLHPaqnGFV7/HncPWhLWEHzNAYFKRQWuibo1orEHM1jvVDk11GvDSB5dzIjB+cGK70y52clmB3MOx21l2RR+scEkyiD481tu4Vx2hV0Vasv5VGkVAA+zK3H+vbl/I9DOLBJmMk474Mf1Tqur51xwz9ut60CP9PFgdxiTAPF0bJLTReOaouNr6cblnsaphmjR34rR8py5mxDMg5VD4P5m4cEazb8ru/W7nwn64Dc68ZQKzIyNKkVeZ+zqqpfgTFLryWaEstZ5mrExf0LSrst0QbX6yaxUlfoq85bvwgFv9B73q0QbhtaBccasgm9Ehoxmfo9qZDyBjIrPULEJCgN/Z7dbQ0UtER0/kfh3JMojCuyx2qhqZflmSGzdN931reeQ0J42JJwXiK/ujENOIo0/WchKkPhhxdyX1zQK7hJWGw3txUmFyawHhsZKzOsVdNbHcW1KfbynRn8pPK3bYdufU/2m1XxDuOx6NDTrnekCB310COoVZ/KXA
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(11063799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eWVhUE5LRC9odm9qTm00azg3aDAxZ085d2RVRTV4TXY1cG1PT3JSZzZ2TW8w?=
 =?utf-8?B?akVmYnd1R3QxMXZXOVF2S0ZDdEs0a0pLTnlRQ0Zqb2N1VC9oN2REZGdCMk9K?=
 =?utf-8?B?Njg5RExDNzV0MTZsZ1RlVmJYYWRqN05NMUlrdkFHOHNsRzZMMkFhTmp5bG5r?=
 =?utf-8?B?SkIvRUlkK2FZMjZwWlRoM1dDUjRmQTdGMHV0WFExSmt0S1VxMEVHNE05UTk5?=
 =?utf-8?B?YktHSU1rOWVISzVCeSsvNzUwQ0hJakxxK1RTYkw0VEdIK2tMcVhTaFBhQU8x?=
 =?utf-8?B?QmJoYlhick9FR0tzWlhvK21kdkNQQU52cnMrUkV5bjN4T0VzYVJ3WkpRSVQ5?=
 =?utf-8?B?eXpsVTJMUUtmT1QzcGx5SkFxSWdRb0NCb0pkTmxGVEZCQTZkbzdXQVFhaGxP?=
 =?utf-8?B?cFVlWHBRb1R3RVR1SVM4SWdla3hhMXhMSUtNcmZNelVXRkRHeU5SMUo4N0tr?=
 =?utf-8?B?bGh6cmdjYUFyaElKRWExM1BrSkhhWnRYaWV6NkZQOHVOcURzZzhsMWFoaTJP?=
 =?utf-8?B?aUljQUdPQmFLQ296SUJDSFQ5LzU1VjZkcDNYbzJld2piWTNnWHVoTjJiR004?=
 =?utf-8?B?c3QwdDVWSldpWGxKaFZnMEU2eWx5TE55VTcvTzFZcTZMekZya1NtdU80R0tx?=
 =?utf-8?B?TkJNWEhIL1pGOCt2L1AyTXRwRG50TElJeDBoQ2JyZGVsRytQN29ZZUVkNWlW?=
 =?utf-8?B?dFAySXlnTkc1bTdYZ1UvVjlxVWhUa0EzNWJXLy9jUjkwVVRsS1JNeVpUUWpu?=
 =?utf-8?B?ZnlVb1pxMVVGL1lBaDAwU1RkbDRtOHBiQjd6YnA3cmJQNmNnZDVkd3Y3Ni9n?=
 =?utf-8?B?bkRXc0dNRGcxOE01VVRSeHdtWUZYMGxDenNENHE5L2VBaTluQWluQlZjZGVm?=
 =?utf-8?B?TEl0N0tKS2U0VXRCbXNXVHJXTDBQWTNIK0lwbTR5UElIQmNKSmtoZnJaZE1x?=
 =?utf-8?B?Ykdqd2tPK0YzdjVOZlFEcE83NTJzZFhLdlY5c2FncXR5QnB6bHJUVnNCcEM0?=
 =?utf-8?B?bWJJbkFqWTNLZ2ZQelg4Z3R5U01IbFh0Sk1PWXI1czFuNFBnQXRxRjR0anJL?=
 =?utf-8?B?OHNyL1Q5Q0ZlSVV3RUZzQ0dPTW10Zm5lQjlhY0x5RUExWklncGZ4MnlEMVUy?=
 =?utf-8?B?UFZBajAza3M2ZVczemhMZHZGVWVJNDlQSmx3Ny9rMkZrNXFGeVFLVDhBOUpL?=
 =?utf-8?B?anI0NjAwaVBzRlRNMWUrNTdrZ0NPMW5QcXRCU2wzNEVSZXNOak5PWlhId0VZ?=
 =?utf-8?B?cjJRbkc4WkpvODRaaUZHbnQ5V0NQVFVuZ1RoMFB5WEN6bVdhNVc1RG9uc29J?=
 =?utf-8?B?VTA4dkZRc29KTitPakMzYVpQekxWN0VGNkJFWWZMWEhlUHREZGxOb2pURmFR?=
 =?utf-8?B?YlRjTmVvLzVNRzV3QWJ5ZDJNcElhc0tHNXVHWWdCTUlEMWNQcTJ6cktVUzB1?=
 =?utf-8?B?SlZzRzk1NUdpTXNkejN2ZlAvWmJHcVgrTjdFSENyR2VKNFIwT2lSdG1XZnRX?=
 =?utf-8?B?aDljSTFJb1R1dFRuNEIvakF6Z2NMd0Y2clkxaE8xT0gyRTN0eDcxN0VRdDJv?=
 =?utf-8?B?dTlhUTh0RzU4USszZXg0cnovWWQyOEV4TVZ5dXE4dGhOVEY2VW4xdHFlR0FO?=
 =?utf-8?B?aGViVlBSK2UxZFVKdWlrS0ZsQXpWVW1LWmlFYlFQMW9OMkVJU2dLL3ZKaFZo?=
 =?utf-8?B?enAxWGtZNDBwVitJTTZ6VEtPOGtMdG5Hb2wxVkFVcnN6Z3NtS09BSjdRVGtY?=
 =?utf-8?B?S0YwQ3gyN2pLZmlZSUFMakNJcm9OS2lWWmlaTmdmSVNmV0RHOWIybkVZQmR6?=
 =?utf-8?B?cnFUaVpjcTJpUmVOa2UxQjhFaG5QYklhTHcrOW53empGNDNBM3dOa1Brcy9v?=
 =?utf-8?B?djhpV003TmZFRkxRU3NRY2F2eGZKMWQyRUtVKzNReVZES1dTS0d2VEIzRWs1?=
 =?utf-8?B?U2RzeWxEZG05Y0FOSzhwbVRsQUhXbHRZcjBsa2p2TnlJWWFpVy9MWG1wRFg2?=
 =?utf-8?B?VE5TNmgrLzlTV1ZRaDFhZ2FrMmQvSU9FRFY4QnNMamNabXVEMDRyWDZ2M2Z2?=
 =?utf-8?B?WGM4SHhvQkJ2aldOZ1dkZWRYRklKSEc0WG5idUVaR0xXZE51ZG8rNWxac0pt?=
 =?utf-8?B?MCtuQTYyMW82VDJ2eWZCREdCS3JZZGpNYm5UUlY4ZVVTT2JPU1BBSW5rM0k4?=
 =?utf-8?B?T1d4dHlOWjFwcnFJQmtZK3Fxb2w5VVhOOG5KamRGTmNZRmp0NTJidVJnVEpo?=
 =?utf-8?B?QWpTbXVUWXJVQzhNT3Nad0twdGhaVXhIOWFPbTR3ZmJxVU0wV01KaVdyTVZB?=
 =?utf-8?B?aW1RSG9jN1NRMkNuamlYTVFLQ3FCUk1peERkK0dqUjBFdHFMaThHdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 90f33fe1-8364-4261-e13f-08deb1001d51
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 14:58:38.5756
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UM2iOaeczb6/aThIa0ctjnzBZNJqrdLUMq8iNQfhq0sjC3Frbj6dOhKZNNDkGYTXcqqp6WbObOlYF3GgJpCw4g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH8PR03MB8273
X-purgate-ID: tlsNG-bad1c0/1778684321-41165A53-C188BBF5/0/0
X-purgate-type: clean
X-purgate-size: 1937

On Wed, May 13, 2026 at 12:39:46PM +0200, Jan Beulich wrote:
> On 13.05.2026 10:56, Roger Pau Monné wrote:
> > On Tue, May 12, 2026 at 04:59:03PM +0200, Jan Beulich wrote:
> >> ... outside of __get_cmos_time()'s locked region. There's no need to hold
> >> the lock for these computations.
> >>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> > 
> > Acked-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Thanks.
> 
> > I had the same thought about moving the conversion out of the locked
> > region when reviewing the previous patch.
> > 
> > As noted in the previous patch, we should move the conversion of the
> > century field with the rest?
> 
> As said there, no, I don't think so.
> 
> >> ---
> >> How come RTC_ALWAYS_BCD is compile-time constant 1? And then even with an
> >> inverted comment? Looks like we've inherited this from Linux, and even in
> >> Linus'es current tree it's still this same way. Yet all half-way recent
> >> chipsets I'm aware of properly implement the DM bit in reg B. Might this
> >> be another 32-bit leftover?
> > 
> > *shrugs* I don't know.  Seems like Linux is still doing it, so it's
> > likely safer for us to continue doing it also?  We had no reports of
> > it being problematic, albeit one could argue it would be best to
> > prevent such reports by doing the right thing.
> 
> That's my point. If we did this as specified, we'd unbreak systems with the
> DM bit set correctly, but we'd break (hypothetical) systems with it bogusly
> set. Like with a few other fixes, perhaps we should correct it, but provide
> a command line option to restore old behavior?

Possibly, but I would do after 4.22 has branched, just in case.

One thing I've noticed, is that Xen don't attempts to set
RTC_DM_BINARY in REG_B, shouldn't it try to set the bit when probing
for the CMOS?  Since it assumes BCD mode it should at least try to set
it?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 13 14:59:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 14:59:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308170.1579711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNB37-0005GO-Qa; Wed, 13 May 2026 14:59:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308170.1579711; Wed, 13 May 2026 14:59:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNB37-0005GH-N3; Wed, 13 May 2026 14:59:01 +0000
Received: by outflank-mailman (input) for mailman id 1308170;
 Wed, 13 May 2026 14:59:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNB36-0005Fw-Oo
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 14:59:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNB36-005EWp-5A
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:59:00 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0491b0-5cb7-0a2a0a5109dd-0a2a4505e0d0-8
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:58:59 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0491b3-aaa8-0a2a45050019-d155802fb04b-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 16:58:59 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-48d102471a4so69029975e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 07:58:59 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48e8e5dd3e1sm74384125e9.1.2026.05.13.07.58.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 07:58:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778684339; x=1779289139; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=S49BnCLafZCcpJp1gNOheI7jeaPfBL59M9e1WCZKYAQ=;
        b=Ybn5d4UselDmCkd6VbuphKRIQ+hS3KPP851CGAnY1RIxPX2EuMXTuxXTINm9jgGF9H
         JwKiOTFJfCjYY1zOijW6QCt539t97agsh5NbOqVTDPzPyfQ5GH7CRS3LHLLhOJ/i5wzQ
         7tw3r+sQkALWUkUv8XB6/xa64XL3/8NPjgLIcQDFcEMwUzgF5yyuStKbehPuvzJ5I+Q3
         0eaBapecMlvVSNvQ3CXEQGsg4RwyVi9uSG7wcBjrY1K4ZcZV8jJxaPv7t/eG3E/oKFuY
         CmB1Kquv9HKjcSGOZOclQfemboBoAPms7m8DwQSAde/58wjxoM1q5IzmwbdjPkHfRtoQ
         I+/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778684339; x=1779289139;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S49BnCLafZCcpJp1gNOheI7jeaPfBL59M9e1WCZKYAQ=;
        b=QYdov7m5y8B8Xnww1lv6obTJgwyJfEtgqUjbqTud7hSCATTcyBu90LynXtCdddYxWj
         XvYxYSziATfbuifjV4TM6l+EvXOrei5aYLG/m+ORFw3/axpkiB0TWhMBtTUaeWc9Szre
         j/G3fu2QfjioDcqIYLEnsawd1rDlRQy8U3s+7x30o3R1zerilu6Jc++2efvgI8yP9EY5
         Uxo7QK7W9ChA+jN+Hqle8WkxpjKXjgS+mXLjnbd1Xty7MGekSl1X+R3jWi6iMHAGu8lX
         BHj+mEfDfF/UbZhEfYupj2BJHC/q+2xDRM/QgDgkgTPwInKgOq/irbHfDEfCnaJy/SgR
         rSYg==
X-Gm-Message-State: AOJu0YzKtcAfayycYqjkr1cAimMH10pzeASiSUaGwvGNHTZajYHiVb+n
	Jtk4AVJDYJgtmzpnwKemTKyVxRILsBBUrjr5LRm+E1hGlbcaHyysRRP7WDyo1auF6Q==
X-Gm-Gg: Acq92OHHXz7AZAHl36JQ7IXVtXBJm7L6U5bEKF9MHGZVUeAnqbzneu3MOdvSkHVtTDm
	Q5GAQm6VMBKqnChBP+ISJ07EE8u/n+8eLnecbF6SVzIuCWbQhP0CSAtlg/Vua5Od0te95FcqwtJ
	s2f77BCJpvUXI60GT581SVMLjD8yPH3TC9o6a1dbWddGnsR0FxxBoLZv7EvPh/yenWHrAHoV7H0
	Fd7FIpSk0LG0NSgzAO/j7n8Xkz9vfOyic+CBu3YUqOY5OZv7M0Oru6hPhEfyGNJMldiR2cBQcyX
	sRYLGNf/GUOLyst0AcmmsQtxUfFaJmZbKNBHzRnfknxwSGOtzzeOQbas4328ohLNTwpmx9uvOZI
	xOn/3rXq5MBIBcGRmJn31uQIo3M/MPG6o6+S/plDYwZLk2ZdIjPbe2Ono6V8sCgUnG/oEtBE/Dq
	0MgOqT+Fy723KmINiGX/09K8TO12KsDPJp/agPB+aJ4Kwx10xXosasZ0gyT2rOIkm5M0ZbymijE
	4m9TKCOAjDBPidVwYjxyR0NZg==
X-Received: by 2002:a05:600c:4f93:b0:48e:51f5:2764 with SMTP id 5b1f17b1804b1-48fc9a4b05cmr54854145e9.27.1778684339344;
        Wed, 13 May 2026 07:58:59 -0700 (PDT)
Message-ID: <17a25f0e-91e3-4e09-92ad-21e7dc0ebe62@suse.com>
Date: Wed, 13 May 2026 16:58:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 3/5] x86/vRTC: support century field
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <383355d1-7032-4445-8a06-cb4411ea797e@suse.com>
 <agSJlh8KQ9orL6wC@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agSJlh8KQ9orL6wC@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1778684339-D9B70443-41B5CD2F/0/0
X-purgate-type: clean
X-purgate-size: 5424

On 13.05.2026 16:24, Roger Pau Monné wrote:
> On Tue, May 12, 2026 at 04:59:35PM +0200, Jan Beulich wrote:
>> Both ROMBIOS and SeaBIOS (with CONFIG_QEMU=y, as we build it) blindly
>> assume availability of this field (at its conventional index 0x32); OVMF
>> at least has code to inspect FADT. Hence we ought to have supported it
>> virtually forever.
>>
>> As the index is beyond RTC_CMOS_SIZE, leverage the padding field in
>> struct hvm_hw_rtc to hold its value. Update the field only when involved
>> values are valid BCD century specifiers. Otherwise (for VMs migrated in
>> from an older hypervisor) leave handling to the DM.
>>
>> This makes the Linux rtc-cmos driver report y3k compatibility.
>>
>> While extending xen-hvmctx.c:dump_rtc() also add RTC offset there.
>>
>> Fixes: 4ca161214355 ("[HVM] Move RTC emulation into the hypervisor")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Am I overly paranoid with the checking of the field, considering that
>> Xen 3.x post-dates year 2000 and hence all firmware nowadays usable guests
>> have ever run with should have been aware of the field? Or am I, quite the
>> opposite, still not strict enough?
>>
>> I can't help the impression that this introduces a latency issue for
>> the 2nd of gmtime()'s while() loops: We now allow years up into the 99th
>> century, i.e. over 8000 years away from 1970. 8000 years are very roughly
>> 2^^38 seconds, making for (again very roughly) 5 million iterations there.
>> Did I get my math wrong, or do we need a prereq change to (vastly) reduce
>> the number of iterations of that loop (e.g. along the lines of the other
>> one, first going in 400 year steps)?
> 
> Hm, maybe we need to add some XTF testing for the RTC?  I'm slightly
> worried how much time this could take, and since those calls are
> serialized on the s->lock I wonder whether enough parallel accesses
> from the guest could manage to trigger the watchdog?

I'm not really up to making an XTF test, I guess. However, as you look to
share my concern, I'll add a prereq patch adjusting gmtime().

>> --- a/tools/libacpi/static_tables.c
>> +++ b/tools/libacpi/static_tables.c
>> @@ -33,6 +33,8 @@ struct acpi_20_facs Facs = {
>>  #define ACPI_PM_TMR_BLK_BIT_WIDTH           0x20
>>  #define ACPI_PM_TMR_BLK_BIT_OFFSET          0x00
>>  
>> +#define CMOS_CENTURY 0x32 /* Conventional index used also without ACPI */
> 
> IMO this define (together with the RTC_CENTURY one below) need to be
> in a public header so it can be consumed by both the hypervisor and
> the toolstack.  Having two separate defines, one for the hypervisor,
> and another for the toolstack will just create confusion.

I first thought I'd do it like this, but (a) this isn't a value Xen
defines (hence the comments in both places) and (b) I'm not entirely
happy with such a(n) (ab)use of the public headers (yes, we have other
such examples there, which I also don't really like).

>> --- a/xen/arch/x86/hvm/rtc.c
>> +++ b/xen/arch/x86/hvm/rtc.c
>> @@ -47,6 +47,12 @@
>>  #define epoch_year     1900
>>  #define get_year(x)    ((x) + epoch_year)
>>  
>> +static inline bool is_century(unsigned int x)
>> +{
>> +    /* Constant below should match epoch_year above, just as BCD value. */
>> +    return x >= 0x19 && (x & 0xf) < 10 && (x >> 4) < 10;
>> +}
>> +
>>  enum rtc_mode {
>>     rtc_mode_no_ack,
>>     rtc_mode_strict
>> @@ -482,16 +488,32 @@ static int rtc_ioport_write(void *opaque
>>          data &= 0x7f;
>>          s->hw.cmos_index = data;
>>          spin_unlock(&s->lock);
>> +        /* RTC_CENTURY always forwarded to DM. */
>>          return (data < RTC_CMOS_SIZE);
>>      }
>>  
>> -    if ( s->hw.cmos_index >= RTC_CMOS_SIZE )
>> +    switch ( s->hw.cmos_index )
>>      {
>> +    case 0 ... RTC_CMOS_SIZE - 1:
>> +        orig = s->hw.cmos_data[s->hw.cmos_index];
>> +        break;
>> +
>> +    case RTC_CENTURY:
>> +        orig = s->hw.century;
>> +        if ( !is_century(orig) || !is_century(data) )
> 
> Is a real RTC strict in such a way, ie: will it refuse to set the
> century value to < 19 (0x19)?  For example QEMU seems to be way more
> relaxed, and allow any century value.

I can switch to rejecting merely 0. Unlike centuries in the future, it
didn't look very useful to me to permit anything below 19. Please clarify
which way you prefer it.

>> @@ -515,7 +538,10 @@ static int rtc_ioport_write(void *opaque
>>              /* Fetch the current time and update just this field. */
>>              s->current_tm = gmtime(get_localtime(d));
>>              rtc_copy_date(s);
>> -            s->hw.cmos_data[s->hw.cmos_index] = data;
>> +            if ( s->hw.cmos_index != RTC_CENTURY )
>> +                s->hw.cmos_data[s->hw.cmos_index] = data;
>> +            else
>> +                s->hw.century = data;
>>              rtc_set_time(s);
>>          }
>>          alarm_timer_update(s);
> 
> Don't you need to adjust the tail return of rtc_ioport_write() (below
> the context here) to return 0 when s->hw.cmos_index == RTC_CENTURY, so
> the set value is also propagated to the DM, and not only the index?

I don't think so. The case of us not handling RTC_CENTURY is dealt with
earlier in the function. Whereas when we handle the field, we don't want
to forward (like for all the other RTC fields).

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 13 15:00:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 15:00:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308182.1579720 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNB4f-0006yI-4D; Wed, 13 May 2026 15:00:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308182.1579720; Wed, 13 May 2026 15:00:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNB4f-0006yB-0h; Wed, 13 May 2026 15:00:37 +0000
Received: by outflank-mailman (input) for mailman id 1308182;
 Wed, 13 May 2026 15:00:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNB4e-0006y5-8t
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 15:00:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNB4c-00CTId-2Z
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 17:00:35 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a049207-e002-0a2a0a5209dd-0a2a4501a4ae-24
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:00:35 +0200
Received: from [40.93.196.64]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a049211-c1f2-0a2a45010019-285dc440853b-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:00:35 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH8PR03MB8273.namprd03.prod.outlook.com (2603:10b6:610:2bc::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 15:00:32 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 15:00:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jVF0ZQtvoBmz0NsVxO3zQFkPNG0Kj/Rvpkod74vVLNi/3uN1YJsR5ThoOfm8WNUxW4vtBLVqYnY9DKUp19f5hHZK78yKi/3Ib9P/HuwkicnIPA/ZKWZIQUANiDZXgXnoDqFJApGkvBl1oxbdnjCbgHLCHzFxgwwVafV0jXxc8hSMro2RJE3zkjazwfdM+VPdm0bUxsW/ZTYHpP2wDGkDBb12PmJral+mEul+aJeCoBbPfxiMMp+tCYNzPyM5hZyUWAqglwQP6m1+zDEIzRFhQMDKu572NNPJZkGmSmMOxEeP3i6r7UNu0t0v5o6EGbYhWYvaHR66HjBeBzrtR4ML+g==
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=bTUTfeGhvKC0K/ETVm8Kl7FUPr4NaLkrH5PjpmIVvuc=;
 b=iAI715elqX0ErX0IsbX4C7nDP1QU1No3jbw1gR5bVPBHhY++Rx1Nh36BwUFQJX/yyynVuVDts/Iqp/PzSaR19bE7abYX6EXzVZIueB4PUpZOUyaG5TgMTvavM3O1izQB9o0UNm49+ZYM1Wm6S/0JlE0B2giLFggaz8wGkS5sryjQ8Q/eJfq14fCVjmgERmi/+FVhR3h3oB0ZPeCaXqmt/H+IgXzqWVkdgA+v+1vAfR6jENrNG0gLF0kN5Z7PDcgkFWy2tUDc7i0YLPF0JAOaDCj0fDaQAkQ6vlTxGCE+Vgs2c3MU4BUkpG2lnMviL7IMWrFFP4fz8og/RIwAHhvLPA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bTUTfeGhvKC0K/ETVm8Kl7FUPr4NaLkrH5PjpmIVvuc=;
 b=R7dqhXO5ZRGed0kueYD3L7GBY5d4SzW+do/PycZAd3lgFkDT6oUpwLfewYAQoCUikQeOZOgtwjxk2hUCgdBgIxYDTBTcNIUiB1vwtCKJv5Sd6YlAq1uQjbbv0zh8GE4ghMZ94Aqh8SOzn1YqXQJ9bmjv+/vB1xEvP4kIivOzqcA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 13 May 2026 17:00:28 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 5/5] tools/xen-hvmctx: shorten various format strings a
 little
Message-ID: <agSSDIfIYIwylU2g@macbook.local>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <4bcd76e9-1bd5-4a2c-8d75-7d29b9dfa31f@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <4bcd76e9-1bd5-4a2c-8d75-7d29b9dfa31f@suse.com>
X-ClientProxiedBy: MR1P264CA0123.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:50::15) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH8PR03MB8273:EE_
X-MS-Office365-Filtering-Correlation-Id: d35cd785-0e2f-4541-558f-08deb1006168
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|11063799003|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	WSi1c4sKHO1AQM7vSgysa8mrbBfc81PlvFZx/416wAr/MJZkBnE3pEK4obLQQMgwinKsgRgpIjYGQ9/HntRq7lA/TuYBT0jNar9CPmMVP4QW0O4nlOH3Gs7Ihupb+ls6rHeLnBybWKhi9gw1526Z1B1AvG1O5kjb2tHtRkVRAbzt5i+a/2M9v8e1uXOHSSVZ9slTNlDqutAI1bkNrSuzyrIYY6UPHstFg8en/G9FcUul/9MJWD1z+OMARnqODC0F9Vo/VWMfSB8a+jnPh5i0jeQFw9CaLS/00hEwgz2XiHVFKr/tL2buv6qfZrWUgiEUhgk4xbCx087r3Ieiw/u9PA6hF8KFL8mUgc2KSod7WB+dIilxJwbzmhfOMwdok++sWxdzYU6oypfpCft4PhYr6Pkm4ITnJJDCetEuDolN8A3o8AGXWq72t5xdnSHVZ0ZcWHy5cUzmfPoTcakxsg/I8A9EYtO8txZTIZSwXw0tbm219KlMJ/e0IHPYR3hDXyIk8r2bcyrXalLZtNPzHB6foL3ZE0pBzdIy8ATwRliJdWJNN8fJLhE/un4TKP+QOvyyiFsk8zVjD8dxY0IvG9KNB3KWUX0Qn1vZMrFIRxlk7BO4ej4QevB6gjzo61ygiv5pexl7fIrnaT+dajzoKdMjFOLNJmE9XtkwLydtVxUYjnei7Y2bMYzncrbuIqfuG7sR
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(11063799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UTVDMzRWOFB2Uzkwcko3MytqNEZCL3ViVXhtRzY0YnZESlYveU9KMkpGUCtE?=
 =?utf-8?B?T0VwTlllcVpZWmJGQkNTQ2lybStNNzVGc2l0OWtOSXlaU283N2xHbStGNjM2?=
 =?utf-8?B?VSt0Z0g5bHZzME9XTXMwY1QxQmhncUZhTnk5Y2NvTVpScVlhYUozVnVZTUJK?=
 =?utf-8?B?dHZWdFFIVCtiRzhydWpFL2s5U21QSkRLSlExMTJlUldnWDlOZXFnMTMwdzZU?=
 =?utf-8?B?eTRITHRTSjJDaURsaXVnZVphUkNIcEErVnBHdUNCbGtLRTl5a3M3NnFpRXI0?=
 =?utf-8?B?NUJjMzh2L1ZrTmV0MlZPWG5jY2x4RUpoVDVyaWM3c053TExkVXlobnA2K0lM?=
 =?utf-8?B?bUNxTnNtV0J6Zi9PK3R0bVQ1ejcxNkxQaCtqZDRSZVgzM0dTdUgvTzFHWmFZ?=
 =?utf-8?B?K1BDY2todmRpQW5KWEtGb3lQNFcwZkVOczJPNjA0QVBiWXlEUnFBWTRRN3pE?=
 =?utf-8?B?Y2orVGthRHRrc3FxcWRaM2RqRUU0R3MxcElGZzRnR0x0SGFLZ1JDVVRMcXZz?=
 =?utf-8?B?dGNyNUJxcHBxc3lZUW9PSTRRUGZTVEV3NWt0WStYOGdBRXZiZHZYd1FVSWNR?=
 =?utf-8?B?SWFxTkxPTkdQdzh0aEkxdFRZNVZta3F5QU5Iakc5ZlhVUFhsWWFoMDZEUTBE?=
 =?utf-8?B?UGJ4dmJSa2pob1dqdk03dHQyOUpNVFlWRS9DWFExYWR0UC92Y3ZmRy9GTHdC?=
 =?utf-8?B?TnNNd1hFQUIrb3JNTjNMRWtkZ1FSdVBSWkcwNEpMWklla2dCZWNPeWQyaGJj?=
 =?utf-8?B?cUdLTXJNbStmc1NFVlNXQnlhbTBLYjR5RmVKcm5WNEVscXlDUExoc0JFeUpH?=
 =?utf-8?B?Sjg3Nk5wY2FWWUM4MzR1NUduSVFXMXA3YWJMUTk4QmVYU05udmR0VnZSY0ox?=
 =?utf-8?B?ajQ0UDF6ZVlOMDZCT2JTL1BUTmxBekM5ZW1NSTEwMk0vc3ZMaThlTG5TTDRm?=
 =?utf-8?B?UmwzMHlwOWE1TUZlMS9maVlyaDl0TW5NOVFUOEN3ajJ6NFFWVHpSSUpERHVE?=
 =?utf-8?B?OXVMT1BNZ3VjR2JUSTU4WFE3M2lQQmI3U1hEd1ZpbmFjbVdoYkp5cE5IQU15?=
 =?utf-8?B?eEtrNDNjRnorMlRTVlE3cHAyc2lBVGxWNXRMY3lTdjBlK1VkeHlIeWRGZis2?=
 =?utf-8?B?NkcrYUF1SSsxZlFZSjVUeFdKQ1FOUm1LMXJVaVg0OFBScVR4ZlBTZGNqRVNr?=
 =?utf-8?B?RDBQVWJFSGRNZFZtWjZqSDJORXhUYldMUTlYbmtCeUtBTkVFZnpUNEgrd1o2?=
 =?utf-8?B?K3d0U3RJdExleS80amM3aG5LSVRST3hkN0ZSMzdRclVramZ5RkQ1VGNXVnVL?=
 =?utf-8?B?S2NzUWFkZVdUVSt0Qi9JRVBvMSt6bTRBUENJZldBOUVULzhDUkVQYkl3YXZp?=
 =?utf-8?B?cTdjWnRROG1WS2d6dE5TUnZkM0dsbkJPVnV5cHRzY09mTHJFZVp1V0c5SHhZ?=
 =?utf-8?B?Ui9yc21ISDYycG5qQlBzc2QwTTlQaHNHOTZLVXMvS1R3d0VndXJXWjRnTVpG?=
 =?utf-8?B?aG9idzBxS0tFUGRLcU9mc2hCZ3VOc0d1VndxVURTbUR6N1BkbVhkTjVTbmJ4?=
 =?utf-8?B?WkJVRGVtYUtCL0R6ZXlmSHIyRTd3Zjcyb1NCUThzY0NUREpqaUhjazFzN2s3?=
 =?utf-8?B?ZmJlVnNET0RCd3Z2ZHNLTFUvMDlsOWlzenBZU2twN3NRdkF6bzh3NlA1SzNn?=
 =?utf-8?B?ekR3TVgwOTlpZ2dLRHh2clQ3cmUvVll1akZvbnNJcGpWcEl2Ny9BdGFBQXVC?=
 =?utf-8?B?dDY4RlQzeHAzRHlDVFlrdllpZDlHTC9YS0k5YllzWnpBZVFaRFFPRlZyN1k5?=
 =?utf-8?B?eVZRVldoazFJOWt4YTlvcythQnYxLytuUGk3UHhOdjh2OGx3eUkxRFFFM0c2?=
 =?utf-8?B?c3JseVNNU0xGQ0t0NmpCZUVZUGFaNlhCWmJyWU1KVUcxUlRyU2NIcE04QU50?=
 =?utf-8?B?UUFhMUcwc3lEM2ZTcmV6YUtPM3JJeUh5akhuOU1ieThVcWdic3MrRzBxYzFi?=
 =?utf-8?B?UE9PNWFKbFpQOEJubVhDMEd5L3VLRGIvRkNEMmVuYVZWMEpRMVQyNlJvMkts?=
 =?utf-8?B?RmRkUVQ0WFExeWR0ZXQ1cU9vaFYvSHcvRk9SODF4VjNHT0dXUS8rOGxaN1lu?=
 =?utf-8?B?RzVmYjZoWXNxQi9odWxvTTJRckdCNmd0ZFlOVlY3MXFrN0JmaDkxZXNwQnJq?=
 =?utf-8?B?VllSNWlYUlplOUpZdFBMQS91QzhxcFZaY3MxRko1eHVhNGl0TWoyaG1JZXNG?=
 =?utf-8?B?ejVUNC9MRHZWU2UvWEpGemR6OS9LQlIwbE55YjdEZXVVb1h5ampudWhDZGhJ?=
 =?utf-8?B?WnlSMDg3MjdrUElRemhOelV5M1piN3UyZHY3V1M2Vi8vM1hvMVZyUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d35cd785-0e2f-4541-558f-08deb1006168
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 15:00:32.6759
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kitaWJV2DRUz37HtYAgvK8mO+P8VUkxIjBgJpvlY2ZqadA2bjCa2wx0q5RKGSSaazbE5Q2JZHgqX3PO/SwvwCg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH8PR03MB8273
X-purgate-ID: tlsNG-d62444/1778684435-AC656FF4-09E6E543/0/0
X-purgate-type: clean
X-purgate-size: 522

On Tue, May 12, 2026 at 05:00:43PM +0200, Jan Beulich wrote:
> %4.4x and alike format specifiers can be expressed shorter as %04x or, as
> e.g. dump_ioapic() has it, %.4x.
> 
> In dump_fpu()'s XMM register dumping, also move away from showing bogus
> xmm03 and alike. The proper register name is xmm3 for that particular
> example.
> 
> Also strip trailing whitespace from lines touched.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 13 15:08:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 15:08:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308193.1579728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNBCM-0007eJ-QH; Wed, 13 May 2026 15:08:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308193.1579728; Wed, 13 May 2026 15:08:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNBCM-0007eC-Nm; Wed, 13 May 2026 15:08:34 +0000
Received: by outflank-mailman (input) for mailman id 1308193;
 Wed, 13 May 2026 15:08:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNBCL-0007e6-2g
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 15:08:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNBCK-00Dnl1-AV
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 17:08:32 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0493e7-bab6-0a2a0a5309dd-0a2a4502afcc-32
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:08:32 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0493ef-af86-0a2a45020019-d155dd2cc544-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:08:31 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-45562c41ec7so3356944f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 08:08:31 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fc8d1f6dbsm90898645e9.6.2026.05.13.08.08.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 08:08:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778684911; x=1779289711; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Clg5bc8c1og2WC5JQtDfjX0TaiURdMgt0rOVrfGQJ8g=;
        b=OUaRZ1PLPqfDKCyoHLQxr1I4aS4Bsb8+H9uce4FfEywQpMbb8aS/7MGz1OnO2zc1XQ
         voKMKNfWFndG4jpEyybcnFCpT54L3GFJWwSAY27wbedy9QKoIYS7nXLp46PM9f9SdEWP
         nTVmBtAdSjlu/ij6F7VpfXYYXK3XQNaJgQB5gJ6celKg5wwff6NG3mWJr0f2aAdiOVEV
         VBQj5pVnPeyx53JOI9haZFQ9HBS8M3XUa4ndT0NSzL1vUwgM8wmaf6UQnSAlMv0GkIyJ
         Kw6a5juzMhSE+wIu6Hcxz8LjY6l9h07qOWZtwHiktvwsQLIJTYtc8/+UO7PVsm5cAuY1
         GbLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778684911; x=1779289711;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Clg5bc8c1og2WC5JQtDfjX0TaiURdMgt0rOVrfGQJ8g=;
        b=fslU3Je9lRpvpY8LsbxWuBZ2js/uG2uJuvic2ROb+NR0dzxeZVVRoDci8aUKBTgr0a
         8BfwuU/P3IDM6InAwngHCuB3Kd4Y0HR+qaV8gL8Yo3iNwK9/z23z6mkma3s1WbYkXhoc
         Acu24llFE4CdyU75fV5PjrcRtau7oZv+3akmmzYDqGFrSDHUblQGUucPCV/TZevFtebO
         AoRhiVZRoGpPu32omH8bWQ3XWXGphDLhJBaJarV+flAwAKJ6IM8JoC9r9B+uvTQszhUW
         VeQ7UxE9bVSCIEdZP4lQqVyQpuMoMZtZ6fgZK8JMVLOH+pHcwJKGvskjf12HU62X9xm0
         ySdg==
X-Gm-Message-State: AOJu0YyYw284xxALxU9qewSh84ZarLWBhAxDSQ347szAu8WwHBjji3Ua
	pCLYmseHzLss54sLKcuZ/2lDJ2+FXimkc1uO7C7QzkhFOgRvafYdOXdC0SU5bPd70g==
X-Gm-Gg: Acq92OEe45Fx4RUxQx7mWJxqCGsoSESPtOtJJtea2e8p8NSZ1S+OsUu5T5oKmLfz1t0
	CLpD3KeNtD/vZX6g4mfpUBR6CPZpyIGyqS5J1BimKT0bR9bVRW4LGWcefYkPufa22/QbNO3aun1
	cz226YFei5LcHqgzFUm6KL1PYggc5jRx2yhD/A1ZEMB6DfJClsf5NLWClsednHgAfwvhLzS+4wL
	hqOb2yg16I83z4e18d8MAoZHz3lLKd0qeZ2oo6Uq3VO214fTy8cQZkz0eQJB9TUte/K6MtTt0dQ
	EXB6E/sjfRp2a/j2Ol3HPiY4RaxTUxaWYDEX//5JYTCoYnB1kumPAEZ0Z2AZ6BDT3NIRSFJAXpy
	Xazq/uE2ZqIh0lD561yDwVcN5Ro13Z4nwyGn1Csf0x+HUsfbRtg1WJ1xYQFH7kfQAsY6udcx3H0
	CXrDx67u4NNzZoPCGfpJZ1wGS6gxLni6s4R2Ub1G/Y++UwXLD/jt7o4FK0XCGgQ4WQibSYDOJ0C
	5L8v3SdsTza/8QS76XJ9woFBQ==
X-Received: by 2002:a05:600c:5397:b0:48a:7aad:4425 with SMTP id 5b1f17b1804b1-48fc9a089c8mr48636835e9.3.1778684911133;
        Wed, 13 May 2026 08:08:31 -0700 (PDT)
Message-ID: <b5601654-b1c9-4e79-aaaa-ae9a811211da@suse.com>
Date: Wed, 13 May 2026 17:08:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 1/5] x86/time: use RTC century byte when
 available
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <2723456f-5d8c-4a2a-9876-e65d35579936@suse.com>
 <agQ7B0JQqisZ55jp@macbook.local>
 <35e23e0f-5439-4516-906c-4310cd05a4a9@suse.com>
 <agSP8jYIylnPfl_H@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agSP8jYIylnPfl_H@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778684911-A9772161-CEC50CFB/0/0
X-purgate-type: clean
X-purgate-size: 1692

On 13.05.2026 16:51, Roger Pau Monné wrote:
> On Wed, May 13, 2026 at 12:36:26PM +0200, Jan Beulich wrote:
>> On 13.05.2026 10:49, Roger Pau Monné wrote:
>>> On Tue, May 12, 2026 at 04:58:43PM +0200, Jan Beulich wrote:
>>>> @@ -1280,6 +1281,8 @@ static bool __get_cmos_time(struct rtc_t
>>>>      rtc->day  = CMOS_READ(RTC_DAY_OF_MONTH);
>>>>      rtc->mon  = CMOS_READ(RTC_MONTH);
>>>>      rtc->year = CMOS_READ(RTC_YEAR);
>>>> +    if ( acpi_gbl_FADT.century && acpi_gbl_FADT.century < 0x80 )
>>>> +        century = CMOS_READ(acpi_gbl_FADT.century);
>>>>      
>>>>      if ( RTC_ALWAYS_BCD || !(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) )
>>>>      {
>>>> @@ -1293,7 +1296,12 @@ static bool __get_cmos_time(struct rtc_t
>>>>  
>>>>      spin_unlock_irqrestore(&rtc_lock, flags);
>>>>  
>>>> -    if ( (rtc->year += 1900) < 1970 )
>>>> +    if ( century )
>>>> +    {
>>>> +        BCD_TO_BIN(century);
>>>
>>> Don't you need to move the BCD_TO_BIN() translation with the rest, so
>>> it's not done unconditionally?
>>
>> No, the century field is always BCD.
> 
> Hm, then I guess Linux needs adjusting, as mc146818_set_time() only
> converts the century to the BCD format conditionally on the control
> register or RTC_ALWAYS_BCD.

Hmm, indeed.

Btw, while looking there I also noticed this

#ifdef CONFIG_ACPI
	if (p.century > 19)
		time->tm_year += (p.century - 19) * 100;
#endif

(relevant to a remark you gave on a later patch in this series).

> I've found several sources only that as you mention also claim the
> century value is unconditionally in BCD format.
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 13 15:15:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 15:15:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308208.1579739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNBIa-00017c-JE; Wed, 13 May 2026 15:15:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308208.1579739; Wed, 13 May 2026 15:15:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNBIa-00017V-Fd; Wed, 13 May 2026 15:15:00 +0000
Received: by outflank-mailman (input) for mailman id 1308208;
 Wed, 13 May 2026 15:14:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNBIZ-00017P-1I
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 15:14:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNBIY-007uTI-9X
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 17:14:58 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a04955a-bab6-0a2a0a5309dd-0a2a45068a94-36
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:14:58 +0200
Received: from [40.93.194.0]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a049570-7371-0a2a45060019-285dc200dba1-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:14:58 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB8081.namprd03.prod.outlook.com (2603:10b6:806:45c::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Wed, 13 May
 2026 15:14:54 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 15:14:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZPF/NNeKZQ7NcuLroFraTqdt+nziH1u7brCJ94qGTtf2GeaOraeb6OOOr7AAqQjF7hVkjYikgTAJpqbUFiVYSmo3SI8cmXkyW8vEN8weB+1LiBapAgGAGYsmnjMMhmh/USUSnzlaYtBvPWTInlZkSDaC+rv7/jWrEsmnSoJ0NkByREwdaUESw85A7no1zmABB/6c8OBuLWLET3zY3FkG3KIOXli3ZR9jR6UN3kJUDptqSJRsWNq5x1EJNlVLLVv8G9SHcp5hFIzxeLM3ac1mgTviu30qRjUl5XN+FJczCEgxokDzT5ydCunt+aAjEklJRyjyLWLxEHBkWWTokqtp1Q==
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=JS6+p+Wyd2ELQaZoR3bXxMQfYe/VVjWierr1tPs2DB0=;
 b=ZyhC9iIHp3FnTa+3k65pfw2o/ZvFKueE1H+OZLNHFPPFgxNRFgHhjqk9+tPIaC0Q1csL597m2AxsUeULbXQWEgjrlRJ6NuVsKMyfcTZ8Tl7yVFYizSgyUB2x31nSFTU69L9FLM6pthwwl1wrxIqdSDy03xoJCWUCrV+ruQazvL0WguSM8O7OTo3E/8jNcE3NdUsgkpjbs9zmk/ATe4HPOBWE13qdp67nJJbMBrCcVLpX2+9VMBNW/7BGajv6LiQzH6Sr2EigrVLmjpDUAf0Mmej3FU6WoM2kX6bf9novDfR3LMDASjgEYMEqfsjq25Y6j1lwCGkt1cZUGNRnm+Kkiw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JS6+p+Wyd2ELQaZoR3bXxMQfYe/VVjWierr1tPs2DB0=;
 b=Wv1BuoR/FMUOgENKuu1lzrLg127ZxGOokr36JUeyuWP2RKeOD7ZJD5mQym4i9SBZhD0BtlRYYlzVaT8eBMbJmsEBlgbpS01u0NGf2sf5fAfZm13abziNK45y5Vms9h6VH/qiCJur+NchaFKNtBGhoNLK21GRgv2OBwUO17wkjhE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 13 May 2026 17:14:51 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.22 3/5] x86/vRTC: support century field
Message-ID: <agSVa3uPHSZrszjz@macbook.local>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <383355d1-7032-4445-8a06-cb4411ea797e@suse.com>
 <agSJlh8KQ9orL6wC@macbook.local>
 <17a25f0e-91e3-4e09-92ad-21e7dc0ebe62@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <17a25f0e-91e3-4e09-92ad-21e7dc0ebe62@suse.com>
X-ClientProxiedBy: MR1P264CA0209.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:56::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB8081:EE_
X-MS-Office365-Filtering-Correlation-Id: a1b272c1-1252-4b60-eb70-08deb10262fc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|56012099003|22082099003|11063799003|18002099003;
X-Microsoft-Antispam-Message-Info:
	mLFCpFFRDHQqZHSw7xsviZxd318OPS5sXUvZlieqav+Xp5uv12ILqiNOI3Jc1UKDHlz3oz8x7q6Fu0Ro34SMUosVL2odqZrogEWzEGh0LlRjWmeXdGwoO6kO2LgmURAvs68sJJHxPBkWE/JR8lTI9pDPEntpIXRO3JD5EDJIuGIo3xVrP/uZZP3o8sLeCUMH8Pdplv4Zv+et3HpY3Va3W+5fBwO8lj0XryDfgar7OLe8HyfSOLJdgfu9xJS3QCXu2AVxwOV2FupPoYChZK2OhU0Tz94/7LANU8FSISr0ZJOmWr28dDf7In9qwfj55+9MSBGYtKwVe5TL/xGWM6U7j0AXGwoR9qr2weRv6Inr8+aXILtWGOKoJsBTpSJ1e+a7cw2PlyAKqaxzkSl7+4Zy22NoXIRo92JJOD92BD9Jwb97IZnYB625YHkhLpeUMZb0aBTHJm1NGZ/DOUDl9wZqMSjR82f2jdbJAcs0pXyKlS4rMWZ3Ex13iTTp7JHZ0+COeLdB5UnEbFT52PGRRWxL7Tims0AWxIk3gz7c2/8/dqe7mHonFQp84goLoT/JBn/Sxa45JfLcL1cAutOCFQiOBnlsBzzq8lgbSlHoH8SndyRgjszzwYWAWM8YAj5Zk1Ak+ieTZMsniXXpNUnVLAd4yFdeqgS/TmCp25KKB6PISLbezTUW/rhfr3owh+jrKNhY
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(56012099003)(22082099003)(11063799003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S3pvQUt0R09MNm9lSlNKQkk5bTlUaGxnT2tVWVZIQ2s1ZkpOWm9HUkdoYVRN?=
 =?utf-8?B?NHJBVVpYYUR6bFcwUVl5K25rUVRLMFY2ZG5nb0lYMDJoRGd1QVM1NDdwdDVa?=
 =?utf-8?B?Q0srSXNwbytpekJOMWpQeDRVSXdPL3ZRNEhhLzhkLy81UG4zaW1hTS9rVUNz?=
 =?utf-8?B?VmI5Vm9PQnpiVUN3WkNkSnhISkhaZHJFVVVuc2NuamNwdlJwNm1MdG9YeEJC?=
 =?utf-8?B?MGUxb0UrZWdPOUN4S2dkU0ZzTmdpSy8yZFRUTUhZbFF1ZFR0ZWYxNzZ3cWQy?=
 =?utf-8?B?bmJsSFIzbEluZ2VHSkc0cFUxeDhkVWR6MTNpQTdPMWxKY21kWFI0N2VSMzRq?=
 =?utf-8?B?cGRwZTFtWkVCemVmZThHSjNaR0xFWndOcXJFZXd0eGYzNzRCQityNEVsNGdz?=
 =?utf-8?B?YWV5cWwrczhRdEpNVHR1K2sybjEzVlBzR25rNXZ2WFVac2gyeXZicGFkRlgz?=
 =?utf-8?B?Tnk4NWttaHpNUEF0RmtWT09uM05vanpYSHJmbi85V0JiRnNoeGNBZ0FZVjVF?=
 =?utf-8?B?YU1sVHg1TUJVSWFnSkJGakYwRk9zc3BQZXJyMXd2K0dOY3NXOEtOclVoTG5C?=
 =?utf-8?B?V2w5Mks2WG8vS1YrM2FjRzhFQ3lxekxFQ1g4VG9pWEhWU2x4TFY4MmxoTEJo?=
 =?utf-8?B?SC9NRVV4eGdEVEhnOHpCd1JoeFhMS3RXeTNRRDdoc1IrNGxiSC9PV3AydEQx?=
 =?utf-8?B?MHRMK3RPN0hmTzhtazRJdmZQZEFsaS9mRnJaMzZtVHVMUlZnbWFSbVNia2RW?=
 =?utf-8?B?Q2JyYVJ2UDR3T2xoTXl4N0Y3aFlqK0cxZ0FYeTBvdWhtRzJOMjJxcWZVTitt?=
 =?utf-8?B?cXJTVlpQU3FNQ09iWGZrcnJ2T3RMblhqcStnU0g0Tk5TKzNUMG9HdTJzajll?=
 =?utf-8?B?ZDkzbm0yYnJnNk1kZnUxV1BMKzhpYW1SNnFvV0xvYmRiY0JSSUQrcm1sb3FU?=
 =?utf-8?B?UFQ0STlKU1pWTGRCOW9KRGFzTkZJcndaR0x2QzZHUmphaDc2NzRHQTRCRU8z?=
 =?utf-8?B?WG9JK3RnR1d1dHlpenh0MVgvSnBUOThCZndLZEIzS2tKaHhOci82OXhVYVRO?=
 =?utf-8?B?UnZUcWxaWnovZm5tSWsveEJnYkU5eGViZGJKZUNmbHRSQ3g1a3RpSFhlbWRx?=
 =?utf-8?B?anRDUkFqcWk1RjBTQ3BXSXZnY054eDZ2bDdvK2NQZG5RZFE4ZTF0YXIzeFMx?=
 =?utf-8?B?TUg3ME5mNzF4UlZZOGlLT2pyNldkMFQzc2pnQmNvb0Z6SWduYWlGMWMzRWVF?=
 =?utf-8?B?bGdQSmtjOUtib3h6QmhZcWdRL2hVV2F2ZzVCdUZ6N3BHY01hTklwU1lWQ281?=
 =?utf-8?B?K1pFTlJXdXVPWU80WGRtYlhWSlZzV2RNdk5haXpPTno1MS9HYTZuTDBnYTd0?=
 =?utf-8?B?VFpuTTZONTRJenEyUTUrYmNTak0wTGUwWkJSKzRDOCtSTkNrMnorbm1sdW9m?=
 =?utf-8?B?SHhZUUdXUVdKNFZUc3pJN2h3UTlDcHRSR3U0K1NOVEh4REJ2RUduSTJmZzVq?=
 =?utf-8?B?TGNIUCtBL3F3OVVSc0VsdjhVaEdkcGpuVkVueTdTTFNyQWZYQ0l4MTVKZDVD?=
 =?utf-8?B?RHkrSWJIMDc0ZjRHU2dXRlhGaDYvL2pzdk1vN3VWeGZJU2pscnNCUzVkcEhk?=
 =?utf-8?B?MVlUd0JLOGtFVlBDZ3Y5OTJLVHhiR3MvWTJKd1E0WHlPVUxNRWNKVm80QlB4?=
 =?utf-8?B?cHNpc0Q2YktTUkZtUkNEcWswRERUU3ZUcnhDNjd1Mm1YS1ZQQkNYS2xlVVdN?=
 =?utf-8?B?OGZkOVNJUVl2WHh3dDRPWGpyVWd1d0FjaE1LTTVPek1VM1phUHVQT3d1K3FS?=
 =?utf-8?B?VVdJNmh3bFYxZmdPZ1VxL2h3a0FqdjIxTXhuUFZHWFVOOVRzMzZyWFh1NkJO?=
 =?utf-8?B?QjdFMTV3K2xXSjJaNWN5SnJmdk1ROHhHc3NaN3BpQ3hXa1dKeDY0ekgyNElq?=
 =?utf-8?B?c2ZvMXk3aWNCdGVXeHkrZStzQnlPS2hqVWx5VXIzTVUvMUVVZzBVY2kwQ21x?=
 =?utf-8?B?bGVHUThKd2JteFJtTnBMb2owTHBTWm5OeFZvbHRkcndmZ1NxaGFyM2dOdG9r?=
 =?utf-8?B?QkhtdEJOYnoybXdyb3g0NTh5Rnp2dndVNE5TZndQcXg1Q3FSOHpETHNET2Fw?=
 =?utf-8?B?UmR5eG5ITjZnclRTYjlqdUZScWxhNHZHTCtoaVE2TE5wSHltV243di9zT3Ro?=
 =?utf-8?B?K1NocWR1aVlZWk1yeDNrR3NqR3ZNdVBXc1NLZ0MxUmYzMG16K25iRTZ0UjF3?=
 =?utf-8?B?Vm9KWkFmUG16VEh3aE1RRHhBbEo1Z2J0UHYya1BFYVFkbXhkdHVDeWl3bFZn?=
 =?utf-8?B?QTk1UjNUQ3VGUzIzQmgveVVrTkJkSTZpaFJaaldWQUgvampwMytGUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a1b272c1-1252-4b60-eb70-08deb10262fc
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 15:14:54.4020
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: i+7YSh+gt8h2WDgHOopqcKG8ChJyfdCiOjMb9jNo9RGv97xAzNawHqN5EOsptevQFrWRvvxgLNl2MQzPegm8IQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB8081
X-purgate-ID: tlsNG-16d1c6/1778685298-8556ED75-6DF878C1/0/0
X-purgate-type: clean
X-purgate-size: 6341

On Wed, May 13, 2026 at 04:58:57PM +0200, Jan Beulich wrote:
> On 13.05.2026 16:24, Roger Pau Monné wrote:
> > On Tue, May 12, 2026 at 04:59:35PM +0200, Jan Beulich wrote:
> >> Both ROMBIOS and SeaBIOS (with CONFIG_QEMU=y, as we build it) blindly
> >> assume availability of this field (at its conventional index 0x32); OVMF
> >> at least has code to inspect FADT. Hence we ought to have supported it
> >> virtually forever.
> >>
> >> As the index is beyond RTC_CMOS_SIZE, leverage the padding field in
> >> struct hvm_hw_rtc to hold its value. Update the field only when involved
> >> values are valid BCD century specifiers. Otherwise (for VMs migrated in
> >> from an older hypervisor) leave handling to the DM.
> >>
> >> This makes the Linux rtc-cmos driver report y3k compatibility.
> >>
> >> While extending xen-hvmctx.c:dump_rtc() also add RTC offset there.
> >>
> >> Fixes: 4ca161214355 ("[HVM] Move RTC emulation into the hypervisor")
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> Am I overly paranoid with the checking of the field, considering that
> >> Xen 3.x post-dates year 2000 and hence all firmware nowadays usable guests
> >> have ever run with should have been aware of the field? Or am I, quite the
> >> opposite, still not strict enough?
> >>
> >> I can't help the impression that this introduces a latency issue for
> >> the 2nd of gmtime()'s while() loops: We now allow years up into the 99th
> >> century, i.e. over 8000 years away from 1970. 8000 years are very roughly
> >> 2^^38 seconds, making for (again very roughly) 5 million iterations there.
> >> Did I get my math wrong, or do we need a prereq change to (vastly) reduce
> >> the number of iterations of that loop (e.g. along the lines of the other
> >> one, first going in 400 year steps)?
> > 
> > Hm, maybe we need to add some XTF testing for the RTC?  I'm slightly
> > worried how much time this could take, and since those calls are
> > serialized on the s->lock I wonder whether enough parallel accesses
> > from the guest could manage to trigger the watchdog?
> 
> I'm not really up to making an XTF test, I guess. However, as you look to
> share my concern, I'll add a prereq patch adjusting gmtime().
> 
> >> --- a/tools/libacpi/static_tables.c
> >> +++ b/tools/libacpi/static_tables.c
> >> @@ -33,6 +33,8 @@ struct acpi_20_facs Facs = {
> >>  #define ACPI_PM_TMR_BLK_BIT_WIDTH           0x20
> >>  #define ACPI_PM_TMR_BLK_BIT_OFFSET          0x00
> >>  
> >> +#define CMOS_CENTURY 0x32 /* Conventional index used also without ACPI */
> > 
> > IMO this define (together with the RTC_CENTURY one below) need to be
> > in a public header so it can be consumed by both the hypervisor and
> > the toolstack.  Having two separate defines, one for the hypervisor,
> > and another for the toolstack will just create confusion.
> 
> I first thought I'd do it like this, but (a) this isn't a value Xen
> defines (hence the comments in both places) and (b) I'm not entirely
> happy with such a(n) (ab)use of the public headers (yes, we have other
> such examples there, which I also don't really like).

Yeah, it's not great, but it's better than having the same value
defined in two different files, and having to keep them in-sync for
the CMOS century field to work correctly?

> >> --- a/xen/arch/x86/hvm/rtc.c
> >> +++ b/xen/arch/x86/hvm/rtc.c
> >> @@ -47,6 +47,12 @@
> >>  #define epoch_year     1900
> >>  #define get_year(x)    ((x) + epoch_year)
> >>  
> >> +static inline bool is_century(unsigned int x)
> >> +{
> >> +    /* Constant below should match epoch_year above, just as BCD value. */
> >> +    return x >= 0x19 && (x & 0xf) < 10 && (x >> 4) < 10;
> >> +}
> >> +
> >>  enum rtc_mode {
> >>     rtc_mode_no_ack,
> >>     rtc_mode_strict
> >> @@ -482,16 +488,32 @@ static int rtc_ioport_write(void *opaque
> >>          data &= 0x7f;
> >>          s->hw.cmos_index = data;
> >>          spin_unlock(&s->lock);
> >> +        /* RTC_CENTURY always forwarded to DM. */
> >>          return (data < RTC_CMOS_SIZE);
> >>      }
> >>  
> >> -    if ( s->hw.cmos_index >= RTC_CMOS_SIZE )
> >> +    switch ( s->hw.cmos_index )
> >>      {
> >> +    case 0 ... RTC_CMOS_SIZE - 1:
> >> +        orig = s->hw.cmos_data[s->hw.cmos_index];
> >> +        break;
> >> +
> >> +    case RTC_CENTURY:
> >> +        orig = s->hw.century;
> >> +        if ( !is_century(orig) || !is_century(data) )
> > 
> > Is a real RTC strict in such a way, ie: will it refuse to set the
> > century value to < 19 (0x19)?  For example QEMU seems to be way more
> > relaxed, and allow any century value.
> 
> I can switch to rejecting merely 0. Unlike centuries in the future, it
> didn't look very useful to me to permit anything below 19. Please clarify
> which way you prefer it.

QEMU seems to tolerate everything, so I lean towards tolerating
everything that's not 0.  That's solely based on what QEMU does, which
I think it's likely to be (quite) widely tested.

> >> @@ -515,7 +538,10 @@ static int rtc_ioport_write(void *opaque
> >>              /* Fetch the current time and update just this field. */
> >>              s->current_tm = gmtime(get_localtime(d));
> >>              rtc_copy_date(s);
> >> -            s->hw.cmos_data[s->hw.cmos_index] = data;
> >> +            if ( s->hw.cmos_index != RTC_CENTURY )
> >> +                s->hw.cmos_data[s->hw.cmos_index] = data;
> >> +            else
> >> +                s->hw.century = data;
> >>              rtc_set_time(s);
> >>          }
> >>          alarm_timer_update(s);
> > 
> > Don't you need to adjust the tail return of rtc_ioport_write() (below
> > the context here) to return 0 when s->hw.cmos_index == RTC_CENTURY, so
> > the set value is also propagated to the DM, and not only the index?
> 
> I don't think so. The case of us not handling RTC_CENTURY is dealt with
> earlier in the function. Whereas when we handle the field, we don't want
> to forward (like for all the other RTC fields).

Right, so then you also want to adjust the top part of
rtc_ioport_write() to not propagate the write to the 0x70 IO port when
data is RTC_CENTURY?  Otherwise you propagate the write to port 0x70,
but not the read/write to port 0x71?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 13 15:15:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 15:15:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308214.1579746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNBJI-0001Y9-Q7; Wed, 13 May 2026 15:15:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308214.1579746; Wed, 13 May 2026 15:15:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNBJI-0001Y2-NH; Wed, 13 May 2026 15:15:44 +0000
Received: by outflank-mailman (input) for mailman id 1308214;
 Wed, 13 May 2026 15:15:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNBJH-0001Xq-Ia
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 15:15:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNBJG-00EeIS-VS
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 17:15:42 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a049592-bab6-0a2a0a5309dd-0a2a45078612-30
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:15:42 +0200
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a04959e-229c-0a2a45070019-d155dd32e8db-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:15:42 +0200
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-44e5624c053so3902526f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 08:15:42 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4548e4bb87bsm39854284f8f.2.2026.05.13.08.15.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 08:15:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778685342; x=1779290142; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=quk3qkY5nIGCC2Hk7He372Fv5npd2nrI9YbcrJ8IJmo=;
        b=SwbbAE0p7HScI5YdHipFL0D0TIdYKItnkASvRrbPwFIRdPlj3bGWjm3nbhpBdyrFPC
         3/3CvClV08+8BM2YuTxsRKUcC3TvTErRdefO1IOIFPHFY1GuYsjRUecBBhw9rbLT6OmQ
         2+l/W1nXbbkfQviOBoNmaIcd73sOGXUnIa98qBVg4znP3PeGKCXHi0YDx3B8K711KNmP
         yGvc5wCycSChPM1zsjMkez3P+sX3ZHIXbxNr+loN2YLwCOQoDR7ZZqyZYgMe/JRPjN3o
         zaAb8hpQ16q3Y89SSgaTeNIFl+GfkrSn8Nz1wGbwQh5m6xGA/QVZ8j+Wyq3//jJlvM2g
         pn9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778685342; x=1779290142;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=quk3qkY5nIGCC2Hk7He372Fv5npd2nrI9YbcrJ8IJmo=;
        b=OyyY4lQ/nARpMWxViirFR15dMpjGv7CeN0crzTQTmjVAYpvBWyNubD/ioWpXM1Uih6
         HWXODNd0lQEReiCZ2XpbJzbPsV0BYoRnt3HPrvV9BGF2zi+ciSvcRalXbA6Yd+b/raDK
         EAmt42hA7n2u348JK8K8IShQnxv5PAzd5sYtrFNVwmR1N/tQ6CI9NW5Hc8bFXjYI54bi
         zuReTB5lQ3pfMghtSp74ZvyMSkCsufJ6B/DgrecWnJjwt6ZndRAfAn71gAXVTE/D5Q3c
         YQ1GkuD7iAtGl44TurSHfJg2Os8a8KBi1qTc4pvI06PnMv8dtuZHB8TczPgHmXRQNno/
         PqeA==
X-Gm-Message-State: AOJu0YzIOVsji02cIbh2kqxZq7QC0Rpg9gdRQrZ0TatzElC4JfNy/t6u
	sA0eUs5DC5kIUMm++HAIR7g34ggGSTlbFACr/Sh1GJddjls57UG7q/nH9YCfFl7BdQ==
X-Gm-Gg: Acq92OHcA6So78L86+f+TownO9ITFi4nYh4PB3uEJksUzMZ3vKzUvfNLsKIPykHLMCr
	kn1vQt9+9tmA1sNp9Vd508+it/B1kTLhn5foxc4UKs1Pzc4Fb+KQWsQBN2FowY7q74TxORdXPKA
	0W0968eSCEsKqsAcremd+YJKcuDEDphXM+g6+jQD1PlZvwj7TbJBjGYJhvfn6rOkE/zgdManJeq
	pJaHqeCUgFF5ugz6lwDjBKx07imDKA8UHYjV1s7YegOACjHQ27yrevezEtQC/LuCgYz0WLWJCoX
	PqpKnb0uC/vkqZaFWx9C+EP98gmEx5K7dSZILP9Q5n5sXfruG6mQ0Gscx7hCcwcCkH7S9/13tDk
	OQl2VtKRydmJy4P13Rp/oLWkOyzu5Wzqw+YQ8yS9qpvQ0eLJKlo4MWGhbKuMoRcHL4hzZ79uyO2
	/bTyjMxTDCGsNLBkl8J0BB7Rc5fjrVmu5H2P0nabm8/Om37xqH4rHK82jlml9PxQN9rAPjW1MSZ
	oKYg5CQBqE7gAI=
X-Received: by 2002:a05:6000:220b:b0:43c:f583:126a with SMTP id ffacd0b85a97d-45c7843076emr5622388f8f.14.1778685342216;
        Wed, 13 May 2026 08:15:42 -0700 (PDT)
Message-ID: <d70965fe-5039-4a9a-a470-a9d2a0bc6ebe@suse.com>
Date: Wed, 13 May 2026 17:15:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] x86/time: move BCD_TO_BIN() uses
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <2c5af8f9-05f6-43c4-afb4-a50cbacd2d49@suse.com>
 <agQ8tRY3Kya6RasY@macbook.local>
 <d37322ac-fdf9-48bb-91e3-3e8d560fa758@suse.com>
 <agSRm3T0Y3EfuqFb@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agSRm3T0Y3EfuqFb@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1778685342-0AD77C48-D5D8C923/0/0
X-purgate-type: clean
X-purgate-size: 1745

On 13.05.2026 16:58, Roger Pau Monné wrote:
> On Wed, May 13, 2026 at 12:39:46PM +0200, Jan Beulich wrote:
>> On 13.05.2026 10:56, Roger Pau Monné wrote:
>>> On Tue, May 12, 2026 at 04:59:03PM +0200, Jan Beulich wrote:
>>>> ---
>>>> How come RTC_ALWAYS_BCD is compile-time constant 1? And then even with an
>>>> inverted comment? Looks like we've inherited this from Linux, and even in
>>>> Linus'es current tree it's still this same way. Yet all half-way recent
>>>> chipsets I'm aware of properly implement the DM bit in reg B. Might this
>>>> be another 32-bit leftover?
>>>
>>> *shrugs* I don't know.  Seems like Linux is still doing it, so it's
>>> likely safer for us to continue doing it also?  We had no reports of
>>> it being problematic, albeit one could argue it would be best to
>>> prevent such reports by doing the right thing.
>>
>> That's my point. If we did this as specified, we'd unbreak systems with the
>> DM bit set correctly, but we'd break (hypothetical) systems with it bogusly
>> set. Like with a few other fixes, perhaps we should correct it, but provide
>> a command line option to restore old behavior?
> 
> Possibly, but I would do after 4.22 has branched, just in case.

Of course.

> One thing I've noticed, is that Xen don't attempts to set
> RTC_DM_BINARY in REG_B, shouldn't it try to set the bit when probing
> for the CMOS?  Since it assumes BCD mode it should at least try to set
> it?

For one - don't you mean "clear it"? But then - no, that bit is purely
informational aiui. Changing it won't alter what the date/time registers
hold (only how they're updated). Hence by fiddling with it we'd corrupt
information (breaking OSes which properly respect the bit).

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 13 15:24:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 15:24:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308227.1579760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNBRY-0003h6-KZ; Wed, 13 May 2026 15:24:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308227.1579760; Wed, 13 May 2026 15:24:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNBRY-0003gz-Hg; Wed, 13 May 2026 15:24:16 +0000
Received: by outflank-mailman (input) for mailman id 1308227;
 Wed, 13 May 2026 15:24:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNBRX-0003gt-Dt
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 15:24:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNBRW-00128n-Qo
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 17:24:14 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a04977c-5cb7-0a2a0a5109dd-0a2a45019d26-48
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:24:14 +0200
Received: from [209.85.221.52] (helo=mail-wr1-f52.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a04979e-c1f2-0a2a45010019-d155dd34f095-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:24:14 +0200
Received: by mail-wr1-f52.google.com with SMTP id
 ffacd0b85a97d-43d73422431so5227633f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 08:24:14 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4548e6a68ebsm40025840f8f.1.2026.05.13.08.24.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 08:24:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778685854; x=1779290654; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KW5t2bpTW8HpaeVug28uTHeYudospfOIsPRQK1HG9Ss=;
        b=fjOFmCosPeifdzBXnssakr3xoP+M3yr9WspfsYM0DI5Axi4fqVwE9/wqjwLzBsV0Nv
         BHFKE4A9Jvfzn0lG97xY4DbpaC2FGFxe6WQEK06W1HiNrZfYbyh9foWxHT0YLUQrc+X5
         HX1ksobuu2Ijdee3ujO8MKWRhhQdMfml7523utSm7XaCMfAcLhkiPKdNv6S9Jk65y41W
         f+l1tKHjbxTTzwDnTFOC7TKjyMcuob3AFMTPD0ySt/D4H1XIufCKF74rsrGOOJAO+AxL
         7yEagwUMucuR4Flb3/9nDHp9cs4r4ImISYi066PJgYPzE4AJvQvPagBx5Vlwfn5cLwsS
         V2/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778685854; x=1779290654;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KW5t2bpTW8HpaeVug28uTHeYudospfOIsPRQK1HG9Ss=;
        b=pPRdl+eKOsIc+1wOz0KVZYuIkCmShHzLHM+6+yAO2Z6cGHKTKRwl2/EviDcXakoZCF
         Tfhgc34+NdcsAvwZDq8vnZYzyHGVMHNwyHa5YuMeDNIN/Tg7T+aNzd7i89fG90lPAFRm
         r6eNygo24cular3rUoziVSK/BWosu2ANk3twaXsirRubDwy51uv3m8iO9CD5rNjZyO7E
         kcqH5Eu1flRH1WQj0svfhr5FnMJoFHpx7kn3R6BE8QOcHRR2X3x8hyyemVoLTMh05TEf
         7u0XQHKPVcAPyGF0EUeo4QH1Y34YzZ1A8GNP3cBbBajyHDiPJO1ZRDB6vQceVVYw6lDc
         FEjQ==
X-Gm-Message-State: AOJu0Yz/HWB/HXe865/xg0QuJCh99ve8ILAT9FPDcuAUy1q3nrnd+YYZ
	W33hu2jTqKcf4oQ6v6t+Q2qDYJEeV56RkmsQbiyQHyJA+NKvL/7jttHu9HkzbFe/SQ==
X-Gm-Gg: Acq92OEAbw62KhkQpgGKe8J808e7cU++CzAYCYXBTgbDBaS1kMZlAOmLgJISKrfE1QX
	t9Rm4aYTMI936P9UaI/VOCb6qxHNnW/HCNHX7QB8+XEGtTfDlVpAW7e6kmoYGo4i7SV8LpCcame
	cSwtLD/qFVGRJVleYk9pLpkz1QNf1Ny57AxC7gRwQpUcZPH826QtedHkhJ7HRxyvHi+YOT3vCWb
	GTffKO7kakz25FLGFC6VCERHfJfdF2QKZGTs1aqt1+wEBVeqo339FHR9Qfd5L0KpQSL05KaqOvg
	7QEPjepnRQLeF35+v3q/sDikBEG0+Upzh7HdphIMnZHvkqDwn6UJUc36G6PHG4hKwmoYPuf4DtQ
	PtdLegXAYBZBqSmixT72bfVFEVf6VMaKCWQ9ueve80oa4w0YOFMpHcg8+w0kv+7ao0W0HQbP75y
	Uyo0xTwo3Kys0GBAWzd6ny803vRGv0btkvt2fFo8NATQagTOWSJ+sQGhOou8lLpz2BWoNXElOHS
	uyg/Dz0Be6qdXA=
X-Received: by 2002:a05:6000:1a8a:b0:455:59b5:d6ba with SMTP id ffacd0b85a97d-45c79f28b08mr5945274f8f.28.1778685854086;
        Wed, 13 May 2026 08:24:14 -0700 (PDT)
Message-ID: <439d03f4-4ebb-4bbf-a1ea-324156bff9f0@suse.com>
Date: Wed, 13 May 2026 17:24:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 3/5] x86/vRTC: support century field
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <383355d1-7032-4445-8a06-cb4411ea797e@suse.com>
 <agSJlh8KQ9orL6wC@macbook.local>
 <17a25f0e-91e3-4e09-92ad-21e7dc0ebe62@suse.com>
 <agSVa3uPHSZrszjz@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agSVa3uPHSZrszjz@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778685854-AFB56FF4-0D32E4E9/0/0
X-purgate-type: clean
X-purgate-size: 4939

On 13.05.2026 17:14, Roger Pau Monné wrote:
> On Wed, May 13, 2026 at 04:58:57PM +0200, Jan Beulich wrote:
>> On 13.05.2026 16:24, Roger Pau Monné wrote:
>>> On Tue, May 12, 2026 at 04:59:35PM +0200, Jan Beulich wrote:
>>>> --- a/tools/libacpi/static_tables.c
>>>> +++ b/tools/libacpi/static_tables.c
>>>> @@ -33,6 +33,8 @@ struct acpi_20_facs Facs = {
>>>>  #define ACPI_PM_TMR_BLK_BIT_WIDTH           0x20
>>>>  #define ACPI_PM_TMR_BLK_BIT_OFFSET          0x00
>>>>  
>>>> +#define CMOS_CENTURY 0x32 /* Conventional index used also without ACPI */
>>>
>>> IMO this define (together with the RTC_CENTURY one below) need to be
>>> in a public header so it can be consumed by both the hypervisor and
>>> the toolstack.  Having two separate defines, one for the hypervisor,
>>> and another for the toolstack will just create confusion.
>>
>> I first thought I'd do it like this, but (a) this isn't a value Xen
>> defines (hence the comments in both places) and (b) I'm not entirely
>> happy with such a(n) (ab)use of the public headers (yes, we have other
>> such examples there, which I also don't really like).
> 
> Yeah, it's not great, but it's better than having the same value
> defined in two different files, and having to keep them in-sync for
> the CMOS century field to work correctly?

As the values come from the outside, they necessarily need to stay the
way they are (and hence implicitly in sync). If we meant to announce
another value to guests in the FADT we produce (breaking non-ACPI
guests), we then couldn't use RTC_CENTURY in hvm/rtc.c anyway. Instead
we'd have to track and migrate the index to use.

>>>> --- a/xen/arch/x86/hvm/rtc.c
>>>> +++ b/xen/arch/x86/hvm/rtc.c
>>>> @@ -47,6 +47,12 @@
>>>>  #define epoch_year     1900
>>>>  #define get_year(x)    ((x) + epoch_year)
>>>>  
>>>> +static inline bool is_century(unsigned int x)
>>>> +{
>>>> +    /* Constant below should match epoch_year above, just as BCD value. */
>>>> +    return x >= 0x19 && (x & 0xf) < 10 && (x >> 4) < 10;
>>>> +}
>>>> +
>>>>  enum rtc_mode {
>>>>     rtc_mode_no_ack,
>>>>     rtc_mode_strict
>>>> @@ -482,16 +488,32 @@ static int rtc_ioport_write(void *opaque
>>>>          data &= 0x7f;
>>>>          s->hw.cmos_index = data;
>>>>          spin_unlock(&s->lock);
>>>> +        /* RTC_CENTURY always forwarded to DM. */
>>>>          return (data < RTC_CMOS_SIZE);
>>>>      }
>>>>  
>>>> -    if ( s->hw.cmos_index >= RTC_CMOS_SIZE )
>>>> +    switch ( s->hw.cmos_index )
>>>>      {
>>>> +    case 0 ... RTC_CMOS_SIZE - 1:
>>>> +        orig = s->hw.cmos_data[s->hw.cmos_index];
>>>> +        break;
>>>> +
>>>> +    case RTC_CENTURY:
>>>> +        orig = s->hw.century;
>>>> +        if ( !is_century(orig) || !is_century(data) )
>>>
>>> Is a real RTC strict in such a way, ie: will it refuse to set the
>>> century value to < 19 (0x19)?  For example QEMU seems to be way more
>>> relaxed, and allow any century value.
>>
>> I can switch to rejecting merely 0. Unlike centuries in the future, it
>> didn't look very useful to me to permit anything below 19. Please clarify
>> which way you prefer it.
> 
> QEMU seems to tolerate everything, so I lean towards tolerating
> everything that's not 0.  That's solely based on what QEMU does, which
> I think it's likely to be (quite) widely tested.

Will do.

>>>> @@ -515,7 +538,10 @@ static int rtc_ioport_write(void *opaque
>>>>              /* Fetch the current time and update just this field. */
>>>>              s->current_tm = gmtime(get_localtime(d));
>>>>              rtc_copy_date(s);
>>>> -            s->hw.cmos_data[s->hw.cmos_index] = data;
>>>> +            if ( s->hw.cmos_index != RTC_CENTURY )
>>>> +                s->hw.cmos_data[s->hw.cmos_index] = data;
>>>> +            else
>>>> +                s->hw.century = data;
>>>>              rtc_set_time(s);
>>>>          }
>>>>          alarm_timer_update(s);
>>>
>>> Don't you need to adjust the tail return of rtc_ioport_write() (below
>>> the context here) to return 0 when s->hw.cmos_index == RTC_CENTURY, so
>>> the set value is also propagated to the DM, and not only the index?
>>
>> I don't think so. The case of us not handling RTC_CENTURY is dealt with
>> earlier in the function. Whereas when we handle the field, we don't want
>> to forward (like for all the other RTC fields).
> 
> Right, so then you also want to adjust the top part of
> rtc_ioport_write() to not propagate the write to the 0x70 IO port when
> data is RTC_CENTURY?  Otherwise you propagate the write to port 0x70,
> but not the read/write to port 0x71?

I can't, as whether to forward depends on the data subsequently written.
Propagating the index "just in case" is the only workable model that I
can think of. And as guests can do any number of successive port 70
writes, the DM needs to cope with this anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 13 15:43:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 15:43:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308238.1579769 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNBjj-0007EJ-53; Wed, 13 May 2026 15:43:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308238.1579769; Wed, 13 May 2026 15:43:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNBjj-0007EC-0u; Wed, 13 May 2026 15:43:03 +0000
Received: by outflank-mailman (input) for mailman id 1308238;
 Wed, 13 May 2026 15:43:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNBjh-0007E6-Q5
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 15:43:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNBjg-0015Eo-Ld
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 17:43:00 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a049bfa-e002-0a2a0a5209dd-0a2a450bd542-16
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:43:00 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a049c04-212f-0a2a450b0019-d1558036b414-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:43:00 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-488af96f6b2so83309225e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 08:43:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45491f8d4c3sm41760372f8f.34.2026.05.13.08.42.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 08:42:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778686980; x=1779291780; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=V+inOK2x/6FApQmexOxsKZ4km4MjoG7n4SP9MvzDO5o=;
        b=CWzTRpj1yZdRov8bja0XptZn/ufHrGHzRR0GXP79XC4UqYd0NPaTt819YvB27TKEh4
         4Cf+I2vYUNeTL7HlFRaAgrgx0o04mHjJMz3Z9vaLYHsiOfu18fk2nJXKsuU1NFzDcSgw
         LlM63zAwgrMDYuHz5QlD0SUPC0b58//BYQwQH9AaldNdqq6TGrnIx6E+EUEud6rVsHVl
         XeCrzsXkQ8RBEAnieSYfHw2XSikNCdccDN9c1ViC/fzLlEzGiqpH/R7Ud8Fo1g50ir1j
         be8Ak8uV8Gy8GE8lW+xEJ9RLH5ELHOdJM1QdSxcR9/Lx7JOPGR7QbERwJqtA1WDTIxjU
         Iwow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778686980; x=1779291780;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=V+inOK2x/6FApQmexOxsKZ4km4MjoG7n4SP9MvzDO5o=;
        b=SizjRBMcM3L3bYTOkSTfdX36QfLgNJeDW4JsxnizSJP0YEH+UWZzFhG7hl9tKf7KSw
         cf0V1xsxcc8VHi4fWtrqrP9Or6QUL6AsodSEuFF2TfAvEQDx6IHSj4i0E68cBlRo1oqv
         LNQnvj8KCwkSypq2AowkCYSCmhaKt0Uo5yGCnKgBb92a+tPW7XIWF3vYpD3rL5QBL2Rr
         yI28W2khQ0Q0El+VDJ9fi6Bjmb1Uq9j3rUa7Mbk8crCy1jZaku9OBuxzN94dLpMws94q
         Jt9+vF17/GeX2qzpRMd+iRN9BL2BRTR3ChL7Cfi6Rpd2Dom48IXWsjV+mGORK+730qSZ
         MKnQ==
X-Gm-Message-State: AOJu0YxUCpUStlusLh3W7nZ2aSrH9bc3lZOzaH0UNu4abacOU2/PfsRO
	bioZbn5aJZyf9QTegAB2yQo2nJAN0hqfofmRTw68PrXzBjPH0tq0Vax3eZ5eTmLBXdUtefOh0Om
	GFQY=
X-Gm-Gg: Acq92OF1JgJipBiZVo+5Sy0Fo7Oo5+zelrI9/bUwEf2N08E/nL8YP2ErjM8FyGWnWXm
	114Olybr5pJv/PrSRnF/Gk0Ycle5J5yyk3Nz1iEWNvfQMd8z7x5pgtU4wtH5NCtaS34+RVMCg2K
	SQ/LnHwBSSnCKPjEaetmudJkPv1GNrmqqzyJXztQykangrjlOxN/JKZhZwXMnUdAGcej+BqfWxt
	GcdvDxgzn55i34cIXtev340UAClB2wtQxfam1ExhctOJ/aWErCqfwTYejGd5lUZLAe1R1fWhehG
	QTTAUS/ocFCF6uCYNfiKwg6/AT55Vfc6uQdh8pOO+M6mzfwO/jBYYGvGobU2HXU3Y1bjjr4/YUX
	pGLleZ0IR2eiFUtFjFTutyJBZySe5pwjKoBJ97Q/6EKJtI1fWfGjUKnkuQ4oEMujygOUQWV+fbH
	OKNIuaA4c/MqUkGtv1mvZYx31H6XEmQSFAFzR0x94qdeDrhtK+0M9XDPIweYVtCrRlEB0eZ0qP2
	M0o/kQi8X+ae8M=
X-Received: by 2002:a05:600c:4e0d:b0:48a:5c23:cab with SMTP id 5b1f17b1804b1-48fc9a3abb0mr59848425e9.19.1778686980012;
        Wed, 13 May 2026 08:43:00 -0700 (PDT)
Message-ID: <6ef656b3-0428-4867-aea2-901d852d12e7@suse.com>
Date: Wed, 13 May 2026 17:42:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 3/5] x86/vRTC: support century field
From: Jan Beulich <jbeulich@suse.com>
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <383355d1-7032-4445-8a06-cb4411ea797e@suse.com>
 <agSJlh8KQ9orL6wC@macbook.local>
 <17a25f0e-91e3-4e09-92ad-21e7dc0ebe62@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <17a25f0e-91e3-4e09-92ad-21e7dc0ebe62@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1778686980-13B78F3B-7C50F452/0/0
X-purgate-type: clean
X-purgate-size: 2495

On 13.05.2026 16:58, Jan Beulich wrote:
> On 13.05.2026 16:24, Roger Pau Monné wrote:
>> On Tue, May 12, 2026 at 04:59:35PM +0200, Jan Beulich wrote:
>>> Both ROMBIOS and SeaBIOS (with CONFIG_QEMU=y, as we build it) blindly
>>> assume availability of this field (at its conventional index 0x32); OVMF
>>> at least has code to inspect FADT. Hence we ought to have supported it
>>> virtually forever.
>>>
>>> As the index is beyond RTC_CMOS_SIZE, leverage the padding field in
>>> struct hvm_hw_rtc to hold its value. Update the field only when involved
>>> values are valid BCD century specifiers. Otherwise (for VMs migrated in
>>> from an older hypervisor) leave handling to the DM.
>>>
>>> This makes the Linux rtc-cmos driver report y3k compatibility.
>>>
>>> While extending xen-hvmctx.c:dump_rtc() also add RTC offset there.
>>>
>>> Fixes: 4ca161214355 ("[HVM] Move RTC emulation into the hypervisor")
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> Am I overly paranoid with the checking of the field, considering that
>>> Xen 3.x post-dates year 2000 and hence all firmware nowadays usable guests
>>> have ever run with should have been aware of the field? Or am I, quite the
>>> opposite, still not strict enough?
>>>
>>> I can't help the impression that this introduces a latency issue for
>>> the 2nd of gmtime()'s while() loops: We now allow years up into the 99th
>>> century, i.e. over 8000 years away from 1970. 8000 years are very roughly
>>> 2^^38 seconds, making for (again very roughly) 5 million iterations there.
>>> Did I get my math wrong, or do we need a prereq change to (vastly) reduce
>>> the number of iterations of that loop (e.g. along the lines of the other
>>> one, first going in 400 year steps)?
>>
>> Hm, maybe we need to add some XTF testing for the RTC?  I'm slightly
>> worried how much time this could take, and since those calls are
>> serialized on the s->lock I wonder whether enough parallel accesses
>> from the guest could manage to trigger the watchdog?
> 
> I'm not really up to making an XTF test, I guess. However, as you look to
> share my concern, I'll add a prereq patch adjusting gmtime().

While making such a patch, I noticed my flaw in the description above: That
loop walks in granularity of years, so can't have more than about 10k
iterations. Shortening the processing by first going in 400-year steps may
still be worthwhile, but doesn't look to be strictly required.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 13 15:51:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 15:51:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308251.1579779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNBrz-0000gQ-TL; Wed, 13 May 2026 15:51:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308251.1579779; Wed, 13 May 2026 15:51:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNBrz-0000gJ-Oo; Wed, 13 May 2026 15:51:35 +0000
Received: by outflank-mailman (input) for mailman id 1308251;
 Wed, 13 May 2026 15:51:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNBry-0000gD-AE
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 15:51:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNBrw-00Cdap-5K
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 17:51:33 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a049dfe-e002-0a2a0a5209dd-0a2a4508abcc-6
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:51:33 +0200
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a049e05-63b5-0a2a45080019-d155dd32d56d-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:51:33 +0200
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-43d7645adbdso3825567f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 08:51:33 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4548e6a6a64sm43157039f8f.6.2026.05.13.08.51.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 08:51:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778687493; x=1779292293; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=jUF/DEKVhVThSf8vu55fKjDHjFPpjINhinISnlyhVoc=;
        b=OgO2WLp7OFTfvZEEIu+n2tMLLu2vOHczZyd5qaPrWYCuJK6zAi7MwDohzKJn3CG++g
         aY43Y1DBI4kCmRNGewGisOwz6x2yv+QHbtx4fMmPCmd9SkTMERgA0kUOpDolFleejIEg
         d2de+WKD0tJs1s06O1iVfgvJmLo/6Az/LcJ7oSQe56X+hpJxJp6+yn3Xiy4SkrKIuPwp
         B9m/HAzwOJxXS3AwhLgeWo+Shcv12Csq74y7ps8lOTqltl8kTdD/sW3nYVQdZ/VJxg3I
         CwI872NVPNHi9ydBqfXWMxj9Glk6lprjLLPjaJfibsDYt/mCofprfrddLXIbMnQajsPh
         b3ow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778687493; x=1779292293;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=jUF/DEKVhVThSf8vu55fKjDHjFPpjINhinISnlyhVoc=;
        b=ocNmL8M4K+6CW9PEeYhVHhZXBdj+I6oIjlS5jb9MoD6sRLAlU+f+KPDY4cdvlJM7oW
         ig9FatEg1F9fLOGK6WRNhVI6Zzpz8Ir4PZ+nF2AUMwwRYZmBWOorPJv5pkYYfDibQAvi
         wq3IU7R3rIWa2uavzLtICMNHb+NfZ0OyAUynX16PPDA/7adIDKqhsD4puHMhJ8JOFIcG
         pGNOPzqnn3T52zOk+guYEWjngwaXuC9ElYhq+h0nPQRhixe7am6SmAisfKBzdzLt6eXa
         s+Mtdf8lvNtZATuifBPP3eC0ioYpbyAO7LFozi3tpDciMZ96oPFn0AteN1jx97c0ivcB
         TotQ==
X-Gm-Message-State: AOJu0YwYqjeeitztVWQL6ssXAHJmGYhyPdknarvzMqVC727p2m44oGKE
	G+zC3hO0L1Cb6eQnb61D5rmXVwXr3sNtg6aag8YMriG3QErXxgHSGWfbpSu5yQiHJ80EHVIdNOR
	rqk8=
X-Gm-Gg: Acq92OFPz1uK6SUqvp62JG+f6XFPy3TBZYSyKn1vCv8bwBACkchgv7sfndkTUySt6RZ
	EYUrD/dqwimBPtwo/obIkW5YquhzisjScaEyX1MKjXMflTX5Ai0Kaxht9AsvJkn8K3EWJVH2LOO
	ZIjRBXI5reUp1PXgBVb8wxKuW65CD+ScYVc4SMX5wRFDu+YbFIFkX3ZfQhKH/27DIjoWIvkj/pQ
	O0drQfsKEBSvH5GWjHq/bqG91RkIwpFYEzYq2y9+6ykR7z1yfoA//nyLN4G6DzYM1kGEcMsSa7H
	ZJWgZs8bwcx0PUhk72q9RZKZ46FHCMeQdeZoqBrjZDC+835YOyEgmCHvCOpM1X218sEQKGhEXDZ
	3AjQTDqCIJUH+UJU7tFGa07YAkqAhc83UjeGYNHiSyVaz+SuoPNmLtNUKufghBAsyVUQFwBMm1s
	nZCFatalsg1id7EWVLwnxB+ku969o72Ii3FJ+yvMytVhYbmbpLsoh1rT5ZpMfmKjVJsDYqUhcPi
	Eh6AcP5x4agm8c=
X-Received: by 2002:a5d:5d83:0:b0:43c:fc5c:a9fe with SMTP id ffacd0b85a97d-45c5a1a92eemr6161695f8f.20.1778687493113;
        Wed, 13 May 2026 08:51:33 -0700 (PDT)
Message-ID: <036752dc-5333-4d01-acaf-ed450e09fe48@suse.com>
Date: Wed, 13 May 2026 17:51:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] crypto/vmac: adjust for Misra C:2012 rule 17.5
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1778687493-B797DDB1-ECA2D6F4/0/0
X-purgate-type: clean
X-purgate-size: 2909

... ("The function argument corresponding to a parameter declared to have
an array type shall have an appropriate number of elements"). Instead of
casts, (ab)use unions.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14354119193
(also covering the 20.12 patch)

There are also two cautions (in vmac()), which aren't dealt with for now.

--- a/xen/crypto/vmac.c
+++ b/xen/crypto/vmac.c
@@ -926,41 +926,41 @@ uint64_t vmac(unsigned char m[],
 
 void vmac_set_key(const unsigned char user_key[], vmac_ctx_t *ctx)
 {
-    uint64_t in[2] = {0}, out[2];
+    union {
+        uint64_t q[2];
+        uint8_t b[16];
+    } in, out;
     unsigned i;
     aes_key_setup(user_key, &ctx->cipher_key);
     
     /* Fill nh key */
-    ((unsigned char *)in)[0] = 0x80; 
+    in = (typeof(in)){ .b[0] = 0x80 };
     for (i = 0; i < sizeof(ctx->nhkey)/8; i+=2) {
-        aes_encryption((unsigned char *)in, (unsigned char *)out,
-                                                         &ctx->cipher_key);
-        ctx->nhkey[i  ] = get64BE(out);
-        ctx->nhkey[i+1] = get64BE(out+1);
-        ((unsigned char *)in)[15] += 1;
+        aes_encryption(in.b, out.b, &ctx->cipher_key);
+        ctx->nhkey[i  ] = get64BE(out.q);
+        ctx->nhkey[i+1] = get64BE(out.q + 1);
+        in.b[15] += 1;
     }
 
     /* Fill poly key */
-    ((unsigned char *)in)[0] = 0xC0; 
-    in[1] = 0;
+    in.b[0] = 0xC0;
+    in.q[1] = 0;
     for (i = 0; i < sizeof(ctx->polykey)/8; i+=2) {
-        aes_encryption((unsigned char *)in, (unsigned char *)out,
-                                                         &ctx->cipher_key);
-        ctx->polytmp[i  ] = ctx->polykey[i  ] = get64BE(out) & mpoly;
-        ctx->polytmp[i+1] = ctx->polykey[i+1] = get64BE(out+1) & mpoly;
-        ((unsigned char *)in)[15] += 1;
+        aes_encryption(in.b, out.b, &ctx->cipher_key);
+        ctx->polytmp[i  ] = ctx->polykey[i  ] = get64BE(out.q) & mpoly;
+        ctx->polytmp[i+1] = ctx->polykey[i+1] = get64BE(out.q + 1) & mpoly;
+        in.b[15] += 1;
     }
 
     /* Fill ip key */
-    ((unsigned char *)in)[0] = 0xE0;
-    in[1] = 0;
+    in.b[0] = 0xE0;
+    in.q[1] = 0;
     for (i = 0; i < sizeof(ctx->l3key)/8; i+=2) {
         do {
-            aes_encryption((unsigned char *)in, (unsigned char *)out,
-                                                         &ctx->cipher_key);
-            ctx->l3key[i  ] = get64BE(out);
-            ctx->l3key[i+1] = get64BE(out+1);
-            ((unsigned char *)in)[15] += 1;
+            aes_encryption(in.b, out.b, &ctx->cipher_key);
+            ctx->l3key[i  ] = get64BE(out.q);
+            ctx->l3key[i+1] = get64BE(out.q + 1);
+            in.b[15] += 1;
         } while (ctx->l3key[i] >= p64 || ctx->l3key[i+1] >= p64);
     }
     


From xen-devel-bounces@lists.xenproject.org Wed May 13 15:52:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 15:52:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308257.1579786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNBsh-0001AK-41; Wed, 13 May 2026 15:52:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308257.1579786; Wed, 13 May 2026 15:52:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNBsh-0001AD-0X; Wed, 13 May 2026 15:52:19 +0000
Received: by outflank-mailman (input) for mailman id 1308257;
 Wed, 13 May 2026 15:52:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNBsf-00019y-18
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 15:52:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNBse-0080Y1-Dz
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 17:52:16 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a049e1a-2eae-0a2a0a5409dd-0a2a450ad0ce-38
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:52:16 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a049e30-56b3-0a2a450a0019-d1558035c952-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 17:52:16 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-488b8bc6bc9so44299255e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 08:52:16 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fd64960f3sm99045e9.7.2026.05.13.08.52.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 May 2026 08:52:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778687536; x=1779292336; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=WnFUSVfslOxXss64ij04OSkTYoivoaUv4MLt6D7FnpM=;
        b=MrgHBwJ8CeVVkEZsdztcK6AS6+RuMjTR4/0t/zhRwSZPEDT4M6vqykvOCKELur8A5F
         y1L2Naxn32zUbcBLREByShhVdqGiJqwzSRW6iQa4VxU5QhdmUkgLp67Et12Mve3/J1P5
         kRbJF9BSEEy0N3GztNaJGZmWjR59a9fFCjqhNSkg8FqhlJ9sNFQbfRrDzdW2MNDHINVZ
         I7Ej5/jrLx/KLuaBNinOqLCNhnuRFu18GL5i7xQmsp1CAzdx2A4EE8rb7OWNgGDuaGej
         vzhOWn2vkFV62eXVZD7R8lx8tuEYbdmbmJIuk47oPVAxAUz9K3e54yNJ2DVXu5C78gq9
         UL6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778687536; x=1779292336;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=WnFUSVfslOxXss64ij04OSkTYoivoaUv4MLt6D7FnpM=;
        b=IkY5yQK9vPfFTNGY0o81nEHWsmfQ/elpjnNV538WGEHOcLd9U0z4hxf1Otsgc/ZJnJ
         qckBF1wnrprzsGwawfLh0KiolwttXYWBzF6wcoRfmo8mZyGdBB2615Sn68gFhrkHyxhh
         WXaWw0/TEiJ96XmgxwM3Km3rmIla8hsjyiC0YxD8/Yb2K52B/GibUycDN8/+E7QCSW7p
         WEA4vmllgjEE4wI50OMANYdCOARaBaw7tV+EG88CLrAqcXtiUrnXymkDFBqVYeSbf57H
         yw2ASt63ugx5rNA1inPt7WFN8LAzUO3v7JNhF+Vj5oW74apKL+mn+ZrRa5ITses1yfgw
         /0Lw==
X-Gm-Message-State: AOJu0Yx/We8ph19OQm9ngvMFjlAP0rs90otDWL8APmj1VYr6wkb+XwMe
	dtkMFsOsOVW+9O1XbmkYewOKaM94Ju0GURbSiLDsvJpysYIpYNlOqF1AoOU2Zddu0t5Bu0GsodK
	NuRE=
X-Gm-Gg: Acq92OGhvZnAMutpm6T7vzG+N9Bb1vTkJ3i34eEWxit/XDWESH2ywyD19j4t9Vs/yau
	RjU7o9FQkQSAd727U79q/lLHhDAe5USa//F9N34hOB3lMbuUIWr0knWpsfLEaL5aSZBcEhqH/ec
	FMXhDIlfUIz/IfO3vkmbbMHGMbgVQA9+ENNcdDHZNvnjJsauaJjxTlXHDiOuH2sIZWOvVtFopdx
	rvf3PeUcFGPBqLwTegLAJ9BFRn5284EcGGv4TbOCTc2JULrzlur5TsCsWePMy2z28Yhv+cHrD2O
	5aQaAHH55Pc8e4XHqp+YgieHc5BjcfDwj/YQRArqkghm+xxan6iKgvSXHZaTaReWSu6at0/Mxfe
	75Hi4b6Tn2GPjG17cwCgpd50uO0PFanhqHvBncudbS0xYQHl9yt6oiKuGt+pcPukrnEHQQRC9f7
	J0ysiQFVhiNOzE43uSmog55Ve/Z66G1RKdPV/wLlaUDSezdNN58kJXUKcoR0foxp8Aqqzs4mXUD
	PjGEvGYIzc5cGc=
X-Received: by 2002:a05:600c:3107:b0:48e:635a:18d2 with SMTP id 5b1f17b1804b1-48fc9a08e2dmr56663645e9.2.1778687535850;
        Wed, 13 May 2026 08:52:15 -0700 (PDT)
Message-ID: <ed512e2e-a3ff-4fe3-8847-80985722c4d3@suse.com>
Date: Wed, 13 May 2026 17:52:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/shim: adjust for Misra C:2012 rule 20.12
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1778687536-705648B7-B1D06B79/0/0
X-purgate-type: clean
X-purgate-size: 3509

... ("A macro parameter used as an operand to the `#' or `##' operators,
which is itself subject to further macro replacement, shall only be used
as an operand to these operators"). Move the HVM_PARAM_ prefixes into the
macro body, to use ## on the 2nd use (each) of the macro parameter.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
I understand that this "absorbing" of prefixes isn't liked by some people,
so I'm all ears towards alternative suggestions.

https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14354119193
(also covering the 17.5 patch)

--- a/xen/arch/x86/pv/shim.c
+++ b/xen/arch/x86/pv/shim.c
@@ -116,17 +116,17 @@ void __init pv_shim_fixup_e820(void)
 
     ASSERT(xen_guest);
 
-#define MARK_PARAM_RAM(p) ({                    \
-    rc = xen_hypercall_hvm_get_param(p, &pfn);  \
-    if ( rc )                                   \
-        panic("Unable to get " #p "\n");        \
-    mark_pfn_as_ram(pfn);                       \
-    ASSERT(i < ARRAY_SIZE(reserved_pages));     \
-    reserved_pages[i++].mfn = pfn;              \
+#define MARK_PARAM_RAM(p) ({                                 \
+    rc = xen_hypercall_hvm_get_param(HVM_PARAM_ ## p, &pfn); \
+    if ( rc )                                                \
+        panic("Unable to get HVM_PARAM_" #p "\n");           \
+    mark_pfn_as_ram(pfn);                                    \
+    ASSERT(i < ARRAY_SIZE(reserved_pages));                  \
+    reserved_pages[i++].mfn = pfn;                           \
 })
-    MARK_PARAM_RAM(HVM_PARAM_STORE_PFN);
+    MARK_PARAM_RAM(STORE_PFN);
     if ( !pv_console )
-        MARK_PARAM_RAM(HVM_PARAM_CONSOLE_PFN);
+        MARK_PARAM_RAM(CONSOLE_PFN);
 #undef MARK_PARAM_RAM
 }
 
@@ -190,9 +190,9 @@ void __init pv_shim_setup_dom(struct dom
     long rc;
 
 #define SET_AND_MAP_PARAM(p, si, va) ({                                        \
-    rc = xen_hypercall_hvm_get_param(p, &param);                               \
+    rc = xen_hypercall_hvm_get_param(HVM_PARAM_ ## p, &param);                 \
     if ( rc )                                                                  \
-        panic("Unable to get " #p "\n");                                       \
+        panic("Unable to get HVM_PARAM_" #p "\n");                             \
     (si) = param;                                                              \
     if ( va )                                                                  \
     {                                                                          \
@@ -207,12 +207,11 @@ void __init pv_shim_setup_dom(struct dom
         evtchn_reserve(d, param);                                              \
     }                                                                          \
 })
-    SET_AND_MAP_PARAM(HVM_PARAM_STORE_PFN, si->store_mfn, store_va);
-    SET_AND_MAP_PARAM(HVM_PARAM_STORE_EVTCHN, si->store_evtchn, 0);
-    SET_AND_MAP_PARAM(HVM_PARAM_CONSOLE_EVTCHN, si->console.domU.evtchn, 0);
+    SET_AND_MAP_PARAM(STORE_PFN, si->store_mfn, store_va);
+    SET_AND_MAP_PARAM(STORE_EVTCHN, si->store_evtchn, 0);
+    SET_AND_MAP_PARAM(CONSOLE_EVTCHN, si->console.domU.evtchn, 0);
     if ( !pv_console )
-        SET_AND_MAP_PARAM(HVM_PARAM_CONSOLE_PFN, si->console.domU.mfn,
-                          console_va);
+        SET_AND_MAP_PARAM(CONSOLE_PFN, si->console.domU.mfn, console_va);
 #undef SET_AND_MAP_PARAM
     else
     {


From xen-devel-bounces@lists.xenproject.org Wed May 13 16:12:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 16:12:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308277.1579796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNCCP-00056g-Mt; Wed, 13 May 2026 16:12:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308277.1579796; Wed, 13 May 2026 16:12:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNCCP-00056Z-K1; Wed, 13 May 2026 16:12:41 +0000
Received: by outflank-mailman (input) for mailman id 1308277;
 Wed, 13 May 2026 16:12:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wNCCO-00056T-Fz
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:12:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNCCN-003Rzp-Sz
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 18:12:39 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a04a2e0-bab6-0a2a0a5309dd-0a2a4503b9e4-40
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 18:12:38 +0200
Received: from [52.101.66.24]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a04a2f6-672d-0a2a45030019-346542181a1b-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 18:12:38 +0200
Received: from PR3P251CA0018.EURP251.PROD.OUTLOOK.COM (2603:10a6:102:b5::26)
 by DU0PR08MB8447.eurprd08.prod.outlook.com (2603:10a6:10:405::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 16:12:33 +0000
Received: from AM4PEPF00025F9A.EURPRD83.prod.outlook.com
 (2603:10a6:102:b5:cafe::e3) by PR3P251CA0018.outlook.office365.com
 (2603:10a6:102:b5::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.12 via Frontend Transport; Wed,
 13 May 2026 16:12:33 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00025F9A.mail.protection.outlook.com (10.167.16.9) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.3 via
 Frontend Transport; Wed, 13 May 2026 16:12:32 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by GVXPR08MB10476.eurprd08.prod.outlook.com (2603:10a6:150:155::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Wed, 13 May
 2026 16:11:27 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 16:11:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=T4ENshZ7CzRp+o2By8wnrT/JfaADS+4YnRFISTsJOuE+Woo+XcDjIbQyAoAMGgfJPoimQeSTbgnAAH09qQk2h2TpfDPQeC6yRp3RaJt2GK2HD3LcutTQi/DL4oVTAs3zOEEXzqsm06Ncqr/+9YzxM+8Ctl3MKFEALV+bGutDmprg/nYIVnV4vemU9zyoO67QmacH7jrB7ZlzpYgP+MiX98aCNsYiTw654uhrwwBdeoT/K87+J1UL4fpYCZ6axPeU6iiQwQfR8x69M6qJhqdc0BGdGAXeYZbAcN6qAh3B0nCYHJVprvxRnMEgIB+B0pwgCibNNz1+LzZJoUvual5e9g==
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=v4Y94ojXJyOMFRiSC2FcNd1G6ixpJrmC7toPGQRbPGs=;
 b=DrLvd5v4U0Tb/q2gW5bP4HOdzRewQfpIiok3JM0enWxeY0Kb8RxBSC2JQamQjHvJgc1IXBjA/6aPocwRzjQle68fOc7qwBkT88m+9/YQ+B9JuGWpa7g8yLY1Wbph52Z+JI5X0Krst2CrrnTfZLufZ9Zvpz/AinHBhLG8V0JDghglRoJWBGkDtqpS6Ya+VngoavW524p3inYWtYpQB6a15YPPLQST0OV7xgvvmZm8MprB/lRRUKlygtahlR4RlXstmpyGq31x37T0d4Pd6al6nHNMFaM51wr3mizx+E0SPf+LC1X42YnOUADkfHyPvR6aUihjSfxAeXcr9CgVEyrILA==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v4Y94ojXJyOMFRiSC2FcNd1G6ixpJrmC7toPGQRbPGs=;
 b=d58o2qnP2O8WzaY8CaE7Qj0a8K/odaOYxwt3D7y0kmZhuSp5QJxwt4KTe8tQGNABwL+DMzZaa6/VX+XDkx1m4FsFK/01QNrvHFVs4l9c0jaKy7aIJD/hbZGUaM1503IHXNYEhxYMc4y8uL8RTm6A3fprAKCYKuG+Am+nvqJqnEE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hqw51gl8+IGaPsPVTP/+AYof4HCGt+DgTe5YG2LRbY6bPYYrnzyKrp2qIzCh+fkRc3x/jIZjFq8RvDXCVzBXh4dAIQNKEGMjOe5TDWs3FrmM7kSp1n7kokrugMxwgyGDN6soDMWvFPK3bO30rY6HVaJ0SsvsYYso7xhrBRR6bXs0kZqHGbyY77bapq4kz4NnojzvAvRBzWuqvGs6WviXWwPgbUkJxVYg7YmbTOamsBrQuy8znPjP2dblBRai0U2USEeqbMKm0OaJbu7gyQQZOEyxX5jM3Ignoszk3QAazL37myflPyeABj+3inBepBeSbfdKXITMjyQ8MUyQGcA8Yg==
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=v4Y94ojXJyOMFRiSC2FcNd1G6ixpJrmC7toPGQRbPGs=;
 b=pHPEZRcUdxVAbcksZuyUutRKcg/fqSdqt0C58kZhnuPbshe2qx4GgvLRJT1eqEs2HjbnruDum9GAgHLDb6UQM1jQT1peG7BShOS5M/DaTPxmG6lZNTvFZyNv7zgt07Z7POluYz5r6gm9LAM5IaduzWgCyQ0FYi7x1TGeqHTT+OIKgQYU/P8Yjp3O+Pv2+LLuRwOtfhNBCkIsJmMtvZNgsYw9yWFOH7yKqTk1S2DGKHd3c54lIVPNIxIDw4hk8F7GYSgY9IyAnz/h8J+4BfzCBHL49sahhMy8dB8N/bIDWg97vcG1N/8BDRZYSflJXQN8yy+88UnJ5+Wc0n837QTvng==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v4Y94ojXJyOMFRiSC2FcNd1G6ixpJrmC7toPGQRbPGs=;
 b=d58o2qnP2O8WzaY8CaE7Qj0a8K/odaOYxwt3D7y0kmZhuSp5QJxwt4KTe8tQGNABwL+DMzZaa6/VX+XDkx1m4FsFK/01QNrvHFVs4l9c0jaKy7aIJD/hbZGUaM1503IHXNYEhxYMc4y8uL8RTm6A3fprAKCYKuG+Am+nvqJqnEE=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v9 04/13] xen/arm: gic-v3: Implement GICv3 suspend/resume
 functions
Thread-Topic: [PATCH v9 04/13] xen/arm: gic-v3: Implement GICv3 suspend/resume
 functions
Thread-Index: AQHc4jIxvmGdqMgSz02bPpb5zv+LMLYMIcWA
Date: Wed, 13 May 2026 16:11:27 +0000
Message-ID: <BA33B390-3ECC-4EBF-8305-5E91C8451398@arm.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <8973fc6bf69d8b20cebb61289c1b8596b1a09900.1778605274.git.mykola_kvach@epam.com>
In-Reply-To:
 <8973fc6bf69d8b20cebb61289c1b8596b1a09900.1778605274.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|GVXPR08MB10476:EE_|AM4PEPF00025F9A:EE_|DU0PR08MB8447:EE_
X-MS-Office365-Filtering-Correlation-Id: fe38be0b-9c3a-4971-be68-08deb10a708b
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|4143699003|11063799003|56012099003|18002099003|38070700021|22082099003;
X-Microsoft-Antispam-Message-Info-Original:
 KlADLaOM774OqJCN2Ao+oxn7rwdgOkpAR7A6biEWX3Bp2sSCf9J5mMsFqtK39lkEwouMWcEQArTygX0nUtt0BVYZQboL/UOercD33W0rd9FcE80KDxCJsu1JOWBra7ZOaXSSBrQoP5PYS5B18ZqMWED6SIVV5Z34A4Cy0eR/XaTMUIbD2lktmrZuhcBcBAEJmFKkWcUIXt8YmARyvSbUDi5+vulc+6Zcf8XBTqXk8CPALIMUTBa9+e4MH7ZGQWiiKmzL0BcWEcJqHpUFOasdSqlOE1TEwEDSJtKWLIom3z1VQ9ayBmyXfaJ7lwh4x9WVWnKFxL1/1kqaCbD/fzMC6/OLbFaeBax1xfsJUQ6por2QpCzEpymKI2CyTcDhDUEbhGxa/6jh8LC4eiVw5g04gbh2TvEcVx2lLZ9RBegpXmd9b7MjOVeNcUC4PImHECF6wsRjMsl01HAHfuUqc2+Tr21CM1MWuSMgeljtB0SgviG3KlO/NDmkvUKCSLaXo++GHt2XVmcHd6OouG9w/yEXOofgIB8WUatmYKh/atQvtsB7jjtc6kzSfFm8yFOzFtYtjajO/hsDiAOUcAAvVt6h+UDfcl3JVQPRTRv6+IsoDIl63mID+GquulhQ3L6r8xlseX+Wi8G9Eaui5c3TaGDIp+MnkvohFuN0AijKEkFwxkSAKGoB922ulJmb8Ogr1oFmJL/JbSNG0K4NlKHuVgFslSN8hu9wqsMIEu7CHXtez7L37nYdsdaAEF0G/VBLkCqa
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(4143699003)(11063799003)(56012099003)(18002099003)(38070700021)(22082099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <E456145B9C4B484AA915D1375170E49D@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 F+Fq53W8is/i48FYUfD7/bWJKjs1fNR+N/wK3MznbCxTRjaX7WG85Wp8STR3dHthrRQbr2YFlqQGU5eW2TbM1WbaypaW4KvMuuWeBAwlTW0bkDBtsqvqGbLk8ucVTN7G6K+7EituO2ltbibtd9i6LkVTG7u4fT8l8tR/vG8AuuwL11qlwXWFYLvnDOg00XG3paY1dtoTRpW1w4CeIc5qzFvEuaZIizTQNDy7Eh3fVE00IoGbeuLq+Ehv7IhAVTRJwqm/sBL/VUOtf6P5KWEyOrT0it/gh3zdPfvzxa5FrjNrgAaFgLJmaEECSeCrqETkrWiKnY31lCXUZhozYbsjGw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB10476
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00025F9A.EURPRD83.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	8f906974-dc82-4706-7da2-08deb10a4977
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700016|1800799024|82310400026|35042699022|376014|56012099003|4143699003|11063799003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	sXds8DhtW58IH8S+SNou5EUDWF+LU8Kq9yRbUQ18z93iOz8+D9xVUaHTJQUsJ963W9yY2EHIucnMvZHtzEkjYBreYP88Tor/KY4dxFnaI6PsjKb4ne7o3hL541nhLDwBOOfrNalNdOEtFn3udQ2q5TaAfePEWqbjK0u7GKii61cUSinL4Kg9fyJBMUc2pf2PB8PQaV4U5r94Gi4oAcfiwV0K/MXz9AVR0O/4fVkmYpp3LkLMa4iXXlTFIJa+yGUQXTP6WaeyYfDaapups+z857r8USi10JceQ1yTx3+pn44DUSDcf158eUP8NGWR1hLxTFqUMnMTojYwnx8vyEndM+Y56UG0/LUdh0n2bPEFiaj4m2hT5pF6A6fRqL00218yT4fuzmFd+r9l4m454c82pODOcc25pKHC5MgXyv9gHn6zlfV+jjOlCPKS62/Il/7Yv7VHEMVG3gm1Tj7z7h6FRpZYYS/8gpAjxLdSAGtjqq6wX3e7JiiePU2H1b5EeLh4DIof5yQ1ADtqAZEDXQnsw/qmQa0UngyqX3F4K/4nejzkzrgfDfMlvHhJM43qZparscigHeAMjSXy8YhV1X+b1T1WhudeMY0PyUrHruYGSoyrh5/Aoydo2UMFA5J0xvIIIH4ZUX5GxYatv5D2Rn6RNZgkeGThVEDdi681FXUvn5eVSNAMd2F8dFHvASNfoijnhKwLvt5cBBceU+xvZ19A4veKx/1+2vWFAXVhhXvzan8=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(36860700016)(1800799024)(82310400026)(35042699022)(376014)(56012099003)(4143699003)(11063799003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	lKKU4VFUqChy8WkoXju5WfGXE50H+xwehfy+BEaHmyMQT4lTOpoXSYoledulavvP1ja7kvBPz0UWrmt76Rxz5lavHfpT7/CW61f5aOagMqyMtYNY/LzR1ZInj2F56yL5+nc82OdHu2c8fpo8ZwT1r7eeuZJlWq0cJbBV6Iwk5oH2u7378SCg8Qvo3hu6R/tWVOicB6gldYmfO6QfuF/HNxFed0QO/Gmw5+7hBL/EZdaBTSWuueef3H+DY92RHY73Ehc6rSGBxQYF5Kz+mDHB73r0AJtqfejEZHkjqJxlLpPpxPEmYQob5AcVeGb4f6A7cKeKTNiMlI5OFuy9OBXzZ5Bz0Xq5YJYSc2dvpdbhW8vELA3d3hFxFZSnKedYXItz5/YSHiRAh3m5LMnJlRxA334CiugWqPdQGRo8pZnvQrWsxOEglOfSuLMz9p2fefJP
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 16:12:32.8217
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fe38be0b-9c3a-4971-be68-08deb10a708b
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00025F9A.EURPRD83.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8447
X-purgate-ID: tlsNG-33051d/1778688758-3A766938-7FD8364D/0/0
X-purgate-type: clean
X-purgate-size: 11504

SGkgTXlrb2xhLA0KDQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgZ2ljdjNfZGlzYWJsZV9yZWRp
c3Qodm9pZCkNCj4gK3sNCj4gKyAgICB2b2lkIF9faW9tZW0gKndha2VyID0gR0lDRF9SRElTVF9C
QVNFICsgR0lDUl9XQUtFUjsNCj4gKyAgICBzX3RpbWVfdCBkZWFkbGluZTsNCj4gKw0KPiArICAg
IC8qDQo+ICsgICAgICogQXZvaWQgaW5maW5pdGUgbG9vcCBpZiBOb24tc2VjdXJlIGRvZXMgbm90
IGhhdmUgYWNjZXNzIHRvIEdJQ1JfV0FLRVIuDQo+ICsgICAgICogU2VlIEFybSBJSEkgMDA2OUgu
YiwgMTIuMTEuNDIgR0lDUl9XQUtFUjoNCj4gKyAgICAgKiAgICAgV2hlbiBHSUNEX0NUTFIuRFMg
PT0gMCBhbmQgYW4gYWNjZXNzIGlzIE5vbi1zZWN1cmUgYWNjZXNzZXMgdG8gdGhpcw0KPiArICAg
ICAqICAgICByZWdpc3RlciBhcmUgUkFaL1dJLg0KPiArICAgICAqLw0KPiArICAgIGlmICggIShy
ZWFkbF9yZWxheGVkKEdJQ0QgKyBHSUNEX0NUTFIpICYgR0lDRF9DVExSX0RTKSApDQo+ICsgICAg
ICAgIHJldHVybiAwOw0KPiArDQo+ICsgICAgZGVhZGxpbmUgPSBOT1coKSArIE1JTExJU0VDUygx
MDAwKTsNCj4gKw0KPiArICAgIHdyaXRlbF9yZWxheGVkKHJlYWRsX3JlbGF4ZWQod2FrZXIpIHwg
R0lDUl9XQUtFUl9Qcm9jZXNzb3JTbGVlcCwgd2FrZXIpOw0KPiArICAgIHdoaWxlICggKHJlYWRs
X3JlbGF4ZWQod2FrZXIpICYgR0lDUl9XQUtFUl9DaGlsZHJlbkFzbGVlcCkgPT0gMCApDQo+ICsg
ICAgew0KPiArICAgICAgICBpZiAoIE5PVygpID4gZGVhZGxpbmUgKQ0KPiArICAgICAgICB7DQo+
ICsgICAgICAgICAgICBwcmludGsoIkdJQ3YzOiBUaW1lb3V0IHdhaXRpbmcgZm9yIHJlZGlzdHJp
YnV0b3IgdG8gc2xlZXBcbiIpOw0KDQpJIHRoaW5rIGhlcmUgd2Ugc2hvdWxkIGNsZWFyIEdJQ1Jf
V0FLRVJfUHJvY2Vzc29yU2xlZXAsIHRoZSBBcm0gSUhJIDAwNjlILmIsIHNlY3Rpb24NCjExLjEg
c2F5cyB0aGF0DQoNCuKAnOKAnSINCldoZW4gR0lDUl9XQUtFUi5Qcm9jZXNzb3JTbGVlcCA9PSAx
IG9yIEdJQ1JfV0FLRVIuQ2hpbGRyZW5Bc2xlZXAgPT0gMSB0aGVuIGEgd3JpdGUgdG8gYW55IEdJ
Q0NfKiwNCkdJQ1ZfKiwgR0lDSF8qLCBJQ0NfKiwgSUNWXyosIG9yIElDSF8qIHJlZ2lzdGVycywg
b3RoZXIgdGhhbiB0aG9zZSBpbiB0aGUgZm9sbG93aW5nIGxpc3QsIGlzIHVucHJlZGljdGFibGU6
DQrigKIgSUNDX1NSRV9FTDEuDQrigKIgSUNDX1NSRV9FTDIuDQrigKIgSUNDX1NSRV9FTDMNCuKA
nCIiDQpCdXQgaW4gdGhlIGVycm9yIHBhdGggdXNlZCBpbiBnaWN2M19zdXNwZW5kKCkgd2UgYXJl
IHdyaXRpbmcgSUNIX0hDUl9FTDIgYW5kIElDQ19JR1JQRU4xX0VMMS4NCg0KPiArICAgICAgICAg
ICAgcmV0dXJuIC1FVElNRURPVVQ7DQo+ICsgICAgICAgIH0NCj4gKyAgICAgICAgY3B1X3JlbGF4
KCk7DQo+ICsgICAgICAgIHVkZWxheSgxMCk7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgcmV0dXJu
IDA7DQo+ICt9DQo+ICsNCj4gKyNkZWZpbmUgR0VUX1NQSV9SRUdfT0ZGU0VUKG5hbWUsIGlzX2Vz
cGkpIFwNCj4gKyAgICAoKGlzX2VzcGkpID8gR0lDRF8jI25hbWUjI25FIDogR0lDRF8jI25hbWUp
DQo+ICsNCj4gK3N0YXRpYyB2b2lkIGdpY3YzX3N0b3JlX3NwaV9pcnFfYmxvY2soc3RydWN0IGRp
c3RfaXJxX2Jsb2NrICppcnFzLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQgaSwgYm9vbCBpc19lc3BpKQ0KPiArew0KPiArICAgIHZvaWQgX19p
b21lbSAqYmFzZTsNCj4gKyAgICB1bnNpZ25lZCBpbnQgaXJxOw0KPiArDQo+ICsgICAgYmFzZSA9
IEdJQ0QgKyBHRVRfU1BJX1JFR19PRkZTRVQoSUNGR1IsIGlzX2VzcGkpICsgaSAqIHNpemVvZihp
cnFzLT5pY2Zncik7DQo+ICsgICAgaXJxcy0+aWNmZ3JbMF0gPSByZWFkbF9yZWxheGVkKGJhc2Up
Ow0KPiArICAgIGlycXMtPmljZmdyWzFdID0gcmVhZGxfcmVsYXhlZChiYXNlICsgNCk7DQo+ICsN
Cj4gKyAgICBiYXNlID0gR0lDRCArIEdFVF9TUElfUkVHX09GRlNFVChJUFJJT1JJVFlSLCBpc19l
c3BpKTsNCj4gKyAgICBiYXNlICs9IGkgKiBzaXplb2YoaXJxcy0+aXByaW9yaXR5cik7DQo+ICsg
ICAgZm9yICggaXJxID0gMDsgaXJxIDwgQVJSQVlfU0laRShpcnFzLT5pcHJpb3JpdHlyKTsgaXJx
KysgKQ0KPiArICAgICAgICBpcnFzLT5pcHJpb3JpdHlyW2lycV0gPSByZWFkbF9yZWxheGVkKGJh
c2UgKyA0ICogaXJxKTsNCj4gKw0KPiArICAgIGJhc2UgPSBHSUNEICsgR0VUX1NQSV9SRUdfT0ZG
U0VUKElST1VURVIsIGlzX2VzcGkpOw0KPiArICAgIGJhc2UgKz0gaSAqIHNpemVvZihpcnFzLT5p
cm91dGVyKTsNCj4gKyAgICBmb3IgKCBpcnEgPSAwOyBpcnEgPCBBUlJBWV9TSVpFKGlycXMtPmly
b3V0ZXIpOyBpcnErKyApDQo+ICsgICAgICAgIGlycXMtPmlyb3V0ZXJbaXJxXSA9IHJlYWRxX3Jl
bGF4ZWRfbm9uX2F0b21pYyhiYXNlICsgOCAqIGlycSk7DQo+ICsNCj4gKyAgICBiYXNlID0gR0lD
RCArIEdFVF9TUElfUkVHX09GRlNFVChJU0FDVElWRVIsIGlzX2VzcGkpOw0KPiArICAgIGJhc2Ug
Kz0gaSAqIHNpemVvZihpcnFzLT5pc2FjdGl2ZXIpOw0KPiArICAgIGlycXMtPmlzYWN0aXZlciA9
IHJlYWRsX3JlbGF4ZWQoYmFzZSk7DQo+ICsNCj4gKyAgICBiYXNlID0gR0lDRCArIEdFVF9TUElf
UkVHX09GRlNFVChJU0VOQUJMRVIsIGlzX2VzcGkpOw0KPiArICAgIGJhc2UgKz0gaSAqIHNpemVv
ZihpcnFzLT5pc2VuYWJsZXIpOw0KPiArICAgIGlycXMtPmlzZW5hYmxlciA9IHJlYWRsX3JlbGF4
ZWQoYmFzZSk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIGdpY3YzX3Jlc3RvcmVfc3BpX2ly
cV9jb25maWcoc3RydWN0IGRpc3RfaXJxX2Jsb2NrICppcnFzLA0KPiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaSwgYm9vbCBpc19lc3BpKQ0K
PiArew0KPiArICAgIHZvaWQgX19pb21lbSAqYmFzZTsNCj4gKyAgICB1bnNpZ25lZCBpbnQgaXJx
Ow0KPiArDQo+ICsgICAgYmFzZSA9IEdJQ0QgKyBHRVRfU1BJX1JFR19PRkZTRVQoSUNGR1IsIGlz
X2VzcGkpICsgaSAqIHNpemVvZihpcnFzLT5pY2Zncik7DQo+ICsgICAgd3JpdGVsX3JlbGF4ZWQo
aXJxcy0+aWNmZ3JbMF0sIGJhc2UpOw0KPiArICAgIHdyaXRlbF9yZWxheGVkKGlycXMtPmljZmdy
WzFdLCBiYXNlICsgNCk7DQo+ICsNCj4gKyAgICBiYXNlID0gR0lDRCArIEdFVF9TUElfUkVHX09G
RlNFVChJUFJJT1JJVFlSLCBpc19lc3BpKTsNCj4gKyAgICBiYXNlICs9IGkgKiBzaXplb2YoaXJx
cy0+aXByaW9yaXR5cik7DQo+ICsgICAgZm9yICggaXJxID0gMDsgaXJxIDwgQVJSQVlfU0laRShp
cnFzLT5pcHJpb3JpdHlyKTsgaXJxKysgKQ0KPiArICAgICAgICB3cml0ZWxfcmVsYXhlZChpcnFz
LT5pcHJpb3JpdHlyW2lycV0sIGJhc2UgKyA0ICogaXJxKTsNCj4gK30NCj4gKw0KPiArc3RhdGlj
IHZvaWQgZ2ljdjNfcmVzdG9yZV9zcGlfaXJxX3JvdXRpbmcoc3RydWN0IGRpc3RfaXJxX2Jsb2Nr
ICppcnFzLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgaW50IGksIGJvb2wgaXNfZXNwaSkNCj4gK3sNCj4gKyAgICB2b2lkIF9faW9tZW0gKmJh
c2U7DQo+ICsgICAgdW5zaWduZWQgaW50IGlycTsNCj4gKw0KPiArICAgIGJhc2UgPSBHSUNEICsg
R0VUX1NQSV9SRUdfT0ZGU0VUKElST1VURVIsIGlzX2VzcGkpOw0KPiArICAgIGJhc2UgKz0gaSAq
IHNpemVvZihpcnFzLT5pcm91dGVyKTsNCj4gKyAgICBmb3IgKCBpcnEgPSAwOyBpcnEgPCBBUlJB
WV9TSVpFKGlycXMtPmlyb3V0ZXIpOyBpcnErKyApDQo+ICsgICAgICAgIHdyaXRlcV9yZWxheGVk
X25vbl9hdG9taWMoaXJxcy0+aXJvdXRlcltpcnFdLCBiYXNlICsgOCAqIGlycSk7DQo+ICt9DQo+
ICsNCj4gK3N0YXRpYyB2b2lkIGdpY3YzX3Jlc3RvcmVfc3BpX2lycV9zdGF0ZShzdHJ1Y3QgZGlz
dF9pcnFfYmxvY2sgKmlycXMsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgaW50IGksIGJvb2wgaXNfZXNwaSkNCj4gK3sNCj4gKyAgICB2b2lkIF9f
aW9tZW0gKmJhc2U7DQo+ICsNCj4gKyAgICBiYXNlID0gR0lDRCArIEdFVF9TUElfUkVHX09GRlNF
VChJQ0VOQUJMRVIsIGlzX2VzcGkpICsgaSAqIDQ7DQo+ICsgICAgd3JpdGVsX3JlbGF4ZWQoR0VO
TUFTSygzMSwgMCksIGJhc2UpOw0KPiArDQo+ICsgICAgYmFzZSA9IEdJQ0QgKyBHRVRfU1BJX1JF
R19PRkZTRVQoSVNFTkFCTEVSLCBpc19lc3BpKTsNCj4gKyAgICBiYXNlICs9IGkgKiBzaXplb2Yo
aXJxcy0+aXNlbmFibGVyKTsNCj4gKyAgICB3cml0ZWxfcmVsYXhlZChpcnFzLT5pc2VuYWJsZXIs
IGJhc2UpOw0KPiArDQo+ICsgICAgYmFzZSA9IEdJQ0QgKyBHRVRfU1BJX1JFR19PRkZTRVQoSUNB
Q1RJVkVSLCBpc19lc3BpKSArIGkgKiA0Ow0KPiArICAgIHdyaXRlbF9yZWxheGVkKEdFTk1BU0so
MzEsIDApLCBiYXNlKTsNCj4gKw0KPiArICAgIGJhc2UgPSBHSUNEICsgR0VUX1NQSV9SRUdfT0ZG
U0VUKElTQUNUSVZFUiwgaXNfZXNwaSk7DQo+ICsgICAgYmFzZSArPSBpICogc2l6ZW9mKGlycXMt
PmlzYWN0aXZlcik7DQo+ICsgICAgd3JpdGVsX3JlbGF4ZWQoaXJxcy0+aXNhY3RpdmVyLCBiYXNl
KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludCBnaWN2M19zdXNwZW5kKHZvaWQpDQo+ICt7DQo+
ICsgICAgdW5zaWduZWQgaW50IGk7DQo+ICsgICAgdm9pZCBfX2lvbWVtICpiYXNlOw0KPiArICAg
IGludCByZXQ7DQo+ICsgICAgc3RydWN0IHJlZGlzdF9jdHggKnJkaXN0ID0gJmdpY3YzX2N0eC5y
ZGlzdDsNCj4gKw0KPiArICAgIC8qIFNhdmUgR0lDQyBjb25maWd1cmF0aW9uICovDQo+ICsgICAg
Z2ljdjNfY3R4LmNwdS5jdGxyICAgICA9IFJFQURfU1lTUkVHKElDQ19DVExSX0VMMSk7DQo+ICsg
ICAgZ2ljdjNfY3R4LmNwdS5wbXIgICAgICA9IFJFQURfU1lTUkVHKElDQ19QTVJfRUwxKTsNCj4g
KyAgICBnaWN2M19jdHguY3B1LmJwciAgICAgID0gUkVBRF9TWVNSRUcoSUNDX0JQUjFfRUwxKTsN
Cj4gKyAgICBnaWN2M19jdHguY3B1LnNyZV9lbDIgID0gUkVBRF9TWVNSRUcoSUNDX1NSRV9FTDIp
Ow0KPiArICAgIGdpY3YzX2N0eC5jcHUuZ3JwZW4gICAgPSBSRUFEX1NZU1JFRyhJQ0NfSUdSUEVO
MV9FTDEpOw0KPiArDQo+ICsgICAgZ2ljdjNfZGlzYWJsZV9pbnRlcmZhY2UoKTsNCg0KU2hvdWxk
IHdlIGNoZWNrIHRoYXQgSUNDX0FQMVI8bj5fRUwxID09IDAgYmVmb3JlIGNvbnRpbnVpbmcgb3Vy
DQpzdXNwZW5kPyBMaWtlIHdlIGRvIGluIHRoZSBHSUN2Mj8NCg0KPiArDQo+ICsgICAgcmV0ID0g
Z2ljdjNfZGlzYWJsZV9yZWRpc3QoKTsNCj4gKyAgICBpZiAoIHJldCApDQo+ICsgICAgICAgIGdv
dG8gb3V0X2VuYWJsZV9pZmFjZTsNCj4gKw0KPiArICAgIC8qIFNhdmUgR0lDUiBjb25maWd1cmF0
aW9uICovDQo+ICsgICAgZ2ljdjNfcmVkaXN0X3dhaXRfZm9yX3J3cCgpOw0KPiArDQo+ICsgICAg
YmFzZSA9IEdJQ0RfUkRJU1RfQkFTRTsNCj4gKw0KPiArICAgIHJkaXN0LT5jdGxyID0gcmVhZGxf
cmVsYXhlZChiYXNlICsgR0lDUl9DVExSKTsNCj4gKw0KPiArICAgIHJkaXN0LT5wcm9wYmFzZSA9
IHJlYWRxX3JlbGF4ZWQoYmFzZSArIEdJQ1JfUFJPUEJBU0VSKTsNCj4gKyAgICByZGlzdC0+cGVu
ZGJhc2UgPSByZWFkcV9yZWxheGVkKGJhc2UgKyBHSUNSX1BFTkRCQVNFUik7DQo+ICsNCj4gKyAg
ICBiYXNlID0gR0lDRF9SRElTVF9TR0lfQkFTRTsNCj4gKw0KPiArICAgIC8qIFNhdmUgcHJpb3Jp
dHkgb24gUFBJIGFuZCBTR0kgaW50ZXJydXB0cyAqLw0KPiArICAgIGZvciAoIGkgPSAwOyBpIDwg
TlJfR0lDX0xPQ0FMX0lSUVMgLyA0OyBpKysgKQ0KPiArICAgICAgICByZGlzdC0+aXByaW9yaXR5
cltpXSA9IHJlYWRsX3JlbGF4ZWQoYmFzZSArIEdJQ1JfSVBSSU9SSVRZUjAgKyA0ICogaSk7DQo+
ICsNCj4gKyAgICByZGlzdC0+aXNhY3RpdmVyID0gcmVhZGxfcmVsYXhlZChiYXNlICsgR0lDUl9J
U0FDVElWRVIwKTsNCj4gKyAgICByZGlzdC0+aXNlbmFibGVyID0gcmVhZGxfcmVsYXhlZChiYXNl
ICsgR0lDUl9JU0VOQUJMRVIwKTsNCj4gKyAgICByZGlzdC0+aWdyb3VwciAgID0gcmVhZGxfcmVs
YXhlZChiYXNlICsgR0lDUl9JR1JPVVBSMCk7DQo+ICsgICAgcmRpc3QtPmljZmdyICAgICA9IHJl
YWRsX3JlbGF4ZWQoYmFzZSArIEdJQ1JfSUNGR1IxKTsNCj4gKw0KPiArICAgIC8qIFNhdmUgR0lD
RCBjb25maWd1cmF0aW9uICovDQo+ICsgICAgZ2ljdjNfZGlzdF93YWl0X2Zvcl9yd3AoKTsNCj4g
KyAgICBnaWN2M19jdHguZGlzdC5jdGxyID0gcmVhZGxfcmVsYXhlZChHSUNEICsgR0lDRF9DVExS
KTsNCj4gKw0KPiArICAgIGZvciAoIGkgPSAxOyBpIDwgRElWX1JPVU5EX1VQKGdpY3YzX2luZm8u
bnJfbGluZXMsIDMyKTsgaSsrICkNCj4gKyAgICAgICAgZ2ljdjNfc3RvcmVfc3BpX2lycV9ibG9j
ayhnaWN2M19jdHguZGlzdC5pcnFzICsgaSAtIDEsIGksIGZhbHNlKTsNCj4gKw0KPiArI2lmZGVm
IENPTkZJR19HSUNWM19FU1BJDQo+ICsgICAgZm9yICggaSA9IDA7IGkgPCBnaWNfbnVtYmVyX2Vz
cGlzKCkgLyAzMjsgaSsrICkNCj4gKyAgICAgICAgZ2ljdjNfc3RvcmVfc3BpX2lycV9ibG9jayhn
aWN2M19jdHguZGlzdC5lc3BpX2lycXMgKyBpLCBpLCB0cnVlKTsNCj4gKyNlbmRpZg0KPiArDQo+
ICsgICAgcmV0dXJuIDA7DQo+ICsNCj4gKyBvdXRfZW5hYmxlX2lmYWNlOg0KPiArICAgIGdpY3Yz
X2h5cF9lbmFibGUodHJ1ZSk7DQo+ICsgICAgV1JJVEVfU1lTUkVHKGdpY3YzX2N0eC5jcHUuZ3Jw
ZW4sIElDQ19JR1JQRU4xX0VMMSk7DQo+ICsgICAgaXNiKCk7DQo+ICsNCj4gKyAgICByZXR1cm4g
cmV0Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBnaWN2M19yZXN1bWUodm9pZCkNCj4gK3sN
Cj4gKyAgICBpbnQgcmV0Ow0KPiArICAgIHVuc2lnbmVkIGludCBpOw0KPiArICAgIHVpbnQzMl90
IGRpc3RfY3RscjsNCj4gKyAgICB2b2lkIF9faW9tZW0gKmJhc2U7DQo+ICsgICAgc3RydWN0IHJl
ZGlzdF9jdHggKnJkaXN0ID0gJmdpY3YzX2N0eC5yZGlzdDsNCj4gKw0KPiArICAgIHdyaXRlbF9y
ZWxheGVkKDAsIEdJQ0QgKyBHSUNEX0NUTFIpOw0KPiArDQo+ICsgICAgZm9yICggaSA9IE5SX0dJ
Q19MT0NBTF9JUlFTOyBpIDwgZ2ljdjNfaW5mby5ucl9saW5lczsgaSArPSAzMiApDQo+ICsgICAg
ICAgIHdyaXRlbF9yZWxheGVkKEdFTk1BU0soMzEsIDApLCBHSUNEICsgR0lDRF9JR1JPVVBSICsg
KGkgLyAzMikgKiA0KTsNCj4gKw0KPiArICAgIGZvciAoIGkgPSAxOyBpIDwgRElWX1JPVU5EX1VQ
KGdpY3YzX2luZm8ubnJfbGluZXMsIDMyKTsgaSsrICkNCj4gKyAgICAgICAgZ2ljdjNfcmVzdG9y
ZV9zcGlfaXJxX2NvbmZpZyhnaWN2M19jdHguZGlzdC5pcnFzICsgaSAtIDEsIGksIGZhbHNlKTsN
Cj4gKw0KPiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+ICsgICAgZm9yICggaSA9IDA7IGkg
PCBnaWNfbnVtYmVyX2VzcGlzKCkgLyAzMjsgaSsrICkNCj4gKyAgICB7DQo+ICsgICAgICAgIHdy
aXRlbF9yZWxheGVkKEdFTk1BU0soMzEsIDApLCBHSUNEICsgR0lDRF9JR1JPVVBSbkUgKyBpICog
NCk7DQo+ICsgICAgICAgIGdpY3YzX3Jlc3RvcmVfc3BpX2lycV9jb25maWcoZ2ljdjNfY3R4LmRp
c3QuZXNwaV9pcnFzICsgaSwgaSwgdHJ1ZSk7DQo+ICsgICAgfQ0KPiArI2VuZGlmDQo+ICsNCj4g
KyAgICBkaXN0X2N0bHIgPSBnaWN2M19jdHguZGlzdC5jdGxyICYgR0lDRF9DVExSX0FSRV9OUzsN
Cj4gKyAgICBpZiAoIGRpc3RfY3RsciApDQo+ICsgICAgew0KPiArICAgICAgICB3cml0ZWxfcmVs
YXhlZChkaXN0X2N0bHIsIEdJQ0QgKyBHSUNEX0NUTFIpOw0KPiArICAgICAgICBnaWN2M19kaXN0
X3dhaXRfZm9yX3J3cCgpOw0KPiArDQo+ICsgICAgICAgIGZvciAoIGkgPSAxOyBpIDwgRElWX1JP
VU5EX1VQKGdpY3YzX2luZm8ubnJfbGluZXMsIDMyKTsgaSsrICkNCj4gKyAgICAgICAgICAgIGdp
Y3YzX3Jlc3RvcmVfc3BpX2lycV9yb3V0aW5nKGdpY3YzX2N0eC5kaXN0LmlycXMgKyBpIC0gMSwg
aSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsN
Cg0KSSB0aGluayB3ZSBoYXZlIGFuIGlzc3VlIGluIHRoaXMgbG9vcCBhcyB3ZSBhcmUgYWNjZXNz
aW5nIEdJQ0RfSVJPVVRFUjwxMDIw4oCmMTAyMz4NCmFuZCBHSUNEX0lQUklPUklUWVIyNTUsIHdo
aWxlIHRoZSBzcGVjcyBzYXlzIDEwMjDigKYxMDIzIGFyZSByZXNlcnZlZCBhbmQNCkdJQ0RfSVBS
SU9SSVRZUjxuPiBnb2VzIGZyb20gMCB0byAyNTQuIGhlcmUgYW5kIGluIHRoZSBnaWN2M19zdXNw
ZW5kKCkNCg0KQ2hlZXJzLA0KTHVjYQ0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed May 13 16:30:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 16:30:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308299.1579806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNCTz-0008NG-81; Wed, 13 May 2026 16:30:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308299.1579806; Wed, 13 May 2026 16:30:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNCTz-0008N9-3y; Wed, 13 May 2026 16:30:51 +0000
Received: by outflank-mailman (input) for mailman id 1308299;
 Wed, 13 May 2026 16:30:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wNCTy-0008N3-8h
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 16:30:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNCTx-00Aw6h-Lf
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 18:30:49 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a04a729-5cb7-0a2a0a5109dd-0a2a4508caae-30
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 18:30:49 +0200
Received: from [52.101.46.61]
 (helo=CO1PR03CU002.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a04a737-63b5-0a2a45080019-34652e3d8fe9-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 18:30:48 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH7PR03MB7004.namprd03.prod.outlook.com (2603:10b6:510:12f::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Wed, 13 May
 2026 16:30:40 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 16:30:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PHAgzclBOy0KiY8/NskGUTS6+l8ybIEgcIR0BG73MZ0HvisoQZ5at28cpW5jems5iAfgJ+RWhPRd7MbRfCTeXu+eU3kD672Hp94HhUXEuZ/nIj0ip0m/wiNGwK2n2+UAM9jhD9YBF5E/2f+tnjHpfnTX+Ks+5ohPL7dPEtvIiAxOLaPY7NS15eIgKf7EIwOM0tjxoEjYIYEcBUjyjVDWTgVZ2lQNGDjefP/Wb2FzlmmqVx3PWC8+XWz8ZqpLaFN1Z12swpCidEgmM0pAdF2Kgi4Y4B/5r3LBTcwvP1EDaCaUraPjJSZ46W/P19i1dekuIUNW22Sp7a19E+EobA1W0g==
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=XyPWBg0WNkDbUmYtGEKxrmSMSV4aYAy/myxnGMI0bIQ=;
 b=cSN7DH2JVmprOcOSChUTw+c5c3WZ7qPi93x6tIIM7bV1dhbp8NLUN1HLa39d8mJofye+2R6LHIE/3Q71M85hsQ9HUu/TX356jqS0f62zh1YkIwNhpP8ycQ1VKEeDtgpaLyBc+kng5j5PPLBqPJqssYf3rdWSTsKPi67iANTNa4Wtjpr6qZxuu7lPZQjx7486aLQv6NgbU7GpFm0tVj3PW/1r1Y87s5S7179m6T4V94Z8i3gEV9D9IvohR4FYcucoban+JsRw0tjhMb5+8+q8YHwi+bJYGQ5UX6MGpyao0Ct4npJzh/ZEpoXhF4HJLA0OlHDRIkr4wwIDaNlPat+kag==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XyPWBg0WNkDbUmYtGEKxrmSMSV4aYAy/myxnGMI0bIQ=;
 b=qHRslhtKNopAGB2f3sVWQ5nqAToNo2p00NUYxX1b83Z1A3Zy2wvei3EXQfSuGWAdiSwa0SZWzEHw4yWb/hN/aNCNi3Lw5KukvSA8G1eq0di69gu58BJ+HKv0FyEh9pfLS0NT45nlcXnVVc6tipjr+2pUm/T8h8y5V6E6OPi3a1o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c82c5255-f2df-4822-b03a-c90ad3759e9a@citrix.com>
Date: Wed, 13 May 2026 17:30:36 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86/shim: adjust for Misra C:2012 rule 20.12
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ed512e2e-a3ff-4fe3-8847-80985722c4d3@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <ed512e2e-a3ff-4fe3-8847-80985722c4d3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0187.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a::31) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH7PR03MB7004:EE_
X-MS-Office365-Filtering-Correlation-Id: a6b5019e-b0ef-4bfc-5a6a-08deb10cf8bc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	Y96Bnq40mPg97ufRTG7RszDIlS14oYifS0TDFRamE/vBt1bReG4p9zBSEf81RcdEp5vAP2lco+9sq+oi9Lm4Uu8RCGsO20xE2T4klHHuXgzYj45Aa4d8nmvyGyu427P/Iw4Y38RJYaaAbG+FDvGM50+bQdNSnkfLb5PnmB8oLNTMIqoX4RAl1t1W61B4pZCYDC6FdnfezBQPwgUL21oxq/XY0RRTUbS/imarYwqanijoahBYD6dJe/BYdI30z/KogHWsQL9VB9ZgbICimrX2l/nAESqY45OlxmRn5ozr/+C2bBtAFDb6pQj9QRIjn5UYjgy6WspqnQj+SVRtnuSQu5lleagYxzBd+f4ehYkcZ0ZqBkiSrfwSKgt/HeqzNs7CfDrQ3s8pTUenbuJTXdIyy4MEtPRDiMEnnBmwLMhgyHGqiHdHrLZuivBLI5ybu4rdVe9nkDuKM0n4i06D0qlpDoIPMEJjFSFqU/RudPAGmQL4WkzpbUrQ7UFYiO9f0GOaCVAi/lAe6Z1BVyjGXQcc81/ZSGuH5ZnWmsMEu15E0AOdtoH492DWB74GObnVCiDbo+UK/Fj/WtjdTGTRBMZvSZqXwP8FQ4+YGMTyckYLPm4g7fPsI/2Y0cMad3tE4uXQdN8CGaH+S+aNEuuqx/n1/Axp0AMqAFf1lVOAphLHfT5dJGz4jyrxfNkq2/BJtNelWlxXBb1b7ugYLgwAysGSSg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UzBTT0ZmVDk1UUsxZytWNi9sak9MZ0o5eDdGWFNtZnFTcFBTcTJmTjZYbTJK?=
 =?utf-8?B?YW1pZDRFRzNvUDg5MjV4VFpIT3ovUW1wN1k2eE0ydFVSMzBUbEM0QmpIdmlj?=
 =?utf-8?B?TlVkNEE0RWpZYVk4SHI4dit4VFZVS1lYRzU2Y1ZENCtjSEtuWlgvOW80MVl0?=
 =?utf-8?B?SzI0RjJqTmx4UnhrVlJLaVdvdW5yWjdXeXFOOWV4bE0rVDBWdVhSamozVHp4?=
 =?utf-8?B?ZkQzZUdyNmRhNFlDTGZvOTE4bysxRmpYWUJxVWZUSjZsZXk4WDcvZmlLUHh6?=
 =?utf-8?B?NFh1Zlc3eHErOEFNdHEvSEdHTDJBMzRzeWNrVGZ4OXlmQWMrYzFJV0JjS3Nw?=
 =?utf-8?B?N1JjNit2UEV1WDZlUzNXTUpFZFpEbEFpYithUDFwQktISzM0NnJ3NVBsNWdR?=
 =?utf-8?B?QTgvMk5MK2dzdFpWMnkyVG1kSmJaMnJBUnovZ045ZnVwZ0h6NDMvWFZrNGxD?=
 =?utf-8?B?d01wZ0F2WUJ1OEJuNTQ5K2s4akNJaTRyWkpWK2VZcHR6ZjZpbVBTdmg3Nzg3?=
 =?utf-8?B?ZkVoZGVMRGx2bWgrNVRFUVBQTTBDREdEZU1vNVE5VVVxNFFaQTA3QXgvYlpk?=
 =?utf-8?B?ZU5hdk0zZ1ZwSFBLSEJUS0s3ZlhxSkVEZmFwb0VUdE0yYXA4OEVPMVlkVWwv?=
 =?utf-8?B?bngwd2hCTlkvYXpPWDVUMnRJUUpiRlpaTGZZWkpKUkxqQlJOUk5qSlN2T0dt?=
 =?utf-8?B?dXQrWGFUV1lkNHRYOE1zeGFvcUgrUzN4bExsai9SaHFUcmRSZjhBOGZQOVNP?=
 =?utf-8?B?Qk9Kbm9zZ3JRclBKR2NHSi9lSStZQS9HaGdNVUNreTlRTWxkT1lSeVoreTRu?=
 =?utf-8?B?VldnSGxFbVgxV0cxN3gza1BkaTJEeDRWd205MDdVNGM3Tk90aXI0M08wcG1O?=
 =?utf-8?B?aExIVVFyV0xZVmc3Ri9PZ2FQcWRHSis2RVlyQWVkVTl0eHdtYVljNXlhMWxY?=
 =?utf-8?B?cldPaTZHMFRkVkNNQVczb2duejZmY29ZMVlGenZLczBVdmRVNXh0OWpiNzJI?=
 =?utf-8?B?dnh1cWh2WDF2SmdHRWZ6YTlwMXNDVWlMbXRLUHBoVHFZV0drMkhNRi83Rm9r?=
 =?utf-8?B?WjdPME9CQW9ZeER6ZzdJMFkzMUpTYnhGdmU5dW9tOVZ3TmN0L0dnaElIaklh?=
 =?utf-8?B?bElkTHJ5MjNQWHBsN0FQSXVMMGtXWlQxSnNsZE10bjV4SGU5b0tKTGZDaXU2?=
 =?utf-8?B?dThIL2VpalAvSGhFSUorWjlQb295MFNFYnJDTFJSSHRIc09xT21iRE9qN0F3?=
 =?utf-8?B?MlFuR2hneXNUanRCWDRiNmNMbmVvK0ZtdFMyYjFZZkZvYmZhNzhONlB4L2h4?=
 =?utf-8?B?a0djTERTb1AxL25zMGxyNnhYdmNZVDZLbDBwU08rREtic0dDTmlzRG42NzRB?=
 =?utf-8?B?ZWh6Y2YxSGVkZDhob2NpbnptUHBrZXcvRHJzL3lIZ25HZ2ZFelUrZGI1cTR2?=
 =?utf-8?B?RkRqTTZXeC9lRSt0UFVqVDlMNUJwNmJnTTVWOURuUHg2SnBEYlNmdWc5YUdm?=
 =?utf-8?B?dU9BSU9iZCtiTCtVU2NjMTY5ZnJoWThpN3NvTCt3NlZqWXJ6Qi9Pd0d0d3VD?=
 =?utf-8?B?R0FlQXlTOXEyUU5kQ2pWdzF2ei9XZlNhNFNQS3R6QnlRUXZoN2FEMmdkcHRV?=
 =?utf-8?B?SjV5cTZxWHpZRzR6R1ljZlI4M2hYbFN0UzMvNmlnRGtEb2JZMnRuaG9FR2ZB?=
 =?utf-8?B?L2xGZFp5K3ZHTmtobmNGWkZ0NnZ5T1ZmTVdXNFdIWmRJaFl0RGMxNW41YVdw?=
 =?utf-8?B?Q3VHcnhtL0RQVlNkZEZrUW9oSG4xdUUzWHFOSTBjUTVhazlINk9EUTkxYVc5?=
 =?utf-8?B?MGdCQWFQZGt4Q0JUaU1pV2pBOVJyU2prSEVzZGRoYWkxc3J6WU1jeWt2ekpH?=
 =?utf-8?B?NmwwL05wa0wwRG1GdFhrdlNaZ2Rlbm94dUFKcno1TkE2a09HQk9CV25mTHov?=
 =?utf-8?B?V01Oa3YxSUpUZm9hS0pOTklxMFN0bFFZUVFOY3R3WjJwOCtFUzdrMzBCdDFr?=
 =?utf-8?B?MEZkL0g5bEUyTitYZXVscjZ1QnN5ei9WWWp1TGswMFdKTm5tU0tpL1puTHlQ?=
 =?utf-8?B?dzBySjJyYjA2MnVTOWIwaGJqdTRWcDhWUmE2bzc4L215M2podjVkZmZSN3Rz?=
 =?utf-8?B?TVUrRnRFd010ak4wM1VmTkpCeEE0TVFoaDVYbW1zY2g0aDMzZlhoT1Q5RzBs?=
 =?utf-8?B?cjVaNW5oZUwxVW9vVTN4bWdFdDhzV3UwWlBmdzBKT0thcnBRM1NlYUNFK1hl?=
 =?utf-8?B?WFlhR0sxYVFFcWUwYllwaDdRbFdSRUJOcEJrSmo5d01mYUF5VjBYcnhzMVJ5?=
 =?utf-8?B?TWFOWEg3M0hnR25Hd1A2MDVVbnZtaGJBRGxhaC9MNDdwMkRIaWdzTFNxeUZh?=
 =?utf-8?Q?t5m/0ZwR8w2lqiG4=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a6b5019e-b0ef-4bfc-5a6a-08deb10cf8bc
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 16:30:40.4744
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: e+CRFR5XfCoMVmR4G8V+e9eKtbiGK/3aQuZcFfpu+DCDCCsgBhbP5b1CqJpraNUPcwpYY6Z7cRfEcEsbRQiGMxJQhSxtUcZWp2kjGlRQqy4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB7004
X-purgate-ID: tlsNG-c1860d/1778689849-B596DDB1-2174A34C/0/0
X-purgate-type: clean
X-purgate-size: 1068

On 13/05/2026 4:52 pm, Jan Beulich wrote:
> ... ("A macro parameter used as an operand to the `#' or `##' operators,
> which is itself subject to further macro replacement, shall only be used
> as an operand to these operators"). Move the HVM_PARAM_ prefixes into the
> macro body, to use ## on the 2nd use (each) of the macro parameter.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> I understand that this "absorbing" of prefixes isn't liked by some people,
> so I'm all ears towards alternative suggestions.
>
> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14354119193
> (also covering the 17.5 patch)

Yeah, I'm a firm -1 to absorbing the prefixes.  This is simple
obfuscation just to hide it from Eclair's eyes.

The ARM folks fixed this by using a SAF-6 annotation.  e.g. 195d754170891

Although honestly, the more I think about this, the more I think we
should just globally deviate.  I don't consider the concept having a
well-named constant be used both as a value and a string a confusing thing.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 13 17:01:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 17:01:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308319.1579834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNCxM-0004cm-HV; Wed, 13 May 2026 17:01:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308319.1579834; Wed, 13 May 2026 17:01:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNCxM-0004cf-EX; Wed, 13 May 2026 17:01:12 +0000
Received: by outflank-mailman (input) for mailman id 1308319;
 Wed, 13 May 2026 17:01:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wNCxK-0004cZ-V6
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 17:01:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNCxK-00B0Jj-As
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 19:01:10 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a04ae45-2eae-0a2a0a5409dd-0a2a45018b6a-46
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 19:01:10 +0200
Received: from [40.93.201.22]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a04ae54-c1f2-0a2a45010019-285dc91695e0-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 19:01:09 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN8PR03MB4930.namprd03.prod.outlook.com (2603:10b6:408:de::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 17:00:57 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 17:00:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dXi7A0r5MUzMK43E95ZWVyd/QtwN/GySOB6SeqRDlTU9PCAAWvb/524B3L8tSQf4H2BTVAoe8oN5ixkPFWis5uoaIT80UF8USrhPL3Xcezcdn71XYa4i8ZrbazbvJAPhVn9w5Cu1ep1aTCzlbUqlw9w/UFLlWkNlEpsd+pEo8ycySQOEsIgjdvuqLd1b0Bweyj+DoGdu7h0pCO1UZpr9WIrk0OiVRSsNiUofiDffpvekw7J8OaXJs0bMHijJL5zUN2w/7c8XaQ4DFJCG2XQ5tiX7lxmKriPcK6nY+6HcHePPeWig8wBqhEHImTs3eOgbpYktjbBM1viWvaKePox94Q==
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=dVl+JSfnPJTZxlVz3PTJaI37SsYB2is65o/9TKu6yWA=;
 b=SH7EFYtovZ8IWjaVr0ncHgDo2xn8L+r8lQeP2VL1066tNXGSSdZBpDF7UYlLYMre832TyD2W39PdVjaFTt/dOO44n4tmHBohcUlvz6BKc1gASwlOAwfOIVpU1K1cOY0mr6yJhxYU8VeLsxlB4PiMnZZIRL8xUpQ1Xl/wQFMLD/r8elU/coNglsi5x0hyv7LWb7Rdz0SBD6XTcLGro3tFQ6GjZFxQPKUCt+j8rXY6OZvqovxvXdICRME++2/SmbXcc8C9pKIshjfXrPcDpmjAt6lc+a768GoQm+LNK/X6aOQl5Avrdx1tMBB6igV9PmH97TOIkoRNaMmljU/2/LMB7Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dVl+JSfnPJTZxlVz3PTJaI37SsYB2is65o/9TKu6yWA=;
 b=qkiVGvp8++/gHQqQfpd5e7qvZ4095gSrtF/VR5I7xo5fda+lhcZWAkIO7riuiR6RMM4msiU/wvOO6HX2DcsPzKWsKHjMH9X8k0/Bokptbe9ocCIq/Mq3Y91kQmoZAy+KlF+FiYIw3+PKcajPR/VPaw1Oxt8MCoWRsJKb/bef/gM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <8ef5af19-7660-4ee9-9cf6-094c744abd0c@citrix.com>
Date: Wed, 13 May 2026 18:00:54 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <bc9ed10d-5ae6-4d9d-af90-648931731a52@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <bc9ed10d-5ae6-4d9d-af90-648931731a52@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P123CA0067.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1::31) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BN8PR03MB4930:EE_
X-MS-Office365-Filtering-Correlation-Id: d8dfca04-cc9b-4a6d-4ba5-08deb11133d6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|18002099003|56012099003|22082099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	XEhUD6J/y6mkUpD4A34EDfKWJYbjqA1EzGu9SbEPnPFnre4WtSSicwOLZ1DMAR6iAWOO1uZrd6QUMsRGgY4gAXtox3eKvVFcT1ixJHHHOOEP6v8lJpJpVM+rrbHPaZqd6fbTH5pXt9whBDg8WIMvCPYCBM8N0Kc7e75xxBmKPnenbR1YRMpfUmOH7LIE8AlyCc1Rubi5OPH7nxRXuTQWo8QhzHxquDOqD/omIaJ20wEjeiYlIHFnAhcUuwhUYm7tXVDlZXp4H3ZFoFGYn9/J2t1SHloiuqvweSEgJK9TTY5JTPwAbF3yKRBtLFvF/3jU2kvFy/Kzid2E9zC39djEOz0/ofQK+FYb/t/3G/pBfz+X03hxSE869sNozsysSC/zEH1I66jlj4/zU2jLutRxIWDfK6BnWl+b3LNfALn9Nd/+CNLcpBD6sCM7ksxuRwdrDMy1zbdV00stBBo+tDC0zaSuIWdxSGBts8JfvbVQUiHpGMAFoiay40AxQW7ZUuDkABxxHcUCXbgKkYzZuVr86LyuvpWkHaRIx5d8YpRrN8ayV3bkm+KpEPbCQQsPltktaOKoWbW59/Hz/+c8WANkXJvsvtEHmPsAZh7GQ6Cqj3kQ5KjiEQ4zpU3TWbJlhag2m2FlzBF7BsfFUHaLpgt8XSWEERW772kZjQV/cH5Q4fI+lf8NJ5SbCq82bWnA8M6U5FWD96MTfoOrBbfBXZAQ5g==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(18002099003)(56012099003)(22082099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YVczWDd1ZkFHd1NVQXdJZ0g4dVhQZzdlS0hIVkhDUW9DTzVXeThVcFA4dFgz?=
 =?utf-8?B?Wk5NT1Mzc2xFTUNkbEx6Tmp1eHN1UEFGODRaYWg4bXVEdzVHVHRnOUFWTHFj?=
 =?utf-8?B?UnVYVTd3Q0k0NGZVd3AwR3RLYlpBamgyMlpkTFk1L3Y1STRUZkJuWmVidmZE?=
 =?utf-8?B?MDFZQ0hPZjJpR09Ob2dQaFdIZUljWEl3YTNMZ1A2dUg1S0RCWnFlOW4zVkgr?=
 =?utf-8?B?S3FQUkNTTlplcTdHQ0hieWJRRjFPR01VaVBlcUtzUlpZRGUvZkFwalNzSnM0?=
 =?utf-8?B?dWRNYkJoOGtYSzhZekMyOWVjQXh0b08raVl1Qnl3bnRCYXJobGRVQmxDeER0?=
 =?utf-8?B?c21Ldng2dXFYaEhhdDZtc25nUjBoL0pydHA0SDVkUkVONlZQSlBjK0wxdTVm?=
 =?utf-8?B?TFlCaUw4U1hPSjFPMWhmVU9abXBDVEJPenJiN3hpUDRpMmxTdFVwaVN2alVs?=
 =?utf-8?B?N1VWTzBFR3hnSUh5TjFlWlIzdUdqSlYzWk9iYzNodGc1MjNUNmVKL0RhVS80?=
 =?utf-8?B?NVJLTC9kSjFjU0RuVTYraXBaTUFmMmltaVlhZU5QZkRSQnpnaFVzYWJDNEFy?=
 =?utf-8?B?a2MrSHN4UmNOTWJvUVRLcW9UYWFnQXVCQ1lTdDdsQU5LOTBzS3BPdDJEZlNz?=
 =?utf-8?B?QzgycHdRemsrZWltckJvRU1mWENlZFkxMVZ0SXNkZFhoU1NzOWpnQmlINzJu?=
 =?utf-8?B?N3pSeHF6cVI5Q0JtcU9JQUpUbXkrVUc3N0lteTNLV043cXh0aVcxT091Ymc1?=
 =?utf-8?B?L1F2bVZ0TGJpRFRldlhEb2xPOUZWQlpJRFByR043N2tNYVlFU25KeWxWajBD?=
 =?utf-8?B?dFAzd1ZNSVo5cEdFSUxwZDVoZXVoeTNYeS9wTUZLMlNlUGY4TS9EMStRWUJH?=
 =?utf-8?B?VE1UbUwwUTdsWXJJQ2ViT1pHaHBpZlBJMHgzblNVdnBzRktxNzl2S1p5Uk9o?=
 =?utf-8?B?QVhPenpUeENzSGpZdzN6NHpncTVYSnVud09nRnJCbXBiT3hsMEo5ZXlmMXlW?=
 =?utf-8?B?UEtuekdiT2lTdDNvbTkxNndXbFYraURnQ1pIcnZ4c2xLZnpKZlZaVkZmaDdm?=
 =?utf-8?B?Tk1MRXYxTUhoZHBTdDAyR1hFRWZxNDFlcmZiMVlvK2JvWE4xQmJpVDR4cUg2?=
 =?utf-8?B?YTFBZk1aaVNnaXl3cG4zS0ZmWDVqYm10VUtoRjZJNzc3Q3FNSDBhVDVtNVhl?=
 =?utf-8?B?dW15cis5NFNUUy91cXcxeTRMMEdzUXo5Y2dnaTNWVjQwUWkrS2VDTksyZml4?=
 =?utf-8?B?VWEwZklnMS9EZ3hjUDVrNms4WkNDQWJsbjJab3R3eHRyMVdoMTdNQk5HNnha?=
 =?utf-8?B?WGF2WVFOQlFNTWU2M0dSNXZTeUMwWGo0akc1WTlGZDVyNThZaHF5UlcyVHlw?=
 =?utf-8?B?aHg2RFVDQU5KbTBmQzBQMngzR2hSTTBuSUpCRDhNdC9iRUlWNFhBN0w4YXQ1?=
 =?utf-8?B?TG5VNUJzcm1xZC9iYWpaR1Rrdjh4SThVQmhJUzV1UlBVemZrUGNuNDJ5R0ZB?=
 =?utf-8?B?TzlNbnBSWmd5MXNwYkhnOXA0cm9LNUxiY1dUU0xSRXYvY1B0YUU4TDdrSVlY?=
 =?utf-8?B?UWlDTFRHd3hMNks4L1AyWDJJQWduWEpiQ2VaNEVvTVVKZVQ5b1VTRFo0Wm1h?=
 =?utf-8?B?TWx1dVljZkFSaCtIWnZpRFVzNURkTm5DejVIT0pRODJVaXVXOWNxTkVxQ3Yr?=
 =?utf-8?B?d3RsUzZqVk1xN0pyeGg1djEyR1lVSFZOVGg0L1EzbUFSMk1IUFNpYUt6MVpo?=
 =?utf-8?B?Qk5odlp6eS9uWGREVU5DQjRlRmFMcTZrZEFqNXhnVjcrYTUwRG5CM3ZrMnIz?=
 =?utf-8?B?SHBTNHhHNHJpVENoK25FMzdrb1h3WndoYVYrV3NSRXF0akJ1c0FFTDQ4YnQw?=
 =?utf-8?B?bXYvcFVubHYxV3NHanltRWtKSWhkaEtEaDJaT0NISXFBOCtnVW4va3dYNktu?=
 =?utf-8?B?NDh3b0dWZkZsNW1sN1pTbWo2cEVtVFVFSmN6NFJSSlFYS091SDhIdkhRZmNq?=
 =?utf-8?B?bEpDVDlPVDR3TmRIUDkwdWdHcW1Fc1g0akFjTnJaUElNWkhaa1VLcHdvMXhJ?=
 =?utf-8?B?aWdqeGlzTjFFdGc0aXVEQXUrZk9CZWFURVNndTBxejMvdjRrUURnOFpveXUx?=
 =?utf-8?B?bnJYNjU4Nnc3bGZYLzhQcUFJaFgvTUphK0NUWklMK3lRdldTdm1pcGw4Qkdy?=
 =?utf-8?B?MjFIem1FczNmWU5vOTF0em52ZGh0d0NtZldTT2oyejlMTldBb2lMRkkxdXkz?=
 =?utf-8?B?aE1NQmdmYk5BSm9vMFZRZ1NyV00wa1JDUHNhby91SVdDU3F2WjY3aFdCeVNB?=
 =?utf-8?B?VjB1RmpMZkwrU084c2RxMGdBWWVWUDN5dmdjUlNjSndJbFYrSU1rMnBQc0tM?=
 =?utf-8?Q?V0IBi8ZjzdG/oz7s=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d8dfca04-cc9b-4a6d-4ba5-08deb11133d6
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 17:00:57.6443
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gm9Nt/I3rGAaffFUmj00+5Bd4sctjREv7dKkoMbTuTRguvpBhOKgPeDD9fz++HzRtp+Q+W7Ds4JhNNdCiOE7Y7HgSiCx8h5FbxTrK1tg/JU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB4930
X-purgate-ID: tlsNG-d62444/1778691670-B7957FF4-06DA466E/0/0
X-purgate-type: clean
X-purgate-size: 905

On 13/05/2026 3:03 pm, Jan Beulich wrote:
> ... ("Conversions shall not be performed between a pointer to an
> incomplete type and any other type"): Add an intermediate cat to void *.

cast

> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
> (covering more than just this)
>
> --- a/xen/arch/x86/cpu/mcheck/mce.c
> +++ b/xen/arch/x86/cpu/mcheck/mce.c
> @@ -1264,7 +1264,7 @@ static void cf_check __maybe_unused x86_
>  
>  #if BITS_PER_LONG == 64
>  
> -#define ID2COOKIE(id) ((mctelem_cookie_t)(id))
> +#define ID2COOKIE(id) ((mctelem_cookie_t)(void *)(id))

The interface here is horrible, because we're passing a pointer to a
uint64_t to userspace and back.

But, can't we just cast through unsigned long instead?  The compiler is
happy, and that feels safer than using a pointer type.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 13 17:16:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 17:16:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308342.1579843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNDBf-0006UB-Ma; Wed, 13 May 2026 17:15:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308342.1579843; Wed, 13 May 2026 17:15:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNDBf-0006U4-Jd; Wed, 13 May 2026 17:15:59 +0000
Received: by outflank-mailman (input) for mailman id 1308342;
 Wed, 13 May 2026 17:15:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1wNDBe-0006Ty-Ar
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 17:15:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNDBd-00DsxI-K5
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 19:15:57 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 6a04b1b9-5cb7-0a2a0a5109dd-0a2a450ac1f6-36
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 19:15:57 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 6a04b1cd-56b3-0a2a450a0019-d1558031c0c2-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 19:15:57 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-488a9033b2cso63335305e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 10:15:57 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fd64cead5sm3677305e9.10.2026.05.13.10.15.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 May 2026 10:15:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1778692556; x=1779297356; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=ZdMwvmCM9lXcoLo/b5jCJV7hGyPbWoPml9O23giK69s=;
        b=HtLiCTmBPC5fa3IJ1IwFvWq/SwQKs6g1VxmfIEl2T9TKBhhbTw3N7/KOFcJVe2rThv
         k+VWDZ+DoKGTkLjYdONUI9p4erToUIq3r16xaAIYglsuJoqZS7O47nxftTmKtbQm9N+P
         slOMO+/LOT1/K2DxECWWmnaLB+DGsFycYAyes=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778692556; x=1779297356;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZdMwvmCM9lXcoLo/b5jCJV7hGyPbWoPml9O23giK69s=;
        b=tGApb67jJ8x1oef2hTba+1Noo6EXchu7VtwnvtR04YNQN01IxgfoRlAi0zPMeT7FR1
         GfIwu2n+s+r9ejX3guEtd7BjwtolVmAbtZn/ziwy3KMYGsgoEAhzYKEXt2GbpoJix8Pa
         9aIXQrT13CgPe6Oy3+YM4OZh+Ph8MI1NlrJM42flH9xowFlVpl+C1aKeqHAYZbhIYaWv
         ZZwuvd6pg6w8jLLuiCa60m9NtoRLwzjrYJQSwk0TV+14TJzkO4GIfX9yAvo4tItvYgMO
         Ak3zwGpjGium9ji8jR1mZkzaAne6ybGtLETDZ9TAtViNOE7TFMqhuq2fSg3EDqOHNDBw
         M+oA==
X-Gm-Message-State: AOJu0YyQswsfI9I31Uo+zfhoDZ1v5tpQWhR7xrRcmU5nmCmgGYZHEjnH
	u02oN3thbSHNizfP+vqiwYvXmGgup0oyd+M2vnV+pVbBFkFdQTLAknXAvsj6CNCoj2yVsKbUSXI
	iJu/4Lio=
X-Gm-Gg: Acq92OEDvtohHxkIrX/brevDINkHqdDbJzj3RFpdBnVqg5NvOv3+2DA6ZtBm0DYehnF
	boHCHsJf6hWFAIJVcAD9o26+IPFY6lAlaJGN7CKGHeGTXoaBnZsA05Hwbjc466EZx6IHj+uutey
	VoPmqT5xyyUFe0ArlkQLf0oBTiKc93/88Kyw1m1/DtwR3dBJC1W8LADqlrYSW9/R2KVE/KhIo3T
	LRukqjm0+6e6GSIxuceJqC3G+lPXvFnaCFAk524+gpmNVDiowLt5Z50/O94u0w8wk99eeV2yAyg
	8eSjQUoYE+uh8IAEsMVAtKpUTG4bfZHDr6WB15MfuyNZo0vijOeye/AcQT9Rnk+bGbVmbiQUJJ7
	0V/tbcPqdSvrInzVs0i+7bSglbDf7A7PfG0sIFEEdYH1R0D9e8P3ZPtfJSlc0Uawh/G7NoK9JEN
	XN8OZV7ddcJ95mF4wg/H/qMSgqrCSMz/ev0RP/stI90dRWjPS2RQCApQEaMtwi0Rk4XLTprf50i
	6M4
X-Received: by 2002:a05:600c:1547:b0:489:1f04:96c3 with SMTP id 5b1f17b1804b1-48fc9a02834mr61577535e9.2.1778692556263;
        Wed, 13 May 2026 10:15:56 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2] x86/emul: Adjust handling of CR8_LEGACY
Date: Wed, 13 May 2026 18:15:53 +0100
Message-Id: <20260513171553.1772095-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778692557-6F95E8B7-D450D6A4/0/0
X-purgate-type: clean
X-purgate-size: 2089

The CR8_LEGACY feature was introduced in the K8 Revision F.  It doesn't exist
in prior revisions of the K8.

Furthermore, from APM Vol2 3.1.5 CR8 (Task Priority Register, TPR):

  The AMD64 architecture introduces a new control register, CR8, defined as
  the task priority register (TPR).

Additionally, from APM Vol3 4 System Instructions MOV CRn:

  CR8 can be read and written in 64-bit mode, using a REX prefix.  CR8 can be
  read and written in all modes using a LOCK prefix instead of a REX prefix to
  specify the additional opcode bit.

i.e. the LOCK prefix serves as an alternative encoding for REX.R.

Switch decode_twobyte() from += 8 to |= 8 to better match the description
given.  Other indications that the encoding isn't additive are that the CR
intercepts stop at 15, and that LOCK MOV CR8 generates #UD rather than
becoming a CR0 access.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

v2:
 * No dependency on LM.

Also, designers never put an ADD into silicon if they can possibly avoid it,
because it's large and slow compared to the single OR gate needed in this
case.
---
 xen/arch/x86/x86_emulate/decode.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/x86_emulate/decode.c b/xen/arch/x86/x86_emulate/decode.c
index 2c13356c4d17..51c89ddfc893 100644
--- a/xen/arch/x86/x86_emulate/decode.c
+++ b/xen/arch/x86/x86_emulate/decode.c
@@ -782,10 +782,10 @@ decode_twobyte(struct x86_emulate_state *s,
     case 0x20: case 0x22: /* mov to/from cr */
         if ( s->lock_prefix && vcpu_has_cr8_legacy() )
         {
-            s->modrm_reg += 8;
+            s->modrm_reg |= 8;
             s->lock_prefix = false;
         }
-        /* fall through */
+        fallthrough;
     case 0x21: case 0x23: /* mov to/from dr */
         ASSERT(s->ea.type == OP_REG); /* Early operand adjustment ensures this. */
         generate_exception_if(s->lock_prefix, X86_EXC_UD);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed May 13 19:08:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 19:08:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308406.1579853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNEwj-0004xl-JN; Wed, 13 May 2026 19:08:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308406.1579853; Wed, 13 May 2026 19:08:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNEwj-0004xc-F8; Wed, 13 May 2026 19:08:41 +0000
Received: by outflank-mailman (input) for mailman id 1308406;
 Wed, 13 May 2026 19:08:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNEwi-0004xW-DE
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 19:08:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNEwh-00EGvO-Qa
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 21:08:39 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a04cc23-2eae-0a2a0a5409dd-0a2a450983ec-16
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 21:08:39 +0200
Received: from [52.101.43.67]
 (helo=SJ2PR03CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a04cc35-2497-0a2a45090019-34652b43ece5-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 21:08:39 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BL1PR03MB6197.namprd03.prod.outlook.com (2603:10b6:208:30b::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 19:08:34 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 19:08:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TKc9Kdr9DVNFC+qHeg3Jbk1AD7v6RGHiYvTwnvUxSBHi9VEWApS5cS/y81/XkmnGShzNEqPGLt1n5an2Wdp/RWDKGEUnfE6QBexAStWy1VgutIx3l3ukG/OVXOdA/0PjaB80aiDLRg9w1spKBD9yvI69PsK5KLZLZlzEoFk7XV7TlBVV9Z53XkmIzX7y4wnd8U28a+cDG0KgcoNLIc7w/670M7ZNPlb8217CqClCvBdDR2DTCBsoIIHDA1tsz3F98IekqbIhSwWmZ7FPJhMt3ld28yC3RxIKntoapet+3smsql1ZNX7QgZJroIsH9dW+drXYJqo/PycKqpEc2O+9yw==
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=vz4vYBXMwChhlORcTPcnmqpu/FXpRscHXrRtQggSTOM=;
 b=xHDSb4sWuCP1z+QvRsMQ/1PHdAD2XorRHsQQO53SQuemcSr4UyZrOX6gQYyuFWX4+R4WU0/7q9ufgCHtgG/lD7Npxd/WqoibTCCjTOH/W4PZ60a+2XA2Ysz4g9LuApBGvXHaUncj7wrNUoO0Z7Tp6ynP9aZMxXpqyNWab8fRtDq73WrpM4lWqt/q659Mb8rkWTjEpujlE5qbvHH+0qdVtzo8Ti2e01kvdPvsrR/ZShCHHXOfTlQuseH0vfxFeRy3rM7n/LsJwubNrh2y8BKFO07zlyYzyA/VSbcufc1iCN965plOYDJpDJaRUrWlVPeAKFhBJdq/Kt1fr9hak2Pseg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vz4vYBXMwChhlORcTPcnmqpu/FXpRscHXrRtQggSTOM=;
 b=D1JBRtcic080k7ukMuaKxRV2gzEiTV6VFSDINm2Um1fv4tzXb9uf9vRRBuG6YcpAVGeFZCq/hEJo71iGCyYz+z+dd4cCjokBy9X+40mWhKvEb8m4mP9SlenT3RHNQqriLpxPLXJyyToeXVlgimBwRQDb3RojeYWpj1nzLCm9QyY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 13 May 2026 21:08:30 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH 2/5] x86/time: move BCD_TO_BIN() uses
Message-ID: <agTMLgTwsKf96IpL@macbook.local>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <2c5af8f9-05f6-43c4-afb4-a50cbacd2d49@suse.com>
 <agQ8tRY3Kya6RasY@macbook.local>
 <d37322ac-fdf9-48bb-91e3-3e8d560fa758@suse.com>
 <agSRm3T0Y3EfuqFb@macbook.local>
 <d70965fe-5039-4a9a-a470-a9d2a0bc6ebe@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d70965fe-5039-4a9a-a470-a9d2a0bc6ebe@suse.com>
X-ClientProxiedBy: MR1P264CA0136.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:51::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BL1PR03MB6197:EE_
X-MS-Office365-Filtering-Correlation-Id: 776b8db9-2af4-4036-9c4a-08deb1230773
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|22082099003|56012099003|18002099003|11063799003|4143699003;
X-Microsoft-Antispam-Message-Info:
	p01F5VaFxSceWaZEFZQvRanMQZT7BkjKE0VAT0Nq6Y5duXe0MZc8q0D6yJyuAEqQ8xQLFqpkruUlK+e7ecbxbS1sxiGPnSTN0uXictL3LyZFSjlsvOPuYQ04ce4MomFNCQ62nVfyDwTyXsv6/YMdpixpP3jd2hoxFUQVt3iVutgLX60oRcUinxrjkimWYpOFhe7U2/LLwdHNtJditRL9EckbnBATBTzbyqPVZuteJTT1HRvqXBvl8A0c4hPcJcKyr1x1VIXxh4TMiTAtI08wSK+JoG7fofXxju7s8LW1d1cROW7zg/LQeDEwLl+ZniurygYqqSeMTvYQ8yHVZVhXZt4gcJSuPod+QOda7oi5mzHCP+EZ+58d9/jQIEPq14SddkJUcYOGE7OxIkwuZrUAcZSxETiLNZ0vxAdEM6c2xXbmF8hqiPF9WHQNbKIGMmawFUojvNE5mjKUpIRWxTRzSeKcPUeMjvnZHfrzxFQ1clS16cHp5Ul1XN1jrCyNXKDM3uugePm99xIWDVHnVjdKbKDDWh516BxaUEHt2zOBhQCXj93zdKSIy03wICRZbSKa3AR3v6UwU8Pm2RqGBmWe053Eye7dCdZInfOZ5uR0oSKup7etdj08oqBfSsi5LqeBgjxlDyRFPr5rJC2ThEagWvqNaOU/tsbaWbSKx7JQZMW5K+VmoOCM01MlMYyqI+5P
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(22082099003)(56012099003)(18002099003)(11063799003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?T2tWTFlaNFhhNno5dTFVQmMwcDBwMkl1YXB4YU1qdTNBM1piQUtNL1R1aVZ3?=
 =?utf-8?B?TW9NN2k3U1hLVFJtY0pKRmVWbkZ0TEluaTM5YkdSTUNKSXdjUFQxSEQxbEln?=
 =?utf-8?B?aW50TXdMSGVsMytNMUUwM3kxc0FtUjBGSEJWNnlhYmtGMG5GZzhRanl2QXM1?=
 =?utf-8?B?VmRSVlozQW0rS1gyeVp6SHVNcmg3aWRibVBBZkMraUd5QmV6dU14MEVmOUhi?=
 =?utf-8?B?VEUrREZnWEtDYTc0ajRvWG5tcmRhUFVob1l2RExRalp6QWR0aElZcTR6Rm5k?=
 =?utf-8?B?QUZMM0Z0TStaK2pOdUJQTDkxN0gxMTEvM2FtM1U0c1gwTTVhVVlwM1ovVVk1?=
 =?utf-8?B?SHI4c2hIMGdrbzJNMHRFUWtLa2F5YVlIdWRhRGRvdjkrY2RGd2F2Q1BXNC9t?=
 =?utf-8?B?dGtGR3kwT1NCZTBjMjBPb1Vxa09TNllJUTFpRXIyQ0FBeGZQUUZQSmFkYUhz?=
 =?utf-8?B?a2ZwWTV2bkpERkxiL2p3dDBFL1ZOMWdleUpxbFBhVzNCYjd3bisrMVB3ZHNn?=
 =?utf-8?B?cmVZVlIzUEhZYVlPUURZL1NDZHBZRmtCc0V6c3p6S2lSMjVxZ09mRHZnWTVy?=
 =?utf-8?B?RVp1ZlJHTXBDWEh2VERsVDR0dVFuT1FsOWxsYWJsWmVDam9zb0tXeHViNHVZ?=
 =?utf-8?B?UGVwQXpkdGMwT2ZIemlFWW50c2JLdlRSUHQyeXVySEYzMVNPSmgwRHZNQ2JT?=
 =?utf-8?B?bC9TUVpEVzR3K0wxdUtWV3hNZGdweUhMYnZqclZCckVQQ3JITUdkTU5mRUZF?=
 =?utf-8?B?RkVvQTdBSnFJWVFMOUxYRGdEMjltdjBLSDRCT0pwMitnTDgxTjZTd3VEU051?=
 =?utf-8?B?ZkNweXJrUXE3WEJYSUhITHdWaWhDT2lDMHl1Z0EwNzNqNXovVnFXeEhXM01N?=
 =?utf-8?B?QXZLd2VEMDZUdTR4cXlpa0g0YVViSzZEaWhnaFBhbkVEdlE2dVZzeUN5cWNT?=
 =?utf-8?B?UE9rR2hsbXVZd0xJZHhEYUNLT25ZcG92eXdRRXAxN0taNU5FZSthSkRlazVt?=
 =?utf-8?B?WTk2MEdzMVNkZEplN05wWkVGWDNpNUtURVgvZG9BOEo0dXFwcnV6S29KWWlr?=
 =?utf-8?B?NmJ1clMzTUJ6aVNpcnV6Y3UxSUczbUZGVHUrNzVhWVAvT1lOMWUxK0hDa3Vj?=
 =?utf-8?B?Q0gwNmJxREZBNG9XY2ppWlp1ZFZXM3JVK2VDM3ZNNmUrSDQrbUVvVFdnR0I5?=
 =?utf-8?B?Z1dzMTNvSmdVNEpNdnpOd2gva2RqRlpBS1huUVpQNytzMWRmWlU3SzJvUDUw?=
 =?utf-8?B?S0xNV2IrWWhmZFM4UUlRVnRxRFNBcmU2TjB4d2ZuaStsTGF0ZTQrZ2V2TjhK?=
 =?utf-8?B?TFNXbHFLOS9SOW9TRzljWGovOWNsb0dyVzNPc1NKbEIvUVd5K3Z1SVQxdVU2?=
 =?utf-8?B?WGM0MUJPeGNMczBUM0gyb3pBRlErY2ttY1A2MEdpUFkveHliRHpwbStqYW5n?=
 =?utf-8?B?ZDFsZTl0MXY5QjJFaGN0NElqQm9VdHpSM2xPVytsYmwrcnBRSGozb3ZwYjRp?=
 =?utf-8?B?Y2FGVkRiaGZoT0RNOWJlaitBMjZTeDZ3Uk50VXZvZ2trYkV4WlJLT1Uxb0Jx?=
 =?utf-8?B?aFpZQzg1N2tJL0hkcTFKRGhzS1FwSE9EMm80MU5tdG5SK1V3a0RicVdBUnhX?=
 =?utf-8?B?SUFYaXFpeW5LSnZHRDZqVGdUL21vcHdpRm5HMnVZTklNdkNnckhvZldzNW5z?=
 =?utf-8?B?TmtqeUg0cXl3SGlZNlZ2clAyVVpST2tmSk1Ndm8xeXB4ZEZJNkc3WEdyNXM3?=
 =?utf-8?B?SU9SUjNMbHBSTVgxZWVhUng4d2Y0RnJ3dzhOWEd2eGpqbEw1OGFPNlM3VEpW?=
 =?utf-8?B?UGNKQTV2djA1RUM4SkllemJySUpzNnRnNVdnNnVVRnh5WnViZWZudnE5emlI?=
 =?utf-8?B?ZHRSaTNmNEZIbFpNWm5DcytUTkJhMldWY2VZKzFKcGlqaWwyc3ErQ3lCRDFL?=
 =?utf-8?B?WDVtNDI5bDR0OCtCVlI5cHFmVmpEZ3ZQTDZGYXcra2tvcCt2N3RVNEYxbmZS?=
 =?utf-8?B?RmpzQU1rb0RCNVRINTBndmRnSCs4UkVQVnJtVzJTclZ0UlBMUlBONEJMeXBB?=
 =?utf-8?B?ZzFuNXNSOGsyMW44TmFrSmFGZmxtTFI5SGZDTk1kWFZocWxMc1RsVit6SnJ3?=
 =?utf-8?B?VEY1UUpzcFR2WXg0RkFZcUZlZWw4Q2hOektSWFpEMEp3U2tLMlc1cTB2Z3gr?=
 =?utf-8?B?NVhkM3RKUm5INFdHay9qREI0eGV5dU9LOUdTV3NITGtDeVpLYTFOVHFuUm15?=
 =?utf-8?B?WTIyZ1lBcHVzV1hEbjZIR1ZKTG1VNVBwTGZzQVFMejN0eHRma0JSNGY1K3hr?=
 =?utf-8?B?YmxBbE56SnpQa0E2M3pIdFhQaXNxbkE2V2VrSE1Jd1hQY2RDT0N1Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 776b8db9-2af4-4036-9c4a-08deb1230773
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 19:08:34.4063
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: n3Vy8S5BWdknRYZLk59j+lDKD/DzfDAV0sP96w03h3/2GybxjmLQIIHk5pynQhpr0v9rKrnSiElibCW5Np9D/w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB6197
X-purgate-ID: tlsNG-bad1c0/1778699319-43374A53-AF92DEC5/0/0
X-purgate-type: clean
X-purgate-size: 2519

On Wed, May 13, 2026 at 05:15:41PM +0200, Jan Beulich wrote:
> On 13.05.2026 16:58, Roger Pau Monné wrote:
> > On Wed, May 13, 2026 at 12:39:46PM +0200, Jan Beulich wrote:
> >> On 13.05.2026 10:56, Roger Pau Monné wrote:
> >>> On Tue, May 12, 2026 at 04:59:03PM +0200, Jan Beulich wrote:
> >>>> ---
> >>>> How come RTC_ALWAYS_BCD is compile-time constant 1? And then even with an
> >>>> inverted comment? Looks like we've inherited this from Linux, and even in
> >>>> Linus'es current tree it's still this same way. Yet all half-way recent
> >>>> chipsets I'm aware of properly implement the DM bit in reg B. Might this
> >>>> be another 32-bit leftover?
> >>>
> >>> *shrugs* I don't know.  Seems like Linux is still doing it, so it's
> >>> likely safer for us to continue doing it also?  We had no reports of
> >>> it being problematic, albeit one could argue it would be best to
> >>> prevent such reports by doing the right thing.
> >>
> >> That's my point. If we did this as specified, we'd unbreak systems with the
> >> DM bit set correctly, but we'd break (hypothetical) systems with it bogusly
> >> set. Like with a few other fixes, perhaps we should correct it, but provide
> >> a command line option to restore old behavior?
> > 
> > Possibly, but I would do after 4.22 has branched, just in case.
> 
> Of course.
> 
> > One thing I've noticed, is that Xen don't attempts to set
> > RTC_DM_BINARY in REG_B, shouldn't it try to set the bit when probing
> > for the CMOS?  Since it assumes BCD mode it should at least try to set
> > it?
> 
> For one - don't you mean "clear it"? But then - no, that bit is purely
> informational aiui. Changing it won't alter what the date/time registers
> hold (only how they're updated). Hence by fiddling with it we'd corrupt
> information (breaking OSes which properly respect the bit).

Yes, sorry, clear it.  The (possibly very outdated) specification I
have contains:

DM – The data mode (DM) bit indicates whether time
and calendar updates are to use binary or BCD formats. The
DM bit is written by the processor program and maybe read
by the program, but is not modified by any internal functions
or RESET. A "1" in DM signifies binary data, while a "0" in
DM specifies binary-coded-decimal (BCD) data.

To me the "DM bit is written by the processor program" reads as if it
could be set by the OS, but maybe that just means the bit is writable,
but it doesn't affect the format of the field really.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 13 19:40:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 19:40:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308425.1579861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNFRo-0001xv-Pw; Wed, 13 May 2026 19:40:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308425.1579861; Wed, 13 May 2026 19:40:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNFRo-0001xo-Mq; Wed, 13 May 2026 19:40:48 +0000
Received: by outflank-mailman (input) for mailman id 1308425;
 Wed, 13 May 2026 19:40:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNFRn-0001xi-43
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 19:40:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNFRm-001ZkT-HH
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 21:40:46 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a04d3a1-bab6-0a2a0a5309dd-0a2a450880d2-20
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 21:40:46 +0200
Received: from [40.107.208.16]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a04d3bc-63b5-0a2a45080019-286bd01053a2-4
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 21:40:46 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA0PR03MB5483.namprd03.prod.outlook.com (2603:10b6:806:c0::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May
 2026 19:40:41 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Wed, 13 May 2026
 19:40:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iTUe2wUe1zGa7tE4IOQX/wPBhvMb6/qHOK/YBnEWlZTGVyFriUPtfIlxHDswco3mSXA8e/XVjFazlfqP4nQV9luZBmQm7Qzee7E/tTYwXHROCV8sO27xDo6EVlFlhc45iY8UH6w040ONFE2pHV378AXDSbTW/xCOOgaC3vKOfNH13HjIR+YcbylS2ahvUfxh2P1dMyAYy1d3ktEXoVTYmX7SGJV0SZTxb3EzM0ETiM3P6/iq7lGCIQ+Dxi8nbVpQ2JwNhHeDfN3zNlREbj9HMTZoQ8QUaJP7iKzJCfiVL6UBKzVOW0TK6iCZBj9V+ewx54qwtk5OVD1iB9w7guVtlQ==
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=t1nerSrzRJqrPfkCEiNpI2oIyUx2VoHuheIDrVf7BJA=;
 b=ABvKDxx2f/x7FvTzd2KyoB0V3nbUiSIOvvm9mR1RIdlqVJjrgyaDqvSi7GvDw5yRRcz0hcco6joK1qWsr4OomhHh+V5zWlkejR3QzTWMBOrW0RtwXgP6FzJ64TbSZNscfZ/glgV2ZYU9dn5mcEBbYm2aF1RftpcBjVZHSSsOA2u5LG6xPygMqN7gVX09cQcuDmOOmaJuj3GVX3PpcPLNh6OIr8fcfvc+vgoFsYVetQf9FUm1Btwpc9AJDMfvp6b9HpaKRbBiRopyVT7sCgk7vh1a0LtCvB8HRk4ZzsLqRNIMMtD8pPBfXgyboIpQi5a1GbdRK5ipWmesIzdz27y24Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=t1nerSrzRJqrPfkCEiNpI2oIyUx2VoHuheIDrVf7BJA=;
 b=nVmHgqlwJbE8uoUPqDPqEy8sYDR9f7wi5PDlv04nHl3+09UEJ6H/6YmLrwPZWbdnzGvgrIoOvbUGk9RhCk0wSbn15mPlaiI810MpKLhdMjvb6/dUTngKMqywDSr6MIJ8qke5NsAER+ndMJdLEo05A2J+C/PUFQlMlYY3pJ6M808=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 13 May 2026 21:40:38 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.22 3/5] x86/vRTC: support century field
Message-ID: <agTTtrSm1tBnBGK9@macbook.local>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <383355d1-7032-4445-8a06-cb4411ea797e@suse.com>
 <agSJlh8KQ9orL6wC@macbook.local>
 <17a25f0e-91e3-4e09-92ad-21e7dc0ebe62@suse.com>
 <agSVa3uPHSZrszjz@macbook.local>
 <439d03f4-4ebb-4bbf-a1ea-324156bff9f0@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <439d03f4-4ebb-4bbf-a1ea-324156bff9f0@suse.com>
X-ClientProxiedBy: MA2P292CA0021.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::13)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA0PR03MB5483:EE_
X-MS-Office365-Filtering-Correlation-Id: ddcca115-057c-47bf-d86b-08deb127842d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|4143699003|56012099003|22082099003|18002099003|11063799003|3023799003;
X-Microsoft-Antispam-Message-Info:
	UwZY6Pe+MzuG+5b4VjPweWBjLzA1or2QoMudEUxZfUcq9ofcHYfBSvIYw+KgfThx1MQWd4YaoCPZKN3r98HBLnSnFNINJiVe30G0Z7+MhJBaHKPE61VHLa3x5hTbTHn+MisM+D79torHbGH8HR7zWJ3w3p5a1l5mN6cvS78mOdt0ocNkwJ+IR8/x8exyFNmT1788h6xpqs1pK0nLxCqaLdtZyl3aj+s0cZuxBlw5vx2CeAFkFmI4TT9aQ3PW/qKcgYs4Fz3Q0jVsJE/FLCHJkiWcQe76v1h9ciqV0wF0JRD96gh8yg3NmuWaVuWKSEA4xe1xaZ7KceVmlEYjl5KE0/a6sqw+Nz+mq9Qnp1WQpV+JOBHS4/bwxNf1cFI/RInvKavsd65y/H4UwhjLH4u8vIr5KdwKzc6RPtgR+bD/hbMpUYfGG3BCH73KrjLYoHX9SuQIxFmI4qeKLSHPkiuR+YAMH7M0R50cLH4XnCdpBvvqJe19Xk5qXLd+oUilLeo2sMgPwZdmLyfBzfxRPqc1thSPhrkw3VDd97AdUmCZrauU4Eqa+i+MV/CGD6gJRjAOIniCqesAYGrZNXXwBUwbd89bfi0HPLOK8U25X//7ZolBYfbDs+TREHUwtjx4neF9UWtYjPE/7HYQzrh0VrRNAYPD7U54ur46azeyDnkcUN74SyWgQ1LwGrcNDl+jh1+P
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(4143699003)(56012099003)(22082099003)(18002099003)(11063799003)(3023799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?M0lmdkFqakJYOEVjTTBGS3dzbHdRZDNWL0VsbVF2bklnMHpOd09DdEYzTmR1?=
 =?utf-8?B?Vk5ZTjZ4NUlDQ1BFODN4MVlIR2o3Y29CVEg0Rk45eDlBVjFTNSsyQTk3UWow?=
 =?utf-8?B?NldWeXQ4dVZWUVo2QTBjZnNmeFFpTlBDdDdRNEpES1B0VWEzV1lvemsvbk4w?=
 =?utf-8?B?VG5BWUZBdXZoUjdXOXR2Ty9vMVJNUk02dXpwcjlvRkJ1OE84Z2FaZTJxWjRq?=
 =?utf-8?B?aE5SdjBHeFN1dXNQZzBSd05QaTRrL0NxdERuZE13c0lmUUtLT1VXQWFqRERS?=
 =?utf-8?B?czcvbHEyanBPWVFSS2g2eFdmQjYyK3hBVC9la3lSeVJjWWtPV1NLZkEzTlhD?=
 =?utf-8?B?enZhbmZlc0pVZnlNYkN6Y3B3M3d6UjAzd1ErTGpwc2x4ODI2Mit0eDh1ZFpv?=
 =?utf-8?B?WjZwTGtuUHV3QlRsS2prWU90T20vZkFWSU5yN25RMVFUV0EvbHlPdkRPV0Ja?=
 =?utf-8?B?VWltN0pZcXRSVFRUYXpiNWJUQzRnQmU2RnRyNDlzT2VuZFJVVzlaV3AzaTlt?=
 =?utf-8?B?SjI0d2s2ZlZ1QU5ueVJNZmx4ZDJVZyt3bzcybHd4N3h3KzlUQm1yY1BVVGZZ?=
 =?utf-8?B?T1VVV2RGMlFsa29xRWhwVGNlNStmeWhibnUxS1h5bjlqU3ovY0FQZm9PdGg0?=
 =?utf-8?B?MVcralV1ZTNnMXEzaktuSUo1WDBrbU90UmFOeFUxMlFIZ0VLc1ZGYXhob0Vu?=
 =?utf-8?B?bWpRYXN1NG05b3JoeWVKZXdIanBRa0hwSGVHa2dmc3ZJeHlNaE9EbEpleUlZ?=
 =?utf-8?B?Q3FETmRtWnoraTJjQ0I0aTNlRVRwNUlpWERjRHNXZy9WWTFYV0ljMWgwNVRZ?=
 =?utf-8?B?b3FMcjhoMk5UdnNSYXhjb1cyVDRTQm1GTE5ZeTVWeWk1ZE5JVmpZNi95TFdw?=
 =?utf-8?B?akZBMDIyM09qaUltL0lISUY3ZGlKME1tNURhUkhjZ0c1djFIWVlvbTU2b0Np?=
 =?utf-8?B?TFpEU3ZXUmZkUlBneFlvWFRtOTRjSGlqVjVUUTI2MkJDY0xPM0x6WDU3U0dN?=
 =?utf-8?B?WHlEQmlvMUl5VURNU0lCaVhXdmh3K3ZKa0d1eWRZVEduV3B4emg5YWtMVEVP?=
 =?utf-8?B?ZGZ2ZVplcVpZYUpIb216OFFqMTVsTmJPQm92S0lkaXY0cEluSUt3VVpHblhy?=
 =?utf-8?B?d2pIZ1phY0Vmd2RTUkNwa0VwR1M4TE1ySTM1NEpvWlNzalBsMlZmMTFnTnp0?=
 =?utf-8?B?a0lRaWVmMDlqbUFuZit4bllneWo5TVEzMjdqeGRWclZTRmoxNTVNSm00Yi9y?=
 =?utf-8?B?QVA4UFlEZHVtRXVWYlVwVGJXLzJxUFNPZGtDcUswZWFnNmpxbGRIaWZzL3Nu?=
 =?utf-8?B?aXgva1dWaW4wY0c2eGpTQTd3VkxOTVhBeTNRSXpxcmVxM011bDFObkE2V204?=
 =?utf-8?B?b3FWaERRVGZ5WFEwTlRZM1lqWEx6TG5zMG4vMm04YXFxWDhmN0liRkYrU2U4?=
 =?utf-8?B?WG9sdGNVZHBvRmVDb2NCQkRqN0dUNHFhcW4xckNwdzNhdEZXZEZIZ3NURnZt?=
 =?utf-8?B?dkdreE56a0o0TGlRc2FrQ1EzV3pDTHQzNEFZYkNISkdmSVVKTmZWVnA4YVkz?=
 =?utf-8?B?NDZHMEpKVURhZHhWZnk3a0JHWkdIcmRRd3JiVWd6WTQ3WG9zVG1Qcko5N2tv?=
 =?utf-8?B?UHBma0lwTksweTd1ZWZHdlBIbk0wbkh0WndoaS84enZ4eThaUkFxNXpJc3N0?=
 =?utf-8?B?QitER2FrTnN1L0lQekZYczJpNFRMVFVmK3YyTHRWdVNNeGdncW1RVEpFOElP?=
 =?utf-8?B?bUlmMWdFc3orRWNZdTNUdmU3WERYTWNjbnF2OVFPL3llaS8yTkd6Q2cxSk9S?=
 =?utf-8?B?SVlqY2tlQ1ZFcEZET1k3S1NuV0V5Mm5ScUtEQmJ0cW4ydWJiZ0VGTnpNaXJW?=
 =?utf-8?B?RVJKU3JBRWRVSXc0N3U1ejRhZEtEL1pLdFBsZTlSRXlqUnBFQnlKTWZqTDg0?=
 =?utf-8?B?Z0dOZmphR1hMby9RTFhLMmdBZHFJc3RxMnkwWXFoUTZkcjU1eW1xU1FVSExu?=
 =?utf-8?B?cmxHMXkxRW5ZY3VkNUFxNnhKZXJEM2FCWmhJbHMvTEZsc3Zmb3VCZW4yQnR2?=
 =?utf-8?B?R09tVERTK3JiaEgrYVBQL29ZWm1rL1lVdm5sVnY4TldhRjkydTNWTUNuYjVO?=
 =?utf-8?B?aFNnbFVoVFJzT1BESnpKNDEzUE5XWnlud0x4SVNRaXhwQmtXSCtzVUNESS9h?=
 =?utf-8?B?NVdZazdnS1FxVjZaY0tQSzhYTW1CWWFacDczdEhQSW9OMmhsMTg5djJiWTNh?=
 =?utf-8?B?U3VCVytWTldnMlloNmUyQVF4Y3BIUUdNcVJWUFdnOUYrNDUveHVyeTNhZXJY?=
 =?utf-8?B?dVpUdStsQ052TWxqS0ZycUNXSHJpS1l4QTBCOWs1Sk9rSFV3L0V3Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ddcca115-057c-47bf-d86b-08deb127842d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 19:40:41.5033
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Yhm082lgsFDUNtGAC9U27F4Ukneo0xdaxDfNRg8fPLT3YAGrr71xBdDho0LT+ymLjxh4e4cbcIDwAPG1W7IQ0w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5483
X-purgate-ID: tlsNG-c1860d/1778701246-BEB74DB1-CEB39F76/0/0
X-purgate-type: clean
X-purgate-size: 6119

On Wed, May 13, 2026 at 05:24:13PM +0200, Jan Beulich wrote:
> On 13.05.2026 17:14, Roger Pau Monné wrote:
> > On Wed, May 13, 2026 at 04:58:57PM +0200, Jan Beulich wrote:
> >> On 13.05.2026 16:24, Roger Pau Monné wrote:
> >>> On Tue, May 12, 2026 at 04:59:35PM +0200, Jan Beulich wrote:
> >>>> --- a/tools/libacpi/static_tables.c
> >>>> +++ b/tools/libacpi/static_tables.c
> >>>> @@ -33,6 +33,8 @@ struct acpi_20_facs Facs = {
> >>>>  #define ACPI_PM_TMR_BLK_BIT_WIDTH           0x20
> >>>>  #define ACPI_PM_TMR_BLK_BIT_OFFSET          0x00
> >>>>  
> >>>> +#define CMOS_CENTURY 0x32 /* Conventional index used also without ACPI */
> >>>
> >>> IMO this define (together with the RTC_CENTURY one below) need to be
> >>> in a public header so it can be consumed by both the hypervisor and
> >>> the toolstack.  Having two separate defines, one for the hypervisor,
> >>> and another for the toolstack will just create confusion.
> >>
> >> I first thought I'd do it like this, but (a) this isn't a value Xen
> >> defines (hence the comments in both places) and (b) I'm not entirely
> >> happy with such a(n) (ab)use of the public headers (yes, we have other
> >> such examples there, which I also don't really like).
> > 
> > Yeah, it's not great, but it's better than having the same value
> > defined in two different files, and having to keep them in-sync for
> > the CMOS century field to work correctly?
> 
> As the values come from the outside, they necessarily need to stay the
> way they are (and hence implicitly in sync). If we meant to announce
> another value to guests in the FADT we produce (breaking non-ACPI
> guests), we then couldn't use RTC_CENTURY in hvm/rtc.c anyway. Instead
> we'd have to track and migrate the index to use.

Hm, OK, so the value is well-known enough to be considered part of the
standard CMOS index layout, I guess that's fair enough.

> >>>> --- a/xen/arch/x86/hvm/rtc.c
> >>>> +++ b/xen/arch/x86/hvm/rtc.c
> >>>> @@ -47,6 +47,12 @@
> >>>>  #define epoch_year     1900
> >>>>  #define get_year(x)    ((x) + epoch_year)
> >>>>  
> >>>> +static inline bool is_century(unsigned int x)
> >>>> +{
> >>>> +    /* Constant below should match epoch_year above, just as BCD value. */
> >>>> +    return x >= 0x19 && (x & 0xf) < 10 && (x >> 4) < 10;
> >>>> +}
> >>>> +
> >>>>  enum rtc_mode {
> >>>>     rtc_mode_no_ack,
> >>>>     rtc_mode_strict
> >>>> @@ -482,16 +488,32 @@ static int rtc_ioport_write(void *opaque
> >>>>          data &= 0x7f;
> >>>>          s->hw.cmos_index = data;
> >>>>          spin_unlock(&s->lock);
> >>>> +        /* RTC_CENTURY always forwarded to DM. */
> >>>>          return (data < RTC_CMOS_SIZE);
> >>>>      }
> >>>>  
> >>>> -    if ( s->hw.cmos_index >= RTC_CMOS_SIZE )
> >>>> +    switch ( s->hw.cmos_index )
> >>>>      {
> >>>> +    case 0 ... RTC_CMOS_SIZE - 1:
> >>>> +        orig = s->hw.cmos_data[s->hw.cmos_index];
> >>>> +        break;
> >>>> +
> >>>> +    case RTC_CENTURY:
> >>>> +        orig = s->hw.century;
> >>>> +        if ( !is_century(orig) || !is_century(data) )
> >>>
> >>> Is a real RTC strict in such a way, ie: will it refuse to set the
> >>> century value to < 19 (0x19)?  For example QEMU seems to be way more
> >>> relaxed, and allow any century value.
> >>
> >> I can switch to rejecting merely 0. Unlike centuries in the future, it
> >> didn't look very useful to me to permit anything below 19. Please clarify
> >> which way you prefer it.
> > 
> > QEMU seems to tolerate everything, so I lean towards tolerating
> > everything that's not 0.  That's solely based on what QEMU does, which
> > I think it's likely to be (quite) widely tested.
> 
> Will do.

We need to keep 0 as the sentinel invalid value, because that's the
content of the pad field in the structure when not supported.
Otherwise we could just use 0xff (or any other invalid) BCD value.

> >>>> @@ -515,7 +538,10 @@ static int rtc_ioport_write(void *opaque
> >>>>              /* Fetch the current time and update just this field. */
> >>>>              s->current_tm = gmtime(get_localtime(d));
> >>>>              rtc_copy_date(s);
> >>>> -            s->hw.cmos_data[s->hw.cmos_index] = data;
> >>>> +            if ( s->hw.cmos_index != RTC_CENTURY )
> >>>> +                s->hw.cmos_data[s->hw.cmos_index] = data;
> >>>> +            else
> >>>> +                s->hw.century = data;
> >>>>              rtc_set_time(s);
> >>>>          }
> >>>>          alarm_timer_update(s);
> >>>
> >>> Don't you need to adjust the tail return of rtc_ioport_write() (below
> >>> the context here) to return 0 when s->hw.cmos_index == RTC_CENTURY, so
> >>> the set value is also propagated to the DM, and not only the index?
> >>
> >> I don't think so. The case of us not handling RTC_CENTURY is dealt with
> >> earlier in the function. Whereas when we handle the field, we don't want
> >> to forward (like for all the other RTC fields).
> > 
> > Right, so then you also want to adjust the top part of
> > rtc_ioport_write() to not propagate the write to the 0x70 IO port when
> > data is RTC_CENTURY?  Otherwise you propagate the write to port 0x70,
> > but not the read/write to port 0x71?
> 
> I can't, as whether to forward depends on the data subsequently written.
> Propagating the index "just in case" is the only workable model that I
> can think of. And as guests can do any number of successive port 70
> writes, the DM needs to cope with this anyway.

Hm, I see, the newly written value to port 0x71 is taken into account
to decide whether to forward to the DM or not.

I wonder: would it be simpler to extend the size of the hvm_hw_rtc
structure so that Xen can detect whether the incoming VM has support
for the century field, and then avoid having to play heuristics
with the value itself?  We would know ahead of starting the guest
whether RTC_CENTURY is supposed to be handled by Xen or forwarded to
the DM, and we won't be limited to use 0 as the sentinel value for not
exposing RTC_CENTURY.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 13 20:47:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 20:47:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308439.1579869 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGTf-0001z4-Cq; Wed, 13 May 2026 20:46:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308439.1579869; Wed, 13 May 2026 20:46:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGTf-0001yx-AB; Wed, 13 May 2026 20:46:47 +0000
Received: by outflank-mailman (input) for mailman id 1308439;
 Wed, 13 May 2026 20:46:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wNGTe-0001yr-UE
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 20:46:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNGTc-00DGYm-M5
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 22:46:46 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a04e319-2eae-0a2a0a5409dd-0a2a450281a2-20
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 22:46:46 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a04e334-af86-0a2a45020019-aceafc1f8f28-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 22:46:45 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id F132A402B8;
 Wed, 13 May 2026 20:46:43 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BC912C19425;
 Wed, 13 May 2026 20:46:43 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778705203;
	bh=wpV9StRR9YZtclK2hc4IXe7av7xmUbXWolQsdD9HKOs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=I8UYK5L4gmxgsKlaW4uGsBdS6Z1VJaxw7fJ9HjItqugPWpL5CRTQOP4cvSruEiUvu
	 nIqHl6jwZkR9cWVmoVvhATWmE39aV8Vp/SNbQzGsEFcOQTSlbCMODg1LzIqzmqyTxz
	 54c12JTKxeQdXsbIFTpgR4Fmy3km6JDrai6HwYNx7XTByqOw7fANvNrlrx/20V2gF+
	 L8qT6+hxyptelTbz9vA6IxNFdd3UKXKBTuiHsT6Y4N1YrW9f678SWZk5dhl9aQslx3
	 oysqc9pttapQmNj7sWou4UjQANMmSzi9X8DtCVKYV47N84b220aukp7UtTmnigp32+
	 JVH0be2CfmZng==
Date: Wed, 13 May 2026 13:46:40 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 1/2] kexec: kexec_crash_save_info() vs Misra C:2012 rule
 8.3
In-Reply-To: <0af810a1-3392-472a-93c9-c98fcb81c43a@suse.com>
Message-ID: <alpine.DEB.2.22.394.2605131344520.3930@ubuntu-linux-20-04-desktop>
References: <13ca5f9f-d985-41bf-9c30-afd657dade89@suse.com> <0af810a1-3392-472a-93c9-c98fcb81c43a@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-720697/1778705206-A917D161-59822B90/0/0
X-purgate-type: clean
X-purgate-size: 791

On Wed, 13 May 2026, Jan Beulich wrote:
> ... ("All declarations of an object or function shall use the same names
> and type qualifiers"). The declaration doesn't use the typedef, so the
> definition shouldn't either.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

> ---
> Really, is the typedef of much use? I.e. can't we drop it altogether?
> 
> --- a/xen/common/kexec.c
> +++ b/xen/common/kexec.c
> @@ -333,7 +333,7 @@ void kexec_crash_save_cpu(void)
>  }
>  
>  /* Set up the single Xen-specific-info crash note. */
> -crash_xen_info_t *kexec_crash_save_info(void)
> +struct crash_xen_info *kexec_crash_save_info(void)
>  {
>      int cpu = smp_processor_id();
>      crash_xen_info_t info;
> 
> 


From xen-devel-bounces@lists.xenproject.org Wed May 13 20:47:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 20:47:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308446.1579880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGUH-0002UW-Ok; Wed, 13 May 2026 20:47:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308446.1579880; Wed, 13 May 2026 20:47:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGUH-0002UP-L7; Wed, 13 May 2026 20:47:25 +0000
Received: by outflank-mailman (input) for mailman id 1308446;
 Wed, 13 May 2026 20:47:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wNGUG-0002UJ-Av
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 20:47:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNGUF-00ERZn-OH
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 22:47:23 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a04e351-bab6-0a2a0a5309dd-0a2a45029ac4-30
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 22:47:23 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a04e35b-af86-0a2a45020019-a237832f960c-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 22:47:23 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 597354EE1D37;
 Wed, 13 May 2026 22:47:23 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1778705243;
	b=XTMkqSKfD4wferpWcybbA25dl8SbGm+a5kQujPg8Vs5oydboMwj4yF3Z7naNkS5Y09F6
	 F0ajzAMNfppX84bhf8gQP0+NFeYcKums6pm3ihgT3n3T4XCJ7YPImfh+6FTitto8BJndo
	 4wcZvijFoivjWJj9sfFvWmFieLulYaBgJYLia50wYJ7iRcWxU1yokzsULcK8B7nU/VIzX
	 3fgHteTjE8Eh7Zpb70XPuCOaiVFEiUHjxHhN52iy2TI8/oBspK5Vd8pCESfOEVRJqZqry
	 86IEVUgJiBaRBaPNg+YmzN9Oh+oW+GKbLWGtw5Mll48cVuEkCLLHSbj4sB5CuHpXrSd7A
	 vjQ9FjPG5Q+9BQSV+NRXkNcnBn7QAKBF9FvpIj34UwZLUSakBycfi+O0VrXSXuZp8G2wc
	 Q14PVolSB2h33cW9sfrT1Zc42jmoHDCTAQ9lgPh0DHutLqROzXVa0h/X+XvGGqWEHgwGo
	 REiJe97/++S71oyNfcaKKB72Y7ZO7ftshARaagBMYosHOPlmhoMldknqLd46j/xQqIsFE
	 0PzNDRX0ALzaH2nVArrU6IUqMkaLyZilpGsZf2atLEivZTOK+SuDoTOrirNKPH9WSYCZ+
	 pWUDUyaOYEp3tvA2Ah3lWKeyPaF4wb8GhYqUmM+TtnA+yByZJA6MDxAdNVeKzfI=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1778705243;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=fEw7R8gfi4CKLZ7U1ZfvbeZdcg7q6TFeK8CtUy8K9P4=;
	b=G6nQMx3hJiPuOf7E4s7NQx9C5c50DfLN2TncDG6aPmY3L0ox1jEk0hvELTmS27tgtDyv
	 xufr2tREQpW7hpfCfZGtfuVn8nzXIb+ghRHbpixAgTWYoZFmAA9tQ3BHZoy9N3yj+oq3T
	 AlrxmbN1Zdq8t1uYKnHihOZdiyhw8RRWoRcvVQYvXj7ZnUqMlJCwoEtgKk3eaLtyrMOiw
	 Wx5O2rV67CRBEW08UyW4cX/UlUztijNXcdFjK6UQgF4iFPisK2/aWRTiE+L2X/VfSLE64
	 tCsNQmnKyhYydl/Nfyw+uMGwrf9TxUvJCqt/khlL5mOlIiu34j8UXITP+5sUY980FeO6D
	 Ge/HMFYPfvJk06oR7X5FgZo7zb5h2xbgUqrc4cQ8RSt6jhnz2JPZSw2htNB9Aab7Gk5sv
	 18nyKV912W3sc6uNdDTDEJgb6YU5EeTfHCc0mAr21o5rhUbOBdQbwF8tlS+pOGJXplgBi
	 mfn5s80CGZTscy1LvgqYokPpKTTJb49KU3N2IVlfk1CwcjAkeKWAiW8MoigiNkJhDPdd6
	 b3zlW+pxGDGllBJ+7WKk8ERYpXjzZOoe5yYJ/Xo5+G+w4LQfudIwtYqpP0PFC9iJCMMxp
	 X4knx6cAE4a3Xo6g872wFMBk8+q2F04oqfqgRGlYvgxHuBzzP30cyn1ve3qCngE=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Wed, 13 May 2026 22:47:23 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
In-Reply-To: <bc9ed10d-5ae6-4d9d-af90-648931731a52@suse.com>
References: <bc9ed10d-5ae6-4d9d-af90-648931731a52@suse.com>
Message-ID: <36723a55f4465ab1a99041b8bb0575c4@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1778705243-A8979161-26DCF6F3/0/0
X-purgate-type: clean
X-purgate-size: 1121

On 2026-05-13 16:03, Jan Beulich wrote:
> ... ("Conversions shall not be performed between a pointer to an
> incomplete type and any other type"): Add an intermediate cat to void 
> *.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
> (covering more than just this)
> 
> --- a/xen/arch/x86/cpu/mcheck/mce.c
> +++ b/xen/arch/x86/cpu/mcheck/mce.c
> @@ -1264,7 +1264,7 @@ static void cf_check __maybe_unused x86_
> 
>  #if BITS_PER_LONG == 64
> 
> -#define ID2COOKIE(id) ((mctelem_cookie_t)(id))
> +#define ID2COOKIE(id) ((mctelem_cookie_t)(void *)(id))

Notwithstanding the comment from Andrew, I think a comment here could be 
nice to explain what it going on, otherwise the double cast looks quite 
odd.

Unrelated: why not contextually marking this rule as clean to prevent 
regressions?

>  #define COOKIE2ID(c) ((uint64_t)(c))
> 
>  #elif defined(BITS_PER_LONG)

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed May 13 20:47:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 20:47:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308451.1579888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGUn-00032t-Uq; Wed, 13 May 2026 20:47:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308451.1579888; Wed, 13 May 2026 20:47:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGUn-00032m-Rx; Wed, 13 May 2026 20:47:57 +0000
Received: by outflank-mailman (input) for mailman id 1308451;
 Wed, 13 May 2026 20:47:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wNGUn-00032a-1O
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 20:47:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNGUk-00DGtW-T8
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 22:47:56 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a04e37c-5cb7-0a2a0a5109dd-0a2a4507d25c-0
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 22:47:56 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a04e37a-229c-0a2a45070019-aceafc1fb224-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 22:47:56 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 6FC6A4075B;
 Wed, 13 May 2026 20:47:54 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 125FEC19425;
 Wed, 13 May 2026 20:47:54 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778705274;
	bh=O0zqcBOBq6DRxj4bk/iy7C/IXg3z+jEdR7fpHHctHqs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=LzuY2gwQaCdrkm9w7hQWmcwfPwIbXXTen4cp1JiVoU8FcCQDXsWqFL1yLg/A5+6PM
	 bdLzHh4FIsBHNt5CzB2KXwvHow4hlfD81ZPxzbxUKjCo/frnTfLXzWuK7AnxulTPQe
	 J1YqVsMkm+QQrMrRAey7uwQV2IFN7w3JK9ZxZqRmD9wqqKMwaZVoddoTnF7LeAUnL2
	 5IZIv47dnhv8vy9GGXycfCiY7R5m2CD1+CgV9T/qIG1EDA1tvqUdY6K0X+kpCD9DMv
	 WzjdoK0oA0QP+YGAFskOhYr/g1Ehk+kliUAgG+zTopzTC0FwIar3rL+ClVqWNs26ud
	 DPvGqWQCwYtMg==
Date: Wed, 13 May 2026 13:47:53 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH 2/2] crypto/rijndael: adjust for Misra C:2012 rule 8.3
In-Reply-To: <3ca0351a-8be9-4b3b-989f-0ba004fada2f@suse.com>
Message-ID: <alpine.DEB.2.22.394.2605131345020.3930@ubuntu-linux-20-04-desktop>
References: <13ca5f9f-d985-41bf-9c30-afd657dade89@suse.com> <3ca0351a-8be9-4b3b-989f-0ba004fada2f@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-ef75cf/1778705276-0A16DC48-2EC49985/0/0
X-purgate-type: clean
X-purgate-size: 1418

On Wed, 13 May 2026, Jan Beulich wrote:
> ... ("All declarations of an object or function shall use the same names
> and type qualifiers"). Bring declarations in line with the corresponding
> definitions, accepting the use of the being-phased-out u<N> types. While
> we don't define NEED_RIJNDAEL_DECRYPT, cover rijndaelKeySetupDec() as
> well for completeness.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> --- a/xen/include/crypto/rijndael.h
> +++ b/xen/include/crypto/rijndael.h
> @@ -50,9 +50,8 @@ int	rijndael_set_key_enc_only(rijndael_c
>  void	rijndael_decrypt(rijndael_ctx *ctx, const unsigned char *src, unsigned char *dst);
>  void	rijndael_encrypt(rijndael_ctx *ctx, const unsigned char *src, unsigned char *dst);
>  
> -int	rijndaelKeySetupEnc(unsigned int rk[], const unsigned char cipherKey[], int keyBits);
> -int	rijndaelKeySetupDec(unsigned int rk[], const unsigned char cipkerKey[], int keyBits);
> -void	rijndaelEncrypt(const unsigned int rk[], int Nr, const unsigned char pt[16],
> -			unsigned char ct[16]);
> +int	rijndaelKeySetupEnc(u32 rk[], const u8 cipherKey[], int keyBits);
> +int	rijndaelKeySetupDec(u32 rk[], const u8 cipkerKey[], int keyBits);

There is a typo "cipkerKey" which is only present in rijndael.h but not
in rijndael.c


> +void	rijndaelEncrypt(const u32 rk[], int Nr, const u8 pt[16], u8 ct[16]);
>  
>  #endif /* __RIJNDAEL_H */
> 
> 


From xen-devel-bounces@lists.xenproject.org Wed May 13 20:54:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 20:54:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308463.1579896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGbT-0004oc-Jy; Wed, 13 May 2026 20:54:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308463.1579896; Wed, 13 May 2026 20:54:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGbT-0004oV-HB; Wed, 13 May 2026 20:54:51 +0000
Received: by outflank-mailman (input) for mailman id 1308463;
 Wed, 13 May 2026 20:54:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wNGbR-0004oP-RX
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 20:54:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNGbQ-00FIfA-Ou
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 22:54:48 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a04e4d5-5cb7-0a2a0a5109dd-0a2a450b9232-48
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 22:54:48 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a04e517-212f-0a2a450b0019-ac6904fea3b8-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 22:54:48 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 397CF60052;
 Wed, 13 May 2026 20:54:47 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 97CD4C19425;
 Wed, 13 May 2026 20:54:46 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778705686;
	bh=xkJmYuOtGLZWpb7CNtzCmol5bRCeD7uZ7hhfNPO0krY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=L4u9I1inHUCZUHTczpo5x1rZEG1deWeM+d/IJY5N0P24lbAvBO7Y+x8QmZrpy5N74
	 10nSDc6jKOtEW/UEl6gBwXO1vIxHCQ5iuZXyGjMtsb5zKgnvoNQ2CtjF/MTiUYUmbN
	 juSkI+haYzSOP6JZufzQepZBZU1yvKH0Tsn5uE7XENWtv8+Qs7jIFXAJDZLu4CqLAL
	 CuZiK8g+1g3U/nlQxPTSImz8YPB0I0uuNL5uXrHRJTuPjOUm7UX8FuCgCy7pfRc6IW
	 ns9PU89AumzFcPddDZ5PBr5Cph1kudNboFl828xJnzXV+IRATJ+WughQK3EYtoX5a2
	 m1/vwED/H+/7w==
Date: Wed, 13 May 2026 13:54:46 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
cc: Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
Subject: Re: [PATCH v3 1/2] ns16550: add support for WCH CH382 serial
 adapters
In-Reply-To: <20260511075415.36538-2-Zhao.Jiaqing@amd.com>
Message-ID: <alpine.DEB.2.22.394.2605131354380.3930@ubuntu-linux-20-04-desktop>
References: <20260511075415.36538-1-Zhao.Jiaqing@amd.com> <20260511075415.36538-2-Zhao.Jiaqing@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-42698a/1778705688-12971F3B-B20F1C1B/0/0
X-purgate-type: clean
X-purgate-size: 671

On Mon, 11 May 2026, Jiaqing Zhao wrote:
> Add support for the WCH (Nanjing Qinheng Microelectronics Co., Ltd.)
> CH382 PCIe dual port serial adapter. The CH382 is available in two
> variants:
>  - CH382 2S   [1c00:3253]: 2 serial ports
>  - CH382 2S1P [1c00:3250]: 2 serial ports + 1 parallel port
> 
> This chip uses IO BAR0, base baud rate 115200, ports starting at offset
> 0xc0 and spaced 8 bytes apart, and a 256-byte FIFO. [1]
> 
> [1] https://www.wch-ic.com/downloads/CH382DS1_PDF.html
> 
> Signed-off-by: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
> Reviewed-by: Denis Mukhin <dmukhin@ford.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


From xen-devel-bounces@lists.xenproject.org Wed May 13 20:57:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 20:57:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308472.1579906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGe5-0005TW-00; Wed, 13 May 2026 20:57:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308472.1579906; Wed, 13 May 2026 20:57:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGe4-0005TP-Tf; Wed, 13 May 2026 20:57:32 +0000
Received: by outflank-mailman (input) for mailman id 1308472;
 Wed, 13 May 2026 20:57:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wNGe3-0005QD-0a
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 20:57:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNGe2-003w5X-Dp
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 22:57:30 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a04e597-bab6-0a2a0a5309dd-0a2a4509d626-26
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 22:57:30 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a04e5ba-2497-0a2a45090019-a237832fc384-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 22:57:30 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 174D34EE1D3A;
 Wed, 13 May 2026 22:57:30 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1778705850;
	b=ceNqlb+CuF+jorU8Wx9BcxFvagjdfPy49Ky5wBqMxnAU/q1rGMG6y/SqonF3zc8YpWKQ
	 37Cy56+B6GHF4CrIDmXQvr3J3rC3PXIl7cSl6uFImmIulAvIbtU8vMI4MHHCgDgJPlhMw
	 Gsf8irz85frWaQ6VEPFWqCg+hWrdDQhJ+BNLI3jnL2YAll56UUXeLttGMINjIIybXZfdj
	 ZT/7WDKxkkgUOicCXY+1Q6mt78r+gqQHtXk82eTjMEtQb0Doztt+MVa9taDUk1QeZWbou
	 lGkeGpU1i/WXBBoaB2bvoTbHSpdROHvRvEAn8cHhaeCRARIxZ2ldpOE0TGKTZ+XZyEwa8
	 p31xTSRIMiUZBdicEL9UBskXppFFbBDjSnvTa6FaA7clQkpiNS0YCbOEBZjSGvWuQELf4
	 cjcle2d5aMfH7xRVCBi7u1Lq3RvhgR7teIoVVdhjGKV1PZ20RjqxQQLIjM7igzYm/ghEG
	 yidtjzcaT15xhUKaJ7UmbzvyC+m4RgKI81vpbM8MyiK0cTbAfnGaoKzfsrr/WYq8OvgoG
	 Tp0oWBBnxI9GrnwLjXzcHVJMSX9X8t7yg+wGfsBq0qxcNQ/FKPGxLrlz3riJkppMbYjpp
	 gxWtC9UOJ/fQCks1QKAvrUGMjSOoaFhDcZfqcF1BBGqQVu1PbaOmDepFUO0vpI0=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1778705850;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=2+2IlPZf8jZ1VbwpfpG+rDF5J+dRcr28rGmbAHPKR24=;
	b=SlOgZVKDhsl7tk/mFBaPvqFaCPMpRWjIpV+327782dmz7RGJALDe7ERAzc7cFZpGMi3G
	 NwR5/JXN/jHqwkHG2uAUFybL07FYSPz1SU8kZnTw8dsEXM7Xbp6PtkyMHFnx7fXBednQx
	 CU57ze35hGVGrob2rCzsEa6hsOM9NzqAGch04w045+7IlhtpQNYMTVFDfF39bqXfhfFuE
	 RsFhgO8lFMaSG0Y0O/S4hQg3RwxYSoe76zKZ28fFN2EZl3B85dvFmLJVgHHJNOknzfQWd
	 hgRttC9ZD1Pik7ZmEtHLbpJ3treDYA5DjuU7yAgftdEDYQk5sXGyzAWH/oO8cpWn/d97j
	 8sCIiZgJfRB5QSnWZuFZaSwFynt/Bq7sJIqs0vOYfWJRIzeWsRRQw3inoWz4Hw3LCqQwB
	 YEzQsHC0tr0/bI3JwSCJTzqMTC8xk004xj/Zr578F1qUQ/90tKjHe5irpylCDUGvNAwig
	 yp94p4TE+hsCJ2f2K7OqLJAi87ba6uUtT5XGHh19ShxgtxLDmSe+Gn5ki8UV0Y6xwI4Bq
	 p4qV1YX3nmiWg+bTLGUE0qNbgZBDuJtaYHk66z5fXsaqBk2foyLHMiJ/qzrsod8tNzRWQ
	 aQvv4IiXFLzHhVR8yE223tWxV/jU0GXmEP3qR1tdpZvqT1mB40BN/llOCyainHk=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Wed, 13 May 2026 22:57:30 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH 2/2] crypto/rijndael: adjust for Misra C:2012 rule 8.3
In-Reply-To: <3ca0351a-8be9-4b3b-989f-0ba004fada2f@suse.com>
References: <13ca5f9f-d985-41bf-9c30-afd657dade89@suse.com>
 <3ca0351a-8be9-4b3b-989f-0ba004fada2f@suse.com>
Message-ID: <1204570ec06469568958c7ad1cf53496@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1778705850-40563A53-51FCBB80/0/0
X-purgate-type: clean
X-purgate-size: 1642

On 2026-05-13 16:01, Jan Beulich wrote:
> ... ("All declarations of an object or function shall use the same 
> names
> and type qualifiers"). Bring declarations in line with the 
> corresponding
> definitions, accepting the use of the being-phased-out u<N> types. 
> While
> we don't define NEED_RIJNDAEL_DECRYPT, cover rijndaelKeySetupDec() as
> well for completeness.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

with the typo in rijndaelKeySetupDec's declaration fixed as noted by 
Stefano

> --- a/xen/include/crypto/rijndael.h
> +++ b/xen/include/crypto/rijndael.h
> @@ -50,9 +50,8 @@ int	rijndael_set_key_enc_only(rijndael_c
>  void	rijndael_decrypt(rijndael_ctx *ctx, const unsigned char *src, 
> unsigned char *dst);
>  void	rijndael_encrypt(rijndael_ctx *ctx, const unsigned char *src, 
> unsigned char *dst);
> 
> -int	rijndaelKeySetupEnc(unsigned int rk[], const unsigned char 
> cipherKey[], int keyBits);
> -int	rijndaelKeySetupDec(unsigned int rk[], const unsigned char 
> cipkerKey[], int keyBits);
> -void	rijndaelEncrypt(const unsigned int rk[], int Nr, const unsigned 
> char pt[16],
> -			unsigned char ct[16]);
> +int	rijndaelKeySetupEnc(u32 rk[], const u8 cipherKey[], int keyBits);
> +int	rijndaelKeySetupDec(u32 rk[], const u8 cipkerKey[], int keyBits);
> +void	rijndaelEncrypt(const u32 rk[], int Nr, const u8 pt[16], u8 
> ct[16]);
> 
>  #endif /* __RIJNDAEL_H */

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed May 13 20:57:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 20:57:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308473.1579915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGeH-0005uj-6i; Wed, 13 May 2026 20:57:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308473.1579915; Wed, 13 May 2026 20:57:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGeH-0005uc-3F; Wed, 13 May 2026 20:57:45 +0000
Received: by outflank-mailman (input) for mailman id 1308473;
 Wed, 13 May 2026 20:57:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wNGeF-0005uC-Rh
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 20:57:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNGeF-001hfp-8e
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 22:57:43 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a04e595-2eae-0a2a0a5409dd-0a2a45038920-32
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 22:57:43 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a04e5c6-672d-0a2a45030019-ac6904fee0aa-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 22:57:43 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id B4BA860126;
 Wed, 13 May 2026 20:57:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2794FC2BCC7;
 Wed, 13 May 2026 20:57:41 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778705861;
	bh=QSRr88+bJ+mw8eN2N6nw/WIyoxLc4FX8rbgxy8AkDfE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fhAT6fDqTeswK6p51PnYUUGlrwcmzgdQjVVqHGhAAUH1dWxZYZHJwSETe+C5oOrTf
	 RY/tF0/qY9wR2F17QBgxE2TJ2O79ibwnTStUzzQXmgMfX9ZY9r/QK9gG4pEHTRuvbF
	 6Mshn0skwJtR7qEJ+H15W9mmESCcj8sNoSIoZneg9MS4WGYzkXc2gteGGGrJNlDQJY
	 4bVhOX3ncVPiKcvbxt3niCH8zR74gcZWnxao/9n9bkfausaysvj91eVYJZONLj7lnN
	 QWRsjmF5kEfWwvo7SJR09OWvDjaC7klDrVxeq8ecc7lw3W/AUn9ulTsKQ1dcXUYLj+
	 8yDgpMgC1HM5w==
Date: Wed, 13 May 2026 13:57:40 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
cc: Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 2/2] ns16550: add support for ASIX AX99100 PCIe
 Multi-I/O controller
In-Reply-To: <20260511075415.36538-3-Zhao.Jiaqing@amd.com>
Message-ID: <alpine.DEB.2.22.394.2605131357300.3930@ubuntu-linux-20-04-desktop>
References: <20260511075415.36538-1-Zhao.Jiaqing@amd.com> <20260511075415.36538-3-Zhao.Jiaqing@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-33051d/1778705863-38B74938-25CF2360/0/0
X-purgate-type: clean
X-purgate-size: 376

On Mon, 11 May 2026, Jiaqing Zhao wrote:
> Add a PCI device table entry and matching parameter for the ASIX
> AX99100 PCIe to Multi-I/O controller [125b:9910]. Each port on the
> chip is a standalone PCI function, with UART registers on its I/O
> BAR0.
> 
> Signed-off-by: Jiaqing Zhao <Zhao.Jiaqing@amd.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


From xen-devel-bounces@lists.xenproject.org Wed May 13 21:07:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 21:07:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308487.1579923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGnZ-0007jP-1N; Wed, 13 May 2026 21:07:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308487.1579923; Wed, 13 May 2026 21:07:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGnY-0007jI-UZ; Wed, 13 May 2026 21:07:20 +0000
Received: by outflank-mailman (input) for mailman id 1308487;
 Wed, 13 May 2026 21:07:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wNGnX-0007jC-O9
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 21:07:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNGnX-00EIfJ-4w
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 23:07:19 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a04e7d2-5cb7-0a2a0a5109dd-0a2a450adac6-46
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 23:07:19 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a04e806-56b3-0a2a450a0019-a237832f930e-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 23:07:19 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 8DACE4EE1D2C;
 Wed, 13 May 2026 23:07:18 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1778706438;
	b=lKYF5CtIub/XWAkXp17OZplT/s0L8RDupaMeV2fcptHWimgDLVVyayXjxd0izOuSQ5kK
	 HP/xFU4Q0IbNXDeZ5zurZ7KXQIuGoZoez7GgnXjEhBl9HT7dWf3ZyxWtdT6XDfnkkL/QV
	 xq48BShyJpP76l/8Ifb8H5UMn9CJGb+oGnW4XR90WfDMqwcMGYB8YUAMzH5US+mcsfwYJ
	 Bw9Pm57cgQqWYkq8yF2NBzNt/P1kmWziirY5mge6S3NFl6Bb5jbfnXklA3WFi9D9/2wcc
	 7Y/m7XTBkUGbBXHvVeejUyV8Pi44mCkc+yUYxzZIEelCh2cVvpnbuKam64Gq+6VIgWvbO
	 7VyIL86BmhHGMYE9cFKk+gfjhFycAmxQDO9ile21ZLL1d5yGpR1znBKROvGaFtiyXhEyt
	 D98bMP9Qa5qmRGpC1eNC7GiwpcFF0q+4a8aUEglS+R5DfJzEwZr4zA7rCf1BxH/r2Op2V
	 YBAB8V+lVUUyXksT2vQKTUqEcGWnqj77HDB1QcrSJ4s5pHX3la+X1eycO98Cy+LD+mbed
	 fOox3BuuWJBrvqI3eXrH6tZxdIMa68GaSVXTP7JV5LcuMRYEXKtL4Y9LU7DUtMH+yHWqj
	 6Q4cJqHVn0FCeKGNrDXlknn74a0zJnfj0z78DRsOXZj7gpFE2J1/Q72KUQtvtnM=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1778706438;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=EJJPGORqhSahaG4Yo4YCJnTQFEkFGg7G9VmW7fkOktY=;
	b=jL81OBv/jDmMzaMllh0tWpOinFJ83UyVEZRGk9aHIR3dKCqRa5osC9AuYP8OaCt4R9XK
	 tOJnJZIrrY7t7aVXGf0XwaV78Byx5oC8MJQNqNMucRmp3wxUbLy4Qfo4kjXc+TVO/dzUg
	 aVOSXnuI7BPaK3feh1MvkjRVZ2sx2wn0aYi8K5Xg+6QEOOV5ipKMtDMZ+NOMaEj8sBf5w
	 tzDngkV5LsnNZOY5BP7FsSS7QFdMLm3fW6DcWabC4icc2dNvh9tZwx/1F9IyRsac7gUiC
	 M/6L0UPeefmxfl5txDiGG4z2bD55Jh7Ocbs3AQi3vrtlWwNkMZ0xYMrD+9+JY0L2KSrKb
	 CWYOdZ/fAbiywG9xR83nv8INDMYV4OAE0F7XaacF6W2RlpZZnl9lUdzn+Ezq4zmmULWIS
	 GpVil0npQ7fGxgnn6pvdeIkLUvWMaBvkIlQkHmE8P/IiyKO9WZPTvl/RLDF5TCzfWw9+X
	 db8H73WiwTpapxAnZATxbrvvO0KJibyIYYI0PGdqD3DqKEYHymTRmYn9js/x7PHE4trtz
	 qxQ7o/ppU+S/YNvMzlFFM5Y5AWQw5M6gLiU41feKTCYd+o+PuW4Y4i5w/iWeEZYIy6sOl
	 34d7/S2YqH1ZkcQJ7oE1QpwsVXJeF8ZXcd+14eC9GYrl1L+FIRq8i5wNw7u6c0w=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Wed, 13 May 2026 23:07:18 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Teddy Astie
 <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86/shim: adjust for Misra C:2012 rule 20.12
In-Reply-To: <c82c5255-f2df-4822-b03a-c90ad3759e9a@citrix.com>
References: <ed512e2e-a3ff-4fe3-8847-80985722c4d3@suse.com>
 <c82c5255-f2df-4822-b03a-c90ad3759e9a@citrix.com>
Message-ID: <29550088408bfcfec43901c58e0f423f@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778706439-7FD788B7-31CC842A/0/0
X-purgate-type: clean
X-purgate-size: 2449

On 2026-05-13 18:30, Andrew Cooper wrote:
> On 13/05/2026 4:52 pm, Jan Beulich wrote:
>> ... ("A macro parameter used as an operand to the `#' or `##' 
>> operators,
>> which is itself subject to further macro replacement, shall only be 
>> used
>> as an operand to these operators"). Move the HVM_PARAM_ prefixes into 
>> the
>> macro body, to use ## on the 2nd use (each) of the macro parameter.
>> 
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> I understand that this "absorbing" of prefixes isn't liked by some 
>> people,
>> so I'm all ears towards alternative suggestions.
>> 
>> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14354119193
>> (also covering the 17.5 patch)
> 
> Yeah, I'm a firm -1 to absorbing the prefixes.  This is simple
> obfuscation just to hide it from Eclair's eyes.
> 
> The ARM folks fixed this by using a SAF-6 annotation.  e.g. 
> 195d754170891
> 
> Although honestly, the more I think about this, the more I think we
> should just globally deviate.  I don't consider the concept having a
> well-named constant be used both as a value and a string a confusing 
> thing.
> 

There are already special cases for R20.12 also for things like 
GENERATE_CASE

-doc_begin="The helper macro GENERATE_CASE may use a macro parameter for 
ordinary
expansion and token pasting to improve readability. Only instances where 
this
leads to a violation of the Rule are deviated."
-file_tag+={deliberate_generate_case, "^xen/arch/arm/vcpreg\\.c$"}
-config=MC3A2.R20.12,macros+={deliberate, 
"name(GENERATE_CASE)&&loc(file(deliberate_generate_case))"}
-doc_end

which fits this macro perfectly. The more general question is whether we 
want to whitelist certain macros uniformely, or in general Xen 
developers want to use that pattern, because that conversation has two 
very different outcomes: one is the disabling of the rule, though there 
is an associated unspecified behaviour. Us.B 25 for C99 to be precise: 
The order in which # and ## operations are evaluated during macro 
substitution (6.10.3.2, 6.10.3.3). The other possible outcome is 
deciding that the allowed cases, which should be very few (and indeed 
they are currently) should use a single deviation pattern to be handled 
uniformely.

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed May 13 21:14:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 21:14:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308500.1579932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGuq-0001D7-P6; Wed, 13 May 2026 21:14:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308500.1579932; Wed, 13 May 2026 21:14:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGuq-0001D0-Lx; Wed, 13 May 2026 21:14:52 +0000
Received: by outflank-mailman (input) for mailman id 1308500;
 Wed, 13 May 2026 21:14:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wNGup-0001Cs-TY
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 21:14:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNGup-00EUHP-AL
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 23:14:51 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a04e96f-e002-0a2a0a5209dd-0a2a4508b6a2-42
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 23:14:51 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a04e9cb-63b5-0a2a45080019-a237832f9c62-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 23:14:51 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id AB4994EE1D2C;
 Wed, 13 May 2026 23:14:50 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1778706891;
	b=CLrKCVqiK6WnDWdEZDlJCkTOQWJgFMl5AkDPK/8DP9wyDTvzdTfuemfRjEl0HDfO/NXV
	 t9yqo/c7yWjcUuU9HlJWDTy/34A/3WxbxAMQY+igRoGoVD6D9Sx2UhNCgzm+xTNF0k3R7
	 VyoNHaZZbpGHSBBcfgw8K65jtveBDVnGdI6l1LZD+cPNi0ChuyEX66I6cMnAOWnnrgmPq
	 OmEKlqDn3Fmfy9y7swZ+BCLCxKPrKbLPesTYywurs2Yb3C0akzdY4vWRQjmmdldanjhJe
	 gGqN8QCklJV5O88LXHBWd/TdbPMYAHl2CQ8v87hSx1m1GTxcpf+FSNKAWiinP5A2Z1dj2
	 RY2/yHwk8Q7ia2uPmiEzV4chk3yief38u4n6kC51R26m/ouTWBNw6WCqy+UafqiqJ7+P0
	 IUtSTVVJxRuRpzeD/5DFUDx7/5GcVRX4tNu0ky5ll2ZeLnL8xqaAt9LtHpN/kquoJrulP
	 ShfDACX0YAVeKCpFxzIbQr0U46bEuKDm1/3zOi3B/W+CRxzIWGdxX0k75tH88BHjrGCH/
	 hLNz7VvHUpluayFGuOwGDLMvvkOOa6Sp8XAv6/o5qk7IE0VhF7jfa5WM5T2Y4ogMHl6P3
	 cHAspD/z8oT+4Z+jzwwPog4Hw11pfJO27eRUWOnR0j2iIRiPgy8TKiUaozS4NmM=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1778706891;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=PTvjraaklV2YyLSuhdYYWG+LojtBf4e8CWfb3/VE0nw=;
	b=jvkL24C+mMhD3da7gFmmBbC0eeQ3jx1lKWan3FUn3YdE2/ZZOvBJfuVqKytc1yI51M/T
	 M6eWcAkrQ5M5Uo2ygPAJ+S5d73olTQuGG6DcQ7qJyKgNduI76IOtF2HqynCQHFVbvl6Yx
	 r4m2wY1oCd+2uEyqjipn6tTANaIYGvhUC3PtZmHM6R8Y/LYcaMsATzoNhpwoKhiL4btx5
	 ajMG4BPqIDERUzTTCUzNYGcgsgiS16Ux1oamreNwcXG0sLxK7WdwRjU2SZ3TRdyerfblv
	 QKKCEXzgRdljrTG+sFI729HtbKPtThs6KUVbiaehSLiJb7KV0UkiR5msMAWU68qAONYJg
	 2gMMD3gdH4R5kzWcvgVrdDf5UWkQ9OTGN66eclFzRzQq557fnL5khQdG6oqSU5Y/MDQgV
	 Kuug1ted08Dke1i7aIbvf6OJ8pzvvk6D0hhSOu3NhGDkgGyvEpZ/VpU0zywG4Hl4Fa2pv
	 TQoVum7BQTe1JjXOOLYSTO1W38Rkzs/SK+5uQHkwyx7Tveyiow67BbV+/sr6tLZY6HxSE
	 N3Jb9ezc5Pb0s5dcG2ic4czfFzgZFUvOShsS4hGPzxizj1wW+omcScUYOPdTVAt0yFSAF
	 4tCc4rtwl18gJWJr0vE8iDfuAdYh3Y61fQeSyzd52LFmY0KiFNaIbHtxIFN/B64=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Wed, 13 May 2026 23:14:50 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86: address Misra C:2012 rule 8.4
In-Reply-To: <bc6027ad-c8e8-4586-b165-d0f730cfa63c@suse.com>
References: <bc6027ad-c8e8-4586-b165-d0f730cfa63c@suse.com>
Message-ID: <883724a4dc0899f8aafd252c3d974a3d@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1778706891-BF171DB1-22F0873D/0/0
X-purgate-type: clean
X-purgate-size: 1760

On 2026-05-13 16:03, Jan Beulich wrote:
> ... ("A compatible declaration shall be visible when an object or 
> function
> with external linkage is defined"). Three variables lack asmlinkage
> annotations.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

> ---
> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
> (covering more than just this)
> 
> --- a/xen/arch/x86/guest/xen/pvh-boot.c
> +++ b/xen/arch/x86/guest/xen/pvh-boot.c
> @@ -22,7 +22,7 @@
> 
>  /* Initialised in head.S, before .bss is zeroed. */
>  bool __initdata pvh_boot;
> -uint32_t __initdata pvh_start_info_pa;
> +uint32_t asmlinkage __initdata pvh_start_info_pa;
> 
>  static multiboot_info_t __initdata pvh_mbi;
>  static module_t __initdata pvh_mbi_mods[8];
> --- a/xen/arch/x86/guest/xen/xen.c
> +++ b/xen/arch/x86/guest/xen/xen.c
> @@ -40,7 +40,7 @@ DEFINE_PER_CPU(struct vcpu_info *, vcpu_
>   *     0 vmcall
>   *   > 0 vmmcall
>   */
> -int8_t __initdata early_hypercall_insn = -1;
> +int8_t asmlinkage __initdata early_hypercall_insn = -1;
> 
>  /*
>   * Called once during the first hypercall to figure out which 
> instruction to
> --- a/xen/arch/x86/pv/hypercall.c
> +++ b/xen/arch/x86/pv/hypercall.c
> @@ -180,7 +180,7 @@ void pv_ring1_init_hypercall_page(void *
>      }
>  }
> 
> -void do_entry_int82(struct cpu_user_regs *regs)
> +void asmlinkage do_entry_int82(struct cpu_user_regs *regs)
>  {
>      if ( unlikely(untrusted_msi) )
>          check_for_unexpected_msi((uint8_t)regs->entry_vector);

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed May 13 21:17:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 May 2026 21:17:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308505.1579942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGxA-0001j1-4v; Wed, 13 May 2026 21:17:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308505.1579942; Wed, 13 May 2026 21:17:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNGxA-0001it-1n; Wed, 13 May 2026 21:17:16 +0000
Received: by outflank-mailman (input) for mailman id 1308505;
 Wed, 13 May 2026 21:17:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wNGx8-0001im-UN
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 21:17:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNGx7-00EUSt-TR
 for xen-devel@lists.xenproject.org; Wed, 13 May 2026 23:17:13 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a04ea09-2eae-0a2a0a5409dd-0a2a4502be78-44
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 23:17:13 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a04ea59-af86-0a2a45020019-a237832f8c9e-3
 for <xen-devel@lists.xenproject.org>; Wed, 13 May 2026 23:17:13 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id A34754EE1D2C;
 Wed, 13 May 2026 23:17:13 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1778707033;
	b=2uehh0KZQilLEJoP05q7J9zNLJbA6L/qWsnFklkG4CcZKiPo1SfZYDJ7FwLll21fwROG
	 E02XOkvvfnrefvmyC5zFs2TmZ4olu/Cl5H8mEgCOyJWN5RcB3geNOfgYqttGP2nSOeUIj
	 M2EQQMBxGS+8A0hICsOS7FIozCSWgDeBP1U+DUtG8seoEDaY23nDOexyy6jRiEiTX+s2U
	 UDx6JlcPtegCP1pyfsZd1Ls3lZ3XpyeGhjcPddqsZqFtFLPjSLoxa/VZPpTcLOTubGyD+
	 95GZUEkdwkNQZY1+jKo5aWdP9zA8D7irt0PZ04yaTdNxRuAfO+igsKyVBskCxQMv5rxqm
	 OnwLQ/SZ9PgR7QVDc+8RYD5lDxy45xLca5HnnRAG9XM6Cnntk31S7tU2OR6IVTaKUuc6I
	 yYa2rS+0TXr6/QPhEYZzJLjl1fxsWors2HFWHsziwd/lB1cSEeu9BNk96OjDfgqE0tYN6
	 T06hcgF6PVJE8j8d101htB2nXj5KON8IlbT0tioZN6CmIzK3sX7M09Opy2dfF7rAksL+b
	 7KOvHIrys/CS6DORPGQ+RcB60etz0HpcSHDhVGBVQXHBkzPNv1JNZRDsjtbb4LkWObepC
	 ghmncPoXeN3ktKfBmNtJxaAhDzHv3klKqjmZ8CIOGHu879eVZ6MYqMxfohzXNz0=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1778707033;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=oqMIl3ImIBNcSHSKMRhcxFJ25v5N9fxZ+6J6hCoODDo=;
	b=a7VmKZk/8+rDyVZpGZ0qtTM8qrxYwdccYgVz87RmAGPICcfjN7GEJQDh04GsJhJleqIM
	 dW77walFlT2At3F+14KTjPnSndLIXvYRZNamTmka9zKphhu075in2qzVMtNgpEXbTdyBY
	 kJhKnzZbJ5V3B2yLXwcU63lz6MwoaoNnF4GhFCdkZdMHrO/L13dgMi+qSR9mihsNzatdR
	 i5Vly00leQAS78CaLr8gd5FLJyo7ReQAIt1cxkDQtkdGuysDLtLNZ1Lcas3+bF5dJd+H4
	 KQOmOhvwfgqgzpxuwaNVzosSdy4cVy+D6ArNYheyrKEqkMHoialSiSskXw2t7qYQsy/Bk
	 a+fzLf7/kwHo3alHb7oABZZebpi7j519dUV1RlL+wq/GtPs/aBv4xOsVotXmPdIiwuuwh
	 V9huWFibMCQw1isyvGXbPchzdSMvQw83wa+O/jjKDfnDE6Wwy5PcFsDTSD4eHxlHdsLn2
	 aV+J4jbuY9xG5NWW0sHQD4z9SzqXNTqVqTjESr0xDZppEpbKiEn2HPVs8Fe0eRW96mIEo
	 kDfBlP984QVsJEKsqQqUTE9KB8niZdT1TbxZkxTbNpNmUlVKmw56NrOKoWp2Zrxc+PIAV
	 hl3MEih9xTC3hT5jkSELCEcL7Sm9TZQbNTmDvZWndF83NiR3k9UVoeRIWNmWnZo=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Wed, 13 May 2026 23:17:13 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 1/5] x86/guest: rename a local variable
In-Reply-To: <ea005773-792a-4db8-a8d9-a88049006870@suse.com>
References: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
 <ea005773-792a-4db8-a8d9-a88049006870@suse.com>
Message-ID: <010ae9668460c5a3a9705793713a976e@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1778707033-8316D161-F136A303/0/0
X-purgate-type: clean
X-purgate-size: 1098

On 2026-05-13 13:44, Jan Beulich wrote:
> ... shadowing a file scope one, thuis violating Misra C:2012 rule 5.3
> ("An identifier declared in an inner scope shall not hide an identifier
> declared in an outer scope"). No difference in generated code.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

> --- a/xen/arch/x86/guest/xen/xen.c
> +++ b/xen/arch/x86/guest/xen/xen.c
> @@ -203,11 +203,11 @@ static void __init init_memmap(void)
> 
>  static void cf_check xen_evtchn_upcall(void)
>  {
> -    struct vcpu_info *vcpu_info = this_cpu(vcpu_info);
> +    struct vcpu_info *vi = this_cpu(vcpu_info);
>      unsigned long pending;
> 
> -    vcpu_info->evtchn_upcall_pending = 0;
> -    pending = xchg(&vcpu_info->evtchn_pending_sel, 0);
> +    vi->evtchn_upcall_pending = 0;
> +    pending = xchg(&vi->evtchn_pending_sel, 0);
> 
>      while ( pending )
>      {

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu May 14 01:15:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 01:15:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308572.1579971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNKfm-0008Q0-4A; Thu, 14 May 2026 01:15:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308572.1579971; Thu, 14 May 2026 01:15:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNKfl-0008Ps-VI; Thu, 14 May 2026 01:15:33 +0000
Received: by outflank-mailman (input) for mailman id 1308572;
 Thu, 14 May 2026 01:15:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wNKfl-0008Pm-5c
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 01:15:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNKfk-00FiAu-Ix
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 03:15:32 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a05219e-2eae-0a2a0a5409dd-0a2a4508e5b2-42
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 03:15:32 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a052233-63b5-0a2a45080019-ac6904fedd78-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 03:15:32 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 0307660052;
 Thu, 14 May 2026 01:15:31 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 59FBBC19425;
 Thu, 14 May 2026 01:15:30 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778721330;
	bh=t5sjd5h7AhqCHvVTGxpv77qD10NFeCmZNyaIOsigFEo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=XY/7cH7CDop3NhMxmyZz8HzJ7yo6jP8EL77u2LyCfOe+Xzn0DGVHhebivc1BfPg6W
	 xXtsNpSMGDi775RwTcN8TNgLZDJA9JwUxE9sR/2mk4FyC46a8uwdSsT5aMnVlNprN+
	 O1RfQx1NV9UQl73zhWnZQfFdcEpr1p6ebaQAwlWrfBwJ5daN1mo9w+h7qb+kORgsiK
	 sRCfZTNDPCY8VuS0V33cJ58/PLZEKIO1IJxord3N3lmIWJ4mw+6UJDk6o+obtp+WOX
	 Tm5v2eBXfoGtQfhklh623ILwgdglZppI5uMvz/i1YMb1TxxJavC3npqdQAlKs/ovtg
	 2cdAzDtvhOBAw==
Date: Wed, 13 May 2026 18:15:24 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Juergen Gross <jgross@suse.com>
cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v2 1/4] xen/public: introduce DOMID_ANY
In-Reply-To: <20260429120619.1013440-2-jgross@suse.com>
Message-ID: <alpine.DEB.2.22.394.2605131815190.3930@ubuntu-linux-20-04-desktop>
References: <20260429120619.1013440-1-jgross@suse.com> <20260429120619.1013440-2-jgross@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-c1860d/1778721332-C4E78DB1-B2C6B2D4/0/0
X-purgate-type: clean
X-purgate-size: 386

On Wed, 29 Apr 2026, Juergen Gross wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Add DOMID_ANY to xen/include/public/xen.h meant to be a wildcard for
> domids.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


From xen-devel-bounces@lists.xenproject.org Thu May 14 01:24:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 01:24:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308579.1579980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNKnr-0001kg-Ny; Thu, 14 May 2026 01:23:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308579.1579980; Thu, 14 May 2026 01:23:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNKnr-0001kZ-LD; Thu, 14 May 2026 01:23:55 +0000
Received: by outflank-mailman (input) for mailman id 1308579;
 Thu, 14 May 2026 01:23:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Jason.Andryuk@amd.com>) id 1wNKnq-0001kT-Qb
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 01:23:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNKno-00Div4-DV
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 03:23:54 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 6a0523e1-e002-0a2a0a5209dd-0a2a450accb0-46
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 03:23:53 +0200
Received: from [52.101.52.55]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 6a052428-56b3-0a2a450a0019-34653437d48a-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 03:23:53 +0200
Received: from MW3PR05CA0008.namprd05.prod.outlook.com (2603:10b6:303:2b::13)
 by BY5PR12MB4193.namprd12.prod.outlook.com (2603:10b6:a03:20c::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Thu, 14 May
 2026 01:23:49 +0000
Received: from SJ1PEPF000023CC.namprd02.prod.outlook.com
 (2603:10b6:303:2b:cafe::99) by MW3PR05CA0008.outlook.office365.com
 (2603:10b6:303:2b::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.18 via Frontend Transport; Thu, 14
 May 2026 01:23:48 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000023CC.mail.protection.outlook.com (10.167.244.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Thu, 14 May 2026 01:23:48 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Wed, 13 May
 2026 20:23:47 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 13 May
 2026 20:23:47 -0500
Received: from [172.22.59.187] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 13 May 2026 20:23:47 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Mhu9FUR8iHeR+Q9nfyEMyNdN2mVabyzAf0/PH+ePpRFFJ2zJQLTQWnv6oFYoDDTwLq6mUCOG4K+jX9eYK7GxlZc5gO6l/47qNCfSPZpxumyX+F/PA8YaCJcbJmE4vQ2+f7Z940NzMjqQCFYI33tWrqoQGvruNcTOnqnKCH9y1EQcYy1ypp50S0dfSesyptwhQTD6t5hbpYxQr2Z6ZgtIah5hCmwGzPG9lw6W44ucKg4f8FT2UIBYLZ8+FI88z4Da1ZRmpCw+qwZ4plyc7oRobioSMiOOcwQFAsaItgrh83/rP0fgmLOI86WwmU0EUCvv1Mf2OFqyHvmJyKkobUd8UA==
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=9vMMdgFpCCx7rZUbpem9G3SNarBzXP9jMrSI85xD/z8=;
 b=krg3ygcli8gHfMF9fBUVgtYFNTRxpWGYoRU1Btfjeklg5//G0TSut4kVeLano9+FF4iLqphJUJ7VYliEq7xie9VIc3YIRkIIrsLV4HfITWZ9mDh6fURPOl2hi69iWE22bXhDhdq+cL/rskdHCmkYQqd8ue4c7y3Q6pv0I2FLXoZ93GisYNebomhGVmpF17FKBiZ58Tm2/gLgcqf8lnkSWc8+8bMjDs2U/iWDaMZkZEsQnKTNbBESC5J2fTlUMjbr+Z8fkDsSrVphuZ4uVYQzX1swCqGveONAToSzDwfx2EX85tPmkUeKHyYMfHzILK1k2R9ra/T34eZyDxdUQ9M8qg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org 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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9vMMdgFpCCx7rZUbpem9G3SNarBzXP9jMrSI85xD/z8=;
 b=zg33CVKGZf65aKsK8xCduf/yTY57te/T7JoIhGp9lzKIuzzc1zJMLyjadighh5F93WSkj+TthJGrQQ/9vsdJyRZTuRFkKSNdI3Mtc+XDTsEco0nXollW4htx6WZYRSaHZ0tfsqKM/d3Dzjt1cprDiscKlu8kUW99M/mFebakf3A=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <700f3bd5-2887-4f30-95b2-5dd19fb91abe@amd.com>
Date: Wed, 13 May 2026 21:18:46 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Xen-devel <xen-devel@lists.xenproject.org>
From: Jason Andryuk <jason.andryuk@amd.com>
Subject: map_domain_pirq(): pirq already mapped?
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023CC:EE_|BY5PR12MB4193:EE_
X-MS-Office365-Filtering-Correlation-Id: c2efcd20-7c5a-4360-b276-08deb1577325
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700016|18002099003|56012099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	mhmP0cPi7nKkdafkchOukfzOxMhVrJE3Ujd8lvvDc5+W8q8kOXkEhNpKowZS8gSxB8YfL4EGSvR0LG+7fZ1DosftmzQZyPfbeOLzFjv8WH87iyJx2F8C0do7/qy1hp5qYIVRTRb8mudKz46yAQMqwM8d/GuUQz3gw2nfDiLIVsKo7ZgrbvU6tX3Eir2HpmYFNOn2Lnd9GeslgE3cYiQHINMIXyCv5DOqfx4Ht/AM2wExokBk11cqswwgSbSss6uQtuih8Zkps260eHiEk/O97kqQ3zfuHqxuzUtFKbn79B30Gbnt4sltbiRF58/rBA0EpEozamw//oQBTCyJDlqVVPZfkyWVpeOYKzBX6ZIR4R/f/wPUT4q12IWihcrH4/EQMWamNIgcPPLejmQvM+xekf8K/0pjDdFkzImI6pPJFXM+0UTo7AT9uzj7T9RO4R0ehyCeFcX36V2b9/lweGWXCdd9uK1/NoEnexoHfIvcNNKX6JC2rR/yoHymprIhXhJUI9RLLcjE11cXCMbSHuQfJdCzh8TMqT2DIkMmURjYMBHxmoKrRe4j3isHl9neqXGr8rCUOIIOjZx43UqQLQY7QAOF6h6pe/efH9j1NextcPOgYELk97dn4Wlg5zVMX8f46v2hqd1DNb4o+1lEwJdplhzMJ2XueHZZjdp4vwTkZ065kNDOS9FKaTOCOq/XY4dCsH/3DarjWjvhShp/Q3YrvXi1IYJMhY1TC9ZuABaYo+M=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700016)(18002099003)(56012099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	hrVwLu7xq4dMloaBwk/WSxUPo3QvEab0RtKyLOLTMzN9OSe0NUw0lx/C9MauiqEKNaG5B5sNikCO1+Kl/EoixjxFWbhOCS01cXjIZzK17bF78kOgmsq/TUCt9MIeWo6jOgYnAxqDmd+IlS6ZoiY2ZH+FDQa6Mkny+PIlUbesDWUrm62pVHa+gHx8nDoTuGa7gKOBdx3j5Du8iFj/8MH19M2vzzBBhHBQu+qS5km0L91NYuRCp9E6a3DoFJF1cvVo+LahFB6oqXrJqIDaGXIeEkmvyDIWnLChFj0ofblbg1J2EPTEVVjDcd9pQq0V4o35Xm8w+cfu0B0r9C8ZoEyTJwSIz6JcqDHrd7yETmgS+xSJkyvsjRSS5JuJwUx5pdlapsQW9AaCJ5lGKzXlh6aVma2xJKrAKi87lB9R7CJZK5gLLPrkjRBbbhvvDO7a+ZYy
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 01:23:48.4584
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c2efcd20-7c5a-4360-b276-08deb1577325
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000023CC.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4193
X-purgate-ID: tlsNG-4011c0/1778721833-70F618B7-CAF279E9/0/0
X-purgate-type: clean
X-purgate-size: 791

Hi,

Early in map_domain_pirq(), we have this block:

     old_irq = domain_pirq_to_irq(d, pirq);
     old_pirq = domain_irq_to_pirq(d, irq);

     if ( (old_irq > 0 && (old_irq != irq) ) ||
          (old_pirq && (old_pirq != pirq)) )
     {
         dprintk(XENLOG_G_WARNING,
                 "dom%d: pirq %d or irq %d already mapped (%d,%d)\n",
                 d->domain_id, pirq, irq, old_pirq, old_irq);
         return 0;
     }

Why do we return 0 instead of -EEXIST?  Since the pirq is not updated, 
the caller doesn't know that pirq won't fire - only old_pirq.  For 
allocate_and_map_gsi_pirq(), the new pirq is still returned to the 
caller.  I would expect old_pirq to be returned so the caller knows what 
to use.  Am I missing something?

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Thu May 14 01:39:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 01:39:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308588.1579989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNL2b-0003ur-W6; Thu, 14 May 2026 01:39:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308588.1579989; Thu, 14 May 2026 01:39:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNL2b-0003uk-Sy; Thu, 14 May 2026 01:39:09 +0000
Received: by outflank-mailman (input) for mailman id 1308588;
 Thu, 14 May 2026 01:39:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <lkp@intel.com>) id 1wNL2a-0003ue-Jw
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 01:39:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNL2Z-004Ng9-Fp
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 03:39:08 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <lkp@intel.com>)
 id 6a05279f-5cb7-0a2a0a5109dd-0a2a4509e02a-10
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 03:39:06 +0200
Received: from [192.198.163.17] (helo=mgamail.intel.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <lkp@intel.com>)
 id 6a0527b7-2497-0a2a45090019-c0c6a3117e4e-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 03:39:05 +0200
Received: from orviesa005.jf.intel.com ([10.64.159.145])
 by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 13 May 2026 18:39:03 -0700
Received: from lkp-server01.sh.intel.com (HELO dca79079c3eb) ([10.239.97.150])
 by orviesa005.jf.intel.com with ESMTP; 13 May 2026 18:39:01 -0700
Received: from kbuild by dca79079c3eb with local (Exim 4.98.2)
 (envelope-from <lkp@intel.com>) id 1wNL2Q-000000005Xv-1qVY;
 Thu, 14 May 2026 01:38:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=Intel header.d=intel.com header.i="@intel.com" header.h="Date:From:To:Cc:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1778722745; x=1810258745;
  h=date:from:to:cc:subject:message-id;
  bh=zXwtdp+YjAdVp9OJoO84enid4Ti08H/Ay04wWcpCzEQ=;
  b=Xn0hNpdOXZcGlJ7oNF4fLVRmr4OuQT0BNOxOR9SkxNuy86qN0boTwj3G
   eFd3oj+KHyF9dsLUHmhZpeKsXVJDjMidCCmZNAxJtgneLJPx/nBRKMMt4
   enueEdtrAyuvz1sdCEl+ZEorQjEeLpjJXI7FNeC5zCVcZ1KjZXvjRVs6T
   T/RQSRhneTiJU2/CH7c+nKyXNcXg3ATnYwrPlqFkeS3MfUBJRU0ylgPcV
   ycgT8v74dEMMIH88WZI4uYnv5oJKG6VqamrWPRVgcsheMgCBXw0jgGbxm
   rYXt+mzMfPNrnyi+7pKwkyZdWsfaRdZq7dgDrW8U2YZ8xO1L+1P+Zs0dd
   A==;
X-CSE-ConnectionGUID: oCkmkbNjS6KEJI3wU5niEw==
X-CSE-MsgGUID: r6OY55CcRtasdHdPmSciKA==
X-IronPort-AV: E=McAfee;i="6800,10657,11785"; a="79519182"
X-IronPort-AV: E=Sophos;i="6.23,233,1770624000"; 
   d="scan'208";a="79519182"
X-CSE-ConnectionGUID: 3bH1zwYlQPC+w0k76cxGvQ==
X-CSE-MsgGUID: 4zL0JSdmRqifES204eLtcA==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.23,233,1770624000"; 
   d="scan'208";a="243228403"
Date: Thu, 14 May 2026 09:38:03 +0800
From: kernel test robot <lkp@intel.com>
To: Mauricio Faria de Oliveira <mfo@igalia.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
 xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
Subject: [xen-tip:linux-next 2/6] ld.lld: error: undefined symbol:
 __memset
Message-ID: <202605140922.q7IlUv7o-lkp@intel.com>
User-Agent: s-nail v14.9.25
X-purgate-ID: tlsNG-bad1c0/1778722746-41364A53-033F8F92/0/0
X-purgate-type: clean
X-purgate-size: 1335

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git linux-next
head:   67d618348f8f1ce11b1d76f3303a28097f165ac9
commit: 99cf26a6143c22ee6c5b940a0e5e027a99e5524a [2/6] x86/asm, x86/boot: Expose inline memcmp
config: x86_64-randconfig-005-20260514 (https://download.01.org/0day-ci/archive/20260514/202605140922.q7IlUv7o-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260514/202605140922.q7IlUv7o-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605140922.q7IlUv7o-lkp@intel.com/

All errors (new ones prefixed by >>):

>> ld.lld: error: undefined symbol: __memset
   >>> referenced by string.c
   >>>               arch/x86/purgatory/purgatory.ro:(__UNIQUE_ID_addressable___memset_0)
--
>> ld.lld: error: undefined symbol: __memmove
   >>> referenced by string.c
   >>>               arch/x86/purgatory/purgatory.ro:(__UNIQUE_ID_addressable___memmove_1)

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


From xen-devel-bounces@lists.xenproject.org Thu May 14 05:08:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 05:08:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308649.1580013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNOJ2-0000gT-Jp; Thu, 14 May 2026 05:08:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308649.1580013; Thu, 14 May 2026 05:08:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNOJ2-0000gL-GI; Thu, 14 May 2026 05:08:20 +0000
Received: by outflank-mailman (input) for mailman id 1308649;
 Thu, 14 May 2026 05:08:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wNOJ0-0000gF-RC
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 05:08:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNOJ0-00CCBm-4N
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 07:08:18 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a055840-bab6-0a2a0a5309dd-0a2a4503cafe-40
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 07:08:18 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0558c1-672d-0a2a45030019-a237832fc9bc-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 07:08:18 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 75C674EE3CC6;
 Thu, 14 May 2026 07:08:17 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1778735297;
	b=HU7ir73JHh4bqBYVlghZSSy9tINrqM0O46x9IbQsS9AtmVRo44wtvXLJRL00tHKcVMU9
	 P3s+s+Ms4n0Mgm0q+6WxHjidXTvGiTgGTmdvzq9sd0J1dEEb01vYBrbX8UfuvL7j8Yf1V
	 jlM8/bTJkFLfW1akiId3fUcTIK267MVRA+dUeWXLM2U3+ifLxV0jAHiObj/GKeVNr8Mcm
	 UAc2SFmdnr1cU3eMtWFNjX34QmMYKXqa9QZzB8Ob8qWGrY15RnSWns1vSiSW+PDymUekS
	 c0ip5hpm3N6r0u3dS/faLGMLGlepJ9N2pzeyHLqYPDlJD0AOADGCVZBrAO9NGD41ydfNr
	 Zn24700m0Y21nqUYMCpJ3G7ui5Bf9l1j+F1lL7Un4I4cVENjT/uHF8svdJQjoO+9wpbLt
	 677JCK361Us6pkRSh0IPimPRWq5P4xg+tZbJnhKafJWwcCiqEACaz9Kyh7tdl0DYfj+aI
	 PVrzKkAFIh1I1zQ29kxm8eKu3XA9sB78rmU1xRGWUCdJEY6876qMD7L0RSSsF87s9Sn9L
	 cIgnIKpDQJ1eBNihbmEQDQWBzQ79XtLkXldfejd8VdPANDepljnUDG3P0MXtDKNSPpZiS
	 2s++f6BsM2wCaCLJw7/6bjgQTTk2SOI+p3nzknhKMotqRoht/yoRmjD37TFNl6Q=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1778735297;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=7WnhF5P5oyrjZcB+Lkpp4p2tNB2BJVW4TYeLJP1ZrWw=;
	b=d5tQ8LtNIo1oRlyHywkztgwLysYOBQlMO5yni4ahpeRe2VEFmrNb51nhdtlDwesNhX+E
	 RVgQGhOQxltaV1bfDkVZyaGwMsAFl8nDdI+3+PhuQi6HL+g5uFCYO42POGXerRexxaGF7
	 LG/RKYTKGXZZ4PENaEf/2J4ZN95oFy9bvf9sNTih9oWZgfKcOl2CmBkus0GTGxLwz5JL7
	 r3UoKo40ndIQIpUkH21If8t1f3AvAkj2v+ulMxvIb+l66f1NlSNRaVmZhkQ865RayEUv6
	 gsyXZAbNd+CvZrpROaUT0MC8zCXZy5y7r/O/wkiiSWwWeAL7pRSZoc9g0+ZChI/G+VWTf
	 E30nFn5lDP9WDwgFuQs54BtYXcE7h1a85EfF2ExzNqbC8n/7IuCH2lk/AI78ZdBG4Lmtt
	 7pqZZDpNti/s8unYy0I+mBzFX6TNXjBi6QYjJOHuwJZMUW7nqTYpzkuVrZ7BqiSCJnBe3
	 x8BV6JM5gpxK6N3a976tWvt8GGoJxVHIFbY69abf5TT2osnfZuPxYIM+BGDAmTpkchSIH
	 JSfttKvRfMpesHWc9dX9zvCtv/oe+SNU5hjwt9HccsnLO1TVapkXbWpPvj5Qum4lMwcaK
	 j+I6PvdJvtXACAOzembfR1hsFYr61Gtl1zkJ+udj9kdZdDQD9QxVio6PDFulmoI=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Thu, 14 May 2026 07:08:17 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>, Stefano
 Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 4/5] x86/shadow: split a nested max() invocation
In-Reply-To: <146d214c-e766-4b3f-bc50-0b9beee50473@suse.com>
References: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
 <146d214c-e766-4b3f-bc50-0b9beee50473@suse.com>
Message-ID: <337dd83065dae7555dfecb2163241ead@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1778735298-3BF6A938-84558477/0/0
X-purgate-type: clean
X-purgate-size: 2674

On 2026-05-13 13:46, Jan Beulich wrote:
> Such nesting causes the inner instance to shadow the outer instance's
> macro-local variables, thus violating Misra C:2012 rule 5.3 ("An
> identifier declared in an inner scope shall not hide an identifier
> declared in an outer scope"). Use an intermediate variable for the
> inner invocation. No difference in generated code.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Supposedly this case is deviated (rules.rst). Does that deviation not 
> work
> quite right? Actually, am I mis-reading deviations.ecl or is the
> respective setting only covering the combination of min() and max(), 
> but
> not multiple use of the same macro? Furthermore, why would e.g.
> min(max_t(), ...) need a deviation? Even more generally, aren't those
> expressions too permissive?

Yeah, it does cover only mixing max(_t)?/min(_t)? because that was the 
only pattern that emerged in the safety scope originally. the _t is not 
there for mixing e.g. min(max_t(...), ...) but rather for 
min_t(max_t(...), ...) and viceversa; could be split if you think it's 
worth it. These expressions are a tad broad, because it's way more 
complicated to express the condition: "ignore overlapping only beetween 
identifiers defined in the expansion of max/min when used together". 
Perhaps it could be done, but then if you are already implicitly using 
shadowing in those instances maybe that's not as serious a concern?

In any case, the patch looks ok to me, so

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

> 
> --- a/xen/arch/x86/mm/shadow/common.c
> +++ b/xen/arch/x86/mm/shadow/common.c
> @@ -767,11 +767,12 @@ static unsigned int sh_min_allocation(co
>       * megabyte of RAM (for the p2m table, minimally enough for HVM's 
> setting
>       * up of slot zero and an LAPIC page), plus one for HVM's 1-to-1 
> pagetable.
>       */
> +    unsigned int extra = max(domain_tot_pages(d) / 256,
> +                             is_hvm_domain(d) ? CONFIG_PAGING_LEVELS + 
> 2 : 0U) +
> +                         is_hvm_domain(d);
> +
>      return shadow_min_acceptable_pages(d) +
> -           max(max(domain_tot_pages(d) / 256,
> -                   is_hvm_domain(d) ? CONFIG_PAGING_LEVELS + 2 : 0U) +
> -               is_hvm_domain(d),
> -               d->arch.paging.p2m_pages);
> +           max(extra, d->arch.paging.p2m_pages);
>  }
> 
>  int shadow_set_allocation(struct domain *d, unsigned int pages, bool 
> *preempted)

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu May 14 05:13:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 05:13:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308654.1580024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNOO7-0002DK-5a; Thu, 14 May 2026 05:13:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308654.1580024; Thu, 14 May 2026 05:13:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNOO7-0002DB-1m; Thu, 14 May 2026 05:13:35 +0000
Received: by outflank-mailman (input) for mailman id 1308654;
 Thu, 14 May 2026 05:13:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wNOO6-0002Cz-0O
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 05:13:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNOO2-00E6X3-DX
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 07:13:31 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0559bf-bab6-0a2a0a5309dd-0a2a4502a652-46
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 07:13:31 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0559fb-af86-0a2a45020019-a237832fe72e-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 07:13:31 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 936184EE3CC6;
 Thu, 14 May 2026 07:13:31 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1778735611;
	b=o4LYxBwvn6sKBJvvv8iC0km2iJEX+krdKHCzU5aDaBBep9QsB8gISDaJCSMWQjI7esSg
	 xJNPhCaTBNidtBCQWuA5ofkBANRoVQ8u3EMzCh4ylGM3t/WK+4uXNYQDE+l51aqqknJfF
	 VnPbh93zI4IhwuBZH7fH/GrL5rmU5jOSdHbvU9fMEvkAX+TWcbKT9EZwbY4kh5Ob3Poid
	 h10tMllmS85UezQeOS3r+CyrkhyTKffjs05qJD8B2derQA4fr+6yhvWSTtc1ncdwqka3C
	 575jVJK9wRoQUyWhrJ5QRjiByU4VHtaIP32dFXKjGHCCgS8HgpdJi4jqFKrCVI9Zr/KnK
	 j6GQsiCwh2mHYAExyeyB33Ntn9lY16WnoNUabVP8teAbnIyWWvT6zBWtRjmOlGmj7DadW
	 UGhZ8duKtGohheCCZYDOexgW4HNNpyRnzM7fOT0un4wJ2x+Wkk+KbIslCO+xZHHon0dGM
	 BBKZ2jzlEJPiT12UOP5XaBW9bcRarXjrkUWXBKx4ajXLi8tjZQ7cm8fdeMMiD2owTySHd
	 tBV5KkUgZNR8JXPrD9bh9AELykA2dob6uzqnx4iaMrC1Mqd/YW58PDC0TcVZI7nlVF6hH
	 gC3B/UZJsXTE607y5AK/hYZq56hiMHB/bFsA7QbbZGXLjUkyT3l5ll6ORuejCjE=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1778735611;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=qMgjClQG4L0Cwyij0BS7SjO9YGLwjbCqLC4+pd/ehuY=;
	b=GCttkv0KgW4YdmwUkdmrlLifMbd8YYpGqHd27oKo+GVvu43M6huEpFy0dfkEwQVk3l0X
	 C4Bq865lMTmPHUesbLaUo4c0xJ8xbUrAvCe2KtLdnXSLbf5q/X0zndBMzTQUm102yYjdQ
	 S2ytP47WIrSNgIguRCAjufyMEqtdIQbfxrFKMcXk4ktOtN9aqUmKyBx45vm3zTRFbG6fx
	 uBvoWDdERkFSa/0jAZrx2prgGGWEZFWOlZtjQ37wMU1NMHKRt4muzsSWEbyNTFStdiK5H
	 iJyI3jWMNXr6nyquKdegO9si9nUq19lYwiCaanmgUndhb8ltRdsIdTu/5g5KpK/RT9aKr
	 3gvD3PnT81FfGrsir+TKuqVcUYv7RGL7CgcCNMCsDMBU6JQ6OkIP2JDJv5NVuHrPI8utH
	 +WfUXw6rrDdrNqXwIvHNwQ6GchuIVyGrN/EsFfkc/3KjJLVj6GTy5sG9EhAomPLQ7/OcY
	 q/SClOcmdw0Yi+cvhL4X7+9hHhqjql7/ZryoAK1CVJuhkA5B5hIaaZ8ZOmsLYEPf/anHp
	 6yg2WCMFJlB1h30RT38f4ca2ySKfeXbhq0MFFJZ07JhUTY57eXeGSDfe0MAfssQBkWqMq
	 k456tILie2TqJcmMs4cuB19NZZrtchJMQFJiUInYLtNaCw0ccgbS/fEosYWH3Q8=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Thu, 14 May 2026 07:13:31 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86/shadow: deviate guest_va_t wrt Misra C:2012 rule 5.6
In-Reply-To: <4c96b39c-ddfe-41ad-ae6c-3393dd4f9e90@suse.com>
References: <4c96b39c-ddfe-41ad-ae6c-3393dd4f9e90@suse.com>
Message-ID: <f23600207d41194b1773cf21a37cecea@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1778735611-AB563161-AFF1F1CB/0/0
X-purgate-type: clean
X-purgate-size: 1367

On 2026-05-13 13:48, Jan Beulich wrote:
> ... ("A `typedef' name shall be a unique identifier"). Much like 
> already
> done for guest_intpte_t and guest_l[12]e_t, but limited to 
> shadow/multi.c.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

> 
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -143,6 +143,11 @@ number of guest paging levels."
>  
> -config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(file(^xen/arch/x86/include/asm/guest_pt\\.h$)))&&any_area(any_loc(text(^.*(guest_intpte_t|guest_l[12]e_t).*$)))"}
>  -doc_end
> 
> +-doc_begin="In x86 shadow code, the type \"guest_va_t\" is 
> deliberately defined
> +multiple times, depending on the number of guest paging levels."
> +-config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(file(^xen/arch/x86/mm/shadow/multi\\.c$)))&&any_area(any_loc(text(^.*guest_va_t.*$)))"}
> +-doc_end
> +
>  -doc_begin="The following files are imported from the gnu-efi 
> package."
>  -file_tag+={adopted_r5_6,"^xen/include/efi/.*$"}
>  -file_tag+={adopted_r5_6,"^xen/arch/.*/include/asm/.*/efibind\\.h$"}

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu May 14 07:20:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 07:20:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308680.1580052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNQMQ-0002AQ-0E; Thu, 14 May 2026 07:19:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308680.1580052; Thu, 14 May 2026 07:19:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNQMP-0002AJ-Th; Thu, 14 May 2026 07:19:57 +0000
Received: by outflank-mailman (input) for mailman id 1308680;
 Thu, 14 May 2026 07:19:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wNQMO-0002AD-Ax
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 07:19:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNQMN-00GLUF-DH
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 09:19:55 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a05779b-e002-0a2a0a5209dd-0a2a450c9666-0
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 09:19:55 +0200
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a05779b-62f1-0a2a450c0019-d155dd32bc07-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 09:19:55 +0200
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-43d7e23defbso4531889f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 00:19:55 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fd6276741sm21345245e9.0.2026.05.14.00.19.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 May 2026 00:19:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778743195; x=1779347995; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=SbrOmt9u4LFfWWNLKP728x6vD5BVfjv8IKO/Jqosws4=;
        b=ioYPqmqfhfuivBOB5k7NOShF6TDd/ZV9VLSkPcO/DIUiHP+4IQfFc/gbOU4cQDxbec
         LY24GDigYwG2diTy5OEVyIyOokFP67CHTFBqM8Povku1O/acmXeZTD/JaR+7s83TiUsb
         fwnfx/7XxH+8HIBWX3V8PM/n4thrIbU0vlvXXYl/eIvT6cPptThfQygRBwATDJxFBkzz
         hFGtsviX8+3DOmrY3cPvesuqkfai205ZNu58G4HVThHLiE2F9I5ej/lqWiuGFUA96Nj4
         3sK77/IK2NNUe3SUHbHX3wUAL2LrZLf5ZZV43KCcIO5uwSezShiTc5gfCawQfY+HcEYu
         YVJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778743195; x=1779347995;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=SbrOmt9u4LFfWWNLKP728x6vD5BVfjv8IKO/Jqosws4=;
        b=BhNJyqEy0TvmqQSAJdzvZEAR2SQOsWZSjGErn44Hht0fEO9ebMpaM9xZBkbvg4xQmX
         X+5+XitJC3ytHaCFtP0ESJlL2JzY467BTnmjg6eSKd6w1GwbOML2BMi0gUWeceCha2qq
         bxj55Bj0O3vwSN//j60UISI0JBQpc35IGYPwxnbRDDGdJwJ86XGpk5Byp5md1mYsSF4F
         jDdgTaE0TIllHN7aNICEKEgnJEddFIjyoYhtcoKj3tzdNZc2VSO6ki+M8XbjrDPqUXS+
         +ySBOoCWAWA7s5Oxq2KQgJ8b/xxCeVNhMyFohw3xtolYE4G0dZLIJjYWexnRqa3BcPSR
         PEpQ==
X-Forwarded-Encrypted: i=1; AFNElJ+FBRUUiOGEfUgZAiqq7mNcViyTr4nbAFYbJNPBDXfK1t+4cV7NKxIYBvDRI4G1lHm7XMZAZvHcIic=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0BU7vnsBizCKdCu8iFzfmznpYgMXf4EkiiQv1mhGi71xALHEy
	xIoG4lBj+dmpFV0WMUMZyqY2+Qs9ofIn6+nLPbmC7qBfjnb+4O3mdDVh
X-Gm-Gg: Acq92OG8tTxbiN4i3DXtXVm5W3eFZHAXO71D53jlG7NDDfu6VIPVH0N3TEcxsP3N+6q
	IZ8AJIghvl8KIa9VlWzfe0xcdVadxgn/opDXeaIDE4oKKPZ/vwJLuZMpKqxgxe0YZlDjyBE/Yvj
	Rbw+VFxEuAi3Xbat0EWpBJC+PlG6uK7+Fu89BTpOQbnBvAAub4Yj8I7iJZkUXqtsORNVyIZ8CJK
	YBoiyr2c12pxeejuuxwSx4NmNOyBpUZvpCxYnEzV6noT2siIOYRZDcOKXLiBykemlVKrDqvQQuI
	mTRJvsqxkgJNLSaNgZCp4vZOO1pieruE2NWppgChR2Tc6ZKl67j+eh6iNnOkRuBMmN479P08l5f
	QjaO08R5qq3sOtJnchRA/buDQPkJ1UOtRrOoGEJxhPOEGr3MJxZQQsZ2yeo+W+vEkNEOw9dZ0lD
	Sw4uFkeiHrmm32wjihrWFVNJrgMzXPNYHuyBw1eeeZBlQCOT3ppM4cEJeBqdbvFC5rf3XSG76jk
	3I=
X-Received: by 2002:a05:600c:1547:b0:489:1f04:96c3 with SMTP id 5b1f17b1804b1-48fc9a02834mr94395215e9.2.1778743194606;
        Thu, 14 May 2026 00:19:54 -0700 (PDT)
Message-ID: <a06f6f51-7355-4770-90be-6867530c2bd0@gmail.com>
Date: Thu, 14 May 2026 09:19:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 05/11] xen/device-tree: use p2m_gpa_bits in common code
To: "Orzel, Michal" <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Luca Fancellu <luca.fancellu@arm.com>, Jan Beulich <jbeulich@suse.com>
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
 <da9139f28ec72a7a2b9be949e67d57693af8b780.1778140240.git.oleksii.kurochko@gmail.com>
 <46c3f430-77a6-4baf-9597-17873e0782c4@amd.com>
 <7c75dce1-f0e9-44f6-bda5-9d18435b882d@amd.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <7c75dce1-f0e9-44f6-bda5-9d18435b882d@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1778743195-E2F72CF5-4C41460D/10/73395122804
X-purgate-type: spam
X-purgate-size: 1920



On 5/13/26 1:16 PM, Orzel, Michal wrote:
> 
> 
> On 13-May-26 13:14, Orzel, Michal wrote:
>>
>>
>> On 07-May-26 10:58, Oleksii Kurochko wrote:
>>> The IPA terminology is Arm-specific, so rename p2m_ipa_bits to
>>> p2m_gpa_bits to use architecture-neutral naming in
>>> xen/common/device-tree/ code.
>>>
>>> No functional changes.
>>>
>>> Reported-by: Jan Beulich <jbeulich@suse.com>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
>>> ---
>>> Changes in v5:
>>>   - Rephraze commit subject.
>>>   - Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>.
>>> ---
>>> Changes in v4:
>>>   - Nothing changed only rebase.
>>> ---
>>> Changes in v3:
>>>   - Introduce #define p2m_gpa_bits p2m_ipa_bits for Arm instead of
>>>     renaming of p2m_ipa_bits to p2m_gpa_bits to keep Arm part of
>>>     changes clearer and keep using Arm-specific terminolgy inside
>>>     Arm code.
>>> ---
>>> Changes in v2:
>>>   - New patch.
>>> ---
>>> ---
>>>   xen/arch/arm/include/asm/p2m.h        | 2 ++
>>>   xen/common/device-tree/domain-build.c | 2 +-
>>>   2 files changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
>>> index 010ce8c9ebbd..7957dbd96e57 100644
>>> --- a/xen/arch/arm/include/asm/p2m.h
>>> +++ b/xen/arch/arm/include/asm/p2m.h
>>> @@ -14,6 +14,8 @@
>>>   /* Holds the bit size of IPAs in p2m tables.  */
>>>   extern unsigned int p2m_ipa_bits;
>>>   
>>> +#define p2m_gpa_bits p2m_ipa_bits
>> This deserves the comment e.g.:
>> /* Common-code alias; ARM keeps the IPA spelling internally */
>>
>> With that:
>> Acked-by: Michal Orzel <michal.orzel@amd.com>

Thanks!

> Forgot to mention that I'm ok to do this change on commit (patches 1-5 are ready
> from this series).

I would be happy with that.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu May 14 07:23:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 07:23:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308687.1580062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNQPW-0003eP-DV; Thu, 14 May 2026 07:23:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308687.1580062; Thu, 14 May 2026 07:23:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNQPW-0003eI-9h; Thu, 14 May 2026 07:23:10 +0000
Received: by outflank-mailman (input) for mailman id 1308687;
 Thu, 14 May 2026 07:23:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wNQPV-0003eC-79
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 07:23:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNQPU-00CT8O-Gg
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 09:23:08 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a05782e-bab6-0a2a0a5309dd-0a2a4504cc26-38
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 09:23:08 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a05785c-1dec-0a2a45040019-d155802ee8a9-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 09:23:08 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-488ff90d6c7so67186115e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 00:23:08 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fd64da1absm72610615e9.14.2026.05.14.00.23.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 May 2026 00:23:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778743388; x=1779348188; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=dBFTQsx8f1UsLchLKiSDobVzI6t4xMbQ9YQuVhMXA18=;
        b=knGYy3mTuDzZJwZWCxoobzzG8tSl3T5xP6UqrdrLpRwvLz++dUDaXsScn3YLZotdjq
         uBRRgqpafJae1ZY87/fEi4++f3wGseB+P59rzcgt+HVVewTCH9v3el5HUgfpfoIZcgTI
         B4NVeC12HwUYfOaMdavzaUGBHg/j7GOtm7JLBePWUei4xYfq2Zchi7LwdYCusK5nl//x
         lSJwqS1sXTg4aMbt3YI/POhYEfFxSk3agEs51Y5lcLiVkLnfnO5X26RF7qGJ1cmUMVzZ
         1O8wzJxooX3MDBjwKOxtcFV8s5mhtYAbMUTpqM91ayAJIc4ZG+6XUavjtKCuRX13HtI+
         BRxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778743388; x=1779348188;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=dBFTQsx8f1UsLchLKiSDobVzI6t4xMbQ9YQuVhMXA18=;
        b=fj/iaD7hx6bGiPmDPVfsBfn2Qo5DshMPm/+3dNUjxER/KOrHwHtTwQ9m8vSjhyeNh0
         i1lI/7j1R1SoGOQz/x0sgDL1/6SbMKkFbphz2Apeu07sWCoqp6pvFZqeM4Sj2QEsmT32
         /WIg9uoHZHq+6TJTyBNdWvbw4MFjv+46OoYCNdxGI1Sr/BBIARg4Iz1JlDiFNOK2GkX5
         MXvPswlcF30X+IvNfBjbdo7KRy/vvwoeNCXKuQoPSj34i8pIGTDaBVPxk+KTY6P3o/7Q
         Jmc8iCwtsDO8P/K7kGOI7pJ/hWoakIjNhiAQmTNBMR+vydU420TsREi+n6J67UAd9iG5
         k1QA==
X-Forwarded-Encrypted: i=1; AFNElJ8ZgLvPTdX6jDuF5LlPeZF2nG/B0u+707S8MIIAOV2Arg206sHNdeCGqyhyLTRTlprZQOibYsx6BiY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz+HLc5NTKAw4oFSAmoEULSLvpMO06jaLvnt+CrzwKwPILh9tkj
	ACY8+MCNJMEC34sYcUSpYw7Zm+2qJNp7wR96HqUGdEY3fobWHf7oLLzS
X-Gm-Gg: Acq92OFv0WTvu2jaX+GKy1uSWWWcyMdqEc7vSdzpWmyWAdNGWTiRdfTrf0wljzR+SAH
	Cslahaoz9Eofkbs3kVT4JmOatjWdmrQ0TSmhlfxODmy3zCvpWmtf32On6+BilQT4WcDWGoCDMJt
	a/TQyLzgy5lyWlJRGSXxx0QJXCNfU4a1V7VEMiYFqwp5fN35N0cBXPqgb/pp5FHNehZlurJcAWF
	XkbZZu5syXYkYDk6YUgd9dRBwFUSd42FGfoIrf9QF3T293bmj0LTbTyGslTkMRGbU/lMas1e/Qy
	ByUmqMZBXWDerO2GNChe7L/lC+sLagKk1YfWmUQErm/4MNrlEKGx+U0ikKU9ZE9MlXInsAKs/MX
	6/cIELvJV1EFWwOBoElaK8ZvufRVWi32MwTTZ2m14h7azxXeHM8+9j7q0BlUzq3snI9eAcxaYeD
	JBt8cMeGIC7Fu1JvUnwjP+40ZK6kZs0iXkkJooirdVKT9XeMjznkNT8euRYnLcSIR7AptTNjlEa
	08=
X-Received: by 2002:a05:600c:45c8:b0:48a:7965:b92a with SMTP id 5b1f17b1804b1-48fcea0fa4amr92996315e9.26.1778743387661;
        Thu, 14 May 2026 00:23:07 -0700 (PDT)
Message-ID: <dafc0bf9-e02d-4b89-9731-48570f118e2e@gmail.com>
Date: Thu, 14 May 2026 09:23:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/2] tests/paging-mempool: Testing for P2M relocation
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20260512155540.1733403-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20260512155540.1733403-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1778743388-29B7B3FF-D6B74900/10/73395122804
X-purgate-type: spam
X-purgate-size: 508



On 5/12/26 5:55 PM, Andrew Cooper wrote:
> Andrew Cooper (2):
>    tests/paging-mempool: Misc cleanup
>    tests/paging-mempool: Extend to test P2M relocation
> 
>   tools/tests/paging-mempool/Makefile           |   4 +
>   .../paging-mempool/test-paging-mempool.c      | 222 +++++++++++++++++-
>   xen/common/memory.c                           |   2 +-
>   3 files changed, 223 insertions(+), 5 deletions(-)
> 

Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu May 14 07:27:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 07:27:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308694.1580070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNQTN-0004CL-SV; Thu, 14 May 2026 07:27:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308694.1580070; Thu, 14 May 2026 07:27:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNQTN-0004CE-PE; Thu, 14 May 2026 07:27:09 +0000
Received: by outflank-mailman (input) for mailman id 1308694;
 Thu, 14 May 2026 07:27:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wNQTM-0004C8-D8
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 07:27:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNQTL-009cVS-Ps
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 09:27:07 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a057910-2eae-0a2a0a5409dd-0a2a4507a780-28
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 09:27:07 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a05794b-229c-0a2a45070019-d155802da8b2-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 09:27:07 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-4890d945eb4so46941665e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 00:27:07 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fd63052b9sm14143555e9.12.2026.05.14.00.27.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 May 2026 00:27:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778743627; x=1779348427; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=i8d7z1rh/c7xbzrs4O0IBsk/WrWbYrbyGA7OYm+AvuE=;
        b=ra0pLFDnlJCYyZWtv+H/Ipb3fcbT3EWYC57wOjpn6vluGrcrcESMvNk3GVFMeTPNlM
         ynhtk1GwzX1t42RsyYggb377mKoh8/KxvLFEK5J/w1p1vpmBONCZoBUwEAXURidmKKpv
         ssqydpEP8cI+n4ZXx7/Ih5oDtkFVqnFoD5mlppZaRU6tpqbGncgPEz6YmQPzk2RPWveD
         igS/2shBv/OuRa3mtascahwBSZKHWTh8jTvJuwpE/iauJgdyGJJAC1G6UfOte+8vjemq
         cbyFIzckg2PUuGIqcmicAkxF2QU1Prl/SKhcSnP6KO+FIaT9Ddwuy6ZgoD/TtEp+AhUY
         fSlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778743627; x=1779348427;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=i8d7z1rh/c7xbzrs4O0IBsk/WrWbYrbyGA7OYm+AvuE=;
        b=Eg623YzmY5R9EZptKdZk0fT0oLB2e6t9hpz3ZS4sOEzw1/6hUGnSBVNkN+wxnQjXD/
         7Nnekgll/JRWg2sxbCNxXNebDEZiBD00bmbggRT2G4b0ONvdcKz9Jx2aFJTtihuZoQiT
         FFMnt6kkk6RjwVvyEfA99hy/NxEqzI5jsDl+I7k6d0dvfzFU+JSviliJLjFRiVmwMKaQ
         VxKffidJapGHMkM20rOiE6qmj5qUg+igtLAD0RtA8Spze4UXar896ie7bO8SCGtePc6/
         5UmUL6CuY8TR/oHlNNqu9hKMfKpkUcUp/+WRxfTx35bfMEei12qgcjoftinz5QCx6ZkR
         oLNA==
X-Forwarded-Encrypted: i=1; AFNElJ+otTynajBR5RjdZqExrP00zKFNL6OJrzm+y3oIjXW7dX5tiQBa+NPkB9cjLsr4auX3xtJ1zwvx4gc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw2fM2a2q5Ia9ZeMYfTE4/+krKlu7WeeBeSiOUjfvbfevU29aPT
	V4ZfGiBV0BBW/in7NFg9D3U89+45LS1WhhTvnJLMf3FXc9fSyrPZFafP
X-Gm-Gg: Acq92OFwx7jMih9Ykd907hF6aAYCfolMhV7qUAS+w4JQj5miDYaRhUo7XUWjjtlwNjp
	O7mSRd3DVnC0RO2emPGFiXOTRup93O2UNRisDIWLjNdcbGDBHn23XiB30oGMqMlU6tPNj95drVr
	00T4TeNwbGIs3lMTvTD8O7Opyvs7cg1+wktmwE6Y4dUzCtGBVj7CuWXTR/maSqfz/cN+jDgZ5gy
	OrGabpH+IA2rVejHtWlFPHp/Y8ut8UVp6xFI0LEdDodH92d0Qg6d9dYX5G0iNbYZecM+KOiFWAi
	VkLGMifyaVHDRsw/9pbQd6lgm7ufn7rfReXVNZfRze7HcQL68CyWuVnNcgS/ZgowHxDbg+JpTGr
	CC7ttjwscGZzlDzjLxBjd1cffn3tI3E0ZM7gygGbqg3vjnBUYcdLO8VEzIQ4c1nNag7owl09FMg
	cU6CM7JHt4JwidSc0i9cdKfa0n9SijQkklxEGu8ydCc69FpsfEvkh6Of5RecWnK9k64fd2DwYv1
	O2yein5LHhgGg==
X-Received: by 2002:a05:600c:34d6:b0:48a:79d8:a8d6 with SMTP id 5b1f17b1804b1-48fd635049amr779655e9.7.1778743627246;
        Thu, 14 May 2026 00:27:07 -0700 (PDT)
Message-ID: <e81837f1-8d97-42c6-9bf8-f6829213733b@gmail.com>
Date: Thu, 14 May 2026 09:27:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 1/5] x86/time: use RTC century byte when
 available
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <2723456f-5d8c-4a2a-9876-e65d35579936@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <2723456f-5d8c-4a2a-9876-e65d35579936@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778743627-23175C48-3A017615/10/73395122804
X-purgate-type: spam
X-purgate-size: 1635



On 5/12/26 4:58 PM, Jan Beulich wrote:
> Without this the present logic will misbehave from 2070 onwards.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Generally it looks like 4.22 won't be used in 2070 or higher (I am 
curious do we have similar use cases now that very old Xen version is 
used nowadays?) but the patch looks pretty straightforward:
  Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

> 
> --- a/xen/arch/x86/time.c
> +++ b/xen/arch/x86/time.c
> @@ -1257,6 +1257,7 @@ struct rtc_time {
>   static bool __get_cmos_time(struct rtc_time *rtc)
>   {
>       s_time_t start, t1, t2;
> +    unsigned int century = 0;
>       unsigned long flags;
>   
>       spin_lock_irqsave(&rtc_lock, flags);
> @@ -1280,6 +1281,8 @@ static bool __get_cmos_time(struct rtc_t
>       rtc->day  = CMOS_READ(RTC_DAY_OF_MONTH);
>       rtc->mon  = CMOS_READ(RTC_MONTH);
>       rtc->year = CMOS_READ(RTC_YEAR);
> +    if ( acpi_gbl_FADT.century && acpi_gbl_FADT.century < 0x80 )
> +        century = CMOS_READ(acpi_gbl_FADT.century);
>       
>       if ( RTC_ALWAYS_BCD || !(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) )
>       {
> @@ -1293,7 +1296,12 @@ static bool __get_cmos_time(struct rtc_t
>   
>       spin_unlock_irqrestore(&rtc_lock, flags);
>   
> -    if ( (rtc->year += 1900) < 1970 )
> +    if ( century )
> +    {
> +        BCD_TO_BIN(century);
> +        rtc->year += century * 100;
> +    }
> +    else if ( (rtc->year += 1900) < 1970 )
>           rtc->year += 100;
>   
>       return t1 <= SECONDS(1) && t2 < MILLISECS(3);
> 



From xen-devel-bounces@lists.xenproject.org Thu May 14 08:26:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 08:26:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308728.1580099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNROr-0005Ml-JF; Thu, 14 May 2026 08:26:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308728.1580099; Thu, 14 May 2026 08:26:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNROr-0005Md-Ei; Thu, 14 May 2026 08:26:33 +0000
Received: by outflank-mailman (input) for mailman id 1308728;
 Thu, 14 May 2026 08:26:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNROp-0005MX-Sc
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 08:26:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNROo-00FaSD-Op
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 10:26:30 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a0586e7-bab6-0a2a0a5309dd-0a2a45038bbc-44
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 10:26:30 +0200
Received: from [52.101.61.65]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a058735-672d-0a2a45030019-34653d413bce-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 10:26:30 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS7PR03MB5447.namprd03.prod.outlook.com (2603:10b6:5:2c7::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Thu, 14 May
 2026 08:26:27 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Thu, 14 May 2026
 08:26:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QIEO/Rlckm/N/aqvY5pU3+9CserO23BXZiLPT3uTuSj/Cw91kD8UJLhTnLr3lsZE5eZWY5kY+k64wlt11w7R/o4j9CL8XwWJytwfE+vMod2C1bM0g8axe7YaUPR0g3tdzQ9kcS3faeNJVe+j10MqFupM/AM/FPD7FXq9JnibZlOV2poJkvPy54gXD2McDTzTc4qofN7LozI9gdlCBAtQ1PwPXub++WiOrwapWLIR7tu76z5M/dx7+Odfb2iIJsivR0F6BlpPVJfmx8rlodBP0zHF3N7vI8pHqo84+tQ+qtcpGwByvH3BlH3OtnTrBI+zFlJGZcW22q16XZS46UtJLg==
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=0yarz+iCBQ6fwySuMnC6plDb2Fr9B9vp4POLRhIBt/8=;
 b=PCn+5KYdwHi27x4WNhE8U9CKq0owXHzd7tIAkfK2LTKsuAqYAoI/oeBHCPaHcqUF0dAe88vl2laB3mx7uyCKlVHM7B7pITLd49pbNRSMhrKpK8M18ww99ZcmYS/nqSI35kzmviipvCDZI0AqQbkvJIPc0wPaiI+A8yMq2jekimrz4N2+KzfktuH3RcwiHeWdVa4zBOaifIYYaq4GYxZk1jfLzI4r/XrjG1u4wI+oefLIvf/mN1Vd1hjUTr4JEmU9uwACzRW/bIAzuce8Cud0t+YSHBSDB12kMHIaZJymMYP3WFf3Iqk/w2kRlvgjcrgv7ZIkhV+RAmDbox3kKaBA9w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0yarz+iCBQ6fwySuMnC6plDb2Fr9B9vp4POLRhIBt/8=;
 b=R+4g2+M9HVNtjlfZ3vY1cO649rgstqRhyt2jiisfb/6km8bFyuSfyG5lxlim5AVeGTnmTNt6mYIkXn04WtuNKeOaS6qXWLABih+dq20TAc++HTU+pDwZQZOW/VI1WxYQXLPrmAZjRCs/rUA/643I6HtdtYsLEZVZGqW1/kjc+O4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 14 May 2026 10:26:20 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: map_domain_pirq(): pirq already mapped?
Message-ID: <agWHLHzvhKCLQMI1@macbook.local>
References: <700f3bd5-2887-4f30-95b2-5dd19fb91abe@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <700f3bd5-2887-4f30-95b2-5dd19fb91abe@amd.com>
X-ClientProxiedBy: MR1P264CA0177.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:58::8) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB5447:EE_
X-MS-Office365-Filtering-Correlation-Id: e961a39c-a332-4917-dc53-08deb1927dc3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|11063799003|56012099003;
X-Microsoft-Antispam-Message-Info:
	aXDr6unMIbXUFf30/soGEhu8raTSnwo3SEfODCvfyvepx4sP4lJ1BiaFXy902bvj24X+U6WTReqzZB7M97Xmilty1yh6CzTNz2mcQ6RNAGGVOQZ0BiWmH+4rfYOwVVjlAWYdRq/Ak6s8J51jdDPmOHwicuEG+hNLwtNk/gFOhpK/6f541HCJ0r/xflUmOeHo8ItpeDVUa0KgB5S960TQRZ9zmmwcwl2xCcxvt6z0ixU1ykZU1P39djw5VktMBjv1qhlubXfQxlylhLzzbyIB46yeHaMEqdM2u4fQI9+qtzceO2DWmbSAqdZlm7GbXajHOSNATaXVc4ZlICrAbNlbhyBu4YxB0VJNXbs5sQOwL5gLRvTjrd3gdjOnXFsMx9ksgLlX7a3My0y9TbQPHs8Fi7j63rJdJzaGd5xKnr9KnyNXalPTq3CqtO7uh3kTfPXvk3aLNqJoXetq32qrQze+xoyXpfdgdz9JNmsd43eiHONJI98oXUoGmzQVR2rI729V+HMeDGckOOnhPzsFOZ4lsk14FzlZPNFPQAQkZPCZAHwzHxWyoGNzi6zKAHCRUPMO8aNOKJ7DWDTZWnzBQ0AOO3QHzBxsj/8jxBUCv/3fRslWWU5GrD1MfwfarUTTwNRhwEgbRKOwXVNTjonddnaA7X2Ecqcwu0nTuzjozGX/fFULk/T7HDqgNJDoxGrI3Qtw
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(22082099003)(11063799003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Zm11enlnVEZwV0NIcTdUWmNOcGQyOHp5RGNwSUg5V2RwaGkrbzBHWSs3Z1dP?=
 =?utf-8?B?eE5wbkJSc1U5V3hJZnRSbEZyZUZrcWxkclA0blo3L2t3Z2hOMFkyVk5DTGNa?=
 =?utf-8?B?dXB6bFJFcnQrdDc4WU5ZalkyQ2ZWTWJTVDgvcFFPRWltM05tTnhKSm9UbGNV?=
 =?utf-8?B?V0dRN1FCTHllSThqSDZvdldkTDNKMlQzVEsrR21WcGMvRkloSUhVRGl1bytZ?=
 =?utf-8?B?bk1KSGl2Y3J2UlRhcGJYT3E5TDZuVGRyZnBUN2VHblVoc24zZGlOSU05dFlG?=
 =?utf-8?B?TU1JeGdFaHBpdmNocHB2amg2bGt3b2lJY0IvUFpNdHlGMGo2STRXV3NmRE5t?=
 =?utf-8?B?RjlOWGs3eVpGeWVYa0p3U3hkd00wWmJGdEEzdENGYk00ZlEvSGRwZGlIdC9Z?=
 =?utf-8?B?VExDcjJmaU9GeGowYkxjZGViS1ppU2ZBVzgwWlhvOVhTcWM0MWh4NUtIK3py?=
 =?utf-8?B?d00zaGU3czF1dGduT2VRQVRyRmQ0bm85emZ6N2g1WW91Wmgvd1oxYkRVOG1u?=
 =?utf-8?B?dDY2UGtaaFVtdXpBRFhObnp3d3huRUVET0VtVXNobWNZV0Zsc2lxaFNkWU5T?=
 =?utf-8?B?MG41YnVZQ0RSdGpWem9XSW1oSm1TSUJSVTdDVEZFTDdPVFFDSlpvQ21WaU1t?=
 =?utf-8?B?cWlGV1JNZktYU0lnRVpNOXJJak9BL25qcE9wS1BNbzVJTjdhMjF1bUNLY1Ev?=
 =?utf-8?B?V0p5YzV3c3FtYVR2K1FtR1NIWGtzZU95MXBlSElZRDRrU0ZaeHJSeDdXMlIz?=
 =?utf-8?B?SjJhbUhWWDlDMVhWWTJVS0o3SEZ0ZGJUS0c4bkJ5MnNEdTdEajRpdUUyeEUz?=
 =?utf-8?B?TWUwMk9zSkxMa0w0cXpkbDhzZTMwVDV0akNTUHBydSswK2FoNThVOVVJWDdG?=
 =?utf-8?B?ZHdqRVIxdWpUMWQ1MUFpV3ZWU1BDS2p1TGJkSG5jWE12TGVSdlU5bFIyZ0dk?=
 =?utf-8?B?R1dNbG5SaEpkeHRlUFVrK0F6bENOdGVLditGVTl1U1Y4M2dPN3V6NHpzRVNp?=
 =?utf-8?B?UkVsREpNcG40MGZadGkySzVVeENuUGhOTnFaTnc4dmZmY2g1Y3RJNVdUUTFh?=
 =?utf-8?B?bDlLZmx3Mk5WOVVEWGZpL29qWkNJYzVsdUZXaStQMDJ3eHR0Y1R3SmVqTWZs?=
 =?utf-8?B?K0dhMjZJR05tYjJJaGxFSWVqaHdZNXk2VDNaWnV0bnpsRXYwRzFuQkJHd1dm?=
 =?utf-8?B?MXJ2VFg3MWZMUXpZd2sxVElNYytiYmxyWXFNUjVRQTJNaldCWUVUWXRkc2l6?=
 =?utf-8?B?M1pWUXdkRDg4MUNJbVluN0xOcTdSbmdYQUpwNmhDS2JjRkp5VXJpRldadnZG?=
 =?utf-8?B?cWI4RHArSEZldzNRWFBqeXBJL1U2aXJwemZrNXZJRVU4RnFWN0F3anp3OXJO?=
 =?utf-8?B?MDd5WGJ6c1VCZ2hteVJEUGhYUE9OZWZ4TlpvLytPd1U1ZzBLRlBZQ2dsUkUw?=
 =?utf-8?B?SjV2Q24zSmd1ZmtCN05rQnZTazVJaFdzOHJ3cEY4SGRyOEYyY2dWSG5Wd1Er?=
 =?utf-8?B?WHBDY1V2KzV4S0ZWcmxNSHJtNGxwNllWUDM3MTNQMU12bDA5MEI5RXdVM3pM?=
 =?utf-8?B?aWJHZUpxWElCcTk1SktTUGdVU3JyUEtWaVZHSmRNQ2pLSHVZSi81VEFxMS83?=
 =?utf-8?B?eWxSYzFxN1ZVUzFiR2JIMXk4cndDc3Q0UXJRdGdDTzV2MThaaytlT3dPamFa?=
 =?utf-8?B?bkVIOGxkS3Q3bmRtYmtjRTFBSldCekZmZ0NvQ25NQkhHQjJ5VzN6U3kyajUz?=
 =?utf-8?B?UTAyWUlPTlBtODVXN1dvUjkrekNadlhPWHY5UlVYSHJPbXc1UFBXWEUxMXRL?=
 =?utf-8?B?YjZLRjFJSU41Kys1YUJQRmg2M1JoZUhnL3NFTGcxNXA0YjI4UjhUbURQdlU1?=
 =?utf-8?B?WGxPTXBhdzZ2d0NSZldVMGFmRW1zdFhVWGVOeW5rSU8ybkxrMmN2TVBPbWxT?=
 =?utf-8?B?K2xzcElCV1c1VlpFdzU1VWpLSWVBem5KZVIxanVRcmkwUVUyRzhXZnlxRitL?=
 =?utf-8?B?YjVSZGs0MmdxT200V2FpWGpNSWVOaWZ5RmlCYVpYd3N5VXM2WEViVnp3ZXl0?=
 =?utf-8?B?aDRoRExmazVhTHpadS9ELzUrN1NGUW1ESVVzZ3hJZnVyYzNLaUEvT0Vjc3Jj?=
 =?utf-8?B?bkFjSWpPaHRTaEp5VWl6U0UyWURXQXBZbFJUdnNQYUJBME8vdm5LMGR3RXVx?=
 =?utf-8?B?aFB4akpEOTI0NG5rOHZGRVFBTWlRbTdhK2hqTFl2dktLUkdCTldRNjdLUzRH?=
 =?utf-8?B?aDRsOGtWK2Q5UFcwekpLaHJ0K1UwN2lYbEpvOGE5L20zb1BJRW1UOEtaZEc4?=
 =?utf-8?B?T1Z0UjlSWmU2V1pVRUxMQ0toYVF0bitNL0xsd045Vnl2OGNrb2Jmdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e961a39c-a332-4917-dc53-08deb1927dc3
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 08:26:27.0646
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: lMbhmEZD4pgCRbjwIiVQfoCVPVT0EKL/uanPN43gs6ryw2dCuionXnREvdo8y1i+NIwMLoOSyZg7Ieym7ozRCw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5447
X-purgate-ID: tlsNG-33051d/1778747190-38577938-FAA2A475/0/0
X-purgate-type: clean
X-purgate-size: 2641

On Wed, May 13, 2026 at 09:18:46PM -0400, Jason Andryuk wrote:
> Hi,
> 
> Early in map_domain_pirq(), we have this block:
> 
>     old_irq = domain_pirq_to_irq(d, pirq);
>     old_pirq = domain_irq_to_pirq(d, irq);
> 
>     if ( (old_irq > 0 && (old_irq != irq) ) ||
>          (old_pirq && (old_pirq != pirq)) )
>     {
>         dprintk(XENLOG_G_WARNING,
>                 "dom%d: pirq %d or irq %d already mapped (%d,%d)\n",
>                 d->domain_id, pirq, irq, old_pirq, old_irq);
>         return 0;
>     }
> 
> Why do we return 0 instead of -EEXIST?  Since the pirq is not updated, the
> caller doesn't know that pirq won't fire - only old_pirq.  For
> allocate_and_map_gsi_pirq(), the new pirq is still returned to the caller.
> I would expect old_pirq to be returned so the caller knows what to use.  Am
> I missing something?

Looking at bfc341a65cfb2 it seems like this might have been an attempt
to keep the previous logic in ioapic_guest_write() that didn't return
an error when attempting to add/move an in use IRQ, while switching
ioapic_guest_write() to use map_domain_pirq()?

The commit description is not very helpful sadly.  I think the mention
of "And this patch also makes broken NetBSD dom0 work again." is
relevant. AFAICT NetBSD will do PHYSDEVOP_apic_read -> modify RTE (ie:
set mask bit for example) -> PHYSDEVOP_apic_write.  However the
semantics of those hypercalls is not symmetric.  PHYSDEVOP_apic_read
will return the vector used by Xen in the RTE, while
PHYSDEVOP_apic_write expects the vector field of the RTE to contain
the pIRQ.  I think this is why map_domain_pirq() was adjusted in such
a weird way, to ignore requests with bogus pIRQs and still succeed, so
that PHYSDEVOP_apic_write would also succeed.  Ideally the interface
should have been adjusted so that read/modify/write cycles using
PHYSDEVOP_apic_{read,write} would work as expected (iow:
PHYSDEVOP_apic_read should have returned the pIRQ in the vector
field).

In the context of GSIs, I think we aim for Xen to always identity map
them (so IRQ == pIRQ), but there might be (or might have been)
hypercalls that could allow you to create non-identity mappings
between GSIs and pIRQs.

Explicitly looking at allocate_and_map_gsi_pirq() do you know what
causes the domain_irq_to_pirq() in allocate_pirq() to not return the
already allocated pIRQ that matches the passed IRQ?

Overall we should likely adjust map_domain_pirq() to return -EEIXST,
and then fix ioapic_guest_write() to shallow such error so we can keep
the current behavior for that specific interface.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Thu May 14 08:42:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 08:42:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308738.1580108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNRdg-000061-QI; Thu, 14 May 2026 08:41:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308738.1580108; Thu, 14 May 2026 08:41:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNRdg-00005u-ND; Thu, 14 May 2026 08:41:52 +0000
Received: by outflank-mailman (input) for mailman id 1308738;
 Thu, 14 May 2026 08:41:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wNRdf-00005o-7O
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 08:41:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNRde-0057nR-FC
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 10:41:50 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a058ab8-2eae-0a2a0a5409dd-0a2a4503c22e-6
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 10:41:50 +0200
Received: from [209.85.208.173] (helo=mail-lj1-f173.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a058acd-672d-0a2a45030019-d155d0adb036-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 10:41:50 +0200
Received: by mail-lj1-f173.google.com with SMTP id
 38308e7fff4ca-39397d63804so89349241fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 01:41:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778748109; cv=none;
        d=google.com; s=arc-20240605;
        b=ILG3PhRC3dABd7Sv+UOaQzZb8on6W9GHbG1v2/Y/spCxNV7lK4qRswH+/9paTNkRlr
         MyazpK6x9xfsYWB9lH3IebFdtvaYIS4P2h98UgvDIG7RJdm8d9iSFHjHbVk9eI0sr0Sz
         ojZ9Xw8/iJZKLcBFMEbFwg3NXC+4deOPmU1RnZLgjodpkEkqi4k3Sv9Dtj+q6LT7Fbyo
         symyurKwsTWqlDzPdr8H9txvdgvvHQg+EAwqFoBdtz3EWfE/jW5mBGp7+KTol9M182PP
         MkJfsmqfZFsdB9FlS8o5GADLP/llW+84isVMT/8Fs+3XFTpSfL0qdGCnoaUelvjmFEw0
         grBQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=cluKyGouWJtd1lIstxQNzBM7OpUssjSxRkEElOaVOGI=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=jFtxp2UmrAaxC5LcACWgqhEp9ZmQjiqQKM5YRZzxWQHqmiiysfIMJ0wa1zHWjoptFy
         4wcodmDZFN+ELOn8MroFvKAKElm6Fs9Fhrb5cJP5OS4cFKRuaFSOYO6kKurHHjsRqzHE
         F4Ios+duLVzrwK6k4kTmDis4OqqDanYSBzc7X+2qChgyedHu/n9rnBghoXBRY4ksKYdN
         wt2vhCjn380txTJp5Ch6pwjK+O0bp5gOV4PSDc1HkVtBTz4R6hht+XQsXfx21DM2Y8pL
         RFNBlxXhw1tXuSUlij3W4ViTTSFNyyxDs69VIH4ydLgxHK2toKar41HK/C0xEnSIs+Zv
         nb3A==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778748109; x=1779352909; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cluKyGouWJtd1lIstxQNzBM7OpUssjSxRkEElOaVOGI=;
        b=L/mHnFPGME2pWa711Ro7S0dXqQ/Ljjf9/rub+hXlBHdlMZhBYY/6C2QqrKKWn8FJdb
         31Zfr3Kj+k//6nROr6qYi/Snals+32tr4c/q4xg/CF12LTvoqv6VwMONvFP8zGQnyuPL
         v0CF6o0Lezl1J0cTiWpheOM14cjeqEtKVDKdRajC5LaW86tnb2HMiPZWu9MDrGwBaRjT
         qFt7JFF4G6OgvXstLLByghd2UiWn0tfWwNPPFJKinlidN3WQaLEIwr3225uC4aQfxl1t
         kD9uOvUPGf3Rc0ZwonNn0yegf6JsFdpaPbHvzh9FoqTAvA2U10WsIHdwLgBC9P+IaiNf
         37bg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778748109; x=1779352909;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=cluKyGouWJtd1lIstxQNzBM7OpUssjSxRkEElOaVOGI=;
        b=p/UFFZcwHRQiVN8Bn0OqmNXowngqKcby3RRuJ39KawFl/Y/PjL2z2G7ZlDUW8X7yZp
         R1aDT93Z2uDmKSnLTVJVinwB5nW8fqsoMHL/7IMaChVfGXrwqYgG7xi57kaJ3RQutbs0
         L3JYba5FcF/QL/plWzFKf0Kli91ARLWzFLZzDsWZByC8717Atz/WKT8c+0x3S0janlzw
         OI/2CviyJklH7zH552RcjBnNMB8MJSAVwPnR+Su0B65iopbGTTa8t/7zf9Jw+HiN/cll
         DMKwPLNjHWy6xbKrbkKParpNQKEVc7lDsQ9h0eQ8LeQbgIJkt+R0eZboyF2cytIMiFKp
         g+WA==
X-Gm-Message-State: AOJu0YzarTZnA+Zz8tlaLbUeWSBuoFMIUTf21FNWH1JcKiEyfHkZBI2B
	eHiVSt22UQaUXl/EZDSCrl7yqW3wR3EulXls9yabMvFGkNzsgLiXguqcEgfHbV/wtB69b9d/MoE
	3LkaLLhKoqvso6VWhI86hTuuzOXZIykk=
X-Gm-Gg: Acq92OFyIwXRGVCBw5e9ySuWyfCKsQXarlUj5mmT/dQCBqXluH8KGVn+GffB8yqOBhd
	EyP/MkbNiPd9AGFfl3RUC8ur8/43GX0dDklLsJBdk4MItATG1h7wGwWVgXrzlnMQgTyH277ZD6L
	4A8Y52TxsM/uh1al3a0OTGPVmo6M/6ZUsouWKR6A/X2DiYcG2KVMX8L8Hm4lxmOkSDjCp3v84YL
	54TEfheNOvZBTwSjz3ge3m7qIyUBOvintsOx3JTWW2RoxrRvmTZ1o+v8/d4JkXR8QoLa+lnpCO1
	z4tgM+sQ0gyPdCs=
X-Received: by 2002:a05:651c:546:b0:38f:f8f3:6c58 with SMTP id
 38308e7fff4ca-3944b4225abmr27236341fa.11.1778748109260; Thu, 14 May 2026
 01:41:49 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778605274.git.mykola_kvach@epam.com> <ddf37bff562e7e2055ee049ab63111c5a2a2e611.1778605274.git.mykola_kvach@epam.com>
 <B1776A58-502C-403E-8EDD-6FF3B62E1EBE@arm.com>
In-Reply-To: <B1776A58-502C-403E-8EDD-6FF3B62E1EBE@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 14 May 2026 11:41:37 +0300
X-Gm-Features: AVHnY4I0gUvzQQ-_qHdTa0hzEHhPjCzUk3TSOa0yP8AT7mJJff5njkcTSwduex8
Message-ID: <CAGeoDV_XncpoEAnKVzeGo6Hr3ry5iwT0-Pn6NfruqSbdyE+V+w@mail.gmail.com>
Subject: Re: [PATCH v9 03/13] xen/arm: gic-v3: tolerate retained redistributor
 LPI state across CPU_OFF
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-33051d/1778748110-4066C938-535ADEF6/0/0
X-purgate-type: clean
X-purgate-size: 4492

Hi Luca,

Thank you for the review.

On Wed, May 13, 2026 at 5:53=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> > On 12 May 2026, at 18:07, Mykola Kvach <xakep.amatop@gmail.com> wrote:
> >
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > PSCI does not guarantee that a GICv3 redistributor is powered down acro=
ss
> > CPU_OFF -> CPU_ON.
> >
> > DEN0022F.b says CPU_OFF powers down the calling core (5.5) and CPU_ON
> > brings the core back with a defined initial CPU state (5.6, 6.4).
> > However, PSCI leaves interrupt migration and GIC re-initialization to t=
he
> > supervisory software/firmware stack: the caller must migrate interrupts
> > away before CPU_OFF (5.5.2), and the execution context that is lost in =
a
> > powerdown state must be saved and restored by software (6.8). PSCI also
> > calls out GIC management explicitly in 6.8, including retargeting SPIs,
> > preventing PPIs/SGIs from targeting a powered down CPU, and reinitializ=
ing
> > the CPU interface after CPU_ON.
> >
> > This matches the GIC architecture. IHI0069H.b Chapter 11.1 requires the=
 PE
> > and CPU interface to share a power domain, but explicitly allows the
> > associated redistributor, distributor, and ITS to remain powered while =
the
> > PE and CPU interface are off. All other GIC power-management behavior i=
s
> > IMPLEMENTATION DEFINED. DEN0050D Chapter 4.2, "Generic Interrupt
> > Controller (GIC)", says the GICv3 redistributor may live either in the =
AP
> > core power domain or in a relatively always-on parent domain. So after
> > CPU_OFF -> CPU_ON a secondary CPU can legitimately come back to a live
> > redistributor with GICR_CTLR.EnableLPIs still set.
> >
> > Handle that case in the LPI setup path instead of assuming a fully rese=
t
> > redistributor.
> >
> > The LPI path needs special care because the GIC spec makes redistributo=
r
> > LPI state sticky and partially implementation defined. IHI0069H.b 5.1.1
> > and 5.1.2 say that changing GICR_PROPBASER or GICR_PENDBASER while
> > GICR_CTLR.EnableLPIs =3D=3D 1 is UNPREDICTABLE. After clearing EnableLP=
Is,
> > software must wait for GICR_CTLR.RWP =3D=3D 0 before touching the pendi=
ng
> > table. The architecture also permits implementations where, once
> > EnableLPIs has been set, clearing it again is not guaranteed to work.
> > Where an ITS is present, the spec strongly recommends moving LPIs to
> > another redistributor before clearing EnableLPIs.
> >
> > Because of that, treat a retained EnableLPIs state as valid when the
> > redistributor still points at Xen's expected PROPBASER/PENDBASER tables=
.
> > Only try to clear EnableLPIs when the retained configuration does not
> > match Xen's state, and wait for RWP before reprogramming the tables.
> >
> > This is also consistent with platform firmware reality: PSCI and the GI=
C
> > architecture allow platform-specific redistributor power handling, and =
not
> > all platform firmware implementations force a full redistributor power-=
off
> > through implementation-defined controls during CPU_OFF. Xen therefore n=
eeds
> > to tolerate retained redistributor state on secondary CPU bring-up.
> >
> > Keep gicv3_populate_rdist() resident as well, because gicv3_cpu_init()
> > reuses it on secondary CPU bring-up after init.
> >
> > Tested using Xen's non-boot CPU disable/enable path on Arm
> > FVP_Base_RevC-2xAEMvA, both with and without:
> > -C gic_distributor.allow-LPIEN-clear=3D1
> > -C gic_distributor.GICR-clear-enable-supported=3D1
> > and on Orange Pi 5.
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
>
> I understand you will send a separate patch to fix RWP.
>
> Looks ok to me, I see you=E2=80=99ve touched some printk in gicv3_populat=
e_rdist() which
> were wrongly having %d for smp_processor_id(), sometimes maintainers are =
not
> really ok with that when the changes are not related to the commit, but a=
part from that:

That change was intentional.

In the previous version of this series, you pointed out the
wrong format specifier for smp_processor_id() in one of these
printk()s.

Although it was not directly related to the functional change in
this patch, I decided to fix the other similar occurrences in
gicv3_populate_rdist() as well, for consistency.

>
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
>
> Cheers,
> Luca
>
>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Thu May 14 09:10:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 09:10:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308755.1580116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNS5W-0004cW-WE; Thu, 14 May 2026 09:10:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308755.1580116; Thu, 14 May 2026 09:10:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNS5W-0004cP-Ta; Thu, 14 May 2026 09:10:38 +0000
Received: by outflank-mailman (input) for mailman id 1308755;
 Thu, 14 May 2026 09:10:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wNS5W-0004cJ-9M
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 09:10:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNS5V-005B0q-MJ
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 11:10:37 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a05917a-5cb7-0a2a0a5109dd-0a2a4501b2c4-38
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 11:10:37 +0200
Received: from [209.85.167.49] (helo=mail-lf1-f49.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a05918d-c1f2-0a2a45010019-d155a731f05e-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 11:10:37 +0200
Received: by mail-lf1-f49.google.com with SMTP id
 2adb3069b0e04-5a85b30dd54so7717652e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 02:10:37 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a90f11a7a0sm342068e87.24.2026.05.14.02.10.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 May 2026 02:10:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778749837; x=1779354637; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=UEnvo9OmaIrifU4IF1NjzdEIguWJngIg2w/0p8PT3os=;
        b=qzai1i5DRdf851JTfRhiRMDgRqN90YY3Q31iosIbC01pt3rMnERgAk86QxAT7JGP9s
         ZjT5a0UrszQswsGFtRVfwqGOOq56vP/Qq/KeUFZaSVqPBE6SGdyQITFycWvZ3/nP7ffJ
         hnBFiPq//jMUJUd2MPaOSEITKyDr5/3bCtv5WQoznQ3Fq4/2w1+1YWPVTeqf7GPzU3Xq
         K8ubY3a1rFtFRarUwVgVg2XY/7lNOcyg5Mb+Xb+3lyFYPjNZ4V2BxkuDoewm5/WZ+Ohw
         7tcMTqmJYOgDXKPqGGiey5RgChUTzhDfznjHQh2lwVRpnhZ0p/a2uVHU6kscV05sSINh
         /Cgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778749837; x=1779354637;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UEnvo9OmaIrifU4IF1NjzdEIguWJngIg2w/0p8PT3os=;
        b=YDp+rUz48UBbIBhN8IGbEZRElwuRc8gde9cQrYIYw6Arnzj6C9P2rbqX59+g5f4pF4
         x4+UdOksOiXChAf66xIz/NNPA97dKznB9UsaYBpGScziFRmhnqRykKfumuZsvNmXeRb8
         iQXSdp792zshb5TCDKbdwC7rrTkp1fyCid0WsY9myWRlUrKMEVhPKt1vLOJzkNgHnZXg
         rjd2WxefDI+VCGWnV20nkr9/m3aV89tZqgxl751D8BCpBCMS9Bj1RWwakwpri2HKhEPt
         hOa0JFgnBbWNZcZWWqoXs7vimaiAdnllL9Th1/kpfkz3YVLxwiPfqUx0EHSlmCYiXzzn
         B+tA==
X-Gm-Message-State: AOJu0YwUN0xx2ROmQUhCYwdii2K3hu8G2EMxdXyR7Zx9iHejAOpUzls1
	pUclab3vVOyJHLcn8wfpcEKEo3SpF96O/XbxQd8JVvhUH53w3lnmSV+b8k3anw==
X-Gm-Gg: Acq92OHAoi0sSDgIrlii6uAKKFOC1HLOZA+jd8Y139QGODcsxSZQmWSscatpw0Pf1hl
	dBGczDH/AQfzuDqyd9Ao14hEaFc+J8Siuv9zZlg+JV3Sp9N2fM0twcN29c+IOwc53l6+gw5+Xeh
	BpdIvzNltPVIsM/uy4NEaFHyap1kN1j1OIASpHyBpEpL37t380K1J52oWV3TSwzU96HZooKTPfT
	Dqkrmgd/hvu0sStcwFeQ7l681oKvy8MJZhtHTPO+La08Nd8LQhPYu0QcQqHJAKVTknACcZ0FWWA
	gKtT75ClNReYIrPzlVQonc2wnUc/Tsw/3NV/g/E/m2S32w2klOAWtgxsUGI+Y+cHq4eqN66PFyq
	aVSnjEZa8mwekvlnfHm2MXg2KBmBT1ScmcygZ/N+0xtfGuKc/lUvwdWlnIeWldgshErDQec1GCN
	6WxzRcwch/7qziY4mTTd4OdO1eYw==
X-Received: by 2002:a05:6512:3186:b0:5a8:6931:ddea with SMTP id 2adb3069b0e04-5a8f37c31d9mr2050765e87.3.1778749836559;
        Thu, 14 May 2026 02:10:36 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>
Subject: [PATCH] xen/arm: gic-v3: Wait for redistributor RWP using the right bit
Date: Thu, 14 May 2026 12:08:13 +0300
Message-ID: <0fc5e4d297b8dde66ea36be3ebd60a68dea2562d.1778749474.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778749837-B6342FF4-3695D959/0/0
X-purgate-type: clean
X-purgate-size: 2933

From: Mykola Kvach <mykola_kvach@epam.com>

gicv3_do_wait_for_rwp() is used for both distributor and
redistributor writes. The CTLR register is at offset 0 for both,
but the RWP bit is not in the same position.

For GICD_CTLR, RWP is bit 31. For GICR_CTLR, bit 31 is UWP,
while RWP is bit 3. The redistributor wait path was therefore
polling UWP instead of RWP.

UWP covers upstream writes, including Generate SGI packets, and is
not a substitute for redistributor register write completion. The
existing redistributor callers need RWP semantics for redistributor
register writes such as GICR_ICENABLER0 and GICR_CTLR updates.

Add GICR_CTLR_RWP and pass the expected RWP bit to the shared
helper.

Fixes: bc183a0235e ("xen/arm: Add support for GIC v3")
Reported-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/arch/arm/gic-v3.c                  | 14 +++++++++-----
 xen/arch/arm/include/asm/gic_v3_defs.h |  1 +
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 7f365cdbe9..dfd5d44603 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -274,16 +274,20 @@ static void gicv3_enable_sre(void)
     isb();
 }
 
-/* Wait for completion of a distributor change */
-static void gicv3_do_wait_for_rwp(void __iomem *base)
+/* Wait for completion of a distributor/redistributor change */
+static void gicv3_do_wait_for_rwp(void __iomem *base, uint32_t rwp_bit)
 {
     uint32_t val;
     bool timeout = false;
     s_time_t deadline = NOW() + MILLISECS(1000);
 
     do {
+        /*
+         * GICD_CTLR and GICR_CTLR are both at offset 0, so this is
+         * valid for either a distributor or redistributor base.
+         */
         val = readl_relaxed(base + GICD_CTLR);
-        if ( !(val & GICD_CTLR_RWP) )
+        if ( !(val & rwp_bit) )
             break;
         if ( NOW() > deadline )
         {
@@ -300,12 +304,12 @@ static void gicv3_do_wait_for_rwp(void __iomem *base)
 
 static void gicv3_dist_wait_for_rwp(void)
 {
-    gicv3_do_wait_for_rwp(GICD);
+    gicv3_do_wait_for_rwp(GICD, GICD_CTLR_RWP);
 }
 
 static void gicv3_redist_wait_for_rwp(void)
 {
-    gicv3_do_wait_for_rwp(GICD_RDIST_BASE);
+    gicv3_do_wait_for_rwp(GICD_RDIST_BASE, GICR_CTLR_RWP);
 }
 
 static void gicv3_wait_for_rwp(int irq)
diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/asm/gic_v3_defs.h
index c373b94d19..3714cfeb7d 100644
--- a/xen/arch/arm/include/asm/gic_v3_defs.h
+++ b/xen/arch/arm/include/asm/gic_v3_defs.h
@@ -146,6 +146,7 @@
 #define GICR_NSACR                   (0x0E00)
 
 #define GICR_CTLR_ENABLE_LPIS        (1U << 0)
+#define GICR_CTLR_RWP                (1U << 3)
 
 #define GICR_TYPER_PLPIS             (1U << 0)
 #define GICR_TYPER_VLPIS             (1U << 1)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 14 10:18:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 10:18:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308774.1580127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNT8i-0005Ue-Os; Thu, 14 May 2026 10:18:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308774.1580127; Thu, 14 May 2026 10:18:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNT8i-0005UX-L9; Thu, 14 May 2026 10:18:00 +0000
Received: by outflank-mailman (input) for mailman id 1308774;
 Thu, 14 May 2026 10:17:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Fkyv=DL=gmail.com=nicola.vetrini@bugseng.com>)
 id 1wNT8h-0005UR-A7
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 10:17:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNT8g-00GhHP-Mu
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 12:17:58 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <SRS0=Fkyv=DL=gmail.com=nicola.vetrini@bugseng.com>)
 id 6a05a11b-bab6-0a2a0a5309dd-0a2a4502dff2-44
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 12:17:58 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <SRS0=Fkyv=DL=gmail.com=nicola.vetrini@bugseng.com>)
 id 6a05a156-af86-0a2a45020019-a237832f8248-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 12:17:58 +0200
Received: from nico-ideapad.sca.unipi.it (unknown [131.114.30.34])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id 9D3C24EE3CFD;
 Thu, 14 May 2026 12:17:57 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=131.114.30.34
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1778753878;
	b=vrVY1tf3+RCzl5ZfIkcRzlNvGHsb60OAvUBeTTaNNQcTlAATiRXO5IioJLunpbSuOr7L
	 FF0dz7p4LjeP+cq0DTH61DT13JFhKker82I1k207yKtt6mLurc9TPb6GoumEQScvtDjij
	 7j15b5cBBistsjbdkqw+gqoBu3L6EHN7TWWBn2VygILLVk+Aa08ivi6EbaXJkcO79oVW0
	 MsZWIbeZpXJX7A04thQ5GxA5bHjkGCTUOpqtk8yjNtoa7gW+aU5O8JRl8h2xFDqKfyJie
	 f1W7Xhu+9CEtzQfdSNxVkK+pew8uPiYf1apXh1jeZhwZlwkCeR1Mnkz7Yw81b//F03YoF
	 VS0izfP1+vedqExXS2e3EKdtqLqDJyIIlxJQ6LBw2XUPytPs5RpVlG5KWT9W9ldYONgfo
	 eDCSkYpD0F6E4mpw2EJGZQKptd96cUhAs8198Z1z46n/auzpriKx8Ai/EVczhcbATmBlu
	 Uphu+jKtPS19pGxdeQyPzJGRgLYjEPJzj1+VWpM36bXYAN0Br1XUdD7LTyBjReiDY9dVf
	 EJ8Y2oylhmQBefdNb5tduRVmHC4fD/0XjtGil7naoG/5ZWOMVas9YsA6sYToBrr/aSJNm
	 iz8itEtnH8umj4Wm2LdluCffD/QpD1AjeO9O9Y2gqAjpz2jbIYQDTUtPUPvas/I=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1778753878;
	h=From:To:Cc:Subject:Date:Message-ID:X-Mailer:MIME-Version:
	 Content-Transfer-Encoding;
	bh=Zh73BPxmAVtviTnIt+PaWBA8sAaQSvHP6+asUf5cbXI=;
	b=ygkMBRSMFcV/naw7ZxTji3SuTcgSwftO8TIQoHNf/7kAjDxLruAr4po7pmqd8fYDtpvp
	 Qz8RUZQeo7WiaTvir/2ptzb3/6jAvaOZAjCtwDHXI9qibVOls8pEi5YkOBy4jDt3Vakdn
	 tolIjZNf81H8Jx7w10nhUpvkVGBt6oASKcG9bN8gbYZKxmICgHYd8CM5AIHrQs8ITVDGF
	 FvE/dARQzzjDzrhrmI+lQ9/bNmUlqWXDDmUwkgR1SjQfbOUMZh29JG2auFy4Nq5/3UuHl
	 Wha1GeoSzLuZX98NNDHOQvtSfUikkDjOpGSxoTTsj6VaQMCiPjRTz5Xie9GdcAtaspHJv
	 U8vyUiJB+ccz7v1hDkxasf4MSfdy6TJMBEfKq7uck9QVK8+KMM+kHkHAxL8SeGD9Hc2pM
	 pwB2d2LI+6vRQejlr6PPSakadynOzH0wh3hubkWhbMjgnvWla1OF712EJE5fV7FiSd8hk
	 jjNHEkG83X5U232GcW6BsNcn/W2gQkdiCiEtAAB/YGKSYyvUTVas5WVrmARhDIvIqocqn
	 v3luvAviiAm3Uu0RDyNAW8i4Bbc7RfQq0nNEc8bwALyH3MLBemJvfKXmYPClnNs3U+Lqp
	 3UVQ4tZ9PDWBc2cbF1uro5tuX3ZpmGMiPJ/ghww9iJeCL39wp3+cfMVAYTkc/nU=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=131.114.30.34
From: Nicola Vetrini <nicola.vetrini@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH] ci: ECLAIR: avoid intercepting intermediate linking steps
Date: Thu, 14 May 2026 12:16:20 +0200
Message-ID: <edd4d992a269dc45b4a41f1c8277ff0d04995dc6.1778753597.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778753878-82374161-AB444DE1/0/0
X-purgate-type: clean
X-purgate-size: 1422

From: Nicola Vetrini <nicola.vetrini@bugseng.com>

These do not add any value to the analysis other than duplicating some reports
in whole-program analysis, as the intermediate linking steps are only used to
build the symbol table.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Pipeline: https://gitlab.com/xen-project/people/bugseng/xen/-/pipelines/2524548198

A significant reduction in wallclock time can be seen for both arm64 and x86_64 jobs,
with no impact on correctness as far as I'm aware.
---
 automation/eclair_analysis/ECLAIR/analysis.ecl | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/analysis.ecl b/automation/eclair_analysis/ECLAIR/analysis.ecl
index 399099938f..ec37f7eff5 100644
--- a/automation/eclair_analysis/ECLAIR/analysis.ecl
+++ b/automation/eclair_analysis/ECLAIR/analysis.ecl
@@ -34,6 +34,13 @@ their Standard Library equivalents."
 
 -doc_end
 
+-doc_begin="Do not analyze intermediate linking artifacts, as they do not differ from their final
+counterparts for the purposes of MISRA C static analysis."
+-file_tag+={xen_efi, "^xen/\\.xen\\.efi\\..*$"}
+-file_tag+={xen_syms, "^xen/\\.xen-syms\\.[0-9]+$"}
+-frames+={hide, "kind(program)&&target(xen_syms||xen_efi)"}
+-doc_end
+
 -eval_file=toolchain.ecl
 -eval_file=public_APIs.ecl
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 14 10:39:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 10:39:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308787.1580134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNTSt-0000Cz-AW; Thu, 14 May 2026 10:38:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308787.1580134; Thu, 14 May 2026 10:38:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNTSt-0000Cs-6e; Thu, 14 May 2026 10:38:51 +0000
Received: by outflank-mailman (input) for mailman id 1308787;
 Thu, 14 May 2026 10:38:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wNTSr-0000Cm-Sy
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 10:38:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNTSr-00A1OQ-66
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 12:38:49 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a05a636-bab6-0a2a0a5309dd-0a2a450ba464-10
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 12:38:49 +0200
Received: from [40.93.196.17]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a05a636-212f-0a2a450b0019-285dc4114b11-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 12:38:47 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM4PR03MB5965.namprd03.prod.outlook.com (2603:10b6:5:39a::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Thu, 14 May
 2026 10:38:44 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9913.009; Thu, 14 May 2026
 10:38:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mCfEfXeFlS6nd3JHnZrPtLoaDl49BHuGVCCsKpAtH/Dx0fO2OD3yxypQfaJj9JKPiuQm/CaKpOQvLcC8hYk12eig4oB1fr/VM4Cx1ygcda0+eqOFOnulSCzJ0yFVTfb5NMJ+ca1G1jcds/4lexoH70Gdxru3jhXl4HO8m7mFCN17hor/yuws7czf+fsl6uXmMEif3x9uH8dHK1qEAYCUni2vJaDbUTInvI4jNu5jrlx09vX1V/ZyzGs7quilc854DcYX9rv822sDrG8P16UuuunQ1oGGdgUz5N5VXqYzv2gn0T6wejBPOtSHga6o7rdY5RmAY6Cu/PL0+/Q5lV4v7w==
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=uvKsE00aIjSM2diGKzncfksoJDNZ4AyyUuAv4Odga0Q=;
 b=vd4U8My1iaMQdap4D+oAPM61I5FN3nvBxGGTsehgAsusH/bmdE54IAtb9wxgx+fexjwYDh7kg6k2zqPf0Fy6TpxY3BGtx4wqQebOpoJY+e0Z2DZoU+GnMZUWg8SoQxshJgsei4lQJ2DQ0/UFlvCYmrjGLnPUO7J0PVu09LB7V7hVeClsg/2QHUZGKnVI5ZNPewSPx7O0M3iieS1b3ey/0Zk7m+wd593S8qvXW5iLM5KWNvcZ62CcM7X80vtMIkTqwf+vQHvXdwyzrIRAveQhoZDZi1Q/fkAeSJe20px0+96CIvjzKCynhc9YWU+Vq3BVgw5xluYawmm4KGs6mkI6QA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uvKsE00aIjSM2diGKzncfksoJDNZ4AyyUuAv4Odga0Q=;
 b=Lq05hRFdz8dcCXYeyhjbUSj+pCpm2FIXhkoUwX+Def1AfRH3ULEBYVs/VlALytFG87Fk69p1r347UR3JC3hDc/cJvukoAtVFpaIvv3ak3eJwRv6tR1kkTifVgPSFIMpY/UghzkL4CFkUqPHSAWW6WSSr+x2pY2an5O7xVoNvOno=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <fbd3768e-1245-409b-b1d4-b27978367a7e@citrix.com>
Date: Thu, 14 May 2026 11:38:41 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, consulting@bugseng.com,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH] ci: ECLAIR: avoid intercepting intermediate linking steps
To: Nicola Vetrini <nicola.vetrini@gmail.com>, xen-devel@lists.xenproject.org
References: <edd4d992a269dc45b4a41f1c8277ff0d04995dc6.1778753597.git.nicola.vetrini@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <edd4d992a269dc45b4a41f1c8277ff0d04995dc6.1778753597.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0112.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:192::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DM4PR03MB5965:EE_
X-MS-Office365-Filtering-Correlation-Id: fe3c1464-3b16-4b14-d960-08deb1a4f8f4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|22082099003|18002099003|11063799003|56012099003;
X-Microsoft-Antispam-Message-Info:
	thQHFynTeWq9IFS1wGTUEEKtKqQGZcGIf9dxcZMs3S8rCk1EItjhqdr1UUXTdLHPS+5sy3jLyt+T1lzCiPzkKjJCoqgmSentOTxVvIGzVyF5IpziH6cAnNxEoskEDYhBZNeWzewMeY5W5Wm2e7Jcjiz8VCUXXdUZzVaXy/xYjnIlmAAYHya5uiWLdX8BeGCtAdBiTB90R4QDqtrRIgEFl13mT2JBLYX9bNMsoSQGoTl2z/YStHyXh3OnprHCId2dQE8x2UMllErkIeDFqIHz5wYNAD9+c08ma8GBbApXlgN4Qub/rr5T0tbIvrCv1eL8IhEVJ5FsAQiK4fPzjIMcHkTupIMsQ+0hPDWWld3NSU5hwuZ1P581+nMij9v71km/UgQ0MrdFHpNAYNI+v2RHlwX059FVN77Jl8E9WWvGV74RSUwBsCOyE4CJbmaZ5apd5yjlNY/75oDTXcUFsyWNkHbH5uOXQoEWPnQP3otQJzOpF9Ii+zz4u/Orhf2uikBzG1J1p/Jl9zWNaxTNmYkBGxis8BBk+xbCODviTXX8JWmTvm10K0UDxyOm3Ka5Iiaqw3sYSHE/wJpA1mYpBk29h4MzDZe6sBuH9KyZQnCm5qs/WGKf3Mml6/ILp9R8+ipj8ceFRV0N/nWMiTCHdKE4gzHnLKA5zaLVqDLRrcU4jH2p4A0t2peJcjVv3ap2Dw/b9ZzfmZkRpb1Amjo6iVSJ1Q==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(22082099003)(18002099003)(11063799003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TFNndUZlYWRIQmFvckhKYlhUL0N2ZEI2SEZhVzBNeWNySUNrMHBMUkYrRmZh?=
 =?utf-8?B?cFBWa25kb2tnaU50U1VDZWQ5QjdQQ2daNm9URUNWUUtzM1NIelAwdEtnSFIw?=
 =?utf-8?B?RjMvVG1UQm1oM0tWcnNyMDltZkZaVDEvaFdvNjg0UnZYZjF5ZklsU3lUcUFP?=
 =?utf-8?B?eXpaSS9pNktjT1FZTnZLWHI1M2tPb1M5R2RiSGhUZVplaFlWTWtMRFhaZXVP?=
 =?utf-8?B?MU95MzJhTWZ1aDBKakRDZWlUQ0p4Sk1wbitVUU93dU83c09QWW1seUlTMXpH?=
 =?utf-8?B?MTRFekplV0VrTFVLRUNJdThYMW9wWVB1bExURkVxODgwU0NqeE0za1BUTjRr?=
 =?utf-8?B?UnFDYTBKWW9GWjMxS0t2cWhkWU1VTExLZ2JUbjJQeHJiVnA0bE0ySzdKYWpz?=
 =?utf-8?B?NFpnN3BmRkhSRFUxWTI2VlNEanB0SGlzUmZyYUE2QzhzV01IL1NuTXdtTi9t?=
 =?utf-8?B?eC9NdTRtZHE3WHNxSXBQTnFHaHMxdXVIMko2RDdGU2tTWjlQN29TUzB4ejFR?=
 =?utf-8?B?M25oeE5OQlVJQXdiN0pTNVRqRFRsMkQ1TlVNd2xjZkdidjVIR3RwK3k3cE9B?=
 =?utf-8?B?M0tGK2xzOXF6SlJZNjhDSEdudnFKYThZM0NtUG10a01kazByMTM3bmM0OFN4?=
 =?utf-8?B?ZVFyRDYrRCsvbnJrK09SakxzMlNaYjVWbXRMLzlkVUV6L0svcXhaNmo0N0Yw?=
 =?utf-8?B?eUV6ME5nbzVVdVBlZjZHRmMvbUhSbmJwRlNaNU1lL1Z3MS9kUE9XNllxWkhH?=
 =?utf-8?B?L3ZHYUxBRGtyYUtWQ2duVlRnVjhrT3ROSFo1RFNVQUppSkpNdTd2NEdldWwy?=
 =?utf-8?B?SXl1TkE4aVNaNmpjcEs0Wnp0UndyTUpEeG9CZW90b0pENVdpV3VyaTBCNFh1?=
 =?utf-8?B?aDhpeWNCNzcrSzdqNVVlR3l2c1U3WXUxbndDNUp6dEIzUzV0cXkvcmc1ZUk3?=
 =?utf-8?B?a0dLa2wrRVc0OUxPeGhqeXNJOHhxUzVDVmNNSUFCVXl5QWxUMXlzNUpQZHFS?=
 =?utf-8?B?VWM2UEJvaUZQNS9pb3NFL25RdmhBczBTZFdiZEFCUnYvZGJWR0JVQ0szQnJo?=
 =?utf-8?B?TXJnUmJoRlVrWE9mbTVHQ0ZFN2hBYUkra0dIV3BTRHBmVUkyTTFUM1R2V2Ro?=
 =?utf-8?B?VmxYK3dQWk9nRjdSTHRMS2tCcFhuclFJd2ZzbGpGQWkvckR5cjZ1RFpGQUln?=
 =?utf-8?B?ekV3QlZjWE55dXJJVHNTeksvMUVpaVJRMDFCOTNiUkkxVEd0Mzg5WW96Vnhl?=
 =?utf-8?B?d0F2Uk5SZ09Ka0pINnhmVURieENHRzNYQ3RMeFZwWnYrLzJVcGdlbjQ2dXB0?=
 =?utf-8?B?VzhJVWdiR3ZrMTIrV256R05TZmU3YW9Ha2p6cWVqVHYyb1doQjlYeFdHU3dP?=
 =?utf-8?B?RjlnaVVodXp1Ni9LMnJGWERXb1g0NlJjYzdZUEp0alRIVlZ6TUJDbnFKTVFw?=
 =?utf-8?B?a1ZIUS8zOGEyOHpmdDVidTd2Qnp6RktIUVF0Mnh3VXZNZGYwTkZQZE1qZmhu?=
 =?utf-8?B?NllQNnBvWW96L3F3UHBUcTh2WWpJUUFIc2s3ODBQeUJBTWoxTE44T1VoV05T?=
 =?utf-8?B?SVNyamNac3JjWnRMMXdkRHJvK2I1QUIvYWhNTkk4bnNQVTZWaTBhZW9VNlhK?=
 =?utf-8?B?K2ZTdWQ1eThYSUorU0lRU2hFUjYwWnlES2NHQlNIM3NXTUFGbGIxUS9pTDVq?=
 =?utf-8?B?c21pT2wzaUwzVzJlUjZDdmhTbzdpeWNUNGRGZzZBQTZiWUdvVDVHdGd1VEdC?=
 =?utf-8?B?QWlYUlpBUWJybGxoTkk4QU5XclluL0drRmMrZmpTL3VzdWIzSkRkeHZBNUNG?=
 =?utf-8?B?QzQvS29EVlFZa1Zjc0Z5L054QS9wb1VwLzhYWFdkVEdEbG53blRoUnI2eVFI?=
 =?utf-8?B?VUhFNnE0RE0vbWVwNnlYRVlUTkEraXpHNzl6MHNBY2Foek1OWEVWZmorZXJh?=
 =?utf-8?B?alZ3VU94SVQvd1NybGZKMzkxck1kRGl5enpxQmYzcjBmK3BHU0ZIVmRiSUha?=
 =?utf-8?B?VHdQRTYxOWgzQnZuamZDakJ1TEM4YWpReFd1SHJnWlJQWlFpdmNGNUpLNzB6?=
 =?utf-8?B?dGk0c1pEQ1I0WU1Mclc0d1dseVZMWjBCRnlvVUlaMUhKcFlXc2dWMGVZQXFs?=
 =?utf-8?B?N210V2Y3cUUvT0NvRFo2ZUR0TmJ0c1FvakhZQjdPc1R6RmV1aW14RUJMWEhu?=
 =?utf-8?B?K1VlM0prZm9oT2VlR2lsVDhORndYUEttMjM4d01XS29aWDYzbGhiM1YvZnlQ?=
 =?utf-8?B?Nm5zLzd3UjlVRGdwZkNoVWh0SG1sYjErSWlDOGdvcTdxaFhXOFhvWnVHcWly?=
 =?utf-8?B?S1U4TkRUWVc0Sit5Z1lJME5OSnZBa2FTaHkzMEdJRmtITmhjd2E4S1dUditO?=
 =?utf-8?Q?EP887if6uy3+kJ4s=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fe3c1464-3b16-4b14-d960-08deb1a4f8f4
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 10:38:44.3645
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6Mw+UsOhJZu+/b51Mq1i7TBMndcbyvE8/k59Kvd2QsC9ZxAHwTdAZgVg2M5AX2THktqs3Sjfwpkcde4pUPKcfomR5SF3UB+xnVVTBy1agZ0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB5965
X-purgate-ID: tlsNG-42698a/1778755129-1357BF3B-328D497A/0/0
X-purgate-type: clean
X-purgate-size: 1935

On 14/05/2026 11:16 am, Nicola Vetrini wrote:
> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>
> These do not add any value to the analysis other than duplicating some reports
> in whole-program analysis, as the intermediate linking steps are only used to
> build the symbol table.
>
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> Pipeline: https://gitlab.com/xen-project/people/bugseng/xen/-/pipelines/2524548198
>
> A significant reduction in wallclock time can be seen for both arm64 and x86_64 jobs,
> with no impact on correctness as far as I'm aware.

Yes, a very nice improvement.  I suspect this wants backporting to
stable trees too?

> ---
>  automation/eclair_analysis/ECLAIR/analysis.ecl | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/automation/eclair_analysis/ECLAIR/analysis.ecl b/automation/eclair_analysis/ECLAIR/analysis.ecl
> index 399099938f..ec37f7eff5 100644
> --- a/automation/eclair_analysis/ECLAIR/analysis.ecl
> +++ b/automation/eclair_analysis/ECLAIR/analysis.ecl
> @@ -34,6 +34,13 @@ their Standard Library equivalents."
>  
>  -doc_end
>  
> +-doc_begin="Do not analyze intermediate linking artifacts, as they do not differ from their final
> +counterparts for the purposes of MISRA C static analysis."
> +-file_tag+={xen_efi, "^xen/\\.xen\\.efi\\..*$"}
> +-file_tag+={xen_syms, "^xen/\\.xen-syms\\.[0-9]+$"}
> +-frames+={hide, "kind(program)&&target(xen_syms||xen_efi)"}
> +-doc_end

Why the difference in suffix in the regex?  Slightly rhetorical because
it's the full link address so includes an x for 0x.

But, the two regexs for suffixes really ought to be the same, so I
suppose we should exclude .* for xen_syms too?

For the sake of clarity, do the names xen_efi and xen_syms want a _tmp
or _intermediate suffix, just to make things a bit clearer?

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu May 14 11:01:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 11:01:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308804.1580143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNToN-0004TX-1L; Thu, 14 May 2026 11:01:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308804.1580143; Thu, 14 May 2026 11:01:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNToM-0004TQ-Uj; Thu, 14 May 2026 11:01:02 +0000
Received: by outflank-mailman (input) for mailman id 1308804;
 Thu, 14 May 2026 11:01:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wNToL-0004TK-Ov
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 11:01:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNToJ-00EpDi-KA
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 13:01:01 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a05ab69-bab6-0a2a0a5309dd-0a2a4503d834-6
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 13:01:00 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a05ab6c-672d-0a2a45030019-a237832faf26-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 13:01:00 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 58F8D4EE3CE8;
 Thu, 14 May 2026 13:01:00 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1778756460;
	b=H4x0u1M9tDXeYElNzOQZMagbtThZjRMQhg7WNxksOsvzSDNt1puMzAO5j8eKp583raYW
	 3/d8Fxy65ZnA57zNvmhx8mLqKxo5ELNSISKPvHE/SJp3E0nXU3HdcZ5h0JSTT/sq3rJSt
	 sIeiGpKmG8vtpjHHSS3Yed8vyLf1cWmqbqRcz3YtVcKgieLa99b1n++IKHe92pPWik+uZ
	 tSYli/zZ0TrCWMGf8GLwyvmYq8wlyBFdCX1M02Ao1cIT9o16VW9eCOmRMA8eemboy7u88
	 jzDJrjrnSRRTv6l2T+gzpWOnwYUHC8jFfivWJfdmnws3zbfc/eEFtpny3vh/QaYJ6gsOU
	 Q5nSkE/FdBcNJLhRxOq4sXYwx8unlHtQhkwARJzeiQuPCkA5V1IxBVQv9xsocizO32E/q
	 sN3IJDomX1ckhQqUzu+N7FMkO9YOPTh4IW0q6tSNV2wffLcAurf+eZM3MCxPnXzusr9t6
	 incGSYogPbJsCYHL54m7moL1FZ/51VxTf82L/f39/pazX9unyBVhe/MZh5ryit9T/+EEm
	 /sAGV9I4RU5y6N+lsyWjuCPkj78wXQYSoX8XirkhuoE9bEhmpJ0DxoCPl++GHRdkZmfqv
	 CDhc8s+3KglE/hsxaHQdKYHs7rR1iBQkmwKfWxIy+97Pds4iqwjl4wzDof+UPZ8=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1778756460;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=tfMIkDemM21Bsz0R+H4Mx1AnYK7jBKKPtAey5obr0c0=;
	b=ZbfG55/QOjCronYXqzW5IOrhx3iNhBHnYZHJYDWGZmoRycmN1VX+0AeGlSwahb5kDE1Z
	 jqnQAjdNvQ9o7eevCNIv0rp/5goNoS/pgsNW7Rez1QiwWLC8w8wTVmBWQlHOaFfGLd2OQ
	 cIdVSorXwZoD3xjkRvS/x1NLM7wFZXNkGcjTeILnOI6q9uZBwY0ddvYDeW1cUdairA63y
	 oCaxCIG8O561GT4gdoAoj4Yw+a01h9pyUBE8nKy+Vpw/6kkhV/rf9jU9Ns1BMn9Y/c3rC
	 KMIy9wY7M5/5ppEqv87nP6IsRyLnjwNRD1qln9maNvVwKjgJGEiuUIPpyUMGynCO+T/fE
	 ZLl5QQZm/VHVOqXGtQ1WKppBdPVpa+XOa2vdz5oeJO+fpjvwyn/cNYXKva9fjkewpkhPN
	 QXeE2+zu+sS4KurHyOnJVy2hR50ewQMQ1qA/gjvpeFkCfYnBINm88hbify5NaAJ2w31zh
	 aaqpJiA5KEs+pXzgjB9QsxZ6eMRqZ10YqhIG5Z0AXxO4qRzJU4JIq20JoVFSB3u3RkQBZ
	 xU7PARbH5XVfHQcA6P7M64SHSYLugee8hHa5GRSepfxA5OE8Oytw59k0m9VSu0TML5+dH
	 4bgOQk16tryq2XGKwiogKFy43s3O1UXtZS2vNWQyGxJEkOMpLgZTc95zMJzJU5c=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Thu, 14 May 2026 13:01:00 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Nicola Vetrini <nicola.vetrini@gmail.com>,
 xen-devel@lists.xenproject.org, consulting@bugseng.com, Doug Goldstein
 <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Jan
 Beulich <jbeulich@suse.com>
Subject: Re: [PATCH] ci: ECLAIR: avoid intercepting intermediate linking steps
In-Reply-To: <fbd3768e-1245-409b-b1d4-b27978367a7e@citrix.com>
References: <edd4d992a269dc45b4a41f1c8277ff0d04995dc6.1778753597.git.nicola.vetrini@bugseng.com>
 <fbd3768e-1245-409b-b1d4-b27978367a7e@citrix.com>
Message-ID: <bbe533dcaee879df50bdf00cefde87cf@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1778756460-38776938-885D0E8C/0/0
X-purgate-type: clean
X-purgate-size: 2289

On 2026-05-14 12:38, Andrew Cooper wrote:
> On 14/05/2026 11:16 am, Nicola Vetrini wrote:
>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> 
>> These do not add any value to the analysis other than duplicating some 
>> reports
>> in whole-program analysis, as the intermediate linking steps are only 
>> used to
>> build the symbol table.
>> 
>> Suggested-by: Jan Beulich <jbeulich@suse.com>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> ---
>> Pipeline: 
>> https://gitlab.com/xen-project/people/bugseng/xen/-/pipelines/2524548198
>> 
>> A significant reduction in wallclock time can be seen for both arm64 
>> and x86_64 jobs,
>> with no impact on correctness as far as I'm aware.
> 
> Yes, a very nice improvement.  I suspect this wants backporting to
> stable trees too?
> 

Perhaps. Is the rate of analysis significant there?

>> ---
>>  automation/eclair_analysis/ECLAIR/analysis.ecl | 7 +++++++
>>  1 file changed, 7 insertions(+)
>> 
>> diff --git a/automation/eclair_analysis/ECLAIR/analysis.ecl 
>> b/automation/eclair_analysis/ECLAIR/analysis.ecl
>> index 399099938f..ec37f7eff5 100644
>> --- a/automation/eclair_analysis/ECLAIR/analysis.ecl
>> +++ b/automation/eclair_analysis/ECLAIR/analysis.ecl
>> @@ -34,6 +34,13 @@ their Standard Library equivalents."
>> 
>>  -doc_end
>> 
>> +-doc_begin="Do not analyze intermediate linking artifacts, as they do 
>> not differ from their final
>> +counterparts for the purposes of MISRA C static analysis."
>> +-file_tag+={xen_efi, "^xen/\\.xen\\.efi\\..*$"}
>> +-file_tag+={xen_syms, "^xen/\\.xen-syms\\.[0-9]+$"}
>> +-frames+={hide, "kind(program)&&target(xen_syms||xen_efi)"}
>> +-doc_end
> 
> Why the difference in suffix in the regex?  Slightly rhetorical because
> it's the full link address so includes an x for 0x.
> 
> But, the two regexs for suffixes really ought to be the same, so I
> suppose we should exclude .* for xen_syms too?
> 

Fine with me.

> For the sake of clarity, do the names xen_efi and xen_syms want a _tmp
> or _intermediate suffix, just to make things a bit clearer?
> 

Ack

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu May 14 11:04:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 11:04:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308811.1580153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNTrr-00051P-Go; Thu, 14 May 2026 11:04:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308811.1580153; Thu, 14 May 2026 11:04:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNTrr-00051I-Bz; Thu, 14 May 2026 11:04:39 +0000
Received: by outflank-mailman (input) for mailman id 1308811;
 Thu, 14 May 2026 11:04:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wNTrq-00051C-3P
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 11:04:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNTrp-005Op3-GP
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 13:04:37 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a05ac3b-5cb7-0a2a0a5109dd-0a2a4506862c-20
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 13:04:37 +0200
Received: from [52.101.62.67]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a05ac44-7371-0a2a45060019-34653e43b6a5-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 13:04:37 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA1PR03MB8029.namprd03.prod.outlook.com (2603:10b6:806:459::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Thu, 14 May
 2026 11:04:33 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9913.009; Thu, 14 May 2026
 11:04:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=o3qi9FOM5Q8HKJdQBS5B5F1+5APB8LfSRjNc0S7YUOwjFYCTQSdd5q6aUf0dTOxsKEy0m7oOnLx98Qbp7gqtWz0rHLSLJt7uJDXBU9k7FLvcnriUQvNqOFVAcv+3kPT5QIRPdjsJz0wzltTZElH1hKoAP3qNPWsi7iXMlNDmxaOYHn2FBqZpGmJSYU3ubN7MnaKnQBhMz4xAcrSRJe4Lk/rsUiJryiHoYq3RCL2e82D/O178wY/ox9WQkchlBYGEwv9V7OTmiPhMqZ27VUrbqV8qCxK5wNg+ELkGnp8L866hGY0dnGFSLdFIY1AJYxcjkjsRc6PRPbg2eh8AAsQmMw==
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=uSaEEcDYrRK++tvoPBXXE89DF4EmroRQqLTKQYKxFMA=;
 b=kGYFZ9/ACWbnz7+64+eGnPu4ybayaCDEDraXzYKn9VQ6972wYeQkgPEhtnxQIwn9Xhtp/jR1aq2p4jz03rn12heq8zZmXV1WbRi19qa8n4y/GKShNqMtartT2JTxeV9bvYcWGe8tDu+VHAjdZj1sPGd8reSEfzGTZw3RYvberqrhbX/t3vuLH92+vj/EWrSstwyLje4/Aq1oYomkyXObPDSM8w4h1SnpBlB2br3tfhUrLFUhVWGzYbZU0DmbtjGlM2JCA3IpfElnZh0AUtgYYNcpTAEFOR0IFoPGDmUiVNZay8krbZLAFIVxrePgeezVIOKnAO7Sv1vmSD5VdNH1wA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uSaEEcDYrRK++tvoPBXXE89DF4EmroRQqLTKQYKxFMA=;
 b=x0rxvkLDve3xCFQxyRkoudhEfqAWlRsh6q0gHfpL07MyQtwaNnYcQwgPn7xkW45xNi8G2KLjWnCVnSbQC5qT0iRgM0x1T4d9RBaMBTPkpN57Qm5GgOjUC9LFT21gMNfyehmNyetReGYb+H828VdSZq52zlaQBsDjqxkgISMOdhM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <26ec207d-0053-4505-b62b-351fe6cb8f15@citrix.com>
Date: Thu, 14 May 2026 12:04:29 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Nicola Vetrini <nicola.vetrini@gmail.com>, xen-devel@lists.xenproject.org,
 consulting@bugseng.com, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH] ci: ECLAIR: avoid intercepting intermediate linking steps
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <edd4d992a269dc45b4a41f1c8277ff0d04995dc6.1778753597.git.nicola.vetrini@bugseng.com>
 <fbd3768e-1245-409b-b1d4-b27978367a7e@citrix.com>
 <bbe533dcaee879df50bdf00cefde87cf@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <bbe533dcaee879df50bdf00cefde87cf@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR3P189CA0036.EURP189.PROD.OUTLOOK.COM
 (2603:10a6:102:53::11) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA1PR03MB8029:EE_
X-MS-Office365-Filtering-Correlation-Id: 79a360b8-1864-46c6-0032-08deb1a8945e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|22082099003|18002099003|56012099003|11063799003|4143699003;
X-Microsoft-Antispam-Message-Info:
	7qZKY/+EhwzgQ5XaWtQSRM+RR2x7pQ1Jci0ISIiGsXY8PPKgyI1oVHnYUkD5/GJHEp0lGA4HWbjNndFAEh8i6djo4s9fehT88asd6zMegC3DdDTs7IIupjBAwLN9VToCRzQ/irQ43gFuUmrVkpAwYy15mMWpMI2eRIxn4dRDsCRneaJVHs4cnzTCExGzNPPqG02FV4GCqiY4nM40iJ4GwffWao8wHCOiPslbpKjTmmtm8Pbgtmh+8WDgskKLt/FdZN2thbH2FUGZ2+QlrOXIDQamH3pRZItnYHHp1m+BsHzrUzcgqal+smh7QLJjlnT/3G2Sdk+NM03WbM2irsgk/OvvhB9ekq0w8KT7iv/nmEOPjYKTSoHDOU70YkF4jcRfCumFI0oFMj/hFu2ruwQOHFOtFHtCt+F28k3Yde/bkZmavEzVEZhguWyuoXrw5DJDtWj7fTj2Z4UaWC0Vk5bE6J3cc69ALWkNhUEhjnQ9OoIO1LEOFA4If8TFGvK/BKhhhyDrjjhGwaGF6RNB49n+0V6gel8nRCra4ja04QDDpF2NzsMZipMU3Pc/Xy7HJ8dFmi8nNhYXYP0T+oKI+SFlhzpoXpeMH8J/scJQb83h8Bau6vxJQv83IHNdqcURzz1YcLzLvl98bEwTKDc9BWR2jEylL/Ud2SOXwMSiGaqhocd/e9mlMvi9+1KPRCHpwgiropX6vUh/WJR5FA8ngltgMw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(18002099003)(56012099003)(11063799003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SXVRUjBKSHVqemRLaGlxaURCc3dubjVPMWE3VVVoemtBcndDd3RqMUxTKzFM?=
 =?utf-8?B?UkdHUmlhTy9acExZUlN4cVlBUjM5MTVJbE4rejA2aWJkT0xiQWtIa1JndXpD?=
 =?utf-8?B?NE5NTTRqRjJ3SDZvSU1FK3ZsdEd5SmhjbjZ3K0RiWE1nVm9pWWhoZ3hpVklj?=
 =?utf-8?B?TlQ0TXExSkxLOVppYk9YY1dZcVNPUDRESWg0SzRhdnovQ0hPcmZWV29vUGZG?=
 =?utf-8?B?OXltc2pMVHlRMHo1cDV2ZmxFNEVZWEtycTlaS013REpNdENwaTBtZDZxd1VT?=
 =?utf-8?B?VzhqdTF4NDBoMGtXK0Vya2MrYWo1OUZ1TWNZc1VtN1pwb3dNdnJ1dWhCR2Np?=
 =?utf-8?B?Qmx5M0NpTVN4RE1hc0RQdEdvV2czdEdxdVJwTi82c1pqaWZyYk9ndGplTlkr?=
 =?utf-8?B?WU9keStydkdPV0tSc1JBajBNam5OdmtzWlV5aDl0Nmk3eTg0cWFOZmUvVmZj?=
 =?utf-8?B?RTFGOTJ0alp0OUh2WFEzUVlVSkRDLzdkMld0cEdJSVZzeEJaZkxDckgwc0t2?=
 =?utf-8?B?YTZ4M3pXTXIwTkg0bVRXUkRIbUxrTm96OFVtUHkwbXVZOEFqaEZUK1pveGFB?=
 =?utf-8?B?QUs2NC9EQWlRVFFBT0IxWTNwSzZRdlZQVUN6aWVpRjVrNndYcXI0M29VY2NV?=
 =?utf-8?B?aWJldmRaUU5nSk1pOWlzNDIzZGZxTG0yc052VXZlMk5LcUYxS0t0akg2THp1?=
 =?utf-8?B?KzFGL3RUcFRtZjRDZTJKeVJ6c24yZlBFQjE2dWp4bzBSN0pPTS85dFprekQy?=
 =?utf-8?B?blQ4M3JYMUJUSk5Uenl5eExLRkJDN3AvUm1qUkl0RVdXc0lDZUV2ZTlkSnND?=
 =?utf-8?B?d1BjbnpJOGJ2d0lzWDZ6MW42QStFZGQ1Wm1yS29iQmxNbndTMnNLdHRTVGhz?=
 =?utf-8?B?VU1PNFBwUjlEaExPU3lXTkhKRjN3bVIwQzdCdkNJby82V2tnWW9udUZVV0x4?=
 =?utf-8?B?ZTVtbktpQjZXb3YwbnVlUXBnY3NZdmx3VUw0enJyVXU3WXdIVmpHdHZpNHNa?=
 =?utf-8?B?Q2VzK2ZSODBWRVQzcm1BcHR5S2NEQnVJTTlmZTRwRlBoVWp5UDc0VlFuTGhr?=
 =?utf-8?B?YzlYaXB6SmlQUlZFTkJQYThrVlE2dnl5WjlVVzhmNEtTWk5McmM2SnQrYTBO?=
 =?utf-8?B?SFJDMEZFSHJFcWVtZk5OUFlMMzZncmRCc2xkWTJ2QlBNV0xBOUtxRVhTV3Bk?=
 =?utf-8?B?eUlwVDgyYzZVMEpublh6MkM3cFJxVy8rdWxpa0x3SWw4MHQ2TlVIejZtOWJy?=
 =?utf-8?B?OUNKREtjRytacFZURm1TTGdyQ3gxRC9jUkJKSG9qaG1MNW5hOUV4NWlWVmZt?=
 =?utf-8?B?QnAwZlorY21PejdkRWY3T2Yva3JiQWFKTEFDYkMraEJpYktleXNyQ0Zla3d6?=
 =?utf-8?B?cjJqSG1aN2VrSW5FczBCdEhZeDNOZzNTV0J4d2VZMEhLTG9NRW9BL2FhVUI4?=
 =?utf-8?B?VEtLekMzQmxKdWtYTSt5aHljSVkvQjR2Tll1cHFuWEx5eDV3VExMY2RuY1Az?=
 =?utf-8?B?WC9tNXJIQUxYQ01zWUQrWFE2eG5qRVZyOUxrQWRpb1NWRWRud2dlVTNYNDMy?=
 =?utf-8?B?R0twWnFKZ21SVDZZODUxV1J1cmRHcnI1VXNZTEZwUm81elpLbFkrUk4rdy9l?=
 =?utf-8?B?ZVNzcWp5R1BrQmVSZVlBWnAxaytrNXkxSFF6dnE5SVVrWVpZd1NnZlRWM0hO?=
 =?utf-8?B?clVET1JUaDV4em1zUWcwQTJ3SkVlaG5NWlh2NXJFeVpZWUtaaU1kVmlWeGpu?=
 =?utf-8?B?aW5MSkxTN2lpRkNWa3JtSUFHK0thQlBWcHUxNUIyUDlGN3pCSGRxZ2tvb3Zl?=
 =?utf-8?B?YXJSejZXd2ZjVjBBcEIxN3FjVy9HNFJZTjRCOUJ1cjZKTzF6cFpEbXFkRVFi?=
 =?utf-8?B?T2hWaHN3anNlakdSODF3UTVSZGd4SDNKQldVd0JIUnMzTUZBSmVIMnF3TnFD?=
 =?utf-8?B?UkJyQ25KY21wUUsyNmN0cFEzUm5CTTR6cTZCL0RDUHlYeHlqOVE1UmhEb2s1?=
 =?utf-8?B?V2FWVHlmTXZxVnluaDVmTUZ5Q1ozb3loUFpSVWZDT0VCQXNLK1Z0RDVtbURq?=
 =?utf-8?B?YjZiYmtjWUVZam5ndC8raWE1eTJwdkdsakhxMldSWFZISTNDeUF1UXplQ3JZ?=
 =?utf-8?B?dzJ1bkxIbUVNZnd6TW1YNVpSWDVwT2dMYnljL0xnMEdEcTNxeEs2Vy9XaXYx?=
 =?utf-8?B?SDZpUmFqUk1GdHhjV0p3eVNmN0hkVXBEemtObkE0ek9RbU14L3dCYjBzQlQy?=
 =?utf-8?B?TW9GVUUwYnRySGNvbEtaMVZaWXVZS2RvNExQa2VRUjlrMXV6bDNsM1hmUXAw?=
 =?utf-8?B?VmV2MFRuR1h3NnZWV3dsdDNJVkdZalVlYmh5dEVRRklVRmk3U2M0TWJjMTFM?=
 =?utf-8?Q?XV8J3895bHXM1SK8=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 79a360b8-1864-46c6-0032-08deb1a8945e
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 11:04:33.5790
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Q1isjMtveOpcJABpvsvRIAMujm/OWKR9pRzBNa9lqZWEp6Tt14/n+iPEP6mJho/ywC6VY6Ocn5GA6qiWU1JdMnRWxmJPPoutGRNFmyIBvqk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB8029
X-purgate-ID: tlsNG-16d1c6/1778756677-8D584D75-8A10C1D4/0/0
X-purgate-type: clean
X-purgate-size: 2517

On 14/05/2026 12:01 pm, Nicola Vetrini wrote:
> On 2026-05-14 12:38, Andrew Cooper wrote:
>> On 14/05/2026 11:16 am, Nicola Vetrini wrote:
>>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>
>>> These do not add any value to the analysis other than duplicating
>>> some reports
>>> in whole-program analysis, as the intermediate linking steps are
>>> only used to
>>> build the symbol table.
>>>
>>> Suggested-by: Jan Beulich <jbeulich@suse.com>
>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>> ---
>>> Pipeline:
>>> https://gitlab.com/xen-project/people/bugseng/xen/-/pipelines/2524548198
>>>
>>>
>>> A significant reduction in wallclock time can be seen for both arm64
>>> and x86_64 jobs,
>>> with no impact on correctness as far as I'm aware.
>>
>> Yes, a very nice improvement.  I suspect this wants backporting to
>> stable trees too?
>>
>
> Perhaps. Is the rate of analysis significant there?

Security content drops on all trees at once.  Even shaving 5 minutes per
tree (and it's more than that) makes a half our improvement in wallclock
time for CI to complete.

>
>>> ---
>>>  automation/eclair_analysis/ECLAIR/analysis.ecl | 7 +++++++
>>>  1 file changed, 7 insertions(+)
>>>
>>> diff --git a/automation/eclair_analysis/ECLAIR/analysis.ecl
>>> b/automation/eclair_analysis/ECLAIR/analysis.ecl
>>> index 399099938f..ec37f7eff5 100644
>>> --- a/automation/eclair_analysis/ECLAIR/analysis.ecl
>>> +++ b/automation/eclair_analysis/ECLAIR/analysis.ecl
>>> @@ -34,6 +34,13 @@ their Standard Library equivalents."
>>>
>>>  -doc_end
>>>
>>> +-doc_begin="Do not analyze intermediate linking artifacts, as they
>>> do not differ from their final
>>> +counterparts for the purposes of MISRA C static analysis."
>>> +-file_tag+={xen_efi, "^xen/\\.xen\\.efi\\..*$"}
>>> +-file_tag+={xen_syms, "^xen/\\.xen-syms\\.[0-9]+$"}
>>> +-frames+={hide, "kind(program)&&target(xen_syms||xen_efi)"}
>>> +-doc_end
>>
>> Why the difference in suffix in the regex?  Slightly rhetorical because
>> it's the full link address so includes an x for 0x.
>>
>> But, the two regexs for suffixes really ought to be the same, so I
>> suppose we should exclude .* for xen_syms too?
>>
>
> Fine with me.
>
>> For the sake of clarity, do the names xen_efi and xen_syms want a _tmp
>> or _intermediate suffix, just to make things a bit clearer?
>>
>
> Ack
>

Ok, I'll fix up on commit.  Reviewed-by: Andrew Cooper
<andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu May 14 13:07:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 13:07:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308894.1580167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNVm9-000614-GP; Thu, 14 May 2026 13:06:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308894.1580167; Thu, 14 May 2026 13:06:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNVm9-00060t-BO; Thu, 14 May 2026 13:06:53 +0000
Received: by outflank-mailman (input) for mailman id 1308894;
 Thu, 14 May 2026 13:06:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNVm7-00060n-Eu
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 13:06:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNVm6-005dz5-PU
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 15:06:50 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a05c8d0-5cb7-0a2a0a5109dd-0a2a4508d88c-42
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 15:06:50 +0200
Received: from [40.107.208.64]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a05c8e8-63b5-0a2a45080019-286bd040cd4c-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 15:06:50 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BLAPR03MB5505.namprd03.prod.outlook.com (2603:10b6:208:299::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Thu, 14 May
 2026 13:06:46 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Thu, 14 May 2026
 13:06:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=a0Jn4ZbQfH2Fs70ggrIVD49yQuKOJUszVFSSuxlwVR3O/yhkMPL+B9SXlWV6evfhkW+S5Yi8nCmPe7VBo4TFvoJUmd2+nqSQ7ngYrg1Lvxv8ucRLGaEvMfyBCvo5fRMh9NGHE9wi/K/w5SqmYeUShLjsmVYbdxO56nqYjDPxcU+DtZwQ+EEty1x8dX+cm1IOxNGhlX+Gqp58Apk5YehIY5C2Vjn6eaelexr8Jx38R8G4CVPkQqi4uzsMhI4BWsKVXesM1sbyko8kCzF9xP98xxxzhtF1pvcVWbra15VHPz5yPVLkekTb2DW8fF5rVlo6Cn3H790UOHX/oy7K4xcjKg==
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=u0FddMy5LYP+9Kg8SN6DJhYSo5NtdDw8gBbl6S1TwsQ=;
 b=t3afx6Nsls/weBJ+DclP9rOxN7LWnQwJkTB6p8ZDUYl2fXC5w6kqdSOMIomhaetXYOiWqQJgiV/cKoDqqbhhMf+0TsDNl4bnqXLrzzkq1y6bbu3iaidHLe9e1H8t2yRvAcR8Ci4PBYtbFfYz+P+PuVQj/KN/gybJmEPgfCZHJO9ixUYb42c0uh848bgrMtmzCc7d0xY3j9m44CyJh5SxIcvZiSq9wkFrdixHiIMmeOvdV+3yAp0Cwr7MyHAubkKavmCKqRObHRE2u/6Qrz7lAmRKV/xXK7XNIbocp954S6XI5k3y/twLOtSnBflc9OyBdljYacf2EDxkAKgd/V9qgg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=u0FddMy5LYP+9Kg8SN6DJhYSo5NtdDw8gBbl6S1TwsQ=;
 b=nJ/4+jbw0TTtbTgU8E1yJelpGFKgEKvG5LPVf5uN2T5uc9wM8ZKg1A3qRiDN2tVt0+qMV8KyiRa7cunqqEOKeJDhJhXEg15Y/w/YHHPRIvF+CJc8qxTC5+6bM6ylV++tmh3ZOB/aelZlal4KKICGb/wwAclyMyg8ji/1hUkf1tE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 14 May 2026 15:06:42 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH for-4.22 v2 1/8] x86/mwait-idle: arrange for BSP MSR
 adjustments during S3 resume
Message-ID: <agXI4t4vuAQZSCZS@macbook.local>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
 <5c66cfb1-e234-4efa-9a01-88acb284e414@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <5c66cfb1-e234-4efa-9a01-88acb284e414@suse.com>
X-ClientProxiedBy: MR1P264CA0113.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:50::30) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BLAPR03MB5505:EE_
X-MS-Office365-Filtering-Correlation-Id: 86e866b3-242e-48a7-90c3-08deb1b9a6f7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|4143699003|11063799003|56012099003;
X-Microsoft-Antispam-Message-Info:
	MNDSI6MrEkjWCUqQMHgvC1NAir9XvUBuE3MKpB9WFe+1nDUb2ZHdIk8zHDFtAJPtcwN0DEMPzMVxYfZ08CesEqRwDvZbRywA2YwWQohz3yJ8z1yB4ntfNglNV396/dzp+6R3QhePWxgi6iLtzLRy+YBk6rSd1G4rtnVfRC6jwNxm+z3W0pU1jyDztZHfWk4E+uds7RQQgmTU/DWzwFgSNWb0NhAxQLQOUG1qw3sdcglSCrWvVh/ezSmeJ4Wb66VPsBj63N12fynwcr+VQfrT+PgIsOTmMj95vz7gAZ9HnON11DJepuRJW0BBKM0/pcgUe+hbmG5dGQ62tGTNq12COb6234+YEsgzqvuOjLha9a/VJkryPWnvKVLDHsqJr2UsrSNeVqS0+UxRUkSqETvCE4VaRfHuUwvOW+UkK6orHhHQVSzEW/2nVKAkzdqZjMr4nTFUaeTbNqzcE4GKgzrqZ+E7dAqB1nbMTfEYr6blZsi6n4D1lSax3zGuks6bVsmcR+bes97lfQgwEafJmPkPZc0W+ErcmwCokhf7llrvt09RoHyQxMCo51Xv1c16Ec8r/vHyR0Xpxc875qCogIJK++NfORs4qn4YpwS803EdRl7PZiSeXh0Sd+oo/+TPe3LeODK+hRcS3799sDNebFK2QbTkrhm7uBxkwfD/CkfamoncyjPL/OIluaZtyE920v0c
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(22082099003)(4143699003)(11063799003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bTJEc3p6aW1GeVBNY0FCeHdxOUtEVWpMRE5lNmFLSXZqTElKaXpzYnl4Y2Zx?=
 =?utf-8?B?SFBIMmtYNDhHZTFDcFZDSG9iQ0h6dGU5VUplckJ4Wm0vbDQ2RzA2d0E1QUti?=
 =?utf-8?B?SktNdmFnY0pUQ3p2RkQycERFeTlqU0VTNHB3S3RjMXJuNXJPSzM3ZXRPV2tm?=
 =?utf-8?B?NTBlL0R1NnRNbDNaeThnL0ZENFVDdmhDTmkxU2Rvem5jazVwUVc3Qjd2dFRZ?=
 =?utf-8?B?bXZKZE9MVU1SYXJvSUxMMnR1dWxUaG03OW5TL3gyQzlJRnJQdjZpa0RjMTNL?=
 =?utf-8?B?UGFFM003QUhyQ3J1dUVCbDZWZEZ5b0JLSFBiMkRkK3R0clkyU0ptVDJwdjBu?=
 =?utf-8?B?VEtKaytnWURHSitrZWlxQkpHNmROZ21URjJKRUtKQ1prbi9jbXJtQStJTmIx?=
 =?utf-8?B?VjI2c2s2ZEhsTk9uWXlsTXBIdVlSY0xrRFhzNjRjNC9jTExZNFhxNVpFWEZ3?=
 =?utf-8?B?NkdrL3NBV2xEMlFHOXZ0dm5pYk82TTFEMXVrdW94a2VwY2kyUEhNdC9KQXBr?=
 =?utf-8?B?cXBnRDhNYlRoOU1aSjNubjBPczl1Y2FESktwSHhrL2dldE42YXNJT3Z3NEpv?=
 =?utf-8?B?L1RMU3BBSGJ3QjJXTXNoamdURWk3MVAvTThzT0prREZ0cTFXd1A0L1dLR21H?=
 =?utf-8?B?M3dnVlhqVGk3UWMvR0srelIwWFQvczJIdFhhUUo1ZkE4NU5QTzRBTTBpOW9E?=
 =?utf-8?B?YWJGbHJieXRYT05ERTVaSStoRVRtRytrNmFlT3c0Z3ZSRWppQ3g0RU9IWThD?=
 =?utf-8?B?czFOalNBYmxjTE1QblRkclZoOUtUUXZTNWkzNUVOaHZSUTM3UTE4NHNVb2pT?=
 =?utf-8?B?RjhqUjlTNTQ3UUMvWWJFZmY0ajVNcGF0UURJcDdqYUlyTGpPaThXTHorbjhK?=
 =?utf-8?B?cWoxQWRsU0hOcTViZE9aWlpidjFySXV2UDlldG9kV0tUSXByL3lJY3k3U2tN?=
 =?utf-8?B?Z3liM0FGc0RhTE9hYnJ2Rkd5WUN4YVF3TDBydlFkOVVQWTFYUFl4b08yVVh2?=
 =?utf-8?B?bUxXd0c5WHhhRXBVYjhjQ0JaeU9BTUx6akU1L0puK1FJelV6bFM2V2lnMXNs?=
 =?utf-8?B?UjFhbkVJeG5oVHpNSzVSRStaeDhLdVd2amVrQ2RhMm5RUUt3OXJSQ3FSSUpt?=
 =?utf-8?B?d1lPNjVzVTVVSzlMQnRwRWwrbndNWk5rZFdqbWFGUDJXUmF2aFlSU2JjNVJT?=
 =?utf-8?B?TVNxbVk3TkJSSmxGazdsenhESUpJekVuSzFmYTdzV2xIM0tlVWd2REwwamxU?=
 =?utf-8?B?aXdlZ0MvNUtyU3d1ajNqaFgrMW41SUY4WndnbkRpS1ovajdRTVF4bEY1eGVr?=
 =?utf-8?B?K3dTZXIrZnRVVjVsK2JvZzdJV09WTTdGR242ZU5kY1RXN21aZFpJRTVxMTJh?=
 =?utf-8?B?NkdXTDFLVHdadXM0QldvZ1ZvSFhJL29HR3daNXBMdFN4RTVXWDFXVXRWdjVi?=
 =?utf-8?B?VnNnSXZUeXJ4blVaOVMrTVNCeDd6WjR3V0huczBza2EyLzkySzltR2Z6T3BO?=
 =?utf-8?B?aFVIUXgzNDRUMkd3ZWtZOVJYcERsZWJMeFI2K3hhV1czTEsvSzdvWGZpb0JV?=
 =?utf-8?B?eFNXUFRhTFR1ZUdnUGI3ekp5RjdWTCtKMlVONU9IS0JQOEdYMG84amVsbmp1?=
 =?utf-8?B?bnRyN1F5cFl0MGhSZ1U5RGJLQ01HVGNQaDh3OFRCNW40ZkRiZnRrOWpRcGQw?=
 =?utf-8?B?RzZwcmtuVG13K1lpUDhEYkFqQUszZGQvM2tRYnNqZFQ0SVNGN291V1ZXR2xX?=
 =?utf-8?B?Z1RndDBsblBXRllWQUwyUWZvZG5oWllsaVN0VGpXOHNUTFQzRkhacVNFL2py?=
 =?utf-8?B?c1VCbk1PU0kxOGRZZ0JyblA2TVdSMFVLQzd0U2pDNlg3Q1ZmNXFJbTR0eSsv?=
 =?utf-8?B?V045WWRmcHpVK0tKTVJzdG1LTVIwTXZsQjFOdEdvVDArL3dHS1ZYQUdsbVIv?=
 =?utf-8?B?eGNGaU14WjM0OFVwb3BraDdrbVVrQWt0L2lyZnJuUERPSzdUZ1NuQWFOMGd6?=
 =?utf-8?B?YUVYYmt6eHM3RUpnRGZ3YWNRaFgwNU5wa3RCVGgxNzh4cUVDUTlaRUY4di84?=
 =?utf-8?B?U0g3K2EycWZjMnNZS2JoOURvZnpBaHdEUWZRZG9MRkJoMUpCcFlHbCtlY0pw?=
 =?utf-8?B?Y3BuLzBwMDNZM05qaFVJUHdRWS96ejArUEs3V0lLRzFyR0xhcUg3M0tXandv?=
 =?utf-8?B?MUd3S1o2SHVINHp0MzhQQlp3clFTRFVvc0JTS3d1Q3B1clpuOURZcExva3lK?=
 =?utf-8?B?bU14OGNaNGF5MlRlUDRlUjJOT2JzSXZsMmdZUy8rZlpIYmJBYVl6Z2xpMERj?=
 =?utf-8?B?MkRHRmJwclBBRXMreWFvZ0lJclhtY2lhMWRMdUZQTk1ZaWhpVGVJZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 86e866b3-242e-48a7-90c3-08deb1b9a6f7
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 13:06:46.3094
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SIcHhIGDeTgFvRn5gqV6Pcs2PdxeUIfydWP3Hvp7H4r6ZgJaKEjwr7upq2/UFDAHgN+Xkf1266/INGezxFpEGA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5505
X-purgate-ID: tlsNG-c1860d/1778764010-BCF62DB1-D6E93B22/0/0
X-purgate-type: clean
X-purgate-size: 607

On Tue, May 12, 2026 at 05:35:33PM +0200, Jan Beulich wrote:
> mwait_idle_cpu_init() is only called for APs, yet MSR writes will
> typically need re-doing post-S3 even for the BSP. When multiple cores /
> threads are present (and to come back online) in a package, for package
> scope MSRs this may be covered by APs doing the writes, but we can't rely
> on that.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

It's a bit unfortunate that we end up doing self-IPIs for the BSP
also, but that should be fixed elsewhere.

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu May 14 14:10:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 14:10:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308923.1580175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNWlk-0007WE-UL; Thu, 14 May 2026 14:10:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308923.1580175; Thu, 14 May 2026 14:10:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNWlk-0007W7-QW; Thu, 14 May 2026 14:10:32 +0000
Received: by outflank-mailman (input) for mailman id 1308923;
 Thu, 14 May 2026 14:10:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNWlk-0007W1-7e
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 14:10:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNWlj-00G35x-KX
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 16:10:31 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a05d7c6-2eae-0a2a0a5409dd-0a2a4501b5f0-22
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 16:10:31 +0200
Received: from [40.93.195.18]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a05d7d5-c1f2-0a2a45010019-285dc3125a74-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 16:10:31 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM6PR03MB4924.namprd03.prod.outlook.com (2603:10b6:5:1f2::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Thu, 14 May
 2026 14:10:27 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Thu, 14 May 2026
 14:10:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=p9jPPpMU2JckizSZvbSXBVj+4rtOtPnM82hlr+nrYewe8/+lbHvJdbCebkrBzmcYOvLZgaOSW4Js0Ph6ufME/J9MC+I1IUMTeXTG/VDubBR+6cDlVLPQMQMA3MUn1VBwXaQDMIb5uCyCkJw0KT/XAfXnxjKhImaKStlNn3aFQv4JMpJ11Ss+XaQ5SwDLRIu+NIplVSLysTRARzuuRh4Qpj9d0DyAc7GSCLAVc+C0fmkeN0xgGktYZPbhwW7jVBsaaT8GTP6lZFVsqzEZMXyZfZvmavvVzVFTeY+45xPTgLI6v6RtCInNe3oROgW0JPz6U+re+ghu50NihzUnPfrpMA==
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=Vdfll9wakSiG+LDQDic5BhqH8mPxHVudYeYjIwOKyZo=;
 b=OyzolpehMBOsfUpmZt9BAsoyK8+WpQwyTvbd4bg2G4hsBNCHX4hzsuzLTqoTOhLUp95V8d7Rrs/wrLnhRYjUP+yfMGzDMVxo8181CQe967Ut4ybLu/OupBO1yJZEp/k+um50hV3dVuKtMYXyPQCTe0n7gvqjYl7yXmV3oGHwPbudKNcNfzi3Mjdfo/5d/gwaBwYzhZ1jHRgu9OD1JH8d4w9zkevRllP0bM9zRYh0inHmTsV/c8WLn6QViqJ2xRVOk22RkyD6Z8cv6aL4DnOn2NUD2rjvn9cSXmGmjisk7lchOp7JbrPHa/z86gkQstBkQtJB1VS5QfjWF5iUWJXnVQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Vdfll9wakSiG+LDQDic5BhqH8mPxHVudYeYjIwOKyZo=;
 b=GjyIkkO3hMIdDTI4WmUTG8PlqEt2fKctY5fT1yzWrDGlaqJBJtF342lyVAlglPqiAVVJaNsPsoTWkAUlBnKoghl8geVV+pkgTaaDfv6lQFA6VYyclLrSQZQbLnq0anQE/URtAslZB7LIJYtXd/xi2ogqrImXV2/qHTvzAu3KCDk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 14 May 2026 16:10:24 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH for-4.22 v2 2/8] x86/mwait-idle: clean up BYT/CHT auto
 demotion disable
Message-ID: <agXX0LudaVNEh2sp@macbook.local>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
 <aa14f45e-44fa-4cfc-8c51-d48548d55f3a@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <aa14f45e-44fa-4cfc-8c51-d48548d55f3a@suse.com>
X-ClientProxiedBy: MA3P292CA0051.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::19) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DM6PR03MB4924:EE_
X-MS-Office365-Filtering-Correlation-Id: d346ebcf-ef3f-48f1-fd52-08deb1c28c45
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|11063799003|4143699003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	FaVsxhUZW7iFjuWqjBlGWUQOJOJVipb8wQu38+zPdoDMtGs5u1ucZtKjMTiQWGuIpSJjWTdj8uMKaSF3R/CamKdnZol6bl44eeGPGvF1oGM8TfvCz5uQH+e5DYtrW15KOu0mASAgao5iaTiIw0rNshWEpTY3g7qMJKQsvCUXsseapnvV5uNcsQV9UXYElajSVaqf9ef9FTt5+Hr3EwAhAfe7kDbmFIJX89OMixdlhplZfpimh8EPWs1nIvCe5g35CT6QaYr4SGIxBC9Qt3PqEiKzpZJ9E9O0ZfH02WXDfhzjug3RJ+zhnHQH6QIxCaan2oQpkmjof6cwma7bQ9EB+I1F10kC15WSjkMzzjA/QU5V9Wg+0yYaH9dMzW/vN6bVkpQ4cM38wlyhlt2RD8vrt+5TSe6GwxYnHYNT9tCQh+4/m9DkU+U7bS94UAG+FSExjwX+UUyKqwBh8lWXbdkgANDeJ4itDAVgO0awx++FDr2wvATqRE1sflEvOIUWXipRl6rOU0Xe1W/qSPNdnSGHr0GpV8vJc1uERGz4g6wOH//WqNUe5ggQq7iC5nbHBKBvitvwd0zkaMjwCBcXq1hsgPOvrdYpsth5eeGT+pLLSZyDRh9TQ/rTw9EwR8F1we6TSAS6YtXzscUG9rEIgExSgxs3H4DK7KZnm51P90f2pcPx6p+nc1KTTgLcW0sZXtAj
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(11063799003)(4143699003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RW1LMktzZ3dIU21KaTBzenJsV3E0aEVnRzAvMUJNTllTeUplZXhzcG1tN2Ns?=
 =?utf-8?B?N0hZYzFXYU5QYWVZaEwxeUpzY2c4NGh5Y0hvdzVnSk5IK2Zqa0lMMGxaVjho?=
 =?utf-8?B?dUhZVmU4dzhRRlM2V2VJTFJXZ2xDMktMODA0UU5EVFByeHZQVi8rbmliMDNW?=
 =?utf-8?B?S2pzZnRadWUzV2JVWHpOZ01kOGM2STl4K29GVjBvMTBNQ2MwWjIwS3N1VGht?=
 =?utf-8?B?REViWlNSWitGOEgrMG9LTkMyUkUyeUpobXhYWjN5QnZYNzFCOE5aMmN6MW14?=
 =?utf-8?B?RXlFck01ZGRtRGNKM1p6LzY3Ym1BeWU4R2s4Yk4rQzhiRkhERlA5UDJWMEQ0?=
 =?utf-8?B?d0tiR0FpZ21rV0I1RVFvSE4zZmdyNitJR0dIcno5MnRXRXNEdzB5elFCSE5t?=
 =?utf-8?B?anJENDBlcGI2d2x5a2xpZWdtZ0hqQU4wMW9wc2xuaDdQQnViTmtmU01HOG9B?=
 =?utf-8?B?WTlyWk1pRHFOVzkyeVZMV2hQQWhVTVVPaHFoS1lwNk04SFR0M29PVUVXM3dh?=
 =?utf-8?B?aGNJaFNxVi9xUWc0QS92ZVR5UFNKOVhvSGVBU0VqTExtVGd5NnVFMndUL3dR?=
 =?utf-8?B?VHhJNTg2U2lSS3pSeHcyRjFqWmRwL2hoelpwZG1KV2UrMnVuaDA4L2gxME5n?=
 =?utf-8?B?eFN2WXl4ZkdZK0MxVXJjbUdYZXZIWmw1UGFMMXJqMHFFcnowc1A5WTlKUDF3?=
 =?utf-8?B?Uk5QTFVIbXhwY1U3cHQ1bUZiNkNCbmdVQURIVFBvR0lPN3lNZHdyenJWRTFH?=
 =?utf-8?B?ZVJJZVRBYStMRG1BdFRFdEtTY0RkM28zK0wvTnJ6UVpyRXBPd1cxdmZPTVFT?=
 =?utf-8?B?dnpRMHpVMWdsU3hWakd1SlZXc2xvY1A1LzFqdUVsMWVCNnNoa0pGZnNlcmZR?=
 =?utf-8?B?YlZXQldGbjlrOTR1V1g0dnpjZWtveVhucjJUSVUvamJpL2pqNDNvS09oUDh2?=
 =?utf-8?B?cGVqZ1h4b3gvR0R5elpPdmsvQm5kTSswYU5HMkp6b3JtTSs0Z2NGa0JjcEFK?=
 =?utf-8?B?QldEUXY0ZFhZRU5xdTg3ZTF6Y0FlbzlpUmk5TWNCRG9SSWxDdGZOUmZNczgx?=
 =?utf-8?B?M3NjbVp1b3pPbHo0YWRnaVpFYmc3NTRUanBobWhDZjhpQ3hFZG81cCt2ZTV0?=
 =?utf-8?B?c1ZQVThzN3JYMk1rSVBqOGNhdWVLV1REU1l6N2ZtWkdhV2xRTVdNNXc4ay9Q?=
 =?utf-8?B?b0V0RExCUkRSYWxzZHkrUkVhVVB3eVVrbDZURFFCSHBsZ0hrbnAvQ1NkRWhx?=
 =?utf-8?B?N3phcEdpdjA2Y3E2UnhUb1p4VW9TSHJMSVhycjFDRnE1VzV1K2pyNzVrZThD?=
 =?utf-8?B?eE92L3Q2Zi9xTkZwbXIyVE1Fb0VQdzA3UTVCdmZXdFEwVEFpSDhKeTdBZ0ts?=
 =?utf-8?B?WHRtcWhac201TFdSeSs0am4weFFVcElyMXBDVlVuaS9FV2lDb1FkWUVjbU5M?=
 =?utf-8?B?VS85dWNNeUZkSlhpVzJrZEc1RWZhVk5XNXNkdWVTVTh1YjlQRFlWUy9OVDAz?=
 =?utf-8?B?L3RlT2FSaCtTNlhGSXRpeFBlU29TRUp3RGFHRGgrNFVaT1NnUDBQTDkrQU0w?=
 =?utf-8?B?V2NJOFVEYzFBbUovaWtKVVlzSXJjemlJVWFIbjVoVjZubXk5TTlJcjVmamVE?=
 =?utf-8?B?M2RwOFk0Q295c1hhejBWdEgvOGRXY2grUUl6b3ViUk56TS91Z1dpR2NIYlBy?=
 =?utf-8?B?RTRCTTZrNVNSR3pNdmg4QmdFMGN2VGtSbGN0MjQ5bVpVT0FTQjRiL2g3SnpR?=
 =?utf-8?B?TWVlenJhTDhBL3JIMzRXaXB0bWdEYXpZTHkwTmMxSXRHNUxpdzUwNE5jc0Jz?=
 =?utf-8?B?VnNCbGZ4VDllbmxvb0ppMW0wNXJYRzFUQTZjMEZtMU80dlMyU3pWRTMwUUZv?=
 =?utf-8?B?N0l2UFFCcVNpcnp1TkVhWDE5OUl5OGZjWXc2S2NHL0R2UE9xbjFZMVlFY3Vp?=
 =?utf-8?B?SEFTVjMvTm16cXBJK0VxdzJFeGQvQ3ZLSXZIeVZ1T2pjUmg5ZDd0THlJcStW?=
 =?utf-8?B?bkpFSVUybkRPSitpWFgvMStFaGw4Z3hONDRDZUVrVzRJaHY3RzRjcWJJL3VC?=
 =?utf-8?B?NDV2eVFmNXRzNTRhbit5S01BRmdud3VpOFdwTmtSMXZqY2pMd1Q3bk5RUUhz?=
 =?utf-8?B?ZStTWHRkdEE3bGhBWk1jbjJSRWRNWkFhVlI1OFRMRFdUblZXQW1RekNDeTJj?=
 =?utf-8?B?WC93UjZTUFBCUG81V2VxYlQwN1NCckl4YjRVSURXczB5K0JYUUxBOW53L3pq?=
 =?utf-8?B?ZWY5MC9LT0h4bUhKK0hmS0lOSm8zRDZZQng3ajN5Vjl1S3UwamlIT2Q0Y1Nl?=
 =?utf-8?B?bjhiZDJTQ2k2cmlpeUhpVFlDU3U3Vjd6WkErUU96Vm5iWHkvWnR1dz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d346ebcf-ef3f-48f1-fd52-08deb1c28c45
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 14:10:27.2246
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pmb84NJwhd/OYqsL/hpCdDV+tQp/LN5eOFvZgoLvMqBBLV/ZVB0QKhRGK1VCL+ksygXn0SgbzIARw4hmqkquVw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4924
X-purgate-ID: tlsNG-d62444/1778767831-B6D59FF4-71163587/0/0
X-purgate-type: clean
X-purgate-size: 1224

On Tue, May 12, 2026 at 05:36:06PM +0200, Jan Beulich wrote:
> Bay Trail (BYT) and Cherry Trail (CHT) platforms have a very specific way
> of disabling auto-demotion via specific MSR bits. Clean up the code so that
> BYT/CHT-specifics do not show up in the common 'struct idle_cpu' data
> structure.
> 
> Remove the 'byt_auto_demotion_disable_flag' flag from 'struct idle_cpu',
> because a better coding pattern is to avoid very case-specific fields like
> 'bool byt_auto_demotion_disable_flag' in a common data structure, which is
> used for all platforms, not only BYT/CHT. The code is just more readable
> when common data structures contain only commonly used fields.
> 
> Instead, match BYT/CHT in the 'intel_idle_init_cstates_icpu()' function,
> and introduce a small helper to take care of BYT/CHT auto-demotion. This
> is consistent with how platform-specific things are done for other
> platforms.
> 
> No intended functional changes.
> 
> Inspired by (and description largely taken from) Linux'es c93d13b661a6
> ("intel_idle: clean up BYT/CHT auto demotion disable").
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu May 14 14:46:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 14:46:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308958.1580184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNXKL-0003gO-HL; Thu, 14 May 2026 14:46:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308958.1580184; Thu, 14 May 2026 14:46:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNXKL-0003gH-Dt; Thu, 14 May 2026 14:46:17 +0000
Received: by outflank-mailman (input) for mailman id 1308958;
 Thu, 14 May 2026 14:46:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wNXKK-0003gB-GL
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 14:46:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNXKJ-005qgn-Pv
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 16:46:15 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a05e010-2eae-0a2a0a5409dd-0a2a450884f0-20
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 16:46:14 +0200
Received: from [52.101.72.0]
 (helo=AM0PR02CU008.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a05e036-63b5-0a2a45080019-34654800750b-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 16:46:14 +0200
Received: from CWLP123CA0106.GBRP123.PROD.OUTLOOK.COM (2603:10a6:401:5f::22)
 by GV1PR08MB10477.eurprd08.prod.outlook.com (2603:10a6:150:163::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Thu, 14 May
 2026 14:46:08 +0000
Received: from AMS0EPF000001A7.eurprd05.prod.outlook.com
 (2603:10a6:401:5f:cafe::4b) by CWLP123CA0106.outlook.office365.com
 (2603:10a6:401:5f::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.18 via Frontend Transport; Thu, 14
 May 2026 14:46:07 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001A7.mail.protection.outlook.com (10.167.16.234) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Thu, 14 May 2026 14:46:07 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by GVXPR08MB11318.eurprd08.prod.outlook.com (2603:10a6:150:2c2::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Thu, 14 May
 2026 14:45:04 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Thu, 14 May 2026
 14:45:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=TiIdws1Sxd+qgZ/bf8U7mXL71QCQYb30Kon7DYCnJg49WdKh3yGXygR1CycSPn390CIeV+DnkZJ62q2p0hWmeGfvoilaiPyt+Hi5GU0DpR47g8xESCsBvdtn44n0RAqxkSK4DrFxaRhsU09ArdpdiKYgeqDHFCLTaqalDu8jKtYPvxvAk2bSWBgVj3FSBeqHr7uTa8HH8Vwta2BNnecjH75wsBhtBP2OF7jflksAKznX1QlqPmolG0ilWkHWXMNbaXZJVOwye4ptKoj+wz8UQMAGYGiqUnvWT0gN71z7kDn6oaevT29CrjGBvXfab8hm3/RfaDF3lh1h+3EAbXVukg==
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=pXcoDxHRxGKKp8TCK5YNDj+o6REzgmHVFwVATp9BCck=;
 b=zPm39aeOtzvn+LrswtThgBV4yCDuJjig64W1poxRErQv6ZUFal0dM/N4+veP/Yf8dySDv46kPUOyYUuz0fE3RhnUhjiqr3rpDTFKupd90tK3wvcQb6T5JVK5oam+aX3LyTPDs4/T6adJyI1B7j6bXGB91LVCHLmxa/HgKyJtTrtzWx95VwrtqLZRXU/ktN5mvLLUVZeFzgF4+hMvYHerlI2x7Gug4eMR0VPrjkctIvlvbRF7SYR0U4redCE4b2VLV69VjNZCdAAVuIZr+Gapf3tlTa15c9PTGVdpmZFhi2KJU2KkzU4VW94yfcDte23YVUO47qx1uvdalMkwErxHJQ==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pXcoDxHRxGKKp8TCK5YNDj+o6REzgmHVFwVATp9BCck=;
 b=bmzaljxNTagqdBS93ILTJ2ZCkIh0FELd6KafcUQ/lVjuHSYQfA3XUgrhlAlW1sO/YTd/DFokMPPImbfeMkbdgA3nmHHqMXOJvyHMI1+606B2xkj2i1PQujKL1kjeLKgqpXxMCtll3wLqNh8huW7FA3MwYGCL6n3whrFQAI7moLM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WG9j7faOQSW7lBcjlO+X80ZF5DVgpaqfPEryD6xbDSwgiifZOEKvKjkLM3VhphfOX9At8S4g7DfPZ04uTUpa3jdUdPxkRnrVB3Cl5wO/K6KHlUmlKK1ZrlqoDGbsK9V3CUMht+ALFzEfQe1WpN+JWCtWkCNyfy7osZyrpqvvPYjC+h2RhQaL1ayWSCNbZEwPsAwZfdt2Wp7N+9i4rdxo1RSYvpSCkSadiKra9ZouV/gVPOgE8YI6qeDFIzUVk3vg+fQO9WK51bzLfLBk7G3TXK6AbthPn9LigwPi2ohiHHTGgVlK/TFavkPB7xkr5s0O6HUQRu9tsrYFYumW1abZkA==
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=pXcoDxHRxGKKp8TCK5YNDj+o6REzgmHVFwVATp9BCck=;
 b=arvRz/JnERYq9R8IHvuwJdAXgRPswJ5l/p68XQvEBKa1SF4WdgBpoNS0S1GCp9lLoDHfoDQq3C+p2vaHUgZhTYYiWat8QDLZyAcmREQC7MrkestLIYuq7V+F9ByHQob/7ibF+GR3YIxEYK8/tPF+YrU8EEurqzoojelHxBZ8IrBTmms4jugXdvJJQwT7E+bexzT31RCWBmj4bpSQNeeE0In0Jr6A+e/0N2yhyKJr0BJwRccKRdMt8ECQa4hAGjGWiV/JldqUe5QSgNOk5EmE+9NiubNz8xIvJIkZPiHa5UE3hijVjI4dwZJbBx70GzlOxsYQH+BdlEbgczC5rdgmqA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pXcoDxHRxGKKp8TCK5YNDj+o6REzgmHVFwVATp9BCck=;
 b=bmzaljxNTagqdBS93ILTJ2ZCkIh0FELd6KafcUQ/lVjuHSYQfA3XUgrhlAlW1sO/YTd/DFokMPPImbfeMkbdgA3nmHHqMXOJvyHMI1+606B2xkj2i1PQujKL1kjeLKgqpXxMCtll3wLqNh8huW7FA3MwYGCL6n3whrFQAI7moLM=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
Subject: Re: [PATCH v9 05/13] xen/arm: gic-v3: add ITS suspend/resume support
Thread-Topic: [PATCH v9 05/13] xen/arm: gic-v3: add ITS suspend/resume support
Thread-Index: AQHc4jIv4lr3xwecDU6oUMQf2MSZUrYNm/aA
Date: Thu, 14 May 2026 14:45:04 +0000
Message-ID: <5323B63C-7F37-418C-97C6-0A94F9D03B4F@arm.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <bd79226263c1dd9c915a7fffd4f92b194af864ee.1778605274.git.mykola_kvach@epam.com>
In-Reply-To:
 <bd79226263c1dd9c915a7fffd4f92b194af864ee.1778605274.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|GVXPR08MB11318:EE_|AMS0EPF000001A7:EE_|GV1PR08MB10477:EE_
X-MS-Office365-Filtering-Correlation-Id: d7c39170-c7ca-4fc6-32b0-08deb1c78811
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|7416014|366016|18002099003|22082099003|56012099003|38070700021|3023799003|11063799003|4143699003;
X-Microsoft-Antispam-Message-Info-Original:
 IcNz05VCJKlZDr6vaIdo7CJsFCKF3YxUJmUM1JQUgKkA5qX5hQhIDF9BfNR4q+AmK7wDKnu1V+iFVEEwtAccYAvt0Uf1Kf6h6YtgNSVB5IEI5pMXk3IHQJoYJLcZBos1Q3DylK2Ca6bEHpQ+EUWNGcO+QiGwBFLGxu3Zt8z5m2SigRKBqrYSw2KRio921Wz+mzlBB/4gIkHSB2MqoqUMJUKv5ngbeCF+aHXUIlYD3TWjbEzH3kCkzCSDNU2d5+gh/8Z2NPUKWFJqnM7YPUTeMDUGaA39d940gZsJr126itp12qu/FnkJ4mf3/rbqBRjYuxdy4WEBHNbK2/k48sLiTE2hi9iP9utTe7ddT/4/OOLdry+pJUFnLR0QRvwuNqQDQl39aCuR2H8kTETqXI0YIRVnc1+cp6ZVc2y+P45db5gX7/ZWYSqH3At4+U2kX2TfjUjj8bnZxWZBVf/h1HT0BDegFir9OOk30xCMI2U3VnWSwwPYRLy05CLngfGVeYBi6dEajLXKv0oh4mUj7JEBa6o2BdQVOj3EnQgJZnBND/x8uyOBUkeKOaxr3XbqY0AnTa6te0pwf9SPckntSKQA7jFdKbnRCM2yaJYM3PpudicjhU76aXwWdK7vE84TQb8APvCKA77g0ck9FxvQ8KvFzuGA7My7/hbbq+HooGyGeDPWTLiU2j3z2ys9t5ihvH8D+icQBUt0OKcSTJouUKT9sm3ZbYSPOO1/v/9bG4QZOp0JwwmwsUPQkFSe9zUzSGtd
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(18002099003)(22082099003)(56012099003)(38070700021)(3023799003)(11063799003)(4143699003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <DCEEE0F0D2B6D54685B646230F19FF70@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 NQXV4T+lywkCMJtt3QFLDd1MaVi6WSSVTIQKM3SIhWuxqvjTZbT6Xma/glx2IoI70C1rf8j0t1kTFYnPJzlz0D5EpYwt9Ij1/srJlewCmXkMlEzwz/cQS7aGthvSt22zGeJ7m+fCvE5E/O5rLK3Jjn4UBPoHP5+4mZmANs3X6mChIexIqw4S7IRqZUqoA/ewHmKawNQxSQTAbQAH28whGX5vfZlaxGLlG8rfS29gEGvBpqpkYwH/ZKJIgj0XWU5qeoBR87FyKn0S/7G66ORYM/jtgXDP0khryXR86TmD2I9VuGpS+soM2JMpQY2QflzgiO2dti40k4OYdL2x+q/i+w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB11318
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001A7.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	fa80bc95-c204-46a1-de1a-08deb1c76274
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|14060799003|82310400026|7416014|1800799024|36860700016|35042699022|3023799003|11063799003|22082099003|56012099003|18002099003|4143699003;
X-Microsoft-Antispam-Message-Info:
	bnDvruiUMe/HIDNygPyuhQUAqWpbi0QYSl2dHcmL2OgQqy00Iyi1//MF782wWy+GaLbmuRdHioiM9lDRw26KQxDcw/REOcW+HhYaG8eEj7Eh+yKLfYtPE0pDw5lsGrAAxNl1QKlf4sMlNBPK1WhAr+xqWu2RNLQMeY0KCrbQCYshLO/3M7MbJqNF6lv+87tAtBdKtcnjoCjZoZgzTnpB6qD1cHSlJ9dlStbQzH5QIryuvqfh20We81y4P1IIZBk3208tu5QGbL37xjAIK6csa7fIhVHawKcvh0WSPpiAbiuCYNhxZqUUFq3bjk/ETWwgTtaIpqLdV6n0q4lEdEVMNefo85Gv4ynShBG6LpZ+upPvJnVPTLEs6s1puLcTMu6kOkjPHkZP4mz68IK+nrVMcwAWWN3ri2tUAdEPzR8Agg4rtpFPVnq01/7cCItvAvzDd6+rhhfq9IILv/9xe8X7X4zakqBaO+j2owOeXqWE+EvZLOn95dAcrPH1B9pFOqJThwUWvaLmyb20cse4yxIiAaL6ao5cj/mbgixmL7Fp+308ufQEA3sZSku0dnX2CFhWBzIuMUYSCmQeGSIxxnp/WZVHanOeWCVgRNNUAq2vx3C4GWat41XvebTkT+DgAUG+4N+qwZuedBkNiAlA8lRHpHpkxvGN+Eh5nYqaVBQUnyoSiJBCPmnPAA9ehATrNgnEnPDE09l3ODgeGb23tYBvygJZi1tuBDelK+XqIj8CAM4=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(14060799003)(82310400026)(7416014)(1800799024)(36860700016)(35042699022)(3023799003)(11063799003)(22082099003)(56012099003)(18002099003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	WDexAI+5mJu9f2z67bnLD6lUPShk4sW92+z0+VfSBBvHFrUmTbLu3oTSqcLVti1cWpy20excUTWuULWDsQqrBgNtrb5hCbQsIYpZJqVOK8ilw+xw20x4Lj3Rkaz4kmrVEgLJt+1vVbttEobF8v6I84BDgtfJALTj9hRpuag+2+7j1fGsRZ5OzwMY/+Y6g819ckJNXoL0pQhkVI43PYxdxp5R74lCxAu3/khta+Nk3mOAIU2XrvVCVHreHGzgpuAw8bWzQ/1O78XaLqdOHHM8hg0M2JRISH7mpKNilTMd4LpqIuHSiVDGApktmJzxK7hiAOO8tAziGrX00clmwRUFzwZjSF1Fsfag12Lph3EuG8l9+7h7ZonBvgTR3XSKx8ol7xVi34aAtlQpMhpJQ2dMYxSpGpI/nCpSQoYErK0/ioWx54J3qG+QiyaH30L7HedJ
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 14:46:07.1664
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d7c39170-c7ca-4fc6-32b0-08deb1c78811
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001A7.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB10477
X-purgate-ID: tlsNG-c1860d/1778769974-BC766DB1-C2A927A2/0/0
X-purgate-type: clean
X-purgate-size: 10096

SGkgTXlrb2xhLA0KDQo+IE9uIDEyIE1heSAyMDI2LCBhdCAxODowNywgTXlrb2xhIEt2YWNoIDx4
YWtlcC5hbWF0b3BAZ21haWwuY29tPiB3cm90ZToNCj4gDQo+IEZyb206IE15a29sYSBLdmFjaCA8
bXlrb2xhX2t2YWNoQGVwYW0uY29tPg0KPiANCj4gSGFuZGxlIHN5c3RlbSBzdXNwZW5kL3Jlc3Vt
ZSBmb3IgR0lDdjMgd2l0aCBhbiBJVFMgcHJlc2VudCBzbyBMUElzIGtlZXANCj4gd29ya2luZyBh
ZnRlciBmaXJtd2FyZSBwb3dlcnMgdGhlIEdJQyBkb3duLiBTYXZlIGFuZCByZXN0b3JlIHRoZSBJ
VFMNCj4gQ1RMUiwgQ0JBU0VSIGFuZCBCQVNFUiByZWdpc3RlcnMsIGFuZCByZS1lc3RhYmxpc2gg
dGhlIGNvbGxlY3Rpb24gbWFwcGluZw0KPiBvbiByZXN1bWUuDQo+IA0KPiBBZGQgbGlzdF9mb3Jf
ZWFjaF9lbnRyeV9jb250aW51ZV9yZXZlcnNlKCkgaW4gbGlzdC5oIGZvciB0aGUgSVRTIHN1c3Bl
bmQNCj4gZXJyb3IgcGF0aCB0aGF0IG5lZWRzIHRvIHJvbGwgYmFjayBwYXJ0aWFsbHkgc2F2ZWQg
c3RhdGUuDQo+IA0KPiBCYXNlZCBvbiBMaW51eCBjb21taXQgZGJhMGJjN2I3NmRjOg0KPiAiaXJx
Y2hpcC9naWMtdjMtaXRzOiBBZGQgYWJpbGl0eSB0byBzYXZlL3Jlc3RvcmUgSVRTIHN0YXRlIi4N
Cj4gU2lnbmVkLW9mZi1ieTogTXlrb2xhIEt2YWNoIDxteWtvbGFfa3ZhY2hAZXBhbS5jb20+DQo+
IC0tLQ0KPiBDaGFuZ2VzIGluIFY5Og0KPiAtIGZpeCB0aGUgSVRTIHN1c3BlbmQvcmVzdW1lIGNv
ZGluZy1zdHlsZSBuaXRzOw0KPiAtIHByZXNlcnZlIHRoZSBzYXZlZCBHSVRTX0NUTFIgc3RhdGUg
d2hpbGUgbWFza2luZyB0aGUgcmVhZC1vbmx5DQo+ICBRVUlFU0NFTlQgYml0Lg0KPiANCj4gQ2hh
bmdlcyBpbiBWODoNCj4gLSBSZXdvcmQgdGhlIENCQVNFUi9DV1JJVEVSIGNvbW1lbnQgdG8gbWF0
Y2ggWGVuIGFuZCBkcm9wIHRoZSBzdGFsZSBMaW51eA0KPiAgY21kX3dyaXRlIHJlZmVyZW5jZS4N
Cj4gLSBDbGFyaWZ5IHRoZSBsaXN0X2Zvcl9lYWNoX2VudHJ5X2NvbnRpbnVlX3JldmVyc2UoKSBj
b21tZW50Lg0KPiAtIEZhY3RvciBvdXQgcGVyLUlUUyBoZWxwZXJzIGZvciBjb2xsZWN0aW9uIHNl
dHVwIGFuZCByZXN1bWUuDQo+IC0gUmVzdG9yZSBlYWNoIElUUyBhbmQgcmUtZXN0YWJsaXNoIGl0
cyBjb2xsZWN0aW9uIG1hcHBpbmcgaW4gdGhlIHNhbWUNCj4gIGxvb3AsIHNvIGEgZmFpbGVkIElU
UyByZXN1bWUgaXMgbm90IGZvbGxvd2VkIGJ5IE1BUEMvU1lOQyBvbiB0aGF0DQo+ICB1bi1yZXN0
b3JlZCBpbnN0YW5jZS4NCj4gLSBwYW5pYyBpbiBjYXNlIHdoZW4gcmVzdW1lIG9mIGFuIElUUyBm
YWlsZWQNCj4gLSBjbGVhbnVwIGJhc2VyIGNhY2hlIGR1cmluZyBzdXNwZW5kDQo+IC0tLQ0KPiB4
ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jICAgICAgICAgICAgIHwgMTMzICsrKysrKysrKysrKysr
KysrKysrKysrKy0tDQo+IHhlbi9hcmNoL2FybS9naWMtdjMuYyAgICAgICAgICAgICAgICAgfCAg
MTEgKystDQo+IHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9naWNfdjNfaXRzLmggfCAgMjMgKysr
KysNCj4geGVuL2luY2x1ZGUveGVuL2xpc3QuaCAgICAgICAgICAgICAgICB8ICAxNCArKysNCj4g
NCBmaWxlcyBjaGFuZ2VkLCAxNzEgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pDQo+IA0K
PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYyBiL3hlbi9hcmNoL2FybS9n
aWMtdjMtaXRzLmMNCj4gaW5kZXggOTAwNWNlOGNlNS4uNTgyYzI2ZDk2NCAxMDA2NDQNCj4gLS0t
IGEveGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYw0KPiArKysgYi94ZW4vYXJjaC9hcm0vZ2ljLXYz
LWl0cy5jDQo+IEBAIC0zMzUsNiArMzM1LDIyIEBAIHN0YXRpYyBpbnQgaXRzX3NlbmRfY21kX2lu
dihzdHJ1Y3QgaG9zdF9pdHMgKml0cywNCj4gICAgIHJldHVybiBpdHNfc2VuZF9jb21tYW5kKGl0
cywgY21kKTsNCj4gfQ0KPiANCj4gK3N0YXRpYyBpbnQgZ2ljdjNfaXRzX3NldHVwX2NvbGxlY3Rp
b25fc2luZ2xlKHN0cnVjdCBob3N0X2l0cyAqaXRzLA0KPiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNwdSkNCj4gK3sNCj4gKyAgICBp
bnQgcmV0Ow0KPiArDQo+ICsgICAgcmV0ID0gaXRzX3NlbmRfY21kX21hcGMoaXRzLCBjcHUsIGNw
dSk7DQo+ICsgICAgaWYgKCByZXQgKQ0KPiArICAgICAgICByZXR1cm4gcmV0Ow0KPiArDQo+ICsg
ICAgcmV0ID0gaXRzX3NlbmRfY21kX3N5bmMoaXRzLCBjcHUpOw0KPiArICAgIGlmICggcmV0ICkN
Cj4gKyAgICAgICAgcmV0dXJuIHJldDsNCj4gKw0KPiArICAgIHJldHVybiBnaWN2M19pdHNfd2Fp
dF9jb21tYW5kcyhpdHMpOw0KPiArfQ0KPiArDQo+IC8qIFNldCB1cCB0aGUgKDE6MSkgY29sbGVj
dGlvbiBtYXBwaW5nIGZvciB0aGUgZ2l2ZW4gaG9zdCBDUFUuICovDQo+IGludCBnaWN2M19pdHNf
c2V0dXBfY29sbGVjdGlvbih1bnNpZ25lZCBpbnQgY3B1KQ0KPiB7DQo+IEBAIC0zNDMsMTUgKzM1
OSw3IEBAIGludCBnaWN2M19pdHNfc2V0dXBfY29sbGVjdGlvbih1bnNpZ25lZCBpbnQgY3B1KQ0K
PiANCj4gICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoaXRzLCAmaG9zdF9pdHNfbGlzdCwgZW50cnkp
DQo+ICAgICB7DQo+IC0gICAgICAgIHJldCA9IGl0c19zZW5kX2NtZF9tYXBjKGl0cywgY3B1LCBj
cHUpOw0KPiAtICAgICAgICBpZiAoIHJldCApDQo+IC0gICAgICAgICAgICByZXR1cm4gcmV0Ow0K
PiAtDQo+IC0gICAgICAgIHJldCA9IGl0c19zZW5kX2NtZF9zeW5jKGl0cywgY3B1KTsNCj4gLSAg
ICAgICAgaWYgKCByZXQgKQ0KPiAtICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gLQ0KPiAtICAg
ICAgICByZXQgPSBnaWN2M19pdHNfd2FpdF9jb21tYW5kcyhpdHMpOw0KPiArICAgICAgICByZXQg
PSBnaWN2M19pdHNfc2V0dXBfY29sbGVjdGlvbl9zaW5nbGUoaXRzLCBjcHUpOw0KPiAgICAgICAg
IGlmICggcmV0ICkNCj4gICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gICAgIH0NCj4gQEAgLTEy
MTAsNiArMTIxOCwxMTMgQEAgaW50IGdpY3YzX2l0c19pbml0KHZvaWQpDQo+ICAgICByZXR1cm4g
MDsNCj4gfQ0KPiANCj4gKyNpZmRlZiBDT05GSUdfU1lTVEVNX1NVU1BFTkQNCj4gK2ludCBnaWN2
M19pdHNfc3VzcGVuZCh2b2lkKQ0KPiArew0KPiArICAgIHN0cnVjdCBob3N0X2l0cyAqaXRzOw0K
PiArICAgIGludCByZXQ7DQo+ICsNCj4gKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KCBpdHMsICZo
b3N0X2l0c19saXN0LCBlbnRyeSApDQo+ICsgICAgew0KPiArICAgICAgICB1bnNpZ25lZCBpbnQg
aTsNCj4gKyAgICAgICAgdm9pZCBfX2lvbWVtICpiYXNlID0gaXRzLT5pdHNfYmFzZTsNCj4gKw0K
PiArICAgICAgICAvKg0KPiArICAgICAgICAgKiBCeSB0aGUgdGltZSBYZW4gcmVhY2hlcyBnaWNf
c3VzcGVuZCgpLCBldmVyeSBkb21haW4gaXMgYWxyZWFkeSBpbg0KPiArICAgICAgICAgKiBTSFVU
RE9XTl9zdXNwZW5kLCBzbyBJVFMtdGFyZ2V0aW5nIGludGVycnVwdCBzb3VyY2VzIGFyZSBleHBl
Y3RlZA0KPiArICAgICAgICAgKiB0byBoYXZlIGJlZW4gcXVpZXNjZWQgYnkgdGhlIG93bmluZyBP
UyBiZWZvcmUgU1lTVEVNX1NVU1BFTkQuDQo+ICsgICAgICAgICAqLw0KPiArICAgICAgICAvKiBQ
cmVzZXJ2ZSBzYXZlZCBHSVRTX0NUTFIgc3RhdGUsIGV4Y2x1ZGluZyByZWFkLW9ubHkgUVVJRVND
RU5ULiAqLw0KPiArICAgICAgICBpdHMtPnN1c3BlbmRfY3R4LmN0bHIgPSByZWFkbF9yZWxheGVk
KGJhc2UgKyBHSVRTX0NUTFIpICYNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fkdJVFNfQ1RMUl9RVUlFU0NFTlQ7DQo+ICsgICAgICAgIHJldCA9IGdpY3YzX2Rpc2FibGVfaXRz
KGl0cyk7DQo+ICsgICAgICAgIGlmICggcmV0ICkNCj4gKyAgICAgICAgew0KPiArICAgICAgICAg
ICAgd3JpdGVsX3JlbGF4ZWQoaXRzLT5zdXNwZW5kX2N0eC5jdGxyLCBiYXNlICsgR0lUU19DVExS
KTsNCj4gKyAgICAgICAgICAgIGdvdG8gZXJyOw0KPiArICAgICAgICB9DQo+ICsNCj4gKyAgICAg
ICAgaXRzLT5zdXNwZW5kX2N0eC5jYmFzZXIgPSByZWFkcV9yZWxheGVkKGJhc2UgKyBHSVRTX0NC
QVNFUik7DQo+ICsNCj4gKyAgICAgICAgZm9yICggaSA9IDA7IGkgPCBHSVRTX0JBU0VSX05SX1JF
R1M7IGkrKyApDQo+ICsgICAgICAgIHsNCj4gKyAgICAgICAgICAgIHVpbnQ2NF90IGJhc2VyID0g
cmVhZHFfcmVsYXhlZChiYXNlICsgR0lUU19CQVNFUjAgKyBpICogOCk7DQo+ICsNCj4gKyAgICAg
ICAgICAgIGl0cy0+c3VzcGVuZF9jdHguYmFzZXJbaV0gPSAwOw0KPiArDQo+ICsgICAgICAgICAg
ICBpZiAoICEoYmFzZXIgJiBHSVRTX1ZBTElEX0JJVCkgKQ0KPiArICAgICAgICAgICAgICAgIGNv
bnRpbnVlOw0KPiArDQo+ICsgICAgICAgICAgICBpdHMtPnN1c3BlbmRfY3R4LmJhc2VyW2ldID0g
YmFzZXI7DQo+ICsgICAgICAgIH0NCj4gKyAgICB9DQo+ICsNCj4gKyAgICByZXR1cm4gMDsNCj4g
Kw0KPiArIGVycjoNCj4gKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X2NvbnRpbnVlX3JldmVyc2Uo
IGl0cywgJmhvc3RfaXRzX2xpc3QsIGVudHJ5ICkNCj4gKyAgICAgICAgd3JpdGVsX3JlbGF4ZWQo
aXRzLT5zdXNwZW5kX2N0eC5jdGxyLCBpdHMtPml0c19iYXNlICsgR0lUU19DVExSKTsNCj4gKw0K
PiArICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgZ2ljdjNfaXRzX3Jl
c3VtZV9zaW5nbGUoc3RydWN0IGhvc3RfaXRzICppdHMsIHVuc2lnbmVkIGludCBjcHUpDQo+ICt7
DQo+ICsgICAgdm9pZCBfX2lvbWVtICpiYXNlID0gaXRzLT5pdHNfYmFzZTsNCj4gKyAgICB1bnNp
Z25lZCBpbnQgaTsNCj4gKyAgICBpbnQgcmV0Ow0KPiArDQo+ICsgICAgLyoNCj4gKyAgICAgKiBN
YWtlIHN1cmUgdGhhdCB0aGUgSVRTIGlzIGRpc2FibGVkLiBJZiBpdCBmYWlscyB0byBxdWllc2Nl
LA0KPiArICAgICAqIGRvbid0IHJlc3RvcmUgaXQgc2luY2Ugd3JpdGluZyB0byBDQkFTRVIgb3Ig
QkFTRVI8bj4NCj4gKyAgICAgKiByZWdpc3RlcnMgaXMgdW5kZWZpbmVkIGFjY29yZGluZyB0byB0
aGUgR0lDIHYzIElUUw0KDQpzL3VuZGVmaW5lZC91bnByZWRpY3RhYmxlLyA/DQoNCj4gKyAgICAg
KiBTcGVjaWZpY2F0aW9uLg0KPiArICAgICAqLw0KPiArICAgIFdBUk5fT04ocmVhZGxfcmVsYXhl
ZChiYXNlICsgR0lUU19DVExSKSAmIEdJVFNfQ1RMUl9FTkFCTEUpOw0KPiArICAgIHJldCA9IGdp
Y3YzX2Rpc2FibGVfaXRzKGl0cyk7DQo+ICsgICAgaWYgKCByZXQgKQ0KPiArICAgICAgICByZXR1
cm4gcmV0Ow0KPiArDQo+ICsgICAgd3JpdGVxX3JlbGF4ZWQoaXRzLT5zdXNwZW5kX2N0eC5jYmFz
ZXIsIGJhc2UgKyBHSVRTX0NCQVNFUik7DQo+ICsNCj4gKyAgICAvKg0KPiArICAgICAqIFdyaXRp
bmcgQ0JBU0VSIHJlc2V0cyBDUkVBRFIgdG8gMCwgc28gcmVzZXQgQ1dSSVRFUiB0bw0KPiArICAg
ICAqIGtlZXAgdGhlIGNvbW1hbmQgcXVldWUgcG9pbnRlcnMgYWxpZ25lZC4NCj4gKyAgICAgKi8N
Cj4gKyAgICB3cml0ZXFfcmVsYXhlZCgwLCBiYXNlICsgR0lUU19DV1JJVEVSKTsNCj4gKw0KPiAr
ICAgIC8qIFJlc3RvcmUgR0lUU19CQVNFUiBmcm9tIHRoZSB2YWx1ZSBjYWNoZS4gKi8NCj4gKyAg
ICBmb3IgKCBpID0gMDsgaSA8IEdJVFNfQkFTRVJfTlJfUkVHUzsgaSsrICkNCj4gKyAgICB7DQo+
ICsgICAgICAgIHVpbnQ2NF90IGJhc2VyID0gaXRzLT5zdXNwZW5kX2N0eC5iYXNlcltpXTsNCj4g
Kw0KPiArICAgICAgICBpZiAoICEoYmFzZXIgJiBHSVRTX1ZBTElEX0JJVCkgKQ0KPiArICAgICAg
ICAgICAgY29udGludWU7DQo+ICsNCj4gKyAgICAgICAgd3JpdGVxX3JlbGF4ZWQoYmFzZXIsIGJh
c2UgKyBHSVRTX0JBU0VSMCArIGkgKiA4KTsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICB3cml0ZWxf
cmVsYXhlZChpdHMtPnN1c3BlbmRfY3R4LmN0bHIsIGJhc2UgKyBHSVRTX0NUTFIpOw0KPiArDQo+
ICsgICAgcmV0dXJuIGdpY3YzX2l0c19zZXR1cF9jb2xsZWN0aW9uX3NpbmdsZShpdHMsIGNwdSk7
DQoNClRoaXMgd2lsbCBhbHdheXMgaXNzdWUgYSBNQVBDIFY9MSwgaW4gdGhlIHNlY3Rpb24gNS4z
LjkgaXQgc2FpcyBpdOKAmXMgInVucHJlZGljdGFibGUNCmlmIHRoZXJlIGFyZSBpbnRlcnJ1cHRz
IHRoYXQgYXJlIG1hcHBlZCB0byB0aGUgc3BlY2lmaWVkIGNvbGxlY3Rpb24gYW5kIHRoZQ0KY29s
bGVjdGlvbiBpcyBjdXJyZW50bHkgbWFwcGVkIHRvIGEgUmVkaXN0cmlidXRvciwgdW5sZXNzIE1B
UEMgaXMgZm9sbG93ZWQgYnkgTU9WQUxM4oCdLA0KaW4gdGhpcyBjYXNlIHRoZSByZWRpc3RyaWJ1
dG9yIGlzIHRoZSBzYW1lIGJ1dCB0aGUgc3BlY3MgZG9u4oCZdCBzYXkgYW55dGhpbmcgYWJvdXQg
dGhpcyBjYXNlLA0KaXTigJlzIGdlbmVyYWxseSB1bnByZWRpY3RhYmxlIGlmIHdlIGFyZSByZW1h
cHBpbmcgYW4gYWxyZWFkeS1saXZlIGNvbGxlY3Rpb24uDQoNCkkgc2VlIExpbnV4IHJlcGx5IHRo
ZSBNQVBDIFY9MSBvbmx5IGlmIHRoZSBjb2xsZWN0aW9uIGlzIHN0b3JlZCBpbiB0aGUgSVRTIChu
b3QgbWVtb3J5IGJhY2tlZCksDQpvdXIgY29sX2lkIGlzIGBjcHVgLCB3aGljaCBJIGJlbGlldmUg
dGhhdCBmb3IgdGhlIHN1c3BlbmQgcGF0aCBpcyBhbHdheXMgemVybyAoPyksIHNvIGJ5IGxvb2tp
bmcgaW50bw0KSENDIHdlIGNvdWxkIGNoZWNrIGlmIHdlIG5lZWQgdG8gaXNzdWUgdGhlIE1BUEMg
b3Igbm90Lg0KDQppZiAoIGNwdSA8IEdJVFNfVFlQRVJfSENDKHJlYWRxX3JlbGF4ZWQoYmFzZSAr
IEdJVFNfVFlQRVIpKSApDQogICAgcmV0dXJuIGdpY3YzX2l0c19zZXR1cF9jb2xsZWN0aW9uX3Np
bmdsZShpdHMsIGNwdSk7DQoNCnJldHVybiAwOw0KDQo+ICt9DQo+ICsNCj4gK3ZvaWQgZ2ljdjNf
aXRzX3Jlc3VtZSh2b2lkKQ0KPiArew0KPiArICAgIHN0cnVjdCBob3N0X2l0cyAqaXRzOw0KPiAr
ICAgIHVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7DQo+ICsgICAgaW50IHJl
dDsNCj4gKw0KPiArICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoIGl0cywgJmhvc3RfaXRzX2xpc3Qs
IGVudHJ5ICkNCj4gKyAgICB7DQo+ICsgICAgICAgIHJldCA9IGdpY3YzX2l0c19yZXN1bWVfc2lu
Z2xlKGl0cywgY3B1KTsNCj4gKyAgICAgICAgaWYgKCByZXQgKQ0KPiArICAgICAgICAgICAgcGFu
aWMoIkdJQ3YzOiBJVFNAJSJQUklwYWRkciI6IGZhaWxlZCB0byByZXN0b3JlIGR1cmluZyByZXN1
bWU6ICVkXG4iLA0KPiArICAgICAgICAgICAgICAgICAgIGl0cy0+YWRkciwgcmV0KTsNCj4gKyAg
ICB9DQo+ICt9DQo+ICsNCj4gKyNlbmRpZiAvKiBDT05GSUdfU1lTVEVNX1NVU1BFTkQgKi8NCj4g
DQoNCkNoZWVycywNCkx1Y2ENCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Thu May 14 14:51:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 14:51:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308969.1580193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNXPj-0005Uv-7d; Thu, 14 May 2026 14:51:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308969.1580193; Thu, 14 May 2026 14:51:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNXPj-0005Uo-4i; Thu, 14 May 2026 14:51:51 +0000
Received: by outflank-mailman (input) for mailman id 1308969;
 Thu, 14 May 2026 14:51:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wNXPh-0005Ui-Nq
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 14:51:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNXPf-00FIXN-5R
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 16:51:48 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a05e149-e002-0a2a0a5209dd-0a2a4505d048-44
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 16:51:48 +0200
Received: from [209.85.208.172] (helo=mail-lj1-f172.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a05e184-aaa8-0a2a45050019-d155d0acb00f-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 16:51:48 +0200
Received: by mail-lj1-f172.google.com with SMTP id
 38308e7fff4ca-39397d63804so93455251fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 07:51:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778770308; cv=none;
        d=google.com; s=arc-20240605;
        b=ZULRKXErdrQW3HpmDvIgQJ+hwoDkqsdXpUKjGjZa9Ov4MazpyuUHUoEN/wtyDnlj2n
         fnYbTfsrnPy/xJ0UzkL6B0zmOms9BWUJR+N1X7wS+GZ3vmOhljri3HLhZzZHlnxSvvF7
         SB3Iriw5HfIqIdQtQ1OxS8Y4fUQLkau/sP7K8+BwxiYJAmFysNo8h9EAe0ItPVPirSGu
         VPouy9FUwamIFquVHTIJQCfTDBg4VrSSsiT5IwlYxVUn22FeBCynuv/KJYbA7iFulaJ7
         +fy65Rr1c6tODoKuhy7o1aFV7N8YGrJbMNy5Y7APzZu2dB+03hdV+EOOS5ryyXJ0GRoH
         m6Fg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=KIIiwCBbQ685Z7X9m9+JX/D+mioY59yU2loMFYxhtWQ=;
        fh=GgMYjtlO+qGjk4ieOEUMK5gpFDA70JLVlWtgRNJ+MYY=;
        b=jtC8aXgQq8CywyTtOXqPggsgWOj5Ra7xotCqIHSw+7KQs4adZ4GxPSC+3FxYGyytNI
         CMYsSpCmI5/mqUAKY80/h1LydJPl/5Pzr1L+rwel0eLhq+s7sExEgOr12C+by9TJWry5
         fcKX+T4FBJEtDOZS8dNh5l2bLNQd/smpQH9PMGmoGV0H3FUnJ7aJJpA0Ze/jQKyFW7KS
         UQ9bQhQ7JFwjCfF2IU8lyDd+NpdJF6f6tFIANQKavzOPVN5DMaTVP8QKxmVfHromxCqS
         bLx2Ygp+Pad/08rHqhKvdj9OFgwutRcLwtJnoldx9sVcmevurWker9eFsiGYOnUKi2FR
         118g==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778770308; x=1779375108; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KIIiwCBbQ685Z7X9m9+JX/D+mioY59yU2loMFYxhtWQ=;
        b=d/QC5ca//pUsbCXx/3sFfpstYfTaanAXkDKt9G+N4VPwLqNdVS5ceEAN8k0Ryc+z4o
         8D+wmEUobzwaPeT/2YOoPPTCCc15peqLj//06nhPuGVH3R7SbdQCkKrGF6pilUQmUVwc
         jyH4iPKA4o0z7XwfGBDwupWO9MA7iUaPeEjictWCBmVi7XO9x4rEQVLbi9xK1Ss8OqjP
         6M68acgXllVF7EwK5Rd87iU+BMlR1+NU9fNN2FJagewoi44QqqmQr9rV6JHuiV4f8O8C
         4wlrOUNOfzg58M93iQdUPaiY40fCOUPsnXjHkqev5SOHxDJ7kOFo8H41ZY3Vs6wlD0+C
         ZjSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778770308; x=1779375108;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=KIIiwCBbQ685Z7X9m9+JX/D+mioY59yU2loMFYxhtWQ=;
        b=OOa+iSfRZjc+t52xxronALk2pvuWG8K/m3DMrMB8MUKuV77MUXhfDfETSwnjDJvYEI
         4laisSzkkgMxtEGQNFJe38PVLLP/YIcZk/xd38if3/Hdk17qF1QSfXM/feDE9WlLZQFy
         HN7eI3Vl+rJ4JKS6U3CVmCc5TfcPEo/3rgr+zetryfPJE2Tt9chi9WTfyWNQGQ73+U83
         CYpYTyS49c3mqqrWvUZX6wo6Rb8rx4g4IM/LRF5GQnPMHa+n5GxN++m4u7OgTK05yqoQ
         81BaFcC4kM5J7tNGlD2EUc6NGhtnintjo2X7k8EX18Jum0E9oKonMH1qD9m9lREFlwJ/
         6lrg==
X-Forwarded-Encrypted: i=1; AFNElJ9PdtJFHKl4Uhpi65dk7sAhZ800+tDytPDum8rWCBW1p2DRIcHILCF/N964GUk40lWuQU1vcL1LgTI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxnYSxAxf3gJ8VGUBvnsQwaC1hU8+T+OLuE+LvwIqeuqL1lGXgl
	d4TchvZKq5X32D5tmwq8g0ANWqgmP4QPODXJ9qOMQsxOkXL76iqVKTFuY8U20ibDJiU535aw5WU
	gZLf/W1TRu7THu9sYIjHPYnzgSBrx1+0=
X-Gm-Gg: Acq92OFVAVDXASZcOefMNTM5ZeSwgDuDH7YTCBcvBNoZmSk2Wa5jC/BZr1lpTlTKAB6
	v3wWbWvirZatzrlIHOOhOpxIU6b0uR+RNnJqgkmGt9RzphN7b4Bwf3IKKiGw/i4dh5bwU1+c1Sw
	igPBJ8wzorQWuoB/zImcFLPz5euFJndhtV90dROLZPqQaaTjX6vfbdivIW559/OUUkV02ZH+xYK
	/MKEb4mSM9zqKTYQqY72K+CMd8RNMKHK+QiG5QiG69Lb+FZyULz4PnUSxBAp6WPtQNYUxa5lIdU
	ipgXhNF+EdO6Mrs=
X-Received: by 2002:a05:651c:24a:b0:394:5c9a:f315 with SMTP id
 38308e7fff4ca-3945c9afc6cmr15373501fa.14.1778770307546; Thu, 14 May 2026
 07:51:47 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778605274.git.mykola_kvach@epam.com> <06448a30ef6694a55ac85d4c8c78ca2d71342430.1778605274.git.mykola_kvach@epam.com>
 <7a540913-adc4-4172-9108-9c91eaf854fe@suse.com>
In-Reply-To: <7a540913-adc4-4172-9108-9c91eaf854fe@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 14 May 2026 17:51:36 +0300
X-Gm-Features: AVHnY4JWFNAD9wNXPx--H8U3_8L_mpDIMMkgHAKqUqL7_4hcbV5XqSOH_oqu7g8
Message-ID: <CAGeoDV8cmFJPcaJRg_dqxZqc7Q+=CDS9jvw-HDw1pDfb3HGfog@mail.gmail.com>
Subject: Re: [PATCH v9 12/13] xen/arm: Add vPSCI SYSTEM_SUSPEND policy
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Rahul Singh <rahul.singh@arm.com>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c201ff/1778770308-E0A66443-DE9AD681/0/0
X-purgate-type: clean
X-purgate-size: 7462

Hi Jan,

Thank you for the review.

On Wed, May 13, 2026 at 9:54=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 12.05.2026 19:07, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > Introduce CONFIG_HAS_HWDOM_SYSTEM_SUSPEND as an architecture-selected
> > capability for platforms where the hardware domain can be parked with
> > SHUTDOWN_suspend without calling hwdom_shutdown().
> >
> > Expose PSCI SYSTEM_SUSPEND as a vPSCI operation for all domains. For
> > non-control domains, including the hardware domain when it is not actin=
g as a
> > control domain, the call is handled as a guest/domain suspend request a=
nd
> > parks the domain in SHUTDOWN_suspend.
> >
> > Control domains need additional sequencing because their SYSTEM_SUSPEND
> > request is used to coordinate host-wide suspend. A non-last awake contr=
ol
> > domain may be parked in SHUTDOWN_suspend without requiring the host sus=
pend
> > path to be available. The last awake control domain is treated as the p=
oint
> > where the request becomes a host-suspend request, and it may only proce=
ed
> > when all non-control domains are already in SHUTDOWN_suspend and the ho=
st
> > suspend path is available.
> >
> > Keep the control-domain sequencing and domain-readiness checks out of
> > PSCI_FEATURES. They are per-attempt runtime conditions rather than stab=
le PSCI
> > function availability. Advertise SYSTEM_SUSPEND as implemented by vPSCI=
 and
> > enforce the sequencing policy in the call handler.
> >
> > Select HAS_HWDOM_SYSTEM_SUSPEND independently from CONFIG_SYSTEM_SUSPEN=
D so
> > that SHUTDOWN_suspend from the hardware domain can be treated as a doma=
in
> > suspend state rather than as a hardware-domain initiated host shutdown.=
 This
> > does not by itself imply that host-wide suspend is available.
> >
> > Add host_system_suspend_allowed() to combine the host PSCI SYSTEM_SUSPE=
ND
> > capability with runtime blockers reported by Xen-owned subsystems. Add
> > runtime blockers for registered serial, IOMMU, GIC and SMMUv3 MSI IRQ p=
aths
> > lacking suspend/resume support. These blockers are runtime based, so th=
ey
> > only apply to drivers or paths that Xen actually uses on the platform. =
For
> > SMMUv3, the blocker applies only when Xen actually uses the MSI IRQ pat=
h,
> > since resume does not restore the SMMU *_IRQ_CFGn MSI registers yet.
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> >  xen/arch/arm/Kconfig                  |   1 +
> >  xen/arch/arm/gic.c                    |   6 ++
> >  xen/arch/arm/include/asm/psci.h       |   3 +
> >  xen/arch/arm/include/asm/suspend.h    |  10 ++-
> >  xen/arch/arm/psci.c                   |   7 ++
> >  xen/arch/arm/suspend.c                |  40 +++++++++
> >  xen/arch/arm/vpsci.c                  | 114 +++++++++++++++++++++++---
> >  xen/common/Kconfig                    |   3 +
> >  xen/common/domain.c                   |   7 +-
> >  xen/drivers/char/serial.c             |  12 +++
> >  xen/drivers/passthrough/arm/iommu.c   |   4 +
> >  xen/drivers/passthrough/arm/smmu-v3.c |   4 +
> >  xen/include/xen/serial.h              |   1 +
> >  xen/include/xen/suspend.h             |   2 +
> >  14 files changed, 201 insertions(+), 13 deletions(-)
> >
>
> Contrary to what the cover letter says, there's no revlog here.

Right, I should have added a short note for this patch as well.

This is a new patch in this version of the series, so there was no previous
version of this particular patch to compare against, but I agree that this
should still have been mentioned explicitly, e.g. as "New in v9". I will ad=
d
that in the next version.

>
> > --- a/xen/arch/arm/suspend.c
> > +++ b/xen/arch/arm/suspend.c
> > @@ -1,9 +1,49 @@
> >  /* SPDX-License-Identifier: GPL-2.0-only */
> >
> > +#include <asm/psci.h>
> >  #include <asm/suspend.h>
> >
> > +#include <xen/lib.h>
> > +#include <xen/serial.h>
> > +
> >  struct resume_cpu_context resume_cpu_context;
> >
> > +/*
> > + * Non-PSCI infrastructure can make host suspend impossible even when =
the PSCI
> > + * SYSTEM_SUSPEND conduit is present, e.g. when a Xen-owned driver has=
 no valid
> > + * suspend/resume path.
> > + *
> > + * This gate is checked only when the last awake control domain attemp=
ts to
> > + * turn a guest SYSTEM_SUSPEND request into a host-suspend request.
> > + */
> > +static bool host_system_suspend_runtime_allowed =3D true;
> > +
> > +static bool host_serial_suspend_allowed(void)
> > +{
> > +    if ( serial_suspend_supported() )
> > +        return true;
> > +
> > +    printk_once(XENLOG_INFO
> > +                "Host SYSTEM_SUSPEND blocked: serial driver lacks susp=
end/resume support\n");
>
> Please try to keep log messages down to a reasonable size. In the case he=
re,
> what value does "suspend/resume" add?

Fair point. The important part is that the serial driver cannot support the
host suspend path. I will shorten the message somehow.

>
> > +static int32_t domain_psci_system_suspend_policy(struct domain *d)
> > +{
> > +    struct domain *other;
> > +    bool last_awake_control_domain =3D true;
> > +    bool awake_non_control_domain =3D false;
> > +
> > +    /* Only control domains participate in sequencing policy. */
> > +    if ( !is_control_domain(d) )
> > +        return 0;
> > +
> > +    rcu_read_lock(&domlist_read_lock);
> > +
> > +    for_each_domain ( other )
> > +    {
> > +        bool suspended;
> > +
> > +        if ( other =3D=3D d )
> > +            continue;
> > +
> > +        suspended =3D domain_in_suspend_state(other);
> > +        if ( suspended )
> > +            continue;
> > +
> > +        if ( is_control_domain(other) )
> > +        {
> > +            last_awake_control_domain =3D false;
> > +            break;
> > +        }
> > +
> > +        awake_non_control_domain =3D true;
> > +    }
> > +
> > +    rcu_read_unlock(&domlist_read_lock);
> > +
> > +    /*
> > +     * Another control domain is still awake. This request is only the=
 first
> > +     * phase of the sequencing: park this control domain and leave the=
 host
> > +     * running. Host-wide suspend gates must not block this intermedia=
te state.
> > +     */
> > +    if ( !last_awake_control_domain )
> > +        return 0;
> > +
> > +    /*
> > +     * This is the last awake control domain. It must not be parked un=
less the
> > +     * request can proceed as a host-suspend request; otherwise Xen wo=
uld lose
> > +     * the last domain that can coordinate the system suspend.
> > +     */
> > +    if ( awake_non_control_domain )
> > +    {
> > +        printk(XENLOG_DEBUG
> > +               "SYSTEM_SUSPEND denied: last awake control domain dom%u=
 requested host suspend while non-control domains are still awake\n",
> > +               d->domain_id);
>
> Same here, plus please use %pd.

Ack, I will shorten the message and use %pd.

>
> > --- a/xen/drivers/char/serial.c
> > +++ b/xen/drivers/char/serial.c
> > @@ -497,6 +497,8 @@ const struct vuart_info *serial_vuart_info(int idx)
> >
> >  #ifdef CONFIG_SYSTEM_SUSPEND
> >
> > +static bool __read_mostly serial_suspend_available =3D true;
>
> __ro_after_init?

Good catch, yes.
I will use __ro_after_init for this variable.

Best regards,
Mykola

>
> Jan


From xen-devel-bounces@lists.xenproject.org Thu May 14 15:18:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 15:18:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1308989.1580202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNXpN-0000WM-7b; Thu, 14 May 2026 15:18:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1308989.1580202; Thu, 14 May 2026 15:18:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNXpN-0000WF-4L; Thu, 14 May 2026 15:18:21 +0000
Received: by outflank-mailman (input) for mailman id 1308989;
 Thu, 14 May 2026 15:18:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNXpL-0000W9-6L
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 15:18:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNXpK-007z8y-Ga
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 17:18:18 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a05e7a7-e002-0a2a0a5209dd-0a2a4507c4dc-42
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 17:18:18 +0200
Received: from [52.101.46.60]
 (helo=CO1PR03CU002.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a05e7b8-229c-0a2a45070019-34652e3c3262-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 17:18:18 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB6551.namprd03.prod.outlook.com (2603:10b6:a03:38f::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.21; Thu, 14 May
 2026 15:18:14 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Thu, 14 May 2026
 15:18:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mVei6tQ6LwhrQ5eqPIcfQS2vYNOdmHlsBNVhIL6BmwCNZS6cdLDV2k/0GswWB6Zy8PshKzvaFeJcIHZWPhd4RXRcO45CWSRdnAypHKH+jipuxwghTcMU2S3YEAKGG6xyDl52luYQRgve2+y3fqY7PIgTEWrso7xIB+hbS/pV31suWa2y8iz4PK9lwhL/Li9fTl80l7t//vgE7rDz05Pu4TlzA/hR3gHyCtmQLGYMN1tvJrnRV3IoVTBn9tEjniXx7DlRawEflocHhSqY7705mK3mfMRZ7TtnmnWdS1Ie4vj1UIT6cGnyJjY/kxQklQq/Gdk0rX1ee2nI0cwEzuwRmw==
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=cEewIzKrGD2teehTLCQfFeoIYjYCO+02NSdyIynyf7s=;
 b=Kx8WQ4ZWZeRcK1SFG0v98vT0USKKUJn09JJu0R5sNsUccwHPPxTZ7sbgjSUmWbMExgEpIRXDT0fm2QuBQyFsDwZH9anqo9/+VnFCmBuT7eWGva1gj0CrX9D3G1DwYCuviV924WML795qTIeKX4/YI4PQSXsEXfdRED8wWKzOGj5CpsC53PoyDyAZO9nuA6FD4QV6yJ8COpgutzJ/Dj3A7uooIu9vXWF2j8IwogjUjKMOdVd1bNUQoqvoMNBPwDk1sc2p6Nka87/ceAA7Gucqf9UX0lLMFtpj+/x4SzPCxvIArqvL2gVfYOx6QzKOotC0MQIuPJxC7FL87cesQ0vROA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cEewIzKrGD2teehTLCQfFeoIYjYCO+02NSdyIynyf7s=;
 b=MJ2azzkBlDCIYG1t9mrERk1l8Z7//rXCWC/AqS64ObC/Saw+GJLXPe18ba9hOm1/mo2LuNoz7tA9TgHILMDVlE7M+l03mYn7IIi4Vus6nqKSCDgp2I0TGYKyqnWfLnq4l18E3MRCWVnYVG24j1oob9xSCZT6n9zme5JNjNnMS9E=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 14 May 2026 17:18:11 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH for-4.22 v2 7/8] x86/mwait-idle: Add cmdline option to
 adjust C-states table
Message-ID: <agXns5dpu-X5rspi@macbook.local>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
 <8c46fedd-f1f3-4cad-91fb-1b3b8d58db50@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8c46fedd-f1f3-4cad-91fb-1b3b8d58db50@suse.com>
X-ClientProxiedBy: BN9PR03CA0206.namprd03.prod.outlook.com
 (2603:10b6:408:f9::31) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB6551:EE_
X-MS-Office365-Filtering-Correlation-Id: 9237a0ec-4539-4f42-b221-08deb1cc048d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|4143699003|11063799003|3023799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	OoM5YXVWmX/4Kfk0gevYOb8BC6HODBxXY4nJkC6kMZPmM3s/yCKRk1okP1pRsJVgNmytSkeG/jFxkPxbdACfQo+kPFrhC2yGamBwzTXx3VfNxCopdisFpAriuygvILm2te+xjojXZ7FLBAWj46zkU4yq0Q+auLemDx+grgvFv20zynN0+0jJBczTs6eH/lnlPJw0mIqHCACQ7UYUzE9bqMJJ2ERHoCsTicbypZBXNpHC7ILb9IUbpZ51OOVIb1MWhArwJ8A+hZ143JnE8QvEvQmbFF3q6KaevwJrJlecMf78g5VuqbQKzROZwh4L3k3EcVv6jcqqmT8NkHryjn0RN/gy82PvTSTsdwsicVXp0uhxQksU1yVss25wGjbX4HpJwuhWYmKCIsyfT3cQxa6kZTycP1zc6DrSmbObRVehXUuKhUSDXNYx2YTXk4mJHUSdI1cVMKYfecoCUfybjNTmLUZvdEL47kOj6iftNp8q/2JTMmKsYsuzgUGjhcZdWNWEmB1X2/VUzeGN6W2Fyua4RXA/ue/Bb890yVFqDSoE44JnaZ2Z736eaTnHIMsjbz26WvDBSCBOme9G+qJ1moJFIeldv7tLQaP0xEgMerTzlmH1Zp3Ob3jXViTXSiZ+FinrBBssyIdqoUKdI96sqMsVvQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(4143699003)(11063799003)(3023799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Nk1ERnhNWTVncTgwZTdDVW91c0FSOFlNRVJXcnhmaFkyUXFIN1llK2NaREhm?=
 =?utf-8?B?V09kanhveGxmTTBuVVVYUmFjQWlaZG5WcmdnZ1VHWGpzeVRuaTU4WVE5NytK?=
 =?utf-8?B?OFdpYkxvSTI0dTBoYkkxczdkdDB4ZTN5MHV5WVdnUmZrczBpRW53MUticVMr?=
 =?utf-8?B?NXlQVHdqd2ZHUnRaRklRVzRYcVBrcUpacWpnMjJZVFZSNmtsZndKa1RXaElP?=
 =?utf-8?B?c3E2N3JzTXMwbGpjVkJOVjVoTzZOY25KWEd3WlpRVEtDZ3gyMm4rWHczWU81?=
 =?utf-8?B?OVo2cVk5SnFDeXZyOWlhanRSLzdlSktkQ2t3R21VZ0ozQzZ0T1dyUDZaMG00?=
 =?utf-8?B?cGtQTFRMZExkbTBpUmh1dWFKakxFbWZPQVBMbEt6RTUvYTMwcjFxL01KcC94?=
 =?utf-8?B?Tk05QzBXTWZ4dW4yTzhyWTZweXUwRlkvUlRMa1AzYU0vLzRxYmRGaTc2THRU?=
 =?utf-8?B?bWRRUlRRdlpIdGFMakQ4Tmo4MHNyeFRLR3RoU01ESHFyZlJTcXZDRHpSTFVt?=
 =?utf-8?B?MTVGamZJQlQ3NWswSVJLMlVQT0ZMcGc0UEdadEpzNHAvUC9WWWd1Z205aC8x?=
 =?utf-8?B?Mm9pY1NQYXh2RmhjOXB0amNGTmRJREpVSG5CU2VHdDhQVmxodFh4R2g2MGNL?=
 =?utf-8?B?VE5nTkpZQ2V0ZzRiczdoZ3FMMlhLM084dnFWc2piSmlvdTJWM0NPc0xVVUxj?=
 =?utf-8?B?cS8wSFBPaUpUbXZiZTZPOFRKNzA2QUk3T3RMN01kVWhDZkZmcFY4T09iWGtV?=
 =?utf-8?B?ZEpSVWhEaGwxWHlDbmUvdHErbHZ5aG9NWkcwQ1FBMHFwMHgyQVcxSWZhdzU2?=
 =?utf-8?B?Sk1rOTVJRnZOV0tyUU90RlEyWElab3lGQ3RxOTE1OHZJVzcxQ2JORjFSdmsv?=
 =?utf-8?B?dkNOZEhlYUVRcVYyQmlkMnJJQTJWZ3pMdnU4ZmQ2RndNc0xjdFBhRDd4dUZC?=
 =?utf-8?B?L1Jtamo5bTVaTEFnN28xaUNPVW90cnBWVEkzUm9mcGw0ZWpSem5WYlhkdG9G?=
 =?utf-8?B?SVZCK1JScE50U0JhaDlMUjdxelR3aDdCcnVEbzc1UVFhNEh6WmVOdmZSaDVj?=
 =?utf-8?B?dDA3ZWpCRmFhc3o0NTBCY0tvaHRMTWl0cWFvOHdVY1M5VzlwVFA2VzBsaVhr?=
 =?utf-8?B?dUNNdUdmTjRJam9veDR4OHB5TlBUelEzRlhIMmoxTDlNUklEc2ZMSnBnWGFH?=
 =?utf-8?B?Z3NZUEs4RWtOQ0x0Uk5pMndwYlArcWlLMHZuTFVoTlR4aGZLZFd0Q2ZyT05T?=
 =?utf-8?B?Si85OFNHN0QxWmY5NEhSS2UvT0NDeDVoUHdGNUd5RUJnUmVoSHEyYndMMFlF?=
 =?utf-8?B?YUd2bjVxODlsRlc1Rjh2aVNzVlljS3MzSzJBMkR5R2ZOekd4M01tMklueXJJ?=
 =?utf-8?B?YmRMU2hiV2lnWllFTnNoelZ0ZHQ5K3VLTU5OQU1SbDE0RUxDZDBLM1FMZS9j?=
 =?utf-8?B?VXJHc011Z2M5VlBwZDExSDBsQkVBNi96NkJrZ0hlcjJSc2VIaksvekd5TTNL?=
 =?utf-8?B?T3FGSzBITGJlSUtQejBGU01EcDN6dFRoUmk5TlplT3BucWlDRWprbE5Ibno0?=
 =?utf-8?B?bXVVcll6S0pBQ0JYR2dMd0l3NGQwUW9CeEpEYjM3RUhaNlErYmo1UXI4OGNo?=
 =?utf-8?B?TjNWZ2s1K3JpWlI2UkowNlgwR2hrZnhyZHVmS0lzQ256MFh2clBTM3FXOHFP?=
 =?utf-8?B?SHNFVTg1VUFiSTlGRHQ3V0NGcmZaRlJZV2RycEFBMjNFYzVDWElhNnRpdkR5?=
 =?utf-8?B?VHFLT2VWSUxhbm11K21NcGNuSmhFL1crT2pIZ1NvQjgwMTk1b21zVzJmaHNl?=
 =?utf-8?B?K210ZWNPZ3VLRU1TVURQT0N1RlNqZmdoZFQyS1lucGVtb3BSTUN4NjJBVTJv?=
 =?utf-8?B?c2kxQTcwb1EvRDZkbE8wejE4cGN2dk1LU1FwVEZ4eWtsYUY1elBkbUdJb1pT?=
 =?utf-8?B?RVVkL0txTHlXQVcrLzJXSW0wRHVqOHA5TTlsS2VvYXNLSkh5Zm5DWXorNE1w?=
 =?utf-8?B?dENneGg3enBVQk1EYU9LSDJobFB3RHRxR1pVVWtOS1lPWEdhbXVzSUoxNDdN?=
 =?utf-8?B?SWY3UXZoa1ZEeStMRng5RUxZMWtXNVBRZzNIa3VGK2V3bk5OYzNzUkpHc1Jv?=
 =?utf-8?B?NHRWNWR3eVo2MmVCMjZnclcxb1dsYWRvNmw2MFpmUm1aVWlpZktTa2FBeU1R?=
 =?utf-8?B?Uk91NzJLeWZOd1JwQTRCUTVaNmlCZnNOYU5JcElxSy8rR1piZ2FvaHNWWE1G?=
 =?utf-8?B?UVJFN2dObnh6YTE4MDVvYnJlL3pxK1ZWYXBzU0VzYkpVazd0UGk5ZHVGUzFt?=
 =?utf-8?B?ZEs5TGhPUzZZS3ZNbjNla3l1Yjk1S2o3dllHSEhPQlVDT25HTVVXdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9237a0ec-4539-4f42-b221-08deb1cc048d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 15:18:14.3258
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: a+mthGM0T+2pIOTq9YrKs7UZ2lNqHSM2WvwEVpOvBnKiAYACb9zhahstOvpMvO5pyBq4+NyhxHZ5n5c7rvt0rA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6551
X-purgate-ID: tlsNG-ef75cf/1778771898-08961C48-F523335C/0/0
X-purgate-type: clean
X-purgate-size: 9034

On Tue, May 12, 2026 at 05:38:08PM +0200, Jan Beulich wrote:
> From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
> 
> Add a new module parameter that allows adjusting the C-states table used by
> the driver.
> 
> Currently, the C-states table is hardcoded in the driver based on the CPU
> model. The goal is to have good enough defaults for most users.
> 
> However, C-state characteristics, such as exit latency and residency, can
> vary between different variants of the same CPU model and BIOS settings.
> Moreover, different platform usage models and user preferences may benefit
> from different C-state target_residency values.
> 
> Provide a way for users to adjust the C-states table via a module parameter
> "table". The general format is:
> "state1:latency1:target_residency1,state2:latency2:target_residency2,..."
> 
> In other words, represent each C-state by its name, exit latency (in
> microseconds), and target residency (in microseconds), separated by colons.
> Separate multiple C-states by commas.
> 
> For example, suppose a CPU has 3 C-states with the following
> characteristics:
>   C1:  exit_latency=1, target_residency=2
>   C1E: exit_latency=10, target_residency=10
>   C6:  exit_latency=100, target_residency=500
> 
> Users can specify a custom C-states table as follows:
> 
> 1. intel_idle.table="C1:2:2,C1E:5:20,C6:150:600"
>    Result: C1:  exit_latency=2, target_residency=2
>            C1E: exit_latency=5, target_residency=20
>            C6:  exit_latency=150, target_residency=600
> 2. intel_idle.table="C6::400"
>    Result: C1:  exit_latency=1, target_residency=2 (unchanged)
>            C1E: exit_latency=10, target_residency=10 (unchanged)
>            C6:  exit_latency=100, target_residency=400
>                 (only target_residency changed)
> 
> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
> Link: https://patch.msgid.link/20251216080402.156988-3-dedekind1@gmail.com
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 111f77a23348
> 
> Add __init to get_cmdline_field(). Put cmdline_table_str[] in .init.data.
> Other adjustments to fit our env.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

One possible adjustment below.

> ---
> For the initial attempt, I've left the new option as a standalone one. It
> may be worth integrating with "mwait-idle", but I think much of the
> parsing would then want doing differently. It'll then likely be much
> harder to apply future Linux changes there.
> ---
> v2: Correct example in cmdline doc.
> 
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -1916,6 +1916,23 @@ Print boot time MTRR state.
>  Use the MWAIT idle driver (with model specific C-state knowledge) instead
>  of the ACPI based one.
>  
> +### mwait-idle.table (x86)
> +> `= <string>`
> +
> + Define the C-states table from a user input string. Expected format is
> + 'name:latency:residency', where:
> + - name: The C-state name.
> + - latency: The C-state exit latency in us.
> + - residency: The C-state target residency in us.
> +
> + Multiple C-states can be defined by separating them with commas:
> + 'name1:latency1:residency1,name2:latency2:residency2'
> +
> + Example: mwait-idle.table=C1:1:1,C1E:5:10,C6:100:600
> +
> + To leave latency or residency unchanged, use an empty field, for example:
> + 'C1:1:1,C1E::10' - leaves C1E latency unchanged.
> +
>  ### nmi (x86)
>  > `= ignore | dom0 | fatal`
>  
> --- a/xen/arch/x86/cpu/mwait-idle.c
> +++ b/xen/arch/x86/cpu/mwait-idle.c
> @@ -70,6 +70,11 @@
>  static __initdata bool opt_mwait_idle = true;
>  boolean_param("mwait-idle", opt_mwait_idle);
>  
> +/* The maximum allowed length for the 'table' module parameter  */
> +#define MAX_CMDLINE_TABLE_LEN 256
> +static char cmdline_table_str[MAX_CMDLINE_TABLE_LEN] __initdata;
> +string_param("mwait-idle.table", cmdline_table_str);
> +
>  static unsigned int mwait_substates;
>  
>  #define LAPIC_TIMER_ALWAYS_RELIABLE 0xFFFFFFFF
> @@ -122,6 +127,9 @@ struct cpuidle_state {
>   */
>  #define CPUIDLE_FLAG_IBRS		0x20000
>  
> +/* C-states data from the 'mwait-idle.table' cmdline parameter */
> +static struct cpuidle_state cmdline_states[ACPI_PROCESSOR_MAX_POWER] __initdata;
> +
>  /*
>   * MWAIT takes an 8-bit "hint" in EAX "suggesting"
>   * the C-state (top nibble) and sub-state (bottom nibble)
> @@ -1547,6 +1555,161 @@ static void __init mwait_idle_state_tabl
>  	}
>  }
>  
> + /**
> +  * get_cmdline_field - Get the current field from a cmdline string.
> +  * @args: The cmdline string to get the current field from.
> +  * @field: Pointer to the current field upon return.
> +  * @sep: The fields separator character.
> +  *
> +  * Examples:
> +  *   Input: args="C1:1:1,C1E:2:10", sep=':'
> +  *   Output: field="C1", return "1:1,C1E:2:10"
> +  *   Input: args="C1:1:1,C1E:2:10", sep=','
> +  *   Output: field="C1:1:1", return "C1E:2:10"
> +  *   Ipnut: args="::", sep=':'
> +  *   Output: field="", return ":"
> +  *
> +  * Return: The continuation of the cmdline string after the field or NULL.
> +  */
> +static char *__init get_cmdline_field(char *args, char **field, char sep)
> +{
> +	unsigned int i;
> +
> +	for (i = 0; args[i] && !isspace(args[i]); i++) {
> +		if (args[i] == sep)
> +			break;
> +	}
> +
> +	*field = args;
> +
> +	if (args[i] != sep)
> +		return NULL;
> +
> +	args[i] = '\0';
> +	return args + i + 1;
> +}
> +
> +/**
> + * cmdline_table_adjust - Adjust the C-states table with data from cmdline.
> + *
> + * Adjust the C-states table with data from the 'mwait-idle.table' parameter
> + * (if specified).
> + */
> +static void __init cmdline_table_adjust(void)
> +{
> +	char *args = cmdline_table_str;
> +	struct cpuidle_state *state;
> +	unsigned int i, state_count;
> +
> +	if (args[0] == '\0')
> +		/* The 'mwait-idle.table' module parameter was not specified */
> +		return;
> +
> +	/* Create a copy of the C-states table */
> +	for (i = 0;
> +	     i < ARRAY_SIZE(cmdline_states) && icpu.state_table[i].name[0];
> +	     i++)
> +		cmdline_states[i] = icpu.state_table[i];
> +
> +	state_count = i;
> +
> +	/*
> +	 * Adjust the C-states table copy with data from the 'mwait-idle.table'
> +	 * module parameter.
> +	 */
> +	while (args) {
> +		char *fields, *name, *val;
> +
> +		/*
> +		 * Get the next C-state definition, which is expected to be
> +		 * '<name>:<latency_us>:<target_residency_us>'. Treat "empty"
> +		 * fields as unchanged. For example,
> +		 * '<name>::<target_residency_us>' leaves the latency unchanged.
> +		 */
> +		args = get_cmdline_field(args, &fields, ',');
> +
> +		/* name */
> +		fields = get_cmdline_field(fields, &name, ':');
> +		if (!fields)
> +			goto error;
> +
> +		/* Find the C-state by its name */
> +		state = NULL;
> +		for (i = 0; i < state_count; i++) {
> +			if (!strcmp(name, cmdline_states[i].name)) {
> +				state = &cmdline_states[i];
> +				break;
> +			}
> +		}
> +
> +		if (!state) {
> +			printk(XENLOG_ERR PREFIX "C-state '%s' was not found\n",
> +			       name);
> +			continue;
> +		}
> +
> +		/* Latency */
> +		fields = get_cmdline_field(fields, &val, ':');
> +		if (!fields)
> +			goto error;
> +
> +		if (*val) {
> +			const char *end;
> +			unsigned long n = simple_strtoul(val, &end, 0);
> +
> +			state->exit_latency = n;
> +			if (*end || state->exit_latency != n)
> +				goto error;
> +		}
> +
> +		/* Target residency */
> +		fields = get_cmdline_field(fields, &val, ':');
> +
> +		if (*val) {
> +			const char *end;
> +			unsigned long n = simple_strtoul(val, &end, 0);
> +
> +			state->target_residency = n;
> +			if (*end || state->target_residency != n)
> +				goto error;
> +		}
> +
> +		/*
> +		 * Allow for 3 more fields, but ignore them. Helps to make
> +		 * possible future extensions of the cmdline format backward
> +		 * compatible.
> +		 */
> +		for (i = 0; fields && i < 3; i++) {
> +			fields = get_cmdline_field(fields, &val, ':');
> +			if (!fields)
> +				break;
> +		}
> +
> +		if (fields) {
> +			printk(XENLOG_ERR PREFIX
> +			       "Too many fields for C-state '%s'\n",
> +			       state->name);
> +			goto error;
> +		}
> +
> +		printk(XENLOG_INFO PREFIX
> +		       "C-state from cmdline: name=%s, latency=%u, residency=%u\n",
> +		       state->name, state->exit_latency, state->target_residency);
> +	}
> +
> +	/* Copy the adjusted C-states table back */
> +	for (i = 0; i < state_count; i++)
> +		icpu.state_table[i] = cmdline_states[i];
> +
> +	printk(XENLOG_INFO PREFIX
> +	       "Adjusted C-states with data from 'mwait-idle.table'\n");
> +	return;
> +
> + error:
> +	printk(PREFIX

XENLOG_ERR ahead of the prefix maybe?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu May 14 15:30:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 15:30:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309009.1580211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNY12-0003ZZ-Ar; Thu, 14 May 2026 15:30:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309009.1580211; Thu, 14 May 2026 15:30:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNY12-0003ZS-8G; Thu, 14 May 2026 15:30:24 +0000
Received: by outflank-mailman (input) for mailman id 1309009;
 Thu, 14 May 2026 15:30:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNY11-0003ZM-OD
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 15:30:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNY11-00DQo4-4n
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 17:30:23 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a05ea8e-5cb7-0a2a0a5109dd-0a2a4504da3a-0
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 17:30:22 +0200
Received: from [40.93.194.31]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a05ea8d-1dec-0a2a45040019-285dc21f4b91-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 17:30:22 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS0PR03MB7179.namprd03.prod.outlook.com (2603:10b6:8:128::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Thu, 14 May
 2026 15:30:19 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Thu, 14 May 2026
 15:30:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=T4WrUfZV370VbWlTITY3EA/LDdT8AHZdqp/+4aQjDkro1O+FxP4R8GxOQJPeRxWzjJPTD1HxCB1QDaSHjO3kMprg4fQA9xeZm6zMmJAoFXNrPEWr+UdY6EibunKsTKpe+h28xI2NBUMSADKdydkMCvFUzKNtlA9PkRKwsdYhk2dGtso90aTkDWM1Tg8/WRQgJ8+GKzqPrJWEiTb1bAV1OXb01oCLdAJPDKU0+yNEHDUx5HYIzfHeXmv5PUBqEkqzBHddCeGEVbIgoc6vLD257kbgaxL33TTv4RSrOrMskMVsbdKLInuWQRH8ARzBVu1Kg8PxZY/26n6u/P/rYvw6cg==
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=XBiqVYPwabwUfivU1IAFkfCckRxapBDna4UB9iJWJtY=;
 b=MTZtLbf+bopMzkyBpXfh5VQS5U++dpX3BMImgKZY7zX4E4D5GJBEphcetmuO5xYrBAgyUKMfHidLtY+pG82Efab/sHr3FiWdo0gvrr/qDw4X+zfPAzrGCS74zmQg9QvaVVpH404ygZuVu0av4Stx6h2KG3fjxqiXF0oHed6MBfZIo80HgxhdJ/rE4u/q0r4cmbrqM20U7PxpyoOvk6qaPGqQLE04RPVTmtP3/uk94LFdZJI7n4vCI6AX3DuLshjgmPsmWCTx76iFAxjCEDZiDJ7diC+hEyA2sIO0tTujOBSHKsWzDiEHg45M3QvfEKIgYVh2yJ7C9lFCsS5ADRwTRA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XBiqVYPwabwUfivU1IAFkfCckRxapBDna4UB9iJWJtY=;
 b=Mezr1cZ39J+Ex6monRilcT1GgmO88tSEhSiDd+CZ6gesN9OUIuZ8FcF+7LP3w07sEd4x95yQ9J5A1sG/kRzKV1zVNwqiasqTbg1+NKVSxzjg4h1DkH3pDuBTqkeAq0ExmzOMKaAdWJn4lO8zkMZCIOXNOHe2zyZ1C7nZ+24/alk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 14 May 2026 17:30:16 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH for-4.22 v2 8/8] x86/mwait-idle: Add C-states validation
Message-ID: <agXqiEQgGblLyc7-@macbook.local>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
 <d8c66d85-59c1-4107-b283-a03f92f6eab1@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d8c66d85-59c1-4107-b283-a03f92f6eab1@suse.com>
X-ClientProxiedBy: BN0PR07CA0023.namprd07.prod.outlook.com
 (2603:10b6:408:141::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS0PR03MB7179:EE_
X-MS-Office365-Filtering-Correlation-Id: 50415295-9392-43d0-0321-08deb1cdb475
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|4143699003|18002099003|3023799003|22082099003|56012099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	Iyft93PZ3tdojxGfC0geFeopdruzX/s9iQTFnuaJqXUcxuaLW4P+lxEFNYM5zEaO9jI1hMH4w8wN40ttMjamZRX6o9Lr5B6CBJabZGSeKwz2xAyyB57BVx4Ud0gAB/hMlVY+1ESiTmmkFcc4sMDl3/oB/lI0yieDwqg0cINH1PwveK/W0Sy7JEx6rknTrndgOXEbdoenrxZfpFRORvD8AlZcSudw0Ldaw4TTodTU6wnEhDGDV/XagfM02ROFfYdmeVNOS2u8VMrQaQKbLT6gqzg0xbI/z+3CzpfflQ8Ywic47xPCfdc9RoP2h0uVVdb1AtiSctZUI5qVWRWQrO9ucukUGkNgg49EDtZUwt9wpSi5LST/KknvLfTH3HimIJKJpL4pMHQAEXt0OLN+tNtVVIZDeHPgGk6+wo5BO2qV6zZ86KZy8bHev4tTv6oCh9IqJTTwNKbeOylVUM9YEbKtdnLcvsYP+ga75438MAkTTG0Fem+WIaNTVwlvBRjKU7gX9FIEbe5m5UNSvf+7M0yP0YiK1UV4j2nEULa3qQmbXRAsz1vUFikKeP5SNZqMS8J6Bh9oAhXw1mo0oth3fR5c3I8It1n7oWetNcAFnYQMq6Rk+BCKQfatKdSr5+adcRfOMEp93V2z+h5AXkY5WU/1QA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(4143699003)(18002099003)(3023799003)(22082099003)(56012099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NkdMT01RNm1OWnAzajdXakpCeXFoTmFJVGNnTnl4ZE9QUGUvenhDOTdEL3Fx?=
 =?utf-8?B?cE1wOFlGemVUQ1hVQ3lkVXIwbnJSSnYzeDd3ajg5WHVUYXZMQ2JzRWd4WVh6?=
 =?utf-8?B?WnVqQytYaURMMUd6OTNJNjJ3VUp1bW55VUxoa3VWUHhyV09Pb1h0L3NFaktQ?=
 =?utf-8?B?TG5BQ3lNeCtNSzBPS3FEZVZDajhnK3FPQmYwY2U4UENoNDMzM29JcC9JbENx?=
 =?utf-8?B?bHdGNUovdWVGdTVES3pMdG1xTWlPOGNaenFJME0rSzVlNDZNckJLcXMwa1di?=
 =?utf-8?B?aEozQ1hvR0lmMGpTWTJnZG9GVmVCemU0T3hIdlJQMEl0SUZERDdQYXZ4S0I0?=
 =?utf-8?B?bkcvaEhGYThkM0Qxa2xDdjlzdzc5a3BmcXhHWS91YmhmaU9lSWF1STdnUTZK?=
 =?utf-8?B?RVFOMDRibjFsSXZta3dVZTFiOW5zOHlITVpmY09PT3RyanhNYzlMeWxoNGdG?=
 =?utf-8?B?QmZQVWhlQUl1RWVCTGZKZzNkQks4UjhLbG9MYjQzdEVCQXFiYTh1V0ZuMWxH?=
 =?utf-8?B?TDdKRzdkcTJabHVtMlFaWGQ2QXpJRWdqV0JxZXRVRmR3MWRndU5UNktSdzAr?=
 =?utf-8?B?SzhtSzFiVHorc1ZYdDhGYVJCUGl1SlhCb1RYdDJhblU4WlJ4T2NlNldGVVBU?=
 =?utf-8?B?OGhiQzZ6Z2kwY0l1VXArQTlWVmpXUWdjNVB2Y3pzSzZuTmNCeVJDQ1AzbFli?=
 =?utf-8?B?SDcvMkJJRXhFditOSFExa1pQb3BvZWt1dEdyaDJ6NllrYUd3NkVaejFUQldH?=
 =?utf-8?B?SlpQSmM2ajVZWkdrUWpyT3drYXVUb2NWTHR2bVhUOHR5QThUck5FZjdtYldV?=
 =?utf-8?B?bUd0dUVDOUxsUGpxQVNjd0kyOWJxc2MyNE5MNzIvWnhBbWtzK2JxSjJZNjFM?=
 =?utf-8?B?SlMwYmRIUEFkdWNlV2VFVTJ4dWdRNzF5ZndVejBxWlZZek15RHVxQVYwdVRG?=
 =?utf-8?B?RTZ3dHRoRTAwdm44ZEhWRk5YLzZpeUM2Z05XZTU2T0xsbTRkenZVam1ENVU5?=
 =?utf-8?B?ck9BUW5JV3B4cjZIU01KV3VRQXJ5VEM1bzRocVZnNXBwczJvNTZkM25lNnFT?=
 =?utf-8?B?d1hWRXNrajlnNjFxQWZPc1NROU1XS1o5bXR2UCs0V2NiNGRiTVpNYTVUQTR5?=
 =?utf-8?B?bU04Q2xrTHVDZ0xXTUJPK3ZSWmZZMzFrZm1yNWNrTk4zSmFvS05QYnE5K2pX?=
 =?utf-8?B?THdJUTlESS9idEM2ZjdnbTlKVUdoUnpCQUcwejRTeElkZ2dtcjQzRWpqQmkx?=
 =?utf-8?B?L0JrN20zTFFXN0RWM0Rwc0ZUa00wQi9tZjZ2VVJPSFhvdHloOW02OHI0R2pJ?=
 =?utf-8?B?Vzk1WmF3dVh5clp1ZXVVbzd3bmxDcVl0SkE3c1VmQ01HdnlYR2Q0TytVL0VH?=
 =?utf-8?B?ZWR1cDA4WFlQY2ZZMitPZmtYUXFvRmpuOUIrUWpQSVBTdEFEWkN6NzBEU0Zu?=
 =?utf-8?B?VUV5SUtBTDY4Yyt2SFJETXF1MWVWb2ozVmNIZ2hFSEFNdkZrajNsQUhkNEZZ?=
 =?utf-8?B?azJSWTF5SjB2ekJOSm1IUndxSW1vR2hUSi9ycEFMeE1RTkF6ZUNWTnJmb2Vm?=
 =?utf-8?B?emZ3SlBRUm5NZ0hLUVFFL2hXU1NGaVNwaHhSTVZiMmdzb0VSOFgzeVhDYjdl?=
 =?utf-8?B?ZUIyc0cycHgyWFQ2MnE4SThLMUNTMmlKYnVQZTRkZ0VKZGpOdUxiaTZjVGNz?=
 =?utf-8?B?bTk2QzVRMEhkN3g0bUlMUTh4NVljV2dUeVRHNzNpZXVMVStSUlZKaURmbm5Z?=
 =?utf-8?B?bHR0VGlvM0dZc3o3VlBpU2ZOMzNXcnRyYlB6S3RyN1NQUjQ5V09VQTdTZGl1?=
 =?utf-8?B?YWZCa2Vkc29SQ1F1YVg2RDVkRFA2akhLQ0drWE1CL2RwR2hCa0xPSmhBUDRJ?=
 =?utf-8?B?KzNQQnE1NkZINjFGR25CTmZoUWNpN082cHA3TlZTUDBybUFLUStjUjR2SWF6?=
 =?utf-8?B?YWZrWmM4cU5mY1R2ZWZsK0JuSHV3Vk9nc1VGMnlwSU5BWlgvKzRTTjdvRUI2?=
 =?utf-8?B?dUQ4bDEycWs3Wnh1eExsMXNad1RXa1BJekczTUlPU0JvUVVQa1VNVDlqbEUx?=
 =?utf-8?B?UTlWVFVMK21nNHZCVnBCYnBINlZySVNZSFJ6Qk5wUDRTbkp5Wjl2SVIwaGRJ?=
 =?utf-8?B?bTJlT01ucUhOWHd5cEJMV1NrZDhnOUt5amxIZ01UeXpITXZHM0Vjb0xIMFJT?=
 =?utf-8?B?WlZIUkN6ZG9GL0xWZWdXYUI2SGxLRkVXRlpwUEdtU0tqaldwZmRKSzQrVEly?=
 =?utf-8?B?VEgrOWdIZWVSajgwcUM4dlVKRVBQVDArSWdaMElXZnRkUlk5S0t1MFRNMDBq?=
 =?utf-8?B?WWhiTExTMUlYY09jMlRMUUlQYW1GRjRiL0JVMzhxaGhRRjFiczA4dz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 50415295-9392-43d0-0321-08deb1cdb475
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 15:30:18.9519
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Ym+g6zuwxblsUW6JFzgoZukwgnELBlyjG26KIUpyZxXAQ+xGXCyLnUJLqEkLIwlVgbrIbpsUb/QC2SyP9jz6bQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7179
X-purgate-ID: tlsNG-ebf023/1778772622-407713FF-D04EDE9D/0/0
X-purgate-type: clean
X-purgate-size: 3182

On Tue, May 12, 2026 at 05:38:32PM +0200, Jan Beulich wrote:
> From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
> 
> Add validation for C-states specified via the "table=" module parameter.
> Treat this module parameter as untrusted input and validate it thoroughly.
> 
> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
> Link: https://patch.msgid.link/20251216080402.156988-4-dedekind1@gmail.com
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git be6a150829b3
> 
> Add __init to validate_cmdline_cstate(). Other adjustments to fit our env.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

One comment below.

> ---
> v2: Const-ify validate_cmdline_cstate()'s parameters.
> 
> --- a/xen/arch/x86/cpu/mwait-idle.c
> +++ b/xen/arch/x86/cpu/mwait-idle.c
> @@ -72,6 +72,11 @@ boolean_param("mwait-idle", opt_mwait_id
>  
>  /* The maximum allowed length for the 'table' module parameter  */
>  #define MAX_CMDLINE_TABLE_LEN 256
> +/* Maximum allowed C-state latency */
> +#define MAX_CMDLINE_LATENCY_US (5 * 1000 /* USEC_PER_MSEC */)
> +/* Maximum allowed C-state target residency */
> +#define MAX_CMDLINE_RESIDENCY_US (100 * 1000 /* USEC_PER_MSEC */)
> +
>  static char cmdline_table_str[MAX_CMDLINE_TABLE_LEN] __initdata;
>  string_param("mwait-idle.table", cmdline_table_str);
>  
> @@ -1590,6 +1595,41 @@ static char *__init get_cmdline_field(ch
>  }
>  
>  /**
> + * validate_cmdline_cstate - Validate a C-state from cmdline.
> + * @state: The C-state to validate.
> + * @prev_state: The previous C-state in the table or NULL.
> + *
> + * Return: 0 if the C-state is valid or -EINVAL otherwise.
> + */
> +static int __init validate_cmdline_cstate(const struct cpuidle_state *state,
> +					  const struct cpuidle_state *prev_state)
> +{
> +	if (state->exit_latency == 0)
> +		/* Exit latency 0 can only be used for the POLL state */
> +		return -EINVAL;
> +
> +	if (state->exit_latency > MAX_CMDLINE_LATENCY_US)
> +		return -EINVAL;
> +
> +	if (state->target_residency > MAX_CMDLINE_RESIDENCY_US)
> +		return -EINVAL;
> +
> +	if (state->target_residency < state->exit_latency)
> +		return -EINVAL;
> +
> +	if (!prev_state)
> +		return 0;
> +
> +	if (state->exit_latency <= prev_state->exit_latency)
> +		return -EINVAL;
> +
> +	if (state->target_residency <= prev_state->target_residency)
> +		return -EINVAL;
> +
> +	return 0;
> +}
> +
> +/**
>   * cmdline_table_adjust - Adjust the C-states table with data from cmdline.
>   *
>   * Adjust the C-states table with data from the 'mwait-idle.table' parameter
> @@ -1697,6 +1737,21 @@ static void __init cmdline_table_adjust(
>  		       state->name, state->exit_latency, state->target_residency);
>  	}
>  
> +	/* Validate the adjusted C-states */
> +	for (i = 0; i < state_count; i++) {
> +		struct cpuidle_state *prev_state;

const?  FWIW, you could also init the field at definition, but I
understand this might diverge too much from the Linux code.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu May 14 15:56:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 15:56:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309035.1580224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNYQU-000709-CB; Thu, 14 May 2026 15:56:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309035.1580224; Thu, 14 May 2026 15:56:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNYQU-000702-8A; Thu, 14 May 2026 15:56:42 +0000
Received: by outflank-mailman (input) for mailman id 1309035;
 Thu, 14 May 2026 15:56:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNYQT-0006zw-8S
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 15:56:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNYQS-0083uT-Lc
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 17:56:40 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a05f06d-2eae-0a2a0a5409dd-0a2a450a85ae-48
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 17:56:40 +0200
Received: from [52.101.53.15]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a05f0b7-56b3-0a2a450a0019-3465350f5985-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 17:56:40 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB6325.namprd03.prod.outlook.com (2603:10b6:a03:38c::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Thu, 14 May
 2026 15:56:37 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.009; Thu, 14 May 2026
 15:56:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j2ifC68kIlpxdmCOjixjGugEN/VcoDdF3L3PHTrlbV+O62c1E7ELHstiA83BCMGoba9hRYz/wqQ6l6gs2Fm063ISyfcgVcJMRnFJWwK/FGKxETH9hlC0IF+87ASZ1iYob3lLxpnJPDKHNlVbQCza1eBnh+p0VeHiPypoLRlQTyuMKzsdQebrDXeUfpH6D97GNpMyocoRCH834UsNPzwIqqPFIIHEYsWGFnos2BoUB11qr90ak8WI03Epk9RPhRpziuXyN4/wEeTe1rpzTcveICsartOPp3LWXro6Jjmgocux/Cq50MktMBTI2rhLn3KTk9w0hz0dltJg18qyiQPx3A==
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=ZjgC0sw3jY/7r/L1rrH529TNDztxddUld7To3nHp4vE=;
 b=IP3tOPZoo2buay/JSfYfBmqHW7F0RLh8jafWvGB1khCwIqymAjCD6MYZAZLoX+hciZp3LsKpn/YLoOQGKDzWwjZ2wN71iPVQ9VogXRNUAs/5jGy0+0UGhjrUQ1O6jFmcqMisITOkkWuSkJJJRTwtA+bX9hUmWHhMTmn1YhvQ17QZ5qBt1vitReMBtEUZGe6FJk4OhNWml+cUyPfRZgGc43VWTmt+DVtTdR1Pg/O00IL0lHyuAoJww36TXlDSyOAcijlyCIS1Se33SBNdEGO8UuNUMUKeaKNtiUi9f5FaZX8DxmRIT3dFljTVWNF+rr4GyaBtDU3xxaQ4by1xBKo+Vg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZjgC0sw3jY/7r/L1rrH529TNDztxddUld7To3nHp4vE=;
 b=w6/k/DRjdjr+PCJGCLjLofo+AM5QeRet7eV81oVpjlkV8zyfxTyOrkup9PlJhvKCeL9Edojpx8axocnxvuTCEJL5QTHNZvdzIp2+NrkSBoNLi/JAsnGxeffbY/2w627EvIWebbh+DMMWG0cKjfSwPpKo7QcFAAtIt1xWdz9NcXE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 14 May 2026 17:56:34 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 RFC] x86/time: avoid early uses of NOW() to return zero
Message-ID: <agXwsshLlV50dcnV@macbook.local>
References: <68b1607a-f2a1-4f53-84c5-43c61eeb1869@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <68b1607a-f2a1-4f53-84c5-43c61eeb1869@suse.com>
X-ClientProxiedBy: BN9PR03CA0238.namprd03.prod.outlook.com
 (2603:10b6:408:f8::33) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB6325:EE_
X-MS-Office365-Filtering-Correlation-Id: 01bef4a3-b4aa-42bb-22e1-08deb1d160d2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|11063799003|22082099003|56012099003|18002099003|3023799003;
X-Microsoft-Antispam-Message-Info:
	d+uZ/aKcvI45mh7UYxl0H9ncv15eai1OkSmXhdeYFxmfSywgATWl2bOPvbCPjOVFWmJRePQMdpVWPT4OkBa3rYMkFdTDVxdP8diBurZabxHDyWsFq3pw3IDs7mTh58Up1dFHuwATXSu4XUbvt2U96X8kNcdWLchwnjn7w2StcPYC6WO0Ir0CzTF/e+0mlCXwrgZyuCt6yK8KAwMVcbSOYbfLr8M6MEN0AHDEBgUIMm24yFXNOBD6SJjuaNQu7kNRc+ZnL7iTzvbAqHjKclDaMrsoWwLe5N+jMkL4rjQs7xh1M7Ie4IDOOhnYucr6WuNdQSM/Qw9Be6peqZTM9kFLDu1ulZOtYzfGy128RtcH3aKaSlO9+h/9wH8NgSGJmJVf7SL36jn0ysJ9nZRS5IXwqooAWx7TGSHqX0cbl/MnO7dYqrCbCg2smFY+lco6McIGQWFH0dZ9k7y4IO9A4fXt/6c+hRbKl9cFv3hEM7WDYAjGWY6zlyzO5dLYLFL7ilJVXQEXwXTotPIeUA5euFSgYHfZ5EEftfQ1erX7OylHuzQO01nctyE14/dQKiN9UE3ldu3rBqIbIE9oDwbqcvGqans16c4+C3HAilzAx+DhqrI2wRkGehoSFacKuhURERGdbiN13Ercjh6ncEYeFRGQMg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(11063799003)(22082099003)(56012099003)(18002099003)(3023799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?d3dJSC9BanJQT0tZWTVlbGhWWGNPcTFzWjF2ZHZJdCszUzE2ZEMxNkwxVkNm?=
 =?utf-8?B?QXBXN1NMWkhCZUwyUWRIQ2RLSW5qZnVPbUV2S2wyT3VVVGxkckRtSUdlQ0pp?=
 =?utf-8?B?dXV2cjR5eUNGUEV2anhvNXVudVVCY3hnanpQSFgrSUJuQTcxTWY1Njh0VDB0?=
 =?utf-8?B?UFcxc29FaWhySExmTVFjWnFCUkdkSm52VjRKNGVDRXFpMFlramRNVFFTUU1N?=
 =?utf-8?B?Z2NiVEoveFBoWVdEcW5EQlp1NnlSYStmcTNocXQzZ1pqaGhTYjVkTHYyRkVB?=
 =?utf-8?B?cVZ0NEZFMUZNVWpXY1J5N0tSU2tKKzdqQktodnFLRit2VE5GYWlQUURxSldQ?=
 =?utf-8?B?ZjlyU0pUUS9OOTZaZTdJN1dPd3NXRk00U0JFQjI0c3BsMmRHNVNSTE4xVmZq?=
 =?utf-8?B?ZnB6NUpiWEN2RmdZelVGRnlYN3Bia25UOXRiVWRwRFpEcHh1WFFCc29iYnFC?=
 =?utf-8?B?NmlGZEpaRW5qWjRYQm5jSVhRTTFwbzFQQUR1K210dU90NGlBWUlEUUg5Mnlv?=
 =?utf-8?B?QkN2eENEY2sydzQxMXFIMzFrVkVvQWtKMldFUGtmYXdtT2xmQ2VUcnl5R1pB?=
 =?utf-8?B?VnJwRVJTSzJDYzdtTnFmNjJ2K0o4ck0xVW1EMklPLytTMzdZZnhKckxYbWFW?=
 =?utf-8?B?Qm95ZllUTzZ0amVMeDhoTXQzOHdQVy9OenZ6Uy9aTXovdDlsaVI0cTdtZ2hO?=
 =?utf-8?B?NU5LT1R0MXRldExuRUl3QlNVQXpvTDlGMURERHExZklvNEd1SEFTQWhQL3lq?=
 =?utf-8?B?Q1orVUpQMWVpK1FYdkUxdFREQ3BvSFM2Q2hld283NzFZZndlTlg0eWpFQk1y?=
 =?utf-8?B?NkhSSkVMTnRxRVEzMlNvREhGZkJMYW56RDBhcU40LzhCeVR6NnJleVROVU1i?=
 =?utf-8?B?cWN5Q2VqaC9sRm5vZWZ6UjkvaWN0Q0tJR0ZjSWZpOUtpS3FsQW1YQkhYWkZa?=
 =?utf-8?B?ejhubEw1b2lkSjVLYjBrYXBmaEx5aTNTV29ZUDRzaFZBempqUlQxRzE2SXRD?=
 =?utf-8?B?YmRaWXZxbUxKZTdsWkprei9EVm83SEN4QkQrbnB5UnhJQU54SDFYS0E0TFk5?=
 =?utf-8?B?Y2RaQnFxZ012ZUdJTHQ2NUVqcmFWUktEV2ovcVI5b0lFMHZ5WHJ2YnExR1NJ?=
 =?utf-8?B?T29pdkZCMzVxWFBtbHhvd2YzZjRCZzM0c2tIWm14MEVBd2NycmtvWVJmc05Q?=
 =?utf-8?B?T01hcWVSSjNuSTk0N1E4dUg3Nm45b3hGVGZGS1JMemRVMkhYNWw1d1VpOEhG?=
 =?utf-8?B?a0hqTGhNWW15VExmWUZJMXdSaFJkd1lCWjVrS2xZRzlWTlhiTTVTcllzSUpL?=
 =?utf-8?B?ZXpybGZQZUtZTWFtMTIzaW9yQjF3VHBVTTd0ZFIxUVRVSGhuRjVRSlQ0dno1?=
 =?utf-8?B?RlZDQk14L3NhRTBuQmI4S3M0c3FCU3lPb3NPaDFNZFFJS1RGdXE3YWxvckFX?=
 =?utf-8?B?djVXYi9UUTZnK2tUS1lHQVlSV0tTZTZSaWl5QU1BVHpBMlJINXp3ajZPdXBZ?=
 =?utf-8?B?L1JlVXNZaXlkelFqVXdNdll2N01YWXlrMWlNZStMMXFLZy8zOFQ5ekR5eUhl?=
 =?utf-8?B?SnlYZ3JEK1dTTmp6Y2tIcHEwSXdMZjJqYnpsbEgxYlZVcWhuaWNXMUwrWksw?=
 =?utf-8?B?VHJ3Q21MQkxQeWNzVEZQM1dVUWVWUTMrcHd4THpkRnBZR3JJR0JnazRuRFpU?=
 =?utf-8?B?dlpxM3FLTmYxNEpJWWR5bjk4UHlmZUZNRFVuUWhlYnJ6U0JDU2VVaHc0cUlY?=
 =?utf-8?B?SmJGRW1TSm1iOWUwOU1MYVp2MzdCKzhqakpLMmRxOXFCV3p6Z1Y5bW9ZR0dB?=
 =?utf-8?B?cW00VzB4Qms2MkRSTTFhYVFYUVR1d2xPcjVHM2JhN0FhZXhLa0hlWm9iSjBk?=
 =?utf-8?B?OG5rSGVPRXhkVkQ2WGhLSCtZODE5Z2MvM1UweXdjK0YwY0RPUmYzZ0VDa2NK?=
 =?utf-8?B?VS8rUEYyYXNtY1dDOTc0THU3ZGI3bEVuYnBmU3gwTlpNQW9qT05WcnJhQ3lK?=
 =?utf-8?B?MW85d0xod3h1OXE3YkRhbWVnTGgxL0xNc2QxTjNMbUZMNWw2SHM2VEJmclZW?=
 =?utf-8?B?TFZucHVlQVJ6azlLTThPb3oyWk1HblVvellSaGpnYUJVcmpqdkVKeXZVeTl6?=
 =?utf-8?B?M0JLSWRyTlYvNXQzN1huR29EMXIrNGo5QzBQV3dLcHpHUXJKZ0g5d3lKUnRK?=
 =?utf-8?B?TUR5clRNYlRvYXdWbUhEUGJxbkF4c0FkSGtWTmtsUldLa09rZTkxOFBrRFY0?=
 =?utf-8?B?aVI4MzNTQ2dJVFRMTmhGMkYrank4NDUwdW5vT2U0SFRxWU5TbW5jU2kxRXFN?=
 =?utf-8?B?VkEyUnBQMHBjT01ib0RHNWhpdkxab2hVNlh5S01haC9sVXpXU08wdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 01bef4a3-b4aa-42bb-22e1-08deb1d160d2
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 15:56:36.6075
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: fHxMwxFO/5t4h8TeRv1L2DC+RMwBPMm6plDxumwliJGxQHzD/JqjHbi3c6fy2b48ux7ClqpJYvMmCvc9hPAwgQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6325
X-purgate-ID: tlsNG-4011c0/1778774200-725748B7-68310611/0/0
X-purgate-type: clean
X-purgate-size: 6115

On Wed, May 13, 2026 at 08:44:46AM +0200, Jan Beulich wrote:
> Waiting loops like the one in flush_command_buffer() will degenerate to
> infinite ones when used early enough for NOW() to still return constant
> zero. Make sure the returned value at least monotonically increases. When
> available, use nominal frequency values as initial approximation.
> 
> Do this only in get_s_time(), as producing a sane value in
> get_s_time_fixed() for non-zero inputs won't be reasonably possible.
> Put an assertion there.
> 
> Reported-by: Roger Pau Monné <roger.pau@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> RFC: This breaks at least the TSM_BOOT case printk_start_of_line(), which
>      checks for NOW() returning 0 (falling back to TSM_RAW in this case).
>      For now I have no idea how to avoid this; perhaps that's tolerable at
>      least in the case where we put in place an early estimate? Should we
>      maybe weaken the fallback condition to take effect for any value
>      below 1μs?

Maybe it's fine to print cycles unconditionally until we reach
SYS_STATE_smp_boot when we know the per-cpu scale is correctly set?

> 
> RFC: While generally the mentioned waiting loops will take longer to time
>      out, on a very fast CPU tight loops may time out too early.
> 
> RFC: For the AMD/Hygon case, if the "nominal" value isn't available, we
>      could use the "high" one. That would cause NOW() to run too slowly
>      (until the scale is properly set), but maybe that's still better than
>      it returning 0? (As it stands, I can't really test the new code
>      there, as my Rome system only supplies the lo/hi pair of values.)

Using the "high" frequency would seem fine to me.

> 
> RFC: On the 2nd pass through early_cpu_init() it may be okay to skip the
>      new additions.
> 
> With "x86/time: set AP's TSC scale estimate earlier" the counter update
> may not need to be atomic anymore, as then only the BSP can reasonably hit
> that path.
> 
> I don't think Fixes: tags should be put here. If we did, we'd have to
> enumerate all introductions of early uses of NOW() (or get_s_time()), with
> the exception of those dealing with getting back 0 (which I expect is only
> printk_start_of_line()). Will want backporting nevertheless (unless deemed
> too risky).
> ---
> v2: Add assertion to get_s_time_fixed(). Use nominal frequencies for very
>     early setting, if available.
> 
> --- unstable.orig/xen/arch/x86/cpu/common.c	2026-05-13 08:35:28.640503356 +0200
> +++ unstable/xen/arch/x86/cpu/common.c	2026-05-12 12:30:35.475284195 +0200
> @@ -19,6 +19,7 @@
>  #include <asm/random.h>
>  #include <asm/setup.h>
>  #include <asm/shstk.h>
> +#include <asm/time.h>
>  #include <asm/xstate.h>
>  
>  #include <public/sysctl.h>
> @@ -403,6 +404,25 @@ void __init early_cpu_init(bool verbose)
>  				    &c->x86_capability[FEATURESET_7d1]);
>  	}
>  
> +	if (c->cpuid_level >= 0x15) {
> +		cpuid(0x15, &eax, &ebx, &ecx, &edx);
> +
> +		if (ecx && ebx && eax)
> +			preset_tsc_scale(DIV_ROUND_UP(ecx * 1UL * ebx, eax));
> +		else if (c->cpuid_level >= 0x16) {
> +			/* Assume CPU base freq ≈ TSC freq. */
> +			cpuid(0x16, &eax, &ebx, &ecx, &edx);
> +			if (eax)
> +				preset_tsc_scale(eax * 1000000UL);
> +		}
> +	} else if (c->vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) {
> +		unsigned int nom_mhz = 0;
> +
> +		amd_process_freq(c, NULL, &nom_mhz, NULL);
> +		if (nom_mhz)
> +			preset_tsc_scale(nom_mhz * 1000000UL);
> +	}
> +
>  	eax = cpuid_eax(0x80000000);
>  	if ((eax >> 16) == 0x8000 && eax >= 0x80000008) {
>  		ebx = eax >= 0x8000001f ? cpuid_ebx(0x8000001f) : 0;
> --- unstable.orig/xen/arch/x86/include/asm/time.h	2026-05-13 08:35:28.640503356 +0200
> +++ unstable/xen/arch/x86/include/asm/time.h	2026-05-12 12:25:14.435489339 +0200
> @@ -23,6 +23,7 @@ mktime (unsigned int year, unsigned int
>  int time_suspend(void);
>  int time_resume(void);
>  
> +void preset_tsc_scale(unsigned long freq);
>  void init_percpu_time(void);
>  void time_latch_stamps(void);
>  
> --- unstable.orig/xen/arch/x86/time.c	2026-05-13 08:35:28.640503356 +0200
> +++ unstable/xen/arch/x86/time.c	2026-05-13 08:33:54.000000000 +0200
> @@ -1655,6 +1655,9 @@ s_time_t get_s_time_fixed(u64 at_tsc)
>      const struct cpu_time *t = &this_cpu(cpu_time);
>      u64 tsc, delta;
>  
> +    /* scale_delta() degenerates when the scale wasn't set yet. */
> +    ASSERT(t->tsc_scale.mul_frac);
> +
>      if ( at_tsc )
>          tsc = at_tsc;
>      else
> @@ -1670,6 +1673,20 @@ s_time_t get_s_time_fixed(u64 at_tsc)
>  
>  s_time_t get_s_time(void)
>  {
> +    /*
> +     * Before the TSC scale is set, avoid returning constant 0 (or whatever
> +     * this_cpu(cpu_time).stamp.local_stime is set to).  While the returned
> +     * value is in no way representing time, it at least increases
> +     * monotonically, thus avoiding e.g. waiting loops to degenerate to
> +     * entirely infinite ones.
> +     */
> +    if ( unlikely(!this_cpu(cpu_time).tsc_scale.mul_frac) )
> +    {
> +        static s_time_t counter;
> +
> +        return arch_fetch_and_add(&counter, 1);
> +    }
> +
>      return get_s_time_fixed(0);
>  }
>  
> @@ -2623,6 +2640,21 @@ int __init init_xen_time(void)
>      return 0;
>  }
>  
> +/* BSP-only function to pre-set an approximate TSC scale. */
> +void __init preset_tsc_scale(unsigned long freq)
> +{
> +    struct cpu_time *t = &this_cpu(cpu_time);
> +
> +    /*
> +     * The incoming frequency is only approximate (nominal).  Increase it by
> +     * 1% to make NOW() output rather a little too slow than too fast, thus
> +     * avoiding a possible backwards jump once the final scale is set.
> +     */
> +    freq += DIV_ROUND_UP(freq, 100);

To avoid such possible jump backwards, won't it safer to also update
the ->local_stime and ->local_tsc fields at the time the new scale is
set?  Updatign those ahead of setting the new scale should avoid any
backward jumps.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu May 14 15:58:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 15:58:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309040.1580232 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNYSK-0007m0-OB; Thu, 14 May 2026 15:58:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309040.1580232; Thu, 14 May 2026 15:58:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNYSK-0007lt-La; Thu, 14 May 2026 15:58:36 +0000
Received: by outflank-mailman (input) for mailman id 1309040;
 Thu, 14 May 2026 15:58:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wNYSI-0007lb-JZ
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 15:58:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNYSI-00DUIM-0F
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 17:58:34 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a05f129-5cb7-0a2a0a5109dd-0a2a4508a5a8-0
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 17:58:33 +0200
Received: from [40.107.159.3]
 (helo=OSPPR02CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a05f128-63b5-0a2a45080019-286b9f03dd2f-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 17:58:33 +0200
Received: from CWLP265CA0535.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:18d::7)
 by AM8PR08MB6419.eurprd08.prod.outlook.com (2603:10a6:20b:316::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Thu, 14 May
 2026 15:58:28 +0000
Received: from AMS0EPF000001A7.eurprd05.prod.outlook.com
 (2603:10a6:400:18d:cafe::22) by CWLP265CA0535.outlook.office365.com
 (2603:10a6:400:18d::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.12 via Frontend Transport; Thu,
 14 May 2026 15:58:28 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001A7.mail.protection.outlook.com (10.167.16.234) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Thu, 14 May 2026 15:58:28 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by GV1PR08MB10642.eurprd08.prod.outlook.com (2603:10a6:150:167::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Thu, 14 May
 2026 15:57:22 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Thu, 14 May 2026
 15:57:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=hCAN/GcUV2jkX3bBHKN+J/o7IEGF/vMtxO6xPWzt4qsSKhxkQOo5zG+SgaYSgG4HLZdHGO+PuSLZs3CvMBcZ7tXtxg4jFTv6s8pTHbJpC5l+iOBuKfGS3VozDa0fg025xa3LuHYFx3+4HxDgI3lj/R+ZW22mWjgebc9jXOfXTXmAdRNeGATqAevpaYJxDwI1YGCNtUVP7i4hjvfeA+YROQkSkfLfIF+iGBbCPtmnDX/PYtOyJ37OkCKod3u+iXaWW9rSoagmwHcy3DlbQEavraLf9owilkyZvxaq6DyjnbBWaYmDUK50PaZ7FJ9Hlf9EWU6h7csdiWsEnyy0zsJv8Q==
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=ciRlN6asEmFIavj5GiXh91TQSSOXozk9gGrur0OGMmk=;
 b=UgC/lMxdPyaN19sm1ScgtnJY2YbX/e3GJQ1ZH3fpiGwFxT4Bdc0pl/tJgSi5IEL4iBHo91Nb+92cCafixsK/7k96qeBEniUl9UPkwOBIYaCb/CIa0WQVbXa7g1mFeVk5M3W00yr/a1EVV4uGRPjNhsvL0y1i+h8vjim0dnDuqQjFQe9TZWiorNnqPuiVEyRpTlOym9dtnZe80tmSX8KZS98YlwEY3kt7rw2tCrdKcIysrXsLMSBdyuSC1TsPMSzjwTCE6MWUmJywrd27vo6NZ8SjEkiokBeAdm6FnvzUX55J2ah16bw/Hd3Uo9aH9zIpdgWPGdBWzeYgSm8kEPci8w==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ciRlN6asEmFIavj5GiXh91TQSSOXozk9gGrur0OGMmk=;
 b=QL3sjXCyejHSf/Zt16CXC5S909ZreoajO1rPsBu8bOF+pm43H+aESm0Y74yT7Imn07mzqf1sG1WzYbrVaMK35BLlpdEzRQ315JgcTHND7aTZ12R9NPtQs1rY0yfC0zZIucCliUCEVdWyLtQPu42oAPqaEBma/qRzxYU4ucfVt4Q=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gI3KZzEybp2TkTUz9AmqwGDTA4Ml8Xo4EI2aZH/HT3Xh6ncVelO0vpLI6OrxjV5v7DDg4OUvz1w4HwJUwmkDCRAIk7uRmttW4iSB1/WSyuW4/Rhk8JJJXZfav92qUwIcN4bJ9/LGTV+MZNaSLRcvasNpagGUGj0NRCmMlcIMamSb4Aqr3Kc5q+bMMIt7ihjThsi8WoQ+HFA2ph1NVJ3rRgCKo7Gatv0B8ezt3UdJUvrDNaXUADwcDSQ0Naj3CDxEnLivhAO1rU+o+nEFg11xpajRvusBU8SXmcMO2nN90HlTE5cA6IwezpyuJ88OVkcGHtS1/LYz4z1p3FFPMgk8NQ==
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=ciRlN6asEmFIavj5GiXh91TQSSOXozk9gGrur0OGMmk=;
 b=OJDnMUhsiRMqJ3VvaccldcblGuHsuMApu5PtOBE1C5doDKQOR6j3a/Lozgik4MssYz0dyUjXJgSWWSHE+S0GTUlIv3O7AxQQQjMChzpLbKYycX0wgK7OavYF/XVbVReaXDTOIpr39FKAQwSBRanWrHJ4QJZM8OnFmR8wv3cIP+aM6JBVd5RK8tiCR2l/kVaO+lDflQR7lh5Sgx9N+JfNCi6pQmcrJcwTgwSUtnP93rzkPH3Rs/EyyfDhOepD4diyFQGOMgrr+kODS6lR7VtnvrQai5dOdku1VXam3D8RUuGtJIchxWyxpPqxiLFUBbD7a29NHWAh/GiyIAPqOXMn+A==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ciRlN6asEmFIavj5GiXh91TQSSOXozk9gGrur0OGMmk=;
 b=QL3sjXCyejHSf/Zt16CXC5S909ZreoajO1rPsBu8bOF+pm43H+aESm0Y74yT7Imn07mzqf1sG1WzYbrVaMK35BLlpdEzRQ315JgcTHND7aTZ12R9NPtQs1rY0yfC0zZIucCliUCEVdWyLtQPu42oAPqaEBma/qRzxYU4ucfVt4Q=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v9 08/13] iommu/ipmmu-vmsa: Implement suspend/resume
 callbacks
Thread-Topic: [PATCH v9 08/13] iommu/ipmmu-vmsa: Implement suspend/resume
 callbacks
Thread-Index: AQHc4jI0ue/pVmX78UiKnsCn9gvTibYNsCmA
Date: Thu, 14 May 2026 15:57:22 +0000
Message-ID: <28587F96-D8A1-46FA-91B0-D9A30E55EFC9@arm.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <4162aa58c351677a4a267fe85989c6d4e07487d8.1778605274.git.mykola_kvach@epam.com>
In-Reply-To:
 <4162aa58c351677a4a267fe85989c6d4e07487d8.1778605274.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|GV1PR08MB10642:EE_|AMS0EPF000001A7:EE_|AM8PR08MB6419:EE_
X-MS-Office365-Filtering-Correlation-Id: 9fe94917-b55f-469b-74ad-08deb1d1a3a7
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|4143699003|38070700021|22082099003|56012099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info-Original:
 N293/+BHEJpb6OQcKDTMn6ebqWS1KMZXacOe5Qa71iV4+KLsKs7eZHLhiVY6/Gmw4A3gUIoIdpPejnE8zNAfVLhCYEGdFbEaIlVMl3wEq1ubOxOZ54AZM0OKQMAxUWY5IJyuQuHUZGNGWD3X1u0zH64uw43B7enOHLQgEAY3wo04Xxhs0Fm8dgi41X8+G1r1Ef/FthWzXUv8w2Uj8MghVpPbF3WPo2Euee0iRFXuJQnYLxd/H2zGapyW8jJ9KKrB/LRGxzrI2GtsoMPWueyD5hb4T9Iw7yv7aftMqckdwmccbssmGXAnTYiw+stWeXk9UtqG3FNS163+1887rvK/4dJNQrd7lmt9qsqqDfoTAYZMj96QORH/DqJdzNl4+qhKpAeQsoY7jW4u/J+ymC34++hdp0fr5BzEKAIzIeacLYb82ny0SN+M5ZQfxTaz+/8bsrO49GxsY7BH6iFzhz8Miinnvs5t04NGtYNTfjszeKYTKjbJfeZRI9E9DCD/fDDQ48KNKrExh/p3TwO4fU9X67R1uwl/GIB6JDE/1gAQa+GRrDWqdGYz6A3kUXK7zxiT6vAxTk0PRtGK+6jJg0/WAisaByx2An02hPLefBRShJvb9j3CjI2ICc/dGJWv21/P2kqOvoE99+01x+fS0VZNukNOwu3oU0XMUqbWSObCV38c6KzocGgOEPmwy/5TFaBKOBqORku1PzZs+K5zu1CK63drT3dDtZiUuNSJv+/TX9QVfz90Qo+BxaBnetqTxIpL
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(4143699003)(38070700021)(22082099003)(56012099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <00AE0B921920E04283ED6B287C72C1B4@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 g5R0uAQ62xVQSxq0kj/aVwjFq9sBmnn+9xPMWwS1z6sJ90fJ5K1Ms46+Mw02r2ZBp/fQ+vO0mSWkYoJPTC/8xiRGeXJFs9UHTJh/q2oaIg/2HbgQkKuVH0JXaUXvrqBqYKYS+baA6JwbgeUOiNBu39yGe3U/OhWPpLPgAuWHSQ7R5yO2zA45xclu1+aCU63UZUPNTks/HxoeX8SqARuJuiZxkqTR/lKpBWRG4YT1AAbXE9u7DskPerg4R0WusiReRmPmwm4L3CpHZj2wamtfLS4MPcJ6pCUlSHmEbYeBcBTfOBe9By7fF359+2iGgt8HGa/1K9yEoVjzzvcH0jKNtA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB10642
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001A7.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0d1c1f4d-7a3f-4c17-e4d6-08deb1d17c18
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|14060799003|1800799024|82310400026|35042699022|18002099003|22082099003|4143699003|11063799003|56012099003;
X-Microsoft-Antispam-Message-Info:
	WU8NVxi1WouKLw9zJpOUcn6vPvdRKmUkw0DoyK6YrTnE0XhqM00ShsNTiUMar2o1RV/hQIzc+cM4eNMrhDFGwJvHQZcopVW1l08EN+yc2jANmhohzv8Rv/Ad1lvsOCUuQGhHe8GV3SrfmsUdTbghUzDnbs5Tujr3brYeRTS/jom+eFljKzSJ/dPE62CvSHyh2wEslbxQyi8meEHxtNR8fTMhuUoqiknSfgHMv17OIAa78q9r7fgVk7Xmi/rJagOwtcHBvNu6QvqCHXgw3O7hcHK4sz1FPn6ukG2zkmK1C/uAjVAnFc2muhrkRytaMDjKX5x3wkGbO2teXsJeQpmtKuADeyYutoB+rSoa1MoqhsWKKWp96z8dB3GB0j7S3VymgHJkMHQ9tvr8HBlXqH6a9pbAGk1iw4hrDSwnd5ewoa66VJRQBrhogMSR7rxJ3Q0hXtCv5YKmOoAaqe3O+FJQfkyQUzuB1lZgNugrlO+K9LD2EYHgG0BVdwH1MSAHX0/qV1v/Ur4R9wrVMurHVbP2Nwi0le/9UI0Ycqk0ToDx6oMsqLUaapPM1iCKZxX9X6ALFLxXtznNNmpBRstyMftwQCgi3co/I3E4mSQNwXtEGzdG402dokjvY68jJRfUF4KuxxWemLrhyrI5DD2/7luCZsMgo1BP5dXsl/dZFbIfoKMBV/OlhbdHYXIV3WReJ9lYlFho/J0CMTSt0OjJI635nuaub3YNgyyNWGDuYTL3XbU=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(14060799003)(1800799024)(82310400026)(35042699022)(18002099003)(22082099003)(4143699003)(11063799003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	0kxidKem/lyxEleGlrhlCWI1Pk2Ra7MunUdd/lOMZA96A5gaB4BjTHcj4s4GDUMkiXSxuOaGVaARjIXDq9lU95fP7y8WgoUYbheAjHyAjSK8y+UC2nQ+Ip+xqQoGjBMrqwqXPHhKn5l2ZhRscf906iAJRnOCU+Xag5M8PQY5wD1ni8dL8buRe68V61hifRIR+64VY/InCMsgnwod+7iDsyGo9zXJaq7FbYWYwTthfK7qO0Dfzt967pw6aC5QvBZEr58iqtraQjGxZ1K2bb2iNktPHEpNxGXKw+riPcEyoVL+1JAHBLZc9UxoPvVBR8UCi70e43iRV1vkIwBZaRZ07kdEw3VyFsPKWXE4JeHLRrCv7rW9MH4RyBnkg4DEuoWMlAmu5OK0PyJG1hMPpb/8Lwz/dOQpp44kcxhk7BuulU31lv4P03sa97f+HVrtuoyh
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 15:58:28.4155
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9fe94917-b55f-469b-74ad-08deb1d1a3a7
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001A7.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6419
X-purgate-ID: tlsNG-c1860d/1778774313-B6B74DB1-C138B942/0/0
X-purgate-type: clean
X-purgate-size: 6981

Hi Mykola,

>=20
> diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passt=
hrough/arm/ipmmu-vmsa.c
> index fa9ab9cb13..e1b47a5824 100644
> --- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> +++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> @@ -71,6 +71,8 @@
> })
> #endif
>=20
> +#define dev_dbg(dev, fmt, ...)    \
> +    dev_print(dev, XENLOG_DEBUG, fmt, ## __VA_ARGS__)
> #define dev_info(dev, fmt, ...)    \
>     dev_print(dev, XENLOG_INFO, fmt, ## __VA_ARGS__)
> #define dev_warn(dev, fmt, ...)    \
> @@ -130,6 +132,24 @@ struct ipmmu_features {
>     unsigned int imuctr_ttsel_mask;
> };
>=20
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +
> +struct ipmmu_reg_ctx {
> +    unsigned int imttlbr0;
> +    unsigned int imttubr0;
> +    unsigned int imttbcr;
> +    unsigned int imctr;
> +};
> +
> +struct ipmmu_vmsa_backup {
> +    struct device *dev;
> +    unsigned int *utlbs_val;
> +    unsigned int *asids_val;
> +    struct list_head list;
> +};
> +
> +#endif
> +
> /* Root/Cache IPMMU device's information */
> struct ipmmu_vmsa_device {
>     struct device *dev;
> @@ -142,6 +162,9 @@ struct ipmmu_vmsa_device {
>     struct ipmmu_vmsa_domain *domains[IPMMU_CTX_MAX];
>     unsigned int utlb_refcount[IPMMU_UTLB_MAX];
>     const struct ipmmu_features *features;
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +    struct ipmmu_reg_ctx *reg_backup[IPMMU_CTX_MAX];
> +#endif
> };
>=20
> /*
> @@ -547,6 +570,245 @@ static void ipmmu_domain_free_context(struct ipmmu_=
vmsa_device *mmu,
>     spin_unlock_irqrestore(&mmu->lock, flags);
> }
>=20
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +
> +static DEFINE_SPINLOCK(ipmmu_devices_backup_lock);
> +static LIST_HEAD(ipmmu_devices_backup);
> +
> +static struct ipmmu_reg_ctx root_pgtable[IPMMU_CTX_MAX];
> +
> +static uint32_t ipmmu_imuasid_read(struct ipmmu_vmsa_device *mmu,
> +                                   unsigned int utlb)
> +{
> +    return ipmmu_read(mmu, ipmmu_utlb_reg(mmu, IMUASID(utlb)));
> +}
> +
> +static void ipmmu_utlbs_backup(struct ipmmu_vmsa_device *mmu)
> +{
> +    struct ipmmu_vmsa_backup *backup_data;
> +
> +    dev_dbg(mmu->dev, "Handle micro-TLBs backup\n");
> +
> +    spin_lock(&ipmmu_devices_backup_lock);
> +
> +    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
> +    {
> +        struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(backup_data=
->dev);
> +        unsigned int i;
> +
> +        if ( to_ipmmu(backup_data->dev) !=3D mmu )
> +            continue;
> +
> +        for ( i =3D 0; i < fwspec->num_ids; i++ )
> +        {
> +            unsigned int utlb =3D fwspec->ids[i];
> +
> +            backup_data->asids_val[i] =3D ipmmu_imuasid_read(mmu, utlb);
> +            backup_data->utlbs_val[i] =3D ipmmu_imuctr_read(mmu, utlb);
> +        }
> +    }
> +
> +    spin_unlock(&ipmmu_devices_backup_lock);
> +}
> +
> +static void ipmmu_utlbs_restore(struct ipmmu_vmsa_device *mmu)
> +{
> +    struct ipmmu_vmsa_backup *backup_data;
> +
> +    dev_dbg(mmu->dev, "Handle micro-TLBs restore\n");
> +
> +    spin_lock(&ipmmu_devices_backup_lock);
> +
> +    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
> +    {
> +        struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(backup_data=
->dev);
> +        unsigned int i;
> +
> +        if ( to_ipmmu(backup_data->dev) !=3D mmu )
> +            continue;
> +
> +        for ( i =3D 0; i < fwspec->num_ids; i++ )
> +        {
> +            unsigned int utlb =3D fwspec->ids[i];
> +
> +            ipmmu_imuasid_write(mmu, utlb, backup_data->asids_val[i]);
> +            ipmmu_imuctr_write(mmu, utlb, backup_data->utlbs_val[i]);
> +        }
> +    }
> +
> +    spin_unlock(&ipmmu_devices_backup_lock);
> +}
> +
> +static void ipmmu_domain_backup_context(struct ipmmu_vmsa_domain *domain=
)
> +{
> +    struct ipmmu_vmsa_device *mmu =3D domain->mmu->root;
> +    struct ipmmu_reg_ctx *regs =3D mmu->reg_backup[domain->context_id];
> +
> +    dev_dbg(mmu->dev, "Handle domain context %u backup\n", domain->conte=
xt_id);
> +
> +    regs->imttlbr0 =3D ipmmu_ctx_read_root(domain, IMTTLBR0);
> +    regs->imttubr0 =3D ipmmu_ctx_read_root(domain, IMTTUBR0);
> +    regs->imttbcr  =3D ipmmu_ctx_read_root(domain, IMTTBCR);
> +    regs->imctr    =3D ipmmu_ctx_read_root(domain, IMCTR);
> +}
> +
> +static void ipmmu_domain_restore_context(struct ipmmu_vmsa_domain *domai=
n)
> +{
> +    struct ipmmu_vmsa_device *mmu =3D domain->mmu->root;
> +    struct ipmmu_reg_ctx *regs  =3D mmu->reg_backup[domain->context_id];

NIT: There is a double space before the `=3D`

> +
> +    dev_dbg(mmu->dev, "Handle domain context %u restore\n", domain->cont=
ext_id);
> +
> +    ipmmu_ctx_write_root(domain, IMTTLBR0, regs->imttlbr0);
> +    ipmmu_ctx_write_root(domain, IMTTUBR0, regs->imttubr0);
> +    ipmmu_ctx_write_root(domain, IMTTBCR,  regs->imttbcr);
> +    ipmmu_ctx_write_all(domain,  IMCTR,    regs->imctr | IMCTR_FLUSH);

I see in ipmmu_tlb_invalidate() we do:
dsb(sy);
ipmmu_tlb_sync(domain);

Is it safe to omit them here?

> +}
> +
> +/*
> + * Xen: Unlike Linux implementation, Xen uses a single driver instance
> + * for handling all IPMMUs. There is no framework for ipmmu_suspend/resu=
me
> + * callbacks to be invoked for each IPMMU device. So, we need to iterate
> + * through all registered IPMMUs performing required actions.
> + *
> + * Also take care of restoring special settings, such as translation
> + * table format, etc.
> + */
> +static int __must_check ipmmu_suspend(void)
> +{
> +    struct ipmmu_vmsa_device *mmu;
> +
> +    if ( !iommu_enabled )
> +        return 0;
> +
> +    printk(XENLOG_DEBUG "ipmmu: Suspending...\n");
> +
> +    spin_lock(&ipmmu_devices_lock);
> +
> +    list_for_each_entry( mmu, &ipmmu_devices, list )
> +    {
> +        if ( ipmmu_is_root(mmu) )
> +        {
> +            unsigned int i;
> +
> +            for ( i =3D 0; i < mmu->num_ctx; i++ )
> +            {
> +                if ( !mmu->domains[i] )
> +                    continue;
> +                ipmmu_domain_backup_context(mmu->domains[i]);
> +            }
> +        }
> +        else
> +            ipmmu_utlbs_backup(mmu);
> +    }
> +
> +    spin_unlock(&ipmmu_devices_lock);
> +
> +    return 0;
> +}
> +
> +static void ipmmu_resume(void)
> +{
> +    struct ipmmu_vmsa_device *mmu;
> +
> +    if ( !iommu_enabled )
> +        return;
> +
> +    printk(XENLOG_DEBUG "ipmmu: Resuming...\n");
> +
> +    spin_lock(&ipmmu_devices_lock);
> +
> +    list_for_each_entry( mmu, &ipmmu_devices, list )

This loop has an ordering problem because we can run ipmmu_utlbs_restore() =
before
the root ipmmu is restored (ipmmu_probe() uses `list_add()`).
Maybe going twice on the list, restoring first the root and in the second r=
ound the rest
should work.

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Thu May 14 16:26:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 16:26:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309068.1580241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNYtM-0004Hn-VJ; Thu, 14 May 2026 16:26:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309068.1580241; Thu, 14 May 2026 16:26:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNYtM-0004Hg-SG; Thu, 14 May 2026 16:26:32 +0000
Received: by outflank-mailman (input) for mailman id 1309068;
 Thu, 14 May 2026 16:26:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wNYtL-0004HH-0l
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 16:26:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNYtK-00AjxG-7l
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 18:26:30 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a05f79f-5cb7-0a2a0a5109dd-0a2a4507d06c-18
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 18:26:29 +0200
Received: from [40.93.196.40]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a05f7b3-229c-0a2a45070019-285dc428154a-4
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 18:26:29 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS1PR03MB7799.namprd03.prod.outlook.com (2603:10b6:8:219::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Thu, 14 May
 2026 16:26:24 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9913.009; Thu, 14 May 2026
 16:26:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tp5yV+91raebbHvwlBnZGe5tKCVwL0Xqy35L4koxYs4+ejfIRKJwLAAD/Gv8zlg357oEWsc2FhwAwiVX9WwoGmOIBHUvQBE1kCq2CaPykk5a7w4tOso6Go4sKNUtJ45ew2FmSzTKDiJbpH4ZQsOYVwPZwLYfsqlWdoIstW29yUjzHwSSKHMHthRhJsZKMS6O9ZNHmb+cQDd07+4Vz1brXbM+1U3qUYYP8zw59th3vNt/ONhPW5ZlNuVMWuFS0VGbL7lpGypKRv0vEiLTxJlh/3puZfbbzrs22/gTl614CbmIhePDe4LKUiRVpYBE+g9uU3FN+uvlgZuE9OealoRBHA==
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=FMZfNSBncFOBPZeQTJjXMyXDOj2Ez7s6CidBwskY5g8=;
 b=ODFXSNP8B9A9pJXe08UsntBz8GfLPZvCd+/oTXsTkxN1YPuz9LY97R5UP4BXTCXbF5QfWiQCZVMwohaIGn3FDbYwnhCqbazdykyCODmsRpxs/ZW7WVSCpBv4f0kPa6Xsno2cN8wUI1mD2KdQb7lP8tPTEYf2cWFly56boW7MgV4SF5joDb412YGmJI8Adur0JeKWhzmIdKfNAftOWVH8lHrNHDEYCLdtL3KYQ7Sd57VdC7V813/Bc/GgBNiO94k0NEXol0+d5l5z7nO0cm8+VEQxPpmz1DnxPiwIeGzLRTtNnrltt+uKJLP1liWBFovZKPa42iRqqY1khhTe0B53MA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FMZfNSBncFOBPZeQTJjXMyXDOj2Ez7s6CidBwskY5g8=;
 b=FShOhQK9PQ8dR/l+kllQi7jCfxHV78INaJcKoent3v7wSGUg6iwGs/VddfNyWdqXsfeo9Uc2lhZ25xmMOmpb9c0++aQHtimnV8Q5LzJ0g+w1Y0vK8Zq/TX1Z6tmuCn4lOkwKDUw+izBvWHH3bTpKQUKyUilvW78BjZydshqc2fI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <01d9db7f-41c5-4275-aa37-104e0d6ac4ec@citrix.com>
Date: Thu, 14 May 2026 17:26:20 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, roger.pau@citrix.com,
 teddy.astie@vates.tech, jbeulich@suse.com, jason.andryuk@amd.com
Subject: Re: [PATCH v5 2/2] x86/svm: Use the virtual NMI when available
To: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1772109484.git.abdelkareem.abdelsaamad@citrix.com>
 <29068558780bd9c6182d7bd74b357acc44409bfe.1772109484.git.abdelkareem.abdelsaamad@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <29068558780bd9c6182d7bd74b357acc44409bfe.1772109484.git.abdelkareem.abdelsaamad@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PA7P264CA0040.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:34b::10) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS1PR03MB7799:EE_
X-MS-Office365-Filtering-Correlation-Id: f3c558e9-0417-42a0-3519-08deb1d58a7b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|3023799003|11063799003|4143699003|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	jHEokVEloVRc17PSdHhczYvRScd6/Bw+1qVCDugMS8HNKgyXBBGP3A+hjNTGp6QzDauNqXgy0xhD/amfaZwQgae4QO7kskKgEUEaThRK8BskMhCWI8ZKBcgbVcIu42MWYvnEvZAYSTQElAMo4AcLPE8tUWwRf3NGvwQTo5fZHmDi1JphdwJ3P/bgw+VeNS+2Q/rEWyYij4MO75g33Q9Bz6Xlao1yK95DSXPvnOniLSuDdgF3/m8UnoBu95nxPNP2CZml3DYeRIasSWboZy4bvP+VtZgScvRVCaPyVO8MwoW3W0CO1YFA8BvzxmT4eNbMXjZE/uB/fuNHrpwzCxUrzvtigQtlj0XvSDAs9dh36rGP/RwWgoHovLW7fcYqZUD9sR89guESxEIMMzjPG5BgsDSh9C3XgdoR6owfkmoyHVQtQrqGZVi9l9v4I0CziHyDnXArDViLUaNQVn39HmVESHpNPbvZLUDPWON0q5U0vynIfiMshGswC77pfrUErbRJ2bmtss3YGrQev0zKOwsp2LMc8DCwM1GRg+tMERVK5G5fC0GHiQUJy9LQ1sFx6hovvpUKkSAsa8nMCuQNFXDueEGU7WHmL8WaSI7Ozdj7IDahompX4C8ycphGQZNMdz1nKtbLiRlJJei3erllJHUEcnc3j8hcC77EjPgAqs0ojdaHw3QQ1z6b3hP7CzeJerJq
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(3023799003)(11063799003)(4143699003)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TkVkdWtLNHp2akNCbXg5NXVYakUrbXcydEVlbDNMQitFSVBJbW85WWNvZCty?=
 =?utf-8?B?dWhaa1RDZ0V6UEx5ZHNmWFJndUd5T0RCa29LdmtQMTZ0L3JsMGlsMXpGQ0pC?=
 =?utf-8?B?UnB3cDJGWEFNMC82M1BsaDU2UFQ2L2ZUM2JSWmxnT3o1M2xNT09MMzkvelFK?=
 =?utf-8?B?K1hrMGwxL0ZaeFRNQ0xmL25BcmpGcTgrZ29tbjFQUVdQbnpzR0EzdFZWOVNU?=
 =?utf-8?B?TGpUUlFyV3RxWGlRZnhRUVlaSkFuaEVIWGZBTVcrRVpESUttQ1Fvc1JmRlg2?=
 =?utf-8?B?UU1RTnVmY09Yd0RwMGo3bDhRQ21BajFXalVDR2R6NGpUZlZ3dmZzenBYNU45?=
 =?utf-8?B?Y0k1SHgvVk84Tnd6SlZLZkZwaFFsNWp3Q2NBbStyM2Y3Q09OZDNCSEhLOVJM?=
 =?utf-8?B?WGd3YnpRYWcxUGFpTzkrTU42T1FHYVFWeDNTcDBVVkxad0lFWk1ZdHlJRkMw?=
 =?utf-8?B?OFViK2RZbXVoREd4VFpSaDNZd0tXeWhVSUwrZnlQMmNGVFBjWTRTbnVrK2l2?=
 =?utf-8?B?OTF4aDI0eVdrK3F3TVhaRHNmNWJVTlZBSkduNFg5RWxyOHFWeitvK0NobS83?=
 =?utf-8?B?b3FTcDBHWWg5cVNWOGxkTU5kMjNRNEtyZkxvcEhTZDJhQjB5NVpoNXdjVEtE?=
 =?utf-8?B?bnArV2k3dWZSMDlSWFlobmtGNUM1ajRZQ05nUk83MDk5aHhhaFpOU3FIajJ0?=
 =?utf-8?B?Q2QyaG1YdTFPcVdoWGZpV2hTVG0yd01Eb3NLb1hBWUxOSlZEQjdPY2JqK2xh?=
 =?utf-8?B?VlpDMVkrb3UxQVhzczRSZzlEUjJWcFBaZzM1ZjBnN25uK28ydFB0RHA3UVlI?=
 =?utf-8?B?YmZqY3ZIREZac25hWXJ0YUN1YTh2ZDg0bThqOGd6dHdNZ01yMjF1VTh2RTVW?=
 =?utf-8?B?UmxOVUxyLzJIWkIreGxWMGd1YnBlWjZzQjdYd2hpb2c2T2RFdmVydmwyVXRu?=
 =?utf-8?B?VDFKdXRGc1pGUjY0U1FUbEJYOVVPMExVVnN5bDBuejg2RTZCcnd4b2RhU1Jn?=
 =?utf-8?B?QXRSKzJqTDRuRmVpTlBVSXRyNXlGK2lGd1JsOWV5THMrNW9JVmhmUnhtN2F1?=
 =?utf-8?B?NUFTUW1ITXNQTm4xb0t0M1JSbWw3Y0k2K1hvV2V4N2FaWTJRY0M1a0EzbERw?=
 =?utf-8?B?aCtDLzZOanFkWlA5UUxPeGs1b2lhNzF0UDNKRUxFZTdhbnBnWXdad0tZL285?=
 =?utf-8?B?T2Q3alVTVnlCejhJVUQwUmhQalk2amRVUTNiaDJ0ZElUUzdqRUxhODdlVENE?=
 =?utf-8?B?ZlU4a1lGTEJsR0lQRFFNMmVLbUxoSXg3REVjdDRJdmdzVEJsSEV2b3Joc1Z0?=
 =?utf-8?B?TWNxSURESHRKYTZVSzRSOG1zTm80M000aXB4ZGpHM1A1K1RGblBoN3lucFp2?=
 =?utf-8?B?NTZ3YjNaeDN5bWo3aXhEWDFIWVdFM2hDZ0UxTzIwRWpMdERuazNpMzNyRHZy?=
 =?utf-8?B?QUxKRDV4VDNBS1FkckVoMDhHbCtrd1ljUEJCQW9ySTNYbWI1WE43c0x1ZCtt?=
 =?utf-8?B?N0dFaDNKMXFOd2gvWFQ2Zi9DWEdzS0lTSXR4OU9TUlovYVJyYURiSkJNblpq?=
 =?utf-8?B?T1R3a2dpVzVBZnFqaDhRZFZVTzVURTVoS2pyVFN3cEF4RmVLZDN0bUR5N2ww?=
 =?utf-8?B?RitvRUdoaUlsd2pOc1ZNSFlTSnZFU29WK0NmZ3VqOFBkYXR3YVo0MVZCL043?=
 =?utf-8?B?N0xxSXQwdVZzWXd2S3ZiVjhIaGpEMVJIdTNzYW9lWDc0cmlGMDdSb3Z1S2xH?=
 =?utf-8?B?djdmdFVCSkFuWWtIUDl5dUdZOE5xVDRMYXZ5ZFQzZ0FuTGVEeTlOQ0FVVVZx?=
 =?utf-8?B?eXhYZUt1TWpQTzNyUnU2K3dvcnJxSzVDTklNSFQ3c0oyWnVTTkRxb3BVRlNC?=
 =?utf-8?B?QkZoSVgrLzBDdW5YdXBiM0dnNk93by9keVVFNGVsVUhJdWttVW1vb1Fsemho?=
 =?utf-8?B?ajl0QUJtTFRQc1o5cUNIWGxHL2hyczVBUy8rOHBsQzM0aThkTHZLMFhKc2VU?=
 =?utf-8?B?OEVOMTZhcG5JMVF4dEd2ZEhkd3k3WXZyTmY1dHJuZnNVbWQzdnROZTVhQlR6?=
 =?utf-8?B?ZURGNFZoeDJaaWYzYVRteUpLWWRYbWpIZEMxakNZY1AwOEJjakpXU2Jic0Vk?=
 =?utf-8?B?ZU4vbmE4dWkvN1F5bldJU3BjQ29nSGllWGk0ZTNpZ3g2Q2VOKzJjS21jb00y?=
 =?utf-8?B?TmEvcUdDTEY3Y2JYQmNpN2NhYmxsRXZXNXRxZEVhU3NZKzlVaWlVY1ZSamtn?=
 =?utf-8?B?bzRiSmpPaStMZ3QzbjlmZWRoN2FTTXdzSTl3SzZEQW5lamg3cWlJajV0VlJN?=
 =?utf-8?B?ODBVaUFzSC9HeENSMWdLbmt6OTNFdWcvNXpVbmRtRm1nUXR5amxPV29uaW1u?=
 =?utf-8?Q?HOILhddWtJ2Mzddg=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f3c558e9-0417-42a0-3519-08deb1d58a7b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 16:26:24.3635
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Fh6C03RlLvtgIx4MIIKFl5Ru0gAzy/yYmHWxFf0JnaIPoCKuqkbS2AssKg9BYvzsqaupVNKpcZ2q6sVu308H2SjfhbNY8CihrdsIvmW0Bbw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS1PR03MB7799
X-purgate-ID: tlsNG-ef75cf/1778775989-21364C48-B909EE6F/0/0
X-purgate-type: clean
X-purgate-size: 2481

On 26/02/2026 1:20 pm, Abdelkareem Abdelsaamad wrote:
> With the Virtual NMI (vNMI), the pending NMI is simply stuffed into the VMCB
> and handed off to the hardware. There is no need for the artificial tracking
> of the NMI handling completion with the IRET instruction interception.
>
> Adjust the svm_inject_nmi to rather inject the NMIs using the vNMI Hardware
> accelerated feature when the AMD platform supports the vNMI.
>
> Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
> ---
>  xen/arch/x86/hvm/svm/intr.c | 6 ++++++
>  xen/arch/x86/hvm/svm/svm.c  | 1 +
>  xen/arch/x86/hvm/svm/vmcb.c | 2 ++
>  3 files changed, 9 insertions(+)
>
> diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
> index 6453a46b85..112a393211 100644
> --- a/xen/arch/x86/hvm/svm/intr.c
> +++ b/xen/arch/x86/hvm/svm/intr.c
> @@ -33,6 +33,12 @@ static void svm_inject_nmi(struct vcpu *v)
>      u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
>      intinfo_t event;
>  
> +    if ( vmcb->_vintr.fields.vnmi_enable )
> +    {
> +        vmcb->_vintr.fields.vnmi_pending = 1;
> +        return;
> +    }
> +
>      event.raw = 0;
>      event.v = true;
>      event.type = X86_ET_NMI;
> diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
> index 18ba837738..815565c33f 100644
> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -2524,6 +2524,7 @@ const struct hvm_function_table * __init start_svm(void)
>      P(cpu_has_tsc_ratio, "TSC Rate MSR");
>      P(cpu_has_svm_sss, "NPT Supervisor Shadow Stack");
>      P(cpu_has_svm_spec_ctrl, "MSR_SPEC_CTRL virtualisation");
> +    P(cpu_has_svm_vnmi, "Virtual NMI");
>      P(cpu_has_svm_bus_lock, "Bus Lock Filter");
>  #undef P
>  
> diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
> index e583ef8548..e90bbac332 100644
> --- a/xen/arch/x86/hvm/svm/vmcb.c
> +++ b/xen/arch/x86/hvm/svm/vmcb.c
> @@ -184,6 +184,8 @@ static int construct_vmcb(struct vcpu *v)
>      if ( default_xen_spec_ctrl == SPEC_CTRL_STIBP )
>          v->arch.msrs->spec_ctrl.raw = SPEC_CTRL_STIBP;
>  
> +    vmcb->_vintr.fields.vnmi_enable = cpu_has_svm_vnmi;
> +
>      return 0;
>  }
>  

This works for the common case, but breaks emulation of IRET which needs
to be able to clear the NMI latch.

At this juncture, I'm going to submit a version which I think works
adequately.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu May 14 16:42:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 16:42:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309088.1580251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNZ99-0007XT-Av; Thu, 14 May 2026 16:42:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309088.1580251; Thu, 14 May 2026 16:42:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNZ99-0007XM-7U; Thu, 14 May 2026 16:42:51 +0000
Received: by outflank-mailman (input) for mailman id 1309088;
 Thu, 14 May 2026 16:42:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wNZ98-0007XG-HK
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 16:42:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNZ97-00DZIO-Qg
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 18:42:49 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a05fb7c-bab6-0a2a0a5309dd-0a2a450bb1ee-10
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 18:42:49 +0200
Received: from [52.101.83.45]
 (helo=GVXPR05CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a05fb88-212f-0a2a450b0019-3465532d833d-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 18:42:49 +0200
Received: from DU2P250CA0013.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:231::18)
 by AS2PR08MB8829.eurprd08.prod.outlook.com (2603:10a6:20b:5f2::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Thu, 14 May
 2026 16:42:45 +0000
Received: from DB5PEPF00014B92.eurprd02.prod.outlook.com
 (2603:10a6:10:231:cafe::56) by DU2P250CA0013.outlook.office365.com
 (2603:10a6:10:231::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.18 via Frontend Transport; Thu, 14
 May 2026 16:42:45 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B92.mail.protection.outlook.com (10.167.8.230) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Thu, 14 May 2026 16:42:44 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by GV1PR08MB10569.eurprd08.prod.outlook.com (2603:10a6:150:16e::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Thu, 14 May
 2026 16:41:41 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Thu, 14 May 2026
 16:41:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Sl87ylpzEcS4sMoVjQGrwcKSFlbe5lTwmbzP7YeQQ6sDesGqiddcRi52rYHvUSzHoF5dKrqAZSeYA8L7VspcjWTOeHbp6z+Y9pV99KjUQ2NVrOi00lQyIVVjX28gR4mZtMi6er5BqnXElNXwsA8cHthuwCTsMNgUANBsceF1INZNg8IEwi3ulVBxomKfCappTXuuBCYlW+HqCcmuSNLpcfsQgTgbN6xy5KoZOAfr7Cwbi+wAblj6XsNKVrhwhaAXBoQyHmPS5IWtnYdrrW33wj9IYUpaux8/K8pDB3y3y+M+D61afCvfF4IGX6TBrZGOGcMkF+xsLyUIT/uTLeKqdA==
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=mADvXDcdpVEOIdGT8nopkjibaLkuis7WqzV8jV4RAB8=;
 b=FVgJpRczaBcWSiSiWvMJVuBFLygp1dLem1YH6NjxKMeetIa28KKNuTLjaaAAWNuKb1Vpd6Qnk4wXpgXqbtzxVNdXVYOpIonDQmAJhsB0421/jXAn29/sXIF8pSqugBdYAIjIqvQWxFpMisx81i/Q1oj/s5XyA1kSaikFx4m9KVFgw1IAOO2zEWFOwWxscykkEJsLKulb+kM/2NlLyTg41wmZA99kpY80wG56yBwg8C3WkFBlZxSUkjNs8H4U2HMUlYD5/bhCCy2XCBprxwMg0YBjADBeiB+dWU7gxBvIa190WcNbX+74z0itoLpzz30ewES7vZ7VkLhz2IUtCZZyEg==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mADvXDcdpVEOIdGT8nopkjibaLkuis7WqzV8jV4RAB8=;
 b=GCxD2/xPGU3HICBzHH4B3K4Z6OmtWabdGePV5mjuIFPcwlh/TF+RTmN/TmxDOtzJG2ZyBVlrK2xyHyXs1mVuLg/7XN09KsC15uKrZ3eAmvxTvvMi/Z5Su5n4hm6HAN7p330gqxjQcNBSDzDSK0ymTwluP//hCU3yxvacWkC4MhY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lin+YFZJJXWn41uKo2v9mHuqSBmbLyVcA0bjbbP7WXGCcWxqMBIXUxRPf8NgWNmoD0gftzm1+KsX1cX5g7LmrJNYv9Oe4AKyY5IU0IWdp+SALEbHxy2uWH8n4RYRS+y/VmElt+3iCbDBUAiMyQNoX8NCSwmTULwtKytILNKo2TIWq09CZ6hf0DI9oEqlm7W1dc7T4r18OMiSJLtLwH0AFF0d09SFeg/TmpXtXAFoBwf6NVRXxkTIrSHl0NCX0NzRgE0ckko8ACJVdLykQ0TzzaGpZP8Bbwzvtud2cCf6ODaukxnbHOB7SF/aHEgnCzADTf/udDpOScAhrPnoTJFePw==
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=mADvXDcdpVEOIdGT8nopkjibaLkuis7WqzV8jV4RAB8=;
 b=Uys74nfkqK2rRDgP80KT4kbfjm68um/kkFYaWIuwhFLLy773jOGqtZ57XlIjs/5ruoY1pPwFF6pJPwgWu5m8iKuKtYQImSLr4J9GWp3vFlUCnMeOKAsswd86BR2GbqZ+rqQ0rQul0F1nFklixPyfyD4lUH7E3YPZ37FUp6pcml3F/5ZMv8x7UrA63PZINJHFuBQn0csoN34dkOtozlAXhp/AMcZkfTZLgd7mNz6kTxMAnQODOHYMkrrgUx2EbixvKr1/VZK4K4BWqiarj8tbyAbBDZgx19VLcAuReOs74VdwUY5FHlCtcEEkqxh+8ifY8DVGqnbGEhjuoYlfkfptmQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mADvXDcdpVEOIdGT8nopkjibaLkuis7WqzV8jV4RAB8=;
 b=GCxD2/xPGU3HICBzHH4B3K4Z6OmtWabdGePV5mjuIFPcwlh/TF+RTmN/TmxDOtzJG2ZyBVlrK2xyHyXs1mVuLg/7XN09KsC15uKrZ3eAmvxTvvMi/Z5Su5n4hm6HAN7p330gqxjQcNBSDzDSK0ymTwluP//hCU3yxvacWkC4MhY=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Rahul Singh <Rahul.Singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Pranjal Shrivastava <praan@google.com>
Subject: Re: [PATCH v9 09/13] xen/arm: smmu-v3: add suspend/resume handlers
Thread-Topic: [PATCH v9 09/13] xen/arm: smmu-v3: add suspend/resume handlers
Thread-Index: AQHc4jI185A+Eexrf0ingdP9c/cyN7YNvIyA
Date: Thu, 14 May 2026 16:41:41 +0000
Message-ID: <EF57B350-AB80-4157-AB49-6A449604BC06@arm.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <fae03d32bb817d56a20b0437e433bd124f89ac88.1778605274.git.mykola_kvach@epam.com>
In-Reply-To:
 <fae03d32bb817d56a20b0437e433bd124f89ac88.1778605274.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|GV1PR08MB10569:EE_|DB5PEPF00014B92:EE_|AS2PR08MB8829:EE_
X-MS-Office365-Filtering-Correlation-Id: 2ad8138c-449d-4bf1-df8f-08deb1d7d30c
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|4143699003|38070700021|18002099003|56012099003|22082099003|11063799003;
X-Microsoft-Antispam-Message-Info-Original:
 1r+qfPV71SlJwhpKmIzo6FdvAyB5lTT3m6VeyDG+2/dkDm2w9eYvUxkqovdJuhzwaxxJxIL4jknT6MXpeeaAuiw1xJIx5TtCfK2NaXYmb9ctFq6kWtidYmu3Zt1/9DjIV4pK8NprlfGuTQ+TYpNyKUzR9DmDZLIYpX4IiTjU7AJJ/4sbUfyS3VD/anfTFyZLc0Jg5ly4q8HzE+OgABmqDI2uEoTV3xYjATMwpceR69E2caSjM8O4i6jqemLMEuYJ13A6msOrjUZ0aY+jNfwAbTqiJpy1UosVTzv8j2X9g8EEliMwJSTJooBLttpN9ywlpkYiXWtWGsHOOwrNXilFK3IerkzP2zcWVhpdK1TOJrIyARvMwzRHG41drBxCxKRvom1CGtrP2PYwF38ikH/QXkz2Y0zCj2paYAi8NtmYzMw2ClovxDl4a1SCCXDJAamQ9IxDz8yMNQPkRjf8hy2noIUZe4yPqQ7e1F7x9FwSZe67rSBTRmVRFpBn9cZzgrcQIheKxm1+rS1HclxCysEVGGzzX1M0Me182bQ2f0XdjS87Zz/mmseE9dtYm/+iFQBIZ2xdKuzy7OdAHmrbBqOLGiJravlPd0Ci7hw8ssbQ6fH7x50j0lvcw2N0cO5axRT6o9wMHkWPA6/etPxECG3f5Qo9o8zO79/ToEby/RbO1ueYF4QIcqjnBZ2NvlSePrNL9Eyu+kMG5TOZFcIiDCA212AWMryq5QD/qriAG/Zn7Bn1YtHdMu6F5b0CXhJexMUe
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(4143699003)(38070700021)(18002099003)(56012099003)(22082099003)(11063799003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <86CBBB898C72C24F9E4DD1A5803F35BD@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 jrOaZN6wC/BfrwC4tT02hs4WOeizapTRqSjZuMqyDUhlJ6p7N7WhpB9iIJZcxnYeSK5quFo7RiXuk1Lw+Cv74+of5crUKGVGEVg+fOTv3192ynv4dtJpzCFtJeraIHbD/WBiKhRYstXoSmT8H9iMBYHcFelGaEf1giFyuRjKNxyTA8kKm5tgHqlUbEXyqWirYs9KXnAh4yNx7iPEFj0KgNpqqXZumrVKIApkspo+EI70tObVPCSfnqTSeo8/ROti0hFODId/i9sFjS7OlaQO3WjvPRw5sBPETzqCa8LCaZJ9VBr/MFbJ6uZqVjhqvCaUGyvgEeFAiBcSfJLmcxGocA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB10569
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B92.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5d2edc7d-8074-473b-1721-08deb1d7ad40
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|35042699022|14060799003|36860700016|11063799003|4143699003|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	swFuXTm1r905loNf8f/HJw1IqSm7BOZ6SarrJ7hD8MtF1D/IkV4QndIwXt5QdyKJtTFS0SVRLWjMr9P+KTL/R3JxAI7irT/vfX0CWJypZn5FvLtp93sDMcDuXCtJAqM+DQewH3N4atT8sSzxtRmvadOxn95ZsB5GkzRVE8arYgKTP3eYVoWN71xkPKpbevM+FLUWawt59zeWWlflptVMvL93kUdjb2JO0NeTz3itYUnzeE6zAKmIcjJsWm5HEXcgDqhEh8A0NqosGzI070N7mRCmsD5vf6KIF+tVggXjO6FLgxOFxnebcHmxOx3w3EqrqavwrjvtFbNWdXdrkh5elqk5PsX8tGxHYWx7HDY8N/oDOGNk6aeseAmsWU2X/uSaRG8WYRJgxGjStuLw0hvTUGUbx00GfGNScx6ZsjIyOb6uk/bYE/9CDXUKJVCNjIXMwB7s/0LrsPOdt8vE7M6ahszFQdxcubrPx9HFvQcrN4OtFBAK0fFsA/wv5sCi4SZTgp3R7LsqmrEczlk7BsS9nT3CN5VktkmRD75YM//tthW+9dizHkxJLKLTC+0YP3xzym/0TmS8fwAhUwgXrL/KpTVGWrOU9aZkMuUnLO18AWSUsXpLgXf8csd4BmHqO3VPVE707eckN648dpqr34hhyvSCHe3UXkPGfP0sfRZG4zTmR9aRhlYbER1H9rXmCmfgbIv72rKK83J2JQAhn2zXRs/f2akX4BPIlCgJs2UIyPw=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(35042699022)(14060799003)(36860700016)(11063799003)(4143699003)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	rNupZ0OE1uiyu3R+4mdGLl5fqac36ES0fSmLOjCZZnw247n5giISI3tLelwcCk9AwnPPozqsd9uJoXqq4a91Y1lQcqAr26iopMbVq4D8j4yRTTJqkA+JseQlpv5nSoKoqe0Onh2ZpDRklMeQHWsbgbEfnIBzyiPLqpc7txlKgnJy2nKVSYvwBbj9MWN5lHygMZI1JCHRgsiyjbhCcHXHuutSWYIeNqPFSRej1Rpfpmm9JsKDYwu3u8NQEOLnsletyxq70LzsQ1WS8xXfWC0aIMbgJKQkBybL0K5sxWf7wYkOK7ny6AGxcMLmKI7Pzu2r2Xf5hu2Phix2GdTXa3hA+Qq3AjJjuKpg0DSQGIpd4PdycYppmKFhEIu3R43WrQSZAI6+YmTl77rg5PdylBFij0UX9HUu5B8eqYsUHXc9PpELqSkDKeuUZnIbT+oCYKVl
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 16:42:44.8951
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2ad8138c-449d-4bf1-df8f-08deb1d7d30c
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B92.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8829
X-purgate-ID: tlsNG-42698a/1778776969-1377AF3B-7FE4ACE3/0/0
X-purgate-type: clean
X-purgate-size: 5377

Hi Mykola,

>=20
> +static int arm_smmu_enable_irqs(struct arm_smmu_device *smmu)
> +{
> + int ret;
> + u32 irqen_flags =3D IRQ_CTRL_EVTQ_IRQEN | IRQ_CTRL_GERROR_IRQEN;
> +
> + if ( smmu->features & ARM_SMMU_FEAT_PRI )
> + irqen_flags |=3D IRQ_CTRL_PRIQ_IRQEN;
> +
> + /* Enable interrupt generation on the SMMU */
> + ret =3D arm_smmu_write_reg_sync(smmu, irqen_flags,
> +      ARM_SMMU_IRQ_CTRL, ARM_SMMU_IRQ_CTRLACK);
> + if ( ret )
> + {
> + dev_warn(smmu->dev, "failed to enable irqs\n");
> + return ret;
> + }
> +
> + return 0;
> +}
> +
> +/*
> + * Probe-time only: request host IRQs and, when available, program the S=
MMU's
> + * MSI doorbells. Resume does not restore the SMMU *_IRQ_CFGn MSI regist=
ers,
> + * so any host suspend support must treat the active MSI IRQ path as
> + * unsupported until that restore path exists.
> + */
> static int __init arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
> {
> int ret, irq;
> - u32 irqen_flags =3D IRQ_CTRL_EVTQ_IRQEN | IRQ_CTRL_GERROR_IRQEN;
>=20
> /* Disable IRQs first */
> ret =3D arm_smmu_write_reg_sync(smmu, 0, ARM_SMMU_IRQ_CTRL,
> @@ -2028,22 +2052,7 @@ static int __init arm_smmu_setup_irqs(struct arm_s=
mmu_device *smmu)
> }
> }
>=20
> - if (smmu->features & ARM_SMMU_FEAT_PRI)
> - irqen_flags |=3D IRQ_CTRL_PRIQ_IRQEN;
> -
> - /* Enable interrupt generation on the SMMU */
> - ret =3D arm_smmu_write_reg_sync(smmu, irqen_flags,
> -      ARM_SMMU_IRQ_CTRL, ARM_SMMU_IRQ_CTRLACK);
> - if (ret) {
> - dev_warn(smmu->dev, "failed to enable irqs\n");
> - goto err_free_irqs;
> - }
> -
> return 0;
> -
> -err_free_irqs:
> - arm_smmu_free_irqs(smmu);
> - return ret;
> }
>=20
> static int arm_smmu_device_disable(struct arm_smmu_device *smmu)
> @@ -2057,7 +2066,7 @@ static int arm_smmu_device_disable(struct arm_smmu_=
device *smmu)
> return ret;
> }
>=20
> -static int __init arm_smmu_device_reset(struct arm_smmu_device *smmu)
> +static int arm_smmu_device_reset(struct arm_smmu_device *smmu)
> {
> int ret;
> u32 reg, enables;
> @@ -2163,17 +2172,9 @@ static int __init arm_smmu_device_reset(struct arm=
_smmu_device *smmu)
> }
> }
>=20
> - ret =3D arm_smmu_setup_irqs(smmu);
> - if (ret) {
> - dev_err(smmu->dev, "failed to setup irqs\n");
> + ret =3D arm_smmu_enable_irqs(smmu);
> + if ( ret )
> return ret;
> - }
> -
> - /* Initialize tasklets for threaded IRQs*/
> - tasklet_init(&smmu->evtq_irq_tasklet, arm_smmu_evtq_tasklet, smmu);
> - tasklet_init(&smmu->priq_irq_tasklet, arm_smmu_priq_tasklet, smmu);
> - tasklet_init(&smmu->combined_irq_tasklet, arm_smmu_combined_irq_tasklet=
,
> - smmu);
>=20
> /* Enable the SMMU interface, or ensure bypass */
> if (disable_bypass) {
> @@ -2181,20 +2182,16 @@ static int __init arm_smmu_device_reset(struct ar=
m_smmu_device *smmu)
> } else {
> ret =3D arm_smmu_update_gbpa(smmu, 0, GBPA_ABORT);
> if (ret)
> - goto err_free_irqs;
> + return ret;
> }
> ret =3D arm_smmu_write_reg_sync(smmu, enables, ARM_SMMU_CR0,
>      ARM_SMMU_CR0ACK);
> if (ret) {
> dev_err(smmu->dev, "failed to enable SMMU interface\n");
> - goto err_free_irqs;
> + return ret;
> }
>=20
> return 0;
> -
> -err_free_irqs:
> - arm_smmu_free_irqs(smmu);
> - return ret;
> }
>=20
> static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu)
> @@ -2558,10 +2555,23 @@ static int __init arm_smmu_device_probe(struct pl=
atform_device *pdev)
> if (ret)
> goto out_free;
>=20
> + ret =3D arm_smmu_setup_irqs(smmu);
> + if ( ret )
> + {
> + dev_err(smmu->dev, "failed to setup irqs\n");
> + goto out_free;
> + }
> +
> + /* Initialize tasklets for threaded IRQs*/
> + tasklet_init(&smmu->evtq_irq_tasklet, arm_smmu_evtq_tasklet, smmu);
> + tasklet_init(&smmu->priq_irq_tasklet, arm_smmu_priq_tasklet, smmu);
> + tasklet_init(&smmu->combined_irq_tasklet, arm_smmu_combined_irq_tasklet=
,
> + smmu);
> +
> /* Reset the device */
> ret =3D arm_smmu_device_reset(smmu);
> if (ret)
> - goto out_free;
> + goto out_free_irqs;
>=20
> /*
> * Keep a list of all probed devices. This will be used to query
> @@ -2575,6 +2585,8 @@ static int __init arm_smmu_device_probe(struct plat=
form_device *pdev)
>=20
> return 0;
>=20
> +out_free_irqs:
> + arm_smmu_free_irqs(smmu);
>=20
> out_free:
> arm_smmu_free_structures(smmu);
> @@ -2855,6 +2867,96 @@ static void arm_smmu_iommu_xen_domain_teardown(str=
uct domain *d)
> xfree(xen_domain);
> }
>=20
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +
> +static void arm_smmu_reset_for_suspend_rollback(struct arm_smmu_device *=
smmu)
> +{
> + int ret =3D arm_smmu_device_reset(smmu);
> +
> + if ( ret )
> + dev_err(smmu->dev, "Failed to reset during suspend rollback: %d\n",
> + ret);
> +}
> +
> +static int arm_smmu_suspend(void)
> +{
> + struct arm_smmu_device *smmu;
> + int ret =3D 0;
> +
> + list_for_each_entry(smmu, &arm_smmu_devices, devices)
> + {
> + /* Abort all transactions before disable to avoid spurious bypass */
> + ret =3D arm_smmu_update_gbpa(smmu, GBPA_ABORT, 0);
> + if ( ret )
> + goto fail;

Should we have this here as the restore path calls arm_smmu_enable_irqs()?

ret =3D arm_smmu_write_reg_sync(smmu, 0,
                              ARM_SMMU_IRQ_CTRL,
                              ARM_SMMU_IRQ_CTRLACK);
if ( ret )
    goto fail;

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Thu May 14 17:22:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 17:22:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309122.1580260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNZl6-0005KS-3r; Thu, 14 May 2026 17:22:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309122.1580260; Thu, 14 May 2026 17:22:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNZl6-0005KK-0W; Thu, 14 May 2026 17:22:04 +0000
Received: by outflank-mailman (input) for mailman id 1309122;
 Thu, 14 May 2026 17:22:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wNZl4-0005KC-E6
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 17:22:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNZl3-00Ar02-Md
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 19:22:01 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a0604ac-5cb7-0a2a0a5109dd-0a2a4505b656-14
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 19:22:01 +0200
Received: from [52.101.84.68]
 (helo=DB3PR0202CU003.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a0604b8-aaa8-0a2a45050019-346554442f43-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 19:22:00 +0200
Received: from DU6P191CA0058.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:53e::29)
 by DU0PR08MB9512.eurprd08.prod.outlook.com (2603:10a6:10:44c::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Thu, 14 May
 2026 17:21:56 +0000
Received: from DU2PEPF0001E9C0.eurprd03.prod.outlook.com
 (2603:10a6:10:53e:cafe::d) by DU6P191CA0058.outlook.office365.com
 (2603:10a6:10:53e::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.12 via Frontend Transport; Thu,
 14 May 2026 17:21:56 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU2PEPF0001E9C0.mail.protection.outlook.com (10.167.8.69) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13 via
 Frontend Transport; Thu, 14 May 2026 17:21:56 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DBBPR08MB5913.eurprd08.prod.outlook.com (2603:10a6:10:20b::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Thu, 14 May
 2026 17:20:54 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Thu, 14 May 2026
 17:20:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=ggME/fFaEXIX9sCOD/K3awz5FQbb9DJRIkPqofGPjTnKYnuV6g30NBA8YEBpcCYV1FmUcq37xhCAhGSTS+ggT5DDD15346zA5acjhZpkth17OdE1kLL1mexp9e/Vv/wH/XODvint6HOprM9Z9T1ypvIaQLmv1hT10GwzuOwz+j6SQ01ElrGPg92BHmqrmh7+J+FOzEGOEBJokKd5ljnZ2cTgAS7amp6cUDo0/zVlH3i8LELfaO6sN03xrpFSwhfxjNwi+ROSNGa9+CGEC7GDq8Ue3OAQ5neVCOj7sbx3ORBq+FWEkDdNVnSZE7zg7RPeiCIgPUKDlxd6NwBIhXPHKg==
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=0emeo6+8Y3nQwRjlJPnfCGtFv/1dOiWJsAIsXGNXnoo=;
 b=YZNSF444O5KVHdhhHpQu3b/l7RlqWS1Szzfzbzl7SfX8EgUiSIEYOn2wQ+XOwBa1LGohes8t3nnIRokSOaAvXRJF0OAh7V8lFh2ytGBh+tc1YuhhYkx4VHY6socBTAbdOep/YUOFQHzM6Ts69kDjI9EjMFDYDRhxHvtzRSOOiqrFcXmPyk23CUIe/e9n3+AqNhLeSE7thQqb/rzoiU9+MK6RRDgYPJ4pSU0+xBGpyjyfx5+A8UPCBmofM3W6mu6IuHIXyefcqeYJNhqlRqdX1C7ggKwrUr3VLfQnlL96shgYCJSd0zMfdmItEB1Pbo8ICS85Ep2WP8iio2NAOUsmUg==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0emeo6+8Y3nQwRjlJPnfCGtFv/1dOiWJsAIsXGNXnoo=;
 b=kZEs/3tMeb0yn5q3lUzwX4BoSXOxLd9mt1ndlq7OB7FKaGb8Ck5qa/kQ7DhXTaP0srvxsnbFUHtNkqXjR0SNMQjk0GSrZz3FKd1dESVWi9MDPvsYpV+FpNu1jWU3dzMVd1jWCs81BTGq4cw5MSNBxoSt118xpdi3rPoKFX0WAmQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WbT3WnIJmGz+YuG5JdcO2+RS/ySfD1E1wPbKnWTUL4lrkbSbHakoEN2fmNrCrYChD+EDJI/hxs5GyaGdw/Z+ZQH5buSIh3+b3ZylVWy5q7/FwJ98JH82X11M0PaLlg9EKNYJ0LVf/51auTSl73QH/NwyiCuc27X6tpQXcFz9E95EgCUwwRITuSdqyLOyfhIr1sAq4HDllbCsng4Wjdya2v2ZIGJllfoGLKLjn0RF2tTerraLVDqsT5v+tpU474L2jwicq//dUMK1qZoFRwM4M7gS/6MHvlVb/RSxt5zL+wOi5H4eIY8wGOuQ3utaRvwUzhu8i6I7hRZdjSA6DB0vng==
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=0emeo6+8Y3nQwRjlJPnfCGtFv/1dOiWJsAIsXGNXnoo=;
 b=IF4mW8y2WA+MjoP8/LXc1d4ikanwqtJNP/YoRIKvxDTlEzL9ZqV0wHYzlAwjFY+fqHGDk2uUK9lloHzyOJc9sQ4Ra82XkJzS5so2cFG7V01q3iTVxnxlHdNFiSUyVd68I5HzmxYlYiNo8ACXLZHONGvqzJamA+r+sHaL947PrinmVHcbyiZsb/57ukGZJ2sKzuxbxi4NsQYiJN0JZJ/PCPXzt0gTqLb2u2XsCCL26gTf+SplIrtpTowhVqkNgtAq40XgCRfjG295AhM/eoh/SdqxtALTg9GiY1aLX67SMTbm7ruTaMt+kdP3Da5OzkYm+DpfCqUzOonI5ZJ1MoPtRA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0emeo6+8Y3nQwRjlJPnfCGtFv/1dOiWJsAIsXGNXnoo=;
 b=kZEs/3tMeb0yn5q3lUzwX4BoSXOxLd9mt1ndlq7OB7FKaGb8Ck5qa/kQ7DhXTaP0srvxsnbFUHtNkqXjR0SNMQjk0GSrZz3FKd1dESVWi9MDPvsYpV+FpNu1jWU3dzMVd1jWCs81BTGq4cw5MSNBxoSt118xpdi3rPoKFX0WAmQ=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v9 10/13] xen/arm64: Save/restore CPU context across
 SYSTEM_SUSPEND
Thread-Topic: [PATCH v9 10/13] xen/arm64: Save/restore CPU context across
 SYSTEM_SUSPEND
Thread-Index: AQHc4jI1kApzK9pOoE+jepD/YgGe7bYNx4CA
Date: Thu, 14 May 2026 17:20:53 +0000
Message-ID: <7254EEC1-315F-41EB-B623-5CACAD7255E9@arm.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <46bbc9e008a65dd86fb2b368e4751eb7d2014afa.1778605274.git.mykola_kvach@epam.com>
In-Reply-To:
 <46bbc9e008a65dd86fb2b368e4751eb7d2014afa.1778605274.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DBBPR08MB5913:EE_|DU2PEPF0001E9C0:EE_|DU0PR08MB9512:EE_
X-MS-Office365-Filtering-Correlation-Id: 56cbdb84-6a9a-475d-b7c5-08deb1dd4c6f
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|11063799003|4143699003|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info-Original:
 iV2q+I3QUv5fk28XAAvDzX/ZBo5NZdB61vgTHib5TFfuIddiXyLi/aoW1deu1rPjLHFydpyY76HsYs4ow64j8ZtONvjW+Aib0jo6nEAKxj0BnMy3R0e1FZZyJSdFO8J8D7Yk5plGDHV5dBV+/JjhlaaJQOi4o/79Ral9C7OyvLBHSqXWiOqwaYoc/c+sqj/hxOsZXPtWK6HJkKuiR/q4bOV3L8UH2MRPJany4tcsBy/73PvT//6+NaZKXlbs/GV7gvVnDEeFqEvKPzNv886zn8FA/lK4JLZfBofTtnjwNjy8ePL2XzQRS2cLx8waD/ChzR97u46y5X0pQh6AXJzwR0GTyrfv+O4yG8v5HKZuFoScF8hejvR0Lmt/Sv9Xt1Afi1m1AeQagTkmkATU4sv3JX6MffAW3Z7vs6D+w5EeM+GUB3/ZdObu/WKqz4SkFDy9536jM0koX9SsYBDUvP+mg6otAo4Od+hQjGsF61F92ZIl3lzO6fP8ymu1+KYyUzht8XXBJCkyqb4D4m97wmq4WwZQfLIAp0KcmicyiKvE8oq3p2+g+Cy/WEhwNQaWtnD9+w36b0R9biHUU5+E1d/H5wHiWpZcVWBsTIcfUm3YwEkRsdIEt/q2ZnKmh+rPSmq+lm+cq7D5JoP5Ssm5wFnli6YLttXVYiL2aCHpSPjtbQd35vY4OpaxcuQhcF2D+bvAU5ATHVrex6as32Y0aVpXHM4MGcL9saoL65FpS6bVmgsE/LSB+KU4Yxya+7e3ftA5
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(11063799003)(4143699003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <F326A2BD5F753342BA7B9A8667732DFA@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 fxwNzSZCy8/bjIOZnee2L0WKQUkUsYZqFUZF7F8ypz8S384NL1CzW8YXC22Hzw/YbsWcf0AsMgt77kM5gZz5SuDzJwnaK9Wo9nB0qXUYoVb7UnOXphsD4EopVt5PFaYidH4OCYEdQjJavAuJjLlxuqCqH4IFUTea5o7ByzMYKGCxmTN41WKaIDHT4X8vTAnC83ihCGrM1ew93jcz+VhbZZuIaxqyvGIb3InvCYgOWdaBYTYgQtkbEC58BN2nG+YLajK+KuvYY6o7neXLixzhJ9YyKnK13OLuiCuZ9Ew8vtJAaw0n1XiKIZgEAWHcz9EI0DBbP69b5IwtYMy8yaxoBA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB5913
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF0001E9C0.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f22a5068-0fd9-4378-4737-08deb1dd274a
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|14060799003|376014|35042699022|36860700016|4143699003|18002099003|56012099003|22082099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	NKKqf9rRqKs+YrZL8wt1PZIXCfaheDv6/JzxbYJBDG/bdCBDTt6N1p5EXSZSNPELNHp38lHghBfoMSp0WgSx8gS0azmC+Gba8Wh95QNWf8Uyp3t5RGEcftkexE+F6+aky3aprQKXnWEbK+mZJbyInUbzZ3Z7tKkJI7eqnjBsbvRPt3l75LiJRpfQtRqj9Qwy3wDJa08pHgHwQJartmEvYHnpCdg4W4jiLIMrpzb5aWF5Jq4W2DF133OqNi99D+u8sUKPd8BQ8pUX3AKgny11IUwiqnCfQqBykzV5WJ8pjt7IV4EOadpZRRnDj6HxOwUizNulaTUhdZJnZhQrDmud79ETVYk3vzGN+FJuUwB49Lsx63782eJXeDaYEfx6lGIeBNTFm/T9GH2t2zjr+rOApYgEvS2VHz9a/5dQNXwVO/rcLnecT7yvl4yG691n1P/yXw9A0yMAST6zSCLrKGPMm4J18MxOxSzxYjhwNg4Rb9a+l+pati/NSJePQz0evg1cJUYpAFfdnAM27oo/6vpvxo0BCMESFacAiqsmnofOUYCD03sTued+T78PmZU6yquqNA9wRKFsgSUtKSW5tnYCxvzKTAXqCqY/rYs08RWlcINd6gxXCGvkynR+ILQfaOB6RyognM4oNqu8bFywVDD80i7ON2vMs+KPb+A4RoTJtDAsH0e6RAKXF5aXiNbydADUB4CclxBNRfWTNgp8RrW0cmW3Yiee0FTn7ua0Fb6htkE=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(14060799003)(376014)(35042699022)(36860700016)(4143699003)(18002099003)(56012099003)(22082099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	9484AUT0ANkcDPljl5O3Tdx3nvtyi4DqKaJgDbxyweJ3fuNMN+D8yy3o79ar8lXVzJQz9Hl/6g1hlOYuBp5sLhUexlG6SIG6qygmXeq5QbSKZAFIXb81fSKRZAgozokfuhWUU8ThwDi3xxXPdl+wMFGFyELUi4ZUzWrP/L3vma0bvxUqCyYae9Qu5vl/EQZQrmqR2R5zDS6sz6H4i9LLP3+25aROKa2Kkwy5O4xmPsONbp6dooZqCOFSguuf4tb3/E2+WiGoFtUQCiIr0ohCcR54kIvBAtr6sQswwJjcCxq70m1YoB90WXc56oQ4bd6JR4v0DyYzbSleUMbL6oM/IsVtdv1uFXCok9Rm3p5AXRY53UMzyrj+Zs6j3TIwYHWYvBJ+7K7+oGF6R9fKLR5aiHu1Y9PmRlDv+GvirIHuRB2G4Q2sy91Rn3gsbKoyUBUm
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 17:21:56.0477
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 56cbdb84-6a9a-475d-b7c5-08deb1dd4c6f
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU2PEPF0001E9C0.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9512
X-purgate-ID: tlsNG-c201ff/1778779321-D3B60443-7AE8593F/0/0
X-purgate-type: clean
X-purgate-size: 1969

Hi Mykola,

>=20
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +/*
> + * int prepare_resume_ctx(void)
> + *
> + * CPU context saved here will be restored on resume in hyp_resume funct=
ion.
> + * prepare_resume_ctx shall return a non-zero value. Upon restoring cont=
ext
> + * hyp_resume shall return value zero instead. From C code that invokes
> + * prepare_resume_ctx, the return value is interpreted to determine whet=
her
> + * the context is saved (prepare_resume_ctx) or restored (hyp_resume).
> + */
> +FUNC(prepare_resume_ctx)
> +        ldr   x0, =3Dresume_cpu_context
> +
> +        /* Store callee-saved registers */
> +        stp   x19, x20, [x0, #RESUME_CTX_X19]
> +        stp   x21, x22, [x0, #RESUME_CTX_X21]
> +        stp   x23, x24, [x0, #RESUME_CTX_X23]
> +        stp   x25, x26, [x0, #RESUME_CTX_X25]
> +        stp   x27, x28, [x0, #RESUME_CTX_X27]
> +        stp   x29, lr, [x0, #RESUME_CTX_X29]
> +
> +        /* Store stack-pointer */
> +        mov   x2, sp
> +        str   x2, [x0, #RESUME_CTX_SP]
> +
> +        /* Store system control registers */
> +        mrs   x2, VBAR_EL2
> +        str   x2, [x0, #RESUME_CTX_VBAR_EL2]
> +        mrs   x2, VTCR_EL2
> +        str   x2, [x0, #RESUME_CTX_VTCR_EL2]
> +        mrs   x2, VTTBR_EL2
> +        str   x2, [x0, #RESUME_CTX_VTTBR_EL2]
> +        mrs   x2, TPIDR_EL2
> +        str   x2, [x0, #RESUME_CTX_TPIDR_EL2]
> +        mrs   x2, MDCR_EL2
> +        str   x2, [x0, #RESUME_CTX_MDCR_EL2]
> +        mrs   x2, HSTR_EL2
> +        str   x2, [x0, #RESUME_CTX_HSTR_EL2]
> +        mrs   x2, CPTR_EL2
> +        str   x2, [x0, #RESUME_CTX_CPTR_EL2]
> +        mrs   x2, HCR_EL2
> +        str   x2, [x0, #RESUME_CTX_HCR_EL2]

Do you think we should save also CNTHCTL_EL2? Apologies it escaped my first=
 review,
but I see we program it in the boot cpu path + secondary cpu path: init_tim=
er_interrupt().

The rest looks ok.

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Thu May 14 17:56:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 17:56:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309149.1580269 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNaIO-0001cN-IJ; Thu, 14 May 2026 17:56:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309149.1580269; Thu, 14 May 2026 17:56:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNaIO-0001cG-Fa; Thu, 14 May 2026 17:56:28 +0000
Received: by outflank-mailman (input) for mailman id 1309149;
 Thu, 14 May 2026 17:56:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wNaIM-0001cA-Vh
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 17:56:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNaIM-00GS1i-6v
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 19:56:26 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 6a060caf-5cb7-0a2a0a5109dd-0a2a45059080-32
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 19:56:26 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 6a060cc9-aaa8-0a2a45050019-d155802edd8e-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 19:56:26 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-4891b0786beso53602635e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 10:56:25 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe4c88495sm8335235e9.4.2026.05.14.10.56.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 May 2026 10:56:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1778781385; x=1779386185; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=f3fGRidiZ0yfRYQMPdYfRMNwaMmmyOBVWWMsI1nxEsU=;
        b=NVuNxaOraSLu95dRLoOZaB9RSiVgMB2lsIBWgKc8/LaxHCCX44sxX120jmtZ2CjpF6
         M4VOLBKMI9hxVj+F7enTdo+Yqu7/HBnKwc140E4Z1jcs57JY24UCkJHtvLZ76DTElS1C
         Bw6f3qytkLzyXsa+LdbvYptkcQfhT9uzF4t0Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778781385; x=1779386185;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=f3fGRidiZ0yfRYQMPdYfRMNwaMmmyOBVWWMsI1nxEsU=;
        b=CbvEuNGVppApnKMKPF+1WCJnvgJGVufhfib6DHy5g816cUgKDO88b2O7NjaS3CDDga
         b3Zj9Q39P3iMAGHgL/mNCKhNv2j57x/iVflU+kLCnu19bxZPpl1rSY+cfkL39iwrtW1L
         8PseZ4wiSFITePXW4BqU65Rwl2bOX06brN8NCEoLlzwsZWGD6NJwt13j72DYg8iNp1WN
         tU8uAupYzhEUTj0E10aHmLJCmJhLEJkokoexA767dpc2JoZsRFklpqkt5HNtNwYvWWMt
         G3KRRh7FgKWsXWcV+ESORG3FHLnJb2DvVtAV1Tmg0EoAuFjVDzKF/qeyI2r+6dA1xUNA
         cLyw==
X-Gm-Message-State: AOJu0YzIXFMfLwyP5qLqR8ZOdtSalU9dFYEWyBWBvpF/WKZjnA1b9tA0
	CJx6D64OfwGjM8ovxRLSW3tgFtvQpu3nPXjOfqsU/EmbDgii/+NtYw1dAYVWQJjoS4Y4SaAVEMi
	QIp0rSMs=
X-Gm-Gg: Acq92OHcuVc+aa4wFvbSWlt9HBlYFGvrYy/RQmkwuFabHiLVCkX3rGOgl2CmtSF4GUY
	U2cYwJWhkpjHvfCpLPJWJTgagwjTm3fvKENPBg+8EepdpLBSClYT41rSylHCgwQc3dfuFdiOsfd
	8vHmFY0oc1CT405o1OZ4l8syqGBQnWNGictHNYz19Q5Gx6gX8T5roQ7Ct1YN18OeTsHq1w6G2We
	wg4zTx+r1b5+pOlZaS4D8+9xDDXnmOCoVVWuDP5XyjkyXTZhdY3f461rvruX3CC2nlT8ZAdS1zV
	8/KCNzIaOqPo7Us8M75n88bbxTTOqcuZbjsfanKyRMzXTjOODJWRFhAqRbUQam46B0TZ6E0zuc2
	Gp3yC68HT5B3ZmwqctWAqJxDAZWeMW1duE8uDU06QTQIEhP8GKLWrSIqx0yvQQb+CXVV6xPXWn5
	alVXmOKvHUbHhgKdS33n6Xljr1SXT5ilPciNaqwjxaelTl4a48RqI2wYoYAySO5FCmKtz/L8muz
	3/y
X-Received: by 2002:a05:600c:a4f:b0:48f:e230:2a1f with SMTP id 5b1f17b1804b1-48fe661ede2mr5069785e9.30.1778781385272;
        Thu, 14 May 2026 10:56:25 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.22 v6] x86/svm: Support vNMI on capable hardware
Date: Thu, 14 May 2026 18:56:23 +0100
Message-Id: <20260514175623.1869042-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1778781386-E2F94443-541C8930/10/73395122804
X-purgate-type: spam
X-purgate-size: 6213

From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>

Starting with Zen4, AMD CPUs can virtualise NMIs for a guest.  On older
hardware, determining when an NMI is safe to deliver is a challenge and Xen
does not handle all corner cases correctly.

With vNMI, there is an enablement bit and two new bits of state in the VMCB; a
pending bit, and a blocked bit.  These directly map to the CPU state for
handling NMIs, and are maintained by hardware during the running of the vCPU.

When vNMI is enabled, have svm_{get,set}set_interrupt_shadow() work in terms
of the vnmi_blocking bit rather than the IRET intercept.  This allows an
emulated IRET instruction to re-enable NMIs.

When injecting a new NMI, simply set the vnmi_pending bit; hardware will
deliver the NMI to the guest at the next suitable juncture.

One complication is that, when delivering a second NMI before the first has
completed, the mix between common HVM logic and SVM specific logic will try to
open an NMI window, malfunctioning as it does so.  When vNMI is enabled, short
circuit this to not consider NMIs blocked.

Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <jbeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Teddy Astie <teddy.astie@vates.tech>
CC: Jason Andryuk <jason.andryuk@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

For 4.22.  This is somewhat overdue and makes a concrete improvement to NMI
handling on recent AMD hardware.

v6:
 * Plumb through svm_{get,set}set_interrupt_shadow() so that emulated IRET
   works, as requested several times during review of earlier revisions.
 * Expand the commit message

The !vNMI case is even more broken than I'd realised.  Besides the "what if
the IRET faults?" problem, svm_enable_intr_window() basically ignores the NMI
case and simply re-enters the VM.  This causes the pending NMI to only be
injected next time there is a VMExit.
---
 xen/arch/x86/hvm/svm/intr.c | 19 +++++++++++++++++++
 xen/arch/x86/hvm/svm/svm.c  | 23 +++++++++++++++++------
 xen/arch/x86/hvm/svm/vmcb.c |  2 ++
 3 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
index 6453a46b8508..cf0621d2f628 100644
--- a/xen/arch/x86/hvm/svm/intr.c
+++ b/xen/arch/x86/hvm/svm/intr.c
@@ -33,6 +33,12 @@ static void svm_inject_nmi(struct vcpu *v)
     u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
     intinfo_t event;
 
+    if ( vmcb->_vintr.fields.vnmi_enable )
+    {
+        vmcb->_vintr.fields.vnmi_pending = true;
+        return;
+    }
+
     event.raw = 0;
     event.v = true;
     event.type = X86_ET_NMI;
@@ -142,6 +148,19 @@ void asmlinkage svm_intr_assist(void)
             return;
 
         intblk = hvm_interrupt_blocked(v, intack);
+
+        /*
+         * When vNMI is active, NMIs can be injected by setting vnmi_pending
+         * and hardware will deliver them at the next appropriate opportunity.
+         * Consider them not blocked, to avoid trying to open an NMI Window.
+         *
+         * Correctness here relies on the fact that all vNMI capable hardware
+         * has vGIF, and vGIF is always activated when appropriate.
+         */
+        if ( intblk == hvm_intblk_nmi_iret &&
+             vmcb->_vintr.fields.vnmi_enable )
+            intblk = hvm_intblk_none;
+
         if ( intblk == hvm_intblk_svm_gif )
         {
             ASSERT(nestedhvm_enabled(v->domain));
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index f49d2ebbfdd5..49fcdd906cf8 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -499,7 +499,9 @@ static unsigned cf_check int svm_get_interrupt_shadow(struct vcpu *v)
     if ( vmcb->int_stat.intr_shadow )
         intr_shadow |= HVM_INTR_SHADOW_MOV_SS | HVM_INTR_SHADOW_STI;
 
-    if ( vmcb_get_general1_intercepts(vmcb) & GENERAL1_INTERCEPT_IRET )
+    if ( vmcb->_vintr.fields.vnmi_enable
+         ? vmcb->_vintr.fields.vnmi_blocking
+         : (vmcb_get_general1_intercepts(vmcb) & GENERAL1_INTERCEPT_IRET) )
         intr_shadow |= HVM_INTR_SHADOW_NMI;
 
     return intr_shadow;
@@ -509,15 +511,23 @@ static void cf_check svm_set_interrupt_shadow(
     struct vcpu *v, unsigned int intr_shadow)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
-    u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
+    bool block_nmi = intr_shadow & HVM_INTR_SHADOW_NMI;
 
     vmcb->int_stat.intr_shadow =
         !!(intr_shadow & (HVM_INTR_SHADOW_MOV_SS|HVM_INTR_SHADOW_STI));
 
-    general1_intercepts &= ~GENERAL1_INTERCEPT_IRET;
-    if ( intr_shadow & HVM_INTR_SHADOW_NMI )
-        general1_intercepts |= GENERAL1_INTERCEPT_IRET;
-    vmcb_set_general1_intercepts(vmcb, general1_intercepts);
+    if ( vmcb->_vintr.fields.vnmi_enable )
+        vmcb->_vintr.fields.vnmi_blocking = block_nmi;
+    else
+    {
+        uint32_t gen1 = vmcb_get_general1_intercepts(vmcb);
+
+        gen1 &= ~GENERAL1_INTERCEPT_IRET;
+        if ( block_nmi )
+            gen1 |= GENERAL1_INTERCEPT_IRET;
+
+        vmcb_set_general1_intercepts(vmcb, gen1);
+    }
 }
 
 static int cf_check svm_guest_x86_mode(struct vcpu *v)
@@ -2460,6 +2470,7 @@ const struct hvm_function_table * __init start_svm(void)
     P(cpu_has_tsc_ratio, "TSC Rate MSR");
     P(cpu_has_svm_sss, "NPT Supervisor Shadow Stack");
     P(cpu_has_svm_spec_ctrl, "MSR_SPEC_CTRL virtualisation");
+    P(cpu_has_svm_vnmi, "Virtual NMI");
     P(cpu_has_svm_bus_lock, "Bus Lock Filter");
 #undef P
 
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index 514e530cbda7..975a1eaef806 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -185,6 +185,8 @@ static int construct_vmcb(struct vcpu *v)
     if ( default_xen_spec_ctrl == SPEC_CTRL_STIBP )
         v->arch.msrs->spec_ctrl.raw = SPEC_CTRL_STIBP;
 
+    vmcb->_vintr.fields.vnmi_enable = cpu_has_svm_vnmi;
+
     return 0;
 }
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 14 18:07:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 18:07:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309162.1580278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNaTP-0003nH-H2; Thu, 14 May 2026 18:07:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309162.1580278; Thu, 14 May 2026 18:07:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNaTP-0003nA-Da; Thu, 14 May 2026 18:07:51 +0000
Received: by outflank-mailman (input) for mailman id 1309162;
 Thu, 14 May 2026 18:07:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wNaTN-0003n4-Jd
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 18:07:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNaTN-0000l9-0b
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 20:07:49 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a060f3b-5cb7-0a2a0a5109dd-0a2a4507d666-42
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 20:07:48 +0200
Received: from [52.101.53.70]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a060f73-229c-0a2a45070019-34653546a4dc-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 20:07:48 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA3PR03MB7346.namprd03.prod.outlook.com (2603:10b6:806:382::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Thu, 14 May
 2026 18:07:45 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9913.009; Thu, 14 May 2026
 18:07:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Puy3Wjgq6JA6qYk1T4i+VIaipOnaqfPgxlbcjSYGa3euR0OkAEkHXiaDE/h0OwQ/h/19LpBEO+xy6Owl2L+cpCUIVpwG7ygfZ79+q1dk0z9Iy5bmf6wQpmUFuk0exwgYfKLnGR+SPsdUJiWypJYO3GdcfZ0xpU9TAjKJJXXNODaOQq+C/SLRix2TWX1oOkB/xtdnxJbJEinoUVTul0PmMVU76Wyp06YA4swnAfG1itdhgRsEQUf+w62KHtCWiX5gZ3JfUoqwpCRIzf7joFjg3+EIIbJEKZaLtXkIR6CfCEuHgDcsyAeFa+b573S9Liheftw6gskCrIxIO54aoifZzw==
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=gqlB1iEE+XpADb0XMiExpDYTQYTPBQSjBhwLyUp5vMA=;
 b=reH1IOLhuGHtEJ+n43Ghbs6L6SvpBTSctNSbdKuzSFgA+RHkHYqXGo9NIjeFYNo3F3a5RGDHeo/Gr53MEQ39+1eKwZKN1U4FbQGkGvxpATmc08HSxpr7DuLdGC2oJDFDm5I3EFY7Ydtxr7Z8IJghXkBKvMQ3TnUyC6ywJSrFoaohdaUwBZQtkpIL8GsB2KYXJuaYNp1tMDZ+zq1a5Uqb0R8MK3rgc9ri6612YG2ZhvVMT7NJr3V7fQ6r3usoykkh30Qm33uNDzNBIGyp0V+2sHkLBPYgPU+iLoERT5FSHGvgEaNvPD8rapbjmrbqV32ByxuJcEOXZ7Bzsm75/mNXLA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gqlB1iEE+XpADb0XMiExpDYTQYTPBQSjBhwLyUp5vMA=;
 b=OU6GDLfq3L/sHUS5gcA1PZV+/ImfznRUpwKRCK7bjNUNIFHpNVxxCTKNbJ8779IN/Nxu5uhRu94ggpBMMZ7vieA82y0bZT+wPzP5yVeOsyBDcoOgkv3LNNrXVOrUJtlEu/uh7COE9Q58iDyjBDLAV4v+0fqFHnfsI+4p2vRbF5o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <7ef99f0e-2847-49d8-8701-8243e4b073ed@citrix.com>
Date: Thu, 14 May 2026 19:07:40 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH] crypto/vmac: adjust for Misra C:2012 rule 17.5
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <036752dc-5333-4d01-acaf-ed450e09fe48@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <036752dc-5333-4d01-acaf-ed450e09fe48@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0474.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a8::11) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA3PR03MB7346:EE_
X-MS-Office365-Filtering-Correlation-Id: 9f252fe5-2e34-429f-75be-08deb1e3b246
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|22082099003|18002099003|56012099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	qID5mEFutlJnFbPMllt6az8J73D2cf7mihkHI9rpp4Hl0qMNIQTbpNyC3xPXeuyhrv5Hmje2EPhH1LcAQotBRfENHtmHOM9aiSyA/yMuRPgQVp43qEpA2os+SE5yrcm4WY+XMClTcQplZwvMFI0KSE+kmer0tSuOphrUM5FKCDjaByaZ5rLp2wOyMUfs/hQveCh28wkCPWxmWAN7fQGVXNCy/KVgqaJx5S0Qo0L953Bod/XCbTOjp28NDU2XTt+cEjzrbPNcjCLO9PyS6mzqWpFmAbobwSnXlsnnPi0scSFGAj44yqgdXQR16579zZSys5UUJtHQDSCwSH5ognU+1KOr7QMI+1ikN+PX6hfaJuDer7kGKIdL6Hh55cfo2xyln+DuQhkmLNwOFMM/mLdfWJ5dL6M7Otcdn22Quaqa4gWW+j1syMUVpmUTWYDGrxTQjg2R0VxdHCmOUMYFMsT0+eUDfxSIHdydjCWoUkWOuB2/0GZyRTUVZ/ME9aP5Rp2WT0wYG818xe2Hok99iqkjRf9KPyqUXGfnlZYGBdAumzBxI9Oo+o8JZYusBrGapogR4Pwzn0IQcVwR6R3z5Cw7PyQexlq5E28t/QmQ+Iy55d23jpca3tCKxiY0Cv5Tbupsmw870gSeg4waB6FJpB6Nai9Dmk/yqZ+SdnZ8SkmsMZSxbD8QHHgPvKrlKKLbKr+s
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(22082099003)(18002099003)(56012099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NU52L3ByRUM3d2lYVng2a2luNXdMcUtiUHkxUlR1dHhzQW5RV1ZLTU5MMWg2?=
 =?utf-8?B?YU5OdkxURmp5cHVteXJFZmJ5M1ZkNHRKazVKaUlteHdMRzg5MGJ4NEdldzdX?=
 =?utf-8?B?UUVIRXRqZDBiOEpmS0FIOTU0V3J5a1FxUDFHK2VmM1dINkZWNmg2Y3NublJz?=
 =?utf-8?B?UkpTemJzcllQdWVwbTFrcnNNeDd1a0VPSzJyaElsN3NZUHU5eENhemZtT3Nn?=
 =?utf-8?B?b0tUd3RMSndvUGdxS0J1NlowTEpOVzZ4anQ4bzFxS3ZETW9hZ0ZVWGU0eUVn?=
 =?utf-8?B?cGJNRU00dk1OMW9FcEpBenFjMGV0ZWZWcVZtcjh6TmJMR3RkUEc0V0VKRGJB?=
 =?utf-8?B?bml5bmIvdUFXazVMMTdqV0hwMC9KQWRaSk5QZlVsckRrNnh2WkhEUWtGUGtV?=
 =?utf-8?B?Sm1YTWtyeFBGUkg1eHpTSjFrdlN5LzBtTXdoZmVBUzZlNXVWS2FnOVcvUFlk?=
 =?utf-8?B?aFFqUjNOS3VoTE0wU3o4NWxLOTBRRGN1cU4zVFA4bUVFQThEb3NtQkJ3R21Z?=
 =?utf-8?B?d3pQbjZ0Y21WZytOMDlYeUtPT2RuWlJTalFwT1ZCK3F2Y0FBaEhMZFc5YUx2?=
 =?utf-8?B?aXhObnRabkVKWStIZ0M2d002MTFNc1hwczhTYXRFNjY2ektDTjhKL1o4VFkz?=
 =?utf-8?B?MmliQm1mVGYyL3hPNHloN3JTK3NZNDA0eEtQWTBkWFdjZkRVbnFlMjBULytE?=
 =?utf-8?B?bE00WGpQSkNUMmRTVXdRVkE4aVE2Q1VTKzQ5bkw1N3cwY1RDN0dGMkJOSW54?=
 =?utf-8?B?MDRkQlJENERrU0t4UXZZcjhTZjZWSmpUeC9RbElhMmZ1cXBZUmgzYVREaFdU?=
 =?utf-8?B?RmxPWW1NdmJXOWhWQWozTUJrMWJsSG5oVUlwWndTaDkyMHp6VXhiNGh5OU4w?=
 =?utf-8?B?Zm1wTjRGRFhWVnJuVGR0ZkZhSUcvbUdmeEpHWDBZMnh0Ylh0S1BneExOY0dM?=
 =?utf-8?B?cnZRaGhIdTNaeTYzOE5NSzRNWWJwYmJ4RXI2YVJWZE5iSkNPeTdicEEyckta?=
 =?utf-8?B?U012VWF0MlhSd1kxR1VEeVB0ZmpWKzU0UlQyTVg3WDhqZ1VXM05RNWgrOHVk?=
 =?utf-8?B?R1RHQVBMQ2dtRG03OUtERWFFWDY2QnFPK2o1ZmVtUmtoZlhzMWZkWEt5Z3Nk?=
 =?utf-8?B?YTB2cEhmMUpTd2tGZ2RvVHBIYzZaYWd3YlNVdHJ0OHg4cjFiWlpiRUdPUnpU?=
 =?utf-8?B?cE43N1FVdlgvNk9wNkFNTGNFTDZNbHZoZ1Y0NWRYN1FkTUI1ZkxsUVE0L1JY?=
 =?utf-8?B?akkzTkIzUVpDTFVnN0lKZVZKQWZQbDFEenhqbTdUNHZDY2tEZmtSTFc4Q3Jo?=
 =?utf-8?B?UkcyUlBDYWVQeVBmMmdqRkJVWFhQSXp1WUp2aXlaTTkzN3BTaVM5alFYS2cx?=
 =?utf-8?B?cGFxOFZKNTM2ek5FRUlmZHhscWNFaWs2VmRJeE1DMk1VNE55TENNNGM0RWJY?=
 =?utf-8?B?SHZOck4xelM5VjBMeU9SS1FGdlRKNXlCbGNZaDYvbXFDamJuVmpDMmZBVUhM?=
 =?utf-8?B?TDZXS2ticjA3WjBJVVQxb2pKeC9DazF5WGYrbWdwZkVpcjZHbW1TcVVQVTNL?=
 =?utf-8?B?bzJFenA2SlozdTdleVVuQ0lHTUJxOS9zcGUrNVhiNUY0WkQ1MFpzbFFNMmlU?=
 =?utf-8?B?RGNnaXN1VEV4VXNlOEFON3J4V2swOC83bnArYnRLOUpFWC9iVTBFUVkxczVH?=
 =?utf-8?B?Y01pZGdCeVQ4RE56U25XK2xYS1gvZlVrV2dxSSt2MEVwSGNDMThyRWpVVDg0?=
 =?utf-8?B?UmptV0JDNjFaR2RaajhsVEF4L3h1Z3A1dVc0dElxQ01FbW4yc2R3NktFYjcx?=
 =?utf-8?B?TmdaVFNqcms2dVdFNExhaldGcFh5YUpRZXFTSWJlV1BWWXh1ZDROTnk1ckpN?=
 =?utf-8?B?NXV1S1RRNDdyQ1UzOGxCcXlxNzhwN3piNzEyVjR5QzVIME8rRHAzMnhsSXZ5?=
 =?utf-8?B?UEl1ZjRkZzlSRlQxVnBobndROE9sd3J3ajlUSldMY1V0QVAvZXNPcUV2UXJL?=
 =?utf-8?B?YVM5M0hBQ3lCVkhxeHVBdnFONCszYW1BbVNvdkYzWGVwNlhrQ1BOUG85UVpx?=
 =?utf-8?B?R2QvOUNUaWVBNnZPR09XQzZwVjdmRFR5RC9QWDJvdkRzZEh3UXFLazU3SlR3?=
 =?utf-8?B?TXA4RDN4M3dKTjBQL2ZGYXpGVjBDS2grOUVqQzlzbVZVYWhUMHBFdldMbWRr?=
 =?utf-8?B?MDFZTTREZXYvdmgyYTdXUFByTXdYYkVKNGpvS1hGbStSblhzSy9SL2xibUNt?=
 =?utf-8?B?RlNGUFg0dmhDVndvUEpOVEx4TEQxODMwVlpZM3d4Ujh2dW5vYWZBWlZ0dVdM?=
 =?utf-8?B?YStpYnN3amt3TGIyR25yUE5aQmFheTZmU2FLRFpNTmV2RUwwdVJNNWRnUm5E?=
 =?utf-8?Q?5+geGOKtDlTdWP38=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9f252fe5-2e34-429f-75be-08deb1e3b246
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 18:07:44.0764
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: PdmGsU1kuP0ZPrGa4pxuPpxguCELsSwYEd3i1w2Mc9yq0oSwQi6hz6doGWGIFq4M4t70oQ06eF9p07Ks15D+cpu1sZTWWtqjPPI8Y+517zw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB7346
X-purgate-ID: tlsNG-ef75cf/1778782068-22772C48-3781E648/0/0
X-purgate-type: clean
X-purgate-size: 501

On 13/05/2026 4:51 pm, Jan Beulich wrote:
> ... ("The function argument corresponding to a parameter declared to have
> an array type shall have an appropriate number of elements"). Instead of
> casts, (ab)use unions.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

The Rule 17.5 violations aren't reported against this function.  They
look to be addressed by one of your other patches.

Which rules is this addressing?  I can't locate anything referencing
this function.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu May 14 18:11:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 18:11:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309173.1580287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNaWw-0005KS-3Z; Thu, 14 May 2026 18:11:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309173.1580287; Thu, 14 May 2026 18:11:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNaWv-0005KL-WE; Thu, 14 May 2026 18:11:30 +0000
Received: by outflank-mailman (input) for mailman id 1309173;
 Thu, 14 May 2026 18:11:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wNaWu-0005KF-DJ
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 18:11:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNaWt-00Aw7h-MI
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 20:11:27 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a06102c-2eae-0a2a0a5409dd-0a2a4509d8c2-30
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 20:11:27 +0200
Received: from [52.101.61.46]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a06104d-2497-0a2a45090019-34653d2e3c1a-3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 20:11:27 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA3PR03MB7346.namprd03.prod.outlook.com (2603:10b6:806:382::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Thu, 14 May
 2026 18:11:15 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9913.009; Thu, 14 May 2026
 18:11:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mvYu55EFvhvsUU2Pkb4/eo6BcVYMRilChQ33Pi+VjminS+wjiip4LBiVR/DJDx3lPTdzuYwtn6qsrwmL+OwKm4oBkeU1295ESLvhHQ9EA8A1ONAF5izzEr22SPm9y8t/pkVLE+xR85dwmMPYBIJ58OJL7+PeQJmSRh9U92F3aFZAg/7cFDG2QCHs/wyy4WSLO5L8VuEwDNHXWdNz87h2wNSEV4lCWUkWMxiUMQu+etkOOhd3uqy8a2Q+OH1P6rxypyltdJI6O4PKCYw3u9Eh1jo2hIHBh2pVXslHYOYq5Dol+igyeP22EDzCFbkvM+MZMJ70pYT1E7hZQhqqmF07Ng==
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=ea9tIECBFH5f4r66FjFuNv8xb8HkCQaZdJeVGzOk1mw=;
 b=hGG4Wb7p7Oif1qfdnKTqc0lmFHqH/55WuDUn5yB7ArsJvmlQQQ97XExDk0KWIo6w8NwieVXy826k1kC4eHVybx81k0Yu4kgndIQ2NT7Ip5U219+GdPRtkmybklGsnKWb520WEFCU96B4Eg+0vdg25yTpg5mqucWxK4hHR9Euc3RAq+N0iRJfBk+skghTu9yXD/3GxtaixDUfvJJiXhW6Jdqakusi0qWQ+H8Npvvvb/WIsFU0wKLs/2Zpa4rPEvbJnOg88We0OE7cy0x0cw2wTz2mw9Yk9b5D5NXMBKfYXM+KAisshUmzyiLFPJ885Naga407Rgr6FrtXbu5K0B7OQQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ea9tIECBFH5f4r66FjFuNv8xb8HkCQaZdJeVGzOk1mw=;
 b=wOnFOHaCIDtRh2cQ1G8t9n9EdYtdlsBnWzcoq5lPEdo6n3KfziExYX0SYY9tisoN7CwXAdLMQHI/DrhXQ7Cnd2JYSpOd0kuqXFBENyrG/m8jFomadDCGU2Sn/dIbQTsg4Ek2krsob5gteUUuXOPJ/Ui7YkAS6Rv1Gpo26Mm11OM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <1f8c7aef-1432-4026-b97a-acf9a3d06330@citrix.com>
Date: Thu, 14 May 2026 19:11:11 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH 2/2] crypto/rijndael: adjust for Misra C:2012 rule 8.3
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <13ca5f9f-d985-41bf-9c30-afd657dade89@suse.com>
 <3ca0351a-8be9-4b3b-989f-0ba004fada2f@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <3ca0351a-8be9-4b3b-989f-0ba004fada2f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0188.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:311::17) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA3PR03MB7346:EE_
X-MS-Office365-Filtering-Correlation-Id: 4e8473fd-b220-4f35-f9de-08deb1e4301d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|4143699003|22082099003|18002099003|56012099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	fuRLWNmRncmOX80SNsu8teLhisbDl8EHbSP3GbtDtK1DFpfWzxyWz3cE52xLOVcdlWsVnwe+ZVvbaq1hDh7zDFP0Ajm7/S/+lDHLyAYJSmzHTQW+8Kw87nghGJ1+ctzJ3fbYNyugLh0/dJEz9HoNno9l2fkB0JzR/W4nLy5oCWjrsV247bOBXDM/sK4lr5zABknFyi//qHQ1ozKykZMNs2hAEo7+5EFSc+ZmRS+XX99ToXZplpwR2L3l+e7i9CcPzSWwKrie/9GqyumR12w7l6L6p76BDNa2M+ng061C8GNSOUw+/7xBGx6b/Ypcm4wWPhepBrPM+fc8il3kMSVWDtCb+FTIXcDB80q6HnGfIHam2mqh63OAwDHY2/i+tuZoVMFvmZGsi/fOInkBF21Rp5NH+YIIBUqLmEdzie1ztzMPiYL7UQk7sl+zEgWsDKQn7VcnXFh2pP558yflk9p6Z+fZAnmzTTz9yquDat68cTHROY5Za1LMIcScejBQddj2Na0/19UBrGoW+qz+42snZrg6bJYBxhedPr+YMOeRLNpJpn16SOSKq9u52anNvZQvn2dg//kuMX5G9vYNZZAxzHbYA0GxDG1LkGMeBwAIc61vy2g9g5a0QW2HEl6XOGmvOHhMz9zphvN+30kCpNaztiJh4CHrPr2dXcD7aQnu7RjdoSoX1pbFppEsdlL2NM6l
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(4143699003)(22082099003)(18002099003)(56012099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?enQwK0pnS21DcUxoMzVqTzlFUURkbzd2aXZQTFdITklkZFc1SUhtSjRURVlX?=
 =?utf-8?B?c0MvcGtiSlZqd0hyOXlwT1prZ3FKUW0vUG0va0RwQmpVU25nQjVzWlJ4aGpB?=
 =?utf-8?B?VlA5T2trTUtFcjEyTVpnbGVIZS9pYUFKaUl1eWl5OERZYmxMdGNNdHNyV0xE?=
 =?utf-8?B?OTBjVmVtbmliRkQvRXRZaFN2Q1FlV0gyUHZMMmxYa1FrZS9PYWlmWjcxRWhn?=
 =?utf-8?B?OVBkZFgyRjk4VXNuTUxSdjBTY1ZRRTc5aG5NL21oQVNBNmFlRmllVURFNlRV?=
 =?utf-8?B?N2cwU1VaeGlDbVNscjhhMXFtTnRSYVRSWXRtV002T0xqaURvU0RGbkNLNDl1?=
 =?utf-8?B?WjVraGVIa3EzOUFTY0t1S0MwaU1nbzNzelBTL2dQMlVpbHMrc2h6bjJxNVdx?=
 =?utf-8?B?K2VML2NnM0NTa3lTT0ZYZUxqZEl6aHl2OUpyNmJSaitwcUVsVm5FZlhwckVR?=
 =?utf-8?B?MDJvbGxpeStPd1VKbTEwaTV1c0RnYjZPblhiYlhSc2tXQ1pKUHhQSmpNVkhj?=
 =?utf-8?B?YmlWMEVaUmFHOThjdHdQTTI3YXpzYmx0aGxSNmczQVNjaGk4SDUrSjl4QzlQ?=
 =?utf-8?B?UGN3MEU3THA3M0k4UnpWR1VXcFNlK1MwN3R4ZWpNRDJ4ektmSGsyU2FWdldR?=
 =?utf-8?B?ci84azFRaGJ1dXd3eC9ncE9XbktoTElUSFF2L1EwcVlCdU5UY2VYZXc1WDRM?=
 =?utf-8?B?NW00eXoyME01Q3QwSmd0ZHlDQzdGTitVMFVQTmhhUE1rSTd0MzJpMEppTnZT?=
 =?utf-8?B?a2ErWUE1M1JPdFZaMks5RU9rRGxZUlNPZ0svT0gwSGY4NjZPS3RZRjdUUTcz?=
 =?utf-8?B?VGtIVmhKNTN3NUJQZlFqRlU1c1Bva2VjL0RBV0dpVU1aZk9LUVZVcUhYaXY4?=
 =?utf-8?B?cTF2TkJLVnVVdjdjM1ZQTEY4RUhHRFoxRExuLzhSZE5vdkV2MWpRbWYwdUhO?=
 =?utf-8?B?MWx2aTdBZk95c05CTWE2ZW9nT3hUb1g0YnJGQlR3eFMrbCtRWTNjV2NoOHZR?=
 =?utf-8?B?dkxmbHRzOFpiK3crU1ZjVVlxY1hvaXE4Z1VoUE5NVlFsRWNwY0FPMTk1bENP?=
 =?utf-8?B?cW5zcFJkV002TW1ReHR1aEgvRityK1k3b2lLTHo2N28xdVdNekxmTmxKYjZO?=
 =?utf-8?B?L1BtL2lWbUl1a09EcXc4bEM5VVg1UDhBUlphVFJrWENEVGtZZzN2U3Nac1Vw?=
 =?utf-8?B?SXpML3VkL21FbE5tYno3TnBOVWg1OE95VHUxLzZMc2NtT3h1SGNSLytOZm9M?=
 =?utf-8?B?My8yd24zVGxhRnNSSDgvYVhTUHNpWGorYmNIcndrZWtBc3I3Tm16V0ljY2py?=
 =?utf-8?B?ZDZ1V1YrWFN2KzY2RVZrWi95UHVVR0hWZDgyTXR1dlZ3NkFjZXQ3TU9Ybi90?=
 =?utf-8?B?M0FDQ3FCVjFqY1V4RmFtU3pOSHBxR2J4cGhzRm5HcW8wL1RGNkRHRHRTY0lN?=
 =?utf-8?B?Z0l2V1dsdGVwRmpiK1p0eTJxdHJkVU5NVTV5ZU1GSlduT1Z0VFpseFFWdDhN?=
 =?utf-8?B?T1grTmRTcnIyeUYwSU52dGlvaCs0ZkNaNURuK2l5Z2FZRFB6d0dJaUFMa3pw?=
 =?utf-8?B?dVpUdGNHR3h4UGJIaDE1ZkhxenppbVd3QWlJK1R3UGMxV1lEMjBNMS9ESXV0?=
 =?utf-8?B?N2pyRkQwSndTbkhhM3pxQU16UlZ6eXRlV0dMWHU5R2pPaWMrcUpwWHlDU0ov?=
 =?utf-8?B?ZVpYZndSam03YUtBeVA5RE12bnM2WkZvWWJtMGRtcm1yaHJFU0pNZE13V3dv?=
 =?utf-8?B?c2RYdnllQmJoY1g5eFhDaFJ5NCtLVTEvdzQ3UGt0QVNCbEpENml2Y2piNnB5?=
 =?utf-8?B?SXQ3czFxSm1VbmJmbXJBbWlZaXlOUnlQWWdpWXk0ZEN3YUNodDU2a1dpWnJh?=
 =?utf-8?B?eFBVdmJQSVNTUnlONnZxdHU2QWdZNXNkTzFXZHBOQThyTzh4dVgvME1OQnFh?=
 =?utf-8?B?L3dya1Z2K1ZWUyt3R21ENG5jSHJxeEdlMDFKUGZhU04wVStLNmdkUlVNbHRV?=
 =?utf-8?B?RW5KUjU0L0pHMWZOSzBzeWhVUUxzaGNqeHhDZngreXhoL0JLb3Nsc3A2Ri9I?=
 =?utf-8?B?SG1LR2w4M3dLSmtheUUySlFHU1FBLzRvbkZvZ0VDbDE3U0dTK0ovOUZ6Zzdh?=
 =?utf-8?B?c2ZkZy9BZzBwTThGa2MzMjJ5TFRTWHdiYTNZaU9RSngybUlIaHN6eTR4MVBm?=
 =?utf-8?B?NkZRdkxETERoWHVKNlJQdzNySWZOVGlDWitCMzFpUFkwYWJneGFWVCtDaHVm?=
 =?utf-8?B?dEZBbWNxaENyVGJ0M3lqZEdrbTZ6SHZSbVJzVUFqUU1QaHFUNUh2ZTdsZ2Vx?=
 =?utf-8?B?NThRSy9OZ2VSMURWYVZ5MXQvczdBR0ZEd2xyZVFLL2MvM1o3aGNKaTJJVWgr?=
 =?utf-8?Q?tPC1wownHLUKuwts=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4e8473fd-b220-4f35-f9de-08deb1e4301d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 18:11:15.1892
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pwzQfrSktOYwS/1iIWcikbBung+1ozdsqfqxjUdZd/MUehJi7aVoppp6UZ2GWfvFbLE7SNkhHQmLPIWhIEvfg41HHs9YYYL/5wkGB+IXRCI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB7346
X-purgate-ID: tlsNG-bad1c0/1778782287-88970A53-333DEADE/0/0
X-purgate-type: clean
X-purgate-size: 1720

On 13/05/2026 3:01 pm, Jan Beulich wrote:
> ... ("All declarations of an object or function shall use the same names
> and type qualifiers"). Bring declarations in line with the corresponding
> definitions, accepting the use of the being-phased-out u<N> types. While
> we don't define NEED_RIJNDAEL_DECRYPT, cover rijndaelKeySetupDec() as
> well for completeness.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>
> --- a/xen/include/crypto/rijndael.h
> +++ b/xen/include/crypto/rijndael.h
> @@ -50,9 +50,8 @@ int	rijndael_set_key_enc_only(rijndael_c
>  void	rijndael_decrypt(rijndael_ctx *ctx, const unsigned char *src, unsigned char *dst);
>  void	rijndael_encrypt(rijndael_ctx *ctx, const unsigned char *src, unsigned char *dst);
>  
> -int	rijndaelKeySetupEnc(unsigned int rk[], const unsigned char cipherKey[], int keyBits);
> -int	rijndaelKeySetupDec(unsigned int rk[], const unsigned char cipkerKey[], int keyBits);
> -void	rijndaelEncrypt(const unsigned int rk[], int Nr, const unsigned char pt[16],
> -			unsigned char ct[16]);
> +int	rijndaelKeySetupEnc(u32 rk[], const u8 cipherKey[], int keyBits);
> +int	rijndaelKeySetupDec(u32 rk[], const u8 cipkerKey[], int keyBits);
> +void	rijndaelEncrypt(const u32 rk[], int Nr, const u8 pt[16], u8 ct[16]);
>  
>  #endif /* __RIJNDAEL_H */
>

Hmm.

The rijndael_encrypt() in context is a trivial wrapper of
rijndaelEncrypt() using rijndael_ctx.  The only user is VMAC which
defines aes_encryption() in terms of rijndaelEncrypt(), making
rijndael_encrypt() dead code.  The decrypt side is even deader code.

It might be worth taking this patch in the short term, but I think we
could get away with a lot of deletion.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu May 14 23:23:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 23:23:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309279.1580312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNfP4-0005fM-EY; Thu, 14 May 2026 23:23:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309279.1580312; Thu, 14 May 2026 23:23:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNfP4-0005f3-9d; Thu, 14 May 2026 23:23:42 +0000
Received: by outflank-mailman (input) for mailman id 1309279;
 Thu, 14 May 2026 23:23:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wNfP2-0005ex-Fr
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 23:23:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNfP1-00GAkW-Rv
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 01:23:39 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a06594e-bab6-0a2a0a5309dd-0a2a450284ae-40
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 01:23:38 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a065977-af86-0a2a45020019-94a392174012-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 01:23:36 +0200
Received: from pps.filterd (m0482517.ppops.net [127.0.0.1])
 by m0482517.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 64EJ0JkU1662698
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 16:23:34 -0700
Received: from bl0pr03cu003.outbound.protection.outlook.com
 (mail-eastusazon11012050.outbound.protection.outlook.com [52.101.53.50])
 by m0482517.ppops.net (PPS) with ESMTPS id 4e5m601rej-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 16:23:33 -0700 (PDT)
Received: from BYAPR06CA0036.namprd06.prod.outlook.com (2603:10b6:a03:d4::49)
 by DS4PR16MB6827.namprd16.prod.outlook.com (2603:10b6:8:31d::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.15; Thu, 14 May
 2026 23:23:30 +0000
Received: from BY1PEPF0001AE19.namprd04.prod.outlook.com
 (2603:10b6:a03:d4:cafe::45) by BYAPR06CA0036.outlook.office365.com
 (2603:10b6:a03:d4::49) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.19 via Frontend Transport; Thu, 14
 May 2026 23:23:30 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 BY1PEPF0001AE19.mail.protection.outlook.com (10.167.242.101) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Thu, 14 May 2026 23:23:29 +0000
Received: from pps.filterd (m0426315.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64EMmgcm3348713
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 19:23:28 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4e5m0yg904-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 19:23:28 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id NfOnwIgnO9jbENfOow9sKa; Thu, 14 May 2026 23:23:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=ATB
	xlQzkMlBBhqJUrtzKUv1/x2JD0iJCkLqU8uZ7htY=; b=PTGf+2OGtNfZi5NFqLt
	kWuF/WeZ1nzwGlsxKYUMdzMPxncjiu0cVDkXp1P3bEF6QvUpuYNW4gT/TEIvp8y4
	QNZqnZWA/9uUZFAHpgkRiYJxesb/gxXoQiWwrQRhD03ndjix6HsQUb6WySYcTsfh
	BKPpaVx4m4kCqUtVFU9OlUS604X3QJ4nsPbd5t3aMD6c7VKHshkeg3KTJiWJptO0
	kVEsie4xRasZ6j6nS52B3yXqto8IahwoNNS6aFKOZia7mEMPVv6zkHiPmqtNWlZx
	IIylqVoU4BRljmq8CsGIi/QGPdvR/2V3rCx0CgC/J19n81CEeAXIpruNk0+UA1J3
	cHg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S046uC7U5PMXD76lUwajfyb6ex77L0FOtToPV0wswB0hq/fsHT9zDXJKCT+GzXpqWg9OgXtTxfEcUKJwMLx92r0ivR+78RCpfR0jPkuu7VajMLv5O+NhY3n0IC5LSRTxKWNOp6RtTLltn3pA1/b8C1bUJ51STM7TXKofCyMiys+LddbsX9MnzCfMyKYY50AA1Ks3nlyc2raaMG/lFbQIPvmOganTcgqywebCSmh3crmT39B2NkiOR78GwqbspQ+yn6ZI6pBPWoUSVsquM9YtZ4reGAxEFLGtXk2tVhSOQsvbnjoGTevm/xXg3e1S5RJJHuAemUfMnECC/QpKHBLCqw==
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=ATBxlQzkMlBBhqJUrtzKUv1/x2JD0iJCkLqU8uZ7htY=;
 b=EX2RHqJhP6UcgzwIicNemYP8W6CUdx/txpmcATj9V2iYeKK+UCe6kye3M6ugDIS9Xw5frHwWXhha/W/fK5HgmTzTXc+8ZD/rvPz1ntuB+mWRwvAhBnDc7tWE0PbJRroqeKR2yp49o0ep2T4uYynAdmyulo8H6ALeuVF4Mvtpp4Y56FKufYUDh86nTkIdXEE6MfKNDpoyaoYSucn2A3yT8HXCiPzIuz5yaooVIcTguxqxcz16zxK71jqDmZ5O37PkcItoAcH8q9hCREV95GmBOJ4srpe6IH3kc0Kpu5HYY0gH48hXpPkB053FHE7TPXjcrVn4owyeaGsNB/jaAcEqmw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ATBxlQzkMlBBhqJUrtzKUv1/x2JD0iJCkLqU8uZ7htY=;
 b=DSBoGEfqQjOBeYmHf4b1ug2EI1dhuk1ASuaqd64Jaux5hmMBFRDQEQWFALWHdzN/Nh9vopYVKed+XeKgcQQ07V3ss54mS85rplvVqHHOxteXeMvoW9vJ2fgqvNW1wxpU9xhDyJ13RzYfHI1hc6KvjWqTLHnQr61aiCOn/1KpeoM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:content-type
	:date:from:in-reply-to:message-id:mime-version:references
	:subject:to; s=ppserprodsaar; bh=ATBxlQzkMlBBhqJUrtzKUv1/x2JD0iJ
	CkLqU8uZ7htY=; b=fOAYcCaB2eu6gEo9hW7nIinDJXBeERWFpp2YbWwJWbl6e6c
	aEyNiWpox0oKP9GcGWOEqGJYM3L4WAqiyn+/w9mKQAAe7TAp8kTZu9KF30OJvF+c
	mm+cN+70fxTEFe3VS615SMLO/cvMMojmF/JyRTZ3NnX9BS2ZlkgulkoXTDbpauFo
	VRc16eB7NaHDswVPBHE7Ctux1iWijFymZqPBZr4NVej48St89rDlvfC8xXL3upoa
	wgfne9kpnfAOMV06qxfpd4lwos4rIqZcPlP+9v+SfUw8VeEL8TCPLb06La6leHx5
	Zw+HGsZSoiYqX9C4F1qJA/L9BPB75DBaipMRUjA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppfserpocford;
	 bh=ATBxlQzkMlBBhqJUrtzKUv1/x2JD0iJCkLqU8uZ7htY=; b=EQ1H6pQm4R7Z
	lu8N5cy3JsXRhJUXdesnxXjoJ6L9bJJBSsGqdQO7L1Z4KMe9e+WRqm0DRx6Nb+kZ
	EjaeWdqdWTkxiPzAJzhKDp96mbpvKQC/7t/yNmmHg4oIHycpiHkzOjM39T7TxpZ5
	BkqkFmM4bSKNZdJwrUDsD95syS7HAb0VFXilv0vgzPhOZDqTre/JeteB+NsdQgJH
	SHOKGbLUcGUQwx4ZyKQGcQF/xEFlznefL2ILyfDzZEW2A+fhWo0zC54X/OQBCyla
	qZKopr0IYr83SaVDATTYI6MMRgyDtY5m2Vk1odjKo/QJeooRej5a+60kVSkq+KXV
	stGZmlLBLQ==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: NfOnwIgnO9jbENfOow9sKa
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Thu, 14 May 2026 16:23:25 -0700
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
        anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
        michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
        dmukhin@ford.com
Subject: Re: [PATCH v7 10/16] emul/ns16x50: implement THR register
Message-ID: <agZZbUWUO5ont8Cs@kraken>
References: <20250908211149.279143-1-dmukhin@ford.com>
 <20250908211149.279143-11-dmukhin@ford.com>
 <CAGeoDV9+6fLR0ivJ0UisWk7gtqYehpnfDa_p2Kk0Ty7Czkbj0w@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAGeoDV9+6fLR0ivJ0UisWk7gtqYehpnfDa_p2Kk0Ty7Czkbj0w@mail.gmail.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-14_06,2026-05-13_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 suspectscore=0 malwarescore=0 bulkscore=0 adultscore=0
 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605140229
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PEPF0001AE19:EE_|DS4PR16MB6827:EE_
X-MS-Office365-Filtering-Correlation-Id: 07cc11c5-d87d-4318-a7cb-08deb20fcebf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700016|82310400026|56012099003|22082099003|18002099003|3023799003|11063799003|4143699003;
X-Microsoft-Antispam-Message-Info:
	jmQUsNE5rXULLmn6ZrEzhRmy878YXFZo9vQHaBBx5r4bx71FHDkgTJ/ofZBGpZbRzs26KtFmkiDGEbjCa6I2Oi7+IFu3877gzTNd35boNshFV5w57/0aIEBsklbOCfL7eQMRD5DJdqMBQ+GGNSYUNVbVIEcQIf0ptCmw29KlrOBkCk8fHv9neeG151+tw4HpKosI6ofTqD1i/emNi8ymOA9iuz0MfjR55eeRXcvnf5SF1+ty1RZCreaR9jgQm2r2Pd6GbIjYk3RXF4eZoX2CZJXjJglsEjq50332t45jCvuEDH8HMYw7AhL4zyyHzGaTAd0WD0Oziedu9h2Qh1LH8dwI6TvsnCqug6x9w0kmiMQjk05wC/Pr48kvzc2sWg/b8zuEHfGd5LQeceltg9sVIs8qeJkqCv64yEVlWeBEa+gb8AQhL/hU/zAOZVjDiaL+DvbQJSk0ko8vp7xO/7seLe4xTiNJDoaO33IutUgLCNKgnZP0bVMIkL/1LCMu6XDVI+OZ1AnESKhVR1yLCWs27qQHz4FfwrmRC5/yYOQ/IlVjsKhXeu4uxpAFG2fSyIRZcqkJ5ZKORJDQHsb1+yqDeQwuILTkEPaTRDjGQ9VPzImoP8Z/g+uggIVX0kVLmVURD+ynf2SyIz7Y4bzSKXCCycCguZOh/Cd40hxrLugWohX4PbczeleR0vYAjj/5YafCzoFOhhN8j+gwDkwuM9W9/lNhJqerQLANFtnDRYdpWBQ=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700016)(82310400026)(56012099003)(22082099003)(18002099003)(3023799003)(11063799003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	WgGx4g1NFk3ZjquEkPQP98RMFH3qiK2vVM53lgGWpcQvL5rWmBuuHxmMnbwwyEHcgqWg9q3BuhEs0vkAPVz6mdWFaMyNjiXHzs03FnXKtMpCrelVu7WX1oeOeCalIne8QiLSfApa57DLYZ3+Uf+wR22M50D67/fP6zgsFL7nY1UnFmXlqK20IRh1K7QhiB3wFJWpdr+uOhqDiRM0kvG0ma4R8Ewrdc7PQWkHwjo57iICLKrCv+Yq2X6JKNmLPNxdckOjIhQ/v6qpC8xu5135y4Hyba0gDy4FbYzMlXjyhCrP167dBAtqY7k0JByeLpCDuNRa54KycMa+0NI0OZ2JnS60O8l7sf8kb/bC5csROGLopjeTlnyQGNRpktUQmU/aZl55A/HkvToOi5sJ+iP1wbTNJpr5Y4JfmWWXODc36ig1t2TpDzR6TRjVSKguVxCW
X-Exchange-RoutingPolicyChecked:
	JeAB6Cz9QNENllbek0+itoKcgToxl8pSKBCC3QDQTpBS/khj/CvZlU0s6OAZ5d/3JMMUcASVqW7c92rHdooBri6++Wt9T/FAe/HvDDaZIbx9ZgtXl6j62WpLNihoWeDPwfUSVPC5VBkSUkVd9bGiXgH9I81QCwXOuuO4GZ6xqOzBbaXMPm18btQkSgurVD0o1duZW6cvY+Oe1xjqI82GVPtchgXcgtZb2cqVEluKuKBY87WMHbdGx70bqW7bS+x/cMcAq2PYIW+YhDC7IQtVOVYwiSOvDQc+o86ONazNdaadCAsFK6BbPrwaPyiagjKq0SB9cS4vUnjB7dblCyIOaQ==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	D9v/q1rEIDQAso00zs3v2DQyzJMhntrD5mkncqOtizdMlU+m4mCBV9udsyaME+TG+B9kMSc1/ijr0OvZjv9j24/p1TAl/UAM0l+DoHcLxb0k5NlF7vSOOgIfegZZWU8XdaryuP/sAPPKHPfblSC/1NstO/D/5Ubdx+WbQBEEk1NDILiuNRwScaugu+jgOA3OabUZQAditPAxin2+JdZKuiHvtXli0w3452SUWDpLIfc258XSIrP1ktFx8NQdqDyEmouAxDIP4XriGvDHWmvFdsawd3KhIg1n82aRrowOobWFAMKu9rmwmK8Wz40NPu2o1sFCZn31HM/YH9bgelDyFeV/X6EFdXd5W35ejNeXIKa86YcXOPITe1tU//QdBm3oxG3/kLU2bCOjA17XRfsEAta5qPSes3/mAkQa6XU0lilinod5/G1y6p2S1AHLjJHJrAu0ckI4LWDGpmoi2VWLNoq4fEQ5dN+KLa0g4k3Pl+rocV6pNBUYKCCkEYjzlFrPx5s4UFTg7jVaMsKzcBwStUbB6wN420NApk3UKD3BUWaMlBwTvHa3M7nZ2X10Y3Kuq54HUX766GhX8duYh8aeLXG9u/U8mUyL7T9docDf3Jo3zV/DdsI2uo15vgMyHHnRuyksfMN3rKHOXHJyAgbiuw==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 23:23:29.3317
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 07cc11c5-d87d-4318-a7cb-08deb20fcebf
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BY1PEPF0001AE19.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR16MB6827
X-Authority-Analysis: v=2.4 cv=ap6CzyZV c=1 sm=1 tr=0 ts=6a065976 cx=c_pps
 a=Jpon84a9jUr9T0N/wBB0/Q==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=MLwXIh1eZMowsRZfVxRb:22
 a=mLnsDVdbAAAA:8 a=cbNQJ9GKAAAA:8 a=6gL7nlFioHPkPofxBa4A:9 a=3ZKOabzyN94A:10
 a=QEXdDO2ut3YA:10 a=G69WFyCBNqGPyalROSdv:22 a=xnp1pY6zelCj5OLna2To:22
X-Proofpoint-ORIG-GUID: 2pXY0gpZ7xS18VWZhp1C24NNqyBk5N_S
X-Proofpoint-GUID: 2pXY0gpZ7xS18VWZhp1C24NNqyBk5N_S
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDIyOSBTYWx0ZWRfX3VYlizh4Pkb8
 vGwAz/y+1QHOhtIqBP0jSkKIMEoOgze1qMCot1YxsWerz6dE+ibKgZzEYw9znAHqCdfTudbiFY5
 27TuUvyXL82PZDxCsDzoOJ6u2Y8TkCsTzs4S8q3uAWvgTWenGNdHXfwBKwQOB4d0P4yk5YpltPp
 0bu/6IO/5EKfMgotV3JXres6NMW/4Tk1X6w3Qo0cxc7LsUWOFHFbQBsdCm8/D875OBTPQMvu+xk
 LTBI1GyJXr/9RSbk5bXUJBZplWDSC54N4CmQr3roJUPqz1Ex2c3CSTpMwqdR3yLmaKm7DOHkt3e
 WvWk/P9VdxHSyiApOfgJgETcxSYEtmylUQhpC7gY3ER+HMv3EUfBjWRjw/GVU3iBIEPwfXrc+7f
 BzXvTPw6uCh1WEpaWepUnQpZJjn7HsQSj9HeGqFLR8O5HcmD8Do+oROZJenB9eHCwmwJ2EHjkk1
 aPN8P/mZwAe5+onk6Ww==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-14_06,2026-05-13_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 adultscore=0 impostorscore=0 priorityscore=1501 malwarescore=0 spamscore=0
 lowpriorityscore=0 clxscore=1015 bulkscore=0 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605140229
X-purgate-ID: tlsNG-720697/1778801018-81B70161-8D173360/0/0
X-purgate-type: clean
X-purgate-size: 3345

Hi Mykola,

Thanks for detailed review for v7 series, much appreciated!

Sorry, it's been a while for this and other series...
I am picking that up.

> 
> On Tue, Sep 9, 2025 at 1:26 AM <dmukhin@xen.org> wrote:
> >
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Add THR register emulation to the I/O port handlder.
> >
> > Add TX FIFO management code since THR depends on TX FIFO.
> >
> > TX FIFOs is not emulated as per UART specs for simplicity (not need to emulate
> > baud rate). Emulator does not emulate NS8250 (no FIFO), NS16550a (16 bytes) or
> > NS16750 (64 bytes).
> >
> > TX FIFOs is emulated by using xencons_interface which conveniently provides
> > primitives for buffer management and later can be used for inter-domain
> > communication similarly to vpl011.
> >
> > Account for DLL == 0: in this case, disable transmitter.
> >
> > Add UART_IIR_THR interrupt reason handling since it depends on THR register
> > access.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v6:
> > - added DLL == 0 case handling as per Mykola's suggestion
> > - dropped UART_IIR_THR clearing in UART_IIR register emulation in ns16x50_io_write8()
> > - simplified UART_IIR_THR handling
> > - updated ns16x50_iir_check_thr()
> > ---
> >  xen/common/emul/vuart/ns16x50.c | 82 ++++++++++++++++++++++++++++++++-
> >  1 file changed, 81 insertions(+), 1 deletion(-)
> >
> > diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
> > index 250411e0a7d8..137ce08f4e1d 100644
> > --- a/xen/common/emul/vuart/ns16x50.c
> > +++ b/xen/common/emul/vuart/ns16x50.c
> > @@ -149,6 +149,66 @@ static int ns16x50_fifo_rx_putchar(struct vuart_ns16x50 *vdev, char c)
> >      return rc;
> >  }
> >
> > +static bool ns16x50_fifo_tx_full(const struct vuart_ns16x50 *vdev)
> > +{
> > +    const struct xencons_interface *cons = &vdev->cons;
> > +
> > +    return cons->out_prod - cons->out_cons == ARRAY_SIZE(cons->out);
> > +}
> > +
> > +static void ns16x50_fifo_tx_reset(struct vuart_ns16x50 *vdev)
> > +{
> > +    struct xencons_interface *cons = &vdev->cons;
> > +
> > +    cons->out_cons = cons->out_prod;
> > +}
> > +
> > +/*
> > + * Flush cached output to Xen console.
> > + */
> > +static void ns16x50_fifo_tx_flush(struct vuart_ns16x50 *vdev)
> > +{
> > +    struct xencons_interface *cons = &vdev->cons;
> > +    struct domain *d = vdev->owner;
> > +    XENCONS_RING_IDX i, n, len = cons->out_prod - cons->out_cons;
> > +
> > +    ASSERT(len <= ARRAY_SIZE(cons->out));
> > +    if ( !len )
> > +        return;
> > +
> > +    i = MASK_XENCONS_IDX(cons->out_cons, cons->out);
> > +    n = min_t(XENCONS_RING_IDX, len, ARRAY_SIZE(cons->out) - i);
> > +    if ( n )
> > +        guest_printk(d, guest_prefix "%.*s", n, &cons->out[i]);
> > +
> > +    i = 0;
> > +    n = len - n;
> > +    if ( n )
> > +        guest_printk(d, guest_prefix "%.*s", n, &cons->out[i]);
> 
> ns16x50_fifo_tx_flush() splits wrapped output into two guest_printk()
> calls, so the log gets two prefixes for a single line:
>     (d1) PART1(d1) PART2
> 
> Could we linearize the wrapped buffer and emit a single guest_printk()
> (e.g. by printing both spans in one format string) to keep just one prefix?

Good idea, will do.

--
Denis


From xen-devel-bounces@lists.xenproject.org Thu May 14 23:35:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 23:35:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309294.1580321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNfaj-0007Y0-I6; Thu, 14 May 2026 23:35:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309294.1580321; Thu, 14 May 2026 23:35:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNfaj-0007Xt-Eq; Thu, 14 May 2026 23:35:45 +0000
Received: by outflank-mailman (input) for mailman id 1309294;
 Thu, 14 May 2026 23:35:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wNfah-0007Xn-I6
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 23:35:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNfag-00EHkz-U3
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 01:35:42 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a065c10-e002-0a2a0a5209dd-0a2a450aa34a-26
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 01:35:42 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a065c4c-56b3-0a2a450a0019-94a39217a27e-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 01:35:41 +0200
Received: from pps.filterd (m0384718.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64EJ0S8A3073959
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 23:35:40 GMT
Received: from ch5pr02cu005.outbound.protection.outlook.com
 (mail-northcentralusazon11012054.outbound.protection.outlook.com
 [40.107.200.54])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4e5m62htag-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 23:35:39 +0000 (GMT)
Received: from BY3PR03CA0006.namprd03.prod.outlook.com (2603:10b6:a03:39a::11)
 by SA1PR16MB4706.namprd16.prod.outlook.com (2603:10b6:806:229::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Thu, 14 May
 2026 23:35:33 +0000
Received: from SJ1PEPF000026C3.namprd04.prod.outlook.com
 (2603:10b6:a03:39a:cafe::75) by BY3PR03CA0006.outlook.office365.com
 (2603:10b6:a03:39a::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.13 via Frontend Transport; Thu,
 14 May 2026 23:35:32 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 SJ1PEPF000026C3.mail.protection.outlook.com (10.167.244.100) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Thu, 14 May 2026 23:35:32 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64ELSIed664397
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 19:35:32 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4e5m0yg9gd-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 19:35:31 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id NfaSwcvdLxj2GNfaTwuIJX; Thu, 14 May 2026 23:35:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=LIj
	+1mCibHRzkDOLI6NPciksdPra6i7uppubfVT4rMk=; b=UkIc2Jfhax7x40zQvY8
	0ECya/0ndTanzZzjv4cAotmEPcYJPiR2bVTIRqe2xQhyrj4pKh+AAxWy0KfAU5E3
	XPvXnTr3mMZ1b7HYtACua/K5dTz1Ba8g00kvy7VV5dGj91KIr6WbiLGTHwrcwRE1
	FMZlRf7GDVEXwASeqIVk0pMM0+8T7IMktO1XJpIfKNWyMbDVR0Zi79Qd15roVmGB
	SAVvtDP0ng3KMEgMdnwvuEzBwN8dbv8oSRx0dC6bfkHfkJxo3xvsHGgzUMIvN4NQ
	O7XPXLGGsgtBZ5VY5Qqbx3I6/Vvb6vAe9Wzitsh9O6ti3+nU+sPXL80YFa9SwZKG
	vQg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fZBNM4+55XkBoubIy8H2j21BKgfKNVB7BdXIHfCI/4v456i8zkGyZvqQlHuiM4GvP9JdbAhyScRIhKVh9P+nQZGdnsF/9lGJy+DW24vQA2A+MtQSWK8SZenE/9ps+J/t4po9sm9qdeNOddWVdvpYNkyllCdwlZf8yfXUVh0dbqSrXIYTViyheJBxrjB4BP6EYlhD34l7qruYdqUmdfXY4coQDtLxfZiK3sIY+zyY8Erk4W9kpUz1od+uTAKZOCT1aDozBnGVoL6+/zo/e8Kesz05+t7QHv9yw1/SKlWGUuaO6kaBH4NpGPr0iiZB/uLDnyXRSMdizvW4fC29dFnH/A==
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=LIj+1mCibHRzkDOLI6NPciksdPra6i7uppubfVT4rMk=;
 b=n8OwvelyiZRSYOKwTeIKS6nyN6cwLGpg2meKF73izQKt8q4M+LAcgDZjG9RxXLXhIrMW+vZdwpoYfdvQaND9zdrR2qi8ztvLGUAUNNQMWWFnZJ94HttI2tzY16rC2umLzsHzD7A1XQK5wg7ADDkXvEgzAcwmw5O6ownruE9I4TplarZuAobfypAXAG61/vrjiGOK0ggBFjc+btVGQDS5CBslZoFG9DaLXZWPOe4yV8Y/LLHr380VdccDn6gl88IF3mWgpuSzXIEG18y7S6TfQp7VKOSqfLbuVvOZ7uPFYwJdQUGoLAqeVFYXyP3JSyyzSVlRmOi2L1VXTprS8jO0pw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LIj+1mCibHRzkDOLI6NPciksdPra6i7uppubfVT4rMk=;
 b=VCLkqqZbkvc5dyfzY889uoPzShC5TJ1fxHre7sG4kWT3hRSzRviqQqWq1xGJpfm4vSAswQNlhrIzEAPGhAJ6gUHm7TpkfMb84eSxf01ciGh/kFkWns+l2aWxLHMcIAgaa0DxV7QWik8Ee4RU6ie41flrdGKoPBsEwfIICID0O8E=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:content-type
	:date:from:in-reply-to:message-id:mime-version:references
	:subject:to; s=ppserprodsaar; bh=LIj+1mCibHRzkDOLI6NPciksdPra6i7
	uppubfVT4rMk=; b=h8RRb0YmKAzxB0cGdb7IvlyYL+OJBaZUKM9m+sSWQaqdyds
	BrXC0B9um/kaPezqQUKspa6thUFHxIBQy9qgt7r29txEZOP1/oIub5T5BZ8/RjnK
	vm2nBqGMY7LSur1gQIuQSkve+xrp2IRyKbrCeLdCTj9cDVmpAF6bvqdCZaGwT2fn
	LeKaRMkBI80o0kjdnhwMBTFl1oDqDooUt6Kx1/ccR8LJCCJ9hQ01/LjozcsgOmj/
	HvHANIbDClAxByldfgAUm70r18/viY1FWPxCMkMnFHOmaN7TAb/Qoc/6gBhv1uyv
	z78jL55nDlroLP8K/D/Nk1Bpq0VxtaJ4T9tlzcA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppfserpocford;
	 bh=LIj+1mCibHRzkDOLI6NPciksdPra6i7uppubfVT4rMk=; b=Cj7/n9zQDYad
	h+X7o/jV2AhFuYuN7IPjAD93YrBNcOjd2IZ2owvaUV79d4Z9A/U3xMcEja7+xlep
	Q1O8u+9Ava0tf7Cdh9tpK5QLD1nHJmGeaDCneYDPPK8p/RCkHTfq80S96Fl/dLq8
	f2m4PdSPU18p6BXhAIetHKd/8DYJrPASROmbgkoUdA4aqwdC5mCNWFLTDgscOUn3
	SKfx6esIejxYoWXzsE4Rsn7bt7JSGqyMHCyUuQLPedJloT+t9hE44rBjCnHO/k4W
	ft7gV0Men2YjsD+w5T3YvxIvYk1NlVCR2gvrfp59lVymkB/z8yJHGF1vsUlNkla2
	bjXp6HkCTQ==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: NfaSwcvdLxj2GNfaTwuIJX
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Thu, 14 May 2026 16:35:28 -0700
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
        anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
        michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
        dmukhin@ford.com
Subject: Re: [PATCH v7 12/16] emul/ns16550: implement dump_state() hook
Message-ID: <agZcQD9RXzrCRR9c@kraken>
References: <20250908211149.279143-1-dmukhin@ford.com>
 <20250908211149.279143-13-dmukhin@ford.com>
 <CAGeoDV_g0kTbTMq4dSXWjzBD5Gjf2CVTxgPRWPZ23dRV3QCjzA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAGeoDV_g0kTbTMq4dSXWjzBD5Gjf2CVTxgPRWPZ23dRV3QCjzA@mail.gmail.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-14_06,2026-05-13_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 bulkscore=0 spamscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605140232
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000026C3:EE_|SA1PR16MB4706:EE_
X-MS-Office365-Filtering-Correlation-Id: 60cad594-5236-4ab2-b104-08deb2117d8e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700016|376014|82310400026|56012099003|22082099003|18002099003|4143699003|11063799003;
X-Microsoft-Antispam-Message-Info:
	egpSyWC89ubtgJED/1zc44Kz/42kQ8a2kLIAPTqSL1sKGKadBRGfwW06OnCo6w7IKDj3WJ4w8VbeCR58Zn8jl/hcqAemvxjicmiH24JnE0GTwayEnHdUHvSR6FmU2X1ox7nM36PBClo2+IOpMppudOtL/aXT/B5OPfax4pJyZpDE9qhQTxWkvlNfHRRiG8e/rybUa8ncbvCrQ8GnG38Z7azC7D1JWyMC0g4T86p+qQg2Hc5YIaj2N5XiLvJVED3YAIMM8cEzSYLM9axOF1cGbQtd4E0YOVSPWcMvB+8qQeLKKPXp26HTuM+ri1KoIbfkEk5etfi/rc3xKtSREnqYjcakyOE5KVV197GSDtruliP7894jSKAxfRiPvULjS2ilE34rQQZwU3gQSCrGZ5RdWoqIbS2xYTddAJyg4jUQdvdLm+5iSfx3I9dde5tOqamkbcmwDeHDcd8IsTvklQB8eKxEcBOIDvZyKdKXs2QWjSulkfsFGf8gO8mf7zHPz1s1anf9Wn3XAtsydJi6nLP1zjosgZ+krmSVoPWIO+Td57LB4GaFgYgsKI3JI6VFg05eevdMJJ5SZ5PnqnmySNnTBDvxuR8b/0U80HfZ+mMAPLeabyput8i8Wdm2hIAdcTc9FW3NYcksCWVog7e6+QkeDg0M1/q5jj2UMMfPSd1/E9/rdROO87B/dnM6pXx3MaTKwS1zASActUXVUFjik2qMICiEgqV4b/Tq3XgeKdeU0Ww=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(376014)(82310400026)(56012099003)(22082099003)(18002099003)(4143699003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	qbOGsahftcVW07XECoY+0pqNLeDPTzogKkozee7PyGK04irGa8XpmGkC/EafrSwmuEZ8AYfy02oyXEey/ok4FmgyyuoweROhHAXuLvF1JB3cxriOAuipvq73jDvc7GDSev1emAiYNO5WZLTuoTBC3ge7pviVsmFvf+/sxWfmEcGy9aMshgeHq2GziN/LAIYgyge2NN2jMczv7yRMOPPyHXxfaDVL7A/R1aH+yTnuwZL3TzG2gqq25yZ6eGc0+D3kAq2RqIDJMI9CvuaodeNuj2Tb+N+TMpMSF8NfmPCdsQ2k/sNR3L7l3XFq6mEJf9VfVkcqS9YosQOT1ONkggXb3nvG29xyY7fPdaj5vHUeUKX4aTPe4tk031I/qSTYmqWH5jWPx78fCofF62UPjRovzQfoR6SmWAt5/Pc8nJznzLwgaEbKrYihRtRTi+XXorzF
X-Exchange-RoutingPolicyChecked:
	oIR2bROouSuNSEFhyyO3xqnfyn4/yFdK9tvlr6KtXBNyl4uTC+BUhBH0p79C6kFXLxQlEOpzMC8GSV2z9fe1cFx0g71g6Wk3hxuQMBRi/ZDURQIXJxR3FnHkAq4t1BMDNXGtt3fPhEg9hO/aJP7PxsCsqA05vPNdOefD3BYtB861gW0/Vo0x1a/zhx9Io1Wgz38awZ/MEE2R/LEDQZocnCpCmipE2zkyK/E6noYTVmBW0FS8Qy9Ys5g16MwjRXSGccfNUYx4wlEZeHFWeOPOvRCiTYUVt1uF2XsqS/mOOyQeNf68y/3B14G9oBtfwJQf0fqltwddScStbK9kEIMIig==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	d60WuVTPhxMQoLBXydeRNtod6t1EfAnPoYcJSST0N9XN13fL6hhxdInN7gcG4uRv1FleqM81ho+cRuJrmur8rzVcWfHvGlMThd2SgGQdAxo4ZS1NLpnuASA+6ypHh4yJYBtcbS2wsIL/ilyotXAuOuN1ezdZ15NTeQ9f9f61ouThTBC+ReR3b4qo1+/owADQlnsMfNv/lbMePUcsIfRN+T4A/CMYkQ1z+jlAUEzeH6lLCxk3S1xyidO+t1LIiCfSjt03nQ+fWnRnEnnGB6O648pfmB8KQBzCJjmXQthnkSztEfDJD1xO+igS0P5y5fo36zYdy9uL/7zpzdh2OS2tbBncKrwu2y5tTV9rjoct6B33HqjzCytDTs4NDZIhOI6fYFUHN0YQiiExwr9JuQHJZS7xD0RjkppacY1i4Mhjd1dr3mNImWvam+VQ7dmnSMymGFAaindnPW70GvRjTDpGulqvyv7wWf5m1fR9w4agEcqT3SPGMW/y+X3cWw52FfCWunRY3e7fpHOE5PVwese63wfeiVTNGFgmh3A4OiaCtY/+5CHUsKCN5K3PP+dfF1wlpzyuigkt7LhyQCZe97yzyKHwj7KB+D0KmJAx0LU9N9usL7e8Plqs3awpf8Bouwa6+YrNTCiaYoAFWyIK87n5rA==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 23:35:32.3402
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 60cad594-5236-4ab2-b104-08deb2117d8e
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000026C3.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR16MB4706
X-Proofpoint-ORIG-GUID: Qb-4rCQrHrauOLUXWbuynIlDpyIAZQEo
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDIzMiBTYWx0ZWRfX4bH23gC0j+JV
 0FVi0jNYT4SooRr23hTAHb7uczn6l6y9itIPxpBiaonvuTdREM/NmsNzHpOAE9emSEl+m0sW5sF
 0uTi26/r1TnX5GVyLDJGnqMoJ781VG/zN33QCmw6CR8JrkG3hPLtkRzl1fpiVxW/VrgiAXCh99p
 o1luIdtG0PhDWwkgpomjlWLP0FnPeN2eh6BVtZ4HdrJUfonYfCfm7inW6e1QJ94boi1g125tu8k
 1EawOubt7fih4MQHo+cje4eK+15BVXj5u4nGJK9WyTZUkZmRvUvH1U5My178C1wdfJaBJZMNZJA
 5wjmmnE6I4QS952G9TVroALjgxl8oDoXSuX7CgCe/FMJ1z/8khquc+bogWWKepRC9i80MykqF2a
 dHlDOPXdGN9lXLxc2ORfFQ1GamUwYTIdKZYAWges95CIDB7tSBhfs96UA6oii9T4DQzqkLuuyVA
 U6BRj6qQw1fIzi8lAVw==
X-Authority-Analysis: v=2.4 cv=Yps/gYYX c=1 sm=1 tr=0 ts=6a065c4b cx=c_pps
 a=tYoGMRiLV1KbapjTPXDBcg==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=ARvDHhclS48edyKYUbLB:22
 a=mRLuHoWqYc15Mm8Wc90A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-GUID: Qb-4rCQrHrauOLUXWbuynIlDpyIAZQEo
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-14_06,2026-05-13_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 spamscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0
 suspectscore=0 impostorscore=0 clxscore=1015 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605140232
X-purgate-ID: tlsNG-4011c0/1778801742-7E38D8B7-156480D3/0/0
X-purgate-type: clean
X-purgate-size: 2417

On Tue, Nov 18, 2025 at 08:00:00AM +0200, Mykola Kvach wrote:
> Hi Denis,
> 
> Thank you for the patch.
..
> 
> > +static void cf_check ns16x50_dump_state(void *arg)
> > +{
> > +#ifdef CONFIG_VUART_NS16X50_DEBUG
> > +    struct vuart_ns16x50 *vdev = arg;
> > +    const struct domain *d = vdev->owner;
> > +    const struct vuart_info *info = vdev->info;
> > +    const struct xencons_interface *cons;
> > +    const uint8_t *regs;
> > +
> > +    if ( !vdev )
> 
> Is this NULL check actually useful here? At this point we’ve already
> dereferenced vdev (vdev->owner / vdev->info), so if arg could be NULL
> we’d already be in UB. Either the hook never receives NULL (and we can
> drop the check or turn it into ASSERT(vdev)), or the check should be
> moved before the first dereference.

Will promote to ASSERT().

> 
> > +        return;
> > +
> > +    /* Allow printing state in case of a deadlock. */
> > +    if ( !spin_trylock(&vdev->lock) )
> > +        return;
> > +
> > +    cons = &vdev->cons;
> > +    regs = &vdev->regs[0];
> > +
> > +    printk("Virtual " pr_prefix " (%s) I/O port 0x%04x IRQ#%d owner %pd\n",
> > +            vdev->name, info->base_addr, info->irq, d);
> > +
> > +    printk("  RX FIFO size %ld in_prod %d in_cons %d used %d\n",
> > +            ARRAY_SIZE(cons->in), cons->in_prod, cons->in_cons,
> > +            cons->in_prod - cons->in_cons);
> > +
> > +    printk("  TX FIFO size %ld out_prod %d out_cons %d used %d\n",
> > +            ARRAY_SIZE(cons->out), cons->out_prod, cons->out_cons,
> > +            cons->out_prod - cons->out_cons);
> > +
> > +    printk("  %02"PRIx8" RBR %02"PRIx8" THR %02"PRIx8" DLL %02"PRIx8" DLM %02"PRIx8"\n",
> > +            UART_RBR,
> 
> Should this be using cons->in / cons->out instead of cons?

Yes, it should!
Thanks for the catch!

> 
> > +            cons->in[MASK_XENCONS_IDX(cons->in_prod, cons)],
> > +            cons->out[MASK_XENCONS_IDX(cons->out_prod, cons)],
> 
> As written, MASK_XENCONS_IDX() gets &vdev->cons (struct pointer), not the
> RX/TX arrays themselves, so its size/index calculation will use the size
> of the pointer/struct rather than the in[]/out[] ring size. I think this
> should be:
> 
>     cons->in[MASK_XENCONS_IDX(cons->in_prod, cons->in)],
>     cons->out[MASK_XENCONS_IDX(cons->out_prod, cons->out)],
> 
> 
> Best regards,
> Mykola


From xen-devel-bounces@lists.xenproject.org Thu May 14 23:52:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 May 2026 23:52:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309303.1580330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNfrB-0002BY-Tk; Thu, 14 May 2026 23:52:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309303.1580330; Thu, 14 May 2026 23:52:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNfrB-0002BR-R4; Thu, 14 May 2026 23:52:45 +0000
Received: by outflank-mailman (input) for mailman id 1309303;
 Thu, 14 May 2026 23:52:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wNfrA-0002BK-2H
 for xen-devel@lists.xenproject.org; Thu, 14 May 2026 23:52:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNfr9-00EJA7-0T
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 01:52:43 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a066030-e002-0a2a0a5209dd-0a2a4502da82-8
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 01:52:42 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a066049-af86-0a2a45020019-94a392172a6c-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 01:52:42 +0200
Received: from pps.filterd (m0482516.ppops.net [127.0.0.1])
 by m0482516.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 64EJ0D3T1706175
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 16:52:40 -0700
Received: from sn4pr2101cu001.outbound.protection.outlook.com
 (mail-southcentralusazon11012070.outbound.protection.outlook.com
 [40.93.195.70])
 by m0482516.ppops.net (PPS) with ESMTPS id 4e5m5xhw0u-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 16:52:40 -0700 (PDT)
Received: from SJ0PR03CA0082.namprd03.prod.outlook.com (2603:10b6:a03:331::27)
 by SA1PR16MB5743.namprd16.prod.outlook.com (2603:10b6:806:3d6::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Thu, 14 May
 2026 23:52:37 +0000
Received: from SJ5PEPF000001D5.namprd05.prod.outlook.com
 (2603:10b6:a03:331:cafe::d6) by SJ0PR03CA0082.outlook.office365.com
 (2603:10b6:a03:331::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.13 via Frontend Transport; Thu,
 14 May 2026 23:52:37 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 SJ5PEPF000001D5.mail.protection.outlook.com (10.167.242.57) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Thu, 14 May 2026 23:52:37 +0000
Received: from pps.filterd (m0426317.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64ELiqDO3862938
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 19:52:36 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [34.209.42.160])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4e5m13g9t8-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 19:52:36 -0400 (EDT)
Received: from localhost ([19.12.92.222]) by cmsmtp with ESMTPSA
 id Nfqzw9gtdtgXKNfr0wAs90; Thu, 14 May 2026 23:52:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=rjkls871QgpOdbggwkgTqGJFQij
	NqTRuu1Y+e6u4TYY=; b=NFgjlFxPnH4Iwv9WD3TEoFtiwVcBIqaWS+rucCOoTIe
	9nFneU50LcbGVZP28jQWrX8Hd5lMeXmXz1n+e7yh+j4Wimu5Nl1HhvU8qhsyQZ4Q
	QPuW1mOokyVZIyX+s4/JGCuF1vih3leCe0WXHQkj+GLpBKUQkbiMKPxsXlh3PPy0
	kcl+O7+YDRMnjzz0h6WX3m9z+nq1By3W1VHZIvPS5fH4pHAcy7iAVP8xFN8vUVCi
	970LZl2187LkxyXHH+K+IOV3opB3vtw1VGOv0N+ihxzmIMWi5bfbN/kq+O0bP6Ew
	Pdp/CilvkL7Q25euJbZnpR/To7lEoWtDw5VQOMtyNMA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=utaCIU1AuOdtfnqUjqn2mw4nqFwrX9IS+R4B4ld7498gs0AHKb7ivKrCCXa/MrnOfU9PehFlQCnu7J7/GytbJVHmpBWZM4Tyq3UGqe3Zyx8ifaN4ZmAPCk3qLr21ZStUGllPAezqNMr11xIkOxeXeMExfvqUx0dXG+dO47+rM4foBBvFc97S7ybZ973lFPPLo9dSTb1h1898BaYv38SICpM+In68JSVPNvcO9w28mAVobMZzyxrUBr8LYNueDQnUKVzNn9P1l+Je7tdN9SznVbti6lMxoNOqYpCkX3HzPiIKsh3rZ+/WFAoHD5o/L04t6Wi1wwz+XWlVVArQ4uxpBA==
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=rjkls871QgpOdbggwkgTqGJFQijNqTRuu1Y+e6u4TYY=;
 b=mrkmbRXaFXGEylmpa7nQkrerVvUtm1Nn9NXn+mY6BKK3EEf7Qhlg5Wmqrn/6PJjNd8AtB+n6AjIYZNDK/d/SRtV992farBCs7PVA7MTmkbj7J0PHJ9yzpmcBidb/ypGyIHOmSK6t+GhaZQiFGVOByrEyVRvdlvcVYvjwg7TstomsbIB4Rfl9/WtM8lKe+7dZ0dmpgJPf4ASq3AewfBwMiGxmc5wvi6amkJRmOzbZv9egYJTbVWDK2cke8KNIIJyIYqlN5L9nLDmaAuOYe/8HwPz3E05tekn41wR5zrsiFX+dU/H+w2aVGZh3/sY1gjtDdTXgKV69dZfw93qhBAgloQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rjkls871QgpOdbggwkgTqGJFQijNqTRuu1Y+e6u4TYY=;
 b=U4WSjjT3J0FhGP0hpu06D7XvZpA7HDScfNv007KhypuNkPPwAsSn2zH/VJMHcm3X85FQvr8fPITyHYIguMY4DHBlBBMxH+B4LpyXLaGZCOtrFDhrJgr85tXbCYHX7wRs4NnsK93hbbzUC/5S3kPOtGmuSjlZVuwjfr6uy8EV2DU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=rjkls871QgpOdbggwkgTqGJFQijNqTRuu1Y+e6u4TYY=; b=YPbVd2wPdS13
	oRNMyCrRS0/eygnPnVAmNAd9BtKVgB6NCGylCfD60MvstrDFAL8iISDJDoAtibLm
	Hv9QNwvEtSFADLwfAu1P4ZvH1xDVlT1C3kZB7fToJjVonLixAaZ91O1L8diD1nyP
	X4g/UxTybr2k5BBYIvGBGjKkoMUDj9eVRnsOHnSYL4DccNwpuOfovH0p3YD00CiA
	UrEVWSwRRkyMVpxp/w/LTGeZlRpM7mfrkG+TXdldhhyt39CwOG8mxXlYp84rxmYJ
	zC/N6NKQxPAGhDTQUPd/kA54U1+MTpsLukz09yPSMd3pf7kCIrB41lPld80PXlFi
	XsgwCllvIw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=rjkls871QgpOdbggwkgT
	qGJFQijNqTRuu1Y+e6u4TYY=; b=p99wIAwjV9pZ9Yc36iUu49vTkBiXhEWa3BSy
	87gZc85b7FshHNiH/EyWWFZVPi5Y/qmxuCuiaX/XkGyYQr2HOp4Gq8vh+xRlxBMI
	/9G7dhl0w5l+sezX6rA0iXHtSAz7JzUG3uoUSJ55RE9DW9+s2w/+7jtdG6zbwAFo
	PGsj44a/1a45HY9xGVzCG7QmgnIP6ujYJOQDWAqIGeLLZnokpygh/Df/5iCSWWvB
	zLlZd5U+Aq3IWp3kKytUoZp05xAuzdJoEFtIS1K1vjhDLvPkSOnRkg8AGi5PDkSR
	rnpiIrOwvBCHpHrWCbVXyCTY7xgfRw/6hWdpkmGequCJhD1EFQ==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: Nfqzw9gtdtgXKNfr0wAs90
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Thu, 14 May 2026 16:52:32 -0700
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
        anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
        michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
        dmukhin@ford.com
Subject: Re: [PATCH v7 14/16] x86/domain: enable per-domain I/O port bitmaps
Message-ID: <agZgQKoZs8F/CH4+@kraken>
References: <20250908211149.279143-1-dmukhin@ford.com>
 <20250908211149.279143-15-dmukhin@ford.com>
 <CAGeoDV9bc4uNeSJ_H5G6WwbOiwdvkS+aZXpLr4K10mtRZX5vPA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAGeoDV9bc4uNeSJ_H5G6WwbOiwdvkS+aZXpLr4K10mtRZX5vPA@mail.gmail.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-14_06,2026-05-13_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 bulkscore=0 suspectscore=0 adultscore=0 spamscore=0 phishscore=0
 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605140234
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D5:EE_|SA1PR16MB5743:EE_
X-MS-Office365-Filtering-Correlation-Id: e4b7c049-60a9-494b-60fe-08deb213e04f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700016|18002099003|22082099003|56012099003|11063799003|4143699003;
X-Microsoft-Antispam-Message-Info:
	ZDkaJv91VFH0a0rI/urgXthTSQ9E+YF3kCHA/Rvi1xUsvoeWnkvzoFlobqwrayJ/zCUCECq8icCAbExih8fijAvVgSOvpnZJuNiaR2yH44cgWxizKGIa0lFmCfuTSjNYubSTQUdKWqy9k4vY0pvs0+9uGGhx1DgGNvdmyNr34yHu8buDCcpzrtzxTRoyxzPPpya8/Yyynk9ZcOZvm5z4UmbM4EsuXRHfDJgiqGwb7n13zQRTUftkvAhbHq4cT1aUm7UgRoAttflv/rTYIJs3E6T3YGqXUIH3qeGYkoo/CtT3bMMZUC66B5LcS636Zvu4Rlj5WMrKFoot4mYuB4Zv/XA7lFcBDl3nx/t2W8XPgmgEIcgyq3zeOQDB36vBR+/F09ABdm2ClumOwOmzuIHYSe89v1WwojyGJ4VGvvWyuE89iVn/kG2wRWGkxzg9yr86efe/G+khuWh+uU7qMTtmWW/sFSBW1arkDtg6xHeepyZwk2AoIMAbhUjR4v+fe6XvEh1i7OBXw24Yhf3oSRDinxzMKZCn6L4reL8HEVFLVMr6InKkcAMQ+2mpSqU2yKcS3auS7WpVr7MhB22FPxEcXRwtIhkdPLsKvKqq2hEC3Plcmp/u/7wXIMhT/APx72M0aHmH3JI9Vrb5J7mDP4IcDQuPlhJqSudrcBeAdrg5DEtHwqNmT3s3gMQ+SAEPbc/N1dj943qPccc2+czw9TTh18vjiys2sSkFCICDt8ASnlE=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700016)(18002099003)(22082099003)(56012099003)(11063799003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	XWrDQCXYr2F1oSGHeXGyEBIDw3uqoch6HOb9aYZIB0Go3qtfFXq8j4S/QIHZr3ZLmVmRrKc9fdiuW4uKWH/HKsUK6hou0mWxo38VioxZCcZDxXfpAJCRAribMzxaK6nd0Wj7PFtoR3OZUd5wrkQOQAiRm5qj2M+3oRylHqJXaIZKgNvJNw+JH1yJyw50QiM1vec+AKvT/kUgQD9Kh2Aj8x1+gaiJp6l1VHylxM/bgayviq/F7pFVY3ZC+96YfuAshSQfhLH5bCa6sZh0xH55qG8Vj2DgFaVGvx6cJdlsiD8i9X9eu1sKFGozxa+niXE7xdcRN7lYspG/KYeNsyGmhvUJXw9fANgZYHQv9gpAlX7RYMYHvNMftYtHGkkbgaU3XvAAr7qvBqnvLDVU3PF1Zja4M29o6NwbKkdlcZu+ndDjTMNMZcPZ4CzL3YuLlFSk
X-Exchange-RoutingPolicyChecked:
	P8QI53vImlsnw32twkjyS+q/5mfHne2Hcss0yiFHBL4PSZOyEI8CPy/TIpetUGGGEzSF1Q7aso8v7EiLbyJlsZx+zpq4fgQr5iqzxUaUw2dpWRLIYHovHxRLSQL1Vb4aZOiHjj2ZJyJdw4Z4GqobIuE/++4EEofhUoct+wWcZiYcFjrkKx2FecxjHH5Sb8gIHDPtAZXiVCocKgUMMAA6SVV0FYjiK3/kDIpvpUUYYb9SB0/C8CigiNWI+8AWtbjpSGTXyq7zJWW+dlGqyNQP/HYPMTXO5/2hLB2a9ngHb/mmT/r29lJXgJyCj2RtKsTgCaRYj3XtmErqS/QjYQu1aA==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	K79G/n88nwuNsfBj8x8xjjEkIsGWYM2NoZaTw9SnCZnvTP6Xsnj6fjbz92DM3B0LfYwb1atIw6UwXkvmxeSJOB/tkSCxTyCwza56Y81cTvgJ+7/CsqplsNUtj0q+QauhrFiUDGbDSX/iHTOWKgi1t8WKi1XqUn+o+ZHu8DG02RFI0VBZG19GgWBr7oDeEVQzVD1XCGpm6o5KjKG/l58sH3kvF5hrVUbRP1DxU9UvW7b3Hele5ZQSfVeNE0kCP4Rt08HAAuvAGaDpClwOfXhGstPjrC0jq1/BlkJWS87TYOd54a78xFD1ZLlvOacXEAN+UMsw2NXQZrF9Q8iWhOufAq6nSMJ+HlVVqb67NGsv4By/zsjduBpfBFWPt4pj0/wyBkQt3kPvDaviTqaOQZxMvm41A0YBbm4GrV9ilOrwTWsj3P8dQg6E1h/tCIu1F+51GcQrB6jHmHlHETOIdjD+3wku91Hj2nnr9fsXlhdlgiUWp4QVWhFdF6nSsHaqXump9OIE1/IkUyKqS39QTHiVMXuhJQ6xv/M+A5u8bfWdFUTYdQheCLbnNaKGB0+n6KVL4KSqok9XvVhVwkpfDmVgGQtnJMFuiikmuOgwXiNeR5Uc+itwxuD/ZseEb37ipp2hGyEHEEJ1H5LX3uNTQGvOmg==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2026 23:52:37.0102
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e4b7c049-60a9-494b-60fe-08deb213e04f
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001D5.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR16MB5743
X-Authority-Analysis: v=2.4 cv=KfzidwYD c=1 sm=1 tr=0 ts=6a066048 cx=c_pps
 a=bGC7MwCPNpf+Sn14ocfQJQ==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=NvsXeTrgx-CJMFV-xl94:22
 a=JuReohN-NG2ie_615HIA:9 a=CjuIK1q_8ugA:10 a=P0bj-C3X3jJDpopQwM1U:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE0MDIzNCBTYWx0ZWRfX1pKnvKb+nLpU
 2y67m+Z9mLg8nrd585Hg4wkRWp7XDNZrNQzpGlUA7MkuirjLVQv8CJdArknKHab4HMiFj4v5R8d
 JdqejKuZF/MPOagLPRQWT+DxAD2MzsLgKLMg8NqYlMKRghu69IsCUkgOn/EA8tDkCn1CIMoFrAy
 S1qpWIjl6Cofatk6dJn0owPG044OagFGaUJlc82swBhRBWe7YnIvekL/2PyzjgJsBS1xLjxAfa6
 2SiFhrAklkp8VHv1DDhP+ikQSoi3dqeGsoNzLySKUfwd9ci2EzM6oHSjz5F4zIOUDkoW7XewIJ5
 LFW8iahjmk6DJW7ZVoFziJz63blpgk9y0D4DcJIdqXE386JCRksmxPIrffBa9D2jXJKEufmK/7o
 RYHmZf5MtyHHl1RSgY7WlKVn+92Ai8AHbnHRiHqc5M5YdkPnB5FwJ7ZazmZT/Ho6uzTWg00NJmU
 NExkaZdv8/AnVYUHCjA==
X-Proofpoint-GUID: n1HmrDZ4CR3WzmcsxT3u9onayF2Oap0G
X-Proofpoint-ORIG-GUID: n1HmrDZ4CR3WzmcsxT3u9onayF2Oap0G
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-14_06,2026-05-13_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0
 bulkscore=0 priorityscore=1501 lowpriorityscore=0 clxscore=1015 spamscore=0
 suspectscore=0 malwarescore=0 adultscore=0 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605140234
X-purgate-ID: tlsNG-720697/1778802762-83F66161-E31F4F5B/0/0
X-purgate-type: clean
X-purgate-size: 1660

On Tue, Nov 18, 2025 at 08:00:00AM +0200, Mykola Kvach wrote:
[..]

> > +/* Set the default IO Bitmap. */
> > +int ioports_setup_access(struct domain *d)
> > +{
> > +    unsigned int i, offs;
> > +    int rc;
> > +
> > +    if ( pv_shim )
> > +        return 0;
> > +
> > +#ifdef CONFIG_HVM
> 
> ioports_setup_access() now allocates a per-domain io_bitmap for all HVM domains:
> 
> > +    d->arch.hvm.io_bitmap = _xmalloc(HVM_IOBITMAP_SIZE, PAGE_SIZE);
> 
> but I only see this being freed for the hardware domain in the
> existing failure paths.
> Where is io_bitmap freed for non-hardware HVM domains?

Missed that.
I will add something like ioports_release_access() to release resources.

[..]

> >
> > diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
> > index c341f012d005..ea34c3ae598a 100644
> > --- a/xen/common/emul/vuart/ns16x50.c
> > +++ b/xen/common/emul/vuart/ns16x50.c
> > @@ -783,9 +783,20 @@ static int ns16x50_init(void *arg)
> >      struct vuart_ns16x50 *vdev = arg;
> >      const struct vuart_info *info = vdev->info;
> >      struct domain *d = vdev->owner;
> > +    int rc;
> >
> >      ASSERT(vdev);
> >
> > +    /* Disallow sharing physical I/O port */
> 
> Should this be undone on teardown and error paths?
> 
> > +    rc = ioports_deny_access(d, info->base_addr,
> > +                             info->base_addr + info->size - 1);
> 

AFAIR, there was a feedback on that during the earlier iterations of the
series and the agreement was - no need to release resources on teardown
since the domain is being destroyed at this point. 

Thanks,
Denis


From xen-devel-bounces@lists.xenproject.org Fri May 15 01:01:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 01:01:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309314.1580340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNgvr-0007LK-4f; Fri, 15 May 2026 01:01:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309314.1580340; Fri, 15 May 2026 01:01:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNgvq-0007Ja-VU; Fri, 15 May 2026 01:01:38 +0000
Received: by outflank-mailman (input) for mailman id 1309314;
 Fri, 15 May 2026 01:01:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Jason.Andryuk@amd.com>) id 1wNgvq-0006ND-0w
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 01:01:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNgvo-000fk1-5a
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 03:01:36 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 6a067066-2eae-0a2a0a5409dd-0a2a45048a66-18
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 03:01:35 +0200
Received: from [40.93.195.37]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 6a06706e-1dec-0a2a45040019-285dc325780e-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 03:01:35 +0200
Received: from SA1PR05CA0008.namprd05.prod.outlook.com (2603:10b6:806:2d2::15)
 by CY1PR12MB9584.namprd12.prod.outlook.com (2603:10b6:930:fe::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 01:01:29 +0000
Received: from SA2PEPF00003F64.namprd04.prod.outlook.com
 (2603:10b6:806:2d2:cafe::20) by SA1PR05CA0008.outlook.office365.com
 (2603:10b6:806:2d2::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.18 via Frontend Transport; Fri, 15
 May 2026 01:01:29 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SA2PEPF00003F64.mail.protection.outlook.com (10.167.248.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.13 via Frontend Transport; Fri, 15 May 2026 01:01:29 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Thu, 14 May
 2026 20:01:29 -0500
Received: from [172.22.59.187] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Thu, 14 May 2026 20:01:28 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LC5mk99qvxWRCon06e0XE2+eORAxlWCTT/7BtMiVpst2KC2cjsMqXeTeN7LcpZX/Z0r5wMyKWhrV6H024zxpMXcGmqJOL2BCbIo2nWOAvywMosTOjs2Q3Fymi+CBIhy2eP7Mayqk8/yuPC9xgzCxuExdQ2cyd25FARixK5He/uFXou9mlDhuWlMc7HxhAQJEyZqvZ8gdfduX+bA50I2o/k+9Gwwm+M61lvXl5lEDebfkcPC4YqneNPTptTOiW6U2mZ+aZzZfKwYU2kLqGIZJZU+qyphyx1tGvvroNI6gDBXukriarUr472PE+3vSeNUSkDTF0WonpvQy1g2IBh/Y1Q==
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=Je8W8zM4s44lRTI5pNkIFUj9YashlH2zchz5vH3mpi8=;
 b=WLNhOVND3xPRvodRehhcgSAG9L1qjINHIzSrfJzUn1OgBxFy+dAchTjoL1laQNJzhPO88ljKToVpvcvKyiAce6HtG0bnBbt8/XysGztfLn6f/aPnIZQA5zAFGlO/z/npSt5bGl0coIs+/54/Yr3Y3p6AZ50Zn2DYvNIyKBWzhDoUfp4Nst0IE6dIl0YNSQUvljlxVRQgNeqepVzFHBowp4aY6Yx36s4/hMZX/yGLVzsAfAUDfPziHqweNnNIeZ/F3zI2ldrCFgB7ZdhPctN2mf2hjefmvyPuHCLWEJRsZuU4FlsYmeixOW86nrvezV3AeQytv0obyMahzyV0jsW9ng==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Je8W8zM4s44lRTI5pNkIFUj9YashlH2zchz5vH3mpi8=;
 b=nDvS0Dq2yA13za77NMQiG5vLgiVDUGrJwpDkGErwqu7akey4I4h8LdgUzpqtHbPikUlZyc7npRrdCV13WVaA07V1hW3T7+mwF2BCAXY74vGLPoHhMODjSahVpgxaDRLc697/zU/rHMfyOohK/oA3FeuDsCkqXYWq/8EV8/bLBKc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <591387c7-e78a-4bd2-ae52-c98d66554cbd@amd.com>
Date: Thu, 14 May 2026 21:01:28 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: map_domain_pirq(): pirq already mapped?
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>
References: <700f3bd5-2887-4f30-95b2-5dd19fb91abe@amd.com>
 <agWHLHzvhKCLQMI1@macbook.local>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <agWHLHzvhKCLQMI1@macbook.local>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003F64:EE_|CY1PR12MB9584:EE_
X-MS-Office365-Filtering-Correlation-Id: 95e40369-d5eb-4cae-c194-08deb21d7f57
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|1800799024|82310400026|22082099003|18002099003|56012099003|11063799003|4143699003;
X-Microsoft-Antispam-Message-Info:
	R1WJ0cnwIA10hqERQhNRrit+hCFsZwyM9hveQzBRb5DvZXm2RBbyHEl/Cun+Ugo1e5JB4RMF6gdJgD/5NF1lyUT7OgbksVICRXwZavdlxuxf4TdcqzbWPtufZh0BJvd2wujuSua/AYElH4EKelRrVWR4mdJiDxt/zZSRXTslt9cHd1X+cWVoRHlLOxSS6ynp+d4fUXjKGqPfs5hUyZKAdKC8Gd95N4bBUq18I8S+lvJgLhV6Iwx7hkaUio4mYOWoyWZ4/EjJ7qLESpMACvtRJBJaZG3Txc0OydQMv+D5rnVIvLUk8He3bLNYpX3SDSEY3vWc9fZff3C5OgC3qj2MB+Nuv06VRzOOXtH7GFWTYWQ5RCGjm18MdQfjFlRdIEO0pOSTfPTScQ5/ZJaQAP10U3AllOIwT5SaPIVu8NiIlPPT6n1fpb1dKgls5W2NY0g5CN3LIdQxtVJTswiUjCu0w1xI1+2djpyolPQqXC7CBvbt8253UxRNNP42cRNjFL3F3Ujvuo6hxe9AU+Ndl6+N6O052XHVNh37kdxSlHKd1YG9rrO6qyuhfsS5bQQDdEHOG/cnx5g6dFSX5rSE0/24HzX7GwTVQDgB5/t2gY2hedUt5peqJCkcbWWNxCpSV2fxJHYC9IFh/S55zB+d7IJEVLB4NUVUBiya5zoWSDshuc5I1Sm+exCKni/amEuEVt+ji5E2kMyXlUQ94OLVM7QGYgM7r99/3jHgx9oPvOhB5u8=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(1800799024)(82310400026)(22082099003)(18002099003)(56012099003)(11063799003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	/7S4+UBS1UVwOStO3ktXyrcpfyrVGnoXnBwclYyx7wBYU/Lx4NOfqiGTzshUmZSoxm9m49VFbN7ycmS6/fGiJlLLIA9IpSNpuy3KQScEWwCKaI4ukGtGZMb1tN2l1DKmTbJKQSq0e1pwYT6vgQVurvY682rQK4YP0Z1lTto2AMPFdIRqbM6ZF+WvE25xvhuCdwcWtxBhT8Mme+o2pBGSHfel7ccUODXDbhb6iHjwp5QVBwAyOkyKqBAIGBRVrc6T7aGCEzI+Qb52tNVYqTyky+D3wYj0T87OBS2cYNGb41PgbESjXIEW9rvi8vx+/+QGR5FS/SnCllTspTNqsu9KNMGFQVJRd0dvyEJkt1rN+roFNqIkFK4e1HDd2oKLRNELPG+7f3n2pSOKOBTAnNHLtwUtTvnRvBZTG8Ot2+qntmvlwSaOVtyAHFJq5Xb64KnX
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 01:01:29.2729
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 95e40369-d5eb-4cae-c194-08deb21d7f57
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003F64.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB9584
X-purgate-ID: tlsNG-ebf023/1778806895-4866B3FF-B290B3B4/0/0
X-purgate-type: clean
X-purgate-size: 3373

Hi Roger,

Thanks for taking a look.

On 2026-05-14 04:26, Roger Pau Monné wrote:
> On Wed, May 13, 2026 at 09:18:46PM -0400, Jason Andryuk wrote:
>> Hi,
>>
>> Early in map_domain_pirq(), we have this block:
>>
>>      old_irq = domain_pirq_to_irq(d, pirq);
>>      old_pirq = domain_irq_to_pirq(d, irq);
>>
>>      if ( (old_irq > 0 && (old_irq != irq) ) ||
>>           (old_pirq && (old_pirq != pirq)) )
>>      {
>>          dprintk(XENLOG_G_WARNING,
>>                  "dom%d: pirq %d or irq %d already mapped (%d,%d)\n",
>>                  d->domain_id, pirq, irq, old_pirq, old_irq);
>>          return 0;
>>      }
>>
>> Why do we return 0 instead of -EEXIST?  Since the pirq is not updated, the
>> caller doesn't know that pirq won't fire - only old_pirq.  For
>> allocate_and_map_gsi_pirq(), the new pirq is still returned to the caller.
>> I would expect old_pirq to be returned so the caller knows what to use.  Am
>> I missing something?
> 
> Looking at bfc341a65cfb2 it seems like this might have been an attempt
> to keep the previous logic in ioapic_guest_write() that didn't return
> an error when attempting to add/move an in use IRQ, while switching
> ioapic_guest_write() to use map_domain_pirq()?
> 
> The commit description is not very helpful sadly.  I think the mention
> of "And this patch also makes broken NetBSD dom0 work again." is
> relevant. AFAICT NetBSD will do PHYSDEVOP_apic_read -> modify RTE (ie:
> set mask bit for example) -> PHYSDEVOP_apic_write.  However the
> semantics of those hypercalls is not symmetric.  PHYSDEVOP_apic_read
> will return the vector used by Xen in the RTE, while
> PHYSDEVOP_apic_write expects the vector field of the RTE to contain
> the pIRQ.  I think this is why map_domain_pirq() was adjusted in such
> a weird way, to ignore requests with bogus pIRQs and still succeed, so
> that PHYSDEVOP_apic_write would also succeed.  Ideally the interface
> should have been adjusted so that read/modify/write cycles using
> PHYSDEVOP_apic_{read,write} would work as expected (iow:
> PHYSDEVOP_apic_read should have returned the pIRQ in the vector
> field).
> 
> In the context of GSIs, I think we aim for Xen to always identity map
> them (so IRQ == pIRQ), but there might be (or might have been)
> hypercalls that could allow you to create non-identity mappings
> between GSIs and pIRQs.

To support non-PCI passthrough with Hyperlaunch, we added code to map a 
GSI to a vIOAPIC.  It does not require identity mapping, and that works. 
  It was while testing conditions that I expected to fail that I found 
the behavior.

First map:
machine A -> guest B
Then map:
machine A -> guest C "success" from the return 0

> Explicitly looking at allocate_and_map_gsi_pirq() do you know what
> causes the domain_irq_to_pirq() in allocate_pirq() to not return the
> already allocated pIRQ that matches the passed IRQ?

Well, it's PVH and I'm making up a "PIRQ" for the vIOAPIC.

> Overall we should likely adjust map_domain_pirq() to return -EEIXST,
> and then fix ioapic_guest_write() to shallow such error so we can keep
> the current behavior for that specific interface.
Having been focused on PVH, I didn't look much at the PV behavior.  But 
it was still surprising to see the "no-op" success.

Thanks for the pointers.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Fri May 15 04:08:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:08:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309341.1580386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqi-0002D8-AI; Fri, 15 May 2026 04:08:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309341.1580386; Fri, 15 May 2026 04:08:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqi-0002CF-6a; Fri, 15 May 2026 04:08:32 +0000
Received: by outflank-mailman (input) for mailman id 1309341;
 Fri, 15 May 2026 04:08:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjqg-0001oY-DC
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:08:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjqf-00GbfP-PR
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:08:29 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069bea-2eae-0a2a0a5409dd-0a2a4502b15c-48
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:29 +0200
Received: from [40.107.74.73]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c3a-af86-0a2a45020019-286b4a49ea93-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:29 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB3981.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:22 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mtKwuIZPDKs9Nc7vf3KMSPtl+i/TN1cJbJ9RR4x2hRnLhZqU3r0MYSpZXelSshVm5oNGx2lcqAB8+pUqVfVD2I48hE1ct5eK/2OcD4KzOFIji/dflXpu9zUzQFBYUo7EipgVqUY3HILJvVtx1ZKb5hdV6PuZuIEsC0W37KjXkxaxfjcC8Bram4bQMIGZYnAs3Sk6+iDqFFhzaU63JgqynQGVkAuY2GJgTS2eLumEeKLgnb7v1SrbtcCK3Smu7KjZRNnW6c8HTexLAVn1MV2+bQfnvuMy1wLZE9cEPnfrDe994k8tkKUoA/eXMAy6hhjKEMSZRRysqyeMn7GOiFSVeg==
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=je+2e5JLShwscO+d0I1NHDPQJTM0lMJ5BSNSbA846H8=;
 b=odapd3Be5VkQtBbRH1uwN0il268YOIwXXv1evWs55d2udpriuVqsx2pB2WfSpdh8gFKBUAQ+Y5hqfT6O1DXyVwiKjJNlZ+vETnhk1ujADMbouvgWhPs5ppegHYVMNohvVQNshqz2pI1+PEhuALw2xwjB31+BUkV5O2Abx+P2jgvxn+Ow3ksIetfAro5577HNpYPIuPQC0m+glR1KXQ9uoLDQcZTzRTlnXqVs1OBIDvONWGMJ0r/HIoxM5b8yLvI3imNYRjltq5TnsQIueq5abrKpXu8no37bAicm8vvwm7e9UxHV6/XJ8DBqUITpxetuVyW7dwNPE6oSm5weOPz0vw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=je+2e5JLShwscO+d0I1NHDPQJTM0lMJ5BSNSbA846H8=;
 b=ZjirFkkQx98rdoyoHp0f1TXHftt87gcG3KYTcEP61fQd2vmJ/dTCo8A81If/K2yshUT+/4YYD6QNQB+6GfBkc1xsl+9PIO0Ui78D3XCxqbIlAA4bMo18FETDWiDWHVidYLizcRYH+77bBvAkfHhmTw9JWsYwfx7W/TBiJovVK1w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 05/26] xen/arm/cca: track Realm-owned granules
Date: Fri, 15 May 2026 13:07:51 +0900
Message-ID: <20260515040812.983626-6-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP301CA0002.JPNP301.PROD.OUTLOOK.COM
 (2603:1096:400:386::20) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB3981:EE_
X-MS-Office365-Filtering-Correlation-Id: 195e6b72-698f-43dc-46ea-08deb2379ae0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	2hFHo+3ayg7fpGrZMm0jWxN7Zm35WD0WjW6Cdb2qx6y6Q7uGZVOCBvspdVSOkAjCOw7XmcHKPWmKBte02VClaozk5MuUAw0J5dzrS85nAATMINjdPplDKYuL/hihsgT6mEfzmzCVjXDO1/8PVs0YrvC00J/EDGvIlpEVUeCPbaaGrEq2iznV4YUC/HKwXwelpK3EvKGQ93Go/z79mWvppy84OkeZprGzI5XkFXL++azUM3ABCbFGhsRskZJiQtwD3keb4kz+4lYgk8lctqhWcryhh/SkAdWTqQcohBqT3auO+MUROWKIFAoR1TVEts93GcBa9qDYkzZs6Ei3jkZhHz5ttjz4Wv19n9DEK3GJYjjZK3byaQRoAI2myqxJZTBN0if+ivHZ0SbfwP2z08odWRfNNpVM37LyglMHBbXbINCbPkPySBUwqS+4D8+T3ACOOZmsoi76u8psBIHYxTXioSt6YdKxXi0i6efceWlBp+tH8R8NC+wqF5p0dPTs/dTV1jhEmJmG1L4C8BamxoR2MCiJ53J9v8veKlYxSWpQXWjFJzNVOV8j3b72ew6LvRJALskkCdDHZstLw/DRJL+IVAigarzIW6nHHR3X72/1glVjJzXgvlNERJv4OLu0fyqpY7T19s5X5A/DGoalv9UxFlQQpaAuOYXyTgSFsYLUbkE5aO9iAVVt5x9LfJS+oiNF
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?CFB7Kx1jzuSfLvky5aP3ky6Jos3A39MnUy7FeTnwnRlTHp6bOZe1kFRrcN/+?=
 =?us-ascii?Q?eh1/cu1EWgp3+u7ECQWEaJH4JJLE896OLSNz8iVa8YnpHo0a/wUnvHk2Rn5P?=
 =?us-ascii?Q?+4/qC2ATxC8h8WeXFMCALapu4HiYNgKBisY4sKnHp80mFTlR1DkoeGRSvhXK?=
 =?us-ascii?Q?Pn5jZcEZHLkCgqxZ7wCy9YVKiRjIKb94vyXmZCOVcQMig4pp/MmR4XTPBqNE?=
 =?us-ascii?Q?lEO3aD36Fqu2OpIFSYmP5LKmH2zAt8Y7yCkC5+b92kqdRRoSw/WgwwgB4PhX?=
 =?us-ascii?Q?gmtve0U0xvJVRk/D0OXHSffmalfTa8SKRV7BrouobU1lXp9tfahiDlqqKKCi?=
 =?us-ascii?Q?ZD/r6SIqA5davDU0zMw4Uar4eiC/93qrNEfCDghKnOLTRo8+T7DkC4na9xB3?=
 =?us-ascii?Q?kVzgAL3e+QHkF8tbTeo3PT0KBv7wbfFKPGHmVL2MNgoDEY011DQ4qgNLJHIg?=
 =?us-ascii?Q?6UcGbdFMlQcY9rNvKxYAwnGy34dMD2jDetwnjQmssvgPDdaVpCzdGjfaV6NS?=
 =?us-ascii?Q?Ye/jZ2/HQXqHqTArYVXWnkje5uuZrHsH4cd99iVLF7tl8TabqAHuVfXW/s0g?=
 =?us-ascii?Q?Rmd2wod6RLy2R0c+ZAtEHEl8JAYbqoO7ag66pj1PFpZdnmUG7ld4RvsxsoJU?=
 =?us-ascii?Q?V9mwDepUjUkAaq5CUhflV+u1JvUd2fHJMiDXBtD4sNQKN21hXON51d1f12Zi?=
 =?us-ascii?Q?LTDmfT4b8GBXJi65wEOsGHrO7DLEQsZoUzC/EpIswlwLVUDh6ueBEEZTjtMC?=
 =?us-ascii?Q?ZyvXzdGysVwHA0QgBQ7P1eCS5BNVhF2evR/qga6XHmgu8W7r4EdGl3vPqzMP?=
 =?us-ascii?Q?OCMz26SIcUCE5CSXINZ8cW4TWIJ8SpSiNSV2EUDYP1RBsqtwqf1Brod0EmHq?=
 =?us-ascii?Q?0IfGZF+FAeNM9wcsO2i91kuuypt98+DR9IboIrCAvMvHM7P3+J7M71WKJ2i7?=
 =?us-ascii?Q?oebUweVruVgcGMaeEvzS1WP++5s2yKXy7xJe2r9UR6nARl98KRDyOoRlBXP0?=
 =?us-ascii?Q?Fn8ua5B03VIW9NVRBZcjphIISuHnJY6IdqYLV19ZNvxGT/Km+125E071BdTG?=
 =?us-ascii?Q?H3XSkjFichVOUdyXaJ1aYW2CRKIrDLgiaEgvvcnFgfawFkzD/pYVOZCJcLQ4?=
 =?us-ascii?Q?y/oJfjSNFfGajpp5zZL00H7MBcpHzKCB/lUDlzU4N+S/oKfSHFj7Ab8nB5qm?=
 =?us-ascii?Q?8PNakP9AEsxt+sTZ8SScuTXusNVQEyBnutVo20xBMIFusazNnNBG2g9Cvw1I?=
 =?us-ascii?Q?rtJ5V0V5r+1t+qxbDL2gttM+lVmTqfhWzp8nuERkOQCyiSlfwjKMcHTpY5TP?=
 =?us-ascii?Q?YY0tsGoYq3fepnP0Ko40kBpwv8dS+lJz2pOmbY+g/TklZ75w7NfFBdmH7Dhn?=
 =?us-ascii?Q?+LqRtNYDJ4GUiEOuyOGo7mD47dzKtKOk43vO+VDsHrJHgrDVxaIgAvMrkhWk?=
 =?us-ascii?Q?jP9WX+0C5eBnN80QANHXiyqi52wRDnMBzHT9PJ1kP3yhtle+UywJAToPG6bO?=
 =?us-ascii?Q?flEW7aMVFaae2Kj8ANQbcsUqUld4lghfs65duSHl+p3nMKXl9+ZQn1i0R0w2?=
 =?us-ascii?Q?cL0la7sEgRiKB8C5MLhsqm83biMnE1k7GHYBzmI3QzLXtiw4dcMG2iCDVQMR?=
 =?us-ascii?Q?v5y/pwL1d3BmefNcrUASQciZcrQfhwgXiXdLAX2XL6c/MSEF6NaZfceLZGY4?=
 =?us-ascii?Q?5f127H6r4lX3fdaxIIWBDlpRRIUToK845t/Lp0q9iLyG4FQIB1icrZ3gEqfI?=
 =?us-ascii?Q?VIOwiKq1TCPGsgL8UeVYMjxHNoh6dVd8F7QM/V64PgDj+Ty11J9H?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 195e6b72-698f-43dc-46ea-08deb2379ae0
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:22.4995
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5rCZAjq2hWD5AJr7kBSdfXtjpNgGfB1UlAcHYKWBwy0zr5swQeMBHDYsnyYU61n22k3YYKy/1RX5Mz24G4GZbQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB3981
X-purgate-ID: tlsNG-720697/1778818109-81971161-745DA4CC/0/0
X-purgate-type: clean
X-purgate-size: 3368

Track pages once ownership has moved from Xen to the RMM. Teardown uses
these records to hand them back in the right RMI order.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/state.c       | 19 ++++++++++++++++
 xen/arch/arm/include/asm/cca.h | 40 ++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+)

diff --git a/xen/arch/arm/cca/state.c b/xen/arch/arm/cca/state.c
index a47d9cd7b6fd..66375965a1b4 100644
--- a/xen/arch/arm/cca/state.c
+++ b/xen/arch/arm/cca/state.c
@@ -10,17 +10,36 @@
 
 static void arm_cca_reset_domain_state(struct domain *d)
 {
+    unsigned int i;
+
     d->arch.cca.realm_active = false;
     d->arch.cca.rd = INVALID_PADDR;
     d->arch.cca.rmi_features0 = 0;
     d->arch.cca.rmi_features1 = 0;
+    d->arch.cca.rd_page = NULL;
+    d->arch.cca.rtt_root_page = NULL;
+    d->arch.cca.nr_realm_sro_pages = 0;
+    d->arch.cca.rtts = NULL;
+    d->arch.cca.nr_rtts = 0;
+    d->arch.cca.data_pages = NULL;
+    d->arch.cca.nr_data_pages = 0;
+
+    for ( i = 0; i < ARRAY_SIZE(d->arch.cca.realm_sro_pages); ++i )
+        d->arch.cca.realm_sro_pages[i] = NULL;
 }
 
 static void arm_cca_reset_vcpu_state(struct vcpu *v)
 {
+    unsigned int i;
+
     v->arch.cca.rec = INVALID_PADDR;
     v->arch.cca.run = NULL;
     v->arch.cca.run_pa = INVALID_PADDR;
+    v->arch.cca.rec_page = NULL;
+    v->arch.cca.nr_aux = 0;
+
+    for ( i = 0; i < ARRAY_SIZE(v->arch.cca.aux_pages); ++i )
+        v->arch.cca.aux_pages[i] = NULL;
 }
 
 void arm_cca_domain_init(struct domain *d)
diff --git a/xen/arch/arm/include/asm/cca.h b/xen/arch/arm/include/asm/cca.h
index 1be43327119e..6bf644fbcee5 100644
--- a/xen/arch/arm/include/asm/cca.h
+++ b/xen/arch/arm/include/asm/cca.h
@@ -14,20 +14,60 @@
  */
 #define ARM_CCA_MAX_REC_AUX 16U
 
+/*
+ * Xen implementation cap for pages accepted by one memory-transferring SRO,
+ * not an RMI architectural limit.  Switch to dynamic tracking if a real RMM
+ * needs more.
+ */
+#define ARM_CCA_MAX_SRO_DONATION_PAGES 64U
+
 struct domain;
 struct vcpu;
+struct page_info;
+
+struct arm_cca_rtt_record {
+    paddr_t ipa;
+    paddr_t pa;
+    unsigned int level;
+};
+
+struct arm_cca_data_page_record {
+    paddr_t ipa;
+    paddr_t pa;
+};
 
 struct arm_cca_domain_state {
     bool realm_active;
     paddr_t rd;
     unsigned long rmi_features0;
     unsigned long rmi_features1;
+
+    /*
+     * Host references for granules whose RMM state is no longer represented
+     * by Xen's page allocator alone.  They let relinquish complete the
+     * reverse DEN0137 2.0-bet1 A2.3.6 transitions before the pages are
+     * returned to Xen.
+     */
+    struct page_info *rd_page;
+    struct page_info *rtt_root_page;
+    struct page_info *realm_sro_pages[ARM_CCA_MAX_SRO_DONATION_PAGES];
+    unsigned int nr_realm_sro_pages;
+
+    struct arm_cca_rtt_record *rtts;
+    unsigned int nr_rtts;
+
+    struct arm_cca_data_page_record *data_pages;
+    unsigned long nr_data_pages;
 };
 
 struct arm_cca_vcpu_state {
     paddr_t rec;
     void *run;
     paddr_t run_pa;
+
+    struct page_info *rec_page;
+    struct page_info *aux_pages[ARM_CCA_MAX_REC_AUX];
+    unsigned int nr_aux;
 };
 
 void arm_cca_domain_init(struct domain *d);
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:08:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:08:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309340.1580381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqh-00024C-VG; Fri, 15 May 2026 04:08:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309340.1580381; Fri, 15 May 2026 04:08:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqh-00023W-LV; Fri, 15 May 2026 04:08:31 +0000
Received: by outflank-mailman (input) for mailman id 1309340;
 Fri, 15 May 2026 04:08:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjqf-0001nN-Th
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:08:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjqf-00GbfP-9l
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:08:29 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c0b-2eae-0a2a0a5409dd-0a2a4504bda6-42
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:29 +0200
Received: from [52.101.125.129]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c35-1dec-0a2a45040019-34657d8136d2-6
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:29 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB3981.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:21 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mTaEbr6yRRq0aXvYCtBaJkIVY2thhsVNnScppWcep2Ie5zC1kfPd8tlk6tGy7CWhO+IhekcDDt8uQAXlrijDTlXfBAn8UUgd5lUhoO12WbRd/GxjBJzrxt7vBBeI2uN7if99lpT3ycYfJSjm2hOZe/GIjDLvS7Ilh9IA7bqbxUJM79xmMfnzpFcXb0SOTZCdQhxup9sDubjwm/GE7kNVHyT+0uD6QRPBkqTw13CNFRbrHa4DSqLJjuXdSp97Ic6SeEr4bCmunjFV3zida/bm/QSHeQOMsB3IVDg8RZRSr/vlI8yGE4Dkq5ZLRmU8t1k7wS8eaJ5SHeBpxaWMon8coA==
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=GHrMD1ZRwMJqiJUr8zXCjReMk57kt2vx8gsp61dgHdY=;
 b=BMTlo11NVJUJKLoF1fFHOT3BLVHDvz3jz97w0j7z0YCY43sWy5nixffvvuSF+SB7+WXYojmREaiVfkdD61l1RHLiaMK1yCJUwUw4lJEz3Knfpir53zi1+yOTILlwhJYACcSQ6vaa83dFs1/V4HXZkzJWjh4GSHN46DXf26GFAvf5WcsJzh5PKJpDdNkxpeudCCL8yqMua5pi7aYUNUrSvmrqPGPNSXfjDHvhIq5SYcMrSWR1Sl5y9XcQCWAbGa1/FzDVEmQd9FRWMMybrJn2AV+sHvq3EY1X5RtbIO+niEU/LL64RBpEsToBBA78JVJDfXZgrUDW+eBl5ShY5ILaPQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GHrMD1ZRwMJqiJUr8zXCjReMk57kt2vx8gsp61dgHdY=;
 b=YO8H+Lk3yXoDNDOwAngEecsWQQt5tReFNepMSlG24T+naXz9urWWiv77rubuCHdLFDzlyfKx5AfOp+Our6Ncu2lnr985EUpmoJm9fK5qTH6Tx2IMP0y2DQFPl5Yq7IolVdW0h3VR7vJ3f+OuELokQLtvdOuy5OPZ2YybWcofT+I=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 04/26] xen/arm/cca: add Realm domain and vCPU state
Date: Fri, 15 May 2026 13:07:50 +0900
Message-ID: <20260515040812.983626-5-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0352.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:7c::19) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB3981:EE_
X-MS-Office365-Filtering-Correlation-Id: 63cdcc5a-39d3-40a8-b9c4-08deb2379a6b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	ZwoBko41sEgLYwrUrKmeEfiYFlxIgyph0mcsCSU6JEuJRI57Bf2AmHyd+NkzxkU/qbzAvY0Q8REFvkQYIBLvhRrsumiz/QPMc5vHVEfgTCEJJWEfvEIwypZKuyGwCns4rCIp+6WQOrTwxxptYN6cvYoN1rnlJVvDk9gq5hbW0Ohb5fjf4P/rUvA4WgPrlvpYzELkwsiJzJYtv6Fa2QnFHPJQOZ219S4HHsxwGgdOWawnKm80SreoBbRCwAHtT7ja6WMRH1plXasL2BJ0W5lCzGEW3Hllz5cfn1GNqqH1XRBObuaqICFtd/fgYxqwkFJsRUPpq22IGHVl5XFVkJ8BxA4nKhIzyfm2nwzrBhIypNIaSs1KMgypdVJM/YMCSMeD5BcNRfQI8lYA3a7qMMSWsEz538opakLw2v6P1DtIDhLGb5IytSKUz1U72CsmbFWvtYo4L5Q5vZCOqEi6s0pwDPnS3Sq1SS4pr9nWsAjmGozKqVLfRIxkGQoIVfX5YkqB25W2SQrWfLo3IPVgut2ukEHuQkdMV3E+KTR2gmLEUXNdPFGTmIBkrMiPKnYpDV3Sk3YyyMH7AuzHwmZ7Ebe2yfa0KnFkD6DEn1T23RU//UXaHFpLu/yvjd+Zh4tN7oEao/bmz23EqjKTnET3YB4hcErcU4z4lBqSIuQLREhyangYt7ShhhlKoZLAIf1wbitx
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?rH48G1WSS7ntts+uU4P35t2pPu2uGKffcwDNg8in9D3Xn/sWMzZwaa0Ufq/7?=
 =?us-ascii?Q?374LKqjJR/uPgRl6sA94QBBW2Laq89SuLpA57ok78I8mmdVqcF/15wkgnBon?=
 =?us-ascii?Q?/tQhjGbp/VEAO8CSMqTZ5R/b7JOwUz/00lsFXYIrMtLKSM3InZLGgfdGXFxf?=
 =?us-ascii?Q?tDcitylIUNvpMoAhauXf2WlK2hTDq25gaqAzc8SeeJnO+TXeOW0EGDgbguRe?=
 =?us-ascii?Q?yR6K4TjBOWRQJV+6FeMFlPwX8aJ4kk7ZMP30/nymSpePKgMtuqTrf34EQNqt?=
 =?us-ascii?Q?TyknlgVo/Wji2fSFjiHyW9tbFOcPVuPTkKBl+sYHfdXUUmMJxVPVxYLq4/9Y?=
 =?us-ascii?Q?DFR+Z3f2lEHuFBv1KXQVP4Tx1SimuJpK4PYbrgY9l3bDNSush8JhkTMF27NN?=
 =?us-ascii?Q?kf3eiRZU8g1AN9Zwm2PRivqYEiy89iS29RJz8/e8RckvpjnRm8+1WMMTX7BZ?=
 =?us-ascii?Q?iVv4wOBHH6ON2Brw1CIy+9UiiVN8Z8hP0Yg91vQLt0rCHLYEC815PrYCqH5A?=
 =?us-ascii?Q?Ny1+WD2ko6FQ5T++gek2iyref+l62Nsi8uYSUyyVVtbBMgT9I6DPDpOrFCtj?=
 =?us-ascii?Q?7tQlgbDixBW0ywIkfl3WmmxOoipDOJuVWUXYlSaCiruv8WfIa7bwuMUDufqk?=
 =?us-ascii?Q?pzxoIyNsJ5+6iX04P34Eg+sYz4vnzMcbUVeBKYUEowfMSkW1o5HQKRHsBFkx?=
 =?us-ascii?Q?54o3jzO4Pq+MMcnJrpXTofkkYAuMosWraxxgUoZmizWlvwmTH4gtDjOLeL8d?=
 =?us-ascii?Q?GMi8gqbe9IlZWKZMRGkxCCcn7Z/QqTSFEjX2Mx8/UJqHDUE4VlBUvaCDpxbO?=
 =?us-ascii?Q?Td6Lncb+NuNK17un8BDmQ0ygbISEPllUQHJsY4HVxevIJxjjIqssY9TjCL2u?=
 =?us-ascii?Q?UCecuttsmBe4hGqK/6uLsmEH+9vO8LMF/+Lkk/a/Yfsgcal5DaaN+opATJvW?=
 =?us-ascii?Q?hN4Pf5rfynfb/24WbNQOFWyhzW8L5Bvq84/xCZkoHAA/MTiYQm/FOsr092uO?=
 =?us-ascii?Q?ZaiEJq893izYSp7gZL1DS4Zyb3xrDv68s1JfauPASRew44wk2y3GEE8pCNVf?=
 =?us-ascii?Q?bzg0WC+St7wjlWB1MznRWwZMl03bPm3gOkDCmJeXnc+5f+JBhQrA2XHzQviA?=
 =?us-ascii?Q?qH8dCKtNo+2iVvOEljRG2Q9RQ9/O2ER+ZXGlwa+9wuj+Tt15BI9+vQlxGxiC?=
 =?us-ascii?Q?4sBzypVZ2RY+AV5Ti4Kq+uuBU0xkp6CWnvwZTREu8rzUAZegW4Z5o4mlMNE6?=
 =?us-ascii?Q?SiELhZpkydBeYYGN9MavW2RNMVANn/C6YFVERXTSWOnYcJXrjRVG17JhOUEP?=
 =?us-ascii?Q?nY8ClzuIW8cwM01jUB5pSEVLC3Ywj52e75wgz92LuJQJl9awjFcRgJrfWDJu?=
 =?us-ascii?Q?HtLvPZheW+M8+uKI0t03x2CkNYiDzqLDwye/jXzAR2QXjZs+QaorZxLJDp1y?=
 =?us-ascii?Q?kd+TiRExB6H/spI9ei0bKFS0txBI+6urOBAZ4k2n0pTwrIHd3vbfz1VhEZjC?=
 =?us-ascii?Q?6lBeaxXIJ7m8VjZQPNksva8JU2Z1J1LX88ds/TrWnsop5RIOzWmj34XrMiyc?=
 =?us-ascii?Q?AFBVg2g4Ivp7IWg9HlHcpdgHlyJIBPDpK7TnNvURdHUdgWdowV4vkBGB+++y?=
 =?us-ascii?Q?TZsmT9IVYHhPkQ/NXp/rxfLT+9qtMClMhYtWzCYKxOTdtNMe5nw9dqLarHyy?=
 =?us-ascii?Q?9kTVORNn6gRlLlVIuqsT72iTJpLN/YfnvxaQM3cWubvE/qQzq9ZgvO79aNC9?=
 =?us-ascii?Q?ejLPkquqgtO+UrvGJ7fVfpKWwWSsa+BmgZpJ4OyeaRYfG/fXjALg?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 63cdcc5a-39d3-40a8-b9c4-08deb2379a6b
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:21.7474
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: TNRBO4+UpP2KShOZ2d/+cX5cNYJBst/cxA+omQEtPwX0hTNCvUFe7Ej8wCOhreNaCCnEPI6enYJ3Hcj1xVPEuA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB3981
X-purgate-ID: tlsNG-ebf023/1778818109-413773FF-243BD070/0/0
X-purgate-type: clean
X-purgate-size: 6468

Add the per-domain and per-vCPU state needed before Realm objects are
created: Realm state, RMI feature snapshots, REC bookkeeping and RecRun
lifetime.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/Makefile         |  1 +
 xen/arch/arm/cca/state.c          | 68 +++++++++++++++++++++++++++++++
 xen/arch/arm/domain.c             | 14 +++++++
 xen/arch/arm/include/asm/cca.h    | 42 +++++++++++++++++++
 xen/arch/arm/include/asm/domain.h | 16 ++++++++
 5 files changed, 141 insertions(+)
 create mode 100644 xen/arch/arm/cca/state.c
 create mode 100644 xen/arch/arm/include/asm/cca.h

diff --git a/xen/arch/arm/cca/Makefile b/xen/arch/arm/cca/Makefile
index 9c351f901dfd..aaa04e3b914b 100644
--- a/xen/arch/arm/cca/Makefile
+++ b/xen/arch/arm/cca/Makefile
@@ -1 +1,2 @@
 obj-y += rmi.o
+obj-y += state.o
diff --git a/xen/arch/arm/cca/state.c b/xen/arch/arm/cca/state.c
new file mode 100644
index 000000000000..a47d9cd7b6fd
--- /dev/null
+++ b/xen/arch/arm/cca/state.c
@@ -0,0 +1,68 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/lib.h>
+#include <xen/mm.h>
+#include <xen/sched.h>
+
+#include <asm/cca.h>
+
+#include "rmi.h"
+
+static void arm_cca_reset_domain_state(struct domain *d)
+{
+    d->arch.cca.realm_active = false;
+    d->arch.cca.rd = INVALID_PADDR;
+    d->arch.cca.rmi_features0 = 0;
+    d->arch.cca.rmi_features1 = 0;
+}
+
+static void arm_cca_reset_vcpu_state(struct vcpu *v)
+{
+    v->arch.cca.rec = INVALID_PADDR;
+    v->arch.cca.run = NULL;
+    v->arch.cca.run_pa = INVALID_PADDR;
+}
+
+void arm_cca_domain_init(struct domain *d)
+{
+    arm_cca_reset_domain_state(d);
+}
+
+void arm_cca_domain_destroy(struct domain *d)
+{
+    arm_cca_reset_domain_state(d);
+}
+
+void arm_cca_vcpu_init(struct vcpu *v)
+{
+    arm_cca_reset_vcpu_state(v);
+}
+
+void arm_cca_vcpu_destroy(struct vcpu *v)
+{
+    if ( v->arch.cca.run )
+        arm_cca_free_rec_run(v->arch.cca.run);
+
+    arm_cca_reset_vcpu_state(v);
+}
+
+void *arm_cca_alloc_rec_run(void)
+{
+    void *run;
+
+    BUILD_BUG_ON(sizeof(struct arm_cca_rmi_rec_run) !=
+                 ARM_CCA_RMI_REC_RUN_SIZE);
+
+    run = alloc_xenheap_page();
+    if ( run == NULL )
+        return NULL;
+
+    clear_page(run);
+
+    return run;
+}
+
+void arm_cca_free_rec_run(void *run)
+{
+    free_xenheap_page(run);
+}
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 26380a807cad..4b6115491c59 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -482,6 +482,10 @@ int arch_vcpu_create(struct vcpu *v)
     v->arch.saved_context.sp = (register_t)v->arch.cpu_info;
     v->arch.saved_context.pc = (register_t)continue_new_vcpu;
 
+#ifdef CONFIG_ARM_CCA
+    arm_cca_vcpu_init(v);
+#endif
+
     /* Idle VCPUs don't need the rest of this setup */
     if ( is_idle_vcpu(v) )
         return rc;
@@ -526,6 +530,9 @@ fail:
 
 void arch_vcpu_destroy(struct vcpu *v)
 {
+#ifdef CONFIG_ARM_CCA
+    arm_cca_vcpu_destroy(v);
+#endif
     if ( is_sve_domain(v->domain) )
         sve_context_free(v);
     vcpu_timer_destroy(v);
@@ -642,6 +649,10 @@ int arch_domain_create(struct domain *d,
 
     BUILD_BUG_ON(GUEST_MAX_VCPUS < MAX_VIRT_CPUS);
 
+#ifdef CONFIG_ARM_CCA
+    arm_cca_domain_init(d);
+#endif
+
 #ifdef CONFIG_IOREQ_SERVER
     ioreq_domain_init(d);
 #endif
@@ -786,6 +797,9 @@ void arch_domain_destroy(struct domain *d)
 {
     resume_ctx_reset(&d->arch.resume_ctx);
 
+#ifdef CONFIG_ARM_CCA
+    arm_cca_domain_destroy(d);
+#endif
     tee_free_domain_ctx(d);
     /* IOMMU page table is shared with P2M, always call
      * iommu_domain_destroy() before p2m_final_teardown().
diff --git a/xen/arch/arm/include/asm/cca.h b/xen/arch/arm/include/asm/cca.h
new file mode 100644
index 000000000000..1be43327119e
--- /dev/null
+++ b/xen/arch/arm/include/asm/cca.h
@@ -0,0 +1,42 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef ARM_CCA_H
+#define ARM_CCA_H
+
+#include <xen/types.h>
+
+/*
+ * Keep the public ARM CCA arch header independent from the internal RMI ABI
+ * definitions that live under arch/arm/cca/.
+ *
+ * DEN0137 2.0-bet1 - B3.99 RecAuxCount caps the implementation-defined
+ * number of REC auxiliary granules.  REC_CREATE gets them through SRO
+ * donation.
+ */
+#define ARM_CCA_MAX_REC_AUX 16U
+
+struct domain;
+struct vcpu;
+
+struct arm_cca_domain_state {
+    bool realm_active;
+    paddr_t rd;
+    unsigned long rmi_features0;
+    unsigned long rmi_features1;
+};
+
+struct arm_cca_vcpu_state {
+    paddr_t rec;
+    void *run;
+    paddr_t run_pa;
+};
+
+void arm_cca_domain_init(struct domain *d);
+void arm_cca_domain_destroy(struct domain *d);
+
+void arm_cca_vcpu_init(struct vcpu *v);
+void arm_cca_vcpu_destroy(struct vcpu *v);
+
+void *arm_cca_alloc_rec_run(void);
+void arm_cca_free_rec_run(void *run);
+
+#endif /* ARM_CCA_H */
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index 46a5cdc0c800..25230c18d16b 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -3,6 +3,7 @@
 
 #include <xen/cache.h>
 #include <xen/timer.h>
+#include <asm/cca.h>
 #include <asm/page.h>
 #include <asm/p2m.h>
 #include <asm/suspend.h>
@@ -96,6 +97,9 @@ struct arch_domain
     /* ARM SCI driver's specific data */
     void *sci_data;
 #endif
+#ifdef CONFIG_ARM_CCA
+    struct arm_cca_domain_state cca;
+#endif
 
     struct resume_info resume_ctx;
 }  __cacheline_aligned;
@@ -207,6 +211,10 @@ struct arch_vcpu
     /* Timer registers  */
     register_t cntkctl;
 
+#ifdef CONFIG_ARM_CCA
+    struct arm_cca_vcpu_state cca;
+#endif
+
     struct vtimer phys_timer;
     struct vtimer virt_timer;
     bool   vtimer_initialized;
@@ -224,6 +232,14 @@ struct arch_vcpu
 void vcpu_show_registers(struct vcpu *v);
 void vcpu_switch_to_aarch64_mode(struct vcpu *v);
 
+#ifdef CONFIG_ARM_CCA
+#define is_domain_realm(d) ((d)->arch.cca.realm_active)
+#define is_vcpu_realm(v) is_domain_realm((v)->domain)
+#else
+#define is_domain_realm(d) ({ (void)(d); false; })
+#define is_vcpu_realm(v) ({ (void)(v); false; })
+#endif
+
 /*
  * Due to the restriction of GICv3, the number of vCPUs in AFF0 is
  * limited to 16, thus only the first 4 bits of AFF0 are legal. We will
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:08:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:08:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309336.1580348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqe-0001Nj-Gr; Fri, 15 May 2026 04:08:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309336.1580348; Fri, 15 May 2026 04:08:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqe-0001Nc-Dt; Fri, 15 May 2026 04:08:28 +0000
Received: by outflank-mailman (input) for mailman id 1309336;
 Fri, 15 May 2026 04:08:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjqc-0001NQ-T6
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:08:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjqb-00GbfP-Qc
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:08:25 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c0b-2eae-0a2a0a5409dd-0a2a4504bda6-32
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:24 +0200
Received: from [52.101.125.129]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c35-1dec-0a2a45040019-34657d8136d2-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:24 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB3981.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:19 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OJxL/IMpQJmUgRs5VxGI2XICEhI0T5gC1vXu7RVdLRjyOvg3Q1naipgsfgabtHM9Ubh05H06f99AqtlTozYNDO6H80s97StjGz7cXZGRpfFHn1ElYGNoNVUQ5bGeJFEiisXAZZkMcQnv6uX7ohPqNLb6U70k9baqPyCzdgCAX9EXgS30jm5xYheS5Ry24UvZgxQx6/ScXNyRte+7Psih6fLyLhiDYgemdJeCF/KwCFaIwr6N86CaX91MwL92UN0rFZsQ3RdfOjQ0EQ64nxUf8Af/zztrJ7mRjHJtvuMJ9eKqyS65f7v/2gcdlswp8NRp7kJmQI/xdwdk6hWWKlGQVg==
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=zRhAUy+m4ZSSA0NruENsBXlnXW5tyOZSqdGUD5wIM0s=;
 b=EpJZGwSGz6JOqw3WAskam2PoOMh0S4o9azLj8jWg3jRuW/zPR7KKX8VHbSEC9jQkVNOHguOMb/rc32PxvckU7SgTtA5yOJtqoc4UBCkoJU6kqkHzdRMs0hPPpj0a+oi0sAUTV/P+t6om8iiAidnJy7zQUyJcilylvgiZ/iHzy+bosQJRd/aqHBp5MLBTc1nkttoTTwpBNbrYbPDxtYE6asurPzfW+G/dDDnyY3Z9FkG+8a7mrPgj9egtchynQ16sBq1Ar3FRhM87vGAJOtOKvbljhJ4CML6BVKDhL92yCX6/1upFRfMVWkhTYJrvVWa6H+hrkPVPQ26SFm3KAGeYKQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zRhAUy+m4ZSSA0NruENsBXlnXW5tyOZSqdGUD5wIM0s=;
 b=nuV4Os6NjRJN9CESTPR8Andtnci3UYfD0h6cIi7wBNyfMzXeEwO0DCpidsuKhUtgYa/JwQOneFKBa0+1XL6X5VOlTA+zZK57WI2f7gOOUms7C7tm68Fuqy+pf4id2KLGHAnQAKRvRXd1x0G2hnha1L8KF3qcLpA/8vLdjRoZXCQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 01/26] xen/arm/cca: add RMI v2.0 ABI definitions
Date: Fri, 15 May 2026 13:07:47 +0900
Message-ID: <20260515040812.983626-2-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0278.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:3c9::19) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB3981:EE_
X-MS-Office365-Filtering-Correlation-Id: aaaf22c6-02f3-4dbc-8e00-08deb237990c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|3023799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	CDvH6HKxcW4p9SA4LCABu0v1dAiH/jgC9IM+mY7LlKBUCGsxTOx8fMURl/ppDiL8poSiMMdqwqkMtdQooen6h09CMtLgKEMChCNI5QMgq3wWE6xye2FcXnX4YqZD+sjNy3BlFgU46ur8mEeqbUckzrdxTbl1vqLYo90EpdA0RHjCWch9+vV7OvaKRECeh+pCiQLrj90gODXXnGpqXPrQkVEfiE0EIerTjaEooTNXbZ+u1NJUDwAg9E+JK/sibBzOsSIOjCZp53swQJ/GR1YCNipr9xYeickySCdh8nkyC0PWXmbYPC8bjUq7QubC+khiUpzh9ZPMKcfJOGMBjkaiPHawl471ihWnsg9hBy/ITFN/0DnDp4g2h3oMfR4w+u951aWWeZocq69gjHcHB35/+hxDDM5MhvSqw1b+ope18BpcGUCTQWq+LZOsBceZI4s745e1CLkKAdLEOtHsnBq50v2tpSiY+NWy7GNa5vlxAxNFF+AytaVx0SbTeZ2qR7UqDiIJtPx+XkLncCa3JaUA1g4U5yilTTKGbRHzX5oFiQiLy6hmZAue1dyEKu7Kd7/RzDUFyhU1lFyn6zRTWJv83VZ1XuuikIQqtaw4eQlCbD5kGkmmD+p/dRzt1jK8Ok6H9suJkvK1SJUiNa43l2S7Yh8FjIu1KmH9GSbCCwewMSHzKg8kZIMBhaAsHciwfqA5
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(3023799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?F4Uk3HRBrs89kPJMw1ucVJGpiLhQIu8FXgafrnPGlA6zgVBYrIXIj0BjkHyM?=
 =?us-ascii?Q?wMYmw+O08osWDQg3rDKmQphNs0tvHBwgHFF2IMPOKq00WBHQPChYi5naUMHh?=
 =?us-ascii?Q?zOUMPPsVVL/VadTKF2Q3VLVZZXFuK6W+seHy4PEokKtlA1RoP5odeHkDecyZ?=
 =?us-ascii?Q?cUUKSAZddpkrZlEAmXmqx5IWs2pviYEZADXtXtQzb3yMxLhLdUDSyPdZyagk?=
 =?us-ascii?Q?1KlGYi7kk5+aAS3D+CYig9rAA+S90up7xKwJUvkVFzsoJIYbyUHl9MQwzcJL?=
 =?us-ascii?Q?tbCCS2IYL7pE33OULr3XZjv52aJ99XaRqvUElf6pbdlji6GEAhOwhts7F9qJ?=
 =?us-ascii?Q?a3uBW4EXSc+ARrM1yoBouuNGSDtMc+RpWbiDAF1SbvNXPYAwypBCHfWeqtP0?=
 =?us-ascii?Q?GbvFMg8neVzg00nl6d5aa9bUqD1jrw15fwB9T8iVuSTSiqcNd0VkzaMfjSLg?=
 =?us-ascii?Q?qln/lH0O4W7L5jFtj59srCxnyny7eTUVS2Eaq1K31yspPmNmdBDhlN2vAXxI?=
 =?us-ascii?Q?ZBM897AC+VO/iLZBI6ezR+37NoZg92kFFAGVSM2OuDD1pb/8Q5pQGTGI6z+t?=
 =?us-ascii?Q?yQ+pDenq9wp5HXcnAiT5Jc2FN6uTliTtBq6NpJN36TTrr+7LxoXt5LlIHMij?=
 =?us-ascii?Q?5eZRq8/jaUyme5D4lwA21eopCU/8HNqEeZL2CjTVQw/U/QrT4dSsfoSsLpjp?=
 =?us-ascii?Q?8t/+FKUZgW9xMlk/eRi4C4w36v5slQ9JA1mlMzC4bIdqrnpWvd93H3575xss?=
 =?us-ascii?Q?gOIRarah30GhLYE1ZjMjukwU4tdQ6PJbw3nznQOdAeZ4+/ZucopGsCXY3Ykj?=
 =?us-ascii?Q?sPErhRWj6cJWiIALNQEm8unZuzJvPz6rzY6ryothstpvHXxC4G2e1BoLQj6y?=
 =?us-ascii?Q?XSobeozkxsB8KpbknDaXpv5Z63cTU2bf5KrWej8Wfm2isqlF/ls42QRxSl00?=
 =?us-ascii?Q?7PCWlgBBAUA0yr/V6G6B9yrXLs7lKIpY+bZZBI+mxYHkvMiWlMTIkHylGSf7?=
 =?us-ascii?Q?dzlSVRWxSSBHFqSSHrX9/zwDTqMW9cAh13ANXC9z5jxNHUHf7iVvcv3lNUIa?=
 =?us-ascii?Q?Z/ukZN9zI0r0PWOsaY4uRoJAU4sw6KI5zo7QeXnijuUzMR3ADZcrcMY92gsI?=
 =?us-ascii?Q?jC8gOK8iqeNzv0sA0vdMMbo1QS3hG0dQEba6oQw5hoq7bvbRncPAMiHSYbHi?=
 =?us-ascii?Q?ofbamnfmJYRFiNrVFr4G8bjsRdXzNX5QYdLNaDkRHwj8jU6dYpxsJQqghQIN?=
 =?us-ascii?Q?TpyqYh3ToC+6sA4ovF4Xj3+py+fgo9gtC0XCItlDL0hZ5dicE/d32qRCT4m4?=
 =?us-ascii?Q?MUJf8OdRzrKHY+QDdGozroAOBHcZLMeJiKHunWtDZvjwbuPj5FlyBimMQhcV?=
 =?us-ascii?Q?oqQ+W0Nf7tiUeKn4pyEtXWsx3kragq7UnMov29wa0YP8F9+bCmTcqHFcnDl/?=
 =?us-ascii?Q?re8SYwL/eNvXa5ViVZI+a0ob1RU6+a9ZRFwi+xGcIBUS6HmqyOCvzjat5GYZ?=
 =?us-ascii?Q?cioa98kONJh0E8Ilj6UDhGW65blhIsdiaMkHjVtVutMZDWmNwPTZQIlY1BOE?=
 =?us-ascii?Q?hauhJ6StGlw87IHOFP6AMem5F2KMpDCLt/GVqN5LOC2n8OW652vq1qCHcFhH?=
 =?us-ascii?Q?tp21yC4fXKMESbqOG+ANQWePA9kL5Ixq184/2j554DMdeSOw59/zDoc71dh9?=
 =?us-ascii?Q?x75TTW8ic9sT49q5D4yArE7bc2fT3xaYHRnC/UdmiM6/X5UBqZTlAWAGGEQv?=
 =?us-ascii?Q?EuYo1HqNuDXEQviKxU2LR7ZgntV4X5/M2bk93Pq2HpJ7bGx7UyJR?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: aaaf22c6-02f3-4dbc-8e00-08deb237990c
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:19.4652
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: c0zwo4KnvoNu3ZI3OGRLcjuWw3kuT1WDQJYqyygfFCuhX3Zi5687kjxNYHlblNPcRoqYi12+EeuTbPLi0CRN+w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB3981
X-purgate-ID: tlsNG-ebf023/1778818104-2B3673FF-C2C68BD9/0/0
X-purgate-type: clean
X-purgate-size: 21249

Define the RMI v2.0 commands and types Xen needs to manage Realm VPEs.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/rmi-abi.h | 433 +++++++++++++++++++++++++++++++++++++
 1 file changed, 433 insertions(+)
 create mode 100644 xen/arch/arm/cca/rmi-abi.h

diff --git a/xen/arch/arm/cca/rmi-abi.h b/xen/arch/arm/cca/rmi-abi.h
new file mode 100644
index 000000000000..7afb1ae05bca
--- /dev/null
+++ b/xen/arch/arm/cca/rmi-abi.h
@@ -0,0 +1,433 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * RMI v2.0 ABI definitions used by Xen from DEN0137 2.0-bet1.
+ */
+
+#ifndef ARM_CCA_RMI_ABI_H
+#define ARM_CCA_RMI_ABI_H
+
+#include <xen/types.h>
+
+#define ARM_CCA_RMI_ABI_VERSION_MAJOR      2U
+#define ARM_CCA_RMI_ABI_VERSION_MINOR      0U
+#define ARM_CCA_RMI_ABI_VERSION            \
+    (((uint32_t)ARM_CCA_RMI_ABI_VERSION_MAJOR << 16) | \
+     ARM_CCA_RMI_ABI_VERSION_MINOR)
+
+#define ARM_CCA_RMI_VERSION_GET_MAJOR(_v)  ((_v) >> 16)
+#define ARM_CCA_RMI_VERSION_GET_MINOR(_v)  ((_v) & 0xffffU)
+
+#define ARM_CCA_RMI_FID_BASE               0xC4000150U
+#define ARM_CCA_RMI_FID(_off)              (ARM_CCA_RMI_FID_BASE + (_off))
+
+/* DEN0137 2.0-bet1 - B4.5 RMI commands */
+#define ARM_CCA_RMI_VERSION_FID                   ARM_CCA_RMI_FID(0x0)
+#define ARM_CCA_RMI_RTT_DATA_MAP_INIT_FID         ARM_CCA_RMI_FID(0x3)
+#define ARM_CCA_RMI_REALM_ACTIVATE_FID            ARM_CCA_RMI_FID(0x7)
+#define ARM_CCA_RMI_REALM_CREATE_FID              ARM_CCA_RMI_FID(0x8)
+#define ARM_CCA_RMI_REALM_DESTROY_FID             ARM_CCA_RMI_FID(0x9)
+#define ARM_CCA_RMI_REC_CREATE_FID                ARM_CCA_RMI_FID(0xa)
+#define ARM_CCA_RMI_REC_DESTROY_FID               ARM_CCA_RMI_FID(0xb)
+#define ARM_CCA_RMI_REC_ENTER_FID                 ARM_CCA_RMI_FID(0xc)
+#define ARM_CCA_RMI_RTT_CREATE_FID                ARM_CCA_RMI_FID(0xd)
+#define ARM_CCA_RMI_RTT_DESTROY_FID               ARM_CCA_RMI_FID(0xe)
+#define ARM_CCA_RMI_RTT_READ_ENTRY_FID            ARM_CCA_RMI_FID(0x11)
+#define ARM_CCA_RMI_RTT_DEV_VALIDATE_FID          ARM_CCA_RMI_FID(0x13)
+#define ARM_CCA_RMI_PSCI_COMPLETE_FID             ARM_CCA_RMI_FID(0x14)
+#define ARM_CCA_RMI_FEATURES_FID                  ARM_CCA_RMI_FID(0x15)
+#define ARM_CCA_RMI_RTT_FOLD_FID                  ARM_CCA_RMI_FID(0x16)
+#define ARM_CCA_RMI_RTT_INIT_RIPAS_FID            ARM_CCA_RMI_FID(0x18)
+#define ARM_CCA_RMI_RTT_SET_RIPAS_FID             ARM_CCA_RMI_FID(0x19)
+#define ARM_CCA_RMI_VSMMU_CREATE_FID              ARM_CCA_RMI_FID(0x1a)
+#define ARM_CCA_RMI_VSMMU_DESTROY_FID             ARM_CCA_RMI_FID(0x1b)
+#define ARM_CCA_RMI_RMM_CONFIG_SET_FID            ARM_CCA_RMI_FID(0x1e)
+#define ARM_CCA_RMI_PSMMU_IRQ_NOTIFY_FID          ARM_CCA_RMI_FID(0x1f)
+#define ARM_CCA_RMI_PDEV_ABORT_FID                ARM_CCA_RMI_FID(0x24)
+#define ARM_CCA_RMI_PDEV_COMMUNICATE_FID          ARM_CCA_RMI_FID(0x25)
+#define ARM_CCA_RMI_PDEV_CREATE_FID               ARM_CCA_RMI_FID(0x26)
+#define ARM_CCA_RMI_PDEV_DESTROY_FID              ARM_CCA_RMI_FID(0x27)
+#define ARM_CCA_RMI_PDEV_GET_STATE_FID            ARM_CCA_RMI_FID(0x28)
+#define ARM_CCA_RMI_PDEV_STREAM_KEY_REFRESH_FID   ARM_CCA_RMI_FID(0x2a)
+#define ARM_CCA_RMI_PDEV_SET_PUBKEY_FID           ARM_CCA_RMI_FID(0x2b)
+#define ARM_CCA_RMI_PDEV_STOP_FID                 ARM_CCA_RMI_FID(0x2c)
+#define ARM_CCA_RMI_RTT_AUX_CREATE_FID            ARM_CCA_RMI_FID(0x2d)
+#define ARM_CCA_RMI_RTT_AUX_DESTROY_FID           ARM_CCA_RMI_FID(0x2e)
+#define ARM_CCA_RMI_RTT_AUX_FOLD_FID              ARM_CCA_RMI_FID(0x2f)
+#define ARM_CCA_RMI_VDEV_ABORT_FID                ARM_CCA_RMI_FID(0x35)
+#define ARM_CCA_RMI_VDEV_COMMUNICATE_FID          ARM_CCA_RMI_FID(0x36)
+#define ARM_CCA_RMI_VDEV_CREATE_FID               ARM_CCA_RMI_FID(0x37)
+#define ARM_CCA_RMI_VDEV_DESTROY_FID              ARM_CCA_RMI_FID(0x38)
+#define ARM_CCA_RMI_VDEV_GET_STATE_FID            ARM_CCA_RMI_FID(0x39)
+#define ARM_CCA_RMI_VDEV_UNLOCK_FID               ARM_CCA_RMI_FID(0x3a)
+#define ARM_CCA_RMI_RTT_SET_S2AP_FID              ARM_CCA_RMI_FID(0x3b)
+#define ARM_CCA_RMI_VDEV_COMPLETE_FID             ARM_CCA_RMI_FID(0x3e)
+#define ARM_CCA_RMI_VDEV_GET_INTERFACE_REPORT_FID ARM_CCA_RMI_FID(0x80)
+#define ARM_CCA_RMI_VDEV_GET_MEASUREMENTS_FID     ARM_CCA_RMI_FID(0x81)
+#define ARM_CCA_RMI_VDEV_LOCK_FID                 ARM_CCA_RMI_FID(0x82)
+#define ARM_CCA_RMI_VDEV_START_FID                ARM_CCA_RMI_FID(0x83)
+#define ARM_CCA_RMI_VSMMU_EVENT_NOTIFY_FID        ARM_CCA_RMI_FID(0x86)
+#define ARM_CCA_RMI_PSMMU_ACTIVATE_FID            ARM_CCA_RMI_FID(0x87)
+#define ARM_CCA_RMI_PSMMU_DEACTIVATE_FID          ARM_CCA_RMI_FID(0x88)
+#define ARM_CCA_RMI_PSMMU_ST_L2_CREATE_FID        ARM_CCA_RMI_FID(0x8b)
+#define ARM_CCA_RMI_PSMMU_ST_L2_DESTROY_FID       ARM_CCA_RMI_FID(0x8c)
+#define ARM_CCA_RMI_DPT_L0_CREATE_FID             ARM_CCA_RMI_FID(0x8d)
+#define ARM_CCA_RMI_DPT_L0_DESTROY_FID            ARM_CCA_RMI_FID(0x8e)
+#define ARM_CCA_RMI_DPT_L1_CREATE_FID             ARM_CCA_RMI_FID(0x8f)
+#define ARM_CCA_RMI_DPT_L1_DESTROY_FID            ARM_CCA_RMI_FID(0x90)
+#define ARM_CCA_RMI_GRANULE_TRACKING_GET_FID      ARM_CCA_RMI_FID(0x91)
+#define ARM_CCA_RMI_GRANULE_TRACKING_SET_FID      ARM_CCA_RMI_FID(0x93)
+#define ARM_CCA_RMI_RMM_CONFIG_GET_FID            ARM_CCA_RMI_FID(0x9c)
+#define ARM_CCA_RMI_VSMMU_EVENT_COMPLETE_FID      ARM_CCA_RMI_FID(0x9e)
+#define ARM_CCA_RMI_PSMMU_EVENT_DISCARD_FID       ARM_CCA_RMI_FID(0xa0)
+#define ARM_CCA_RMI_GRANULE_RANGE_DELEGATE_FID    ARM_CCA_RMI_FID(0xa1)
+#define ARM_CCA_RMI_GRANULE_RANGE_UNDELEGATE_FID  ARM_CCA_RMI_FID(0xa2)
+#define ARM_CCA_RMI_GPT_L1_CREATE_FID             ARM_CCA_RMI_FID(0xa3)
+#define ARM_CCA_RMI_GPT_L1_DESTROY_FID            ARM_CCA_RMI_FID(0xa4)
+#define ARM_CCA_RMI_RTT_DATA_MAP_FID              ARM_CCA_RMI_FID(0xa5)
+#define ARM_CCA_RMI_RTT_DATA_UNMAP_FID            ARM_CCA_RMI_FID(0xa6)
+#define ARM_CCA_RMI_RTT_DEV_MAP_FID               ARM_CCA_RMI_FID(0xa7)
+#define ARM_CCA_RMI_RTT_DEV_UNMAP_FID             ARM_CCA_RMI_FID(0xa8)
+#define ARM_CCA_RMI_RTT_ARCH_DEV_MAP_FID          ARM_CCA_RMI_FID(0xa9)
+#define ARM_CCA_RMI_RTT_ARCH_DEV_UNMAP_FID        ARM_CCA_RMI_FID(0xaa)
+#define ARM_CCA_RMI_RTT_UNPROT_MAP_FID            ARM_CCA_RMI_FID(0xab)
+#define ARM_CCA_RMI_RTT_UNPROT_UNMAP_FID          ARM_CCA_RMI_FID(0xac)
+#define ARM_CCA_RMI_RTT_AUX_PROT_MAP_FID          ARM_CCA_RMI_FID(0xad)
+#define ARM_CCA_RMI_RTT_AUX_PROT_UNMAP_FID        ARM_CCA_RMI_FID(0xae)
+#define ARM_CCA_RMI_RTT_AUX_UNPROT_MAP_FID        ARM_CCA_RMI_FID(0xaf)
+#define ARM_CCA_RMI_RTT_AUX_UNPROT_UNMAP_FID      ARM_CCA_RMI_FID(0xb0)
+#define ARM_CCA_RMI_REALM_TERMINATE_FID           ARM_CCA_RMI_FID(0xb1)
+#define ARM_CCA_RMI_RMM_ACTIVATE_FID              ARM_CCA_RMI_FID(0xb2)
+#define ARM_CCA_RMI_OP_CONTINUE_FID               ARM_CCA_RMI_FID(0xb3)
+#define ARM_CCA_RMI_PDEV_STREAM_CONNECT_FID       ARM_CCA_RMI_FID(0xb4)
+#define ARM_CCA_RMI_PDEV_STREAM_DISCONNECT_FID    ARM_CCA_RMI_FID(0xb5)
+#define ARM_CCA_RMI_PDEV_STREAM_COMPLETE_FID      ARM_CCA_RMI_FID(0xb6)
+#define ARM_CCA_RMI_PDEV_STREAM_KEY_PURGE_FID     ARM_CCA_RMI_FID(0xb7)
+#define ARM_CCA_RMI_OP_MEM_DONATE_FID             ARM_CCA_RMI_FID(0xb8)
+#define ARM_CCA_RMI_OP_MEM_RECLAIM_FID            ARM_CCA_RMI_FID(0xb9)
+#define ARM_CCA_RMI_OP_CANCEL_FID                 ARM_CCA_RMI_FID(0xba)
+#define ARM_CCA_RMI_VSMMU_FEATURES_FID            ARM_CCA_RMI_FID(0xbb)
+#define ARM_CCA_RMI_VSMMU_CMD_GET_FID             ARM_CCA_RMI_FID(0xbc)
+#define ARM_CCA_RMI_VSMMU_CMD_COMPLETE_FID        ARM_CCA_RMI_FID(0xbd)
+
+/* DEN0137 2.0-bet1 - B4.6.1 RmiAddrBlockSize type */
+#define ARM_CCA_RMI_PAGE_L3                 0U
+#define ARM_CCA_RMI_BLOCK_L2                1U
+#define ARM_CCA_RMI_BLOCK_L1                2U
+#define ARM_CCA_RMI_BLOCK_L0                3U
+
+/* DEN0137 2.0-bet1 - B4.6.5 RmiAddrRangeDesc4KB type */
+#define ARM_CCA_RMI_ADDR_DESC_4K_SZ_SHIFT   0U
+#define ARM_CCA_RMI_ADDR_DESC_4K_SZ_WIDTH   2U
+#define ARM_CCA_RMI_ADDR_DESC_4K_CNT_SHIFT  2U
+#define ARM_CCA_RMI_ADDR_DESC_4K_CNT_WIDTH  10U
+#define ARM_CCA_RMI_ADDR_DESC_4K_ADDR_SHIFT 12U
+#define ARM_CCA_RMI_ADDR_DESC_4K_ADDR_WIDTH 40U
+#define ARM_CCA_RMI_ADDR_DESC_4K_ST_SHIFT   63U
+#define ARM_CCA_RMI_ADDR_DESC_4K_ST_WIDTH   1U
+
+/* DEN0137 2.0-bet1 - B4.6.10 RmiContinueBeyond type */
+#define ARM_CCA_RMI_CONTINUE_KEEP_GOING     0U
+#define ARM_CCA_RMI_CONTINUE_STOP           1U
+
+/* DEN0137 2.0-bet1 - B4.6.12 RmiDataFlags type */
+#define ARM_CCA_RMI_DATA_FLAGS_MEASURE_SHIFT 0U
+#define ARM_CCA_RMI_DATA_FLAGS_MEASURE_WIDTH 1U
+
+/* DEN0137 2.0-bet1 - B4.6.13 RmiDataMeasureContent type */
+#define ARM_CCA_RMI_NO_MEASURE_CONTENT       0U
+#define ARM_CCA_RMI_MEASURE_CONTENT          1U
+
+#define ARM_CCA_RMI_DATA_FLAGS_MEASURE_CONTENT \
+    (ARM_CCA_RMI_MEASURE_CONTENT << ARM_CCA_RMI_DATA_FLAGS_MEASURE_SHIFT)
+
+/* DEN0137 2.0-bet1 - B4.6.22 RmiFeature type */
+#define ARM_CCA_RMI_FEATURE_FALSE                         0U
+#define ARM_CCA_RMI_FEATURE_TRUE                          1U
+
+/* DEN0137 2.0-bet1 - B4.6.23 RmiFeatureRegister0 type */
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_S2SZ_SHIFT          0U
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_S2SZ_WIDTH          8U
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_LPA2_SHIFT          8U
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_LPA2_WIDTH          1U
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_SVE_SHIFT           9U
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_SVE_WIDTH           1U
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_SVE_VL_SHIFT        10U
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_SVE_VL_WIDTH        4U
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_NUM_BPS_SHIFT       14U
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_NUM_BPS_WIDTH       6U
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_NUM_WPS_SHIFT       20U
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_NUM_WPS_WIDTH       6U
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_PMU_SHIFT           26U
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_PMU_WIDTH           1U
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_PMU_NUM_CTRS_SHIFT  27U
+#define ARM_CCA_RMI_FEATURE_REGISTER_0_PMU_NUM_CTRS_WIDTH  5U
+
+/* DEN0137 2.0-bet1 - B4.6.24 RmiFeatureRegister1 type */
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_RMI_GRAN_SZ_4KB_SHIFT  0U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_RMI_GRAN_SZ_4KB_WIDTH  1U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_RMI_GRAN_SZ_16KB_SHIFT 1U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_RMI_GRAN_SZ_16KB_WIDTH 1U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_RMI_GRAN_SZ_64KB_SHIFT 2U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_RMI_GRAN_SZ_64KB_WIDTH 1U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_HASH_SHA_256_SHIFT     3U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_HASH_SHA_256_WIDTH     1U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_HASH_SHA_384_SHIFT     4U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_HASH_SHA_384_WIDTH     1U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_HASH_SHA_512_SHIFT     5U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_HASH_SHA_512_WIDTH     1U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_MAX_RECS_ORDER_SHIFT   6U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_MAX_RECS_ORDER_WIDTH   4U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_L0GPTSZ_SHIFT          10U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_L0GPTSZ_WIDTH          4U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_PPS_SHIFT              14U
+#define ARM_CCA_RMI_FEATURE_REGISTER_1_PPS_WIDTH              3U
+
+/* DEN0137 2.0-bet1 - B4.6.27 RmiFeatureRegister4 type */
+#define ARM_CCA_RMI_FEATURE_REGISTER_4_MEC_COUNT_SHIFT 0U
+#define ARM_CCA_RMI_FEATURE_REGISTER_4_MEC_COUNT_WIDTH 64U
+
+/* DEN0137 2.0-bet1 - B4.6.29 RmiGranuleSize type */
+#define ARM_CCA_RMI_GRANULE_SIZE_4KB         0U
+#define ARM_CCA_RMI_GRANULE_SIZE_16KB        1U
+#define ARM_CCA_RMI_GRANULE_SIZE_64KB        2U
+
+/* DEN0137 2.0-bet1 - B4.6.30 RmiHashAlgorithm type */
+#define ARM_CCA_RMI_HASH_SHA_256            0U
+#define ARM_CCA_RMI_HASH_SHA_512            1U
+#define ARM_CCA_RMI_HASH_SHA_384            2U
+
+/* DEN0137 2.0-bet1 - B4.6.35 RmiMecPolicy type */
+#define ARM_CCA_RMI_MEC_POLICY_SHARED       0U
+#define ARM_CCA_RMI_MEC_POLICY_PRIVATE      1U
+
+/* DEN0137 2.0-bet1 - B4.6.36 RmiMemCategory type */
+#define ARM_CCA_RMI_MEM_CATEGORY_CONVENTIONAL 0U
+#define ARM_CCA_RMI_MEM_CATEGORY_DEV_NCOH     1U
+#define ARM_CCA_RMI_MEM_CATEGORY_DEV_COH      2U
+
+/* DEN0137 2.0-bet1 - B4.6.37 RmiOpCanCancel type */
+#define ARM_CCA_RMI_OP_CANNOT_CANCEL        0U
+#define ARM_CCA_RMI_OP_CAN_CANCEL           1U
+
+/* DEN0137 2.0-bet1 - B4.6.38 RmiOpMemContig type */
+#define ARM_CCA_RMI_OP_MEM_NON_CONTIG       0U
+#define ARM_CCA_RMI_OP_MEM_CONTIG           1U
+
+/* DEN0137 2.0-bet1 - B4.6.39 RmiOpMemDonateReq type */
+#define ARM_CCA_RMI_OP_DONATE_BLK_SIZE_SHIFT   0U
+#define ARM_CCA_RMI_OP_DONATE_BLK_SIZE_WIDTH   2U
+#define ARM_CCA_RMI_OP_DONATE_BLK_COUNT_SHIFT  2U
+#define ARM_CCA_RMI_OP_DONATE_BLK_COUNT_WIDTH  14U
+#define ARM_CCA_RMI_OP_DONATE_MEM_CONTIG_SHIFT 16U
+#define ARM_CCA_RMI_OP_DONATE_MEM_CONTIG_WIDTH 1U
+#define ARM_CCA_RMI_OP_DONATE_MEM_STATE_SHIFT  17U
+#define ARM_CCA_RMI_OP_DONATE_MEM_STATE_WIDTH  1U
+
+/* DEN0137 2.0-bet1 - B4.6.40 RmiOpMemReq type */
+#define ARM_CCA_RMI_OP_MEM_REQ_NONE         0U
+#define ARM_CCA_RMI_OP_MEM_REQ_DONATE       1U
+#define ARM_CCA_RMI_OP_MEM_REQ_RECLAIM      2U
+
+/* DEN0137 2.0-bet1 - B4.6.41 RmiOpMemState type */
+#define ARM_CCA_RMI_OP_MEM_DELEGATED        0U
+#define ARM_CCA_RMI_OP_MEM_UNDELEGATED      1U
+
+/* DEN0137 2.0-bet1 - B4.6.60 RmiRealmFlags0 type */
+#define ARM_CCA_RMI_REALM_FLAGS0_MEC_POLICY_SHIFT 7U
+#define ARM_CCA_RMI_REALM_FLAGS0_MEC_POLICY_WIDTH 2U
+#define ARM_CCA_RMI_REALM_FLAGS0_MEC_POLICY(policy) \
+    ((uint64_t)(policy) << ARM_CCA_RMI_REALM_FLAGS0_MEC_POLICY_SHIFT)
+
+/* DEN0137 2.0-bet1 - B4.6.62 RmiRealmParams type */
+#define ARM_CCA_RMI_PARAMS_SIZE             0x1000U
+#define ARM_CCA_RMI_RPV_SIZE                64U
+
+struct arm_cca_rmi_realm_params {
+    uint64_t flags0;
+    uint8_t  s2sz;
+    uint8_t  __pad0[0x10 - 0x09];
+    uint8_t  sve_vl;
+    uint8_t  __pad1[0x18 - 0x11];
+    uint8_t  num_bps;
+    uint8_t  __pad2[0x20 - 0x19];
+    uint8_t  num_wps;
+    uint8_t  __pad3[0x28 - 0x21];
+    uint8_t  pmu_num_ctrs;
+    uint8_t  __pad4[0x30 - 0x29];
+    uint8_t  hash_algo;
+    uint8_t  __pad5[0x38 - 0x31];
+    uint64_t num_aux_planes;
+    uint8_t  __pad6[0x400 - 0x40];
+    uint8_t  rpv[ARM_CCA_RMI_RPV_SIZE];
+    uint64_t ats_plane;
+    uint8_t  __pad7[0x808 - 0x448];
+    uint64_t rtt_base;
+    int64_t  rtt_level_start;
+    uint32_t rtt_num_start;
+    uint8_t  __pad8[0x820 - 0x81c];
+    uint64_t flags1;
+    uint8_t  __pad9[0xf80 - 0x828];
+    uint64_t aux_rtt_base[3];
+    uint8_t  __pad10[ARM_CCA_RMI_PARAMS_SIZE - 0xf98];
+} __packed;
+
+/* DEN0137 2.0-bet1 - B4.6.63 RmiRecCreateFlags type */
+#define ARM_CCA_RMI_REC_CREATE_RUNNABLE     (1UL << 0)
+
+/* DEN0137 2.0-bet1 - B4.6.64 RmiRecEnter type */
+#define ARM_CCA_RMI_REC_ENTER_SIZE          0x800U
+#define ARM_CCA_RMI_REC_NR_GPRS             31U
+
+struct arm_cca_rmi_rec_enter {
+    uint64_t flags;
+    uint8_t  __pad0[0x200 - 0x008];
+    uint64_t gprs[ARM_CCA_RMI_REC_NR_GPRS];
+    uint8_t  __pad1[ARM_CCA_RMI_REC_ENTER_SIZE -
+                    (0x200 + ARM_CCA_RMI_REC_NR_GPRS * 8)];
+} __packed;
+
+/* DEN0137 2.0-bet1 - B4.6.65 RmiRecEnterFlags type */
+#define ARM_CCA_RMI_REC_ENTER_FLAG_EMUL_MMIO        (1UL << 0)
+#define ARM_CCA_RMI_REC_ENTER_FLAG_INJECT_SEA       (1UL << 1)
+#define ARM_CCA_RMI_REC_ENTER_FLAG_TRAP_WFI         (1UL << 2)
+#define ARM_CCA_RMI_REC_ENTER_FLAG_TRAP_WFE         (1UL << 3)
+#define ARM_CCA_RMI_REC_ENTER_FLAG_RIPAS_RESPONSE   (1UL << 4)
+#define ARM_CCA_RMI_REC_ENTER_FLAG_S2AP_RESPONSE    (1UL << 5)
+#define ARM_CCA_RMI_REC_ENTER_FLAG_DEV_MEM_RESPONSE (1UL << 6)
+#define ARM_CCA_RMI_REC_ENTER_FLAG_FORCE_P0         (1UL << 7)
+
+/* DEN0137 2.0-bet1 - B4.6.66 RmiRecExit type */
+#define ARM_CCA_RMI_REC_EXIT_SIZE           0x800U
+
+struct arm_cca_rmi_rec_exit {
+    uint8_t  exit_reason;
+    uint8_t  __pad0[0x100 - 0x001];
+    uint64_t esr;
+    uint64_t far;
+    uint64_t hpfar;
+    uint64_t rtt_tree;
+    uint8_t  __pad1[0x200 - 0x120];
+    uint64_t gprs[ARM_CCA_RMI_REC_NR_GPRS];
+    uint8_t  __pad2[0x400 - (0x200 + ARM_CCA_RMI_REC_NR_GPRS * 8)];
+    uint64_t cntp_ctl;
+    uint64_t cntp_cval;
+    uint64_t cntv_ctl;
+    uint64_t cntv_cval;
+    uint8_t  __pad3[0x500 - 0x420];
+    uint64_t ripas_base;
+    uint64_t ripas_top;
+    uint8_t  ripas_value;
+    uint8_t  __pad4[0x520 - 0x511];
+    uint64_t s2ap_base;
+    uint64_t s2ap_top;
+    uint64_t vdev_id_1;
+    uint64_t vdev_id_2;
+    uint64_t dev_mem_base;
+    uint64_t dev_mem_top;
+    uint64_t dev_mem_pa;
+    uint8_t  __pad5[0x600 - 0x558];
+    uint16_t imm;
+    uint8_t  __pad6[0x608 - 0x602];
+    uint64_t plane;
+    uint8_t  __pad7[0x700 - 0x610];
+    uint8_t  pmu_ovf_status;
+    uint8_t  __pad8[0x710 - 0x701];
+    uint64_t vsmmu;
+    uint8_t  __pad9[ARM_CCA_RMI_REC_EXIT_SIZE - 0x718];
+} __packed;
+
+/* DEN0137 2.0-bet1 - B4.6.67 RmiRecExitReason type */
+#define ARM_CCA_RMI_EXIT_SYNC                  0U
+#define ARM_CCA_RMI_EXIT_IRQ                   1U
+#define ARM_CCA_RMI_EXIT_FIQ                   2U
+#define ARM_CCA_RMI_EXIT_PSCI                  3U
+#define ARM_CCA_RMI_EXIT_RIPAS_CHANGE          4U
+#define ARM_CCA_RMI_EXIT_HOST_CALL             5U
+#define ARM_CCA_RMI_EXIT_SERROR                6U
+#define ARM_CCA_RMI_EXIT_S2AP_CHANGE           7U
+#define ARM_CCA_RMI_EXIT_VDEV_REQUEST          8U
+#define ARM_CCA_RMI_EXIT_VDEV_VALIDATE_MAPPING 9U
+#define ARM_CCA_RMI_EXIT_VSMMU_COMMAND         10U
+
+/* DEN0137 2.0-bet1 - B4.6.69 RmiRecParams type */
+#define ARM_CCA_RMI_REC_CREATE_NR_GPRS      8U
+
+struct arm_cca_rmi_rec_params {
+    uint64_t flags;
+    uint8_t  __pad0[0x100 - 0x008];
+    uint64_t mpidr;
+    uint8_t  __pad1[0x200 - 0x108];
+    uint64_t pc;
+    uint8_t  __pad2[0x300 - 0x208];
+    uint64_t gprs[ARM_CCA_RMI_REC_CREATE_NR_GPRS];
+    uint8_t  __pad3[ARM_CCA_RMI_PARAMS_SIZE -
+                    (0x300 + ARM_CCA_RMI_REC_CREATE_NR_GPRS * 8)];
+} __packed;
+
+/* DEN0137 2.0-bet1 - B4.6.70 RmiRecRun type */
+#define ARM_CCA_RMI_REC_RUN_SIZE            0x1000U
+
+struct arm_cca_rmi_rec_run {
+    struct arm_cca_rmi_rec_enter enter;
+    struct arm_cca_rmi_rec_exit  exit;
+} __packed;
+
+/* DEN0137 2.0-bet1 - B4.6.73 RmiResult type */
+#define ARM_CCA_RMI_RESULT_STATUS_SHIFT     0U
+#define ARM_CCA_RMI_RESULT_STATUS_WIDTH     8U
+#define ARM_CCA_RMI_RESULT_DATA_SHIFT       8U
+
+/* DEN0137 2.0-bet1 - B4.6.74 RmiResultDataIncomplete type */
+#define ARM_CCA_RMI_RESULT_INCOMPLETE_MEM_SHIFT        0U
+#define ARM_CCA_RMI_RESULT_INCOMPLETE_MEM_WIDTH        2U
+#define ARM_CCA_RMI_RESULT_INCOMPLETE_CAN_CANCEL_SHIFT 2U
+#define ARM_CCA_RMI_RESULT_INCOMPLETE_CAN_CANCEL_WIDTH 1U
+
+/* DEN0137 2.0-bet1 - B4.6.77 RmiRipas type */
+#define ARM_CCA_RMI_RIPAS_EMPTY             0U
+#define ARM_CCA_RMI_RIPAS_RAM               1U
+#define ARM_CCA_RMI_RIPAS_DESTROYED         2U
+#define ARM_CCA_RMI_RIPAS_DEV               3U
+
+/* DEN0137 2.0-bet1 - B4.6.78 RmiRmmConfig type */
+#define ARM_CCA_RMI_RMM_CONFIG_SIZE         0x1000U
+#define ARM_CCA_RMI_TRACKING_4KB_REGION_1GB 0U
+
+struct arm_cca_rmi_rmm_config {
+    uint8_t  tracking_region_size;
+    uint8_t  __pad0[0x8 - 0x1];
+    uint8_t  rmi_granule_size;
+    uint8_t  __pad1[ARM_CCA_RMI_RMM_CONFIG_SIZE - 0x9];
+} __packed;
+
+/* DEN0137 2.0-bet1 - B4.6.80 RmiRttAddrType type */
+#define ARM_CCA_RMI_ADDR_TYPE_NONE          0U
+#define ARM_CCA_RMI_ADDR_TYPE_SINGLE        1U
+#define ARM_CCA_RMI_ADDR_TYPE_LIST          2U
+
+/* DEN0137 2.0-bet1 - B4.6.93 RmiStatusCode type */
+#define ARM_CCA_RMI_SUCCESS                 0U
+#define ARM_CCA_RMI_ERROR_INPUT             1U
+#define ARM_CCA_RMI_ERROR_REALM             2U
+#define ARM_CCA_RMI_ERROR_REC               3U
+#define ARM_CCA_RMI_ERROR_RTT               4U
+#define ARM_CCA_RMI_ERROR_NOT_SUPPORTED     5U
+#define ARM_CCA_RMI_ERROR_DEVICE            6U
+#define ARM_CCA_RMI_ERROR_RTT_AUX           7U
+#define ARM_CCA_RMI_ERROR_PSMMU_ST          8U
+#define ARM_CCA_RMI_ERROR_DPT               9U
+#define ARM_CCA_RMI_BUSY                    10U
+#define ARM_CCA_RMI_ERROR_GLOBAL            11U
+#define ARM_CCA_RMI_ERROR_TRACKING          12U
+#define ARM_CCA_RMI_INCOMPLETE              13U
+#define ARM_CCA_RMI_BLOCKED                 14U
+#define ARM_CCA_RMI_ERROR_GPT               15U
+#define ARM_CCA_RMI_ERROR_GRANULE           16U
+
+/* DEN0137 2.0-bet1 - B4.6.94 RmiTrackingRegionState type */
+#define ARM_CCA_RMI_TRACKING_RESERVED       0U
+#define ARM_CCA_RMI_TRACKING_NONE           1U
+#define ARM_CCA_RMI_TRACKING_FINE           2U
+#define ARM_CCA_RMI_TRACKING_COARSE         3U
+
+#endif /* ARM_CCA_RMI_ABI_H */
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:08:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:08:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309342.1580392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqi-0002JM-Nb; Fri, 15 May 2026 04:08:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309342.1580392; Fri, 15 May 2026 04:08:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqi-0002Im-I8; Fri, 15 May 2026 04:08:32 +0000
Received: by outflank-mailman (input) for mailman id 1309342;
 Fri, 15 May 2026 04:08:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjqg-0001oS-DD
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:08:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjqf-00Bu3E-PF
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:08:29 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c0b-5cb7-0a2a0a5109dd-0a2a45038516-44
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:29 +0200
Received: from [52.101.228.127]
 (helo=OS0P286CU011.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c3b-672d-0a2a45030019-3465e47fdc14-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:29 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB5257.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:163::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:24 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dwrqvmBDAGah25IIMw9ewVC5yN3vBgUvPIkc128r0TalWRUbl9pffDfXsuyCYzfpeX/zqgAQiCbh5mDAsOlp7KHtwlTdvffKiCqa4Y3n7Kp71Au5TctDJRKeVzsE09oSA2JfUvM72gL5wR2onnjms1rDPfym2ASSAZsbj/IjcJPNwI9ki4d9r/Y0DsbItfru3LFHz6n4nw0PUPXvmnKoOWHZv6oLZ4xyH40miA4EJHMt2gs3YE4bn+O1zXpvnhpBq5cI74epN7s3mcbV7lYTiJYhjMT2+A4PGuLqsuNhDEke5ucSIHQM6R8BeEIVt6xtsEy7j2QfmuDuWhIHJhGZPw==
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=HYkQKXdORTfgPSnkO/UtbvHd/o4UIhbIJXpGqu2bagU=;
 b=k/9lMGWoC73rjW6zdGZq+rF/7SvnCHuPibAES6D0nLhI0IDkp7SQw0l2S48qB8vBex7mLXRLUs1VTLE8uGMR2CjXg9Hhpfzo2TqLXSr6tqyXo5wPJl5QXTbKtWre79dRvnzmArc9xfSwoyJ0uuM8vyiMmJY6irKiZTAhCXvhkdiitoIo2ncaXSY5faCPkprr0vqekv0Yzz6MH1zb0J0G+47Q1IDSnKB0QGTIRPU9szlFM11c6fCQ6jGfuNGp+tnx4SUf9536X+HB+A/E2msfJgwpk4HYgh49vEKIh9silqmjQUKsuUx+xMb6nBMxo8QCCtwq+ZNClPIbcj8P2a/N+Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HYkQKXdORTfgPSnkO/UtbvHd/o4UIhbIJXpGqu2bagU=;
 b=ARSnsmLuAV/ruLlL2rdxogWgopJn/nSleD8uS9zYoVz410dzOtqbM0cil0X9+PXrTMCet5mKysZukOaYr18XKyE2dfu7RJPudWr0gcL2BRfDrD4/QRBO/MiJkzgrlNYUSeNoerm+sJ2Fd5LIGHFY3UNiKZCMpwn21ASSF8lhjKA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 08/26] xen/arm/cca: add shared SRO helpers
Date: Fri, 15 May 2026 13:07:54 +0900
Message-ID: <20260515040812.983626-9-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCPR01CA0065.jpnprd01.prod.outlook.com
 (2603:1096:405:2::29) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB5257:EE_
X-MS-Office365-Filtering-Correlation-Id: cf47f41a-6693-4a9c-ecbf-08deb2379c36
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|376014|7416014|366016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	AJmeJMXP0ESfV7X4ZXuVLgXoKJTKYnTOMcHnL/wKvE3h4QdsbOyYd0yFyQj8rdS0Pkj4zTn1yM5au5g/8/Ro5m9pA15NEX6RaDxLl1H1D8ueV8/ouKuLfyD9KXVIm5SYb0CEliI1YHPR9YsFHcrah/m4gBkxAMAxJyLI2ofVnRLvBPORbR0/OlswQGlAzFOjy14srbI6P8wZPm4FX+An2G9zb5N7Lkoe2BO9uiWXpmT0jTJyv8K0PJMUjoeDHtdBBK4YxXTumv4l2zXNdqccu/6IullRaOYvnGBwkrI0rFkst0YjPMF9rlbcCiIKMiR77Qupuelkt5WoTHPb1Y5dQXnM/mqa1d76QWdX7C3Ab3wBaBoWtFlerSZkLcCEXR2lGtIPk4p1cqvWf2smoiM5sccKJ2u/NZqzx+NjhDNMhsI2eTilnfzWQ2IgNznBtiOoy0nRYY/hDUyLf5VsmZYJApw0vi6m/n4D7f9NyMHXRfsLVug//dnqKrAOs6zQyXoL3C3ts0ri9t3ZFuoIV279zc2PQqpJPcF0qH3EA/1yFxmHf//9llPx+I6GjiEbW+9shFcpyqa2TIffzVVTxeFh8FMe1TGALZzXzqTRWZW5JuhU3XJe19jW+jGBpx0oew6x3i0R7Agra/ebt4lGPX0gOZPESEfemIGy1eMOVto4EEG+efNzuf0swZfWKOSYXjD0
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(376014)(7416014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?GXuaqB2XzGcEuotCBjsoHPbpxnTn53LrdyjrmuLZ+y4F5gs0Vf5+RJV8y/hD?=
 =?us-ascii?Q?iAUzDlZdBWIlSCpql3T9KwAPBQpTvyE3EU3h4WJ6Pz+9Ch92BzoUabA7XRn9?=
 =?us-ascii?Q?BswELgamI/KAQEY2Jp1/0Wiv7kOweqckB/S3DevbMnbjZZ8MXAcuAd4LN+D2?=
 =?us-ascii?Q?25MTSIdhrcY5q4C1qnZfkhy+a0yPvKsz+6dxxnDW7OeNJ1sid7OoHxmpm0R1?=
 =?us-ascii?Q?/2kJBK9E3ILtJz4zeTAWrMPlDKVP/xnSKLn1zZvhn6P1cGPkCeATYLkLdnz7?=
 =?us-ascii?Q?r15i4gs/EUCmBAkqLKj3E67jem3g+zc5A7lYO8QC+tcHiJ+VgQo9Pa2ex04V?=
 =?us-ascii?Q?hNfI177UNssfA+mBLMG+9Q3yg7sLQR6zG14PP8jaMViuBFuJaIGZJvDbtGI/?=
 =?us-ascii?Q?PtAJ4E4GySUwYFkNsxrQraJJ/zn3eOTdaZgNLTVhRKnIs9V2QqWZxwKLUl4e?=
 =?us-ascii?Q?t/qJsEq0YnGCq/m49VGEwOaRkSbyw6DKj0+rTEGNr9LeYxu5AbuEMCe4GhOJ?=
 =?us-ascii?Q?vvm0GjrimQUFyoVT/GM/2XrYaOcrKv7QFTpO34U1C8n8wJEFcfhn/p5MRhnh?=
 =?us-ascii?Q?Au+WJCq2zd9J3utd7mjVTqmd5oFHca1bdQUk4Jr9+oSHvSABGi+eLitDXi88?=
 =?us-ascii?Q?2qUJM9sU8PYIjtCRV4vmF90RynN83OyNuq6zD+vKHSU6CLQIQUBhjPrEZnBQ?=
 =?us-ascii?Q?cvyyw9GCwbxOebc/hdVwEkRdi5xZQ5j4mOHotUbUxQQ75eWu7vqs7pJxOomv?=
 =?us-ascii?Q?4P65/kjbPjQydj/QaXHO3bkVdiYCfhkbsEHgTLg2h7nMDGaPxSA3/WfU4KsI?=
 =?us-ascii?Q?8rVpu7JDlYf/85gsWsHmlEuE+ii1G5cXOXzujmK17CcOiDRlHzZe18yMwxKU?=
 =?us-ascii?Q?GmfEpyCNKq5idFdfk1iaalBrLimDExMH+Pz8NSNdXIF1en/WYw9inMiKPB0W?=
 =?us-ascii?Q?Oiktyn3z5h/zWoxQDNLMcjzVhAdg3tC0+ZkeVyB6g5Wc9c7sHGouADWrcyou?=
 =?us-ascii?Q?udrsdChlypFwIW2nkXkyy2JCb2/AjZG1x+AxOm5cBoVkxBvVSSyfti4C51VG?=
 =?us-ascii?Q?/RBVs5eAMVuuUe7b2Fp9levddbeP7jK8dBvj1eA/FWqPFfsvFjV9/70yBtTZ?=
 =?us-ascii?Q?WBQyei/VybRUSVueUPO0r8710vZ/ojiFihyMjYVoTnEV+9HJsBjIfwGxrJ6p?=
 =?us-ascii?Q?7wImUoOCES/5Dp0OANgEMQRvfI1KvJwH0XA2cQYSLMuAOzGuHPXGZTW2cAX/?=
 =?us-ascii?Q?D+L88wbLLlJUjBOzaNO5EmFBxUl7Kx1Znj1Pjhpu+KBLSUTcSaXA6txwcOR2?=
 =?us-ascii?Q?kqZG03HPyfQXOxHHE0emL+Vb2N9MKPMIGKZzaH+cKrVcBPiXrYpgBG4MMP6V?=
 =?us-ascii?Q?/+bmhhq00lGQJT+aMF2gFoOgeYOAUfpekXBtP2ab9oH2+AoM2PBlNZW0i1Tc?=
 =?us-ascii?Q?9rsYfFNQJ3YUFSUqxZF7eq1wn7gC3APgk3MqqSVHcHC0ICNt9rVnIDit9M0q?=
 =?us-ascii?Q?yu4QjLrns37p52m8sniYMHGr0tLiPCf2hvY9+llSY9k0FM+MpYYDXk+QbmC7?=
 =?us-ascii?Q?LqtFedVc9nN1D248ximfd3zVi/RJOE+d+QhcC/ToprpmI8Sy55PD4+WnHWVT?=
 =?us-ascii?Q?MMO8SRkw2GJC21q+ZY8G0SAh1xgTdAm3hCNzqSJWYDg3ZRQqitKwqvmFgsEM?=
 =?us-ascii?Q?bRFnbJ7ltB4vke3qSfwvoszd5Vh1R9be6dcKFbNmytCwtZELxuFIWluRIsTB?=
 =?us-ascii?Q?b7rE6syq2u5lNA3EM1w7NnD6Rahms8RBd47leh8o0V/N9UuAEEKW?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: cf47f41a-6693-4a9c-ecbf-08deb2379c36
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:24.7598
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: tdvj2mhceMc+0+Et9DPNXzp57Qw9xBk3Mf/sADh9u1/a9C6BxuqcigEEw8cxct1J0WIVj7kRkfBFFfxsaiaWtA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB5257
X-purgate-ID: tlsNG-33051d/1778818109-36746938-A2D52CEA/0/0
X-purgate-type: clean
X-purgate-size: 16120

Add the common loop for memory-transferring Stateful RMI Operations. It
keeps donate, reclaim and cancel handling out of each lifecycle caller.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/Makefile |   1 +
 xen/arch/arm/cca/sro.c    | 485 ++++++++++++++++++++++++++++++++++++++
 xen/arch/arm/cca/sro.h    |  25 ++
 3 files changed, 511 insertions(+)
 create mode 100644 xen/arch/arm/cca/sro.c
 create mode 100644 xen/arch/arm/cca/sro.h

diff --git a/xen/arch/arm/cca/Makefile b/xen/arch/arm/cca/Makefile
index 57c3986d5de8..bf6d9b58ebec 100644
--- a/xen/arch/arm/cca/Makefile
+++ b/xen/arch/arm/cca/Makefile
@@ -1,4 +1,5 @@
 obj-y += granule.o
 obj-y += realm.o
 obj-y += rmi.o
+obj-y += sro.o
 obj-y += state.o
diff --git a/xen/arch/arm/cca/sro.c b/xen/arch/arm/cca/sro.c
new file mode 100644
index 000000000000..d17810388398
--- /dev/null
+++ b/xen/arch/arm/cca/sro.c
@@ -0,0 +1,485 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/domain_page.h>
+#include <xen/errno.h>
+#include <xen/mm.h>
+#include <xen/xmalloc.h>
+
+#include <asm/cca.h>
+
+#include "rmi.h"
+#include "sro.h"
+
+static struct page_info *arm_cca_sro_alloc_page(void)
+{
+    struct page_info *pg;
+    void *va;
+
+    pg = alloc_domheap_page(NULL, 0);
+    if ( !pg )
+        return NULL;
+
+    va = map_domain_page(page_to_mfn(pg));
+    clear_page(va);
+    unmap_domain_page(va);
+
+    return pg;
+}
+
+static unsigned long arm_cca_sro_donate_req_count(unsigned long req)
+{
+    return arm_cca_rmi_field_get(req,
+                                 ARM_CCA_RMI_OP_DONATE_BLK_COUNT_SHIFT,
+                                 ARM_CCA_RMI_OP_DONATE_BLK_COUNT_WIDTH);
+}
+
+static uint64_t arm_cca_sro_addr_desc_4k(paddr_t pa)
+{
+    return ((uint64_t)ARM_CCA_RMI_PAGE_L3 <<
+            ARM_CCA_RMI_ADDR_DESC_4K_SZ_SHIFT) |
+           (1ULL << ARM_CCA_RMI_ADDR_DESC_4K_CNT_SHIFT) |
+           (((uint64_t)pa >> PAGE_SHIFT) <<
+            ARM_CCA_RMI_ADDR_DESC_4K_ADDR_SHIFT) |
+           ((uint64_t)ARM_CCA_RMI_OP_MEM_DELEGATED <<
+            ARM_CCA_RMI_ADDR_DESC_4K_ST_SHIFT);
+}
+
+static int
+arm_cca_sro_free_delegated_pages(const struct arm_cca_sro_mem_xfer *xfer,
+                                 struct page_info **pages,
+                                 unsigned int nr_pages)
+{
+    unsigned int i;
+    int rc = 0;
+
+    for ( i = 0; i < nr_pages; ++i )
+    {
+        if ( !pages[i] )
+            continue;
+
+        if ( arm_cca_undelegate_granule(page_to_maddr(pages[i])) != 0 )
+        {
+            page_list_add_tail(pages[i], xfer->abandoned_pages);
+            pages[i] = NULL;
+            rc = -EIO;
+            continue;
+        }
+
+        free_domheap_page(pages[i]);
+        pages[i] = NULL;
+    }
+
+    return rc;
+}
+
+static int
+arm_cca_sro_validate_donate_req(const struct arm_cca_sro_mem_xfer *xfer,
+                                unsigned long req, unsigned long *count)
+{
+    unsigned long blk_size, contig, state;
+
+    if ( !xfer || !xfer->pages || !xfer->nr_pages || !xfer->max_pages ||
+         !xfer->abandoned_pages )
+        return -EOPNOTSUPP;
+
+    blk_size = arm_cca_rmi_field_get(req,
+                                     ARM_CCA_RMI_OP_DONATE_BLK_SIZE_SHIFT,
+                                     ARM_CCA_RMI_OP_DONATE_BLK_SIZE_WIDTH);
+    contig = arm_cca_rmi_field_get(req,
+                                   ARM_CCA_RMI_OP_DONATE_MEM_CONTIG_SHIFT,
+                                   ARM_CCA_RMI_OP_DONATE_MEM_CONTIG_WIDTH);
+    state = arm_cca_rmi_field_get(req,
+                                  ARM_CCA_RMI_OP_DONATE_MEM_STATE_SHIFT,
+                                  ARM_CCA_RMI_OP_DONATE_MEM_STATE_WIDTH);
+    *count = arm_cca_sro_donate_req_count(req);
+
+    /*
+     * Xen donates 4KB, non-contiguous, already-delegated granules here
+     * because they can be allocated and tracked as individual pages.
+     */
+    if ( blk_size != ARM_CCA_RMI_PAGE_L3 ||
+         contig != ARM_CCA_RMI_OP_MEM_NON_CONTIG ||
+         state != ARM_CCA_RMI_OP_MEM_DELEGATED )
+        return -EOPNOTSUPP;
+
+    if ( *count == 0 )
+        return -EINVAL;
+
+    if ( *xfer->nr_pages > xfer->max_pages ||
+         *count > xfer->max_pages - *xfer->nr_pages )
+        return -E2BIG;
+
+    if ( *count > PAGE_SIZE / sizeof(uint64_t) )
+        return -E2BIG;
+
+    return 0;
+}
+
+static int arm_cca_sro_donate_pages(unsigned long handle,
+                                    unsigned long donate_req,
+                                    const struct arm_cca_sro_mem_xfer *xfer,
+                                    struct arm_smccc_res *res)
+{
+    struct page_info *list_pg = NULL;
+    struct page_info **pages = NULL;
+    uint64_t *list;
+    unsigned long count, consumed;
+    unsigned int i;
+    int cleanup_rc, rc;
+
+    rc = arm_cca_sro_validate_donate_req(xfer, donate_req, &count);
+    if ( rc != 0 )
+        return rc;
+
+    pages = xzalloc_array(struct page_info *, count);
+    if ( !pages )
+        return -ENOMEM;
+
+    list_pg = arm_cca_sro_alloc_page();
+    if ( !list_pg )
+    {
+        rc = -ENOMEM;
+        goto out;
+    }
+
+    list = map_domain_page(page_to_mfn(list_pg));
+
+    for ( i = 0; i < count; ++i )
+    {
+        pages[i] = arm_cca_sro_alloc_page();
+        if ( !pages[i] )
+        {
+            rc = -ENOMEM;
+            goto out_unmap;
+        }
+
+        rc = arm_cca_delegate_granule(page_to_maddr(pages[i]));
+        if ( rc != 0 )
+        {
+            free_domheap_page(pages[i]);
+            pages[i] = NULL;
+            goto out_unmap;
+        }
+
+        list[i] = arm_cca_sro_addr_desc_4k(page_to_maddr(pages[i]));
+    }
+
+    rc = arm_cca_rmi_op_mem_donate(handle, page_to_maddr(list_pg), count, res);
+    /*
+     * donated_count is valid regardless of the RMI status.
+     * See DEN0137 2.0-bet1 - B4.3.2.2 Donating memory to an SRO
+     */
+    consumed = res->a1;
+    if ( consumed > count )
+    {
+        rc = -EIO;
+        consumed = count;
+    }
+
+    for ( i = 0; i < consumed; ++i )
+    {
+        xfer->pages[*xfer->nr_pages] = pages[i];
+        (*xfer->nr_pages)++;
+        pages[i] = NULL;
+    }
+
+out_unmap:
+    unmap_domain_page(list);
+    free_domheap_page(list_pg);
+
+out:
+    cleanup_rc = arm_cca_sro_free_delegated_pages(xfer, pages, count);
+    if ( cleanup_rc != 0 )
+        rc = cleanup_rc;
+    xfree(pages);
+
+    return rc;
+}
+
+static int arm_cca_sro_continue(unsigned long handle,
+                                struct arm_smccc_res *res)
+{
+    return arm_cca_rmi_op_continue(handle, ARM_CCA_RMI_CONTINUE_KEEP_GOING,
+                                   res);
+}
+
+static bool arm_cca_sro_is_pending(const struct arm_smccc_res *res)
+{
+    uint64_t result = arm_cca_rmi_result(res);
+
+    return arm_cca_rmi_status_is(result, ARM_CCA_RMI_INCOMPLETE) ||
+           arm_cca_rmi_status_is(result, ARM_CCA_RMI_BUSY);
+}
+
+static int arm_cca_sro_reclaim_pages(unsigned long handle,
+                                     const struct arm_cca_sro_mem_xfer *xfer,
+                                     struct arm_smccc_res *res);
+
+static int
+arm_cca_sro_validate_reclaim_xfer(const struct arm_cca_sro_mem_xfer *xfer)
+{
+    if ( !xfer || !xfer->pages || !xfer->nr_pages || !xfer->abandoned_pages )
+        return -EOPNOTSUPP;
+
+    if ( *xfer->nr_pages == 0 )
+        return -EIO;
+
+    return 0;
+}
+
+static int arm_cca_sro_cancel(unsigned long handle,
+                              const struct arm_cca_sro_mem_xfer *xfer,
+                              struct arm_smccc_res *res)
+{
+    int rc = arm_cca_rmi_op_cancel(handle, res);
+
+    if ( rc != 0 && !arm_cca_sro_is_pending(res) )
+        return rc;
+
+    while ( arm_cca_sro_is_pending(res) )
+    {
+        unsigned long mem_req;
+
+        if ( arm_cca_rmi_status_is(arm_cca_rmi_result(res),
+                                   ARM_CCA_RMI_BUSY) )
+        {
+            rc = arm_cca_sro_continue(handle, res);
+            if ( rc < 0 )
+                return rc;
+            if ( !arm_cca_sro_is_pending(res) )
+                return rc;
+            continue;
+        }
+
+        mem_req = arm_cca_rmi_sro_mem_req(res->a0);
+
+        switch ( mem_req )
+        {
+        case ARM_CCA_RMI_OP_MEM_REQ_RECLAIM:
+            rc = arm_cca_sro_validate_reclaim_xfer(xfer);
+            if ( rc != 0 )
+                return rc;
+            rc = arm_cca_sro_reclaim_pages(handle, xfer, res);
+            break;
+
+        case ARM_CCA_RMI_OP_MEM_REQ_NONE:
+            rc = arm_cca_sro_continue(handle, res);
+            if ( rc < 0 )
+                return rc;
+            if ( !arm_cca_sro_is_pending(res) )
+                return rc;
+            break;
+
+        default:
+            return -EIO;
+        }
+
+        if ( rc < 0 )
+            return rc;
+    }
+
+    return rc;
+}
+
+int arm_cca_sro_complete_mem_transfer(int rc, struct arm_smccc_res *res,
+                                      const struct arm_cca_sro_mem_xfer *xfer)
+{
+    unsigned long handle;
+    bool can_cancel = false;
+
+    if ( rc != 0 && !arm_cca_sro_is_pending(res) )
+        return rc;
+
+    if ( !arm_cca_rmi_status_is(arm_cca_rmi_result(res),
+                                ARM_CCA_RMI_INCOMPLETE) )
+        return rc;
+
+    handle = res->a1;
+
+    while ( arm_cca_sro_is_pending(res) )
+    {
+        uint64_t result = arm_cca_rmi_result(res);
+        unsigned long mem_req;
+
+        if ( arm_cca_rmi_status_is(result, ARM_CCA_RMI_BUSY) )
+        {
+            rc = arm_cca_sro_continue(handle, res);
+        }
+        else
+        {
+            can_cancel = arm_cca_rmi_sro_can_cancel(result);
+            mem_req = arm_cca_rmi_sro_mem_req(result);
+
+            switch ( mem_req )
+            {
+            case ARM_CCA_RMI_OP_MEM_REQ_DONATE:
+                rc = arm_cca_sro_donate_pages(handle, res->a2, xfer, res);
+                /*
+                 * RMM records a failed donation through the SRO context.  The
+                 * Host must continue the SRO after an RMI_OP_MEM_DONATE error.
+                 *
+                 * See DEN0137 2.0-bet1 - B4.3.2.2
+                 */
+                if ( arm_cca_rmi_status_is_error(arm_cca_rmi_result(res)) )
+                    rc = arm_cca_sro_continue(handle, res);
+                break;
+
+            case ARM_CCA_RMI_OP_MEM_REQ_RECLAIM:
+                rc = arm_cca_sro_validate_reclaim_xfer(xfer);
+                if ( rc != 0 )
+                    break;
+
+                rc = arm_cca_sro_reclaim_pages(handle, xfer, res);
+                break;
+
+            case ARM_CCA_RMI_OP_MEM_REQ_NONE:
+                rc = arm_cca_sro_continue(handle, res);
+                break;
+
+            default:
+                rc = -EOPNOTSUPP;
+                break;
+            }
+        }
+
+        if ( rc < 0 )
+        {
+            int cancel_rc;
+
+            /*
+             * A final RMI_ERROR_* already ends the SRO.  CANCEL is only for
+             * a still-pending SRO which Xen can no longer drive.
+             */
+            if ( !arm_cca_sro_is_pending(res) )
+                break;
+
+            if ( !can_cancel )
+                break;
+
+            cancel_rc = arm_cca_sro_cancel(handle, xfer, res);
+            if ( cancel_rc != 0 )
+                rc = cancel_rc;
+            break;
+        }
+    }
+
+    return rc;
+}
+
+static int
+arm_cca_sro_forget_reclaimed_page(const struct arm_cca_sro_mem_xfer *xfer,
+                                  paddr_t pa)
+{
+    struct page_info **pages = xfer->pages;
+    unsigned int *nr_pages = xfer->nr_pages;
+    unsigned int i;
+
+    for ( i = 0; i < *nr_pages; ++i )
+    {
+        struct page_info *pg = pages[i];
+
+        if ( !pg || page_to_maddr(pg) != pa )
+            continue;
+
+        pages[i] = pages[*nr_pages - 1];
+        pages[*nr_pages - 1] = NULL;
+        (*nr_pages)--;
+
+        if ( arm_cca_undelegate_granule(pa) != 0 )
+        {
+            /*
+             * The RMM has returned the page.  Keep host undelegation failure
+             * out of the SRO state machine and retry it from relinquish.
+             */
+            page_list_add_tail(pg, xfer->abandoned_pages);
+            return 0;
+        }
+
+        free_domheap_page(pg);
+
+        return 0;
+    }
+
+    return -ENOENT;
+}
+
+static int
+arm_cca_sro_forget_reclaimed_desc(const struct arm_cca_sro_mem_xfer *xfer,
+                                  uint64_t desc)
+{
+    paddr_t pa = arm_cca_rmi_addr_desc_4k_pa(desc);
+    unsigned long count = arm_cca_rmi_addr_desc_4k_count(desc);
+    unsigned long size = arm_cca_rmi_addr_desc_4k_size(desc);
+    unsigned long state = arm_cca_rmi_addr_desc_4k_state(desc);
+    unsigned long i;
+
+    if ( size != ARM_CCA_RMI_PAGE_L3 ||
+         state != ARM_CCA_RMI_OP_MEM_DELEGATED ||
+         count == 0 )
+        return -EIO;
+
+    for ( i = 0; i < count; ++i )
+    {
+        int rc = arm_cca_sro_forget_reclaimed_page(xfer, pa);
+
+        if ( rc != 0 )
+            return rc;
+
+        pa += PAGE_SIZE;
+    }
+
+    return 0;
+}
+
+static int arm_cca_sro_reclaim_pages(unsigned long handle,
+                                     const struct arm_cca_sro_mem_xfer *xfer,
+                                     struct arm_smccc_res *res)
+{
+    struct page_info *list_pg;
+    uint64_t *list;
+    unsigned long max_descs = *xfer->nr_pages;
+    unsigned long nr_descs = 0;
+    unsigned int i;
+    int rc;
+
+    list_pg = alloc_domheap_page(NULL, 0);
+    if ( !list_pg )
+        return -ENOMEM;
+
+    list = map_domain_page(page_to_mfn(list_pg));
+    clear_page(list);
+
+    /*
+     * In the worst case each reclaimed page needs one address-list
+     * descriptor, so the tracked page count is a sufficient list capacity.
+     */
+    rc = arm_cca_rmi_op_mem_reclaim(handle, page_to_maddr(list_pg), max_descs,
+                                    res);
+
+    if ( arm_cca_rmi_status_is(arm_cca_rmi_result(res),
+                               ARM_CCA_RMI_INCOMPLETE) )
+    {
+        nr_descs = res->a1;
+        if ( nr_descs > max_descs )
+        {
+            nr_descs = max_descs;
+            rc = -EIO;
+        }
+    }
+
+    for ( i = 0; i < nr_descs; ++i )
+    {
+        int ret = arm_cca_sro_forget_reclaimed_desc(xfer, list[i]);
+
+        if ( ret != 0 )
+        {
+            rc = ret;
+            break;
+        }
+    }
+
+    unmap_domain_page(list);
+    free_domheap_page(list_pg);
+
+    return rc;
+}
diff --git a/xen/arch/arm/cca/sro.h b/xen/arch/arm/cca/sro.h
new file mode 100644
index 000000000000..71d26574fe7e
--- /dev/null
+++ b/xen/arch/arm/cca/sro.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef ARM_CCA_SRO_H
+#define ARM_CCA_SRO_H
+
+struct arm_smccc_res;
+struct page_list_head;
+struct page_info;
+
+struct arm_cca_sro_mem_xfer {
+    /*
+     * pages tracks pages accepted by the SRO and later returned by reclaim.
+     * max_pages is the capacity for accepted donations; zero disables
+     * donation.  abandoned_pages keeps delegated pages which still need
+     * host-side undelegation retry.
+     */
+    struct page_info **pages;
+    unsigned int *nr_pages;
+    unsigned int max_pages;
+    struct page_list_head *abandoned_pages;
+};
+
+int arm_cca_sro_complete_mem_transfer(int rc, struct arm_smccc_res *res,
+                                      const struct arm_cca_sro_mem_xfer *xfer);
+
+#endif /* ARM_CCA_SRO_H */
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:08:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:08:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309343.1580398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqj-0002Sb-6H; Fri, 15 May 2026 04:08:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309343.1580398; Fri, 15 May 2026 04:08:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqi-0002Qg-V0; Fri, 15 May 2026 04:08:32 +0000
Received: by outflank-mailman (input) for mailman id 1309343;
 Fri, 15 May 2026 04:08:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjqh-0001yd-5f
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:08:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjqg-00GbfP-Hq
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:08:30 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c0b-2eae-0a2a0a5409dd-0a2a4504bda6-44
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:30 +0200
Received: from [52.101.125.129]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c35-1dec-0a2a45040019-34657d8136d2-7
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:30 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB3981.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:23 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LRKDfWZzRHBANJNy49uEbFMb3rLvwdeb57/irzeo6WdfiA3gxykkTse40rL0mm3XidTwi5cz5AeUFsJ+BhY86kuGX2gXTRa9fkcmzHRC9S+xUuE79DH27T4R3fMsp3EhmX+c6yVs+Y0ZXzivJ5EH1dYP6riRrVSfXnplSwvDPhGPlVMY+r7/70G1KWO38rnwURELXx2UI7x2Jw2F/uIPRtAOgDDXZqsEPjozXvVdr2u0fFXZ86IHfeJ8XKOpLq6sTC/Os4Rypi6b/SS7W0a+5y0+T5oR1LmWX0xqO0EhkImlAj4FEMXxMSVYholWVNmfZsw+CZZ9tGH4HjNCe13LZw==
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=ihotna9f+5bqGkkQOWVVME5/dELv08SRAliM5aVHxjs=;
 b=V7VKBFZ7QWs9lqLvfnNHp58L2+D2Z521RAVHcJ6SX1UQFrPaOLsikmdCtdalTVC7gcvq8F5aC2r4TJq+eKizgEybYlpI+51EW8aZhl5dzRCgdbdAhN2Hdhk74/xgIuyb7JCQnWcgWHYAWWGhQg6ENxj+bXhCt6vpDZE/9h7s4S84n7vbotAEe2bZT0amYEQh03RYe7CiZxWQG4vJI0nI7qFRSwKG+AqXD05NjVuVH2aDoGMArPNWcnJeXObS7opRzTTJ53k8uVpgJFbDkh3F4e4vfI1jsaTiEDgGSBEVXV/bMfwdEmcy1c7qJ6w0CGYJpQd4Ot5/ceHEuLd8xwuNPQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ihotna9f+5bqGkkQOWVVME5/dELv08SRAliM5aVHxjs=;
 b=KNW3CvgfQOw03hq0KYuZMiSXcLlHHlv1aQhLHhjCF0IDJbrWt+ORR/CNqA+LJNJ7JNbcc7wz4ZhQE/y+w/g9vXxoDFsarNar5wVDaEa2dApiUKjmKQV6GNEwTAT9SepGyYDllXTC7mPQT6YpBPYwJSMIl/h0xdrlyerz/YYmW+4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 06/26] xen/arm/cca: add Realm granule helpers
Date: Fri, 15 May 2026 13:07:52 +0900
Message-ID: <20260515040812.983626-7-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0351.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:7c::20) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB3981:EE_
X-MS-Office365-Filtering-Correlation-Id: 4d0cf795-6dfd-449f-4b10-08deb2379b4e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	4xOloNydJfkoTZbHuGUYSjjx5YR2Y+tlevsyTFdyUb1YpzEVkPjNHvoY0rRnPez2fnFGO5wSuTtQDPOBAMsuzgnQGJ2nVU17gS4YPDrvpApNOT7sYZx0fmNaSOpGrG1sftxySvqlucQP7lxHvT79KY1BwYgoLvz1+amv3QWFa6AST4b42VWN32ulTYk+JsHhVizNc0DEJGF+qIiS7hege9EzLGg9CP6YA/SJ6Ckx/WgiUV9pIkwlRPel+qACm0A4waCcjYNIoE3Xz8nXp32/7E6Ls0TpaXm7SJjKzLMKxak01vqGFndLR6YrE1qEAkL9TOVdG0Uz7qL/SIl9LgEa3KC3hDWOpQLgAfpZcDxeIRyhVXgB3dgC7KgUaLET67UtKTuBdkOT0/jJWLur/dqkGSYFQGjEi29BFRFVfI1H9BCuDl+Kox+DsL8I8BtI8Tv1Oe2vrd00A5ELAqfMKCuhGTvRpxkt3+1kpRROhmQ72N9+2loC2yTPmAt7I1O4RoDUSDkxyIK8GIOAfZ2ASDx8IHcIOkgabInEmpFiDijaG6pzLIMplR/V7OZbNFvpg+3+ZJ3W2Wqc36LKajbXVa4t4NJzlazJVvq7GEtF0GkyFY1pNvGcwxrs8ISIrPzCE+uwEVB4PIGG+z8taB8dQx73j5ojw0tnpXRg0+9A7bO6KELzt1KD7reu7SomCOOi/MGO
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?B/NmlldLWfuemefkQ0J1njZ9YxbgphWW3fwqvgtXV1A2nwrDJGjWn5crCGWA?=
 =?us-ascii?Q?W5INu6X05W1ZMH9ylng7jh5cT2XAEmL9m1aXbj4eU0szolDrV73JLYAC9mnj?=
 =?us-ascii?Q?brI7LFFmKDKY7IXaVEH0loCHFkocfBRcukMPMgu40p6couJhWRitlMIp41Mw?=
 =?us-ascii?Q?85jl2wxGLiJqjILMDV+YFPRlljpe2nnlsUqXD4WaqIJt6sPXa8dIA4bN9DKS?=
 =?us-ascii?Q?lpdDiJzZtg2VG04F2AA93/uz9HhFfZG/nVGeI8jq0Qe1zEPNImXlmPOVfwYl?=
 =?us-ascii?Q?j/UIfOqRxYFQtkyXG0aFD8JiNDXyU3+e/R4mAm2cMK3LQBgM4c0jtfEY3QYD?=
 =?us-ascii?Q?pZLaLI66KJhpzesw9xf/CA7Xzp1A1jw+eTOqMxmmfAKw9dVskPiN96tZt0fR?=
 =?us-ascii?Q?uip9qx4YyJKtm1Y9WVovW8xzLi42UicVm598TWOpPDFVgJQ62yqGIV2i7BcQ?=
 =?us-ascii?Q?1uW5SOJ1WWiAPyx+TojqFhDFbsRCPWi+ekV0pbwPKBhRphW5ysJytWnB93xz?=
 =?us-ascii?Q?mSFQS4FM9vViZND0VE7cKtNzDFK2I0qv5Y3fWusq+eoMBd3cgMLaaK+lSTyy?=
 =?us-ascii?Q?xPyDBeRWxYgxTB2Er5jC+OLX+nb6WOGNeHMhS7dWWIKFFTbLrfiWBUSW6ePs?=
 =?us-ascii?Q?boj6O+MztSd4KuChHEBcnitgYJGpbarUpAyes59Zfq1ilkoKqtdRDHlaXv3X?=
 =?us-ascii?Q?YlNn5HAaQeix28pj3qFGkyiVW5+nvOMomqPhmU3QG7M0cT6kybvnb0sDLfZ/?=
 =?us-ascii?Q?43wDrFX1K+ez7gq4j5ensaNWS45mCyhXkBo10NIl1nQQjdKipmWQFVgK3YHy?=
 =?us-ascii?Q?WJ6Lsmlo/3QZjNN8ZjaKQwu0dpYRlAlV1IS9XCTs4q40oj2558dH8nTt7QsB?=
 =?us-ascii?Q?if0TyjKOOeUxrCb3KDq3ZNjJUjjNlO6ZH1vRkiKlcfU3WHih0WwYzP840K3E?=
 =?us-ascii?Q?K3RC1hp8xhZl1Jg0WhtL2+08cVch7Bv+7EooCEtjyFjmYyOVB1udrXCy+H3t?=
 =?us-ascii?Q?gYv09v/6Do6k7z+BIENV04yCt86APrPpXCRY9Qrz/ZtApAX2RztIeWotJabW?=
 =?us-ascii?Q?eV160IpL63SWfj9bLCOKVwmChj+8CZrl1p+MVFBua9Y7mEHbyHaWORT+LxEL?=
 =?us-ascii?Q?S0EjnWmJW4YBGUJSigSOG2DZLKcp7qUWGvRhN417x+d7MkC1fQRnaJVdRcbQ?=
 =?us-ascii?Q?kDdXG7Aa3UKz/452bZxueHjzUpy+A9T+ZghJpcRx2zUgK/HPqQTpn7aUUrKY?=
 =?us-ascii?Q?vGF6MLQtDgg9ZOc5mv0u6yHg0Wd7l57bP6QY7onQ6zyIO4d5aTFP6nTRkJSL?=
 =?us-ascii?Q?mhlTMgopau4Ek9iC4vqA0iMUdZ2vrZDyihzY9P6uSqg9+yWNfhOTlZ31xl/F?=
 =?us-ascii?Q?u/JoAJ69OQ3AF3/8RMPXMdhxf8Sn8tc/NIG3qbmks5N9wb6SPlC0KJSAdgH/?=
 =?us-ascii?Q?yO1fv+VukYCd3v7lxXsPDBAooTSThaZ5leBlXaHW5jiXNjs4AL42kgI/wVCf?=
 =?us-ascii?Q?0gKiW7WwXF5es99awA1IZBgrrKw8RrLZ6sQRJT2QSysP9HVKFLYwXM7aTsI8?=
 =?us-ascii?Q?1ep7fGns8rQU0o0MXnwwR6FttnJdFm8w2NR2i5TFXwPuzMje+AxXOaD1V5dn?=
 =?us-ascii?Q?DfQiRQt/D+p4u1NgXJALPhP/r4J8IKBE8bTVZajM7V5nELLf4cIwfujW5RAL?=
 =?us-ascii?Q?VyxdW0Xe8TKjBB+DrEumbYNbmsM1bsmOxxZZALJnQVTIdRZJ+LtROIzEB+Cc?=
 =?us-ascii?Q?HoxaTx2O1yX8J3gfK8dywucEe3XJaOYN/sjtoMYn1gKixiQ7+SO6?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d0cf795-6dfd-449f-4b10-08deb2379b4e
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:23.2284
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: eLQcFzsyGfA4ofz/BDkAV+PlLZHi3RxBZO1KWm2KmhM3yKDSXfNg3scZtmjgKr2RgcvHyTv75J5cZRSSLFVHhg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB3981
X-purgate-ID: tlsNG-ebf023/1778818110-41D7C3FF-ADB2B77D/0/0
X-purgate-type: clean
X-purgate-size: 5664

Add the memory-tracking preflight and the single-granule delegate
helpers. Realm-owned pages have to come from fine, conventional
tracking regions.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/Makefile      |   1 +
 xen/arch/arm/cca/granule.c     | 150 +++++++++++++++++++++++++++++++++
 xen/arch/arm/include/asm/cca.h |   5 ++
 3 files changed, 156 insertions(+)
 create mode 100644 xen/arch/arm/cca/granule.c

diff --git a/xen/arch/arm/cca/Makefile b/xen/arch/arm/cca/Makefile
index aaa04e3b914b..7f20d43323c3 100644
--- a/xen/arch/arm/cca/Makefile
+++ b/xen/arch/arm/cca/Makefile
@@ -1,2 +1,3 @@
+obj-y += granule.o
 obj-y += rmi.o
 obj-y += state.o
diff --git a/xen/arch/arm/cca/granule.c b/xen/arch/arm/cca/granule.c
new file mode 100644
index 000000000000..d2be4d240f19
--- /dev/null
+++ b/xen/arch/arm/cca/granule.c
@@ -0,0 +1,150 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/bootinfo.h>
+#include <xen/errno.h>
+#include <xen/init.h>
+#include <xen/lib.h>
+
+#include <asm/cca.h>
+
+#include "rmi.h"
+
+static paddr_t __init arm_cca_l0gpt_size(unsigned long features1)
+{
+    unsigned long l0gptsz = arm_cca_rmi_field_get(
+        features1, ARM_CCA_RMI_FEATURE_REGISTER_1_L0GPTSZ_SHIFT,
+        ARM_CCA_RMI_FEATURE_REGISTER_1_L0GPTSZ_WIDTH);
+
+    return 1ULL << (30 + l0gptsz);
+}
+
+static int __init arm_cca_verify_memory_tracking(paddr_t start, paddr_t end)
+{
+    while ( start < end )
+    {
+        unsigned long category, state;
+        paddr_t next;
+        int rc;
+
+        rc = arm_cca_rmi_granule_tracking_get(start, end, &category, &state,
+                                              &next);
+        if ( rc != 0 )
+            return rc;
+
+        if ( category != ARM_CCA_RMI_MEM_CATEGORY_CONVENTIONAL ||
+             state != ARM_CCA_RMI_TRACKING_FINE ||
+             next <= start || next > end )
+        {
+            printk(XENLOG_ERR
+                   "ARM CCA: memory [%#" PRIpaddr ", %#" PRIpaddr
+                   ") is not fine-tracked conventional memory\n",
+                   start, end);
+            return -EOPNOTSUPP;
+        }
+
+        start = next;
+    }
+
+    return 0;
+}
+
+static int __init arm_cca_create_gpts(paddr_t start, paddr_t end,
+                                      paddr_t l0gpt_size)
+{
+    paddr_t base = ROUNDDOWN(start, l0gpt_size);
+    paddr_t stop = ROUNDUP(end, l0gpt_size);
+
+    while ( base < stop )
+    {
+        int rc = arm_cca_rmi_gpt_l1_create(base);
+
+        if ( rc != 0 )
+        {
+            printk(XENLOG_ERR
+                   "ARM CCA: failed to create GPT L1 for %#" PRIpaddr "\n",
+                   base);
+            return rc;
+        }
+
+        base += l0gpt_size;
+    }
+
+    return 0;
+}
+
+int __init arm_cca_prepare_host_memory(unsigned long features1)
+{
+    const struct membanks *mem = bootinfo_get_mem();
+    paddr_t l0gpt_size = arm_cca_l0gpt_size(features1);
+    unsigned int i;
+    int rc;
+
+    for ( i = 0; i < mem->nr_banks; i++ )
+    {
+        paddr_t start = mem->bank[i].start;
+        paddr_t end = start + mem->bank[i].size;
+
+        rc = arm_cca_verify_memory_tracking(start, end);
+        if ( rc != 0 )
+            return rc;
+
+        rc = arm_cca_create_gpts(start, end, l0gpt_size);
+        if ( rc != 0 )
+            return rc;
+    }
+
+    return 0;
+}
+
+static int arm_cca_process_granule_range(paddr_t start, paddr_t end,
+                                         bool delegate)
+{
+    paddr_t cur = start;
+    int rc;
+
+    /*
+     * arm_cca_prepare_host_memory() checks that host DRAM is fine-tracked and
+     * has GPT L1 metadata before any Realm-owned granule can be delegated.
+     */
+    if ( start >= end || !IS_ALIGNED(start, PAGE_SIZE) ||
+         !IS_ALIGNED(end, PAGE_SIZE) )
+        return -EINVAL;
+
+    while ( cur < end )
+    {
+        paddr_t out_top = INVALID_PADDR;
+
+        if ( delegate )
+            rc = arm_cca_rmi_granule_range_delegate(cur, end, &out_top);
+        else
+            rc = arm_cca_rmi_granule_range_undelegate(cur, end, &out_top);
+
+        if ( rc != 0 )
+            return rc;
+
+        if ( out_top <= cur || out_top > end )
+            return -EIO;
+
+        cur = out_top;
+    }
+
+    return 0;
+}
+
+/* DEN0137 2.0-bet1 - D1.1.1 Granule delegation flow. */
+int arm_cca_delegate_granule(paddr_t granule)
+{
+    if ( !IS_ALIGNED(granule, PAGE_SIZE) )
+        return -EINVAL;
+
+    return arm_cca_process_granule_range(granule, granule + PAGE_SIZE, true);
+}
+
+/* DEN0137 2.0-bet1 - D1.1.2 Granule undelegation flow. */
+int arm_cca_undelegate_granule(paddr_t granule)
+{
+    if ( !IS_ALIGNED(granule, PAGE_SIZE) )
+        return -EINVAL;
+
+    return arm_cca_process_granule_range(granule, granule + PAGE_SIZE, false);
+}
diff --git a/xen/arch/arm/include/asm/cca.h b/xen/arch/arm/include/asm/cca.h
index 6bf644fbcee5..c35d51f750a3 100644
--- a/xen/arch/arm/include/asm/cca.h
+++ b/xen/arch/arm/include/asm/cca.h
@@ -2,6 +2,7 @@
 #ifndef ARM_CCA_H
 #define ARM_CCA_H
 
+#include <xen/init.h>
 #include <xen/types.h>
 
 /*
@@ -79,4 +80,8 @@ void arm_cca_vcpu_destroy(struct vcpu *v);
 void *arm_cca_alloc_rec_run(void);
 void arm_cca_free_rec_run(void *run);
 
+int arm_cca_delegate_granule(paddr_t granule);
+int arm_cca_undelegate_granule(paddr_t granule);
+int arm_cca_prepare_host_memory(unsigned long features1) __init;
+
 #endif /* ARM_CCA_H */
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:08:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:08:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309338.1580365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqg-0001nj-3j; Fri, 15 May 2026 04:08:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309338.1580365; Fri, 15 May 2026 04:08:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqf-0001nc-WD; Fri, 15 May 2026 04:08:30 +0000
Received: by outflank-mailman (input) for mailman id 1309338;
 Fri, 15 May 2026 04:08:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjqe-0001Qf-Ti
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:08:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjqe-00GbfP-9N
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:08:28 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c0b-2eae-0a2a0a5409dd-0a2a4504bda6-40
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:28 +0200
Received: from [52.101.125.129]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c35-1dec-0a2a45040019-34657d8136d2-5
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:28 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB3981.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:21 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mxT8Nm01DxQ+CSw70GAGjBHeQDZxXsxCXvUdjgAcAGQFDrnjRvIPb0v5dR82AbK4mU/ZmxiImCppKI9kVkSdm2au34w1ivelCkTrvbhmPJvBmSU0el0AmtUExCSChoQW5mLQ2B5+r0bPWP1TomeGQ2t7VYQZbnRjZS8S2nTq8tluAhk7TndDOCgFkPm0tNVEbG6yT9Pi4pR1vL1fivWKEPNGC/VcaE3AZou/2LMVGkq/I9aoXGZkZG5vtfzKdnEYVkdepvS8Se+cbZ8ccDhD7ppyQ3dPc/6dgxYpT8SSf+iBhTk+Q/BNwY9Xq4UUUeJTKqenVRfmwLgbPDCA/Px6/w==
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=vAyjwFNK4w1A5HZVai7iWdh30Be5cNwrdAR6jGy2XIc=;
 b=Z50oCDTnpGtzwpC1QfdNgCWghQZ38YhxL632nerZXi5VVrelPgxgue0yYENBy5APj9uU3lh/ogQ+K/wa5i4M5kGFoA0jhUjnw59OJk+SEG1p7cUQXwiW0IswV/Kd5D9c9/0puZoU3aBxfnTZwtXh41+/P8Meuj7V4zULop0WW8J/LAHbpfvxAOiqRnKqdZ+wL+McGJqeYmKw+4Ona4pRdXpgQTavmcYOACt/mVrl69P3wy6hE+p6uyveaVmt9tRB9xe95hsGbcv5Jdw0c9eOyiVitid/JLf/h79cXB+mrsGbsg7iDA8LcsrkQjJhn9bNa2lpYdcWXVOARLL3UjBoBw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vAyjwFNK4w1A5HZVai7iWdh30Be5cNwrdAR6jGy2XIc=;
 b=lY2HshufvoyA1OK7cF1JdeKoRxeUYhIrG8BSA/iLHWDgoSxVG73zKzide+fYPO9chXSAW8+5bzt6fsoJrPSQmUrevt94QUtv1bpD2hHrVuSp7khyzyCna273PKr5QyZNnBYQxyxjHAUbMITlXyB+HuyW3M4VAMJ4nwy3+A263SM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 03/26] xen/arm/cca: add RMI v2.0 lifecycle wrappers
Date: Fri, 15 May 2026 13:07:49 +0900
Message-ID: <20260515040812.983626-4-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4P301CA0031.JPNP301.PROD.OUTLOOK.COM
 (2603:1096:405:2be::17) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB3981:EE_
X-MS-Office365-Filtering-Correlation-Id: 2aef2e53-e2ce-4d94-eb75-08deb23799f6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|3023799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	/rU923jkb4jSayiWGlSsyfPnwdA+OJ7a6TfSsz1vmPLwENGRc10ZuCPj6Qgsn5MRSfivXryT6/kvnIEo+oDeTGKAKVJnfoWxkgn7YdNvzwVYE0wxYCMkgJwlL8C7j7Ekt29qoJu1vonAqW2thxovGJC8tsG8LIX1EWFV0FEp1cLnbXAsKL7S6AxILqTLOmBouLEpMTDZO1YadASo9gLDI31/bDEvUyrOw7vJiXpwC8u6CoyrEBihQqTTts2MI2k6DPmCaS6up3yut0Ebs/iC/cJKgP+tItk1m08gZ+Zs5i6IKdIacRTXvTYORlshNST+pg3e1FEb541PwqTDd3BiQbqKDJmrZInQTM/5IJkMlAA5Cb4bNRif+D7W1DGwVQLiIyulySa0wraJWuN53m/vS6wmVDO1f6wOcPXzSAcGr1xeIHC+kD2KdeOEdd/Th7w7RHp8qZavJ3v/7lSttAB4JS7tqkW3nAAmNECTjkVPInH4z6b7cJP0++qSe6WqNCVvknDhAx38PUR1bps8qioyRuufOwC7p9X1GNLwfVBCCo3Mo/V1zkMsnvvUiXONMV2hSWRThxO0H5+f3BLBo0gol8rJEPG1l5XMMcMurewAvw20DvJ8fdpTWBVgO4+CPENnxJGCa9o2e95cf4hd4mwDua29pWmp8HFPyzef0SA+fXAiORM+2yXIO35VY/jo0iSc
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(3023799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?4/tZAFWLDyojmP1204mU6uTODmN+qgtb/ul3ayL+jyRo9Z/fXvrW6OIjTM7m?=
 =?us-ascii?Q?miM7GpevQ7hfp8gdIbrtazM6X8BoipajO5KeTMRD1z9/gBx8DeOPyJs6ynZE?=
 =?us-ascii?Q?addcbDX1NDTo/No5GFzHPv3MBfSX7jKRmaMhnqfIPdBBPtvhSs3XRAWXz1Sw?=
 =?us-ascii?Q?BVYTe1M2zk/EkD30Bj61GisVp8JfyL7iQyvIc5PoRldkL1Y/UdWzfYckpgTC?=
 =?us-ascii?Q?O5dFuw2q+eT0LhGTMdr+J+Ujmqa+ooKxOyWiR10XqnWeT7zZxritNHyrTinp?=
 =?us-ascii?Q?GzBaSI3GbpGq/L39A2vCWpOXJKKYHj1wwAhWENVe+CWYMGKUxwsmfL40ExVf?=
 =?us-ascii?Q?MX//MrTlrT3i2CaKYXOnW0U7NIqUoO6IFCc/JOL5Mrmz4IyP8Z9xSVnuBvrp?=
 =?us-ascii?Q?abcss/qt5bAq27jtCsB4U9a7RJXzo/WVIYpg9Do4TlukgI8GZLSqN27ljCku?=
 =?us-ascii?Q?AGWOohSVdxhimwErHOMHVPO8e4isukk2ZVEefyp+JTs+kKfGHzRzYsdUWiuw?=
 =?us-ascii?Q?9SgCuidaY5O1nizn66KIuFQaBp1zYkTvOIyEtvlU1GKTYkflyaW7qWCpFNt0?=
 =?us-ascii?Q?zHNEraM/7g/aD/UvK0mkXO53Y68dTtA/bluCgif31xPQsRjAiqu6OJh++ubG?=
 =?us-ascii?Q?OR34P0R1jGlb8Rvww/3fNxrh7Uo6lOEJB0VocHC6i44A+PU9PTLr0Yma7eXS?=
 =?us-ascii?Q?C5YlTmyVn1R/cm4bqkfOf88f9CU5mh6EEW6qbE0PgHeB6P9mn8yyH+4NUxP1?=
 =?us-ascii?Q?L/lo/2albLDDRPz0M248O8iew/W4oYOa2JO7f+VS05ithh/ZZmCNRjVHMjS2?=
 =?us-ascii?Q?wj7Drt8XXjtItWtj7tYNW0xCeVVp/dJ67yZagzR4BTdwGUtX8iyLz1j9bghw?=
 =?us-ascii?Q?yWsyEVnTGTCfuSo5MbTE1825UerfYo+ineUNXe4bPasFIauJUFhptsyqEHe6?=
 =?us-ascii?Q?PZvp0rWymv4+dayE5DgPYmi3A0ETXjUbfuvMSCjHRSNZYQR1YlmuKPkPNH7M?=
 =?us-ascii?Q?55qElkxzYKSqfNjDUzGPl/pSpHEaItY+NqUJhYUpBcTLCNA77ziuvN2LHAx/?=
 =?us-ascii?Q?vfLjO+BKZRSapVJ04Q0JhuXAXobhWxhgjxbxafA+lqQlMEe4cfKDKJ18VcVf?=
 =?us-ascii?Q?iQvydeleM/SGU+V7IEqfzs4wUbKIm4NplJRgzLuBOsVUMCojT1qca05NaCD8?=
 =?us-ascii?Q?N5i1DCfQgU/N07FHn6s9X0ROdZ/jLOPHPTHBY4FJ91vFt+xSDBiOKwvrfuJp?=
 =?us-ascii?Q?Xo/YGmjU9CEtGVJyVCoz2/616l/DEpqL9bsUFl3gTR82V7UZMCNZtjd/oqp2?=
 =?us-ascii?Q?jf56VRd1whbAEv8a2PCWiCgRs+MHGyFtf5GTvt7ZaSSAPpAB5S/V6UyUSdxr?=
 =?us-ascii?Q?DscjBLabBx3bD+hRIJEaAxdSJjl4jqq8wspAlgyvmBzh8o+bMg3JTlxDRzn5?=
 =?us-ascii?Q?uFW+L4YZg6MzYvUhIZgYgwkX6EpKqQ8p+Zl6TiMQ58W2jbmblB8DhYpN1Q69?=
 =?us-ascii?Q?HGklVIMOvFKa6G01weoFAtALHGCvNAM+/GAXMcjaFA0JR9VRCg5LkKyQ5ZPD?=
 =?us-ascii?Q?OxNvqj+qmyFvrdmutbBjgNnxIKzy5uav7Umy3d/VnWLfVECcAH3IaqVSfVrB?=
 =?us-ascii?Q?oa7rE+KOUvPNfP6v/qKZvwfL1KwMlKil5o1xf1Api3xcmcx6w+twn5f/A1Ao?=
 =?us-ascii?Q?9t/e0qw18YCQkXRAK+srODjPBXCRV19XW5xxfqOPMRHifbq9VNCdWDSPPrnB?=
 =?us-ascii?Q?sMeRoH5e1S1DYouPamBs0LirbAplUqsbfU8ePk7llSIAhEqYoYZp?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 2aef2e53-e2ce-4d94-eb75-08deb23799f6
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:20.9857
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: n5HtbHoJaFIKAr31MmkGmKotGKQ6LwNrdv9AUIcp/+cxoDIqw6yXkaPf6We3/JiFJ7uH9qk/Im9ISxHjqBwWxw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB3981
X-purgate-ID: tlsNG-ebf023/1778818108-2A37F3FF-6843D637/0/0
X-purgate-type: clean
X-purgate-size: 14387

Wrap the Realm, REC, RTT, SRO and PSCI calls used by Xen. Keep the
stateful completion rules close to the raw RMI call boundary and avoid
code duplication.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/rmi.c | 271 +++++++++++++++++++++++++++++++++++++++++
 xen/arch/arm/cca/rmi.h |  88 +++++++++++++
 2 files changed, 359 insertions(+)

diff --git a/xen/arch/arm/cca/rmi.c b/xen/arch/arm/cca/rmi.c
index d37f1226f834..5661d35e30da 100644
--- a/xen/arch/arm/cca/rmi.c
+++ b/xen/arch/arm/cca/rmi.c
@@ -56,6 +56,46 @@ static int arm_cca_rmi_initiate_sro(unsigned long fid,
         cpu_relax();
     }
 }
+
+static int arm_cca_rmi_complete_no_mem_transfer(struct arm_smccc_res *res)
+{
+    unsigned long handle;
+    uint64_t result = arm_cca_rmi_result(res);
+
+    if ( !arm_cca_rmi_status_is(result, ARM_CCA_RMI_INCOMPLETE) )
+        return arm_cca_rmi_result_to_errno(result);
+
+    /*
+     * The initiating command returns the SRO handle in X1.  Once
+     * the operation is continued, X1 is not a stable handle output:
+     * completion returns the initiating command's output registers.
+     *
+     * See DEN0137 2.0-bet1 - B4.3.2 and B4.3.2.1
+     */
+    handle = res->a1;
+
+    while ( arm_cca_rmi_status_is(result, ARM_CCA_RMI_INCOMPLETE) ||
+            arm_cca_rmi_status_is(result, ARM_CCA_RMI_BUSY) )
+    {
+        if ( arm_cca_rmi_status_is(result, ARM_CCA_RMI_INCOMPLETE) )
+        {
+            /*
+             * This helper is only for commands specified as stateful but not
+             * memory-transferring.  Callers with donate/reclaim flows handle SROs
+             * themselves because they must own the backing-page lifetime.
+             */
+            if ( arm_cca_rmi_sro_mem_req(result) !=
+                 ARM_CCA_RMI_OP_MEM_REQ_NONE )
+                return -EOPNOTSUPP;
+        }
+
+        arm_cca_rmi_op_continue(handle, ARM_CCA_RMI_CONTINUE_KEEP_GOING, res);
+        result = arm_cca_rmi_result(res);
+    }
+
+    return arm_cca_rmi_result_to_errno(result);
+}
+
 int arm_cca_rmi_version(unsigned long requested_revision,
                         unsigned long *revision_lower,
                         unsigned long *revision_higher)
@@ -168,3 +208,234 @@ int arm_cca_rmi_gpt_l1_create(paddr_t base)
 
     return arm_cca_rmi_res_to_errno(&res);
 }
+
+int arm_cca_rmi_granule_range_delegate(paddr_t base, paddr_t top,
+                                       paddr_t *out_top)
+{
+    struct arm_smccc_res res;
+    int rc;
+
+    rc = arm_cca_rmi_initiate_sro(ARM_CCA_RMI_GRANULE_RANGE_DELEGATE_FID,
+                                  base, top, 0, 0, 0, &res);
+    if ( rc != 0 )
+        return rc;
+
+    rc = arm_cca_rmi_complete_no_mem_transfer(&res);
+    if ( rc == 0 && out_top != NULL )
+        *out_top = res.a1;
+
+    return rc;
+}
+
+int arm_cca_rmi_granule_range_undelegate(paddr_t base, paddr_t top,
+                                         paddr_t *out_top)
+{
+    struct arm_smccc_res res;
+    int rc;
+
+    rc = arm_cca_rmi_initiate_sro(ARM_CCA_RMI_GRANULE_RANGE_UNDELEGATE_FID,
+                                  base, top, 0, 0, 0, &res);
+    if ( rc != 0 )
+        return rc;
+
+    rc = arm_cca_rmi_complete_no_mem_transfer(&res);
+    if ( rc == 0 && out_top != NULL )
+        *out_top = res.a1;
+
+    return rc;
+}
+
+int arm_cca_rmi_realm_create(paddr_t rd, paddr_t params_ptr,
+                             struct arm_smccc_res *res)
+{
+    int rc;
+
+    rc = arm_cca_rmi_initiate_sro(ARM_CCA_RMI_REALM_CREATE_FID,
+                                  rd, params_ptr, 0, 0, 0, res);
+    if ( rc != 0 )
+        return rc;
+
+    return arm_cca_rmi_res_to_errno(res);
+}
+
+int arm_cca_rmi_realm_activate(paddr_t rd, struct arm_smccc_res *res)
+{
+    arm_cca_rmi_invoke(ARM_CCA_RMI_REALM_ACTIVATE_FID, rd, 0, 0, 0, 0, res);
+
+    return arm_cca_rmi_res_to_errno(res);
+}
+
+int arm_cca_rmi_realm_terminate(paddr_t rd, struct arm_smccc_res *res)
+{
+    int rc;
+
+    rc = arm_cca_rmi_initiate_sro(ARM_CCA_RMI_REALM_TERMINATE_FID,
+                                  rd, 0, 0, 0, 0, res);
+    if ( rc != 0 )
+        return rc;
+
+    rc = arm_cca_rmi_res_to_errno(res);
+
+    if ( !arm_cca_rmi_status_is(arm_cca_rmi_result(res),
+                                ARM_CCA_RMI_INCOMPLETE) )
+        return rc;
+
+    return arm_cca_rmi_complete_no_mem_transfer(res);
+}
+
+int arm_cca_rmi_realm_destroy(paddr_t rd, struct arm_smccc_res *res)
+{
+    int rc;
+
+    rc = arm_cca_rmi_initiate_sro(ARM_CCA_RMI_REALM_DESTROY_FID,
+                                  rd, 0, 0, 0, 0, res);
+    if ( rc != 0 )
+        return rc;
+
+    return arm_cca_rmi_res_to_errno(res);
+}
+
+int arm_cca_rmi_rec_create(paddr_t rd, paddr_t rec, paddr_t params_ptr,
+                           struct arm_smccc_res *res)
+{
+    int rc;
+
+    rc = arm_cca_rmi_initiate_sro(ARM_CCA_RMI_REC_CREATE_FID,
+                                  rd, rec, params_ptr, 0, 0, res);
+    if ( rc != 0 )
+        return rc;
+
+    return arm_cca_rmi_res_to_errno(res);
+}
+
+int arm_cca_rmi_rec_destroy(paddr_t rec, struct arm_smccc_res *res)
+{
+    int rc;
+
+    rc = arm_cca_rmi_initiate_sro(ARM_CCA_RMI_REC_DESTROY_FID,
+                                  rec, 0, 0, 0, 0, res);
+    if ( rc != 0 )
+        return rc;
+
+    return arm_cca_rmi_res_to_errno(res);
+}
+
+int arm_cca_rmi_rec_enter(paddr_t rec, paddr_t run, struct arm_smccc_res *res)
+{
+    arm_cca_rmi_invoke(ARM_CCA_RMI_REC_ENTER_FID, rec, run, 0, 0, 0, res);
+
+    return arm_cca_rmi_res_to_errno(res);
+}
+
+int arm_cca_rmi_op_continue(unsigned long handle, unsigned long flags,
+                            struct arm_smccc_res *res)
+{
+    arm_cca_rmi_invoke(ARM_CCA_RMI_OP_CONTINUE_FID,
+                       handle, flags, 0, 0, 0, res);
+
+    return arm_cca_rmi_res_to_errno(res);
+}
+
+int arm_cca_rmi_op_cancel(unsigned long handle, struct arm_smccc_res *res)
+{
+    arm_cca_rmi_invoke(ARM_CCA_RMI_OP_CANCEL_FID, handle, 0, 0, 0, 0, res);
+
+    return arm_cca_rmi_res_to_errno(res);
+}
+
+int arm_cca_rmi_op_mem_donate(unsigned long handle, paddr_t list,
+                              unsigned long list_count,
+                              struct arm_smccc_res *res)
+{
+    arm_cca_rmi_invoke(ARM_CCA_RMI_OP_MEM_DONATE_FID,
+                       handle, list, list_count, 0, 0, res);
+
+    return arm_cca_rmi_res_to_errno(res);
+}
+
+int arm_cca_rmi_op_mem_reclaim(unsigned long handle, paddr_t list,
+                               unsigned long list_count,
+                               struct arm_smccc_res *res)
+{
+    arm_cca_rmi_invoke(ARM_CCA_RMI_OP_MEM_RECLAIM_FID,
+                       handle, list, list_count, 0, 0, res);
+
+    return arm_cca_rmi_res_to_errno(res);
+}
+
+int arm_cca_rmi_rtt_create(paddr_t rd, paddr_t rtt, paddr_t ipa,
+                           unsigned long level, struct arm_smccc_res *res)
+{
+    int rc;
+
+    rc = arm_cca_rmi_initiate_sro(ARM_CCA_RMI_RTT_CREATE_FID,
+                                  rd, rtt, ipa, level, 0, res);
+    if ( rc != 0 )
+        return rc;
+
+    return arm_cca_rmi_complete_no_mem_transfer(res);
+}
+
+int arm_cca_rmi_rtt_destroy(paddr_t rd, paddr_t ipa, unsigned long level,
+                            struct arm_smccc_res *res)
+{
+    int rc;
+
+    rc = arm_cca_rmi_initiate_sro(ARM_CCA_RMI_RTT_DESTROY_FID,
+                                  rd, ipa, level, 0, 0, res);
+    if ( rc != 0 )
+        return rc;
+
+    return arm_cca_rmi_complete_no_mem_transfer(res);
+}
+
+int arm_cca_rmi_rtt_set_ripas(paddr_t rd, paddr_t rec, paddr_t base,
+                              paddr_t top, struct arm_smccc_res *res)
+{
+    int rc;
+
+    rc = arm_cca_rmi_initiate_sro(ARM_CCA_RMI_RTT_SET_RIPAS_FID,
+                                  rd, rec, base, top, 0, res);
+    if ( rc != 0 )
+        return rc;
+
+    return arm_cca_rmi_complete_no_mem_transfer(res);
+}
+
+int arm_cca_rmi_rtt_data_map_init(paddr_t rd, paddr_t data, paddr_t ipa,
+                                  paddr_t src, unsigned long flags,
+                                  struct arm_smccc_res *res)
+{
+    int rc;
+
+    rc = arm_cca_rmi_initiate_sro(ARM_CCA_RMI_RTT_DATA_MAP_INIT_FID,
+                                  rd, data, ipa, src, flags, res);
+    if ( rc != 0 )
+        return rc;
+
+    return arm_cca_rmi_complete_no_mem_transfer(res);
+}
+
+int arm_cca_rmi_rtt_data_unmap(paddr_t rd, paddr_t base, paddr_t top,
+                               unsigned long flags, unsigned long oaddr,
+                               struct arm_smccc_res *res)
+{
+    int rc;
+
+    rc = arm_cca_rmi_initiate_sro(ARM_CCA_RMI_RTT_DATA_UNMAP_FID,
+                                  rd, base, top, flags, oaddr, res);
+    if ( rc != 0 )
+        return rc;
+
+    return arm_cca_rmi_complete_no_mem_transfer(res);
+}
+
+int arm_cca_rmi_psci_complete(paddr_t calling_rec, paddr_t target_rec,
+                              int64_t status, struct arm_smccc_res *res)
+{
+    arm_cca_rmi_invoke(ARM_CCA_RMI_PSCI_COMPLETE_FID,
+                       calling_rec, target_rec, (unsigned long)status,
+                       0, 0, res);
+
+    return arm_cca_rmi_res_to_errno(res);
+}
diff --git a/xen/arch/arm/cca/rmi.h b/xen/arch/arm/cca/rmi.h
index 4cd0bc64ccf5..589c12b24e79 100644
--- a/xen/arch/arm/cca/rmi.h
+++ b/xen/arch/arm/cca/rmi.h
@@ -110,6 +110,51 @@ static inline int arm_cca_rmi_res_to_errno(const struct arm_smccc_res *res)
 {
     return arm_cca_rmi_result_to_errno(arm_cca_rmi_result(res));
 }
+
+static inline unsigned long arm_cca_rmi_sro_mem_req(uint64_t result)
+{
+    uint64_t incomplete_data = arm_cca_rmi_result_data(result);
+
+    return arm_cca_rmi_field_get(
+        incomplete_data, ARM_CCA_RMI_RESULT_INCOMPLETE_MEM_SHIFT,
+        ARM_CCA_RMI_RESULT_INCOMPLETE_MEM_WIDTH);
+}
+
+static inline bool arm_cca_rmi_sro_can_cancel(uint64_t result)
+{
+    uint64_t incomplete_data = arm_cca_rmi_result_data(result);
+
+    return arm_cca_rmi_field_get(
+        incomplete_data, ARM_CCA_RMI_RESULT_INCOMPLETE_CAN_CANCEL_SHIFT,
+        ARM_CCA_RMI_RESULT_INCOMPLETE_CAN_CANCEL_WIDTH) ==
+           ARM_CCA_RMI_OP_CAN_CANCEL;
+}
+
+static inline paddr_t arm_cca_rmi_addr_desc_4k_pa(uint64_t desc)
+{
+    return arm_cca_rmi_field_get(desc, ARM_CCA_RMI_ADDR_DESC_4K_ADDR_SHIFT,
+                                 ARM_CCA_RMI_ADDR_DESC_4K_ADDR_WIDTH)
+           << PAGE_SHIFT;
+}
+
+static inline unsigned long arm_cca_rmi_addr_desc_4k_size(uint64_t desc)
+{
+    return arm_cca_rmi_field_get(desc, ARM_CCA_RMI_ADDR_DESC_4K_SZ_SHIFT,
+                                 ARM_CCA_RMI_ADDR_DESC_4K_SZ_WIDTH);
+}
+
+static inline unsigned long arm_cca_rmi_addr_desc_4k_count(uint64_t desc)
+{
+    return arm_cca_rmi_field_get(desc, ARM_CCA_RMI_ADDR_DESC_4K_CNT_SHIFT,
+                                 ARM_CCA_RMI_ADDR_DESC_4K_CNT_WIDTH);
+}
+
+static inline unsigned long arm_cca_rmi_addr_desc_4k_state(uint64_t desc)
+{
+    return arm_cca_rmi_field_get(desc, ARM_CCA_RMI_ADDR_DESC_4K_ST_SHIFT,
+                                 ARM_CCA_RMI_ADDR_DESC_4K_ST_WIDTH);
+}
+
 int arm_cca_rmi_version(unsigned long requested_revision,
                         unsigned long *revision_lower,
                         unsigned long *revision_higher);
@@ -123,4 +168,47 @@ int arm_cca_rmi_granule_tracking_get(paddr_t base, paddr_t top,
                                      unsigned long *state, paddr_t *out_top);
 int arm_cca_rmi_gpt_l1_create(paddr_t base);
 
+int arm_cca_rmi_granule_range_delegate(paddr_t base, paddr_t top,
+                                       paddr_t *out_top);
+int arm_cca_rmi_granule_range_undelegate(paddr_t base, paddr_t top,
+                                         paddr_t *out_top);
+
+int arm_cca_rmi_realm_create(paddr_t rd, paddr_t params_ptr,
+                             struct arm_smccc_res *res);
+int arm_cca_rmi_realm_activate(paddr_t rd, struct arm_smccc_res *res);
+int arm_cca_rmi_realm_terminate(paddr_t rd, struct arm_smccc_res *res);
+int arm_cca_rmi_realm_destroy(paddr_t rd, struct arm_smccc_res *res);
+
+int arm_cca_rmi_rec_create(paddr_t rd, paddr_t rec, paddr_t params_ptr,
+                           struct arm_smccc_res *res);
+int arm_cca_rmi_rec_destroy(paddr_t rec, struct arm_smccc_res *res);
+int arm_cca_rmi_rec_enter(paddr_t rec, paddr_t run, struct arm_smccc_res *res);
+
+int arm_cca_rmi_op_continue(unsigned long handle, unsigned long flags,
+                            struct arm_smccc_res *res);
+int arm_cca_rmi_op_cancel(unsigned long handle, struct arm_smccc_res *res);
+int arm_cca_rmi_op_mem_donate(unsigned long handle, paddr_t list,
+                              unsigned long list_count,
+                              struct arm_smccc_res *res);
+int arm_cca_rmi_op_mem_reclaim(unsigned long handle, paddr_t list,
+                               unsigned long list_count,
+                               struct arm_smccc_res *res);
+
+int arm_cca_rmi_rtt_create(paddr_t rd, paddr_t rtt, paddr_t ipa,
+                           unsigned long level, struct arm_smccc_res *res);
+int arm_cca_rmi_rtt_destroy(paddr_t rd, paddr_t ipa, unsigned long level,
+                            struct arm_smccc_res *res);
+int arm_cca_rmi_rtt_set_ripas(paddr_t rd, paddr_t rec, paddr_t base,
+                              paddr_t top, struct arm_smccc_res *res);
+
+int arm_cca_rmi_rtt_data_map_init(paddr_t rd, paddr_t data, paddr_t ipa,
+                                  paddr_t src, unsigned long flags,
+                                  struct arm_smccc_res *res);
+int arm_cca_rmi_rtt_data_unmap(paddr_t rd, paddr_t base, paddr_t top,
+                               unsigned long flags, unsigned long oaddr,
+                               struct arm_smccc_res *res);
+
+int arm_cca_rmi_psci_complete(paddr_t calling_rec, paddr_t target_rec,
+                              int64_t status, struct arm_smccc_res *res);
+
 #endif /* ARM_CCA_RMI_H */
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:08:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:08:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309337.1580353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqe-0001Qi-QH; Fri, 15 May 2026 04:08:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309337.1580353; Fri, 15 May 2026 04:08:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqe-0001QW-Ln; Fri, 15 May 2026 04:08:28 +0000
Received: by outflank-mailman (input) for mailman id 1309337;
 Fri, 15 May 2026 04:08:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjqd-0001NR-SY
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:08:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjqd-00GbfP-8j
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:08:27 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c0b-2eae-0a2a0a5409dd-0a2a4504bda6-36
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:26 +0200
Received: from [52.101.125.129]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c35-1dec-0a2a45040019-34657d8136d2-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:26 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB3981.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:20 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fsBNMxPdzUGbCqyDTUfE0JdM1ndGTEDEJAhNShKaXKWqiWyEzkRN4HarF6XjiFzuv0mDoKty6Aarw8jAdG5HBO76Y+Pow+qBUTzno0yE7JraKuXG/mre4VCu7VpzuIeOejIqFFeS40K8prRER3ha+j3TuSspJ+UQ6YIu85T3YtfZ3NwM0vpJD//oHdtO7qN73lOsUStGtnvEAvMsYV27/JjzNAlKlWfm0KUQrCzLtUFophM2CyhsbeWiz8vdelx4ulIy5ymZaq7V5P4oqPt+zfXcbRfafnqxKBQjitKgwIiW46VYrzVDNHIRpauUphHloZm3xerewlv0K7zD5/SjyA==
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=P+LWGLET1pPPxjg9pYTqsoCrj/kofsydU9ywUKvFgV0=;
 b=WzF2LBA7mlelkQLIqFzGBJkUXWmw0FoRCrijYvapMbsZ5tsY37dBrs0GI7TYZLIaslVib9DO3McvX7UWv8JbFfGKr9I18Uziy/pqIN02iF73pFWbFPCOQGs5rE03ClgQlrII0CUkiD4UM0GrSPHz/PsPEGNWikjG+Dq36ZLD6oXt3kyy5Sp1F/g3Qotb/iigvA8yOmIsB4abBFxfJOqPukGzM/Vd0j1pYyKMbUxUvTYayEomoeEtKBObveIFg4AUCJ8kkHiuGsLwYpr7nboNOCSm7tfwEmLKoLxV7A/9MJREAWsqPss1Q6uTsQVB55hr6tLiWEha9j0cwyBAyTE1ag==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=P+LWGLET1pPPxjg9pYTqsoCrj/kofsydU9ywUKvFgV0=;
 b=t6ey0ZgpEWUB3nPmyfpP5JY1U8zRruXCdTftNX9JtSUEEuRUgMD0qYo/X9RhyArS0JWevAt4c5R4GY/Se8CuHoSVxeCeDdMwx9LPTo3KHGe0XKMIW+QZJjoJBZXVzl4IEpRg3FOpIpsRw5G+ZvTjObttwTglIm8H29T8kSjY2Jc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 02/26] xen/arm/cca: add RMI v2.0 SMCCC core wrappers
Date: Fri, 15 May 2026 13:07:48 +0900
Message-ID: <20260515040812.983626-3-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYWP286CA0022.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:262::8) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB3981:EE_
X-MS-Office365-Filtering-Correlation-Id: eccc8f08-adf6-4905-2cc4-08deb2379985
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|3023799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	Ktjp5SOA5ZmootcF7MkvC1UkSmJ08GXJujPkRQYVUI1UBOP9WMgrywzdgvKLd/d+BrhBmjkFxL8Gm0/9JTqotZDl/qmp5MDbMqWvfZaBirRo6llDO4epD8aNn7q9EijdJWA+yqoxvdFUfGmbNVHw4eZICxdPO1sM3sQ841+oIjXqw72w1ZCl2z7527aZOE/E69LAKdCHqbeif5zVl72atu1IA0VWWJUWjAzD263ONkkpkj/B5RiI5N+zJRX6G0l6j0CZD7006r00mSZHpWOaKyCvrxGTUrk3Gt0wKnZI7mLIK/fzw8VzUXHyqI147rgWVbNsW4lGjzQbecZOAqlkvf0MA1fVegYJ1jJKPWMZ5FbQboVcfpIWKVEi9o7Z3ndDvo895T8W6ehL9kc2pEKvD70lawXPMG59o3Dt0CApb3gqHmQwfLP8ffxkr4wnN2EsyhrXpmkUskMUXULGyL5aGggxYiRjIpiPkcoxGkGY//WF3zGkx1oY8jWfaAJhvxDj+I1UYhbRq1eSkPUUT878awVSFUT/hs0U7CfkxvhrQezE+QHqcxE3ikArk19iY6aUbPVSLs4itVn7eigqVNDpHakNRqjo2i7AYxUFZWqClektid5FP/y8Gj2rgKbwIKqu3nVGRXukaagpaqnAZD5s9/M7TURi12LssV4YxiDM5I5kejEsijA2eOOtMukIhWeE
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(3023799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?MzikmfylkyWYuwHXBbTVJI3zBFFxCQiuyDHl6jfx5mY6QdNm8JxMaTe5GtPV?=
 =?us-ascii?Q?0/5Km5GhbfJtfHv8PlvMFa9aGiDxO6FlXWQ9SL+lc+kvVWe7GfdbI3Np/jUz?=
 =?us-ascii?Q?EqExI0r0Xi+3MJ2TTtddCI3WrWnQZrFb20FXJIF8dGPN6Xo2j0dFyJaQnNLW?=
 =?us-ascii?Q?4hNwGZX4DUi4uRhZUu2+kkKWo22C+QMlESNNxZD4mzduyJ6Uot8KavOCN6QJ?=
 =?us-ascii?Q?7S77umBjN3ENMDtAVqmH8pO3R7JzqiYp+D6lCBtxxS6itvLTYEMQuPDDgIcb?=
 =?us-ascii?Q?6ldMJZodV8CoS3xQejR8sy30K1f2r9WcSXtDdNrd5oT0CtPcJkDrNanBcrEM?=
 =?us-ascii?Q?PGLv8DjmTbydRA68MIEhghfKm+w2Dq179v/OLHGKxpc/mqnNYHN5bbvx3X4e?=
 =?us-ascii?Q?A7C4wFWrql/J/PltxIrh1VuvjNE0MQXMDH6Gv33SpeUefxsLx359zLxoCZsb?=
 =?us-ascii?Q?Ks9LuvJFAZiSjGzOPMMdQrs3g4p/d3kFdJRlcmZAE7wOUkanQXwh5TYKixkE?=
 =?us-ascii?Q?mMeWEkKdA2cTDUO3RS34N4dT8uVz6+VJTdS+OZIMvbhpQY60Jmz9TaJLOWtv?=
 =?us-ascii?Q?muZqyqbjQRuLzEgQQYfnZ/vAndNXFMvk4AWI+iRXjl+AXnDRe74zKlhUl4cv?=
 =?us-ascii?Q?UR1r4tK4IMuUKlwoqgAvB4KxxxBmWdcCVnAyYYhbn2NOAtGt1tQNmQ3zN0kD?=
 =?us-ascii?Q?Hae0yHFsBUoJcfvonRFLOvPYnW5rRP5mx39yW6LdXmFmCQKBX51wINgaxmfv?=
 =?us-ascii?Q?2hDdIuS6/a4Wxg+T4xHYiNb6TQnk000cJJL4L5hNu1IV1af9IE1/0PsLdMGF?=
 =?us-ascii?Q?gOg4HFhkizlJH2UNlnJKv+T6egZBdy954GLHoUGxfz1Bf/oFc1o8Hn+ztIKR?=
 =?us-ascii?Q?lQ2j1btZ7FRF3mmzaxW874WpyZEr/nDh6+bNfUA1yWtJ6nQtBCnaSJVkV0Th?=
 =?us-ascii?Q?/bSldMXnjv9JU3VFpp2gPrRe6JeaFEDRH0VTZfnu5QpsnpM2x6oOpb+Rc900?=
 =?us-ascii?Q?KjL6VXjEF/4/Xn8d3BR7QXKNYFFHVlSuLYFjV+Jox58QJUUjEKPyTaFkVxDj?=
 =?us-ascii?Q?ysIlCABiciryRG6SVLawAcAjyaFPQwd+pA1zW4lBcnmov5khZZMH0sqqyh9U?=
 =?us-ascii?Q?qC9qJS3J8KcKiMKExwFLbwag3cIC3t0/jUfbTxBK2Mi+w5XP+RKjdXOXNqMs?=
 =?us-ascii?Q?cBd/9Xco3CYnU0s0diXNIMIIXnOHYWLU5TNAWC8LBBrplKDgSGBiCXX1rrUG?=
 =?us-ascii?Q?zoSbg5iDrKUEewuZzViVNN3qRPnwQ6QY7siJIEIFeD0kgleISzqZzqw4M54h?=
 =?us-ascii?Q?DqexADQ8WA78jpbT0jGAvyP45UVDgUFlxGrFlJ3pPSyNdiSAq4NFZH4sQ72e?=
 =?us-ascii?Q?YKKe+z5FLzw5QfLtZenO6nLHw7eIoMzPDvZoVhFdmCCUnYTulf/hckYSzhpw?=
 =?us-ascii?Q?nPevvTS/sbhhww2aFNZoGQEEqWAp2zGgP5mI1ia4UsQBh8AvBAVg+09p2LAo?=
 =?us-ascii?Q?tUaQ/bBRSvAWIs5xaID+Tto3ZxvrCSo+G2J1EexXvwrcw60FJPnGpAoW+5Tc?=
 =?us-ascii?Q?RH64qsJAVl0x0aP4owrOMIgrzMaFDv3fPo+sY3ugKNCV2U8YF+HL6DwBtyYa?=
 =?us-ascii?Q?tD0H3kZ9NufytGRTVJ8MgWhoVlKvDYak52MK30V1KIriracyAbnOywAYEZ49?=
 =?us-ascii?Q?FxotZkWI50eakz2xQHwpwpHoz0gxYJsL4gQheRs4S6I7HYCIwkBuYDAwEpjx?=
 =?us-ascii?Q?5JnsR1tDV1/2xD34hqgUgaUeURL+CUUgxDNBAclAX6DFxjF81Xpn?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: eccc8f08-adf6-4905-2cc4-08deb2379985
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:20.2334
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kgc96NLvs5dmVvzHBBLcachmHOSpTKY63oMlbxaSG+/TUpR3Xjt+16jFuykAC9Axj3rcjcL9U3X034acG73OSw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB3981
X-purgate-ID: tlsNG-ebf023/1778818106-2A5603FF-DB93292C/0/0
X-purgate-type: clean
X-purgate-size: 11679

Add the common SMC path and the early RMI calls used to probe and
configure the RMM. The rest of the series can build on typed helpers
rather than spelling out registers each time.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/Kconfig      |  14 ++++
 xen/arch/arm/Makefile     |   1 +
 xen/arch/arm/cca/Makefile |   1 +
 xen/arch/arm/cca/rmi.c    | 170 ++++++++++++++++++++++++++++++++++++++
 xen/arch/arm/cca/rmi.h    | 126 ++++++++++++++++++++++++++++
 5 files changed, 312 insertions(+)
 create mode 100644 xen/arch/arm/cca/Makefile
 create mode 100644 xen/arch/arm/cca/rmi.c
 create mode 100644 xen/arch/arm/cca/rmi.h

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 79622b46a10d..dc99020c96de 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -118,6 +118,20 @@ config ARM_EFI
 	  UEFI firmware. A UEFI stub is provided to allow Xen to
 	  be booted as an EFI application.
 
+config ARM_CCA
+	bool "Arm Confidential Compute Architecture support (UNSUPPORTED)" if UNSUPPORTED
+	depends on ARM_64 && MMU
+	default n
+	help
+	  Build Xen's Arm CCA / RMM support for Arm Realm guests on
+	  Armv9 platforms.
+
+	  This enables the NS hypervisor-side Realm creation and execution
+	  paths, including the RMI ABI wrappers, Realm build/finalize
+	  flows and REC run loop.
+
+	  This support is experimental. If unsure, say N.
+
 config GICV2
 	bool "GICv2 driver"
 	default y
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 982c6c396a05..953dcbbe6626 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -8,6 +8,7 @@ ifneq ($(CONFIG_NO_PLAT),y)
 obj-y += platforms/
 endif
 obj-y += firmware/
+obj-$(CONFIG_ARM_CCA) += cca/
 obj-$(CONFIG_TEE) += tee/
 obj-$(CONFIG_HAS_VPCI) += vpci.o
 
diff --git a/xen/arch/arm/cca/Makefile b/xen/arch/arm/cca/Makefile
new file mode 100644
index 000000000000..9c351f901dfd
--- /dev/null
+++ b/xen/arch/arm/cca/Makefile
@@ -0,0 +1 @@
+obj-y += rmi.o
diff --git a/xen/arch/arm/cca/rmi.c b/xen/arch/arm/cca/rmi.c
new file mode 100644
index 000000000000..d37f1226f834
--- /dev/null
+++ b/xen/arch/arm/cca/rmi.c
@@ -0,0 +1,170 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Internal Xen RMI command wrappers for DEN0137 2.0-bet1 / RMI v2.0.
+ */
+
+#include <xen/errno.h>
+
+#include <asm/processor.h>
+#include <asm/smccc.h>
+
+#include "rmi.h"
+
+#define ARM_CCA_RMI_INITIATE_SRO_BUSY_RETRIES 1000000U
+
+static void arm_cca_rmi_invoke(unsigned long fid,
+                               unsigned long arg0,
+                               unsigned long arg1,
+                               unsigned long arg2,
+                               unsigned long arg3,
+                               unsigned long arg4,
+                               struct arm_smccc_res *res)
+{
+    arm_smccc_1_0_smc(fid, arg0, arg1, arg2, arg3, arg4, 0, 0, res);
+}
+
+static int arm_cca_rmi_initiate_sro(unsigned long fid,
+                                    unsigned long arg0,
+                                    unsigned long arg1,
+                                    unsigned long arg2,
+                                    unsigned long arg3,
+                                    unsigned long arg4,
+                                    struct arm_smccc_res *res)
+{
+    unsigned int retries = 0;
+
+    /*
+     * Conform to DEN0137 2.0-bet1 B4.3.2.5 Programming model for an SRO:
+     * retry the initiating command while it returns RMI_BUSY.  Once a handle
+     * is returned, progress is driven through RMI_OP_CONTINUE.
+     *
+     * Initial RMI_BUSY is expected to be transient.  Keep the retry loop
+     * finite so a broken RMM cannot spin Xen forever.
+     */
+    while ( true )
+    {
+        arm_cca_rmi_invoke(fid, arg0, arg1, arg2, arg3, arg4, res);
+
+        if ( !arm_cca_rmi_status_is(arm_cca_rmi_result(res),
+                                    ARM_CCA_RMI_BUSY) )
+            return 0;
+
+        if ( retries == ARM_CCA_RMI_INITIATE_SRO_BUSY_RETRIES )
+            return -EBUSY;
+        retries++;
+
+        cpu_relax();
+    }
+}
+int arm_cca_rmi_version(unsigned long requested_revision,
+                        unsigned long *revision_lower,
+                        unsigned long *revision_higher)
+{
+    struct arm_smccc_res res;
+    int rc;
+
+    arm_cca_rmi_invoke(ARM_CCA_RMI_VERSION_FID,
+                       requested_revision, 0, 0, 0, 0, &res);
+
+    rc = arm_cca_rmi_res_to_errno(&res);
+
+    if ( revision_lower != NULL )
+        *revision_lower = res.a1;
+
+    if ( revision_higher != NULL )
+        *revision_higher = res.a2;
+
+    return rc;
+}
+
+unsigned long arm_cca_rmi_features(unsigned long index)
+{
+    struct arm_smccc_res res;
+
+    arm_cca_rmi_invoke(ARM_CCA_RMI_FEATURES_FID, index, 0, 0, 0, 0, &res);
+
+    return arm_cca_rmi_res_to_errno(&res) ? 0 : res.a1;
+}
+
+int arm_cca_rmi_rmm_config_get(paddr_t cfg_ptr, struct arm_smccc_res *res)
+{
+    arm_cca_rmi_invoke(ARM_CCA_RMI_RMM_CONFIG_GET_FID,
+                       cfg_ptr, 0, 0, 0, 0, res);
+
+    return arm_cca_rmi_res_to_errno(res);
+}
+
+int arm_cca_rmi_rmm_config_set(paddr_t cfg_ptr)
+{
+    struct arm_smccc_res res;
+
+    arm_cca_rmi_invoke(ARM_CCA_RMI_RMM_CONFIG_SET_FID,
+                       cfg_ptr, 0, 0, 0, 0, &res);
+
+    return arm_cca_rmi_res_to_errno(&res);
+}
+
+int arm_cca_rmi_rmm_activate(struct arm_smccc_res *res)
+{
+    int rc;
+
+    rc = arm_cca_rmi_initiate_sro(ARM_CCA_RMI_RMM_ACTIVATE_FID,
+                                  0, 0, 0, 0, 0, res);
+    if ( rc != 0 )
+        return rc;
+
+    return arm_cca_rmi_res_to_errno(res);
+}
+
+int arm_cca_rmi_granule_tracking_get(paddr_t base, paddr_t top,
+                                     unsigned long *category,
+                                     unsigned long *state, paddr_t *out_top)
+{
+    struct arm_smccc_res res;
+    int rc;
+
+    arm_cca_rmi_invoke(ARM_CCA_RMI_GRANULE_TRACKING_GET_FID,
+                       base, top, 0, 0, 0, &res);
+
+    rc = arm_cca_rmi_res_to_errno(&res);
+    if ( rc != 0 )
+        return rc;
+
+    /*
+     * Note that X3 is not defined by DEN0137 2.0-bet1 B4.5.10.1.3.  The
+     * tested TF-RMM v2.0 PoC branch, also followed by the KVM host series,
+     * returns range progress there.
+     */
+    *category = res.a1;
+    *state = res.a2;
+    *out_top = res.a3;
+
+    return 0;
+}
+
+int arm_cca_rmi_gpt_l1_create(paddr_t base)
+{
+    struct arm_smccc_res res;
+    int rc;
+
+    rc = arm_cca_rmi_initiate_sro(ARM_CCA_RMI_GPT_L1_CREATE_FID,
+                                  base, 0, 0, 0, 0, &res);
+    if ( rc != 0 )
+        return rc;
+
+    if ( arm_cca_rmi_is_success(&res) ||
+         arm_cca_rmi_status_is(arm_cca_rmi_result(&res),
+                               ARM_CCA_RMI_ERROR_GPT) )
+        return 0;
+
+    /*
+     * Xen CCA supports immediate GPT L1 creation, or an existing GPT L1
+     * reported as RMI_ERROR_GPT.  If creation needs a memory-transferring
+     * SRO, leave CCA unavailable for now.
+     */
+    if ( arm_cca_rmi_status_is(arm_cca_rmi_result(&res),
+                               ARM_CCA_RMI_INCOMPLETE) )
+        return -EOPNOTSUPP;
+
+    return arm_cca_rmi_res_to_errno(&res);
+}
diff --git a/xen/arch/arm/cca/rmi.h b/xen/arch/arm/cca/rmi.h
new file mode 100644
index 000000000000..4cd0bc64ccf5
--- /dev/null
+++ b/xen/arch/arm/cca/rmi.h
@@ -0,0 +1,126 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Internal Xen RMI command API.
+ *
+ * This header exposes typed wrappers and helpers for the subset of RMI
+ * commands used by Xen. Raw ABI constants live in rmi-abi.h.
+ */
+#ifndef ARM_CCA_RMI_H
+#define ARM_CCA_RMI_H
+
+#include <xen/bitops.h>
+#include <xen/bug.h>
+#include <xen/errno.h>
+#include <xen/page-size.h>
+
+#include <asm/smccc.h>
+
+#include "rmi-abi.h"
+
+static inline uint64_t arm_cca_rmi_field_get(uint64_t value,
+                                             unsigned int shift,
+                                             unsigned int width)
+{
+    ASSERT(width != 0 && shift < 64U && width <= 64U - shift);
+
+    return (value & GENMASK_ULL(shift + width - 1, shift)) >> shift;
+}
+
+static inline uint64_t arm_cca_rmi_result(const struct arm_smccc_res *res)
+{
+    return res->a0;
+}
+
+static inline bool arm_cca_rmi_is_success(const struct arm_smccc_res *res)
+{
+    return arm_cca_rmi_result(res) == ARM_CCA_RMI_SUCCESS;
+}
+
+static inline bool arm_cca_rmi_result_is_smccc_unknown(uint64_t result)
+{
+    return result == (uint64_t)ARM_SMCCC_ERR_UNKNOWN_FUNCTION;
+}
+
+static inline unsigned int arm_cca_rmi_status_code(uint64_t result)
+{
+    return arm_cca_rmi_field_get(result, ARM_CCA_RMI_RESULT_STATUS_SHIFT,
+                                 ARM_CCA_RMI_RESULT_STATUS_WIDTH);
+}
+
+static inline uint64_t arm_cca_rmi_result_data(uint64_t result)
+{
+    return result >> ARM_CCA_RMI_RESULT_DATA_SHIFT;
+}
+
+static inline bool arm_cca_rmi_status_is(uint64_t result, unsigned int status)
+{
+    return arm_cca_rmi_status_code(result) == status;
+}
+
+static inline bool arm_cca_rmi_status_is_error(uint64_t result)
+{
+    unsigned int status;
+
+    if ( arm_cca_rmi_result_is_smccc_unknown(result) )
+        return false;
+
+    status = arm_cca_rmi_status_code(result);
+
+    switch ( status )
+    {
+    case ARM_CCA_RMI_ERROR_INPUT:
+    case ARM_CCA_RMI_ERROR_REALM:
+    case ARM_CCA_RMI_ERROR_REC:
+    case ARM_CCA_RMI_ERROR_RTT:
+    case ARM_CCA_RMI_ERROR_NOT_SUPPORTED:
+    case ARM_CCA_RMI_ERROR_DEVICE:
+    case ARM_CCA_RMI_ERROR_RTT_AUX:
+    case ARM_CCA_RMI_ERROR_PSMMU_ST:
+    case ARM_CCA_RMI_ERROR_DPT:
+    case ARM_CCA_RMI_ERROR_GLOBAL:
+    case ARM_CCA_RMI_ERROR_TRACKING:
+    case ARM_CCA_RMI_ERROR_GPT:
+    case ARM_CCA_RMI_ERROR_GRANULE:
+        return true;
+
+    default:
+        return false;
+    }
+}
+
+static inline int arm_cca_rmi_result_to_errno(uint64_t result)
+{
+    /*
+     * SRO progress states are not errno failures.  The SRO helpers keep
+     * inspecting the raw result in X0 through struct arm_smccc_res.
+     */
+    if ( result == ARM_CCA_RMI_SUCCESS ||
+         arm_cca_rmi_status_is(result, ARM_CCA_RMI_INCOMPLETE) ||
+         arm_cca_rmi_status_is(result, ARM_CCA_RMI_BUSY) )
+        return 0;
+
+    if ( arm_cca_rmi_result_is_smccc_unknown(result) ||
+         arm_cca_rmi_status_is(result, ARM_CCA_RMI_ERROR_NOT_SUPPORTED) )
+        return -EOPNOTSUPP;
+
+    return -EIO;
+}
+
+static inline int arm_cca_rmi_res_to_errno(const struct arm_smccc_res *res)
+{
+    return arm_cca_rmi_result_to_errno(arm_cca_rmi_result(res));
+}
+int arm_cca_rmi_version(unsigned long requested_revision,
+                        unsigned long *revision_lower,
+                        unsigned long *revision_higher);
+unsigned long arm_cca_rmi_features(unsigned long index);
+int arm_cca_rmi_rmm_config_get(paddr_t cfg_ptr, struct arm_smccc_res *res);
+int arm_cca_rmi_rmm_config_set(paddr_t cfg_ptr);
+int arm_cca_rmi_rmm_activate(struct arm_smccc_res *res);
+
+int arm_cca_rmi_granule_tracking_get(paddr_t base, paddr_t top,
+                                     unsigned long *category,
+                                     unsigned long *state, paddr_t *out_top);
+int arm_cca_rmi_gpt_l1_create(paddr_t base);
+
+#endif /* ARM_CCA_RMI_H */
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:08:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:08:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309344.1580407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqk-0002hz-3C; Fri, 15 May 2026 04:08:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309344.1580407; Fri, 15 May 2026 04:08:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqj-0002gK-Oa; Fri, 15 May 2026 04:08:33 +0000
Received: by outflank-mailman (input) for mailman id 1309344;
 Fri, 15 May 2026 04:08:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjqh-00021K-E3
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:08:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjqg-00Bu3E-Qp
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:08:30 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c0b-5cb7-0a2a0a5109dd-0a2a45038516-48
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:30 +0200
Received: from [52.101.228.127]
 (helo=OS0P286CU011.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c3b-672d-0a2a45030019-3465e47fdc14-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:30 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB5257.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:163::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:25 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=M+j7WgkLsNNsUQog+JY3HCqRFlPzGEoa0WezZYwDI6uxBVtvu6Fv8K3mrmtZlPSLJ6DPGW9WE74Aq6kRK50IRYU+J0AEy6EOTZBb+KkZpb++g0IzPqEPaJlJ9x+3YxLuW4ptW/KbdwDRgld7nVr743fYeH+XfpWVgq0Deo3O0ehtIyySu0HR0cn8hnXN3K4iWtix0eEWtL3+9QOYqQUjcLU7SQbvlz9lp5sgqzb/lUVN6tqaQEGRRHRfdQJdDKzHzM9mMAEGuC6ZM5L9iNp+Rd4+/iVDPKyCHChcKWY2txrGB9qzS2aHC/FJyswBLAANmVqoXOk2zokaLhT8mcJtAw==
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=clH4lYO5wbmlpaQIs7uoidyKQIOc+adymnvGpmXm3os=;
 b=kpNicKWiRaUN7GCt9/Qtc8hUoe/br8BZjYpAasP6RzteiVd3vGVUKwquvGgVUbejdf457t5CJVFZyI/jbr7oa4i8TsL16MauDQXHmw17lk7HrW3Zccv1/JyIPDXFT8krc5nfihlpzGpJb58Q7JI82eV/ZJC7+CfLV+/0Kq4UbuFGooQmzufrh6GWIr21ZEe2K2a05UMALGn3a4MOwUzaY3J9yiSEpRQOdeM7Ff6ERfrnpii1F3a0r346Xc73+NjYU6sJ/88CwHK5d8aQABBDcUOijOGRH9EpHXzsA9kBr/X2DQ9x89LRKhIzgkZmJ/d8IIr/PFzI+n2bdbf7+tW8dw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=clH4lYO5wbmlpaQIs7uoidyKQIOc+adymnvGpmXm3os=;
 b=s5HAR+Knp/HCSk99ksrP5vJ0+5Vx7AiudST8fzgcr4WrCpoytbJt+pn8qJC9XOa8I5CegLnO0FCAJBfy4MOPPz+iErxVRewtXTLmQyQKUCt4hKXtGmqNucDjiLA6h4PcZwFPKrwdZU5d8C7muFY1lg5MUeqT0R8cx+TjBsgyiCw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 09/26] xen/arm: vpl011: expose VPL011 presence to Arm code
Date: Fri, 15 May 2026 13:07:55 +0900
Message-ID: <20260515040812.983626-10-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0083.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:2b3::11) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB5257:EE_
X-MS-Office365-Filtering-Correlation-Id: 5d76a1a3-5e66-4a7c-3e44-08deb2379ca9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|376014|7416014|366016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	9lTVlJNHahq+ojBEUkiP3eixCr08Kjxvnalzg4IOzf1laArrd1tL14LA3YCW53V6SoPwDIzUrEudAUa4NGPDJDRdQtb/d3id8qRp9dGCTGgMbe/YU7Xi5o9saVs/1NzRktdvgLwWjC9sKN1lJz32cPJbbh4syU2gU4xVLKjx+9NgfByWaMA4czCyqQ6JNy1WCFllbDbtCGtueoLQi6KXap8bsNlifxPXVm4KFfHsit/6URsgU1VL9kcI58HULKOe9/DDs45SnBNwVfAWTw4+j3b6BVY/97RxE//XBiolCJv1XCv+Kh4Y5qNmG935FrXmCgL7D/a10vm1nqKiBrtVqDABLKpBjt7kaWZEhHS83kfX1BxCGB50XIOFMQG+YGX5rkWfoBcpLEmDNHSMc3MLvcG80ft+gsbjwyoLKlU+dq0uaZfWj8J54Pq156ngIqUERILwQkRNZyswk238xUuhRo6tRT7jLNcL/x2XuByPs8ceCgqGuqMRSsBxSrQYTU0qzCygeHC+Sdm/lmPcG+c4ojyzpaclgVtcf+4OksOcfUqQE/9g6Fxwp5bLHIMwmrkAv2sirD6etH0iWM3Sk9uMUCK0sn18LJ/Efb7yqaPMTGHQOJyKaNBxU7+go+8pKlJAX9ft7ZIDgwpblVIwmc+LQjGC4LhXnGUs1K9gmZb7gYiSyHFOn6kyJV8U6c7JBhRX
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(376014)(7416014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?XANYrq7gGKUITOc/HNJVNsBIsAoslnE/vpY4+byTyV2+4dgqIQA11sotrQuA?=
 =?us-ascii?Q?99tO56SISUBbzE6ldT5irUWMsgOqNJYXGlYB4ydwxomgLjlGia4sPBAJ4vST?=
 =?us-ascii?Q?gp4mWN19gnR9uo4Wmjh4XE5XB2/0POd5vAPG81P2aDsBTjrPygdMfdsRTPg/?=
 =?us-ascii?Q?lIy8q97haZ5qQxXJctaY52REuvgRKiiBFPxDa0fi8JyWJkmkpBZYzWYrcPDe?=
 =?us-ascii?Q?yEtPaUkEj98lKjpg8rqfxwtR8M2ZITgp5hocYXLN6D+DMZo6V7UoV7wSPJis?=
 =?us-ascii?Q?x/GAaP5FF/5BIYgqFLY/6jnvAh6NrnhQYeZ4pG6ZtDhg1Rd3MgYZhQyVtOGW?=
 =?us-ascii?Q?C0Z/5FmoxHnrUc12INU727cH6HRurFUPuvTZ+TitMpdW9eJm/tzwXv423CkK?=
 =?us-ascii?Q?8NxeK3vhUzyYuPwxRzvSsvaRJv89nc44nns2uoVQjDF+c4menWs49IqyPTkk?=
 =?us-ascii?Q?wZQRDUp4rgYfyOQ38rcweWqWz/cpKEnLqRr337boIDK1c/JL940Ct+kqASDl?=
 =?us-ascii?Q?RZ2do0E/caGIHz4Gpv3Kc95p/klevpYpm0QRwvGAqdbLD/Kjni33leg8Lv/v?=
 =?us-ascii?Q?vjYak8dCPs0PjVxme9VL5lOuECcXt80cdCwHG+rnSco/iMEsNiwXYpcB1AMO?=
 =?us-ascii?Q?a12ryuSgzo1v9ls2eaQef0EjzcBSUPkoG4J80B6jGp+BB/of+tfhPynx9I8M?=
 =?us-ascii?Q?54EhtohzDpIBAMLYSOh457oKL39Mnsn1BUzaeXg2EvisoGFVnXVOCAKREenz?=
 =?us-ascii?Q?pYFw9Rwi9agiQhPzdJ8gGgMyZj98MB+2ezyb5WJj/WNNJFHTWTJd7v8WdJfP?=
 =?us-ascii?Q?oU+mosPCbpGBFJGaZ1QMZTpMiZ5ER5DbtLyd0fI1235f0tvcOWMMj11eHlNs?=
 =?us-ascii?Q?r+8LKAZtYDIMr3qWhXCHJ/NwhcHg3gk8GgMt5LjHqIlqVmgPY3KJVYmeL9+L?=
 =?us-ascii?Q?IcGhC9fAcqm+LDHetrOOuXDeSKOJC4x79FsDRiRPBP7Gb6E7GS3aW843o8Ye?=
 =?us-ascii?Q?PV7nIJBY9pOTHPer/IrOh/Q+BujJEqq82+VwYu5b5FpqGN5nxueJfp7fusHs?=
 =?us-ascii?Q?u8frhcr1xJFNiT7GGy+MdTMQyrcTUeiFQh6WXO5BSfGB+gCH+avT8oc8YrDO?=
 =?us-ascii?Q?4YmaITjilUs830xfiod9MjH6wc5w784QXGFnJ6ECeQEncyjhFWnKw4lPC834?=
 =?us-ascii?Q?JLSh1jrSJvWSnQDD4aQORV/QMajbKBB0FczGS32yUDP0xBUgv0NceXc95yBK?=
 =?us-ascii?Q?DfiA/JSVecZs6pIC80y/4Jpd8LuCFhCjJ3Hx2mUNrn1qdkllTavC+AOgBbPk?=
 =?us-ascii?Q?3LyPJTqs1fQRJnTAHaTrzbrTzVZSuiS0/8KRpnOdv71PY/xJXegvB1df+ud2?=
 =?us-ascii?Q?Mt7xgLSAAWDKlDceca+VdWFaWNJMjFsKWPWUvn6NAQd5sJH0io1MNV7C5xcS?=
 =?us-ascii?Q?2JibveHLfaADE/zv0/oYqJVCFU99kY0LIrHL5HvyGriF5QWTzYHIQQtaUX2L?=
 =?us-ascii?Q?MgawV8ZO5oqkUwJpVu7G98LACkUE4QfW3XY6lrscLblbkfmbh6gz7XKc1r8I?=
 =?us-ascii?Q?X59b9Md6xAvPBm8QJB2LNNepkob/heAq7PLqByLko+jW2zKy565ixZHwKtK/?=
 =?us-ascii?Q?g2pG/37KK9wr1ig5NE3vJiYkeZHbeAO5Jb3c+Mh3SUB5TTANMlinaMui2hkS?=
 =?us-ascii?Q?6j8/dSpbKLe2cC1fLmAiNaZtlPhCdx2tK4LvK958r1JuO9cjx+G07L80G/Ht?=
 =?us-ascii?Q?lMB5Onw246/KFWJce6PDGV1uL75ia3zciBHvOSdXH2rchAsejuDd?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 5d76a1a3-5e66-4a7c-3e44-08deb2379ca9
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:25.5007
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DG9lhykioq/Uui1z0n+ZeTJOlofgVw6SqCpAzVa4TgaBGtiadIWLrWLLBeV7CKq4uUQiT46v+y8a4aKrba2dmw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB5257
X-purgate-ID: tlsNG-33051d/1778818110-38149938-DEAAF145/0/0
X-purgate-type: clean
X-purgate-size: 1612

Let Arm code ask whether a domain has an SBSA VUART. Realm validation
uses this to keep the clear-text debug console behind a Kconfig choice.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/include/asm/vpl011.h | 5 +++++
 xen/arch/arm/vpl011.c             | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/xen/arch/arm/include/asm/vpl011.h b/xen/arch/arm/include/asm/vpl011.h
index cc838682815c..35d08556785a 100644
--- a/xen/arch/arm/include/asm/vpl011.h
+++ b/xen/arch/arm/include/asm/vpl011.h
@@ -69,6 +69,7 @@ struct vpl011_init_info {
 int domain_vpl011_init(struct domain *d,
                        struct vpl011_init_info *info);
 void domain_vpl011_deinit(struct domain *d);
+bool domain_has_vpl011(const struct domain *d);
 int vpl011_rx_char_xen(struct domain *d, char c);
 #else
 static inline int domain_vpl011_init(struct domain *d,
@@ -78,6 +79,10 @@ static inline int domain_vpl011_init(struct domain *d,
 }
 
 static inline void domain_vpl011_deinit(struct domain *d) { }
+static inline bool domain_has_vpl011(const struct domain *d)
+{
+    return false;
+}
 #endif
 #endif  /* _VPL011_H_ */
 
diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
index d0d17c76b72c..05a03a5ce5d0 100644
--- a/xen/arch/arm/vpl011.c
+++ b/xen/arch/arm/vpl011.c
@@ -747,6 +747,11 @@ out:
     return rc;
 }
 
+bool domain_has_vpl011(const struct domain *d)
+{
+    return d->arch.vpl011.backend.dom.ring_buf != NULL;
+}
+
 void domain_vpl011_deinit(struct domain *d)
 {
     struct vpl011 *vpl011 = &d->arch.vpl011;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:08:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:08:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309345.1580413 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqk-0002ko-I0; Fri, 15 May 2026 04:08:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309345.1580413; Fri, 15 May 2026 04:08:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqk-0002jC-3B; Fri, 15 May 2026 04:08:34 +0000
Received: by outflank-mailman (input) for mailman id 1309345;
 Fri, 15 May 2026 04:08:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjqh-00021J-Df
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:08:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjqg-00GbfP-Q7
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:08:30 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c3e-2eae-0a2a0a5409dd-0a2a4502c694-0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:30 +0200
Received: from [40.107.74.73]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c3a-af86-0a2a45020019-286b4a49ea93-5
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:30 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB3981.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:24 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QDCrjOBeD+nbUqtSUUKMu9l68x2JF7jrM5YO8hH5Am7A/xW/zbyy3TVpPiq6Za/S57zBbhRxkNm3kVwwbPgzLcrnTbapOzV7bHPaEbvD/j7j6ow12ueyC3RJcpf1aCBJLqaIsTEFuZLgozh78XzYxZrh3VsmVNm8jclhFoc5ik8p/hDxWRiHIsfr7m4sdEPKuralTwAHUSTulwJ34osQ2MbdL8R7/IYY0obnSo/YWsu/G140cIsjkfAg5UFZqVMAkAJpQ8lD8HTOheokXhdpdPUVK1KZd/CYXcJopY6Qd63F5tr3LU4fjDcm1oCxC/Y0AashRrC6XoC2EIpRZoUl0g==
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=UyVaj4/RdCO+bvx/q4AkK7MGTGIPg9kj2o0tPGAL1DI=;
 b=hyf6QhfhCW+gdEw+ZDn7DCP9gbwlZ9igPTbtGgiEAhErLHGq9Dwdv3l95FPMZOlHcDxap66Rnp2dYFkHQRvnGa44eSlgYB6NCC4IoVnJceZ3CV/j/A2Glx0Njl58IjtKwXUUwH5w63NRrhnEBf96w9IoKd4gfg9Vcb5cDMB/qpcW6N4/hmBI6PgI2jyHdp5ZogzCHLbkZVwVKHXRl91g/ok3zcthx7WRr7Snz87M3aPBoxyNzWEWhY/kZYFmMWEPzBaUFtqZbzGKV/0B//nMGnn9AzmN3BsZPSsgzgFhICxFC8CZOaH9eTBsEwx3U2DiyelTAnmhY0cq1TEscDobAw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UyVaj4/RdCO+bvx/q4AkK7MGTGIPg9kj2o0tPGAL1DI=;
 b=TeGlu6xgJXlAGw37q/gh6/Yb47b+pCglDnwJj5oHcgD0mRIbbQdECtObqMrsGo6VZWzbCMfd3rt3tkPLIW1RffTU9vxyNHybgJiAcM5DzT1Je1mC4EHmoQnKKpJ2bwLpoltzPoGU2g075LA1nx5XknO5jf2Uq39stb65t6rY8CQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 07/26] xen/arm/cca: initialize the RMM and Realm parameters
Date: Fri, 15 May 2026 13:07:53 +0900
Message-ID: <20260515040812.983626-8-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0093.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:2b4::6) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB3981:EE_
X-MS-Office365-Filtering-Correlation-Id: 2e4ce52f-3bfb-4bd1-7471-08deb2379bc5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	UfcFrQvCIVtqCR+pvBa12k3wKUgmP05cV1WxFmxp6NiG2+Ap6xJMIUsD0Z4NzRl2N+nWIkfGF7J/dtUVrZbEjUlq/LE1bJagplHaWyZUOBTYh6KVJ7U8/Y6OZfCxAmAvShgUDlXZswOoBaaVsAa6yZ6lLIY7RDcEG5L3xPp1CcvXu5iPyAn9KyTP6IzJNzqX4rQGKBP01ytnWPVXXlmUcsIdoatmu0UbdTKbZRX/ZazgvvM8bPHcm0b2DV83OjhZhkPiTA2r8ynRlokPlFQWClRBi7pmtDznUrz8KUGVzFU+iIja6TtJszQle/L6tj+l2fzpaXB+qX8oQJLmNNeT6QcQOHkcViVhb6cUkTQg/PChmJAauXulOy59eGRpLMLhH1JS5uTjyxU3bys3zTbLdFt3m37jY1AdsDSkJ4Jg9/YbuTKJ9L0iztUXkzlpvFHgqM3z2Gym7/7heBtGaktple+WyT0OJryVKOqFXvnHOJx1n20grgzcmxK9CVcFOiGIuzsaseU7tIFYMgKgJ2AlbxkvqGwWuDQSHB3X8BGsuX2a8w3nVwmeTwj3P+9xz+60+vTqQ9ISI5WYXGwsVEQCWIa4YUDOjxl0vu79qd+UAJOSazPn4pAmvlMTW1UjJt/Cz++0s9nfasPk5pb4fOBSlPC8ZqYve2OjW4D5pYsVujcXQEahEJ2IUDgipxCQs67q
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?cQt7RaPd4M3lQ4Mx56z5LK79TAAcO6fUrfducgJbOciF0idOdUa13NH3VDE5?=
 =?us-ascii?Q?ue48/AjZFvRQGzmIFUwBAieabZwra5qUU1l20IDIil4fr6gccS25qx+wmZRm?=
 =?us-ascii?Q?wU4g3rfcTM3CyFN4VHhC9hAQKC2y4ru4yb60njKF2M/QO8iBfyStjUsR1dIZ?=
 =?us-ascii?Q?3VBoHKRdHZiPH0k5JivudsIov1Y+qwkz9qj2wyZRjWNgJOJgi72tXC+dRIxc?=
 =?us-ascii?Q?VY1T4vnu8cA6dhT8/FbvUNTpycpftaky3KULf48DwwuwisiBeuuwjbInrG84?=
 =?us-ascii?Q?WfIAhJhSJn8VQPUwfw/wLjVBYRQdg5AwhxgU0PduEhz9yJOJ9ccYud5aNRc0?=
 =?us-ascii?Q?One6qeSkkwxAjy7dcFYiC2UUouCazM1WyDHpeEMhVo8X/gbb3ne6Wm2pqPGU?=
 =?us-ascii?Q?XVcJUrKlgIBceMUu71XiAmBQRSTbOOQf+PcsGxQaBU5b9yu9Vtks7urPyJMZ?=
 =?us-ascii?Q?qOVQZJhhbaxLMSxRrSOnBLQ3LSC0Np/23iF6VllAx7Fw+wXq6HlyA75y6UCS?=
 =?us-ascii?Q?uTQP13dpnC720fSSebshKQmmXSCK3kFL578QboSk8AKJr3UIPxIHJZmyilq6?=
 =?us-ascii?Q?SZ1XAMR26O+iN5dIXNhpo4vMs3TVOAdPO6E1DlNqBsesuIBYfAXeG4Lu2yQT?=
 =?us-ascii?Q?oeTVlZxU/gl88CpWZK35V7DKHm17m5Ug42XyzIQnkloLqRJBfazdpv6c0DkG?=
 =?us-ascii?Q?7AQVB+L/Wk2gPACXNSuWej4h5EWa56zs96MJMmoacJRq5Tiu5FyUQXP9NGzq?=
 =?us-ascii?Q?Dh2Ru6Sd/8CVmRodhA7PCRyo17jrCi389rWs4BPIYWtNC3FbVzcCywgFkfDi?=
 =?us-ascii?Q?znSuxJLWUvfapvNdrhjlKW126Z73pYLUz1XjMNqxVUv+Ui58VD4wTYGmYrX8?=
 =?us-ascii?Q?T911P+wiJ1tX2M0Efa7j9TwgWZxb5goUJOPDmwMojk22R8ZqOaGXgLWbSK4n?=
 =?us-ascii?Q?Ld3UD+OT4eNnIh48xHoJkGj5S42O1LuUrDLeT5VMOt94eJiMiU7zpRuiNW8X?=
 =?us-ascii?Q?YnreRnezFUkEyPuhcHs7wfLtXQ74B9IwCq/LJYt4oF/Vmm4bK3kU+H59iwxY?=
 =?us-ascii?Q?D+VBswi1jg3p+x2anLwFU/BxzrPpqaeDKD4x7ATlyOAxuRyiakn7+zF/vpfL?=
 =?us-ascii?Q?yhDa9Tit/zVwdwB+DuwJg/0Fenv/hfFookBaK8hOX/c0UJQKLAVap8BQOTsB?=
 =?us-ascii?Q?uI9twXwqNsRGvmv2XHBaIeWkVl04TpeePkFG0l5kvMG/38URAnQWCEuV1lII?=
 =?us-ascii?Q?bm1maTCfzM/lKlvqSFZ2hB22/sNY+sHao7AfufTD01r+sKogsZkPbqsnpWtK?=
 =?us-ascii?Q?MpcLMCjGTQuu4j/k2ebu7RHDxX+eNeaEwpycrZjLSpFcSiLZnF1tU/kHSFax?=
 =?us-ascii?Q?pCwoY0HmyvIRLgFQMRZtlrHcSLR7A+BaJIXU1xwabM+QCX6rvv7KLp6/KD1D?=
 =?us-ascii?Q?AlSifyQPJATm/bJniqH0mKHNDEshmxO0DqD59saA5t04TkzgnHMAanmBQh7E?=
 =?us-ascii?Q?8qLql0GSG+q74aliB8ZC1fK9ofGXCMp3vUc50dM4/VtFZeX/XN7EbfnbYHsC?=
 =?us-ascii?Q?bz6KZz4LX8YhFj0ulXxr7M3b2G7HG6vsoQDbd3lmMCb62vkrKVQLmWIKk1+H?=
 =?us-ascii?Q?R61E4QpS5j5Tk+n3knxzD/r7bL1xEFxMPkHebbBteKZ2D3Vk9Jav4mwsXya5?=
 =?us-ascii?Q?/MKkl6vS8pK8a/hUOmQTOovg9+2wZjzSz6+68MPRyc+ZcDpKZi9bR4Dqt7pX?=
 =?us-ascii?Q?PCgvYwAyhJ6/zeQsYtWI3vQGPHUbmLzjY067QFuHZUTKVRJq6d13?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 2e4ce52f-3bfb-4bd1-7471-08deb2379bc5
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:24.0101
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: jTbCTrrZSlewrpSkN5c4sBxL2P8iQURDNvZOmhDRN819k5yesed0OAc2tKWmv0gFf+YExIvWkMAkXe1GLh6GfA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB3981
X-purgate-ID: tlsNG-720697/1778818110-82B68161-7E941101/0/0
X-purgate-type: clean
X-purgate-size: 7408

Activate the RMM during Xen init and keep the small Realm/REC parameter
initializers with the rest of the CCA code.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/Makefile      |   1 +
 xen/arch/arm/cca/realm.c       | 191 +++++++++++++++++++++++++++++++++
 xen/arch/arm/include/asm/cca.h |  10 ++
 3 files changed, 202 insertions(+)
 create mode 100644 xen/arch/arm/cca/realm.c

diff --git a/xen/arch/arm/cca/Makefile b/xen/arch/arm/cca/Makefile
index 7f20d43323c3..57c3986d5de8 100644
--- a/xen/arch/arm/cca/Makefile
+++ b/xen/arch/arm/cca/Makefile
@@ -1,3 +1,4 @@
 obj-y += granule.o
+obj-y += realm.o
 obj-y += rmi.o
 obj-y += state.o
diff --git a/xen/arch/arm/cca/realm.c b/xen/arch/arm/cca/realm.c
new file mode 100644
index 000000000000..14aa7bba595f
--- /dev/null
+++ b/xen/arch/arm/cca/realm.c
@@ -0,0 +1,191 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/errno.h>
+#include <xen/init.h>
+#include <xen/lib.h>
+#include <xen/mm.h>
+#include <xen/sched.h>
+
+#include <asm/cca.h>
+
+#include "rmi.h"
+#include "sro.h"
+
+/*
+ * Pages donated while activating the RMM are owned by the activated RMM until
+ * system reset.  Keep the host references here to make that lifetime explicit.
+ */
+static struct page_info *arm_cca_rmm_sro_pages[ARM_CCA_MAX_SRO_DONATION_PAGES];
+static unsigned int arm_cca_nr_rmm_sro_pages;
+static struct page_list_head arm_cca_rmm_abandoned_pages =
+    PAGE_LIST_HEAD_INIT(arm_cca_rmm_abandoned_pages);
+static bool arm_cca_rmm_available;
+static unsigned long arm_cca_rmm_features0;
+static unsigned long arm_cca_rmm_features1;
+
+static int arm_cca_set_rmm_config(struct arm_cca_rmi_rmm_config *cfg)
+{
+    memset(cfg, 0, ARM_CCA_RMI_RMM_CONFIG_SIZE);
+    cfg->rmi_granule_size = ARM_CCA_RMI_GRANULE_SIZE_4KB;
+    cfg->tracking_region_size = ARM_CCA_RMI_TRACKING_4KB_REGION_1GB;
+
+    return arm_cca_rmi_rmm_config_set(virt_to_maddr(cfg));
+}
+
+static int arm_cca_activate_rmm(void)
+{
+    struct arm_cca_rmi_rmm_config *cfg;
+    struct arm_cca_sro_mem_xfer xfer = {
+        .pages = arm_cca_rmm_sro_pages,
+        .nr_pages = &arm_cca_nr_rmm_sro_pages,
+        .max_pages = ARRAY_SIZE(arm_cca_rmm_sro_pages),
+        .abandoned_pages = &arm_cca_rmm_abandoned_pages,
+    };
+    struct arm_smccc_res res;
+    int rc = 0;
+
+    cfg = alloc_xenheap_page();
+    if ( cfg == NULL )
+        return -ENOMEM;
+
+    rc = arm_cca_set_rmm_config(cfg);
+    if ( rc == 0 )
+    {
+        rc = arm_cca_rmi_rmm_activate(&res);
+        rc = arm_cca_sro_complete_mem_transfer(rc, &res, &xfer);
+    }
+
+    if ( rc != 0 && (arm_cca_nr_rmm_sro_pages != 0 ||
+                     !page_list_empty(&arm_cca_rmm_abandoned_pages)) )
+        rc = -EIO;
+
+    free_xenheap_page(cfg);
+
+    return rc;
+}
+
+static int arm_cca_validate_rmm_config(void)
+{
+    struct arm_cca_rmi_rmm_config *cfg;
+    struct arm_smccc_res res;
+    int rc;
+
+    cfg = alloc_xenheap_page();
+    if ( cfg == NULL )
+        return -ENOMEM;
+
+    memset(cfg, 0, ARM_CCA_RMI_RMM_CONFIG_SIZE);
+
+    rc = arm_cca_rmi_rmm_config_get(virt_to_maddr(cfg), &res);
+    if ( rc != 0 )
+    {
+        printk(XENLOG_ERR
+               "ARM CCA: RMI_RMM_CONFIG_GET failed status=%#x data=%#lx\n",
+               arm_cca_rmi_status_code(arm_cca_rmi_result(&res)),
+               (unsigned long)arm_cca_rmi_result_data(
+                   arm_cca_rmi_result(&res)));
+        rc = -EOPNOTSUPP;
+        goto out;
+    }
+
+    /*
+     * Xen's current Realm build and teardown paths assume 4KB RMI granules
+     * and the matching 1GB tracking region.  Other active RMM configurations
+     * are valid RMI, but need explicit Xen support before they can be
+     * accepted here.
+     */
+    if ( cfg->rmi_granule_size != ARM_CCA_RMI_GRANULE_SIZE_4KB )
+    {
+        printk(XENLOG_ERR
+               "ARM CCA: requires 4KB RMI granules, but current RMM "
+               "granule size encoding is %u\n", cfg->rmi_granule_size);
+        rc = -EOPNOTSUPP;
+        goto out;
+    }
+
+    if ( cfg->tracking_region_size != ARM_CCA_RMI_TRACKING_4KB_REGION_1GB )
+    {
+        printk(XENLOG_ERR
+               "ARM CCA: requires 1GB tracking regions for 4KB RMI "
+               "granules, but current RMM tracking-region encoding is %u\n",
+               cfg->tracking_region_size);
+        rc = -EOPNOTSUPP;
+        goto out;
+    }
+
+    rc = 0;
+
+out:
+    free_xenheap_page(cfg);
+
+    return rc;
+}
+
+static int __init arm_cca_init_rmi(void)
+{
+    unsigned long revision_lower;
+    int rc;
+
+    rc = arm_cca_rmi_version(ARM_CCA_RMI_ABI_VERSION, &revision_lower, NULL);
+    if ( rc != 0 || revision_lower != ARM_CCA_RMI_ABI_VERSION )
+        return 0;
+
+    arm_cca_rmm_features0 = arm_cca_rmi_features(0);
+    arm_cca_rmm_features1 = arm_cca_rmi_features(1);
+
+    rc = arm_cca_activate_rmm();
+    if ( rc != 0 )
+    {
+        printk(XENLOG_ERR "ARM CCA: RMM activate failed: %d\n", rc);
+        return 0;
+    }
+
+    rc = arm_cca_validate_rmm_config();
+    if ( rc != 0 )
+        return 0;
+
+    rc = arm_cca_prepare_host_memory(arm_cca_rmm_features1);
+    if ( rc != 0 )
+    {
+        printk(XENLOG_ERR "ARM CCA: host memory metadata check failed: %d\n",
+               rc);
+        return 0;
+    }
+
+    arm_cca_rmm_available = true;
+    printk(XENLOG_INFO "ARM CCA: RMI configured\n");
+
+    return 0;
+}
+__initcall(arm_cca_init_rmi);
+
+int arm_cca_probe(struct domain *d)
+{
+    if ( !arm_cca_rmm_available )
+        return -EOPNOTSUPP;
+
+    d->arch.cca.rmi_features0 = arm_cca_rmm_features0;
+    d->arch.cca.rmi_features1 = arm_cca_rmm_features1;
+
+    return 0;
+}
+
+void arm_cca_realm_params_init(struct arm_cca_rmi_realm_params *params)
+{
+    memset(params, 0, sizeof(*params));
+}
+
+void arm_cca_rec_params_init(struct arm_cca_rmi_rec_params *params,
+                             register_t mpidr, register_t pc, bool runnable)
+{
+    memset(params, 0, sizeof(*params));
+
+    params->flags = runnable ? ARM_CCA_RMI_REC_CREATE_RUNNABLE : 0;
+    params->mpidr = mpidr;
+    params->pc = pc;
+}
+
+void arm_cca_rec_run_init(struct arm_cca_rmi_rec_run *run)
+{
+    memset(run, 0, sizeof(*run));
+}
diff --git a/xen/arch/arm/include/asm/cca.h b/xen/arch/arm/include/asm/cca.h
index c35d51f750a3..80c161078d6c 100644
--- a/xen/arch/arm/include/asm/cca.h
+++ b/xen/arch/arm/include/asm/cca.h
@@ -24,6 +24,9 @@
 
 struct domain;
 struct vcpu;
+struct arm_cca_rmi_realm_params;
+struct arm_cca_rmi_rec_params;
+struct arm_cca_rmi_rec_run;
 struct page_info;
 
 struct arm_cca_rtt_record {
@@ -84,4 +87,11 @@ int arm_cca_delegate_granule(paddr_t granule);
 int arm_cca_undelegate_granule(paddr_t granule);
 int arm_cca_prepare_host_memory(unsigned long features1) __init;
 
+int arm_cca_probe(struct domain *d);
+
+void arm_cca_realm_params_init(struct arm_cca_rmi_realm_params *params);
+void arm_cca_rec_params_init(struct arm_cca_rmi_rec_params *params,
+                             register_t mpidr, register_t pc, bool runnable);
+void arm_cca_rec_run_init(struct arm_cca_rmi_rec_run *run);
+
 #endif /* ARM_CCA_H */
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:08:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:08:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309339.1580375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqh-00021Y-GX; Fri, 15 May 2026 04:08:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309339.1580375; Fri, 15 May 2026 04:08:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqh-00021R-Cm; Fri, 15 May 2026 04:08:31 +0000
Received: by outflank-mailman (input) for mailman id 1309339;
 Fri, 15 May 2026 04:08:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjqf-0001dJ-CY
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:08:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjqe-00GbfP-P5
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:08:28 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069bea-2eae-0a2a0a5409dd-0a2a4502b15c-44
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:28 +0200
Received: from [40.107.74.73]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c3a-af86-0a2a45020019-286b4a49ea93-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:28 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB3981.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:19 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GbcqENprtW3a5Mwb+8svrbGWTpFCSK2YFMf+uXqkPTwofeR23X4JMeaJ8/ZKgLKbtNMgVL9GkR4j9TKdr4jgeidBr1PXkaS/LidFnh14ufUrhP5vh7raNFGV0hD/yRi9TC9cP2rLeqwxVV2o4WF1J92EIfgOqG7Voq9biWEjHzvJyektwmmrMszI6joQdWOSqodK4Cx963GAbd1p7edI3EaVSoT8rYbKBdq4fUya+V4PXcKEF7IwOX36nTEpc+pLtCP99d/pA9p3AWlqOsEsOzkC8mpWQ1F516YqaAr1LSV8Jk/tyDJ5qtpxYS+TC4HC6aYnXfm8QmmusQurbiuTmw==
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=/s+QH172YUfJAOUDShLUJeRTXERwFlsao3DnYwOTmUo=;
 b=Y3EB0DeXIYQaDPapMVEcNmN7sxJ1UxDhKvZVQ749AnR7YoIPvSbdASR1SW0mbUGQ+ugNjQ3Hgxl4a5LfIkjXcU+t3N6IjPc3efVTPdhHVOIk8KwNCesn0KdG9ncjqaYviXHByKA6wBZMOB+YpuYCC5kJ0PTKg7wdI49UFyLichjbIP557muRgNGI+ckIgCUZKN9UXCy56ARH8TvUGqa9a/cNZSul4ir6vko3qDXjPL3A/eR3Ooix8DZ6meUmIM687W+m5/LT/2OSPhxE6AwQMTEaknSgRNI6jO9aCDmcTtKDXzwA3s1N98lBjHECiCQejWb7EOSiqojvE5Bq5iNvMA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/s+QH172YUfJAOUDShLUJeRTXERwFlsao3DnYwOTmUo=;
 b=B9YgbavgjC+/gV79d81uQ69TMGG7NYauVJ1zfnIcIWiAmQoh+cuK6q/vOl1BQ4rSFvA6OR8DtWYihJ4iQbjT/D+x5zWACZI1SO53pgS/xUOw0FrGexrNN47nwHD+yLEOndnFwx5oBhCkshiBcrC7vnb9W6NyX9PdJr+R3d8X7BA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 00/26] xen/arm: Initial Arm CCA Realm support
Date: Fri, 15 May 2026 13:07:46 +0900
Message-ID: <20260515040812.983626-1-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0285.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:3c9::20) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB3981:EE_
X-MS-Office365-Filtering-Correlation-Id: 4f67344c-1488-43a1-073e-08deb2379895
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|3023799003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	KgD8fpFAfPLiKoE7w+9zzFThxEYmoTTy4+TXZ+Z4TzmbWt3/1HRL6rY2pneQinsXyW01adwWkbk/NEDFatdOKnchhSFFxG2JNE7HxM2+AyGmoHBNuRJBCeeXvSSrMGPUXZNv2xK6jdRXftApIV0DZFG6hxe/k00IS30OPYdP3Zu7jQ/RV73TfhCFQXuaLicVcZ425vwNBiGo7w/HM4kUMBom/NjuwhkUZ0jQcdto2PNEe4G8hZqNByZqHJMlEA04UbyL0ek0x14n90UbZqZQr1B4tumFaBMAaSN0AxsLCO4BCAQ18PcefDfF5IqiwBPjz7twPsIq2o2aXOC/V7AStdEzgMHmAfjg8mQo3bqLvbKr2fYHuVK/ZAJKDwSH1LgEOilyr9pPeUJzGgFQ3Ad/h8lMdUjkmjrctWgp2/4ZFambkTjxggcOyA1/bU3zLetOvsUgBQ6vCQLQsrwsNDXkdtJ704L0Z81DzA29bggGVN4AiJUUIVBMiklLjP2oYJR8CwTtxXHkgKoBM5Z3GrVApfHkzhblLr3IbUHij/29+z4WQfPoClW28RG74xLLhctwwBq3l3EXdgAtck8Axpe2Xh/jrMNimf2bhVBbTPc6GB3yftMU+mb+NmyxaC/oPaTq5PuSZqm4JLx4byiGqOXrIw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(3023799003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?KfcNTKYvViOszZyFCKYmNKVg7uqvSeKTdx6+uNDAvDclFEqvwmVt3xcknAM8?=
 =?us-ascii?Q?+8HMeksR4iA38c1aBgVd5pmysRK607q73lyAVLMCFeh84VDEIz1SEgxCyQDF?=
 =?us-ascii?Q?BkeHPwGrsVlYMGNqA6eVnE2j7wpvKnzvB6Ma6/lfGggsqoXrciVGW3ZK5fAm?=
 =?us-ascii?Q?A5MDPgsksDsDDWblafPFdAmiYLVc6urRc1vG6HIStv/rGka5Nweznr2xkYdW?=
 =?us-ascii?Q?Rzl4qIIytVTmXurlZNatZtpqdRNdLr7MPCoQxlKdwoU2fk+H6kP+eF6xzv7L?=
 =?us-ascii?Q?yEgb/cTty0hzJScAdY1+58VqGeC5VcDR4qqbsPMVcZo5xvyBZw6DcdpJMlSj?=
 =?us-ascii?Q?vsa/wEqN5Belbj51ZLd7ObWkDLFmfUlvVvP6S9YcUJVANbg7Cl1lJrKHBPtF?=
 =?us-ascii?Q?sXN0CATdpsAiOd9e0RQ5FCi8fRDQR/jBcECh5vvszLI+2wMP5JavGErXFfWR?=
 =?us-ascii?Q?IZOk8+MtQn0dkFnnGtXoR77srX4TM4ySgXV5Nj4vmWD4Zhw16S4vXH72zRTy?=
 =?us-ascii?Q?hzCh+U1tPvNEcxqvhiOKHfFYIk8wTfCTI/bHb5pPfwkstbI0zxOGD5v/8WIB?=
 =?us-ascii?Q?hd2pBoQhtqon+f2NZESBbzlXivUw265zDDbKNiI2gHmX4ef+tAUWKnXoYme9?=
 =?us-ascii?Q?vtXmVmoH8/Q8In9Auqx9jSTegkbFdc3I14T4feyuEYvaYSdv0VMnx0uyrroD?=
 =?us-ascii?Q?WcCfPUfRsnevicKh55AAvK7L+yl3iYQFJzDOJL8hWGjYXJcVtTYtg7r7fL1h?=
 =?us-ascii?Q?lT7jdPIgAA4JBImuN40V+WqrqcOZ0Stakn4mayYJbsuni3+v5zgcQ9GkkxA8?=
 =?us-ascii?Q?ez6MO8AzYZXDrAp6y7ehPd7JsyVcVPKXWf71szrNKWmI0QMsbkkWGJxn+r84?=
 =?us-ascii?Q?E4HrIDD8SjEoHyPt3M4J2CMFXhViBlzXi1yJoqLTxo7Q8AYE5Bovrgq8Kuxn?=
 =?us-ascii?Q?5/+GHgr3W5Y7QfCTvywOedTB6SomlSBiIgFoOHEquqftSkHp01rTwmQO7BNY?=
 =?us-ascii?Q?BXPMsoRr92zm7I1fsxJaR8AlukVwyhoiNVAsfLrmQXnt/SLlTpL2wecIgJWJ?=
 =?us-ascii?Q?GnPitzYPDyF4zUmbZ6PUlr/JdDCoX4UqmGVuduc834eMxu8xz0huFzaHzEv0?=
 =?us-ascii?Q?wAe29kfhbn2+s3ChmO6jy9Rt5QOsKOHr5CdnSkSsEYMlMLnRPVtAim5/OC/g?=
 =?us-ascii?Q?YYv4dOEKOFmxTV5XJ7X7xDLTsv3n06srBItoDvwFYhw9GHU7wDHMmm0RpbwB?=
 =?us-ascii?Q?E4cengyXmG4Tsgk+u23J0E8COL9hRNgqZrA2KG4HBujqvnST5wMlCqCY/uTs?=
 =?us-ascii?Q?j8UimqWZi47MGm1NdMgwOfHWJUB1ecLkUSEgAQaD4U8XZ/H4Z5phvbn6jz01?=
 =?us-ascii?Q?KxAUAPIewhVTZ80ZSO7VXL3zlmX3klpRI13CdSof63V29jy4JyCqTuRbcaDM?=
 =?us-ascii?Q?yoXxOBA8mp/SuMn6lhv9tb299EIltSBUZyF7u3oC3GNw2mhzNd94J/XMwQ4D?=
 =?us-ascii?Q?zl80oy/4C5PzMRMCZQ049+zKXZrDdqdMPOiOK1wnY4KxtPVir/36D39I50SY?=
 =?us-ascii?Q?86qJJs8o5L/M6n0nyto8iCxIShJXCXcmMmNMzMNw2uUHJ8Ym2R2ijBFzlZHg?=
 =?us-ascii?Q?ff/Fla12t6fLsvmB4yGl2BvMdNM+HtHzahiAk3IEftTWSuq+Z6DrSGxbDawd?=
 =?us-ascii?Q?1/Pmp5J9qzC2LkuN0VHR/OA6VC70q1J0No1J5kdGIyGrhLPNu00I/WQYqiLM?=
 =?us-ascii?Q?T9khUtkaRwLHzUpOaFw79++DsCnrujIN2AitFGId9qvctxUfZz6w?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f67344c-1488-43a1-073e-08deb2379895
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:18.7143
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9N2GcaYsR36BaVhuaPoWgb8XyOwJvDU01iXLX4lwdqIubxfstn4X7g00zA46rT8ur2IpB/S+3EknnmSavKxP1Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB3981
X-purgate-ID: tlsNG-720697/1778818108-82D6F161-C9B3AF81/0/0
X-purgate-type: clean
X-purgate-size: 9641

Hi,

This RFC adds the first Xen pieces needed to run an Arm PVH DomU as a CCA
Realm guest on Arm RME systems. It targets the RMI v2.0 ABI described by
DEN0137 2.0-bet1 (https://developer.arm.com/documentation/den0137/2-0bet1).

The scope is intentionally narrow. The series boots a small Realm guest and
exercises the Realm lifecycle, REC entry, basic MMIO exits, PSCI, RIPAS
changes and a local attestation smoke test. It is not complete Arm CCA
support.


Preface
=======

This work was prepared independently, using public Arm CCA material as the
reference point: the RMM architecture specification, the public TF-RMM v2.0
PoC branch, and the public Arm/KVM CCA series.

I expect this series to need further respins while TF-RMM v2.0 and the KVM
CCA support, v14 at the time of writing, continue to settle. Some choices
here follow the current public PoC code rather than a tagged TF-RMM v2.0
release.

Review from people familiar with Arm CCA, RMM and the KVM CCA work would be
much appreciated. I would be especially grateful if someone from Arm could
help sanity-check the RMI/RMM assumptions, even informally.

Developed and tested with the following component revisions:
  * TF-RMM:
    commit 3340667a291a
    topics/rmm-v2.0-poc_2 branch tip as of 2026-05-14
    https://git.trustedfirmware.org/plugins/gitiles/TF-RMM/tf-rmm.git/+/3340667a291acd5722cb45d05135d7aa15174b25
  * TF-A [1]:
    commit 7ad4b5ed31e3
    https://git.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a.git/+/7ad4b5ed31e33dca21dd4d2f4a9f64f9b7d4db85
  * Arm FVP:
    FVP_Base_RevC-2xAEMvA 11.30_27
  * vanilla Linux v7.0 for both Dom0 and the Realm guest.

A runnable demo workspace is here:
https://gitlab.com/cca-for-xen-demo/cca-stack-xen-demo

The tested path is:
  * boot Xen and Dom0 on the Arm FVP Base RevC AEMvA RME model
  * create a Realm guest through toolstack
  * boot a Linux Realm guest
  * attach to the current debug vUART
  * run a local Realm attestation smoke test
  * shut the Realm guest down and relinquish the Realm resources

[1] https://lists.trustedfirmware.org/archives/list/tf-a@lists.trustedfirmware.org/message/NL63OIIDQVFGQ4TFXY7TNZS43TLLIKXD/

Overview
========

The series contains:

  * RMI v2.0 ABI definitions and SMCCC wrappers.
  * Realm domain and vCPU state.
  * Realm-owned granule tracking for RD, RTT, DATA and REC pages, plus REC
    auxiliary pages donated through SRO.
  * Host RAM tracking checks and GPT L1 setup before Xen creates Realms.
  * Stateful RMI Operation helpers for RMM, Realm and REC lifecycle commands.
  * Realm construction:
      - RMI_REALM_CREATE
      - RTT creation
      - DATA mapping with measured initial contents
      - REC creation
      - RMI_REALM_ACTIVATE
  * Realm relinquish and teardown:
      - RMI_REALM_TERMINATE
      - DATA unmap
      - RTT destroy
      - REC destroy and SRO reclaim of auxiliary pages
      - RMI_REALM_DESTROY
  * A dedicated REC execution path based on RMI_REC_ENTER.
  * Minimal REC exit handling for:
      - interrupt exits returning control to Xen
      - PSCI
      - WFI/WFE
      - RIPAS change
      - emulatable Data Abort MMIO
      - selected GICv3 sysreg exits
      - simple timer state handoff around Realm entry and exit.
  * A domctl used by libxl to finalize Realm construction.
  * A libxl/xl option, realm=true, for Arm PVH guests.


Current scope and limitations
=============================

The initial support is intentionally minimally-scoped:

  * No Dom0less Realm launch at Xen boot
  * No Xen PV interfaces for Realm guests
  * No device assignment or VDEV/VSMMU handling
  * No Multi-Plane Realms
  * No Realm LPA2, so the Realm IPA size is limited to 48 bits
  * No Realm SVE or Realm PMU
  * No selectable Live Firmware Activation policy
  * Shared MEC policy only
  * Fixed zero Realm Personalization Value
  * No guest RAM outside the first Arm guest RAM bank
  * No S2AP change handling through RMI_RTT_SET_S2AP
  * No Host call exits
  * No frontend/backend devices, virtio, or Xen grant mappings for Realm guests
  * No ACPI Realm guests
  * No non-4KB RMI granule or non-1GB tracking-region configurations
  * No shared-memory mappings through RMI_RTT_UNPROT_MAP and
    RMI_RTT_UNPROT_UNMAP
  * No hardware-backed vIRQ deactivation in the ICC_DIR_EL1 emulation path
  * No production-safe replacement for the current clear-text debug VUART.

The debug VUART is Kconfig-gated and host-visible. It is only a debug path,
not a confidential Realm I/O path.

Realm creation is intended to be libxl-driven in this RFC. libxl rejects
Realm guests whose RAM does not fit in the first Arm guest RAM bank, and
passes that single first-bank RAM range to Xen for Realm conversion.

The current Linux v7.0 Realm guest code used for testing does not issue
RSI_MEM_SET_PERM_INDEX, so the missing S2AP change flow is not exercised by
the tested boot and attestation path.

Two implementation details are worth mentioning. Initial Realm RAM
population measures every populated DATA granule. There is no
measured-range interface yet. Xen also tracks up to 64 accepted donation
pages for one memory-transferring SRO. That is a Xen implementation cap,
not an RMI limit.

Device assignment is separate work. The tested TF-RMM revision already has
some PDEV, VDEV and PSMMU code. Xen simply does not create those objects,
enable Realm DA in RmiRealmParams, or handle the related REC exits yet.


Best regards,
Koichiro


Koichiro Den (26):
  xen/arm/cca: add RMI v2.0 ABI definitions
  xen/arm/cca: add RMI v2.0 SMCCC core wrappers
  xen/arm/cca: add RMI v2.0 lifecycle wrappers
  xen/arm/cca: add Realm domain and vCPU state
  xen/arm/cca: track Realm-owned granules
  xen/arm/cca: add Realm granule helpers
  xen/arm/cca: initialize the RMM and Realm parameters
  xen/arm/cca: add shared SRO helpers
  xen/arm: vpl011: expose VPL011 presence to Arm code
  xen/arm/cca: add Realm relinquish entry point
  xen/arm/cca: terminate and destroy Realms on relinquish
  xen/arm/cca: tear down Realm DATA and RTT granules
  xen/arm/cca: destroy RECs during Realm relinquish
  xen/arm/cca: validate Realm construction inputs
  xen/arm/cca: create Realm descriptors
  xen/arm/cca: build Realm RTTs
  xen/arm/cca: populate Realm DATA granules
  xen/arm/cca: create RECs and activate Realms
  xen/arm: io: add register-backed MMIO emulation helpers
  xen/arm: vgic-v3: expose SGI emulation for Realm exits
  xen/arm/cca: add Realm vCPU timer state
  xen/arm/cca: add Realm REC enter path
  xen/arm/cca: handle Realm RIPAS and GIC sysreg exits
  xen/arm, tools: add domctl for Realm finalization
  libxl/arm: add and validate Realm guest support
  docs: arm: add an Arm CCA Realm guest guide

 docs/hypervisor-guide/arm/cca-realm.rst |   83 ++
 docs/hypervisor-guide/arm/index.rst     |    1 +
 docs/man/xl.cfg.5.pod.in                |   46 +-
 tools/flask/policy/modules/xen.if       |    1 +
 tools/include/libxl.h                   |    5 +
 tools/include/xenctrl.h                 |   12 +
 tools/libs/ctrl/xc_domain.c             |   37 +
 tools/libs/light/libxl_arm.c            |  140 ++-
 tools/libs/light/libxl_create.c         |    2 +
 tools/libs/light/libxl_types.idl        |    1 +
 tools/xl/xl_parse.c                     |    2 +
 xen/arch/arm/Kconfig                    |   25 +
 xen/arch/arm/Makefile                   |    1 +
 xen/arch/arm/cca/Makefile               |    7 +
 xen/arch/arm/cca/build.c                | 1131 +++++++++++++++++++++++
 xen/arch/arm/cca/granule.c              |  150 +++
 xen/arch/arm/cca/realm.c                |  191 ++++
 xen/arch/arm/cca/rec.c                  |  965 +++++++++++++++++++
 xen/arch/arm/cca/rmi-abi.h              |  433 +++++++++
 xen/arch/arm/cca/rmi.c                  |  441 +++++++++
 xen/arch/arm/cca/rmi.h                  |  214 +++++
 xen/arch/arm/cca/sro.c                  |  485 ++++++++++
 xen/arch/arm/cca/sro.h                  |   25 +
 xen/arch/arm/cca/state.c                |  470 ++++++++++
 xen/arch/arm/domain.c                   |   32 +-
 xen/arch/arm/domctl.c                   |   60 ++
 xen/arch/arm/include/asm/arm64/hsr.h    |    1 +
 xen/arch/arm/include/asm/cca.h          |  137 +++
 xen/arch/arm/include/asm/domain.h       |   16 +
 xen/arch/arm/include/asm/hsr.h          |    4 +
 xen/arch/arm/include/asm/mmio.h         |   11 +
 xen/arch/arm/include/asm/vgic.h         |   10 +
 xen/arch/arm/include/asm/vpl011.h       |    5 +
 xen/arch/arm/io.c                       |   99 +-
 xen/arch/arm/vgic-v3.c                  |    4 +-
 xen/arch/arm/vpl011.c                   |    5 +
 xen/include/public/domctl.h             |   12 +
 xen/xsm/flask/hooks.c                   |    3 +
 xen/xsm/flask/policy/access_vectors     |    2 +
 39 files changed, 5221 insertions(+), 48 deletions(-)
 create mode 100644 docs/hypervisor-guide/arm/cca-realm.rst
 create mode 100644 xen/arch/arm/cca/Makefile
 create mode 100644 xen/arch/arm/cca/build.c
 create mode 100644 xen/arch/arm/cca/granule.c
 create mode 100644 xen/arch/arm/cca/realm.c
 create mode 100644 xen/arch/arm/cca/rec.c
 create mode 100644 xen/arch/arm/cca/rmi-abi.h
 create mode 100644 xen/arch/arm/cca/rmi.c
 create mode 100644 xen/arch/arm/cca/rmi.h
 create mode 100644 xen/arch/arm/cca/sro.c
 create mode 100644 xen/arch/arm/cca/sro.h
 create mode 100644 xen/arch/arm/cca/state.c
 create mode 100644 xen/arch/arm/include/asm/cca.h

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:08:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:08:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309356.1580438 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqy-0004N1-2N; Fri, 15 May 2026 04:08:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309356.1580438; Fri, 15 May 2026 04:08:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqx-0004MU-SP; Fri, 15 May 2026 04:08:47 +0000
Received: by outflank-mailman (input) for mailman id 1309356;
 Fri, 15 May 2026 04:08:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjqw-0004BB-Gt
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:08:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjqv-0051ua-Td
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:08:45 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c36-bab6-0a2a0a5309dd-0a2a450c90bc-14
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:45 +0200
Received: from [52.101.228.84]
 (helo=OS0P286CU011.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c4b-62f1-0a2a450c0019-3465e45466d0-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:45 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYCP286MB3682.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 04:08:35 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=arrFO6a2sjzq/3ApCdKsYNAQyoNnWnEDCNbpZPW7MwZTmuB+TIWfpAtskWAJT0cFbiq4eTuRuGbVRplyuU8JFqD9a9FaXqUFn6AJNb+WGSOnTzAONlx+wCXA/kde7frUyxSbVT6wFiKBogR+rJt2YYPuYJH2ItwAy/7wHJx4FuSZ/OpFxCtybYLrdF+f3pfI9uypYvoYVQ2nQIAEyJDYZpRsYxkhtnMNg6ZrQnVU+PUGg78mXvw1S2DQ7+VL+3zHVYJjyrF12YyF2wRWhWeGt1nYzOCKRsyC/UAFjnBFS87LH16Lczu42+BVj8JBVoHaYZMQJhFCtfEvS83rYhhi0w==
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=DiTfP5ChOZW8sjqcWWmT0T9qF7NP3o4lD8/7QRCmBhE=;
 b=CjnNAGqTHYoAbp1Xe64vovWBsdR0EY58EwBsuMQNcshiah8wBa9/vhUNjaFE6RMwIDzXsZG+aLraYVOlPCBNiuSNarQtOERkgoXhpx1pNIxYmEAs+JYErPPHWNOGQkU5E2omK0JvWMf0XfMv/hLW/U5C3yD75xcgDr6/Xf0+SnLvUFwM9cuJHEWuuyyjjK2STsE8V9ZROq1RSVTf2Iu4CMFiBmjETQhtERONrj7Lx/8t/POAlJRqm/pLJjl2r2lxHpBgpZRU3XV3hAdi6I4D28J9s+ge/ELHMrmuTfuo8d1nuHLNzqFwn5ycuhjXkYXQjkcoWrYaQjiZY5vFtNZiew==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DiTfP5ChOZW8sjqcWWmT0T9qF7NP3o4lD8/7QRCmBhE=;
 b=OU8p56epggxR3lOdRHCHF9J2jpw97Vb+Eb5pywnrAtbdGMaP13EpZlEEmgjhEGMwYwRA+dGhPhBbDpuoq/zmPmnlCoYgMUWmsCGvDFOFKHU2zqsT7J6xAUoHjUq4VEbmZt9Hntos7L2SWThCP1aJhIOuRHECiH0FcUaxz4MmdRI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 18/26] xen/arm/cca: create RECs and activate Realms
Date: Fri, 15 May 2026 13:08:04 +0900
Message-ID: <20260515040812.983626-19-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCPR01CA0207.jpnprd01.prod.outlook.com
 (2603:1096:405:7a::8) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYCP286MB3682:EE_
X-MS-Office365-Filtering-Correlation-Id: fb795c32-8e36-470c-25b1-08deb237a0f2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|366016|376014|7416014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	u7BvWJ4Xum8DAsKkj2EhOWUimA2PvaUXZ/mihCxXPz6O3MGU28JAI22PMl9z9REpqTBkD8NIhqyKzI18H5x5vJgv9k+s1W54SYUAgMA/G4fslBR4/LEuczWBK24e9m4gxjom/BQua4Pprwdm02ailsBEBR1d1Nn3okyZ04LK1Im3VGAh/aDve9rqhTysArYSxb5oqGsv5ueAAAXIRKliDFvkyPRvbzd6B6rCqGF962Lpf85exNd+2mgEeAFkZb49sKXyq0hbWatLNmaU7coqvePS/dSkN1o8O3Y1SlQrpbyBFHhNnIJ0b+dgjyyohPO2V2d8bwG7uiC7vfKXIoiya2sWvgrC3EaD4F/FtkUrq3yz9y2CY2Z0ucXUmxOTsz10JtSc/V6JrbLzGsjADmEfTX2Ub9+XQd5EVtVRWGP8Rf7tnE4EMHQ8hZo8uvjzFdB1X5LkyDJ5Y2Yq1b/S2MKcmogbD0eipp6VwP5Ft3xwOv6VzxPmV+97ewF7Tr5ZEtNQmmy7LK+MF6BtvfjPP2ayGKJukqj5zgT18kXPdn2nAelINIxqnV7Yz1+dTZolQ1Z20JjpIfQe4CzLccn+w+swNhWhNOVPIgXgpozOG7djZH+90jdooOfVDEqzx3nKlG7Bx/sfJRAfYyksXX1xSnzUtJhAUbjrXSrtf9HxYEq4jyjAgwYrdcXCozVcalHTM00V
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(366016)(376014)(7416014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?nI6bvk9tLDVNkqMhy0HhrNlnaKdZzQbiBTU9Hy1FyD20e8C2kmeUi8G2tJDh?=
 =?us-ascii?Q?qdJWDj3LGF4ny/BfWG5SMRRoObC9t/lkh6oiDnOrtnhtAEuAnUXiGxwYe1zi?=
 =?us-ascii?Q?VixVjxxGZRmRZtXGuCQaZGiosTjVUuuAUSTO6BZ8h7PKGonIj3tCEHIwbKS8?=
 =?us-ascii?Q?bCTsWNqTSdnEIw6Vn4CJG6E+xKrOJFp1PdpGLpWsZVPNlCU0vpk37noR9K8t?=
 =?us-ascii?Q?pewT2oI3M3IkTWwRkre4bPXhkrTrV18nK7h69ZVKXV5hUxqgnajxhnffiqND?=
 =?us-ascii?Q?vDmGh6mH6kE2UX7jrpsAVxDrXcalvA0tqZlqXr7a8Vj0Ypc915EHt5mDJ2pp?=
 =?us-ascii?Q?ey0vME6/X02PrYHCGrXusMTSvev5n8IPK03rJO5NMInnEoXn+ltm3MbSpGeU?=
 =?us-ascii?Q?c3ByP2W7AaX27ovnsCucYBKQSPnXRlKUfPZPtKD8XAWg5ZGEtPTMgxenNA+Y?=
 =?us-ascii?Q?y/25Ss44hNo1xxl61ela5NfXlP+dvYHq2iliWEgn6NTrv3CUrukf8CrYAjQE?=
 =?us-ascii?Q?nNgGLGZIbdx36HuQ8HKt9butCDcu9wgx7gP7je+zlUGrQrS72kQZx8S/fyuI?=
 =?us-ascii?Q?eI3lhtUsqlkinoYr/4+5i15WSiHY+BUcf5Y5zt63XdA6C5zRCburkfOZrSUY?=
 =?us-ascii?Q?4so5xyxd2OZYjyX1EEd3lfbzOwyoSivUHYWwqeN3pHvnacvcWCccz2zplXQI?=
 =?us-ascii?Q?J6oZf7U1WMtCEtAWsp7W/S0BvYsW0MHvVFJUyuDIT6QQP3xLfI452XgCL8sD?=
 =?us-ascii?Q?tlozVIscK9ge4FgJOvDcZi7JQNnuZa1y+vFdtyHlf83pPRkxXB9gD4I0vlsB?=
 =?us-ascii?Q?WJ/4WFvL/HV/xvDw1/LjfVs5199JecMh3BjyRMw89dCoAV8hQwkbFTT8ufPO?=
 =?us-ascii?Q?Sg70vqq1PGbAx1hDLu7xksGKu1ObIdiu1BOJdgJboPaOrESbQ2gukqsjVVtK?=
 =?us-ascii?Q?TYehlUmdYFAQm6R4516vIiJ9uvmjcoO1B8QeO+EAvjmuD0g/CWat7cCV6ruc?=
 =?us-ascii?Q?IBePCdBYlnDmqHP8o+Ue63pFXGvNUdgZsScRK6ZLhxrifvwhqTxgnzso6hE/?=
 =?us-ascii?Q?1BNEZ//0Y7H7qq89MtCKu19aaSYBWkFLSi74nej8rjZyYwxo4niil498LeLI?=
 =?us-ascii?Q?4prKz+CZENkNDpkdtZVQNc1f8ET5pIB9Tirq49vhb2fO6wTng6JfrRPpcGor?=
 =?us-ascii?Q?h5yMC0a22wKDT2VqW80o1uEwPdH7GJJHUVZGtgJSSMeasPhBUIZxF6sN+cr7?=
 =?us-ascii?Q?lOGBxhOSONIkjORaLr7YVkum7+1dOKqzhO0uhyr+JR/za+oR95fKZhXbYDbg?=
 =?us-ascii?Q?NaME434TDhz0WqdWBxUi79bDiQqxXJjk8iF1eXyNYou76qe8Wn4brv6xq84g?=
 =?us-ascii?Q?BBcKx+mt3j3NVdh/RnCh+k6qnyzxeh3a3z4tehTlGzMiupUrhlskw43Y5ehV?=
 =?us-ascii?Q?382JzTQGocwj3kdo2fs+dJTKtW1rSbYxJ/a2XR/nDih0Ctfty4Vo3ghYuyVF?=
 =?us-ascii?Q?dShHG5+1BZ6pojjZFIKY0O72IKBODWXfrkPpVEFvus/f4UJ60JZS50wyDnNS?=
 =?us-ascii?Q?2k8Yn497mYSSI323+VOvgmubbLo2KBFfqa1VbuGs5FrUH41uZzRfMWaqs0ck?=
 =?us-ascii?Q?fSj4146h6pwCBgvqWSlUFX670sIAfN9BfDa3jGD5w+wSeIgLBK024LrMLRuQ?=
 =?us-ascii?Q?1HUkx26q5TRf6ebj+c84O4SFAa1TOY9gJa0OTuqueLUnd5E8pspvrFM3grfJ?=
 =?us-ascii?Q?4csUPIhSLEuQmjPCHVWToGqPaf/RFw4JZnUoqH7S0inp6zRv6mmx?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: fb795c32-8e36-470c-25b1-08deb237a0f2
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:32.6936
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: zyQwljqCxvJtSjUcUkD7Y7JW7k74wXQFr8l4xs7a/waImBRF6pysRyedWtULpXhNQkITK+7vPdcCrQsnZ6C6hg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCP286MB3682
X-purgate-ID: tlsNG-d25034/1778818125-F5784CF5-C1540339/0/0
X-purgate-type: clean
X-purgate-size: 14710

Finish the restartable build path with REC creation and Realm
activation. Keep enough state to continue after preemption or abort
cleanly.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/Kconfig           |  11 ++
 xen/arch/arm/cca/Makefile      |   1 +
 xen/arch/arm/cca/build.c       | 333 +++++++++++++++++++++++++++++++++
 xen/arch/arm/cca/state.c       |   7 +
 xen/arch/arm/include/asm/cca.h |  26 +++
 5 files changed, 378 insertions(+)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index dc99020c96de..3635a79af272 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -132,6 +132,17 @@ config ARM_CCA
 
 	  This support is experimental. If unsure, say N.
 
+config ARM_CCA_REALM_DEBUG_VUART
+	bool "Debug VUART console for Arm Realm guests"
+	depends on ARM_CCA && SBSA_VUART_CONSOLE
+	help
+	  Allow Arm CCA Realm guests to use the emulated SBSA UART console.
+
+	  The VUART is a host-visible clear-text debug channel. It is useful
+	  for Realm debug access while there is no better guest access
+	  path, but confidentiality-oriented configurations should disable it
+	  and rely on attested in-Realm services instead.
+
 config GICV2
 	bool "GICv2 driver"
 	default y
diff --git a/xen/arch/arm/cca/Makefile b/xen/arch/arm/cca/Makefile
index bf6d9b58ebec..0e66280012b7 100644
--- a/xen/arch/arm/cca/Makefile
+++ b/xen/arch/arm/cca/Makefile
@@ -3,3 +3,4 @@ obj-y += realm.o
 obj-y += rmi.o
 obj-y += sro.o
 obj-y += state.o
+obj-y += build.o
diff --git a/xen/arch/arm/cca/build.c b/xen/arch/arm/cca/build.c
index 8e607e97b99c..29eb0c6057b0 100644
--- a/xen/arch/arm/cca/build.c
+++ b/xen/arch/arm/cca/build.c
@@ -788,3 +788,336 @@ err_page:
 
     return rc;
 }
+
+static void arm_cca_adopt_rec_aux_pages(struct vcpu *v,
+                                        struct page_info **pending_aux,
+                                        unsigned int *nr_pending_aux)
+{
+    unsigned int i;
+
+    for ( i = 0; i < *nr_pending_aux; ++i )
+    {
+        ASSERT(v->arch.cca.nr_aux < ARRAY_SIZE(v->arch.cca.aux_pages));
+        v->arch.cca.aux_pages[v->arch.cca.nr_aux++] = pending_aux[i];
+        pending_aux[i] = NULL;
+    }
+
+    *nr_pending_aux = 0;
+}
+
+static int arm_cca_rmi_rec_create_complete(struct domain *d, struct vcpu *v,
+                                           paddr_t rec, paddr_t params,
+                                           uint64_t *rmi_result)
+{
+    struct page_info *pending_aux[ARM_CCA_MAX_REC_AUX] = { NULL };
+    unsigned int nr_pending_aux = 0;
+    struct arm_cca_sro_mem_xfer xfer = {
+        .pages = pending_aux,
+        .nr_pages = &nr_pending_aux,
+        .abandoned_pages = &d->arch.cca.abandoned_pages,
+    };
+    struct arm_smccc_res res;
+    int rc;
+
+    if ( v->arch.cca.nr_aux > ARRAY_SIZE(v->arch.cca.aux_pages) )
+        return -EIO;
+
+    xfer.max_pages = ARRAY_SIZE(v->arch.cca.aux_pages) - v->arch.cca.nr_aux;
+
+    rc = arm_cca_rmi_rec_create(d->arch.cca.rd, rec, params, &res);
+    rc = arm_cca_sro_complete_mem_transfer(rc, &res, &xfer);
+    rc = arm_cca_build_record_rmi_failure(rmi_result, rc, &res);
+
+    if ( rc != 0 && nr_pending_aux != 0 )
+    {
+        /*
+         * Accepted REC auxiliary pages are returned only when the SRO reports
+         * RMI_OP_MEM_REQ_RECLAIM.  If it ends before then, Xen has no separate
+         * reclaim operation for them.
+         */
+        d->arch.cca.build_unrecoverable = true;
+    }
+
+    if ( nr_pending_aux != 0 )
+        arm_cca_adopt_rec_aux_pages(v, pending_aux, &nr_pending_aux);
+
+    return rc;
+}
+
+static int arm_cca_create_rec(struct domain *d, struct vcpu *v, bool runnable,
+                              uint64_t *rmi_result)
+{
+    struct cpu_user_regs *regs;
+    struct arm_cca_rmi_rec_params *params;
+    struct page_info *rec_pg = NULL;
+    struct page_info *params_pg = NULL;
+    bool rec_delegated = false, run_created = false;
+    void *va;
+    int rc = -ENOMEM;
+
+    rec_pg = arm_cca_alloc_host_page();
+    if ( !rec_pg )
+        goto out;
+
+    params_pg = arm_cca_alloc_host_page();
+    if ( !params_pg )
+        goto out;
+
+    if ( !v->arch.cca.run )
+    {
+        v->arch.cca.run = arm_cca_alloc_rec_run();
+        if ( !v->arch.cca.run )
+            goto out;
+        v->arch.cca.run_pa = virt_to_maddr(v->arch.cca.run);
+        run_created = true;
+    }
+
+    rc = arm_cca_delegate_granule(page_to_maddr(rec_pg));
+    if ( rc != 0 )
+        goto out;
+    rec_delegated = true;
+
+    va = map_domain_page(page_to_mfn(params_pg));
+    params = va;
+    regs = &v->arch.cpu_info->guest_cpu_user_regs;
+
+    /*
+     * REC_CREATE takes an RmiRecMpidr affinity value, not a full MPIDR_EL1.
+     * DEN0137 2.0-bet1 - B4.6.68 RmiRecMpidr type.
+     */
+    arm_cca_rec_params_init(params, vcpuid_to_vaffinity(v->vcpu_id),
+                            regs->pc, runnable);
+    params->gprs[0] = regs->x0;
+    params->gprs[1] = regs->x1;
+    params->gprs[2] = regs->x2;
+    params->gprs[3] = regs->x3;
+
+    unmap_domain_page(va);
+
+    rc = arm_cca_rmi_rec_create_complete(d, v, page_to_maddr(rec_pg),
+                                         page_to_maddr(params_pg),
+                                         rmi_result);
+    if ( rc != 0 )
+        goto out;
+
+    arm_cca_rec_run_init(v->arch.cca.run);
+
+    v->arch.cca.rec_page = rec_pg;
+    v->arch.cca.rec = page_to_maddr(rec_pg);
+    rc = 0;
+
+out:
+    if ( params_pg )
+        free_domheap_page(params_pg);
+
+    if ( rc != 0 && rec_pg )
+        arm_cca_free_or_abandon_build_page(d, rec_pg, rec_delegated);
+
+    if ( rc != 0 && run_created )
+    {
+        arm_cca_free_rec_run(v->arch.cca.run);
+        v->arch.cca.run = NULL;
+        v->arch.cca.run_pa = INVALID_PADDR;
+    }
+
+    return rc;
+}
+
+/* DEN0137 2.0-bet1 - D1.2.4 REC creation flow. */
+static int arm_cca_create_recs(struct domain *d, uint64_t *rmi_result)
+{
+    unsigned int i;
+    int rc;
+
+    for ( i = 0; i < d->max_vcpus; ++i )
+    {
+        struct vcpu *v = d->vcpu[i];
+
+        ASSERT(v);
+
+        rc = arm_cca_create_rec(d, v, i == 0, rmi_result);
+        if ( rc != 0 )
+            return rc;
+
+    }
+
+    return 0;
+}
+
+static void arm_cca_build_state_clear(struct domain *d)
+{
+    d->arch.cca.build_phase = ARM_CCA_BUILD_NONE;
+    d->arch.cca.build_unrecoverable = false;
+    d->arch.cca.build_abort_rmi_result = 0;
+    d->arch.cca.build_base_gfn = INVALID_GFN;
+    d->arch.cca.build_nr_pages = 0;
+    d->arch.cca.build_next_ipa = INVALID_PADDR;
+    d->arch.cca.build_rtt_level = 0;
+}
+
+static void arm_cca_build_state_start(struct domain *d, gfn_t base_gfn,
+                                      unsigned long nr_pages)
+{
+    d->arch.cca.build_phase = ARM_CCA_BUILD_VALIDATE;
+    d->arch.cca.build_unrecoverable = false;
+    d->arch.cca.build_abort_rmi_result = 0;
+    d->arch.cca.build_base_gfn = base_gfn;
+    d->arch.cca.build_nr_pages = nr_pages;
+    d->arch.cca.build_next_ipa = INVALID_PADDR;
+    d->arch.cca.build_rtt_level = 0;
+}
+
+static int arm_cca_build_state_check(struct domain *d, gfn_t base_gfn,
+                                     unsigned long nr_pages)
+{
+    if ( d->arch.cca.build_phase == ARM_CCA_BUILD_NONE )
+    {
+        arm_cca_build_state_start(d, base_gfn, nr_pages);
+        return 0;
+    }
+
+    if ( !gfn_eq(d->arch.cca.build_base_gfn, base_gfn) ||
+         d->arch.cca.build_nr_pages != nr_pages )
+        return -EBUSY;
+
+    return 0;
+}
+
+static int arm_cca_domain_finalize_abort(struct domain *d)
+{
+    unsigned int i;
+    bool fatal = d->arch.cca.build_unrecoverable;
+    int rc;
+
+    rc = arm_cca_domain_relinquish_resources(d);
+    if ( rc != 0 )
+    {
+        if ( rc == -ERESTART )
+            return rc;
+
+        return -EIO;
+    }
+
+    for ( i = 0; i < d->max_vcpus; ++i )
+    {
+        struct vcpu *v = d->vcpu[i];
+
+        if ( v == NULL )
+            continue;
+
+        arm_cca_vcpu_destroy(v);
+        arm_cca_vcpu_init(v);
+    }
+
+    return fatal ? -EIO : 0;
+}
+
+int arm_cca_domain_finalize(struct domain *d, gfn_t base_gfn,
+                            unsigned long nr_pages,
+                            uint64_t *rmi_result)
+{
+    paddr_t base = gfn_to_gaddr(base_gfn);
+    struct arm_smccc_res res;
+    uint64_t abort_rmi_result;
+    int abort_rc, rc;
+
+    if ( rmi_result )
+        *rmi_result = 0;
+
+    rc = arm_cca_build_state_check(d, base_gfn, nr_pages);
+    if ( rc != 0 )
+        return rc;
+
+    for ( ;; )
+    {
+        switch ( d->arch.cca.build_phase )
+        {
+        case ARM_CCA_BUILD_VALIDATE:
+            rc = arm_cca_validate_domain(d, base_gfn, nr_pages);
+            if ( rc != 0 )
+            {
+                arm_cca_build_state_clear(d);
+                return rc;
+            }
+            rc = arm_cca_probe(d);
+            if ( rc != 0 )
+            {
+                arm_cca_build_state_clear(d);
+                return rc;
+            }
+            d->arch.cca.build_phase = ARM_CCA_BUILD_CREATE_REALM;
+            fallthrough;
+
+        case ARM_CCA_BUILD_CREATE_REALM:
+            rc = arm_cca_create_realm(d, rmi_result);
+            if ( rc != 0 )
+                goto err;
+            d->arch.cca.build_phase = ARM_CCA_BUILD_BUILD_RTTS;
+            fallthrough;
+
+        case ARM_CCA_BUILD_BUILD_RTTS:
+            rc = arm_cca_build_rtts(d, base, nr_pages, rmi_result);
+            if ( rc == -ERESTART )
+                return rc;
+            if ( rc != 0 )
+                goto err;
+            d->arch.cca.build_phase = ARM_CCA_BUILD_CREATE_DATA;
+            fallthrough;
+
+        case ARM_CCA_BUILD_CREATE_DATA:
+            rc = arm_cca_create_data_pages(d, base_gfn, nr_pages, rmi_result);
+            if ( rc == -ERESTART )
+                return rc;
+            if ( rc != 0 )
+                goto err;
+            d->arch.cca.build_phase = ARM_CCA_BUILD_CREATE_REC;
+            fallthrough;
+
+        case ARM_CCA_BUILD_CREATE_REC:
+            rc = arm_cca_create_recs(d, rmi_result);
+            if ( rc != 0 )
+                goto err;
+            d->arch.cca.build_phase = ARM_CCA_BUILD_ACTIVATE;
+            fallthrough;
+
+        case ARM_CCA_BUILD_ACTIVATE:
+            rc = arm_cca_rmi_realm_activate(d->arch.cca.rd, &res);
+            rc = arm_cca_build_record_rmi_failure(rmi_result, rc, &res);
+            if ( rc != 0 )
+                goto err;
+            d->arch.cca.build_phase = ARM_CCA_BUILD_BIND;
+            fallthrough;
+
+        case ARM_CCA_BUILD_BIND:
+            d->arch.cca.realm_active = true;
+            arm_cca_build_state_clear(d);
+            return 0;
+
+        case ARM_CCA_BUILD_ABORT:
+            abort_rmi_result = d->arch.cca.build_abort_rmi_result;
+            rc = arm_cca_domain_finalize_abort(d);
+            if ( rc == -ERESTART )
+                return rc;
+            /* The original build error is gone after a continuation. */
+            if ( rc == 0 )
+                rc = -EIO;
+            if ( rc == -EIO && rmi_result )
+                *rmi_result = abort_rmi_result;
+            return rc;
+
+        default:
+            rc = -EINVAL;
+            goto err;
+        }
+    }
+
+err:
+    d->arch.cca.build_abort_rmi_result = rmi_result ? *rmi_result : 0;
+    d->arch.cca.build_phase = ARM_CCA_BUILD_ABORT;
+
+    abort_rc = arm_cca_domain_finalize_abort(d);
+    if ( abort_rc == -ERESTART )
+        return abort_rc;
+
+    return abort_rc ?: rc;
+}
diff --git a/xen/arch/arm/cca/state.c b/xen/arch/arm/cca/state.c
index 72dbb83841d7..d85a20a9e7d2 100644
--- a/xen/arch/arm/cca/state.c
+++ b/xen/arch/arm/cca/state.c
@@ -32,6 +32,13 @@ static void arm_cca_reset_domain_state(struct domain *d)
     d->arch.cca.nr_data_pages = 0;
     d->arch.cca.relinquish_data_idx = 0;
     d->arch.cca.realm_terminate_done = false;
+    d->arch.cca.build_phase = ARM_CCA_BUILD_NONE;
+    d->arch.cca.build_unrecoverable = false;
+    d->arch.cca.build_abort_rmi_result = 0;
+    d->arch.cca.build_base_gfn = INVALID_GFN;
+    d->arch.cca.build_nr_pages = 0;
+    d->arch.cca.build_next_ipa = INVALID_PADDR;
+    d->arch.cca.build_rtt_level = 0;
 
     for ( i = 0; i < ARRAY_SIZE(d->arch.cca.realm_sro_pages); ++i )
         d->arch.cca.realm_sro_pages[i] = NULL;
diff --git a/xen/arch/arm/include/asm/cca.h b/xen/arch/arm/include/asm/cca.h
index d69e95a10010..5e6b11a3693d 100644
--- a/xen/arch/arm/include/asm/cca.h
+++ b/xen/arch/arm/include/asm/cca.h
@@ -2,6 +2,7 @@
 #ifndef ARM_CCA_H
 #define ARM_CCA_H
 
+#include <xen/compiler.h>
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/types.h>
@@ -41,6 +42,18 @@ struct arm_cca_data_page_record {
     paddr_t pa;
 };
 
+enum arm_cca_build_phase {
+    ARM_CCA_BUILD_NONE,
+    ARM_CCA_BUILD_VALIDATE,
+    ARM_CCA_BUILD_CREATE_REALM,
+    ARM_CCA_BUILD_BUILD_RTTS,
+    ARM_CCA_BUILD_CREATE_DATA,
+    ARM_CCA_BUILD_CREATE_REC,
+    ARM_CCA_BUILD_ACTIVATE,
+    ARM_CCA_BUILD_BIND,
+    ARM_CCA_BUILD_ABORT,
+};
+
 struct arm_cca_domain_state {
     bool realm_active;
     paddr_t rd;
@@ -70,6 +83,15 @@ struct arm_cca_domain_state {
     /* Realm destruction state for domain_relinquish_resources(). */
     unsigned long relinquish_data_idx;
     bool realm_terminate_done;
+
+    /* Continuable Realm construction state for XEN_DOMCTL_arm_cca_op. */
+    enum arm_cca_build_phase build_phase;
+    bool build_unrecoverable;
+    uint64_t build_abort_rmi_result;
+    gfn_t build_base_gfn;
+    unsigned long build_nr_pages;
+    paddr_t build_next_ipa;
+    unsigned int build_rtt_level;
 };
 
 struct arm_cca_vcpu_state {
@@ -85,8 +107,12 @@ struct arm_cca_vcpu_state {
 void arm_cca_domain_init(struct domain *d);
 void arm_cca_domain_destroy(struct domain *d);
 int arm_cca_domain_relinquish_resources(struct domain *d);
+int arm_cca_domain_finalize(struct domain *d, gfn_t base_gfn,
+                            unsigned long nr_pages,
+                            uint64_t *rmi_result);
 
 void arm_cca_vcpu_init(struct vcpu *v);
+void noreturn arm_cca_vcpu_run(struct vcpu *v);
 void arm_cca_vcpu_destroy(struct vcpu *v);
 
 void *arm_cca_alloc_rec_run(void);
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:08:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:08:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309359.1580447 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqz-0004i7-GC; Fri, 15 May 2026 04:08:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309359.1580447; Fri, 15 May 2026 04:08:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjqz-0004h0-5V; Fri, 15 May 2026 04:08:49 +0000
Received: by outflank-mailman (input) for mailman id 1309359;
 Fri, 15 May 2026 04:08:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjqx-0004Hz-Ic
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:08:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjqw-0051ua-V3
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:08:46 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c36-bab6-0a2a0a5309dd-0a2a450c90bc-16
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:46 +0200
Received: from [52.101.228.84]
 (helo=OS0P286CU011.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c4b-62f1-0a2a450c0019-3465e45466d0-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:46 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYCP286MB3682.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 04:08:38 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CL7k9eAPnqhprtJL9gq5e6Uvy1RbIs0+K4ile2ZQU/gp19XQxVncZNG0Zvaog81fp/26iu51TNwGeWK6WjLPRlkWoq1WeVv7xM0CW27CI2tFEdRi+18Y8C8DKJ1GuKjsaOqoD2+KeVHd0mHl4AUiPr5SPY+cG4PDxIkj3qYgBs/WXYZR2YCOJTRp5Fgt8WMDCb2GQqMH2s+ftUZwOoybquSWEOcnZUwAwjEaqT8gOFK1T227mnLotM9sACIffpaZzaJoDA+GRYZ85NQtTng+r32GpOhRufUGmB34YErV/fbaHRATFG6wCPFy2z7PDnAoWEIiFtSzCeK3MBc9QpogIg==
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=j+krazXWRn2IuLifiPb7Tk1sDo3QwLMY07VSIfj1R9Q=;
 b=JLf/JE1AvzGG77CrgGrsAcnKvu/5rl5t7Dox0sd3K0A3AGhdJmn8Q4MH6idQDO4uuK1mU2DlPCJmnY4YMzc9euGhVFm4K6C5nchPOd+Ud9wU5J/N0rKmPRws9P6Un+lKcZ8kJiuHCInDEzH7rbEdurk/6xmihINLkcEMBWBgHRCr6VJ33KDh3haqXklaWVm408zfZg39q8rjvnWoC3nteTPO9EWPgen34TpirXfFIvEVYOS+j7LzcIfHE0m/iT05RlX3pIpH67F64QVXDakpjb+YEpuga+Ykk1nySmoM+vz2ReJwJ/ooqmf1J/LbWeiVVRQ3Y92RK0oTB987GV7R/A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=j+krazXWRn2IuLifiPb7Tk1sDo3QwLMY07VSIfj1R9Q=;
 b=MPyNR1bU7ii98HiiopIPDw1iBTNpNIDdn2KSbNyhCczDdz+Pk5z+S/ZNh3pr3iAHJHtmEBuZAqpFHetM2DMeIy4oDeG5d/FXoBoHbyeEHYjICYDrfD9j3tJW/kyIoHJhXSjhs2i4VltMZkF4/XHyARm2iS0UyZHyNxvTWSnbMW4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 24/26] xen/arm, tools: add domctl for Realm finalization
Date: Fri, 15 May 2026 13:08:10 +0900
Message-ID: <20260515040812.983626-25-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0208.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:385::18) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYCP286MB3682:EE_
X-MS-Office365-Filtering-Correlation-Id: ca413a0f-f277-485f-1923-08deb237a3bd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|366016|376014|7416014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	WjI/btMcqFI0QZ2fBdJ37mLXCzdesxaTukRozNf6fW3C7Jv6PWYPrna+RiuwA67yMwdzUOgpklLV0n38DogTCIsEOzoZP1mBguUy4fP/t0A6PoAMLwmRGvVF1MAVb+O0hD1bIFn0pL9/mimfZh/xNWo8DGySx/2VG/needNjvFLFWtHbOEtBa7pYM3CQS/m/Y0ttwFbU8dgz0WJ+xEBo+1osAfYhxEoXXpNp035ISkLjxEAKdH4lFw2cGbAgWIz4lRh4ohVv1v3qrrWnRd29h7vjQidWmsGCP5KOxXix76CC1FDdh/Cfh++PvxmmFkMLFvnLto1OU7nrBMpyBLdNXdPZNAY2Bwh09G7VP+a/WH6rD0xB7aYulIC+R/G5aefRk5lvyZd8K5Xsq6bKjlC81vvSetYGP+25T8RRk/W8ywis/qHQTNLQ/73u0q/M9mCX9Oi1n46u4E35aEtrQ0sXmDP/0Ft8O/NwZci58CufHfGS9g9LBZyD3uOgE86V5Wxjv8MzT0MPWDesKCp/0ip4SVcdIhpB0C+ZcH3p8Le1cz7y0BRLYCPtB6p3cPo9ybxqBSbTDPYHMcGqr3dMxjVkIOCPsoCXkCpDJep0XvwMAHvgz8qTIVd3iNzEn6DYBS9JfDnI2swEGNzOqKcCxrj99aGHbw/43XWaQAXxj88kytlk3fQTFu6+fVBuwNpfYEr+
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(366016)(376014)(7416014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?U+XofrQgZd0H5H47ZXWh21gtZoDVSe0ShuWC+pi9zFAohvZtQYe86iNuWIHi?=
 =?us-ascii?Q?QLiomfJkri71vUMivTAXZNHImCLsySaXkNBDmHhHbF1s0V7CoamaCZjajr7l?=
 =?us-ascii?Q?Q2VYMfTBKXIMuWqX3nHvCfzRAt4bROoS9nEOrWVKkfP/u3+31VJgIR4twOro?=
 =?us-ascii?Q?X0XFtjM1Ld6J+QcEnT8JEZQEb9f+cdv5fCUfKGYLXoXZQzkbBW8hrNr0PvPk?=
 =?us-ascii?Q?GVttty0OEf9O7Agq7TInHgRV7mBBrd71QhgtUYqFheMmuOSzcIdgDLsgwRyF?=
 =?us-ascii?Q?1xbG8JLACQNiq5oPtOXsQzzYQNsuuH83o4aiCTN96+86zqCk2Suz2uivBXdP?=
 =?us-ascii?Q?ZIJ7seVEa5z56CoBC6c53FsQQNlF3q5EU92aCAIl9wcu+VQzPgfakvoF5iwh?=
 =?us-ascii?Q?Nly0gGe/Adh7SAW/Mi3juTsHVfVMUMKqujvT53+9kS+CsrvufChPR4hle7zX?=
 =?us-ascii?Q?MPtxgPQRjcIUVqnEXrwNkpH++LstlKgw6dvjtgHOaH+FoeXTYOYjsW8+BMhH?=
 =?us-ascii?Q?TIPSxRvDrq8RhU0Akp715XlxV29BPdFY+lWwx0HugjSz1rSrC+w2/mg8IzUW?=
 =?us-ascii?Q?gNbgfiQGOwNM7L2v8XMCJcG8w98XJk6wfIRBhb1LdLQo7u0Z2dsKPB7cmTzK?=
 =?us-ascii?Q?aMNMP2K+kOMzzEFYcQEbWke5+rDl8goFJ+zMXm528Ee25lsBZkkPGTIVaJ+6?=
 =?us-ascii?Q?6MGqYIKJWVLhXaM9XJz3JQeh/BHgk9UafSGNP9pTzK66+zR7rSgHrTFrSUdO?=
 =?us-ascii?Q?/WjzkxOhmwQenVDtVy0OnaCmgMjOrXYwvgidDhYdx+dFdvbQhkR/oHfbTG0m?=
 =?us-ascii?Q?kzZdGFWSvSXlcqkzLxfPreUWoSn9FQ3kQyxZo8xb31/4NkmviSBHJn/Vq+T1?=
 =?us-ascii?Q?UuhQOOVD+P6JaMFFOgPvC4vQro3twGQFkaT2i9WYJhu+3VyVfvWmEldlD7nC?=
 =?us-ascii?Q?r4XxALkGiVxPGVpeacLxGBHUPDp2wxjuoGJYBG7Mf3yuK/r6j/aHylUbmqFQ?=
 =?us-ascii?Q?J9sZqUEQW9PN9oM/LqWAgmNxnDjSxg76rqF9IOircVJdnsAuxCjCd6+MVAFK?=
 =?us-ascii?Q?pujxmYdlfHnsBSL0LBRFClkvbbz/zCENYJ+q3fPM6lCs/0AlNVrNTyLneRX7?=
 =?us-ascii?Q?Ld1Mx6T1WQ4ZRh3TAhHe3CzXaTY6DV82R7RJN5sYQ8/FY6M/nfDeONNPc0gX?=
 =?us-ascii?Q?3cZndHYSwEFu79UEZqVTn8gHvCCmKX5wfAanCMS0V5M8Ew1sxdglXVQTufqR?=
 =?us-ascii?Q?Eot9e0GzW60BuNgTgBtW4OMIN2xnqYc/2SJDP9rmK2N46czVfxZezU8GL7nw?=
 =?us-ascii?Q?CA89c31yPhbGjOeUZwRK3r0bDdp2y8z5AoD64IuHBaypSz8ixJZ9wP1Dd07d?=
 =?us-ascii?Q?qWp5NDfe5NJTzkdx0LFJyc0+YBhqLomOZEURK/HYooBWJHdL3BDBDhO9Bj/w?=
 =?us-ascii?Q?8GkTw/bMODv2aCErysakD4U4goG9j50Lo5FDl8DUGk9RS6SWb1Y5R41F1Nzl?=
 =?us-ascii?Q?WkCpBmZYH0X+VscaowAljBzQ3IxmI9kpfsRiznIOZs7we67wIBL9+7gP2AnU?=
 =?us-ascii?Q?bquK087LCw0orDNMYfZSEXSaiN+BP6vwrOsRcri/xL7s8lg23dy/yAZu65T6?=
 =?us-ascii?Q?CLifDfqIwRglVoXPnn/M+gug2hCGrHq3catl39M5p8J/TmCIcMTZX2BZBhnD?=
 =?us-ascii?Q?DdGfgVyjrHZuQFPtM0YQG+bTzwYpeLCPKYtHSe1aVWqr51YpeTJemlBKvsUI?=
 =?us-ascii?Q?5PGtgSt98FdYw2oXemy/TV7AsdGeMZVRiWeUW5wr+oQN+mzNyTVd?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: ca413a0f-f277-485f-1923-08deb237a3bd
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:37.3843
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: CkEcoTcGI3uIg/Nj9WvUHfWEoISyR2xVINWWy+kZ2XKXN25J6kT4nA4hykN53YoJG1/+INXPZ3S3BMTACgE3XQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCP286MB3682
X-purgate-ID: tlsNG-d25034/1778818126-F487BCF5-411EC66D/0/0
X-purgate-type: clean
X-purgate-size: 8872

Add the domctl, libxc wrapper and XSM permission used by libxl to turn a
paused Arm guest into a Realm. RMI failures are reported back as-is.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 tools/flask/policy/modules/xen.if   |  1 +
 tools/include/xenctrl.h             | 12 ++++++
 tools/libs/ctrl/xc_domain.c         | 37 ++++++++++++++++++
 xen/arch/arm/domctl.c               | 60 +++++++++++++++++++++++++++++
 xen/include/public/domctl.h         | 12 ++++++
 xen/xsm/flask/hooks.c               |  3 ++
 xen/xsm/flask/policy/access_vectors |  2 +
 7 files changed, 127 insertions(+)

diff --git a/tools/flask/policy/modules/xen.if b/tools/flask/policy/modules/xen.if
index ef7d8f438c65..5eb2d98341e9 100644
--- a/tools/flask/policy/modules/xen.if
+++ b/tools/flask/policy/modules/xen.if
@@ -98,6 +98,7 @@ define(`create_domain_common', `
 		vuart_op
 		set_llc_colors
 		get_domain_state
+		arm_cca_op
 	};
 	allow $1 $2:security check_context;
 	allow $1 $2:shadow enable;
diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index d5dbf69c8968..149e15f7c531 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -808,6 +808,18 @@ int xc_dom_vuart_init(xc_interface *xch,
                       xen_pfn_t gfn,
                       evtchn_port_t *evtchn);
 
+/*
+ * Finalize a paused ARM domain as a Realm backed by RMM. The toolstack is
+ * expected to have already built a normal ARM guest image in the domain RAM.
+ *
+ * Returns 0 on success, or -1 with errno set. If Xen receives an RMI error
+ * result from RMM, libxc logs the raw RMI result and reports EPROTO.
+ */
+int xc_arm_cca_init_realm(xc_interface *xch,
+                          uint32_t domid,
+                          xen_pfn_t base_gfn,
+                          uint64_t nr_pages);
+
 /**
  * This function returns information about the XSAVE state of a particular
  * vcpu of a domain. If extstate->size and extstate->xfeature_mask are 0,
diff --git a/tools/libs/ctrl/xc_domain.c b/tools/libs/ctrl/xc_domain.c
index 01c0669c8863..3cb8da9cc07d 100644
--- a/tools/libs/ctrl/xc_domain.c
+++ b/tools/libs/ctrl/xc_domain.c
@@ -345,6 +345,43 @@ int xc_dom_vuart_init(xc_interface *xch,
     return rc;
 }
 
+int xc_arm_cca_init_realm(xc_interface *xch,
+                          uint32_t domid,
+                          xen_pfn_t base_gfn,
+                          uint64_t nr_pages)
+{
+    struct xen_domctl domctl = {};
+    int rc;
+
+    memset(&domctl, 0, sizeof(domctl));
+
+    domctl.cmd = XEN_DOMCTL_arm_cca_op;
+    domctl.domain = domid;
+    domctl.u.arm_cca_op.cmd = XEN_DOMCTL_ARM_CCA_OP_INIT_REALM;
+    domctl.u.arm_cca_op.flags = 0;
+    domctl.u.arm_cca_op.base_gfn = base_gfn;
+    domctl.u.arm_cca_op.nr_pages = nr_pages;
+
+    rc = do_domctl(xch, &domctl);
+    if ( rc < 0 )
+    {
+        if ( domctl.u.arm_cca_op.rmi_result )
+        {
+            xc_report_error(xch, XC_INTERNAL_ERROR,
+                            "xc_arm_cca_init_realm failed with raw RMI "
+                            "result 0x%llx",
+                            (unsigned long long)
+                            domctl.u.arm_cca_op.rmi_result);
+            errno = EPROTO;
+            return -1;
+        }
+
+        return rc;
+    }
+
+    return rc;
+}
+
 int xc_domain_getinfo_single(xc_interface *xch,
                              uint32_t domid,
                              xc_domaininfo_t *info)
diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c
index ad914c915f81..36461eeda633 100644
--- a/xen/arch/arm/domctl.c
+++ b/xen/arch/arm/domctl.c
@@ -16,6 +16,7 @@
 #include <xen/types.h>
 #include <xsm/xsm.h>
 #include <public/domctl.h>
+#include <public/sched.h>
 
 void arch_get_domain_info(const struct domain *d,
                           struct xen_domctl_getdomaininfo *info)
@@ -49,6 +50,42 @@ static int handle_vuart_init(struct domain *d,
     return rc;
 }
 
+static int handle_arm_cca_init_realm(struct domain *d,
+                                     struct xen_domctl_arm_cca_op *cca_op)
+{
+#ifdef CONFIG_ARM_CCA
+    uint64_t rmi_result = 0;
+    int rc;
+#endif
+
+    if ( cca_op->flags )
+        return -EINVAL;
+
+    cca_op->rmi_result = 0;
+
+#ifdef CONFIG_ARM_CCA
+    rc = arm_cca_domain_finalize(d, _gfn(cca_op->base_gfn),
+                                 cca_op->nr_pages, &rmi_result);
+
+    /*
+     * Once Realm data conversion starts, the original guest RAM image can no
+     * longer be trusted after a failed finalization attempt.
+     */
+    if ( rc == -EIO )
+        domain_shutdown(d, SHUTDOWN_crash);
+
+    if ( rc == -EIO && rmi_result )
+    {
+        cca_op->rmi_result = rmi_result;
+        return rc;
+    }
+
+    return rc;
+#else
+    return -EOPNOTSUPP;
+#endif
+}
+
 long arch_do_domctl(struct xen_domctl *domctl, struct domain *d,
                     XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
 {
@@ -177,6 +214,29 @@ long arch_do_domctl(struct xen_domctl *domctl, struct domain *d,
 
         return rc;
     }
+    case XEN_DOMCTL_arm_cca_op:
+    {
+        struct xen_domctl_arm_cca_op *cca_op = &domctl->u.arm_cca_op;
+
+        switch ( cca_op->cmd )
+        {
+        case XEN_DOMCTL_ARM_CCA_OP_INIT_REALM:
+        {
+            long rc = handle_arm_cca_init_realm(d, cca_op);
+
+            if ( rc == -ERESTART )
+                rc = hypercall_create_continuation(__HYPERVISOR_domctl,
+                                                   "h", u_domctl);
+            else if ( rc == -EIO && cca_op->rmi_result &&
+                      copy_to_guest(u_domctl, domctl, 1) )
+                rc = -EFAULT;
+
+            return rc;
+        }
+        default:
+            return -EINVAL;
+        }
+    }
     case XEN_DOMCTL_dt_overlay:
         return dt_overlay_domctl(d, &domctl->u.dt_overlay);
     default:
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 8f6708c0a7cd..2562647d93d3 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -1201,6 +1201,16 @@ struct xen_domctl_vuart_op {
                                  */
 };
 
+/* XEN_DOMCTL_arm_cca_op */
+struct xen_domctl_arm_cca_op {
+#define XEN_DOMCTL_ARM_CCA_OP_INIT_REALM  0
+        uint32_t cmd;              /* IN - XEN_DOMCTL_ARM_CCA_OP_* */
+        uint32_t flags;            /* IN - reserved, must be zero */
+        uint64_aligned_t base_gfn;   /* IN - first guest RAM gfn to protect */
+        uint64_aligned_t nr_pages;   /* IN - number of 4K pages to protect */
+        uint64_aligned_t rmi_result; /* OUT - raw RMI result on -EIO */
+};
+
 /* XEN_DOMCTL_vmtrace_op: Perform VM tracing operations. */
 struct xen_domctl_vmtrace_op {
     uint32_t cmd;           /* IN */
@@ -1368,6 +1378,7 @@ struct xen_domctl {
 #define XEN_DOMCTL_gsi_permission                88
 #define XEN_DOMCTL_set_llc_colors                89
 #define XEN_DOMCTL_get_domain_state              90 /* stable interface */
+#define XEN_DOMCTL_arm_cca_op                    91
 #define XEN_DOMCTL_gdbsx_guestmemio            1000
 #define XEN_DOMCTL_gdbsx_pausevcpu             1001
 #define XEN_DOMCTL_gdbsx_unpausevcpu           1002
@@ -1429,6 +1440,7 @@ struct xen_domctl {
         struct xen_domctl_monitor_op        monitor_op;
         struct xen_domctl_psr_alloc         psr_alloc;
         struct xen_domctl_vuart_op          vuart_op;
+        struct xen_domctl_arm_cca_op        arm_cca_op;
         struct xen_domctl_vmtrace_op        vmtrace_op;
         struct xen_domctl_paging_mempool    paging_mempool;
 #if defined(__arm__) || defined(__aarch64__)
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 28522dcbd271..f95552992a26 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -805,6 +805,9 @@ static int cf_check flask_domctl(struct domain *d, unsigned int cmd,
     case XEN_DOMCTL_vuart_op:
         return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__VUART_OP);
 
+    case XEN_DOMCTL_arm_cca_op:
+        return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__ARM_CCA_OP);
+
     case XEN_DOMCTL_get_cpu_policy:
         return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__GET_CPU_POLICY);
 
diff --git a/xen/xsm/flask/policy/access_vectors b/xen/xsm/flask/policy/access_vectors
index bbb9c117ec4a..dee895bef673 100644
--- a/xen/xsm/flask/policy/access_vectors
+++ b/xen/xsm/flask/policy/access_vectors
@@ -253,6 +253,8 @@ class domain2
     set_llc_colors
 # XEN_DOMCTL_get_domain_state
     get_domain_state
+# XEN_DOMCTL_arm_cca_op
+    arm_cca_op
 }
 
 # Similar to class domain, but primarily contains domctls related to HVM domains
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:11:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:11:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309421.1580465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjtf-0000FZ-90; Fri, 15 May 2026 04:11:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309421.1580465; Fri, 15 May 2026 04:11:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjtf-0000FM-5T; Fri, 15 May 2026 04:11:35 +0000
Received: by outflank-mailman (input) for mailman id 1309421;
 Fri, 15 May 2026 04:11:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjtd-0008TI-UM
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:11:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjtd-007AXG-AM
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:11:33 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069cda-5cb7-0a2a0a5109dd-0a2a450291b6-14
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:11:33 +0200
Received: from [40.107.74.73]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c3a-af86-0a2a45020019-286b4a49ea93-7
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:32 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB3981.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:29 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Vzp0DKcA1h0AGCQoph9JD1OGGeJohyGDop9/XptVxLEtF9MtJeztTMNgc78XH64CgSHd6QwjoWlYdzfuTAXt5ygb+Y7Zn5dkDsHQbud9hp6gHRycqpfHnhU92r8abLgSqmfx5G5JJ3cuYfPhjk1zUc1/sxe2J4pJ0U0+Q3Hv0BSLOMZMEQ7OYs5LHrYPTwbemlCi2AF25J5A/vLT/w5zx+ZxBES4wGx7r7eJJ6oXWhR9TaEs4yqiK8GtNebb8c5pVYbeBBijQDRhTZJyH4z8g8h0VAOg4oQX4c7UzC+WGaajOjyiIUG7hcO4w/3FJqO6vPw1teiFEzMd1buk0c9zyg==
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=K4GVaM6Ba/cf6m/qACnohRbb9uPse9KRbMYMMHWB/6M=;
 b=OB18H0zIh8mTGRWoi5E35Tj6w32vtVqmsCoyEaq5WWko8EumtMKq2p+SLDO5XDsz99bX21EzMCplZKU2JssBngRkQ5Fv0gxpKFwLtPRzEp2Q2D/YAmnJlA27BMLnokZWXQIYE2wkjq9ghjVMDvY2GNpwlk3kEjxp1xUm2JTnaTInqepB6ZO44CiaYB2/p7Xmn0q2KbcqvfJzKxJXwIL3M3PXpZrBFAXyClOElOvvziMgiOiw2dTSA4Fa3gOigWiyrAwyYE5SFIRTB9sczgAwXObGvnii3w6izCAFW6WtKGM1vX+Zb10CSmxAVKFrl4QqGl3CjCbAlBOXVsYRrf1O/w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=K4GVaM6Ba/cf6m/qACnohRbb9uPse9KRbMYMMHWB/6M=;
 b=FU8zoInqj974caCRTisQEA3Bygdx6b2i7111pWBHoFnHlU5F5q2l1bdjvoaToXyQvlrdwfYLCgVe7RRVqvvcPjYnwps1E2sO/7QqXq81BGetOyMpU0xgdTwbgLdT3+Rl/OwDq0Axq3WmQxwACjY8AG0WapiO7NbwOsCLYcvwF9g=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 14/26] xen/arm/cca: validate Realm construction inputs
Date: Fri, 15 May 2026 13:08:00 +0900
Message-ID: <20260515040812.983626-15-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY6P286CA0015.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:3b9::12) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB3981:EE_
X-MS-Office365-Filtering-Correlation-Id: 5ab2625d-3e26-4aad-b152-08deb2379f25
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	aihSdoJdb3v91Qyr/Y1S1HMn4l8pCP5kPB4BtPyIqrbpLLLOizR59eKjmsV9A9NGlChig78LtQzc2HrY38zQ4PFSkJuzL3QOaAB7prSMrS+KrtAGM5Y5/YVyuXfNrysr9lA2cBL68KqCd7C4z10XrL11xynhrb3PHcdM1IqkKeIa7h9rc5ScWU4QM4ZSeGIhoLiONvORVDIYRMxo+U1z1rOfy/BGIPsShnJFeWnCoapq/g1Wo2kq3uviPejQvb4ehFNiWkN9iUDi0BkauC4GC+Y7CXKTakkxXQ5W9WAHMrM1KxGj4z44u/Nb/tbNxDVIdGJW0COixymXWvJqUNFQlClkPK7pXn26037GHylItmKFv39o1HFYLpZKpmE+vu1V8pEnFh2LuMGnPzY1pf/Uqu/3EasB5nTqXN6Nk5JHyICxV+kHfwfr6zgRXrnJBT8xwToJ1I22/hHwIz+AoGMzjmX1n/PPdekrWYRNoJBF+8zXk13xLDcFrzFlMFARVUBzSwtd+tH20lCfX9Rfh3OC5X2948t1+YBU/IhBQxXNsAuzg8/NfjfvmJiZAzWbBHr9UvA4Murix9MKKtM4hbZSx9LOwFkLr3LAzuiHpFzr5zyejBfU+ROtf0YyzAVN8LpHi3e1FvBKzDpCMMgD2B9KC19ezAGjJaEroS88j7TNNmrXnQ4Yl3dhEbbFMqhs1Jn1
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Uh9OEppHmW7KV3wU6PlB2OasRrFxf34qvVqTbP2VYThslsIJP2wlHUdyuiw4?=
 =?us-ascii?Q?bJPdZJ+9QZqlGQfcBcw1IybyOt/7L1A+dfte9KZnvHQHfzZh5nl0+3nhElaG?=
 =?us-ascii?Q?fTzAG/rwDITYE8TlTRNgtyAfKqyAeLchra7dpu+MTD33wyWZ5Njl9iLkC6Og?=
 =?us-ascii?Q?RaxtkGOcZte4Zmx7w8tXtAtCkMaVuB1eyK6CHFgajyvXs4xf8Meaes3H9ICx?=
 =?us-ascii?Q?OozjIjW2ukmRz8g6OvmSbxcXcmfSVBv137VvYUTz/8Gb4miu4Wj254esHThU?=
 =?us-ascii?Q?8w6Uu11GU2I91kMwFd+YxM0h1NGnLrn8z15JzuqbllW/Bu3nGY18n7dsVzS0?=
 =?us-ascii?Q?tyCPB3hku2MzTWU/BfjFfsqUzAAzyQrd6yF65E6dGXArJsmVzd7k2lfAKNW+?=
 =?us-ascii?Q?DeO+vvSaMBfevUNYN+/C1czewvAtJCI/FGXYgQYNiG41LncZp0iLD//lHoe8?=
 =?us-ascii?Q?LFx6l/Uzon0HyxRh+3kIU6sTS5rszGCzpJXt7AD5uuiA6832RRM9T4FMk5L1?=
 =?us-ascii?Q?I8H4EMupfmkSFTGAQ5HAxDO/ismAKcA/oH+SpYhVFt2R0H/ngfgiE3pc0UO1?=
 =?us-ascii?Q?Vb3bPJkWRoGqMbTaR47vD2gz8IOkPwubrJNYyRhS6EVTDB2hCotsALU+cma5?=
 =?us-ascii?Q?4bT3htG6US/jztIQLFaCgu/VeMf7knGXYJPygPAWf+5hpGXMbaECYrwMLt3w?=
 =?us-ascii?Q?loGsCHVvzQbZs41+HrA0k4XFMOVeYXymD16efJ+OBeahvObqkjizA2tjHZwb?=
 =?us-ascii?Q?gd3DGQKfx5BtpwkFAhjlnbHjMIzPC+H+MiWVGMw01rFNJLXf8Yrru8ET7n9K?=
 =?us-ascii?Q?/IphHFYF1yELmNRGXZBiHbmr3gTdQfJL+6T/cXxF9W9XxEkP2J/IV2PAiF44?=
 =?us-ascii?Q?7gl5zWdfXlhO5hxPnLLpWNKZrA50jYCxT5vIP8AlQFooj5bAO4IQ4u1/yvpn?=
 =?us-ascii?Q?d2QpiC+mHlqi5v95dmW+XwXBrgg1vI5fak9oznjcdGKY10fInYMCCmqxVmPk?=
 =?us-ascii?Q?aAr8IJmsNnnDAOmS4tbc3KGJK3CApt9bXXCpg66M/OfqHAI2yFUSGxrMFqWR?=
 =?us-ascii?Q?nHCJe3/87VZ6yIgbU0Yyx/1+RVOv2yPe+AIIjScHAbBxRxzZb1BMyFcyPRqV?=
 =?us-ascii?Q?EXVZUg+bGUpCInaFjSsz37MfLeqtli7bXrvNCO7Lv2lJKoMAaZ0dzij1KcEZ?=
 =?us-ascii?Q?G/e8eIHEoTlv3djETxFZ2+ifQiz40ftewYputlk3VARZa7ZwmD5gpvEar7jo?=
 =?us-ascii?Q?NZxnHR1jtKjFwcOhf8fBMGdV0WMkvAevKZI8Ti4oulDjs5Yb0My/MjZ/1xGB?=
 =?us-ascii?Q?Nukq/7SZz8Fl/STDr4le67JCuuhHSy+avy3SK4g5oaFF0TOV9USVen3tGrEf?=
 =?us-ascii?Q?87kF8deA6y3WvHSj5Ck4ebV0SXaiUKnsHQDsvo2nJxC8EqusgkNwzGCOOMsz?=
 =?us-ascii?Q?RPKA2J06jcF47zP8T6O/qXxyRGymBXbTMjXuFJm+gyZDPIHSMUo0WY+ILSQe?=
 =?us-ascii?Q?BnFbzMmP4DMYhO6b4YJ4l5JpyHaCJ+oQlV0lWIHquTUCs+rKyQr6qoqaPVR1?=
 =?us-ascii?Q?/cHEdd8oY3FX+12WUJXNccr0l1K43sgFhu1ohZWNkUdrKvLieSBA15Ty0uY3?=
 =?us-ascii?Q?VUMArqTU59a62sgodrK5adwfGY/rvce7jilVFFBNEX4O8agpXY5wm1TUDkr7?=
 =?us-ascii?Q?u2nbXM4DsYvkjQ4/Pppr2PI/sMhjUWna4nW3GGp9GixXjaEX9osp87zlKzwi?=
 =?us-ascii?Q?HB8C5JYpU/gUHsIzhz85KkdgJlO01VjoGV9eQjuFltjC3Kh1V4BH?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 5ab2625d-3e26-4aad-b152-08deb2379f25
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:29.6865
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mCFhhMx0nBjgUIFtyN61KX/ZkYDJVqjGJTOJE6Iy881LAEkF6bvI9CokLXxuo4XUQk7ll4S02YcmlWDobZSatQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB3981
X-purgate-ID: tlsNG-720697/1778818113-A8145161-891DA07A/0/0
X-purgate-type: clean
X-purgate-size: 13840

Check the domain shape, RAM layout and RMM feature set before starting a
Realm build. The domctl range is treated as the protected Realm RAM.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/build.c | 411 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 411 insertions(+)
 create mode 100644 xen/arch/arm/cca/build.c

diff --git a/xen/arch/arm/cca/build.c b/xen/arch/arm/cca/build.c
new file mode 100644
index 000000000000..f333813e10a0
--- /dev/null
+++ b/xen/arch/arm/cca/build.c
@@ -0,0 +1,411 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/errno.h>
+#include <xen/lib.h>
+#include <xen/mm.h>
+#include <xen/domain_page.h>
+#include <xen/sched.h>
+#include <xen/sizes.h>
+#include <xen/xmalloc.h>
+
+#include <asm/arm64/sve.h>
+#include <asm/cca.h>
+#include <asm/domain.h>
+#include <asm/event.h>
+#include <asm/p2m.h>
+#include <asm/vpl011.h>
+
+#include "rmi.h"
+#include "sro.h"
+
+/*
+ * Xen CCA currently accepts only 4KB RMI granules.  With 512 entries per RTT,
+ * the table spans here are 512GB, 1GB, and 2MB respectively.
+ */
+#define ARM_CCA_L0_TABLE_SPAN   GB(512)
+#define ARM_CCA_L1_TABLE_SPAN   GB(1)
+#define ARM_CCA_L2_TABLE_SPAN   SZ_2M
+#define ARM_CCA_REALM_MAX_PAGES (GUEST_RAM0_SIZE >> PAGE_SHIFT)
+#define ARM_CCA_BUILD_PREEMPT_TABLES       64U
+#define ARM_CCA_BUILD_FORCE_PREEMPT_TABLES 256U
+#define ARM_CCA_BUILD_PREEMPT_PAGES        1024UL
+#define ARM_CCA_BUILD_FORCE_PREEMPT_PAGES  4096UL
+#define ARM_CCA_REALM_MAX_IPA_BITS_WITHOUT_LPA2 48U
+
+static struct page_info *arm_cca_alloc_host_page(void)
+{
+    struct page_info *pg;
+    void *va;
+
+    pg = alloc_domheap_page(NULL, 0);
+    if ( !pg )
+        return NULL;
+
+    va = map_domain_page(page_to_mfn(pg));
+    clear_page(va);
+    unmap_domain_page(va);
+
+    return pg;
+}
+
+static unsigned int arm_cca_feature_field(unsigned long features,
+                                          unsigned int shift,
+                                          unsigned int width)
+{
+    return arm_cca_rmi_field_get(features, shift, width);
+}
+
+static bool arm_cca_feature_is_true(unsigned long features, unsigned int shift)
+{
+    return arm_cca_feature_field(features, shift, 1U) ==
+           ARM_CCA_RMI_FEATURE_TRUE;
+}
+
+static int arm_cca_build_record_rmi_failure(uint64_t *rmi_result, int rc,
+                                            const struct arm_smccc_res *res)
+{
+    uint64_t result = arm_cca_rmi_result(res);
+
+    if ( rc != 0 && rmi_result &&
+         (arm_cca_rmi_status_is_error(result) ||
+          arm_cca_rmi_result_is_smccc_unknown(result)) )
+        *rmi_result = result;
+
+    return rc;
+}
+
+static bool arm_cca_undelegate_build_page(struct domain *d,
+                                          struct page_info *pg)
+{
+    paddr_t pa = page_to_maddr(pg);
+    int rc = arm_cca_undelegate_granule(pa);
+
+    if ( rc != 0 )
+    {
+        /* No successful undelegation means no RMM wipe guarantee. */
+        printk(XENLOG_ERR
+               "%pd: ARM CCA: failed to undelegate abandoned granule %#"
+               PRIpaddr "\n",
+               d, pa);
+        return false;
+    }
+
+    return true;
+}
+
+/*
+ * Return true when the caller can forget pg.  A false return means
+ * undelegation failed, so the caller must keep the page tracked.
+ */
+static bool arm_cca_free_build_page(struct domain *d, struct page_info *pg,
+                                    bool delegated)
+{
+    if ( !pg )
+        return true;
+
+    if ( delegated && !arm_cca_undelegate_build_page(d, pg) )
+        return false;
+
+    free_domheap_page(pg);
+
+    return true;
+}
+
+static void arm_cca_free_or_abandon_build_page(struct domain *d,
+                                               struct page_info *pg,
+                                               bool delegated)
+{
+    if ( !arm_cca_free_build_page(d, pg, delegated) )
+        page_list_add_tail(pg, &d->arch.cca.abandoned_pages);
+}
+
+static bool arm_cca_gfn_range_contains(gfn_t base, gfn_t end,
+                                       gfn_t start, gfn_t next)
+{
+    return gfn_x(base) <= gfn_x(start) && gfn_x(next) <= gfn_x(end);
+}
+
+static bool arm_cca_gfn_range_overlaps(gfn_t base, gfn_t end,
+                                       gfn_t start, gfn_t next)
+{
+    return gfn_x(start) < gfn_x(end) && gfn_x(base) < gfn_x(next);
+}
+
+/*
+ * Initial Realm support has no separate private/shared memory metadata.
+ * Treat the domctl range as the whole protected Realm RAM contract: every
+ * mapped entry in the range must be writable RAM, and no other valid guest
+ * mapping may remain outside it apart from Arm magic pages, which are not
+ * exposed through the Realm device tree.
+ *
+ * p2m_get_entry() can return block mappings, so reject entries which only
+ * partly overlap the Realm RAM range. Otherwise one p2m block could make
+ * memory outside the measured/protected range guest-visible.
+ */
+static int arm_cca_validate_ram_layout(struct domain *d, gfn_t base_gfn,
+                                       unsigned long nr_pages)
+{
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+    gfn_t end_gfn = gfn_add(base_gfn, nr_pages);
+    gfn_t magic_base = _gfn(GUEST_MAGIC_BASE >> PAGE_SHIFT);
+    gfn_t magic_end = _gfn((GUEST_MAGIC_BASE + GUEST_MAGIC_SIZE) >>
+                           PAGE_SHIFT);
+    gfn_t gfn, end;
+    int rc = 0;
+
+    p2m_read_lock(p2m);
+
+    gfn = p2m->lowest_mapped_gfn;
+    end = gfn_add(p2m->max_mapped_gfn, 1);
+
+    while ( gfn_x(gfn) < gfn_x(end) )
+    {
+        unsigned int order;
+        p2m_type_t t;
+        bool valid;
+        mfn_t mfn = p2m_get_entry(p2m, gfn, &t, NULL, &order, &valid);
+        gfn_t next = gfn_next_boundary(gfn, order);
+
+        if ( arm_cca_gfn_range_overlaps(base_gfn, end_gfn, gfn, next) )
+        {
+            if ( !valid || mfn_eq(mfn, INVALID_MFN) ||
+                 t != p2m_ram_rw ||
+                 !arm_cca_gfn_range_contains(base_gfn, end_gfn, gfn, next) )
+            {
+                rc = -EINVAL;
+                break;
+            }
+        }
+        else if ( valid && !mfn_eq(mfn, INVALID_MFN) &&
+                  !arm_cca_gfn_range_contains(magic_base, magic_end, gfn,
+                                              next) )
+        {
+            rc = -EINVAL;
+            break;
+        }
+
+        gfn = next;
+    }
+
+    p2m_read_unlock(p2m);
+
+    return rc;
+}
+
+static int arm_cca_validate_domain(struct domain *d, gfn_t base_gfn,
+                                   unsigned long nr_pages)
+{
+    unsigned int i;
+    int rc;
+
+    if ( is_hardware_domain(d) )
+        return -EOPNOTSUPP;
+
+    if ( !is_hvm_domain(d) )
+        return -EOPNOTSUPP;
+
+    if ( is_32bit_domain(d) )
+        return -EOPNOTSUPP;
+
+    if ( d->max_vcpus == 0 || d->vcpu[0] == NULL )
+        return -EOPNOTSUPP;
+
+    for ( i = 1; i < d->max_vcpus; ++i )
+        if ( d->vcpu[i] == NULL )
+            return -EOPNOTSUPP;
+
+    if ( d->arch.vgic.version != GIC_V3 )
+        return -EOPNOTSUPP;
+
+    if ( d->creation_finished )
+        return -EPERM;
+
+    if ( is_domain_realm(d) )
+        return -EEXIST;
+
+    if ( domain_has_vpl011(d) &&
+         !IS_ENABLED(CONFIG_ARM_CCA_REALM_DEBUG_VUART) )
+    {
+        printk(XENLOG_G_ERR
+               "ARM CCA: Realm VUART debug console is disabled for %pd\n",
+               d);
+        return -EOPNOTSUPP;
+    }
+
+    if ( gfn_x(base_gfn) != (GUEST_RAM_BASE >> PAGE_SHIFT) )
+        return -EOPNOTSUPP;
+
+    if ( nr_pages == 0 || nr_pages > ARM_CCA_REALM_MAX_PAGES )
+        return -EINVAL;
+
+    /*
+     * domain_tot_pages() also includes Arm magic pages outside guest RAM, so
+     * it is only a sanity upper bound for the protected RAM range.
+     */
+    if ( nr_pages > domain_tot_pages(d) )
+        return -EINVAL;
+
+    rc = arm_cca_validate_ram_layout(d, base_gfn, nr_pages);
+    if ( rc != 0 )
+        return rc;
+
+    return 0;
+}
+
+static int arm_cca_validate_realm_features0(struct domain *d)
+{
+    unsigned long features0 = d->arch.cca.rmi_features0;
+    unsigned int max_ipa_bits;
+    unsigned int num_bps, num_wps;
+
+    max_ipa_bits = arm_cca_feature_field(
+        features0, ARM_CCA_RMI_FEATURE_REGISTER_0_S2SZ_SHIFT,
+        ARM_CCA_RMI_FEATURE_REGISTER_0_S2SZ_WIDTH);
+    if ( p2m_ipa_bits > max_ipa_bits )
+    {
+        printk(XENLOG_G_ERR
+               "ARM CCA: %pd requires %u-bit IPA, RMM supports %u-bit IPA\n",
+               d, p2m_ipa_bits, max_ipa_bits);
+        return -EOPNOTSUPP;
+    }
+
+    /*
+     * Xen CCA currently leaves RmiRealmParams::flags0.lpa2, sve, and pmu
+     * clear.  Reject configurations that would need those Realm features
+     * instead of silently creating a Realm with different behavior.
+     */
+    if ( p2m_ipa_bits > ARM_CCA_REALM_MAX_IPA_BITS_WITHOUT_LPA2 )
+    {
+        if ( !arm_cca_feature_is_true(
+                 features0, ARM_CCA_RMI_FEATURE_REGISTER_0_LPA2_SHIFT) )
+            printk(XENLOG_G_ERR
+                   "ARM CCA: %pd requires LPA2 for %u-bit IPA, "
+                   "but RMM does not report LPA2 support\n",
+                   d, p2m_ipa_bits);
+        else
+            printk(XENLOG_G_ERR
+                   "ARM CCA: %pd requires LPA2 for %u-bit IPA, "
+                   "but Xen CCA does not enable Realm LPA2 yet\n",
+                   d, p2m_ipa_bits);
+        return -EOPNOTSUPP;
+    }
+
+    if ( is_sve_domain(d) )
+    {
+        if ( !arm_cca_feature_is_true(
+                 features0, ARM_CCA_RMI_FEATURE_REGISTER_0_SVE_SHIFT) )
+            printk(XENLOG_G_ERR
+                   "ARM CCA: %pd requests SVE, "
+                   "but RMM does not report SVE support\n",
+                   d);
+        else
+        {
+            unsigned int max_sve_vl = arm_cca_feature_field(
+                features0, ARM_CCA_RMI_FEATURE_REGISTER_0_SVE_VL_SHIFT,
+                ARM_CCA_RMI_FEATURE_REGISTER_0_SVE_VL_WIDTH);
+
+            printk(XENLOG_G_ERR
+                   "ARM CCA: %pd requests SVE; RMM supports %u-bit VL, "
+                   "but Xen CCA does not enable Realm SVE yet\n",
+                   d, (max_sve_vl + 1U) * SVE_VL_MULTIPLE_VAL);
+        }
+        return -EOPNOTSUPP;
+    }
+
+    num_bps = arm_cca_feature_field(
+        features0, ARM_CCA_RMI_FEATURE_REGISTER_0_NUM_BPS_SHIFT,
+        ARM_CCA_RMI_FEATURE_REGISTER_0_NUM_BPS_WIDTH);
+    if ( num_bps == 0 )
+    {
+        printk(XENLOG_G_ERR
+               "ARM CCA: %pd RMM reports reserved NUM_BPS value 0\n", d);
+        return -EOPNOTSUPP;
+    }
+
+    num_wps = arm_cca_feature_field(
+        features0, ARM_CCA_RMI_FEATURE_REGISTER_0_NUM_WPS_SHIFT,
+        ARM_CCA_RMI_FEATURE_REGISTER_0_NUM_WPS_WIDTH);
+    if ( num_wps == 0 )
+    {
+        printk(XENLOG_G_ERR
+               "ARM CCA: %pd RMM reports reserved NUM_WPS value 0\n", d);
+        return -EOPNOTSUPP;
+    }
+
+    if ( d->options & XEN_DOMCTL_CDF_vpmu )
+    {
+        if ( !arm_cca_feature_is_true(
+                 features0, ARM_CCA_RMI_FEATURE_REGISTER_0_PMU_SHIFT) )
+            printk(XENLOG_G_ERR
+                   "ARM CCA: %pd requests PMU, "
+                   "but RMM does not report PMU support\n",
+                   d);
+        else
+        {
+            unsigned int num_ctrs = arm_cca_feature_field(
+                features0,
+                ARM_CCA_RMI_FEATURE_REGISTER_0_PMU_NUM_CTRS_SHIFT,
+                ARM_CCA_RMI_FEATURE_REGISTER_0_PMU_NUM_CTRS_WIDTH);
+
+            printk(XENLOG_G_ERR
+                   "ARM CCA: %pd requests PMU; RMM supports %u counters, "
+                   "but Xen CCA does not enable Realm PMU yet\n",
+                   d, num_ctrs);
+        }
+        return -EOPNOTSUPP;
+    }
+
+    return 0;
+}
+
+static int arm_cca_validate_realm_features1(struct domain *d)
+{
+    unsigned long features1 = d->arch.cca.rmi_features1;
+    unsigned int max_recs_order, max_recs;
+
+    if ( !arm_cca_feature_is_true(
+             features1,
+             ARM_CCA_RMI_FEATURE_REGISTER_1_RMI_GRAN_SZ_4KB_SHIFT) )
+    {
+        printk(XENLOG_G_ERR
+               "ARM CCA: %pd requires 4KB RMI granules, "
+               "but RMM does not report 4KB RMI granule support\n",
+               d);
+        return -EOPNOTSUPP;
+    }
+
+    if ( !arm_cca_feature_is_true(
+             features1, ARM_CCA_RMI_FEATURE_REGISTER_1_HASH_SHA_256_SHIFT) )
+    {
+        printk(XENLOG_G_ERR
+               "ARM CCA: %pd requires SHA-256 Realm measurements, "
+               "but RMM does not report SHA-256 support\n",
+               d);
+        return -EOPNOTSUPP;
+    }
+
+    max_recs_order = arm_cca_feature_field(
+        features1, ARM_CCA_RMI_FEATURE_REGISTER_1_MAX_RECS_ORDER_SHIFT,
+        ARM_CCA_RMI_FEATURE_REGISTER_1_MAX_RECS_ORDER_WIDTH);
+    max_recs = (1U << max_recs_order) - 1U;
+    if ( d->max_vcpus > max_recs )
+    {
+        printk(XENLOG_G_ERR
+               "ARM CCA: %pd requires %u RECs, RMM supports %u RECs\n",
+               d, d->max_vcpus, max_recs);
+        return -EOPNOTSUPP;
+    }
+
+    return 0;
+}
+
+static int arm_cca_validate_realm_features(struct domain *d)
+{
+    int rc;
+
+    rc = arm_cca_validate_realm_features0(d);
+    if ( rc != 0 )
+        return rc;
+
+    return arm_cca_validate_realm_features1(d);
+}
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:11:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:11:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309420.1580457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjte-0008TQ-2q; Fri, 15 May 2026 04:11:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309420.1580457; Fri, 15 May 2026 04:11:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjtd-0008TJ-VI; Fri, 15 May 2026 04:11:33 +0000
Received: by outflank-mailman (input) for mailman id 1309420;
 Fri, 15 May 2026 04:11:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjtc-0008T3-Nb
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:11:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjtc-0052Iz-47
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:11:32 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069cab-e002-0a2a0a5209dd-0a2a4503c7a4-32
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:11:32 +0200
Received: from [52.101.228.127]
 (helo=OS0P286CU011.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c3b-672d-0a2a45030019-3465e47fdc14-5
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:31 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB5257.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:163::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:26 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Xs0ySpsXho/Q/PJkUY8kHQOPF8BiMJOyVyG1On69+0sLGBFGdWPDQDlaF5wp2mr3rulYxR9wP0SfbQRvHLhMcZlyjXF78a4zoXU6WlPKYyBoq9FTuE0irpt36iprv6ZNe26nsfmNzmq/UcU0kZMyayvnixvCmmzpX/GMs9XGLDR90CYd9ac5t++2Gd5e5DLQCO6F6o1jfslEaVOEFYOXCQmH/2cgNZQJ+Xa8VZ3bJ7m0Xpa7M7fHUQW5iQQmClwS7eOvigCW3vAOtgyb9bH/Katua+bo35oJqnG7xXjhqadUHX7UJ4jLsRgkO5FJkqe/iCZY5Zxx128GnX8GLaUTbg==
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=iQozeGS6NXue2xy04GwS38eB6n43tpIm85e71KD3+fs=;
 b=BQw0NCinlv8YvV9NUnVME52qwAL+Us66Bxia60rM2OBPfamYqcTbuczz9XiljOSkAj1Ivq8LFBRNBnZb18b/uBY10JUTpy/NokPp3GAQkCU75ES9bC7f/4fjR0VKiEfZhHoq2Cd6FDF3Ux+DbjHP/lYlKlKjY2qSElN25ctr+rvTKQHfis75QoMZQRFAS/Pfm6JVPVWuhj/NK9g/tPvjj4B7Vx1i2UHGMdOgE+XgCWJbSWwMZf7163f0dQQj02wsuU/N77WUYcYxBHHVjo29Iz2jX1TEno1x6D3D6Zmh7uv1Dg3WcjHQPoSURzx3kZiM4jUzUI0Ut8RXKGu6iwQsew==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=iQozeGS6NXue2xy04GwS38eB6n43tpIm85e71KD3+fs=;
 b=M28oMCAlK0o5+PH5XnmMEvKUu95EfDESKwS/S+TehN31E4HYV6T6Eune1mVIguWXXC+lf1GemZ+0UydSBNYLbBdZXUmBXKRCJLgpwwgUHp7yp+zNUGoxgNPx1lhMBSEfYdHvq0B+W2hQfTGct3nlPJjCDOymWG1GFdIupMF+awc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 10/26] xen/arm/cca: add Realm relinquish entry point
Date: Fri, 15 May 2026 13:07:56 +0900
Message-ID: <20260515040812.983626-11-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCPR01CA0070.jpnprd01.prod.outlook.com
 (2603:1096:405:2::34) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB5257:EE_
X-MS-Office365-Filtering-Correlation-Id: e384598f-eddb-4503-84a9-08deb2379d55
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|376014|7416014|366016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	WA4HlbaemzL5K2jLH8XnQivh7FT52NP2WdiNqHSdgeTCw9uYueJGRq2J8gjQIJhXFcXaVtKsejakqG7TxMjOggMwGvpEIyEZtzEpXFHdEUGkOvDMN7S+26il90Ng/qs72h0Z1R9hHHbPpVYKbIPLkqfAA8NmVdbNR9FYo3aO0jA+s/OV8GB6dEn+p1EWE5rQ+M5Dl2a8SwMgjkWp+jQFhdIZJyks11wMbgOQY/SyNF44IVUufPtGgf9+vUp66wTITpHIrOxHniQADc3kzKf+BfdWxfsBfistCNHLkhIC60a4k+K6/J0tb4r3fLqmEv+PsVKMDkoOuzpwt955NK6M/FTbg3wBZE8vQjVbzWf4HjfZEGOoz08gl5mVy+/zD0cpWjZjb7k5iqeJIJlSyHLcGItORcuF04WSu7gDWBQt32Sego6hjJYxoivDTVWmDs3m4oCdzxqh+JqAJRHjDoT2Hp8cI4zUGaaRAbUcjqqh4qLe7/6ffyI1Fo3+8jTEAMZ8G2b/qqznkiueRA+luRkNopg6XH9mvZf7QPCZ8Hr7JpYXzCqwMteSSvZ5w4chk8a6mgul4QY6NtZ2wNa7pZP9fOsC77OfQMMt9/V5sBeQv35Ji1oBb4y94OPGl015HEo3TQndhl0CMECDvi1MRb5+l5gWorRFFHBVRV00e4GAfbAEK90ixFLFA6TvJPNkudmn
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(376014)(7416014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?bHDSnIWcw7ASPEAzyqscbjn5EVg/54TM5UVtuBIAW03GMVmwERIyvXwP7piU?=
 =?us-ascii?Q?j6JAzWy4whmGmeGFVkQc9e6O1I7dHGUIwGAwJFik4+nWXWIfzWBDSCSfgYJL?=
 =?us-ascii?Q?ioIVSP0IQ6An/KgXZrtnkIEQlXPcAgAScxMJ+7q7kxH/nWe5nKmXMEDrOWGu?=
 =?us-ascii?Q?SdfISybxvHmL9mogH61/54hYAcPZCOXwWFtzw2gioKUgGb0SHzdcRvyYQa/g?=
 =?us-ascii?Q?Uneqe2aQSDyeMrI7CJq/DsVoOUaEK+6veDDsUaGmt5yeL54gSnMapzZcBU/k?=
 =?us-ascii?Q?GTTEXpswTpJjVddlt5VRVa6ipaCH95+OsI8/e2f317NK7F1532Ba3HwunW32?=
 =?us-ascii?Q?aHo0Zx4NPCn11+MbxksP1ukSpplKHKuIn74d5lYmK+KR0zL+ZVgfXCuM4cgC?=
 =?us-ascii?Q?ipUWU2cD51ZHVTY5vAw2e2RmkR72p8+1Ufozes4BBaCNH4H8Dx8dkxs3WwV1?=
 =?us-ascii?Q?+jlZ/2iS/7uVi7J5vF9dy0HGWMsFGn1bWX4ibdPBOU5NIWiSeBph3m10z41G?=
 =?us-ascii?Q?FQgvTgQ/5Z6fY4Tmi4PNe/gsrFUh/ZwAW7kO64V38RKpfzBjPtF0Oz3b+CqG?=
 =?us-ascii?Q?N25NwCc+4XUTOfLJxcvBPsHi1wUFb0mXhe1bwITlwoSDxJDCWKQEx4eT8J+z?=
 =?us-ascii?Q?4gaczxZT6gxeqcYy2zqAn39mYrrMhRlnQAHA6MAHOWHYNuTk5uShrpxgIVHr?=
 =?us-ascii?Q?JawAfSvDXKbYKcctRtd4cv7p4A+Q7DL4e4loovIqg9KiVK5tx/GKE/sSGMd7?=
 =?us-ascii?Q?OV0Wj7t/ombXyEQRASKAL6VLyhGtWBU1zRaoJeP2Vf6O5tODtw4JbldoivZx?=
 =?us-ascii?Q?Voj20htKA9ATURzpAowkmhHN/S64Ae9Eh2zmZB/7aH4AvpNlgEeHpkNTrP3c?=
 =?us-ascii?Q?bJUJEVxztaLfFbksjM3SWUSOZRolGMPTkt+sdkqMJ79uGV5PrcprA30lGANw?=
 =?us-ascii?Q?yvkDFy68xhiAmaILUTV+w/zhSzRgFvThwlVeDllujqbbU9wowl2eMAQwcFIt?=
 =?us-ascii?Q?0Ir2ygv+PmFRS9O0N8lMpbQfayWq19ivpfiD2IvfplPIySgnQIf28ZOGftFV?=
 =?us-ascii?Q?lxRSV04FfQ7Btqvgb+EMTOpaaEj5Am2l3ZR83ahvQDxjRULk/VXvA9tKlx0Z?=
 =?us-ascii?Q?YZfPcH4+RqGqJWylPnpJorPB/PkeVT4ojTm0eiBhUcTp0Pz2zuItNi1P0PKe?=
 =?us-ascii?Q?Q2u3whtPhEi/SDL5GIMzZXCYOZhlY+o6slfHiKy1pa7Z5r77zLBa0h6hbNzl?=
 =?us-ascii?Q?GEKFSHVEqojslgdaeZgCIJ27bsRm5r7EfsTLxZggVJuxdwaDMv8MkUVRdvUh?=
 =?us-ascii?Q?hNCO1M8LWhgJ2rhi2QXDe6U91AMxcnwl5OhT82WNpu+DWSNUMcB2CRdWsHyM?=
 =?us-ascii?Q?UFhSVESjbZw1zl3L4vpPXRmQSAKsLp07Zmvq1LMjPNumahEvOw16C5XFgifT?=
 =?us-ascii?Q?l9hDvil72kqwptVg231M3qNleyxo+Xhf5cMhxugBeVndNZ1mV7XzpM/j6eRU?=
 =?us-ascii?Q?ZBs5hR1cXLJVCu3xJ3rM3bqzahA5+1mMGKoP4/Wk+iKrvQImIQtlfExBq7WU?=
 =?us-ascii?Q?3OSFO4MOsyyXJWv6YpJF+0d8g/7ERzA46xwvpr6nCJX8kzZDgbfVy4/Sc79u?=
 =?us-ascii?Q?drPGb4Mlr6VXh6XJQ3/qqXwk4cI2bfnTg+NC0nHxnSeRUh7t0LATgy88nQrS?=
 =?us-ascii?Q?yhmtk/4eR9wxvQwa13ZCeEDnbCoXjQf7M9PCvJjqaWD2GGXjpUPBjs2y4ERA?=
 =?us-ascii?Q?GA2eNniSroJxBEhhMB0S5cFRkEXaT1eB7jvvtczvwK3C9v/KYbD9?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: e384598f-eddb-4503-84a9-08deb2379d55
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:26.6341
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hc+uDErL99zt12g8UJj0QPunqB19KHTtMV/KGinscfZqqs92msFJTYAYFimQDqNb1x+i/q+Ql67HkUza+pTIlA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB5257
X-purgate-ID: tlsNG-33051d/1778818111-38776938-1E0469A9/0/0
X-purgate-type: clean
X-purgate-size: 3313

Add a returnable CCA hook to domain_relinquish_resources(). Later
patches plug the RMI teardown work into this path.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/state.c       | 24 ++++++++++++++++++++++++
 xen/arch/arm/domain.c          |  8 ++++++++
 xen/arch/arm/include/asm/cca.h |  5 +++++
 3 files changed, 37 insertions(+)

diff --git a/xen/arch/arm/cca/state.c b/xen/arch/arm/cca/state.c
index 66375965a1b4..3646948eb11c 100644
--- a/xen/arch/arm/cca/state.c
+++ b/xen/arch/arm/cca/state.c
@@ -19,6 +19,7 @@ static void arm_cca_reset_domain_state(struct domain *d)
     d->arch.cca.rd_page = NULL;
     d->arch.cca.rtt_root_page = NULL;
     d->arch.cca.nr_realm_sro_pages = 0;
+    INIT_PAGE_LIST_HEAD(&d->arch.cca.abandoned_pages);
     d->arch.cca.rtts = NULL;
     d->arch.cca.nr_rtts = 0;
     d->arch.cca.data_pages = NULL;
@@ -52,6 +53,29 @@ void arm_cca_domain_destroy(struct domain *d)
     arm_cca_reset_domain_state(d);
 }
 
+static int arm_cca_relinquish_abandoned_pages(struct domain *d)
+{
+    struct page_info *pg, *tmp;
+    int rc;
+
+    page_list_for_each_safe( pg, tmp, &d->arch.cca.abandoned_pages )
+    {
+        rc = arm_cca_undelegate_granule(page_to_maddr(pg));
+        if ( rc != 0 )
+            return rc;
+
+        page_list_del(pg, &d->arch.cca.abandoned_pages);
+        free_domheap_page(pg);
+    }
+
+    return 0;
+}
+
+int arm_cca_domain_relinquish_resources(struct domain *d)
+{
+    return arm_cca_relinquish_abandoned_pages(d);
+}
+
 void arm_cca_vcpu_init(struct vcpu *v)
 {
     arm_cca_reset_vcpu_state(v);
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 4b6115491c59..2d9469f388c6 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -1038,6 +1038,7 @@ enum {
     PROG_sci,
     PROG_tee,
     PROG_xen,
+    PROG_cca,
     PROG_page,
     PROG_mapping,
     PROG_p2m_root,
@@ -1098,6 +1099,13 @@ int domain_relinquish_resources(struct domain *d)
         if ( ret )
             return ret;
 
+    PROGRESS(cca):
+#ifdef CONFIG_ARM_CCA
+        ret = arm_cca_domain_relinquish_resources(d);
+        if ( ret )
+            return ret;
+#endif
+
     PROGRESS(page):
         ret = relinquish_memory(d, &d->page_list);
         if ( ret )
diff --git a/xen/arch/arm/include/asm/cca.h b/xen/arch/arm/include/asm/cca.h
index 80c161078d6c..9b53c80b5bba 100644
--- a/xen/arch/arm/include/asm/cca.h
+++ b/xen/arch/arm/include/asm/cca.h
@@ -3,6 +3,7 @@
 #define ARM_CCA_H
 
 #include <xen/init.h>
+#include <xen/mm.h>
 #include <xen/types.h>
 
 /*
@@ -57,6 +58,9 @@ struct arm_cca_domain_state {
     struct page_info *realm_sro_pages[ARM_CCA_MAX_SRO_DONATION_PAGES];
     unsigned int nr_realm_sro_pages;
 
+    /* Delegated pages which still need host-side undelegation retry. */
+    struct page_list_head abandoned_pages;
+
     struct arm_cca_rtt_record *rtts;
     unsigned int nr_rtts;
 
@@ -76,6 +80,7 @@ struct arm_cca_vcpu_state {
 
 void arm_cca_domain_init(struct domain *d);
 void arm_cca_domain_destroy(struct domain *d);
+int arm_cca_domain_relinquish_resources(struct domain *d);
 
 void arm_cca_vcpu_init(struct vcpu *v);
 void arm_cca_vcpu_destroy(struct vcpu *v);
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:11:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:11:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309423.1580474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjtp-0000cr-Kz; Fri, 15 May 2026 04:11:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309423.1580474; Fri, 15 May 2026 04:11:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjtp-0000ck-II; Fri, 15 May 2026 04:11:45 +0000
Received: by outflank-mailman (input) for mailman id 1309423;
 Fri, 15 May 2026 04:11:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjtn-0000aU-EI
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:11:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjtm-0052Iz-Qq
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:11:42 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069cda-e002-0a2a0a5209dd-0a2a4505a2ee-12
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:11:42 +0200
Received: from [52.101.125.85]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c47-aaa8-0a2a45050019-34657d55753b-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:42 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYCP286MB3682.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 04:08:37 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=I+Mwv9doEpL2dG4jZioqU2Kknggnd98GpjjzPGosMa2iRRSIp6O/nfW0SyX1YVmZ5bVDOxQrL6auDQDck15aeaymVVih2OZH0UpegmKXsSo1Q16LjKwR8nMg3vNTMkH/62VALPW4e6tpbkqzDRWEGckPJr36d9WiIbus+TZ34z1wsztEUBKMv0+z9WGAxikikzD+WFC7odBPh9wT7Kc+kep3K8aXT7rFVaP1dKLo2E6zNmBjwEqxusqN1FBTCOzUNfPQ9DdLTtNOL6cN5hJTnG6CXdj1o1hOQ0DmR0b96e2K2smWXb9UfsQ9xK6HYPCYQWucLaUISw3ExLj6CTQQ6g==
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=0GEQq9mUrsUO2xmFWtA16fpenonSWpgtrYzSVQj3dvs=;
 b=Q5s2yI/O1dtr+dmoLh13LvNx5cH63OY4ijrIl6nw7vFPLyLa9c8ToSyyeL+uoQdFPwU6sDj+hC+FjWppeNX+mErOPTrtkJPbRSQW76a2b+bG9guohPOsxjRR99TERYSucUp1zlDgUitCgmsMegTD2gy+CCQnhSiCYzRoq0f5O38mQ6R+t5Q5aFr0W157+GgmDOAYMPzVI/B8xn6QyilAOfKoXAbA5F20Wb5V94bZ1I8DIz4W2iAc9TQ0BV1EVzmMAlm9p0hA/RmRuly402F20go1Bzrh65IY4ikDTsODxuy28xVGxCh6KohNVn2k+cVybBNqQV4yQB4oo8sJBlWthg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0GEQq9mUrsUO2xmFWtA16fpenonSWpgtrYzSVQj3dvs=;
 b=RyEXpRN6OGjpLer46tyyDBhwLNmLMLbql9h3MIev/DmRhiuOOAFcX4gjsbXBvBgrSQCidx0WgvJxeWzEDfrlgX+Ljpli6fMm5sRl6+7S624Ha28MNiuNuOy/sb+wMMVJwLy8WKTxgjnw7GjbV+GVNukR7U0nMDltN2hqWRbLF44=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 19/26] xen/arm: io: add register-backed MMIO emulation helpers
Date: Fri, 15 May 2026 13:08:05 +0900
Message-ID: <20260515040812.983626-20-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYXPR01CA0066.jpnprd01.prod.outlook.com
 (2603:1096:403:a::36) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYCP286MB3682:EE_
X-MS-Office365-Filtering-Correlation-Id: e7b2df52-2116-46b7-47cf-08deb237a16b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|366016|376014|7416014|56012099003|3023799003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	U6VlV6gaUUfaFI/K38P8Q6Hk6DXv19NQxfciuaNyiSVmmkDP55JiTinpy1unUtgqIc5jMOxDxSaXST9+O1wmei5UluCUisXXAry5Uv05ltp6INJ/pCEI2IEF7uvPCTsnJ/3pW+C5tQkzf9IN/swiEckqisKgZm5tG2kEqATSyNLXnQiyJRmY8UuJDekFkWzjvMBENBKDdYyPn01v0vg6U5gQgkBLqkeMaOpbg7cqLUMBpEQL/QCi5MykHz0b6+T0mmHMg/7r0a+FSQzs3nKa7/LWyRMXDe0CU8z628rZQk9IrUSatm3yAPctr8XylnsBnl/f5pjpBAi78HXKWdlwZ8bQqvB4us49hZhkNPPP6Mo3yOnaGzJ3zmZP2ikPcJyid/DL3EqswIv/oVuR8YgFGQsFNKl9J10niu/I1ft8q55a7t4kKmXpFdBZS9S8rRieX2zVtbwmfcrHOB2QxS8FSKdCSmmkF0Tp9whvNBiIIKziuwyoZhH1/jgLNO88jnTCXvj+qs3/2BndH8nd2K6EFttzH+dAhpltLoBCtfzDAiNtzkxqqB3xc1UHBXahfkQ2vJgCFZYa1EGxMJxjL8aMv8hByZ+aKeCiyVhkl3RLV+snHlxqBMGRBPGR8kjKEXQ0sKCVkcurqvyMEOrgO+7jIYhmdN3nj2jeswoYsyDXmopHqDNJvSu9lbaW2Cr6W5Km
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(366016)(376014)(7416014)(56012099003)(3023799003)(22082099003)(18002099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?1TmzJpbSXKjXTSC1euq3fKDSjNjFiE5+1oHbFYwBkUmWEVChL4zbTi2qzGjj?=
 =?us-ascii?Q?LbEtSSHiS/uGghDQ1R8v8PiV4uAl52fvzGtlDOPKwX5LwpI+SdNy5SsaTsJe?=
 =?us-ascii?Q?eGFXzd9MGV5W22RAeWguEdz3Kofaf5Dr1NurRho8Ag1UesFO3wizzppFjOkr?=
 =?us-ascii?Q?mEcztkSwzlH9Gst7IAscjZvKGRKrat/fy1EgEArMc0gId8t23q4oHmIbtIKA?=
 =?us-ascii?Q?mhuEo6CO2CqaDKB16jRdRqYN66mrSom0YMBRY6N/NOGLNy1do55IIvfnlMNQ?=
 =?us-ascii?Q?fiMRCBuHGgplKrFmMgvdbiAgDf4y86TZeHmtbE0QcoalAS6t/9CR9V7NFhs2?=
 =?us-ascii?Q?l4Pk5n/QGQ76RXKe5BaSpYkjh/v1y6Ji9DPNCCE0oUnSPCutuuIEmghdjclo?=
 =?us-ascii?Q?TuRJvaevy/gIj2UP+mydXKiXsSn/yenKmK2s4oaEDGesWH9EwoJvwJCUF6NR?=
 =?us-ascii?Q?Y62hZKEue61y38nzzizqu/ct0wYiXRhM08Hgzzd8QjF98NXx8sqW5/HOkaOY?=
 =?us-ascii?Q?hII6i5q68MWjXoGOfazvkH3gXNX+qSWDeuIUoRm17jlWCON298wuTXbNjZvg?=
 =?us-ascii?Q?0vg4kocY4XKhtiAUMCFgfoZhaP8xjSC8YFZ18T4KgivTIPzMX+XhLFOMI2lE?=
 =?us-ascii?Q?EjWQtBYydDVIMb2a9yeZaU1oX45KUG+JYw4eZAoqCr/y2wBiZ7A7OERYUZ5H?=
 =?us-ascii?Q?yEB/ddC/DDSrgzMZkdqgrRPHV4Aw5namRSpmTciWdIVfePBO4b3XLBKwHxSs?=
 =?us-ascii?Q?xRa9kOpZxhCdATcMMXA04OWEQQ7+cAEXCH+IJ9n0mUiCRiFWqCNXKRuRQfSC?=
 =?us-ascii?Q?iP2965Pii0Aj63CuBsLS04o6SSlIvY6+ZeiWALVZTFqigaa5qSMjp8HIcTtm?=
 =?us-ascii?Q?ADIy32Bj9IMQTocHB/yPZWGuQeoTNvKLtBZe+EwLv0tdjHO5L7BUddXwMbf8?=
 =?us-ascii?Q?5S3duTHG04GeWaLg3NHmTVwVC8tKTyAwzLSrSzR1lYL92KYJNPBVTGdqKE1j?=
 =?us-ascii?Q?FPGxOnBm3tVhWyPu9T/4Pka7l3vXBtb3AVq1TBNLXlIL3oXThbmFCwPEbxSS?=
 =?us-ascii?Q?FHgqlMMLOHzZ+yYuTlbcqa7xivCqivMTjHwfgNUp8TOOzFaemlhZL7L9O8av?=
 =?us-ascii?Q?SL0WXjhGRLxlOV0RVriHhy5Nv42W/+xpQuDARMcnxrdwcEs2gVE7aA7qtX2i?=
 =?us-ascii?Q?XggeGia70bvB/F9z5b2qUeSvRXJMyB2QAod9iV3QGUt5wNy6EilrOa2+66T1?=
 =?us-ascii?Q?eV307le+48yue/0754eO8letHWAOXxN9NyThlq2bFuAYrfXM8dNjCPZ0nELO?=
 =?us-ascii?Q?Qz4Q5udw52kNT8cIyeYs04je0ARpT+tMdZYN0BZQ3zcaC3bUcDqJl1KzE3ab?=
 =?us-ascii?Q?dZgQr5iOYVLhZOABicGwpuquTZCAd8K85y3HhcvK48aewXxowz1Q3wGCmZTZ?=
 =?us-ascii?Q?tDqNB7bIe0GlXBdipqsJb/y1s+wWnogKKEGcuB4fj8zNj5/vpZGMXjtPtcM+?=
 =?us-ascii?Q?196Erg1KBOZbftqXPewyNIZTcmNjf8DvmKVZf8LYiYMuH4wDXr8/nwoqgdDX?=
 =?us-ascii?Q?1JxWrPM2s1b/tny0RwdPsGWN3P0ICmSLOHMHwY7DKi4uIXHvRtoRLBtmmEd/?=
 =?us-ascii?Q?Z0tyAl7GHdfLhWQWRFj2mrRtoLruPyqGnq7ngM4HHBtu8QGrQ7KYbsLLlmf/?=
 =?us-ascii?Q?0BBpPP06UtzbyArFRY6tRIA0lPXRhGtAVqatH2Lk0T3FI5YKW6AkD9wt8O7b?=
 =?us-ascii?Q?puTOoYoj5cn2X1zj9UP57WWmHNMRdp6n6foyw4FU+i6unmiAF7Cq?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: e7b2df52-2116-46b7-47cf-08deb237a16b
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:33.4860
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: fWJX4PNgNnE8pIFC2EfpPAEqrDSr5j/1uJl6p+6iMhtMBr9RaIllisFo+4Kkx+r7hxxb5bfwzio9e8Clq8qm+A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCP286MB3682
X-purgate-ID: tlsNG-c201ff/1778818122-E1B9E443-EA4EBE55/0/0
X-purgate-type: clean
X-purgate-size: 7058

Allow the Arm MMIO emulator to use a caller-provided register backend.
Realm exits carry GPR state in RecRun, not in guest_cpu_user_regs().

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/include/asm/mmio.h | 11 ++++
 xen/arch/arm/io.c               | 99 +++++++++++++++++++++++++--------
 2 files changed, 88 insertions(+), 22 deletions(-)

diff --git a/xen/arch/arm/include/asm/mmio.h b/xen/arch/arm/include/asm/mmio.h
index b22cfdac5be9..b8a640dc6ee7 100644
--- a/xen/arch/arm/include/asm/mmio.h
+++ b/xen/arch/arm/include/asm/mmio.h
@@ -62,6 +62,14 @@ typedef int (*mmio_read_t)(struct vcpu *v, mmio_info_t *info,
 typedef int (*mmio_write_t)(struct vcpu *v, mmio_info_t *info,
                             register_t r, void *priv);
 
+typedef register_t (*mmio_reg_read_t)(void *ctxt, int reg);
+typedef void (*mmio_reg_write_t)(void *ctxt, int reg, register_t value);
+
+struct mmio_regops {
+    mmio_reg_read_t read;
+    mmio_reg_write_t write;
+};
+
 struct mmio_handler_ops {
     mmio_read_t read;
     mmio_write_t write;
@@ -83,6 +91,9 @@ struct vmmio {
 
 enum io_state try_handle_mmio(struct cpu_user_regs *regs,
                               mmio_info_t *info);
+enum io_state try_handle_mmio_regops(struct vcpu *v, mmio_info_t *info,
+                                     const struct mmio_regops *regops,
+                                     void *ctxt);
 void register_mmio_handler(struct domain *d,
                            const struct mmio_handler_ops *ops,
                            paddr_t addr, paddr_t size, void *priv);
diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
index 9707cadcf80e..9ce9fe1c1528 100644
--- a/xen/arch/arm/io.c
+++ b/xen/arch/arm/io.c
@@ -47,12 +47,36 @@ static const struct mmio_handler unmapped_handler = {
     .ops = &unmapped_ops
 };
 
+struct mmio_guest_regs {
+    struct cpu_user_regs *regs;
+};
+
+static register_t mmio_guest_read_reg(void *ctxt, int reg)
+{
+    struct mmio_guest_regs *guest = ctxt;
+
+    return get_user_reg(guest->regs, reg);
+}
+
+static void mmio_guest_write_reg(void *ctxt, int reg, register_t value)
+{
+    struct mmio_guest_regs *guest = ctxt;
+
+    set_user_reg(guest->regs, reg, value);
+}
+
+static const struct mmio_regops mmio_guest_regops = {
+    .read = mmio_guest_read_reg,
+    .write = mmio_guest_write_reg,
+};
+
 static enum io_state handle_read(const struct mmio_handler *handler,
                                  struct vcpu *v,
-                                 mmio_info_t *info)
+                                 mmio_info_t *info,
+                                 const struct mmio_regops *regops,
+                                 void *ctxt)
 {
     const struct hsr_dabt dabt = info->dabt;
-    struct cpu_user_regs *regs = guest_cpu_user_regs();
     /*
      * Initialize to zero to avoid leaking data if there is an
      * implementation error in the emulation (such as not correctly
@@ -66,22 +90,24 @@ static enum io_state handle_read(const struct mmio_handler *handler,
     ASSERT((r & ~GENMASK((1U << info->dabt.size) * 8 - 1, 0)) == 0);
 
     r = sign_extend(dabt, r);
-
-    set_user_reg(regs, dabt.reg, r);
+    regops->write(ctxt, dabt.reg, r);
 
     return IO_HANDLED;
 }
 
 static enum io_state handle_write(const struct mmio_handler *handler,
                                   struct vcpu *v,
-                                  mmio_info_t *info)
+                                  mmio_info_t *info,
+                                  const struct mmio_regops *regops,
+                                  void *ctxt)
 {
     const struct hsr_dabt dabt = info->dabt;
-    struct cpu_user_regs *regs = guest_cpu_user_regs();
+    register_t value;
     int ret;
 
-    ret = handler->ops->write(v, info, get_user_reg(regs, dabt.reg),
-                              handler->priv);
+    value = regops->read(ctxt, dabt.reg);
+    ret = handler->ops->write(v, info, value, handler->priv);
+
     return ret ? IO_HANDLED : IO_ABORT;
 }
 
@@ -183,10 +209,13 @@ void try_decode_instruction(const struct cpu_user_regs *regs,
     }
 }
 
-enum io_state try_handle_mmio(struct cpu_user_regs *regs,
-                              mmio_info_t *info)
+static enum io_state __try_handle_mmio(struct vcpu *v,
+                                       struct cpu_user_regs *regs,
+                                       mmio_info_t *info,
+                                       const struct mmio_regops *regops,
+                                       void *ctxt,
+                                       bool allow_ioreq)
 {
-    struct vcpu *v = current;
     const struct mmio_handler *handler = NULL;
     int rc;
 
@@ -202,17 +231,22 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
     if ( !handler )
     {
         bool trap_unmapped = v->domain->options &
-                                         XEN_DOMCTL_CDF_trap_unmapped_accesses;
-        rc = try_fwd_ioserv(regs, v, info);
-        if ( rc == IO_HANDLED )
-            return handle_ioserv(regs, v);
-        else if ( rc == IO_UNHANDLED && !trap_unmapped )
+                             XEN_DOMCTL_CDF_trap_unmapped_accesses;
+
+        if ( allow_ioreq )
         {
-            /* Fallback to the unmapped handler. */
-            handler = &unmapped_handler;
-        } else {
-            return rc;
+            rc = try_fwd_ioserv(regs, v, info);
+            if ( rc == IO_HANDLED )
+                return handle_ioserv(regs, v);
+            else if ( rc != IO_UNHANDLED )
+                return rc;
         }
+
+        if ( trap_unmapped )
+            return IO_UNHANDLED;
+
+        /* Fallback to the unmapped handler. */
+        handler = &unmapped_handler;
     }
 
     /*
@@ -228,9 +262,30 @@ enum io_state try_handle_mmio(struct cpu_user_regs *regs,
      * instruction on the emulated MMIO region.
      */
     if ( info->dabt.write )
-        return handle_write(handler, v, info);
+        return handle_write(handler, v, info, regops, ctxt);
     else
-        return handle_read(handler, v, info);
+        return handle_read(handler, v, info, regops, ctxt);
+}
+
+enum io_state try_handle_mmio(struct cpu_user_regs *regs,
+                              mmio_info_t *info)
+{
+    struct mmio_guest_regs guest = { .regs = regs };
+
+    return __try_handle_mmio(current, regs, info, &mmio_guest_regops,
+                             &guest, true);
+}
+
+enum io_state try_handle_mmio_regops(struct vcpu *v, mmio_info_t *info,
+                                     const struct mmio_regops *regops,
+                                     void *ctxt)
+{
+    ASSERT(v != NULL);
+    ASSERT(regops != NULL);
+    ASSERT(regops->read != NULL);
+    ASSERT(regops->write != NULL);
+
+    return __try_handle_mmio(v, NULL, info, regops, ctxt, false);
 }
 
 void register_mmio_handler(struct domain *d,
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:11:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:11:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309425.1580478 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjtq-0000gK-1U; Fri, 15 May 2026 04:11:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309425.1580478; Fri, 15 May 2026 04:11:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjtp-0000ev-PH; Fri, 15 May 2026 04:11:45 +0000
Received: by outflank-mailman (input) for mailman id 1309425;
 Fri, 15 May 2026 04:11:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjto-0000bb-HW
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:11:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjtn-0052Iz-Tf
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:11:43 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069cda-e002-0a2a0a5209dd-0a2a4505a2ee-14
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:11:43 +0200
Received: from [52.101.125.85]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c47-aaa8-0a2a45050019-34657d55753b-5
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:43 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYCP286MB3682.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 04:08:37 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hV4TBptnBiCzJUrB1fasuOyHhNIyKBFECzOs3LNB0wFiW83XcDCSzT4FenO4ApQgPjxlHHsyPrA7AXHcRNwn7vmmmemqTbLdl1vS2uFfWMWWxDyOz3QGWgQ58u6BuwRDzhwvg4XiN9B+t10uSvZwepClL3aiwrkMg4i+DqH2c0jjt0X1xOUVV5YHfpJ3u3rNG3NpiTdayCTpJi15VuuEqEPwHHYAL7lApsUOVaKZqz0ltWiVz1JtroLU2tAYgqUlchb3Sua2ec5I1XHW3NH7WXERS+ggRI7skkn8+ftMPNT2t/aay+Z7iJw78yP0EL8q06h9hp3oJdvs0h4TEAeLMA==
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=QH/Emp4HZ6BP+ThWjVFWJsY+2Jm00dCee5sOCsxZDxM=;
 b=HoV2KraGX6XYkEKsbMqp+9uJKfijW0pJ/eoAo+uRT44e1xjXwrTu+u/Yo3iLbz2IrohXV1mZiBUaO1x8CHrr663nyca1EE3jF16HdX5R+4uCyrC1P/tjMuwVDzxd4rlK1XLr6MArtvZtqqiLHYowIzQN23mLt2EBTKf8Z8XFkg6mnwNyoV4zDSazKkChxoAzP6tyBREilkQUc2IXyIMD+SCXGNzqQQtBRk5gVCjOeoAd0BgKn2PpGpcMwcFyWIyUOLTh0Oly8RL/d1v8If0B/hfAGsT5sf4KCJAmX/w11vYNL5AqpATNHTXXxN+DFKfuNd2ZOWfTneCZ967mGGFfsA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QH/Emp4HZ6BP+ThWjVFWJsY+2Jm00dCee5sOCsxZDxM=;
 b=Y2XVeinyCusV5avue0SdEG1urTExWQef7YGcvZb5eUaip9mQ0YCGoCkrNgBf9rPXqHYG/MRfGbgR2RB8rR0H/g/eX73ttDrCErBarxNlNaF7oGaldrVuDeqdITRW4isLZii/ETAOLato+A/XrdohoZNxcGCwt9VNwwKKUu1HyMU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 20/26] xen/arm: vgic-v3: expose SGI emulation for Realm exits
Date: Fri, 15 May 2026 13:08:06 +0900
Message-ID: <20260515040812.983626-21-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYWPR01CA0029.jpnprd01.prod.outlook.com
 (2603:1096:400:aa::16) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYCP286MB3682:EE_
X-MS-Office365-Filtering-Correlation-Id: 0293b620-bc8c-45d9-6c2d-08deb237a1e9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|366016|376014|7416014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	GAG8KGIGJTpDEnRNnRRgv00XBAmHdt5mVEPR2gaRvwmsHsDM6cmYNihfDLRasOV6yZEPrSQZTHCwHR1m3dwHI54LKIHSBV7KSldfc5on3+lABBQaM6Zgb0QK0qDYlCYXu3+r/CXW+gwhw6wBpAvYLVs5oi2hJOwB9lHFAp6garf5iOpI/kDOu9A4s07eys5+fOpYO1541mI82AWcYRf2fR9l5PVEQpQ80fvtgC5K1DYOyGnGeYztGJ5jf3PbBqyn1jJd98xMf3GnYbKMK8ZTzPGuMcls6E1O7wkMnu17AI4FDVRJKOqmGRwzjzGiPiZ4gX5ZPtyShvL9SsgJhfPpZ7ZbaEWUlZqFK0rG6SHwjYm8FBAPTM8ocKPQDaCDsbCP0uVudXr2NfaekJj7txu/u44m+kXqyfIUibjiVqXabge+Gj0I1JcweTZCVLtRn8y5OOn/QsSovSIi81fivypQXhLbzUrSg4Xu8bS+9nvKnOdZseTHiM8uno5JjDeocBlT+69aaJZuqBC+EWwsj1EmsC67Dl4eulnNm/nVVlJjDPT4T2P7i03NLN5ZuMmHXN+MY1vGRSM/LlpuDgePbZmOBW5rHZHw20cB2qIXXkv8QS8X09ExeT1DPs4m6+MhfHUS/Rt5mDMOd7o/N5ltt5+AjsdQa5s43YymE+mRrqLWxFtM2u2wjbnhgLFYPVmczjUQ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(366016)(376014)(7416014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?YXFwR5PEeoZfAv3EoWrcsQ2z46kyMl4LsAe95MkinpryzD1WbkjmCsjGPXQm?=
 =?us-ascii?Q?STIklTx/YG52vKLoP6affWjqylA6XU6JhUnTXVaGb9aFi3DJF4Wo+k0tXEaE?=
 =?us-ascii?Q?Eaj0NZqVMrwsXP0yJe7uVKbOZT1+EDoS2qgNlNJGpY6RJpNXxWoOSTj0VS9l?=
 =?us-ascii?Q?VrFPQVjJ2Xu1rZuKhOQ6556Q87tZwMDOu8syAti29lt5vLJvkhiFJ6kGyLf8?=
 =?us-ascii?Q?A7pnIzKO2Wyx0SujNS7jKkhDLdjUSY2lB0QEpVhNeM2J339cJJPp1vbnKFl2?=
 =?us-ascii?Q?E599D16m7aW/9pwt0++d5c3/p1G7LKhXTFJ0BMh48yZ6qG8FHSqmRf8+hRDv?=
 =?us-ascii?Q?hRGnTxwdIucf4VSbQZfp3jwkMhXd9S5BqUPhswx/uAIVxKR31n+v05ChnIKz?=
 =?us-ascii?Q?MDsMveFuYmNTicABKCZc1FzH/W7zooL+lADiWa23fmRv/OrkJumgo2CskxpA?=
 =?us-ascii?Q?UKVOPVQ+gJee0WXv9xzszPSQY7RoOn3Sk4IDX93jwsOyHB9ze+PQTfSH6OHj?=
 =?us-ascii?Q?pW3ANlAWCNsNX+nvaUKLITWuEABxVUNGGHrhW/2/0sIoYDdfa4wfR1nDxUC9?=
 =?us-ascii?Q?PNrXCiuqk/5z3xWdjWS7Uv9hUjlBLvlFEIXQH2DGJfso2jNO8rPiTT9GtBCw?=
 =?us-ascii?Q?47BxHwbk7AeTLpsuy0REu9SkRdQ0w5zxKjIFERA5r6FprfE2VCCPGe7vlYZH?=
 =?us-ascii?Q?CGm8VWlf2ZR7rNuRsFDSFIn2crtOK3Fs6vcjnaJTlnANINaZHeQtk2fzchsy?=
 =?us-ascii?Q?kBFf8RYTcgpgCrggeE7NOY9fBinM2uZHvWWRBGOdBH3PvkhlKSbzTD4QdrxE?=
 =?us-ascii?Q?C2Qq5ww37R6BzhdngZHKgrWNtczSK5gCQEd+yXeNgEvYJx7AhfoDmGT7Zk7J?=
 =?us-ascii?Q?+fF2dh8fnvtAgMWFrMOftnAfwvURKzMXCDWGnGeJRHtKN6RBg0Rfgz80L7p9?=
 =?us-ascii?Q?sBLoH5VgayyMx0AUzyZAHsKmOVAq69DEDhuB2R1ew1qBnMyS8CJhsTrqsbcy?=
 =?us-ascii?Q?O8lAiYD+sxvqNxAQzareKiEcOnSofmogPAdpzuKrPNF9wPnM4mqLXHTMWpAj?=
 =?us-ascii?Q?xiNrZt+c+yXF0n9M9kShjGY0XWE/JXwuaEEDdto+8lsBYdbTHSVnaqXgkFYl?=
 =?us-ascii?Q?t8mJ/0120CvPFtRA0aB4H6wykpcu4Ecme0nzIdFYKVaLjO8mT8/KIhX2FOrO?=
 =?us-ascii?Q?awOZnp02HomWyQbzpWDL5HoZyPTq3a/ntGwkicV1Ao2tCjre8KhZdQJKOz9v?=
 =?us-ascii?Q?Rt5yzVDRSWLbeG+el97/XkCzarIqcPvh4Pj0au2GhlZkwz8P+oy7i2vDIZZx?=
 =?us-ascii?Q?wZBtmqYBXQCoM6Kn5+cf53rjjhMTpe2eoSo4PKDYAWcf8GZuUnn9kLD90Ryi?=
 =?us-ascii?Q?MOOGaAIF/yKaefEgEoPlJJHZcaPjmjdcXkHtSQT9dlSGIiSEH4L1obyWrFYM?=
 =?us-ascii?Q?/2LmfWzdmkzlW14DAm8jYz+ZSeic0FzQOoyhoemsmBGpAx1O7V3BgRWRL6d/?=
 =?us-ascii?Q?59u+rpAj1Zype6oUUluID5aLucBRoz138aTRfFDFs2VwTAZLlMAJ/Evz284d?=
 =?us-ascii?Q?TFBruFIp62bFKVWh17gouqk22XOCjmCLP2T6tVcVwUXpP6ceR2sNJiCrf+q3?=
 =?us-ascii?Q?eCmvz2Dhh82Bmn7xHODa4d0xqEjC+ziD73og+VGVJ/rAIsL8Nkt3BKKpKylv?=
 =?us-ascii?Q?yjp+7OSZbdakvU6ldW7f/4Ux327VvNH2PCFPEH+cCR/aXT0p2AHEK9StwCf0?=
 =?us-ascii?Q?R533yNbAR0tX2OAGw4VcGyAu6av1l2ti2zaR6Oxp9Ob2/+QFXQrm?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 0293b620-bc8c-45d9-6c2d-08deb237a1e9
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:34.3280
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: oEfr0lw8U6q+m9vAAVT0iGQRXgZ7UAxpfZi8MPghvTY01Xm1d38JWzKXpjutDsvzd5jNjJ60SIJfzuJe0IAKsA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCP286MB3682
X-purgate-ID: tlsNG-c201ff/1778818123-D3563443-3D2CE936/0/0
X-purgate-type: clean
X-purgate-size: 2012

Expose the GICv3 SGI decoder so Realm sysreg exits can reuse Xen's
normal ICC_SGI1R_EL1 handling.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/include/asm/vgic.h | 10 ++++++++++
 xen/arch/arm/vgic-v3.c          |  4 +++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgic.h
index 6f9ab1c98c1c..93f5e3ba40fc 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -336,6 +336,9 @@ extern void vgic_set_irqs_pending(struct vcpu *v, uint32_t r,
 extern void register_vgic_ops(struct domain *d, const struct vgic_ops *ops);
 int vgic_v2_init(struct domain *d, unsigned int *mmio_count);
 int vgic_v3_init(struct domain *d, unsigned int *mmio_count);
+#ifdef CONFIG_GICV3
+bool vgic_v3_to_sgi(struct vcpu *v, uint64_t sgir);
+#endif
 
 extern bool vgic_to_sgi(struct vcpu *v, register_t sgir,
                         enum gic_sgi_mode irqmode, int virq,
@@ -346,6 +349,13 @@ extern void vgic_check_inflight_irqs_pending(struct vcpu *v,
 
 #endif /* !CONFIG_NEW_VGIC */
 
+#if defined(CONFIG_NEW_VGIC) || !defined(CONFIG_GICV3)
+static inline bool vgic_v3_to_sgi(struct vcpu *v, uint64_t sgir)
+{
+    return false;
+}
+#endif
+
 /*** Common VGIC functions used by Xen arch code ****/
 
 /*
diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
index 77517c303061..9cb1495bba97 100644
--- a/xen/arch/arm/vgic-v3.c
+++ b/xen/arch/arm/vgic-v3.c
@@ -1600,13 +1600,15 @@ write_reserved:
     return 1;
 }
 
-static bool vgic_v3_to_sgi(struct vcpu *v, uint64_t sgir)
+bool vgic_v3_to_sgi(struct vcpu *v, uint64_t sgir)
 {
     int virq;
     int irqmode;
     enum gic_sgi_mode sgi_mode;
     struct sgi_target target;
 
+    ASSERT(v == current);
+
     sgi_target_init(&target);
     irqmode = (sgir >> ICH_SGI_IRQMODE_SHIFT) & ICH_SGI_IRQMODE_MASK;
     virq = (sgir >> ICH_SGI_IRQ_SHIFT ) & ICH_SGI_IRQ_MASK;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:11:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:11:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309427.1580492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjtr-000137-8w; Fri, 15 May 2026 04:11:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309427.1580492; Fri, 15 May 2026 04:11:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjtr-00012Z-1K; Fri, 15 May 2026 04:11:47 +0000
Received: by outflank-mailman (input) for mailman id 1309427;
 Fri, 15 May 2026 04:11:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjtp-0000cR-HX
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:11:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjto-0052Iz-To
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:11:44 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069cda-e002-0a2a0a5209dd-0a2a4505a2ee-16
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:11:44 +0200
Received: from [52.101.125.85]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c47-aaa8-0a2a45050019-34657d55753b-6
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:44 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYCP286MB3682.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 04:08:38 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=efameixzV3YdFN2nHjhRRAOH5H4xfgb4WQ2AoAJyKC8q+1m3ptBVkOzjD03zgtJznD7jKMZ9yaVgnaaBbN4ah9KUqWIgnojfG+y/KkxmRbIYy5Q6rOFhcU+rjNI4qipvdq3CxKJZHEFFt6CzaSWwXKzUAXwQxz9wjh5qlD4o7tGKf9VnemBU+XkpTjqWOutxJBTM3QIVhXH+b0UfxpQT6PCKdA/Zg1rbA1EdlfOQlsQMR8JFEZ/TTSBuvkY1ovIynAFzaerlsxV1p+HAJwCX19TK/vwaeQehie4dHTNbNn6/7svmn1Ha0SyUawXsOpYG+L9eQiwNRlfXuU824v0FJQ==
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=WZt2u209lxJwRTGsQreVWEB2rCTZ+thSoguR7zx4+Mw=;
 b=jXRttVjpvxTyf219O4xrYBUfZ8lHl3Fx/rPnFhwDV1E9lEWfPp2jvwGX5JYmDiZoHQesjUtSl9O+Ebq1HUTot+BI5fPeBrPhZEuytmtrW3lzUhIgfAQEcY1k3SLngQuqswdZdMr56+ql2/0dLvE+Lc04GYcM9/z8ncrTBw9U9kGTyrvJ9c/gd3/0TCVk5v5YgsyLsMzwLc4rjF+yCiWdfDlF6J1MJzt1nftVA1hROjKw/1yirbNWPh6nQaO8YbqEFR5ivpN2qpETEeP4C6Gk85LyPUXrUdZmjsE0Lu2E1/0Mc37XuPk5f219xoxdywhGacPqqrfNiPnaSATcINYN+A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WZt2u209lxJwRTGsQreVWEB2rCTZ+thSoguR7zx4+Mw=;
 b=ZFCmTGG3gO6wGvuT9WMaeIGF9mjaYPRDTeMxxg04l1qk2i7qD6fQ9BBgMnGcsEgu9oCWoHDrE65jBemd4ZoxP2mYIkfwhq7Xkj5d5a4kQ7JO8iCwOd9nbO+1zhmXkloYmeRxqsrQQ1pxRrkpqNF4tiDCEwmbLmcTpXGJBGJoGaA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 22/26] xen/arm/cca: add Realm REC enter path
Date: Fri, 15 May 2026 13:08:08 +0900
Message-ID: <20260515040812.983626-23-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0236.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:3c7::12) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYCP286MB3682:EE_
X-MS-Office365-Filtering-Correlation-Id: 29718a0d-624e-42b4-f1dd-08deb237a2d1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|366016|376014|7416014|56012099003|3023799003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	bopRT44LQqsNg23U5FdXaQZRE3fQ0y9lcr4G8M9Qo5yMUreTLmRDGEkISUkEh759PBRplMBq50aSkaH9fmI/kn1qZnG9ZM6yX2Fy/cs7a/4qPWUOdBdQUJzxWvFj76Gw9ijiKTYAh+bFa3SVxm8J8qegxdRcR32Ejkc5l/6VRLS1cIimru19K7vr+TGGonvCFtgmdvfbQ6J1Ys2dthrRKpuQ35i5i74ZpqsRDNpsr+JeU4lyIc63PQ5M0L/ZYUkvtJvqwvaecfBSaSl9z9QUJUuAtlsOyMOo0+PY9+mQjwOIjpW4NBODBOn77WtuoTIN+vujcJZE7N43oGHdUGYCcf02Fd3+Vur3ekhV+ZXHuDNyZ3k1sJjhmehnl4mhHDS4oKXFBUOMr6fd3U+pCyFXmOMSJU7S2cd0kHDoKq3ldllT8igJu0W7rayErXG8mXW2KCVe2TyB3tA5WcQmfVr/HfYQkw7I0vnoaHbblZsXsvXex5HS9ASEb2PcJRzUTH4OUYbsoNEv9Ipe8J3Z+t4rCAqXaHvwkIuexyTeWMlafxb8JuxuVEyabsSpXTyfwnZvjhYETNnPBxuMBRh3s+g155FgGgp+shRshOOIYrajQ3bdEZA5wNtcY6kEqZ13VS31gouvm+C7FVib9VZW4e0PCIj6F0iHaXF5VuY7I0EdndVCnGTaFCVIRzPBAEwoVzRf
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(366016)(376014)(7416014)(56012099003)(3023799003)(22082099003)(18002099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?9ckVzyc2dNMCdWnehXYETIQ4hV0gd8waLorXzy0YL2tzZH1Zz0VI4CJgEtu2?=
 =?us-ascii?Q?CJ3lLUaakIcSvgMw7UA3Ld8nERzeU6UQF9ywQiy5Zpn8rVsCcrZIcQFN7BSO?=
 =?us-ascii?Q?qhxq9avg3XG9RvxzQQkF8KmzH9vYcAt2k4ytB+5rf1JOLzBrnIo877Vvwy3I?=
 =?us-ascii?Q?X+NM5zceFXXip8Qz6bX4WRl2/fr+qqJpvimF+/eHLK3GKBj6lrQiqJy4o0oW?=
 =?us-ascii?Q?zVqjCMEaKIOK13KXecuCgAHTkiP04YAw9IgZ4cnhW09FET7CEVCqcjSMwXzG?=
 =?us-ascii?Q?orzsZUkSC7nF89ecMkNPqAOIIIXr7dXaGvSsZI/km+H98DN8dfcCx1EZdV8g?=
 =?us-ascii?Q?uMg/IuC38T24si1mBAGVJ1Rb75Ip2lF19ZYvY5xaZpYdjMWBNOmT0J1Gnx2H?=
 =?us-ascii?Q?jlNxE10gDSQtCjiZUN5urjkbOsmeBUrfcNeN60q8Aqxhu2QZ39R210DrkeT3?=
 =?us-ascii?Q?fpA/inI4dgvltDmf+C/3vbPmayBHGUJ+MZD0G9q19oLNVA0huBx3XOKR0qto?=
 =?us-ascii?Q?UGZ67OHe98FhllWHXRUFBDsYtdCFJdaXiTZZdw4pISFn2utyqROYBmkRL3yI?=
 =?us-ascii?Q?WAzauwzDukKFONcXkPVaGlvCKGVyGxbrMOxD5kOC6B0zKrteSpUiBg+R3dyA?=
 =?us-ascii?Q?XsYT8lCn4dDa36omsVvZue/j5+kYSUxl+rmLZuk06tgaz8J2bBY96ztN1w0P?=
 =?us-ascii?Q?4Ju1GoLvo7vkwyDuTceGK4NVIMc/+FAJrIky8rsG3UYs5WohOeZTcj8Oi+H+?=
 =?us-ascii?Q?RAKR4E/WqMTiWMlIUohpCB1WJ7LrTw2o2gEgUvIKRWL5e+qOgRRhKL0Akl5h?=
 =?us-ascii?Q?Tg+HlyiyGO5c2UxMQjL3UGTkZUkdwA1N5KLU2ecjltua9AwyOsH8zRAnFx9A?=
 =?us-ascii?Q?2+v3bc+3rbqcr8myh818C13tE+B+zUfICbOJlspRddbbNUYlNTZVYJlS7dBA?=
 =?us-ascii?Q?LuBn0FYZy/RAYSEUOcUI9C+ViikaipaDF4jgYTsWuU8H2stR2G31dFZABont?=
 =?us-ascii?Q?QroMwpMd5KypvzfZjHCoE+IYHDNClVJA1B8K4+3JBYi8afNc0zRRP15qb+ZG?=
 =?us-ascii?Q?sT0IVDQ8MRVvGMiQYHNfpZUDzN8sG3e6ej1Pibzz2mL4oD8pD7Uqy2saPEOy?=
 =?us-ascii?Q?w9VVBGQIAUDRC7HxabVCnklVz4mWgc5DeoeHEYcNdaCgyzczzSTCTfg40yuZ?=
 =?us-ascii?Q?LCBrE89vSssGLXwWRSW+zTdFHD8lFCsd/fqrVFZVGhvCFcgtsRLMW6PaueBO?=
 =?us-ascii?Q?X0sPFHqzvxfthdAwPHB/8J7QwIj6KsBnBhB6ry/PtcZ71daZYH7VG5RwtMGW?=
 =?us-ascii?Q?x03fjlxAW24/MmCADhzQZV+hHsz8Q7NSI9Akl7Ph7tjOdraJihjGyvKyzbcX?=
 =?us-ascii?Q?6P8kLgta4qcOBH3cGfeI1pg1FRStMCnuWIbC6Dsx0TqI6owkAHh0sA+1ojFj?=
 =?us-ascii?Q?TKzJfUmBxSl1bg+JjLqfLvAap70nqS+Vpzd6MIXRF/HX6KshgWgLwc4oku/M?=
 =?us-ascii?Q?6KW9GR8j01xR3EbSLe3rWCwppG+3GGS9FEDvramNmMf7PhV7VRMuSCORoCuP?=
 =?us-ascii?Q?H5E8okzNPr/nzGskMVbOD5CaeOYLxkO/rkvuLjici6SBarSVSRLTOxJd4HrS?=
 =?us-ascii?Q?ADbPhvRE2CvdD9mHyGWKm/Q3AaZK6gZjBmjDlA8HWAjzFIY+AqowCwJ5GpuB?=
 =?us-ascii?Q?P8RttjDNBkLGTpm9Z18p8ppDBcwtEmYi53/eVCjnTqbwkUOtVwZk6+2CuKqx?=
 =?us-ascii?Q?cc2F+i/8+fTjvIis4HVp+v2uAhB+FX2+n00Z7h0YR/yjcwW8kdHD?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 29718a0d-624e-42b4-f1dd-08deb237a2d1
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:35.8483
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: fKmsCdjKJ8vpx90DBOIOfW/OxaAq3UQvlUw2NLGvjh6rHLTKZIyrdWhNugOgiihwwfqFGLUjPgn2q8Qxv135Uw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCP286MB3682
X-purgate-ID: tlsNG-c201ff/1778818124-E0C65443-40950EE5/0/0
X-purgate-type: clean
X-purgate-size: 25164

Add the RMI_REC_ENTER loop for Realm vCPUs. Handle host events,
vGIC/timer sync, WFI/WFE, MMIO and PSCI exits.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/rec.c               | 672 +++++++++++++++++++++++++++
 xen/arch/arm/domain.c                |   4 +
 xen/arch/arm/include/asm/arm64/hsr.h |   1 +
 xen/arch/arm/include/asm/hsr.h       |   4 +
 4 files changed, 681 insertions(+)

diff --git a/xen/arch/arm/cca/rec.c b/xen/arch/arm/cca/rec.c
index 8314a7a45d95..efff7fa48745 100644
--- a/xen/arch/arm/cca/rec.c
+++ b/xen/arch/arm/cca/rec.c
@@ -1,14 +1,56 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Dedicated Realm REC execution path for Xen/Arm.
+ *
+ * Key points:
+ * - The Realm executes under RMM. When it accesses emulated devices, the RMM
+ *   causes a REC exit and provides ESR/FAR/HPFAR plus exit metadata in the REC
+ *   exit buffer. With RMI v2.0, vGIC LR state is exchanged through the real
+ *   ICH registers rather than REC run-buffer fields (unlike RMI v1.x).
+ * - Xen bridges such exits into the existing Arm MMIO emulation backend
+ *   (try_handle_mmio_regops), which already services vGIC and other emulated
+ *   devices for non-Realm guests. The emulation reads the guest GPRs and may
+ *   return a value to the guest. We propagate that value back to the RMM on
+ *   the next REC enter using the RMI REC_ENTER flags/gpr0 contract.
+ * - Around REC enter/exit, Xen synchronizes the vGIC directly with the ICH
+ *   registers and feeds the REC exit timer snapshot into Realm-specific
+ *   timer state.
+ */
 
+#include <xen/bug.h>
+#include <xen/errno.h>
 #include <xen/lib.h>
 #include <xen/sched.h>
+#include <xen/softirq.h>
 #include <xen/timer.h>
 #include <xen/xmalloc.h>
 
 #include <asm/cca.h>
+#include <asm/current.h>
+#include <asm/domain.h>
+#include <asm/event.h>
+#include <asm/gic.h>
+#include <asm/gic_v3_defs.h>
+#include <asm/hsr.h>
+#include <asm/mm.h>
+#include <asm/mmio.h>
+#include <asm/p2m.h>
+#include <asm/processor.h>
+#include <asm/psci.h>
+#include <asm/sysregs.h>
+#include <asm/system.h>
 #include <asm/time.h>
 #include <asm/vgic.h>
 
+#include <public/sched.h>
+
+#include "rmi.h"
+
+struct arm_cca_mmio_ctxt {
+    const struct arm_cca_rmi_rec_exit *exit;
+    register_t result;
+};
+
 struct arm_cca_timer {
     struct vcpu *v;
     unsigned int irq;
@@ -23,6 +65,13 @@ struct arm_cca_vcpu_timers {
     struct timer wfx;
 };
 
+/*
+ * Keep Realm guests on the GICv3 sysreg CPU interface. This vGIC path has no
+ * IRQ/FIQ bypass, so ICC_SRE_EL1 is exposed as a fixed SRE|DFB|DIB value.
+ */
+#define ARM_CCA_ICC_SRE_EL1_VALUE \
+    (GICC_SRE_EL2_SRE | GICC_SRE_EL2_DFB | GICC_SRE_EL2_DIB)
+
 static void arm_cca_timer_update_irq(struct arm_cca_timer *timer)
 {
     register_t ctl = timer->ctl;
@@ -88,3 +137,626 @@ void arm_cca_vcpu_timer_destroy(struct vcpu *v)
     kill_timer(&timers->wfx);
     XFREE(v->arch.cca.timers);
 }
+
+static void arm_cca_timer_program(struct arm_cca_timer *timer)
+{
+    s_time_t expires;
+
+    migrate_timer(&timer->timer, timer->v->processor);
+
+    if ( timer->ctl & CNTx_CTL_ENABLE )
+    {
+        expires = (timer->cval > boot_count)
+                  ? ticks_to_ns(timer->cval - boot_count)
+                  : 0;
+        set_timer(&timer->timer, expires);
+    }
+    else
+        stop_timer(&timer->timer);
+}
+
+static void arm_cca_timer_sync(struct arm_cca_timer *timer,
+                               register_t ctl, uint64_t cval)
+{
+    timer->ctl = ctl;
+    timer->cval = cval;
+
+    arm_cca_timer_program(timer);
+    arm_cca_timer_update_irq(timer);
+}
+
+static register_t arm_cca_mmio_read_reg(void *ctxt, int reg)
+{
+    struct arm_cca_mmio_ctxt *mmio = ctxt;
+
+    /*
+     * This callback is used only when Xen's MMIO core emulates a write and
+     * asks for the store data.  For a Realm emulatable Data Abort, the RMM ABI
+     * does not provide a full guest GPR file indexed by ESR_EL2.ISS.SRT.
+     * Instead, the write data is provided in run.exit.gprs[0].
+     *
+     * For an emulated read, arm_cca_mmio_write_reg() below captures the value
+     * produced by the device model and arm_cca_set_mmio_result() returns it to
+     * the RMM in run.enter.gprs[0].  The RMM then writes it back to the
+     * faulting guest register selected by ESR_EL2.ISS.SRT.
+     */
+    return mmio->exit->gprs[0];
+}
+
+static void arm_cca_mmio_write_reg(void *ctxt, int reg, register_t value)
+{
+    struct arm_cca_mmio_ctxt *mmio = ctxt;
+
+    mmio->result = value;
+}
+
+static const struct mmio_regops arm_cca_mmio_regops = {
+    .read = arm_cca_mmio_read_reg,
+    .write = arm_cca_mmio_write_reg,
+};
+
+static void check_for_pcpu_work(void)
+{
+    ASSERT(!local_irq_is_enabled());
+
+    while ( softirq_pending(smp_processor_id()) )
+    {
+        local_irq_enable();
+        do_softirq();
+        local_irq_disable();
+    }
+}
+
+static void arm_cca_service_host_events(void)
+{
+    ASSERT(!local_irq_is_enabled());
+
+    local_irq_enable();
+    local_irq_disable();
+    check_for_pcpu_work();
+}
+
+static void arm_cca_check_for_vcpu_work(struct vcpu *v)
+{
+    if ( likely(!v->arch.need_flush_to_ram) )
+        return;
+
+    check_for_pcpu_work();
+
+    local_irq_enable();
+    p2m_flush_vm(v);
+    local_irq_disable();
+}
+
+static void noreturn arm_cca_wait_forever(struct vcpu *v)
+{
+    for ( ; ; )
+    {
+        /* Scheduler helpers expect local IRQs enabled when taking locks */
+        local_irq_enable();
+        vcpu_block();
+        local_irq_disable();
+        arm_cca_service_host_events();
+    }
+}
+
+static void arm_cca_wait_until_online(struct vcpu *v)
+{
+    while ( test_bit(_VPF_down, &v->pause_flags) )
+    {
+        /* Scheduler helpers expect local IRQs enabled when taking locks */
+        local_irq_enable();
+        vcpu_block();
+        local_irq_disable();
+        arm_cca_service_host_events();
+    }
+}
+
+static bool arm_cca_wfxt_expired(register_t timeout)
+{
+    return (int64_t)(get_cycles() - timeout) >= 0;
+}
+
+static void arm_cca_wait_until_wfxt_timeout(struct vcpu *v,
+                                            register_t timeout)
+{
+    s_time_t expires;
+
+    ASSERT(!local_irq_is_enabled());
+
+    if ( arm_cca_wfxt_expired(timeout) )
+        return;
+
+    expires = (timeout > boot_count) ? ticks_to_ns(timeout - boot_count) : 0;
+
+    set_bit(_VPF_blocked, &v->pause_flags);
+    smp_mb__after_atomic();
+
+    arch_vcpu_block(v);
+
+    if ( local_events_need_delivery_nomask() || arm_cca_wfxt_expired(timeout) )
+    {
+        clear_bit(_VPF_blocked, &v->pause_flags);
+        return;
+    }
+
+    migrate_timer(&v->arch.cca.timers->wfx, v->processor);
+    set_timer(&v->arch.cca.timers->wfx, expires);
+
+    raise_softirq(SCHEDULE_SOFTIRQ);
+
+    /* Let the scheduler softirq run while the WFxT timer can unblock us. */
+    local_irq_enable();
+    local_irq_disable();
+
+    stop_timer(&v->arch.cca.timers->wfx);
+    arm_cca_service_host_events();
+}
+
+static void noreturn arm_cca_domain_crash(struct vcpu *v)
+{
+    domain_crash(v->domain);
+    arm_cca_wait_forever(v);
+}
+
+/* DEN0137 2.0-bet1 - D1.6.1 Interrupt flow. */
+static void arm_cca_prepare_rec_enter(struct arm_cca_rmi_rec_run *run,
+                                      unsigned long entry_flags,
+                                      const register_t *entry_gprs)
+{
+    register_t hcr;
+
+    memset(&run->enter, 0, sizeof(run->enter));
+    run->enter.flags = entry_flags;
+    memcpy(run->enter.gprs, entry_gprs, sizeof(run->enter.gprs));
+
+    /*
+     * RMI v2.0 removes the run-buffer GIC fields. The RMM validates and
+     * consumes the real ICH_LR<n>_EL2 state left by the Host, so flush Xen's
+     * vGIC model directly into hardware before REC_ENTER.
+     */
+    vgic_sync_to_lrs();
+
+    /*
+     * DEN0137 A6.1 requires ICH_HCR_EL2.En to be clear on REC exit. Re-enable
+     * the virtual CPU interface for the next Realm entry while preserving the
+     * rest of the GIC CPU interface state carried in ICH_HCR_EL2.
+     */
+    hcr = READ_SYSREG(ICH_HCR_EL2);
+    WRITE_SYSREG(hcr | GICH_HCR_EN, ICH_HCR_EL2);
+    isb();
+}
+
+/* DEN0137 2.0-bet1 - D1.6.1 Interrupt flow. */
+static void arm_cca_sync_vgic_exit(struct vcpu *v)
+{
+    /*
+     * In RMI v2.0 the RMM leaves the GIC owner Plane state in the hardware
+     * ICH registers on REC exit. Consume it directly through Xen's generic
+     * vGIC LR sync path.
+     */
+    isb();
+    vgic_sync_from_lrs(v);
+}
+
+/*
+ * DEN0137 2.0-bet1 - D1.6.2 Timer interrupt delivery flow.
+ * Keep the REC exit timer snapshot in Realm-specific state.  The normal
+ * v->arch.{phys,virt}_timer state is tied to non-Realm EL1 context switch
+ * save/restore and must not be overwritten with RMM-owned timer state.
+ */
+static void arm_cca_sync_rec_exit(struct vcpu *v,
+                                  const struct arm_cca_rmi_rec_exit *exit)
+{
+    arm_cca_sync_vgic_exit(v);
+    arm_cca_timer_sync(&v->arch.cca.timers->phys,
+                       exit->cntp_ctl, exit->cntp_cval);
+    arm_cca_timer_sync(&v->arch.cca.timers->virt,
+                       exit->cntv_ctl, exit->cntv_cval);
+}
+
+static paddr_t arm_cca_mmio_lookup_gpa(paddr_t ipa)
+{
+    /*
+     * Realm creation currently sets RmiRealmParams::s2sz to p2m_ipa_bits.
+     * Use the Realm's own s2sz here if that becomes per-domain later.
+     */
+    unsigned int ipa_bits = p2m_ipa_bits;
+    paddr_t mask;
+    paddr_t prot_bit;
+
+    if ( ipa_bits == 0 || ipa_bits > sizeof(paddr_t) * 8 )
+        return ipa;
+
+    mask = GENMASK_ULL(ipa_bits - 1, 0);
+
+    ipa &= mask;
+
+    /*
+     * DEN0137 2.0-bet1 - A5.2.1 Realm IPA space and D2.1 Realm shared
+     * memory protocol description.
+     *
+     * RMM reports the IPA which caused the REC exit.  In Realm IPA
+     * space, bit[s2sz - 1] is the protection attribute; if it is set,
+     * the access is to the Unprotected alias.  Xen's MMIO handlers are
+     * registered against the ordinary guest physical address, so use the
+     * lower alias as the lookup key rather than retrying after failure.
+     */
+    prot_bit = (paddr_t)1 << (ipa_bits - 1);
+    if ( ipa & prot_bit )
+    {
+        ipa &= ~prot_bit;
+    }
+
+    return ipa;
+}
+
+static void arm_cca_set_mmio_result(unsigned long *entry_flags,
+                                    register_t *entry_gprs,
+                                    register_t value)
+{
+    *entry_flags |= ARM_CCA_RMI_REC_ENTER_FLAG_EMUL_MMIO;
+    entry_gprs[0] = value;
+}
+
+static void arm_cca_request_sea(unsigned long *entry_flags,
+                                register_t *entry_gprs)
+{
+    *entry_flags |= ARM_CCA_RMI_REC_ENTER_FLAG_INJECT_SEA;
+    entry_gprs[0] = 0;
+}
+
+static bool
+arm_cca_rec_enter_failed_after_shutdown(const struct vcpu *v,
+                                        const struct arm_smccc_res *res)
+{
+    return v->domain->is_shutting_down &&
+           arm_cca_rmi_status_is(arm_cca_rmi_result(res),
+                                 ARM_CCA_RMI_ERROR_REALM);
+}
+
+/* DEN0137 2.0-bet1 - D1.3.4 MMIO emulation flow. */
+static void arm_cca_handle_mmio(struct vcpu *v,
+                                const struct arm_cca_rmi_rec_exit *exit,
+                                unsigned long *entry_flags,
+                                register_t *entry_gprs)
+{
+    union hsr hsr = { .bits = exit->esr };
+    paddr_t raw_gpa = ((paddr_t)(exit->hpfar & HPFAR_MASK) << (12 - 4)) |
+                      (exit->far & ~PAGE_MASK);
+    mmio_info_t info = {
+        .dabt = hsr.dabt,
+        .gpa = raw_gpa,
+    };
+    struct arm_cca_mmio_ctxt ctxt = {
+        .exit = exit,
+        .result = 0,
+    };
+    enum io_state state;
+
+    if ( !hsr.dabt.valid )
+    {
+        gprintk(XENLOG_INFO,
+                "ARM CCA: MMIO abort without valid syndrome esr=%#lx far=%#llx hpfar=%#llx\n",
+                exit->esr,
+                (unsigned long long)exit->far,
+                (unsigned long long)exit->hpfar);
+        arm_cca_request_sea(entry_flags, entry_gprs);
+        return;
+    }
+
+    info.dabt_instr.state = INSTR_VALID;
+    info.gpa = arm_cca_mmio_lookup_gpa(raw_gpa);
+
+    state = try_handle_mmio_regops(v, &info, &arm_cca_mmio_regops, &ctxt);
+
+    if ( state == IO_HANDLED )
+    {
+        arm_cca_set_mmio_result(entry_flags, entry_gprs, ctxt.result);
+    }
+    else
+    {
+        gprintk(XENLOG_INFO,
+                "ARM CCA: MMIO emulation failed state=%d raw_gpa=%#llx gpa=%#llx esr=%#lx\n",
+                state,
+                (unsigned long long)raw_gpa,
+                (unsigned long long)info.gpa,
+                exit->esr);
+        arm_cca_request_sea(entry_flags, entry_gprs);
+    }
+}
+
+/*
+ * DEN0137 2.0-bet1 - D1.4.1 PSCI_CPU_ON flow.
+ * Xen reuses the same completion hook for related PSCI exits.
+ */
+static void
+arm_cca_handle_psci_complete(struct vcpu *v,
+                             const struct arm_cca_rmi_rec_exit *exit)
+{
+    unsigned int target = vaffinity_to_vcpuid(exit->gprs[1]);
+    struct vcpu *target_vcpu;
+    struct arm_smccc_res res;
+    bool wake = false;
+    int rc;
+
+    if ( target >= v->domain->max_vcpus )
+    {
+        gprintk(XENLOG_ERR, "ARM CCA: invalid PSCI target vCPU %u\n",
+                target);
+        arm_cca_domain_crash(v);
+    }
+
+    target_vcpu = v->domain->vcpu[target];
+    if ( target_vcpu == NULL || target_vcpu->arch.cca.rec == INVALID_PADDR )
+    {
+        gprintk(XENLOG_ERR,
+                "ARM CCA: missing target REC for PSCI target vCPU %u\n",
+                target);
+        arm_cca_domain_crash(v);
+    }
+
+    rc = arm_cca_rmi_psci_complete(v->arch.cca.rec, target_vcpu->arch.cca.rec,
+                                   PSCI_SUCCESS, &res);
+    if ( rc != 0 )
+    {
+        gprintk(XENLOG_ERR,
+                "ARM CCA: RMI_PSCI_COMPLETE failed status=%#x data=%#lx\n",
+                arm_cca_rmi_status_code(arm_cca_rmi_result(&res)),
+                (unsigned long)arm_cca_rmi_result_data(
+                    arm_cca_rmi_result(&res)));
+        arm_cca_domain_crash(v);
+    }
+
+    if ( exit->gprs[0] == PSCI_0_2_FN32_CPU_ON ||
+         exit->gprs[0] == PSCI_0_2_FN64_CPU_ON )
+    {
+        wake = test_and_clear_bit(_VPF_down, &target_vcpu->pause_flags);
+        if ( wake )
+            vcpu_wake(target_vcpu);
+    }
+}
+
+static void arm_cca_handle_psci_exit(struct vcpu *v,
+                                     const struct arm_cca_rmi_rec_exit *exit)
+{
+    switch ( exit->gprs[0] )
+    {
+    case PSCI_0_2_FN32_CPU_SUSPEND:
+    case PSCI_0_2_FN64_CPU_SUSPEND:
+        /* Scheduler helpers expect local IRQs enabled when taking locks */
+        local_irq_enable();
+        vcpu_block_unless_event_pending(v);
+        local_irq_disable();
+        arm_cca_service_host_events();
+        break;
+
+    case PSCI_0_2_FN32_CPU_OFF:
+        if ( !test_and_set_bit(_VPF_down, &v->pause_flags) )
+            vcpu_sleep_nosync(v);
+        arm_cca_wait_until_online(v);
+        break;
+
+    case PSCI_0_2_FN32_CPU_ON:
+    case PSCI_0_2_FN64_CPU_ON:
+    case PSCI_0_2_FN32_AFFINITY_INFO:
+    case PSCI_0_2_FN64_AFFINITY_INFO:
+        arm_cca_handle_psci_complete(v, exit);
+        break;
+
+    case PSCI_0_2_FN32_SYSTEM_OFF:
+        domain_shutdown(v->domain, SHUTDOWN_poweroff);
+        arm_cca_wait_forever(v);
+
+    case PSCI_0_2_FN32_SYSTEM_RESET:
+        domain_shutdown(v->domain, SHUTDOWN_reboot);
+        arm_cca_wait_forever(v);
+
+    default:
+        gprintk(XENLOG_ERR,
+                "ARM CCA: unsupported PSCI exit fid=%#lx\n",
+                exit->gprs[0]);
+        arm_cca_domain_crash(v);
+    }
+}
+
+
+/*
+ * DEN0137 2.0-bet1 - D1.3.3 REC exit due to Data Abort fault flow.
+ */
+static void arm_cca_handle_sync_exit(struct vcpu *v,
+                                     const struct arm_cca_rmi_rec_exit *exit,
+                                     unsigned long *entry_flags,
+                                     register_t *entry_gprs)
+{
+    union hsr hsr = { .bits = exit->esr };
+
+    switch ( hsr.ec )
+    {
+    case HSR_EC_WFI_WFE:
+        /*
+         * DEN0137 2.0-bet1 - A4.3.4.1 REC exit due to WFI or WFE.
+         * WFET/WFIT exits provide the timeout value in rec_exit.gprs[0].
+         * Treat a non-zero timeout as authoritative because the same section
+         * only guarantees ESR.ISS.TI for this exit class.
+         */
+        if ( (hsr.bits & HSR_WFI_WFE_WFXT) || exit->gprs[0] )
+        {
+            arm_cca_wait_until_wfxt_timeout(v, exit->gprs[0]);
+            break;
+        }
+
+        /* Scheduler helpers expect local IRQs enabled when taking locks */
+        local_irq_enable();
+        if ( hsr.bits & HSR_WFI_WFE_WFE )
+            vcpu_yield();
+        else
+            vcpu_block_unless_event_pending(v);
+
+        local_irq_disable();
+        arm_cca_service_host_events();
+        break;
+
+    case HSR_EC_DATA_ABORT_LOWER_EL:
+        /* vGIC MMIO paths expect local IRQs enabled for spin_lock_irq */
+        local_irq_enable();
+        arm_cca_handle_mmio(v, exit, entry_flags, entry_gprs);
+        local_irq_disable();
+        break;
+
+    default:
+        gprintk(XENLOG_ERR,
+                "ARM CCA: unsupported REC sync exit ec=%#x esr=%#lx\n",
+                hsr.ec, exit->esr);
+        arm_cca_domain_crash(v);
+    }
+}
+
+/* DEN0137 2.0-bet1 - D1.3.1 Realm entry and exit flow. */
+void noreturn arm_cca_vcpu_run(struct vcpu *v)
+{
+    struct arm_cca_rmi_rec_run *run;
+    struct arm_smccc_res res;
+    unsigned long entry_flags;
+    register_t entry_gprs[ARM_CCA_RMI_REC_NR_GPRS];
+    int rc;
+
+    ASSERT(v == current);
+    ASSERT(!is_idle_vcpu(v));
+
+    if ( !is_vcpu_realm(v) )
+    {
+        gprintk(XENLOG_ERR,
+                "ARM CCA: entered Realm run loop for non-Realm vCPU\n");
+        arm_cca_domain_crash(v);
+    }
+
+    if ( v->domain->arch.vgic.version != GIC_V3 )
+    {
+        gprintk(XENLOG_ERR,
+                "ARM CCA: only GICv3 Realms are supported\n");
+        arm_cca_domain_crash(v);
+    }
+
+    if ( v->arch.cca.run == NULL || v->arch.cca.timers == NULL ||
+         v->arch.cca.run_pa == INVALID_PADDR )
+    {
+        gprintk(XENLOG_ERR,
+                "ARM CCA: REC runtime state is not bound\n");
+        arm_cca_domain_crash(v);
+    }
+
+    if ( v->arch.cca.rec == INVALID_PADDR )
+    {
+        gprintk(XENLOG_ERR, "ARM CCA: REC is not bound\n");
+        arm_cca_domain_crash(v);
+    }
+
+    run = v->arch.cca.run;
+    entry_flags = ARM_CCA_RMI_REC_ENTER_FLAG_TRAP_WFI |
+                  ARM_CCA_RMI_REC_ENTER_FLAG_TRAP_WFE;
+    memset(entry_gprs, 0, sizeof(entry_gprs));
+
+    local_irq_disable();
+    for ( ; ; )
+    {
+        arm_cca_check_for_vcpu_work(v);
+        arm_cca_service_host_events();
+
+        arm_cca_prepare_rec_enter(run, entry_flags, entry_gprs);
+        entry_flags = ARM_CCA_RMI_REC_ENTER_FLAG_TRAP_WFI |
+                      ARM_CCA_RMI_REC_ENTER_FLAG_TRAP_WFE;
+        memset(entry_gprs, 0, sizeof(entry_gprs));
+        rc = arm_cca_rmi_rec_enter(v->arch.cca.rec, v->arch.cca.run_pa, &res);
+        if ( rc != 0 )
+        {
+            if ( arm_cca_rec_enter_failed_after_shutdown(v, &res) )
+            {
+                gprintk(XENLOG_INFO,
+                        "ARM CCA: Realm domain is shutting down; "
+                        "stopping vCPU\n");
+                arm_cca_wait_forever(v);
+            }
+
+            gprintk(XENLOG_ERR,
+                    "ARM CCA: RMI_REC_ENTER failed status=%#x data=%#lx\n",
+                    arm_cca_rmi_status_code(arm_cca_rmi_result(&res)),
+                    (unsigned long)arm_cca_rmi_result_data(
+                        arm_cca_rmi_result(&res)));
+            arm_cca_domain_crash(v);
+        }
+
+        arm_cca_sync_rec_exit(v, &run->exit);
+
+        switch ( run->exit.exit_reason )
+        {
+        case ARM_CCA_RMI_EXIT_IRQ:
+        case ARM_CCA_RMI_EXIT_FIQ:
+            arm_cca_service_host_events();
+            break;
+
+        case ARM_CCA_RMI_EXIT_PSCI:
+            arm_cca_handle_psci_exit(v, &run->exit);
+            break;
+
+        case ARM_CCA_RMI_EXIT_RIPAS_CHANGE:
+            gprintk(XENLOG_ERR,
+                    "ARM CCA: RIPAS change exits are unsupported\n");
+            arm_cca_domain_crash(v);
+
+        case ARM_CCA_RMI_EXIT_SYNC:
+            arm_cca_handle_sync_exit(v, &run->exit, &entry_flags,
+                                     entry_gprs);
+            break;
+
+        case ARM_CCA_RMI_EXIT_HOST_CALL:
+            gprintk(XENLOG_ERR,
+                    "ARM CCA: Host call exits are unsupported (imm=%#x)\n",
+                    (unsigned int)run->exit.imm);
+            arm_cca_domain_crash(v);
+
+        case ARM_CCA_RMI_EXIT_SERROR:
+            gprintk(XENLOG_ERR,
+                    "ARM CCA: SError exit from Realm REC\n");
+            arm_cca_domain_crash(v);
+
+        case ARM_CCA_RMI_EXIT_S2AP_CHANGE:
+            gprintk(XENLOG_ERR,
+                    "ARM CCA: S2AP change exits are unsupported "
+                    "range=%#lx-%#lx\n",
+                    (unsigned long)run->exit.s2ap_base,
+                    (unsigned long)run->exit.s2ap_top);
+            arm_cca_domain_crash(v);
+
+        case ARM_CCA_RMI_EXIT_VDEV_REQUEST:
+            gprintk(XENLOG_ERR,
+                    "ARM CCA: VDEV request exits are unsupported "
+                    "id=%#lx:%#lx\n",
+                    (unsigned long)run->exit.vdev_id_1,
+                    (unsigned long)run->exit.vdev_id_2);
+            arm_cca_domain_crash(v);
+
+        case ARM_CCA_RMI_EXIT_VDEV_VALIDATE_MAPPING:
+            gprintk(XENLOG_ERR,
+                    "ARM CCA: VDEV mapping validation exits are unsupported "
+                    "range=%#lx-%#lx pa=%#lx\n",
+                    (unsigned long)run->exit.dev_mem_base,
+                    (unsigned long)run->exit.dev_mem_top,
+                    (unsigned long)run->exit.dev_mem_pa);
+            arm_cca_domain_crash(v);
+
+        case ARM_CCA_RMI_EXIT_VSMMU_COMMAND:
+            gprintk(XENLOG_ERR,
+                    "ARM CCA: VSMMU command exits are unsupported "
+                    "vsmmu=%#lx\n",
+                    (unsigned long)run->exit.vsmmu);
+            arm_cca_domain_crash(v);
+
+        default:
+            gprintk(XENLOG_ERR,
+                    "ARM CCA: unknown REC exit reason %#x\n",
+                    (unsigned int)run->exit.exit_reason);
+            arm_cca_domain_crash(v);
+        }
+    }
+}
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index d2ee90248a44..c8330e7c969c 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -302,6 +302,10 @@ static void noreturn continue_new_vcpu(struct vcpu *prev)
 
     if ( is_idle_vcpu(current) )
         reset_stack_and_jump(idle_loop);
+#ifdef CONFIG_ARM_CCA
+    else if ( is_vcpu_realm(current) )
+        arm_cca_vcpu_run(current);
+#endif
     else if ( is_32bit_domain(current->domain) )
         /* check_wakeup_from_wait(); */
         reset_stack_and_jump(return_to_new_vcpu32);
diff --git a/xen/arch/arm/include/asm/arm64/hsr.h b/xen/arch/arm/include/asm/arm64/hsr.h
index 1495ccddeab6..7cdddd6ae903 100644
--- a/xen/arch/arm/include/asm/arm64/hsr.h
+++ b/xen/arch/arm/include/asm/arm64/hsr.h
@@ -86,6 +86,7 @@
 #define HSR_SYSREG_PMINTENCLR_EL1 HSR_SYSREG(3,0,c9,c14,2)
 #define HSR_SYSREG_MAIR_EL1       HSR_SYSREG(3,0,c10,c2,0)
 #define HSR_SYSREG_AMAIR_EL1      HSR_SYSREG(3,0,c10,c3,0)
+#define HSR_SYSREG_ICC_DIR_EL1    HSR_SYSREG(3,0,c12,c11,1)
 #define HSR_SYSREG_ICC_SGI1R_EL1  HSR_SYSREG(3,0,c12,c11,5)
 #define HSR_SYSREG_ICC_ASGI1R_EL1 HSR_SYSREG(3,1,c12,c11,6)
 #define HSR_SYSREG_ICC_SGI0R_EL1  HSR_SYSREG(3,2,c12,c11,7)
diff --git a/xen/arch/arm/include/asm/hsr.h b/xen/arch/arm/include/asm/hsr.h
index 9b91b28c48e3..29a91bf866f1 100644
--- a/xen/arch/arm/include/asm/hsr.h
+++ b/xen/arch/arm/include/asm/hsr.h
@@ -168,6 +168,10 @@ union hsr {
 #endif
 };
 
+/* HSR.EC == HSR_EC_WFI_WFE */
+#define HSR_WFI_WFE_WFE    (_AC(1, UL) << 0)
+#define HSR_WFI_WFE_WFXT   (_AC(1, UL) << 1)
+
 /* HSR.EC == HSR_CP{15,14,10}_32 */
 #define HSR_CP32_OP2_MASK (0x000e0000)
 #define HSR_CP32_OP2_SHIFT (17)
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:11:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:11:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309429.1580501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjts-0001Mb-Ma; Fri, 15 May 2026 04:11:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309429.1580501; Fri, 15 May 2026 04:11:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjts-0001MN-IW; Fri, 15 May 2026 04:11:48 +0000
Received: by outflank-mailman (input) for mailman id 1309429;
 Fri, 15 May 2026 04:11:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjtq-0000ts-Qa
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:11:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjtq-0052Iz-6g
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:11:46 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069cda-e002-0a2a0a5209dd-0a2a4505a2ee-20
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:11:46 +0200
Received: from [52.101.125.85]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c47-aaa8-0a2a45050019-34657d55753b-7
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:45 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYCP286MB3682.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 04:08:38 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KHS27FapKNanGflrIFw/hM2kwNkQX/WePq3xlEM6xUNYPVEYtmx9BWO1Z6lo57SRVOTwKuWv/ZAJVGpMYzH/t45gcDmFMPL1TpT2xoz3DMHu0x4mJ25XYlLDKFkJ2k/pQfa7vfCntNIiyNowixl92fsBWYKmN/RVp5nEVX9ukyEYCxAd6vtJRwOOq2LhVMVcC4+is4oVh7CikZ9lWQMnKq0BINvo4jlkHpm0fg7JFXCeTT/ELG9LUT2CbPQtXyK32qdst02MDTmNjd1lSMdfBxhjdxGAoDxCMDE6HHyVHjLxUlzHs+p7zQnHi81MjMV7GtcnDF1bsUi9BOaLbfAQ3Q==
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=S5/dP4DpjlJzyHFiGX9Dvr0WUYwSm5khsV8ePzx5S4I=;
 b=nmXuiUvdJ3Flt5/DT6NdKZ+A+dIDNxEmujoQV8WKWtYx4BU9X0SopJBgOr89fzHVPDAntfmSiHlnT5nNK9HD+Wo5R6ApOLUPQgydzW3Pk+PUOJLgFoAg+ql2VKFFV/QiRIE+9exzqW6+o1Amef6g/89ktFiso/zxjbRclDSaWmrp3j3d5Z7+47wE4jB2+xjJzpSfyy9KkwEl6z4piJ+lSnpUgxXV5ZxmSeUEW86aQo/AKW+hqbVmFoSH/tpQDmIlsKZ+sQSa7nWmyirpwD/16aEcN78nFBhjt50hbZxk27oXHF10mSh5ZD3Ll3j5bmFQsoxxOrJ36ZbftXFsESRIJQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=S5/dP4DpjlJzyHFiGX9Dvr0WUYwSm5khsV8ePzx5S4I=;
 b=AlLdhX9vH/fpSFPgkhutEVZ8Y9i1S8sgzNpwya8a17SF/zHYi+guBKZwnQgUpjXj9nV4xtDq0y6W6pZL1alGZ2TY1MCNZk8pYARm2aEG0mTq0yoxcYcq0mtnpvRyWQYHsmwRvWXJHs278ob3NWrPu8CMST2cNsstFRC7qtG3Sx0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 23/26] xen/arm/cca: handle Realm RIPAS and GIC sysreg exits
Date: Fri, 15 May 2026 13:08:09 +0900
Message-ID: <20260515040812.983626-24-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYWPR01CA0023.jpnprd01.prod.outlook.com
 (2603:1096:400:aa::10) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYCP286MB3682:EE_
X-MS-Office365-Filtering-Correlation-Id: b2261427-5b75-45f1-8765-08deb237a34a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|366016|376014|7416014|56012099003|3023799003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	kKzqrQuiXntSMHlRULX9ohEW5gS0/Yqvl12mkFR5/s5V91S7VGC2Ugpvvm+28UOmz173JNZntmzvE2QrEQ98cFiFcgna7kdSPM6YGUjnM0xqi5R3CJcKFyBtN0dV/Dp4rNQGAyILXwz39mttyy4kRZNRDRl5dPBfuO9ry3oPw2b8vDktHYdrPtrzCO9bQyze7x0fyuOY48fD6gH8IpC/bZ0KYm2lnB6VMGwQw+gYs5Da12RgptpUYVoa+bppGLhDoKRI8FDD4wdL9HFMOf+LfiExyknbCwjI6vOd75gnZd7OAcEVLqItd1aucq9rGQmxYiGtlqtL2r+Y4cGKjTbojMJPfoCoXD1I2ejNvYrq6wajjGcw/OICmMB3/25tCN3pLWnOJHE4SKTAcvXTK5+EGHEhC5xkG2m/l+w6cVEtM6omKR+qxY7pCKmI2GdtIweaq5JQTX8depB5LgP1hAOtFQ1/rKiHIdPc0WCfi6DaRQhdu6X0eCFYt7UxkYZFboWRfloJVpqkJWvsP9+WFtpXHx3+i/TFPHaaGDjqM96It9gkK8IkNkN+22er7pC0MIK07epxjkP3SH/V6XvC8gvnKFlGq6CkaJwNbLvnFKHf32JbXfOZHm9QOEa91x/WzDxYpv1o/mpbtqCFeD/5IicP3A8+mmQViDwgj4SIUJIVQXgWfYs2ixTVA0rvacfxJs8H
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(366016)(376014)(7416014)(56012099003)(3023799003)(22082099003)(18002099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?VbuRPicApTONRsXcvX3RJSw3ENkg2rRzKwgFu1fF4LoJR2fppAUKOM7U7A0r?=
 =?us-ascii?Q?S0AYWytJbMnedlp1I82OgsXd/442UGX1d+XAppmJRviyWefISlyRlO3DE5gE?=
 =?us-ascii?Q?VDmLOL8BVofqAKwM7hgjr8xYA+Oauayh8GGATNOLygs7WdH5AJagpPU9xJyo?=
 =?us-ascii?Q?qhVCnnnYK2sXaxsIjgCzgM9g00rIvsZjxzLKxVdhTBEY/CKVHx1Z7L3gfCNh?=
 =?us-ascii?Q?GPgQGKmLiaEWUr/muYaBJwIVmIX0AmsWub+6n2WfTg1bwvKEhm2evOLowgRo?=
 =?us-ascii?Q?ZXabVQ3gteTRZjUTRLrahwtfjLrRh6aObwlcQQ+4fc2l4u3b3P+Zjy4PQpob?=
 =?us-ascii?Q?ZQeAf2zqBxX1qSjjuiwNaohbl+UEp/17x1QATLQsDWYwHS1s0343y/s5V/E6?=
 =?us-ascii?Q?b+R/AKmikRes3Lp6JPp/hC7dx1DgGwPEOOW3w0E6Eas95jKZO7Q3SO0jAZjy?=
 =?us-ascii?Q?r1AR6KO5XT5s8QBCT+YqZfjVVF7uJ3z9t7MSx+itNd3jkowFE25G+kPoeIum?=
 =?us-ascii?Q?gO/mQh+MShOBJG3zOzpxztCwTc/OOVqZPWzS8Fo++oPAYjPZZCw17Cf1lLz/?=
 =?us-ascii?Q?RZrJ4Wq+09xsJwoFxdC0qXe5gQ/4sz6NfKXdI51CI0NaCUmPRNhNUNu9cp3y?=
 =?us-ascii?Q?bNFGOsvMnsbJER2r8nyf6cYvQaL/T7CG7xHIfxg2vwbcw6TIZY5Hprk6vI3G?=
 =?us-ascii?Q?4/kteMa2wTuNrM1wlpDD0Cr0qyOzEiOPDErMimEoU1TYWZPSB6HIxFdbll+d?=
 =?us-ascii?Q?waHzDEcogydr84G3GFDkh7mi5im+5wu5zg/vZT+7oyC4wwIzDKfdc83UrmRx?=
 =?us-ascii?Q?Txhj73/VEKWkGS9+dXWf0YzFZCyrOZHvPgrC8y2iwMbJN0dC8+hdrk2943jL?=
 =?us-ascii?Q?66r43zkJ2TZnAXzAXVhf0D4tSwy4hXmeTrhCMkKlf4UqXA9vlsXzERhMcuGD?=
 =?us-ascii?Q?/IZxSy5HFAwIakNy+lFY1XsL84vHiL5Uu0siSPFMBBivLKz7I8PIl/Ny1lJf?=
 =?us-ascii?Q?TY5T8f+4Hk/jM5i4sH1jaiutGB+TbpCzYbKL9iZ5MIH+ETXW3TTU2niJfTR8?=
 =?us-ascii?Q?4D8DycSuLq9SFPxoKxb/TwIhkiubjHPHs802jk7UXHLtkP/VlNQ2kMWuAOP9?=
 =?us-ascii?Q?8R+8zlgYEuPFsOSxUPfYlurx5I0O/8yI6VnC3KPYAjjTerBlUG3NjVpr+vWf?=
 =?us-ascii?Q?XqLmfGrg6K9be2YNuIQwQhThHwzR7/dww8B9T0R3ZmX8Xjp+/xCjXGGIKrcY?=
 =?us-ascii?Q?60Q2JdIElYxvwBQJUmSTLRhKqlMyoyl6dS5QgkuyXf28nJeEBkaV1bB2K/wc?=
 =?us-ascii?Q?q6Y+uwr52N8irgjEswNgauOrng1MRSUuwZqMzzWmsu0wkvGvFGY8ZYmWL493?=
 =?us-ascii?Q?vhVK8UtVhgZuGp7a1lbdfX08YQc44mnbxSmF84DsnBKJvfheNI+mF0Pe6Ea4?=
 =?us-ascii?Q?j6OQjoe/wJkKKGpfMe4YDH9xxseXmWjU0bb6KO/kpkHsgExEDiuidguczV/U?=
 =?us-ascii?Q?5NakORDdk53Mse2lrymUuLOv5M2BBhEuizJp9vLHKs73N5T+uZuBPPU0SGw2?=
 =?us-ascii?Q?xBv28DDlWyWdXsMwJkkSwTjZRdnivqh0U9U/Igz5SQvte3yhcqSqH75U33fo?=
 =?us-ascii?Q?w4bNstqzPnMeysI29FMdopxvpIpvYSuPZU65ugq7hwAKNsd8gurInXocvL1u?=
 =?us-ascii?Q?9vHOCNhWsRKcCLjmyAbz+KmqG4LitEgPFYhNu3SzG88s/LCOZyGqbfR+5Ncf?=
 =?us-ascii?Q?9NijOhNZva6Js6YzUepFAdeMcDSUoF5ncLezfuw3TzXxE2q7q+Z5?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: b2261427-5b75-45f1-8765-08deb237a34a
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:36.6233
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: e5RGytGlFMehnYhjDNOxuxmCZ5zeP8ruGMsKRE+DMT8JhHp6cziGk1VpWXXPtMO3sNBDKNpJMVQrTEUtxtaAAQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCP286MB3682
X-purgate-ID: tlsNG-c201ff/1778818125-DB961443-325CF7CC/0/0
X-purgate-type: clean
X-purgate-size: 9354

Handle RIPAS changes and selected GICv3 sysreg exits. RIPAS work runs
before the next REC entry, and sysreg transfers use ESR_EL2.ISS.Rt.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/rec.c | 209 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 206 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/cca/rec.c b/xen/arch/arm/cca/rec.c
index efff7fa48745..7959fb767e11 100644
--- a/xen/arch/arm/cca/rec.c
+++ b/xen/arch/arm/cca/rec.c
@@ -399,6 +399,66 @@ static void arm_cca_set_mmio_result(unsigned long *entry_flags,
     entry_gprs[0] = value;
 }
 
+static register_t
+arm_cca_rec_exit_gpr(const struct arm_cca_rmi_rec_exit *exit,
+                     unsigned int reg)
+{
+    return reg < ARM_CCA_RMI_REC_NR_GPRS ? exit->gprs[reg] : 0;
+}
+
+static void arm_cca_rec_enter_set_gpr(register_t *entry_gprs,
+                                      unsigned int reg,
+                                      register_t value)
+{
+    if ( reg < ARM_CCA_RMI_REC_NR_GPRS )
+        entry_gprs[reg] = value;
+}
+
+static bool arm_cca_vgic_emulate_sgi1r(struct vcpu *v, register_t sgir)
+{
+    return vgic_v3_to_sgi(v, sgir);
+}
+
+static bool arm_cca_vgic_emulate_dir(struct vcpu *v, register_t dir)
+{
+    unsigned int virq = dir & GICC_IAR_INTID_MASK;
+    struct gic_lr lr;
+    unsigned int i;
+
+    /*
+     * RMM may exit to Xen for Realm ICC_DIR_EL1 accesses.  Handle the
+     * deactivation locally when Xen can find a matching software LR.
+     * DEN0137 2.0-bet1 - A6.1 Realm interrupts.
+     */
+    if ( virq >= vgic_num_irqs(v->domain) )
+        return true;
+
+    for ( i = 0; i < gic_get_nr_lrs(); i++ )
+    {
+        gic_hw_ops->read_lr(i, &lr);
+
+        if ( lr.virq != virq || !lr.active )
+            continue;
+
+        if ( lr.hw_status )
+        {
+            gprintk(XENLOG_ERR,
+                    "ARM CCA: ICC_DIR_EL1 on hw-backed vIRQ %u is unsupported\n",
+                    virq);
+            return false;
+        }
+
+        lr.active = false;
+        gic_hw_ops->write_lr(i, &lr);
+        isb();
+        vgic_sync_from_lrs(v);
+
+        return true;
+    }
+
+    return true;
+}
+
 static void arm_cca_request_sea(unsigned long *entry_flags,
                                 register_t *entry_gprs)
 {
@@ -560,6 +620,87 @@ static void arm_cca_handle_psci_exit(struct vcpu *v,
     }
 }
 
+/*
+ * DEN0137 2.0-bet1 - D1.5.3 RIPAS change flow.
+ * RIPAS_EMPTY and RIPAS_RAM changes are applied with RMI_RTT_SET_RIPAS.
+ * RIPAS_DEV requires VDEV mapping validation support, while RIPAS_DESTROYED
+ * is not a Realm-requested target state.
+ */
+static void
+arm_cca_handle_ripas_change(struct vcpu *v,
+                            const struct arm_cca_rmi_rec_exit *exit,
+                            unsigned long *entry_flags)
+{
+    struct arm_smccc_res res;
+    paddr_t base = exit->ripas_base;
+    paddr_t top = exit->ripas_top;
+    int rc;
+
+    if ( v->domain->arch.cca.rd == INVALID_PADDR )
+    {
+        gprintk(XENLOG_ERR,
+                "ARM CCA: missing RD for RIPAS completion\n");
+        arm_cca_domain_crash(v);
+    }
+
+    switch ( exit->ripas_value )
+    {
+    case ARM_CCA_RMI_RIPAS_EMPTY:
+    case ARM_CCA_RMI_RIPAS_RAM:
+        break;
+
+    default:
+        gprintk(XENLOG_ERR,
+                "ARM CCA: unsupported RIPAS change value=%u "
+                "range=%#lx-%#lx\n",
+                (unsigned int)exit->ripas_value,
+                (unsigned long)base, (unsigned long)top);
+        arm_cca_domain_crash(v);
+    }
+
+    /*
+     * Note that RMI_RTT_SET_RIPAS uses the pending request recorded in the
+     * REC, so the Host does not pass the target RIPAS value explicitly here.
+     *
+     * Xen accepts the request while progress is possible. If a RIPAS_RAM
+     * request reaches a point the RMM cannot change, report Host rejection on
+     * the next REC_ENTER so the Realm sees the normal RSI response.
+     */
+    while ( base < top )
+    {
+        rc = arm_cca_rmi_rtt_set_ripas(v->domain->arch.cca.rd,
+                                       v->arch.cca.rec,
+                                       base, top, &res);
+        if ( rc != 0 )
+        {
+            if ( exit->ripas_value == ARM_CCA_RMI_RIPAS_RAM &&
+                 arm_cca_rmi_status_is(arm_cca_rmi_result(&res),
+                                       ARM_CCA_RMI_ERROR_RTT) )
+            {
+                /* The RIPAS response flag value 1 means Host reject. */
+                *entry_flags |= ARM_CCA_RMI_REC_ENTER_FLAG_RIPAS_RESPONSE;
+                return;
+            }
+
+            gprintk(XENLOG_ERR,
+                    "ARM CCA: RMI_RTT_SET_RIPAS failed status=%#x data=%#lx\n",
+                    arm_cca_rmi_status_code(arm_cca_rmi_result(&res)),
+                    (unsigned long)arm_cca_rmi_result_data(
+                        arm_cca_rmi_result(&res)));
+            arm_cca_domain_crash(v);
+        }
+
+        if ( res.a1 <= base || res.a1 > top )
+        {
+            gprintk(XENLOG_ERR,
+                    "ARM CCA: invalid RIPAS progress %#lx -> %#lx (top %#lx)\n",
+                    (unsigned long)base, res.a1, (unsigned long)top);
+            arm_cca_domain_crash(v);
+        }
+
+        base = res.a1;
+    }
+}
 
 /*
  * DEN0137 2.0-bet1 - D1.3.3 REC exit due to Data Abort fault flow.
@@ -573,6 +714,55 @@ static void arm_cca_handle_sync_exit(struct vcpu *v,
 
     switch ( hsr.ec )
     {
+    case HSR_EC_SYSREG:
+    {
+        unsigned int rt = hsr.sysreg.reg;
+        register_t val = arm_cca_rec_exit_gpr(exit, rt);
+
+        /*
+         * Realm guests use the GICv3 sysreg CPU interface:
+         * - Linux expects ICC_SRE_EL1.SRE to read as enabled.
+         * - SGI generation and explicit deactivate stay in Xen's vGIC path.
+         *
+         * DEN0137 2.0-bet1 A6.1 makes ICC_* traps System register exits,
+         * but A4.3.4.4 only guarantees ESR.  Use the Rt encoded in ESR_EL2.ISS
+         * for the transfer GPR.  Current TF-RMM clears Rt for these exits,
+         * making this equivalent to its gprs[0] convention.
+         */
+        switch ( hsr.bits & HSR_SYSREG_REGS_MASK )
+        {
+        case HSR_SYSREG_ICC_SRE_EL1:
+            arm_cca_rec_enter_set_gpr(entry_gprs, rt,
+                                      ARM_CCA_ICC_SRE_EL1_VALUE);
+            break;
+        case HSR_SYSREG_ICC_DIR_EL1:
+            if ( hsr.sysreg.read ||
+                 !arm_cca_vgic_emulate_dir(v, val) )
+            {
+                gprintk(XENLOG_ERR,
+                        "ARM CCA: unsupported ICC_DIR_EL1 access read=%u val=%#lx\n",
+                        hsr.sysreg.read, val);
+                arm_cca_domain_crash(v);
+            }
+            break;
+        case HSR_SYSREG_ICC_SGI1R_EL1:
+            if ( hsr.sysreg.read ||
+                 !arm_cca_vgic_emulate_sgi1r(v, val) )
+            {
+                gprintk(XENLOG_ERR,
+                        "ARM CCA: unsupported ICC_SGI1R_EL1 access read=%u val=%#lx\n",
+                        hsr.sysreg.read, val);
+                arm_cca_domain_crash(v);
+            }
+            break;
+        default:
+            gprintk(XENLOG_ERR,
+                    "ARM CCA: unsupported SYSREG ec=%#x sysreg=%#lx\n",
+                    hsr.ec, (unsigned long)(hsr.bits & HSR_SYSREG_REGS_MASK));
+            arm_cca_domain_crash(v);
+        }
+        break;
+    }
     case HSR_EC_WFI_WFE:
         /*
          * DEN0137 2.0-bet1 - A4.3.4.1 REC exit due to WFI or WFE.
@@ -619,6 +809,7 @@ void noreturn arm_cca_vcpu_run(struct vcpu *v)
     struct arm_smccc_res res;
     unsigned long entry_flags;
     register_t entry_gprs[ARM_CCA_RMI_REC_NR_GPRS];
+    bool pending_ripas = false;
     int rc;
 
     ASSERT(v == current);
@@ -663,6 +854,19 @@ void noreturn arm_cca_vcpu_run(struct vcpu *v)
         arm_cca_check_for_vcpu_work(v);
         arm_cca_service_host_events();
 
+        /*
+         * RMI_RTT_SET_RIPAS can cover a large range.  The REC exit buffer
+         * remains valid until the next REC_ENTER, so complete the request
+         * here with IRQs enabled rather than in the exit dispatch path.
+         */
+        if ( pending_ripas )
+        {
+            local_irq_enable();
+            arm_cca_handle_ripas_change(v, &run->exit, &entry_flags);
+            local_irq_disable();
+            pending_ripas = false;
+        }
+
         arm_cca_prepare_rec_enter(run, entry_flags, entry_gprs);
         entry_flags = ARM_CCA_RMI_REC_ENTER_FLAG_TRAP_WFI |
                       ARM_CCA_RMI_REC_ENTER_FLAG_TRAP_WFE;
@@ -700,9 +904,8 @@ void noreturn arm_cca_vcpu_run(struct vcpu *v)
             break;
 
         case ARM_CCA_RMI_EXIT_RIPAS_CHANGE:
-            gprintk(XENLOG_ERR,
-                    "ARM CCA: RIPAS change exits are unsupported\n");
-            arm_cca_domain_crash(v);
+            pending_ripas = true;
+            break;
 
         case ARM_CCA_RMI_EXIT_SYNC:
             arm_cca_handle_sync_exit(v, &run->exit, &entry_flags,
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:11:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:11:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309432.1580510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjtt-0001c4-VT; Fri, 15 May 2026 04:11:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309432.1580510; Fri, 15 May 2026 04:11:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjtt-0001bm-Qd; Fri, 15 May 2026 04:11:49 +0000
Received: by outflank-mailman (input) for mailman id 1309432;
 Fri, 15 May 2026 04:11:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjtr-0001A8-Pz
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:11:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjtr-0052Iz-6G
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:11:47 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069cda-e002-0a2a0a5209dd-0a2a4505a2ee-22
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:11:47 +0200
Received: from [52.101.125.85]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c47-aaa8-0a2a45050019-34657d55753b-8
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:46 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYCP286MB3682.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 04:08:39 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=csRRytBgoUiTNTiGYAWfRvR038K87mpAVDc1ToAnhFL/4PRstmBF1oSwr0rGUBDgj+5kQ2t+sOliElPlg2B31xfhU6ZUKFmoexColqKyfnYZorqK1mcSccwUSgyfAKl/jCrsBAXsDwGNYIodOGsUh6co3RLZoDfdCibJ2c5KiDkUK97bihHGWn9lMVTCKKAN1JHXHXbzF5rc8smiTXf32CeVjBpsVhNBrlwF3wUrc/mG3n5dw1d7d3aqsfDXV4XgU0uWuXIxcsjUf4by4UQXMd7xCGRmRbuwLyCdr4wINvaPyR12G3cEIGc53LqhR7xmPC1SqadM+HDVEg1jF4MhlQ==
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=RPhd/zOT+Y6mzSTQOAaKE/lOmvaSbNYRD4sELEkar04=;
 b=GoLx3Bim8gBqVZhpHe2XXSE0zlTspOgiBoYZLXy9RKB0AHUaKCf1p8pLZZAxhy0IvelX7it+wYabXB9fufRGic8avukbSn+x/RZ7D1T3e5y9O6Arl7QaS2dovdGpQVpLKvnifioKt0zib+VTsP3t3LSjJpN9MxLNC72VZLhBug4C5do3jbKkd03qRqqf+Q9bEJcwG3sIMhPlvVzDZIb9OwXT3HEQfh5+YmzEcIfcDXAKw6dzfVZw4BvW7pTBkLTZW7Y98gbne0PXclN2g9XQIW4cAoIc117blM9+cXWwrt9QqNZ+jrEZMhyPeuDNJzWH30VSbIB76q1Q1qq5bKYyxw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RPhd/zOT+Y6mzSTQOAaKE/lOmvaSbNYRD4sELEkar04=;
 b=jA92sWMZwZvPzmmMQvhDvVPHZ491YctGlVZNjZFPsR1LkZtbHrE/zuDCQcx5p/8HGPhok4X9/ZG01WROQVQHjh6j6gbsBNISSnILdLo5IsRn70hXiwtFB+0tC5Dm0sGjj7kgkf3BN1+u1Thp/vH0MeJ2rdUjG30uIcsPEAF1g0U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 26/26] docs: arm: add an Arm CCA Realm guest guide
Date: Fri, 15 May 2026 13:08:12 +0900
Message-ID: <20260515040812.983626-27-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYWPR01CA0022.jpnprd01.prod.outlook.com
 (2603:1096:400:aa::9) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYCP286MB3682:EE_
X-MS-Office365-Filtering-Correlation-Id: 4f853f27-7630-47c1-8aaa-08deb237a4bf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|366016|376014|7416014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	iG8bhiNBf3L8V91D6ZjRADtT05IP3NeIAIxnrwgEgThks037t9/K0NWSIvIkwYIMdxKUPblV+RCYcjUqDXW/mS6Br0Sn0JiKr5gdNjLTvrrhz+smyV/xkIlsl66IE42sanTvwQQ1pDFisboRRm63GmT6cRWpsj8PC5q0V+c3APTsxp8lVB6gGtOnyY5b0aAxqA46Zf2HjYkYu3M8NupKk0GiEmglngnuD8Y33RiaVT7mEl0ZNKVP0zyOGcpWDryKIaS3wIAasHCbBT76As4QowBy7f1D/DDoX82xlLF6hejB1QRvEOp5bNUHMYB7ljCdb+ZCFo1ue0B45ZMN82WC0+C3rW1S0FBB2Yt6bt+CGnIlHq/veZB0/wo38LoB4m6sczAjxFrzP6CwKHfOfyeOW1wPwgdg3dULR5mUBgwI9jhWRxRUEmMS+9gv5o5BmU9CDGzSkhTH03mDjFXW4OU+KLMhX1N4kyqgoStDU5EnSgGTzOJi2BcEXcfPXFyRKgOzb9bBlnjoH85LK7lolFD0x7N94N9d6zWwzKzFkmXVslXSNG/iSFxFhmag8Lzqeq/yIhlCX3+lVphHahYOY9Nw22yRheDrcxGEChEKsDCiWzQLpO1hV1ICvILnVmfCMNwwMTJCF12s104tg4kr00N488GaHn8B34+fG98W2l7oERB25v9uvHHKcKi2IPCLFVzv
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(366016)(376014)(7416014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?+cJcZPgjEmq59e9SLGOzXici+gJsDcvJRdrWGxJt6Qd31+BTNcKaVRuolP7D?=
 =?us-ascii?Q?Ndw7DdpT5auWAD7MBEjttse3rEqyDkA31DhHuX6qKvU7/uFsv66u70SgTXxA?=
 =?us-ascii?Q?Avn47i01nOsWEB2k9zdRaJCpBa/LVQRVDZp7ixtnsvuJzwJmBe9G3W/cPwZk?=
 =?us-ascii?Q?zPJes4mSvKnm09u0qr5mg4vOaXAdfVv9MVeA7eJbxC8pyPoEzQYFADw7edTi?=
 =?us-ascii?Q?MgXksWbbmGNFPbCEYIjSmfOd8sPWbAK53hqvkimj1cEeDGxTJPUHnjr80e/k?=
 =?us-ascii?Q?R2wxBsUUlCsMlRIQjdBuNcRpqqLzcduAm8oyOrawJaabpNecwLlzIMjJd+aR?=
 =?us-ascii?Q?/YNz9LF3oiJjLTqmVUutYOnTQZYQ6vcCLvFSvit3c6VJ3FaiuZvJFvlv4fQB?=
 =?us-ascii?Q?1useXdN6P1I+SGUNXlCs/r0KXVl8SGFlPWdh6lXJV1EJsnVp0biTg/lbbTH6?=
 =?us-ascii?Q?PTMkp/Q9u6LLWmOEfiU1KhoAUPuZa5bECGkwi3+V1szxf7frKR5TnIoPu3ig?=
 =?us-ascii?Q?IugdqaG5GfUV1FnKPG3EKBDXTGeiAuI9mAesXazQthnqhISj/VV5H5X8NJFj?=
 =?us-ascii?Q?oe0u4fhiM7mFsbGr/HyJi+XP9wNXWOC2+pgs/3gGbBqp7G8aVfwj/mgJWhsT?=
 =?us-ascii?Q?XsV4WO3T9kn4dClRdJCcjqlXxcRyhLVsJvNKaqWHSzrhunJJmO2XSS2SaDb4?=
 =?us-ascii?Q?6XNPrzRTwvTJAQ/aPiJ1SQpOeSOoaPhYtZ/P8lVpdIC3qvQQl/V1aXmF7XuI?=
 =?us-ascii?Q?BznPcOR9Sq4BzRKmEAO+oAWgTdH78Gx2pKXlbRb7FbQpqXpBhFHHEPEtCvZ7?=
 =?us-ascii?Q?UeQVXo2f7t99JOX+JbI6g0yTkcaUiBH9Y6WxgdheJyIlu/WIXK5ErCqTavg5?=
 =?us-ascii?Q?3dJCYvdktLYagDJFjBKrt4mEWMsH9nVB3GeEeBMnSbkM9ZUKQJ+ODY29Po2A?=
 =?us-ascii?Q?K6f9oVq/sBcC1zr0PZQCC5hu1HT9QXadn3DwNwVCkuS76C2PST5c75TR9jN2?=
 =?us-ascii?Q?hMt7lrBuRRpadZWJAzy9p76icSdu4c9kUXKFpWN+kVtvjncBsnKJ9pUJ9Zgm?=
 =?us-ascii?Q?FyFArrCVacA7iS31fnWH2av7Y50GmQSs6PePfeB+Txyc6N7ipKBPcGk48EX9?=
 =?us-ascii?Q?oNr1hz4CKghCFCt9U4eIxrWI14v0pTuo5SI9X4JlCr0E5f3YN2z4Qr/KF5/L?=
 =?us-ascii?Q?ZSef8o6TTHYCSHcw/jsBKF9OaCAa29DDEHi2xCj757ySUlp9f7ezJzivdsCC?=
 =?us-ascii?Q?jJ6GZK0glNoPHaPF8+WRj9nazDn/7PjEyqOAMz94UGG3QH5GR1KNfevKcWqj?=
 =?us-ascii?Q?f9BLtwZpVlrrgKRc/SEpsno3SolOoo5RV+0XZ9wf4VZea53CMJEffPfNcgq+?=
 =?us-ascii?Q?b+oaYAxS/2P5DZJb29ZzQ9kSiGfi6M9KG9zfKsbYo80m5WRnY0PshHJauFXI?=
 =?us-ascii?Q?YpQmTcI3qpHh4B1YcFgi/C4l1J3bA/KxeA3Pzpq/Y1oO+pWBUl8Eyj99A84t?=
 =?us-ascii?Q?JRib/ResCZa1UjaODlrqrSpApLUN4FP/x4e8xNXA//XIsckBqe8E7DQfSI1C?=
 =?us-ascii?Q?m5bJ+3XgYVdTiG75b7dzT9z+A5nl78UbJYhl/mDUSiR6YgOrNJfKu8PG7xGJ?=
 =?us-ascii?Q?LzB6/05j0zcJUz59qaJ8WSKAi6/opkljyuJHpJIdAZEGbKFu0XwO2zUr47Tf?=
 =?us-ascii?Q?Y3+K9Ht1V8cRhw57NRCqSgRRMRlvdcjXTrnDkKOg2gxKJmOB+eMbz9ngYm7m?=
 =?us-ascii?Q?EOkCtAR68DoVEgdOv86he2kkunFAKhbBW+RlrWXpheRSQIoeIXap?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f853f27-7630-47c1-8aaa-08deb237a4bf
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:39.0799
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Dl9+tJWufWZGF17Cg5QgYTJS8Us9TpfUQYut/AxzExUGFiCwHRlgcdZumL7OfD5i4IugtkhIS3zXtrzGt4Fm7A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCP286MB3682
X-purgate-ID: tlsNG-c201ff/1778818126-DAD6F443-8A34C642/0/0
X-purgate-type: clean
X-purgate-size: 4119

Document the Realm guest model, the current build/runtime flow, and the
limits deliberately left outside this implementation.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 docs/hypervisor-guide/arm/cca-realm.rst | 83 +++++++++++++++++++++++++
 docs/hypervisor-guide/arm/index.rst     |  1 +
 2 files changed, 84 insertions(+)
 create mode 100644 docs/hypervisor-guide/arm/cca-realm.rst

diff --git a/docs/hypervisor-guide/arm/cca-realm.rst b/docs/hypervisor-guide/arm/cca-realm.rst
new file mode 100644
index 000000000000..9a0a63220bfb
--- /dev/null
+++ b/docs/hypervisor-guide/arm/cca-realm.rst
@@ -0,0 +1,83 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+======================
+Arm CCA Realm support
+======================
+
+Overview
+========
+
+Xen can create Arm CCA Realm guests and run their vCPUs with
+``RMI_REC_ENTER``.
+
+The initial support implements the DEN0137 2.0-bet1 Realm lifecycle: Xen
+creates the RD and RTTs, initializes RIPAS, populates measured DATA granules,
+creates RECs, and activates the Realm.
+
+Guest creation model
+====================
+
+Realm guest creation is exposed through ``libxl`` with ``realm=true``.
+
+Realm guests are currently restricted to:
+
+* 64-bit Arm PVH
+* GICv3
+* a Xen-generated device tree
+* guest RAM fully contained within the first guest RAM bank
+
+When ``realm=true`` is selected, Realm DTBs set the PSCI method to ``"smc"``
+and do not include the Xen hypervisor node, because Xen PV interfaces are not
+exposed to Realm guests. The only supported virtual console is
+``vuart="sbsa_uart"``.
+
+This VUART is a host-visible clear-text debug channel. It is accepted only when
+``CONFIG_ARM_CCA_REALM_DEBUG_VUART=y`` and is not suitable for
+confidentiality-oriented Realm deployments.
+
+Runtime model
+=============
+
+Each Realm vCPU has a REC and a ``RecRun`` buffer shared between Xen and the
+RMM in non-secure memory. Xen enters the Realm with ``RMI_REC_ENTER``. On
+return, the RMM provides an ``RmiRecExit`` describing why the REC stopped.
+
+Before handling an exit, Xen synchronizes the Realm-side vGIC and timer state
+needed by the host model. The current path handles the exits needed by this
+series: host interrupt returns, emulatable MMIO, a small GICv3 sysreg subset,
+``WFI/WFE``, PSCI, and RIPAS changes. Other exits are treated as unsupported.
+
+Current implementation notes
+============================
+
+* Initial Realm RAM population currently measures all populated DATA
+  granules.  There is no separate interface for passing measured ranges
+  from the toolstack.
+
+* Xen tracks up to 64 accepted donation pages for one memory-transferring
+  SRO. This is a Xen implementation cap, not an RMI limit.
+
+* Xen checks that host RAM is fine-tracked conventional memory and ensures
+  GPT L1s exist before it creates Realms.
+
+Known limitations
+=================
+
+The initial support is small in scope.
+
+* No Dom0less Realm launch at Xen boot
+* No Xen PV, grant-table based, or virtio device exposure to Realm guests
+* No passthrough or Realm device assignment, including VDEV/VSMMU handling
+* No ACPI support
+* No Multi-Plane Realms or S2AP change exits
+* No Realm LPA2, SVE, or PMU support
+* Fixed Live Firmware Activation policy, ``RMI_LFA_DISALLOW``
+* Shared MEC policy only
+* Fixed zero Realm Personalization Value
+* No non-4KB RMI granule or non-1GB tracking-region configuration support
+* No Realm shared-memory mappings via
+  ``RMI_RTT_UNPROT_MAP`` / ``RMI_RTT_UNPROT_UNMAP``
+* No ``RMI_EXIT_HOST_CALL`` handling
+* No hardware-backed vIRQ deactivation in the ``ICC_DIR_EL1`` emulation path
+
+This document should be updated as the Xen/Arm Realm feature set expands.
diff --git a/docs/hypervisor-guide/arm/index.rst b/docs/hypervisor-guide/arm/index.rst
index 7aae4a0a0301..feac2b4230c3 100644
--- a/docs/hypervisor-guide/arm/index.rst
+++ b/docs/hypervisor-guide/arm/index.rst
@@ -6,4 +6,5 @@ ARM
 .. toctree::
    :maxdepth: 2
 
+   cca-realm
    firmware/arm-scmi
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:11:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:11:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309435.1580518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjtw-0001z3-G3; Fri, 15 May 2026 04:11:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309435.1580518; Fri, 15 May 2026 04:11:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjtw-0001yr-CC; Fri, 15 May 2026 04:11:52 +0000
Received: by outflank-mailman (input) for mailman id 1309435;
 Fri, 15 May 2026 04:11:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjtu-0001he-Ft
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:11:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjtt-0052Iz-SF
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:11:49 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069cda-e002-0a2a0a5209dd-0a2a4505a2ee-26
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:11:49 +0200
Received: from [52.101.125.85]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c47-aaa8-0a2a45050019-34657d55753b-9
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:49 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYCP286MB3682.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 04:08:38 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bkv1vfI5O59KWDyXSA5ViGCg2IXxkdwp7owGBtNvMwvokpEomtjQnXw+JxUN9uamIOV1l+YqoK059pLHKbU69Sm7OI4vFocvHSFWQl0MjctEz+sJ8VQqn8aqIuxFFI44khV3vFW/25kexn/xCFrN5dR7nSe0P9ElRbqK0zEh8efvOkpON6K7QjDwW5bXZcKv2M3YHVDYQ3F4tk18r5Xq9e9075efGYRILKJA5RABY80xqnZk5cieAF0DyMJNP5SAeQSFv2IdK1FgXv/1+v3CwAP8TMuBR4Cu3x/qSpPvf7AfhKClFbbpj7CTCUezZeEDhZ6lvUUuIpLiJte0Gv2Aew==
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=uUEonI82EmDhnjoUm3kfT18UbhTpOT2nksAcbviCf7Q=;
 b=aQET2pp3uemV1zGmgN4xkf4vVcB/GNIMFESSnVQ8oH1oTOSRsEZRP1PeMnPxwpwiR6uELxY2BvUfpv6jClZDrkl0ib0mXvcEKQ8KlB3jeuUVCRzZ8b5RjjsR50mLWX68mNxU//yEBmSOS67B7lsST8ufDnl4R4AfhpzVSq92Jsw3eI94/imqCtgL5GjbVWHFJxB6tQ0FCQLvCV+ZwS36q14U/yZ55qQ5brpVpTCIYipVJXFRxYViZ30XHdSRZz7r0IXFAmCNz051pPJCkUSiXwc3gB6U8A7fYvad0o+ZNR+lwLDTx59pujoTW34Nnz1adi2WdMTh3e0Nry76tv4Gog==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uUEonI82EmDhnjoUm3kfT18UbhTpOT2nksAcbviCf7Q=;
 b=t2jBLsht4aP6S3U9ddLn94eyqQhRlH5Y92wfAh7Wb/+CCPHJ8Jo+9eRNMdIYVykhJY5dDigF+GdemaHqSa+z24WBWG9DMIh8llGVyTJjNNEQ3zc3yqtTPLzj5DnEwMlnTVyWHudmU1xXVdGn7Mby809KLOsflwoJ4OY+FwxDlCI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 25/26] libxl/arm: add and validate Realm guest support
Date: Fri, 15 May 2026 13:08:11 +0900
Message-ID: <20260515040812.983626-26-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYWPR01CA0030.jpnprd01.prod.outlook.com
 (2603:1096:400:aa::17) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYCP286MB3682:EE_
X-MS-Office365-Filtering-Correlation-Id: 951d4835-653b-4b40-954d-08deb237a440
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|366016|376014|7416014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	xyVH9c1JnYSO8Iq457ifJbqmB9wu/Ow82h3fCkxDUhQnx4XaNu3xFC4EEMars0sNMlB43ljs72aEdjhwPxbug3tWPjGyRFXdyRqe0sjQ29jEJuGVm4tu7tpEkz+cpDFVpQdGYC8iqrKbWu/nnGB+S6NsTkXJdUbf8rKFFatwedSZE1P8UsL0dKgTIia3UFZvWHVDFGmurZiloztiHsOuwrLgv2lMaH/EnH8Ganne9SOYxYXj1nhaFHykPGT4svG8JZuMZSif6qGI4RvSDntiyPGgE+hMUqMDUbsRodSeyrODa+I8mRslMVCkv/sA86gN5zqphHwvUnSbIiJxX/tx4/HT51mhW7gVXQqIyZYgJ5WGKBywqlbbz5byuj9hhrv4nK4/bS8pewT3a4r0aOrMO5wkoITfXWucX6WS5iQmGagv+xlYl9LgbOsyjoSoKW/KRDYS6iyb27efNEW3amzlcLC1ga0MYWjy+dOQZJR73/AnqxEAQttJxph6mzfNkXdcxduMOfYoHN4w29XKH0JOI2+vAubexFAevdqnktXkMvjTbMkXtBcNgzbZalAlKoVgjfrKiBJo0IvzWg34AA2iZ09tRitBplvr9nK41D18YWnbQV81+/MUX48PvDsGtk/a1WOGANskXdAUcxdjajYvrVna3kbzvq2HdX2kfoNt1ebkG+/2nF7Y0FKH6gLD3TrXDgc5o6fCptQ/MTGqoBFFBQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(366016)(376014)(7416014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?a6M73JlCkqorr190fg7qoJy+9ouidG5qvLfQPRyF5ABjhap60jc3Arq0/CWP?=
 =?us-ascii?Q?UrYdtt9w0FTcYmcrWNkRARFdUdwEFTiWr2ADpvE+Lo4t06zkGOOGLR1WLUy3?=
 =?us-ascii?Q?IQPESn5Eco4/pRk1/bX97eZgRq9kToO0OcNpl6EUFzJxBQ3fwZOauHrcj3y7?=
 =?us-ascii?Q?nxtG/r2tJQCxqVUCxrO1/MF+AXEMX36Zb3heHDVjrWepxXIrJtENnnQg/hzS?=
 =?us-ascii?Q?MByWTPw7AJmB2by4XE2whrB2oFOyfjdJKpTRRHjZZEA99zvi7dx1CV169Iwq?=
 =?us-ascii?Q?Gs6AJBWs+on45cis5xc/eKuHgzLvxomxkfZsjtpmYzc4QeHMPzvk9iM37pYX?=
 =?us-ascii?Q?/iD6Nrnc+CHGynNcIfKP8kSMTOT3144hE2/crTgEoDP733k/1yN/kbDIlX/y?=
 =?us-ascii?Q?wL+YP297NsQZ8Os+lfmlAYM9hsdKgAM4wBKXxOISfpKTOBpbRZaDoK3QGz8Z?=
 =?us-ascii?Q?0kSGMDWVKgqAYrgL/8ulLhIr9MELZgmLu/I4id6vNrTJ4Tuo6FGIU/tp6kEy?=
 =?us-ascii?Q?Q74GUWQKcJJpnsmNytT0Mbr7JnTGVo5s6PnR9NNDUeHdMTLh6CWr8HY4Ba1c?=
 =?us-ascii?Q?aliJSOhFL8vM2QMyw5J2E2duG8Fr4f6jzKErlDqFvJGksKAuwnUmfu+cuGv2?=
 =?us-ascii?Q?OLmRVJorPd5/YtLSef/aGbT5YpY4LiCGHyAe/r5HZ1qqkFaWawtPs8oh+wk1?=
 =?us-ascii?Q?CAbJDzeQ6v7CnFQri2W5qvBgTBaFG0RCBTZWWO/bSKToFZQBqjSXRzdohTTs?=
 =?us-ascii?Q?WH5G8AE4HI1mWSrIVgV5QiZZzuhJ096WsTEMbMBo7Phn3YDIdTWQ3ispyrQ7?=
 =?us-ascii?Q?6W4kmsQM7jHAkSFSeSvTieXbFc4Vrcl4shRYJnQS5wPj5CiaoivhS3qRpP0k?=
 =?us-ascii?Q?r5uNWDKCZbw9UL2Hsxnogxz+mhFuuh7THicgDZXGWTI9auSqiAGu2FePtKpv?=
 =?us-ascii?Q?o8tH1v/UXhsYMdVh7Din7wb7Gzjc8AmA+Pdl7R+ESlb938Ri3VpBE3cNMY1T?=
 =?us-ascii?Q?yfZ+qOwGB1S1LZaOwyheJrxyWZZuTQGm3VeCEvfRKJMWrQ2Ti5u1IIoj3QCd?=
 =?us-ascii?Q?YueuJdm5zfMrGauuMohAEzEc/oHsffOmWJGqy0v1D6HFyWQwdlGQtQ/IKlQP?=
 =?us-ascii?Q?vDjFQwIafO85OOUXRrrhKmEkJJakvJiSLvxjVsb5IRP4NexG/e0siXfZPKi4?=
 =?us-ascii?Q?aeekDWTdF1V93/DjP0jA8i5oIjfP3G51X/ZpHcL/sM6DV/+295IQXnN36N9Z?=
 =?us-ascii?Q?ougokPWCLr34n6/CC9jsV0RoGJ8aCEA7gGgoog//v2yOi9+FCK/clAgHgDZr?=
 =?us-ascii?Q?YXUpGDbyx28V+Af8wD0hOyXQANvaxMOxLFy2lmrR9cfBopqV4OnLX4P1jA6x?=
 =?us-ascii?Q?EQaBsc5KFun1OPuPhDtzse/LArGgh25DS7C+uFSJQuk5Ln/YTDS9+MHa/D3Z?=
 =?us-ascii?Q?f+cU8qch5JOHqnHMLomhXvPejyQcNKXcLo7p49SxScoI8QwETxTlMnkKENKM?=
 =?us-ascii?Q?qZDNsj+xPoSTAC/T2tiXgnIXWQg4sVFx1vi116SqLu7gKLxXHDk4WqnYVmbf?=
 =?us-ascii?Q?jh7M2veGWuXMpTlJwlm/WHLjtx81bralKirigGtAbQ+KcUJ6rLE5lQK9AidA?=
 =?us-ascii?Q?psPZ6PhWA+iCgT4wfzapu3q7I+tXM6xiO+T7jkFbMgf4YB4+4t+paceczkSS?=
 =?us-ascii?Q?2PSRkamP03m6pDmN/RpXf4RK2hr+q/mRInv+W7sZ0IwACWOK6viy9YUCQynW?=
 =?us-ascii?Q?6t5fWfowutGYqabdPalgqwwZWSgw5kG0RcMmW/exEdK/S7BvLFNz?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 951d4835-653b-4b40-954d-08deb237a440
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:38.2658
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5b2FR7uXDT2eB2WNVwsnnYxYGQxWxOEYCngAVlM2urrUSxeM/QOoDpk2dhgnOj/49/5dGmkuzqetReOd6nfnJg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCP286MB3682
X-purgate-ID: tlsNG-c201ff/1778818129-E2997443-C02D1EAF/0/0
X-purgate-type: clean
X-purgate-size: 12215

Add realm=true for Arm guests, reject unsupported combinations, and call
the CCA finalization domctl after the guest is built.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 docs/man/xl.cfg.5.pod.in         |  46 +++++++++-
 tools/include/libxl.h            |   5 ++
 tools/libs/light/libxl_arm.c     | 140 ++++++++++++++++++++++++++-----
 tools/libs/light/libxl_create.c  |   2 +
 tools/libs/light/libxl_types.idl |   1 +
 tools/xl/xl_parse.c              |   2 +
 6 files changed, 173 insertions(+), 23 deletions(-)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index 2f77016ecfae..7ca7dba4d29d 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -1704,6 +1704,47 @@ i.e. enable grants if backend-domid != 0.
 
 =back
 
+=item B<realm=BOOLEAN>
+
+B<Arm only.> Create the guest as an Arm CCA Realm guest.
+
+Realm guests use the Arm PVH guest model and currently support only a
+minimal configuration:
+
+=over 4
+
+=item *
+
+type=E<quot>pvhE<quot>
+
+=item *
+
+guest RAM fully contained within the first guest RAM bank
+
+=item *
+
+GICv3 only
+
+=item *
+
+Xen-generated device tree only
+
+=item *
+
+no passthrough, no virtio, no Xen grant or IOMMU exposure to the guest,
+and no ACPI
+
+=back
+
+When B<realm=true>, Realm DTBs set the PSCI method to B<"smc">. They do
+not expose the Xen hypervisor node because this series does not provide
+Xen PV interfaces for Realm guests.
+
+Realm guests may use B<vuart="sbsa_uart"> only when Xen was built with
+B<CONFIG_ARM_CCA_REALM_DEBUG_VUART=y>. This is a host-visible clear-text
+debug console for Realm debug access, not a confidentiality-oriented guest
+access path.
+
 =item B<tee="STRING">
 
 B<Arm only.> Set TEE type for the guest. TEE is a Trusted Execution
@@ -3096,6 +3137,10 @@ vuart = "sbsa_uart"
 
 Currently, only the "sbsa_uart" model is supported for ARM.
 
+For Realm guests, B<vuart="sbsa_uart"> is supported with the same device
+model only when B<CONFIG_ARM_CCA_REALM_DEBUG_VUART=y>. The guest kernel should
+use C<ttyAMA0>.
+
 =back
 
 =over 4
@@ -3249,4 +3294,3 @@ documentation. Patches to improve incomplete items (or any other item)
 are gratefully received on the xen-devel@lists.xenproject.org mailing
 list. Please see L<https://wiki.xenproject.org/wiki/Submitting_Xen_Project_Patches> for
 information on how to submit a patch to Xen.
-
diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 7c098edab663..9b9398401029 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -293,6 +293,11 @@
  */
 #define LIBXL_HAVE_BUILDINFO_ARM_GIC_VERSION 1
 
+/*
+ * libxl_domain_build_info has the realm field.
+ */
+#define LIBXL_HAVE_BUILDINFO_ARM_REALM 1
+
 /*
  * libxl_domain_build_info has the arch_arm.tee field.
  */
diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 7e9f8a1bc366..fa13703bb98b 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -80,6 +80,70 @@ static const char *gicv_to_string(libxl_gic_version gic_version)
     }
 }
 
+static bool arm_guest_is_realm(const libxl_domain_build_info *info)
+{
+    return libxl_defbool_val(info->realm);
+}
+
+static int arm_realm_reject(libxl__gc *gc, const char *what)
+{
+    LOG(ERROR, "Realm guests do not support %s", what);
+    return ERROR_INVAL;
+}
+
+static int arm_realm_check_config(libxl__gc *gc,
+                                  const libxl_domain_config *d_config)
+{
+    const libxl_domain_build_info *const info = &d_config->b_info;
+    const uint64_t bank0_memkb = GUEST_RAM0_SIZE >> 10;
+
+    if ( !arm_guest_is_realm(info) )
+        return 0;
+
+    if ( info->type != LIBXL_DOMAIN_TYPE_PVH )
+        return arm_realm_reject(gc, "non-PVH build types");
+
+    if ( info->target_memkb > bank0_memkb || info->max_memkb > bank0_memkb )
+        return arm_realm_reject(gc, "guest RAM beyond the first RAM bank");
+
+    if ( info->device_tree )
+        return arm_realm_reject(gc, "partial device trees");
+
+    if ( libxl_defbool_val(info->acpi) )
+        return arm_realm_reject(gc, "ACPI");
+
+    if ( info->arch_arm.gic_version != LIBXL_GIC_VERSION_V3 )
+        return arm_realm_reject(gc, "non-GICv3 interrupt controllers");
+
+    if ( info->tee != LIBXL_TEE_TYPE_NONE )
+        return arm_realm_reject(gc, "TEE/FF-A plumbing");
+
+    if ( info->num_irqs || info->num_iomem )
+        return arm_realm_reject(gc, "IRQ/IOMEM passthrough");
+
+    if ( info->num_vnuma_nodes )
+        return arm_realm_reject(gc, "vNUMA");
+
+    if ( d_config->c_info.passthrough != LIBXL_PASSTHROUGH_DISABLED )
+        return arm_realm_reject(gc, "passthrough mode");
+
+    if ( d_config->num_pcidevs || d_config->num_dtdevs )
+        return arm_realm_reject(gc, "passthrough devices");
+
+    if ( d_config->num_disks || d_config->num_nics ||
+         d_config->num_virtios || d_config->num_vkbs ||
+         d_config->num_p9s || d_config->num_pvcallsifs )
+        return arm_realm_reject(gc, "frontend/backend devices");
+
+    if ( d_config->num_vtpms || d_config->num_vfbs ||
+         d_config->num_vdispls || d_config->num_vsnds ||
+         d_config->num_channels || d_config->num_usbctrls ||
+         d_config->num_usbdevs )
+        return arm_realm_reject(gc, "auxiliary frontend devices");
+
+    return 0;
+}
+
 int libxl__arch_domain_prepare_config(libxl__gc *gc,
                                       libxl_domain_config *d_config,
                                       struct xen_domctl_createdomain *config)
@@ -92,6 +156,10 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
     uint32_t virtio_mmio_irq = GUEST_VIRTIO_MMIO_SPI_FIRST;
     int rc;
 
+    rc = arm_realm_check_config(gc, d_config);
+    if ( rc )
+        return rc;
+
     /*
      * If pl011 vuart is enabled then increment the nr_spis to allow allocation
      * of SPI VIRQ for pl011.
@@ -617,7 +685,7 @@ static int make_cpus_node(libxl__gc *gc, void *fdt, int nr_cpus,
     return 0;
 }
 
-static int make_psci_node(libxl__gc *gc, void *fdt)
+static int make_psci_node(libxl__gc *gc, void *fdt, bool realm)
 {
     int res;
 
@@ -628,7 +696,7 @@ static int make_psci_node(libxl__gc *gc, void *fdt)
                               "arm,psci-0.2", "arm,psci");
     if (res) return res;
 
-    res = fdt_property_string(fdt, "method", "hvc");
+    res = fdt_property_string(fdt, "method", realm ? "smc" : "hvc");
     if (res) return res;
 
     res = fdt_property_cell(fdt, "cpu_off", PSCI_cpu_off);
@@ -1363,7 +1431,7 @@ next_resize:
         FDT( make_root_properties(gc, vers, fdt) );
         FDT( make_chosen_node(gc, fdt, !!dom->modules[0].blob, state, info) );
         FDT( make_cpus_node(gc, fdt, info->max_vcpus, ainfo) );
-        FDT( make_psci_node(gc, fdt) );
+        FDT( make_psci_node(gc, fdt, arm_guest_is_realm(info)) );
 
         FDT( make_memory_nodes(gc, fdt, dom) );
 
@@ -1384,7 +1452,13 @@ next_resize:
         }
 
         FDT( make_timer_node(gc, fdt, ainfo, state->clock_frequency) );
-        FDT( make_hypervisor_node(gc, fdt, vers) );
+        /*
+         * Common domain creation may still allocate grant-table resources,
+         * but this is the guest-visible path to them. Realm guests
+         * deliberately omit Xen PV interfaces, including grant-table space.
+         */
+        if (!arm_guest_is_realm(info))
+            FDT( make_hypervisor_node(gc, fdt, vers) );
 
         if (info->arch_arm.vuart == LIBXL_VUART_TYPE_SBSA_UART)
             FDT( make_vpl011_uart_node(gc, fdt, ainfo, dom) );
@@ -1427,7 +1501,7 @@ next_resize:
          * The iommu node should be created only once for all virtio-mmio
          * devices.
          */
-        if (iommu_needed)
+        if (iommu_needed && !arm_guest_is_realm(info))
             FDT( make_xen_iommu_node(gc, fdt) );
 
         if (pfdt)
@@ -1559,6 +1633,9 @@ static int finalize_hypervisor_node(libxl__gc *gc,
     libxl_dominfo info;
     int offset, rc;
 
+    if ( arm_guest_is_realm(b_info) )
+        return 0;
+
     offset = fdt_path_offset(fdt, "/hypervisor");
     if (offset < 0)
         return offset;
@@ -1732,31 +1809,50 @@ int libxl__arch_domain_finalise_hw_description(libxl__gc *gc,
     return 0;
 }
 
+static int arm_realm_finalize_guest(libxl__gc *gc, struct xc_dom_image *dom)
+{
+    int rc;
+
+    if (dom->rambank_size[1] != 0) {
+        LOG(ERROR, "Realm guests must fit entirely within the first RAM bank");
+        return ERROR_INVAL;
+    }
+
+    rc = xc_arm_cca_init_realm(CTX->xch, dom->guest_domid,
+                               GUEST_RAM_BASE >> XC_PAGE_SHIFT,
+                               dom->rambank_size[0]);
+    if (rc < 0) {
+        LOGE(ERROR, "xc_arm_cca_init_realm failed");
+        return ERROR_FAIL;
+    }
+
+    return 0;
+}
+
 int libxl__arch_build_dom_finish(libxl__gc *gc,
                                  libxl_domain_build_info *info,
                                  struct xc_dom_image *dom,
                                  libxl__domain_build_state *state)
 {
-    int rc = 0, ret;
-
-    if (info->arch_arm.vuart != LIBXL_VUART_TYPE_SBSA_UART) {
-        rc = 0;
-        goto out;
+    int ret;
+
+    if (info->arch_arm.vuart == LIBXL_VUART_TYPE_SBSA_UART) {
+        ret = xc_dom_vuart_init(CTX->xch,
+                                XEN_DOMCTL_VUART_TYPE_VPL011,
+                                dom->guest_domid,
+                                dom->console_domid,
+                                dom->vuart_gfn,
+                                &state->vuart_port);
+        if (ret < 0) {
+            LOG(ERROR, "xc_dom_vuart_init failed\n");
+            return ERROR_FAIL;
+        }
     }
 
-    ret = xc_dom_vuart_init(CTX->xch,
-                            XEN_DOMCTL_VUART_TYPE_VPL011,
-                            dom->guest_domid,
-                            dom->console_domid,
-                            dom->vuart_gfn,
-                            &state->vuart_port);
-    if (ret < 0) {
-        rc = ERROR_FAIL;
-        LOG(ERROR, "xc_dom_vuart_init failed\n");
-    }
+    if (arm_guest_is_realm(info))
+        return arm_realm_finalize_guest(gc, dom);
 
-out:
-    return rc;
+    return 0;
 }
 
 int libxl__arch_vnuma_build_vmemrange(libxl__gc *gc,
diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index bfc9149096a3..1401697ab1d4 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -407,6 +407,8 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
         libxl_defbool_setdefault(&b_info->nested_hvm,               false);
     }
 
+    libxl_defbool_setdefault(&b_info->realm, false);
+
     if (b_info->max_grant_version == LIBXL_MAX_GRANT_DEFAULT) {
         if (info.cap_gnttab_v2)
             b_info->max_grant_version = 2;
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index a7893460f013..d2fa3535ab18 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -657,6 +657,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
     ("apic",             libxl_defbool),
     ("dm_restrict",      libxl_defbool),
     ("tee",              libxl_tee_type),
+    ("realm",            libxl_defbool),
     ("u", KeyedUnion(None, libxl_domain_type, "type",
                 [("hvm", Struct(None, [("firmware",         string),
                                        ("bios",             libxl_bios_type),
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 48c72dce9c6d..742c203a0326 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -3058,6 +3058,8 @@ skip_usbdev:
         }
     }
 
+    xlu_cfg_get_defbool(config, "realm", &b_info->realm, 0);
+
     if (!xlu_cfg_get_string (config, "sve", &buf, 1)) {
         e = libxl_sve_type_from_string(buf, &b_info->arch_arm.sve_vl);
         if (e) {
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:12:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:12:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309486.1580528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjub-0003wA-Qk; Fri, 15 May 2026 04:12:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309486.1580528; Fri, 15 May 2026 04:12:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjub-0003w3-Nu; Fri, 15 May 2026 04:12:33 +0000
Received: by outflank-mailman (input) for mailman id 1309486;
 Fri, 15 May 2026 04:12:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjua-0003vI-Ig
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:12:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjuZ-000yVE-VJ
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:12:31 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069d26-bab6-0a2a0a5309dd-0a2a4504b2a4-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:12:31 +0200
Received: from [52.101.125.129]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c35-1dec-0a2a45040019-34657d8136d2-8
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:31 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB3981.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:27 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HqMeKL6+t5HTfD1sFnJcQa1xL8qOZZ4tMOVV/GkOhttW0nhD7i6sh2z94Gy9GTuGYTHQkcCCPyECQo/vLDUN2ivUliB56axWIPsPAVL43Az1E6ox5pHVu7hBC58OoUhk3oIuzla6ofmTRxpc5T6JJqYl0i3elVFXebLc/u9cpLPvwMZMZ+Ie1502kfjJjzkQd50GnBI8k9hZ8EHXeqIGIypZJ3QmnIvA4IoAO46HcN0rXSj1DOTpM9EDWQsTs9d/b3g+Y1sGwuDxBPl+HsFZ5BDju+B3QV72AG5vVhjpjShu47PiG8LiZ36MPgiss3BFW+S6UJqtlUiZ7S130uMvQw==
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=/bHYT6atPOeZOv2k1L5q3pwz1qEMb9cMvUWztfWVSOo=;
 b=f6oC0cn/u8yXC7n94q+pGMj7xn5ahLQ9biNhMhxNZArow95r2utq6Ne5iZvRTN7kIItFDK5h/F2bDFTbM5wEgvHXL/fAb/JH52/ILCWzbQh7SzmtSXdGaL0ULUiy0bjXD/ORILAev2K84bAAYd6Jl3DCo/3lOPXHl1fQvJG8XyvdS0EWnYV2OmmxPiyZ0PFSXI3rrWIyfln4XzSJDcRuT+4lr21oF9gyndrYXWJomuhxwPX9fnn3d02sh2UEdzXrFfXXOknRPidfwDJ9QwYrVECv0n5P/Zfini5v0AAlQo1WxQXsU9/V7Kp8LWjG/EFnxeBelZF8aC3nt0PhNWn4aw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/bHYT6atPOeZOv2k1L5q3pwz1qEMb9cMvUWztfWVSOo=;
 b=hLmhABq9j/HWqdKJEUFbENp19Y+sPhbunK5U33Ao+1C5Oi0yj+GaWe5xgsuMgDpQteuqL0pbq9rCBMVUlo3Ta4VAsl81TXIa7AWDwT/7EUhbflKv4+aC+MnHaLeXETwc4dbVu0oBclUCJiE7wtoxf0xw0dws/3aUpHmmEk493fA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 11/26] xen/arm/cca: terminate and destroy Realms on relinquish
Date: Fri, 15 May 2026 13:07:57 +0900
Message-ID: <20260515040812.983626-12-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:3c5::9) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB3981:EE_
X-MS-Office365-Filtering-Correlation-Id: a7a94171-427a-45da-6252-08deb2379dce
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	sKcxBNa+IElQZkLoN1w9kxi7M7X+Sm3J/j1xx0ZgnkKIvKBg+cOLFhV3bnjyyemrCaalhWBitQNhfP83JlTqxRNSCjLZiPJT69LpgQ1ZnQmupz0whS5lE6E1BOgS8OkJk0q0JIhmisvlwNKhxcbWmqSVs79u6uwV0618M1WLt+3+FGFeqoYYFMCEO4Gj7UHFJlqDa+11U9/d4GABsANmcKNsPkeV65RmqQqhPyCJ8ZcXcnZdNDo+PlWmCTiu99rp62OUug5a7O2J2l54ZQHsiEoTjJZ9yCjE1TBJ9vvBRNNA+A3F8QZuKWJa41RyiZcsQ/Jo4NKV02gkwCHGka3NBafAdnCBBnu5eaHhjPFQF6/cHyB6ps5aSwwtK42gVReHBXVyphUUAgJmN3soNFDxaw8JDw+TWmaH6+yY1VQXmVxYECTD+HS056RGSxg/bB+xDRX8EgvTIEzvfkgLd69DPXGsMNlf+Qhv7mY6QpaD0ncovvzWqRv15ZRUplkv4OzcvI3EdjbEBF/lNLP98EEcxpI23oto1xKBZm7Vun5l2YJh5CyF3/Jfni492dqrQ6csTi5FoVPV3qeLP0s3sHnzK3IXG3cIcx7PxHQg5qwoPH9dVh8PzenFou8RGav6vtG2t5bwO9BG5B7JIpSXPtGnFTb8pRFcVD7LVDl/4qEku9EEPRvaff3O7LcrfbNa/T7U
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?4aLGh8c08GG9sqvk6nK3dALLX8eAdb6MOjwGMWZ0oxMZZ/oPKXNQ1peVJdSe?=
 =?us-ascii?Q?t6YbJy2/fschhDfAMzoH6CBbL7X38EKmuJeJI/31iRrKvH0uI8uojMKxfT/2?=
 =?us-ascii?Q?0E9JnEEZV4Lr3622+fetNOopscTpWscUYAr53qh9eHGNNs04JMDp/XBSYpiC?=
 =?us-ascii?Q?HsqAhL+2Obf76T8BheF639Ji9Ukq0qf6BAGKE7F0Xpc0kyABIIqA8XdP7wHU?=
 =?us-ascii?Q?sFBmT3NHAB5DnZN0+lIpAquk+ap1eZUqGdgby9B0HQucQc0NA1LllRnHfxJv?=
 =?us-ascii?Q?KBCYCjjjWE3eD5AoC1xNRV3/dptR+siBIQl9VNziOoOk8UxEJlw+0dNSeT9I?=
 =?us-ascii?Q?38QA3hM4CJ/W5dongYNzJ5BEQaqChB4O+QeS01dChd4O2qXmj83eEznwlNlc?=
 =?us-ascii?Q?XObCzFFCqztencr63dbw7DDxAV6qYasw//PsFKleTeE8OoMvfkXvNqFePC6x?=
 =?us-ascii?Q?shIps13Q5LaFjYDHkdysfbZaXZArepoXxJ7ZsJqrCIE7ScCbK8PcJqupyDyH?=
 =?us-ascii?Q?a6LR6p6lkJpZ3dIR0B/YO1AeGDDxX2rzUuMW4dqwnMHXnb5z72DxKdpLimn4?=
 =?us-ascii?Q?NhhizXqO9Uu2rzzcPiUWlis8zsOASJiN0NZ7d80ttW4B/dIV/IucLDrpCfpD?=
 =?us-ascii?Q?XDgwFoP84pRUxuRk/mXV6r5kttvNhvHp6k0jC4UBdZ0vyAyOVf/Y75EPQBrK?=
 =?us-ascii?Q?iCbRlvRG17K4ddjQV5KuFagS0Z6Iqeaf0AvT5nBIhQGmvPHAiMMt06vPbdHg?=
 =?us-ascii?Q?9Ox3CFh7aPN4vqiCYtHBZreTeWpOzE4M9YpELrB7ja4wd2EH4In6WwO+Bdiy?=
 =?us-ascii?Q?VoFM0Z+Lo4pFCa4tYtTepd04L300GtQ80/GPJmHhebGT9fGC8osKxajMm0qu?=
 =?us-ascii?Q?a8d7KksS+SCfkuAVVnEQjIcUR93A3TQuOPhWlE6XxCF5PShgNDt28nUd2Wuh?=
 =?us-ascii?Q?gVEUsKE2M2JAVVx38fSHeEi2VAKmK/MjllvtrL+OZZWXbq16Il4siRvClbS2?=
 =?us-ascii?Q?7/5UOTY2Nbv/2ZTPFHUnCyGMYH0n3URIv3WH3gB/RAVUnO4S+jo/iTmZgcfF?=
 =?us-ascii?Q?OkAuTx8fadtR3bkGNqOQucMfLNrJdWuZ4AbcOOr3IulgNrCT8YBEIbFSV4mw?=
 =?us-ascii?Q?70ghr7ZmouHWQOfi1Mdusl8yV5YZh91yx6D4fEYbcBV/AmsbdRiUS5ZP7aSh?=
 =?us-ascii?Q?2S8RkBBAT9w843h493Zm3qHtEOI8c0L3cvw8pa6A1KT+bU9qHLmV0Kiyp7Qx?=
 =?us-ascii?Q?DH0LtwIa8R9zJ1CtcFc1/aI+etOAegGImxm9woz5fsCWgVo2P3WCWUSkjRcS?=
 =?us-ascii?Q?c7G9Qu7dPn0oDDbrA55Lo++85KHFuNelBdphuy40MqD7LYdxIKs5I2fEUT+5?=
 =?us-ascii?Q?0YQhNVbYg284mHzhOVIbzn1Vno1yYrLIeSy1cE7TBPJyNCzTuz77BrBEL4po?=
 =?us-ascii?Q?d7s+C11rsi++wknhYyHAtyUlUX20mpRw0aryQpfCgCWp77SOb06L556odmqH?=
 =?us-ascii?Q?ih1IAol7dXSLhX8fl6nV3r1RXYUuvzVEi5+JwKvZ3KHHZ9KFVv2T8zDwKzsr?=
 =?us-ascii?Q?YzGcatvO+g5HiepOR5+Kta7o9EAcEYKh+DE1yZTNMe0lxWfatIdxZJFyoNrE?=
 =?us-ascii?Q?9UIX0OOJtqs2duUnYQCHknNQBk6lfmv7cy/zTKITGNGSmvjMbSKdKCUojVk7?=
 =?us-ascii?Q?m61S+d9zDNpSmwSprJINSZEsJKgBLZvnn/rEz8N2N7/ySZAq5qTDnXYVcBjX?=
 =?us-ascii?Q?4aBg+p5kRLNxv3LEHADxzJyMvqX3eviyjLKzDGAXYqXGsd0WR1vU?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: a7a94171-427a-45da-6252-08deb2379dce
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:27.4348
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: jtQLDF3yIgbqPF/G2Nbpy/4tWTwnS6UOo7oVrDn5Iva/TAdrNjkS59nPAwXKlqpqR34q+HFPWF5o8M8u+TJZmg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB3981
X-purgate-ID: tlsNG-ebf023/1778818111-297793FF-5BFD5979/0/0
X-purgate-type: clean
X-purgate-size: 5190

Run Realm termination and destruction from the relinquish path. Keep the
metadata until RMM ownership has really ended.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/state.c       | 119 ++++++++++++++++++++++++++++++++-
 xen/arch/arm/include/asm/cca.h |   3 +
 2 files changed, 121 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/cca/state.c b/xen/arch/arm/cca/state.c
index 3646948eb11c..e58e261265f3 100644
--- a/xen/arch/arm/cca/state.c
+++ b/xen/arch/arm/cca/state.c
@@ -3,10 +3,12 @@
 #include <xen/lib.h>
 #include <xen/mm.h>
 #include <xen/sched.h>
+#include <xen/xmalloc.h>
 
 #include <asm/cca.h>
 
 #include "rmi.h"
+#include "sro.h"
 
 static void arm_cca_reset_domain_state(struct domain *d)
 {
@@ -24,6 +26,7 @@ static void arm_cca_reset_domain_state(struct domain *d)
     d->arch.cca.nr_rtts = 0;
     d->arch.cca.data_pages = NULL;
     d->arch.cca.nr_data_pages = 0;
+    d->arch.cca.realm_terminate_done = false;
 
     for ( i = 0; i < ARRAY_SIZE(d->arch.cca.realm_sro_pages); ++i )
         d->arch.cca.realm_sro_pages[i] = NULL;
@@ -48,8 +51,20 @@ void arm_cca_domain_init(struct domain *d)
     arm_cca_reset_domain_state(d);
 }
 
+static void arm_cca_domain_free_metadata(struct domain *d)
+{
+    xfree(d->arch.cca.data_pages);
+    xfree(d->arch.cca.rtts);
+}
+
+/*
+ * RMI teardown is returnable and runs from
+ * arm_cca_domain_relinquish_resources().  The final domain hook only releases
+ * metadata if an earlier setup path left it behind.
+ */
 void arm_cca_domain_destroy(struct domain *d)
 {
+    arm_cca_domain_free_metadata(d);
     arm_cca_reset_domain_state(d);
 }
 
@@ -71,9 +86,111 @@ static int arm_cca_relinquish_abandoned_pages(struct domain *d)
     return 0;
 }
 
+static int arm_cca_rmi_realm_destroy_complete(struct domain *d)
+{
+    struct arm_cca_sro_mem_xfer xfer = {
+        .pages = d->arch.cca.realm_sro_pages,
+        .nr_pages = &d->arch.cca.nr_realm_sro_pages,
+        .abandoned_pages = &d->arch.cca.abandoned_pages,
+    };
+    struct arm_smccc_res res;
+    int rc;
+
+    rc = arm_cca_rmi_realm_destroy(d->arch.cca.rd, &res);
+    rc = arm_cca_sro_complete_mem_transfer(rc, &res, &xfer);
+    if ( rc == 0 && d->arch.cca.nr_realm_sro_pages != 0 )
+        rc = -EIO;
+
+    return rc;
+}
+
+static int arm_cca_terminate_realm(struct domain *d)
+{
+    struct arm_smccc_res res;
+    int rc;
+
+    if ( d->arch.cca.rd == INVALID_PADDR || d->arch.cca.realm_terminate_done )
+        return 0;
+
+    /*
+     * DEN0137 2.0-bet1 - D1.2.5 starts Realm destruction by terminating the
+     * Realm.  Remember success because later host-side undelegation may fail
+     * and force a retry.
+     */
+    rc = arm_cca_rmi_realm_terminate(d->arch.cca.rd, &res);
+    if ( rc != 0 )
+        return rc;
+
+    d->arch.cca.realm_terminate_done = true;
+
+    return 0;
+}
+
+static int arm_cca_destroy_realm(struct domain *d)
+{
+    int rc;
+
+    if ( d->arch.cca.rd != INVALID_PADDR )
+    {
+        rc = arm_cca_rmi_realm_destroy_complete(d);
+        if ( rc != 0 )
+            return rc;
+
+        d->arch.cca.rd = INVALID_PADDR;
+        d->arch.cca.realm_active = false;
+    }
+
+    if ( d->arch.cca.rtt_root_page )
+    {
+        rc = arm_cca_undelegate_granule(
+            page_to_maddr(d->arch.cca.rtt_root_page));
+        if ( rc != 0 )
+            return rc;
+
+        free_domheap_page(d->arch.cca.rtt_root_page);
+        d->arch.cca.rtt_root_page = NULL;
+    }
+
+    if ( d->arch.cca.rd_page )
+    {
+        rc = arm_cca_undelegate_granule(page_to_maddr(d->arch.cca.rd_page));
+        if ( rc != 0 )
+            return rc;
+
+        free_domheap_page(d->arch.cca.rd_page);
+        d->arch.cca.rd_page = NULL;
+    }
+
+    return 0;
+}
+
+/*
+ * DEN0137 2.0-bet1 - D1.2.5 Realm destruction flow.
+ *
+ * RMI teardown runs in the returnable relinquish path so Xen can retry
+ * incomplete destruction and avoid resource leaks.  Realm-associated objects
+ * can be destroyed in any order.
+ */
 int arm_cca_domain_relinquish_resources(struct domain *d)
 {
-    return arm_cca_relinquish_abandoned_pages(d);
+    int rc;
+
+    rc = arm_cca_terminate_realm(d);
+    if ( rc != 0 )
+        return rc;
+
+    rc = arm_cca_destroy_realm(d);
+    if ( rc != 0 )
+        return rc;
+
+    rc = arm_cca_relinquish_abandoned_pages(d);
+    if ( rc != 0 )
+        return rc;
+
+    arm_cca_domain_free_metadata(d);
+    arm_cca_reset_domain_state(d);
+
+    return 0;
 }
 
 void arm_cca_vcpu_init(struct vcpu *v)
diff --git a/xen/arch/arm/include/asm/cca.h b/xen/arch/arm/include/asm/cca.h
index 9b53c80b5bba..b135dd176751 100644
--- a/xen/arch/arm/include/asm/cca.h
+++ b/xen/arch/arm/include/asm/cca.h
@@ -66,6 +66,9 @@ struct arm_cca_domain_state {
 
     struct arm_cca_data_page_record *data_pages;
     unsigned long nr_data_pages;
+
+    /* Realm destruction state for domain_relinquish_resources(). */
+    bool realm_terminate_done;
 };
 
 struct arm_cca_vcpu_state {
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:12:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:12:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309487.1580538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjud-0004AU-79; Fri, 15 May 2026 04:12:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309487.1580538; Fri, 15 May 2026 04:12:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjud-0004AN-2X; Fri, 15 May 2026 04:12:35 +0000
Received: by outflank-mailman (input) for mailman id 1309487;
 Fri, 15 May 2026 04:12:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjua-0003vL-Qx
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:12:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjua-0052Pz-75
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:12:32 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069d2c-e002-0a2a0a5209dd-0a2a4502d878-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:12:32 +0200
Received: from [40.107.74.73]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c3a-af86-0a2a45020019-286b4a49ea93-6
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:31 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB3981.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:28 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ADdA8lA+st7vdzuVbZ6B8RfzwI9Nj9yXkNnkeUN86DSaagZDbscBYPZ/5CspMyWT4ErNCPCzWMoDKVE3YbsQg921+4A9tKJ1RHwF9dQ3586tjjQvMOV7GYQNc74GEFwed3G7X9hJFyPKewC3yhwDZhXlw1vNjGKgwXct/3sBmhmpT1A5PcUBzG3T22v77tdo187Cq5OGn+ZKLfQkA+oSkr4cQLOmTZL+/CpzpMwMBN8lSeNRpA+wrWuJIP6gWSuldRfBGGdNgZEcwkU3rVXW1UrW1iIpNYF5fPBJJlsyzVkVgK7Lj/ftGIvZqKwYFymZAR4kjyhtJeLqqn0MVaH3TQ==
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=nR9DiFmmPQZJPSPKu4GBPDG2fdbX8kmCXfKAod/+QeY=;
 b=VFs3f8WtuM2ad+k1nVQSQ3Vf/SZfhc8W+5Nimc6j+Zya2ZcoHqoE91r0KJ2Y8V9LhUSm8EaTAdJEwtUFUXFLNVhAGR0XMTxZoLgb3MjmkroFXV9YdTQwYgCcYK3PkA91WF/KBq1N0F1Fq/Hh8kQ4uS75dPZMK7hjxaZkXeX+AkURNRGOY11QYxyqTYUlVt0rGdnaypORDrE1NSYuXHCQheJRAmXVr1tYImrXt4TLtKGsrMl7Qsm287kQPE04bQNDw9TBQZUaMWO2nOqFibsJh988Nt7vrqyQx/6cX04CDu9WU5kl12142BEy7FCBF/HCkMM0l44WupByrHpNwmKGaw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nR9DiFmmPQZJPSPKu4GBPDG2fdbX8kmCXfKAod/+QeY=;
 b=gdsMSSanjL4Ds/BIYGQIrS1NdIh8JDpvA2cbut3/EmYFxWjXRZ0JL0u9OFIBtza0eG7BWS6L4IVRh3a+1zWfPK1lItEriIRZ/7kGj1CPySRSFl59E6f0t7rLZv9qijevvEcdMTulehQOtXL5srJf1rvA30JGtVvBHuClSWcFBkg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 12/26] xen/arm/cca: tear down Realm DATA and RTT granules
Date: Fri, 15 May 2026 13:07:58 +0900
Message-ID: <20260515040812.983626-13-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0096.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:2b4::12) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB3981:EE_
X-MS-Office365-Filtering-Correlation-Id: 6b8b003f-a497-497f-e704-08deb2379e40
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	gLs4JSF9KlZ6fGcmNHutlgG8cEnBP7TPg0UPZmVJ1PUPh+oj61GuEhHAHo63Gg2ey5RN7tMf7ZyzftdQuMWrzsDeG50bHjOzUpiaQv3JRNfuJzAHwSj6+h1noQ6ScKX33wT9V/bOpAWQegEsDZwZgXhveFaHQBMW74vVpB/EFN4/g/5aqsH9fDqwtrIVrPMRkr0CJATIQGhCHjchgGW+s0N9uhviauIEyjN+pbHYQqdhUrbdDw5/qBO3IaZGTVGkJcaMCq064bJmcs92dZ93hNbUtebW2XinFdrThER9iSgoBSzQ5VfWCFCaIvt2M2kUUcoRzAVvHlnJvbTe61012z0DcLuVmQ2gKdtNAZIJRFEoCbldlvmiyYakya4p+6M1H4Ug0Q38BKVD7i/4ipCmmhn5zIJTj8WIVIrt/xpaRQZBeWY2FRYnSUtPAcBkDSKJ1kGKt1nbL1SR+WChn8Iz2wbES4tQ6RPfzWFkSLw1v+KyWBxHbL9hcY8zEL6CLPmXr8HNX6f5st2FLpToqiLewkflGj0++BWZ+4d33DGVAacb/fG4420jtkaY0dWY5XNK8QD4qqPUnMIYF1vtC9q1CcDy6MG7l25I58xv1CtG7QAcznnkXPiPQ8MqjO42RM5Tfy9mnJYCN4iyaRzcyQcdmnbztKeQj2fMQ4HRMTqecw0uzj+n7ubsWMcqYSkkTiHh
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?lih3DwsJS3IwLNS7F1KI8M70+8B35CleiPsRTz+a/GCojAufujRYe5VaqZBB?=
 =?us-ascii?Q?2j/qiR7QcIi2ky9ZCMd/pEGkDxGhJp6zDBOxNCU6oT/rACYElarNwUl0XqTT?=
 =?us-ascii?Q?v++SKuuFDJyrSlX2/XjObpDCUjGTDF+ZUupobe/L8mGIbYlilGrKJRmoeur1?=
 =?us-ascii?Q?ceAiBpzKslZApn1wQXzyHVevYPXj541XTvAnNO+K92EAVjjVYXRpNE96/S/V?=
 =?us-ascii?Q?R1siwjMX69M/Skgkh/q7O4qq3dnZQgfg3EQ8zF5FfaI4AEBNLObz/2geZkfi?=
 =?us-ascii?Q?L1guICqCRq706BKKIdlJWpuW31btNhZxinTGpjdX2s2k8THZGsC8UvncDnDR?=
 =?us-ascii?Q?5t6fvPgE8mq0fgXQBtk5+kl31d9F1tzG/bqRCsNxR+ZsrM2Nrk8f9P50n+kf?=
 =?us-ascii?Q?6ngkMHldRUhUzXDzIbjoAW7AGno8/7DRIF4EmvJkRiuPSclBN6W0s+hb3Ugv?=
 =?us-ascii?Q?95oCBcyNrTQ6BBGwBnZAJjbdcGjeo0UBUJ3+0OUgKk0KLtiPleEkO62cprXS?=
 =?us-ascii?Q?auvAYGanFrnkmrXLj5WBfznWNaEATOd1X2XZ6HLcMzADA/Z5t5HQAEdFoeca?=
 =?us-ascii?Q?B+Fx5vSb2uomJnAt53zkLTq+yeI+IAjxuyBoENBsOoRyMlY0mCzzQO5LUK7j?=
 =?us-ascii?Q?VxaIBAuJuf6xuKMC/Gw8IYj5PL1e/znDQV3kYDXYt8SAN6kfzOKqjX7ww4Ap?=
 =?us-ascii?Q?Bi+ibK2zSajG+pNBP6sLzwI+XoSKTXcKw61RI3VhxAv5Mt2ZUEApRirZmJVu?=
 =?us-ascii?Q?Nbzdvo8ioN4aF43XmcoDOokaCp4Ty2+EtbYR7g2FMC5gQ4VIC/ciIKK1attH?=
 =?us-ascii?Q?MTr4MVhwjWBrHWWSnU5kR8s1SFjSBKjqzswZ0y1CWwqbhx3oPnYBjBl94h8a?=
 =?us-ascii?Q?p8hhoZELu2UVqkaiuSLWSSovSOIOuPBQD2JsHqSfibtU4fFpvBHlUoVXFydM?=
 =?us-ascii?Q?dxDsXY49rvn5OtkIZHKBUmsGDcKGW4dLzwobvR1KlM43I2lda3W2kNlCfiEV?=
 =?us-ascii?Q?gdb7NLdgF6PWK3Uvs9TL9syjWTPisZ7KgPiJr4FhPryXfnOqE2wuwAqqlShf?=
 =?us-ascii?Q?safzCci+7P07naVBwr94IH5RJIDbVs+Z6xAcboiUEd3FBV+mBOl6Wlaq1zyF?=
 =?us-ascii?Q?wYLAoDt08NZR+iHtiGEOBZLo+h0loHdsapyWrb42hTr0sLFaGpELf3xHqFqo?=
 =?us-ascii?Q?QMuAAsSZEcO2mG4ifcTquxqBxhxy4cM1md0Z4CCII0GwXQVidnmbWxnHdZxe?=
 =?us-ascii?Q?sr6fesXph91gukq6q2i4jSz0N0vPK4e2peMxHNK9bn69fwYlfbbkuI+dkJP8?=
 =?us-ascii?Q?IHTbrAmSCvfsY8NGrV19LV/G9jt7Hwb3Hku2HIkjsH4AVvSyO3iCbMby6uH7?=
 =?us-ascii?Q?vQ1oIy7rMbBFn0otYu45r/egAIEMeJyltF5LdgHx+QET+XZy/EFfdrrOlRLg?=
 =?us-ascii?Q?R8/yeka0O0DOzXN7W+icLvDVSu6zzBGiNRTjLpHI5HuNKEyGmBODvPZTuKC3?=
 =?us-ascii?Q?pCgwspJvuek6AP/LtlDaWEpEbfw3ON7MyQ9B4CyicEKVRK194O07by/yWqql?=
 =?us-ascii?Q?TOVg4QyNjFhvdGElECEE9d4p7Om+NoVat3E3+IHFfOxzDdA5MWs/b0jfkA+K?=
 =?us-ascii?Q?nGDaH2l9cWQER8f+vIKxapaGbxGSmKvXJrWeOcLeKfTJh3CBY0s9djShOrUh?=
 =?us-ascii?Q?5xXhXZ7b10PhZxED7Cvfwh6CXwdtOmwIvVynSjaEnolLWjbadBvUcHaGMlfL?=
 =?us-ascii?Q?vl5VqUlaeG5Yj+HjFR4uDkXNiZV+yWkib0v2tZ8O+OQgMaeX7FAI?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 6b8b003f-a497-497f-e704-08deb2379e40
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:28.1878
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 4REczytb2XUah3DTTIi+PnbzuhhRK/HSDjXd6NzXqLI47BCOTuSBBsZjFJPBASSPZqDRFwtUVQXaBZZCkQ05cg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB3981
X-purgate-ID: tlsNG-720697/1778818111-8316D161-5CFB326C/0/0
X-purgate-type: clean
X-purgate-size: 6505

Tear down mapped DATA granules and the RTT hierarchy before returning
the backing pages to Xen.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/state.c       | 151 +++++++++++++++++++++++++++++++++
 xen/arch/arm/include/asm/cca.h |   1 +
 2 files changed, 152 insertions(+)

diff --git a/xen/arch/arm/cca/state.c b/xen/arch/arm/cca/state.c
index e58e261265f3..c85ef56a1297 100644
--- a/xen/arch/arm/cca/state.c
+++ b/xen/arch/arm/cca/state.c
@@ -1,15 +1,19 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/errno.h>
 #include <xen/lib.h>
 #include <xen/mm.h>
 #include <xen/sched.h>
 #include <xen/xmalloc.h>
 
 #include <asm/cca.h>
+#include <asm/event.h>
 
 #include "rmi.h"
 #include "sro.h"
 
+#define ARM_CCA_RTT_DATA_UNMAP_BATCH 1024UL
+
 static void arm_cca_reset_domain_state(struct domain *d)
 {
     unsigned int i;
@@ -26,6 +30,7 @@ static void arm_cca_reset_domain_state(struct domain *d)
     d->arch.cca.nr_rtts = 0;
     d->arch.cca.data_pages = NULL;
     d->arch.cca.nr_data_pages = 0;
+    d->arch.cca.relinquish_data_idx = 0;
     d->arch.cca.realm_terminate_done = false;
 
     for ( i = 0; i < ARRAY_SIZE(d->arch.cca.realm_sro_pages); ++i )
@@ -51,6 +56,37 @@ void arm_cca_domain_init(struct domain *d)
     arm_cca_reset_domain_state(d);
 }
 
+static int
+arm_cca_rtt_data_unmap_4k(paddr_t rd,
+                          const struct arm_cca_data_page_record *rec)
+{
+    struct arm_smccc_res res;
+    paddr_t top = rec->ipa + PAGE_SIZE;
+    uint64_t desc;
+    int rc;
+
+    /*
+     * DEN0137 2.0-bet1 marks SINGLE oaddr as SBZ, and TF-RMM does not use it,
+     * so keep X5 zero here.
+     */
+    rc = arm_cca_rmi_rtt_data_unmap(rd, rec->ipa, top,
+                                    ARM_CCA_RMI_ADDR_TYPE_SINGLE, 0, &res);
+    if ( rc != 0 )
+        return rc;
+
+    desc = res.a2;
+
+    if ( res.a1 != top ||
+         arm_cca_rmi_addr_desc_4k_pa(desc) != rec->pa ||
+         arm_cca_rmi_addr_desc_4k_size(desc) != ARM_CCA_RMI_PAGE_L3 ||
+         arm_cca_rmi_addr_desc_4k_count(desc) != 1 ||
+         arm_cca_rmi_addr_desc_4k_state(desc) !=
+         ARM_CCA_RMI_OP_MEM_DELEGATED )
+        return -EIO;
+
+    return 0;
+}
+
 static void arm_cca_domain_free_metadata(struct domain *d)
 {
     xfree(d->arch.cca.data_pages);
@@ -104,6 +140,68 @@ static int arm_cca_rmi_realm_destroy_complete(struct domain *d)
     return rc;
 }
 
+static int arm_cca_teardown_data_pages(struct domain *d)
+{
+    unsigned long i;
+    int rc;
+
+    if ( !d->arch.cca.data_pages )
+        return 0;
+
+    for ( i = d->arch.cca.relinquish_data_idx;
+          i < d->arch.cca.nr_data_pages; ++i )
+    {
+        struct arm_cca_data_page_record *rec = &d->arch.cca.data_pages[i];
+
+        if ( rec->pa == INVALID_PADDR )
+            continue;
+
+        if ( rec->ipa != INVALID_PADDR )
+        {
+            if ( d->arch.cca.rd == INVALID_PADDR )
+                return -EIO;
+
+            rc = arm_cca_rtt_data_unmap_4k(d->arch.cca.rd, rec);
+            if ( rc != 0 )
+            {
+                d->arch.cca.relinquish_data_idx = i;
+                return rc;
+            }
+
+            /*
+             * The RTTE no longer owns this DATA granule.  Keep rec->pa so a
+             * later retry can finish the host-side undelegation.
+             */
+            rec->ipa = INVALID_PADDR;
+        }
+
+        rc = arm_cca_undelegate_granule(rec->pa);
+        if ( rc != 0 )
+        {
+            d->arch.cca.relinquish_data_idx = i;
+            return rc;
+        }
+
+        /*
+         * The page remains owned by the domain and on d->page_list so the
+         * generic relinquish path can free it later.
+         */
+        rec->pa = INVALID_PADDR;
+
+        if ( ((i + 1) % ARM_CCA_RTT_DATA_UNMAP_BATCH) == 0 &&
+             hypercall_preempt_check() )
+        {
+            d->arch.cca.relinquish_data_idx = i + 1;
+            return -ERESTART;
+        }
+    }
+
+    d->arch.cca.nr_data_pages = 0;
+    d->arch.cca.relinquish_data_idx = 0;
+
+    return 0;
+}
+
 static int arm_cca_terminate_realm(struct domain *d)
 {
     struct arm_smccc_res res;
@@ -126,6 +224,51 @@ static int arm_cca_terminate_realm(struct domain *d)
     return 0;
 }
 
+static int arm_cca_teardown_rtts(struct domain *d)
+{
+    struct arm_smccc_res res;
+    int rc;
+
+    while ( d->arch.cca.nr_rtts != 0 )
+    {
+        struct arm_cca_rtt_record *rec =
+            &d->arch.cca.rtts[d->arch.cca.nr_rtts - 1];
+
+        if ( rec->pa == INVALID_PADDR )
+        {
+            d->arch.cca.nr_rtts--;
+            continue;
+        }
+
+        if ( rec->ipa != INVALID_PADDR )
+        {
+            if ( d->arch.cca.rd == INVALID_PADDR )
+                return -EIO;
+
+            rc = arm_cca_rmi_rtt_destroy(d->arch.cca.rd, rec->ipa,
+                                         rec->level, &res);
+            if ( rc != 0 )
+                return rc;
+
+            /*
+             * The RMM object is gone.  Keep rec->pa so a later retry can
+             * finish the host-side undelegation.
+             */
+            rec->ipa = INVALID_PADDR;
+        }
+
+        rc = arm_cca_undelegate_granule(rec->pa);
+        if ( rc != 0 )
+            return rc;
+
+        free_domheap_page(maddr_to_page(rec->pa));
+        rec->pa = INVALID_PADDR;
+        d->arch.cca.nr_rtts--;
+    }
+
+    return 0;
+}
+
 static int arm_cca_destroy_realm(struct domain *d)
 {
     int rc;
@@ -179,6 +322,14 @@ int arm_cca_domain_relinquish_resources(struct domain *d)
     if ( rc != 0 )
         return rc;
 
+    rc = arm_cca_teardown_data_pages(d);
+    if ( rc != 0 )
+        return rc;
+
+    rc = arm_cca_teardown_rtts(d);
+    if ( rc != 0 )
+        return rc;
+
     rc = arm_cca_destroy_realm(d);
     if ( rc != 0 )
         return rc;
diff --git a/xen/arch/arm/include/asm/cca.h b/xen/arch/arm/include/asm/cca.h
index b135dd176751..d69e95a10010 100644
--- a/xen/arch/arm/include/asm/cca.h
+++ b/xen/arch/arm/include/asm/cca.h
@@ -68,6 +68,7 @@ struct arm_cca_domain_state {
     unsigned long nr_data_pages;
 
     /* Realm destruction state for domain_relinquish_resources(). */
+    unsigned long relinquish_data_idx;
     bool realm_terminate_done;
 };
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:12:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:12:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309488.1580543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjud-0004DW-GF; Fri, 15 May 2026 04:12:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309488.1580543; Fri, 15 May 2026 04:12:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjud-0004DG-A7; Fri, 15 May 2026 04:12:35 +0000
Received: by outflank-mailman (input) for mailman id 1309488;
 Fri, 15 May 2026 04:12:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjub-0003vu-IH
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:12:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjua-000yVE-Ul
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:12:32 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069d26-bab6-0a2a0a5309dd-0a2a4504b2a4-6
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:12:32 +0200
Received: from [52.101.125.129]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c35-1dec-0a2a45040019-34657d8136d2-9
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:32 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB3981.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:29 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IXjTWfZR+3kWly/5vOglg3MtVqix3dpi2eQw9ah7we8HlVQth7Xk+L8xkCNEi29EsQ7UBg7uTqCJt05gV6mlRcEnM4NhtbTyqod6iY+Oi9eR8zLL5AERzfXj2XCwtAz3s3dILLePV/OZEKgrNH3EDeS1a5dYtwCNId6QqjJ1Q8f0JmWSOIwzzjL1w7iRz2vpGZofgnGxfKfX9c5lJIXPdoPplNVOuTgZvNJf/NVGEytqlxm45IyOpfdLsIpe1FFHldRGfBlLNrdGazqzIUtOF3eZovvCrH7Auuy0cztcOhqJuW7fRw/zBT/GI9cx09x4TcA8WGh7fXxlreFGbKJASQ==
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=u3FWv0GhzR6Z08YwvEAu3rWkS08OimUL4UXo8Xw0smY=;
 b=GI1JsAnORKFapx3wQt4vFhLnrC9C04au+YIaXMiz49egE0CXAkzbVl8arOAiMiwpu/c/O1xuQrmI/I5wN+mD/IO4NOYPeL9EIwzEL7mFrkdU0qbTmS7girWrh7vbuGKnXZQhX6jjSwZG0rOYYqpaMTTuK2HENuXVznNdGC1Y5btIGU2848fKmfN8ZIAANH5/KyWnsBUyLzqpi5Qpta459duVfA8C/Pcpe1RzoPDZgZ/zXSy1S20cb0544/afEnk3AO/ZV5hBSuGVbj1qaTdFzw4OWFaCMvT63hapgZlpsICWDvp75c7yyIDFEL/dKeF5MT9TUwHDNOVDYY1YZ1nkmA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=u3FWv0GhzR6Z08YwvEAu3rWkS08OimUL4UXo8Xw0smY=;
 b=EVdBhsnLh8sWAEI128zfUS0PEhAKbwuLjAK8hZK6q7Rrtwxm3lMxfrFRrjYvdCO46Ew2qXBNuwoZlwTzLRwQIS5myx0Bqb0QwnL7Ezh2Mp/KQfWVHFjmHn5FXIydZ4XohKwJ4rhe8+zF26mM8O4VTe9tCjhB3r0//I090w5uHsA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 13/26] xen/arm/cca: destroy RECs during Realm relinquish
Date: Fri, 15 May 2026 13:07:59 +0900
Message-ID: <20260515040812.983626-14-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCPR01CA0066.jpnprd01.prod.outlook.com
 (2603:1096:405:2::30) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB3981:EE_
X-MS-Office365-Filtering-Correlation-Id: 5e3134ae-414d-4cb7-8b08-08deb2379eb2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	ZbIuGgSzAP8xk/gIBp71eHploo10DeHDf7sMinyg3HS6zWii518J5F9LAu3n0dH4ELAHSRuW+oM2jkfNl+g9KoMlTNQiYGuabCjoSwZvVu19q/KcK7Mbb5KOvDRmA+z9xgTLbdujrwtOjZ63Ekd8ViL1kkUfL7zAJvea2wdkxdXS4gQ+OazatjCG1tsLHxZkVT1kOq7vdgujjht1PQqA77cjSVE2Y6JhznPCxO65t4U8/gFkbTY26s7hVbmnC609hVkImQQa4Hx9l0zfTDxUAX3QDwvHuZ3decxnplDUHvl9UoSiSFLNBpe5d618+EHhUyglmgwVe0bOU70TH2Wfs92Iu8PgYGqfjELE+jXwmIMhR+NC3lGpNsUWZjos7fAL8FPwGNx1He01XLwchnOdMHLBloCUd6r5usOrR4nsyE6teKHGcq8s1k6dQ0JcJKJnWtIvn3ZWzHe+4Cb3VejZhIfGJ0ZSQVwWFR8LymKfWyNTMcY4o//c3c8pL0YSLSlYfPD2VRRBjPXGMJKMo4pXCeRqrsN4km56QEseUj7TSd63Be3gi/ZL45698ezPrUTq2pp4jHj08JCOu8EuiSx8czQx/pLIYf2eGjVuPtTXDgfW0WJvz3WM4jBrU50rpjvQMg08JWUTTNO9ab9DhnyvuXbMsWYkkflPqN/I3AXa4d15LaN9XCPNPunAR9YkwZtN
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?rzFfkBtTiACIx5FNERO7+qcdGAQF/nexYtYrwA0XoEDt+s++ZvpxMmT/F6TO?=
 =?us-ascii?Q?ddaTm7Lond+JFPLgb+4zbCG0Ax0aVoZbfP5j6RFDAfFYT/noqA1KeVE8upZ8?=
 =?us-ascii?Q?gG3xO0QuNxmulWQZ3N8oRV5+t4DG3lE2EuBVevvvvZkb0/Rst2KUhQ3fPBRC?=
 =?us-ascii?Q?HuLyPS4q7ZvVX0ySM9hQv2mJAc3AAaUssKwFy6Frln7S51GTd1a9JzVvykic?=
 =?us-ascii?Q?poOKxOzZrzFiCanPbACv0X3MNhKi8zsjLGaWnBLo1ha2yasMdqgiZcSIaDrj?=
 =?us-ascii?Q?fqysX5MSpiZkj/1FS5zpHsQuxT6iS17xC7eELmf/YD69vOLc2rLj+EWyWLyR?=
 =?us-ascii?Q?h7IVwe9YEnEfJDtKbcrbJmTnetMa3ufXu1xk5nBr/a6q+wB5fB7DAGuV0C3n?=
 =?us-ascii?Q?hto5IlRbqSkAfii+cQ4/elC7VyjhDzCsEHU2iUbNJJtQFKIP6ddSEjLXh2c1?=
 =?us-ascii?Q?SIYDtmLRU0uZHRQ6m9o9pusJmpRyedjJMbCYK++c2RDleYQOB74woBfmMZzv?=
 =?us-ascii?Q?QUC7AmZdOovb5/xfytT8JdNsuz4c+68bSC585GmSEaGzbbp6f8NSxQ3KaI+9?=
 =?us-ascii?Q?MOix1hbL0huAIsQjVUouVqte4lZr35envA3bDgpCTubEhWlL3cP2mmvtTJ4x?=
 =?us-ascii?Q?GsNhV7qSxSC7mD2P1RH80ONhigw3ZTX3D6ss52CweHS8kXMAWWQE4eU8uyCB?=
 =?us-ascii?Q?5Nberif62uKDjUdlfH0tZPcEG8VpAsv8VVGRfHkc8FKMNEzF4ig0nB1yXDFU?=
 =?us-ascii?Q?pOaqK8kbMsIcPv6hufwMHrHNSpICU3SN3p2UVPmODZBSHrovdTMcwAl/Rcmo?=
 =?us-ascii?Q?VpLxQuQeXzbHrdMX2jPKgB4237MBbKfbNsXYlv1ysLaoSpjpQKA15qZxLSfM?=
 =?us-ascii?Q?ElME+VXp8JnpyMoRhDIqxkBWESJcoATT8YM1Zw1DzZc3+2bpwHjEou00IAym?=
 =?us-ascii?Q?YGa6viBElVTJ05RtSRv8B2Ms0ra2AXs4uhdPA9Qb38sccS9aVH72F8POlM4O?=
 =?us-ascii?Q?v0F2QFq8YxFOHvLSkRylXfmfzxslV4e6Nzi+yuj+1xyehb/T50B4u9xzG4BW?=
 =?us-ascii?Q?wbtpsCbxnamF9HqMK0RzP7BucSkThn326lSG4p4VqI+s5Aubjnyi8SitSAHF?=
 =?us-ascii?Q?2qQ2eq296VggSIJbRsKYfXntWSWenaNXA5TXfeHs0+EssfoGi0W4gI+I0BRr?=
 =?us-ascii?Q?BQqMS5RzO0b5FPWVlp404MErNQEn7/f32xtLgCVI7aHXbbJoo4L3DS7eQoLW?=
 =?us-ascii?Q?lJ1mkWrirMEQqdLQrdyIaPPDzRvXt1CuRpW7e4H0uhnl3pNjImP+mLwW3Hjy?=
 =?us-ascii?Q?Lf7JINDFs3X8sbMUcJTG2DwbLNhxah+bdqkBekZ7BvgA6+QxhcjP4A2pijQp?=
 =?us-ascii?Q?85ZegI7sT3lchbW+1fUOkKsQmivk0iUiQReuJey04FoWxvSWToEO1/NPLY5l?=
 =?us-ascii?Q?AvzyYef10YaYbUv0fQR8GNBLFTrQ34eZJBzS1eK3+OAXRYaD6f7AbRKLvv5i?=
 =?us-ascii?Q?hM0V5+pC3Gv+jgfYEJH0D46RnayROaTV+nh8J3iyw86YbH/eleYTf+9mrG/I?=
 =?us-ascii?Q?+U/+s2R4xIpQC2XFaYXsv1prIC2K002f9CSJu2SXJZi0B5UZIUko+She+xbd?=
 =?us-ascii?Q?IwX4tHLZEeWjjeshwLl4EuQbxR6WryR1frN9q7TTfYp1RaHxlzxqkkUlUW9T?=
 =?us-ascii?Q?2ASVhtH8Zx4vkp8t3VKyaAAKwQ2C1g1Xg7c4YLj65kIz1zc6OcFI+Kg2GY5x?=
 =?us-ascii?Q?b9fA9rSMC5r7Q9WCyocDl2h3U8jsZcMM4/rVMSMylC919yn0jwbL?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 5e3134ae-414d-4cb7-8b08-08deb2379eb2
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:28.9253
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: X4IWjT81l1Glcn1oU+UaHW8xEXpsZQ2qS2jVoLP8JygD1f2lrE0k70DsElq/0sAOOQkmxi8KkTfz1J64MdIryw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB3981
X-purgate-ID: tlsNG-ebf023/1778818112-4014E3FF-E7C63A26/0/0
X-purgate-type: clean
X-purgate-size: 3000

Destroy each REC, reclaim its auxiliary pages through SRO, then release
the REC granule after the RMM has returned it.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/state.c | 81 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 81 insertions(+)

diff --git a/xen/arch/arm/cca/state.c b/xen/arch/arm/cca/state.c
index c85ef56a1297..72dbb83841d7 100644
--- a/xen/arch/arm/cca/state.c
+++ b/xen/arch/arm/cca/state.c
@@ -122,6 +122,22 @@ static int arm_cca_relinquish_abandoned_pages(struct domain *d)
     return 0;
 }
 
+static int arm_cca_rmi_rec_destroy_complete(struct vcpu *v)
+{
+    struct arm_cca_sro_mem_xfer xfer = {
+        .pages = v->arch.cca.aux_pages,
+        .nr_pages = &v->arch.cca.nr_aux,
+        .abandoned_pages = &v->domain->arch.cca.abandoned_pages,
+    };
+    struct arm_smccc_res res;
+    int rc;
+
+    rc = arm_cca_rmi_rec_destroy(v->arch.cca.rec, &res);
+    rc = arm_cca_sro_complete_mem_transfer(rc, &res, &xfer);
+
+    return rc;
+}
+
 static int arm_cca_rmi_realm_destroy_complete(struct domain *d)
 {
     struct arm_cca_sro_mem_xfer xfer = {
@@ -269,6 +285,67 @@ static int arm_cca_teardown_rtts(struct domain *d)
     return 0;
 }
 
+static int arm_cca_vcpu_free_rec_page(struct vcpu *v)
+{
+    int rc;
+
+    if ( !v->arch.cca.rec_page )
+        return 0;
+
+    rc = arm_cca_undelegate_granule(page_to_maddr(v->arch.cca.rec_page));
+    if ( rc != 0 )
+        return rc;
+
+    free_domheap_page(v->arch.cca.rec_page);
+    v->arch.cca.rec_page = NULL;
+
+    return 0;
+}
+
+static int arm_cca_vcpu_relinquish_resources(struct vcpu *v)
+{
+    int rc;
+
+    if ( v->arch.cca.rec != INVALID_PADDR )
+    {
+        rc = arm_cca_rmi_rec_destroy_complete(v);
+        if ( rc != 0 )
+            return rc;
+
+        v->arch.cca.rec = INVALID_PADDR;
+    }
+
+    /*
+     * arm_cca_sro_complete_mem_transfer() consumes REC_DESTROY reclaim
+     * requests.  Remaining REC auxiliary pages would mean Xen cannot prove
+     * that the granules have been returned by the RMM.
+     */
+    if ( v->arch.cca.nr_aux != 0 )
+        return -EIO;
+
+    return arm_cca_vcpu_free_rec_page(v);
+}
+
+static int arm_cca_teardown_recs(struct domain *d)
+{
+    unsigned int i;
+    int rc;
+
+    for ( i = 0; i < d->max_vcpus; ++i )
+    {
+        struct vcpu *v = d->vcpu[i];
+
+        if ( v == NULL )
+            continue;
+
+        rc = arm_cca_vcpu_relinquish_resources(v);
+        if ( rc != 0 )
+            return rc;
+    }
+
+    return 0;
+}
+
 static int arm_cca_destroy_realm(struct domain *d)
 {
     int rc;
@@ -330,6 +407,10 @@ int arm_cca_domain_relinquish_resources(struct domain *d)
     if ( rc != 0 )
         return rc;
 
+    rc = arm_cca_teardown_recs(d);
+    if ( rc != 0 )
+        return rc;
+
     rc = arm_cca_destroy_realm(d);
     if ( rc != 0 )
         return rc;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:12:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:12:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309489.1580555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjue-0004cK-O5; Fri, 15 May 2026 04:12:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309489.1580555; Fri, 15 May 2026 04:12:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjue-0004bq-Kp; Fri, 15 May 2026 04:12:36 +0000
Received: by outflank-mailman (input) for mailman id 1309489;
 Fri, 15 May 2026 04:12:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjuc-00048s-Rp
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:12:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjuc-000yVE-84
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:12:34 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069d26-bab6-0a2a0a5309dd-0a2a4504b2a4-8
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:12:34 +0200
Received: from [52.101.125.129]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c35-1dec-0a2a45040019-34657d8136d2-10
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:33 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB3981.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:30 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jp+/O/GeQwJmOb7MFT9Ek25aZ7U4EoVMvKSVMZq10HtD+NcaUo7+kcbVRPi0jFXqQV12YIjtR975uXDySqNnb5oM9WfVGH7CqbZv5dO8O2+SXIyOmd77dD2vx8QdFTzGUOr9ADCbwhY3SzFH091ARmHHcFaepMXU8ofWkbm0dEArwjPM486vI4KArCNV7AHfmsvICQEkBjHr9MXKnvYPQNVBlARsGqYst+HCspE5mhy6101a8h5K3yaRvDlNjzAiUuoqpo05g5IeCKgcE4xMd7TcaGXG/1gZSMjvU1aAKy1AluN2kYAQKlU77toOLehL3uzi8BRdbLvLB7MFtkRL6w==
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=FZtK/SKYZCbPqZPdtBWTxkdfuoOJCT3QfZZUH1rHysw=;
 b=mUx+ftlah+frn9InSWv9C5utTgOaDEm+tKlekXtfxjhqO93nwvlMZE2m4IuGxJsuItZ0wHRJ/zFIQ7+rN624iGd/SUN0XWJrFis4/X84f7awXuSpi7wZQRoSJx7RFq4kCt1CzDooYPRu+TjvPfd8cgy6cBUknZwumajbRVvuA7hiRbrA0pA9iWqrlIy0ERZDfyWVYCunDOK0GO1KpVI+zZ+dKR/64hliLs4wbA7xAmhwX15IX5K5Ue3paPymLbFMa8vIhvab7nuaYS34zplZZih7A9CkFfx0isoFUNQmEBn12ugFDd+TFPJrbNEyGnuqx7RixxqW37eLTg7XHlVnqA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FZtK/SKYZCbPqZPdtBWTxkdfuoOJCT3QfZZUH1rHysw=;
 b=UhbZxC/gWhgIyo3DfTpD1u2lNu48sr5kql55ojsI76V/I8DxlIKaCBZvUN2XXSc0vcbAXWpcGFqbkuz2TvK48af4bQ4J02mfJH/vQHXvXWPFSeI/OFkP06Evg2KIYKYuD4KR3hXLPu5vWB1xmvD0w00B/7xBlC/zSy3TLK8cMAs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 15/26] xen/arm/cca: create Realm descriptors
Date: Fri, 15 May 2026 13:08:01 +0900
Message-ID: <20260515040812.983626-16-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP301CA0001.JPNP301.PROD.OUTLOOK.COM
 (2603:1096:400:386::19) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB3981:EE_
X-MS-Office365-Filtering-Correlation-Id: 09dd67a0-dcf9-4135-92d8-08deb2379f98
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|3023799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	V3xS5r1JAE/Ukme4iMo8UCnJR4zgZO4VdeUsjcCTpTbzLeXQDbKgUCF/fJ8ZrDy/q410Tud5x9ZZbT1+pln3ODwrf1JzkoVZggYXwxQkl6y4aq2TOZJ1qEeft8odO0nood9sEsdcnVU9hFfIU1sUUn+1TCDpx80LiNlPBZNfBxkbH+QEQdfO3XOeA5BCUqfZ4XbDR6XPHzUDVnFB0NdZhy4zF1ZPiQX4qNwb8PDwsHPQRegDuXXFlIaEaRcDadeE1sbfaRqbsWBm599Xxvr8salvzDRS+Std6Nv/6VGWv+u9CIlcLTj7bbIiSSmpOa52BiTQMu39AhHkxM/Y0PBJDUNf0sxi5il7mvDW3x71b9s+CRbAZvehR/XTGg2L6O7J1WpMoO8l8Mlu4v1ieomqWczBsoErr8/nulMCIbrAD+9spfm6VSmA9w3GPLZ30jMrV4BS6Xc45eV5fEt99o/h56FaBHOpF+A14IrgJ6aZ1QUg7BXhw1mJvdM2Y4GuhV23vGfeG0mktknt9m2Dbf1XpsT2jvWG9PZHQK7pyowWLxoRDYTpUsDj6zPNPaZkZw2StBfdqbREBl9LmC7PSw9tme/3P6p6jAYAZ9BSh7i/NQQpjqs6QIo4VyzgqicfSApRPfXTstqFZxNue4mDheLINeWqXPcoD28lR4eiuqVqKZKtOEvgfkfAhnfftyp+PTtn
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(3023799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?eDjwDLLTvKIR8XhvAV+DclLr/BeAZDcWMeJFHHwoUtYtAjCk4GX5f77z6WhI?=
 =?us-ascii?Q?CpCDhsxp5WGQutpFLqfKzGr74LA01/R+3uWUVoE4/ZdWlKMdOyWISGVcToGf?=
 =?us-ascii?Q?uWTGinbZXE58MuTflyUPUxJzbKLs1E4GGJLRuLoddEFFsFWvPaoKUyyLIuQm?=
 =?us-ascii?Q?3TqSDImcuoIX4oJKj+soY0fGS6xu68T/OQUBwJfUGPeE8EmksIdhmNtdpwzD?=
 =?us-ascii?Q?uGgB+Z3bui7T0ybWHdploeIKCySmjk//2mLD0wA5vYDrWZNv6HTVDPpx8s1r?=
 =?us-ascii?Q?RDdoEMt7VsBpso2bwaapYcTLuNquF2KFiQM3lg12c/aNwKQdTU3ImWu460Q7?=
 =?us-ascii?Q?r9liNgURVuVmq2ZLrj1WrjfeFKhIzUV/O/FLoK9djr1i4ly++WuUZk+Xj8Nx?=
 =?us-ascii?Q?BBy5kpMALJB9Gnszu/VT9B/+eTozQgF6nG+gEl1ygZc5QxR2U+P0ZkuEQ7fl?=
 =?us-ascii?Q?0IvxjnHA4GDxrMetutXm2OLOUFWPv/4SWwrbvpeXSz4NgwDyqZXmenwdeIq3?=
 =?us-ascii?Q?dzfd+LpLbSwZYsYnr8VacM8LB44TUnzpU3txCOaWigNlNtJpj0Mf4XmgUPei?=
 =?us-ascii?Q?sBqnObF+sSNBTrei2CLXAmLCUBhzVWM/FGG8L08iaWSJbvPqyQgzb+S1gQey?=
 =?us-ascii?Q?6WPu/CYVcqX9UgtZwGZrOJiDGDnPBLA0aY6DnVKi4zdgSkRiEDHEmyArM8d6?=
 =?us-ascii?Q?M3JpJosBFABXs8mzVQpsq578uX/JOx293wo7dhp3PWbJE27/9m071kL/Sdz3?=
 =?us-ascii?Q?8vPTXE5A0bg0roq6o/K8YP2cpiARZm+QMIKfL8AneafGVt2dVquNlDGXwCPV?=
 =?us-ascii?Q?1RFBghTZw78Ql04KfigeD5Ln49qUxul89VLNskFlwlVQyXoXwEZ6LkyuU/P8?=
 =?us-ascii?Q?nk9k6lLFkhJnHQe1Fxly6sAutrj4e+qYRRTfVv2NjkhF9xCLq5vSm/GkodK7?=
 =?us-ascii?Q?/Q7SoG1RIrRslImrjm79NmOluezM6MYzUfzcUlCl+Ijqli7BER7V9EGT8363?=
 =?us-ascii?Q?0Q+Dz0Lzc5Ra25PuELuNzbJ6o8ovXTyO+7MH0tYVnkU9bx6S9TbezfB4ib2F?=
 =?us-ascii?Q?Zql1+st9YUp9gzqEmGvf3Aye/I2DrOH0FAo9xVt74U4IenL5/PKaRlWOXgQN?=
 =?us-ascii?Q?qJdS+rUMQ/bzglMzvk+B89W3d+2Nbq0HTE0yxGbv55ozff4Zq5LzQkiTsDsu?=
 =?us-ascii?Q?UCQrufhlltdqdoEHxImTtCfqb61Mt7USDUGzAuRfEfPGfuDLBztYhl84Lcck?=
 =?us-ascii?Q?S3uSQGDsZUiFvuPwa4O+A3NyZFzhYz+joM1Di68vDS9ZwxLP8jP2rYfSySfw?=
 =?us-ascii?Q?kJbJ+GCPonrjHkNqDpjCjnrGQUxohxq+6rGmV3tZlkOWOPAo0FRpYSLpVjHP?=
 =?us-ascii?Q?UVZbidyWhMvcp5SyKFdcq+LKIPfysRHTfvgh1g9Cuixw9bmLtojpkG7c0IVG?=
 =?us-ascii?Q?+BVryQKLKcw5x/GgUn+jFtkfNA67fcGt0zGLiCISgudIYKK4kdP9YfwFBxd0?=
 =?us-ascii?Q?baviNSKdeS0jtFKXH1DgWSkdlfzi7brg7nPzpGpHkI4NTurr7GBrUZeJT2wl?=
 =?us-ascii?Q?gsNSuZDak2zN96F9jxVb8qkuE9ng9gzg6U7IPwcEif9UVZtZ0LjatVRnOP4G?=
 =?us-ascii?Q?fEJC0pXyGaOnoKVUMvCnnh/ca4vHrWFFEeHicLXfzu2WgK9+ZqwvRSApYBsu?=
 =?us-ascii?Q?t3q4sbiPQyOH7uOjcDzSUcyCaBh0V3RkDyTVyWvNJi30jocKfOkJBU0+EU4B?=
 =?us-ascii?Q?LPC8jLfPxc1vYpB08lb62ik4eatQqDT83p9Kttg/9GNdHcjlTW6g?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 09dd67a0-dcf9-4135-92d8-08deb2379f98
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:30.4211
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /Mw9cYarOAX5YnMziMUm21rytVTJVpUe3WJZpdDJOtphFD/zVfmyMwYzePzJAMG6N5zj8CbgnP/jiV3CcqWVSQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB3981
X-purgate-ID: tlsNG-ebf023/1778818113-2AD643FF-CE381AFF/0/0
X-purgate-type: clean
X-purgate-size: 4417

Create the RD, root RTT and Realm parameter block for RMI_REALM_CREATE.
Record the delegated pages straight away so abort cleanup can find them.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/build.c | 116 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 116 insertions(+)

diff --git a/xen/arch/arm/cca/build.c b/xen/arch/arm/cca/build.c
index f333813e10a0..66d9c88da161 100644
--- a/xen/arch/arm/cca/build.c
+++ b/xen/arch/arm/cca/build.c
@@ -409,3 +409,119 @@ static int arm_cca_validate_realm_features(struct domain *d)
 
     return arm_cca_validate_realm_features1(d);
 }
+
+static int arm_cca_rmi_realm_create_complete(struct domain *d, paddr_t rd,
+                                             paddr_t params,
+                                             uint64_t *rmi_result)
+{
+    struct arm_cca_sro_mem_xfer xfer = {
+        .pages = d->arch.cca.realm_sro_pages,
+        .nr_pages = &d->arch.cca.nr_realm_sro_pages,
+        .max_pages = ARRAY_SIZE(d->arch.cca.realm_sro_pages),
+        .abandoned_pages = &d->arch.cca.abandoned_pages,
+    };
+    struct arm_smccc_res res;
+    int rc;
+
+    rc = arm_cca_rmi_realm_create(rd, params, &res);
+    rc = arm_cca_sro_complete_mem_transfer(rc, &res, &xfer);
+    rc = arm_cca_build_record_rmi_failure(rmi_result, rc, &res);
+
+    if ( rc != 0 && d->arch.cca.nr_realm_sro_pages != 0 )
+        d->arch.cca.build_unrecoverable = true;
+
+    return rc;
+}
+
+/* DEN0137 2.0-bet1 - D1.2.1 Realm creation flow. */
+static int arm_cca_create_realm(struct domain *d, uint64_t *rmi_result)
+{
+    struct arm_cca_rmi_realm_params *params;
+    struct page_info *params_pg = NULL;
+    struct page_info *rd_pg = NULL;
+    struct page_info *rtt_root_pg = NULL;
+    bool rd_delegated = false, rtt_root_delegated = false;
+    void *va;
+    int rc = -ENOMEM;
+
+    rc = arm_cca_validate_realm_features(d);
+    if ( rc != 0 )
+        return rc;
+
+    rd_pg = arm_cca_alloc_host_page();
+    if ( !rd_pg )
+        goto out;
+
+    rtt_root_pg = arm_cca_alloc_host_page();
+    if ( !rtt_root_pg )
+        goto out;
+
+    params_pg = arm_cca_alloc_host_page();
+    if ( !params_pg )
+        goto out;
+
+    rc = arm_cca_delegate_granule(page_to_maddr(rd_pg));
+    if ( rc != 0 )
+        goto out;
+    rd_delegated = true;
+    d->arch.cca.rd_page = rd_pg;
+
+    rc = arm_cca_delegate_granule(page_to_maddr(rtt_root_pg));
+    if ( rc != 0 )
+        goto out;
+    rtt_root_delegated = true;
+    d->arch.cca.rtt_root_page = rtt_root_pg;
+
+    va = map_domain_page(page_to_mfn(params_pg));
+    params = va;
+    arm_cca_realm_params_init(params);
+    /*
+     * Initial Xen CCA supports only shared MEC Realms.  Set the policy
+     * explicitly even though RMI_MEC_POLICY_SHARED is encoded as zero.
+     */
+    params->flags0 = ARM_CCA_RMI_REALM_FLAGS0_MEC_POLICY(
+        ARM_CCA_RMI_MEC_POLICY_SHARED);
+    params->s2sz = p2m_ipa_bits;
+    params->hash_algo = ARM_CCA_RMI_HASH_SHA_256;
+    params->num_bps = arm_cca_feature_field(
+        d->arch.cca.rmi_features0,
+        ARM_CCA_RMI_FEATURE_REGISTER_0_NUM_BPS_SHIFT,
+        ARM_CCA_RMI_FEATURE_REGISTER_0_NUM_BPS_WIDTH);
+    params->num_wps = arm_cca_feature_field(
+        d->arch.cca.rmi_features0,
+        ARM_CCA_RMI_FEATURE_REGISTER_0_NUM_WPS_SHIFT,
+        ARM_CCA_RMI_FEATURE_REGISTER_0_NUM_WPS_WIDTH);
+    params->sve_vl = 0;
+    params->rtt_base = page_to_maddr(rtt_root_pg);
+    params->rtt_level_start = 0;
+    params->rtt_num_start = 1;
+    unmap_domain_page(va);
+
+    d->arch.cca.rd = page_to_maddr(rd_pg);
+
+    rc = arm_cca_rmi_realm_create_complete(d, d->arch.cca.rd,
+                                           page_to_maddr(params_pg),
+                                           rmi_result);
+    if ( rc != 0 )
+        goto out;
+
+    rc = 0;
+
+out:
+    if ( params_pg )
+        free_domheap_page(params_pg);
+
+    if ( rc != 0 )
+    {
+        if ( arm_cca_free_build_page(d, rtt_root_pg, rtt_root_delegated) )
+            d->arch.cca.rtt_root_page = NULL;
+
+        if ( arm_cca_free_build_page(d, rd_pg, rd_delegated) )
+        {
+            d->arch.cca.rd = INVALID_PADDR;
+            d->arch.cca.rd_page = NULL;
+        }
+    }
+
+    return rc;
+}
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:12:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:12:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309490.1580565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjuj-0004zS-AM; Fri, 15 May 2026 04:12:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309490.1580565; Fri, 15 May 2026 04:12:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjuj-0004zF-4r; Fri, 15 May 2026 04:12:41 +0000
Received: by outflank-mailman (input) for mailman id 1309490;
 Fri, 15 May 2026 04:12:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjuh-0004u5-Do
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:12:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjug-000yVE-QE
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:12:38 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069d26-bab6-0a2a0a5309dd-0a2a4504b2a4-12
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:12:38 +0200
Received: from [40.107.74.93]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c44-1dec-0a2a45040019-286b4a5dedd0-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:38 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB3981.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:31 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YBlYFF/JZ3pryGAABICzL5fnic9gYzEsoLzvyN/B0CC0PabfIElJGTkPaC6gcRk9LF8nwWXR6xgRObWXQKNfKO3jpHJLmo3/9cMFH+w0AuAZK6ftPXB6iWta1p8Y5qPfPp/11UoJHUD7nTmx6ALY4ZbIBjEEBhdgQaNT99pl5smmwscyLMwR7+YyNx0unOaYPQgpnvLL3dootiAPUG5r/Inr8Fpw6Y/C44pc3q8np/OsB7LxdCqt9oFCSTkQSi7ZjdRxH4EOOF6qXs4L05nSk8fuL6j+nQwxIpfQii5t0NrwTcZRWf7rLUD6LDF93dxE2BoXe+hne6AfON231oVclA==
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=ic4DMqcnpHbXQ4IcgQkHlB6E0zWUFBVW3mjpWAW49LI=;
 b=WjuP+IuMrr7obYTiBrVCamPq/XI3vTNvDz2ICaQHTRujqjA7BgcW4n4o3Fvq+6z3EvFMBMTfn/xHla3jc8mqh9aBPIpqjsdaWv0UPgt64lLNiraHPYoPvteiLrnVX5SAxF9oMBNl30Qo3zEL4yxgPwLjyDp2INHN7F4dSLoER9wb5mxgul3epCyKMPTRr8kERYfu/TpEBN1hKlHszpS/HHjTX6vdvxqAEU+yWw61E+EcKffrbFgkJDLpHch+CP0aeWTWndzrHKqxGE6yNrLXJ0iIt9KD+UHEoKebKw5KK8Vt/jhVPZ5zlbgpO4w9nx32rF+zLWn0+6gob6t0h2TRJw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ic4DMqcnpHbXQ4IcgQkHlB6E0zWUFBVW3mjpWAW49LI=;
 b=ASmV9ZixM6nhrnDZqYV8GgLVxQyBzGZGViORUYbW1OZf8jgixlHpRIBDDzLKCTH1gb6cguqxNLdwGJqsjm3rZnn06QAwiUqQURO6ThJEvX+QocGBghtKBjBXcLqXXSKyZwADcjwOp4PMDMuNlubT2ARVkjfYcklXRdfNTnsuY3M=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 16/26] xen/arm/cca: build Realm RTTs
Date: Fri, 15 May 2026 13:08:02 +0900
Message-ID: <20260515040812.983626-17-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4P286CA0069.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:371::11) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB3981:EE_
X-MS-Office365-Filtering-Correlation-Id: 050a3046-af8b-4c3d-25ef-08deb237a00e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	6PMNdPElGGfEcYqItk2aYTGz+S8bTo6L6/C3BV52RlG9U4lNWAUdad/T/a96tQpdf1bfZF9147g23ACYQhQZ5DZejgDCA8jJL47KwOBqdsKWFt9hmQ4I8Ihf8msgvVZe5ZuJkYf29qCEGtp6YBP0gX4PC421tRL1RWQuA4e8f9AsfIuB6VT7Pm4POud++XEa6axzG409juIP292a7D2Cg3l51WWL1e1a8FZkoz3GKtDi7eSUXtC1uxt2qvhmCPNaZwHWK4Y5+k4YtH9t//dWxMG+rJfYF5JwyEfcCdkwpGRJfLO2g8GEy/lYDj+Vw84ml+KQXvUTYH2AHBecnC7n7YxO5MakudWO+7hMICBOyYaK4EVQABuaX6f3zkBzrp1KyuuIQ6rlpiL98yCTpPsgYIecKZC0sJY8D0OpAhFCuqyQRTq/2OFwBoW6peBoyx0JHMHIzm5/Dqatz0SjB4UcRsrLEr85JvRHwddeyYOx/UVctROcq3jVo0z4qv08kM8rKv80MP+I2hGCy0wc26b0N0QO3vnzucKfpehr7WqNBMDkE9pqvQGTmB5bRFi5XgFN1MWspj4XeQix2WVL8juWvy3n1yYiofhkEATmVPqdEwhYff4nC/dCyzkO7+eu/I5P+9eMnc/2ht24V2bHegRtD4RTsy56GzRhoZBXhUFaZPhuIU9DZY966Dv+3sph6Ql1
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?ZONyaHKDlQnmMBpAm1Lh/I1MF8+uiPWHtDHNfW8mFklLgRX3SLgglkbhdrR1?=
 =?us-ascii?Q?O8UyOxEjMBYym2E8qMDarjvaUc8/8Aba11qfWDJBi7tInZEZr2+dfwSXO+Dn?=
 =?us-ascii?Q?e8Per0I7kgyXSEf0sAwnj5FbOPMoDvbn/UGxWsAA6svVbDtRGxnfZuN6CEaH?=
 =?us-ascii?Q?5mC89X2SwtrTlZFP88DIZ2vSvsMGIHHNuY+wWpZ1yaG8rPTRO/mAjRLdxqFy?=
 =?us-ascii?Q?IV5HA5LRwA/tYO3Bz9PKQ7DeiYnqLCzU9Vk3rMvE+4jXi+Ukut04/n3GBBaL?=
 =?us-ascii?Q?f7kSxuL3X5OIgatlgR9Gkc40qZk67oJg3DcDfCMyDj64BdGTudvbXsofKRQH?=
 =?us-ascii?Q?4NpCkuwFpQ+ra4pBwIoni6I0nNthfgLcHfE/ZTi4hiUapoZ5aGj35yXEGjAj?=
 =?us-ascii?Q?mW6gUrJUKYK2F7CWSIA0VRiJdlLlqBn3rsRMr7X3Gfc0qhZwsiSEea+uMjEG?=
 =?us-ascii?Q?CQn17xO9bOcoPPDx7/rQFPavT/Qz9aj/jrZsHms8SYw+Zg32HKbh0bK6SJgc?=
 =?us-ascii?Q?qdOqCvAQdwoQXQ7Eh9FBuHPMhQZIQJY4OowpQkyQzgCRvl4HvwnPgxgJ8sBD?=
 =?us-ascii?Q?3DRyIV40QrSPIK6Wof5+E1O+sEdaqgHrC5rRJKQ96Z57YOBcaaQcsrwyvsQI?=
 =?us-ascii?Q?IlUKqQ7s1LMpLocl2tPGdJh/Q9RR/mTBwZ7k+9wSNwBV/rWya/V4aPIgC3Co?=
 =?us-ascii?Q?YsLw4nG6cSgR2zN3t2HScBCsd2KQ+2upM+yfkmyoXuXYJxkAH7llBL42iNqQ?=
 =?us-ascii?Q?AA/Vw3nAawA5V7xqEgAEX8dn7jKUhP9dPzshjZUjdlBsReg09E3opYCvEtN0?=
 =?us-ascii?Q?W6GTOFUsy8xYIDPJQA6eUTJKiOIf96/wAnHdNsqFUpyvHbmgQQOlWk3loUiZ?=
 =?us-ascii?Q?p9VVI41udheHWL87UYmm2xjsr+L89xPqLrojV1QeoRNU9VuW6JEUG0+MtIW9?=
 =?us-ascii?Q?ff4iXoc8OZCM+7Ee0KB1oESoDUk8XE+cww09J5/w6SKx3Fm6jqHg75yBo/b8?=
 =?us-ascii?Q?KQxYNuK7t/vAoW/I1mA9UnsfasqaceCvAekObTkORRobCKxPZjhyU3cmA+Ff?=
 =?us-ascii?Q?x0c/A51LZNdB53KtmeQpC7f7KwdHpO4vutGbvNlFwFA5cazJX12TPOJs7qn8?=
 =?us-ascii?Q?RQxAx/x7EE3L5yzpqqunZcHgGmbrRR9P7SVpaOCErRHn7xfSmh+fFqiFj8RT?=
 =?us-ascii?Q?vmgh1GblIBL/sW/K4OZGvj3wGtb0MLWzP7LBqzLBuZKvFUTR9+mgYd7WcBE8?=
 =?us-ascii?Q?ZK2DiyNIACDOsIBouVFFIItsFtnyyPwjz94UqGJyURJJ54UfgZDTCimBbkXM?=
 =?us-ascii?Q?idrdY9g9HgyGjS/NLoLUzfYfXxuxIB57pDsD1I6/0VsWjPxOOcRzT9ZiIc3/?=
 =?us-ascii?Q?lZxsecUX7/Yq9XXAcxJwRmdMBmJe2kOghupsa01KScVxK2YEWYX+1xLqta/5?=
 =?us-ascii?Q?7vLtqcw/RNRtQkSErMaW8X9vp7TJM+dyhj6QDmarW41cQ+HeisVbHgSmHY7g?=
 =?us-ascii?Q?7vK0TduhPClYB/RfgZVeEcBThODuTcLjfNYI0UVaXL5tlHVYZ+VNK8/XDmoF?=
 =?us-ascii?Q?/2o+D4IrI5H5TD82nQgtgxuj3K3S0iHumxpPVSTwEMcNEx7LuIs/aXz/BK33?=
 =?us-ascii?Q?pGumLvVq82X4I5SEhc+Kgv4N1GhR1OrrdFT/dj+rzz+vp+ZZNyLZ3wM5G+gd?=
 =?us-ascii?Q?Rj7E5ya55r2/jLHJDa1nWrDUNpMnTtoVdZd42eQxXio8Rx6EKo5PRT6ouzIO?=
 =?us-ascii?Q?qa1XvcJbqPB6G3b7TkgfSNkYWk0JQnpEKf4tsvldX+XSUvZaoD8G?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 050a3046-af8b-4c3d-25ef-08deb237a00e
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:31.1941
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: zwlBgvM6pBArqAOHDB0n2NDG9C0CXT8mQaKwlnvt4A4Xw3pIFQkvnYwUKVN758GZs5PQHe4ObrWDbyPU7hWWyQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB3981
X-purgate-ID: tlsNG-ebf023/1778818118-4237F3FF-11C8E8B2/0/0
X-purgate-type: clean
X-purgate-size: 4565

Build the initial RTT tree in restartable chunks, recording each table
so Realm destruction can walk the reverse path later.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/build.c | 139 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 139 insertions(+)

diff --git a/xen/arch/arm/cca/build.c b/xen/arch/arm/cca/build.c
index 66d9c88da161..10f61b5038ef 100644
--- a/xen/arch/arm/cca/build.c
+++ b/xen/arch/arm/cca/build.c
@@ -525,3 +525,142 @@ out:
 
     return rc;
 }
+
+static int arm_cca_create_rtt_table(struct domain *d, paddr_t ipa,
+                                    unsigned int level,
+                                    uint64_t *rmi_result)
+{
+    struct page_info *pg;
+    struct arm_smccc_res res;
+    int rc;
+    unsigned int idx = d->arch.cca.nr_rtts;
+
+    pg = arm_cca_alloc_host_page();
+    if ( !pg )
+        return -ENOMEM;
+
+    rc = arm_cca_delegate_granule(page_to_maddr(pg));
+    if ( rc != 0 )
+        goto err_free_page;
+
+    rc = arm_cca_rmi_rtt_create(d->arch.cca.rd, page_to_maddr(pg), ipa,
+                                level, &res);
+    rc = arm_cca_build_record_rmi_failure(rmi_result, rc, &res);
+    if ( rc != 0 )
+        goto err_undelegate;
+
+    d->arch.cca.rtts[idx].ipa = ipa;
+    d->arch.cca.rtts[idx].pa = page_to_maddr(pg);
+    d->arch.cca.rtts[idx].level = level;
+    d->arch.cca.nr_rtts++;
+
+    return 0;
+
+err_undelegate:
+    arm_cca_free_or_abandon_build_page(d, pg, true);
+    return rc;
+err_free_page:
+    free_domheap_page(pg);
+    return rc;
+}
+
+static paddr_t arm_cca_rtt_span(unsigned int level)
+{
+    switch ( level )
+    {
+    case 1:
+        return ARM_CCA_L0_TABLE_SPAN;
+    case 2:
+        return ARM_CCA_L1_TABLE_SPAN;
+    case 3:
+        return ARM_CCA_L2_TABLE_SPAN;
+    default:
+        return 0;
+    }
+}
+
+static paddr_t arm_cca_rtt_start(paddr_t base, unsigned int level)
+{
+    return ROUNDDOWN(base, arm_cca_rtt_span(level));
+}
+
+static unsigned int arm_cca_count_rtt_tables(paddr_t base, paddr_t end)
+{
+    unsigned int level, nr_tables = 0;
+
+    for ( level = 1; level <= 3; level++ )
+    {
+        paddr_t span = arm_cca_rtt_span(level);
+
+        nr_tables += (unsigned int)((ROUNDUP(end, span) -
+                                     ROUNDDOWN(base, span)) / span);
+    }
+
+    return nr_tables;
+}
+
+static bool arm_cca_build_should_preempt(unsigned long work,
+                                         unsigned long soft_limit,
+                                         unsigned long hard_limit)
+{
+    if ( work < soft_limit )
+        return false;
+
+    return hypercall_preempt_check() || work >= hard_limit;
+}
+
+/*
+ * DEN0137 2.0-bet1 - D1.2.2 Realm Translation Table creation flow.
+ */
+static int arm_cca_build_rtts(struct domain *d, paddr_t base,
+                              unsigned long nr_pages,
+                              uint64_t *rmi_result)
+{
+    paddr_t end = base + nr_pages * PAGE_SIZE;
+    unsigned long work = 0;
+    int rc;
+
+    if ( !d->arch.cca.rtts )
+    {
+        unsigned int nr_tables = arm_cca_count_rtt_tables(base, end);
+
+        d->arch.cca.rtts = xzalloc_array(struct arm_cca_rtt_record, nr_tables);
+        if ( !d->arch.cca.rtts )
+            return -ENOMEM;
+
+        d->arch.cca.build_rtt_level = 1;
+        d->arch.cca.build_next_ipa = arm_cca_rtt_start(base, 1);
+    }
+
+    while ( d->arch.cca.build_rtt_level <= 3 )
+    {
+        unsigned int level = d->arch.cca.build_rtt_level;
+        paddr_t span = arm_cca_rtt_span(level);
+        paddr_t ipa = d->arch.cca.build_next_ipa;
+
+        if ( ipa >= end )
+        {
+            level++;
+            d->arch.cca.build_rtt_level = level;
+            if ( level <= 3 )
+                d->arch.cca.build_next_ipa = arm_cca_rtt_start(base, level);
+            continue;
+        }
+
+        rc = arm_cca_create_rtt_table(d, ipa, level, rmi_result);
+        if ( rc != 0 )
+            return rc;
+
+        d->arch.cca.build_next_ipa = ipa + span;
+
+        if ( arm_cca_build_should_preempt(++work,
+                                          ARM_CCA_BUILD_PREEMPT_TABLES,
+                                          ARM_CCA_BUILD_FORCE_PREEMPT_TABLES) )
+            return -ERESTART;
+    }
+
+    d->arch.cca.build_next_ipa = INVALID_PADDR;
+    d->arch.cca.build_rtt_level = 0;
+
+    return 0;
+}
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:12:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:12:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309492.1580570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjuj-00053N-NW; Fri, 15 May 2026 04:12:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309492.1580570; Fri, 15 May 2026 04:12:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjuj-00052z-GI; Fri, 15 May 2026 04:12:41 +0000
Received: by outflank-mailman (input) for mailman id 1309492;
 Fri, 15 May 2026 04:12:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjui-0004xX-Mx
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:12:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjui-000yVE-38
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:12:40 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069d26-bab6-0a2a0a5309dd-0a2a4504b2a4-14
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:12:40 +0200
Received: from [40.107.74.93]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c44-1dec-0a2a45040019-286b4a5dedd0-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:39 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYYP286MB3981.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:156::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.18; Fri, 15 May
 2026 04:08:34 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EaMLNYa3RCkFZn9Ou4MuWZ+BQTd/LdhEIwfzfGqgN7UErUp8lTxNkvaWhju0Xt6Uli6fnfLkGGSKT2FHTdc2TdOlfwJK/IKiDnMzjH6ZRluf7ySroD5LfIE9zoazbLZWp3Wku3Tk8yOxI47yDFB5i4NI21efzHz9DD0HsZ+vTek+wE6nsdujp63chsFClXviI3y9Uscn/9Td68YsDzAhOhycqumaspe5+BqUimkkkmWDQdaHZF/gwwQrKATl7QBSoeCjsMKDPtHulpQL37mHhrbfvCo/4feGOditlqmRXel3WUtRNKc8zE6SpEBqxAimTqvakmzNEexRNfoAjRHOnA==
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=GEdXsCdriXn7T5hiFjbS6jzjWemTNnbeU0cz8lWbPus=;
 b=PrDcd/wYAL0OdhAwxUSTkPisMnEu/FSLf150+HLudg2uwI8a9hPlLfcqoeVqJkZekGRwHQjM81/hTeBkY5QutHkZ5gnl1VWb0adoJVlgLRF5drH5keN2amwF6FUMqqdcRjnqXW8/BtDWnuwaGxerCXA+RsTfuD4btZij7iuuvBG37TdelvJSwyBO+HnO/ChMTW5mMID7Fsivl+FELVA+z1GSIcZhlTZHYrlzakSOts1vl+MHIzHnHGgJAeBdIcxet0HSgLz95ermsOqu6iCpWoqRzQ++RBWofU0hvWDnXA3ULKZE/FcaTzFIEnqzuray3eDwGmIfnJcuhKb5v31bMw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GEdXsCdriXn7T5hiFjbS6jzjWemTNnbeU0cz8lWbPus=;
 b=QR0/ATtgGo8OYIdmXHLZdPhHEHQY9X6s6MnP1LAyHZTlZutJNZDyIUO69VKuU0kcJ95eqKK6+eBK8JODa7XYHoWcq9LAKW4XgrSWpJgYI2vixzdYi2F/kS6RV/xhY2FLAogSeiXvHiNZRH8qTymX282mwr+WRm5+nD5aHNcF3fc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 17/26] xen/arm/cca: populate Realm DATA granules
Date: Fri, 15 May 2026 13:08:03 +0900
Message-ID: <20260515040812.983626-18-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0214.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:3c5::10) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYYP286MB3981:EE_
X-MS-Office365-Filtering-Correlation-Id: e605dfe3-f4a1-45dc-bca5-08deb237a07a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|10070799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	Bj2zXttabehEEd/UdabDsCpV2yv5f/IEvr1gxNje3iBuAL68C8lwVfj3B2hxvBysQPnPHXTVf19owy66K/A+HlJJhwxNBkBLme2t4lyzOnErs2kv4KEkH4TneUglebPLPVfguP2WdjCrZ+J78Hj0PvkB9lZmBy/qytngxvRaiqgRJZ2fj+xRz3+9JaE4Iohndmil5Mut2T4SDNengq6ex5BxoZSubTF7cpr0MkyoZsl3BfADa5k5GyuXPQjYyHR8N+OTYTz6LHrJOpf/OY99+r6l0Sir1AzZ2KKjKofGyjBhaMfa6NMEvF6JnBrDgttOCA6vX4IKeX+EGWxsPVEj6iA21/akOn5uFOWrMSyH4QQYjLZID3HueaYRPdFQLYPupI8h9cvENh28bSgcDgJ+rbvwQGgshZ+aOKtoIb2rBPuAP6cAAuO+9kkZy40dhkYyGgaCZ12U8/MY/XQudO2qqNK639cP5krLfEl5rmKfRoFKYJg//d2O5uNEkMNU/6oTmsyJ70l7FotsWgMiJQd/remU/UP4Iu9DJnrw6m2uYVbjs+Xci9RCajlQmQ7zHifI4Ef3fFCqMyuTMtdCv8c2G+Sg8Le1TtMwD1RJmXujsGDkrYDtmlowDqfFm3QhQku70lZu3iZrsjoek2gNFUu1PezVqwZz8I/8sLRuU8/6yc6aFMpPs9OL47H9iYSh7Thp
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(10070799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?SyVUP4/IPCsdCMd15WMwfOp+ZtHVhAQytaLtho/vz5+nIYaOQNkjPHQrv4Of?=
 =?us-ascii?Q?v0/zSaGiK5PGt4aS8bnSVVF6MSH8yXbiLpquigqbfqAateOcHPAdIrp1lvC/?=
 =?us-ascii?Q?mtwu3yb8q1eE89tfvdhLIyXfITDubbj82JumzIAves/82FA+LXBmSp27s519?=
 =?us-ascii?Q?yWobfVVkgirMHB8GllXo6n7HWIXK+IVkwfSz4sUdI0AVDnuifejq5wa6fSEs?=
 =?us-ascii?Q?fVT8cf65f4GK5CHTpYzr890ntSb5p4EPCa5MqBSQwN+R11OAPuaqHf1UiQCZ?=
 =?us-ascii?Q?+Pi0fCmrLLknY5xtMmA1dG9YXu19jqTWEPiAnDXEZpsLbmWfcKYt6qgV6b+j?=
 =?us-ascii?Q?gx1mH7C879caBF5t/t3XdtBf7fi35PPR6e6M8yZalex3k7Kx08yFFBIIhMZV?=
 =?us-ascii?Q?yBYaMBu4QDomoPjBczDmv5SxEIy0TxuxCGkbUmOZJP2N4ZZuWj88tPIsykyg?=
 =?us-ascii?Q?6n2BmINIvlKzqhxCyDognHuf5794WLM/vkr7vG3r6fcU5Y2wE3pG/dUfcVho?=
 =?us-ascii?Q?TnAyfd19+duh9oU0/BOIRugklyOt+SZto/Hi8w7nX7RXdrqSbim2YNkuEdSk?=
 =?us-ascii?Q?zDK4GLJQB1AZk44wPNXsd+OkAKqagsQp45XOEHbt4ouGORwmQN/j7X3PQviL?=
 =?us-ascii?Q?UG3mz9Zf+9WLTK7ilu2nQQX1YLMN5u0EDES+KEkze0FYQ12slkDdkMXIrb1z?=
 =?us-ascii?Q?sOpuP1Hr17QbKgkvfJUayZBu7lUeALMcZXCwzRKP0JN/FEe6Nyb75LS3dF4e?=
 =?us-ascii?Q?hKSn+R3TuWifrLxNSNjXuEudXe5I7X8Z+BNhPYoRWmjZV6gBBoinmFxQ8ZNG?=
 =?us-ascii?Q?4u+s8/oeJKseAQqjs8zrDtNeD4d0q3jYVrzVbIEHAqKIrq6tXGEGOtEkFWHf?=
 =?us-ascii?Q?Aej7217mVbeZ+gefweaXv5Sa03P8vgiTxTRZWcJuUPBxDURWigptznPr/LLv?=
 =?us-ascii?Q?z7/yRNjX4UG+ng6+OZ3taV5wt3lj5ilYvuMluOTuIb3j4DcWSyCknn1GIgos?=
 =?us-ascii?Q?0NShI8peRT9eFMmHohjF/awqcp7MDzBvvIXUyJcdeDWff2P6P/3tkr8vzT6g?=
 =?us-ascii?Q?/b4a0D8PGmiDi1EH3koJBm/z8KsaY5BOpFdKFSbONy8QZUQLG8Tvy8mlUlYe?=
 =?us-ascii?Q?OP8yWFwk7KrUoNAXBIwXUlcC6EHnFl4giGAkvQAN2/WlImLj0FVdtIhfdozy?=
 =?us-ascii?Q?R0pY1H0fBJSlLosYAqnd8a1Nus4JhPU9NPgBL8EGOKQMjh32qf0yZU53P7lI?=
 =?us-ascii?Q?hsKzPjZ+bOw5PjxtAHu7XdHYba1BBLUpXqLHlwOSB3D3VUrq5zFDKg5MN33A?=
 =?us-ascii?Q?JwEqL8ZjHaP7y4G+6PZYICzUuKZFngzacECOpt0jhUPiIW5PZt5qhMyOL8Gv?=
 =?us-ascii?Q?GnnAh5C9Q1N8DpVZTZuu3LNUtNBunY4GolGAafy5/By9Ui2JdguoEiLOaPuo?=
 =?us-ascii?Q?w1moMOQ/LQ3R3a0z22IAANsne+oHA3bQ1D9UFagHBQzRqjzdgYQhO6kL6W8Q?=
 =?us-ascii?Q?6Ybiw7UCH1QQQTyDBiGMB/eQ84vW3VeMyMkfRTykE8aRR+sR0M430N01aG5c?=
 =?us-ascii?Q?IjJsMj6vePhV7SSCuASprQL6A4Rp9Ic95y0rzXiE4fCY9Nn9ya9cQL5Vjx9v?=
 =?us-ascii?Q?TLvAFaKNJxBECFHcTjdhyDkamgpGz3f7fzXkyrGhR5MWmakhdotAMsvqT8xQ?=
 =?us-ascii?Q?nqjBnS+/w0EljZvloWtETG67KqWQTpQtAtpNNp/7UMNGGzoXUVUYmDHNKC8Z?=
 =?us-ascii?Q?AvH4BpNWuCHmNsgtXImB/1ahSVk3lxfAlNpu7f7nMilRl5ebT7fe?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: e605dfe3-f4a1-45dc-bca5-08deb237a07a
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:31.9085
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: HaKEkwrk4Xet+1ljFxLabMxIlJE/N1cJDZ2cB3DgbkKRId1rSH76Md0Y/lv1A+DkSq99284reELpOB3EtR2B4A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB3981
X-purgate-ID: tlsNG-ebf023/1778818119-435683FF-6B50311F/13/0
X-purgate-type: clean
X-purgate-size: 4337

Move initial guest RAM out of the p2m, delegate it, and map it into the
Realm with measurement enabled.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/build.c | 124 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 124 insertions(+)

diff --git a/xen/arch/arm/cca/build.c b/xen/arch/arm/cca/build.c
index 10f61b5038ef..8e607e97b99c 100644
--- a/xen/arch/arm/cca/build.c
+++ b/xen/arch/arm/cca/build.c
@@ -664,3 +664,127 @@ static int arm_cca_build_rtts(struct domain *d, paddr_t base,
 
     return 0;
 }
+
+/*
+ * DEN0137 2.0-bet1 - D1.2.3 Initialize memory of New Realm flow.
+ */
+static int arm_cca_create_data_pages(struct domain *d, gfn_t base_gfn,
+                                     unsigned long nr_pages,
+                                     uint64_t *rmi_result)
+{
+    struct page_info *scratch_pg;
+    void *scratch;
+    unsigned long i, work = 0;
+    int rc = 0;
+
+    if ( !d->arch.cca.data_pages )
+    {
+        d->arch.cca.data_pages = xzalloc_array(struct arm_cca_data_page_record,
+                                               nr_pages);
+        if ( !d->arch.cca.data_pages )
+            return -ENOMEM;
+    }
+
+    scratch_pg = arm_cca_alloc_host_page();
+    if ( !scratch_pg )
+        return -ENOMEM;
+
+    scratch = map_domain_page(page_to_mfn(scratch_pg));
+
+    for ( i = d->arch.cca.nr_data_pages; i < nr_pages; ++i )
+    {
+        paddr_t ipa = gfn_to_gaddr(gfn_add(base_gfn, i));
+        struct page_info *page;
+        p2m_type_t p2mt;
+        mfn_t mfn;
+        void *src;
+        struct arm_smccc_res res;
+        bool removed = false, delegated = false;
+
+        page = get_page_from_gfn(d, gfn_x(gfn_add(base_gfn, i)), &p2mt,
+                                 P2M_ALLOC);
+        if ( !page )
+        {
+            rc = -ENOENT;
+            break;
+        }
+
+        if ( p2mt != p2m_ram_rw )
+        {
+            put_page(page);
+            rc = -EINVAL;
+            break;
+        }
+
+        mfn = page_to_mfn(page);
+        src = map_domain_page(mfn);
+        memcpy(scratch, src, PAGE_SIZE);
+        unmap_domain_page(src);
+
+        rc = guest_physmap_remove_page(d, gfn_add(base_gfn, i), mfn, 0);
+        if ( rc != 0 )
+        {
+            put_page(page);
+            break;
+        }
+        removed = true;
+        d->arch.cca.build_unrecoverable = true;
+
+        rc = arm_cca_delegate_granule(page_to_maddr(page));
+        if ( rc != 0 )
+            goto err_page;
+        delegated = true;
+
+        /*
+         * TODO: If plain RAM should be left out of RIM, have the toolstack
+         * pass explicit measured ranges (kernel, initrd, DTB, etc.) and use
+         * DATA_MAP outside those ranges. Do not infer this from page contents.
+         */
+        rc = arm_cca_rmi_rtt_data_map_init(
+            d->arch.cca.rd, page_to_maddr(page), ipa,
+            page_to_maddr(scratch_pg),
+            ARM_CCA_RMI_DATA_FLAGS_MEASURE_CONTENT, &res);
+        rc = arm_cca_build_record_rmi_failure(rmi_result, rc, &res);
+        if ( rc != 0 )
+            goto err_page;
+
+        d->arch.cca.data_pages[i].ipa = ipa;
+        d->arch.cca.data_pages[i].pa = mfn_to_maddr(mfn);
+        d->arch.cca.nr_data_pages++;
+
+        put_page(page);
+
+        if ( arm_cca_build_should_preempt(++work,
+                                          ARM_CCA_BUILD_PREEMPT_PAGES,
+                                          ARM_CCA_BUILD_FORCE_PREEMPT_PAGES) )
+        {
+            rc = -ERESTART;
+            break;
+        }
+
+        continue;
+
+err_page:
+        if ( delegated )
+        {
+            if ( arm_cca_undelegate_build_page(d, page) )
+                delegated = false;
+            else
+            {
+                d->arch.cca.data_pages[i].ipa = INVALID_PADDR;
+                d->arch.cca.data_pages[i].pa = page_to_maddr(page);
+                d->arch.cca.nr_data_pages++;
+            }
+        }
+
+        put_page(page);
+        if ( removed && !delegated )
+            free_domheap_page(page);
+        break;
+    }
+
+    unmap_domain_page(scratch);
+    free_domheap_page(scratch_pg);
+
+    return rc;
+}
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 04:12:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 04:12:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309494.1580582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjum-0005X5-1p; Fri, 15 May 2026 04:12:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309494.1580582; Fri, 15 May 2026 04:12:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNjul-0005We-Tb; Fri, 15 May 2026 04:12:43 +0000
Received: by outflank-mailman (input) for mailman id 1309494;
 Fri, 15 May 2026 04:12:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wNjuk-0005Ho-Hl
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 04:12:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNjuj-0052Pz-U0
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:12:41 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069d1c-e002-0a2a0a5209dd-0a2a4505c714-18
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:12:41 +0200
Received: from [52.101.125.85]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a069c47-aaa8-0a2a45050019-34657d55753b-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 06:08:41 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYCP286MB3682.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 04:08:37 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Fri, 15 May 2026
 04:08:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HA06MtBcnpkwE0Cqf2kjqUkO/DvAm2x3nhmIe+AMCI0v7Thz8LUADuRv7z18pWHuPDXsEHFXs2gQDKAERXCDlq/GGvKA7PRxdp3h8s5/fpJioH6T7twL5T/r5f6lIgedMUAypzLnzl3YZCEV4SSGlNZS+w2C0FHLkExE6W5HQdOaIcITegPYtoSOs/HlNH+7HJfY3NO61YPIxyWKDoxOMAscww6+czkY4KGrniIsXhwgZw9Mfju5mR//vOzShUFv7G+f6flkvLPGi6q/CHZhw1qZmGlFBUCMmlGxzlq6VpjgQzu0eW+KJjBk5YXnlkbReJaOydTgGAJ2cFGdHBYvXg==
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=S1HxX8zYRrTCNBvxhpZ+y28N68FN7W38vZ7TVisM/bg=;
 b=BfnGHp5+NGIW/3h41SWaBuhVNDgsWFtVh0q6uE0C7iZJyYekKPMTFUANsCO8H3LozPN6kZwcQhYgT/wV1mM1mg4rgw90xzja1IL10UcDCSjmTImQf0qSrw3EV5dSpbPa+18Bg9lRUhpO36bFjrFnFE8L2n9hWHkhZKQhZzTO3h6PCR8/smRZkWDMRS5VRZCpvg7xg4j68c4K4KdB9l+UuTDVPOir87tsvYpp4lGkk5hrwgZu/JckICeCnwjv8SpYnAaZGjQi0wfgRxyVp+2PvnXzWmNeVNlUY+8qYoCjZBfd14EQDt3HeASCYC6twyY66yc6ls92eZhUTFmcOGMc+Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=S1HxX8zYRrTCNBvxhpZ+y28N68FN7W38vZ7TVisM/bg=;
 b=eVwsUKKXGQdWMYenem0IMSMvCQvBmh1ubaNwo67gQuPnuax6gSDRdxWJnhrRaGlSvSnR9i4lA65u324G/MBo1sUs2hDZkGuSvJ88OEVtrYd26uCQwDl8D54UVXd6JPItRdfL/lu/BRoh1q41zTsWBwoUHw80GTJENu0+IPcPnEg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Koichiro Den <den@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH v1 21/26] xen/arm/cca: add Realm vCPU timer state
Date: Fri, 15 May 2026 13:08:07 +0900
Message-ID: <20260515040812.983626-22-den@valinux.co.jp>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260515040812.983626-1-den@valinux.co.jp>
References: <20260515040812.983626-1-den@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0199.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:385::17) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYCP286MB3682:EE_
X-MS-Office365-Filtering-Correlation-Id: b07babc4-817c-4a47-4075-08deb237a25e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|366016|376014|7416014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	gCxWD0qqo83L5Ufb2aAHhhXJw0kiaYADHGww+IabmlnXTxhy3aVL4CQ1WY6Cr+sj4MpjQc+1zB0bC4cneapY/64uqg053ohGQppVd6n5Fvh/Wk3dRIP//CZNnyyAxHH/k6YEStx77USHkrzjkX1AmGeDQQoNbySs1inVMZOe34GxkCQL87JXqnobZVt+uVBDHiI8q+XZiEziRvWehquITQBVXxuF3KPy1t0azSJ+G+y6JP3WKYVAqs5SDiJ95VM8D+7Bt1XDfu93jY69B15pb6lDnQbAY8hVbdLOMEAIkpNVESfQ+aplFegzQ4AqGNbiFBURZFnHox/dc5qIG4wFTv5A/2yZUneAdKm4gja68Sedmb305RKKSiwWJej/PrdryjxH+sHlMnNPjDODbc4V11B3X7ZgDTGFFJY1eeZecemg6BUbVutnE0SnK4B4REWsXY6tOPrXmgyHTWh0Mg8a384VRf8krMNkJb5l5qc880uAp8C9n77+QiGLi2KHmkHE8Q4S3O6rDn6x5p4krd8xjPZUSbbl22R/8IJd+sxzqMzMygnCYix8ScznIGSGutnatvUpfQHNv0IUWJcKxyRbtZVIgi68Z1jchW/WblCQJZ+4UBZbj5vtEEIb3gNksx7AONj+mp+97ZPpywhiM5tC3lbNUaBXDC1FB1r9X85UHKM9HDR/EKH+UevJ9sMwxjcZ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(366016)(376014)(7416014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?DugzqyTVf8ARuSvcvzjrMgw+T33dx7qJzt6Py7SMbbXBVcGPYG7J1mmBiueh?=
 =?us-ascii?Q?kE0n6wvB0h8rjri8V5oo1mWrlVy0nrGtC6079oXB9pGVZO/LLayYAU1YGazM?=
 =?us-ascii?Q?2FCmOKe825TelE4eBMRJTFGB5EynNpbmD8VZgV4JQpZgzdp6gQLBn0a1wdPQ?=
 =?us-ascii?Q?SoqO1tkIWTj8gmjxSxucQyrissJOSGzzh+Be3G3kFp0GmJiu+O2aFvmiIm3m?=
 =?us-ascii?Q?LRz1CqzX+lZW0rfGX2PVBwJPekiGix/amiMyOBKxxAUZb2LdXgPe4MacQBnp?=
 =?us-ascii?Q?Gisq2GElWWhB/iWaXbAlnOajn4gQeuyr9qA987u7llHxHF62nISVRYuy6Z2+?=
 =?us-ascii?Q?ga7e31eqUjl3yQ4Zo1qSKRdKfaUOt4oGV0P436+G8gjPiDXnjUNzW9JLoLDE?=
 =?us-ascii?Q?NhI3mG+apc0XTR45ZxAunGwnJcfh1VScnJ7noEyl07M93i7zM37zcSZc3+IG?=
 =?us-ascii?Q?mQCltgINoOUEfAi6mfUDjLH3YV1/aHd7u2th5C6qie/52k6eXst7CkOxUa6f?=
 =?us-ascii?Q?T3MdB7hsDYJ2ZZ3pGzAIIvE0JpqqmvjTbgvQjTgGCZZPegIjqwYvhz8PKMVm?=
 =?us-ascii?Q?wOykq/l085MHCJOZiolfXVS8iL5bZg3vZuIgpXovk+J4Of5jJtgoKrh5/34+?=
 =?us-ascii?Q?VkLMxnvNbiD/vXvg86qIetvPMFifewHlx8PKVRr0kI/2C2H/qXU0ABXQvWQm?=
 =?us-ascii?Q?hAkrpFwbD91NNI88N7qraL94A+9fzVm1P4xqu5D3/eHS8JLmyCz9hjOxbdmh?=
 =?us-ascii?Q?fymhNEh1p22FzNH512olapgXUVzXcSmeqg6UJ3lahlx5OcujPl9Wi0oC6ZJB?=
 =?us-ascii?Q?n67NZ4Pu3uDfwDA7CpI9ceJNpf5zs52aed76JFo/BxANoI9v24kYhzVUHlWY?=
 =?us-ascii?Q?bx+7qv6qz8b2SBCYOUW74wnJIcGi9omen8oBhylZiLGVjbgorH+dd5o5HkX/?=
 =?us-ascii?Q?ff4YhJYbuhtF99OOS8/OdHf5evHgJbv9cdzCDxwlZqVjP7xdx4XVH3wmScER?=
 =?us-ascii?Q?B1czQQJvQrnVQYScy96AZ9ulhSFKt5ucZdNlqlomswrL/tzF02hOWzJil1gR?=
 =?us-ascii?Q?IBVr9CbA9BeV+C+5woub5Y1RZOy7759ezzlSzoxv8aRUDUHPtXdhma/ySb7D?=
 =?us-ascii?Q?WilmIFHIZ0FLcP4JG02woNoVu4EtMODglYDP0gZOx4r+BAnDArAbvONeAHQy?=
 =?us-ascii?Q?4gCBg1348h3Nx9Dk0iTx1ImT8+zk1zwBrHf14fI/Qz5swCzM/EZenlqTTK4c?=
 =?us-ascii?Q?6l6uQ0VzYfanHqClLYukmyE5yUpKBoZrdFKsqCbYi3nrO5CaDmfW4JI2UJnX?=
 =?us-ascii?Q?peHbY9lbuDtxz8OXrkTJnmwCgL8UQwyyO8wetf3C6QMJQKbXhqKsLI37zO6S?=
 =?us-ascii?Q?VbehUiTpwCvS/Ylhaeetg4H8Z7ODMEsRCDaIE3o6sSy6L2R1/Df5lN3+s1cr?=
 =?us-ascii?Q?JReMLNsPr1kXEWua9tOIAm2YBj8XJz/f21z+YU+veMYeAvSP9XjJw5C98xyQ?=
 =?us-ascii?Q?ltNdF3P0HsYPNVyuG6vjtdqDwmiavcP3J09m1fMCNyhg0CZZw2u++s/exxBf?=
 =?us-ascii?Q?I69NYU3RxZ/lVybZ0Rjl1uFViVdU+ylAzc7jagpoKRBrwebHiMznM2jDQfDV?=
 =?us-ascii?Q?lT1pS6daKOUPWPqYBCkrU7YN+yKwCOIVVAotGO2yv+Nhvk9VTHB8cmcCQ9FG?=
 =?us-ascii?Q?0QGivBQnbN8mG4iTtsemrvpyIoBp1jdve68r1C62BFD5UPAKH7qtv9rxG+ww?=
 =?us-ascii?Q?w8FPe2Vha960e+u84OdBwJRO4nd641ZumldBejPATExUMG1n/8Uc?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: b07babc4-817c-4a47-4075-08deb237a25e
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 04:08:35.0998
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7KsTTGNOggb+QQLG0E6/tx8aQQkyD5iaqdN++L8oieSOfwqg32OC6OhPjrJ1vN85owwjO3/9B9rfTLTPw3YMVA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCP286MB3682
X-purgate-ID: tlsNG-c201ff/1778818121-D8979443-C291BDD8/13/0
X-purgate-type: clean
X-purgate-size: 7100

Keep Realm timer state separate from the normal guest timer registers.
The RMM reports timer snapshots on REC exit.

Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
 xen/arch/arm/cca/Makefile      |  1 +
 xen/arch/arm/cca/build.c       | 10 +++-
 xen/arch/arm/cca/rec.c         | 90 ++++++++++++++++++++++++++++++++++
 xen/arch/arm/cca/state.c       |  3 ++
 xen/arch/arm/domain.c          |  6 ++-
 xen/arch/arm/include/asm/cca.h |  5 ++
 6 files changed, 112 insertions(+), 3 deletions(-)
 create mode 100644 xen/arch/arm/cca/rec.c

diff --git a/xen/arch/arm/cca/Makefile b/xen/arch/arm/cca/Makefile
index 0e66280012b7..b473132c1a67 100644
--- a/xen/arch/arm/cca/Makefile
+++ b/xen/arch/arm/cca/Makefile
@@ -4,3 +4,4 @@ obj-y += rmi.o
 obj-y += sro.o
 obj-y += state.o
 obj-y += build.o
+obj-y += rec.o
diff --git a/xen/arch/arm/cca/build.c b/xen/arch/arm/cca/build.c
index 29eb0c6057b0..18e825eec83a 100644
--- a/xen/arch/arm/cca/build.c
+++ b/xen/arch/arm/cca/build.c
@@ -851,7 +851,7 @@ static int arm_cca_create_rec(struct domain *d, struct vcpu *v, bool runnable,
     struct arm_cca_rmi_rec_params *params;
     struct page_info *rec_pg = NULL;
     struct page_info *params_pg = NULL;
-    bool rec_delegated = false, run_created = false;
+    bool rec_delegated = false, run_created = false, timers_created = false;
     void *va;
     int rc = -ENOMEM;
 
@@ -872,6 +872,11 @@ static int arm_cca_create_rec(struct domain *d, struct vcpu *v, bool runnable,
         run_created = true;
     }
 
+    rc = arm_cca_vcpu_timer_init(v);
+    if ( rc != 0 )
+        goto out;
+    timers_created = true;
+
     rc = arm_cca_delegate_granule(page_to_maddr(rec_pg));
     if ( rc != 0 )
         goto out;
@@ -913,6 +918,9 @@ out:
     if ( rc != 0 && rec_pg )
         arm_cca_free_or_abandon_build_page(d, rec_pg, rec_delegated);
 
+    if ( rc != 0 && timers_created )
+        arm_cca_vcpu_timer_destroy(v);
+
     if ( rc != 0 && run_created )
     {
         arm_cca_free_rec_run(v->arch.cca.run);
diff --git a/xen/arch/arm/cca/rec.c b/xen/arch/arm/cca/rec.c
new file mode 100644
index 000000000000..8314a7a45d95
--- /dev/null
+++ b/xen/arch/arm/cca/rec.c
@@ -0,0 +1,90 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/lib.h>
+#include <xen/sched.h>
+#include <xen/timer.h>
+#include <xen/xmalloc.h>
+
+#include <asm/cca.h>
+#include <asm/time.h>
+#include <asm/vgic.h>
+
+struct arm_cca_timer {
+    struct vcpu *v;
+    unsigned int irq;
+    struct timer timer;
+    register_t ctl;
+    uint64_t cval;
+};
+
+struct arm_cca_vcpu_timers {
+    struct arm_cca_timer phys;
+    struct arm_cca_timer virt;
+    struct timer wfx;
+};
+
+static void arm_cca_timer_update_irq(struct arm_cca_timer *timer)
+{
+    register_t ctl = timer->ctl;
+    bool level;
+
+    ctl &= (CNTx_CTL_ENABLE | CNTx_CTL_PENDING | CNTx_CTL_MASK);
+    level = (ctl == (CNTx_CTL_ENABLE | CNTx_CTL_PENDING));
+
+    vgic_inject_irq(timer->v->domain, timer->v, timer->irq, level);
+}
+
+static void arm_cca_timer_expired(void *data)
+{
+    struct arm_cca_timer *timer = data;
+
+    timer->ctl |= CNTx_CTL_PENDING;
+    arm_cca_timer_update_irq(timer);
+}
+
+static void arm_cca_wfx_timer_expired(void *data)
+{
+    vcpu_unblock(data);
+}
+
+static void arm_cca_timer_init(struct vcpu *v, struct arm_cca_timer *timer,
+                               unsigned int irq)
+{
+    init_timer(&timer->timer, arm_cca_timer_expired, timer, v->processor);
+    timer->v = v;
+    timer->irq = irq;
+    timer->ctl = 0;
+    timer->cval = 0;
+}
+
+int arm_cca_vcpu_timer_init(struct vcpu *v)
+{
+    struct arm_cca_vcpu_timers *timers;
+
+    ASSERT(!v->arch.cca.timers);
+
+    timers = xzalloc(struct arm_cca_vcpu_timers);
+    if ( !timers )
+        return -ENOMEM;
+
+    v->arch.cca.timers = timers;
+
+    arm_cca_timer_init(v, &timers->phys, GUEST_TIMER_PHYS_NS_PPI);
+    arm_cca_timer_init(v, &timers->virt, GUEST_TIMER_VIRT_PPI);
+    init_timer(&timers->wfx, arm_cca_wfx_timer_expired, v, v->processor);
+
+    return 0;
+}
+
+void arm_cca_vcpu_timer_destroy(struct vcpu *v)
+{
+    struct arm_cca_vcpu_timers *timers = v->arch.cca.timers;
+
+    if ( !timers )
+        return;
+
+    kill_timer(&timers->phys.timer);
+    kill_timer(&timers->virt.timer);
+    kill_timer(&timers->wfx);
+    XFREE(v->arch.cca.timers);
+}
diff --git a/xen/arch/arm/cca/state.c b/xen/arch/arm/cca/state.c
index d85a20a9e7d2..03e0d1d2382b 100644
--- a/xen/arch/arm/cca/state.c
+++ b/xen/arch/arm/cca/state.c
@@ -51,6 +51,7 @@ static void arm_cca_reset_vcpu_state(struct vcpu *v)
     v->arch.cca.rec = INVALID_PADDR;
     v->arch.cca.run = NULL;
     v->arch.cca.run_pa = INVALID_PADDR;
+    v->arch.cca.timers = NULL;
     v->arch.cca.rec_page = NULL;
     v->arch.cca.nr_aux = 0;
 
@@ -439,6 +440,8 @@ void arm_cca_vcpu_init(struct vcpu *v)
 
 void arm_cca_vcpu_destroy(struct vcpu *v)
 {
+    arm_cca_vcpu_timer_destroy(v);
+
     if ( v->arch.cca.run )
         arm_cca_free_rec_run(v->arch.cca.run);
 
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 2d9469f388c6..d2ee90248a44 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -113,7 +113,8 @@ static void ctxt_switch_from(struct vcpu *p)
 
     /* Arch timer */
     p->arch.cntkctl = READ_SYSREG(CNTKCTL_EL1);
-    virt_timer_save(p);
+    if ( !is_vcpu_realm(p) )
+        virt_timer_save(p);
 
 #ifdef CONFIG_ARM_32
     p->arch.joscr = READ_CP32(JOSCR);
@@ -265,7 +266,8 @@ static void ctxt_switch_to(struct vcpu *n)
     /* This is could trigger an hardware interrupt from the virtual
      * timer. The interrupt needs to be injected into the guest. */
     WRITE_SYSREG(n->arch.cntkctl, CNTKCTL_EL1);
-    virt_timer_restore(n);
+    if ( !is_vcpu_realm(n) )
+        virt_timer_restore(n);
 
     WRITE_SYSREG(n->arch.mdcr_el2, MDCR_EL2);
 }
diff --git a/xen/arch/arm/include/asm/cca.h b/xen/arch/arm/include/asm/cca.h
index 5e6b11a3693d..323988b379ba 100644
--- a/xen/arch/arm/include/asm/cca.h
+++ b/xen/arch/arm/include/asm/cca.h
@@ -29,6 +29,7 @@ struct vcpu;
 struct arm_cca_rmi_realm_params;
 struct arm_cca_rmi_rec_params;
 struct arm_cca_rmi_rec_run;
+struct arm_cca_vcpu_timers;
 struct page_info;
 
 struct arm_cca_rtt_record {
@@ -99,6 +100,8 @@ struct arm_cca_vcpu_state {
     void *run;
     paddr_t run_pa;
 
+    struct arm_cca_vcpu_timers *timers;
+
     struct page_info *rec_page;
     struct page_info *aux_pages[ARM_CCA_MAX_REC_AUX];
     unsigned int nr_aux;
@@ -114,6 +117,8 @@ int arm_cca_domain_finalize(struct domain *d, gfn_t base_gfn,
 void arm_cca_vcpu_init(struct vcpu *v);
 void noreturn arm_cca_vcpu_run(struct vcpu *v);
 void arm_cca_vcpu_destroy(struct vcpu *v);
+int arm_cca_vcpu_timer_init(struct vcpu *v);
+void arm_cca_vcpu_timer_destroy(struct vcpu *v);
 
 void *arm_cca_alloc_rec_run(void);
 void arm_cca_free_rec_run(void *run);
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 05:57:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 05:57:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309554.1580591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNlXb-0002WP-68; Fri, 15 May 2026 05:56:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309554.1580591; Fri, 15 May 2026 05:56:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNlXb-0002WI-31; Fri, 15 May 2026 05:56:55 +0000
Received: by outflank-mailman (input) for mailman id 1309554;
 Fri, 15 May 2026 05:56:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNlXa-0002WC-0W
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 05:56:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNlXX-009VN7-IS
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 07:56:51 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06b596-5cb7-0a2a0a5109dd-0a2a4506b5be-26
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 07:56:51 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06b5a3-7371-0a2a45060019-d155802cd92b-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 07:56:51 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-48e82c23840so46373165e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 22:56:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da15a6449sm11545525f8f.37.2026.05.14.22.56.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 May 2026 22:56:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778824611; x=1779429411; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QY/5uJ/lYfBdWRoMT0tCNS3zl2PQuJ+GlLOUlLPPHzY=;
        b=NXkyIjgphEZm/aKMZNofw/c4uDTh1tmyZLh0qk2vyfVRhcb/RVLuPMcgq3khoaMx0M
         Q5dVPHp+N7Wn5bPPN8M3jpQB6CF4JlRyO7GT+LGAHItQYRLelQ7p1rAuXaUrluctmN7t
         ucrzGPgTVXg1AU10Z//fRY1zDqVMAhilieuDzICAtv6glVT2yaqJFiCRjLi5vdeLhS5L
         fV7dqvRXz69mmxUMWaRv7XAVgGPVDCGK00po8xZSI/xe0ziANhmAAGR+e33xfhTEbwXj
         gdvjSXjDMOVJLXPwO5D+S9eRQICRjKWWBD93XsKcsEPwHHqe5ldnahHnmrYxNz8mWYRF
         Mmcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778824611; x=1779429411;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QY/5uJ/lYfBdWRoMT0tCNS3zl2PQuJ+GlLOUlLPPHzY=;
        b=TD6YKDmpOrwPDZcHYGelB9X20eixeKgp3wuZmSEpKRt5f37paEyurq954TjkVRh5Hq
         J/danSS6fRSiZ3y3cy3g6sTz5/tpvy92rxrs1gdQD2TRhxbcgs4ZC/vLmr4sHPIiOgi1
         RnB5htOEsmtheol7LWdqNMlbV84nP0gE0elDR0EeMxGvxb8rWAeX3jkZdONNAiWgwyCe
         13sYwUF8pfOIsw941RZLXHbPDR3S4kAqqp2hTYt4v20CNs2U+YkKSakw4nYVZDfswJJE
         aI+CIhtbmDJonLaS2Hi50ZnIwNZfldQ/AVvoPgyTrC8u5GCgf/44qKXTD1UeYNAtsP3I
         e1UQ==
X-Forwarded-Encrypted: i=1; AFNElJ8TEwBGjXjpF17Ef6FcZgwNkV8zlj6ZpDlHl3rKDa9Z06TJFyopY0Nvq+lYcfyqT/7i8Wod2N1gPdw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzXlnQjI5Z44B94f9PlnvbW1LHLuaeVNxKHt+ELGm10DkvBQkyq
	O5ODDzVtNhejnaWM7A+2wlwFPjIniuoRuctAMjOZ6MW++1AzZe948vFiLb1tkme+nQ==
X-Gm-Gg: Acq92OEgcEy8P0lYYHSNyQxFlk5YjuHKp+/B7YPWN12tdbTA/0lzVPw4tAS4ISDg6Cv
	+fq35I4EKzLgFQNGpQgw2JPznwMRi3I3/d96ajLVXbahX12j/x7zXuQ6RotyzWl/AKwGMbHRQva
	C6HQ3+fD5Cuiado/wjM7jPbOBWSYRz6wYxioavhkCCPA9UJSf8JWShoM2WG/KfFTTueHpjDBL0x
	fccenVbYdkYUxLpbfmhtZrcjE0G6bC8RpAfMdJ1R70KMBfoRvG2J4Icc5fRLayIn7yGZNCswgV+
	SABhzEuGAPkuGR3YBvMisTboanrpB1BDLLDzd5T5sJVEHpVg/Sfwm/bvUpdMANrsYRohrf/vyI2
	XJRPiDuJJgiOXQ3yIuwaOeSwN/aMTmYUp/AcTyNEmZ7kG0H/+vk55lOYVx732XNlmGZhBvn6+aE
	Bu+cJLwfpTXHyrIXlNooVozSHcqZXCBemjvKnMAqulH98EkRIszrqMIRfP7jiG+9vl+ukXshuQv
	ym0h5rE8gtgrEn/U6RAUZ4SlA==
X-Received: by 2002:a05:600c:8901:b0:485:ae14:8191 with SMTP id 5b1f17b1804b1-48fe60e3663mr24739695e9.5.1778824610888;
        Thu, 14 May 2026 22:56:50 -0700 (PDT)
Message-ID: <843895bc-75a9-487e-87a3-2e11492faf3d@suse.com>
Date: Fri, 15 May 2026 07:56:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 24/26] xen/arm, tools: add domctl for Realm
 finalization
To: Koichiro Den <den@valinux.co.jp>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Juergen Gross <jgross@suse.com>, Bertrand Marquis
 <bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20260515040812.983626-1-den@valinux.co.jp>
 <20260515040812.983626-25-den@valinux.co.jp>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260515040812.983626-25-den@valinux.co.jp>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1778824611-8CE79D75-D9BA651B/0/0
X-purgate-type: clean
X-purgate-size: 1744

On 15.05.2026 06:08, Koichiro Den wrote:
> --- a/xen/include/public/domctl.h
> +++ b/xen/include/public/domctl.h
> @@ -1201,6 +1201,16 @@ struct xen_domctl_vuart_op {
>                                   */
>  };
>  
> +/* XEN_DOMCTL_arm_cca_op */
> +struct xen_domctl_arm_cca_op {
> +#define XEN_DOMCTL_ARM_CCA_OP_INIT_REALM  0
> +        uint32_t cmd;              /* IN - XEN_DOMCTL_ARM_CCA_OP_* */
> +        uint32_t flags;            /* IN - reserved, must be zero */
> +        uint64_aligned_t base_gfn;   /* IN - first guest RAM gfn to protect */
> +        uint64_aligned_t nr_pages;   /* IN - number of 4K pages to protect */
> +        uint64_aligned_t rmi_result; /* OUT - raw RMI result on -EIO */
> +};
> +
>  /* XEN_DOMCTL_vmtrace_op: Perform VM tracing operations. */
>  struct xen_domctl_vmtrace_op {
>      uint32_t cmd;           /* IN */
> @@ -1368,6 +1378,7 @@ struct xen_domctl {
>  #define XEN_DOMCTL_gsi_permission                88
>  #define XEN_DOMCTL_set_llc_colors                89
>  #define XEN_DOMCTL_get_domain_state              90 /* stable interface */
> +#define XEN_DOMCTL_arm_cca_op                    91

If this is to be Arm only (as the name implies), ...

> @@ -1429,6 +1440,7 @@ struct xen_domctl {
>          struct xen_domctl_monitor_op        monitor_op;
>          struct xen_domctl_psr_alloc         psr_alloc;
>          struct xen_domctl_vuart_op          vuart_op;
> +        struct xen_domctl_arm_cca_op        arm_cca_op;

... this wants to move ...

>          struct xen_domctl_vmtrace_op        vmtrace_op;
>          struct xen_domctl_paging_mempool    paging_mempool;
>  #if defined(__arm__) || defined(__aarch64__)

... into this #if.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 06:11:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 06:11:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309562.1580599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNllK-00079e-BD; Fri, 15 May 2026 06:11:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309562.1580599; Fri, 15 May 2026 06:11:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNllK-00079X-88; Fri, 15 May 2026 06:11:06 +0000
Received: by outflank-mailman (input) for mailman id 1309562;
 Fri, 15 May 2026 06:11:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNllJ-00079R-Jo
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:11:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNllI-007PYK-Hi
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 08:11:04 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06b8ee-5cb7-0a2a0a5109dd-0a2a4501aa48-36
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:11:04 +0200
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06b8f8-c1f2-0a2a45010019-d1558034b090-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:11:04 +0200
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-48d102471a4so85677845e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 23:11:04 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe5ab52a6sm35537855e9.10.2026.05.14.23.11.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 May 2026 23:11:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778825464; x=1779430264; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YVL10f+o4MmNin1nn3KWDZDVZl0inQKW5lNVeEjhFHA=;
        b=Ry3tWJl5gPWHXrmPqsf71QMgn6n+YiH0yguBuckIZt+bFlVZVIkYweJazZmuyI/V80
         h9BK63n1Wyq996BvGY8+CVPJS9WZvj7XZsnSeYMzv2w7zl3KH5NBRAP3WkKACJySRGtk
         S5JSDphud+GzocltwGOZBzP8xPLpDWxKShQI2KrJy8eiOcxXIc0ZKVIVbmUmGmec7IYU
         mgr7xazs5ElsDI6Hj2jl2T+9M+1oRAzIMnq4ygZAp9mbk5i4IFwK8cmqsZkVapTJ1x5O
         QzWEjo78ryDcnEyLB79KzOww1vWYwRywnmcZVQ6+5FCDlcs1qoImhnmY4dNy0kWWmT0R
         ipBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778825464; x=1779430264;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YVL10f+o4MmNin1nn3KWDZDVZl0inQKW5lNVeEjhFHA=;
        b=LxSaCkIpvtYDlRrkhcOGNQJbG3FZyinsGw6Sk+atY9VskSnQ7hJz2pQ2Eo6ACznYym
         2qXvKRG8EjUe0QPjBJv3KIrYHBrOVvAQ8bretE6oqLgWmpPDhsfYvTzAwWF+bv/vDf+d
         B0zl9NZhDBTetf8lSdmZd2YvmjXcqaeOEhZkmRR21snCD3KlADankNpKhfoy+nncrjE6
         QC3pMbtgMXui4hE0D/yVdF3w0553sJrHbPca4XUZ5ajth60detUH/5Dn63+o204qqiKt
         eSdAP4aAXe/bmttLqzP6g8soEGjBHR8VeoHQqQ2THHbdFB2Ar7l/vczz2RaFtnsJgLF4
         Xmcw==
X-Forwarded-Encrypted: i=1; AFNElJ8m60kqYPl8gFy29XmkQgONlQ7T71/rxDxt8hbIhSFDCrUZSngg3QN1rPIUMM46ThELZoEgpwAcBkY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwBkytK1KLJZkMBU4ZoIoDnEIHQxy5pJ1ejF3nwx39q34kgbfqJ
	FKsKXGW5As6cTM/csvXWxDH8sFtOizrYBJgBUT7+R5NiCw1jGPb8C5U/T9RnPnaZhQ==
X-Gm-Gg: Acq92OF1VtlxQfP8xY28+YggPfm3d3RA5gSuns1WuPq3YvXv3vQUHhE56oMeNAC64Mb
	zr0RtH2LhN8UjrxvvocJaBVHCl9fqPj7NG2DqX/fn4qZPwz9jAd18RdDiV8X0lDpL4HM8xp9awB
	pcgjwAkHWf2Ucz1zYVYsXhZKgj0JZLYUYR7RHIExldtKuOJl1+QBfiNUa5fGnMRMiUkO2u27HM0
	ujjVNNLQU8Hgj9nOwYaDbAqnvBC63anOniZmmzYOaZUdgA8b4+cRYpoq+HxlfrwbcxZa5z/9Peh
	R14/5IjVT+ZVyPtuNoyuVbzTYhsQqzrg27EW0gjsJhNVgqtZokIGXwipnjwrc/9zpmbBuP+tgNy
	glkHYmRG/wAX8C5S81Jf6lu1037BSAwbQEzYNdqC+UOQRCLHZ0UE92NEpJ1A9/xXvDvw9p8b+0x
	82Jad7VIYRMb2RsT+mdVRXHvYDwZHr4n888e5rIhz4j2Si2JZKk7Znv5GahUk7Hyx67HU4Htwln
	JH/rzBnrCl88Ys=
X-Received: by 2002:a05:600c:858d:b0:48f:e230:80a2 with SMTP id 5b1f17b1804b1-48fe65148e1mr25475715e9.32.1778825463794;
        Thu, 14 May 2026 23:11:03 -0700 (PDT)
Message-ID: <39b78725-1d4c-44f3-a64a-1d243a61f8cf@suse.com>
Date: Fri, 15 May 2026 08:11:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] crypto/rijndael: adjust for Misra C:2012 rule 8.3
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <13ca5f9f-d985-41bf-9c30-afd657dade89@suse.com>
 <3ca0351a-8be9-4b3b-989f-0ba004fada2f@suse.com>
 <1f8c7aef-1432-4026-b97a-acf9a3d06330@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1f8c7aef-1432-4026-b97a-acf9a3d06330@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778825464-B715BFF4-CCFF9FD9/0/0
X-purgate-type: clean
X-purgate-size: 1975

On 14.05.2026 20:11, Andrew Cooper wrote:
> On 13/05/2026 3:01 pm, Jan Beulich wrote:
>> ... ("All declarations of an object or function shall use the same names
>> and type qualifiers"). Bring declarations in line with the corresponding
>> definitions, accepting the use of the being-phased-out u<N> types. While
>> we don't define NEED_RIJNDAEL_DECRYPT, cover rijndaelKeySetupDec() as
>> well for completeness.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> --- a/xen/include/crypto/rijndael.h
>> +++ b/xen/include/crypto/rijndael.h
>> @@ -50,9 +50,8 @@ int	rijndael_set_key_enc_only(rijndael_c
>>  void	rijndael_decrypt(rijndael_ctx *ctx, const unsigned char *src, unsigned char *dst);
>>  void	rijndael_encrypt(rijndael_ctx *ctx, const unsigned char *src, unsigned char *dst);
>>  
>> -int	rijndaelKeySetupEnc(unsigned int rk[], const unsigned char cipherKey[], int keyBits);
>> -int	rijndaelKeySetupDec(unsigned int rk[], const unsigned char cipkerKey[], int keyBits);
>> -void	rijndaelEncrypt(const unsigned int rk[], int Nr, const unsigned char pt[16],
>> -			unsigned char ct[16]);
>> +int	rijndaelKeySetupEnc(u32 rk[], const u8 cipherKey[], int keyBits);
>> +int	rijndaelKeySetupDec(u32 rk[], const u8 cipkerKey[], int keyBits);
>> +void	rijndaelEncrypt(const u32 rk[], int Nr, const u8 pt[16], u8 ct[16]);
>>  
>>  #endif /* __RIJNDAEL_H */
>>
> 
> Hmm.
> 
> The rijndael_encrypt() in context is a trivial wrapper of
> rijndaelEncrypt() using rijndael_ctx.  The only user is VMAC which
> defines aes_encryption() in terms of rijndaelEncrypt(), making
> rijndael_encrypt() dead code.  The decrypt side is even deader code.
> 
> It might be worth taking this patch in the short term, but I think we
> could get away with a lot of deletion.

Well, really this whole piece of code would likely better be replaced by
something structured, assuming it's going to be needed at all anymore
after TBOOT deletion.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 06:15:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 06:15:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309569.1580608 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNlpi-0007gn-Qi; Fri, 15 May 2026 06:15:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309569.1580608; Fri, 15 May 2026 06:15:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNlpi-0007gg-Nq; Fri, 15 May 2026 06:15:38 +0000
Received: by outflank-mailman (input) for mailman id 1309569;
 Fri, 15 May 2026 06:15:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNlph-0007ga-CX
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:15:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNlpg-00CAhQ-Op
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 08:15:36 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06b9ff-e002-0a2a0a5209dd-0a2a4504cb6c-12
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:15:36 +0200
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06ba08-1dec-0a2a45040019-d1558034e8b7-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:15:36 +0200
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-488ff90d6c7so76404275e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 23:15:36 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe5694fbfsm69374945e9.6.2026.05.14.23.15.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 May 2026 23:15:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778825736; x=1779430536; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tOeh1BXSFT2Bx9CaWNfhtLzbxajWynEKrk+eP+GdN9w=;
        b=ZscDR5CbPeNsiNLCweWJy9mHQWXfXFhqEUZI2O4xbNud0/pMn7rstTu3P6r/Xg7SjE
         2beLsA9t3zOB5RhdcilLn8Yfx7pAVQv2gemcrtoKi1JWt7ej/7johiYD3mnigA83fjWT
         T503SPCUOgZ8VnjATS+QWKDm8JkMFr6FIIpyYYslb8koKgTRZzp+KU1Hyaw6u4/F0uFf
         4DTK4HnxSHS+6WlaztyY0yE+xZGCOricCE/1cqpMuZ30xkquqxkSGd633tL7anGN7O1P
         1+IUkjoP76cYSbE+6QN3qZmqPtQjUyXST+qT7sUE/0CAH5aGQf/wbTOZUK/KXxBJA5pP
         +nDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778825736; x=1779430536;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tOeh1BXSFT2Bx9CaWNfhtLzbxajWynEKrk+eP+GdN9w=;
        b=jV0c077K1aoTBw76GmB0gLBUNtWWbMAEc6wkD79LGzBIhnqdc9Khjsz5hNlZR1l0G9
         1Zvc6h4UiY7ghzfSE01tmc/crJuWGMK4qst7X6K6kTpFWawuB3Ob9Xt+gvWYZsSG5h6X
         nMkXQQ+zox/xB19c3EqR8FfdQu+KJKp6zDpINacNIxoSxiWoXksAbuuIgPyRj1OJh9vn
         kBVOnlMpgOds58ypB7CtXJyM8DUFPXyEDV3ykvp53168QtL4Rwur28WpWd7GMR99xDws
         qIWlIlIF84H67374dZEE6YUzPiMp2MjO/lEQPUl/dMU+HpNokof/av/cFv0nHLIUcuKd
         0Drw==
X-Gm-Message-State: AOJu0Yy8utwLUie8QOJPvQaoDySngXR0QCQubLS05OnbYO/DYyR6vojQ
	wvbbnA7AmhpVQrv+j8ZxQq5S+Fb6ca3jRpvwW6JOdM4Hmc/XG8dG6K020LtM1WiG8w==
X-Gm-Gg: Acq92OETyxgQr1meEW6pcFzJs+JlOQ0Svs8BX7L8cRbvJYA40+l9oDqnLXk+HxTRXb3
	/jet/bvVg5+8FNtAxMGUO/mBcDqmCfiiEghD1Whocg2bL2Tw+7Uq4sZNPvNevATQRWDuUAaWyvY
	aGb+vhaDchUvx9Qq5Hur08PHilr2ok8MqFUEquynONNSYbjNy8zlBii3TaGg09cxJWAKP490/5y
	KYNJEH2XCHCOveOzFPaNJ/Hfm39A+/za4GXq6cd+jHuKMukPOV21w01ySrXmQ3tL7wHikTaeFfm
	Mv0Qo6fHuJ5jruAseLrOTmR/oe1FxcWjtDqrDpOTUFHX6/uRhzLUfMbiiIsILCr/K5C7pmsLuXM
	RpUx714YpKKgPiYBa1+7y8UFyXiYt8WPMUDpGVkL6qBDblU0TkbYcjn8wfU0N+5CW71Hd2piC5D
	LzpfZ003Iu2Dv1WMiPF61T3PrBu0d4C4g+D5wOP2zyuPli7Uv9kQgxceLvPP4yi3hoo9UjHLonG
	s2gBwoRObmgkBU=
X-Received: by 2002:a05:600c:37ca:b0:489:1b10:d896 with SMTP id 5b1f17b1804b1-48fe59af198mr35543645e9.0.1778825736127;
        Thu, 14 May 2026 23:15:36 -0700 (PDT)
Message-ID: <0ae5ac5e-49e5-48f6-9966-b77aef8596f4@suse.com>
Date: Fri, 15 May 2026 08:15:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] x86/shadow: split a nested max() invocation
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
 <146d214c-e766-4b3f-bc50-0b9beee50473@suse.com>
 <337dd83065dae7555dfecb2163241ead@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <337dd83065dae7555dfecb2163241ead@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1778825736-437693FF-6C0E48A2/0/0
X-purgate-type: clean
X-purgate-size: 1975

On 14.05.2026 07:08, Nicola Vetrini wrote:
> On 2026-05-13 13:46, Jan Beulich wrote:
>> Such nesting causes the inner instance to shadow the outer instance's
>> macro-local variables, thus violating Misra C:2012 rule 5.3 ("An
>> identifier declared in an inner scope shall not hide an identifier
>> declared in an outer scope"). Use an intermediate variable for the
>> inner invocation. No difference in generated code.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Supposedly this case is deviated (rules.rst). Does that deviation not 
>> work
>> quite right? Actually, am I mis-reading deviations.ecl or is the
>> respective setting only covering the combination of min() and max(), 
>> but
>> not multiple use of the same macro? Furthermore, why would e.g.
>> min(max_t(), ...) need a deviation? Even more generally, aren't those
>> expressions too permissive?
> 
> Yeah, it does cover only mixing max(_t)?/min(_t)? because that was the 
> only pattern that emerged in the safety scope originally. the _t is not 
> there for mixing e.g. min(max_t(...), ...) but rather for 
> min_t(max_t(...), ...) and viceversa; could be split if you think it's 
> worth it.

Yes, I think they would better be split. We shouldn't deviate
max(min_t(), ...) and alike.

> These expressions are a tad broad, because it's way more 
> complicated to express the condition: "ignore overlapping only beetween 
> identifiers defined in the expansion of max/min when used together". 

I understand the "more complicated" aspect, but from an assessor's pov
being too broad (lax) in deviations might easily be a negative point.

> Perhaps it could be done, but then if you are already implicitly using 
> shadowing in those instances maybe that's not as serious a concern?
> 
> In any case, the patch looks ok to me, so
> 
> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Thanks, also for all the other reviews you did.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 06:26:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 06:26:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309579.1580618 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNm0A-0001jy-QF; Fri, 15 May 2026 06:26:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309579.1580618; Fri, 15 May 2026 06:26:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNm0A-0001jr-NL; Fri, 15 May 2026 06:26:26 +0000
Received: by outflank-mailman (input) for mailman id 1309579;
 Fri, 15 May 2026 06:26:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNm09-0001jl-RF
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:26:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNm09-00EzKw-1r
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 08:26:25 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06bc8a-2eae-0a2a0a5409dd-0a2a4502aae0-16
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:26:24 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06bc90-af86-0a2a45020019-d1558033cca9-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:26:24 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-48984d29fe3so93926025e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 23:26:24 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe5ab52a6sm36315535e9.10.2026.05.14.23.26.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 May 2026 23:26:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778826384; x=1779431184; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7fywG0RcbcVRXiQ/OUmBP6jPNsrqS2f8I8apqhDXw2o=;
        b=ZlcA30SstcUj8FUA2KDY/X+oRAmiT9AlEBM/D/NvLFP9ZIwoPvuatTeMWcurhPX0Uj
         GupwTzWYNhxBbqV9LOExMJk9T70/fq+BQEaJ28MVrr8/a2H+xF8Fn3GYI7vFGRcFPtZC
         267zy+/CXHP6QD6jBXsJDpt24rhSe6KWIgnSgM5RRGuJmvSlMv4Y1YiSm98OR2j/G9sV
         PBhpCjI5f55UOh4wjFULsLC7UO3gUoCAemD2eORUCgNhSIp7Kqi6hcJ7CpN/IwHEDQSs
         VvlxnyS6uBga+Vh3+LvQAFlAXoWtk+j54kj0Kq+hPxlpv+Pw+Txf0AHdlXUdFWrGGJfQ
         uW+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778826384; x=1779431184;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7fywG0RcbcVRXiQ/OUmBP6jPNsrqS2f8I8apqhDXw2o=;
        b=CuAR3oqP8FyLCEu/TUqh7Gbx5xiDCVJSQKHaD/UkFyAHb8ZpChr9dBgpE97Uvf1D65
         VjVIBJPe7JHPfNfWWpIqkhxXrDlWIf3RseJnW6QGENxTGcuedYIXYOnycbdQRYJ/igSV
         0tAM8H7Dsqk9DWBgH1021tM63VblDkhJEylrhW56qqH+bn9pgokVEM9263dB2Dd+9Gu2
         /dB1r64f5hAcOdBguJ4bPY6QbojQ06P57GgTY5B97gJBzXj4uDffeOpgvBiauNcg1TyU
         xNc28Y0rxf9uT+pu9Gu47bfsiPhLISUcnCAv4HcjoLzdDnBSNOG0V4IrtPCpcMMSgxiB
         6ITQ==
X-Forwarded-Encrypted: i=1; AFNElJ96L1MJwwLV6a4SFz+ZHhPrpr95Eva8djh1RK9XxJIfD909mv3GnU4o+qkSzF29GvlHejyQs9+RRf4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwduQR7KXdbxgRMEsMTO3S1nL7blb0qWaZ32riFRMSyynaYM1XU
	cYMyjjpSc1RSc6J96Cfk+AlOuIgxB7ZFpWKfUJdtROd3BfKZSvvERBmWJZjOYJg+zg==
X-Gm-Gg: Acq92OGvpDpG18fm7jihyo5YRfGtZV7DAle+H/96URwyyySWWDmMGRIGY9dq8y/YXK+
	X2obWCYPN3W+42xhOF1eK46izaWUu8Fp1aTaiv6ufaJU3sWlDDCmbH9grV2Cep1ouFQTbh//NZG
	E24btVEGCpUOapkZZFAkh4tSnANy67EV6wXyGKPB3mJpiGcIqkE+Guoa+gk3R/2RHX3HBz/FAsk
	3v34XBq9FFOs5/+LW5Nhi1TTkY7wgdgHL9vl4TXH4bRV5LWqlLZEK/tgqvyfxehgynU/+hB8Di/
	gvWCYInjkS/GOeA0GzV48j2W8DTWcOdXx7SZ/JUBmH/uGLpeHvwxtIbZ4aZ3WeBtRT4+sOn6owo
	NcjHkbmDwztqAiPwZUUqZpkijdmsbUzZHwOCk8tJilQi/R+gdGztqf621isqtF18qlMoKt2zVGC
	+wzVHLg+g+xtbhIGH6i9qDHKdOobBiNvHUvZsQK8OXx8H/MyaOuySa+rR4+qmHCwDylP6KlGshK
	qbk2LaC8dHjxJY=
X-Received: by 2002:a05:600c:37ca:b0:489:1a63:509c with SMTP id 5b1f17b1804b1-48fe59b05b2mr35557655e9.0.1778826384299;
        Thu, 14 May 2026 23:26:24 -0700 (PDT)
Message-ID: <b20a2e70-f08e-41da-ad81-913d5e5d2b7e@suse.com>
Date: Fri, 15 May 2026 08:26:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <bc9ed10d-5ae6-4d9d-af90-648931731a52@suse.com>
 <8ef5af19-7660-4ee9-9cf6-094c744abd0c@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8ef5af19-7660-4ee9-9cf6-094c744abd0c@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778826384-8316D161-681DAAD9/0/0
X-purgate-type: clean
X-purgate-size: 785

On 13.05.2026 19:00, Andrew Cooper wrote:
> On 13/05/2026 3:03 pm, Jan Beulich wrote:
>> --- a/xen/arch/x86/cpu/mcheck/mce.c
>> +++ b/xen/arch/x86/cpu/mcheck/mce.c
>> @@ -1264,7 +1264,7 @@ static void cf_check __maybe_unused x86_
>>  
>>  #if BITS_PER_LONG == 64
>>  
>> -#define ID2COOKIE(id) ((mctelem_cookie_t)(id))
>> +#define ID2COOKIE(id) ((mctelem_cookie_t)(void *)(id))
> 
> The interface here is horrible, because we're passing a pointer to a
> uint64_t to userspace and back.

Indeed.

> But, can't we just cast through unsigned long instead?  The compiler is
> happy, and that feels safer than using a pointer type.
I can check if that also helps. Casting to void * let's us, aiui, get away
without leveraging any custom deviations that we have.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 06:29:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 06:29:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309588.1580627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNm2h-0002ic-8A; Fri, 15 May 2026 06:29:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309588.1580627; Fri, 15 May 2026 06:29:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNm2h-0002iV-5A; Fri, 15 May 2026 06:29:03 +0000
Received: by outflank-mailman (input) for mailman id 1309588;
 Fri, 15 May 2026 06:29:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNm2f-0002iP-A5
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:29:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNm2e-00GsWT-MN
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 08:29:00 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06bd1c-2eae-0a2a0a5409dd-0a2a4508d95e-44
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:29:00 +0200
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06bd2c-63b5-0a2a45080019-d1558034adb6-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:29:00 +0200
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-4891c0620bcso59914825e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 23:29:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe57944c1sm46121035e9.7.2026.05.14.23.28.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 May 2026 23:28:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778826540; x=1779431340; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=M5XCzQF9XEa/h3T9jxj3vH1bGhcJUXcxttoji8bGPFc=;
        b=StJzXZ1DpvMrrIWx7wp3GfoO+5khoVJq3YPOlO3Ges7JI7RE1FRdfUiVTBnIsayA3y
         ZZXBQ5ONrJhNaMLPpTpA2xcoNyzInSajuNiDgmnAtbMTVPSj4zEK5gxIXnTVNnr+YSUj
         QVAUqCORaBDZR2XzHe3eFYlXCFE34mJaTJUq5nIm+GId5udYrsIZc2Bjdr2oVTYP1kRA
         y6oinVEbV8vrzs8givY2E3ISVNaa/6oHFcZuEDeEv+gPlU3ic6M5xbQ4ZYYtAZw+Nk36
         yZzASms3vzk+IGKqi9mFZKw8Ya6Z41ci5ZWjpR0kJwIqId8OQMlyvIm4IywR7ElIhh7n
         NGnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778826540; x=1779431340;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=M5XCzQF9XEa/h3T9jxj3vH1bGhcJUXcxttoji8bGPFc=;
        b=bwS4ELglpeFOprQPWfl+Kor1wqYVKZAwbJyI+13+ixQbgiHZxXPTT4wgFkfVmGIsG9
         GI6UBugZPuXijgsAeIdiIt6kqWsjaSOJfVPzAnOYZIc76Rk7fi3rNIRIJuVDB2kv4bt0
         KCd3q8Nea4gPeKO8UYoMZfsQK4v6U01arXAvGTPDRxt4qSQ0EKLjNusO7cN5hDz3m33I
         vg3FEYo9W19Uz/9nWpOcEOaatT1b5st2IHFNCelQQzPauqHlG2HZ0I5GrX/BxneK7z/y
         fvMUP6kq2bO9gbx4ZJqdduPKb6q/DwcAxtf8oj8LRELvspT75lBR5h+PfMxgk5dDkS/M
         Kv7Q==
X-Gm-Message-State: AOJu0Yye0cvoQj89hpahZDNreuSX/AKPlyNn2kXddniLFpfF4YfRrJx+
	7jZHeJY/fcd+rPrByY/LDlYD2aCKU4UK80DtYkkSrC+Kfvwi7ZLRZqX8XfnIWXuckA==
X-Gm-Gg: Acq92OHAm3bNen1vlnY0wij6yONugoGt5ZjOpemQe/hyoDElvDtPkhfnM8CSwnGVifV
	/Qn/1VOjF2nRJSi21q0wWAKKoYTGTjRT9Y3eDYYHW41buSX6tCGgQeh6WkiEGmOxh80kdxFEBYa
	grUEojmMoJQ/MgLP0LlI1P5FmxUoKNz/UVaFNEbGPU/E1qU2QP3izuk9Cw8sE/PUgEkeMjrQUwQ
	juA8Dy03Le0IPieGRAQ7ySbHnbloLQbHA14GflAZxeSeV+aZw6vKTk+iAaUdrWx+UEfxFpW0S3N
	WAHKwC5ZTWGZ3Sk+qk5lBSX/Yzg7vtoHtJ6yWU2dpFOZW6081Sms+65Rb6isaiVmxXWBUeXkYnd
	ZUM8hoIHPhVpyt4Fk6CVPGJoue9FMIZXHxDIj0qVUoeB2w6OQPg3mkPDSxLuxhe/rvbuZ7GTU8R
	UWqWGKySZmRw4gOngNVPg/P7YrZCMU5EF9MEo7xg5kH+cmrJO7kDvbJd6DiNIIYfmqkPJsZ+XRe
	V1J1hLsutFBLEI=
X-Received: by 2002:a05:600c:4e4e:b0:483:8062:b2f with SMTP id 5b1f17b1804b1-48fe5fd4747mr34284205e9.6.1778826540133;
        Thu, 14 May 2026 23:29:00 -0700 (PDT)
Message-ID: <5dc8ae7f-3aed-4e25-b2b8-6bb0feb7f61a@suse.com>
Date: Fri, 15 May 2026 08:28:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
References: <bc9ed10d-5ae6-4d9d-af90-648931731a52@suse.com>
 <36723a55f4465ab1a99041b8bb0575c4@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <36723a55f4465ab1a99041b8bb0575c4@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1778826540-B6975DB1-097DE2A3/0/0
X-purgate-type: clean
X-purgate-size: 1174

On 13.05.2026 22:47, Nicola Vetrini wrote:
> On 2026-05-13 16:03, Jan Beulich wrote:
>> ... ("Conversions shall not be performed between a pointer to an
>> incomplete type and any other type"): Add an intermediate cat to void 
>> *.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
>> (covering more than just this)
>>
>> --- a/xen/arch/x86/cpu/mcheck/mce.c
>> +++ b/xen/arch/x86/cpu/mcheck/mce.c
>> @@ -1264,7 +1264,7 @@ static void cf_check __maybe_unused x86_
>>
>>  #if BITS_PER_LONG == 64
>>
>> -#define ID2COOKIE(id) ((mctelem_cookie_t)(id))
>> +#define ID2COOKIE(id) ((mctelem_cookie_t)(void *)(id))
> 
> Notwithstanding the comment from Andrew, I think a comment here could be 
> nice to explain what it going on, otherwise the double cast looks quite 
> odd.

I've added

/* Two layers of casting to cover Misra C:2012 rule 11.2. */

> Unrelated: why not contextually marking this rule as clean to prevent 
> regressions?

Isn't this rule (and the others my patches were targeting) marked as clean
already, hence why the allcode job fails?

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 06:32:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 06:32:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309597.1580636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNm6I-0004XV-Mx; Fri, 15 May 2026 06:32:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309597.1580636; Fri, 15 May 2026 06:32:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNm6I-0004XO-Ja; Fri, 15 May 2026 06:32:46 +0000
Received: by outflank-mailman (input) for mailman id 1309597;
 Fri, 15 May 2026 06:32:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNm6I-0004XI-28
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:32:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNm6H-009baf-AX
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 08:32:45 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06be07-bab6-0a2a0a5309dd-0a2a450ab714-18
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:32:45 +0200
Received: from [209.85.221.48] (helo=mail-wr1-f48.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06be0d-56b3-0a2a450a0019-d155dd30e4c9-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:32:45 +0200
Received: by mail-wr1-f48.google.com with SMTP id
 ffacd0b85a97d-45d96d21e82so986157f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 23:32:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48febe6b60csm7973375e9.6.2026.05.14.23.32.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 May 2026 23:32:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778826765; x=1779431565; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nhUAK+YyTl1z3qYEKR9NLomFdozpuVBKk6zzjbyF/Ow=;
        b=YgnwrO0i711aA4l5mmusYiWHQFp0cZ2qpnC7R8liPlEwvE9r2XyzZXQa+WEaqd9HcW
         lcOHsgA1/V60g8CELX+fowuzwpblITsZxaO/bjagyqzvJqxntAP6XLrPgTx1L24VMHol
         0MxXfN/bIcyvwEcJdKSTZkHcGEP7AJ9MCt4hjd/jTFh1IYqaWkl/uvaAvapWOQkwaLkk
         gCOWqK6ZC2jLyCyPYTyo7bElGL6g1dYU0jwexwl91TExnz9CfDNR8u0Si1xRcSdXLl6C
         TuMngPu878CsZBg4h9+GfFQ+M1vptlMUzozTDPmcLNDlZoOrmty9UIAtn4iIJG6wEA2k
         4H4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778826765; x=1779431565;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nhUAK+YyTl1z3qYEKR9NLomFdozpuVBKk6zzjbyF/Ow=;
        b=mLeU536ejkcJz+KYMNxx+r7ef5ZedeTbwkGqZzkAtQFMCQpho/514DJIPM1ttAdALo
         pW2ghEXk5YaBBsSCD2bAew+zApgdTYnGVlbL8j1h6SW7JoC32wKJbyVSQBNjgBRL6Yce
         F2DyccJmqIOijTh2oHw3TmM7WpDdKXkhYZZsCsbaUWOEiI/HRjI7tWxQSfzeRLM+qIlh
         ZaGl1JJX6Nyhj9OrelJm+XAazw+TCl8jAHpp1U4N2PA262RPfBeqcigH3xRTOWlz3Vom
         xbQMkk3i3j8Q16vomI4jhqSidqmZzfievb7lz0jVSvTlSRlGqiChAT8G6MMpsFQcg130
         shcw==
X-Forwarded-Encrypted: i=1; AFNElJ/eWA49dKm7N1MGFYTh+xMNrDd/oE+0cQRtUc53IT5OfDEA9b7jK52lzkJ/M0AiBV+7XC5LlxIj+QY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxibN0+LX8hRo7ztXyY2Fj9sLx8b+WgbPiLOsv7l+zHriqs7ikK
	vc1POc5+VgE6Vx0mjEWQk990X28POEHe0s+PVFAjpjrTC+D6mzR59VUkJE0TgswHsA==
X-Gm-Gg: Acq92OENmwFYUI6w835KfoDAGrt2RKWAgvmN0lVTGM0zPhM1fxWIedpNao0ACDiHYs2
	GPQMG3uWbwIpRCOr0U1erOkPuh1m8rCGpIVtpbhBS/QAr53hNNNFSh68yq2j61+3+L/jt2/pZvL
	MLSNhYCXkLdtgerO4AFPbJ94+Xmb8cxIShRV+6eVtEHegMLJQWGnbvCMUh1xYq3kmnXJa+DJmAb
	3G2tZDqrBS4kJAQAU7jAqu+LNM9V6mGb3kv3m0JJBCjzfW/5y7L2gAPh3P5mChgCpu/E8jKvccK
	EKmtRalSKmF6TrJgMlorE6NmWxFJ5WFxcRHc+1bs36f9t5XROcaXq8UYkpezNmbHU6knv/5dBP6
	9lCzZml8e+57ijQ1UyLqJBaL/1nSDOjOOB942bHRYfU1iAT8iL2lF86Dho647i6qruBuR30k8XC
	gQUKPXLKcakUD90Ch0wt0yAIm6hkIrVsdcWzPkidMIdcycui+WcolAkogon5RIjDHiIop3m0VE9
	sbcZIzAc7r8FCsaKXl3r49thg==
X-Received: by 2002:a05:600c:34c7:b0:48a:54fd:54ea with SMTP id 5b1f17b1804b1-48fe60ecd93mr35809795e9.12.1778826764782;
        Thu, 14 May 2026 23:32:44 -0700 (PDT)
Message-ID: <1019524f-bbe0-46b3-b742-d7404732bc66@suse.com>
Date: Fri, 15 May 2026 08:32:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] crypto/vmac: adjust for Misra C:2012 rule 17.5
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <036752dc-5333-4d01-acaf-ed450e09fe48@suse.com>
 <7ef99f0e-2847-49d8-8701-8243e4b073ed@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <7ef99f0e-2847-49d8-8701-8243e4b073ed@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1778826765-7236B8B7-EFC504A4/0/0
X-purgate-type: clean
X-purgate-size: 825

On 14.05.2026 20:07, Andrew Cooper wrote:
> On 13/05/2026 4:51 pm, Jan Beulich wrote:
>> ... ("The function argument corresponding to a parameter declared to have
>> an array type shall have an appropriate number of elements"). Instead of
>> casts, (ab)use unions.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> The Rule 17.5 violations aren't reported against this function.

The report is against uses of aes_encryption() from this function.

>  They look to be addressed by one of your other patches.

I don't think so. That other patch is independent.

> Which rules is this addressing?  I can't locate anything referencing
> this function.

It's still very much 17.5, which the job runs also confirm (the other patch
didn't eliminate the violations here, while this patch does).

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 06:40:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 06:40:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309605.1580644 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmDw-0006cN-Dq; Fri, 15 May 2026 06:40:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309605.1580644; Fri, 15 May 2026 06:40:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmDw-0006cG-AV; Fri, 15 May 2026 06:40:40 +0000
Received: by outflank-mailman (input) for mailman id 1309605;
 Fri, 15 May 2026 06:40:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNmDv-0006cA-Id
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:40:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNmDu-005L8B-Fv
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 08:40:38 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06bfe1-5cb7-0a2a0a5109dd-0a2a45058c72-42
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:40:38 +0200
Received: from [209.85.221.46] (helo=mail-wr1-f46.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06bfe6-aaa8-0a2a45050019-d155dd2eb430-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:40:38 +0200
Received: by mail-wr1-f46.google.com with SMTP id
 ffacd0b85a97d-449d6c68ed8so7673335f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 23:40:38 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9ed2f738sm12030454f8f.16.2026.05.14.23.40.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 May 2026 23:40:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778827238; x=1779432038; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Sj6p9Rb9rj1T2xc7AXcOf08AoWG+0nx/4mDVyeSILWM=;
        b=UC4Qnt+c8oRJprtkJ8dCGBsPPmPmkt8uei2qhTU2OXMPQj1uS5WYxRkz+wUoZUg744
         aCI8dkREn8qfLObOBLY5sdOZoTswwKvb9V5rBcjw+QFI7orChtIrMTB2rNfai14EVIq7
         XtpW/7cR+91iA7jak+lS1PBrcgmmmldQgkzcLFXBQeykbwWDgzwDzpaPywtePvmkxeIz
         BMcZ5NB/JJ+Sd5PzNJhgt1y0j2SsT/j7XRgcVT0IcPzTki/MMhfqINEmoppaZcXGTrGX
         rSu7Ebo+Gj8/yXH+sdhYQn38ls+JMClwiE/rD0MNFfiv65BSPQaQNTggTRhkF/EJ3yH1
         oQvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778827238; x=1779432038;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Sj6p9Rb9rj1T2xc7AXcOf08AoWG+0nx/4mDVyeSILWM=;
        b=Q6rusclgvpXXksQRLwcJrmI4naJxXPJZ/kW5DtZ7tAQ344tqIhqFVGi3Gn/gXPIc18
         FqIHFuYXOUyUFGaiMQGSr6krxZNTF5+brCQG92ydvdmfVX1GFGMjWzSVaTjw0CZg+7fu
         ZSXi6D6/eQykLodNP8s2EetpctQmJ5noHD+5XJS97FgEweRQjEUJ/sKLS7Rctci+aUW+
         GYceT0u2Vk7Zr7/+JoB0v25hycV+UQA2PXfAcm3VZure/bQqf9037rXNPYK/LPn0KY1A
         uIJ0TYkgpxooZ0rSltBuLYC59/y8zex9a3RkhMv8srGsaDOTD/3ulFHRq1o1Q0zsF+um
         H21A==
X-Gm-Message-State: AOJu0YzTcXKnHdru/LWVjieJJ++vR2TQCVQA2IxY+s7vciBSGn2N9aAD
	sVcP0LG7UlJ4ZLwEcrYTBIP5AOiOA3V1Frn57wBZRc2NitFH+tJ+dDzTTI9Rk5PTrw==
X-Gm-Gg: Acq92OGBCzn0kSOZwtka4F3IF0MwMejl04ztGvabWCWZBGRgktPU/ATjEoiMNZbLx9J
	3jVJmbYIFP5T3qdppWJYegYtU/0Jg8m7bP5TYuf0W/egyQWfqD9KfHcCI+lnN1bw3OK17Ux0QEl
	BbwPGjN4vgv2/61yVrJ8CXGxac5ec3FnkECPlte00FyCuykjUrhbegoU0dYfMLZs2CUUf0PXg4l
	R9W5VoqwqMYGPJKNWnlnEQQE2ykFF1WWljFN6L1zii75ryEU5qeDTyAey0S4LVzMJ5o9Xqdl70G
	yFNmhQkBWsNgjN639IWXBv8KSA34NMO4n+v897XMYva5VUtZvha8ex1U+7jm6eMeebPTJGWQ44j
	AYYp+0uDBOPQxK1aqlXlooxSrZ1v6apFYjAO8nrSQEecJJfpW1xQnUvwgZpn90+q8Pq0EI68Pox
	vPgYcl4gEGvUXAd2bc9o85OfuaTzjYCqzTWysgwUvqKhY3ZNyIaHWz3cD5uN1vkH1VQQmN7uWbH
	eNy90UIh4RihuI=
X-Received: by 2002:a05:6000:2f83:b0:43d:26a2:f8c3 with SMTP id ffacd0b85a97d-45e5c594fe3mr3141705f8f.35.1778827237837;
        Thu, 14 May 2026 23:40:37 -0700 (PDT)
Message-ID: <b0db6548-4c82-49ab-8909-e5d6bba8942e@suse.com>
Date: Fri, 15 May 2026 08:40:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] x86/time: move BCD_TO_BIN() uses
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <2c5af8f9-05f6-43c4-afb4-a50cbacd2d49@suse.com>
 <agQ8tRY3Kya6RasY@macbook.local>
 <d37322ac-fdf9-48bb-91e3-3e8d560fa758@suse.com>
 <agSRm3T0Y3EfuqFb@macbook.local>
 <d70965fe-5039-4a9a-a470-a9d2a0bc6ebe@suse.com>
 <agTMLgTwsKf96IpL@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agTMLgTwsKf96IpL@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1778827238-D8B78443-D4E11181/0/0
X-purgate-type: clean
X-purgate-size: 3132

On 13.05.2026 21:08, Roger Pau Monné wrote:
> On Wed, May 13, 2026 at 05:15:41PM +0200, Jan Beulich wrote:
>> On 13.05.2026 16:58, Roger Pau Monné wrote:
>>> On Wed, May 13, 2026 at 12:39:46PM +0200, Jan Beulich wrote:
>>>> On 13.05.2026 10:56, Roger Pau Monné wrote:
>>>>> On Tue, May 12, 2026 at 04:59:03PM +0200, Jan Beulich wrote:
>>>>>> ---
>>>>>> How come RTC_ALWAYS_BCD is compile-time constant 1? And then even with an
>>>>>> inverted comment? Looks like we've inherited this from Linux, and even in
>>>>>> Linus'es current tree it's still this same way. Yet all half-way recent
>>>>>> chipsets I'm aware of properly implement the DM bit in reg B. Might this
>>>>>> be another 32-bit leftover?
>>>>>
>>>>> *shrugs* I don't know.  Seems like Linux is still doing it, so it's
>>>>> likely safer for us to continue doing it also?  We had no reports of
>>>>> it being problematic, albeit one could argue it would be best to
>>>>> prevent such reports by doing the right thing.
>>>>
>>>> That's my point. If we did this as specified, we'd unbreak systems with the
>>>> DM bit set correctly, but we'd break (hypothetical) systems with it bogusly
>>>> set. Like with a few other fixes, perhaps we should correct it, but provide
>>>> a command line option to restore old behavior?
>>>
>>> Possibly, but I would do after 4.22 has branched, just in case.
>>
>> Of course.
>>
>>> One thing I've noticed, is that Xen don't attempts to set
>>> RTC_DM_BINARY in REG_B, shouldn't it try to set the bit when probing
>>> for the CMOS?  Since it assumes BCD mode it should at least try to set
>>> it?
>>
>> For one - don't you mean "clear it"? But then - no, that bit is purely
>> informational aiui. Changing it won't alter what the date/time registers
>> hold (only how they're updated). Hence by fiddling with it we'd corrupt
>> information (breaking OSes which properly respect the bit).
> 
> Yes, sorry, clear it.  The (possibly very outdated) specification I
> have contains:
> 
> DM – The data mode (DM) bit indicates whether time
> and calendar updates are to use binary or BCD formats. The
> DM bit is written by the processor program and maybe read
> by the program, but is not modified by any internal functions
> or RESET. A "1" in DM signifies binary data, while a "0" in
> DM specifies binary-coded-decimal (BCD) data.
> 
> To me the "DM bit is written by the processor program" reads as if it
> could be set by the OS, but maybe that just means the bit is writable,
> but it doesn't affect the format of the field really.

Well, it does affect the format of the field, but not right when the bit
is written. Aiui it will have an effect when the next update cycle runs,
as then the right kind of arithmetic (BCD or binary) need to be applied
by the chip (or what was a separate chip back at the time when those
specs were written). (The other "written by the processor program" of
course applies when date/time are fully updated. At that point the OS
can pick DM to its liking, and it would then better store the date/time
fields in the respective format.)

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 06:43:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 06:43:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309611.1580654 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmGD-00078v-Os; Fri, 15 May 2026 06:43:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309611.1580654; Fri, 15 May 2026 06:43:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmGD-00078o-Lx; Fri, 15 May 2026 06:43:01 +0000
Received: by outflank-mailman (input) for mailman id 1309611;
 Fri, 15 May 2026 06:43:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wNmGC-00078i-Bp
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:43:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNmGB-000906-O0
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 08:42:59 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06c06f-2eae-0a2a0a5409dd-0a2a45078400-12
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:42:59 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06c073-229c-0a2a45070019-d155dd2cbc31-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:42:59 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-43d7e23defbso5184781f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 23:42:59 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9e768bcesm13247011f8f.4.2026.05.14.23.42.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 May 2026 23:42:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778827379; x=1779432179; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2rMRXRAIcr1OpIrwpXkcNgZTEg93KKCHcGh8lNqHT58=;
        b=Ln4SMdeFC/ZJ0xd0WfK8V/hc1esF505bu5lFP+HVkuE4PvFH6ggSVkGrA1UDLpZvN3
         3Y70hGS4DWb/R/LkD16D0ZTjrDZEqJ/okEmYGspd5mWx3VYcEwhYFW1/yaUg4ydSgAmv
         BKOngXWgd1Vr63Y4+byZeDYSokVPmLcM5tYTux0Hr3GWzaAjaj8bTK86iTzqXmg/2XDS
         NGUU1pPAwH8Z2+snPZd6snNh3TcTSIM1TMJlpZh585jXCfj0Uct5wzGZODKRvbXwEY31
         +kQZ5r61MvqbpFBaEIceItmNU+lPuH8nMigij+9U59LQQplCixX7rKHGFnxrZ9gSD79Z
         PhZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778827379; x=1779432179;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2rMRXRAIcr1OpIrwpXkcNgZTEg93KKCHcGh8lNqHT58=;
        b=U1r6xF+XaxuQCgu7Gmw8StoQLeh2oppOUrB8bRS//+c+croXwe5oCkshXDChy7LVyp
         LqM+8X+tYw/bRrsN8y/Kk78Xl0NStpYb5gxg/PJeuXyTKWMhfVUtinLAACEeRWGUxJ7D
         RFx+WJCtVoRVywGay9P/9Ki1/4QMcGGOw4y26bM/xtm03nl3mgSmjx9Tllj1ahkUzzP2
         9e6GqZJ2v6c8JY7eF2LwgjToqR0rvSjoFpLieks8L7/Gyjt9AQJzZYwYTbb6AXj29ri6
         D+4ktp2OcnUzD6brw7Ch/d+0C3d+IbxWp4JplKU/mJCVMIzoD69CepbXSIfobE9vuuWl
         l95A==
X-Forwarded-Encrypted: i=1; AFNElJ/a50khxTwPZ+ax0klnLmG9l5cs7CDuvRdw2vJvRlAdjrCjW36jKxd7F0wKlGWWjy5G9vQPvVNGOnI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz1r6EQ8uMa9WFOpfdq9JhmYfbhUYRjpMafqh0SeutjSLHBsRnZ
	EtTP9+1lyFAs1+TvhbbnSuC4b0OMbwd/b1es9muClQonZKBXMVoXQO/B45fEImSn/xeP5VJJtES
	e+Jw=
X-Gm-Gg: Acq92OH7Fgf/xukaQb+vDnG2iJ5+PvadNIIsGOhazw/60+la2vwwZ04euBii6Nul1lo
	TK7dAGMY9uzuVKgAXuTeTRiHVPkK1cgMlcCYIjTuk/85kisM3Yk4PPlNmotjgx23INCuAYQtn64
	83ZMeR4tKE+l7dHs0tWKnmH+MIpU25uAJSbFNW7Jvp7sPBjjmy9n9aiWINIm+wSKUNAGHVMWwLH
	PKTFMu2OGrrC17Hs2mYmAn1tEZZV5Rgs65+umpUpTtgb/D5a8WktXOX/J1tWjHCNSwvuMBEUEG0
	osPhigdf18lWirDFe3nXm7wEaq10SJSfug4R8CO4wZZ+7a23qmQz2obx4XsBtmNSIKM2WGPGEeD
	S9zSnlR9DnLQS4fiGbkLEtombXTKzGDAhcGW8iz6+MXCEuh9B0CNk+tsfrG2b9EVZ8EeCMsW8bo
	v9Vntm+jE95qZ3pF8QGf9RihPJXeMe+boAsjXOJ7Cw1uEmmzhqSmVCBUobma95fcGqrJ1VqDCTL
	deIItDN3GIX8HmToDcgxtNIaA==
X-Received: by 2002:a05:6000:2c12:b0:452:87de:d3a6 with SMTP id ffacd0b85a97d-45e5c6048d1mr3002102f8f.33.1778827379222;
        Thu, 14 May 2026 23:42:59 -0700 (PDT)
Message-ID: <f552ecfc-c238-481d-8b23-42af6b311989@suse.com>
Date: Fri, 15 May 2026 08:42:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 1/5] x86/time: use RTC century byte when
 available
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <2723456f-5d8c-4a2a-9876-e65d35579936@suse.com>
 <e81837f1-8d97-42c6-9bf8-f6829213733b@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e81837f1-8d97-42c6-9bf8-f6829213733b@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778827379-23175C48-0E074580/10/73395122804
X-purgate-type: spam
X-purgate-size: 665

On 14.05.2026 09:27, Oleksii Kurochko wrote:
> On 5/12/26 4:58 PM, Jan Beulich wrote:
>> Without this the present logic will misbehave from 2070 onwards.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Generally it looks like 4.22 won't be used in 2070 or higher (I am 
> curious do we have similar use cases now that very old Xen version is 
> used nowadays?) but the patch looks pretty straightforward:
>   Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks. The concern towards 4.22 isn't year 2070, but that we're over 25
years late in doing this work (field introduction which was associated
with Y2K iirc).

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 06:43:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 06:43:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309613.1580663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmGJ-0007Ox-3w; Fri, 15 May 2026 06:43:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309613.1580663; Fri, 15 May 2026 06:43:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmGJ-0007Oq-1E; Fri, 15 May 2026 06:43:07 +0000
Received: by outflank-mailman (input) for mailman id 1309613;
 Fri, 15 May 2026 06:43:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wNmGI-0007NT-2T
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:43:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNmGH-00CEa8-Em
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 08:43:05 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a06c06d-e002-0a2a0a5209dd-0a2a4506c85a-24
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:43:05 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a06be20-7371-0a2a45060019-a237832fcabc-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:33:04 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 4D9394EE3D7A;
 Fri, 15 May 2026 08:33:04 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1778826784;
	b=okWlmnKyooXt5GyZzL7aaqBl1tdG/FuIPD89EaJg1D+HDFiUdHXwDTwZTju13LrHBtLc
	 qHBoWJbq+VLWG2oALOpnx6CcCNi0yoxkCOyhK/HLdCeFDk3hPblgxRq7lV0fmZwhzdzNP
	 Ayh//6zG0osCkExElQ0D0We46Lb2Myd1JwjQpnyduGSwq4lykJLnWNLpskHTps9wID3kr
	 /eesnToQD/gPf3Okepul4cobMNh2L8yrJCCfZJRE/OM40Zre0AhOyPwlAPgykdk1frkw+
	 qY/PFf+NYbSTdDGACPVT8i2SPGpbFWt23ZTmZTACRUdniMbGPYqZW56ljOXXpRYh1/tWl
	 X2yp70MKBjBhlACV2t5RKvP1itdtD1oHOkc8drYfL/oioH/DHjnRiXn3XrnXI9dB6lMaY
	 I1ZHsJ6ielp+hFS5vDhgrFyasMMrRG8qWGF13B8Mp6ptJEyKVAGwpxhkTbZa9/XpoMnta
	 ZoDxAhgROgyQkCFWB1XswRL43vgc/F/830mFuZl/Ivaob/bjMnTYaHXeERsxzjPM0FA9t
	 D2cinOaQ+lwU5BRGT+V/p3xitK9nfY35SZ3V5PcY7iZ86Tior1oT7JjhMWflAQoWfty0M
	 Be4MQfX5s+hDcPSjdUNWdsAj109hqYL9nylaMrl5fURS9iIcAIGJ42/VoCBQPvw=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1778826784;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=74libaaE1OF76LkVcaOCBRfEKpsiBmcVPvzkbmWj3cY=;
	b=DWrxfYmH02AZAV0PFfCkMaKI0QfJDGYbe9IjnyovZQJBulL6nsavk5kBbSlPWQXMvti2
	 R3hwUZLPXJuIUPr6yV3eI9Bz3Tb6zFo2RfRG36KQ/ZBkaKNeUxlj8J2fNbW7HqiD5FlHm
	 4CEcH+nyxIq3P4oPpgcmYbf51b1lRfxLh0+LEi73Uc0R2aPWx44YhbxtG+6ZKAAzKk2il
	 358+CxZBPnFDP4+MdOyQsp4JKgHVQ8zpaWE4afSdc8Ki+QFqEmSDuwi/IIST0hJd1EAVF
	 cI6B/NMXH2ZRsKviXwIRyJ+oY2taUGFng1a2/Hhbk7xdxjyZ8tyql2ONZ/D4Nbtmqv4ml
	 VOM2gM7DoXqtp9PqOaYAZznhWi5rqPRXznwzHppqwlS8SAptspwcJ+06Fuyv2mIXOgAzh
	 kxtulNCdSLCHGnov3IKCgH7QNtO9jXUssh9ZQX0UoMGWkNQUdD0utX8Q6vZQQzykHmBPj
	 22VtdclKXKHr4tGF5SzyLksfAy/wjB/QSDim5/Y09WN7APLJ/8SRihWbyIAn9SRMlA9s/
	 +ka/VHE6fTJSzvJUSamrzLHscrK9I384pdzfd7SaIHUnWyOOGkrQNn4Z/ojI7jEkn+7nO
	 8Ja8Z6YaGM6JM9k0iFcElmnsRNOqDNaO0e6Pqy+uUpozd/hKZmkIsnGkNkIRv+I=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Fri, 15 May 2026 08:33:04 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
In-Reply-To: <5dc8ae7f-3aed-4e25-b2b8-6bb0feb7f61a@suse.com>
References: <bc9ed10d-5ae6-4d9d-af90-648931731a52@suse.com>
 <36723a55f4465ab1a99041b8bb0575c4@bugseng.com>
 <5dc8ae7f-3aed-4e25-b2b8-6bb0feb7f61a@suse.com>
Message-ID: <b07793dac26e1ab526c69b3d7be0231b@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1778826784-8FD7AD75-B4A2ECA5/13/0
X-purgate-type: clean
X-purgate-size: 1467

On 2026-05-15 08:28, Jan Beulich wrote:
> On 13.05.2026 22:47, Nicola Vetrini wrote:
>> On 2026-05-13 16:03, Jan Beulich wrote:
>>> ... ("Conversions shall not be performed between a pointer to an
>>> incomplete type and any other type"): Add an intermediate cat to void
>>> *.
>>> 
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
>>> (covering more than just this)
>>> 
>>> --- a/xen/arch/x86/cpu/mcheck/mce.c
>>> +++ b/xen/arch/x86/cpu/mcheck/mce.c
>>> @@ -1264,7 +1264,7 @@ static void cf_check __maybe_unused x86_
>>> 
>>>  #if BITS_PER_LONG == 64
>>> 
>>> -#define ID2COOKIE(id) ((mctelem_cookie_t)(id))
>>> +#define ID2COOKIE(id) ((mctelem_cookie_t)(void *)(id))
>> 
>> Notwithstanding the comment from Andrew, I think a comment here could 
>> be
>> nice to explain what it going on, otherwise the double cast looks 
>> quite
>> odd.
> 
> I've added
> 
> /* Two layers of casting to cover Misra C:2012 rule 11.2. */
> 

Sounds good

>> Unrelated: why not contextually marking this rule as clean to prevent
>> regressions?
> 
> Isn't this rule (and the others my patches were targeting) marked as 
> clean
> already, hence why the allcode job fails?
> 

Oh, you are right, I didn't check.

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Fri May 15 06:52:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 06:52:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309629.1580673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmP1-0001ND-VG; Fri, 15 May 2026 06:52:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309629.1580673; Fri, 15 May 2026 06:52:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmP1-0001N6-Rd; Fri, 15 May 2026 06:52:07 +0000
Received: by outflank-mailman (input) for mailman id 1309629;
 Fri, 15 May 2026 06:52:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNmP0-0001N0-AK
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:52:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNmOz-00Gx39-86
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 08:52:05 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06c290-2eae-0a2a0a5409dd-0a2a4509e516-8
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:52:05 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06c294-2497-0a2a45090019-d155802bc8c2-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:52:05 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-4891e5b9c1fso78920515e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 23:52:05 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe4c88495sm44635485e9.4.2026.05.14.23.52.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 May 2026 23:52:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778827924; x=1779432724; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=66Fp88XMgSl640LE1MMsS2BA9feptZHiN8drijgFsC0=;
        b=cJh9bWQsFLQgoqX+83Lq/1kRpvP4mcVIk6arZorQwEidnRY/NbrZRT8Ka5opdLDKVq
         2YKdes0Q99MkdgTpixRGtvDd18jTBinBFMkivPUhOeRIEuoKfHUEvoRWJlyoGXDzsSjt
         PRdhSLCQgvG02j9s7sFy3oFH8HwGT2Ge/YJmjpxeCSmsZ02jjCik05obPHy1hyEnvKT9
         D+4RcTaLiVfLLMEBO73n5ESJJqR8kZ4D7EsIv3hFM/3s1JXVEhurdm6fjGKZ1EYSb44F
         kp6X97WX8X+Q8uhIsRfk+/WGfU/gBv+aJ+QzFXPS1xK2G/mqfD3GIiHj3kTD6AyQu5Li
         K5pg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778827924; x=1779432724;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=66Fp88XMgSl640LE1MMsS2BA9feptZHiN8drijgFsC0=;
        b=WrkbzeKCclEGIHaTl6tVklCK2RmV1Gfb5fWqH4GwSZwiuJId/tsJu4aIe+PPofS+TK
         etvkWWTogfBKgGsGHj62jLWENe0cTNRFkp3AiWyGWnuGqWZVBjQvC0EEcuqb9OCk9o+J
         ZmlDLW8QLi2zvRU+2tpn9raqKXCxze/4eUxJxRs3kz9HI6J2YFIArWDJxGrMQg/MP6rj
         pfp2yoBHkTEAVjnTrutKsTXLmLogOeFpBOa9QZGBkLNXOWeHS8UrkkASRnpx4IIJ1feK
         gT7Mp4oAvj5T9X3U0nn2/LygSiRN5wFL4PM/5ToEFcq3yfYfRzYkcZ8qDk1sR/OOcQ5B
         FqEg==
X-Gm-Message-State: AOJu0Yy+IHuf6HoH3o9u4QxnE1EKwqc2NJkFRq7VVeyAuHSSVNMSRVGl
	y/NgwrWpeOpGRQ2QEW34Vq0z4bP5APvZsZhhrED95lbAcXbe6ZRErRn1+Pci+CX+yg==
X-Gm-Gg: Acq92OFggpoB01WHEA6q07miw4EgggRrhbaen35DNBef9Dm3y9quQWhFKecM/OhrQxE
	bYhIKNdusxV4k4QQVgJ41vxbtiK5HdPYhPZf//PI771d7enTUGlsXi1iP4dF4S6OlcN/TeljXio
	eqYrlkzyuJaeiOmZYdrM5k3itfjuUbrWvE6heajRzqrSQZNyb2t81EB4+i7axCS24mxexfJmego
	aOaFZgakDXRhfZ01tT/XMXIlBEi7jefCz58yyjUJpYASb7E9TrdYuvaqrv06hZpK22PLtJPznOB
	0LxQXpOZFH5xUk+ykBorwEMTSPMlKxPeGGzIgfsCTmadL6Zi4jsAhwJQop8YnJOjBNXwvwqgFxt
	bt8gQcBNejs2IsYOGFRx6cO86mlIulGZyEloN/uqsvnjfiNBEr3y3cKqoxXRNq3z/kj/cglfdxL
	4cn18ox6RZ7s7VNfqord5dzASYHVoYtUwnfTHvtFwx3SuqFNZpmM+AiWBRKmajARYVp/ArdTl+H
	DC3JKvmAFhfpEk=
X-Received: by 2002:a05:600c:c087:b0:48a:5546:61a1 with SMTP id 5b1f17b1804b1-48fe61f2911mr25474555e9.15.1778827924538;
        Thu, 14 May 2026 23:52:04 -0700 (PDT)
Message-ID: <242237a9-6b9e-4580-8936-aa61be6b0636@suse.com>
Date: Fri, 15 May 2026 08:52:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 3/5] x86/vRTC: support century field
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <383355d1-7032-4445-8a06-cb4411ea797e@suse.com>
 <agSJlh8KQ9orL6wC@macbook.local>
 <17a25f0e-91e3-4e09-92ad-21e7dc0ebe62@suse.com>
 <agSVa3uPHSZrszjz@macbook.local>
 <439d03f4-4ebb-4bbf-a1ea-324156bff9f0@suse.com>
 <agTTtrSm1tBnBGK9@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agTTtrSm1tBnBGK9@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778827925-37D7FA53-554CB6E2/0/0
X-purgate-type: clean
X-purgate-size: 3278

On 13.05.2026 21:40, Roger Pau Monné wrote:
> On Wed, May 13, 2026 at 05:24:13PM +0200, Jan Beulich wrote:
>> On 13.05.2026 17:14, Roger Pau Monné wrote:
>>> On Wed, May 13, 2026 at 04:58:57PM +0200, Jan Beulich wrote:
>>>> On 13.05.2026 16:24, Roger Pau Monné wrote:
>>>>> On Tue, May 12, 2026 at 04:59:35PM +0200, Jan Beulich wrote:
>>>>>> @@ -515,7 +538,10 @@ static int rtc_ioport_write(void *opaque
>>>>>>              /* Fetch the current time and update just this field. */
>>>>>>              s->current_tm = gmtime(get_localtime(d));
>>>>>>              rtc_copy_date(s);
>>>>>> -            s->hw.cmos_data[s->hw.cmos_index] = data;
>>>>>> +            if ( s->hw.cmos_index != RTC_CENTURY )
>>>>>> +                s->hw.cmos_data[s->hw.cmos_index] = data;
>>>>>> +            else
>>>>>> +                s->hw.century = data;
>>>>>>              rtc_set_time(s);
>>>>>>          }
>>>>>>          alarm_timer_update(s);
>>>>>
>>>>> Don't you need to adjust the tail return of rtc_ioport_write() (below
>>>>> the context here) to return 0 when s->hw.cmos_index == RTC_CENTURY, so
>>>>> the set value is also propagated to the DM, and not only the index?
>>>>
>>>> I don't think so. The case of us not handling RTC_CENTURY is dealt with
>>>> earlier in the function. Whereas when we handle the field, we don't want
>>>> to forward (like for all the other RTC fields).
>>>
>>> Right, so then you also want to adjust the top part of
>>> rtc_ioport_write() to not propagate the write to the 0x70 IO port when
>>> data is RTC_CENTURY?  Otherwise you propagate the write to port 0x70,
>>> but not the read/write to port 0x71?
>>
>> I can't, as whether to forward depends on the data subsequently written.
>> Propagating the index "just in case" is the only workable model that I
>> can think of. And as guests can do any number of successive port 70
>> writes, the DM needs to cope with this anyway.
> 
> Hm, I see, the newly written value to port 0x71 is taken into account
> to decide whether to forward to the DM or not.
> 
> I wonder: would it be simpler to extend the size of the hvm_hw_rtc
> structure so that Xen can detect whether the incoming VM has support
> for the century field, and then avoid having to play heuristics
> with the value itself?

It would surely be possible (and we may need to do so anyway for the alarm
date/month fields), but I wanted to get away without doing so here. And it
seemed pretty reasonable to leverage the padding field for this.

>  We would know ahead of starting the guest
> whether RTC_CENTURY is supposed to be handled by Xen or forwarded to
> the DM, and we won't be limited to use 0 as the sentinel value for not
> exposing RTC_CENTURY.

These are the positive aspects. The negative one is that "backwards"
migration would break with the larger record size. Whereas with the padding
field used, it won't: The guest likely won't notice that the value at 0x32
isn't updated anymore, i.e. stays at value 20. Somebody would need to
artificially change time across century boundaries for this to become
noticeable. (Note that this aspect is different for alarm date/month: If
either of those fields was in use, backwards migration indeed needs to
fail.)

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 06:58:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 06:58:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309638.1580682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmUW-0002Co-Hv; Fri, 15 May 2026 06:57:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309638.1580682; Fri, 15 May 2026 06:57:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmUW-0002Ch-Dl; Fri, 15 May 2026 06:57:48 +0000
Received: by outflank-mailman (input) for mailman id 1309638;
 Fri, 15 May 2026 06:57:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNmUV-0002BJ-C6
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 06:57:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNmUU-00Gy5w-KC
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 08:57:46 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06c3e8-5cb7-0a2a0a5109dd-0a2a450be51e-2
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:57:46 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06c3ea-212f-0a2a450b0019-d155802cdc65-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 08:57:46 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-48909558b3aso84636765e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 May 2026 23:57:46 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9ec3b18fsm11896518f8f.11.2026.05.14.23.57.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 May 2026 23:57:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778828266; x=1779433066; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WHmoPTbeIM3pijhui4YZsDSOFaGZN7lR7UYQxppdUqo=;
        b=Ls5RsRj/D/9UX9Tt8+m2FFaF7hlZ1v4XCB5Pp82KGtcuoboFvArb9GKZ8RVwxNU6vC
         jAGNci4puV2zT8Zdfht9Zd6E8Z4n2DWav5/Q1HN02VY6PWsPG6ycQpGbMbzC6JDdzEZK
         j1CZBXGKZ/myKQOZ+ot5jy2sqs+Ua5xYtoUQC1WXXYto8AZfWamfG6xQZ0LQ6WohRdKO
         IWFha1JkY3Tbu6RvtedxHiBPxocQiCDS4nt2rTg3pddX5zmWoDppR/DrH/LugIJew8yx
         x1bDuVIJWsi+mhWuuHQ/6i0TFmgcFuOd8wlYt4qQg/CHn8AnXyLHeCqcy14Xl3fRiu3i
         SCKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778828266; x=1779433066;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WHmoPTbeIM3pijhui4YZsDSOFaGZN7lR7UYQxppdUqo=;
        b=lz7k5sdzgqWRomVBhI5BYRtRO322e6jlCBB/wiWIoZ/U3nNwBkP5dXqU/k9JpsJ3nS
         /0qgkt/WAS5xWZw2KXqrjoY47hi6aLSJyICg57ECNkx6LMrNtuZ89MEEnDCH/EeUOkYZ
         QJ6AKRAOmgj/J/6udPbn45PLDOYGWTrhjKTkkBYvICBdD0csONNqtNpwatYyLTElaFrT
         1zmh3PjertP+R7/0y71A7v41mG/y20nl7pVS9oMiBLMDaeaeWBMVMitGsbo9gvsKtdRj
         RzHUgj5hxNXIkWQngAx2lC9IhgfAiEcthCA8ExQo6OT0mUEdH6MZXLJ4ZP3AyR5dusVA
         4V8g==
X-Gm-Message-State: AOJu0YzEvWV00AFiHYCWId6J+mDPoChoouAP9XMS5u/HDnBKQWTu8ghf
	qUHcd2TNowjMVR+Bx7cFpE50x/4gp3ovb8VTVlLJJnMtM9I0s+cPv8iRTVoTAKviNQ==
X-Gm-Gg: Acq92OHBy1Si12UBgveZoEbdcgryaXX3TINf/FmA/e9oyzjV5eQnj8RRbeZQao/jEWD
	Bte8JApRf10LGHt2DEDZ2uwK86kcfnrameKAXZs3VR3gfJMo0EJh1o2Grg4Xyypfy/qkzsy3tSy
	KDed/1GaTOWPbIhVuZXYK5qirj1T3klCIzvVR06u9+Z9dZ8uy5fQo+99G60TXYhVykMM3DqeQ48
	k0dfbaHAUG29LDRnr8GsFf7ULaUygEFa6dVDyWealWw9u5bdfDtRKIDQ8VHq83Eh7zxRB7RucAk
	4AYq/MmyqpvFdOYlm7VEaAQOK6WV77u7Jcyjf5D8gD0nWhpDFVZGVYTgmLUlk7RZrRilehErGzp
	N9+arvSHIohXYCAxsxSLfH5rqE+BL2xUvt2IdnUOU8kjsdFgZzdeaPd5AOHUjNiOXXew5cE16MQ
	dXDAc8WrHuxjBcadOuiFKZWUyG9GVVe24McEey8AvzDMjwjPW/xXM2zOV/E2E673uZ7RNobbieV
	1tDd8sk7DGJF1Y=
X-Received: by 2002:a05:600c:528c:b0:48f:d612:3c6e with SMTP id 5b1f17b1804b1-48fe60de745mr33433535e9.2.1778828265908;
        Thu, 14 May 2026 23:57:45 -0700 (PDT)
Message-ID: <5fdd68ea-a413-4f8e-a50a-b0d7d821e904@suse.com>
Date: Fri, 15 May 2026 08:57:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 v2 7/8] x86/mwait-idle: Add cmdline option to
 adjust C-states table
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
 <8c46fedd-f1f3-4cad-91fb-1b3b8d58db50@suse.com>
 <agXns5dpu-X5rspi@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agXns5dpu-X5rspi@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1778828266-19F6EF3B-7862A595/0/0
X-purgate-type: clean
X-purgate-size: 6124

On 14.05.2026 17:18, Roger Pau Monné wrote:
> On Tue, May 12, 2026 at 05:38:08PM +0200, Jan Beulich wrote:
>> From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
>>
>> Add a new module parameter that allows adjusting the C-states table used by
>> the driver.
>>
>> Currently, the C-states table is hardcoded in the driver based on the CPU
>> model. The goal is to have good enough defaults for most users.
>>
>> However, C-state characteristics, such as exit latency and residency, can
>> vary between different variants of the same CPU model and BIOS settings.
>> Moreover, different platform usage models and user preferences may benefit
>> from different C-state target_residency values.
>>
>> Provide a way for users to adjust the C-states table via a module parameter
>> "table". The general format is:
>> "state1:latency1:target_residency1,state2:latency2:target_residency2,..."
>>
>> In other words, represent each C-state by its name, exit latency (in
>> microseconds), and target residency (in microseconds), separated by colons.
>> Separate multiple C-states by commas.
>>
>> For example, suppose a CPU has 3 C-states with the following
>> characteristics:
>>   C1:  exit_latency=1, target_residency=2
>>   C1E: exit_latency=10, target_residency=10
>>   C6:  exit_latency=100, target_residency=500
>>
>> Users can specify a custom C-states table as follows:
>>
>> 1. intel_idle.table="C1:2:2,C1E:5:20,C6:150:600"
>>    Result: C1:  exit_latency=2, target_residency=2
>>            C1E: exit_latency=5, target_residency=20
>>            C6:  exit_latency=150, target_residency=600
>> 2. intel_idle.table="C6::400"
>>    Result: C1:  exit_latency=1, target_residency=2 (unchanged)
>>            C1E: exit_latency=10, target_residency=10 (unchanged)
>>            C6:  exit_latency=100, target_residency=400
>>                 (only target_residency changed)
>>
>> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
>> Link: https://patch.msgid.link/20251216080402.156988-3-dedekind1@gmail.com
>> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 111f77a23348
>>
>> Add __init to get_cmdline_field(). Put cmdline_table_str[] in .init.data.
>> Other adjustments to fit our env.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

>> +/**
>> + * cmdline_table_adjust - Adjust the C-states table with data from cmdline.
>> + *
>> + * Adjust the C-states table with data from the 'mwait-idle.table' parameter
>> + * (if specified).
>> + */
>> +static void __init cmdline_table_adjust(void)
>> +{
>> +	char *args = cmdline_table_str;
>> +	struct cpuidle_state *state;
>> +	unsigned int i, state_count;
>> +
>> +	if (args[0] == '\0')
>> +		/* The 'mwait-idle.table' module parameter was not specified */
>> +		return;
>> +
>> +	/* Create a copy of the C-states table */
>> +	for (i = 0;
>> +	     i < ARRAY_SIZE(cmdline_states) && icpu.state_table[i].name[0];
>> +	     i++)
>> +		cmdline_states[i] = icpu.state_table[i];
>> +
>> +	state_count = i;
>> +
>> +	/*
>> +	 * Adjust the C-states table copy with data from the 'mwait-idle.table'
>> +	 * module parameter.
>> +	 */
>> +	while (args) {
>> +		char *fields, *name, *val;
>> +
>> +		/*
>> +		 * Get the next C-state definition, which is expected to be
>> +		 * '<name>:<latency_us>:<target_residency_us>'. Treat "empty"
>> +		 * fields as unchanged. For example,
>> +		 * '<name>::<target_residency_us>' leaves the latency unchanged.
>> +		 */
>> +		args = get_cmdline_field(args, &fields, ',');
>> +
>> +		/* name */
>> +		fields = get_cmdline_field(fields, &name, ':');
>> +		if (!fields)
>> +			goto error;
>> +
>> +		/* Find the C-state by its name */
>> +		state = NULL;
>> +		for (i = 0; i < state_count; i++) {
>> +			if (!strcmp(name, cmdline_states[i].name)) {
>> +				state = &cmdline_states[i];
>> +				break;
>> +			}
>> +		}
>> +
>> +		if (!state) {
>> +			printk(XENLOG_ERR PREFIX "C-state '%s' was not found\n",
>> +			       name);
>> +			continue;
>> +		}
>> +
>> +		/* Latency */
>> +		fields = get_cmdline_field(fields, &val, ':');
>> +		if (!fields)
>> +			goto error;
>> +
>> +		if (*val) {
>> +			const char *end;
>> +			unsigned long n = simple_strtoul(val, &end, 0);
>> +
>> +			state->exit_latency = n;
>> +			if (*end || state->exit_latency != n)
>> +				goto error;
>> +		}
>> +
>> +		/* Target residency */
>> +		fields = get_cmdline_field(fields, &val, ':');
>> +
>> +		if (*val) {
>> +			const char *end;
>> +			unsigned long n = simple_strtoul(val, &end, 0);
>> +
>> +			state->target_residency = n;
>> +			if (*end || state->target_residency != n)
>> +				goto error;
>> +		}
>> +
>> +		/*
>> +		 * Allow for 3 more fields, but ignore them. Helps to make
>> +		 * possible future extensions of the cmdline format backward
>> +		 * compatible.
>> +		 */
>> +		for (i = 0; fields && i < 3; i++) {
>> +			fields = get_cmdline_field(fields, &val, ':');
>> +			if (!fields)
>> +				break;
>> +		}
>> +
>> +		if (fields) {
>> +			printk(XENLOG_ERR PREFIX
>> +			       "Too many fields for C-state '%s'\n",
>> +			       state->name);
>> +			goto error;
>> +		}
>> +
>> +		printk(XENLOG_INFO PREFIX
>> +		       "C-state from cmdline: name=%s, latency=%u, residency=%u\n",
>> +		       state->name, state->exit_latency, state->target_residency);
>> +	}
>> +
>> +	/* Copy the adjusted C-states table back */
>> +	for (i = 0; i < state_count; i++)
>> +		icpu.state_table[i] = cmdline_states[i];
>> +
>> +	printk(XENLOG_INFO PREFIX
>> +	       "Adjusted C-states with data from 'mwait-idle.table'\n");
>> +	return;
>> +
>> + error:
>> +	printk(PREFIX
> 
> XENLOG_ERR ahead of the prefix maybe?

I did already raise the level from info to warning, compared to the Linux
original. I didn't want to go yet farther with this, hence why I'd prefer
to leave out XENLOG_* altogether here.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 07:02:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 07:02:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309645.1580690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmYp-000404-1Y; Fri, 15 May 2026 07:02:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309645.1580690; Fri, 15 May 2026 07:02:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmYo-0003zw-UJ; Fri, 15 May 2026 07:02:14 +0000
Received: by outflank-mailman (input) for mailman id 1309645;
 Fri, 15 May 2026 07:02:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNmYo-0003yJ-6v
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 07:02:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNmYk-009gqi-JX
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 09:02:10 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06c4f1-2eae-0a2a0a5409dd-0a2a45038ff2-6
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 09:02:10 +0200
Received: from [209.85.221.42] (helo=mail-wr1-f42.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06c4b6-672d-0a2a45030019-d155dd2ae495-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 09:01:10 +0200
Received: by mail-wr1-f42.google.com with SMTP id
 ffacd0b85a97d-45d96d21e82so1000520f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 00:01:10 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da0fe1a41sm13099670f8f.31.2026.05.15.00.01.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 May 2026 00:01:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778828470; x=1779433270; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OvEAdl3G86YkunA7xQ2AK7TGiF1P5JvbBb/kl0+GDlY=;
        b=LVXexjaOsVuaP5SwlYp6/kDkgsPQR75yM+D4XaHwtovCiP6Va+vcyjmRzMuVy/ZEEe
         vLVBL18JiybwY9X8Yxq+aG1GrjWWMg3SOlwqNbmDasnU5zxX5xxiRrargAkY5u2Hng45
         d9weXrRUbuUp4B5GbCP1FKDd406qQu52pVAJCVDqiGkayWohLYJ8O/H8sYvvjbLDKCKQ
         u6CPnbNePozRD+1BUjh7psPngtFoc81sRSE/bbiBWNVAnYuBPzNjQSEiDK7VpuZIkUaT
         +lwu4LKrm9/qRR6bvIuVpKzZQkrbfSVgxgVmyNhYRK6Vo8OoSp/Ff+qtVZixoRTLMoBR
         Yl1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778828470; x=1779433270;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OvEAdl3G86YkunA7xQ2AK7TGiF1P5JvbBb/kl0+GDlY=;
        b=puc7WprOFcmEUhP3zskezOIvOYTqfK1yV72fZqmCs4YOmOivg84G+VKac6esCieWlV
         F3wuPhmV3TL+EGt/mMV4aGW26TdGidmPrl860bv5Okv8K21s2m0Gxl5lOcDCz5lfjx70
         /omiGh/iw5EbqLNB9qsqfFh4mN6sljmCuKOBb2k4+I+tSMzK14oFuTie9P3+P5cpxZ+u
         0NqGC7wu+acJRxCb5/jRVojG6XyKrW9VulfqnONQfdutnUT6QelhbrvwKyvJFLXMtuqh
         WgCx3r4CjYUkXcnw+8izunolm0yrhLwEYhY8471/g8vdrnsGSTJw9fYAh5J1rUeDo8Rr
         UCrg==
X-Gm-Message-State: AOJu0Yx4H70vYthajdHIXidNAFJL5zBZjHbJWpEeIeZRRrTiEa5zYcdS
	YOrt1h72YGxkfy3iolqQzUh7092+i/NuXOUtgFPZFkDXNhnNU9H7xw5Yk5mrzj45dA==
X-Gm-Gg: Acq92OGUqYkvfk/7KIRouEpIJ9T4MMNKELOxepBqCS9YGION9cop3gpLkHn3oLCY8gv
	G6c5nn4UEC/fSu+1EvB2nnKO99x2f8YLkZ8RCG7vzF+bLVPSLu+VpNAvVOTi2rjnCxBd/PmhHZV
	ofQ+tXVL/WE/NbetO8wZH5rjggVWa/pSwY2gzH2SacI+0uFNxuDx//MtJ9kT6RDEJ+hMUaWCrGS
	KaZorMzU39nHYKU+UWPI49SJERk6QQtJFy6LuRyjUrzyLEEtkdkXQ3H3lmvBjE1F7ShxrvS9LBS
	lWZ0fJtxMQsRe0xrcMfKvksImMnE/tauBnsAwtDPQKL++8O2bX+Ou+xZLbozfehkttIQhSSL984
	ZC+FMwcLvqBEVw0gFE3LuUJDiSaqT1lz6yMW7E0UfjxvG5BBbXoq5Cq61QfnWWce6cLgZ5ZQMBZ
	8adH3TUuNjmKzeFZCF4cPjchC8HjD8+bTahhcpmk5QlpeC5Qs9cmyVYxUsv4thzqzS2ZeVBV/gG
	IzLrNx41TFfIno=
X-Received: by 2002:a05:6000:2584:b0:43d:7783:c684 with SMTP id ffacd0b85a97d-45e5c5e6d3dmr3192274f8f.43.1778828469573;
        Fri, 15 May 2026 00:01:09 -0700 (PDT)
Message-ID: <eff07afd-791b-4078-924c-ed56d76ff7c6@suse.com>
Date: Fri, 15 May 2026 09:01:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 v2 8/8] x86/mwait-idle: Add C-states validation
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
 <d8c66d85-59c1-4107-b283-a03f92f6eab1@suse.com>
 <agXqiEQgGblLyc7-@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agXqiEQgGblLyc7-@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1778828470-37F4A938-FE7E7C88/13/0
X-purgate-type: clean
X-purgate-size: 1456

On 14.05.2026 17:30, Roger Pau Monné wrote:
> On Tue, May 12, 2026 at 05:38:32PM +0200, Jan Beulich wrote:
>> From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
>>
>> Add validation for C-states specified via the "table=" module parameter.
>> Treat this module parameter as untrusted input and validate it thoroughly.
>>
>> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
>> Link: https://patch.msgid.link/20251216080402.156988-4-dedekind1@gmail.com
>> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git be6a150829b3
>>
>> Add __init to validate_cmdline_cstate(). Other adjustments to fit our env.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

>> @@ -1697,6 +1737,21 @@ static void __init cmdline_table_adjust(
>>  		       state->name, state->exit_latency, state->target_residency);
>>  	}
>>  
>> +	/* Validate the adjusted C-states */
>> +	for (i = 0; i < state_count; i++) {
>> +		struct cpuidle_state *prev_state;
> 
> const?

Oh, yes, I should have done that with the other v2 change.

>  FWIW, you could also init the field at definition, but I
> understand this might diverge too much from the Linux code.

Right, hence why I left it. Generally I agree that using initializers is
preferable over separate assignments.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 07:05:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 07:05:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309654.1580699 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmc2-0004Yp-Gt; Fri, 15 May 2026 07:05:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309654.1580699; Fri, 15 May 2026 07:05:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmc2-0004Yi-EI; Fri, 15 May 2026 07:05:34 +0000
Received: by outflank-mailman (input) for mailman id 1309654;
 Fri, 15 May 2026 07:05:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wNmc0-0004Yc-JL
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 07:05:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNmbz-005PL3-S1
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 09:05:31 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a06c5ae-5cb7-0a2a0a5109dd-0a2a4507da50-28
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 09:05:31 +0200
Received: from [52.101.84.11]
 (helo=DB3PR0202CU003.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a06c5ba-229c-0a2a45070019-3465540b6227-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 09:05:31 +0200
Received: from AS9PR06CA0495.eurprd06.prod.outlook.com (2603:10a6:20b:49b::20)
 by AS2PR08MB9943.eurprd08.prod.outlook.com (2603:10a6:20b:546::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 07:05:26 +0000
Received: from AM4PEPF00027A68.eurprd04.prod.outlook.com
 (2603:10a6:20b:49b:cafe::4c) by AS9PR06CA0495.outlook.office365.com
 (2603:10a6:20b:49b::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.20 via Frontend Transport; Fri, 15
 May 2026 07:05:26 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00027A68.mail.protection.outlook.com (10.167.16.85) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Fri, 15 May 2026 07:05:26 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DBBPR08MB10699.eurprd08.prod.outlook.com (2603:10a6:10:52f::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 07:04:23 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 07:04:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Lb5fKqTZIE6Sv5eUz4wj9OPsVsIVSIlKxL1YfO9caoI+3GatqjSlC/BvL3aDHA0jVp8VvdrEnB6ACf28JsQfOOMZq2QU2T3aE6VkASeIC/uqNSNUYPTww+G6Ip2XxNvap0/CtjJ0K239+QGyPaycnrYPcOfVICfDjudYsD+FA+od3tCO+W7d+9E18jmJsx7Pnq9MQ1O8KzFHLjAh1EwDZSO3NJ5qTCeOy0PuIKjn8/zssI1MMnqnnV5zwqMYRU/YMjQadZ6udlvQPimtbPPo2FogccWOfFKwyOJDaHYbfmjKhROxdmuJtZrhv5twODqfSvF6HtsmS9u239uBfJvTQA==
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=uu1uYv1k/2Y0RBOxtjt+HnO0Z0e2WC8nQVnXE7nlwCM=;
 b=nAAqLBstuKnS2/Ox0smgNZ0G8iXWbcFRyx2KTcBWYbra9jyUxI0mV7LkAJA86p/aMKaOlxLX/S+O7Mtfr74fJXujZzWBge3tFI3Bghid2imlqSxAYEuAPgHoOFy7ofxDkTzxVssFOh/LeTt5p6MMYcFRLhD0IOHICEKGaSvw9fylA+bDaNZbL/ayofZXmxbyEcPvyOmTT8qeklaqezkXG4edscL2sCTxqwVOVbPlQp4a9TOmmJUgzw68/Sqt7JLBCbEeOdchXwCZRHvF1mABn7upWHsBQ5U7OoCMrSUwtTvx7n4c8w56aCH6rUYqbLRVYDcqf+WA7CrFoZ+NMAABGg==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uu1uYv1k/2Y0RBOxtjt+HnO0Z0e2WC8nQVnXE7nlwCM=;
 b=E/94HaSrnCIBAx94vrKduYlrcCtIT47JT+GVWGDhsTnn2IOXU1sA1nz+EeI841zFdEimuuCxDOYh6L1a3j1XdBSpbNytuTruRBJHOXCTYIufDopEveoWD/MTwrFHn8JYnGAU4cK2dp5b7AuK+0ZPihsXk8S20mXrDOYEav/gvbQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nayznMdrEedBAkp4/k32B0quDUmu0kvLGEW8sk6yakHJAV8XgqMbyzo6jlbge6WD/TqmHXag8K051++j4DEpu/+uPupPJRk20Kf19vL4SpPC3G18Sx0+nY1uao2ApPHBeTjRb0nXx07XqY8cLfp8RwenAoUyPXBgFVi71cV81d+jNvO5TVsZxDgdBEmDHTdskeSFbgOivoLPYEsPUmRkvYEmU7HU9DQ8kvCOng0XgJDZJgk3ds0+n1y/24dNIM0nm8TNO5Q9OJA/pdM8OYNj0ISrh14Mu/4Vw7Mh1iQf0oHHa+zkmxf6GF82RZQsujAXCe03Id3VwGd5x6w8doCKYg==
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=uu1uYv1k/2Y0RBOxtjt+HnO0Z0e2WC8nQVnXE7nlwCM=;
 b=oVDPk8/761sPIZYybR2x1rDuu/ktKxWpC7ocDwTWMCpWYyzy0fuYG1bkwd22PdyPbPj35+sYKhHKBUnfjuhcAlOjL3kuJylYdUH4Ar9Tl00MjivtfhU5FbMBBl55Jxa/wPpG35GAIF+aeYmh6N0hj5JOS/Da1dTGhVN/3AHiST/JN3dAspiDP0dn19ybKgfzyt6zrpvhds54DHdCVT/RjbjjLkxtCFMuScMLtOyVxZuvM1Xh537Qmi5RJj9nCTg/WMLhhDPNIfE7xxrDeRGM9JOEK5zwGv1Eiz84LrupIZQaDiGWwu5svzVCEb4mauY4KJACOe61IU4yvlzmQZCFGg==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uu1uYv1k/2Y0RBOxtjt+HnO0Z0e2WC8nQVnXE7nlwCM=;
 b=E/94HaSrnCIBAx94vrKduYlrcCtIT47JT+GVWGDhsTnn2IOXU1sA1nz+EeI841zFdEimuuCxDOYh6L1a3j1XdBSpbNytuTruRBJHOXCTYIufDopEveoWD/MTwrFHn8JYnGAU4cK2dp5b7AuK+0ZPihsXk8S20mXrDOYEav/gvbQ=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v9 11/13] xen/arm: Implement PSCI SYSTEM_SUSPEND call
 (host interface)
Thread-Topic: [PATCH v9 11/13] xen/arm: Implement PSCI SYSTEM_SUSPEND call
 (host interface)
Thread-Index: AQHc4jI5Oej4drtZZ0aMeZtjQOxaL7YOrZWA
Date: Fri, 15 May 2026 07:04:23 +0000
Message-ID: <C9CA8E5D-E163-46F9-8090-3792A2B4B001@arm.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <9d76348fdd25f0ac7c449ed302ce24ac93b70e95.1778605274.git.mykola_kvach@epam.com>
In-Reply-To:
 <9d76348fdd25f0ac7c449ed302ce24ac93b70e95.1778605274.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DBBPR08MB10699:EE_|AM4PEPF00027A68:EE_|AS2PR08MB9943:EE_
X-MS-Office365-Filtering-Correlation-Id: 9f960d25-7d95-4968-562d-08deb250574f
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|56012099003|4143699003|11063799003|18002099003|22082099003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 4c/0vY5GnQ0m47j1K8+1PeYvvAiR1i+eCRuEUrtL3MyGgM1R69sVM9yAmdzd6hSuVFlT4KrJjAKKYBhbnlslJa3x7xT2XKh3OvLgZSwAwq+pjeLsow2qnNmhYcXcdWeSyIDMRqTY8wdWtnQNvusHrXeO8Zip5N42WfsXSXImAeIAsUguO3EPKjohe3Hj65tqHy6DttTpy7jXFqQzXXPl2PROyAcJ885rxHB11XXBH+vyx449gPaaS2a4/HnvmXh/02OA+1UdQTZGb8g+gdAZXUBaK3bxl/xcx9AU+Y1CwZV9tU5ii5zt8w66l5OLUDkmokrUrF2ypboTX2Z0rdGIhgaPunid0UwK04n6+4N6s+CKIRq6cjZxQWSou1E0eTTe3ffw0t6mFpktI6iyyfsBGajVQplhmjL+Lv37yQ5vMIZaXVXTkDPYE3ZVxrlA9W42/WIjPSv9c9N0+lhf4ZDTr/t9MoUMmBTZfegFIDaV5HWH8hKg3/YgitUFcgmw5s9Ax4zr2rF8hdy8o9FQsMNbm1RE/sVWZaU+IP/s8Rn5uP6Bn8Rio7Sl97jqzfoy+MYccetytDl5cW4R7htgwSYLWLkvgK8THU6Gudo4y1ulm+zVFlWVlawSgfynZxK+57d5R51PVUYhBkvCSUnFOg+2aeJpfRRYyVx99PGs5DEwgMncBohLUpyqZ9rS2QQ3LKueUWp0JiqXs6DeaQQHwXBr0U4uMna9YdFWA3NXBeExGg7JKP3LegPj1wKPnu2G/G+V
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(56012099003)(4143699003)(11063799003)(18002099003)(22082099003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <BEA7EC6C78FB9640990615E4E1248981@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 mjILgXKinWamSXkGFY62kq+ouNMLB31DpzVncokQuwpReN8M5HhqyOzy9jR2A1A4vHsPimBs7w3+Eg7n3/CoYm3KE2Ui+XSIqxZ7aU2ok3n3v18VOscep8Wxtw8T+MNdLJbRBXWh4NpBgWiUI0zWfk/feJ0YPB90LRUej8eyIIZP41fXQ87wjgf0iVecCxPfIEePsbw26U7xKIkxW+bqJ2+xLL9A9qMQEaSdfBqsfV5mNq7SsZnECV+85KNXZiW0dEKQ9Eu6VNdlSU1xnVOlD5ujqA7I7LdjYOIn9d7Dg5TpMPJiM7aOwS0zlsg+kLJd6qweao33PzberCRp1KneFQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB10699
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00027A68.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0f0b054e-13e7-488e-5897-08deb25031ab
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|14060799003|36860700016|376014|35042699022|18002099003|22082099003|56012099003|11063799003|4143699003;
X-Microsoft-Antispam-Message-Info:
	e3uXesN7pW8RXO6EGMO1DWxKL5J1gS9loZruZi5SxrPeRiREu3HtR1Ni2iWJciSxypf34it1LeX/7WaSx8NSoG/0ZBlvCRr0pY4dAhkV/xn72Y2KdrPlXneAEXrBB/Nfvc8agm0APFe2SWfSgcKTJeasT9t5H9i68Y6aB5qkCEcng6RkEUt9pqMJwXZrNfX7XHwu0Ns5yAwVZr4kzpEV3AIwqcEP3a55U3QKqFOYgnjZosMu23ddHRTfNRh0HfwK9Qk6Lx2EUFMt6ZX+aK5VMIrfQTGBH3CVI/QHzuHUS6kaXHuUXCMtp9yRa5Glr0mZk3Ftww2bIm7WFvmu+fxDTJ1GfnMmDeDY645mV2ACvhKvCAvlvzk3rVOsK9XpfXoadCiQk/C2/Eb7hPJruer+CoAO0e3GC8L1y3NIPA31nWaRPu1YXyC4Qq3KvwC3vjUXMk1s05S90uSaJHLxwPeBMd9z0i9XRDLHAClZ7UxJFmW4p2NsB8pgEuFlvP5PZyjIQEP8lIQQsYtSC3FH68x0HanZ50CqIsRZC07GRDongDqul8NTiRB4SsytE80gB2aPDaOMlci3ITzLmiFR/FEfM3j2TY9+L62zgVv+9T0+X3RZJu+CoKzHVh0BFf+K4qzKftch20IVBjI87Q20QX2/qypafEAJNSTyC7MnDeS6ztVTp4O9yMjsp10cn3RumXs2SChZLap9gVOGxOFWhCk5174WEAmzZISImWygR9TRlaw=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(14060799003)(36860700016)(376014)(35042699022)(18002099003)(22082099003)(56012099003)(11063799003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	NpKxWektACUWTI2rInbPZE8tmq3g1eIBGsXX7RafbvQaJav7evp24ZVlvEBMEwiXOv8/jjX4/Cf6M1fHF5oJJW83Kvs9u6TUiMdF1+n2RqbyRoLvXlE+UlLNa/mbg8skbfCGczwXUs1vaufuoT8llVI3ul87P7A5Es+HLXZKFEBHSNKWuojnfGIWeEAJh/ArxTaWL7bDPFy/HjCe3sRkOkjKIx82m1CKCGq4kGIXr+d7IuFnWot8Ram2wG+FKXIdnG/JXieGcHNukVOXAqGtwzgSR/dtjUOrv2lvUk5JYiIzzkjrpxLVzlUzzIqu9W958c5aj+B9iRm1GZ0PIexuUGAiTCcJ5G8hRGDRl9RxD+bkLGB/NhXRfowH/tUBfahZhbzS86o2VepPi5siSDH6qUUPhjNTDjb+6aOEDdLY0kOa9Dly5POWvh5t/erZLLgJ
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 07:05:26.4200
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9f960d25-7d95-4968-562d-08deb250574f
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00027A68.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9943
X-purgate-ID: tlsNG-ef75cf/1778828731-09969C48-52178B3D/0/0
X-purgate-type: clean
X-purgate-size: 971

Hi Mykola,

> On 12 May 2026, at 18:07, Mykola Kvach <xakep.amatop@gmail.com> wrote:
>=20
> From: Mirela Simonovic <mirela.simonovic@aggios.com>
>=20
> Invoke PSCI SYSTEM_SUSPEND to finalize Xen's suspend sequence on ARM64
> platforms. Pass the Xen resume entry point (hyp_resume) to EL3 together
> with a zero context ID, matching Linux.
>=20
> This patch wires up only the host-side PSCI SYSTEM_SUSPEND invocation.
> The resume trampoline and context restore are provided by earlier patches
> in the series.
>=20
> Only enable this path when CONFIG_SYSTEM_SUSPEND is set and PSCI
> advertises SYSTEM_SUSPEND via PSCI_FEATURES.
>=20
> Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
> Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Fri May 15 07:15:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 07:15:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309662.1580707 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmls-0006gE-DP; Fri, 15 May 2026 07:15:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309662.1580707; Fri, 15 May 2026 07:15:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNmls-0006g7-Ae; Fri, 15 May 2026 07:15:44 +0000
Received: by outflank-mailman (input) for mailman id 1309662;
 Fri, 15 May 2026 07:15:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNmlq-0006g1-IZ
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 07:15:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNmlp-005RNb-Ux
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 09:15:41 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06c7fd-5cb7-0a2a0a5109dd-0a2a4502a79c-28
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 09:15:41 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06c81d-af86-0a2a45020019-d1558032d4af-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 09:15:41 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-48e6db3ff7eso37932165e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 00:15:41 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48feab290e1sm14113145e9.2.2026.05.15.00.15.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 May 2026 00:15:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778829341; x=1779434141; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VOs+Kg0UNc09Wh2/h4eiQrPl4SGLhZXxpuowRQyrkiU=;
        b=HYqtw0iq5JMYyHuV12/SQcGyLjepnIk3y6j6CUEhRd8Xr2Z39P4v97pqs20v8W1AFx
         vepUICMRLkbyamet+8UJW/GhsksEX44dNyKrvqGDFUFLw2wwgoU7+9XbcheOHsrfi63i
         hjcRlPac5QWRh7+jpikafa6NQGOg8eL1PYmqvLPyHizub9AstlFk70nYNtDnGlxFp6jh
         c8e0Gpl2OUpZ+hiw/k77TeIjDnI2Ietvya9Mefuu/MzC4/4Qeg0Kmmrh1tqIWh5IIh6+
         F/d03CkBXnoQhxbvgZn/Q3t62WQcZusntYp9qzOd2RO4Dd9Zbi6YVDeQH+akkKtQcEVJ
         Z4lg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778829341; x=1779434141;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VOs+Kg0UNc09Wh2/h4eiQrPl4SGLhZXxpuowRQyrkiU=;
        b=abqxiJPeYBkdzi4fTRUTnjSp6IDaQP0PqWjR53fbhUlJTRBMnPptbDyxBZ2DkGo06R
         pgI2Vd4BTLT6MmxhGAwq6ct6mxtbmdF7nnYlGtUY9siyIBMpy7zzLr2li0BNpvmQjmP3
         Vu3tQcfWCMDPR+lKU/KyEpoH7wCzLLnTpnfhGfS2Jx1tCZoReipwpm5MbB5LsvAREobr
         I7QmULo7NOT9iwEveXdfHII34ntzdcEGB3pSXQ9/Z16a325s2VAgCOio6gGv9JzfACIt
         c9Le1z7r6sMDOy/5N4IBbcq0Mgrm8F2AmCMF48kWqwhcm6N7+jbnM1YqprBlX6d1uYMA
         c3IQ==
X-Gm-Message-State: AOJu0YxrGnETnu10bOKO1OgbkuvmrPxKsdel7yPTSsh0fv01LbaszX1v
	E3ZHu1nv1llWsaORPPxZ3K1rbXKXSK0stNogvHC+SNzwLuMgwMlHrKj3t67nOb5Uhw==
X-Gm-Gg: Acq92OHenjPeIufk+WzNXKQ1KYDJFifE4ll9TpNMzJJS1ZnUuALfQWJ6hprWfeUFnh/
	HRpP1+x8ZfcAaYu8T1e1CPO954NSj/yEIsNCUs8S9se7glmOU0rJgB846vLcyuG147UsALoswOr
	zQaaj7wBw+JHs55mRXno5FnLxqEpsh5IVuKVtAd0NB26vxq9GeGO241dF3Bw5lT8SPM/fN5scIL
	Euch3wL0KGXAwW8hLGSej/Mhrs/vDSUU7m+gwxTVqyIlMj2PqrWB7VOSyg8ylgqTOa0B9wiTFG8
	vuzOtRVvfzf4N/SGY6yHo1UNgMfRDicmRhECFWO/Gnl/cfb1v6IZXeBLkH1Afq+ag8CCPsGcrV1
	PVkEvJtGg7r3YFVDaC4hhAj9Oto98SB/qOSQl3rEbpPWpH2LW8o4opiecM/fVnBvx6ipsVrZJh/
	uQumLFhoH0T0dGpM7MtYGNm0vz66B1w5vnGtqcLgv0m0CuvPxshUf9LEJk1sqLMKmzUFEaW7iKt
	1yuqmpJQb2O0p4=
X-Received: by 2002:a05:600c:49a2:b0:48f:e6de:1cbb with SMTP id 5b1f17b1804b1-48fe6de1de1mr19425805e9.28.1778829341252;
        Fri, 15 May 2026 00:15:41 -0700 (PDT)
Message-ID: <8fbab1f4-3078-4ac3-b147-84d1b5f5abd1@suse.com>
Date: Fri, 15 May 2026 09:15:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 RFC] x86/time: avoid early uses of NOW() to return zero
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <68b1607a-f2a1-4f53-84c5-43c61eeb1869@suse.com>
 <agXwsshLlV50dcnV@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agXwsshLlV50dcnV@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778829341-81F76161-44E4E2E4/0/0
X-purgate-type: clean
X-purgate-size: 3446

On 14.05.2026 17:56, Roger Pau Monné wrote:
> On Wed, May 13, 2026 at 08:44:46AM +0200, Jan Beulich wrote:
>> Waiting loops like the one in flush_command_buffer() will degenerate to
>> infinite ones when used early enough for NOW() to still return constant
>> zero. Make sure the returned value at least monotonically increases. When
>> available, use nominal frequency values as initial approximation.
>>
>> Do this only in get_s_time(), as producing a sane value in
>> get_s_time_fixed() for non-zero inputs won't be reasonably possible.
>> Put an assertion there.
>>
>> Reported-by: Roger Pau Monné <roger.pau@citrix.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> RFC: This breaks at least the TSM_BOOT case printk_start_of_line(), which
>>      checks for NOW() returning 0 (falling back to TSM_RAW in this case).
>>      For now I have no idea how to avoid this; perhaps that's tolerable at
>>      least in the case where we put in place an early estimate? Should we
>>      maybe weaken the fallback condition to take effect for any value
>>      below 1μs?
> 
> Maybe it's fine to print cycles unconditionally until we reach
> SYS_STATE_smp_boot when we know the per-cpu scale is correctly set?

I remain of the opinion (as said in reply to your similar v1 comment) that
this isn't very desirable. Tying to SYS_STATE_smp_boot also would feel
pretty arbitrary. Other ports may have NOW() properly working much earlier.
If anything we may want to add a global indicator of NOW() properly working.

>> RFC: While generally the mentioned waiting loops will take longer to time
>>      out, on a very fast CPU tight loops may time out too early.
>>
>> RFC: For the AMD/Hygon case, if the "nominal" value isn't available, we
>>      could use the "high" one. That would cause NOW() to run too slowly
>>      (until the scale is properly set), but maybe that's still better than
>>      it returning 0? (As it stands, I can't really test the new code
>>      there, as my Rome system only supplies the lo/hi pair of values.)
> 
> Using the "high" frequency would seem fine to me.

Okay, will do then for v3.

Related aspect: With these family/model specific additions for AMD, we could
also separate out intel_log_freq()'s model specific part, to leverage from
here as well.

>> @@ -2623,6 +2640,21 @@ int __init init_xen_time(void)
>>      return 0;
>>  }
>>  
>> +/* BSP-only function to pre-set an approximate TSC scale. */
>> +void __init preset_tsc_scale(unsigned long freq)
>> +{
>> +    struct cpu_time *t = &this_cpu(cpu_time);
>> +
>> +    /*
>> +     * The incoming frequency is only approximate (nominal).  Increase it by
>> +     * 1% to make NOW() output rather a little too slow than too fast, thus
>> +     * avoiding a possible backwards jump once the final scale is set.
>> +     */
>> +    freq += DIV_ROUND_UP(freq, 100);
> 
> To avoid such possible jump backwards, won't it safer to also update
> the ->local_stime and ->local_tsc fields at the time the new scale is
> set?  Updatign those ahead of setting the new scale should avoid any
> backward jumps.

->stamp.local_tsc does get updated; you merely dropped that line from reply
context. As to local_stime - how could we possibly set that, when we didn't
get through init_platform_timer() yet? Leaving it at 0 is the correct
match for setting local_tsc to boot_tsc_stamp.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 07:30:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 07:30:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309674.1580729 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNn06-0001qt-Pe; Fri, 15 May 2026 07:30:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309674.1580729; Fri, 15 May 2026 07:30:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNn06-0001qm-Mj; Fri, 15 May 2026 07:30:26 +0000
Received: by outflank-mailman (input) for mailman id 1309674;
 Fri, 15 May 2026 07:30:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNn05-0001qg-C4
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 07:30:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNn04-00CNoC-6x
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 09:30:24 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06cb8f-e002-0a2a0a5209dd-0a2a4507dfae-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 09:30:24 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06cb83-229c-0a2a45070019-d155802bb09d-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 09:30:11 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-48d102471a4so86411965e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 00:30:11 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48febe60fc0sm9009315e9.21.2026.05.15.00.30.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 May 2026 00:30:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778830211; x=1779435011; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BfOK+bhxZjNapCb9g2TOVWIza5uiHrUiHeNlgjoDuUg=;
        b=Zvkp4kloC9etDSZbTVZ8+J2WqPbCneMezIWz1NwRfoX03DCCooKJOGIB3p83ZLNmkE
         6YqXhFcbACiFJ4oBQCt98ILVSgvSn3BSC+UZsSsH141DMPJ5AkUKIyWIpKNyi9KIjNFE
         Z4a3OzJgtLVG/+kmnq+r9GEey1oyT1hYg1Pe+i8dUBLT58pT+cnF4LapoWXJntCrz28L
         WD2xsXOZox4HKYUY8Rl9fXas+FcXMLrSKO4vj5K6ZQaunaAX373NpBpMuG79/Vp9Bf6Z
         G3FvkkOM4QptJ2/D0R9f07eP6uFg90MCbeHN1qxEG6X0jaASRi7+6qPxqGWbNqMgx7h7
         NBDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778830211; x=1779435011;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BfOK+bhxZjNapCb9g2TOVWIza5uiHrUiHeNlgjoDuUg=;
        b=M5W1kSk1C3Zr4FMM2C85DbCXdXiOUumKCVMAWN9ToNaPivj0iz/f02oF01CqtqzU7o
         8xfBSXpq+neXItUMq+6B4b3Nnm3524XE0mDbLxNy5IJ1aeNzgMXhSWHOMnjIqh8ACE8N
         p6tVp3kG2kMxcwEmVtYp6x54/FZX1r/k/wQJNPB3/uxvNPLl36wdInzIJvXAdrNlfxD1
         mtqiEZYl3fYH2Ox851W+rv7UdNkVmD4hsri8fEdLtYiXjJ4oHpjjPD45C2VaLqrV9rpL
         Kuc+BNsDy5U/Y6Hb9vtHuhjM3ZBeJDykHs02ZXM2bFSI5fiiFYimdEwWm1bWiFnpgXUy
         u4XA==
X-Forwarded-Encrypted: i=1; AFNElJ9PN1eYyIaTld7v2/TJG4CZv4f0zFqk45iddifKh348UExwWnay6VVTAsNMGXUMtXwG0IofmQyQUT8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIcvGcRiFQ9UtWmgKlnfR0P2G30Y0pw3Uqgu4AyQWi655Fz5gm
	L5eP01Zg5v4Gla6UK1RME02C9jIMHC0T4K3hoOCYT+77bTrpCX/CPkL4vJMfrRhPyA==
X-Gm-Gg: Acq92OEpaU10RMl9dbDE8VCRvJwN74G2X0WNGyl19pJClkDFbihMPypa+SYJjF48GyM
	NbvUSW+HsPSkxIY+wmUjzrGpS9p1bgvZSFUy0L/a3Gu+pfAA4EGa//1m1PsDI3n3sd9sktdO0IH
	7AwcB4aVb+AIjGgLMkgMBvNvVWyNY+jcQXK5S+2c/67Ktvzst1ZoJvPt4ee9jY8U8+9EsiQ3twh
	isq/uh0SPBCAL5DlQZRPz7nWPzVYcidVMBWe9TAkRKNahuivxdVhDB1tl98LzJGbLvwyiCCMjWM
	t1aj1w4MfEJCTcfK7XCFxehhfrtu8RV26sYKuk5ZX8gIOl4cxdurvnwuiwAv8mbcAdRHoPpzV6J
	Gany57Bnhg5w2VOuvU7XDw2uFy83pDgCTWF9FYoNBsOEaLR6bctbQMQIvGctgHzWhoGUV3TEj0N
	mT0/CFo92ucYK28bHvpmPe8+s0vUnY8iyVX1t03ZLQom5xRaULrsSQz5Q8L4Tj+OoopGyO8Aw2O
	ve5k/tWjT3JLM1/b2B3MlEQKg==
X-Received: by 2002:a05:600c:3b0c:b0:48a:5821:5ff2 with SMTP id 5b1f17b1804b1-48fe60d55f9mr37263405e9.8.1778830210785;
        Fri, 15 May 2026 00:30:10 -0700 (PDT)
Message-ID: <3e17e617-a695-4294-a4a9-a591f6417567@suse.com>
Date: Fri, 15 May 2026 09:30:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/emul: Adjust handling of CR8_LEGACY
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260513171553.1772095-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260513171553.1772095-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778830211-08B60C48-28D0073E/0/0
X-purgate-type: clean
X-purgate-size: 1070

On 13.05.2026 19:15, Andrew Cooper wrote:
> The CR8_LEGACY feature was introduced in the K8 Revision F.  It doesn't exist
> in prior revisions of the K8.
> 
> Furthermore, from APM Vol2 3.1.5 CR8 (Task Priority Register, TPR):
> 
>   The AMD64 architecture introduces a new control register, CR8, defined as
>   the task priority register (TPR).
> 
> Additionally, from APM Vol3 4 System Instructions MOV CRn:
> 
>   CR8 can be read and written in 64-bit mode, using a REX prefix.  CR8 can be
>   read and written in all modes using a LOCK prefix instead of a REX prefix to
>   specify the additional opcode bit.
> 
> i.e. the LOCK prefix serves as an alternative encoding for REX.R.
> 
> Switch decode_twobyte() from += 8 to |= 8 to better match the description
> given.  Other indications that the encoding isn't additive are that the CR
> intercepts stop at 15, and that LOCK MOV CR8 generates #UD rather than
> becoming a CR0 access.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Fri May 15 07:59:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 07:59:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309691.1580746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNnSW-0005xA-9u; Fri, 15 May 2026 07:59:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309691.1580746; Fri, 15 May 2026 07:59:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNnSW-0005x3-6z; Fri, 15 May 2026 07:59:48 +0000
Received: by outflank-mailman (input) for mailman id 1309691;
 Fri, 15 May 2026 07:59:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNnSU-0005wY-OM
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 07:59:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNnSU-005Zgp-4I
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 09:59:46 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a06d26f-bab6-0a2a0a5309dd-0a2a4507881e-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 09:59:45 +0200
Received: from [52.101.43.21]
 (helo=SJ2PR03CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a06d26f-229c-0a2a45070019-34652b157b1a-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 09:59:45 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB6627.namprd03.prod.outlook.com (2603:10b6:806:1ca::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Fri, 15 May
 2026 07:59:41 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.012; Fri, 15 May 2026
 07:59:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HlnmopiTd6yu57KLxjwDvZmdopvoKHVLDHHZE6Zp3X5zPaYFc3Ji22RmseYft758EulGt5W/6yIQpPgxfaDqwuJFN75MCSX2YlN+zv54ab6Asn6XckYRWXACGtMrWoeWVUdsFuw3aU7/TuUL+zncIQQYZtfmGMCRkTpbuSdPJ9Z77G9SizWERQ5vVaxtjNK+5tYkOW5O8EyVJMcjjhw94kVKuSu+tR24v0tqAHkTXxEniFjF4qx3REt7BOZdRXvjgMbRPlgvkMroFL2+IYO2ExVWBcr2PnQoPM8oZ4D004RCiYte3gWUMy1j8G3TWkQgjSpUTu5QHzOJhworxOqAkA==
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=d2iTgaOOYh6nVVU+jEHVD5X5YZ+joExyDXAhlMHi/jo=;
 b=IcF4U3OHLggzpRVj+ZU0dF3zrmRlINilzCVVDso9GJh92y1Rq79l+w/z7g3G28zx4+EvCOtxv0SZV0a+MKdJscsYQg4t/iy3NbQLH8BGjaGZ7Wecch5Hqbvjt9jfW1EXICgmb4i9yjT79/F3vqX3PKOxCXnYNis+f6qFlAwHLQOO87qh3R3r7s+w2Izzvzwk4yYvBKtIOdatoq1XwxcsljBCMcHnb+tRhn1TM483Hjcz+ucdoojCIDFTs2JTC3LELsJcar37AA2WqrUOKjm5gilJ5vTbiwoulKH+fdVEqkE0JN9G9jeXLGsmmsWe+bntHQnrQJcrfJ6Lx4PZ4nz97A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=d2iTgaOOYh6nVVU+jEHVD5X5YZ+joExyDXAhlMHi/jo=;
 b=f8s2m5zW7GOjqxmj5amGEJUQAEIIglH5EWCKmV52RAUmW/IX8u7NaBgt4hrAMy4KzyNNCAnbwt+cyjPAHfxUYFALNbF5xe8RI8QrnDThVkCULIvezLp2Ufy97X/nLck5aXfyPGLAWm7E9jxOmJxETsPmMRdsnm5veW3SuDPhWUY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 15 May 2026 09:59:38 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH for-4.22 v2 7/8] x86/mwait-idle: Add cmdline option to
 adjust C-states table
Message-ID: <agbSanNokXLVu1o1@macbook.local>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
 <8c46fedd-f1f3-4cad-91fb-1b3b8d58db50@suse.com>
 <agXns5dpu-X5rspi@macbook.local>
 <5fdd68ea-a413-4f8e-a50a-b0d7d821e904@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <5fdd68ea-a413-4f8e-a50a-b0d7d821e904@suse.com>
X-ClientProxiedBy: BN1PR13CA0023.namprd13.prod.outlook.com
 (2603:10b6:408:e2::28) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB6627:EE_
X-MS-Office365-Filtering-Correlation-Id: 1a911582-24b6-4dac-0ef4-08deb257eb2c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|56012099003|22082099003|18002099003|11063799003|4143699003;
X-Microsoft-Antispam-Message-Info:
	vxtgVb7PyFG1/A0EWYWts39ngAq+y3i+m9qdGgSWV1DCoxjxJqUX+DX6iAAWmnfzI/bX5R8nNNRCD7B9hS63TFiwPZI7iElFEMc780B/YhuhS3kMv+pMzqoaKCPA8rMEJOhTwyS3/wgxUYhdZ50cQi43saTmkY19UKAs8JHtsz0cHJv0OgkO6QcLAtcA29f5YoGYIAaIwjmbuIAbFSB/wf9SBm2VctSIrlR3m66LKXDiCxdvL57U8tqQpHiuIqds6K5inNIweQQkzjmNRDlZ1TG/kgSZ5ToaJOwp03VcaaKth49R9PR4UL2x2q6Gg8GERj0aYRak6ZCxhcFR7/V1zakcvO+VObiy5yO5QYKxxh33Qpb7SZN+07lr3JpBgIpzQYbqDypJoD0mHnB6/nTtW/637UQnwnQy6o/hyJ2cQ6oZR+ukS4UcjVarCYlb5kiHVBomOtE4BBukc+3qQKEhc3WSx3Lto1bUuCNeQsx70TNF5hG+E9si7Q4m3j2UQhIHKM50RgV/hzYVwZ/Vz2ArAVz6hz5JMzIYgWAaR7GtgqJfydCZdCZFrJ6mQovB01+laVNbWtnvhELkvF+WDHIYjc3kdad+waM01ekzaGbF7OZQUivcB0Lp6Ghdx+0ywCzvs8OqkVVYQ7YYU43tnXE8lA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(56012099003)(22082099003)(18002099003)(11063799003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VXJVZ05xc0I3SG4zOWdrdGFHbW0vSk42SkZSL3ROTHJxa0xYQ2Y0RjVDcW9u?=
 =?utf-8?B?MVNwT2VLTnZzV21jYWdtaGI3cFZKSTMwWldEYlpzVUtQcFBzZnB1bWtWWUxL?=
 =?utf-8?B?WWFSTnd3NGo5Z3lpZVhsaUtyK2huZTA2NmVxK1pUUUJaZkVMSUZoZ3pWbndq?=
 =?utf-8?B?bHd5ZjdhNHB0T3R0MzNzeDZ5aEZjdFZRMWgybnFnRUVsZGhLNEg5MHo0eDZu?=
 =?utf-8?B?ZlE3ckg4d1VMemEzNDFoSjd3QnFzdW5WQlBMUCtUdE1GaDlCYTBQeDlrODY5?=
 =?utf-8?B?WG1zOE9qcDFOK09GNUlwNmsrWXBlOVFLaTM2eUlRbHFlTHVNdHRrMzFKQWpD?=
 =?utf-8?B?OE1ZeS9vUytwaitHNjNQcDk3aDFHUGQ4U3MrZGU3UUtMTjEyYlUwTkkzbDk1?=
 =?utf-8?B?RXl4S29MK3hKamxZUnlIRGZKdHArYXIrK1B0ckJKUDZta0xNd1dSVWtWbVV2?=
 =?utf-8?B?NVkzaFkzd0lrbjk2T1JucWR0dy91T29Pd0F4Wkp5TjF3OTJwd2IydlAxV2JX?=
 =?utf-8?B?MGNBN2F6LzFjTHpPeWhENFNYZXEyL09FTFllMmozeEdLc3dERk9uditFc0Ni?=
 =?utf-8?B?TUlNcCs1cVZPQW5wOGZhUTJmOXc2UUUvd0Q1dVN4WjR1cUJDZE9OdjIxSmcy?=
 =?utf-8?B?VUNXMmh2ZFJzdWlJL3NIMksyQTkvSnoyazFMdmNkbElzdFVlSDZ1TzFWOUE4?=
 =?utf-8?B?WURwaHNhVzg3SjVlRlVROVFML3NCT1pIR3Mrdk5lTStHV1dOblhIYXNQeFhW?=
 =?utf-8?B?UTJsRllhRm9TNjBlV0hTeEpqOXFMdjh6LzhOSy9PNFphN2RtakZobGZOcjVS?=
 =?utf-8?B?WURYS1FLa0FFanI0OW80Yk1BWng5cjU2eWdsUVNHNkQ2N0ZhcnlGR29VanFa?=
 =?utf-8?B?RkNoVTdNWGJ2ZWVBUGtOVmYyZXZycGdSbE5ZSFpsYTBNM0hXcFd2L3FuZWtn?=
 =?utf-8?B?WVA4YmQ5ajk0dGlCMTJtUU1lWU42TC9VVlF5dmhnVEcvV1JUakRLNE9TbW45?=
 =?utf-8?B?Qm00WXJWMnFtMXFHUGt6QXZPbjJXTzdCVGpJc2ExTHBubzROYVBpSEgxeWNL?=
 =?utf-8?B?TCtEZFJ4UGt0cnhTbjROSWExUFNvaVI0U04xWFdjSHVGaXAxRVF3cGc2MExD?=
 =?utf-8?B?MXF2NHFXSjVaeFZKUEFOVzdBVGFndlh5UkRURlB3eVBXa1Vhb1dpU2RLMkxX?=
 =?utf-8?B?YmxaOXVFUEprS3V2R3lvZXpIUUlJYzBxeXk0ZlhoaGNPM2xWa2VydmljbXBH?=
 =?utf-8?B?eTlkQXdlZnY4eGZrN3NuY25Rb2JleDhGa1VJUzVEL0cyLytJUlJQd1BtUDk3?=
 =?utf-8?B?Tm4zOGJwMUdvNjN4dkVpa216SFV1SXJnc3d6alBVb2tjdXVuMkx0L1VLWU5t?=
 =?utf-8?B?R28wbmJvMkFzMGNEUnZ4YWVFamI1bmpDcEMzSXl1TkRXNHpDNHlNdEZWRGlL?=
 =?utf-8?B?TTE1N3ZGdEN3dkFKYmxlK1ZsMjBlNWtRYzh6MEJuU1l5czlkRHB6TjBhRUdH?=
 =?utf-8?B?c0g4elEzQllTcjZwb1JqUEszaTl2R3BCeS9UOGRiSGpCTmgxN2V1WFUwcFZS?=
 =?utf-8?B?MnJxeXo3SFkxaVFUK0FoSU1hUzJmSmNFUmNIZUR1WGF2bnVQZVhrY0l5QUYx?=
 =?utf-8?B?WnZYNXJ5M1h4MjQwSTdObFlrV1hudzJubGd5aXl0WXRYTTg3ODBMMlZIbUd5?=
 =?utf-8?B?clFSVXlmaG9LdW9hNzBQMlp3TTRKWUo0cGdoenU4ZXRLK0xGbGlVaUw5R2tr?=
 =?utf-8?B?cEQ4TDZiNkNVN3k2UkVEbFdHRS9MQVZQNjBHVUpEeCsvVGZzK2JQQnZZS2Rw?=
 =?utf-8?B?QnM4YWVma24vYjAxUDUrV0ZMOENjVG1OK3NnUVNLa0Q3dEtrL05idWlQb3I5?=
 =?utf-8?B?eVRiSVJ4amE3b2RlbTExemx3SlIvRStYeVFIcHFEc1UrZ0plRUxJMjJVcFlo?=
 =?utf-8?B?dTZLNDdjeFBnUlBVWnFGMnNwTTYzelFoeGx6TzRqeWU2V2tadmNmb0kxcHVY?=
 =?utf-8?B?eW55NW9oZDBlYnJJVVV4dVFFR0dzZ1RnanZwRy8xQkQzWENSR1R3TndOc3pw?=
 =?utf-8?B?SnRsTXpranU2YzJJdXhlcU9ON2hHZENnMjJPQ24rTTUwLy9SbVFZcFlrcVpE?=
 =?utf-8?B?RVlheFJpTFE5b1FSWm9mUHptUEEzWGZqYmdhdHhaM0NEVXBwSUwzQnhybDdQ?=
 =?utf-8?B?QnJCczhFeExNQUdPZ0JwejU0cXo5ZjlXNVdienFrK3p1RXFNNDVOSjhnQmRy?=
 =?utf-8?B?bHhyemFqRmlncDZTQitITW1GQkpyR080Q3FzaHBzQzBkcG1DZ1lOVFl5Tk1j?=
 =?utf-8?B?b3hoQUFVeC9ZRXdZMEFTZlo0bmViSFlxUzRZZUpVaGJOOGsvR3VCQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1a911582-24b6-4dac-0ef4-08deb257eb2c
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 07:59:41.3488
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: oX/lXYmAUfUPvl+YxPqCOjbNWOaSYdozEqR9GHdVCx+tgd23+fFsndiP7S+hjTKYpfDfhIegfi70OKacVPd/jQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6627
X-purgate-ID: tlsNG-ef75cf/1778831985-0B77AC48-680304CB/0/0
X-purgate-type: clean
X-purgate-size: 6734

On Fri, May 15, 2026 at 08:57:45AM +0200, Jan Beulich wrote:
> On 14.05.2026 17:18, Roger Pau Monné wrote:
> > On Tue, May 12, 2026 at 05:38:08PM +0200, Jan Beulich wrote:
> >> From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
> >>
> >> Add a new module parameter that allows adjusting the C-states table used by
> >> the driver.
> >>
> >> Currently, the C-states table is hardcoded in the driver based on the CPU
> >> model. The goal is to have good enough defaults for most users.
> >>
> >> However, C-state characteristics, such as exit latency and residency, can
> >> vary between different variants of the same CPU model and BIOS settings.
> >> Moreover, different platform usage models and user preferences may benefit
> >> from different C-state target_residency values.
> >>
> >> Provide a way for users to adjust the C-states table via a module parameter
> >> "table". The general format is:
> >> "state1:latency1:target_residency1,state2:latency2:target_residency2,..."
> >>
> >> In other words, represent each C-state by its name, exit latency (in
> >> microseconds), and target residency (in microseconds), separated by colons.
> >> Separate multiple C-states by commas.
> >>
> >> For example, suppose a CPU has 3 C-states with the following
> >> characteristics:
> >>   C1:  exit_latency=1, target_residency=2
> >>   C1E: exit_latency=10, target_residency=10
> >>   C6:  exit_latency=100, target_residency=500
> >>
> >> Users can specify a custom C-states table as follows:
> >>
> >> 1. intel_idle.table="C1:2:2,C1E:5:20,C6:150:600"
> >>    Result: C1:  exit_latency=2, target_residency=2
> >>            C1E: exit_latency=5, target_residency=20
> >>            C6:  exit_latency=150, target_residency=600
> >> 2. intel_idle.table="C6::400"
> >>    Result: C1:  exit_latency=1, target_residency=2 (unchanged)
> >>            C1E: exit_latency=10, target_residency=10 (unchanged)
> >>            C6:  exit_latency=100, target_residency=400
> >>                 (only target_residency changed)
> >>
> >> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
> >> Link: https://patch.msgid.link/20251216080402.156988-3-dedekind1@gmail.com
> >> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> >> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 111f77a23348
> >>
> >> Add __init to get_cmdline_field(). Put cmdline_table_str[] in .init.data.
> >> Other adjustments to fit our env.
> >>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> > 
> > Acked-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Thanks.
> 
> >> +/**
> >> + * cmdline_table_adjust - Adjust the C-states table with data from cmdline.
> >> + *
> >> + * Adjust the C-states table with data from the 'mwait-idle.table' parameter
> >> + * (if specified).
> >> + */
> >> +static void __init cmdline_table_adjust(void)
> >> +{
> >> +	char *args = cmdline_table_str;
> >> +	struct cpuidle_state *state;
> >> +	unsigned int i, state_count;
> >> +
> >> +	if (args[0] == '\0')
> >> +		/* The 'mwait-idle.table' module parameter was not specified */
> >> +		return;
> >> +
> >> +	/* Create a copy of the C-states table */
> >> +	for (i = 0;
> >> +	     i < ARRAY_SIZE(cmdline_states) && icpu.state_table[i].name[0];
> >> +	     i++)
> >> +		cmdline_states[i] = icpu.state_table[i];
> >> +
> >> +	state_count = i;
> >> +
> >> +	/*
> >> +	 * Adjust the C-states table copy with data from the 'mwait-idle.table'
> >> +	 * module parameter.
> >> +	 */
> >> +	while (args) {
> >> +		char *fields, *name, *val;
> >> +
> >> +		/*
> >> +		 * Get the next C-state definition, which is expected to be
> >> +		 * '<name>:<latency_us>:<target_residency_us>'. Treat "empty"
> >> +		 * fields as unchanged. For example,
> >> +		 * '<name>::<target_residency_us>' leaves the latency unchanged.
> >> +		 */
> >> +		args = get_cmdline_field(args, &fields, ',');
> >> +
> >> +		/* name */
> >> +		fields = get_cmdline_field(fields, &name, ':');
> >> +		if (!fields)
> >> +			goto error;
> >> +
> >> +		/* Find the C-state by its name */
> >> +		state = NULL;
> >> +		for (i = 0; i < state_count; i++) {
> >> +			if (!strcmp(name, cmdline_states[i].name)) {
> >> +				state = &cmdline_states[i];
> >> +				break;
> >> +			}
> >> +		}
> >> +
> >> +		if (!state) {
> >> +			printk(XENLOG_ERR PREFIX "C-state '%s' was not found\n",
> >> +			       name);
> >> +			continue;
> >> +		}
> >> +
> >> +		/* Latency */
> >> +		fields = get_cmdline_field(fields, &val, ':');
> >> +		if (!fields)
> >> +			goto error;
> >> +
> >> +		if (*val) {
> >> +			const char *end;
> >> +			unsigned long n = simple_strtoul(val, &end, 0);
> >> +
> >> +			state->exit_latency = n;
> >> +			if (*end || state->exit_latency != n)
> >> +				goto error;
> >> +		}
> >> +
> >> +		/* Target residency */
> >> +		fields = get_cmdline_field(fields, &val, ':');
> >> +
> >> +		if (*val) {
> >> +			const char *end;
> >> +			unsigned long n = simple_strtoul(val, &end, 0);
> >> +
> >> +			state->target_residency = n;
> >> +			if (*end || state->target_residency != n)
> >> +				goto error;
> >> +		}
> >> +
> >> +		/*
> >> +		 * Allow for 3 more fields, but ignore them. Helps to make
> >> +		 * possible future extensions of the cmdline format backward
> >> +		 * compatible.
> >> +		 */
> >> +		for (i = 0; fields && i < 3; i++) {
> >> +			fields = get_cmdline_field(fields, &val, ':');
> >> +			if (!fields)
> >> +				break;
> >> +		}
> >> +
> >> +		if (fields) {
> >> +			printk(XENLOG_ERR PREFIX
> >> +			       "Too many fields for C-state '%s'\n",
> >> +			       state->name);
> >> +			goto error;
> >> +		}
> >> +
> >> +		printk(XENLOG_INFO PREFIX
> >> +		       "C-state from cmdline: name=%s, latency=%u, residency=%u\n",
> >> +		       state->name, state->exit_latency, state->target_residency);
> >> +	}
> >> +
> >> +	/* Copy the adjusted C-states table back */
> >> +	for (i = 0; i < state_count; i++)
> >> +		icpu.state_table[i] = cmdline_states[i];
> >> +
> >> +	printk(XENLOG_INFO PREFIX
> >> +	       "Adjusted C-states with data from 'mwait-idle.table'\n");
> >> +	return;
> >> +
> >> + error:
> >> +	printk(PREFIX
> > 
> > XENLOG_ERR ahead of the prefix maybe?
> 
> I did already raise the level from info to warning, compared to the Linux
> original. I didn't want to go yet farther with this, hence why I'd prefer
> to leave out XENLOG_* altogether here.

It seems like the outlier to me.  All other printk() instances in the
function use an explicit prefix, so I would think it might be best to
also add an explicit prefix here.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri May 15 07:59:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 07:59:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309690.1580739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNnSO-0005is-4K; Fri, 15 May 2026 07:59:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309690.1580739; Fri, 15 May 2026 07:59:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNnSO-0005il-0K; Fri, 15 May 2026 07:59:40 +0000
Received: by outflank-mailman (input) for mailman id 1309690;
 Fri, 15 May 2026 07:59:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wNnSM-0005if-Km
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 07:59:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNnSL-00FD96-TZ
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 09:59:37 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a06d267-2eae-0a2a0a5409dd-0a2a4509940c-8
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 09:59:37 +0200
Received: from [209.85.167.52] (helo=mail-lf1-f52.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a06d269-2497-0a2a45090019-d155a734d4cf-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 09:59:37 +0200
Received: by mail-lf1-f52.google.com with SMTP id
 2adb3069b0e04-5a8721851e2so9790167e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 00:59:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1778831977; cv=none;
        d=google.com; s=arc-20240605;
        b=CYMPQ6cwoHOhJ8YhG/hLCqp9Ccqt1/IlcjjZGI2OhgB7REcnZLPWTlmqgZBT60f90/
         eBO0Bo7foQ+HSxfqn/kRlkkJqtERH1WpuFZlDOt0KaAr0WGO6hiAtrx0h26KI8jpCkML
         9k0dYObYUsSiXbAj6Vv2GEaf58P+LVbjKzVaVqYyv42dRXZUGl8cM8j7rbfJFtUDbah7
         16JWn56eQrYWb8KP7dbO2/HKtTTqrNVrHNAh4CDPkDSwU0yCABkZ2iHz9+yWdDyfdzPn
         zLpINPYGYtkgbqXKFlJmPsA/rtZ1+bAqLfDh+1Vsakj73PVjRO91QMwZCoXyyMYEERhJ
         Lq/Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=Aj5jvFEFmH+xjzvdxI8gC16245Xuwn0Bz0BnEbU1mKU=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=ZEDlPIuIsGb1e6mwnVM83ExHl8pQ37Go4NgAMQPEOtoHkX2OhbVeUCBlmQay+3a7pA
         91lgZl30IRg0FRIbpB53cg0/M6jd7FUozoTqq03BhLdw0aePoOScypxdbmOuQq/OfHDP
         4EYTozpTIZ540ASVg3nncdN+Gsj7YbsSLMBnJfHfvudZJWKdL+VQdFb/eT7tF4gFwDRU
         YVc6jRITni9k8BaV5ugOppUF+18+E3ftRsXWQnu/Ba9bnyUD8EdZMeJUaAulTzV9PNaQ
         gwiiTv9rQbm4SVvn483bmLNBCD3GWvBCvPOJafz8MBwE3pIGEoBJUs+NTkgkP1ROxotV
         4Jeg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778831977; x=1779436777; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Aj5jvFEFmH+xjzvdxI8gC16245Xuwn0Bz0BnEbU1mKU=;
        b=fZxBV3fr0snY3lBzPbBThAgAJnr11kuAL8KqsVya+L3xnY8rHyASFZlgY83C7NwOLd
         WA7c0UdQmetTM9dnGTmK+dlukuOf24O1vCjyEUx4nvfqp4Inh1OIdfDGsSOFzrfyw/Da
         Xv9Zes/nwincbZbi4XIWcf19os4Y2O/KIqi/XASHE18eg60RVfrKrdPW05rFEHx1NQr0
         bHXQWwSvCF0BBG68lZ73SI7t2twRorDyun5ktQusWtyFSvTuTOfhdURBzh8HnVdxzxhA
         BD9Nr/seced+W9ZYP6n+5dsXtOXZkRcd2CHT3mmPCnsOec3It6Zqo9SrKxMYjccBDAl5
         8X7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778831977; x=1779436777;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Aj5jvFEFmH+xjzvdxI8gC16245Xuwn0Bz0BnEbU1mKU=;
        b=FCaZxBDrZcnGA/9If3n9+ILjy9UMu8kCpkgOdH14o5SaqeyFwFTNgz1aKBWk1K3Vly
         2wn3jpJiZvFSsCZcp2IZxjxFkSHRwMQ6r85MdtDhljJazEnV7yvDDYIa6un2lDRugx6x
         /hdrhmoFU4E+vTjvY0SX5Lb7ZYgYiyZzrgH4A44JJ3rTj3oSGnzw5FZrBr5rGlxC+qPT
         iHYwyp409LnuXcBKjzbbeCaWmnFdyWJSy2MRL8jD00dh+prmQIBRJcHZKq+vnE1I/E9S
         y0HTf493AnZ7K9spKQFqfBF2n78eTsNHDEHG4jqzmBJaLnFBc1ZgnwnNCWpSaNmJA600
         nJIg==
X-Gm-Message-State: AOJu0YyqbP9XWohGaXS0dztNNwxn4lkWob9j04Sm0l7tzcmZgSO73EXJ
	o6BckC39uqsDSBhhoGbA5u/zO5kfkVokL1q1uOtRt0AF8mCIC3j/gRq9aiUdgeuHf2DgUWwRPUY
	S3Z97VL0KW/Kx5NE7caKK4mClsYahoo0=
X-Gm-Gg: Acq92OE3p9Abf1h5nLNbEheoWC6N7tw2Sw25L75fB3fcLQXDDlFQHjJrZHIh3JmhVCr
	l41q3tMdyMEvRqgm3ynOqbjd5oAM9sNRVOXXE2DYgzQWHHMZVa4SaatfvqiV7UfSaQdghlmWF0p
	7PECj/rs6Sog7xV/5lyJvk4DCjWIhBikBzCwYOjgaQc8Bda7ZTtzSLFnL0t2u5aGaGMwzssd1WH
	CQSLHgSK41fSkiSIhey3uS1w/O7ni3JScCBSzlHdSSbaS+XPmZ4vLekY/kqUfE5AF7X2mxFZwen
	ccbl
X-Received: by 2002:a05:6512:3c97:b0:5a8:57de:e6c1 with SMTP id
 2adb3069b0e04-5aa0e73ca79mr821694e87.7.1778831976680; Fri, 15 May 2026
 00:59:36 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778605274.git.mykola_kvach@epam.com> <613c8d67a66924ea62c2436dac14708d939f6784.1778605274.git.mykola_kvach@epam.com>
 <8E531A25-5AB5-41CD-AB61-C426C58C8E1C@arm.com>
In-Reply-To: <8E531A25-5AB5-41CD-AB61-C426C58C8E1C@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 15 May 2026 10:59:24 +0300
X-Gm-Features: AVHnY4JzqS1e-GDRhrtCpflAyrSxxjQjzE7jFpqNOb8CSWUw8EOHczoJG15eeNQ
Message-ID: <CAGeoDV8aKWLKVZN1oz4cUoaZbXX39q4gHgOp=w=0zPhhaN311A@mail.gmail.com>
Subject: Re: [PATCH v9 02/13] xen/arm: gic-v2: Implement GIC suspend/resume functions
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-bad1c0/1778831977-88D76A53-50F340EA/0/0
X-purgate-type: clean
X-purgate-size: 5207

Hi Luca,

Thank you for the detailed review.

On Wed, May 13, 2026 at 5:09=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> > +
> > +static void gicv2_resume(void)
> > +{
> > +    unsigned int i, blocks =3D DIV_ROUND_UP(gicv2_info.nr_lines, 32);
> > +
> > +    gicv2_cpu_disable();
> > +    /* Disable distributor */
> > +    writel_gicd(0, GICD_CTLR);
> > +
> > +    for ( i =3D 0; i < blocks; i++ )
> > +    {
> > +        struct irq_block *irqs =3D gic_ctx.dist.irqs + i;
> > +        size_t j, off =3D i * sizeof(irqs->isenabler);
> > +
> > +        writel_gicd(GENMASK(31, 0), GICD_ICENABLER + off);
> > +        writel_gicd(irqs->isenabler, GICD_ISENABLER + off);
> > +
> > +        writel_gicd(GENMASK(31, 0), GICD_ICACTIVER + off);
> > +        writel_gicd(irqs->isactiver, GICD_ISACTIVER + off);
> > +
> > +        off =3D i * sizeof(irqs->ipriorityr);
> > +        for ( j =3D 0; j < ARRAY_SIZE(irqs->ipriorityr); j++ )
> > +            writel_gicd(irqs->ipriorityr[j], GICD_IPRIORITYR + off + j=
 * 4);
>
> apologies for spotting these only now, in case gicv2_info.nr_lines is 102=
0,
> here and below for GICD_ITARGETSR we are going to save also IDs 1020-1023
> which are reserved.
>
> Could we assume irqs->ipriorityr and irqs->itargetsr have the same size a=
nd implement
> some cap logic which might cap the last loop (eventually):
>
>     for ( i =3D 0; i < blocks; i++ )
>     {
>         struct irq_block *irqs =3D gic_ctx.dist.irqs + i;
>         size_t j, off =3D i * sizeof(irqs->isenabler);
>         size_t nr_regs =3D ARRAY_SIZE(irqs->ipriorityr);
>
>         if ( i =3D=3D blocks - 1 )
>             nr_regs =3D DIV_ROUND_UP(gicv2_info.nr_lines - i * 32, 4);
>
>         [=E2=80=A6]
>
>         off =3D i * sizeof(irqs->ipriorityr);
>         for ( j =3D 0; j < nr_regs; j++ )
>             writel_gicd(irqs->ipriorityr[j], GICD_IPRIORITYR + off + j * =
4);
>
>         /*
>          * GICD_ITARGETSR0..7 cover SGIs/PPIs and hold no state to save:
>          * they are read-only on multiprocessor implementations and RAZ/W=
I
>          * on uniprocessor implementations.
>          */
>         if ( i )
>         {
>             off =3D i * sizeof(irqs->itargetsr);
>             for ( j =3D 0; j < nr_regs; j++ )
>                 writel_gicd(irqs->itargetsr[j], GICD_ITARGETSR + off + j =
* 4);
>         }
>
>         [=E2=80=A6]
>     }

This was intentional to keep the logic simpler.

For the 1020-interrupt case, the extra word would correspond to
interrupt IDs 1020-1023. My reading of ARM IHI 0048B.b is that this
is architecturally harmless: section 4.1.2 says that reserved
Distributor register addresses are RAZ/WI, and Table 4-1 marks
GICD_IPRIORITYR offset 0x7fc and GICD_ITARGETSR offset 0xbfc as
Reserved.

Would you be OK with keeping this as-is, or would you prefer me to add
the cap logic anyway?

>
> > +
> > +        /*
> > +         * GICD_ITARGETSR0..7 cover SGIs/PPIs and hold no state to sav=
e:
> > +         * they are read-only on multiprocessor implementations and RA=
Z/WI
> > +         * on uniprocessor implementations.
> > +         */
> > +        if ( i )
> > +        {
> > +            off =3D i * sizeof(irqs->itargetsr);
> > +            for ( j =3D 0; j < ARRAY_SIZE(irqs->itargetsr); j++ )
> > +                writel_gicd(irqs->itargetsr[j], GICD_ITARGETSR + off +=
 j * 4);
> > +        }
> > +
> > +        off =3D i * sizeof(irqs->icfgr);
> > +        for ( j =3D 0; j < ARRAY_SIZE(irqs->icfgr); j++ )
> > +            writel_gicd(irqs->icfgr[j], GICD_ICFGR + off + j * 4);
>
> in the GICv2 specs the usage constraints
> of GICD_ICFGR says: =E2=80=9CBefore changing the value of a programmable =
Int_config field,
> software must disable the corresponding interrupt, otherwise GIC behavior=
 is
> UNPREDICTABLE"
>
> ARM IHI 0048B.b, 4.3.13.
>
> I think we should move this restore just after GICD_ICENABLER write, befo=
re writing
> GICD_ISENABLER.

Good catch, I agree.

I will move the GICD_ICFGR restore after the GICD_ICENABLER writes
and before restoring GICD_ISENABLER, so that programmable Int_config
fields are restored while the corresponding interrupts are disabled.

I will also check whether it makes sense to move the other
configuration restores before GICD_ISENABLER as well. The spec does
not seem to impose the same strict requirement there, but keeping all
configuration restores before re-enabling the interrupts might make
the ordering clearer.

>
> And also the section says that the GICD_ICFGR0 is read-only.

For GICD_ICFGR0, my intention was to keep the restore loop uniform.
There should be no useful SGI state to restore here: section 4.3.13
says that SGI Int_config[1] is not programmable and RAO/WI, while
Int_config[0] is reserved. Also, the value written is the value
previously read from the same register.

So I do not expect this write to affect the architected SGI
configuration. However, if you prefer avoiding the write to
GICD_ICFGR0 explicitly, I will skip it in the next version of
this series.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Fri May 15 08:18:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 08:18:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309716.1580767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNnkg-0001in-4J; Fri, 15 May 2026 08:18:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309716.1580767; Fri, 15 May 2026 08:18:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNnkg-0001ig-1f; Fri, 15 May 2026 08:18:34 +0000
Received: by outflank-mailman (input) for mailman id 1309716;
 Fri, 15 May 2026 08:18:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wNnke-0001iV-ED
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 08:18:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNnkd-007mzf-Nb
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 10:18:31 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a06d6d3-2eae-0a2a0a5409dd-0a2a4505e1ac-8
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 10:18:30 +0200
Received: from [52.101.66.56]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a06d6d6-aaa8-0a2a45050019-34654238479b-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 10:18:30 +0200
Received: from DU7PR01CA0018.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:50f::12) by DB9PR08MB8339.eurprd08.prod.outlook.com
 (2603:10a6:10:3dc::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.19; Fri, 15 May
 2026 08:18:26 +0000
Received: from DB1PEPF000509EC.eurprd03.prod.outlook.com
 (2603:10a6:10:50f:cafe::cd) by DU7PR01CA0018.outlook.office365.com
 (2603:10a6:10:50f::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.18 via Frontend Transport; Fri, 15
 May 2026 08:18:26 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509EC.mail.protection.outlook.com (10.167.242.70) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.8
 via Frontend Transport; Fri, 15 May 2026 08:18:25 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by PAXPR08MB6669.eurprd08.prod.outlook.com (2603:10a6:102:132::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 08:17:21 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 08:17:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=C0v+zah5sym6RqmCYnsPjVM3Cb8im42IGWWdMOK6o60tJjA8/qvnCqGQp7+A1hCHpkMikdX2bz+aAchKfC+OEZezU0qn1o2kgd7+67cZNEG25mQODKtw7Au+stknN8ta09oX+GF2um6tvBlj0x84QHTe59MzxZ4xKJajPP1+4k5WxMkaY/ZwkGwr72i/8dbxfmUsh2Cb0SAlZUy0foa6gmyR/xe1iTHlvsAXG0JGBCBAWfkurY0ENN+4p2JLCrCvkFQnbHOENIH6f46b2+lgGEf2XTfNUHFFw92RiMobS4PxQgPHFdGGp1AcN3YkP535bE7hxf03Lx0CUkZvHlQ5vw==
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=lBJ1CBqWZ6QP29mG2UV2XsRVElOjeAkGM5wBc84baSA=;
 b=WNTsyesyxLehph8OnNbk0JrCkvlXN8hVawQF2rpePElwQUYTIWPI7enYahD+THG/xDu9OCEZOLet8BNKdupepI1aJO31dzHL4ZvxAnhm/hfVRnN+uGGiyhadZemzq6x2/k2IA6poN6/KobYu8jo8jYjIcta5NfBReT742bppdEYfE3O2yx5Gq1vS82pGPiUKhvDIfYVYBB+0KDptL79+YrC88L1e8m90qAxT/P68gfkBPj6FHt2AKxS6ySvEqxHNe/3V9E+fEWV5pRkxwcnbk8LyX4lYsIGqPC/iLjLydRPQu5FvMyjZlsXIlzwtYoLYGdybD26p3N4PQfmW7WkzHw==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lBJ1CBqWZ6QP29mG2UV2XsRVElOjeAkGM5wBc84baSA=;
 b=kYI/K8eA9tgQJEDz7CHCNBcfoRT9BYVEZo21KoFxVECdw4IdkPDI6BEju305LYofXOtJEMXx3FfaAjiUMTLtprLaMX8PxmBXXwBc7MhE0QUysxodxWFD+VtGOlcvVByY7Li1oiYRfdxo/fiyTZ53g7oplc0sg9a80tLlvGFGRss=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d1ViQGnIg2Lm8eLGQrsg9eU4TnTh0gnES3IqM7zQm5k1OCII479WdScBulfqlVOBdxNMJ5B2/Ar60zmwhY2gwPbR1N8CxAzRHvY4GhDQXWLbTeLkoE8N86WRqhhlzOr6U1F/lHJfgXgMZIa+dGsC0cgO8u5+ESjM5zlaENZsrhi1OeF0KeztwG0G6bnXUi8N32QNi0h3NhXVfnb5GuKL/VK9eeKA8Zn9Eh08fCen73q4LvQJhGyqO1xUUd9E2nU3L6XKwLFnZVjhw1WiA+rniyTymk5Lff4SyCXaD+UGmVZa0454JgebSfxuyVlOU8imEfd5dOOGmWuYD55nuw1New==
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=lBJ1CBqWZ6QP29mG2UV2XsRVElOjeAkGM5wBc84baSA=;
 b=Gf8oRLpTHXLUiOezthXxtYesmc2okZo228qy68aErQ9XlZNv7K6/Fv7sj+jdEr2ZcKHwFXYqLUpYess+iHHU99do+ZZExwO2IsaP6+HBwCcuJbDg2XTivKBLLN1AEWw7XnxJrV6my02wn63Cv2tlVKovXWat+LGkUZY31Wg05q6B+n551FPrXkyCx1+zN8B8iM7HH/C58ssa8wz+6kUKZUT8H/foThChaoWYL3vH9uQwLaCHD5hZPzp/T5deZfkA3t/kfsdaSnjpY8nKMqya9jdWsToQQOflmTW45AcY078FU3FVNIJ5D2vKq0K/wmFWHcOhlS9SPxKAD2PVkO+W3w==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lBJ1CBqWZ6QP29mG2UV2XsRVElOjeAkGM5wBc84baSA=;
 b=kYI/K8eA9tgQJEDz7CHCNBcfoRT9BYVEZo21KoFxVECdw4IdkPDI6BEju305LYofXOtJEMXx3FfaAjiUMTLtprLaMX8PxmBXXwBc7MhE0QUysxodxWFD+VtGOlcvVByY7Li1oiYRfdxo/fiyTZ53g7oplc0sg9a80tLlvGFGRss=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Rahul Singh
	<Rahul.Singh@arm.com>
Subject: Re: [PATCH v9 12/13] xen/arm: Add vPSCI SYSTEM_SUSPEND policy
Thread-Topic: [PATCH v9 12/13] xen/arm: Add vPSCI SYSTEM_SUSPEND policy
Thread-Index: AQHc5ENAW2MQeYfyn0+JFGvrwQ6/UA==
Date: Fri, 15 May 2026 08:17:21 +0000
Message-ID: <D25C699A-60F5-4B08-9BE9-823625082FDB@arm.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <06448a30ef6694a55ac85d4c8c78ca2d71342430.1778605274.git.mykola_kvach@epam.com>
In-Reply-To:
 <06448a30ef6694a55ac85d4c8c78ca2d71342430.1778605274.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|PAXPR08MB6669:EE_|DB1PEPF000509EC:EE_|DB9PR08MB8339:EE_
X-MS-Office365-Filtering-Correlation-Id: b911fc9d-d722-467b-0bc6-08deb25a89b6
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|7416014|376014|1800799024|38070700021|18002099003|22082099003|56012099003|4143699003|11063799003;
X-Microsoft-Antispam-Message-Info-Original:
 OAF96NgAX995URo5ITzT/kwm1xee6zCEsu3TxDzz44psBwjWTPqOXBaoUR4lJ7tqDGzlU+MKZHMloLLbhE2+hXPzF8s79u6qTvr81Fq2Uo/iuj8h9/WeZ1R5QIPSJw1xrAiWCjX1n6vBBN+XKj35H5Dg2hCm0tAMQldGTY1LSFq6b3vxKSHf3Ppx+zD/FQakpMdSG9CWI2K09El0xq49LK1MuaxUDT/mu/OXSUYdSS/pvObWLRSt9uSvMqxiMu8+WuI4/JOM2H9Tw7ecmyXR6kK3hnazg/nn926tIK8AwPTfI8RCDrsrH9uiQcTmhMCL5wQMcygddUrOYcrzTXEnTywbb7b3rUi2JRALV+GyQCxRmPMK7/SW7Qz6FcgXfdsqw++TSNs1kwWtdNv/pu4+SFSTLTQWxumTBXZ33E4ak56+WJ0xwc0CO3CXnEE3cn834UJHkrWxwMhRjUEZvCra8fwNkHyprJz90poZ05UfS6KTSAd+hu0N9GRhMmPnE8NiRlqRCYX+TCan/gh0uOKkKKySGOPNe7kAfu2BiAQwqnNHWvEzjtod9MxWRXovkxgEmkCmKnzkyijuoDe7HAWliRS1BWDxa4M0kiEIp7SGsUMJfV5gbSnv0yRhpjma8kLn5hygFMAZUy7XmuOTmiICczFpMclf/CNZELPx+l58OlQxu1lNqnUwv17JMAL/MyQxFJ9B3b57Ia6XAci4N+YIbPiEroNnCncfuSqr+zddXujRbclLXMiuTln8MjgHToxF
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(38070700021)(18002099003)(22082099003)(56012099003)(4143699003)(11063799003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <C9993FD59980614FBE6E37EB854A053A@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 nGxRkczUlsa0TBNPBHIhYmScjPRfxkGh704lYYjj0BKt3xFouPRU85jbgQFC/yw3dRtFga1btYn8UwWyekmjKwnB35HcjBqqBsNfUmTSSru3xDkXhSfQFurYWVBiwA9DWGCbe68QM4ub9Kbo89G2RpLUgUF6XX1QFDTKcMmJZq80Lokacqkj8ccKY6CS6YecY9RT4NIzEOQFHVF5QKoypw7/bH4KkzZ35Ec04jwXViHa+GE2J/Fb2nqJEE+i6agd9UlaMcJoD5DGQ9LG9UNErmk6HsioOI5Qtr+8Er+cDDOE8wn4HIbz0m06zbGpdMSvIoh37jCCFIPiElLi2OANOw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6669
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509EC.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	344c607e-403c-492e-e08c-08deb25a6341
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|1800799024|35042699022|82310400026|36860700016|7416014|376014|18002099003|56012099003|22082099003|4143699003|11063799003;
X-Microsoft-Antispam-Message-Info:
	lRNbIAiwH1TcHpoWA0/qugkVHabTD+34r3qWPsEJ4Ky5PKXZ8gym9a7kqsacxTTfc5lmscqIg0uoXnvKWbXiYZ76BZPEgSKrjPMk+QF3P1qrkIwCpQOge27Q5e/eXDKsPRYrvHK9pe4jqzdya+6AIkTVeB+jZVm/JTsM16BEAqaHPsVemGhANAWdqTl0U/WJUEfso8vujBUI8+FRJ7LOMyM0ZuVyHcn87ipOoPCHFnZE5dNukFknP5v7/iswh+4cOzrOjUOYAC+ojqdHcc1MR0gqrftGSsX93Kj8l5oYqk+8SHEKY/zqwQBoO5mDcsKS3PAydavioB2dSNQfun0vrbaBZL3REPpQyMxkOb+4988fV2aO/1gXdoWrVo8tXG/t9MC4Uv8tEAGj2mjGmr0H+Jmttdv612tNo8lkkInuzENH9bxeMqACb/PAdPjzSlyBJMXV4spmrABAivxc1C/SeiZPb5hmixAHox6boeUkJtfS/CQdeOdXXbQe/YBRCKsHMYaMvLvFNMe0lXIn3FkJ1sp2bktAEmlCRYdlcK9Ss+3A0FBy4Iemy/Z72sGnXoIL6eYvkvgaIlLwrSu2WtROnJwOSMAQrFldjlaCDxZP5sO3rfWYwp2oBGUc35aHcu1PXgi0V4zcRcVrtIOotElAkF4LgUS5te8FkJXazUDP3nmmc1OUQJaKuH5kCBL7KvzloKfLcZYHMg1mbg+AfXeNKCF+9QfOVp/pd6QFBcxU82E=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(1800799024)(35042699022)(82310400026)(36860700016)(7416014)(376014)(18002099003)(56012099003)(22082099003)(4143699003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	peBj/9bZ4h3akNrNw5fXWLoM0t2/6M0/zghq9ech3KP0fPeYFa5c563WBbDREaayYnxm8w+QdXp4e6mr2Oz1+0Tgbr7V/uXuIEB5Hm6nRtBqfHlKxFX7BE+gqgxrEhnIWTnwWeN6mOoeoMHc5DjBr4ch19TWWnkb6dCxZGbi0u0Xm+pv7yL/GeWQU3wvCrO4ohdiV1HVS4s7x5vNWDz/ef/agfWiuYDSiIvtXJSGidDTMpU3S7HNxbwbf24NnekyrZFSxvDDgHNUFvTTOLkIxMIElebZWh9FdA/4mj3ZMKP7xkbUvz3tswk046EFBRyDDJyDYsDAIeNMDeaYhSsWebCSYTR6Z1hwvXsA2qi/OhDEwjAU2qyKSPsCBMaTt68BiErCfSAusE59+8n2HiQ/D+ojq+TE3lzAcc68DvAc2qlAXc8rLQ2GKuKbm4AYk0sL
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 08:18:25.9407
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b911fc9d-d722-467b-0bc6-08deb25a89b6
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF000509EC.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB8339
X-purgate-ID: tlsNG-c201ff/1778833110-DA175443-DB90CA65/0/0
X-purgate-type: clean
X-purgate-size: 846

SGkgTXlrb2xhLA0KDQphcGFydCBmcm9tIEphbuKAmXMgZmluZGluZ3MgdGhpcyBsb29rcyBvayB0
byBtZQ0KDQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc3VzcGVuZC5oIGIveGVuL2lu
Y2x1ZGUveGVuL3N1c3BlbmQuaA0KPiBpbmRleCA2Zjk0ZmQ1M2IwLi5hOTQxMzMxMDM1IDEwMDY0
NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vc3VzcGVuZC5oDQo+ICsrKyBiL3hlbi9pbmNsdWRl
L3hlbi9zdXNwZW5kLmgNCj4gQEAgLTYsNiArNiw4IEBADQo+ICNpZiBfX2hhc19pbmNsdWRlKDxh
c20vc3VzcGVuZC5oPikNCj4gI2luY2x1ZGUgPGFzbS9zdXNwZW5kLmg+DQo+ICNlbHNlDQo+ICtz
dHJ1Y3QgZG9tYWluOw0KPiArDQoNCkp1c3QgdGhpcyBvbmUgaXNu4oCZdCBtZW50aW9uZWQgaW4g
dGhlIGNvbW1pdCBtZXNzYWdlLg0KDQpXaXRoIEphbuKAmXMgcG9pbnQgYW5kIGFib3ZlIGZpeGVk
Og0KDQpSZXZpZXdlZC1ieTogTHVjYSBGYW5jZWxsdSA8bHVjYS5mYW5jZWxsdUBhcm0uY29tPg0K
DQoNCj4gc3RhdGljIGlubGluZSB2b2lkIGFyY2hfZG9tYWluX3Jlc3VtZShzdHJ1Y3QgZG9tYWlu
ICpkKSB7fQ0KPiAjZW5kaWYNCj4gDQo+IA0KDQpDaGVlcnMsDQpMdWNhDQoNCg==


From xen-devel-bounces@lists.xenproject.org Fri May 15 08:35:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 08:35:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309728.1580777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNo16-0004jZ-KT; Fri, 15 May 2026 08:35:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309728.1580777; Fri, 15 May 2026 08:35:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNo16-0004jS-HK; Fri, 15 May 2026 08:35:32 +0000
Received: by outflank-mailman (input) for mailman id 1309728;
 Fri, 15 May 2026 08:35:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNo15-0004jM-Fl
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 08:35:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNo14-000nPw-Rr
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 10:35:30 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a06dacc-2eae-0a2a0a5409dd-0a2a4501db64-20
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 10:35:30 +0200
Received: from [40.93.195.35]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a06dad1-c1f2-0a2a45010019-285dc323c50f-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 10:35:30 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS0PR03MB7584.namprd03.prod.outlook.com (2603:10b6:8:204::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 08:35:27 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.012; Fri, 15 May 2026
 08:35:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qXWm5ckAYbBiIkI6GiKE0AiZNwOpZ9ZwtjgetLClONBe5j6ibEFoZgsytBEE0hs4OCBXt0Pli8NNeNkIGeEzOT8mrcdVOb0S+H3L9ZrWFFT3Bv2i6dwrTtc3JwbMtQ778OAOb3DRlvzo0g5IN1Pkl8z6yyzmFIJJKhqDX+Cxxs6as5Ou4a2D9ALI+DCZFaUa9C4C7LYUebtkKkpbdOpzxcQyX8PSlnsJ9eJl2nNrh371E7dwKB1fFOhJFtpat9G9LP8VBSB4A7yu6q5v3R42vTAD0dlz6PR6MElLIMCI0CD/XmsW3VFKkeN/72Md5EufblRhgyyqGSTb4sJfZ+/z7w==
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=4eqpE36iuh13gBEKePFXJTT5jQwRd892xbr/oB6eQnk=;
 b=pJfhkTydmyP/d0fQ1nNvmeTB4ycBuIL3c6dFKy/pu9fom1CVG4r6MgUGBgwgiJW28GAyS0VUD4ml4tCF/fb2OBuBzyuWHdKnpiUHDBm2/j5nyVXf1MjS7N/QbHHwoNRr0wamsxHq5fJLPz4TpLUW903mu6cCaiK8AWK1KEOIMZzPs58i8Jl8VXPM06hv6MXHfpRR0B/b8vm/RBYTNhqzl5QEnHy/QJpnWFb3200YH/9nKdmUx3sDrJjnCxwSq11ghAqKpPJf3Ijw3r/jnS64Ha21QH5YKirqhtNUJvlbID8YZhaYniYiBMZ6bxYuHQAHgdrFw/VWq93fbmdUFsl2rw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4eqpE36iuh13gBEKePFXJTT5jQwRd892xbr/oB6eQnk=;
 b=SUx1//L4KLwgmJoeeIeG7m5gXy4snt572FZGaCIpOLNmmq75VRI3inJ2aiDLaN07dHq6748CCixOdK68pistuNM2Mu+m5WSaAS47biSdOKtliZ8SMXs5HIQ/6kwfRvd5KHaaNkv+NsnyACuyqSnLGTpRoIjLKrPUylz21QKSgf0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 15 May 2026 10:35:22 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: map_domain_pirq(): pirq already mapped?
Message-ID: <agbaykfrTKx3Ae3C@macbook.local>
References: <700f3bd5-2887-4f30-95b2-5dd19fb91abe@amd.com>
 <agWHLHzvhKCLQMI1@macbook.local>
 <591387c7-e78a-4bd2-ae52-c98d66554cbd@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <591387c7-e78a-4bd2-ae52-c98d66554cbd@amd.com>
X-ClientProxiedBy: MR1P264CA0174.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:55::14) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS0PR03MB7584:EE_
X-MS-Office365-Filtering-Correlation-Id: e7bb3c1c-dd22-42aa-752e-08deb25ce9d6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|56012099003|18002099003|11063799003|4143699003;
X-Microsoft-Antispam-Message-Info:
	OciSRAvFyxY2Tzm8/gNXSXASIHtOrcTkAHYpxIDJ+0OrpcTlaCfWwXKTRJWlg9tRWV2fCZkAtjaIhBid7Ex1XDA9BPkJ8P7xclufgna87V9nLGB5HgHJG/Uzen6ChvbBzYtqDjJK7Z3DI1NLIPcqPBma4K43NmlMjab8XXpySX7EmAcyFrv7rSAWXNtmgwHo3Tk09wZfkeX5OpyvahwFlVWWNcqO5vvcmj60u0VZsnrUiussKYArFE3cZsAzdFJf/PIXIeNsHvlfartB9g76f63/RpQjd/m8YmfNof7i8m3TRtLzBtH+tdFf5K2gvp0s6HvZbXZIjDU6yCC4FNtx1QpABBVZmnbQ/3tBPD5CY0ag2VCTCJt3puGS6IyVaofl/VKgqRPuNyNxrAcl1+mtaFEHsypsPep3IcHp1b6FLLItqKt7SXU5x2fTJig1GD+FbJoac/8XEiRUrwx9eDIyjrvE60LvsSe5cySPQXNmA0VfRPqhsQTFuexAQ54cqRbbM43RXXF+NaZ/rOE21+9VVY/O15VwMZOF2I3EVk7/ED8YITxcWples3ZlW1rpLvCEkwtjBCuGvHpU0ecrYfX6tqfBnjZJ56Wg1ElFbge3h507ztnBlKt0YZP4y/iJgmU766YiRuIyUDjxt4AiGam5ARceMjNCguNULl0QkNWY7LuW/5iP4JWr80dI4oT05Ial
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(56012099003)(18002099003)(11063799003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bi8vU29TRVZvYThzQ0grOXQwRHhlajVFUGZXM1ViKzFaZDYzQ0h1S05zNWhG?=
 =?utf-8?B?Y0NyY1hXSzZVNFBBbXoyajQrUlNjcE5mZkVsSHVxTkUySTVVZk1rR1QxYVZD?=
 =?utf-8?B?c2w5NE1aWnNmYmZTMzRtcWVUVFFZWTJ4VHF3dmFhTmt4eFMyaGhmOW16aVhU?=
 =?utf-8?B?RmhnZlUxL1VidGVTTnEzclhoRU41Ym16clpoeDZCaVN6bFdzdHBnVUdDcHZW?=
 =?utf-8?B?VkRLM2FzUC9BRVRPTVpGdmhIdmdPV2hrTUhaRXZnbmZMRHhaV0hSOVlZMjJV?=
 =?utf-8?B?WjY3d2tZcnpDZEpHZ3dwdkJldVdlRFdzUDdGMjFDdVFiL3RiUGNxRzdCa1Yw?=
 =?utf-8?B?d0U5YnpmczVtTWlxUzJxczZ2K0k1WWM4YUdNT3Z5K3lpVzR3TXE1VzE5Q3Np?=
 =?utf-8?B?Rzd6bk13RmQ5ZGUxTEdpK010OVdKZ1JvdWk0eUNyU1ZjOEh5MWlpeUowZjA0?=
 =?utf-8?B?R3JsTVNpWFUvR0p3aTBhb1EySWxDdzhyV2hQa1BsMCtGd0R3cUNNOFF2M0d0?=
 =?utf-8?B?S1V5SFVRakp5UjdlRUVINHplY3hNdm04Q0RjZW4xRzZPZ29nOHpJY1p0cG0x?=
 =?utf-8?B?UnRnekdQNjlwTFJXb2VaTm9KRVZ5YzBicThYOUpJeTBKSExXSVcwZjc3bjJY?=
 =?utf-8?B?SlpkNjd6b2hEcVlWU0c5TjNmenJ6cGlxckxHb3NqeGxTMXRCSERWanBzY1dN?=
 =?utf-8?B?R3M0Z3RPZ2tsMFByQVdGNkVsVVk3T2N2TFRUVk15NmtTbzFyZzRhTUViVzdQ?=
 =?utf-8?B?N2JQc3VORkFML0MzRWk5K0FUNzQvZkFDM3NiS0Q3Nm1CcnRvTUdaZDh2K3lR?=
 =?utf-8?B?MllJbG5jWDdMYWZIbDc1ZGRJaEk3cDZTdWVtWjJxdUUrR1VvbkVEVDJTbDlI?=
 =?utf-8?B?eXhPSm91WFZjaXpHK1pmS3RzNU1VaHlQajQvTURHcEJrcDVHbU45YXcrenh0?=
 =?utf-8?B?VTZreVBla3ExUkN3UnhMRTVYd05RZDEzWkVzeUZBZzZwdnUwNmg5Q2NPRk5k?=
 =?utf-8?B?ZDkySEJFQ2U5NTRkQU9CRXFCUkR0VTNCVUFZc3FXdHY4MHRHcnB5S1FpRFQ4?=
 =?utf-8?B?UldNRzhxSG5ualVvQjhXYzdpM001VkJNRWM4STRGVnY1TkxyR0cyVHc3cFQ1?=
 =?utf-8?B?cDRRNEpwNjJ6eG9HTGRSQ3B6WDdBWHZXQjZTMS9yU0p0QWhCaUxxSG9IdzJp?=
 =?utf-8?B?V29FOU54UUVhK1FBeUYzUDEzZkwxY1kxcTgwMGtLSElxaXVWYzFpZnJvWHpj?=
 =?utf-8?B?NDRTVUZpVUJiN3JIMDFWc2ZVNngvY2NnbEtRclEyb2Z3emw5K2RhUThtVkhk?=
 =?utf-8?B?Q2lxSHpyUDdRQWYzZzJhUm1KQ2s5K2NzYUwzUWVlaEk1aE9aVXFuS29JTmpl?=
 =?utf-8?B?bGJ2M3lUN3JxYUlUcVBMdFdwNklsZGtMRGx2WGplOENZUzZlMHBaWWpMM09F?=
 =?utf-8?B?dkp0cmttVHNqWFd4SVRZNERiaFRSVnJDcE1TYjFOTlJSSGljNmswbEx5TVdL?=
 =?utf-8?B?OStCTjhSeDNCblRVN2tTUGxLT1VNRmI4bW1FZEZVakg2dm4wN1ZnYWpGOVFK?=
 =?utf-8?B?VDZSRURxR3c5SGhuS0FxbFFUTUxXSEVSSFhiVUdVRkR1U1RMMVhBTkFrTjdO?=
 =?utf-8?B?Q1oyblpNTjdTR2dFNDFaZ3JPeVBReThRbTNtVjdYT01ha1dvdGVybE40Z3dq?=
 =?utf-8?B?WU9YNTRmSWhkWWtRdTh0MlZvTnRXcnloWXVlT2pkSGFXYkZ0QlB6aFg3dFE5?=
 =?utf-8?B?eGpBMHQxWkdZQUpTZUFEeUdEOE0rcDdTWUJuWERFWmg3OWJPTlBKUlN1T2Z4?=
 =?utf-8?B?bnMrTWxKRi81YmxqOFlRbFZvUExtSHRBNjVwQy91MnBpdll5b0ppaXVIaVBL?=
 =?utf-8?B?UHV1Mm5NSlFESUJmUHROU3ExRW85ZGhETG5uNnpmMlhDbzJLWlB6VHovbTEv?=
 =?utf-8?B?REVSN1VIS2Y4aGlyYUsva2FUa1VBdWM2Wkk1TnlaWFhHc3oxMXpndE9VVXkr?=
 =?utf-8?B?S0dwUjF2M2t2UGdmZllkNzlhSXUyejFIUWJpU0lmL0YxbXpST2hHNlhQZnA3?=
 =?utf-8?B?ejNoT1NvWlZFYm1yUmRBTHNyRmF2ZENaZ2NjWjdLRVhzdkhzVThTWE5uZVlT?=
 =?utf-8?B?QXpIK2trN0I1dWl2UUZIVUZlYWw4MHJTbDFIS1Z3Smt0a0NEajNmdWtCM1R0?=
 =?utf-8?B?SERCVWdZS1dDR2g3N1JBT2NOdjZKQzVXNE9tN3J6S2dCODRKY0JJakFUWldM?=
 =?utf-8?B?c1M0VHpIWU1jb0tRdWRjUjRqdjNrM2ExNU43Y0lZRFNVVHlVQ20wVHFUQ2ls?=
 =?utf-8?B?SXhuV0FtNFREdHhodkJDdWptWXE1TVJFNE92UHlmbTZmWUljMWE1UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e7bb3c1c-dd22-42aa-752e-08deb25ce9d6
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 08:35:26.5225
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: d97PYQ/khwppuTgNhTOxmsEr8B0BmFvsIAXERrWW+xPHav1av2TNEw179RhjAsnnsGyOa3iKq+PFBGMMQLhmiw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7584
X-purgate-ID: tlsNG-d62444/1778834130-B715BFF4-E233B278/0/0
X-purgate-type: clean
X-purgate-size: 4589

On Thu, May 14, 2026 at 09:01:28PM -0400, Jason Andryuk wrote:
> Hi Roger,
> 
> Thanks for taking a look.
> 
> On 2026-05-14 04:26, Roger Pau Monné wrote:
> > On Wed, May 13, 2026 at 09:18:46PM -0400, Jason Andryuk wrote:
> > > Hi,
> > > 
> > > Early in map_domain_pirq(), we have this block:
> > > 
> > >      old_irq = domain_pirq_to_irq(d, pirq);
> > >      old_pirq = domain_irq_to_pirq(d, irq);
> > > 
> > >      if ( (old_irq > 0 && (old_irq != irq) ) ||
> > >           (old_pirq && (old_pirq != pirq)) )
> > >      {
> > >          dprintk(XENLOG_G_WARNING,
> > >                  "dom%d: pirq %d or irq %d already mapped (%d,%d)\n",
> > >                  d->domain_id, pirq, irq, old_pirq, old_irq);
> > >          return 0;
> > >      }
> > > 
> > > Why do we return 0 instead of -EEXIST?  Since the pirq is not updated, the
> > > caller doesn't know that pirq won't fire - only old_pirq.  For
> > > allocate_and_map_gsi_pirq(), the new pirq is still returned to the caller.
> > > I would expect old_pirq to be returned so the caller knows what to use.  Am
> > > I missing something?
> > 
> > Looking at bfc341a65cfb2 it seems like this might have been an attempt
> > to keep the previous logic in ioapic_guest_write() that didn't return
> > an error when attempting to add/move an in use IRQ, while switching
> > ioapic_guest_write() to use map_domain_pirq()?
> > 
> > The commit description is not very helpful sadly.  I think the mention
> > of "And this patch also makes broken NetBSD dom0 work again." is
> > relevant. AFAICT NetBSD will do PHYSDEVOP_apic_read -> modify RTE (ie:
> > set mask bit for example) -> PHYSDEVOP_apic_write.  However the
> > semantics of those hypercalls is not symmetric.  PHYSDEVOP_apic_read
> > will return the vector used by Xen in the RTE, while
> > PHYSDEVOP_apic_write expects the vector field of the RTE to contain
> > the pIRQ.  I think this is why map_domain_pirq() was adjusted in such
> > a weird way, to ignore requests with bogus pIRQs and still succeed, so
> > that PHYSDEVOP_apic_write would also succeed.  Ideally the interface
> > should have been adjusted so that read/modify/write cycles using
> > PHYSDEVOP_apic_{read,write} would work as expected (iow:
> > PHYSDEVOP_apic_read should have returned the pIRQ in the vector
> > field).
> > 
> > In the context of GSIs, I think we aim for Xen to always identity map
> > them (so IRQ == pIRQ), but there might be (or might have been)
> > hypercalls that could allow you to create non-identity mappings
> > between GSIs and pIRQs.
> 
> To support non-PCI passthrough with Hyperlaunch, we added code to map a GSI
> to a vIOAPIC.  It does not require identity mapping, and that works.  It was
> while testing conditions that I expected to fail that I found the behavior.
> 
> First map:
> machine A -> guest B
> Then map:
> machine A -> guest C "success" from the return 0
> 
> > Explicitly looking at allocate_and_map_gsi_pirq() do you know what
> > causes the domain_irq_to_pirq() in allocate_pirq() to not return the
> > already allocated pIRQ that matches the passed IRQ?
> 
> Well, it's PVH and I'm making up a "PIRQ" for the vIOAPIC.

Yeah, the vIO-APIC auto-map interface in vioapic_hwdom_map_gsi() for
PVH hwdom does use identity mappings between GSIs and pIRQs, but if
you use the side-band physdev interface you can certainly create
non-identity mappings between GSIs and pIRQs.  That was introduced as
part of the PCI-passthrough work for PVH dom0 IIRC.

In fact what we do in vioapic_hwdom_map_gsi() might be dangerous now
that we allow a PVH dom0 to allocate and map GSIs using hypercalls
also.  Using the hypercall interface a domain could introduce
non-identity GSI relations, which would then cause
vioapic_hwdom_map_gsi() to fail.  It might be best to adjust the pirq
hint to be -1 in vioapic_hwdom_map_gsi() instead of gsi, and give up
on identity mappings GSIs to pIRQs on PVH hwdom from the vIO-APIC.

> > Overall we should likely adjust map_domain_pirq() to return -EEIXST,
> > and then fix ioapic_guest_write() to shallow such error so we can keep
> > the current behavior for that specific interface.
> Having been focused on PVH, I didn't look much at the PV behavior.  But it
> was still surprising to see the "no-op" success.

Indeed, I think we want to contain that behavior to
ioapic_guest_write() exclusively.  AFAICT the success is an unintended
effect of bfc341a65cfb2, which should have been limited to
ioapic_guest_write() exclusively.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Fri May 15 08:42:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 08:42:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309737.1580786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNo88-0006bu-9W; Fri, 15 May 2026 08:42:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309737.1580786; Fri, 15 May 2026 08:42:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNo88-0006bn-6n; Fri, 15 May 2026 08:42:48 +0000
Received: by outflank-mailman (input) for mailman id 1309737;
 Fri, 15 May 2026 08:42:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNo87-0006bf-9M
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 08:42:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNo86-00CYOa-Gy
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 10:42:46 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a06dc86-5cb7-0a2a0a5109dd-0a2a4502edfe-0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 10:42:46 +0200
Received: from [52.101.48.65]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a06dc84-af86-0a2a45020019-34653041f8d8-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 10:42:46 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS0PR03MB7584.namprd03.prod.outlook.com (2603:10b6:8:204::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 08:42:42 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.012; Fri, 15 May 2026
 08:42:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iMd/0yQLB/Ccq+Yz1CzdP2bY80Kp9fJJ4auiRd8ZbjPhk5oEL/WLSAoPUaXN4IQlNPfvE7hyu6XB45zAi1utEojOrFk90rgpl4P/pZAlUWIDnFs6h5PPpnaIER/b+NONBI773n139/Ug8h94XpVavaLXLqhwNy7y3yIN4PKIz0gFL54SjZhkNXZzL+l5wMYECG8QkpLkx6wgAMmtj/clnKxBLtNXvtTbd7JZW1xDFtXK93DAMC/Pp6uRW/JbtbghHKMQwqhdxVwm44O+ojiwG78LAQvRFnXQGSg5yaTwRFEdLGQq+9HUA963FjNiPXAqEJz24NjoAwFd5LJPuMknmA==
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=xE+sBv0E4K0Fx/gpv5zy0k/b/MMzyXvI87ZlKR8nbz0=;
 b=aLPCQcwDPpvvq5ynwRUlupp8NTkEBKVZgcUcBtDlB7dZX7DZJ/s78LD/Q9RTH9iR6+EiD9MUVJERh14074YOMI/yBEIcFXVzZ469O1cED7/Q4SehV6hBNMp0w7hiqrUnJJJIKHRmf2eJBkNRBVNPK48gp6G7KbAmWeSCfbLQxE3+USZqZ83POV1g76N7S9/NVi6C10NABOObkftnQnsnuNgJh14+2RO4ApL1KtwplzYnHHYm5hWcxTPBsZWWpIaDljr2ULs3PPgYhECrlQIuVlcYUAPvr6DE8IP1Bpxvaf5OEtoPd1gkRixi2zBoKDGof1G3NImzOPQH6k1Sms0aEA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xE+sBv0E4K0Fx/gpv5zy0k/b/MMzyXvI87ZlKR8nbz0=;
 b=OW6ieNAf5bcViquC1qbDjlwGsFYsL+Qc371VoXXppckw7cm52xk5/aE63jCbooLSUapO2aNCebIoak7fKdzxhWJEh+4jm70CYOGgF9dZ9iMh/YDEHEK/yVtmJhEqadQ1tWsSZEfpow1BUj9noDQJ2duvfFJ5wOjyQkoemye+Np8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 15 May 2026 10:42:39 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.22 3/5] x86/vRTC: support century field
Message-ID: <agbcfy3TSg7dpkkx@macbook.local>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <383355d1-7032-4445-8a06-cb4411ea797e@suse.com>
 <agSJlh8KQ9orL6wC@macbook.local>
 <17a25f0e-91e3-4e09-92ad-21e7dc0ebe62@suse.com>
 <agSVa3uPHSZrszjz@macbook.local>
 <439d03f4-4ebb-4bbf-a1ea-324156bff9f0@suse.com>
 <agTTtrSm1tBnBGK9@macbook.local>
 <242237a9-6b9e-4580-8936-aa61be6b0636@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <242237a9-6b9e-4580-8936-aa61be6b0636@suse.com>
X-ClientProxiedBy: MA4P292CA0007.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2d::12) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS0PR03MB7584:EE_
X-MS-Office365-Filtering-Correlation-Id: 0a965d4f-2752-44eb-63fc-08deb25ded96
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|56012099003|18002099003|11063799003|3023799003|4143699003;
X-Microsoft-Antispam-Message-Info:
	5Bvl4t+YI8JNSc+xWDPGgVKMeSofg++R1vrcuHdAHMZRLQfd63z3fY3yhG5XeECd4iwKCpTWrOROoPzaMj6WS3G9YvxD2B38ygRcIVv2eMdpOI1iKhPHkzmTR9mqyjGLz8rq5/Yi+sQvrsmTV5Wik8WGs4RUIK75KwqVlNeQ03n11/l6sKkx2Am9ppjX+IflFh6RLbRIejqFwA9+f3Gwspek7mM7dguqUgzOMft35TbuW71AmolyJm3lb310tPmXdX2irK8q/4BUU7gUhzKeRPFeeT//Xo8nDIaiCxKBNLrADGUeZzuoNK+w/MUGXeOIfSMst1yXhzXKDrf67vG7e5mWR03cUx6zq10JAJ48MoME/8MVUazg+YewiY8Zp9bRRgabKbK+dYncw/kRFy72aCp0KI0pYRgqW+ZH8DhDo2tFn1rSTVmdSGTtm6LL9/4gZsgjOTZol+oibOrQwtfl/CnOQraL8xWxM3HsIAeNo6b7wuoeEOTkKt2pSdDZleCvlLdqpHmDOQBY8/IDRvaK1R7kdVlRHNSakZtWwr01sufi3XuBP08qIJ+oNR7tp6HkeM2qweaYHsusLbZQlIZW8hpuAlmHWqwfQI8b67F5u+cvXMS9RCMp2DF98u1V42Hjzptb9jesITNgEk1E9tSjKc1J0ifddEKxya2eOD2rYDyRmKw1QKt0dymZpG2WodJj
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(56012099003)(18002099003)(11063799003)(3023799003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Y2MxdlVxek1zZnJiWkdZRTIzVFdkMlZCOWZmcUpxWkpMT3AwMzg2WHVBTnlv?=
 =?utf-8?B?NjdaTU10bVdaUmFVdFUzNGpFSFMxNzQxMXVocmlicTBGME9PZmdMSzZ5aW84?=
 =?utf-8?B?WUZwNll4SUZWcHZ5aGNoVlJaSTRzYU5XT2Fvc3BhRHpWYzcraEZQTE9ibS9S?=
 =?utf-8?B?R2Z6eElUenNHa2hSQy9kU3BHU0hEYzNvbTlJUUczZVJtQ3BtUUhCY2h3eFNm?=
 =?utf-8?B?RnFZVEVNZ1A2aW1sdmpVWEhmcnVVNUV5eUlVdWZrNWIxNzc3L09KNUNEZlBS?=
 =?utf-8?B?eWFwMDR6NklWdzBMQnpaenBZamNxNmdNVWEwOEhFQmo2NXV4bTJOQml0QUFq?=
 =?utf-8?B?Tm9iRXhnRjVkSS9yVjl2dUhCQjhMbXJZOFhlQXhhaTJ1MVJTTzRqYXRUZmh1?=
 =?utf-8?B?RHNRS3lVUGZCNVpYbG1tR2NiT2pZamRucHJBSEowcVMxRlV0VFpYb2R0TjJ4?=
 =?utf-8?B?L2k2bkszVytybGg4ejcwZlUvRDRBSTBTQ3c1UDVlSVV5YmJnNXlqc2JXTTk4?=
 =?utf-8?B?K0MvbjExY0p0anVxK3cwLytTNjlVOWFXeFJORVlsY25ONzk5dGFZTlRrRUxH?=
 =?utf-8?B?NnNicDRoZVFzYWlFTkszeXovRUNUaEZhZkErSG5VU3NMUE9ac3VUTXdjblNv?=
 =?utf-8?B?SGxXL1hwS1hNMmY0RjVVcnVkL1pMSXF1eEtrQmlGMVJsTVd5Y3o1ZnhWcnh3?=
 =?utf-8?B?aGNYWVYrVk1zNWR0Sk9CeHQrTzJBRmdFM2E3ZzJ1MFZmbzR1bXZ4SGtWaXQx?=
 =?utf-8?B?YWhucngwZUJuUjB5YWVYWnlRQ0NWNVp2VUtZbFpCVGUvNFRDUmpaL0I0L1kr?=
 =?utf-8?B?d0c3bmdtalV6MDUvbWdocTJhTGF6SDh2anZJZUJSK3JhUWNDdERLT1l6dng5?=
 =?utf-8?B?dWFURk9OOUZIYTF3YjFTNTM3dnpxcWg1d1h2bW1yNlhYdUl0ZUpRM2pnVTE5?=
 =?utf-8?B?US9sTlQwKzkwTFdDTjcyQ0JDRHEza01aYTRsYnRVSll6SkJhREEwcHdHQWpH?=
 =?utf-8?B?bzRlZlJLcmpjeGNqRW9wVXlzSU83ZkdGNXpiS1h1WUY1RTRXK3RvN1JrRk1M?=
 =?utf-8?B?NnVWN080QzNyakRIZmVNZFM2Wlh0cVFtMU43U0FMeUhLNmpGdzlmMjFCK1d6?=
 =?utf-8?B?emZIcDAwUWFhbkpFOUtWV01TTGErMVdOZStqVkRvVTVhcU11TGdERGZHN2lB?=
 =?utf-8?B?cXcxZEtFeEtyQWJCcjQ2QmlqU1c1VmxjZDdhbU51N1ZnYk1Tdis4SEtPZFZD?=
 =?utf-8?B?Mjd3dlZPalhwbXV5QThqS1huU0pHN1lMN2lCSTdkTUQ4ejZoUlNQRjkxU3Br?=
 =?utf-8?B?MlFSTTA4UU1OTC95ejlRNy9VMWpHNUVzT3FtTWZxQ3k0R3VQVGd6bWhyejRH?=
 =?utf-8?B?U0R2NUFBbkV1bEI1NW1GZjBWaUdxdUJCL2ZRYUFJSVlUc3FYakQvcTJGUG44?=
 =?utf-8?B?MERZZEFqa0htRGZiUlJlOTRkcVc4TTNPdENsWm5nZWFXWmc0WktBcXdMWTIw?=
 =?utf-8?B?VmM1d1g4R0luR240QzRMU1YrUnlVTTFUMi9kWnIvZFpnMEx6TUpldURIaGsx?=
 =?utf-8?B?aGxzV2dlV3AxR2VianpsSVJvVHRKaUhTdjQzYjBwSmk0ZzhOZjAxOGpkZmhx?=
 =?utf-8?B?SzNlWE9nR0JYUnNPSXlpNzFUVWdOY3g2TVBubDNFQ2Z4YzhGakZSNFRjbWdJ?=
 =?utf-8?B?NkFPa3ppcng0NU9YT1lXUUpsOW4vK055SXFoMU0zUXlDQXFPSlpURnI3WmE1?=
 =?utf-8?B?cy82dFVuemRzR3RaYkl6MWk4akowd0hTaElHc1JBQmNQTWtsRUczb05CMHF4?=
 =?utf-8?B?MGJMdkxsamFLK2drMGxsMFk0ZTFzTWQwNS82MVJTbXEwbHVVVFEzazRRcGhJ?=
 =?utf-8?B?emlYcXlWRG5jU3ZaYUR5ZmgwRVhQbGhIVGVlaEpwTyt3bTZyZktOZDZVTEF4?=
 =?utf-8?B?ZTZPTlF6YTI1YmZRcllxeThwaUxaYUM5RFRCZXEwYk5Bdk5RS0NGV25zYUdW?=
 =?utf-8?B?dW8yTHh5RDhGR0Fia3JKaGV3SVdqdjlYYkN0RHhmTkpsQVY0Uzc2eGRYZEpi?=
 =?utf-8?B?SFQwak5oUFh2VmJZMXJXVkk3cXV4MjdqQUhzTm1tYXRuWE82eFZ0S1RRNHgz?=
 =?utf-8?B?OHFxZitRVUNHSVoxaHl2NGZmMGg4L0ROaDJrc2pDWEpqV25UeVFGM1B1bjRj?=
 =?utf-8?B?ZWhHbFFSSlB4YWpwNnBXbkhOaFJuUXJXUmRiMldqenJQeStRS3ZGdnA5eEpH?=
 =?utf-8?B?OHMwQ2tHRXNPQi9RMCtjb0Q2c0VUWTRmSWpIcVVReHB5enh5ejBqejFGVVBT?=
 =?utf-8?B?a3BLZ0lEa1ROVnNlVU5sZXBWbENOTnkrOVhyNGx4S1NtYU5MMm5jUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0a965d4f-2752-44eb-63fc-08deb25ded96
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 08:42:42.2575
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DlAtsmZBn2oezy0GUF7QrkS+IBR0HrRvxOO406BZlDy/CEZWwIfCN5qxsx8fH7sq/c/In5oIEz3Wwat29+Ud6A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7584
X-purgate-ID: tlsNG-720697/1778834566-82969161-74CDD9F2/0/0
X-purgate-type: clean
X-purgate-size: 3564

On Fri, May 15, 2026 at 08:52:03AM +0200, Jan Beulich wrote:
> On 13.05.2026 21:40, Roger Pau Monné wrote:
> > On Wed, May 13, 2026 at 05:24:13PM +0200, Jan Beulich wrote:
> >> On 13.05.2026 17:14, Roger Pau Monné wrote:
> >>> On Wed, May 13, 2026 at 04:58:57PM +0200, Jan Beulich wrote:
> >>>> On 13.05.2026 16:24, Roger Pau Monné wrote:
> >>>>> On Tue, May 12, 2026 at 04:59:35PM +0200, Jan Beulich wrote:
> >>>>>> @@ -515,7 +538,10 @@ static int rtc_ioport_write(void *opaque
> >>>>>>              /* Fetch the current time and update just this field. */
> >>>>>>              s->current_tm = gmtime(get_localtime(d));
> >>>>>>              rtc_copy_date(s);
> >>>>>> -            s->hw.cmos_data[s->hw.cmos_index] = data;
> >>>>>> +            if ( s->hw.cmos_index != RTC_CENTURY )
> >>>>>> +                s->hw.cmos_data[s->hw.cmos_index] = data;
> >>>>>> +            else
> >>>>>> +                s->hw.century = data;
> >>>>>>              rtc_set_time(s);
> >>>>>>          }
> >>>>>>          alarm_timer_update(s);
> >>>>>
> >>>>> Don't you need to adjust the tail return of rtc_ioport_write() (below
> >>>>> the context here) to return 0 when s->hw.cmos_index == RTC_CENTURY, so
> >>>>> the set value is also propagated to the DM, and not only the index?
> >>>>
> >>>> I don't think so. The case of us not handling RTC_CENTURY is dealt with
> >>>> earlier in the function. Whereas when we handle the field, we don't want
> >>>> to forward (like for all the other RTC fields).
> >>>
> >>> Right, so then you also want to adjust the top part of
> >>> rtc_ioport_write() to not propagate the write to the 0x70 IO port when
> >>> data is RTC_CENTURY?  Otherwise you propagate the write to port 0x70,
> >>> but not the read/write to port 0x71?
> >>
> >> I can't, as whether to forward depends on the data subsequently written.
> >> Propagating the index "just in case" is the only workable model that I
> >> can think of. And as guests can do any number of successive port 70
> >> writes, the DM needs to cope with this anyway.
> > 
> > Hm, I see, the newly written value to port 0x71 is taken into account
> > to decide whether to forward to the DM or not.
> > 
> > I wonder: would it be simpler to extend the size of the hvm_hw_rtc
> > structure so that Xen can detect whether the incoming VM has support
> > for the century field, and then avoid having to play heuristics
> > with the value itself?
> 
> It would surely be possible (and we may need to do so anyway for the alarm
> date/month fields), but I wanted to get away without doing so here. And it
> seemed pretty reasonable to leverage the padding field for this.
> 
> >  We would know ahead of starting the guest
> > whether RTC_CENTURY is supposed to be handled by Xen or forwarded to
> > the DM, and we won't be limited to use 0 as the sentinel value for not
> > exposing RTC_CENTURY.
> 
> These are the positive aspects. The negative one is that "backwards"
> migration would break with the larger record size. Whereas with the padding
> field used, it won't: The guest likely won't notice that the value at 0x32
> isn't updated anymore, i.e. stays at value 20.

Sorry, maybe I'm confused, but when migrating backwards the access
won't be handled by Xen anymore, and hence we don't know what it would
return, it's up to the catch-all device model.  I don't think it's
safe to migrate backwards, as the century value won't be preserved
correctly.  IOW: we might want to actively prevent such scenario?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri May 15 08:45:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 08:45:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309744.1580794 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNoB7-00076w-NW; Fri, 15 May 2026 08:45:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309744.1580794; Fri, 15 May 2026 08:45:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNoB7-00076p-KP; Fri, 15 May 2026 08:45:53 +0000
Received: by outflank-mailman (input) for mailman id 1309744;
 Fri, 15 May 2026 08:45:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wNoB6-00076j-KC
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 08:45:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNoB5-00FMbW-KM
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 10:45:51 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a06dd2f-2eae-0a2a0a5409dd-0a2a450cdf70-26
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 10:45:51 +0200
Received: from [52.101.70.0]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a06dd3f-62f1-0a2a450c0019-346546005ec3-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 10:45:51 +0200
Received: from DU7P195CA0018.EURP195.PROD.OUTLOOK.COM (2603:10a6:10:54d::18)
 by GVXPR08MB11763.eurprd08.prod.outlook.com (2603:10a6:150:313::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Fri, 15 May
 2026 08:45:45 +0000
Received: from DB5PEPF00014B8F.eurprd02.prod.outlook.com
 (2603:10a6:10:54d:cafe::8a) by DU7P195CA0018.outlook.office365.com
 (2603:10a6:10:54d::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.12 via Frontend Transport; Fri,
 15 May 2026 08:45:45 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B8F.mail.protection.outlook.com (10.167.8.203) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Fri, 15 May 2026 08:45:44 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by GVXPR08MB10863.eurprd08.prod.outlook.com (2603:10a6:150:154::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Fri, 15 May
 2026 08:44:37 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 08:44:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=JCHsmQnbHuB5zSbqD9ZrS7NtbJx0Y6QIiTUDmVK9u5NTybgOYb/bzlqeW5t18+VDRojuxWFOR6LsnRAuVbXPiW5kqmN47U+ISJz6oXX4Yt4vmHZGslzhrjXLsMRD10XSMVWfonYNRUgeIbjBbu67Djz6eAt+F5kLhvEW2KKUEf79a0EFndVULQr4iOknHdyIdcL+6pF9L7IE5ds1YJpsxTSAgZQtDfNBYxJgIgDNy3uwP9o/w7z7IKMFgMjoGnpfRsCE8v809ra4e9RpblAuicDwMsaV4vaKv7k/9U5LXPmSehWHIG14tOE86CI6C4xTXJDGm+Jk4vdghcgPnE25tQ==
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=1YpyfBYxDXce/q/laFp31CxeRg+WsVCWY8lHyDPvuu4=;
 b=zPd3OW7dozPmUNq1I5t9AAnBSvMb6LxKuwGJnXilBa+PlJ7lTZqEcpl6iq/OL9kb7I/nXK6ETJoqEsZVlfZzCKYizPIt/m6Wl7L/3yyM8BpDgdy8Xb4H5NwpiplxK1xfaW7vsMyEwwZF5nfAbFMPbh8UviG/9X3aooXqh/WP9fPYfHexmjv8bfoaaNBWyld3EY3ynui3wNXXAUamLJsJ8F570mYNUZkSom4psDRMxC4jnR4lzJbALfVw67aAhpqa0WksivKDEPbuoppz/AJmga9JvDPrQvtJVYf4ITxhh2DZXMuohxb3/auah6TSJ/tYsjab/BuGjvXN8F389kAxZw==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1YpyfBYxDXce/q/laFp31CxeRg+WsVCWY8lHyDPvuu4=;
 b=cw3FMbJLGuggmtNfNbCefsKzjliLrf4Nuch1tZx2d8U1n2Y1ZElFGEnxz2O4R8fdzaiEvPw1x86bkHHrjNAH4cwq2qdZ4AARchlbEFw0BZLGSXVNGjRBJULLg/CdV0IaWbrH/nf5/jVPhulzsjXqaWszL5ui4xqzj4Cphh+qnSY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FpeFrTBiEsgTgf6NI8B49aUNtQpgT/EFnIbwZu3g1qv/LbPwGJiVzIist4JeYdP7ZcYaNFnD8ogT4IqHuClYULDHA7gG64GP8yCcTcQG7vTp89NhQrwfKK2txskPQKmsc2FaegQ9XmWuW1aKE0X0+0VL0rZtvQP7TQEFh5uPWb8/OuLie612iN+LSZ1d0CkLQabrw0La2Qha6mmqd5t1LDhZzGHHL5xHVCkqkF+PBoRe/r0bgNiV3PJZBrzpdoyAHwtmCdzvD3VlNeMY5Fl8yJiO4RE0eDetKhcHFe/QFHTn/nA0VcCCM4/p86x7IKsWpwA15OeUtB8ZYpC3ifeLqw==
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=1YpyfBYxDXce/q/laFp31CxeRg+WsVCWY8lHyDPvuu4=;
 b=zHNoT0+1J+36jcHKx92jyOjmsz6tkZdTgCZjlkbVVzLxAm0960i+a70tbm2hg6nds5YuAk0I6kqwR8qBm1b2q8UoDIPSFMFvt6UmOCvq7IiiQ95U8hlT67n3Sl336kumqyoP3uQ0XwyXYlkdIRPx0n1BbCAhnEoFu0NszczaRy99+J7etBYeursKSRYmyNulYoMm9g9sY4XyubIyU2XqwgpPjCUP1K4uoIOIy6B8PEZz5DZiprCFJoqlOJNodSeYMmWCbiW7Pu8fqj12ZvbmH+woz2TWBed7QonEGOmrHR18Pa0v4hVELE8N4s0aE82UZFFIq3C4MQ9z8MBI2+KlZg==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1YpyfBYxDXce/q/laFp31CxeRg+WsVCWY8lHyDPvuu4=;
 b=cw3FMbJLGuggmtNfNbCefsKzjliLrf4Nuch1tZx2d8U1n2Y1ZElFGEnxz2O4R8fdzaiEvPw1x86bkHHrjNAH4cwq2qdZ4AARchlbEFw0BZLGSXVNGjRBJULLg/CdV0IaWbrH/nf5/jVPhulzsjXqaWszL5ui4xqzj4Cphh+qnSY=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v9 13/13] xen/arm: Add host system suspend backend
Thread-Topic: [PATCH v9 13/13] xen/arm: Add host system suspend backend
Thread-Index: AQHc4jI2GSPod59Ym0q4tbUq8XkiRLYOyZeA
Date: Fri, 15 May 2026 08:44:37 +0000
Message-ID: <14563498-D318-4419-A07C-DDFDCC8FECA8@arm.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <2268857aa7eef95444169564c17f7e9a6f59b1c5.1778605274.git.mykola_kvach@epam.com>
In-Reply-To:
 <2268857aa7eef95444169564c17f7e9a6f59b1c5.1778605274.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|GVXPR08MB10863:EE_|DB5PEPF00014B8F:EE_|GVXPR08MB11763:EE_
X-MS-Office365-Filtering-Correlation-Id: 127c3779-ab14-41ab-4f5d-08deb25e5a8b
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021|4143699003|22082099003|18002099003|56012099003|11063799003;
X-Microsoft-Antispam-Message-Info-Original:
 Q+VwBLZtGnwu2/FE/n9CqM3U6wc5OBQcDiEabeadrAvdUP2zi1IWtBEVHrzMscwese6TTtuqaYAYhYp6RisO6Pf+UQM2i/SXbsRkPU6Xo/ho8OCI8PRunGoRHUjbvV0C47SD9f6JykzFBwlyGGlIZcjuOSBPNKAasyvPfsD5eoh909p86L70YiieauRDuXQQybBzhnelt4Tg5SxbrmT9m6qYjS2yZKhoQcMVy4S0XodfIBfo37s2oYnt4877HApRzs1kGHlL6z3QvncYzqvkVeU+oi0QRGWey5n0FgLINnA4PXbG7ssQFfKRjhKjxyLAcXl/3yQQKRDTDyk1kyPuod2MxizBtddR4NapWz8cp33V+nMWHtJYYoAHGZ2Vu9vtrCalliMtb+c+jlrH2FvSjzkGJ2Jo/4OSspSHfw4zt+PrikKN+e2/OEiluq7EX6SdM9zDe2wCD8nCO0ch0+90y1lg1DQAm3XEbFNTF28K93NrINIRWQNjnQGp04UYRSj2znFSFAi64kT6ovx2FI1Ca0LAG8VLBkPkQQ0Aefc7cYfDqMy9eEWVJEJ8AFcf2G5v8PEnnEcYSVbhMkbTBG3mESG+jIa8ceiiANUQyegBJaCb5OpDojPWJ5rYxL4uurMa/sMeHLfhEjwJX68eUQOLhn7iWMYUAEPjEmBSk5Bu0EcUuvmYxb/I8Tv1lJpi7nri8yqVQplPLuyopTMT5sNFr71ksfEB8/qAxEmAFKl5lAex4/wcq/Wl5dDs+CbPH26Q
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021)(4143699003)(22082099003)(18002099003)(56012099003)(11063799003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <8F91278D7A363941804A2BE5D9F53F41@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 EdYDFkXeC5yK/ZzJWU2xrDHes2kbHfINRWQY2B0iON2VeLtV9NoN2RHRh4nESNE3bO2gJX5dxs5Gq67P74MqpIvnm0sAxwbWe60ekhWs+8CPRv3ZbuZlw6CSpmHe61oIfgzzbZ7xusVfwnkoyNq8xk5TeIbnsi5LIwfK9L94g/X4FY9Tg7hlMn1DpS6B2vw9VtiECw8Z7Pli5T35ck63db1dZ7KHoYBVHUYFiqlispf64prjHytU40W+/gueK0Oi4M/zjzt04Bpga2dT8+lEb5PPNMfVgNtWoH729t3jOdsQmsRJYSkY8vguLQMMhjnXgRhor3U3wGlNQnxpKc5vFg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB10863
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B8F.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	1cf33c3c-50ac-406e-6c06-08deb25e328a
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|82310400026|376014|36860700016|14060799003|1800799024|56012099003|11063799003|4143699003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	Y0ps6Dh/8daaK8pw+c6KoVwkESpkPNPT21/VsvzMbd1dUeZ5bo1grDWzOjC2F/3STo8WyzD9oZPXHPppzprV3YviTEdpe0QLX90NDWUXGnV33Ay+10mmyLurM/0UPgpUE5Ni//tqihJFWWExniDD+aBADWXaOdtZCbFgBAHcGCjCapJWL9Tu2D+q4Tz4HogB+yEq6jSMG//Z5h1vFwi7iRsKdpQ1pxM4zqwGiEwR+w/B63xvZw2quGt4X1dchUy8/opJyanvgUk+XGZ3jrjR0g9WcyvwQerp+NvkqLmIx9kh1CH1x0GcwMaP3D0p0AV1Fd3gHLbP/qqnd3mQG2REv3chUucjtMqePlE4/0FWX5qwIopfcVqe4fvu/9GNOZMGuUhUdUTf13/NdUIQTn55LUcH2PrGvLnea5GlFVGEU3ZkFKqnGFf0IXTlEi4+MmwBPVv8aIJ18CgngvZvX81mSv+oqD1eJGkl/uA/Osf3oy/8oE/hZcKiyt74m7uExHUvQiE01CV99eZp2rBjZXEbHyOj39ZKrXX2id2M+D+X24jIHUKNuzLrq/sUHmCcCnBeD/CX6TjHm/K6N/86CKt9tMWs9enB3kccleRWfh797JqC1Tz60C+ln0J1pHHBan9FDJwj7lf17kKYeE9oj3NVGa6rmeanDSSqHGBkzt35X4z/SnPFjC/E6bWjtqTYtsb5EJGabq2YBLdax2zcaynXH1L7qCX2avdz5rhySagmuw8=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(82310400026)(376014)(36860700016)(14060799003)(1800799024)(56012099003)(11063799003)(4143699003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	43CI4AMMLe2tNKzsQfX1mvyzkf4XNFWHko5NjsNr+9yEn5CiRiXHyuaNkZeSe1ab7fjnxlAvax3CHBjepxJw+ZdxtKo1hX6NFKv3IJlCG7q1THKRympGNTBrEVv++adnGlZc4h3wOIEFm9vN1BhJZ9nC+tyNXEFhR5HvRbepS7YTxq9ikwQr2tip4CGLB+MP014trr3TXsfJt4/d4VoubzJjbQcn4EnDG9w2jWxTEyeMZOZyjd9veBeXI/1EBLj3AkpVdwXLTcnIj1wNyra0fFpyYpgBzvgJjuH3vhX8iViLsEncBTpjNDAey+q5Olv1iK9QJMgTb/4CMPj4iVqhNV28AfRrSJS5zb9scqfLU8tWPlDsS2M7+ox2vivRumbZW6TAMiJxGNYefM7C3e9LsWF3v5tjDvVMtprf3XwsdcsB1JUsp1Ceqns/uCFMt0Cc
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 08:45:44.7957
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 127c3779-ab14-41ab-4f5d-08deb25e5a8b
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B8F.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB11763
X-purgate-ID: tlsNG-d25034/1778834751-E196DCF5-6B098861/0/0
X-purgate-type: clean
X-purgate-size: 586

Hi Mykola,

> diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.=
h
> index 2eb8465aa9..de119cad3a 100644
> --- a/xen/arch/arm/include/asm/mm.h
> +++ b/xen/arch/arm/include/asm/mm.h
> @@ -360,6 +360,8 @@ static inline void page_set_xenheap_gfn(struct page_i=
nfo *p, gfn_t gfn)
>     } while ( (y =3D cmpxchg(&p->u.inuse.type_info, x, nx)) !=3D x );
> }
>=20
> +void set_init_ttbr(lpae_t *root);

Since this is MMU only, shall we move it to asm/mmu/mm.h?

with that fixed:

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Fri May 15 08:49:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 08:49:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309754.1580804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNoEB-00084Q-Af; Fri, 15 May 2026 08:49:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309754.1580804; Fri, 15 May 2026 08:49:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNoEB-00084J-7T; Fri, 15 May 2026 08:49:03 +0000
Received: by outflank-mailman (input) for mailman id 1309754;
 Fri, 15 May 2026 08:49:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNoE9-00084D-6z
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 08:49:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNoE8-007t2n-JR
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 10:49:00 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06dded-bab6-0a2a0a5309dd-0a2a4509eb92-46
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 10:49:00 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a06ddfc-2497-0a2a45090019-d155802dc4ec-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 10:49:00 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-48a563e4ef7so80429325e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 01:49:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da15a562dsm13329010f8f.33.2026.05.15.01.48.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 May 2026 01:48:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778834940; x=1779439740; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jpAJA4bW2cKY0DQ/ED1MjxowmGDO0JsQM54YfVjgZgc=;
        b=PrcZXuxyzy3Mao9MmIJy3aHU3ddOVa4vU/e0t1ZZg+if2FqkZXnnhKQDKoZo8A49K6
         YFDlpafnU+IHDGv4mX1p1FQTnjuXAOZCTeVKwTOto23ZKggWiGGmbI0auprg/hpqtOBK
         Lqi66KZFskvH90KctlCbez4zAhqMEIXyq3uQMfYmTglSz+Nskr4NPK8TUsRtbUaLOEuX
         FoYXFdBSMaJF/fXWaXF18Pmw3Ozex+RxcQtlesOW6DaTO0wlOegTTIaXNu/RHeizO4BW
         ulyJFPR1tnE72V4Fh1EDtLce3Q3WQPJJfsIQUY5pNRtkab+z6fCn8Ll7ChXAWlIywMOX
         2m7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778834940; x=1779439740;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jpAJA4bW2cKY0DQ/ED1MjxowmGDO0JsQM54YfVjgZgc=;
        b=OToP+eUmn3qC56/z5t87MQEd1s+0j6/P3IaFcSS7psYNEZkeFKH8jq3VuAfZXPYiCM
         eyps6qZIIizUgPz0Y2viiiUqWDzrt5mG8MaTUxvDbslrB/TVdUHvMVB1vMDqjdEIyBL9
         O6sMbXvGVRS9J8HAyg+RSkbawliaweSQDtVCN/ErDXVQ08HBC3pbTED47DUdRJGrSmNJ
         AiqGkXzNIVeW3Im8aMA4a7tkbCRKoFygNdhf3IjkzXqy6m0wPCmWCln39tqwkpucMM7w
         MeOpstl/epPz/LDjPCjwY36sa+X7cJ2qLg8ylxXQf/kZc34CavofvST7WGG3owAIKj9k
         4/Xw==
X-Gm-Message-State: AOJu0YygB62Z+AHSuaKIo4JuzXc5rs0+FI7CbmvzqT0wY8W6YcOWZciv
	j9G4vE2q842uCKLWsP1/WCN5nj+RIgPVy8THM/hzc3NwwZtV/gQZD3mhdsKewst85g==
X-Gm-Gg: Acq92OGfH54xMexWowx+6i0B3975A6wyP9xlZl5F/L5vQx84SqlyR4axO2Kv+LxMP/L
	J4lo3sPpczAgDz0Jb102gi1ZCbXQDMTFHZ/qVHKIpJu8cd0oDQ3BIZLpoN6UiL6DjuMYtMTbfz0
	jyMQhBdvPqoBeg0RsaXcWSDCQ4vfnburywb7VDaH0cbGWITRuLBMDUnGIja26yXksRq0fXXuDfP
	7ewf09c6tS1L21eqk9RbwLzVSlnSs02B8fTeazHJqWBVINugIw6fGzt61fGPsA48V+jmgE2/GIc
	0cVKZ0Q4w+5c05b8+f52Cvs5JAJQUzJMpUvpcL7WgvHKtIkft+uYF7VBznTa5+womkJozMCG96w
	/FsRRzH3BtWd1ha2D/eUoVfMrIDa4dHwOmLNdLKz4VUeCz30DPsQJPrZR7NIL5+bRnOE7uYi59N
	ZVl+d9S9ny3K7nzyCUnG7lEiCK0Too/nsUX+sCeaSi4NOKSK1rSOEj26ndRM9o4PBCG4xynpRCr
	mS+SyDkx/C2dJU=
X-Received: by 2002:a05:600c:4e87:b0:48a:768b:eea9 with SMTP id 5b1f17b1804b1-48fe60e51bamr44257195e9.4.1778834939932;
        Fri, 15 May 2026 01:48:59 -0700 (PDT)
Message-ID: <83427254-9e8e-4905-8bbc-c65874a863d2@suse.com>
Date: Fri, 15 May 2026 10:48:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 3/5] x86/vRTC: support century field
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <383355d1-7032-4445-8a06-cb4411ea797e@suse.com>
 <agSJlh8KQ9orL6wC@macbook.local>
 <17a25f0e-91e3-4e09-92ad-21e7dc0ebe62@suse.com>
 <agSVa3uPHSZrszjz@macbook.local>
 <439d03f4-4ebb-4bbf-a1ea-324156bff9f0@suse.com>
 <agTTtrSm1tBnBGK9@macbook.local>
 <242237a9-6b9e-4580-8936-aa61be6b0636@suse.com>
 <agbcfy3TSg7dpkkx@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agbcfy3TSg7dpkkx@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778834940-4156BA53-E47EDF13/0/0
X-purgate-type: clean
X-purgate-size: 3555

On 15.05.2026 10:42, Roger Pau Monné wrote:
> On Fri, May 15, 2026 at 08:52:03AM +0200, Jan Beulich wrote:
>> On 13.05.2026 21:40, Roger Pau Monné wrote:
>>> On Wed, May 13, 2026 at 05:24:13PM +0200, Jan Beulich wrote:
>>>> On 13.05.2026 17:14, Roger Pau Monné wrote:
>>>>> On Wed, May 13, 2026 at 04:58:57PM +0200, Jan Beulich wrote:
>>>>>> On 13.05.2026 16:24, Roger Pau Monné wrote:
>>>>>>> On Tue, May 12, 2026 at 04:59:35PM +0200, Jan Beulich wrote:
>>>>>>>> @@ -515,7 +538,10 @@ static int rtc_ioport_write(void *opaque
>>>>>>>>              /* Fetch the current time and update just this field. */
>>>>>>>>              s->current_tm = gmtime(get_localtime(d));
>>>>>>>>              rtc_copy_date(s);
>>>>>>>> -            s->hw.cmos_data[s->hw.cmos_index] = data;
>>>>>>>> +            if ( s->hw.cmos_index != RTC_CENTURY )
>>>>>>>> +                s->hw.cmos_data[s->hw.cmos_index] = data;
>>>>>>>> +            else
>>>>>>>> +                s->hw.century = data;
>>>>>>>>              rtc_set_time(s);
>>>>>>>>          }
>>>>>>>>          alarm_timer_update(s);
>>>>>>>
>>>>>>> Don't you need to adjust the tail return of rtc_ioport_write() (below
>>>>>>> the context here) to return 0 when s->hw.cmos_index == RTC_CENTURY, so
>>>>>>> the set value is also propagated to the DM, and not only the index?
>>>>>>
>>>>>> I don't think so. The case of us not handling RTC_CENTURY is dealt with
>>>>>> earlier in the function. Whereas when we handle the field, we don't want
>>>>>> to forward (like for all the other RTC fields).
>>>>>
>>>>> Right, so then you also want to adjust the top part of
>>>>> rtc_ioport_write() to not propagate the write to the 0x70 IO port when
>>>>> data is RTC_CENTURY?  Otherwise you propagate the write to port 0x70,
>>>>> but not the read/write to port 0x71?
>>>>
>>>> I can't, as whether to forward depends on the data subsequently written.
>>>> Propagating the index "just in case" is the only workable model that I
>>>> can think of. And as guests can do any number of successive port 70
>>>> writes, the DM needs to cope with this anyway.
>>>
>>> Hm, I see, the newly written value to port 0x71 is taken into account
>>> to decide whether to forward to the DM or not.
>>>
>>> I wonder: would it be simpler to extend the size of the hvm_hw_rtc
>>> structure so that Xen can detect whether the incoming VM has support
>>> for the century field, and then avoid having to play heuristics
>>> with the value itself?
>>
>> It would surely be possible (and we may need to do so anyway for the alarm
>> date/month fields), but I wanted to get away without doing so here. And it
>> seemed pretty reasonable to leverage the padding field for this.
>>
>>>  We would know ahead of starting the guest
>>> whether RTC_CENTURY is supposed to be handled by Xen or forwarded to
>>> the DM, and we won't be limited to use 0 as the sentinel value for not
>>> exposing RTC_CENTURY.
>>
>> These are the positive aspects. The negative one is that "backwards"
>> migration would break with the larger record size. Whereas with the padding
>> field used, it won't: The guest likely won't notice that the value at 0x32
>> isn't updated anymore, i.e. stays at value 20.
> 
> Sorry, maybe I'm confused, but when migrating backwards the access
> won't be handled by Xen anymore, and hence we don't know what it would
> return, it's up to the catch-all device model.

Oh, you're right of course. The value returned would be whatever the DM
deems appropriate.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 09:20:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 09:20:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309765.1580812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNoie-0005IH-IC; Fri, 15 May 2026 09:20:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309765.1580812; Fri, 15 May 2026 09:20:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNoie-0005IA-FO; Fri, 15 May 2026 09:20:32 +0000
Received: by outflank-mailman (input) for mailman id 1309765;
 Fri, 15 May 2026 09:20:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wNoic-0005I4-KI
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 09:20:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNoib-00HQiT-Q9
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 11:20:29 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e2aefe501000f373@swg.vates.tech>)
 id 6a06e555-2eae-0a2a0a5409dd-0a2a4506b980-32
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 11:20:29 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e2aefe501000f373@swg.vates.tech>)
 id 6a06e55d-7371-0a2a45060019-b9ff1c229f3b-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 11:20:29 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e2aefe501000f373.006 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 15 May 2026 09:20:25 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id 9BADE8621D;
 Fri, 15 May 2026 11:20:24 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=1F56fiwydD6Vrx7znhq+zSnJfQ0zQBjy1flII6bm1bw=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=Qp063GoCwJW7jkMgTzLEBsnKp3D1QMS3HAdfUd35RZPhtBJ68hVA/BsbRKpjqnnC7DevzUjal
 Hf/oF/ZVo3YRWNbQ0Df6IZm+o4ZMyCRErMvL7/ihKm1iaXmQRWtnSaa3gJP5dLFPOFB+NZNRE5/
 OeB/mhc5U3eL0iSFlSZWC4mgdfi4bKMF/eklIbT/rMp/T02uIiuUA5+Fc57pqwV5M/WAsqH0GAT
 rszQg+Rfj7K/C/1d4YKZbEhVKWUUpyQsW2Ur1fZ++6kD5R2cl7fXx5uV85E6HrntjG1v/pg+KmW
 FWD/M+qpo6DJTvF3G1PVp3wtTUpOphv36WbBGemNAeDQ==
X-Zone-Loop: 1378a93e5952dd91aef12e5d3963ba4291f68c8d35a9
x-campaign-type: default
x-transaction-id: 23f7d7e2-362e-4f1b-b211-77adbd4236a3
x-swg-uid: 01-47589dff-c9f6-48a8-837d-444f2d67ecca
X-Mailer: Sweego
Message-ID:
 <1778836825.8631fc262581453bbf619ec5b2062170.19e2aefe501000f373@vates.tech>
x-swg-bid: 1778836825.8631fc262581453bbf619ec5b2062170.19e2aefe501000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 15 May 2026 11:20:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 v6] x86/svm: Support vNMI on capable hardware
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20260514175623.1869042-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
Autocrypt: addr=teddy.astie@vates.tech; keydata=
 xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7LTBVHV/XO
 Zw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJT4ny+OGntnJntUoR
 KRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJAWicutjkkUgd28Bh6HV9EIumH
 tCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaT
 VqMdqul07o72m3eA2mf+LMu9a04FX/d4wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/
 EoucejoZ5SH49ksmVAmKOLktOaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+S
 PhHar7TPKjFz0G3DPNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89
 MXfQXZ3qt1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
 LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWjmoACGwME
 CwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNzuyOVCskwfUZPla6Z
 pd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp0x0HfuhcYfAYPR46XHTvjaJE
 v99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuROxdK8G+YHccJY8PvWSq2K2yiae2KGiAv
 1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhP
 eP3IdpfWc8cyRLXF06Rk46YMYCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcT
 UwgnYlFRk2FLq0QeKEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9
 Egr/Wmu3MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
 f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEMAKiQiZa3
 yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ3DbVf+en3/FvdVZg
 2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTmetSG5/52AjtmPFtlXAk0NmLv
 fJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0s3109sJeXT5ImVdphFs9cvyZyBT9t1Pb
 Rowv58EgV0zE4hbAeVkULAbxFV5b/ExTjjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKb
 Yu6NCfiHfEyB3Xyg9hfdrRgjMRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ov
 XoK4jm+Py0FiUGUaA6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/
 eVtR2Q1wZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
 IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWjmoACGwwA
 CgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiVoUiHYN5QwhnbZnsa
 JDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764QxyX6rld2f2RcWkDuBHun55ZWXj
 by8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk/dS0XTOQi2wVUb17sW/+ybCEokdVacZG
 zOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fuoGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+
 lOWSvdNHgoEkWR0RXBPQjnGmLKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/Off
 O485NOTKwGOxyWb006cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR
 8ULR9nX0LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
 x9fhaZEsniw8/bYgC3igkk5YJiOa
In-Reply-To: <20260514175623.1869042-1-andrew.cooper3@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------r0mjTP4Oij12D8dvz8orKq6m"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1778836824784
X-purgate-ID: tlsNG-16d1c6/1778836829-8EF89D75-1A762C68/10/73395122804
X-purgate-type: spam
X-purgate-size: 14119

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------r0mjTP4Oij12D8dvz8orKq6m
Content-Type: multipart/mixed; boundary="------------aPrWUFvmXbGpjde2gSNJP9CV";
 protected-headers="v1"
From: Teddy Astie <teddy.astie@vates.tech>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Message-ID: <d484df63-3106-4328-b5d1-7f8df116105a@vates.tech>
Subject: Re: [PATCH for-4.22 v6] x86/svm: Support vNMI on capable hardware
References: <20260514175623.1869042-1-andrew.cooper3@citrix.com>
In-Reply-To: <20260514175623.1869042-1-andrew.cooper3@citrix.com>

--------------aPrWUFvmXbGpjde2gSNJP9CV
Content-Type: multipart/mixed; boundary="------------a96RPmdQMuETDhowlGMZXEjv"

--------------a96RPmdQMuETDhowlGMZXEjv
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

TGUgMTQvMDUvMjAyNiDDoCAxOTo1OSwgQW5kcmV3IENvb3BlciBhIMOpY3JpdMKgOg0KPiBG
cm9tOiBBYmRlbGthcmVlbSBBYmRlbHNhYW1hZCA8YWJkZWxrYXJlZW0uYWJkZWxzYWFtYWRA
Y2l0cml4LmNvbT4NCj4gDQo+IFN0YXJ0aW5nIHdpdGggWmVuNCwgQU1EIENQVXMgY2FuIHZp
cnR1YWxpc2UgTk1JcyBmb3IgYSBndWVzdC4gIE9uIG9sZGVyDQo+IGhhcmR3YXJlLCBkZXRl
cm1pbmluZyB3aGVuIGFuIE5NSSBpcyBzYWZlIHRvIGRlbGl2ZXIgaXMgYSBjaGFsbGVuZ2Ug
YW5kIFhlbg0KPiBkb2VzIG5vdCBoYW5kbGUgYWxsIGNvcm5lciBjYXNlcyBjb3JyZWN0bHku
DQo+IA0KPiBXaXRoIHZOTUksIHRoZXJlIGlzIGFuIGVuYWJsZW1lbnQgYml0IGFuZCB0d28g
bmV3IGJpdHMgb2Ygc3RhdGUgaW4gdGhlIFZNQ0I7IGENCj4gcGVuZGluZyBiaXQsIGFuZCBh
IGJsb2NrZWQgYml0LiAgVGhlc2UgZGlyZWN0bHkgbWFwIHRvIHRoZSBDUFUgc3RhdGUgZm9y
DQo+IGhhbmRsaW5nIE5NSXMsIGFuZCBhcmUgbWFpbnRhaW5lZCBieSBoYXJkd2FyZSBkdXJp
bmcgdGhlIHJ1bm5pbmcgb2YgdGhlIHZDUFUuDQo+IA0KPiBXaGVuIHZOTUkgaXMgZW5hYmxl
ZCwgaGF2ZSBzdm1fe2dldCxzZXR9c2V0X2ludGVycnVwdF9zaGFkb3coKSB3b3JrIGluIHRl
cm1zDQo+IG9mIHRoZSB2bm1pX2Jsb2NraW5nIGJpdCByYXRoZXIgdGhhbiB0aGUgSVJFVCBp
bnRlcmNlcHQuICBUaGlzIGFsbG93cyBhbg0KPiBlbXVsYXRlZCBJUkVUIGluc3RydWN0aW9u
IHRvIHJlLWVuYWJsZSBOTUlzLg0KPiANCj4gV2hlbiBpbmplY3RpbmcgYSBuZXcgTk1JLCBz
aW1wbHkgc2V0IHRoZSB2bm1pX3BlbmRpbmcgYml0OyBoYXJkd2FyZSB3aWxsDQo+IGRlbGl2
ZXIgdGhlIE5NSSB0byB0aGUgZ3Vlc3QgYXQgdGhlIG5leHQgc3VpdGFibGUganVuY3R1cmUu
DQo+IA0KPiBPbmUgY29tcGxpY2F0aW9uIGlzIHRoYXQsIHdoZW4gZGVsaXZlcmluZyBhIHNl
Y29uZCBOTUkgYmVmb3JlIHRoZSBmaXJzdCBoYXMNCj4gY29tcGxldGVkLCB0aGUgbWl4IGJl
dHdlZW4gY29tbW9uIEhWTSBsb2dpYyBhbmQgU1ZNIHNwZWNpZmljIGxvZ2ljIHdpbGwgdHJ5
IHRvDQo+IG9wZW4gYW4gTk1JIHdpbmRvdywgbWFsZnVuY3Rpb25pbmcgYXMgaXQgZG9lcyBz
by4gIFdoZW4gdk5NSSBpcyBlbmFibGVkLCBzaG9ydA0KPiBjaXJjdWl0IHRoaXMgdG8gbm90
IGNvbnNpZGVyIE5NSXMgYmxvY2tlZC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEFiZGVsa2Fy
ZWVtIEFiZGVsc2FhbWFkIDxhYmRlbGthcmVlbS5hYmRlbHNhYW1hZEBjaXRyaXguY29tPg0K
PiBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXgu
Y29tPg0KPiAtLS0NCj4gQ0M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4g
Q0M6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPg0KPiBDQzogVGVk
ZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVzLnRlY2g+DQo+IENDOiBKYXNvbiBBbmRyeXVr
IDxqYXNvbi5hbmRyeXVrQGFtZC5jb20+DQo+IENDOiBPbGVrc2lpIEt1cm9jaGtvIDxvbGVr
c2lpLmt1cm9jaGtvQGdtYWlsLmNvbT4NCj4gDQo+IEZvciA0LjIyLiAgVGhpcyBpcyBzb21l
d2hhdCBvdmVyZHVlIGFuZCBtYWtlcyBhIGNvbmNyZXRlIGltcHJvdmVtZW50IHRvIE5NSQ0K
PiBoYW5kbGluZyBvbiByZWNlbnQgQU1EIGhhcmR3YXJlLg0KPiANCj4gdjY6DQo+ICAgKiBQ
bHVtYiB0aHJvdWdoIHN2bV97Z2V0LHNldH1zZXRfaW50ZXJydXB0X3NoYWRvdygpIHNvIHRo
YXQgZW11bGF0ZWQgSVJFVA0KPiAgICAgd29ya3MsIGFzIHJlcXVlc3RlZCBzZXZlcmFsIHRp
bWVzIGR1cmluZyByZXZpZXcgb2YgZWFybGllciByZXZpc2lvbnMuDQo+ICAgKiBFeHBhbmQg
dGhlIGNvbW1pdCBtZXNzYWdlDQo+IA0KPiBUaGUgIXZOTUkgY2FzZSBpcyBldmVuIG1vcmUg
YnJva2VuIHRoYW4gSSdkIHJlYWxpc2VkLiAgQmVzaWRlcyB0aGUgIndoYXQgaWYNCj4gdGhl
IElSRVQgZmF1bHRzPyIgcHJvYmxlbSwgc3ZtX2VuYWJsZV9pbnRyX3dpbmRvdygpIGJhc2lj
YWxseSBpZ25vcmVzIHRoZSBOTUkNCj4gY2FzZSBhbmQgc2ltcGx5IHJlLWVudGVycyB0aGUg
Vk0uICBUaGlzIGNhdXNlcyB0aGUgcGVuZGluZyBOTUkgdG8gb25seSBiZQ0KPiBpbmplY3Rl
ZCBuZXh0IHRpbWUgdGhlcmUgaXMgYSBWTUV4aXQuDQoNCkRvZXMgdGhhdCBoYXBwZW5zIG9m
dGVuIGluIHByYWN0aWNlID8NCg0KPiAtLS0NCj4gICB4ZW4vYXJjaC94ODYvaHZtL3N2bS9p
bnRyLmMgfCAxOSArKysrKysrKysrKysrKysrKysrDQo+ICAgeGVuL2FyY2gveDg2L2h2bS9z
dm0vc3ZtLmMgIHwgMjMgKysrKysrKysrKysrKysrKystLS0tLS0NCj4gICB4ZW4vYXJjaC94
ODYvaHZtL3N2bS92bWNiLmMgfCAgMiArKw0KPiAgIDMgZmlsZXMgY2hhbmdlZCwgMzggaW5z
ZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJj
aC94ODYvaHZtL3N2bS9pbnRyLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9pbnRyLmMNCj4g
aW5kZXggNjQ1M2E0NmI4NTA4Li5jZjA2MjFkMmY2MjggMTAwNjQ0DQo+IC0tLSBhL3hlbi9h
cmNoL3g4Ni9odm0vc3ZtL2ludHIuYw0KPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9p
bnRyLmMNCj4gQEAgLTMzLDYgKzMzLDEyIEBAIHN0YXRpYyB2b2lkIHN2bV9pbmplY3Rfbm1p
KHN0cnVjdCB2Y3B1ICp2KQ0KPiAgICAgICB1MzIgZ2VuZXJhbDFfaW50ZXJjZXB0cyA9IHZt
Y2JfZ2V0X2dlbmVyYWwxX2ludGVyY2VwdHModm1jYik7DQo+ICAgICAgIGludGluZm9fdCBl
dmVudDsNCj4gICANCj4gKyAgICBpZiAoIHZtY2ItPl92aW50ci5maWVsZHMudm5taV9lbmFi
bGUgKQ0KPiArICAgIHsNCj4gKyAgICAgICAgdm1jYi0+X3ZpbnRyLmZpZWxkcy52bm1pX3Bl
bmRpbmcgPSB0cnVlOw0KPiArICAgICAgICByZXR1cm47DQo+ICsgICAgfQ0KPiArDQo+ICAg
ICAgIGV2ZW50LnJhdyA9IDA7DQo+ICAgICAgIGV2ZW50LnYgPSB0cnVlOw0KPiAgICAgICBl
dmVudC50eXBlID0gWDg2X0VUX05NSTsNCj4gQEAgLTE0Miw2ICsxNDgsMTkgQEAgdm9pZCBh
c21saW5rYWdlIHN2bV9pbnRyX2Fzc2lzdCh2b2lkKQ0KPiAgICAgICAgICAgICAgIHJldHVy
bjsNCj4gICANCj4gICAgICAgICAgIGludGJsayA9IGh2bV9pbnRlcnJ1cHRfYmxvY2tlZCh2
LCBpbnRhY2spOw0KPiArDQo+ICsgICAgICAgIC8qDQo+ICsgICAgICAgICAqIFdoZW4gdk5N
SSBpcyBhY3RpdmUsIE5NSXMgY2FuIGJlIGluamVjdGVkIGJ5IHNldHRpbmcgdm5taV9wZW5k
aW5nDQo+ICsgICAgICAgICAqIGFuZCBoYXJkd2FyZSB3aWxsIGRlbGl2ZXIgdGhlbSBhdCB0
aGUgbmV4dCBhcHByb3ByaWF0ZSBvcHBvcnR1bml0eS4NCj4gKyAgICAgICAgICogQ29uc2lk
ZXIgdGhlbSBub3QgYmxvY2tlZCwgdG8gYXZvaWQgdHJ5aW5nIHRvIG9wZW4gYW4gTk1JIFdp
bmRvdy4NCj4gKyAgICAgICAgICoNCj4gKyAgICAgICAgICogQ29ycmVjdG5lc3MgaGVyZSBy
ZWxpZXMgb24gdGhlIGZhY3QgdGhhdCBhbGwgdk5NSSBjYXBhYmxlIGhhcmR3YXJlDQo+ICsg
ICAgICAgICAqIGhhcyB2R0lGLCBhbmQgdkdJRiBpcyBhbHdheXMgYWN0aXZhdGVkIHdoZW4g
YXBwcm9wcmlhdGUuDQo+ICsgICAgICAgICAqLw0KPiArICAgICAgICBpZiAoIGludGJsayA9
PSBodm1faW50YmxrX25taV9pcmV0ICYmDQo+ICsgICAgICAgICAgICAgdm1jYi0+X3ZpbnRy
LmZpZWxkcy52bm1pX2VuYWJsZSApDQo+ICsgICAgICAgICAgICBpbnRibGsgPSBodm1faW50
YmxrX25vbmU7DQo+ICsNCj4gICAgICAgICAgIGlmICggaW50YmxrID09IGh2bV9pbnRibGtf
c3ZtX2dpZiApDQo+ICAgICAgICAgICB7DQo+ICAgICAgICAgICAgICAgQVNTRVJUKG5lc3Rl
ZGh2bV9lbmFibGVkKHYtPmRvbWFpbikpOw0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2
L2h2bS9zdm0vc3ZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYw0KPiBpbmRleCBm
NDlkMmViYmZkZDUuLjQ5ZmNkZDkwNmNmOCAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gveDg2
L2h2bS9zdm0vc3ZtLmMNCj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMNCj4g
QEAgLTQ5OSw3ICs0OTksOSBAQCBzdGF0aWMgdW5zaWduZWQgY2ZfY2hlY2sgaW50IHN2bV9n
ZXRfaW50ZXJydXB0X3NoYWRvdyhzdHJ1Y3QgdmNwdSAqdikNCj4gICAgICAgaWYgKCB2bWNi
LT5pbnRfc3RhdC5pbnRyX3NoYWRvdyApDQo+ICAgICAgICAgICBpbnRyX3NoYWRvdyB8PSBI
Vk1fSU5UUl9TSEFET1dfTU9WX1NTIHwgSFZNX0lOVFJfU0hBRE9XX1NUSTsNCj4gICANCj4g
LSAgICBpZiAoIHZtY2JfZ2V0X2dlbmVyYWwxX2ludGVyY2VwdHModm1jYikgJiBHRU5FUkFM
MV9JTlRFUkNFUFRfSVJFVCApDQo+ICsgICAgaWYgKCB2bWNiLT5fdmludHIuZmllbGRzLnZu
bWlfZW5hYmxlDQo+ICsgICAgICAgICA/IHZtY2ItPl92aW50ci5maWVsZHMudm5taV9ibG9j
a2luZw0KPiArICAgICAgICAgOiAodm1jYl9nZXRfZ2VuZXJhbDFfaW50ZXJjZXB0cyh2bWNi
KSAmIEdFTkVSQUwxX0lOVEVSQ0VQVF9JUkVUKSApDQo+ICAgICAgICAgICBpbnRyX3NoYWRv
dyB8PSBIVk1fSU5UUl9TSEFET1dfTk1JOw0KPiAgIA0KPiAgICAgICByZXR1cm4gaW50cl9z
aGFkb3c7DQo+IEBAIC01MDksMTUgKzUxMSwyMyBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBz
dm1fc2V0X2ludGVycnVwdF9zaGFkb3coDQo+ICAgICAgIHN0cnVjdCB2Y3B1ICp2LCB1bnNp
Z25lZCBpbnQgaW50cl9zaGFkb3cpDQo+ICAgew0KPiAgICAgICBzdHJ1Y3Qgdm1jYl9zdHJ1
Y3QgKnZtY2IgPSB2LT5hcmNoLmh2bS5zdm0udm1jYjsNCj4gLSAgICB1MzIgZ2VuZXJhbDFf
aW50ZXJjZXB0cyA9IHZtY2JfZ2V0X2dlbmVyYWwxX2ludGVyY2VwdHModm1jYik7DQo+ICsg
ICAgYm9vbCBibG9ja19ubWkgPSBpbnRyX3NoYWRvdyAmIEhWTV9JTlRSX1NIQURPV19OTUk7
DQo+ICAgDQo+ICAgICAgIHZtY2ItPmludF9zdGF0LmludHJfc2hhZG93ID0NCj4gICAgICAg
ICAgICEhKGludHJfc2hhZG93ICYgKEhWTV9JTlRSX1NIQURPV19NT1ZfU1N8SFZNX0lOVFJf
U0hBRE9XX1NUSSkpOw0KPiAgIA0KPiAtICAgIGdlbmVyYWwxX2ludGVyY2VwdHMgJj0gfkdF
TkVSQUwxX0lOVEVSQ0VQVF9JUkVUOw0KPiAtICAgIGlmICggaW50cl9zaGFkb3cgJiBIVk1f
SU5UUl9TSEFET1dfTk1JICkNCj4gLSAgICAgICAgZ2VuZXJhbDFfaW50ZXJjZXB0cyB8PSBH
RU5FUkFMMV9JTlRFUkNFUFRfSVJFVDsNCj4gLSAgICB2bWNiX3NldF9nZW5lcmFsMV9pbnRl
cmNlcHRzKHZtY2IsIGdlbmVyYWwxX2ludGVyY2VwdHMpOw0KPiArICAgIGlmICggdm1jYi0+
X3ZpbnRyLmZpZWxkcy52bm1pX2VuYWJsZSApDQo+ICsgICAgICAgIHZtY2ItPl92aW50ci5m
aWVsZHMudm5taV9ibG9ja2luZyA9IGJsb2NrX25taTsNCj4gKyAgICBlbHNlDQo+ICsgICAg
ew0KPiArICAgICAgICB1aW50MzJfdCBnZW4xID0gdm1jYl9nZXRfZ2VuZXJhbDFfaW50ZXJj
ZXB0cyh2bWNiKTsNCj4gKw0KPiArICAgICAgICBnZW4xICY9IH5HRU5FUkFMMV9JTlRFUkNF
UFRfSVJFVDsNCj4gKyAgICAgICAgaWYgKCBibG9ja19ubWkgKQ0KPiArICAgICAgICAgICAg
Z2VuMSB8PSBHRU5FUkFMMV9JTlRFUkNFUFRfSVJFVDsNCj4gKw0KPiArICAgICAgICB2bWNi
X3NldF9nZW5lcmFsMV9pbnRlcmNlcHRzKHZtY2IsIGdlbjEpOw0KPiArICAgIH0NCj4gICB9
DQo+ICAgDQo+ICAgc3RhdGljIGludCBjZl9jaGVjayBzdm1fZ3Vlc3RfeDg2X21vZGUoc3Ry
dWN0IHZjcHUgKnYpDQo+IEBAIC0yNDYwLDYgKzI0NzAsNyBAQCBjb25zdCBzdHJ1Y3QgaHZt
X2Z1bmN0aW9uX3RhYmxlICogX19pbml0IHN0YXJ0X3N2bSh2b2lkKQ0KPiAgICAgICBQKGNw
dV9oYXNfdHNjX3JhdGlvLCAiVFNDIFJhdGUgTVNSIik7DQo+ICAgICAgIFAoY3B1X2hhc19z
dm1fc3NzLCAiTlBUIFN1cGVydmlzb3IgU2hhZG93IFN0YWNrIik7DQo+ICAgICAgIFAoY3B1
X2hhc19zdm1fc3BlY19jdHJsLCAiTVNSX1NQRUNfQ1RSTCB2aXJ0dWFsaXNhdGlvbiIpOw0K
PiArICAgIFAoY3B1X2hhc19zdm1fdm5taSwgIlZpcnR1YWwgTk1JIik7DQo+ICAgICAgIFAo
Y3B1X2hhc19zdm1fYnVzX2xvY2ssICJCdXMgTG9jayBGaWx0ZXIiKTsNCj4gICAjdW5kZWYg
UA0KPiAgIA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vdm1jYi5jIGIv
eGVuL2FyY2gveDg2L2h2bS9zdm0vdm1jYi5jDQo+IGluZGV4IDUxNGU1MzBjYmRhNy4uOTc1
YTFlYWVmODA2IDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS92bWNiLmMN
Cj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vdm1jYi5jDQo+IEBAIC0xODUsNiArMTg1
LDggQEAgc3RhdGljIGludCBjb25zdHJ1Y3Rfdm1jYihzdHJ1Y3QgdmNwdSAqdikNCj4gICAg
ICAgaWYgKCBkZWZhdWx0X3hlbl9zcGVjX2N0cmwgPT0gU1BFQ19DVFJMX1NUSUJQICkNCj4g
ICAgICAgICAgIHYtPmFyY2gubXNycy0+c3BlY19jdHJsLnJhdyA9IFNQRUNfQ1RSTF9TVElC
UDsNCj4gICANCj4gKyAgICB2bWNiLT5fdmludHIuZmllbGRzLnZubWlfZW5hYmxlID0gY3B1
X2hhc19zdm1fdm5taTsNCj4gKw0KPiAgICAgICByZXR1cm4gMDsNCj4gICB9DQo+ICAgDQoN
ClJldmlld2VkLWJ5OiBUZWRkeSBBc3RpZSA8dGVkZHkuYXN0aWVAdmF0ZXMudGVjaD4NCg0K
VGVkZHkNCg==
--------------a96RPmdQMuETDhowlGMZXEjv
Content-Type: application/pgp-keys; name="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Disposition: attachment; filename="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7L
TBVHV/XOZw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJ
T4ny+OGntnJntUoRKRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJA
WicutjkkUgd28Bh6HV9EIumHtCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO
8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaTVqMdqul07o72m3eA2mf+LMu9a04FX/d4
wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/EoucejoZ5SH49ksmVAmKOLkt
OaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+SPhHar7TPKjFz0G3D
PNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89MXfQXZ3q
t1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWj
moACGwMECwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNz
uyOVCskwfUZPla6Zpd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp
0x0HfuhcYfAYPR46XHTvjaJEv99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuR
OxdK8G+YHccJY8PvWSq2K2yiae2KGiAv1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50
wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhPeP3IdpfWc8cyRLXF06Rk46YM
YCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcTUwgnYlFRk2FLq0Qe
KEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9Egr/Wmu3
MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEM
AKiQiZa3yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ
3DbVf+en3/FvdVZg2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTm
etSG5/52AjtmPFtlXAk0NmLvfJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0
s3109sJeXT5ImVdphFs9cvyZyBT9t1PbRowv58EgV0zE4hbAeVkULAbxFV5b/ExT
jjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKbYu6NCfiHfEyB3Xyg9hfdrRgj
MRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ovXoK4jm+Py0FiUGUa
A6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/eVtR2Q1w
ZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWj
moACGwwACgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiV
oUiHYN5QwhnbZnsaJDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764Qxy
X6rld2f2RcWkDuBHun55ZWXjby8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk
/dS0XTOQi2wVUb17sW/+ybCEokdVacZGzOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fu
oGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+lOWSvdNHgoEkWR0RXBPQjnGm
LKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/OffO485NOTKwGOxyWb0
06cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR8ULR9nX0
LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
x9fhaZEsniw8/bYgC3igkk5YJiOa
=3DlUIA
-----END PGP PUBLIC KEY BLOCK-----

--------------a96RPmdQMuETDhowlGMZXEjv--

--------------aPrWUFvmXbGpjde2gSNJP9CV--

--------------r0mjTP4Oij12D8dvz8orKq6m
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmoG5VgFAwAAAAAACgkQZg+p0QLLz9Ax
eQv/axP+SAXwNFGEqQMn8UmED/QyIxn3EKZEc/TAuR5fcLtNKxO0onkkgIcxRDYQaqBVkjSXUDoS
VWAGs3CCDmcWpFgwl/tix/BuGpmNXS3aOH687dx092nxMWM2rsAPew3AsM6QKgebd6kOjSUaSzpi
tuv2Y+gxnlYXAWUNfp8S1A9sYWSe7rbWnITKJTC5YycdQZ0FUYiuMwib6tIzjw421hRahEQpDOC6
HpAmxdYmGGTHzN7Lgh3hJi/ldEZJhpN9SBzqlj+45SuZD45Z6BECJUktqB6L2epZvLiphpv0+CfS
UXDcqrCzg7zKDke7gGy7q5NR1MlOX+FgyzmHtfqzp666ocLUJ+0+HCZK7BEgodWR7ZLDlTQXGINL
1R65hq6Hxz25P5uv5JdiJJ6p2Ko8AHlsJ2fFCNmqEFLCmBkPTT3HPX4Jy3QV5IVWQgvWj25rUeYZ
ITpvix/DAUxLYhgzyE7jp7bNt0EB92hQF4IliDz5yOpZ4mOvUm1fJiPU8eTW
=tQ4B
-----END PGP SIGNATURE-----

--------------r0mjTP4Oij12D8dvz8orKq6m--


From xen-devel-bounces@lists.xenproject.org Fri May 15 09:30:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 09:30:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309779.1580821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNosC-00079j-Jc; Fri, 15 May 2026 09:30:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309779.1580821; Fri, 15 May 2026 09:30:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNosC-00079c-GT; Fri, 15 May 2026 09:30:24 +0000
Received: by outflank-mailman (input) for mailman id 1309779;
 Fri, 15 May 2026 09:30:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e2af8f2aa000f373@swg.vates.tech>)
 id 1wNosB-00079W-3C
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 09:30:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNosA-0081cM-FG
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 11:30:22 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e2af8f2aa000f373@swg.vates.tech>)
 id 6a06e7a9-e002-0a2a0a5209dd-0a2a45029aaa-26
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 11:30:22 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e2af8f2aa000f373@swg.vates.tech>)
 id 6a06e7ae-af86-0a2a45020019-b9ff1c22970d-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 11:30:22 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e2af8f2aa000f373.003 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 15 May 2026 09:30:18 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id 0AFF080968;
 Fri, 15 May 2026 11:30:18 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=H5+Kpq4F+Sxz16LRD/g9nIS4BaFoIwiuH7jWA6Skb0s=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=ZxIAXgpMk/0oWuVGz4gXDX0iFnfZi4Su/TZAWX6vU1qNhlbAzS8rGiynsbHsXJap9gEaaNySj
 Bx6BGuh+v1BiVuKL5pNE+zLUW9gX1aac85GYbeXYv6+t7Nr6jX5BE87SEFMOO93AWCoEI7wGEnS
 s5h7bm9FRzePW6rz/jrHUBG3U3LyBMGuweDngKhp+/Fndx+V18U4JBeJabmHDjGji6Cu+pvJzqL
 xmA8+iJ87Wg/OHD+BtsUANs0w7ks24clAXQ9sm77oOhQugUf/Wxqmuc3mZ5Uq7akqT0bRB+SmYK
 RnGraK8t5yv2MDChm0Y/rNh2oc49SZhvjjzfINnvBotg==
X-Zone-Loop: 1e0cb2773219cc5e2c08cd4b26697567468797e4ecd5
x-campaign-type: default
x-transaction-id: f0d0204c-b99b-466b-8cee-6e2bca697a6f
x-swg-uid: 01-117568cb-0306-4dff-8de4-fdb616817976
X-Mailer: Sweego
Message-ID:
 <1778837418.8631fc262581453bbf619ec5b2062170.19e2af8f2aa000f373@vates.tech>
x-swg-bid: 1778837418.8631fc262581453bbf619ec5b2062170.19e2af8f2aa000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 15 May 2026 11:30:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/emul: Adjust handling of CR8_LEGACY
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20260513171553.1772095-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
Autocrypt: addr=teddy.astie@vates.tech; keydata=
 xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7LTBVHV/XO
 Zw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJT4ny+OGntnJntUoR
 KRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJAWicutjkkUgd28Bh6HV9EIumH
 tCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaT
 VqMdqul07o72m3eA2mf+LMu9a04FX/d4wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/
 EoucejoZ5SH49ksmVAmKOLktOaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+S
 PhHar7TPKjFz0G3DPNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89
 MXfQXZ3qt1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
 LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWjmoACGwME
 CwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNzuyOVCskwfUZPla6Z
 pd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp0x0HfuhcYfAYPR46XHTvjaJE
 v99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuROxdK8G+YHccJY8PvWSq2K2yiae2KGiAv
 1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhP
 eP3IdpfWc8cyRLXF06Rk46YMYCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcT
 UwgnYlFRk2FLq0QeKEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9
 Egr/Wmu3MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
 f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEMAKiQiZa3
 yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ3DbVf+en3/FvdVZg
 2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTmetSG5/52AjtmPFtlXAk0NmLv
 fJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0s3109sJeXT5ImVdphFs9cvyZyBT9t1Pb
 Rowv58EgV0zE4hbAeVkULAbxFV5b/ExTjjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKb
 Yu6NCfiHfEyB3Xyg9hfdrRgjMRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ov
 XoK4jm+Py0FiUGUaA6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/
 eVtR2Q1wZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
 IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWjmoACGwwA
 CgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiVoUiHYN5QwhnbZnsa
 JDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764QxyX6rld2f2RcWkDuBHun55ZWXj
 by8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk/dS0XTOQi2wVUb17sW/+ybCEokdVacZG
 zOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fuoGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+
 lOWSvdNHgoEkWR0RXBPQjnGmLKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/Off
 O485NOTKwGOxyWb006cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR
 8ULR9nX0LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
 x9fhaZEsniw8/bYgC3igkk5YJiOa
In-Reply-To: <20260513171553.1772095-1-andrew.cooper3@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------zWX35ZY3buMbB3rg6TvzTSuS"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1778837418127
X-purgate-ID: tlsNG-720697/1778837422-8137C161-CB629B4E/0/0
X-purgate-type: clean
X-purgate-size: 7932

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------zWX35ZY3buMbB3rg6TvzTSuS
Content-Type: multipart/mixed; boundary="------------xCGkNzhQKMsfsQQfhjU99e0L";
 protected-headers="v1"
From: Teddy Astie <teddy.astie@vates.tech>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Message-ID: <6becf2c3-625f-43aa-8f87-5a8ad0ff0fc1@vates.tech>
Subject: Re: [PATCH v2] x86/emul: Adjust handling of CR8_LEGACY
References: <20260513171553.1772095-1-andrew.cooper3@citrix.com>
In-Reply-To: <20260513171553.1772095-1-andrew.cooper3@citrix.com>

--------------xCGkNzhQKMsfsQQfhjU99e0L
Content-Type: multipart/mixed; boundary="------------heR2UuPmG24aVC945nuMx6iC"

--------------heR2UuPmG24aVC945nuMx6iC
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

TGUgMTMvMDUvMjAyNiDDoCAxOToxOCwgQW5kcmV3IENvb3BlciBhIMOpY3JpdMKgOg0KPiBU
aGUgQ1I4X0xFR0FDWSBmZWF0dXJlIHdhcyBpbnRyb2R1Y2VkIGluIHRoZSBLOCBSZXZpc2lv
biBGLiAgSXQgZG9lc24ndCBleGlzdA0KPiBpbiBwcmlvciByZXZpc2lvbnMgb2YgdGhlIEs4
Lg0KPiANCj4gRnVydGhlcm1vcmUsIGZyb20gQVBNIFZvbDIgMy4xLjUgQ1I4IChUYXNrIFBy
aW9yaXR5IFJlZ2lzdGVyLCBUUFIpOg0KPiANCj4gICAgVGhlIEFNRDY0IGFyY2hpdGVjdHVy
ZSBpbnRyb2R1Y2VzIGEgbmV3IGNvbnRyb2wgcmVnaXN0ZXIsIENSOCwgZGVmaW5lZCBhcw0K
PiAgICB0aGUgdGFzayBwcmlvcml0eSByZWdpc3RlciAoVFBSKS4NCj4gDQo+IEFkZGl0aW9u
YWxseSwgZnJvbSBBUE0gVm9sMyA0IFN5c3RlbSBJbnN0cnVjdGlvbnMgTU9WIENSbjoNCj4g
DQo+ICAgIENSOCBjYW4gYmUgcmVhZCBhbmQgd3JpdHRlbiBpbiA2NC1iaXQgbW9kZSwgdXNp
bmcgYSBSRVggcHJlZml4LiAgQ1I4IGNhbiBiZQ0KPiAgICByZWFkIGFuZCB3cml0dGVuIGlu
IGFsbCBtb2RlcyB1c2luZyBhIExPQ0sgcHJlZml4IGluc3RlYWQgb2YgYSBSRVggcHJlZml4
IHRvDQo+ICAgIHNwZWNpZnkgdGhlIGFkZGl0aW9uYWwgb3Bjb2RlIGJpdC4NCj4gDQo+IGku
ZS4gdGhlIExPQ0sgcHJlZml4IHNlcnZlcyBhcyBhbiBhbHRlcm5hdGl2ZSBlbmNvZGluZyBm
b3IgUkVYLlIuDQo+IA0KPiBTd2l0Y2ggZGVjb2RlX3R3b2J5dGUoKSBmcm9tICs9IDggdG8g
fD0gOCB0byBiZXR0ZXIgbWF0Y2ggdGhlIGRlc2NyaXB0aW9uDQo+IGdpdmVuLiAgT3RoZXIg
aW5kaWNhdGlvbnMgdGhhdCB0aGUgZW5jb2RpbmcgaXNuJ3QgYWRkaXRpdmUgYXJlIHRoYXQg
dGhlIENSDQo+IGludGVyY2VwdHMgc3RvcCBhdCAxNSwgYW5kIHRoYXQgTE9DSyBNT1YgQ1I4
IGdlbmVyYXRlcyAjVUQgcmF0aGVyIHRoYW4NCj4gYmVjb21pbmcgYSBDUjAgYWNjZXNzLg0K
PiANCj4gU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0
cml4LmNvbT4NCj4gLS0tDQo+IENDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+
DQo+IENDOiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4NCj4gDQo+
IHYyOg0KPiAgICogTm8gZGVwZW5kZW5jeSBvbiBMTS4NCj4gDQo+IEFsc28sIGRlc2lnbmVy
cyBuZXZlciBwdXQgYW4gQUREIGludG8gc2lsaWNvbiBpZiB0aGV5IGNhbiBwb3NzaWJseSBh
dm9pZCBpdCwNCj4gYmVjYXVzZSBpdCdzIGxhcmdlIGFuZCBzbG93IGNvbXBhcmVkIHRvIHRo
ZSBzaW5nbGUgT1IgZ2F0ZSBuZWVkZWQgaW4gdGhpcw0KPiBjYXNlLg0KPiAtLS0NCj4gICB4
ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUvZGVjb2RlLmMgfCA0ICsrLS0NCj4gICAxIGZpbGUg
Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAt
LWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS9kZWNvZGUuYyBiL3hlbi9hcmNoL3g4
Ni94ODZfZW11bGF0ZS9kZWNvZGUuYw0KPiBpbmRleCAyYzEzMzU2YzRkMTcuLjUxYzg5ZGRm
Yzg5MyAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL2RlY29kZS5j
DQo+ICsrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS9kZWNvZGUuYw0KPiBAQCAtNzgy
LDEwICs3ODIsMTAgQEAgZGVjb2RlX3R3b2J5dGUoc3RydWN0IHg4Nl9lbXVsYXRlX3N0YXRl
ICpzLA0KPiAgICAgICBjYXNlIDB4MjA6IGNhc2UgMHgyMjogLyogbW92IHRvL2Zyb20gY3Ig
Ki8NCj4gICAgICAgICAgIGlmICggcy0+bG9ja19wcmVmaXggJiYgdmNwdV9oYXNfY3I4X2xl
Z2FjeSgpICkNCj4gICAgICAgICAgIHsNCj4gLSAgICAgICAgICAgIHMtPm1vZHJtX3JlZyAr
PSA4Ow0KPiArICAgICAgICAgICAgcy0+bW9kcm1fcmVnIHw9IDg7DQo+ICAgICAgICAgICAg
ICAgcy0+bG9ja19wcmVmaXggPSBmYWxzZTsNCj4gICAgICAgICAgIH0NCj4gLSAgICAgICAg
LyogZmFsbCB0aHJvdWdoICovDQo+ICsgICAgICAgIGZhbGx0aHJvdWdoOw0KPiAgICAgICBj
YXNlIDB4MjE6IGNhc2UgMHgyMzogLyogbW92IHRvL2Zyb20gZHIgKi8NCj4gICAgICAgICAg
IEFTU0VSVChzLT5lYS50eXBlID09IE9QX1JFRyk7IC8qIEVhcmx5IG9wZXJhbmQgYWRqdXN0
bWVudCBlbnN1cmVzIHRoaXMuICovDQo+ICAgICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25f
aWYocy0+bG9ja19wcmVmaXgsIFg4Nl9FWENfVUQpOw0KDQpSZXZpZXdlZC1ieTogVGVkZHkg
QXN0aWUgPHRlZGR5LmFzdGllQHZhdGVzLnRlY2g+DQoNClRlZGR5DQo=
--------------heR2UuPmG24aVC945nuMx6iC
Content-Type: application/pgp-keys; name="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Disposition: attachment; filename="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7L
TBVHV/XOZw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJ
T4ny+OGntnJntUoRKRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJA
WicutjkkUgd28Bh6HV9EIumHtCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO
8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaTVqMdqul07o72m3eA2mf+LMu9a04FX/d4
wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/EoucejoZ5SH49ksmVAmKOLkt
OaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+SPhHar7TPKjFz0G3D
PNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89MXfQXZ3q
t1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWj
moACGwMECwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNz
uyOVCskwfUZPla6Zpd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp
0x0HfuhcYfAYPR46XHTvjaJEv99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuR
OxdK8G+YHccJY8PvWSq2K2yiae2KGiAv1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50
wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhPeP3IdpfWc8cyRLXF06Rk46YM
YCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcTUwgnYlFRk2FLq0Qe
KEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9Egr/Wmu3
MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEM
AKiQiZa3yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ
3DbVf+en3/FvdVZg2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTm
etSG5/52AjtmPFtlXAk0NmLvfJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0
s3109sJeXT5ImVdphFs9cvyZyBT9t1PbRowv58EgV0zE4hbAeVkULAbxFV5b/ExT
jjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKbYu6NCfiHfEyB3Xyg9hfdrRgj
MRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ovXoK4jm+Py0FiUGUa
A6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/eVtR2Q1w
ZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWj
moACGwwACgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiV
oUiHYN5QwhnbZnsaJDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764Qxy
X6rld2f2RcWkDuBHun55ZWXjby8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk
/dS0XTOQi2wVUb17sW/+ybCEokdVacZGzOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fu
oGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+lOWSvdNHgoEkWR0RXBPQjnGm
LKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/OffO485NOTKwGOxyWb0
06cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR8ULR9nX0
LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
x9fhaZEsniw8/bYgC3igkk5YJiOa
=3DlUIA
-----END PGP PUBLIC KEY BLOCK-----

--------------heR2UuPmG24aVC945nuMx6iC--

--------------xCGkNzhQKMsfsQQfhjU99e0L--

--------------zWX35ZY3buMbB3rg6TvzTSuS
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmoG56kFAwAAAAAACgkQZg+p0QLLz9Du
7Av/emtLR8Y0x40eZSEwlWbLkONYjpIPuL/KPVEUIjOOJTpZj9GCn1BlzTaETu+TqV9YkYMyMelP
t1IcoFmzHdLdsBq8n5175la0m/sbf3iWKZhsG73dgyWeuQYPuW2SfYXCLZOSrVjdvUp+yivegZkN
1Mc/asyz3RZa2UmUvSGC2IBh1IMmiYpeEnTH2uZQ+LxSoMEmh263VLFd05ihCSH6hb8MDqU2lTPY
/UiYoJykVdpRxzgQfLvDICF+hCAVvYeudVHKlbC9DZpCSyILAfgHOoPhFK1AubnuSgODq36LLQcx
4comnoHVRhYgh3oZ8UHfp8wb3JRXzFBmeWock5hZWVA1SwPYnZRGljeyV/yn+9PFJ8nT48R/sMp8
2+c7aWM6d8uNrECykeB3+7+8bO6oEUrnG5LeojEFacnFZpmA5hX3h5U8+nW22Y6/wexz957XoEG1
pfFStqn5E5I/CqiHHnuZ4/vMSyaBi4RKKnkx+N0jNXl+IM/lWPYsX7Z6Dcm6
=1oSi
-----END PGP SIGNATURE-----

--------------zWX35ZY3buMbB3rg6TvzTSuS--


From xen-devel-bounces@lists.xenproject.org Fri May 15 09:32:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 09:32:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309785.1580831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNou4-0007fz-V5; Fri, 15 May 2026 09:32:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309785.1580831; Fri, 15 May 2026 09:32:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNou4-0007fr-Rz; Fri, 15 May 2026 09:32:20 +0000
Received: by outflank-mailman (input) for mailman id 1309785;
 Fri, 15 May 2026 09:32:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e2afab906000f373@swg.vates.tech>)
 id 1wNou3-0007fj-GM
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 09:32:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNou2-001pLU-Hr
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 11:32:18 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e2afab906000f373@swg.vates.tech>)
 id 6a06e81d-e002-0a2a0a5209dd-0a2a450187c4-12
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 11:32:18 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e2afab906000f373@swg.vates.tech>)
 id 6a06e822-c1f2-0a2a45010019-b9ff1c2298a3-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 11:32:18 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e2afab906000f373.003 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 15 May 2026 09:32:14 +0000
Received: from l14 (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 3389186361;
 Fri, 15 May 2026 11:32:14 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=frZrEIceEJBjky/XIZOPtKSrxZxciHjGS0LID6HlQdI=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=VxDBrXBE/YFscrQhvM1RC2sEuCgFB+7pbakQ0JXkE0fc9UJYimskk3d/P+6/HSa5mPnU7jdBR
 YV9j5ngiXOmuy7I7n7TbvkeYo39IWK6LKK6hrXd05g1zZHcyCPWp0CSt/ExMbVhz75M52ILJ9bv
 +Yed+/sZthN3JTjGmU+aiwYUrF1rOdi02eTxmCAKyTkX+JWCD0+i275jxJbUl3PTlpMOI2V+yLC
 EW8PALIgZyD9ijE4qxqKZ+U9Jbby/gARwYfBDXd5xEEJJOJjmb85ZSc4ZPyYBPknutWtSph/k+b
 5iKpK9UfZLbySNrTyc5A7Kr9hxKNIiG5ip2c8iKCXp4w==
X-Zone-Loop: b4e54ffadb1b12ed6d6c7c095950a8c9ef573f4e9a41
x-campaign-type: default
x-transaction-id: 80a8a379-4575-4c4f-a6d8-44aa66e23e82
x-swg-uid: 01-057b524d-0fff-4f4b-b284-09b78e30bf2e
X-Mailer: Sweego
Message-ID:
 <1778837535.8631fc262581453bbf619ec5b2062170.19e2afab906000f373@vates.tech>
x-swg-bid: 1778837535.8631fc262581453bbf619ec5b2062170.19e2afab906000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 15 May 2026 11:32:13 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 5/5] tools/xen-hvmctx: shorten various format strings a
 little
References: <b36b6f2f-2b0e-462d-9846-4a1b4d7edef9@suse.com>
 <4bcd76e9-1bd5-4a2c-8d75-7d29b9dfa31f@suse.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4bcd76e9-1bd5-4a2c-8d75-7d29b9dfa31f@suse.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.c5a.f45f64b97bdcb137.19e2afab675.6e4fa590aafa495=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1778837534325
X-purgate-ID: tlsNG-d62444/1778837538-B5947FF4-D4146F17/0/0
X-purgate-type: clean
X-purgate-size: 887

---=Part.c5a.f45f64b97bdcb137.19e2afab675.6e4fa590aafa495=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, May 12, 2026 at 05:00:43PM +0200, Jan Beulich wrote:
> %4=2E4x and alike format specifiers can be expressed shorter as %04x or,=
 as
> e=2Eg=2E dump_ioapic() has it, %=2E4x=2E
>=20
> In dump_fpu()'s XMM register dumping, also move away from showing bogus
> xmm03 and alike=2E The proper register name is xmm3 for that particular
> example=2E
>=20
> Also strip trailing whitespace from lines touched=2E
>=20
> Signed-off-by: Jan Beulich <jbeulich@suse=2Ecom>

Acked-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.c5a.f45f64b97bdcb137.19e2afab675.6e4fa590aafa495=---


From xen-devel-bounces@lists.xenproject.org Fri May 15 09:45:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 09:45:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309795.1580840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNp6V-0001A4-Vg; Fri, 15 May 2026 09:45:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309795.1580840; Fri, 15 May 2026 09:45:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNp6V-00019x-T1; Fri, 15 May 2026 09:45:11 +0000
Received: by outflank-mailman (input) for mailman id 1309795;
 Fri, 15 May 2026 09:45:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wNp6U-00019q-9q
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 09:45:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNp6T-005wNZ-4i
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 11:45:09 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a06eb0f-5cb7-0a2a0a5109dd-0a2a450bc304-48
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 11:45:09 +0200
Received: from [209.85.218.51] (helo=mail-ej1-f51.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a06eb24-212f-0a2a450b0019-d155da33f128-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 11:45:09 +0200
Received: by mail-ej1-f51.google.com with SMTP id
 a640c23a62f3a-bcc2b199c17so874180166b.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 02:45:09 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4ded99dsm197009366b.30.2026.05.15.02.45.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 May 2026 02:45:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778838308; x=1779443108; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=+hJaSnQ3sX5cqD1qfGugpJRcqI2K1GGAvge8mcTL6Nw=;
        b=kKMolczeSgGFbWFeXf52Gcj4XbbkObleKPvTEcVpsum/34KlH5yft+nlCSjEdxwwBo
         O6x4rW+wOguqXN9gJ2BafWtNxBrPzWLCdYJh3eUXZ8j6KDWn5GzQtZN3Gu3IIOohB+f7
         PnJtAD/nFwdVw60lgI11JWtbwU84flL9ib8y6DT5kBI1LIRxlO3jLJmEwuINTLecONhz
         Obv6ywHSBd8LPQ+p3CBnlqHAB6uC9CF0zsBuo/Zexja56s9m8hyAi2BTzVnR0E5PVUw9
         7btjHrzKoZU9FK/6ymYUvZTS3b3cIRinWKCrH6qLweVreiFsXRkRKw5IbNNDQZfFA5EZ
         ZTRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778838308; x=1779443108;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+hJaSnQ3sX5cqD1qfGugpJRcqI2K1GGAvge8mcTL6Nw=;
        b=Nzze+uh3KFBQJnRGOS1zbS+1uqGhOhKfLvIgbSxT8Q9uy1UD4W8LtyupDDaIVdzPXh
         Xb27LwO6f3/No4ObdkHgj3sEUGUKuRfAdta7zUS8vuHTr1zV8UlU4ZmmTZtvTmrr+N3L
         pGcLdKYv53wzqCWNiKXmi4e4MJ3ZOLRTcGk858Fbo/h4xTcYgAd0Rvt7npqx2ztUJhlj
         IMyUo/8nIoTZfP6IgsmBr4ya23Dj/uLd7y+cfGm3nW185aRTnJ7JNeWJGjPTRSxcBwQn
         wKmYGOqQO8n6q7c42GTCtUrOTyQ4AiyfOfxyfBi4mjrKzFaON42zgYasqjMB87r49YAU
         eofA==
X-Gm-Message-State: AOJu0YzXwkjV00066iiChEbnnE3hx33uvP3s0dlELs7ZxAFv+bBiYGeu
	T99ua74zAJ2xVbCqevXkppLNwx30Z2yKxgTvbuaI5dOEyJdzdEu+UgA6TBRGzg==
X-Gm-Gg: Acq92OG32P2INN95E2zzXRCdqtEZQTHq1f4Ifht9/dTkXEzniufgVMXPYqDoH4pM14D
	vl4bnKkj4WHOlJuAqFZM9nH1bMaOHtkBRno193jb08hR6ADW8LxuBLNspDpdyKD6DzM4LUmfNDZ
	DRLExxH4bUltnQK4ps6MLAJAokImDciHdlaUUJJ7drfZ4dusyyxrF841uX7uSF+4YmK2NRmmaly
	h9ovx6pa4E7bFxyuIkxjcLL31HQBn5Wkq3N8ZP/kBpAgP+ycUlijcoTvLD9vcWjppV++haSEsCZ
	EF8ot3b1OtbQ5EiM3pqMDsL4aVtW59m/W0Glw9/hPpIF1v1pJFAM6cZonx7DmoIiStUmQt8AC64
	eqnh7daxKmZhajXE8z4d79Kd3VwOhFFDwfbgzBhBpq0tGDmYzsLmPaJv3heH01BAEdh7QjeD6zk
	yfwGPRo+WmWBht2xJ6ARQo/fKmLkS60PNjGbXG
X-Received: by 2002:a17:907:6d01:b0:bd2:b983:96b with SMTP id a640c23a62f3a-bd5178652bdmr147607466b.20.1778838308287;
        Fri, 15 May 2026 02:45:08 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] arm/gicv3: Detect normal NC ITS command queues
Date: Fri, 15 May 2026 12:40:31 +0300
Message-ID: <4d72da78b9c30f5da62c8e03c3b03a01c24101eb.1778836836.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1778838309-21B86F3B-F118FD1E/0/0
X-purgate-type: clean
X-purgate-size: 1399

From: Mykola Kvach <mykola_kvach@epam.com>

GITS_CBASER.InnerCache uses the GIC BASER cacheability encoding.
Both 0b000 (Device-nGnRnE) and 0b001 (Normal Inner
Non-cacheable) describe non-cacheable accesses to the command queue.

its_map_cbaser() only checked whether the shifted field was zero,
so an ITS that reports Normal Inner Non-cacheable would not set
HOST_ITS_FLUSH_CMD_QUEUE. Decode the field before comparing it with
the unshifted enum value, matching the handling of ITS BASER tables
and GICR_PROPBASER.

Fixes: 8ed8d21373be ("ARM: GICv3 ITS: map ITS command buffer")
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/arch/arm/gic-v3-its.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index 9005ce8ce5..7560d46c6d 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -424,7 +424,8 @@ static void *its_map_cbaser(struct host_its *its)
      * If the command queue memory is mapped as uncached, we need to flush
      * it on every access.
      */
-    if ( !(reg & GITS_BASER_INNER_CACHEABILITY_MASK) )
+    if ( MASK_EXTR(reg, GITS_BASER_INNER_CACHEABILITY_MASK) <=
+         GIC_BASER_CACHE_nC )
     {
         its->flags |= HOST_ITS_FLUSH_CMD_QUEUE;
         printk(XENLOG_WARNING "using non-cacheable ITS command queue\n");
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri May 15 09:53:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 09:53:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309805.1580849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNpEU-0002yg-O7; Fri, 15 May 2026 09:53:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309805.1580849; Fri, 15 May 2026 09:53:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNpEU-0002yZ-Kn; Fri, 15 May 2026 09:53:26 +0000
Received: by outflank-mailman (input) for mailman id 1309805;
 Fri, 15 May 2026 09:53:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wNpES-0002yS-H3
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 09:53:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNpER-005xbT-Pz
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 11:53:23 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a06ed09-e002-0a2a0a5209dd-0a2a450b9a4a-26
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 11:53:22 +0200
Received: from [40.107.130.25]
 (helo=MRWPR03CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a06ed12-212f-0a2a450b0019-286b82192bb7-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 11:53:22 +0200
Received: from DB3PR06CA0031.eurprd06.prod.outlook.com (2603:10a6:8:1::44) by
 AS4PR08MB7655.eurprd08.prod.outlook.com (2603:10a6:20b:4f1::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 09:53:14 +0000
Received: from DU6PEPF0000A7E1.eurprd02.prod.outlook.com
 (2603:10a6:8:1:cafe::53) by DB3PR06CA0031.outlook.office365.com
 (2603:10a6:8:1::44) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.18 via Frontend Transport; Fri, 15
 May 2026 09:53:14 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF0000A7E1.mail.protection.outlook.com (10.167.8.40) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13 via
 Frontend Transport; Fri, 15 May 2026 09:53:14 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by PA4PR08MB6045.eurprd08.prod.outlook.com (2603:10a6:102:ef::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 09:52:11 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 09:52:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=PlsCjB8czbVq04FTY8+1iBakKbDb9N4ZPq+E+Vx5Eh1yx6iVCmZovQvaPBVzTUUzffJOI2pI7ZwEWBY/sYt4fg8ulwtqURExVZcVKIrDvJicWuvGwxOxf4I9BJ6DUxFnwKHwR2iCZpQTKDA0xa29CQZ9MlfIvENFxl6lZpba1oevXAmHSSvThKH8WrVJCtxSSbspRaeO6S3WAJxNlbK/9P8smE8uiPm3yoXRqcdVeZ8rX6Jsy/ENgxeDaGPhS2XMOmCO0Xa28W7TGecP8TRDH/h0wZ++A2FzMgq13pnvd4GInqtXxipof+T1XDWjDh4fAxb2qm7RjJtf3NhH30MiKQ==
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=H8/52lj4JqbrZVaAay0Dp2lTfajKd/OUEFnUGw095J8=;
 b=v5HS03L0gG2AGvjMuM7S1Nx0PwZdrT5IQi9oj1mHm910+5MEcEIuKW451xP6Tdez82tXJTQ1cpv7ezxRbwdsPIp4mf72gdG0fAsHY++ND5xOPAywKz9wFiOm+UdTeTfKfhnf55InQPTaXnavbUX/CYq/ZeNXQnEQWmfiep93CtdvbidLFkC0uV8XYA30p8moVsceo9f3XvvcQYw0flX/dXP7qQcOYuFq0nWYG7PJ4B/gFfymTdJzqG2KvYlWg9Ogd6CVZFVx6w8JbHdsUgXQxYjw2N76BghneEnRiP97Mw/80eGiOR8cbBMETiACkbpv09zlOKQ2ubtwU3zmb8pGGw==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=H8/52lj4JqbrZVaAay0Dp2lTfajKd/OUEFnUGw095J8=;
 b=nPN+AVJ2HIL05ffWgVeCHMwiqr4EzuWVe6PYvlCO/NkJJcPDVCk65xuFYd2p2RxS/4TSS1jMKXfPlpyJes1wODRrjOypnfOB52KInhCt6v+AfmP8UOkDAqeOrWmEHdAl1FSRqv06507IQLwnltifZ48uX5q8aQC/OBl/lRuweR4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AIMmB6zKLKeQsaq/V1EawmR79mm3QR0hbDjE4GQDSjsTWh/3dKNpBSd8BbKXNFpcN8jLXPrgpDD97gGZt6VoOe+zyvVYt4WFjfU7qXwBmgUNqig6TTaKNMQJlvNJLIg1+GxrwfkA2JUC3GGYYlbE9n+T3W5Sbmpih42DxbzkV2qESiRAMvkCabERt61XydNPL593MDi3keVIoQAqkvw9Auk2kZUdooSH9LjwfNEGLKN9uruAPVYDz7AxO+IqbgYu8F5qKbfGi/mxIBb6Ldembl9AAhKm1mOAjnnzgUgPUW9WP5VcbRbzeeHgX8N8q88ikGdAZ/0uanmvB8xjnglfGQ==
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=H8/52lj4JqbrZVaAay0Dp2lTfajKd/OUEFnUGw095J8=;
 b=QQEQBgcrOm2NFOUbo0ns8O9YaPSn5ZgXws4wzOAKd0Bomyhu1KnndBCs/IZ6vb0F4Ly/9yCVgvsxHxQYqsbSDbuMkt03SC75EIg/51+qxkRDY6aa3DK/bjRPQFUTlMR6iGeVobFIn8I03Vvf2In62/2vm9JTZOPxxlDZAUcNqcgiejx0ca/xPWMdtOigZqGyG9S9b1buk9SFXMYpuWQkwAGuyBkO1mAm3u0V68Z8XgYktYhE/QxFwXdv+ETp9lronffHbohP/zQ1mNR6z0GJbYNodfYfQ1KtiHKNV2vNlPYm19XeSTgnP9r5E7gkEFCAGOGBq/HufhTezyHCAQJtOQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=H8/52lj4JqbrZVaAay0Dp2lTfajKd/OUEFnUGw095J8=;
 b=nPN+AVJ2HIL05ffWgVeCHMwiqr4EzuWVe6PYvlCO/NkJJcPDVCk65xuFYd2p2RxS/4TSS1jMKXfPlpyJes1wODRrjOypnfOB52KInhCt6v+AfmP8UOkDAqeOrWmEHdAl1FSRqv06507IQLwnltifZ48uX5q8aQC/OBl/lRuweR4=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v9 02/13] xen/arm: gic-v2: Implement GIC suspend/resume
 functions
Thread-Topic: [PATCH v9 02/13] xen/arm: gic-v2: Implement GIC suspend/resume
 functions
Thread-Index: AQHc4jIxK7EE6l+HQkWYC60FHhQX47YL/3OAgAK9pQCAAB9fgA==
Date: Fri, 15 May 2026 09:52:11 +0000
Message-ID: <1142B5E5-961F-4CD1-B70F-88630F0DA8F7@arm.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <613c8d67a66924ea62c2436dac14708d939f6784.1778605274.git.mykola_kvach@epam.com>
 <8E531A25-5AB5-41CD-AB61-C426C58C8E1C@arm.com>
 <CAGeoDV8aKWLKVZN1oz4cUoaZbXX39q4gHgOp=w=0zPhhaN311A@mail.gmail.com>
In-Reply-To:
 <CAGeoDV8aKWLKVZN1oz4cUoaZbXX39q4gHgOp=w=0zPhhaN311A@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|PA4PR08MB6045:EE_|DU6PEPF0000A7E1:EE_|AS4PR08MB7655:EE_
X-MS-Office365-Filtering-Correlation-Id: 2551a3fe-88cc-45d4-aa16-08deb267c850
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|18002099003|22082099003|11063799003|4143699003|3023799003|56012099003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 ww4ysfNKLn6jQ5UpkpMpSwK1J5+LFYOQ3OD2lBCkOaIJJ3gje6gdqZWMeRYW3Trgij8e7fA52lvB5w4psEUtCnigl01cyqC77pQxC0jUvAZYtCZKL4lPoR52J8i08aZCtgExqbeFErEJfcWHiutMuBe7tsZf6ttbUMkLjuw7IUS2KdpD0DILVSRN/zJfsQZqFQBXrza5tpF5ccMzOJSnQasHL/rDRopHepzwjhrGg0kFZMT1cKxnO0FY9bng2YedO9bslkm8RAGacxOfOC2Zxd3YL1+gTfQDBWal4mQsKLzuSM4oIramwxsPnYiiJKJufkHnSS4mvWq4DtJ7zkCDyo45wX3s1gS2+hrDf15dTibBEcQR5y4lYbWBqIYmqsVIPFD8gZ7J9dmogSK7d2HEkC85V7ljKYYjupB96JCoI3Vz3zKApMAan05LDhNcXaEa4IxwZr1ui1kBUxKlL0S3GbfkHq/v9EXw5dT7XtUfNGtRr4dKkRUmR0HADF6fUsjcQymzXEhvFmFgrgiWq+YcRVUkLA0PC6IALefv4P6RMnLNu8krpbhXnYu+zbGbeGnQBqJdMLLyq5uVILErKTL3YhcH7UVS28oXEuHBhSOLp3gyGhfw9MUjFwqDAaw1yc/NAJx7O2+JiWV9xvex8rYsof9qbjab2Jyl/cAACWtdWQLh0JKxfOmdz9dQ4eA4IGmqDifd+AtrnkMEjlzCD6yvTH6amVqN60X/pIq2prUmA/5ONPzNWDWqLLban17QlfVy
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(18002099003)(22082099003)(11063799003)(4143699003)(3023799003)(56012099003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <CCF51BE6C613914082CD4B8DEA29D8B4@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 KXQqO2wQdEce7VQhDMAMgt4TFz5ERjXG70XIBiSeHjlk7VLq4m78FDS8b6PkeI86eQFUwHE+LJKhQCGnfVQ3BDBuitw4ltKcj3sXYmoTbYDyitl4Ptl93WvvwEnobQDy4F/sWg86PZOwlYOeTLzgGh8h1FUwa4O82dKzt1LnRtcp8uQ2TBJ270y5D89c9M2Y8+zDVJr55zlxIskgHtigSj+qx5nAd8jLMr0xOL9KcJxi8rtOX/KqvzwU7AyFmQnSPfvu0wxeyhZM0+BfHxrqmDN3w9SRYJegUzZcZrxzJBjU9pCg2JILDwVZjrF6RBPNZo82lGZarN3dCVFP0oFe1w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6045
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000A7E1.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	c80a6381-ec89-4465-bdb4-08deb267a2de
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|35042699022|376014|36860700016|14060799003|13003099007|11063799003|4143699003|3023799003|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	nxN+NlHopwg+RPl4x2KxNlwrnWxa7foPdi/cn0VK5oANqovczrR+TLGbiASaKuMSkABGYPelmvAChzNmMFNNSqr/aMhQWcTNjoQBXZuc3U2AW67tOtlV98RbQv+eZqfXS8fyCwWGPDfQLbF5h1RQxQCzu7//s7PtyZeMczna6uGZWpm8wbov8xLkJgIz1Z7OIf0MR7d5cYtNLN3BYjH2eX65G1xqVcMBgcOF1fEvE1vZwuLEpM0Ixq7EqIYjFO9E/NpTo4F50g+sqJamOZPyzcOcVSiVlRHAgUfz0n54x4+aSHu21JS3XJ5Z98cDE37JaAR8p4fzgcW5GXgGGO0oSlD3StLTSChkTlNb6yXRIlPKo39xyqoHapIQIsEi91n6j7bh2EFRuRRFWZalqWRvx5t2fSE7WEv3zQYj/grSlAfumZMqY1QgykTMCHvfuKWK45UMdDJr721limC6vp4gH1FhqxDFnWH+mQF4SzEcgoa4tWtJE45vHpX7DYz/CQytAL0nczMqAOFCbi97iFlOYO7IkMfXpa9zM2yQs1+0Jq/ckJelQuV4yDF+VdCU0xpWNbctDNkg3Y8XKY1TM8b+zjf1bEu4lilGlZAz9PsagYXzO1LorJpxSVgbxQ+wWfZj++8CoFoN55EtxWck7YPwC2YmKOWU3VEIb1V102xVZyVf1twhn+OYC8YVjO6FtPxI3ryZ6ItFmm+UyfV2TKAJ5fI8xFRyFO8wv0RwXcYu6ZxB5WkNG/m1ToneVNxiDQEx
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(35042699022)(376014)(36860700016)(14060799003)(13003099007)(11063799003)(4143699003)(3023799003)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	9XYJiZp1b6uDdoVzkrqpxhOz8jk6CPv66c06ubGeJqgzBTNz6o1hpOIZL/sBtf6jfIdZH7lsBCz6iXmoa5Ak62I3OsslUWOz2d7fVz7FAua+Yx6IRLHde6m6Ff9lXtFb+ZW3jjewteZRoanSuizHmPHshJLYJ+933HvpAUmuCYW6AVo/vEXDUMBJC6JyBIl4Fq/cKStosNxjR3shkRYCKWKK5yvgExH42fhfztgzHYAa/v1cB6KBPMKfWJo4vn+1IO/Jr4w7xcEIxzftfi9kijgIsPhH28yD6UDMeC8kJle2BITbTLfn164iST0h7njoA7qaf/UNQZcZNe39V3Q3MDc2WSmp5G1+jNBzV+JL4ujbYHdBsfwn9xJxqDMe/1svt/Rxs5auD/EZ0N+iIS+S2R33cibEg9sImaLYF0gtQDf9sQ5KCSdUHkgHGprjKtb6
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 09:53:14.4204
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2551a3fe-88cc-45d4-aa16-08deb267c850
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU6PEPF0000A7E1.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7655
X-purgate-ID: tlsNG-42698a/1778838802-21D85F3B-4191EA26/0/0
X-purgate-type: clean
X-purgate-size: 7858

SGkgTXlrb2xhLA0KDQo+IE9uIDE1IE1heSAyMDI2LCBhdCAwODo1OSwgTXlrb2xhIEt2YWNoIDx4
YWtlcC5hbWF0b3BAZ21haWwuY29tPiB3cm90ZToNCj4gDQo+IEhpIEx1Y2EsDQo+IA0KPiBUaGFu
ayB5b3UgZm9yIHRoZSBkZXRhaWxlZCByZXZpZXcuDQo+IA0KPiBPbiBXZWQsIE1heSAxMywgMjAy
NiBhdCA1OjA54oCvUE0gTHVjYSBGYW5jZWxsdSA8THVjYS5GYW5jZWxsdUBhcm0uY29tPiB3cm90
ZToNCj4+IA0KPj4gSGkgTXlrb2xhLA0KPj4gDQo+Pj4gKw0KPj4+ICtzdGF0aWMgdm9pZCBnaWN2
Ml9yZXN1bWUodm9pZCkNCj4+PiArew0KPj4+ICsgICAgdW5zaWduZWQgaW50IGksIGJsb2NrcyA9
IERJVl9ST1VORF9VUChnaWN2Ml9pbmZvLm5yX2xpbmVzLCAzMik7DQo+Pj4gKw0KPj4+ICsgICAg
Z2ljdjJfY3B1X2Rpc2FibGUoKTsNCj4+PiArICAgIC8qIERpc2FibGUgZGlzdHJpYnV0b3IgKi8N
Cj4+PiArICAgIHdyaXRlbF9naWNkKDAsIEdJQ0RfQ1RMUik7DQo+Pj4gKw0KPj4+ICsgICAgZm9y
ICggaSA9IDA7IGkgPCBibG9ja3M7IGkrKyApDQo+Pj4gKyAgICB7DQo+Pj4gKyAgICAgICAgc3Ry
dWN0IGlycV9ibG9jayAqaXJxcyA9IGdpY19jdHguZGlzdC5pcnFzICsgaTsNCj4+PiArICAgICAg
ICBzaXplX3Qgaiwgb2ZmID0gaSAqIHNpemVvZihpcnFzLT5pc2VuYWJsZXIpOw0KPj4+ICsNCj4+
PiArICAgICAgICB3cml0ZWxfZ2ljZChHRU5NQVNLKDMxLCAwKSwgR0lDRF9JQ0VOQUJMRVIgKyBv
ZmYpOw0KPj4+ICsgICAgICAgIHdyaXRlbF9naWNkKGlycXMtPmlzZW5hYmxlciwgR0lDRF9JU0VO
QUJMRVIgKyBvZmYpOw0KPj4+ICsNCj4+PiArICAgICAgICB3cml0ZWxfZ2ljZChHRU5NQVNLKDMx
LCAwKSwgR0lDRF9JQ0FDVElWRVIgKyBvZmYpOw0KPj4+ICsgICAgICAgIHdyaXRlbF9naWNkKGly
cXMtPmlzYWN0aXZlciwgR0lDRF9JU0FDVElWRVIgKyBvZmYpOw0KPj4+ICsNCj4+PiArICAgICAg
ICBvZmYgPSBpICogc2l6ZW9mKGlycXMtPmlwcmlvcml0eXIpOw0KPj4+ICsgICAgICAgIGZvciAo
IGogPSAwOyBqIDwgQVJSQVlfU0laRShpcnFzLT5pcHJpb3JpdHlyKTsgaisrICkNCj4+PiArICAg
ICAgICAgICAgd3JpdGVsX2dpY2QoaXJxcy0+aXByaW9yaXR5cltqXSwgR0lDRF9JUFJJT1JJVFlS
ICsgb2ZmICsgaiAqIDQpOw0KPj4gDQo+PiBhcG9sb2dpZXMgZm9yIHNwb3R0aW5nIHRoZXNlIG9u
bHkgbm93LCBpbiBjYXNlIGdpY3YyX2luZm8ubnJfbGluZXMgaXMgMTAyMCwNCj4+IGhlcmUgYW5k
IGJlbG93IGZvciBHSUNEX0lUQVJHRVRTUiB3ZSBhcmUgZ29pbmcgdG8gc2F2ZSBhbHNvIElEcyAx
MDIwLTEwMjMNCj4+IHdoaWNoIGFyZSByZXNlcnZlZC4NCj4+IA0KPj4gQ291bGQgd2UgYXNzdW1l
IGlycXMtPmlwcmlvcml0eXIgYW5kIGlycXMtPml0YXJnZXRzciBoYXZlIHRoZSBzYW1lIHNpemUg
YW5kIGltcGxlbWVudA0KPj4gc29tZSBjYXAgbG9naWMgd2hpY2ggbWlnaHQgY2FwIHRoZSBsYXN0
IGxvb3AgKGV2ZW50dWFsbHkpOg0KPj4gDQo+PiAgICBmb3IgKCBpID0gMDsgaSA8IGJsb2Nrczsg
aSsrICkNCj4+ICAgIHsNCj4+ICAgICAgICBzdHJ1Y3QgaXJxX2Jsb2NrICppcnFzID0gZ2ljX2N0
eC5kaXN0LmlycXMgKyBpOw0KPj4gICAgICAgIHNpemVfdCBqLCBvZmYgPSBpICogc2l6ZW9mKGly
cXMtPmlzZW5hYmxlcik7DQo+PiAgICAgICAgc2l6ZV90IG5yX3JlZ3MgPSBBUlJBWV9TSVpFKGly
cXMtPmlwcmlvcml0eXIpOw0KPj4gDQo+PiAgICAgICAgaWYgKCBpID09IGJsb2NrcyAtIDEgKQ0K
Pj4gICAgICAgICAgICBucl9yZWdzID0gRElWX1JPVU5EX1VQKGdpY3YyX2luZm8ubnJfbGluZXMg
LSBpICogMzIsIDQpOw0KPj4gDQo+PiAgICAgICAgW+KApl0NCj4+IA0KPj4gICAgICAgIG9mZiA9
IGkgKiBzaXplb2YoaXJxcy0+aXByaW9yaXR5cik7DQo+PiAgICAgICAgZm9yICggaiA9IDA7IGog
PCBucl9yZWdzOyBqKysgKQ0KPj4gICAgICAgICAgICB3cml0ZWxfZ2ljZChpcnFzLT5pcHJpb3Jp
dHlyW2pdLCBHSUNEX0lQUklPUklUWVIgKyBvZmYgKyBqICogNCk7DQo+PiANCj4+ICAgICAgICAv
Kg0KPj4gICAgICAgICAqIEdJQ0RfSVRBUkdFVFNSMC4uNyBjb3ZlciBTR0lzL1BQSXMgYW5kIGhv
bGQgbm8gc3RhdGUgdG8gc2F2ZToNCj4+ICAgICAgICAgKiB0aGV5IGFyZSByZWFkLW9ubHkgb24g
bXVsdGlwcm9jZXNzb3IgaW1wbGVtZW50YXRpb25zIGFuZCBSQVovV0kNCj4+ICAgICAgICAgKiBv
biB1bmlwcm9jZXNzb3IgaW1wbGVtZW50YXRpb25zLg0KPj4gICAgICAgICAqLw0KPj4gICAgICAg
IGlmICggaSApDQo+PiAgICAgICAgew0KPj4gICAgICAgICAgICBvZmYgPSBpICogc2l6ZW9mKGly
cXMtPml0YXJnZXRzcik7DQo+PiAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgbnJfcmVnczsg
aisrICkNCj4+ICAgICAgICAgICAgICAgIHdyaXRlbF9naWNkKGlycXMtPml0YXJnZXRzcltqXSwg
R0lDRF9JVEFSR0VUU1IgKyBvZmYgKyBqICogNCk7DQo+PiAgICAgICAgfQ0KPj4gDQo+PiAgICAg
ICAgW+KApl0NCj4+ICAgIH0NCj4gDQo+IFRoaXMgd2FzIGludGVudGlvbmFsIHRvIGtlZXAgdGhl
IGxvZ2ljIHNpbXBsZXIuDQo+IA0KPiBGb3IgdGhlIDEwMjAtaW50ZXJydXB0IGNhc2UsIHRoZSBl
eHRyYSB3b3JkIHdvdWxkIGNvcnJlc3BvbmQgdG8NCj4gaW50ZXJydXB0IElEcyAxMDIwLTEwMjMu
IE15IHJlYWRpbmcgb2YgQVJNIElISSAwMDQ4Qi5iIGlzIHRoYXQgdGhpcw0KPiBpcyBhcmNoaXRl
Y3R1cmFsbHkgaGFybWxlc3M6IHNlY3Rpb24gNC4xLjIgc2F5cyB0aGF0IHJlc2VydmVkDQo+IERp
c3RyaWJ1dG9yIHJlZ2lzdGVyIGFkZHJlc3NlcyBhcmUgUkFaL1dJLCBhbmQgVGFibGUgNC0xIG1h
cmtzDQo+IEdJQ0RfSVBSSU9SSVRZUiBvZmZzZXQgMHg3ZmMgYW5kIEdJQ0RfSVRBUkdFVFNSIG9m
ZnNldCAweGJmYyBhcw0KPiBSZXNlcnZlZC4NCj4gDQo+IFdvdWxkIHlvdSBiZSBPSyB3aXRoIGtl
ZXBpbmcgdGhpcyBhcy1pcywgb3Igd291bGQgeW91IHByZWZlciBtZSB0byBhZGQNCj4gdGhlIGNh
cCBsb2dpYyBhbnl3YXk/DQoNCkkgdGhpbmsgdGhpcyB3b3VsZCBiZSB0aGUgb25seSBwYXJ0IGlu
IHRoZSBkcml2ZXIgdGhhdCBkb2VzIHRoYXQsIGFsc28gTGludXggaXMgYXZvaWRpbmcNCnRvIHRv
dWNoIHRoZXNlIHJlc2VydmVkIHBhcnRzDQooaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2Nt
L2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0L3RyZWUvZHJpdmVycy9pcnFjaGlw
L2lycS1naWMuYz9oPXY3LjEtcmMzI241ODIpDQpNeSBwcmVmZXJlbmNlIHdvdWxkIGJlIHRvIGJl
IGNvbnNpc3RlbnQuDQoNCj4gDQo+PiANCj4+PiArDQo+Pj4gKyAgICAgICAgLyoNCj4+PiArICAg
ICAgICAgKiBHSUNEX0lUQVJHRVRTUjAuLjcgY292ZXIgU0dJcy9QUElzIGFuZCBob2xkIG5vIHN0
YXRlIHRvIHNhdmU6DQo+Pj4gKyAgICAgICAgICogdGhleSBhcmUgcmVhZC1vbmx5IG9uIG11bHRp
cHJvY2Vzc29yIGltcGxlbWVudGF0aW9ucyBhbmQgUkFaL1dJDQo+Pj4gKyAgICAgICAgICogb24g
dW5pcHJvY2Vzc29yIGltcGxlbWVudGF0aW9ucy4NCj4+PiArICAgICAgICAgKi8NCj4+PiArICAg
ICAgICBpZiAoIGkgKQ0KPj4+ICsgICAgICAgIHsNCj4+PiArICAgICAgICAgICAgb2ZmID0gaSAq
IHNpemVvZihpcnFzLT5pdGFyZ2V0c3IpOw0KPj4+ICsgICAgICAgICAgICBmb3IgKCBqID0gMDsg
aiA8IEFSUkFZX1NJWkUoaXJxcy0+aXRhcmdldHNyKTsgaisrICkNCj4+PiArICAgICAgICAgICAg
ICAgIHdyaXRlbF9naWNkKGlycXMtPml0YXJnZXRzcltqXSwgR0lDRF9JVEFSR0VUU1IgKyBvZmYg
KyBqICogNCk7DQo+Pj4gKyAgICAgICAgfQ0KPj4+ICsNCj4+PiArICAgICAgICBvZmYgPSBpICog
c2l6ZW9mKGlycXMtPmljZmdyKTsNCj4+PiArICAgICAgICBmb3IgKCBqID0gMDsgaiA8IEFSUkFZ
X1NJWkUoaXJxcy0+aWNmZ3IpOyBqKysgKQ0KPj4+ICsgICAgICAgICAgICB3cml0ZWxfZ2ljZChp
cnFzLT5pY2ZncltqXSwgR0lDRF9JQ0ZHUiArIG9mZiArIGogKiA0KTsNCj4+IA0KPj4gaW4gdGhl
IEdJQ3YyIHNwZWNzIHRoZSB1c2FnZSBjb25zdHJhaW50cw0KPj4gb2YgR0lDRF9JQ0ZHUiBzYXlz
OiDigJxCZWZvcmUgY2hhbmdpbmcgdGhlIHZhbHVlIG9mIGEgcHJvZ3JhbW1hYmxlIEludF9jb25m
aWcgZmllbGQsDQo+PiBzb2Z0d2FyZSBtdXN0IGRpc2FibGUgdGhlIGNvcnJlc3BvbmRpbmcgaW50
ZXJydXB0LCBvdGhlcndpc2UgR0lDIGJlaGF2aW9yIGlzDQo+PiBVTlBSRURJQ1RBQkxFIg0KPj4g
DQo+PiBBUk0gSUhJIDAwNDhCLmIsIDQuMy4xMy4NCj4+IA0KPj4gSSB0aGluayB3ZSBzaG91bGQg
bW92ZSB0aGlzIHJlc3RvcmUganVzdCBhZnRlciBHSUNEX0lDRU5BQkxFUiB3cml0ZSwgYmVmb3Jl
IHdyaXRpbmcNCj4+IEdJQ0RfSVNFTkFCTEVSLg0KPiANCj4gR29vZCBjYXRjaCwgSSBhZ3JlZS4N
Cj4gDQo+IEkgd2lsbCBtb3ZlIHRoZSBHSUNEX0lDRkdSIHJlc3RvcmUgYWZ0ZXIgdGhlIEdJQ0Rf
SUNFTkFCTEVSIHdyaXRlcw0KPiBhbmQgYmVmb3JlIHJlc3RvcmluZyBHSUNEX0lTRU5BQkxFUiwg
c28gdGhhdCBwcm9ncmFtbWFibGUgSW50X2NvbmZpZw0KPiBmaWVsZHMgYXJlIHJlc3RvcmVkIHdo
aWxlIHRoZSBjb3JyZXNwb25kaW5nIGludGVycnVwdHMgYXJlIGRpc2FibGVkLg0KPiANCj4gSSB3
aWxsIGFsc28gY2hlY2sgd2hldGhlciBpdCBtYWtlcyBzZW5zZSB0byBtb3ZlIHRoZSBvdGhlcg0K
PiBjb25maWd1cmF0aW9uIHJlc3RvcmVzIGJlZm9yZSBHSUNEX0lTRU5BQkxFUiBhcyB3ZWxsLiBU
aGUgc3BlYyBkb2VzDQo+IG5vdCBzZWVtIHRvIGltcG9zZSB0aGUgc2FtZSBzdHJpY3QgcmVxdWly
ZW1lbnQgdGhlcmUsIGJ1dCBrZWVwaW5nIGFsbA0KPiBjb25maWd1cmF0aW9uIHJlc3RvcmVzIGJl
Zm9yZSByZS1lbmFibGluZyB0aGUgaW50ZXJydXB0cyBtaWdodCBtYWtlDQo+IHRoZSBvcmRlcmlu
ZyBjbGVhcmVyLg0KPiANCj4+IA0KPj4gQW5kIGFsc28gdGhlIHNlY3Rpb24gc2F5cyB0aGF0IHRo
ZSBHSUNEX0lDRkdSMCBpcyByZWFkLW9ubHkuDQo+IA0KPiBGb3IgR0lDRF9JQ0ZHUjAsIG15IGlu
dGVudGlvbiB3YXMgdG8ga2VlcCB0aGUgcmVzdG9yZSBsb29wIHVuaWZvcm0uDQo+IFRoZXJlIHNo
b3VsZCBiZSBubyB1c2VmdWwgU0dJIHN0YXRlIHRvIHJlc3RvcmUgaGVyZTogc2VjdGlvbiA0LjMu
MTMNCj4gc2F5cyB0aGF0IFNHSSBJbnRfY29uZmlnWzFdIGlzIG5vdCBwcm9ncmFtbWFibGUgYW5k
IFJBTy9XSSwgd2hpbGUNCj4gSW50X2NvbmZpZ1swXSBpcyByZXNlcnZlZC4gQWxzbywgdGhlIHZh
bHVlIHdyaXR0ZW4gaXMgdGhlIHZhbHVlDQo+IHByZXZpb3VzbHkgcmVhZCBmcm9tIHRoZSBzYW1l
IHJlZ2lzdGVyLg0KPiANCj4gU28gSSBkbyBub3QgZXhwZWN0IHRoaXMgd3JpdGUgdG8gYWZmZWN0
IHRoZSBhcmNoaXRlY3RlZCBTR0kNCj4gY29uZmlndXJhdGlvbi4gSG93ZXZlciwgaWYgeW91IHBy
ZWZlciBhdm9pZGluZyB0aGUgd3JpdGUgdG8NCj4gR0lDRF9JQ0ZHUjAgZXhwbGljaXRseSwgSSB3
aWxsIHNraXAgaXQgaW4gdGhlIG5leHQgdmVyc2lvbiBvZg0KPiB0aGlzIHNlcmllcy4NCg0KSSB0
aGluayBhbHNvIExpbnV4IOKAnHJlc3RvcmVz4oCdIGl0LCBzbyBJ4oCZbSBvayB0byBrZWVwIHRo
ZSBjb2RlIGFzIGl0IGlzLCBpbiBmYWN0IGl04oCZcyByZWFkLW9ubHkNCmFuZCBub3QgbWFya2Vk
IGFzIHJlc2VydmVkLCBteSBiYWQhDQoNCkNoZWVycywNCkx1Y2ENCg0K


From xen-devel-bounces@lists.xenproject.org Fri May 15 10:34:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 10:34:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309825.1580857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNprl-0000hs-Nw; Fri, 15 May 2026 10:34:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309825.1580857; Fri, 15 May 2026 10:34:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNprl-0000hl-LI; Fri, 15 May 2026 10:34:01 +0000
Received: by outflank-mailman (input) for mailman id 1309825;
 Fri, 15 May 2026 10:34:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wNprk-0000hf-Hc
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 10:34:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNprj-0066xo-Q9
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 12:33:59 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a06f694-5cb7-0a2a0a5109dd-0a2a4506d8d2-8
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:33:59 +0200
Received: from [40.107.200.10]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a06f694-7371-0a2a45060019-286bc80a4279-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:33:59 +0200
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by DS0PR03MB7204.namprd03.prod.outlook.com (2603:10b6:8:122::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Fri, 15 May
 2026 10:32:53 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%3]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 10:32:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MrAT/WTUpEBLyeOkjbZIbqDAkx1isPYJwQ+DsraeGwYA599Ov5tHQ75S+w5BJZWagd5A99uaGoYPgGTg+S1R1Iw94+R8a/mbU4u5fYL3HsfSYShgiOj/n8CBp3+01TOYZZ3tXqLKOj+Rm9gV5gCwKMAmSzPodbBFVNFsmqWDkjOBPK/mPiR+W+ISQnoMFZJa+KuKxVVBmfNDZf2vD2SNmvqgJE1rS3+bL0u0c53WLdrN9mYAZgV39hwYkJpKDiXABzweFZcNMpK8fb3uqDSoDGplBMunXFc7PvcCEATyvZcaKYA8MDA+0RLsc9dGdD14d6f6aH1zqfCBjE8KpAF2pA==
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=EiQOaaIiVKnCo8ByStn4RAq7eucU797GJ07Fezt0PCU=;
 b=Ae3wmpgjnGfLAJ0hg1y9SiJQefGGw219+gFSIwvSILMqmY39oPn+W6sc0L2FLekYjQCr2FiEUkwxnSvD3aAlDrD0zhg3St/MuEx34d5v7E1akLRe24W5NR7oQkPJXC0D09rpoaovQyL8K4SR97AhhOEQktOnkPNKi9I26mde8QCiRWF9IRFQVO8tk0AFzyZ9jqintEoPIgrMqN5YOi7t2hOLWeHE4B44R7md6SWSiJSei8G6vrhs452G2rw9ezqCR4KgLKHXQsJ7/l5N55m/wFeXpE4Ln7R2B0cyXA0Q6aCcCycyoVjYboHBvn6jDUqEpecsR8SetMK6KxE9mEXlqw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EiQOaaIiVKnCo8ByStn4RAq7eucU797GJ07Fezt0PCU=;
 b=x5tDEMaG8R8ZfSqWHz0QUgv8zf7XsYNpPqkFPfchxR6PWS6vYQsNNyNqwj0fi+bsPqL8vQU2lNQUNiNzixwRs4AGwJ/553YsuyDxvfcKNz8NHHR7EmMNYlVvaC2ZVVYyseykiRAKWI0BzCC+fbryElnfVF9Ki3rnKkbh3YoM7iI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <87b5f720-8130-4939-aa80-24e865561748@citrix.com>
Date: Fri, 15 May 2026 11:32:49 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.22 v6] x86/svm: Support vNMI on capable hardware
To: Teddy Astie <teddy.astie@vates.tech>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260514175623.1869042-1-andrew.cooper3@citrix.com>
 <1778836825.8631fc262581453bbf619ec5b2062170.19e2aefe501000f373@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1778836825.8631fc262581453bbf619ec5b2062170.19e2aefe501000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0054.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:34a::14) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|DS0PR03MB7204:EE_
X-MS-Office365-Filtering-Correlation-Id: f5c965e2-f57f-405f-153d-08deb26d524d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|11063799003|56012099003|4143699003|22082099003|3023799003|18002099003;
X-Microsoft-Antispam-Message-Info:
	ypnROulUthe9Xmp/VJsNN2VwSvE22GvsYZxCv+pO1ydeLJqPeQdMtd2jpkj2dvSezUokPbc+Gnf5tNenkDLphl7tQ2B3/02ph5+KaoPfoNPb5Nzfu6uRRrquG2x0Uwts1KTamxybVE0sqhCwblB7ulyu5RSQTv62h72FwFRb1lt0RbdhAnuO1gJJJvIpJC/uhAufOPJzG7E4HblDlHHw1vHpcHI2SNKlZC9v/ili2S7qaDCZJ6Gu1FifZEGWAjTq820resbBVQcqUUDmlmDKPI2nPbftcObI12Q/qntQdZ/srk5+mPoURuYEt/dRyDTt34dMKyWnhuQTZ3jCueM1CUiSdDzO7p0Fa9qKchlZilRZNo7rL1se16TAcxEZu3FZ/APJtYRhPP3xUZVVfmlYJnB/nXX84KM0fISC9DaODqYpL4cZy25UiC3SO0VhfvdDWaws+FCEPwmQcWKGdXG3M0x9nmm93aEyRQ/g9/RBMnQ4bI7Clr8WtfhcjPKsQ0u6yPuZKTUeiLLrIagOjutUc5+mpUfobC54Qi8di+xrHG/v+xZJEuRLPJpetasYwD85wYreDiXimwNcsbUYedgTWBiCO+l+hOBnQGg1nA2hLMlSFTkBwaBDU71JjHjKx/Hc1iU1omISb35SdP+Y1Zr8q289SqdKiUOI9t6Jlf6vXtEwIob2gXinvP96/+by6nlv
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(11063799003)(56012099003)(4143699003)(22082099003)(3023799003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OG5EVklVemV4SEU5Q3FKeHJXZVJyMVI0dkxQejBQL21weDAvWVYrMnhOaEdS?=
 =?utf-8?B?bVduYUUwWnZKeFhXVGJ0L2R5RXNyTXRZZi91eDR1VHh5ZG5YSDFlU2ZVaUl2?=
 =?utf-8?B?Z2hxM2tsekV5OGREQmJOQlcveEdZQTFOcFNyT0s4cEIzRHBXYWtVYk5NOFU1?=
 =?utf-8?B?UUhEL3IrNFAwOGJVNTZZMTI4WEdPTk95c0xzTXdsVk9ydTB3VVBpcEtyZ2Ur?=
 =?utf-8?B?aW84ZUJ4VEZ3NkVGUHc2Y09NZlljTVJzNlE2MkdHRHlIWjFvSS9rR1F0clRB?=
 =?utf-8?B?TGM0VmtjMVFzdDNsdXpzNGgyTWVHT0ZzMWoxOUcxZ2p3dkJSS0RzdWFJSXRw?=
 =?utf-8?B?b2tGM1VEMlZySStqMDJGWG00ZE1nNGQxY01KZWtGejJMbm1KMVZEWHhqSFB0?=
 =?utf-8?B?WStWQngzSGJEMGpUcUNwb29zblpRZWRsSDE3U3dLUGR6T0ZkVjhCa1YvN1Ay?=
 =?utf-8?B?UDd0bzAvVGlQK3hMRUU4eXRpTW4zZVNML0xrcStXZmQreVA4SDNtSUZZVjFF?=
 =?utf-8?B?bU4zUURVM1kyZzF5YmZjeUJQVkk5a2EzL2toajNWWFI2T1oxclhidzByUDND?=
 =?utf-8?B?SC9KNUJnbXd1QVJET1VDckJVNGhOUTJGUFk0VXlnYmJZUVJlM2xOa2xhWEVj?=
 =?utf-8?B?eTRnRk5VbEx0b0p2UU9QejlPNExBQXJ1QXZEdzlhUGdaU2lXRWpwa1grejJG?=
 =?utf-8?B?OEtLSmZjeXd5ck9LTVNrSjArQWQxZHlhb1lPRm9RcmlrQmgzam1jWnJTVUhn?=
 =?utf-8?B?YXo2a29LTjhxQnp6Yy9ScGhndFNwTWJHSUdvUm9TSG4vYWsvUnMwUmViQWpx?=
 =?utf-8?B?QnI2WGdvUkFtR0RlZWhucFFETXp5M2NtQld0U2tyZHZmMEJOVXl2MGZ1VnF3?=
 =?utf-8?B?NVBQSG5KT1hvMWhraGd3bHhKZ2xwRXFEaEJWdHFia2pOa0FPZlZLOW1KZ2R4?=
 =?utf-8?B?VGZkS2xNUzFMRFNtNk55SWpGcmZmWnBsR2Vpb0xsS3RaSVJuNXludHFFYVpF?=
 =?utf-8?B?ck9OUXQzODZUdnhjaFZIaGQzMXAvbDNYaHBCQ202MVV0L2NyWjUwN21EWEVI?=
 =?utf-8?B?VVFEUk81bUpiZUhBOStDOFZwOE5LdmplczZQSUNIU1VLcGlFZzR0TjBReWlx?=
 =?utf-8?B?WUYxUlQzZ1l2dG5DWjZqVDF2Uzh1SFZHNU5tc0FOdjZwdlAybFVKM0R1SHdX?=
 =?utf-8?B?RWJxMnN3SW9ORmtvYjMzdjZwcGdVYUN2REwzNTR4YVVXRk1FbjV6UWc2VHlj?=
 =?utf-8?B?TER4bXNpY0ZSQ2duV25kMXVPUmpuWkNPc0Y4azhFd3Bsam5wYTBBYTFqVUVp?=
 =?utf-8?B?bDEvRG45cmFHR0w3RGR3UGRRanI1TW12d29RSjJXSFRuRTJIMEg1T2cvWVpi?=
 =?utf-8?B?aHNaNUJJYUFlajJOZFVrSnMxZWhYUXAvWndwVnpmeTNPbXZjWW9ndW9Zd1NV?=
 =?utf-8?B?TDdEeFB6QUwrLy9GSDZ3bUdKem05VDFsRTRaT1JacHlsV0ZGNnFxVXROYUJ1?=
 =?utf-8?B?TCtZajJGK2ZHSFBnTUthekR2S0RFdlF4eW5PY2hoeDFycWN6L2NyazlGZUpX?=
 =?utf-8?B?QTNZaUhmeTFiYnQySC91ZTdJbGxGWlN2azlQa3JPOVJ6WlgvM2krd2lRSURx?=
 =?utf-8?B?Wk9yb3BJcEhidUw3M2w5NE11OTZLcml6NU85WkUwRC9hbFV3UjZJSkc5N3JQ?=
 =?utf-8?B?QnliVEIwbVJ5WkdLcXVHeXRuMVMzNkFjaXdlYkFXT1lOWmR2UVhpTjhVdnR5?=
 =?utf-8?B?Y2gwT0IwSUE2a0g3ZDdEZlNIK1pOYzlGTEV4S3A5c2tMdU10VTdIQ1dScm0z?=
 =?utf-8?B?VXVZN2o4ZFhXMWNGSXZkVFNxSFUybCt3R0dmZDVkby96bDhOSXlHMmduVmp2?=
 =?utf-8?B?VnFaem1sVmhLMmprUmNRNTU4Q0xBY3Z2U3Q4UWdwS0lSZm9JVDgwa0tRQXE5?=
 =?utf-8?B?cXFZSjdlNHR6YVdCVGdqTnVYdGtkU0FqaHJYV25YRDAvUHlBeHBrNktJS3ZW?=
 =?utf-8?B?NVFQMmNnMEFFQmlTRnVjbUsreE4yalZjQUZ3Z1dxTGJmWjRGaXIzS09TK09E?=
 =?utf-8?B?UHRBZWJNM29aWXFjcE9GeGllQzIvMkduRFRBOUpZR05xMzdKYldlUFZVb0dS?=
 =?utf-8?B?bnFmc3l6K3B2VWg3ZnVuQURrVEY2cUllMTVSbG5mT1dYUXVuUVhLUEVweVhw?=
 =?utf-8?B?alQ0aHYyVGQwckRScmRDUjdyUGw4Qk1obW00OTBDbkRqWGlIc3VqMDlEODE3?=
 =?utf-8?B?azVVNFRBS1JEdmh3WGV5Sk9IT01jbmFCNkZ2dFgrSkxGZkdnZEYwdW1UdU9X?=
 =?utf-8?B?SkJxSWp5bVdmOE5TbTMwNnNsYkE2YjdMd0NZaVQ2UFNCVnZhQmV1bFNRL2hR?=
 =?utf-8?Q?R//lMyndTzVRRfsc=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f5c965e2-f57f-405f-153d-08deb26d524d
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 10:32:53.6131
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: q0Uv9yAl/98t5jcUgz+yO5AZoANt/UIGXljjrnM/IoTdYRrLBGjlQEb617pup6+GneCtJX9/TMij/yWa/NyvZTqbHTeJMT4AiVEhdwoFKlQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7204
X-purgate-ID: tlsNG-16d1c6/1778841239-8E78DD75-943CCC4C/10/73395122804
X-purgate-type: spam
X-purgate-size: 3534

On 15/05/2026 10:20 am, Teddy Astie wrote:
> Le 14/05/2026 à 19:59, Andrew Cooper a écrit :
>> From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
>>
>> Starting with Zen4, AMD CPUs can virtualise NMIs for a guest.  On older
>> hardware, determining when an NMI is safe to deliver is a challenge
>> and Xen
>> does not handle all corner cases correctly.
>>
>> With vNMI, there is an enablement bit and two new bits of state in
>> the VMCB; a
>> pending bit, and a blocked bit.  These directly map to the CPU state for
>> handling NMIs, and are maintained by hardware during the running of
>> the vCPU.
>>
>> When vNMI is enabled, have svm_{get,set}set_interrupt_shadow() work
>> in terms
>> of the vnmi_blocking bit rather than the IRET intercept.  This allows an
>> emulated IRET instruction to re-enable NMIs.
>>
>> When injecting a new NMI, simply set the vnmi_pending bit; hardware will
>> deliver the NMI to the guest at the next suitable juncture.
>>
>> One complication is that, when delivering a second NMI before the
>> first has
>> completed, the mix between common HVM logic and SVM specific logic
>> will try to
>> open an NMI window, malfunctioning as it does so.  When vNMI is
>> enabled, short
>> circuit this to not consider NMIs blocked.
>>
>> Signed-off-by: Abdelkareem Abdelsaamad
>> <abdelkareem.abdelsaamad@citrix.com>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <jbeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Teddy Astie <teddy.astie@vates.tech>
>> CC: Jason Andryuk <jason.andryuk@amd.com>
>> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>
>> For 4.22.  This is somewhat overdue and makes a concrete improvement
>> to NMI
>> handling on recent AMD hardware.
>>
>> v6:
>>   * Plumb through svm_{get,set}set_interrupt_shadow() so that
>> emulated IRET
>>     works, as requested several times during review of earlier
>> revisions.
>>   * Expand the commit message
>>
>> The !vNMI case is even more broken than I'd realised.  Besides the
>> "what if
>> the IRET faults?" problem, svm_enable_intr_window() basically ignores
>> the NMI
>> case and simply re-enters the VM.  This causes the pending NMI to
>> only be
>> injected next time there is a VMExit.
>
> Does that happens often in practice ?

Which?

VMs don't tend to make as much use of NMIs as native does.

IRET faulting is mostly relegated to misbehaving userspace.  E.g. one
thread uses SYSCALL_modify_ldt to invalidate the %ss/%cs that another
thread was running on, at which point the next reload of that segment
(generally the next IRET) will fault.  But to attack this, userspace
needs to hit the IRET of the NMI handler with this race, and avoid the
IRET of all other interrupts and exceptions.  Perf counters is the
typically the only way userspace has to influence this, and we don't
have PMU available to guests by default.

Then we get into differences between Intel and AMD.  Intel unblocks NMIs
even if the IRET faults.  AMD unblocks NMIs only in the IRET completes.

With Xen's current SVM code and without vNMI, IRETs get Intel-like
behaviour WRT faulting, and already pending NMIs get delayed.  Software
needs to cope with the former, and the latter (while far from ideal) is
generally indistinguishable from the NMI being slightly later than it
was in practice.

 
> Reviewed-by: Teddy Astie <teddy.astie@vates.tech>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri May 15 11:00:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 11:00:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309842.1580866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNqHR-00054q-NR; Fri, 15 May 2026 11:00:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309842.1580866; Fri, 15 May 2026 11:00:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNqHR-00054i-Kk; Fri, 15 May 2026 11:00:33 +0000
Received: by outflank-mailman (input) for mailman id 1309842;
 Fri, 15 May 2026 11:00:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wNqHQ-00054c-AR
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 11:00:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNqHP-008Hfq-88
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 13:00:31 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a06fcbe-2eae-0a2a0a5409dd-0a2a4509aec4-40
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:00:31 +0200
Received: from [52.101.46.54]
 (helo=CO1PR03CU002.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a06fcc4-2497-0a2a45090019-34652e36ad29-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:00:22 +0200
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by DS0PR03MB8318.namprd03.prod.outlook.com (2603:10b6:8:28c::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Fri, 15 May
 2026 11:00:18 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%3]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 11:00:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xyL45o3GMN0Rj5okErYcsWRfb/NNY/yA6yst65mNg354ws21GthfL7Zx02YaDMPM4lFuWFVoKS9peXkQ3s1xZoAUKO0frZAT/GMhVWl/oM4OQeG8siA+ci1D+bXyUsaGK3txbJy+BGHilYwSW7u6sU6cHStzrR/ZBg81wbuPveieeitrcDFGi5SK1jw+GWZdpOeKSd7Jo/42mp+LDN6mqalGGjkCR6hfBM0on737xRy6Vv2OipCL4Zw8RCgmH6duEft214LVs2XzbmNIEYXTjHUhlrlcD/04hNO1OXgqrgWBOCWs4m77I58PPWBm9x+Sfau9CC4RtZUrUSPjfAx/OA==
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=t6aqMWBiQ8PAsE41wGtdmXtdcraXcHn3p2QTAZPBRs4=;
 b=CfV7pQLKhKkusbuT3UhG6YDadqAppC00nawQ/ZFAOCgjx+9EUBIQRi1XansS2iSlgbQJNm6rN9t7tO1Qf15HsoIXFB0J3cyYyOmsd5eJbAaydKF8Qs6plvufmKvF/LmSP2f5M7MHZGgI68pvkl9cGTbOh8SQy+n3NgZBjA8LxaerMDU15ZbyHU0u7J/50Pa5MKvq4UGUujz/8WQ51Z3EYRBcEtLYtftECuQ0qJ6SMnVGQAkgHHUf1HIlJCOqhMJVUymkq0JRV1rWLDrJS/xX6S1PJ+6ZiEOT0i+LR/IuSKCFeD06J6OVU0w0FIikXbMuNzB5YbI/7Iy/rSA4w/yESw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=t6aqMWBiQ8PAsE41wGtdmXtdcraXcHn3p2QTAZPBRs4=;
 b=M91/TiGg2OoYXpPcPnNqQ+lZp2Z1wZ/tj6EUOB1kko0TJTYu1D6qzz3qohrr5jJ3zYtlKUhjdiiwi4IpDkCLjoRVuvZF5jes+9XD9XsM32KYw6JQi0by6HrXP5m4jQYdSVyODXd3iRVHh6otoDoUyBv6rueqXezOto2WGD6UcjU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a47e83a1-f17a-4de3-a1f3-d9e62be346ea@citrix.com>
Date: Fri, 15 May 2026 12:00:15 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 1/5] x86/guest: rename a local variable
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
 <ea005773-792a-4db8-a8d9-a88049006870@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <ea005773-792a-4db8-a8d9-a88049006870@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0277.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:37a::8) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|DS0PR03MB8318:EE_
X-MS-Office365-Filtering-Correlation-Id: 0c1b87fd-846c-4c40-b68c-08deb27126b0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|4143699003|56012099003|18002099003|22082099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	LuCtL+GETXnVUqxjeaqMKMA715G9x3nc5+i3ahTkNY0AiCXmtLEKamwrQ4BOkXoLlBiTzIhYerZdXYJTY3Uxm0JmnzkmxilxFwSCoQ3wRGUVFsB/fWSxFi9h4UxJrbja31HN3T6Ox5bYiUIHGKPQb+rSWCpGFUtGiNgv9xHv5KPyEBouliOA7XXBc+Sx8YEmeBs2pORTURJBOjkN/CIpAelq304ZKS5ONH9CfuspILSWoDNKB/dQI4O/zNecj6nzn5f63dwac3hDLlNS55RI46KLCjNgTre0c9+WoK0AU01/fbez8OU/91vWbgvOry3W2pVCRUwXgy+GmjdJOg38/lAqq0vCwV8CMMfg/5/bqwj++UFGB73lTquxw5CuVv9pkSHsPge4pGqgjndrp1V5TuitYmA5UviDl/KASOR1a0/koTW1wSCiBY8LNi2IFlsi1VSClz9K0F9uvbxfOj7crt5c7Vam2yPBSBp0KRjfzvo4rjFnwVrFzFRThX7YcVAMHjdf8tqXV1i72L6CnV/tnjt+G9anFw7dacvDZCM4L24xKGxY1FqoR3NsYizXaM2VvIGjhIYTsxufOtxlyj1LfK0LRHe5qne0iJFBxwYRURw7GfJeOPR0+pF5hNUHg0IBYzm5vkyQqWMScsEJMLboF+gsf1mJfEBFOctXNqLm2MKEA6SNn1rGYuE8mxyB/g4l
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(4143699003)(56012099003)(18002099003)(22082099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VWtOOWNoWmE2OU5lcVk5ZjhaczRFZVUzV0wvL25vR1dadjhXTitzS0NyTHYy?=
 =?utf-8?B?bUphSHVqdHg3cGZwdy9Yem85TjRJUFhLVnpNeTROOHBvbWFDdE9YcjJaR3Fv?=
 =?utf-8?B?dmdxWEZrQkhSVWdKNHIzSjIzcjlFUEpjaldITnJOTHRmK0Y2TjAxRG8yd1RU?=
 =?utf-8?B?M3FRdDVjRVd2V3A5T0Ixbi9mMFdLVys1Y0JEeWszMDF5eFlZZHVDMzBMbFpP?=
 =?utf-8?B?RzgyaTZqTVpXZ0c1ckFTTC9RdlV4QWxPUkRJUXFIZUFTSVQwYmxINm1XMXdR?=
 =?utf-8?B?d1YxSmllUTNrVWhtY3lLTllTNEhQYU1OeEdqSDljV2ZaL2FBQW1Dc09HeXB2?=
 =?utf-8?B?VzNwREhBdHpYSllNQnFJV0pSVWtVZXp2dnVJVXlHcGV5ZzlYVWtrRVhHajJx?=
 =?utf-8?B?WUF1Z0xxN2NvRlM5QnlxcnhQR1BzZnc1ZTNpY0JBcHR4aE5EbFArS3lSSGlo?=
 =?utf-8?B?amlJYnVncTR6V1gxZW1YdnBqSnRRaW1BL2NSdWgzZ0syZkZNaWpxN2lDOTU2?=
 =?utf-8?B?c3h1RzZ2NmlNNmdXbXMwSTZyMjZpaGxHOWZ6R3dFdnNsSUNPSDQ0Ykx0NzBD?=
 =?utf-8?B?aUpvb1hINERib0NXd2RLOWZ1UVJDeHV0a3VZMFpjNUwxRHNyQkFXMVdiSU1N?=
 =?utf-8?B?ckpDaWR1aXZDb2lGUm9KQmNTOFdLczZ2cGRCMVE4LzFaQkdWbElGU0pPOVAz?=
 =?utf-8?B?OVdWQU5ZQWl6N045VDhXamRKdlYxaXVLWHAvSWZsMDVLTkZFYlV4WWNmdmVo?=
 =?utf-8?B?ZGNBODdqVkhPK2E1VWt5N0REOEpQUlM4ak00VlVoSDh3c24rbVJHTzk2WnBB?=
 =?utf-8?B?d3F3M1NuWGVGSzYyYlQ1a25TR1NZajlyampETXpqU3Y3ZW9TNnI4VFJaQWtQ?=
 =?utf-8?B?ZlVySnZrTXpJbG90MmdtYzhodm1oVDl0bDRFZTRtc3NGM1BCWFlXc00wTWgx?=
 =?utf-8?B?SkVhS3dyRG5qOEZXMXJ4REZTQ0lQZ1FVbXVBbmxDN2gyNWdiUHY4M3RnT2Vi?=
 =?utf-8?B?UStqTDAzTGdjaGZEa1ZZbFRBVWNrRjNmY3dsSGg2V0o0YVhyMkhRRDcxZWFq?=
 =?utf-8?B?YW5vYlNCZGcvWEJtdDhWRlovU25wSytROGJNT3hQWjlWVk04dHE4bG5BTUF0?=
 =?utf-8?B?eHhrbkRjQU44dUs5Q2NiMEY2V3pNb21paU5uNEVWSXFPaFErRCtnRm4rUENZ?=
 =?utf-8?B?RWo1MFM0VXArcVp5QndIQmc2bnZtajU2RldRYVVpU3pBaThoc3A0bGZ6alpa?=
 =?utf-8?B?ajB0bFVKbUVIVi95ckdPYlhIWmV1UWwrcG5OWm5LMWdMMytBVHlESWl4K0lN?=
 =?utf-8?B?c29ZUlFHam5hYkpWeGNrK29mcVV0ditsS2txNUp0cjlHaDQ1d1ZEVHQvZCtG?=
 =?utf-8?B?Z1Uwa1lxL0g1VWVvQjBTVHR0Mnh2aXhwRjk2TXdEdTk3ajhvSGhsT2V1MGt6?=
 =?utf-8?B?VlkvWTRyM1dnWmZLQUE3bVFGcGtZblBYaHJjNHYzS29wcnArckh1bGhiOEd0?=
 =?utf-8?B?OTE2aGJ1R2p1QWZoUDdKUWE4K1ZQU2lwRm5QL1BWNTA3dmVMVnhwandlKy9Z?=
 =?utf-8?B?WFFBQ3VObXBicUo2anlVRWVZNlBYZE8yakxTTXhLY0E2akl3cys1bzl0b2Y5?=
 =?utf-8?B?SXZ3dHlqMGw5MWNxSHZyUDRVcGJuZDJ5Z3hhVktiTnNTMGJwNlJVV0FXWW9a?=
 =?utf-8?B?R0J4UzhIL0dydGNjbUJ3dDFlUHFRQmVuNjBzU0NoaGd3L3lXV0VFajZPQkZX?=
 =?utf-8?B?Ym1jSi9rcC9kN1JoOHgrc3F4b2x1TzRvNXFDWUsvaTV3dFNqMUhVR1ZCT2di?=
 =?utf-8?B?ZTMxMklqSktWQW9YNjZINnlSN0FGdDZKRlNuTjVXQzN3NW9PenJxYlp0Ukhr?=
 =?utf-8?B?emxIQ2dmWmZmeFpNVzJzTFRiQ3lZSTVSRDJvL29qRWszbDhSYS95bXFPZEdO?=
 =?utf-8?B?RnNTMUdEUi9KcXZuK2Q3NWdYVTFVYzRlYnJpVHU5VmVsZG96b2gvQVRyb1B2?=
 =?utf-8?B?Y0k4V2pPcEpXVDVER1NSRWMxaVNjdVhLdWRtR1hDVDFlOUc2cDdTd0l2OXBS?=
 =?utf-8?B?UjV1dVBRTGQ0azc5cjVtZVZPWlBHZVRkeG0ycCs4eVdjMjlQUHJSUjhGVGRC?=
 =?utf-8?B?TDFtMXg5Q0xJdVdXbGJ0V1B3TG96TW9VSnByVVMrTEpvaC8zQjhrbFVKUDhB?=
 =?utf-8?B?dlJtbSsvOUlFODZERGo4ZWZQTElhNGsyVUNYVHkyemoxbkFjbVB2d3hCT3Yy?=
 =?utf-8?B?dTNxTHJOdkErZVdPRGZxMERFTTlRbGF5d0s5MS9TSW9EczlSdmtLNE9pTjhl?=
 =?utf-8?B?K2xaV2VZM0gxdXZoVUpNbzEwbHZVVlNnOHI3TzJUQWhtWkdQdk5rYkl3T0hm?=
 =?utf-8?Q?tGi/nbTs8sp6J+RI=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0c1b87fd-846c-4c40-b68c-08deb27126b0
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 11:00:18.3939
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: WMcnwpVSbRdqOpmAsSrxWM7AQKlWXPiHomyHSqj72iZLaUg1Z9t/QRkINm+NhUOGdufEc8vqaGG2zGet7EbS505bQlwM3MjIx91OFPwwva0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB8318
X-purgate-ID: tlsNG-bad1c0/1778842822-41F6EA53-E46153E4/0/0
X-purgate-type: clean
X-purgate-size: 366

On 13/05/2026 12:44 pm, Jan Beulich wrote:
> ... shadowing a file scope one, thuis violating Misra C:2012 rule 5.3
> ("An identifier declared in an inner scope shall not hide an identifier
> declared in an outer scope"). No difference in generated code.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri May 15 11:14:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 11:14:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309855.1580876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNqUx-00071d-0f; Fri, 15 May 2026 11:14:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309855.1580876; Fri, 15 May 2026 11:14:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNqUw-00071V-Te; Fri, 15 May 2026 11:14:30 +0000
Received: by outflank-mailman (input) for mailman id 1309855;
 Fri, 15 May 2026 11:14:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wNqUu-00071P-Tl
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 11:14:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNqUs-00AUwO-GV
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 13:14:26 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a07000d-5cb7-0a2a0a5109dd-0a2a4502bcca-22
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:14:25 +0200
Received: from [52.101.69.33]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a070010-af86-0a2a45020019-34654521c911-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:14:24 +0200
Received: from DB9PR02CA0008.eurprd02.prod.outlook.com (2603:10a6:10:1d9::13)
 by AS8PR08MB6021.eurprd08.prod.outlook.com (2603:10a6:20b:23c::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Fri, 15 May
 2026 11:14:21 +0000
Received: from DU2PEPF0001E9C1.eurprd03.prod.outlook.com
 (2603:10a6:10:1d9:cafe::45) by DB9PR02CA0008.outlook.office365.com
 (2603:10a6:10:1d9::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.12 via Frontend Transport; Fri,
 15 May 2026 11:14:21 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU2PEPF0001E9C1.mail.protection.outlook.com (10.167.8.70) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.8 via
 Frontend Transport; Fri, 15 May 2026 11:14:20 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by GV2PR08MB8463.eurprd08.prod.outlook.com (2603:10a6:150:b4::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.19; Fri, 15 May
 2026 11:13:16 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 11:13:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=cmUSP3h6+dd74/rAc7rCBnht2adiyQeJ64D8r9pot4LXmBMvyv7kO3/zgUhh4yIczgArWozULM8rK4+idSNxLAQo3dCe6igsD8zUU4+g08J0R3J9cfp09Uc3l5nifPscbqi34+3JwA8bqWqjVZ24+ES4InyYnO77Gug0Q4j3ztDXHys1Fl/z1CmukKQezgYaP/CPZ8tFtnJuTEe7C0e27IYhwh4P8vOGE2GKYu1m40wNDHY56OIyVFrCyP5A42rZlwaL5ocXVVoPEKxTjNWQya6pTUpGg/6NDU6gLrwYezC1K1Yss1dT9IqjnsR49CbnQnYocFpE61BfIDpxSW0Gjw==
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=w7PJffTOgqQIFOKPubSQLE/mHwWXQWXZu3khvgd8GZg=;
 b=dV9te4UKNplnd9Y9+LMh6hDBdAc5CP4EXn/ITdcTc8nCI5d6PVyiEgcStGGIftuykI448ZARW2T8DvGhJiqELgXdb86oZq5BS1fm3KyWJhPivwi4fi4zOt9K8J8ujiJQsm1MXJRSJp53v/Y1EgTl94wvHkdvocNluKwDXgufpnGgWwq4B9FFGpW+NzR+nsQ37zZfJ/IRrDheHwrFoTcyO1lu0yGKwip8rgbKz7Vbbmtgs1VNjajQMK6Tg9+6UET2Kyo89/QLGcmEsiL3ZKA81Okc10OZn1nxan87dmKmCK1WNzAs+PG4PGYSubYeOtT/t6zLp90KFzATMtGumd/rvQ==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=w7PJffTOgqQIFOKPubSQLE/mHwWXQWXZu3khvgd8GZg=;
 b=P83TvLQmCgwg9OryIDYJ5c5cN9zeyN1fwPOol8u79BqxEj38LoYbcX0XMz61tfmZXZvEhzcIUcXW0s+zzQ3gXMZtw5DxkcYcWvuLJX2RUTVYyWMuaMbDTOtd+/Lf8Vz8MSAcB3Ammy0B12gOsX2ISE4EGodq/FDLu7okLJN07XI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kgE7fcGzaAbYnlucpIy7zCia+DpRZwOYwSNhQS4eeJyRhdwxiDq3ccvw1CzudOaEjFZ03h4lXG+ggq9Y15G2LKbAtO9CsC/z9TfUHfpxIhmITyMoLpiSfxlZTUhaPEU19le/1V5BUhrABWjaADyqfWEHq6jz/hW2XnPz5dwadR0MPaJ4FXr9V8Cn3L+nt0k7XlZqJ2Uzfv4c2eqxmF96XlkHL0glZktc1tTtjGXFfnBeQ2WjnOFe5NzTPeiKe9ZA3imdfibDUz/nXZ3pe9b/NuC7DAVMONiAXGm44H3V0+4AVptdJutVMscdZc0milm/JTfRtJ/+hwxII9nVDtoQAA==
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=w7PJffTOgqQIFOKPubSQLE/mHwWXQWXZu3khvgd8GZg=;
 b=bcD7rDNwcwbQnVuYdYduEJoPUaDUKXaCzKCkjX7ANItBWOXx2rVia3zmf0MEzywhBPF4cWgJT3N46ZkmVYWePkPCCzSARmNjHGvyZNaGfc53n2YWDiqjpc2q5Ub3K0RuQi9Zs5jV8FlyJ9cIOXC5b1rnb0DLaJLAvSB3udhdFaKXl0eNzKTj+8L1AqL/UkftqHFpFYVXltBrCYjQYgLVj2aRM5+pr+SOINW20zT91i+AoG/JMi/R7zYuaBpGSa21jfrpcurKRv82NklRx7O25VQrts7JaPRiMsiKr5RekTdeRo/pUaFuj8NeRn+TSCTqjXBSc27btYfQ2xZu9KVokQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=w7PJffTOgqQIFOKPubSQLE/mHwWXQWXZu3khvgd8GZg=;
 b=P83TvLQmCgwg9OryIDYJ5c5cN9zeyN1fwPOol8u79BqxEj38LoYbcX0XMz61tfmZXZvEhzcIUcXW0s+zzQ3gXMZtw5DxkcYcWvuLJX2RUTVYyWMuaMbDTOtd+/Lf8Vz8MSAcB3Ammy0B12gOsX2ISE4EGodq/FDLu7okLJN07XI=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: gic-v3: Wait for redistributor RWP using the
 right bit
Thread-Topic: [PATCH] xen/arm: gic-v3: Wait for redistributor RWP using the
 right bit
Thread-Index: AQHc44GJZeccdOCpo0e0+3i9mNDOBrYO8H+A
Date: Fri, 15 May 2026 11:13:16 +0000
Message-ID: <EDF5B3D9-F532-4D8E-B156-172649433AE9@arm.com>
References:
 <0fc5e4d297b8dde66ea36be3ebd60a68dea2562d.1778749474.git.mykola_kvach@epam.com>
In-Reply-To:
 <0fc5e4d297b8dde66ea36be3ebd60a68dea2562d.1778749474.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|GV2PR08MB8463:EE_|DU2PEPF0001E9C1:EE_|AS8PR08MB6021:EE_
X-MS-Office365-Filtering-Correlation-Id: 8012e0c0-adfc-497a-e94d-08deb2731d03
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021|11063799003|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info-Original:
 kA5+xD80PBrqQULwImDbxp5LxeRg9twqvzrDd6VSQ2ExgHlgQiOMWjvnJtZQEe2pEVyq4cmr9d0IsWnyTDFhHAqlYVvGP82wwoj4JYm65JYj+a1Qx9Qix5myMYdp0KAUskmYxOZiwTBQc5Swf2LlTI/w/vioWqqWvvMOlC3zARdeQ8n4hyqToQTED22761AzLfJknKsCpDIjcKIuliVPQOcTQBJwl8WaJ6ZpPXCLF5mkcfg+hSc033X/eEQ4Ehx0WbPcgfwEKNOSr8VNBdd7MYUN+k5EldhUC/To5wCQFebrQgUZ4219vS3ej/aK30ezlUOLACja2wUeTQmpp1x7vu5i21+D7hPRljR9wVsmqQLfbCgHiAdnrk2nxK9GP2nh8Q4gbc+nxDYMD/2iMQCvMD7WGPa3szmcdEP6qFsv4NEaWx7LAQnDZyWLVw4IIFlSeqtIrTnRQ9GTijIGRhpPuCdNo4Ece/V82tQ0vxFtUCE5KiLvvnW9es8hk9RkDx9bhsuNJo2EgktRCtxhyHcRpCPiiqRF1M/g10jyG5dWnqq/l7JrleL7vUgqy8xTK99NKJxYvHRZATiGcR4qBl2es5xqYOGew1G/QMnl8p3F/gv2TiD1mkKKLBopPRuWe4BW8+3m2DUwZ2B40KEuYUptczw2nA5xCvAN66NFtcswuAUH09TLGDQP+brBWNTVt3H+zfQaBtg2kiyOIDYTSEdNLepOVHBgmlwOmdHqC6CWHB592XVm2v6ZD6aX28lxBPTV
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021)(11063799003)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <62020C563A0AB344AC90AAD4037F1253@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 aeOMeZo6XilHIpGU37aJNaGX2IEszhgElvdGPYep1hd+Udc+mRG9e7xuo3Ag3ipAdITRq425pw8gr2/5Kl1UK7mVBXzjKUI5oM7HNQN1G71+9qnYnGCfx//qp9bjXT4qk0TznnUTzwYPn7kJYjsxjxcwmWe4m8cG+VvMcREviWLalfDXL9X9ZpsatV/4ZsWFXGqvalnsw0tHE807OwhBnFns7XV6AOH2BvUKXYxvqqifVZhrQ2sCXjbhPSrjwsRrq3YobrAjrugrpjUq+Hpn1+sUdB8RcL41f2TLOXtSmMd6gG6yQSCi7xbVvUY5QFEuSA4dnXBKzrhEAfSR1+/RPQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8463
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF0001E9C1.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	09e19d9b-4c93-4d6b-6d14-08deb272f655
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|35042699022|14060799003|376014|1800799024|82310400026|56012099003|18002099003|11063799003|22082099003;
X-Microsoft-Antispam-Message-Info:
	dpiWIgRClqjXxmMEtV016FSTwC36GWxmC/ECYD+Cv+N6FmaTLoigR7gOehpLyuF91xYGJDFgx1mQP4INoAvx/GVjQNQtEyLrpiMAkBl+qWgth7OXJjRgdOSjG9Mb+xv/JPdsYvr38ANamAFk6toH5QOmbu4HIPDrYLA+642FNzP9tSRpLj3k8Z/VF8RnW1PtSnKlgLjU1b9z2f7tUKUv1k5zlcUuzzbD7tKIdLrl4rVN/Zn5W69l2Zad8eTRACVdURHqn06hfx8uixGhm9sq6LfmOjwS/DR6LkdaK3YVxsPiXLc9ZR4xk3wclkXhM+CuHTZe62diQCqliOwyI7jLgMbT80XaRUM8D/kfL7xKfitjKDd8vxHQHuBt78DIZMbpUve50nZPXEAs769wzu83MDcS+6tPJoCkjbZsCNO+9nZtobmhPcz+ehHGPEAOBtziALu/umk84YantVQPYHajsAa0jf63JpB4C8ofRlwykREocmRz/sBdbKpxSReSVZoDexMs05092X+BRd5KTn0peFU1+nc5K4Kd0EIhD/nh8h9/rWR74L1W9dxfGtntDY7nQkifLdgsBpgdUme1xYvFnmGvm8+Bxsqjkqb1sGURLlX9+vwRVO409Y2aYi5fJhSHbE/q3c2sBKeLg6ledK8U1oOWQxlhXllQcWQsFLzP6nCE0g+R6eRESb0MoIIieC3bvZpj5K8atbB8bZMp/BY/C8Q18TdGOxxC/ThDmmpbzKo=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(35042699022)(14060799003)(376014)(1800799024)(82310400026)(56012099003)(18002099003)(11063799003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	fUaehOpfVv6TlMKDQ+zmywKJ+xkWKo6gcQq03DDmmmFktyf1S9klSnj5YPZyUhLZA+m7LoMH995u/v/gnerNmyZgqUfdLAlfnvF738TGWxNhR/s9+0QH3SddT/hlrzBe3K0WXCe2qYi5BHdn6RHcJdw6gF0VbKmLvQdJFdyOMG6VQ8eco+J37aWPIFi2IzP8dWOZbxmrDCrqhrWPeJNTCuhwWEjKplwjtsI7ucPWeSHpwazXHSlp18Bv97Xv3Rc+8YtNwLK9C6aDuLs40vdzc7185ABG7Ywj15mAlFKZpvQuNzcOa9/cYeDlIVoV6cdy6np1fr0YyBM5HvcxtMZPgLV4P1msKcZJ4zJb/Cj9Nm7eH+5oQCkzUtJiFzgFoM8nd+S7fEiiIiMSzLO2P5H61dpuC/gG5wiWIH44cdQdFkrZpQtmtR6mEQbaaRNUKxSv
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 11:14:20.9993
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8012e0c0-adfc-497a-e94d-08deb2731d03
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU2PEPF0001E9C1.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6021
X-purgate-ID: tlsNG-720697/1778843665-80979161-8E87BF86/0/0
X-purgate-type: clean
X-purgate-size: 1127

Hi Mykola,

> On 14 May 2026, at 10:08, Mykola Kvach <xakep.amatop@gmail.com> wrote:
>=20
> From: Mykola Kvach <mykola_kvach@epam.com>
>=20
> gicv3_do_wait_for_rwp() is used for both distributor and
> redistributor writes. The CTLR register is at offset 0 for both,
> but the RWP bit is not in the same position.
>=20
> For GICD_CTLR, RWP is bit 31. For GICR_CTLR, bit 31 is UWP,
> while RWP is bit 3. The redistributor wait path was therefore
> polling UWP instead of RWP.
>=20
> UWP covers upstream writes, including Generate SGI packets, and is
> not a substitute for redistributor register write completion. The
> existing redistributor callers need RWP semantics for redistributor
> register writes such as GICR_ICENABLER0 and GICR_CTLR updates.
>=20
> Add GICR_CTLR_RWP and pass the expected RWP bit to the shared
> helper.
>=20
> Fixes: bc183a0235e ("xen/arm: Add support for GIC v3")
> Reported-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---

This looks ok to me

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Fri May 15 11:51:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 11:51:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309879.1580886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr4V-0004KY-PV; Fri, 15 May 2026 11:51:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309879.1580886; Fri, 15 May 2026 11:51:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr4V-0004KR-Lc; Fri, 15 May 2026 11:51:15 +0000
Received: by outflank-mailman (input) for mailman id 1309879;
 Fri, 15 May 2026 11:51:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wNr4T-0004KL-Q5
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 11:51:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNr4S-00Fue3-O9
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 13:51:12 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a0708b0-e002-0a2a0a5209dd-0a2a450a9cb0-2
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:51:12 +0200
Received: from [40.107.162.29]
 (helo=PA4PR04CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a0708b0-56b3-0a2a450a0019-286ba21d9957-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:51:12 +0200
Received: from DU2PR04CA0244.eurprd04.prod.outlook.com (2603:10a6:10:28e::9)
 by DB4PR08MB9216.eurprd08.prod.outlook.com (2603:10a6:10:3f8::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 11:51:09 +0000
Received: from DB5PEPF00014B97.eurprd02.prod.outlook.com
 (2603:10a6:10:28e:cafe::1c) by DU2PR04CA0244.outlook.office365.com
 (2603:10a6:10:28e::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.13 via Frontend Transport; Fri,
 15 May 2026 11:51:09 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B97.mail.protection.outlook.com (10.167.8.235) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Fri, 15 May 2026 11:51:08 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AS8PR08MB7696.eurprd08.prod.outlook.com (2603:10a6:20b:523::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.19; Fri, 15 May
 2026 11:50:06 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 11:50:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=D7VSCEti2Q0x02HqzENpwga+4rOZjJfYp3nlvanNMzVR0Ovdkbh9R2sBhEcmXOK9Dhz39yCDtZVG1PiEI5TaBx7D4F8D9ZJYj0bOyk/YTSd2D0mvlMc4ckDCDgX8M3nBK8ahCv8ON/g4JJ07qSl5q7EO+LSytv+4nS+jO86sO9sd7CA9vx3c5IFpxB9NEBSOzc8nMPMYGKqKkHetPNDwFLQHqQAbx7u99NC0Ntbl0bSP31UHiVmHye7J/zn8+ocEOZZzXhSb7Kewy9uPcxHqgh0d76YoZRib2ZKmSLZq+gJkRnm03TZc5TjURZqrV1MXF98WLB5iXWYBBHAa29Ooyg==
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=RQ1DQe1F9Ha1zKGB0iIc/Qjo0CwP1ZEYCWbR7VWO6/o=;
 b=nTMhZQofcefzl6g8/LzvdMEs3Oqy6UWFFfVcFLkoZ5xiTGphXu8KVGcg0OU55kK6Xsy+Z0CZr6Bmaxu2J460XkLTqQzJoNHTC98q9C4f2k/IrwsR6R46LXkWpdXDhs2lw7g28W4Tdcxknw2wpfJR27oKXvKCd97b9MtDDOQwyEUtnjLZenBOmqOwA/vJKWbkjX1iUjf7RxTNpfxZN0OIXiX4qVl2SVP9ppMZHFNCa2Ypy4PmcE13a7BEr5jJKEwRAqr7uve93ga88mk973ls/JCqMaNrWXWUNJtBD37drilL86LLFK1akkfZNQa1vt21OkDja8GVGYXzzTfCm1Q72g==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RQ1DQe1F9Ha1zKGB0iIc/Qjo0CwP1ZEYCWbR7VWO6/o=;
 b=n+2dBx1e6BEOv0HiDfQyAKGVIIihn3JHf2u6SxThE5JwjoEw/1kmSzNQWW4yANrj0P0HpocLl2R3AgHJ7nfQ4SIJiNUhzGMaseXafzvyPWZ9lxwteurFuvyOZVcLICRfBt8mPwbM99fH/bGnCuNiDbcmL/zmVhJv/iE7OjGr57c=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qZhCMJUKpESbj8YAcvhMRSTRr0DqEBpdjXQ+8Z20QHHZ/C2843Kg8E/tw0g0VLqxUO/xI674eG/E9QKcUc+rZ1deRCmITOxXKAjdOf34NsvGQolndwMMNXYQrBeDB8t68GQmHpa7z8mtKlDpdhJgqN194GRud0LN32TkhWsUN7F/001P8jL2ve3QLfaucjHBsgspw0HHR9oRNQ+AFLv7wIPO+J1x6LWaPcOTuFQu0iyDBypwME4k/YQRSyArYaAGyV38iMztj8MR6wKvHo+0wr6xpW1jbbwe/5aUSjHCQeFR/my28Yt68QYNJCc+Wy+/2BH+cQ1mzoG0UiOui9uluA==
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=RQ1DQe1F9Ha1zKGB0iIc/Qjo0CwP1ZEYCWbR7VWO6/o=;
 b=inVqhfg7F8431hQ3Z+yaMHknJkJC6WPqrqdbn873T2OpwCcDP9Q6TG1dKqhuS82HgeCk4se7xgqkUsDKEa/hn4O0yx3Gb4r6AanpyATirf8USbCfuKVIumUYIo7lFtBsUoSyTNT8h5fOf7xsWA4kV5JBU8Qn7RspTxta2Om9UOeuiOxto76gUwHSJSvzssNyRc7h/tZYwVue5JIiQs/jdQKabLI0bHcjq2mQfTJSXnp7+KYx7noixiDl43V6J8pd3c+CJIQHt2S37by2l7lNW/gvbQMm/pJB7H4UcQHIi9IryDWM7IcB6WEsaTmS7gp9OJOTZngr2tr1Qx5X5q/VDQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RQ1DQe1F9Ha1zKGB0iIc/Qjo0CwP1ZEYCWbR7VWO6/o=;
 b=n+2dBx1e6BEOv0HiDfQyAKGVIIihn3JHf2u6SxThE5JwjoEw/1kmSzNQWW4yANrj0P0HpocLl2R3AgHJ7nfQ4SIJiNUhzGMaseXafzvyPWZ9lxwteurFuvyOZVcLICRfBt8mPwbM99fH/bGnCuNiDbcmL/zmVhJv/iE7OjGr57c=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: scan CLIDR Ctype fields upwards when probing LLC
Thread-Topic: [PATCH] xen/arm: scan CLIDR Ctype fields upwards when probing
 LLC
Thread-Index: AQHc26dpSVe9fegCuUahO/LG6twV8rYPCn6A
Date: Fri, 15 May 2026 11:50:05 +0000
Message-ID: <E80EC1E9-35EF-4118-A27B-17D8CEE8D2F4@arm.com>
References:
 <998162706f89bb3100bda409d8fde3c8b143eae6.1777886129.git.mykola_kvach@epam.com>
In-Reply-To:
 <998162706f89bb3100bda409d8fde3c8b143eae6.1777886129.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AS8PR08MB7696:EE_|DB5PEPF00014B97:EE_|DB4PR08MB9216:EE_
X-MS-Office365-Filtering-Correlation-Id: c6b9f931-d409-4282-18fd-08deb27840fb
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003|38070700021|3023799003|11063799003;
X-Microsoft-Antispam-Message-Info-Original:
 jADHwF/IXL4/b2eVD4YTzRae+9+O/gb3HSF78r+dRioJ7Cm+KGDAI6Y3/AosAKy95Ck6eaDDZVrUzp4mcMUVIOFhkbFJ4RLjstm8h+L2NO2x9yOjg8owWRMU9TYOLFzRojQf/x89+FXJW7+IDqz3Iq7eQ6fxrCvueWCDW/dAZMlz1pgjaOJpAeLpf7/Ygz2jcXMGrG3UfSdRyaRAT5ZTKG+7WWUFispnO8uixFw7cRKj4n29DC0ZYzTCfVz1nTfDxF74Iy3jXx4HLGBHKppGe7z4nfb0iiyq+4VXT5QCVGMOou9NnbUdWt+BIcGusy6QLy1G+D2YIUcIO17gZvPg+qp4XmUNP0EP/8m1X2bvcAHmD6dL4YCX3s9xH3HKw7b6xnQDoMCwEpuIbRZAuewFQdqywEhUa/e5pivG7CE0xizw2FzwcIyk0BeU47jQIPhvYXaQUR3zGK7HUdT1CIjfFBdrb9gj6vkL5HpgAzKdrYygG2R/ghQujjZQWkBVKpPkYn1kHlaJ6gGP/96C83LpHMEPscZAngNlurHvmlerh2ug8KRxOI3hvZ9il2mZleem+yzxUEKvZ6T10HJJgOoPa3jFXUT371rzNANNwHTP6Hd2V29m+C7+E7j8AsUXXDHA2OebwVKVR2uIB0tE2aS173XBm02/B1nx/z7uQIFnlVFSLMEVib8ow8bZIzZfysAsmevIRKxLT8sFBWFscJVzMD287/ShliLLY62WWvxYygARsKqmyg2ea35iIGx0177T
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(22082099003)(38070700021)(3023799003)(11063799003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <86379C553606824C8883E6AD00360664@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 lJYIbmqVYg5bIjSQSNhtEnZjE7hcr1yGRY+nXQTxKr2YKO3Ujll9cjToKWMLvl51Ivxi+W8foGlT8jLry0h2qiUq8/rVnjAJMNUCxQz2dAgqMyx3XHwbE+CU3t1k1MgHow2v2YcNIjPu5WW6vwJeM/uS63dlGu9slpVTR8zEahBPkKL9bYTysjnDFW1jadCLgigLUPLUWDtAPu+iwM1ch4OvjOJGQ03jI0nAng6zhhSx4Q+4LapA9/dPJe9M60FkENyFw+BT/YmJijZlI+QVY8SBxR4Ze123dMT/QzOZhBb5lW4DguJaPI5suWe/ory/NxJ87vUzNTXgV+Cs1nIE8A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7696
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B97.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a4524ea0-dc9e-4aea-158d-08deb2781b73
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|14060799003|36860700016|35042699022|82310400026|56012099003|18002099003|22082099003|13003099007|3023799003|11063799003;
X-Microsoft-Antispam-Message-Info:
	nUFKve8qbl2eibZNmaFogiOiypoMEL1Uly2bMMhhhFlglOH818E+naMdcAzuUhfdPHZJQCDvBFwrSJfj+7FfbWt4yrl6hHFp9cFeOor6OEacDmD6muOmaWL5dK/uF1lnjpjcaGO0xzUyLKOaC0cHqzRq3rGKu9KV7DcnB8aU2zbi33g9jv67JEsHi6ncqbfUiY2rX9YlzmLv7xvzlP6CfL5Q5F7Kn/KCJqdHeF++S4ADpPeUh9V7CYts/PZfSuumG4CCT9fuIM2bve4TjCJoYPfoeEpb6mZEX/GhZWB7DGP81CQF6peqtXCrDgCN/MuLTC6R/HJj/t4+Xgd0CrdN+SBsxZP6/BVetxAKk6DC+T7bcsSubyG9xogjTuiyr/hTGm0nU4khO36Shj4YMgcIOx20cpOGOhFVHB33kVnk+gpPEp9/TOUrToSFUEy5ddnIAXJNy6DLcRh2Zq+1TGj7p1BIYruzHyzimQ6y3zxndhCil+Lkp6NPvfverh8UbDR/2DeUw61Ujjf1RXf6Uq5z4rujAO8deV1xuFJfuMDynVgdyCPv5pxvg42ujWYNPamOSn62i01h2r2xLfLSa/HAsp8dGRqWmuJ+oxE/l1M3WDeortPetuYBks8fP9SFjp8TuKlrEK4GO8B4hxjX8UzMzoILp20f06ZLTLLVQPmfsEk4HT1lH3lr9rdgWFNTVYmlfP5lLILMQqLRLcBTznCKdZxOk61uJ1JWTs52RrA+GYPdoYnMYFTZo/CEWh9mpryV
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(14060799003)(36860700016)(35042699022)(82310400026)(56012099003)(18002099003)(22082099003)(13003099007)(3023799003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	A0tQ/q9mvNGCia6DXwqb+itA3FU7WYvHxrcr8rkRIAVotRilcaqd20E0+c4tCgEO/hbEmnJo4nFiD5Fx2EVWLftiHQuOrY0KRUjej2ainsy2m8dG0Wbz13pCetk0NaLhduOcVa6Rn/kQfHdC+/P7U+3WS3yJub0qF5euDYucZ1yUjMN8SeaCcru+kT6euC9i2IhEAn9MpOfd8za1zKl4a9GPI14cycmt+xfBQLICAMPm1Kdy/1/14r/ZeSGN/gbxGAfhS9dmuIgc8H1ZjH2p2ZCtJaX2j34VNVYFgY+fJRa58x2hSFdqlQ5cYK2Me1qHTiyDY7I47HtzXfab95al1ecR71m3uiSqByX6BKsHzjp37MA3PTDYrNAMMXjJqd4PRSNWGmdmaVlaHUk5Q8sxGuKu+6pYz9pgEgieWeEE2vjlpYk38j/d8q7YA6opzxVk
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 11:51:08.8157
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c6b9f931-d409-4282-18fd-08deb27840fb
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B97.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB9216
X-purgate-ID: tlsNG-4011c0/1778845872-7C07C8B7-8AA42EB8/0/0
X-purgate-type: clean
X-purgate-size: 2100

Hi Mykola,

> On 4 May 2026, at 10:19, Mykola Kvach <xakep.amatop@gmail.com> wrote:
>=20
> From: Mykola Kvach <mykola_kvach@epam.com>
>=20
> get_llc_way_size() currently scans CLIDR_EL1 Ctype fields from the
> highest level downwards and stops at the first unified cache it finds.
>=20
> However, CLIDR_EL1 describes the cache hierarchy from Ctype1 upwards.
> Arm ARM DDI 0487J.a, D19.2.27 says that once software has seen a
> Ctype value of 0b000 while reading from Ctype1 upwards, no caches
> manageable by the architected set/way maintenance instructions exist at
> further-out levels, and the higher Ctype fields must be ignored.
>=20
> The current reverse scan can therefore select a unified cache level from
> a Ctype field above the first no-cache level. Such a field is not part of
> the architecturally described CLIDR/CCSIDR cache hierarchy and should not
> be used for selecting the CCSIDR level.
>=20
> Scan Ctype fields from L1 upwards, stop at the first no-cache level, and
> keep the outermost unified cache observed before that point.
>=20
> This preserves the result for regular cache hierarchies, while avoiding
> selection of an architecturally ignored Ctype field.
>=20
> Fixes: f4985fce6f0b ("xen/arm: add initial support for LLC coloring on ar=
m64")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> This patch follows the xen-devel discussion:
> https://lists.xenproject.org/archives/html/xen-devel/2026-01/msg00345.htm=
l
>=20
> In that thread, Michal noted that the reverse scan was a simplification
> rather than an intentional requirement, and that changing the
> implementation would be fine.
>=20
> Testing performed:
> - standalone synthetic CLIDR tests covered both regular and pathological
>  Ctype sequences and showed that the forward scan ignores unified cache
>  levels above the first Ctype =3D=3D 0b000 while the reverse scan can pic=
k
>  them
> - Renesas H3ULCB booted with llc-coloring=3Don
> ---

The changes looks ok to me

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Fri May 15 11:55:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 11:55:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309888.1580894 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr88-0004sa-8S; Fri, 15 May 2026 11:55:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309888.1580894; Fri, 15 May 2026 11:55:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr88-0004sS-4r; Fri, 15 May 2026 11:55:00 +0000
Received: by outflank-mailman (input) for mailman id 1309888;
 Fri, 15 May 2026 11:54:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1wNr86-0004s3-Jh
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 11:54:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNr85-00Abbl-U8
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 13:54:58 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a070990-e002-0a2a0a5209dd-0a2a450aa776-6
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:54:57 +0200
Received: from [52.101.70.125]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a070991-56b3-0a2a450a0019-3465467d29db-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:54:57 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PA4PR03MB6926.eurprd03.prod.outlook.com
 (2603:10a6:102:e4::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Fri, 15 May
 2026 11:54:55 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 11:54:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BEV5OC3s54nPGhUzhhezYa6Z8jBiU3xelSsZnNA5sAPnJQwOvOQaxddmouzUPb6WwfG0ZufaNdaeV0pWRiLjlvHTB/Ldobn+9tlodKwmRgA8RaqMIHbnRUScbYR6Th+HWIZwNn5czVXEhMeb3QR1IDJFoQMMfdyJ1qhynDSfWyN/qAWu+Tje+uFhSKagr2C+0Iw+gAabbWe3feLyfR0HgagRVGQs/C90L/JKFvJ54cPYHk9fHq2Q/Nr7icAIynhhKYyU9dRtcIGjeGM4WF8pq+JHwH5ejsr2eNroGp+enuX2BowrGzOTuK5YKd37JwQRC7ByLykJpd51x2C9g5eH6Q==
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=o+4GXzKxaY7FcvQDn4UJG5CmBdGP9bNUkDoT5dWPxZ4=;
 b=XpuF/q62a08vYl3bQhhRdb7MN53IrkKjBGcc2Um+6JbofGdDGN4jMVoClpD2dyo/PxkWo02R7QWUoMxqvCHaTb/vxt00LgnoYZYPTi49vqeEu1yHez+EYjHgEQMD3nfAUnMguf4TN1tqW1lkSI+dey6JEmM6YMbHqoBiPZfPMMY1+BPBTlTc1Db03iVBY9X/QyQvDwwD4NwI9ovMYkG4/IGCoykyi8k0voMFTqgMHEMWVm0/EHJNTHCjFxppDGQEbrQYuIv1KHA59VRw0sh54elXKnwMdx1Y0HPFNO+tWOVOHMgYa56iNWTo1YhGjRXyUahn3htoXoeyNKFHdfGG+g==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=o+4GXzKxaY7FcvQDn4UJG5CmBdGP9bNUkDoT5dWPxZ4=;
 b=Mji9Iy66hgE4Nd6loRkRgX7h+zTAy0l+W9S3Bi71aDorjkF+C1nY2yeznUptQZJdobSDQrFijXH0Hp6eu2PypOjFZrOrsGcZK6oln5UDIKvKth8fYyPle9QwVyivUq/hs/XgwVKmaucN9dOXCiGu2MNiG4RQpK4R19lgVhfpeSRIzLzQTXr9hag2BWAdG1QGxlqsJNTsgXiAnSu1aqzTmEf/blZvBrH+HwQNFUXeU+6deW5yNc+weYCtQujBReiSrBPpjP87gr3Bnec1Zf82aRUXe6Sm1ZfLYxBWVyxy9DO5i51eeEik68ycLT+Svdb79BxbKzNCtrucP1lAE063JQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>, Anthony PERARD
	<anthony.perard@vates.tech>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH v8 0/6] Implement CPU hotplug on Arm
Thread-Topic: [PATCH v8 0/6] Implement CPU hotplug on Arm
Thread-Index: AQHc5GGluek78z52uke1rQL/XPKHHQ==
Date: Fri, 15 May 2026 11:54:55 +0000
Message-ID: <cover.1778845596.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PA4PR03MB6926:EE_
x-ms-office365-filtering-correlation-id: 70baa64c-cfd1-4f20-56ea-08deb278c804
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|366016|376014|18002099003|56012099003|38070700021|11063799003;
x-microsoft-antispam-message-info:
 3Q3LFgrkfSxJExhsfL4MZIuChq6zL623jHfN4lBlJJsxHEie64zX5egVrO+D4Ya8EbkOMwBd40Zmlm5xtrjW6HMFneDnML/bhbuDt+0tVaqX4sV5jw3vkzRnTJTh7JyJLYBX4QJZwIIZdE0L8FdgRjRbYxmSIYKUIpO3pTeKkfvpsANxr3s1YIG5Z7nBYOCDsE/08a8QqAXwWZAeIj8QlIeP4XL32H1yfgdi6fbrqN1Zcco82xs85dUUo/MUMEbzUpwkgK6xvv6SkRLd2+48p8afN/4XLWku3S2RUUeSL+FtXo5YtOzKXkS6jh4CbhsXYLhekKIPRU68D8jRhI0mmOyjSD3EKrbyijZ1UkhGJqQdE6XhLN1yN6ZQbps8TE1Yn5xEy9x1jsyXsSLbvltnwXeIgo4pPFPVcu7wRUlNRtwPTp+NNrJ2K9sN4DvAK2bZu3XsLMV31bNfTEIvWGNEMaO9Dt9nypQKwxOr/rQ+vBdJzNcEGSH0k9OmrVeQ1Ffdem2fZeeX7lFrS6dZWuRCKFD9Lm6aW68D9f6fY1WHmF1E9cfEkFk18LwVaIcV4F4hErOPwnxXLkU9TFzytQWms6uXQq7Fhbz5igYoHnxygnLRSQgn5NiXJCKYPOYj/1b2Le9uOVyOXYaEStkwAMto8rY/Da3uEed4P5nxHY1xYeqvfy2Ix1RwN0fSTyGTm+YUerqYeZOw6eBUYub5LTPJKcVnCwIbaVo+2fJnmS1CrDwNrK+Uu56oaUq1QIA176/0
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(366016)(376014)(18002099003)(56012099003)(38070700021)(11063799003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?DPWj357pjKaHG/qzAN1Jq5nNuyIercKOAPgjyqxOhufxhesijyY9Sieu6e?=
 =?iso-8859-1?Q?v2ubqPNXwPD2vd42lAe5f1UdrYLMlqzuveGwB+Fcw20OV6jSTj6qTQBfEv?=
 =?iso-8859-1?Q?Rn4Z2qhPghiqdNY0/Q8CsWimqZhG+Yhx0XwyfuZj23XWBNnHS1/T+ROTYL?=
 =?iso-8859-1?Q?4atVyVxpA3Md564spwaUG/jpLOHIrodhAGf2fJx8dmadAkP6cF1ioZp7nz?=
 =?iso-8859-1?Q?9lmFIfJ8DdleeoMCv5ioHuTJbqTfBeO0n5BtsGKJf4zic1CkeOg7U81skD?=
 =?iso-8859-1?Q?hxi7AcQ60bwQB31dIWAFeXIIF0R6+6ngPC7zzMi9EvhJugTUp8+Ehz5shw?=
 =?iso-8859-1?Q?ACFmtCFddEGN0/bo/XfqxMTKGKjnopFINzCvZlXZa1eEysKgAl0XzM4XNM?=
 =?iso-8859-1?Q?sHLG3UEEQYbHNCnRe/IeRNYeG9VsHzc0IL51DKTTEmz44HJTLZ1994CctG?=
 =?iso-8859-1?Q?CL80IxW2TG3as0SGynrLfVHhxfqFdvQIG0Uq+gFdTao+FsQr6nXck99hrL?=
 =?iso-8859-1?Q?7tzbwJ84pk1U4fDo40CXjxt9/fgvrHHOQuYj29XVGkCj5D4bEkdsOH3ecF?=
 =?iso-8859-1?Q?YJBx0zfcJUOdW9GKM6AxWjrZDou4Izyt+9z6YAVRvRs/MQM96n/A7xGF8l?=
 =?iso-8859-1?Q?S7wdK4/WIABYH8tj7hMbmlFyqSfdaScoRxiHT6E2k4EPsQvd2y46I5iaqE?=
 =?iso-8859-1?Q?rKjIGyjzXEZbPBmx6Ndiyqyv/EzQlWsJK0cMIaWQI+zrr1oEe4VxASWjOm?=
 =?iso-8859-1?Q?Joc7NOAzGs2XyS8L+XKgs7j2MeXpDHeTLVDH9CT3dbtzV0HPp8b+gk1eRv?=
 =?iso-8859-1?Q?bKjlkUzWMq6TY7FxvZZNQoe+8ffxqgtcEt/tRu0y1EDDbEbbHPcHw43XYW?=
 =?iso-8859-1?Q?Sv5XZX1nrIiPbVuQJ9hSA/ZiQdFAx5VwYdO/nPZxOHnoF0ylILyAF2JOvm?=
 =?iso-8859-1?Q?stz+XBnXeCMeHen8N1lmM+qnUn1w6Vv6yGcISEhJ+tvWw0H5aKa5usafW8?=
 =?iso-8859-1?Q?bM0zRHa5GNk9Rv1/l/T+XN19S9pPQe2kxwCZRVQG9+tYBiNtyDHlv6Mr00?=
 =?iso-8859-1?Q?iISg8hwW9zNprfv2WcTyTtqx1ZoRuHV3aoH8ZN/iQNscbT079GWhkjtBlI?=
 =?iso-8859-1?Q?6mYOHoyL03YHAFr8cwdu3bUElgg6y+/1LkEwdOJCAfaLWcIVzX8nZJiKb8?=
 =?iso-8859-1?Q?JJAZhaaH6m7L0x5Ckx2qmPiS2fiWWUZ52QvB0o3azATIr13aXwz307B7Im?=
 =?iso-8859-1?Q?DrxAqTf9oKsyq8LSL6MzCfyfvRZShNhEuVy2MuLhUHa8NDJZzkwRksjow9?=
 =?iso-8859-1?Q?aQSt5E0hNkJr3zF8Cx3Qw8BmLFR3TvOvnWGqm9PN1n1V+0uDXBMeHyikHn?=
 =?iso-8859-1?Q?Ca0aujBb87WWevazx7ZngWgo0iS8If8r3SISvIVgg0Ijt/+vcmCfJrYwDp?=
 =?iso-8859-1?Q?ZOHGS2D2MX+5WhiEVAWioE442IfyfdxrTWsNSBW/uV5qxGVud+t4Faim0y?=
 =?iso-8859-1?Q?aX/eJ52j6uR22TouxTiDsVjycoIPtqNZI9VIeAOsKnl/ixwOSHk+XicV1U?=
 =?iso-8859-1?Q?wXOqmZ5Vla/gqQdNKSmx37ndduHzPpqTLKbHYmIzwKKKUFNgTg2pG08jWC?=
 =?iso-8859-1?Q?nGFhxu4OhraTY/SPdZX7qapgptDCS8gc6tcQqB0PDWegX2H8KzUugMjaT+?=
 =?iso-8859-1?Q?maFajH8qHXxPBY/bnBNLe7I+svmRv6FkviOkMh7/S4Ob+qnPV9bcw811e/?=
 =?iso-8859-1?Q?bJYUOo68H5PV1UOBfeQvDeLP4gxc2JjAd6OK1QZS5435fZoIwLb/Xqth+3?=
 =?iso-8859-1?Q?fkfIyPStNuhSxNXi1i3jF3nExxTpZaY=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 70baa64c-cfd1-4f20-56ea-08deb278c804
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2026 11:54:55.4295
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: RbomSVczeP+7bPb4H/dr0K+3jXAsJ4nDeH3xXaVOSzBjz/KHsP0sZH8Ane6LAWwfYP9Kl+kQoFf3GjaCMnverQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6926
X-purgate-ID: tlsNG-4011c0/1778846097-725748B7-3F2BA681/0/0
X-purgate-type: clean
X-purgate-size: 2385

This series implements support for CPU hotplug/unplug on Arm. To achieve th=
is,
several things need to be done:

1. XEN_SYSCTL_CPU_HOTPLUG_* calls implemented on Arm64.
2. Enabled building of xen-hptool.
3. Migration of irqs from dying CPUs implemented.

Tested on QEMU and R-Car Gen5 HW.

v7->v8:
* see individual patches

v6->v7:
* new patch "Kconfig: Make cpu hotplug configurable

v5->v6:
* see individual patches

v4->v5:
* drop merged patches
* combine "smp: Move cpu_up/down helpers to common code" with=20
  "arm/sysctl: Implement cpu hotplug ops"
* see individual patches

v3->v4:
* add irq migration patches
* see individual patches

v2->v3:
* add docs

v1->v2:
* see individual patches

Mykyta Poturai (6):
  arm/irq: Keep track of irq affinities
  arm/irq: Migrate IRQs during CPU up/down operations
  Kconfig: Make cpu hotplug configurable
  arm/sysctl: Implement cpu hotplug ops
  tools: Allow building xen-hptool without CONFIG_MIGRATE
  docs: Document CPU hotplug

 docs/misc/cpu-hotplug.txt         |  97 ++++++++++
 tools/misc/Makefile               |   8 +-
 tools/misc/xen-hptool-x86.c       | 277 ++++++++++++++++++++++++++++
 tools/misc/xen-hptool.c           | 293 ++----------------------------
 tools/misc/xen-hptool.h           |  14 ++
 xen/arch/arm/gic-vgic.c           |   2 +
 xen/arch/arm/include/asm/irq.h    |   6 +
 xen/arch/arm/irq.c                |  69 ++++++-
 xen/arch/arm/smp.c                |   9 +
 xen/arch/arm/smpboot.c            |   7 +
 xen/arch/arm/vgic.c               |  14 +-
 xen/arch/arm/vgic/vgic-mmio-v2.c  |  11 +-
 xen/arch/arm/vgic/vgic.c          |  21 ++-
 xen/arch/ppc/stubs.c              |   4 +
 xen/arch/riscv/stubs.c            |   5 +
 xen/arch/x86/include/asm/smp.h    |   3 -
 xen/arch/x86/platform_hypercall.c |  12 ++
 xen/arch/x86/smp.c                |  35 +---
 xen/arch/x86/sysctl.c             |  25 ++-
 xen/common/Kconfig                |   8 +
 xen/common/smp.c                  |  35 ++++
 xen/common/sysctl.c               |  42 +++++
 xen/include/xen/smp.h             |   4 +
 xen/xsm/flask/hooks.c             |   2 -
 24 files changed, 660 insertions(+), 343 deletions(-)
 create mode 100644 docs/misc/cpu-hotplug.txt
 create mode 100644 tools/misc/xen-hptool-x86.c
 create mode 100644 tools/misc/xen-hptool.h

--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Fri May 15 11:55:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 11:55:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309889.1580899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr88-0004vl-G2; Fri, 15 May 2026 11:55:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309889.1580899; Fri, 15 May 2026 11:55:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr88-0004v1-Bb; Fri, 15 May 2026 11:55:00 +0000
Received: by outflank-mailman (input) for mailman id 1309889;
 Fri, 15 May 2026 11:54:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1wNr87-0004s4-1F
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 11:54:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNr86-00Abbl-DX
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 13:54:58 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a070990-e002-0a2a0a5209dd-0a2a450aa776-8
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:54:58 +0200
Received: from [52.101.70.125]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a070991-56b3-0a2a450a0019-3465467d29db-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:54:58 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PA4PR03MB6926.eurprd03.prod.outlook.com
 (2603:10a6:102:e4::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Fri, 15 May
 2026 11:54:55 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 11:54:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Snuy+/Ydv9IS9NNHSrazbS8S2KXSVad1Fk9NbnK3sdxyXkHv/L2dtPvSuARonY+w6zVahRz7EBMIZPpbfGl/7IdZEiQe0y+zY19ywjbq26CXELqnYGUHhNqOd/nLaou+Ib8C9AQKvToT3d6GP4EFr5Ynm/MoQ+QniHBWQqtk5anb+0jNdZZSupCDseX79YXNN3vMvgg8sXbUHIrtnbNAcmYkEKkSKE9NLWuQl5rsQ7SooS7Ssh1x64fP3P6CmeoOvwlTgGTejgENLsqNjei56gIE/IXm0lJupAxsuoX53AptLIEqyTfDtEcqvvTArFdgx286w4wdgdRu3skziVPSYw==
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=MhGSJeVHTRH7CAcL+cB5KNt1t+/dEP9CdloVh0N4g78=;
 b=jkLpAfmIVHca36S6icMq30wDyZYtmLEPyif4U9s2b6prr80A9kUGmc+w01et/JJa3RL/iqSqeQvbwYtsU2u9qGEehd40N8u64mbd0Q3L0PXfr/lRyE0KPcnuD6Ko8cX2MTdTw4Kda9l1x/oO+gwAWTVdIEfjCgB8/hJHXjoLRO0A2qYxvzBzau3aCii102J4XZD2E3gWAx6YF26T7+aSMr8M/7AaYVbvwDY4Dowammlip0MKNUhIslW+kyVLBz3SSlS8DL0975q6mRnjyPFI3HvQDL2cwkwMT4DWl84ay4VyRkNhIK7ANLiAeG593916bGC0mFYd72+NqhX0UoBdUQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MhGSJeVHTRH7CAcL+cB5KNt1t+/dEP9CdloVh0N4g78=;
 b=JYXou3GXG4cKitsmoVYyC87XDBzN5GnnFx3h3QchgTFzVG8SahLk3AAJ5NoajWA/9VZtVykUL3ch2ukF7BQ81OZhmqWu1KXCcVI4Qp5WnVe2+dE4gBHJ0Xn6JX6Cz4alz9q16cgOAqGg7GIWN3jw0NFxQr9HPJ8lhYJNXybcDNYWpMwkYep1w7Y2bTgqIfw8+v6cHUheLjRUegv/VT8MamQ5zns5hs7O4c4XEr2PlDB/e19ktecYs/6OvGNIkJ7qAQm/6kXXz/GWvhhfpfkvsYO1/nlRiKh2lm3h7A1nfqPIFv1BU+WzhKz+w9kw/yqTGhVVH8z9PqYbJOvK/jJmig==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v8 1/6] arm/irq: Keep track of irq affinities
Thread-Topic: [PATCH v8 1/6] arm/irq: Keep track of irq affinities
Thread-Index: AQHc5GGlhAXHchguZ0CmpA+A7r8r9w==
Date: Fri, 15 May 2026 11:54:55 +0000
Message-ID:
 <72c0423562c81fe1bc90aaaf1f79599a94e771ca.1778845596.git.mykyta_poturai@epam.com>
References: <cover.1778845596.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1778845596.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PA4PR03MB6926:EE_
x-ms-office365-filtering-correlation-id: 4ee603f3-306f-4d06-2e97-08deb278c83e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|22082099003|18002099003|56012099003|38070700021|11063799003;
x-microsoft-antispam-message-info:
 pLwNM8Er6ig/o1Q7nkTpSfBLQCjxJLFBpPY3Rwo9rONhG1VD+wWlfaLgY3w+yWkrpCj8FrpkULZkgDdmLw7BejBL7mvdzFcwKzt+b5G8kU9W57jP8f4HugBgsmI8xpuPzChNHAILJa3QikG4XlEO7aAvFM8JnlBYeWHNc451+iqvZXQeYPzwNdBCX45pUnTacn+/i5f/tYYdigXePRcxglZASwHAmIdBQrgVgWyG1IfINgUjnp8dXvVb4VyPLvNjBnNRWcp91l0Jq5Y8SjOQYOqw91y/XTcus9OKRMocqeL9C1iy/9ZquDpVcIXx7+5xKP2djxYvObC+m5M9XpiX6XTGKSKFYXRxfbbZ0OjlgOCrU3iYIDKDblz+2v0lh9wsOXBfcSbQdivcKXdO9bHwKqAfC3S8hV8OsGhlF3A21UwG2Y24AW+kk8Fe8PzArc0/nszB3kfXffDG2hUC9jS2qE4+SUlFB4azeOZUiScrjIlv99tPCcL8NMPxkCVrDYSBFYCDrgQQTMuytMJc+U/UHO9yeGlA3bd+HkwWd9J8kwuo8VMYtcuSLgSxhMgc1ONLBbr0cZTD0+k9Tsl+BIHuyzBqe21Xwb+39TwJbaW0Zrv7IC/bcLPsYpdashQS+1BG7l9OHSWIGynCOSpjjmHrJsX9TMYBdoBXxj0WxnyGWcJm2oVLnCriotVPtXQvOfqup4olYLGDIlwdilpf6n8ELWfzttZfF8Z8fggV+Kobo17KE8YR3SCNt0mZ+2cA2k24
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(18002099003)(56012099003)(38070700021)(11063799003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?w7tFQc4EaOeUK15ooJaNHTskvIt+ccLep8Tuyco6gYx/dahIFTsrWFdLYa?=
 =?iso-8859-1?Q?oMn6yoVdm9+b2ieHqm/VQxhZkYfInq+tY0C4FRpaNYHDN/H8OfuxEw7cwn?=
 =?iso-8859-1?Q?o9bFRyR6eEzHjDO/f5jhlnjs2PKxZUWFVVqHFX9uS7MMz83+mrD5Zsx+AH?=
 =?iso-8859-1?Q?s/5pqIUZPsZ6DXO4oDHDN/2xfecAIu7bI28i3FVBaw0diBzhkG7/sdzgw2?=
 =?iso-8859-1?Q?iIyn1sIPlQ+AvxOOddMRQHOoxMAJoflWCBuJA46d0mJyTfK+T5/8FbJoZz?=
 =?iso-8859-1?Q?TB5NeRVoQWNwb86OiF/lS9KuUol0kAp1quIJ6Rvl/tB9MK6W0h1ECx2Wfl?=
 =?iso-8859-1?Q?pnrGtHMyx7yj6bfzb/c+PDCyXxIede1xeIsJB+3gavYgWRk+IflhnQovMZ?=
 =?iso-8859-1?Q?H8JzR45BaKq3nTx9UkaER8w798AuvAEK3BlaJ7AIZSsVa6yEKZ26K30Ij4?=
 =?iso-8859-1?Q?jQqT9oAUzcqy19CXAk2xBu2CNFHOC/x4A7kMn39/ZAZdTtQ6UeTTWUByYI?=
 =?iso-8859-1?Q?heOgP2jHfvHhl01wZYKMFY3wJRELEU5Yg+g7/Fkxqqxe8RiR0XwDhflc29?=
 =?iso-8859-1?Q?IiSACpoN23DenxAE/B0RCV4l5lnaC4qrfFq8QMTs/dv/msbrUj5O+PizyH?=
 =?iso-8859-1?Q?8D0gmykMpHK5Z918JXA6u4vDfJV0qqoLltMvYVbilXyYncJvBRuK3LSE5h?=
 =?iso-8859-1?Q?Mtr0LAh0j2iNLh2L44aWB1h0p3LodCsoerCyJBT8P+IxtnQHyPQL38dPdj?=
 =?iso-8859-1?Q?BvbkQXDT3YXf97ZwMFyiN4nyKsS23UGaTYPRpJhfXh2PPr8KXW8Nrqbbf9?=
 =?iso-8859-1?Q?5BSRN/oWfFi24wEdvwbgGIo5HzoB0kDznrABXOZQAWnq1WzkvWcTuOXGsW?=
 =?iso-8859-1?Q?vAk/5UwTZhpm0zgCMMBEeKwzOpay52VNJOKNwwf6AySeD/UJU/44Bhl9RY?=
 =?iso-8859-1?Q?lc/hQO1WQR0Ax8krReJe7YCtA+h5iyUNEHYabVY/zf7WiMMTxdAqr3akKx?=
 =?iso-8859-1?Q?Da73FZw5R3+qftgQ+hhnOyca2kqgA8zUEfgWfmQyXeC/u/xuHgWNQyfMPZ?=
 =?iso-8859-1?Q?ZM/BpBCIxv8ZtXbPWu6kWRHzRsaGY34EcRXjxkTRnyMAkoexDtNhfIUw9Z?=
 =?iso-8859-1?Q?iV/nhfTb4fTJu4M4TZKgj+iJHHIMGXJEg+D3/IRthqFYVLPQ63CYWgWQsr?=
 =?iso-8859-1?Q?nTHlSw372Vjohu8n6ub8dDiJGmL4vR3TNbDvDfA5+A9uRxSj1TYCRQIF3y?=
 =?iso-8859-1?Q?vJ1hjouaJVu9bKxicYRxwMAOt8XpwoIp6w3n9dYg9DkaZ92eYjncWtBIZx?=
 =?iso-8859-1?Q?CqgkfkCV5Hv3Te4Jt/mFAz8PHbUWx11S8PdPjvbl2pve8l0rC4JjURTkMu?=
 =?iso-8859-1?Q?CRMBaA0tKjfSB65NY2Q+HUy0/+6ujA7Nz5iijbHj7Co1Ssf3t6w3Xl/+9R?=
 =?iso-8859-1?Q?+wm+8Esm+vxgcqlIJnTlYxJqVEY4jv8G/U8xTGCUEaNWDr8vggZkIhrCDC?=
 =?iso-8859-1?Q?gL85IysEFIdbF+2eISJ+n3s3eGyMvSzChADj4Hs4uKy0e9JoGth9+W1WIE?=
 =?iso-8859-1?Q?0Seo5sKfQhQqxbsYiHTl7w5YfhwZbmr0/+nsBI8ZrmsAQrAhmxDNu/Et1W?=
 =?iso-8859-1?Q?E+e1v1crEs73uKd/tKbYWkViYtfJFCQEWnYWiRUJywlzyT7xrHV+LvolYv?=
 =?iso-8859-1?Q?GyBpyY0FsyaDz6Q/CZ8qJ5JFi7fnmuM6fSE+LEGF74tEp4I2EBOQ0fefwZ?=
 =?iso-8859-1?Q?v5512uT5XChLhtH/bdYRl8KFx4vbHPRU+WOoKylGOcXNjtLaImgdfRMYfZ?=
 =?iso-8859-1?Q?YxAAxSLhl2qk3MTDRg/vBV274zQwvNA=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4ee603f3-306f-4d06-2e97-08deb278c83e
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2026 11:54:55.8111
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 7VH8yQHnDiXEazKaq/MnALjWxTFEsshPBt/VlZWgTZQpJr+0+vlYBr3aeQRg2rX7guF/ew7YpfSjAJwtNX0riA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6926
X-purgate-ID: tlsNG-4011c0/1778846098-7236B8B7-D21091B9/0/0
X-purgate-type: clean
X-purgate-size: 7495

Currently on Arm the desc->affinity mask of an irq is never updated,
which makes it hard to know the actual affinity of an interrupt. Fix
this by updating the field in irq_set_affinity. Changing desc->affinity
requires desc->lock to be held, so add an assertion to ensure that
callers of irq_set_affinity are doing so correctly.

With desc->lock now being required for irq_set_affinity, add locking
around calls to it where it was missing.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

---
v6->v7:
* update commit message
* fix possible locking on null desc
* collect RBs

v5->v6:
* add missing locking around irq_set_affinity calls

v4->v5:
* add locking

v3->v4:
* patch introduced
---
 xen/arch/arm/gic-vgic.c          |  2 ++
 xen/arch/arm/irq.c               |  9 +++++++--
 xen/arch/arm/vgic.c              | 14 ++++++++++++--
 xen/arch/arm/vgic/vgic-mmio-v2.c | 11 +++++------
 xen/arch/arm/vgic/vgic.c         | 21 +++++++++++++--------
 5 files changed, 39 insertions(+), 18 deletions(-)

diff --git a/xen/arch/arm/gic-vgic.c b/xen/arch/arm/gic-vgic.c
index fae80e6cd2..28ad4903b4 100644
--- a/xen/arch/arm/gic-vgic.c
+++ b/xen/arch/arm/gic-vgic.c
@@ -232,7 +232,9 @@ static void gic_update_one_lr(struct vcpu *v, int i)
             if ( test_bit(GIC_IRQ_GUEST_MIGRATING, &p->status) )
             {
                 struct vcpu *v_target =3D vgic_get_target_vcpu(v, irq);
+                spin_lock(&p->desc->lock);
                 irq_set_affinity(p->desc, cpumask_of(v_target->processor))=
;
+                spin_unlock(&p->desc->lock);
                 clear_bit(GIC_IRQ_GUEST_MIGRATING, &p->status);
             }
         }
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 73e58a5108..7204bc2b68 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -216,10 +216,15 @@ static inline struct domain *irq_get_domain(struct ir=
q_desc *desc)
     return irq_get_guest_info(desc)->d;
 }
=20
+/* Must be called with desc->lock held */
 void irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
 {
-    if ( desc !=3D NULL )
-        desc->handler->set_affinity(desc, mask);
+    if ( desc =3D=3D NULL )
+        return;
+
+    ASSERT(spin_is_locked(&desc->lock));
+    cpumask_copy(desc->affinity, mask);
+    desc->handler->set_affinity(desc, mask);
 }
=20
 int request_irq(unsigned int irq, unsigned int irqflags,
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 6647071ad4..c59f6873db 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -445,7 +445,9 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *ne=
w, unsigned int irq)
=20
     if ( list_empty(&p->inflight) )
     {
+        spin_lock(&p->desc->lock);
         irq_set_affinity(p->desc, cpumask_of(new->processor));
+        spin_unlock(&p->desc->lock);
         spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
         return true;
     }
@@ -453,7 +455,9 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *ne=
w, unsigned int irq)
     if ( !list_empty(&p->lr_queue) )
     {
         vgic_remove_irq_from_queues(old, p);
+        spin_lock(&p->desc->lock);
         irq_set_affinity(p->desc, cpumask_of(new->processor));
+        spin_unlock(&p->desc->lock);
         spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
         vgic_inject_irq(new->domain, new, irq, true);
         return true;
@@ -473,6 +477,7 @@ void arch_move_irqs(struct vcpu *v)
     struct domain *d =3D v->domain;
     struct pending_irq *p;
     struct vcpu *v_target;
+    unsigned long flags;
     int i;
=20
     /*
@@ -494,7 +499,13 @@ void arch_move_irqs(struct vcpu *v)
         p =3D irq_to_pending(v_target, virq);
=20
         if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->s=
tatus) )
+        {
+            if ( !p->desc )
+                continue;
+            spin_lock_irqsave(&p->desc->lock, flags);
             irq_set_affinity(p->desc, cpu_mask);
+            spin_unlock_irqrestore(&p->desc->lock, flags);
+        }
     }
 }
=20
@@ -574,8 +585,8 @@ void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsig=
ned int n)
         spin_unlock_irqrestore(&v_target->arch.vgic.lock, flags);
         if ( p->desc !=3D NULL )
         {
-            irq_set_affinity(p->desc, cpumask_of(v_target->processor));
             spin_lock_irqsave(&p->desc->lock, flags);
+            irq_set_affinity(p->desc, cpumask_of(v_target->processor));
             /*
              * The irq cannot be a PPI, we only support delivery of SPIs
              * to guests.
@@ -944,4 +955,3 @@ void vgic_check_inflight_irqs_pending(struct vcpu *v, u=
nsigned int rank, uint32_
  * indent-tabs-mode: nil
  * End:
  */
-
diff --git a/xen/arch/arm/vgic/vgic-mmio-v2.c b/xen/arch/arm/vgic/vgic-mmio=
-v2.c
index b7c2d7ce99..fc04741ca1 100644
--- a/xen/arch/arm/vgic/vgic-mmio-v2.c
+++ b/xen/arch/arm/vgic/vgic-mmio-v2.c
@@ -159,24 +159,23 @@ static void vgic_mmio_write_target(struct vcpu *vcpu,
     for ( i =3D 0; i < len; i++ )
     {
         struct vgic_irq *irq =3D vgic_get_irq(vcpu->domain, NULL, intid + =
i);
+        struct irq_desc *desc =3D irq_to_desc(irq->hwintid);
=20
-        spin_lock_irqsave(&irq->irq_lock, flags);
+        spin_lock_irqsave(&desc->lock, flags);
+        spin_lock(&irq->irq_lock);
=20
         irq->targets =3D (val >> (i * 8)) & cpu_mask;
         if ( irq->targets )
         {
             irq->target_vcpu =3D vcpu->domain->vcpu[ffs(irq->targets) - 1]=
;
             if ( irq->hw )
-            {
-                struct irq_desc *desc =3D irq_to_desc(irq->hwintid);
-
                 irq_set_affinity(desc, cpumask_of(irq->target_vcpu->proces=
sor));
-            }
         }
         else
             irq->target_vcpu =3D NULL;
=20
-        spin_unlock_irqrestore(&irq->irq_lock, flags);
+        spin_unlock(&irq->irq_lock);
+        spin_unlock_irqrestore(&desc->lock, flags);
         vgic_put_irq(vcpu->domain, irq);
     }
 }
diff --git a/xen/arch/arm/vgic/vgic.c b/xen/arch/arm/vgic/vgic.c
index b2c0e1873a..1c44236c4f 100644
--- a/xen/arch/arm/vgic/vgic.c
+++ b/xen/arch/arm/vgic/vgic.c
@@ -812,22 +812,27 @@ void arch_move_irqs(struct vcpu *v)
     {
         struct vgic_irq *irq =3D vgic_get_irq(d, NULL, i + VGIC_NR_PRIVATE=
_IRQS);
         unsigned long flags;
+        irq_desc_t *desc;
=20
         if ( !irq )
             continue;
=20
-        spin_lock_irqsave(&irq->irq_lock, flags);
-
-        /* Only hardware mapped vIRQs that are targeting this vCPU. */
-        if ( irq->hw && irq->target_vcpu =3D=3D v)
+        if ( !irq->hw )
         {
-            irq_desc_t *desc =3D irq_to_desc(irq->hwintid);
+            vgic_put_irq(d, irq);
+            continue;
+        }
=20
+        desc =3D irq_to_desc(irq->hwintid);
+        spin_lock_irqsave(&desc->lock, flags);
+        spin_lock(&irq->irq_lock);
+
+        /* Only hardware mapped vIRQs that are targeting this vCPU. */
+        if ( irq->target_vcpu =3D=3D v )
             irq_set_affinity(desc, cpumask_of(v->processor));
-        }
=20
-        spin_unlock_irqrestore(&irq->irq_lock, flags);
-        vgic_put_irq(d, irq);
+        spin_unlock(&irq->irq_lock);
+        spin_unlock_irqrestore(&desc->lock, flags);
     }
 }
=20
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Fri May 15 11:55:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 11:55:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309890.1580905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr88-0004ym-RA; Fri, 15 May 2026 11:55:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309890.1580905; Fri, 15 May 2026 11:55:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr88-0004y3-JM; Fri, 15 May 2026 11:55:00 +0000
Received: by outflank-mailman (input) for mailman id 1309890;
 Fri, 15 May 2026 11:54:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1wNr87-0004sA-8z
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 11:54:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNr86-00Abbl-LH
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 13:54:58 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a070990-e002-0a2a0a5209dd-0a2a450aa776-10
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:54:58 +0200
Received: from [52.101.70.125]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a070991-56b3-0a2a450a0019-3465467d29db-5
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:54:58 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PA4PR03MB6926.eurprd03.prod.outlook.com
 (2603:10a6:102:e4::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Fri, 15 May
 2026 11:54:56 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 11:54:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=v0sdlf2k7EEgPgGHPWIKysCLwGGj1bCZ01w2610jFEQ5rpH3cw71aIzedrv1v2997FDEGS2I0fLeYgLWd+/0QdD4p9oT2Ex8qXzm0YypPTL3HVBhpj/sYLgv7am9i2KAW7SzA16YqultnG16i1vVwJksyfYmu0LhV6rucvT68sNIqPt/HSnORb+iw1oTGI3FXBOqCCo9t5SIWMWnXDoQCs5z9sYjqzKw8RcVg1tvh+P2tyP3XeY/S7kFrJEFhVPq9NxOfromcrSxr6bZ6QWrglHK2/gePgNBzfj8YMLHFG8zIvKv2kJkv4FR8pWSTY1Yp9F6v3HlJWpVFvdP7LZPXQ==
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=oG5XKTSkzbWG/PAgGQ2ErPf7DrbFZ0GcEQryjbdyVwI=;
 b=N3d6PlePDNlwp+VP1EPjfLLpCL5ydoKbkf1wr0CdOH9RORzu1iq0crF/dcWknnlkrVkyf9MGxEwIE1iB/7kDDXyVjUETp6+ARKhc1i5D5+T7MUsEe715R9BZIF8E2JXRrcXegilgrwmnbETRQV+JoiszjZD3RmqdOhJPeZRctK+14qmVDcQYIT9dbARzM71y+TsfP35R+LQozRK+IbfJrkTx7YkhfoK86cRzqylCCQn8wLmn+odl8fcYzvI32EiIimnVpl6EuGg1SGTeeqDykAhk3uvr1NDEIoV3o+gBsfCqR9gvek46FRmkle6gr69kvTESoSGAw+WcmCZrJTHLpA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=oG5XKTSkzbWG/PAgGQ2ErPf7DrbFZ0GcEQryjbdyVwI=;
 b=ogQHrI0t0C+4Pzkr508gXqPpaZVHFssvZ27UiQtMREmwKYDd1nYzmwobL96Vk/V0ThBUF/ZECHrHrTb/8gG7G0leWYxX2tbYfaV92Su1PU8c4lO1zNl7dNz1Dn55IMESzLJwT9hnKjdNBIdUKlecl+4fI3CV7kz5aOf28smt9GlfIUxoDX5eB8aFqaeeR6Jv7C+HvwGwI58AqgbwVLcw+urrFC2qsA55wDQZSuBenIMtcQIEexaulMSnG3l0z2qsVm11/RHuxpzvnYhXs3CmdWgobAHpZ5szq9E/UmvYQlDx/2iZiZW4rKJo932lwRGZw8ELowlq8dkJGDbXSRV6ig==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v8 2/6] arm/irq: Migrate IRQs during CPU up/down operations
Thread-Topic: [PATCH v8 2/6] arm/irq: Migrate IRQs during CPU up/down
 operations
Thread-Index: AQHc5GGlK0DQjFAl6k27RpjLW7wtUQ==
Date: Fri, 15 May 2026 11:54:56 +0000
Message-ID:
 <664ea82ceb9890d421b201c8963dd164aa1d81c7.1778845596.git.mykyta_poturai@epam.com>
References: <cover.1778845596.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1778845596.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PA4PR03MB6926:EE_
x-ms-office365-filtering-correlation-id: 5c592cc3-aa6c-4f8c-f0dc-08deb278c870
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|22082099003|18002099003|56012099003|38070700021|11063799003;
x-microsoft-antispam-message-info:
 OV0lZE0k/kHKQKvehW/X45iJ5nisY478EGCSP1ULw6ZKREaXaqxUvs14cwZXf+kcUrgEMHap3W8ar63j82QWX4gah9KIH8qX4DJaa7vD4nbBhQfBWIaNzZzgvmW7EkezcSNA2yqpf4Tq2j41hRy/tyncIluEAYiQiTJlLsi3cw2qJ15U5gUbpVMmGP1CUCwH5lOTiTFRbJ60wUVeZHahujVQpc/n2sqI0qYZbHcIj/ojMHKWMmDXZ+PDBoZpSxzf37KVXS47RHLnYuRDkxf3bEA16vqobFsl0hFmKpRR8DC1+ywqNw5eJCrI3gL0owE1ISk7Bww6MmmSNv9ymgHQJ6i5/0PJAeBEgB8u5BeMzLQ5Wk5YKaKukDARnTOk2SJOBwB+EmGmeQ6L97DbUqpoLYGd/zuPs8ZeBF+KUISMqVKIYvXxDNaNYkeTj+OcWKV++kPsgtHBtnDkMz6UIfj//CFvXWRGUdiBa6nge9PFqstN7+1JmHbNJHOn/Nv9A5l/nY8gATfU99DjxmY7d57KiD54DGodw66vfh7gSG7hjNYeqdFm/YfLqJBTaat1Tn/0z3PhhdHvfPxZ0oH7veK5KnrcQCLEsBb5tK+kE5KRa8D9hzYEUT2pHWCVdOW0glbGUzo3lv8Z/2YENbttxejNwQLRZz3NiEv5EeVvxc+QoEHZdHHGgRaRle9VAjIju3OYBwiiDYKzG3GAa/wgDiWbuw6D4nd2HlvRMVbE1QuiPBi5sz2/y0mbk7XP20aDvNkT
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(18002099003)(56012099003)(38070700021)(11063799003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?JeSCkT2C9dIz4UImk2gKklxma6puQIMis/D+zsnLHGYIE6NSCsm0eU1gQy?=
 =?iso-8859-1?Q?42z+t40QVyQSdCmrDDdudorb+8BidJz2RTr6X05epqCF5S+wTFtEo8ktEW?=
 =?iso-8859-1?Q?X4KTpdrD91q8vQhRRBa7JtdDPEuecXUZrnqE4ZDQLGV2ZUPSmpO6Z6q0Q2?=
 =?iso-8859-1?Q?RYp433dK2HZFhGlVc7hl1WiLwAIEzqR+zAlNmMDfaeRcFiwrZKIj3C5It5?=
 =?iso-8859-1?Q?GGj4hNxv3IKXGAiN05mO0U8IU4xCXZEIH1+yDRx3KnqhjBqVgcGnvphPr2?=
 =?iso-8859-1?Q?FqHYuWSa7lpQp7W6G9K6PG24GiNXd6VwJ4nkKDWB5m7u4//F6+879ghk77?=
 =?iso-8859-1?Q?A7aKHm3k0aCNtOrV+bpJ4xAdovPr9ZTV+OI4NbCrzp065XMPNv62O6u7Bq?=
 =?iso-8859-1?Q?8yzH3RIoVjDtzi8taDT0QhW0vvaMEs0IRLU/MReQwlmK1i0NV4coJaXsie?=
 =?iso-8859-1?Q?9QdR/ZSeAr7s7ya2giYs3aZvcCMGPJW3Y8JSouhh9EOyATDVU7CZLpZHb7?=
 =?iso-8859-1?Q?iEDJIyWX5ekQ5lhVYoPb0T+ZPC5Czj0S/WGbmtzrTuaWNpQiLcGgBk0Q5n?=
 =?iso-8859-1?Q?3vaBvSs5Jma4pA4520pS3s2gmqzkavC/7SQL/r5JJ2DLzAvKAI+kCyXUhm?=
 =?iso-8859-1?Q?3o4Nj08fNT1Nw6Pg7kAwHrTp9spdYnDoK/9ccJmuk3TdrgRrVr36Hv9qaH?=
 =?iso-8859-1?Q?qAjNq5IY4D/yWMbdxn3DZx7mi5fTZyzvXdktVt7BJPsDRf5JgZmDs0GcIy?=
 =?iso-8859-1?Q?2GdHsu2rKKATtJ8dMhgjCcRDdzMSeJTDlTAmxP6G4B+tpRgJCnVo9zT+Z/?=
 =?iso-8859-1?Q?GT+DqZ7jBes18P+f/oTFJ+8U7fa9Nl7s2XsgVbNf5tp5PkcyYH232kwOaB?=
 =?iso-8859-1?Q?hAhNQXfnQdpySFiyHt/5Xo2eGPXwexnhYLgdf2rSH6mUUXepYsUFYYj+vQ?=
 =?iso-8859-1?Q?4yqSxM95aEazgQPnJpfG1TDDTvGpeaTH115JiCeKFLXyjE+6DC5GGuNZ9b?=
 =?iso-8859-1?Q?lC5IfpsEaCBresHKbT2p+qbs5FEAjDJCjYyDdzMdevnYLf2kUlRWDbE917?=
 =?iso-8859-1?Q?wqSdcFlLGDknYL0UraFgB15irB+OwbHspfk0aw2OX0TB+83u+3hdG5s9Nz?=
 =?iso-8859-1?Q?WwllD4g8S/vqmgLFtPHcMaZrsoEtN1tFKL5361SM4XwmQ3plNQxgrzVmRc?=
 =?iso-8859-1?Q?2I7nKF9843mXI8D20AgiWx2SLp1+2vP8nVxWu3uwfTpZRI+C80rRReXqgG?=
 =?iso-8859-1?Q?6wuFjN6wZN2s6x+q/F3buGdvvZuFqAk9SHoSwGATDr/gxP5da3Oenm6hIK?=
 =?iso-8859-1?Q?IH0LzvnYTWl5rqv6dFa9XO3kl9+QGjK3nC/ctYWJOp+zwTQQIFxcnyuNsT?=
 =?iso-8859-1?Q?XS1+dYhMq8fhmTFVhjzr5TSWUPS8fULLVbN5WCBcGGqTKKDkTrTJ/cMyOG?=
 =?iso-8859-1?Q?HvHHRdYB9POcSIySD9ty7j0diiv4q7t4LCPMRi+SJ5eHW3qBw2vDfy4V3A?=
 =?iso-8859-1?Q?rZL3pDT7ADSbUWwmQKs0iVF/nnxFUUKQGQSnSU2weO3fpWnk/I8q34qEYA?=
 =?iso-8859-1?Q?7KCsKppNDxrfUeneQxbmooNng5DCebA5Qc6yQ+cXSjrKjsNyRPp5f07eL0?=
 =?iso-8859-1?Q?2s59h0a1H181zzjcafMpSSA6XJcQSoruhHMWD0ZvQwnXZiLELpKczNf57P?=
 =?iso-8859-1?Q?9YFFOx1evHPf+mOLP8SaImtpQRo6xi7X1MOqzOAvS8VtBc2I8Yasm26WIm?=
 =?iso-8859-1?Q?t5CX+V4AUvu4n9NwKlzNqb4C/urltG3iBJPItsuzDTsZlmNK7BR72gLVBI?=
 =?iso-8859-1?Q?ioC3rCOd+vYxVpZJcswxfjK2e5ymQNk=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5c592cc3-aa6c-4f8c-f0dc-08deb278c870
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2026 11:54:56.1661
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pSGkombaLSxW5NLWBxNQYfpLtYHi/eE5Tqem/zfcHp2Bw2EQQRq0hvnQxEhZuEG5tmjC/RNJ8rakvNONEIsbkg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6926
X-purgate-ID: tlsNG-4011c0/1778846098-7F1948B7-B4EECD98/0/0
X-purgate-type: clean
X-purgate-size: 4850

Move IRQs from dying CPU to the online ones when a CPU is getting
offlined. When onlining, rebalance all IRQs in a round-robin fashion.
Guest-bound IRQs are already handled by scheduler in the process of
moving vCPUs to active pCPUs, so we only need to handle IRQs used by Xen
itself.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v7->v8:
* check only existings ESPIs

v6->v7:
* replace ifdef with IS_ENABLED

v5->v6:
* don't do any balancing on boot
* only do balancing when cpu hotplug is enabled

v4->v5:
* handle CPU onlining as well
* more comments
* fix crash when ESPI is disabled
* don't assume CPU 0 is a boot CPU
* use insigned int for irq number
* remove assumption that all irqs a bound to CPU 0 by default from the
  commit message

v3->v4:
* patch introduced
---
 xen/arch/arm/include/asm/irq.h |  6 ++++
 xen/arch/arm/irq.c             | 60 ++++++++++++++++++++++++++++++++++
 xen/arch/arm/smpboot.c         |  7 ++++
 3 files changed, 73 insertions(+)

diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.=
h
index 09788dbfeb..3ed55e02c3 100644
--- a/xen/arch/arm/include/asm/irq.h
+++ b/xen/arch/arm/include/asm/irq.h
@@ -126,6 +126,12 @@ bool irq_type_set_by_domain(const struct domain *d);
 void irq_end_none(struct irq_desc *irq);
 #define irq_end_none irq_end_none
=20
+#ifdef CONFIG_CPU_HOTPLUG
+void rebalance_irqs(unsigned int from, bool up);
+#else
+static inline void rebalance_irqs(unsigned int from, bool up) {}
+#endif
+
 #endif /* _ASM_HW_IRQ_H */
 /*
  * Local variables:
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 7204bc2b68..44df7efd6b 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -158,6 +158,61 @@ static int init_local_irq_data(unsigned int cpu)
     return 0;
 }
=20
+#ifdef CONFIG_CPU_HOTPLUG
+static int cpu_next;
+
+static void balance_irq(int irq, unsigned int from, bool up)
+{
+    struct irq_desc *desc =3D irq_to_desc(irq);
+    unsigned long flags;
+
+    ASSERT(!cpumask_empty(&cpu_online_map));
+
+    spin_lock_irqsave(&desc->lock, flags);
+    if ( likely(!desc->action) )
+        goto out;
+
+    if ( likely(test_bit(_IRQ_GUEST, &desc->status) ||
+                test_bit(_IRQ_MOVE_PENDING, &desc->status)) )
+        goto out;
+
+    /*
+     * Setting affinity to a mask of multiple CPUs causes the GIC drivers =
to
+     * select one CPU from that mask. If the dying CPU was included in the=
 IRQ's
+     * affinity mask, we cannot determine exactly which CPU the interrupt =
is
+     * currently routed to, as GIC drivers lack a concrete get_affinity AP=
I. So
+     * to be safe we must reroute it to a new, definitely online, CPU. In =
the
+     * case of CPU going down, we move only the interrupt that could resid=
e on
+     * it. Otherwise, we rearrange all interrupts in a round-robin fashion=
.
+     */
+    if ( !up && !cpumask_test_cpu(from, desc->affinity) )
+        goto out;
+
+    cpu_next =3D cpumask_cycle(cpu_next, &cpu_online_map);
+    irq_set_affinity(desc, cpumask_of(cpu_next));
+
+out:
+    spin_unlock_irqrestore(&desc->lock, flags);
+}
+
+void rebalance_irqs(unsigned int from, bool up)
+{
+    int irq;
+
+    if ( cpumask_empty(&cpu_online_map) )
+        return;
+
+    for ( irq =3D NR_LOCAL_IRQS; irq < NR_IRQS; irq++ )
+        balance_irq(irq, from, up);
+
+#ifdef CONFIG_GICV3_ESPI
+    for ( irq =3D ESPI_BASE_INTID; irq < ESPI_BASE_INTID + gic_number_espi=
s();
+          irq++ )
+        balance_irq(irq, from, up);
+#endif
+}
+#endif /* CONFIG_CPU_HOTPLUG */
+
 static int cpu_callback(struct notifier_block *nfb, unsigned long action,
                         void *hcpu)
 {
@@ -172,6 +227,11 @@ static int cpu_callback(struct notifier_block *nfb, un=
signed long action,
             printk(XENLOG_ERR "Unable to allocate local IRQ for CPU%u\n",
                    cpu);
         break;
+    case CPU_ONLINE:
+        if ( IS_ENABLED(CONFIG_CPU_HOTPLUG) &&
+             system_state >=3D SYS_STATE_active )
+            rebalance_irqs(cpu, true);
+        break;
     }
=20
     return notifier_from_errno(rc);
diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index 7f3cfa812e..7d877179c0 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -425,6 +425,13 @@ void __cpu_disable(void)
=20
     smp_mb();
=20
+    /*
+     * Now that the interrupts are cleared and the CPU marked as offline,
+     * move interrupts out of it
+     */
+    if ( IS_ENABLED(CONFIG_CPU_HOTPLUG) )
+        rebalance_irqs(cpu, false);
+
     /* Return to caller; eventually the IPI mechanism will unwind and the=
=20
      * scheduler will drop to the idle loop, which will call stop_cpu(). *=
/
 }
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Fri May 15 11:55:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 11:55:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309891.1580909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr89-00056o-5j; Fri, 15 May 2026 11:55:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309891.1580909; Fri, 15 May 2026 11:55:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr88-00054h-Tm; Fri, 15 May 2026 11:55:00 +0000
Received: by outflank-mailman (input) for mailman id 1309891;
 Fri, 15 May 2026 11:54:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1wNr87-0004sC-Fo
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 11:54:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNr86-00Abbl-Rt
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 13:54:58 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a070990-e002-0a2a0a5209dd-0a2a450aa776-12
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:54:58 +0200
Received: from [52.101.70.125]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a070991-56b3-0a2a450a0019-3465467d29db-6
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:54:58 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PA4PR03MB6926.eurprd03.prod.outlook.com
 (2603:10a6:102:e4::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Fri, 15 May
 2026 11:54:56 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 11:54:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MkaDUbDgp9doqh8iTPf9soKWDN91nGJXX/YMaBHtyJ+ZwDioEdstjCwuolMcLb2nU+TuzqC+S+/y1pfJgzj1mVsr555tqDTkoeANv96zA1tbmR2fthTSEEoi1rs1F6T1/46i+eQHYciVUMZH88a7jBQx1LsPfaTLIl1o3OZ/TqNrVCe1Gppd6cRqKmmVwGocjwfy7kqfTDm4REb0/87iaRifxA4Gs9jx32VHQaZRBw4jsCue+6N7gsGv3RtxnvqXdwP/sfz22vlHeoRMKrDC5L+WsJMgp43Ch1rid+5xV1QtC69mxePk0EUMRINL/9H4bamGJpRs+yiw6ih20ED2IA==
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=yvW2UrW+rgRpup1fB2WA+AdZ64UD5QAXF33FcLUu2hk=;
 b=rze6vTz6iXeXLmUXSpNOtVRCouz18Tsyt7FCoUPLhfNsaPftsgw1Se36Ocj5I2awd5VaKkocSKnn5hD8Tl3Kvy7ecwERTf+dPe1dtcuzmlJKNJvfeBBy43AUxWMNrSlxxJGmCS4cEZeKknRGraWX43pGHBG2zKhq9G8NO8rEVFI7WDpfakPJFz79CqOZY9Z7iC9KN6QigKl0qZHES3TRLK1/q6WWYEAFVhtD03G28YxZKsFTbygz2a+zPtX0vUFV1aaNL6q7icHeNTJDg7AjDT9B/UshNYBvYOkLQUBICTy1y6ey++rNuebaMDXB4PQmlMYjWKVDkhhXsP0ZyR7e6Q==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yvW2UrW+rgRpup1fB2WA+AdZ64UD5QAXF33FcLUu2hk=;
 b=fqQD7vPhZw7AoNuMlqGaqGYHfrp4BL7/I8iwoq2IRuDvvdOzVgj6MLrjATXI8We7nrGRRCYj8g+2J8MCMypD6NLu4kG6k65nAVjUjMrjD6bmmpOv3/buR1RJj6JzDEsjW7FOFx3shOl9NptcUGBSrrc9J8cWJyVJlz4oUrKhryRHuJQb6oSOO3htaWRSo27p8nfudGrr/Gv1aUXutiDVuGGyWacxcZXCBxDxCovY7wib3TUy6QGXwE+vuiw7fE0g6XzEsWaUt4dpNile6aHG9RBBhzBrPi83stw+Enf2dCpLflncnPpBZVjj/s1y3et/i0zlpGz5Q6toIU9DUXzZ+Q==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v8 3/6] Kconfig: Make cpu hotplug configurable
Thread-Topic: [PATCH v8 3/6] Kconfig: Make cpu hotplug configurable
Thread-Index: AQHc5GGmydFYeCVrlkigcpKCw3qy7w==
Date: Fri, 15 May 2026 11:54:56 +0000
Message-ID:
 <c32ac85498cd4dd4c1654e81b8880ce3c5149c01.1778845596.git.mykyta_poturai@epam.com>
References: <cover.1778845596.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1778845596.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PA4PR03MB6926:EE_
x-ms-office365-filtering-correlation-id: 34844db3-f29f-4267-c1ba-08deb278c8a1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|22082099003|18002099003|56012099003|38070700021|10063799003|11063799003;
x-microsoft-antispam-message-info:
 Yali/aryMukM+qanN4sK/JxouPUhYzr7LDEzOLaZcnJqlPf6svDsF5l+bXhvNlm/uAfDg5mb88nsvOnov/RMG5MNaTmFuXDgoMt0Qu/pDo0KmST48lsO9RDoolvn5pBLkQqn4fyRUvvNaCQI6lcFPpO4Ob58hG0y3XTyWBnQ/43QhBHJP/xzAh2fmjZKCq7gcVgcyZDIyEWpaZn9L1Um1KvDOGhwm80zBC/YFacplzoV0O+tAQS2vBWgqBzNASKFN/DehY/RP/nXb4O4GvnzEjQuNOgHbR7th3U4FUzh0M8UtwToaRKnL87wBrCSYUSFWxfsP8K2nUX8LdU/5cyzg7jfjLs+1TCqcTFP6sKOd+le8sTj7HX70X+RHMN2rJIalUUvntG3LK5KfCidayQuC3NoHj+Twao4ijbZBfbqMy3BeEGPVT2CEVeA+rT1U1i/r3FUrAoh4WEbyzywEK7gUBIIWkrBXm6ODnx72Xyz63XbOAP5n4w6RbtoxTBKWPsIsDr5TxsCGS2TsO+vaaVOUYPobG79QL5zW/Da0rZtRggI+RXB9ZoS7CmKZTIIlRtXVNOJPYx3nPrhjFBeZ5+qcg2qTbOBx4FUZYen5Dlby10iAoeYzbsjX3mmg47b6oudG0XXyUSMR2PUx831iFuH95R20CFCS2OOOkJ0vOwVbY4xKY9ZCC/O3UWhZM+TXkiCJSuhTjgANce8boEpnVST32dPDdCneqHMi+telgHro/0L3VTvtZfmdcn+A9tA9aCV
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(18002099003)(56012099003)(38070700021)(10063799003)(11063799003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?P/vGOYwxxYo6p7zR0UQpK9rnIkQ0ApUQTaFIkBTgecOtT41W654L9aGahX?=
 =?iso-8859-1?Q?TmJ3oXBZzM4PmD3zT211lOqTbnyRUBLt5n+oQr/XyXSd7Mkt8brZeZKf5v?=
 =?iso-8859-1?Q?vjubZ9485VaDkdmyLGGM+HYJ/2MWXH4BSj5RAQowJZ0qqPR9Xg2yM1lIQ/?=
 =?iso-8859-1?Q?ad4bWa9WVee3DedpjqOya9LUJrmGMiOxJmrf2Dozs8X3CnA0IVb899prq1?=
 =?iso-8859-1?Q?QwseRjt2BFXAPrNvcuE9F1eUfXFDjFlm2+OiFsIHSLsPGLbeb61UQglHXO?=
 =?iso-8859-1?Q?9Wd8Fvgm9bpqR7BvljOsK4E7g9lqW8u4Qg8ZrKqULMdn2kDAfshlXvolds?=
 =?iso-8859-1?Q?/iWyT67egM/I0VIEw5Sn99+f7/1v6w0TWjOPgyZjLRuLsKqrJWpMTvDN4y?=
 =?iso-8859-1?Q?onnBG6IKPsuV78LmZA/Mg2pREFg58BJ5zXO58kenZMySNA+zL18GbFIufe?=
 =?iso-8859-1?Q?BBrDPertDBu/qU1BcthPnLBA28+QzaNS51vICyF52QTTOuSAZqnC+4AqiY?=
 =?iso-8859-1?Q?RO8FCEyd5lAhGs+s6fhHZ7eZaAO2ojjhsQu/ddjWouc8U1gblSUnfUcNi/?=
 =?iso-8859-1?Q?nfDxYbaCvCz3vyVhNl3sS3aJ04vi6F7sqDbzW3YTG2PHiEC6lbwZpCs8Pn?=
 =?iso-8859-1?Q?IVNy2JgdvcdaU0l5lC8h/10sQdhFB+AW6zFM9EA+zHdbYArhm9sFTzShdD?=
 =?iso-8859-1?Q?/QHLOGxUtsE73VU/T7t+67tvGBF5TaCpZ3sG+ig67L5I090HlRC7Q90y/7?=
 =?iso-8859-1?Q?PmfuqmAaksLzp2shV54PhJOmWpBd2BgqRTNNpzQy+mgWAhyjBckL/a1k11?=
 =?iso-8859-1?Q?IzUFlQe/qWEUPAbTx3L3s299K47ih8ymKaAcq7aG28Wgn3TJQnaRx6Doyz?=
 =?iso-8859-1?Q?rwSyUzYevPF3bYkHsjTE92ntdQKQ1M0pW/yA5A++E+r2zgq+AfNR4Nd6O6?=
 =?iso-8859-1?Q?8+w+IZudkeN/i3mJtQ1mguZV/66/EOHIPw6R4wkN1DHlhswZDVLKUZdN17?=
 =?iso-8859-1?Q?Nf9g/4E9CQq8AlOR2RTGGzHPxld9LI2sEToae/bLHvpo3z2/5+mtnkkcee?=
 =?iso-8859-1?Q?jdhoZgMbUqgpngpGaFO1cVQJQzKWF9h6LoV8e12DFPf5pbyP8Tt30EOKyg?=
 =?iso-8859-1?Q?L44cQpwAstIZcpvSQgz1YxiMrRWTRK88HIiaOCmrpNYruqMO7Qpt37ydsh?=
 =?iso-8859-1?Q?K9rnoiAGYRbL7hhrjldI6GMV9lx3um1xdTX9ugF2mHiFVJ1j4I3nH2w4OT?=
 =?iso-8859-1?Q?xkPDdDzDisHW5o2fXP8yPmMEfY/AzY3i33ETwjrbgLMuW4pKjglyYit9nJ?=
 =?iso-8859-1?Q?d6UDvX01lcbbKP/XatnNrx2QNdXgKxQQrGIUwJE88vzP+d8dwt7u27oUUF?=
 =?iso-8859-1?Q?0lAXq48eR0kdKTjdLh0hHR0YS07/9Fz4zXLU1rp82eCtNEXHYzeoXYmYLg?=
 =?iso-8859-1?Q?g/ibVHCpIxAxD9mCBt72r49iFWQ0dsS7Hgvxe3BfWDY6MSctW5jLcFBw6C?=
 =?iso-8859-1?Q?K16DIK1pTsMVetRfyhMg0ca6cRMIJcutryr4qn0F7DQe2TkQA0Vhn+sf2V?=
 =?iso-8859-1?Q?gMjPfV13bIzmuEWZ+sD0dMLsu1e3J/ufMAYmmgcyYJr5f2EnaB+56UcTlR?=
 =?iso-8859-1?Q?d22AKLnQZ2iptd2uQLigBwQ6MK+ONt4fb2+OwCbvA67vTrLpv/qyorWWA3?=
 =?iso-8859-1?Q?Swj7EghyCRVBeE8ZiFHNjisoN8YhFu0vhySNevOL9N6cJ0GiTb5D0nsEyX?=
 =?iso-8859-1?Q?SZyxWq29FxktPYyy+1vXEoePAOcBw44j4OdUWr6AkPo2I8oM2bvxF3jpF1?=
 =?iso-8859-1?Q?2IZ2VgTIP4e2QXWlau6op3nrxgkHEoQ=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 34844db3-f29f-4267-c1ba-08deb278c8a1
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2026 11:54:56.4896
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: wDvD/2sxQ2a9hMIN7H3whw4EPhPCOQHd17BnlX88ZgCNYF8wRzjB+Rgccw1riB8fkoZ3Nu75gEHi64vwmK15rA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6926
X-purgate-ID: tlsNG-4011c0/1778846098-7CA798B7-9CD0E7F2/0/0
X-purgate-type: clean
X-purgate-size: 3571

For the purposes of certification, we want as little code as possible to
be unconditionally compiled in. Make CPU hotplug and SMT operations
configurable to ease the process. This will also help with introducing
CPU hotplug on Arm, where it needs to be configurable.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v7->v8:
* fix style
* s/CPU_HOTPLUG/CPU_ONLINE_OFFLINE/

v6->v7:
* new patch
---
 xen/arch/x86/platform_hypercall.c | 12 ++++++++++++
 xen/arch/x86/smp.c                |  3 +++
 xen/arch/x86/sysctl.c             | 12 ++++++++++++
 xen/common/Kconfig                |  8 ++++++++
 4 files changed, 35 insertions(+)

diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hype=
rcall.c
index 0431f875af..3f6789c8b7 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -735,6 +735,12 @@ ret_t do_platform_op(
     {
         int cpu =3D op->u.cpu_ol.cpuid;
=20
+        if ( !IS_ENABLED(CONFIG_CPU_ONLINE_OFFLINE) )
+        {
+            ret =3D -EOPNOTSUPP;
+            break;
+        }
+
         ret =3D xsm_resource_plug_core(XSM_HOOK);
         if ( ret )
             break;
@@ -761,6 +767,12 @@ ret_t do_platform_op(
     {
         int cpu =3D op->u.cpu_ol.cpuid;
=20
+        if ( !IS_ENABLED(CONFIG_CPU_ONLINE_OFFLINE) )
+        {
+            ret =3D -EOPNOTSUPP;
+            break;
+        }
+
         ret =3D xsm_resource_unplug_core(XSM_HOOK);
         if ( ret )
             break;
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index 7936294f5f..9046c826f8 100644
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -418,6 +418,7 @@ void cf_check call_function_interrupt(void)
     smp_call_function_interrupt();
 }
=20
+#ifdef CONFIG_CPU_ONLINE_OFFLINE
 long cf_check cpu_up_helper(void *data)
 {
     unsigned int cpu =3D (unsigned long)data;
@@ -445,8 +446,10 @@ long cf_check cpu_down_helper(void *data)
 {
     int cpu =3D (unsigned long)data;
     int ret =3D cpu_down(cpu);
+
     /* Have one more go on EBUSY. */
     if ( ret =3D=3D -EBUSY )
         ret =3D cpu_down(cpu);
     return ret;
 }
+#endif
diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
index 0fbbdd8b28..1d0857b502 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -53,6 +53,12 @@ static long cf_check smt_up_down_helper(void *data)
     unsigned int cpu, sibling_mask =3D boot_cpu_data.x86_num_siblings - 1;
     int ret =3D 0;
=20
+    if ( !IS_ENABLED(CONFIG_CPU_ONLINE_OFFLINE) )
+    {
+        ASSERT_UNREACHABLE();
+        return -EOPNOTSUPP;
+    }
+
     opt_smt =3D up;
=20
     for_each_present_cpu ( cpu )
@@ -121,6 +127,12 @@ long arch_do_sysctl(
         long (*fn)(void *data);
         void *hcpu;
=20
+        if ( !IS_ENABLED(CONFIG_CPU_ONLINE_OFFLINE) )
+        {
+            ret =3D -EOPNOTSUPP;
+            break;
+        }
+
         switch ( op )
         {
         case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 0a20aa0a12..9fc53fde48 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -636,6 +636,14 @@ config SYSTEM_SUSPEND
=20
 	  If unsure, say N.
=20
+config CPU_ONLINE_OFFLINE
+	bool "CPU online/offline support"
+	depends on X86
+	default y
+	help
+	  Enable support for bringing CPUs online and offline at runtime. On
+	  X86 this is required for disabling SMT.
+
 menu "Supported hypercall interfaces"
 	visible if EXPERT
=20
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Fri May 15 11:55:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 11:55:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309892.1580930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr8B-0005mY-SF; Fri, 15 May 2026 11:55:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309892.1580930; Fri, 15 May 2026 11:55:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr8B-0005mP-Nk; Fri, 15 May 2026 11:55:03 +0000
Received: by outflank-mailman (input) for mailman id 1309892;
 Fri, 15 May 2026 11:55:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1wNr88-0004sR-7a
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 11:55:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNr87-006N3i-Jt
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 13:54:59 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a07098e-bab6-0a2a0a5309dd-0a2a450ce7ce-16
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:54:59 +0200
Received: from [52.101.66.95]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a070993-62f1-0a2a450c0019-3465425fdad9-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:54:59 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAWPR03MB10041.eurprd03.prod.outlook.com
 (2603:10a6:102:359::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 11:54:57 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 11:54:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=enfz1r+A15bXfyLnYX15d67jorGSZMCqDatlkUGoae+RivOvcA3P1ZND+By+XXgeqvEigM+vnR52HdjljAbX3Xgiz7zAHHQh+Vv2izLMXy7rOPBqXkVCLEm1WbB/cTtoOwU3GrQVVw4MqDOBZ6mEX4whozoGNL58YrLWRncdoPmzcsniKC5Ae0na7anFf3d3L+62Uanej/SeNf9WpVwesXFQW4TaPjfdR8p84NUZO85kZhvdOJ/hijnMoCX31Z3zUPXxxK0Qrwo4EGkdAHGLWjeDJlSxTkKyg+VXokG/3Uh6tGRKtaXakoZHiXKnMcBkp9vkzDdgzs7Kp21gHrvk2A==
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=gvITBzfviWpLjYTwWhEQQ0njuortD3PdC0Fl/d0a490=;
 b=YtKMgkEiOWyzu5dJarAXEmZYMC/djMGcFy2KgP5R6Ud8gnkO7qhBRvAfzsiZj8EPwkKJnVprq7JC/IJBVAsVlAjlVsu+k2MYM98pN62Z0CV96exNNtuDwun6Do30fXI/GGdg0xVr9hjJ1BjDLKURYifLm/NJQWBTxSTrLRhIUz2qNX0UJFPPBD5wDxyAD+m7V7pE62PvaCoKMBcuT6165fwJqfKlSUBW4kOduVBxT4sAiWkLFBLBFvj8Y2cDZ+vF65TpFQOSkAqqfipe/L05P9o7czFIVFhmDgYcdqx7bP/OfaYSDWGDzCpAGusX/inkbZuLx4KOlKSnI2lI/8QovA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gvITBzfviWpLjYTwWhEQQ0njuortD3PdC0Fl/d0a490=;
 b=T6wymfmj3/BSMTExzjdLyHiKtcGy5xwL61KZDe+YR3UJxBdKSA/tYAcxRrgLxYKylme9C/Frn2taNCewLRBbVvfuNI6GcPiIipNhUN3dkuzpYW+ad+yoUNAJW6kw1oPX6w6JAGBikJPx0JfrkgEkDaFGu2Mb1vvX5IWkzMSnIU7xuUvTwSsOBRVG1A0F1bB6Zp61F378B5gG9MbScWKC4ztHLOEF71ZKsc1Cchw40xrCKFWaWo9cptRj+UXPpzJh8smxioaiyKcuvWHbSuiSxD1NyKY8hU4jazcm6ojJWvwdTOxp8RYPQKfZ7qiFhK270ArZgHl9B2SaGMXnkNxcgg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>, Connor Davis
	<connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, Teddy
 Astie <teddy.astie@vates.tech>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH v8 4/6] arm/sysctl: Implement cpu hotplug ops
Thread-Topic: [PATCH v8 4/6] arm/sysctl: Implement cpu hotplug ops
Thread-Index: AQHc5GGmioWDIjxH0EO+SnTISTH6hg==
Date: Fri, 15 May 2026 11:54:56 +0000
Message-ID:
 <8d0d4f74ef5730edf59ff21fe8ab2aead6a7f1c6.1778845596.git.mykyta_poturai@epam.com>
References: <cover.1778845596.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1778845596.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PAWPR03MB10041:EE_
x-ms-office365-filtering-correlation-id: 95452295-8d7c-4470-96ea-08deb278c8ee
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|7416014|1800799024|11063799003|22082099003|10063799003|38070700021|56012099003|18002099003;
x-microsoft-antispam-message-info:
 Lupc9STKhuPRbxWgLN7IsyCUlwR3n1tjmDWUoFq6/QUNtn16XoXX14w7+htw4SvMD0Ij0lvqXci0yPgW3v+v6JYzfc9dyd7ym9Eqyxmmm4x0VnkZrTekdJ9dWcyAESplO7HlsuPm4ERLL4YaXxFNKunUV1O5k4ven7wbYj2vAxuZJaEtXDowK9p5CH/kHKnQX53Ez+9AAfYLJLTqe3zugXD2uBtZ6mc1U1ff6I441g6qxivFTeBOyGV0MYiG1X4GMRTyHRIJx7DkkKeraRxcCeLV5iHF4XEAlEee+UocBbL6+r5xkKViqjFauLAX1f4jNSa0VlVox7BgGzzO2jQ4ooprMPuzAG8hLUenzkS7u1seU5owtrfqtKzhSGcNcC7HHlHWPpn8EzVGNudZJ2ZJS7UvN267uucJx0WDRVmMWlMYKnNd1rS9iWGqsAkM504hF81pXpy6Xr7+0a6C/SOIGxU2g8sEfFBGgAkW/RS7dOWIMmVSl91Wc/TzEtmOjx+p89a4RxbXvA5Tb63jRljfYrg6gMq/7ii/zyH4vCyLlzNO+lxYmNqSooqG4xfxXUpI2gTYodbpFFjxIsWKJSyexEv1x8QKQd5pBvSgEbJwsSzSmbQG6BP1JtWyV0D6gvwRw/37UxNLM+WBtvPEKED+9FIGdTbtAmtou0akIoJ3Zkc7viiF1SfqGcq7JGil/v3dOxk0CiWSEuzYH4oa1SIKvkWjuRXlKYA60ThjjBWufTCEIs9Osbf6LUzvHg89jQLo
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(7416014)(1800799024)(11063799003)(22082099003)(10063799003)(38070700021)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?/9S40tnKn7OYnpJwzuGJSEHNeRysBDFjuIJKW6Egl4YK0FzherhqQ6sUkP?=
 =?iso-8859-1?Q?WaJi1OEa1FyddR4UhKbVYA9giskzis3fa1K6pbmFuU9on9r39EA08L7eRZ?=
 =?iso-8859-1?Q?YyftXd9NfSLRHm2HrXK91haDMjAiQehU38zPJhhbbZFOxm3HHihhaV2piJ?=
 =?iso-8859-1?Q?6SyYALnE3tSBU9fXPMf+0uVuTKbLCKWICvX3Gjdh0AJIFp4s6iPNP1BQ76?=
 =?iso-8859-1?Q?XsEctU2cO8xSTUoN5vv2PvClyVY8V68fsA/FPSZjJAo4SbdHMH7/2VOT0q?=
 =?iso-8859-1?Q?4Ligml1uI6OG2PDLj6nEDMQFFlwdcEJM5ktI+Xf6fK35aJbgVnh9OEOVyQ?=
 =?iso-8859-1?Q?2SJaOvfYJZzfjnP8jukKy5JN18v3X4Cuv6p/I5mDxzxQzRHwHiqA/dYQ50?=
 =?iso-8859-1?Q?N6hJrhcHnfWu/qnuX42NvjGhxwUiR9UMUpXRmPaqsIJbaFexjXO3bOy9Yg?=
 =?iso-8859-1?Q?w7nlLLy+FqqsPaSW2qXNg7Dt9p13Gka84k4bR88ulCKSKFrU6gBzV8pOXH?=
 =?iso-8859-1?Q?iTzTJHZq10esvICqeNOAatKNjuBdl78Gj3ZBuk8N270YQiKQog5YOXiNi0?=
 =?iso-8859-1?Q?RcPm7iIJnrtIsrz0QRyvY9uO9oGh+E1tfR4mU9TyPJ4HN9jQPuU0byqSKB?=
 =?iso-8859-1?Q?nR2I+9iIc3QkxOZ4Vc5nJTBCDWLcFIio4rcfvZZX+OIhZjd5kqXFfLGWxD?=
 =?iso-8859-1?Q?EKQi5cU8NdipM+cJe7y9zquKXwS9vBuQp20e3zQv2MtFxNQecY5bg9d5Ai?=
 =?iso-8859-1?Q?GKT/SGaUDfG6YsuOylWuJImLw/rOyRgRZzRdbt+GVkBoVgi8+xL80/lZGC?=
 =?iso-8859-1?Q?c9ShEP2PLNgLN0D1vpsyqmc3KynMdAw4HustdsZeBrMAP4vYADscZbzJ5s?=
 =?iso-8859-1?Q?lZVlG6dRz2ji0UC8f71u0Q7iwNdsL6sDNlzg/eXEuaPYpQRCv6qqfMwXTt?=
 =?iso-8859-1?Q?acw/TQQ7fgs8tcZjg2P9F2PL2+rAXPr7bJmnbKxpvdSrn71QCvuDaaqLB5?=
 =?iso-8859-1?Q?0vgk7xB5MSr82JlsGR5h3PZkzlgloSFWSALskSNVZKvNURq3CaKLgnTpLP?=
 =?iso-8859-1?Q?Zi/pLCp/ZGpTmURqyMYW47DGnhrFkwbAkZfiEPfmxSoTeoZbTdYm80veZY?=
 =?iso-8859-1?Q?tGdkXEn/RdwvZGeQy5fReTnMMQ07i9NjHfWmVpf3XTBRntju0VGjQbisPI?=
 =?iso-8859-1?Q?JCotWmLEYnWCfRF2+0mB1mW1FqKJQInlsSHjCAMhodhKL2YnKWHh6pjXcF?=
 =?iso-8859-1?Q?p9GZVzdUTaP9ooK53IaFZ4tu18ojIog8mSgEk06mT1yBAsh0FDIzXshhga?=
 =?iso-8859-1?Q?ASx3srrW0wnRnd3BRNJyP1VmvkyUyoXx4byWIojoERAOeoy5Io+IH7YlzI?=
 =?iso-8859-1?Q?/Sui9vXJTMiViCKln1RZXfsqOV885Poc7zbMZugSoMhOuIjEXEYQxK3vke?=
 =?iso-8859-1?Q?OwT/e9CNA183Fv4N3BexA4HyBef8SmwzIXzzD8yRJIhHFEI/GRGTg23JCj?=
 =?iso-8859-1?Q?mPBgEjv8VMGiEwIf1wmxk3yo5IjvdYR1pRbJhhgR5DIARJoLIkSkkMxO6G?=
 =?iso-8859-1?Q?4GJYzmrC7ai/66AZPNDKI5PFAGpi3tiKZFjRR1Tr6LTAmvGPYOqB1GLyTI?=
 =?iso-8859-1?Q?xNjN+5ZWkqrjfgLsr6e5FxgY2qyZUnzD4Vt+LAA5jq372XiVJZZ6rYVqFX?=
 =?iso-8859-1?Q?uMHTlwz7FWb80JxWVCOTWPV8kfwDOTPuzKkHCD5t3uhNddHNuidw39T0Ho?=
 =?iso-8859-1?Q?viEqDZ+TsGih4dUo6tKWEKz4R6+rOVH32n48vjyuSrOKmjXU2pAME37hki?=
 =?iso-8859-1?Q?6JZapj7c5yAzDejz6uc5et5UtVjAkr4=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 95452295-8d7c-4470-96ea-08deb278c8ee
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2026 11:54:56.9040
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: DAC9miL50YGTAZN4wHdnLXlqmrrnhjmL+RvzJYvjw50oe4HI0Vrk3tEminoZp80aTH/XCnGR+6T6tVE+CxLFrg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB10041
X-purgate-ID: tlsNG-d25034/1778846099-F5784CF5-F899FB53/0/0
X-purgate-type: clean
X-purgate-size: 10700

SMT-disable enforcement check is moved into a separate
architecture-specific function.

For now this operations only support Arm64. For proper Arm32 support,
there needs to be a mechanism to free per-cpu page tables, allocated in
init_domheap_mappings. Also, hotplug is not supported if ITS enabled,
and partially supported FFA, or TEE is enabled, as they use non-static
IRQ actions.

Remove ifdef guards for x86 in flask, as cpu hotplug is now
supported on more architectures.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

---
v7->v8:
* simplify dependencies of config CPU_ONLINE_OFFLINE

v6->v7:
* use IS_ENABLED istead of ifdef in more places
* remove unneded variables
* more explicit fallthrough in do_sysctl

v5->v6:
* fix style issues
* rename arch_smt_cpu_disable -> arch_cpu_can_stay_online and invert the
logic
* use IS_ENABLED istead of ifdef
* remove explicit list af arch-specific SYSCTL_CPU_HOTPLUG_* options
from the common handler
* fix flask issue

v4->v5:
* move handling to common code
* rename config to CPU_HOTPUG
* merge with "smp: Move cpu_up/down helpers to common code"

v3->v4:
* don't reimplement cpu_up/down helpers
* add Kconfig option
* fixup formatting

v2->v3:
* no changes

v1->v2:
* remove SMT ops
* remove cpu =3D=3D 0 checks
* add XSM hooks
* only implement for 64bit Arm

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/smp.c             |  9 ++++++++
 xen/arch/ppc/stubs.c           |  4 ++++
 xen/arch/riscv/stubs.c         |  5 ++++
 xen/arch/x86/include/asm/smp.h |  3 ---
 xen/arch/x86/smp.c             | 34 +++------------------------
 xen/arch/x86/sysctl.c          | 13 ++++-------
 xen/common/Kconfig             |  6 ++---
 xen/common/smp.c               | 35 ++++++++++++++++++++++++++++
 xen/common/sysctl.c            | 42 ++++++++++++++++++++++++++++++++++
 xen/include/xen/smp.h          |  4 ++++
 xen/xsm/flask/hooks.c          |  2 --
 11 files changed, 109 insertions(+), 48 deletions(-)

diff --git a/xen/arch/arm/smp.c b/xen/arch/arm/smp.c
index b372472188..0ea64d2ee1 100644
--- a/xen/arch/arm/smp.c
+++ b/xen/arch/arm/smp.c
@@ -44,6 +44,15 @@ void smp_send_call_function_mask(const cpumask_t *mask)
     }
 }
=20
+/*
+ * We currently don't support SMT on ARM so we don't need any special logi=
c for
+ * CPU disabling
+ */
+inline bool arch_cpu_can_stay_online(unsigned int cpu)
+{
+    return true;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index a333f06119..8f280ba080 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -101,6 +101,10 @@ void smp_send_call_function_mask(const cpumask_t *mask=
)
     BUG_ON("unimplemented");
 }
=20
+bool arch_cpu_can_stay_online(unsigned int cpu)
+{
+    BUG_ON("unimplemented");
+}
 /* irq.c */
=20
 void irq_ack_none(struct irq_desc *desc)
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index acbb5b9123..e051f0fb3f 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -65,6 +65,11 @@ void smp_send_call_function_mask(const cpumask_t *mask)
     BUG_ON("unimplemented");
 }
=20
+bool arch_cpu_can_stay_online(unsigned int cpu)
+{
+    BUG_ON("unimplemented");
+}
+
 /* irq.c */
=20
 void irq_ack_none(struct irq_desc *desc)
diff --git a/xen/arch/x86/include/asm/smp.h b/xen/arch/x86/include/asm/smp.=
h
index 3f16e62696..cb3e0fed19 100644
--- a/xen/arch/x86/include/asm/smp.h
+++ b/xen/arch/x86/include/asm/smp.h
@@ -50,9 +50,6 @@ int cpu_add(uint32_t apic_id, uint32_t acpi_id, uint32_t =
pxm);
=20
 void __stop_this_cpu(void);
=20
-long cf_check cpu_up_helper(void *data);
-long cf_check cpu_down_helper(void *data);
-
 long cf_check core_parking_helper(void *data);
 bool core_parking_remove(unsigned int cpu);
 uint32_t get_cur_idle_nums(void);
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index 9046c826f8..caf4411705 100644
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -419,37 +419,9 @@ void cf_check call_function_interrupt(void)
 }
=20
 #ifdef CONFIG_CPU_ONLINE_OFFLINE
-long cf_check cpu_up_helper(void *data)
+bool arch_cpu_can_stay_online(unsigned int cpu)
 {
-    unsigned int cpu =3D (unsigned long)data;
-    int ret =3D cpu_up(cpu);
-
-    /* Have one more go on EBUSY. */
-    if ( ret =3D=3D -EBUSY )
-        ret =3D cpu_up(cpu);
-
-    if ( !ret && !opt_smt &&
-         cpu_data[cpu].compute_unit_id =3D=3D INVALID_CUID &&
-         cpumask_weight(per_cpu(cpu_sibling_mask, cpu)) > 1 )
-    {
-        ret =3D cpu_down_helper(data);
-        if ( ret )
-            printk("Could not re-offline CPU%u (%d)\n", cpu, ret);
-        else
-            ret =3D -EPERM;
-    }
-
-    return ret;
-}
-
-long cf_check cpu_down_helper(void *data)
-{
-    int cpu =3D (unsigned long)data;
-    int ret =3D cpu_down(cpu);
-
-    /* Have one more go on EBUSY. */
-    if ( ret =3D=3D -EBUSY )
-        ret =3D cpu_down(cpu);
-    return ret;
+    return opt_smt || cpu_data[cpu].compute_unit_id !=3D INVALID_CUID ||
+           cpumask_weight(per_cpu(cpu_sibling_mask, cpu)) <=3D 1;
 }
 #endif
diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
index 1d0857b502..7a88ec7d7b 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -121,7 +121,6 @@ long arch_do_sysctl(
=20
     case XEN_SYSCTL_cpu_hotplug:
     {
-        unsigned int cpu =3D sysctl->u.cpu_hotplug.cpu;
         unsigned int op  =3D sysctl->u.cpu_hotplug.op;
         bool plug;
         long (*fn)(void *data);
@@ -129,6 +128,7 @@ long arch_do_sysctl(
=20
         if ( !IS_ENABLED(CONFIG_CPU_ONLINE_OFFLINE) )
         {
+            ASSERT_UNREACHABLE();
             ret =3D -EOPNOTSUPP;
             break;
         }
@@ -136,15 +136,10 @@ long arch_do_sysctl(
         switch ( op )
         {
         case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
-            plug =3D true;
-            fn =3D cpu_up_helper;
-            hcpu =3D _p(cpu);
-            break;
-
         case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
-            plug =3D false;
-            fn =3D cpu_down_helper;
-            hcpu =3D _p(cpu);
+            /* Handled by common code */
+            ASSERT_UNREACHABLE();
+            ret =3D -EOPNOTSUPP;
             break;
=20
         case XEN_SYSCTL_CPU_HOTPLUG_SMT_ENABLE:
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 9fc53fde48..d0b8aa8d1c 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -637,9 +637,9 @@ config SYSTEM_SUSPEND
 	  If unsure, say N.
=20
 config CPU_ONLINE_OFFLINE
-	bool "CPU online/offline support"
-	depends on X86
-	default y
+	bool "CPU online/offline support" if EXPERT
+	depends on X86 || (ARM_64 && !HAS_ITS)
+	default X86
 	help
 	  Enable support for bringing CPUs online and offline at runtime. On
 	  X86 this is required for disabling SMT.
diff --git a/xen/common/smp.c b/xen/common/smp.c
index a011f541f1..16f4ed2d4e 100644
--- a/xen/common/smp.c
+++ b/xen/common/smp.c
@@ -16,6 +16,7 @@
  * GNU General Public License for more details.
  */
=20
+#include <xen/cpu.h>
 #include <asm/hardirq.h>
 #include <asm/processor.h>
 #include <xen/spinlock.h>
@@ -104,6 +105,40 @@ void smp_call_function_interrupt(void)
     irq_exit();
 }
=20
+#ifdef CONFIG_CPU_ONLINE_OFFLINE
+long cf_check cpu_up_helper(void *data)
+{
+    unsigned int cpu =3D (unsigned long)data;
+    int ret =3D cpu_up(cpu);
+
+    /* Have one more go on EBUSY. */
+    if ( ret =3D=3D -EBUSY )
+        ret =3D cpu_up(cpu);
+
+    if ( !ret && !arch_cpu_can_stay_online(cpu) )
+    {
+        ret =3D cpu_down_helper(data);
+        if ( ret )
+            printk("Could not re-offline CPU%u (%d)\n", cpu, ret);
+        else
+            ret =3D -EPERM;
+    }
+
+    return ret;
+}
+
+long cf_check cpu_down_helper(void *data)
+{
+    unsigned int cpu =3D (unsigned long)data;
+    int ret =3D cpu_down(cpu);
+
+    /* Have one more go on EBUSY. */
+    if ( ret =3D=3D -EBUSY )
+        ret =3D cpu_down(cpu);
+    return ret;
+}
+#endif /* CONFIG_CPU_ONLINE_OFFLINE */
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index 5207664252..f06aecb6f6 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -483,6 +483,48 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_=
sysctl)
             copyback =3D 1;
         break;
=20
+    case XEN_SYSCTL_cpu_hotplug:
+    {
+        unsigned int hp_op =3D op->u.cpu_hotplug.op;
+        bool plug;
+        long (*fn)(void *data);
+        void *hcpu =3D _p(op->u.cpu_hotplug.cpu);
+
+        ret =3D -EOPNOTSUPP;
+        if ( !IS_ENABLED(CONFIG_CPU_ONLINE_OFFLINE) )
+            break;
+
+        switch ( hp_op )
+        {
+        case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
+            plug =3D true;
+            fn =3D cpu_up_helper;
+            break;
+
+        case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
+            plug =3D false;
+            fn =3D cpu_down_helper;
+            break;
+
+        default:
+            fn =3D NULL;
+            break;
+        }
+
+        if ( fn )
+        {
+            ret =3D plug ? xsm_resource_plug_core(XSM_HOOK)
+                       : xsm_resource_unplug_core(XSM_HOOK);
+
+            if ( !ret )
+                ret =3D continue_hypercall_on_cpu(0, fn, hcpu);
+
+            break;
+        }
+    }
+
+        /* Use the arch handler for cases not handled here */
+        fallthrough;
     default:
         ret =3D arch_do_sysctl(op, u_sysctl);
         copyback =3D 0;
diff --git a/xen/include/xen/smp.h b/xen/include/xen/smp.h
index 2ca9ff1bfc..04530738c9 100644
--- a/xen/include/xen/smp.h
+++ b/xen/include/xen/smp.h
@@ -76,4 +76,8 @@ extern void *stack_base[NR_CPUS];
 void initialize_cpu_data(unsigned int cpu);
 int setup_cpu_root_pgt(unsigned int cpu);
=20
+bool arch_cpu_can_stay_online(unsigned int cpu);
+long cf_check cpu_up_helper(void *data);
+long cf_check cpu_down_helper(void *data);
+
 #endif /* __XEN_SMP_H__ */
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 28522dcbd2..4ee68231ce 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -835,9 +835,7 @@ static int cf_check flask_sysctl(int cmd)
     case XEN_SYSCTL_getdomaininfolist:
     case XEN_SYSCTL_page_offline_op:
     case XEN_SYSCTL_scheduler_op:
-#ifdef CONFIG_X86
     case XEN_SYSCTL_cpu_hotplug:
-#endif
         return 0;
=20
     case XEN_SYSCTL_tbuf_op:
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Fri May 15 11:55:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 11:55:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309893.1580936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr8C-0005q6-7i; Fri, 15 May 2026 11:55:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309893.1580936; Fri, 15 May 2026 11:55:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr8C-0005pC-0L; Fri, 15 May 2026 11:55:04 +0000
Received: by outflank-mailman (input) for mailman id 1309893;
 Fri, 15 May 2026 11:55:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1wNr88-0004vB-IM
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 11:55:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNr87-006N3i-UH
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 13:54:59 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a07098e-bab6-0a2a0a5309dd-0a2a450ce7ce-18
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:54:59 +0200
Received: from [52.101.66.95]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a070993-62f1-0a2a450c0019-3465425fdad9-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:54:59 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAWPR03MB10041.eurprd03.prod.outlook.com
 (2603:10a6:102:359::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 11:54:57 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 11:54:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xcxA63gNiOmEhnVdrVyshILhIIOSQyPLin0Xy4uRH9XBF907E6ECNA5W7NyNoQ0Nt13G+4u+K/+xNV+Dnj3Hp/GWACDBhSGI8zgOQnkjPZYkwh0YpdXHvaragEP7Wlf1nW1WoqirCfP6NtNmtRl64p4ffZpFRhBOmE/eq1LlWUvVriWvT8gnvYZslR8H2pa+6/09+36lTw/3OVN2Hl1qxj5M8XPucjBO9dUNlzVJ1zHUTn6Azye59I2sxMfPH0d4XBvBjRfyiAGyc407SJUKvvOb6wPTQDbyXmBJ70nza/eskJyORcTH1hwqJ+xQ77X0XPYU+Atj1QzV5MdilDCbFw==
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=qBPuAdZn25EVVYx3eWOg7V3LNEk4yjCeJuAwYmmpDgs=;
 b=AKHn4UDDYPRHhiEPmCYrlQxYlnaVEKff1h+vajIvI4roRhOclF+Qc/ut3jY+R0Hl2yfQLBakgE2sK2u6JIsGja7Sgf1gY1GzDdRyK3OpBYPxSicM+fVS8oamunXNa0qitf/cDB7JdtttnGOwNx/GN9/sXPL0cnHvJMdOf0Pl84G7Q3QlbX/rrUMLnfIdBhfFZuHfKsxYOBEMBGlWtbDu1yRR+bHkFLeWDRbByVeKo2nSDRVqhE7aawBef5s/0BK68RovyaaWME+uLQYsMD4jCefKw2FkmhjYqvaJEeGSh1wYjqKgP0ohq9xWqZbHKNV6x2dHOojchWrwjQtJ5dG8GQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qBPuAdZn25EVVYx3eWOg7V3LNEk4yjCeJuAwYmmpDgs=;
 b=ob9ul3q8AiV8s9zs+fPGFQo/CHFkiuB7UP4FfQI7Z7IWv+v1eACE1ZJnfgWJ4vR328C3iqiDio/UTa8kXS60AADYjmax6Jr4+fliv8DwscPUqz5Gvo7ZMKiHz77WfgFkZbGKKhyUaicvS//wxHKBGu+An6zhDDuwQ05kfQUZyJ15CwtWYBeJ4b+wmGLmwtT+9P0tdvTirg23DvWumYihP1rVjg1mh842o5llgXMpNr+Ueqkc4Y2pdEvZJMzAmt694fwoYSZn8dmeQiV87Qdrf+eeNBYY661Wj6If7tAsEYoGlXXoSobhdEYJP52T8xJrc099fGD/8UrQCS/IOIUbXA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v8 5/6] tools: Allow building xen-hptool without
 CONFIG_MIGRATE
Thread-Topic: [PATCH v8 5/6] tools: Allow building xen-hptool without
 CONFIG_MIGRATE
Thread-Index: AQHc5GGmgZHFl4GybESq6ehOLkSGhw==
Date: Fri, 15 May 2026 11:54:57 +0000
Message-ID:
 <d4db5afa4cc02a234bff93416a639c750e5f1bf9.1778845596.git.mykyta_poturai@epam.com>
References: <cover.1778845596.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1778845596.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PAWPR03MB10041:EE_
x-ms-office365-filtering-correlation-id: 971da0c4-8372-455f-daec-08deb278c94b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|11063799003|22082099003|38070700021|56012099003|18002099003;
x-microsoft-antispam-message-info:
 PSkE88+ylz0Syl4QYS/GdMpHD/H1wRpkeFUR3z2oXqsqko6OF7E0R7th2kbjyQMGNLrV7jl0tGSkP33GF5coSMVjGaNf6U/M+rNXJyLshz9pdBD1wdgCHuReD+Ro97oX8jJVeilDhW1uwHoHy68bqcZP6eskye4vv4fn5RIJTeWRKJIili1YbB0HGe/eHLaD517wKvU/3aj9z7P9D8j50ekzeJH+M1Nv1c1diiNKHaQraYl5XU0zf4D+Aj/+uDCNjSGQtJdUbZgIRbnY34/EyH/xd0onvu4t0MWjvbcFYYYBxwygHgVrzFf5K5H2pb8LICdVmKlRXSPqm9Ew7peNYI4jI48HOB0d9kTiecMxRmTGdC7WiZrXZkMSVyGagWVrB4BtA1tMA+a+1COyjEOxkd92iFyL4TkTwhg8W2lOlqK+bYZUPex6HDAgRMxmATsW/ad3FtURB0PM0lzHclnKuqO5CHOhP4ErCm6CqYo0JzNQUUAnnOa3CRbtn1OMLpF/X9C3t58mEcWbgTTNRFiMRRuP1TvY+7n5GU8+WmLIaYUTKewnSy81U0uE86wnhVaw0/GlVCLc7xw2rNhiyK2B8/ElFUiJTeVP+pSFSB0O/V1BMHiFdtyK8CyHdnUIruEDQHer/UaeA90xEjh/r7o7iAy1hwnAjIZQWG6EuhdKoK5f7IHP/GfXpQfN+pWORR3R92Ve+LjvrhLH5nAJknVj4zFiJCuMcnaxLXDoqoyzKSiyLWjJFhZfKHgrSAqAk5/g
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(11063799003)(22082099003)(38070700021)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?4G49oejgRU7yQbsAaLqnk3K4Z0rdkmZwf7EAxXm+w62HYnyJn9smgkmg5o?=
 =?iso-8859-1?Q?l6H1NVxFhsHLUW4VWoQYjyOjHVqHyoZhl9WM7B5jrjemjjXIEB/sqaAR/j?=
 =?iso-8859-1?Q?KUo9B3I6HLdIySc1M9kkJkwvEKhkmiD/yXsJZSL8b9UAVgWuSTW2uavONA?=
 =?iso-8859-1?Q?zv1/y9kwq5uOg2Q3NPi4BPM5NqDlKka1Hd8glGkW+oVjR91i2PyQ2oaaC1?=
 =?iso-8859-1?Q?tMnwfYGyTgBxus3gspTmYOC4fV5ZxDWgx/DLZlki/mGohLt7nZDSx455mj?=
 =?iso-8859-1?Q?zAqxkXAjvxpdaX0z9E5nLjedWl1z8Fl4D6KgB/a/wxqF1bVvp0R9fRjjuO?=
 =?iso-8859-1?Q?OwhXqdRPVM54XOGOpQvCLdEkvX80WNqKJvTgGEZRCXFNZRX1Gnv6Ki1wUu?=
 =?iso-8859-1?Q?JGhU7QsYZD4mrDXQD89z8mrHm6T/UQ0ROTRnaEcRe5qMBaigCJwD0RipZq?=
 =?iso-8859-1?Q?gkH6x/k7ADk49CBS2T2f70Cauu1f1A/6VrbwblXUFzCSsJMPbp81lnJaQH?=
 =?iso-8859-1?Q?ecoml9Jo8pptXolYmmmx1Gzi2HtYAqFB3z1C/jVilO1ES7PJ6BOt/m/mq5?=
 =?iso-8859-1?Q?rLOGg15PxAsB/p0DlzOfcA/ypQuHjXkMf/pMDXv0eLAFgo1iIzMLf1CG0/?=
 =?iso-8859-1?Q?6wXUkzzqvT4Q02BlPhU29LOfSK8oxCCLdp4unPo9fwHStY3eGCm3DDovPg?=
 =?iso-8859-1?Q?U6OJdU0aG4EKQ8UzzaMQe4HQTx8BHElxlQW8C0HI43n+doG5tPBC0UdyiE?=
 =?iso-8859-1?Q?umM8x8t7KcCXucZKNW0bP30skhsNFJ1ywGlJlU0Nlx/8M5YWM2aFNjWy7r?=
 =?iso-8859-1?Q?gLFaoV0/etE4iXG6k652HHgKi+kHqlqsS0nFQvRNeLjE5tcKb8RHQqtMUB?=
 =?iso-8859-1?Q?CJWW4EB7SGlvZ9euyOuvX/KRIgV6Xqf7YBO+w+X52j/Cx1CfUcYbbs1dFH?=
 =?iso-8859-1?Q?QkhamqR7VEivx0xA2OPNvvsj+79kSrmWijOFGtHUycLlXyJ19v5BB+9Mu0?=
 =?iso-8859-1?Q?rIi2XULxlyWWDCWbSfjA+D41m+6scMqLugeD3qv81qwCYtKnhAjaoGuuhk?=
 =?iso-8859-1?Q?CgPcZ0v7qdL97AHe6/3OI1AJwhdriU0u9hET0Xe6UxEQLpamPLWqCLFhAt?=
 =?iso-8859-1?Q?6SyU7WfURJJxuUsGprwFbe/4IWwjlqSTlP1m6aclv/CvGFQ318l+W4Hekq?=
 =?iso-8859-1?Q?gXtFb3Aw24pMQdfi++UwLr+wDHIp+yuof6VOKvWlVzzlDNwjmApmBP/ypz?=
 =?iso-8859-1?Q?HvdO/4PXAgNSfoE9tJZ1O14lWBMlWf6VDG5a5PGZuDEOLt390hRMXzYJZB?=
 =?iso-8859-1?Q?5jQzQus8eyENcLC8GEFvu1nWdqH1vBiMZOYp3U1VHCdNn591s+k2nHUT22?=
 =?iso-8859-1?Q?es24/4aTf8vcEGhlIhHrkMUfuhdhnQKK7yyrFGWSd+1As+fb+j1zghuENO?=
 =?iso-8859-1?Q?jQR26lwIpfAz8R5TM2j3lpNyS8Kwcp9VM8+rJmhoRfzpmQtgVbvjiMqQwR?=
 =?iso-8859-1?Q?iHJXN1srYSnXPJFCnPK89IorzGNEfVJlX9aOp9XLCqwtj2PIWtSWROgvwa?=
 =?iso-8859-1?Q?xT/aEwzQdtBXzwLXVjmwrQGUGbSDn3sIQpiMBULrEXqjjFleG8HzKLCEXL?=
 =?iso-8859-1?Q?xCaCdHUshv/XPLTEp6YDnbe8JnxmxzcyfBW/HV0cZgeT7YB8xyW6XaLxld?=
 =?iso-8859-1?Q?9lL/aGoLXpm1/NN/uPzdeYig4lMta8ZbHyb9CbHWZn9w4eqNFeAeZwpCF+?=
 =?iso-8859-1?Q?zRLd8SutX92H5LvkM4wgQCm2PtzmXRycAQ6VznBUFHeZVl9ix7eeoHPkXV?=
 =?iso-8859-1?Q?DxZMPwSkEVcFMDaqp5J1tiujC5lG4Wc=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 971da0c4-8372-455f-daec-08deb278c94b
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2026 11:54:57.2987
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Em5Z4175Po9cYd5nT6hZFmLNrY35+Hjjdlm+jA01GOrlA6k4hZLo9CEePTu2VNKqG0ccAN8uivs+rnscxIMGLA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB10041
X-purgate-ID: tlsNG-d25034/1778846099-F5983CF5-4968DD1C/0/0
X-purgate-type: clean
X-purgate-size: 24276

With CPU hotplug sysctls implemented on Arm it becomes useful to have a
tool for calling them.

According to the commit history it seems that putting hptool under
config MIGRATE was a measure to fix IA64 build. As IA64 is no longer
supported it can now be brought back. So build it unconditionally.

Operations specific to x86 architecture are moved into a separate file and =
only built on x86.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v7->v8:
* move x86 specific function into a separate file

v6->v7:
* no changes

v5->v6:
* don't change order in Makefile

v4->v5:
* make hptool always build

v3->v4:
* no changes

v2->v3:
* no changes

v1->v2:
* switch to configure from legacy config
---
 tools/misc/Makefile         |   8 +-
 tools/misc/xen-hptool-x86.c | 277 ++++++++++++++++++++++++++++++++++
 tools/misc/xen-hptool.c     | 293 ++----------------------------------
 tools/misc/xen-hptool.h     |  14 ++
 4 files changed, 311 insertions(+), 281 deletions(-)
 create mode 100644 tools/misc/xen-hptool-x86.c
 create mode 100644 tools/misc/xen-hptool.h

diff --git a/tools/misc/Makefile b/tools/misc/Makefile
index 6ee783f43e..645819e455 100644
--- a/tools/misc/Makefile
+++ b/tools/misc/Makefile
@@ -16,7 +16,7 @@ INSTALL_BIN                    +=3D xencov_split
 INSTALL_BIN +=3D $(INSTALL_BIN-y)
=20
 # Everything to be installed in regular sbin/
-INSTALL_SBIN-$(CONFIG_MIGRATE) +=3D xen-hptool
+INSTALL_SBIN                   +=3D xen-hptool
 INSTALL_SBIN-$(CONFIG_X86)     +=3D xen-hvmcrash
 INSTALL_SBIN-$(CONFIG_X86)     +=3D xen-hvmctx
 INSTALL_SBIN-$(CONFIG_X86)     +=3D xen-lowmemd
@@ -104,8 +104,10 @@ xenhypfs: xenhypfs.o
 xenlockprof: xenlockprof.o
 	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
=20
-xen-hptool: xen-hptool.o
-	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenevtchn) $(LDLIBS_libxenctrl) $(L=
DLIBS_libxenguest) $(LDLIBS_libxenstore) $(APPEND_LDFLAGS)
+HPTOOL_OBJS-$(CONFIG_MIGRATE) +=3D xen-hptool-x86.o
+
+xen-hptool: xen-hptool.o $(HPTOOL_OBJS-y)
+	$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS_libxenevtchn) $(LDLIBS_libxenctrl) $(L=
DLIBS_libxenguest) $(LDLIBS_libxenstore) $(APPEND_LDFLAGS)
=20
 xenhypfs.o: CFLAGS +=3D $(CFLAGS_libxenhypfs)
=20
diff --git a/tools/misc/xen-hptool-x86.c b/tools/misc/xen-hptool-x86.c
new file mode 100644
index 0000000000..9336f30f1f
--- /dev/null
+++ b/tools/misc/xen-hptool-x86.c
@@ -0,0 +1,277 @@
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <xenevtchn.h>
+#include <xenctrl.h>
+#include <xenguest.h>
+#include <xenstore.h>
+#include "xen-hptool.h"
+
+int hp_mem_online_func(int argc, char *argv[], xc_interface *xch)
+{
+    uint32_t status;
+    int ret;
+    unsigned long mfn;
+
+    if (argc !=3D 1)
+    {
+        show_help();
+        return -1;
+    }
+
+    sscanf(argv[0], "%lx", &mfn);
+    printf("Prepare to online MEMORY mfn %lx\n", mfn);
+
+    ret =3D xc_mark_page_online(xch, mfn, mfn, &status);
+
+    if (ret < 0)
+        fprintf(stderr, "Onlining page mfn %lx failed, error %x\n", mfn, e=
rrno);
+    else if (status & (PG_ONLINE_FAILED |PG_ONLINE_BROKEN)) {
+        fprintf(stderr, "Onlining page mfn %lx is broken, "
+                        "Memory online failed\n", mfn);
+        ret =3D -1;
+    }
+    else if (status & PG_ONLINE_ONLINED)
+        printf("Memory mfn %lx onlined successfully\n", mfn);
+    else
+        printf("Memory is already onlined!\n");
+
+    return ret;
+}
+
+int hp_mem_query_func(int argc, char *argv[], xc_interface *xch)
+{
+    uint32_t status;
+    int ret;
+    unsigned long mfn;
+
+    if (argc !=3D 1)
+    {
+        show_help();
+        return -1;
+    }
+
+    sscanf(argv[0], "%lx", &mfn);
+    printf("Querying MEMORY mfn %lx status\n", mfn);
+    ret =3D xc_query_page_offline_status(xch, mfn, mfn, &status);
+
+    if (ret < 0)
+        fprintf(stderr, "Querying page mfn %lx failed, error %x\n", mfn, e=
rrno);
+    else
+    {
+        printf("Memory Status %x: [", status);
+        if ( status & PG_OFFLINE_STATUS_OFFLINE_PENDING)
+            printf(" PAGE_OFFLINE_PENDING ");
+        if ( status & PG_OFFLINE_STATUS_BROKEN )
+            printf(" PAGE_BROKEND  ");
+        if ( status & PG_OFFLINE_STATUS_OFFLINED )
+            printf(" PAGE_OFFLINED ");
+        else
+            printf(" PAGE_ONLINED ");
+        printf("]\n");
+    }
+
+    return ret;
+}
+
+static int suspend_guest(xc_interface *xch, xenevtchn_handle *xce, int dom=
id,
+                         int *evtchn, int *lockfd)
+{
+    int port, rc, suspend_evtchn =3D -1;
+
+    *lockfd =3D -1;
+
+    if (!evtchn)
+        return -1;
+
+    port =3D xs_suspend_evtchn_port(domid);
+    if (port < 0)
+    {
+        fprintf(stderr, "DOM%d: No suspend port, try live migration\n", do=
mid);
+        goto failed;
+    }
+    suspend_evtchn =3D xc_suspend_evtchn_init_exclusive(xch, xce, domid,
+                                                      port, lockfd);
+    if (suspend_evtchn < 0)
+    {
+        fprintf(stderr, "Suspend evtchn initialization failed\n");
+        goto failed;
+    }
+    *evtchn =3D suspend_evtchn;
+
+    rc =3D xenevtchn_notify(xce, suspend_evtchn);
+    if (rc < 0)
+    {
+        fprintf(stderr, "Failed to notify suspend channel: errno %d\n", rc=
);
+        goto failed;
+    }
+    if (xc_await_suspend(xch, xce, suspend_evtchn) < 0)
+    {
+        fprintf(stderr, "Suspend Failed\n");
+        goto failed;
+    }
+    return 0;
+
+failed:
+    if (suspend_evtchn !=3D -1)
+        xc_suspend_evtchn_release(xch, xce, domid,
+                                  suspend_evtchn, lockfd);
+
+    return -1;
+}
+
+int hp_mem_offline_func(int argc, char *argv[], xc_interface *xch)
+{
+    uint32_t status, domid;
+    int ret;
+    unsigned long mfn;
+
+    if (argc !=3D 1)
+    {
+        show_help();
+        return -1;
+    }
+
+    sscanf(argv[0], "%lx", &mfn);
+    printf("Prepare to offline MEMORY mfn %lx\n", mfn);
+    ret =3D xc_mark_page_offline(xch, mfn, mfn, &status);
+    if (ret < 0) {
+        fprintf(stderr, "Offlining page mfn %lx failed, error %x\n", mfn, =
errno);
+        if (status & (PG_OFFLINE_XENPAGE | PG_OFFLINE_FAILED))
+            fprintf(stderr, "XEN_PAGE is not permitted be offlined\n");
+        else if (status & (PG_OFFLINE_FAILED | PG_OFFLINE_NOT_CONV_RAM))
+            fprintf(stderr, "RESERVED RAM is not permitted to be offlined\=
n");
+    }
+    else
+    {
+        switch(status & PG_OFFLINE_STATUS_MASK)
+        {
+            case PG_OFFLINE_OFFLINED:
+            {
+                printf("Memory mfn %lx offlined successfully, current stat=
e is"
+                       " [PG_OFFLINE_OFFLINED]\n", mfn);
+                if (status & PG_OFFLINE_BROKEN)
+                    printf("And this offlined PAGE is already marked broke=
n"
+                        " before!\n");
+                break;
+            }
+            case PG_OFFLINE_FAILED:
+            {
+                fprintf(stderr, "Memory mfn %lx offline failed\n", mfn);
+                if ( status & PG_OFFLINE_ANONYMOUS)
+                    fprintf(stderr, "the memory is an anonymous page!\n");
+                ret =3D -1;
+                break;
+            }
+            case PG_OFFLINE_PENDING:
+            {
+                if (status & PG_OFFLINE_XENPAGE) {
+                    ret =3D -1;
+                    fprintf(stderr, "Memory mfn %lx offlined succssefully,=
"
+                            "this page is xen page, current state is"
+                            " [PG_OFFLINE_PENDING, PG_OFFLINE_XENPAGE]\n",=
 mfn);
+                }
+                else if (status & PG_OFFLINE_OWNED)
+                {
+                    int result, suspend_evtchn =3D -1, suspend_lockfd =3D =
-1;
+                    xenevtchn_handle *xce;
+                    xce =3D xenevtchn_open(NULL, 0);
+
+                    if (xce =3D=3D NULL)
+                    {
+                        fprintf(stderr, "When exchange page, fail"
+                                " to open evtchn\n");
+                        return -1;
+                    }
+
+                    domid =3D status >> PG_OFFLINE_OWNER_SHIFT;
+                    if (suspend_guest(xch, xce, domid,
+                                      &suspend_evtchn, &suspend_lockfd))
+                    {
+                        fprintf(stderr, "Failed to suspend guest %d for"
+                                " mfn %lx\n", domid, mfn);
+                        xenevtchn_close(xce);
+                        return -1;
+                    }
+
+                    result =3D xc_exchange_page(xch, domid, mfn);
+
+                    /* Exchange page successfully */
+                    if (result =3D=3D 0)
+                        printf("Memory mfn %lx offlined successfully, this=
 "
+                                "page is DOM%d page and being swapped "
+                                "successfully, current state is "
+                                "[PG_OFFLINE_OFFLINED, PG_OFFLINE_OWNED]\n=
",
+                                mfn, domid);
+                    else {
+                        ret =3D -1;
+                        fprintf(stderr, "Memory mfn %lx offlined successfu=
lly"
+                                " , this page is DOM%d page yet failed to =
be "
+                                "exchanged. current state is "
+                                "[PG_OFFLINE_PENDING, PG_OFFLINE_OWNED]\n"=
,
+                                mfn, domid);
+                    }
+                    xc_domain_resume(xch, domid, 1);
+                    xc_suspend_evtchn_release(xch, xce, domid,
+                                              suspend_evtchn, &suspend_loc=
kfd);
+                    xenevtchn_close(xce);
+                }
+                break;
+            }
+        }//end of switch
+    }//end of if
+
+    return ret;
+}
+
+int main_smt_enable(int argc, char *argv[], xc_interface *xch)
+{
+    int ret;
+
+    if ( argc )
+    {
+        show_help();
+        return -1;
+    }
+
+    for ( ;; )
+    {
+        ret =3D xc_smt_enable(xch);
+        if ( (ret >=3D 0) || (errno !=3D EBUSY) )
+            break;
+    }
+
+    if ( ret < 0 )
+        fprintf(stderr, "Unable to enable SMT: errno %d, %s\n",
+                errno, strerror(errno));
+    else
+        printf("Enabled SMT\n");
+
+    return ret;
+}
+
+int main_smt_disable(int argc, char *argv[], xc_interface *xch)
+{
+    int ret;
+
+    if ( argc )
+    {
+        show_help();
+        return -1;
+    }
+
+    for ( ;; )
+    {
+        ret =3D xc_smt_disable(xch);
+        if ( (ret >=3D 0) || (errno !=3D EBUSY) )
+            break;
+    }
+
+    if ( ret < 0 )
+        fprintf(stderr, "Unable to disable SMT: errno %d, %s\n",
+                errno, strerror(errno));
+    else
+        printf("Disabled SMT\n");
+
+    return ret;
+}
diff --git a/tools/misc/xen-hptool.c b/tools/misc/xen-hptool.c
index 590810b6eb..7b886e2304 100644
--- a/tools/misc/xen-hptool.c
+++ b/tools/misc/xen-hptool.c
@@ -6,8 +6,8 @@
 #include <xenguest.h>
 #include <xenstore.h>
 #include <xen-tools/common-macros.h>
+#include "xen-hptool.h"
=20
-static xc_interface *xch;
=20
 void show_help(void)
 {
@@ -18,239 +18,25 @@ void show_help(void)
             "  help                     display this help\n"
             "  cpu-online    <cpuid>    online CPU <cpuid>\n"
             "  cpu-offline   <cpuid>    offline CPU <cpuid>\n"
+#if defined(__i386__) || defined(__x86_64__)
             "  mem-online    <mfn>      online MEMORY <mfn>\n"
             "  mem-offline   <mfn>      offline MEMORY <mfn>\n"
             "  mem-status    <mfn>      query Memory status<mfn>\n"
             "  smt-enable               onlines all SMT threads\n"
             "  smt-disable              offlines all SMT threads\n"
+#endif
            );
 }
=20
 /* wrapper function */
-static int help_func(int argc, char *argv[])
+static int help_func(int argc, char *argv[], xc_interface *xch)
 {
     show_help();
     return 0;
 }
=20
-static int hp_mem_online_func(int argc, char *argv[])
-{
-    uint32_t status;
-    int ret;
-    unsigned long mfn;
-
-    if (argc !=3D 1)
-    {
-        show_help();
-        return -1;
-    }
-
-    sscanf(argv[0], "%lx", &mfn);
-    printf("Prepare to online MEMORY mfn %lx\n", mfn);
-
-    ret =3D xc_mark_page_online(xch, mfn, mfn, &status);
-
-    if (ret < 0)
-        fprintf(stderr, "Onlining page mfn %lx failed, error %x\n", mfn, e=
rrno);
-    else if (status & (PG_ONLINE_FAILED |PG_ONLINE_BROKEN)) {
-        fprintf(stderr, "Onlining page mfn %lx is broken, "
-                        "Memory online failed\n", mfn);
-        ret =3D -1;
-    }
-    else if (status & PG_ONLINE_ONLINED)
-        printf("Memory mfn %lx onlined successfully\n", mfn);
-    else
-        printf("Memory is already onlined!\n");
-
-    return ret;
-}
-
-static int hp_mem_query_func(int argc, char *argv[])
-{
-    uint32_t status;
-    int ret;
-    unsigned long mfn;
-
-    if (argc !=3D 1)
-    {
-        show_help();
-        return -1;
-    }
-
-    sscanf(argv[0], "%lx", &mfn);
-    printf("Querying MEMORY mfn %lx status\n", mfn);
-    ret =3D xc_query_page_offline_status(xch, mfn, mfn, &status);
-
-    if (ret < 0)
-        fprintf(stderr, "Querying page mfn %lx failed, error %x\n", mfn, e=
rrno);
-    else
-    {
-        printf("Memory Status %x: [", status);
-        if ( status & PG_OFFLINE_STATUS_OFFLINE_PENDING)
-            printf(" PAGE_OFFLINE_PENDING ");
-        if ( status & PG_OFFLINE_STATUS_BROKEN )
-            printf(" PAGE_BROKEND  ");
-        if ( status & PG_OFFLINE_STATUS_OFFLINED )
-            printf(" PAGE_OFFLINED ");
-        else
-            printf(" PAGE_ONLINED ");
-        printf("]\n");
-    }
-
-    return ret;
-}
-
-static int suspend_guest(xc_interface *xch, xenevtchn_handle *xce, int dom=
id,
-                         int *evtchn, int *lockfd)
-{
-    int port, rc, suspend_evtchn =3D -1;
-
-    *lockfd =3D -1;
-
-    if (!evtchn)
-        return -1;
-
-    port =3D xs_suspend_evtchn_port(domid);
-    if (port < 0)
-    {
-        fprintf(stderr, "DOM%d: No suspend port, try live migration\n", do=
mid);
-        goto failed;
-    }
-    suspend_evtchn =3D xc_suspend_evtchn_init_exclusive(xch, xce, domid,
-                                                      port, lockfd);
-    if (suspend_evtchn < 0)
-    {
-        fprintf(stderr, "Suspend evtchn initialization failed\n");
-        goto failed;
-    }
-    *evtchn =3D suspend_evtchn;
-
-    rc =3D xenevtchn_notify(xce, suspend_evtchn);
-    if (rc < 0)
-    {
-        fprintf(stderr, "Failed to notify suspend channel: errno %d\n", rc=
);
-        goto failed;
-    }
-    if (xc_await_suspend(xch, xce, suspend_evtchn) < 0)
-    {
-        fprintf(stderr, "Suspend Failed\n");
-        goto failed;
-    }
-    return 0;
-
-failed:
-    if (suspend_evtchn !=3D -1)
-        xc_suspend_evtchn_release(xch, xce, domid,
-                                  suspend_evtchn, lockfd);
-
-    return -1;
-}
-
-static int hp_mem_offline_func(int argc, char *argv[])
-{
-    uint32_t status, domid;
-    int ret;
-    unsigned long mfn;
-
-    if (argc !=3D 1)
-    {
-        show_help();
-        return -1;
-    }
-
-    sscanf(argv[0], "%lx", &mfn);
-    printf("Prepare to offline MEMORY mfn %lx\n", mfn);
-    ret =3D xc_mark_page_offline(xch, mfn, mfn, &status);
-    if (ret < 0) {
-        fprintf(stderr, "Offlining page mfn %lx failed, error %x\n", mfn, =
errno);
-        if (status & (PG_OFFLINE_XENPAGE | PG_OFFLINE_FAILED))
-            fprintf(stderr, "XEN_PAGE is not permitted be offlined\n");
-        else if (status & (PG_OFFLINE_FAILED | PG_OFFLINE_NOT_CONV_RAM))
-            fprintf(stderr, "RESERVED RAM is not permitted to be offlined\=
n");
-    }
-    else
-    {
-        switch(status & PG_OFFLINE_STATUS_MASK)
-        {
-            case PG_OFFLINE_OFFLINED:
-            {
-                printf("Memory mfn %lx offlined successfully, current stat=
e is"
-                       " [PG_OFFLINE_OFFLINED]\n", mfn);
-                if (status & PG_OFFLINE_BROKEN)
-                    printf("And this offlined PAGE is already marked broke=
n"
-                        " before!\n");
-                break;
-            }
-            case PG_OFFLINE_FAILED:
-            {
-                fprintf(stderr, "Memory mfn %lx offline failed\n", mfn);
-                if ( status & PG_OFFLINE_ANONYMOUS)
-                    fprintf(stderr, "the memory is an anonymous page!\n");
-                ret =3D -1;
-                break;
-            }
-            case PG_OFFLINE_PENDING:
-            {
-                if (status & PG_OFFLINE_XENPAGE) {
-                    ret =3D -1;
-                    fprintf(stderr, "Memory mfn %lx offlined succssefully,=
"
-                            "this page is xen page, current state is"
-                            " [PG_OFFLINE_PENDING, PG_OFFLINE_XENPAGE]\n",=
 mfn);
-                }
-                else if (status & PG_OFFLINE_OWNED)
-                {
-                    int result, suspend_evtchn =3D -1, suspend_lockfd =3D =
-1;
-                    xenevtchn_handle *xce;
-                    xce =3D xenevtchn_open(NULL, 0);
-
-                    if (xce =3D=3D NULL)
-                    {
-                        fprintf(stderr, "When exchange page, fail"
-                                " to open evtchn\n");
-                        return -1;
-                    }
-
-                    domid =3D status >> PG_OFFLINE_OWNER_SHIFT;
-                    if (suspend_guest(xch, xce, domid,
-                                      &suspend_evtchn, &suspend_lockfd))
-                    {
-                        fprintf(stderr, "Failed to suspend guest %d for"
-                                " mfn %lx\n", domid, mfn);
-                        xenevtchn_close(xce);
-                        return -1;
-                    }
-
-                    result =3D xc_exchange_page(xch, domid, mfn);
-
-                    /* Exchange page successfully */
-                    if (result =3D=3D 0)
-                        printf("Memory mfn %lx offlined successfully, this=
 "
-                                "page is DOM%d page and being swapped "
-                                "successfully, current state is "
-                                "[PG_OFFLINE_OFFLINED, PG_OFFLINE_OWNED]\n=
",
-                                mfn, domid);
-                    else {
-                        ret =3D -1;
-                        fprintf(stderr, "Memory mfn %lx offlined successfu=
lly"
-                                " , this page is DOM%d page yet failed to =
be "
-                                "exchanged. current state is "
-                                "[PG_OFFLINE_PENDING, PG_OFFLINE_OWNED]\n"=
,
-                                mfn, domid);
-                    }
-                    xc_domain_resume(xch, domid, 1);
-                    xc_suspend_evtchn_release(xch, xce, domid,
-                                              suspend_evtchn, &suspend_loc=
kfd);
-                    xenevtchn_close(xce);
-                }
-                break;
-            }
-        }//end of switch
-    }//end of if
-
-    return ret;
-}
-
-static int exec_cpu_hp_fn(int (*hp_fn)(xc_interface *, int), int cpu)
+static int exec_cpu_hp_fn(int (*hp_fn)(xc_interface *, int), int cpu,
+                          xc_interface *xch)
 {
     int ret;
=20
@@ -265,7 +51,7 @@ static int exec_cpu_hp_fn(int (*hp_fn)(xc_interface *, i=
nt), int cpu)
     return ret;
 }
=20
-static int hp_cpu_online_func(int argc, char *argv[])
+static int hp_cpu_online_func(int argc, char *argv[], xc_interface *xch)
 {
     int cpu, ret;
=20
@@ -277,7 +63,7 @@ static int hp_cpu_online_func(int argc, char *argv[])
=20
     cpu =3D atoi(argv[0]);
     printf("Prepare to online CPU %d\n", cpu);
-    ret =3D exec_cpu_hp_fn(xc_cpu_online, cpu);
+    ret =3D exec_cpu_hp_fn(xc_cpu_online, cpu, xch);
     if (ret < 0)
         fprintf(stderr, "CPU %d online failed (error %d: %s)\n",
                 cpu, errno, strerror(errno));
@@ -287,7 +73,7 @@ static int hp_cpu_online_func(int argc, char *argv[])
     return ret;
=20
 }
-static int hp_cpu_offline_func(int argc, char *argv[])
+static int hp_cpu_offline_func(int argc, char *argv[], xc_interface *xch)
 {
     int cpu, ret;
=20
@@ -298,7 +84,7 @@ static int hp_cpu_offline_func(int argc, char *argv[])
     }
     cpu =3D atoi(argv[0]);
     printf("Prepare to offline CPU %d\n", cpu);
-    ret =3D exec_cpu_hp_fn(xc_cpu_offline, cpu);
+    ret =3D exec_cpu_hp_fn(xc_cpu_offline, cpu, xch);
     if (ret < 0)
         fprintf(stderr, "CPU %d offline failed (error %d: %s)\n",
                 cpu, errno, strerror(errno));
@@ -308,76 +94,27 @@ static int hp_cpu_offline_func(int argc, char *argv[])
     return ret;
 }
=20
-static int main_smt_enable(int argc, char *argv[])
-{
-    int ret;
-
-    if ( argc )
-    {
-        show_help();
-        return -1;
-    }
-
-    for ( ;; )
-    {
-        ret =3D xc_smt_enable(xch);
-        if ( (ret >=3D 0) || (errno !=3D EBUSY) )
-            break;
-    }
-
-    if ( ret < 0 )
-        fprintf(stderr, "Unable to enable SMT: errno %d, %s\n",
-                errno, strerror(errno));
-    else
-        printf("Enabled SMT\n");
-
-    return ret;
-}
-
-static int main_smt_disable(int argc, char *argv[])
-{
-    int ret;
-
-    if ( argc )
-    {
-        show_help();
-        return -1;
-    }
-
-    for ( ;; )
-    {
-        ret =3D xc_smt_disable(xch);
-        if ( (ret >=3D 0) || (errno !=3D EBUSY) )
-            break;
-    }
-
-    if ( ret < 0 )
-        fprintf(stderr, "Unable to disable SMT: errno %d, %s\n",
-                errno, strerror(errno));
-    else
-        printf("Disabled SMT\n");
-
-    return ret;
-}
-
 struct {
     const char *name;
-    int (*function)(int argc, char *argv[]);
+    int (*function)(int argc, char *argv[], xc_interface *xch);
 } main_options[] =3D {
     { "help", help_func },
     { "cpu-online", hp_cpu_online_func },
     { "cpu-offline", hp_cpu_offline_func },
+#if defined(__i386__) || defined(__x86_64__)
     { "mem-status", hp_mem_query_func},
     { "mem-online", hp_mem_online_func},
     { "mem-offline", hp_mem_offline_func},
     { "smt-enable", main_smt_enable },
     { "smt-disable", main_smt_disable },
+#endif
 };
=20
=20
 int main(int argc, char *argv[])
 {
     int i, ret;
+    xc_interface *xch;
=20
     if (argc < 2)
     {
@@ -402,7 +139,7 @@ int main(int argc, char *argv[])
         return 1;
     }
=20
-    ret =3D main_options[i].function(argc -2, argv + 2);
+    ret =3D main_options[i].function(argc -2, argv + 2, xch);
=20
     xc_interface_close(xch);
=20
diff --git a/tools/misc/xen-hptool.h b/tools/misc/xen-hptool.h
new file mode 100644
index 0000000000..2efa7c8177
--- /dev/null
+++ b/tools/misc/xen-hptool.h
@@ -0,0 +1,14 @@
+#ifndef __XEN_HPTOOL_H__
+#define __XEN_HPTOOL_H__
+
+#if defined(__i386__) || defined(__x86_64__)
+int hp_mem_online_func(int argc, char *argv[], xc_interface *xch);
+int hp_mem_query_func(int argc, char *argv[], xc_interface *xch);
+int hp_mem_offline_func(int argc, char *argv[], xc_interface *xch);
+int main_smt_enable(int argc, char *argv[], xc_interface *xch);
+int main_smt_disable(int argc, char *argv[], xc_interface *xch);
+#endif
+
+void show_help(void);
+
+#endif /* __XEN_HPTOOL_H__ */
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Fri May 15 11:55:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 11:55:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309894.1580943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr8D-00063w-10; Fri, 15 May 2026 11:55:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309894.1580943; Fri, 15 May 2026 11:55:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNr8C-00062H-Q0; Fri, 15 May 2026 11:55:04 +0000
Received: by outflank-mailman (input) for mailman id 1309894;
 Fri, 15 May 2026 11:55:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1wNr8A-0005iU-Sc
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 11:55:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNr8A-00Abfr-7u
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 13:55:02 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a070992-5cb7-0a2a0a5109dd-0a2a4506b864-10
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:55:02 +0200
Received: from [52.101.66.84]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a070995-7371-0a2a45060019-34654254c125-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 13:55:02 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAWPR03MB10041.eurprd03.prod.outlook.com
 (2603:10a6:102:359::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 11:55:00 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 11:55:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Xvd5ox8lCacXHvewJSoAkqfJvd6/dfeGcZTsYeEhVszfS/xITvLsQdY/PbeKg1S+81la/W96Q+KVUcL7WiDStiiO4w566917/EhifZ596D5+FA3GQhj35SRCabofgl9XMag0Lt+tI0H3BxBjjGXR137JS8aMOyK9vLQqKX5Cb1SIhsk5Z0ZqXQe1riUix2RGSdxqU72n1FmIaJ500HQFnYNeNqkDcGRyDjB+uVY7AGqKuaKkxqKa4x/7qU2uXo2mtIVOq+sQrs/VfJcXOzRRuDi1VVnbpzI/4FHdPL+37YfvKAJDkYpLVmXA4OerL2SwXa/D6TW+fvVkx5IGfvzqcg==
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=ZGvS3Z0LQ8kTmqlPZB0z2Geh8xllBaRZzc/PcFgMUJc=;
 b=Bhyil7I3BUXxvve3EkzPzWxfXrtSBX9ztHIpx+loUoGro8lIT2e0w6TA/tbzJumQMRWwNALPksJkXzOBdherIrrDyuOgCLZT232ihMLPVxDDKuIEaNLm/Z/hv6WlV5Wta9BmvxOL0LfzYfG/cEb+pUfmvNUYG3n9DOcwHI7DbhFT74bYhEITZ4wXwsAiS3HxjzhxqGlcV3rrOBSUisLsiPrRdDEAcQ4waogW9rpM+rqb6L5M0Gyq9TCNuqoYv8urYjd8oXQO8PSWAc48PsoBYIYaE9J/QJp7If0pMFY6WNZjwilk8TPDcVWlhXitHiQ9cRN3tdtR06Kv82NbdKMqRQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZGvS3Z0LQ8kTmqlPZB0z2Geh8xllBaRZzc/PcFgMUJc=;
 b=lo6fnlPY5/8817h88VZIgEVD6TaiOgCrV+UPog2Zz2KEUsKmuMli9RUkTdyKVTcGSRRUfsPnEK3/P8x4YmtVF/pxdQ6oxYwHZ/GqnVSEpegBiU6eTd+iJYxkMXy0TOfEyJZZq9wp9nIRCC8/+5tsBIsNA1biv1kkpop8jA1TnTXEj69YaMx1N2T1Hs9XcE9aj4AXxw2de+iyEURBRp1U0r8D6JH8/4BaaHCwqVdjOep/sUXbZGuFYOOVM2vzEzjP9nB9VZmnp1pjzTG+vTACnytftkWP0eEChFxy80il8TUyB05Lpqi6Jr4l7nltgG69ViXKvTW7dInpIfEEB674yg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v8 6/6] docs: Document CPU hotplug
Thread-Topic: [PATCH v8 6/6] docs: Document CPU hotplug
Thread-Index: AQHc5GGoBdOGHWvGVUGtOnMe3K2aGw==
Date: Fri, 15 May 2026 11:55:00 +0000
Message-ID:
 <e6e99b166f17a463f0e0fe46c2a0dfa37af3bf06.1778845596.git.mykyta_poturai@epam.com>
References: <cover.1778845596.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1778845596.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PAWPR03MB10041:EE_
x-ms-office365-filtering-correlation-id: 879b4254-ce83-4198-b073-08deb278cad0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|11063799003|22082099003|38070700021|56012099003|18002099003;
x-microsoft-antispam-message-info:
 4+OiTyNXc2VaawV7LA0U9P8tToYSvZ6JyXo28gMA58KlW+QHmJkvaL2Gs9uVT8/YHjmuinskbLxIcED6yKz047vSQYlWl7Ut95xvMFvUG+m6PiZ7Vi6QtQVJV+Y0XU7+056tr/9tWqm4Jfj/FDJBxNAMeEqXMYS4Q6c8b+iaO0WbCJgp/O8QsafB484q9nM8p05wtROkd5TJY/EnKIpvpjztvBoxuVUKqxmvjUlBbmiETSele34vRteGYirCDIk9kb+3G32HSmsKDReL2nAiHANa+Nw7fo7v3NO5GRikI8VW2DYsZTLxAbk1uIxGTlS49mfQVjInxDjF/2+mCaU+iwkLkdR2E+5mrYfdEJzc7n+G/S1IhUHOQ34LKrlyX/GxUF6+y8kH33royP1OsFy+67l+EhqI0JLmdZqTNh7uC4HDTEQrLNJ0/vcjBJWkSooN3SHyykLLmzGuVv7buPOWgw+q/uJWGvAZ+Ek60HvlytTxmt8gB0hbaE9vqtDHIN2i+bR5lubQa9s/5Jd6tKUJDOt2hh17TNmT15D7LwPQidaYJzT1c8IQCOEPAw5n/GD1XlalDCLazZ/9yGP0GNl6KdU9uQCdQRrufH5UwRRkATFH8J0Wl6kAhU/U0/7DY9bGO7CUDgCWI5zXLXOFcODEm6Lo2GkoeGN8J0exwhZxa1fNk/LJsxtHign89YcteMzqY+dJ3H8r65FujAp07eXkYeMNuYTP0kvF7HlOXNGbSbztyCnCiSY/JiOzuYIwXwCc
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(11063799003)(22082099003)(38070700021)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?/E76yz3O02+JEVmc4dz7WOdng03Rd+6Mkt63L0nSES7R5psYbX2TVX/HU7?=
 =?iso-8859-1?Q?wZLcbmk6vXI1igiGl9iN803ErJKilQlS+fcHzvzRw4MZXS8fnpKk3P4JSP?=
 =?iso-8859-1?Q?NxoeXalGpuiMzBdc224SI0wTj6On7PO10j6ahCoJ/9pVKch7HVhsvEAMH+?=
 =?iso-8859-1?Q?usywcBDjrYyJy+80SyeuzP2k+wBvIPtLRw+QJB89MZVaQIgTnY7ExUrMec?=
 =?iso-8859-1?Q?mou9Vkbjw0mZo4dAue0xFqOvfT7wF7V84WKu+8ybl0zlslZtO6LXEBdGUx?=
 =?iso-8859-1?Q?qIjn7kB+JJJHINC/iMeYr4IZacGjHHF+Lc4mKuBec9cqprsqXIgKwkmG07?=
 =?iso-8859-1?Q?JfAjPExuosafGWqKgLdj040nA8a3Y7N6hkRWIDGUK0MyD5MmkUrSESSQo7?=
 =?iso-8859-1?Q?jMOLpKjU4+Bbv5V2gcY420xsrNEM/fropg/OEvCFGKahvYrVLYfCBAiVRc?=
 =?iso-8859-1?Q?sHp1Iv8ZLLWTBudIKxQ1XpMRjERhpeEyX1rYudWJrUCnYwUT2hNLNzKmFP?=
 =?iso-8859-1?Q?+K2zGb4U3ZysFOEeBvj1YyaS8rNsQVD756HNRk6FXE/yRRuLF0i+CR6Hl+?=
 =?iso-8859-1?Q?n1MxMjc1RjnAG82RCQLRlZfa5/rTkCc4+hHA60ps1Pbq6fAvtJ1y37+sAd?=
 =?iso-8859-1?Q?HEgPS/NHlkxhTFlO4bTCammvWs7u2tmdnq8MsODjp1uift3EpaeG/aZlsp?=
 =?iso-8859-1?Q?e+rumSIdIGzQE+zETEgsipWm9/pIaGV1BHymLubX6gU3rHNGKTjHxX4KZE?=
 =?iso-8859-1?Q?b9bc4mpt9C++pxDy9/GdtFwiWSAdEJvBT2EalraMTInmDX4s62lqXT3RWs?=
 =?iso-8859-1?Q?K5UlBVeO1cacC4XBVcR/HgLDjGXUeqre/cPekpgduFyGK2PBhjMfe73qRW?=
 =?iso-8859-1?Q?V/Cx2yviCs1w87s2e9Tv4k3Ln/MNmuJ3LAZwwwNDol9rtuSbiZG+B2ztpk?=
 =?iso-8859-1?Q?snyAnGgvS22vsheUzQSJ56yi7q1rbo8V+8IiUW0KnZ9xUd8WkV3Ow6yLiv?=
 =?iso-8859-1?Q?ynlZa/Pf0Dl51YmQxbzwI9UxwbsG+SsZBfW30j8OjDeDBR0/1J1hQDOlju?=
 =?iso-8859-1?Q?3dfc7dGSwpLsNuSqmqoLYINDh4lNnackM4lK+Mm0n4lVo43rukd3nzaYcR?=
 =?iso-8859-1?Q?nfgOhM+xXKZ9EbqQYF4BO/n2vcaup8OEr2oAR/0IL0wFFBrKEB7NbkpB+5?=
 =?iso-8859-1?Q?IHRqKXHx/sy01BriQfRC2ryagPy/yZCB7MVgafQfF/+ygPe/pv2Q74myAl?=
 =?iso-8859-1?Q?TSRasmWFg0Opt6OyWz38WWahXrQqe9qqATXmZa3qRvQDUSFAiDMMtIBOEd?=
 =?iso-8859-1?Q?PbKIF0S8gVhINCPRVXc6w1Tsleydkl2huPdJmK/F9uJQOrcHUUT/1zoL3d?=
 =?iso-8859-1?Q?mz0oh/KXn3XQ78U5h/VAdZeDK6fq8xvm9ra94dbB0jNHgRUu+spEBuU3Ot?=
 =?iso-8859-1?Q?2OrDB9cLbclz7aw1CeNMqQ8A0/f0kl9UH29eGHEIz9jTPBhPL5OCp9AA94?=
 =?iso-8859-1?Q?XC5gboeGpTo6nbBqJF51OpNIIgETfxQpcU9Hy22OF2/nhW+unAuNeHKA8w?=
 =?iso-8859-1?Q?68U59lk3yfwN/6BqyrYojNq30cR7BAadmywvKseJ52SPDLDSTMoWF9R7w2?=
 =?iso-8859-1?Q?rPHSzwcTb/5oqvcLbVmCJp0tqKjkKJE6kjv+YakxHu+EQ0N2q8th2eekng?=
 =?iso-8859-1?Q?XovAMO5Wl8qr+DL3lE/alT4+7IPGslDdJVTrtN6KEU2PkOf4G6qd90gi7X?=
 =?iso-8859-1?Q?wXKdplEjGOJp2VzTC0/DVyibCzn6VH8rLIevZChV2i5beZmGh3GlKy1eUd?=
 =?iso-8859-1?Q?UqgLvJjWWu+8+kRExG/jfMGIpqxVfHY=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 879b4254-ce83-4198-b073-08deb278cad0
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2026 11:55:00.1201
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: I24eQVDuQILocZ5jvkxOiD8pQHl/xdbrOURYhqJY/woe5SNjXBjyVDrbjNn0RI3IFJqxJUVG8OM6K0ApyVwASQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB10041
X-purgate-ID: tlsNG-16d1c6/1778846102-8E98AD75-2C7EFC66/0/0
X-purgate-type: clean
X-purgate-size: 4040

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v7->v8:
* remove support status update
* update config option name

v6->v7:
* add testing and limitations

v5->v6:
* no changes

v4->v5:
* s/supported/implemented/
* update SUPPORT.md

v3->v4:
* update configuration section

v2->v3:
* patch introduced
---
 docs/misc/cpu-hotplug.txt | 97 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 97 insertions(+)
 create mode 100644 docs/misc/cpu-hotplug.txt

diff --git a/docs/misc/cpu-hotplug.txt b/docs/misc/cpu-hotplug.txt
new file mode 100644
index 0000000000..d2ed1d6b8b
--- /dev/null
+++ b/docs/misc/cpu-hotplug.txt
@@ -0,0 +1,97 @@
+CPU Hotplug
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+CPU hotplug is a feature that allows pCPU cores to be added to or removed =
from a
+running system without requiring a reboot. It is implemented on x86 and Ar=
m64
+architectures.
+
+Implementation Details
+----------------------
+
+CPU hotplug is implemented through the `XEN_SYSCTL_CPU_HOTPLUG_*` sysctl c=
alls.
+The specific calls are:
+
+- `XEN_SYSCTL_CPU_HOTPLUG_ONLINE`: Brings a pCPU online
+- `XEN_SYSCTL_CPU_HOTPLUG_OFFLINE`: Takes a pCPU offline
+- `XEN_SYSCTL_CPU_HOTPLUG_SMT_ENABLE`: Enables SMT threads (x86 only)
+- `XEN_SYSCTL_CPU_HOTPLUG_SMT_DISABLE`: Disables SMT threads (x86 only)
+
+All cores can be disabled, assuming hardware support, except for the boot =
core.
+Sysctl calls are routed to the boot core before doing any actual up/down
+operations on other cores.
+
+If there are Xen-bound interrupts pinned to the pCPU being offlined, they =
will
+be automatically migrated to other online pCPUs. Interrupts used by guest
+domains are handled by the scheduler when it reschedules the vCPUs to a ne=
w,
+online, pCPU. When a pCPU is being onlined, some Xen-bound interrupts will=
 get
+redistributed to the newly onlined pCPU to prevent imbalance.
+
+If pCPU being offlined has some vCPUs pinned to it, they will be automatic=
ally
+unpinned and migrated to other online pCPUs.
+
+Limitations
+-----------
+
+On Arm64 cpu hotplug is currently not compatible with ITS, due to an issue=
s with
+the redistributor assignment.
+
+On Arm64 there can be problems with FFA if secure FW support notification =
ABI.
+
+Configuration
+-------------
+
+The presence of the feature is controlled by CONFIG_CPU_ONLINE_OFFLINE opt=
ion.
+It is enabled by default on x86 architecture. On Arm64, the option is disa=
bled
+by default and marked as EXPERT. xen-hptool userspace tool is built
+unconditionally.
+
+Usage
+-----
+
+Disable core:
+
+$ xen-hptool cpu-offline 2
+Prepare to offline CPU 2
+(XEN) Removing cpu 2 from runqueue 0
+CPU 2 offlined successfully
+
+Enable core:
+
+$ xen-hptool cpu-online 2
+Prepare to online CPU 2
+(XEN) Bringing up CPU2
+(XEN) GICv3: CPU2: Found redistributor in region 0 @00000a004005c000
+(XEN) CPU2: Guest atomics will try 1 times before pausing the domain
+(XEN) CPU 2 booted.
+(XEN) Adding cpu 2 to runqueue 0
+CPU 2 onlined successfully
+
+Disabling a core with pinned vCPUs:
+
+$ xl vcpu-pin 0 3 3 3
+$ xl vcpu-pin 0 2 3 3
+$ xl vcpu-pin 0 1 3 3
+$ xl vcpu-pin 0 0 3 3
+$ xen-hptool cpu-offline 3
+Prepare to offline CPU 3
+(XEN) Breaking affinity for d0v0
+(XEN) Breaking affinity for d0v1
+(XEN) Breaking affinity for d0v2
+(XEN) Breaking affinity for d0v3
+(XEN) Removing cpu 3 from runqueue 0
+CPU 3 offlined successfully
+
+Testing
+-------
+
+The CPU hotplug feature has been tested on both x86 and Arm64 QEMU setups =
and on
+R-Car Gen5 (Arm64) hardware.
+
+The tests included:
+- Offlining and onlining cores with no pinned vCPUs
+- Offlining cores with pinned vCPUs
+- Offlining cores with Xen-bound interrupts
+- Offlining all cores except the boot core
+- Offlining the boot core (expected to fail)
+- Enabling and disabling SMT threads (x86 only)
+- Ofllining cores to which guests with passthrough devices are pinned
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Fri May 15 12:03:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 12:03:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309947.1580957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNrGL-0001iQ-1Y; Fri, 15 May 2026 12:03:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309947.1580957; Fri, 15 May 2026 12:03:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNrGK-0001iJ-V1; Fri, 15 May 2026 12:03:28 +0000
Received: by outflank-mailman (input) for mailman id 1309947;
 Fri, 15 May 2026 12:03:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wNrGK-0001iD-2s
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 12:03:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNrGJ-00AdT2-3S
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 14:03:27 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a070b83-bab6-0a2a0a5309dd-0a2a45048258-38
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 14:03:26 +0200
Received: from [52.101.72.24]
 (helo=AM0PR02CU008.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a070b8e-1dec-0a2a45040019-34654818456a-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 14:03:26 +0200
Received: from AS4P251CA0022.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:5d3::14)
 by AM9PR08MB6308.eurprd08.prod.outlook.com (2603:10a6:20b:287::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Fri, 15 May
 2026 12:03:24 +0000
Received: from AMS1EPF0000004E.eurprd04.prod.outlook.com
 (2603:10a6:20b:5d3:cafe::1a) by AS4P251CA0022.outlook.office365.com
 (2603:10a6:20b:5d3::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.20 via Frontend Transport; Fri, 15
 May 2026 12:03:24 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF0000004E.mail.protection.outlook.com (10.167.16.139) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13
 via Frontend Transport; Fri, 15 May 2026 12:03:23 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AS8PR08MB6390.eurprd08.prod.outlook.com (2603:10a6:20b:31b::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.19; Fri, 15 May
 2026 12:02:21 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9913.009; Fri, 15 May 2026
 12:02:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=ZEoF3oRK6Rfy4n8Jl2CvrNrVEquuKCp3RknHvPGbagAAjN5veINlJ3CQa7hfg2lyEVGB8c8c1nHKLdKFUmlNTGDoZEKlq3ogiwKuncERoSftbaPZRFw34QOXQYl+saxpzuXDOfJUsIQyIXpYy/OMfniX8+yoyswnqi/a6YQdIcWUufpIuOqAspx1vooDaL8QH180P0ExQveP8gofKJmjhZx3hIO+tgoGL4Cv09YKZM+4quXiSbTtNGanXiaezQtOS9GHn7MYldPf7tKEXR2BrWH7IU2I/ZTEWH2USyXHjBd3B28W5Msuvb56eBmYlevyUK7GZMseSC9zxzrWWC0o/g==
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=2vinw5w+7JZxyZ5ZVD3zdPrApkvslbuawIliYH6+lY4=;
 b=DQYUO3oPpAZa7un5vcZJpPE9tAF8JNNzx7Ph/7APJHGrfgUDxq25BYSMZOMng+BepRDxfeSU5HtRvmXdVwn3GrYqF+L+jrS53YMLDs8st7q3WpmnQVc3JXX/cykqLJfVYE3H5HiLVZRHrZTR8FkHYerjvrLRJXmDDZnRVWYr4AYI5CmhLgw/8jGqr15QQD9pENWPVn9/OEVXCoznhQzDdeUMjKluzh93fLeQH202XiCBtGjmkfSjTr4YFAnokEkNE665EUlfrUzleDuCM9l1dWPktCMrGPXE9Yfr3PYFLFs+hISwki/hBCiA1ApFF0q01ac8JY8iLrSeKzkwIWgUYA==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2vinw5w+7JZxyZ5ZVD3zdPrApkvslbuawIliYH6+lY4=;
 b=dOlA6s3v4lTrlCmXLp1luxdOmRfNH+qCRL+ou2cCIQp040ItTq/9xJWtnWk3XUi/TBqnTm87K3jGS17xmyPjpQ3GFv+xfbegmHD3+VEB1x7+orNTplT7voHMI/mxGHtITMUivITWRFSnNkjZcUE87QoFFramRSO8t0nOlFLm1RQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EUxcYrqieXmGZkzox+X1vui//aqsb9UVE5kkOB96lhTpZUcCLMges7cZ1qqVJ0+cbBvLPhIApFM5wWWekeRUseiA0ElSKQxaXU5EfvL8smdYmrf1QWZ5tHsGGxfLPKliIkiO+OgNCAuHyxgm5T+1rVfY2AgIs/CDU8L5iX0QnGdZeVL1i9qnGNCRkzf2+VyEqlVIZlRxLe9SRlRwgvOdYo++VZO43amTHZZt6F+U8bV6dhKHnLlkEaSxDrOBGhU/l+ZZLaxjRmMxa8yOQl6agUPE5eJHVmU+9uWsKpGE9Tvsq57JjwPRCrT+zG9lfwaRREtQPuDwOAHKtGJ+iwPaZw==
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=2vinw5w+7JZxyZ5ZVD3zdPrApkvslbuawIliYH6+lY4=;
 b=piKTlCar/2CONK68aCWW8zrJM/MRyeuOrRo2LBQ2aOgwoauTA5scpnZvIzwXb/uEEDnAM0/05ejvMO44pwCctjfylWCXgrflr7UKIZS/lgKA/3AazeZDVlOI3QoABLhW+5GUP7vQ+iRy9xXRln/n5cTH0qlFrqYD3KUjkjCdXr11bmo6T8x9TdE6iw0Xyuzpi14dCgWablA9x5bQN1ZDzipkNvxE9OINA2o3VJy91steYn9Kw6lrHp9BbPlKCs3b1YPz0OGlR+bvNp8doqzSuRb4Fq5RzCnPqmvZINhnjjx2Y6waTvI9sFmduEAyOmAeVhE6hN6V3ojqDEA93XquTA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2vinw5w+7JZxyZ5ZVD3zdPrApkvslbuawIliYH6+lY4=;
 b=dOlA6s3v4lTrlCmXLp1luxdOmRfNH+qCRL+ou2cCIQp040ItTq/9xJWtnWk3XUi/TBqnTm87K3jGS17xmyPjpQ3GFv+xfbegmHD3+VEB1x7+orNTplT7voHMI/mxGHtITMUivITWRFSnNkjZcUE87QoFFramRSO8t0nOlFLm1RQ=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] arm/gicv3: Detect normal NC ITS command queues
Thread-Topic: [PATCH] arm/gicv3: Detect normal NC ITS command queues
Thread-Index: AQHc5E+Snj3ItlO/Dk2J2zISdlUxorYO/JuA
Date: Fri, 15 May 2026 12:02:21 +0000
Message-ID: <05997446-AB81-433D-84D9-48A5FBE1D62D@arm.com>
References:
 <4d72da78b9c30f5da62c8e03c3b03a01c24101eb.1778836836.git.mykola_kvach@epam.com>
In-Reply-To:
 <4d72da78b9c30f5da62c8e03c3b03a01c24101eb.1778836836.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AS8PR08MB6390:EE_|AMS1EPF0000004E:EE_|AM9PR08MB6308:EE_
X-MS-Office365-Filtering-Correlation-Id: d4a51058-a965-4eae-3140-08deb279f719
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700021|56012099003|22082099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info-Original:
 l0Sz099HEPT6hcOXx5wSYSS7BfpdJmoW+oybL8UfV7tQvmiohpyEhljTKB6lL3VUAWT0T8Cef2NvTpYzXIwyxihfFL5qRnvtdRXSEIdMWBeDtmjpy1PQ7mzMeMm9NieptPKwSp/hXdl7FLUe8cdHIxgk8TabW8ZhHy8HQGnvTPPXFOBSYD+Dar3p6CAwS8O/gVd8ZHOoNiey8ibkTTNlmLkGZs8RDmRmrDfRH0yaDmsY44qMKDu7n5OXBRBEnhjIEqJsu3FI/VJfZ/cXjZSILV0ZRXhPT/ZmNltjjvK30vlCcysrnJYPGZveFB6kbSSFEUVbWcaGGVdAUJ7BZzVI/ww6HgI3OBihSiklL5zKFpZ0m4wjPzt2i50nODjgS1E47LroLir5l31iwXSiVU/R4cFE9QsKhXS+pbUOU9jTBVDi2vWm12hMvvID7OGflZfgDQDLYrhV037K5YLiIGHvyTQpQ6a/0GveOPSL7cIWIABf8S6JUVxBQP2DR6zGu4eZvv0uyiGaGmZioE1SfP7eG/Ti7UdVmpzqkY4XEKq7kAcQFDf/shufjoz0qZo/rTWeRKpWivVFZ9A0yRxfG9aLdxtBrlXEecgpqCqnIrubdEjn+3OJ8EohxPQhorQjkI91DqcS8l7w/eurbzQzK5dn10JgEnFPq24epOr+N7BZompRMpwyQ8g5mncXC23SIQOxQBP+/ujtwCVhinObEbtAuWG3lq7OdriqUeHvmabi1ldw7GDF/6CET3ccqY5mgYbi
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021)(56012099003)(22082099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <0A0544D87BAA5641808C9AD6B4C7613C@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 tS0NlemIt8INys3iVFjlFNTAN0AlRSsTuUwl6LPTA+AHf8bl8E+7YrUbG3vrfmH3Qzm51KlpZhfde/znqDrKC1oNSDbExSgvSVAvOrAGQtdGQ2hTy4Ahc7iQOqncUTWPsUxVCA0oPD0/0FT190cHHMajbjqmkYJDBLJpa+U+4X9vUMXGBPnl3bn3Qa4pXUT1w1uZRLXVomLLR88C0hug0qpVq7Op2Mq6hwA7jSjPndwNYXaaMcvl62r+PaATPqmub4+e+Jnta/mu8G6YK3sggfs3xRc1+kcDpP609BgDybDc8eO8w6Ax+TJ+hLwAA/RMhhHbIM/vBpBWKeUg/AZZiw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6390
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF0000004E.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3df0c0dc-9f1d-480d-7b61-08deb279d1ff
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|14060799003|35042699022|376014|36860700016|18002099003|22082099003|56012099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	nbyz99ten2GKTxMSsV5cGizCrnsMpnxh0jMKK6htf+/AsIq3ymmZWY17ia8O3N1ksL8s5YsS/VTWivcnTTLRYn2ReKfte3A25wjlrq3njKSMjezOtuup1N+uYA/uSmOMroFzUi4ootETAP+gf//sNe+hJhC+pnVoZ4rUnv6BaVX3kOADP0wNkfzw34S1g8DsgpDyrLLqjhmbmOZiJKS/Uem60eXc7o7mqTM/kpsqL0i37LIvHpHWnk+kpNh2JvuE2qA8fOChWq00HxTE5wiW4k80BLAIqz0yE7T4VNBgT1ljm/cOkhiGPpLrcHoB+aLxwORB1MNo6qPbF2QmRvJY4U/E4Rxu+VfF4GaL7NuqASLrka7XHmMm8SJAtxelRdMFOB1Aco8npDXclkdQT03VBGyE1lu4mtROS9CC7AMTHflVbI6Emkj+MzoIf7UzbQijyZLLGW7gUmmTQAwE7bUmFJcL6ef67aA8IJ/8KGGulGS/pJ06RMgSvm1Vc87KqyXmdxv/7GZBGIT0Hgv1/XnpV4Gbs9XK7FhsOIDmnvCEXBzrtif9JjeanBYSRSaAjZprFmwDbyCaKN8ZAQdIz3hwQdU7qRBMR0js/gy47mgpw4OhbzlIrKQ/2Cc8gM5Q8JfGCRGcQFP797KAkdPo7nyW6wy7iv98i/bbbrtQRaNtF60Aj8dptDgRwlbfIG7pvrUtT7ShiXfo/CtWF7fzbIhQwYun87sRW3VVz+SH/4/wYYk=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(14060799003)(35042699022)(376014)(36860700016)(18002099003)(22082099003)(56012099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	oVR79mBo8BOro7h/ScE2XKUrbGn5xgv8tfjGv3uG7gSACcmAYFM4gx0OrywMWG7te+4SZdqanC6DRYwaMe/zsYH/x3K2Ut1yvgdqTsXygTO2qOZPmeni5r4DLj9QvnNy9Vmecn1P+zKhW/6iFW0Y1LkZM4IQer2xiDVxmIOSneXTMpRU6amyKG0pNQq2XCkdhbBqat7/VjQoSB2rD/1cCXf+T8vMKgT+Nqi4tSgUEKjZJsinwSbpDbqUA7dVVDHKmhajn/WRD62/ldQ93M2llyJHg4/wgFwA3NIFI6xmR5vs2HvnARpfoQ8MCUcxt/e2e6GWXifSsK6BGC0Vhf+lNOeRt6BxH3DI5PnsQMD+BwUgTfZWOdgwOeJe9+XWaGSzqeFWa/bsmYge0pYkyXm1dxU5UlH58PzvKimhbBZ+W10Tw6O87e8AGbf/Ofr83yZA
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 12:03:23.8660
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d4a51058-a965-4eae-3140-08deb279f719
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS1EPF0000004E.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6308
X-purgate-ID: tlsNG-ebf023/1778846606-2AB633FF-941374B9/0/0
X-purgate-type: clean
X-purgate-size: 1673

Hi Mykola,

> On 15 May 2026, at 10:40, Mykola Kvach <xakep.amatop@gmail.com> wrote:
>=20
> From: Mykola Kvach <mykola_kvach@epam.com>
>=20
> GITS_CBASER.InnerCache uses the GIC BASER cacheability encoding.
> Both 0b000 (Device-nGnRnE) and 0b001 (Normal Inner
> Non-cacheable) describe non-cacheable accesses to the command queue.
>=20
> its_map_cbaser() only checked whether the shifted field was zero,
> so an ITS that reports Normal Inner Non-cacheable would not set
> HOST_ITS_FLUSH_CMD_QUEUE. Decode the field before comparing it with
> the unshifted enum value, matching the handling of ITS BASER tables
> and GICR_PROPBASER.
>=20
> Fixes: 8ed8d21373be ("ARM: GICv3 ITS: map ITS command buffer")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> xen/arch/arm/gic-v3-its.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>=20
> diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> index 9005ce8ce5..7560d46c6d 100644
> --- a/xen/arch/arm/gic-v3-its.c
> +++ b/xen/arch/arm/gic-v3-its.c
> @@ -424,7 +424,8 @@ static void *its_map_cbaser(struct host_its *its)
>      * If the command queue memory is mapped as uncached, we need to flus=
h
>      * it on every access.
>      */
> -    if ( !(reg & GITS_BASER_INNER_CACHEABILITY_MASK) )
> +    if ( MASK_EXTR(reg, GITS_BASER_INNER_CACHEABILITY_MASK) <=3D
> +         GIC_BASER_CACHE_nC )
>     {
>         its->flags |=3D HOST_ITS_FLUSH_CMD_QUEUE;
>         printk(XENLOG_WARNING "using non-cacheable ITS command queue\n");
> --=20
> 2.43.0
>=20
>=20

Looks ok to me

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Cheers,
Luca




From xen-devel-bounces@lists.xenproject.org Fri May 15 12:18:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 12:18:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309963.1580965 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNrUV-0004FP-6J; Fri, 15 May 2026 12:18:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309963.1580965; Fri, 15 May 2026 12:18:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNrUV-0004FI-3V; Fri, 15 May 2026 12:18:07 +0000
Received: by outflank-mailman (input) for mailman id 1309963;
 Fri, 15 May 2026 12:18:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNrUU-0004Dx-07
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 12:18:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNrUT-008VmL-Bk
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 14:18:05 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a070ef4-e002-0a2a0a5209dd-0a2a4507c44a-18
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 14:18:05 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a070efd-229c-0a2a45070019-d155802db418-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 14:18:05 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-488af96f6b2so107044145e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 05:18:05 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48febf8305dsm17076655e9.9.2026.05.15.05.18.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 May 2026 05:18:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778847485; x=1779452285; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=56aPe6Sl70jf73ZxmQ1aaiuBQCF7Crluv9U2uPdl1fo=;
        b=GTZZJOeqnjm+zqnc2VbDccXmbclDzeQ42SLTFiMT0aeKQ7zj3DEUXM+RadoJ0x7NE/
         hZn95WC0o0y3wKEHQe5mR+xr5vHu+AMy33vAbWYXFmDYucE2VYqDNIIZx8k2EqALLXUa
         6ohHzxmQkO/Nkkahtb+7iGat6LWQHTWV1eVr+DVEHMGjPteeHFA/Y3hlsBEmks7by5g0
         z3jJEISaLldKvfnzZoerDaikZpuHosmTvxglF0RfkqbCw+zLVB9Qmh1DJQraLD7A1VUV
         Sbu9dg8PQoekptCB5GXP470RezEeyzc4OWJxgc9+6x/sz0jWuOV/0aUL8D6u+YefhHpN
         WG6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778847485; x=1779452285;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=56aPe6Sl70jf73ZxmQ1aaiuBQCF7Crluv9U2uPdl1fo=;
        b=Zqrt+PdHCdeWF6QqqDjWZHsfcmPyWPed53A+PE5TYggIEueRv5mrp7oTOzGBS9/wII
         JFQoKSgAafZqI5iYW1wgDCwDLE48dSTGdwi3xHEDMBS9URoF5fmdPJJWORRojODS/ykw
         05zl6A7yTxzNS9JJSOIPUL1psfMLFcyAr+m901g4fghbiq3JrE6+bD70Xhidl1GqzWf9
         be95cMAoUO7cNkw05sTUDwhyFzJ/Uk9EucPB8cfdqbeBOshKII8keH1IsUsohhIa1C+n
         f4OAeKMHNFH9APl10WYMh8wbkh1hsLA1LweHET9l4pxb0z5LibYtQGuQeOM834S/edqQ
         nlAA==
X-Forwarded-Encrypted: i=1; AFNElJ/xD2TKUxN8qKOna/0Mv1DsACBIyWI6xM+CH248loU30vxIb0A9Jue/dKi7CapWU943tMnehOj2Cvo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyN8x0Cl6igxlxSBQAmdCXb7EOTmCQy3EykZfar4tcoUCtoTHqI
	AV/nTJhf4g1PO3dbgZJFwXpq7ljY9x8wUtmffelX5PPY8iTX2hDlJWJAtGQVW4KvbAXcpy8HQ8Z
	d5/M=
X-Gm-Gg: Acq92OGVWD9OXtLcuzmztRaz2LrYIcztn18+bITJSUpEYK2TNarMsMo0gtXe8PjHQVN
	VgdxftPyNntnp3A2cNOvXDZyenXOfoN8l99IJhhNViQ95rNGpssj9kZXX2o/7nhO/mVE5B2v8DC
	SybI9PW4kS/odeivYBzLFDII7rId4Of7PLm8Kj8gM1Qa8r9gMDunfttW1U7i0bM8IgiZ1kkPGcJ
	f1ax2eB5PK00r6jPQYh/SF74/Ov1QFEIRGwLobpFZ0sNuGphC0uApb0ONN3Y1OoN2hoAWbSb+v/
	se6ItNm3X+tjijbzHVpQBJtC7nhDrmJI8YhMx8026wFBEcEg963r+3ru0Hr5/ST74tOUXZJCr0K
	lVPVYKTdJQw2OtjlyO83TzuZDupZkW2pC8lo4VRia4t4DHaExztFJX5FGU4TRGInW+tOcAPY3cg
	H1hNucVih8S+P08LwRi/gGwfwHzDA+5jj0ufqH0tlvnrHdxLoMMnNxqRMKzChbU1/icn66CB14p
	vW2HnKYIsWG3OE=
X-Received: by 2002:a05:600d:10:b0:48a:568f:ae6d with SMTP id 5b1f17b1804b1-48fe60e7d79mr45372625e9.8.1778847484590;
        Fri, 15 May 2026 05:18:04 -0700 (PDT)
Message-ID: <854d16a5-fa78-478c-b8a7-4ef4fcbf79e3@suse.com>
Date: Fri, 15 May 2026 14:18:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 4/6] arm/sysctl: Implement cpu hotplug ops
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1778845596.git.mykyta_poturai@epam.com>
 <8d0d4f74ef5730edf59ff21fe8ab2aead6a7f1c6.1778845596.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8d0d4f74ef5730edf59ff21fe8ab2aead6a7f1c6.1778845596.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1778847485-20961C48-2B2FA5C9/0/0
X-purgate-type: clean
X-purgate-size: 1750

On 15.05.2026 13:54, Mykyta Poturai wrote:
> SMT-disable enforcement check is moved into a separate
> architecture-specific function.
> 
> For now this operations only support Arm64. For proper Arm32 support,
> there needs to be a mechanism to free per-cpu page tables, allocated in
> init_domheap_mappings. Also, hotplug is not supported if ITS enabled,
> and partially supported FFA, or TEE is enabled, as they use non-static
> IRQ actions.
> 
> Remove ifdef guards for x86 in flask, as cpu hotplug is now
> supported on more architectures.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> 
> ---
> v7->v8:
> * simplify dependencies of config CPU_ONLINE_OFFLINE

Which now raises the question of ...

> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -637,9 +637,9 @@ config SYSTEM_SUSPEND
>  	  If unsure, say N.
>  
>  config CPU_ONLINE_OFFLINE
> -	bool "CPU online/offline support"
> -	depends on X86
> -	default y
> +	bool "CPU online/offline support" if EXPERT
> +	depends on X86 || (ARM_64 && !HAS_ITS)

... this being overly strict towards other architectures. Typically we'd
allow them to express such via select-ing a respective HAS_* control. In
the absence of that, couldn't the above be further simplified to

	depends on !HAS_ITS

Alternatively, to make exclusions more explicit, and to not preclude other
ports to use HAS_ITS for something entirely different (just with the same
acronym), maybe

	depends on !ARM || !HAS_ITS

? Then, if RISC-V and/or PPC really want to opt out of supporting this,
they'd add themselves here. Yes as said, expressing such via HAS_* scales
better.

> +	default X86

This, I agree, wants to stay as is. At least for now.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 12:21:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 12:21:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309970.1580975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNrXx-0005rB-KY; Fri, 15 May 2026 12:21:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309970.1580975; Fri, 15 May 2026 12:21:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNrXx-0005r4-HF; Fri, 15 May 2026 12:21:41 +0000
Received: by outflank-mailman (input) for mailman id 1309970;
 Fri, 15 May 2026 12:21:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNrXw-0005qy-0Z
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 12:21:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNrXv-00D45C-9Q
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 14:21:39 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a070fb9-e002-0a2a0a5209dd-0a2a45058ea2-48
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 14:21:39 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a070fd3-aaa8-0a2a45050019-d1558030d849-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 14:21:39 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-4891c00e7aeso74780905e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 05:21:39 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9e768acesm14930558f8f.7.2026.05.15.05.21.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 May 2026 05:21:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778847699; x=1779452499; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VCT61lBqPxYurSH4eqKs2jTrLx2aBdDfFDBHea+4VwU=;
        b=KIOJUVBRf1X9gv4YJv4MgdLo7BqcknPmy+gmAIm+EXQoHHN2w0bm8Z4WgGFuYkp/8B
         nH2pAc1j5zBLXBmp9YnTNtS5kjs85lv0c6TtacgUFDC85FzMFtlUPwU9oOqo1eblSN4O
         lBJwR9U7qycaZh/v3itaW4ftUHxqm+TSDQfr9yoUNXLHzVUDDRh/xHXX5cwumGUew7nA
         cw3D1ACIYXtgeXX7ignClXu58qImwkNUtIrmF0LKa6Kqxjxe3/g+uVzMu1VOiCV8y7tm
         bRofCXUsLpTpfIptzmdo0JKoC8YbSRpgMsQTt4s3HtYEUzq4pEalxZe9xHaHcgl3lcjy
         9u2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778847699; x=1779452499;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VCT61lBqPxYurSH4eqKs2jTrLx2aBdDfFDBHea+4VwU=;
        b=X9/kmU2a0jZ4YLAnUDORizxFq8+/pswLEEgkw95YfHMOIh1JBUnyvhXH4cskrcuEZ+
         bhqkZpiJ5LsY6NFvgxIlnB1D4ado6a5SPYocfMa9EfZEBt3yUlH1bD058XI2FNp41eDh
         FqIwgPrB9wvGx7ny7MUobDUg/N/GFu+iYLh3xIz2BDgxBhQNGONG4UrQbrnvNSrIoEmd
         Iowo+b9kEf52E8Nn69c/06gcCcfrdLj2EFtxRQPlPmbF5B0b4uyVXS50HA4nrYb8Ueew
         wZLLId6wRAFbaqUX+2AWZUywQC7YzcvG3lfSA1ilH7ZH5Mft0MAg1BOyVyRznIGeumwE
         G7BA==
X-Forwarded-Encrypted: i=1; AFNElJ/39c64giDTm6DMHNYbZfKC+PqZW8qv8qvNWPCNl/g+eZJyTYRD1aE/sNtWY3rVK04wMEZgQP+FndQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyljnc6h+x442FmxbQ0vsYeNg47hYH104A/faAp/2iemRsePhLJ
	MafJKN9zNIriK7ga0P7JcoJYnCrlk2f2hoEfdzRe5Bf7QB+gCp0bYg9VBABl9yxCmw==
X-Gm-Gg: Acq92OGeg69eqKyvnBAGqE646bcRZAeFtx1CYOGPbyv5PXZO7r58D0O02E/vTWoFamU
	RWJ5aKlZwDn0YeIH5z9r2ud694NKyaHyFLs38U9erEJ0LqnRvsyCZpfb+u6XDJwKC5kZO2RX9kj
	vU1pagI+XFTTV9LEpbM3naPY36LaCFSWlkObtq4WYaetJkBYLkzzD1dsWj66KG47B5z/A3ZBqpv
	9f52o7sPE70riduQAhbEqgfUvaaKTgj7ddbDA9KplnhY54kSNhKU8nrOrTAzVwlqj7QfsEfV7rM
	UvPSXkKvIrAp+t98+Gb6PmiQ3SDnw+/WzLF0gHgGJosld7b9rhAAHmyFe4VfUl+IdcZu+RXVIbS
	Vh8DQ6BweXyueCk6SpTOIXEHIRaANE/GH14Vx4lDefpCOKCNOZ9/504KTsg4dxhIEAmxbfyA/XK
	bkeHF0sVqpCrvOp7ou+7FTLAze6TX3gPJgdH7uUUxYx9wnAmNbndqC6AnYh0GlD3d6DW0ooJf9V
	mYhkzWijG8c6jNTrsZxnXADQg==
X-Received: by 2002:a05:600c:6211:b0:48f:e230:72fc with SMTP id 5b1f17b1804b1-48fe663152cmr50662135e9.33.1778847698705;
        Fri, 15 May 2026 05:21:38 -0700 (PDT)
Message-ID: <ff29493d-e855-40b7-9a0d-d2e43dbe7aff@suse.com>
Date: Fri, 15 May 2026 14:21:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 3/6] Kconfig: Make cpu hotplug configurable
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1778845596.git.mykyta_poturai@epam.com>
 <c32ac85498cd4dd4c1654e81b8880ce3c5149c01.1778845596.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c32ac85498cd4dd4c1654e81b8880ce3c5149c01.1778845596.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1778847699-D8D7F443-852CF885/0/0
X-purgate-type: clean
X-purgate-size: 370

On 15.05.2026 13:54, Mykyta Poturai wrote:
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -636,6 +636,14 @@ config SYSTEM_SUSPEND
>  
>  	  If unsure, say N.
>  
> +config CPU_ONLINE_OFFLINE
> +	bool "CPU online/offline support"

The "if EXPERT" that the next patch adds wants to move here. Then:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 12:29:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 12:29:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309982.1580985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNrfC-0006yH-Eq; Fri, 15 May 2026 12:29:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309982.1580985; Fri, 15 May 2026 12:29:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNrfC-0006yA-Ay; Fri, 15 May 2026 12:29:10 +0000
Received: by outflank-mailman (input) for mailman id 1309982;
 Fri, 15 May 2026 12:29:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wNrfA-0006y4-QD
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 12:29:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNrfA-000OoB-5a
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 14:29:08 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a071190-2eae-0a2a0a5409dd-0a2a450b92a0-16
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 14:29:08 +0200
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a071193-212f-0a2a450b0019-d155dd32e0ca-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 14:29:08 +0200
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-449de065cb3so8362989f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 05:29:07 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da0a1a22csm13723788f8f.19.2026.05.15.05.29.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 May 2026 05:29:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1778848147; x=1779452947; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1GHd6sos5pF+ZlQWXwLpWOamBgutfV1Cq9SATOY7XJM=;
        b=fbJD/er0H0DFgvUeizybh9T8aw6ijaBGkAfsHx6ag4n1NX8FYI68heVTqPSsZMWEIF
         MCxpaRJUJ8+Z0arYBmBm56y1E4bFPG1q/civ0rIxgbFW4leCRku6gz+U4grD/PS2/Iga
         w4ol++DoVHcigyaG7nQVrmmdzf6JI4t2gvFdwQL4MrjRfXanbwF/A7deGS+MJDOuI5nC
         jaoPyDUUQQGPQc7VZLMRi0HkNhjVmk4faN/wv08wnxlH3GxEyHi0ZYj3N9kXnc2BD6n+
         JUGP/2ZvXaCW8aeotoqYTblfbmnPg+DzvAJ2wW0aPjYQRkjy8A7CYlkDT1GVDmXEj8V0
         F66w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778848147; x=1779452947;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1GHd6sos5pF+ZlQWXwLpWOamBgutfV1Cq9SATOY7XJM=;
        b=EuyZ2edwL9z0CyFXclO/CydhQAmrIGO93xWcDaNv6Zg9Jd+YHZ50p4OpboHzsdI8oZ
         FMEy/MwDBebKjFqwOejStgWrnRe19fXweayIQ8oTYLRdwOUGkqaPmE8nlEi0i4SPFF+k
         JxJbK+KIDegFaxAxXHl+Qsj4JdjEzpw91w9m1K4JGSC4ZI0FPRJbUFUMdZ6G46qkXc1V
         kqewvtDjOKi7P4Ny++DmcPt3BSC42K6Yr5DKoeXkjk0Df7PSeCscwvW7Gi5zB9PJNKTj
         u97CNWT7JPw4kp1hWG9LNYJqxitSnJPjshJlPLBvk4qi4mwgRQdxpfIdDpXkD70rZOS1
         8JIg==
X-Forwarded-Encrypted: i=1; AFNElJ8hSTWf2qL/92dB6mXzxPCiPFhnYOEBYW3Mi/eZQdtc/c777bONI/iPP+rTkHsvMYnFSVIDHd4hKAA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzMM7uGrJz58zxGuxZEKxdnqK/GXOCseO3wobMSXrHDnKto2wnm
	mzbUhvTE9U8tEBpy+KKQ5nbKA386elE6B7rYOy2pGCOtkPukVp84Ty6C+3L8xCCDCw==
X-Gm-Gg: Acq92OHw2OxW9aSh8YyuzkPzGahZ17pLbhzfkHMNl5E3Up64sFOi/gTxS3QeDgkEqfK
	yUH6BU55fp3EinGBDrF3cva566xTx6q2p5ujgKosKoupPn2xt5Bm2OVOv4xUGs34gP6eZGV2sBj
	BXPPFDx/oLZN1d94YfFntkUew7wzbaYRRrcc93MZ+8UJlMxS0YmwqpBmu6Zrb/zXrbT27KiVpG0
	9AKEE1S8HwkPow6QyjZNReoSe1I6j4ySWidtZmQKrFwNQmlWtX8ayp2/0+bOUtYTggf3+NqvEZD
	/9zyGGQks005bGCs23JXEnnAEn4O/TIBLLIoTa0C31yAM7H3aKud9TlcnwrQyIPVmjgxRgCQ/Mr
	HVaTksZ/d42jFWlPzb2b+IlcWLhnLMScJHwZ55pp9ei9RdSl/ZFVlovCFlu9bHgCHR7iZpam2jH
	l+fMNncRIGcPThsYs7ns6XsqYbpsyfVeDqsjbSZlEb48VEfcejY5u/8RQtj1xj02X4b/91Yw/g+
	CV4QO3D0jY1K7w=
X-Received: by 2002:a05:6000:1ac7:b0:43f:e272:edff with SMTP id ffacd0b85a97d-45e5c57d308mr5270640f8f.4.1778848147568;
        Fri, 15 May 2026 05:29:07 -0700 (PDT)
Message-ID: <bf9bf0e7-6cb2-433d-b297-ccd6cae9c925@suse.com>
Date: Fri, 15 May 2026 14:29:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 5/6] tools: Allow building xen-hptool without
 CONFIG_MIGRATE
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1778845596.git.mykyta_poturai@epam.com>
 <d4db5afa4cc02a234bff93416a639c750e5f1bf9.1778845596.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d4db5afa4cc02a234bff93416a639c750e5f1bf9.1778845596.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1778848148-22B8EF3B-0442CAD8/0/0
X-purgate-type: clean
X-purgate-size: 991

On 15.05.2026 13:54, Mykyta Poturai wrote:
> @@ -104,8 +104,10 @@ xenhypfs: xenhypfs.o
>  xenlockprof: xenlockprof.o
>  	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
>  
> -xen-hptool: xen-hptool.o
> -	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenevtchn) $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) $(APPEND_LDFLAGS)
> +HPTOOL_OBJS-$(CONFIG_MIGRATE) += xen-hptool-x86.o
> +
> +xen-hptool: xen-hptool.o $(HPTOOL_OBJS-y)

I'm not a maintainer of this, but imo this wants to be

HPTOOL-OBJS-y := xen-hptool.o
HPTOOL-OBJS-$(CONFIG_MIGRATE) += xen-hptool-x86.o

xen-hptool: $(HPTOOL-OBJS-y)

Whether $(CONFIG_MIGRATE) is actually appropriate to use here (and not
CONFIG_X86) is a separate question. What's moved into that new file is not
only migration related stuff, after all.

Whether an almost-all-caps variable name is okay to use here is yet another
(style) question. In the hypervisor we prefer lowercase forms, I think.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 15 13:00:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 13:00:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1309993.1580992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNs9A-0004IC-KE; Fri, 15 May 2026 13:00:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1309993.1580992; Fri, 15 May 2026 13:00:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNs9A-0004I5-He; Fri, 15 May 2026 13:00:08 +0000
Received: by outflank-mailman (input) for mailman id 1309993;
 Fri, 15 May 2026 13:00:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wNs99-0004C7-3h
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 13:00:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNs98-008bvJ-8z
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 15:00:06 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a0718d1-2eae-0a2a0a5409dd-0a2a450b8244-8
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 15:00:06 +0200
Received: from [195.135.223.130] (helo=smtp-out1.suse.de)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a0718d5-212f-0a2a450b0019-c387df82e46a-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 15:00:05 +0200
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 5763C6315D;
 Fri, 15 May 2026 13:00:05 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 2D880593A9;
 Fri, 15 May 2026 13:00:05 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id IVHnCdUYB2qATQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 15 May 2026 13:00:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1778850005; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=fGLVgn9Q1bMVXvQUOe97ySXM/CiVTvt4tuaV2FX7IzM=;
	b=sthPDOjhzCNfEekl01yEq935Na1bIY42n3wShAZxhE+X8J/4h3594iUdKJC6GfoX0R1ldw
	RB2AsjYXy8dGTxLvgpNPMPoP9J689Ke+TRHXaRAHq6X2LSfg/13KpSwobalw7/nyDqciFR
	BYpkF5SM6S8WO42U2ZL9sXXNPEpIDDA=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=sthPDOjh
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1778850005; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=fGLVgn9Q1bMVXvQUOe97ySXM/CiVTvt4tuaV2FX7IzM=;
	b=sthPDOjhzCNfEekl01yEq935Na1bIY42n3wShAZxhE+X8J/4h3594iUdKJC6GfoX0R1ldw
	RB2AsjYXy8dGTxLvgpNPMPoP9J689Ke+TRHXaRAHq6X2LSfg/13KpSwobalw7/nyDqciFR
	BYpkF5SM6S8WO42U2ZL9sXXNPEpIDDA=
From: Juergen Gross <jgross@suse.com>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	sstabellini@kernel.org
Subject: [GIT PULL] xen: branch for v7.1-rc4
Date: Fri, 15 May 2026 15:00:04 +0200
Message-ID: <20260515130004.1571139-1-jgross@suse.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Rspamd-Action: no action
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	MIME_TRACE(0.00)[0:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:mid,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from,2a07:de40:b281:106:10:150:64:167:received];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_TLS_ALL(0.00)[];
	TO_DN_NONE(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Queue-Id: 5763C6315D
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-purgate-ID: tlsNG-42698a/1778850005-19364F3B-2388FD85/0/0
X-purgate-type: clean
X-purgate-size: 734

Linus,

Please git pull the following tag:

 git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-7.1b-rc4-tag

xen: branch for v7.1-rc4

It contains:

- one simple cleanup
- a fix for a corner case when running as Xen PV dom0
- a fix of a regression for Xen PV guests, introduced in 7.0

Thanks.

Juergen

 arch/x86/xen/mmu_pv.c       | 8 ++++++--
 arch/x86/xen/setup.c        | 2 +-
 include/xen/arm/interface.h | 2 +-
 3 files changed, 8 insertions(+), 4 deletions(-)

Juergen Gross (2):
      x86/xen: Fix xen_e820_swap_entry_with_ram()
      x86/xen: Tolerate nested XEN_LAZY_MMU entering/leaving

Thomas Huth (1):
      xen/arm: Replace __ASSEMBLY__ with __ASSEMBLER__ in interface.h


From xen-devel-bounces@lists.xenproject.org Fri May 15 13:13:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 13:13:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310008.1581001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNsLg-0006DJ-Mj; Fri, 15 May 2026 13:13:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310008.1581001; Fri, 15 May 2026 13:13:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNsLg-0006DC-Jd; Fri, 15 May 2026 13:13:04 +0000
Received: by outflank-mailman (input) for mailman id 1310008;
 Fri, 15 May 2026 13:13:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wNsLf-0006D6-CO
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 13:13:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNsLe-006b0n-Ld
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 15:13:02 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a071bd7-bab6-0a2a0a5309dd-0a2a450be4a6-20
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 15:13:02 +0200
Received: from [40.107.208.63]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a071bdc-212f-0a2a450b0019-286bd03fba1c-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 15:13:02 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH0PR03MB6018.namprd03.prod.outlook.com (2603:10b6:610:bd::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Fri, 15 May
 2026 13:12:57 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9913.012; Fri, 15 May 2026
 13:12:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=U18Y2Gqd11I+WoVgeT9i3f7umP6zSyCxkypjP0e1uEwSP5q3hG/LOhUZWN6NOCqRVBNHbVpC/2IxERpj7or8UaMqhLJbVNR8Ow9BWY9NWSzD4HcgLpsz5co8gK02KF/GKw6ZEsb0q7FRpCFr70tyi4iEUmQuWANmOA1hcNg5g8p9ynFX0EWK1IgcgZwhJisU/PN3WngU4tv2cv1mw9ZIxB7WyujlsblNbaUB3sdoSjk9yVmnHMFtcHlUmQzY3jhIA+gPFRJOV2x5uropPhXbeeqpCQDFS034+5xdRHtE566TPITYr/kDTYgvN0GZisjj9O25w+5EU5pZbkR71IzJeA==
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=dbeEDFUBqb23n3nj9F6l/iKheCEK7+Rekln3WihDiF4=;
 b=ZVCAbbLA9km6K4lXvMH2BnkW9kO6UFKhhpF0rAdvTgBdY5gVaSKCn51QS9dkVaTs4FKbACnF+OxNhSQMOCOaKGcER8hQ9yvkWfKW2I8jiJWcm/8I7Z8EvY70bDoGm9y+wSLhhAnYhUgXuzRUN+jXWIqOY+XiBF34Cmv0cD0Xk9RxSICR/YoY22FyD13EP8qRLsWXYWdF6mAFODQbGXYxoljVftfC+j4gSAcXu+yc4T7AC7fZVwe5OsGmar/NLf7Py61mBi8eJfgUOvVpYI0mkSxZaoOvVRb7zCBbAN9VD1CJ54/xLAjhH/7BTbRBDB4MHn9eyUO71xDGV2iwO1Is9A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dbeEDFUBqb23n3nj9F6l/iKheCEK7+Rekln3WihDiF4=;
 b=H6PTT04ld5y7hpZlorWExv/XSpcgbFBrDzqDoRvsEwKfiIP9kWU9czHzdUXwAEyQGnYJdzvA557eYKc3n5o0BwKqO2qnQLh4jYaL9LbQoT8rpt0vtQ+ZMQOZDGLwekUU6lEM6ISd/bIaLdD7+Jl8yi+ylPizaHpp4T7FQ4rRk9o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 15 May 2026 15:12:53 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 RFC] x86/time: avoid early uses of NOW() to return zero
Message-ID: <agcb1WAGLWDRYZ06@macbook.local>
References: <68b1607a-f2a1-4f53-84c5-43c61eeb1869@suse.com>
 <agXwsshLlV50dcnV@macbook.local>
 <8fbab1f4-3078-4ac3-b147-84d1b5f5abd1@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8fbab1f4-3078-4ac3-b147-84d1b5f5abd1@suse.com>
X-ClientProxiedBy: MR2P264CA0153.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:1::16) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH0PR03MB6018:EE_
X-MS-Office365-Filtering-Correlation-Id: 869bbdd5-460c-46d8-5da0-08deb283aea1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|3023799003|4143699003|56012099003|18002099003|22082099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	Pck0/ilnasVioW+xrjUApyXNXdV0kd7pKlVJBcIR/ciLAyJeCJ3F7AnarSEJNLMuFxkr0AWz1AOaWu4a0ELhE4J/Y2oUG5qUE3BBOkpUo4H1WrvLA4YzMB8ZQRP5OpNkauMb7727iR5AaubtDvgFm4MKlbCna6atZrdzRyGOhx6Gb3nNwkXhYJS1kodr1jEiYMIbPHGnIhIlK0Gcyt29ERgKkIX/esJI+OjAJNdcjfYvyqueXPXpYLwqH8qNHUBQtOrvuVDFMEaKliU6zBm9kB2XlbehFNxtRA8xTdYoNXHE+/rETt4Ha9R8Z2gLa89D11ynDfMQ1cbI3/0XTsVBjpuksaGuPZC88+txO5oe9i/YeLVLKKeIEqpDha8RhA19BeZcgi0r5ks+FemctSe5zUjv0lJMQqW3DNEQwyuIYvo1amUYFryW1VguzE2y2/oPMnUWWd9WPgmKajoicTf936BKV8WnO2oC7v+qbb7+DTFMVC1uzWf1ZNqO1McNwD6vnQ5IcvdPOAn0lRoUzpuNF+cwDg2joEPX38SvH2LQ9brBH2anKO4JEWtWh/Lhp7hKd8icGRqYGcdp3BovXuGoP9RVlXE3b7JxLfdsMA90pM6vnugurj3oNrb/WZDnKmargOumVGxgHqfEYyVbeN98Iz8cYHb7Vxpqk9KaPMsNvtEqN7GIBKq6EvilKkThAcEu
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(3023799003)(4143699003)(56012099003)(18002099003)(22082099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a3pmNktHRG80YnRFQjhHcThpbTJOcWhsQ1M4ak1TQ2hMSFI4N3dZemNMZ1Jx?=
 =?utf-8?B?cmNkaVR3eWlHcysvQmxJWUV3RWxBZ1NSSVFYbjlOVmhXNW5SVXZXcElnNjIy?=
 =?utf-8?B?MGRmNjcwUHJBZjRsSDBUZDVlSjNvWEtaWW13c3psMnk3dmd0d1JQN3RHTEJX?=
 =?utf-8?B?VFJwZFFsUDU0K1Q5czFqdjNZTmlOSTFQUW1tRGMxd3JTRFFNa2tFMW0wcTcx?=
 =?utf-8?B?cTBlaWo3ZllqYnVoV2VJeFlJanJBSUQrbEFMYnlIUS9KNDBaWVVhNGFlcVdN?=
 =?utf-8?B?UG9pbW9EZVZRWklVaU11bGl6d3lwbjZMVzlvdExXUHRhQ085a1d1Rks3cnE3?=
 =?utf-8?B?ck9uTVpKZlgxakN3cS9acTdHdmlNQnd3U0FmOFZxUnJGKzh5Y3pPanM0dkhJ?=
 =?utf-8?B?cEZLV2Noa0JxVmxhOWQrWFBQdXFPNFNJZStmUUltL1A0elFwSVc3cXpYMXFQ?=
 =?utf-8?B?alN5cStsazB5VWZUZW1hVTRGZUZ2c093bEhuckl3dGJTaU1iQzlxemdSa1Zr?=
 =?utf-8?B?MzA2cmFyRGJSeDd2RFhKVzBZajFmd3VCajVIWFRKRm5uaFRWZmF0Vld4K0xO?=
 =?utf-8?B?emNkRXVIUU84V3JSQmc5bXhkOUFwZ1djU1g4UEhOM01LTms2V2wxVG00V3Zj?=
 =?utf-8?B?ZUZzbyt5WG9uejZDakM1Y0Vab0RmZHF0Nk9YZGt4cUNybXd0aXZJMGp1ZmNJ?=
 =?utf-8?B?VXN3Y3d2QjMxWXRKbGNUTDIwVFRJVUpJVkNOZ0FQRldoWDJ4SURaVk9vc2Yy?=
 =?utf-8?B?dlRBQjBHQ3V4cmc3RjBEN05URjVGekVJMElONFJodHBOc0prekw4ZmJYeEtJ?=
 =?utf-8?B?MHFnWlBkTit3YnJxQXRvRUo1eGUySWtOYXZpUC9aaHZDeWg5T256ZGwzcUFu?=
 =?utf-8?B?Vms2d2JPUXMxaW03YWlFY0FndHJ5aHFjb2xmUk5YRVIrVDdEOWtKYXZJR0dp?=
 =?utf-8?B?QjYzKzNLWFRoc2kzUjEvdlYxMnNZU1E4ZFZTVnZrNExmOU1ZQmJ3ejlxWHND?=
 =?utf-8?B?L1N5ajczMlhkZi9jSXROVFBwSHdld3VvQkFBMy9GSGVuc1g3Q3piSDhnU043?=
 =?utf-8?B?YjlqWUxaNGZTRVFJUncrc0x6V3F6cnhidi9HZ2QzNnAvL2lXZVNiU3RPUGdy?=
 =?utf-8?B?RHRCMVFwYVBoWHNvLzZtaDU4N0NmaWhyNi80amc2QVpWQ0RQcnZKejhleFJQ?=
 =?utf-8?B?RGdta3UwcVZWTzVkZ2JIOXh6c1VmNmU3NGlEaVg1bTh5VVhocXBSUDZ0WTR1?=
 =?utf-8?B?SXVKazFQY3lTYVpTVW9RZ1BicmdPVDk2Nm1ON1JVSFl5ZEliWnV1MUJ1QnJW?=
 =?utf-8?B?c2pPWTVmUmtDTXJJeERzYmlwZmNKZlVXRzFEaTEwU0JJaFVWTWpPNXg0Niti?=
 =?utf-8?B?RUJoTGF3MTFTNDl1T3hQNjNQWk05V3lTUlJjZ2VRRDdsZC8yNWhpalJRMnIy?=
 =?utf-8?B?a25DeW5mWENxS2pHYWtaWnpTWWVrKzRSZGVNN0xLL3JyQlErWmViUkZjdnpp?=
 =?utf-8?B?YkF3bkV3S1FMdVYrdldGclk4eUlsYU1OS29XWFIzZ3ZqaWJaVGpPeDBxT3Iz?=
 =?utf-8?B?YnMyR3BBVzRUazh6L3diNSswWDBFMzBTT0xjb20ySWYvN0pRRnlzR0N6eDZQ?=
 =?utf-8?B?dWtPZFZxUG9WVGpwMkNaTEk3dEM0WUprL1doVHRRRlVLVU1wTzFCK1NwNGhH?=
 =?utf-8?B?NFN5aUIyeVFOVnI0bFA0QTRPOHF0eTVTeGUrN0ZiQVJQWHVHdzljWmZjZEo3?=
 =?utf-8?B?OVdUOWpucnpWeHBSVFF4dG05SmtxKzBhcHNoN04vT3p1M2RFc2dMK0FMT3p1?=
 =?utf-8?B?TWc4UkNDWU54ODdsRk9BMmI3Y0J3VnF5Q005UlBYSy94YmFtUUcyMVVyZ2xY?=
 =?utf-8?B?WjJubVk2d3o3Y1crZmtMZmhNSC9vQllmK3NmZUpXRWZjcHcxSHZhTnJOeUVl?=
 =?utf-8?B?a2doZ3Jhc0pFWDN2ekIvbFdpQWVPaXEwTzN6cHY2RGZ1cEY1aFdGQVppMlNL?=
 =?utf-8?B?RU1IcG5teUx5cE9yM1czeUJUNW5aUFJRME9GbHF2bCtPejNmRFJiOEt3blR2?=
 =?utf-8?B?b016QzF0ZDU4NnhDVmtESCtXalFwOVJGdVBkTXN6MmVnQ1hKWmJoaE5qSEta?=
 =?utf-8?B?Sk9STURzNXZTM0s0V3pVTzMvRjJTTEJLVElCTWwvcVJ0Tk84enJVa2RCWVJk?=
 =?utf-8?B?eTJlUkwwdzROVmRtb3FhUlY4NUlOMFA2K0gyNG9GRHY4T2dzUS8vZzhzQnhO?=
 =?utf-8?B?QVdITUF3dDRESUU4SzBydm4vYTQxQ1lVMDJhcWQ0Y295S1lnaUxsQjdyYi8y?=
 =?utf-8?B?NURVLzRYMzJsVjhnS1lQelBuTUdrRWNTRzFEVE1iTHhZL3BQa0hvdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 869bbdd5-460c-46d8-5da0-08deb283aea1
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2026 13:12:57.5621
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DO0wzlw/gVGPKT9xrHjTxO0gIqfSysPtagTJ/xYWse42FXZnSRCaIuUx7sqqdUsDyN3wpG/GJRzYBqGD9tz6cg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6018
X-purgate-ID: tlsNG-42698a/1778850782-22D77F3B-61EEA9F1/0/0
X-purgate-type: clean
X-purgate-size: 4349

On Fri, May 15, 2026 at 09:15:40AM +0200, Jan Beulich wrote:
> On 14.05.2026 17:56, Roger Pau Monné wrote:
> > On Wed, May 13, 2026 at 08:44:46AM +0200, Jan Beulich wrote:
> >> Waiting loops like the one in flush_command_buffer() will degenerate to
> >> infinite ones when used early enough for NOW() to still return constant
> >> zero. Make sure the returned value at least monotonically increases. When
> >> available, use nominal frequency values as initial approximation.
> >>
> >> Do this only in get_s_time(), as producing a sane value in
> >> get_s_time_fixed() for non-zero inputs won't be reasonably possible.
> >> Put an assertion there.
> >>
> >> Reported-by: Roger Pau Monné <roger.pau@citrix.com>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> RFC: This breaks at least the TSM_BOOT case printk_start_of_line(), which
> >>      checks for NOW() returning 0 (falling back to TSM_RAW in this case).
> >>      For now I have no idea how to avoid this; perhaps that's tolerable at
> >>      least in the case where we put in place an early estimate? Should we
> >>      maybe weaken the fallback condition to take effect for any value
> >>      below 1μs?
> > 
> > Maybe it's fine to print cycles unconditionally until we reach
> > SYS_STATE_smp_boot when we know the per-cpu scale is correctly set?
> 
> I remain of the opinion (as said in reply to your similar v1 comment) that
> this isn't very desirable. Tying to SYS_STATE_smp_boot also would feel
> pretty arbitrary. Other ports may have NOW() properly working much earlier.
> If anything we may want to add a global indicator of NOW() properly working.

I would be fine with such indicator.

> >> RFC: While generally the mentioned waiting loops will take longer to time
> >>      out, on a very fast CPU tight loops may time out too early.
> >>
> >> RFC: For the AMD/Hygon case, if the "nominal" value isn't available, we
> >>      could use the "high" one. That would cause NOW() to run too slowly
> >>      (until the scale is properly set), but maybe that's still better than
> >>      it returning 0? (As it stands, I can't really test the new code
> >>      there, as my Rome system only supplies the lo/hi pair of values.)
> > 
> > Using the "high" frequency would seem fine to me.
> 
> Okay, will do then for v3.
> 
> Related aspect: With these family/model specific additions for AMD, we could
> also separate out intel_log_freq()'s model specific part, to leverage from
> here as well.

Hm, yes, that would reduce the duplication of the added logic.

> >> @@ -2623,6 +2640,21 @@ int __init init_xen_time(void)
> >>      return 0;
> >>  }
> >>  
> >> +/* BSP-only function to pre-set an approximate TSC scale. */
> >> +void __init preset_tsc_scale(unsigned long freq)
> >> +{
> >> +    struct cpu_time *t = &this_cpu(cpu_time);
> >> +
> >> +    /*
> >> +     * The incoming frequency is only approximate (nominal).  Increase it by
> >> +     * 1% to make NOW() output rather a little too slow than too fast, thus
> >> +     * avoiding a possible backwards jump once the final scale is set.
> >> +     */
> >> +    freq += DIV_ROUND_UP(freq, 100);
> > 
> > To avoid such possible jump backwards, won't it safer to also update
> > the ->local_stime and ->local_tsc fields at the time the new scale is
> > set?  Updatign those ahead of setting the new scale should avoid any
> > backward jumps.
> 
> ->stamp.local_tsc does get updated; you merely dropped that line from reply
> context. As to local_stime - how could we possibly set that, when we didn't
> get through init_platform_timer() yet? Leaving it at 0 is the correct
> match for setting local_tsc to boot_tsc_stamp.

Please bear with me, maybe I'm not understanding exactly to what the
code comment refers to as "possible backwards jump once the final
scale is set".  I assume you refer to the setting of scale
early_time_init()?  The ->stamp.local_tsc value also gets updated at
that point, so it's not possible for the timer going backwards?

This changed with the addition of the init_percpu_time() call in
early_time_init(), and makes the setting of "t->stamp.local_tsc =
boot_tsc_stamp" pointless, as it will get overwritten by the logic in
init_percpu_time() a couple of lines after?

Thanks, _Roger.


From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310174.1581011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy4z-0005A1-2N; Fri, 15 May 2026 19:20:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310174.1581011; Fri, 15 May 2026 19:20:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy4y-00059i-SH; Fri, 15 May 2026 19:20:12 +0000
Received: by outflank-mailman (input) for mailman id 1310174;
 Fri, 15 May 2026 19:20:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <353EHagYKCUAugcpleiqqing.eqozgp-fgxgnnkuvu.zgprtqlgev.qti@flex--seanjc.bounces.google.com>)
 id 1wNy4x-00059W-17
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy4w-00BX6R-Cy
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:10 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <353EHagYKCUAugcpleiqqing.eqozgp-fgxgnnkuvu.zgprtqlgev.qti@flex--seanjc.bounces.google.com>)
 id 6a0771d8-5cb7-0a2a0a5109dd-0a2a450aade8-22
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:10 +0200
Received: from [209.85.215.201] (helo=mail-pg1-f201.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <353EHagYKCUAugcpleiqqing.eqozgp-fgxgnnkuvu.zgprtqlgev.qti@flex--seanjc.bounces.google.com>)
 id 6a0771e8-56b3-0a2a450a0019-d155d7c9cce9-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:10 +0200
Received: by mail-pg1-f201.google.com with SMTP id
 41be03b00d2f7-c82bd90afbbso184383a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:Mime-Version:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872808; x=1779477608; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:mime-version:date:reply-to:from:to:cc
         :subject:date:message-id:reply-to;
        bh=n6Bo/RhEQ+ohQ2bSS/OTKsKl1FaExY7Ds1WzHI7v1C0=;
        b=tIQlCw72CdnN83Bio8mqAjXcQhO64QeqKGYxFx+fyajkUA2iz47h4zIzPo1qD65LnI
         QHgWhGikARyaWo0RAyrQgincyNy3bLOmJ8WymfgcPZyqJAJhcH1qZv2VJraURRadZKQ2
         nljMTDwfUPo1WD7VfKuJE+x2vu+qfTYr4CzH6N2kHtQ4IdPgkHnjXIWaXHZm9Xr1tdkH
         GCCnzhyGECg5Jr2IT+amCno4CdpHUu1suPmmsQIVvfaX8wdPwmQ765sb+AmCEFo/HyN7
         q1wHfSzEk8obmJ9t4qxGFE9hmYpx0h//UExqNuoOuzHAyCndtq4yEOYVJ32TlWQkKGy7
         OSOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872808; x=1779477608;
        h=cc:to:from:subject:message-id:mime-version:date:reply-to
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=n6Bo/RhEQ+ohQ2bSS/OTKsKl1FaExY7Ds1WzHI7v1C0=;
        b=egl/pO/0IehFemDG/rs6ToPInQ24WgmdseXkoaB9WP+CLKG5jkq3ae2gTg9JHYJxMY
         dCTw20Rd30TU70EdUNrJPK5xIfoZ96170+9+HD8jxlno+Lcs26pz/v26TuZ1xYGSYg3B
         ypuFMAhrrbDSjxifMEiMJhGGLZl2rtvXGRiBhCnsGW6ptXOjSRuOGZ9USvC6KvzxXxYe
         N2firZQ778gZ9xvhSHeXTtE1sulNd/l8Peq4n8FpYCjuvb0mjIYPeRDoxULKN+Ci7NB7
         zmoUBms2xSbw9gKdGacmQYASso3girA4At290cMQQmPgGQYJE8/qFJEJymgNMmz+3Npi
         8duA==
X-Forwarded-Encrypted: i=1; AFNElJ9hu4l5VT08sOSexenV+ulGQ1WpQeH6VnWpaIeQxm4LT6fYzObTSmpl5MmHD6kjG5H4wttdV8OQR+A=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz3LI9kZ3uIxl4OYDw6XASXgbtblzbVJXOjYYkU8obKGmM7ZK6p
	uFEG9vKul1gNbRMbK9HkJdrDNJ1J5URX6ZoJ4MnB9g6YcaxTQaTeeQHMYZh/Ptq8JeSxkhyPQbX
	hIfUVVQ==
X-Received: from pgbcq13.prod.google.com ([2002:a05:6a02:408d:b0:c80:26d4:20ea])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:1595:b0:398:7df5:2dae
 with SMTP id adf61e73a8af0-3b22e67bbfbmr6212145637.9.1778872807764; Fri, 15
 May 2026 12:20:07 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:01 -0700
Mime-Version: 1.0
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-1-seanjc@google.com>
Subject: [PATCH v3 00/41] x86: Try to wrangle PV clocks vs. TSC
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-4011c0/1778872810-7EB898B7-290D3FC3/0/0
X-purgate-type: clean
X-purgate-size: 7912

Dave/Thomas/Peter/Boris, what's the going rate for bribes to take something
like this through the tip tree?  

The bulk of the changes are in kvmclock and TSC, but pretty much every
hypervisor's guest-side code gets touched at some point.  I am reaonsably
confident in the correctness of the KVM changes.  Michael tested Hyper-V in
v2, and while there were conflicts when rebasing, they were largely
superficial (and I've just jinxed myself).  For all other hypervisors, assume
the code is compile-tested only, but those changes are all quite small and
straightforward.

The only changes that are questionable/contentious are the last two patches,
which have KVM-as-a-guest use CPUID 0x16 to get the CPU frequency, even on
AMD (that's the dubious part).  I very deliberately put them last, so that
they can be dropped at will (I don't care terribly if those patches land).
To merge them, I would want explicit Acks from Paolo and David W.

So, except for the last two patches, to get the stuff I really care about
landed, I think/hope it's just the TSC and guest-side CoCo changes that need
reviews/acks?

The primary goal of this series is (or at least was, when I started) to
fix flaws with SNP and TDX guests where a PV clock provided by the untrusted
hypervisor is used instead of the secure/trusted TSC that is controlled by
trusted firmware.

The secondary goal is to draft off of the SNP and TDX changes to slightly
modernize running under KVM.  Currently, KVM guests will use TSC for
clocksource, but not sched_clock.  And they ignore Intel's CPUID-based TSC
and CPU frequency enumeration, even when using the TSC instead of kvmclock.
And if the host provides the core crystal frequency in CPUID.0x15, then KVM
guests can use that for the APIC timer period instead of manually calibrating
the frequency.

The tertiary goal is to clean up all of the PV clock code to deduplicate logic
across hypervisors, and to hopefully make it all easier to maintain going
forward.

Lots more background on the SNP/TDX motiviation:
https://lore.kernel.org/all/20250106124633.1418972-13-nikunj@amd.com

Note, I deliberately omitted:

  jailhouse-dev@googlegroups.com

from the To/Cc, as those emails bounced on v1, AFAICT nothing has changed, and
I have zero desire to get 41 emails telling me an email couldn't be delivered.

v3:
 - Collect reviews. [Michael, Thomas]
 - Use Hyper-V reference counter / refcounter instead of Hyper-V timer. [Michael]
 - Use the paravirt CPUID interface first proposed by VMware for KVM's
   "official" mechanism for communicating frequency to KVM-aware guests,
   instead of abusing Intel's CPUID leafs. [David]
 - Deal with paravirt code being moved into asm/timers.h and
   arch/x86/kernel/tsc.c.

v2:
 - https://lore.kernel.org/all/Z8YWttWDtvkyCtdJ@google.com
 - Add struct to hold the TSC CPUID output. [Boris]
 - Don't pointlessly inline the TSC CPUID helpers. [Boris]
 - Fix a variable goof in a helper, hopefully for real this time. [Dan]
 - Collect reviews. [Nikunj]
 - Override the sched_clock save/restore hooks if and only if a PV clock
   is successfully registered.
 - During resome, restore clocksources before reading persistent time.
 - Clean up more warts created by kvmclock.
 - Fix more bugs in kvmclock's suspend/resume handling.
 - Try to harden kvmclock against future bugs.

v1: https://lore.kernel.org/all/20250201021718.699411-1-seanjc@google.com

David Woodhouse (2):
  KVM: x86: Officially define CPUID 0x40000010 as PV Timing Info (TSC
    and Bus)
  x86/kvmclock: Obtain TSC frequency from CPUID if present

Sean Christopherson (39):
  x86/tsc: Add a standalone helpers for getting TSC info from CPUID.0x15
  x86/tsc: Add helper to register CPU and TSC freq calibration routines
  x86/sev: Mark TSC as reliable when configuring Secure TSC
  x86/sev: Move check for SNP Secure TSC support to tsc_early_init()
  x86/tdx: Override PV calibration routines with CPUID-based calibration
  x86/acrn: Mark TSC frequency as known when using ACRN for calibration
  clocksource: hyper-v: Register sched_clock save/restore iff it's
    necessary
  clocksource: hyper-v: Drop wrappers to sched_clock save/restore
    helpers
  clocksource: hyper-v: Don't save/restore TSC offset when using HV
    sched_clock
  x86/kvmclock: Setup kvmclock for secondary CPUs iff CONFIG_SMP=y
  x86/kvm: Don't disable kvmclock on BSP in syscore_suspend()
  x86/paravirt: Remove unnecessary PARAVIRT=n stub for
    paravirt_set_sched_clock()
  x86/paravirt: Move handling of unstable PV clocks into
    paravirt_set_sched_clock()
  x86/kvmclock: Move sched_clock save/restore helpers up in kvmclock.c
  x86/xen/time: Nullify x86_platform's sched_clock save/restore hooks
  x86/vmware: Nullify save/restore hooks when using VMware's sched_clock
  x86/tsc: WARN if TSC sched_clock save/restore used with PV sched_clock
  x86/paravirt: Pass sched_clock save/restore helpers during
    registration
  x86/kvmclock: Move kvm_sched_clock_init() down in kvmclock.c
  x86/xen/time: Mark xen_setup_vsyscall_time_info() as __init
  x86/pvclock: Mark setup helpers and related various as
    __init/__ro_after_init
  x86/pvclock: WARN if pvclock's valid_flags are overwritten
  x86/kvmclock: Refactor handling of PVCLOCK_TSC_STABLE_BIT during
    kvmclock_init()
  timekeeping: Resume clocksources before reading persistent clock
  x86/kvmclock: Hook clocksource.suspend/resume when kvmclock isn't
    sched_clock
  x86/kvmclock: WARN if wall clock is read while kvmclock is suspended
  x86/kvmclock: Enable kvmclock on APs during onlining if kvmclock isn't
    sched_clock
  x86/paravirt: Mark __paravirt_set_sched_clock() as __init
  x86/paravirt: Plumb a return code into __paravirt_set_sched_clock()
  x86/paravirt: Don't use a PV sched_clock in CoCo guests with trusted
    TSC
  x86/tsc: Pass KNOWN_FREQ and RELIABLE as params to registration
  x86/tsc: Rejects attempts to override TSC calibration with lesser
    routine
  x86/kvmclock: Mark TSC as reliable when it's constant and nonstop
  x86/kvmclock: Get local APIC bus frequency from PV CPUID Timing Info
  x86/kvmclock: Use TSC for sched_clock if it's constant and non-stop
  x86/paravirt: kvmclock: Setup kvmclock early iff it's sched_clock
  x86/paravirt: Move using_native_sched_clock() stub into timer.h
  x86/tsc: Add standalone helper for getting CPU frequency from CPUID
  x86/kvmclock: Get CPU base frequency from CPUID when it's available

 Documentation/virt/kvm/x86/cpuid.rst |  12 ++
 arch/x86/coco/sev/core.c             |   9 +-
 arch/x86/coco/tdx/tdx.c              |  27 ++-
 arch/x86/include/asm/kvm_para.h      |  12 +-
 arch/x86/include/asm/tdx.h           |   2 +
 arch/x86/include/asm/timer.h         |  18 +-
 arch/x86/include/asm/tsc.h           |  20 +++
 arch/x86/include/asm/x86_init.h      |   2 -
 arch/x86/include/uapi/asm/kvm_para.h |  11 ++
 arch/x86/kernel/cpu/acrn.c           |   5 +-
 arch/x86/kernel/cpu/mshyperv.c       |  69 +-------
 arch/x86/kernel/cpu/vmware.c         |  11 +-
 arch/x86/kernel/jailhouse.c          |   6 +-
 arch/x86/kernel/kvm.c                |  62 +++++--
 arch/x86/kernel/kvmclock.c           | 250 +++++++++++++++++++--------
 arch/x86/kernel/pvclock.c            |   9 +-
 arch/x86/kernel/smpboot.c            |   3 +-
 arch/x86/kernel/tsc.c                | 184 +++++++++++++++-----
 arch/x86/kernel/x86_init.c           |   1 -
 arch/x86/mm/mem_encrypt_amd.c        |   3 -
 arch/x86/xen/time.c                  |  13 +-
 drivers/clocksource/hyperv_timer.c   |  38 ++--
 include/clocksource/hyperv_timer.h   |   2 -
 kernel/time/timekeeping.c            |   9 +-
 24 files changed, 537 insertions(+), 241 deletions(-)


base-commit: 1196e304db58189264bb5953b4e8da7e90cda615
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310175.1581020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy50-0005L5-Av; Fri, 15 May 2026 19:20:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310175.1581020; Fri, 15 May 2026 19:20:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy50-0005Ko-5s; Fri, 15 May 2026 19:20:14 +0000
Received: by outflank-mailman (input) for mailman id 1310175;
 Fri, 15 May 2026 19:20:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <36HEHagYKCUEvhdqmfjrrjoh.frp0hq-ghyhoolvwv.0hqsurmhfw.ruj@flex--seanjc.bounces.google.com>)
 id 1wNy4y-00059c-21
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy4x-0039nU-EU
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:11 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <36HEHagYKCUEvhdqmfjrrjoh.frp0hq-ghyhoolvwv.0hqsurmhfw.ruj@flex--seanjc.bounces.google.com>)
 id 6a0771e9-2eae-0a2a0a5409dd-0a2a4501c83a-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:11 +0200
Received: from [209.85.210.202] (helo=mail-pf1-f202.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <36HEHagYKCUEvhdqmfjrrjoh.frp0hq-ghyhoolvwv.0hqsurmhfw.ruj@flex--seanjc.bounces.google.com>)
 id 6a0771e9-c1f2-0a2a45010019-d155d2cab997-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:11 +0200
Received: by mail-pf1-f202.google.com with SMTP id
 d2e1a72fcca58-8386367b23cso110465b3a.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872809; x=1779477609; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=jST9oUAeGChZmjVu7tMLxKyDKtrkhYcd1woip2cswJk=;
        b=TN1PoJ7EL+ReIRdJl32XQHAeNNxYyAhVZTF0irM00ioxF7AJieDo0Ao8rykpxbNB+r
         9Uea0A9zEmUfNAFc4p2Lb1kJ8wgCCI2EaAYX88+ogYEfZShBh9COVcAy75b0ndE1At2k
         NYXvE/tUgx5/3+9Pc4b7cdYcomzcHDz4oTZHY35Bi7PVfJceSG8Iph5siWfHNke8XDgn
         6Ey0KvUrK1ZvOIbtyMHZMJpQDZG/gLUG2axpqdNoodqvs7MbBE+euk5bhP9v+fOtxtke
         23kh5wsJwl/Xdy8yEfZgM2lmElHPA7RFZ6fR36HCzd1eiosr8jPg7/mWsZrGCxNJN6+p
         Fn9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872809; x=1779477609;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=jST9oUAeGChZmjVu7tMLxKyDKtrkhYcd1woip2cswJk=;
        b=TO4KccPr9RYo7p7/YyznZwAxqVvVFUZIOVT9ovplRqYtXbBfAAoA+T1nhw14AUErth
         8kjQNjiGmUEyeCUkDgO7hXkDQiWzZMdsIMwVsEgUXQCj34OlN0HcT7bUpVpH43LmAK2c
         P6bB9iXoVGXFE5GLVpkZXTLK1/n7GGpILdfa4y2RwW63hKSFlhx17GJo1iLYemkuTxxM
         SrSsXxMcEyEfu76YVOqadss56MbCsZPqgLOYTFowhc7tXcM7/hczokQdS+C7NLr3QKW0
         UBRQJVaLikVQ1i+Um+BioWIXVj8/9GgkbhXQHSuiA7kE1WLqMe9YOOtwkYXv0v6eppUJ
         OA8Q==
X-Forwarded-Encrypted: i=1; AFNElJ+J911UjvC5K5JWNG69mIhl3yM+UjPu4a4G2hrf3rSHMTOz4WSl1KtSy2HxvFJTO+613i167vXDjMg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyILEV1rudPFmxfsJ+I2HzELD6F1UdPYvo9TvKYtmnDtjRy/XKW
	fSjVudGbXEtCmCqNOwZjyYDkvhiP6ITLL05cnIQWTF4FG06kKabZQ80yxJlSJhaNEGEeYhtou0v
	H+QwCQQ==
X-Received: from pfbfc32.prod.google.com ([2002:a05:6a00:2e20:b0:82f:96ee:b9ab])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:3004:b0:838:a932:de26
 with SMTP id d2e1a72fcca58-83f33bca63emr5607513b3a.1.1778872808989; Fri, 15
 May 2026 12:20:08 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:02 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-2-seanjc@google.com>
Subject: [PATCH v3 01/41] x86/tsc: Add a standalone helpers for getting TSC
 info from CPUID.0x15
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-d62444/1778872811-AED59FF4-9655EA66/0/0
X-purgate-type: clean
X-purgate-size: 5244

Extract retrieval of TSC frequency information from CPUID into standalone
helpers so that TDX guest support can reuse the logic.  Provide a version
that includes the multiplier math as TDX does NOT want to use
native_calibrate_tsc()'s fallback logic that derives the TSC frequency
based on CPUID.0x16, when the core crystal frequency isn't known.

Opportunsitically drop native_calibrate_tsc()'s "== 0" and "!= 0" checks
in favor of the kernel's preferred style.

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/tsc.h |  9 +++++
 arch/x86/kernel/tsc.c      | 67 +++++++++++++++++++++++++-------------
 2 files changed, 53 insertions(+), 23 deletions(-)

diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h
index 4f7f09f50552..0c57fadc4a39 100644
--- a/arch/x86/include/asm/tsc.h
+++ b/arch/x86/include/asm/tsc.h
@@ -83,6 +83,15 @@ static inline cycles_t get_cycles(void)
 }
 #define get_cycles get_cycles
 
+struct cpuid_tsc_info {
+	unsigned int denominator;
+	unsigned int numerator;
+	unsigned int crystal_khz;
+	unsigned int tsc_khz;
+};
+extern int cpuid_get_tsc_info(struct cpuid_tsc_info *info);
+extern int cpuid_get_tsc_freq(struct cpuid_tsc_info *info);
+
 extern void tsc_early_init(void);
 extern void tsc_init(void);
 extern void mark_tsc_unstable(char *reason);
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index c5110eb554bc..f92236f40cbc 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -658,46 +658,67 @@ static unsigned long quick_pit_calibrate(void)
 	return delta;
 }
 
+int cpuid_get_tsc_info(struct cpuid_tsc_info *info)
+{
+	unsigned int ecx_hz, edx;
+
+	memset(info, 0, sizeof(*info));
+
+	if (boot_cpu_data.cpuid_level < CPUID_LEAF_TSC)
+		return -ENOENT;
+
+	/* CPUID 15H TSC/Crystal ratio, plus optionally Crystal Hz */
+	cpuid(CPUID_LEAF_TSC, &info->denominator, &info->numerator, &ecx_hz, &edx);
+
+	if (!info->denominator || !info->numerator)
+		return -ENOENT;
+
+	/*
+	 * Note, some CPUs provide the multiplier information, but not the core
+	 * crystal frequency.  The multiplier information is still useful for
+	 * such CPUs, as the crystal frequency can be gleaned from CPUID.0x16.
+	 */
+	info->crystal_khz = ecx_hz / 1000;
+	return 0;
+}
+
+int cpuid_get_tsc_freq(struct cpuid_tsc_info *info)
+{
+	if (cpuid_get_tsc_info(info) || !info->crystal_khz)
+		return -ENOENT;
+
+	info->tsc_khz = info->crystal_khz * info->numerator / info->denominator;
+	return 0;
+}
+
 /**
  * native_calibrate_tsc - determine TSC frequency
  * Determine TSC frequency via CPUID, else return 0.
  */
 unsigned long native_calibrate_tsc(void)
 {
-	unsigned int eax_denominator, ebx_numerator, ecx_hz, edx;
-	unsigned int crystal_khz;
+	struct cpuid_tsc_info info;
 
 	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
 		return 0;
 
-	if (boot_cpu_data.cpuid_level < CPUID_LEAF_TSC)
+	if (cpuid_get_tsc_info(&info))
 		return 0;
 
-	eax_denominator = ebx_numerator = ecx_hz = edx = 0;
-
-	/* CPUID 15H TSC/Crystal ratio, plus optionally Crystal Hz */
-	cpuid(CPUID_LEAF_TSC, &eax_denominator, &ebx_numerator, &ecx_hz, &edx);
-
-	if (ebx_numerator == 0 || eax_denominator == 0)
-		return 0;
-
-	crystal_khz = ecx_hz / 1000;
-
 	/*
 	 * Denverton SoCs don't report crystal clock, and also don't support
 	 * CPUID_LEAF_FREQ for the calculation below, so hardcode the 25MHz
 	 * crystal clock.
 	 */
-	if (crystal_khz == 0 &&
-			boot_cpu_data.x86_vfm == INTEL_ATOM_GOLDMONT_D)
-		crystal_khz = 25000;
+	if (!info.crystal_khz && boot_cpu_data.x86_vfm == INTEL_ATOM_GOLDMONT_D)
+		info.crystal_khz = 25000;
 
 	/*
 	 * TSC frequency reported directly by CPUID is a "hardware reported"
 	 * frequency and is the most accurate one so far we have. This
 	 * is considered a known frequency.
 	 */
-	if (crystal_khz != 0)
+	if (info.crystal_khz)
 		setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 
 	/*
@@ -705,15 +726,15 @@ unsigned long native_calibrate_tsc(void)
 	 * clock, but we can easily calculate it to a high degree of accuracy
 	 * by considering the crystal ratio and the CPU speed.
 	 */
-	if (crystal_khz == 0 && boot_cpu_data.cpuid_level >= CPUID_LEAF_FREQ) {
+	if (!info.crystal_khz && boot_cpu_data.cpuid_level >= CPUID_LEAF_FREQ) {
 		unsigned int eax_base_mhz, ebx, ecx, edx;
 
 		cpuid(CPUID_LEAF_FREQ, &eax_base_mhz, &ebx, &ecx, &edx);
-		crystal_khz = eax_base_mhz * 1000 *
-			eax_denominator / ebx_numerator;
+		info.crystal_khz = eax_base_mhz * 1000 *
+			info.denominator / info.numerator;
 	}
 
-	if (crystal_khz == 0)
+	if (!info.crystal_khz)
 		return 0;
 
 	/*
@@ -730,10 +751,10 @@ unsigned long native_calibrate_tsc(void)
 	 * lapic_timer_period here to avoid having to calibrate the APIC
 	 * timer later.
 	 */
-	lapic_timer_period = crystal_khz * 1000 / HZ;
+	lapic_timer_period = info.crystal_khz * 1000 / HZ;
 #endif
 
-	return crystal_khz * ebx_numerator / eax_denominator;
+	return info.crystal_khz * info.numerator / info.denominator;
 }
 
 static unsigned long cpu_khz_from_cpuid(void)
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310179.1581029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5G-0005kt-Ho; Fri, 15 May 2026 19:20:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310179.1581029; Fri, 15 May 2026 19:20:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5G-0005km-Eo; Fri, 15 May 2026 19:20:30 +0000
Received: by outflank-mailman (input) for mailman id 1310179;
 Fri, 15 May 2026 19:20:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3-nEHagYKCVMDzv84x19916z.x97Iz8-yzGz663DED.Iz8AC94zxE.9C1@flex--seanjc.bounces.google.com>)
 id 1wNy5F-0005js-K6
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5F-007OOK-0S
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:29 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3-nEHagYKCVMDzv84x19916z.x97Iz8-yzGz663DED.Iz8AC94zxE.9C1@flex--seanjc.bounces.google.com>)
 id 6a0771ef-bab6-0a2a0a5309dd-0a2a4503db10-10
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:28 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3-nEHagYKCVMDzv84x19916z.x97Iz8-yzGz663DED.Iz8AC94zxE.9C1@flex--seanjc.bounces.google.com>)
 id 6a0771fb-672d-0a2a45030019-d155d6c9c1c7-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:28 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2bc763c7256so4824995ad.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872827; x=1779477627; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=4uXjPuEkhteosgn8xfkxRem+kth4PBQNYWCq/GT/iNY=;
        b=GK71kFKD4rGOoPqt+QjsmUlw63DZuawh6jmlEJu94rz9o2pDZz1Qx6VGL4z76Edew4
         yhmG0/1mWr7/neBaNNMcM9pgc7ppmsSEhH9c8KSIn7+JCvT/gDN0TG0CKlUz+iaVUbEi
         Fosdypv1Xo9AbFT07UncGxqW21lxjil5q4jd8vyrZQiRW5MZJC5gyQWUaQ0vHyMgEjcO
         Iowin7vVum0DgE7N8JLp+WjBAp7KJ8voYtC+YrmYaQwxEFYPhE9c3QTmD9SC9ndiJSWh
         87y5pNSG7IkOwffZyVJu6yKttaDEOWDJhcFHrNgPLO840XM2CAiWwMHLxs0FYbS9V5KI
         m4/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872827; x=1779477627;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=4uXjPuEkhteosgn8xfkxRem+kth4PBQNYWCq/GT/iNY=;
        b=RHMhw4CF2+x4eYt6GsVQVZNdb/hpwFUv4e8F2mCfZpReONI5k6pSoeej3TeL6sVIgq
         zuppx85ehC3T9M1sUUq3KOLdmqtZyEiJnxIDGFUpuqwQkQ7BuuaPDLGovEm/muHQgDkR
         IMm6URcx0S/Iwk+mOoNdOEODdkyiKUvSegv0rPXwnlmw7nots0aJNJUNZpSPeacsf/3P
         aDl/CuHDLo82MnlQzwLymmd0+gqpQs9psXJpO+HWPySLrDlDnibnQC/pMyIUKDrplzRn
         +pTcPghxSNO1J5AU+++4ppv/hyh5rJVkVCpepm4i1i4UTnBIlYWbcezg5diqQE2t6cr+
         5n5g==
X-Forwarded-Encrypted: i=1; AFNElJ/QlS6KCrDE6Oizv1k/+d78bUFuPzC0a0FjYjwRSAfex9D2F9ifdSwews3P62ILSBw83qgoNd4I+dQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxHDpBqPT9jE8K6Okp7jOQkmKBO57kkFhFwG8/a1IZttzBdGkfg
	Z8jjxTP48QfFeQICHQrZQy1kv8eQ6vz1NCoVxlhN0FeMe8mFKmGqUM+yZhvQkKIyGyYYUuVGYkE
	ruNabKw==
X-Received: from pgno7.prod.google.com ([2002:a63:7e47:0:b0:c79:788d:5b72])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:e097:b0:39f:8c23:34c6
 with SMTP id adf61e73a8af0-3b22ecedb15mr6528440637.35.1778872826182; Fri, 15
 May 2026 12:20:26 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:03 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-3-seanjc@google.com>
Subject: [PATCH v3 02/41] x86/tsc: Add helper to register CPU and TSC freq
 calibration routines
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-33051d/1778872828-41197938-34A5FFC6/0/0
X-purgate-type: clean
X-purgate-size: 7499

Add a helper to register non-native, i.e. PV and CoCo, CPU and TSC
frequency calibration routines.  This will allow consolidating handling
of common TSC properties that are forced by hypervisor (PV routines),
and will also allow adding sanity checks to guard against overriding a
TSC calibration routine with a routine that is less robust/trusted.

Make the CPU calibration routine optional, as Xen (very sanely) doesn't
assume the CPU runs as the same frequency as the TSC.

Wrap the helper in an #ifdef to document that the kernel overrides
the native routines when running as a VM, and to guard against unwanted
usage.  Add a TODO to call out that AMD_MEM_ENCRYPT is a mess and doesn't
depend on HYPERVISOR_GUEST because it gates both guest and host code.

No functional change intended.

Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Tested-by: Michael Kelley <mhklinux@outlook.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/coco/sev/core.c       |  4 ++--
 arch/x86/include/asm/tsc.h     |  4 ++++
 arch/x86/kernel/cpu/acrn.c     |  4 ++--
 arch/x86/kernel/cpu/mshyperv.c |  3 +--
 arch/x86/kernel/cpu/vmware.c   |  4 ++--
 arch/x86/kernel/jailhouse.c    |  4 ++--
 arch/x86/kernel/kvmclock.c     |  4 ++--
 arch/x86/kernel/tsc.c          | 17 +++++++++++++++++
 arch/x86/xen/time.c            |  2 +-
 9 files changed, 33 insertions(+), 13 deletions(-)

diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c
index 7ed3da998489..d27cf8f8b025 100644
--- a/arch/x86/coco/sev/core.c
+++ b/arch/x86/coco/sev/core.c
@@ -2048,8 +2048,8 @@ void __init snp_secure_tsc_init(void)
 
 	snp_tsc_freq_khz = SNP_SCALE_TSC_FREQ(tsc_freq_mhz * 1000, secrets->tsc_factor);
 
-	x86_platform.calibrate_cpu = securetsc_get_tsc_khz;
-	x86_platform.calibrate_tsc = securetsc_get_tsc_khz;
+	tsc_register_calibration_routines(securetsc_get_tsc_khz,
+					  securetsc_get_tsc_khz);
 
 	early_memunmap(mem, PAGE_SIZE);
 }
diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h
index 0c57fadc4a39..bae709f5f44d 100644
--- a/arch/x86/include/asm/tsc.h
+++ b/arch/x86/include/asm/tsc.h
@@ -94,6 +94,10 @@ extern int cpuid_get_tsc_freq(struct cpuid_tsc_info *info);
 
 extern void tsc_early_init(void);
 extern void tsc_init(void);
+#if defined(CONFIG_HYPERVISOR_GUEST) || defined(CONFIG_AMD_MEM_ENCRYPT)
+extern void tsc_register_calibration_routines(unsigned long (*calibrate_tsc)(void),
+					      unsigned long (*calibrate_cpu)(void));
+#endif
 extern void mark_tsc_unstable(char *reason);
 extern int unsynchronized_tsc(void);
 extern int check_tsc_unstable(void);
diff --git a/arch/x86/kernel/cpu/acrn.c b/arch/x86/kernel/cpu/acrn.c
index 2c5b51aad91a..c1506cb87d8c 100644
--- a/arch/x86/kernel/cpu/acrn.c
+++ b/arch/x86/kernel/cpu/acrn.c
@@ -29,8 +29,8 @@ static void __init acrn_init_platform(void)
 	/* Install system interrupt handler for ACRN hypervisor callback */
 	sysvec_install(HYPERVISOR_CALLBACK_VECTOR, sysvec_acrn_hv_callback);
 
-	x86_platform.calibrate_tsc = acrn_get_tsc_khz;
-	x86_platform.calibrate_cpu = acrn_get_tsc_khz;
+	tsc_register_calibration_routines(acrn_get_tsc_khz,
+					  acrn_get_tsc_khz);
 }
 
 static bool acrn_x2apic_available(void)
diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
index 640e6b223c2d..8d2401be420c 100644
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86/kernel/cpu/mshyperv.c
@@ -573,8 +573,7 @@ static void __init ms_hyperv_init_platform(void)
 
 	if (ms_hyperv.features & HV_ACCESS_FREQUENCY_MSRS &&
 	    ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
-		x86_platform.calibrate_tsc = hv_get_tsc_khz;
-		x86_platform.calibrate_cpu = hv_get_tsc_khz;
+		tsc_register_calibration_routines(hv_get_tsc_khz, hv_get_tsc_khz);
 		setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 	}
 
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index 34b73573b108..b88d9ca01202 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -419,8 +419,8 @@ static void __init vmware_platform_setup(void)
 		}
 
 		vmware_tsc_khz = tsc_khz;
-		x86_platform.calibrate_tsc = vmware_get_tsc_khz;
-		x86_platform.calibrate_cpu = vmware_get_tsc_khz;
+		tsc_register_calibration_routines(vmware_get_tsc_khz,
+						  vmware_get_tsc_khz);
 
 #ifdef CONFIG_X86_LOCAL_APIC
 		/* Skip lapic calibration since we know the bus frequency. */
diff --git a/arch/x86/kernel/jailhouse.c b/arch/x86/kernel/jailhouse.c
index f58ce9220e0f..db8f31fdb480 100644
--- a/arch/x86/kernel/jailhouse.c
+++ b/arch/x86/kernel/jailhouse.c
@@ -210,8 +210,6 @@ static void __init jailhouse_init_platform(void)
 	x86_init.mpparse.parse_smp_cfg		= jailhouse_parse_smp_config;
 	x86_init.pci.arch_init			= jailhouse_pci_arch_init;
 
-	x86_platform.calibrate_cpu		= jailhouse_get_tsc;
-	x86_platform.calibrate_tsc		= jailhouse_get_tsc;
 	x86_platform.get_wallclock		= jailhouse_get_wallclock;
 	x86_platform.legacy.rtc			= 0;
 	x86_platform.legacy.warm_reset		= 0;
@@ -221,6 +219,8 @@ static void __init jailhouse_init_platform(void)
 
 	machine_ops.emergency_restart		= jailhouse_no_restart;
 
+	tsc_register_calibration_routines(jailhouse_get_tsc, jailhouse_get_tsc);
+
 	while (pa_data) {
 		mapping = early_memremap(pa_data, sizeof(header));
 		memcpy(&header, mapping, sizeof(header));
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index b5991d53fc0e..e9e7394140dd 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -321,8 +321,8 @@ void __init kvmclock_init(void)
 	flags = pvclock_read_flags(&hv_clock_boot[0].pvti);
 	kvm_sched_clock_init(flags & PVCLOCK_TSC_STABLE_BIT);
 
-	x86_platform.calibrate_tsc = kvm_get_tsc_khz;
-	x86_platform.calibrate_cpu = kvm_get_tsc_khz;
+	tsc_register_calibration_routines(kvm_get_tsc_khz, kvm_get_tsc_khz);
+
 	x86_platform.get_wallclock = kvm_get_wallclock;
 	x86_platform.set_wallclock = kvm_set_wallclock;
 #ifdef CONFIG_X86_LOCAL_APIC
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index f92236f40cbc..7e639c0a94a2 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -1281,6 +1281,23 @@ static void __init check_system_tsc_reliable(void)
 		tsc_disable_clocksource_watchdog();
 }
 
+/*
+ * TODO: Disentangle AMD_MEM_ENCRYPT and make SEV guest support depend on
+ *	 HYPERVISOR_GUEST.
+ */
+#if defined(CONFIG_HYPERVISOR_GUEST) || defined(CONFIG_AMD_MEM_ENCRYPT)
+void tsc_register_calibration_routines(unsigned long (*calibrate_tsc)(void),
+				       unsigned long (*calibrate_cpu)(void))
+{
+	if (WARN_ON_ONCE(!calibrate_tsc))
+		return;
+
+	x86_platform.calibrate_tsc = calibrate_tsc;
+	if (calibrate_cpu)
+		x86_platform.calibrate_cpu = calibrate_cpu;
+}
+#endif
+
 /*
  * Make an educated guess if the TSC is trustworthy and synchronized
  * over all CPUs.
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index d62c14334b35..3d3165eef821 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -569,7 +569,7 @@ static void __init xen_init_time_common(void)
 	static_call_update(pv_steal_clock, xen_steal_clock);
 	paravirt_set_sched_clock(xen_sched_clock);
 
-	x86_platform.calibrate_tsc = xen_tsc_khz;
+	tsc_register_calibration_routines(xen_tsc_khz, NULL);
 	x86_platform.get_wallclock = xen_get_wallclock;
 }
 
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310180.1581038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5H-00061Y-R0; Fri, 15 May 2026 19:20:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310180.1581038; Fri, 15 May 2026 19:20:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5H-00061O-Ng; Fri, 15 May 2026 19:20:31 +0000
Received: by outflank-mailman (input) for mailman id 1310180;
 Fri, 15 May 2026 19:20:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3-3EHagYKCVQE0w95y2AA270.yA8J09-z0H0774EFE.J09BDA50yF.AD2@flex--seanjc.bounces.google.com>)
 id 1wNy5G-0005kg-HX
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5F-007OOK-Ty
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:29 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3-3EHagYKCVQE0w95y2AA270.yA8J09-z0H0774EFE.J09BDA50yF.AD2@flex--seanjc.bounces.google.com>)
 id 6a0771ef-bab6-0a2a0a5309dd-0a2a4503db10-14
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:29 +0200
Received: from [209.85.210.201] (helo=mail-pf1-f201.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3-3EHagYKCVQE0w95y2AA270.yA8J09-z0H0774EFE.J09BDA50yF.AD2@flex--seanjc.bounces.google.com>)
 id 6a0771fc-672d-0a2a45030019-d155d2c9f06e-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:29 +0200
Received: by mail-pf1-f201.google.com with SMTP id
 d2e1a72fcca58-82f7bec24fdso156221b3a.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872828; x=1779477628; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=f8J88NcF7oH9XUSV/4XAna5n7NY6XY4d9JdR9Rumg2w=;
        b=X8J5yOFdWPkauQXkoVGrpiMj/e+mBQ3ws8f48L4NId81qRmD3a9VirCwGLCH0mULFO
         49CAy457zbnzBfJOGlUSIDiuWY+tztKTfBkTSnl9juH/xz/S2gi36pFw5kkkjysaSY8l
         hyzhtvDluaBE4QTGV+3ZBWVS6B871NHo5T1xxWqDdXNtdAz48l8dclLVd86q9T/J+3Iy
         9z1nJ94+VEong19yO9/z7SDdQygwq3I0TZjyv2asXpJbTp9yI4QEBF68Z2MqQNzM79DQ
         C+0JW84fuKluPa2Kiwl+ieRrzi0wRqco40eS5+oowsYfeyN0x2eHJtTyM82OXXrPnqdv
         vcVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872828; x=1779477628;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=f8J88NcF7oH9XUSV/4XAna5n7NY6XY4d9JdR9Rumg2w=;
        b=LYRRNDm4bJrzjMZJ66UT1NCvHrTCo4C3cRQ52WaElPdruwrxMHDRXueHr+D75I5/Ll
         pohREYUNpMq0/pxWYbC58E9FAlUN/+vKMWon+d/5qlFEngKpmiMsYWfUYhfYGGaSN/d7
         8lybKluL45z2GfUKwHgnkZh2DMjCe2X2TNvcxCJYdj/pepSLqYlELfEklMLe7EuOpJar
         0OTXG/Wr5eUBjZF3uFcvLgP9lLWHfzemp08BUX9LVDQUOuESCnwpoHuQGZSy/Gp0UrBZ
         /B3sNsbAO9wZE3Kg/ozLoc662tm7JAAamLka5M+zfB0c4twLPilfyh5VgwFZ7Lz41DuO
         UVTg==
X-Forwarded-Encrypted: i=1; AFNElJ+g8G0c6rav64oaRg4CflLaAjgnsjbg6UfDKTNXvi/l3BoJBqP1Wr03Kb9X3penAsWDP/qljCUt4b8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyFl2DX/oVflAmd+rU/uQEXgIlVn1MDfTc6jjjqVGKH63Wgj6yh
	KU9C/9pmLGY5jOsb474vekTilsD9W9fTjgJiTNN/2D0u8reZAgiYPT8nTpmRR+0TqdiLd7yCsNA
	1O37Ngg==
X-Received: from pfch22.prod.google.com ([2002:a05:6a00:1716:b0:82f:6a26:5f78])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:12e4:b0:835:405a:7e68
 with SMTP id d2e1a72fcca58-83f33d9dd83mr5936320b3a.32.1778872827310; Fri, 15
 May 2026 12:20:27 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:04 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-4-seanjc@google.com>
Subject: [PATCH v3 03/41] x86/sev: Mark TSC as reliable when configuring
 Secure TSC
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-33051d/1778872829-4046D938-E33DD438/0/0
X-purgate-type: clean
X-purgate-size: 1673

Move the code to mark the TSC as reliable from sme_early_init() to
snp_secure_tsc_init().  The only reader of TSC_RELIABLE is the aptly
named check_system_tsc_reliable(), which runs in tsc_init(), i.e.
after snp_secure_tsc_init().

This will allow consolidating the handling of TSC_KNOWN_FREQ and
TSC_RELIABLE when overriding the TSC calibration routine.

Cc: Tom Lendacky <thomas.lendacky@amd.com>
Reviewed-by: Nikunj A Dadhania <nikunj@amd.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/coco/sev/core.c      | 2 ++
 arch/x86/mm/mem_encrypt_amd.c | 3 ---
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c
index d27cf8f8b025..14ced854cd83 100644
--- a/arch/x86/coco/sev/core.c
+++ b/arch/x86/coco/sev/core.c
@@ -2041,6 +2041,8 @@ void __init snp_secure_tsc_init(void)
 	secrets = (__force struct snp_secrets_page *)mem;
 
 	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
+	setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
+
 	rdmsrq(MSR_AMD64_GUEST_TSC_FREQ, tsc_freq_mhz);
 
 	/* Extract the GUEST TSC MHZ from BIT[17:0], rest is reserved space */
diff --git a/arch/x86/mm/mem_encrypt_amd.c b/arch/x86/mm/mem_encrypt_amd.c
index 2f8c32173972..6c3af974c7c2 100644
--- a/arch/x86/mm/mem_encrypt_amd.c
+++ b/arch/x86/mm/mem_encrypt_amd.c
@@ -535,9 +535,6 @@ void __init sme_early_init(void)
 		 */
 		x86_init.resources.dmi_setup = snp_dmi_setup;
 	}
-
-	if (sev_status & MSR_AMD64_SNP_SECURE_TSC)
-		setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
 }
 
 void __init mem_encrypt_free_decrypted_mem(void)
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310183.1581047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5K-0006IK-6X; Fri, 15 May 2026 19:20:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310183.1581047; Fri, 15 May 2026 19:20:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5K-0006IA-3D; Fri, 15 May 2026 19:20:34 +0000
Received: by outflank-mailman (input) for mailman id 1310183;
 Fri, 15 May 2026 19:20:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3_XEHagYKCVYG2yB704CC492.0CAL2B-12J2996GHG.L2BDFC720H.CF4@flex--seanjc.bounces.google.com>)
 id 1wNy5I-0006B6-OX
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5I-0039nU-4E
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:32 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3_XEHagYKCVYG2yB704CC492.0CAL2B-12J2996GHG.L2BDFC720H.CF4@flex--seanjc.bounces.google.com>)
 id 6a0771db-2eae-0a2a0a5409dd-0a2a450ca7e8-28
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:32 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3_XEHagYKCVYG2yB704CC492.0CAL2B-12J2996GHG.L2BDFC720H.CF4@flex--seanjc.bounces.google.com>)
 id 6a0771fe-62f1-0a2a450c0019-d155d6c9a8b1-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:31 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2ba054e0304so10110415ad.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872830; x=1779477630; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:reply-to:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uYn60803QiVrZ6qwk1MLFZ7C4I/KRQoL9rhTP31HXeM=;
        b=bQ0juJAjx5hBWREDTyPlajhD5c0lqO0B8YgZGn+dumYgNFVljWJ2CLcCjkPhJjPQj3
         HF4jcLz2t0ldLURmKQC1YLNWgBg+kKGoH8DxYOLZbilmWEFMHLvRB+2Es/LiJxzbB3oW
         VGs4I9p77MrC/tmHKJMW8KOQzTKZoiqJg7e7V5OkCX3vTCNs4QSBK4dlAZ7u40KMuQZ4
         h2DHNp+qIzQxEAZovY8YUZAzWD37gqZXgQCi3ZwuJpKCl9sAdvOi7KVIPjI59kwhMfJw
         YBvEscw4rysoAyUON3zrwOAv+635daGvy7kWRScqMLir+cxj94PzaThgZVi3tCaZfd0Y
         IRCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872830; x=1779477630;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:reply-to:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=uYn60803QiVrZ6qwk1MLFZ7C4I/KRQoL9rhTP31HXeM=;
        b=GIqR99XojRpu6Inmhgf4SCBQA89fPZ6x9n19f4uT6uyDONJ9yYoP6w/sDmCl4Bnb8t
         IdPYBmbKnE3mohSuhs6NMpEFxo3HMEnBVrmJHUgQ7vPCME64HqwMlkkN8CNxSCwXBvqx
         A0CzGOX2vJtAREQZ+OG2iuFc1FZ7gYHvcNkH1jGKy8NsE4YbtvFpssma2hCs7JU6zWNG
         Z2wGfxRJYV30wBSO8uRXtuE+Tv8miua0PBiy23l1H6DZQooEVLbS9u8pTi3El7+6Pn40
         7YvmlkjPw/3NA2Sp/E4EFrA/4kIV/ZDeU/w3EQLhx3Yswl4xoeP2Jq53eoCm/1W+4cwa
         a0SA==
X-Forwarded-Encrypted: i=1; AFNElJ9JL9qJhsK3pyNFw4P+fuyEeiQsOqKZ22FuOuv24tlNEAWhbly4WgxZC91poTKBuy1U4mYffIp29ZM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzv435ZwrLrTEGT6wkKfdTwQoWPRl/u/NA/iwRTCfqa+kBBYLvo
	OUrVwbBDsya0XvUEOXtd6LU7YMb12qvLgLKUp9+l5LJCwyEi3FdxD5Zn/MjHlHDdx1QCwvv4iIm
	o6A44yw==
X-Received: from plkj6.prod.google.com ([2002:a17:902:6906:b0:2bd:a0e6:1a81])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:3843:b0:2b0:6068:4c5f
 with SMTP id d9443c01a7336-2bd526ed865mr87328355ad.8.1778872829653; Fri, 15
 May 2026 12:20:29 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:06 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-6-seanjc@google.com>
Subject: [PATCH v3 05/41] x86/tdx: Override PV calibration routines with
 CPUID-based calibration
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d25034/1778872832-F407FCF5-9E674668/0/0
X-purgate-type: clean
X-purgate-size: 5002

When running as a TDX guest, explicitly override the TSC frequency
calibration routine with CPUID-based calibration instead of potentially
relying on a hypervisor-controlled PV routine.  For TDX guests, CPUID.0x15
is always emulated by the TDX-Module, i.e. the information from CPUID is
more trustworthy than the information provided by the hypervisor.

To maintain backwards compatibility with TDX guest kernels that use native
calibration, and because it's the least awful option, retain
native_calibrate_tsc()'s stuffing of the local APIC bus period using the
core crystal frequency.  While it's entirely possible for the hypervisor
to emulate the APIC timer at a different frequency than the core crystal
frequency, the commonly accepted interpretation of Intel's SDM is that APIC
timer runs at the core crystal frequency when that latter is enumerated via
CPUID:

  The APIC timer frequency will be the processor=E2=80=99s bus clock or cor=
e
  crystal clock frequency (when TSC/core crystal clock ratio is enumerated
  in CPUID leaf 0x15).

If the hypervisor is malicious and deliberately runs the APIC timer at the
wrong frequency, nothing would stop the hypervisor from modifying the
frequency at any time, i.e. attempting to manually calibrate the frequency
out of paranoia would be futile.

Deliberately leave the CPU frequency calibration routine as is, since the
TDX-Module doesn't provide any guarantees with respect to CPUID.0x16.

Opportunistically add a comment explaining that CoCo TSC initialization
needs to come after hypervisor specific initialization.

Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/coco/tdx/tdx.c    | 30 +++++++++++++++++++++++++++---
 arch/x86/include/asm/tdx.h |  2 ++
 arch/x86/kernel/tsc.c      |  8 ++++++++
 3 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/arch/x86/coco/tdx/tdx.c b/arch/x86/coco/tdx/tdx.c
index 29b6f1ed59ec..26890cea790b 100644
--- a/arch/x86/coco/tdx/tdx.c
+++ b/arch/x86/coco/tdx/tdx.c
@@ -8,6 +8,7 @@
 #include <linux/export.h>
 #include <linux/io.h>
 #include <linux/kexec.h>
+#include <asm/apic.h>
 #include <asm/coco.h>
 #include <asm/tdx.h>
 #include <asm/vmx.h>
@@ -1123,9 +1124,6 @@ void __init tdx_early_init(void)
=20
 	setup_force_cpu_cap(X86_FEATURE_TDX_GUEST);
=20
-	/* TSC is the only reliable clock in TDX guest */
-	setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
-
 	cc_vendor =3D CC_VENDOR_INTEL;
=20
 	/* Configure the TD */
@@ -1195,3 +1193,29 @@ void __init tdx_early_init(void)
=20
 	tdx_announce();
 }
+
+static unsigned long tdx_get_tsc_khz(void)
+{
+	struct cpuid_tsc_info info;
+
+	if (WARN_ON_ONCE(cpuid_get_tsc_freq(&info)))
+		return 0;
+
+	lapic_timer_period =3D info.crystal_khz * 1000 / HZ;
+
+	return info.tsc_khz;
+}
+
+void __init tdx_tsc_init(void)
+{
+	/* TSC is the only reliable clock in TDX guest */
+	setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
+	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
+
+	/*
+	 * Override the PV calibration routines (if set) with more trustworthy
+	 * CPUID-based calibration.  The TDX module emulates CPUID, whereas any
+	 * PV information is provided by the hypervisor.
+	 */
+	tsc_register_calibration_routines(tdx_get_tsc_khz, NULL);
+}
diff --git a/arch/x86/include/asm/tdx.h b/arch/x86/include/asm/tdx.h
index 15eac89b0afb..60deab0ed979 100644
--- a/arch/x86/include/asm/tdx.h
+++ b/arch/x86/include/asm/tdx.h
@@ -57,6 +57,7 @@ struct ve_info {
 #ifdef CONFIG_INTEL_TDX_GUEST
=20
 void __init tdx_early_init(void);
+void __init tdx_tsc_init(void);
=20
 void tdx_get_ve_info(struct ve_info *ve);
=20
@@ -78,6 +79,7 @@ void __init tdx_dump_td_ctls(u64 td_ctls);
 #else
=20
 static inline void tdx_early_init(void) { };
+static inline void tdx_tsc_init(void) { }
 static inline void tdx_halt(void) { };
=20
 static inline bool tdx_early_handle_ve(struct pt_regs *regs) { return fals=
e; }
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 243999692aea..e00f53e3dd8d 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -34,6 +34,7 @@
 #include <asm/topology.h>
 #include <asm/uv/uv.h>
 #include <asm/sev.h>
+#include <asm/tdx.h>
=20
 unsigned int __read_mostly cpu_khz;	/* TSC clocks / usec, not used here */
 EXPORT_SYMBOL(cpu_khz);
@@ -1559,8 +1560,15 @@ void __init tsc_early_init(void)
 	if (is_early_uv_system())
 		return;
=20
+	/*
+	 * Do CoCo specific "secure" TSC initialization *after* hypervisor
+	 * platform initialization so that the secure variant can override the
+	 * hypervisor's PV calibration routine with a more trusted method.
+	 */
 	if (cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC))
 		snp_secure_tsc_init();
+	else if (boot_cpu_has(X86_FEATURE_TDX_GUEST))
+		tdx_tsc_init();
=20
 	if (!determine_cpu_tsc_frequencies(true))
 		return;
--=20
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310184.1581052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5K-0006LE-IS; Fri, 15 May 2026 19:20:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310184.1581052; Fri, 15 May 2026 19:20:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5K-0006K9-Bg; Fri, 15 May 2026 19:20:34 +0000
Received: by outflank-mailman (input) for mailman id 1310184;
 Fri, 15 May 2026 19:20:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3_HEHagYKCVUF1xA6z3BB381.zB9K1A-01I1885FGF.K1ACEB61zG.BE3@flex--seanjc.bounces.google.com>)
 id 1wNy5J-0006Dh-0E
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5I-0039nU-CT
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:32 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3_HEHagYKCVUF1xA6z3BB381.zB9K1A-01I1885FGF.K1ACEB61zG.BE3@flex--seanjc.bounces.google.com>)
 id 6a0771fd-2eae-0a2a0a5409dd-0a2a4502be44-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:32 +0200
Received: from [209.85.210.201] (helo=mail-pf1-f201.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3_HEHagYKCVUF1xA6z3BB381.zB9K1A-01I1885FGF.K1ACEB61zG.BE3@flex--seanjc.bounces.google.com>)
 id 6a0771fd-af86-0a2a45020019-d155d2c9a97b-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:30 +0200
Received: by mail-pf1-f201.google.com with SMTP id
 d2e1a72fcca58-8230d6d54a5so1056912b3a.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872829; x=1779477629; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=ikDY1x359wvY/+q3wacNdXpEm487YvEWh2udCoEd+NA=;
        b=OZbRHsKSLwHbxyLI5+CWSdjSTBsqE8EudA31+iur5m2mHA9m7kbCMKJDxtOE++2Gyo
         eYE+8lHk/tsDy/59f+DIuJMur4LZF64iF9p7izC8id8yM3MMqoh1ZnsWwx5ssJQWjSpi
         kBpfAUFfp2s5pYdLPFWNeVMmwxHUHHPy/wiaGbbOBYMu7/vFrYwD/KQ+z5+i/OI4jTkV
         EqFDPC5WaBcQYuHvevhhMRiZ6cfjr9ZnGrTeqVK6jJEWMkzE0dAYAas0LdpR9fR7Qcx7
         vuohKhpFKbYsJLUUWM2fqloZc8OdL6CE9sx95S/MDX6C54d/coD1hJ2IDiLEbWWJDBQI
         zI3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872829; x=1779477629;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ikDY1x359wvY/+q3wacNdXpEm487YvEWh2udCoEd+NA=;
        b=Hs4L9/FZLFqhdccCgX/U8VTLxPm4XI48XP+KaU4nPNTY/8MOZ7eGLbtb+59OpdZiaP
         9F+ERlO2KUSoY+J6sZ7S0CVQz4h+MWRHt/0UV7Yl4oHOr0Kyb4v3c0DcagFEAkEsAFFA
         uMgWgRcK/O8CGUaxGg7y6U4pdtWOvSAvr64/sCwi4uggSc44KXMJKzF9fD1YiB/M1qLK
         2tMW5Ms3d8vZSHE098adoyILIeI/v9VfqOwGwNjrqfJU7FVAZGit3MoNhh6ORQjo0+2u
         mgGc6xFWveIkVje3odZr0P+F1f+xwovzbzCYXfAo3gYlXixSIRFRndyPC0UUFLMLt7MR
         X9vQ==
X-Forwarded-Encrypted: i=1; AFNElJ/v8fklv3MCI598bFORUqa5jb9KyUB8ECtvQPiwBdZDCxabIcp0bCi7pxmiv8stihT3ikf+6jdJs34=@lists.xenproject.org
X-Gm-Message-State: AOJu0YydalLHPiNji+gaSu12owcMwnKoCGOB+Cziwf2f2U5L/dpNBwq6
	GYx+gkxnCzvkelWpfXGn8nf7lXxqxb/oUdZyenw/5Y0Ne0aGz8PlkrefYbNKlOyKz7dls3KTtK9
	zczR0bA==
X-Received: from pfbgg10.prod.google.com ([2002:a05:6a00:630a:b0:83a:d498:99fb])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:a907:b0:835:447b:a2ac
 with SMTP id d2e1a72fcca58-83f18d5b8f5mr8777489b3a.5.1778872828431; Fri, 15
 May 2026 12:20:28 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:05 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-5-seanjc@google.com>
Subject: [PATCH v3 04/41] x86/sev: Move check for SNP Secure TSC support to tsc_early_init()
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-720697/1778872831-A9B70161-310994C1/0/0
X-purgate-type: clean
X-purgate-size: 1533

Move the check on having a Secure TSC to the common tsc_early_init() so
that it's obvious that having a Secure TSC is conditional, and to prepare
for adding TDX to the mix (blindly initializing *both* SNP and TDX TSC
logic looks especially weird).

No functional change intended.

Cc: Tom Lendacky <thomas.lendacky@amd.com>
Reviewed-by: Nikunj A Dadhania <nikunj@amd.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/coco/sev/core.c | 3 ---
 arch/x86/kernel/tsc.c    | 3 ++-
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c
index 14ced854cd83..39fb50697542 100644
--- a/arch/x86/coco/sev/core.c
+++ b/arch/x86/coco/sev/core.c
@@ -2029,9 +2029,6 @@ void __init snp_secure_tsc_init(void)
 	unsigned long tsc_freq_mhz;
 	void *mem;
 
-	if (!cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC))
-		return;
-
 	mem = early_memremap_encrypted(sev_secrets_pa, PAGE_SIZE);
 	if (!mem) {
 		pr_err("Unable to get TSC_FACTOR: failed to map the SNP secrets page.\n");
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 7e639c0a94a2..243999692aea 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -1559,7 +1559,8 @@ void __init tsc_early_init(void)
 	if (is_early_uv_system())
 		return;
 
-	snp_secure_tsc_init();
+	if (cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC))
+		snp_secure_tsc_init();
 
 	if (!determine_cpu_tsc_frequencies(true))
 		return;
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310185.1581065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5L-0006ju-Pq; Fri, 15 May 2026 19:20:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310185.1581065; Fri, 15 May 2026 19:20:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5L-0006hv-KD; Fri, 15 May 2026 19:20:35 +0000
Received: by outflank-mailman (input) for mailman id 1310185;
 Fri, 15 May 2026 19:20:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3_nEHagYKCVcH3zC815DD5A3.1DBM3C-23K3AA7HIH.M3CEGD831I.DG5@flex--seanjc.bounces.google.com>)
 id 1wNy5J-0006Ho-QS
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5J-0039nU-6j
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:33 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3_nEHagYKCVcH3zC815DD5A3.1DBM3C-23K3AA7HIH.M3CEGD831I.DG5@flex--seanjc.bounces.google.com>)
 id 6a0771db-2eae-0a2a0a5409dd-0a2a450ca7e8-30
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:33 +0200
Received: from [209.85.216.74] (helo=mail-pj1-f74.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3_nEHagYKCVcH3zC815DD5A3.1DBM3C-23K3AA7HIH.M3CEGD831I.DG5@flex--seanjc.bounces.google.com>)
 id 6a0771ff-62f1-0a2a450c0019-d155d84ac4cc-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:33 +0200
Received: by mail-pj1-f74.google.com with SMTP id
 98e67ed59e1d1-365fd467cf6so93321a91.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872831; x=1779477631; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=SQlmIR1hnrcjkd+R45vwU7fSi2OSjNiqFudElplFZs0=;
        b=Jq5aRqC1RASd+v9Vg1MdsRuHa+Mb7zO6K2HuLPV1LET1bNMZpZteQ8SzgyvPd27Qut
         uJctIIceAPdKcaGr2FWsxGO6UlokUX6S1IC4hwxSBeqSAR9+f8kWnnnAjCgfRRGgy0ej
         5ME+8wcwBzca3Pcu6wIRbESecT//uKKj0clH7X9NhZrrn7Vel73v+fxt7C0Jq01mTlR3
         7gDqH85F4y7UhPyX7wMY+jp2FfSiNlEhQbNm0kGa8GZOVIZ4jC9PDIdmFcNXw2M0qpJS
         IYbmVO37DHaXAlqsU/1lSXnoiYDna0jW0IdqZ7ogoWqUjdtZuyrU9+QDqBy7vIdDnpFM
         QPrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872831; x=1779477631;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=SQlmIR1hnrcjkd+R45vwU7fSi2OSjNiqFudElplFZs0=;
        b=DzFLaIIBi2Rrtjh6ikoOHX0XFzVZVGqAVqL6SKIpB54HJzv/Q7NXQkF/FRUHYvXF86
         c5iVsiW++1CZRbHo47YUQufHVWE35jB7v5ASAqh3q3ceHVJ4Ke8LI+SgLpU40TfyUwOy
         7mJ2GZ8wUe3utFEvLpbnRESwuPncmqmTRa4PjSXMTff7ljglZnxKa4kHSMVhYszDKTTz
         VYi3AK0K8jots5hMfiCcOV2Rr3sFoLWaNNO7U6FJuvzD/BQS+ksGb0gFbftg6/jNGBoK
         6SXf8wlXRVYKuvFSn7g+QhDu8eWhcM56dL8lWLyCKqPm37mj41WYIWa7KQFuXMUVKjrh
         BpBA==
X-Forwarded-Encrypted: i=1; AFNElJ/GtVzRCJBAyGnehuc/L7NL0bLfZe4TLXt6cR/8jkDYfUUAhCACj8CP+6U5nQq9557XHCb9fn+3pWc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFdGoSvFMlYnpcGsghnST/HK9m+vT5YDlhfjE/+envSJm1FlwF
	tU+7PaSA4rWk4MgcSaBG1Vc0GWbk+mjkDDIiw/ER35M7OLTNOo6CYCf47rxnu5pA3d0z4KYGPF5
	XDbSdiA==
X-Received: from pgmt14.prod.google.com ([2002:a63:224e:0:b0:c80:2399:151])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:2fc4:b0:368:85fb:7b8b
 with SMTP id 98e67ed59e1d1-36951cb936amr5644652a91.22.1778872830766; Fri, 15
 May 2026 12:20:30 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:07 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-7-seanjc@google.com>
Subject: [PATCH v3 06/41] x86/acrn: Mark TSC frequency as known when using
 ACRN for calibration
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-d25034/1778872833-DBF7ACF5-46DFD8C9/0/0
X-purgate-type: clean
X-purgate-size: 901

Mark the TSC frequency as known when using ACRN's PV CPUID information.
Per commit 81a71f51b89e ("x86/acrn: Set up timekeeping") and common sense,
the TSC freq is explicitly provided by the hypervisor.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/cpu/acrn.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/x86/kernel/cpu/acrn.c b/arch/x86/kernel/cpu/acrn.c
index c1506cb87d8c..2da3de4d470e 100644
--- a/arch/x86/kernel/cpu/acrn.c
+++ b/arch/x86/kernel/cpu/acrn.c
@@ -29,6 +29,7 @@ static void __init acrn_init_platform(void)
 	/* Install system interrupt handler for ACRN hypervisor callback */
 	sysvec_install(HYPERVISOR_CALLBACK_VECTOR, sysvec_acrn_hv_callback);
 
+	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 	tsc_register_calibration_routines(acrn_get_tsc_khz,
 					  acrn_get_tsc_khz);
 }
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310187.1581073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5N-00070g-45; Fri, 15 May 2026 19:20:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310187.1581073; Fri, 15 May 2026 19:20:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5N-0006zp-0H; Fri, 15 May 2026 19:20:37 +0000
Received: by outflank-mailman (input) for mailman id 1310187;
 Fri, 15 May 2026 19:20:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3_3EHagYKCVgI40D926EE6B4.2ECN4D-34L4BB8IJI.N4DFHE942J.EH6@flex--seanjc.bounces.google.com>)
 id 1wNy5L-0006gM-NP
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5L-00BXCT-3l
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:35 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3_3EHagYKCVgI40D926EE6B4.2ECN4D-34L4BB8IJI.N4DFHE942J.EH6@flex--seanjc.bounces.google.com>)
 id 6a0771fd-2eae-0a2a0a5409dd-0a2a4502be44-10
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:35 +0200
Received: from [209.85.210.201] (helo=mail-pf1-f201.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3_3EHagYKCVgI40D926EE6B4.2ECN4D-34L4BB8IJI.N4DFHE942J.EH6@flex--seanjc.bounces.google.com>)
 id 6a077200-af86-0a2a45020019-d155d2c9e4ef-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:34 +0200
Received: by mail-pf1-f201.google.com with SMTP id
 d2e1a72fcca58-836d0184333so238443b3a.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872832; x=1779477632; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=a7rFpf+FBNzzfzzETx/AclsYanbj3gnBq18rs01MCT0=;
        b=SpGLXpDN/ur9y9rH1fzNTpB5WsnXtaJItAS2ku16YygMrcae7c3dzcdtWkusk7agAe
         wZqfvtveMni9B0ta8+g6CvV+ZtAnR0gHLWvb+KGvWOujoTIqH6EEimGy/db+R33JeKm+
         9WvaB04uva14Vhi6LwOxwl4eimaayOTh0jAK1vFxwDcoEqn8IP5QosCKgH289/dKwUsW
         yIUALrsKoftQr8/Ro8otBBkDpR7hnBaLSxHbp5/HJKgYaPRnzuvYqMKc7Xtin+hUx0La
         MBQH7P0i43S1GTWD6mKOUXL0KdsoUbu8TJKZ1opfPNcsPCJyz5siijlHPCWjrQJChcJC
         gpZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872832; x=1779477632;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=a7rFpf+FBNzzfzzETx/AclsYanbj3gnBq18rs01MCT0=;
        b=Ke59rWLNW1t0+8E3lBbQQMehgEm/D8NaN5EU3bqoXjgye5p2r7mpANzwVEDK68ME1Z
         0C8mLHpbwDOfr5YbO1tDp4wWg1W87A+8BA7Az/dKGhruMNAfTlsPk/9Smtt0/3yL9Po9
         ak/+eP8daPiN5EjohmBf1y2m/Iv3l2YL7KmGZfu6SbrM5uWGBRTvMA5XVCfnLv6+urtq
         frL3b4zLcsbRRMP+OaejS/4/GWkK4wQ++sTFx8VbL4gmn8UwtjhyZhkYKZTcwSeJPRjh
         rLh5ZPE4pzG9ADXjirAyLvvLGVEvbhf+amqNAPzb5uLDVACBTZCanOL3mWFUbymDgv0f
         t3dQ==
X-Forwarded-Encrypted: i=1; AFNElJ91SuZG0rcNNJo8rZI46rqNF9ssToksy8Ma4evjUstEW/eRft1Izln9Hl94TF1WlLf58Xk8b3lneb8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzaoTD2VPVgJMsqhiVeYeoAPEYOcLLLTbqH8+LvAD1U/eBGuH2x
	ZVTyRlmHYnZ0XcVED51INHPWnP4x6KSRZnJAAZZ/3s2dhzUJR2VSuF6rGXPcYhOR/VYq8UYk82Z
	RsPSWaQ==
X-Received: from pfbfk26.prod.google.com ([2002:a05:6a00:3a9a:b0:83e:fb05:9740])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:3689:b0:837:7e7d:3c8
 with SMTP id d2e1a72fcca58-83f33df5086mr5912339b3a.39.1778872831848; Fri, 15
 May 2026 12:20:31 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:08 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-8-seanjc@google.com>
Subject: [PATCH v3 07/41] clocksource: hyper-v: Register sched_clock
 save/restore iff it's necessary
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-720697/1778872834-82D6F161-6BB0CF91/0/0
X-purgate-type: clean
X-purgate-size: 6563

Register the Hyper-V reference counter (refcounter) callbacks for saving
and restoring its PV sched_clock, if and only if the refcounter is
actually being used for sched_clock.  Currently, Hyper-V overrides the
save/restore hooks if the reference TSC available, whereas the Hyper-V
refcounter code only overrides sched_clock if the reference TSC is
available *and* it's not invariant.  The flaw is effectively papered over
by invoking the "old" save/restore callbacks as part of save/restore, but
that's unnecessary and fragile.

To avoid introducing more complexity, and to allow for additional cleanups
of the PV sched_clock code, move the save/restore hooks and logic into
hyperv_timer.c and simply wire up the hooks when overriding sched_clock
itself.

Note, while the Hyper-V refcounter code is intended to be architecture
neutral, CONFIG_PARAVIRT is firmly x86-only, i.e. adding a small amount of
x86 specific code (which will be reduced in future cleanups) doesn't
meaningfully pollute generic code.

Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Tested-by: Michael Kelley <mhklinux@outlook.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/cpu/mshyperv.c     | 58 ------------------------------
 drivers/clocksource/hyperv_timer.c | 50 ++++++++++++++++++++++++++
 2 files changed, 50 insertions(+), 58 deletions(-)

diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
index 8d2401be420c..5ca139ae50b4 100644
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86/kernel/cpu/mshyperv.c
@@ -275,63 +275,6 @@ static void hv_guest_crash_shutdown(struct pt_regs *regs)
 }
 #endif /* CONFIG_CRASH_DUMP */
 
-static u64 hv_ref_counter_at_suspend;
-static void (*old_save_sched_clock_state)(void);
-static void (*old_restore_sched_clock_state)(void);
-
-/*
- * Hyper-V clock counter resets during hibernation. Save and restore clock
- * offset during suspend/resume, while also considering the time passed
- * before suspend. This is to make sure that sched_clock using hv tsc page
- * based clocksource, proceeds from where it left off during suspend and
- * it shows correct time for the timestamps of kernel messages after resume.
- */
-static void save_hv_clock_tsc_state(void)
-{
-	hv_ref_counter_at_suspend = hv_read_reference_counter();
-}
-
-static void restore_hv_clock_tsc_state(void)
-{
-	/*
-	 * Adjust the offsets used by hv tsc clocksource to
-	 * account for the time spent before hibernation.
-	 * adjusted value = reference counter (time) at suspend
-	 *                - reference counter (time) now.
-	 */
-	hv_adj_sched_clock_offset(hv_ref_counter_at_suspend - hv_read_reference_counter());
-}
-
-/*
- * Functions to override save_sched_clock_state and restore_sched_clock_state
- * functions of x86_platform. The Hyper-V clock counter is reset during
- * suspend-resume and the offset used to measure time needs to be
- * corrected, post resume.
- */
-static void hv_save_sched_clock_state(void)
-{
-	old_save_sched_clock_state();
-	save_hv_clock_tsc_state();
-}
-
-static void hv_restore_sched_clock_state(void)
-{
-	restore_hv_clock_tsc_state();
-	old_restore_sched_clock_state();
-}
-
-static void __init x86_setup_ops_for_tsc_pg_clock(void)
-{
-	if (!(ms_hyperv.features & HV_MSR_REFERENCE_TSC_AVAILABLE))
-		return;
-
-	old_save_sched_clock_state = x86_platform.save_sched_clock_state;
-	x86_platform.save_sched_clock_state = hv_save_sched_clock_state;
-
-	old_restore_sched_clock_state = x86_platform.restore_sched_clock_state;
-	x86_platform.restore_sched_clock_state = hv_restore_sched_clock_state;
-}
-
 #ifdef CONFIG_X86_64
 DEFINE_STATIC_CALL(hv_hypercall, hv_std_hypercall);
 EXPORT_STATIC_CALL_TRAMP_GPL(hv_hypercall);
@@ -739,7 +682,6 @@ static void __init ms_hyperv_init_platform(void)
 
 	/* Register Hyper-V specific clocksource */
 	hv_init_clocksource();
-	x86_setup_ops_for_tsc_pg_clock();
 	hv_vtl_init_platform();
 #endif
 	/*
diff --git a/drivers/clocksource/hyperv_timer.c b/drivers/clocksource/hyperv_timer.c
index e9f5034a1bc8..72b966340a46 100644
--- a/drivers/clocksource/hyperv_timer.c
+++ b/drivers/clocksource/hyperv_timer.c
@@ -537,10 +537,60 @@ static __always_inline void hv_setup_sched_clock(void *sched_clock)
 #elif defined CONFIG_PARAVIRT
 #include <asm/timer.h>
 
+static u64 hv_ref_counter_at_suspend;
+static void (*old_save_sched_clock_state)(void);
+static void (*old_restore_sched_clock_state)(void);
+
+/*
+ * Hyper-V clock counter resets during hibernation. Save and restore clock
+ * offset during suspend/resume, while also considering the time passed
+ * before suspend. This is to make sure that sched_clock using hv tsc page
+ * based clocksource, proceeds from where it left off during suspend and
+ * it shows correct time for the timestamps of kernel messages after resume.
+ */
+static void save_hv_clock_tsc_state(void)
+{
+	hv_ref_counter_at_suspend = hv_read_reference_counter();
+}
+
+static void restore_hv_clock_tsc_state(void)
+{
+	/*
+	 * Adjust the offsets used by hv tsc clocksource to
+	 * account for the time spent before hibernation.
+	 * adjusted value = reference counter (time) at suspend
+	 *                - reference counter (time) now.
+	 */
+	hv_adj_sched_clock_offset(hv_ref_counter_at_suspend - hv_read_reference_counter());
+}
+/*
+ * Functions to override save_sched_clock_state and restore_sched_clock_state
+ * functions of x86_platform. The Hyper-V clock counter is reset during
+ * suspend-resume and the offset used to measure time needs to be
+ * corrected, post resume.
+ */
+static void hv_save_sched_clock_state(void)
+{
+	old_save_sched_clock_state();
+	save_hv_clock_tsc_state();
+}
+
+static void hv_restore_sched_clock_state(void)
+{
+	restore_hv_clock_tsc_state();
+	old_restore_sched_clock_state();
+}
+
 static __always_inline void hv_setup_sched_clock(void *sched_clock)
 {
 	/* We're on x86/x64 *and* using PV ops */
 	paravirt_set_sched_clock(sched_clock);
+
+	old_save_sched_clock_state = x86_platform.save_sched_clock_state;
+	x86_platform.save_sched_clock_state = hv_save_sched_clock_state;
+
+	old_restore_sched_clock_state = x86_platform.restore_sched_clock_state;
+	x86_platform.restore_sched_clock_state = hv_restore_sched_clock_state;
 }
 #else /* !CONFIG_GENERIC_SCHED_CLOCK && !CONFIG_PARAVIRT */
 static __always_inline void hv_setup_sched_clock(void *sched_clock) {}
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310188.1581080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5N-00074F-Nl; Fri, 15 May 2026 19:20:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310188.1581080; Fri, 15 May 2026 19:20:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5N-00073N-8O; Fri, 15 May 2026 19:20:37 +0000
Received: by outflank-mailman (input) for mailman id 1310188;
 Fri, 15 May 2026 19:20:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3AXIHagYKCVoK62FB48GG8D6.4GEP6F-56N6DDAKLK.P6FHJGB64L.GJ8@flex--seanjc.bounces.google.com>)
 id 1wNy5M-0006mi-58
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5L-00BXCT-HR
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:35 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3AXIHagYKCVoK62FB48GG8D6.4GEP6F-56N6DDAKLK.P6FHJGB64L.GJ8@flex--seanjc.bounces.google.com>)
 id 6a0771fd-2eae-0a2a0a5409dd-0a2a4502be44-14
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:35 +0200
Received: from [209.85.215.201] (helo=mail-pg1-f201.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3AXIHagYKCVoK62FB48GG8D6.4GEP6F-56N6DDAKLK.P6FHJGB64L.GJ8@flex--seanjc.bounces.google.com>)
 id 6a077201-af86-0a2a45020019-d155d7c9d14c-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:35 +0200
Received: by mail-pg1-f201.google.com with SMTP id
 41be03b00d2f7-c82726f7b0bso138388a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872833; x=1779477633; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=VjouJF8LEnMo7j8C1cTkogOjB+phr08sb021HWXTXd8=;
        b=Qc/EW38vpzfAFNPJw3W3+EbKaB2LQjl8H0PM6LRzFXDlHqZ/WR7Ag/y6cgJ9uQxr3t
         XiomlN/erBqlWfLEs4VvRnnsgRp+nV41WX0dvNGFeNjwnFXrw46TaMSDjJPSGAd39IT7
         Z8f1KBCa9Zsw7kNhP6XbDfxezIXm9AyZz6a4pSEkTTcbZ0fr2K3GGmAKFkhDR2KSgswf
         7DgcQhbwHQSTK/12imqil9C8qf3UqckBufMx4mx+RilmphIyxKfgKR4PMydN4uGmSqpk
         Y2RruS4KVTQM2cUfwuVvjJhqGVPslnKLOu0HctuvVUAW06npA7VNCq3tWDpURHwMKO4D
         HhYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872833; x=1779477633;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=VjouJF8LEnMo7j8C1cTkogOjB+phr08sb021HWXTXd8=;
        b=mI8FuUSgdkAsdOhx3Gkvewg6fbYOzcHV9sBvkfoKMELdivriAApp0W/FIdTzM6XOb3
         Xyp8BquDBOmZ5UUppE7mZyvO1Zpwt45KJeOTVahFmll40US+SxSHsIKj3DQgueJkWT9x
         1H2mJJcKL4NhHEK09GuhQzCsUQJ2LMgKliCfqv9wyBLWtsQjQCXd9bkxOZtcodT1q4Cc
         0hRZvfw0YqDKvx83Og4qu/WPzd/tLifmiRw2EJDYpHQARmpYpF8zsyrg2P6PEuD7EuZu
         1bTv0h85p2o8aW4zDQhYLWt53eOJjOZIEqlCRi5/6/b+QqWNDFTWdagBBRWxPzsAyUig
         IuFQ==
X-Forwarded-Encrypted: i=1; AFNElJ//p85kLNn0Am3oRL3/mqiipytvsPSOYwd+5x1zBDA7YjDy5mX/ROW/NqEO7IE6HmYlXb5mZfbeDlg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YybZV5RVwj+rVcXuHWa9SUdHDXBPGE/l1NZKQJ2ut3iz6L0JUia
	QF91QghhmvEC2nqk56D31TQVjGUtCQGOnrivuUUG0z3q95KpBbJ05NFaIkPKm7JkI95yvpmt7AA
	Cla9pwg==
X-Received: from pfbcg6.prod.google.com ([2002:a05:6a00:2906:b0:836:ed4a:203f])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:72ab:b0:3a0:d88:6d6b
 with SMTP id adf61e73a8af0-3b22ecf592fmr6792680637.49.1778872833039; Fri, 15
 May 2026 12:20:33 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:09 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-9-seanjc@google.com>
Subject: [PATCH v3 08/41] clocksource: hyper-v: Drop wrappers to sched_clock
 save/restore helpers
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-720697/1778872835-AB762161-EC9D79B5/0/0
X-purgate-type: clean
X-purgate-size: 3392

Now that all of the Hyper-V reference counter sched_clock code is located
in a single file, drop the superfluous wrappers for the save/restore flows.

No functional change intended.

Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Tested-by: Michael Kelley <mhklinux@outlook.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 drivers/clocksource/hyperv_timer.c | 34 +++++-------------------------
 include/clocksource/hyperv_timer.h |  2 --
 2 files changed, 5 insertions(+), 31 deletions(-)

diff --git a/drivers/clocksource/hyperv_timer.c b/drivers/clocksource/hyperv_timer.c
index 72b966340a46..69c1c7264e5d 100644
--- a/drivers/clocksource/hyperv_timer.c
+++ b/drivers/clocksource/hyperv_timer.c
@@ -472,17 +472,6 @@ static void resume_hv_clock_tsc(struct clocksource *arg)
 	hv_set_msr(HV_MSR_REFERENCE_TSC, tsc_msr.as_uint64);
 }
 
-/*
- * Called during resume from hibernation, from overridden
- * x86_platform.restore_sched_clock_state routine. This is to adjust offsets
- * used to calculate time for hv tsc page based sched_clock, to account for
- * time spent before hibernation.
- */
-void hv_adj_sched_clock_offset(u64 offset)
-{
-	hv_sched_clock_offset -= offset;
-}
-
 #ifdef HAVE_VDSO_CLOCKMODE_HVCLOCK
 static int hv_cs_enable(struct clocksource *cs)
 {
@@ -548,12 +537,14 @@ static void (*old_restore_sched_clock_state)(void);
  * based clocksource, proceeds from where it left off during suspend and
  * it shows correct time for the timestamps of kernel messages after resume.
  */
-static void save_hv_clock_tsc_state(void)
+static void hv_save_sched_clock_state(void)
 {
+	old_save_sched_clock_state();
+
 	hv_ref_counter_at_suspend = hv_read_reference_counter();
 }
 
-static void restore_hv_clock_tsc_state(void)
+static void hv_restore_sched_clock_state(void)
 {
 	/*
 	 * Adjust the offsets used by hv tsc clocksource to
@@ -561,23 +552,8 @@ static void restore_hv_clock_tsc_state(void)
 	 * adjusted value = reference counter (time) at suspend
 	 *                - reference counter (time) now.
 	 */
-	hv_adj_sched_clock_offset(hv_ref_counter_at_suspend - hv_read_reference_counter());
-}
-/*
- * Functions to override save_sched_clock_state and restore_sched_clock_state
- * functions of x86_platform. The Hyper-V clock counter is reset during
- * suspend-resume and the offset used to measure time needs to be
- * corrected, post resume.
- */
-static void hv_save_sched_clock_state(void)
-{
-	old_save_sched_clock_state();
-	save_hv_clock_tsc_state();
-}
+	hv_sched_clock_offset -= (hv_ref_counter_at_suspend - hv_read_reference_counter());
 
-static void hv_restore_sched_clock_state(void)
-{
-	restore_hv_clock_tsc_state();
 	old_restore_sched_clock_state();
 }
 
diff --git a/include/clocksource/hyperv_timer.h b/include/clocksource/hyperv_timer.h
index d48dd4176fd3..a4c81a60f53d 100644
--- a/include/clocksource/hyperv_timer.h
+++ b/include/clocksource/hyperv_timer.h
@@ -38,8 +38,6 @@ extern void hv_remap_tsc_clocksource(void);
 extern unsigned long hv_get_tsc_pfn(void);
 extern struct ms_hyperv_tsc_page *hv_get_tsc_page(void);
 
-extern void hv_adj_sched_clock_offset(u64 offset);
-
 static __always_inline bool
 hv_read_tsc_page_tsc(const struct ms_hyperv_tsc_page *tsc_pg,
 		     u64 *cur_tsc, u64 *time)
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310189.1581092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5P-0007US-BV; Fri, 15 May 2026 19:20:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310189.1581092; Fri, 15 May 2026 19:20:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5P-0007TQ-40; Fri, 15 May 2026 19:20:39 +0000
Received: by outflank-mailman (input) for mailman id 1310189;
 Fri, 15 May 2026 19:20:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3AnIHagYKCVsL73GC59HH9E7.5HFQ7G-67O7EEBLML.Q7GIKHC75M.HK9@flex--seanjc.bounces.google.com>)
 id 1wNy5N-00070I-8E
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5M-00BXCT-KP
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:36 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3AnIHagYKCVsL73GC59HH9E7.5HFQ7G-67O7EEBLML.Q7GIKHC75M.HK9@flex--seanjc.bounces.google.com>)
 id 6a0771fd-2eae-0a2a0a5409dd-0a2a4502be44-22
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:36 +0200
Received: from [209.85.210.202] (helo=mail-pf1-f202.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3AnIHagYKCVsL73GC59HH9E7.5HFQ7G-67O7EEBLML.Q7GIKHC75M.HK9@flex--seanjc.bounces.google.com>)
 id 6a077203-af86-0a2a45020019-d155d2cab901-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:36 +0200
Received: by mail-pf1-f202.google.com with SMTP id
 d2e1a72fcca58-8386367b23cso110752b3a.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872834; x=1779477634; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=2d2hriGBYHFIT1h3oi40HlX5TSRUyuLIgvVXFrgjGyA=;
        b=cVLFw17iVP34bNIwr/UaNc1tlSCp7LZ2Njy7WEF+ObUFQFAHz73z3DNwHswLSk4z9v
         JZ+ge/j8xzRHpnDBKBYhNHq4dTsri8oCL6fu2t3O+C4ejY3ykdg4mhRfwezE/YIV1uLV
         Vw3bw6kv/Ovjk9Gr9W+HoSiLL/rOuwpFZhpO5AtSbVRd8duthfxk2m6xLB4DEd8hUP8f
         oGlCPy7u8FdXHwsveHRAZNHwRmVyVberHqgYjZ7PeiLPoF5N6vg3LGl7pUF21DGzJCks
         DicHbdbF9E/JvYMbnOxTNm3JReq1J+0Im+EO2d78K2avNEbIu9RCVSGyAxVG834ro5k+
         oAQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872834; x=1779477634;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=2d2hriGBYHFIT1h3oi40HlX5TSRUyuLIgvVXFrgjGyA=;
        b=hWabDz7+ug1r1a4Cuz1+s7CB5YjQnK1Bxpqt1fggnu5y2Gy1WBTDqqot28G//1vyak
         HO9Bm3HWCHDxmf+iTpB6escT5KgVJH06O+VNQwLJzkUM2XrqKG597l8KSyLehuXoNppy
         dxqb0mWpx3P2/SqujwpY0EmxgjzlkEAhFf0jK1+25cLciHqaLTkjnv5x3E3+FBiqfObv
         ILRVIgKWdM6pxbf4j2n/1KUoGvV0nRHyAFOw1LIzRuGoIzosPVO4UcwjZYxLOKFa0G1C
         atQiz2DmCt0xeFErs4iKBNUneGqlDEoKnqfvu3k1xw8I2QTffH1a5QWGv450D36B47Ta
         txuw==
X-Forwarded-Encrypted: i=1; AFNElJ8Y3zrGQAJGCUlex9xaBqdkncVN/sKXo3myNte7870y/VmG7MsVFoH3wCascPPOE3aPE5vSdi9ptDQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwusXfNfNw/+LRE5kOaBAjP8FvgBIYQbOr1Sp4E3bfXgAJ6LtDr
	jnB1YyHcZNpV5DGAPN7myN8iQbAKTCGMPO9FzhRB1RMuavquOwO3Y5F207koAcVHlOzrlmEd3o4
	AsHFP7Q==
X-Received: from pfblg3.prod.google.com ([2002:a05:6a00:7083:b0:82f:bf29:61aa])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:1ca4:b0:82c:6b1b:7ad4
 with SMTP id d2e1a72fcca58-83f33bc808emr5114483b3a.3.1778872834057; Fri, 15
 May 2026 12:20:34 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:10 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-10-seanjc@google.com>
Subject: [PATCH v3 09/41] clocksource: hyper-v: Don't save/restore TSC offset
 when using HV sched_clock
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-720697/1778872836-8276A161-31BF9B3C/0/0
X-purgate-type: clean
X-purgate-size: 2673

Now that Hyper-V overrides the sched_clock save/restore hooks if and only
sched_clock itself is set to the Hyper-V reference counter, drop the
invocation of the "old" save/restore callbacks.  When the registration of
the PV sched_clock was done separately from overriding the save/restore
hooks, it was possible for Hyper-V to clobber the TSC save/restore
callbacks without actually switching to the Hyper-V refcounter.

Enabling a PV sched_clock is a one-way street, i.e. the kernel will never
revert to using TSC for sched_clock, and so there is no need to invoke the
TSC save/restore hooks (and if there was, it belongs in common PV code).

Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Tested-by: Michael Kelley <mhklinux@outlook.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 drivers/clocksource/hyperv_timer.c | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/drivers/clocksource/hyperv_timer.c b/drivers/clocksource/hyperv_timer.c
index 69c1c7264e5d..ac1d9f9c381c 100644
--- a/drivers/clocksource/hyperv_timer.c
+++ b/drivers/clocksource/hyperv_timer.c
@@ -527,9 +527,6 @@ static __always_inline void hv_setup_sched_clock(void *sched_clock)
 #include <asm/timer.h>
 
 static u64 hv_ref_counter_at_suspend;
-static void (*old_save_sched_clock_state)(void);
-static void (*old_restore_sched_clock_state)(void);
-
 /*
  * Hyper-V clock counter resets during hibernation. Save and restore clock
  * offset during suspend/resume, while also considering the time passed
@@ -539,8 +536,6 @@ static void (*old_restore_sched_clock_state)(void);
  */
 static void hv_save_sched_clock_state(void)
 {
-	old_save_sched_clock_state();
-
 	hv_ref_counter_at_suspend = hv_read_reference_counter();
 }
 
@@ -553,8 +548,6 @@ static void hv_restore_sched_clock_state(void)
 	 *                - reference counter (time) now.
 	 */
 	hv_sched_clock_offset -= (hv_ref_counter_at_suspend - hv_read_reference_counter());
-
-	old_restore_sched_clock_state();
 }
 
 static __always_inline void hv_setup_sched_clock(void *sched_clock)
@@ -562,10 +555,7 @@ static __always_inline void hv_setup_sched_clock(void *sched_clock)
 	/* We're on x86/x64 *and* using PV ops */
 	paravirt_set_sched_clock(sched_clock);
 
-	old_save_sched_clock_state = x86_platform.save_sched_clock_state;
 	x86_platform.save_sched_clock_state = hv_save_sched_clock_state;
-
-	old_restore_sched_clock_state = x86_platform.restore_sched_clock_state;
 	x86_platform.restore_sched_clock_state = hv_restore_sched_clock_state;
 }
 #else /* !CONFIG_GENERIC_SCHED_CLOCK && !CONFIG_PARAVIRT */
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310191.1581096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5P-0007Z2-N7; Fri, 15 May 2026 19:20:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310191.1581096; Fri, 15 May 2026 19:20:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5P-0007Xm-EZ; Fri, 15 May 2026 19:20:39 +0000
Received: by outflank-mailman (input) for mailman id 1310191;
 Fri, 15 May 2026 19:20:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3A3IHagYKCVwM84HD6AIIAF8.6IGR8H-78P8FFCMNM.R8HJLID86N.ILA@flex--seanjc.bounces.google.com>)
 id 1wNy5O-0007HD-DJ
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5N-007OOK-PD
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:37 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3A3IHagYKCVwM84HD6AIIAF8.6IGR8H-78P8FFCMNM.R8HJLID86N.ILA@flex--seanjc.bounces.google.com>)
 id 6a0771a2-bab6-0a2a0a5309dd-0a2a45049d8e-46
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:37 +0200
Received: from [209.85.215.202] (helo=mail-pg1-f202.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3A3IHagYKCVwM84HD6AIIAF8.6IGR8H-78P8FFCMNM.R8HJLID86N.ILA@flex--seanjc.bounces.google.com>)
 id 6a077204-1dec-0a2a45040019-d155d7cadd81-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:37 +0200
Received: by mail-pg1-f202.google.com with SMTP id
 41be03b00d2f7-c70ea91bfe1so164708a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872836; x=1779477636; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=rYtqxRsyPTn9zcEDwit0IKYSbyTf6XV6vC/bmJj4kzY=;
        b=gFlLTAs1RQpJf2QXW4Rk/jBYt7h7xBHOQGpLq9GfZmbB85w5Xp9N9qRrUWi9kjx3xo
         ODrvmlgiFG9afu8vuEP3c92JAVLndbvYPoUa3xJB71UG+ZuJlo3fxID9SH+8/31rBuYE
         RC92O1WAueIrv8fbfEutln/M15qkVGRYMvvTwQKIY1OrFhwvrvrfRqOQi+zq7MEBPljk
         P5NLyOLUkQoQ6lck99iG1Ck4nYVCoc8rGYPyndd9wLRWtTXRcc7oDkfYj4uZjmZrRw/y
         /CbGbiFyoi/HdSv6rwf/U0pLy/KNVsz33YU3Miwtoc8C+9bBhrCrgMx1v0eKdztJmtp0
         JVsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872836; x=1779477636;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=rYtqxRsyPTn9zcEDwit0IKYSbyTf6XV6vC/bmJj4kzY=;
        b=B+M+LGuwqv91kAoTwaFewJuDdjNk/dww77zQvWEtc19xatgPziNGif20FIxOoAah6s
         PqxxLvVcuseqns+FUaZAB7YjPK6ykHin1MDrpyQVxAgNyrjYklXtFskuqfYGfss26Ytc
         zE8WkR3/2r/ebu5t5eNfSyyWkay7mlXCNkcZCGFpQmFDTVi+78/20qYxkYhRi9LND9r5
         7ZWvdfA7r28QIuTzrSmY4RQYoxixthBZWyF6aqAw/gZdKQfN5rV4vNOdycE/dJQC71kW
         xYeW5qQ8WnaWjFZK7TL0Vx/AlwIahv9YPGYoOs9MvPZQFuDcVJ1SKKzGsJWXazN0ykw0
         4/ww==
X-Forwarded-Encrypted: i=1; AFNElJ8Fwy6YHkDzYBjYaHR933A07EZ11sxctAJ8AHYQu+56kDD95TFySB3YvWXykbCY99u4aSeFh4o1aow=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQl9kOP+fAKKaFa0447e3uPlN0jFftra/WXVVNERMh67qCIb5P
	ID51ifnfWmHFraVwdZbvBLCtqwExdMgTI+x0Csth0upYvMh0JSm7m0EccyeG2zpkpKD09dKvvOo
	DOQ6gKg==
X-Received: from pgbgj3.prod.google.com ([2002:a05:6a02:4943:b0:c73:8741:7555])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:6a24:b0:39c:241:65a3
 with SMTP id adf61e73a8af0-3b22e6668b2mr6600745637.1.1778872835218; Fri, 15
 May 2026 12:20:35 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:11 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-11-seanjc@google.com>
Subject: [PATCH v3 10/41] x86/kvmclock: Setup kvmclock for secondary CPUs iff CONFIG_SMP=y
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-ebf023/1778872837-2997A3FF-61D3BE28/0/0
X-purgate-type: clean
X-purgate-size: 1325

Gate kvmclock's secondary CPU code on CONFIG_SMP, not CONFIG_X86_LOCAL_APIC.
Originally, kvmclock piggybacked PV APIC ops to setup secondary CPUs.
When that wart was fixed by commit df156f90a0f9 ("x86: Introduce
x86_cpuinit.early_percpu_clock_init hook"), the dependency on a local APIC
got carried forward unnecessarily.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index e9e7394140dd..df95516a9d89 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -187,7 +187,7 @@ static void kvm_restore_sched_clock_state(void)
 	kvm_register_clock("primary cpu clock, resume");
 }
 
-#ifdef CONFIG_X86_LOCAL_APIC
+#ifdef CONFIG_SMP
 static void kvm_setup_secondary_clock(void)
 {
 	kvm_register_clock("secondary cpu clock");
@@ -325,7 +325,7 @@ void __init kvmclock_init(void)
 
 	x86_platform.get_wallclock = kvm_get_wallclock;
 	x86_platform.set_wallclock = kvm_set_wallclock;
-#ifdef CONFIG_X86_LOCAL_APIC
+#ifdef CONFIG_SMP
 	x86_cpuinit.early_percpu_clock_init = kvm_setup_secondary_clock;
 #endif
 	x86_platform.save_sched_clock_state = kvm_save_sched_clock_state;
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310199.1581109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5X-0008VR-0C; Fri, 15 May 2026 19:20:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310199.1581109; Fri, 15 May 2026 19:20:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5W-0008VG-SM; Fri, 15 May 2026 19:20:46 +0000
Received: by outflank-mailman (input) for mailman id 1310199;
 Fri, 15 May 2026 19:20:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3CXIHagYKCWISEANJCGOOGLE.COMXEN-DEVELLISTS.XENPROJECT.ORG@flex--seanjc.bounces.google.com>)
 id 1wNy5V-0008MS-2p
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5U-0039ru-Em
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:44 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3CXIHagYKCWISEANJCGOOGLE.COMXEN-DEVELLISTS.XENPROJECT.ORG@flex--seanjc.bounces.google.com>)
 id 6a077209-5cb7-0a2a0a5109dd-0a2a450aaabc-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:44 +0200
Received: from [209.85.215.201] (helo=mail-pg1-f201.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3CXIHagYKCWISEANJCGOOGLE.COMXEN-DEVELLISTS.XENPROJECT.ORG@flex--seanjc.bounces.google.com>)
 id 6a07720a-56b3-0a2a450a0019-d155d7c9cdb3-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:44 +0200
Received: by mail-pg1-f201.google.com with SMTP id
 41be03b00d2f7-c8024fc7032so167521a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872842; x=1779477642; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=b0rQrOpjJ+Fm4CzrD79jMnHA824Fta4drwfB/O0XH0s=;
        b=q2qrZdFZdwtb0e7cyIwy5BQW97ZEHTxbFdvUrSDWAmQ/PXEpdW+2rGMqSOja/xTIF4
         d9/b2P630EWa88C3batz2jrI4JmOjnIpOO2jOMBh0T8FGYG2GQ3rSPkSTd+kDRR1EX5M
         5txYNJ46V7q7oga4NceBdLPWWPX6T6bFXsEXAVBru0m+Ojh30j4lLaNVVptm8vnqrT1c
         uhudqg9Nfx7vg2IRIDtRw3LONe/7VeMdHh+UrXSfUh3pnV6Bdx2gzV/kwlMCvWbDKIR2
         rMYiWwJywPOMzGVC6jR3RphpnuJB9cBvJr8E3+MD0eCrwBsThUG+ctHYie5lUVGw3Ngz
         lc+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872842; x=1779477642;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=b0rQrOpjJ+Fm4CzrD79jMnHA824Fta4drwfB/O0XH0s=;
        b=hVzcZmyBJLwzY/7JkNwO+49BvMCs4WPo9SwV55/oHoPXO6aEJlMdmDs6HsdbBDfZBE
         UkdYMqxrCvFprK00MpnycibWTUFq6BItAb99KXw8fJ15l8dm0Zt/8Q87JqAsANHX/gzo
         MAabtRPkk55qn5aAmvhp38JqTwRejINHbaiE79TSkNVAJReEBa2WMomPUFsVjWk9X4kA
         36sSgsY+mj3p+3uQ2mWso++vd34PLE6GAZSKa1f4bHpLo4jVG85Fs2DaVe92tFor9p7X
         oPEl1CUx3eB6Mo6dP2DsyMDXY2DKK14TxzcTbjYD5FjgLu0iIKqTPlMPTz/1c+gEE4iy
         v3aQ==
X-Forwarded-Encrypted: i=1; AFNElJ83YmOpi37NyUQwRkEfMYB5p8sAqUG5Ux59ymqQLWKePi7rDqmdAJvBLxUnSqbZUw0nSbnYsij7USc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzgLT72mFHAdbhijbmlDfNDmoQfNtGv15R70prCfGQXBu9tE7/0
	eSTnDdsqweL3RTE9OiJwH3kTI82Reqrcvax1+CGNuQPVI+2MlHO8Tk44jbcFYwWcnAmeETwzj4W
	f2APKxw==
X-Received: from pgbcr5.prod.google.com ([2002:a05:6a02:4105:b0:c80:2656:4e70])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:3299:b0:3a3:f936:2de6
 with SMTP id adf61e73a8af0-3b22ebdbb23mr6517200637.26.1778872841995; Fri, 15
 May 2026 12:20:41 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:12 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-12-seanjc@google.com>
Subject: [PATCH v3 11/41] x86/kvm: Don't disable kvmclock on BSP in syscore_suspend()
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-4011c0/1778872844-7216A8B7-DE72885C/0/0
X-purgate-type: clean
X-purgate-size: 5352

Don't disable kvmclock on the BSP during syscore_suspend(), as the BSP's
clock is NOT restored during syscore_resume(), but is instead restored
earlier via the sched_clock restore callback.  If suspend is aborted, e.g.
due to a late wakeup, the BSP will run without its clock enabled, which
"works" only because KVM-the-hypervisor is kind enough to not clobber the
shared memory when the clock is disabled.  But over time, the BSP's view
of time will drift from APs.

Plumb in an "action" to KVM-as-a-guest and kvmclock code in preparation
for additional cleanups to kvmclock's suspend/resume logic.

Fixes: c02027b5742b ("x86/kvm: Disable kvmclock on all CPUs on shutdown")
Cc: stable@vger.kernel.org
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/kvm_para.h |  8 +++++++-
 arch/x86/kernel/kvm.c           | 15 ++++++++-------
 arch/x86/kernel/kvmclock.c      | 31 +++++++++++++++++++++++++------
 3 files changed, 40 insertions(+), 14 deletions(-)

diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h
index 4a47c16e2df8..2adba2aff539 100644
--- a/arch/x86/include/asm/kvm_para.h
+++ b/arch/x86/include/asm/kvm_para.h
@@ -118,8 +118,14 @@ static inline long kvm_sev_hypercall3(unsigned int nr, unsigned long p1,
 }
 
 #ifdef CONFIG_KVM_GUEST
+enum kvm_guest_cpu_action {
+	KVM_GUEST_BSP_SUSPEND,
+	KVM_GUEST_AP_OFFLINE,
+	KVM_GUEST_SHUTDOWN,
+};
+
 void kvmclock_init(void);
-void kvmclock_disable(void);
+void kvmclock_cpu_action(enum kvm_guest_cpu_action action);
 bool kvm_para_available(void);
 unsigned int kvm_arch_para_features(void);
 unsigned int kvm_arch_para_hints(void);
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 06534e16cfb5..0131bc1cb459 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -457,7 +457,7 @@ static void __init sev_map_percpu_data(void)
 	}
 }
 
-static void kvm_guest_cpu_offline(bool shutdown)
+static void kvm_guest_cpu_offline(enum kvm_guest_cpu_action action)
 {
 	kvm_disable_steal_time();
 	if (kvm_para_has_feature(KVM_FEATURE_PV_EOI))
@@ -465,9 +465,10 @@ static void kvm_guest_cpu_offline(bool shutdown)
 	if (kvm_para_has_feature(KVM_FEATURE_MIGRATION_CONTROL))
 		wrmsrq(MSR_KVM_MIGRATION_CONTROL, 0);
 	kvm_pv_disable_apf();
-	if (!shutdown)
+	if (action != KVM_GUEST_SHUTDOWN)
 		apf_task_wake_all();
-	kvmclock_disable();
+
+	kvmclock_cpu_action(action);
 }
 
 static int kvm_cpu_online(unsigned int cpu)
@@ -723,7 +724,7 @@ static int kvm_cpu_down_prepare(unsigned int cpu)
 	unsigned long flags;
 
 	local_irq_save(flags);
-	kvm_guest_cpu_offline(false);
+	kvm_guest_cpu_offline(KVM_GUEST_AP_OFFLINE);
 	local_irq_restore(flags);
 	return 0;
 }
@@ -734,7 +735,7 @@ static int kvm_suspend(void *data)
 {
 	u64 val = 0;
 
-	kvm_guest_cpu_offline(false);
+	kvm_guest_cpu_offline(KVM_GUEST_BSP_SUSPEND);
 
 #ifdef CONFIG_ARCH_CPUIDLE_HALTPOLL
 	if (kvm_para_has_feature(KVM_FEATURE_POLL_CONTROL))
@@ -765,7 +766,7 @@ static struct syscore kvm_syscore = {
 
 static void kvm_pv_guest_cpu_reboot(void *unused)
 {
-	kvm_guest_cpu_offline(true);
+	kvm_guest_cpu_offline(KVM_GUEST_SHUTDOWN);
 }
 
 static int kvm_pv_reboot_notify(struct notifier_block *nb,
@@ -789,7 +790,7 @@ static struct notifier_block kvm_pv_reboot_nb = {
 #ifdef CONFIG_CRASH_DUMP
 static void kvm_crash_shutdown(struct pt_regs *regs)
 {
-	kvm_guest_cpu_offline(true);
+	kvm_guest_cpu_offline(KVM_GUEST_SHUTDOWN);
 	native_machine_crash_shutdown(regs);
 }
 #endif
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index df95516a9d89..006e3a13500b 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -178,8 +178,22 @@ static void kvm_register_clock(char *txt)
 	pr_debug("kvm-clock: cpu %d, msr %llx, %s", smp_processor_id(), pa, txt);
 }
 
+static void kvmclock_disable(void)
+{
+	if (msr_kvm_system_time)
+		native_write_msr(msr_kvm_system_time, 0);
+}
+
 static void kvm_save_sched_clock_state(void)
 {
+	/*
+	 * Stop host writes to kvmclock immediately prior to suspend/hibernate.
+	 * If the system is hibernating, then kvmclock will likely reside at a
+	 * different physical address when the system awakens, and host writes
+	 * to the old address prior to reconfiguring kvmclock would clobber
+	 * random memory.
+	 */
+	kvmclock_disable();
 }
 
 static void kvm_restore_sched_clock_state(void)
@@ -187,6 +201,17 @@ static void kvm_restore_sched_clock_state(void)
 	kvm_register_clock("primary cpu clock, resume");
 }
 
+void kvmclock_cpu_action(enum kvm_guest_cpu_action action)
+{
+	/*
+	 * Don't disable kvmclock on the BSP during suspend.  If kvmclock is
+	 * being used for sched_clock, then it needs to be kept alive until the
+	 * last minute, and restored as quickly as possible after resume.
+	 */
+	if (action != KVM_GUEST_BSP_SUSPEND)
+		kvmclock_disable();
+}
+
 #ifdef CONFIG_SMP
 static void kvm_setup_secondary_clock(void)
 {
@@ -194,12 +219,6 @@ static void kvm_setup_secondary_clock(void)
 }
 #endif
 
-void kvmclock_disable(void)
-{
-	if (msr_kvm_system_time)
-		native_write_msr(msr_kvm_system_time, 0);
-}
-
 static void __init kvmclock_init_mem(void)
 {
 	unsigned long ncpus;
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310204.1581116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5X-0000Cq-Sk; Fri, 15 May 2026 19:20:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310204.1581116; Fri, 15 May 2026 19:20:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5X-0000BW-ID; Fri, 15 May 2026 19:20:47 +0000
Received: by outflank-mailman (input) for mailman id 1310204;
 Fri, 15 May 2026 19:20:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3C3IHagYKCWQUGCPLEIQQING.EQOZGP-FGXGNNKUVU.ZGPRTQLGEV.QTI@flex--seanjc.bounces.google.com>)
 id 1wNy5W-0008Te-KR
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5W-009Q6I-0i
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:46 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3C3IHagYKCWQUGCPLEIQQING.EQOZGP-FGXGNNKUVU.ZGPRTQLGEV.QTI@flex--seanjc.bounces.google.com>)
 id 6a0771f7-e002-0a2a0a5209dd-0a2a45098270-26
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:45 +0200
Received: from [209.85.210.202] (helo=mail-pf1-f202.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3C3IHagYKCWQUGCPLEIQQING.EQOZGP-FGXGNNKUVU.ZGPRTQLGEV.QTI@flex--seanjc.bounces.google.com>)
 id 6a07720c-2497-0a2a45090019-d155d2cab11a-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:45 +0200
Received: by mail-pf1-f202.google.com with SMTP id
 d2e1a72fcca58-82fa6c3a77cso78703b3a.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872844; x=1779477644; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=62wrPM0lWE30yV9zyxGJWUHaw5WRQ2hiTxFnD7TdkoU=;
        b=oiyjUbdNfDoFCTDIVfxwpeBvXvuurV4x9T9C/Byz0DpIVwZdyT1nOLD2xrpKIUlgnH
         FFVr+sGuvaRwi0J8RIHN1p3V48chMU1Y/X7VasRO9lmXs3Ph2aDScNPHcBtIcZXVCDxW
         KoTR+ThJ0b65p6bInInAKWyZ6h4FCGT8pS1R2JoK911NQvtzqjadZOibWLrtY2zklIpC
         IBESYLkpyWGQVh4yoReq9sA5L6ke6mIRH1NRlboICvI+C8Zw064BGj6Ok5pr+mF6qIad
         f/XMwbJ/i0dcbvr8Whe5JMMPgSV6jDMjurxRgwGMUYrNVToNAVeAikKPadusSEVRGFfQ
         DR9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872844; x=1779477644;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=62wrPM0lWE30yV9zyxGJWUHaw5WRQ2hiTxFnD7TdkoU=;
        b=UZcsQaWDcVk1KTyL6rYYLBkReSh/cRapK6UgAlVcBa1GSpQxvpTRpgb+1+5NdMIYwU
         Zyr06BlxN2DCVilq/qec5fkpAwD1Tn8zadAzxcPQR3kA30eC3xiZ4ThyOEbU0NC13rDt
         z9v/tXc+QP8nl7vIJYzo/PR9TXIzJurY39UvHDslR/rsLQpPUdvbDqwdcPnuPvNX40/8
         lWiuMyH9H8NSDg/cLR7BQgyeQWg0n8sWqt2sfjwiYDlhLkQ4+hTpmnrXPA4xc1ffsWCY
         NTn0U84DnhcnIj2xKCS+UWV5Lie83QLMQVdHwpUvYK2nYsNNBrkdtZkD28S2CDRW7lmh
         vfzw==
X-Forwarded-Encrypted: i=1; AFNElJ+drciCkDdNpRMKel2ADecGw6T1Ytj+2jHsKvkOyHkTvTdG56AbjwIQKkjikV08KW/9XuHSUG9Fi24=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyQOUKw5p6qWqbcyyrBsA2usuWuFEPFip3K4T29U33Ibm7XF7wM
	Mo/q8wRfxaLjo3AsOb8/PwGrVqut+lG8/fCu8j0UJL/PPBGgkbajwdBF+PDkuk0QDwUxDvzxXGp
	XO0SGfg==
X-Received: from pfbg4.prod.google.com ([2002:a05:6a00:ae04:b0:82f:c34b:9799])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:4193:b0:83e:eeab:aff8
 with SMTP id d2e1a72fcca58-83f33d24d7cmr6075416b3a.25.1778872843406; Fri, 15
 May 2026 12:20:43 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:13 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-13-seanjc@google.com>
Subject: [PATCH v3 12/41] x86/paravirt: Remove unnecessary PARAVIRT=n stub for paravirt_set_sched_clock()
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-bad1c0/1778872845-88970A53-64006DA5/0/0
X-purgate-type: clean
X-purgate-size: 1520

Remove the unnecessary paravirt_set_sched_clock() stub for PARAVIRT=n, as
all callers are gated by PARAVIRT=y.  Eliminating the stub will avoid a
pile of pointless churn as the "real" implementation evolves.

No functional change intended.

Fixes: 39965afb1151 ("x86/paravirt: Move paravirt_sched_clock() related code into tsc.c")
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/timer.h | 3 +++
 arch/x86/kernel/tsc.c        | 1 -
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index fda18bcb19b4..c71b466d6ace 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -12,7 +12,10 @@ extern void recalibrate_cpu_khz(void);
 extern int no_timer_check;
 
 extern bool using_native_sched_clock(void);
+
+#ifdef CONFIG_PARAVIRT
 void paravirt_set_sched_clock(u64 (*func)(void));
+#endif
 
 /*
  * We use the full linear equation: f(x) = a + b*x, in order to allow
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index e00f53e3dd8d..021612c22b84 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -288,7 +288,6 @@ void paravirt_set_sched_clock(u64 (*func)(void))
 u64 sched_clock_noinstr(void) __attribute__((alias("native_sched_clock")));
 
 bool using_native_sched_clock(void) { return true; }
-void paravirt_set_sched_clock(u64 (*func)(void)) { }
 #endif
 
 notrace u64 sched_clock(void)
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310207.1581128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5a-0000pU-9F; Fri, 15 May 2026 19:20:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310207.1581128; Fri, 15 May 2026 19:20:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5a-0000nv-1V; Fri, 15 May 2026 19:20:50 +0000
Received: by outflank-mailman (input) for mailman id 1310207;
 Fri, 15 May 2026 19:20:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3DHIHagYKCWUVHDQMFJRRJOH.FRPaHQ-GHYHOOLVWV.aHQSURMHFW.RUJ@flex--seanjc.bounces.google.com>)
 id 1wNy5X-0000C1-Op
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5X-007OOK-4i
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:47 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3DHIHagYKCWUVHDQMFJRRJOH.FRPaHQ-GHYHOOLVWV.aHQSURMHFW.RUJ@flex--seanjc.bounces.google.com>)
 id 6a077201-bab6-0a2a0a5309dd-0a2a45069cfa-24
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:47 +0200
Received: from [209.85.215.201] (helo=mail-pg1-f201.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3DHIHagYKCWUVHDQMFJRRJOH.FRPaHQ-GHYHOOLVWV.aHQSURMHFW.RUJ@flex--seanjc.bounces.google.com>)
 id 6a07720d-7371-0a2a45060019-d155d7c9a4d8-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:46 +0200
Received: by mail-pg1-f201.google.com with SMTP id
 41be03b00d2f7-c70f19f0f37so46291a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872845; x=1779477645; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=/y8QjMIN78jXY0C38vMz/eIP3YtBj5/Xygk6fhPK+NQ=;
        b=uAbHNbaw7coMfGAR52XwFiL+6sJ1Dc+MCUxYnIr3LhiUBElt+la8hoyk62WGoPkowV
         Z7+iVasgRcfrmOetCUIG4b9FtDIQZBXZJG9z5XTszG25AapaK4IakM30SFxu7R4B1RP3
         U6pJXxEhRy7kfBPnmEIorAkq58LYJ3uHHptpzwz7JvfJUkn144wbLS2nkqn8ibdOD+nX
         0sJqaDDY795y6EAcaDGuD3YJAnBVHR1enUr6cnW39WSJlK5iALHM6FJxCffLUzrmAzAq
         00jJydKwXko7EEsCTijIayjKTyRqsqsxAUHZSoZAtYuTJfxZYgcokV/x4k73KV029rwL
         XS/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872845; x=1779477645;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=/y8QjMIN78jXY0C38vMz/eIP3YtBj5/Xygk6fhPK+NQ=;
        b=F/tSWhsbEFGDji0jJoW5cRH1cS5tem+NXqcSrVVorwcDNnkmJVgSK/8ETz//p01qb2
         NCma19D+K8fw0pqpgWXvZY1cS7deA0jt+6h+gGjzYJkxbPj6i0/eeQb9FF0VkbIWql4t
         2FaQB58+2a1xOrM8yI1ogSJqnAWX/5ZaEsNR5/QcqlwpotBSg1+5XYm4qm3i1AHno2Ow
         EzWn34LMpGSff7N3RCyoK9kvMiGuLnk4f+C9yoDdYTe09L7WamoqUuIV8folc6pi4bfa
         mIsS+iis+rz3sM5PabFWqTPjeZUv/sbt3Bw1KI8ZTblHGWdoaGBhYmd+aGNSv3ndL0VC
         w6tw==
X-Forwarded-Encrypted: i=1; AFNElJ+DUHOy0sqln6v6zZY5Y4lgcjGB7XqXOsZEaTBLZkHltAZ0uQ+JxGOF3awLbXcTwCRW99Zq9uflt9A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyhFIe/FvdZfkjYOUODj49DGA+f442sLvKtJmfuw35lchNNt5uy
	/A0Q+a5PlbaaYF6lDaPdUliQ0Du6VqN7J1vbciEIp/lYmnrrX5gltKijNya1BfYt1TQ+7PYWnKO
	uKjDtaA==
X-Received: from pgbda3.prod.google.com ([2002:a05:6a02:2383:b0:c73:bc95:cca8])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:4328:b0:3a2:cf6d:aa04
 with SMTP id adf61e73a8af0-3b0bdd00bfbmr9342014637.8.1778872844563; Fri, 15
 May 2026 12:20:44 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:14 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-14-seanjc@google.com>
Subject: [PATCH v3 13/41] x86/paravirt: Move handling of unstable PV clocks
 into paravirt_set_sched_clock()
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-16d1c6/1778872847-8C07ED75-AE88070B/0/0
X-purgate-type: clean
X-purgate-size: 2517

Move the handling of unstable PV clocks, of which kvmclock is the only
example, into paravirt_set_sched_clock().  This will allow modifying
paravirt_set_sched_clock() to keep using the TSC for sched_clock in
certain scenarios without unintentionally marking the TSC-based clock as
unstable.

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/timer.h | 7 ++++++-
 arch/x86/kernel/kvmclock.c   | 5 +----
 arch/x86/kernel/tsc.c        | 5 ++++-
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index c71b466d6ace..fe41d40a9ae6 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -14,7 +14,12 @@ extern int no_timer_check;
 extern bool using_native_sched_clock(void);
 
 #ifdef CONFIG_PARAVIRT
-void paravirt_set_sched_clock(u64 (*func)(void));
+void __paravirt_set_sched_clock(u64 (*func)(void), bool stable);
+
+static inline void paravirt_set_sched_clock(u64 (*func)(void))
+{
+	__paravirt_set_sched_clock(func, true);
+}
 #endif
 
 /*
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 006e3a13500b..1cbdb48e5503 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -12,7 +12,6 @@
 #include <linux/hardirq.h>
 #include <linux/cpuhotplug.h>
 #include <linux/sched.h>
-#include <linux/sched/clock.h>
 #include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/set_memory.h>
@@ -94,10 +93,8 @@ static noinstr u64 kvm_sched_clock_read(void)
 
 static inline void kvm_sched_clock_init(bool stable)
 {
-	if (!stable)
-		clear_sched_clock_stable();
 	kvm_sched_clock_offset = kvm_clock_read();
-	paravirt_set_sched_clock(kvm_sched_clock_read);
+	__paravirt_set_sched_clock(kvm_sched_clock_read, stable);
 
 	pr_info("kvm-clock: using sched offset of %llu cycles",
 		kvm_sched_clock_offset);
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 021612c22b84..567d30b30a5a 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -280,8 +280,11 @@ bool using_native_sched_clock(void)
 	return static_call_query(pv_sched_clock) == native_sched_clock;
 }
 
-void paravirt_set_sched_clock(u64 (*func)(void))
+void __paravirt_set_sched_clock(u64 (*func)(void), bool stable)
 {
+	if (!stable)
+		clear_sched_clock_stable();
+
 	static_call_update(pv_sched_clock, func);
 }
 #else
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310210.1581132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5b-0000uc-2p; Fri, 15 May 2026 19:20:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310210.1581132; Fri, 15 May 2026 19:20:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5a-0000th-IF; Fri, 15 May 2026 19:20:50 +0000
Received: by outflank-mailman (input) for mailman id 1310210;
 Fri, 15 May 2026 19:20:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3DXIHagYKCWYWIERNGKSSKPI.GSQbIR-HIZIPPMWXW.bIRTVSNIGX.SVK@flex--seanjc.bounces.google.com>)
 id 1wNy5Y-0000Sh-QS
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5Y-0039ru-6O
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:48 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3DXIHagYKCWYWIERNGKSSKPI.GSQbIR-HIZIPPMWXW.bIRTVSNIGX.SVK@flex--seanjc.bounces.google.com>)
 id 6a077209-5cb7-0a2a0a5109dd-0a2a450aaabc-14
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:48 +0200
Received: from [209.85.215.201] (helo=mail-pg1-f201.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3DXIHagYKCWYWIERNGKSSKPI.GSQbIR-HIZIPPMWXW.bIRTVSNIGX.SVK@flex--seanjc.bounces.google.com>)
 id 6a07720e-56b3-0a2a450a0019-d155d7c9a868-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:47 +0200
Received: by mail-pg1-f201.google.com with SMTP id
 41be03b00d2f7-c82c935e048so773811a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872846; x=1779477646; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=My3crpwV3+2u8Tw2CWdR3qBXb15QrHmR5xjox9czyEU=;
        b=GCSUU2fBG2YrG5Djuthl5yZS42kyYBKwli8Mr2DJ1PCYbdVDtEAmJPq7NQQdlQIEby
         quT81rlTmljzjBqVaqQUoi65H6BKYeDo2lSSllnRUPlzmaeYpB0hfzdP3sjw7OJxFXVk
         Yom58HAm+nwH51RU4glokDq96IciV0bmhjk+esf1M9A5W+LI5hpIId3eBah9IAfbrQQW
         PV7Va9uA3IhEc1JQT1f60NzPRug65wLiAVBaukpHOajqvNmmTfRH9NyqEI3WU0z6CODq
         yCcy/164bsBQXer8MhYYI9xUv56qJM3c3MKCfrI85f+7znbWp3qv8QF5kGBJ1rxAwoKI
         vs3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872846; x=1779477646;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=My3crpwV3+2u8Tw2CWdR3qBXb15QrHmR5xjox9czyEU=;
        b=Izga1BUjamqoInY6EQIzvnH4pua6t0P8myr0Aq3TCvTHok9O0bRUcxaJsEFKCWSX33
         oJvNlOzLuurT9ytjx9+Slkjg8zPZH+aa9HnEMAcwJ0yM39QRIMLysoARuf5dQKUbhg0L
         Os0cvJ0iE+2ZPYZfTql6vToS71J+VoPxYOSxw5X2eumSxV2jFpHYgHXrIziwKVNLu843
         SYVp2c/wcgQvlosQlwf5eSMu2NC2k+r+Hz+0+t2Edt8VpVUuKD5ZMSdrEbf09uktoKjZ
         GeYIlsGbMcUMyYI/4W5kYdPxlKeliWRaSaHkkCzIj+qOgDqeWxOLqP7d1AWoDpgV72Dv
         HE2g==
X-Forwarded-Encrypted: i=1; AFNElJ/6k2ez1Oh5CrVrpazNc4k0boIy6VES/Uc7+Yj4vh8xtjHL5BDooZjnQ4CyL+xYLmYtIN7G18E0//o=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5oA+b8UTuFcTP/w6nSR3QXCtKKwT+m2a2jqgzSOOGqiW8f8dV
	qTznuAvXnHmKe8rGYzYErYF7fy4/wRDkXsVyrlGc/xSeszDUeES6JsfeQOBr6d2+9fGcfCrQgf4
	s/RHnng==
X-Received: from pgc15.prod.google.com ([2002:a05:6a02:2f8f:b0:c74:497:507e])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:5488:b0:368:7398:df8a
 with SMTP id 98e67ed59e1d1-369233192aamr8411686a91.4.1778872845655; Fri, 15
 May 2026 12:20:45 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:15 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-15-seanjc@google.com>
Subject: [PATCH v3 14/41] x86/kvmclock: Move sched_clock save/restore helpers
 up in kvmclock.c
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-4011c0/1778872848-71D688B7-43C29C7C/0/0
X-purgate-type: clean
X-purgate-size: 4368

Move kvmclock's sched_clock save/restore helper "up" so that they can
(eventually) be referenced by kvm_sched_clock_init().

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 108 ++++++++++++++++++-------------------
 1 file changed, 54 insertions(+), 54 deletions(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 1cbdb48e5503..800c3d65f0af 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -71,6 +71,25 @@ static int kvm_set_wallclock(const struct timespec64 *now)
 	return -ENODEV;
 }
 
+static void kvm_register_clock(char *txt)
+{
+	struct pvclock_vsyscall_time_info *src = this_cpu_hvclock();
+	u64 pa;
+
+	if (!src)
+		return;
+
+	pa = slow_virt_to_phys(&src->pvti) | 0x01ULL;
+	wrmsrq(msr_kvm_system_time, pa);
+	pr_debug("kvm-clock: cpu %d, msr %llx, %s", smp_processor_id(), pa, txt);
+}
+
+static void kvmclock_disable(void)
+{
+	if (msr_kvm_system_time)
+		native_write_msr(msr_kvm_system_time, 0);
+}
+
 static u64 kvm_clock_read(void)
 {
 	u64 ret;
@@ -91,6 +110,30 @@ static noinstr u64 kvm_sched_clock_read(void)
 	return pvclock_clocksource_read_nowd(this_cpu_pvti()) - kvm_sched_clock_offset;
 }
 
+static void kvm_save_sched_clock_state(void)
+{
+	/*
+	 * Stop host writes to kvmclock immediately prior to suspend/hibernate.
+	 * If the system is hibernating, then kvmclock will likely reside at a
+	 * different physical address when the system awakens, and host writes
+	 * to the old address prior to reconfiguring kvmclock would clobber
+	 * random memory.
+	 */
+	kvmclock_disable();
+}
+
+#ifdef CONFIG_SMP
+static void kvm_setup_secondary_clock(void)
+{
+	kvm_register_clock("secondary cpu clock");
+}
+#endif
+
+static void kvm_restore_sched_clock_state(void)
+{
+	kvm_register_clock("primary cpu clock, resume");
+}
+
 static inline void kvm_sched_clock_init(bool stable)
 {
 	kvm_sched_clock_offset = kvm_clock_read();
@@ -103,6 +146,17 @@ static inline void kvm_sched_clock_init(bool stable)
 		sizeof(((struct pvclock_vcpu_time_info *)NULL)->system_time));
 }
 
+void kvmclock_cpu_action(enum kvm_guest_cpu_action action)
+{
+	/*
+	 * Don't disable kvmclock on the BSP during suspend.  If kvmclock is
+	 * being used for sched_clock, then it needs to be kept alive until the
+	 * last minute, and restored as quickly as possible after resume.
+	 */
+	if (action != KVM_GUEST_BSP_SUSPEND)
+		kvmclock_disable();
+}
+
 /*
  * If we don't do that, there is the possibility that the guest
  * will calibrate under heavy load - thus, getting a lower lpj -
@@ -162,60 +216,6 @@ static struct clocksource kvm_clock = {
 	.enable	= kvm_cs_enable,
 };
 
-static void kvm_register_clock(char *txt)
-{
-	struct pvclock_vsyscall_time_info *src = this_cpu_hvclock();
-	u64 pa;
-
-	if (!src)
-		return;
-
-	pa = slow_virt_to_phys(&src->pvti) | 0x01ULL;
-	wrmsrq(msr_kvm_system_time, pa);
-	pr_debug("kvm-clock: cpu %d, msr %llx, %s", smp_processor_id(), pa, txt);
-}
-
-static void kvmclock_disable(void)
-{
-	if (msr_kvm_system_time)
-		native_write_msr(msr_kvm_system_time, 0);
-}
-
-static void kvm_save_sched_clock_state(void)
-{
-	/*
-	 * Stop host writes to kvmclock immediately prior to suspend/hibernate.
-	 * If the system is hibernating, then kvmclock will likely reside at a
-	 * different physical address when the system awakens, and host writes
-	 * to the old address prior to reconfiguring kvmclock would clobber
-	 * random memory.
-	 */
-	kvmclock_disable();
-}
-
-static void kvm_restore_sched_clock_state(void)
-{
-	kvm_register_clock("primary cpu clock, resume");
-}
-
-void kvmclock_cpu_action(enum kvm_guest_cpu_action action)
-{
-	/*
-	 * Don't disable kvmclock on the BSP during suspend.  If kvmclock is
-	 * being used for sched_clock, then it needs to be kept alive until the
-	 * last minute, and restored as quickly as possible after resume.
-	 */
-	if (action != KVM_GUEST_BSP_SUSPEND)
-		kvmclock_disable();
-}
-
-#ifdef CONFIG_SMP
-static void kvm_setup_secondary_clock(void)
-{
-	kvm_register_clock("secondary cpu clock");
-}
-#endif
-
 static void __init kvmclock_init_mem(void)
 {
 	unsigned long ncpus;
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310214.1581138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5b-0000zO-U7; Fri, 15 May 2026 19:20:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310214.1581138; Fri, 15 May 2026 19:20:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5b-0000xC-5y; Fri, 15 May 2026 19:20:51 +0000
Received: by outflank-mailman (input) for mailman id 1310214;
 Fri, 15 May 2026 19:20:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3DnIHagYKCWcXJFSOHLTTLQJ.HTRcJS-IJaJQQNXYX.cJSUWTOJHY.TWL@flex--seanjc.bounces.google.com>)
 id 1wNy5a-0000ng-2m
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5Z-00BXCT-FB
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:49 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3DnIHagYKCWcXJFSOHLTTLQJ.HTRcJS-IJaJQQNXYX.cJSUWTOJHY.TWL@flex--seanjc.bounces.google.com>)
 id 6a0771db-2eae-0a2a0a5409dd-0a2a450ca7e8-42
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:49 +0200
Received: from [209.85.210.202] (helo=mail-pf1-f202.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3DnIHagYKCWcXJFSOHLTTLQJ.HTRcJS-IJaJQQNXYX.cJSUWTOJHY.TWL@flex--seanjc.bounces.google.com>)
 id 6a07720f-62f1-0a2a450c0019-d155d2cac1b2-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:49 +0200
Received: by mail-pf1-f202.google.com with SMTP id
 d2e1a72fcca58-82f9429f49cso281930b3a.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872847; x=1779477647; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=eVzC+1NNlxe1k/R0gBkxcy+TPbGnZzPB3ftmmd4+5ik=;
        b=FNxSv0QMjiNcryFo7pRpskl6vIozXAqmCGrWN3Y9p2Ag2h43VZYVNf/+TYdVAmiEVH
         ulIKtXc+m8rRSHEzfpU8oRXR06k5i9v5u8PEOWyBWR0HCAQnxzKrWBG/ozo/s1a4EIKd
         kt57ALZGxhA99MK6hLiIcCnfsC/Rpa1Z34gHXi25ELdPZx1FHi/BCgEmYVARBFQFMl1B
         g1/TBgoXn8LtMgxFBhFXzSNYv0+ruuiY6qZh2iIQ4fRrdkTR1veCQG/kHBPW4o5MTbXL
         MjUfTCdo4zx0/gqSStdkJw7bY/2bBYyzGSzHgatOgMBM3So4x2JKQAEHcTDN+rdmod5I
         C3fw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872847; x=1779477647;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=eVzC+1NNlxe1k/R0gBkxcy+TPbGnZzPB3ftmmd4+5ik=;
        b=hr0E17K0nj2eAme12odv3Ggg4h0qeG3ag4lLz8qo55J3eYCEDA9CsiJORHNi5loHDm
         euO+Puhtg4plXheAcoEmI/GC/Aq4MSnez7HKpyOUUX/ta/0pHsnddzBHbibmXwCoOBMp
         LG82IFLH5oIrJKRvlkaiEgIX8x4la6brOkTb6+8sjDGXgRMv5nSeg4jBZpH1tw7TXZc8
         V2ShkHX2oJmzyKGLEkvJxVJ9ziMnNtwXkVsTqlyPGLsdnD0QCcDLz+AzdE5PY0gWya+Q
         ciRONPeudd4bP0mmSxYtxCEilH4UtiPlq6w4k5nvaY2ZevsfLk/NL8hWuAKbFuixMP1J
         KQ3w==
X-Forwarded-Encrypted: i=1; AFNElJ9TQ40SO1feQNWtWZ8a22+2dFNwLJFz14Cjw0Yp6ZvjH7Lkb4jKRZbH4vCqCwEa6d3QbcuksibQTXs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzpeyi20j9+HSJPEZdQh0t7J2EWvMErNmg1gZI8haOcexIpPtnf
	YGe0pJkZ2EKS5Rx5bTQRage2LMzPX6uEpwUkhVsMY/WOAmC/ZoJZVj3U7Py/KB0697W1GPwZiQr
	sRvK8+g==
X-Received: from pfblu4.prod.google.com ([2002:a05:6a00:7484:b0:83a:58c1:f5e2])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:1404:b0:829:9a7b:db84
 with SMTP id d2e1a72fcca58-83f33f30bf8mr5787888b3a.49.1778872846903; Fri, 15
 May 2026 12:20:46 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:16 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-16-seanjc@google.com>
Subject: [PATCH v3 15/41] x86/xen/time: Nullify x86_platform's sched_clock
 save/restore hooks
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-d25034/1778872849-E0F62CF5-2456AD60/0/0
X-purgate-type: clean
X-purgate-size: 1097

Nullify the x86_platform sched_clock save/restore hooks when setting up
Xen's PV clock to make it somewhat obvious the hooks aren't used when
running as a Xen guest (Xen uses a paravirtualized suspend/resume flow).

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/xen/time.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index 3d3165eef821..21d366d01985 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -568,6 +568,12 @@ static void __init xen_init_time_common(void)
 	xen_sched_clock_offset = xen_clocksource_read();
 	static_call_update(pv_steal_clock, xen_steal_clock);
 	paravirt_set_sched_clock(xen_sched_clock);
+	/*
+	 * Xen has paravirtualized suspend/resume and so doesn't use the common
+	 * x86 sched_clock save/restore hooks.
+	 */
+	x86_platform.save_sched_clock_state = NULL;
+	x86_platform.restore_sched_clock_state = NULL;
 
 	tsc_register_calibration_routines(xen_tsc_khz, NULL);
 	x86_platform.get_wallclock = xen_get_wallclock;
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310217.1581147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5e-0001XO-2o; Fri, 15 May 2026 19:20:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310217.1581147; Fri, 15 May 2026 19:20:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5d-0001VK-FU; Fri, 15 May 2026 19:20:53 +0000
Received: by outflank-mailman (input) for mailman id 1310217;
 Fri, 15 May 2026 19:20:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3EHIHagYKCWkZLHUQJNVVNSL.JVTeLU-KLcLSSPZaZ.eLUWYVQLJa.VYN@flex--seanjc.bounces.google.com>)
 id 1wNy5b-0000wI-9X
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5a-0039ru-Kp
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:50 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3EHIHagYKCWkZLHUQJNVVNSL.JVTeLU-KLcLSSPZaZ.eLUWYVQLJa.VYN@flex--seanjc.bounces.google.com>)
 id 6a077209-5cb7-0a2a0a5109dd-0a2a450aaabc-24
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:50 +0200
Received: from [209.85.215.201] (helo=mail-pg1-f201.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3EHIHagYKCWkZLHUQJNVVNSL.JVTeLU-KLcLSSPZaZ.eLUWYVQLJa.VYN@flex--seanjc.bounces.google.com>)
 id 6a077211-56b3-0a2a450a0019-d155d7c9e9be-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:50 +0200
Received: by mail-pg1-f201.google.com with SMTP id
 41be03b00d2f7-c709551ec08so187596a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872848; x=1779477648; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=c0VSXuwvwTL0EdvBxlPRCLOC48TzlA2S3UU4EaITdRg=;
        b=NTfevY8y4WDIjPVRsl8tUMYHJboNemqhMsVVjM3paK4D7rkxZA/B0+6qPXxoO9U2BS
         W5xIhg60A2E0hupZfplxN1Eqn5l77TD/Lbalkl+CoxrE7nkKktdJkebmoyZQk9hCgO62
         aUfyRL0TgHnP9Ti61Ed8YYsmJ3wWxtugXE16Iqn2dYnJGJjwZ7/X7w5+yE9K9voIYaXo
         ZPyrZahlgI8hTduqS9VeKELH4cnT2n9wd5CJVhpbeCfRnrsLH/87KBZTI4zomFEQpw+D
         tpAFu0CmIhZVmP6Do23SAjmoqFWyluvWSxeKLw3Hi7BU1s20yTeNq4tZAfO4SYBxCX6L
         0DKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872848; x=1779477648;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=c0VSXuwvwTL0EdvBxlPRCLOC48TzlA2S3UU4EaITdRg=;
        b=hPdO8LA8rL1gFRgAvbQfCgNn7dTHv4/tojBwYP8UnAC8M+1apG96sg58wtF330gNGy
         sCao3/RGByPIQlAiG1HxbabihmQXZRUHQFGplcllt9iOEwK3XjeTSMy4v/36DLvKPJRV
         5p/xydWk4NeFpO1opjAYG0Nd5mcvgCxI0QmBNC9MQ4EazLj+NsNZdtNCWB7CfZAL9sZx
         fl7+/nqIxfNAONJ8JAHCkU+aEqP1nQ+2vNp4ZE9zwYrNbSoVZNM+wTsoLIIwtcMwkO58
         0dAfswI8yRn4yg4eKu1cIUXIJEp1YF8VRh5c5ixu/NaQdLwGKihFE16PT7bOiPdPs0/M
         PN9Q==
X-Forwarded-Encrypted: i=1; AFNElJ+m67F4FARiBorh4cIEIOKL4Cf33wJrQmc5vSawfilhfc6VwA8VZ8wCAX6tR/34wtH2kJmeFfllqh0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwfNF7vd1i15zarfpiFGomvf+gNm98MR58qbjW49yeI8uryyk9Z
	G7+uzeNnRUQcoZovw6M70Oc8PZFQAd3RZpIlgliniaVQsZgB/zJtdfwKpGWOn4ZYnkni7ysPvJs
	0pd59uA==
X-Received: from pfbff26.prod.google.com ([2002:a05:6a00:2f5a:b0:83e:dfc6:971])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:1908:b0:82f:50cd:e586
 with SMTP id d2e1a72fcca58-83f33cb2c40mr5886442b3a.13.1778872848066; Fri, 15
 May 2026 12:20:48 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:17 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-17-seanjc@google.com>
Subject: [PATCH v3 16/41] x86/vmware: Nullify save/restore hooks when using
 VMware's sched_clock
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-4011c0/1778872850-7C67F8B7-2B5C773B/0/0
X-purgate-type: clean
X-purgate-size: 1195

Nullify the sched_clock save/restore hooks when using VMware's version of
sched_clock.  This will allow extending paravirt_set_sched_clock() to set
the save/restore hooks, without having to simultaneously change the
behavior of VMware guests.

Note, it's not at all obvious that it's safe/correct for VMware guests to
do nothing on suspend/resume, but that's a pre-existing problem.  Leave it
for a VMware expert to sort out.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/cpu/vmware.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index b88d9ca01202..b5cb66ca022b 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -347,8 +347,11 @@ static void __init vmware_paravirt_ops_setup(void)
 
 	vmware_cyc2ns_setup();
 
-	if (vmw_sched_clock)
+	if (vmw_sched_clock) {
 		paravirt_set_sched_clock(vmware_sched_clock);
+		x86_platform.save_sched_clock_state = NULL;
+		x86_platform.restore_sched_clock_state = NULL;
+	}
 
 	if (vmware_is_stealclock_available()) {
 		has_steal_clock = true;
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310226.1581162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5h-0002N1-JY; Fri, 15 May 2026 19:20:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310226.1581162; Fri, 15 May 2026 19:20:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5h-0002Kk-6O; Fri, 15 May 2026 19:20:57 +0000
Received: by outflank-mailman (input) for mailman id 1310226;
 Fri, 15 May 2026 19:20:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3E3IHagYKCWwcOKXTMQYYQVO.MYWhOX-NOfOVVScdc.hOXZbYTOMd.YbQ@flex--seanjc.bounces.google.com>)
 id 1wNy5e-0001ft-Gv
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5d-009QAT-Si
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:53 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3E3IHagYKCWwcOKXTMQYYQVO.MYWhOX-NOfOVVScdc.hOXZbYTOMd.YbQ@flex--seanjc.bounces.google.com>)
 id 6a0771e3-e002-0a2a0a5209dd-0a2a450b819a-48
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:53 +0200
Received: from [209.85.210.202] (helo=mail-pf1-f202.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3E3IHagYKCWwcOKXTMQYYQVO.MYWhOX-NOfOVVScdc.hOXZbYTOMd.YbQ@flex--seanjc.bounces.google.com>)
 id 6a077214-212f-0a2a450b0019-d155d2caa88c-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:53 +0200
Received: by mail-pf1-f202.google.com with SMTP id
 d2e1a72fcca58-82fa1c94b37so1317961b3a.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872852; x=1779477652; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=pABxqq/LCN+Mp4/TOmuyDPyBXfPq+tAOVmlCcYLwmko=;
        b=cuvH8jGhCqviOdY/EOoIe3ZGhg090syx3h6tvhQmie4DkH/FIPh2TLV4BC8/tWkLYa
         N964lxadMW7qU1fAER9FiskfSzMR9KknPvW65VTtbNBVYsXdHcfkLBl8dJldSzhbQuLo
         A3mtTEs2cEvWodBSLqQdq4l1YpW50ddXso512OxruGnKGpEv/bhqiePXLlEH+agZoRUc
         EByxAnAcDr8igOS3nO/cxQqxoonZExjgfeN5aUEOIIfad9Dw8MFe2zXKkwfbF13gtx40
         OFjknm6uL4inrmzzXjMbotUvTDr2XjWEgB3qTFRxZNnD2QzOPzMxEuCnuPR1iIKdMCFP
         riFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872852; x=1779477652;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=pABxqq/LCN+Mp4/TOmuyDPyBXfPq+tAOVmlCcYLwmko=;
        b=NlAjxt+Z7LkVZGTrdaOXiuSs4ZhafkoWpOeO2+zg0uzVNddo3mn9nin6oLdtcbO1ls
         AAfiCMRziUuXurrUZJaBvLS0dVCZ7FbHPozoLi9ojdqpEAGIBDc7B7ijpDaS3UG9vuXE
         jPap+dXDysc/XokyhMlhbG1VlthMtfsJ8xUTKCkIV/PXZQyIHASz6Mz4ELccCH75QuIc
         Pskytk6vD32ZDT7NGOrFIVlClYmEBXQHQ24dDosPBXrxsaVJPmrVkBICcD3JB4Dgm9QC
         60YASghNdodzC1rRYuS3g9gjeh+3yGzkbGr89DI4xfJ6hxyt+OlznKq2z2UdScjbdk+p
         BopA==
X-Forwarded-Encrypted: i=1; AFNElJ+X7Km+X0YA+XbiJpiSsG2SgcY7pqjUR5hu/B44ozwCZThSXyaUuT2qkIzcXd8RQ5FGNjnBonse2xQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy2Q/hHRx00miaSmbOg03Oy3pKUNf2q7heOc0a9UPPeU4ONJiwV
	s48VzmU9Zz1YpQHtu/uvSPc5TAsva0WE2wpx/HFOgBObXxbW6/rXybvF7HkSdFu5VAZsP0RGO4k
	e4JpTnw==
X-Received: from pfblj16.prod.google.com ([2002:a05:6a00:71d0:b0:83f:22c:66ee])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:801b:b0:835:51fd:b7e9
 with SMTP id d2e1a72fcca58-83f18e75ed2mr8194934b3a.20.1778872851317; Fri, 15
 May 2026 12:20:51 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:20 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-20-seanjc@google.com>
Subject: [PATCH v3 19/41] x86/kvmclock: Move kvm_sched_clock_init() down in kvmclock.c
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-42698a/1778872853-1B979F3B-88B752FE/0/0
X-purgate-type: clean
X-purgate-size: 2236

Move kvm_sched_clock_init() "down" so that it can reference the global
kvm_clock structure without needing a forward declaration.

Opportunistically mark the helper as "__init" instead of "inline" to make
its usage more obvious; modern compilers don't need a hint to inline a
single-use function, and an extra CALL+RET pair during boot is a complete
non-issue.  And, if the compiler ignores the hint and does NOT inline the
function, the resulting code may not get discarded after boot due lack of
an __init annotation.

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 962b6fcb5c60..8df6adcd6cd8 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -134,20 +134,6 @@ static void kvm_restore_sched_clock_state(void)
 	kvm_register_clock("primary cpu clock, resume");
 }
 
-static inline void kvm_sched_clock_init(bool stable)
-{
-	kvm_sched_clock_offset = kvm_clock_read();
-	__paravirt_set_sched_clock(kvm_sched_clock_read, stable,
-				   kvm_save_sched_clock_state,
-				   kvm_restore_sched_clock_state);
-
-	pr_info("kvm-clock: using sched offset of %llu cycles",
-		kvm_sched_clock_offset);
-
-	BUILD_BUG_ON(sizeof(kvm_sched_clock_offset) >
-		sizeof(((struct pvclock_vcpu_time_info *)NULL)->system_time));
-}
-
 void kvmclock_cpu_action(enum kvm_guest_cpu_action action)
 {
 	/*
@@ -304,6 +290,20 @@ static int kvmclock_setup_percpu(unsigned int cpu)
 	return p ? 0 : -ENOMEM;
 }
 
+static __init void kvm_sched_clock_init(bool stable)
+{
+	kvm_sched_clock_offset = kvm_clock_read();
+	__paravirt_set_sched_clock(kvm_sched_clock_read, stable,
+				   kvm_save_sched_clock_state,
+				   kvm_restore_sched_clock_state);
+
+	pr_info("kvm-clock: using sched offset of %llu cycles",
+		kvm_sched_clock_offset);
+
+	BUILD_BUG_ON(sizeof(kvm_sched_clock_offset) >
+		sizeof(((struct pvclock_vcpu_time_info *)NULL)->system_time));
+}
+
 void __init kvmclock_init(void)
 {
 	u8 flags;
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:20:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:20:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310234.1581169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5i-0002Uj-Ak; Fri, 15 May 2026 19:20:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310234.1581169; Fri, 15 May 2026 19:20:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5h-0002Sh-Qa; Fri, 15 May 2026 19:20:57 +0000
Received: by outflank-mailman (input) for mailman id 1310234;
 Fri, 15 May 2026 19:20:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3FXIHagYKCW4eQMZVOSaaSXQ.OaYjQZ-PQhQXXUefe.jQZbdaVQOf.adS@flex--seanjc.bounces.google.com>)
 id 1wNy5g-0002C9-JN
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:20:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5f-009QAT-V6
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:20:55 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3FXIHagYKCW4eQMZVOSaaSXQ.OaYjQZ-PQhQXXUefe.jQZbdaVQOf.adS@flex--seanjc.bounces.google.com>)
 id 6a077216-e002-0a2a0a5209dd-0a2a450bb856-4
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:55 +0200
Received: from [209.85.210.202] (helo=mail-pf1-f202.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3FXIHagYKCW4eQMZVOSaaSXQ.OaYjQZ-PQhQXXUefe.jQZbdaVQOf.adS@flex--seanjc.bounces.google.com>)
 id 6a077216-212f-0a2a450b0019-d155d2cae4d1-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:55 +0200
Received: by mail-pf1-f202.google.com with SMTP id
 d2e1a72fcca58-836d0184333so238837b3a.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872854; x=1779477654; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=0xIKAIujVCN543pIVJIG4PCsIsqHFXWMUqZ1keR+hJo=;
        b=TAvQ3/X2R75dev+9KkpLvgy5TClzlRgTXnyLI8B5HYg1mypS7aTe67GKxjKB81bBTN
         QuYLzolJ6ODnXu+EjY1H4kipGxPzwiVcVKDk9ti60hr57zMouWDsczGfeEW9FYPkesBA
         m/sBBYF1X3aZcqLELd4IvHVWB19/o+6eS6lO4RkgpwLZE9cvIMk+ezSkq0rGAmxXjoq2
         xeINojjy1uZgKHDWsTgjdwU/sTI3EfBPWA6ChmmsrS6FHRZoFUsdQNIaHONvfcdLkDH8
         WxxwchGT88MlR6LBNTe2C9OdzTuL1ECUG0K7ilHP22nL+k+s1uja56MYCScgMgC1ZZpy
         m50w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872854; x=1779477654;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=0xIKAIujVCN543pIVJIG4PCsIsqHFXWMUqZ1keR+hJo=;
        b=QZVrDkYCSFCnS6Ign6/rD0MShQOwJEe6KvOY0lvaTUnt+mA0CgBo6HIc0SihA4Agys
         YxbjZYlDOfy7cVIBHsdrW4IvrLW1C7Zjz6dmvhB8WI7pEeojAIL/KmAibuNWdFHRZPKQ
         A4FH38T2ptFhnjt+XpXvImP8Zy2eUPYDuTP/Q5ZjkNluvO6oOjgVfta/h+KkbKhCDu1f
         /0mBny2bXgxzAcdvk1avrOce+SSuVd0UlCYRUqHDDSrglO09CTyxvU2EFG5vZDpkMMRV
         i8rUSrUrDIf6khP9XVbe24LpcNHRjrziSd+/LNgAN7nMQeh8epxxlAXMgur1HAhgkqtr
         rzsQ==
X-Forwarded-Encrypted: i=1; AFNElJ8ZBEQ0b7kWXsHa6cq8t8RWZvXfJoFkZEHwQwQklrvccX9HZ6aRxHILUxN7mMmSt7jsNpWNR15dzEs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwVAyRY2zGgbX1Q3+KVPTCqA5N694a9JQc3LwBUnLjw1A+r9BiH
	cNDPGHrTxxG2tHJRA6cfKhZama1K875+L+BryXglwnKaQ6bmSZNq7+JA+qdC2MtPsxIVNc4+WtM
	LlhXoUQ==
X-Received: from pfbbd18.prod.google.com ([2002:a05:6a00:2792:b0:82f:75de:5da4])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:1908:b0:82f:50cd:e586
 with SMTP id d2e1a72fcca58-83f33cb2c40mr5886702b3a.13.1778872853499; Fri, 15
 May 2026 12:20:53 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:22 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-22-seanjc@google.com>
Subject: [PATCH v3 21/41] x86/pvclock: Mark setup helpers and related various
 as __init/__ro_after_init
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-42698a/1778872855-1B374F3B-647E0ED2/0/0
X-purgate-type: clean
X-purgate-size: 1334

Now that Xen PV clock and kvmclock explicitly do setup only during init,
tag the common PV clock flags/vsyscall variables and their mutators with
__init.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/pvclock.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
index b3f81379c2fc..a51adce67f92 100644
--- a/arch/x86/kernel/pvclock.c
+++ b/arch/x86/kernel/pvclock.c
@@ -16,10 +16,10 @@
 #include <asm/pvclock.h>
 #include <asm/vgtod.h>
 
-static u8 valid_flags __read_mostly = 0;
-static struct pvclock_vsyscall_time_info *pvti_cpu0_va __read_mostly;
+static u8 valid_flags __ro_after_init = 0;
+static struct pvclock_vsyscall_time_info *pvti_cpu0_va __ro_after_init;
 
-void pvclock_set_flags(u8 flags)
+void __init pvclock_set_flags(u8 flags)
 {
 	valid_flags = flags;
 }
@@ -153,7 +153,7 @@ void pvclock_read_wallclock(struct pvclock_wall_clock *wall_clock,
 	set_normalized_timespec64(ts, now.tv_sec, now.tv_nsec);
 }
 
-void pvclock_set_pvti_cpu0_va(struct pvclock_vsyscall_time_info *pvti)
+void __init pvclock_set_pvti_cpu0_va(struct pvclock_vsyscall_time_info *pvti)
 {
 	WARN_ON(vclock_was_used(VDSO_CLOCKMODE_PVCLOCK));
 	pvti_cpu0_va = pvti;
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:21:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:21:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310265.1581182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5u-0004Jn-R1; Fri, 15 May 2026 19:21:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310265.1581182; Fri, 15 May 2026 19:21:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy5u-0004Im-L4; Fri, 15 May 2026 19:21:10 +0000
Received: by outflank-mailman (input) for mailman id 1310265;
 Fri, 15 May 2026 19:21:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3InIHagYKCXsrdZmibfnnfkd.bnlwdm-cdudkkhrsr.wdmoqnidbs.nqf@flex--seanjc.bounces.google.com>)
 id 1wNy5u-0004Dh-5d
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:21:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5t-007OSl-I3
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:21:09 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3InIHagYKCXsrdZmibfnnfkd.bnlwdm-cdudkkhrsr.wdmoqnidbs.nqf@flex--seanjc.bounces.google.com>)
 id 6a077201-bab6-0a2a0a5309dd-0a2a45069cfa-40
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:09 +0200
Received: from [209.85.216.74] (helo=mail-pj1-f74.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3InIHagYKCXsrdZmibfnnfkd.bnlwdm-cdudkkhrsr.wdmoqnidbs.nqf@flex--seanjc.bounces.google.com>)
 id 6a077223-7371-0a2a45060019-d155d84ae4bd-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:09 +0200
Received: by mail-pj1-f74.google.com with SMTP id
 98e67ed59e1d1-36781927b4dso293420a91.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872867; x=1779477667; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=czryuinsQM/bDv8Ei5QNsAEKCG27pLCUAiJBy5nMgao=;
        b=ioBG3FpYifFwK0k+9ALiE6+r5xflJwOZ0HodUmJB49g9WNifKrp5c5Gcb6TIxdowCg
         UtHrRJU4k7YqEzlt+6TJj1aafcZC6dSNmqt35Ey8rByGPVQkJJ8TZ/GE/98Vpp6VpoBV
         dd6jj+UYYa34yK4b/VgOHDU4JMjpZAuZLGVkU6WpgSkTnpsYaTVjdocyG46kkeRmZ2AY
         tLRz8dWyBH9aiLz7hS3iLCXP0DCwgDBk8f9HYPYuRFwrn5XMaDa7dNRRVYwydPQO9Z3q
         bjrvDcmVeKt++v5StfV9x0NAg155KvncyAL0ND7/KomVOX96kRPOhXbzQThJDcyeTdAu
         ORWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872867; x=1779477667;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=czryuinsQM/bDv8Ei5QNsAEKCG27pLCUAiJBy5nMgao=;
        b=F1nNKnAOn+O2Az8YH7UfZTdwUUtXKagMAxaj8k6+3MuQL44wycdH9tKftPjRgdnqTp
         nKoKRWUInGyMgGR4njQeAiCXwxBffpHNL7G7CouyuThyH5PIjw6MK8l8MUYi9A4tbPab
         TuSzTWfrWg1JF7j98AAQOLHh38vvOWr92O0rTIMK0p5z0LTW1DHRW8nZdNtJ906aAT8O
         sDlMwP/igXo9snRKhaj+IxTSKKSi0o4hJwJPzPGw0baRSi2SVvgOoNJxeXB/us3km+EA
         8EyQDvTLKiYow71ZWxRCttBAr8I1H8tidW+bU3aDBs6dY4tGNHcza5IOIudR9OFYWyq0
         CraQ==
X-Forwarded-Encrypted: i=1; AFNElJ8dWNBuukIgjDp82pSL8fjdw54Pg75xZum+GGlxmEPsujNIjsZouM5/OeBCqbBAaE456SuTWphefyY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzlkCX9eyFVvtfkdg9OT/wdxF8R+0eJGUbr1enls9vM4UnrBOBt
	vP7Ddm1zTxQTXzgHgivknxFTLqsuMfN/QUTVqZdh/gzC63RDvwmKY0VJPiPCwQSvyomXQPHFfB0
	lK2cCCg==
X-Received: from pjbiw14.prod.google.com ([2002:a17:90b:420e:b0:365:df9b:ae96])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90a:4ca4:b0:369:69f8:ad6b
 with SMTP id 98e67ed59e1d1-36969f8b046mr1344290a91.0.1778872866654; Fri, 15
 May 2026 12:21:06 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:29 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-29-seanjc@google.com>
Subject: [PATCH v3 28/41] x86/paravirt: Mark __paravirt_set_sched_clock() as __init
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-16d1c6/1778872869-8DF81D75-27A9D64E/0/0
X-purgate-type: clean
X-purgate-size: 2018

Annotate __paravirt_set_sched_clock() as __init, and make its wrapper
__always_inline to ensure sanitizers don't result in a non-inline version
hanging around.  All callers run during __init, and changing sched_clock
after boot would be all kinds of crazy.

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/timer.h | 10 +++++-----
 arch/x86/kernel/tsc.c        |  4 ++--
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index e97cd1ae03d1..96ae7feac47c 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -14,12 +14,12 @@ extern int no_timer_check;
 extern bool using_native_sched_clock(void);
 
 #ifdef CONFIG_PARAVIRT
-void __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
-				void (*save)(void), void (*restore)(void));
+void __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
+				       void (*save)(void), void (*restore)(void));
 
-static inline void paravirt_set_sched_clock(u64 (*func)(void),
-					    void (*save)(void),
-					    void (*restore)(void))
+static __always_inline void paravirt_set_sched_clock(u64 (*func)(void),
+						     void (*save)(void),
+						     void (*restore)(void))
 {
 	__paravirt_set_sched_clock(func, true, save, restore);
 }
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 0114c63dfdd9..4a48b8ba5bea 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -280,8 +280,8 @@ bool using_native_sched_clock(void)
 	return static_call_query(pv_sched_clock) == native_sched_clock;
 }
 
-void __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
-				void (*save)(void), void (*restore)(void))
+void __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
+				       void (*save)(void), void (*restore)(void))
 {
 	if (!stable)
 		clear_sched_clock_stable();
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:21:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:21:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310279.1581191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy62-0005Ci-8S; Fri, 15 May 2026 19:21:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310279.1581191; Fri, 15 May 2026 19:21:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy62-0005Ca-4E; Fri, 15 May 2026 19:21:18 +0000
Received: by outflank-mailman (input) for mailman id 1310279;
 Fri, 15 May 2026 19:21:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3KXIHagYKCYIykgtpimuumrk.ius3kt-jk1krroyzy.3ktvxupkiz.uxm@flex--seanjc.bounces.google.com>)
 id 1wNy60-00055Z-J3
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:21:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy5z-001yXp-VT
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:21:15 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3KXIHagYKCYIykgtpimuumrk.ius3kt-jk1krroyzy.3ktvxupkiz.uxm@flex--seanjc.bounces.google.com>)
 id 6a07720b-2eae-0a2a0a5409dd-0a2a4508c730-40
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:15 +0200
Received: from [209.85.215.201] (helo=mail-pg1-f201.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3KXIHagYKCYIykgtpimuumrk.ius3kt-jk1krroyzy.3ktvxupkiz.uxm@flex--seanjc.bounces.google.com>)
 id 6a07722a-63b5-0a2a45080019-d155d7c9e97f-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:15 +0200
Received: by mail-pg1-f201.google.com with SMTP id
 41be03b00d2f7-c709551ec08so188144a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872874; x=1779477674; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=vVLX5t3yX9DiZyDHfD7io13ZG0m6EjUCrIAXjsJko2U=;
        b=eOCxiaHV3ecWf169TC2zvmqmcR7tyOMdauDDPg+jMp+m81L22lhO4xrdqS9f1LF7PD
         NdP1ZsDE0+lPuvpR1SOQ5bclo5to2BXHPXmHaT+/cFLU29mYGhvRiEwlf+8J6t+nxNJ0
         9ktW8oO4gqBeJsJNKoN4n5ZyOl+9Oa8Mkp6DLxUecvad4Y5lT95VGkbNuPAjfZyGo/lV
         PMkMFvvTlqNfTjCdnOc62nNBKduVcP0ypqWMT+rO/1lekZ03c3uqdkZG9Ls2Q3qvLZOF
         mO9ddGneCI6sCzBmsGTfU2M026NyOY7YZDU38KMAz0ZBM/EB+Ztng46Q9gWW17Mwqgzg
         EeyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872874; x=1779477674;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=vVLX5t3yX9DiZyDHfD7io13ZG0m6EjUCrIAXjsJko2U=;
        b=FZzfHHyjpJk8gjd/Ii/kF8/zsvlUhNmPxOOCRYvhTuNRf8dKXIXvMYMSGdeJ8ySYGs
         VPLTwvjXWd075Rbfd3R8H7QmXnLsU1J5r/6eH7n9mX1lnjU+uwzipnG/7IH+mI1pqa0E
         329prkjfzFWF1/diGd/aUMAzMPgn9ffN9tryvvHGC6v5jlcZFS1rHAiy5IaBARp91wrs
         TwF2oJobDcRUc9ddhmanYpITXNsZfVq/3ENb78E4dR9lnYVASMjiCyGmHrjZy41JJzpl
         Yss6E+z+k2TQoGiY38UE0crbYL3Yck8UxeqXgv2TUBmgpS94f8i721UpT2XJ0PR7DJpV
         UueA==
X-Forwarded-Encrypted: i=1; AFNElJ+Oi5dOaqex9saVKJkk6MWHX1Q9cGrUIjiMsijsNl+4HQJLahsT8c03tYIZAb4j2ub78TR/M23HSh8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz+sbZbRCHBXW37B+jcinLqo+IYtFBZc5GmHSnnp8HxhY6NmLWE
	UM+k77NLj8cXDYtnvRCWv0BwvL+fmp4yaWI5HhNkKFQ6DPIBqZOpII/3tfkJZi/haMJ2IVBqc6u
	21M2nJg==
X-Received: from pfoo22.prod.google.com ([2002:a05:6a00:1a16:b0:836:d115:1e44])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:299a:b0:83b:c487:43d2
 with SMTP id d2e1a72fcca58-83f33df451fmr5925936b3a.36.1778872873374; Fri, 15
 May 2026 12:21:13 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:35 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-35-seanjc@google.com>
Subject: [PATCH v3 34/41] KVM: x86: Officially define CPUID 0x40000010 as PV
 Timing Info (TSC and Bus)
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-c1860d/1778872875-B7F7ADB1-66344C55/0/0
X-purgate-type: clean
X-purgate-size: 3798

From: David Woodhouse <dwmw@amazon.co.uk>

Formally define and document CPUID 0x40000010 as providing TSC and local
APIC bus frequency information for KVM's PV CPUID range.  Way back in
2008, VMware proposed (https://lkml.org/lkml/2008/10/1/246) carving out a
range of CPUID leaves for use by hypervisors.  While the broader proposal
from VMware was mostly shot down in flames, use of CPUID 0x40000010 to
provide TSC and local APIC bus frequency information survived and made it's
way into multiple guest operating systems.

XNU unconditionally assumes CPUID 0x40000010 contains the frequency
information, if it's present on any hypervisor:

  https://github.com/apple/darwin-xnu/blob/main/osfmk/i386/cpuid.c

As does FreeBSD:

  https://github.com/freebsd/freebsd-src/commit/4a432614f68

More importantly, QEMU (the de facto "reference" VMM for KVM) has
conditionally provided timing information in CPUID 0x40000010 for almost
9 years, since commit 9954a1582e ("x86-KVM: Supply TSC and APIC clock
rates to guest like VMWare").

So at this point it would be daft for KVM (or any hypervisor) to expose
0x40000010 for any *other* content.  Officially carve out and define the
CPUID leaf so that Linux-as-a-guest can follow suit and pull TSC and Local
APIC Bus frequency information from CPUID.

Defer providing userspace with the necessary information needed to
precisely and accurately enumerate the _actual_ configured TSC frequency
to the guest (that exact information, along with the scaled ratio, isn't
exposed to userspace).  As evidenced by QEMU, providing CPUID 0x40000010
without help from KVM is entirely possible, just not ideal.

Link: https://lore.kernel.org/all/ea0d7f43d910cee9600b254e303f468722fa355b.camel@infradead.org
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
[sean: drop KVM filling of CPUID, add documentation, massage changelog]
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 Documentation/virt/kvm/x86/cpuid.rst | 12 ++++++++++++
 arch/x86/include/uapi/asm/kvm_para.h | 11 +++++++++++
 2 files changed, 23 insertions(+)

diff --git a/Documentation/virt/kvm/x86/cpuid.rst b/Documentation/virt/kvm/x86/cpuid.rst
index bda3e3e737d7..f02e395cfa9b 100644
--- a/Documentation/virt/kvm/x86/cpuid.rst
+++ b/Documentation/virt/kvm/x86/cpuid.rst
@@ -122,3 +122,15 @@ KVM_HINTS_REALTIME 0            guest checks this feature bit to
                                 preempted for an unlimited time
                                 allowing optimizations
 ================== ============ =================================
+
+function: KVM_CPUID_TIMING_INFO (0x40000010)
+
+returns::
+
+   eax = (Virtual) TSC frequency in kHz
+   ebx = (Virtual) Bus (local APIC timer) frequency in kHz
+   ecx = 0 (Reserved)
+   edx = 0 (Reserved)
+
+Note, KVM only defines the semantics of KVM_CPUID_TIMING_INFO; KVM does NOT
+advertise support via KVM_GET_SUPPORTED_CPUID.
\ No newline at end of file
diff --git a/arch/x86/include/uapi/asm/kvm_para.h b/arch/x86/include/uapi/asm/kvm_para.h
index a1efa7907a0b..c3a384711f3a 100644
--- a/arch/x86/include/uapi/asm/kvm_para.h
+++ b/arch/x86/include/uapi/asm/kvm_para.h
@@ -44,6 +44,17 @@
  */
 #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT	24
 
+/*
+ * The timing information leaf provides TSC and local APIC timer frequency
+ * information to the guest.  Note, userspace is responsible for filling the
+ * leaf with the correct information.
+ *
+ *  # EAX: (Virtual) TSC frequency in kHz.
+ *  # EBX: (Virtual) Bus (local APIC timer) frequency in kHz.
+ *  # ECX, EDX: Reserved (must be zero).
+ */
+#define KVM_CPUID_TIMING_INFO	0x40000010
+
 #define MSR_KVM_WALL_CLOCK  0x11
 #define MSR_KVM_SYSTEM_TIME 0x12
 
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:21:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:21:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310281.1581200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy64-0005Yl-Gy; Fri, 15 May 2026 19:21:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310281.1581200; Fri, 15 May 2026 19:21:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy64-0005YY-D0; Fri, 15 May 2026 19:21:20 +0000
Received: by outflank-mailman (input) for mailman id 1310281;
 Fri, 15 May 2026 19:21:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3K3IHagYKCYQ0mivrkowwotm.kwu5mv-lm3mttq010.5mvxzwrmk1.wzo@flex--seanjc.bounces.google.com>)
 id 1wNy62-0005Gz-N8
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:21:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy62-009QAT-3H
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:21:18 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3K3IHagYKCYQ0mivrkowwotm.kwu5mv-lm3mttq010.5mvxzwrmk1.wzo@flex--seanjc.bounces.google.com>)
 id 6a0771f7-e002-0a2a0a5209dd-0a2a45098270-46
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:18 +0200
Received: from [209.85.210.202] (helo=mail-pf1-f202.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3K3IHagYKCYQ0mivrkowwotm.kwu5mv-lm3mttq010.5mvxzwrmk1.wzo@flex--seanjc.bounces.google.com>)
 id 6a07722c-2497-0a2a45090019-d155d2cae09a-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:17 +0200
Received: by mail-pf1-f202.google.com with SMTP id
 d2e1a72fcca58-837c4eb3bdfso227950b3a.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872876; x=1779477676; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=b8iwHk13SynGR+feSoAEVsPbJ8RDfXFvMc9oOLx500A=;
        b=Ks4YZwpXNYromEJbX8V8PPF1yQNoGCeu0ywKdD5y5843V7z9Qmkg+TjkWpfF+kEkB5
         K90N7uEE005yywg7ohmbowfutSqVioCB32toM6emtpUN2W17jSOpMEEptRA+RCeVdJtH
         C3hfKmxDdD9tjo0/lCqcqjXjIKEdvRggHPocJ5zwQetPELiokvKh7ldQ/yW0jwyrR/XO
         29I9T8XMPkal1+iG3GNkCiNBlPi/US+XECmac72oaR++emEc2+KG/8nzIy+MbcAqNu3Z
         aWm/RbjWRTZQcChBiPwNc6WfidIuBlRZaM0q2DQsEo2UMoK/on91XVYanldD2WzWyt4X
         x6wA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872876; x=1779477676;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=b8iwHk13SynGR+feSoAEVsPbJ8RDfXFvMc9oOLx500A=;
        b=K0x8ifqq4ae/fLKdHJiq7Rh4qyKsYR/9JgTK03CxmDMSyvzR49tf93BqPargjajz1v
         gBrQbinwIJXWfDm1XOGJnLxouArkGX2NkN9AE5cMLrxg+HV8Ik9QtrbYbGJHpVZC0sf6
         47dZjsFwcZP3qJzaiCm+q9fECQPj94tko1XcZm+GZ9j6IhMjVClgAVk2M+/fn9VPA5sq
         R0e38CBm1DC8+u6zp+wk11fo4UBvhTZ9iKOKJZC2W+Qke7JpLSWrIjs4b2MvJNhDTQNg
         xQ7toxLsldWmJ3IVnDJuH0P4R8UMqvaTJf1rUEkEDLZDZmbQf6fCnglFogQ21QbJJ6c+
         pVVQ==
X-Forwarded-Encrypted: i=1; AFNElJ+e9KN9amdC0ysRjCYv08hM0IPIpMI3mEJrAjyt5FSBi5Ld1MRUxS491t3w2ZQfukW+Ylgn1xUSNF0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzng2DuspE8VdCCM7J1MXXx/hizkCYfARs0Djr5vEUMn3+lDWiw
	DNnQ2JY0nIUNTAubsnuf79pd45TPNHcBi0IM/BSpHbWC6Ram8Cl8ubnu2Bl+vTPrIup3VcrMUzu
	zEDze6A==
X-Received: from pfmm20.prod.google.com ([2002:a05:6a00:2494:b0:835:43a4:4aaa])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:4293:b0:835:41f3:f440
 with SMTP id d2e1a72fcca58-83f33bf68e4mr5394751b3a.14.1778872875569; Fri, 15
 May 2026 12:21:15 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:37 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-37-seanjc@google.com>
Subject: [PATCH v3 36/41] x86/kvmclock: Get local APIC bus frequency from PV
 CPUID Timing Info
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-bad1c0/1778872878-40B60A53-AA9B544E/0/0
X-purgate-type: clean
X-purgate-size: 2961

When running as a KVM guest with kvmclock support enabled, stuff the APIC
timer period/frequency with the local APIC bus frequency reported in
CPUID.0x40000010.EBX instead of trying to calibrate/guess the frequency.

See Documentation/virt/kvm/x86/cpuid.rst for details.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/kvm_para.h |  1 +
 arch/x86/kernel/kvm.c           | 19 ++++++++++++++++---
 arch/x86/kernel/kvmclock.c      | 13 +++++++++++--
 3 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h
index 3f7f558b5b24..381d029b72e7 100644
--- a/arch/x86/include/asm/kvm_para.h
+++ b/arch/x86/include/asm/kvm_para.h
@@ -130,6 +130,7 @@ void kvmclock_init(void);
 void kvmclock_cpu_action(enum kvm_guest_cpu_action action);
 bool kvm_para_available(void);
 unsigned int kvm_para_tsc_khz(void);
+unsigned int kvm_para_apic_bus_khz(void);
 unsigned int kvm_arch_para_features(void);
 unsigned int kvm_arch_para_hints(void);
 void kvm_async_pf_task_wait_schedule(u32 token);
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 5cd92a0b156a..bfe36e361b3c 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -918,12 +918,25 @@ bool kvm_para_available(void)
 }
 EXPORT_SYMBOL_GPL(kvm_para_available);
 
-unsigned int kvm_para_tsc_khz(void)
+static bool kvm_cpuid_has_timing_info(void)
 {
 	u32 base = kvm_cpuid_base();
 
-	if (cpuid_eax(base) >= (base | KVM_CPUID_TIMING_INFO))
-		return cpuid_eax(base | KVM_CPUID_TIMING_INFO);
+	return cpuid_eax(base) >= (base | KVM_CPUID_TIMING_INFO);
+}
+
+unsigned int kvm_para_tsc_khz(void)
+{
+	if (kvm_cpuid_has_timing_info())
+		return cpuid_eax(kvm_cpuid_base() | KVM_CPUID_TIMING_INFO);
+
+	return 0;
+}
+
+unsigned int kvm_para_apic_bus_khz(void)
+{
+	if (kvm_cpuid_has_timing_info())
+		return cpuid_ebx(kvm_cpuid_base() | KVM_CPUID_TIMING_INFO);
 
 	return 0;
 }
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 5ceba4f3836c..abcc5b36ea1d 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -200,10 +200,19 @@ void kvmclock_cpu_action(enum kvm_guest_cpu_action action)
  */
 static unsigned long kvm_get_tsc_khz(void)
 {
+#ifdef CONFIG_X86_LOCAL_APIC
+	u32 apic_khz = kvm_para_apic_bus_khz();
+
 	/*
-	 * If KVM advertises the frequency directly in CPUID, use that
-	 * instead of reverse-calculating it from the KVM clock data.
+	 * Use the TSC frequency from KVM's (and other hypervisors') PV CPUID
+	 * leaf when available, instead of reverse-calculating it from the KVM
+	 * clock data.  As a bonus, the CPUID leaf also includes the local APIC
+	 * bus/timer frequency.
 	 */
+	if (apic_khz)
+		lapic_timer_period = apic_khz;
+#endif
+
 	return kvm_para_tsc_khz() ? : pvclock_tsc_khz(this_cpu_pvti());
 }
 
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:21:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:21:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310294.1581209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy6C-00066m-Q8; Fri, 15 May 2026 19:21:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310294.1581209; Fri, 15 May 2026 19:21:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy6C-00066d-Lx; Fri, 15 May 2026 19:21:28 +0000
Received: by outflank-mailman (input) for mailman id 1310294;
 Fri, 15 May 2026 19:21:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3NHIHagYKCY09vr40tx55x2v.t53Ev4-uvCv22z9A9.Ev46850vtA.58x@flex--seanjc.bounces.google.com>)
 id 1wNy6B-00064U-Hv
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:21:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy6A-0039we-UL
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:21:26 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3NHIHagYKCY09vr40tx55x2v.t53Ev4-uvCv22z9A9.Ev46850vtA.58x@flex--seanjc.bounces.google.com>)
 id 6a0771e7-5cb7-0a2a0a5109dd-0a2a4507aa8c-42
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:26 +0200
Received: from [209.85.215.201] (helo=mail-pg1-f201.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3NHIHagYKCY09vr40tx55x2v.t53Ev4-uvCv22z9A9.Ev46850vtA.58x@flex--seanjc.bounces.google.com>)
 id 6a077235-229c-0a2a45070019-d155d7c9c938-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:26 +0200
Received: by mail-pg1-f201.google.com with SMTP id
 41be03b00d2f7-c828b1b7fddso60028a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:26 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872885; x=1779477685; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=5BJQi7ZR1svDe2KF7RHkPrmL6MBNA7Dkc8gFvThdUD0=;
        b=uRLv+LzdA0cDNLipZ3eejmsfPb//TmpL8yn4dH6B8W60dNkBg10r4HSL54xqTzAmfi
         XjDOj4VZvP7hzRktAyqVYY6ItEojjqNmsAd8/7Tp5Yr0TbmIr+rPHK+Y3HtK1fyfdWSa
         7zNcK4yx27TYcPdjmZgtAPLQtB188jJTiaYE1dChA7j8Uh/3IB2yDmQrFkkYeYPLxZQM
         K3QOZps4Ijy6Cq2nVZp0NlccxpWkUmOqwvs0eSOteJp+uHbosFPjQ2IYTI5P/U1jTvT5
         3M56Y61gco2K9lmGTLw86m40Si076KtCksHUy0eq3TCR8CxWOqCTxyRT2TS3IdF6oD2a
         hrBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872885; x=1779477685;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=5BJQi7ZR1svDe2KF7RHkPrmL6MBNA7Dkc8gFvThdUD0=;
        b=oUlnKB2dioVhF1VKRDxeeNCiaTTUTchgEWxICE6U53AbUnI6In06htLvwE+wogPoUT
         3nAYJV5CDraqGBiwNzfGP4XkVoLL3i4zmCdHyNXmPq3eB2RZFi5t4EUTP9RFQHJjhQSd
         e/uR0gqkcPpnXJhOg7uzbVFx/PY9pWAhmRC0rGrqwpLOCxiSmLP6TAu/xsKCG3IVaHnI
         PLn2Ivwy5FCHwnG3tFvTxZzTAl66AFu3IiTkvQ5i0h/bcBjkoh43DgBhjA56/Y2660Yw
         D1gtGeDKtz04xBn/MNfpOHFxtJ60yZuHCVFhOTUdACC8Zfa6GmCsRN/mnHAcFQrQzBP1
         mN4w==
X-Forwarded-Encrypted: i=1; AFNElJ8xfyK3LD67WWMPdQEmivuduuHt64J/yldjqyEzSXJGlGlEoF1JqfXw2KQ6DTlaDu3YNmIzn1P5Cj0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxnPKMMAdmOdVBWBWopa9+HX0sySbqEaM9chX/xFZxKaD1lL9rK
	YnTmuoUYHWQwRjQ0m6sk94QrrfXxLE4clNwdzJOwCVIUqGEhKyTNu4VDlePRWNoS0RM81lySN4B
	4OgowDQ==
X-Received: from pfbeq4.prod.google.com ([2002:a05:6a00:37c4:b0:82f:344e:386a])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:9502:b0:838:1c02:2763
 with SMTP id d2e1a72fcca58-83f33ab667bmr5736284b3a.9.1778872884225; Fri, 15
 May 2026 12:21:24 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:42 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-42-seanjc@google.com>
Subject: [PATCH v3 41/41] x86/kvmclock: Get CPU base frequency from CPUID when
 it's available
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-ef75cf/1778872886-28C7DC48-DEB56334/0/0
X-purgate-type: clean
X-purgate-size: 1663

If CPUID.0x16 is present and valid, use the CPU frequency provided by
CPUID instead of assuming that the virtual CPU runs at the same
frequency as TSC and/or kvmclock.  Back before constant TSCs were a
thing, treating the TSC and CPU frequencies as one and the same was
somewhat reasonable, but now it's nonsensical, especially if the
hypervisor explicitly enumerates the CPU frequency.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 62c8ea2e6769..7607920ae386 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -190,6 +190,20 @@ void kvmclock_cpu_action(enum kvm_guest_cpu_action action)
 	}
 }
 
+static unsigned long kvm_get_cpu_khz(void)
+{
+	unsigned int cpu_khz;
+
+	/*
+	 * Prefer CPUID over kvmclock when possible, as the base CPU frequency
+	 * isn't necessarily the same as the kvmlock "TSC" frequency.
+	 */
+	if (!cpuid_get_cpu_freq(&cpu_khz))
+		return cpu_khz;
+
+	return pvclock_tsc_khz(this_cpu_pvti());
+}
+
 /*
  * If we don't do that, there is the possibility that the guest
  * will calibrate under heavy load - thus, getting a lower lpj -
@@ -434,7 +448,7 @@ void __init kvmclock_init(void)
 		kvm_sched_clock_init(stable);
 	}
 
-	tsc_register_calibration_routines(kvm_get_tsc_khz, kvm_get_tsc_khz,
+	tsc_register_calibration_routines(kvm_get_tsc_khz, kvm_get_cpu_khz,
 					  tsc_properties);
 
 	x86_platform.get_wallclock = kvm_get_wallclock;
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:23:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:23:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310323.1581217 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy7z-0007hK-3m; Fri, 15 May 2026 19:23:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310323.1581217; Fri, 15 May 2026 19:23:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy7z-0007hD-1E; Fri, 15 May 2026 19:23:19 +0000
Received: by outflank-mailman (input) for mailman id 1310323;
 Fri, 15 May 2026 19:23:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3KnIHagYKCYMzlhuqjnvvnsl.jvt4lu-kl2lsspz0z.4luwyvqlj0.vyn@flex--seanjc.bounces.google.com>)
 id 1wNy7x-0007h0-NY
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:23:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy7x-00BXOc-3r
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:23:17 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3KnIHagYKCYMzlhuqjnvvnsl.jvt4lu-kl2lsspz0z.4luwyvqlj0.vyn@flex--seanjc.bounces.google.com>)
 id 6a077266-e002-0a2a0a5209dd-0a2a450194e6-16
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:23:17 +0200
Received: from [209.85.215.201] (helo=mail-pg1-f201.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3KnIHagYKCYMzlhuqjnvvnsl.jvt4lu-kl2lsspz0z.4luwyvqlj0.vyn@flex--seanjc.bounces.google.com>)
 id 6a07722b-c1f2-0a2a45010019-d155d7c9e03a-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:16 +0200
Received: by mail-pg1-f201.google.com with SMTP id
 41be03b00d2f7-c799ee56bd6so145584a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872875; x=1779477675; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:reply-to:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Zm1yasCgCkYBCfOrXX2peIQ68HcxfozY1zg+bDbrsDM=;
        b=fJMaZqYuZHOm8AKMt/L4KC1jrHSoFoCrfYd41E17aRPoZygM5ZOuhNyb2j4KgGtLsI
         DR923adDfISkAXLywvY0teblMRdkiFxOMS5JKcuzJ+EZvSBHC3NxjsA6wn74zEQiXEDa
         HW0IY2dplFeFx0hWbdz4NT4il5ftgkVw4QO/EnBszLwRxO8Umc7fcgGzGjkTM+Nukd3Y
         jHA9mjLLfszLzXlRrf8SOScp+IeRAXTY2OSiVdvNSMJI+NiN4ht+ifs9UESLRxOnHE+W
         MBUoIY3cRYoch2V7SKvoo+ylKAhPik/r7GBhcx0v01C7GGMOQnL5fNZzFNAKgIFFveyL
         jImg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872875; x=1779477675;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:reply-to:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Zm1yasCgCkYBCfOrXX2peIQ68HcxfozY1zg+bDbrsDM=;
        b=bCuMgSVrO8/ZK5PFNZLfUjD7I4C+n0FBGyxHcRWcZUM20T9rEWloXWAvx79PZVjnzx
         x1MvC+svz6OT+erEzalK29Bo1kfSwvh0qTvHVSmme3V46Us4PEktkJwGHadfwXKMfSRI
         uZzyd262vuQWU6gy8cx8+DolUF5P2qShdFakE5L+3hwgh/++go+3ChoLIKEG6Kxd2HQ7
         xtYXXGX1HMKy1w0BUKu8mmQUdvr004JxznO5eJ2oNDnEhJVDI72PALwcq6+gRoBVBgnh
         4SXjJ1O4vK0ZkoyI7/6e/QexPfvOjdGOK2PGkzwBBRibFVfC8RM8P/IQs8mv7bJZDVRO
         XSjg==
X-Forwarded-Encrypted: i=1; AFNElJ+xQtX3aB56PRMYKaAdg7E/wFEY78sQuP06EPTNvN4sYblrvfegxPGYbcaXXQ5leYerAZFixzhQoSY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGlT/M7kMHFVR34Y3zSx5TDqR0pgSeIITe3wN7TIubYYwPJYxS
	rHYxcXXoa+gkkA8ZXQlu5xguvviOFLKJ+RK2U9ZCHRza7X8S269JuGNOd2YmZkZBz5XLXkFxwjD
	54pFjmQ==
X-Received: from pfvo27.prod.google.com ([2002:a05:6a00:1b5b:b0:837:e90f:8cd9])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:338b:b0:838:9e25:f128
 with SMTP id d2e1a72fcca58-83f33cf0bf3mr5811988b3a.26.1778872874478; Fri, 15
 May 2026 12:21:14 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:36 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-36-seanjc@google.com>
Subject: [PATCH v3 35/41] x86/kvmclock: Obtain TSC frequency from CPUID if present
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d62444/1778872876-AE342FF4-BB56FD61/0/0
X-purgate-type: clean
X-purgate-size: 3211

From: David Woodhouse <dwmw@amazon.co.uk>

In https://lkml.org/lkml/2008/10/1/246 a proposal was made for generic
CPUID conventions across hypervisors. It was mostly shot down in flames,
but the leaf at 0x40000010 containing timing information didn't die.

It's used by XNU and FreeBSD guests under all hypervisors=C2=B9=C2=B2 to de=
termine
the TSC frequency, and also exposed by the EC2 Nitro hypervisor (as
well as, presumably, VMware). FreeBSD's Bhyve is probably just about
to start exposing it too.

Use it under KVM to obtain the TSC frequency more accurately, instead
of reverse-calculating the frequency from the mul/shift values in the
KVM clock.

Before:
[    0.000020] tsc: Detected 2900.014 MHz processor

After:
[    0.000020] tsc: Detected 2900.015 MHz processor

$ cpuid -1 -l 0x40000010
CPU:
   hypervisor generic timing information (0x40000010):
      TSC frequency (Hz) =3D 2900015
      bus frequency (Hz) =3D 1000000

=C2=B9 https://github.com/apple/darwin-xnu/blob/main/osfmk/i386/cpuid.c
=C2=B2 https://github.com/freebsd/freebsd-src/commit/4a432614f68

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/kvm_para.h |  1 +
 arch/x86/kernel/kvm.c           | 10 ++++++++++
 arch/x86/kernel/kvmclock.c      |  6 +++++-
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_par=
a.h
index 17053d2bf270..3f7f558b5b24 100644
--- a/arch/x86/include/asm/kvm_para.h
+++ b/arch/x86/include/asm/kvm_para.h
@@ -129,6 +129,7 @@ enum kvm_guest_cpu_action {
 void kvmclock_init(void);
 void kvmclock_cpu_action(enum kvm_guest_cpu_action action);
 bool kvm_para_available(void);
+unsigned int kvm_para_tsc_khz(void);
 unsigned int kvm_arch_para_features(void);
 unsigned int kvm_arch_para_hints(void);
 void kvm_async_pf_task_wait_schedule(u32 token);
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 65c787b1ea03..5cd92a0b156a 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -918,6 +918,16 @@ bool kvm_para_available(void)
 }
 EXPORT_SYMBOL_GPL(kvm_para_available);
=20
+unsigned int kvm_para_tsc_khz(void)
+{
+	u32 base =3D kvm_cpuid_base();
+
+	if (cpuid_eax(base) >=3D (base | KVM_CPUID_TIMING_INFO))
+		return cpuid_eax(base | KVM_CPUID_TIMING_INFO);
+
+	return 0;
+}
+
 unsigned int kvm_arch_para_features(void)
 {
 	return cpuid_eax(kvm_cpuid_base() | KVM_CPUID_FEATURES);
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 47f7df1e81a0..5ceba4f3836c 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -200,7 +200,11 @@ void kvmclock_cpu_action(enum kvm_guest_cpu_action act=
ion)
  */
 static unsigned long kvm_get_tsc_khz(void)
 {
-	return pvclock_tsc_khz(this_cpu_pvti());
+	/*
+	 * If KVM advertises the frequency directly in CPUID, use that
+	 * instead of reverse-calculating it from the KVM clock data.
+	 */
+	return kvm_para_tsc_khz() ? : pvclock_tsc_khz(this_cpu_pvti());
 }
=20
 static void __init kvm_get_preset_lpj(void)
--=20
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:23:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:23:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310326.1581227 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy81-0007vZ-HH; Fri, 15 May 2026 19:23:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310326.1581227; Fri, 15 May 2026 19:23:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy81-0007vP-EN; Fri, 15 May 2026 19:23:21 +0000
Received: by outflank-mailman (input) for mailman id 1310326;
 Fri, 15 May 2026 19:23:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3LHIHagYKCYU1njwslpxxpun.lxv6nw-mn4nuur121.6nwy0xsnl2.x0p@flex--seanjc.bounces.google.com>)
 id 1wNy80-0007t0-9z
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:23:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy7z-00BXOc-ML
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:23:19 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3LHIHagYKCYU1njwslpxxpun.lxv6nw-mn4nuur121.6nwy0xsnl2.x0p@flex--seanjc.bounces.google.com>)
 id 6a077266-e002-0a2a0a5209dd-0a2a450194e6-18
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:23:19 +0200
Received: from [209.85.210.201] (helo=mail-pf1-f201.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3LHIHagYKCYU1njwslpxxpun.lxv6nw-mn4nuur121.6nwy0xsnl2.x0p@flex--seanjc.bounces.google.com>)
 id 6a07722d-c1f2-0a2a45010019-d155d2c9c0c4-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:19 +0200
Received: by mail-pf1-f201.google.com with SMTP id
 d2e1a72fcca58-82fa366fb79so248873b3a.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872877; x=1779477677; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=E3je6rXVDqS2RblPlDEIDkn7XwnxqvqokNa5l9m4jL4=;
        b=jCRGSSzOMIM8eYzD8bf9U0wBuML9xvXgjhm4Tn9iuZTR2fUtqK56qocXP/wrT33Q8y
         wgg4E1t5SuHuL/01z3eoe0s5qLytZd4KzPfacgD3qAr5ielKTKvyJO2+MrafH9b3m4HF
         L29mvl2Y/6VCm4SZK1CtKG3K1G1V+nzzqwkpVAZEi+7+yEGqtJ0l0vwqCYdVdL3CDq7+
         dsp//bx9AWw2SnaRF40SetkA4N5D10cZhtWb9IAo63gMwig6qEUkR+zs+76TWa4rLvSw
         3UHImTuAuAABkIF/CHmkD2LnZNCcsb24kOSkUlsn84BM2j7I/Wl5KUcSTVVXz9JgAWGS
         taYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872877; x=1779477677;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=E3je6rXVDqS2RblPlDEIDkn7XwnxqvqokNa5l9m4jL4=;
        b=VokH/GFA4ebM65nF68M/Mx3FcFZn+Fm7gQGr7lNuof5rFEWkk44Q4T4XeK4w+PoSTm
         /IDc0N6MYrIqjhiCDeRciL6raH0eHjXsfOFltZ6u7aGu1rEtX6f2iYoOAjK1PdNBM5px
         5kzw2TQ/SJ5wOTNzjGefdUSMsDg+t0svqd5vQJjBgbENiCOyZ+moTbWNQUfcTTUvIJ0c
         d9ypwYVi6YyMpESnq1ozr2lkx7oITFQTXB2q1dh5tXHmAwETi0f4hiUPjWQxW9HUM4GS
         vY93Q2ybdXb9gwamLdKFvHOA9pgi2VnnOMsKOc+QVOndjum6Cd2cp+31FisICK4FzEVU
         VsKQ==
X-Forwarded-Encrypted: i=1; AFNElJ9ssbRxC7B417iLYLvw7U9S5Y1PK73hx4Lgmo0jIzc9JWfuQQ2ZADSvh54fdT1RU6InxVOlb20YWqk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyOPi1F+0fYxHof5LQ8Hi8IMXK/mVnY3+LKBSn1cGFbLUSmU24l
	CZdY6QN0yKGO5sVZT8x1OED0rGpMRsmUhcXbQsDvCtq6Dvfjs81ZwdCIy7RJEoSw2W3VObTVZUy
	lcrLkdA==
X-Received: from pfbmd16.prod.google.com ([2002:a05:6a00:7710:b0:82f:c134:e67c])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:8d1:b0:82c:6aee:b21a
 with SMTP id d2e1a72fcca58-83f33f2a54fmr5839384b3a.45.1778872876956; Fri, 15
 May 2026 12:21:16 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:38 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-38-seanjc@google.com>
Subject: [PATCH v3 37/41] x86/kvmclock: Use TSC for sched_clock if it's
 constant and non-stop
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-d62444/1778872879-AD9A9FF4-37EB073F/0/0
X-purgate-type: clean
X-purgate-size: 2868

Prefer the TSC over kvmclock for sched_clock if the TSC is constant,
nonstop, and not marked unstable via command line.  I.e. use the same
criteria as tweaking the clocksource rating so that TSC is preferred over
kvmclock.  Per the below comment from native_sched_clock(), sched_clock
is more tolerant of slop than clocksource; using TSC for clocksource but
not sched_clock makes little to no sense, especially now that KVM CoCo
guests with a trusted TSC use TSC, not kvmclock.

        /*
         * Fall back to jiffies if there's no TSC available:
         * ( But note that we still use it if the TSC is marked
         *   unstable. We do this because unlike Time Of Day,
         *   the scheduler clock tolerates small errors and it's
         *   very important for it to be as fast as the platform
         *   can achieve it. )
         */

The only advantage of using kvmclock is that doing so allows for early
and common detection of PVCLOCK_GUEST_STOPPED, but that code has been
broken for over two years with nary a complaint, i.e. it can't be
_that_ valuable.  And as above, certain types of KVM guests are losing
the functionality regardless, i.e. acknowledging PVCLOCK_GUEST_STOPPED
needs to be decoupled from sched_clock() no matter what.

Link: https://lore.kernel.org/all/Z4hDK27OV7wK572A@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index abcc5b36ea1d..0578bc448b1b 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -416,22 +416,22 @@ void __init kvmclock_init(void)
 	}
 
 	/*
-	 * X86_FEATURE_NONSTOP_TSC is TSC runs at constant rate
-	 * with P/T states and does not stop in deep C-states.
-	 *
-	 * Invariant TSC exposed by host means kvmclock is not necessary:
-	 * can use TSC as clocksource.
-	 *
+	 * If the TSC counts at a constant frequency across P/T states, counts
+	 * in deep C-states, and the TSC hasn't been marked unstable, prefer
+	 * the TSC over kvmclock for sched_clock and drop kvmclock's rating so
+	 * that TSC is chosen as the clocksource.  Note, the TSC unstable check
+	 * exists purely to honor the TSC being marked unstable via command
+	 * line, any runtime detection of an unstable will happen after this.
 	 */
 	if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC) &&
 	    boot_cpu_has(X86_FEATURE_NONSTOP_TSC) &&
 	    !check_tsc_unstable()) {
 		kvm_clock.rating = 299;
 		tsc_properties = TSC_FREQ_KNOWN_AND_RELIABLE;
+	} else {
+		kvm_sched_clock_init(stable);
 	}
 
-	kvm_sched_clock_init(stable);
-
 	tsc_register_calibration_routines(kvm_get_tsc_khz, kvm_get_tsc_khz,
 					  tsc_properties);
 
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310360.1581245 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9j-00010c-4e; Fri, 15 May 2026 19:25:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310360.1581245; Fri, 15 May 2026 19:25:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9j-00010V-1R; Fri, 15 May 2026 19:25:07 +0000
Received: by outflank-mailman (input) for mailman id 1310360;
 Fri, 15 May 2026 19:25:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3HnIHagYKCXcnZVieXbjjbgZ.XjhsZi-YZqZggdnon.sZikmjeZXo.jmb@flex--seanjc.bounces.google.com>)
 id 1wNy9h-0000nX-Q7
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy9h-001IcX-6J
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:05 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3HnIHagYKCXcnZVieXbjjbgZ.XjhsZi-YZqZggdnon.sZikmjeZXo.jmb@flex--seanjc.bounces.google.com>)
 id 6a0772c3-2eae-0a2a0a5409dd-0a2a450ca066-34
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:05 +0200
Received: from [209.85.210.201] (helo=mail-pf1-f201.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3HnIHagYKCXcnZVieXbjjbgZ.XjhsZi-YZqZggdnon.sZikmjeZXo.jmb@flex--seanjc.bounces.google.com>)
 id 6a07721f-62f1-0a2a450c0019-d155d2c9b99f-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:04 +0200
Received: by mail-pf1-f201.google.com with SMTP id
 d2e1a72fcca58-8386367b23cso111044b3a.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872863; x=1779477663; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=cmCCoVXH/wzfqmDby7kD+g/lqwg2CVoD5UqPiffRRm8=;
        b=gkRL8idSOZFl23s8+moBBAKGyRpES6cO5sHDSYHtKCmF8pnf18NtwOTDPOrGPGOFR9
         nUdvc6rKRzUBdqrsj8GcVtkbjXC6fii7n45T7T4b5MysnrdkOSkZIOd3Ozsi7QnxYKSx
         nVUFh0ge5hF15kMub7qeTFatWoXpINJ1E1bIyeehK6ru7D0F0jmzk/0hUlh/VEL0Niwd
         j9jvwYzv4G1Ti4mwslxO0K5JIYyJYZ62YoSOb4uUfoq4qOTckIwZeQHzt5qeqgSH/8kk
         ElERvg6t9bElAT1lTqWZQSy3dZTpNzix8oBDaCuxlZW6O3MkJcYhOR8MMpLh7oWXvQrx
         pPYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872863; x=1779477663;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=cmCCoVXH/wzfqmDby7kD+g/lqwg2CVoD5UqPiffRRm8=;
        b=FRkgixumBowpF/9ejvGHurNGvsGHaGwoo974LoYagQdpqzuppA5DYUGDeTfXLjQZjd
         sTr9CdCijNYuGZ6l1aAVlusIJh9XaZIY7U4vHFC/ZlPtbnarnMiGS7yS9whGKgrBobOw
         B7Z7P8EseklD7uDmGaqOszGU5wIpNrXIQaXWYyG8JBLFlAz2lgpfMsinqAX7Y+avR9N8
         XJHnXTXul1+I7niUb+bsifrqbnpzWbRrnBdLSGv/O6dKjJ66rVH3/RJj5TDiYh25XB4Q
         HN6y3EQUWc9E866KNiR4xGxjNTud4QXL7KqdGqyNmkBWfV8XXxxIgBSMTjAT2Ap5WFpF
         +a3w==
X-Forwarded-Encrypted: i=1; AFNElJ/93G2hSnj7VOfNmvQo4WjZjARe0j6wciqWrVE0fA2qXGVCc+8KCrjpcj/z7b/1GQTn9VzRpWKMKXE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYzp71XmAZZuWkos5xi3cTgvkvAHvRavpRP7yG1jokCGewlY5y
	FnvUA7F8XBYxGsZbx+T9kZcHI/DKrJzzF5QLImQNb9lJS6X5u0NbKzSjkZfHTnJoJL8wDxCWXzS
	XBh3mXQ==
X-Received: from pfbeq3.prod.google.com ([2002:a05:6a00:37c3:b0:82f:ad57:40bb])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:44c3:b0:82c:6da7:2d3d
 with SMTP id d2e1a72fcca58-83f33c2a8fdmr5145208b3a.11.1778872862416; Fri, 15
 May 2026 12:21:02 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:26 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-26-seanjc@google.com>
Subject: [PATCH v3 25/41] x86/kvmclock: Hook clocksource.suspend/resume when
 kvmclock isn't sched_clock
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-d25034/1778872865-E397DCF5-4CC97177/0/0
X-purgate-type: clean
X-purgate-size: 1980

Save/restore kvmclock across suspend/resume via clocksource hooks when
kvmclock isn't being used for sched_clock.  This will allow using kvmclock
as a clocksource (or for wallclock!) without also using it for sched_clock.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index ccb2aff89b2f..655037949446 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -131,7 +131,17 @@ static void kvm_setup_secondary_clock(void)
 
 static void kvm_restore_sched_clock_state(void)
 {
-	kvm_register_clock("primary cpu clock, resume");
+	kvm_register_clock("primary cpu, sched_clock resume");
+}
+
+static void kvmclock_suspend(struct clocksource *cs)
+{
+	kvmclock_disable();
+}
+
+static void kvmclock_resume(struct clocksource *cs)
+{
+	kvm_register_clock("primary cpu, clocksource resume");
 }
 
 void kvmclock_cpu_action(enum kvm_guest_cpu_action action)
@@ -202,6 +212,8 @@ static struct clocksource kvm_clock = {
 	.flags	= CLOCK_SOURCE_IS_CONTINUOUS,
 	.id     = CSID_X86_KVM_CLK,
 	.enable	= kvm_cs_enable,
+	.suspend = kvmclock_suspend,
+	.resume = kvmclock_resume,
 };
 
 static void __init kvmclock_init_mem(void)
@@ -297,6 +309,15 @@ static __init void kvm_sched_clock_init(bool stable)
 				   kvm_save_sched_clock_state,
 				   kvm_restore_sched_clock_state);
 
+	/*
+	 * The BSP's clock is managed via dedicated sched_clock save/restore
+	 * hooks when kvmclock is used as sched_clock, as sched_clock needs to
+	 * be kept alive until the very end of suspend entry, and restored as
+	 * quickly as possible after resume.
+	 */
+	kvm_clock.suspend = NULL;
+	kvm_clock.resume = NULL;
+
 	pr_info("kvm-clock: using sched offset of %llu cycles",
 		kvm_sched_clock_offset);
 
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310358.1581237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9h-0000ng-VC; Fri, 15 May 2026 19:25:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310358.1581237; Fri, 15 May 2026 19:25:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9h-0000nY-Q0; Fri, 15 May 2026 19:25:05 +0000
Received: by outflank-mailman (input) for mailman id 1310358;
 Fri, 15 May 2026 19:25:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3HHIHagYKCXUlXTgcVZhhZeX.VhfqXg-WXoXeeblml.qXgikhcXVm.hkZ@flex--seanjc.bounces.google.com>)
 id 1wNy9f-0000nF-QQ
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy9f-001IcX-3O
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:03 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3HHIHagYKCXUlXTgcVZhhZeX.VhfqXg-WXoXeeblml.qXgikhcXVm.hkZ@flex--seanjc.bounces.google.com>)
 id 6a0772c3-2eae-0a2a0a5409dd-0a2a450ca066-32
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:03 +0200
Received: from [209.85.210.201] (helo=mail-pf1-f201.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3HHIHagYKCXUlXTgcVZhhZeX.VhfqXg-WXoXeeblml.qXgikhcXVm.hkZ@flex--seanjc.bounces.google.com>)
 id 6a07721d-62f1-0a2a450c0019-d155d2c9b819-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:02 +0200
Received: by mail-pf1-f201.google.com with SMTP id
 d2e1a72fcca58-837d43e9ff3so95279b3a.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872861; x=1779477661; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=4XJIP9GZP+0qc5TpuA2ddXAK/ReZERF3J3EAtmTAWAE=;
        b=vY97UlkOqRlwYSGeROUkkgpzg1Fq9WGN2NsWZ21ticBVLwTnoGtFrRypzZihpN5TiT
         I2wgu3JLWYDK7gHqkKZPzPF8bmWFkRPF5HKbIOypJ8qkVxVfoqxXqlMBKRuJ7r/kREjL
         s5Utioj8Lm5wSj2nEEJWSLFsuUIgdymOvz0Yo6r56Wmex9gDEPit9TUM8qKrkWOBIU04
         wqB43YJk614Jd1ZTAZdGVmW6S2AHbvbwQhmdKK4BBiIv4mpS4g2LFqxKZrB7LzPWnKri
         nwdUVH+oOedyPB2pXBgphRdQz8YLXLjE4sX/bMtbZU4K9ZOrTqhEyAxhcogu32txe6R4
         e8Vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872861; x=1779477661;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=4XJIP9GZP+0qc5TpuA2ddXAK/ReZERF3J3EAtmTAWAE=;
        b=AHvIs6I19nDVpNbUqrX24irdcoULQj+l11YxpD5pZHuPX85+rAL3qs0oW288L72V33
         t6XIptkYFCzIWi5thRagcMI1LrKnZHKszjJ0IQTalp0kYyhdXtHgD+okwp79rpHvnYYP
         vnuClJ3Jed5y2M3/gY75cf2kTQy1IM9wOQPPswSwwcXsSaSi1/jWxYm/Ka4HKQiNbRqw
         IHXXGCDc0NDE3jlFnx5abqShJL+iGDHrAtfBLMdObrExTc1pGXvwCZwMNGhFUX/B8cVK
         7FB2WS+UIDEH714KDEzadnSvwR5ppQVgn5R8WLT9tl7j3yhFEetH/XpLNiqpsKOiONOV
         6zYQ==
X-Forwarded-Encrypted: i=1; AFNElJ9iI1xANLdCR6EDwmDmDegvFO7HglOA4uRPgXilmUPXi1yMsFKsmvJ6dXAIOmU7Qggsf1QfaT2VMa0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy+C6osWBzBrwx6skeKIQF3vCD2YkbykNeO9FoXHP8E7KOLBOB0
	KFjdWSh4zK3xjurz/ztDkR7b5C7K1g1j5nyk0GtRfTv7LHKrfyer1RaZAoXn2EjXX5B4AZdZi/A
	8WkP5Iw==
X-Received: from pfje16.prod.google.com ([2002:a05:6a00:d0:b0:82f:6eb4:9793])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:a20e:b0:82c:e1aa:21e3
 with SMTP id d2e1a72fcca58-83f33bca81dmr5806035b3a.10.1778872860340; Fri, 15
 May 2026 12:21:00 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:25 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-25-seanjc@google.com>
Subject: [PATCH v3 24/41] timekeeping: Resume clocksources before reading
 persistent clock
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-d25034/1778872862-DA776CF5-7070AF1E/0/0
X-purgate-type: clean
X-purgate-size: 1617

When resuming timekeeping after suspend, restore clocksources prior to
reading the persistent clock.  Paravirt clocks, e.g. kvmclock, tie the
validity of a PV persistent clock to a clocksource, i.e. reading the PV
persistent clock will return garbage if the underlying PV clocksource
hasn't been enabled.  The flaw has gone unnoticed because kvmclock is a
mess and uses its own suspend/resume hooks instead of the clocksource
suspend/resume hooks, which happens to work by sheer dumb luck (the
kvmclock resume hook runs before timekeeping_resume()).

Note, there is no evidence that any clocksource supported by the kernel
depends on a persistent clock.

Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 kernel/time/timekeeping.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index c493a4010305..26f3291a814d 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -2098,11 +2098,16 @@ void timekeeping_resume(void)
 	u64 cycle_now, nsec;
 	unsigned long flags;
 
-	read_persistent_clock64(&ts_new);
-
 	clockevents_resume();
 	clocksource_resume();
 
+	/*
+	 * Read persistent time after clocksources have been resumed.  Paravirt
+	 * clocks have a nasty habit of piggybacking a persistent clock on a
+	 * system clock, and may return garbage if the system clock is suspended.
+	 */
+	read_persistent_clock64(&ts_new);
+
 	raw_spin_lock_irqsave(&tk_core.lock, flags);
 
 	/*
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310361.1581253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9k-0001Eo-B9; Fri, 15 May 2026 19:25:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310361.1581253; Fri, 15 May 2026 19:25:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9k-0001Eh-80; Fri, 15 May 2026 19:25:08 +0000
Received: by outflank-mailman (input) for mailman id 1310361;
 Fri, 15 May 2026 19:25:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3H3IHagYKCXgoaWjfYckkcha.Ykitaj-Zarahheopo.tajlnkfaYp.knc@flex--seanjc.bounces.google.com>)
 id 1wNy9j-00012S-F6
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy9i-001IaJ-RT
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:06 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3H3IHagYKCXgoaWjfYckkcha.Ykitaj-Zarahheopo.tajlnkfaYp.knc@flex--seanjc.bounces.google.com>)
 id 6a0772b6-bab6-0a2a0a5309dd-0a2a4505e824-24
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:06 +0200
Received: from [209.85.216.73] (helo=mail-pj1-f73.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3H3IHagYKCXgoaWjfYckkcha.Ykitaj-Zarahheopo.tajlnkfaYp.knc@flex--seanjc.bounces.google.com>)
 id 6a077220-aaa8-0a2a45050019-d155d849c5df-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:06 +0200
Received: by mail-pj1-f73.google.com with SMTP id
 98e67ed59e1d1-3662e7756f0so82764a91.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872864; x=1779477664; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=5QvrpVnh0KMuRz6LXU92QW6Er6134KolvOCNQ9nQk3A=;
        b=MLMfyRpqbUybnKLmSVEA4begoEZ2sTjJ5yB9jWLreYijgwjDXOKQK6QcEUHrNrqMvb
         nABeHUyXHxYw6vsvvxMQYW6Savwl9CmmsMrT3v+bUHpEw+osxjPx26lZGIP7/GInBoT7
         g4u0IkZE7gWbs0GrS0WLqNa5IvclbhkqBj6Jd2m7cOeb6Yx9lkkDcn4a1P8MOOIo8auA
         OmZHzqdukFLWNFVvd2Vo4ii0GV+RDmtDGMFYHb5/U02UgGC20DNUpcP/zY7OtB9Vx8KL
         GF26/Agea2Q6VDJz2Nbx9fKRdtLKVLHAD1Thnf6AvzkwofmPPucxg2DPFMxl3xdoZHwQ
         ar0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872864; x=1779477664;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=5QvrpVnh0KMuRz6LXU92QW6Er6134KolvOCNQ9nQk3A=;
        b=Hxtv70GVm8F/fLy3LzlcFVQsJ4/FmdquGuMFxpNp+xMZA0scBE2WT2mJNwh0hCdzpa
         nJqIIBYrGpUluGJk2F8akZRw8PrM0CUBB9Rl3GjsY+uclcO67rMJuZUwjQwSXxuM89OJ
         VB8M8or/BkF/9dOHX/zZKAfpIHs2E2MxZwyPkT8ZzCie4yQnaZFvX1L8twhPIpIturO1
         j8Bb5WQM8ryHOUWxkaGK1rKjLq3mHng0nkiSSsVZOAinsjn0iIEJpx8kAb3psWKznNpk
         VFpB2kLrjXA/PdlJdEjUFtrnfWLFtaSXf0VNI+xguefSIcn9/DodDyi9F7sdKHuq0TLl
         A6/Q==
X-Forwarded-Encrypted: i=1; AFNElJ+NtqT+tO2Tlp/B5mL/Wr8kRFyHVTvAIMWl+mX4s5SNi12R9p3pga4k+bYNA+CqvR+aWeDZ5oVUhQ0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzXpK47bs/oWNThO36PhCk78/0w7RZ+d+siRHYcTERYfhD3WtFw
	3R2999ARc1j4TssT9zXymIp9Xq9Ne9xMtZ8ZL5fC7b2Nh4hKcjvvgSRuVaedzfeBi2o3oMWxaXb
	KhOcHaw==
X-Received: from plbl12.prod.google.com ([2002:a17:902:eb0c:b0:2b0:aef9:a5a2])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:1d84:b0:368:433:b697
 with SMTP id 98e67ed59e1d1-36951ca51ecmr5533993a91.19.1778872863652; Fri, 15
 May 2026 12:21:03 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:27 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-27-seanjc@google.com>
Subject: [PATCH v3 26/41] x86/kvmclock: WARN if wall clock is read while
 kvmclock is suspended
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-c201ff/1778872866-E2790443-D5EAD5DA/0/0
X-purgate-type: clean
X-purgate-size: 2015

WARN if kvmclock is still suspended when its wallclock is read, i.e. when
the kernel reads its persistent clock.  The wallclock subtly depends on
the BSP's kvmclock being enabled, and returns garbage if kvmclock is
disabled.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 655037949446..e7250d21c672 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -53,6 +53,8 @@ static struct pvclock_vsyscall_time_info *hvclock_mem;
 DEFINE_PER_CPU(struct pvclock_vsyscall_time_info *, hv_clock_per_cpu);
 EXPORT_PER_CPU_SYMBOL_GPL(hv_clock_per_cpu);
 
+static bool kvmclock_suspended;
+
 /*
  * The wallclock is the time of day when we booted. Since then, some time may
  * have elapsed since the hypervisor wrote the data. So we try to account for
@@ -60,6 +62,7 @@ EXPORT_PER_CPU_SYMBOL_GPL(hv_clock_per_cpu);
  */
 static void kvm_get_wallclock(struct timespec64 *now)
 {
+	WARN_ON_ONCE(kvmclock_suspended);
 	wrmsrq(msr_kvm_wall_clock, slow_virt_to_phys(&wall_clock));
 	preempt_disable();
 	pvclock_read_wallclock(&wall_clock, this_cpu_pvti(), now);
@@ -119,6 +122,7 @@ static void kvm_save_sched_clock_state(void)
 	 * to the old address prior to reconfiguring kvmclock would clobber
 	 * random memory.
 	 */
+	kvmclock_suspended = true;
 	kvmclock_disable();
 }
 
@@ -131,16 +135,19 @@ static void kvm_setup_secondary_clock(void)
 
 static void kvm_restore_sched_clock_state(void)
 {
+	kvmclock_suspended = false;
 	kvm_register_clock("primary cpu, sched_clock resume");
 }
 
 static void kvmclock_suspend(struct clocksource *cs)
 {
+	kvmclock_suspended = true;
 	kvmclock_disable();
 }
 
 static void kvmclock_resume(struct clocksource *cs)
 {
+	kvmclock_suspended = false;
 	kvm_register_clock("primary cpu, clocksource resume");
 }
 
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310362.1581263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9l-0001Tg-S1; Fri, 15 May 2026 19:25:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310362.1581263; Fri, 15 May 2026 19:25:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9l-0001TZ-O4; Fri, 15 May 2026 19:25:09 +0000
Received: by outflank-mailman (input) for mailman id 1310362;
 Fri, 15 May 2026 19:25:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3IHIHagYKCXkpbXkgZdlldib.Zljubk-absbiifpqp.ubkmolgbZq.lod@flex--seanjc.bounces.google.com>)
 id 1wNy9k-0001Er-Gu
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy9j-001IcX-T8
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:07 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3IHIHagYKCXkpbXkgZdlldib.Zljubk-absbiifpqp.ubkmolgbZq.lod@flex--seanjc.bounces.google.com>)
 id 6a0772ea-2eae-0a2a0a5409dd-0a2a4504d0a2-26
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:07 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3IHIHagYKCXkpbXkgZdlldib.Zljubk-absbiifpqp.ubkmolgbZq.lod@flex--seanjc.bounces.google.com>)
 id 6a077222-1dec-0a2a45040019-d155d6c9dcf9-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:07 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2b9b8137828so3638485ad.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872865; x=1779477665; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=9y7n0IksKFKFboHRfxCkU+QRldsv6JkfRx9t9kwNLA4=;
        b=H/nYj+6t1ZLibYYnkhwSGxIiUS/OxjdRoatrULgHbeQfmsN2aSmn4odL5beh9xjRh+
         W8IhHWiLKNOyxYlJIYq58ybiOGPZRKSsDmpLSxesZjvERz8MonkKoLaExkAug5pvIejc
         kJVSn9qtbtSYgclsfrC9dENGxzk5M2D5/1lkdz/TdiIMo4kCI3JIIr/cA9N/298WVGsE
         bltQ6oK9uyy7G/iytp0M0lVmgdiCgovFE0xP65ItlFqDcq32LjiJvtf1lRZNGhT0m30/
         /j+tSUODzG+HRLK8hAXwmS8lKWBC2UDzXVR4GYaAQfJHomv+cz259TIYR/pejadWRqzm
         yqhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872865; x=1779477665;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=9y7n0IksKFKFboHRfxCkU+QRldsv6JkfRx9t9kwNLA4=;
        b=Y7M98CsuzA3qtxwy+ytUt13P5wXluzQGjT8mGJiBJwqBND46DxvXaRhwjIMdxjYhnc
         I+Q6j81TolnhhxAyzsxiAn9LLuzbkx0YXVn6S+lrv5prcEkFMsvHMdh8aw3mJuGd7W6Y
         EMn5ipUmK7MgtCXl5hSF82655ngBM6jVviJQYI1LK9Euqyf/jQMQVt4aAw69ALWvPIvh
         4WtDN0LuxNQ/zWc2/iTa1A6cH9YkURcQhqFzoStT4PjMxFK1mCyz8+lEm6TiUsybd2Lm
         sLBOQPTq0JhvB8uLl5tAKiYqLd4X1ROOWnIo2i1SvR00uDm1hUJ2j9sW0dZuT03/IjjV
         BKIg==
X-Forwarded-Encrypted: i=1; AFNElJ+PYE+GA0jSRff/UirJ1W1S07gKblXK0q6BBXwBCgvB4Ol/kjYpCwAhKA+2Q9g74stdAdnCq39GqfI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxYESKefmz+cg17aTQxwakaqolsCTwRB1eoRvaC68RfU4nm5wI6
	1sw38ZBdvE91qtOJNrRuZD19CulkhjDnerVsiN1Km1sX404/tQJN3EVg30hq3nWLfFU0y7ADHZ4
	Dwc3GeQ==
X-Received: from plnq2.prod.google.com ([2002:a17:902:f782:b0:2bd:7c8c:4ef4])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:bc8:b0:2ba:30fb:d777
 with SMTP id d9443c01a7336-2bd7e86c408mr40874505ad.6.1778872864946; Fri, 15
 May 2026 12:21:04 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:28 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-28-seanjc@google.com>
Subject: [PATCH v3 27/41] x86/kvmclock: Enable kvmclock on APs during onlining
 if kvmclock isn't sched_clock
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-ebf023/1778872867-40B733FF-99FDC4C8/0/0
X-purgate-type: clean
X-purgate-size: 6195

In anticipation of making x86_cpuinit.early_percpu_clock_init(), i.e.
kvm_setup_secondary_clock(), a dedicated sched_clock hook that will be
invoked if and only if kvmclock is set as sched_clock, ensure APs enable
their kvmclock during CPU online.  While a redundant write to the MSR is
technically ok, skip the registration when kvmclock is sched_clock so that
it's somewhat obvious that kvmclock *needs* to be enabled during early
bringup when it's being used as sched_clock.

Plumb in the BSP's resume path purely for documentation purposes.  Both
KVM (as-a-guest) and timekeeping/clocksource hook syscore_ops, and it's
not super obvious that using KVM's hooks would be flawed.  E.g. it would
work today, because KVM's hooks happen to run after/before timekeeping's
hooks during suspend/resume, but that's sheer dumb luck as the order in
which syscore_ops are invoked depends entirely on when a subsystem is
initialized and thus registers its hooks.

Opportunsitically make the registration messages more precise to help
debug issues where kvmclock is enabled too late.

Opportunstically WARN in kvmclock_{suspend,resume}() to harden against
future bugs.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/kvm_para.h |  2 ++
 arch/x86/kernel/kvm.c           | 24 +++++++++++-------
 arch/x86/kernel/kvmclock.c      | 44 +++++++++++++++++++++++++++------
 3 files changed, 53 insertions(+), 17 deletions(-)

diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h
index 2adba2aff539..17053d2bf270 100644
--- a/arch/x86/include/asm/kvm_para.h
+++ b/arch/x86/include/asm/kvm_para.h
@@ -120,6 +120,8 @@ static inline long kvm_sev_hypercall3(unsigned int nr, unsigned long p1,
 #ifdef CONFIG_KVM_GUEST
 enum kvm_guest_cpu_action {
 	KVM_GUEST_BSP_SUSPEND,
+	KVM_GUEST_BSP_RESUME,
+	KVM_GUEST_AP_ONLINE,
 	KVM_GUEST_AP_OFFLINE,
 	KVM_GUEST_SHUTDOWN,
 };
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 0131bc1cb459..65c787b1ea03 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -471,18 +471,24 @@ static void kvm_guest_cpu_offline(enum kvm_guest_cpu_action action)
 	kvmclock_cpu_action(action);
 }
 
+static int __kvm_cpu_online(unsigned int cpu, enum kvm_guest_cpu_action action)
+{
+	unsigned long flags;
+
+	local_irq_save(flags);
+	kvmclock_cpu_action(action);
+	kvm_guest_cpu_init();
+	local_irq_restore(flags);
+	return 0;
+}
+
+#ifdef CONFIG_SMP
+
 static int kvm_cpu_online(unsigned int cpu)
 {
-	unsigned long flags;
-
-	local_irq_save(flags);
-	kvm_guest_cpu_init();
-	local_irq_restore(flags);
-	return 0;
+	return __kvm_cpu_online(cpu, KVM_GUEST_AP_ONLINE);
 }
 
-#ifdef CONFIG_SMP
-
 static DEFINE_PER_CPU(cpumask_var_t, __pv_cpu_mask);
 
 static bool pv_tlb_flush_supported(void)
@@ -747,7 +753,7 @@ static int kvm_suspend(void *data)
 
 static void kvm_resume(void *data)
 {
-	kvm_cpu_online(raw_smp_processor_id());
+	__kvm_cpu_online(raw_smp_processor_id(), KVM_GUEST_BSP_RESUME);
 
 #ifdef CONFIG_ARCH_CPUIDLE_HALTPOLL
 	if (kvm_para_has_feature(KVM_FEATURE_POLL_CONTROL) && has_guest_poll)
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index e7250d21c672..d3bb281c0805 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -53,6 +53,7 @@ static struct pvclock_vsyscall_time_info *hvclock_mem;
 DEFINE_PER_CPU(struct pvclock_vsyscall_time_info *, hv_clock_per_cpu);
 EXPORT_PER_CPU_SYMBOL_GPL(hv_clock_per_cpu);
 
+static bool kvmclock_is_sched_clock;
 static bool kvmclock_suspended;
 
 /*
@@ -129,7 +130,7 @@ static void kvm_save_sched_clock_state(void)
 #ifdef CONFIG_SMP
 static void kvm_setup_secondary_clock(void)
 {
-	kvm_register_clock("secondary cpu clock");
+	kvm_register_clock("secondary cpu, sched_clock setup");
 }
 #endif
 
@@ -141,25 +142,51 @@ static void kvm_restore_sched_clock_state(void)
 
 static void kvmclock_suspend(struct clocksource *cs)
 {
+	if (WARN_ON_ONCE(kvmclock_is_sched_clock))
+		return;
+
 	kvmclock_suspended = true;
 	kvmclock_disable();
 }
 
 static void kvmclock_resume(struct clocksource *cs)
 {
+	if (WARN_ON_ONCE(kvmclock_is_sched_clock))
+		return;
+
 	kvmclock_suspended = false;
 	kvm_register_clock("primary cpu, clocksource resume");
 }
 
 void kvmclock_cpu_action(enum kvm_guest_cpu_action action)
 {
-	/*
-	 * Don't disable kvmclock on the BSP during suspend.  If kvmclock is
-	 * being used for sched_clock, then it needs to be kept alive until the
-	 * last minute, and restored as quickly as possible after resume.
-	 */
-	if (action != KVM_GUEST_BSP_SUSPEND)
+	switch (action) {
+		/*
+		 * The BSP's clock is managed via clocksource suspend/resume,
+		 * to ensure it's enabled/disabled when timekeeping needs it
+		 * to be, e.g. before reading wallclock (which uses kvmclock).
+		 */
+	case KVM_GUEST_BSP_SUSPEND:
+	case KVM_GUEST_BSP_RESUME:
+		break;
+	case KVM_GUEST_AP_ONLINE:
+		/*
+		 * Secondary CPUs use dedicated sched_clock hooks to enable
+		 * kvmclock early during bringup, there's nothing to be done
+		 * when during CPU online.
+		 */
+		if (kvmclock_is_sched_clock)
+			break;
+		kvm_register_clock("secondary cpu, online");
+		break;
+	case KVM_GUEST_AP_OFFLINE:
+	case KVM_GUEST_SHUTDOWN:
 		kvmclock_disable();
+		break;
+	default:
+		WARN_ON_ONCE(1);
+		break;
+	}
 }
 
 /*
@@ -315,6 +342,7 @@ static __init void kvm_sched_clock_init(bool stable)
 	__paravirt_set_sched_clock(kvm_sched_clock_read, stable,
 				   kvm_save_sched_clock_state,
 				   kvm_restore_sched_clock_state);
+	kvmclock_is_sched_clock = true;
 
 	/*
 	 * The BSP's clock is managed via dedicated sched_clock save/restore
@@ -358,7 +386,7 @@ void __init kvmclock_init(void)
 		msr_kvm_system_time, msr_kvm_wall_clock);
 
 	this_cpu_write(hv_clock_per_cpu, &hv_clock_boot[0]);
-	kvm_register_clock("primary cpu clock");
+	kvm_register_clock("primary cpu, online");
 	pvclock_set_pvti_cpu0_va(hv_clock_boot);
 
 	if (kvm_para_has_feature(KVM_FEATURE_CLOCKSOURCE_STABLE_BIT)) {
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310363.1581271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9p-0001mn-6E; Fri, 15 May 2026 19:25:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310363.1581271; Fri, 15 May 2026 19:25:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9p-0001mb-1G; Fri, 15 May 2026 19:25:13 +0000
Received: by outflank-mailman (input) for mailman id 1310363;
 Fri, 15 May 2026 19:25:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3I3IHagYKCXwxjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 1wNy9n-0001if-7l
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy9m-001IaJ-K5
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:10 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3I3IHagYKCXwxjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 6a0772b6-bab6-0a2a0a5309dd-0a2a4505e824-26
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:10 +0200
Received: from [209.85.210.201] (helo=mail-pf1-f201.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3I3IHagYKCXwxjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 6a077224-aaa8-0a2a45050019-d155d2c9c5a6-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:10 +0200
Received: by mail-pf1-f201.google.com with SMTP id
 d2e1a72fcca58-835423c69ffso75245b3a.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872868; x=1779477668; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=pNsHSCzVBvNpSbb8atgOEwFmCd7ur8peJFPmwL2u2ME=;
        b=kPhuanOQXrKEaGzt0j5LwiEuKEaWdQRGXv5PMBLQzmoO/9Tk//FWF2EPUFBvU1HQiR
         we3s2ehDEQky7ZVCtuR3zPN8HO8sZabGuaigZH0XyN22lxsGs3j4xi318/5mzo2VbRDS
         yuGEZjsiVhCAlj6gJFS79eoHheqDmRqHjMyWjucSzAiyFVgQE6o1XUqwraiWKFNyG0ws
         8ipoE36FLRH7NnrVNp72wIl2L9oNj+Vqd3hpDdGX+XrICoxV7wqhnEMtih/66/0M2tKC
         k5t8vU54XKxXiZs5zmfige9o2BI+y0asbid6Lbp5Lp1rwa9VvENoOZimcTw879+lhVqw
         Lamw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872868; x=1779477668;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=pNsHSCzVBvNpSbb8atgOEwFmCd7ur8peJFPmwL2u2ME=;
        b=G7FisH4Opg8euQVONN+Y+WCyAKTzMBvoiB2PDXyFs9nm1iKVLtXGpKbBiNVRxejMPE
         nmpgUD83UtrjYoxVfy6HpOBidaMwLPD25Y/4QxuPfJN3xdZN5cYx8aWcQiWuSGcGhSOC
         nAZ82MiLlpWIhNI0BjOg8hJHpuzQutjd7MAteLP6cuaaVHj/W3+YuP39jvh7od/ORAGy
         x2k3C8uZBgmf8JUxVKJF2T0LvLyzVqlrg0qXBbYSPaxhf7pLAb0KQdjvc8lHSOqpFh6x
         WqNUCccPsEds4j2pO/OcQ2HlN/yOYCX05BR6f+VZvDfHwkQZUfWsOZyVxCqfcrseCI63
         /0gA==
X-Forwarded-Encrypted: i=1; AFNElJ+XgYeQVImZaDDItpYL7Ej5FnvD6cqSrApsq2CY6zQ8B9TYjsEMs/Yv6sUK/Mv6hbCkufqApOHQyBQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxUbUX6F4VDcqlfmFzA+QRFnAdhtqgT1To8zHtiMUOSsPZb4lJf
	rsg/J/wcKF/F0FX/mMdVRSYCq/A5Uywc3iyimGr/gcXuKT6QqBThWcwendmEMDZsCYwjFruW7Tt
	MZMdeJw==
X-Received: from pfra8.prod.google.com ([2002:aa7:8e88:0:b0:83e:b125:ff3c])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:3005:b0:82f:29fe:7239
 with SMTP id d2e1a72fcca58-83f33d3659cmr5558676b3a.50.1778872867738; Fri, 15
 May 2026 12:21:07 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:30 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-30-seanjc@google.com>
Subject: [PATCH v3 29/41] x86/paravirt: Plumb a return code into __paravirt_set_sched_clock()
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-c201ff/1778872870-DAB68443-4877E1E7/0/0
X-purgate-type: clean
X-purgate-size: 3204

Add a return code to __paravirt_set_sched_clock() so that the kernel can
reject attempts to use a PV sched_clock without breaking the caller.  E.g.
when running as a CoCo VM with a secure TSC, using a PV clock is generally
undesirable.

Note, kvmclock is the only PV clock that does anything "extra" beyond
simply registering itself as sched_clock, i.e. is the only caller that
needs to check the new return value.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/timer.h | 6 +++---
 arch/x86/kernel/kvmclock.c   | 8 +++++---
 arch/x86/kernel/tsc.c        | 5 +++--
 3 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index 96ae7feac47c..ca5c95d48c03 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -14,14 +14,14 @@ extern int no_timer_check;
 extern bool using_native_sched_clock(void);
 
 #ifdef CONFIG_PARAVIRT
-void __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
-				       void (*save)(void), void (*restore)(void));
+int __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
+				      void (*save)(void), void (*restore)(void));
 
 static __always_inline void paravirt_set_sched_clock(u64 (*func)(void),
 						     void (*save)(void),
 						     void (*restore)(void))
 {
-	__paravirt_set_sched_clock(func, true, save, restore);
+	(void)__paravirt_set_sched_clock(func, true, save, restore);
 }
 #endif
 
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index d3bb281c0805..9b3d1ed1a96d 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -338,10 +338,12 @@ static int kvmclock_setup_percpu(unsigned int cpu)
 
 static __init void kvm_sched_clock_init(bool stable)
 {
+	if (__paravirt_set_sched_clock(kvm_sched_clock_read, stable,
+				       kvm_save_sched_clock_state,
+				       kvm_restore_sched_clock_state))
+		return;
+
 	kvm_sched_clock_offset = kvm_clock_read();
-	__paravirt_set_sched_clock(kvm_sched_clock_read, stable,
-				   kvm_save_sched_clock_state,
-				   kvm_restore_sched_clock_state);
 	kvmclock_is_sched_clock = true;
 
 	/*
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 4a48b8ba5bea..3c15fc10e501 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -280,8 +280,8 @@ bool using_native_sched_clock(void)
 	return static_call_query(pv_sched_clock) == native_sched_clock;
 }
 
-void __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
-				       void (*save)(void), void (*restore)(void))
+int __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
+				      void (*save)(void), void (*restore)(void))
 {
 	if (!stable)
 		clear_sched_clock_stable();
@@ -289,6 +289,7 @@ void __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
 	static_call_update(pv_sched_clock, func);
 	x86_platform.save_sched_clock_state = save;
 	x86_platform.restore_sched_clock_state = restore;
+	return 0;
 }
 #else
 u64 sched_clock_noinstr(void) __attribute__((alias("native_sched_clock")));
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310364.1581277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9p-0001pG-M6; Fri, 15 May 2026 19:25:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310364.1581277; Fri, 15 May 2026 19:25:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9p-0001o9-Dp; Fri, 15 May 2026 19:25:13 +0000
Received: by outflank-mailman (input) for mailman id 1310364;
 Fri, 15 May 2026 19:25:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3JHIHagYKCX0tfbokdhpphmf.dpnyfo-efwfmmjtut.yfoqspkfdu.psh@flex--seanjc.bounces.google.com>)
 id 1wNy9o-0001ks-AY
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy9n-001ywb-Mn
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:11 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3JHIHagYKCX0tfbokdhpphmf.dpnyfo-efwfmmjtut.yfoqspkfdu.psh@flex--seanjc.bounces.google.com>)
 id 6a0772bb-5cb7-0a2a0a5109dd-0a2a4502ac4e-46
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:11 +0200
Received: from [209.85.210.202] (helo=mail-pf1-f202.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3JHIHagYKCX0tfbokdhpphmf.dpnyfo-efwfmmjtut.yfoqspkfdu.psh@flex--seanjc.bounces.google.com>)
 id 6a077225-af86-0a2a45020019-d155d2cacc9c-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:11 +0200
Received: by mail-pf1-f202.google.com with SMTP id
 d2e1a72fcca58-82fa5ecd760so177964b3a.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872869; x=1779477669; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=teddAWkuf/46YtH4MCYfAbMCm8nV+WgxKaJ2tNA73Cw=;
        b=EqRlqylE28bNwdZxP2mJcyEWtMJTt1cdj6N/fziLZsLFq/qhKG8+MTt55FJLt0G5RM
         pwBCw6bNxLxC9QcwjdrDeXWQYsxfQ+1Gs2zETuyMy4LcI0AHM3yEoRnkWcO9dACh1tuF
         7FoJPMKy8XStUTrjHG7DNfbbIdsOKXEDSeOkf+1ZpwpzG4dxocsso8PLsZW+OD9ZXf3W
         wMTGIXL4+5h4FqnzRgAgsWB7fNzQtbrQehn2sGHOsM1lfXK3twmNvwVji+w9kbMSZQX/
         HpHdJpCXTR5/VbAHwGnPTirt9Q/olI7dVGtLGbMvljEkgubhHHsLBjLMBfOQZwAonFlF
         BUKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872869; x=1779477669;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=teddAWkuf/46YtH4MCYfAbMCm8nV+WgxKaJ2tNA73Cw=;
        b=mLX7qK1aGVP+iZbbgePXv7mQQTy5ffEdS51SU5fLY+k3xmLIX9VojGAittH+9WwFP7
         BZm9xcWDkfb4j+X2OfrCuhINxRWRG6gmu/EbsH+YMWpOoG/YOJ6Zh2ALFsTWoho6R8Nz
         eSzoLlgx7v1F+sTzobzAqjdMy6lDICpezsDFKWdUaveRz0QpHhutZ+i0fFVsT3dCp1Jg
         z+BXVSjRD3UQdHcCUgbpfElIOb4ljs4tmZ+BNxpEx0LsLniXDwilFfPVbZ+M53fir7Q3
         toPl3FY1QtXFs4/bQkyOSQywppuTzvQoG6gyRJMD/OPE9NxX7B/6L/qFOF4/WXEe6CbN
         bbbQ==
X-Forwarded-Encrypted: i=1; AFNElJ/iz4gP/KfMjdgWMkMLmym12cXEBlnuD3g0kgJ3v1ahPrwrAxUGn62S/JBhsb8hSRcspQ3F52FJAVQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxvOrPfcVjHfDzGojwlvSA/U39zoni989QEYds0R8ZJPwjMjf5b
	xlQieFoEtBryomNuGIF4B3pmmsQxPm4MYVf4cgiJmR5q6Pvb70G8nxbE+b2aE+ytirpFcqc/FaE
	1aL/pbw==
X-Received: from pfbdu21.prod.google.com ([2002:a05:6a00:2b55:b0:82f:6245:a6ec])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:950f:b0:838:c01a:7a50
 with SMTP id d2e1a72fcca58-83f33d8c1ddmr5490444b3a.30.1778872868844; Fri, 15
 May 2026 12:21:08 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:31 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-31-seanjc@google.com>
Subject: [PATCH v3 30/41] x86/paravirt: Don't use a PV sched_clock in CoCo
 guests with trusted TSC
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-720697/1778872871-AAB68161-F7D7A97F/0/0
X-purgate-type: clean
X-purgate-size: 1285

Silently ignore attempts to switch to a paravirt sched_clock when running
as a CoCo guest with trusted TSC.  In hand-wavy theory, a misbehaving
hypervisor could attack the guest by manipulating the PV clock to affect
guest scheduling in some weird and/or predictable way.  More importantly,
reading TSC on such platforms is faster than any PV clock, and sched_clock
is all about speed.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/tsc.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 3c15fc10e501..ac4abfec1f05 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -283,6 +283,15 @@ bool using_native_sched_clock(void)
 int __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
 				      void (*save)(void), void (*restore)(void))
 {
+	/*
+	 * Don't replace TSC with a PV clock when running as a CoCo guest and
+	 * the TSC is secure/trusted; PV clocks are emulated by the hypervisor,
+	 * which isn't in the guest's TCB.
+	 */
+	if (cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC) ||
+	    boot_cpu_has(X86_FEATURE_TDX_GUEST))
+		return -EPERM;
+
 	if (!stable)
 		clear_sched_clock_stable();
 
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310366.1581288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9q-0002Cn-V6; Fri, 15 May 2026 19:25:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310366.1581288; Fri, 15 May 2026 19:25:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9q-0002Bj-Oh; Fri, 15 May 2026 19:25:14 +0000
Received: by outflank-mailman (input) for mailman id 1310366;
 Fri, 15 May 2026 19:25:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3JnIHagYKCX8vhdqmfjrrjoh.frp0hq-ghyhoolvwv.0hqsurmhfw.ruj@flex--seanjc.bounces.google.com>)
 id 1wNy9p-0001ov-LI
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy9p-001IhQ-0n
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:13 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3JnIHagYKCX8vhdqmfjrrjoh.frp0hq-ghyhoolvwv.0hqsurmhfw.ruj@flex--seanjc.bounces.google.com>)
 id 6a0772db-bab6-0a2a0a5309dd-0a2a4503c5e8-38
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:13 +0200
Received: from [209.85.215.202] (helo=mail-pg1-f202.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3JnIHagYKCX8vhdqmfjrrjoh.frp0hq-ghyhoolvwv.0hqsurmhfw.ruj@flex--seanjc.bounces.google.com>)
 id 6a077226-672d-0a2a45030019-d155d7caad39-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:12 +0200
Received: by mail-pg1-f202.google.com with SMTP id
 41be03b00d2f7-c828f0f5c23so65083a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872870; x=1779477670; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=GynyMcltCamU1dXPXnRIm6lqrNcs78pXek2ggzODYGc=;
        b=TqOGzui5eBk889NTM5VxXHO7AxICh4KzFfx+CnkteIDsF9UB4LQqBKh+9XjVmul678
         EBDQskc5x4ciI/LgewZxkrJCFrGeq4kLaUEs6uTGWA98o7R7UHbcQu7kSOwLibeY0fiv
         3C0RPYvCm5lKkF9RX43j6z4C1SwRFSfFoR+CUBqAP5ABs8B0lNVR8rLOhZEXfuDEUblO
         K3mqYTWKBDAch/80Zhp4jbZI5YzBVZrtELHpBDBLjFaFo0jkv1JBYTeDAPwU7qOEkALt
         C7HO0wUr3hzkjpdWXJcracxSx77/SkHNoVlAHje56JXszK++P49lXcLwAcD/z8pEPmIl
         yFgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872870; x=1779477670;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=GynyMcltCamU1dXPXnRIm6lqrNcs78pXek2ggzODYGc=;
        b=LVZArcmZ/8OZXZ43xM7RJQDQLxy8n8CbEeXNvhvbpL9JjzEue9/jj7MawtTgrSRIz8
         HFd12ApXXtCnqiFrInLJPI/ntMwLjliyNwWwQeU/lPaR//T9CcEoso2Vge5hGkiecipJ
         DPPdhL/aErAhpbdwfh1FwSdpi/Khj63G3ppnzIUjK3C5pSm8n9bnWU1xCwGbJ5L8+Iq1
         Crft9x7H77AHkJh82Wdtaax7Yrd16Nj+YZ//yHD26oJvEiquuk+RlwLkT6k4aY0J6jvQ
         TfUxaFyVuFrb0+52V558RPZ3ok07qfTK7CfeEpb3rciEmLno/96kyB/b/k9SPQASQZCS
         bpvg==
X-Forwarded-Encrypted: i=1; AFNElJ/lI2T5VdEKY/RVp6hlEa1Em/NbdDLqFZ/+2Uvpu8QshjeYgeX7tTZeY1EDEHGsU2xPYMlM0PqNPE0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPDQxr0mdM5g4S4d3fbjObULocyxf2EGyy4+WXmPangsA6GNk1
	vg6MNQRZQGd/g71MI8znvuhXvqUG9ab7PSRmVg7pzV1S+k+9KaSCNHGc04GzA9s3q3EUuGR3y/m
	kB/b93A==
X-Received: from pgbfm5.prod.google.com ([2002:a05:6a02:4985:b0:c82:7df9:8c21])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:9985:b0:39b:e1e5:a101
 with SMTP id adf61e73a8af0-3b22ec7d04bmr6317771637.43.1778872870066; Fri, 15
 May 2026 12:21:10 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:32 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-32-seanjc@google.com>
Subject: [PATCH v3 31/41] x86/tsc: Pass KNOWN_FREQ and RELIABLE as params to registration
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-33051d/1778872872-36B44938-E47EB53F/13/0
X-purgate-type: clean
X-purgate-size: 10407

Add a "tsc_properties" set of flags and use it to annotate whether the
TSC operates at a known and/or reliable frequency when registering a
paravirtual TSC calibration routine.  Currently, each PV flow manually
sets the associated feature flags, but often in haphazard fashion that
makes it difficult for unfamiliar readers to see the properties of the
TSC when running under a particular hypervisor.

The other, bigger issue with manually setting the feature flags is that
it decouples the flags from the calibration routine.  E.g. in theory, PV
code could mark the TSC as having a known frequency, but then have its
PV calibration discarded in favor of a method that doesn't use that known
frequency.  Passing the TSC properties along with the calibration routine
will allow adding sanity checks to guard against replacing a "better"
calibration routine with a "worse" routine.

As a bonus, the flags also give developers working on new PV code a heads
up that they should at least mark the TSC as having a known frequency.

Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Tested-by: Michael Kelley <mhklinux@outlook.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/coco/sev/core.c       |  6 ++----
 arch/x86/coco/tdx/tdx.c        |  7 ++-----
 arch/x86/include/asm/tsc.h     |  8 +++++++-
 arch/x86/kernel/cpu/acrn.c     |  4 ++--
 arch/x86/kernel/cpu/mshyperv.c | 10 +++++++---
 arch/x86/kernel/cpu/vmware.c   |  7 ++++---
 arch/x86/kernel/jailhouse.c    |  4 ++--
 arch/x86/kernel/kvmclock.c     |  4 ++--
 arch/x86/kernel/tsc.c          |  8 +++++++-
 arch/x86/xen/time.c            |  4 ++--
 10 files changed, 37 insertions(+), 25 deletions(-)

diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c
index 39fb50697542..822a2a0f1a2f 100644
--- a/arch/x86/coco/sev/core.c
+++ b/arch/x86/coco/sev/core.c
@@ -2037,9 +2037,6 @@ void __init snp_secure_tsc_init(void)
 
 	secrets = (__force struct snp_secrets_page *)mem;
 
-	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
-	setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
-
 	rdmsrq(MSR_AMD64_GUEST_TSC_FREQ, tsc_freq_mhz);
 
 	/* Extract the GUEST TSC MHZ from BIT[17:0], rest is reserved space */
@@ -2048,7 +2045,8 @@ void __init snp_secure_tsc_init(void)
 	snp_tsc_freq_khz = SNP_SCALE_TSC_FREQ(tsc_freq_mhz * 1000, secrets->tsc_factor);
 
 	tsc_register_calibration_routines(securetsc_get_tsc_khz,
-					  securetsc_get_tsc_khz);
+					  securetsc_get_tsc_khz,
+					  TSC_FREQ_KNOWN_AND_RELIABLE);
 
 	early_memunmap(mem, PAGE_SIZE);
 }
diff --git a/arch/x86/coco/tdx/tdx.c b/arch/x86/coco/tdx/tdx.c
index 26890cea790b..7050f3ee6593 100644
--- a/arch/x86/coco/tdx/tdx.c
+++ b/arch/x86/coco/tdx/tdx.c
@@ -1208,14 +1208,11 @@ static unsigned long tdx_get_tsc_khz(void)
 
 void __init tdx_tsc_init(void)
 {
-	/* TSC is the only reliable clock in TDX guest */
-	setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
-	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
-
 	/*
 	 * Override the PV calibration routines (if set) with more trustworthy
 	 * CPUID-based calibration.  The TDX module emulates CPUID, whereas any
 	 * PV information is provided by the hypervisor.
 	 */
-	tsc_register_calibration_routines(tdx_get_tsc_khz, NULL);
+	tsc_register_calibration_routines(tdx_get_tsc_khz, NULL,
+					  TSC_FREQ_KNOWN_AND_RELIABLE);
 }
diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h
index bae709f5f44d..f458be688512 100644
--- a/arch/x86/include/asm/tsc.h
+++ b/arch/x86/include/asm/tsc.h
@@ -95,8 +95,14 @@ extern int cpuid_get_tsc_freq(struct cpuid_tsc_info *info);
 extern void tsc_early_init(void);
 extern void tsc_init(void);
 #if defined(CONFIG_HYPERVISOR_GUEST) || defined(CONFIG_AMD_MEM_ENCRYPT)
+enum tsc_properties {
+	TSC_FREQUENCY_KNOWN	= BIT(0),
+	TSC_RELIABLE		= BIT(1),
+	TSC_FREQ_KNOWN_AND_RELIABLE = TSC_FREQUENCY_KNOWN | TSC_RELIABLE,
+};
 extern void tsc_register_calibration_routines(unsigned long (*calibrate_tsc)(void),
-					      unsigned long (*calibrate_cpu)(void));
+					      unsigned long (*calibrate_cpu)(void),
+					      enum tsc_properties properties);
 #endif
 extern void mark_tsc_unstable(char *reason);
 extern int unsynchronized_tsc(void);
diff --git a/arch/x86/kernel/cpu/acrn.c b/arch/x86/kernel/cpu/acrn.c
index 2da3de4d470e..4f2f4f7ec334 100644
--- a/arch/x86/kernel/cpu/acrn.c
+++ b/arch/x86/kernel/cpu/acrn.c
@@ -29,9 +29,9 @@ static void __init acrn_init_platform(void)
 	/* Install system interrupt handler for ACRN hypervisor callback */
 	sysvec_install(HYPERVISOR_CALLBACK_VECTOR, sysvec_acrn_hv_callback);
 
-	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 	tsc_register_calibration_routines(acrn_get_tsc_khz,
-					  acrn_get_tsc_khz);
+					  acrn_get_tsc_khz,
+					  TSC_FREQUENCY_KNOWN);
 }
 
 static bool acrn_x2apic_available(void)
diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
index 5ca139ae50b4..734d79c10ae5 100644
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86/kernel/cpu/mshyperv.c
@@ -516,8 +516,13 @@ static void __init ms_hyperv_init_platform(void)
 
 	if (ms_hyperv.features & HV_ACCESS_FREQUENCY_MSRS &&
 	    ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
-		tsc_register_calibration_routines(hv_get_tsc_khz, hv_get_tsc_khz);
-		setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
+		enum tsc_properties tsc_properties = TSC_FREQUENCY_KNOWN;
+
+		if (ms_hyperv.features & HV_ACCESS_TSC_INVARIANT)
+			tsc_properties = TSC_FREQ_KNOWN_AND_RELIABLE;
+
+		tsc_register_calibration_routines(hv_get_tsc_khz, hv_get_tsc_khz,
+						  tsc_properties);
 	}
 
 	if (ms_hyperv.priv_high & HV_ISOLATION) {
@@ -629,7 +634,6 @@ static void __init ms_hyperv_init_platform(void)
 		 * is called.
 		 */
 		wrmsrq(HV_X64_MSR_TSC_INVARIANT_CONTROL, HV_EXPOSE_INVARIANT_TSC);
-		setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
 	}
 
 	/*
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index 968de002975f..c19fa4471800 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -388,10 +388,10 @@ static void __init vmware_paravirt_ops_setup(void)
  */
 static void __init vmware_set_capabilities(void)
 {
+	/* TSC is non-stop and reliable even if the frequency isn't known. */
 	setup_force_cpu_cap(X86_FEATURE_CONSTANT_TSC);
 	setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
-	if (vmware_tsc_khz)
-		setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
+
 	if (vmware_hypercall_mode == CPUID_VMWARE_FEATURES_ECX_VMCALL)
 		setup_force_cpu_cap(X86_FEATURE_VMCALL);
 	else if (vmware_hypercall_mode == CPUID_VMWARE_FEATURES_ECX_VMMCALL)
@@ -420,7 +420,8 @@ static void __init vmware_platform_setup(void)
 
 		vmware_tsc_khz = tsc_khz;
 		tsc_register_calibration_routines(vmware_get_tsc_khz,
-						  vmware_get_tsc_khz);
+						  vmware_get_tsc_khz,
+						  TSC_FREQ_KNOWN_AND_RELIABLE);
 
 #ifdef CONFIG_X86_LOCAL_APIC
 		/* Skip lapic calibration since we know the bus frequency. */
diff --git a/arch/x86/kernel/jailhouse.c b/arch/x86/kernel/jailhouse.c
index db8f31fdb480..1bdc9ab321e0 100644
--- a/arch/x86/kernel/jailhouse.c
+++ b/arch/x86/kernel/jailhouse.c
@@ -219,7 +219,8 @@ static void __init jailhouse_init_platform(void)
 
 	machine_ops.emergency_restart		= jailhouse_no_restart;
 
-	tsc_register_calibration_routines(jailhouse_get_tsc, jailhouse_get_tsc);
+	tsc_register_calibration_routines(jailhouse_get_tsc, jailhouse_get_tsc,
+					  TSC_FREQUENCY_KNOWN);
 
 	while (pa_data) {
 		mapping = early_memremap(pa_data, sizeof(header));
@@ -257,7 +258,6 @@ static void __init jailhouse_init_platform(void)
 	pr_debug("Jailhouse: PM-Timer IO Port: %#x\n", pmtmr_ioport);
 
 	precalibrated_tsc_khz = setup_data.v1.tsc_khz;
-	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 
 	pci_probe = 0;
 
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 9b3d1ed1a96d..b6b2018c51db 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -200,7 +200,6 @@ void kvmclock_cpu_action(enum kvm_guest_cpu_action action)
  */
 static unsigned long kvm_get_tsc_khz(void)
 {
-	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 	return pvclock_tsc_khz(this_cpu_pvti());
 }
 
@@ -404,7 +403,8 @@ void __init kvmclock_init(void)
 
 	kvm_sched_clock_init(stable);
 
-	tsc_register_calibration_routines(kvm_get_tsc_khz, kvm_get_tsc_khz);
+	tsc_register_calibration_routines(kvm_get_tsc_khz, kvm_get_tsc_khz,
+					  TSC_FREQUENCY_KNOWN);
 
 	x86_platform.get_wallclock = kvm_get_wallclock;
 	x86_platform.set_wallclock = kvm_set_wallclock;
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index ac4abfec1f05..98bef1d06fa9 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -1311,11 +1311,17 @@ static void __init check_system_tsc_reliable(void)
  */
 #if defined(CONFIG_HYPERVISOR_GUEST) || defined(CONFIG_AMD_MEM_ENCRYPT)
 void tsc_register_calibration_routines(unsigned long (*calibrate_tsc)(void),
-				       unsigned long (*calibrate_cpu)(void))
+				       unsigned long (*calibrate_cpu)(void),
+				       enum tsc_properties properties)
 {
 	if (WARN_ON_ONCE(!calibrate_tsc))
 		return;
 
+	if (properties & TSC_FREQUENCY_KNOWN)
+		setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
+	if (properties & TSC_RELIABLE)
+		setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
+
 	x86_platform.calibrate_tsc = calibrate_tsc;
 	if (calibrate_cpu)
 		x86_platform.calibrate_cpu = calibrate_cpu;
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index f087bb76457d..c04548641558 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -43,7 +43,6 @@ static unsigned long xen_tsc_khz(void)
 	struct pvclock_vcpu_time_info *info =
 		&HYPERVISOR_shared_info->vcpu_info[0].time;
 
-	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 	return pvclock_tsc_khz(info);
 }
 
@@ -574,7 +573,8 @@ static void __init xen_init_time_common(void)
 	 */
 	paravirt_set_sched_clock(xen_sched_clock, NULL, NULL);
 
-	tsc_register_calibration_routines(xen_tsc_khz, NULL);
+	tsc_register_calibration_routines(xen_tsc_khz, NULL,
+					  TSC_FREQUENCY_KNOWN);
 	x86_platform.get_wallclock = xen_get_wallclock;
 }
 
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310367.1581298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9s-0002ZM-KD; Fri, 15 May 2026 19:25:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310367.1581298; Fri, 15 May 2026 19:25:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9s-0002YS-Au; Fri, 15 May 2026 19:25:16 +0000
Received: by outflank-mailman (input) for mailman id 1310367;
 Fri, 15 May 2026 19:25:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3J3IHagYKCYAwierngksskpi.gsq1ir-hizippmwxw.1irtvsnigx.svk@flex--seanjc.bounces.google.com>)
 id 1wNy9q-00025f-IO
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy9p-001IcX-Ui
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:13 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3J3IHagYKCYAwierngksskpi.gsq1ir-hizippmwxw.1irtvsnigx.svk@flex--seanjc.bounces.google.com>)
 id 6a0772ea-2eae-0a2a0a5409dd-0a2a4504d0a2-30
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:13 +0200
Received: from [209.85.210.201] (helo=mail-pf1-f201.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3J3IHagYKCYAwierngksskpi.gsq1ir-hizippmwxw.1irtvsnigx.svk@flex--seanjc.bounces.google.com>)
 id 6a077228-1dec-0a2a45040019-d155d2c9b86d-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:13 +0200
Received: by mail-pf1-f201.google.com with SMTP id
 d2e1a72fcca58-837d43e9ff3so95386b3a.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872871; x=1779477671; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=HRAsSS8xU7yGk1K8a9fV0Bzp4HNJreTB4TmSZ4FXvc4=;
        b=Km6eOLC1hI9myxPLNAKgpI3idmmwQ96Fu+FqKZYoNRkQVVUDnEbloB0XlqJOYpXLBE
         SkdGQCZ4RJxrn9zFbYCSk6pGD2u174YJLSt4dTjDKfpzXC841GfoNf5O7OVdbsjLZ100
         c20t20sBvoo4LxfnDONWPlttCbLCJU1cZR1iQiKrrjDIAjPAFXRKX6W8HX2Cq64O3SC8
         9zYDZ26AyxjijEZfSyziqzsZFeawI978vC8uW+smUY/TRBRpci67vi5ztIDu3AQsWcTF
         Tr2wWAKtTF8HEFlYPM0HvBphzAhVsNqX5wvyQrh67jGglhzj9kBfd5iv3b/EFIb7smQV
         00Fw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872871; x=1779477671;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=HRAsSS8xU7yGk1K8a9fV0Bzp4HNJreTB4TmSZ4FXvc4=;
        b=iETyqKYmN0DN1iFjQ/66FaW16q/qqsR2+8i+Oc/zyXmslV2ka9BYY/T6YA/NQiKSx1
         +IP2Fkc9Wa9bFXkpwFCxTJgR2f2F4yPWELCwHSjTVuioZVffm6Wbb7HbOXlhBGLa4AZp
         qsns26cXNsd6EBvrinRrkpC0W9VeCUedtAyIVMQlZE60d1gjOlK/7IqeyTFV0bKyUNBR
         JZSnYDM3o4aA3V2fAs9Y9l4eUO0Gj3URl9/JRWCtBub8SXVunVut8YSiYwia5orDo6Ay
         arQOlbkQIZTFnA4SdJ0URlUhLpraAIDmfYSu7aHFlULf+jm8Wmov44+7hjyhc649htCW
         MrAg==
X-Forwarded-Encrypted: i=1; AFNElJ+pPXZMLvoC0L+W3WJIsrJEODBC95cxkI5IBx5QmVnQ//CwERpmZBtPuIph0E6NOAaeRWAh+iItq/E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxYwpO8dLgxDZT1m8xLU910TtAfjeMmXtBAWJD/Ve64ll9BSo3H
	uQYt9MLJ3VGrRE9DqwXg4ai0NX4U7kRbuuTL37NZ0JgDKokLchYMfUQDjrI9PBAt/BBT+MRugX1
	FaMqeJw==
X-Received: from pfdc5.prod.google.com ([2002:aa7:8c05:0:b0:82f:a75b:f7fa])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:ab0d:b0:839:e27c:6cce
 with SMTP id d2e1a72fcca58-83f33d97d9amr5480931b3a.37.1778872871152; Fri, 15
 May 2026 12:21:11 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:33 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-33-seanjc@google.com>
Subject: [PATCH v3 32/41] x86/tsc: Rejects attempts to override TSC
 calibration with lesser routine
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-ebf023/1778872873-43B6B3FF-241EF507/13/0
X-purgate-type: clean
X-purgate-size: 1550

When registering a TSC frequency calibration routine, sanity check that
the incoming routine is as robust as the outgoing routine, and reject the
incoming routine if the sanity check fails.

Because native calibration routines only mark the TSC frequency as known
and reliable when they actually run, the effective progression of
capabilities is: None (native) => Known and maybe Reliable (PV) =>
Known and Reliable (CoCo).  Violating that progression for a PV override
is relatively benign, but messing up the progression when CoCo is
involved is more problematic, as it likely means a trusted source of
information (hardware/firmware) is being discarded in favor of a less
trusted source (hypervisor).

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/tsc.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 98bef1d06fa9..7a261214fa3e 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -1319,8 +1319,13 @@ void tsc_register_calibration_routines(unsigned long (*calibrate_tsc)(void),
 
 	if (properties & TSC_FREQUENCY_KNOWN)
 		setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
+	else if (WARN_ON(boot_cpu_has(X86_FEATURE_TSC_KNOWN_FREQ)))
+		return;
+
 	if (properties & TSC_RELIABLE)
 		setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
+	else if (WARN_ON(boot_cpu_has(X86_FEATURE_TSC_RELIABLE)))
+		return;
 
 	x86_platform.calibrate_tsc = calibrate_tsc;
 	if (calibrate_cpu)
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310368.1581303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9t-0002cp-5m; Fri, 15 May 2026 19:25:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310368.1581303; Fri, 15 May 2026 19:25:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNy9s-0002bu-PI; Fri, 15 May 2026 19:25:16 +0000
Received: by outflank-mailman (input) for mailman id 1310368;
 Fri, 15 May 2026 19:25:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3KHIHagYKCYExjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 1wNy9r-0002Me-Nc
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy9r-001ywb-3R
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:15 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3KHIHagYKCYExjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 6a0772f2-5cb7-0a2a0a5109dd-0a2a45069d3a-34
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:15 +0200
Received: from [209.85.216.74] (helo=mail-pj1-f74.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3KHIHagYKCYExjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 6a077229-7371-0a2a45060019-d155d84acc55-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:14 +0200
Received: by mail-pj1-f74.google.com with SMTP id
 98e67ed59e1d1-369467ab5bfso127923a91.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872873; x=1779477673; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=POYAFJXhX15R3hmqAgfLZg3VsZ+0XFpd3jcwWXWllKs=;
        b=UZjv3Q3NmRjVO67+6jl5YyRh1GMy2Xzh9iV6IK4CaAUrnbZ0hm9D/DSPzvdZpBYsRf
         4SVHFq4va6ho9uKM+0H8qUrZQkOncas9F20D4Uvxoek0NovIx9xr8VjXm0gBpmUl7Ndb
         bLEOykC7Or6aeEUU2/T0Xa2L61vn0XR4/6WsWFo9G/mZc6a0Nyt4ImgfJi0DnFEarvg+
         MYiPWXpbwMpqQSqlGlSO+Ey+s1h5gy4exSSEPNGVSQBJHNqgC/DbxkdnxpjC+m58Pqf7
         1jDPOnBpaSV/8XvwzmhLMcLY+TbPPk40a74IIqR2wUghLnKQ2l6nuOvRWypBcLmWRClf
         ffKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872873; x=1779477673;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=POYAFJXhX15R3hmqAgfLZg3VsZ+0XFpd3jcwWXWllKs=;
        b=gS4Daiips7g/wEdjfKFgLpA6tGcHRqXd2hOE/5+M7MNz2wrDkwIMnSw6F3mQq1jFQ0
         /iIL3HISOCPsZYxTae0prO6M/3DsvBvagn6UYMUHgOkwgtqPE0sGDFkx3lQWq0EJjYgA
         cFXazG1ESNOtXyPKcgqoOaM2f1Wqq0Nb26hnVEiFOJBXwo3E2/jrDUuMx76DDRUq5h/y
         1hzVOXx8/7yOI72UH8E27tHZ0mlSRnwKja7XxTusDtffztszDglY8iLZtXfxRQoklv01
         FcVN2Mr1fxJQ6zWd1wHse/5oAWFM2xzguwR35og9618ET/UVJwZT4SZqCEfUsEL/7moI
         HtZQ==
X-Forwarded-Encrypted: i=1; AFNElJ84nQ2RL6C0NDIT4ynusZbA3xIjMQA/49n2Tfd+CuGknWPMx3sQJznBjkY4fpo88PDAxxzmJ1ZXpFI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw2NT49vXD2H1WY9yKpV/VBjrBAcNWSI7oOX3Dw8wT+1WCZJxLY
	POjFjOiFgreiHMtpqBeR68LEJTJSsgUjcN7pWS83Bt3CG8LeLoN3Vu//U9ThT8cEDflTUNa2LLM
	7KvMnoA==
X-Received: from pgla17.prod.google.com ([2002:a63:b51:0:b0:c82:2e5b:8f33])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:3505:b0:364:edd2:812
 with SMTP id 98e67ed59e1d1-36951cb3086mr5037302a91.25.1778872872299; Fri, 15
 May 2026 12:21:12 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:34 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-34-seanjc@google.com>
Subject: [PATCH v3 33/41] x86/kvmclock: Mark TSC as reliable when it's
 constant and nonstop
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-16d1c6/1778872874-7FB7DD75-844FEDFF/0/0
X-purgate-type: clean
X-purgate-size: 2828

Mark the TSC as reliable if the hypervisor (KVM) has enumerated the TSC
as constant and nonstop, and the admin hasn't explicitly marked the TSC
as unstable.  Like most (all?) virtualization setups, any secondary
clocksource that's used as a watchdog is guaranteed to be less reliable
than a constant, nonstop TSC, as all clocksources the kernel uses as a
watchdog are all but guaranteed to be emulated when running as a KVM
guest.  I.e. any observed discrepancies between the TSC and watchdog will
be due to jitter in the watchdog.

This is especially true for KVM, as the watchdog clocksource is usually
emulated in host userspace, i.e. reading the clock incurs a roundtrip
cost of thousands of cycles.

Marking the TSC reliable addresses a flaw where the TSC will occasionally
be marked unstable if the host is under moderate/heavy load.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index b6b2018c51db..47f7df1e81a0 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -363,6 +363,7 @@ static __init void kvm_sched_clock_init(bool stable)
 
 void __init kvmclock_init(void)
 {
+	enum tsc_properties tsc_properties = TSC_FREQUENCY_KNOWN;
 	bool stable = false;
 
 	if (!kvm_para_available() || !kvmclock)
@@ -401,18 +402,6 @@ void __init kvmclock_init(void)
 			 PVCLOCK_TSC_STABLE_BIT;
 	}
 
-	kvm_sched_clock_init(stable);
-
-	tsc_register_calibration_routines(kvm_get_tsc_khz, kvm_get_tsc_khz,
-					  TSC_FREQUENCY_KNOWN);
-
-	x86_platform.get_wallclock = kvm_get_wallclock;
-	x86_platform.set_wallclock = kvm_set_wallclock;
-#ifdef CONFIG_SMP
-	x86_cpuinit.early_percpu_clock_init = kvm_setup_secondary_clock;
-#endif
-	kvm_get_preset_lpj();
-
 	/*
 	 * X86_FEATURE_NONSTOP_TSC is TSC runs at constant rate
 	 * with P/T states and does not stop in deep C-states.
@@ -423,8 +412,22 @@ void __init kvmclock_init(void)
 	 */
 	if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC) &&
 	    boot_cpu_has(X86_FEATURE_NONSTOP_TSC) &&
-	    !check_tsc_unstable())
+	    !check_tsc_unstable()) {
 		kvm_clock.rating = 299;
+		tsc_properties = TSC_FREQ_KNOWN_AND_RELIABLE;
+	}
+
+	kvm_sched_clock_init(stable);
+
+	tsc_register_calibration_routines(kvm_get_tsc_khz, kvm_get_tsc_khz,
+					  tsc_properties);
+
+	x86_platform.get_wallclock = kvm_get_wallclock;
+	x86_platform.set_wallclock = kvm_set_wallclock;
+#ifdef CONFIG_SMP
+	x86_cpuinit.early_percpu_clock_init = kvm_setup_secondary_clock;
+#endif
+	kvm_get_preset_lpj();
 
 	clocksource_register_hz(&kvm_clock, NSEC_PER_SEC);
 	pv_info.name = "KVM";
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310391.1581322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyA2-0003ou-NX; Fri, 15 May 2026 19:25:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310391.1581322; Fri, 15 May 2026 19:25:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyA2-0003nZ-Fx; Fri, 15 May 2026 19:25:26 +0000
Received: by outflank-mailman (input) for mailman id 1310391;
 Fri, 15 May 2026 19:25:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3MXIHagYKCYo6so1xqu22uzs.q20Bs1-rs9szzw676.Bs1352xsq7.25u@flex--seanjc.bounces.google.com>)
 id 1wNyA1-0003gN-8F
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNyA0-00Dx3J-Kx
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:24 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3MXIHagYKCYo6so1xqu22uzs.q20Bs1-rs9szzw676.Bs1352xsq7.25u@flex--seanjc.bounces.google.com>)
 id 6a0772f2-5cb7-0a2a0a5109dd-0a2a45069d3a-40
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:24 +0200
Received: from [209.85.210.202] (helo=mail-pf1-f202.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3MXIHagYKCYo6so1xqu22uzs.q20Bs1-rs9szzw676.Bs1352xsq7.25u@flex--seanjc.bounces.google.com>)
 id 6a077232-7371-0a2a45060019-d155d2cad42e-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:24 +0200
Received: by mail-pf1-f202.google.com with SMTP id
 d2e1a72fcca58-82f6e6a3a76so260904b3a.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872882; x=1779477682; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=CJ9Kqslov6eJXg3tHpdlTt5rxLZvQw1ej96frcIls5c=;
        b=nYLWfiY55hDUBYOGV5jepJJzeZhVOIRUPUD54I/NscZ7oIIknycoxi8bA38rI4/Yea
         Yn/rWDwlaQ8SCR0r0MLcJsqSYNfw1wshTHz3eswbA16EaGxB9muFSwDt/2FC5RSXl/O6
         X7t1sS4p4Aebgx5O2Hz3s1J80xw1BF8T9HB2JcK1R0j5e2SZZyIw2hAewDs8Vxlb2TUY
         0uZey2FM5Td+OwzCdXy1WLu4RNGxjfiHJHbdGiRw+mkb1+J2d7U2KpuLfd6dzSE2h6LX
         ofEPIqPU0/QBjhFXOM1LFqz1maRK7s2kwFwjzife6fZWuCVfMev3vJve91k13DE9QKG/
         f7LQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872882; x=1779477682;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=CJ9Kqslov6eJXg3tHpdlTt5rxLZvQw1ej96frcIls5c=;
        b=fWJshJ1kWgOwrm74CFz1fP17Q51S9kisKfv3OzI6LDu1HIIb2B9PGt/XYlkPIRy8Zo
         fninjYCkhWNYWUVJ4FwFM8KMVyyLg1FV4u5Aq6K6nqZNE5qMeXCP9WIAFGZelV2wlg2I
         +i1mtysvPWEb8SWt+LuIycnNf2B0/uI9hu0VkaPCjNSFB8vHf8MMxbJb34IhdGBCB+du
         TN6OQuJpRKm1Vp9kyEw4bAvWEPMbsuLwcJcPi2oRcieXEfJePj0Vue1oQ9PtKDx+Khqt
         IixrMiyqsG72zVLEZjn+RJ9TyW/yJ/Cr8s4YJbTo4Mv419lB9C/kP9acazAuAv4HiNGE
         wEuQ==
X-Forwarded-Encrypted: i=1; AFNElJ85199OdsXCeMg6aj9pnccNIXrt+6y42EMxhOrdLnc387eerJG1MF9P3pMfqnBRLtgruMBIh67fe0g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YymrBRym7snDaLJIeh2VYWBuDR/ZbFqRZKtuhBKGRlmieh/hHpm
	lDLsHZGlcwJE4/FOIAW7zNCJy/oEtkX9IXE4KKXcZAJv6zE0pqPZ+gPom8QBMYecY+jjx82vR3v
	pjEmTAg==
X-Received: from pfmm20.prod.google.com ([2002:a05:6a00:2494:b0:835:43a4:4aaa])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:2d19:b0:82f:a89e:e16f
 with SMTP id d2e1a72fcca58-83f33b2f58fmr5940174b3a.14.1778872881979; Fri, 15
 May 2026 12:21:21 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:40 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-40-seanjc@google.com>
Subject: [PATCH v3 39/41] x86/paravirt: Move using_native_sched_clock() stub
 into timer.h
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-16d1c6/1778872884-8C87AD75-6B0CE198/0/0
X-purgate-type: clean
X-purgate-size: 1740

Now that timer.h ended up with CONFIG_PARAVIRT #ifdeffery anyways, move the
PARAVIRT=n using_native_sched_clock() stub into timer.h as a "free"
optimization.

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/timer.h | 5 +++--
 arch/x86/kernel/tsc.c        | 2 --
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index ab1271bd9c3b..d8cb9c84f2c7 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -11,9 +11,9 @@ extern void recalibrate_cpu_khz(void);
 
 extern int no_timer_check;
 
-extern bool using_native_sched_clock(void);
-
 #ifdef CONFIG_PARAVIRT
+extern bool using_native_sched_clock(void);
+
 int __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
 				      void (*save)(void), void (*restore)(void),
 				      void (*start_secondary));
@@ -27,6 +27,7 @@ static __always_inline void paravirt_set_sched_clock(u64 (*func)(void),
 void paravirt_sched_clock_start_secondary(void);
 #else
 static inline void paravirt_sched_clock_start_secondary(void) { }
+static inline bool using_native_sched_clock(void) { return true; }
 #endif
 
 /*
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index f78e86494dec..1b569954ae5e 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -316,8 +316,6 @@ int __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
 }
 #else
 u64 sched_clock_noinstr(void) __attribute__((alias("native_sched_clock")));
-
-bool using_native_sched_clock(void) { return true; }
 #endif
 
 notrace u64 sched_clock(void)
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310386.1581317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyA2-0003ka-9B; Fri, 15 May 2026 19:25:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310386.1581317; Fri, 15 May 2026 19:25:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyA2-0003kG-4r; Fri, 15 May 2026 19:25:26 +0000
Received: by outflank-mailman (input) for mailman id 1310386;
 Fri, 15 May 2026 19:25:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3MHIHagYKCYk5rn0wpt11tyr.p1zAr0-qr8ryyv565.Ar0241wrp6.14t@flex--seanjc.bounces.google.com>)
 id 1wNyA0-0003bh-Du
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNy9z-001IhQ-QF
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:23 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3MHIHagYKCYk5rn0wpt11tyr.p1zAr0-qr8ryyv565.Ar0241wrp6.14t@flex--seanjc.bounces.google.com>)
 id 6a0772b6-bab6-0a2a0a5309dd-0a2a4505e824-30
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:23 +0200
Received: from [209.85.210.202] (helo=mail-pf1-f202.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3MHIHagYKCYk5rn0wpt11tyr.p1zAr0-qr8ryyv565.Ar0241wrp6.14t@flex--seanjc.bounces.google.com>)
 id 6a077231-aaa8-0a2a45050019-d155d2caec93-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:23 +0200
Received: by mail-pf1-f202.google.com with SMTP id
 d2e1a72fcca58-83ef22f8e8bso177177b3a.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872881; x=1779477681; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=rGCW9kF5gS8wHa+YnUvDY3DL62KvWmhRkotZ7eduTfw=;
        b=GsR+04cvbRlBhziiw8jqNxR98tTcwQIJHhEEoK5+uJrZ+PqD0zm7Vp5/+n9oP1aKix
         YG+8eCanHgG8BKl6CfvjaGXQJ5W1CfL8lFKuJrF6Z0bai67spIbE98X1IN2xw8CUcw2R
         VcocUIaLd0X32x7+P7XGBB75vASngjbqzylvxKiq3o+P04hluG2scGC/bEa4lQO6wnEY
         jOf4UC9dPB51Kt7RchgykcHuN1C8bN+NSg0yM/7rvsR60OFl/3B6USf9aXeN8FALI5/E
         XRtYcnRJcv8Az+B6vytymcSykdr5eNYXVGbMYjVuT2swImK8LGFDKSq4oY5tMiVEgbfO
         zdJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872881; x=1779477681;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=rGCW9kF5gS8wHa+YnUvDY3DL62KvWmhRkotZ7eduTfw=;
        b=BOSpU+FQVxSB5L5aeKHeYq3LxEI9gzvWGC9BJBqWZjTcSl/tTx6syLyvrthogkF717
         OyUuQZzRg9GqODXFf8IFPwRtSIR7qVB22CuA+i4/vI9llj1XFXeTx0/kGk8YzW6rbsvc
         fP6FbYVPs/dFu2mg3KJhw6cIN9vxedhWFRv7zLK3CzoIaI5L9zJ2Io3kQFedVrYntZIr
         Rk1yTdMpgrTpPAjs8cMgAe6ks63lifBfpEoxzTKTqdZTAus0xVMZKr1d9fY4DjSgh6mh
         1Gp4oqM3M8puJZkoq1w5CVwpcFAvnvS31LgcWMK6fDQDbWWram6oeeJ6JdpbTdCSl3EX
         aZiQ==
X-Forwarded-Encrypted: i=1; AFNElJ8cMMO303UZg2RAnA1l/Cz6sq1uRqUjr99BrPql16Ogxwl2hrL0K4nsDl6jySOqP94xYYGwTqxqzvU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzsL5X307ZnFUFCBJKbmMBA2QGfVSb68D6yYbBuYcmO1bYhAn+4
	ajzr8vO5IUbwUMTn0/j/Ys4U0vrZkUaJMH998OxGuKWDbsMYwrZ9PiO+gi+Qd1A2ipYbGD+PMgG
	02oXv5Q==
X-Received: from pfkq14.prod.google.com ([2002:a05:6a00:84e:b0:839:4a33:c354])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:12e4:b0:835:405a:7e68
 with SMTP id d2e1a72fcca58-83f33d9dd83mr5938852b3a.32.1778872880815; Fri, 15
 May 2026 12:21:20 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:39 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-39-seanjc@google.com>
Subject: [PATCH v3 38/41] x86/paravirt: kvmclock: Setup kvmclock early iff
 it's sched_clock
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-c201ff/1778872883-D9D77443-5B95A635/0/0
X-purgate-type: clean
X-purgate-size: 6218

Rework the seemingly generic x86_cpuinit_ops.early_percpu_clock_init hook
into a dedicated PV sched_clock hook, as the only reason the hook exists
is to allow kvmclock to enable its PV clock on secondary CPUs before the
kernel tries to reference sched_clock, e.g. when grabbing a timestamp for
printk.

Rearranging the hook doesn't exactly reduce complexity; arguably it does
the opposite.  But as-is, it's practically impossible to understand *why*
kvmclock needs to do early configuration.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/timer.h    |  8 ++++++--
 arch/x86/include/asm/x86_init.h |  2 --
 arch/x86/kernel/kvmclock.c      | 13 ++++++-------
 arch/x86/kernel/smpboot.c       |  3 ++-
 arch/x86/kernel/tsc.c           | 16 +++++++++++++++-
 arch/x86/kernel/x86_init.c      |  1 -
 6 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index ca5c95d48c03..ab1271bd9c3b 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -15,14 +15,18 @@ extern bool using_native_sched_clock(void);
 
 #ifdef CONFIG_PARAVIRT
 int __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
-				      void (*save)(void), void (*restore)(void));
+				      void (*save)(void), void (*restore)(void),
+				      void (*start_secondary));
 
 static __always_inline void paravirt_set_sched_clock(u64 (*func)(void),
 						     void (*save)(void),
 						     void (*restore)(void))
 {
-	(void)__paravirt_set_sched_clock(func, true, save, restore);
+	(void)__paravirt_set_sched_clock(func, true, save, restore, NULL);
 }
+void paravirt_sched_clock_start_secondary(void);
+#else
+static inline void paravirt_sched_clock_start_secondary(void) { }
 #endif
 
 /*
diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
index 6c8a6ead84f6..d1b3f18ea41f 100644
--- a/arch/x86/include/asm/x86_init.h
+++ b/arch/x86/include/asm/x86_init.h
@@ -187,13 +187,11 @@ struct x86_init_ops {
 /**
  * struct x86_cpuinit_ops - platform specific cpu hotplug setups
  * @setup_percpu_clockev:	set up the per cpu clock event device
- * @early_percpu_clock_init:	early init of the per cpu clock event device
  * @fixup_cpu_id:		fixup function for cpuinfo_x86::topo.pkg_id
  * @parallel_bringup:		Parallel bringup control
  */
 struct x86_cpuinit_ops {
 	void (*setup_percpu_clockev)(void);
-	void (*early_percpu_clock_init)(void);
 	void (*fixup_cpu_id)(struct cpuinfo_x86 *c, int node);
 	bool parallel_bringup;
 };
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 0578bc448b1b..62c8ea2e6769 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -127,12 +127,13 @@ static void kvm_save_sched_clock_state(void)
 	kvmclock_disable();
 }
 
-#ifdef CONFIG_SMP
-static void kvm_setup_secondary_clock(void)
+static void kvm_setup_secondary_sched_clock(void)
 {
+	if (WARN_ON_ONCE(!IS_ENABLED(CONFIG_SMP)))
+		return;
+
 	kvm_register_clock("secondary cpu, sched_clock setup");
 }
-#endif
 
 static void kvm_restore_sched_clock_state(void)
 {
@@ -352,7 +353,8 @@ static __init void kvm_sched_clock_init(bool stable)
 {
 	if (__paravirt_set_sched_clock(kvm_sched_clock_read, stable,
 				       kvm_save_sched_clock_state,
-				       kvm_restore_sched_clock_state))
+				       kvm_restore_sched_clock_state,
+				       kvm_setup_secondary_sched_clock))
 		return;
 
 	kvm_sched_clock_offset = kvm_clock_read();
@@ -437,9 +439,6 @@ void __init kvmclock_init(void)
 
 	x86_platform.get_wallclock = kvm_get_wallclock;
 	x86_platform.set_wallclock = kvm_set_wallclock;
-#ifdef CONFIG_SMP
-	x86_cpuinit.early_percpu_clock_init = kvm_setup_secondary_clock;
-#endif
 	kvm_get_preset_lpj();
 
 	clocksource_register_hz(&kvm_clock, NSEC_PER_SEC);
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 294a8ea60298..318ae70e5e7b 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -78,6 +78,7 @@
 #include <asm/io_apic.h>
 #include <asm/fpu/api.h>
 #include <asm/setup.h>
+#include <asm/timer.h>
 #include <asm/uv/uv.h>
 #include <asm/microcode.h>
 #include <asm/i8259.h>
@@ -275,7 +276,7 @@ static void notrace __noendbr start_secondary(void *unused)
 	cpu_init();
 	fpu__init_cpu();
 	rcutree_report_cpu_starting(raw_smp_processor_id());
-	x86_cpuinit.early_percpu_clock_init();
+	paravirt_sched_clock_start_secondary();
 
 	ap_starting();
 
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 7a261214fa3e..f78e86494dec 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -280,8 +280,19 @@ bool using_native_sched_clock(void)
 	return static_call_query(pv_sched_clock) == native_sched_clock;
 }
 
+#ifdef CONFIG_SMP
+static void (*pv_sched_clock_start_secondary)(void) __ro_after_init;
+
+void paravirt_sched_clock_start_secondary(void)
+{
+	if (pv_sched_clock_start_secondary)
+		pv_sched_clock_start_secondary();
+}
+#endif
+
 int __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
-				      void (*save)(void), void (*restore)(void))
+				      void (*save)(void), void (*restore)(void),
+				      void (*start_secondary))
 {
 	/*
 	 * Don't replace TSC with a PV clock when running as a CoCo guest and
@@ -298,6 +309,9 @@ int __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
 	static_call_update(pv_sched_clock, func);
 	x86_platform.save_sched_clock_state = save;
 	x86_platform.restore_sched_clock_state = restore;
+#ifdef CONFIG_SMP
+	pv_sched_clock_start_secondary = start_secondary;
+#endif
 	return 0;
 }
 #else
diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
index ebefb77c37bb..cbb5ee613ed5 100644
--- a/arch/x86/kernel/x86_init.c
+++ b/arch/x86/kernel/x86_init.c
@@ -128,7 +128,6 @@ struct x86_init_ops x86_init __initdata = {
 };
 
 struct x86_cpuinit_ops x86_cpuinit = {
-	.early_percpu_clock_init	= x86_init_noop,
 	.setup_percpu_clockev		= setup_secondary_APIC_clock,
 	.parallel_bringup		= true,
 };
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310392.1581335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyA4-0004IK-RP; Fri, 15 May 2026 19:25:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310392.1581335; Fri, 15 May 2026 19:25:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyA4-0004G3-A7; Fri, 15 May 2026 19:25:28 +0000
Received: by outflank-mailman (input) for mailman id 1310392;
 Fri, 15 May 2026 19:25:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3M3IHagYKCYw8uq3zsw44w1u.s42Du3-tuBu11y898.Du3574zus9.47w@flex--seanjc.bounces.google.com>)
 id 1wNyA2-0003li-IF
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNyA1-009QbB-U4
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:25 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3M3IHagYKCYw8uq3zsw44w1u.s42Du3-tuBu11y898.Du3574zus9.47w@flex--seanjc.bounces.google.com>)
 id 6a077318-e002-0a2a0a5209dd-0a2a450c9a16-18
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:25 +0200
Received: from [209.85.210.201] (helo=mail-pf1-f201.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3M3IHagYKCYw8uq3zsw44w1u.s42Du3-tuBu11y898.Du3574zus9.47w@flex--seanjc.bounces.google.com>)
 id 6a077234-62f1-0a2a450c0019-d155d2c9d8af-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:21:25 +0200
Received: by mail-pf1-f201.google.com with SMTP id
 d2e1a72fcca58-82f6a5b4f88so296446b3a.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:21:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872884; x=1779477684; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=cGLSRPI8RMv865ATBw7wYYFL1PB8rGFTI0lK6a8u9vM=;
        b=CwFfRLWrmcwZul9xj3VDy5gzUjpprx2LU/SLbvsMd/bUYoRSggyLmx//L3Nav633lY
         9hMnVj2yAei4ixw5dZNGBHx4tNUlyWlKAS9syjzphENBnklxCufM2+PsktoOV/4D9CrK
         gejZPMPzuugJB4McL1hy43EsR/zSp/XrZgqxaPg2C6EoXsaInJ++NNAim5GhLhH5nwma
         0czTfthbZmkzZZz9+UEwqZWpO0I3MZ8phadQX9UpjVvAS/jzivDVuJUwkPIByU9vSSCm
         vxCRF/CuIW7K/gBFOegb1o7pG4veyz3PLyZLOMglRbg0pAGAia8znBWaD31Tv3FjWKBa
         v+gg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872884; x=1779477684;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=cGLSRPI8RMv865ATBw7wYYFL1PB8rGFTI0lK6a8u9vM=;
        b=jSJM43tvNLV2kFp0gvixkdoS268vQ5rUbe4HxZt0vcKhZWSdi5JojmHIDJgB+JFYyT
         tAx5Iv80W8lrU1quK9KvrIvGikiZ0y94QzSRWdPit0bv8sYIywk4gPawqOvb+Qii+OxR
         Mb0i8ufj+PHIty/GP4bvtBBjctQn/Er1YqceVT50n3Fqg71bDnv4QVtMXFRPlbPQjWKN
         +hr5wQuJ+Xd1A/Q6A8dVCVR4mRoTMYqg8RYHdcVNCEdLx0NC0QiMvuPiMByoprGfNXrx
         hIWt3yEiTPrHIYx9CuehPMDEO1B4WicgrhnpGNWA/xLQgfbz2R5Mro76KDtggt6QtiME
         wxVA==
X-Forwarded-Encrypted: i=1; AFNElJ8FtqMckfkJNHUJFzcZLaWw3rtQxLZsbsfoVFAbrSrUfzFb5AfAnVedu5lmXdVWm5CBQYwGIy0TKmk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwyuaDbtNgspGBH2SSRggtR19ODpVpqd4PYdkyuEZI58YWKiYXA
	UY+KPwbgAXAen8g58sD7ELd9Uofji1w/EFzOGPNF0uaiR+n/y1zh25/GMCvqJLAX8ZWEsLEqOs9
	fC7wBYg==
X-Received: from pfdc18.prod.google.com ([2002:aa7:8c12:0:b0:834:df9e:8e02])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:194f:b0:82f:355a:857e
 with SMTP id d2e1a72fcca58-83f33d0398emr5462972b3a.47.1778872883144; Fri, 15
 May 2026 12:21:23 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:41 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-41-seanjc@google.com>
Subject: [PATCH v3 40/41] x86/tsc: Add standalone helper for getting CPU
 frequency from CPUID
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-d25034/1778872885-E1161CF5-7BEA6DCF/0/0
X-purgate-type: clean
X-purgate-size: 3014

Extract the guts of cpu_khz_from_cpuid() to a standalone helper that
doesn't restrict the usage to Intel CPUs.  This will allow sharing the
core logic with kvmclock, as (a) CPUID.0x16 may be enumerated alongside
kvmclock, and (b) KVM generally doesn't restrict CPUID based on vendor.

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/tsc.h |  1 +
 arch/x86/kernel/tsc.c      | 37 +++++++++++++++++++++++--------------
 2 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h
index f458be688512..c145f5707b52 100644
--- a/arch/x86/include/asm/tsc.h
+++ b/arch/x86/include/asm/tsc.h
@@ -91,6 +91,7 @@ struct cpuid_tsc_info {
 };
 extern int cpuid_get_tsc_info(struct cpuid_tsc_info *info);
 extern int cpuid_get_tsc_freq(struct cpuid_tsc_info *info);
+extern int cpuid_get_cpu_freq(unsigned int *cpu_khz);
 
 extern void tsc_early_init(void);
 extern void tsc_init(void);
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 1b569954ae5e..745fa2052c74 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -719,6 +719,24 @@ int cpuid_get_tsc_freq(struct cpuid_tsc_info *info)
 	return 0;
 }
 
+int cpuid_get_cpu_freq(unsigned int *cpu_khz)
+{
+	unsigned int eax_base_mhz, ebx, ecx, edx;
+
+	*cpu_khz = 0;
+
+	if (boot_cpu_data.cpuid_level < CPUID_LEAF_FREQ)
+		return -ENOENT;
+
+	cpuid(CPUID_LEAF_FREQ, &eax_base_mhz, &ebx, &ecx, &edx);
+
+	if (!eax_base_mhz)
+		return -ENOENT;
+
+	*cpu_khz = eax_base_mhz * 1000;
+	return 0;
+}
+
 /**
  * native_calibrate_tsc - determine TSC frequency
  * Determine TSC frequency via CPUID, else return 0.
@@ -754,13 +772,8 @@ unsigned long native_calibrate_tsc(void)
 	 * clock, but we can easily calculate it to a high degree of accuracy
 	 * by considering the crystal ratio and the CPU speed.
 	 */
-	if (!info.crystal_khz && boot_cpu_data.cpuid_level >= CPUID_LEAF_FREQ) {
-		unsigned int eax_base_mhz, ebx, ecx, edx;
-
-		cpuid(CPUID_LEAF_FREQ, &eax_base_mhz, &ebx, &ecx, &edx);
-		info.crystal_khz = eax_base_mhz * 1000 *
-			info.denominator / info.numerator;
-	}
+	if (!info.crystal_khz && !cpuid_get_cpu_freq(&cpu_khz))
+		info.crystal_khz = cpu_khz * info.denominator / info.numerator;
 
 	if (!info.crystal_khz)
 		return 0;
@@ -787,19 +800,15 @@ unsigned long native_calibrate_tsc(void)
 
 static unsigned long cpu_khz_from_cpuid(void)
 {
-	unsigned int eax_base_mhz, ebx_max_mhz, ecx_bus_mhz, edx;
+	unsigned int cpu_khz;
 
 	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
 		return 0;
 
-	if (boot_cpu_data.cpuid_level < CPUID_LEAF_FREQ)
+	if (cpuid_get_cpu_freq(&cpu_khz))
 		return 0;
 
-	eax_base_mhz = ebx_max_mhz = ecx_bus_mhz = edx = 0;
-
-	cpuid(CPUID_LEAF_FREQ, &eax_base_mhz, &ebx_max_mhz, &ecx_bus_mhz, &edx);
-
-	return eax_base_mhz * 1000;
+	return cpu_khz;
 }
 
 /*
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310442.1581344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyAT-0006LE-UA; Fri, 15 May 2026 19:25:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310442.1581344; Fri, 15 May 2026 19:25:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyAT-0006Kw-RR; Fri, 15 May 2026 19:25:53 +0000
Received: by outflank-mailman (input) for mailman id 1310442;
 Fri, 15 May 2026 19:25:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3EXIHagYKCWoaMIVRKOWWOTM.KWUfMV-LMdMTTQaba.fMVXZWRMKb.WZO@flex--seanjc.bounces.google.com>)
 id 1wNyAS-0006HZ-HR
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNyAR-001Io4-Tr
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:51 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3EXIHagYKCWoaMIVRKOWWOTM.KWUfMV-LMdMTTQaba.fMVXZWRMKb.WZO@flex--seanjc.bounces.google.com>)
 id 6a07733e-bab6-0a2a0a5309dd-0a2a450a9760-2
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:51 +0200
Received: from [209.85.210.202] (helo=mail-pf1-f202.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3EXIHagYKCWoaMIVRKOWWOTM.KWUfMV-LMdMTTQaba.fMVXZWRMKb.WZO@flex--seanjc.bounces.google.com>)
 id 6a077212-56b3-0a2a450a0019-d155d2cac582-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:51 +0200
Received: by mail-pf1-f202.google.com with SMTP id
 d2e1a72fcca58-835423c69ffso75083b3a.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872849; x=1779477649; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=HUz/DYTZsMDp3XmDdx4uAZCV01b5NalrmHfGrDrQY4I=;
        b=X+eevLshy+6MvFh3A1hJ2i+4MhR+LFb+FBk3xQ/tCAwZoZRyrdgrmMqknWBXkNCR+d
         CrGaHCbl2nCcYn5jLaWg30oE8p7HntZxg+g+qaIL3TWiZ/wXQwjSIHvuw9qB003YVgej
         ADavq+0Rr7YgEQ6LHxhTJFe7F0OusGcy24P75hhgnjoVODGp3IAIv0nhCmz0COoh42+l
         W6by+zWCdRdJj46wdDF/XiyNUrE2HTTB3lAmOEn67mV2Z/B9wPI+Fi5kW8AchWjvS76W
         8F5a0B2B3aYIOjUYjYXSLK17B1pPAIY3NM+2t8nv+j98ogyJdLwrDoTNdfoZ60/kPQA9
         j9/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872849; x=1779477649;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=HUz/DYTZsMDp3XmDdx4uAZCV01b5NalrmHfGrDrQY4I=;
        b=o/PkjsM3UNDiRbrDJDLZgxNMRoMpkttasQ9vX4qyesjpWheAKt0/2+EQiKdXQxVNwT
         xCNPxskCCzKQPWyJYMVIBrHkGhq5Nt4bEsWf+59bta0ddNhX/UkEsudxZYp6TXnjDLNE
         ZdYmnijqhViRFbApNFOa879Do1l4oLcVK3apL3Z+bBemv3uOwFs8lwMPLkCFHeumzRdr
         vdyhLyyCH7IxujKLDi1bqWkrlgQkcvalLMPpeYV9H/VaK4D1zVSUyApy6Fw+onzGdrXG
         iqC9w8iaamy7qGZc1rP1HGknp8TtojsYsKV6LJDCsRVMDUFySE+THZwYKGppSdQAkegh
         LGQw==
X-Forwarded-Encrypted: i=1; AFNElJ8YrxdtEZpePq0w4xSjgWyvhNdJzf4sv+yeol0Hk6UCHG9Yl2oi7gqphT25UgMqJqvKNBYFR+0l3NM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzy3QQp9Zob3rj1hUXcoLCUkf0xbs4BBhMelH7mV2mKp0Fp0xQV
	8aTmv1GZJyhtQwxtZdE9zjGQwxkXZwMPuMjx+x/gxrCQnvfmZoP10h8C8hWLun5NT95KB+qXqNo
	SD9YJ0Q==
X-Received: from pfmm20.prod.google.com ([2002:a05:6a00:2494:b0:835:43a4:4aaa])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:6ca2:b0:83d:b11f:7979
 with SMTP id d2e1a72fcca58-83f33c60deemr6247193b3a.29.1778872849160; Fri, 15
 May 2026 12:20:49 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:18 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-18-seanjc@google.com>
Subject: [PATCH v3 17/41] x86/tsc: WARN if TSC sched_clock save/restore used
 with PV sched_clock
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-4011c0/1778872851-7236B8B7-28DCF8B3/0/0
X-purgate-type: clean
X-purgate-size: 1339

Now that all PV clocksources override the sched_clock save/restore hooks
when overriding sched_clock, WARN if the "default" TSC hooks are invoked
when using a PV sched_clock, e.g. to guard against regressions.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/tsc.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 567d30b30a5a..b14c4ada89a3 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -984,9 +984,17 @@ EXPORT_SYMBOL_GPL(recalibrate_cpu_khz);
 
 static unsigned long long cyc2ns_suspend;
 
+static __always_inline bool tsc_is_save_restore_needed(void)
+{
+	if (WARN_ON_ONCE(!using_native_sched_clock()))
+		return false;
+
+	return static_branch_likely(&__use_tsc) || sched_clock_stable();
+}
+
 void tsc_save_sched_clock_state(void)
 {
-	if (!static_branch_likely(&__use_tsc) && !sched_clock_stable())
+	if (!tsc_is_save_restore_needed())
 		return;
 
 	cyc2ns_suspend = sched_clock();
@@ -1006,7 +1014,7 @@ void tsc_restore_sched_clock_state(void)
 	unsigned long flags;
 	int cpu;
 
-	if (!static_branch_likely(&__use_tsc) && !sched_clock_stable())
+	if (!tsc_is_save_restore_needed())
 		return;
 
 	local_irq_save(flags);
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310444.1581348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyAU-0006OJ-8M; Fri, 15 May 2026 19:25:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310444.1581348; Fri, 15 May 2026 19:25:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyAU-0006NF-2k; Fri, 15 May 2026 19:25:54 +0000
Received: by outflank-mailman (input) for mailman id 1310444;
 Fri, 15 May 2026 19:25:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3EnIHagYKCWsbNJWSLPXXPUN.LXVgNW-MNeNUURbcb.gNWYaXSNLc.XaP@flex--seanjc.bounces.google.com>)
 id 1wNyAT-0006KA-It
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNyAS-001Io4-VT
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:52 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3EnIHagYKCWsbNJWSLPXXPUN.LXVgNW-MNeNUURbcb.gNWYaXSNLc.XaP@flex--seanjc.bounces.google.com>)
 id 6a07733e-bab6-0a2a0a5309dd-0a2a450a9760-6
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:52 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3EnIHagYKCWsbNJWSLPXXPUN.LXVgNW-MNeNUURbcb.gNWYaXSNLc.XaP@flex--seanjc.bounces.google.com>)
 id 6a077213-56b3-0a2a450a0019-d155d6caa87b-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:52 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2ba054e0304so10111925ad.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872850; x=1779477650; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=HxeaHaxP6KnUzzL58lskoB535u+ahD+SqcMQMaRjbjY=;
        b=NTtCVGxyvgwDRv81Z7w9LdgVUcC/B2MFo0Jk785AlYXIIzbH7Os0GJKWW8qeHOEwN0
         /cT3h0BPB7t0UC/NwWv3yJ6d+r1iRfS444XHRzXtOEelLIF5us0DpVySkwf65GAQZH2Z
         mJo3MxCamWRR4FXps72k9PS7sqYI0ICcC10pavD3bn7D5T7DZSzEatBr7Txtw9pJqlNr
         6YaRptOt8jE6FTfcEiBhHbBGHj/yXqBKa/Hc66XihBrax+AKz2MhzvVfBdO5B37xcsbX
         gqZD2oLaGhPVbFnn2eiYo0ROkTmT4pK4+NgV9ERK92yJqUg1A02KCE/0tneSdtxjxFXW
         lslA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872850; x=1779477650;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=HxeaHaxP6KnUzzL58lskoB535u+ahD+SqcMQMaRjbjY=;
        b=DhbcQ40R86yB/c+hkH/liYLlfxzoy06PlLkuXuW7Z8GCLLjxN923mdzHZNkT35uSq4
         er8ix1YGw+w9QD6Q9nokooW/tuoyCVSAzqynESiESY8AMk5lpjI0jEmKWyyXZLR+is5/
         o6Pyt0r7UHQ41jJc58KtJSdvxgQhpvS2DhznzO27xjuNQvR3TZor59Y6g1b11qpncAMa
         j5BVbLcnWsyRG6jCbq1S10Ne3UuBLzCwVvNshIGyz96OZbXdfOq2mxAgHQd3deKznpFx
         +1g/Q8mF08QBuBSXYJCi+9Is1xp+mNxkfdBt6PW1VcPOXldUiGQsDSl45VhzfdB7UwSp
         kJlg==
X-Forwarded-Encrypted: i=1; AFNElJ+d4RVRlYjJo3ICfOrfYeDk50O92FP48EgjfbTwIUjOVpd+2IHlaPBVHDhmddaFUn05UjiVjmIgdH4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyOgYS5pCFARTt2ocVHRX2nkAkPFPxRBQMIVoDzOT48elBmeH7Q
	G5aS4e5sCIx45YSEstcqPWUAzWZBJjWq399Oa2hmYqOxCekqGd6/0mIkD55raHCJfORLh/Gwl9q
	402FDcA==
X-Received: from plhl17.prod.google.com ([2002:a17:903:1211:b0:2ba:73fd:6d36])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:943:b0:2ba:5e99:93e8
 with SMTP id d9443c01a7336-2bd52b6d778mr87428535ad.29.1778872850277; Fri, 15
 May 2026 12:20:50 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:19 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-19-seanjc@google.com>
Subject: [PATCH v3 18/41] x86/paravirt: Pass sched_clock save/restore helpers
 during registration
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-4011c0/1778872852-7D1848B7-56E99130/0/0
X-purgate-type: clean
X-purgate-size: 5585

Pass in a PV clock's save/restore helpers when configuring sched_clock
instead of relying on each PV clock to manually set the save/restore hooks.
In addition to bringing sanity to the code, this will allow gracefully
"rejecting" a PV sched_clock, e.g. when running as a CoCo guest that has
access to a "secure" TSC.

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/timer.h       | 9 ++++++---
 arch/x86/kernel/cpu/vmware.c       | 7 ++-----
 arch/x86/kernel/kvmclock.c         | 6 +++---
 arch/x86/kernel/tsc.c              | 5 ++++-
 arch/x86/xen/time.c                | 5 ++---
 drivers/clocksource/hyperv_timer.c | 6 ++----
 6 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index fe41d40a9ae6..e97cd1ae03d1 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -14,11 +14,14 @@ extern int no_timer_check;
 extern bool using_native_sched_clock(void);
 
 #ifdef CONFIG_PARAVIRT
-void __paravirt_set_sched_clock(u64 (*func)(void), bool stable);
+void __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
+				void (*save)(void), void (*restore)(void));
 
-static inline void paravirt_set_sched_clock(u64 (*func)(void))
+static inline void paravirt_set_sched_clock(u64 (*func)(void),
+					    void (*save)(void),
+					    void (*restore)(void))
 {
-	__paravirt_set_sched_clock(func, true);
+	__paravirt_set_sched_clock(func, true, save, restore);
 }
 #endif
 
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index b5cb66ca022b..968de002975f 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -347,11 +347,8 @@ static void __init vmware_paravirt_ops_setup(void)
 
 	vmware_cyc2ns_setup();
 
-	if (vmw_sched_clock) {
-		paravirt_set_sched_clock(vmware_sched_clock);
-		x86_platform.save_sched_clock_state = NULL;
-		x86_platform.restore_sched_clock_state = NULL;
-	}
+	if (vmw_sched_clock)
+		paravirt_set_sched_clock(vmware_sched_clock, NULL, NULL);
 
 	if (vmware_is_stealclock_available()) {
 		has_steal_clock = true;
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 800c3d65f0af..962b6fcb5c60 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -137,7 +137,9 @@ static void kvm_restore_sched_clock_state(void)
 static inline void kvm_sched_clock_init(bool stable)
 {
 	kvm_sched_clock_offset = kvm_clock_read();
-	__paravirt_set_sched_clock(kvm_sched_clock_read, stable);
+	__paravirt_set_sched_clock(kvm_sched_clock_read, stable,
+				   kvm_save_sched_clock_state,
+				   kvm_restore_sched_clock_state);
 
 	pr_info("kvm-clock: using sched offset of %llu cycles",
 		kvm_sched_clock_offset);
@@ -344,8 +346,6 @@ void __init kvmclock_init(void)
 #ifdef CONFIG_SMP
 	x86_cpuinit.early_percpu_clock_init = kvm_setup_secondary_clock;
 #endif
-	x86_platform.save_sched_clock_state = kvm_save_sched_clock_state;
-	x86_platform.restore_sched_clock_state = kvm_restore_sched_clock_state;
 	kvm_get_preset_lpj();
 
 	/*
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index b14c4ada89a3..0114c63dfdd9 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -280,12 +280,15 @@ bool using_native_sched_clock(void)
 	return static_call_query(pv_sched_clock) == native_sched_clock;
 }
 
-void __paravirt_set_sched_clock(u64 (*func)(void), bool stable)
+void __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
+				void (*save)(void), void (*restore)(void))
 {
 	if (!stable)
 		clear_sched_clock_stable();
 
 	static_call_update(pv_sched_clock, func);
+	x86_platform.save_sched_clock_state = save;
+	x86_platform.restore_sched_clock_state = restore;
 }
 #else
 u64 sched_clock_noinstr(void) __attribute__((alias("native_sched_clock")));
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index 21d366d01985..ee7095febfd1 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -567,13 +567,12 @@ static void __init xen_init_time_common(void)
 {
 	xen_sched_clock_offset = xen_clocksource_read();
 	static_call_update(pv_steal_clock, xen_steal_clock);
-	paravirt_set_sched_clock(xen_sched_clock);
+
 	/*
 	 * Xen has paravirtualized suspend/resume and so doesn't use the common
 	 * x86 sched_clock save/restore hooks.
 	 */
-	x86_platform.save_sched_clock_state = NULL;
-	x86_platform.restore_sched_clock_state = NULL;
+	paravirt_set_sched_clock(xen_sched_clock, NULL, NULL);
 
 	tsc_register_calibration_routines(xen_tsc_khz, NULL);
 	x86_platform.get_wallclock = xen_get_wallclock;
diff --git a/drivers/clocksource/hyperv_timer.c b/drivers/clocksource/hyperv_timer.c
index ac1d9f9c381c..dee59ce61c29 100644
--- a/drivers/clocksource/hyperv_timer.c
+++ b/drivers/clocksource/hyperv_timer.c
@@ -553,10 +553,8 @@ static void hv_restore_sched_clock_state(void)
 static __always_inline void hv_setup_sched_clock(void *sched_clock)
 {
 	/* We're on x86/x64 *and* using PV ops */
-	paravirt_set_sched_clock(sched_clock);
-
-	x86_platform.save_sched_clock_state = hv_save_sched_clock_state;
-	x86_platform.restore_sched_clock_state = hv_restore_sched_clock_state;
+	paravirt_set_sched_clock(sched_clock, hv_save_sched_clock_state,
+				 hv_restore_sched_clock_state);
 }
 #else /* !CONFIG_GENERIC_SCHED_CLOCK && !CONFIG_PARAVIRT */
 static __always_inline void hv_setup_sched_clock(void *sched_clock) {}
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310445.1581363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyAW-0006pM-JG; Fri, 15 May 2026 19:25:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310445.1581363; Fri, 15 May 2026 19:25:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyAW-0006p7-Ee; Fri, 15 May 2026 19:25:56 +0000
Received: by outflank-mailman (input) for mailman id 1310445;
 Fri, 15 May 2026 19:25:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3FHIHagYKCW0dPLYUNRZZRWP.NZXiPY-OPgPWWTded.iPYacZUPNe.ZcR@flex--seanjc.bounces.google.com>)
 id 1wNyAV-0006lk-JZ
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNyAU-009QgV-Ve
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:54 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3FHIHagYKCW0dPLYUNRZZRWP.NZXiPY-OPgPWWTded.iPYacZUPNe.ZcR@flex--seanjc.bounces.google.com>)
 id 6a077318-e002-0a2a0a5209dd-0a2a450c9a16-48
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:54 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3FHIHagYKCW0dPLYUNRZZRWP.NZXiPY-OPgPWWTded.iPYacZUPNe.ZcR@flex--seanjc.bounces.google.com>)
 id 6a077215-62f1-0a2a450c0019-d155d6caadc5-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:54 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2baf7748d0aso1728035ad.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872853; x=1779477653; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=KhBZEy0/QKSWfL+Tze5jxYQtO7z6AVGLrSR5LBAuSZ4=;
        b=ifSz7xOtZD5lXSlk45xfJ8dX9fzV9EuJRL04SukQDcTHhXtI/vBk8HGTN5g5JJPSSQ
         r0yaawL4inzcm0WNt1DSYPB+Sz0IYzgqWq0bCZvXD4Dj7lF7Dh413PTSZwGctvr1adrN
         u4m0WDL7dxatFtKM97mC32rJBicpXHshX1aDcz++A2wlsmZxUZajgl1R0EXJS5fiOA8t
         m+Dt5yiVuhkR0c+eOAd9JTrqus6u1y0QwwjH00C3sZ1cpYeIM0V99QD4hGvu1l4K4i8O
         7Ta9B9UZKm4dW803uTCDFURxsyTMcE7CU7KXhOMf9nf34WPZ9mWhoUotv/XZhlIdkE55
         8hKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872853; x=1779477653;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=KhBZEy0/QKSWfL+Tze5jxYQtO7z6AVGLrSR5LBAuSZ4=;
        b=VqjD0JjdbwzwIKEKyqUM5Cmz2d9B5dAvEdBT/o44iUlgB07vgQ0UKchpTEkgcIgaq4
         XzYrmlxjO/ZymGHcQ6yU+VQ6NAWcbiNPfmlAWVuiYE5Lt73Ena44GEDcODW18+0uKEfF
         vZzYPs41R/UWFR4bP1I4Ekoo4Upi69CK9JIZ/mF2gWgOHDDQT/+E9z65GyAjtc2dOHoy
         u17v6B3ar7IVMQOmtJkilhzLoJ5bVo0WYx33oXw9AQZuXBxSSfMOdj0Jpleg26fqGYXq
         9wHA2DNyvAHaxkn+IZ4hUKMPyBIsBWV+09byqQu752oH0hYfLSWBOpEtvkMtN6KjCt28
         lvAQ==
X-Forwarded-Encrypted: i=1; AFNElJ/DT4CK+uoAOot6fkHzZd+P8LLdVxMHEMVI58uzaWh4BoVG8ASbjBOJR8GSltqyinz8TX9uF393Nfo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzT2qhDgp90vVF3YMv9s0WxhAFz8GtGqspSwLVTI+9yeYVs3EIG
	MXokrAGCTPmX50lHDzzwyWxXY2JW5kh6YrGTbf4FsxsPCLKdUS3Bvp/68vjaRotPceQODLL4u8Q
	WKL36KQ==
X-Received: from plbmo16.prod.google.com ([2002:a17:903:a90:b0:2ab:194e:4d54])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:3c28:b0:2ba:bfb5:9cc
 with SMTP id d9443c01a7336-2bd7e8d3b9fmr61656605ad.26.1778872852484; Fri, 15
 May 2026 12:20:52 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:21 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-21-seanjc@google.com>
Subject: [PATCH v3 20/41] x86/xen/time: Mark xen_setup_vsyscall_time_info() as __init
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-d25034/1778872854-E3171CF5-6E1AC557/0/0
X-purgate-type: clean
X-purgate-size: 829

Annotate xen_setup_vsyscall_time_info() as being used only during kernel
initialization; it's called only by xen_time_init(), which is already
tagged __init.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/xen/time.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index ee7095febfd1..f087bb76457d 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -444,7 +444,7 @@ void xen_restore_time_memory_area(void)
 	xen_sched_clock_offset = xen_clocksource_read() - xen_clock_value_saved;
 }
 
-static void xen_setup_vsyscall_time_info(void)
+static void __init xen_setup_vsyscall_time_info(void)
 {
 	struct vcpu_register_time_memory_area t;
 	struct pvclock_vsyscall_time_info *ti;
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:25:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:25:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310447.1581372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyAZ-00077c-25; Fri, 15 May 2026 19:25:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310447.1581372; Fri, 15 May 2026 19:25:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyAY-00077T-TB; Fri, 15 May 2026 19:25:58 +0000
Received: by outflank-mailman (input) for mailman id 1310447;
 Fri, 15 May 2026 19:25:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3FnIHagYKCW8fRNaWPTbbTYR.PbZkRa-QRiRYYVfgf.kRacebWRPg.beT@flex--seanjc.bounces.google.com>)
 id 1wNyAX-00070z-MK
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNyAX-001Io4-2j
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:57 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3FnIHagYKCW8fRNaWPTbbTYR.PbZkRa-QRiRYYVfgf.kRacebWRPg.beT@flex--seanjc.bounces.google.com>)
 id 6a07733e-bab6-0a2a0a5309dd-0a2a450a9760-16
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:57 +0200
Received: from [209.85.215.202] (helo=mail-pg1-f202.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3FnIHagYKCW8fRNaWPTbbTYR.PbZkRa-QRiRYYVfgf.kRacebWRPg.beT@flex--seanjc.bounces.google.com>)
 id 6a077217-56b3-0a2a450a0019-d155d7cae871-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:56 +0200
Received: by mail-pg1-f202.google.com with SMTP id
 41be03b00d2f7-c82ba4715b6so177092a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872855; x=1779477655; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=BtD3/8r1rxxPL0bRTCD1R2r93qIzEoWuEeKvRfTm7KE=;
        b=HsDsOJ5TmzzZjymMZsul4uHCQN/rnP6CZBrRU3MFmPwDHLd6cFqaI/7aUEQgYIgMTv
         2nFQ1y8+Z8fhbxSadnw+tcURbNYqztfkxD0asPvyGKXrlM9SJMRcmEzqPMgWP1OhCsnN
         QSe/B9n0kBrdwIypcwPiXsSM/d+dAiusTEK0pxbOJppIOsIzq6cz1t0rzNgh/730QraG
         Mr2DXe2SKF/vV+3fa4412O3jnIYPNVWgkUKqSU5H8kY+02iI6w9u1r4wkyOyVeab9bGs
         odCd+odxfEnsr5l7R87Bc2KyT540Dir9h4boiY4QdfI5ZACCFulKd5ac4xqjij6g7x9L
         vvAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872855; x=1779477655;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=BtD3/8r1rxxPL0bRTCD1R2r93qIzEoWuEeKvRfTm7KE=;
        b=kRcFjw309qYfw6xRDYdbxagfUfQg9hWBTUl0Jj+45MKjjANtH93K8WUoXT50m9t7Hx
         Y4kIEUg9Vb5Bq4XSYP32L7mEf770Zd1sijzovKCGorPQ5arggqWVQveRlXAkV3oHI7Gt
         EriPdYJbWrtr4nFF9lclFS3b4KXzBq6o0m/wW53wVXzqhLXTU86en+Bskz2tG2hVZnVN
         xRxY1EMWF9E0VZMQ/3YoPaidmABEDYSQxKphOLPYNytmdDB/4VT5x8nyMWGZzB2Kajij
         KPBEny0jjDGSDqxtDbE9coqSI+sKt7pCkdqx82KcyqjI4XmwTtnQnGNXgwGMlhrG2er9
         ZRJA==
X-Forwarded-Encrypted: i=1; AFNElJ/X1RtBjOZCrbWBgxVXfU9GgeHuKkG6IcgVZR3yVdr75dFFiKXuShKQxnnAH/ZoMW1bE3iv/Mr1MNc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxXZWtO709kRpExRBpuXYPDXMj+eZ2ZvKIoQpQZbxAUB9tvyNrl
	8dfz1LLIYfvi/TOzqQqNAb7hNmludpJGQrMODI0cKaiGu9vaGvm43RSXmfpplGxebLC4koebERF
	KsW+vRA==
X-Received: from pfbly26.prod.google.com ([2002:a05:6a00:759a:b0:82f:a4cc:2fb3])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:ac86:b0:82a:805a:7e2
 with SMTP id d2e1a72fcca58-83f33c4ed90mr5838917b3a.9.1778872854522; Fri, 15
 May 2026 12:20:54 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:23 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-23-seanjc@google.com>
Subject: [PATCH v3 22/41] x86/pvclock: WARN if pvclock's valid_flags are overwritten
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-4011c0/1778872856-7357C8B7-20A91D32/13/0
X-purgate-type: clean
X-purgate-size: 730

WARN if the common PV clock valid_flags are overwritten; all PV clocks
expect that they are the one and only PV clock, i.e. don't guard against
another PV clock having modified the flags.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/pvclock.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
index a51adce67f92..8d098841a225 100644
--- a/arch/x86/kernel/pvclock.c
+++ b/arch/x86/kernel/pvclock.c
@@ -21,6 +21,7 @@ static struct pvclock_vsyscall_time_info *pvti_cpu0_va __ro_after_init;
 
 void __init pvclock_set_flags(u8 flags)
 {
+	WARN_ON(valid_flags);
 	valid_flags = flags;
 }
 
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 19:26:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 19:26:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310449.1581380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyAb-0007UP-9S; Fri, 15 May 2026 19:26:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310449.1581380; Fri, 15 May 2026 19:26:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyAb-0007UB-4i; Fri, 15 May 2026 19:26:01 +0000
Received: by outflank-mailman (input) for mailman id 1310449;
 Fri, 15 May 2026 19:25:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3F3IHagYKCXAgSObXQUccUZS.QcalSb-RSjSZZWghg.lSbdfcXSQh.cfU@flex--seanjc.bounces.google.com>)
 id 1wNyAZ-00077N-1z
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 19:25:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNyAY-001IlE-EL
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:58 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3F3IHagYKCXAgSObXQUccUZS.QcalSb-RSjSZZWghg.lSbdfcXSQh.cfU@flex--seanjc.bounces.google.com>)
 id 6a077320-2eae-0a2a0a5409dd-0a2a4503cbae-44
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:25:58 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3F3IHagYKCXAgSObXQUccUZS.QcalSb-RSjSZZWghg.lSbdfcXSQh.cfU@flex--seanjc.bounces.google.com>)
 id 6a077218-672d-0a2a45030019-d155d6c9d85a-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 21:20:57 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2b99eb06178so4590515ad.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 12:20:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1778872856; x=1779477656; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=7w7qT+Z66rWfxvtZ1IzSRlO054bgZsKsszMlQ0FarYw=;
        b=GdRZBXoDubWRQ0zH583sJDD1+A1b8/Obsly2MSkjZnIA7JiVa2wWTP8iy9t70Fm5na
         ZWnrf+923J0dEeQimmJ0rRk2axnfQj2lu5zFlq8NzqwkDmLYDkPMpgcGOGrO2t8MeiOZ
         sMEcWuFF7NOxpH0fLestiD0POJOxMC5oTV7daaYC81/CR6gRggCx+hRjqckNJ7TsB2BF
         OGupgmM+uvW7XgKn4utJ8K1L679oJViXjslYuRy8OyWs0eMJpwR408ivRLs7VabDQpCu
         kRDqpSk3oU7rvEAHo6PymmizbjUaLivOIIP+7jS3lQinIViwRgClz/00WwvcQvFn63Jc
         bTfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778872856; x=1779477656;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=7w7qT+Z66rWfxvtZ1IzSRlO054bgZsKsszMlQ0FarYw=;
        b=ViwxGkbzDMGGOjbnB3IrYu//LTRXT7gWOpvCGX8k/7nMvR+5hxaY3ltAKmejRDeP/p
         6LPU4y1F81YLCLQNuzm6oG15Y7cQlUzhGmjxi1KmD4hj6dVr0zCRBuT32hp0k0Xp7YMK
         dey0NaXiyxKJrXuFShqcb6K4VxNhwsSGzmRnMRaPAJ0kKEKVqwwVFbEUp2OLh8jPogQ1
         ZWFtsbCpJpMC5h+UurDRc4Ge45B7KkBSU46MMNeMqXBZ5wvjflUEP5E72GYqOhI0esNB
         0v/wRuyHen3tE+D9xO8NAibZdXSayKnQE8OUm9b4DlfnsrlYutggBpGZSGAUK0G7NWnp
         E5xg==
X-Forwarded-Encrypted: i=1; AFNElJ+d+P10VcNrYKS53uXPtyXt6yH9Viej+tNFVlTmIbcxUcFTHqzqNBa7H93ncOXSr4dehx8ogYqrHYE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzm2wZkTAwUPeNk1k8C6d2Nndh46qjHLRMtRaXWw4/pyqFlj6Wo
	EgP2ks5/wIWsKsbYsFmMsJXaGlawivxbXLqyWgaJ1hZW2jOtus2UETPizi69KGnjfilVYwimBO4
	PcYBWfw==
X-Received: from plcm4.prod.google.com ([2002:a17:902:f204:b0:2b0:b12e:1b07])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:ee09:b0:2b4:62bd:ee3
 with SMTP id d9443c01a7336-2bd7e937a4bmr42674815ad.33.1778872855638; Fri, 15
 May 2026 12:20:55 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 15 May 2026 12:19:24 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog
Message-ID: <20260515191942.1892718-24-seanjc@google.com>
Subject: [PATCH v3 23/41] x86/kvmclock: Refactor handling of
 PVCLOCK_TSC_STABLE_BIT during kvmclock_init()
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	Sean Christopherson <seanjc@google.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-33051d/1778872858-41794938-29D1E97F/0/0
X-purgate-type: clean
X-purgate-size: 1806

Clean up the setting of PVCLOCK_TSC_STABLE_BIT during kvmclock init to
make it somewhat obvious that pvclock_read_flags() must be called *after*
pvclock_set_flags().

Note, in theory, a different PV clock could have set PVCLOCK_TSC_STABLE_BIT
in the supported flags, i.e. reading flags only if
KVM_FEATURE_CLOCKSOURCE_STABLE_BIT is set could very, very theoretically
result in a change in behavior.  In practice, the kernel only supports a
single PV clock.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 8df6adcd6cd8..ccb2aff89b2f 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -306,7 +306,7 @@ static __init void kvm_sched_clock_init(bool stable)
 
 void __init kvmclock_init(void)
 {
-	u8 flags;
+	bool stable = false;
 
 	if (!kvm_para_available() || !kvmclock)
 		return;
@@ -333,11 +333,18 @@ void __init kvmclock_init(void)
 	kvm_register_clock("primary cpu clock");
 	pvclock_set_pvti_cpu0_va(hv_clock_boot);
 
-	if (kvm_para_has_feature(KVM_FEATURE_CLOCKSOURCE_STABLE_BIT))
+	if (kvm_para_has_feature(KVM_FEATURE_CLOCKSOURCE_STABLE_BIT)) {
 		pvclock_set_flags(PVCLOCK_TSC_STABLE_BIT);
 
-	flags = pvclock_read_flags(&hv_clock_boot[0].pvti);
-	kvm_sched_clock_init(flags & PVCLOCK_TSC_STABLE_BIT);
+		/*
+		 * Check if the clock is stable *after* marking TSC_STABLE as a
+		 * valid flag.
+		 */
+		stable = pvclock_read_flags(&hv_clock_boot[0].pvti) &
+			 PVCLOCK_TSC_STABLE_BIT;
+	}
+
+	kvm_sched_clock_init(stable);
 
 	tsc_register_calibration_routines(kvm_get_tsc_khz, kvm_get_tsc_khz);
 
-- 
2.54.0.563.g4f69b47b94-goog



From xen-devel-bounces@lists.xenproject.org Fri May 15 20:10:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 20:10:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310529.1581389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyr6-0006R1-E6; Fri, 15 May 2026 20:09:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310529.1581389; Fri, 15 May 2026 20:09:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wNyr6-0006Qu-Ac; Fri, 15 May 2026 20:09:56 +0000
Received: by outflank-mailman (input) for mailman id 1310529;
 Fri, 15 May 2026 20:09:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <pr-tracker-bot@kernel.org>) id 1wNyr5-0006Qm-G7
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 20:09:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wNyr4-002IP9-SZ
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 22:09:54 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <pr-tracker-bot@kernel.org>)
 id 6a077ce3-bab6-0a2a0a5309dd-0a2a4501e286-48
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 22:09:54 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <pr-tracker-bot@kernel.org>)
 id 6a077d91-c1f2-0a2a45010019-aceafc1f982a-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 22:09:54 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id A964A41A82;
 Fri, 15 May 2026 20:09:52 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8D942C2BCC7;
 Fri, 15 May 2026 20:09:52 +0000 (UTC)
Received: from [10.30.226.235] (localhost [IPv6:::1])
 by aws-us-west-2-korg-oddjob-rhel9-1.codeaurora.org (Postfix) with ESMTP id
 198953930A08; Fri, 15 May 2026 20:10:07 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Subject:From:In-Reply-To:References:Date:To:Cc"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778875792;
	bh=Jpo5cAcPIqiEuvJJmcqYaYUh19IoUNTWvZHKdkp974U=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=ETFxj9DfueE9AXQ3v0RpmbNNfi0V/7HmOc8V3BRwgvnU4sHdxcIcRQtvONSvufx96
	 +LVoQ83ONgdFIQ7/9fJJrdk/A3HdtFM7KzDDAKPlyVtkLPIKc1aLTsWKbYFqNx3vBa
	 r3AvxSL1QHVXgDBXw0e++Y0pGLCXR0FxIGo/wvnvkLBreo1GY7qdcU25Y+EvPnoYUC
	 PB09Wf8TKRsNWLT+TR6MaOFXY/a8sqKy6AyfINQxNNe12I+7+9YP5KNwHz0l66ctdq
	 3gS67VPduUnbdCFWiaKUgmaYFUsGoy5rLscTgoPJci7bc+jUmYmwcKef9wzbbiHD0b
	 Zoqf8BYcpXnwA==
Subject: Re: [GIT PULL] xen: branch for v7.1-rc4
From: pr-tracker-bot@kernel.org
In-Reply-To: <20260515130004.1571139-1-jgross@suse.com>
References: <20260515130004.1571139-1-jgross@suse.com>
X-PR-Tracked-List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
X-PR-Tracked-Message-Id: <20260515130004.1571139-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-7.1b-rc4-tag
X-PR-Tracked-Commit-Id: 4594437880ce347ac8438758fd91543f70da1aa9
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: 4844e7c4c2697afe63f2b925e2384e0c724cb2be
Message-Id: <177887580600.138467.1546973588089628432.pr-tracker-bot@kernel.org>
Date: Fri, 15 May 2026 20:10:06 +0000
To: Juergen Gross <jgross@suse.com>
Cc: torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, sstabellini@kernel.org
X-purgate-ID: tlsNG-d62444/1778875794-AFB56FF4-0289A142/0/0
X-purgate-type: clean
X-purgate-size: 363

The pull request you sent on Fri, 15 May 2026 15:00:04 +0200:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-7.1b-rc4-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/4844e7c4c2697afe63f2b925e2384e0c724cb2be

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Fri May 15 21:26:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 21:26:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310557.1581397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wO02X-00067G-D9; Fri, 15 May 2026 21:25:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310557.1581397; Fri, 15 May 2026 21:25:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wO02X-000679-A6; Fri, 15 May 2026 21:25:49 +0000
Received: by outflank-mailman (input) for mailman id 1310557;
 Fri, 15 May 2026 21:25:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wO02W-000673-GD
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:25:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wO02V-001VIl-RL
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 23:25:47 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a078f5b-2eae-0a2a0a5409dd-0a2a4504c264-0
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 23:25:47 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a078f5a-1dec-0a2a45040019-ac6904fedd2e-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 23:25:47 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 433F5601DD;
 Fri, 15 May 2026 21:25:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9F035C2BCB0;
 Fri, 15 May 2026 21:25:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778880346;
	bh=GhW4Dk2BgygGXnxKS9gHnxr20HQ2i5f7n46m6kjDIEk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=t+qUiEUEkNnz2SZyftvVKlnyhn5hFUtZo4glrBGv83wT4DxIpRAazqVPnyZLzmA30
	 zYy5ielb0nGV0LBSpJ8JGMPPukToEup398D/P5eTBrxs4h+w2NmvpuJidiW8Pgqz00
	 dSRM24lOhccSg+Wsj/MUfV2eBMwirT2V3SaJAFB8f/K2Q78n74Opbs6xlcrDhD5y4/
	 qPJh8sMgVGgc8jqRk2wN5twAiCUoDHyfMrENFbmdP0OQkC2XQCxwYueLB0FnDzkYGE
	 LvjZQNjdWRbPacm1W7cOBbrX5rv7N2SsY+NKgbUUet+5qs8HF8AcmCq/w5AOzY1uDm
	 oUw1HWM1JiLbw==
Date: Fri, 15 May 2026 14:25:41 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
cc: dmukhin@ford.com, xen-devel@lists.xenproject.org, 
    andrew.cooper3@citrix.com, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    anthony.perard@vates.tech
Subject: Re: [PATCH v8] xen/domain: introduce DOMID_ANY
In-Reply-To: <1778680300.8631fc262581453bbf619ec5b2062170.19e219b849d000f373@vates.tech>
Message-ID: <alpine.DEB.2.22.394.2605151424030.52999@ubuntu-linux-20-04-desktop>
References: <20260507202840.293269-1-dmukhin@ford.com> <1778680300.8631fc262581453bbf619ec5b2062170.19e219b849d000f373@vates.tech>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-ebf023/1778880347-2BD6C3FF-C6A3EBE2/0/0
X-purgate-type: clean
X-purgate-size: 1572

This patch has been around for a long time and has gone through the
ci-loop multiple times. I think it is low risk.

Oleksii, can we have a release ack for this?


On Wed, 13 May 2026, Anthony PERARD wrote:
> On Thu, May 07, 2026 at 01:28:40PM -0700, dmukhin@ford.com wrote:
> > From: Denis Mukhin <dmukhin@ford.com> 
> > 
> > Add a new symbol DOMID_ANY to improve the readability of the code.
> > 
> > Update all relevant domid_alloc() call sites and harden the domid_alloc()
> > input value check.
> > 
> > Also, fix problem with passing invalid domain IDs in
> > XEN_DOMCTL_createdomain: turns out libxl__domain_make() (toolstack)
> > uses 0xffff as domain ID.
> > 
> > Fix failing tools tests too.
> > 
> > Amends: 2d5065060710 ("xen/domain: unify domain ID allocation")
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v7:
> > - aligned the DOMID_ANY comment with another patch sent separately to
> >   unblock xenstore series: https://lore.kernel.org/xen-devel/20260429120619.1013440-2-jgross@suse.com/
> > - added fixups to mem-claim, paging-mempool, resource and tsx tests.
> > - Link to v7: https://lore.kernel.org/xen-devel/20260408234046.1314021-1-dmukhin@ford.com/
> > - Link to full CI: https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/2508345752
> 
> For the tools part:
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
> 
> Thanks,
> 
> 
> --
> Anthony Perard | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Fri May 15 21:35:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 21:35:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310565.1581408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wO0Bo-0007vT-7K; Fri, 15 May 2026 21:35:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310565.1581408; Fri, 15 May 2026 21:35:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wO0Bo-0007vM-3X; Fri, 15 May 2026 21:35:24 +0000
Received: by outflank-mailman (input) for mailman id 1310565;
 Fri, 15 May 2026 21:35:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wO0Bn-0007vG-02
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:35:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wO0Bj-009dCH-84
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 23:35:19 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a07915d-e002-0a2a0a5209dd-0a2a4502ca5c-30
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 23:35:19 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a079195-af86-0a2a45020019-aceafc1f8bfe-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 23:35:19 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id EE03F42AA5;
 Fri, 15 May 2026 21:35:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8470BC2BCB0;
 Fri, 15 May 2026 21:35:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778880916;
	bh=ftlewtpiRRoR/qom8h5/jd2k/GrWT6YH1B/pN2hcQqI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=pTU9a3SiwqlhBWPW9w1mwn2zAJA7nimm3DoniIaNSHThP9BctlZntIDAIiQcYWREK
	 AOnJ+bdIQ6pzEQICCH2/+ZLTuyrVVuwQL8fpJh/DEgBxON0P4rXySiudU1QII3xexH
	 LCGtf8zbMOv298GvxsZzMWKPQ1yD1Sih5NLiYGPFlmmUCaucULzvWijkkh1D7OiMFh
	 Q1A/wjyFCl9JW8qME65CtYIOJHEGIkQwJSGxY8DzB1gyXUZyc3aGwEOuN2GIx3C5Er
	 gAg7TSKcOogYK7IykI6+eSJbl+EfzcOa4LSdkGrb3Lzs9fbQg56U5IYkGPXQxDmwHd
	 hdGbA9GcHPuzQ==
Date: Fri, 15 May 2026 14:35:15 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <Luca.Fancellu@arm.com>
cc: Mykola Kvach <xakep.amatop@gmail.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Mykola Kvach <mykola_kvach@epam.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <Bertrand.Marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, oleksii.kurochko@gmail.com
Subject: Re: [PATCH] arm/gicv3: Detect normal NC ITS command queues
In-Reply-To: <05997446-AB81-433D-84D9-48A5FBE1D62D@arm.com>
Message-ID: <alpine.DEB.2.22.394.2605151434470.52999@ubuntu-linux-20-04-desktop>
References: <4d72da78b9c30f5da62c8e03c3b03a01c24101eb.1778836836.git.mykola_kvach@epam.com> <05997446-AB81-433D-84D9-48A5FBE1D62D@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-720697/1778880919-8057B161-A0FE682A/0/0
X-purgate-type: clean
X-purgate-size: 1813

Oleksii, can we have a release ack on this fix?

On Fri, 15 May 2026, Luca Fancellu wrote:
> Hi Mykola,
> 
> > On 15 May 2026, at 10:40, Mykola Kvach <xakep.amatop@gmail.com> wrote:
> > 
> > From: Mykola Kvach <mykola_kvach@epam.com>
> > 
> > GITS_CBASER.InnerCache uses the GIC BASER cacheability encoding.
> > Both 0b000 (Device-nGnRnE) and 0b001 (Normal Inner
> > Non-cacheable) describe non-cacheable accesses to the command queue.
> > 
> > its_map_cbaser() only checked whether the shifted field was zero,
> > so an ITS that reports Normal Inner Non-cacheable would not set
> > HOST_ITS_FLUSH_CMD_QUEUE. Decode the field before comparing it with
> > the unshifted enum value, matching the handling of ITS BASER tables
> > and GICR_PROPBASER.
> > 
> > Fixes: 8ed8d21373be ("ARM: GICv3 ITS: map ITS command buffer")
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > xen/arch/arm/gic-v3-its.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> > index 9005ce8ce5..7560d46c6d 100644
> > --- a/xen/arch/arm/gic-v3-its.c
> > +++ b/xen/arch/arm/gic-v3-its.c
> > @@ -424,7 +424,8 @@ static void *its_map_cbaser(struct host_its *its)
> >      * If the command queue memory is mapped as uncached, we need to flush
> >      * it on every access.
> >      */
> > -    if ( !(reg & GITS_BASER_INNER_CACHEABILITY_MASK) )
> > +    if ( MASK_EXTR(reg, GITS_BASER_INNER_CACHEABILITY_MASK) <=
> > +         GIC_BASER_CACHE_nC )
> >     {
> >         its->flags |= HOST_ITS_FLUSH_CMD_QUEUE;
> >         printk(XENLOG_WARNING "using non-cacheable ITS command queue\n");
> > -- 
> > 2.43.0
> > 
> > 
> 
> Looks ok to me
> 
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>



From xen-devel-bounces@lists.xenproject.org Fri May 15 21:36:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 May 2026 21:36:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310571.1581416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wO0DI-0008Q3-GQ; Fri, 15 May 2026 21:36:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310571.1581416; Fri, 15 May 2026 21:36:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wO0DI-0008Pw-DR; Fri, 15 May 2026 21:36:56 +0000
Received: by outflank-mailman (input) for mailman id 1310571;
 Fri, 15 May 2026 21:36:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wO0DH-0008Po-3Q
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 21:36:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wO0DG-002BwX-CK
 for xen-devel@lists.xenproject.org; Fri, 15 May 2026 23:36:54 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a0791c8-5cb7-0a2a0a5109dd-0a2a4502deda-14
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 23:36:54 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a0791f5-af86-0a2a45020019-ac6904fea8a2-3
 for <xen-devel@lists.xenproject.org>; Fri, 15 May 2026 23:36:54 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id C468C60154;
 Fri, 15 May 2026 21:36:52 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 29F7FC2BCB0;
 Fri, 15 May 2026 21:36:52 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1778881012;
	bh=0yI/Ou+ei5OsZY0tsbVqoyZGFwt4ifG4mR08ru/hFn0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=CzxMEKWtmGG6Y9ylpTeXWvoaqzM+HYBRlzTXUSTVE0lg2W4iaSOo9ztc5iAiLspFA
	 t3pJULCWhyP0EQ4D7AHKoTwSNzzB0HvvQpfihpCMP1l2qDDSqTDDLiz0NGvJr5dfvv
	 WcwVVvVlmXFm+ElvXapwPwo89sXLQwfQnfQjQHx1CoXYZQ0+Ha0xg4gZZrukSVguVF
	 X9IUW6VQ1hTH7Qh9vBfCDNX0fmmiArYiqwFuA132TOkTqEXQegBTa+Vmvl5DbsCRfZ
	 ec890Pok/kPjdldxXv7MwRLNj5cEq8VFXpLBf6u2nqtmHaLAbFqy2idOdZA22fMEkc
	 mUQ94bVgHvjKw==
Date: Fri, 15 May 2026 14:36:51 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <Luca.Fancellu@arm.com>
cc: Mykola Kvach <xakep.amatop@gmail.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Mykola Kvach <mykola_kvach@epam.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <Bertrand.Marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, oleksii.kurochko@gmail.com
Subject: Re: [PATCH] xen/arm: gic-v3: Wait for redistributor RWP using the
 right bit
In-Reply-To: <EDF5B3D9-F532-4D8E-B156-172649433AE9@arm.com>
Message-ID: <alpine.DEB.2.22.394.2605151436280.52999@ubuntu-linux-20-04-desktop>
References: <0fc5e4d297b8dde66ea36be3ebd60a68dea2562d.1778749474.git.mykola_kvach@epam.com> <EDF5B3D9-F532-4D8E-B156-172649433AE9@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-720697/1778881014-AA374161-F65D886F/0/0
X-purgate-type: clean
X-purgate-size: 1278

Oleksii, can we have a release ack for this fix?

On Fri, 15 May 2026, Luca Fancellu wrote:
> Hi Mykola,
> 
> > On 14 May 2026, at 10:08, Mykola Kvach <xakep.amatop@gmail.com> wrote:
> > 
> > From: Mykola Kvach <mykola_kvach@epam.com>
> > 
> > gicv3_do_wait_for_rwp() is used for both distributor and
> > redistributor writes. The CTLR register is at offset 0 for both,
> > but the RWP bit is not in the same position.
> > 
> > For GICD_CTLR, RWP is bit 31. For GICR_CTLR, bit 31 is UWP,
> > while RWP is bit 3. The redistributor wait path was therefore
> > polling UWP instead of RWP.
> > 
> > UWP covers upstream writes, including Generate SGI packets, and is
> > not a substitute for redistributor register write completion. The
> > existing redistributor callers need RWP semantics for redistributor
> > register writes such as GICR_ICENABLER0 and GICR_CTLR updates.
> > 
> > Add GICR_CTLR_RWP and pass the expected RWP bit to the shared
> > helper.
> > 
> > Fixes: bc183a0235e ("xen/arm: Add support for GIC v3")
> > Reported-by: Luca Fancellu <luca.fancellu@arm.com>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> 
> This looks ok to me
> 
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> 
> Cheers,
> Luca
> 


From xen-devel-bounces@lists.xenproject.org Sat May 16 07:43:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 May 2026 07:43:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310706.1581425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wO9fa-0006xQ-NO; Sat, 16 May 2026 07:42:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310706.1581425; Sat, 16 May 2026 07:42:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wO9fa-0006xJ-Kj; Sat, 16 May 2026 07:42:46 +0000
Received: by outflank-mailman (input) for mailman id 1310706;
 Sat, 16 May 2026 07:42:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <pbonzini@redhat.com>) id 1wO9fZ-0006xD-9H
 for xen-devel@lists.xenproject.org; Sat, 16 May 2026 07:42:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wO9fY-00CepP-AR
 for xen-devel@lists.xenproject.org; Sat, 16 May 2026 09:42:44 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <pbonzini@redhat.com>)
 id 6a081fca-e002-0a2a0a5209dd-0a2a450bd0be-16
 for <xen-devel@lists.xenproject.org>; Sat, 16 May 2026 09:42:44 +0200
Received: from [170.10.129.124] (helo=us-smtp-delivery-124.mimecast.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <pbonzini@redhat.com>)
 id 6a081ff2-212f-0a2a450b0019-aa0a817ce189-3
 for <xen-devel@lists.xenproject.org>; Sat, 16 May 2026 09:42:43 +0200
Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-111-C2qozkjxOF6c4Hglw-NMVQ-1; Sat,
 16 May 2026 03:42:38 -0400
Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 39F2518005B2; Sat, 16 May 2026 07:42:34 +0000 (UTC)
Received: from [10.44.32.24] (unknown [10.44.32.24])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 0353F180034E; Sat, 16 May 2026 07:42:22 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mimecast20190719 header.d=redhat.com header.i="@redhat.com" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:In-Reply-To:References:Autocrypt"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1778917362;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=ZuYuwk7J/15Ge1PYKnSZO6EKNDeWPqqx6skfRaS0DUA=;
	b=Y4yle8ABpHncRfbAYwgDeECEjKnVSAGjBsC54sB/92rJi0m7+j+xcewE34gbVa6nsajkKR
	Z6Z+jdPc88uHC3r1JJQw4GmmD20DI9kCCYbQ0/bFUx5Y7k3gc/JCqZ81wjIke21z/VC31E
	eNBWIA5AfmjSBjxVoY+YF1BqOTmg/UA=
X-MC-Unique: C2qozkjxOF6c4Hglw-NMVQ-1
X-Mimecast-MFC-AGG-ID: C2qozkjxOF6c4Hglw-NMVQ_1778917355
Message-ID: <3cb683b4-973a-4b3e-a5d5-a8baa8a70eb0@redhat.com>
Date: Sat, 16 May 2026 09:42:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 40/41] x86/tsc: Add standalone helper for getting CPU
 frequency from CPUID
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>, "K. Y. Srinivasan" <kys@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
 Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>,
 Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Jan Kiszka <jan.kiszka@siemens.com>,
 Dave Hansen <dave.hansen@linux.intel.com>, Andy Lutomirski
 <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano <daniel.lezcano@kernel.org>,
 Thomas Gleixner <tglx@kernel.org>, John Stultz <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>,
 Vitaly Kuznetsov <vkuznets@redhat.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd
 <sboyd@kernel.org>, x86@kernel.org, linux-coco@lists.linux.dev,
 kvm@vger.kernel.org, linux-hyperv@vger.kernel.org,
 virtualization@lists.linux.dev, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>,
 Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>,
 Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
References: <20260515191942.1892718-1-seanjc@google.com>
 <20260515191942.1892718-41-seanjc@google.com>
From: Paolo Bonzini <pbonzini@redhat.com>
Autocrypt: addr=pbonzini@redhat.com; keydata=
 xsEhBFRCcBIBDqDGsz4K0zZun3jh+U6Z9wNGLKQ0kSFyjN38gMqU1SfP+TUNQepFHb/Gc0E2
 CxXPkIBTvYY+ZPkoTh5xF9oS1jqI8iRLzouzF8yXs3QjQIZ2SfuCxSVwlV65jotcjD2FTN04
 hVopm9llFijNZpVIOGUTqzM4U55sdsCcZUluWM6x4HSOdw5F5Utxfp1wOjD/v92Lrax0hjiX
 DResHSt48q+8FrZzY+AUbkUS+Jm34qjswdrgsC5uxeVcLkBgWLmov2kMaMROT0YmFY6A3m1S
 P/kXmHDXxhe23gKb3dgwxUTpENDBGcfEzrzilWueOeUWiOcWuFOed/C3SyijBx3Av/lbCsHU
 Vx6pMycNTdzU1BuAroB+Y3mNEuW56Yd44jlInzG2UOwt9XjjdKkJZ1g0P9dwptwLEgTEd3Fo
 UdhAQyRXGYO8oROiuh+RZ1lXp6AQ4ZjoyH8WLfTLf5g1EKCTc4C1sy1vQSdzIRu3rBIjAvnC
 tGZADei1IExLqB3uzXKzZ1BZ+Z8hnt2og9hb7H0y8diYfEk2w3R7wEr+Ehk5NQsT2MPI2QBd
 wEv1/Aj1DgUHZAHzG1QN9S8wNWQ6K9DqHZTBnI1hUlkp22zCSHK/6FwUCuYp1zcAEQEAAc0j
 UGFvbG8gQm9uemluaSA8cGJvbnppbmlAcmVkaGF0LmNvbT7CwU0EEwECACMFAlRCcBICGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRB+FRAMzTZpsbceDp9IIN6BIA0Ol7MoB15E
 11kRz/ewzryFY54tQlMnd4xxfH8MTQ/mm9I482YoSwPMdcWFAKnUX6Yo30tbLiNB8hzaHeRj
 jx12K+ptqYbg+cevgOtbLAlL9kNgLLcsGqC2829jBCUTVeMSZDrzS97ole/YEez2qFpPnTV0
 VrRWClWVfYh+JfzpXmgyhbkuwUxNFk421s4Ajp3d8nPPFUGgBG5HOxzkAm7xb1cjAuJ+oi/K
 CHfkuN+fLZl/u3E/fw7vvOESApLU5o0icVXeakfSz0LsygEnekDbxPnE5af/9FEkXJD5EoYG
 SEahaEtgNrR4qsyxyAGYgZlS70vkSSYJ+iT2rrwEiDlo31MzRo6Ba2FfHBSJ7lcYdPT7bbk9
 AO3hlNMhNdUhoQv7M5HsnqZ6unvSHOKmReNaS9egAGdRN0/GPDWr9wroyJ65ZNQsHl9nXBqE
 AukZNr5oJO5vxrYiAuuTSd6UI/xFkjtkzltG3mw5ao2bBpk/V/YuePrJsnPFHG7NhizrxttB
 nTuOSCMo45pfHQ+XYd5K1+Cv/NzZFNWscm5htJ0HznY+oOsZvHTyGz3v91pn51dkRYN0otqr
 bQ4tlFFuVjArBZcapSIe6NV8C4cEiSTOwE0EVEJx7gEIAMeHcVzuv2bp9HlWDp6+RkZe+vtl
 KwAHplb/WH59j2wyG8V6i33+6MlSSJMOFnYUCCL77bucx9uImI5nX24PIlqT+zasVEEVGSRF
 m8dgkcJDB7Tps0IkNrUi4yof3B3shR+vMY3i3Ip0e41zKx0CvlAhMOo6otaHmcxr35sWq1Jk
 tLkbn3wG+fPQCVudJJECvVQ//UAthSSEklA50QtD2sBkmQ14ZryEyTHQ+E42K3j2IUmOLriF
 dNr9NvE1QGmGyIcbw2NIVEBOK/GWxkS5+dmxM2iD4Jdaf2nSn3jlHjEXoPwpMs0KZsgdU0pP
 JQzMUMwmB1wM8JxovFlPYrhNT9MAEQEAAcLBMwQYAQIACQUCVEJx7gIbDAAKCRB+FRAMzTZp
 sadRDqCctLmYICZu4GSnie4lKXl+HqlLanpVMOoFNnWs9oRP47MbE2wv8OaYh5pNR9VVgyhD
 OG0AU7oidG36OeUlrFDTfnPYYSF/mPCxHttosyt8O5kabxnIPv2URuAxDByz+iVbL+RjKaGM
 GDph56ZTswlx75nZVtIukqzLAQ5fa8OALSGum0cFi4ptZUOhDNz1onz61klD6z3MODi0sBZN
 Aj6guB2L/+2ZwElZEeRBERRd/uommlYuToAXfNRdUwrwl9gRMiA0WSyTb190zneRRDfpSK5d
 usXnM/O+kr3Dm+Ui+UioPf6wgbn3T0o6I5BhVhs4h4hWmIW7iNhPjX1iybXfmb1gAFfjtHfL
 xRUr64svXpyfJMScIQtBAm0ihWPltXkyITA92ngCmPdHa6M1hMh4RDX+Jf1fiWubzp1voAg0
 JBrdmNZSQDz0iKmSrx8xkoXYfA3bgtFN8WJH2xgFL28XnqY4M6dLhJwV3z08tPSRqYFm4NMP
 dRsn0/7oymhneL8RthIvjDDQ5ktUjMe8LtHr70OZE/TT88qvEdhiIVUogHdo4qBrk41+gGQh
 b906Dudw5YhTJFU3nC6bbF2nrLlB4C/XSiH76ZvqzV0Z/cAMBo5NF/w=
In-Reply-To: <20260515191942.1892718-41-seanjc@google.com>
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111
X-Mimecast-MFC-PROC-ID: ibwQT72NlQgiYDuBQhexYWejXBhRkpwrdJ5xW0dr9mw_1778917355
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1778917364-1BF7EF3B-4DB72D10/0/0
X-purgate-type: clean
X-purgate-size: 3678

On 5/15/26 21:19, Sean Christopherson wrote:
> Extract the guts of cpu_khz_from_cpuid() to a standalone helper that
> doesn't restrict the usage to Intel CPUs.  This will allow sharing the
> core logic with kvmclock, as (a) CPUID.0x16 may be enumerated alongside
> kvmclock, and (b) KVM generally doesn't restrict CPUID based on vendor.

Even for native there's no real reason to restrict to Intel, I think. 
native_calibrate_tsc() only limits itself because historically (prior to 
commit 604dc9170f24, "x86/tsc: Use CPUID.0x16 to calculate missing 
crystal frequency", 2019-05-09) it used a hardcoded table of crystal 
frequencies.

Of course paranoia applies, but for virtualization, if the leaf exists 
there is no reason not to trust it.

Thanks,

Paolo

> No functional change intended.
> 
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> ---
>   arch/x86/include/asm/tsc.h |  1 +
>   arch/x86/kernel/tsc.c      | 37 +++++++++++++++++++++++--------------
>   2 files changed, 24 insertions(+), 14 deletions(-)
> 
> diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h
> index f458be688512..c145f5707b52 100644
> --- a/arch/x86/include/asm/tsc.h
> +++ b/arch/x86/include/asm/tsc.h
> @@ -91,6 +91,7 @@ struct cpuid_tsc_info {
>   };
>   extern int cpuid_get_tsc_info(struct cpuid_tsc_info *info);
>   extern int cpuid_get_tsc_freq(struct cpuid_tsc_info *info);
> +extern int cpuid_get_cpu_freq(unsigned int *cpu_khz);
>   
>   extern void tsc_early_init(void);
>   extern void tsc_init(void);
> diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
> index 1b569954ae5e..745fa2052c74 100644
> --- a/arch/x86/kernel/tsc.c
> +++ b/arch/x86/kernel/tsc.c
> @@ -719,6 +719,24 @@ int cpuid_get_tsc_freq(struct cpuid_tsc_info *info)
>   	return 0;
>   }
>   
> +int cpuid_get_cpu_freq(unsigned int *cpu_khz)
> +{
> +	unsigned int eax_base_mhz, ebx, ecx, edx;
> +
> +	*cpu_khz = 0;
> +
> +	if (boot_cpu_data.cpuid_level < CPUID_LEAF_FREQ)
> +		return -ENOENT;
> +
> +	cpuid(CPUID_LEAF_FREQ, &eax_base_mhz, &ebx, &ecx, &edx);
> +
> +	if (!eax_base_mhz)
> +		return -ENOENT;
> +
> +	*cpu_khz = eax_base_mhz * 1000;
> +	return 0;
> +}
> +
>   /**
>    * native_calibrate_tsc - determine TSC frequency
>    * Determine TSC frequency via CPUID, else return 0.
> @@ -754,13 +772,8 @@ unsigned long native_calibrate_tsc(void)
>   	 * clock, but we can easily calculate it to a high degree of accuracy
>   	 * by considering the crystal ratio and the CPU speed.
>   	 */
> -	if (!info.crystal_khz && boot_cpu_data.cpuid_level >= CPUID_LEAF_FREQ) {
> -		unsigned int eax_base_mhz, ebx, ecx, edx;
> -
> -		cpuid(CPUID_LEAF_FREQ, &eax_base_mhz, &ebx, &ecx, &edx);
> -		info.crystal_khz = eax_base_mhz * 1000 *
> -			info.denominator / info.numerator;
> -	}
> +	if (!info.crystal_khz && !cpuid_get_cpu_freq(&cpu_khz))
> +		info.crystal_khz = cpu_khz * info.denominator / info.numerator;
>   
>   	if (!info.crystal_khz)
>   		return 0;
> @@ -787,19 +800,15 @@ unsigned long native_calibrate_tsc(void)
>   
>   static unsigned long cpu_khz_from_cpuid(void)
>   {
> -	unsigned int eax_base_mhz, ebx_max_mhz, ecx_bus_mhz, edx;
> +	unsigned int cpu_khz;
>   
>   	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
>   		return 0;
>   
> -	if (boot_cpu_data.cpuid_level < CPUID_LEAF_FREQ)
> +	if (cpuid_get_cpu_freq(&cpu_khz))
>   		return 0;
>   
> -	eax_base_mhz = ebx_max_mhz = ecx_bus_mhz = edx = 0;
> -
> -	cpuid(CPUID_LEAF_FREQ, &eax_base_mhz, &ebx_max_mhz, &ecx_bus_mhz, &edx);
> -
> -	return eax_base_mhz * 1000;
> +	return cpu_khz;
>   }
>   
>   /*



From xen-devel-bounces@lists.xenproject.org Sat May 16 15:05:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 May 2026 15:05:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310869.1581434 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOGZy-0007bI-LW; Sat, 16 May 2026 15:05:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310869.1581434; Sat, 16 May 2026 15:05:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOGZy-0007bA-G5; Sat, 16 May 2026 15:05:26 +0000
Received: by outflank-mailman (input) for mailman id 1310869;
 Sat, 16 May 2026 15:05:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOGZx-0007b4-9O
 for xen-devel@lists.xenproject.org; Sat, 16 May 2026 15:05:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOGZw-000zny-Lw
 for xen-devel@lists.xenproject.org; Sat, 16 May 2026 17:05:24 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a08879f-bab6-0a2a0a5309dd-0a2a4502ed64-14
 for <xen-devel@lists.xenproject.org>; Sat, 16 May 2026 17:05:24 +0200
Received: from [209.85.208.49] (helo=mail-ed1-f49.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0887b4-af86-0a2a45020019-d155d031dd14-3
 for <xen-devel@lists.xenproject.org>; Sat, 16 May 2026 17:05:24 +0200
Received: by mail-ed1-f49.google.com with SMTP id
 4fb4d7f45d1cf-67f7caa33easo1902124a12.1
 for <xen-devel@lists.xenproject.org>; Sat, 16 May 2026 08:05:24 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6830fc1a0b4sm3268676a12.0.2026.05.16.08.05.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 16 May 2026 08:05:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778943924; x=1779548724; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=g9FXWO3qS2q+ls6K0/ucjpFmbS82vXi0HetQupDqU9k=;
        b=qZOEoXdcB1QAlRAx8iKy+mLVWcVAGI7roWN3UUU3dwXlNSMElaNZAYcrOYEE0Km+xR
         LDHun3f2wj9e/W83mPtGKXPgcoY9DBvbgrC6sTRRUUfLgj8xTM/VerP37ltNy7wMpxWA
         gAWVmP0uHGYEEzVzcyLrOT3h6fUJyKdQhtSr3DiZpWG9WnZUrVVRjmXUcMIpyM6+qA6y
         5S4qxoSqh9Nb9ZSLsiIWhFe5b9UFetPZ+/DBx3GjwW/EFQnx5D16bFDbKbkzFN6Jvu8V
         Z0H8eol8H2u/xm/ST1lF0fMPk7khpPnvGZ8XtBWfOYNngBfjh400zarCb+tp48a1mPff
         oc9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778943924; x=1779548724;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=g9FXWO3qS2q+ls6K0/ucjpFmbS82vXi0HetQupDqU9k=;
        b=aluq5rglk7OV4F2d8Mi4Kn4UG+evvB/ou3ivuoYZkkz00jdNtQurGV2mzMnvXLbifc
         vKqu0a+0x3VnL4gMIlP2s8FV8Yby0/3a053ymX5WCN0guLfqYR83QcdaZwiZjxPMDpKW
         jLadC6BfIGpPJXxRyUS8NQPZiR7xNzs5x3GZSJ5Lc7C9aTN+uz+x2YWYEbcLEBIilieK
         TxAgRm/HOpVedbd5DBY0F3i93jcJx5jKvgLzRuyO09y3rSz1f5SeAHhvS+BZjCCRJWLg
         xm0WT7C2BG1A8qj8SDizOm8uje/P59vooX+UVhNPfLMEyx+nevtfzkkcxs4hWvikui3T
         0DiA==
X-Gm-Message-State: AOJu0YwqPdCk0DOfk3bDvDIxfDcqUImyy/SZLX7YNXoF7eAV9WZaRLg3
	74bn0up5mGe9vFI5z803kpmJ0dxjdAuqssmm9+Cj4PXFmMzsRa8ZbUvGFJYLAQ==
X-Gm-Gg: Acq92OHI1+sD1egRSkIYQ/mcSMzg3JjRX7VZl42XSHVPoEhdsg8pQzWqr6lXgnJyge8
	9vuIrwLtsq+guJWGq3B7/+xD01p+oQ/lTZTQDp+4xYLyKUBfy9I2w1MPExrhfhAkBSm/r3oZyle
	ee3MoxJP5grE/Wi3v6AEsAdy10q0rBIta1k76eR7+nOSo4HBtk5it2UinHMteYBg3e1iXgJjCK6
	TMtok5khcqIQvccO4bxUrWqfGmwxnsgQ/RmS+AHMZ57dNR/BeY6kraaAzRySg3M92dtHVVSe4Zi
	rUdWqx74IKyBQf5O62/uVXroplCQUbEKlurYI12R+2ccymjEhhc07Nm1nB0bk8r+HwYlc9nfEPV
	wTeT63VYlf0/P9lo8bHFJiduEZcLPKWTQ2RvSzRFPjPD5vfMereMhoNUtLBRN5BBvPxbKm7WpSX
	4DTyPSu9YEZApyuP/SmIc4lIJ9gw==
X-Received: by 2002:a05:6402:46d6:b0:678:b2c5:6915 with SMTP id 4fb4d7f45d1cf-683bd38be0dmr4218781a12.22.1778943923945;
        Sat, 16 May 2026 08:05:23 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 0/2] xen/common: llc-coloring parser fixes
Date: Sat, 16 May 2026 18:03:10 +0300
Message-ID: <cover.1778925998.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1778943924-83D67161-F81A166F/0/0
X-purgate-type: clean
X-purgate-size: 967

From: Mykola Kvach <mykola_kvach@epam.com>

Hi all,

This small series fixes two issues in parse_color_config().

The first patch makes parse failures leave the caller-visible color count
at zero.  This prevents a rejected command-line value from leaving a
partially parsed configuration behind for later init paths to consume.

The second patch rejects empty color tokens.  Previously, delimiters in
places where a color value was expected could be interpreted as color 0,
because simple_strtoul() returns zero without advancing the input pointer.
The patch checks that each parsed color value consumed input.  It also
adds the missing newline to the DT color parsing error message.

Mykola Kvach (2):
  xen/common: llc-coloring: clear color count on parse failure
  xen/common: llc-coloring: reject empty color tokens

 xen/common/llc-coloring.c | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat May 16 15:05:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 May 2026 15:05:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310871.1581453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOGa2-00081N-2k; Sat, 16 May 2026 15:05:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310871.1581453; Sat, 16 May 2026 15:05:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOGa1-00081G-Tl; Sat, 16 May 2026 15:05:29 +0000
Received: by outflank-mailman (input) for mailman id 1310871;
 Sat, 16 May 2026 15:05:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOGa0-0007yz-Mw
 for xen-devel@lists.xenproject.org; Sat, 16 May 2026 15:05:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOGa0-000ziQ-38
 for xen-devel@lists.xenproject.org; Sat, 16 May 2026 17:05:28 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0887a1-e002-0a2a0a5209dd-0a2a4501bb9e-10
 for <xen-devel@lists.xenproject.org>; Sat, 16 May 2026 17:05:28 +0200
Received: from [209.85.208.47] (helo=mail-ed1-f47.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0887b7-c1f2-0a2a45010019-d155d02feda3-3
 for <xen-devel@lists.xenproject.org>; Sat, 16 May 2026 17:05:28 +0200
Received: by mail-ed1-f47.google.com with SMTP id
 4fb4d7f45d1cf-676a89de629so1519912a12.1
 for <xen-devel@lists.xenproject.org>; Sat, 16 May 2026 08:05:28 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6830fc1a0b4sm3268676a12.0.2026.05.16.08.05.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 16 May 2026 08:05:26 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778943927; x=1779548727; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oVrXc3Z0YNDU/cSa9N1k1VbjjSsyEmY6q4/XgcyD2jQ=;
        b=Hgiw9ISKgj1hJD7s85SqDvJNFXB0cCjF0Qz5KJSz0T38GFKn9hGvbEhYhMui5Te/z0
         7LE+aKKopBl7yDxfTrVj+9ot8JJqwV9JrWekIsnp50OvgHeTsCRUKjWVkRkzt1z4XOVz
         atoSy8Urf5bPazK+TpB80s1BwWkCWH0N2OHBoIoAYXaQq8WxKvQ50K+jzqzKzv7aT5Dd
         MmpOvPhWFuDmak8di5g+1/17xGGFFn7ycf5V4hsPBCACTi8Z9JewC6bIvzCkE1qNB/OP
         15RAKGhxF7x4S8MOkrToat8lVB8/cntLS2VQynBVPwyMOhVuvHhVx4Rmn9esGR/SsofL
         UYeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778943927; x=1779548727;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=oVrXc3Z0YNDU/cSa9N1k1VbjjSsyEmY6q4/XgcyD2jQ=;
        b=JmEzob0VOz7F9E9P/GxrmRWJmYP+XrmeKkkpkBY1n+IVKzopB2K3mUcqeoiAX4+cQ1
         tFBVya+PMYohAl/iJRG2UjtIukweNI6LB+3c6mXToeefUvnn9DIv8AgNhicXkP/RjC2r
         qEqnHv93KMIG/rVJi44yl8q1hnxoA5SnGlc6TgmgiD48PtzhcWVwjXMOK10pYajy2e4s
         bIhBtbLmbB8+qHsxiTRap/qlB45Q2TM29aBDO+/3PTywi/Vp4M0LHLyCJAkppGWTnHLo
         cm3BY0iJQkR1Chc+h+4o+YQCsEQDu0HltrKJKeokgEs8KMMgogsujvidyMcfpRylOJ5j
         duBg==
X-Gm-Message-State: AOJu0YxdjhJDdsZdRY0nr4tHsm6NoR7Ao2qi4v/+j0os7NdqTo/Tbx8R
	kUKMw6pSVye7nQ6xG5tgYeV27kUnRmgjZZGGdgsr9kZYCEGBHn52/CIZIhIDXQ==
X-Gm-Gg: Acq92OFV8pEjJqnQV0zv8uxmyrM0yxKRg2oTSYVkTmAJ8OWJXqpP6Zw6+9JU5E6ii3m
	BerhXAax8v+lD/Ki6Egq7QwIEw35G4udbZ/4Q/Mm0a+rF8jTT8QnnvqZEZ+bfv32iSfAAvfP4qH
	qUd6fg1Duskb/iLm+Htw8XDp5+F8RdK1Mlg/fnI8Pw20+vIEkuciS5iy10R09z4Bb+JyzWYWv6p
	npH+626qGyxJprzu+ORR1TxwZbGFUjAf8YclSm3lriBCQHicARArRk6OC5Yc5HdOO17IkVzgkuX
	YGM7Ra2y+2vqpWCbq3ArQ4bXL0Z/PYrffT4/mJ9/x1AN5TaUpZ0Nl00Joay7wj6RcC4qf5HnmjT
	rnzxOT539Jczsk57txiBScv0ceQJB5huiJcQZ1FMoXfoQzDiPge8Y/b6J0I91+zDODUsPY1bNo8
	UWwCQgmeaAcpkQ+aevEzF4IcddGGwutiVjgBtu
X-Received: by 2002:a05:6402:556:b0:67e:9e04:31d0 with SMTP id 4fb4d7f45d1cf-683bd779fe2mr2819853a12.23.1778943927569;
        Sat, 16 May 2026 08:05:27 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/2] xen/common: llc-coloring: reject empty color tokens
Date: Sat, 16 May 2026 18:03:12 +0300
Message-ID: <0820f91dd0499e5f66f8961b5e27fe0a0ff9be35.1778925998.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1778925998.git.mykola_kvach@epam.com>
References: <cover.1778925998.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1778943928-B7555FF4-863ECD26/0/0
X-purgate-type: clean
X-purgate-size: 1894

From: Mykola Kvach <mykola_kvach@epam.com>

parse_color_config() currently accepts delimiters where a color value
is expected because simple_strtoul() returns zero without advancing the
input pointer. This makes strings such as ",2-6", "-10,19-20" or
"1,,2" look as if an empty value was color 0.

Also add the missing newline to the DT color parsing error message.

Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/common/llc-coloring.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
index 2606cb0977..5d00d4b40e 100644
--- a/xen/common/llc-coloring.c
+++ b/xen/common/llc-coloring.c
@@ -64,14 +64,21 @@ static int __init parse_color_config(const char *buf, unsigned int colors[],
 
     while ( *s != '\0' )
     {
+        const char *endp;
         unsigned int color, start, end;
 
-        start = simple_strtoul(s, &s, 0);
+        start = simple_strtoul(s, &endp, 0);
+        if ( endp == s )
+            goto fail;
+        s = endp;
 
         if ( *s == '-' )    /* Range */
         {
             s++;
-            end = simple_strtoul(s, &s, 0);
+            end = simple_strtoul(s, &endp, 0);
+            if ( endp == s )
+                goto fail;
+            s = endp;
         }
         else                /* Single value */
             end = start;
@@ -334,7 +341,7 @@ int __init domain_set_llc_colors_from_str(struct domain *d, const char *str)
     err = parse_color_config(str, colors, max_nr_colors, &num_colors);
     if ( err )
     {
-        printk(XENLOG_ERR "Error parsing LLC color configuration");
+        printk(XENLOG_ERR "Error parsing LLC color configuration\n");
         xfree(colors);
         return err;
     }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat May 16 15:05:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 May 2026 15:05:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1310870.1581444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOGZz-0007mW-Ss; Sat, 16 May 2026 15:05:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1310870.1581444; Sat, 16 May 2026 15:05:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOGZz-0007mL-Mx; Sat, 16 May 2026 15:05:27 +0000
Received: by outflank-mailman (input) for mailman id 1310870;
 Sat, 16 May 2026 15:05:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOGZz-0007fa-6X
 for xen-devel@lists.xenproject.org; Sat, 16 May 2026 15:05:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOGZy-000zny-J8
 for xen-devel@lists.xenproject.org; Sat, 16 May 2026 17:05:26 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0887b6-bab6-0a2a0a5309dd-0a2a4509ea70-2
 for <xen-devel@lists.xenproject.org>; Sat, 16 May 2026 17:05:26 +0200
Received: from [209.85.208.45] (helo=mail-ed1-f45.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0887b6-2497-0a2a45090019-d155d02da55f-3
 for <xen-devel@lists.xenproject.org>; Sat, 16 May 2026 17:05:26 +0200
Received: by mail-ed1-f45.google.com with SMTP id
 4fb4d7f45d1cf-678a16429c6so1733006a12.1
 for <xen-devel@lists.xenproject.org>; Sat, 16 May 2026 08:05:26 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6830fc1a0b4sm3268676a12.0.2026.05.16.08.05.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 16 May 2026 08:05:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1778943926; x=1779548726; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sAy7stFhq3QazvA4VXAmm7gr3DiN33Vj0r1SCSJMER8=;
        b=RvQNL9PFt4e1MpV4XHvsDDPm0pbieEDKL9HwLtqHpNTsTK7LNlzfuGx+5bf8yKbmwd
         QOXcKH/L+fouhfZzXb+PBkbx/mi8/3+dG+Mr1qR33w0Gnxg6MRCfMyPkIoukCUD91YVa
         5TwqxRhfz1H278e3f0Qal3Pp3SMjyd5Gwiv4eRaXSaddGcxxKv70oTMj2AUUy7Q6bVnY
         pS4/lbBnjWh7jZi2eIB1N+6F08eKcKnc6G3ES2tT31hwbE8Fd8Ur1x7+ra1YVoaJ7HzU
         p1FvRD43y+bu+Qc4uusTVTzEAUctPssk3yWTr6DfOWIMCV2fmQCi34b1Y6DCPKthr/hG
         0bbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1778943926; x=1779548726;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=sAy7stFhq3QazvA4VXAmm7gr3DiN33Vj0r1SCSJMER8=;
        b=dz37pxfv0PBt2+Sk07FAgaGX1VDo2Q9jl/f7xdjEHELScKBSYJXgRXzRaNz/1uWbuX
         KVCscsmihWtbWM7E/d9DLUdLmqVUP4urVlO+4MnTpDXv6KNPl5I2cTCi9uKIdb4mn+yJ
         tgTzYBu6KUiFPaciS04YPXryV3KY+douf4ScxCk7OY+yKRvPGC71h3Cptka/Aghn8Ixh
         469mxWzu5KIEKSpQrZD4AfONeHrR3EbfY3WFIO9PaaLXy7jUb+XcU71/0z2Iwxs5AmjE
         YeFo7oFIHs9Ku3IVuuct6GmoO3skmqHnDlR12v8GLd9MhRh1lXZVAYPBqATdyTzEzPaQ
         FBNw==
X-Gm-Message-State: AOJu0YyfqnOVwiggs7Hs8bEpGroGRcNcyg1LRYMgSzAI0ieIDrPD1GhC
	c6n2/hSynDOAXnpszlxvcrRqbSdECkFRcaGoBXlCslQOCyLkzMOO1SFRPI4YDA==
X-Gm-Gg: Acq92OFoEkgBCalD6wEbI55L43ixYz2bfdBCYhfMnHXQFpKAkew7jzGwtuke8Aiwjp0
	lsUpgfjQJ+u7/OPnRJJ9SPIbyWIuugDufWXBJNBnu0l9sAsVpIylkQuYTULWvfdqcqz4AGmOJNA
	Q8zmN5AVgwyUqgrHVvqlZi1ojhefFXw6XmSWDVNoK1T3P2y1Xc7et7OwHOGYhFJGDLB+v9BmDWC
	IlpfHm442uL8KYzkjDAN3iYIXuHGmvsDCujR771mvHFLeh9i4avEywZmKVqVn2SbKIL5aqFONWB
	Qjujk4HecZfjG6jMx4urCAsd+C/PyyCJTOcit3T6yFkqgCp7wXgTwRXGOrptShnbz8CRfYm3Z+t
	As6y8jTvJ5s6Ofg/edJ/a7gSsU0aw2j0ozMPCZ1ehN1LV0AMoNB89O0juA3cyoE8y265Yl3gj8t
	Mg59p1oZStDehKsvs84A67B370FSOnuFaRgtRJ
X-Received: by 2002:a05:6402:2043:b0:66d:d11c:fa0e with SMTP id 4fb4d7f45d1cf-6830b0fda84mr3831406a12.12.1778943925751;
        Sat, 16 May 2026 08:05:25 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 1/2] xen/common: llc-coloring: clear color count on parse failure
Date: Sat, 16 May 2026 18:03:11 +0300
Message-ID: <cbb02d6c5af6606ada3e477e8d45d730ffe72723.1778925998.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1778925998.git.mykola_kvach@epam.com>
References: <cover.1778925998.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1778943926-40B60A53-F42A240C/0/0
X-purgate-type: clean
X-purgate-size: 1422

From: Mykola Kvach <mykola_kvach@epam.com>

parse_color_config() updates the caller-provided color count while
parsing. If parsing later fails, leave the count at zero so callers
do not consume a partially parsed configuration.

Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/common/llc-coloring.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
index 6dc614739a..2606cb0977 100644
--- a/xen/common/llc-coloring.c
+++ b/xen/common/llc-coloring.c
@@ -79,7 +79,7 @@ static int __init parse_color_config(const char *buf, unsigned int colors[],
         if ( end >= NR_LLC_COLORS || start > end ||
              (end - start) >= (UINT_MAX - *num_colors) ||
              (*num_colors + (end - start)) >= max_num_colors )
-            return -EINVAL;
+            goto fail;
 
         /* Colors are range checked in check_colors() */
         for ( color = start; color <= end; color++ )
@@ -91,7 +91,14 @@ static int __init parse_color_config(const char *buf, unsigned int colors[],
             break;
     }
 
-    return *s ? -EINVAL : 0;
+    if ( *s )
+        goto fail;
+
+    return 0;
+
+ fail:
+    *num_colors = 0;
+    return -EINVAL;
 }
 
 static int __init parse_dom0_colors(const char *s)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 17 13:00:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 May 2026 13:00:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311222.1581461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOb6X-0006zH-0u; Sun, 17 May 2026 13:00:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311222.1581461; Sun, 17 May 2026 13:00:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOb6W-0006z9-SH; Sun, 17 May 2026 13:00:24 +0000
Received: by outflank-mailman (input) for mailman id 1311222;
 Sun, 17 May 2026 13:00:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <olekstysh@gmail.com>) id 1wOb6V-0006z0-Vb
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 13:00:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOb6V-00BKXm-Bc
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 15:00:23 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a09bbd8-5cb7-0a2a0a5109dd-0a2a4505aea0-18
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 15:00:23 +0200
Received: from [209.85.208.182] (helo=mail-lj1-f182.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a09bbe6-aaa8-0a2a45050019-d155d0b6c502-3
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 15:00:23 +0200
Received: by mail-lj1-f182.google.com with SMTP id
 38308e7fff4ca-38eab6cf7d8so11762661fa.1
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 06:00:23 -0700 (PDT)
Received: from [192.168.0.112] ([91.123.151.42])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-3958874ec22sm5047071fa.21.2026.05.17.06.00.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 17 May 2026 06:00:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779022822; x=1779627622; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=mm5+sl8QgNMDwez/WMGZOAiAUDAKsHA86ip9lSVzkYQ=;
        b=Em89X7XRL8WbrVGdiew352sSM8KTxV9MGPL8lNtMLiLL+8N1Zy8+qIdNDhUBYZRd1s
         ITCjhgMx7MIBiWlyyMkgOwjMc6djGP9J6aV43YXy6fAPsEsbgf/AhYA+QacVtljtB+CL
         16aqb9OSV2WQaNrhNdFXLW894caBWI8nCHprNkLa5BaDe7kBPWPFXKpqd9ZDESfyG6G8
         WnBUoA9PzqMUxTqREPOXjGAWwEmsKaQyx77VCq5tuukCe8lzE6viARpMkQ0LjBAe9z3G
         jCqS4oPjdRk2MfAAhPVw4WrqyhY6FghQvBlfEe6lj9VMGmKHqUon6rayduwzZhl5qRdQ
         mwKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779022822; x=1779627622;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=mm5+sl8QgNMDwez/WMGZOAiAUDAKsHA86ip9lSVzkYQ=;
        b=dku/h3fXdNrboGNVarYIbx74uG+rnaiMbVpiAcobm67qXRg1zNlCWopoi8DRmmjngM
         r1iRN4fYi8b8gMqPjHrW32WF4jWKDu/xfeRCvgcL6oggCEag0iPoqD9Db53ahH5WbjuZ
         AaBNF6036D8giHpE32dDHglE94bxGEAr5+iKJ3YXUR/pNPYcVX/HMyF9T5v/qNGJzVt0
         BteFM56miOGz7paPpfTJCK7vs3Y2nlS31HK8D0kojZslKiwGr1jj/jbx60m9+XS3O8/R
         Cfw400cHGTKgTewunsbiQuy18MSmOKSAuPLP06IDTftwZqeHRQ8rZgavXpX6izxaOS7W
         0C3Q==
X-Forwarded-Encrypted: i=1; AFNElJ8Y9QQZdcGTkONtmDLbF6h9JY4ogbfDC2AWRcRd3O0EMvcbuUuqOjiEEW2P8cExxLXQaOuOyqXNGGk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwDbPosXHS9YhHKHgGmVTcshhddUiKVeybxHONGE1FCdke+fQJy
	mWSpoXgg3u8qcLwmDiZ5WqQf6MS4iak+dXdOIlnGdxVV9hgjtBxxG3uBViGBFQ==
X-Gm-Gg: Acq92OEpn0DjehQfLU3TELVPoqZQsDB0mMXVdXd/ZVVq0/XM84b0Yb48OGJSPRKF8b5
	aLB39PxeOsYudn0ATB1mCL1jgtOEkWI/AYE/pY9BMgLSvgr7SQFK/+I/+05VL/VBwwjcsHCe+RR
	8XPUz0kp+76uhb5n4jf86zwtlTcuOBQkwIlaxoFzGPSdxYwtoml2Crng66hkaGM1qbbs9gP133q
	jm2MkLQIeEz24u8Si8BODpcvL3HUmIidxGb1b2pdvV41yqzrVjindkSy92d2LFBx3f/NIrDhyIU
	nLwjaWY/w44O6dN7JbwutmiWUZn0iFgf4lxGC3tj5/HW4vYzMkqM8J1ornJ+brIv5fqjsG+cyKv
	xdWsPuLVke5jBUS0HuPN2epESEC5A5P1Cb46BlsjQjs51uGZ3Hd++9zmCDINsdvkZjxH8jikRrP
	C9osTzs/VL26N5kgP4Ga8Np20xgWqitMwctY4S
X-Received: by 2002:a05:651c:4187:b0:38e:2183:2282 with SMTP id 38308e7fff4ca-39561f41e90mr26341271fa.23.1779022822032;
        Sun, 17 May 2026 06:00:22 -0700 (PDT)
Message-ID: <8bdaa98b-94cb-43a7-a02d-d2ec1e899fb9@gmail.com>
Date: Sun, 17 May 2026 16:00:20 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 13/13] xen/arm: Add host system suspend backend
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <2268857aa7eef95444169564c17f7e9a6f59b1c5.1778605274.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <2268857aa7eef95444169564c17f7e9a6f59b1c5.1778605274.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1779022823-D9772443-DB3BB4D0/0/0
X-purgate-type: clean
X-purgate-size: 11165



On 5/12/26 20:07, Mykola Kvach wrote:

Hello Mykola

> From: Mirela Simonovic <mirela.simonovic@aggios.com>
> 
> Add the Xen-wide suspend/resume backend used after a control-domain
> vPSCI SYSTEM_SUSPEND request has been accepted. The vPSCI policy,
> runtime driver blockers and control-domain sequencing checks are handled
> by the preceding commit; this change adds the code that actually drives
> the host suspend attempt.
> 
> The backend runs from a tasklet scheduled on pCPU0, because non-boot CPUs
> are disabled during suspend. It freezes domains, disables the scheduler
> and then disables non-boot CPUs.
> 
> Host-side suspend participants are handled in phases. IOMMU and console
> state are suspended first. Local IRQs are then disabled before suspending
> timer and GIC state. On resume or failure, the completed suspend phases
> are unwound in reverse: GIC and timer state are restored while IRQs are
> still disabled, local IRQs are restored, and then console and IOMMU state
> are restored.
> 
> On boot, init_ttbr is normally initialized during secondary CPU hotplug.
> On uniprocessor systems this can leave init_ttbr uninitialized, so set it
> from the boot CPU before entering suspend.
> 
> Note: the code is behind CONFIG_HAS_SYSTEM_SUSPEND, which is currently
> only selected when UNSUPPORTED is set and MPU is not set.
> 
> Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
> Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>


Patch looks good to me, just one question to clarify ...


> ---
> Changes in V9:
> - Split vPSCI availability policy, runtime host-suspend blockers and the
>    domain-readiness precheck into the preceding commit.
> - Trigger the host suspend backend from the control-domain SYSTEM_SUSPEND
>    path.
> - Reorder the host suspend/resume phases so the timer is suspended with
>    local IRQs disabled and local IRQs are restored after the GIC and timer
>    resume paths, before the console and IOMMU resume paths.
> - Move HAS_HWDOM_SYSTEM_SUSPEND and related logic to policy patch.
> 
> Changes in V8:
> - Add a pre-suspend check in system_suspend() after scheduler_disable() to
>    require all domains to be in the shut down state with SHUTDOWN_suspend
>    before proceeding with the global suspend flow.
> - Drop the common-level depends on !ARM_64 || !SYSTEM_SUSPEND from
>    CONFIG_HAS_HWDOM_SHUTDOWN_ON_SUSPEND and model the ARM64 suspend case
>    with an arch-selected capability instead.
> - Rename CONFIG_HAS_HWDOM_SHUTDOWN_ON_SUSPEND to
>    CONFIG_HAS_HWDOM_SYSTEM_SUSPEND.
> - Rename need_hwdom_shutdown() to want_hwdom_shutdown().
> 
> Changes in V7:
> - Control domain is responsible for host suspend.
> - Add an empty inline host_system_suspend() function when SYSTEM_SUSPEND
>    config is disabled.
> - Use IS_ENABLED() for config checking instead of #ifdef.
> - Replace #ifdef checks in domain_shutdown() with IS_ENABLED() to simplify
>    control flow.
> - Factor hardware domain shutdown condition into a helper
>    (need_hwdom_shutdown()) to avoid preprocessor directives inside the
>    function.
> - Squash with iommu suspend/resume commit.
> ---
>   xen/arch/arm/Kconfig               |   1 +
>   xen/arch/arm/include/asm/mm.h      |   2 +
>   xen/arch/arm/include/asm/suspend.h |   2 +
>   xen/arch/arm/mmu/smpboot.c         |   2 +-
>   xen/arch/arm/suspend.c             | 140 +++++++++++++++++++++++++++++
>   xen/arch/arm/vpsci.c               |  10 ++-
>   6 files changed, 154 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 54a5bfb9ae..119bc00674 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -9,6 +9,7 @@ config ARM_64
>   	select 64BIT
>   	select HAS_DOMAIN_TYPE
>   	select HAS_FAST_MULTIPLY
> +	select HAS_SYSTEM_SUSPEND if !MPU && UNSUPPORTED
>   	select HAS_VPCI_GUEST_SUPPORT if PCI_PASSTHROUGH
>   
>   config ARM
> diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
> index 2eb8465aa9..de119cad3a 100644
> --- a/xen/arch/arm/include/asm/mm.h
> +++ b/xen/arch/arm/include/asm/mm.h
> @@ -360,6 +360,8 @@ static inline void page_set_xenheap_gfn(struct page_info *p, gfn_t gfn)
>       } while ( (y = cmpxchg(&p->u.inuse.type_info, x, nx)) != x );
>   }
>   
> +void set_init_ttbr(lpae_t *root);
> +
>   #endif /*  __ARCH_ARM_MM__ */
>   /*
>    * Local variables:
> diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
> index 87db12eac3..a194dbb21a 100644
> --- a/xen/arch/arm/include/asm/suspend.h
> +++ b/xen/arch/arm/include/asm/suspend.h
> @@ -40,11 +40,13 @@ int prepare_resume_ctx(void);
>   void hyp_resume(void);
>   bool host_system_suspend_allowed(void);
>   void host_system_suspend_disable(const char *reason);
> +void host_system_suspend(struct domain *d);
>   
>   #else /* !CONFIG_SYSTEM_SUSPEND */
>   
>   static inline bool host_system_suspend_allowed(void) { return false; }
>   static inline void host_system_suspend_disable(const char *reason) {}
> +static inline void host_system_suspend(struct domain *d) {}
>   
>   #endif
>   
> diff --git a/xen/arch/arm/mmu/smpboot.c b/xen/arch/arm/mmu/smpboot.c
> index 37e91d72b7..ff508ecf40 100644
> --- a/xen/arch/arm/mmu/smpboot.c
> +++ b/xen/arch/arm/mmu/smpboot.c
> @@ -72,7 +72,7 @@ static void clear_boot_pagetables(void)
>       clear_table(boot_third);
>   }
>   
> -static void set_init_ttbr(lpae_t *root)
> +void set_init_ttbr(lpae_t *root)
>   {
>       /*
>        * init_ttbr is part of the identity mapping which is read-only. So
> diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
> index a571035d2c..b1cc67fbdb 100644
> --- a/xen/arch/arm/suspend.c
> +++ b/xen/arch/arm/suspend.c
> @@ -1,10 +1,16 @@
>   /* SPDX-License-Identifier: GPL-2.0-only */
>   
> +#include <asm/gic.h>
>   #include <asm/psci.h>
>   #include <asm/suspend.h>
>   
> +#include <xen/console.h>
> +#include <xen/cpu.h>
> +#include <xen/iommu.h>
>   #include <xen/lib.h>
> +#include <xen/sched.h>
>   #include <xen/serial.h>
> +#include <xen/tasklet.h>
>   
>   struct resume_cpu_context resume_cpu_context;
>   
> @@ -44,6 +50,140 @@ void host_system_suspend_disable(const char *reason)
>              reason ? reason : "unsupported suspend/resume path");
>   }
>   
> +/* Xen suspend. data identifies the domain that initiated suspend. */
> +static void system_suspend(void *data)
> +{
> +    int status;
> +    unsigned long flags;
> +    struct domain *d = (struct domain *)data;
> +
> +    BUG_ON(system_state != SYS_STATE_active);
> +
> +    system_state = SYS_STATE_suspend;
> +
> +    printk("Xen suspending...\n");
> +
> +    freeze_domains();
> +    scheduler_disable();
> +
> +    /*
> +     * Non-boot CPUs have to be disabled on suspend and enabled on resume
> +     * (hotplug-based mechanism). Disabling non-boot CPUs will lead to PSCI
> +     * CPU_OFF to be called by each non-boot CPU. Depending on the underlying
> +     * platform capabilities, this may lead to the physical powering down of
> +     * CPUs.
> +     */
> +    status = disable_nonboot_cpus();
> +    if ( status )
> +    {
> +        system_state = SYS_STATE_resume;
> +        goto resume_nonboot_cpus;
> +    }
> +
> +    console_start_sync();
> +    status = iommu_suspend();
> +    if ( status )
> +    {
> +        system_state = SYS_STATE_resume;
> +        goto resume_end_sync;
> +    }
> +
> +    status = console_suspend();
> +    if ( status )
> +    {
> +        dprintk(XENLOG_ERR, "Failed to suspend the console, err=%d\n", status);
> +        system_state = SYS_STATE_resume;
> +        goto resume_iommu;
> +    }
> +
> +    local_irq_save(flags);
> +
> +    time_suspend();
> +
> +    status = gic_suspend();
> +    if ( status )
> +    {
> +        system_state = SYS_STATE_resume;
> +        goto resume_time;
> +    }
> +
> +    set_init_ttbr(xen_pgtable);
> +
> +    /*
> +     * Enable identity mapping before entering suspend to simplify
> +     * the resume path
> +     */
> +    update_boot_mapping(true);
> +
> +    if ( prepare_resume_ctx() )
> +    {
> +        status = call_psci_system_suspend();
> +        /*
> +         * If suspend is finalized properly by above system suspend PSCI call,
> +         * the code below in this 'if' branch will never execute. Execution
> +         * will continue from hyp_resume which is the hypervisor's resume point.
> +         * In hyp_resume CPU context will be restored and since link-register is
> +         * restored as well, it will appear to return from prepare_resume_ctx.
> +         * The difference in returning from prepare_resume_ctx on system suspend
> +         * versus resume is in function's return value: on suspend, the return
> +         * value is a non-zero value, on resume it is zero. That is why the
> +         * control flow will not re-enter this 'if' branch on resume.
> +         */
> +        if ( status )
> +            dprintk(XENLOG_WARNING, "PSCI system suspend failed, err=%d\n",
> +                    status);
> +    }



... unless I am mistaken, the boot CPU appears to bypass errata checks 
on resume.

Non-boot (secondary) CPUs: before suspending, Xen calls 
disable_nonboot_cpus(). Upon resume, it calls enable_nonboot_cpus(), 
which utilizes the standard secondary CPU bring-up path. Secondary CPUs 
boot through init_secondary() -> start_secondary(), where Xen explicitly 
calls functions such as check_local_cpu_errata(), etc. So, secondary 
CPUs are fine.

Boot CPU: when CPU0 wakes up from SYSTEM_SUSPEND, it enters 
hyp_resume(), calls cpu_init(), and branches directly back into the 
middle of system_suspend(), where it resumes the GIC, timer, IOMMU, etc. 
At no point in hyp_resume() or system_suspend() does CPU0 call 
check_local_cpu_errata().

Could you, please, clarify why this is OK?



> +
> +    system_state = SYS_STATE_resume;
> +    update_boot_mapping(false);
> +
> +    gic_resume();
> +
> + resume_time:
> +    time_resume();
> +
> +    local_irq_restore(flags);
> +
> +    console_resume();
> +
> + resume_iommu:
> +    iommu_resume();
> +
> + resume_end_sync:
> +    console_end_sync();
> +
> + resume_nonboot_cpus:
> +    /*
> +     * The rcu_barrier() has to be added to ensure that the per cpu area is
> +     * freed before a non-boot CPU tries to initialize it (_free_percpu_area()
> +     * has to be called before the init_percpu_area()). This scenario occurs
> +     * when non-boot CPUs are hot-unplugged on suspend and hotplugged on resume.
> +     */
> +    rcu_barrier();
> +    enable_nonboot_cpus();
> +
> +    scheduler_enable();
> +    thaw_domains();
> +
> +    system_state = SYS_STATE_active;
> +
> +    printk("Resume (status %d)\n", status);
> +
> +    domain_resume(d);
> +}

[snip]


From xen-devel-bounces@lists.xenproject.org Sun May 17 14:38:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 May 2026 14:38:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311264.1581470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOccw-0002II-J9; Sun, 17 May 2026 14:37:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311264.1581470; Sun, 17 May 2026 14:37:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOccw-0002IA-Fc; Sun, 17 May 2026 14:37:58 +0000
Received: by outflank-mailman (input) for mailman id 1311264;
 Sun, 17 May 2026 14:37:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <olekstysh@gmail.com>) id 1wOccu-0002I4-NE
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 14:37:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOccu-000GCH-3f
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 16:37:56 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a09d2a1-bab6-0a2a0a5309dd-0a2a4508989e-18
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 16:37:56 +0200
Received: from [209.85.167.53] (helo=mail-lf1-f53.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a09d2c3-63b5-0a2a45080019-d155a735f1f2-3
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 16:37:56 +0200
Received: by mail-lf1-f53.google.com with SMTP id
 2adb3069b0e04-5a858881ad2so1982681e87.3
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 07:37:55 -0700 (PDT)
Received: from [192.168.0.112] ([91.123.151.42])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a9164c545asm2785955e87.56.2026.05.17.07.37.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 17 May 2026 07:37:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779028675; x=1779633475; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=B2qZzNxLP+Tnd+foSJp3M3NluVXFtAaQkvXV2G7SrzI=;
        b=dNEP/pyp42TKfQeSxz4f5EjiaAnItpsoEwSUX556APd6Yx+Rn8PPKwUKxOnUHFHtls
         vpF6/a+g15oEV7a07gXHbbvo6N9OLpTBfawU4Okgo6mHZdwdIonZ350CNHeHvSeQqmWS
         Z62mxHsYIkSk2jaNpc5OdppCKBePv+8Achus5dyT2Nh2Dm0SajyJyaicI4IF7I9m9ivE
         cfRXfp0xDDMp0gboVYANCDVmKlIoVLBCLJhhAgrzaR2k90DN0kAeMteaVWRHHMMRNgMc
         oROy7Hyb+X0yPoRbS7/7QoN0dzeLTQIxnBV5aN+12D4mAZ4+6bNXGz7ye5JrX9joIXhu
         1w2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779028675; x=1779633475;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=B2qZzNxLP+Tnd+foSJp3M3NluVXFtAaQkvXV2G7SrzI=;
        b=pGvYr7rJPXBp28BXCpCNq/XcMCwUnugQcst6EWzO/fp8Yd6eBiAgfgCh1zzgMT/O24
         /GnwFGhEfJ1PFte1gmODSPHQ34xGAFiR00juABOiaYI8h8S8LwuzT7wI7mPN3BgRw9Df
         Y0ojYZVU/cVDnn311jQXCAAUgiC3DifypBRnXq/RJ66abqIEALqw/Thrj/0P5p9h6L7m
         4tk1mMWJcGjO/POOxq3MZp8GgelMRRSoNQuuUpadsygxeFTd6Q69OfxD4W4ExLCHJnb+
         xTG7rSZunLbXFdDZJ+ByUjiPGILBkJW2E3caQVYmEQ+7+CyvSzNAqHAMbebW/DglLgGm
         /gUQ==
X-Forwarded-Encrypted: i=1; AFNElJ/HzX/3qiWeximga7P0D5aD33jEH2OOomK2Jl/bqRGYrg8sGV3AHO5SNsHyilql26BGMKO0h9B5DTU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzuOPq2H+NXYs/WpQY3yCviQuG9Pb2Awetr+TyNXoACqW8qu+oX
	zzIi9k5+mhM1nL6int6JDB0Nr/eFfcarL9itpIzoPXGbrIFd6ZBluHze
X-Gm-Gg: Acq92OFUYST0HYi26VN3jFfLRMm3OAHKVBRsMszAihgdZ6bqnyFwTo3J7ydHRDV9kn5
	kxHQbNbysoee0q8Bkv72FRk2/mjEziZL0R4q192haE7a4xfekZSGKEYqnpcr3T1fcy8hcYcjaTu
	KBNRal3FJoxWRZ8Q2TAnxq1Z5cSx2oKNFQN0LpCfCthbBucKEccbNGb6pvSB28JIpUMyxnOaSQF
	Q5X3jSTx/sTzNe0tlf0YMIuzr7XQVwBKffGRLroqWDPjP5mE5wgeFW2QuG6LYNSIKm22nAwggTf
	xRETKlFPsojzhNuhtRGytFLaUsUBviCbdnmtDp+NWChubHGRd28RSkGeW7OQ6oQd05rmh0zX+Gy
	ikNTykINjbjNSY4UapM7PDJduwUyq0NsjoJbZTJwrNvtxdFJapYEefqFzHXtYkvqxoDM/JArokS
	O/1O3uUPkT2BCYTex4q8uXvJY1jaKQWQ9B9wbP
X-Received: by 2002:a05:6512:2397:b0:5a8:f6fd:f48d with SMTP id 2adb3069b0e04-5aa0e740902mr3060538e87.40.1779028674783;
        Sun, 17 May 2026 07:37:54 -0700 (PDT)
Message-ID: <c8d0e466-d5e3-4791-9dfe-6221ba219abb@gmail.com>
Date: Sun, 17 May 2026 17:37:51 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 12/13] xen/arm: Add vPSCI SYSTEM_SUSPEND policy
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Rahul Singh <rahul.singh@arm.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <06448a30ef6694a55ac85d4c8c78ca2d71342430.1778605274.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <06448a30ef6694a55ac85d4c8c78ca2d71342430.1778605274.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1779028676-B5F6ADB1-14C3213E/0/0
X-purgate-type: clean
X-purgate-size: 19353



On 5/12/26 20:07, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>


Hello Mykola

> 
> Introduce CONFIG_HAS_HWDOM_SYSTEM_SUSPEND as an architecture-selected
> capability for platforms where the hardware domain can be parked with
> SHUTDOWN_suspend without calling hwdom_shutdown().
> 
> Expose PSCI SYSTEM_SUSPEND as a vPSCI operation for all domains. For
> non-control domains, including the hardware domain when it is not acting as a
> control domain, the call is handled as a guest/domain suspend request and
> parks the domain in SHUTDOWN_suspend.
> 
> Control domains need additional sequencing because their SYSTEM_SUSPEND
> request is used to coordinate host-wide suspend. A non-last awake control
> domain may be parked in SHUTDOWN_suspend without requiring the host suspend
> path to be available. The last awake control domain is treated as the point
> where the request becomes a host-suspend request, and it may only proceed
> when all non-control domains are already in SHUTDOWN_suspend and the host
> suspend path is available.
> 
> Keep the control-domain sequencing and domain-readiness checks out of
> PSCI_FEATURES. They are per-attempt runtime conditions rather than stable PSCI
> function availability. Advertise SYSTEM_SUSPEND as implemented by vPSCI and
> enforce the sequencing policy in the call handler.
> 
> Select HAS_HWDOM_SYSTEM_SUSPEND independently from CONFIG_SYSTEM_SUSPEND so
> that SHUTDOWN_suspend from the hardware domain can be treated as a domain
> suspend state rather than as a hardware-domain initiated host shutdown. This
> does not by itself imply that host-wide suspend is available.
> 
> Add host_system_suspend_allowed() to combine the host PSCI SYSTEM_SUSPEND
> capability with runtime blockers reported by Xen-owned subsystems. Add
> runtime blockers for registered serial, IOMMU, GIC and SMMUv3 MSI IRQ paths
> lacking suspend/resume support. These blockers are runtime based, so they
> only apply to drivers or paths that Xen actually uses on the platform. For
> SMMUv3, the blocker applies only when Xen actually uses the MSI IRQ path,
> since resume does not restore the SMMU *_IRQ_CFGn MSI registers yet.
> 
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>

Apart from Jan's and Luca's findings, patch looks good to me. Just a few 
questions to clarify, apologies if these have already been discussed 
elsewhere.

> ---
>   xen/arch/arm/Kconfig                  |   1 +
>   xen/arch/arm/gic.c                    |   6 ++
>   xen/arch/arm/include/asm/psci.h       |   3 +
>   xen/arch/arm/include/asm/suspend.h    |  10 ++-
>   xen/arch/arm/psci.c                   |   7 ++
>   xen/arch/arm/suspend.c                |  40 +++++++++
>   xen/arch/arm/vpsci.c                  | 114 +++++++++++++++++++++++---
>   xen/common/Kconfig                    |   3 +
>   xen/common/domain.c                   |   7 +-
>   xen/drivers/char/serial.c             |  12 +++
>   xen/drivers/passthrough/arm/iommu.c   |   4 +
>   xen/drivers/passthrough/arm/smmu-v3.c |   4 +
>   xen/include/xen/serial.h              |   1 +
>   xen/include/xen/suspend.h             |   2 +
>   14 files changed, 201 insertions(+), 13 deletions(-)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 79622b46a1..54a5bfb9ae 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -19,6 +19,7 @@ config ARM
>   	select HAS_ALTERNATIVE if HAS_VMAP
>   	select HAS_DEVICE_TREE_DISCOVERY
>   	select HAS_DOM0LESS
> +	select HAS_HWDOM_SYSTEM_SUSPEND if !MPU
>   	select HAS_GRANT_CACHE_FLUSH if GRANT_TABLE
>   	select HAS_STACK_PROTECTOR
>   	select HAS_UBSAN
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index 7727ffed5a..a5efcaeb4c 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -26,6 +26,7 @@
>   #include <asm/device.h>
>   #include <asm/io.h>
>   #include <asm/gic.h>
> +#include <asm/suspend.h>
>   #include <asm/vgic.h>
>   #include <asm/acpi.h>
>   
> @@ -44,6 +45,11 @@ static void __init __maybe_unused build_assertions(void)
>   void register_gic_ops(const struct gic_hw_operations *ops)
>   {
>       gic_hw_ops = ops;
> +
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +    if ( !ops->suspend || !ops->resume )
> +        host_system_suspend_disable("GIC driver lacks suspend/resume support");
> +#endif
>   }
>   
>   static void clear_cpu_lr_mask(void)
> diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
> index bb3c73496e..142fa1bfe5 100644
> --- a/xen/arch/arm/include/asm/psci.h
> +++ b/xen/arch/arm/include/asm/psci.h
> @@ -24,6 +24,9 @@ void call_psci_cpu_off(void);
>   void call_psci_system_off(void);
>   void call_psci_system_reset(void);
>   int call_psci_system_suspend(void);
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +bool psci_system_suspend_allowed(void);
> +#endif
>   
>   /* Range of allocated PSCI function numbers */
>   #define	PSCI_FNUM_MIN_VALUE                 _AC(0,U)
> diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
> index 2d9fc331fc..87db12eac3 100644
> --- a/xen/arch/arm/include/asm/suspend.h
> +++ b/xen/arch/arm/include/asm/suspend.h
> @@ -38,7 +38,15 @@ extern struct resume_cpu_context resume_cpu_context;
>   
>   int prepare_resume_ctx(void);
>   void hyp_resume(void);
> -#endif /* CONFIG_SYSTEM_SUSPEND */
> +bool host_system_suspend_allowed(void);
> +void host_system_suspend_disable(const char *reason);
> +
> +#else /* !CONFIG_SYSTEM_SUSPEND */
> +
> +static inline bool host_system_suspend_allowed(void) { return false; }
> +static inline void host_system_suspend_disable(const char *reason) {}
> +
> +#endif
>   
>   #endif /* ARM_SUSPEND_H */
>   
> diff --git a/xen/arch/arm/psci.c b/xen/arch/arm/psci.c
> index e05dae1133..e9d78668fd 100644
> --- a/xen/arch/arm/psci.c
> +++ b/xen/arch/arm/psci.c
> @@ -41,6 +41,13 @@ static bool __ro_after_init has_psci_system_suspend;
>   
>   #define PSCI_RET(res)   ((int32_t)(res).a0)
>   
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +bool psci_system_suspend_allowed(void)
> +{
> +    return has_psci_system_suspend;
> +}
> +#endif
> +
>   int call_psci_cpu_on(int cpu)
>   {
>       struct arm_smccc_res res;
> diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
> index 6ea4a0f9cc..a571035d2c 100644
> --- a/xen/arch/arm/suspend.c
> +++ b/xen/arch/arm/suspend.c
> @@ -1,9 +1,49 @@
>   /* SPDX-License-Identifier: GPL-2.0-only */
>   
> +#include <asm/psci.h>
>   #include <asm/suspend.h>
>   
> +#include <xen/lib.h>
> +#include <xen/serial.h>
> +
>   struct resume_cpu_context resume_cpu_context;
>   
> +/*
> + * Non-PSCI infrastructure can make host suspend impossible even when the PSCI
> + * SYSTEM_SUSPEND conduit is present, e.g. when a Xen-owned driver has no valid
> + * suspend/resume path.
> + *
> + * This gate is checked only when the last awake control domain attempts to
> + * turn a guest SYSTEM_SUSPEND request into a host-suspend request.
> + */
> +static bool host_system_suspend_runtime_allowed = true;
> +
> +static bool host_serial_suspend_allowed(void)
> +{
> +    if ( serial_suspend_supported() )
> +        return true;
> +
> +    printk_once(XENLOG_INFO
> +                "Host SYSTEM_SUSPEND blocked: serial driver lacks suspend/resume support\n");
> +
> +    return false;
> +}
> +
> +bool host_system_suspend_allowed(void)
> +{
> +    return psci_system_suspend_allowed() &&
> +           host_serial_suspend_allowed() &&
> +           host_system_suspend_runtime_allowed;
> +}
> +
> +void host_system_suspend_disable(const char *reason)
> +{
> +    host_system_suspend_runtime_allowed = false;
> +
> +    printk(XENLOG_INFO "Host SYSTEM_SUSPEND blocked: %s\n",
> +           reason ? reason : "unsupported suspend/resume path");
> +}
> +
>   /*
>    * Local variables:
>    * mode: C
> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> index ac6af6118f..48a963ae3e 100644
> --- a/xen/arch/arm/vpsci.c
> +++ b/xen/arch/arm/vpsci.c
> @@ -5,6 +5,7 @@
>   
>   #include <asm/current.h>
>   #include <asm/domain.h>
> +#include <asm/suspend.h>
>   #include <asm/vgic.h>
>   #include <asm/vpsci.h>
>   #include <asm/event.h>
> @@ -219,6 +220,89 @@ static void do_psci_0_2_system_reset(void)
>       domain_shutdown(d,SHUTDOWN_reboot);
>   }
>   
> +/*
> + * Serialise SYSTEM_SUSPEND policy decisions with the domain suspend transition,
> + * so multiple control domains cannot all observe each other as still awake.
> + */
> +static DEFINE_SPINLOCK(vpsci_system_suspend_lock);
> +
> +static bool domain_in_suspend_state(struct domain *d)
> +{
> +    bool suspended;
> +
> +    spin_lock(&d->shutdown_lock);
> +    suspended = d->is_shut_down && d->shutdown_code == SHUTDOWN_suspend;
> +    spin_unlock(&d->shutdown_lock);
> +
> +    return suspended;
> +}
> +
> +static int32_t domain_psci_system_suspend_policy(struct domain *d)
> +{
> +    struct domain *other;
> +    bool last_awake_control_domain = true;
> +    bool awake_non_control_domain = false;
> +
> +    /* Only control domains participate in sequencing policy. */
> +    if ( !is_control_domain(d) )
> +        return 0;
> +
> +    rcu_read_lock(&domlist_read_lock);
> +
> +    for_each_domain ( other )
> +    {
> +        bool suspended;
> +
> +        if ( other == d )
> +            continue;
> +
> +        suspended = domain_in_suspend_state(other);
> +        if ( suspended )
> +            continue;
> +
> +        if ( is_control_domain(other) )
> +        {
> +            last_awake_control_domain = false;
> +            break;
> +        }
> +
> +        awake_non_control_domain = true;
> +    }
> +
> +    rcu_read_unlock(&domlist_read_lock);
> +
> +    /*
> +     * Another control domain is still awake. This request is only the first
> +     * phase of the sequencing: park this control domain and leave the host
> +     * running. Host-wide suspend gates must not block this intermediate state.
> +     */
> +    if ( !last_awake_control_domain )
> +        return 0;
> +
> +    /*
> +     * This is the last awake control domain. It must not be parked unless the
> +     * request can proceed as a host-suspend request; otherwise Xen would lose
> +     * the last domain that can coordinate the system suspend.
> +     */
> +    if ( awake_non_control_domain )
> +    {
> +        printk(XENLOG_DEBUG
> +               "SYSTEM_SUSPEND denied: last awake control domain dom%u requested host suspend while non-control domains are still awake\n",
> +               d->domain_id);
> +        return PSCI_DENIED;
> +    }
> +
> +    /*
> +     * Host-wide gates are relevant only for the last-control-domain case. They
> +     * must not block parking of a non-last control domain, but they must reject
> +     * the last control domain when host suspend is not available.
> +     */
> +    if ( !host_system_suspend_allowed() )
> +        return PSCI_NOT_SUPPORTED;

In do_psci_1_0_features(), the guest is told that SYSTEM_SUSPEND is 
implemented:

case PSCI_1_0_FN64_SYSTEM_SUSPEND:
     return 0;  /* "This function IS implemented" */

However, when the guest actually calls SYSTEM_SUSPEND, the policy check 
above can reject it by return PSCI_NOT_SUPPORTED; /* "This function is 
NOT implemented" */

These two responses are contradictory. The guest probes via 
PSCI_FEATURES, is told suspend is available, and then gets 
PSCI_NOT_SUPPORTED when it attempts to use it (if let's say the SMMUv3 
driver has blocked suspend).

 From Arm Power State Coordination Interface (DEN0022F.b):

5.3.2 Implementation responsibilities
... Any function that is not implemented must return NOT_SUPPORTED in 
accordance with the SMC Calling Conventions [4]. In addition, 
PSCI_FEATURES must also return NOT_SUPPORTED for any non-implemented 
function...

My questing is should do_psci_1_0_features() consult the same policy so 
that the feature is only advertised when it can actually be used?

Or am I missing something here?

> +
> +    return 0;
> +}
> +
>   static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
>   {
>       int32_t rc;
> @@ -232,10 +316,6 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
>       if ( is_64bit_domain(d) && is_thumb )
>           return PSCI_INVALID_ADDRESS;
>   
> -    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
> -    if ( is_hardware_domain(d) )
> -        return PSCI_NOT_SUPPORTED;
> -
>       /* Ensure that all CPUs other than the calling one are offline */
>       domain_lock(d);
>       for_each_vcpu ( d, v )
> @@ -252,16 +332,29 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
>       if ( rc )
>           return PSCI_DENIED;
>   
> -    rc = domain_shutdown(d, SHUTDOWN_suspend);
> +    spin_lock(&vpsci_system_suspend_lock);
> +
> +    rc = domain_psci_system_suspend_policy(d);
> +    if ( !rc )
> +    {
> +        rc = domain_shutdown(d, SHUTDOWN_suspend);
> +        if ( rc )
> +            rc = PSCI_DENIED;
> +        else
> +        {
> +            rctx->ctxt = ctxt;
> +            rctx->wake_cpu = current;
> +        }
> +    }
> +
> +    spin_unlock(&vpsci_system_suspend_lock);
> +
>       if ( rc )
>       {
>           free_vcpu_guest_context(ctxt);
> -        return PSCI_DENIED;
> +        return rc;
>       }
>   
> -    rctx->ctxt = ctxt;
> -    rctx->wake_cpu = current;
> -
>       gprintk(XENLOG_DEBUG,
>               "SYSTEM_SUSPEND requested, epoint=%#"PRIregister", cid=%#"PRIregister"\n",
>               epoint, cid);
> @@ -287,10 +380,9 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>       case PSCI_0_2_FN32_SYSTEM_RESET:
>       case PSCI_1_0_FN32_PSCI_FEATURES:
>       case ARM_SMCCC_VERSION_FID:
> -        return 0;
>       case PSCI_1_0_FN32_SYSTEM_SUSPEND:
>       case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> -        return is_hardware_domain(current->domain) ? PSCI_NOT_SUPPORTED : 0;
> +        return 0;
>       default:
>           return PSCI_NOT_SUPPORTED;
>       }
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 5ff71480ee..816a1a4ecb 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -140,6 +140,9 @@ config HAS_EX_TABLE
>   config HAS_FAST_MULTIPLY
>   	bool
>   
> +config HAS_HWDOM_SYSTEM_SUSPEND
> +	bool
> +
>   config HAS_IOPORTS
>   	bool
>   
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index bb9e210c28..d3edfb2a13 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1375,6 +1375,11 @@ void __domain_crash(struct domain *d)
>       domain_shutdown(d, SHUTDOWN_crash);
>   }
>   
> +static inline bool want_hwdom_shutdown(uint8_t reason)
> +{
> +    return !IS_ENABLED(CONFIG_HAS_HWDOM_SYSTEM_SUSPEND) ||
> +           reason != SHUTDOWN_suspend;
> +}
>   
>   int domain_shutdown(struct domain *d, u8 reason)
>   {
> @@ -1391,7 +1396,7 @@ int domain_shutdown(struct domain *d, u8 reason)
>           d->shutdown_code = reason;
>       reason = d->shutdown_code;
>   
> -    if ( is_hardware_domain(d) )
> +    if ( is_hardware_domain(d) && want_hwdom_shutdown(reason) )
>           hwdom_shutdown(reason);
>   
>       if ( d->is_shutting_down )
> diff --git a/xen/drivers/char/serial.c b/xen/drivers/char/serial.c
> index adb312d796..cc2b5b5dee 100644
> --- a/xen/drivers/char/serial.c
> +++ b/xen/drivers/char/serial.c
> @@ -497,6 +497,8 @@ const struct vuart_info *serial_vuart_info(int idx)
>   
>   #ifdef CONFIG_SYSTEM_SUSPEND
>   
> +static bool __read_mostly serial_suspend_available = true;
> +
>   void serial_suspend(void)
>   {
>       int i;
> @@ -513,6 +515,11 @@ void serial_resume(void)
>               com[i].driver->resume(&com[i]);
>   }
>   
> +bool serial_suspend_supported(void)
> +{
> +    return serial_suspend_available;
> +}
> +
>   #endif /* CONFIG_SYSTEM_SUSPEND */
>   
>   void __init serial_register_uart(int idx, struct uart_driver *driver,
> @@ -521,6 +528,11 @@ void __init serial_register_uart(int idx, struct uart_driver *driver,
>       /* Store UART-specific info. */
>       com[idx].driver = driver;
>       com[idx].uart   = uart;
> +
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +    if ( !driver->suspend || !driver->resume )
> +        serial_suspend_available = false;


I wonder why different suspend-blocker API are used for serial vs other 
subsystems (GIC, IOMMU). Why serial_register_uart() could not simply 
call host_system_suspend_disable() like every other subsystem?

This would avoid adding three unnecessary symbols 
(serial_suspend_available, serial_suspend_supported(), 
host_serial_suspend_allowed()).

Or am I missing something here?


> +#endif
>   }
>   
>   void __init serial_async_transmit(struct serial_port *port)
> diff --git a/xen/drivers/passthrough/arm/iommu.c b/xen/drivers/passthrough/arm/iommu.c
> index 100545e23f..420b9fbdf0 100644
> --- a/xen/drivers/passthrough/arm/iommu.c
> +++ b/xen/drivers/passthrough/arm/iommu.c
> @@ -19,6 +19,7 @@
>   #include <xen/device_tree.h>
>   #include <xen/iommu.h>
>   #include <xen/lib.h>
> +#include <xen/suspend.h>
>   
>   #include <asm/device.h>
>   
> @@ -46,6 +47,9 @@ void __init iommu_set_ops(const struct iommu_ops *ops)
>       }
>   
>       iommu_ops = ops;
> +
> +    if ( !ops->suspend || !ops->resume )
> +        host_system_suspend_disable("IOMMU driver lacks suspend/resume support");
>   }
>   
>   int __init iommu_hardware_setup(void)
> diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
> index 82c8ead979..443dd0e893 100644
> --- a/xen/drivers/passthrough/arm/smmu-v3.c
> +++ b/xen/drivers/passthrough/arm/smmu-v3.c
> @@ -91,6 +91,7 @@
>   #include <asm/io.h>
>   #include <asm/iommu_fwspec.h>
>   #include <asm/platform.h>
> +#include <asm/suspend.h>
>   
>   #include "smmu-v3.h"
>   
> @@ -1903,6 +1904,9 @@ static void arm_smmu_setup_msis(struct arm_smmu_device *smmu)
>   		}
>   	}
>   
> +	host_system_suspend_disable(
> +		"SMMUv3 MSI IRQ path is unsupported for host suspend");
> +
>   	/* Add callback to free MSIs on teardown */
>   	devm_add_action(dev, arm_smmu_free_msis, dev);
>   }
> diff --git a/xen/include/xen/serial.h b/xen/include/xen/serial.h
> index 8e18445552..418b00ead0 100644
> --- a/xen/include/xen/serial.h
> +++ b/xen/include/xen/serial.h
> @@ -137,6 +137,7 @@ const struct vuart_info* serial_vuart_info(int idx);
>   /* Serial suspend/resume. */
>   void serial_suspend(void);
>   void serial_resume(void);
> +bool serial_suspend_supported(void);
>   #endif
>   
>   /*
> diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
> index 6f94fd53b0..a941331035 100644
> --- a/xen/include/xen/suspend.h
> +++ b/xen/include/xen/suspend.h
> @@ -6,6 +6,8 @@
>   #if __has_include(<asm/suspend.h>)
>   #include <asm/suspend.h>
>   #else
> +struct domain;
> +
>   static inline void arch_domain_resume(struct domain *d) {}
>   #endif
>   



From xen-devel-bounces@lists.xenproject.org Sun May 17 15:13:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 May 2026 15:13:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311281.1581479 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOdAl-0007dg-7Q; Sun, 17 May 2026 15:12:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311281.1581479; Sun, 17 May 2026 15:12:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOdAl-0007dZ-3Y; Sun, 17 May 2026 15:12:55 +0000
Received: by outflank-mailman (input) for mailman id 1311281;
 Sun, 17 May 2026 15:12:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <olekstysh@gmail.com>) id 1wOdAj-0007dT-Ss
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 15:12:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOdAj-005ro4-50
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 17:12:53 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a09dae3-e002-0a2a0a5209dd-0a2a45098bc2-4
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 17:12:53 +0200
Received: from [209.85.208.169] (helo=mail-lj1-f169.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a09daf4-2497-0a2a45090019-d155d0a9cd1d-3
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 17:12:52 +0200
Received: by mail-lj1-f169.google.com with SMTP id
 38308e7fff4ca-393c40246afso18785471fa.1
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 08:12:52 -0700 (PDT)
Received: from [192.168.0.112] ([91.123.151.42])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-395882c41c1sm5715151fa.12.2026.05.17.08.12.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 17 May 2026 08:12:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779030772; x=1779635572; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=z15437ihNsBn2bknoWGnhSYwX6Gf3shYweS8Kz4hD5w=;
        b=JLGRq2zJkZUeiVv/tgQIfF8vRAICe+eZA57UAsL7RG5CuG/ee25rd6+4hI0RtNWIJh
         csdf5ksRe5SFrpWUYfhv/3ZrNgXM5peCvrE0reoHQc1IXz7pi2jMO9UOIRfDBn964T8v
         quiSb9CQKPOhdLYKDn5A2xAk9RDivUEfKQqxEELofBim7/cwhcnoZdrEFKi+MjiUpv/m
         89DMXocQl0llW4B2Xmy9VT5BjMe7+TCgEw8k7gVkIo49KY+obY4NeUD8x6FqclWqaMBp
         lqDHeqLSqKDR1rjao2Q2ej94lKDJpe4SBIjZ8RMkULnCWNsHsCxPAG7TtvdlqS8v3KS8
         I9mw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779030772; x=1779635572;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=z15437ihNsBn2bknoWGnhSYwX6Gf3shYweS8Kz4hD5w=;
        b=WR0Kqo0KEwYcyo5TMm2Zz8ETNOE/W1ooNMdZEjJJgrtgoWMZ/WWvE/1cN8WHZxHPtu
         ZklBfunvySlSvELR93OSzFZHYjX42kUB1qiSXMBV+m9OHZVUEnWx/i58dP1098l9aza9
         00/cFzCh8v9GfwTLs8/bbbwvE+JCwVPakIm8biPCUnaWsvpL7gZf1ozeSOaKLs3Tl1JP
         ZbtOwCFWAIiLoUY15x2a/r2k9pL+NddpMeFunjbagcg8v1j+uXqePx7rHmoxX3bNVyEV
         AEaXKUgI6OM2I4Jm4pBHV/9LTzuKuPSTLUfEmjN0h+AD14LEYxlxGIJyFP+lKO1g+6KT
         6+Qg==
X-Gm-Message-State: AOJu0Yzs64FPMNlYzmpQCCbJHqU41OM3Q51CbIIT3NixHgR9iTM/FJ9+
	t+WPlkyp4xrjrKZVz6ak1im71QPVEDnevgMEmOyLZs1x6K4MC69W3ud8
X-Gm-Gg: Acq92OFmynKw2TWYs5lKlz6/N2s+g4rj5kq7i17JxwDbfZehAgqSz4dbDRbchf69BD9
	jT8ZVLTg8CYqDXim5xhdWb/DTZM0G1ZnPcb3a+0AL/+2R6KKGkd7hWHYtBuh492CmJIS5/tT8oY
	Q1NDyX1lhvCkFSudUVc1XQVEh3JamLFna3lz5aaOrUSxot+IJPLFs1NsD55lPwyrAo4NwiHfPAb
	9gc188pBCAJpTZkhVj6LyYyQdHbR7tgsMUxHr51f50vvup17r6xL5HgN6x95LxUuxT8r/VgrVZ7
	gbU7pY381HB26Sbcdq0KuxAsvBjxwMjCSf7C8G2WLOWmUWDEhf2j7l5lGTogR1Nke7bGIh6faSw
	YVHd8A4VN5M+PfsKk9lArbNcjmnEbfIgj+oZk7t3gDwEElaY2eAEmN/Y74zLOjjmFX3IhR/Bzw7
	HkvgrEaPR+WvbsN08oob995Fktew==
X-Received: by 2002:a2e:a995:0:b0:38e:186e:350e with SMTP id 38308e7fff4ca-39561a26af2mr33975421fa.7.1779030771927;
        Sun, 17 May 2026 08:12:51 -0700 (PDT)
Message-ID: <636cda11-bc98-44e9-a333-5a61cc86e0dd@gmail.com>
Date: Sun, 17 May 2026 18:12:48 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 08/13] iommu/ipmmu-vmsa: Implement suspend/resume
 callbacks
To: Luca Fancellu <Luca.Fancellu@arm.com>,
 Mykola Kvach <xakep.amatop@gmail.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <4162aa58c351677a4a267fe85989c6d4e07487d8.1778605274.git.mykola_kvach@epam.com>
 <28587F96-D8A1-46FA-91B0-D9A30E55EFC9@arm.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <28587F96-D8A1-46FA-91B0-D9A30E55EFC9@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779030772-41165A53-7D061DD8/0/0
X-purgate-type: clean
X-purgate-size: 8134



On 5/14/26 18:57, Luca Fancellu wrote:
> Hi Mykola,

Hello Luca and Mykola

> 
>>
>> diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
>> index fa9ab9cb13..e1b47a5824 100644
>> --- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
>> +++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
>> @@ -71,6 +71,8 @@
>> })
>> #endif
>>
>> +#define dev_dbg(dev, fmt, ...)    \
>> +    dev_print(dev, XENLOG_DEBUG, fmt, ## __VA_ARGS__)
>> #define dev_info(dev, fmt, ...)    \
>>      dev_print(dev, XENLOG_INFO, fmt, ## __VA_ARGS__)
>> #define dev_warn(dev, fmt, ...)    \
>> @@ -130,6 +132,24 @@ struct ipmmu_features {
>>      unsigned int imuctr_ttsel_mask;
>> };
>>
>> +#ifdef CONFIG_SYSTEM_SUSPEND
>> +
>> +struct ipmmu_reg_ctx {
>> +    unsigned int imttlbr0;
>> +    unsigned int imttubr0;
>> +    unsigned int imttbcr;
>> +    unsigned int imctr;
>> +};
>> +
>> +struct ipmmu_vmsa_backup {
>> +    struct device *dev;
>> +    unsigned int *utlbs_val;
>> +    unsigned int *asids_val;
>> +    struct list_head list;
>> +};
>> +
>> +#endif
>> +
>> /* Root/Cache IPMMU device's information */
>> struct ipmmu_vmsa_device {
>>      struct device *dev;
>> @@ -142,6 +162,9 @@ struct ipmmu_vmsa_device {
>>      struct ipmmu_vmsa_domain *domains[IPMMU_CTX_MAX];
>>      unsigned int utlb_refcount[IPMMU_UTLB_MAX];
>>      const struct ipmmu_features *features;
>> +#ifdef CONFIG_SYSTEM_SUSPEND
>> +    struct ipmmu_reg_ctx *reg_backup[IPMMU_CTX_MAX];
>> +#endif
>> };
>>
>> /*
>> @@ -547,6 +570,245 @@ static void ipmmu_domain_free_context(struct ipmmu_vmsa_device *mmu,
>>      spin_unlock_irqrestore(&mmu->lock, flags);
>> }
>>
>> +#ifdef CONFIG_SYSTEM_SUSPEND
>> +
>> +static DEFINE_SPINLOCK(ipmmu_devices_backup_lock);
>> +static LIST_HEAD(ipmmu_devices_backup);
>> +
>> +static struct ipmmu_reg_ctx root_pgtable[IPMMU_CTX_MAX];
>> +
>> +static uint32_t ipmmu_imuasid_read(struct ipmmu_vmsa_device *mmu,
>> +                                   unsigned int utlb)
>> +{
>> +    return ipmmu_read(mmu, ipmmu_utlb_reg(mmu, IMUASID(utlb)));
>> +}
>> +
>> +static void ipmmu_utlbs_backup(struct ipmmu_vmsa_device *mmu)
>> +{
>> +    struct ipmmu_vmsa_backup *backup_data;
>> +
>> +    dev_dbg(mmu->dev, "Handle micro-TLBs backup\n");
>> +
>> +    spin_lock(&ipmmu_devices_backup_lock);
>> +
>> +    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
>> +    {
>> +        struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(backup_data->dev);
>> +        unsigned int i;
>> +
>> +        if ( to_ipmmu(backup_data->dev) != mmu )
>> +            continue;
>> +
>> +        for ( i = 0; i < fwspec->num_ids; i++ )
>> +        {
>> +            unsigned int utlb = fwspec->ids[i];
>> +
>> +            backup_data->asids_val[i] = ipmmu_imuasid_read(mmu, utlb);
>> +            backup_data->utlbs_val[i] = ipmmu_imuctr_read(mmu, utlb);
>> +        }
>> +    }
>> +
>> +    spin_unlock(&ipmmu_devices_backup_lock);
>> +}
>> +
>> +static void ipmmu_utlbs_restore(struct ipmmu_vmsa_device *mmu)
>> +{
>> +    struct ipmmu_vmsa_backup *backup_data;
>> +
>> +    dev_dbg(mmu->dev, "Handle micro-TLBs restore\n");
>> +
>> +    spin_lock(&ipmmu_devices_backup_lock);
>> +
>> +    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
>> +    {
>> +        struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(backup_data->dev);
>> +        unsigned int i;
>> +
>> +        if ( to_ipmmu(backup_data->dev) != mmu )
>> +            continue;
>> +
>> +        for ( i = 0; i < fwspec->num_ids; i++ )
>> +        {
>> +            unsigned int utlb = fwspec->ids[i];
>> +
>> +            ipmmu_imuasid_write(mmu, utlb, backup_data->asids_val[i]);
>> +            ipmmu_imuctr_write(mmu, utlb, backup_data->utlbs_val[i]);
>> +        }
>> +    }
>> +
>> +    spin_unlock(&ipmmu_devices_backup_lock);
>> +}
>> +
>> +static void ipmmu_domain_backup_context(struct ipmmu_vmsa_domain *domain)
>> +{
>> +    struct ipmmu_vmsa_device *mmu = domain->mmu->root;
>> +    struct ipmmu_reg_ctx *regs = mmu->reg_backup[domain->context_id];
>> +
>> +    dev_dbg(mmu->dev, "Handle domain context %u backup\n", domain->context_id);
>> +
>> +    regs->imttlbr0 = ipmmu_ctx_read_root(domain, IMTTLBR0);
>> +    regs->imttubr0 = ipmmu_ctx_read_root(domain, IMTTUBR0);
>> +    regs->imttbcr  = ipmmu_ctx_read_root(domain, IMTTBCR);
>> +    regs->imctr    = ipmmu_ctx_read_root(domain, IMCTR);
>> +}
>> +
>> +static void ipmmu_domain_restore_context(struct ipmmu_vmsa_domain *domain)
>> +{
>> +    struct ipmmu_vmsa_device *mmu = domain->mmu->root;
>> +    struct ipmmu_reg_ctx *regs  = mmu->reg_backup[domain->context_id];
> 
> NIT: There is a double space before the `=`
> 
>> +
>> +    dev_dbg(mmu->dev, "Handle domain context %u restore\n", domain->context_id);
>> +
>> +    ipmmu_ctx_write_root(domain, IMTTLBR0, regs->imttlbr0);
>> +    ipmmu_ctx_write_root(domain, IMTTUBR0, regs->imttubr0);
>> +    ipmmu_ctx_write_root(domain, IMTTBCR,  regs->imttbcr);
>> +    ipmmu_ctx_write_all(domain,  IMCTR,    regs->imctr | IMCTR_FLUSH);
> 
> I see in ipmmu_tlb_invalidate() we do:
> dsb(sy);
> ipmmu_tlb_sync(domain);
> 
> Is it safe to omit them here?

Luca, good question, thanks. Below my understanding (which might be wrong):

The IMCTR_FLUSH bit here is not an explicit TLB invalidation request — 
it is required by the HW whenever context registers are modified 
(regardless of whether an actual TLB flush is the intent). For example, 
ipmmu_domain_init_context() similarly writes:

ipmmu_ctx_write_root(domain, IMCTR,
                      IMCTR_VA64 | IMCTR_INTEN | IMCTR_FLUSH | IMCTR_MMUEN);

and does not follow it with dsb(sy) / ipmmu_tlb_sync().

In contrast, ipmmu_tlb_invalidate() does include the sync because it is 
an explicit flush request from the P2M framework, and we need a 
guarantee that the invalidation has completed before proceeding.

Here, we are simply restoring context registers after resume, there is 
no caller waiting on flush completion, so the additional synchronization 
is not necessary from my PoV.


> 
>> +}
>> +
>> +/*
>> + * Xen: Unlike Linux implementation, Xen uses a single driver instance
>> + * for handling all IPMMUs. There is no framework for ipmmu_suspend/resume
>> + * callbacks to be invoked for each IPMMU device. So, we need to iterate
>> + * through all registered IPMMUs performing required actions.
>> + *
>> + * Also take care of restoring special settings, such as translation
>> + * table format, etc.
>> + */
>> +static int __must_check ipmmu_suspend(void)
>> +{
>> +    struct ipmmu_vmsa_device *mmu;
>> +
>> +    if ( !iommu_enabled )
>> +        return 0;
>> +
>> +    printk(XENLOG_DEBUG "ipmmu: Suspending...\n");
>> +
>> +    spin_lock(&ipmmu_devices_lock);
>> +
>> +    list_for_each_entry( mmu, &ipmmu_devices, list )
>> +    {
>> +        if ( ipmmu_is_root(mmu) )
>> +        {
>> +            unsigned int i;
>> +
>> +            for ( i = 0; i < mmu->num_ctx; i++ )
>> +            {
>> +                if ( !mmu->domains[i] )
>> +                    continue;
>> +                ipmmu_domain_backup_context(mmu->domains[i]);
>> +            }
>> +        }
>> +        else
>> +            ipmmu_utlbs_backup(mmu);
>> +    }
>> +
>> +    spin_unlock(&ipmmu_devices_lock);
>> +
>> +    return 0;
>> +}
>> +
>> +static void ipmmu_resume(void)
>> +{
>> +    struct ipmmu_vmsa_device *mmu;
>> +
>> +    if ( !iommu_enabled )
>> +        return;
>> +
>> +    printk(XENLOG_DEBUG "ipmmu: Resuming...\n");
>> +
>> +    spin_lock(&ipmmu_devices_lock);
>> +
>> +    list_for_each_entry( mmu, &ipmmu_devices, list )
> 
> This loop has an ordering problem because we can run ipmmu_utlbs_restore() before
> the root ipmmu is restored (ipmmu_probe() uses `list_add()`).
> Maybe going twice on the list, restoring first the root and in the second round the rest
> should work.
> 
> Cheers,
> Luca
> 
> 



From xen-devel-bounces@lists.xenproject.org Sun May 17 15:53:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 May 2026 15:53:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311234.1581488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOdnv-0004wY-1C; Sun, 17 May 2026 15:53:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311234.1581488; Sun, 17 May 2026 15:53:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOdnu-0004wR-UE; Sun, 17 May 2026 15:53:22 +0000
Received: by outflank-mailman (input) for mailman id 1311234;
 Sun, 17 May 2026 13:38:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <yashsuthar983@gmail.com>) id 1wObhK-0003F3-QC
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 13:38:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wObhK-0009gY-2g
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 15:38:26 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <yashsuthar983@gmail.com>)
 id 6a09c4cf-bab6-0a2a0a5309dd-0a2a4502e032-2
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 15:38:26 +0200
Received: from [209.85.214.178] (helo=mail-pl1-f178.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <yashsuthar983@gmail.com>)
 id 6a09c4d0-af86-0a2a45020019-d155d6b2dcfc-3
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 15:38:25 +0200
Received: by mail-pl1-f178.google.com with SMTP id
 d9443c01a7336-2bab2548e8bso5562085ad.0
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 06:38:25 -0700 (PDT)
Received: from yash-Bravo-15-B5DD.local ([14.99.167.142])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2bd5cfe64a9sm119689685ad.53.2026.05.17.06.38.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 17 May 2026 06:38:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779025104; x=1779629904; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=7Up+AAAQj+csNMtbAdRw7R9ZHQCbCzjkAYPzeriCxm8=;
        b=Pg9sdmm5yyc2RrI4QqDPfzuHYDAu6R4439w2+KGzZYDhjlvBlf4RSdBWLQPP+HnYl4
         lGPvL7TqCTsiAQPvZ8KzspKQ6GwyrweHefCahdy5Mqos27GfUmaAcmTDVypsub77XM7N
         C7Zx0+nhGm57bFC1Qpv+I4lLuCB5Zg/CliT96KNjqG5KC1aq8UdDDPaoMKEAkUJ+CFpH
         vdN4XxbyPZxiBBThNZqVdG7d3WCBjBmMpK8aGnlq17d7/5J2Ixt2hwCIfLkZtaNjTvQa
         Qevx9MgriJT8/kRlUXturrKloMNjnxJ344RijxwjEgc4R3JWstnFmOcufpyasPNxXQa2
         Qpbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779025104; x=1779629904;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7Up+AAAQj+csNMtbAdRw7R9ZHQCbCzjkAYPzeriCxm8=;
        b=TXTGz4x8gAHLGByFCFrS+4tILwR1LL6TgwWNn8Wg0BB2rMOmoKIY+m9elGM6zhjz1r
         1H2PRojFJJ3mt+yQnvhun6LLyrrOohRTIiiWLYrLTJk/LuM9zm0pjDRA8KFGmrhgaPq2
         9yLTY0HXg8dd7lNo00nRY0ILLBvX8O26HR1z10Xyk42liTQ/EkSAT61YRu+vngnRL62K
         jP9vNgh/DknWizZopc2uFrVn0YppvZLQAgetMSNMwhjqZ3Mb1H1Qf7UXERqqXLucpHHG
         /Sxs6w+pWMv2on4KFPJ/PUwh3x0h1tbM9nZMesqxe4J8Pw3redfx0E+AEtxxZQP/ph+F
         N4lg==
X-Forwarded-Encrypted: i=1; AFNElJ+Z9ehiacpEcDYRHKm43wI2+qYCsc6O+1sIzlGIzRLoIA13Ew2+PNtRljTG82WXtdPlSbC+f4MsLag=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx7VV//xPeyRiaoTynECDHaVmyWGkNGr0cnuCF4hujr4042PpIj
	33TJZi5iSRhp5Sr9iEEToeFw/vbXrlFeNmtRArZUsGnCPZF6H3JfHSBr
X-Gm-Gg: Acq92OGgDB/QpA9lVmqPzOCOYyeuU3pPtUIQ0b+f+jfc9A8wS0qlqWcm072oyNBSv7l
	dLDiJYabIN360QlMVjQBRgzEP47JWPEX7y0t6bAcgE+eKZCH54iIDgdzN+6PkoY9YoY1j+WvdP3
	1VB7NWAeGMmMnlH9uMIHWy1gJ9yqSArSYxILS22Gck9FdhwkfayS+2eWfOqufDqmhFT9AtUrkTk
	akTzueS1Udtw9UYo9Zm86MpDA0v5IcGnVY3kmXM7lXA9RwlypOyQ7OPyimCTkbOK8mgdwswluFC
	f1R50wdnIqnksex+ugzXVOg7o+5OuiVIuIHY+gJvgClsMqO9endIgN0Yuw8TI8jFNTQbFAvcTsv
	D++L20A+HGpizd5q26iBOHlQM50Q/S41dtejvhWIKofQu0KIDvxHj0KaoK2hO8Syr7lxjNzYuTB
	PAujOJEswKXKRsveeDRnKO64AKlZp0Q4/i4GOtjS2aE7CTfZoJ/QVfYy4=
X-Received: by 2002:a17:902:e743:b0:2b4:696b:7bb7 with SMTP id d9443c01a7336-2bd7e8ae070mr127427075ad.15.1779025103805;
        Sun, 17 May 2026 06:38:23 -0700 (PDT)
From: Yash Suthar <yashsuthar983@gmail.com>
To: jgross@suse.com,
	sstabellini@kernel.org
Cc: oleksandr_tyshchenko@epam.com,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	Yash Suthar <yashsuthar983@gmail.com>
Subject: [PATCH] xen: balloon: Replace sprintf() with sysfs_emit()
Date: Sun, 17 May 2026 19:08:17 +0530
Message-ID: <20260517133817.29691-1-yashsuthar983@gmail.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1779025106-82F6E161-133FE200/0/0
X-purgate-type: clean
X-purgate-size: 1548

Replace sprintf() calls with sysfs_emit() to follow current kernel
coding standards.

sysfs_emit() is the preferred method for formatting sysfs output as it
provides better bounds checking and is more secure.

Signed-off-by: Yash Suthar <yashsuthar983@gmail.com>
---
 drivers/xen/xen-balloon.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/xen/xen-balloon.c b/drivers/xen/xen-balloon.c
index b293d7652f15..67b0e2dbe84a 100644
--- a/drivers/xen/xen-balloon.c
+++ b/drivers/xen/xen-balloon.c
@@ -138,7 +138,7 @@ EXPORT_SYMBOL_GPL(xen_balloon_init);
 				   struct device_attribute *attr,	\
 				   char *buf)				\
 	{								\
-		return sprintf(buf, format, ##args);			\
+		return sysfs_emit(buf, format, ##args);			\
 	}								\
 	static DEVICE_ATTR_RO(name)
 
@@ -155,7 +155,7 @@ static DEVICE_BOOL_ATTR(scrub_pages, 0644, xen_scrub_pages);
 static ssize_t target_kb_show(struct device *dev, struct device_attribute *attr,
 			      char *buf)
 {
-	return sprintf(buf, "%lu\n", PAGES2KB(balloon_stats.target_pages));
+	return sysfs_emit(buf, "%lu\n", PAGES2KB(balloon_stats.target_pages));
 }
 
 static ssize_t target_kb_store(struct device *dev,
@@ -180,7 +180,7 @@ static DEVICE_ATTR_RW(target_kb);
 static ssize_t target_show(struct device *dev, struct device_attribute *attr,
 			   char *buf)
 {
-	return sprintf(buf, "%llu\n",
+	return sysfs_emit(buf, "%llu\n",
 		       (unsigned long long)balloon_stats.target_pages
 		       << PAGE_SHIFT);
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 17 17:28:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 May 2026 17:28:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311323.1581497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOfHo-0000eY-Gm; Sun, 17 May 2026 17:28:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311323.1581497; Sun, 17 May 2026 17:28:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOfHo-0000eR-De; Sun, 17 May 2026 17:28:20 +0000
Received: by outflank-mailman (input) for mailman id 1311323;
 Sun, 17 May 2026 17:28:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <olekstysh@gmail.com>) id 1wOfHm-0000e3-Ph
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 17:28:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOfHl-000Wbw-HZ
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 19:28:17 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a09fa0e-bab6-0a2a0a5309dd-0a2a4508d522-38
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 19:28:17 +0200
Received: from [209.85.167.50] (helo=mail-lf1-f50.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a09fab0-63b5-0a2a45080019-d155a732ac14-3
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 19:28:17 +0200
Received: by mail-lf1-f50.google.com with SMTP id
 2adb3069b0e04-5a8f9841616so1340385e87.0
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 10:28:17 -0700 (PDT)
Received: from [192.168.0.112] ([91.123.151.42])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a9164bc12asm2792303e87.42.2026.05.17.10.28.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 17 May 2026 10:28:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779038896; x=1779643696; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=f0nZfOiwNgvR4Mbx8ZzVOWKx6v/Kdg4ziHaQGgZUnOE=;
        b=T4tp0G3oCiKTSMnP13gggPQJ7Xiy8H+TWxmRwpBWzLPZ62eknv5zOYH0FmSK8sL4jA
         Dj9cbhJV2EQR0nPXXs0TjpIsh6EvqLD8KEx+HYhZotzTC1BwymhUL9ic7pg6b9L/rqq/
         A5QeHKBWPT+MvfAnKVHoJVhZD2bRiHGuM16WWstjl5Dg4R9td35Nya3jZ43CyExx38u0
         vdjXkP9PubD/a3ROrxevZF9uHsUBigr6Kkv2uQMUbXeNDzhk87CvGeEsiPrM0oWuqWBA
         ysVgcNTIp3eQ2NgKnhsO6ZusTopTPFgUl+OdCzGKUz5gRAqZhNZwFIlqgatL0sTNAQzj
         WhcQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779038896; x=1779643696;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=f0nZfOiwNgvR4Mbx8ZzVOWKx6v/Kdg4ziHaQGgZUnOE=;
        b=mOChkLCTc/KpZZEsIUA0kgZLPCI3aj3Wc/vroms48GJmTP0IySP6x/zciHODgDlkpG
         caAt9M4405XKF9nK+5RxEYfGU1a7nUpy+qN+p4Rj5IW1AcJl794plaQQ0+GUFn1PRK/m
         SuquE38tKZHa2PMbnENxX5OmDIBbGc63qKocg48eZPNu57NWxL7tHhe4bwPV6MBXLwfn
         fAT9Aw1UNqH8dzxWzRUbf4sGjN3zTeQHeidPtEp2c0BmjGCnHPZEsn1SoTJcnndHUalY
         2JfA1Nk4sMtAwh7jY/GHDen1twwpd3Cdkqll0wk49PyCClrdc3KKj5xd61sJEYFKnJ0f
         W1zg==
X-Gm-Message-State: AOJu0Yw0chOMzkClMI+8zzwFsEMa4nREdLvCLIxHbqGOrLNGqs/1N2+p
	MXEFHgqUHGp/J0NvLcLcNF++tyXVj5cED6hX37LywNXKChj2at30IxWO
X-Gm-Gg: Acq92OF7TZKW7j/avk6wfz/SNh2BpgjNqASfN5UtHPa7JaI1XnSrtQzN0KpLNX3rkrA
	A59z2UaOd5AKoJXYYnN0m6cwC+F9exZLEmr7Cc8GUkNUGpY7kPlUpdKEbNfFtFSFY+eELalWtRi
	NQsEiWYG4bNH6cgoSCesdBhAYsGnFK9lNj8us4+6xSF9gf/Qyl0DegY9j7sI1Umf+nJi6ojonHd
	Q0EAxi+q51z2VReE3SmoVEQWk7gycHA2NGVB52XJ9yC2unHvApV4fBlPqaFVMmZJIbdP5Niumzc
	6nuJUo8q2NN/1U6WXJgrj3RH7BdyNtNP3qjKqpXFlVHY8uhViSsN4xebwPyaR6CUM+9MtEZvS6i
	nYk4Kb2q0+X+ItjKe2LghCuBq1HuLPOJMPT9PLIW2UDoo4z8RxtecbkdW0POttYSghxk/GLPq8X
	PeeqhWaNHp7JCPJ92JfYEDMqoy/XUXgp6YMgKZ
X-Received: by 2002:a05:6512:3d88:b0:5a4:1798:31ba with SMTP id 2adb3069b0e04-5aa0e7321e5mr4498476e87.21.1779038896127;
        Sun, 17 May 2026 10:28:16 -0700 (PDT)
Message-ID: <a99d4c20-446c-4c5c-b95c-8b317eb1a0c2@gmail.com>
Date: Sun, 17 May 2026 20:28:13 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 10/13] xen/arm64: Save/restore CPU context across
 SYSTEM_SUSPEND
To: Luca Fancellu <Luca.Fancellu@arm.com>,
 Mykola Kvach <xakep.amatop@gmail.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <46bbc9e008a65dd86fb2b368e4751eb7d2014afa.1778605274.git.mykola_kvach@epam.com>
 <7254EEC1-315F-41EB-B623-5CACAD7255E9@arm.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <7254EEC1-315F-41EB-B623-5CACAD7255E9@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1779038897-B6975DB1-D2455346/0/0
X-purgate-type: clean
X-purgate-size: 3168



On 5/14/26 20:20, Luca Fancellu wrote:
> Hi Mykola,

Hello Mykola and Luca

Mykola, I have no further comments on this patch, but I think Luca has 
raised a valid point. Once that is resolved (or clarified why no change 
is needed), feel free to add my:
Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

see below

> 
>>
>> +#ifdef CONFIG_SYSTEM_SUSPEND
>> +/*
>> + * int prepare_resume_ctx(void)
>> + *
>> + * CPU context saved here will be restored on resume in hyp_resume function.
>> + * prepare_resume_ctx shall return a non-zero value. Upon restoring context
>> + * hyp_resume shall return value zero instead. From C code that invokes
>> + * prepare_resume_ctx, the return value is interpreted to determine whether
>> + * the context is saved (prepare_resume_ctx) or restored (hyp_resume).
>> + */
>> +FUNC(prepare_resume_ctx)
>> +        ldr   x0, =resume_cpu_context
>> +
>> +        /* Store callee-saved registers */
>> +        stp   x19, x20, [x0, #RESUME_CTX_X19]
>> +        stp   x21, x22, [x0, #RESUME_CTX_X21]
>> +        stp   x23, x24, [x0, #RESUME_CTX_X23]
>> +        stp   x25, x26, [x0, #RESUME_CTX_X25]
>> +        stp   x27, x28, [x0, #RESUME_CTX_X27]
>> +        stp   x29, lr, [x0, #RESUME_CTX_X29]
>> +
>> +        /* Store stack-pointer */
>> +        mov   x2, sp
>> +        str   x2, [x0, #RESUME_CTX_SP]
>> +
>> +        /* Store system control registers */
>> +        mrs   x2, VBAR_EL2
>> +        str   x2, [x0, #RESUME_CTX_VBAR_EL2]
>> +        mrs   x2, VTCR_EL2
>> +        str   x2, [x0, #RESUME_CTX_VTCR_EL2]
>> +        mrs   x2, VTTBR_EL2
>> +        str   x2, [x0, #RESUME_CTX_VTTBR_EL2]
>> +        mrs   x2, TPIDR_EL2
>> +        str   x2, [x0, #RESUME_CTX_TPIDR_EL2]
>> +        mrs   x2, MDCR_EL2
>> +        str   x2, [x0, #RESUME_CTX_MDCR_EL2]
>> +        mrs   x2, HSTR_EL2
>> +        str   x2, [x0, #RESUME_CTX_HSTR_EL2]
>> +        mrs   x2, CPTR_EL2
>> +        str   x2, [x0, #RESUME_CTX_CPTR_EL2]
>> +        mrs   x2, HCR_EL2
>> +        str   x2, [x0, #RESUME_CTX_HCR_EL2]
> 
> Do you think we should save also CNTHCTL_EL2? Apologies it escaped my first review,
> but I see we program it in the boot cpu path + secondary cpu path: init_timer_interrupt().


Yes, CNTHCTL_EL2 is programmed by init_timer_interrupt() during the 
initialization of both boot and secondary CPUs. Whether it needs to be 
saved here depends on the resume path:

  - If the resume handler (after prepare_resume_ctx() returns 0) 
re-invokes timer initialization, it is already covered.
  - If not, CNTHCTL_EL2 should be added to struct resume_cpu_context and 
included in the save/restore assembly.

If I understand the current flow correctly:
  - Secondary CPUs wake up via hotplug, so they execute 
start_secondary()->init_timer_interrupt() and configure CNTHCTL_EL2.
  - The boot CPU wakes up via hyp_resume() and jumps straight back to C 
code, which appears to bypass init_timer_interrupt() call. At least I 
have not spotted where system_suspend() would re-invoke it.


> 
> The rest looks ok.
> 
> Cheers,
> Luca
> 
> 



From xen-devel-bounces@lists.xenproject.org Sun May 17 18:19:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 May 2026 18:19:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311331.1581505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOg5U-0007Nz-2N; Sun, 17 May 2026 18:19:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311331.1581505; Sun, 17 May 2026 18:19:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOg5T-0007Ns-Vt; Sun, 17 May 2026 18:19:39 +0000
Received: by outflank-mailman (input) for mailman id 1311331;
 Sun, 17 May 2026 18:19:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOg5S-0007Nm-7x
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 18:19:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOg5R-00BpRK-KV
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 20:19:37 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0a0673-5cb7-0a2a0a5109dd-0a2a4508e910-34
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 20:19:37 +0200
Received: from [209.85.208.169] (helo=mail-lj1-f169.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0a06b9-63b5-0a2a45080019-d155d0a9a53c-3
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 20:19:37 +0200
Received: by mail-lj1-f169.google.com with SMTP id
 38308e7fff4ca-392445f11c5so18033211fa.1
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 11:19:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779041977; cv=none;
        d=google.com; s=arc-20240605;
        b=flU2q9PuQnkn5+UWUKxmspMkp6OJWVeTccKkcAsMcBkHaxZdjCqvXzHQ5fDxXJ6QtV
         jr/vnFgxsEXBeD12Y6POEdeDO52wcBIvmSotAJ0WriKtXECL92T75unb74DxiRcolJtT
         6uINj49Yp01sr7Vt5OwH6wOmu2S2Xr2vIv99cmEZv1MDPy/BJ0ZOk2RhDICOv+7ZssSg
         sThTN1o9Gw8rzb324nfJKb0tQKKvGoAwTIt6IHeFu5ILLMAmvEIWFzmZ9fvKXOawJUIu
         hGmw4+CKfYudCric1EcaOWp8q3Ce9IC65Bpp+OYjPxtFJsURg8+R9pZKWHJ6bvdsdpEm
         v09A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=YyolJmAcUVh+sm7ixV7LFL/JAxTKpQ9xmGSvTegaVz8=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=Cy08y5H35zL4BtABNhj6F8FXBtkQseEIg4RU5sy+Y139vlgMzeV+KbilHo1n7mIAe7
         nHq8mVCQKubetdCig3grC+jpJhEdkJL10q6HSz7c5uGtzLk5OEPG5Z5HoWWWCpQMCWas
         I2bsFkedG/igGpT5zuDPJyJQQLWXAW1zSYKEyBv239tYW0o05BjRAsXxxRX3muof23R1
         N7prdhUlISvD/dmbSPAWeg18LdmUx/LHo/0t+s5ZkdmvOpificLyQxJgjMLt/t597fKM
         1Xl7Xn0Wr21vWK3+vHc8IMFxOfhtbJMo5xkpBm/TFKTYCly4mn+pIVsS/eMWEXBHA/WM
         7pVw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779041977; x=1779646777; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YyolJmAcUVh+sm7ixV7LFL/JAxTKpQ9xmGSvTegaVz8=;
        b=U27ErRNrS1U3GzjHmZ/+gb8QmoemqfCvI0wG3sZY4FMLSKgMVi4vF1zdFEKAMz7HLe
         GG18GBmDXQJAYHwUQe/IqAHo2d/5b7hxqmYoyfQwN1AONnOv7M5CsTsq8SzUCT9j0v+5
         25q8bjdTX6oaO6+0rx9gm81lkHb7dHHinM0Bhyzx3gzgX1tMqnX8vDBicSxMu5vNhAmM
         fhr4sMwPKTKbvW6HQphQS3NqeQeXoAA+Do4NPSLsMaP/X0P6TG2nGKyKNvuQ8o+zCNuA
         TQtiK/AlVzBDr/tWNrhi8xjNnRc5cZAv+dMQysPNtE5EAelbW5eLkJ22FKU81OY3xd84
         X/BA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779041977; x=1779646777;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=YyolJmAcUVh+sm7ixV7LFL/JAxTKpQ9xmGSvTegaVz8=;
        b=ERgKgqpK2JOd5BqZeSXczUdBOBq3zQ0/y+v2YKRdCaiCoNNcnqmM1aItFg92ToDID4
         1OAeyRcYhpYSI0wWq2X+P46vWpB3j29P4PzV1N2tDSl8u0KUCvx8FF/wFG+AoJGm50l5
         IKk8Vq/rpyeui3t76OsML9tmWtU/yvc9ICC/Ny6w36jUsbPYcEBr5RdZurRixNdJoEKP
         6e4/FB/uwhv0qPSUsaTCSI94DqLxETXiHHHlUD6+F7/tm1fTlLoJDnoUlXAaTNhHS1ZY
         vD1iTXnWFiKDogJQ/TJfiYxxYKvEQ7JiTjD/K2mVX9pdTJA2YOLk0QqyenlDnzRhuf+w
         o5fg==
X-Gm-Message-State: AOJu0Yw0g3ryfdt9ATEcevGyt8l9MoQhGXwlgPzZyaYPaJj6GiHuMgAG
	eLUi1vueyJKC+OANZiae1nB7ejuYXykxUGXLfzJYZmjHW0Ky3715iFq/rfFgeSIFgneWnw6shuX
	qYHJ8LPTMNxCydBI0Ux75sZwG9O253+Y=
X-Gm-Gg: Acq92OFFscn84owdIEiQMZsvip9TsyTq/jLlgcmSjArtwljPx7pduUWWN3f/4H+qyRw
	XXDFSHZ4KD7EC+1R4g34JTGRhQGf7V7+41l/95UDLImIggOwkkfrUksUj4/n3/hVjokQMEZ5Gqp
	w6BFbubLhPJw82q0RPjY4CBk3pjcx/Dlrv6GlbCyfNAAWApjAEd1WhRhOywO0JWIhhXivRRWjfn
	RZT+LkUt/dMvq8cVaoBoCp0L+c3j+FzimEL5iCwRleUqVI5r36x/qzVozc9RsGvDbAkBxQJyPUQ
	yVJu
X-Received: by 2002:a2e:a304:0:b0:38e:96c4:9244 with SMTP id
 38308e7fff4ca-3945b4fcd36mr35139421fa.9.1779041976495; Sun, 17 May 2026
 11:19:36 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778605274.git.mykola_kvach@epam.com> <613c8d67a66924ea62c2436dac14708d939f6784.1778605274.git.mykola_kvach@epam.com>
 <8E531A25-5AB5-41CD-AB61-C426C58C8E1C@arm.com> <CAGeoDV8aKWLKVZN1oz4cUoaZbXX39q4gHgOp=w=0zPhhaN311A@mail.gmail.com>
 <1142B5E5-961F-4CD1-B70F-88630F0DA8F7@arm.com>
In-Reply-To: <1142B5E5-961F-4CD1-B70F-88630F0DA8F7@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Sun, 17 May 2026 21:19:25 +0300
X-Gm-Features: AVHnY4J9xrdUtScx0AsbAllwzduE8OhEVZGnNClr5nX5BwoBG_obnEJB7O7T9Io
Message-ID: <CAGeoDV_Zmw8TGJkESWiB6rZKWrMn7EsQ-7=feCvmhukezhpNdQ@mail.gmail.com>
Subject: Re: [PATCH v9 02/13] xen/arm: gic-v2: Implement GIC suspend/resume functions
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c1860d/1779041977-BEB74DB1-48E914A2/0/0
X-purgate-type: clean
X-purgate-size: 6353

On Fri, May 15, 2026 at 12:53=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.c=
om> wrote:
>
> Hi Mykola,
>
> > On 15 May 2026, at 08:59, Mykola Kvach <xakep.amatop@gmail.com> wrote:
> >
> > Hi Luca,
> >
> > Thank you for the detailed review.
> >
> > On Wed, May 13, 2026 at 5:09=E2=80=AFPM Luca Fancellu <Luca.Fancellu@ar=
m.com> wrote:
> >>
> >> Hi Mykola,
> >>
> >>> +
> >>> +static void gicv2_resume(void)
> >>> +{
> >>> +    unsigned int i, blocks =3D DIV_ROUND_UP(gicv2_info.nr_lines, 32)=
;
> >>> +
> >>> +    gicv2_cpu_disable();
> >>> +    /* Disable distributor */
> >>> +    writel_gicd(0, GICD_CTLR);
> >>> +
> >>> +    for ( i =3D 0; i < blocks; i++ )
> >>> +    {
> >>> +        struct irq_block *irqs =3D gic_ctx.dist.irqs + i;
> >>> +        size_t j, off =3D i * sizeof(irqs->isenabler);
> >>> +
> >>> +        writel_gicd(GENMASK(31, 0), GICD_ICENABLER + off);
> >>> +        writel_gicd(irqs->isenabler, GICD_ISENABLER + off);
> >>> +
> >>> +        writel_gicd(GENMASK(31, 0), GICD_ICACTIVER + off);
> >>> +        writel_gicd(irqs->isactiver, GICD_ISACTIVER + off);
> >>> +
> >>> +        off =3D i * sizeof(irqs->ipriorityr);
> >>> +        for ( j =3D 0; j < ARRAY_SIZE(irqs->ipriorityr); j++ )
> >>> +            writel_gicd(irqs->ipriorityr[j], GICD_IPRIORITYR + off +=
 j * 4);
> >>
> >> apologies for spotting these only now, in case gicv2_info.nr_lines is =
1020,
> >> here and below for GICD_ITARGETSR we are going to save also IDs 1020-1=
023
> >> which are reserved.
> >>
> >> Could we assume irqs->ipriorityr and irqs->itargetsr have the same siz=
e and implement
> >> some cap logic which might cap the last loop (eventually):
> >>
> >>    for ( i =3D 0; i < blocks; i++ )
> >>    {
> >>        struct irq_block *irqs =3D gic_ctx.dist.irqs + i;
> >>        size_t j, off =3D i * sizeof(irqs->isenabler);
> >>        size_t nr_regs =3D ARRAY_SIZE(irqs->ipriorityr);
> >>
> >>        if ( i =3D=3D blocks - 1 )
> >>            nr_regs =3D DIV_ROUND_UP(gicv2_info.nr_lines - i * 32, 4);
> >>
> >>        [=E2=80=A6]
> >>
> >>        off =3D i * sizeof(irqs->ipriorityr);
> >>        for ( j =3D 0; j < nr_regs; j++ )
> >>            writel_gicd(irqs->ipriorityr[j], GICD_IPRIORITYR + off + j =
* 4);
> >>
> >>        /*
> >>         * GICD_ITARGETSR0..7 cover SGIs/PPIs and hold no state to save=
:
> >>         * they are read-only on multiprocessor implementations and RAZ=
/WI
> >>         * on uniprocessor implementations.
> >>         */
> >>        if ( i )
> >>        {
> >>            off =3D i * sizeof(irqs->itargetsr);
> >>            for ( j =3D 0; j < nr_regs; j++ )
> >>                writel_gicd(irqs->itargetsr[j], GICD_ITARGETSR + off + =
j * 4);
> >>        }
> >>
> >>        [=E2=80=A6]
> >>    }
> >
> > This was intentional to keep the logic simpler.
> >
> > For the 1020-interrupt case, the extra word would correspond to
> > interrupt IDs 1020-1023. My reading of ARM IHI 0048B.b is that this
> > is architecturally harmless: section 4.1.2 says that reserved
> > Distributor register addresses are RAZ/WI, and Table 4-1 marks
> > GICD_IPRIORITYR offset 0x7fc and GICD_ITARGETSR offset 0xbfc as
> > Reserved.
> >
> > Would you be OK with keeping this as-is, or would you prefer me to add
> > the cap logic anyway?
>
> I think this would be the only part in the driver that does that, also Li=
nux is avoiding
> to touch these reserved parts
> (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/=
drivers/irqchip/irq-gic.c?h=3Dv7.1-rc3#n582)
> My preference would be to be consistent.

Ack. I'll add the cap logic.

>
> >
> >>
> >>> +
> >>> +        /*
> >>> +         * GICD_ITARGETSR0..7 cover SGIs/PPIs and hold no state to s=
ave:
> >>> +         * they are read-only on multiprocessor implementations and =
RAZ/WI
> >>> +         * on uniprocessor implementations.
> >>> +         */
> >>> +        if ( i )
> >>> +        {
> >>> +            off =3D i * sizeof(irqs->itargetsr);
> >>> +            for ( j =3D 0; j < ARRAY_SIZE(irqs->itargetsr); j++ )
> >>> +                writel_gicd(irqs->itargetsr[j], GICD_ITARGETSR + off=
 + j * 4);
> >>> +        }
> >>> +
> >>> +        off =3D i * sizeof(irqs->icfgr);
> >>> +        for ( j =3D 0; j < ARRAY_SIZE(irqs->icfgr); j++ )
> >>> +            writel_gicd(irqs->icfgr[j], GICD_ICFGR + off + j * 4);
> >>
> >> in the GICv2 specs the usage constraints
> >> of GICD_ICFGR says: =E2=80=9CBefore changing the value of a programmab=
le Int_config field,
> >> software must disable the corresponding interrupt, otherwise GIC behav=
ior is
> >> UNPREDICTABLE"
> >>
> >> ARM IHI 0048B.b, 4.3.13.
> >>
> >> I think we should move this restore just after GICD_ICENABLER write, b=
efore writing
> >> GICD_ISENABLER.
> >
> > Good catch, I agree.
> >
> > I will move the GICD_ICFGR restore after the GICD_ICENABLER writes
> > and before restoring GICD_ISENABLER, so that programmable Int_config
> > fields are restored while the corresponding interrupts are disabled.
> >
> > I will also check whether it makes sense to move the other
> > configuration restores before GICD_ISENABLER as well. The spec does
> > not seem to impose the same strict requirement there, but keeping all
> > configuration restores before re-enabling the interrupts might make
> > the ordering clearer.
> >
> >>
> >> And also the section says that the GICD_ICFGR0 is read-only.
> >
> > For GICD_ICFGR0, my intention was to keep the restore loop uniform.
> > There should be no useful SGI state to restore here: section 4.3.13
> > says that SGI Int_config[1] is not programmable and RAO/WI, while
> > Int_config[0] is reserved. Also, the value written is the value
> > previously read from the same register.
> >
> > So I do not expect this write to affect the architected SGI
> > configuration. However, if you prefer avoiding the write to
> > GICD_ICFGR0 explicitly, I will skip it in the next version of
> > this series.
>
> I think also Linux =E2=80=9Crestores=E2=80=9D it, so I=E2=80=99m ok to ke=
ep the code as it is, in fact it=E2=80=99s read-only
> and not marked as reserved, my bad!

Ack. I'll keep this part as-is here.

Best regards,
Mykola

>
> Cheers,
> Luca
>


From xen-devel-bounces@lists.xenproject.org Sun May 17 21:00:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 May 2026 21:00:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311360.1581515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOiat-00037O-4G; Sun, 17 May 2026 21:00:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311360.1581515; Sun, 17 May 2026 21:00:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOias-00037G-VW; Sun, 17 May 2026 21:00:14 +0000
Received: by outflank-mailman (input) for mailman id 1311360;
 Sun, 17 May 2026 21:00:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOias-00037A-1q
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 21:00:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOiar-00C3rz-EH
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 23:00:13 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0a2beb-5cb7-0a2a0a5109dd-0a2a4505e9cc-30
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 23:00:13 +0200
Received: from [209.85.218.50] (helo=mail-ej1-f50.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0a2c5d-aaa8-0a2a45050019-d155da32d845-3
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 23:00:13 +0200
Received: by mail-ej1-f50.google.com with SMTP id
 a640c23a62f3a-bcc9fdc959cso329399966b.2
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 14:00:13 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4bd0a24sm485504066b.11.2026.05.17.14.00.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 17 May 2026 14:00:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779051613; x=1779656413; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=NAAkDjpl4ADPy8uGozIOL9uUsscjlLFpYuYbxX1FRPw=;
        b=FmtplVeA1+gmEOX9AcfXHmWWH6reOEWnkA8TPEzgcDR3RzuzLhS+PodYSwQRTW5p3l
         5vNEUzmeD7+UAD5e7C1PmZEgx334vc9MouFKDdHrjbk3pSHLp5Wn24//zJ1qBFq5NS2d
         I6Mha5VKc/IQnUXWm+eZVm7x44/nSczDZuCRd+be3S6l37R6AJkuhAVUgLlSEKGOSzmP
         OzuG1QHqqCIE+eY9fqBpHx2J20wWZESpDDpn9eGCW/zB/p5PDz8+UCP1vT4lsvA+Skxf
         B8ffVCNhck341VHMh9vVWnv2yzs7H1D7X3xEAlYcnjobPW8lEyQUtqeLVqgzikKPgKKN
         tLmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779051613; x=1779656413;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NAAkDjpl4ADPy8uGozIOL9uUsscjlLFpYuYbxX1FRPw=;
        b=mLw+BuKYmNaGgTZ9tCF5Xe8L4gxEWmebiAzIPhlngLbeVWk/ADS+BpEjhaLvEp6eyL
         q/igy/bzxs0P9l4JcGeDhIRRedORjh1VdiEudGPSQmTELjTc0iHac52R2nUuu9GKEGiG
         24zCC/Ln03/iDpiwwYNWPy3M/hIMAIJzgy5rzNg70ssxR921TAzGtZkjGa2AN7JJPKZy
         1v6Gkqg99ImXL9RT5ImIqV/hdLVvd5WoCTWLJtxjvffmfYdc1/X5SxTaAISrQZXdyryu
         zDLywWWzpg0+11MLz6MYEHGDiMOs5LN2n/5WbzZmMd/WX5rphwr5nJhaZEHnZLVnFeWa
         YiNQ==
X-Gm-Message-State: AOJu0YwdcN6MkbDpJFpbncW8Uv1YsTdaR/V1+SNcJpPAX1nYixZAlu8i
	d/cOjI1X/QQt31RgL8O5h+it7XMbw4Kht8QQ/XMTWfq7ypc7yMhCji/IihuOUQ==
X-Gm-Gg: Acq92OERZRmjdHUEn0MrTqRY4kebodgBpREUQyCXZwoAyzNpojdupemrs9QLUAysU9X
	xguD/a0mYGblp95qjwOokPHdNz/zVt5PiFxJiMijGFFbJ5IUW13zChoHy8lMx1omIaGp75UgQAF
	rxfZ//5iJmZz/bAkL7AJ7IhY60lfdu1jono2X0oLtpFEiLYZr7OgOYgsHd4Ngm0sxivrRluN3Or
	F9rM+eiCuWU67qfZN2JdJGj16ABk27OvXbihKnc/VIoNcMHWYFKeFwU1p9lf8tLbzabb8C0Ntv8
	Mf6JpxtIN3mKEnP3Yvq/AOWZLUa+meqoqV3RrJbErfJ4Zrkka/7A09OQyX7DiPSdanj0CHa7jHv
	xuKg0+E/IWiCS/F0vDGhRuI1N3b2kYlrb2d4Sw2+mwuuotDNQsgLf/igJrvayHSjPRJN7nRX+2D
	ft9GiHvOxzwwo32Pgi/FOWZweHZQ==
X-Received: by 2002:a17:907:1988:b0:ba4:f501:cb8b with SMTP id a640c23a62f3a-bd5177db61fmr624330266b.16.1779051612688;
        Sun, 17 May 2026 14:00:12 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [RFC PATCH] device-tree: size first hwdom bank for boot modules
Date: Sun, 17 May 2026 23:57:56 +0300
Message-ID: <9ae4f7dd49f5b1f761193adae573c2675c92e883.1779051035.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1779051613-E3589443-5950C84A/0/0
X-purgate-type: clean
X-purgate-size: 10312

From: Mykola Kvach <mykola_kvach@epam.com>

With LLC coloring enabled, the hardware domain memory comes from
allocate_hwdom_memory(), not from the fixed direct-map banks used when
coloring is off.

Commit de99f3263555 ("device-tree: Improve hwdom memory allocation for
DMA") made that allocator sort free host regions by ascending address so
Dom0 gets DMA-capable low memory first. The first bank filter still only
required 128MB. That can select a low region which is large enough for
the heuristic, but not large enough for place_modules() to put the Dom0
kernel, generated DTB and initrd contiguously in bank 0.

Ask arch code for any additional first-bank size requirement. On Arm,
compute it from the actual Dom0 kernel placement, rounded initrd size and
generated DTB size hint. For 64-bit Image kernels, include the text offset
from the candidate bank start, because the returned requirement is compared
with a bank size measured from that start. The hint covers both the normal
Device Tree path and the minimal DTB created for ACPI boot.

Check the first-bank threshold against the size which will actually be
assigned to Dom0, after capping the host region by the remaining unassigned
Dom0 memory. Otherwise a large host region could pass the test but still
produce a first guest bank too small for place_modules().

Use the typed min()/max() helpers for this normal allocation arithmetic;
MIN()/MAX() are intended for preprocessor-style contexts and skip the type
checking provided by the lowercase helpers.

This keeps the DMA-oriented allocation policy from de99f3263555 while
preventing a too-small bank 0 from reaching place_modules().

Fixes: de99f3263555 ("device-tree: Improve hwdom memory allocation for DMA")
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Test/setup notes:

The failure was reproduced on a Renesas H3ULCB/R-Car H3 (r8a7795)
arm64 board booted through U-Boot/TFTP and using huge initrd.

Relevant Xen command line excerpt:
  dom0_mem=2048M llc-coloring=on

Boot module layout from Xen:
  MODULE[2]: 0x0000000084000040-0x000000008e75d92f Ramdisk
  MODULE[3]: 0x00000000a0000000-0x00000000a3ffffff Kernel
  MODULE[4]: 0x00000000a4000000-0x00000000a400ffff XSM Policy

The initrd is about 168MB. With LLC coloring enabled and the low-address
allocation policy from de99f3263555, Dom0 can receive a 192MB first bank:
  d0 BANK[0] 0x00000048000000-0x00000054000000 (192MB)

That bank satisfies the old 128MB minimum but is too small for the
rounded Dom0 kernel, generated DTB and initrd placement. The observed
failure before this patch was:
  Panic on CPU 0:
  Not enough memory in the first bank for the kernel+dtb+initrd

With this patch, the same boot skips the too-small low region for bank 0
and reaches Dom0:
  d0 BANK[0] 0x00000057000000-0x00000084000000 (720MB)
  d0 BANK[1] 0x0000008e800000-0x000000c0000000 (792MB)
  d0 BANK[2] 0x00000500000000-0x00000521800000 (536MB)
  d0: extended region 0: 0x48000000->0x54000000
  Loading zImage from 0x00000000a0000000 to 0x57000000-0x5b000000
  Loading d0 initrd from 0x0000000084000040 to 0x5f200000-0x6995d8f0
  Loading d0 DTB to 0x5f000000-0x5f011c80
  Linux version 5.10.194-yocto-standard
---
 xen/arch/arm/acpi/domain_build.c        |  2 --
 xen/arch/arm/domain_build.c             |  8 ++++++
 xen/arch/arm/include/asm/domain_build.h |  4 +++
 xen/arch/arm/include/asm/kernel.h       |  8 ++++++
 xen/arch/arm/kernel.c                   | 35 +++++++++++++++++++++++++
 xen/common/device-tree/domain-build.c   | 27 ++++++++++++++-----
 xen/include/xen/fdt-kernel.h            |  8 ++++++
 7 files changed, 83 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/acpi/domain_build.c b/xen/arch/arm/acpi/domain_build.c
index 249d899c33..db16f7fa94 100644
--- a/xen/arch/arm/acpi/domain_build.c
+++ b/xen/arch/arm/acpi/domain_build.c
@@ -26,8 +26,6 @@
 #undef virt_to_mfn
 #define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
 
-#define ACPI_DOM0_FDT_MIN_SIZE 4096
-
 static int __init acpi_iomem_deny_access(struct domain *d)
 {
     acpi_status status;
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 1efddc60ef..226e053c68 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -115,6 +115,14 @@ int __init parse_arch_dom0_param(const char *s, const char *e)
                              (IS_ENABLED(CONFIG_STATIC_SHM) ?         \
                               (NR_SHMEM_BANKS * (160 + 16)) : 0))
 
+paddr_t __init dom0_get_fdt_size_hint(void)
+{
+    if ( !acpi_disabled )
+        return ACPI_DOM0_FDT_MIN_SIZE;
+
+    return fdt_totalsize(device_tree_flattened) + DOM0_FDT_EXTRA_SIZE;
+}
+
 unsigned int __init dom0_max_vcpus(void)
 {
     if ( opt_dom0_max_vcpus == 0 )
diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
index df8b361b3d..45687c5d6f 100644
--- a/xen/arch/arm/include/asm/domain_build.h
+++ b/xen/arch/arm/include/asm/domain_build.h
@@ -19,6 +19,10 @@ int prepare_acpi(struct domain *d, struct kernel_info *kinfo);
 
 int add_ext_regions(unsigned long s_gfn, unsigned long e_gfn, void *data);
 
+#define ACPI_DOM0_FDT_MIN_SIZE 4096
+
+paddr_t dom0_get_fdt_size_hint(void);
+
 #if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
 /* Utility function to determine if an Armv8-R processor supports VMSA. */
 bool has_v8r_vmsa_support(void);
diff --git a/xen/arch/arm/include/asm/kernel.h b/xen/arch/arm/include/asm/kernel.h
index 21f4273fa1..17c5b9bce4 100644
--- a/xen/arch/arm/include/asm/kernel.h
+++ b/xen/arch/arm/include/asm/kernel.h
@@ -8,12 +8,20 @@
 
 #include <asm/domain.h>
 
+#include <xen/types.h>
+
+struct kernel_info;
+
 struct arch_kernel_info
 {
     /* Enable pl011 emulation */
     bool vpl011;
 };
 
+#define arch_get_min_first_bank_size arch_get_min_first_bank_size
+paddr_t arch_get_min_first_bank_size(struct kernel_info *info,
+                                     paddr_t bank_start);
+
 #endif /* #ifdef __ARCH_ARM_KERNEL_H__ */
 
 /*
diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index b72585b7fe..3644663e2f 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -128,6 +128,41 @@ static paddr_t __init kernel_zimage_place(struct kernel_info *info)
     return load_addr;
 }
 
+static paddr_t __init kernel_placement_size(paddr_t load_addr, paddr_t len)
+{
+    return ROUNDUP(load_addr + len, MB(2)) - load_addr;
+}
+
+paddr_t __init arch_get_min_first_bank_size(struct kernel_info *info,
+                                            paddr_t bank_start)
+{
+    const struct boot_module *mod = info->bd.initrd;
+    const paddr_t initrd_len = ROUNDUP(mod ? mod->size : 0, MB(2));
+    const paddr_t dtb_len = ROUNDUP(dom0_get_fdt_size_hint(), MB(2));
+    paddr_t kernsize;
+
+#ifdef CONFIG_HAS_DOMAIN_TYPE
+    if ( (info->type == DOMAIN_64BIT) && (info->image.start == 0) )
+    {
+        paddr_t load_addr = bank_start + info->image.text_offset;
+
+        /*
+         * The caller compares this value with a size measured from
+         * bank_start, so include the text offset before the kernel.
+         */
+        kernsize = ROUNDUP(load_addr + info->image.len, MB(2)) - bank_start;
+        return kernsize + initrd_len + dtb_len;
+    }
+#endif
+
+    if ( info->image.start == 0 )
+        kernsize = ROUNDUP(info->image.len, MB(2));
+    else
+        kernsize = kernel_placement_size(info->image.start, info->image.len);
+
+    return kernsize + initrd_len + dtb_len;
+}
+
 static void __init kernel_zimage_load(struct kernel_info *info)
 {
     paddr_t load_addr = kernel_zimage_place(info);
diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree/domain-build.c
index 2a760b007b..d8865db259 100644
--- a/xen/common/device-tree/domain-build.c
+++ b/xen/common/device-tree/domain-build.c
@@ -299,20 +299,33 @@ static bool __init allocate_hwdom_memory(struct kernel_info *kinfo)
 
     for ( i = 0; (kinfo->unassigned_mem > 0) && (i < nr_banks); i++ )
     {
-        paddr_t bank_size;
+        const paddr_t bank_start = hwdom_free_mem->bank[i].start;
+        paddr_t bank_size = hwdom_free_mem->bank[i].size;
+
+        /*
+         * Check the size that would actually be assigned, not just the size
+         * of the host region.
+         */
+        bank_size = min(bank_size, kinfo->unassigned_mem);
 
         /*
          * The first bank must be large enough for place_modules() to
          * fit the kernel, DTB and initrd.  Skip small regions to avoid
          * ending up with a tiny first bank.
          */
-        if ( !mem->nr_banks && (hwdom_free_mem->bank[i].size < min_bank_size) )
-            continue;
+        if ( !mem->nr_banks )
+        {
+            paddr_t arch_min_size;
+            paddr_t required_first_bank_size;
+
+            arch_min_size = arch_get_min_first_bank_size(kinfo, bank_start);
+            required_first_bank_size = max(min_bank_size, arch_min_size);
+
+            if ( bank_size < required_first_bank_size )
+                continue;
+        }
 
-        bank_size = MIN(hwdom_free_mem->bank[i].size, kinfo->unassigned_mem);
-        if ( !allocate_bank_memory(kinfo,
-                                   gaddr_to_gfn(hwdom_free_mem->bank[i].start),
-                                   bank_size) )
+        if ( !allocate_bank_memory(kinfo, gaddr_to_gfn(bank_start), bank_size) )
         {
             xfree(hwdom_free_mem);
             return false;
diff --git a/xen/include/xen/fdt-kernel.h b/xen/include/xen/fdt-kernel.h
index 8cd1670c2c..931b3e1686 100644
--- a/xen/include/xen/fdt-kernel.h
+++ b/xen/include/xen/fdt-kernel.h
@@ -86,6 +86,14 @@ kernel_info_get_mem_const(const struct kernel_info *kinfo)
     return container_of(&kinfo->mem.common, const struct membanks, common);
 }
 
+#ifndef arch_get_min_first_bank_size
+static inline paddr_t arch_get_min_first_bank_size(struct kernel_info *info,
+                                                   paddr_t bank_start)
+{
+    return 0;
+}
+#endif
+
 #ifndef KERNEL_INFO_SHM_MEM_INIT
 
 #ifdef CONFIG_STATIC_SHM
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon May 18 00:17:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 00:17:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311378.1581524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOlfc-0002D6-Il; Mon, 18 May 2026 00:17:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311378.1581524; Mon, 18 May 2026 00:17:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOlfc-0002Cy-Cx; Mon, 18 May 2026 00:17:20 +0000
Received: by outflank-mailman (input) for mailman id 1311378;
 Mon, 18 May 2026 00:17:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1wOlfa-0002Bw-Om
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 00:17:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOlfW-0016Gt-NU
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 02:17:14 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 6a0a5a84-bab6-0a2a0a5309dd-0a2a450ba0ea-4
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 02:17:14 +0200
Received: from [52.101.69.110]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <milan_djokic@epam.com>)
 id 6a0a5a8a-212f-0a2a450b0019-3465456e67f7-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 02:17:14 +0200
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com (2603:10a6:20b:595::7)
 by AS1PR03MB8174.eurprd03.prod.outlook.com (2603:10a6:20b:4c6::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.22; Mon, 18 May
 2026 00:17:09 +0000
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5]) by AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5%4]) with mapi id 15.21.0025.022; Mon, 18 May 2026
 00:17:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UsLen5IY62MU9o4iJ1MUkX6nT9/CUSq3qpb6xoAXD+X+l+BZDpxC/94EjXoCd706OXNy/oNo4rmAvn2wAabPGbNru6yIO3UIeBG5NZqRQjDVuSwJsqoSzfG9js481W9YhL6vxWdn+/P1OiIhWLvURzkYkM+KNKZMRQTx6rracCgXH+Mt5WNHNFyXge42bw6Qg8B9OlduqQVC5u+eWM6y/NlS7qAtmdZGttS0QCmniX1GizZPw4tyFZdKwyKbXQRMDvCI1bzaVsTt5UQumIV58S3HCfI+6q8ruxZMfZZ1xAyM5u2EcpEdMHOiS8u6ff3AVLLCnujETli0Z9aumP+h0Q==
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=X9Hztv43pW+b9Svw/ou9qn/Zo1JDXaUfuZfdgYW6Db4=;
 b=WIK3RjXGpryea05K3UHRteYnPiUK3OkqlyPqpac1BzwcO6d4ZcpzPVsWaWEJCt7X1gJfOyjfO/QcE7MHoQZuqf6Eq1c8NrE9CU4+qm79HMj12WfOjgGmPDSfPeQV4pXi+4sjzRiI2EpfUd5bRb7tFIDetmXK40ySPjP2XinKxbdT3wHQ6FNuopecltVnKVc9eCuj0W3ZoYGuk+ETFx41DYVzSdkJUOD0oPK7xBAV3GeHdF5e7SNtPzgpE5g7rRjni5wwnV63fy/xuEh/eDMJEwhxfxTpna+sZsxgP4CtN9bJeVU4Z4/ktYHbUgZ/p4czstzK4BUPMWQ83cY+8rQttA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=X9Hztv43pW+b9Svw/ou9qn/Zo1JDXaUfuZfdgYW6Db4=;
 b=UfcFEO0f9GcxG0Tfdbnum0oqbB4Ysvk4h43pXE7CvMx6IY731dDbvXz5LOGa2HwhSW3GdKEpjyhE//WPvSS0m/GTH686aox1v9+C9igjo4nKvXdyneOfL3YAaDBHA81irBrpnxDTFi3AVUHDFNcccW4qVEP6c2YB6MARUpaGFZm+0MDtIBju0stE380BFc+OnTD8H+Ml5opZVTWF6zLGJ9B6ZTk/CFp/LVoK8xfH+UWBErhb32gQ/xydf10r/wob73Cblwi/UkTyQQlEST7iGOxs+GuOuBLRyND/7kT3AUee3FI0Ster29sCedNuko7VQNfdR/k124rzFCO2pl8jYg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <ceb8751a-0a5f-4f54-81e1-cc7488e9782e@epam.com>
Date: Mon, 18 May 2026 02:17:07 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 08/23] xen/arm: vsmmuv3: Add support for registers
 emulation
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Rahul Singh <Rahul.Singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
 <25adb33c4be3932c2d946cf7757c933eb042476c.1774918270.git.milan_djokic@epam.com>
 <C6057E0E-ED2E-4C9A-B768-5EE8E23BF346@arm.com>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <C6057E0E-ED2E-4C9A-B768-5EE8E23BF346@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: VIYP296CA0009.AUTP296.PROD.OUTLOOK.COM
 (2603:10a6:800:29d::8) To AS2PR03MB9587.eurprd03.prod.outlook.com
 (2603:10a6:20b:595::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB9587:EE_|AS1PR03MB8174:EE_
X-MS-Office365-Filtering-Correlation-Id: f2aa06f7-7645-464d-a445-08deb472cc9b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|22082099003|18002099003|11063799003|4143699003;
X-Microsoft-Antispam-Message-Info:
	BNl8J8MnBVF6GgW5KvLqAq2C1QroEDagGswiFDY5eBUXz/vZIUnFcTiHOfpX0upcrEwfQlUPvUHUqQD4Ct4xvEryvAg34s5OZ/6pFnzbaSFmiI+QilKYzWDs0+N4etMxA+XxKouGiVFFS9eCBvM+CV/TrGvpNaLywujUUHxtnAPesYrWsOgs5ExIBkLlUWeW/8am+deMmM+wW1pECYs4TDua416I1W1CcJVud4ICDJUClvXwz12O0/f97xTSiuAu6JxkEpkG7j1FfFDkLGd5S3CHrmeIeJgy5v+8bIiI4kWJXamxqx/y/ynSuXRo1Wxcd9vInqLAEMLV2k5sdIKCux3MnqMxkeOrmvmkVIKDBp2QtkPcu93czK9i64dSRnirHUrikoTwsh7ZrUddVE1kPaYyBh0Q9nJB+Yi2NpUCWAp17Ma5Avnrgb0WE+wQFx/DG6EFa3WFiNLZol7uZeZ1Vm0auuNMTEGxqrcdy6vPGaauxZgM4mSJtrG9ZiEFMS0JD32BGdPMyRXJuhzAXE2UfuqaZTMZP0j8xLDGOC73OP/B5d1OyyPTw7ZEW3Y6sA0n6K1Ns7wFfXef+/lfkcjf/BzY5BSjLR5+55gl9lM/5PqHKTAuPaO+vy7qQk/pOaA0+WG/BFDEi+KE/06LcBOigBEANJw0CZGAqVqbHicR1lp/l9jPb+bwibdhSaXZM3sf
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB9587.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(22082099003)(18002099003)(11063799003)(4143699003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U3hPMzk1UjFrM3VUL2l2anVQRzI5RTFtYnQ3aVlrdnhiTEdzRW5GM3BGNjNl?=
 =?utf-8?B?L2o0NEt5RlFnRjc3OHZ3UmVvMGZ4MG92UTBvNHdtVHR2dENObDg5dmhBS0dy?=
 =?utf-8?B?d2lCbEs5VWpsRHBuTEpBZjI2UW1xMzBOM3NrRklvWnV4V0hIalF2bWN4NU91?=
 =?utf-8?B?b2JxR0U3MGcrTWZXc2JvbEdVd0E0emJrS3h1OWw1V0dxaFJpeXR0MEpVQVA5?=
 =?utf-8?B?S3ZFRVk5bEcxWDlwOUU0WndzYjFYMlNESHllWHVxSmlrZ3ZBNlRGM0VoRDAr?=
 =?utf-8?B?TEMwY3dscHBwWjlhdm9pVGo3SVpLZS9iR3AvZmdPOThOVmcrT0RVMUc1NzZv?=
 =?utf-8?B?WFl5UmxMNXdVdVFTQWJFNksyeUdlRU5XdkhjWWR5MllyRDlMOHRmeVZ4UXNt?=
 =?utf-8?B?eG82NExSZHJNc2dqUk0zRkxmS2oxUU1qNi9DVnhVVlVGZWZsSmQ4ZTdFZS8w?=
 =?utf-8?B?QlZBWjFXNm1iWG9YSnRTbktKTHBVN3lvL1BULzc5dGlYL3lDdWdTTW1Gc2t6?=
 =?utf-8?B?ZndSR3VQWXVwaG9nU29MZEpUY21DcmpZbW5VenNUVWM0MGVYellxZlF3L2ox?=
 =?utf-8?B?UGVWaldhVTdzdDBBQWxpdmlaTFdlcm9yZGZkak5tVDB6SkVQZkVHVmhUeGI5?=
 =?utf-8?B?K1dJYkdQbHR4bm5xQXFTVWpvR1A2eTM3ODhQVCt0NjRnNFJ3aU0rdWk2bXBm?=
 =?utf-8?B?QlNCdml2UU1JS1BiZGNmNHd2QytINDhmVmhUTGhuNkw3YnNETHMrbWhmNXNE?=
 =?utf-8?B?cGJNNE8yTnJ2UDM1QngxVlZqV1hGV05oZit2bEJqaU9ZN1d1NDU1YURhUDhn?=
 =?utf-8?B?a3QzN0FNVGtra0lJOWhEelRhdys5ZUhJbVVyU01VeENDZmJzQWgwMjBGRjR6?=
 =?utf-8?B?TUYwTW9uZFh5cS9yTFp4TUQ2UGVYNFhkeWdWUUIzRG5oUkpXMnA2SnpBRGNY?=
 =?utf-8?B?bzdmUDlvSW5BSnhOQUJnUFUrTW5DcWZHOU1nc3pKbjQ1K1IySWdHWmlOZkRB?=
 =?utf-8?B?V21BbkxDYUJKRlgzSUloVHFidTNVQ0RWMkJUWWR2S1o1cUVaaUxSdTMxa1Vy?=
 =?utf-8?B?VHAxT1paZzJBTEEwVm4xQlVZTFU1UzkvVGVMeThDdDkwWnlEbThGTG9lSDRB?=
 =?utf-8?B?dTFpS3dUR2RhSUc3VkZsQnZ0UDJTbTFIZk5SNmtTRXAvenh0OTRHaTRCVEpn?=
 =?utf-8?B?V0t0RXE4RndYUW53NXRSbjNDaUlLZUg2VjlZaWlBRFRFeUtPZVBjREZwbjEz?=
 =?utf-8?B?WVNRRGFtV2ZZZ09TTjRsTzN5NFFMbXdjaXNIT1pPdGZIZUlpemlkbTBPZmVN?=
 =?utf-8?B?TnRLOStPL1pSVUZ4cHF0d3Q1bUZFNTJQd2d6a0NQaFlIZG5kWGRnTC9SbXBM?=
 =?utf-8?B?aHhvem9GNVBnUGU0M1hzWDY4dTVDRzh4QWJaOEdWY3NvbDIyazQvYXp1U2xL?=
 =?utf-8?B?K3Y4YlAwMXJrbmoyVTFyRjEyeDN3NUxyQndKSXhKTi9pdS90Y1p1RGEwa2ZR?=
 =?utf-8?B?SWxZRVROS1I4Y3JyYWpuU2ltL3dRZ2JPL0xSVHFXQlUyY0VjcmRsb3BSUjV5?=
 =?utf-8?B?bnByYnlpVmFUeENoK1hzTFkyK1BBV0JHUGt0dWhiYmJwSmJNV28xcHBjMHMv?=
 =?utf-8?B?RGM4a3JmZ3NldlhWM3Y3NVBGSE1vZHpuaG5FMnl4RnRmVGRGeUYxQXJLNC9K?=
 =?utf-8?B?VnhIMGorSUJ4S2dOTm9UM0g3T0JMdGpDeEhTMEQxNW5Zbm5ZT0Fvb014MFc1?=
 =?utf-8?B?ZENZZ2NzUGlyUk1nT1dIM1hLRnlFK3hwc3dDQldESk5rWXFpWjd5S245ZXpC?=
 =?utf-8?B?ZTFvUFVxVk9NVzgrSHJCRGlsc0x2ZG9uRlJzVTd6VmcyTW9TQUh3Ym44aHQ4?=
 =?utf-8?B?NGYrdERSUW5FZHBmL3lTWWFnaU5Fa0Q1MmVPd2dYWFlHaVNRVkZpYkpCaG1H?=
 =?utf-8?B?MFhzWDliNzVSUlpFTVFjMW1tbmlWa0NQTjExeFFSRmJuS2YyeGhPWStWbmg3?=
 =?utf-8?B?T3o0YmtDazJ3QkpUMk1LSTBYUkJ2OHlpWWZ4ZStDOXlpam9oVUFvaUtONlBr?=
 =?utf-8?B?VjhBeEdlb3JsT01hK1BFOXRkSXRmV3l6bWxUbjlRSUhIaFMzanhma2tuQlBu?=
 =?utf-8?B?NU9iZ2FLZTdhSjE4US9CU24vaHgxdFVEN21CMm9ENGp5WUk4L2tGWWQ3SlIx?=
 =?utf-8?B?Z1I5a3k3V05sNUR2NDdFZUJYOEJXMTVieUU0TmM4ZkJwUUlDaDdnRlNDMDU3?=
 =?utf-8?B?dzh1WjhKcERhU3IwOHErTDU5NGp6U3MzZVBqQjl0Q0F4NDkzZUhxVEVEQ0hx?=
 =?utf-8?B?Mno0V0pLcU1QbURMQ2Y3dG91MVgvOUN5UkVDRmpvZVlwU0FScFBaZz09?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f2aa06f7-7645-464d-a445-08deb472cc9b
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB9587.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 00:17:08.8141
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8q6DaCKSgMmU5GMkdRQfOjGM0kTwpCmC6M0/lkJCX8yhXh7ERyqTV0GDnQgRZyndgwc4L7j6OFs57ManSO9zwQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR03MB8174
X-purgate-ID: tlsNG-42698a/1779063434-19F6EF3B-04B9EED8/0/0
X-purgate-type: clean
X-purgate-size: 9508

Hi Luca,

On 4/10/26 17:27, Luca Fancellu wrote:
> Hi Milan,
> 
>> diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrough/arm/vsmmu-v3.c
>> index e36f200ba5..3ae1e62a50 100644
>> --- a/xen/drivers/passthrough/arm/vsmmu-v3.c
>> +++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
>>
> [...]
>> static int vsmmuv3_mmio_write(struct vcpu *v, mmio_info_t *info,
>>                                register_t r, void *priv)
>> {
>> +    struct virt_smmu *smmu = priv;
>> +    uint64_t reg;
>> +    uint32_t reg32;
>> +
>> +    switch ( info->gpa & 0xffff )
>> +    {
>> +    case VREG32(ARM_SMMU_CR0):
>> +        reg32 = smmu->cr[0];
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->cr[0] = reg32;
>> +        smmu->cr0ack = reg32 & ~CR0_RESERVED;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CR1):
>> +        reg32 = smmu->cr[1];
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->cr[1] = reg32;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CR2):
>> +        reg32 = smmu->cr[2];
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->cr[2] = reg32;
>> +        break;
>> +
>> +    case VREG64(ARM_SMMU_STRTAB_BASE):
>> +        reg = smmu->strtab_base;
>> +        vreg_reg64_update(&reg, r, info);
>> +        smmu->strtab_base = reg;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_STRTAB_BASE_CFG):
>> +        reg32 = smmu->strtab_base_cfg;
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->strtab_base_cfg = reg32;
>> +
>> +        smmu->sid_split = FIELD_GET(STRTAB_BASE_CFG_SPLIT, reg32);
>> +        smmu->features |= STRTAB_BASE_CFG_FMT_2LVL;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CMDQ_BASE):
> 
> I think this needs to be VREG64
> 
>> +        reg = smmu->cmdq.q_base;
>> +        vreg_reg64_update(&reg, r, info);
>> +        smmu->cmdq.q_base = reg;
>> +        smmu->cmdq.max_n_shift = FIELD_GET(Q_BASE_LOG2SIZE, smmu->cmdq.q_base);
>> +        if ( smmu->cmdq.max_n_shift > SMMU_CMDQS )
>> +            smmu->cmdq.max_n_shift = SMMU_CMDQS;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CMDQ_PROD):
>> +        reg32 = smmu->cmdq.prod;
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->cmdq.prod = reg32;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CMDQ_CONS):
>> +        reg32 = smmu->cmdq.cons;
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->cmdq.cons = reg32;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_EVTQ_BASE):
> 
> And also this one VREG64
> 
>> +        reg = smmu->evtq.q_base;
>> +        vreg_reg64_update(&reg, r, info);
>> +        smmu->evtq.q_base = reg;
>> +        smmu->evtq.max_n_shift = FIELD_GET(Q_BASE_LOG2SIZE, smmu->evtq.q_base);
>> +        if ( smmu->cmdq.max_n_shift > SMMU_EVTQS )
>> +            smmu->cmdq.max_n_shift = SMMU_EVTQS;
> 
> This seems a typo, I think here we want to modify the evtq, not the cmdq?
> So in case both condition and assignment needs to change.
> 
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_EVTQ_PROD):
>> +        reg32 = smmu->evtq.prod;
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->evtq.prod = reg32;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_EVTQ_CONS):
>> +        reg32 = smmu->evtq.cons;
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->evtq.cons = reg32;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_IRQ_CTRL):
>> +        reg32 = smmu->irq_ctrl;
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->irq_ctrl = reg32;
>> +        break;
>> +
>> +    case VREG64(ARM_SMMU_GERROR_IRQ_CFG0):
>> +        reg = smmu->gerror_irq_cfg0;
>> +        vreg_reg64_update(&reg, r, info);
>> +        smmu->gerror_irq_cfg0 = reg;
>> +        break;
>> +
>> +    case VREG64(ARM_SMMU_EVTQ_IRQ_CFG0):
>> +        reg = smmu->evtq_irq_cfg0;
>> +        vreg_reg64_update(&reg, r, info);
>> +        smmu->evtq_irq_cfg0 = reg;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_GERRORN):
>> +        reg = smmu->gerrorn;
>> +        vreg_reg64_update(&reg, r, info);
> 
> this should be vreg_reg32_update
> 
>> +        smmu->gerrorn = reg;
>> +        break;
>> +
>> +    default:
>> +        printk(XENLOG_G_ERR
>> +               "%pv: vSMMUv3: unhandled write r%d offset %"PRIpaddr"\n",
>> +               v, info->dabt.reg, (unsigned long)info->gpa & 0xffff);
>> +        return IO_ABORT;
>> +    }
>> +
>>      return IO_HANDLED;
>> }
>>
>> static int vsmmuv3_mmio_read(struct vcpu *v, mmio_info_t *info,
>>                               register_t *r, void *priv)
>> {
>> +    struct virt_smmu *smmu = priv;
>> +    uint64_t reg;
>> +
>> +    switch ( info->gpa & 0xffff )
>> +    {
>> +    case VREG32(ARM_SMMU_IDR0):
>> +        reg  = FIELD_PREP(IDR0_S1P, 1) | FIELD_PREP(IDR0_TTF, 2) |
>> +            FIELD_PREP(IDR0_COHACC, 0) | FIELD_PREP(IDR0_ASID16, 1) |
>> +            FIELD_PREP(IDR0_TTENDIAN, 0) | FIELD_PREP(IDR0_STALL_MODEL, 1) |
>> +            FIELD_PREP(IDR0_ST_LVL, 1) | FIELD_PREP(IDR0_TERM_MODEL, 1);
>> +        *r = vreg_reg32_extract(reg, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_IDR1):
>> +        reg  = FIELD_PREP(IDR1_SIDSIZE, SMMU_IDR1_SIDSIZE) |
>> +            FIELD_PREP(IDR1_CMDQS, SMMU_CMDQS) |
>> +            FIELD_PREP(IDR1_EVTQS, SMMU_EVTQS);
>> +        *r = vreg_reg32_extract(reg, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_IDR2):
>> +        goto read_reserved;
>> +
>> +    case VREG32(ARM_SMMU_IDR3):
>> +        reg  = FIELD_PREP(IDR3_RIL, 0);
>> +        *r = vreg_reg32_extract(reg, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_IDR4):
>> +        goto read_impl_defined;
>> +
>> +    case VREG32(ARM_SMMU_IDR5):
>> +        reg  = FIELD_PREP(IDR5_GRAN4K, 1) | FIELD_PREP(IDR5_GRAN16K, 1) |
>> +            FIELD_PREP(IDR5_GRAN64K, 1) | FIELD_PREP(IDR5_OAS, IDR5_OAS_48_BIT);
>> +        *r = vreg_reg32_extract(reg, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_IIDR):
>> +        *r = vreg_reg32_extract(ARM_SMMU_IIDR_VAL, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CR0):
>> +        *r = vreg_reg32_extract(smmu->cr[0], info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CR0ACK):
>> +        *r = vreg_reg32_extract(smmu->cr0ack, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CR1):
>> +        *r = vreg_reg32_extract(smmu->cr[1], info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CR2):
>> +        *r = vreg_reg32_extract(smmu->cr[2], info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_STRTAB_BASE):
> 
> this needs to be VREG64 I think
> 
>> +        *r = vreg_reg64_extract(smmu->strtab_base, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_STRTAB_BASE_CFG):
>> +        *r = vreg_reg32_extract(smmu->strtab_base_cfg, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CMDQ_BASE):
> 
> VREG64
> 
>> +        *r = vreg_reg64_extract(smmu->cmdq.q_base, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CMDQ_PROD):
>> +        *r = vreg_reg32_extract(smmu->cmdq.prod, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CMDQ_CONS):
>> +        *r = vreg_reg32_extract(smmu->cmdq.cons, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_EVTQ_BASE):
> 
> VREG64
> 
>> +        *r = vreg_reg64_extract(smmu->evtq.q_base, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_EVTQ_PROD):
>> +        *r = vreg_reg32_extract(smmu->evtq.prod, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_EVTQ_CONS):
>> +        *r = vreg_reg32_extract(smmu->evtq.cons, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_IRQ_CTRL):
>> +    case VREG32(ARM_SMMU_IRQ_CTRLACK):
>> +        *r = vreg_reg32_extract(smmu->irq_ctrl, info);
>> +        break;
>> +
>> +    case VREG64(ARM_SMMU_GERROR_IRQ_CFG0):
>> +        *r = vreg_reg64_extract(smmu->gerror_irq_cfg0, info);
>> +        break;
>> +
>> +    case VREG64(ARM_SMMU_EVTQ_IRQ_CFG0):
>> +        *r = vreg_reg64_extract(smmu->evtq_irq_cfg0, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_GERROR):
>> +        *r = vreg_reg64_extract(smmu->gerror, info);
> 
> vreg_reg32_extract
> 
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_GERRORN):
>> +        *r = vreg_reg64_extract(smmu->gerrorn, info);
> 
> vreg_reg32_extract
> 

Yes, these are all mismatches. I'll fix them in the next revision.

>> +        break;
>> +
>> +    default:
>> +        printk(XENLOG_G_ERR
>> +               "%pv: vSMMUv3: unhandled read r%d offset %"PRIpaddr"\n",
>> +               v, info->dabt.reg, (unsigned long)info->gpa & 0xffff);
>> +        return IO_ABORT;
>> +    }
>> +
>> +    return IO_HANDLED;
>> +
>> + read_impl_defined:
>> +    printk(XENLOG_G_DEBUG
>> +           "%pv: vSMMUv3: RAZ on implementation defined register offset %"PRIpaddr"\n",
>> +           v, info->gpa & 0xffff);
>> +    *r = 0;
>> +    return IO_HANDLED;
>> +
>> + read_reserved:
>> +    printk(XENLOG_G_DEBUG
>> +           "%pv: vSMMUv3: RAZ on reserved register offset %"PRIpaddr"\n",
>> +           v, info->gpa & 0xffff);
>> +    *r = 0;
>>      return IO_HANDLED;
>> }
> 
> Cheers,
> Luca
> 

BR,
Milan





From xen-devel-bounces@lists.xenproject.org Mon May 18 00:17:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 00:17:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311379.1581533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOlfg-0002Qt-SO; Mon, 18 May 2026 00:17:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311379.1581533; Mon, 18 May 2026 00:17:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOlfg-0002Qm-Pg; Mon, 18 May 2026 00:17:24 +0000
Received: by outflank-mailman (input) for mailman id 1311379;
 Mon, 18 May 2026 00:17:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1wOlff-0002QA-Ly
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 00:17:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOlff-0016Gt-1h
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 02:17:23 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 6a0a59df-bab6-0a2a0a5309dd-0a2a450ad86e-34
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 02:17:22 +0200
Received: from [52.101.70.114]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <milan_djokic@epam.com>)
 id 6a0a5a92-56b3-0a2a450a0019-34654672f868-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 02:17:22 +0200
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com (2603:10a6:20b:595::7)
 by AS1PR03MB8174.eurprd03.prod.outlook.com (2603:10a6:20b:4c6::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.22; Mon, 18 May
 2026 00:17:21 +0000
Received: from AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5]) by AS2PR03MB9587.eurprd03.prod.outlook.com
 ([fe80::daa7:3b97:acb3:67d5%4]) with mapi id 15.21.0025.022; Mon, 18 May 2026
 00:17:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GsUpVRoMsXDDYGRBezMihzTkiGy1R8eciqUuwLc9S2xTFCLSyOOtCjfl/gFBiXlk90Vz9Q2r1Q5ODxVdd+ldIXIf1sgUvwMWCgwu9FptP0X3ZO3xOINvvKap9tF0Al1u9uMZuLxogzFupE81CBNxEUkoxyQFRgXtpr6i2JE3EUI0zJdY4+DWHVJmZsoWzzf56LGe9PV1faFsSGhBgCYlycZahxmpaK4uJUq9aJ+yIo0i/iO1V74z00yonkrP5ldDP+zu41pght0KpkEp6H6ECRjkku5TRZQcHOOr3KAbttPiw9dIMa6E8iN1p7OHW8+3SlwqkayxFO/fpAJHIrWBTQ==
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=CrqlGz1pKadxC9XvBOPz1xCG+Yo0D73Ex0VCjASJ+8c=;
 b=KqoZDj0Rbuh/4xquKh5QqSco2rXqrRJUIsD0+qOyzVuY2oLkfzjYNjWe9t+UX5q2etamhV7f+DZYPmwy/SZOtN+VI46//iT79wkuEXPVkb550H3ITD8m87M1uKmFQ9GV3CtTbFHWHzvRiU1nPPjbl1myZPZ999P7IxlNJVkshAIOk+Hyo0oOB54e8vs6638dJ04d0Pn91xgD01d7EyjddTXmTa/t8I3uMFAb6Y/2bnDQzoznZmKFhsgE3Y0umjuORZ6AEJxV3SXMQmxyzqqoeGuVQH6x248xzXhJxTbA/YWk88X3TZ+N/FEaU++KucTwn9YBRHcrMmsLZbiCmJBx+Q==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CrqlGz1pKadxC9XvBOPz1xCG+Yo0D73Ex0VCjASJ+8c=;
 b=qNblJMU/2v1HG2u7S+4zZuGon0J+e8phhOV77YYjJMHi8I1mU4YbGIdiPy1hX3txkKQReMO3t+VG39R22MRiCrVHDV5ME9NKWTcrKWWLZfJuJwUiOYsqbr5Cwf4m73bztAgUm21yB0dxOiwefI98Qc6mbDzv+1ytr6HQ94iiG3bWDxK1NrqcFr3x13kMEYW67hLsWnVuI0SGqnFet7OTl4Dm3mleMDXNZITULF6+BN4z86VLfdtxhhbOqVuOk2h1/BAI+xF2qgWdjPidNLu3czQevQwwr7n9fAC6H7XDRy9irJ5zRBQu5FmwtvBONTuzyYEY4xb9cg8oDd9+Z/oW6Q==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <f7e7f42c-43f1-436a-9d06-ab44619f2da0@epam.com>
Date: Mon, 18 May 2026 02:17:20 +0200
User-Agent: Mozilla Thunderbird
From: Milan Djokic <milan_djokic@epam.com>
Subject: Re: [PATCH v3 08/23] xen/arm: vsmmuv3: Add support for registers
 emulation
To: Julien Grall <julien@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
 <25adb33c4be3932c2d946cf7757c933eb042476c.1774918270.git.milan_djokic@epam.com>
 <6d1806aa-b009-407a-9a7a-476f9f4deb70@xen.org>
Content-Language: en-US
In-Reply-To: <6d1806aa-b009-407a-9a7a-476f9f4deb70@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: VIYP296CA0004.AUTP296.PROD.OUTLOOK.COM
 (2603:10a6:800:29d::15) To AS2PR03MB9587.eurprd03.prod.outlook.com
 (2603:10a6:20b:595::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB9587:EE_|AS1PR03MB8174:EE_
X-MS-Office365-Filtering-Correlation-Id: f95340a8-03d7-4680-0383-08deb472d43c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|22082099003|18002099003|11063799003|4143699003;
X-Microsoft-Antispam-Message-Info:
	Z2fvjFnXWSBCHJwoIPgU4Uw7KT6eMUy8KUF98VtI5nLMHWvmjShVkWlVzb4jrpwyp3qWlY6i1YzgEqoq9ThrOGXFRPT0DWF4quTak6LsCOjPUmkdu4E2i8dVeWZM7VGLBqtR7+cNHNX/wIx67b37Xa5omlIHJRUaCdJDgLLynl1Vg+WI7LmMAUCrFOfagItj7AANNC4/KnQkUwvPmW1tHnfQR7ht3Wl1nCmCZy9qejr6ie7G1BHV7CXvthbZNPI/KkCCTUdFyyNOITA/E+eDv9X18znC6qhqbTR00NlHUC6obNwOs4XW/+G/qDsgfBI+q2VJqb4+8SLrqVkjt9WusWCob7yewMpVQ9JMOu45Afr1a34X+NHRkQb9c/GBNtkvPNSjG7TQSSZ3E+Nn1Zp6qVmHhXHRF/A3FBy7jre1Sv1QCBGRUH3Der2OIO7Ve1yVA2ntYinltsBPyyObkjdSzzpmUBrywI8vRO2/f7NUT0HtLE9ZnqXwYnb48QBCAR5rB9T8KBQcQSKxn/BfxNCSbnXppBwlJVeYQobiXRRt1RDqaxhfkA4yO2f/+bw7d8kvu4qF/H9LO1tHHMYlK+droSDs7DDjJZJfW9o9NzGVq5YyEcqmRS7oGpnP7lyy271jvd4RqDCM3JnEyctnmhw6Lvs3kbaz3Ydvffaan+A3jqFnNpkpXjQcBQV8deMVZtK/
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB9587.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(22082099003)(18002099003)(11063799003)(4143699003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WmJCekUzVW5SK2k3Z3hmS0FlTHlGZm9uQjN0N3RLeXNZd01FLzVPMFlHR0hR?=
 =?utf-8?B?dGRSY1RRbXROdEZ2YmUyQUNaT296RzdtS25CV3l6WFhXYjNMZS9hV1J4Q1JQ?=
 =?utf-8?B?NjdZU1pTRjNnM1dBZVBVM25mSXZlSlYzZ2dMM1NSTUpFYTc2Y0p4NXBFaExw?=
 =?utf-8?B?cEV0L1YvZ2QxcVFvYmVCYlNzekppV1BDTkt2Tml2bEFHRXRkTnFNM3Yya1VW?=
 =?utf-8?B?SmZRT2lNYWpWZjBzRDlSUDErdmpLb1J0cDA4ZXoxT3kwY0g3MU1pRGRMTTkz?=
 =?utf-8?B?aVF0NFZqQ092R0M0R21LN3hDSE5GZG9uN2o0MS95MkpmQnIwNHROd2dZdVpo?=
 =?utf-8?B?YXZQRWtPdlpZTEVvNUNBb0tSaGNKVitkMW9tKzA2Si81Sks2M1VPTEJCcnNB?=
 =?utf-8?B?YURaN2U5am53dGkxbnFLNnR6UGhmc09CQ3YzZ1VqL2RSTWFyU2ZKa3dabkti?=
 =?utf-8?B?ZHpJRkNkS09kYXQ4L0VlU2V2S1E4UEEzdFBuWEFvM0hYbUJaNXFBTDg4NnNh?=
 =?utf-8?B?RlU0aVExNS9obEtxSzVCYmVEaGV3K0JCWVFEUEVNNGlCOVIwTklRbXlUSFh5?=
 =?utf-8?B?aGVycS9vdEVzV0JmZTdJZ3VrKzM0RTVLcUVweEcwcjFlekU2NUZrb3NIbkZU?=
 =?utf-8?B?QW9zSDJsZWtoQnRtQk9EU3hMNjRpdGpJY3lJaFBKTlo4cXpoQnpydi8ySVVJ?=
 =?utf-8?B?USt6OUdlK0M1endNRjJPUllDeWZZRVpQL09SVkM5bENJaWQ4SzBoaEtnUkEx?=
 =?utf-8?B?eDdQdmxUWkF6NEZ6dHh6eEdBRWEyWUtVTjNLanVadVlsWHJLSkZKeDlSTjk0?=
 =?utf-8?B?SlpGM09yTUozU0QrY3gzRUtEV1pRNFFFWUowU2QvZnpGZnRBYUcvQzlyaTBk?=
 =?utf-8?B?ekFoRDJuem55ZTB0cGhQSGdJaFduVDVBd3QweHRjY0lkdUJoRHlIaFNDbncy?=
 =?utf-8?B?dllNNUVtTFFTRkl2S0tjTlplcFhBa1N2SHFJeXhCbXRabldyS0ZORnJOa1pv?=
 =?utf-8?B?UHR2aFRzUForSWJselFxWlUyaDYrT05tNGFScUpzcHU1RktxTW1TUXpJN0M3?=
 =?utf-8?B?ZGVjYUJ5TDFzYlhtWitoMUZIZzdwbHJOVkdPZkJQR0R0TC9GRVRBT2tKWXA4?=
 =?utf-8?B?bzIwUUc0eTEraFZYQjVZUFo3Ym92QXFlcXZDUmJuNE4vM2dEeFJ3NGNYbWpr?=
 =?utf-8?B?aFVqdk5TU3RsRENqdEJVckRsWTVmN0tSYnpjcm5IZDNEWm1oQkpIandKaWx6?=
 =?utf-8?B?MW5QM3ZXT29HcVdGU2dHNktKYTd0V2h6RWhYNmVtdGFlR0JOQ0IzYnF0ODhG?=
 =?utf-8?B?bmduNkM4TmRBN2UrMWtDUmlraHlFcjUzdkc4RjZRUHUrZkpSMmh4bHFkNk5U?=
 =?utf-8?B?M1IrUGw3R2RvOE1zL01JWlJEUjJ5R2FKR2JkK3JpcER2ZnZJeTk2YWlGVFN5?=
 =?utf-8?B?RXc3OFJxdCthY3Y4U2dWZmpzcU5KRUs4VU05a21rTTVLc3JDZklON3I3blZC?=
 =?utf-8?B?aE1YZ0o3V2dMaHV4Rlg0ciswVjhJT0xLTzVvdU8xSWovcDRGK0FKQjVqRjAw?=
 =?utf-8?B?S0Fpb3hCZUlWL1Q4cCtzR2NoK1UrMk5yWUxSVndIZFYyQXpVNXIxSFlPNW9K?=
 =?utf-8?B?OTVwMU5SRlJPOWxXb0xUb0U0OEswUmtUTjZpZTA5TER5eHFvRVgrRlRLSDFH?=
 =?utf-8?B?TTNSR3V1TWdXTW0xSnN6K2JMc2FabmRGQ2o0dlBiY2dYUS8vcFNLbUw3MjZk?=
 =?utf-8?B?T2kwbmJhdllwTlRlaTBsb0ltOE56OE9UclBvU2RaSjBna3BVbHpjVUN5T0xv?=
 =?utf-8?B?VzhoYzJpbGQwdWdpdzZ1cDB1b2hmRnpLY0cvNXpIOHNGMVR6NlNZcEpDdzUr?=
 =?utf-8?B?MUlkRmFTbDc1Nnhwd3Y4d0NuUi8rV1YzcDFDbmFGS3ZZQnJhdkg4S29QM3VS?=
 =?utf-8?B?WVVPN3VoaFVJMmYrMUZSSWhlNzJsQVE0N21RZXM4ZTJvMHR1QjVNRkRQRGl0?=
 =?utf-8?B?SEZreWowWkEyVTc4YW5aVWVzWmRCczRVSTR6Zm9EQkpWaDhwSHQ0b3R2TWc3?=
 =?utf-8?B?YUE3RnA3S203aXpUdkVXNGxxRWlhZFF0UDRsVGw1WTRvQ2lKRlRUbU1tRmRp?=
 =?utf-8?B?a0R4NDErVWt1VjVTVS8vRXdVN2NLU0Z4TFJkaHVpMmtDVEo5NThiSjA1T0RP?=
 =?utf-8?B?eXZxUGU3ZkdOdUtYYmxRbjRLbHNtVFdRYXJmcWdLNTlZWUJhcFRjS3YzSGg1?=
 =?utf-8?B?RmI2ZVdYL0FHeUdwd2VFa0V2aGhOV0hLNHFwc0NQY3RTc0JGVm54MzhrQTRO?=
 =?utf-8?B?aHhFQ2FNOVZFeGRMd1pHWHlUaVF4Sk5sVUlncW5OcWoxUXVqTWhnZz09?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f95340a8-03d7-4680-0383-08deb472d43c
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB9587.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 00:17:21.4063
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ZbHputbP4OTs0Flaa/fMIKc3+k3u3K0MmPIbPHvwVfVL3WdN2Hf6B/fY39NAGhNBTN4MjaIB55EQqc5xnJVaBQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR03MB8174
X-purgate-ID: tlsNG-4011c0/1779063442-70F618B7-760BD7E7/0/0
X-purgate-type: clean
X-purgate-size: 19399

Hi Julien,

On 4/14/26 10:10, Julien Grall wrote:
> Hi Milan,
> 
> On 31/03/2026 10:52, Milan Djokic wrote:
>> From: Rahul Singh <rahul.singh@arm.com>
>>
>> Add initial support for various emulated registers for virtual SMMUv3
>> for guests and also add support for virtual cmdq and eventq.
>>
>> Signed-off-by: Rahul Singh <rahul.singh@arm.com>
>> Signed-off-by: Milan Djokic <milan_djokic@epam.com>
>> ---
>>    xen/drivers/passthrough/arm/smmu-v3.h  |   6 +
>>    xen/drivers/passthrough/arm/vsmmu-v3.c | 286 +++++++++++++++++++++++++
>>    2 files changed, 292 insertions(+)
>>
>> diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthrough/arm/smmu-v3.h
>> index 3fb13b7e21..fab4fd5a26 100644
>> --- a/xen/drivers/passthrough/arm/smmu-v3.h
>> +++ b/xen/drivers/passthrough/arm/smmu-v3.h
>> @@ -60,6 +60,12 @@
>>    #define IDR5_VAX			GENMASK(11, 10)
>>    #define IDR5_VAX_52_BIT			1
>>    
>> +#define ARM_SMMU_IIDR			0x18
>> +#define IIDR_PRODUCTID			GENMASK(31, 20)
>> +#define IIDR_VARIANT			GENMASK(19, 16)
>> +#define IIDR_REVISION			GENMASK(15, 12)
>> +#define IIDR_IMPLEMENTER		GENMASK(11, 0)
>> +
>>    #define ARM_SMMU_CR0			0x20
>>    #define CR0_ATSCHK			(1 << 4)
>>    #define CR0_CMDQEN			(1 << 3)
>> diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrough/arm/vsmmu-v3.c
>> index e36f200ba5..3ae1e62a50 100644
>> --- a/xen/drivers/passthrough/arm/vsmmu-v3.c
>> +++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
>> @@ -3,25 +3,307 @@
>>    #include <xen/param.h>
>>    #include <xen/sched.h>
>>    #include <asm/mmio.h>
>> +#include <asm/vgic-emul.h>
> 
> vgic-emul.h is intended to only be used in the vGIC code. I am fine if
> you want to use it in vsmmu-v3.c but it needs to be renamed. Maybe to
> vdev-emul.h.
> 

Sure, I'll rename it

>>    #include <asm/viommu.h>
>> +#include <asm/vreg.h>
>> +
>> +#include "smmu-v3.h"
>> +
>> +/* Register Definition */
>> +#define ARM_SMMU_IDR2       0x8
>> +#define ARM_SMMU_IDR3       0xc
>> +#define ARM_SMMU_IDR4       0x10
>> +#define IDR0_TERM_MODEL     (1 << 26)
>> +#define IDR3_RIL            (1 << 10)
>> +#define CR0_RESERVED        0xFFFFFC20
> 
> AFAIU, this is covering all the bits defined by the SMMU spec. But some
> of them are optional. Does this mean we will expose those optional features?
> 

Right now only mandatory features are supported (SMMU_EN, CMDQ, EVTQ). 
Most of the optional features are not advertised in the IDR registers, 
so guests are not expected to enable or use them via CR0.


>> +#define SMMU_IDR1_SIDSIZE   16
>> +#define SMMU_CMDQS          19
> 
> Can you add some details how you decided the size of the command and ...
> 
>> +#define SMMU_EVTQS          19
> 
> ... even queues?
> 

The CMDQ/EVTQ sizes are currently set to the architectural maximum. 
Since there is no direct dependency on the underlying hardware queue 
sizes, using the maximum supported value seemed like the simplest option.

>> +#define DWORDS_BYTES        8
>> +#define ARM_SMMU_IIDR_VAL   0x12
> 
> I am not sure which implementer this is referring to. But how do you
> plan to handle errata? Are we sure they can always be handled by Xen?
> 

This is currently a dummy value used to avoid triggering guest driver 
errata/quirk paths. I will replace it with a more meaningful value. 
Using the Arm implementer ID with the remaining fields cleared should be 
sufficient.

My expectation is that errata handling should remain in Xen rather than 
the guest. Exposing real implementer/product IDs could cause the guest 
driver to enable errata workarounds that may not apply correctly due to 
the vSMMU emulation layer. For the current implementation this seems 
sufficient, although there might be some updates in the future in this 
regard.


>>    
>>    /* Struct to hold the vIOMMU ops and vIOMMU type */
>>    extern const struct viommu_desc __read_mostly *cur_viommu;
>>    
>> +/* virtual smmu queue */
>> +struct arm_vsmmu_queue {
>> +    uint64_t    q_base; /* base register */
>> +    uint32_t    prod;
>> +    uint32_t    cons;
>> +    uint8_t     ent_size;
>> +    uint8_t     max_n_shift;
>> +};
>> +
>>    struct virt_smmu {
>>        struct      domain *d;
>>        struct      list_head viommu_list;
>> +    uint8_t     sid_split;
>> +    uint32_t    features;
>> +    uint32_t    cr[3];
>> +    uint32_t    cr0ack;
>> +    uint32_t    gerror;
>> +    uint32_t    gerrorn;
>> +    uint32_t    strtab_base_cfg;
>> +    uint64_t    strtab_base;
>> +    uint32_t    irq_ctrl;
>> +    uint64_t    gerror_irq_cfg0;
>> +    uint64_t    evtq_irq_cfg0;
>> +    struct      arm_vsmmu_queue evtq, cmdq;
>>    };
>>    
>>    static int vsmmuv3_mmio_write(struct vcpu *v, mmio_info_t *info,
>>                                  register_t r, void *priv)
>>    {
>> +    struct virt_smmu *smmu = priv;
>> +    uint64_t reg;
>> +    uint32_t reg32;
> 
> Looking at this helper and the read one, I am bit surprised there is no
> lock taken nor we check the access size.  Can you explain why?
> 
> For instance, we should not allow 64-bit access on 32-bit register. The
> rest of the size (8-bit and 16-bit) is IMP DEFINED so it may be easier
> just not allow them.
> 

Most of the configuration registers are expected to be accessed in a 
serialized manner by the guest driver, during driver initialization. So 
I think that only queue and error reporting registers should be 
protected. Only command queue handling is protected currently. I will do 
the same for the event queue and gerror, this is missing.
As for the access size checks, yes, this needs to be implemented. I will 
add it.


>> +
>> +    switch ( info->gpa & 0xffff )
>> +    {
>> +    case VREG32(ARM_SMMU_CR0):
>   > +        reg32 = smmu->cr[0];> +        vreg_reg32_update(&reg32, r,
> info);
>> +        smmu->cr[0] = reg32;
>> +        smmu->cr0ack = reg32 & ~CR0_RESERVED;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CR1):
>> +        reg32 = smmu->cr[1];
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->cr[1] = reg32;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CR2):
>> +        reg32 = smmu->cr[2];
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->cr[2] = reg32;
>> +        break;
>> +
>> +    case VREG64(ARM_SMMU_STRTAB_BASE):
> 
> Looking at the SMMU spec (6.3.24 in ARM IHI 0070 H.a), the behavior of
> writing to the register is constrained unpredictable before SMMUv3.2,
> but after it should be ignored if SMMU_CR0.SMMUEN == 1.
> 
> So this implementation would not be valid for SMMUv3.2 and later. For
> convenience it would be best to just ignore the write (which is also
> valid for SMMUv3.1 and ealier).
> 
>> +        reg = smmu->strtab_base;
>> +        vreg_reg64_update(&reg, r, info);
>> +        smmu->strtab_base = reg;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_STRTAB_BASE_CFG):
> 
> Similar to above, there are some conditions when this field can be
> written (see 6.3.25).
> 

Yes, both writes should be guarded by SMMU_CR0.SMMUEN. I will add this.

>> +        reg32 = smmu->strtab_base_cfg;
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->strtab_base_cfg = reg32;
>> +
>> +        smmu->sid_split = FIELD_GET(STRTAB_BASE_CFG_SPLIT, reg32);
> 
> The information for sid_split is already stored in
> ``smmu->strtab_base_cfg``. So why do we need to store it differently?
> 

No specific need for a separate structure field, I will remove it and 
extract the SID split from ``smmu->strtab_base_cfg``

>> +        smmu->features |= STRTAB_BASE_CFG_FMT_2LVL;
> 
> I haven't checked the rest of the code yet. But from the name, I would
> assume it indicates whether 2-level stream table is supported. From my
> understanding of the specification, this is selectable by the guest OS.
> So why is this unconditionally set?
> 

I think this is a leftover from the initial implementation where the 
value was hardcoded. I will fix this and derive the field from the 
guest-provided configuration instead.

>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CMDQ_BASE):
> 
> Similar to above, there are some condition when this field is RO.
> 
>> +        reg = smmu->cmdq.q_base;
>> +        vreg_reg64_update(&reg, r, info);
>> +        smmu->cmdq.q_base = reg;
>> +        smmu->cmdq.max_n_shift = FIELD_GET(Q_BASE_LOG2SIZE, smmu->cmdq.q_base);
>> +        if ( smmu->cmdq.max_n_shift > SMMU_CMDQS )
>> +            smmu->cmdq.max_n_shift = SMMU_CMDQS;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CMDQ_PROD):
>> +        reg32 = smmu->cmdq.prod;
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->cmdq.prod = reg32;
> 
> AFAIU, this implementation is not yet complete. If so, it would be good
> to mark it as such with a comment of BUG_ON("Not yet implemented"). Same
> for everywhere in this file and the rest of the series.
> 
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CMDQ_CONS):
>> +        reg32 = smmu->cmdq.cons;
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->cmdq.cons = reg32;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_EVTQ_BASE):
>> +        reg = smmu->evtq.q_base;
>> +        vreg_reg64_update(&reg, r, info);
>> +        smmu->evtq.q_base = reg;
>> +        smmu->evtq.max_n_shift = FIELD_GET(Q_BASE_LOG2SIZE, smmu->evtq.q_base);
>> +        if ( smmu->cmdq.max_n_shift > SMMU_EVTQS )
>> +            smmu->cmdq.max_n_shift = SMMU_EVTQS;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_EVTQ_PROD):
>> +        reg32 = smmu->evtq.prod;
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->evtq.prod = reg32;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_EVTQ_CONS):
>> +        reg32 = smmu->evtq.cons;
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->evtq.cons = reg32;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_IRQ_CTRL):
>> +        reg32 = smmu->irq_ctrl;
>> +        vreg_reg32_update(&reg32, r, info);
>> +        smmu->irq_ctrl = reg32;
>> +        break;
>> +
>> +    case VREG64(ARM_SMMU_GERROR_IRQ_CFG0):
>> +        reg = smmu->gerror_irq_cfg0;
>> +        vreg_reg64_update(&reg, r, info);
>> +        smmu->gerror_irq_cfg0 = reg;
>> +        break;
>> +
>> +    case VREG64(ARM_SMMU_EVTQ_IRQ_CFG0):
>> +        reg = smmu->evtq_irq_cfg0;
>> +        vreg_reg64_update(&reg, r, info);
>> +        smmu->evtq_irq_cfg0 = reg;
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_GERRORN):
>> +        reg = smmu->gerrorn;
>> +        vreg_reg64_update(&reg, r, info);
>> +        smmu->gerrorn = reg;
>> +        break;
>> +
>> +    default:
>> +        printk(XENLOG_G_ERR
>> +               "%pv: vSMMUv3: unhandled write r%d offset %"PRIpaddr"\n",
> 
> NIT: The vIOMMU is per-domain so it is sufficient to print "%pd".
> 
>> +               v, info->dabt.reg, (unsigned long)info->gpa & 0xffff);
>> +        return IO_ABORT;
> 
> Per section 6 of the SMMU:
> 
> "
> For all pages except Page 1, undefined register locations are RES0. For
> Page 1, access to undefined/Reserved
> register locations is CONSTRAINED UNPREDICTABLE and an implementation
> has one of the following behaviors:
> [...]
> "
> 
> Here you seem to implement page0 so the default case should be write
> ignore and therefore IO_HANDLED should be returned. BTW, you don't seem
> to handle page1. Is this going to be handled later on?
> 

   From page1, right now only EVTQ registers are emulated. PRI is not 
supported, but might be needed in the future for the PCI support (PRI 
queue registers also belong to page1, but not emulated atm)
So I think that page1 will be handled when PCI support is completed.

>> +    }
>> +
>>        return IO_HANDLED;
>>    }
>>    
>>    static int vsmmuv3_mmio_read(struct vcpu *v, mmio_info_t *info,
>>                                 register_t *r, void *priv)
>>    {
>> +    struct virt_smmu *smmu = priv;
>> +    uint64_t reg;
>> +
>> +    switch ( info->gpa & 0xffff )
>> +    {
>> +    case VREG32(ARM_SMMU_IDR0):
>> +        reg  = FIELD_PREP(IDR0_S1P, 1) | FIELD_PREP(IDR0_TTF, 2) |
> 
> As the page-table will be used by the HW, shouldn't TTF reflect what the
> HW supports? This would allow the vIOMMU to work for 32-bit domains.
> 

If my understanding is correct, Xen SMMU driver only supports AArch64 
table format, so I think that we can't advertise 32-bit table format in 
the emulation layer even if the hardware supports it.

>> +            FIELD_PREP(IDR0_COHACC, 0) | FIELD_PREP(IDR0_ASID16, 1) |
> 
> Here you set COHACC to 0 which means the guest OS will have to clean the
> cache every time. This is safe everywhere, but it will have an impact on
> performance. I am not asking to allow COHACC when the HW supports it,
> but I think a TODO would be worth.
> 

Sure, I will add comments for this.

> For ASID16, shouldn't the value be based on the HW?
> 

Yes, this is wrong since it could advertise it when not supported.
I'll update this.

> As an aside, I guess we don't allow BTM because we only expose a single
> vSMMU?
> 

Yes, since only a single instance is exposed, BTM support does not make 
much sense.

>> +            FIELD_PREP(IDR0_TTENDIAN, 0) | FIELD_PREP(IDR0_STALL_MODEL, 1) |
> 
> For TTENDIAN, it is the same as above.
> 

> For STALL_MODEL, I think 1 is ok.
> 
>> +            FIELD_PREP(IDR0_ST_LVL, 1) | FIELD_PREP(IDR0_TERM_MODEL, 1);
> 
> Overall, it feels the value set in IDR0 and IDR1 (below) needs some comment.
> 
>> +        *r = vreg_reg32_extract(reg, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_IDR1):
>> +        reg  = FIELD_PREP(IDR1_SIDSIZE, SMMU_IDR1_SIDSIZE) |
>> +            FIELD_PREP(IDR1_CMDQS, SMMU_CMDQS) |
>> +            FIELD_PREP(IDR1_EVTQS, SMMU_EVTQS);
>> +        *r = vreg_reg32_extract(reg, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_IDR2):
>> +        goto read_reserved;
>> +
>> +    case VREG32(ARM_SMMU_IDR3):
>> +        reg  = FIELD_PREP(IDR3_RIL, 0);
> 
> I am not sure why we explicitely need to set RIL but not the other fields?
> 

This is not necessary. I will update this with the regsiter cleared to 0 
only.

>   > +        *r = vreg_reg32_extract(reg, info);> +        break;
>> +
>> +    case VREG32(ARM_SMMU_IDR4):
>> +        goto read_impl_defined;
>> +
>> +    case VREG32(ARM_SMMU_IDR5):
>> +        reg  = FIELD_PREP(IDR5_GRAN4K, 1) | FIELD_PREP(IDR5_GRAN16K, 1) |
>> +            FIELD_PREP(IDR5_GRAN64K, 1) | FIELD_PREP(IDR5_OAS, IDR5_OAS_48_BIT);
> 
> Similar to the other fields in IDR0, isn't this based on what the HW
> supports?	
> 

Yes, this definitely needs to reflect the underlying hardware support. 
I'll update it.

To summarize for the IDR registers, the intention was to preset the 
capabilities to a common configuration matching the features currently 
supported by the emulation layer. I will revisit the hardcoded fields 
and derive the values from the underlying hardware where appropriate. 
Thank you for the comments and insights on this.

>> +        *r = vreg_reg32_extract(reg, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_IIDR):
>> +        *r = vreg_reg32_extract(ARM_SMMU_IIDR_VAL, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CR0):
>> +        *r = vreg_reg32_extract(smmu->cr[0], info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CR0ACK):
>> +        *r = vreg_reg32_extract(smmu->cr0ack, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CR1):
>> +        *r = vreg_reg32_extract(smmu->cr[1], info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CR2):
>> +        *r = vreg_reg32_extract(smmu->cr[2], info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_STRTAB_BASE):
>> +        *r = vreg_reg64_extract(smmu->strtab_base, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_STRTAB_BASE_CFG):
>> +        *r = vreg_reg32_extract(smmu->strtab_base_cfg, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CMDQ_BASE):
>> +        *r = vreg_reg64_extract(smmu->cmdq.q_base, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CMDQ_PROD):
>> +        *r = vreg_reg32_extract(smmu->cmdq.prod, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_CMDQ_CONS):
>> +        *r = vreg_reg32_extract(smmu->cmdq.cons, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_EVTQ_BASE):
>> +        *r = vreg_reg64_extract(smmu->evtq.q_base, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_EVTQ_PROD):
>> +        *r = vreg_reg32_extract(smmu->evtq.prod, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_EVTQ_CONS):
>> +        *r = vreg_reg32_extract(smmu->evtq.cons, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_IRQ_CTRL):
>> +    case VREG32(ARM_SMMU_IRQ_CTRLACK):
>> +        *r = vreg_reg32_extract(smmu->irq_ctrl, info);
>> +        break;
>> +
>> +    case VREG64(ARM_SMMU_GERROR_IRQ_CFG0):
>> +        *r = vreg_reg64_extract(smmu->gerror_irq_cfg0, info);
>> +        break;
>> +
>> +    case VREG64(ARM_SMMU_EVTQ_IRQ_CFG0):
>> +        *r = vreg_reg64_extract(smmu->evtq_irq_cfg0, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_GERROR):
>> +        *r = vreg_reg64_extract(smmu->gerror, info);
>> +        break;
>> +
>> +    case VREG32(ARM_SMMU_GERRORN):
>> +        *r = vreg_reg64_extract(smmu->gerrorn, info);
>> +        break;
>> +
>> +    default:
>> +        printk(XENLOG_G_ERR
>> +               "%pv: vSMMUv3: unhandled read r%d offset %"PRIpaddr"\n",
>> +               v, info->dabt.reg, (unsigned long)info->gpa & 0xffff);
>> +        return IO_ABORT;
>> +    }
>> +
>> +    return IO_HANDLED;
>> +
>> + read_impl_defined:
>> +    printk(XENLOG_G_DEBUG
>> +           "%pv: vSMMUv3: RAZ on implementation defined register offset %"PRIpaddr"\n",
>> +           v, info->gpa & 0xffff);
>> +    *r = 0;
>> +    return IO_HANDLED;
>> +
>> + read_reserved:
>> +    printk(XENLOG_G_DEBUG
>> +           "%pv: vSMMUv3: RAZ on reserved register offset %"PRIpaddr"\n",
>> +           v, info->gpa & 0xffff);
>> +    *r = 0;
>>        return IO_HANDLED;
>>    }
>>    
>> @@ -39,6 +321,10 @@ static int vsmmuv3_init_single(struct domain *d, paddr_t addr, paddr_t size)
>>            return -ENOMEM;
>>    
>>        smmu->d = d;
>> +    smmu->cmdq.q_base = FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_CMDQS);
>> +    smmu->cmdq.ent_size = CMDQ_ENT_DWORDS * DWORDS_BYTES;
>> +    smmu->evtq.q_base = FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_EVTQS);
>> +    smmu->evtq.ent_size = EVTQ_ENT_DWORDS * DWORDS_BYTES;
> 
> I understand why we initialize ent_size. But I am not sure to understand
> why we need to initialize q_base. Can you clarify?
> 

Actually there's no need to initialize q_base fields, these will be set 
during configuration. I will remove this.

>>    
>>        register_mmio_handler(d, &vsmmuv3_mmio_handler, addr, size, smmu);
>>    
> 
> Cheers,
> 

Best regards,
Milan



From xen-devel-bounces@lists.xenproject.org Mon May 18 04:40:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 04:40:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311417.1581542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOpmJ-0002qT-QE; Mon, 18 May 2026 04:40:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311417.1581542; Mon, 18 May 2026 04:40:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOpmJ-0002qL-MG; Mon, 18 May 2026 04:40:31 +0000
Received: by outflank-mailman (input) for mailman id 1311417;
 Mon, 18 May 2026 04:40:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wOpmH-0002qF-AI
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 04:40:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOpmG-008H0A-Md
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 06:40:28 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0a9825-e002-0a2a0a5209dd-0a2a4502c626-32
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 06:40:28 +0200
Received: from [40.107.201.27]
 (helo=CH4PR04CU002.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0a983a-af86-0a2a45020019-286bc91b59fa-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 06:40:27 +0200
Received: from MW4PR04CA0109.namprd04.prod.outlook.com (2603:10b6:303:83::24)
 by BL4PR12MB9723.namprd12.prod.outlook.com (2603:10b6:208:4ed::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Mon, 18 May
 2026 04:40:24 +0000
Received: from CO1PEPF000075F0.namprd03.prod.outlook.com
 (2603:10b6:303:83:cafe::c6) by MW4PR04CA0109.outlook.office365.com
 (2603:10b6:303:83::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.22 via Frontend Transport; Mon, 18
 May 2026 04:40:23 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CO1PEPF000075F0.mail.protection.outlook.com (10.167.249.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.11 via Frontend Transport; Mon, 18 May 2026 04:40:23 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Sun, 17 May
 2026 23:40:23 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 17 May
 2026 23:40:22 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Sun, 17 May 2026 23:40:21 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ABOy49aWMeDVnRc4M/F2A6MnoQePoQC2KEpHddd77cPZBpnCSkVihDkx7jKdJAp18obr5oQYgiShhknFB2l1fnrAPNuP2wzsCeH2T3JyPOpUT37xAxlkCAmJzlSFiwzHpxEcO4dI3s0uDJh0OLWRZfdgt4vpJ4hxdPhnXsqpvicb9Lt4IeN7YqTqOoTe8nSMRZ6oZv/EYJxxG1pAmH4GT0c+fnS2EOgmGscJN04AZh93QwN9iXUWt7dxABjQlksP6l6ubGvtC81G9OaDMhZoLfAbDWh9oeVCDliADsSXCNxe2oqsPVhA9eFwVQ1+sIj5bcWdc4T+qof5knm2m60Hmg==
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=jUYfxPpATFHSXkm6dLvUWLUHw5eYI30x3dRwJHoN4Vg=;
 b=d92rwK3IxsUw3hCHLnluyLqh2qCOy5Gr4uey+QaTbEnhaslFC0NjGKTpM3yXoMoxREySt1Revexc5sD+qhehyWx7gazmbavXCKPm6XNYN3re7uOBSDP+2f+OyCAw8kMII2Dj5+SJR7Swv9/8MUNO/EgTl3JEtIY5005Vve6WhBooV6FKAtc4tCk7scmUgJNJ2GEswb2Ta02lyUIv9exvnU/Hx7ScMBCcoMYieLtnKTq4v5VRM5MIEebJcoDwQhHSXkXAVXu1jKgWAFdfC5zZ7iIwGT8tvm1AEoCxfFHp1zVlHk1FZAH7ip/rFozrnFNAzNoRrHUVOSsiMjS8tmKlPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jUYfxPpATFHSXkm6dLvUWLUHw5eYI30x3dRwJHoN4Vg=;
 b=PtjMmr3lzSjHlskx7cGWrxVBBwA9rlOOKkrwdit1GcG3/iiBwD98xQ2gZ3xtXHY58r6Z+eyCii98LTQX6kEUvYckgTRJ1V/y7eN/1pNBWn/uLF5yhHebTl1zsmssyrI1B/l/QITSSFr8Ev84gdmHmFk4NnElcluL+mc1+N0wUAM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <771c8c64-2743-4a49-bd11-55fb6feec2ba@amd.com>
Date: Mon, 18 May 2026 06:40:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: gic-v3: Wait for redistributor RWP using the
 right bit
To: Mykola Kvach <xakep.amatop@gmail.com>, <xen-devel@lists.xenproject.org>
CC: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>
References: <0fc5e4d297b8dde66ea36be3ebd60a68dea2562d.1778749474.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0fc5e4d297b8dde66ea36be3ebd60a68dea2562d.1778749474.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000075F0:EE_|BL4PR12MB9723:EE_
X-MS-Office365-Filtering-Correlation-Id: 8d97f8db-e986-4562-406c-08deb4979369
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700016|13003099007|56012099003|18002099003|11063799003|22082099003;
X-Microsoft-Antispam-Message-Info:
	oubaLMXsyBcyk5CIMmkfvCYcNd6rM0BiIy2gvAorvrXQd6Y2j24i+MbcX/r4oDEcUghRAVTYYbLTKg6s82qMFFrI4FoXdRWopXW4vP9SI1oN9dsaYAC1FgedKuNr2pPhufF4YX9RtdIPPKgAjXcigobyTI2g6wE6LLGFJMqyZ+hNGQq+tgOm9C5JT2q/Xk4TvdIqHW1okpLT/x2jNWWa9WPjbegwDQymGaZ5LM5H6bx7c6WUvUKOVjQdywmTk7Iah/XPnpajU4to6MRSFlPbn0nr2917iiukcIL0Lmt3W19wnvKqOP07LOb33DCTHQkqKhYbnC3R//MGkgKsTxW+KU945+zJPFild+NB4gDHoYGKfqBePNkm567rur7wFs9+YNemWRYRL1aUyGzuNzXlefFHPmnbr7Yu7UrkPhqKeHN7LA5rj4FWFKreoW/stNJc37fXDWqdIi7KKf53DA+JHBHHjL5EFPBaSIJtSFLXvKUZKCjr+5Brq2VLnQtUR4XWfmgb4NHbNq7yz9kIKGbPUFRekd9BTwKOMbOW+CfhKNg8tKIfCg4ihl0nE2dM21TCSMj71NTVLrKRZueoTg+qWCz15NeeyA2uNl3rojC0ZXSar0mq6krCYE1GAnznikV/6kAgJPPtGZIvYPfzmOPFXgFobzYyQeF5Ixr4L5vUhkhw9YPnOXxMhIBOKo0X8k6iKtwQOdn8qXnQRe2YhQTyvODhbCsAYZnKRg9G4q533X0=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700016)(13003099007)(56012099003)(18002099003)(11063799003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	yDy8X+QK3lP0tu0OWUEHRwMoHNwJkqkoI+JNVS7MDPbKql/MtToDPphOqqRyztGQgxPUwPeq/DQYeAnIIqN2OABtD57qa7ZJn1InOM5EDGq0dHfMdTrhsabrL2GNvrtPcoOX0tjGAj7SSWIL+XO/STjX49RtRNeI9ZAKeIb+9DNH0/KLIEdIknc8Kz4SaosAd0F+taJ4MNlzFN+FS8LKbt2JaWh9bNoFPJ50ucpIXLWjnllXB2XDLDhTQVVONXHlTGv4hu+YX7hrZ+UolCwIkGZD5am3BZCji/2KPWZaqDDcVRuaqicGtOWx6AFc64zbixsqNKyLSa7ad4/GbU8B8bmr0RjhMILFJ1l4Wx7nzk2eZr5RZCVYBWpSYjFImEGEw+YiQgnp/v3qwe0PLkd1R1owhNoRLfax8edTFolyCSyNXni3EJ637OVz42UoNaYe
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 04:40:23.8085
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8d97f8db-e986-4562-406c-08deb4979369
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000075F0.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR12MB9723
X-purgate-ID: tlsNG-720697/1779079228-81B70161-6648E6E8/0/0
X-purgate-type: clean
X-purgate-size: 1171



On 14-May-26 11:08, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> gicv3_do_wait_for_rwp() is used for both distributor and
> redistributor writes. The CTLR register is at offset 0 for both,
> but the RWP bit is not in the same position.
> 
> For GICD_CTLR, RWP is bit 31. For GICR_CTLR, bit 31 is UWP,
> while RWP is bit 3. The redistributor wait path was therefore
> polling UWP instead of RWP.
> 
> UWP covers upstream writes, including Generate SGI packets, and is
> not a substitute for redistributor register write completion. The
> existing redistributor callers need RWP semantics for redistributor
> register writes such as GICR_ICENABLER0 and GICR_CTLR updates.
> 
> Add GICR_CTLR_RWP and pass the expected RWP bit to the shared
> helper.
> 
> Fixes: bc183a0235e ("xen/arm: Add support for GIC v3")
> Reported-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Good, now it matches what Linux did a few years ago:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0df6664

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

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 18 04:43:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 04:43:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311424.1581551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOppP-0003Pe-At; Mon, 18 May 2026 04:43:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311424.1581551; Mon, 18 May 2026 04:43:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOppP-0003PX-7e; Mon, 18 May 2026 04:43:43 +0000
Received: by outflank-mailman (input) for mailman id 1311424;
 Mon, 18 May 2026 04:43:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wOppO-0003PR-I2
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 04:43:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOppN-007SZU-UP
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 06:43:41 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0a98ed-e002-0a2a0a5209dd-0a2a4506a4b4-6
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 06:43:41 +0200
Received: from [52.101.56.26]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0a98fc-7371-0a2a45060019-3465381a905b-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 06:43:41 +0200
Received: from DS7P220CA0024.NAMP220.PROD.OUTLOOK.COM (2603:10b6:8:223::12) by
 DS0PR12MB6581.namprd12.prod.outlook.com (2603:10b6:8:d3::13) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.21; Mon, 18 May 2026 04:43:35 +0000
Received: from CY4PEPF0000EE36.namprd05.prod.outlook.com
 (2603:10b6:8:223:cafe::3) by DS7P220CA0024.outlook.office365.com
 (2603:10b6:8:223::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.23 via Frontend Transport; Mon, 18
 May 2026 04:43:35 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000EE36.mail.protection.outlook.com (10.167.242.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.11 via Frontend Transport; Mon, 18 May 2026 04:43:35 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Sun, 17 May
 2026 23:43:34 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 17 May
 2026 23:43:34 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Sun, 17 May 2026 23:43:32 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=M8CfGzWTrlmlp4kZtAN6CbZqi56RL0wdXr1YXPkcToCzho2l6IkjKGUtuqkkFmMa8msGWU/9RCi+HJX5dB/LX5K+Nk+dkJ/rAiiI3wuQZIGp0aRNoofrCErp+pT1cDyKpplHOLa6tTOqkVZ2vhbGdveaoGZRCCto+sJP7KJalEXrNVBxQArDdMTBnIJyLDdf68AEPKmQ4aCJOztRPXbt+Eg+Yf/PPZNsxx1y+Eyccmxmvm+EaFnPD9mVOX1L1lV2Mk/DuGFijtR7bcgjK2QfGV5jLykRYPdU9OYMjFIgKqHi1JmIICYe2ofJKAaPIGnMHrCBIozyDUNn8ZBXlUI+Sg==
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=Yu7ayqMrH3qnWZfGPzCNiN5ktW5dNIQOgGBRXrgbBkA=;
 b=eJjQXdiJtVr/1t3wulqWtQfSdgs07SzKs8/XgNxVkcWqzG5mkufHGdChr9HuzfNVNyCXTT3ShNEsxuZJrrj7zvFo2CYkUZpJ31j0dbQ8EeyMDECN1/GuUw3l1ySp8hlkPUSnQzeZFdZuT8n8In7um50t8bS5jX6g4ISj+ik9PNr7mM+CPm7rTuNh/y76qyi95z4qcTa6AsUkEduVf3DH+Wygp7lDGq1F9jZ41Q9eDDjn2v9QqpogRVncn9n1HA7b6/1+J9hYGNboE+c306kIEG2MydM7gq1CcyQogAe8Ud3wZmKFcqJNEqnzVGjdImiBitURXXquY8JybYPFqAH3mQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Yu7ayqMrH3qnWZfGPzCNiN5ktW5dNIQOgGBRXrgbBkA=;
 b=Rlme6E2F27okP7zq3G8WJnCP76+cYEs02+l2ul/VZ/fO2GjdEh9RTph5c29qkKpLq9Y1L7DqsBWTuTsjRcM1WgfmH7JwBbKtmxfe+5etmmJLrFmG3z8OblIvMXkRWB2saW21FdC48yJ1EWfTlW5GTRzP11KyLQYB9kcCdieeDyQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <8f0aae8f-cdb7-4200-89bb-bac8cb075df8@amd.com>
Date: Mon, 18 May 2026 06:43:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] arm/gicv3: Detect normal NC ITS command queues
To: Mykola Kvach <xakep.amatop@gmail.com>, <xen-devel@lists.xenproject.org>
CC: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <4d72da78b9c30f5da62c8e03c3b03a01c24101eb.1778836836.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <4d72da78b9c30f5da62c8e03c3b03a01c24101eb.1778836836.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE36:EE_|DS0PR12MB6581:EE_
X-MS-Office365-Filtering-Correlation-Id: 9faa458d-8a73-4008-8eec-08deb4980578
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700016|1800799024|11063799003|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	+lHceWdbBjD59YEfM73BkMIZ9sO7c9dG5dAROCKcxZceM+K5+QeC8CqITQP8eLkauUfWapbO4J57yoUfmzTYh/MQGbB68Eir7xLlzezoQApvSyDjGh6hcvwkZNpzyhUlzFgRZhngoWkratr0VCmLsFGyT+hoxKUxGD+Wn+9w0hyheN+KvGoDUk98f2gNiRdQAvldJ/1qKfg8Yd6GIkiclu9WHLMLwyVx8tGOAN2bHP5CkzA7U5y2v3yeNdNvxpRZ8aF1CiXgKeqwUJ5dQuNzCf0bipRyb5d4TvGdJpvEXDT8EbGq43vsMNRRwJqTx/pbLSnWJeHoqp75wNcO1Vhm1f2K1dxyWD0VMmj00cdMnA58zOBNyojCsU6o3GKaxAFf8+3HutVVbg4ZksMaJw1iVVbX5d8vSqfnrL7lDKhhLcuP0HOi8lBE+51NIMPqwCH/DZi94jcjfI32xVv9llHGcaVbvTHiRDpQ+DtM77lIizXhD4a7Z4b0UxMvEe4ofwWHWJIUb8Wb+OH/LmA7yUEaQcx6c43MGd2ySFPuoO90C2NOlZh4wlo5Skt8SOhBNbV9u4tSEYWaGZtYNNWKoOMZxq6/AIeR5aIcNS3WOuvf/HVlpS6zYDl9m7rujibaeyEiipLXSl+P64CRum8Ny+PMPc9M9pAJwAP6aD6ytvX7JwcKWCAODtzO/yTk9UD6EpuX0tZHDd3RX2Qf2jtsizTB2JGKdmokMjKvhQE2P0L0rHU=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700016)(1800799024)(11063799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	RMmWtHv2/Zk1SMPAVTIcUQ8iTgEfbokafRgi6cFs+oJVS61Lcd7TH5My8f6P3atwcy/O9f79OcQ37ibia8wKrlH96Q1WYfJFE/3g+GrppPe04uYT45/PgS4HRIj7Qjj01NAjIR6HcNILvsu0Qmpn25gUCtBbtRqCj0Bozp8ozuZpNvqEnDBHRmTD19sm147KyrvDAqz7oVHTrPLdTGfKk8/wilmcBdOWkj2Cm1d7irrmcAdKHXwYYEruepaWsZ8Z/0VMAkqr5TDN8QcE/q2pK5juO1OBuUJ79y6E7zr6o4CooX+6B62VH5nNjDfdFpRiot2pP34PdE7pp9T+3lQLIc9r9LzCCQnsRgbCct7d+Csv7kLKS3388cJDAGmovyj+bi8fjgWMHikIOOFEnmN0URytcY7Hyf3A7AelX9FSuTD6SiD5XgyERyDauq1X85E5
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 04:43:35.2128
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9faa458d-8a73-4008-8eec-08deb4980578
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EE36.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6581
X-purgate-ID: tlsNG-16d1c6/1779079421-84767D75-DA9A6CCC/0/0
X-purgate-type: clean
X-purgate-size: 782



On 15-May-26 11:40, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> GITS_CBASER.InnerCache uses the GIC BASER cacheability encoding.
> Both 0b000 (Device-nGnRnE) and 0b001 (Normal Inner
> Non-cacheable) describe non-cacheable accesses to the command queue.
> 
> its_map_cbaser() only checked whether the shifted field was zero,
> so an ITS that reports Normal Inner Non-cacheable would not set
> HOST_ITS_FLUSH_CMD_QUEUE. Decode the field before comparing it with
> the unshifted enum value, matching the handling of ITS BASER tables
> and GICR_PROPBASER.
> 
> Fixes: 8ed8d21373be ("ARM: GICv3 ITS: map ITS command buffer")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 18 04:47:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 04:47:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311348.1581559 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOpsp-0003yn-Oj; Mon, 18 May 2026 04:47:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311348.1581559; Mon, 18 May 2026 04:47:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOpsp-0003yg-Le; Mon, 18 May 2026 04:47:15 +0000
Received: by outflank-mailman (input) for mailman id 1311348;
 Sun, 17 May 2026 19:44:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <gabi.qs.mail@gmail.com>) id 1wOhQ3-0001vx-Hn
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 19:44:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOhQ2-00Bwks-UA
 for xen-devel@lists.xenproject.org; Sun, 17 May 2026 21:44:58 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <gabi.qs.mail@gmail.com>)
 id 6a0a1a8c-2eae-0a2a0a5409dd-0a2a450ab15e-10
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 21:44:58 +0200
Received: from [209.85.221.46] (helo=mail-wr1-f46.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <gabi.qs.mail@gmail.com>)
 id 6a0a1aba-56b3-0a2a450a0019-d155dd2ed925-3
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 21:44:58 +0200
Received: by mail-wr1-f46.google.com with SMTP id
 ffacd0b85a97d-43fe62837baso748767f8f.3
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 12:44:58 -0700 (PDT)
Received: from fedora ([212.231.230.22]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da0a17a22sm32610761f8f.22.2026.05.17.12.44.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 17 May 2026 12:44:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779047098; x=1779651898; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=OF+u0pee6OdXPZyMSBKxZwEOVfRLtT3PPpeO+Uq+LEs=;
        b=Fs5Wc6k6DLkLQqLurciFXHf4d1lQQJPry1b9HPqunK0FE0ajTIJRgI8mBzpK/hmQdN
         KXeQvPDLTN++8DKG7baag9jH5nhKblmyEmqmKn6U/fiBx+jy1NfuadA9QuFMsT4t12ij
         DqS/kiifet4+wGfdABVvRSfYW89eJT3Gf77e+Vl3uKW7wndSUqt+EO3qpmHvpX2ZX+td
         br75u2fo6CRierlD33nEAZ7HTErlQYwACr9XK9l+gi+TX8o9BA4v6JQVUZM9ZjaAkuN8
         fAEKbhsQPioC2PW1VL5jiaY8Ycj1odluXC79TDyc9eTJapsz9Wb7uaGUbyYC/0E2zxlZ
         5pRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779047098; x=1779651898;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OF+u0pee6OdXPZyMSBKxZwEOVfRLtT3PPpeO+Uq+LEs=;
        b=SLMoJIa9HEl4rJkUW7ROLmFyev9RZYcZkpXG0TeRoAIbhOMQMlGAXYuYnEJjWJ5PaZ
         rXOATWRhhdmpM/7BWZhEMXjzy+u6JLVQL6fT50wdHjXyokC6fOZL8AsFR7ggJnoo89dQ
         Ef8i7+s7Ygm9flrkcxFZ0784Vpspc7mH5HljNmfEINPAw8qNwSJRzlS0t3ZpogHZHEpg
         3ulximRfsfm3F6Dwq6fEGKfWDjaiurXlAezo++9fmfUl9Lb4lgwO4Lngs/JZCzBkDBoX
         RsvA81ryWyuy6aB758DjhbnHb/Di1/dQLm/qfoirbEOLm9yv6HTbJZE3vtuIZi6irUMe
         v0HA==
X-Gm-Message-State: AOJu0Yw0qhMOecLqF+ClgTkkIxMCHSOO3Sv2mCBSe7uB76FPSJPoKaGn
	L1t+ZcsTTDm05o4x6RtB2dbNi1t21lReV6dp1+7XqNgFdRUZYo2IwmG+Hh/jpLbHNBk=
X-Gm-Gg: Acq92OFO7dKJr3GPXkgu5QtwW2A+6ZWvndyPNQczGKCO/UGi2Grj4GwCVp3GfQ5mKqW
	0yAZoQhxjuE8X2L1VrU30kEwiXQ4VvlqjhoXZmk2K+5J/iaEe029Ll3OlxmZWEyW6dhMRFQmW2F
	RxoZ6Ig1bT3acLm1YVXToZTLdydwukxHuqdyUb0jhQGs+2kf0r+6Fb206MLH+G01OY4/QXALlZ4
	RYQQpgJC4/LxMEMLQEFfZUtWEj397YJt4YB/8acUhzDkIJINm12nFr62dwE9oW2DccvGbVrgiL2
	2Mq7shez/tq39f6MgF29OgoOdPidsVwM3N2oFzX7jirTRbTNG98xEhivVkkThsK6y5lAmjYfZZD
	FSYpOIHIpAu8twzzYTWtD6UZOV0cXgZPjXDGRwPskYPS8gpXRjU4BPnmpEDxGRY8EaX4NNTxM5+
	pyZEuqj2lgkPbayBGlituCdWnSK7G7P9s=
X-Received: by 2002:a5d:584c:0:b0:45d:4020:8b59 with SMTP id ffacd0b85a97d-45e5c5877admr18849791f8f.24.1779047098207;
        Sun, 17 May 2026 12:44:58 -0700 (PDT)
From: =?UTF-8?q?Gabriel=20Quint=C3=A1ns=20Souto?= <gabi.qs.mail@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	julien@xen.org,
	bertrand.marquis@arm.com,
	michal.orzel@amd.com,
	=?UTF-8?q?Gabriel=20Quint=C3=A1ns=20Souto?= <gabi.qs.mail@gmail.com>
Subject: [PATCH] arm64/mmu: Fix PT_PT table descriptor value and comment
Date: Sun, 17 May 2026 21:44:43 +0200
Message-ID: <20260517194443.59134-1-gabi.qs.mail@gmail.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1779047098-7C8788B7-2F081F06/0/0
X-purgate-type: clean
X-purgate-size: 1746

PT_PT is used to create table descriptors in create_table_entry_from_paddr.
The previous value (0xf7f) and comment incorrectly included attribute fields
(nG, SH, AP, NS, ATTR) that only exist in block/page descriptors, not in
table descriptors.

Per the ARMv8-A Architecture Reference Manual (DDI0487, Section D8.3.1),
table descriptors only define:
  - Bits [63:12]: Next-level table address
  - Bit [11]: Ignored
  - Bit [10]: AF (Access Flag, ARMv8.1+)
  - Bits [9:2]: Ignored or reserved for extensions
  - Bit [1]: Descriptor type (1 = Table)
  - Bit [0]: Valid bit (1 = Valid)

Update to 0x743 with only the relevant bits set:
  - Bit [10]: AF (Access Flag, ARMv8.1+)
  - Bits [9:8]: Reserved/extension bits
  - Bit [6]: SKL (ARMv9)
  - Bits [5:2]: Cleared (ignored by hardware)
  - Bit [1]: Table descriptor type
  - Bit [0]: Valid

Compile-tested and boot-tested in QEMU ARM64 (virt machine, cortex-a57).

Signed-off-by: Gabriel Quintáns Souto <gabi.qs.mail@gmail.com>
---
 xen/arch/arm/arm64/mmu/head.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/arm64/mmu/head.S b/xen/arch/arm/arm64/mmu/head.S
index d14780ad19..c3cb262e88 100644
--- a/xen/arch/arm/arm64/mmu/head.S
+++ b/xen/arch/arm/arm64/mmu/head.S
@@ -8,7 +8,7 @@
 #include <asm/page.h>
 #include <asm/early_printk.h>
 
-#define PT_PT     0xf7f /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=1 P=1 */
+#define PT_PT     0x743 /* AF=1 RES=11 SKL=1 IGN=0000 T=1 P=1 */
 #define PT_MEM    0xf7d /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=0 P=1 */
 #define PT_MEM_L3 0xf7f /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=1 P=1 */
 #define PT_DEV    0xe71 /* nG=1 AF=1 SH=10 AP=01 NS=1 ATTR=100 T=0 P=1 */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon May 18 05:12:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 05:12:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311445.1581569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOqHK-0000Ct-MR; Mon, 18 May 2026 05:12:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311445.1581569; Mon, 18 May 2026 05:12:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOqHK-0000Cm-JZ; Mon, 18 May 2026 05:12:34 +0000
Received: by outflank-mailman (input) for mailman id 1311445;
 Mon, 18 May 2026 05:12:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wOqHI-0000Cg-TA
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 05:12:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOqHI-007Wd3-8t
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 07:12:32 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0a9fb1-e002-0a2a0a5209dd-0a2a450b905a-4
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 07:12:31 +0200
Received: from [40.93.194.54]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0a9fbd-212f-0a2a450b0019-285dc236bbd3-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 07:12:31 +0200
Received: from BN9PR03CA0196.namprd03.prod.outlook.com (2603:10b6:408:f9::21)
 by CY3PR12MB9703.namprd12.prod.outlook.com (2603:10b6:930:102::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May
 2026 05:12:24 +0000
Received: from BN3PEPF0000B36E.namprd21.prod.outlook.com
 (2603:10b6:408:f9:cafe::4f) by BN9PR03CA0196.outlook.office365.com
 (2603:10b6:408:f9::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.23 via Frontend Transport; Mon, 18
 May 2026 05:12:23 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN3PEPF0000B36E.mail.protection.outlook.com (10.167.243.165) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.0 via Frontend Transport; Mon, 18 May 2026 05:12:23 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Mon, 18 May
 2026 00:12:23 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 18 May
 2026 00:12:23 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 18 May 2026 00:12:22 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=f1/pgSgVi33lbm2q20ZBn0Q5R/OItl5VSThoiccxzllPOPelURe7ZtMhq15LLpZPeQJCVtbnJPjME4JbkzyPsrUrZdQyAoHsNSCXyib8ThrKLqfek8nYytJ2ZomqZkcDqypRbGOX/p1bK72Y5NQnHdgN9bBIrKKAT0kI93/sodNG/JKOKfawyEmSA7WtycuRhlnviPPQf+iLfyCvVxdntIsuCPQodb4XeLT3un8TVWEOuZx/4FZusapaBxX6hgkHCMLtYOAxS7yv1rzGOhQC6kE0eiC3PmxreCREKDge2b3EnediC8onT3YWVm1ez3Zo8B0+yXP08sRfZlOM03dwug==
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=Nv5iQWa/xWVYAN35Lws2CuxZeo7Snq0MAjiQRnR2FGo=;
 b=ie8NoO7ec6/2G7QAxhV3x4fz1TA7lNi0JBucWsmzTjYVIxVI7xVTKOFcRKItGrd2JS4xc4MHu1w2Ff/CrawTYDKbAYKXX8rjwgM/hyWpjGSWajR/2CoLhV4MsCMbBERnlC2pRw4nURIdiJ0VgxK1+sRx/dCHEbkupNI77aFhyK08G8QShqSwwsrbUuLS4c3VX/6GQP2nCNsOnh80i/c+hNhdbGuVx8FeyNADLRDin7Gl4R3XGtAJZdkbra8ImUDsLEbuoncD8VZV2OBQ2ytzM8QHge2ee0wkS8aA2RAWd2O/Mfh6WNyOhwmBLW5QyW7JX/D9ZY+I0t1s7vNJ+3PQAQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Nv5iQWa/xWVYAN35Lws2CuxZeo7Snq0MAjiQRnR2FGo=;
 b=msOFFbxGwWCwe1AEhh/uNyOR6MzNdwhibRZazaFVeYogncx9EKIcqhjlWkS3wFucGfUVCgiJaNxLWfUyYXaTWxPWSf+rBM4DBPWGvJz0CEc9hZ5saoeFxTbhmwFMAH0rpdYZ0nWG38mou6rCp354lpxHBWhFvSgYOO21UgrAQ4k=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <2ef09a6a-f78f-47a5-8ffb-cd03cb51fc1b@amd.com>
Date: Mon, 18 May 2026 07:12:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] arm64/mmu: Fix PT_PT table descriptor value and comment
To: =?UTF-8?Q?Gabriel_Quint=C3=A1ns_Souto?= <gabi.qs.mail@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>
References: <20260517194443.59134-1-gabi.qs.mail@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260517194443.59134-1-gabi.qs.mail@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B36E:EE_|CY3PR12MB9703:EE_
X-MS-Office365-Filtering-Correlation-Id: 48917d7f-47e0-4f31-1469-08deb49c0bca
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|18002099003|56012099003|22082099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	vUh2Ua6J9RjmWmsMk4aKujvC6ihB6y5u5NaMrL54tKab714W0VoDwvlQFXGulut9RafPJDhiB1Z5NpWf1HnybfLUoGYJWaC68UgkUPCvEOUoD9ggW16ZGQDLD/wSpiF2mJTDOm17Ucu38R5O1On/XIKJpj7gw3L1MtCvmI7KKx+cIobeAVmuqARTtThmlHwco5kdn+4xWu3PtgEqyhqmR7s9FIHYukDJGEic77lJczdi1T6My8vE6Xg6M0e1Mr7TF9oCEi/47/QqCYNxH8rGAFoTPpqRvEEZ2J9rNKEw7Ue/Dvi2y3Pv9ScoxkwXA3oQvD9k6wEKmI1bzSN/5epUSkIZ/xFKkuHNyjlJyEAsBXNDUN+RLzEujnfSOYXSd129GIcgZv9pbCtxYqh3GFFsdV66SQCWfTEy6M7fTHwcmKboL+VTy4omz1hj52r9SuxU466enpY2wUtw23t38EzjfWNLC6fWErbmhVpSX5xnL9X5a0NBUQkWJCEfOeijcU0xP229nebaQsQGQCqzBZbxSMc2W76BR35+h08jpbJrklpw+y20I6ff8R7QFxPmSYXUv3PfL0QLbmjfsPjQSLvTiE3h8NWFhC0j6aXgqbOMwt5wILz1Tmp7KE+JyByCAUX3DMIt7FbEpWyMJNK7wFxL19ZkJ5lf/LVTamqJ7RlDrIeIBVhScEr3HlUzC0oevLrcxgUpY4GIO3RjfvyrFwwhFWYEqxWvD8EJoYvqo0wXY1g=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(18002099003)(56012099003)(22082099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	xyy0fbfAG5EqoF/3y14X+RXi9A/rCDL7VoWBS7UCb+nLzD3CrlACyEPH5qBGNPHq9AtRAhgJY8i2sf504ELHf3vNfqWLwuT3IsOgc+QjAkv5Vw/ymvePngaCfvucP+aoT4aNWXKzsE6tMwdJKuigdDiTEI/IF2SaNaqMqHiGUtPZkm6tpX4P1ipXc+8THYxYSazqONwb+SWATjpk9r8p1SUI03jqtPcK3wV6FcSfGO5eZ/xSkwFZBnoE9uwXWYiVj3Y86+yNQNuNvgASLqRttNLAINrky2ql9eJSLzJGkKraoybO3oqFwqORqB+evJwEKZMSmJWMEle3Kee++vfKJioshYYwApItce+Ve5gz0aLrGBrIu1YXptvaWUcNIEa5BBHvkDJ6fROmJ56SPeA+0kSlDH6ZoV654Xqv0JuWKcO63ge6w6C7pvgWM8pkd9Ke
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 05:12:23.8459
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 48917d7f-47e0-4f31-1469-08deb49c0bca
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B36E.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY3PR12MB9703
X-purgate-ID: tlsNG-42698a/1779081151-19D6FF3B-C18C3A41/0/0
X-purgate-type: clean
X-purgate-size: 2286



On 17-May-26 21:44, Gabriel Quintáns Souto wrote:
> PT_PT is used to create table descriptors in create_table_entry_from_paddr.
> The previous value (0xf7f) and comment incorrectly included attribute fields
> (nG, SH, AP, NS, ATTR) that only exist in block/page descriptors, not in
> table descriptors.
> 
> Per the ARMv8-A Architecture Reference Manual (DDI0487, Section D8.3.1),
> table descriptors only define:
>   - Bits [63:12]: Next-level table address
>   - Bit [11]: Ignored
>   - Bit [10]: AF (Access Flag, ARMv8.1+)
>   - Bits [9:2]: Ignored or reserved for extensions
>   - Bit [1]: Descriptor type (1 = Table)
>   - Bit [0]: Valid bit (1 = Valid)
> 
> Update to 0x743 with only the relevant bits set:
>   - Bit [10]: AF (Access Flag, ARMv8.1+)
>   - Bits [9:8]: Reserved/extension bits
>   - Bit [6]: SKL (ARMv9)
>   - Bits [5:2]: Cleared (ignored by hardware)
>   - Bit [1]: Table descriptor type
>   - Bit [0]: Valid
> 
> Compile-tested and boot-tested in QEMU ARM64 (virt machine, cortex-a57).
> 
> Signed-off-by: Gabriel Quintáns Souto <gabi.qs.mail@gmail.com>
> ---
>  xen/arch/arm/arm64/mmu/head.S | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/arm64/mmu/head.S b/xen/arch/arm/arm64/mmu/head.S
> index d14780ad19..c3cb262e88 100644
> --- a/xen/arch/arm/arm64/mmu/head.S
> +++ b/xen/arch/arm/arm64/mmu/head.S
> @@ -8,7 +8,7 @@
>  #include <asm/page.h>
>  #include <asm/early_printk.h>
>  
> -#define PT_PT     0xf7f /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=1 P=1 */
> +#define PT_PT     0x743 /* AF=1 RES=11 SKL=1 IGN=0000 T=1 P=1 */
Looking at ARMv8A ARM M.a, figure D8-12 bits [11:2] of a VMSAv8-64 table
descriptor are IGNORED by hardware (see xen/arch/arm/include/asm/lpae.h as
well). The change therefore has no functional effect on ARMv8-A hardware Xen
runs on.

The arm32 head.S has the identical misleading definition and comment;
the ARMv7 LPAE table-descriptor format shares the "ignored in table
entries" property. After this patch the two siblings diverge. Update
arm32 to match, or leave both alone.

If the goal is "only relevant bits set", the minimum is 0x3 (T=1 P=1).
0x403 if you want AF as future-proofing for FEAT_HAFT (ARMv9 I believe).

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 18 05:42:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 05:42:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311458.1581578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOqkL-0004Un-TC; Mon, 18 May 2026 05:42:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311458.1581578; Mon, 18 May 2026 05:42:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOqkL-0004Ug-QI; Mon, 18 May 2026 05:42:33 +0000
Received: by outflank-mailman (input) for mailman id 1311458;
 Mon, 18 May 2026 05:42:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wOqkK-0004UY-43
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 05:42:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOqkI-00EXhy-R9
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 07:42:30 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0aa6bf-5cb7-0a2a0a5109dd-0a2a4505b9f0-18
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 07:42:30 +0200
Received: from [40.93.195.7]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0aa6c4-aaa8-0a2a45050019-285dc3079b5f-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 07:42:30 +0200
Received: from BN9PR03CA0077.namprd03.prod.outlook.com (2603:10b6:408:fc::22)
 by CH3PR12MB9099.namprd12.prod.outlook.com (2603:10b6:610:1a5::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.22; Mon, 18 May
 2026 05:42:23 +0000
Received: from BN2PEPF000044A3.namprd02.prod.outlook.com
 (2603:10b6:408:fc:cafe::ab) by BN9PR03CA0077.outlook.office365.com
 (2603:10b6:408:fc::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.21 via Frontend Transport; Mon, 18
 May 2026 05:42:23 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN2PEPF000044A3.mail.protection.outlook.com (10.167.243.154) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.11 via Frontend Transport; Mon, 18 May 2026 05:42:23 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Mon, 18 May
 2026 00:42:23 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 18 May
 2026 00:42:23 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 18 May 2026 00:42:21 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SQNEAlT9ronIAHSwuC5bzcksG5to1H+Oz+VHH72HLuFGUy6Ba/IXh6aFMtLOsi8do4sIGtntXwrMqxLN1qtuLeO/ZX81KvnUtYW1QQmieN97uT5vH9/Zx00UaStlw9fL+G0FuhVjiahogd74k0ItOxjBeJwwLE6Wtj6Yp7omEMlOBRHD3ajkJcavud2ZUk8e+bI/W2xMbmQ18oV+Rd6+IZiNgDjecOwCn8Ab8TSbr2k83OuDYx9bFgEmHp9tGMceJ2JrdRoo3YEVfR43hSL79AhP9ilYxiylByReh3pFEINag3x/TpAE1IDeGv/TJEiC/I1Q1u31PW9fuQlICdkMFw==
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=O8KRYEoASOjstQf7k4/jjLmY7pzeWH549moAVDbBBdU=;
 b=fvMGLSqV8SIXuTORXw8JB+o01/g8+LtFSYfO9HN6S1SMpKGtuQHVF2hjitOxM6+jzngErJHuy191g/7J16bkltmBudfVx/PMt+McCHYecxUKIedcIO36R+oKweo6v+m3gPy9gzGHNQHOIoSX8OustZuy6Inywu9iJn7UY+Lo9M1GUwd20FT7vmNr0DC6gFCa5W8dab3YdKl+eFc6VDZIKjcEvcO3mYMOxowHsVC4LheqfT7z1vABJXAxZfNRUd21vxWsH3XZ8wQ/bC1bB5ZGD6JjtAnEWGjRDszDCSozHRKMj/o24NWIuidqD+wExe0ZHZC1BPXmH6jAabdD8hkSkw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=O8KRYEoASOjstQf7k4/jjLmY7pzeWH549moAVDbBBdU=;
 b=mnZzKwzizaDFZNfe5cQO1vsH5f2VYHdwap5Q7FEuC8rbX8tCXAILk3KR817WvQcqam8mth6aoNalaWvrOSrgvq3Totedi14bADHk4b1NtIcUnEw5rXBLQhXBepHF7Vzo1r1jk+tLqR8yMU4xSjr1SyT6AWAV/ZXp0TYp8Sgr1Vk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <7f5c613a-33f6-481f-b3f3-d627833a461e@amd.com>
Date: Mon, 18 May 2026 07:42:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen/common: llc-coloring: clear color count on parse
 failure
To: Mykola Kvach <xakep.amatop@gmail.com>, <xen-devel@lists.xenproject.org>
CC: Mykola Kvach <mykola_kvach@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>
References: <cover.1778925998.git.mykola_kvach@epam.com>
 <cbb02d6c5af6606ada3e477e8d45d730ffe72723.1778925998.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <cbb02d6c5af6606ada3e477e8d45d730ffe72723.1778925998.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000044A3:EE_|CH3PR12MB9099:EE_
X-MS-Office365-Filtering-Correlation-Id: 359ac5b5-1c48-409e-687e-08deb4a03c91
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|376014|1800799024|4143699003|11063799003|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	iQKH2g+UDbn2WYKPhEkDg8a+JNV8xm1dzfRYdcXefss7RC8bHGTeWQc4ADsGE/mNvgCUQCo6CD3ib9Lyzd8GZxQ2U3cEfy4B7LXARMdxMbm7+bccyH6cBF8BnC6GAQdpRFdMQCgqGanbT8ZB0qjpFdF6Ca9Q+QxF104GfkDODWuSmY5I20UjuHtlNu1fmvSY4e/YS/Ay182Mt1ulzMXVHVbEPb9MFZqxoHqY+FazqdHmJ0nfshJKu9L8UIVii4rX7k7b9XJ+jjRDocdB6tqzyOE5aZwmPNrFFcxqSVb4VuoXdV/P2SkRDH3TA63bAquWNqUnJw2cpsglOHE6Ko9StnE53yOxhFTl7X3gRqU4Rs26wlWcBzdTvudqV/JYLv5sEdaO3cW3WHFod7oYSpiazSgCkeZDIipjzLMAkwVlGgLDkJQUFPGDgkdubhrDnKWc+yDeAi2U9CNRfjxbit7a10JdvKpLVFp5aG4NgWR6fnJY65zrcYnyqGkxoQhPkC9QIRbtyKGzhW7GmSr325znCkjK2jPY5X3UQuW7/ij1Nk2mEC98zs8YK8h4LWMskggxE5OR9KBVqn8QyniqshFhTpN3iuCi7/EDbnVBc4aaPq9Oa6dCRRnlydKJwOrX1s3NGDCiS9kWe+JJfv3DP7QE1C4tZtJZloD+mYagAjbJo178cpLfjY7HHbiCaNwlEc2siPsR5v5KuAvbbfO2KNd0jFd0wL3uALI4zApCs083eAk=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(376014)(1800799024)(4143699003)(11063799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	5fdViT7kNeKzesb0QTdBdYa2YWeEDaCivev3Z80JcjnrAnBxeyOCaLxDsR5oj2f/UwxqWlDRzSE880VZcj5mOjVR5S15J7XrrO4ApzvqYhYZ8N9dQYjobbKu0RxxMrnZUe7f+vDpRjMxuDTYhXcKgnpjRf/kSEvgNMM8ygSxT/2b102ckR/e4MPl+Y6WosZvMncJdFP63wNIT1nKB0m7ybVi/Kavp6CDKZe+tZhOps9NEXA6qqsBL89dCqSqsHY5MAqQZz0kZWgwDSeTIngsChY1LcJieJ9aXU2bWtY8Xk0deYsglOTpMzqzumpKZ5TVUgM/pnbZJt1IjCqa6q2FRBRM0oVncMEgCKzwLVZMAZObADl4zZFq6K58NipFokVgM28uJzUvAN/Tf/FqagBkeUNPdDNIz+ZNPv4/YdCJ0mQKzieKFJO6OQGfv60W6o0S
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 05:42:23.6701
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 359ac5b5-1c48-409e-687e-08deb4a03c91
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000044A3.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9099
X-purgate-ID: tlsNG-c201ff/1779082950-D8B78443-3C2496B7/0/0
X-purgate-type: clean
X-purgate-size: 756



On 16-May-26 17:03, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> parse_color_config() updates the caller-provided color count while
> parsing. If parsing later fails, leave the count at zero so callers
> do not consume a partially parsed configuration.
I would also add for clarity:
  The bug is reachable in practice: cmdline_parse() ignores the -EINVAL
  from a custom_param callback, so boot continues with the partial
  xen_num_colors / dom0_num_colors that llc_coloring_init() and
  dom0_set_llc_colors() then consume.

> 
> Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 18 06:07:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 06:07:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311472.1581586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOr8a-0007mr-Rz; Mon, 18 May 2026 06:07:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311472.1581586; Mon, 18 May 2026 06:07:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOr8a-0007mk-PP; Mon, 18 May 2026 06:07:36 +0000
Received: by outflank-mailman (input) for mailman id 1311472;
 Mon, 18 May 2026 06:07:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wOr8Z-0007mY-9Y
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 06:07:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOr8Y-004X7Y-IH
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 08:07:34 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0aac8b-2eae-0a2a0a5409dd-0a2a4509bb26-44
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:07:34 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0aaca6-2497-0a2a45090019-d155802ab8f5-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:07:34 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-488a88aeec9so21614215e9.2
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 23:07:34 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48febe60fc0sm86279535e9.21.2026.05.17.23.07.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 17 May 2026 23:07:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779084454; x=1779689254; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kF3WG2mVyK43f4BzTtmJ4I72Ap6Quymf5RkIy/s2dos=;
        b=g8DpEZhelpfpZM4LeGCE3DAQAsElJ9UKj/jIbcMor3qPaDQSGty6JIn85e2nVpeSe+
         +CpC929hd+9LhEWzjBClW9Ot+XYhUTfboA9XD+lE7g3gGrnLtcwwHQphzDU5OPbKmf9L
         h61Kedz+LR1QWwcwWkOiVc2D6FUFWna2Mt17VH6aauGU/yowQ/g7JsFFz0/PjiXBo9HR
         xoG8EluJbNu0nhb2QlKDjhyyF9E6N8dN8OBY9wIlsfV6K02KIXypK8cYKu3XVt9iJYPr
         YA6f+b23Kl9mW0ldz9eQe6vh6lWXQjM2WooJ2Sc9F86D/2NETJt3lJ5uHZHQ/DT7Uc0k
         G6Rw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779084454; x=1779689254;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kF3WG2mVyK43f4BzTtmJ4I72Ap6Quymf5RkIy/s2dos=;
        b=Y0KiZtl/8Grhwu5RebNal0rR+Kq5Kf/hh8FR2ahiByHGXzzytuzbWg4uwC+v68ZLJf
         qMHdCo2K/LZOatJaoK5VuXHvNkwPSnMFcfLud/Xdu3IHS563tWlBRrvP5wF/+M82tq1N
         qY98ivJzIbAZrBK6Euq1ZaQXtBTVEvzXxnvrVgLHrnSnEXkDX0sk7gJAwavyZQhzZv0M
         22hv1PNO5p/x6rBKtD9YezaCIowEvJqenDwRTuKjNd1yKcNwGRjPxs53jzV1S8nibB5u
         SYSHVTsFVeH8fMJjYdxwBlipCppROMwBP5+igtMyaOq2NNET7aZNGoB8k8A+I/mT8iV+
         7uhw==
X-Gm-Message-State: AOJu0YzY+Tcjo/rqxaOHyi7KxmldT9adG0WwoZ7Kn2yjYEreHRvjiA0U
	P8ogp1jQRj8Fg1PLaBKVI9D2CKNL+PggWMO9ixJRfiWCet9MsTrff74E5csqOLLj7Q==
X-Gm-Gg: Acq92OH7Bp90tznGSa9BYSJ1qlZvOL3dNePnwakpmKf0YzVEmFfzO87WR+OuWxTOfuZ
	cTWt5foy1SpWiJtXDSn9AfKxz9p3Zk6InW4CedK3xhn5GQbS/i1f3UJ83aHLQpJQ7w017oCv0KS
	tiyH+cNziVqdXug+0A2WHYkr8XuQ2ye2iOQQ91+0IWtsKF+EoDZIe9jfS/p4CEgbbNhl1pBLB7X
	f+ZHAl9c5Qns7ORFqDdfxX8UlauntRenoJbeGbO+4F/GRQUt7E3egfOWh8hATHv/Iap0l3CmK+I
	amib+brlmWGz1cC6FPJSEiQw77ZzIF+iW9zPHBFkne3oZ2P1htVGNsIS6sXxulmObwHQJjj3wqV
	kxKwzppvdXQgoSnug4FJ7l/iQSY/HoadN1R2ChCS42CuhLlQlf6ZehJIL1fdyk6pfdj5Y7x0PsY
	4Sp9+ipPd78Owv3Dc2Ep+506TKuB0g5Yc5zxGVkyJlaQzOi1Gq4A1aKK4tkfnZny6HGPFSqvYql
	L7ar3adHEEB+6c=
X-Received: by 2002:a05:600c:181b:b0:48f:e230:2a1d with SMTP id 5b1f17b1804b1-48fec369d0fmr115314865e9.32.1779084453617;
        Sun, 17 May 2026 23:07:33 -0700 (PDT)
Message-ID: <9e5b4c6a-308b-4d4b-8383-dffcffab6f58@suse.com>
Date: Mon, 18 May 2026 08:07:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 v2 7/8] x86/mwait-idle: Add cmdline option to
 adjust C-states table
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <178739fe-fa41-4ff7-b16e-67c4b2a99b38@suse.com>
 <8c46fedd-f1f3-4cad-91fb-1b3b8d58db50@suse.com>
 <agXns5dpu-X5rspi@macbook.local>
 <5fdd68ea-a413-4f8e-a50a-b0d7d821e904@suse.com>
 <agbSanNokXLVu1o1@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agbSanNokXLVu1o1@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779084454-8A589A53-AB34A9D1/0/0
X-purgate-type: clean
X-purgate-size: 6825

On 15.05.2026 09:59, Roger Pau Monné wrote:
> On Fri, May 15, 2026 at 08:57:45AM +0200, Jan Beulich wrote:
>> On 14.05.2026 17:18, Roger Pau Monné wrote:
>>> On Tue, May 12, 2026 at 05:38:08PM +0200, Jan Beulich wrote:
>>>> From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
>>>>
>>>> Add a new module parameter that allows adjusting the C-states table used by
>>>> the driver.
>>>>
>>>> Currently, the C-states table is hardcoded in the driver based on the CPU
>>>> model. The goal is to have good enough defaults for most users.
>>>>
>>>> However, C-state characteristics, such as exit latency and residency, can
>>>> vary between different variants of the same CPU model and BIOS settings.
>>>> Moreover, different platform usage models and user preferences may benefit
>>>> from different C-state target_residency values.
>>>>
>>>> Provide a way for users to adjust the C-states table via a module parameter
>>>> "table". The general format is:
>>>> "state1:latency1:target_residency1,state2:latency2:target_residency2,..."
>>>>
>>>> In other words, represent each C-state by its name, exit latency (in
>>>> microseconds), and target residency (in microseconds), separated by colons.
>>>> Separate multiple C-states by commas.
>>>>
>>>> For example, suppose a CPU has 3 C-states with the following
>>>> characteristics:
>>>>   C1:  exit_latency=1, target_residency=2
>>>>   C1E: exit_latency=10, target_residency=10
>>>>   C6:  exit_latency=100, target_residency=500
>>>>
>>>> Users can specify a custom C-states table as follows:
>>>>
>>>> 1. intel_idle.table="C1:2:2,C1E:5:20,C6:150:600"
>>>>    Result: C1:  exit_latency=2, target_residency=2
>>>>            C1E: exit_latency=5, target_residency=20
>>>>            C6:  exit_latency=150, target_residency=600
>>>> 2. intel_idle.table="C6::400"
>>>>    Result: C1:  exit_latency=1, target_residency=2 (unchanged)
>>>>            C1E: exit_latency=10, target_residency=10 (unchanged)
>>>>            C6:  exit_latency=100, target_residency=400
>>>>                 (only target_residency changed)
>>>>
>>>> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
>>>> Link: https://patch.msgid.link/20251216080402.156988-3-dedekind1@gmail.com
>>>> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>>>> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 111f77a23348
>>>>
>>>> Add __init to get_cmdline_field(). Put cmdline_table_str[] in .init.data.
>>>> Other adjustments to fit our env.
>>>>
>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>
>>> Acked-by: Roger Pau Monné <roger.pau@citrix.com>
>>
>> Thanks.
>>
>>>> +/**
>>>> + * cmdline_table_adjust - Adjust the C-states table with data from cmdline.
>>>> + *
>>>> + * Adjust the C-states table with data from the 'mwait-idle.table' parameter
>>>> + * (if specified).
>>>> + */
>>>> +static void __init cmdline_table_adjust(void)
>>>> +{
>>>> +	char *args = cmdline_table_str;
>>>> +	struct cpuidle_state *state;
>>>> +	unsigned int i, state_count;
>>>> +
>>>> +	if (args[0] == '\0')
>>>> +		/* The 'mwait-idle.table' module parameter was not specified */
>>>> +		return;
>>>> +
>>>> +	/* Create a copy of the C-states table */
>>>> +	for (i = 0;
>>>> +	     i < ARRAY_SIZE(cmdline_states) && icpu.state_table[i].name[0];
>>>> +	     i++)
>>>> +		cmdline_states[i] = icpu.state_table[i];
>>>> +
>>>> +	state_count = i;
>>>> +
>>>> +	/*
>>>> +	 * Adjust the C-states table copy with data from the 'mwait-idle.table'
>>>> +	 * module parameter.
>>>> +	 */
>>>> +	while (args) {
>>>> +		char *fields, *name, *val;
>>>> +
>>>> +		/*
>>>> +		 * Get the next C-state definition, which is expected to be
>>>> +		 * '<name>:<latency_us>:<target_residency_us>'. Treat "empty"
>>>> +		 * fields as unchanged. For example,
>>>> +		 * '<name>::<target_residency_us>' leaves the latency unchanged.
>>>> +		 */
>>>> +		args = get_cmdline_field(args, &fields, ',');
>>>> +
>>>> +		/* name */
>>>> +		fields = get_cmdline_field(fields, &name, ':');
>>>> +		if (!fields)
>>>> +			goto error;
>>>> +
>>>> +		/* Find the C-state by its name */
>>>> +		state = NULL;
>>>> +		for (i = 0; i < state_count; i++) {
>>>> +			if (!strcmp(name, cmdline_states[i].name)) {
>>>> +				state = &cmdline_states[i];
>>>> +				break;
>>>> +			}
>>>> +		}
>>>> +
>>>> +		if (!state) {
>>>> +			printk(XENLOG_ERR PREFIX "C-state '%s' was not found\n",
>>>> +			       name);
>>>> +			continue;
>>>> +		}
>>>> +
>>>> +		/* Latency */
>>>> +		fields = get_cmdline_field(fields, &val, ':');
>>>> +		if (!fields)
>>>> +			goto error;
>>>> +
>>>> +		if (*val) {
>>>> +			const char *end;
>>>> +			unsigned long n = simple_strtoul(val, &end, 0);
>>>> +
>>>> +			state->exit_latency = n;
>>>> +			if (*end || state->exit_latency != n)
>>>> +				goto error;
>>>> +		}
>>>> +
>>>> +		/* Target residency */
>>>> +		fields = get_cmdline_field(fields, &val, ':');
>>>> +
>>>> +		if (*val) {
>>>> +			const char *end;
>>>> +			unsigned long n = simple_strtoul(val, &end, 0);
>>>> +
>>>> +			state->target_residency = n;
>>>> +			if (*end || state->target_residency != n)
>>>> +				goto error;
>>>> +		}
>>>> +
>>>> +		/*
>>>> +		 * Allow for 3 more fields, but ignore them. Helps to make
>>>> +		 * possible future extensions of the cmdline format backward
>>>> +		 * compatible.
>>>> +		 */
>>>> +		for (i = 0; fields && i < 3; i++) {
>>>> +			fields = get_cmdline_field(fields, &val, ':');
>>>> +			if (!fields)
>>>> +				break;
>>>> +		}
>>>> +
>>>> +		if (fields) {
>>>> +			printk(XENLOG_ERR PREFIX
>>>> +			       "Too many fields for C-state '%s'\n",
>>>> +			       state->name);
>>>> +			goto error;
>>>> +		}
>>>> +
>>>> +		printk(XENLOG_INFO PREFIX
>>>> +		       "C-state from cmdline: name=%s, latency=%u, residency=%u\n",
>>>> +		       state->name, state->exit_latency, state->target_residency);
>>>> +	}
>>>> +
>>>> +	/* Copy the adjusted C-states table back */
>>>> +	for (i = 0; i < state_count; i++)
>>>> +		icpu.state_table[i] = cmdline_states[i];
>>>> +
>>>> +	printk(XENLOG_INFO PREFIX
>>>> +	       "Adjusted C-states with data from 'mwait-idle.table'\n");
>>>> +	return;
>>>> +
>>>> + error:
>>>> +	printk(PREFIX
>>>
>>> XENLOG_ERR ahead of the prefix maybe?
>>
>> I did already raise the level from info to warning, compared to the Linux
>> original. I didn't want to go yet farther with this, hence why I'd prefer
>> to leave out XENLOG_* altogether here.
> 
> It seems like the outlier to me.  All other printk() instances in the
> function use an explicit prefix, so I would think it might be best to
> also add an explicit prefix here.

Okay, I added one (warning, not error).

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 06:20:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 06:20:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311482.1581596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOrLM-00026p-0J; Mon, 18 May 2026 06:20:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311482.1581596; Mon, 18 May 2026 06:20:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOrLL-00026i-Tn; Mon, 18 May 2026 06:20:47 +0000
Received: by outflank-mailman (input) for mailman id 1311482;
 Mon, 18 May 2026 06:20:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wOrLL-00026c-5Z
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 06:20:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOrLK-007hTj-Hg
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 08:20:46 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0aafb7-bab6-0a2a0a5309dd-0a2a450be5e2-14
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:20:46 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0aafbe-212f-0a2a450b0019-d155dd2ce4f8-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:20:46 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-45d96d21e82so937163f8f.0
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 23:20:46 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45e7c22d8b7sm5512733f8f.6.2026.05.17.23.20.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 17 May 2026 23:20:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779085246; x=1779690046; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LHeTU7Se1mOCJpeFiKjhdblIArugmlpLyD1aJB4dggw=;
        b=eNlAzemrl1lvdgw5xpXlnLpGuJ5vV9SFuOc7Qh8izgWsLcYFmv4NuGTfPm8zVy4JGG
         1tLXcDuCqrEqg1B0doP55lCZhk6MEJZF/hvEWVYCjSDhri13++v5ke6OLc1ZYD8U3EZ1
         j/mmWApH914HfBB2JpRNax10gUjbbZslF5QfvIQ+TrEXJYPqNN1srt3T4xwTZHuwvHHk
         Qmmyg3tEw25Znh6tFB/piPTIIJ0Xq64Z+PTzzYoePaGHpXiLl3YH8c2HRl+HOW3GxxAz
         wvX97HO/x8B07MItE4pQm815bOojdhuELgDSXGyBZ0Sl6ELAqxPLMlHOxvZjXetFyCwg
         SwdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779085246; x=1779690046;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LHeTU7Se1mOCJpeFiKjhdblIArugmlpLyD1aJB4dggw=;
        b=H/D7/wQnIiWEdlLyW6V0VwFoP5Hak94w12Ac/QnU8qpJFM9z7/b72AHNZ3dql+GqFg
         jx9u5Ynll1RqsT8WDNkqizg+kY9n8YCNZ86D0EQaPCg8KE5u+2z/DXd+n+OYFIJ5sOar
         sVMOrcPUuqJsldZlzs7Ii4h3EQdXk459zmhjYxw1oVEaQ/dY0r7+NCLYKeJ5wzsxEeCF
         pgAJMynyb0fwXaglrqj07QVNKIPZpfy30+JPsw343bruyc5CtRCqBPkjUVtZBTzpJ6As
         kFN+VEtaiDrkNH9pBUB/bE8Y8LKlp+Z5B2c2YjWRzlGM1Nx/ly5Axy5uIsjXgAzYuZxA
         nuVQ==
X-Forwarded-Encrypted: i=1; AFNElJ+egeGcDKC4F+Ecnk3Up07DjSphE/pqTuPKOHB4daCC3c2bG7+IW/tKohVFU1orMH1P00MiHWAlhNQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzyyd+0Lyi6MnDRJcivWebPaWw72B12ZTxXjyt4C2tthGc53k5T
	OBoVxSF48OSfDbWVtTiiA76HRpzlzEP8lmn+ZWCOoILcHdxRzxe78hTpTkWnkvd5Gw==
X-Gm-Gg: Acq92OFXy8CP6lVCj1fOt7z6Ut+kYUfkCl6O4Pmn+smqKqlIOTsjnKU8BU9ESfEgsH2
	XRGOLgm1psz5tQFhJbz8hwbv+oh+xhzDuVuQM1YVIWuzKdCIQYYUnGi6UrNyzBH9UU5V6PgXb5P
	DMQ8QdAik1XlonldJV/LcF8dGIT9LhZ03JyMtPZMy/sZ+W7w761sSVqiqXjqzu08mDr3EFpTITc
	epp2sTQFCGByo+w1sofPRYP31d6aVqWIbnu5uMAhVL7mQXmI8w7xSCj96qqngZLFV23Du+8QG/y
	F1zSSVWtCK13KbvWWXim6G5JW9+knsgK9GK1O9f8xzbqDOqlBjbBysBh4NkZAL6E72vU8HxttrH
	K7+B7iOF7d6bMJjOdfY/jK57CYHV//+reRuJsROSPzjX4/cSoeALeZHL+fgT3qCbLWxjV4WcIJp
	/xh2LVSgZmPw8N/RLUyOJhHWITzdzpHN41tfEDz+mPH1vZhn7yIIcr8u8hGaEMJxoNnRDjxL5UJ
	mxBxAuZcgt3LXk=
X-Received: by 2002:a05:6000:2083:b0:43e:a9ba:b194 with SMTP id ffacd0b85a97d-45e5c5dd921mr21859409f8f.34.1779085245609;
        Sun, 17 May 2026 23:20:45 -0700 (PDT)
Message-ID: <d9db51c5-97a1-4131-8575-dca1ae2cf52c@suse.com>
Date: Mon, 18 May 2026 08:20:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/2] xen/common: llc-coloring parser fixes
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Carlo Nonato <carlo.nonato@minervasys.tech>,
 Marco Solieri <marco.solieri@minervasys.tech>
References: <cover.1778925998.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <cover.1778925998.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1779085246-1AF76F3B-5F0008A6/0/0
X-purgate-type: clean
X-purgate-size: 1320

On 16.05.2026 17:03, Mykola Kvach wrote:
> This small series fixes two issues in parse_color_config().
> 
> The first patch makes parse failures leave the caller-visible color count
> at zero.  This prevents a rejected command-line value from leaving a
> partially parsed configuration behind for later init paths to consume.
> 
> The second patch rejects empty color tokens.  Previously, delimiters in
> places where a color value was expected could be interpreted as color 0,
> because simple_strtoul() returns zero without advancing the input pointer.
> The patch checks that each parsed color value consumed input.  It also
> adds the missing newline to the DT color parsing error message.
> 
> Mykola Kvach (2):
>   xen/common: llc-coloring: clear color count on parse failure
>   xen/common: llc-coloring: reject empty color tokens

For both of these, a question which isn't even considered in the reasoning
is whether the present behavior may be intentional. Especially for the 2nd
ISTR Stefano(?) not so long ago indicating that the behavior is indeed
intended to be this way. That may have been somewhere on Matrix rather than
on the list, though.

In any event, you didn't Cc the authors of the patch, without which it
seems unlikely that they might even notice the submission.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 06:40:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 06:40:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311491.1581605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOreU-0005Fc-HX; Mon, 18 May 2026 06:40:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311491.1581605; Mon, 18 May 2026 06:40:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOreU-0005FV-Dd; Mon, 18 May 2026 06:40:34 +0000
Received: by outflank-mailman (input) for mailman id 1311491;
 Mon, 18 May 2026 06:40:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wOreR-0005FP-SC
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 06:40:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOreQ-007OGt-Ov
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 08:40:30 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0ab459-bab6-0a2a0a5309dd-0a2a4502d724-14
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:40:30 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0ab45c-af86-0a2a45020019-94a39217faf0-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:40:30 +0200
Received: from pps.filterd (m0367124.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64I4cnGc3577629
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 06:40:28 GMT
Received: from sa9pr02cu001.outbound.protection.outlook.com
 (mail-southcentralusazon11013066.outbound.protection.outlook.com
 [40.93.196.66])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4e7ux40ktq-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 06:40:28 +0000 (GMT)
Received: from MW3PR06CA0006.namprd06.prod.outlook.com (2603:10b6:303:2a::11)
 by DS1PR16MB6639.namprd16.prod.outlook.com (2603:10b6:8:1ef::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May
 2026 06:40:25 +0000
Received: from SJ1PEPF000026C5.namprd04.prod.outlook.com
 (2603:10b6:303:2a:cafe::25) by MW3PR06CA0006.outlook.office365.com
 (2603:10b6:303:2a::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.23 via Frontend Transport; Mon, 18
 May 2026 06:40:25 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 SJ1PEPF000026C5.mail.protection.outlook.com (10.167.244.102) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.11
 via Frontend Transport; Mon, 18 May 2026 06:40:24 +0000
Received: from pps.filterd (m0426315.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64I3cfAr2047041
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 02:40:23 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [44.208.76.22])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4e7afrs109-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 02:40:23 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id OreGwohgKZ2SgOreHwmLnV; Mon, 18 May 2026 06:40:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=a0lLwRxvp+QKDqXzINjwoO63vCm
	IhXnCorPVb2fF58I=; b=jIeffbBQyLMrNBT7gJQWFfYVe3zHJZdpuXc/rweKhrN
	x7ld0IqZxUtoo6nZHAp29XR6vFeeGIhRpobxtp2XePSyXCUY9Vk6ykuITY2/9Gyi
	/SjerjldKCVmo/ZFSOkI8N9JZ5zniBnFcb4TtgmdyrUk/rlP06xwHKkFBvShBfah
	jqkAHc57a7TuEstSLxuK+ja/1utL+Sqfs6w8nwaSPSKfl1mqJGUHh+t99Bt2OidB
	h1ho5Pt+qHM4mj9In4tV6/Hkkij1ZtCiV+/W726ith1sB6HHaB+nXatAM2DBHdjt
	yWk1Ij/W6/FS3/sGlnf38zu3T2GbYgq+3ZAImW93+TA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=khPXyXhOnn1z7AWGxNvxUtEaO9yP6en6iFbpOYrF78GKnoHgAOlh0SsQ+Lr1apODC1xnOyjHtcrrzki5XWSyjTZ/PyMceNzhT9/LOhCsKdEZZpoAo4uwmvmlPp3jtYR7HwFGDcri1u0mvn7Nqye4c7C/KeOm8V5IMZHShYV1dhl1vAlNNrIlvCQbfBAz3gDhwJgLWQJUt/DF2yT24/Mq7zI2EMsezbw/xtwBOukL6t+qF/TXC/3PE6zyG8Bsu3jgE5xBTcnreyjlFCYpvGLUiGQ5TjpNTTNm0OS4fem0vdv1DtF8YhSmZp8rEtkDA/k369vf4KvdZL8I/PsRi+KVeQ==
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=a0lLwRxvp+QKDqXzINjwoO63vCmIhXnCorPVb2fF58I=;
 b=N+J8fhA1vDTkoeoCOpUNE5cnc2cdhQ4EvOG11u7qYP2txqHZPfLb+RKyMTmMCOpSZOYBLGEiQRFVrPF7zEEMfE4EtPHRRpjEvHTlRRovgjRxtWl60gL8I/RIzLkvkjVO9nZPXygQpulYxr3NGlCFLO+pNMVU7RysOsOqBYX4NYZUvq19K3nSisD4NgnZK7NDf6mPMfGfX3wptk836i6y7nBFmn8WH1Yz4xcdl9eME4wJR4quj+ZgYwFA059quVsbCBnQzU0Dfx2xbUocW0IevFQiib7YTbDx1Lh4A+F5P7EPYRZPm0R2L67scdSre1P/Jt95jXSNX0npxBYiBNIT0A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=a0lLwRxvp+QKDqXzINjwoO63vCmIhXnCorPVb2fF58I=;
 b=V2PfT2OWuWKUmQXJYmgXvGqd+7BtyRaKVIUXv1TUjaGRXggnFbT4glm8FHD4LggmBuFD/1Kw88nN2WCVrEIcvwC/TJ1IY1oGnXdjEOr2S4oUEXxHVbY/FhufP3Z+IZabA+0QejFDktwLNJu0ikGq0QfyPpYyn1FrtxLZtdDT2DY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=a0lLwRxvp+QKDqXzINjwoO63vCmIhXnCorPVb2fF58I=; b=kljm7sCU1Bhz
	TX/p/U/yaC8RYgYr5gD8PNQ9iloCr06SFFG0WCL2urTtaiPP0/cUBtiC9edQn9aK
	Sb8Z1V7zyMp7MWQi5st4/VzT2VKdLcrJWULMzk0Vmcb0dJage8mwuGIK0SUvJihg
	Mpp+b8oOU1IuCxQYXKfULlwjpXIKdzZ3aL3yZqkLz/OijmGuaSsDEt2hO/U1/M4E
	pV/hPM4zATTYnq8UKb4clgCInC3sQvA2XI7ew4mnPLWE97hIfNfwriLxCZuZYkJo
	LEKLSkGfPKLpFK/Ra6t8fgtMyeVDSqDBbFqAZ4/jbq1UbIe749H+0kxYwueErVvI
	SwAVlmqLCA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=a0lLwRxvp+QKDqXzINjw
	oO63vCmIhXnCorPVb2fF58I=; b=fM8d2cwMCohQiHpdtn4RgM9EAyZMgzOHRZhA
	853NMJVhNQb8bE9KFIrA8v5UYZbBhWtKE15F+n9qFtZa5djAHO0glMr1DjKwdKug
	J86V4/X5XGsc8U+W5jKZxjsErnsmtigPP5+Jvb1XxqBBa6cc8pNdukhedW0yu8LL
	Ph038jKoi36Tpt5uqItOKhQjpjgzN3AQw/gkh0/SrqYlKQgEJLV6dOEfjnxsylXN
	V5qO50mBu/PFLNJ8zGDaXtJeW3vnca08efesqiH4q/MYr0Ri9DnzDOcElisUc3v2
	A+biLqbsmMW2UjmnwtIe/oRoYCk8U28v4H/m8DJkP4ExpSOnZg==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: OreGwohgKZ2SgOreHwmLnV
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Sun, 17 May 2026 23:40:20 -0700
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>,
        Andrew Cooper <andrew.cooper3@citrix.com>,
        Anthony PERARD <anthony.perard@vates.tech>,
        Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
        Julien Grall <julien@xen.org>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 2/2] xen/common: llc-coloring: reject empty color tokens
Message-ID: <agq0VHVZDCKmMe0u@kraken>
References: <cover.1778925998.git.mykola_kvach@epam.com>
 <0820f91dd0499e5f66f8961b5e27fe0a0ff9be35.1778925998.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <0820f91dd0499e5f66f8961b5e27fe0a0ff9be35.1778925998.git.mykola_kvach@epam.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-18_01,2026-05-15_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 bulkscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 spamscore=0
 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605180061
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000026C5:EE_|DS1PR16MB6639:EE_
X-MS-Office365-Filtering-Correlation-Id: d03b92d3-2251-4915-7ba7-08deb4a85748
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|22082099003|18002099003|56012099003|4143699003|11063799003;
X-Microsoft-Antispam-Message-Info:
	2F19UQU4FfUgsBvyxlLm6nfmNHsUHVKdg9Q7WCpGDpQgtMswZlW2fLBBZq2fa54m0/a9ln3G4yftvWf5Yats3QCsKHqK4CqtHKt2rszmbYoVcKz0XYu9FyJgcES712XvcsYXClAZnrseY5aDnJa86KUQZuQnCbfaBkh4TyNKF8Pk30QMJTEHldxtQznfWB1vLn9S7QEnsIDqXIQuC+EQo0eftZKabHCYvoUwjYomDwmXkeR8JTjxPW8b38yIazaPgzTNko+j3/lGPOFXG6NTEqKLJI0e7abdagrN4bSPYbq7rPTAw7ergsWeCNLRjcKXozrpnw2iSBUkdGm1u818iaJiZV8R3lo0mSamZ9YE6VSTYgutRseRLvM4UVjp1GI8tcLtlcO6c9oTodD/j9EixJSBU378nSLIf2mkEjw0ax5pg6A14uU211VsydFDONlbgbVN+Ao6Y1zWDorcfb655ceNN+yqbVVWthixAqf8u6seuBfuBBT5UDnc5RPa7Xgq9T7pLIQHoovgkFFF0jQrdrnvusI+G82XyDghIcu7gDc2PE/IomyiVoiKmrTy7HFf5o97cbPeEHx5yXeMCUIH51VEoDO2X5vIvpvH1t0x0CBNQaCRTci1hPmnexVhSZEInNOumQ5qvyKppVTYPNVQk7SJVDKzpsC4+q/jf0R+x2evsz2qC2C5VbHH7XfvefvwJtTW7MaQ+KfgVxYXxJ2S/3ShzQybojTDqvNfkacEP9k=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(22082099003)(18002099003)(56012099003)(4143699003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	BM3bBuxKOIz3f2MkcOgXImktPGkQO7XLNY3NB/10CJjX0svypj2E9EOVBa9rT2WDvJmqtf/fuWROZvZaeCpgP35/gn58k/srA7XMza48NBiyHZ2+2na8Uh7WoehFkfvDqkoYPBx3ceCwnSb+F0SVsK5prgLudUiDYxvPNE1zb1XmF/sqDZGLk2fT9gk3eNWpSbnb/Cpswwv9UcZykbuVn/5DsfxJG+ilmY4czgGH2rAyAT2JmF4GhuSuGjCxNcE38mnTSL2JePSCYQpd0W/X1+Rxvipyj0I9bXk8btgEoGvN3ErQIrMJMgcV3lVKBh3Iq364+WHUBimlz/394+cSGavAaNTUSFK2OiD6DiEZOh/RkNQ3Y+gPHHXjS/wBM6ZvFI8uP5q03dGvjr2kNh7zHQoumz3tHouuw8vtSwwXj8G5WTI1BHel3SOZMVnSEEIJ
X-Exchange-RoutingPolicyChecked:
	qjNsCS1twHn1BVoXngWNhjx24pAqZYvt3NWsrZHNLKWv6jXOefune/BJcFvI9D1ozwat5SridAb21jlHXgeTy09px4F4lAY/8NqlGGN8ewFENiX6d9Ego7vb75oo+GoUiDgqE/WDezqc3V0R0Ng6UPgHaaXf3UZ2TSpws01GPZ8DhXomwga+0kYx+H09MaBQ8KvZWfD3M/syA4Z0/AEWGXygPXzNpTWCJSar61NKOh9X6JiwxaMDTgR55zgVZE/GppEISEFSv+YMr4+tvWXQOMQwFZkA6WCCMBf9/YqkLvdnl7Ji4JipLdhfQ2W7Slaf5HCqfgHNHI0uOSxPPxpxbg==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	MFecnSWKNDJiWT+JXgtOxJ1qiODD5teoEgQMUnLorzHTGtXiUsQ8lMRgBZIFHbgJDIrJ1yGeGYkn04mMqhcR02/7t2pHkPdbF/hzhJ0C9qoQ7Zvnj4fi18s1O+ACcq0xcrKE47HxMf8hsMn2ofl0ss97RoI8D8+JhFCBNECLaXtrtPhbUwacL0PryigtouaGn2il25WKGgcOWRrQmqoK629wshc936vPBJd6aSuKYBrWImJ3bb/Ss59dAOQBoJsppv0b4suKK0cr2DkTnAv24SeiVdRN+zb7J4Of+T21iTiq8TvIR9cJkZv0+HSbLvkcQjdM/7I+LvgT5hkv5Wf1Z+LDMkici+PasofELv4N5xeN1pGuyvxboleEfAsHrYL5qyYSiKNjETNSZ4ha6nZzTS4Q0Q5x79urupiaF2h3unhKqgwV3XIYvFNwF8W5ZIi6DBT04xDOI6Cx+QtDBuOKIJcjOyJeZWcIsGvkTzf7ZN3A89LnbdElihubW3Voxa83K+4bAY3/+HRrGSplXGO+tRRBBuQ/JsezGnR/Nyn5myB0Hk4Lsqu3x1SE8B1CMjdAxctx1HskrVwBBe2bgFdYG3ekuZP8O/G2lg4yRVQzowsW6IfoiEDiHDHS5hqhoKF8l3UycbFJ4fxUsvtUnzx+Cw==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 06:40:24.2053
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d03b92d3-2251-4915-7ba7-08deb4a85748
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000026C5.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS1PR16MB6639
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE4MDA2MiBTYWx0ZWRfX5Ipukol86c/Q
 GA1/uRWzdXSWInUcc8idM3UVYV01Slvcy88bj3Wo880Y6XOd4FYgl+7d9hzRxr6/OHmYUzinBBx
 uiNUnUKX9pf5w7PkvPXVIl1ZwpDfS4C70P8bjyZoSFrsV4g3IS8e8rJraTrxrVsgJL6hMlZKULN
 /8CdGVmpMnewUZEHinyI4t5DdYMhIYGuJmZM2TCbOjvzsVRsJe6WMuubSH4RP/cFhB+G3tcjHkB
 2DCvkUy28YrUwzXdBPEIpzP4ZtY2ghHeuUQxzvLrHPDOqXYkMyeiNRtlX5ifwZ19NWcBOqxAxIr
 +rMTFPL27Bp8Re66bjbCophM272nhWs8sYtVm/RqVux7O90LI7KKcE8heU08W9PVY3yIqj4QZ04
 nS2THoDGkGEpsZ1w72O2OXwd5hwB/a/eywHi7cnhAMNZBaEfT46T9kELFk5Ee5lB+DvDMkgG8Nq
 /NEZTl4Z93UjvEVAixA==
X-Authority-Analysis: v=2.4 cv=YZiNIQRf c=1 sm=1 tr=0 ts=6a0ab45c cx=c_pps
 a=yvofFnGdSAaTKL5iNkS0vw==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=YJXg7OVxOWrJwj3yZo-i:22
 a=DBfv99YmAAAA:8 a=Vsz3hZKAmdhzJLVIzlgA:9 a=CjuIK1q_8ugA:10
 a=3whSkbs7g9Me0DR5EJEX:22
X-Proofpoint-ORIG-GUID: CGVNL405WHE-4oO7xzcLaXSykVN3k-KK
X-Proofpoint-GUID: CGVNL405WHE-4oO7xzcLaXSykVN3k-KK
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-18_01,2026-05-15_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 lowpriorityscore=0 bulkscore=0 clxscore=1015 impostorscore=0 malwarescore=0
 adultscore=0 priorityscore=1501 spamscore=0 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605180062
X-purgate-ID: tlsNG-720697/1779086430-A917D161-988F2C17/0/0
X-purgate-type: clean
X-purgate-size: 2177

On Sat, May 16, 2026 at 06:03:12PM +0300, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> parse_color_config() currently accepts delimiters where a color value
> is expected because simple_strtoul() returns zero without advancing the
> input pointer. This makes strings such as ",2-6", "-10,19-20" or
> "1,,2" look as if an empty value was color 0.
> 
> Also add the missing newline to the DT color parsing error message.
> 
> Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
>  xen/common/llc-coloring.c | 13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
> index 2606cb0977..5d00d4b40e 100644
> --- a/xen/common/llc-coloring.c
> +++ b/xen/common/llc-coloring.c
> @@ -64,14 +64,21 @@ static int __init parse_color_config(const char *buf, unsigned int colors[],
>  
>      while ( *s != '\0' )
>      {
> +        const char *endp;
>          unsigned int color, start, end;
>  
> -        start = simple_strtoul(s, &s, 0);
> +        start = simple_strtoul(s, &endp, 0);
> +        if ( endp == s )
> +            goto fail;
> +        s = endp;
>  
>          if ( *s == '-' )    /* Range */
>          {
>              s++;
> -            end = simple_strtoul(s, &s, 0);
> +            end = simple_strtoul(s, &endp, 0);
> +            if ( endp == s )
> +                goto fail;
> +            s = endp;
>          }
>          else                /* Single value */
>              end = start;
> @@ -334,7 +341,7 @@ int __init domain_set_llc_colors_from_str(struct domain *d, const char *str)
>      err = parse_color_config(str, colors, max_nr_colors, &num_colors);
>      if ( err )
>      {
> -        printk(XENLOG_ERR "Error parsing LLC color configuration");
> +        printk(XENLOG_ERR "Error parsing LLC color configuration\n");

While here, add domain ID to the printout similarly to
`if ( !check_colors(..) )` processing below?

>          xfree(colors);
>          return err;
>      }
> -- 
> 2.43.0
> 
> 


From xen-devel-bounces@lists.xenproject.org Mon May 18 06:41:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 06:41:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311496.1581615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOrf7-0005ir-TR; Mon, 18 May 2026 06:41:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311496.1581615; Mon, 18 May 2026 06:41:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOrf7-0005ik-PP; Mon, 18 May 2026 06:41:13 +0000
Received: by outflank-mailman (input) for mailman id 1311496;
 Mon, 18 May 2026 06:41:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wOrf5-0005iV-PT
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 06:41:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOrf5-004c8M-5O
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 08:41:11 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0ab478-5cb7-0a2a0a5109dd-0a2a45039648-42
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:41:11 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0ab485-672d-0a2a45030019-94a38ff1348e-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:41:10 +0200
Received: from pps.filterd (m0367129.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64I5dPDI923703
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 06:41:09 GMT
Received: from mw6pr02cu001.outbound.protection.outlook.com
 (mail-westus2azon11012044.outbound.protection.outlook.com [52.101.48.44])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4e7vtf8bae-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 06:41:09 +0000 (GMT)
Received: from DSSP221CA0004.NAMP221.PROD.OUTLOOK.COM (2603:10b6:8:3d5::16) by
 DS0PR16MB5296.namprd16.prod.outlook.com (2603:10b6:8:155::21) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.25.23; Mon, 18 May 2026 06:41:03 +0000
Received: from DS1PEPF0001709A.namprd05.prod.outlook.com
 (2603:10b6:8:3d5:cafe::61) by DSSP221CA0004.outlook.office365.com
 (2603:10b6:8:3d5::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.23 via Frontend Transport; Mon, 18
 May 2026 06:41:03 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 DS1PEPF0001709A.mail.protection.outlook.com (10.167.18.104) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.11
 via Frontend Transport; Mon, 18 May 2026 06:41:02 +0000
Received: from pps.filterd (m0426316.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64I5AlmT3676799
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 02:41:01 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4e77mbs5bm-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 02:41:01 -0400 (EDT)
Received: from localhost ([19.12.92.222]) by cmsmtp with ESMTPSA
 id OretwYYBp9jbEOreuwvqbi; Mon, 18 May 2026 06:41:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=wrvzmSblObR5S7F3IIrnAYzgpw7
	A4lZJRB1CL+RAQHI=; b=E+vk3iBRf39oI3xvgRTKWCPmGAOLYS/4I/zce/AkJBM
	X0VyCIF0AlIBMfR4+QId5PYHfHXNwrtmvuHrS8/6pNX98wgb5AI3wOOBwEMYX1XW
	PB5eypHRIDObbC9wZ1kCeOIhXh4sNuykB+buKEZVHylCVnYrtkDn01eAW4bBzGwS
	HWK25vfMTufruJ2kw+tVTBaUciWPadEonZczqtXVARGBvSMm9LOcILJidZNohTLf
	pvRxaS78VMeUVJkztoZZvxtOkudXFriozFQbqLAGOnZ+3vGCDJJ/eKAP7sOLuRFI
	JaSSFB8bQESPEmB5YoGG16sjkwQ2OC7ohMqOzZKEWPw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=H6TpNZcEA+NY8AqG1voFDV9MDDODxVnMadB12+DGSCoxu9DNvhmt5I3Hzh0c5Orq5r4UpfgOBHVVRuhGUl1L0FIugLosIHo9hqFY52Oej3yFdXEVsQbAZ22Vsw5RkCuxE/7CYL9TGf9/PSq2Ra4MP/fXzOK5U0Uzc54a5txzIMEMzobD7PpL3K8e8HATXfl2oZTDp7er7GpwSux5Ec9ptnGjpnFjFbaiucqMPtBxc9G+hgHta3vp1DllnvvWGcFQ942UNqJkLx+0XUDtYWnMFaYTFtwXqtw+7ukvhi1o58jchE35q9HGj5xuyGxR/R1Az8nPm8hDbo25Q+WGwxMy2g==
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=wrvzmSblObR5S7F3IIrnAYzgpw7A4lZJRB1CL+RAQHI=;
 b=UGDaxx+juTQ2p9VQalpOkyWcYKZoiuHrHWCcYnAEqq+38BZ3meXlTAuRF8x35XkEY4aHHINsZnM3cKHGbkMazeVyuOnNshdF1IvqKIZcFyOV91tDXKzLfdfVAQHhm6cb2NJOUX97wY/a1CwB494zGg9SunYESK10m1nKxlGk1pwO4YU1SpHrDUjmUpHIfZM141MDpYJiQNVHUBW3+uJ0yAX4ypHlNAl3HPV4QkXtjEfQ30u5oadPrW/n9OUxHamKdu9L8ZIehyqn1rl0VwSTMd87LZ+RPowl/ZFrRAWjAJjB/H8r7sRUXzUGaYPU/etGiumqyLP31Zv1Gtqb8Bzv1Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wrvzmSblObR5S7F3IIrnAYzgpw7A4lZJRB1CL+RAQHI=;
 b=lm2Wj+OzBslOHgxW164BVWrByK7Zmg4M6QrBchwnx8POH697ccetkxPZFEXCb3KqeSjNdDimAmSqvHLXEy3M8QoP/UIopFwMr4Tb6WU48oD1mJ0zXWM+KRb29jKMXPD6/wdaCGmaMwIDvra7Naa9hdG970BxhEeaXU8UYfLsprw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=wrvzmSblObR5S7F3IIrnAYzgpw7A4lZJRB1CL+RAQHI=; b=ZbR0SfgmBS2O
	jUpiwrUNRjdnUUnvY3AhPQ8T38r4xuyzD09iUjalMa618sS02vN/14yFQRbv+bU4
	nRuXZOzksdvMVn/V8k6iqFDMfUnI+75ZIoKD0zFwc9UhtDKxUJ6w8U90XLu/ziMp
	R/O+d+3kosTVCgkQ5JI+0ijrujytCyXgqsUGpQD8CTGaGQaENyzrWGNyTwjFSTI3
	+cT2KKJUMjl+MEYfNsHZmtgIko7wZbfdzxeRnVQ2TvZ+LmZVwZ3EEqqTVA9y0aQq
	3z6F8jcM/uOkjCPJmWKll37nnPaVKybZxUXZ+y3bcBd8j7FctBzzD8RHg3tN0wgZ
	1oOIjeJmJg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=wrvzmSblObR5S7F3IIrn
	AYzgpw7A4lZJRB1CL+RAQHI=; b=aKWpPPTEe1vkOL34TA4AsqmkySQp6eHtx/N9
	6kCp77U0eq4Fcal0ERr0cwefK8jkvlpG7lraN9UIdMT9T0o4AY/cDaH5nqWRTmcW
	oOf0/nY6TgeujwQ/3WyLSRr0ECBcDOVkTnsH9+Zse8T4ZHmRlh8UONuuc0L0pC8B
	y8TjLKX5SKA91wQtCzm0C/1FyOiEz6AgQLsfRn5LE3BXWiD2/hW17Cc6Xt7YQQwz
	4XYvxHWggYmq3MhuTZ5LMOd72Eu0O3Y7hVL4QhmOZAW3pfqra7L/Ky5+sBrHH+C5
	+NBlsr0yCjBRjIOzC/MxFRVjNzgYRsNsE/RZpeVOKLijPY941g==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: OretwYYBp9jbEOreuwvqbi
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Sun, 17 May 2026 23:40:59 -0700
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>,
        Andrew Cooper <andrew.cooper3@citrix.com>,
        Anthony PERARD <anthony.perard@vates.tech>,
        Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
        Julien Grall <julien@xen.org>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 1/2] xen/common: llc-coloring: clear color count on parse
 failure
Message-ID: <agq0e4qHqRilhLQq@kraken>
References: <cover.1778925998.git.mykola_kvach@epam.com>
 <cbb02d6c5af6606ada3e477e8d45d730ffe72723.1778925998.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <cbb02d6c5af6606ada3e477e8d45d730ffe72723.1778925998.git.mykola_kvach@epam.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-18_01,2026-05-15_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 lowpriorityscore=0 malwarescore=0 adultscore=0 bulkscore=0 suspectscore=0
 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605180061
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF0001709A:EE_|DS0PR16MB5296:EE_
X-MS-Office365-Filtering-Correlation-Id: fc6bc428-6061-42a9-70fa-08deb4a86de3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700016|1800799024|11063799003|4143699003|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	IQd5xqqcALkBGwvXSEXcLtHRN/SEYvk4A73jxaOHeGwbDURK6aodqtqrsWbbl55dQOMXwqp5nqt40uciLTj4mm64VRMQEght29fl4HTPDkCpstTcdClz7kyFiEoIWVSfPS8Py7ZTqzcX4dnFfEhQxj58kgCtiZf0HTWPkh3CGrwkc04Wy3/HEz3ZETrlevav2Qw2Iwl73SK56+QKC5ef+6Jn+BUQGZFZyVlZUUz8IZo6KR2fZshDNjrpIx8JnzoKMSExtNOjdpzqFqvyGjTpuKrdPnpZmsKR8NyeIzSxPMze3vMqR6j8sHbgiqcZSloHV6StOloT0O1OilhTj3wtplBsKpIj2KVwH4Rw0mKcddSqioRoL1pdwj43Z1OhaUP0XGhw8ox6yM6Xk04syupUPgWKhRWsXiLmW+r0e3Cfbsv1qXVvGer8XStnHByAzoWyH7sL7qI6Rh6J2CbE0+YzC6Mih2aEPzen87xZF+xy9LMCvjXQtiYM5JxTFZ5e5HxXivqwXWscWglwjf860WxOL6kRlXNuzcWsbasFUrgctHYoFVBqupG4s8H0pipTY9rIq/vJ+8/pi69VKCXQa6FkOyrr4Nn71JqsDdySex2F49V4Hgd9dJvyhZJrjc4jKZnAbtBaFPGtLQpu+OqS1/BCARXLjTHf1pQQBQ/3shbnwHjQZIjk7WtoUTOFMNMvfFsm2Pf9kbpEO5w24Yb4+yPrPW7xOtKJumi4ofYucxCoZto=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700016)(1800799024)(11063799003)(4143699003)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	DVY5FNqRHUPoTkL1KFnsTgBZfCWESdyyXeuIEzmGHVjOFnIF94W3yU9x4Ac9Pukwg28Nwu3OC5IWNZWsqQEYK14SkWm5fVjM6GXR2HadKfvHcVI82+UR/vjIKmyGhb9v4eRk2965+31R0CZenG0vNM2W/Wv8C0srgRGGiIKc/uL4QHmuMgqsaduV+BTX9q62oBa+fZ2waUKTIYO+0Kko3ltR6myMc5qctCtVObQsmf3KOKqYMDt3h3eZa87zuK7W3FIObslYSxnBZVQV3caSeb5kVrkA3ziJsuC+tbOLIvJCTdqxF/s3A/giqefUcgoi/LVpFZl6T1aYc/IJUrFgsxbUsrxMhTlpZhPQUBPmWUuJf1JmtWHYyd1wWyh0DI54qrUc+UIMKwKqvgVdSN9G3rhBpqBJ9xkTfgFOn8o67XsVK7ZPJP847C3pDsBynSTi
X-Exchange-RoutingPolicyChecked:
	VuB230T5f+NuMNKySQxlG5m05sPrbQ6MKY5VN3Arkqj0P3DBqCccTWqQ6vH6DO3GcWYZCJvB88PrMAIOv9YMv1nYc3E2aEiFzisgT1ueg6+/OYbRDRGKKedi6EiooubxwqztyZYNEcUn/DXeq7roOaRhX1x4bm4uciNdHUMw2YbRY/lmTm+Ji1af+fbWhsGbuDjsq4+vMk7GjM5IKNr6+Bf6wLWRLxSfGYIPG45NTChGXtbyB/eb4pslGS688mFs4mgJKJffgIGQ22UhAIoJJHScAijR6fuhXcwQQK1n3v/XDV2qFJjmHWssit4pLaLcHG7rPMh40NrwnDyhGqEe0w==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	9Y/ZWTfoIpo35VutnusDMWqF+wtOPWgDPDDHWQHrjCs2eKnwdK1B3U6mv1EaNWGruRcBM8IGVwgq0Saok8e2AuqYLkXqz8MH0UcwklSQcNVu13s6XNeZeB0SnY8DJ5HSdWSSfWmPrp+K5AvaekCHyuk0Y2hIpAtsEZqwSAPhPetNitGAQ/qEBZwb6eeh43jILbr0OSNgwM+JhJlGqRfMtEvg8wRGtV4h2Ir6G/UKVTfavJIEB6udawVwNK+GztwhxSrmtJQBoYfAfInWBzF6V8oS06TNSaYfDrq+HmtRfOgU2N9ER96iKmHIYtPirqJ7cBP/a/fK4ZEWr5uJ9zjJg18xLPiVoq/Ejt/9DbGGmkHOgsVCPJN02idhTlfWruECcwBIEv0JW5EfLqfMUpcWWbSgwCUb8IPx6RfD8Za9G8xuR8hqsZ7Wu2MMmOiAZC9A1rgdkqDAsujw0GbuPZuflAOCxLbm+gsFH4QEhTRl/w59s4sO3SxJMz96ASgGM6rpYqf1/XgIQ282FYC/VYaSEJbFpjVlOpUZsAxyW2o9p4f4nDeb3Xyr/Bb6QdWv3LQ3TLA06S27NU11jSfwea+i19Zl63b45gFXrhX0Xalp57/nEo5VS2SGV/2vvOucpnIEMKN75LAp0ftOa/sS0GIpJQ==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 06:41:02.2460
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fc6bc428-6061-42a9-70fa-08deb4a86de3
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF0001709A.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR16MB5296
X-Proofpoint-ORIG-GUID: 7KzyWkEZfB5T-nvC47rBwwFm00yNKxe9
X-Authority-Analysis: v=2.4 cv=RaygzVtv c=1 sm=1 tr=0 ts=6a0ab485 cx=c_pps
 a=w14INr65hnrDDPfMN4rXVw==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=X3KReqg2EL6A36SYCKpz:22
 a=DBfv99YmAAAA:8 a=cbNQJ9GKAAAA:8 a=dKTS4Y0tjYD00X8KSDEA:9 a=CjuIK1q_8ugA:10
 a=G69WFyCBNqGPyalROSdv:22
X-Proofpoint-GUID: 7KzyWkEZfB5T-nvC47rBwwFm00yNKxe9
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE4MDA2MiBTYWx0ZWRfXwexFmnXcdFN3
 VnTcL5xNza9OgYQ968EUDE8T/HSCY40k/1wHcuOpxvkZRZrTECcpIdshpX94jkxx8LTvXjoUz73
 GKu9jEatdD1mi78nBwFoRTjVFKRl1Lt8AFLsot2kfjzBab4EUm0HS0Df2VH9SbJdL1B3iZaTPc/
 qy1qDAevN724sWuwHIGcseRkIt6VyZmboSkateZmHTzd9XuWDt4JInhg8QGEy2UmclZ3/O4nqdK
 KAjsoUwRNGObMEGBx9qUiGhvkug9QMVJ1A50LLduNAeIZrowP7DwRfpkNWg1TvZK1sBdV7lNgmu
 wzFvdqPy4kl/QlioIcoRg750TKvQZPWKZ5o/96GOCjZs0OVGoZirn6fFihHB9qOIDyElSpo0pcZ
 9DnOS1ZpOt72rM5lJT3taO26xF+jNUoN9qElWb74Lo2lCvDajTD88BfBWa7jkiVlg2LA7ctRGKy
 Z8nLMlZ5uL715X4CH0w==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-18_01,2026-05-15_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 priorityscore=1501 suspectscore=0 bulkscore=0 adultscore=0 lowpriorityscore=0
 spamscore=0 clxscore=1015 impostorscore=0 phishscore=0 malwarescore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605180062
X-purgate-ID: tlsNG-33051d/1779086471-36547938-4470605A/0/0
X-purgate-type: clean
X-purgate-size: 1647

On Sat, May 16, 2026 at 06:03:11PM +0300, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> parse_color_config() updates the caller-provided color count while
> parsing. If parsing later fails, leave the count at zero so callers
> do not consume a partially parsed configuration.
> 
> Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>

Please consider

Reviewed-by: Denis Mukhin <dmukhin@ford.com> 

> ---
>  xen/common/llc-coloring.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
> index 6dc614739a..2606cb0977 100644
> --- a/xen/common/llc-coloring.c
> +++ b/xen/common/llc-coloring.c
> @@ -79,7 +79,7 @@ static int __init parse_color_config(const char *buf, unsigned int colors[],
>          if ( end >= NR_LLC_COLORS || start > end ||
>               (end - start) >= (UINT_MAX - *num_colors) ||
>               (*num_colors + (end - start)) >= max_num_colors )
> -            return -EINVAL;
> +            goto fail;
>  
>          /* Colors are range checked in check_colors() */
>          for ( color = start; color <= end; color++ )
> @@ -91,7 +91,14 @@ static int __init parse_color_config(const char *buf, unsigned int colors[],
>              break;
>      }
>  
> -    return *s ? -EINVAL : 0;
> +    if ( *s )
> +        goto fail;
> +
> +    return 0;
> +
> + fail:
> +    *num_colors = 0;
> +    return -EINVAL;
>  }
>  
>  static int __init parse_dom0_colors(const char *s)
> -- 
> 2.43.0
> 
> 


From xen-devel-bounces@lists.xenproject.org Mon May 18 06:43:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 06:43:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311506.1581622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOrh0-0006K2-6B; Mon, 18 May 2026 06:43:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311506.1581622; Mon, 18 May 2026 06:43:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOrh0-0006Jv-3L; Mon, 18 May 2026 06:43:10 +0000
Received: by outflank-mailman (input) for mailman id 1311506;
 Mon, 18 May 2026 06:43:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOrgy-0006J0-AF
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 06:43:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOrgx-00Gx9z-MJ
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 08:43:07 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ab4f8-2eae-0a2a0a5409dd-0a2a4508ae62-10
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:43:07 +0200
Received: from [209.85.208.177] (helo=mail-lj1-f177.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ab4fb-63b5-0a2a45080019-d155d0b1c4b5-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:43:07 +0200
Received: by mail-lj1-f177.google.com with SMTP id
 38308e7fff4ca-38e8292423fso13106191fa.0
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 23:43:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779086587; cv=none;
        d=google.com; s=arc-20240605;
        b=jqXIWps+V+x1LlYktPP8Qs0EO42fznXgQ5AKXr9cUff7N4SKqZ9yDbsOmhabuMPFCi
         UtZ/XHso75ksheGKBxbm9eum6vqgZ1ghfMVmwVL2ZzX24h99UK9FbBwfY3eRuIrQ9XAH
         RmKNGAmTQ9cHjgSqjrBs6rfZac3k7H/zB/C2nJs4oEco1voyZv4caFjUBHzK7CcRg0VC
         3A5/ODzzhbui1PxY782tOZcnQ5xQPCYs+72WXxAz3K3Eo5LoWtqihtWLs58X66Un7i8r
         TQC9Ifn6Z6Ry92Unbthsl+5A05dI9Or9rG7JMC2PJq7A6k0TCpN96s48SIifhLDs3pzP
         J0ow==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=L27jH1Wg74nXpcVA57k1PWrZp94IvTXtyGvd5AlyrBE=;
        fh=F6qFXlazT2V4eGM+XXUTpU3niH6HQYBEcDO3rDUmPDs=;
        b=bf+l1nqLzFrQX/lygyuV5QEC9TQTsX50HjJr9zBc/HWvnFEXHnEBiJEzN18BS1ML5/
         SZbmz3BHV3aedKWO+lgg8jZhieazImc+1Gze4jQ9yFqjoOEqNOQ6gwirgeqSW/tDY/1N
         3uWtIUsK/ZFFhRuAWxpwvzeP5bA2nma+j7moQ7lySTn49qArBwMuleeQrp+RgfknnM5u
         bbX6tdq+aj3jLRqtwvwGXQZRe4aBAwIGotFCCFbjUy9EXbTFgZ/G29yYIYFPXOu7q8nn
         8j0lJHIdxilPjLelGFECNl4zihIXYCHrOd56P2FA1UwvnG2rYOaF3MboyO0AVRd2F7Uj
         UHEg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779086587; x=1779691387; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L27jH1Wg74nXpcVA57k1PWrZp94IvTXtyGvd5AlyrBE=;
        b=KIEtx4VYTHmP5ntYbYrYHWPt/1O9j2bQ9OrVxkbhTYd9OVieFEgTMEDLYjyFlrY4vh
         fPjOoO84wXkv3KFeoP/iS2rkE42zMO1r4ebDmFeHIcISde3/Wk/C0T0BvzR9G4zy1vT4
         q3gTOVRD+8qpc65UWlcgDmE+E2dKKeVwxRDbpTjJwsFKxwL9Ymmjqq6V8eyGfFhTET6t
         2SoZqpSPBXLizlDQjRP7VjWNPx3sUi9VdocE6D6xJZ4MjkcsFazfjXgYfe+lvRPfMlSC
         qkkgyfmAmmAZMTnd2joj4E89ou5Pjn/1CQgvkDCfsyN3x/HC4uHooMly/AdZXJqRGeMB
         Qxbw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779086587; x=1779691387;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=L27jH1Wg74nXpcVA57k1PWrZp94IvTXtyGvd5AlyrBE=;
        b=bd+VwJ+fqDF/SheddUagy7kI+p4sON198iScVUEwUoRK2rrEI6X9/X4qQ9RDu6ziw1
         SDirmQsr+kNqsGDY83Z904iEe3SHdFG2t8vs+eXf7dht/QV6yZal1ldLM74GKX/6a49R
         UwLgPGLS5vismhmSj6FPRb4jojakOF5Czo4R1dySHda9pdUm4oipdleTNFi4lV8KFj3Z
         ZNEnvPZB7yZGlS39vuW6nea69i2fdBgeqpvG+Ir1rt1ePV6TofwFwDGHKnMRLyfqqI5w
         bcCVidDu1OdQkOtDU3JlTSLRXCSPgZ/dJ9O3DICinI83YMPzSz11H2WArWkYN3ua1C+r
         2KWw==
X-Forwarded-Encrypted: i=1; AFNElJ/ESBajrjTLKvvb//eVM/7xsnpWeaB0gnkzmQ7EeYkwKj9t+OmNiAqO/e/pdw0zruVuZLv77yVDeS4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy0ESSw582iaHTlSs3wclHf1uVrDsT+eFXlYHV5kI1cfEKFyR3h
	5Tw7aCrQiPF1XAyYnXdNfKK02dVKJtC8e0q0pKst2Y6qZqaRDr0aU8D0+Tq0NXn5UfpCKzIqWRC
	GYjC+OztX9hoDaG6JPeKZRZEaHcOhZ7c=
X-Gm-Gg: Acq92OFfeBtqPQPZKFw5meCoPk2P8hE8S/bWy9NvyowsMBHOlGxvUznMUikSHt4iKvH
	WUpaDJitq7bjqgRUlRnjD//ur2JcGKZzxf9gWE1rk6Ocmjl5v5r66t63WwjKA0gl4e/KbTdhbGQ
	YF8QVIztsvKy8sSa53xdgcyHO0Dgx0czPapQZLJr5vDnRho1hvR9SleRn9ysTajNq7hWNZGK60O
	ley5n/QC7992l2jsjuHWrqzA72DL6JwZ4WrVK0aRMDy3ldzKGlNmcDQJyI1dIjU2Fxj42lXbXkY
	c6fGvi1C0Tb59Uc=
X-Received: by 2002:a05:651c:b10:b0:394:3442:427e with SMTP id
 38308e7fff4ca-39561dab890mr45443361fa.14.1779086586593; Sun, 17 May 2026
 23:43:06 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778925998.git.mykola_kvach@epam.com> <d9db51c5-97a1-4131-8575-dca1ae2cf52c@suse.com>
In-Reply-To: <d9db51c5-97a1-4131-8575-dca1ae2cf52c@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 May 2026 09:42:55 +0300
X-Gm-Features: AVHnY4IfOaZU2yCaJSiIf6SUy8Thk4rK4xNuqdjA_EFbRKLFjKWY0fkuYkloZcA
Message-ID: <CAGeoDV9DitsH629pWGe+X=0VM+oi1BfSgWMxE+t32CCR5gMgtw@mail.gmail.com>
Subject: Re: [PATCH 0/2] xen/common: llc-coloring parser fixes
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org, 
	Carlo Nonato <carlo.nonato@minervasys.tech>, 
	Marco Solieri <marco.solieri@minervasys.tech>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c1860d/1779086587-BE368DB1-9A1CE30E/0/0
X-purgate-type: clean
X-purgate-size: 2889

Hi Jan,

Thank you for the feedback.

On Mon, May 18, 2026 at 9:20=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 16.05.2026 17:03, Mykola Kvach wrote:
> > This small series fixes two issues in parse_color_config().
> >
> > The first patch makes parse failures leave the caller-visible color cou=
nt
> > at zero.  This prevents a rejected command-line value from leaving a
> > partially parsed configuration behind for later init paths to consume.
> >
> > The second patch rejects empty color tokens.  Previously, delimiters in
> > places where a color value was expected could be interpreted as color 0=
,
> > because simple_strtoul() returns zero without advancing the input point=
er.
> > The patch checks that each parsed color value consumed input.  It also
> > adds the missing newline to the DT color parsing error message.
> >
> > Mykola Kvach (2):
> >   xen/common: llc-coloring: clear color count on parse failure
> >   xen/common: llc-coloring: reject empty color tokens
>
> For both of these, a question which isn't even considered in the reasonin=
g
> is whether the present behavior may be intentional. Especially for the 2n=
d
> ISTR Stefano(?) not so long ago indicating that the behavior is indeed
> intended to be this way. That may have been somewhere on Matrix rather th=
an
> on the list, though.

Thank you for pointing this out.

For the first patch, my reasoning was that returning an error while
leaving a partially parsed caller-visible color count behind looks
surprising. If the value is rejected, I think later init paths should
not be able to consume the partially parsed state.

For the second patch, my reasoning was that the current behavior looks
accidental rather than an intentional extension of the syntax.

The parser comment says:

COLOR_CONFIGURATION ::=3D COLOR | RANGE,...,COLOR | RANGE
RANGE ::=3D COLOR-COLOR

The user guide also describes this as a comma-separated list of colors
or ranges, with ranges written as hyphen-separated inclusive intervals.
I don't see an empty-token production there.

If empty tokens are intended to mean color 0, then I agree the second
patch should be dropped or reworked, and the syntax should be documented
explicitly instead. From the current in-code and user-facing docs,
rejecting them looked more consistent to me.

>
> In any event, you didn't Cc the authors of the patch, without which it
> seems unlikely that they might even notice the submission.

On Cc: I followed the submission workflow from the Xen Project
documentation, including the add_maintainers.pl.
The documentation says that, when following those steps, the scripts
will add the correct people automatically.

Apparently that was not sufficient in this case. I will add the
original authors explicitly if there is a next posting.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 18 06:49:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 06:49:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311519.1581632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOrnU-0007DQ-R8; Mon, 18 May 2026 06:49:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311519.1581632; Mon, 18 May 2026 06:49:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOrnU-0007DJ-Nn; Mon, 18 May 2026 06:49:52 +0000
Received: by outflank-mailman (input) for mailman id 1311519;
 Mon, 18 May 2026 06:49:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wOrnT-0007D8-T8
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 06:49:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOrnT-0075aF-4m
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 08:49:51 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0ab675-bab6-0a2a0a5309dd-0a2a4503ecca-44
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:49:50 +0200
Received: from [52.101.43.18]
 (helo=SJ2PR03CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0ab68c-672d-0a2a45030019-34652b124845-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:49:50 +0200
Received: from DM6PR02CA0130.namprd02.prod.outlook.com (2603:10b6:5:1b4::32)
 by SA1PR12MB6948.namprd12.prod.outlook.com (2603:10b6:806:24f::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May
 2026 06:49:43 +0000
Received: from CY4PEPF0000EE34.namprd05.prod.outlook.com
 (2603:10b6:5:1b4:cafe::d7) by DM6PR02CA0130.outlook.office365.com
 (2603:10b6:5:1b4::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.23 via Frontend Transport; Mon, 18
 May 2026 06:49:43 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CY4PEPF0000EE34.mail.protection.outlook.com (10.167.242.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.11 via Frontend Transport; Mon, 18 May 2026 06:49:43 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Mon, 18 May
 2026 01:49:42 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 18 May
 2026 01:49:42 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 18 May 2026 01:49:39 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=c6AOCoVAyYfn02aiN+DUacLfty/GyC1/qHkbdPj2auyhJEyQ2xoZOozCdxo9k4ebXcGCAFfJqKEzO0UNO1L2MopCY1jk+8Q5kcs7TXYZld6lfLX8tFAvTJW8AACGm7u4fe6gvdWhbKf3EpKoMUBQPDFVaNs5BlY0uxyoQ/Bw7vWr/kH/TNxfrnEl9Zxxr8Pcymw4pzMmP0mYVXuhJpqzFK76IQoOfeWeoFp4azxsx4urIoR/vvhoKjKM2GtNegUuIZodVOoXff/Onjc6vPu2RZakpTMRsiUvRKTfFbiAQ6J0C4QAjWmXggD0LWxXR0z6zJ2SVBX/I7JIL52Zc3FZFg==
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=lyFcLFBZ/FHST6KrIS+sKf3VQK0G9mbIEtwtjkVCqdU=;
 b=TxeQnLbWFXuhu+9FVdh73JxBHsGy3MBXh/E45PrceDoN+PMAYqPXY44oTUvuMQSqzBWU3Zzty2fSVeOw/w2PUa3InBHUvn+w3D9WGDPDJXKI0DybuZc+cwdBVQh3G/aFAHLhbVtR9CF5cctIm9hnP50bd66lj2XA3iW7PRvDaq1vjc4WEzEniMQZsDrmLFNzfl3NzeAANo2pqOIH2XhSjbE99fExdll2SKkyiP33qFLT2qmEfXYhcNUxSXLZkBi6d2FhgrE9PLaYLO7Uv7VZDHTIyi8GUhPBAwDfwoNKKJrDl7j7MiHGHVVxrCpZNOTaPOeWpKyG6/NPj+7IK8oxug==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lyFcLFBZ/FHST6KrIS+sKf3VQK0G9mbIEtwtjkVCqdU=;
 b=uaSdnX632DErEtitLZow3dz4EbqcSj8KdsEMB9Xb/SXLP4CATeyWa9a9eXyFKk3i4DRqwcpv41v0TfzCC3TlCq4GJZI+mt13r/4AWXbj+U/dt7Q6mbiGMWo+yAERUTBweFshgeAzejaV41+pdg8AmLcpyBHcS9UX8RzYu8WRZ8E=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <09274238-3874-4114-99e1-efd587498a8b@amd.com>
Date: Mon, 18 May 2026 08:49:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen/common: llc-coloring: reject empty color tokens
To: Mykola Kvach <xakep.amatop@gmail.com>, <xen-devel@lists.xenproject.org>
CC: Mykola Kvach <mykola_kvach@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Carlo Nonato <carlo.nonato@minervasys.tech>,
	"Miccio, Luca" <luca.miccio@amd.com>, Marco Solieri
	<marco.solieri@minervasys.tech>
References: <cover.1778925998.git.mykola_kvach@epam.com>
 <0820f91dd0499e5f66f8961b5e27fe0a0ff9be35.1778925998.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0820f91dd0499e5f66f8961b5e27fe0a0ff9be35.1778925998.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE34:EE_|SA1PR12MB6948:EE_
X-MS-Office365-Filtering-Correlation-Id: 1e311160-ddfd-4ca5-6e29-08deb4a9a43e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|30052699003|36860700016|7416014|376014|11063799003|4143699003|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	2IG8CN5zh/Rg2MNfpezi5UlDTeIDth7OCu3FtHlpVkC+ks3wnVGXPmBynjAs5TWDPxJT6Rd0LT4J/nPAgcjgpIDD852PSGuLDfu0qQX/tB6zXwjBcFreDuc6yxcVGUrC3tk+WwHNsQbnQ7bHuyX4ZY4skPGWtDKcDJ+ZgHLAfFQq0HcAOKGJgEaL8ntzzDCExtA2haIbilvuYq3VcLb0bw4tuHqX44/tJrdE8qzqg3OAZgr3EjYw1mhEDgnTt55UHNLNv9UBblzIQDbbg1m4hXhyWobfKU4ZFAk/5nLywspM3S9do3kfV4XguIQVfThY8e1bQgybKYyX9dAmwgPM8qVOdCTipCXIjIa/XNvHaWQBngcYt66tsVzNmmkJNx08iylN2AOeVKkBV1iSmdoZFTDeVXr2g/DbA5rO1pI4L1Wvpir0VW9rGMa5/Php8YZ8owibPzyW/EfTieuyDw8guFwajmd1MGtnPmp0B0CXuLxGFDwkMcBwgu55ZU7nJTRnlzpfuCHGC9PHgVQlwM574TYU2CaexMAfrlID+L54/SX2FHOexUxovtNElh9nNlbuVHrIXDgFhX+K2cRTOIEBnHpKQe+YSJCqHZGpj2vuEPQZDiYTS5EuCv9DKtjDcSatbxAjo2cA4G2UhaBm/kHXey6PkdbO6+wIoClC32PmjyANMbZfyMbSF9BVtI3cseIs0B1yCjvtqLDtvey7m3jq7WxUCpuQynOBNrTDMpBOWaM=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(30052699003)(36860700016)(7416014)(376014)(11063799003)(4143699003)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	XcD0HDLX+RrXoKtcMt6cuTYexBQqbp5N9TccUCCD92rObKjI84t8syYSbLn2aK//nHoGniTYPHlpmsZBy5mz7vg3Cvy9i4WHaWsuFXDu85TKPaK1Rfh4Jg4XoyYiVMPWxZ8U/bdjcdkx3qQOufLZ9o/P34kf0LrFXGR7hgHsYvcHEnTdUCXaPPEQXm340RAJn5UkobB8GFvBcywurV/0Rc3SWgQnrTqqa+WYKLBdWxjQHqI7PL3Q64n7T2FWEn5hRHN5/Ked75mPW/QsvP86OIoBMuupLKGMW3PSMlSOyINDkdPtgkz0dnU5ojXRE/ItA9D8IYPGxpEXVevbW/mUb4zAi9gA9tDxc1GQVqZL5ZTBw7XtJTAk6UlrqdKITy3Qjh8rxEyNTwDWOLl9htG2IxTSbQ19vK/CmjKbdJ/fyy/Klj48g9/VM5ob2Q8a9AcA
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 06:49:43.0399
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1e311160-ddfd-4ca5-6e29-08deb4a9a43e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EE34.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6948
X-purgate-ID: tlsNG-33051d/1779086990-42F62938-322199E5/0/0
X-purgate-type: clean
X-purgate-size: 2313

+cc Carlo, Marco, Luca

On 16-May-26 17:03, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> parse_color_config() currently accepts delimiters where a color value
> is expected because simple_strtoul() returns zero without advancing the
> input pointer. This makes strings such as ",2-6", "-10,19-20" or
> "1,,2" look as if an empty value was color 0.
> 
> Also add the missing newline to the DT color parsing error message.
> 
> Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
I don't see anything in the user facing docs that would make me think the
current behavior is intentional, therefore:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

I will still give a chance for the original authors to chime in if needed.

~Michal

> ---
>  xen/common/llc-coloring.c | 13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
> index 2606cb0977..5d00d4b40e 100644
> --- a/xen/common/llc-coloring.c
> +++ b/xen/common/llc-coloring.c
> @@ -64,14 +64,21 @@ static int __init parse_color_config(const char *buf, unsigned int colors[],
>  
>      while ( *s != '\0' )
>      {
> +        const char *endp;
>          unsigned int color, start, end;
>  
> -        start = simple_strtoul(s, &s, 0);
> +        start = simple_strtoul(s, &endp, 0);
> +        if ( endp == s )
> +            goto fail;
> +        s = endp;
>  
>          if ( *s == '-' )    /* Range */
>          {
>              s++;
> -            end = simple_strtoul(s, &s, 0);
> +            end = simple_strtoul(s, &endp, 0);
> +            if ( endp == s )
> +                goto fail;
> +            s = endp;
>          }
>          else                /* Single value */
>              end = start;
> @@ -334,7 +341,7 @@ int __init domain_set_llc_colors_from_str(struct domain *d, const char *str)
>      err = parse_color_config(str, colors, max_nr_colors, &num_colors);
>      if ( err )
>      {
> -        printk(XENLOG_ERR "Error parsing LLC color configuration");
> +        printk(XENLOG_ERR "Error parsing LLC color configuration\n");
>          xfree(colors);
>          return err;
>      }



From xen-devel-bounces@lists.xenproject.org Mon May 18 06:52:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 06:52:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311528.1581641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOrpo-0000Kq-Ad; Mon, 18 May 2026 06:52:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311528.1581641; Mon, 18 May 2026 06:52:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOrpo-0000Kj-7R; Mon, 18 May 2026 06:52:16 +0000
Received: by outflank-mailman (input) for mailman id 1311528;
 Mon, 18 May 2026 06:52:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wOrpm-0000Kd-Kn
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 06:52:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOrpl-0076WH-TQ
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 08:52:13 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ab70c-e002-0a2a0a5209dd-0a2a450b8414-46
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:52:13 +0200
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ab71d-212f-0a2a450b0019-d155dd29c803-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:52:13 +0200
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-43d77f6092eso885343f8f.2
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 23:52:13 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe4c8344asm403034785e9.1.2026.05.17.23.52.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 17 May 2026 23:52:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779087133; x=1779691933; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4iAmaJNBJRtpqb/vsur7JtbcNtNbCFnALZmghaNeFO0=;
        b=dQ0AMr+/xHKrCrMVrRYKM4bmIIJQEKyY2I6/FWsh69JEyPp0DSh4y7Kh1Y2towTPnd
         XAZfKS1bGxBmvbHEobd63Fma5aZMovIi9uu+i/jHU46M1xyqD4b2PKSsS8HKLJbi9ImM
         KDG06wo87IWNq9zvZ2a5dvWvAkABUnSDnJe24sJJcgMhj8/Bv+hCvGMbFxdMuz+66Ug5
         NOdTUdrjMnf7kGIyxeqFQwiisLXaNMcv+sSuBRkwPSsru8KhRSnLFebz1gh+ucgLqGMs
         v8jGeemY10IcA0qASdaiDXVblUA2YJcRr8odSgpDJ66ISGtSpn5fX+Kellh14ZAIpNB9
         WZkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779087133; x=1779691933;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4iAmaJNBJRtpqb/vsur7JtbcNtNbCFnALZmghaNeFO0=;
        b=kBb4jngLOzLvE4e/MqQ5VH+ZG27b9e05fCTdXfbLZlY64K4FwPj248Qdn5TjnGd1QX
         q1fA0Cd6KsIqUBTueQ0La7Z9J6oaYOR82m9lak1GHb+Gv8hDG9V+C6uX7ATOaIIDbj6N
         wAKBJWpfq1Xet6LIKCmP1vcu6TQ04cWw99ldpuXor/mxQmICkaXREDdtbAIQiTk5q8Ji
         FFM0BgG6Oeyec9SsxPDbDg9Qz+NQaAlAuMqTTxIo20rqHKRV0UC1kZO4bGQvCocFawV1
         elRQC28gbRX8HFDuLyuwPX//yU22z38AK8VhGFtxoYPdJHdFpUeEyErGTxITLs8qqFHn
         aqsw==
X-Forwarded-Encrypted: i=1; AFNElJ9/dmdnTenB6dPOKTKBlNUj/RUntIMFa4fE2/Zhkn+kIK4HacZdfV5lE9d3QKqmGHgyb0E7X/sIjjM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy4G6xu8juI0yA8xrLkPhhG71n6r19dEW2KuLJ4J/TLL7yJDIkc
	5jwyG6dP89HTu+Xw7QrimVFSY8GSVsLUnrOvUYUi3s+VrzXTGRn8fL3165QzqGxEuQ==
X-Gm-Gg: Acq92OG5eBdgd+nIO2clA0hw0TyHlAJtgiLnwP/+O35hlCSRdhNCnYIOe9HGGUZTz25
	rN9y9GiV0avrXhdW1M0+W+rTKAfir4E52syksPSHzKX4kkQ0orDItGY1udeQCLaVlWZy5cfMgZ2
	FOoWU0zupLU8Tt0184ihk/80s6qLWZOZY18gz8+yfIwVBpDPgQ4UICXK0D1td8jG+w5ygYN2Yic
	bfDF+nPxbJMRO6csHyWHPOUIiFl6LuwxLH9HhnQnAd4Gonjp8JGzq+YTGKsM+55QT4qqzCw5x+x
	5bkw1RACj6anxGQphuS98VNxrju8LQrNOU5OZ65lUXGh4RvbRpvHSDpKgB9VcL8kwks32Dihwcb
	C2nPbqeqlHtwbrFG77nYo1sqXWT1MYoIPAzVGNLGqfB7QQf9ZzMyXLhwoiyZuf82nnNz7ZLpafg
	Wucvxkt8YGW3klYc13cW/Vt4LGJLLQSzsUFJydnpKt5cgNhAwk++bypI15ttEWJO3Htwt7uEPiE
	V/02Y5WtqByWgoNnY7PJqVIOA==
X-Received: by 2002:a05:600c:3e1b:b0:486:fd5c:2b35 with SMTP id 5b1f17b1804b1-48fe60eccc3mr198182715e9.13.1779087133180;
        Sun, 17 May 2026 23:52:13 -0700 (PDT)
Message-ID: <a5d1dc32-c505-4f42-8d48-ba2710d7b831@suse.com>
Date: Mon, 18 May 2026 08:52:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/2] xen/common: llc-coloring parser fixes
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Carlo Nonato <carlo.nonato@minervasys.tech>,
 Marco Solieri <marco.solieri@minervasys.tech>
References: <cover.1778925998.git.mykola_kvach@epam.com>
 <d9db51c5-97a1-4131-8575-dca1ae2cf52c@suse.com>
 <CAGeoDV9DitsH629pWGe+X=0VM+oi1BfSgWMxE+t32CCR5gMgtw@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAGeoDV9DitsH629pWGe+X=0VM+oi1BfSgWMxE+t32CCR5gMgtw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1779087133-21F84F3B-178D6048/0/0
X-purgate-type: clean
X-purgate-size: 2425

On 18.05.2026 08:42, Mykola Kvach wrote:
> On Mon, May 18, 2026 at 9:20 AM Jan Beulich <jbeulich@suse.com> wrote:
>> On 16.05.2026 17:03, Mykola Kvach wrote:
>>> This small series fixes two issues in parse_color_config().
>>>
>>> The first patch makes parse failures leave the caller-visible color count
>>> at zero.  This prevents a rejected command-line value from leaving a
>>> partially parsed configuration behind for later init paths to consume.
>>>
>>> The second patch rejects empty color tokens.  Previously, delimiters in
>>> places where a color value was expected could be interpreted as color 0,
>>> because simple_strtoul() returns zero without advancing the input pointer.
>>> The patch checks that each parsed color value consumed input.  It also
>>> adds the missing newline to the DT color parsing error message.
>>>
>>> Mykola Kvach (2):
>>>   xen/common: llc-coloring: clear color count on parse failure
>>>   xen/common: llc-coloring: reject empty color tokens
>>
>> For both of these, a question which isn't even considered in the reasoning
>> is whether the present behavior may be intentional. Especially for the 2nd
>> ISTR Stefano(?) not so long ago indicating that the behavior is indeed
>> intended to be this way. That may have been somewhere on Matrix rather than
>> on the list, though.
> 
> Thank you for pointing this out.
> 
> For the first patch, my reasoning was that returning an error while
> leaving a partially parsed caller-visible color count behind looks
> surprising. If the value is rejected, I think later init paths should
> not be able to consume the partially parsed state.
> 
> For the second patch, my reasoning was that the current behavior looks
> accidental rather than an intentional extension of the syntax.

That was my impression as well, hence why I had raised the question back
then.

> The parser comment says:
> 
> COLOR_CONFIGURATION ::= COLOR | RANGE,...,COLOR | RANGE
> RANGE ::= COLOR-COLOR
> 
> The user guide also describes this as a comma-separated list of colors
> or ranges, with ranges written as hyphen-separated inclusive intervals.
> I don't see an empty-token production there.

What you quote is insufficient to determine: COLOR may be allowed to be
<nothing>. Iirc the reasoning went in particular towards a range with
merely the upper end specified being something (halfway) meaningful.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 06:56:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 06:56:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311537.1581650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOrtY-0000sI-Q7; Mon, 18 May 2026 06:56:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311537.1581650; Mon, 18 May 2026 06:56:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOrtY-0000sA-Mv; Mon, 18 May 2026 06:56:08 +0000
Received: by outflank-mailman (input) for mailman id 1311537;
 Mon, 18 May 2026 06:56:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOrtX-0000s4-MQ
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 06:56:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOrtX-00H0RV-2e
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 08:56:07 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ab800-5cb7-0a2a0a5109dd-0a2a4504ca0e-28
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:56:06 +0200
Received: from [209.85.208.180] (helo=mail-lj1-f180.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ab752-1dec-0a2a45040019-d155d0b4d1e2-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:53:06 +0200
Received: by mail-lj1-f180.google.com with SMTP id
 38308e7fff4ca-394095009beso17595171fa.3
 for <xen-devel@lists.xenproject.org>; Sun, 17 May 2026 23:53:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779087186; cv=none;
        d=google.com; s=arc-20240605;
        b=foL67ptgJLg6Ifwwg9cfZF4M/9i+j/EACLe35ri40LPJzWpFp8SFsPQ4vcAAhmew9B
         91MgP1jnamCcaCKtaiZT7OmrmIymN+kkl2SdTK12XoczkfiiEmxJE8K8XUWnGUSX+bl7
         mrs30vkWWnhMjxGFS37VyEx6oEDMXHP8YBr8Zry7stF05PRhBBq0qkWu0lsk4vN/nThP
         CVuRZ4buIE+/Hzqd8XW+V6mkl91eHs7nM8WqOc26TiUJOrpFBH1zi0hCiNTSEgTDaj0D
         E+YlE0Xov6uxvtpzvQQ666Hj+XW0KyApG0/I90HV62hHT7gHU5BwtQ63Xko0VtghBKP7
         43sA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=if3z/eZTD2NfGn5QkNSJkIjt8WzZVWKFhhOShdJzFDU=;
        fh=akXeQf5snvpCIpThYDrDR2mv1hFZob6mP8W1D1NQr7I=;
        b=MN5subxSiaQMUl3MQthgtRbtlt5U9QAm4RmArf9eSQbsXhvzVc3bdNzZFkLctEjBT8
         /9VPHPU1obOE4MqtkHzZjP31a4dyi7w3AXdImNNw/PK2rdWfNCsg2nTdXzHOFBL+YExu
         +3+KTwxLfAWheyc+TNpXMr691nDrkIWq93WElAXs0g+gpEkE4r90By6BhkfV7IldSVqz
         PipnVYT+FDzLIPiwy9bFuqrVOPwoIlhUwezF+COyD/ToHnJbGiahPD6HYuxgafEcqZ9u
         /VGakWbvogsuhSfQ8ZEPICA4+bkkoDPNQk/FuopcEoPgDstIEIYYecN3zzAwOOITPt98
         jrNQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779087186; x=1779691986; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=if3z/eZTD2NfGn5QkNSJkIjt8WzZVWKFhhOShdJzFDU=;
        b=jqxBewAF5u7o6d9EOD4J1KQeX8M90ibU9qSbYEMWyZUu3qD4G8GbQInKEqzUv+6kxF
         JObVRlBAtfRoxSZFOpq4+ToEnyNlMzWbPlGQPGwsd/FNw8yeMnzhdQ++xHaOhyV4Im87
         lKQmCFltzYr3udhXd4daDfNf5Z4AznC1SPgqEXFkpaI8BVUEtlbXIwuiv34XC9ZLiaOx
         V0Ga/JEjpe58/ziDRcmYIqQsfMA0Mg+zpfbHKVaW5AywyN+JuNxpPjFTPKDX8awz28ly
         KBnp/0/yLC+jDnoH2OPmeWFUqvHBcAaL7sq6W1RfMNhUC7OAxpl2Gw3Ze4Ffs2qlCwev
         VtLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779087186; x=1779691986;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=if3z/eZTD2NfGn5QkNSJkIjt8WzZVWKFhhOShdJzFDU=;
        b=O/2NjvcuBgaZ/H5ULnQpkZjFpO6weARuWnyprUMe8QeI0x8a81baIoPn8Hpzy/Zg8G
         9O+t1FTlsmOF0Qfv8TqNmA9nT6ILRJdvu6IZSSBb+Hj3ZAhGJZk6BgEBVtwDrwn3s+YP
         w8bsqxwxFox9Aet+E7csVZ1h6IFc6lDR7syvOXcfbsY9jsYJ5bfIulfOmkfgjkl4r6Iw
         ra4FmGbLfN3gaLSmew3B8loFK6LHOqMYtqL/eCPMn1RSq3WuX1hc+1v/acE2gme/cR9M
         Ro3reAND0AMOzpocaMJdQz6RUQWIhUtBItjI+m/GC6JYSBC2iEws8ljRPOpnVn0yxRl9
         9m2A==
X-Gm-Message-State: AOJu0YxG46lRacjLaOFHlmRKIs/MluJnXbnorKfUueyaDHcern24zuGt
	c1Xli9khJaq39kbK/F/oguBAItzdMCvW/fkz4U3kVbOAvjBpBjnGDSRl2zLPiEwBtqSEh0mQXRa
	DcO+bEWH1TRKsVtZpgkvnLEPFjC6zHcs=
X-Gm-Gg: Acq92OHoVdCTgVKwqumFMHwwZgYavcCLmd37Vbkv39/cAuy7EgCnZJBRIT4XXCvFIIw
	59cbWPdCASEzL6lpWTEZatpdYWSGuZcjveM+dJo8e5CLhhVfzwFgLvaqOit2ZiWgM4/29PMiRYv
	V16A4WHy4Vm6qoIw+Edmbl2NPaol7DTRO4dr30/wpM+WTq+cMzhemJ0i0KuwSLQaAwwP02L6OBW
	t8hQZdgQ8mer7BeDLSbPqllK6ZOrp2cF5xam/mVEaHIfRVxY1OW3621NYRvLpS6mB8AwryPNUjg
	LIVP
X-Received: by 2002:a2e:bc83:0:b0:389:fa42:b266 with SMTP id
 38308e7fff4ca-39561a4fc57mr40645281fa.11.1779087185655; Sun, 17 May 2026
 23:53:05 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778925998.git.mykola_kvach@epam.com> <0820f91dd0499e5f66f8961b5e27fe0a0ff9be35.1778925998.git.mykola_kvach@epam.com>
 <agq0VHVZDCKmMe0u@kraken>
In-Reply-To: <agq0VHVZDCKmMe0u@kraken>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 May 2026 09:52:54 +0300
X-Gm-Features: AVHnY4KYcUnx3q16dhJDjq3tuGgE7Vn5k2ZtZ4inlzBM6DKf72XHMvqWQ-vwv7M
Message-ID: <CAGeoDV9UzM25qyLe4k13mMMtOpjDW1B8cA4AZHptpZ2pymAwvQ@mail.gmail.com>
Subject: Re: [PATCH 2/2] xen/common: llc-coloring: reject empty color tokens
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ebf023/1779087186-40B733FF-2BA4BFA0/0/0
X-purgate-type: clean
X-purgate-size: 2486

Hi Denis,

Thank you for the review.

On Mon, May 18, 2026 at 9:40=E2=80=AFAM <dmukhin@ford.com> wrote:
>
> On Sat, May 16, 2026 at 06:03:12PM +0300, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > parse_color_config() currently accepts delimiters where a color value
> > is expected because simple_strtoul() returns zero without advancing the
> > input pointer. This makes strings such as ",2-6", "-10,19-20" or
> > "1,,2" look as if an empty value was color 0.
> >
> > Also add the missing newline to the DT color parsing error message.
> >
> > Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> >  xen/common/llc-coloring.c | 13 ++++++++++---
> >  1 file changed, 10 insertions(+), 3 deletions(-)
> >
> > diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
> > index 2606cb0977..5d00d4b40e 100644
> > --- a/xen/common/llc-coloring.c
> > +++ b/xen/common/llc-coloring.c
> > @@ -64,14 +64,21 @@ static int __init parse_color_config(const char *bu=
f, unsigned int colors[],
> >
> >      while ( *s !=3D '\0' )
> >      {
> > +        const char *endp;
> >          unsigned int color, start, end;
> >
> > -        start =3D simple_strtoul(s, &s, 0);
> > +        start =3D simple_strtoul(s, &endp, 0);
> > +        if ( endp =3D=3D s )
> > +            goto fail;
> > +        s =3D endp;
> >
> >          if ( *s =3D=3D '-' )    /* Range */
> >          {
> >              s++;
> > -            end =3D simple_strtoul(s, &s, 0);
> > +            end =3D simple_strtoul(s, &endp, 0);
> > +            if ( endp =3D=3D s )
> > +                goto fail;
> > +            s =3D endp;
> >          }
> >          else                /* Single value */
> >              end =3D start;
> > @@ -334,7 +341,7 @@ int __init domain_set_llc_colors_from_str(struct do=
main *d, const char *str)
> >      err =3D parse_color_config(str, colors, max_nr_colors, &num_colors=
);
> >      if ( err )
> >      {
> > -        printk(XENLOG_ERR "Error parsing LLC color configuration");
> > +        printk(XENLOG_ERR "Error parsing LLC color configuration\n");
>
> While here, add domain ID to the printout similarly to
> `if ( !check_colors(..) )` processing below?

Yes, that makes sense.

If this patch goes forward, I will add the domain ID to this error
message in the next version.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 18 07:02:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 07:02:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311545.1581658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOrzM-0002hg-Bq; Mon, 18 May 2026 07:02:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311545.1581658; Mon, 18 May 2026 07:02:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOrzM-0002hZ-9H; Mon, 18 May 2026 07:02:08 +0000
Received: by outflank-mailman (input) for mailman id 1311545;
 Mon, 18 May 2026 07:02:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOrzK-0002hT-Lg
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 07:02:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOrzI-008fGW-D6
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 09:02:04 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ab965-e002-0a2a0a5209dd-0a2a450ce9c0-32
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:02:04 +0200
Received: from [209.85.208.181] (helo=mail-lj1-f181.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ab96b-62f1-0a2a450c0019-d155d0b5c856-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:02:04 +0200
Received: by mail-lj1-f181.google.com with SMTP id
 38308e7fff4ca-395317d8852so16741131fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 00:02:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779087723; cv=none;
        d=google.com; s=arc-20240605;
        b=bO1NMkOr2DgIas/e7Eqg/hPYoHOXZrLEAhAAsON/mQoSH+6u/55/NNEmXlJkKC/l5l
         KrPHtRIUjxCxX5o92ayC66gVEAJV9ipxVE5NdeELKvUct7HFO0f3dBB3yMOjoUj//TgQ
         O4oxYz8l0AKsJYwcA4C0l4MAkvHrRLPgsugUwJhZ20vGwM7Mu8Ewi1aJGeyVtmrwdEmi
         wvVL06wMF/QeMZoF4y9RLYVO789Ls6qVYbNmWUdSHSOUa3Yzym2EVdrat4ailnnuo7my
         N0sVpN7ESvzC3RVYnXgWknARm+Qyov8bgjciUSKuxHTMU+7Q1ot/6pgdYJZm/m/S1IfE
         B2IA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=3JCLiVjrYoxp8pn/kEH3Tc+0tuKlpKYXcQZg2b2QSAQ=;
        fh=m+LyBnxXZUS5is0QhmwZhMCJ+Zjiv6ewBPbyK6zvFHc=;
        b=WijZKnrONpvMyJHh+Ez+cpn7eLZRwC5KQyOsQ4+S+ICbS1jnIVrCKOw6vZ3uemqEak
         ZFw6e9K3PaiUoZuLbjL3OQDzbiGMKJXJ9hLF59CkSeaNkX1juASmJGJWmgZ111X0TPIi
         qEJu+qjYPowbuvzGyQAARD96+VzmY4sjvfAVkzBqmggsapm7SHI3MhsL2rp68+pB6miU
         CDgBOb0LajPVNcHShMM35Neka5dBXwXAm2W3OY7iKGwNulHOR2oOfLE9qolAp5QpBZxI
         Lkf+kDNi1szGhIlcaWiXnglfONPYdgSTqcQxMQTWtn3/Q7BmncS8CeIuOnPU5H90uHzA
         IUnQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779087723; x=1779692523; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3JCLiVjrYoxp8pn/kEH3Tc+0tuKlpKYXcQZg2b2QSAQ=;
        b=IszNxIm6vycQ3iCqE6oniFeuB/uqQbyNOJjqdPZPrCPGWCbjBg19dCLMsPKgt2KvRh
         6hCgSVoOZFPjQLqPPr85MRQGxJMV2MEVZFqUag9+vpx8S6aHZNOPD14Cy7LlCkjdgiWe
         Atd3EuDdIh3XcBVIHlqzHlkd1UkDxh5TQZb7VcGGIz2Mfwcbhyn9YjIxkPRqOqj/OhVY
         /YhQ28rYk8nvZ9npH9aP3+X0ILVQ3bNR0ltGd5EA4Sx8iF7VK3Ogmz7mhEJPjqxC05Dm
         5ujhNWBiqIQbm1+7DfX1ZajPXfd/jGqHabzP3S45lLgSLu1ttWR1gL9R/oqM7XdgfDyY
         vgPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779087723; x=1779692523;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=3JCLiVjrYoxp8pn/kEH3Tc+0tuKlpKYXcQZg2b2QSAQ=;
        b=QKl7U5RcuCnTJwVsnyZaM0DOGzq7Q+b3HprfbStzW9UJVdgL3RrLIpi1HrYP1Bkb2y
         g6qXMW2HbqGRdgLnGjKkkUd5HInGVG/mq9qMR8KLgCdmKOVckgC+eHgjun9RiYNzjZtv
         MVUN4RA3OH+rt1LDnLXyRjsGjLLnhaG/XSlefedsH4nUFDTNcLA5bu64mHxBMbzcvA02
         6G1Y/N6Otx7ixSQsZVvTuLt8GmMOFmeXZSH00cxFCxBddkc55goxZG87M+ea4Bgjk+Ll
         Fmh1X5Q3zg3mg0Hkq1c3HGf/jRg3E0xXjmLOGraTqD5rqVtgUIMDV+ivcqEjrl05tl6+
         UCBA==
X-Forwarded-Encrypted: i=1; AFNElJ9hTNSAz/nIX28i8d3U1QFfZmXH942wdk2TL4vEPO7eMWGU+BUaKh3xD6et/Ge95sAVNwGAACu/kz8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwHLf6ET/Ac+jkNVigri6Mj/981w3CZ+u7yphOD8xtMojBvzI0V
	497sczEFI0YJyJLz/NLj+18BJIumJ5xQCUkJoEB3hvHy65Sbk3vnpX50D78cdU8DufD0QwyAc4m
	vuI8+YyEHc9YBgJvHdIIMY10u/OD0nmQ=
X-Gm-Gg: Acq92OHDTbByuu8NLivuBet27n6ckdoIq1qnT+hB70eFBcNqzouNy5QffXfSsfV15+G
	BEGhnLeQfwWFDT24M3hcci68qobpCCN2cXBR9y/Kx++j5gz+ksUnIlk7ZtTSHxFS+5LLysPSGLS
	BIF0gBuV7/75RFHWMC9D4MybdD7LKwnyP2yCsdEjSb2gEDeyZfYJcApbSXdPCIGcr+zivY/ljfp
	hAnBFlWhTjxNtCj6LRYi/oPGexWLSBxaEIyLbBL45OFDkRrjMOXkLMSvj9h78656mu4EL619uoX
	rmx9
X-Received: by 2002:a2e:2e19:0:b0:38e:90b9:ce98 with SMTP id
 38308e7fff4ca-39561c0cd6bmr30917351fa.6.1779087723146; Mon, 18 May 2026
 00:02:03 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778925998.git.mykola_kvach@epam.com> <d9db51c5-97a1-4131-8575-dca1ae2cf52c@suse.com>
 <CAGeoDV9DitsH629pWGe+X=0VM+oi1BfSgWMxE+t32CCR5gMgtw@mail.gmail.com> <a5d1dc32-c505-4f42-8d48-ba2710d7b831@suse.com>
In-Reply-To: <a5d1dc32-c505-4f42-8d48-ba2710d7b831@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 May 2026 10:01:51 +0300
X-Gm-Features: AVHnY4Il-7plXvdnaNWH4cvOEinsjaCQG5yoBNwLoJYksIrFr_kF7vQmHArWgw4
Message-ID: <CAGeoDV_8BNRPy9tbe1ArgR4Lj8YHZPwo_7D59oJJSiSqNQFNFQ@mail.gmail.com>
Subject: Re: [PATCH 0/2] xen/common: llc-coloring parser fixes
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org, 
	Carlo Nonato <carlo.nonato@minervasys.tech>, 
	Marco Solieri <marco.solieri@minervasys.tech>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d25034/1779087724-E0567CF5-94D462E1/0/0
X-purgate-type: clean
X-purgate-size: 3051

On Mon, May 18, 2026 at 9:52=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 18.05.2026 08:42, Mykola Kvach wrote:
> > On Mon, May 18, 2026 at 9:20=E2=80=AFAM Jan Beulich <jbeulich@suse.com>=
 wrote:
> >> On 16.05.2026 17:03, Mykola Kvach wrote:
> >>> This small series fixes two issues in parse_color_config().
> >>>
> >>> The first patch makes parse failures leave the caller-visible color c=
ount
> >>> at zero.  This prevents a rejected command-line value from leaving a
> >>> partially parsed configuration behind for later init paths to consume=
.
> >>>
> >>> The second patch rejects empty color tokens.  Previously, delimiters =
in
> >>> places where a color value was expected could be interpreted as color=
 0,
> >>> because simple_strtoul() returns zero without advancing the input poi=
nter.
> >>> The patch checks that each parsed color value consumed input.  It als=
o
> >>> adds the missing newline to the DT color parsing error message.
> >>>
> >>> Mykola Kvach (2):
> >>>   xen/common: llc-coloring: clear color count on parse failure
> >>>   xen/common: llc-coloring: reject empty color tokens
> >>
> >> For both of these, a question which isn't even considered in the reaso=
ning
> >> is whether the present behavior may be intentional. Especially for the=
 2nd
> >> ISTR Stefano(?) not so long ago indicating that the behavior is indeed
> >> intended to be this way. That may have been somewhere on Matrix rather=
 than
> >> on the list, though.
> >
> > Thank you for pointing this out.
> >
> > For the first patch, my reasoning was that returning an error while
> > leaving a partially parsed caller-visible color count behind looks
> > surprising. If the value is rejected, I think later init paths should
> > not be able to consume the partially parsed state.
> >
> > For the second patch, my reasoning was that the current behavior looks
> > accidental rather than an intentional extension of the syntax.
>
> That was my impression as well, hence why I had raised the question back
> then.
>
> > The parser comment says:
> >
> > COLOR_CONFIGURATION ::=3D COLOR | RANGE,...,COLOR | RANGE
> > RANGE ::=3D COLOR-COLOR
> >
> > The user guide also describes this as a comma-separated list of colors
> > or ranges, with ranges written as hyphen-separated inclusive intervals.
> > I don't see an empty-token production there.
>
> What you quote is insufficient to determine: COLOR may be allowed to be
> <nothing>. Iirc the reasoning went in particular towards a range with
> merely the upper end specified being something (halfway) meaningful.

Right, I see your point.

The grammar does not define COLOR explicitly, so it does not by itself
prove that an empty token is invalid. I was implicitly reading COLOR as
a numeric color value, partly because all examples seem to use numeric
values, but I agree that this is not stated there.

If this behavior is intentional, then I agree the second patch should
not go in as-is.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 18 07:05:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 07:05:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311553.1581669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOs2l-0003GI-RF; Mon, 18 May 2026 07:05:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311553.1581669; Mon, 18 May 2026 07:05:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOs2l-0003GB-N4; Mon, 18 May 2026 07:05:39 +0000
Received: by outflank-mailman (input) for mailman id 1311553;
 Mon, 18 May 2026 07:05:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <luca.fancellu@arm.com>) id 1wOs2k-0003G5-55
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 07:05:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOs2j-001ud6-HE
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 09:05:37 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a0aba3d-e002-0a2a0a5209dd-0a2a4508d59e-18
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:05:37 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a0aba40-63b5-0a2a45080019-d98c6eacd6f2-1
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:05:36 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B765445BF;
 Mon, 18 May 2026 00:05:30 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0E34B3F85F;
 Mon, 18 May 2026 00:05:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="From:To:Cc:Subject:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1779087935; bh=cagP/lu5HxqlLYxu0yTLdLWRdQYKnbIua195LoF4ZVE=;
	h=From:To:Cc:Subject:Date:From;
	b=Et0KtNd1ibeWJ3jCwReWPy1CNjtvAYNeRpZ09mEU+MZJ3C5Yjck6btU9ff2R07i0V
	 +tCdr1DerW10EcLujZzzmgmOjXK5DCaGDcs/yg9NZZjPGbDJoQ632iXgOtJFQOp1p0
	 ylnMqSI+xBKKXiKg7ovGMdbNZ/lfsMfow10bKA7E=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] xen/arm: gic-v3: Fix redistributor wakeup polling
Date: Mon, 18 May 2026 08:05:24 +0100
Message-Id: <20260518070524.19813-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1779087937-BF171DB1-F11F92C7/0/0
X-purgate-type: clean
X-purgate-size: 1447

gicv3_enable_redist() clears GICR_WAKER.ProcessorSleep and then waits for
GICR_WAKER.ChildrenAsleep to clear, as required after waking a
redistributor.

However, the polling loop currently uses "while ( timeout )". Since
timeout is initially false, the loop runs only once unless the timeout
path has already been reached. As a result, Xen can continue before the
redistributor has completed wakeup.

Use an unconditional loop, matching the surrounding timeout/break pattern,
so the code polls until either ChildrenAsleep is clear or the deadline is
reached.

While there, also fix the timeout message. This path polls
GICR_WAKER.ChildrenAsleep, not an RWP bit, so "RWP timeout" is misleading.

Fixes: bc183a0235e0 ("xen/arm: Add support for GIC v3")
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 xen/arch/arm/gic-v3.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 7f365cdbe9df..bb946dc11375 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -828,11 +828,11 @@ static int gicv3_enable_redist(void)
         }
         cpu_relax();
         udelay(1);
-    } while ( timeout );
+    } while ( 1 );
 
     if ( timeout )
     {
-        dprintk(XENLOG_ERR, "GICv3: Redist enable RWP timeout\n");
+        dprintk(XENLOG_ERR, "GICv3: Redist wakeup timeout\n");
         return 1;
     }
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon May 18 07:14:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 07:14:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311565.1581676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsAp-0005FO-Js; Mon, 18 May 2026 07:13:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311565.1581676; Mon, 18 May 2026 07:13:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsAp-0005FH-Gh; Mon, 18 May 2026 07:13:59 +0000
Received: by outflank-mailman (input) for mailman id 1311565;
 Mon, 18 May 2026 07:13:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wOsAo-0005FA-Ok
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 07:13:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOsAn-008ig2-M6
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 09:13:57 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0abc33-e002-0a2a0a5209dd-0a2a4501aaaa-4
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:13:57 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0aba90-c1f2-0a2a45010019-d1558033a450-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:06:57 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-48fde648a71so11420245e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 00:06:57 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48ff43f213esm88938115e9.1.2026.05.18.00.06.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 00:06:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779088016; x=1779692816; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lP8omxE94I3r3F/LBaEVs/YAH08WxSk5OMKBHnjaXnM=;
        b=cy48ityw81uTsoGR/7YOxm8Se55SwbST4patxXLs6+Ocqg+FgttmIYpSDcT2GrGt/Z
         /3fUGo4FXbS4g/rd/BtPPMi1//ZlaOUp6oAyul5oihm+M3S2k3wqWglwcH5fTElKzt0M
         qajyNAYx7GlsTlLeObMgAep/iQuVfau7HYZ15mC8SEuHMNo9NCQH7ZhSoAirrvgyUwu1
         rJ4ghFs0XdHnWAIB66sF2COiWjdtXT6l/IbPja2L4OXiPGoPF3ujYJv4S7Slu7qDn4qe
         1j2t/igjcOuE81yTGLKMpL+OyzQWzstxV5kilaP7ef+N/X4o+1NaURFq+X5GPZGBo08u
         q5MA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779088016; x=1779692816;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lP8omxE94I3r3F/LBaEVs/YAH08WxSk5OMKBHnjaXnM=;
        b=QzEwdIc0+VAxgrTdS1VJwAqB3gXGUC8sb3VI5r8HltQytpAXjCyjt4HIkeLLEBKTkW
         5BeeA1ou28a5gcBeJgiPSxe6bcu2b6ZbyaMkTnAR3xj2TvGfICQZ7DNr5gVcaHd2uF7Y
         afZgRIkhUEnzCgRm1CQfynZ5FcsH8xQqy1Niy5aqTxf+wcOu4W5GeZNvKZ7FQRijvdg1
         FDgJwufM4DwWC5H2VFZ78Wa/053imD7vHK9qR3Io7UmuZfujg461Qr/XDWgEHZ+Frze+
         Y4fEtMDIY2T2cJ+KR0knzFMttuXB/IWu93h+fPp6CgYNrrMb43pIcU6Xw/yFpRH+RK26
         IgsQ==
X-Forwarded-Encrypted: i=1; AFNElJ+xEG8OhKIJTB1af3CgmITD1j38X8P76nqJH6yRakY1uoljJBM5BOBm+mleqtZHIWf92dxH7QEkugo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YztgdOdfqRL5H87M/6kIVo5lzu8mtLF8RnfWUMmovnHZuaaJJuH
	spkFRc9IkE/EmxdBDVhZd4fTyX/jQWxcGsH3ZlxTVvWQ73BpnSVKeU448MrLaz8EUQ==
X-Gm-Gg: Acq92OGLlZUzvgQgHnnCXE9g0EpodFUXWztD/L8N/WppBLJxHti8kpn63u2u+TwFuTQ
	tp1+9/h0ziNfwReTvW6j4O9R14cyNk3X4aG7OxYKSoOlA/vR1Du/zA/fXGleKf7bEA311IC8rbZ
	cfRwSV5I8HA7e5FBEkaAgW6tB1+V86dhyvJ4jgSx0HklPDVkPKgKu8k7Z1CzyFaYGQUWPl7tPKt
	UeA8h6TF8lgGkdnw4zCydxacx4r02uF3aTYJbWAxIZHMurcjs2B4GopoK1VOyu1r/95IjpUZ4o9
	obCxFuNUtj4LWfSJcoURTmJKSfpBY6tiekNEjvbnEC6AhQxK0Eh6ohwzryD9/QRor/XxptVvdEB
	yLH0onWMWwqhuXZJuKmAtlvGfIqgOdu6sFyJft3PXBTNhNQD4cfCMkSlwKC7BUMtTppbJYicngd
	rhji+QTLJaB0FGBHnq+XbHQr8ZOUDcfnZ3rSFka+i8nYyJ+S85x+LFK496j7CDSK1iZAf0i4Dx0
	2IEK/n3XPonOomO6McnYz8QEg==
X-Received: by 2002:a05:600c:1515:b0:48f:fe2a:107a with SMTP id 5b1f17b1804b1-48ffe2a10b7mr62152675e9.3.1779088016540;
        Mon, 18 May 2026 00:06:56 -0700 (PDT)
Message-ID: <22edbeb3-4b0b-48d4-9873-76bfa31b970d@suse.com>
Date: Mon, 18 May 2026 09:06:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/2] xen/common: llc-coloring parser fixes
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Carlo Nonato <carlo.nonato@minervasys.tech>,
 Marco Solieri <marco.solieri@minervasys.tech>
References: <cover.1778925998.git.mykola_kvach@epam.com>
 <d9db51c5-97a1-4131-8575-dca1ae2cf52c@suse.com>
 <CAGeoDV9DitsH629pWGe+X=0VM+oi1BfSgWMxE+t32CCR5gMgtw@mail.gmail.com>
 <a5d1dc32-c505-4f42-8d48-ba2710d7b831@suse.com>
 <CAGeoDV_8BNRPy9tbe1ArgR4Lj8YHZPwo_7D59oJJSiSqNQFNFQ@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAGeoDV_8BNRPy9tbe1ArgR4Lj8YHZPwo_7D59oJJSiSqNQFNFQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1779088017-AE342FF4-DBE55B11/13/0
X-purgate-type: clean
X-purgate-size: 3206

On 18.05.2026 09:01, Mykola Kvach wrote:
> On Mon, May 18, 2026 at 9:52 AM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 18.05.2026 08:42, Mykola Kvach wrote:
>>> On Mon, May 18, 2026 at 9:20 AM Jan Beulich <jbeulich@suse.com> wrote:
>>>> On 16.05.2026 17:03, Mykola Kvach wrote:
>>>>> This small series fixes two issues in parse_color_config().
>>>>>
>>>>> The first patch makes parse failures leave the caller-visible color count
>>>>> at zero.  This prevents a rejected command-line value from leaving a
>>>>> partially parsed configuration behind for later init paths to consume.
>>>>>
>>>>> The second patch rejects empty color tokens.  Previously, delimiters in
>>>>> places where a color value was expected could be interpreted as color 0,
>>>>> because simple_strtoul() returns zero without advancing the input pointer.
>>>>> The patch checks that each parsed color value consumed input.  It also
>>>>> adds the missing newline to the DT color parsing error message.
>>>>>
>>>>> Mykola Kvach (2):
>>>>>   xen/common: llc-coloring: clear color count on parse failure
>>>>>   xen/common: llc-coloring: reject empty color tokens
>>>>
>>>> For both of these, a question which isn't even considered in the reasoning
>>>> is whether the present behavior may be intentional. Especially for the 2nd
>>>> ISTR Stefano(?) not so long ago indicating that the behavior is indeed
>>>> intended to be this way. That may have been somewhere on Matrix rather than
>>>> on the list, though.
>>>
>>> Thank you for pointing this out.
>>>
>>> For the first patch, my reasoning was that returning an error while
>>> leaving a partially parsed caller-visible color count behind looks
>>> surprising. If the value is rejected, I think later init paths should
>>> not be able to consume the partially parsed state.
>>>
>>> For the second patch, my reasoning was that the current behavior looks
>>> accidental rather than an intentional extension of the syntax.
>>
>> That was my impression as well, hence why I had raised the question back
>> then.
>>
>>> The parser comment says:
>>>
>>> COLOR_CONFIGURATION ::= COLOR | RANGE,...,COLOR | RANGE
>>> RANGE ::= COLOR-COLOR
>>>
>>> The user guide also describes this as a comma-separated list of colors
>>> or ranges, with ranges written as hyphen-separated inclusive intervals.
>>> I don't see an empty-token production there.
>>
>> What you quote is insufficient to determine: COLOR may be allowed to be
>> <nothing>. Iirc the reasoning went in particular towards a range with
>> merely the upper end specified being something (halfway) meaningful.
> 
> Right, I see your point.
> 
> The grammar does not define COLOR explicitly, so it does not by itself
> prove that an empty token is invalid. I was implicitly reading COLOR as
> a numeric color value, partly because all examples seem to use numeric
> values, but I agree that this is not stated there.
> 
> If this behavior is intentional, then I agree the second patch should
> not go in as-is.

Just to mention: Something like "-5" won't be interpreted as "0-5" even
right now. Instead it's taken as a single color with value -5U, afaict.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 07:19:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 07:19:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311574.1581687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsGU-00068t-63; Mon, 18 May 2026 07:19:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311574.1581687; Mon, 18 May 2026 07:19:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsGU-00068m-2I; Mon, 18 May 2026 07:19:50 +0000
Received: by outflank-mailman (input) for mailman id 1311574;
 Mon, 18 May 2026 07:19:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOsGT-00068g-5H
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 07:19:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOsGS-00EqMo-Ha
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 09:19:48 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0abd8e-e002-0a2a0a5209dd-0a2a450bde56-16
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:19:48 +0200
Received: from [209.85.208.178] (helo=mail-lj1-f178.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0abd94-212f-0a2a450b0019-d155d0b2d939-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:19:48 +0200
Received: by mail-lj1-f178.google.com with SMTP id
 38308e7fff4ca-38ea6a5a0b3so16696081fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 00:19:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779088788; cv=none;
        d=google.com; s=arc-20240605;
        b=O4o7VuV0V21mN/Hjk8pFAADZGlwuarf46hm2wLWEw/wx/lkXdbWG7fMj74ONUS9Bh1
         X6iG1dEq1IOaQmmBVX6AoTB1WAB+pYKBZrW30GrYwe7m4AWygutej9DlNkqz5CtoTq1d
         wHxJm5VhgXx6/N6IDbYzUsTcXFXZ8KMfN5Vq0iQO1w7lBdng/dUyMXmI3uEX6ZXwb6hW
         4uN0AEVUljDwmWoEDXnZwyEjz3svs/fiN2KFgIVbQOIqEt07nhcrrWpztMWjRGeZok/n
         QOuRoS6ujsyZqjR/+wRpH20clz4jKzFebXBwFRBMXl/5zGB7Z9rxypfXAZLCSoiN6e4m
         Enyg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=XqKh2H5OQ1Dg1L1lKIwZJ6zaaT9V+e6s0GtG2jzMM94=;
        fh=QoAKTk/9VDlNwcmDZ1nH53LgYL0xRRdphyzLOnBU0Ws=;
        b=e9spgFs79SS425PkTSb9OzlYXDjAWH+3HNlrBfYZEkLDl3aWpzTlgT92FoW8YOfzuM
         JrL7wU8oKD5yLdG2SJ275FGfAtX7h5t8as6jpT748HFSp3fJGPr+paJaG8j+tx6HD6cl
         cIeFXOQ6fnmFtMdWdzJZ5ppr/nCMdsW6pUo+ekc4V4k1qFXQHobArsKV4peJP6nMCTgk
         k4IWk0QjiQMxhkK53mzqHxIuQi+ws+dyeE8u+xBE1Y5d4+dBIGWUvPJgpmvVV7Vbq0YY
         Xx+X+4W7Sl3AgknnEHQIfsx5GoWrUpXXfMbTHFYqKLNK57FPVLCissKKqw07HoT1JfVh
         ap+w==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779088788; x=1779693588; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XqKh2H5OQ1Dg1L1lKIwZJ6zaaT9V+e6s0GtG2jzMM94=;
        b=SGJVBFkPrvJyOEK0k4BKaBMxEQWG494D7IgbTuBDttjqs1yJDwokh+NJLluFXWPaEd
         v4UwU3lGlyXX36++vqxwBrFkhVdqL7Oiv/0UAW/oKjWZHkpq6xqedBxRyCQPe22a0Nyl
         94d825ZcMZOWHw9K0WeivJqJ0DO6F1uz3c+l5f5v18cN6KrGcyVLE/rZ+TBxdVHZ8XRT
         t5wlO2QVD40/E93J5KVV23I/9W/H/SFd345szr8UBvxCasra9OtSkPKho9fzZJuAdNJp
         /cFlMoHfO49WLuVLYRxQ/jfB+Bulc0GWtc5pUb7hwQO9l3wooAJtIoHi8KRCBM+Fx9Jh
         t67w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779088788; x=1779693588;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=XqKh2H5OQ1Dg1L1lKIwZJ6zaaT9V+e6s0GtG2jzMM94=;
        b=jz1q1T+ny+gmcxH1yT/9jPc+u2F1ZeBVsc6Hxh78vkpl+1n4taW/aHWh51dA/GiUbS
         cp1xRveOYiWqp1JoWs4Lbru2slRBx9F9qc0V/3GkL9/1LI3vm5jgHVRdFNsT3HjMk+9S
         ycoHYiWNZLijchxw+IN1tpjNvCG6EEctnOQJnszlZ1CsNM62DqT5L0+clsGdgx2tIU7w
         LrQ2fQLDUPmdu1Uj20TRdkg0mmZvNDUQShLAOMDENdiAxkR0Z88/Cc2d1g2AiyxgjvJW
         1+vRA0I75Q+GOMLFbCv6SwldYBUIbG087UEI8XrPRNPmcaFmp4aJwnjD7bJ1pRz98Tky
         h2Hg==
X-Forwarded-Encrypted: i=1; AFNElJ8tQRtwYqYcAoc5Aqn+ziH5UqFtfJ70IkntN488cX9nH8HgvzVH9aI2jBcYmcPUmxDCA7/skuCwGHc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz26UeChrpf7W6nr4KB+QQF9aYILpyZaWVmhMS/tLWVTux+wY29
	eAacEff0f0wnrc5azJxpkU53MJVj9SzHLn02LTcjnr4eiRXmUYFeLNjtydwWY1aiO2bllN3VjIi
	+HZU0IjOEKexfIWbdlFPRwZyWu0RQaYA=
X-Gm-Gg: Acq92OFVW0bdFHFQa2Ro85bGwgteR25JtqVjuihkSZ8LGKs9kxkaUofmSHwfRrrf8t1
	7lCj3FgjqvijUohaTN31j5F2RZrByiVQ/IeNGxZL3mNSyp/UVVn8Fb1y1LnDjOVPO12k/yVczVk
	KLC2fbUrGIViSbOf5AXvbX/hZ97Qln5mNDoDmayTuTn5EjC5jpjtXvwzwL0I29CmF2ENrPrZva3
	98RKq1oZU/I0EAIzaGoHHtfyPA5I2KYyGCQQdAIlRAfB/NEKWGDQRJWhKOAeOE4lnyu6DFgcnqa
	ZSIR
X-Received: by 2002:a2e:8812:0:b0:393:e50b:6b2a with SMTP id
 38308e7fff4ca-39561c360d6mr31427231fa.11.1779088787501; Mon, 18 May 2026
 00:19:47 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778925998.git.mykola_kvach@epam.com> <d9db51c5-97a1-4131-8575-dca1ae2cf52c@suse.com>
 <CAGeoDV9DitsH629pWGe+X=0VM+oi1BfSgWMxE+t32CCR5gMgtw@mail.gmail.com>
 <a5d1dc32-c505-4f42-8d48-ba2710d7b831@suse.com> <CAGeoDV_8BNRPy9tbe1ArgR4Lj8YHZPwo_7D59oJJSiSqNQFNFQ@mail.gmail.com>
 <22edbeb3-4b0b-48d4-9873-76bfa31b970d@suse.com>
In-Reply-To: <22edbeb3-4b0b-48d4-9873-76bfa31b970d@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 May 2026 10:19:36 +0300
X-Gm-Features: AVHnY4Lv3pVlfuck1gY7G0IBtYWJgoNUyOjGgPF-y08xcl4h2KigeBkfm2LufmE
Message-ID: <CAGeoDV8ucuZ-FrYe6j_ke4cK33z27=rNZ-9oZzb0R9PxqDJBqQ@mail.gmail.com>
Subject: Re: [PATCH 0/2] xen/common: llc-coloring parser fixes
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org, 
	Carlo Nonato <carlo.nonato@minervasys.tech>, 
	Marco Solieri <marco.solieri@minervasys.tech>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-42698a/1779088788-13175F3B-01CE4FEC/0/0
X-purgate-type: clean
X-purgate-size: 4131

On Mon, May 18, 2026 at 10:06=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> On 18.05.2026 09:01, Mykola Kvach wrote:
> > On Mon, May 18, 2026 at 9:52=E2=80=AFAM Jan Beulich <jbeulich@suse.com>=
 wrote:
> >>
> >> On 18.05.2026 08:42, Mykola Kvach wrote:
> >>> On Mon, May 18, 2026 at 9:20=E2=80=AFAM Jan Beulich <jbeulich@suse.co=
m> wrote:
> >>>> On 16.05.2026 17:03, Mykola Kvach wrote:
> >>>>> This small series fixes two issues in parse_color_config().
> >>>>>
> >>>>> The first patch makes parse failures leave the caller-visible color=
 count
> >>>>> at zero.  This prevents a rejected command-line value from leaving =
a
> >>>>> partially parsed configuration behind for later init paths to consu=
me.
> >>>>>
> >>>>> The second patch rejects empty color tokens.  Previously, delimiter=
s in
> >>>>> places where a color value was expected could be interpreted as col=
or 0,
> >>>>> because simple_strtoul() returns zero without advancing the input p=
ointer.
> >>>>> The patch checks that each parsed color value consumed input.  It a=
lso
> >>>>> adds the missing newline to the DT color parsing error message.
> >>>>>
> >>>>> Mykola Kvach (2):
> >>>>>   xen/common: llc-coloring: clear color count on parse failure
> >>>>>   xen/common: llc-coloring: reject empty color tokens
> >>>>
> >>>> For both of these, a question which isn't even considered in the rea=
soning
> >>>> is whether the present behavior may be intentional. Especially for t=
he 2nd
> >>>> ISTR Stefano(?) not so long ago indicating that the behavior is inde=
ed
> >>>> intended to be this way. That may have been somewhere on Matrix rath=
er than
> >>>> on the list, though.
> >>>
> >>> Thank you for pointing this out.
> >>>
> >>> For the first patch, my reasoning was that returning an error while
> >>> leaving a partially parsed caller-visible color count behind looks
> >>> surprising. If the value is rejected, I think later init paths should
> >>> not be able to consume the partially parsed state.
> >>>
> >>> For the second patch, my reasoning was that the current behavior look=
s
> >>> accidental rather than an intentional extension of the syntax.
> >>
> >> That was my impression as well, hence why I had raised the question ba=
ck
> >> then.
> >>
> >>> The parser comment says:
> >>>
> >>> COLOR_CONFIGURATION ::=3D COLOR | RANGE,...,COLOR | RANGE
> >>> RANGE ::=3D COLOR-COLOR
> >>>
> >>> The user guide also describes this as a comma-separated list of color=
s
> >>> or ranges, with ranges written as hyphen-separated inclusive interval=
s.
> >>> I don't see an empty-token production there.
> >>
> >> What you quote is insufficient to determine: COLOR may be allowed to b=
e
> >> <nothing>. Iirc the reasoning went in particular towards a range with
> >> merely the upper end specified being something (halfway) meaningful.
> >
> > Right, I see your point.
> >
> > The grammar does not define COLOR explicitly, so it does not by itself
> > prove that an empty token is invalid. I was implicitly reading COLOR as
> > a numeric color value, partly because all examples seem to use numeric
> > values, but I agree that this is not stated there.
> >
> > If this behavior is intentional, then I agree the second patch should
> > not go in as-is.
>
> Just to mention: Something like "-5" won't be interpreted as "0-5" even
> right now. Instead it's taken as a single color with value -5U, afaict.

I don't think that is what happens with the current parser.

I tested this without the patches from this series:

(XEN) Command line: dom0_mem=3D2048M console=3Ddtuart dtuart=3Dserial0
(XEN) loglvl=3Dall console_timestamps=3Dboot llc-coloring=3Don
(XEN) xen-llc-colors=3D-5
...
(XEN) LLC coloring info:
(XEN) Number of LLC colors supported: 32
(XEN) Xen LLC colors (6): { 0-5 }

So "-5" is currently interpreted as "0-5", not as a single color with
value -5U.

That seems to happen because simple_strtoul() does not consume the
leading '-', so start remains 0 and the parser then takes the range
path.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 18 07:30:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 07:30:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311585.1581694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsQV-0000bC-0b; Mon, 18 May 2026 07:30:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311585.1581694; Mon, 18 May 2026 07:30:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsQU-0000b5-UI; Mon, 18 May 2026 07:30:10 +0000
Received: by outflank-mailman (input) for mailman id 1311585;
 Mon, 18 May 2026 07:30:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOsQU-0000az-14
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 07:30:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOsQT-008mgc-DJ
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 09:30:09 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ac001-5cb7-0a2a0a5109dd-0a2a4507938e-2
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:30:09 +0200
Received: from [209.85.208.178] (helo=mail-lj1-f178.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ac000-229c-0a2a45070019-d155d0b2a897-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:30:09 +0200
Received: by mail-lj1-f178.google.com with SMTP id
 38308e7fff4ca-393d6025f99so28241731fa.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 00:30:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779089408; cv=none;
        d=google.com; s=arc-20240605;
        b=hBGSJVl5LvazBOsbTK7APQI+aS20slzk864eIxSIYPy9gw85awyR3wWjvfNnwlPwlT
         EAJFr4xLLhqtBrL4fV7EfT5s5VWQtSJF5xGqHJF++hbXFijJy9xPMqKsyqoqV3cbZR+i
         G70Bl8FEt5mcOBgm4/gcOzjesq5v03A1q2YwfdZYZJoU6AfgR54qkyaI6pkvSp8t3p1w
         oFy6SL5AmkUknP+RNSrdsPjmoVkEBegL2msUEzU0CIW72P06JDIdO2j1cf9J+b4/9H0K
         tRvSbmUNYHKqXaeGbtNi/Var2l1CY8YI2Shn360L24xc46lk+VQ6Eg/9LoOC5WTcE7DQ
         TSwA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=GbB0xIaK2vd2KM7jae/EfM0r1j2c34jEMfjm9Ap3LFY=;
        fh=VmRYTqrYqQr1nP/EHKOetkoKt+mAJtoUveNvQ+rA8II=;
        b=imK8sLAAt5rPBiBgkvSyqvAV8L72CwCvg59I89KGuyOQTk7KAsPkIvXbrE7zQUpZ4g
         7vc0ZS7f1wi4LmXPw2ZJgWT1xzoKguFs8z4UxYyxEl5K3FdmK/rMgVA2Hm6futMxeiXG
         vtql7NAVkn7WZ3LQO1sz2PRTOZJsYIuhQ7XNSbza+UNndUi6fw0C3ZwltfWvinh4v/ej
         63WeyaSLxT3fKNbF+DPucO5SbTq/bikH4/VG0ogfF0D+zwvbT1+lzqYIxsp2SrEPXETR
         WnSSCWfFhXra+Q42FFXmVoOutKaELHSCmZt0dCEWLAVQXSQz6gNGwwprHJmVQBp79ni8
         55cg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779089408; x=1779694208; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GbB0xIaK2vd2KM7jae/EfM0r1j2c34jEMfjm9Ap3LFY=;
        b=gl57NG8R2USOxXHI5Y4q0RFW1IuDgnGG7qPxWc2oNnxLBtJAu4Pl/O4i6VQiulcg52
         h0vVthgmPXSRTU8Fy/uI8re+qcjMd/2Kz8TNaj20SQEq2KAFCv7474bCB7Z6fOvCvujn
         kY9VcadNC5wcoaGPgntGXnlrxUfYiogoaJ/C1cj58uzn6sY+FfHsQZQ3pgHhBbRofGWw
         FSEWDxdeWEOui6p697UZSrMyEimwOG7Ba51S1tPls7uqN2GxeQdFDKwjpvWq2yWm3Dg+
         BayH5oXPoGSoos9YPkgc5dWeC/xEqdQTnyPuTPPGAH258vileqNRcXu/4bCp2jD5eQ3Z
         gxDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779089408; x=1779694208;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=GbB0xIaK2vd2KM7jae/EfM0r1j2c34jEMfjm9Ap3LFY=;
        b=UaUJujlJQz3qf5oDR5BaENRC2XWDNkllmJVcu5kvONB0/Z4D9HtB4r0n0e7WUVHR0Q
         Q+Q0pHD/qYCb6WOqKsOdIKLbM8NB/Cu7A8wIlueH5vI/rpMUAj82f0I6FKRDGExfktCc
         mAhjnCj4XcvIOwDwSBAqftcjkUGr8Vt4IQg49SwnEnR/KKCbACxNO9SXEYly6LzLAmYJ
         11pxJahiBqphMLFZHeIkjPh+wGUDWQ7dQJBUa8sQxweaR9uWMNp/2GnO61hBfWMNhH+Y
         AoBpcwPbzSJHjX//WuoE1L71C70iDbj6dhkyxA68A7F2tyuu8aYFebwKGfxWRj5Ye055
         D/8g==
X-Gm-Message-State: AOJu0YwntbNujzKEd93gfKjT57EC6VJC5vZJX4EMAJBQYa9SY4wFi9EG
	1cDfPNeE6HI0hiSO4obFHjxM4R/LrX0A78bGU2TWXUgjIyWs+tWGNx163r5oquF6B0Td2KNwMI6
	3DfauJemzAj4tcdAYATJYcrzUs2tw/u0=
X-Gm-Gg: Acq92OFcTe/F6GJtpggJpCjAQN6bKUGwNkR7EqYBW1DYjyyicSlv3KzsK4ETyv2w/9d
	hAqr8tX/a9aVDWx7b3cefUnKgN/PLL91NbyfPyXrUY59AIWyRXspZoRampe3zey08bXGdNsSDUH
	rBY4rpNg9JaGCGZOjDRdWZV3u4YfEp5Z+3Bckc9AaGWNhB0Wns0htA1czY37MaB9xsR7RJeRraS
	eJ281M8M3hPzrRaMNi/i5uvdJcMrmexS6B6yI9SsaoY1gg4T7nr42VQHuiiL8LbETbC1HPh3BiA
	YgnmpHPYCFWzT3c=
X-Received: by 2002:a05:651c:41d5:b0:38e:8357:c5ae with SMTP id
 38308e7fff4ca-395609c0ac6mr40375261fa.9.1779089408290; Mon, 18 May 2026
 00:30:08 -0700 (PDT)
MIME-Version: 1.0
References: <20260518070524.19813-1-luca.fancellu@arm.com>
In-Reply-To: <20260518070524.19813-1-luca.fancellu@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 May 2026 10:29:57 +0300
X-Gm-Features: AVHnY4Ii4E0urLp1QprBh4czoFh0poZJ63kuZ7e6h6SWp5ENyorLcNGjFhVduas
Message-ID: <CAGeoDV8XLgPCVmK0uBxmYFTCGf9f6wYJqMB1H7WJHT_uDNqM2A@mail.gmail.com>
Subject: Re: [PATCH] xen/arm: gic-v3: Fix redistributor wakeup polling
To: Luca Fancellu <luca.fancellu@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ef75cf/1779089409-2176AC48-EA80748B/0/0
X-purgate-type: clean
X-purgate-size: 1702

On Mon, May 18, 2026 at 10:05=E2=80=AFAM Luca Fancellu <luca.fancellu@arm.c=
om> wrote:
>
> gicv3_enable_redist() clears GICR_WAKER.ProcessorSleep and then waits for
> GICR_WAKER.ChildrenAsleep to clear, as required after waking a
> redistributor.
>
> However, the polling loop currently uses "while ( timeout )". Since
> timeout is initially false, the loop runs only once unless the timeout
> path has already been reached. As a result, Xen can continue before the
> redistributor has completed wakeup.
>
> Use an unconditional loop, matching the surrounding timeout/break pattern=
,
> so the code polls until either ChildrenAsleep is clear or the deadline is
> reached.
>
> While there, also fix the timeout message. This path polls
> GICR_WAKER.ChildrenAsleep, not an RWP bit, so "RWP timeout" is misleading=
.
>
> Fixes: bc183a0235e0 ("xen/arm: Add support for GIC v3")
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
>  xen/arch/arm/gic-v3.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index 7f365cdbe9df..bb946dc11375 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -828,11 +828,11 @@ static int gicv3_enable_redist(void)
>          }
>          cpu_relax();
>          udelay(1);
> -    } while ( timeout );
> +    } while ( 1 );
>
>      if ( timeout )
>      {
> -        dprintk(XENLOG_ERR, "GICv3: Redist enable RWP timeout\n");
> +        dprintk(XENLOG_ERR, "GICv3: Redist wakeup timeout\n");
>          return 1;
>      }
>
> --
> 2.34.1
>
>

Reviewed-by: Mykola Kvach <mykola_kvach@epam.com>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 18 07:35:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 07:35:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311592.1581703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsVy-0001Ae-Jw; Mon, 18 May 2026 07:35:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311592.1581703; Mon, 18 May 2026 07:35:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsVy-0001AX-Ga; Mon, 18 May 2026 07:35:50 +0000
Received: by outflank-mailman (input) for mailman id 1311592;
 Mon, 18 May 2026 07:35:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1wOsVx-0001AR-6P
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 07:35:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOsVw-00EtmZ-BF
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 09:35:48 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a0ac14b-e002-0a2a0a5209dd-0a2a4506b362-38
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:35:48 +0200
Received: from [52.101.70.102]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 6a0ac153-7371-0a2a45060019-3465466674fa-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:35:48 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS8PR03MB9437.eurprd03.prod.outlook.com
 (2603:10a6:20b:5a1::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May
 2026 07:35:43 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.21.0025.020; Mon, 18 May 2026
 07:35:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=imSmn0aBAa4MY1d8Xlkj+kbKVhJIwekOcwI+UtvQyKyk8dHrPY49oQVMfM9PQ465U4z2zcXXmE/4xXBaFeOfHJXZngRPc2A2ZpBrgSJheLb6X2pyiLBLSjDb2my2zs8kTxunZUswgLWyzplsuIkf30lZtDzqUStJvyppxN7MUZXIoPMQ5aqtGGGN8O7eJz6B/qbufaPr7WlCjDMe4/wSQ9AQnVyemxH4XthzoKlcGnykfI4KEcVmjgaN3JLmKuD8MzoS3bkypptdAL+c0ikuaOPOCTeH5wBSjBkI61FKfcLf0xvMYVJ7v1Ek+2YbxiwUPuSClpKm+XbCcEgtaCgOkQ==
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=aDy8M6NJWv0EsXFI4wgiUumdAxlEbJiRXMcEKRjhk68=;
 b=kPYpyv6lsr+EppGwlftuCP0RNkFkTQZOGNdgre/3XbRw58Cvtn7RBOHUCtyOtc7yR6JV6/KDqVeW65jm1lLHC9IFRNCzN7ScJCvra15aNbss/V4uY/Dsn35Yns3FdkDEGDx6qrVClqfYg9kwAjKf06acZDJlzvc7MR4HKCQD6zTjoafe7w2OR6AeSN1fSeh+x5CWfE4m0QvsgEng2jGdZ0eBe4WGFhhHvzkrhM2hz7s7crP1jBvlavsvogh6GRkrr9r3y7IPNEjG21ZKY3KOiqBrOhL1dgqnvU7/sDxqeEeenjCI6+JAgTdlSfsWFDoNLk6H1htoZ9iJ4zyuk/eVfw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aDy8M6NJWv0EsXFI4wgiUumdAxlEbJiRXMcEKRjhk68=;
 b=dxwn/Ekj5PFVA8TAZzELlsrBiS6EvsA5wFugseZk3lK51sh43GR8CrIkMNY7KgLyzUV9SYfkgNcuvhnOHV25YbkHKJaYaNGeDz2dmmZbwMZNps6kHDQScO98IK+hY3/JL02Sl/I2AqgkDaUWUW+YU24dY2DUD7fG1Q0K8mt8PYDCuSmpIxqjgRjfguoXtgOBHO04kL8xdvM3S9DgDbuwRT4jCCKYsPVuO7xAVWCWr+Rv+K3HGPKQ9c3v9Vsn296QsbQbZ/RRToBO10+rBb8GwmqbJu9IBfhHPJf7reFbKYQuN23MZkjjSWoI8dx/HVhlZDs85flOJwXDSFPbEvipUg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH] tools: Fix helpers build
Thread-Topic: [PATCH] tools: Fix helpers build
Thread-Index: AQHc5pjvZr31VHZpA0e03PtkmtpKMw==
Date: Mon, 18 May 2026 07:35:43 +0000
Message-ID:
 <7c5cdad207571e98ad324f07c7c754f79e8ce044.1779089580.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|AS8PR03MB9437:EE_
x-ms-office365-filtering-correlation-id: cf85fec4-c2ba-4fc7-214a-08deb4b0119f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021|11063799003|56012099003|18002099003;
x-microsoft-antispam-message-info:
 1793cNklzbGCLy5y5OOPOmaenZ2BJ8pAzmrdlmATaLm4L4ZZyRy+DejCS+NWq6qgALBYm0S9D6z3zIItr81EWGbbyFL+GxPdelZMTVHUqaa7JRRK7ADSKIoTwQ6wNWHcXooQ4KqEWDhEfeRd5/oLNE2lXrGqFKv4jEwVq4nhl2rqKMdi71EJO2ibOlfIVI4MHT/84vBBb8U6zOZYRNQdTPlaUOwJCd1qIhYFMxRxMDzp++VambqbntbNFOQwfaUIidJj0o4S56l11iImDXRuEkTERagz50Fx3LCizMT/3rNr3l2fDieYodcJKmV2EKDuAvXG1JgMaqt2AqmU9mPjcZpGXdQvWCqatyZFaLKihFgIgLQ2eXOxiFZoD9eG2vKmhfbhl7Wjjvz16QMzDF8n5bme37JImfS2eDVP1NyxyRQvbW+/NeQegXuV1l/DWbxvfJ0Mwrgc59JT299qHMavzBSHPpUzIrZneMyMi+4rLAb9gVjfB92MgOic9Dm47lWSwbkbix9ZCceiyRu5zi9YigGMhfL7Tcamgq83TKwaEhwzsd6mOKMJAbqMiRxZBBxbGEIjj163Nqmw23gQqY5MHmQyRe3Q4O2zocxw/MwzgzFZqQzbWL0gk/CMeTE/hL/Bie5ZCOb1ccilfC6bbtXcKa3Ng1CAEt2MukPhb3/kD6pMOLarQpMSOwB83PTOMOp72cwl88X0PHcG6R4pOxTJ92U8qJkI54srX58baWKO3xot4Zq3epBFqW7SoNtww1gv
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021)(11063799003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?mZw22Dauz0m3b03bgKDSinxOIaPz6GYIftdVHgvQ2lUNw3qTf+GBbIzJ32?=
 =?iso-8859-1?Q?4R/afCnn4cV8oXkLx5J5C9LGIMAO3dkx15En31lxK2n1KMeswlddl3HKmk?=
 =?iso-8859-1?Q?fgU+r9C0lx5Jdfi6rANIKn1s8bn7FwJ0onQAGq85qwiNaWPTlACitp0/o2?=
 =?iso-8859-1?Q?28lG5Y8kicQn7F963yjmhPugE6Tie2JlAlqSyKprC/e0YVyRSW0//Jv5/J?=
 =?iso-8859-1?Q?nplEEO9Ikk9bWk4v7/FIaR6W8h5rIQ/FdWTnUzLL0dteez7zNLUsoaNRc6?=
 =?iso-8859-1?Q?YFL9V3IlI0QnY1CCOiFHbpJiaMNmZXxTYkf4M64smOBzLDS/u56Ftg2h7g?=
 =?iso-8859-1?Q?YIrVin1tveJYSqGMHjVoY6LGLLBMV3tDH8ZemYUgio5WhO7a2y5tAo4hqJ?=
 =?iso-8859-1?Q?hPI7xzHH2/KIY8vn4QszqEVPYZWwNCOGQMpQb0NzPhDeGyqMAgodpAS4Xc?=
 =?iso-8859-1?Q?j+DfSETznSiRSGoMXI3s3/PYAxoih+53GkF6z0eO4mUHz3e6eZX48rOusE?=
 =?iso-8859-1?Q?4Oj4wmXCLpp/GuaDgzAeMFxPFgYPPqqFfrvaYZtP79inv6uXtJ6pxJPaBo?=
 =?iso-8859-1?Q?5tsJTaokOz1q7+X/HnB406C7kj8RdmlKmXAWHuQFCv3bx09/Prp2H/0fgn?=
 =?iso-8859-1?Q?LKISZRNqQrkQMqqWPm1FxeFOBT0lzibdTREgiVw0Nk0ucIODdRW/6NRX8W?=
 =?iso-8859-1?Q?0Wxs/juHhAId/kk73bFjsKPXwFd16MrGKC/hyrfXIqtoEXMzvYKjIzeY73?=
 =?iso-8859-1?Q?skjAtQdsALEnNu/0vfyjZvxDDjnq0brVsLW5CE/2Az+DbxmDbQl2hH/Wy2?=
 =?iso-8859-1?Q?6KPD6prnHvIZq9xJVVOgAjTqdGquKzDnpZzxSUj85Fm3IGCFnF5afeHMYc?=
 =?iso-8859-1?Q?VnQTAvefq3hrfeXsRkt3q70gfK0GWcDGQiW4NpflxvqWG5wXXyMBwMk5ff?=
 =?iso-8859-1?Q?clzwyQ/WWIkatsbyJeBR7YRpeVUUGmpObwANay/z4TqlQU2m4EWSt2Ng3o?=
 =?iso-8859-1?Q?qU/QjgcyfUgNfIjbbKSmUFbhH+8J/EDnEWlqnEtT+dFbScjqCkMxpZCypt?=
 =?iso-8859-1?Q?jqRAgPIZUPeeDtyTBO5FEvReQV0Imql9f+Lci21s0qja/21TouKO9lT+Dj?=
 =?iso-8859-1?Q?5hq39FeOmhp4Iid3N5/lsOLp4K78/hbCBIu1nI71AvQJsn70bZDrbmBcAK?=
 =?iso-8859-1?Q?YXllCccQ4urOHwta+g0/V1HTHnQskpCId+u0WLsWawp/yieI6Cdsb/yTYc?=
 =?iso-8859-1?Q?bLfywugIpY2O4YTbrNnJEd23UKxNhDskUyIRF8FoHuJLR8Ss8SqaxKR+M4?=
 =?iso-8859-1?Q?/B7H6+pmvQeMP2l2P0lNaVxdDbRU73f+F/nlTf5R5YGZSbIY1RRDiLvnBj?=
 =?iso-8859-1?Q?et2UJlTGUniKUr0LPJn1wPPa78NFTvNnA/UD4zB6M8B8pLn3oyI+n+JdpP?=
 =?iso-8859-1?Q?yT8j6M6EXfijlikXqZ80aQsct7lgIm9vnPw5g8S8ZsaAkhOZkmkVOyz55J?=
 =?iso-8859-1?Q?Zg6l4ceJk/Q3OOpc96vwbmAjtTAI/Zp3c+wyjcVlY7bK0tP/WzvQz5lCZ1?=
 =?iso-8859-1?Q?nBR43EfY8z/dbGXWprkHBFA7KZyELALhNJDw0MDAghnft9fEG1qu4oojKh?=
 =?iso-8859-1?Q?5s9Ry5iKCLIzOjh1m8+r1FJbXxlmoDY4E250TFruTXH+8h0tktdUq6TO21?=
 =?iso-8859-1?Q?kUgT4J0/f792huuIovxy0SWARC/R6lCn/07QE4+hWVybkuwNGVWhSj2wEX?=
 =?iso-8859-1?Q?fX7JwZSU5xOScJEq+GTnevg3QzRBhs4GwFSIX9nnpjdjSGHRx/dudHF8OT?=
 =?iso-8859-1?Q?yBMhD5X0uhfh8xDxMaEAh5fxguMhvms=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cf85fec4-c2ba-4fc7-214a-08deb4b0119f
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 May 2026 07:35:43.5685
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: wEuAqv6UBiA1stwYNIba0/ovrjY107sxvNtVZD87XYnNSOrYYSFqONVWAbVFRccNfndk1/84IsDGc9Rftn7Kcw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9437
X-purgate-ID: tlsNG-16d1c6/1779089748-86369D75-06FA5243/0/0
X-purgate-type: clean
X-purgate-size: 581

Init helpers sometimes fail to rebuild after switching branches,
which results in runtime faults.

Fix this by adding missing DEPS_INCLUDE to the Makefile.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 tools/helpers/Makefile | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tools/helpers/Makefile b/tools/helpers/Makefile
index 8262d9e75a..11db7d8982 100644
--- a/tools/helpers/Makefile
+++ b/tools/helpers/Makefile
@@ -64,3 +64,5 @@ clean:
 	$(RM) *.o $(TARGETS) $(DEPS_RM)
=20
 distclean: clean
+
+-include $(DEPS_INCLUDE)
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon May 18 07:43:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 07:43:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311602.1581713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOscz-00034F-ED; Mon, 18 May 2026 07:43:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311602.1581713; Mon, 18 May 2026 07:43:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOscz-000348-BC; Mon, 18 May 2026 07:43:05 +0000
Received: by outflank-mailman (input) for mailman id 1311602;
 Mon, 18 May 2026 07:43:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wOscx-00033w-61
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 07:43:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOscw-008pwP-Ef
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 09:43:02 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ac302-bab6-0a2a0a5309dd-0a2a450aec3e-8
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:43:02 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ac306-56b3-0a2a450a0019-d155802fe474-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:43:02 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-488ad135063so12742675e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 00:43:02 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe537c516sm255987785e9.13.2026.05.18.00.43.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 00:43:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779090182; x=1779694982; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RaQjgne6AC6erMinKaTrrRsL+kpXXYaHx2YuS5v9D5s=;
        b=akiQzxxKc1NDy4zbYFFf7WsRp4ii8tklvZ6CBKPOyBEBdQH4Q27AQuUsT45Hpre9Q0
         XYiZZvhTmC1wBJJOdHZAAsTB/3ABuX/A2rKms9VC8zBUuMExPC7HkcXexA4i/lh1k2JR
         /qs5Q7WWP+c4NEowilNywICGRUKh1BN3bBRluSvdbzOLKwhD88VMwzTJ3AlWpf4KW7ps
         HpwyLtEjPft1mS+v/wuHkUHtRNUcYNK43LRynB4P2JVFhEohiQkaNCFsXKX6/p+YNDRs
         nxHu+CTkm4aeZKJOPC7oBCQ95qB2SAgozQc1GiUozdWf/alajX3HnOlBXJiXzRBFzarb
         Wn5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779090182; x=1779694982;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RaQjgne6AC6erMinKaTrrRsL+kpXXYaHx2YuS5v9D5s=;
        b=qE1xI5BJcVYyLzi4+BrRsw815LROTSmt3sBx0LA82VQA+HjJVopNUfmmTlgdNZ5NOL
         1D5sRaLmJFwWsu68gG1OtS6+R8DochsVMvy+LU8kFOrq4cQsrLuSGqVT6/bWd52nF6bH
         fnYFZ2WRWdfHpz0MB6vYZmUV1QYZldYepA07mB0rTJOwyTGEJTVJLakSbzHKm5QNGEsG
         fs687znQV2V/P/nuDDL0eEQ1xPzSS0FSFhHwsgaD6d2ACuUiSH+zJLDqJsu3VJbSTj8g
         8Jn3jS9asjRPceYj3qlR5HUuck4ynaLp3EmBtoSxHYK0K6+eWE23jUlbtd940JJwgXmM
         y2IA==
X-Forwarded-Encrypted: i=1; AFNElJ/PuFk2giewrXG8xqCFCwBpniMxQcWEJtMOA7kTpM9FHaT0fu4wPu6IialNKqbvMCfPo/KoCvAF2Ow=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyaAFJMmwx4RNgv1DujL2peX1ptUxrljOmRg5D4eTHxHAX0SsP7
	gd7afm21s1GMBfY2OpYigU+/A/65GmvD8yzV8sCOn53siNEKjP4gLUbFTmniEBrHhg==
X-Gm-Gg: Acq92OEU9q674qD3hH06CQDcZCdLaeEUZyF6Z59GnjrBkRYKJ0gvhiys+bb+gzBgAG+
	nRWh9gb/7kBJCk/Zajkb9BmA1Hs4qS0RnS1PPWmk2NwB8hCuANmcB/ykwKrfdQStzMUK5sH0GBe
	oV0B49N5v7VSht48GR2OXmE+MndjZYjVG9KkX9e+QM5ubjJD2n3qVPyRiLVV5rsjpA8Ro5PCVdK
	rGZzAvxDyhJp7iCmhAEbZh+U0L4A/7SjdfcSaOw7L1LeiBW/4PthYNoxJs8cuTDi1LMAxeaLFhG
	B3oXXkQvfQacTqSkBeHaGYbdOoe0dAeRcty33/0NhPfM0bETTWetCudE5HVZUDKaMhF/bn7D/QH
	+LSJOBqYUG4R7OtN5ShOhZr3ZQ+v8FKEiSvK657KTT7Fa7qlHqi/3kVImvu8C35aSs4aSKdkzjs
	4lDsGx/pZTDpJnPXzczoOGzIX7VA64NVLR5zYxqSoDbWy4lcTQzNXaZIUwuwqaUVGBJfql+Uemj
	1urY6oW4vz2gGt8pl6qPDS1qQ==
X-Received: by 2002:a05:600c:609a:b0:490:b07:5fd1 with SMTP id 5b1f17b1804b1-4900b076103mr52495775e9.11.1779090181702;
        Mon, 18 May 2026 00:43:01 -0700 (PDT)
Message-ID: <8156a887-9069-4f9b-8107-b4dbd2cbdb69@suse.com>
Date: Mon, 18 May 2026 09:43:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/2] xen/common: llc-coloring parser fixes
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Carlo Nonato <carlo.nonato@minervasys.tech>,
 Marco Solieri <marco.solieri@minervasys.tech>
References: <cover.1778925998.git.mykola_kvach@epam.com>
 <d9db51c5-97a1-4131-8575-dca1ae2cf52c@suse.com>
 <CAGeoDV9DitsH629pWGe+X=0VM+oi1BfSgWMxE+t32CCR5gMgtw@mail.gmail.com>
 <a5d1dc32-c505-4f42-8d48-ba2710d7b831@suse.com>
 <CAGeoDV_8BNRPy9tbe1ArgR4Lj8YHZPwo_7D59oJJSiSqNQFNFQ@mail.gmail.com>
 <22edbeb3-4b0b-48d4-9873-76bfa31b970d@suse.com>
 <CAGeoDV8ucuZ-FrYe6j_ke4cK33z27=rNZ-9oZzb0R9PxqDJBqQ@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAGeoDV8ucuZ-FrYe6j_ke4cK33z27=rNZ-9oZzb0R9PxqDJBqQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1779090182-7D3858B7-A2147A74/0/0
X-purgate-type: clean
X-purgate-size: 4312

On 18.05.2026 09:19, Mykola Kvach wrote:
> On Mon, May 18, 2026 at 10:06 AM Jan Beulich <jbeulich@suse.com> wrote:
>> On 18.05.2026 09:01, Mykola Kvach wrote:
>>> On Mon, May 18, 2026 at 9:52 AM Jan Beulich <jbeulich@suse.com> wrote:
>>>> On 18.05.2026 08:42, Mykola Kvach wrote:
>>>>> On Mon, May 18, 2026 at 9:20 AM Jan Beulich <jbeulich@suse.com> wrote:
>>>>>> On 16.05.2026 17:03, Mykola Kvach wrote:
>>>>>>> This small series fixes two issues in parse_color_config().
>>>>>>>
>>>>>>> The first patch makes parse failures leave the caller-visible color count
>>>>>>> at zero.  This prevents a rejected command-line value from leaving a
>>>>>>> partially parsed configuration behind for later init paths to consume.
>>>>>>>
>>>>>>> The second patch rejects empty color tokens.  Previously, delimiters in
>>>>>>> places where a color value was expected could be interpreted as color 0,
>>>>>>> because simple_strtoul() returns zero without advancing the input pointer.
>>>>>>> The patch checks that each parsed color value consumed input.  It also
>>>>>>> adds the missing newline to the DT color parsing error message.
>>>>>>>
>>>>>>> Mykola Kvach (2):
>>>>>>>   xen/common: llc-coloring: clear color count on parse failure
>>>>>>>   xen/common: llc-coloring: reject empty color tokens
>>>>>>
>>>>>> For both of these, a question which isn't even considered in the reasoning
>>>>>> is whether the present behavior may be intentional. Especially for the 2nd
>>>>>> ISTR Stefano(?) not so long ago indicating that the behavior is indeed
>>>>>> intended to be this way. That may have been somewhere on Matrix rather than
>>>>>> on the list, though.
>>>>>
>>>>> Thank you for pointing this out.
>>>>>
>>>>> For the first patch, my reasoning was that returning an error while
>>>>> leaving a partially parsed caller-visible color count behind looks
>>>>> surprising. If the value is rejected, I think later init paths should
>>>>> not be able to consume the partially parsed state.
>>>>>
>>>>> For the second patch, my reasoning was that the current behavior looks
>>>>> accidental rather than an intentional extension of the syntax.
>>>>
>>>> That was my impression as well, hence why I had raised the question back
>>>> then.
>>>>
>>>>> The parser comment says:
>>>>>
>>>>> COLOR_CONFIGURATION ::= COLOR | RANGE,...,COLOR | RANGE
>>>>> RANGE ::= COLOR-COLOR
>>>>>
>>>>> The user guide also describes this as a comma-separated list of colors
>>>>> or ranges, with ranges written as hyphen-separated inclusive intervals.
>>>>> I don't see an empty-token production there.
>>>>
>>>> What you quote is insufficient to determine: COLOR may be allowed to be
>>>> <nothing>. Iirc the reasoning went in particular towards a range with
>>>> merely the upper end specified being something (halfway) meaningful.
>>>
>>> Right, I see your point.
>>>
>>> The grammar does not define COLOR explicitly, so it does not by itself
>>> prove that an empty token is invalid. I was implicitly reading COLOR as
>>> a numeric color value, partly because all examples seem to use numeric
>>> values, but I agree that this is not stated there.
>>>
>>> If this behavior is intentional, then I agree the second patch should
>>> not go in as-is.
>>
>> Just to mention: Something like "-5" won't be interpreted as "0-5" even
>> right now. Instead it's taken as a single color with value -5U, afaict.
> 
> I don't think that is what happens with the current parser.
> 
> I tested this without the patches from this series:
> 
> (XEN) Command line: dom0_mem=2048M console=dtuart dtuart=serial0
> (XEN) loglvl=all console_timestamps=boot llc-coloring=on
> (XEN) xen-llc-colors=-5
> ...
> (XEN) LLC coloring info:
> (XEN) Number of LLC colors supported: 32
> (XEN) Xen LLC colors (6): { 0-5 }
> 
> So "-5" is currently interpreted as "0-5", not as a single color with
> value -5U.
> 
> That seems to happen because simple_strtoul() does not consume the
> leading '-', so start remains 0 and the parser then takes the range
> path.

Oh, I didn't recall this incompatibility with strtoul(). We also don't
permit a leading + there. IOW the behavior of the color parsing would
change if we made the functions (more) compatible with the standard.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 07:53:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 07:53:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311616.1581722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsmb-0004uV-BA; Mon, 18 May 2026 07:53:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311616.1581722; Mon, 18 May 2026 07:53:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsmb-0004uO-8O; Mon, 18 May 2026 07:53:01 +0000
Received: by outflank-mailman (input) for mailman id 1311616;
 Mon, 18 May 2026 07:53:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dongli.zhang@oracle.com>) id 1wOsma-0004uI-9w
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 07:53:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOsmZ-00EyT8-M5
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 09:52:59 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dongli.zhang@oracle.com>)
 id 6a0ac556-e002-0a2a0a5209dd-0a2a4506eb6e-2
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:52:56 +0200
Received: from [205.220.177.32] (helo=mx0b-00069f02.pphosted.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dongli.zhang@oracle.com>)
 id 6a0ac556-7371-0a2a45060019-cddcb120411e-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:52:56 +0200
Received: from pps.filterd (m0246632.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64HNJD3J2322921; Mon, 18 May 2026 07:52:21 GMT
Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta01.appoci.oracle.com [130.35.100.223])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4e6gxwsqtd-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 18 May 2026 07:52:21 +0000 (GMT)
Received: from pps.filterd
 (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.7/8.18.1.7)
 with ESMTP id 64I7oaGM005686; Mon, 18 May 2026 07:52:20 GMT
Received: from ch4pr04cu002.outbound.protection.outlook.com
 (mail-northcentralusazon11013069.outbound.protection.outlook.com
 [40.107.201.69])
 by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 4e6f1dv765-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 18 May 2026 07:52:20 +0000 (GMT)
Received: from BN0PR10MB5109.namprd10.prod.outlook.com (2603:10b6:408:124::23)
 by CY8PR10MB6875.namprd10.prod.outlook.com (2603:10b6:930:86::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Mon, 18 May
 2026 07:52:16 +0000
Received: from BN0PR10MB5109.namprd10.prod.outlook.com
 ([fe80::d9fa:7ad2:804b:bb83]) by BN0PR10MB5109.namprd10.prod.outlook.com
 ([fe80::d9fa:7ad2:804b:bb83%6]) with mapi id 15.21.0025.020; Mon, 18 May 2026
 07:52:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=corp-2025-04-25 header.d=oracle.com header.i="@oracle.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-oracle-onmicrosoft-com header.d=oracle.onmicrosoft.com header.i="@oracle.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	corp-2025-04-25; bh=2DYLrisA9YHjHvUtgPqN6/ILH4lyDfLYR9ldEricVTk=; b=
	ALpvJanNJlTAIqjPWx5wrFrfij11PrIrB4DvTkN4EVS6DP5jO7FSVz26NIV0cyph
	AhFs8AMXKSGMieWKKanLMs4IgauDkjS6yv0jFv/YuHtN6gnZtY3d6nHr04ZB2i+t
	UjjCByRJHSRPonxkqgS2zbraIaAG2uIJ81UIvV4QZFIy7tVt9lQFPWj7pJS5lsXt
	gvr/ftSIE6jbNrIHPAs91Nb8UCxRJEo6Ch+Ep/aK59HbS1eIOvd9ctdesfSl2YTa
	HF/lQnppz54TP6miDom6vMGS0Ht3jqVUfOWAud3W6Gw670iKuOkQEha/rcz/KDaB
	uHpmKiUvMZ/xmYJeYXL0kg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Irxan44eqM6YFwtiXELYu2uswYnXajtF2bPhyO8bLjW7io3szfU6HAhkUMxt99fdI4swx2e7hDMsuNWQIYTamjUMlQQyiy2V4AH9juRB5eb4WUlurCNUOyWTW/ZCzecUPIhKl8nL2bav7b7QH4Y/WPqZSkvjmBz2c3+8pflpSY3Cc1PciwXZFxNNXWPW/ElwXLcrh+HBkXu8bCJCpOfXUsqk5I5ge6O1H+Foox9IrlR20ItNLqgcmWqJ7kFSn7feCTFhiCIPHW5RBc59P3EU/PgwjtfQJvewlpdO4dlOg4WJnC4F5WlPxFX9/pXEmqUbZdpdSFvTKqngSWDpJ85s6w==
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=2DYLrisA9YHjHvUtgPqN6/ILH4lyDfLYR9ldEricVTk=;
 b=JsnYF6uWWyTVBz8wSMPkPgIyOkV9JraT9/JWa6CRvdwUuhFZ39yNUy1pmezug7OcT3tLOicPsvN1WXiUwXH6LVbSX72CcIx30kaVmMToJjVnosQCDj3HLX4HDTHXoC+xZinilcswPBBXWhjaFYtL+4Ak80Chp5PiQUNfz01IS59nKho8k0qytUMfNgoodMOlBKNgQUOUFyS/E4QPDk90lCt/zZFdOWsxC1V+58o5hDpBUd64ecis0rXjGsEhHYUI9uGkDR/RNjBykBJHTac45AvWlbi79kWpcMoJKGRsYSIfC9Ur/kikSa5MonkKApF9IqDkrPU80AdQvbsxFGl3nA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2DYLrisA9YHjHvUtgPqN6/ILH4lyDfLYR9ldEricVTk=;
 b=mYz6gwAyzAcz5ffFMf6J5sWNKqFrB2TSuaESndF72haOL22xcNM9fJ60ypmhyouWoMZx6AoLz9JpmxHet7UbubLbhmWYDo6FEjYaSu4XF+M9CVcGz3SFJyvoiRzKMVu88Z+j+i8ZgK2tB1+TwDxyUxyWReU79sW2eC4f9noEpew=
Message-ID: <0ae8e471-db7a-4842-aca4-8ef643acde8b@oracle.com>
Date: Mon, 18 May 2026 00:52:12 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/30] KVM: x86: Add KVM_[GS]ET_CLOCK_GUEST for
 accurate KVM clock migration
To: David Woodhouse <dwmw2@infradead.org>, kvm@vger.kernel.org
References: <20260509224824.3264567-1-dwmw2@infradead.org>
 <20260509224824.3264567-5-dwmw2@infradead.org>
Content-Language: en-US
From: Dongli Zhang <dongli.zhang@oracle.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>,
        Shuah Khan <skhan@linuxfoundation.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Sean Christopherson <seanjc@google.com>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        "H. Peter Anvin" <hpa@zytor.com>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        Vitaly Kuznetsov <vkuznets@redhat.com>, x86@kernel.org,
        Marc Zyngier <maz@kernel.org>, Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Paul Durrant <paul@xen.org>, Jonathan Cameron <jic23@kernel.org>,
        Sascha Bischoff <Sascha.Bischoff@arm.com>,
        Jack Allister <jalliste@amazon.com>, Joey Gouly <joey.gouly@arm.com>,
        joe.jin@oracle.com, linux-doc@vger.kernel.org,
        linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-kselftest@vger.kernel.org
In-Reply-To: <20260509224824.3264567-5-dwmw2@infradead.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BYAPR05CA0038.namprd05.prod.outlook.com
 (2603:10b6:a03:74::15) To BN0PR10MB5109.namprd10.prod.outlook.com
 (2603:10b6:408:124::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN0PR10MB5109:EE_|CY8PR10MB6875:EE_
X-MS-Office365-Filtering-Correlation-Id: 488aba30-5ddb-42ca-083e-08deb4b26135
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|7416014|366016|22082099003|18002099003|3023799003|4143699003|56012099003;
X-Microsoft-Antispam-Message-Info:
	8Vg19lPJm9hKzndgfuqY/3b3gFc9xikWjVZ8siJNcGDxO0lSfahYzLEupACnfVCIVnZFPO3QdL2K4M+IhViNMclCrDPmgxXTjEC7ONLSfvDWCqY3jqk8G66uPktxtCU8HWHPui0hcAzr/ffedXvue2Cuvfx/vFUbjTuEjsqDtNHYKagnDC8vPaDnR24e93+SzQi1QV+TT+98mLbFPoySF21qev/LJDGF2i221KFZRptJIowCmN+mFHF0J9HijaOgX/4kXSGW+XUeSEXWL9CaFBovna1hYThIfyh5vN5VbJT8mpORyAe6pLD9mmddU1x+Vp4sHXejEJ7pCVr89oqlCu9fMyx7S9C02u7JmiNqy5+47hLKViOA9ZokLOzKK1bf7j0h3RUNHrZvvVPgcvaYrDmFeugcKim11iviigCqF8VGW89S70EMAYlBAmf0ceMOCGO560bG2wov9QS+g4Oj28qGyKMEG/ep/3uhfxf/V7K8aODZeQY9NMJR5B4jZRpLkYWDkHb0aHsEp9uFDnC0ZUIR3vP9LmyrlZ8cI4kcadPob5IQCOz7Gvb8Hferse50KbadT4R8zWWhdp1QfXzN5DP/YDlSanmSJmsiyIPdb6GLaoFfmNEn/ajNyil8maCXgM+c9A9DFFeZzu/O2JH5oei57CifCTh4/ZNrTD0aUZTD8RrC7bz57nX5eojPjsmM
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN0PR10MB5109.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(22082099003)(18002099003)(3023799003)(4143699003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bHlGVUNneERGQWk5M2NMckVFTCtDSzJGUU5FZVM1OTd0eG9XRFk5K1c1VGVj?=
 =?utf-8?B?SkdYWlNCeHJtdzNueWFKQkFocmFwZ095TmFUNVRKL1pUWG5qKy9lYXJxaUxT?=
 =?utf-8?B?RWd3cm9VWGo3cDZLTk5HWUI0ejhYSlY4Vm5Qa3l1bHpNTHpDU2Q4ejN0ZEtJ?=
 =?utf-8?B?UTk3UXlIeU9saklFYktnM2RXcGZ6VG16U0Z5RHhSTllTektFTndsa1hFai9W?=
 =?utf-8?B?QStXckdNSnVsS0FkbW5vZ3VNQ0FrWXhnR3FhbDRpb3RobFBZdmdlb05MeDdN?=
 =?utf-8?B?RjJjYzUzQWRTWks2Skc2Yk9uVFIwU25NYzZtTjNjTWZTclNQSnlCbldmdVM5?=
 =?utf-8?B?MEZObzBHbHBHT2VMTHNYUkYrbW8rQWNpM3hHOVl1VlhpT2JLeGpJU2hMMVJS?=
 =?utf-8?B?WWtqYUdrYmxLcVVadENXd1pObmFyMGZkM2RtbGtqaUl5ZGlpcVhjK21jZ0R2?=
 =?utf-8?B?dVJKT0dkSG91NEluMzZXVXBKZlB5YzhjeC9xNW5lTC9CeStDSjZBaXN0UzRU?=
 =?utf-8?B?MFpvcjZoMDBxQ2kwRzFvRDJ6TWxtN3BuSDZxeERxbVN3bEJTRFdVUVZCakNW?=
 =?utf-8?B?Y2FEbDJXUlZhRUtTa0FuT1ZXZ2pqSDlMTUhPMEpqWWVSK0lJV1ZGanREVDk1?=
 =?utf-8?B?VEptMXlOSlJOSnFzdC85Qk5odXpLSjUxNFI0SEJDQUdJY3BxbkVpRERIYTRr?=
 =?utf-8?B?dmt0YkJIc2JWMS9nNVp4WXFpWVdDSFJaWGVsVmRRdDY0K3BhM1RQL3FRQWQ3?=
 =?utf-8?B?RzJBVmU4ZU1Vb1REOWQ4RUNnUUpNck9RSzBnR2F1R2pERmVBUzMxUnorVTNj?=
 =?utf-8?B?RStaaHJMMTVaUU5JdFgwZndKYjUxTnZydnphdld3cjhmcWZWVWdQWCtTQ1Rx?=
 =?utf-8?B?d0tTcysrU2x3MHpXeW9jbXQ2Ynd2aGtCeTQvbzFINEhLUUtwbnBtSkY1a2pT?=
 =?utf-8?B?WmxMRGRuV041L0VxSm5OSEgrZDdSeVJrVTRlVzdUNTd3WkFic1dRZkNzdytr?=
 =?utf-8?B?c2lzTmMvRUNLTkdHTk8zYXRKOHExZzlaQ2xuWXNFNUlKRVFSRGU3SFF1M3BI?=
 =?utf-8?B?UFlhYzlMT01UT2M5TEhVVTh0WkYyOXc4bCtGYVZlOEVtZ2JKM0NCWWdNaC9P?=
 =?utf-8?B?WjFNRmhCc0RENHV2Zm1oZm1zRHlVTk5EcDlvVkFoMko5T1JQcW1jSEpuZW1L?=
 =?utf-8?B?SGVjYW11YkhjYVhQUVpwQjAxVC9pYTFUZmVkL0IzTEcxdDBMVFVyM3h1aDFX?=
 =?utf-8?B?eVRGL0NOckZZYnlobFRBTXpQR2kreFVjU1B5b2ZtQTYvbFpyejFQUk5rQ3V1?=
 =?utf-8?B?SVN2Zkl5ay8yQVl2b3dSc3JxTVU5cFB1ZUppNmMrNk5WZFFaUDdRNjVxNExu?=
 =?utf-8?B?U05ZdzJocGdBdGxMZHM0WCtNWnRGYWEvUlhyc01lSzJwSnJlNHhkQ0d3OVIw?=
 =?utf-8?B?eTJmMUJxZGY3eUxPbDZqOVg5MG5HZHU5QW0xNEp5MEF1VmY3S2dSaHpzT2c1?=
 =?utf-8?B?bFFXZUhmTk5Ma05uL3d4MU9mNXYzd3dTRE9GWTd5OTBjOTFFWUdyRTlxeTBK?=
 =?utf-8?B?YTBJRnA0ZnNGcHZwdWlXMytjQmlsa0EyZitMSVkwWGFvQjFsQmpEK01ENllT?=
 =?utf-8?B?dHZ3U2IyNHhMSVNvOGhxZDE1bXdPbUxqSkpCSkxDdTdOREcxTERTdWNsUEV6?=
 =?utf-8?B?ZkNXVVU1VnZBK2ZMWVMyMTR6eGRUQnRScmxrbmN5ZEF2TENJdDNRTURldnVm?=
 =?utf-8?B?N1g3cGhlYU9lWkJCSDRyUFBibkxUam95Zk1CcExIQldyRXk1NHNOZTZENFE5?=
 =?utf-8?B?ZHk1Y3dKSHAvSGpxSlBJN0hxdGxYRXZ0ZXFmSWYzR0N2cmUxdTV3Y0pUZ0o2?=
 =?utf-8?B?S2NWMUwrQ0dOdnRrNlZoK21EMHZ6TmdsY3ZUeVFnVEJITEdVdEkzRjIwVXBH?=
 =?utf-8?B?STZWZXpzUFZnaVkyRnZoSjhLWHl6TnlRcTRoWnJIMW83MlFtUVo4UG5uWmtp?=
 =?utf-8?B?YTg1YmhGVkU2clQ1OVk1eHpIeHlYNEYyTnQrRnkvU2YyM3AwRVVzRkoxVW1v?=
 =?utf-8?B?MkZ3SDlvbG1QUE9GTEhvLzJwREJmOGpmcVRyMnlkVmxPNE5VSkU4WTRDcmJY?=
 =?utf-8?B?Z2pnaDl5aThuQ0U3RE15WFhSNHRQZGwrQ08rakMrVWoxazV0M0o3N2huVThw?=
 =?utf-8?B?MUd2UGpnMG1hak9qQkJQWjR4eUNJbFpScWFBelk5ZitCVDVyZjZPZnpHbWhZ?=
 =?utf-8?B?aXdvOWVXNWtDWHpTUk1DaGNZM3g5YkRjcC91eGE0aDFldTh6dEt3dnQrWE5Z?=
 =?utf-8?B?U3RaaU9sb0c2UEtNVkk5UWVuYWJUZVJKSEZOcnQ0Q29ES3U1bllsZz09?=
X-Exchange-RoutingPolicyChecked:
	Z4aKAVgDYLq3qXpJm0nNugBi8iIZmCvGjyz4mbdhE8dS197KN42sYVw0cL9pgYqE4mQo7of1xKeJpAwhflGdQWCR8rtb4dcmqzhonZuPw4xQ06QoSLhPyZPR2xgyr7cRDIsd6xWOOjXKtGh69LGpjFWvm4JLiliM0CjoBKUF6Ua18+VpkrSjIHevtccpDEkgKflwfQzhwxTEOdvvhT60L4Lg1sNQmiX41Uk1I/cseIasoVu4VbA47vgkaUl70lSr0dlNqnVcPl1d9KmxHEd4YXou6E2I3AARp0Q4cdd1w+IxT63T+X7F0wtonfoznI7dUsdxCMXvDHZHhDKZv8PDVQ==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	9l06ycsdisiOO1TlhWrY3L36qDvJ4srWZZP6dT8vZ5WN3HdhDw/CLHTagNEFuXdgEys0PQBPa25QJqI9n2LJg2vaAg/f2O2qs2KrkqE8vK72en6Plhwto4xC3Vbkun+o7cW/vxvVCxJX6EPbjA0eOj0Lb1Vgwy9HmhyvBKBmDYsPyu9KthukvvGOAcz5sd47B91pXmnyrJGDh8zq6mAUqZ6NOP/4koRJqekLeH5vDRJQ5KoHJZO1BuPaS+wUStYIg9KKZOKm1ZaFoxxwGozzVF7Oi0wOXwPA/5gwNfOv/EJu+ggp6Grd+Q7pdbwEC4Q3lRtq2wLn6CxWjSd5K2gvag9UYdIG4hqenQN5YCFKIIR8O0chP79G+Ke0mO97iduD02tWQpE6RrkC20KhBy/UFYBeQ95eiTY8ttUu/Jk9AFdLjP1DnN4+fy7b+WEGtt14eN/ajS4/f49M3NcLatPMxY4oxjttQPE76DxGm8q4ibPxeaIA+zmaVPpqS72ZYYKn8OikhU0Pr1G9sAkmeDiRvkm8g+6+ZPUXTA7iBQQ7jEXMCyDjtC9YkgyUFuGrrD+UHT/7QlRVTlcqlRVcJ/Wr/XsUuyXF6ddvW7zDk1ACoh4=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 488aba30-5ddb-42ca-083e-08deb4b26135
X-MS-Exchange-CrossTenant-AuthSource: BN0PR10MB5109.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 07:52:16.4418
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wH1lDYpEJ3gWHo+5FldKzMrDc5UYtShZGes6OXNM1rtZb2EVCdYzzpk0498X3Nh4YFEfgKN/wCbPXEOybRQaRQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6875
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-18_02,2026-05-15_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 mlxlogscore=999
 adultscore=0 lowpriorityscore=0 mlxscore=0 classifier=spam adjust=0
 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2605180074
X-Authority-Analysis: v=2.4 cv=UOjt2ify c=1 sm=1 tr=0 ts=6a0ac535 b=1 cx=c_pps
 a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10
 a=NGcC8JguVDcA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=jiCTI4zE5U7BLdzWsZGv:22 a=3I1J8UUJPc9JN9BFgKH3:22 a=vggBfdFIAAAA:8
 a=pBOR-ozoAAAA:8 a=mLnsDVdbAAAA:8 a=yPCof4ZbAAAA:8 a=RXWFDia8kwHKEAyOmR0A:9
 a=QEXdDO2ut3YA:10 a=xnp1pY6zelCj5OLna2To:22 a=5yU3S35YU4bGjq-dph-N:22
 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:12298
X-Proofpoint-ORIG-GUID: H9fT60eQHa0s8depqHRz7ThOIQXgNtd9
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE4MDA3NCBTYWx0ZWRfX52PZ4ZTH9UK0
 /nOm4s7e5/YNkHzURQavpkWDkyE3+T4RwBNsIKmx4upscp/Z/tvak5LSSfhpGJ8+X/TdweaoAwt
 LN/Wp6Iak+77F6uUTTk9MEWqtjFgWebxlkzvRBgHTaCMVc+x3NyOROpByrP7RALVxloOFjDoz4d
 dLnS8i620cvyJhd0gsLpfQqPVpI2kWoyLpDBBzaUGi9P51tpxz35FTLIlDI8U4QODO6GCL+Y9uv
 B+Fwu1PFDRxe0ulpmUCAU+ctWnNtz3K1lzatFbbNk61+Evajj6PPduwLs6b9aGkHs1Vpou0ch3Y
 wDzlko4GmDI/ggy4l6qubcflAzV8SZ1GzV0bT0xgxvzwSlPyTormmtMJiFgwokXvHTFgLDHXStz
 J0Rp71Q9FRk7HEEQefpozHQ2vW1dK3UnDE0mIutbOWgbJtyp9fr3TSh4vCeHmB6mxXgB0G2cjek
 Lc9mVxmgQg2vW5IbQm0ukzWlZ40WXuTuHFYW+Hqk=
X-Proofpoint-GUID: H9fT60eQHa0s8depqHRz7ThOIQXgNtd9
X-purgate-ID: tlsNG-16d1c6/1779090776-84D62D75-207BCD71/0/0
X-purgate-type: clean
X-purgate-size: 12409



On 5/9/26 3:46 PM, David Woodhouse wrote:
> From: Jack Allister <jalliste@amazon.com>
> 
> In the common case (where kvm->arch.use_master_clock is true), the KVM
> clock is defined as a simple arithmetic function of the guest TSC, based
> on a reference point stored in kvm->arch.master_kernel_ns and
> kvm->arch.master_cycle_now.
> 
> The existing KVM_[GS]ET_CLOCK functionality does not allow for this
> relationship to be precisely saved and restored by userspace. All it can
> currently do is set the KVM clock at a given UTC reference time, which
> is necessarily imprecise.
> 
> So on live update, the guest TSC can remain cycle accurate at precisely
> the same offset from the host TSC, but there is no way for userspace to
> restore the KVM clock accurately.
> 
> Even on live migration to a new host, where the accuracy of the guest
> time-keeping is fundamentally limited by the accuracy of wallclock
> synchronization between the source and destination hosts, the clock jump
> experienced by the guest's TSC and its KVM clock should at least be
> *consistent*. Even when the guest TSC suffers a discontinuity, its KVM
> clock should still remain the *same* arithmetic function of the guest
> TSC, and not suffer an *additional* discontinuity.
> 
> To allow for accurate migration of the KVM clock, add per-vCPU ioctls
> which save and restore the actual PV clock info in
> pvclock_vcpu_time_info.
> 
> The restoration in KVM_SET_CLOCK_GUEST works by creating a new reference
> point in time just as kvm_update_masterclock() does, and calculating the
> corresponding guest TSC value. This guest TSC value is then passed
> through the user-provided pvclock structure to generate the *intended*
> KVM clock value at that point in time, and through the *actual* KVM
> clock calculation. Then kvm->arch.kvmclock_offset is adjusted to
> eliminate the difference.
> 
> Where kvm->arch.use_master_clock is false (because the host TSC is
> unreliable, or the guest TSCs are configured strangely), the KVM clock
> is *not* defined as a function of the guest TSC so KVM_GET_CLOCK_GUEST
> returns an error. In this case, as documented, userspace shall use the
> legacy KVM_GET_CLOCK ioctl. The loss of precision is acceptable in this

The description here confused me a little. It sounds like userspace should call
KVM_SET_CLOCK if KVM_SET_CLOCK_GUEST fails. However, I assume it actually means
that userspace should do nothing extra if KVM_SET_CLOCK_GUEST fails, and simply
rely on the prior KVM_SET_CLOCK and KVM_VCPU_TSC_OFFSET workflow described in
patch 07. Is that correct?

> case since the clocks are imprecise in this mode anyway.
> 
> On *restoration*, if kvm->arch.use_master_clock is false, an error is
> returned for similar reasons and userspace shall fall back to using
> KVM_SET_CLOCK. This does mean that, as documented, userspace needs to
> use *both* KVM_GET_CLOCK_GUEST and KVM_GET_CLOCK and send both results
> with the migration data (unless the intent is to refuse to resume on a
> host with bad TSC).
> 
> Co-developed-by: David Woodhouse <dwmw@amazon.co.uk>
> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
> Signed-off-by: Jack Allister <jalliste@amazon.com>
> Reviewed-by: Paul Durrant <paul@xen.org>
> Cc: Dongli Zhang <dongli.zhang@oracle.com>
> ---
>  Documentation/virt/kvm/api.rst |  37 ++++++++
>  arch/x86/kvm/x86.c             | 151 +++++++++++++++++++++++++++++++++
>  include/uapi/linux/kvm.h       |   3 +
>  3 files changed, 191 insertions(+)
> 
> diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst
> index 52bbbb553ce1..2268b4442df6 100644
> --- a/Documentation/virt/kvm/api.rst
> +++ b/Documentation/virt/kvm/api.rst
> @@ -6553,6 +6553,43 @@ KVM_S390_KEYOP_SSKE
>    Sets the storage key for the guest address ``guest_addr`` to the key
>    specified in ``key``, returning the previous value in ``key``.
>  
> +4.145 KVM_GET_CLOCK_GUEST
> +----------------------------
> +
> +:Capability: none
> +:Architectures: x86_64
> +:Type: vcpu ioctl
> +:Parameters: struct pvclock_vcpu_time_info (out)
> +:Returns: 0 on success, <0 on error
> +
> +Retrieves the current time information structure used for KVM/PV clocks,
> +in precisely the form advertised to the guest vCPU, which gives parameters
> +for a direct conversion from a guest TSC value to nanoseconds.
> +
> +When the KVM clock is not in "master clock" mode, for example because the
> +host TSC is unreliable or the guest TSCs are oddly configured, the KVM clock
> +is actually defined by the host CLOCK_MONOTONIC_RAW instead of the guest TSC.
> +In this case, the KVM_GET_CLOCK_GUEST ioctl returns -EINVAL.
> +
> +4.146 KVM_SET_CLOCK_GUEST
> +----------------------------
> +
> +:Capability: none

Do we need a KVM_CHECK_EXTENSION capability for this? If userspace wants to
support the new API, should it detect availability via KVM_CHECK_EXTENSION, or
simply try the ioctl and handle failure?

> +:Architectures: x86_64
> +:Type: vcpu ioctl
> +:Parameters: struct pvclock_vcpu_time_info (in)
> +:Returns: 0 on success, <0 on error
> +
> +Sets the KVM clock (for the whole VM) in terms of the vCPU TSC, using the
> +pvclock structure as returned by KVM_GET_CLOCK_GUEST. This allows the precise
> +arithmetic relationship between guest TSC and KVM clock to be preserved by
> +userspace across migration.
> +
> +When the KVM clock is not in "master clock" mode, and the KVM clock is actually
> +defined by the host CLOCK_MONOTONIC_RAW, this ioctl returns -EINVAL. Userspace
> +may choose to set the clock using the less precise KVM_SET_CLOCK ioctl, or may
> +choose to fail, denying migration to a host whose TSC is misbehaving.
> +
>  .. _kvm_run:
>  
>  5. The kvm_run structure
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index d9ef165df6a1..d1327d5fba3f 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -6205,6 +6205,149 @@ static int kvm_get_reg_list(struct kvm_vcpu *vcpu,
>  	return 0;
>  }
>  
> +#ifdef CONFIG_X86_64
> +static int kvm_vcpu_ioctl_get_clock_guest(struct kvm_vcpu *v, void __user *argp)
> +{
> +	struct pvclock_vcpu_time_info hv_clock = {};
> +	struct kvm_vcpu_arch *vcpu = &v->arch;
> +	struct kvm_arch *ka = &v->kvm->arch;
> +	unsigned int seq;
> +
> +	/*
> +	 * If KVM_REQ_CLOCK_UPDATE is already pending, or if the pvclock
> +	 * has never been generated at all, call kvm_guest_time_update().
> +	 */
> +	if (kvm_check_request(KVM_REQ_CLOCK_UPDATE, v) || !vcpu->hw_tsc_hz) {

This was flagged by AI, and I am still checking whether it is a real issue.

What happens if KVM_REQ_MASTERCLOCK_UPDATE and KVM_REQ_CLOCK_UPDATE are both
pending?

>From my perspective, I am also curious how we should reason about this in other
scenarios in the future. Specifically, when do we need to process
KVM_REQ_MASTERCLOCK_UPDATE before KVM_REQ_CLOCK_UPDATE, and when is it
acceptable not to? I noticed that kvm_cpuid() already processes only
KVM_REQ_CLOCK_UPDATE.

> +		int idx = srcu_read_lock(&v->kvm->srcu);
> +		int ret = kvm_guest_time_update(v);
> +
> +		srcu_read_unlock(&v->kvm->srcu, idx);
> +		if (ret)
> +			return -EINVAL;
> +	}
> +
> +	/*
> +	 * Reconstruct the pvclock from the master clock state, matching
> +	 * exactly what kvm_guest_time_update() writes to the guest.
> +	 */
> +	do {
> +		seq = read_seqcount_begin(&ka->pvclock_sc);
> +
> +		if (!ka->use_master_clock)
> +			return -EINVAL;
> +
> +		hv_clock.tsc_timestamp = kvm_read_l1_tsc(v, ka->master_cycle_now);
> +		hv_clock.system_time = ka->master_kernel_ns + ka->kvmclock_offset;
> +	} while (read_seqcount_retry(&ka->pvclock_sc, seq));
> +
> +	hv_clock.tsc_shift = vcpu->pvclock_tsc_shift;
> +	hv_clock.tsc_to_system_mul = vcpu->pvclock_tsc_mul;
> +	hv_clock.flags = PVCLOCK_TSC_STABLE_BIT;
> +
> +	if (copy_to_user(argp, &hv_clock, sizeof(hv_clock)))
> +		return -EFAULT;
> +
> +	return 0;
> +}
> +
> +/*
> + * Reverse the calculation in the hv_clock definition.
> + *
> + * time_ns = ( (cycles << shift) * mul ) >> 32;
> + * (although shift can be negative, so that's bad C)
> + *
> + * So for a single second,
> + * NSEC_PER_SEC = ( ( FREQ_HZ << shift) * mul ) >> 32
> + * NSEC_PER_SEC << 32 = ( FREQ_HZ << shift ) * mul
> + * ( NSEC_PER_SEC << 32 ) / mul = FREQ_HZ << shift
> + * ( NSEC_PER_SEC << 32 ) / mul ) >> shift = FREQ_HZ
> + */
> +static u64 hvclock_to_hz(u32 mul, s8 shift)
> +{
> +	u64 tm = NSEC_PER_SEC << 32;
> +
> +	/* Maximise precision. Shift right until the top bit is set */
> +	tm <<= 2;
> +	shift += 2;
> +
> +	/* While 'mul' is even, increase the shift *after* the division */
> +	while (!(mul & 1)) {
> +		shift++;
> +		mul >>= 1;
> +	}
> +
> +	tm /= mul;
> +
> +	if (shift > 0)
> +		return tm >> shift;
> +	else
> +		return tm << -shift;
> +}
> +
> +static int kvm_vcpu_ioctl_set_clock_guest(struct kvm_vcpu *v, void __user *argp)
> +{
> +	struct pvclock_vcpu_time_info user_hv_clock;
> +	struct kvm *kvm = v->kvm;
> +	struct kvm_arch *ka = &kvm->arch;
> +	u64 curr_tsc_hz, user_tsc_hz;
> +	u64 user_clk_ns;
> +	u64 guest_tsc;
> +	int rc = 0;
> +
> +	if (copy_from_user(&user_hv_clock, argp, sizeof(user_hv_clock)))
> +		return -EFAULT;
> +
> +	if (!user_hv_clock.tsc_to_system_mul)
> +		return -EINVAL;
> +
> +	user_tsc_hz = hvclock_to_hz(user_hv_clock.tsc_to_system_mul,
> +				    user_hv_clock.tsc_shift);
> +
> +	kvm_hv_request_tsc_page_update(kvm);
> +	kvm_start_pvclock_update(kvm);
> +	pvclock_update_vm_gtod_copy(kvm);
> +
> +	if (!ka->use_master_clock) {
> +		rc = -EINVAL;
> +		goto out;
> +	}
> +
> +	curr_tsc_hz = (u64)get_cpu_tsc_khz() * 1000;
> +	if (unlikely(curr_tsc_hz == 0)) {
> +		rc = -EINVAL;
> +		goto out;
> +	}
> +
> +	if (kvm_caps.has_tsc_control)
> +		curr_tsc_hz = kvm_scale_tsc(curr_tsc_hz,
> +					    v->arch.l1_tsc_scaling_ratio);
> +
> +	/*
> +	 * Allow for a discrepancy of 1 kHz either way between the TSC
> +	 * frequency used to generate the user's pvclock and the current
> +	 * host's measured frequency, since they may not precisely match.
> +	 */
> +	if (user_tsc_hz < curr_tsc_hz - 1000 ||
> +	    user_tsc_hz > curr_tsc_hz + 1000) {
> +		rc = -ERANGE;
> +		goto out;
> +	}
> +
> +	/*
> +	 * Calculate the guest TSC at the new reference point, and the
> +	 * corresponding KVM clock value according to user_hv_clock.
> +	 * Adjust kvmclock_offset so both definitions agree.
> +	 */
> +	guest_tsc = kvm_read_l1_tsc(v, ka->master_cycle_now);
> +	user_clk_ns = __pvclock_read_cycles(&user_hv_clock, guest_tsc);
> +	ka->kvmclock_offset = user_clk_ns - ka->master_kernel_ns;

I used to explore adjusting ka->kvmclock_offset in KVM_SET_CLOCK based on the
old hv_clock and the new hv_clock long time ago. At that time, my concern was
what would happen if userspace provided bogus values. Theoretically, this is
possible with any ioctl. My concern may be unnecessary.

Would it be helpful to validate that the delta is within a reasonable range,
e.g. that the drift can never be more than five minutes (forward or backward)?

Thank you very much!

Dongli Zhang

> +
> +out:
> +	kvm_end_pvclock_update(kvm);
> +	return rc;
> +}
> +#endif
> +
>  long kvm_arch_vcpu_ioctl(struct file *filp,
>  			 unsigned int ioctl, unsigned long arg)
>  {
> @@ -6605,6 +6748,14 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
>  		srcu_read_unlock(&vcpu->kvm->srcu, idx);
>  		break;
>  	}
> +#ifdef CONFIG_X86_64
> +	case KVM_SET_CLOCK_GUEST:
> +		r = kvm_vcpu_ioctl_set_clock_guest(vcpu, argp);
> +		break;
> +	case KVM_GET_CLOCK_GUEST:
> +		r = kvm_vcpu_ioctl_get_clock_guest(vcpu, argp);
> +		break;
> +#endif
>  #ifdef CONFIG_KVM_HYPERV
>  	case KVM_GET_SUPPORTED_HV_CPUID:
>  		r = kvm_ioctl_get_supported_hv_cpuid(vcpu, argp);
> diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
> index 6c8afa2047bf..9b50191b859c 100644
> --- a/include/uapi/linux/kvm.h
> +++ b/include/uapi/linux/kvm.h
> @@ -1669,4 +1669,7 @@ struct kvm_pre_fault_memory {
>  	__u64 padding[5];
>  };
>  
> +#define KVM_SET_CLOCK_GUEST	_IOW(KVMIO, 0xd6, struct pvclock_vcpu_time_info)
> +#define KVM_GET_CLOCK_GUEST	_IOR(KVMIO, 0xd7, struct pvclock_vcpu_time_info)
> +
>  #endif /* __LINUX_KVM_H */



From xen-devel-bounces@lists.xenproject.org Mon May 18 07:53:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 07:53:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311618.1581730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsmp-0005BV-MA; Mon, 18 May 2026 07:53:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311618.1581730; Mon, 18 May 2026 07:53:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsmp-0005BO-JL; Mon, 18 May 2026 07:53:15 +0000
Received: by outflank-mailman (input) for mailman id 1311618;
 Mon, 18 May 2026 07:53:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wOsmo-0005Ak-DH
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 07:53:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOsmn-00HDrG-P4
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 09:53:13 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ac569-2eae-0a2a0a5409dd-0a2a4509c564-0
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:53:13 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ac569-2497-0a2a45090019-d1558030b9b4-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:53:13 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-48ff4f8ef0dso22018765e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 00:53:13 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9e768acesm37691141f8f.7.2026.05.18.00.53.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 00:53:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779090793; x=1779695593; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6o4dEWfFLVoVAzK2gWY2XaZYcgIdeeGk9U5DH4jBTMo=;
        b=BkGgIqAjX+6WArZ7Dof2lF3T8OehJMYGyTI9gGDBvIF3HPQ1KT1wCcrKzMjxE4udSG
         5Zes8imPjlBQT6rfK2In1+OJbm60nABXdDjZNt9BZM4IXyHR4D/Wb0z6r6LBCvP+DGlV
         hd4p1Q4iSCUYtUeiUGq7uJ6idVjCioLsjjoRfd6ke/uAp5VU6fMPWSttOatBMq7Dvqfa
         fkLNTfVKpnzTTBoYwIsq4vBvJE9+lE8kd6GwftFDcZ18Ny9MHkhzAlLCt3ZInGt8Ai42
         FoW8X8WUB6iqSlIORUHNQ3R2C2EL/33CZ4ZDij9qZA5HpXaDwiazih1qG14SSuS4+/NM
         1LuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779090793; x=1779695593;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6o4dEWfFLVoVAzK2gWY2XaZYcgIdeeGk9U5DH4jBTMo=;
        b=o2ef4w17PtT+9hYhTce3i+moRuO3ru/jm2ocbEa/4MlPYN/2st0aIrhQdAZYyms3s+
         bzj0px2HWsH356ZQ3TS2LOjnveDL/6SoWKe0sDfou442Yc6+ICYkxl5tugW+Z/nSbD7F
         zg+r3AUV6fWDKrnbZ1+Kk5e81upnxNueXb74Ul8H9cwfrAxdDgzoYPkHtJwHyrDdRjOu
         KAk1N9fcmi92UK4UOL5fVAsu1hvpw5s2I0d249xBmPJbvzxT1s06xtGNkk4HBeLccCNy
         /EQiTsRZ2zRTMq+zSJWi+Xhynf7JdVa5uHu9XbVEiPdf79tUfdah/NgIAdK0/i+b3i74
         4rBw==
X-Forwarded-Encrypted: i=1; AFNElJ+ho2KI1C7HGhgDLbAjTn6yn9/4FOkPfEIkLP4J8Nkb60NxKQa3cZ9FLB2T6FeOlFAAvVgFWSNzvzA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxfbPpO7wM7k4+YeatoAI19n0hMmftiN8mYVded2LNAwI2bpWxt
	C1e/Bz9icyRhr9kW+tmK9rd0iQFN/uGzJs27YVCUo749tKwJ/zQu8sfTFJGlrzlXow==
X-Gm-Gg: Acq92OHS32i65ThRkrZJGuQXKVLTYjhLlSlRxrvCiuPaX8pySOqxxiyXLMj2d0mUC+p
	BihYJv/dUo4+eRAYtGggQyXt2q4beV18vLIDlqrEfxdIh/WLSmjZLwpwE61AYKJ95LtOJxf3dE7
	2iJQ+59U0OyVWkCTlkuxenS+a3E//tngYxZKRb1OOYCGbExImy92n0zsNWQBdL/cnAjoNX0tMc4
	VYuhx/I6VaWgqrGvHDsw733KNEQaHfziWhcYuT/C0aQ+83AEE8gwuJarxfOYopsNFMotKzpo7Pu
	YtnK4MfwFh2vAS63gR7TF07RIIyHKFRgdmCpBnw8RUwxqzH8nf8bFqTqOyH0Wxbh1PRbBeqm+/e
	o7yYjGA4e8uCitv4OOJjpyogpeJ4aG+adYmJJvdfNwlme/770FjNS6C+AljQgJb7puJ7Y02yzlt
	+Oz8wGaypVQvkTsKols3JqfID4h9oKW+RmZPQx4Xe/NUH5H/lUAwiJmfFOXoY5EmJV0ZUdVhDl6
	/N1h7GruRzHL4w=
X-Received: by 2002:a05:600c:a406:b0:489:e126:b757 with SMTP id 5b1f17b1804b1-48fe63297b9mr172930825e9.25.1779090793096;
        Mon, 18 May 2026 00:53:13 -0700 (PDT)
Message-ID: <559dc10a-d390-4723-8c52-f649a7acf8e0@suse.com>
Date: Mon, 18 May 2026 09:53:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 v6] x86/svm: Support vNMI on capable hardware
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, Jason Andryuk <jason.andryuk@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260514175623.1869042-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260514175623.1869042-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1779090793-37D7FA53-26E40D05/0/0
X-purgate-type: clean
X-purgate-size: 1114

On 14.05.2026 19:56, Andrew Cooper wrote:
> --- a/xen/arch/x86/hvm/svm/intr.c
> +++ b/xen/arch/x86/hvm/svm/intr.c
> @@ -33,6 +33,12 @@ static void svm_inject_nmi(struct vcpu *v)
>      u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
>      intinfo_t event;
>  
> +    if ( vmcb->_vintr.fields.vnmi_enable )
> +    {
> +        vmcb->_vintr.fields.vnmi_pending = true;
> +        return;
> +    }

How does all of this work during migration to a vNMI-incapable host? The
hw feature is used ...

> --- a/xen/arch/x86/hvm/svm/vmcb.c
> +++ b/xen/arch/x86/hvm/svm/vmcb.c
> @@ -185,6 +185,8 @@ static int construct_vmcb(struct vcpu *v)
>      if ( default_xen_spec_ctrl == SPEC_CTRL_STIBP )
>          v->arch.msrs->spec_ctrl.raw = SPEC_CTRL_STIBP;
>  
> +    vmcb->_vintr.fields.vnmi_enable = cpu_has_svm_vnmi;

... unconditionally when available (i.e. the feature not being there
won't prevent the migration), yet the vnmi_{pend,block}ing fields are
lost during migration (aiui). Are building on the fact that all of this
state is already getting lost while migrating?

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 07:57:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 07:57:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311633.1581740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsrL-0006JD-6m; Mon, 18 May 2026 07:57:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311633.1581740; Mon, 18 May 2026 07:57:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsrL-0006J6-3t; Mon, 18 May 2026 07:57:55 +0000
Received: by outflank-mailman (input) for mailman id 1311633;
 Mon, 18 May 2026 07:57:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <den@valinux.co.jp>) id 1wOsrJ-0006J0-Gn
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 07:57:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOsrI-008tHw-JA
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 09:57:52 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a0ac67a-2eae-0a2a0a5409dd-0a2a450886a6-16
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:57:51 +0200
Received: from [52.101.229.125]
 (helo=TY3P286CU002.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <den@valinux.co.jp>)
 id 6a0ac67b-63b5-0a2a45080019-3465e57d41a3-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:57:50 +0200
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10)
 by TYWP286MB3189.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2d0::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May
 2026 07:57:45 +0000
Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9846.025; Mon, 18 May 2026
 07:57:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HsG4fFyd+G+MLfhTJLCMYoiSXopInfMcH3RerX/yMHns5PokSnJjQyABPaAJ6v4NiIYdW8XxgHzA1sfKYffEp8nl7eopohfSqEbp9TeKAQDRRGXTZ7sto6y8EyXNhaM2ryalsxFINvyrYK5Cl5+yiOPZn2y93P9n/DO8AVAx+SH8SRRStcKncUZBTygFKCzswe0x2d8wNVZq8Ff5RjuoLVBgGZB7dkEaLyaib3sM2l6G5PSr8MYco2ZD9E9X3Qbz6i16UFtalwfJhyR7KJyACldOogQGNTVer33LtMmu3yI/rzEOoXNoTeZQTNJJd4bcTvI+IsTZmy3KQdsgernzzQ==
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=IBD2kXHfYMc/Ho3qztxaqgHW+GG5GprB0vPVQ6gxcqA=;
 b=mrxzpBPqzBc4/PH9cq3svr4GbuDCENPdq9p0Ts05ls/c6ORuinXNSm97t79fxXk821i8BXeeQ/PwwdpbwllZwGSQJJnUw56XKD+qOrbFEmirpbXAr4YtOJFSMGskKK4sIbenwtK3/ttbF6/OISeOxtD8cwg2xmYRs1LLBODCM+WVAAvwz3JjzT6XB+X96nTTfX3Bvl8tqF1f7FJ/43FqHwemA6wBYqSXUmk3WKlwv0Rp9fPpmjY7Ept3Llmrsy9egQ9E0nf6g9vKOxPi+4uPF4u3+xQc3QppHZifX2/uqllTQJ8cpQa1FZIiSdN/kAJ6HHu4hiGryLISSTYnG+oRYQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IBD2kXHfYMc/Ho3qztxaqgHW+GG5GprB0vPVQ6gxcqA=;
 b=L+VQQljWN/h4HmKkxZyY1dcuWByG4R1XWWzYHiwkZ85tUs+4SLzeaHu/IP6HIlYtc12tJxKvvWxvyg3moT1sV0mboKXneEqkcXnFGRWFAdEm6cyQKNym2X15e/Ns/3OGkuund6zQpLm2nPVSv5GhR4nlO8FO+GH7HTkbCexaWT8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
Date: Mon, 18 May 2026 16:57:43 +0900
From: Koichiro Den <den@valinux.co.jp>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
	Juergen Gross <jgross@suse.com>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH v1 24/26] xen/arm, tools: add domctl for Realm
 finalization
Message-ID: <polfm7zluc3xud7hbfjs5tqradrfbsy7voqdlkxo2d3uyr7wxf@t42nyrawoiwu>
References: <20260515040812.983626-1-den@valinux.co.jp>
 <20260515040812.983626-25-den@valinux.co.jp>
 <843895bc-75a9-487e-87a3-2e11492faf3d@suse.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <843895bc-75a9-487e-87a3-2e11492faf3d@suse.com>
X-ClientProxiedBy: TY4PR01CA0093.jpnprd01.prod.outlook.com
 (2603:1096:405:37d::12) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:38f::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TY7P286MB7722:EE_|TYWP286MB3189:EE_
X-MS-Office365-Filtering-Correlation-Id: 9fc48102-a2a2-438d-b11b-08deb4b324eb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|10070799003|1800799024|366016|376014|7416014|22082099003|18002099003|56012099003|4143699003;
X-Microsoft-Antispam-Message-Info:
	tkOFtTYSaxGQDsJJeGGhMt+t22XvqBF/b8nmMY+b7LxwLIs57uuJ5+Stj3ZVhHmkeq29twTSMGu7tGqH10GetBYY0nux/VirDlStH+PG9pg6kQDzp3TG43q8L5FRm0/llWyrJi+hDl+J/5DlMhHWdttqlcA/bHzEbs3IvHIciHJhGmcUcBPHKZqvg8t5aeGj8E7ytLwBYs0C9QEXnyUR7iKP0M1axFAOXVNgf2eBhkYlIbidQRr2cWBeewSDqdyvuPV85yZDF+ALSV/3gNoB1zBp3j8wvCT6ObwgWyPwOlGWgfk5kXU33mBVmA4Fab5zV/7zPFDNgEdPB2HLDmqa7HTJH1qXGfwDoXZ1thd0GO4vn4a4EOwIxIC6BpkwUsNiRW42+pQtNeUYh+HbkxVHvF9NGHvBs8zr5Yijwe+1uAKDQoQl+6qsOA7kPUtA48PlVJ66koBdyuVw/nyW1o4dXXjW48p7/sNbHBlWVn+TqgL1p9sQQn+IiIVeKCYamFIqV4JNv2c2iODzekMvK8A6f31Kta8jcfeBp0nlqId1vH+fk+sI8Luk2TRC6cLhQO2/oxnzpThpKajuRloSrI5oPrP+289SWRDt276rM3UCr6XbnSXBM1AxMgYF9Npbzj9wLN0Hxh7Ra8cPWd+TBchAqlGPVvc9OVDVS6tW8jFoniN7ZYNn9GEGkuRF+6XT8MDI
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(376014)(7416014)(22082099003)(18002099003)(56012099003)(4143699003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?RgzSIM9S4Po9pVN7KkqYN+3gBAyRB93MABYyQzfW6nF+x2CK6cEF0XvTHKeM?=
 =?us-ascii?Q?O39MUBHJNno1a7RrQCa5XljjoTjMPXpHObt+iOUk8Eb/b1xYeCc/040uxk6a?=
 =?us-ascii?Q?RwBQkkiNm1XaLu2TK6RUH7Fbr181HjvJMtDGEexFUtO1z/CkbzJP3BZPN3tq?=
 =?us-ascii?Q?tlFu64ber0Zq/7zSHYuYEg8rZXVCxGlAs2EhVOhlqhLlvZ61Hf9DQ/mDl9u1?=
 =?us-ascii?Q?VsAbPYtL8FqzThoGzDh3+liuqnRgnXFzEtAQY+wCC6JsdotN64kLlhF2pgf0?=
 =?us-ascii?Q?KRNfcHzvp6q0kts/zDL2gqNGIMUL7pQZFmZFGQott3XIASpEMvtLSi7A2vO6?=
 =?us-ascii?Q?bDVCkSgrPylD5lelB3oYTCovI0dFd/3+6R0XizelZQIrZt228GSdFDP0yhQv?=
 =?us-ascii?Q?s4IBfFjzkwu++nR219bk6N+OEZdz68g9cHqRnPUgIO5AUun2zOzGvYNDW0dK?=
 =?us-ascii?Q?vAXyslOTCU8oPjkLSdecY1RKZ2ri8MNkFEw82MxPS92MbEevXAh8q37LdlZI?=
 =?us-ascii?Q?arX45L4QLI2cUfyOc15Sowqcn0ww7hDznIuM+HRnQ1g3U+FQHCT9M/wFEqmj?=
 =?us-ascii?Q?LAmv+61cUxgU9abbI1kZeSPS57ByJDKdxmi//VL4EmZOUeNMpxEpnBPkPBMZ?=
 =?us-ascii?Q?j9W242GmeyPvMWy8LgtkRMXKMc8aJlAn+Td4fKdHP+K7wu4HCTD1ILu7/da+?=
 =?us-ascii?Q?Cw2TgeUjk55QThFe6y0iVDB2rB4UQ8z00NR9pdsW8tg0i0Ntc+bjHfo6L6pM?=
 =?us-ascii?Q?JB3bP+x418lyhBHfceGSts2Zjco3O3k/z5rr794NQI4zOKqE65FTohf8nKjo?=
 =?us-ascii?Q?bc66lPay8Fj5VM4xddb/7wJi1fwM5pzvL69dz6EQlFDnUMvHW8p3CfWPZ0TS?=
 =?us-ascii?Q?IXR4NtC9+5flnsqe2RZWgTZwyiWfTKSLvbGwP/JEDPOG/zCy91dxIOYm9yZH?=
 =?us-ascii?Q?jsmu7B3PG57r65p6zqj9W2xquNGisZlqK0X5WJ30pzzMvibck0X4l7ttXi/b?=
 =?us-ascii?Q?VZDeVGcS8+OdeMqx1Volucgfdwl/uyJhWBQYKkByYKpM73aJ9MJS9i5/tZwa?=
 =?us-ascii?Q?82YXH6zaNgTshE4FteT+oV8WzrtNuYJ2jPYBgdBXipIAjtucK5NrIWjwI+Wj?=
 =?us-ascii?Q?Yaz5loSM7sjOVJ0wANi1/ORcQ/NDeMdbJPUsI56hykrQaT3DFG7a5ttWj3fb?=
 =?us-ascii?Q?XCqZ3XMEZ6iymTf10B6OXwKjne0maXlRGDpvnxswaA8HgBHsVkHP8Hipi3u1?=
 =?us-ascii?Q?nutTq7Ni0J/T3bVa8C3zLL6LMwOFDqjqghuwk/ZWTeHvnTtmn1pXIPNpSGZ1?=
 =?us-ascii?Q?q0MNKZ8ZX5LgsVtCBzLtPuQxiyI783lJR055ZG1HL0zqnnc8GFWPuzn4eTXq?=
 =?us-ascii?Q?h04JmtM467YriI9qrM7zbpe/92LnGPuVSNNYrk4n3w/wuc4AwSDGTWf7oLgS?=
 =?us-ascii?Q?cRVnv7TdGRSbCOW3SdWQp8aTiFUUcJ+snR4BVk66fzeZ0ppThmEoe7CSFUTr?=
 =?us-ascii?Q?JTObzZVJT8LM1EuS+dAyIAq5Ozzc2JlsC9gex4JRLfahD607YMPnvmg0JCce?=
 =?us-ascii?Q?qyK/kCIHiTDJ65/3EchMI2tVi2w/5+nVMabDuTFH8j8MovX0AmEZ9brNKA6F?=
 =?us-ascii?Q?IelwfIiKiizLmm1Yc5PSCUd793iBJ9+d6N/HdVz8wig01fbcBIsY/V6M6Exp?=
 =?us-ascii?Q?bkbSEkrz+tftOrdhQNmyWhnHRAOG2JFzReyle+jRmkImfcA5NDN8gudPYcNB?=
 =?us-ascii?Q?mYzzkFGJOwMXCnTrk2SwWOx0zVyJ0cuMSSfBUqFM4VWkUyB7kXed?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 9fc48102-a2a2-438d-b11b-08deb4b324eb
X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 07:57:44.6383
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5gzwklAnnnspfzmpKQAmkNlCWoto3GVr4/WdRYTfNlHmuupHs9zhXO1nozhcflyaYvVJw69zQWUlww1ek4FrqQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB3189
X-purgate-ID: tlsNG-c1860d/1779091071-BF171DB1-C1B6D042/0/0
X-purgate-type: clean
X-purgate-size: 2026

On Fri, May 15, 2026 at 07:56:49AM +0200, Jan Beulich wrote:
> On 15.05.2026 06:08, Koichiro Den wrote:
> > --- a/xen/include/public/domctl.h
> > +++ b/xen/include/public/domctl.h
> > @@ -1201,6 +1201,16 @@ struct xen_domctl_vuart_op {
> >                                   */
> >  };
> >  
> > +/* XEN_DOMCTL_arm_cca_op */
> > +struct xen_domctl_arm_cca_op {
> > +#define XEN_DOMCTL_ARM_CCA_OP_INIT_REALM  0
> > +        uint32_t cmd;              /* IN - XEN_DOMCTL_ARM_CCA_OP_* */
> > +        uint32_t flags;            /* IN - reserved, must be zero */
> > +        uint64_aligned_t base_gfn;   /* IN - first guest RAM gfn to protect */
> > +        uint64_aligned_t nr_pages;   /* IN - number of 4K pages to protect */
> > +        uint64_aligned_t rmi_result; /* OUT - raw RMI result on -EIO */
> > +};
> > +
> >  /* XEN_DOMCTL_vmtrace_op: Perform VM tracing operations. */
> >  struct xen_domctl_vmtrace_op {
> >      uint32_t cmd;           /* IN */
> > @@ -1368,6 +1378,7 @@ struct xen_domctl {
> >  #define XEN_DOMCTL_gsi_permission                88
> >  #define XEN_DOMCTL_set_llc_colors                89
> >  #define XEN_DOMCTL_get_domain_state              90 /* stable interface */
> > +#define XEN_DOMCTL_arm_cca_op                    91
> 
> If this is to be Arm only (as the name implies), ...
> 
> > @@ -1429,6 +1440,7 @@ struct xen_domctl {
> >          struct xen_domctl_monitor_op        monitor_op;
> >          struct xen_domctl_psr_alloc         psr_alloc;
> >          struct xen_domctl_vuart_op          vuart_op;
> > +        struct xen_domctl_arm_cca_op        arm_cca_op;
> 
> ... this wants to move ...
> 
> >          struct xen_domctl_vmtrace_op        vmtrace_op;
> >          struct xen_domctl_paging_mempool    paging_mempool;
> >  #if defined(__arm__) || defined(__aarch64__)
> 
> ... into this #if.

Hi Jan,

Thanks for catching this. I'll move the arm_cca_op union member into the #if
block in v2.

Best regards,
Koichiro

> 
> Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 08:04:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 08:04:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311650.1581748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsy0-0008S0-8o; Mon, 18 May 2026 08:04:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311650.1581748; Mon, 18 May 2026 08:04:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsy0-0008Rt-5v; Mon, 18 May 2026 08:04:48 +0000
Received: by outflank-mailman (input) for mailman id 1311650;
 Mon, 18 May 2026 08:04:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOsxz-0008Rn-5M
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 08:04:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOsxx-0086Yv-3N
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 10:04:45 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ac81a-5cb7-0a2a0a5109dd-0a2a4504b056-24
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 10:04:45 +0200
Received: from [209.85.208.169] (helo=mail-lj1-f169.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ac81c-1dec-0a2a45040019-d155d0a9f1d8-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 10:04:44 +0200
Received: by mail-lj1-f169.google.com with SMTP id
 38308e7fff4ca-38be5e86918so27412541fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 01:04:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779091484; cv=none;
        d=google.com; s=arc-20240605;
        b=SPwAWHivt7g+w4GualnuGarInFiMdDhSk1pXiJYcf8ZfiFcE5AIQ8bsWRPEp0cUpBp
         VVIANaIp2eCDzu+4DilXW2V1EOTFjLHCHoHPnVw8ER+8tphSCvSSNLTpIWXp8z3OXDXI
         4Wx5ntGs4cikeSui6evH875eLT/vUFUqTMPkdpY0arivwBS2ANEODVgcFlps6/5HfUr9
         8KM/vpZmGnqtJTAQgduz71SjglEClmgKJlafoTkoB3OpAzRZqMocSW1Aa+x55Uz2Spt5
         cXWCSHLqgq+zFKNWCxBpIty3MDFiNOKgZ4QLSFZ5d3y1C4NbzpX1oiC9yiMqziM8LAOf
         emxA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=99gwQBe9ex5niKZl03wLsIShBZ012H4z1zs12SCF99U=;
        fh=22AKn4tiP/brJKt2z+QCRavBTlFZKpxhtfgZsL2okpI=;
        b=AxgT95gAzIU+ktvo0fKub6bSs2+0p7zctSDaaeCWpwWTIKWeI7GQ0lvgaRsdzbEm0U
         YdDBN9ifD1cTn2qMU6SqcpZX6IiX2IM4nZhfrSaLKJcWLjBPLSJG8i27q1NsMEjsi5Je
         sfvblICvPHbz94smuFQH9u0Iau5tInTw9d/WnI6OpDZDMajEW9OyhKdJyY0DjAo30Id/
         DFif/GhgFdLeiJmFTI7SWknvKfZPbJJN10sXrh0ROX9KYj4y4XV5nRrzznM9icIymvQT
         7yx7SppYROyVtREmzKkUaNpDNKHZW2Ui/rSEQ10zaAgotU3DmeOamyPodel5MkP3t8oI
         PPyw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779091484; x=1779696284; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=99gwQBe9ex5niKZl03wLsIShBZ012H4z1zs12SCF99U=;
        b=sHSG7e6FM86Efnprw4bH5C1ZsmlQdJ76YtmyeSyhf3Ki/pl5QlvVQxkFPQAnL3g6W4
         q4YwKlSboIXB9DS3WSa4hMYYq0D1dfmD4pAEHsrXfu8OE8Lqmgl/c3UxazYhaMtXAQw3
         eax9ckS7GYSK7ZgrN9JlxU1A+jk1BYoKzfDX7ghfvsVL3WC9WWCaRw9yg85OUz2VrorB
         VJHXzuIM4LpWnCwLzJ7ExKNgTEq2XJd5B4fW78e99EHxvCZ2GbThV5OhBqOAeMMKLmiU
         FI+80ScRX2+GhQi/faibjd/U42Wl+nIF97kmB1g2JllTbDTPy9AACb5zZb/SPfL0VnLf
         I6yw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779091484; x=1779696284;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=99gwQBe9ex5niKZl03wLsIShBZ012H4z1zs12SCF99U=;
        b=nKsJNFSPO84FZO1N6IxTdh72wD3IQsSIe72W/Zu3Fdv5Av4QpPlHb8+dPXGo+/cZcg
         8lvys4KFm9fSK1bWkuwnINO66quCp8A/POk1+vAIhSW/44/Fb4P1RpJxghruHGZwEjcC
         5keHUJlOw//iR/mn07WZkgwRE1Cf80USeaRbrFW2hUeEh/9TI982euarF+1RRUj8tgkr
         gqN2QJW+3koS3SHCF3rBmCnLtxW+4TT9fEDW8r0JgvTzMrG1ITM1xkFRkVuhsyOEJTQJ
         6c5mjs5VTs+ZO109hTK7E02vHjRpQjRw/xgcJiFJWBjUjbYDBJtCg3H6t+G7Mssggfoy
         Es3A==
X-Forwarded-Encrypted: i=1; AFNElJ8FPj/kJQ2biaLv4vfPCPHqOKElWDiYf4X8/NkyOlKrdLlP+RlEKHxwDOEaVVdnfv9xBfOEEi+vMjs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxVll9NvFYLWOT3Cy4ka7Ha5QS2d4gOWSiL83XGI1iX+Bq1569s
	KwAm/n7O/xIM6hIb8N0o8e794XUk7aQCR22p4kCZljLUwQfeJyQf08bmf+cqj0HVG6I7lszqdTq
	sI9TaNx5tmpuB57CIhJMWscO+mauACP8=
X-Gm-Gg: Acq92OFxRmmj63bxintCvpkUPKbbG0ztFXppcR9/eUoDQjYDA8l1m+BSmm/Hiew7ZgU
	mYEb0yLlreXcBJOp2grZjAX8HwPUPkHKybt5MYESjSHsRod5WBNFOPASqIngqjAzRfHYVIssbtV
	raDDzjERtRBGFdgYofcS2YmqI1vc27nc0th0UNQdh2onNkDtMgmgZlq8H9wlUpMgP3zCTC3DZEh
	xX/Rrdnn+iLgQSpUJBdWyz0GXgyjC+qZfCzqkY/uKV+2J/KhZWgsKiY/GkxNIZMBKnw5rbG/WyT
	TBOimW1RoEz49IA=
X-Received: by 2002:a2e:bc83:0:b0:38e:a00e:2bb5 with SMTP id
 38308e7fff4ca-39561c0e98amr39547091fa.19.1779091483600; Mon, 18 May 2026
 01:04:43 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778925998.git.mykola_kvach@epam.com> <d9db51c5-97a1-4131-8575-dca1ae2cf52c@suse.com>
 <CAGeoDV9DitsH629pWGe+X=0VM+oi1BfSgWMxE+t32CCR5gMgtw@mail.gmail.com>
 <a5d1dc32-c505-4f42-8d48-ba2710d7b831@suse.com> <CAGeoDV_8BNRPy9tbe1ArgR4Lj8YHZPwo_7D59oJJSiSqNQFNFQ@mail.gmail.com>
 <22edbeb3-4b0b-48d4-9873-76bfa31b970d@suse.com> <CAGeoDV8ucuZ-FrYe6j_ke4cK33z27=rNZ-9oZzb0R9PxqDJBqQ@mail.gmail.com>
 <8156a887-9069-4f9b-8107-b4dbd2cbdb69@suse.com>
In-Reply-To: <8156a887-9069-4f9b-8107-b4dbd2cbdb69@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 May 2026 11:04:31 +0300
X-Gm-Features: AVHnY4LfGIDas6J3skibMPTS4jw3vrdQzXnBkyoTRuNl13LeOcMwLgJS1osVSm0
Message-ID: <CAGeoDV8-DFaQKnr0PF1HTGkbxHY2a-76cNBZ7oyXE3m4px9sBA@mail.gmail.com>
Subject: Re: [PATCH 0/2] xen/common: llc-coloring parser fixes
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org, 
	Carlo Nonato <carlo.nonato@minervasys.tech>, 
	Marco Solieri <marco.solieri@minervasys.tech>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ebf023/1779091484-437693FF-537EA9FA/0/0
X-purgate-type: clean
X-purgate-size: 4957

On Mon, May 18, 2026 at 10:43=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> On 18.05.2026 09:19, Mykola Kvach wrote:
> > On Mon, May 18, 2026 at 10:06=E2=80=AFAM Jan Beulich <jbeulich@suse.com=
> wrote:
> >> On 18.05.2026 09:01, Mykola Kvach wrote:
> >>> On Mon, May 18, 2026 at 9:52=E2=80=AFAM Jan Beulich <jbeulich@suse.co=
m> wrote:
> >>>> On 18.05.2026 08:42, Mykola Kvach wrote:
> >>>>> On Mon, May 18, 2026 at 9:20=E2=80=AFAM Jan Beulich <jbeulich@suse.=
com> wrote:
> >>>>>> On 16.05.2026 17:03, Mykola Kvach wrote:
> >>>>>>> This small series fixes two issues in parse_color_config().
> >>>>>>>
> >>>>>>> The first patch makes parse failures leave the caller-visible col=
or count
> >>>>>>> at zero.  This prevents a rejected command-line value from leavin=
g a
> >>>>>>> partially parsed configuration behind for later init paths to con=
sume.
> >>>>>>>
> >>>>>>> The second patch rejects empty color tokens.  Previously, delimit=
ers in
> >>>>>>> places where a color value was expected could be interpreted as c=
olor 0,
> >>>>>>> because simple_strtoul() returns zero without advancing the input=
 pointer.
> >>>>>>> The patch checks that each parsed color value consumed input.  It=
 also
> >>>>>>> adds the missing newline to the DT color parsing error message.
> >>>>>>>
> >>>>>>> Mykola Kvach (2):
> >>>>>>>   xen/common: llc-coloring: clear color count on parse failure
> >>>>>>>   xen/common: llc-coloring: reject empty color tokens
> >>>>>>
> >>>>>> For both of these, a question which isn't even considered in the r=
easoning
> >>>>>> is whether the present behavior may be intentional. Especially for=
 the 2nd
> >>>>>> ISTR Stefano(?) not so long ago indicating that the behavior is in=
deed
> >>>>>> intended to be this way. That may have been somewhere on Matrix ra=
ther than
> >>>>>> on the list, though.
> >>>>>
> >>>>> Thank you for pointing this out.
> >>>>>
> >>>>> For the first patch, my reasoning was that returning an error while
> >>>>> leaving a partially parsed caller-visible color count behind looks
> >>>>> surprising. If the value is rejected, I think later init paths shou=
ld
> >>>>> not be able to consume the partially parsed state.
> >>>>>
> >>>>> For the second patch, my reasoning was that the current behavior lo=
oks
> >>>>> accidental rather than an intentional extension of the syntax.
> >>>>
> >>>> That was my impression as well, hence why I had raised the question =
back
> >>>> then.
> >>>>
> >>>>> The parser comment says:
> >>>>>
> >>>>> COLOR_CONFIGURATION ::=3D COLOR | RANGE,...,COLOR | RANGE
> >>>>> RANGE ::=3D COLOR-COLOR
> >>>>>
> >>>>> The user guide also describes this as a comma-separated list of col=
ors
> >>>>> or ranges, with ranges written as hyphen-separated inclusive interv=
als.
> >>>>> I don't see an empty-token production there.
> >>>>
> >>>> What you quote is insufficient to determine: COLOR may be allowed to=
 be
> >>>> <nothing>. Iirc the reasoning went in particular towards a range wit=
h
> >>>> merely the upper end specified being something (halfway) meaningful.
> >>>
> >>> Right, I see your point.
> >>>
> >>> The grammar does not define COLOR explicitly, so it does not by itsel=
f
> >>> prove that an empty token is invalid. I was implicitly reading COLOR =
as
> >>> a numeric color value, partly because all examples seem to use numeri=
c
> >>> values, but I agree that this is not stated there.
> >>>
> >>> If this behavior is intentional, then I agree the second patch should
> >>> not go in as-is.
> >>
> >> Just to mention: Something like "-5" won't be interpreted as "0-5" eve=
n
> >> right now. Instead it's taken as a single color with value -5U, afaict=
.
> >
> > I don't think that is what happens with the current parser.
> >
> > I tested this without the patches from this series:
> >
> > (XEN) Command line: dom0_mem=3D2048M console=3Ddtuart dtuart=3Dserial0
> > (XEN) loglvl=3Dall console_timestamps=3Dboot llc-coloring=3Don
> > (XEN) xen-llc-colors=3D-5
> > ...
> > (XEN) LLC coloring info:
> > (XEN) Number of LLC colors supported: 32
> > (XEN) Xen LLC colors (6): { 0-5 }
> >
> > So "-5" is currently interpreted as "0-5", not as a single color with
> > value -5U.
> >
> > That seems to happen because simple_strtoul() does not consume the
> > leading '-', so start remains 0 and the parser then takes the range
> > path.
>
> Oh, I didn't recall this incompatibility with strtoul(). We also don't
> permit a leading + there. IOW the behavior of the color parsing would
> change if we made the functions (more) compatible with the standard.

Right.

The patch makes this explicit in one direction: a COLOR must consume
input. If "-N" is intended to be valid syntax, then I think it should be
handled as a separate explicit case, rather than relying on
simple_strtoul() stopping at '-'.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 18 08:05:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 08:05:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311658.1581757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsyt-0000XZ-KG; Mon, 18 May 2026 08:05:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311658.1581757; Mon, 18 May 2026 08:05:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOsyt-0000XS-Hh; Mon, 18 May 2026 08:05:43 +0000
Received: by outflank-mailman (input) for mailman id 1311658;
 Mon, 18 May 2026 08:05:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wOsys-0000XI-5B
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 08:05:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOsyr-004sNf-HO
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 10:05:41 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ac852-2eae-0a2a0a5409dd-0a2a450499ae-16
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 10:05:41 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ac855-1dec-0a2a45040019-d155802ee9f0-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 10:05:41 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-4891d7164ddso10249095e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 01:05:41 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48febc56f89sm96702065e9.3.2026.05.18.01.05.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 01:05:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779091541; x=1779696341; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TzwPEvFpM8drB6aUU3B67KRTBYy2TQaMptcymy+e2WM=;
        b=WBlwxCgIgEL1/XwLz+Yd7bMKcmsat/BRoHVeKfocUpyz5fu9xXrWVdQQqS8fqUBZL8
         z7yZHbQJV5jwMQvrUoPcd7xEvmCETadZujpdwTwJzeK0Ani8bsHCKnXUfyF7fY8nzIWU
         QKaGg6UeORybfDvfF0/3PaykJDYZxIq1F4eNXAmubSD5VyXtTlOzzLCzAgXPo7Jkjp5O
         DRtRkZyoGoFmqBqJb0HBgHW+8KFBMoZLox0LFXynuI2MBSb03mgNbpy/qi2EMb9zL2OF
         +CgMkwjwQpoJSDQxMMZeG/7J+5h0HT+lpw+7NIdYujRpo5VZuYivWWAr3Jo/dp202Xza
         KJlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779091541; x=1779696341;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TzwPEvFpM8drB6aUU3B67KRTBYy2TQaMptcymy+e2WM=;
        b=A4RQ8EyS9kbU0TqD7ms66ANUmGWvK+8m/mnVbwFgohSy8nOV+FdABzRq9eK4LDvUJc
         NKTGtjOkyTjywqDhBNg+dnIZth7MUONJM6loDldnU8WDK/s/CBQeypaohjYp5K6lEKI/
         mvFMTO3PJixM2kykmFtLWUKXwLVurBZIuOZHtnFWg41/pArjGO9O6B1Wi364JlOkz7uY
         EhRXPTZazbhlgGFq5sVYzo6zNwAet8e+5mYDweWweAf25imTnOP5ZiD4daMET7qZEPMf
         cisJN9WHOI8+Cgihdt2cT0KWwMIWmbLeH7Eik9dyqHsq26WFGcR00gDsC89TmogmepMz
         AsAA==
X-Gm-Message-State: AOJu0YwviiX2llSjoKU1Dw9L5jCv2eV6ZFPJr3czsL0y8ot6j+nbX31i
	7v6ZoHaIwmg7yQpD1QuUZ+TeU1HkV0q4FN8bt2T5zYGLNNovAs6bnZMUQgfkpYf1TQ==
X-Gm-Gg: Acq92OGJlLl2za5Bevg9BzW9jvFuqQx4l+K3a3qBk8ej7vw7I94UnG1oY/sw85kjcE3
	/RDLVOfYB8L3DNU8nrRLs1zoeP6tPcRcmrKpsFfq2HTNC9DkW1z7Iu8innKOMtHcRK7pYtC7vb3
	NffnYSnyyecTTlDIae9IKDPYMDhFalSn8c/1eJnen6UX1p0gjXlhzpfaCJS4nUGrkFSXrf5HRZi
	kI2Lpj+tZKSHH2JIUcZcWibcrn1Ss2wNBAh+OSUITbxPl0EHNiNQOAn5WNCqQj3DT17KgrxUJBu
	1mtt1mgtO+sf/vLQbOTLKETFqRvtSfMFwxDUVuqGyjn1rm6OYsZ0hWn9Mi6cqbXYonH2AMBS5iC
	uX4MZWYF5V0blxgxQP7Kh11VXvF6l2TzQO0r+vcKUMhRETsBRNQHwcQeVlu41xUlohTcl5h8U79
	KAOwpWgQuGnh6RiWf1iuRggQ65tiwpg6t9vsvLG5uQYDVDkcOZseT+qkDl6Pqt8kTYw12uJVkey
	LcjcD/1a7KxplE=
X-Received: by 2002:a05:600c:4455:b0:487:2671:fb8f with SMTP id 5b1f17b1804b1-48fe60ea92dmr193574465e9.8.1779091540744;
        Mon, 18 May 2026 01:05:40 -0700 (PDT)
Message-ID: <547161b2-2fea-4576-a635-62838ffa2d33@suse.com>
Date: Mon, 18 May 2026 10:05:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 RFC] x86/time: avoid early uses of NOW() to return zero
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <68b1607a-f2a1-4f53-84c5-43c61eeb1869@suse.com>
 <agXwsshLlV50dcnV@macbook.local>
 <8fbab1f4-3078-4ac3-b147-84d1b5f5abd1@suse.com>
 <agcb1WAGLWDRYZ06@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <agcb1WAGLWDRYZ06@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1779091541-433673FF-707F29AB/0/0
X-purgate-type: clean
X-purgate-size: 2424

On 15.05.2026 15:12, Roger Pau Monné wrote:
> On Fri, May 15, 2026 at 09:15:40AM +0200, Jan Beulich wrote:
>> On 14.05.2026 17:56, Roger Pau Monné wrote:
>>> On Wed, May 13, 2026 at 08:44:46AM +0200, Jan Beulich wrote:
>>>> @@ -2623,6 +2640,21 @@ int __init init_xen_time(void)
>>>>      return 0;
>>>>  }
>>>>  
>>>> +/* BSP-only function to pre-set an approximate TSC scale. */
>>>> +void __init preset_tsc_scale(unsigned long freq)
>>>> +{
>>>> +    struct cpu_time *t = &this_cpu(cpu_time);
>>>> +
>>>> +    /*
>>>> +     * The incoming frequency is only approximate (nominal).  Increase it by
>>>> +     * 1% to make NOW() output rather a little too slow than too fast, thus
>>>> +     * avoiding a possible backwards jump once the final scale is set.
>>>> +     */
>>>> +    freq += DIV_ROUND_UP(freq, 100);
>>>
>>> To avoid such possible jump backwards, won't it safer to also update
>>> the ->local_stime and ->local_tsc fields at the time the new scale is
>>> set?  Updatign those ahead of setting the new scale should avoid any
>>> backward jumps.
>>
>> ->stamp.local_tsc does get updated; you merely dropped that line from reply
>> context. As to local_stime - how could we possibly set that, when we didn't
>> get through init_platform_timer() yet? Leaving it at 0 is the correct
>> match for setting local_tsc to boot_tsc_stamp.
> 
> Please bear with me, maybe I'm not understanding exactly to what the
> code comment refers to as "possible backwards jump once the final
> scale is set".  I assume you refer to the setting of scale
> early_time_init()?  The ->stamp.local_tsc value also gets updated at
> that point, so it's not possible for the timer going backwards?

It is updated there, but only to boot_tsc_stamp. I.e. no change at all
if preset_tsc_scale() set the field already.

> This changed with the addition of the init_percpu_time() call in
> early_time_init(), and makes the setting of "t->stamp.local_tsc =
> boot_tsc_stamp" pointless, as it will get overwritten by the logic in
> init_percpu_time() a couple of lines after?

When making these changes, I first thought so too. But no, that write
isn't pointless: In case preset_tsc_scale() wasn't called, leaving the
field at 0 would break the use of get_s_time_fixed() out of
init_percpu_time(). (Iirc I only noticed this because of having put
debug printk()s there for other purposes.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 08:11:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 08:11:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311667.1581767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOt4e-0002UK-7q; Mon, 18 May 2026 08:11:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311667.1581767; Mon, 18 May 2026 08:11:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOt4e-0002UC-4R; Mon, 18 May 2026 08:11:40 +0000
Received: by outflank-mailman (input) for mailman id 1311667;
 Mon, 18 May 2026 08:11:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOt4c-0002U0-UC
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 08:11:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOt4c-004u6F-5J
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 10:11:38 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ac9ba-5cb7-0a2a0a5109dd-0a2a4506b342-0
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 10:11:38 +0200
Received: from [209.85.167.46] (helo=mail-lf1-f46.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ac9b9-7371-0a2a45060019-d155a72ed556-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 10:11:37 +0200
Received: by mail-lf1-f46.google.com with SMTP id
 2adb3069b0e04-5aa0862dda1so2775069e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 01:11:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779091897; cv=none;
        d=google.com; s=arc-20240605;
        b=jzud0CBxv77pSuJlwW2ZX455dMZv9bJhV5u/Mq2TsIE1J2Ls5UyoKsFpSpP4IYTMAw
         ZGLJDE9V7ixXhBmJUF4bDxXXbYZtex7mhUGkxbZE3kGinu73Jn5c8Nie+2/bOu84/eZR
         N5GnxTGUon8U8qJf4/9w7qDppp85I0nycSGuLQ0aKgf2+WdErRz54d882Bno2BpVsrLi
         NRWPyA25kReRcXatWn48wHxXrG9qUYWAekNelQg2C9R/Y2fUnLRjFiDfdwlWnyanOpDh
         tF3hqAqVqPROzCGObSlAUmtECU9MYKBKrj4tUhN9CgMprUMv0roEfdGu5LD4pUyHZ5I5
         5UHw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=iOSMKDA3THo11cMixsiTenFnNLnwDVr7W+zNctBt4B4=;
        fh=0sVRqm7+oyz7WJ/bTvyRrhIQoOB1v0nJ1T68JVaBfuo=;
        b=LMlKZax5XUtQr5Y9PftuJ2CojZLCMMXiLZiH7w6D0dX+i6DLubku3XC1+6SmdI2ojp
         hgIi7VCVAvnoA8E3HHaqIak7WENbaqDmSeaUBYVOb7QBytmc8tTSwGDmmsnYjNeTuKls
         bfFbn4RfEerhmqup8WDkSlq1Es7JglI6sXWr4UGZnOFTT+FeCiTRwlE+RlwSrdl2eUp6
         R/UWzQCxZRV7Azm2f2kcHOUjFSY17pzg/wB9xuwjGrI/E/QLwmdnR69ZY4BQf9jzM6fJ
         MeCqR8WmImB7bogr/Mg/qUJZN/G2A+1v9gcxkJBsXFXz/xVFZUBDQJdkkP0uTmnwaZV+
         2D8w==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779091897; x=1779696697; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iOSMKDA3THo11cMixsiTenFnNLnwDVr7W+zNctBt4B4=;
        b=oG/zw29glLfdj3xzNQQpehx2cf08rk50V4TpHCroZ9AbFzm+VWnq+OReJRKgO7TQu7
         Qomw+jOuBeDZd91FKa2vbt0xkJ/ZG3NN06mFFq/t1CoZQFZwtQwlses3Zv6HH/tTQqtd
         puwlZDn8t4RUq1umw+AHza3WyS26VyLVt9kR+jDmBKE823FyDn1N6L9cwW2/yDJVHPzI
         aqptw+gY8A9bZCSp4G9fzNBUvn1Pa96NElx+HsSkXcXFuBxHfR8T5Xng/gSd93+7Dvmd
         ras6vugedWfGkpIiDiiaYOGVhEGMK81Xe5oQ9op3WLtAI9s5h26w+bajAxREnASMlrY4
         35Ew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779091897; x=1779696697;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=iOSMKDA3THo11cMixsiTenFnNLnwDVr7W+zNctBt4B4=;
        b=HtmN5B4yXp25ro0hf6+IHve5296UqQB6J2yBuUjrCZ2V+3rifKbAPGjBlAUzBiNztm
         tsLr3cInidGETtceWXEmTOINevN9MhBiCjvOlFpOhfORBYYCA6RwS87kTHVajPd4XXEi
         6KHiB8QN++iUBxFGbMEneyehMnhu5YbEIbMLkjk9Z9WbilHE1YaCAdOKuzAgV5ca/cTO
         AZJ1gFciPzJKdXH0qn4K6tJvu5BDf6MdtLw6vXY00dHXKBj+yeQwJTQiPAFRujuoGjkl
         xeMed7jO3pl0bD7kYcJQzqgmedZvwhZh3iqlWPIkMwU2ehiyZyuAxnHQ7oIoFO1LAPeu
         BvIQ==
X-Gm-Message-State: AOJu0YzmO5gWfvxfTexkoY2pNK81aPvR4BAQHF1UD4piV2ji7E8ElOUx
	TGowzqZumtdZ4ib/9AvO8yOygbWL3xalZ9CCd7fhQulGv/OMLxEPhDfCgq+0rZw6yMqvyuub0nq
	4joZsCduwFb7c3CVjW/jEf7RmUmd0Hvg=
X-Gm-Gg: Acq92OE2cnAb7TmOlRxJRNwxiJSS+jBKh1KbyDXMXwhRjVGtLTIcbwP6SB4BAiheJPd
	9ehId7+w0idjxsvuQx0HzfvJe8aW5YnAI93dCKWN8At001zJBNahjxliqp7BKeAhArQXlSRM0Rl
	DUmN8ewb0BlL99j9/q9cLeWYcsv5Sp5bU7DQt05DOvT4hjDUtJPbXSwvhnM305pvyXQ14u2IUdo
	5dLgJzYzFVObvy3nJYz7qlpzDHMjg0hee3mWAiF/QGp8GynXiYfaMz0ulKugfuaQd7wQJWGy6Xv
	oTzQ
X-Received: by 2002:a05:6512:33c2:b0:5a8:89d6:93de with SMTP id
 2adb3069b0e04-5aa0e763944mr4331741e87.23.1779091897145; Mon, 18 May 2026
 01:11:37 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778925998.git.mykola_kvach@epam.com> <cbb02d6c5af6606ada3e477e8d45d730ffe72723.1778925998.git.mykola_kvach@epam.com>
 <7f5c613a-33f6-481f-b3f3-d627833a461e@amd.com>
In-Reply-To: <7f5c613a-33f6-481f-b3f3-d627833a461e@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 May 2026 11:11:25 +0300
X-Gm-Features: AVHnY4Ijom0BVbo0-UfPuVV3hywafJ1wCi1RS-fVVRFYdoT0qzxDvqgkP_nEdjY
Message-ID: <CAGeoDV8dL+5O+yYH7DPUFioKQpR6uaPe_cRc+VnJaWxh5NcXng@mail.gmail.com>
Subject: Re: [PATCH 1/2] xen/common: llc-coloring: clear color count on parse failure
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-16d1c6/1779091898-8E98AD75-583BA2BA/0/0
X-purgate-type: clean
X-purgate-size: 1002

Hi Michal,

Thank you for the review.

On Mon, May 18, 2026 at 8:42=E2=80=AFAM Orzel, Michal <michal.orzel@amd.com=
> wrote:
>
>
>
> On 16-May-26 17:03, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > parse_color_config() updates the caller-provided color count while
> > parsing. If parsing later fails, leave the count at zero so callers
> > do not consume a partially parsed configuration.
> I would also add for clarity:
>   The bug is reachable in practice: cmdline_parse() ignores the -EINVAL
>   from a custom_param callback, so boot continues with the partial
>   xen_num_colors / dom0_num_colors that llc_coloring_init() and
>   dom0_set_llc_colors() then consume.

Ack, I will add this to the commit message in the next version.

>
> >
> > Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 18 08:49:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 08:49:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311701.1581831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOtf5-0000eJ-E6; Mon, 18 May 2026 08:49:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311701.1581831; Mon, 18 May 2026 08:49:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOtf5-0000eC-BR; Mon, 18 May 2026 08:49:19 +0000
Received: by outflank-mailman (input) for mailman id 1311701;
 Mon, 18 May 2026 08:49:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+b63a902a6511c8cff3bf+8303+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wOtf3-0000e0-3z
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 08:49:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOtf2-00HRTB-0q; Mon, 18 May 2026 10:49:16 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+b63a902a6511c8cff3bf+8303+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0ad289-2eae-0a2a0a5409dd-0a2a45078f28-4
 for <multiple-recipients>; Mon, 18 May 2026 10:49:15 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+b63a902a6511c8cff3bf+8303+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0ad288-229c-0a2a45070019-5a9b3222de68-3
 for <multiple-recipients>; Mon, 18 May 2026 10:49:12 +0200
Received: from 54-240-197-233.amazon.com ([54.240.197.233]
 helo=u09cd745991455d.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wOtej-00000004XhK-32Yc; Mon, 18 May 2026 08:48:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=g1+eVz8k9W+ci4EcKfxUg7T4Q5pV1mWJW3UUNSLBkTE=; b=OKRaAom10YDl6l9nhetetvzXGk
	UAyRyLCYa3RV3coaFntWB6FvzbaNUq1VEr+HMIEHITv0/ixgYmORJn2Vm/ONJYtS0cidesb6jsqGT
	O7d4+9ujI7VaRzqQsARrrr7B/q5PiZ2D+5kUP4Evay4MKItS+WQaqM4o+jZtzT/w0x9HErlzQY6V2
	z1uE/nSsmPdEpg58I1CY4+4l/LoomUOEUv+q0+P1wmUdk8jSq8dUAfg2VFG0IwDOl1e4DcUEh7Zco
	IQAnQTe2UcariMDSpLtgiI9Ujf2z9ctjsQzxo9LYWq8mcETml5cKdgrf8cQ61ZoOia4KpKkH9Pimj
	uqHORrgg==;
Message-ID: <d3c461415e05345a9b82e6f995828c1ae64a4e61.camel@infradead.org>
Subject: Re: [PATCH v4 04/30] KVM: x86: Add KVM_[GS]ET_CLOCK_GUEST for
 accurate KVM clock migration
From: David Woodhouse <dwmw2@infradead.org>
To: Dongli Zhang <dongli.zhang@oracle.com>, kvm@vger.kernel.org
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
 Shuah Khan <skhan@linuxfoundation.org>, Thomas Gleixner <tglx@kernel.org>,
 Sean Christopherson <seanjc@google.com>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, "H. Peter Anvin" <hpa@zytor.com>, Dave
 Hansen <dave.hansen@linux.intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>,  x86@kernel.org, Marc Zyngier <maz@kernel.org>,
 Juergen Gross <jgross@suse.com>,  Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Paul Durrant <paul@xen.org>, Jonathan Cameron
 <jic23@kernel.org>,  Sascha Bischoff <Sascha.Bischoff@arm.com>, Jack
 Allister <jalliste@amazon.com>, Joey Gouly <joey.gouly@arm.com>, 
 joe.jin@oracle.com, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org,
 linux-kselftest@vger.kernel.org
Date: Mon, 18 May 2026 09:48:56 +0100
In-Reply-To: <0ae8e471-db7a-4842-aca4-8ef643acde8b@oracle.com>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
	 <20260509224824.3264567-5-dwmw2@infradead.org>
	 <0ae8e471-db7a-4842-aca4-8ef643acde8b@oracle.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-PC39DHWiBkFfVKw6GO8r"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-ef75cf/1779094154-09364C48-CAC50AD7/0/0
X-purgate-type: clean
X-purgate-size: 13934


--=-PC39DHWiBkFfVKw6GO8r
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, 2026-05-18 at 00:52 -0700, Dongli Zhang wrote:
> On 5/9/26 3:46 PM, David Woodhouse wrote:

Huh, I didn't write that then; it isn't September yet. Did you mean
2026-05-09? We aren't all in the US...=20

Strictly speaking, you just misattributed a quote of mine, which is
very poor form :)

What mailer are you using? Can it be fixed?

> > From: Jack Allister <jalliste@amazon.com>
> >=20
> > Where kvm->arch.use_master_clock is false (because the host TSC is
> > unreliable, or the guest TSCs are configured strangely), the KVM clock
> > is *not* defined as a function of the guest TSC so KVM_GET_CLOCK_GUEST
> > returns an error. In this case, as documented, userspace shall use the
> > legacy KVM_GET_CLOCK ioctl. The loss of precision is acceptable in this
>=20
> The description here confused me a little. It sounds like userspace shoul=
d call
> KVM_SET_CLOCK if KVM_SET_CLOCK_GUEST fails. However, I assume it actually=
 means
> that userspace should do nothing extra if KVM_SET_CLOCK_GUEST fails, and =
simply
> rely on the prior KVM_SET_CLOCK and KVM_VCPU_TSC_OFFSET workflow describe=
d in
> patch 07. Is that correct?

Yes. If KVM_SET_CLOCK_GUEST doesn't work (which might be because
KVM_GET_CLOCK_GUEST didn't work so userspace doesn't have the data in
the first place, or because the actual ioctl returns failure), then
userspace should rely on the old method using KVM_SET_CLOCK imprecisely
instead. That includes on a migration from an older kernel that *lacks*
KVM_GET_CLOCK_GUEST, of course.

I don't think it strictly matters whether userspace does KVM_SET_CLOCK
first, then *tries* KVM_SET_CLOCK_GUEST, or whether it tries
KVM_SET_CLOCK_GUEST and then only calls KVM_SET_CLOCK on failure? I'd
probably be inclined not to use KVM_SET_CLOCK at all unless it is known
to be needed?

> > +4.145 KVM_GET_CLOCK_GUEST
> > +----------------------------
> > +
> > +:Capability: none
> > +:Architectures: x86_64
> > +:Type: vcpu ioctl
> > +:Parameters: struct pvclock_vcpu_time_info (out)
> > +:Returns: 0 on success, <0 on error
> > +
> > +Retrieves the current time information structure used for KVM/PV clock=
s,
> > +in precisely the form advertised to the guest vCPU, which gives parame=
ters
> > +for a direct conversion from a guest TSC value to nanoseconds.
> > +
> > +When the KVM clock is not in "master clock" mode, for example because =
the
> > +host TSC is unreliable or the guest TSCs are oddly configured, the KVM=
 clock
> > +is actually defined by the host CLOCK_MONOTONIC_RAW instead of the gue=
st TSC.
> > +In this case, the KVM_GET_CLOCK_GUEST ioctl returns -EINVAL.
> > +
> > +4.146 KVM_SET_CLOCK_GUEST
> > +----------------------------
> > +
> > +:Capability: none
>=20
> Do we need a KVM_CHECK_EXTENSION capability for this? If userspace wants =
to
> support the new API, should it detect availability via KVM_CHECK_EXTENSIO=
N, or
> simply try the ioctl and handle failure?

That might be conventional, I suppose. But I suspect Jack's thinking
was that userspace is going to have to *try* it anyway, and still might
have to fall back to what KVM_SET_CLOCK can manage, so userspace
probably wouldn't even bother to check that capability; it doesn't
matter.

Since then, we've added some more attributes in this series though, and
it probably is worth adding a cap which advertises them *all*?
Something like KVM_CAP_CLOCK_PRECISION_API?

> > +#ifdef CONFIG_X86_64
> > +static int kvm_vcpu_ioctl_get_clock_guest(struct kvm_vcpu *v, void __u=
ser *argp)
> > +{
> > +	struct pvclock_vcpu_time_info hv_clock =3D {};
> > +	struct kvm_vcpu_arch *vcpu =3D &v->arch;
> > +	struct kvm_arch *ka =3D &v->kvm->arch;
> > +	unsigned int seq;
> > +
> > +	/*
> > +	 * If KVM_REQ_CLOCK_UPDATE is already pending, or if the pvclock
> > +	 * has never been generated at all, call kvm_guest_time_update().
> > +	 */
> > +	if (kvm_check_request(KVM_REQ_CLOCK_UPDATE, v) || !vcpu->hw_tsc_hz) {
>=20
> This was flagged by AI, and I am still checking whether it is a real issu=
e.
>=20
> What happens if KVM_REQ_MASTERCLOCK_UPDATE and KVM_REQ_CLOCK_UPDATE are b=
oth
> pending?
>=20
> From my perspective, I am also curious how we should reason about this in=
 other
> scenarios in the future. Specifically, when do we need to process
> KVM_REQ_MASTERCLOCK_UPDATE before KVM_REQ_CLOCK_UPDATE, and when is it
> acceptable not to? I noticed that kvm_cpuid() already processes only
> KVM_REQ_CLOCK_UPDATE.

The way I've been thinking about it =E2=80=94 and I'm only two cups of coff=
ee
into Monday so take those words literally and don't think of them as
British understatement of something I believe is absolute truth =E2=80=94 i=
s
that MASTERCLOCK_UPDATE is updating the actual clock for the whole VM,
while CLOCK_UPDATE is about *putting* that information into the per-
vCPU pvclock structures.

So after a MASTERCLOCK_UPDATE, we need to do a CLOCK_UPDATE on all
vCPUs to disseminate the result. Which means that if CLOCK_UPDATE is
already pending before a MASTERCLOCK_UPDATE, it's probably redundant
and might as well be cleared because it's only going to get set *again*
in kvm_end_pvclock_update()?=20


> > +	/*
> > +	 * Calculate the guest TSC at the new reference point, and the
> > +	 * corresponding KVM clock value according to user_hv_clock.
> > +	 * Adjust kvmclock_offset so both definitions agree.
> > +	 */
> > +	guest_tsc =3D kvm_read_l1_tsc(v, ka->master_cycle_now);
> > +	user_clk_ns =3D __pvclock_read_cycles(&user_hv_clock, guest_tsc);
> > +	ka->kvmclock_offset =3D user_clk_ns - ka->master_kernel_ns;
>=20
> I used to explore adjusting ka->kvmclock_offset in KVM_SET_CLOCK based on=
 the
> old hv_clock and the new hv_clock long time ago. At that time, my concern=
 was
> what would happen if userspace provided bogus values. Theoretically, this=
 is
> possible with any ioctl. My concern may be unnecessary.
>=20
> Would it be helpful to validate that the delta is within a reasonable ran=
ge,
> e.g. that the drift can never be more than five minutes (forward or backw=
ard)?

Setting confidential guests aside, which have their own way of trusting
the TSC and should never even *consider* using kvmclock, surely this is
supposed to be *entirely* under the control of the VMM? The kernel has
no business deciding what is 'bogus'?

If a guest has been running for months on a previous host and is
migrated to a new host, don't we expect that the KVM clock of the new
VM on the new host is tweaked from its default near-zero after
creation, to some large amount?


--=-PC39DHWiBkFfVKw6GO8r
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUxODA4NDg1
NlowLwYJKoZIhvcNAQkEMSIEIB6QrOyGWiQGu0gwZYzVi/UTjfzXQXvYkSLfXocOC1k8MGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAIuYCC1JFBO6F
VHKhI3jauVlAXJD+QyZevE+gU11/CtMaOJuOhulaIJc3fm0A+R6vDht0Dp2Uoa3v04q2q0TGHl+c
AwHsgX1aSCib7RJoPvNeDyGIrByYl4jVMV7CKXSHs/eoHPUHRzQZqQsW3PqHE9n2kZGUCDGjtvJf
UnKt51y9uQQEFt4O3UlxMJmFFzY6Ah+02IMor6xamxxgHrE6jyIO9oLzfnArXbgtY42iIyJFzC/w
bu80URv0TgJvttgg8bz7NDSrlYX9rzkvtgDGsGghP7NjwtgCueOVcwb3GP2KVt6M+lXwL6hgb5Py
jmNMkUhE1tWm/N9WSUgllnEVA/buC8pKKnFFr+4w+0CJFNkf2qvqnMMkv+fYLiUBvkcC2SzbrvCn
7e8J/bbhLB0+ull6V0FYWDbMEha3rBLiya8OcpTUBCVPBZ20l19kp+UnwMUo2gr5jlkGDfFvHtQW
N9h0xFlpCmYsB8IPEIG4oZCu9bBXDq8a0cGKydqIQV1xsAlXRKkYE4CBjFIdA2PU42i2zkI7ZcqA
qM7htyE7mK/b4o/i6u5T0jLKYsVFo5dO+v6pAs9JwWqRcGlg0W/hpsquU5eijb4GTZ4z6An7UDSd
hs2Frd9KxzpOWIm9zUvO0sODrHipNx2gqvmef7eghUx7/DGNIPiwc2AKXLD55t0AAAAAAAA=


--=-PC39DHWiBkFfVKw6GO8r--


From xen-devel-bounces@lists.xenproject.org Mon May 18 09:49:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 09:49:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311728.1581845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOuah-00029F-Mt; Mon, 18 May 2026 09:48:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311728.1581845; Mon, 18 May 2026 09:48:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOuah-000298-K3; Mon, 18 May 2026 09:48:51 +0000
Received: by outflank-mailman (input) for mailman id 1311728;
 Mon, 18 May 2026 09:48:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wOuag-000291-TN
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 09:48:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOuaf-008Use-ME
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 11:48:49 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ae079-bab6-0a2a0a5309dd-0a2a450ac1b6-28
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 11:48:49 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ae081-56b3-0a2a450a0019-d155802ba5ae-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 11:48:49 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-48a3e9862f0so11470205e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 02:48:49 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48feaa2a878sm121655855e9.1.2026.05.18.02.48.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 02:48:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779097729; x=1779702529; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Elz3+3vXcMkAfADXuRQNuRK7otMpj7E9wyS0gDnZ29M=;
        b=Bv6WOOlbUSBnR+UOMIHq8Biw6rTTIUFG5fgl6bePoMil1ZD5mcCOjGGSBbzZbZGrUq
         +1/IrCPUoJIA/MsiKG+CVmVreqitA9HvyKfmbETjImoCtcMK3s1ik7z/BYGTFcCI6CY0
         5OoOhAWf66ZSSLSkDVIeE7WtBDRBEbMoJvf9iIKbAQZ+O0m34AIdzan9S5XlesxI1De4
         hMWZbJVc54eP5uraoq30HI7o+oqXw+jxxkZsGdsG2UpDLy/tnzFjCSDu1hZlVNXa2Ri3
         ZJW0JIe6Spa33HTlbdBIvfGl4Niz+okReowaJHeoos6nPzY5hTqq9ITldMfFn8w/HGN1
         m6ng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779097729; x=1779702529;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Elz3+3vXcMkAfADXuRQNuRK7otMpj7E9wyS0gDnZ29M=;
        b=XacZ4YXB3PlafHzUqwMcqTO9xD3axliBn9F69A6JjEMG74UfUqkej7zC2IC+PqxGlB
         7J0wF/4pkDIgl/44P9VsmQ/FSG/yKkOjyMaubtbZu8/OIQNDgPyTRjzFzzIlU2e1mKpH
         ObSVg5EHw495u+g9TjiuTWLj2+cJjCRQleeauIKYPfb2df0+330+Gv6++2p+FDPMUhVk
         Fbgc+256WkekEv7CAfoSGR8N7j7Ub4dlumFKJpEpu4canXjg4hwj1Bc21I7Oa4H9Tfhv
         nZ5J5jf2jttZ+3wa3uSmnUnyxnlQoDd2n81QKUVDdGcQ+pWz1mY0+mc3yPLyImcaUjsP
         UI1A==
X-Forwarded-Encrypted: i=1; AFNElJ9M7OIkfInCPcuoZxX92XEQx0l9iqnoNcby7cPDQCL1+VRbH2sBj+lKkHrO3Ha6lefw1AxTlAhX0EI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx/EB865yb/GdrJQGeyo26/+imky6dzQwaFKwwC7B6VejcSvyhi
	ZnZHZ+2kySWXSGtezar0MC06E7YWvHVdypr2odFeyE5v6Mzlzlal9k0a1xC+TQq4Wg==
X-Gm-Gg: Acq92OEFYMzVkbacx7lu2H6yVZM9lC59tMt2JvPtovBe8LpnzYqMg/t/VCIsVHzfK/U
	Jong+eAMHsQTeotBIoZweq/id0fSDQhZML0LBzlfBWr80AXv1H6qoI7AuNoh7u0LqlTGS2Wgi+Q
	6YJemrIvj18XGUkLYKZ9cF/rtYOAvAohJZ3b0yvt2SDqVHNa8JHj4g/j1ygRvaLB7gMRFAmE5SP
	YCeje4oRLG1UgWPy4as36XCTHBZgxzwrFLIvfS3sfJYKgyVzryJrGrQYJXYWrGN3/6jJNrsnDh4
	6Z7sS/C5mArcKlCDIbkrc0oF22DGv3SSBcfigqwxnXCgSCxz+RYd/Ett+u57ALbV4teaDU8ChrW
	cEvg+TBlK0qrkf+m3uy9XK1pCkMJuLjycQXMYyGVC/lNW4VlTvyQj2bF3NBLBQdlLDKQ1qshhMf
	OFLQs3S7iL0naRnpnXBbcQHI/uiAj3ArWtZATImUdxapFZVNeCUjhJ8phKGPqTmvJ7hf6nPai9+
	HIPmwn0u36yxVJcgCwHdz3rzQ==
X-Received: by 2002:a05:600c:c4a7:b0:48a:53cb:8604 with SMTP id 5b1f17b1804b1-48fe539519dmr209155345e9.14.1779097729021;
        Mon, 18 May 2026 02:48:49 -0700 (PDT)
Message-ID: <784e95e0-1a77-46eb-a4ef-bc8be8c9b176@suse.com>
Date: Mon, 18 May 2026 11:48:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <bc9ed10d-5ae6-4d9d-af90-648931731a52@suse.com>
 <8ef5af19-7660-4ee9-9cf6-094c744abd0c@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8ef5af19-7660-4ee9-9cf6-094c744abd0c@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1779097729-7D9808B7-8E4CF4B9/0/0
X-purgate-type: clean
X-purgate-size: 1080

On 13.05.2026 19:00, Andrew Cooper wrote:
> On 13/05/2026 3:03 pm, Jan Beulich wrote:
>> ... ("Conversions shall not be performed between a pointer to an
>> incomplete type and any other type"): Add an intermediate cat to void *.
> 
> cast
> 
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
>> (covering more than just this)
>>
>> --- a/xen/arch/x86/cpu/mcheck/mce.c
>> +++ b/xen/arch/x86/cpu/mcheck/mce.c
>> @@ -1264,7 +1264,7 @@ static void cf_check __maybe_unused x86_
>>  
>>  #if BITS_PER_LONG == 64
>>  
>> -#define ID2COOKIE(id) ((mctelem_cookie_t)(id))
>> +#define ID2COOKIE(id) ((mctelem_cookie_t)(void *)(id))
> 
> The interface here is horrible, because we're passing a pointer to a
> uint64_t to userspace and back.
> 
> But, can't we just cast through unsigned long instead?  The compiler is
> happy, and that feels safer than using a pointer type.

As per https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14416863057
that doesn't work.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 09:51:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 09:51:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311735.1581853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOuct-0003dv-1e; Mon, 18 May 2026 09:51:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311735.1581853; Mon, 18 May 2026 09:51:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOucs-0003do-Uw; Mon, 18 May 2026 09:51:06 +0000
Received: by outflank-mailman (input) for mailman id 1311735;
 Mon, 18 May 2026 09:51:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wOucr-0003de-CU
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 09:51:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOucq-00893p-Oc
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 11:51:04 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ae0fa-2eae-0a2a0a5409dd-0a2a4509be50-34
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 11:51:04 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ae108-2497-0a2a45090019-d155dd2cb0a7-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 11:51:04 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-43fe608cb92so1148921f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 02:51:04 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da0fe0fecsm33420436f8f.26.2026.05.18.02.51.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 02:51:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Content-Language:Cc:To:Subject:From:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779097864; x=1779702664; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=yT10nE9+UeFw0lvNVFr/cnlH9rTSD2KxkA0YNAaxeRI=;
        b=aOob9NHM8zNN/6zS/2lYSuld9XLZhpz1eIpzqSeD6/SuDh/IWWCjjG9lyxW1N7bUSW
         XE+3Gv9KhmhfLAOODtDw9G5eUDN22Cz0sNnO81gtEr+XZxBKtjemtl6yAB2vzCuw8zlb
         PKddaFWWlyW0dD0WS8W+en9FFfb2lS7QIEMhf3zmeLDS6N/k7NAkWCzU7+0ceeKj33zT
         69dCiCpSTvOU/YzvyZspF+Eh6KAUsgkFmv4JcZ7ZraiS7p1Wdq8lPZPhRmd57d2iQpaf
         Mw/POZ0+RvU/TVw9gm7chVyX6XXtTkCrqQNFGooFLZdZJsypCGbsvD8C7S2TUmtMRPGg
         Dl5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779097864; x=1779702664;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=yT10nE9+UeFw0lvNVFr/cnlH9rTSD2KxkA0YNAaxeRI=;
        b=nBGeJwDTe1w8KZB0JRYb1YPcMDraTnGTAS7krXjHXSa2wnh+9Ld6RUzRmYI8Sy6Cps
         gVLFwo90365to5mfKiAQXXA4scpf0+ZHABvQYLhzLgdsdaqfu3GLiW5uq76wnPbC8eRH
         d3TKon7ev9iPU7GbWi02AvQyphutHRqeXXLWe1v5YJnGrTIGfuBITC9avmBCwxjl4d/S
         d0gQr/D5e76Ee4jwYEGenkXmubKP4Q7IkPKX7cw+KgA8RZC4W5yIdbYaIbjEqYsGvv06
         CobXzCOmvLu5rbpK7XHK6LPlXxOhumAQb9/84dnuSLOxT0ozkDnoHDnXnGwa+KdWQ/jv
         K4Gw==
X-Gm-Message-State: AOJu0Yz0EzDzOU1e+TbdBF1ZEUkOfo8f2Era3rnsxwKD27CeaMyiVw5y
	UHodj8kCC4BPaacPj1RvpY7fep0EsOKn4bEAqu2HX8aXCrU8cBYK2a1ORiCDRQp+0cE/WGcr3Rq
	ci2E=
X-Gm-Gg: Acq92OGgA2dI4NY7ZASDn4LwfoYcKFrzLJlxLJ8mxJOIgDrwd5WuJhs41QZzH2n0fwl
	we/9N9MKA9ZwrSEIX4HC9/L7SgDFtDUThKKfdp2C1i5jpv8tOrjRLO4NOAyrM4MNbcVWyq4gepW
	WqAERdw2B6fDKPRc/S/AYBEcHKDReWrP7xiPgAFfPwla8b1ugsw7L4M5jkJIIKPv+9zP3Gj61t4
	8bNTKwaQEjRw2w4e/FM+IpqwbosK4ZXCOIrPjPPFMHtQx4urrNJ8qwF+PQCxCstQ3aCw/5y2mRj
	w4PaRWpoO9HhSvvGxxd+Z9/GjURncb4O3CDxyM//1pgeHzWDBvaxmGpsxVZlwCDM/XdNqXVuZen
	AXvFvT5YmL1PusVRnHxtiYc8O92wXOK/mKDEyMN2EbBBSTQlw7VUqDyPxvcttBS5RerWo7uSltE
	w+wCHCYkTqEFzeTezFeo9QwU9fgxli51J6AwE5oVr1jpMUITmPO4EWeZ7Qi1BDODoMBbdKuONqo
	AvjZpnQDTfRjkQ=
X-Received: by 2002:a05:6000:2508:b0:454:9655:43af with SMTP id ffacd0b85a97d-45e5c30d598mr21734439f8f.0.1779097863871;
        Mon, 18 May 2026 02:51:03 -0700 (PDT)
Message-ID: <ad17d551-139b-4edb-b820-6ab12a4d70fe@suse.com>
Date: Mon, 18 May 2026 11:51:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1779097864-8A788A53-08BD1323/0/0
X-purgate-type: clean
X-purgate-size: 636

... ("Conversions shall not be performed between a pointer to an
incomplete type and any other type"): Add an intermediate cast to
unsigned long.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Add comment.

--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -1264,7 +1264,8 @@ static void cf_check __maybe_unused x86_
 
 #if BITS_PER_LONG == 64
 
-#define ID2COOKIE(id) ((mctelem_cookie_t)(id))
+/* Two layers of casting to cover Misra C:2012 rule 11.2. */
+#define ID2COOKIE(id) ((mctelem_cookie_t)(void *)(id))
 #define COOKIE2ID(c) ((uint64_t)(c))
 
 #elif defined(BITS_PER_LONG)


From xen-devel-bounces@lists.xenproject.org Mon May 18 10:58:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 10:58:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311765.1581911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOvfi-00041z-UX; Mon, 18 May 2026 10:58:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311765.1581911; Mon, 18 May 2026 10:58:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOvfi-00041r-QV; Mon, 18 May 2026 10:58:06 +0000
Received: by outflank-mailman (input) for mailman id 1311765;
 Mon, 18 May 2026 10:58:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOvfh-00041l-MP
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 10:58:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOvfh-008Lzl-2W
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 12:58:05 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0af0b4-e002-0a2a0a5209dd-0a2a45079cec-40
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 12:58:04 +0200
Received: from [209.85.167.42] (helo=mail-lf1-f42.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0af0bc-229c-0a2a45070019-d155a72abd92-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 12:58:04 +0200
Received: by mail-lf1-f42.google.com with SMTP id
 2adb3069b0e04-5a74ac8b40aso2367623e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 03:58:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779101884; cv=none;
        d=google.com; s=arc-20240605;
        b=HpvkUI03UJ2oPWJ+vj6rcnnSuVMHk++DTWnG1zBWvtz1CKwO6Dute4llZqJHSCCCbF
         Q3UDohBpEQbcI2w1RsWo7gMJs+Xlj646PIk7/RefCl7B8/Lv4GQHLMZ/h/nmtzKjEM6P
         sumsShKpErjAr21bo0uuNiScJyaueBD94+hl9rj3HGg6WX6D+BL4r3DEpHMdafnG4GlV
         +1MFUAFvzY/EwGvHFkAhU289aRVVqbtNDpzJ+H87Pl48Gno5ifLKR3kmyOB9Br/KvfxL
         Gwwnq7rlRLgLsGtqCPcSPWGid0ZpTHYCz8ezTnTagfXKw0enlxCXsrIQ3VUnNQXfDP1C
         ZFEQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=iDEX8UDptJhfWKvz2TeyO+2B8cGilsxQsbRsQorvcUQ=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=FDtCkP928OSjq6D56hzW9n4ITrFBHHH/Uh/hKk2uaKA4juIWMYb2Y+xrVSckGrpFCk
         sdtiUtkh8BjT4Kghgh+d+X9Y6WkhVrrsGEuuXAsJizovWD+h1accC36zkHp91ADP6oc/
         Ymi8qtD6CNm4zs9qGSBSG8FvGBoBlVhbEtHcONMCSaXf4fiZEaY5XJ/S8/vyLXnKSiHZ
         YyEj1khweaNLDaUJYw9cUcGVG3ToGYy9fWycAvS6obzb+zXHY8wN4mbXcq8RQVIXvAr3
         GlKWrAjZNStC3E1k/VVvWBrFfBcqxnoiF72C1kheCeDBasGE3Fu/d8sfnxTdLLLwElDE
         HXJg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779101884; x=1779706684; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iDEX8UDptJhfWKvz2TeyO+2B8cGilsxQsbRsQorvcUQ=;
        b=MydVJ5cGfvl7SrujubgFRJWekQplRsvEoTnhIVIUbRnyjUY6rQ48TD7F5q/iQreJlq
         pPqD5VgI+V8c6we7pnfdWA6vtfdq3NOJJpArRZvNYH9CThfqOl1CjG3yxmvMR3kWcxZ8
         2mFIYFftpJdW2LBBuPfTk8VyfMnWUPrtahkBzTTvGCw3u5iYYjK0C9REkP+W7Zvj5Rso
         4HYEIO67a3WlUiIFnxezbNMgxxg/LNaJQXAdEhB345qbXaxxuctJH+BYUfa8d5s9YdqG
         U7U5mkX+kRHI9D3cxSqvP1jloJsQD3yWAWnJ02vEDHBSSSAfugiC+JKi3HEzT3FykBzc
         ObYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779101884; x=1779706684;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=iDEX8UDptJhfWKvz2TeyO+2B8cGilsxQsbRsQorvcUQ=;
        b=Wg18r+hBDjXUPnqTtAFl+PdIGHElQXbVEgkPUj634qJie/2H9i0NPha/RQeHxZSRg5
         QTS9K/K7mtZyqkQMvkokmbMlBgy0wReVio0otTfEsqxh0lVG35N1nG92E2A58LM9cC5J
         UdJttzJANJcexAU02ULKyy1R88cwQ4FnZNu0+VbaLBZ13/8Jfl9I35itv4T8j7oeGuwH
         292D6dXBynGvLaxiZuQ35f1R1bLwYIVqLud6lrr0IQMqdL/It/K5rHrd2GA9LndHYGXo
         uRtTqfChcLqYvIX8N5ncUZEdqYcYMdCMkrGUtV9inA/gGBnXvOGAXji8YvYKiYzihzgD
         9zYA==
X-Gm-Message-State: AOJu0YwCpMvFbrUBDZ6mY7GGgB55EKVQQDeUb7k25QKG6jsrfb1sIjzR
	2RYP+bUtqt92Lztm1DcZSS9qbe3HdMCpUGNLNFGGeWeJ+CFgzUMPpbV6xL2SqooHZ7uD3lvd+wo
	CR3voYmmfutYohM7vHGKJmyYs1J1pTdE=
X-Gm-Gg: Acq92OGR/N6s552rDIZLPZmzXWKHcb8zafsZXL+uHSLb2ERyblqpckDUZ6QTNJ6FxVA
	DJpZlV+usWCHMqPdGWpkzhvGtJyGzkAnV9JECmvBWdbYP1yEAcR5KTntejlinGhDa9w6vMUpHhV
	ZkVGBaHa8efUwM9Q27EraC3Kw3tYueveCv4pi7Pxva1X5XpiGIMEYDT53sFC5CqiJkcICUj0PFz
	xJ0IcGj2f2XlsOcmdRDHDU/cILJBi+IniKDU95K3YknCQH0vlEvtExQLo2uP+poPEedmBJPWSML
	s4G1
X-Received: by 2002:ac2:4e0a:0:b0:5a3:d1d9:6080 with SMTP id
 2adb3069b0e04-5aa0e76a4abmr3831035e87.29.1779101883808; Mon, 18 May 2026
 03:58:03 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778605274.git.mykola_kvach@epam.com> <8973fc6bf69d8b20cebb61289c1b8596b1a09900.1778605274.git.mykola_kvach@epam.com>
 <BA33B390-3ECC-4EBF-8305-5E91C8451398@arm.com>
In-Reply-To: <BA33B390-3ECC-4EBF-8305-5E91C8451398@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 May 2026 13:57:52 +0300
X-Gm-Features: AVHnY4JIQPONCjjmKRJsEdQBFTYJgXXhCyzRS5OaDDBSDz37fWZ0avdzJM1muVQ
Message-ID: <CAGeoDV-X=P44aTfYP3ZbbszMBBhq_ig72nMM9qLnmPWMFm64Xg@mail.gmail.com>
Subject: Re: [PATCH v9 04/13] xen/arm: gic-v3: Implement GICv3 suspend/resume functions
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ef75cf/1779101884-0A573C48-CD234429/0/0
X-purgate-type: clean
X-purgate-size: 9698

Hi Luca,

Thank you for the detailed review.

On Wed, May 13, 2026 at 7:12=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> > +}
> > +
> > +static int gicv3_disable_redist(void)
> > +{
> > +    void __iomem *waker =3D GICD_RDIST_BASE + GICR_WAKER;
> > +    s_time_t deadline;
> > +
> > +    /*
> > +     * Avoid infinite loop if Non-secure does not have access to GICR_=
WAKER.
> > +     * See Arm IHI 0069H.b, 12.11.42 GICR_WAKER:
> > +     *     When GICD_CTLR.DS =3D=3D 0 and an access is Non-secure acce=
sses to this
> > +     *     register are RAZ/WI.
> > +     */
> > +    if ( !(readl_relaxed(GICD + GICD_CTLR) & GICD_CTLR_DS) )
> > +        return 0;
> > +
> > +    deadline =3D NOW() + MILLISECS(1000);
> > +
> > +    writel_relaxed(readl_relaxed(waker) | GICR_WAKER_ProcessorSleep, w=
aker);
> > +    while ( (readl_relaxed(waker) & GICR_WAKER_ChildrenAsleep) =3D=3D =
0 )
> > +    {
> > +        if ( NOW() > deadline )
> > +        {
> > +            printk("GICv3: Timeout waiting for redistributor to sleep\=
n");
>
> I think here we should clear GICR_WAKER_ProcessorSleep, the Arm IHI 0069H=
.b, section
> 11.1 says that
>
> =E2=80=9C=E2=80=9D"
> When GICR_WAKER.ProcessorSleep =3D=3D 1 or GICR_WAKER.ChildrenAsleep =3D=
=3D 1 then a write to any GICC_*,
> GICV_*, GICH_*, ICC_*, ICV_*, or ICH_* registers, other than those in the=
 following list, is unpredictable:
> =E2=80=A2 ICC_SRE_EL1.
> =E2=80=A2 ICC_SRE_EL2.
> =E2=80=A2 ICC_SRE_EL3
> =E2=80=9C""
> But in the error path used in gicv3_suspend() we are writing ICH_HCR_EL2 =
and ICC_IGRPEN1_EL1.

Agreed. I will fix the abort path by calling gicv3_enable_redist() before
restoring the CPU/virtual interface state.

>
> > +            return -ETIMEDOUT;
> > +        }
> > +        cpu_relax();
> > +        udelay(10);
> > +    }
> > +
> > +    return 0;
> > +}
> > +
> > +#define GET_SPI_REG_OFFSET(name, is_espi) \
> > +    ((is_espi) ? GICD_##name##nE : GICD_##name)
> > +
> > +static void gicv3_store_spi_irq_block(struct dist_irq_block *irqs,
> > +                                      unsigned int i, bool is_espi)
> > +{
> > +    void __iomem *base;
> > +    unsigned int irq;
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ICFGR, is_espi) + i * sizeof(ir=
qs->icfgr);
> > +    irqs->icfgr[0] =3D readl_relaxed(base);
> > +    irqs->icfgr[1] =3D readl_relaxed(base + 4);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(IPRIORITYR, is_espi);
> > +    base +=3D i * sizeof(irqs->ipriorityr);
> > +    for ( irq =3D 0; irq < ARRAY_SIZE(irqs->ipriorityr); irq++ )
> > +        irqs->ipriorityr[irq] =3D readl_relaxed(base + 4 * irq);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(IROUTER, is_espi);
> > +    base +=3D i * sizeof(irqs->irouter);
> > +    for ( irq =3D 0; irq < ARRAY_SIZE(irqs->irouter); irq++ )
> > +        irqs->irouter[irq] =3D readq_relaxed_non_atomic(base + 8 * irq=
);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ISACTIVER, is_espi);
> > +    base +=3D i * sizeof(irqs->isactiver);
> > +    irqs->isactiver =3D readl_relaxed(base);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ISENABLER, is_espi);
> > +    base +=3D i * sizeof(irqs->isenabler);
> > +    irqs->isenabler =3D readl_relaxed(base);
> > +}
> > +
> > +static void gicv3_restore_spi_irq_config(struct dist_irq_block *irqs,
> > +                                         unsigned int i, bool is_espi)
> > +{
> > +    void __iomem *base;
> > +    unsigned int irq;
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ICFGR, is_espi) + i * sizeof(ir=
qs->icfgr);
> > +    writel_relaxed(irqs->icfgr[0], base);
> > +    writel_relaxed(irqs->icfgr[1], base + 4);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(IPRIORITYR, is_espi);
> > +    base +=3D i * sizeof(irqs->ipriorityr);
> > +    for ( irq =3D 0; irq < ARRAY_SIZE(irqs->ipriorityr); irq++ )
> > +        writel_relaxed(irqs->ipriorityr[irq], base + 4 * irq);
> > +}
> > +
> > +static void gicv3_restore_spi_irq_routing(struct dist_irq_block *irqs,
> > +                                          unsigned int i, bool is_espi=
)
> > +{
> > +    void __iomem *base;
> > +    unsigned int irq;
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(IROUTER, is_espi);
> > +    base +=3D i * sizeof(irqs->irouter);
> > +    for ( irq =3D 0; irq < ARRAY_SIZE(irqs->irouter); irq++ )
> > +        writeq_relaxed_non_atomic(irqs->irouter[irq], base + 8 * irq);
> > +}
> > +
> > +static void gicv3_restore_spi_irq_state(struct dist_irq_block *irqs,
> > +                                        unsigned int i, bool is_espi)
> > +{
> > +    void __iomem *base;
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ICENABLER, is_espi) + i * 4;
> > +    writel_relaxed(GENMASK(31, 0), base);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ISENABLER, is_espi);
> > +    base +=3D i * sizeof(irqs->isenabler);
> > +    writel_relaxed(irqs->isenabler, base);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ICACTIVER, is_espi) + i * 4;
> > +    writel_relaxed(GENMASK(31, 0), base);
> > +
> > +    base =3D GICD + GET_SPI_REG_OFFSET(ISACTIVER, is_espi);
> > +    base +=3D i * sizeof(irqs->isactiver);
> > +    writel_relaxed(irqs->isactiver, base);
> > +}
> > +
> > +static int gicv3_suspend(void)
> > +{
> > +    unsigned int i;
> > +    void __iomem *base;
> > +    int ret;
> > +    struct redist_ctx *rdist =3D &gicv3_ctx.rdist;
> > +
> > +    /* Save GICC configuration */
> > +    gicv3_ctx.cpu.ctlr     =3D READ_SYSREG(ICC_CTLR_EL1);
> > +    gicv3_ctx.cpu.pmr      =3D READ_SYSREG(ICC_PMR_EL1);
> > +    gicv3_ctx.cpu.bpr      =3D READ_SYSREG(ICC_BPR1_EL1);
> > +    gicv3_ctx.cpu.sre_el2  =3D READ_SYSREG(ICC_SRE_EL2);
> > +    gicv3_ctx.cpu.grpen    =3D READ_SYSREG(ICC_IGRPEN1_EL1);
> > +
> > +    gicv3_disable_interface();
>
> Should we check that ICC_AP1R<n>_EL1 =3D=3D 0 before continuing our
> suspend? Like we do in the GICv2?

Yes, I agree. This is the GICv3 equivalent of the GICv2
GICC_APR<n> check for the physical CPU interface active-priority
state.

I will use ICH_VTR_EL2.PREbits to decide which AP1R registers are
implemented, so we do not read an unimplemented ICC_AP1R<n>_EL1
register.

>
> > +
> > +    ret =3D gicv3_disable_redist();
> > +    if ( ret )
> > +        goto out_enable_iface;
> > +
> > +    /* Save GICR configuration */
> > +    gicv3_redist_wait_for_rwp();
> > +
> > +    base =3D GICD_RDIST_BASE;
> > +
> > +    rdist->ctlr =3D readl_relaxed(base + GICR_CTLR);
> > +
> > +    rdist->propbase =3D readq_relaxed(base + GICR_PROPBASER);
> > +    rdist->pendbase =3D readq_relaxed(base + GICR_PENDBASER);
> > +
> > +    base =3D GICD_RDIST_SGI_BASE;
> > +
> > +    /* Save priority on PPI and SGI interrupts */
> > +    for ( i =3D 0; i < NR_GIC_LOCAL_IRQS / 4; i++ )
> > +        rdist->ipriorityr[i] =3D readl_relaxed(base + GICR_IPRIORITYR0=
 + 4 * i);
> > +
> > +    rdist->isactiver =3D readl_relaxed(base + GICR_ISACTIVER0);
> > +    rdist->isenabler =3D readl_relaxed(base + GICR_ISENABLER0);
> > +    rdist->igroupr   =3D readl_relaxed(base + GICR_IGROUPR0);
> > +    rdist->icfgr     =3D readl_relaxed(base + GICR_ICFGR1);
> > +
> > +    /* Save GICD configuration */
> > +    gicv3_dist_wait_for_rwp();
> > +    gicv3_ctx.dist.ctlr =3D readl_relaxed(GICD + GICD_CTLR);
> > +
> > +    for ( i =3D 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ )
> > +        gicv3_store_spi_irq_block(gicv3_ctx.dist.irqs + i - 1, i, fals=
e);
> > +
> > +#ifdef CONFIG_GICV3_ESPI
> > +    for ( i =3D 0; i < gic_number_espis() / 32; i++ )
> > +        gicv3_store_spi_irq_block(gicv3_ctx.dist.espi_irqs + i, i, tru=
e);
> > +#endif
> > +
> > +    return 0;
> > +
> > + out_enable_iface:
> > +    gicv3_hyp_enable(true);
> > +    WRITE_SYSREG(gicv3_ctx.cpu.grpen, ICC_IGRPEN1_EL1);
> > +    isb();
> > +
> > +    return ret;
> > +}
> > +
> > +static void gicv3_resume(void)
> > +{
> > +    int ret;
> > +    unsigned int i;
> > +    uint32_t dist_ctlr;
> > +    void __iomem *base;
> > +    struct redist_ctx *rdist =3D &gicv3_ctx.rdist;
> > +
> > +    writel_relaxed(0, GICD + GICD_CTLR);
> > +
> > +    for ( i =3D NR_GIC_LOCAL_IRQS; i < gicv3_info.nr_lines; i +=3D 32 =
)
> > +        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) =
* 4);
> > +
> > +    for ( i =3D 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ )
> > +        gicv3_restore_spi_irq_config(gicv3_ctx.dist.irqs + i - 1, i, f=
alse);
> > +
> > +#ifdef CONFIG_GICV3_ESPI
> > +    for ( i =3D 0; i < gic_number_espis() / 32; i++ )
> > +    {
> > +        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + i * 4);
> > +        gicv3_restore_spi_irq_config(gicv3_ctx.dist.espi_irqs + i, i, =
true);
> > +    }
> > +#endif
> > +
> > +    dist_ctlr =3D gicv3_ctx.dist.ctlr & GICD_CTLR_ARE_NS;
> > +    if ( dist_ctlr )
> > +    {
> > +        writel_relaxed(dist_ctlr, GICD + GICD_CTLR);
> > +        gicv3_dist_wait_for_rwp();
> > +
> > +        for ( i =3D 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ =
)
> > +            gicv3_restore_spi_irq_routing(gicv3_ctx.dist.irqs + i - 1,=
 i,
> > +                                          false);
>
> I think we have an issue in this loop as we are accessing GICD_IROUTER<10=
20=E2=80=A61023>
> and GICD_IPRIORITYR255, while the specs says 1020=E2=80=A61023 are reserv=
ed and
> GICD_IPRIORITYR<n> goes from 0 to 254. here and in the gicv3_suspend()

Ack. I will fix this.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 18 11:12:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 11:12:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311778.1581920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOvtu-0006wk-7V; Mon, 18 May 2026 11:12:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311778.1581920; Mon, 18 May 2026 11:12:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOvtu-0006wd-42; Mon, 18 May 2026 11:12:46 +0000
Received: by outflank-mailman (input) for mailman id 1311778;
 Mon, 18 May 2026 11:12:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wOvts-0006wX-Ce
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 11:12:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOvtr-000NCx-9d
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 13:12:43 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0af425-5cb7-0a2a0a5109dd-0a2a450b9c12-22
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 13:12:43 +0200
Received: from [40.93.201.17]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0af429-212f-0a2a450b0019-285dc9111958-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 13:12:42 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LVXPR03MB989180.namprd03.prod.outlook.com (2603:10b6:408:37f::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May
 2026 11:12:38 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0025.022; Mon, 18 May 2026
 11:12:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QS1V+vH7tnAnqi+uUkVnFYj6EEYMBiAxJ2KtrlGPr1Y7rcDvFg6MDgmzmTXkBLWeKvxVK1AJrzuBaUcEyhQnzqJ9rH6jdMa+kat6AUSKVN4IpE8mVqtKa/44RxuazLkV8DJ2H4ruHUnSkRBvwdEOv0O0EWbfnVTQ4V5NMWWZjiqPp4ixaSIM9KQC+OVfNbWxtHUniCVsXQt+AAlobXpmAA9T4IFHil+vY6n+YmY3CqkyS8QADNGcKcJxJMcZHP4lIEvE24KuaukGgl430eamiVvUSts4LslpBMoeK5jk9xjNQd/c3JICSPDegIhdXELRZmjm0ffpW9UI6BkunP/WzQ==
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=py285KzHehqaHtSE1MZTWUOSaA0EuZTJrrBQBVg9iuI=;
 b=Ukp9SPjnlYLtQ3BD+FZP+gkZlvwBJPJgeZISk9o9p5xOw0Cr5whBubGbO04guxtd/eIv1jimYHOTLWzZeTxo+JP2PJuDBXLn+RkRyIwLE+35+bpHAjoVlvYLCg3yC0EXrVzPv9Q9j1apnxGfB2tV4dLijG+WJB/7XbNh36tJRW9t1O4Ah7DGtM5KxFFRK+Hb4yqaNIp7B6IQW+Z1zvzJ5iJpjF3/1PXN04dSBljsq+0E3AEc5j+K15t3/Kc76rlhjIIBXQRXOJFRFbV1Ne101bbnDj8lsJreudIogPeLF39exRQgSrSajl2cNtBxPAXLzPY9BacPeySgyeQr7MllCw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=py285KzHehqaHtSE1MZTWUOSaA0EuZTJrrBQBVg9iuI=;
 b=mMNPQQ/MVxlUbM8+xFVZ68dH9GkB6IvN8OW6E3ArVZTTyTgJw6JE3ywmqbVmvAWfyoIT9BbsuKBFuBDuAZApoTAGvHyv1iCXLj2shMpZSK6uIpwsADC0/Lhd7577+lWNhJr0QjoVehRYea7wfItw6ILOjqMhbspG432aT/o/nXw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <79b1d15d-f18c-4cc1-a763-ea2d10d6f91c@citrix.com>
Date: Mon, 18 May 2026 12:12:35 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, Jason Andryuk <jason.andryuk@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.22 v6] x86/svm: Support vNMI on capable hardware
To: Jan Beulich <jbeulich@suse.com>
References: <20260514175623.1869042-1-andrew.cooper3@citrix.com>
 <559dc10a-d390-4723-8c52-f649a7acf8e0@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <559dc10a-d390-4723-8c52-f649a7acf8e0@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PA7P264CA0213.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:374::6) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|LVXPR03MB989180:EE_
X-MS-Office365-Filtering-Correlation-Id: 8049440c-fad6-4381-964a-08deb4ce5f2f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|56012099003|22082099003|18002099003|4143699003|11063799003;
X-Microsoft-Antispam-Message-Info:
	/5V3PloYCxS78IwrFlfnO4Ceuquict3m9PVNYFYfCl0A/Eqj1EnzUC+X7FtA+jLnPcd5+/1S+q/sI/ecx8Sa3nwmU/c2s5+TtrIwQ038Up4YyU2BP7wNuWzBMdYGpo64n6jH7YaE3q+oL9Q3It0F+azi4+/W9sI5TvGl/JfPBorVxXEk1+xJDcaIRh49DWw2lw+x6IbMi8vR/5jx+QiaRCgRdOJ2x9XJ6SClBwyOsgUGMNhxqNWFmCBUjewhtPCqgk1vxnKBSmqM/uNReSPjdDbp2OdZDPYq4pRNeOKpgsDWKb/sAZf8BGuE+SN2L3FkzRwxm2W0yCZ282Uy4rBEzI8Ye6eSeXnFJT/QRkXECI4sEuGPrPZuVcjThoc0ZQVv3cE9/zOGbLwg+n7La4ITiAAlnkt0/i2UI0gH/Pt+asEBp3OIFNecKWJED0wPr7cblCmp/HKpb0fFiBtMOA6GreHjFk2QD9rndXI7h847lfH28djxKij5Po5mcxtNU7OsD812uuJf/G+Xm7QOV40YXH43HYwCQD3cGnoAmkO2V31fo3gEuZ8STqDUVgYkiyP4sJYMaiZQAnYniTvOlSjN9W8AOAZIBxKB10cDCmTPTWa8Xo8Jh7UOqGDLPImNBN+P31AkJaFYPY5uGXHcXq9tuguE+S+ovqoK4e0rgV6Zn/6ixcfMxQj7ozdVAXHAfKl3
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(56012099003)(22082099003)(18002099003)(4143699003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?anNaVFpQWVgwNW9JSkt1Z1RPUmJOdUxQMFlHaDNjb2ovSlZ1SUQ1bVZQbTF4?=
 =?utf-8?B?V0lIdFltZVpPMDFGeEZiT1lsdDdrZU5qZjNWbTNvRGl1ZzBGRW9nOTlheDBa?=
 =?utf-8?B?cHJQbURtQ1Y4clZSZ0h0OVlNWG9zeTdONVZnR0tUUGhNMW11RTk4dWFYM2xx?=
 =?utf-8?B?cDFTYjN1NWhMWHQvdVZrdDZTc1pMUjZoa3A3c3UybDZRUW1KV0JCeDRxc090?=
 =?utf-8?B?TWFPalE2THowbWVGVmluKzczaytOakZ2NVpuTU1NRTFKeVkrVTNnUjNScmh3?=
 =?utf-8?B?ZENza2ZGTFo4dk13anJMcXlWSk9yUjM1R0sxdXFlODRibUwwOFFYaWFXdmJ2?=
 =?utf-8?B?RFhZNXd0RjFwOUlPbHBqdGhOSXdlbVp3bi8vbE9LeDZxdXJ4QWROMHVVcjNH?=
 =?utf-8?B?d2Riay83N1hETkc4LzdxZ2xUcm12YlRDekdHdUhGWUZIRjNlbDZGNnNNZlli?=
 =?utf-8?B?K3NkeC9Dem1LUnlHVGNITitTdDlia0J3VExSYjVvZUc4R3MvR2xETGZnWGdB?=
 =?utf-8?B?emNWV3NLVVlUYU01UndmMHo1aWFjcExNdzE1RHUvMEd3YjJ3bHZPZkFyRGMr?=
 =?utf-8?B?MzEzdkFzcUYzS3lKUmFsZURpaHAxdTdYa01hYjdENFV0cEgrNld1VlhKdFRo?=
 =?utf-8?B?eWozQmpyYXByenQwUzdqUkg0TmFvLytTS1o0ajRaNTBsQUhQZ29TV1pOWlIw?=
 =?utf-8?B?blZSMDlqd1N3QVBXdnhUbVcvUnRoWmxGTlZWcnZ3azZhUmRTeGFjL01HL2I3?=
 =?utf-8?B?V0Z1aEpyaEE0R0lCQjYxeW5xanhBbm1DU2ZBQUxadFVBZ3F4V21yNzROYytI?=
 =?utf-8?B?TENVZVNCdGMzdFRjVVhnMDdzajhHblR6WkJnU0NrQzRuUGRVei9QRzd4NFRw?=
 =?utf-8?B?cnh6REZyWXhWYklJYmVWOUtEOUZEZkFnOFZQeTdLVXR4N1V6Nk1ncWZUVU9J?=
 =?utf-8?B?UUVJczZPeFdGMlhYWmI2RElIWW5Gd1BRVGNBM0VQMEhodGNpRXhZYTh2d0Rt?=
 =?utf-8?B?Q2IzdjZPM3lQbW9Ba1hoaGE1RVlvemZRaitUYUxrRVB1YmtPNHZ0dnV0T3JZ?=
 =?utf-8?B?Qy9yNUxaazgyU1dlRHd4dk4yRXdjMjlEeFY2M2lyL3FSQ1lZSEJlU1JkbXM2?=
 =?utf-8?B?WU41RUQrdmRhaWJ4MEMwL1l2MUV1eG9yNG5Fc1dnMlFsMEdic0xsMmlXR0Nh?=
 =?utf-8?B?eVVlV1crZm5xWStCWGZmcUxsY3lRZWFWSVlWSThSbnZQWHlyNVltOUs0a0o4?=
 =?utf-8?B?VktNeWtUTzFsSy9ITjZFZnNDUzd0d0RpUVR5NjNlUUwxY2R5VnVxSnE4c3M4?=
 =?utf-8?B?RHdJWE4yKzFpSC9BMVp0d1kyTGEvdHpWWEI3dHBSWjN0U0VIOVFIdEpmdmZw?=
 =?utf-8?B?SmVFeWp0MzMrbE5hNUNlWS9zaHlIQzVLWisxUnZLQkY1NWM5dW5HUGJ4TlE5?=
 =?utf-8?B?UEdhU0NpOHFZcHZLQ1dqTm5DZ2xQL20zWHFCVVlZVnhDcFNZYUtiVDdZRmc0?=
 =?utf-8?B?TmZFMzJ3cTRWcExzMFQ5QmxURFZxejdkVTdvYjF1d08xYTlzbnE4ZFh5c1VT?=
 =?utf-8?B?VzBHU29tazFCWldTM3VXSUpLTlFkVUlDSDhIK1R5ZFQ3R0RGTlFrZWR3em5G?=
 =?utf-8?B?ZGNFVzZyaEhqRHJWTjJMUS94Y05JN09hRm9td3FycXVYVjFpZm9zV21teGJ2?=
 =?utf-8?B?cmN0eEFTUkFOeS9qN2tmSTVHeXgzTlpEa0VWbmU5KzQ2SS82YU9WTW95K0Zh?=
 =?utf-8?B?UlJlYXNuRmx5aWxKejMzSGFMNHhnY3ovMWtpYUNyaDBJUkNJTnU3OFhROWpI?=
 =?utf-8?B?ZjF1VjhOK2JyWVFuRDZpRlhQV2hYampnQ2I1VE9TNzdiSXV4R045a2xBWXlH?=
 =?utf-8?B?TnI2VjdpSWpWQUt4cVV1RWpnVDNGVVBoUVMzWG1NczZiR25MZjMwbDI5K3BT?=
 =?utf-8?B?VEZ6Ukk3ZC95ZmFPQTBKYk9WczJwM0dvbEc5NnFEWEx0K2tEVUNJVll3N1FQ?=
 =?utf-8?B?MFNwMXJOYzJ2cnM4cXJQSnhBRUs2Qm9rbFlWaWN3eVRGTDF1RTVSNmZSYVRT?=
 =?utf-8?B?TndYR1RIcUtTQ21waitmeWhKU3dLVGkxeGErM2tpT3VicEk0Vldad2wxZ1Bq?=
 =?utf-8?B?UVA0Y2RBVHpockt2RDVDS1I0ekNzT3FjbEpOdFZrSGhnSWhuaDltYTFESEla?=
 =?utf-8?B?MTVueldWc0V5QjQvYy9kTSs5c1BQMWswQjBFMkpyRTIrZURNbjlId2MzS1ds?=
 =?utf-8?B?bzdsdURBUXJTWXhmR2FCMlhtZ1IycTVrRVZKSENsWDZSUWl3dWR6SWwvL1Ni?=
 =?utf-8?B?dWRJbnEyN2k1Z0ZaWVBOOXIyeklsdUVVNDMrenVabXRwNW9oYklGNDJkMFc0?=
 =?utf-8?Q?XrHUPGbhyLxI2hmM=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8049440c-fad6-4381-964a-08deb4ce5f2f
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 11:12:38.7203
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GkhinaWa76ywXFrSyEm3eyhs6QHkfdskqlOpkV43KBDSE/6aPV3jY7Sbqs4CtnjZQasveLWS1JZEBH2vQECgLnrm39RP0rez3cujkEyhOW0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LVXPR03MB989180
X-purgate-ID: tlsNG-42698a/1779102763-18762F3B-809080FA/0/0
X-purgate-type: clean
X-purgate-size: 1381

On 18/05/2026 8:53 am, Jan Beulich wrote:
> On 14.05.2026 19:56, Andrew Cooper wrote:
>> --- a/xen/arch/x86/hvm/svm/intr.c
>> +++ b/xen/arch/x86/hvm/svm/intr.c
>> @@ -33,6 +33,12 @@ static void svm_inject_nmi(struct vcpu *v)
>>      u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
>>      intinfo_t event;
>>  
>> +    if ( vmcb->_vintr.fields.vnmi_enable )
>> +    {
>> +        vmcb->_vintr.fields.vnmi_pending = true;
>> +        return;
>> +    }
> How does all of this work during migration to a vNMI-incapable host? The
> hw feature is used ...
>
>> --- a/xen/arch/x86/hvm/svm/vmcb.c
>> +++ b/xen/arch/x86/hvm/svm/vmcb.c
>> @@ -185,6 +185,8 @@ static int construct_vmcb(struct vcpu *v)
>>      if ( default_xen_spec_ctrl == SPEC_CTRL_STIBP )
>>          v->arch.msrs->spec_ctrl.raw = SPEC_CTRL_STIBP;
>>  
>> +    vmcb->_vintr.fields.vnmi_enable = cpu_has_svm_vnmi;
> ... unconditionally when available (i.e. the feature not being there
> won't prevent the migration), yet the vnmi_{pend,block}ing fields are
> lost during migration (aiui). Are building on the fact that all of this
> state is already getting lost while migrating?

I can't quite parse the final sentence, but yes; migration has always
lost the NMI state.

This goes largely unnoticed because guests don't issue their final
suspend from NMI context.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon May 18 11:42:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 11:42:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311789.1581929 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOwMI-0002l8-BK; Mon, 18 May 2026 11:42:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311789.1581929; Mon, 18 May 2026 11:42:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOwMI-0002l0-88; Mon, 18 May 2026 11:42:06 +0000
Received: by outflank-mailman (input) for mailman id 1311789;
 Mon, 18 May 2026 11:42:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wOwMG-0002ks-0s
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 11:42:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOwME-008VEC-TM
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 13:42:02 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0afb02-2eae-0a2a0a5409dd-0a2a4503b51c-28
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 13:42:02 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0afb0a-672d-0a2a45030019-d1558035cc35-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 13:42:02 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-48984d29fe3so23672315e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 04:42:02 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe53804aesm236781965e9.15.2026.05.18.04.42.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 04:42:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Content-Language:Cc:To:Subject:From:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779104522; x=1779709322; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=afaoHU/DPN5WsAbVYCRxyMGiBQjaLY/Vjl2H5nHyoCk=;
        b=O4BN9AJPWKL+fcBKSVztZ+0zRNOv+2vcDHpR1ZwNGk/chve5yuyu0GIJWA314k7twR
         Cz8j6tryZUyQ1uLibQdlSDnh4TOXKgWOgiqnAihkOhLBmgf+Jpi+otp3nEI/TX+pRKWM
         /bwd2oaDjCMaf0AhDim+R5LT5xx8ZjAw5Zfyp1Ex5N4Si9G9hTkXBaWHq1LqfefI07A+
         Vv9Yimn1yPWLmLL7Glg2dYAjMIL0PK+shMAcwZigpOsJBWMm80yJ6Joj7ZkrE47vXdUX
         VU4jDL/FplKcnS9FsB2SQqVPZl5gpq+qNbn5nbau9K0GgkwNxpPlrHQA/2CyKDqQJR/B
         coiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779104522; x=1779709322;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=afaoHU/DPN5WsAbVYCRxyMGiBQjaLY/Vjl2H5nHyoCk=;
        b=D75psy/TtqDE1rloSnm34NRXa++tb8APwUzhPNzi6/PcwoZJgK7CruCM/OxyRkP9h9
         w6Eng+zFZyVYMiqV/YE1jbQsg4xt/U+7KGTh7IUBXJzAS/qNRndLIHACyZXyZF1nWFRh
         W6h5mfQHK1VrDG1t47lY4GKMIRJlrstX5Q5yiTIfJWJL8IPcoOLjfZ399AaFzcvOBG1l
         pGl0gg/vHyPGZ3Kd3UDmQ+iOfV6HY5hxLbKJTYQi6f0T5Eb3vcGRkQGznxdi/6XgnC/C
         McC+RaOwNpSlQLJNaTC/LkHbzS1GPKHxqNn7KIt+GZvNO7lSLPzQ9fdfqrjHt45CpD/u
         bSFQ==
X-Gm-Message-State: AOJu0YxOquO41UkN+tb5CMqpLyi+pxHAyIJgiXxP/V2LofcsyfxiLRoz
	uW9vDcEbnTOGqpil5DN26knESklcPw7+xaiX3lq5APK9bDcsXvToZhXmbQ21DMTiWwHvMkD6aLy
	LJGw=
X-Gm-Gg: Acq92OEGSgMzyc+UltjLCDj8qmoj1Lz1WQ6rsC9E/o2Wt6zPQSUHO4OCcIMItlu9Thm
	2eayCwnlf8TvqdCRvqZvUVwpSdGefMWMN+634IbdxplBmkNLJdC1N29bJu327cymj/L8p05V+IN
	CSFpuOt2KmhJMQiIqZYF4crnap2lQiye4eSAOPqftGy3io+FRijkGke41v2wXmpcitZZQ++UGSG
	+AaFTkkZIX7GISCZPTe95C4QGHMfng1Pjlr83utn8W57GzzahbLO8IrkiwRPdgNvSxHciiJgf/x
	fmKvtV9gn8myLkA/0Djc98eMkVdcVAMciZlMoMi8ll/5YA8o02Q8Flqvh8yLQAmBdwCqcPjp0FS
	ev4ryi1JoNb2mADtQSGDWQLmXdpBK/J6ROYpujWLngjLqpawPq/kLEutfOMLhdoVHObBW9CkK+R
	hYJFAeL4PyW8xr0r7vhobB0x6g/XX2Wk5JpqPpogffuEYrVuEWrTX1hfkpk5baiHAloFfK198Hz
	rXis+BUZryTeJ4=
X-Received: by 2002:a05:600c:c167:b0:48f:d410:6065 with SMTP id 5b1f17b1804b1-48fe66138dfmr229118335e9.29.1779104522262;
        Mon, 18 May 2026 04:42:02 -0700 (PDT)
Message-ID: <fddf4e43-8b8b-4b89-97b9-24deb46e2c9c@suse.com>
Date: Mon, 18 May 2026 13:42:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] x86/shim: adjust for Misra C:2012 rule 20.12
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1779104522-3A378938-AD65FABC/0/0
X-purgate-type: clean
X-purgate-size: 1955

... ("A macro parameter used as an operand to the `#' or `##' operators,
which is itself subject to further macro replacement, shall only be used
as an operand to these operators"). Leverage the SAF-6 annotation we have
available.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
As per the placement in arm/tee/ffa.c two instances of the SAF comment
(ahead of the macro definitions) should suffice. Eclair demands one
instance per macro use here, however (much like we have it in
x86/dom{ain,ctl}.c).
---
v2: Use SAF-6 annotations.

--- a/xen/arch/x86/pv/shim.c
+++ b/xen/arch/x86/pv/shim.c
@@ -124,8 +124,10 @@ void __init pv_shim_fixup_e820(void)
     ASSERT(i < ARRAY_SIZE(reserved_pages));     \
     reserved_pages[i++].mfn = pfn;              \
 })
+    /* SAF-6-safe Rule 20.12 expansion of macros HVM_PARAM_*. */
     MARK_PARAM_RAM(HVM_PARAM_STORE_PFN);
     if ( !pv_console )
+        /* SAF-6-safe Rule 20.12 expansion of macros HVM_PARAM_*. */
         MARK_PARAM_RAM(HVM_PARAM_CONSOLE_PFN);
 #undef MARK_PARAM_RAM
 }
@@ -207,10 +209,14 @@ void __init pv_shim_setup_dom(struct dom
         evtchn_reserve(d, param);                                              \
     }                                                                          \
 })
+    /* SAF-6-safe Rule 20.12 expansion of macros HVM_PARAM_*. */
     SET_AND_MAP_PARAM(HVM_PARAM_STORE_PFN, si->store_mfn, store_va);
+    /* SAF-6-safe Rule 20.12 expansion of macros HVM_PARAM_*. */
     SET_AND_MAP_PARAM(HVM_PARAM_STORE_EVTCHN, si->store_evtchn, 0);
+    /* SAF-6-safe Rule 20.12 expansion of macros HVM_PARAM_*. */
     SET_AND_MAP_PARAM(HVM_PARAM_CONSOLE_EVTCHN, si->console.domU.evtchn, 0);
     if ( !pv_console )
+        /* SAF-6-safe Rule 20.12 expansion of macros HVM_PARAM_*. */
         SET_AND_MAP_PARAM(HVM_PARAM_CONSOLE_PFN, si->console.domU.mfn,
                           console_va);
 #undef SET_AND_MAP_PARAM


From xen-devel-bounces@lists.xenproject.org Mon May 18 11:46:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 11:46:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311798.1581939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOwQi-0003Iw-SF; Mon, 18 May 2026 11:46:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311798.1581939; Mon, 18 May 2026 11:46:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOwQi-0003Ip-OA; Mon, 18 May 2026 11:46:40 +0000
Received: by outflank-mailman (input) for mailman id 1311798;
 Mon, 18 May 2026 11:46:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <gabi.qs.mail@gmail.com>) id 1wOwQh-0003Ij-GK
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 11:46:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOwQg-008rSm-SN
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 13:46:38 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <gabi.qs.mail@gmail.com>)
 id 6a0afc1e-e002-0a2a0a5209dd-0a2a4503b5e0-10
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 13:46:38 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <gabi.qs.mail@gmail.com>)
 id 6a0afc11-672d-0a2a45030019-d155802ea803-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 13:46:25 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-4890d945eb4so17331485e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 04:46:25 -0700 (PDT)
Received: from fedora ([212.231.230.22]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe5694fbfsm436926785e9.6.2026.05.18.04.46.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 May 2026 04:46:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779104785; x=1779709585; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=B8wbuIG4EBH33GZQGMZ+MnP2b/U10Ac10M+ofDb1KR8=;
        b=n+fo7ZRV5kY/15MKn09j5a9AphDASi4qSfLKGWyO6VdIoYCusJtcc5h0PNW+HOrSvW
         B5WU3etGky0Fplrjrku7mjJ4A76/7fEGmEXaQEzOpy+qEQkDxpVX9Ei5OexaMKsPv3yn
         iSy5fpoUoZuJd0b7x2ZkTNjknG4eNuXuWzrxiX/Ow+/euJYxbXcurzP0bQGpx80k8DGY
         zhcDVtPED8JElnbr1Gno8IayyOtesZmb0eknrqYR0LYlwNXaYNSu0B67sHPYbC0/dR1h
         8JOLGGoOOXuuvyw4eGKUPw3Wg2kENQRoea7iZzBgi65/6XbwAzYD2jhSv1x5RgwB+Nr4
         NAhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779104785; x=1779709585;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=B8wbuIG4EBH33GZQGMZ+MnP2b/U10Ac10M+ofDb1KR8=;
        b=C0YtSoAGd4OYRXylohBwAuL9wTptEW5t02Ni8G16lbEpBHQK87B1bnCQFrnZgarZzc
         AnPPPQHUuNdBx6VaJ06PERkE9oscT9FfsDZlCavin9BDoAoELtmOELFVmB13OZeZFFWj
         kMxlurPPZ63p0OBQ5tw1UJ57y2u4nGpxkjJ6hwXTxWi+PthTH9HryHF1wdQqKz5axWYX
         9AAP7iLsfYMt5E6wBbJG3JMi7mctGBQmSyczzFzNGcfnbU6V9zWXb/P2blC0a6RW7fJ3
         uimiKQjuiUfqYXqUuMyrjuK6xDPpDURUTSfDYX2/zv9VSE+CcMtWGKyf5e0lqB1S5ARA
         Bltg==
X-Gm-Message-State: AOJu0Yzf/8g6ASKyJuELCaQfzO899bQdKX3CQd2gBQ+4LPc6U3s7ti3D
	4xkEnFScUpfvxOkEd0bOpicZJqCDqWz9OpoZw73nmzajfwqZzS70fVbWhCVpJY51rfQ=
X-Gm-Gg: Acq92OGgkXtlX6yge197beP8MMfXvRGO2kwTlqIIPpNX3u+rMWgz6m5C+z64Y3mPBj2
	uD7PPqhiIxyqlCeOBsf+IRgf5w3/SQrymQq/ucs6R1xUBi2m3BwDcGWKbk8GptpxptjemRJxyQ/
	eIit5nl4vC+HwRkjWbZFfxWDZhc7Ikuk/d+vER91IB29S4GmCA2EPTLWb9YtMxWYh+0spRgIsm6
	r4eaBWtdgtWJZTy+YNGgMr6p87cQYJxBOMa/cJJgjGcYehThrb2/x7EN7rsvgGIqsBUN3QOaBR9
	ORmBm2fsbO4KDa7VHm67my++UXubTnPg8DqTuvkdvzepQ8agtJc67QLlt1px/QSaHZFb7fU6ZCo
	jo1AzMCnKGQYVxHomcKbAxzAtjbNttPPouhZpIgJKRo6xtHlaaxjZNwcSujfLT8DCXDrxau0MHZ
	FcpZy8z4otNGe+MAOaMZtfzJYfSOYt7Mg=
X-Received: by 2002:a05:600c:1914:b0:48f:d620:c27f with SMTP id 5b1f17b1804b1-48fe4dac5efmr221386485e9.4.1779104784988;
        Mon, 18 May 2026 04:46:24 -0700 (PDT)
From: =?UTF-8?q?Gabriel=20Quint=C3=A1ns=20Souto?= <gabi.qs.mail@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	julien@xen.org,
	bertrand.marquis@arm.com,
	michal.orzel@amd.com,
	=?UTF-8?q?Gabriel=20Quint=C3=A1ns=20Souto?= <gabi.qs.mail@gmail.com>
Subject: [PATCH v2] arm: Fix PT_PT table descriptor value and comment
Date: Mon, 18 May 2026 13:45:52 +0200
Message-ID: <20260518114552.29687-1-gabi.qs.mail@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <2ef09a6a-f78f-47a5-8ffb-cd03cb51fc1b@amd.com>
References: <2ef09a6a-f78f-47a5-8ffb-cd03cb51fc1b@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779104786-3B360938-8F9F34D4/0/0
X-purgate-type: clean
X-purgate-size: 2246

Per ARMv7-A/ARMv8-A ARM, bits [11:2] of table descriptors are ignored by hardware. The original comment incorrectly described block/page descriptor fields (nG, SH, AP, NS, ATTR) which do not exist in the table descriptor format.

Set PT_PT to 0x403:
 - Bit 0 (P): Valid bit (required)
 - Bit 1 (T): Table descriptor type (required)
 - Bit 10 (AF): Access flag (future-proof for FEAT_HAFT)

Hardware ignores bits [11:2] but setting AF prepares for ARMv9's FEAT_HAFT. Using 0x403 rather than minimal 0x3 provides forward compatibility while avoiding unnecessary reserved bits.

This updates both arm32 and arm64 for consistency.

Signed-off-by: Gabriel Quintáns Souto <gabi.qs.mail@gmail.com>

---
Changes in v2:
- Apply fix to both arm32 and arm64
- Use 0x403 instead of 0x743
---
 xen/arch/arm/arm32/mmu/head.S | 2 +-
 xen/arch/arm/arm64/mmu/head.S | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/arm32/mmu/head.S b/xen/arch/arm/arm32/mmu/head.S
index 5032e6c075..cab7be0621 100644
--- a/xen/arch/arm/arm32/mmu/head.S
+++ b/xen/arch/arm/arm32/mmu/head.S
@@ -8,7 +8,7 @@
 #include <asm/page.h>
 #include <asm/early_printk.h>
 
-#define PT_PT     0xf7f /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=1 P=1 */
+#define PT_PT     0x403 /* AF=1 T=1 P=1 (bits [11:2] ignored in table descriptors) */
 #define PT_MEM    0xf7d /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=0 P=1 */
 #define PT_MEM_L3 0xf7f /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=1 P=1 */
 #define PT_DEV    0xe71 /* nG=1 AF=1 SH=10 AP=01 NS=1 ATTR=100 T=0 P=1 */
diff --git a/xen/arch/arm/arm64/mmu/head.S b/xen/arch/arm/arm64/mmu/head.S
index c3cb262e88..375d703d9b 100644
--- a/xen/arch/arm/arm64/mmu/head.S
+++ b/xen/arch/arm/arm64/mmu/head.S
@@ -8,7 +8,7 @@
 #include <asm/page.h>
 #include <asm/early_printk.h>
 
-#define PT_PT     0x743 /* AF=1 RES=11 SKL=1 IGN=0000 T=1 P=1 */
+#define PT_PT     0x403 /* AF=1 T=1 P=1 (bits [11:2] ignored in table descriptors) */
 #define PT_MEM    0xf7d /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=0 P=1 */
 #define PT_MEM_L3 0xf7f /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=1 P=1 */
 #define PT_DEV    0xe71 /* nG=1 AF=1 SH=10 AP=01 NS=1 ATTR=100 T=0 P=1 */
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Mon May 18 11:58:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 11:58:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311811.1581947 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOwba-0005PN-Rx; Mon, 18 May 2026 11:57:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311811.1581947; Mon, 18 May 2026 11:57:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOwba-0005PG-PA; Mon, 18 May 2026 11:57:54 +0000
Received: by outflank-mailman (input) for mailman id 1311811;
 Mon, 18 May 2026 11:57:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wOwbY-0005NN-Vk
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 11:57:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOwbY-005m8j-BP
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 13:57:52 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a0afead-bab6-0a2a0a5309dd-0a2a450a8152-36
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 13:57:51 +0200
Received: from [52.101.69.56]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a0afebd-56b3-0a2a450a0019-34654538442f-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 13:57:51 +0200
Received: from DU2PR04CA0203.eurprd04.prod.outlook.com (2603:10a6:10:28d::28)
 by AMVPR08MB11973.eurprd08.prod.outlook.com (2603:10a6:20b:774::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May
 2026 11:57:46 +0000
Received: from DU2PEPF00028D11.eurprd03.prod.outlook.com
 (2603:10a6:10:28d:cafe::2c) by DU2PR04CA0203.outlook.office365.com
 (2603:10a6:10:28d::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.12 via Frontend Transport; Mon,
 18 May 2026 11:57:46 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU2PEPF00028D11.mail.protection.outlook.com (10.167.242.25) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.11
 via Frontend Transport; Mon, 18 May 2026 11:57:45 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by GVXPR08MB10668.eurprd08.prod.outlook.com (2603:10a6:150:14a::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May
 2026 11:56:41 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.21.0025.022; Mon, 18 May 2026
 11:56:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=QxetJcdytp65tn25ZzeXcKrAB1GbAN3PXhyPIV+X0LD7F+4qqu36iPBTKYtdvDv35Yyt1M3bbRtuitFUg60IxxOlT7bY2P/ax/s/Ps0g93JHuNIe6QbSqfWc7B01ErvhIZOCNmQIjIO42iRU2jdfDCVgsyFQkMLerDF6oIYX7uOlonrMbBAA6ctRJJaMkEBv05myBYKa1RSvdkEFQMBLEoXbaBGAI66oK34i/Fpr30FIkUQPuzlw0pDI5+zPdiBDF1jhtJIjOcS7SixrKpFM/fhpuqMDcKx9vPzHXhuui9dHrRApRGOm06zuJ6CWfJgiJwX2J6xxSWhMJpWvUZJwjQ==
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=R/1HiXZGd5kMDQbez5oI4Sz4hF6yTx2Ci0hHCedUqSs=;
 b=x+THQZ8EB6uallYa7gBNH2t7x9dHHd0snQCcUigKJKS4Q5BDduWOjdzheZKkH1VIbr/Bn0WI7SzfN3lo4t7k6zTjEHVZXLcqMbR2XlknbycfGilk1m3MywbZodnVbUXNuGJvcHsOf4DwdgiVcaMkQx0uoxJq9B8HzgoR3TwOGLvEQzqo/AcNXBEXxwGhNW/mgF6V/aqw1RUJ9VEBTVpOhUCyTarySP1On0LFntkMclp3LHoaWxWc83bsygFODlVk9+8ClGLqv5v+CMoUVUuw6Kf4tCkdycG8ftUSYEA67QHUfQftLVJI2owLpqtNV7wV2H++HEVDNtrmaCjfFf6kIw==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=R/1HiXZGd5kMDQbez5oI4Sz4hF6yTx2Ci0hHCedUqSs=;
 b=HdKwipQilmlZ5hJ+z+yK6Qgcwznse/gBYBglL3uy5mQBb9iAJSBcBx2Q0jMBo3Pse96Gz83ISbSyhuLg+YqYyolX8Y+lSJDYxy0XbmCS6Plfdp3T7ziOWZTmad0xpzgpQhE2EwA8ZvQz0/+sJ/mIQ5OKWmo5yFKrKlBvqVXF23s=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZCKE8mHPXrmP6QuSPbQmwAt+YLCYdyg8oGEVdlzt1GkRFWWf2ng4bpFiaULH+pfgzX3RP7ykY6IfTX/8Eai/y65go/mo91t4aT1F2PxGRqlp9566+wva3jDxjnqOfLTMwpYsizjv3+lHVB0RI0lvcLHPT/37T+65PXdKnwxrRhkh2d0P16TylVBX6j+MMK6D6n/7j58KijiV/R3rCAjBJE/92He2gguWxZRAQRfiX74evAZwSMOLEWbVgUJWWXkul3+pW2yp4VJH4xlobkmyAkE+ZkAqw3kg17pML5CUyuq0K90NJEeFwRtSrMd4GQwoDVScRd5f7bzgdBWFOpvXkw==
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=R/1HiXZGd5kMDQbez5oI4Sz4hF6yTx2Ci0hHCedUqSs=;
 b=KSPTs6DZ4Dlon6UbhW5jUMywJzacD3sKHB0csDNLbBcPYWfuvc5998k7gfZ2vD8JDqqWuACXLG0mXVX7sCj9EaGg25MqCqt69wkyO9m3xm3liqAxiC0TJ/CGYh/Uzt4haf1HfhvKPZMqQgirVpdrp35PcIhWPt0ph0vwzhGiKGsEc4zh8mwUJNsaIG6ALPs2DxHG2zp//Mb2w8l0TzipxztiToFlzoUHJsvkwdEY0e4bZaUsNQkz5cIEo7HtAHWpaql1KrJa1rZjaw5PWbuj/NqrsbrZgpZqbw2aYtt8mcIJiYV7D8gdiNISOmu4amFOr6aQcFNYDGxUNstm+980uA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=R/1HiXZGd5kMDQbez5oI4Sz4hF6yTx2Ci0hHCedUqSs=;
 b=HdKwipQilmlZ5hJ+z+yK6Qgcwznse/gBYBglL3uy5mQBb9iAJSBcBx2Q0jMBo3Pse96Gz83ISbSyhuLg+YqYyolX8Y+lSJDYxy0XbmCS6Plfdp3T7ziOWZTmad0xpzgpQhE2EwA8ZvQz0/+sJ/mIQ5OKWmo5yFKrKlBvqVXF23s=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
CC: Mykola Kvach <xakep.amatop@gmail.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v9 08/13] iommu/ipmmu-vmsa: Implement suspend/resume
 callbacks
Thread-Topic: [PATCH v9 08/13] iommu/ipmmu-vmsa: Implement suspend/resume
 callbacks
Thread-Index: AQHc4jI0ue/pVmX78UiKnsCn9gvTibYNsCmAgASqsACAAVtlAA==
Date: Mon, 18 May 2026 11:56:40 +0000
Message-ID: <476B6448-B115-40B5-8C30-8105FBD2D203@arm.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <4162aa58c351677a4a267fe85989c6d4e07487d8.1778605274.git.mykola_kvach@epam.com>
 <28587F96-D8A1-46FA-91B0-D9A30E55EFC9@arm.com>
 <636cda11-bc98-44e9-a333-5a61cc86e0dd@gmail.com>
In-Reply-To: <636cda11-bc98-44e9-a333-5a61cc86e0dd@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|GVXPR08MB10668:EE_|DU2PEPF00028D11:EE_|AMVPR08MB11973:EE_
X-MS-Office365-Filtering-Correlation-Id: 56ec6209-8ba4-4220-d48e-08deb4d4aced
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700021|18002099003|22082099003|56012099003|4143699003|11063799003;
X-Microsoft-Antispam-Message-Info-Original:
 Q09i2R2LmNqggGBwZQPUFs8gk0EhGYh4k+NmQQ6QdyDea5uYEEWzrs52njNfsUYXRxNdQVqUFB2etG14mg4Zh92sLPysvTXyXz8L+l4qtBqoTaQbiQfae+9yBwdrkov1htQE8ul/4UceQQvdCaFYymHQxx3N9c9phW1i/R5S6ie/rciDWMUDrUgToHL5PVSngw1epZduH4e/jNVlrkhyHIwIjAOgA9gUJhtBofRDUlOq51s/wKagm2dEm2dDt3okr1XgYXmy7zF/3BBQzKCCYBzZ+2Xd3K1XxKtxwm55S2NEw89MAjpXgYC/acyi34pEo4O310mKqk58SgaQbzgRdNAqLtk72ALhwds6oRL9BNkmFg+uT8VLR0KuSsUYAHEnUEKGDet0ZYnbn0mhWzuen+9T9e9wYqoz5h33jYJcd7JeCrIifEBvUTbq3LBt8yjKkKLZn2hMJFINExVsCw1lAKA8ziC9bqEac2gniFiizbGvRjU2wTRSJR1TobpoY+lBuplyBcnUu2CBbnc27K9Fyo+Wsevxkcm03gjSDyo/tqTVj0MoEObW6/MxqyQO2KRdmRLrgdeZ196KZyybMe98ovIVUmhEYab0tX3VePnb3fRDATqzOYx5Y01SrbPE7SA+VdXHZy0DRH2X/rYEQz2DeRjJbLeblvnWQci4xct1xerjUDnWzh18083FL2Q2G7csno6rIxJDvh2aCVgQ04tP426XkOjrW+dediZTxm3woMSspkzk37yI+K0Buu3W6fdN
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021)(18002099003)(22082099003)(56012099003)(4143699003)(11063799003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <FE9B5C27E2ABB14E99E0EA721ABE0594@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 URCP/qQA9xvcwyFiOU/5KBtOJb7mYvyNZLf8NoA571/T4/5paQZCeKn7bF08F+pY6T16YcOO8jJb3FO2N8tSh2tbc6tO0oWWllHmlDHoDiZUoOAFXmMxxVfLURR4016NinbqcRTL61njhneNOBs3xm7iHO2IFF46gCNEAz8V6u1oJyBMIH5v3ps6+LdHVuHwa35Vt6K87ktpvqwhw5UzBqiPUxFGj3aHkvnb1wVmShuH8R90/CAy/WVxIVpT7qdM7jWxXVF4BcDOp5ExVqJ1uzuFl9iaMT1EF55HUA7SS77d1iH/72smVHpGPqCtcTaSTveiqNpljSysX1Lcl6OoYw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB10668
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF00028D11.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	783f02dd-4753-4c78-b5cf-08deb4d485f4
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|14060799003|82310400026|35042699022|376014|36860700016|13003099007|22082099003|18002099003|56012099003|4143699003|11063799003;
X-Microsoft-Antispam-Message-Info:
	CxfeIpYNUvGI2eiI+wZjPq3+ouIyUpPc/YJfpBMOrW2Tn9WiEgMATr7H2hJmm2IQOyKyGrxwb32R0fqZUeFY6Md4xUTVf126c45sf2hV1OXOmiZzmm1XO6aWSapuuqaWlfYLTwBPoD1Okfy2kpuRDSQZ8beeCw7h48Jg+ex2l8HQaZLWZwh55/q988aCuGvRUBec9zZoV+QAZzhvNWqJfcn6CLrSq2pRRYUL5Od1ZgMrWOPMHe7jzX+SA1CMkGft07xz114rS93hvbXxfIOvFu9MTEORrbKzYxOg66IUSPMZXE+lw6V0M3xlO5vAeHSmPR+uJxDwnt/Cp5+cR7qUX9zzTaT64hI22RWuhSKL67XRlmciLk3lK/HjEo7d65vAR5AbjOSG1veaZUbW/3hk/y9T108jNn3qbVshsHkRjZsJVpHr1S4AsPW79th4dPGW9gYSFqi/f4ICvm8qChaGKpVyhJrujgEWccyORVXTvrfyaQSS6FDn0okA+bi3Iu31FPwsXL7HZ5zUvtvVepkbuuH8vH+yoD3ZqLBvdPqvPC9fpDF6/lcByPqvFTeQvl/6AOGG+OjFgRE8V+bEd5wVe4EwVY8BOsWb+HvRg6LWx6+KsL3xGr055ASMFh6qyrxInGJSR6a3vGn87NxZxe1uikHnH4OS2ms9ZDBjzl8P7xynWKh1LsRMSvX6zrW1WQI3ppsYoRmcTuRY1L9kn54VMhgFAVlRdHTqPx0FvgTUlxc=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(14060799003)(82310400026)(35042699022)(376014)(36860700016)(13003099007)(22082099003)(18002099003)(56012099003)(4143699003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	6udE9ZL+BuVo4FOUlsycohFY7tqGJLCdXXsxFGqe1jy7VHJm6wUZdrt5RQ/BeVW06M86hVC0hCPzsR1RLJON4/GdK/IKWtMQTerMZCNvPGydfH0y90b78BqBl2M6ZsINJcxOKyF45vLf/TiFNGPKaOIb3qBhB1VaBYwrWETJDt5hDqr/4XMESzEVEwcfZXBuFTmxWvBiLp1oOZqoNmXCvMjhZSUVPQKqTG5YLumglKpI48LlOkNp5HGSJJ344SbZa8e/Zj9D1IA2UFXZV2qS/+kKjemHuPrEJiJQCyueK1CHAA2iX+uQ03rNA0HpQV4Mlsf8tXCGI+a1IaW1jqqFF52RwXkO+5w20BYn93ReBRTIrudhnYunCOszxV3mLNJDXKPpvoJN3SDzCYYfQea4L1g4HSCGpo98suNdwteV1YYscE08WNYjO97wtAoSHnkW
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 11:57:45.9524
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 56ec6209-8ba4-4220-d48e-08deb4d4aced
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU2PEPF00028D11.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMVPR08MB11973
X-purgate-ID: tlsNG-4011c0/1779105471-71F698B7-9391AAF3/0/0
X-purgate-type: clean
X-purgate-size: 3532

SGkgT2xla3NhbmRyLA0KDQo+Pj4gKw0KPj4+ICtzdGF0aWMgdm9pZCBpcG1tdV9kb21haW5fYmFj
a3VwX2NvbnRleHQoc3RydWN0IGlwbW11X3Ztc2FfZG9tYWluICpkb21haW4pDQo+Pj4gK3sNCj4+
PiArICAgIHN0cnVjdCBpcG1tdV92bXNhX2RldmljZSAqbW11ID0gZG9tYWluLT5tbXUtPnJvb3Q7
DQo+Pj4gKyAgICBzdHJ1Y3QgaXBtbXVfcmVnX2N0eCAqcmVncyA9IG1tdS0+cmVnX2JhY2t1cFtk
b21haW4tPmNvbnRleHRfaWRdOw0KPj4+ICsNCj4+PiArICAgIGRldl9kYmcobW11LT5kZXYsICJI
YW5kbGUgZG9tYWluIGNvbnRleHQgJXUgYmFja3VwXG4iLCBkb21haW4tPmNvbnRleHRfaWQpOw0K
Pj4+ICsNCj4+PiArICAgIHJlZ3MtPmltdHRsYnIwID0gaXBtbXVfY3R4X3JlYWRfcm9vdChkb21h
aW4sIElNVFRMQlIwKTsNCj4+PiArICAgIHJlZ3MtPmltdHR1YnIwID0gaXBtbXVfY3R4X3JlYWRf
cm9vdChkb21haW4sIElNVFRVQlIwKTsNCj4+PiArICAgIHJlZ3MtPmltdHRiY3IgID0gaXBtbXVf
Y3R4X3JlYWRfcm9vdChkb21haW4sIElNVFRCQ1IpOw0KPj4+ICsgICAgcmVncy0+aW1jdHIgICAg
PSBpcG1tdV9jdHhfcmVhZF9yb290KGRvbWFpbiwgSU1DVFIpOw0KPj4+ICt9DQo+Pj4gKw0KPj4+
ICtzdGF0aWMgdm9pZCBpcG1tdV9kb21haW5fcmVzdG9yZV9jb250ZXh0KHN0cnVjdCBpcG1tdV92
bXNhX2RvbWFpbiAqZG9tYWluKQ0KPj4+ICt7DQo+Pj4gKyAgICBzdHJ1Y3QgaXBtbXVfdm1zYV9k
ZXZpY2UgKm1tdSA9IGRvbWFpbi0+bW11LT5yb290Ow0KPj4+ICsgICAgc3RydWN0IGlwbW11X3Jl
Z19jdHggKnJlZ3MgID0gbW11LT5yZWdfYmFja3VwW2RvbWFpbi0+Y29udGV4dF9pZF07DQo+PiBO
SVQ6IFRoZXJlIGlzIGEgZG91YmxlIHNwYWNlIGJlZm9yZSB0aGUgYD1gDQo+Pj4gKw0KPj4+ICsg
ICAgZGV2X2RiZyhtbXUtPmRldiwgIkhhbmRsZSBkb21haW4gY29udGV4dCAldSByZXN0b3JlXG4i
LCBkb21haW4tPmNvbnRleHRfaWQpOw0KPj4+ICsNCj4+PiArICAgIGlwbW11X2N0eF93cml0ZV9y
b290KGRvbWFpbiwgSU1UVExCUjAsIHJlZ3MtPmltdHRsYnIwKTsNCj4+PiArICAgIGlwbW11X2N0
eF93cml0ZV9yb290KGRvbWFpbiwgSU1UVFVCUjAsIHJlZ3MtPmltdHR1YnIwKTsNCj4+PiArICAg
IGlwbW11X2N0eF93cml0ZV9yb290KGRvbWFpbiwgSU1UVEJDUiwgIHJlZ3MtPmltdHRiY3IpOw0K
Pj4+ICsgICAgaXBtbXVfY3R4X3dyaXRlX2FsbChkb21haW4sICBJTUNUUiwgICAgcmVncy0+aW1j
dHIgfCBJTUNUUl9GTFVTSCk7DQo+PiBJIHNlZSBpbiBpcG1tdV90bGJfaW52YWxpZGF0ZSgpIHdl
IGRvOg0KPj4gZHNiKHN5KTsNCj4+IGlwbW11X3RsYl9zeW5jKGRvbWFpbik7DQo+PiBJcyBpdCBz
YWZlIHRvIG9taXQgdGhlbSBoZXJlPw0KPiANCj4gTHVjYSwgZ29vZCBxdWVzdGlvbiwgdGhhbmtz
LiBCZWxvdyBteSB1bmRlcnN0YW5kaW5nICh3aGljaCBtaWdodCBiZSB3cm9uZyk6DQo+IA0KPiBU
aGUgSU1DVFJfRkxVU0ggYml0IGhlcmUgaXMgbm90IGFuIGV4cGxpY2l0IFRMQiBpbnZhbGlkYXRp
b24gcmVxdWVzdCDigJQgaXQgaXMgcmVxdWlyZWQgYnkgdGhlIEhXIHdoZW5ldmVyIGNvbnRleHQg
cmVnaXN0ZXJzIGFyZSBtb2RpZmllZCAocmVnYXJkbGVzcyBvZiB3aGV0aGVyIGFuIGFjdHVhbCBU
TEIgZmx1c2ggaXMgdGhlIGludGVudCkuIEZvciBleGFtcGxlLCBpcG1tdV9kb21haW5faW5pdF9j
b250ZXh0KCkgc2ltaWxhcmx5IHdyaXRlczoNCj4gDQo+IGlwbW11X2N0eF93cml0ZV9yb290KGRv
bWFpbiwgSU1DVFIsDQo+ICAgICAgICAgICAgICAgICAgICAgSU1DVFJfVkE2NCB8IElNQ1RSX0lO
VEVOIHwgSU1DVFJfRkxVU0ggfCBJTUNUUl9NTVVFTik7DQo+IA0KPiBhbmQgZG9lcyBub3QgZm9s
bG93IGl0IHdpdGggZHNiKHN5KSAvIGlwbW11X3RsYl9zeW5jKCkuDQo+IA0KPiBJbiBjb250cmFz
dCwgaXBtbXVfdGxiX2ludmFsaWRhdGUoKSBkb2VzIGluY2x1ZGUgdGhlIHN5bmMgYmVjYXVzZSBp
dCBpcyBhbiBleHBsaWNpdCBmbHVzaCByZXF1ZXN0IGZyb20gdGhlIFAyTSBmcmFtZXdvcmssIGFu
ZCB3ZSBuZWVkIGEgZ3VhcmFudGVlIHRoYXQgdGhlIGludmFsaWRhdGlvbiBoYXMgY29tcGxldGVk
IGJlZm9yZSBwcm9jZWVkaW5nLg0KPiANCj4gSGVyZSwgd2UgYXJlIHNpbXBseSByZXN0b3Jpbmcg
Y29udGV4dCByZWdpc3RlcnMgYWZ0ZXIgcmVzdW1lLCB0aGVyZSBpcyBubyBjYWxsZXIgd2FpdGlu
ZyBvbiBmbHVzaCBjb21wbGV0aW9uLCBzbyB0aGUgYWRkaXRpb25hbCBzeW5jaHJvbml6YXRpb24g
aXMgbm90IG5lY2Vzc2FyeSBmcm9tIG15IFBvVi4NCj4gDQoNCnllcyBJIGhhZCBhIGNsb3NlciBs
b29rIGludG8gTGludXggYW5kIGZvciByZXN0b3JlIG9ubHkgdGhlcmUgaXMgbm8gZHNiL3RsYl9z
eW5jOg0KDQpodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC90
b3J2YWxkcy9saW51eC5naXQvdHJlZS9kcml2ZXJzL2lvbW11L2lwbW11LXZtc2EuYz9oPXY3LjEt
cmM0I24xMTE5DQoNClNvIEkgdGhpbmsgd2UgYXJlIHNhZmUgdG8gb21pdCB0aGVtIGhlcmUNCg0K
Q2hlZXJzLA0KTHVjYQ==


From xen-devel-bounces@lists.xenproject.org Mon May 18 12:18:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 12:18:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311824.1581956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOwux-000090-KK; Mon, 18 May 2026 12:17:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311824.1581956; Mon, 18 May 2026 12:17:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOwux-00008t-HX; Mon, 18 May 2026 12:17:55 +0000
Received: by outflank-mailman (input) for mailman id 1311824;
 Mon, 18 May 2026 12:17:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOwuv-00008n-F9
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 12:17:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOwuu-008Ifu-H6
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 14:17:52 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0b0370-bab6-0a2a0a5309dd-0a2a4501e80e-2
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 14:17:52 +0200
Received: from [209.85.167.42] (helo=mail-lf1-f42.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0b0370-c1f2-0a2a45010019-d155a72abcbc-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 14:17:52 +0200
Received: by mail-lf1-f42.google.com with SMTP id
 2adb3069b0e04-5a8c94cefcdso1774652e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 05:17:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779106671; cv=none;
        d=google.com; s=arc-20240605;
        b=MQ8ljygVSvRL1Coa0sU9ekiRknsA7sn7NtZdx/FzpxgfRwqAeVA8Z8SVJnjTgcUV44
         Gd+IeBEQYMeAQdiSWFLDSOzKib60O67rP0cQw16e4Kjgm067HeiP/oY/LTC+RYLMWIOC
         eugazIsrPtBy8ZDIU55xsislCz7G+PGZ3tsyKL6cFmJfAruG9REIOjVWpWidb16KbCWa
         OS5XiOmm6m8zVKNVAicUwTeLwd/J5bfIOo3xf9JV2QiKQltuLLt/UPpPDFvK0bUbYq44
         MAZZXm2E7JXRe3aYV7Fg5n0EGAJxjPxd2ksBZRodJVv6TMhWFw7m3aIBqCmrjkPZNGCb
         Qr3Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=QUDDMeEAjWqLVQMALbxRXsM4w6DolEPsRZbXDVvo8PI=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=Bn22LNxZT/i9FUKMnZSCkaxoeSOpD4vCHCyuwv36t524o1ToBJks/+ttMVv2SRhNKW
         RGM4yHA1EkD9asDB20hpem3gWXAIYpBBzhiGKqno0GPEbLI8gBDhg3aLnpZ37gjdUSjv
         bKkY8++inMlRRTluJPvd2JY+0Tn+IgyY1BXyXGw+ueHI72D1BrQ45swJnHODGp5j6CBB
         HAxiIYERA7AjYnbRNhbqZBLK4dcOuLzB+QI7HXxWYDnTDf/sY+2AZ+Bjlc9xBHAF2D9b
         1PBcBVSPGWHwMo5QRIG3wFJywEgLfJyKH6pOwflhjIAYE2YjlEAyyp284Ed+xebRDSc/
         5dEw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779106671; x=1779711471; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QUDDMeEAjWqLVQMALbxRXsM4w6DolEPsRZbXDVvo8PI=;
        b=b5MEPDz23rdjv/xb3N3/Wm9ScdYZ6hfpyWLRS9x+jzpRbclZFi30U/AbtVBrtIOUHc
         QHdfewVg5kknplYPPaLGYPuTVERsqzcYYAJs4kS12I/Fv3bdyumeHblPogivu70+ttYe
         aAyG8mNdY4MeD0ZwoJO3IADoYDAKyTE3kWQD1g24vG6o489sSpO/c5Wp5+srgcjLPKU1
         x1vrOQW5gJWzajbHfpX+d4eHGhYYpd960lYXDvPaKVHVj5jPvfnLBUZa4I9621XdXUpD
         VTw4+OhiHFXE+/a+6S1FBGH2bS/CWtVGafOopjxUQt3V92+JDhA5f8RGPDJnOYTbd0NA
         JCHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779106671; x=1779711471;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=QUDDMeEAjWqLVQMALbxRXsM4w6DolEPsRZbXDVvo8PI=;
        b=F5vCeqTcmNfwJtkNADpBm4+gV1pYV+1fd2fWZHcztkozjr2gWzWx2AuLLi8CKeGHfR
         s7iFHn4lvdWyVH9U4cg8ABW/f07gK+evX5Ng42gu8v9SszFUxMxG6dCb2//Qau0CcWOE
         scHRGIQllEfvWPGqzVJj7cEl81Ek5QIx40XA1/i83Jjpx2xqH5j20y9NKeMGYWn4sOXv
         LammYXa380ivAMmbTmbcUDVoJiN0fzkF2m96fLENMPhJ9YqNq+beZn/D5eNN0zE3lfxR
         eBlwekfdHLZgMWGWTHx8oLhVM5DQUu6kNHP2zaIMA331+MwEM/6Zo+CJWigMsWrOPdZa
         pPfw==
X-Gm-Message-State: AOJu0YyJUVIPc9Jr+s3KsaMLW+z751RnS9AjkIgqpwaOSqDFuuP0fdFI
	CiUayTIrr2/OhVnxdfGZlOO4KKSJSOHXdTb8lVk6aumV7kr3IbjxzBGpJutgK3pRorFn71xE0Wt
	4HIbTzFa32Y0UiAapg+wU+12RDc8pPrY=
X-Gm-Gg: Acq92OGO4ZeJ2u3fI29hhgw4/GnKO1LFUlUHPl8oh8xqC5Egun0MqMyCyKNZHv6GgDE
	UvZn4UwY8ngmo6buTkgl2so0HAH+uYwOlha/2Q5c3NBMdUcYD6pdHqdO3qfEqbUesd9JoZkBo0H
	8hMkK+GbLDwePWXpDspwBAnsUVrqK6SyVQ0GJO7wYjXE6nuIrkMJQUXSrg/pc1E4rAGIQ0n7euz
	/FYXSn0a4kvUIDlG0KAJBSC+Lpk33QJtthiQv05q9jBPcy0IkIgyPyREJPF/1BAetn9YjREfMWK
	NMCsr2OPRKlr5QY=
X-Received: by 2002:a05:6512:39d0:b0:5a8:9b6a:5749 with SMTP id
 2adb3069b0e04-5aa0e7649eemr4462110e87.28.1779106671271; Mon, 18 May 2026
 05:17:51 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778605274.git.mykola_kvach@epam.com> <4162aa58c351677a4a267fe85989c6d4e07487d8.1778605274.git.mykola_kvach@epam.com>
 <28587F96-D8A1-46FA-91B0-D9A30E55EFC9@arm.com>
In-Reply-To: <28587F96-D8A1-46FA-91B0-D9A30E55EFC9@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 May 2026 15:17:40 +0300
X-Gm-Features: AVHnY4KnOHtCHpYNiS22fApRj8XdYJuznv52g3PGeMYztESxGRZ5nyaNtC1Vqsw
Message-ID: <CAGeoDV8ucuOL2BfquiMtY7_1jmxhse93RZQkTchC=FHiQg3q8A@mail.gmail.com>
Subject: Re: [PATCH v9 08/13] iommu/ipmmu-vmsa: Implement suspend/resume callbacks
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d62444/1779106672-B695FFF4-25BDDE76/0/0
X-purgate-type: clean
X-purgate-size: 7739

Hi Luca,

Thank you for the review.

On Thu, May 14, 2026 at 6:58=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> >
> > diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/pas=
sthrough/arm/ipmmu-vmsa.c
> > index fa9ab9cb13..e1b47a5824 100644
> > --- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> > +++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> > @@ -71,6 +71,8 @@
> > })
> > #endif
> >
> > +#define dev_dbg(dev, fmt, ...)    \
> > +    dev_print(dev, XENLOG_DEBUG, fmt, ## __VA_ARGS__)
> > #define dev_info(dev, fmt, ...)    \
> >     dev_print(dev, XENLOG_INFO, fmt, ## __VA_ARGS__)
> > #define dev_warn(dev, fmt, ...)    \
> > @@ -130,6 +132,24 @@ struct ipmmu_features {
> >     unsigned int imuctr_ttsel_mask;
> > };
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +struct ipmmu_reg_ctx {
> > +    unsigned int imttlbr0;
> > +    unsigned int imttubr0;
> > +    unsigned int imttbcr;
> > +    unsigned int imctr;
> > +};
> > +
> > +struct ipmmu_vmsa_backup {
> > +    struct device *dev;
> > +    unsigned int *utlbs_val;
> > +    unsigned int *asids_val;
> > +    struct list_head list;
> > +};
> > +
> > +#endif
> > +
> > /* Root/Cache IPMMU device's information */
> > struct ipmmu_vmsa_device {
> >     struct device *dev;
> > @@ -142,6 +162,9 @@ struct ipmmu_vmsa_device {
> >     struct ipmmu_vmsa_domain *domains[IPMMU_CTX_MAX];
> >     unsigned int utlb_refcount[IPMMU_UTLB_MAX];
> >     const struct ipmmu_features *features;
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +    struct ipmmu_reg_ctx *reg_backup[IPMMU_CTX_MAX];
> > +#endif
> > };
> >
> > /*
> > @@ -547,6 +570,245 @@ static void ipmmu_domain_free_context(struct ipmm=
u_vmsa_device *mmu,
> >     spin_unlock_irqrestore(&mmu->lock, flags);
> > }
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +static DEFINE_SPINLOCK(ipmmu_devices_backup_lock);
> > +static LIST_HEAD(ipmmu_devices_backup);
> > +
> > +static struct ipmmu_reg_ctx root_pgtable[IPMMU_CTX_MAX];
> > +
> > +static uint32_t ipmmu_imuasid_read(struct ipmmu_vmsa_device *mmu,
> > +                                   unsigned int utlb)
> > +{
> > +    return ipmmu_read(mmu, ipmmu_utlb_reg(mmu, IMUASID(utlb)));
> > +}
> > +
> > +static void ipmmu_utlbs_backup(struct ipmmu_vmsa_device *mmu)
> > +{
> > +    struct ipmmu_vmsa_backup *backup_data;
> > +
> > +    dev_dbg(mmu->dev, "Handle micro-TLBs backup\n");
> > +
> > +    spin_lock(&ipmmu_devices_backup_lock);
> > +
> > +    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
> > +    {
> > +        struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(backup_da=
ta->dev);
> > +        unsigned int i;
> > +
> > +        if ( to_ipmmu(backup_data->dev) !=3D mmu )
> > +            continue;
> > +
> > +        for ( i =3D 0; i < fwspec->num_ids; i++ )
> > +        {
> > +            unsigned int utlb =3D fwspec->ids[i];
> > +
> > +            backup_data->asids_val[i] =3D ipmmu_imuasid_read(mmu, utlb=
);
> > +            backup_data->utlbs_val[i] =3D ipmmu_imuctr_read(mmu, utlb)=
;
> > +        }
> > +    }
> > +
> > +    spin_unlock(&ipmmu_devices_backup_lock);
> > +}
> > +
> > +static void ipmmu_utlbs_restore(struct ipmmu_vmsa_device *mmu)
> > +{
> > +    struct ipmmu_vmsa_backup *backup_data;
> > +
> > +    dev_dbg(mmu->dev, "Handle micro-TLBs restore\n");
> > +
> > +    spin_lock(&ipmmu_devices_backup_lock);
> > +
> > +    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
> > +    {
> > +        struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(backup_da=
ta->dev);
> > +        unsigned int i;
> > +
> > +        if ( to_ipmmu(backup_data->dev) !=3D mmu )
> > +            continue;
> > +
> > +        for ( i =3D 0; i < fwspec->num_ids; i++ )
> > +        {
> > +            unsigned int utlb =3D fwspec->ids[i];
> > +
> > +            ipmmu_imuasid_write(mmu, utlb, backup_data->asids_val[i]);
> > +            ipmmu_imuctr_write(mmu, utlb, backup_data->utlbs_val[i]);
> > +        }
> > +    }
> > +
> > +    spin_unlock(&ipmmu_devices_backup_lock);
> > +}
> > +
> > +static void ipmmu_domain_backup_context(struct ipmmu_vmsa_domain *doma=
in)
> > +{
> > +    struct ipmmu_vmsa_device *mmu =3D domain->mmu->root;
> > +    struct ipmmu_reg_ctx *regs =3D mmu->reg_backup[domain->context_id]=
;
> > +
> > +    dev_dbg(mmu->dev, "Handle domain context %u backup\n", domain->con=
text_id);
> > +
> > +    regs->imttlbr0 =3D ipmmu_ctx_read_root(domain, IMTTLBR0);
> > +    regs->imttubr0 =3D ipmmu_ctx_read_root(domain, IMTTUBR0);
> > +    regs->imttbcr  =3D ipmmu_ctx_read_root(domain, IMTTBCR);
> > +    regs->imctr    =3D ipmmu_ctx_read_root(domain, IMCTR);
> > +}
> > +
> > +static void ipmmu_domain_restore_context(struct ipmmu_vmsa_domain *dom=
ain)
> > +{
> > +    struct ipmmu_vmsa_device *mmu =3D domain->mmu->root;
> > +    struct ipmmu_reg_ctx *regs  =3D mmu->reg_backup[domain->context_id=
];
>
> NIT: There is a double space before the `=3D`

Ack.

>
> > +
> > +    dev_dbg(mmu->dev, "Handle domain context %u restore\n", domain->co=
ntext_id);
> > +
> > +    ipmmu_ctx_write_root(domain, IMTTLBR0, regs->imttlbr0);
> > +    ipmmu_ctx_write_root(domain, IMTTUBR0, regs->imttubr0);
> > +    ipmmu_ctx_write_root(domain, IMTTBCR,  regs->imttbcr);
> > +    ipmmu_ctx_write_all(domain,  IMCTR,    regs->imctr | IMCTR_FLUSH);
>
> I see in ipmmu_tlb_invalidate() we do:
> dsb(sy);
> ipmmu_tlb_sync(domain);
>
> Is it safe to omit them here?
>
> > +}
> > +
> > +/*
> > + * Xen: Unlike Linux implementation, Xen uses a single driver instance
> > + * for handling all IPMMUs. There is no framework for ipmmu_suspend/re=
sume
> > + * callbacks to be invoked for each IPMMU device. So, we need to itera=
te
> > + * through all registered IPMMUs performing required actions.
> > + *
> > + * Also take care of restoring special settings, such as translation
> > + * table format, etc.
> > + */
> > +static int __must_check ipmmu_suspend(void)
> > +{
> > +    struct ipmmu_vmsa_device *mmu;
> > +
> > +    if ( !iommu_enabled )
> > +        return 0;
> > +
> > +    printk(XENLOG_DEBUG "ipmmu: Suspending...\n");
> > +
> > +    spin_lock(&ipmmu_devices_lock);
> > +
> > +    list_for_each_entry( mmu, &ipmmu_devices, list )
> > +    {
> > +        if ( ipmmu_is_root(mmu) )
> > +        {
> > +            unsigned int i;
> > +
> > +            for ( i =3D 0; i < mmu->num_ctx; i++ )
> > +            {
> > +                if ( !mmu->domains[i] )
> > +                    continue;
> > +                ipmmu_domain_backup_context(mmu->domains[i]);
> > +            }
> > +        }
> > +        else
> > +            ipmmu_utlbs_backup(mmu);
> > +    }
> > +
> > +    spin_unlock(&ipmmu_devices_lock);
> > +
> > +    return 0;
> > +}
> > +
> > +static void ipmmu_resume(void)
> > +{
> > +    struct ipmmu_vmsa_device *mmu;
> > +
> > +    if ( !iommu_enabled )
> > +        return;
> > +
> > +    printk(XENLOG_DEBUG "ipmmu: Resuming...\n");
> > +
> > +    spin_lock(&ipmmu_devices_lock);
> > +
> > +    list_for_each_entry( mmu, &ipmmu_devices, list )
>
> This loop has an ordering problem because we can run ipmmu_utlbs_restore(=
) before
> the root ipmmu is restored (ipmmu_probe() uses `list_add()`).
> Maybe going twice on the list, restoring first the root and in the second=
 round the rest
> should work.

Ack, good point.

I will split the resume path into two passes: restore the Root IPMMU contex=
t
state first, then restore the micro-TLB state on Cache IPMMUs afterwards.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 18 13:14:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 13:14:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311843.1581973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxnb-0008Jy-L7; Mon, 18 May 2026 13:14:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311843.1581973; Mon, 18 May 2026 13:14:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxnb-0008Jr-Ha; Mon, 18 May 2026 13:14:23 +0000
Received: by outflank-mailman (input) for mailman id 1311843;
 Mon, 18 May 2026 13:14:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wOxna-0008JZ-To
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 13:14:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOxna-009DFo-64
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:14:22 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10ab-e002-0a2a0a5209dd-0a2a4502a610-10
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:21 +0200
Received: from [52.101.201.42]
 (helo=PH7PR06CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10ab-af86-0a2a45020019-3465c92ae39e-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:20 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by BY5PR03MB5111.namprd03.prod.outlook.com (2603:10b6:a03:1e2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Mon, 18 May
 2026 13:14:15 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0025.022; Mon, 18 May 2026
 13:14:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vGSterGOJEwV89HAjCcxXmzfJvI0aQOE4d5iYZ7EDqVjeCFXTg0tJvOnrl79P51Mm8nFx1BrC+VuVZXq75M5sLrXhBd0avyLHEqaTUYOd7SBvpsjk5sFiZ+Nj1YJPg0xs7b2yEhlL/Vy5AWQG9CabH9dTjqkO4JnLOLfHghBRPxoXKhnKLyHkMPapwT9MpbGA6JdwN+i9rwrr1F2gR59P+NnqMcFooLgmsZAxDJ8GB1ZQEZwjPKC5TK9CCWKz9iZk8dgt5K6kSKoFk4N34DYMJx8R7Qn7QnrJOwHEEH/Vd3nrP0ACoQ2U76rxMkIghFq48i8ZashN7qtnIJ+ZQ2Nmg==
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=YmWCXDgj2ZZ2XpOGe/Bk8AcX6edLOrCqiS8EDz8T5GY=;
 b=eO+IR2qpYQqOoEyb3Gciu7dL//aZwy2yiDSNAtoYKrmGfut4WFJfiWBsjYaqvnAqOwBGLI+hZ/YI9FNA7C/l2br9RZ5Pj/Ybj5PKIwoCifL0cvfigZLoFsYe3777LnjA6/loFnGGO6zgyTNxJ/fRJzIRKteV05vpAoDm7qv4GeGp7YNncAxwss3yf5nQiSVDj/KMCsxGpckp8G2pryvfasUsVjGRHprOKdDQhf3CmNPmi3ao2Zq1fB5FhYBQR6f/VrGhEjWbKUWEpBeZu3Uo6BBMCMDTs3b9zefheXiNgHmjM8rL2X8q8FRsveG9km5ocVP/0UJEySx1jSJBqELGAw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YmWCXDgj2ZZ2XpOGe/Bk8AcX6edLOrCqiS8EDz8T5GY=;
 b=pIsHuvXcGYauXgdb/sNX6a+cd1oC3BWdojgZiMQdR/6hrh+AmOAlWauOdHCcIH2YWEXKDmYOJb5CbGJVQ/erQi66tRCBSL9ZuytG1THS1kuXWtwvdIXrjWmhPe/P3Dz/hgn88rL6y1CgVBzOAtjBTAp5aEHDVTdLiDfs/w+duck=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [RFC v1 1/7] x86/hvm: Move description into hvm_emulate_ctxt
Date: Mon, 18 May 2026 14:13:58 +0100
Message-ID: <20260518131404.3716969-2-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0036.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ae::12) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|BY5PR03MB5111:EE_
X-MS-Office365-Filtering-Correlation-Id: 582fbf76-f75a-4997-4cfd-08deb4df5c3a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|56012099003|18002099003|3023799003|11063799003;
X-Microsoft-Antispam-Message-Info:
	HRCXS+IwIDFXK82aFXQSl5d7uD1HxrDKfqPZWzTLXPDKOnq4FIo91PWwnLSi5RoQT4IiHDqXbcdDiKGaDykmQH3HwcLOpo/fuFRyRNnwJwKtLvv1qsuWkPd9dNBstnXox7/78bgI2g2xIIfvgkcmLuk1H/8x4koIFzeYDxq3YKQUHCFr2CR2HN5XOfbJQEZxMXUFfeSopO9vAmA54kejpuOMRjMKe92Ik1TaQJ2F9DilGdfwncCwbWBCNzBYAC4NV8dcr8+uiGIt3Wve7gjuZqjh2D1nho59kl09a6hEIobVR20puvNidPp5rs3dWzgIbuHO2PGM80kzFbYMoEYmB369c3Ivpbd3mm/shJt6sB9h1/JtvNqOcz5LjP3RBiBQiHTc7TSR7DwW/D//Xp9flxL3yI8qnHi89ZqCdO9k3tpKicwVOeD4gSUpuaCtyoAXxMsXTxWfRaWp61Vbwj/dkSfCs5+gdbyHymYOE2iiKk7WNEbRjr6Amk+r0+ZL9kcg3+gyF6vNhKtpZ9nGxP9AZWVP9ic6IKLee1YJdy0LfFEcfy6rbbkq3+/LwCoA+iwu7PklPhc1WEtfKTtaO51eYw/3tov1XLaNNItJpClg55iIRiBQOzQcZlO+Oh1dzQzPKw8jcAYiipQvajuq0dyv+7vnek0Hdu+/4WiEEuPMrmk80HsNy3gU/qbx9RqdBkmC
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(56012099003)(18002099003)(3023799003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?O+A/Bl2ZWPhuTYGHSgaTqyHRBclGHAaju5oZydYZgY481LSzSKtm7hZ/8RAs?=
 =?us-ascii?Q?2fpDlgDx4pp7mrNS28I6s5CKJ1dAYJpv2F+ykQ2qGz2rN/FfV/LqoVTkdFBk?=
 =?us-ascii?Q?vjijCDfMKujpnxhevqzKVr/inzIbv2U4gpYqiQt42CL5k47a9qI2pCxJCPe9?=
 =?us-ascii?Q?8haDCLm/x0GhVByGI5BHnMMbxSMmUeoS953wLZIOXXxOuHaWMQNkXOOC2MNP?=
 =?us-ascii?Q?6O4uqjWlonDGksZY+CKGWIFbSXhvAe/nTJU05eBJj5lnb35ZeANqueUbuoQX?=
 =?us-ascii?Q?Gpym9CPVRtMA3vunQw5Mh3ellDMwVg3lozjEEw4QneLB1PGZ7W+wvlCW7TsN?=
 =?us-ascii?Q?5Mfs2+5tQqq9tAeNn284g5hy8lcpoQEQoHr5IPuevepY5sm/XJ7ZjkY2tUCo?=
 =?us-ascii?Q?Nnk+Qwyq6t6nWkFszQyQAIPccTphyr92MwjGhJgI1lB/BH7Lu1U5L8SIL4ET?=
 =?us-ascii?Q?jqdaIA4yJyXnOtkybD5A6azAJIRmy+Yu+UM/ZzyYFhO3DOD6TSmBiKTImHt1?=
 =?us-ascii?Q?e3auodqeZDXYBmzz7GyIT1n3tLXhIaKoYe6vNiEk1GBCdkH3a3iYvdAKwA0E?=
 =?us-ascii?Q?mmGxeOWnzKOA+XloRIUFqgY00PotJaQGXX9iAvsO4zZYMh2Q+1RJW1WbNLgT?=
 =?us-ascii?Q?4beH+tOh9VX6zfJwEG0tNp4t9VidSCJhnOaGMIwMjdgqt8HBBtED64+YoA2T?=
 =?us-ascii?Q?QGjt9dbxdfi7L/Z3BMpNIJgBrDBkRySkpe74RV0GzfIAUDQnyEjPtwWXtiGq?=
 =?us-ascii?Q?H5S5bXnzG1y5WoYXIfd24PJeWFcKGZNH3wsM41kaf+PhprYa8LibwPELSrdm?=
 =?us-ascii?Q?JcHZtG48+AH2PEy9gD18iD4qhGqdRfoYqikNa7xIiLghfnjqITSfFlqHFSzN?=
 =?us-ascii?Q?ipQfuEgeyUh1YlQqLr8lgNp8Gr+7mkZ5wDYu8WKPL9gnTl0R1JlSg58C9dCh?=
 =?us-ascii?Q?Sw/X0qLkDd2r3jMN4oySLfqreGfelOiE2BL9KLYSExShJrn0vHSF+h/P2fVE?=
 =?us-ascii?Q?76zh2Es48XNMPn03Lk0UiPXRM/dkp7DMxo5gdgYRCwj2ZLvv6rTvu4hmwCTJ?=
 =?us-ascii?Q?1LoTQOYxkM93x3kuX3NsEDI+1hpRTv+6Fpr4FMTS/fukDMRyW9Ufl5X0kDMK?=
 =?us-ascii?Q?Aob52rR601d43l7afqmwEAgc4Fggqh3eYLZ0uymeMPX46OJtwP4/73NKkyPs?=
 =?us-ascii?Q?xbyZeeZuu0ceYnQdE9jLzbXVhcnDZhsqHTVEUoCS3lomKZiHB4+L7T3/aGvh?=
 =?us-ascii?Q?2gjO4104l0ZIDIDd/kSMphAwqgC49BY2KQwVgZVyTzEV+NoV9zQslGusxDwA?=
 =?us-ascii?Q?poP2kS++/1o+14/+zuaf/dmKoJUGExmlJGsbfGzQEw7Hc3BWzR6vunhkZdMV?=
 =?us-ascii?Q?xWE4uPZqcv6I0ZSdU4l/4AMKE1p0ci7ay5SP2ZNrdloLqLYW5aIdHA64zoWo?=
 =?us-ascii?Q?+Gc2JA2Qzkd6wnw2+C7U4QCE7v4pLw9VHiJ4IXkXImJy2SPQSB1sRWSKq8J5?=
 =?us-ascii?Q?DAXIiygnTH+2b6YqHSjE6dJmzBdwdZuBs6XmNdHiytROKhH6OtDbdbXbQfc1?=
 =?us-ascii?Q?dZFOTz7ucEr5QWpTh4R6aUxMX7TP8CaOJRtcUvlt5tSHiuK0Wex4md2gNfYK?=
 =?us-ascii?Q?P1PFi1d664pd01+uZQyTSawXYhDcHCB627uuJhxCBUx/rVdY9W5n2F5ov3Ln?=
 =?us-ascii?Q?Bz6GJxCCaQw+9iPXBC3drVvrviSTU/kRdClE2hKun7tb1u7s1ItWo7FUOouM?=
 =?us-ascii?Q?E8aaiXzx/erFcxgL03V/ncL0GeLPeto=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 582fbf76-f75a-4997-4cfd-08deb4df5c3a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 13:14:15.2762
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BJL1Gzg3GvdpT0EYqhGUv4bpsvwT0jKT/Bvjdpkftdn1+64WWuP9fw9z6lzHSg5RJL/xJ37scNXpmSh40Y4tFuRIiBYxz/OEJa3oYIq6OiM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5111
X-purgate-ID: tlsNG-720697/1779110061-8077A161-4D9ECB49/0/0
X-purgate-type: clean
X-purgate-size: 6095

This will be needed to split up hvm_emulate_one_insn().

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/hvm/emulate.c             | 4 +++-
 xen/arch/x86/hvm/hvm.c                 | 2 +-
 xen/arch/x86/hvm/io.c                  | 6 +++---
 xen/arch/x86/hvm/ioreq.c               | 2 +-
 xen/arch/x86/hvm/svm/emulate.c         | 4 ++--
 xen/arch/x86/hvm/vmx/realmode.c        | 2 +-
 xen/arch/x86/include/asm/hvm/emulate.h | 2 ++
 7 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index bb1bb03ac4e9..a96d7814f91c 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2868,7 +2868,7 @@ void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
     struct hvm_emulate_ctxt ctx = {};
     int rc;
 
-    hvm_emulate_init_once(&ctx, NULL, guest_cpu_user_regs());
+    hvm_emulate_init_once(&ctx, NULL, NULL, guest_cpu_user_regs());
 
     switch ( kind )
     {
@@ -2929,6 +2929,7 @@ void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
 void hvm_emulate_init_once(
     struct hvm_emulate_ctxt *hvmemul_ctxt,
     hvm_emulate_validate_t *validate,
+    const char *descr,
     struct cpu_user_regs *regs)
 {
     struct vcpu *curr = current;
@@ -2941,6 +2942,7 @@ void hvm_emulate_init_once(
     hvmemul_get_seg_reg(x86_seg_ss, hvmemul_ctxt);
 
     hvmemul_ctxt->validate = validate;
+    hvmemul_ctxt->descr = descr;
     hvmemul_ctxt->ctxt.regs = regs;
     hvmemul_ctxt->ctxt.cpu_policy = curr->domain->arch.cpu_policy;
     hvmemul_ctxt->ctxt.force_writeback = true;
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index f759a397c557..de399bd9024a 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3835,7 +3835,7 @@ void hvm_ud_intercept(struct cpu_user_regs *regs)
     bool should_emulate = false;
     struct hvm_emulate_ctxt ctxt;
 
-    hvm_emulate_init_once(&ctxt, NULL, regs);
+    hvm_emulate_init_once(&ctxt, NULL, NULL, regs);
 
     if ( opt_hvm_fep )
     {
diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c
index 23a5ea0e6197..d9838c36d330 100644
--- a/xen/arch/x86/hvm/io.c
+++ b/xen/arch/x86/hvm/io.c
@@ -55,16 +55,16 @@ bool hvm_emulate_one_insn(hvm_emulate_validate_t *validate, const char *descr)
     struct hvm_emulate_ctxt ctxt;
     int rc;
 
-    hvm_emulate_init_once(&ctxt, validate, guest_cpu_user_regs());
+    hvm_emulate_init_once(&ctxt, validate, descr, guest_cpu_user_regs());
 
     switch ( rc = hvm_emulate_one(&ctxt, VIO_no_completion) )
     {
     case X86EMUL_UNHANDLEABLE:
-        hvm_dump_emulation_state(XENLOG_G_WARNING, descr, &ctxt, rc);
+        hvm_dump_emulation_state(XENLOG_G_WARNING, ctxt.descr, &ctxt, rc);
         return false;
 
     case X86EMUL_UNRECOGNIZED:
-        hvm_dump_emulation_state(XENLOG_G_WARNING, descr, &ctxt, rc);
+        hvm_dump_emulation_state(XENLOG_G_WARNING, ctxt.descr, &ctxt, rc);
         hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
         break;
 
diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index a5fa97e149ba..42ff796c6cb9 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -39,7 +39,7 @@ bool arch_vcpu_ioreq_completion(enum vio_completion completion)
     {
         struct hvm_emulate_ctxt ctxt;
 
-        hvm_emulate_init_once(&ctxt, NULL, guest_cpu_user_regs());
+        hvm_emulate_init_once(&ctxt, NULL, NULL, guest_cpu_user_regs());
         vmx_realmode_emulate_one(&ctxt);
         hvm_emulate_writeback(&ctxt);
 
diff --git a/xen/arch/x86/hvm/svm/emulate.c b/xen/arch/x86/hvm/svm/emulate.c
index 1f5436c8ea5d..1dd830a31bd7 100644
--- a/xen/arch/x86/hvm/svm/emulate.c
+++ b/xen/arch/x86/hvm/svm/emulate.c
@@ -71,7 +71,7 @@ unsigned int svm_get_insn_len(struct vcpu *v, unsigned int instr_enc)
 #endif
 
     ASSERT(v == current);
-    hvm_emulate_init_once(&ctxt, NULL, guest_cpu_user_regs());
+    hvm_emulate_init_once(&ctxt, NULL, NULL, guest_cpu_user_regs());
     hvm_emulate_init_per_insn(&ctxt, NULL, 0);
     state = x86_decode_insn(&ctxt.ctxt, hvmemul_insn_fetch);
     if ( IS_ERR_OR_NULL(state) )
@@ -116,7 +116,7 @@ unsigned int svm_get_task_switch_insn_len(void)
     struct x86_emulate_state *state;
     unsigned int emul_len, modrm_reg;
 
-    hvm_emulate_init_once(&ctxt, NULL, guest_cpu_user_regs());
+    hvm_emulate_init_once(&ctxt, NULL, NULL, guest_cpu_user_regs());
     hvm_emulate_init_per_insn(&ctxt, NULL, 0);
     state = x86_decode_insn(&ctxt.ctxt, hvmemul_insn_fetch);
     if ( IS_ERR_OR_NULL(state) )
diff --git a/xen/arch/x86/hvm/vmx/realmode.c b/xen/arch/x86/hvm/vmx/realmode.c
index ff44ddcfa627..9879533280d0 100644
--- a/xen/arch/x86/hvm/vmx/realmode.c
+++ b/xen/arch/x86/hvm/vmx/realmode.c
@@ -163,7 +163,7 @@ void vmx_realmode(struct cpu_user_regs *regs)
     if ( intr_info & INTR_INFO_VALID_MASK )
         __vmwrite(VM_ENTRY_INTR_INFO, 0);
 
-    hvm_emulate_init_once(&hvmemul_ctxt, NULL, regs);
+    hvm_emulate_init_once(&hvmemul_ctxt, NULL, NULL, regs);
 
     /* Only deliver interrupts into emulated real mode. */
     if ( !(curr->arch.hvm.guest_cr[0] & X86_CR0_PE) &&
diff --git a/xen/arch/x86/include/asm/hvm/emulate.h b/xen/arch/x86/include/asm/hvm/emulate.h
index 178ac32e151f..2801d14d5455 100644
--- a/xen/arch/x86/include/asm/hvm/emulate.h
+++ b/xen/arch/x86/include/asm/hvm/emulate.h
@@ -30,6 +30,7 @@ struct hvm_emulate_ctxt {
      * filtering.
      */
     hvm_emulate_validate_t *validate;
+    const char *descr;
 
     /* Cache of 16 bytes of instruction. */
     uint8_t insn_buf[16];
@@ -74,6 +75,7 @@ void hvm_emulate_one_vm_event(enum emul_kind kind,
 void hvm_emulate_init_once(
     struct hvm_emulate_ctxt *hvmemul_ctxt,
     hvm_emulate_validate_t *validate,
+    const char *descr,
     struct cpu_user_regs *regs);
 /* Must be called once before each instruction emulated. */
 void hvm_emulate_init_per_insn(
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon May 18 13:14:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 13:14:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311842.1581964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxnW-00086U-Cg; Mon, 18 May 2026 13:14:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311842.1581964; Mon, 18 May 2026 13:14:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxnW-00086N-9u; Mon, 18 May 2026 13:14:18 +0000
Received: by outflank-mailman (input) for mailman id 1311842;
 Mon, 18 May 2026 13:14:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wOxnU-00086G-Hi
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 13:14:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOxnT-008UyI-TC
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:14:15 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10a3-bab6-0a2a0a5309dd-0a2a4505c2f6-6
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:15 +0200
Received: from [52.101.53.57]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10a6-aaa8-0a2a45050019-346535396214-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:15 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by IA1PR03MB8062.namprd03.prod.outlook.com (2603:10b6:208:595::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Mon, 18 May
 2026 13:14:12 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0025.022; Mon, 18 May 2026
 13:14:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=q9eK/fhw6v7L/F3pP5ohKLYFBcy8OLMueS6LmjqlWItaUnSUME8dce+dNzjj3pfmmtNhmVPcRVCcsS10L4NNTefVgJVE3V256H9kvlS9sYkriOxfcwgzxsBQGwUCYE6fFPSzLSDtadWhWC26pei4WGM8TWaeCsBRze9TuTcVdzJoIJxYFq84WwsoElgKDILiL7qrghTSTqjaap8dDfTh0nCVT+aTGuIHe5pEvmOs6qdx5qDL70ZbiGxkEjesVttm1V1mAavTygJFUfZLP38szk/cXlwFmoF9Sq7nbdhee8jAt58ZZaN7HzYo6Aa0WAXapvBqGwT4EX+vagGjBXCTlQ==
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=u8rRp+XT6d1dIZLxltye5ArmuW4P4fmwGrddNG+ri2Y=;
 b=mEThNuDqI6C4y1F9VTlFi1YAkj9AOLR/jkPjOVJdE/fCfH0FYaczlzQeewchE7IMkXjjDHe2cPZbjdVnDjmnnmXe3HXwLK4cluS7PcWfp9Ic9qD/N6ZCmYuEHGaZAstNIy00ut/o+mLkBGja5oO9nUsZuwsdhJP872q8P2v92mhYk68/OJQ2kVyOaeqvmNRtteD7r/OB22KwX2FQX/1kG5fpmBw4ThJ/5TRzyyz65baevj3wkWq4a7URa7q4C4aZExVogF5i9oIXv73waJ853Zp83j7uy9GKuEfIsnWdS4cU4hm9X9FCIfqzyla8WtEC2G8JHNYsOTYGE8njQg3F1g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=u8rRp+XT6d1dIZLxltye5ArmuW4P4fmwGrddNG+ri2Y=;
 b=RMbhchw7gErYf/K0j3WBQhCFFtRc9LxRuyNp3eshXaPudqHpnA58h1fDqsab+dJzhQq3UiAysmR91MAEwCl8ieT/twnUHfnGktDo+6ONXPd5E/kQPN4YLYrOYc/brWN6jNM7stS8btLkc/lJzDAQa0log5490WWe3ZLNgMcA50Q=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [RFC v1 0/7] x86/hvm: Start unifying VMEXIT and emulated paths
Date: Mon, 18 May 2026 14:13:57 +0100
Message-ID: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0024.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ae::19) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|IA1PR03MB8062:EE_
X-MS-Office365-Filtering-Correlation-Id: 35658420-575a-4af2-c7a7-08deb4df5a28
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|3023799003|11063799003;
X-Microsoft-Antispam-Message-Info:
	FXHYlOpW+8UNip9YZHRRAxyewz9lNsS2fgOVIvJgSdHSgvOY/jxbdayEp0iEU0KgWu7pW9udTawG+2pKKSxBsBbdXDXwOhThU94HM3xmIfF92q7Bx7aslIsou+2a/9qzgN6J+ufBKYBCVmS7Zh0NkrjLypJE9tk+idOSJ2u01VV42fbeTgRiMWb/GC2QuBmyVZvC5hOp5Q0rs+TQy/7ijrMScoFbL+hzQmV01u4l7Sc3ijF193L+xOmK84NO3MjauTItEiaDkYBwkJK68jkmuZHP50UgRCyLIWHrk4fWh3A36lqjW2JwxP6MbZiPUPIYGyhcJh00HbBhoo9luLPXvUHbx4p9RHgvclDKjzsgV2rd9HO6pu8TPXQj5Jsf/rTbEaA/Ep5j5FmX+q/vWWBxbOpPBSmMunwcE8m4fXt/4uUiSmpR/S/GOnN2RFjkfkvYPxKocePKcCDM2A0j6NDCAIKF3sT/+6o6aPOCAh0yBl9WJxXHl2U8HQ/WkCA69WVz6o5wFuWuGWxPZlPT7R4/MS8pEoGKpbpjw6AKfyuaXFH9gfJR3NL3x7JWp2cocP6T16H2bV9MjFJbtxSwv7F6tdCc+m2bpnfXrmHw6uSzNMzLHHs/Do1fkFVmqhy9J8gjAiv8xZjr3Je71pigQ/SwrpxaPDwgk7X0NwEjBynrRm7xMzfekbEZWASjPbpwqtnW
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(3023799003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Bsnw3taHEjyUcF9M7PtooiDFFblT4Re7tk2P0Jt+mpPxMb4wWffLYJvgd3sE?=
 =?us-ascii?Q?YXua5cS/rwpP/ss1/pz7XaeagCyaTm0z9bNWhB7dobdMsRuhbQ/eOl6RKkHk?=
 =?us-ascii?Q?+sqbIxRCqMpoYZEsXqX/GDFmpUmldoZSVl1ynX2gPhss76iXFQUuYAykZZRQ?=
 =?us-ascii?Q?aA5an8QeQhemHNfzyRu3yB3nF6aCgs9/nm6bF4oD2A2o0uIVM5hsyh66RXyx?=
 =?us-ascii?Q?Z0L0FeSByrcmd8aaVjrYxLGM38N6J8LcGkF6Irp3bJyUPphpbEiM9OJTygF+?=
 =?us-ascii?Q?wqNXedIVzvyWK2T4JsiSkaqdzB6fzYfcwPqvRbl2cqkJ02bDxYh8yIsgZ9uj?=
 =?us-ascii?Q?oJDBTKcE4MGknwZ3S/XD888c1ytKtXbI3uG3jcEbM9icdQt7RwuyLXd3bo7m?=
 =?us-ascii?Q?3GC7qDrWPKcRVqJL5ASUBMgrR6Ed9iHp/Ee/mffdy7hfDYoWm1IyX70hm1nE?=
 =?us-ascii?Q?3pMoYM2txf1e25tF8sYeG84x4eCeKpG+67WHmSHmWdAk5GzY6MdMqz8/ttI8?=
 =?us-ascii?Q?AMtaS50mw+49EwZbWwZOfYEiFza4/RD4YntSeajwjZuyXveHNVLNBWkZhne+?=
 =?us-ascii?Q?DYHF5thC2wVEX21WCOaGA6AOmSrap3FYLDv6AdkE/PWtWotWEQkTWT7IBLgB?=
 =?us-ascii?Q?+0FN/2RK5tfThRFJxO/41wnkiBbVloQWTCsk71EwYI/aZQDg0VPtqcKNkLFD?=
 =?us-ascii?Q?80YmnyqY3HG9uqe+T4I3Ou55xwgEWbI2gheMVIt/i5MGuj4cGv1WeNTJ6KIe?=
 =?us-ascii?Q?V13XGOixER7c1ly4+81Od4ZLZwPjOFqsflqpKoMqWcpoyItAsE5PLvxKeVey?=
 =?us-ascii?Q?IJN23z5QmQN8iHbXwN4W/PodTSu5T9mx/zaznsxrPAelqgMICmr1Y8XOQNT6?=
 =?us-ascii?Q?f8n26oCB0r9s9kdn1eIMb/LN2p9fQH8K15RTeI125akt0bnBlNWfLMvvFfoy?=
 =?us-ascii?Q?C6tZY+CLCTLKe5akElHG4C4jugVnOncpAtAKgcnxoG5nW0QLL3Vm91u55yok?=
 =?us-ascii?Q?Fv6Tnfgp2XtvaNvWWxVxSDy97DdnT2SuMCKDYWhRVf0+AYGLiaTSRbMlQMmx?=
 =?us-ascii?Q?HEBjbEdp8gGowjXVFVrAu6qNoiYckP1sSjBefBu1dV4FIxS+ATYdaN7tr/lU?=
 =?us-ascii?Q?OXxVBsJSwRo+Z0t8yQkGCbhifcdBfSYTV1osN8580gXzIpQ4e4Z70GFIx4OZ?=
 =?us-ascii?Q?LqpsC3XsmwQ5lscVDts4LC10Dz0PQjO2/YrYbrCkdTpyrM9Vm/FekC+O0V1o?=
 =?us-ascii?Q?1jIjswBdfXguIn7xpZKMy4bgPex2HXsgi0lhU+Y2I+0/XyX19wb7eQiTs9r3?=
 =?us-ascii?Q?PnVM/z3d3AP/G18eySH/o5/yb3ktSZXRyGFft7tZLgjECKqetMj38zR5VUNH?=
 =?us-ascii?Q?4usnG6brOgrX6qMWS2LpOtt9S3UEWwbecctgdUaBk0nqp8bxksAGCz8JaCYc?=
 =?us-ascii?Q?KAD7n5zByh5NTuKEqCPQWLdqjTKLg1dr0PzKQdVV7c2mdGenpTEQt55jIjyQ?=
 =?us-ascii?Q?dh3n+d/73a9JRGHaHXFND278KOhHdfXlM6rX4mcjenF7B+AbLlZkPmz9kjA2?=
 =?us-ascii?Q?wIZ0TM9enT8Nl91cTos+YwxTZqQ+k212ViGUb7CxxyiZu3u8At8FyqrGZ4+O?=
 =?us-ascii?Q?J/MLA5ZRrVRByia1emLIH11pH6jiOZqWqe4ivvE2a1JXwZfM+PwiCsZgpX71?=
 =?us-ascii?Q?XVo4N5bN2TWmc14v+sRddbSLkArvtNZkd2DUfFQP/I6W9rHMi3AHel3tQl5E?=
 =?us-ascii?Q?Ge/x1NXWf2bBGe18EBWRGH59XZZZbLs=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 35658420-575a-4af2-c7a7-08deb4df5a28
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 13:14:11.8486
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dnq6cZ8pcLg187zYA3K9daRlgZz4Bbr0mf4nBIgdF/LnCGtY+T13nWXsWI29xNEgRG5ZeM37H5g610/WgVCVALGGDq6vY1UT0hpA86zPLvw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8062
X-purgate-ID: tlsNG-c201ff/1779110055-E0063443-D7D035D8/0/0
X-purgate-type: clean
X-purgate-size: 1995

Hi,

There are differences in instruction execution when coming from a VMEXIT
vs a fully emulated path. This can result in subtle bugs, e.g. injecting
#GP with trap rather than fault semantics. When using nested virt, these
bugs may become security issues if it allows L2 to attack L1 (because
L0 has done something unexpected).

To fix this, we plan to unify the VMEXIT (fast) path and emulated
instruction paths with everything going through the emulator but the
fast path short-circuiting some parts. This patch series adds the basic
infrastructure and converts two SVM VMEXITs: halt and read/write CR

The other motivation to do this work is to arrange it so that there is only
a single place where Xen needs to consider whether an instruction/event
is something that L1 cares about.

This is very much an RFC at this point so I'm mainly looking for
feedback on the overall approach.

Thanks,
Ross

Ross Lagerwall (7):
  x86/hvm: Move description into hvm_emulate_ctxt
  x86/hvm: Introduce hvm_emulate_one_ctxt
  x86/emul: Separate out instruction completion
  x86/hvm: Support a fast path during emulation
  x86/hvm: Move INSTR_* constants to hvm.h
  x86/svm: Use the emulator path for VMEXIT_HLT
  x86/svm: Use the emulator path for VMEXIT_CR*

 xen/arch/x86/hvm/emulate.c             | 180 +++++++++++++++++++------
 xen/arch/x86/hvm/hvm.c                 |   2 +-
 xen/arch/x86/hvm/io.c                  |  19 ++-
 xen/arch/x86/hvm/ioreq.c               |   2 +-
 xen/arch/x86/hvm/svm/emulate.c         |   6 +-
 xen/arch/x86/hvm/svm/svm.c             |  52 +++----
 xen/arch/x86/hvm/svm/svm.h             |  30 +----
 xen/arch/x86/hvm/vmx/realmode.c        |   2 +-
 xen/arch/x86/include/asm/hvm/emulate.h |  13 ++
 xen/arch/x86/include/asm/hvm/hvm.h     |  31 +++++
 xen/arch/x86/x86_emulate/x86_emulate.c |  48 ++++---
 xen/arch/x86/x86_emulate/x86_emulate.h |   3 +
 12 files changed, 252 insertions(+), 136 deletions(-)

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon May 18 13:14:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 13:14:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311844.1581983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxng-00007g-0U; Mon, 18 May 2026 13:14:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311844.1581983; Mon, 18 May 2026 13:14:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxnf-00007V-U3; Mon, 18 May 2026 13:14:27 +0000
Received: by outflank-mailman (input) for mailman id 1311844;
 Mon, 18 May 2026 13:14:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wOxne-00006Q-Ev
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 13:14:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOxnd-003Jkw-Ra
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:14:25 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10ad-2eae-0a2a0a5409dd-0a2a4509864e-12
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:25 +0200
Received: from [52.101.201.59]
 (helo=PH7PR06CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10ae-2497-0a2a45090019-3465c93bafe8-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:24 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by BY5PR03MB5111.namprd03.prod.outlook.com (2603:10b6:a03:1e2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Mon, 18 May
 2026 13:14:20 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0025.022; Mon, 18 May 2026
 13:14:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jDFmTrjy7owN6gd0JBZmZDBZg7kverEU5ObP3EVcraemPxWE1g6bAILrNHfyqFTpjWnFgejMaKbGM+c8tUDwGgI+iDPMzIWgE+VqZ8wQAp2I6KfTNA+Qd5PgIFMm6bXkGoVRxolDpdxD2sLt3APKX87tdBqcMxfzGc1enPclHMWRhEiDvlQshkM2eIITc0a1lrGXnTyiM0bJhIRjYVrWPWAbUObrIXf9Li4/0x7ixrs/W+ewZHsCTq1LnXAO3x9E1h7e4Rft2GETsW8BHcVse2a+P/AfWmwVmio5LhvuthmtR4RXtGAnj+dKqAipfaIdhxNStC40d1f3UzuvvGaDKA==
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=nFgETPH49yxWfA5mC3say2GUzcswnrvzxCdDMHgH7g8=;
 b=udxHn8CJtVnrqZ5tufSoVXYp8zYesPo59DuYSGb8hYL21pyp/XZs4YkSPn3/swfKGoVlICdvTVt7fzkA/ReRPj6DXKMVD2WxB0nosx2GVd3qDqXvJD/GCfNtMIQ4fZwmR37OzOmWPpk/ERYehCkhnFxQD3X7OUVu9EsCy0PoyFvAhhaihViEazkRPEfduMx+Kcq7kwkMt2AwhlSTZNnYgrRh+pcMugKJ8eOGSkx3gXThVKm+nOwG4Sbej+MNCAZVqZKRF35z5w0sbzr0YRcQOPPZZGPA2oqbPo/BEsD9xYNsKuMP+fEWIy9qI9/g2ArOFHXYMnVCbNCipkPaclY+hA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nFgETPH49yxWfA5mC3say2GUzcswnrvzxCdDMHgH7g8=;
 b=vNPWkeziUzv6kN9xIHUSDgDMFuF6UkixhAdziRpfrfv/Yuxrk0Rf2L/zt3FVkYyCikWymVSRrksuRRcgko//DA/euk3E2bfHjsxl3o+7yQaCucF2xDYaCBgv8gHDQSFlJYfyLCdkODkwZcOhiebaZV29zTTaGbuIQGczTVPNDIk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [RFC v1 2/7] x86/hvm: Introduce hvm_emulate_one_ctxt
Date: Mon, 18 May 2026 14:13:59 +0100
Message-ID: <20260518131404.3716969-3-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO0P265CA0003.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:355::12) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|BY5PR03MB5111:EE_
X-MS-Office365-Filtering-Correlation-Id: ebfe7f42-f7bc-42d7-278c-08deb4df5f2b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|56012099003|18002099003|3023799003|11063799003;
X-Microsoft-Antispam-Message-Info:
	FZ45hwJG6OYsQZrzeRBNo4iueIbngJj5suVPTM+/TuAYMnsWLP/pGTvGDPeQ770bboSdED3s+WNdnblov+qPcxAs1+NacUtqJVDW9D3b9AlJoFrl/IU5+CuXLMF2lRKWwRMgsa0Qtn5LgHdSKnPdO6tTQSYnH7nlqeTYOSgLoR+0AhFhllgjfHRlUXnJI0nkyNJf4+6aY5L6U68kxc30ZJEnSnhAXGBdqmBABUStysuBEm00TQP037l3wuEKK7dPOOwGW7zjfTHfU7cmIMMVtBYrE/hMl7NPW+HG/9H0Ig/MhiW9GEsZcMTpsnkR5j0loQSJkHHB5OKPWhp/Q/7ShCX3uQTU7y+NamY0qKnIJK3p4Pj4GcB+8EaTx/xFSgcuimIy0PGV2Ynbbzuil6BQpg2DLJbggBoVolLMzA+N0JBBPUTCP+4W4iFXCk1XsFaeQRtRpNcNVbgkE66kJ5/5Zcrp8dPwDdiI/27AjO2jLhGTp4pS8RtGgnrNTiOIQVc356En0bZWTB5et3WzQKmv/CGrRZPmvo4pMG2sXjQbbA07UR3xhOa0WmFDiKwITCPWrLUsgkV0uplZhJBdyunQ/veR8jfglPjJupLO7l/fO1A7UQJHW7CczGIwQhekuYQn+3KOW4alinHizVHDHLjmCQocqGYOXRemq3WYzl18VkLGw4j5bXJWYodSPwNRmotz
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(56012099003)(18002099003)(3023799003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?rmcuoXuEGay1YjauErUju+7F5CV/r51/TDEqCKEfQ/MzQnArV8ezD1sAqrHk?=
 =?us-ascii?Q?ACCZUnHetQ4b830KYIxx62PWNou28AxbTWqCc6PEKNEC7mtw1BLLhjOhGjfk?=
 =?us-ascii?Q?wKVSERZW1GMMa8vPHwzoX15cYZ8joeoQaS8AiJpa/cAqUya96lWKOJYzAwXM?=
 =?us-ascii?Q?Nn51X8F21yO9vlTTvCk1bZh7/kM1WMgmb1PJZS/Biy9XhcKFo9HieNN4ZTWa?=
 =?us-ascii?Q?U2jwQQsf1b8DiOH9tyuRl1N8lYIQjrkzSUoIVZJYHsqadb1KTBrn7OiI/f17?=
 =?us-ascii?Q?rCui8ub6sEDyyTECFUlKODU4rFlrFClpy0K6vRFZHZQqZsftIK8xrZcz/px6?=
 =?us-ascii?Q?lKEjGdaNQVQTLpQFzXP0ba887ua4TFuU6JVAGEHUvMFXsl8llpxtkRZbjmPA?=
 =?us-ascii?Q?oMjh6QaYy2sFwwwyQRK2UZI/zFLpKwKdLjblvW21DN2cFFujI9lYrL0a+A5B?=
 =?us-ascii?Q?3bXWG8LPcST+aiZiCY7tsb7zRtKekYGOtMaG5QPFR6PrybA+6y/3PL10rJCU?=
 =?us-ascii?Q?eIGEOl2wUzLQMSrbUTlDUDB5BwgBqo88BgWAMRn8kOYF9rlv5ZmbmJ8we73r?=
 =?us-ascii?Q?ov9QU5gncN+U9RUH11WnKho0jw9BBiEHk/7RZwwM3mL0Uayn7K9zJm2hdn/j?=
 =?us-ascii?Q?k6HBsvkShl1RvWgpoFeL6YCBIepGn+kJv8tN2tXSNdsANzj+1jouIF+h4mGt?=
 =?us-ascii?Q?LJnTl43HGyXaSXji/cZmkd5Xlku2qX2ezfif1O0x6IhvQZa57cK04DH3HOYT?=
 =?us-ascii?Q?osLXMN1a9EQL9b3rn+qTR8dTmpYGTXFpkeC5G5H3mQzR0DeUPQL5+9Zu5g1x?=
 =?us-ascii?Q?5LpSobY3ZVyYgnQqxRl9j01es7ss5vSqIUCujZZ4s7ktXq/H2qPAiYbEwjms?=
 =?us-ascii?Q?exq6PGTU+cuZcDBEy3DAgz6PjH2GQ4rr+YcR1ObQ5OW4TZm38vKP9LnYDhXB?=
 =?us-ascii?Q?cFh2yhkeUU1ISK86cvbd5ylMjaNXjlbdPDHlSWDq1wKIRLLABUSbLM98hNzQ?=
 =?us-ascii?Q?EZ2C1Tw2R+cV7q33JaNjV+hO+soW/qE5MFh2r02xylNBu57XYVchX+qdGCZV?=
 =?us-ascii?Q?5KofkoDuleKnoz3zznfk1jkIawdslCQeJPql5YOkQv8L6fHIgPqdlPxV6VwH?=
 =?us-ascii?Q?CqrRWh6qqNZ9nF+PlPCztApp4V6OLI6GT1nOPeuVcyfGwwKMykzREY/swS5j?=
 =?us-ascii?Q?6mgiAD0FOtcXEjheAY8dH04hycFeK2NBgA6w54d4VKzD8NW2ad1WHpRY0hbJ?=
 =?us-ascii?Q?jwNLzyxD9FV519NWskWka3nRPWPRe8wvmdm0SMcUJYvFYxYdnbV6Q+KoxC2a?=
 =?us-ascii?Q?NrNNDD3mf9A9X3mgBmi/KCJfW3c48tRjLiAxAH6K15neEuqpmaVNzjBiLech?=
 =?us-ascii?Q?R2HPC6qpNmYPs2nOdKxtwEMyR3iJrqX9iAvE7o1AqGmwnOk0mo+pkMa8+TX4?=
 =?us-ascii?Q?NaGFOZXcm3ndHVgqQWsQDs4dkT4YJYMPwqDXt4Pa2gV5LmabujztXxfzaej1?=
 =?us-ascii?Q?8w56NUDc/Q2ooz8s2PYFfOMVBH9XkvlJJd0SJsOGnXMTsLQ4Mba8bRAt0sDj?=
 =?us-ascii?Q?k9ZOKw0O5APpyYNcjqgfkAIZZTFM85Mvp7xVhw2lcdG6D0oh0asuekDuPMXe?=
 =?us-ascii?Q?dl12w0px3vAjfhbn7HLHAenQQXi5dS1d68/0/FNv7GJw+nBEynCv+XfuAXBa?=
 =?us-ascii?Q?EgWB4zW/dNQ8kRTH1EOOrjtzLlgLpp1gTkgWgwVTudR0aMWlRxrytmHtRi57?=
 =?us-ascii?Q?QdNbVW4+AWw7lCCgLIAelLR8GbRJJ/M=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ebfe7f42-f7bc-42d7-278c-08deb4df5f2b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 13:14:20.2776
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: MCdI7ZZUbkvU3RjxAPl3lay6BeYWspfM6QiKQ7jb6nyl3Q13ngnkeWvN8W8Lbb+U5euvVBWYE/a2RB99J21KYHpcNKhe8AunM1/0MHsFMRM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5111
X-purgate-ID: tlsNG-bad1c0/1779110065-8957AA53-EE0C1D5E/0/0
X-purgate-type: clean
X-purgate-size: 2398

This is like hvm_emulate_one_insn() but takes an existing
hvm_emulate_ctxt as a parameter. This will be needed to merge the
instruction emulator and VMEXIT fast paths.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/hvm/io.c                  | 17 +++++++++++------
 xen/arch/x86/include/asm/hvm/emulate.h |  1 +
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c
index d9838c36d330..7dc6f64b646e 100644
--- a/xen/arch/x86/hvm/io.c
+++ b/xen/arch/x86/hvm/io.c
@@ -53,27 +53,32 @@ void send_timeoffset_req(unsigned long timeoff)
 bool hvm_emulate_one_insn(hvm_emulate_validate_t *validate, const char *descr)
 {
     struct hvm_emulate_ctxt ctxt;
-    int rc;
 
     hvm_emulate_init_once(&ctxt, validate, descr, guest_cpu_user_regs());
+    return hvm_emulate_one_ctxt(&ctxt);
+}
 
-    switch ( rc = hvm_emulate_one(&ctxt, VIO_no_completion) )
+bool hvm_emulate_one_ctxt(struct hvm_emulate_ctxt *ctxt)
+{
+    int rc = hvm_emulate_one(ctxt, VIO_no_completion);
+
+    switch ( rc )
     {
     case X86EMUL_UNHANDLEABLE:
-        hvm_dump_emulation_state(XENLOG_G_WARNING, ctxt.descr, &ctxt, rc);
+        hvm_dump_emulation_state(XENLOG_G_WARNING, ctxt->descr, ctxt, rc);
         return false;
 
     case X86EMUL_UNRECOGNIZED:
-        hvm_dump_emulation_state(XENLOG_G_WARNING, ctxt.descr, &ctxt, rc);
+        hvm_dump_emulation_state(XENLOG_G_WARNING, ctxt->descr, ctxt, rc);
         hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
         break;
 
     case X86EMUL_EXCEPTION:
-        hvm_inject_event(&ctxt.ctxt.event);
+        hvm_inject_event(&ctxt->ctxt.event);
         break;
     }
 
-    hvm_emulate_writeback(&ctxt);
+    hvm_emulate_writeback(ctxt);
 
     return true;
 }
diff --git a/xen/arch/x86/include/asm/hvm/emulate.h b/xen/arch/x86/include/asm/hvm/emulate.h
index 2801d14d5455..084e2bd90588 100644
--- a/xen/arch/x86/include/asm/hvm/emulate.h
+++ b/xen/arch/x86/include/asm/hvm/emulate.h
@@ -65,6 +65,7 @@ enum emul_kind {
 bool __nonnull(1, 2) hvm_emulate_one_insn(
     hvm_emulate_validate_t *validate,
     const char *descr);
+bool hvm_emulate_one_ctxt(struct hvm_emulate_ctxt *ctxt);
 int hvm_emulate_one(
     struct hvm_emulate_ctxt *hvmemul_ctxt,
     enum vio_completion completion);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon May 18 13:14:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 13:14:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311845.1581992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxni-0000Ng-8m; Mon, 18 May 2026 13:14:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311845.1581992; Mon, 18 May 2026 13:14:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxni-0000NX-47; Mon, 18 May 2026 13:14:30 +0000
Received: by outflank-mailman (input) for mailman id 1311845;
 Mon, 18 May 2026 13:14:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wOxnh-0000KK-06
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 13:14:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOxng-00EWKw-CM
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:14:28 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10aa-5cb7-0a2a0a5109dd-0a2a450aa170-48
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:28 +0200
Received: from [40.107.208.49]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10b2-56b3-0a2a450a0019-286bd03147ae-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:28 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by BY5PR03MB5111.namprd03.prod.outlook.com (2603:10b6:a03:1e2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Mon, 18 May
 2026 13:14:24 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0025.022; Mon, 18 May 2026
 13:14:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KsV39skMRHI6JNafJKHe2WpW2WvXfSPJo58c9633aMt2xqaV296InJ13wNYfvSu++LrH67Jx8KLW1LK61QtG0WH+KamG/A3oLUobFkYEuf2VrljD/eN4FbWDbyBFLpiqY8bXq7z9E0aDxMdBGZJFNMEodMiS+Mq/G4AF8R4VxEW5JFmvGKM/vFSwjg3EqVV3qeN5gluKT4bVxD/U2L5/raqzwogJUswTVTMSi+bo/YxNRkZGQ+nwB+3eg+ZS5maQik3Bj4v9s5NWkUg4yJzM+Z7ROowV85lBMNuYlredCTUGugsntQ+uuwza3E5NqikY7vA5jcYKGxAsXlqPQzy8eA==
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=IvpufiE6EX4IADgKhV1F40NPVtMT7lPinzez3cDqZ/k=;
 b=C9H0tTNEy5ArjqkzokC8lHlg5i9rgIvXKi4shMc+buSmeV4usg66B6pBEEs3VHgHOXJ+1XptSYcOB7f0po50pSpsOpM/tLtB0piCnxXlmLlMeZV5jSKbBTsqGIjVjCK0Ex39RQfIse+4AVJTbldo3/VckMcck5VaIzG4Fl6LUw6+5EcN7ZbYIO3RAo0be2qg8yVWaLR3ZyeUJfXZs989N4/UpwrmvewXRaKzAS89ZCcSx1dcEqOAmeZSO57RCErgxcoToG+aR1eUTRZuvFoxSFlP3Himlw4WvNMGZ1dUWboI12OLFPUijP9busW8D1Ioh4x3DX9EfC247eMAS/Dt+g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IvpufiE6EX4IADgKhV1F40NPVtMT7lPinzez3cDqZ/k=;
 b=iCNnDkDr0ycJG2/xEIovV3zbuTTrrG2wqDSwbU4VHI6xOIPUR9Wwhy9fUM7JiS8HE9HAj+Hll6YTL6bwFOlr9tGy7UNXkH3cnp1NQiL6n+x7P1MroLtmuTNxVqr4TWmk8aG6r1FtgCeHHtXQV8m4QIrcoPtQRQG1bPfFxakkH4I=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [RFC v1 3/7] x86/emul: Separate out instruction completion
Date: Mon, 18 May 2026 14:14:00 +0100
Message-ID: <20260518131404.3716969-4-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: AS4PR10CA0005.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:20b:5dc::13) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|BY5PR03MB5111:EE_
X-MS-Office365-Filtering-Correlation-Id: f0b56c02-0799-45c7-807c-08deb4df613d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|56012099003|18002099003|3023799003|11063799003;
X-Microsoft-Antispam-Message-Info:
	TC/bt776wv+lTW1EoVcUWMvaDvxbHDdARI1mrw/5SXKhrk9dzl6NwomlMQ82qrAvHzMyy8fHLIA8tSafF1bvpfMLF0frwH91zq8p5JF0/c2zhmVicjhO0XMjOEDUfJm27StcNdnBAx0PXfXCWxkJ/rFoC94u3QtZ4AinKuQqfW5gI6gKEQYWsFIzMHcwht5T1NBME+3/0flfC98WE5x7D94F6RwFs7suW0IZVA3EzO047AjdtAW+jaJOQ9aT4o5wlCsa4OkInCQMe2UEjba4Q/3JRhmP/4zTIAVgUdr34hEbzAkxSKwL2d+qeYO7MTbDSZt2GN9MFOotBS8OMysMQd2gaKFeZlIabUfIZqEM7igWbS3DeTqMX4B5Kd3INXVh/7PTT3/4X8f5L1LlWhOdHw9+dF3EFNz17BbZKE2RKA/9qkr9TFBSf35zDoR5xwcjUfRDzOCKkZJRbyQkrupRWBilyiMqH4l1B+7gtw8jCkw6fouszICNcJ+7elPH21f59NDifjOnPXD8p0WBDCFpQC6kRK8PRSgEQCY3bz8m7XJ+LOBQ9tjNGwtBPw0SadxWOArVh9lCTo7nu682lR6NZX78Tqy1hI1uISzobjHqH9TltfZOQVbRF4HmU2JXIe9lEuyQHfbALZWTzUbF526w0jm9GIx5sJHqhs0j351FS6thOj4PBLQHbIi4QN5k/Hfn
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(56012099003)(18002099003)(3023799003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?qlfB+jTAQlAbBYQDbh5PfwPatKBwKzHNFcHlh9UdCyuXFckqVuDzZMaHqZ7H?=
 =?us-ascii?Q?336W9VV+yvSNRYgluFCaweA/SNrrRcZfr7bBthUZf4OakWsrhc8LiGzO8pVl?=
 =?us-ascii?Q?R9SWjb/sFXuWVn6Aj2dkykbEumTc1cMa3736zGVhxw6zX2Wm1HDBcTli6KCS?=
 =?us-ascii?Q?QocKZgN5rAU+xu2w971M5juRjKA6I1V8DZvmNZ2G1RQvahF7P8nUyJCSiC+E?=
 =?us-ascii?Q?+n43XHZu9IaPYBoh2jhQGahOlW4p0uNoPm+KGzxmryTPt4RAIbPI63R1HIwY?=
 =?us-ascii?Q?9s3uHCfksRL5htTbgS4gFkojRFjbQaZFE6Bb47Llp3/OLHrYW6BLxfeYe/bd?=
 =?us-ascii?Q?RRMS5FIlZq4mwouCb+4mN2zfPPYjDJuAlvS9pzBwqA1DqS+GxmbHxlQNdv9s?=
 =?us-ascii?Q?ZvzyWwSf5nAs82A+rL+TwaR85DUbsY51Y6g00vorwnqyW9Gr9yRAUlD2WKDn?=
 =?us-ascii?Q?sxDdvF+xI4OpJ8cAr5ueEKXQ+vyJK3pO4Y88TsayO+Ni26p8V4hdUE3yE12U?=
 =?us-ascii?Q?wXlcN2a43alm/S2HRyxfVebrpY5p4mWp8jsjx26dAO0H88w1Phs26ygLAiI3?=
 =?us-ascii?Q?Ra2hRM3cd9yhB/CLQX1a8r0NfyT9NW6NuDxVAc1WRsdbmyzKzPO3mTpqYqFF?=
 =?us-ascii?Q?GkWSj/Ognuk9KagZC+rWg940e/ZyTqGLSwdeeOgwn7fhZTP0gLfKwWVUl9f+?=
 =?us-ascii?Q?jG+bZ7TEJgSrs1PeawTgmJXBzAEyNHsDvhdF/t2iRk0SW96IZ54AZQzPECF5?=
 =?us-ascii?Q?LsLe6BWrjXrN3B+G+W7PetGL+OmZt5lL9HdykyP3ZrzxW+i4UQ8w7snFX5Yd?=
 =?us-ascii?Q?B3kEZqj1H5FK26GL8U2sCA5UWXse4JmTQm9eWZQDyKbCLz6X7kvSVzilEG23?=
 =?us-ascii?Q?7u3SKlK63TJ6msh+cpNtZffHn1ic5dJw+69pL078rilnHuCe6Y7NQoLRmbcs?=
 =?us-ascii?Q?qE1JDyi2ZFG2cV9PKDJQw45usXIBvFe4uMq9BYEDK7Ogf1kO7xNQXr/u8In5?=
 =?us-ascii?Q?VaGblX99mzwcoB0yuD0tGF3NWEJF1pe1wHFnd8KP3Xw3V3Vd0DVZCQXT4ZmJ?=
 =?us-ascii?Q?Icjt/nprKdnt1hqwPoukfE0C1VsEek0y2kBDG8cwIBLAlSBio699lEsQI246?=
 =?us-ascii?Q?maintDwwDKFu2fPD26dMMqXroH+wYfGx7+JNh7ww0IIlVHMGH14o3JTkIEtn?=
 =?us-ascii?Q?+OksI8TmxqJpOoxA1gnils6vhMmWYoha3KnfC5mhWuFu3nhI9aFhyrMtfXQF?=
 =?us-ascii?Q?NhG3kR9OiKa535oB+YSvA4vP4P3emGlJHGcKfmH3lldDHGlA6eD4bP37iiGV?=
 =?us-ascii?Q?T+maLmU1Ie6vsEAwWweQVMXuJmyVcP8geP9rEn/TwKW1j6n4fFK7gyiHUZMN?=
 =?us-ascii?Q?ioJaGnHQ4MpK8B7uqtaKgIUaQWoRUM5b+1Qnm+t9MNO+gyRgc16v3nbnNTwo?=
 =?us-ascii?Q?NSmmD1DLFKdmwQTDSn0B7q7VKQ3QI0Gd6eAiNOn7IhvL3Dmww4e1n+dh2vyL?=
 =?us-ascii?Q?BV1BOEWQRw3rjxzlUOd1c2yfAd7IABdwFihKZWUpaw2rAVS1EOlDgxBzIVOH?=
 =?us-ascii?Q?qgKCa3QFK7JRobOAmDBSmvQfIcxx1eP374c21pSJ91tSItDQs43ljmEf5HI1?=
 =?us-ascii?Q?Xr9Pp1iZFkrwqbva/6wS4XeVxZDmjArW8p9NfWdN3gG0Drdy2mjEG+ZscEap?=
 =?us-ascii?Q?5JD4e9YjgsU/EAxYHopCOKt0T7iEJGGyEvU7PxrkuEP+3OYWpP+gNnrP7vgh?=
 =?us-ascii?Q?t/oAZ1ejDvgzIYUbmxG32zcV/Q/XRec=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f0b56c02-0799-45c7-807c-08deb4df613d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 13:14:23.7949
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: F3FQZQM4rfQYtzM7ZSsdCAz1aH4sbzHtpqXu9GydHclp3ymMTQ/crmLULzvk5QmWFkQpHe+Uaq1l/n2+ouSUv9QsgWEaRF3gHvlMFBQ7mLs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5111
X-purgate-ID: tlsNG-4011c0/1779110068-7236B8B7-976AE496/0/0
X-purgate-type: clean
X-purgate-size: 6425

To support merging the emulated instruction and VMEXIT paths, split out
instruction completion from the core x86 emulation so it can be called
separately.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/x86_emulate/x86_emulate.c | 48 +++++++++++++++-----------
 xen/arch/x86/x86_emulate/x86_emulate.h |  3 ++
 2 files changed, 30 insertions(+), 21 deletions(-)

diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c
index 364e6c092ded..76fbebf96b4d 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -320,7 +320,7 @@ do {                                                                    \
     rc = ops->insn_fetch(ip, NULL, 0, ctxt);                            \
     if ( rc ) goto done;                                                \
     _regs.r(ip) = ip;                                                   \
-    singlestep = _regs.eflags & X86_EFLAGS_TF;                          \
+    ctxt->singlestep = _regs.eflags & X86_EFLAGS_TF;                    \
 } while (0)
 
 #define validate_far_branch(cs, ip) ({                                  \
@@ -337,7 +337,7 @@ do {                                                                    \
         ({                                                              \
             validate_far_branch(cs, newip);                             \
             _regs.r(ip) = (newip);                                      \
-            singlestep = _regs.eflags & X86_EFLAGS_TF;                  \
+            ctxt->singlestep = _regs.eflags & X86_EFLAGS_TF;            \
         }),                                                             \
         ops->write_segment(x86_seg_cs, cs, ctxt)                        \
     )
@@ -1234,6 +1234,22 @@ int cf_check x86emul_unhandleable_rw(
     return X86EMUL_UNHANDLEABLE;
 }
 
+void x86_emulate_complete(struct x86_emulate_ctxt *ctxt, int rc)
+{
+    /* Zero the upper 32 bits of %rip if not in 64-bit mode. */
+    if ( !mode_64bit() )
+        ctxt->regs->r(ip) = (uint32_t)ctxt->regs->r(ip);
+
+    /* Should a singlestep #DB be raised? */
+    if ( rc == X86EMUL_OKAY && ctxt->singlestep && !ctxt->retire.mov_ss )
+    {
+        ctxt->retire.singlestep = true;
+        ctxt->retire.sti = false;
+    }
+
+    ctxt->regs->eflags &= ~X86_EFLAGS_RF;
+}
+
 /* Helper definitions. */
 #define op_bytes (state->op_bytes)
 #define ad_bytes (state->ad_bytes)
@@ -1265,8 +1281,6 @@ x86_emulate(
     uint8_t b, d, *opc = NULL;
     unsigned int first_byte = 0, elem_bytes, insn_bytes = 0;
     uint64_t op_mask = ~0ULL;
-    bool singlestep = (_regs.eflags & X86_EFLAGS_TF) &&
-	    !is_branch_step(ctxt, ops);
     bool sfence = false, fault_suppression = false;
     struct operand src = { .reg = PTR_POISON };
     struct operand dst = { .reg = PTR_POISON };
@@ -1280,6 +1294,9 @@ x86_emulate(
 
     init_context(ctxt);
 
+    ctxt->singlestep = (_regs.eflags & X86_EFLAGS_TF) &&
+	    !is_branch_step(ctxt, ops);
+
     generate_exception_if((mode_vif() &&
                            (_regs.eflags & X86_EFLAGS_VIF) &&
                            (_regs.eflags & X86_EFLAGS_VIP)),
@@ -2064,7 +2081,7 @@ x86_emulate(
             goto done;
 
         _regs.r(ip) = imm1;
-        singlestep = _regs.eflags & X86_EFLAGS_TF;
+        ctxt->singlestep = _regs.eflags & X86_EFLAGS_TF;
         break;
 
 #ifndef X86EMUL_NO_FPU
@@ -3103,7 +3120,7 @@ x86_emulate(
          * Their only mitigation is to use a task gate for handling
          * #DB (or to not use enable EFER.SCE to start with).
          */
-        singlestep = _regs.eflags & X86_EFLAGS_TF;
+        ctxt->singlestep = _regs.eflags & X86_EFLAGS_TF;
         break;
 
     case X86EMUL_OPC(0x0f, 0x06): /* clts */
@@ -3189,7 +3206,7 @@ x86_emulate(
                                       ctxt)) != X86EMUL_OKAY )
             goto done;
 
-        singlestep = _regs.eflags & X86_EFLAGS_TF;
+        ctxt->singlestep = _regs.eflags & X86_EFLAGS_TF;
         break;
 
     case X86EMUL_OPC(0x0f, 0x08): /* invd */
@@ -3918,7 +3935,7 @@ x86_emulate(
             /* In particular mode_64bit() needs to return true from here on. */
             ctxt->addr_size = ctxt->sp_size = 64;
 
-        singlestep = _regs.eflags & X86_EFLAGS_TF;
+        ctxt->singlestep = _regs.eflags & X86_EFLAGS_TF;
         break;
 
     case X86EMUL_OPC(0x0f, 0x35): /* sysexit */
@@ -3958,7 +3975,7 @@ x86_emulate(
         _regs.r(ip) = op_bytes == 8 ? _regs.r(dx) : _regs.edx;
         _regs.r(sp) = op_bytes == 8 ? _regs.r(cx) : _regs.ecx;
 
-        singlestep = _regs.eflags & X86_EFLAGS_TF;
+        ctxt->singlestep = _regs.eflags & X86_EFLAGS_TF;
         break;
 
     case X86EMUL_OPC(0x0f, 0x40) ... X86EMUL_OPC(0x0f, 0x4f): /* cmovcc */
@@ -8347,17 +8364,6 @@ x86_emulate(
     put_fpu(fpu_type, false, state, ctxt, ops);
     fpu_type = X86EMUL_FPU_none;
 
-    /* Zero the upper 32 bits of %rip if not in 64-bit mode. */
-    if ( !mode_64bit() )
-        _regs.r(ip) = (uint32_t)_regs.r(ip);
-
-    /* Should a singlestep #DB be raised? */
-    if ( rc == X86EMUL_OKAY && singlestep && !ctxt->retire.mov_ss )
-    {
-        ctxt->retire.singlestep = true;
-        ctxt->retire.sti = false;
-    }
-
     if ( rc != X86EMUL_DONE )
         *ctxt->regs = _regs;
     else
@@ -8366,7 +8372,7 @@ x86_emulate(
         rc = X86EMUL_OKAY;
     }
 
-    ctxt->regs->eflags &= ~X86_EFLAGS_RF;
+    x86_emulate_complete(ctxt, rc);
 
  done:
     put_fpu(fpu_type, insn_bytes > 0 && dst.type == OP_MEM, state, ctxt, ops);
diff --git a/xen/arch/x86/x86_emulate/x86_emulate.h b/xen/arch/x86/x86_emulate/x86_emulate.h
index 0fd20747dc43..17bf14455cf3 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.h
+++ b/xen/arch/x86/x86_emulate/x86_emulate.h
@@ -594,6 +594,7 @@ struct x86_emulate_ctxt
     } retire;
 
     bool event_pending;
+    bool singlestep;
     struct x86_event event;
 };
 
@@ -680,6 +681,8 @@ x86_emulate(
     struct x86_emulate_ctxt *ctxt,
     const struct x86_emulate_ops *ops);
 
+void x86_emulate_complete(struct x86_emulate_ctxt *ctxt, int rc);
+
 #ifndef NDEBUG
 /*
  * In debug builds, wrap x86_emulate() with some assertions about its expected
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon May 18 13:14:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 13:14:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311847.1582001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxnl-0000fH-Fv; Mon, 18 May 2026 13:14:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311847.1582001; Mon, 18 May 2026 13:14:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxnl-0000es-CJ; Mon, 18 May 2026 13:14:33 +0000
Received: by outflank-mailman (input) for mailman id 1311847;
 Mon, 18 May 2026 13:14:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wOxnj-0000bp-OX
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 13:14:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOxnj-009DNN-4d
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:14:31 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10aa-e002-0a2a0a5209dd-0a2a45039368-46
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:31 +0200
Received: from [52.101.56.13]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10b5-672d-0a2a45030019-3465380dc3c7-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:30 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by BY5PR03MB5111.namprd03.prod.outlook.com (2603:10b6:a03:1e2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Mon, 18 May
 2026 13:14:28 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0025.022; Mon, 18 May 2026
 13:14:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GuZlb7uKpvo9maczxH5N2NRCmDsTD9umaTmUdvS5IkGAFvhCQekVHSkTnsCcGuXGUF7380MpWvtVyprRSq/YRP/03NCOFmoSFc1hQ3YNYYCApnGOFQxyOCu9j8QReHyJjNOXPtgl9ygm3yMSgbbKGf3h+0bV+vee1jgqUVemoIiOCfotAFpn4nfbIMadR8oc/vFsp7LQGrU6XxcNRwySkZT6uPWh1FSpx3NBayikA9pfGprJmQa5GFWtsBiSE6t/6MtfOzbKd9iE8huHKhFtGdSNaD55/rlUjjUkozizHhyS/8+CPCqQQI6dNlVeUfvPyI4vv6Yvlf9KU8x/pkM3vQ==
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=E01jp2Z6iewjF/MH52l40+JkT5jeEYpzfDYIumrs0IU=;
 b=GmPxPmJYcPiUyvgSKXypjGxedEU1SZdONU3G4BAKk1GPaHRzIf136TGiYJYM8Edn9Sf3RZLe3/qR/+Yuvj0QdpPPsCouz6ivFaokujG9Eg7i/haZYqPhX2xS5N131GTupEh8w1lLWz6bqyu3aw6FfZ6cfnalTuzKEXb2mARyxNpeHenFNA1/rmggHDglL1ujQ6z2jIWMa52YJIrP4rkFsesB4KYaSsmoF4gQ2mjWUu3D1TfsC0Q8UDBm8c4uXP59QJZ4OHBwJ+/1fQQW1HoNd+xmZ6JRVX5cpi6qx7QcYtuj+r+Zxkd8bKh7c9H9LehS0W3Ce2dchXSZ4Yza1F3+dA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=E01jp2Z6iewjF/MH52l40+JkT5jeEYpzfDYIumrs0IU=;
 b=JrwbENw0EVUBYb4agrMGNpL2rI8b8GClIi7jG6z6/M+168/nghVqLdNhwqC18zIEG1Lh/yYMF4fZtyW8O0qCaqoW77E8e9/tnkymvMgA9YiAMzDfijhZePO4Qx5YOoFLIm1r1Bu2ocWfI5uX/z+1FB5if1eNoO/4082PMCPj9+M=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [RFC v1 4/7] x86/hvm: Support a fast path during emulation
Date: Mon, 18 May 2026 14:14:01 +0100
Message-ID: <20260518131404.3716969-5-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0362.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18e::7) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|BY5PR03MB5111:EE_
X-MS-Office365-Filtering-Correlation-Id: a667065c-4896-4d76-7bec-08deb4df63a9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|56012099003|18002099003|3023799003|11063799003;
X-Microsoft-Antispam-Message-Info:
	hBjlCrB1Viehht3VOiAvG64AanGlSpYCI0pn6mohhk++38UJMu0gdyM7CS2Njso6dJuGzHN62c5xoFe0soDWZo9SfDHOV3/sCKAOk77kMrX+5qb7Qc/l4BgBniRP/tXDxvfZibVt1XUCJ+Xw36kt55Ah82kVGCyx3I7QbwIwfD2FYS+r/tRmSjULQHpwxbj/eJnb28V9SGjknPhlNjn8351To1CZvDF6s7cAI0H3VNK1ayRh5rjWoEt9tZfIT0+BEuazKI6fyzFXeyJxrUvmCMr3M366Tyi22SiSyVtEW20KDPv6U9NA8FahyYRCBAsEraDxkFRQsA86xitzIlMolAWW97YwIGavYCqJzcrr/wAlzFuCgOgKJy0cfuDMFLWxI/VpScrcCW9hnO7jW6xqwn6q0Km1MtYeMVbEtLlAhd5AmqGTgbOcuJBmeSLEQ6aYp95ArFNTlJXxXKnozyRz7FvsSouR+LgtMBnblGskF8/kiXZgZR6KKyD19waFvMUpwl3PTAneD+hQ1NbX0UVmC6Tr1f0H7j8y87gwCO/LKqsNJty3+FXGiuCrPBX4pv9CG9goqRWTm0asxozXm+3E9yWZdRu1b07eRsj4A3rSxw2L2ZFqulxRYNxTK5XWw9iSjDu494ySfyycX+y7dAChhmNU0jI66rVr1K1uHxr840jThlzc2gM/I3oHerkDjLpY
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(56012099003)(18002099003)(3023799003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?pcg7YG4MRPTQfOJorsLSmhTh2LWk9D8OY62tusqrtFjdpzn3C0pzJkadcjzL?=
 =?us-ascii?Q?4MOTLNJamGJ/RiZfqMEI6JzrUEtrbV8sK+flCSuMVuhmStoGEcWYsz9zigkG?=
 =?us-ascii?Q?I1GXjXJRcI1sEnuKQyJx+UUCx0QdpEryl2Ed79CtGzkbzLXh6iUTMpAo6CD3?=
 =?us-ascii?Q?Oz11ZAZaTtUtR8Y1Dq/D7WXgK7lGVszAMC9eAN63DuC7ab3hKdomcufEQRhG?=
 =?us-ascii?Q?vqOo0mMnPYe/yimQQ+d6APS3SN+NYqZgA+nwYqLbYp8cFFYkzfi+ffsTQAq1?=
 =?us-ascii?Q?ZxTlVsJa6+V99NLiMWTow+/2t3a4sEz/Es5/kg7jNEL8Q5z7ueHrmgSLeLhD?=
 =?us-ascii?Q?jlF+FJ58R50Q/syzGqu7GFx7SQbbZbg5FNZmvERwfoi7Pe60gXyyqhjgkN3T?=
 =?us-ascii?Q?Sy7RTL8Z+OVqN2RZ58g+3rzyc9AYZQZ3J3p6fbbQXuAdcZ0vaN3/R/l12vzd?=
 =?us-ascii?Q?hvY0NUpFNpbMytT7ZKIvIqUWgIKGhuco8QGE8I0PDcN/qmZBOz+k+Ifg/f1N?=
 =?us-ascii?Q?Czfe0LhKGsa2/lYwFK7/Yo3QzvuDRDSgEIdSTV7jD9UlIdMYt0GbitkYnMqf?=
 =?us-ascii?Q?FmFMi343J5UBH2nXHn1hFzpik0ob/4JsBxPH9xCdXIm8ZDXf4+Uw/TS96KvE?=
 =?us-ascii?Q?SGPlCm3d4jRvJazT2Sw2oKBfulWjeLQE22cQh8pjWqSKvZYRjr2dhmOSnCGa?=
 =?us-ascii?Q?hyOR5hZQlzLaUxempvH3pFrXRRqe8zzw1PSnQRBVVXZhjAnYcaO2IMLcVhjI?=
 =?us-ascii?Q?Qo4daVEl4CX/koEbnUr5DAhnoZnag3CjekMEC3lLcuEX7HLQN1UdyIgBUPcy?=
 =?us-ascii?Q?PIH9t2p5k7xpwwHvRUxNPYLySf9p4hqtxQ6pCn4yST/o4EYvV5g4SS8uj5Q7?=
 =?us-ascii?Q?wEIL0TFKuk/QrPL5ZuCjYS5SNDAzZAdckoJDRGiGcgoMcYDRrDxMPRcRvjZA?=
 =?us-ascii?Q?efWEjIFEG4DZoBg7W30h2tjjrERbskM2OrCL3Jv6rZOtmRiSinxvjDQlhYmr?=
 =?us-ascii?Q?h/1S+EbwRDdKBn6TTR1ji4HUowTfRiZpkW4eRZz87mE/IDs4jO79xHmp1WOc?=
 =?us-ascii?Q?GNWv6MAuNie+1GZtONKC3cAmD1w4/bmuA4H9oXqVrekkG1yOUA1iAd0U7ZBw?=
 =?us-ascii?Q?jNwp5lg0N9y5b3Qb4ACGW2IdjbmhNf2KccP0TXVOGVnqrOzzPCvEhx+JHeaN?=
 =?us-ascii?Q?l+L4g6eDJcC4Y9JZODhC7veDbAq/XEmbrVp5AM/XRPDHP/3m8X5KigaKaJa4?=
 =?us-ascii?Q?BTkGgyU947aAyVkv07AQwxNMdjQZddsQCGweAR676upMH6Xcrq3uX7xRjDKU?=
 =?us-ascii?Q?fCLnksue8rq6QM7s1oS17qzQRVJ1vNb2mW1LHGdxUz/leHqXh9DCuJl6DlU9?=
 =?us-ascii?Q?n6H3PuxtC8xpF5gXSu7E92m4rF44dpttT0KRYsTTpi9hnNjYOjYSZZtrNi7F?=
 =?us-ascii?Q?SFHjoNWBmGXlfDg5wf36+SSdgAPzENXD2S0kVGt8iq7nIjPLBf4ZnEusBatT?=
 =?us-ascii?Q?pj1fqkvL7+iGeeUt7nBCiMeAdoj6SCBHLVVGcQysgcR+UrsJGkaCikj6AbfW?=
 =?us-ascii?Q?8XtQ9GUpy2AMnf56b4KbNDi8Nahgps9W7jnDjU6eAUnhggsORLc0O1s+ztlj?=
 =?us-ascii?Q?Ub5Orc4LR+Hs1vEEDCcbAKT/V0AZLcJZeg5jdazHLG2hY4MI/lXM2isme4tp?=
 =?us-ascii?Q?TGvycLtPT+mCh3/i4i82QSGv8txqoZ/cyTGgI/xfoKNkq77LC0Dw5x41eF2J?=
 =?us-ascii?Q?BhSGVrlAgyWok678mMiHYHMMD7PoTfM=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a667065c-4896-4d76-7bec-08deb4df63a9
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 13:14:28.1158
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: c7n2IhOyE3uYNtBgqv10I+vFnmtCAoENlcYYeNHyIV9SjaUmipL85TzaJ1BKGpfE+fHdA1+7/cYY1kBAnpBtw7EXE8OGsGWYjUvxa6fEWW8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5111
X-purgate-ID: tlsNG-33051d/1779110071-4066C938-B80763D6/0/0
X-purgate-type: clean
X-purgate-size: 8277

Information to complete the instruction may be provided by the processor
during a VMEXIT. Add a fast path during emulation to use this
information and avoid going through the full x86 emulator. Plumbing the
fast path through the emulator ensures consistent behaviour.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/hvm/emulate.c             | 160 ++++++++++++++++++-------
 xen/arch/x86/include/asm/hvm/emulate.h |   3 +
 2 files changed, 123 insertions(+), 40 deletions(-)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index a96d7814f91c..c9553cd28238 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2724,6 +2724,52 @@ static const struct x86_emulate_ops hvm_emulate_ops = {
     .vmfunc        = hvmemul_vmfunc,
 };
 
+static int hvm_emulate_insn_len(struct hvm_emulate_ctxt *hvmemul_ctxt)
+{
+    struct x86_emulate_state *state;
+    unsigned long emul_len;
+    unsigned int instr_opcode, instr_modrm;
+    unsigned int modrm_rm, modrm_reg;
+    int modrm_mod;
+
+    state = x86_decode_insn(&hvmemul_ctxt->ctxt, hvmemul_insn_fetch);
+    if ( IS_ERR_OR_NULL(state) )
+        return X86EMUL_EXCEPTION;
+
+    emul_len = x86_insn_length(state, &hvmemul_ctxt->ctxt);
+    modrm_mod = x86_insn_modrm(state, &modrm_rm, &modrm_reg);
+    x86_emulate_free_state(state);
+
+    /* Extract components from instr_enc. */
+    instr_modrm  = hvmemul_ctxt->insn & 0xff;
+    instr_opcode = hvmemul_ctxt->insn >> 8;
+
+    if ( instr_opcode == hvmemul_ctxt->ctxt.opcode )
+    {
+        if ( !instr_modrm )
+        {
+            hvmemul_ctxt->insn_len = emul_len;
+            return X86EMUL_OKAY;
+        }
+
+        if ( modrm_mod       == MASK_EXTR(instr_modrm, 0300) && /* octal-ok */
+             (modrm_reg & 7) == MASK_EXTR(instr_modrm, 0070) && /* octal-ok */
+             (modrm_rm  & 7) == MASK_EXTR(instr_modrm, 0007) )  /* octal-ok */
+        {
+            hvmemul_ctxt->insn_len = emul_len;
+            return X86EMUL_OKAY;
+        }
+    }
+
+    printk(XENLOG_G_WARNING
+           "Insn mismatch: Expected opcode %#x, modrm %#x, got emul_len %lu\n",
+           instr_opcode, instr_modrm, emul_len);
+    hvm_dump_emulation_state(XENLOG_G_WARNING, "Insn len",
+                             hvmemul_ctxt, X86EMUL_UNHANDLEABLE);
+
+    return X86EMUL_EXCEPTION;
+}
+
 /*
  * Note that passing VIO_no_completion into this function serves as kind
  * of (but not fully) an "auto select completion" indicator.  When there's
@@ -2733,63 +2779,97 @@ static int _hvm_emulate_one(struct hvm_emulate_ctxt *hvmemul_ctxt,
     const struct x86_emulate_ops *ops,
     enum vio_completion completion)
 {
-    const struct cpu_user_regs *regs = hvmemul_ctxt->ctxt.regs;
+    struct cpu_user_regs *regs = hvmemul_ctxt->ctxt.regs;
     struct vcpu *curr = current;
     uint32_t new_intr_shadow;
     struct hvm_vcpu_io *hvio = &curr->arch.hvm.hvm_io;
     int rc;
 
-    /*
-     * Enable caching if it's currently disabled, but leave the cache
-     * untouched if it's already enabled, for re-execution to consume
-     * entries populated by an earlier pass.
-     */
-    if ( hvio->cache->num_ents > hvio->cache->max_ents )
+    if ( hvmemul_ctxt->insn )
     {
-        ASSERT(curr->io.req.state == STATE_IOREQ_NONE);
-        hvio->cache->num_ents = 0;
+        hvm_emulate_init_per_insn(hvmemul_ctxt, NULL, 0);
+        if ( !hvmemul_ctxt->insn_len )
+        {
+            rc = hvm_emulate_insn_len(hvmemul_ctxt);
+            if ( rc == X86EMUL_EXCEPTION )
+            {
+                x86_emul_hw_exception(X86_EXC_GP, 0, &hvmemul_ctxt->ctxt);
+                goto complete_insn;
+            }
+        }
+
+        switch ( hvmemul_ctxt->insn )
+        {
+        default:
+            ASSERT_UNREACHABLE();
+            rc = X86EMUL_UNHANDLEABLE;
+            break;
+        }
+
+        if ( rc == X86EMUL_OKAY )
+        {
+            regs->rip += hvmemul_ctxt->insn_len;
+            hvmemul_ctxt->ctxt.singlestep = regs->eflags & X86_EFLAGS_TF;
+            x86_emulate_complete(&hvmemul_ctxt->ctxt, rc);
+        }
     }
     else
-        ASSERT(curr->io.req.state == STATE_IORESP_READY);
+    {
+        /* No fast path. Go through full emulator */
+        /*
+         * Enable caching if it's currently disabled, but leave the cache
+         * untouched if it's already enabled, for re-execution to consume
+         * entries populated by an earlier pass.
+         */
+        if ( hvio->cache->num_ents > hvio->cache->max_ents )
+        {
+            ASSERT(curr->io.req.state == STATE_IOREQ_NONE);
+            hvio->cache->num_ents = 0;
+        }
+        else
+            ASSERT(curr->io.req.state == STATE_IORESP_READY);
 
-    hvm_emulate_init_per_insn(hvmemul_ctxt, hvio->mmio_insn,
-                              hvio->mmio_insn_bytes);
+        hvm_emulate_init_per_insn(hvmemul_ctxt, hvio->mmio_insn,
+                                  hvio->mmio_insn_bytes);
 
-    hvio->mmio_retry = 0;
+        hvio->mmio_retry = 0;
 
-    rc = x86_emulate(&hvmemul_ctxt->ctxt, ops);
-    if ( rc == X86EMUL_OKAY && hvio->mmio_retry )
-        rc = X86EMUL_RETRY;
+        rc = x86_emulate(&hvmemul_ctxt->ctxt, ops);
+        if ( rc == X86EMUL_OKAY && hvio->mmio_retry )
+            rc = X86EMUL_RETRY;
 
-    if ( !ioreq_needs_completion(&curr->io.req) )
-        completion = VIO_no_completion;
-    else if ( completion == VIO_no_completion )
-        completion = (curr->io.req.type != IOREQ_TYPE_PIO ||
-                      hvmemul_ctxt->is_mem_access) ? VIO_mmio_completion
-                                                   : VIO_pio_completion;
+        if ( !ioreq_needs_completion(&curr->io.req) )
+            completion = VIO_no_completion;
+        else if ( completion == VIO_no_completion )
+            completion = (curr->io.req.type != IOREQ_TYPE_PIO ||
+                          hvmemul_ctxt->is_mem_access) ? VIO_mmio_completion
+                                                       : VIO_pio_completion;
 
-    switch ( curr->io.completion = completion )
-    {
-    case VIO_no_completion:
-    case VIO_pio_completion:
-        hvio->mmio_cache_count = 0;
-        hvio->mmio_insn_bytes = 0;
-        hvio->mmio_access = (struct npfec){};
-        hvmemul_cache_disable(curr);
-        break;
+        switch ( curr->io.completion = completion )
+        {
+        case VIO_no_completion:
+        case VIO_pio_completion:
+            hvio->mmio_cache_count = 0;
+            hvio->mmio_insn_bytes = 0;
+            hvio->mmio_access = (struct npfec){};
+            hvmemul_cache_disable(curr);
+            break;
 
-    case VIO_mmio_completion:
-    case VIO_realmode_completion:
-        BUILD_BUG_ON(sizeof(hvio->mmio_insn) < sizeof(hvmemul_ctxt->insn_buf));
-        hvio->mmio_insn_bytes = hvmemul_ctxt->insn_buf_bytes;
-        memcpy(hvio->mmio_insn, hvmemul_ctxt->insn_buf, hvio->mmio_insn_bytes);
-        break;
+        case VIO_mmio_completion:
+        case VIO_realmode_completion:
+            BUILD_BUG_ON(sizeof(hvio->mmio_insn) < sizeof(hvmemul_ctxt->insn_buf));
+            hvio->mmio_insn_bytes = hvmemul_ctxt->insn_buf_bytes;
+            memcpy(hvio->mmio_insn, hvmemul_ctxt->insn_buf, hvio->mmio_insn_bytes);
+            break;
 
-    default:
-        ASSERT_UNREACHABLE();
-        return X86EMUL_UNHANDLEABLE;
+        default:
+            ASSERT_UNREACHABLE();
+            return X86EMUL_UNHANDLEABLE;
+        }
     }
 
+ complete_insn:
+
     if ( hvmemul_ctxt->ctxt.retire.singlestep )
         hvm_inject_hw_exception(X86_EXC_DB, X86_EVENT_NO_EC);
 
diff --git a/xen/arch/x86/include/asm/hvm/emulate.h b/xen/arch/x86/include/asm/hvm/emulate.h
index 084e2bd90588..1e626f8af8f2 100644
--- a/xen/arch/x86/include/asm/hvm/emulate.h
+++ b/xen/arch/x86/include/asm/hvm/emulate.h
@@ -53,6 +53,9 @@ struct hvm_emulate_ctxt {
     bool is_mem_access;
 
     bool set_context;
+
+    unsigned int insn;
+    unsigned int insn_len;
 };
 
 enum emul_kind {
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon May 18 13:14:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 13:14:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311849.1582010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxnr-00016I-VM; Mon, 18 May 2026 13:14:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311849.1582010; Mon, 18 May 2026 13:14:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxnr-000169-S6; Mon, 18 May 2026 13:14:39 +0000
Received: by outflank-mailman (input) for mailman id 1311849;
 Mon, 18 May 2026 13:14:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wOxnr-00013G-0d
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 13:14:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOxnq-003JoA-Cq
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:14:38 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10b7-2eae-0a2a0a5409dd-0a2a4501bf3c-14
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:38 +0200
Received: from [52.101.56.22]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10b9-c1f2-0a2a45010019-346538161449-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:34 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by BY5PR03MB5111.namprd03.prod.outlook.com (2603:10b6:a03:1e2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Mon, 18 May
 2026 13:14:31 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0025.022; Mon, 18 May 2026
 13:14:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QAy02tJS5b5VGRekoS78xeBonh4UNZzl91vKvy8cvS4092S7rn9iYdge2nQcGj/k2jFTdaxkRGR0xWlVgzq6vDEdIVYRatsH54YxLOlgRFXXMqku3nK+h6RYAutb5NbndrSI7VmV0SuHwkxSvZQZUgHaCnd0ezXwlodteT2GvsgrIXQ3Ox8TYH/Xk5KoFXcDMfTTqqx9b03CTAMISKWlAssgs9uylnI81X1k7v6ofKDZZN+gKLWkMg8Vut4t5mrjMZynbKewnBHenXlbzk0o9CeTYAMPWBnLFG6kdpTz8SpDneY5EWZT0jVpmZPyYrntjv9Oegy9pteCFgu10kC08A==
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=py92D7T6ajUs/lftz0hxd7Va7hBBB94kwza6iTYKzCg=;
 b=WQTfwzApEro7Xe9pkuynshJJYYNh1oTAri6T4k6o+Cy3KC9HhR9BVjmSdcwS7UDwUrct2k1M80QRiNetdw3daNtmmaR3Ytd+LlvvLcn4KZbEcdqfk5jcl2tgolh9Hi2Kx33tLNpWNKpxNTxTxfDlf831w58H6a5OoKRBFCHsP0dsjprx2NKpQo7PUoIZu85QW757k4JT4zwBEtGIQb0oamlAimEupf8sobp4zpOxaOKLioEU7Hy9LHJDSXnN1DcKJes3Bc1uxYrbbVfxcrm1imyMkjzfxb3rdKTiE4RhL+W6v6qA8pZHSn+0GIUZECH6jXvs4v+4hU6tZPgh8CBk3A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=py92D7T6ajUs/lftz0hxd7Va7hBBB94kwza6iTYKzCg=;
 b=fy8+EXebDbMhWkGEaI5YMwVV0S59T76fT46bgD8unDyQlo+RE978X1kXeeCTLFoLS1XK02UsE2A5890DlL1Iaq6bbhpesDxwxWvCBgeN43FygSmqvL3XdJT27ZXc/M1xApZtURdLB33y3XhEqw0Z8zQEnl7p5OaX2x0CNDr+GvQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [RFC v1 5/7] x86/hvm: Move INSTR_* constants to hvm.h
Date: Mon, 18 May 2026 14:14:02 +0100
Message-ID: <20260518131404.3716969-6-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0370.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18e::15) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|BY5PR03MB5111:EE_
X-MS-Office365-Filtering-Correlation-Id: 5b5df522-df46-421b-b7a3-08deb4df65e4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|56012099003|18002099003|3023799003|11063799003;
X-Microsoft-Antispam-Message-Info:
	e9y3u0Qr3nxsz/plYe7lyNk9Qm5G1NkE4hJSHRLwAxhiStA5U04bK8Pdgb2mfM1nj/7FLFQw468UOiseS9NX8RgZq1fzTRRL/ckndQ0bWMxXUnKalGzP1Hfc9jde6NN2lrn38jNhjJJtzBZN09aJ0W8UBdHP8JP9X4IcuyrFJc/zV+L4vzWXHt7MsNO17kHBee+C21X98QbveqFh2EBP4J9AbHIKvU2JlkbCyqjFDI5Q7agncIz6c/wmComAH4PQWvcA1cWGqAFA7fCx4iNOcNHxZyOEt+rfzWU9tXFrRhDXAjmEswb7COgayy13TgQHLE1Nj09EVqR/DIVUFCpiXEBZzTg7iXZoBr1Um+hHRrfKjVm3AjDheGpqw5DJXHUzxxLSNjePDNxyZgteuhrCSF+zI821FGM8uZu/2mvhiasHKCVSBYQ2fsV+vOLZ9QtROuocBkOBuZg3GPLbDh8h8/5UBwt4BwOsIXSSkAAypcCYdZkgn1BzhilEd+5y4ff8Fl99iv6ekiFDb66SNAei8Fw+fhrLVxnWxdAzVa/lvqlhEF4ZekiT4oEPAoiG91eCOvcC2CQwYhg505OjX8iI4wwI0zmHiBHB8vbGGqhXG7eb2jHVTNYL9lzlLjCif/L62giEkhZXdm/420tx2rVarEAZz+NtvP4+XVNPOCJQchh5e9ScyO3b/P2QmOJ0hlLZ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(56012099003)(18002099003)(3023799003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Z5iGAc4L4eeMxVQMQNGJdXt/TT5WGMxFcyQ8piwPo1dXEqe7NfGtbcAFd8Cz?=
 =?us-ascii?Q?bXjUOXxF1rJ/NnJTfa/BYG+/L6XeJOclIq/OZTP+g4ld96R02dDX348zVuEA?=
 =?us-ascii?Q?ZrX2IqxLzmSNcsHSzl5dGOQP8N91sA3kjcLUENEaG/tewhjCX2Vx+9P5vAL0?=
 =?us-ascii?Q?Amb2opucCthBneVvsj845lrDugkOpIxES0xSbEQ2Czx7mKhuLP7vA6rwC7wg?=
 =?us-ascii?Q?1ChCutz1awEH2OfCwTRfaxqOhYDeBsgI48eGCSR7/dVOHpM1waWpP4NahIvi?=
 =?us-ascii?Q?DV0FEXrs4m79K02n/0aPvPAIdBvvBMCXPOzk1EIH3uAe4LtYZYoP50nnsKpa?=
 =?us-ascii?Q?ESZtdzRU9m65V/HYpMsdmpjTtiJdwb/ULUITT6RficUrB6/hYTjO6zDgSbL3?=
 =?us-ascii?Q?7m0AVNhGu9QJLui1FStev0FD/F0QoZXTbGIfKxxOeHIv3rQ5DGWOZcyQSSzo?=
 =?us-ascii?Q?OVwLeUixGsxkWLZhF50CgDwRoqhmh9dAus3N6Ek+ltvp4QAzksBjUzXAbHhZ?=
 =?us-ascii?Q?8Bc05Z1l8r+tlxY0jQIp8JUx70B+fw6bRXjuHebjudgNxUcLPeQCrB2uDaHZ?=
 =?us-ascii?Q?VKg3c5CI9ol0lf4j8N06kBQe8HbeZAbFfpYFieNXVhhRGXYNxHoCRgPD8YoH?=
 =?us-ascii?Q?7EGs6TmSY4dxveOZU5Q9taf+LOGyE6kquijzui5YQ5DXt53FGc5/y5R8bXDG?=
 =?us-ascii?Q?xF8Xeh+L7fINGhZjwFK6e6amNTHr1DcNX3B/rDYK/9mrlcDVEZ5uPUeZ4OaO?=
 =?us-ascii?Q?HPTno+1bqZKHZyjjbVxLe5E8oHXPtU4TjClsZQzFo9S23+pDpWlLvC8xhPDY?=
 =?us-ascii?Q?aMDugjlwIkI1cwWgX21x1hHDqn7DPj+vWUSy6LMJAqcgRzG0ksgGBBJkU2R0?=
 =?us-ascii?Q?YoQARS7v+cqGXzMuL2ij438+KRWAehqQ/y70nHhGaoCE6cXdoMn8rXpU5bDi?=
 =?us-ascii?Q?2WYmQ8e7c1TZeLyN/mbKAsIS02qgGsU8wKKBZlGQqWPnwPvuLd512E6EzP3o?=
 =?us-ascii?Q?gFDGaKkPpHTAQbS4nMvxaXRW6JZpHQc6hSLXmLRVUTKsPTppmNlR7sYRMRYP?=
 =?us-ascii?Q?dCtQg66dHUbYqXWUVEJAjUX4z5H5gIwi66chpccHyb48Zh9KKD4+lvpFN104?=
 =?us-ascii?Q?NUIsMlxqgbDY0kJx94K0EuqsM6LSZ6Bvqh9tr4s2s1Ikoc3GkT981cq9jejv?=
 =?us-ascii?Q?sNmv6LR3B3uCDO0EvYp7mPijKY2z7V7cQ0WYkIKTkflWpBNmP8GnCseTmB/j?=
 =?us-ascii?Q?gMGGvrCFv5rH4Z/2xkuCOWQL8uxJa2T5uUfCEEIn9baSbgItLTOUZrL1hDTV?=
 =?us-ascii?Q?3PTvzX59PfAVCMXcJLy/pkf2oUR6iPZEgXS8xkdaFxuK4dYKbgTrSjDnigNg?=
 =?us-ascii?Q?PMnXBDLwohFDTHZ+1YA6w9z3MpLB2uOJOtw1kCGn5sSa6auqa9ph/J3wfUVX?=
 =?us-ascii?Q?UoBi0zc+PvmYPuCFkJhVnnK5U5dNANqHHvcLziKf4dAgcBdOZpcFtU8Y9r3J?=
 =?us-ascii?Q?YDth0dGv/tdvq52fmh4A1wZY6p9T+GN4NJJTKm7+ynpj9lckkS+jvDnRyI+z?=
 =?us-ascii?Q?yxtbTTJmQQSmOXdsrj4INfw3jNta59t4P7h1Ok+dO8irHgrUd5eUBl4cn7ZM?=
 =?us-ascii?Q?ThTMlq2mjQd8omZG4OEskp7wTqT6uuUVkrXStFLQg7vFYpmi0AhXqb6Lw98Z?=
 =?us-ascii?Q?MdbiC7FL3ywajUpbWBEDJzkSaqWXA3k1tqxJf/by+dJn5r/4XxLNdrypKMU6?=
 =?us-ascii?Q?8JqhHqiTm0XIdvSlqIqZ38D8JkmC0WQ=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5b5df522-df46-421b-b7a3-08deb4df65e4
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 13:14:31.5784
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cpfI7Cmvgxc0kl6iiC+3OatIvTGrfT6eLo59jbU9NwsWY7pI0zVfBuKAB9nPhEbEcbAwyp/vHI8nGxuv7WdE644X4KPcWYfXCX9ZhoW54Oc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5111
X-purgate-ID: tlsNG-d62444/1779110074-B4D49FF4-C251B081/0/0
X-purgate-type: clean
X-purgate-size: 4736

These aren't specific to SVM and will be used for emulator fast path so
move them to hvm.h.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/hvm/svm/svm.h         | 29 -----------------------------
 xen/arch/x86/include/asm/hvm/hvm.h | 29 +++++++++++++++++++++++++++++
 2 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/svm.h b/xen/arch/x86/hvm/svm/svm.h
index cfa411ad5ae1..f75bca7c5f66 100644
--- a/xen/arch/x86/hvm/svm/svm.h
+++ b/xen/arch/x86/hvm/svm/svm.h
@@ -36,35 +36,6 @@ static inline void svm_invlpga(unsigned long linear, uint32_t asid)
     asm volatile ( "invlpga" :: "a" (linear), "c" (asid) );
 }
 
-/*
- * Encoding for svm_get_insn_len().  We take X86EMUL_OPC() for the main
- * opcode, shifted left to make room for the ModRM byte.
- *
- * The Grp7 instructions have their ModRM byte expressed in octal for easier
- * cross referencing with the opcode extension table.
- */
-#define INSTR_ENC(opc, modrm) (((opc) << 8) | (modrm))
-
-#define INSTR_PAUSE      INSTR_ENC(X86EMUL_OPC_F3(0, 0x90), 0)
-#define INSTR_INT3       INSTR_ENC(X86EMUL_OPC(   0, 0xcc), 0)
-#define INSTR_ICEBP      INSTR_ENC(X86EMUL_OPC(   0, 0xf1), 0)
-#define INSTR_HLT        INSTR_ENC(X86EMUL_OPC(   0, 0xf4), 0)
-#define INSTR_XSETBV     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0321) /* octal-ok */
-#define INSTR_VMRUN      INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0330) /* octal-ok */
-#define INSTR_VMCALL     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0331) /* octal-ok */
-#define INSTR_VMLOAD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0332) /* octal-ok */
-#define INSTR_VMSAVE     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0333) /* octal-ok */
-#define INSTR_STGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0334) /* octal-ok */
-#define INSTR_CLGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0335) /* octal-ok */
-#define INSTR_INVLPGA    INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0337) /* octal-ok */
-#define INSTR_RDTSCP     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0371) /* octal-ok */
-#define INSTR_INVD       INSTR_ENC(X86EMUL_OPC(0x0f, 0x08), 0)
-#define INSTR_WBINVD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x09), 0)
-#define INSTR_WRMSR      INSTR_ENC(X86EMUL_OPC(0x0f, 0x30), 0)
-#define INSTR_RDTSC      INSTR_ENC(X86EMUL_OPC(0x0f, 0x31), 0)
-#define INSTR_RDMSR      INSTR_ENC(X86EMUL_OPC(0x0f, 0x32), 0)
-#define INSTR_CPUID      INSTR_ENC(X86EMUL_OPC(0x0f, 0xa2), 0)
-
 unsigned int svm_get_insn_len(struct vcpu *v, unsigned int instr_enc);
 unsigned int svm_get_task_switch_insn_len(void);
 
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index e7c1364802f8..a9b64814ca71 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -851,6 +851,35 @@ static inline void hvm_sync_pir_to_irr(struct vcpu *v)
         alternative_vcall(hvm_funcs.sync_pir_to_irr, v);
 }
 
+/*
+ * Encoding for svm_get_insn_len().  We take X86EMUL_OPC() for the main
+ * opcode, shifted left to make room for the ModRM byte.
+ *
+ * The Grp7 instructions have their ModRM byte expressed in octal for easier
+ * cross referencing with the opcode extension table.
+ */
+#define INSTR_ENC(opc, modrm) (((opc) << 8) | (modrm))
+
+#define INSTR_PAUSE      INSTR_ENC(X86EMUL_OPC_F3(0, 0x90), 0)
+#define INSTR_INT3       INSTR_ENC(X86EMUL_OPC(   0, 0xcc), 0)
+#define INSTR_ICEBP      INSTR_ENC(X86EMUL_OPC(   0, 0xf1), 0)
+#define INSTR_HLT        INSTR_ENC(X86EMUL_OPC(   0, 0xf4), 0)
+#define INSTR_XSETBV     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0321) /* octal-ok */
+#define INSTR_VMRUN      INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0330) /* octal-ok */
+#define INSTR_VMCALL     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0331) /* octal-ok */
+#define INSTR_VMLOAD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0332) /* octal-ok */
+#define INSTR_VMSAVE     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0333) /* octal-ok */
+#define INSTR_STGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0334) /* octal-ok */
+#define INSTR_CLGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0335) /* octal-ok */
+#define INSTR_INVLPGA    INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0337) /* octal-ok */
+#define INSTR_RDTSCP     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0371) /* octal-ok */
+#define INSTR_INVD       INSTR_ENC(X86EMUL_OPC(0x0f, 0x08), 0)
+#define INSTR_WBINVD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x09), 0)
+#define INSTR_WRMSR      INSTR_ENC(X86EMUL_OPC(0x0f, 0x30), 0)
+#define INSTR_RDTSC      INSTR_ENC(X86EMUL_OPC(0x0f, 0x31), 0)
+#define INSTR_RDMSR      INSTR_ENC(X86EMUL_OPC(0x0f, 0x32), 0)
+#define INSTR_CPUID      INSTR_ENC(X86EMUL_OPC(0x0f, 0xa2), 0)
+
 #else  /* CONFIG_HVM */
 
 #define hvm_enabled false
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon May 18 13:14:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 13:14:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311851.1582018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxnt-0001Kk-6E; Mon, 18 May 2026 13:14:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311851.1582018; Mon, 18 May 2026 13:14:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxnt-0001KS-2D; Mon, 18 May 2026 13:14:41 +0000
Received: by outflank-mailman (input) for mailman id 1311851;
 Mon, 18 May 2026 13:14:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wOxnr-00015y-Tq
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 13:14:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOxnr-003JoA-9e
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:14:39 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10b7-2eae-0a2a0a5409dd-0a2a4501bf3c-22
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:39 +0200
Received: from [52.101.56.22]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10b9-c1f2-0a2a45010019-346538161449-4
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:38 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by BY5PR03MB5111.namprd03.prod.outlook.com (2603:10b6:a03:1e2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Mon, 18 May
 2026 13:14:36 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0025.022; Mon, 18 May 2026
 13:14:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XmsVF3aYBfqvy99Xv4+jX4KNqikN8LFoFqMES4Q9hvZFSp70qTQx/p8W0du4KnojDHL3aXLhiTBH+/z8CBK2TStTgtL1EGKy5M54Lzft48Pr2K4NPguJTh3aXeHfsXchOewzlCvygM9c2TMlIVRHAdrgIEGGAamWVJ9ZGKI5wJeiugYgRv201zFULbsguEbk78ExtuW+XTnPRbt7roDK8NDWw4bqqcnWNNWylwfoXEow1HaCJK1OJGOLQPZElpqpItzSFzOBVX1qyMKdb3tkDxl64Ug5j7gEU7AIRD9sFBimtQDUhcCx8NgNcMjoIzriFLgq2KfJlNKk9S8soKwlpw==
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=KoDhQ+7axytwqMbd7TZEfHbYAtFgt+F6pamrfRpBcS0=;
 b=MD2rGGtvtRIZKSA96jkyFYJPJfbta0QpxkKvos79FM882DUde9XC4AOZSevOyQUkcKYzeDsWJNwJIsDnaJTAWptBXrWrDi2TEdbB0puBCDG4K/oOUxnUDk6eYBr6yqjwj/LkgCEQ4Dq1mcxmu4RTZRm0eXSDjmewXrR2M5yymWav3RKcELJaQ6k3uiTXTfmOXMObWOADuhvm1aXPvGoC+bhsC/3KCPfeHV10XP2zwcX/K5NMQsz3d1X9tpzpFwL8XPtZLb71SuRLqv+LINtsZTrUPIKPcfSKUarY0aAWidWg8jcmOPUtjEaZLA4SWXh+ySqMQoKUVfZY+eBtpsV1zw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KoDhQ+7axytwqMbd7TZEfHbYAtFgt+F6pamrfRpBcS0=;
 b=ag3tNsGfO8D2KzYDipOZKxUrAWdazynABCS5a7ACk85ce89hYoRd6NIR8HUOikaY3okPgl6IMoCLaCggk2JIHZPRPDyHI82JEARGdUq2QvqluiL7WQEK9Myg3Yvxkpr07Wy1vTUPKk4t7f92mE9ttL9VFNgbpjxgvIMU1gG8R1w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [RFC v1 6/7] x86/svm: Use the emulator path for VMEXIT_HLT
Date: Mon, 18 May 2026 14:14:03 +0100
Message-ID: <20260518131404.3716969-7-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0373.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18e::18) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|BY5PR03MB5111:EE_
X-MS-Office365-Filtering-Correlation-Id: 132fa3f7-db45-45df-61f4-08deb4df689d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|56012099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	UsW46sa84rLqLcB3/ncT0KO13TjkveqYENur/yNER1L6i1zD9NdfnxkRO9j3u7DKZER4Ji1V/VcLf6F0UKoDR88Avo4MAxuV2xBYD49F+aW/cXDrA97GpYPyt4y8zvOx2zi2iVy4RqAvxSJjjsp7+DKNQHe0CSZFVVFMnIQpc38xL3aDlU9f302kHH9084dA0zTG9yozsMq6yReKh21FWGmh65DhEnJYBh5jUWN34ZQF5MUe4CnHU+QA/GhY0YiWaGeVlWnkY0X/H8MHThbp28fHTzdiWvqtwPnrZzUbOzR4zYMM2ggcDfK2AC9uBj1cJSAcG2AGbcWKBv97zjRnir8X8/My5Nj30iGD8mkgpWKICGkMbTISuNMt/mwjjIJTR+bdXCrqg+JCxorcW59PPMeIZwboqbd+DIm4q7DMOlwlxGHwukQAitZXhFj8NTdaq6/RdUjsj5fQ/7sfV1EXDrryc6hAwSJANfGQfDmhEZenYG2kpkpa1qH08cOeWAZ5uURNFRheSj+/JoMlF/i9Hz/HlkrmuLVHx7TPtqs+29S85M4UR7YCz5IVlcr2gpGBDVK+90gz4swaKIcecx6i41Wea0H2AakhRORgMtudg+vk3ShEmzuypVEbPn0haO/1UTo3XLlGXTMkUvLp8RjQkyBhMyVWfkgMKIFTwMfQT636PpjiLJq6tt8GmdsPAdUg
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(56012099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?4UjIJmNSDMEk/43vFr6s590TZS+r9thMXUH6lLJlRLFynCfvRwkJ68Rw4c1W?=
 =?us-ascii?Q?Uq6H2GHacCEA2plfZtl6H4DYQ/s/G08ZiCV8X6wdv7Dzq2UPziuUeT43+It1?=
 =?us-ascii?Q?uIvjOcNbX+7X/BkHUmyq3H/1lVHjy65wwAGAbi8w2ZLus00XbUaNHxFhPTwT?=
 =?us-ascii?Q?2V+9D2Wr2ULUVDoQV9e+flV5H0XvAixSw0Np2F4+K/ZJhhSxtCKQX8B2Daxv?=
 =?us-ascii?Q?sYeruix1OytkzeUBBY/RfcqkgMEwIFTqMJKnZvIspy6zDRKhS37I50aCYKcS?=
 =?us-ascii?Q?7spOSgEelgce8c6LlBmK5NXRC1Zb/f/FkhB2/dbZcMi1HcJBcPgu8RX5B+Q1?=
 =?us-ascii?Q?vnd3OqLxa8EYvraVqfSSPN0vonRTE0pygZnkZwI+t1Xt4THwiwvvTOfjsVQm?=
 =?us-ascii?Q?qKgMCENRuR8Lmxg3bIyaDxEGcKWyxEOqkxBxO2W0lI8/IFg46GFgEw17aDg1?=
 =?us-ascii?Q?7GWRR6wYHUx15MZMw+G3JCK9iFzMIKM0DM1N7N+dYA9KHGiw9BLZVvf+IVID?=
 =?us-ascii?Q?Ny5rLBSYgAG/hWEyLXfTtcJbpPf7sPO+oARbAUe6Zsl9IujWrEf4ELziWRhs?=
 =?us-ascii?Q?4Dlm+vxFZTICp/RFsfjOqE33AMd2Ti9r2veiYPWizAq2oG72V4WUKBEWXlPf?=
 =?us-ascii?Q?FwG1GoT44AMJsvkYKRQQR2uoI3/TMJvXdExtF2Ey2LPGVbLBes3GvNSL2tyq?=
 =?us-ascii?Q?l2Ryytq5+KcgpBWLYwtx/fXEjZ7BfdNCuETNlyY3wZXQhe3gnIvRuFNdFzA+?=
 =?us-ascii?Q?PMM/Gpulk/UxhZPJ0fXMjn8K1ynYG6MFEJJgSvXzmTbJ1fHWnSQlYffeciNI?=
 =?us-ascii?Q?JDM/hZXJhY5bP8D9w4v2MHKcW1aOSbD9Fh5I+w7WfG+QIxafojW4/Ql6G2Jl?=
 =?us-ascii?Q?oQH4B+ioTiuw6hSQ6yDClmltWkp9fa2Nm8GPFMXQ/VbtUjKszfetSrJifB+w?=
 =?us-ascii?Q?bSKsoluF5y/XuE8TA6nSNjdwN72Y38jdhL5St+pNwTFFRml5872SlMnrzbFH?=
 =?us-ascii?Q?x4IxR6KcKpJznPaCEQXR00bIdgjx2RrObFHAuYEJROltLPKztOu6BmHC9ijc?=
 =?us-ascii?Q?+n4/8PEvKxvFN8JJJNIcSmDM9WJqU0jZmesN2iRm3+iE57Xg3gQOnXYJoFYk?=
 =?us-ascii?Q?pcDLnIv1LZi1VripA0VLef9mrpm5HZ1BpTJT/1DFNYCOdqmc/tNCLhbNg5ry?=
 =?us-ascii?Q?/zbWIw40sZysj01PZPiZR/7ZFhRrtQ1MRwwwma0fwZp0jatk1dI4jxucIaOW?=
 =?us-ascii?Q?Yf3Wn1FiN1T2i+hPE5pDxCiCcugjP8BMZMxltnJOm9R3CN64UKxTANLPPdIC?=
 =?us-ascii?Q?aI1U5EEuvP30L3jkwT8ls6YUa4mbZ9AlojKIR+ZbEzd0RQUy/z/SymdKSiHD?=
 =?us-ascii?Q?1mvN0/yaF4HNBsvvbAQg9jWI6QTa0Elxn5GrEB0Jgtuvg3OVoQ+ETr5KPkZj?=
 =?us-ascii?Q?sbpIFhqJGup8dxRJi0lB92HDhEiL1O8H223RFfewwzNRKuoCjKB6jC4EpyRM?=
 =?us-ascii?Q?b/bOpy4JxpN8cm2b8LgefFtz75czlHjz2UG/CvD7JqZCOs5qbR4ybEOGHG7H?=
 =?us-ascii?Q?d7TWnT381pCzaEMonswFfDR3x3ZLiMKweBPHbpoKpXuDi7K7yMf6vfO+mgdC?=
 =?us-ascii?Q?LePAteObyYYaPGP/DNZKAK/fZ6zU1NcBk/fMOonY+wxORsNEmi9x/0f8Q6iS?=
 =?us-ascii?Q?O2Tbs2IiesaX0NjCE7yG+JCStrzWrK6IAWjt9aVKuN9xkXP3JoSRzlAPjNTS?=
 =?us-ascii?Q?GU7jL92p2oB/xiodKDmluLZGCdzVjk0=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 132fa3f7-db45-45df-61f4-08deb4df689d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 13:14:35.9885
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: l9LaQ+Lp6UYvnC26wCYopAKCf8fyT/fRHJpFpXD/cIUE/SLjYFK4cnq/+/X+dTnch0EO2vhbKw0IDI5zSG/CeVRGNioctBw0J567IkUyrY0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5111
X-purgate-ID: tlsNG-d62444/1779110079-ACA50FF4-FF3DD081/0/0
X-purgate-type: clean
X-purgate-size: 3664

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/hvm/emulate.c     |  5 +++++
 xen/arch/x86/hvm/svm/emulate.c |  2 +-
 xen/arch/x86/hvm/svm/svm.c     | 24 +++++++++++-------------
 xen/arch/x86/hvm/svm/svm.h     |  1 +
 4 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index c9553cd28238..471c032c1e9c 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2800,6 +2800,11 @@ static int _hvm_emulate_one(struct hvm_emulate_ctxt *hvmemul_ctxt,
 
         switch ( hvmemul_ctxt->insn )
         {
+        case INSTR_HLT:
+            hvmemul_ctxt->ctxt.retire.hlt = true;
+            rc = X86EMUL_OKAY;
+            break;
+
         default:
             ASSERT_UNREACHABLE();
             rc = X86EMUL_UNHANDLEABLE;
diff --git a/xen/arch/x86/hvm/svm/emulate.c b/xen/arch/x86/hvm/svm/emulate.c
index 1dd830a31bd7..31f3cd88a858 100644
--- a/xen/arch/x86/hvm/svm/emulate.c
+++ b/xen/arch/x86/hvm/svm/emulate.c
@@ -16,7 +16,7 @@
 #include "svm.h"
 #include "vmcb.h"
 
-static unsigned long svm_nextrip_insn_length(struct vcpu *v)
+unsigned long svm_nextrip_insn_length(struct vcpu *v)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index f49d2ebbfdd5..2d6022d6238c 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -2051,18 +2051,6 @@ static void svm_do_msr_access(struct cpu_user_regs *regs)
         hvm_inject_hw_exception(X86_EXC_GP, 0);
 }
 
-static void svm_vmexit_do_hlt(struct vmcb_struct *vmcb,
-                              struct cpu_user_regs *regs)
-{
-    unsigned int inst_len;
-
-    if ( (inst_len = svm_get_insn_len(current, INSTR_HLT)) == 0 )
-        return;
-    __update_guest_eip(regs, inst_len);
-
-    hvm_hlt(regs->eflags);
-}
-
 static void svm_vmexit_do_rdtsc(struct cpu_user_regs *regs, bool rdtscp)
 {
     struct vcpu *curr = current;
@@ -2363,6 +2351,13 @@ static void cf_check svm_set_reg(struct vcpu *v, unsigned int reg, uint64_t val)
     }
 }
 
+static void svm_emulate_one(struct hvm_emulate_ctxt *ctxt)
+{
+    ctxt->insn_len = svm_nextrip_insn_length(current);
+    if ( !hvm_emulate_one_ctxt(ctxt) )
+        hvm_inject_hw_exception(X86_EXC_GP, 0);
+}
+
 static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .name                 = "SVM",
     .cpu_up_prepare       = svm_cpu_up_prepare,
@@ -2496,6 +2491,7 @@ void asmlinkage svm_vmexit_handler(void)
     vintr_t intr;
     bool vcpu_guestmode = false;
     struct vlapic *vlapic = vcpu_vlapic(v);
+    struct hvm_emulate_ctxt ctxt;
 
     regs->rax = vmcb->rax;
     regs->rip = vmcb->rip;
@@ -2840,7 +2836,9 @@ void asmlinkage svm_vmexit_handler(void)
     }
 
     case VMEXIT_HLT:
-        svm_vmexit_do_hlt(vmcb, regs);
+        hvm_emulate_init_once(&ctxt, NULL, NULL, regs);
+        ctxt.insn = INSTR_HLT;
+        svm_emulate_one(&ctxt);
         break;
 
     case VMEXIT_IOIO:
diff --git a/xen/arch/x86/hvm/svm/svm.h b/xen/arch/x86/hvm/svm/svm.h
index f75bca7c5f66..9422dbd38a78 100644
--- a/xen/arch/x86/hvm/svm/svm.h
+++ b/xen/arch/x86/hvm/svm/svm.h
@@ -36,6 +36,7 @@ static inline void svm_invlpga(unsigned long linear, uint32_t asid)
     asm volatile ( "invlpga" :: "a" (linear), "c" (asid) );
 }
 
+unsigned long svm_nextrip_insn_length(struct vcpu *v);
 unsigned int svm_get_insn_len(struct vcpu *v, unsigned int instr_enc);
 unsigned int svm_get_task_switch_insn_len(void);
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon May 18 13:14:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 13:14:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311858.1582028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxny-0001tf-EA; Mon, 18 May 2026 13:14:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311858.1582028; Mon, 18 May 2026 13:14:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOxny-0001tP-AR; Mon, 18 May 2026 13:14:46 +0000
Received: by outflank-mailman (input) for mailman id 1311858;
 Mon, 18 May 2026 13:14:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wOxnx-0001nH-6n
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 13:14:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOxnw-000mZB-Ix
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:14:44 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10b5-bab6-0a2a0a5309dd-0a2a45028f1a-46
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:44 +0200
Received: from [40.107.208.42]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0b10c0-af86-0a2a45020019-286bd02a7639-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:14:42 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by BY5PR03MB5111.namprd03.prod.outlook.com (2603:10b6:a03:1e2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Mon, 18 May
 2026 13:14:39 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0025.022; Mon, 18 May 2026
 13:14:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nUCV8Dv9bhFFV1MyNsMYFaX0wcL/ybkVWtsPaKZNzle4kMKaXTQpOeNJxCWD7B7wSEXliMEuw7EZ+78/+KV9DTVw9twyxUetliyqAEe8L+CW5Q41CaOuOMYx3hzfq3DPHIO4qzf+rMG8j4ZE14oyYxgwVLp6hEizH8AFfDPKtpeRP0a4rWoHix1HL0Fg45bqTHDZJDbo+JarUxb6q8CkCz1BqWbvNpgXDaIkoQEzQVKQ1stpO+1i2Fe8rafDDkWPr4DLQZdKxo/WvjUxAmlCFvCBGbnrrjNwoE7M2vuvMBOhaN1HOkKUIPWDTVahbHkoAs3LO6dfLHNGlnpsPWOwxg==
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=jSz8C0IVcytuL/56tb/6U7V4vTK3UtX0AriIPF8ktGk=;
 b=kfFgBKM5E9JPBwfHVq8mJjt52jtJC8jfqOwqKWqwHRy54Wp8W3otK6y2u0O/1Y0ZI+EuH6TQZQA2ZKtg2tZLIDWBTbB7B9gz0TbOxw32eVXm2k3On4TgtAMXUM9yGWT4lzv6EtEezv26Daqnaydznt+ljbqoslrZimyE6h7jKibxmgWkPOGDCJwvGsdcZbSpI/T1INWdEJaNl0UhKkNiJ9mQYV4/wAf+XBiGCbc85nAJzQUEDM0ru2vdjog/NExdZeXoKElRKff9MUj1Zm/NNhvuzsQcdh7a1MR+cjbzHf3dMX6prw5+VxlWXT4Qa5b0EBqi5cUPGYJ5fww2tFPTig==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jSz8C0IVcytuL/56tb/6U7V4vTK3UtX0AriIPF8ktGk=;
 b=X13BSbgcVhVwZT4CqFily1CcqrLPtg4heqRRSnQl3QcXuvCZMJi5gEpUmgEg0+UmbRZsFPokBa/7J7CwIt2E06EUl2/0wRuQgqwiFtWDtlPdNVPWncDyQZlFvzXFTjTscWOLsGFv+HX5gUagPxYdXLNcGWm7pJo0hArXGyhWWPc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [RFC v1 7/7] x86/svm: Use the emulator path for VMEXIT_CR*
Date: Mon, 18 May 2026 14:14:04 +0100
Message-ID: <20260518131404.3716969-8-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0572.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:276::22) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|BY5PR03MB5111:EE_
X-MS-Office365-Filtering-Correlation-Id: c9d292ea-384c-4986-33ff-08deb4df6a9b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|56012099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	awEB4N86Z7GSbvrO1oyHCwt1rs0bAQB0gn69AORCGP9gWSzSfKjIV5PLsX6sdwU1SBlBELf00840pF4rzouwHeaqDP+3q9kiC08RYQ75ybaj3aGHn5bZFarZEZSav+my2PPjsxjoiabJxPtN5aODW/pv4m+QJhxZknLMpdpttaEuERipVXkaWkcLNAWvOhWsd0vTfJeakUkJPD5iqpWVSIsFQm8EnnEMWDUeHFVvfIcEBEWPC/ibs2KB54ncOe6q26c+N1Nr8PMd1Q8cUC1q68901DuX+vQQXtt/k/o8PYZTu68xPvApBb+yygEbWL3CVOXPEwNbqw2Sf6/+Ak8XQjN0csO0KuzS9mpqzjN5sjS50yMbNCnkeZGIe0H1HXqVl9UDDT7vZ825QXTyaaacU7mmxL4//yZbBj0miO9F7EGfeCzG1X28NjvFsNBDv4mYf+pPtGGAS+V6Ff1UmQtbt0mp1OGA6le80O/dgH62GPonATT3phHjI4xKIh4QXp65tHvr9qevlsOynkR+H7yU4F9Er9P9RLht+7LZQKVRATYtZjHlSWpozT1Vd/hJzPV+pcmvx++VQ6r67ta93D/SPj8HRW1MvyOGfopzZWiKkillfIgobX7YwB/VZoe08pt2PZ/qlK8RPCilptA+S2eq0EnCvu0urRSy5ZlraJAVLzSTq0MyHjIrQ16qCp4h1NDw
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(56012099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?maTtU7xVEhLCIjQn3HOqwAadUg48LJLeOsf/1a+LifRPUoYFoserKkqw6QF3?=
 =?us-ascii?Q?V4DoXJ9PWMZvYioz/dpNMGtFzR8w6sNuE36gi+UIi8vfWrMmCSXaqCoKG8KJ?=
 =?us-ascii?Q?YKGYpDhFqZZXKgfRqES6+TWKPCnoGNo2bZdeqGp4eDY1VvplBoHCB7L8Up65?=
 =?us-ascii?Q?nSQWQxK7dPXqS4iYUoGkFYqMFqN1Ec2ReO+MuwRfcEuV7xzzqXpvJBKDr/ce?=
 =?us-ascii?Q?vdC2WPtROdu8RQlQytx7nIt/9rI8e29Cwn7wcK58i+S6+tpORwAgdrvZHCl4?=
 =?us-ascii?Q?V53asSOEiFKv//LR685oW2KWmgfhiOWX8gq6q0dp/9Ckrp/3ekyiqS6+icC6?=
 =?us-ascii?Q?QpX05CryFk7zJA40khLPxlCFn+yt8EZmuq0WAH5koaEv5jp3Ra3P3oDARD5R?=
 =?us-ascii?Q?5BGTL/mhgHH0/Ik5UEssTNW9LFzTG/5y0QbSSeK25pW0ZqyNDRUSkYP+cnEy?=
 =?us-ascii?Q?7KkfDWX8YgJ6iqiLN2xqBiL+OT3WMtGl24P1eKy6dL5y71ZdF1eyhlEzi3LL?=
 =?us-ascii?Q?UULM9rbwKcSEHV+QRcsC28zNzOPYGcsA1zXrPrLydTuES+iJAYEWo6AnaCb/?=
 =?us-ascii?Q?DMCMSzjH8ewdPsLEF7EFom8YKxJsayA33PLT9slMmJsblu/xUdYh60d8ErMi?=
 =?us-ascii?Q?KRJiRNaYY83kMm7yTejqS24duFrnXWDry1BYR4PNIUbTHOWPA15IZA5L1wYm?=
 =?us-ascii?Q?rXUI/aCIoRF/sPxvjg6j62K2pA/TKpUtLTMwyveH/OOx5qYBVG39axpASMeP?=
 =?us-ascii?Q?gTi2PjJEQSRhhvTY89x7Ai/DNzhrrEnO1DeSRQZmbL0qindyjGhEUPPUgxzg?=
 =?us-ascii?Q?eitW4zCBFpPTlXbT8YWXZozp0GmuQL96SBQnY8r24GlvGsjAwmiWvF6LP0L+?=
 =?us-ascii?Q?cFbwr7J/9+WfqTVIeOxKL0SqqCXdLiGmPn9DZCn5oU5HIG+d8D9lib2WF221?=
 =?us-ascii?Q?zioI4ph0nzR8xlGeYkRVbZW4m8xiAWj6WS66EyXnL1nRZ6monSE96Sr8Zc06?=
 =?us-ascii?Q?Ezt142rzwB8lLHnXpOEXfhmFyMmeXfgGtSelndTwbrZYilv2+ucoKXkc1JxJ?=
 =?us-ascii?Q?vB1eGss4WvSEjKnRR2jnGTwWqnHx5FsM1Da5bCGi3k9AfEeOJRkY6k8LMqdo?=
 =?us-ascii?Q?5LYytdUUGrfGDvqMlW7z2PA62ok/1FCJP2XASq4x0iu+ei3/YotIVpg1qVnP?=
 =?us-ascii?Q?5bGsb0cN7XsxdIIe9N9SemLggoHX5CjXNANbstxNSUFAfGugmiSroYM8I0kd?=
 =?us-ascii?Q?c3cNZY9PA2CKXcKo9tZDmVvjxDNyulUb0WxRvNKhwkfLCq5vNw1uH6F90U0T?=
 =?us-ascii?Q?yMzFHI6wnTO9essGV+48hgjB3KEIfyPTFObbdKAznch2dPiRkMEJLt3XYPdg?=
 =?us-ascii?Q?fA7OEMUfujRvkTq1s3byjbUC9ikJzueeTUeyC/kUsSg5D9gPGpNamEATs//s?=
 =?us-ascii?Q?I8U4Q+RGoslDVRNFXuiwGQoG5fl5N6ywoAAjPB0c9k/I6alchhYhg3J4Iqq2?=
 =?us-ascii?Q?VbdAXtG75TBvqwF/pMDlnRqVo9TvYQrO6bNsxxf2wsU4DBt5Zg7t9Hb5BzM7?=
 =?us-ascii?Q?NYYmwpHdbqY8b14NjYK0NCRoDEAC35K1rNWkRpBOW9Yt9fsM/Mv4dqp1h9LR?=
 =?us-ascii?Q?zZRxAZG2ZSMcGrnsRICX6x378cAavb2Rm8/V+D+yAVra5kkUdRGbDXccxUrG?=
 =?us-ascii?Q?mEccvqLwh63QM7Arnr7d/5kQUwUkwsaCZhnbWIPj+9FwhxBXJE1Nd+d78BXZ?=
 =?us-ascii?Q?A/Bq+Ss+Efik98xsiOK7aTik9LnuiEk=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c9d292ea-384c-4986-33ff-08deb4df6a9b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 13:14:39.3120
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: lDMkA7rcZ+a+Jv/8DWmkxJFd5Ek8NCzaSsxwCb1fv3haWbdW8QKGl50JRFTQKjTPbGl2ThEQh6y041N816GxX1i5OEKs1fBdNdV1h3VNZ2c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5111
X-purgate-ID: tlsNG-720697/1779110083-83762161-3447B30A/0/0
X-purgate-type: clean
X-purgate-size: 4269

If the processor has provided extra information, use that to accelerate
the emulator path.

The hvmemul_{read,write}_cr callbacks are used for consistent behaviour
between emulated and fast paths.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/hvm/emulate.c             | 11 ++++++++++
 xen/arch/x86/hvm/svm/svm.c             | 28 +++++++++-----------------
 xen/arch/x86/include/asm/hvm/emulate.h |  7 +++++++
 xen/arch/x86/include/asm/hvm/hvm.h     |  2 ++
 4 files changed, 29 insertions(+), 19 deletions(-)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 471c032c1e9c..0f7507575884 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2804,6 +2804,17 @@ static int _hvm_emulate_one(struct hvm_emulate_ctxt *hvmemul_ctxt,
             hvmemul_ctxt->ctxt.retire.hlt = true;
             rc = X86EMUL_OKAY;
             break;
+        case INSTR_MOV_FROM_CR:
+        case INSTR_MOV_TO_CR:
+        {
+            unsigned long *val = decode_gpr(regs, hvmemul_ctxt->u.cr.gp);
+
+            if ( hvmemul_ctxt->insn == INSTR_MOV_TO_CR )
+                rc = hvmemul_write_cr(hvmemul_ctxt->u.cr.cr, *val, &hvmemul_ctxt->ctxt);
+            else
+                rc = hvmemul_read_cr(hvmemul_ctxt->u.cr.cr, val, &hvmemul_ctxt->ctxt);
+            break;
+        }
 
         default:
             ASSERT_UNREACHABLE();
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 2d6022d6238c..3ba852f52666 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -1625,22 +1625,6 @@ static void svm_do_nested_pgfault(struct vcpu *v,
     domain_crash(v->domain);
 }
 
-static void svm_vmexit_do_cr_access(
-    struct vmcb_struct *vmcb, struct cpu_user_regs *regs)
-{
-    int gp, cr, dir, rc;
-
-    cr = vmcb->exitcode - VMEXIT_CR0_READ;
-    dir = (cr > 15);
-    cr &= 0xf;
-    gp = vmcb->ei.mov_cr.gpr;
-
-    rc = dir ? hvm_mov_to_cr(cr, gp) : hvm_mov_from_cr(cr, gp);
-
-    if ( rc == X86EMUL_OKAY )
-        __update_guest_eip(regs, vmcb->nextrip - vmcb->rip);
-}
-
 static void svm_dr_access(struct vcpu *v, struct cpu_user_regs *regs)
 {
     struct vmcb_struct *vmcb = vcpu_nestedhvm(v).nv_n1vmcx;
@@ -2869,10 +2853,16 @@ void asmlinkage svm_vmexit_handler(void)
 
     case VMEXIT_CR0_READ ... VMEXIT_CR15_READ:
     case VMEXIT_CR0_WRITE ... VMEXIT_CR15_WRITE:
+        hvm_emulate_init_once(&ctxt, x86_insn_is_cr_access, "CR access", regs);
+
         if ( cpu_has_svm_decode && vmcb->ei.mov_cr.mov_insn )
-            svm_vmexit_do_cr_access(vmcb, regs);
-        else if ( !hvm_emulate_one_insn(x86_insn_is_cr_access, "CR access") )
-            hvm_inject_hw_exception(X86_EXC_GP, 0);
+        {
+            ctxt.u.cr.cr = vmcb->exitcode - VMEXIT_CR0_READ;
+            ctxt.insn = (ctxt.u.cr.cr > 15) ? INSTR_MOV_TO_CR : INSTR_MOV_FROM_CR;
+            ctxt.u.cr.cr = ctxt.u.cr.cr & 0xf;
+            ctxt.u.cr.gp = vmcb->ei.mov_cr.gpr;
+        }
+        svm_emulate_one(&ctxt);
         break;
 
     case VMEXIT_INVLPG:
diff --git a/xen/arch/x86/include/asm/hvm/emulate.h b/xen/arch/x86/include/asm/hvm/emulate.h
index 1e626f8af8f2..3661ca28d6f4 100644
--- a/xen/arch/x86/include/asm/hvm/emulate.h
+++ b/xen/arch/x86/include/asm/hvm/emulate.h
@@ -56,6 +56,13 @@ struct hvm_emulate_ctxt {
 
     unsigned int insn;
     unsigned int insn_len;
+
+    union {
+        struct {
+            int cr;
+            int gp;
+        } cr;
+    } u;
 };
 
 enum emul_kind {
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index a9b64814ca71..7732217e279a 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -879,6 +879,8 @@ static inline void hvm_sync_pir_to_irr(struct vcpu *v)
 #define INSTR_RDTSC      INSTR_ENC(X86EMUL_OPC(0x0f, 0x31), 0)
 #define INSTR_RDMSR      INSTR_ENC(X86EMUL_OPC(0x0f, 0x32), 0)
 #define INSTR_CPUID      INSTR_ENC(X86EMUL_OPC(0x0f, 0xa2), 0)
+#define INSTR_MOV_FROM_CR INSTR_ENC(X86EMUL_OPC(0x0f, 0x20), 0)
+#define INSTR_MOV_TO_CR  INSTR_ENC(X86EMUL_OPC(0x0f, 0x22), 0)
 
 #else  /* CONFIG_HVM */
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon May 18 14:06:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 14:06:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311915.1582037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOybP-0002OA-4i; Mon, 18 May 2026 14:05:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311915.1582037; Mon, 18 May 2026 14:05:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOybP-0002O3-1K; Mon, 18 May 2026 14:05:51 +0000
Received: by outflank-mailman (input) for mailman id 1311915;
 Mon, 18 May 2026 14:05:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOybN-0002Nv-H3
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 14:05:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOybM-00GONU-TU
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 16:05:48 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0b1cb8-5cb7-0a2a0a5109dd-0a2a4501a83a-16
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:05:48 +0200
Received: from [209.85.208.177] (helo=mail-lj1-f177.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0b1cbc-c1f2-0a2a45010019-d155d0b1b01a-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:05:48 +0200
Received: by mail-lj1-f177.google.com with SMTP id
 38308e7fff4ca-39397d63804so30560561fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 07:05:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779113148; cv=none;
        d=google.com; s=arc-20240605;
        b=I/pbgb4Y43mOA2xBIz6ycoH0M+ReD7SpNNWjciBdUWnjIgZt62/5NUyrE38DFYcvPp
         lmCdv2CFcbAcwAfq0gj6AUCIsDpGmBnoO5PEGWe+Rz5J25RgbWlIITmFMygnzjbWa8mQ
         A0nnvvxG9P8VXFr0RHiFG1BmCsuEO3FzjQEQpqc2xXsFWODpEIsulXq2P23Ig2p5JIdS
         KtRgIkg0g4w/YH9+wfGfMmO0L6YoVuQ+Wsnrd5cWMiYOY5rvnyePxXn1p9814hRIogpc
         e8IadKqr3jiYOOAkadaS4HjUmMR7hwyO/uXuh64FwB6C/qwHMXv+4IBDISV2RTtYa7wN
         MBww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=BpgLHi9Qz5Is4RecBAOuzC6FxHCCy6X6Nea8EIJTNUo=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=WVCqiltkz4VYq6t/IeiA6OiLmKvB9iJQQk/NFAWM1Gm/UA55V2h5aKQJ3JKBBaeQz3
         1jbGyS4sbKVcI6jxrgmqLq2jGeDx4LlbruKxOU76/xLveaxW0mxYVwfCJrKLsF60FAWs
         eDtLDQd+QMG7TQiuabC8r74mK2SmZUyGr4OElbA2y+NVXlsKyaH2DFrxYEFKK2QDnP48
         qxzcHT5KCxKVzgy1Hb1j3dAVFhQAedyqM3G3JXdPGU51Bdi1SZGbUbgaq544XV5j1Ucg
         fuPoPpir8YbbjbhG5dRZMvkNaBEpgiCrdzkY1/y+wCRN07Y2xWseeLIjx4TSn3Ghgp/B
         5BeA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779113148; x=1779717948; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BpgLHi9Qz5Is4RecBAOuzC6FxHCCy6X6Nea8EIJTNUo=;
        b=QoYBHpcssV1LPIRpW2+4xHZMe+hbs/t6Wtene44e8/ULwaVrevdoGA62u997ZW2bJq
         22CiGAmKswVN1uUBHekkk03VviJ/dZ/VzJfeaXQ4Juy/EWRjKQJMrMom/E41dSnuO8qK
         fETPduzBKh7TVfNAX9SpR63sp1jad9lHcemVs3QWntEwehYlnPvleuDwnIxXINs+GRmR
         IMisqHUZ6i8JKAIF5Obbf0HweQdjfheDneGJIipnvZnAGMZ1mLXNDajgWp4t7IBHapUv
         XgYRjwWh96bUUhydDVochdm0dStRhaqwVaiWVGQnYwkAAlZWkwKZja8jvek72xvmKww7
         QrkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779113148; x=1779717948;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=BpgLHi9Qz5Is4RecBAOuzC6FxHCCy6X6Nea8EIJTNUo=;
        b=Ty/FIQKG9/HXq04hRi+12Z+1x2bqm2gnUubKGWt9twZOxmPulLyBEB3UHkNKkG3cHN
         dFzUoIFzCNQ0Q8t+/xAzPAnj/zFQQgXpS9vGOBh43jnKazUQnH7wM0NgckKBRpJD4R1R
         6XWkyIoNWvERG1NwJgVunqWE1zkOsLpdDE3u2g4cCD/WkH7BjP7Fp76z4JSq7vp7GZWN
         YjxngFfJldMYbNdLZ1VGI2gBZz7uosLKIA53CQKvF7yDF2o1rwPz4jI02H2hgsz6xihN
         EIy+ASyb991JYLgHt7EVY3YhbzbBF/rtwyplUcTC3DnJvXPSZVNhidJTW1oA56Re5Y2g
         bFcQ==
X-Gm-Message-State: AOJu0YzpXgBHBjxNGhf5QNzO8v5HSI9A6JXLRTACfWAzTdAsRecH1oC5
	4Trdf/OpRshVpM2NyX/geyMry9Y1FWmiUgFG4SAymx6l0hZkw5ltNo6ualupE6fBrHMvflHo2VF
	PNbfSYXx9427e2rGHP5Ivehpc35gPzjbwn8yprR8=
X-Gm-Gg: Acq92OF6ApvCy9yW/OUiNIM/76TT5vM/tegLPTN4UgQ5t8NFVyc9IjBlUcEDHHgpMgV
	lUjWqDjU1zUg2M+UnGRyOFqHP0ZyaLWLq/ael2JFKgzRWO/gxnzQDGf70dN/N1wLPh/WO0cwq67
	qmfwTaZacpWUAiHaAvE0qGkxPxRi0tA6Ud6przBJ04FEkkP3du9mLtwhuhWQCNn49tpB/ggQ/oG
	AFifMYEVMY98pllk7csWNP+k+LCObl5iewE3zzRY//RViqaCgoIx2atIo4K6QT3W9rThJgEgLEF
	C0zBcBlwwST4ou8=
X-Received: by 2002:a2e:a803:0:b0:38e:9667:f21a with SMTP id
 38308e7fff4ca-39561fec65amr47789621fa.20.1779113147780; Mon, 18 May 2026
 07:05:47 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778605274.git.mykola_kvach@epam.com> <46bbc9e008a65dd86fb2b368e4751eb7d2014afa.1778605274.git.mykola_kvach@epam.com>
 <7254EEC1-315F-41EB-B623-5CACAD7255E9@arm.com>
In-Reply-To: <7254EEC1-315F-41EB-B623-5CACAD7255E9@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 May 2026 17:05:36 +0300
X-Gm-Features: AVHnY4KUKNsRyhScqxIEaQvzHCFhvZMM_7XpNiooU8kyV5_ae1spewjS8cYIQUs
Message-ID: <CAGeoDV-A6xpjioUGrV_fQLYEFhzOwz=fLGZ-eHxidKzuFk8poA@mail.gmail.com>
Subject: Re: [PATCH v9 10/13] xen/arm64: Save/restore CPU context across SYSTEM_SUSPEND
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d62444/1779113148-B4D49FF4-68DF4E1F/0/0
X-purgate-type: clean
X-purgate-size: 2603

Hi Luca,

Thank you for the detailed review.

On Thu, May 14, 2026 at 8:22=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +/*
> > + * int prepare_resume_ctx(void)
> > + *
> > + * CPU context saved here will be restored on resume in hyp_resume fun=
ction.
> > + * prepare_resume_ctx shall return a non-zero value. Upon restoring co=
ntext
> > + * hyp_resume shall return value zero instead. From C code that invoke=
s
> > + * prepare_resume_ctx, the return value is interpreted to determine wh=
ether
> > + * the context is saved (prepare_resume_ctx) or restored (hyp_resume).
> > + */
> > +FUNC(prepare_resume_ctx)
> > +        ldr   x0, =3Dresume_cpu_context
> > +
> > +        /* Store callee-saved registers */
> > +        stp   x19, x20, [x0, #RESUME_CTX_X19]
> > +        stp   x21, x22, [x0, #RESUME_CTX_X21]
> > +        stp   x23, x24, [x0, #RESUME_CTX_X23]
> > +        stp   x25, x26, [x0, #RESUME_CTX_X25]
> > +        stp   x27, x28, [x0, #RESUME_CTX_X27]
> > +        stp   x29, lr, [x0, #RESUME_CTX_X29]
> > +
> > +        /* Store stack-pointer */
> > +        mov   x2, sp
> > +        str   x2, [x0, #RESUME_CTX_SP]
> > +
> > +        /* Store system control registers */
> > +        mrs   x2, VBAR_EL2
> > +        str   x2, [x0, #RESUME_CTX_VBAR_EL2]
> > +        mrs   x2, VTCR_EL2
> > +        str   x2, [x0, #RESUME_CTX_VTCR_EL2]
> > +        mrs   x2, VTTBR_EL2
> > +        str   x2, [x0, #RESUME_CTX_VTTBR_EL2]
> > +        mrs   x2, TPIDR_EL2
> > +        str   x2, [x0, #RESUME_CTX_TPIDR_EL2]
> > +        mrs   x2, MDCR_EL2
> > +        str   x2, [x0, #RESUME_CTX_MDCR_EL2]
> > +        mrs   x2, HSTR_EL2
> > +        str   x2, [x0, #RESUME_CTX_HSTR_EL2]
> > +        mrs   x2, CPTR_EL2
> > +        str   x2, [x0, #RESUME_CTX_CPTR_EL2]
> > +        mrs   x2, HCR_EL2
> > +        str   x2, [x0, #RESUME_CTX_HCR_EL2]
>
> Do you think we should save also CNTHCTL_EL2? Apologies it escaped my fir=
st review,
> but I see we program it in the boot cpu path + secondary cpu path: init_t=
imer_interrupt().
>
> The rest looks ok.

Ack. Good catch, thanks.

CNTHCTL_EL2 is programmed from init_timer_interrupt() for both the boot
CPU and secondary CPUs, so it should be part of the EL2 context saved and
restored across SYSTEM_SUSPEND. I will add save/restore for it.

I will also re-audit the context save/restore list against the current
boot path to check whether any other EL2 system registers are missing.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 18 14:16:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 14:16:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311925.1582046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOylg-0004Am-1Y; Mon, 18 May 2026 14:16:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311925.1582046; Mon, 18 May 2026 14:16:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOylf-0004Af-Uf; Mon, 18 May 2026 14:16:27 +0000
Received: by outflank-mailman (input) for mailman id 1311925;
 Mon, 18 May 2026 14:16:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOyle-0004AZ-Fk
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 14:16:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOyld-00EkGj-Rv
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 16:16:25 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0b1f35-2eae-0a2a0a5409dd-0a2a450197ba-16
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:16:25 +0200
Received: from [209.85.208.176] (helo=mail-lj1-f176.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0b1f39-c1f2-0a2a45010019-d155d0b0b96b-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:16:25 +0200
Received: by mail-lj1-f176.google.com with SMTP id
 38308e7fff4ca-39378db197aso26733781fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 07:16:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779113785; cv=none;
        d=google.com; s=arc-20240605;
        b=OYl2LXrRvPw7AOGZuHsz2ITjCFjMguDA16aA7aIDhrsP6JATBG15fXMs71d1VWzfP2
         lLfoTfjEni3nU7TdvlH73+Fnl2cofY0y92XJTR6uaDgEpX5af2DTwTKy/KU7+9jIEnr7
         KlJHh26OSgn7OLpUunP+PV1C7WE7pLFz1gKeVsVe29xLs3njt7p7MOgeCFpMsnrxFn1N
         ctbqzTjX5DeSTfQ+onij3T+DThfSJnYKxyaTuoHELASXhpm0J2po+DcHNDS6fAQrmbZL
         tG034BxinCWlGZzq7KhGs//RdGg/ia3s7dZLHhyuy0SYdJ+v9iMSUymuUlXkqJkL0hGv
         Co0w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=s0yCPUXIuHTODuAprKwHErEP5y4282fQnqGh7U63b4Q=;
        fh=mPTADBdpL2mlVELGLTcBdYf/jtmQhhkSKKIES9IQyb8=;
        b=jR8jjfabaDYVQShsAdtSQ1+hyLbRYT4+YP/LHX5NYwYVY5VkftiyPhs2+wappDSXQG
         vw9BGbRCjyQgUbO95WL+tH20XR66TwkqSKMsdX74+0y4KzIggPapJfEPvZc7JqxFaUmm
         GsKENL0vL2G7KCEvQBsPVNRY8IgXqKD3FUvvjfK8fl0dMpTYTRHP1LiJ2F8DbAHa7aAz
         FYfLZb4hQ19a9X8YZFvxdmpl/JFJwkNfGPpILrmP+c3O+OHc4wu5DHyXHlYJtkuoEQGs
         tZrBTMe3SshKmbUxQOGY3BtW3nP4tSxtoTiCrw+YnT38KMv7ZqS4usJDlZoobb3S/8eW
         04DQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779113785; x=1779718585; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=s0yCPUXIuHTODuAprKwHErEP5y4282fQnqGh7U63b4Q=;
        b=qddjtAmupfTw14dlvMgFTvBlCc9la3uZKZzF7c+nVzZKNFI0In67L4me1Aubk0U4ch
         rPvilOhwztWVgdd49UZcu6Pe1i0ZXqdNaNfn5tr8HJvOiAq1Qyga87DsPPkCQFelgmOp
         8pIyXEsMnbZ9kWXTVsxKxYSDAYxyfjOLFZ1Kj5Qo6j+3YFsCtI1Tv5Plk0ITJ3vrLo1x
         qxo+yPL8FYU1PG1EbCKaJ/hJa12dzsjCyAoGDNrz/jx4U12ewrZAbWT8CsXa73sRyMM5
         erdjMeirhHhb7BrX1QK4P9z9D0zSfMuBxNXkccp/QmF/FYz7flmGORHVkv8lxaXDPGdk
         aeQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779113785; x=1779718585;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=s0yCPUXIuHTODuAprKwHErEP5y4282fQnqGh7U63b4Q=;
        b=AW2m6H53glvrWj45s6pugzt/MUbUEb11sdsd0LS/ug7XPDqZStlFFsxtaYQ5zMMaGT
         1wyQNXtZNADHfwrVcK0VKpVOfbvuxYwwBNqL6MGAAtbOgZV1a0RBsP3bqzm4WNQc+asv
         QayVFmndPyGdFRqj7Uif6ebPY5l1Rxyc8NNF5UiktkHC0zPYUR0ySlz5gtaICNVy3fXN
         X6gETLWEuPLxgbda2l7U0PE5kC8CuHSgSHgJTmwd/3+vGS43s46FdM8oSEvrklVLiu7f
         29Bj7xNeZaN4seYWCG+KOSK+3vjYWiWB4dvNkx/j1/MGGW3pL66VdKZqSWzVuB7tyOGy
         VMfw==
X-Gm-Message-State: AOJu0Yzkf/dr0cnA1N1I8msAcbcnESMWP2SSisbRH57F3jEX5RuzVuzo
	2Lfe8F82zmitowCWRQBmbV5v1DYxhx9ar8z0Hg0PTgYH/ajY9fqVJsGLnTY2PJevPSKr5hpJ+n+
	75xaJnaCx0IoRmdU2zNH7bWg2H9wVhzY=
X-Gm-Gg: Acq92OHlopzSvUgGwuM/Esf/ERGbd7+VUX5I0lMOG0rSsvTu8pmpo4f+NzCxTqiw4b7
	q7Z5HYiTBimxfwvgrLX+T9W8Fmf7VRkknoYpbqXMkvfKvQoBOs3MxBJlzyxeNtJfC680V4ctMir
	NweLvCNtQhzVK9Nyaj6Nctyn/WWapsMDK90eOu0hyXWYgyp+wX2hqPcOtrIASYTC2eKbGedPAkv
	z+qVA9JKDWnOWZne+zZ4Lb/++CF7yoMEkl9wBw4HOTlml/uL3NrMYZeucUdBBVBhL2IKaJs9VzY
	w7E1
X-Received: by 2002:a05:651c:1449:b0:393:d6dd:e8a1 with SMTP id
 38308e7fff4ca-39561c07c23mr46088241fa.2.1779113784503; Mon, 18 May 2026
 07:16:24 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778605274.git.mykola_kvach@epam.com> <06448a30ef6694a55ac85d4c8c78ca2d71342430.1778605274.git.mykola_kvach@epam.com>
 <c8d0e466-d5e3-4791-9dfe-6221ba219abb@gmail.com>
In-Reply-To: <c8d0e466-d5e3-4791-9dfe-6221ba219abb@gmail.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 May 2026 17:16:13 +0300
X-Gm-Features: AVHnY4JaraBJcBj3bPe4VM9QdrQguSh8l0rXdLUhU9mPY2RnZ62qAwrt5-duwdo
Message-ID: <CAGeoDV9BjVRQFOnujOLS+trQfnC7kH8K+HLvp3=61hoV2+jE-w@mail.gmail.com>
Subject: Re: [PATCH v9 12/13] xen/arm: Add vPSCI SYSTEM_SUSPEND policy
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Rahul Singh <rahul.singh@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d62444/1779113785-B4B4EFF4-2FB592D6/0/0
X-purgate-type: clean
X-purgate-size: 19916

Hi Oleksandr,

Thank you for the review.

On Sun, May 17, 2026 at 5:37=E2=80=AFPM Oleksandr Tyshchenko
<olekstysh@gmail.com> wrote:
>
>
>
> On 5/12/26 20:07, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
>
>
> Hello Mykola
>
> >
> > Introduce CONFIG_HAS_HWDOM_SYSTEM_SUSPEND as an architecture-selected
> > capability for platforms where the hardware domain can be parked with
> > SHUTDOWN_suspend without calling hwdom_shutdown().
> >
> > Expose PSCI SYSTEM_SUSPEND as a vPSCI operation for all domains. For
> > non-control domains, including the hardware domain when it is not actin=
g as a
> > control domain, the call is handled as a guest/domain suspend request a=
nd
> > parks the domain in SHUTDOWN_suspend.
> >
> > Control domains need additional sequencing because their SYSTEM_SUSPEND
> > request is used to coordinate host-wide suspend. A non-last awake contr=
ol
> > domain may be parked in SHUTDOWN_suspend without requiring the host sus=
pend
> > path to be available. The last awake control domain is treated as the p=
oint
> > where the request becomes a host-suspend request, and it may only proce=
ed
> > when all non-control domains are already in SHUTDOWN_suspend and the ho=
st
> > suspend path is available.
> >
> > Keep the control-domain sequencing and domain-readiness checks out of
> > PSCI_FEATURES. They are per-attempt runtime conditions rather than stab=
le PSCI
> > function availability. Advertise SYSTEM_SUSPEND as implemented by vPSCI=
 and
> > enforce the sequencing policy in the call handler.
> >
> > Select HAS_HWDOM_SYSTEM_SUSPEND independently from CONFIG_SYSTEM_SUSPEN=
D so
> > that SHUTDOWN_suspend from the hardware domain can be treated as a doma=
in
> > suspend state rather than as a hardware-domain initiated host shutdown.=
 This
> > does not by itself imply that host-wide suspend is available.
> >
> > Add host_system_suspend_allowed() to combine the host PSCI SYSTEM_SUSPE=
ND
> > capability with runtime blockers reported by Xen-owned subsystems. Add
> > runtime blockers for registered serial, IOMMU, GIC and SMMUv3 MSI IRQ p=
aths
> > lacking suspend/resume support. These blockers are runtime based, so th=
ey
> > only apply to drivers or paths that Xen actually uses on the platform. =
For
> > SMMUv3, the blocker applies only when Xen actually uses the MSI IRQ pat=
h,
> > since resume does not restore the SMMU *_IRQ_CFGn MSI registers yet.
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>
> Apart from Jan's and Luca's findings, patch looks good to me. Just a few
> questions to clarify, apologies if these have already been discussed
> elsewhere.
>
> > ---
> >   xen/arch/arm/Kconfig                  |   1 +
> >   xen/arch/arm/gic.c                    |   6 ++
> >   xen/arch/arm/include/asm/psci.h       |   3 +
> >   xen/arch/arm/include/asm/suspend.h    |  10 ++-
> >   xen/arch/arm/psci.c                   |   7 ++
> >   xen/arch/arm/suspend.c                |  40 +++++++++
> >   xen/arch/arm/vpsci.c                  | 114 +++++++++++++++++++++++--=
-
> >   xen/common/Kconfig                    |   3 +
> >   xen/common/domain.c                   |   7 +-
> >   xen/drivers/char/serial.c             |  12 +++
> >   xen/drivers/passthrough/arm/iommu.c   |   4 +
> >   xen/drivers/passthrough/arm/smmu-v3.c |   4 +
> >   xen/include/xen/serial.h              |   1 +
> >   xen/include/xen/suspend.h             |   2 +
> >   14 files changed, 201 insertions(+), 13 deletions(-)
> >
> > diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> > index 79622b46a1..54a5bfb9ae 100644
> > --- a/xen/arch/arm/Kconfig
> > +++ b/xen/arch/arm/Kconfig
> > @@ -19,6 +19,7 @@ config ARM
> >       select HAS_ALTERNATIVE if HAS_VMAP
> >       select HAS_DEVICE_TREE_DISCOVERY
> >       select HAS_DOM0LESS
> > +     select HAS_HWDOM_SYSTEM_SUSPEND if !MPU
> >       select HAS_GRANT_CACHE_FLUSH if GRANT_TABLE
> >       select HAS_STACK_PROTECTOR
> >       select HAS_UBSAN
> > diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> > index 7727ffed5a..a5efcaeb4c 100644
> > --- a/xen/arch/arm/gic.c
> > +++ b/xen/arch/arm/gic.c
> > @@ -26,6 +26,7 @@
> >   #include <asm/device.h>
> >   #include <asm/io.h>
> >   #include <asm/gic.h>
> > +#include <asm/suspend.h>
> >   #include <asm/vgic.h>
> >   #include <asm/acpi.h>
> >
> > @@ -44,6 +45,11 @@ static void __init __maybe_unused build_assertions(v=
oid)
> >   void register_gic_ops(const struct gic_hw_operations *ops)
> >   {
> >       gic_hw_ops =3D ops;
> > +
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +    if ( !ops->suspend || !ops->resume )
> > +        host_system_suspend_disable("GIC driver lacks suspend/resume s=
upport");
> > +#endif
> >   }
> >
> >   static void clear_cpu_lr_mask(void)
> > diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm=
/psci.h
> > index bb3c73496e..142fa1bfe5 100644
> > --- a/xen/arch/arm/include/asm/psci.h
> > +++ b/xen/arch/arm/include/asm/psci.h
> > @@ -24,6 +24,9 @@ void call_psci_cpu_off(void);
> >   void call_psci_system_off(void);
> >   void call_psci_system_reset(void);
> >   int call_psci_system_suspend(void);
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +bool psci_system_suspend_allowed(void);
> > +#endif
> >
> >   /* Range of allocated PSCI function numbers */
> >   #define     PSCI_FNUM_MIN_VALUE                 _AC(0,U)
> > diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/=
asm/suspend.h
> > index 2d9fc331fc..87db12eac3 100644
> > --- a/xen/arch/arm/include/asm/suspend.h
> > +++ b/xen/arch/arm/include/asm/suspend.h
> > @@ -38,7 +38,15 @@ extern struct resume_cpu_context resume_cpu_context;
> >
> >   int prepare_resume_ctx(void);
> >   void hyp_resume(void);
> > -#endif /* CONFIG_SYSTEM_SUSPEND */
> > +bool host_system_suspend_allowed(void);
> > +void host_system_suspend_disable(const char *reason);
> > +
> > +#else /* !CONFIG_SYSTEM_SUSPEND */
> > +
> > +static inline bool host_system_suspend_allowed(void) { return false; }
> > +static inline void host_system_suspend_disable(const char *reason) {}
> > +
> > +#endif
> >
> >   #endif /* ARM_SUSPEND_H */
> >
> > diff --git a/xen/arch/arm/psci.c b/xen/arch/arm/psci.c
> > index e05dae1133..e9d78668fd 100644
> > --- a/xen/arch/arm/psci.c
> > +++ b/xen/arch/arm/psci.c
> > @@ -41,6 +41,13 @@ static bool __ro_after_init has_psci_system_suspend;
> >
> >   #define PSCI_RET(res)   ((int32_t)(res).a0)
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +bool psci_system_suspend_allowed(void)
> > +{
> > +    return has_psci_system_suspend;
> > +}
> > +#endif
> > +
> >   int call_psci_cpu_on(int cpu)
> >   {
> >       struct arm_smccc_res res;
> > diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
> > index 6ea4a0f9cc..a571035d2c 100644
> > --- a/xen/arch/arm/suspend.c
> > +++ b/xen/arch/arm/suspend.c
> > @@ -1,9 +1,49 @@
> >   /* SPDX-License-Identifier: GPL-2.0-only */
> >
> > +#include <asm/psci.h>
> >   #include <asm/suspend.h>
> >
> > +#include <xen/lib.h>
> > +#include <xen/serial.h>
> > +
> >   struct resume_cpu_context resume_cpu_context;
> >
> > +/*
> > + * Non-PSCI infrastructure can make host suspend impossible even when =
the PSCI
> > + * SYSTEM_SUSPEND conduit is present, e.g. when a Xen-owned driver has=
 no valid
> > + * suspend/resume path.
> > + *
> > + * This gate is checked only when the last awake control domain attemp=
ts to
> > + * turn a guest SYSTEM_SUSPEND request into a host-suspend request.
> > + */
> > +static bool host_system_suspend_runtime_allowed =3D true;
> > +
> > +static bool host_serial_suspend_allowed(void)
> > +{
> > +    if ( serial_suspend_supported() )
> > +        return true;
> > +
> > +    printk_once(XENLOG_INFO
> > +                "Host SYSTEM_SUSPEND blocked: serial driver lacks susp=
end/resume support\n");
> > +
> > +    return false;
> > +}
> > +
> > +bool host_system_suspend_allowed(void)
> > +{
> > +    return psci_system_suspend_allowed() &&
> > +           host_serial_suspend_allowed() &&
> > +           host_system_suspend_runtime_allowed;
> > +}
> > +
> > +void host_system_suspend_disable(const char *reason)
> > +{
> > +    host_system_suspend_runtime_allowed =3D false;
> > +
> > +    printk(XENLOG_INFO "Host SYSTEM_SUSPEND blocked: %s\n",
> > +           reason ? reason : "unsupported suspend/resume path");
> > +}
> > +
> >   /*
> >    * Local variables:
> >    * mode: C
> > diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> > index ac6af6118f..48a963ae3e 100644
> > --- a/xen/arch/arm/vpsci.c
> > +++ b/xen/arch/arm/vpsci.c
> > @@ -5,6 +5,7 @@
> >
> >   #include <asm/current.h>
> >   #include <asm/domain.h>
> > +#include <asm/suspend.h>
> >   #include <asm/vgic.h>
> >   #include <asm/vpsci.h>
> >   #include <asm/event.h>
> > @@ -219,6 +220,89 @@ static void do_psci_0_2_system_reset(void)
> >       domain_shutdown(d,SHUTDOWN_reboot);
> >   }
> >
> > +/*
> > + * Serialise SYSTEM_SUSPEND policy decisions with the domain suspend t=
ransition,
> > + * so multiple control domains cannot all observe each other as still =
awake.
> > + */
> > +static DEFINE_SPINLOCK(vpsci_system_suspend_lock);
> > +
> > +static bool domain_in_suspend_state(struct domain *d)
> > +{
> > +    bool suspended;
> > +
> > +    spin_lock(&d->shutdown_lock);
> > +    suspended =3D d->is_shut_down && d->shutdown_code =3D=3D SHUTDOWN_=
suspend;
> > +    spin_unlock(&d->shutdown_lock);
> > +
> > +    return suspended;
> > +}
> > +
> > +static int32_t domain_psci_system_suspend_policy(struct domain *d)
> > +{
> > +    struct domain *other;
> > +    bool last_awake_control_domain =3D true;
> > +    bool awake_non_control_domain =3D false;
> > +
> > +    /* Only control domains participate in sequencing policy. */
> > +    if ( !is_control_domain(d) )
> > +        return 0;
> > +
> > +    rcu_read_lock(&domlist_read_lock);
> > +
> > +    for_each_domain ( other )
> > +    {
> > +        bool suspended;
> > +
> > +        if ( other =3D=3D d )
> > +            continue;
> > +
> > +        suspended =3D domain_in_suspend_state(other);
> > +        if ( suspended )
> > +            continue;
> > +
> > +        if ( is_control_domain(other) )
> > +        {
> > +            last_awake_control_domain =3D false;
> > +            break;
> > +        }
> > +
> > +        awake_non_control_domain =3D true;
> > +    }
> > +
> > +    rcu_read_unlock(&domlist_read_lock);
> > +
> > +    /*
> > +     * Another control domain is still awake. This request is only the=
 first
> > +     * phase of the sequencing: park this control domain and leave the=
 host
> > +     * running. Host-wide suspend gates must not block this intermedia=
te state.
> > +     */
> > +    if ( !last_awake_control_domain )
> > +        return 0;
> > +
> > +    /*
> > +     * This is the last awake control domain. It must not be parked un=
less the
> > +     * request can proceed as a host-suspend request; otherwise Xen wo=
uld lose
> > +     * the last domain that can coordinate the system suspend.
> > +     */
> > +    if ( awake_non_control_domain )
> > +    {
> > +        printk(XENLOG_DEBUG
> > +               "SYSTEM_SUSPEND denied: last awake control domain dom%u=
 requested host suspend while non-control domains are still awake\n",
> > +               d->domain_id);
> > +        return PSCI_DENIED;
> > +    }
> > +
> > +    /*
> > +     * Host-wide gates are relevant only for the last-control-domain c=
ase. They
> > +     * must not block parking of a non-last control domain, but they m=
ust reject
> > +     * the last control domain when host suspend is not available.
> > +     */
> > +    if ( !host_system_suspend_allowed() )
> > +        return PSCI_NOT_SUPPORTED;
>
> In do_psci_1_0_features(), the guest is told that SYSTEM_SUSPEND is
> implemented:
>
> case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>      return 0;  /* "This function IS implemented" */
>
> However, when the guest actually calls SYSTEM_SUSPEND, the policy check
> above can reject it by return PSCI_NOT_SUPPORTED; /* "This function is
> NOT implemented" */
>
> These two responses are contradictory. The guest probes via
> PSCI_FEATURES, is told suspend is available, and then gets
> PSCI_NOT_SUPPORTED when it attempts to use it (if let's say the SMMUv3
> driver has blocked suspend).
>
>  From Arm Power State Coordination Interface (DEN0022F.b):
>
> 5.3.2 Implementation responsibilities
> ... Any function that is not implemented must return NOT_SUPPORTED in
> accordance with the SMC Calling Conventions [4]. In addition,
> PSCI_FEATURES must also return NOT_SUPPORTED for any non-implemented
> function...
>
> My questing is should do_psci_1_0_features() consult the same policy so
> that the feature is only advertised when it can actually be used?
>
> Or am I missing something here?

For the PSCI_FEATURES part, I agree there is a problem with returning
PSCI_NOT_SUPPORTED after advertising SYSTEM_SUSPEND as implemented.

I would still prefer not to make PSCI_FEATURES depend on the full
domain_psci_system_suspend_policy(), because that policy depends on
runtime state: whether this is the last awake control domain and whether
other non-control domains are still awake. Reporting the feature as
available or unavailable based on that state would make PSCI_FEATURES
unstable between attempts.

However, once vPSCI advertises SYSTEM_SUSPEND as implemented, the call
handler should not return PSCI_NOT_SUPPORTED for an attempt-time policy
failure. I think PSCI_DENIED is a better fit for the last-control-domain
case when the request cannot proceed as host suspend because Xen currently
cannot support the host-wide suspend path. I will rework that part.

>
> > +
> > +    return 0;
> > +}
> > +
> >   static int32_t do_psci_1_0_system_suspend(register_t epoint, register=
_t cid)
> >   {
> >       int32_t rc;
> > @@ -232,10 +316,6 @@ static int32_t do_psci_1_0_system_suspend(register=
_t epoint, register_t cid)
> >       if ( is_64bit_domain(d) && is_thumb )
> >           return PSCI_INVALID_ADDRESS;
> >
> > -    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
> > -    if ( is_hardware_domain(d) )
> > -        return PSCI_NOT_SUPPORTED;
> > -
> >       /* Ensure that all CPUs other than the calling one are offline */
> >       domain_lock(d);
> >       for_each_vcpu ( d, v )
> > @@ -252,16 +332,29 @@ static int32_t do_psci_1_0_system_suspend(registe=
r_t epoint, register_t cid)
> >       if ( rc )
> >           return PSCI_DENIED;
> >
> > -    rc =3D domain_shutdown(d, SHUTDOWN_suspend);
> > +    spin_lock(&vpsci_system_suspend_lock);
> > +
> > +    rc =3D domain_psci_system_suspend_policy(d);
> > +    if ( !rc )
> > +    {
> > +        rc =3D domain_shutdown(d, SHUTDOWN_suspend);
> > +        if ( rc )
> > +            rc =3D PSCI_DENIED;
> > +        else
> > +        {
> > +            rctx->ctxt =3D ctxt;
> > +            rctx->wake_cpu =3D current;
> > +        }
> > +    }
> > +
> > +    spin_unlock(&vpsci_system_suspend_lock);
> > +
> >       if ( rc )
> >       {
> >           free_vcpu_guest_context(ctxt);
> > -        return PSCI_DENIED;
> > +        return rc;
> >       }
> >
> > -    rctx->ctxt =3D ctxt;
> > -    rctx->wake_cpu =3D current;
> > -
> >       gprintk(XENLOG_DEBUG,
> >               "SYSTEM_SUSPEND requested, epoint=3D%#"PRIregister", cid=
=3D%#"PRIregister"\n",
> >               epoint, cid);
> > @@ -287,10 +380,9 @@ static int32_t do_psci_1_0_features(uint32_t psci_=
func_id)
> >       case PSCI_0_2_FN32_SYSTEM_RESET:
> >       case PSCI_1_0_FN32_PSCI_FEATURES:
> >       case ARM_SMCCC_VERSION_FID:
> > -        return 0;
> >       case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> >       case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> > -        return is_hardware_domain(current->domain) ? PSCI_NOT_SUPPORTE=
D : 0;
> > +        return 0;
> >       default:
> >           return PSCI_NOT_SUPPORTED;
> >       }
> > diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> > index 5ff71480ee..816a1a4ecb 100644
> > --- a/xen/common/Kconfig
> > +++ b/xen/common/Kconfig
> > @@ -140,6 +140,9 @@ config HAS_EX_TABLE
> >   config HAS_FAST_MULTIPLY
> >       bool
> >
> > +config HAS_HWDOM_SYSTEM_SUSPEND
> > +     bool
> > +
> >   config HAS_IOPORTS
> >       bool
> >
> > diff --git a/xen/common/domain.c b/xen/common/domain.c
> > index bb9e210c28..d3edfb2a13 100644
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -1375,6 +1375,11 @@ void __domain_crash(struct domain *d)
> >       domain_shutdown(d, SHUTDOWN_crash);
> >   }
> >
> > +static inline bool want_hwdom_shutdown(uint8_t reason)
> > +{
> > +    return !IS_ENABLED(CONFIG_HAS_HWDOM_SYSTEM_SUSPEND) ||
> > +           reason !=3D SHUTDOWN_suspend;
> > +}
> >
> >   int domain_shutdown(struct domain *d, u8 reason)
> >   {
> > @@ -1391,7 +1396,7 @@ int domain_shutdown(struct domain *d, u8 reason)
> >           d->shutdown_code =3D reason;
> >       reason =3D d->shutdown_code;
> >
> > -    if ( is_hardware_domain(d) )
> > +    if ( is_hardware_domain(d) && want_hwdom_shutdown(reason) )
> >           hwdom_shutdown(reason);
> >
> >       if ( d->is_shutting_down )
> > diff --git a/xen/drivers/char/serial.c b/xen/drivers/char/serial.c
> > index adb312d796..cc2b5b5dee 100644
> > --- a/xen/drivers/char/serial.c
> > +++ b/xen/drivers/char/serial.c
> > @@ -497,6 +497,8 @@ const struct vuart_info *serial_vuart_info(int idx)
> >
> >   #ifdef CONFIG_SYSTEM_SUSPEND
> >
> > +static bool __read_mostly serial_suspend_available =3D true;
> > +
> >   void serial_suspend(void)
> >   {
> >       int i;
> > @@ -513,6 +515,11 @@ void serial_resume(void)
> >               com[i].driver->resume(&com[i]);
> >   }
> >
> > +bool serial_suspend_supported(void)
> > +{
> > +    return serial_suspend_available;
> > +}
> > +
> >   #endif /* CONFIG_SYSTEM_SUSPEND */
> >
> >   void __init serial_register_uart(int idx, struct uart_driver *driver,
> > @@ -521,6 +528,11 @@ void __init serial_register_uart(int idx, struct u=
art_driver *driver,
> >       /* Store UART-specific info. */
> >       com[idx].driver =3D driver;
> >       com[idx].uart   =3D uart;
> > +
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +    if ( !driver->suspend || !driver->resume )
> > +        serial_suspend_available =3D false;
>
>
> I wonder why different suspend-blocker API are used for serial vs other
> subsystems (GIC, IOMMU). Why serial_register_uart() could not simply
> call host_system_suspend_disable() like every other subsystem?
>
> This would avoid adding three unnecessary symbols
> (serial_suspend_available, serial_suspend_supported(),
> host_serial_suspend_allowed()).
>
> Or am I missing something here?

For the serial case, the split was intentional. The other callers are in
Arm-specific code, while serial.c is common code. I wanted to avoid making
the common serial layer call an Arm host-suspend policy helper directly,
or requiring arch-specific stub(s) only for this case.

So the current shape keeps serial.c exposing only whether the registered
UART drivers have suspend/resume callbacks, while the Arm host suspend
policy decides whether that blocks host SYSTEM_SUSPEND.

That said, if the preferred direction is to make host_system_suspend_disabl=
e()
a generic suspend helper with no-op stub(s) for architectures that do not u=
se
it, I can rework serial_register_uart() to call it directly and drop the
extra serial_suspend_supported() path.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 18 14:20:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 14:20:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311935.1582054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOypb-0005x5-Iw; Mon, 18 May 2026 14:20:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311935.1582054; Mon, 18 May 2026 14:20:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOypb-0005wy-G8; Mon, 18 May 2026 14:20:31 +0000
Received: by outflank-mailman (input) for mailman id 1311935;
 Mon, 18 May 2026 14:20:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wOypa-0005wr-6g
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 14:20:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOypZ-00AHTM-IY
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 16:20:29 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0b2020-2eae-0a2a0a5409dd-0a2a45018554-48
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:20:29 +0200
Received: from [209.85.167.49] (helo=mail-lf1-f49.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0b202d-c1f2-0a2a45010019-d155a731d1ff-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:20:29 +0200
Received: by mail-lf1-f49.google.com with SMTP id
 2adb3069b0e04-5a995ab70d1so3531660e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 07:20:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779114029; cv=none;
        d=google.com; s=arc-20240605;
        b=D3P6rffHJDQsJonFrSlLHAFMLbHZIBMLQwUHWEwpK33Ws2SS+RaYbTmGbxmEZgheu1
         5hmNRJawdM2fTuddg2MnBosm8Z1hKx1B6Y+8ivBZipZD+AHNefV8xHdCohzc+74XWdQ9
         uPLJTaUDDs/TIDD9XwtVq7xjnfwrfseJ33twAKXR3ThF0T/QPVk+FO8MNS5Fd9Mov5TD
         COcmemdh6QDPM0N/+hIms069Dx1a1gnnJYFjuOLcLT+uqVFeM9Q0o643qVgQkoi+6xpl
         JwraJL8+QVG80oX3kATmNEWiYNzcv9eJLJwi95JonY8cKa8p3EABu0dE0IUbn6Xnk3Ym
         0RQw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=Ybmu1DRrDpjzD8pi8VpWCbTSM8p08YPXbd7PmrylEM4=;
        fh=uAzoxIkY79cy0zES8IqO07ArU7DBG3jlr2bg4XRVkR0=;
        b=HkEGnq6PDi1qD+YE6+saKQGwrQswfVbUIjBuCY5SRfXxAywm0bmTZNELpwekp/ew8U
         yW/4xMMTvKLfLVoYog0VaFfV+MbYGjsvhUX5swgRM9VJoFFlLuI+0k5KKhMQPnb1FBAX
         62jgpi0UsviHP9Z2Rkuoqytd1rX0Jth6+/PQseq0vJzD80ZeOuOgPG9nINC8VrcLyUlA
         47Rlsj0uQl1dzZzzV4Z7eyjs4g4da5E+7WL3GM7YqooVQkRYFCVMlkufDcIKYVBYYXVF
         DUck6n8zzfmIRFPniWrutP9yE9NugpJHvR1Sz7fgWr1NVq5TQbsZo3Qz4nCYe4oE3nf+
         AofQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779114029; x=1779718829; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ybmu1DRrDpjzD8pi8VpWCbTSM8p08YPXbd7PmrylEM4=;
        b=qQU2tFOvIRCfS2X0KQByHH4AolcLzJk2AJmGzkNdwiLuDOJ88n228Z6/ScEsmUvEjW
         L2aRkJM/VpTewgsUr2smfMGDP3kaokB+yFl+rR6LehlZTjTKKveCWSv/Joxh7eHzKPuZ
         mz3wWBEujH3WQZb9D+2yzgsbPKvJ2xVouX+WIVnOZTJ5xupHLu/0lew1SjCmn2Xw9Uig
         nx41iOYJtMBFoE+TZnwJDbO+Uhh6AJVPNO2FMCxohHzgkfBHWz6Ez6O/s+s06NPiTThN
         rix2ld1PR3C8XYDgTm+PbXR4QARgv4sdkVG7OiUHwwNLI8Rii82xljSfJzU6gYzKstGE
         dekQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779114029; x=1779718829;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Ybmu1DRrDpjzD8pi8VpWCbTSM8p08YPXbd7PmrylEM4=;
        b=ehREkYyalVLu7D1OyKhuBQ2VSTBht/TGrIKRc6FHWtrDoMXTcvjKT6QIVi0D5B3Ma/
         vlV0WQ+sYnH5U2s115VR4sOMZyBs81PYu87ek73apO7299vlMQzEdcI6fmcnKVFizYyU
         WA09YgDYKgg03OO99tTYKfB4HRwD92YC3YWLeaYgVxdgJwBY60YmIoqN2BYhlZ8HTVTJ
         5TtaQjd6smpZuuUsVf3ZZJo064QUT4Y0oRUquGX7nAkWKEIarD2podBHaFlCCGBDXWQU
         o7wJi9D5qjtLqNgqTs7ILwO3dBpx7yF3mvw/b6hejx2b1Jgp6aW8KQCQ24cmhoK0jP52
         aJfQ==
X-Gm-Message-State: AOJu0YxYl3MdRUFmWz4xxmM/CTiaQoY++SIMd7lJg6RUfkUUIRcNyHlo
	oVOmIEoC0QDXhNvIL0AeyUePHaY0SwDOYF9P719GB92v2zK4+5rmRUMPr3nu5uhveoHU7hU8n4R
	8/KpJFtzULT2fTE/iviev7NEjv7rohWQ=
X-Gm-Gg: Acq92OGUPqvv6I99xcDccnusGlKWmOGqbYhzA4rC+4fRnelKFEWm49/fV+39qHp/od8
	SyYugxEBdoIxXhK439EHnY87yuEfJR5baS3Nyuy4ksI9rYwH4+xLA7lgodu/8UPIc3I8YWjLaQy
	ys9XnM3bAV0feihujH8u07HLWBqcoxe/jbS+ohDINas5RVZlGmPwADqkHxCn31i4MNsf5OI0fwQ
	ejRa4DhUqQL+ljkzCcXtRc8HSLPyPLWZDygDwrEKIg01dSoxoGUKclU25yuVFSg7n4X9TTt03SG
	Nugt1x4qbvY8l3E=
X-Received: by 2002:a05:6512:b9c:b0:5a8:5276:962a with SMTP id
 2adb3069b0e04-5aa0e61914amr4709275e87.9.1779114028340; Mon, 18 May 2026
 07:20:28 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778605274.git.mykola_kvach@epam.com> <2268857aa7eef95444169564c17f7e9a6f59b1c5.1778605274.git.mykola_kvach@epam.com>
 <14563498-D318-4419-A07C-DDFDCC8FECA8@arm.com>
In-Reply-To: <14563498-D318-4419-A07C-DDFDCC8FECA8@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 May 2026 17:20:17 +0300
X-Gm-Features: AVHnY4IuA9qa_b9i4olnJCPZMr3FuAXdTR50P_x3gBTWoMdk0y5xjTW885MrMiQ
Message-ID: <CAGeoDV8o4Kdiwh=kB_nif16GOAYcscHENMom6kENoGwyFDz-BA@mail.gmail.com>
Subject: Re: [PATCH v9 13/13] xen/arm: Add host system suspend backend
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d62444/1779114029-B5D41FF4-B78E6DFC/0/0
X-purgate-type: clean
X-purgate-size: 765

Hi Luca,

Thank you for the feedback.

On Fri, May 15, 2026 at 11:45=E2=80=AFAM Luca Fancellu <Luca.Fancellu@arm.c=
om> wrote:
>
> Hi Mykola,
>
> > diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/m=
m.h
> > index 2eb8465aa9..de119cad3a 100644
> > --- a/xen/arch/arm/include/asm/mm.h
> > +++ b/xen/arch/arm/include/asm/mm.h
> > @@ -360,6 +360,8 @@ static inline void page_set_xenheap_gfn(struct page=
_info *p, gfn_t gfn)
> >     } while ( (y =3D cmpxchg(&p->u.inuse.type_info, x, nx)) !=3D x );
> > }
> >
> > +void set_init_ttbr(lpae_t *root);
>
> Since this is MMU only, shall we move it to asm/mmu/mm.h?

Ack. set_init_ttbr() is MMU-specific, so I will move the declaration
to asm/mmu/mm.h.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 18 14:33:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 14:33:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311944.1582064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOz25-0007q6-Ll; Mon, 18 May 2026 14:33:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311944.1582064; Mon, 18 May 2026 14:33:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOz25-0007pz-Iv; Mon, 18 May 2026 14:33:25 +0000
Received: by outflank-mailman (input) for mailman id 1311944;
 Mon, 18 May 2026 14:33:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wOz24-0007pt-Gk
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 14:33:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOz23-0092FU-PT
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 16:33:23 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0b232d-2eae-0a2a0a5409dd-0a2a45058cf6-18
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:33:23 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0b2333-aaa8-0a2a45050019-a237832f9944-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:33:23 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 5DD7C4EE3C71;
 Mon, 18 May 2026 16:33:23 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1779114803;
	b=zM1cam5UnbwEIFgpMrLQi/1p7NIsxD6QUcGRP3AKJ7WCC8U71vVutumxIWgdnOauSdv6
	 tSekD85K8F/wmq0q8XG8btHVgdHPSGaaxGT+JW5MKyv0wT+zQ3ZFWoDGDInYFDo1hc94J
	 D2hjAbz1MR/E+cXFg+yMjI2D5grnQO+IZWQsdEyPnY6o2BdYJJklaBBfRtr1XKjx/1WEf
	 k0y8RKj8eeY7Q7NWWIgN5heCWiIygBrlsKEkfBK18zgtIH8dmvGVKzyxzI1K0ZxH/Jk08
	 YfAILxV07gNVWe1ykYeLvOUhvtRHy6U9tf0Rrr+HPIjZE+JGRzU63yna/RKe/GD2IKhpc
	 KDu9s1VZ7I0OLNmKW81WhXVzGul7RBbRwxjFvG/6VKW2Sz5acF9fJaNtAUi1HuwZfEdZE
	 ujBJpMFO6x2FU2+ptFXM0wZ1CyByg5PP/qtvYtPkHp/v7l8RbRhvy1D9wLsai8PLNUFnG
	 olrPsgC12V91MRGpv26DuImDlSU3hJMsn7UCOXyMOZMR0uGRBHJxjaPL3hxfIYJbNx/4H
	 zyuZWnJ9VHsavrgRRGdUg3cmUaCclJcXmTvfKc8iKjpvuQRrfmjnCQdojaYClKagmh5JT
	 iVf8X70pXglh3jSsUILnXe68EjYCe8UGC226eeIM0LHgTTf/MNN7XKntNQmhiSM=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1779114803;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=Dd2ARLc2Z+Ur//usrJ76J0MSevPdvxnzlrXcmxl7Hi8=;
	b=W/Bn/PhnzR5cFjU0i6He8g+dsTElHsy3qbk79GGgMgUhyVf7F3FO0MzRTpDXMam48bQ2
	 Zv6fevnnkWS591gY9gKMY/4r5Qpvdj3yNmhl38GRwCEsid+tr00KLEb3+gYU/lPqtyOM/
	 rfoFytERfY3ax4+6zdRu33aPDzVGsjul+GWLV7kMbS3QTU6QIKj7AAKG2rcg0eVS8XuJe
	 eyEtzMnlggM/Asa7NggXlD9wANKf0EkUEakme3tPFJfNCJDWq/zNzbi+gf16Y7XnXriAH
	 Jowc65egdl7VcCs1H+2SviUAKlLYn3Iz3hyqVmgj6WpIV2uN6upscOdKUIfafBWl3PvU9
	 leM5jmbtP9z7q+KlGt+JpCcXTeaCKIjElyheeTii91NcwY79kX34LVMCJPK7XXhr0g6Tb
	 egT6pw1q+BcBkHVGh22ew5Nd/rHf70vOTVjsiNSzixaMsawy4PX/vu9hToRrtS+/1qC5T
	 FoUmz2ugMrTqT+1K+4cFB7UI1q7P6ONbInXmRnyo/ke+hxe4ul693wLPY99kP6hCSD+Oh
	 hNXQzqFs1+IsDumT96CZQanOktvOXzxtvou2fIXO2qvf7GYO5W9FlOHSw+UEP6FJBM5F1
	 7NV3K4I6mHDr9B1pffkcfmSdJI8MMRARrIK0/QPVl0KNgzvevEtYAR6wE/vo0y0=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Mon, 18 May 2026 16:33:23 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2] x86/shim: adjust for Misra C:2012 rule 20.12
In-Reply-To: <fddf4e43-8b8b-4b89-97b9-24deb46e2c9c@suse.com>
References: <fddf4e43-8b8b-4b89-97b9-24deb46e2c9c@suse.com>
Message-ID: <8fc9b5efd6c83bc2aadbe058eed83615@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1779114803-D917D443-ED6A177B/0/0
X-purgate-type: clean
X-purgate-size: 2306

On 2026-05-18 13:42, Jan Beulich wrote:
> ... ("A macro parameter used as an operand to the `#' or `##' 
> operators,
> which is itself subject to further macro replacement, shall only be 
> used
> as an operand to these operators"). Leverage the SAF-6 annotation we 
> have
> available.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> As per the placement in arm/tee/ffa.c two instances of the SAF comment
> (ahead of the macro definitions) should suffice. Eclair demands one
> instance per macro use here, however (much like we have it in
> x86/dom{ain,ctl}.c).
> ---
> v2: Use SAF-6 annotations.
> 
> --- a/xen/arch/x86/pv/shim.c
> +++ b/xen/arch/x86/pv/shim.c
> @@ -124,8 +124,10 @@ void __init pv_shim_fixup_e820(void)
>      ASSERT(i < ARRAY_SIZE(reserved_pages));     \
>      reserved_pages[i++].mfn = pfn;              \
>  })
> +    /* SAF-6-safe Rule 20.12 expansion of macros HVM_PARAM_*. */
>      MARK_PARAM_RAM(HVM_PARAM_STORE_PFN);
>      if ( !pv_console )
> +        /* SAF-6-safe Rule 20.12 expansion of macros HVM_PARAM_*. */
>          MARK_PARAM_RAM(HVM_PARAM_CONSOLE_PFN);
>  #undef MARK_PARAM_RAM
>  }
> @@ -207,10 +209,14 @@ void __init pv_shim_setup_dom(struct dom
>          evtchn_reserve(d, param);                                      
>         \
>      }                                                                  
>         \
>  })
> +    /* SAF-6-safe Rule 20.12 expansion of macros HVM_PARAM_*. */
>      SET_AND_MAP_PARAM(HVM_PARAM_STORE_PFN, si->store_mfn, store_va);
> +    /* SAF-6-safe Rule 20.12 expansion of macros HVM_PARAM_*. */
>      SET_AND_MAP_PARAM(HVM_PARAM_STORE_EVTCHN, si->store_evtchn, 0);
> +    /* SAF-6-safe Rule 20.12 expansion of macros HVM_PARAM_*. */
>      SET_AND_MAP_PARAM(HVM_PARAM_CONSOLE_EVTCHN, 
> si->console.domU.evtchn, 0);
>      if ( !pv_console )
> +        /* SAF-6-safe Rule 20.12 expansion of macros HVM_PARAM_*. */
>          SET_AND_MAP_PARAM(HVM_PARAM_CONSOLE_PFN, si->console.domU.mfn,
>                            console_va);
>  #undef SET_AND_MAP_PARAM

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Mon May 18 14:34:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 14:34:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311950.1582073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOz3Z-0008Jg-VB; Mon, 18 May 2026 14:34:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311950.1582073; Mon, 18 May 2026 14:34:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOz3Z-0008JZ-S6; Mon, 18 May 2026 14:34:57 +0000
Received: by outflank-mailman (input) for mailman id 1311950;
 Mon, 18 May 2026 14:34:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <kevin.brodsky@arm.com>) id 1wOz3X-0008JR-RC
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 14:34:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOz3W-00ALOd-Vm
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 16:34:55 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <kevin.brodsky@arm.com>)
 id 6a0b238c-bab6-0a2a0a5309dd-0a2a4505958c-4
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:34:53 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <kevin.brodsky@arm.com>)
 id 6a0b238c-aaa8-0a2a45050019-d98c6eacb590-1
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:34:53 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A280E1C01;
 Mon, 18 May 2026 07:34:46 -0700 (PDT)
Received: from [10.57.34.29] (unknown [10.57.34.29])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D83FA3F85F;
 Mon, 18 May 2026 07:34:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="Date:Subject:To:Cc:References:From:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1779114891; bh=E15tHTNDpPdXPrfZ/GjSgBlqQkUxfFvGZeYUSNVaEFs=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=FfFlZJz/BHU+RUZ+zar+T1XTybkuBlKG+zBJN9Lc0p2TtnrRSAXTy5gi7FXOzeQ11
	 mY/Lo4+ipdrf3BbwBgP0ZI1ULhXto98trvgvBFvkPDWQ8krOYIxKhkK0OF6SXRXSVc
	 9yRJlTlnM4EQjE/fv7eFTPVUaa4T8aERFuxVxXy0=
Message-ID: <10d4eaed-eaee-47b7-9ccf-7f1931b26b02@arm.com>
Date: Mon, 18 May 2026 16:34:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Tolerate nested XEN_LAZY_MMU entering/leaving
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 linux-kernel@vger.kernel.org, x86@kernel.org
Cc: marmarek@invisiblethingslab.com,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org
References: <20260508143933.493013-1-jgross@suse.com>
 <362bc938-18ea-4f6a-938a-893dfb1c956d@arm.com>
 <36fc4317-d7a0-410c-9d95-28858018053c@suse.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <36fc4317-d7a0-410c-9d95-28858018053c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1779114893-DBF66443-FA9BA2F1/0/0
X-purgate-type: clean
X-purgate-size: 1732

On 09/05/2026 08:32, Jürgen Groß wrote:
> On 08.05.26 22:54, Kevin Brodsky wrote:
>> On 08/05/2026 16:39, Juergen Gross wrote:
>>> With the support of nested lazy mmu sections it can happen that
>>> arch_enter_lazy_mmu_mode() is being called twice without a call of
>>> arch_leave_lazy_mmu_mode() in between, as the lazy_mmu_*() helpers
>>> are not disabling preemption when checking for nested lazy mmu
>>> sections.
>>
>> I think this is a correct description of the issue, i.e. potentially we
>> have arch_enter_lazy_mmu_mode() called twice *sequentially*. Therefore I
>> don't think that disabling preemption inside arch_enter_lazy_mmu_mode()
>> is enough - we have a problem with preemption occurring inside
>> lazy_mmu_mode_enable() generally, not necessarily inside
>> arch_enter_lazy_mmu_mode().
>>
>> Preemption shouldn't matter if commit 291b3abed657 is reverted. AFAICT
>> this is the only easy fix.
> The description wasn't really complete, I think.
>
> The double call will only be possible if arch_end_context_switch() is
> calling arch_enter_lazy_mmu_mode(), and this is happening for Xen PV
> only.
> arch_end_context_switch() is a nop for all other cases.

Right, agreed. Would be good to update the commit message.

>
> So this can be handled completely internal of Xen (otherwise a revert of
> 291b3abed657 wouldn't help), and it is easy to do so as my patch is
> showing.
>
> As said, I'd like to get rid of the extra tracking by Xen regarding
> lazy mode.

Got it, that would be best.

This patch should ensure that xen_lazy_mode always has the correct value
regardless of preemption, which is what matters for Xen.

Reviewed-by: Kevin Brodsky <kevin.brodsky@arm.com>


From xen-devel-bounces@lists.xenproject.org Mon May 18 14:36:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 14:36:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311957.1582081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOz4d-0000NP-7Q; Mon, 18 May 2026 14:36:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311957.1582081; Mon, 18 May 2026 14:36:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOz4d-0000NI-4s; Mon, 18 May 2026 14:36:03 +0000
Received: by outflank-mailman (input) for mailman id 1311957;
 Mon, 18 May 2026 14:36:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wOz4b-0000Mt-78
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 14:36:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOz4a-0014ju-90
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 16:36:00 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0b23d0-bab6-0a2a0a5309dd-0a2a450b95f6-0
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:36:00 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0b23d0-212f-0a2a450b0019-a237832faa16-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:36:00 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id F25944EE3C71;
 Mon, 18 May 2026 16:35:59 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1779114960;
	b=mBVM5EVKupG5nuvs6O2D3qHJGff4FZm2LKTSBzFho6I0/eqV3dEiVmqkL4Ne9w9EWfxJ
	 RGKgZKtzH1baJTtfMikZMjYns+dxe7g8XAyZSpEWLjlQeuTtkaIBlkE2E1gIW4gJBGeN+
	 XR8mURFsR/+bJIExSJXkSBlJ2oAMMaZU41oTC8rgXYRBBzcdZtcd+L4tpVMmbr1WezKbF
	 5KigB2RAicQaBTVv3s+E8mwxNzeeEjFP+cAT9+fYVboD6lijbqbiHVvmGX83NYCeNtzjO
	 eD5PmsgY/ZcknMUYOJdBAPAO4WUeAALPZD6A/7VBHA/5+yNjq11VTsdvX3XJ++u/ldlhW
	 yd1EHuyeAovCuo+6aghhXAhVom5+9EGPEfulf2Pm5HtiCAVZPv8l9jbzIOiDtDZKgaZxk
	 eSBI0vPxA9Z4FB3mZYA4V9lgUeVH2vKvBabByvHOqDnEmF6sdyvx63YNnPA+/IWcT6Vt2
	 F7+m5PlFAFyNkVMHy0LXlVQjYpLBfrBOm1GRnqKaMrwU6Mo0ZX5E4AVmCAgVyjMaDFtli
	 SxvigNrnJRbZSwJ4+2eoYFiJXrNPH9AMfFq4Tnsr2QCLGngAWClM9iFx+KGtHGM9GZ2I+
	 qdYDby6/iGn1e/2wf2eT7zoVS+fFp7qZrcxaWhjavl3JOXDY80iXEcyTNY2P+Iw=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1779114960;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=5kvEkR+x1Zrs5LIJVh7DFk9j7lKLX5Qk/Ynk9sx/Yr8=;
	b=qJF95nK1lyw3CCtxA5XxlNHQHiAMsG5wTfy62HI10HtqyYpjA1t/bAegUF86yhfw3vD2
	 Ky6x3Lw2Zenb+okYHaaNTTSXkIWHRoifeOnt5beVPlRR93UIZEEMk1k+XrNmdyFgQ4spE
	 2da/DAsTUIvkSPYpQaKpCsTstZjoGBLOB1jNoxzzTSKNoyuCQ5lXoG5oXEdnnCE7knCEt
	 Gef9egb6pbnT1YZPoi9dfI2QL9hR/Tfg3nSoF7meNz7vMNZt5OLiq1IPFGW6iDu768sYm
	 2IoEV+nTgDAqoSkr1Ec3ufk+rWQtpAZ8KJsYPSo6S1xwwYHEnBt019rIsQvBuMMkmidNj
	 K4ItOEnTvufsDPG1zDD1Z6h8gTIaw/qD1WfcgL8IkayFlas7O1v1Gk6cpv614SLdkbjOe
	 HXuWELdBqGLIThbENmVeO7sBzwqtxbyoNNpswyBJeGMxCCFQz3RLSJp5i46pip/gisJLj
	 5kdTpPDHAis8FyvB2sIgo69csaN6nqpif5bOLlfeM6TGPP9+hq0v8eeHygWPkTUYLL3aH
	 mexYchmXLk6lXl3R284RhLKydCUMMnBALV0Dp7W9yHZXr8i9Sz87S/VjnYpgv3xCVcmHk
	 +bfNdmviC+73z07rOkMNpYjhEMdWF8ghv5IiZ1/MUjt+eX27hqSZ90B5s0YROTE=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Mon, 18 May 2026 16:35:59 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
In-Reply-To: <ad17d551-139b-4edb-b820-6ab12a4d70fe@suse.com>
References: <ad17d551-139b-4edb-b820-6ab12a4d70fe@suse.com>
Message-ID: <0f3b4071c849c17b1150eeb3fa084639@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1779114960-12B70F3B-966F51F7/0/0
X-purgate-type: clean
X-purgate-size: 946

On 2026-05-18 11:51, Jan Beulich wrote:
> ... ("Conversions shall not be performed between a pointer to an
> incomplete type and any other type"): Add an intermediate cast to
> unsigned long.
> 

Stale comment I presume.

> Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> v2: Add comment.
> 
> --- a/xen/arch/x86/cpu/mcheck/mce.c
> +++ b/xen/arch/x86/cpu/mcheck/mce.c
> @@ -1264,7 +1264,8 @@ static void cf_check __maybe_unused x86_
> 
>  #if BITS_PER_LONG == 64
> 
> -#define ID2COOKIE(id) ((mctelem_cookie_t)(id))
> +/* Two layers of casting to cover Misra C:2012 rule 11.2. */
> +#define ID2COOKIE(id) ((mctelem_cookie_t)(void *)(id))
>  #define COOKIE2ID(c) ((uint64_t)(c))
> 
>  #elif defined(BITS_PER_LONG)

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Mon May 18 14:58:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 14:58:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311984.1582146 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzQK-0004G6-Eh; Mon, 18 May 2026 14:58:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311984.1582146; Mon, 18 May 2026 14:58:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzQK-0004Fz-BU; Mon, 18 May 2026 14:58:28 +0000
Received: by outflank-mailman (input) for mailman id 1311984;
 Mon, 18 May 2026 14:58:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wOzQI-0004Ft-O9
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 14:58:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOzQI-00GYPV-39
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 16:58:26 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b28f2-e002-0a2a0a5209dd-0a2a4508ea26-40
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:58:25 +0200
Received: from [209.85.221.46] (helo=mail-wr1-f46.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b2911-63b5-0a2a45080019-d155dd2ec061-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:58:25 +0200
Received: by mail-wr1-f46.google.com with SMTP id
 ffacd0b85a97d-4526a8170ceso1023684f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 07:58:25 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9e768bcesm40184558f8f.4.2026.05.18.07.58.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 07:58:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779116305; x=1779721105; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bVh7wBdGdJcnJWgIg8Ugj0xZ3jQ8W4FnLwiuJhQXol4=;
        b=FMVf7fZY1pf8KLPEwf8FzGIppcbi6G9ZDKSIf0CCJbEbHmcBWFfgXsrYXuJFdqcSx1
         TB7/E1FfqX50r2Red8zy99FO5W7mCtfQVxtee03Ysc+Va65ql7s8pQs5rKGkzFnSs0H9
         0qr3Vxxa6jLbyVnwmw/4sBQCJWmCpzRuhh+2pHUIeYdZgsRDdOWJLP4dFaNDg4jcFmLS
         9a7z5pMO7xY51T0ocabumut9ZAJ7NXf8OusLh/KLtdSfa3dvECpxJJxWMeImI0JI5PP7
         W8hfhuiazu0pm4LwCvfbtKoeE51523KWXZ9p9y6DREBUuYXbERU6GRpI3ymTlqIPB8ua
         3Uqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779116305; x=1779721105;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bVh7wBdGdJcnJWgIg8Ugj0xZ3jQ8W4FnLwiuJhQXol4=;
        b=HWfYOO9PdfNyEQeS2HrYv+JffqCwukXrDO1vst60fpfM7dpbagAVIjeI02VMBaIkBZ
         uKVN19xcbpYtSiZY6mdXjjmfarnlB8GSgTQ191gDrcm41FLb84AyrcIDxI5UHxhDbbnz
         FPV+BF6WOFsI9JIU5DGK/VnamnJN0NvLmzZeA8u6T21ycQEDGSJF1fF2yV8ZYXUrQzcB
         dJXBhu4Uo1jGCDNypGEVThWnC/i+sh0uKBmW15+VV43mlnWc05yyuhM4le6P8UsBs7QW
         T9XoCiz/61JSV+77n6iqiqZGAuOf9Znk6CqNf5E0V7oipAeqQu+0s9E06HF9JecD4vnc
         5yzw==
X-Gm-Message-State: AOJu0YxmsQBDNSPM7G9r7HuIv5XaPAa0GKipyI6yQeR4Vh9JhAtMOX5B
	R9pgZuTkG47piwiRso2JV5LQxOnrD6ByPmNKsJWvAGlDYQcHSHW20xk5DSy5r0MDfA==
X-Gm-Gg: Acq92OHkQ/Rb5wnoFjFiCL5Y4M3Z/7VRlhnfVH80mQSZpFrpP05VHlyFKN5kKsOQ5qj
	3zHukXO3Clj4SE48jc9nMMlbyZT5YBoNyQ0Gr/IzQ3fOeLj6QfvL7gi8j2ixTY8r98dERVsi8EY
	B4z2SVbKCmlVxSlup0HQILXbnM/4QnqofgWVxbXXeB6ZB2P/jueEpdqKcFQ5iKX+WJwR25FL4ju
	iN7/cOC9PF/287CBLLB8bozgwSBjLTqDDS8DZA9txoJNTDKu0147HYzf6jnWNL8co1D8OtUfrW/
	B2h4MiadmDDZ25ND6abW2wtJx58oDuiyLjr62cnnyU6i3eWl3RD4jZTGYGZSPA3mnI25MuQA4Er
	126s7t4K1I53GBPq8gdA7RQu1VkzEHu/SRb6R1BZI5/JprMWAoGdwIiZhvrtV0ydjSZ1i3pFvlU
	W1xF3k+KXmYCt/j5Hx51upiEEkezuh3ncBVjTCd+NWGLE1tLu+7GNCB32PkV3vE914rcHgl8vOg
	tpu8WbuSPcmKO8=
X-Received: by 2002:a5d:5f50:0:b0:43c:f8b4:e58 with SMTP id ffacd0b85a97d-45e5c60d77cmr23374165f8f.41.1779116305317;
        Mon, 18 May 2026 07:58:25 -0700 (PDT)
Message-ID: <51437c77-f622-4934-aa81-682fa06be3fb@suse.com>
Date: Mon, 18 May 2026 16:58:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/shim: adjust for Misra C:2012 rule 20.12
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
References: <fddf4e43-8b8b-4b89-97b9-24deb46e2c9c@suse.com>
 <8fc9b5efd6c83bc2aadbe058eed83615@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8fc9b5efd6c83bc2aadbe058eed83615@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1779116305-B7171DB1-097A4195/0/0
X-purgate-type: clean
X-purgate-size: 794

On 18.05.2026 16:33, Nicola Vetrini wrote:
> On 2026-05-18 13:42, Jan Beulich wrote:
>> ... ("A macro parameter used as an operand to the `#' or `##' 
>> operators,
>> which is itself subject to further macro replacement, shall only be 
>> used
>> as an operand to these operators"). Leverage the SAF-6 annotation we 
>> have
>> available.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Thanks.

>> ---
>> As per the placement in arm/tee/ffa.c two instances of the SAF comment
>> (ahead of the macro definitions) should suffice. Eclair demands one
>> instance per macro use here, however (much like we have it in
>> x86/dom{ain,ctl}.c).

Do you perhaps have any insight on this (apparent?) anomaly?

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 14:59:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 14:59:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1311991.1582155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzRa-0004nj-R6; Mon, 18 May 2026 14:59:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1311991.1582155; Mon, 18 May 2026 14:59:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzRa-0004nc-OL; Mon, 18 May 2026 14:59:46 +0000
Received: by outflank-mailman (input) for mailman id 1311991;
 Mon, 18 May 2026 14:59:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wOzRZ-0004nU-A6
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 14:59:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOzRY-00AOzl-MR
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 16:59:44 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b295a-2eae-0a2a0a5409dd-0a2a4506855c-2
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:59:44 +0200
Received: from [209.85.221.53] (helo=mail-wr1-f53.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b2960-7371-0a2a45060019-d155dd35f1f4-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 16:59:44 +0200
Received: by mail-wr1-f53.google.com with SMTP id
 ffacd0b85a97d-452169ae568so1547807f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 07:59:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da0a19b1dsm37194254f8f.17.2026.05.18.07.59.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 07:59:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779116384; x=1779721184; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=q/jgVQNwwGbjxwH6m6gTJxvvfLrZQBTyNw14kYHwtUk=;
        b=GuJUGb+SgcuKnqjZb8Mq0itT9O5D44W4vE99JAo8tmgG9NPsemTpQF/x+0MIhBZZrm
         WsIEk2TilDwfjMuJ2/rOn66sCz9TkdozbEuaGTlSAuBF8UN8uaaKn9hkMgsGNxcZUNm/
         YNxNFysgZ/GWeXjH4AVhNpJXpmL48v/1xCuSO6KIQyXQMUKkpNhb9lfuzOZAbYPoJIa+
         eIuW6NF2lrVkrermPLMKPQmRgFTvcgxgRyYCVJfvJ9C+kpxGjJpuzHEipTRwqyNdEQJj
         UchJMz2srFji2ctuiRAhReVybZ50PU45ZLU4UPkHrKdt8fNp8c9rdCwIdfHHUl9YOH3h
         auVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779116384; x=1779721184;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=q/jgVQNwwGbjxwH6m6gTJxvvfLrZQBTyNw14kYHwtUk=;
        b=DcsWiXSMik29cwYSkXv6q9aJKaAEp75BA+E04VxxOpah5bznjHYUCJdYWz4jM+OBg/
         qQnyqr5pVvaPEzTyLymPnrRDknwcXFQQ5Hk13c7qLd97sSgGuXP5XU1bgNsh5Ca01Rfr
         l09MXIvMdl0SYi2ds92DFEhKCLASBEtzMOg/T7AUQ5mLjf9vs8NK+DCYh7y4RcrEPljA
         z3MRSinLk2CyHyRmtXs7znefd80dcEJJGf+tI/v2m6lPBrQ+G5qw2xf6z8AHjgXHQa0D
         KZmis2JLEeo6FSkPEehMNdGCEO/fjb+SWaSStBEWcj2/eOr1wQfS793UviK8MObB3qzO
         9Jbg==
X-Gm-Message-State: AOJu0YwTyasMnJ9HuesGaKJl/0rUw+kf4R5MVMKcdy6v93W59r1ORLeQ
	KVKYJVjC27/lQP9SYdtPBJt/kc3jg0Vt2Ex87c+/1OaSEnm/0YHAXD6cQjArotoDXEffM9XDCvG
	OSWY=
X-Gm-Gg: Acq92OEUfWRuItMLHkpNLfgE3uxadRUZnGSsGUNd0mh1GttBrlwljUKzIrYRUt+zCHb
	bjoGn8iFg71mstlTmZ1vLPN2MSMIc8odPB6EFW3Sngw/j2gKEao1R2Skf4nKbGZRlHPjYQaBpwR
	4lFxGXeNn2xindoXkEKlIWDGbxOHINMWI9hcNNDuqZx8pHk7svd2j2ZBQNZqoELE1ak5VFNYmAo
	mSTlR1hhhDHAY3FeD+9McCMgcU/9BlXPUSx+CAXKKXIWjwArHc9niXPU74w+BjJeokL97aFwGCv
	QWRBrPAYQJBBvpjzQP3bjbm3MsVcn0rRghGZbphGPJkn9nrtpIb9+ikIi/DDSYjovGD//LCM65z
	68wEwq/P3fYk7VxpbeFv0JX+P5a3QBHDb/wda5TozSdslz9pyRDtwntLi2n4SanN4ua2weiR+oI
	n9Bllg++Dxe69BZ66wHbjs/NnTs2gyRnC9L2/g6jsPFGLsHbXEV+NT/e0sMscQpoY/f7ADpNnr/
	FAWejjAHfnaj1o=
X-Received: by 2002:a05:6000:220c:b0:43d:7d6f:f529 with SMTP id ffacd0b85a97d-45e5c608ed6mr25367670f8f.31.1779116384034;
        Mon, 18 May 2026 07:59:44 -0700 (PDT)
Message-ID: <93e1e5a0-95b0-4494-b661-b6d583864c16@suse.com>
Date: Mon, 18 May 2026 16:59:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
References: <ad17d551-139b-4edb-b820-6ab12a4d70fe@suse.com>
 <0f3b4071c849c17b1150eeb3fa084639@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0f3b4071c849c17b1150eeb3fa084639@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1779116384-8C87AD75-EC539A68/0/0
X-purgate-type: clean
X-purgate-size: 469

On 18.05.2026 16:35, Nicola Vetrini wrote:
> On 2026-05-18 11:51, Jan Beulich wrote:
>> ... ("Conversions shall not be performed between a pointer to an
>> incomplete type and any other type"): Add an intermediate cast to
>> unsigned long.
> 
> Stale comment I presume.

Indeed, forgot to edit it again after the failed attempt.

>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 15:08:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 15:08:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312001.1582165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzZx-0006av-If; Mon, 18 May 2026 15:08:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312001.1582165; Mon, 18 May 2026 15:08:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzZx-0006ao-Fo; Mon, 18 May 2026 15:08:25 +0000
Received: by outflank-mailman (input) for mailman id 1312001;
 Mon, 18 May 2026 15:08:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wOzZw-0006ai-AC
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:08:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOzZv-00GaMg-86
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:08:23 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b2b5d-bab6-0a2a0a5309dd-0a2a4506e7f0-40
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:08:23 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b2b66-7371-0a2a45060019-d1558030dd43-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:08:23 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-4891b0786beso17328005e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:08:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da0fe13b4sm38523982f8f.28.2026.05.18.08.08.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 08:08:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779116902; x=1779721702; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=4QOE6Yy3ozUQulTOg7sNm0C2qv1pwC9XRoGZsNbJgiY=;
        b=FXLirNt1jwJiA06FYPdPMimFhSs65gRY9N+sbmAP/Vhi6QVAp0ry5TzzBzzseUtxn+
         C5NoKIBEZQg4IWj8N1fxabn+iJqGprbgdZLyf6bgiKyv9I452HRtvBqQ7D1aCJe+Vpei
         2BYrE1DpRWcL0or9bpLFjSVGJhpwN/SAQB03G1oKX16NumLSWN4L5u/AL/bxGLgTei/Y
         s3DZazS1twLX51wUMAkAH+gLvMxWnvUGlP2I8cj4ZLmDTRmSoG35GZKQR4d7BxWW5TC0
         usWg6MFZ1DqFjOC5JwA02izG7zOM8gbiwY76zJ2/i9C1GIkIwGGdl+5VycgRGUPZ5clp
         LiwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779116902; x=1779721702;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=4QOE6Yy3ozUQulTOg7sNm0C2qv1pwC9XRoGZsNbJgiY=;
        b=YH7hjCBCGkr5CPQVMaa6NfBMRut4JJh0o0SouMbXPlGDHCLc1hDvtRJwrNwibcn+Ef
         O2Chsa2DG2qHhGoF/zSQ/m4tkKeKfIPUX1UROR/J3Y5FqFuNolzqNmb2BLw2wOj65N34
         6NySjh2Igh6GS0WCduAa5vaFtdBnIuwOZRagHj2k8eYFx7GZ0oWGvWXoZ7QMScNMqjOE
         SbrdmMq6bfYbtp6527oqpHhUu+/eXZmLK38a/3Opj+AKVGnlbssX4Hx0vjiOuN6hHlEE
         rnSNFVPg/tR5gG1YERL5fRXG7W+RTKGxXHCN0hyN37LeYZwmNnLZXa17Cftfg7AHVbJh
         rnow==
X-Gm-Message-State: AOJu0YzNp79Va6XqJx2yrnKU+Ra9horOWzQoegSzXMvFrsmNEU3SOBsg
	SmT6+n+p+ZDg9csjGVNMjjbiBnBfLoRd+zqJkQeak//pELpo1Rais3sIxIdwhVWteg==
X-Gm-Gg: Acq92OG6+6KIeqAMKbvII6H1bCqcxkTNelgavzw0a4c2stze4J6vQ33+VKbb3GBkFaE
	AkRD4GhPvKOLZbxOoo9aORNqedrJaGRkj3Vwy6pkOH72hDARXXJ8q1s66lyN1gpYZGOgvHEWam/
	uFHF5zkdJz3xUwZ32Ypyjyq76mMcptwHpsKU3T9PyW+8gP6m2982xCUxW9YVrSOaqyAeKm9fpb2
	c1aYUUNVyoIpGXKKedag5nE5VxG3XsVOPH3AzbGFCCB6M/NZjNEF2FxIkXUyZ8cI16m8GD8a+9o
	Q1rLyVNW+VOrDhXHWRtSWTgFwR68GzcRgJQN0gmTQu41dOJiLIpCl/BFGViR0b2UlfNKnITP/I5
	342X0DB7jSfoqJWW7Ft1XigWqcSg2ahfq36YuS+88Fzlc1KQUvaKnZiaxxvQ2jFzXUHsb570E6A
	CYM+B6Zh6NrJ9QfFE1KTbgZwbUsKTECpR71YdqH9ZWU5s838HhKs6QjCbyRcIsPtGZKSfCsUxzU
	kGiVTHiA9r4f/s=
X-Received: by 2002:a05:600c:3e1b:b0:48a:9562:7a30 with SMTP id 5b1f17b1804b1-48fe6515f20mr226634725e9.24.1779116902433;
        Mon, 18 May 2026 08:08:22 -0700 (PDT)
Message-ID: <41d236ba-a93d-446a-b29a-449a1c5f8972@suse.com>
Date: Mon, 18 May 2026 17:08:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Dario Faggioli <dfaggioli@suse.com>, Meng Xu <mengxu@cis.upenn.edu>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: RTDS scheduler patches
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1779116903-7F77FD75-4CD0A066/0/0
X-purgate-type: clean
X-purgate-size: 526

Hello,

would you mind taking a look at two patches, both of which were reviewed by
Jürgen and hence hopefully should be relatively straightforward to given an
ack for:
https://lists.xen.org/archives/html/xen-devel/2026-03/msg01341.html
https://lists.xen.org/archives/html/xen-devel/2026-04/msg00162.html

In case of continued lack of response, I guess I'm going to commit the
patches as-is towards the end of this week.

Oleksii, fyi: Generally it is the submitter's responsibility to chase acks.

Thanks, Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 15:13:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 15:13:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312008.1582173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzf3-000883-5C; Mon, 18 May 2026 15:13:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312008.1582173; Mon, 18 May 2026 15:13:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzf3-00087w-2C; Mon, 18 May 2026 15:13:41 +0000
Received: by outflank-mailman (input) for mailman id 1312008;
 Mon, 18 May 2026 15:13:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wOzf2-00087q-Kg
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:13:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOzf1-003hkX-SA
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:13:39 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b2c94-5cb7-0a2a0a5109dd-0a2a450ca68a-36
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:13:39 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b2ca3-62f1-0a2a450c0019-d1558029ac72-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:13:39 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-488a14c31eeso14654895e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:13:39 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe4c833fcsm261610255e9.2.2026.05.18.08.13.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 08:13:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779117219; x=1779722019; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tLSX+LZzydbu81O22Az/uyJa+78LpFfEI06C4sxaR+8=;
        b=Ddn7ovNZjZSKWDrX3CybnQGUhcCHXA2SHkiGZLwnWcksEa9ja0HgZGQyIzumYuwXKl
         UfR7n1/+8cZ1Mz7BEphAFAcCOPRVc88JmFIGhi3dcUEfaxLcCIjksQpOinnV0MrLNTCj
         DmxG+YQJRx+yZkKlZiOUpNsksnjOfntGbzKPfBZ0jEnE3Pl1k/kr4oBwgGC17xxM8dN+
         eBgZKyJrxSRbsGvVDv5pRxzP0FH/myAGY7E+NFyZbQLA6YrHjQfIzMV4Nx3TRRGRvl54
         gX/HMaj3b+b1bCyd3/GtzX2m93p5/l+5l9sRcd9A/SzdIG5pZyCv/mEFfZc8Y0PNlJnf
         e/DQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779117219; x=1779722019;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tLSX+LZzydbu81O22Az/uyJa+78LpFfEI06C4sxaR+8=;
        b=OBrI9iCTC63+B2kWRK1gS60asBIequm7jrvnEMViS2Qdoey0cN2kWfqwV4tBWQMKaD
         /PmIA+c7O8kvbPPv4h0hudH29bsY0R+B8UbNwYW62r3k8KlahqMpWjOroENGwlTF7Gti
         JRWy7baUuAx9p3BceCH+9t6HK3rapF5Ek4samTs6DZ/8/ZMfd9O+jkszpIzEqV6ZJ50t
         sJFCs96tTFENg0TPtqJlDXbF2Ql24LuKpsoizt5bg9bMK1tu7FgamNS4jD+90zJPMEJL
         zhYga7Js7LFao+nMmgJn4WcGndd/7CCYpX+otuGZiybwssQuCeXagTisl+qPNap/LdYM
         CTQg==
X-Forwarded-Encrypted: i=1; AFNElJ+OgHD3+U+1b6o96Z8kkMNcgAHn7RGcH8qp7GlmZFe6/OSSbcA5Qvhf3OiN4Nmxi48AjDKnrtduxxw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy7dAr9HNqtjcsRjd2sEbhSrPP1as+3Ldwt1uot9c74Yqz+mibQ
	5iedcUvAKFdsvAwdY9+UGXWirPFtvw6kMelxojRUc5pIrzD0N7g4Y5cU/ikBKCPLjQ==
X-Gm-Gg: Acq92OF6JKYI9vKP+qoUHDPBFryvdcsFwFWQR7MxOCwAthftD6bYzGm5WbwQLhv02ub
	em+7c5Ta2YUdzjJ+I9ayi39PEJsUzNUIn9NmNgToMgcXLg3VCnhdPT9COV/t6TiRW5F9VDUBER1
	ZS+xbYLyXtlFT6H3qV0ATeNxCAQNuXJ3I4wjeK4XY6DhKz11yYXKRWBr4NX9jGaNo/Vpm+bkDTq
	a0BP2rRXr1IjYOmDLgvzDz/3TOZKcd3+1bat159ke9svbVZoCy7TANZwnxuIsKzsxS51lKRQj+I
	B3Q6GvbXiKPUn+dMts3hYPFO1L6fGKWRWhXUTr3D42xuK4ZlOPMnx+WQm4yGBfalYEeqyjuXzzP
	9OVVUd5PFx8cTOwdUqGBN8M5QYllB7QGtnCXDStA+74ZxgTo4m9wPOo66seeZiIyHmhJs2g2LAN
	2I19lH7TmuRJpSdfOBnHnDOeF0GpgQiX9TXkD0RYjGc4o/hsjXg+4tkzaAXxpOvN636lYnexsYP
	7RQOXAFwowg66c=
X-Received: by 2002:a05:600c:a406:b0:48a:6798:52e9 with SMTP id 5b1f17b1804b1-48fe59b06acmr205236055e9.0.1779117219142;
        Mon, 18 May 2026 08:13:39 -0700 (PDT)
Message-ID: <97011ba2-0f54-4336-9949-5ea0d76900f1@suse.com>
Date: Mon, 18 May 2026 17:13:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/26] xen/riscv: Implement ARCH_PAGING_MEMPOOL
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <97f20cc49563fdf01775a649e562e302bd0fa886.1778250616.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <97f20cc49563fdf01775a649e562e302bd0fa886.1778250616.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1779117219-DB57FCF5-B0F7B8C4/10/73395122804
X-purgate-type: spam
X-purgate-size: 1620

On 08.05.2026 16:43, Oleksii Kurochko wrote:
> The p2m_freelist is used to allocate pages for the P2M. To initialize
> this list, domain_p2m_set_allocation() may be called from construct_domU()
> in the common Dom0less code, so RISC-V provides an implementation and
> enables CONFIG_ARCH_PAGING_MEMPOOL unconditionally.
> 
> Additionally, implement arch_{set,get}_paging_mempool_size(). They are
> not directly used yet, but are required to support the
> XEN_DOMCTL_{get,set}_paging_mempool_size hypercalls.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
with ...

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -1606,3 +1606,27 @@ struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
>  
>      return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
>  }
> +
> +int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
> +{
> +    unsigned long pages = PFN_DOWN(size);
> +    int rc;
> +
> +    /* Non page-sized request or 32-bit overflow? */
> +    if ( pfn_to_paddr(pages) != size )
> +        return -EINVAL;
> +
> +    spin_lock(&d->arch.paging.lock);
> +    rc = p2m_set_allocation(d, pages, true);
> +    spin_unlock(&d->arch.paging.lock);
> +
> +    return rc;
> +}
> +
> +/* Return the size of the pool, in bytes. */
> +int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
> +{
> +    *size =  pfn_to_paddr(ACCESS_ONCE(d->arch.paging.total_pages));

... the stray blank dropped from here. Will take care of this when committing.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 15:19:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 15:19:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312016.1582183 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzkh-0000Vc-Nl; Mon, 18 May 2026 15:19:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312016.1582183; Mon, 18 May 2026 15:19:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzkh-0000VV-L8; Mon, 18 May 2026 15:19:31 +0000
Received: by outflank-mailman (input) for mailman id 1312016;
 Mon, 18 May 2026 15:19:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wOzkg-0000VP-L0
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:19:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOzkf-009ZjU-Ev
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:19:29 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b2df5-bab6-0a2a0a5309dd-0a2a4503acdc-28
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:19:29 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b2e00-672d-0a2a45030019-d1558032f0b4-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:19:28 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-488d2079582so23072215e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:19:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe5694fbfsm455202775e9.6.2026.05.18.08.19.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 08:19:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779117568; x=1779722368; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ep7xTMulpjYnoCRJahZI/ruB9JBQthJc0DK1bBUJPLU=;
        b=LTUJSg+SPQrb5Vpt7bgRkJUhjS1lhyq432vnNBjQLjvYrczzYkZAgSRvLvXqwH1xXS
         JJIAoOjZwU9qe2MlQeVB8lyjqOu9Y2VfmTtyX9N3T3aTborfsgbeP4wdNlaobZzpsnts
         eq/+SzIC2r2DiNdaUg8kAS7japg3G+nffSUk33oDW+ii4E0Dr2C9P5wGE3/w3CYexRCF
         OU/35Ckk4qLiOldkQxQl6Mlz3fYp2yTmb00gfHgbkD4lNPW7lml3V0ZMg3UGsDKisVda
         I0leUXGvpx5xYxad/nRwjvXI5Dofd37VUEDjYgGrsjIVatnkiO82agLRCcrQ0LfdSmB4
         oHaw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779117568; x=1779722368;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ep7xTMulpjYnoCRJahZI/ruB9JBQthJc0DK1bBUJPLU=;
        b=MfP0BO1t8uj2sPNzqg4957Pc/hzHdjMgbpXS4kgJ65s+7joUvwaKxSBbwNprtnfvVB
         kBrb69PrlGbUczAH4RKObr178hrwFsVsRr5uZGFYnzo8nD+hhbpABqUrmFDy6PpDfRqI
         ySf14eTykbQqq0erEWGtfohh7jVa//kFwTztvYNYxtpv1u2apyfhBrf3sk67o/CNst/4
         3lDelDQGAzMS/ol8dWSkTkdobzg+7OAOFGgxrEal+0fGk0qdwVwum4EKS1IB40HvHVCe
         s5dMbJhrpm5j5yxBawQhg5EEChDXsMcDN44P/Xsg7QkamDtmxpJk6dID/4SYDFkmZRFN
         vZnA==
X-Forwarded-Encrypted: i=1; AFNElJ8kh/+Km797sSRmpzREdyOh7Dzy6tNAyqxscpUU6VbH8YHokUaBKd1s5i/P5CPw2+u70r/Vgq9VkIY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQBlMXZiuH1gM6wnCos/tU39cLw8ANN24F4JDKi4UuTfSj4UKe
	RIJfX5qPtd04Mwlh/HfBswKSmhEOPZYkEVQBIEe/gF/D1lG4SXmhTdQSaoRPlJvx+Q==
X-Gm-Gg: Acq92OG/XTK67Oz/3OhNQIVwe7unCRWQgpDf0zMbnFCRqb1FBxFFcNEs/6dLxwcuX71
	fLpFBN9hvHcMBkORS9BAjna+MjqcSUwov9Q4FXezw7vem6mtLioXGpDEqFbnIo4TD7cVXfjJq1P
	s58wGhbOZkKseexYFW9l/34HhpR4HM09uKezUXIJEnPY/RQquGwLYU4Cc1z0nyf8KGY0YdrQN3V
	/8qobAyzbXrGCn9R9ySCUaUO0ba7aREJA8cJPgcdt/Lgnt02PCXrMq+NI8S7LoYZ22VmyPKTagQ
	4slEgDrIqlBdFSv/613li6bTlzN+UNOZUhReSqnVj9Jzq4P/PKB3EarBMEHNsTFGF/IjtTaC+z+
	wczU+6Cch7BwAOHLGDjNs0vFQ5AMYGI9lnlFqjnMuPLvvxAsYP0/IINaHyOwraTrTxdqwyDzU75
	ZC+nxd/2kuluYnQr2z7o3OuUlq/F+XWoOjh+xpnz5U1PT9C5Rjh9iQwngOZkNl0Agg/47yGnMwL
	ZskiZB49YtmKNHEq2SEC2z0xw==
X-Received: by 2002:a05:600c:821b:b0:488:b811:51c4 with SMTP id 5b1f17b1804b1-48fe6515831mr227013125e9.25.1779117568121;
        Mon, 18 May 2026 08:19:28 -0700 (PDT)
Message-ID: <c102da85-ca30-4c77-b4a6-a91ae2f9d47a@suse.com>
Date: Mon, 18 May 2026 17:19:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 07/11] xen/riscv: add Linux kernel loading support
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
 <f77ef278b7df729a3a97a0e1b3ed0b4ee4d08fac.1778140240.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f77ef278b7df729a3a97a0e1b3ed0b4ee4d08fac.1778140240.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1779117568-38149938-86D0F5B5/10/73395122804
X-purgate-type: spam
X-purgate-size: 714

On 07.05.2026 10:58, Oleksii Kurochko wrote:
> Introduce support for loading a Linux kernel Image which is got by
> uncompressing of Image.gz on RISC-V.
> 
> kernel_image_load() and place_modules() currently call panic() on
> failure rather than returning an error. This is because the common
> kernel_load() in common/device-tree/kernel.c does not expect a
> return code. Handling errors gracefully would require a separate
> refactor.
> 
> The implementation is based on the Xen Arm kernel loading code.
> 
> text_offset is available for both 32-bit and 64-bit Image, so fix
> that.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Mon May 18 15:22:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 15:22:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312024.1582191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOznT-00024x-7o; Mon, 18 May 2026 15:22:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312024.1582191; Mon, 18 May 2026 15:22:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOznT-00024q-4f; Mon, 18 May 2026 15:22:23 +0000
Received: by outflank-mailman (input) for mailman id 1312024;
 Mon, 18 May 2026 15:22:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wOznS-00024k-0t
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:22:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOznR-00EwqX-D6
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:22:21 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b2ead-e002-0a2a0a5209dd-0a2a45019328-0
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:22:21 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b2ead-c1f2-0a2a45010019-d1558030b48e-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:22:21 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-488af96f6b2so27171865e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:22:21 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fead15bf3sm86721605e9.6.2026.05.18.08.22.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 08:22:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779117741; x=1779722541; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=G+p8ZPPEj5GED5N9i/+MFj93qNDJn/UygesS3drYpCw=;
        b=cMewH+wUGttRa9Zvi2nx8tBfDBIgiTPp/9Ez4XV4/oynv2wWVPQLXYhRUMTurUevrx
         pQ6viIxv8t8JuzweB739yjuZ2UtKstCNnqRiUb6IF5l7XUgEDrb36HSBK1BZNu3TiiGc
         RydZXLtk/0hT1hiKZMo0TQWcY2TI0n4jWtzFYqX1ZJ04GzLn/N9zUWDuq7L3WdlCdncK
         Z4mbKgV4wwpcWeRFMDPdRBjlfVs9swkUxcRja/XzDcxzGOOWUeZIS7E1x/0e0DZRztes
         xumMnjjSaIgA4MUmo6kGHmLO0oGim9Y7kECttAA4X7vamAQzi5OsaPzSrKh033dCOLIh
         535A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779117741; x=1779722541;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=G+p8ZPPEj5GED5N9i/+MFj93qNDJn/UygesS3drYpCw=;
        b=lwMNUF7AQoUd7LPknEqQbBM/+En8M0X6E0MZgd2Hjjn8+yBloRdw+K27LF/xZJ96dL
         dWe22P6UuAmsjyifl2oytwnfTpqmE6Sv0mqaaSE/JNGcsI/Qi3ejCLa6EHRnHe6tWEi+
         AppgYukep2hYqRdisIPz6n9PaQw4S/ufBliAA5KbvEHyEhZw1IQJQU8kntxIKu3XImkP
         A/qpbAWiMA8lhjOaW0XVuSCumGpwADK2n4+jZA3oLbxjvv9b6c8IpzvqmVWqw981WDJc
         +/MzftIJxYAOyq0BuYrzPdDaBZGrwi8REcob9JTSJEabHB8vBXqyngTCSv5Efb6o9jsk
         Yo5A==
X-Forwarded-Encrypted: i=1; AFNElJ+wTsM2Kh7ovEBhNMxvoGF7TKggSkIrxqmCl2nFe54cksfUEg3xB+NeEBBfZkGm4Cd0graqWuqPnJE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxDGKFBl4+IeQQHKg9r17SsC8fFwvNkHC2i+W161zaRXcVS2sNm
	1BMbCk2ATD2PpmvSGIPDv+F4psxWywubOg8EOv0ZazY8jn4NyKxB/62wA7xKVUj77A==
X-Gm-Gg: Acq92OEHzx/BL0/LsVKOlf9aAqghxQUgKA6ujhTX2FfgKughsn2QGhfLw/mScV4Z0+W
	NG6c0PsuA2pSAu1hPUwLOVXER/zfkLEkZNuOz6rYwyeliItIHmzIGcx4peSV0Vf3zeLLkGcoFhT
	vlsl+IXrkrh+CvyRro4hKobT3eRjNJzquymlXITutFMaht2UCdATBG9k7sNg7GF4NEM3YJvkVAE
	YLajbGmGvLHDUw/vJpxWInsFpFYYuDERn7GseA+71kRCKjtt8AHZrI0fGTaQRPPvCft+w4KLcV8
	r/M/BlrBBtCKMKQMb0MIs2seBm2ezelr1DdHeBiuA1Z7IcPxx/cPasAJdVeqPE71nohN8VON/Gh
	9Wv65J3OXvuTinAPqKdq9wtky3NCbVEJcfshglj7bJbzM+yM077Dfnp9MKwgWp6Km4XVy8ZGl2R
	6R5L3txRmaopwHz/ahbO+y0Us9kPFUuKlGDKRsTx+N9Oilg9p3B4qblaS0d10RvglMyFS9zgWzN
	UpYxYB6MOvsv6I=
X-Received: by 2002:a05:600c:8b75:b0:488:7ff6:1f75 with SMTP id 5b1f17b1804b1-48fe6321cdamr249658565e9.21.1779117740747;
        Mon, 18 May 2026 08:22:20 -0700 (PDT)
Message-ID: <6640f27f-7c32-4a68-982b-b282ad8f67f0@suse.com>
Date: Mon, 18 May 2026 17:22:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 08/11] xen/riscv: rework G-stage mode handling
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778140240.git.oleksii.kurochko@gmail.com>
 <5a48ba01dad3a54b404524956fb39e7e3e673a93.1778140240.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5a48ba01dad3a54b404524956fb39e7e3e673a93.1778140240.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1779117741-ACC53FF4-66348244/10/73395122804
X-purgate-type: spam
X-purgate-size: 2661

On 07.05.2026 10:58, Oleksii Kurochko wrote:
> Rework G-stage mode handling to make the selected mode descriptor
> reusable outside of p2m initialization, both for filling CPU nodes in
> the device tree passed to dom0less guests and for per-domain G-stage
> mode selection at domain creation time.
> 
> Promote gstage_modes[] from a local __initconst variable inside
> gstage_mode_detect() to a file-scope static const array, and convert
> max_gstage_mode from an embedded struct (assigned by value) to a global
> const pointer into gstage_modes[]. This allows referencing both the mode
> identifier and the mode name after init without copying the descriptor.
> Remove get_max_supported_mode(); its callers now dereference
> max_gstage_mode->mode directly.
> 
> Change struct p2m_domain::mode from an embedded gstage_mode_desc to a
> const pointer into gstage_modes[], so each domain shares the descriptor
> rather than carrying its own copy.
> 
> Adjust the gstage_modes[] entries in three ways:
>  - Use lowercase names without the "x4" suffix (e.g. "sv39" instead of
>    "Sv39x4"). The DT mmu-type binding [1] does not include the suffix,
>    so the name can now be passed directly to the guest without
>    transformation. The suffix is appended only in the diagnostic
>    printk, where it remains informative.
>  - Use "none" for Bare mode (HGATP_MODE_OFF) to match the DT binding.
>  - Change paging_levels to represent the root page-table level index
>    (i.e. total paging levels minus one) rather than the total count.
>    P2M_ROOT_LEVEL() now returns the correct VPN index directly, without
>    requiring callers to subtract one or use hardcoded offsets.
> 
> Add gstage_mode to xen_arch_domainconfig so the toolstack can
> request a specific G-stage mode at domain creation time. Introduce
> find_gstage_mode() to resolve a mode descriptor by HGATP_MODE_*,
> capping the result at max_gstage_mode to prevent requesting a mode
> the hardware does not support. Update p2m_init() to accept a
> xen_domctl_createdomain pointer and call find_gstage_mode()
> instead of hardcoding Sv39x4.
> 
> Add arch_parse_dom0less_node() in a new dom0less-build.c to read the
> "mmu-type" DT property from a guest domain node and store it in
> boot_domain::create_cfg.arch.gstage_mode, falling back to maximum
> supported mode when the property is absent.
> 
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/riscv/cpus.yaml?h=v6.19-rc3#n82
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Mon May 18 15:22:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 15:22:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312030.1582202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOznp-0002Ts-Fb; Mon, 18 May 2026 15:22:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312030.1582202; Mon, 18 May 2026 15:22:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOznp-0002Tk-BC; Mon, 18 May 2026 15:22:45 +0000
Received: by outflank-mailman (input) for mailman id 1312030;
 Mon, 18 May 2026 15:22:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3bae951e000f373@swg.vates.tech>)
 id 1wOznn-0002SL-SU
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:22:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOznn-00AUfW-8R
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:22:43 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3bae951e000f373@swg.vates.tech>)
 id 6a0b2eb3-2eae-0a2a0a5409dd-0a2a4509b9ec-48
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:22:43 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3bae951e000f373@swg.vates.tech>)
 id 6a0b2ec2-2497-0a2a45090019-b9ff1c229311-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:22:42 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e3bae951e000f373.006 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 18 May 2026 15:22:37 +0000
Received: from localhost.localdomain (88-175-170-134.subs.proxad.net
 [88.175.170.134]) (Authenticated sender: teddy.astie@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 0AC5F8661A;
 Mon, 18 May 2026 17:22:37 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=eY2fdw+gmvQcsbHIwQEVTX0BWf+Umr3H4vi3FSP+vPs=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:feedback-id;
 b=mrZSNL15/2otbQ+Cc7U2CURUdyavKWBFjvCttg6Yy9el0TJGzG15c8jgzq4DIY4+pIXqMamHp
 CPAIPzNqxtdAuc1b+XY/5Xr5Zpk2HPEXJaPSS49p0oFhdDAAFRCOQOQiXjPeopC21u1vRsYNGKa
 HtMBYfR2OZzPCy9Q/PtiRNLoT1CjVpKDZFcn0XVYOXJLAjFvhdlnGNltHRlacEflTWZCAf9DMAl
 FDvu9mUD5Eag5Oqh5FI6RttRWaD8yOt6Tc88RpCXKpvPXrtFC6pq1jEhXnXK552wl+PLsik8g9K
 c+Zbn/4Pd6Cg6dH8/XCnEWFRPKJ4fn+eL9rO8AivMaGw==
X-Zone-Loop: f7968938d8e7a305757c45ce51c9015bfb0ad428f836
x-campaign-type: default
x-transaction-id: 7dda9839-6225-433d-a97f-942a0b3ee0e7
x-swg-uid: 01-cd6c7802-fc5a-42ff-be83-ccce10616db6
X-Mailer: Sweego
Message-ID:
 <1779117757.8631fc262581453bbf619ec5b2062170.19e3bae951e000f373@vates.tech>
x-swg-bid: 1779117757.8631fc262581453bbf619ec5b2062170.19e3bae951e000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Teddy Astie <teddy.astie@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Teddy Astie <teddy.astie@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH 0/5] Small PCI refactoring
Date: Mon, 18 May 2026 17:21:24 +0200
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.e0f.e56d5032f9a0f31f.19e3bae9324.438d1bb93da6ab6f=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779117757225
X-purgate-ID: tlsNG-bad1c0/1779117763-89D85A53-CA40CAD9/0/0
X-purgate-type: clean
X-purgate-size: 4492

---=Part.e0f.e56d5032f9a0f31f.19e3bae9324.438d1bb93da6ab6f=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The goal of this series is to make some refactoring of some
pci primitives to improve codegen and make code less verbose=2E

A big chunk of it is converting many places where (seg, bus, dev, fn)
is split into multiples variables and convert it into being just
pci_sbdf_t, in particular in some PCI function parameters to reduce
parameter count which usually translate into less registers to pass
to the function=2E Moreover, we also avoid translating back and forth
between pci_sbdf_t and individual (seg, bus, dev, fn)=2E

Latest patch attempts to improve codegen of pci_conf_{read,write}N()
by making them inline specialized variants of pci_mmcfg_{read,write}()
in order to eliminate a particular `switch (len)` at compile time=2E

No intended functional change, aside some parts of the codebase that will
now correctly handle PCI segment when parsed while it was previously
ignored (e=2Eg dbgp)=2E

Bloat-o-meter is pretty telling

add/remove: 4/2 grow/shrink: 11/14 up/down: 529/-1470 (-941)
Function                                     old     new   delta
pci_mmcfg_base                                 -     106    +106
parse_pci_sbdf_seg                             -      88     +88
parse_pci_sbdf                                 -      85     +85
pci_dev_base                                   -      56     +56
pci_conf_read16                               92     118     +26
pci_conf_read8                                92     117     +25
ehci_dbgp_init                               629     652     +23
pci_conf_read32                               94     116     +22
pci_conf_write32                              88     109     +21
symbols_names                             106435  106452     +17
symbols_sorted_offsets                     59672   59688     +16
pci_conf_write16                              94     109     +15
pci_conf_write8                               94     108     +14
reserve_unity_map_for_device                 434     445     +11
symbols_offsets                            31920   31924      +4
mmcfg_intercept_write                        194     193      -1
add_one_user_rmrr                            653     644      -9
__find_dbgp                                   87      60     -27
pci_device_detect                             89      55     -34
pci_mmcfg_write                              197     152     -45
_scan_pci_devices                            286     241     -45
parse_ivrs_ioapic                            292     235     -57
parse_rmrr_param                             484     420     -64
register_one_rmrr                            389     324     -65
parse_ivrs_hpet                              249     184     -65
parse_ivmd_param                             651     570     -81
acpi_parse_dmar                             2625    2520    -105
get_virt                                     106       -    -106
pci_mmcfg_read                               189       -    -189
ns16550_init                                3205    3002    -203
acpi_parse_dev_scope                        1465    1091    -374

Teddy Astie (5):
  pci: Introduce parse_pci_sbdf{_seg}()
  vtd: Use pci_sbdf_t in acpi_parse_dev_scope()
  pci: Use pci_sbdf_t in pci_device_detect()
  pci: Parse into pci_sbdf_t directly
  RFC: pci: Migrate pci_mmcfg_{read,write}() to pci=2Ec

 xen/arch/x86/pv/ro-page-fault=2Ec          |   3 +-
 xen/arch/x86/x86_64/mmconfig=2Eh           |  43 --------
 xen/arch/x86/x86_64/mmconfig_64=2Ec        | 106 ++++----------------
 xen/arch/x86/x86_64/pci=2Ec                | 122 +++++++++++++++++++++--
 xen/drivers/char/ehci-dbgp=2Ec             |  35 +++----
 xen/drivers/char/ns16550=2Ec               |  24 ++---
 xen/drivers/char/xhci-dbc=2Ec              |   6 +-
 xen/drivers/passthrough/amd/iommu_acpi=2Ec |  26 ++---
 xen/drivers/passthrough/pci=2Ec            |  16 +--
 xen/drivers/passthrough/vtd/dmar=2Ec       |  80 ++++++---------
 xen/drivers/pci/pci=2Ec                    |  18 ++++
 xen/include/xen/pci=2Eh                    |  11 +-
 12 files changed, 243 insertions(+), 247 deletions(-)

--=20
2=2E52=2E0



-- 
 | Vates 

XCP-ng & Xen Orchestra - Vates solutions

web: https://vate=
s=2Etech
---=Part.e0f.e56d5032f9a0f31f.19e3bae9324.438d1bb93da6ab6f=---


From xen-devel-bounces@lists.xenproject.org Mon May 18 15:22:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 15:22:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312032.1582210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOznq-0002hG-KU; Mon, 18 May 2026 15:22:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312032.1582210; Mon, 18 May 2026 15:22:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOznq-0002h9-I0; Mon, 18 May 2026 15:22:46 +0000
Received: by outflank-mailman (input) for mailman id 1312032;
 Mon, 18 May 2026 15:22:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3bae9f48000f373@swg.vates.tech>)
 id 1wOznp-0002Td-4j
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:22:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOzno-00AUfW-Gz
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:22:44 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3bae9f48000f373@swg.vates.tech>)
 id 6a0b2ec3-2eae-0a2a0a5409dd-0a2a4509caf4-2
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:22:44 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3bae9f48000f373@swg.vates.tech>)
 id 6a0b2ec2-2497-0a2a45090019-b9ff1c229311-4
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:22:44 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e3bae9f48000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 18 May 2026 15:22:40 +0000
Received: from localhost.localdomain (88-175-170-134.subs.proxad.net
 [88.175.170.134]) (Authenticated sender: teddy.astie@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id BECCD8661A;
 Mon, 18 May 2026 17:22:39 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=/FyGreLLDZbEabwd7OqmbT4bWYZZf0VxeD6lPMrr1B8=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=BcCKEOtgVULL7qi/AO3T2kLuaIgj7GC3S6lEi4utsDyCIvqU8RbPh9shJYqfAmPd7PXwjCusW
 KIh+xjrGfScYZsQHUCn1PsgcQ00GMEcHfSQkXewV4cX0Nr+5YmYvuNnck9zkfsVUFozG5C2IF2E
 ihnj/WQnbZkAJ3F7Pt2sBygPvAyU2HMDxv7GQPOqVoJCjHu520cKSsvwYaZecCOWz2S0a4K9b6P
 s6L9hlB6WYaqaIek0u6aWOsHaj+gl+HqTqab0n3YT/jpdm4PHZOHQiYclGIb2PwAVTRN8lwuqi5
 hjwf6s7jslQECFwqwIHHU5hMHvhUprXlNYxVjVqeoA/w==
X-Zone-Loop: 66fe1ffa5720ae89efd99be211315247d6591409955f
x-campaign-type: default
x-transaction-id: 9b0951a2-0cc3-4bec-b8a0-4789a48a5dda
x-swg-uid: 01-bf7e5f9c-3c26-43c3-8d3b-2eed900cc024
X-Mailer: Sweego
Message-ID:
 <1779117760.8631fc262581453bbf619ec5b2062170.19e3bae9f48000f373@vates.tech>
x-swg-bid: 1779117760.8631fc262581453bbf619ec5b2062170.19e3bae9f48000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Teddy Astie <teddy.astie@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Teddy Astie <teddy.astie@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 1/5] pci: Introduce parse_pci_sbdf{_seg}()
Date: Mon, 18 May 2026 17:21:25 +0200
In-Reply-To: <cover.1779116255.git.teddy.astie@vates.tech>
References: <cover.1779116255.git.teddy.astie@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.e10.d9fc5c64d1b2dcab.19e3bae9dc2.30edf48ed9c9f35b=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779117759939
X-purgate-ID: tlsNG-bad1c0/1779117764-43B78A53-5C9ECE71/0/0
X-purgate-type: clean
X-purgate-size: 2325

---=Part.e10.d9fc5c64d1b2dcab.19e3bae9dc2.30edf48ed9c9f35b=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

In many places, we're parsing a PCI string into individual parts
(seg, bus, dev, fn) and then transform it into a pci_sbdf_t using PCI_SBDF
macro=2E Rather than converting from parts to pci_sbdf_t and vice versa,
introduce a new function that parses a PCI string into a pci_sbdf_t struct=
ure
directly=2E

Signed-off-by: Teddy Astie <teddy=2Eastie@vates=2Etech>
---
 xen/drivers/pci/pci=2Ec | 18 ++++++++++++++++++
 xen/include/xen/pci=2Eh |  3 +++
 2 files changed, 21 insertions(+)

diff --git a/xen/drivers/pci/pci=2Ec b/xen/drivers/pci/pci=2Ec
index 084be3880c=2E=2E1d06cb035b 100644
--- a/xen/drivers/pci/pci=2Ec
+++ b/xen/drivers/pci/pci=2Ec
@@ -202,3 +202,21 @@ const char *__init parse_pci_seg(const char *s, unsig=
ned int *seg_p,
=20
     return s;
 }
+
+const char *parse_pci_sbdf(const char *s, pci_sbdf_t *sbdf)
+{
+    unsigned int seg, bus, dev, func;
+    const char *out =3D parse_pci(s, &seg, &bus, &dev, &func);
+
+    *sbdf =3D PCI_SBDF(seg, bus, dev, func);
+    return out;
+}
+
+const char *parse_pci_sbdf_seg(const char *s, pci_sbdf_t *sbdf, bool *def=
_seg)
+{
+    unsigned int seg, bus, dev, func;
+    const char *out =3D parse_pci_seg(s, &seg, &bus, &dev, &func, def_seg=
);
+
+    *sbdf =3D PCI_SBDF(seg, bus, dev, func);
+    return out;
+}
diff --git a/xen/include/xen/pci=2Eh b/xen/include/xen/pci=2Eh
index afb6bbf50d=2E=2E7bfc59cd75 100644
--- a/xen/include/xen/pci=2Eh
+++ b/xen/include/xen/pci=2Eh
@@ -280,6 +280,9 @@ const char *parse_pci_seg(const char *s, unsigned int =
*seg_p,
                           unsigned int *bus_p, unsigned int *dev_p,
                           unsigned int *func_p, bool *def_seg);
=20
+const char *parse_pci_sbdf(const char *s, pci_sbdf_t *sbdf);
+const char *parse_pci_sbdf_seg(const char *s, pci_sbdf_t *sbdf, bool *def=
_seg);
+
 #define PCI_BAR_VF      (1u << 0)
 #define PCI_BAR_LAST    (1u << 1)
 #define PCI_BAR_ROM     (1u << 2)
--=20
2=2E52=2E0



-- 
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates s=
olutions

web: https://vates=2Etech
---=Part.e10.d9fc5c64d1b2dcab.19e3bae9dc2.30edf48ed9c9f35b=---


From xen-devel-bounces@lists.xenproject.org Mon May 18 15:22:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 15:22:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312033.1582218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzns-0002x9-Qv; Mon, 18 May 2026 15:22:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312033.1582218; Mon, 18 May 2026 15:22:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzns-0002x2-OC; Mon, 18 May 2026 15:22:48 +0000
Received: by outflank-mailman (input) for mailman id 1312033;
 Mon, 18 May 2026 15:22:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3baea399000f373@swg.vates.tech>)
 id 1wOznq-0002k2-VT
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:22:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOznq-00AUfW-BZ
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:22:46 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3baea399000f373@swg.vates.tech>)
 id 6a0b2ec3-2eae-0a2a0a5409dd-0a2a4509caf4-10
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:22:46 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3baea399000f373@swg.vates.tech>)
 id 6a0b2ec2-2497-0a2a45090019-b9ff1c229311-5
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:22:46 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e3baea399000f373.003 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 18 May 2026 15:22:41 +0000
Received: from localhost.localdomain (88-175-170-134.subs.proxad.net
 [88.175.170.134]) (Authenticated sender: teddy.astie@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id EA8E58109B;
 Mon, 18 May 2026 17:22:40 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=DMsS6OuWI2swmoCfXAUejCXwpwezHtuCMEyc4nCO7IY=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=F5vXHc9KMtWQnCfn3MmykSbPQQKZKXatP6jKygnpcbW8+R50HhMvU+qDGpILcU9m+PhSMzNkm
 HQnK4naQzhDPf5U353YSPLdaj+rQFKHBHyQT3ACUYXTSfraDj5ZNv2VS+FH+Qy0wp65TPmM9njJ
 9NTYD/inXqKe9DCIe5udF5ALxlMcI7s1sdo9EdslNVGGpOjyCthROciJnujK1G4k3Yt30B6yexl
 F6C36ce07g+quo1GzFLzRhfj/B6L3wyNphPZSY1cilV7rYUGzsxyvGbSx8Wtaegbvy5tVPCINJn
 0tNMvkoGIrwkDJCgbkEILcBjU4B+uaL90XE1b2p3hjwQ==
X-Zone-Loop: ff5ee602e1ae896fa8d348c55ce55d8e79f12edab487
x-campaign-type: default
x-transaction-id: 0bc51ccf-2099-41c9-a0df-6316906fcf66
x-swg-uid: 01-ea55e85e-ab1e-4dc9-8b5b-38b35974fd4b
X-Mailer: Sweego
Message-ID:
 <1779117761.8631fc262581453bbf619ec5b2062170.19e3baea399000f373@vates.tech>
x-swg-bid: 1779117761.8631fc262581453bbf619ec5b2062170.19e3baea399000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Teddy Astie <teddy.astie@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Teddy Astie <teddy.astie@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 2/5] vtd: Use pci_sbdf_t in acpi_parse_dev_scope()
Date: Mon, 18 May 2026 17:21:26 +0200
In-Reply-To: <cover.1779116255.git.teddy.astie@vates.tech>
References: <cover.1779116255.git.teddy.astie@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.e11.3c2322387242062c.19e3baea229.9e26cb71c0c8c4a4=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779117761065
X-purgate-ID: tlsNG-bad1c0/1779117766-40762A53-2671C2FB/0/0
X-purgate-type: clean
X-purgate-size: 6252

---=Part.e11.3c2322387242062c.19e3baea229.9e26cb71c0c8c4a4=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Use a dedicated pci_sbdf_t struct that we update instead of recreating
one each time we need it=2E

Signed-off-by: Teddy Astie <teddy=2Eastie@vates=2Etech>
---
 xen/drivers/passthrough/vtd/dmar=2Ec | 42 ++++++++++++------------------
 1 file changed, 16 insertions(+), 26 deletions(-)

diff --git a/xen/drivers/passthrough/vtd/dmar=2Ec b/xen/drivers/passthroug=
h/vtd/dmar=2Ec
index 2a756831a6=2E=2Ec36f4bbd7b 100644
--- a/xen/drivers/passthrough/vtd/dmar=2Ec
+++ b/xen/drivers/passthrough/vtd/dmar=2Ec
@@ -310,7 +310,7 @@ static int __init acpi_parse_dev_scope(
 {
     struct acpi_ioapic_unit *acpi_ioapic_unit;
     const struct acpi_dmar_device_scope *acpi_scope;
-    u16 bus, sub_bus, sec_bus;
+    u16 sub_bus, sec_bus;
     const struct acpi_dmar_pci_path *path;
     struct acpi_drhd_unit *drhd =3D type =3D=3D DMAR_TYPE ?
         container_of(scope, struct acpi_drhd_unit, scope) : NULL;
@@ -332,29 +332,26 @@ static int __init acpi_parse_dev_scope(
=20
     while ( start < end )
     {
+        pci_sbdf_t dev_sbdf;
         acpi_scope =3D start;
         path =3D (const void *)(acpi_scope + 1);
         depth =3D (acpi_scope->length - sizeof(*acpi_scope)) / sizeof(*pa=
th);
-        bus =3D acpi_scope->bus;
+        dev_sbdf =3D PCI_SBDF(seg, acpi_scope->bus, path->dev, path->fn);
=20
         while ( --depth > 0 )
         {
-            bus =3D pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path->fn=
),
-                                 PCI_SECONDARY_BUS);
+            dev_sbdf=2Ebus =3D pci_conf_read8(dev_sbdf, PCI_SECONDARY_BUS=
);
             path++;
         }
=20
         switch ( acpi_scope->entry_type )
         {
         case ACPI_DMAR_SCOPE_TYPE_BRIDGE:
-            sec_bus =3D pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path=
->fn),
-                                     PCI_SECONDARY_BUS);
-            sub_bus =3D pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path=
->fn),
-                                     PCI_SUBORDINATE_BUS);
+            sec_bus =3D pci_conf_read8(dev_sbdf, PCI_SECONDARY_BUS);
+            sub_bus =3D pci_conf_read8(dev_sbdf, PCI_SUBORDINATE_BUS);
             if ( iommu_verbose )
                 printk(VTDPREFIX " bridge: %pp start=3D%x sec=3D%x sub=3D=
%x\n",
-                       &PCI_SBDF(seg, bus, path->dev, path->fn),
-                       acpi_scope->bus, sec_bus, sub_bus);
+                       &dev_sbdf, acpi_scope->bus, sec_bus, sub_bus);
=20
             dmar_scope_add_buses(scope, sec_bus, sub_bus);
             gfx_only =3D false;
@@ -362,8 +359,7 @@ static int __init acpi_parse_dev_scope(
=20
         case ACPI_DMAR_SCOPE_TYPE_HPET:
             if ( iommu_verbose )
-                printk(VTDPREFIX " MSI HPET: %pp\n",
-                       &PCI_SBDF(seg, bus, path->dev, path->fn));
+                printk(VTDPREFIX " MSI HPET: %pp\n", &dev_sbdf);
=20
             if ( drhd )
             {
@@ -374,9 +370,7 @@ static int __init acpi_parse_dev_scope(
                 if ( !acpi_hpet_unit )
                     goto out;
                 acpi_hpet_unit->id =3D acpi_scope->enumeration_id;
-                acpi_hpet_unit->bus =3D bus;
-                acpi_hpet_unit->dev =3D path->dev;
-                acpi_hpet_unit->func =3D path->fn;
+                acpi_hpet_unit->bdf =3D dev_sbdf=2Ebdf;
                 list_add(&acpi_hpet_unit->list, &drhd->hpet_list);
=20
                 gfx_only =3D false;
@@ -386,16 +380,15 @@ static int __init acpi_parse_dev_scope(
=20
         case ACPI_DMAR_SCOPE_TYPE_ENDPOINT:
             if ( iommu_verbose )
-                printk(VTDPREFIX " endpoint: %pp\n",
-                       &PCI_SBDF(seg, bus, path->dev, path->fn));
+                printk(VTDPREFIX " endpoint: %pp\n", &dev_sbdf);
=20
-            if ( drhd && pci_device_detect(seg, bus, path->dev, path->fn)=
 )
+            if ( drhd && pci_device_detect(seg, dev_sbdf=2Ebus, dev_sbdf=
=2Edev, dev_sbdf=2Efn) )
             {
-                if ( pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path->f=
n),
+                if ( pci_conf_read8(dev_sbdf,
                                     PCI_CLASS_DEVICE + 1) !=3D 0x03
                                     /* PCI_BASE_CLASS_DISPLAY */ )
                     gfx_only =3D false;
-                else if ( !seg && !bus && path->dev =3D=3D 2 && !path->fn=
 )
+                else if ( !seg && !dev_sbdf=2Ebus && path->dev =3D=3D 2 &=
& !path->fn )
                     igd_drhd_address =3D drhd->address;
             }
=20
@@ -403,8 +396,7 @@ static int __init acpi_parse_dev_scope(
=20
         case ACPI_DMAR_SCOPE_TYPE_IOAPIC:
             if ( iommu_verbose )
-                printk(VTDPREFIX " IOAPIC: %pp\n",
-                       &PCI_SBDF(seg, bus, path->dev, path->fn));
+                printk(VTDPREFIX " IOAPIC: %pp\n", &dev_sbdf);
=20
             if ( drhd )
             {
@@ -413,9 +405,7 @@ static int __init acpi_parse_dev_scope(
                 if ( !acpi_ioapic_unit )
                     goto out;
                 acpi_ioapic_unit->apic_id =3D acpi_scope->enumeration_id;
-                acpi_ioapic_unit->ioapic=2Ebdf=2Ebus =3D bus;
-                acpi_ioapic_unit->ioapic=2Ebdf=2Edev =3D path->dev;
-                acpi_ioapic_unit->ioapic=2Ebdf=2Efunc =3D path->fn;
+                acpi_ioapic_unit->ioapic=2Einfo =3D dev_sbdf=2Ebdf;
                 list_add(&acpi_ioapic_unit->list, &drhd->ioapic_list);
=20
                 gfx_only =3D false;
@@ -431,7 +421,7 @@ static int __init acpi_parse_dev_scope(
             gfx_only =3D false;
             continue;
         }
-        scope->devices[didx++] =3D PCI_BDF(bus, path->dev, path->fn);
+        scope->devices[didx++] =3D dev_sbdf=2Ebdf;
         start +=3D acpi_scope->length;
     }
=20
--=20
2=2E52=2E0



-- 
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates s=
olutions

web: https://vates=2Etech
---=Part.e11.3c2322387242062c.19e3baea229.9e26cb71c0c8c4a4=---


From xen-devel-bounces@lists.xenproject.org Mon May 18 15:22:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 15:22:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312034.1582228 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOznv-0003DF-84; Mon, 18 May 2026 15:22:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312034.1582228; Mon, 18 May 2026 15:22:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOznv-0003D3-4N; Mon, 18 May 2026 15:22:51 +0000
Received: by outflank-mailman (input) for mailman id 1312034;
 Mon, 18 May 2026 15:22:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3baea7d1000f373@swg.vates.tech>)
 id 1wOznu-0003BM-3p
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:22:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOznt-00AUfW-G9
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:22:49 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3baea7d1000f373@swg.vates.tech>)
 id 6a0b2ec3-2eae-0a2a0a5409dd-0a2a4509caf4-16
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:22:49 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3baea7d1000f373@swg.vates.tech>)
 id 6a0b2ec2-2497-0a2a45090019-b9ff1c229311-6
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:22:49 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e3baea7d1000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 18 May 2026 15:22:42 +0000
Received: from localhost.localdomain (88-175-170-134.subs.proxad.net
 [88.175.170.134]) (Authenticated sender: teddy.astie@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id EF3F98109B;
 Mon, 18 May 2026 17:22:41 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=O6ocY0J81NVJcReSQBFthd8sYgfa3BLGnk02uzct2iw=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=ZrZPJ3s/fleYX/xAysYJ6HoF8iTG+nxLxXGyBOyWze9EpmaheIRgzg7xUVJcAT7XpNRe7/Pvj
 nPqkPggKwizR6iCYMTUDzHaoWj9G8a4fGQx0U6Hzib+wWfiW6YhjRipYIzHaDUW6RpFl+SlE8EK
 cFqJciEuoyRIyo7AjMyOj3+7TjjvueZ7Og9t6kAawQjo+zZv9OeGQKHd4JNBP8FazAyKZiUQM+l
 0xTTl2bD6DVC3gFsdZLYqnkg7OMcPUD107ITIFkpgJirbPbP3lZ2ywfjZbx/vdD1vc5vymA4Lhj
 OPUEtYTXexGhN67R2ybkLpRKeU7tXgKj55l0X8p0gC2Q==
X-Zone-Loop: 2c2c7f5aebc096ebbb0e05f1a44c4488354743e3b1d5
x-campaign-type: default
x-transaction-id: 8e04ef81-ca38-477e-a597-392152684044
x-swg-uid: 01-acdefb6b-ad92-4dfd-a095-c0c107a09548
X-Mailer: Sweego
Message-ID:
 <1779117762.8631fc262581453bbf619ec5b2062170.19e3baea7d1000f373@vates.tech>
x-swg-bid: 1779117762.8631fc262581453bbf619ec5b2062170.19e3baea7d1000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Teddy Astie <teddy.astie@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Teddy Astie <teddy.astie@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 3/5] pci: Use pci_sbdf_t in pci_device_detect()
Date: Mon, 18 May 2026 17:21:27 +0200
In-Reply-To: <cover.1779116255.git.teddy.astie@vates.tech>
References: <cover.1779116255.git.teddy.astie@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.e12.78b7f5f2db119c52.19e3baea65b.9c8c7b9182c5f9=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779117762139
X-purgate-ID: tlsNG-bad1c0/1779117769-4015DA53-E145900E/0/0
X-purgate-type: clean
X-purgate-size: 10736

---=Part.e12.78b7f5f2db119c52.19e3baea65b.9c8c7b9182c5f9=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Use a single pci_sbdf_t instead of each of its part as individual parameter=
s=2E

Signed-off-by: Teddy Astie <teddy=2Eastie@vates=2Etech>
---
 xen/drivers/char/ehci-dbgp=2Ec       | 35 ++++++++++++++----------------
 xen/drivers/passthrough/pci=2Ec      | 16 +++++++-------
 xen/drivers/passthrough/vtd/dmar=2Ec | 33 +++++++++++-----------------
 xen/include/xen/pci=2Eh              |  2 +-
 4 files changed, 38 insertions(+), 48 deletions(-)

diff --git a/xen/drivers/char/ehci-dbgp=2Ec b/xen/drivers/char/ehci-dbgp=
=2Ec
index a5c79f56fc=2E=2E39a047eb3f 100644
--- a/xen/drivers/char/ehci-dbgp=2Ec
+++ b/xen/drivers/char/ehci-dbgp=2Ec
@@ -681,16 +681,14 @@ static int dbgp_control_msg(struct ehci_dbgp *dbgp, =
unsigned int devnum,
     return ret;
 }
=20
-static unsigned int __init __find_dbgp(u8 bus, u8 slot, u8 func)
+static unsigned int __init __find_dbgp(pci_sbdf_t sbdf)
 {
-    uint32_t class =3D pci_conf_read32(PCI_SBDF(0, bus, slot, func),
-                                     PCI_CLASS_REVISION);
+    uint32_t class =3D pci_conf_read32(sbdf, PCI_CLASS_REVISION);
=20
     if ( (class >> 8) !=3D PCI_CLASS_SERIAL_USB_EHCI )
         return 0;
=20
-    return pci_find_cap_offset(PCI_SBDF(0, bus, slot, func),
-                               PCI_CAP_ID_EHCI_DEBUG);
+    return pci_find_cap_offset(sbdf, PCI_CAP_ID_EHCI_DEBUG);
 }
=20
 static unsigned int __init find_dbgp(struct ehci_dbgp *dbgp,
@@ -704,20 +702,20 @@ static unsigned int __init find_dbgp(struct ehci_dbg=
p *dbgp,
         {
             for ( func =3D 0; func < 8; func++ )
             {
+                pci_sbdf_t sbdf =3D PCI_SBDF(0, bus, slot, func);
                 unsigned int cap;
=20
-                if ( !pci_device_detect(0, bus, slot, func) )
+                if ( !pci_device_detect(sbdf) )
                 {
                     if ( !func )
                         break;
                     continue;
                 }
=20
-                cap =3D __find_dbgp(bus, slot, func);
+                cap =3D __find_dbgp(sbdf);
                 if ( !cap || ehci_num-- )
                 {
-                    if ( !func && !(pci_conf_read8(PCI_SBDF(0, bus, slot,=
 func),
-                                                   PCI_HEADER_TYPE) & 0x8=
0) )
+                    if ( !func && !(pci_conf_read8(sbdf, PCI_HEADER_TYPE)=
 & 0x80) )
                         break;
                     continue;
                 }
@@ -1510,25 +1508,24 @@ void __init ehci_dbgp_init(void)
     }
     else if ( strncmp(opt_dbgp + 4, "@pci", 4) =3D=3D 0 )
     {
-        unsigned int bus, slot, func;
-
-        e =3D parse_pci(opt_dbgp + 8, NULL, &bus, &slot, &func);
+        pci_sbdf_t sbdf =3D PCI_SBDF(0, 0, 0, 0);
+       =20
+        e =3D parse_pci_sbdf(opt_dbgp + 8, &sbdf);
         if ( !e || *e )
             return;
=20
-        dbgp->bus =3D bus;
-        dbgp->slot =3D slot;
-        dbgp->func =3D func;
+        dbgp->bus =3D sbdf=2Ebus;
+        dbgp->slot =3D sbdf=2Edev;
+        dbgp->func =3D sbdf=2Efn;
=20
-        if ( !pci_device_detect(0, bus, slot, func) )
+        if ( !pci_device_detect(sbdf) )
             return;
=20
-        dbgp->cap =3D __find_dbgp(bus, slot, func);
+        dbgp->cap =3D __find_dbgp(sbdf);
         if ( !dbgp->cap )
             return;
=20
-        dbgp_printk("Using EHCI debug port on %02x:%02x=2E%u\n",
-                    bus, slot, func);
+        dbgp_printk("Using EHCI debug port on %pp\n", &sbdf);
     }
     else
         return;
diff --git a/xen/drivers/passthrough/pci=2Ec b/xen/drivers/passthrough/pci=
=2Ec
index 464bb0fee4=2E=2E7b2898bd5a 100644
--- a/xen/drivers/passthrough/pci=2Ec
+++ b/xen/drivers/passthrough/pci=2Ec
@@ -1166,11 +1166,11 @@ out:
     return ret;
 }
=20
-bool __init pci_device_detect(u16 seg, u8 bus, u8 dev, u8 func)
+bool __init pci_device_detect(pci_sbdf_t sbdf)
 {
     u32 vendor;
=20
-    vendor =3D pci_conf_read32(PCI_SBDF(seg, bus, dev, func), PCI_VENDOR_=
ID);
+    vendor =3D pci_conf_read32(sbdf, PCI_VENDOR_ID);
     /* some broken boards return 0 or ~0 if a slot is empty: */
     if ( (vendor =3D=3D 0xffffffffU) || (vendor =3D=3D 0x00000000U) ||
          (vendor =3D=3D 0x0000ffffU) || (vendor =3D=3D 0xffff0000U) )
@@ -1221,24 +1221,24 @@ static int __init cf_check _scan_pci_devices(struc=
t pci_seg *pseg, void *arg)
         {
             for ( func =3D 0; func < 8; func++ )
             {
-                if ( !pci_device_detect(pseg->nr, bus, dev, func) )
+                pci_sbdf_t sbdf =3D PCI_SBDF(pseg->nr, bus, dev, func);
+
+                if ( !pci_device_detect(sbdf) )
                 {
                     if ( !func )
                         break;
                     continue;
                 }
=20
-                pdev =3D alloc_pdev(pseg, bus, PCI_DEVFN(dev, func));
+                pdev =3D alloc_pdev(pseg, bus, sbdf=2Edevfn);
                 if ( !pdev )
                 {
                     printk(XENLOG_WARNING "%pp: alloc_pdev failed\n",
-                           &PCI_SBDF(pseg->nr, bus, dev, func));
+                           &sbdf);
                     return -ENOMEM;
                 }
=20
-                if ( !func && !(pci_conf_read8(PCI_SBDF(pseg->nr, bus, de=
v,
-                                                        func),
-                                               PCI_HEADER_TYPE) & 0x80) )
+                if ( !func && !(pci_conf_read8(sbdf, PCI_HEADER_TYPE) & 0=
x80) )
                     break;
             }
         }
diff --git a/xen/drivers/passthrough/vtd/dmar=2Ec b/xen/drivers/passthroug=
h/vtd/dmar=2Ec
index c36f4bbd7b=2E=2E9f9b639eba 100644
--- a/xen/drivers/passthrough/vtd/dmar=2Ec
+++ b/xen/drivers/passthrough/vtd/dmar=2Ec
@@ -382,7 +382,7 @@ static int __init acpi_parse_dev_scope(
             if ( iommu_verbose )
                 printk(VTDPREFIX " endpoint: %pp\n", &dev_sbdf);
=20
-            if ( drhd && pci_device_detect(seg, dev_sbdf=2Ebus, dev_sbdf=
=2Edev, dev_sbdf=2Efn) )
+            if ( drhd && pci_device_detect(dev_sbdf) )
             {
                 if ( pci_conf_read8(dev_sbdf,
                                     PCI_CLASS_DEVICE + 1) !=3D 0x03
@@ -505,7 +505,6 @@ acpi_parse_one_drhd(struct acpi_dmar_header *header)
         acpi_register_drhd_unit(dmaru);
     else
     {
-        u8 b, d, f;
         unsigned int i =3D 0;
         union {
             const void *raw;
@@ -519,18 +518,16 @@ acpi_parse_one_drhd(struct acpi_dmar_header *header)
         for ( p=2Eraw =3D dev_scope_start; i < dmaru->scope=2Edevices_cnt=
;
               i++, p=2Eraw +=3D p=2Escope->length )
         {
+            pci_sbdf_t sbdf =3D PCI_SBDF(drhd->segment, dmaru->scope=2Ede=
vices[i]);
+
             if ( p=2Escope->entry_type =3D=3D ACPI_DMAR_SCOPE_TYPE_IOAPIC=
 ||
                  p=2Escope->entry_type =3D=3D ACPI_DMAR_SCOPE_TYPE_HPET )
                 continue;
=20
-            b =3D PCI_BUS(dmaru->scope=2Edevices[i]);
-            d =3D PCI_SLOT(dmaru->scope=2Edevices[i]);
-            f =3D PCI_FUNC(dmaru->scope=2Edevices[i]);
-
-            if ( !pci_device_detect(drhd->segment, b, d, f) )
+            if ( !pci_device_detect(sbdf) )
                 printk(XENLOG_WARNING VTDPREFIX
                        " Non-existent device (%pp) in this DRHD's scope!\=
n",
-                       &PCI_SBDF(drhd->segment, b, d, f));
+                       &sbdf);
         }
=20
         acpi_register_drhd_unit(dmaru);
@@ -559,17 +556,14 @@ static int __init register_one_rmrr(struct acpi_rmrr=
_unit *rmrru)
=20
     for ( ; i < rmrru->scope=2Edevices_cnt; i++ )
     {
-        u8 b =3D PCI_BUS(rmrru->scope=2Edevices[i]);
-        u8 d =3D PCI_SLOT(rmrru->scope=2Edevices[i]);
-        u8 f =3D PCI_FUNC(rmrru->scope=2Edevices[i]);
+        pci_sbdf_t sbdf =3D PCI_SBDF(rmrru->segment, rmrru->scope=2Edevic=
es[i]);
=20
-        if ( pci_device_detect(rmrru->segment, b, d, f) =3D=3D 0 )
+        if ( pci_device_detect(sbdf) =3D=3D 0 )
         {
             dprintk(XENLOG_WARNING VTDPREFIX,
                     " Non-existent device (%pp) is reported"
                     " in RMRR [%"PRIx64", %"PRIx64"]'s scope!\n",
-                    &PCI_SBDF(rmrru->segment, b, d, f),
-                    rmrru->base_address, rmrru->end_address);
+                    &sbdf, rmrru->base_address, rmrru->end_address);
             ignore =3D true;
         }
         else
@@ -753,15 +747,13 @@ static int __init register_one_satc(struct acpi_satc=
_unit *satcu)
=20
     for ( ; i < satcu->scope=2Edevices_cnt; i++ )
     {
-        uint8_t b =3D PCI_BUS(satcu->scope=2Edevices[i]);
-        uint8_t d =3D PCI_SLOT(satcu->scope=2Edevices[i]);
-        uint8_t f =3D PCI_FUNC(satcu->scope=2Edevices[i]);
+        pci_sbdf_t sbdf =3D PCI_SBDF(satcu->segment, satcu->scope=2Edevic=
es[i]);
=20
-        if ( !pci_device_detect(satcu->segment, b, d, f) )
+        if ( !pci_device_detect(sbdf) )
         {
             dprintk(XENLOG_WARNING VTDPREFIX,
                     " Non-existent device (%pp) is reported in SATC scope=
!\n",
-                    &PCI_SBDF(satcu->segment, b, d, f));
+                    &sbdf);
             ignore =3D true;
         }
         else
@@ -1184,8 +1176,9 @@ int cf_check intel_iommu_get_reserved_device_memory(
 static int __init cf_check parse_rmrr_param(const char *str)
 {
     const char *s =3D str, *cur, *stmp;
-    unsigned int seg, bus, dev, func, dev_count;
+    unsigned int dev_count;
     unsigned long start, end;
+    pci_sbdf_t sbdf;
=20
     do {
         if ( nr_rmrr >=3D MAX_USER_RMRR )
diff --git a/xen/include/xen/pci=2Eh b/xen/include/xen/pci=2Eh
index 7bfc59cd75=2E=2Ed816dcad05 100644
--- a/xen/include/xen/pci=2Eh
+++ b/xen/include/xen/pci=2Eh
@@ -218,7 +218,7 @@ static always_inline bool pcidevs_trylock(void)
 #endif
=20
 bool pci_known_segment(u16 seg);
-bool pci_device_detect(u16 seg, u8 bus, u8 dev, u8 func);
+bool pci_device_detect(pci_sbdf_t sbdf);
 int scan_pci_devices(void);
 enum pdev_type pdev_type(u16 seg, u8 bus, u8 devfn);
 int find_upstream_bridge(u16 seg, u8 *bus, u8 *devfn, u8 *secbus);
--=20
2=2E52=2E0



-- 
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates s=
olutions

web: https://vates=2Etech
---=Part.e12.78b7f5f2db119c52.19e3baea65b.9c8c7b9182c5f9=---


From xen-devel-bounces@lists.xenproject.org Mon May 18 15:22:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 15:22:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312036.1582237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOznz-0003YD-FG; Mon, 18 May 2026 15:22:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312036.1582237; Mon, 18 May 2026 15:22:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOznz-0003Y4-Bt; Mon, 18 May 2026 15:22:55 +0000
Received: by outflank-mailman (input) for mailman id 1312036;
 Mon, 18 May 2026 15:22:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3baeac47000f373@swg.vates.tech>)
 id 1wOznx-0003Uv-Lg
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:22:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOznx-00AUlP-25
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:22:53 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3baeac47000f373@swg.vates.tech>)
 id 6a0b2ec3-2eae-0a2a0a5409dd-0a2a4509caf4-24
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:22:53 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3baeac47000f373@swg.vates.tech>)
 id 6a0b2ec2-2497-0a2a45090019-b9ff1c229311-7
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:22:52 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e3baeac47000f373.006 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 18 May 2026 15:22:43 +0000
Received: from localhost.localdomain (88-175-170-134.subs.proxad.net
 [88.175.170.134]) (Authenticated sender: teddy.astie@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id E8FF98109B;
 Mon, 18 May 2026 17:22:42 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=lCuB8OipHgX7QjdQDTipGB47RFvpJl4Bz4q0RfmxJBs=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=hd9rHajzEWY8wNJdy32McJlSpsmZH1RhuUBwriwGo8dXVbzUxDs+3/VrwtNxSaN63Lj8HRQjd
 QXxoLePCqjCMEJc+qXL4mEZbB60ZAweyHu5x0ZEBCfWGUvnfW1S6BswrfFO6i/2Rk91npC5HDgr
 y+HcXqw1/uW4OGkcXVdwMNHj2Qjr+ikJGKcx+NuJEuAySuMnJxoh/rkEVC8vbFzt6lfO5IbRvOi
 St/gN7WEqpl5dxjY4BhQYIAf9GOqDvuciO3/D2qn2pWaHxXlzV2lWONGkPgRNH2WD5mHntmhGEA
 +SB6y5zOUkm4nLovGyb09ZJV5bovDbSIlogrhlEGw72w==
X-Zone-Loop: 8591f7294167705024c8cd2dfe97522cd371b033b7a3
x-campaign-type: default
x-transaction-id: 834ff78e-68be-46b5-b992-e9341c612e6d
x-swg-uid: 01-57342fb2-2da4-44a0-a703-05dace5f91f6
X-Mailer: Sweego
Message-ID:
 <1779117763.8631fc262581453bbf619ec5b2062170.19e3baeac47000f373@vates.tech>
x-swg-bid: 1779117763.8631fc262581453bbf619ec5b2062170.19e3baeac47000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Teddy Astie <teddy.astie@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Teddy Astie <teddy.astie@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH 4/5] pci: Parse into pci_sbdf_t directly
Date: Mon, 18 May 2026 17:21:28 +0200
In-Reply-To: <cover.1779116255.git.teddy.astie@vates.tech>
References: <cover.1779116255.git.teddy.astie@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.e13.6ca638ed955f5b82.19e3baeaa36.1a70f84ed571b8b4=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779117763126
X-purgate-ID: tlsNG-bad1c0/1779117773-40B60A53-503FCAF6/0/0
X-purgate-type: clean
X-purgate-size: 9094

---=Part.e13.6ca638ed955f5b82.19e3baeaa36.1a70f84ed571b8b4=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Use the newly introduced parse_pci_sbdf() and parse_pci_sbdf_seg() in order
to parse into a pci_sbdf_t directly instead of reconstructing it afterward=
=2E

Signed-off-by: Teddy Astie <teddy=2Eastie@vates=2Etech>
---
 xen/drivers/char/ns16550=2Ec               | 24 +++++++++++-----------
 xen/drivers/char/xhci-dbc=2Ec              |  6 +++---
 xen/drivers/passthrough/amd/iommu_acpi=2Ec | 26 ++++++++++++------------
 xen/drivers/passthrough/vtd/dmar=2Ec       |  7 +++----
 4 files changed, 31 insertions(+), 32 deletions(-)

diff --git a/xen/drivers/char/ns16550=2Ec b/xen/drivers/char/ns16550=2Ec
index 878da27f2e=2E=2Efa2d0e5991 100644
--- a/xen/drivers/char/ns16550=2Ec
+++ b/xen/drivers/char/ns16550=2Ec
@@ -1572,22 +1572,22 @@ static bool __init parse_positional(struct ns16550=
 *uart, char **str)
 #ifdef CONFIG_HAS_PCI
     if ( *conf =3D=3D ',' && *++conf !=3D ',' )
     {
-        unsigned int b, d, f;
+        pci_sbdf_t sbdf;
=20
-        conf =3D parse_pci(conf, NULL, &b, &d, &f);
+        conf =3D parse_pci_sbdf(conf, &sbdf);
         if ( !conf )
             PARSE_ERR_RET("Bad port PCI coordinates");
-        uart->pci_device =3D PCI_SBDF(0, b, d, f);
+        uart->pci_device =3D sbdf;
         uart->ps_bdf_enable =3D true;
     }
=20
     if ( *conf =3D=3D ',' && *++conf !=3D ',' )
     {
-        unsigned int b, d, f;
+        pci_sbdf_t sbdf;
=20
-        if ( !parse_pci(conf, NULL, &b, &d, &f) )
+        if ( !parse_pci_sbdf(conf, &sbdf) )
             PARSE_ERR_RET("Bad bridge PCI coordinates");
-        uart->pci_bridge =3D PCI_SBDF(0, b, d, f);
+        uart->pci_bridge =3D sbdf;
         uart->pb_bdf_enable =3D true;
     }
 #endif
@@ -1671,22 +1671,22 @@ static bool __init parse_namevalue_pairs(char *str=
, struct ns16550 *uart)
=20
         case port_bdf:
         {
-            unsigned int b, d, f;
+            pci_sbdf_t sbdf;
=20
-            if ( !parse_pci(param_value, NULL, &b, &d, &f) )
+            if ( !parse_pci_sbdf(param_value, &sbdf) )
                 PARSE_ERR_RET("Bad port PCI coordinates\n");
-            uart->pci_device =3D PCI_SBDF(0, b, d, f);
+            uart->pci_device =3D sbdf;
             uart->ps_bdf_enable =3D true;
             break;
         }
=20
         case bridge_bdf:
         {
-            unsigned int b, d, f;
+            pci_sbdf_t sbdf;
=20
-            if ( !parse_pci(param_value, NULL, &b, &d, &f) )
+            if ( !parse_pci_sbdf(param_value, &sbdf) )
                 PARSE_ERR_RET("Bad bridge PCI coordinates\n");
-            uart->pci_bridge =3D PCI_SBDF(0, b, d, f);
+            uart->pci_bridge =3D sbdf;
             uart->pb_bdf_enable =3D true;
             break;
         }
diff --git a/xen/drivers/char/xhci-dbc=2Ec b/xen/drivers/char/xhci-dbc=2Ec
index c1ff528de6=2E=2Ec7fd554be0 100644
--- a/xen/drivers/char/xhci-dbc=2Ec
+++ b/xen/drivers/char/xhci-dbc=2Ec
@@ -1357,9 +1357,9 @@ static int __init cf_check xhci_parse_dbgp(const cha=
r *opt_dbgp)
     }
     else if ( strncmp(opt_dbgp + 4, "@pci", 4) =3D=3D 0 )
     {
-        unsigned int bus, slot, func;
+        pci_sbdf_t sbdf;
=20
-        e =3D parse_pci(opt_dbgp + 8, NULL, &bus, &slot, &func);
+        e =3D parse_pci_sbdf(opt_dbgp + 8, &sbdf);
         if ( !e || (*e && *e !=3D ',') )
         {
             printk(XENLOG_ERR
@@ -1368,7 +1368,7 @@ static int __init cf_check xhci_parse_dbgp(const cha=
r *opt_dbgp)
             return -EINVAL;
         }
=20
-        dbc->sbdf =3D PCI_SBDF(0, bus, slot, func);
+        dbc->sbdf =3D sbdf;
     }
     opt =3D e;
=20
diff --git a/xen/drivers/passthrough/amd/iommu_acpi=2Ec b/xen/drivers/pass=
through/amd/iommu_acpi=2Ec
index 39ae637959=2E=2E7b40da33ae 100644
--- a/xen/drivers/passthrough/amd/iommu_acpi=2Ec
+++ b/xen/drivers/passthrough/amd/iommu_acpi=2Ec
@@ -682,8 +682,8 @@ static int __init cf_check parse_ivrs_ioapic(const cha=
r *str)
 {
     const char *s =3D str;
     unsigned long id;
-    unsigned int seg, bus, dev, func;
     unsigned int idx;
+    pci_sbdf_t sbdf;
=20
     if ( *s !=3D '[' )
         return -EINVAL;
@@ -692,7 +692,7 @@ static int __init cf_check parse_ivrs_ioapic(const cha=
r *str)
     if ( *s !=3D ']' || *++s !=3D '=3D' )
         return -EINVAL;
=20
-    s =3D parse_pci(s + 1, &seg, &bus, &dev, &func);
+    s =3D parse_pci_sbdf(s + 1, &sbdf);
     if ( !s || *s )
         return -EINVAL;
=20
@@ -707,7 +707,7 @@ static int __init cf_check parse_ivrs_ioapic(const cha=
r *str)
         }
     }
=20
-    ioapic_sbdf[idx]=2Esbdf =3D PCI_SBDF(seg, bus, dev, func);
+    ioapic_sbdf[idx]=2Esbdf =3D sbdf;
     ioapic_sbdf[idx]=2Eid =3D id;
     ioapic_sbdf[idx]=2Ecmdline =3D true;
=20
@@ -719,7 +719,7 @@ static int __init cf_check parse_ivrs_hpet(const char =
*str)
 {
     const char *s =3D str;
     unsigned long id;
-    unsigned int seg, bus, dev, func;
+    pci_sbdf_t sbdf;
=20
     if ( *s !=3D '[' )
         return -EINVAL;
@@ -728,12 +728,12 @@ static int __init cf_check parse_ivrs_hpet(const cha=
r *str)
     if ( id !=3D (typeof(hpet_sbdf=2Eid))id || *s !=3D ']' || *++s !=3D '=
=3D' )
         return -EINVAL;
=20
-    s =3D parse_pci(s + 1, &seg, &bus, &dev, &func);
+    s =3D parse_pci_sbdf(s + 1, &sbdf);
     if ( !s || *s )
         return -EINVAL;
=20
     hpet_sbdf=2Eid =3D id;
-    hpet_sbdf=2Esbdf =3D PCI_SBDF(seg, bus, dev, func);
+    hpet_sbdf=2Esbdf =3D sbdf;
     hpet_sbdf=2Einit =3D HPET_CMDL;
=20
     return 0;
@@ -1399,13 +1399,13 @@ static int __init cf_check parse_ivmd_param(const =
char *s)
         }
=20
         do {
-            unsigned int seg, bus, dev, func;
+            pci_sbdf_t sbdf;
=20
             if ( nr_ivmd >=3D ARRAY_SIZE(user_ivmds) )
                 return -E2BIG;
=20
-            s =3D parse_pci(s + 1, &seg, &bus, &dev, &func);
-            if ( !s || seg )
+            s =3D parse_pci_sbdf(s + 1, &sbdf);
+            if ( !s || sbdf=2Eseg )
                 return -EINVAL;
=20
             user_ivmds[nr_ivmd]=2Estart_address =3D start << PAGE_SHIFT;
@@ -1413,16 +1413,16 @@ static int __init cf_check parse_ivmd_param(const =
char *s)
             user_ivmds[nr_ivmd]=2Eheader=2Eflags =3D ACPI_IVMD_UNITY |
                                                ACPI_IVMD_READ | ACPI_IVMD=
_WRITE;
             user_ivmds[nr_ivmd]=2Eheader=2Elength =3D sizeof(*user_ivmds)=
;
-            user_ivmds[nr_ivmd]=2Eheader=2Edevice_id =3D PCI_BDF(bus, dev=
, func);
+            user_ivmds[nr_ivmd]=2Eheader=2Edevice_id =3D sbdf=2Ebdf;
             user_ivmds[nr_ivmd]=2Eheader=2Etype =3D ACPI_IVRS_TYPE_MEMORY=
_ONE;
=20
             if ( *s =3D=3D '-' )
             {
-                s =3D parse_pci(s + 1, &seg, &bus, &dev, &func);
-                if ( !s || seg )
+                s =3D parse_pci_sbdf(s + 1, &sbdf);
+                if ( !s || sbdf=2Eseg )
                     return -EINVAL;
=20
-                user_ivmds[nr_ivmd]=2Eaux_data =3D PCI_BDF(bus, dev, func=
);
+                user_ivmds[nr_ivmd]=2Eaux_data =3D sbdf=2Ebdf;
                 if ( user_ivmds[nr_ivmd]=2Eaux_data <
                      user_ivmds[nr_ivmd]=2Eheader=2Edevice_id )
                     return -EINVAL;
diff --git a/xen/drivers/passthrough/vtd/dmar=2Ec b/xen/drivers/passthroug=
h/vtd/dmar=2Ec
index 9f9b639eba=2E=2Edafe1b62f6 100644
--- a/xen/drivers/passthrough/vtd/dmar=2Ec
+++ b/xen/drivers/passthrough/vtd/dmar=2Ec
@@ -1215,7 +1215,7 @@ static int __init cf_check parse_rmrr_param(const ch=
ar *str)
         do {
             bool def_seg =3D false;
=20
-            stmp =3D parse_pci_seg(s + 1, &seg, &bus, &dev, &func, &def_s=
eg);
+            stmp =3D parse_pci_sbdf_seg(s + 1, &sbdf, &def_seg);
             if ( !stmp )
                 return -EINVAL;
=20
@@ -1224,12 +1224,11 @@ static int __init cf_check parse_rmrr_param(const =
char *str)
              * Segment will be replaced with one from first device=2E
              */
             if ( user_rmrrs[nr_rmrr]=2Edev_count && def_seg )
-                seg =3D PCI_SEG(user_rmrrs[nr_rmrr]=2Esbdf[0]);
+                sbdf=2Eseg =3D PCI_SEG(user_rmrrs[nr_rmrr]=2Esbdf[0]);
=20
             /* Keep sbdf's even if they differ and later report an error=
=2E */
             dev_count =3D user_rmrrs[nr_rmrr]=2Edev_count;
-            user_rmrrs[nr_rmrr]=2Esbdf[dev_count] =3D
-               PCI_SBDF(seg, bus, dev, func)=2Esbdf;
+            user_rmrrs[nr_rmrr]=2Esbdf[dev_count] =3D sbdf=2Esbdf;
=20
             user_rmrrs[nr_rmrr]=2Edev_count++;
             s =3D stmp;
--=20
2=2E52=2E0



-- 
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates s=
olutions

web: https://vates=2Etech
---=Part.e13.6ca638ed955f5b82.19e3baeaa36.1a70f84ed571b8b4=---


From xen-devel-bounces@lists.xenproject.org Mon May 18 15:22:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 15:22:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312038.1582246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzo1-0003pd-Ot; Mon, 18 May 2026 15:22:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312038.1582246; Mon, 18 May 2026 15:22:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzo1-0003pM-LM; Mon, 18 May 2026 15:22:57 +0000
Received: by outflank-mailman (input) for mailman id 1312038;
 Mon, 18 May 2026 15:22:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3baeb295000f373@swg.vates.tech>)
 id 1wOznz-0003aM-R1
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:22:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOznz-00AUlP-70
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:22:55 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3baeb295000f373@swg.vates.tech>)
 id 6a0b2ec3-2eae-0a2a0a5409dd-0a2a4509caf4-30
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:22:55 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3baeb295000f373@swg.vates.tech>)
 id 6a0b2ec2-2497-0a2a45090019-b9ff1c229311-8
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:22:55 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e3baeb295000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 18 May 2026 15:22:45 +0000
Received: from localhost.localdomain (88-175-170-134.subs.proxad.net
 [88.175.170.134]) (Authenticated sender: teddy.astie@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id A9B3E8109B;
 Mon, 18 May 2026 17:22:44 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=FjIJ0qn6YXT/MB4DavtiFr+GFFMvwouh5zyGyQ5hzYk=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=fQkTP4aNqatXkzLmnlzYgfTSCHJRk+GW+qpb64hDtyf6yVhAhSo34c8qaVvHFqTywe1AhBq2y
 vMFYGoC1ly3m/4gOEOGA+s1nTbZG8diMzSczi5aPEPNgbQBBNGvYu0N5/t4T1WTKfOsbpS52VBb
 3zQFtMHxMCR+hnagoS/Kl/8DI/vfzF5p4079bs9qimW+nCPkvZxQ+mwhrqkDAb1pDQxCnGpHEf3
 weFLK0RHZ36ppLBAl+gFVhoUOGLyn3K02gl9hnvQN1cQlVytLcHwIiteByi8vhehtnpX98pXPhJ
 7+Z+tMETYoBOs4BtQ03qMrrCowysRdvNw0XZcX4SgVRw==
X-Zone-Loop: 991f01706a5dd5a03324978a5c43df3809a4e90e3850
x-campaign-type: default
x-transaction-id: 885ea2e3-dc9b-4a16-b479-8f55638b1b54
x-swg-uid: 01-4f558138-cff9-40f0-910f-f83b480e3e1c
X-Mailer: Sweego
Message-ID:
 <1779117765.8631fc262581453bbf619ec5b2062170.19e3baeb295000f373@vates.tech>
x-swg-bid: 1779117765.8631fc262581453bbf619ec5b2062170.19e3baeb295000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Teddy Astie <teddy.astie@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Teddy Astie <teddy.astie@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 5/5] RFC: pci: Migrate pci_mmcfg_{read,write} to pci.c
Date: Mon, 18 May 2026 17:21:29 +0200
In-Reply-To: <cover.1779116255.git.teddy.astie@vates.tech>
References: <cover.1779116255.git.teddy.astie@vates.tech>
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.e14.e5f1b60d69208c0d.19e3baeb0f7.8800be35dc06f22b=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779117764855
X-purgate-ID: tlsNG-bad1c0/1779117775-88F71A53-7813A008/0/0
X-purgate-type: clean
X-purgate-size: 16473

---=Part.e14.e5f1b60d69208c0d.19e3baeb0f7.8800be35dc06f22b=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Key parts of MMCFG access bits are in mmconfig_64=2Ec (in particular
pci_mmcfg_{read,write}()) while PCI configuration primitives (used accross=
 the
codebase) are in pci=2Ec=2E
This leads to situations where the compiler cannot optimize the `switch (l=
en)`
for MMCFG access for all pci_conf_{read,write}N(), because they are not fr=
om
the same file=2E

Move the pci_mmcfg_{read,write} in pci=2Ec and hint the compiler to inline=
 these
functions such that it's more likely that the compiler eliminates the
`switch (len)``=2E

Also take the opportunity to migrate to pci_sbdf_t to reduce the parameter=
 count
and drop many parameter domains checks=2E

On GCC 16=2E1, this leads to codegen where pci_conf_{read,write}N() doesn'=
t call
pci_mmcfg_{read,write}() anymore and directly perform the MMIO RW=2E

<pci_conf_read32>:
       55                      push   %rbp
       48 89 e5                mov    %rsp,%rbp
       53                      push   %rbx
       89 f8                   mov    %edi,%eax
       89 f3                   mov    %esi,%ebx
       c1 ef 10                shr    $0x10,%edi
       81 fe ff 00 00 00       cmp    $0xff,%esi
       77 26                   ja     ffff82d040301fab <pci_conf_read32+0x=
3a>
       85 ff                   test   %edi,%edi
       75 22                   jne    ffff82d040301fab <pci_conf_read32+0x=
3a>
       0f b7 f8                movzwl %ax,%edi
       c1 e7 08                shl    $0x8,%edi
       83 e3 fc                and    $0xfffffffc,%ebx
       09 df                   or     %ebx,%edi
       81 cf 00 00 00 80       or     $0x80000000,%edi
       ba 04 00 00 00          mov    $0x4,%edx
       be 00 00 00 00          mov    $0x0,%esi
       e8 2a 1c 03 00          call   ffff82d040333bd3 <pci_conf_read>
       eb 22                   jmp    ffff82d040301fcd <pci_conf_read32+0x=
5c>
       81 fb ff 0f 00 00       cmp    $0xfff,%ebx
       77 24                   ja     ffff82d040301fd7 <pci_conf_read32+0x=
66>
       0f b6 d0                movzbl %al,%edx
       0f b6 f4                movzbl %ah,%esi
       0f b7 ff                movzwl %di,%edi
       e8 f5 fd ff ff          call   ffff82d040301db6 <pci_dev_base>
       48 85 c0                test   %rax,%rax
       74 18                   je     ffff82d040301fde <pci_conf_read32+0x=
6d>
       89 db                   mov    %ebx,%ebx
       48 01 d8                add    %rbx,%rax
       8b 00                   mov    (%rax),%eax
       48 8b 5d f8             mov    -0x8(%rbp),%rbx
       c9                      leave
       e9 89 12 f0 ff          jmp    ffff82d040203260 <__x86_return_thunk=
>
       b8 ff ff ff ff          mov    $0xffffffff,%eax
       eb ef                   jmp    ffff82d040301fcd <pci_conf_read32+0x=
5c>
       b8 ff ff ff ff          mov    $0xffffffff,%eax
       eb e8                   jmp    ffff82d040301fcd <pci_conf_read32+0x=
5c>

Signed-off-by: Teddy Astie <teddy=2Eastie@vates=2Etech>
---
 xen/arch/x86/pv/ro-page-fault=2Ec   |   3 +-
 xen/arch/x86/x86_64/mmconfig=2Eh    |  43 -----------
 xen/arch/x86/x86_64/mmconfig_64=2Ec | 106 +++++---------------------
 xen/arch/x86/x86_64/pci=2Ec         | 122 ++++++++++++++++++++++++++++--
 xen/include/xen/pci=2Eh             |   6 +-
 5 files changed, 138 insertions(+), 142 deletions(-)

diff --git a/xen/arch/x86/pv/ro-page-fault=2Ec b/xen/arch/x86/pv/ro-page-f=
ault=2Ec
index d89306d34f=2E=2E647041560f 100644
--- a/xen/arch/x86/pv/ro-page-fault=2Ec
+++ b/xen/arch/x86/pv/ro-page-fault=2Ec
@@ -331,8 +331,7 @@ static int cf_check mmcfg_intercept_write(
     offset &=3D 0xfff;
     if ( pci_conf_write_intercept(mmio_ctxt->seg, mmio_ctxt->bdf,
                                   offset, bytes, p_data) >=3D 0 )
-        pci_mmcfg_write(mmio_ctxt->seg, PCI_BUS(mmio_ctxt->bdf),
-                        PCI_DEVFN(mmio_ctxt->bdf), offset, bytes,
+        pci_mmcfg_write(PCI_SBDF(mmio_ctxt->seg, mmio_ctxt->bdf), offset,=
 bytes,
                         *(uint32_t *)p_data);
=20
     return X86EMUL_OKAY;
diff --git a/xen/arch/x86/x86_64/mmconfig=2Eh b/xen/arch/x86/x86_64/mmconf=
ig=2Eh
index 27c0ae5cb1=2E=2Ec1786a3ceb 100644
--- a/xen/arch/x86/x86_64/mmconfig=2Eh
+++ b/xen/arch/x86/x86_64/mmconfig=2Eh
@@ -23,49 +23,6 @@
=20
 extern unsigned int pci_probe;
=20
-/*
- * AMD Fam10h CPUs are buggy, and cannot access MMIO config space
- * on their northbrige except through the * %eax register=2E As such, you=
 MUST
- * NOT use normal IOMEM accesses, you need to only use the magic mmio-con=
fig
- * accessor functions=2E
- * In fact just use pci_config_*, nothing else please=2E
- */
-static inline unsigned char mmio_config_readb(void __iomem *pos)
-{
-    u8 val;
-    asm volatile("movb (%1),%%al" : "=3Da" (val) : "r" (pos));
-    return val;
-}
-
-static inline unsigned short mmio_config_readw(void __iomem *pos)
-{
-    u16 val;
-    asm volatile("movw (%1),%%ax" : "=3Da" (val) : "r" (pos));
-    return val;
-}
-
-static inline unsigned int mmio_config_readl(void __iomem *pos)
-{
-    u32 val;
-    asm volatile("movl (%1),%%eax" : "=3Da" (val) : "r" (pos));
-    return val;
-}
-
-static inline void mmio_config_writeb(void __iomem *pos, u8 val)
-{
-    asm volatile("movb %%al,(%1)" :: "a" (val), "r" (pos) : "memory");
-}
-
-static inline void mmio_config_writew(void __iomem *pos, u16 val)
-{
-    asm volatile("movw %%ax,(%1)" :: "a" (val), "r" (pos) : "memory");
-}
-
-static inline void mmio_config_writel(void __iomem *pos, u32 val)
-{
-    asm volatile("movl %%eax,(%1)" :: "a" (val), "r" (pos) : "memory");
-}
-
 /* function prototypes */
 struct acpi_table_header;
 int cf_check acpi_parse_mcfg(struct acpi_table_header *header);
diff --git a/xen/arch/x86/x86_64/mmconfig_64=2Ec b/xen/arch/x86/x86_64/mmc=
onfig_64=2Ec
index 940cf6d747=2E=2E483dff9c2c 100644
--- a/xen/arch/x86/x86_64/mmconfig_64=2Ec
+++ b/xen/arch/x86/x86_64/mmconfig_64=2Ec
@@ -26,93 +26,6 @@ struct mmcfg_virt {
 static struct mmcfg_virt *pci_mmcfg_virt;
 static unsigned int mmcfg_pci_segment_shift;
=20
-static char __iomem *get_virt(unsigned int seg, unsigned int *bus)
-{
-    struct acpi_mcfg_allocation *cfg;
-    int cfg_num;
-
-    for (cfg_num =3D 0; cfg_num < pci_mmcfg_config_num; cfg_num++) {
-        cfg =3D pci_mmcfg_virt[cfg_num]=2Ecfg;
-        if (cfg->pci_segment =3D=3D seg &&
-            (cfg->start_bus_number <=3D *bus) &&
-            (cfg->end_bus_number >=3D *bus)) {
-            *bus -=3D cfg->start_bus_number;
-            return pci_mmcfg_virt[cfg_num]=2Evirt;
-        }
-    }
-
-    /* Fall back to type 0 */
-    return NULL;
-}
-
-static char __iomem *pci_dev_base(unsigned int seg, unsigned int bus, uns=
igned int devfn)
-{
-    char __iomem *addr;
-
-    addr =3D get_virt(seg, &bus);
-    if (!addr)
-        return NULL;
-     return addr + ((bus << 20) | (devfn << 12));
-}
-
-int pci_mmcfg_read(unsigned int seg, unsigned int bus,
-              unsigned int devfn, int reg, int len, u32 *value)
-{
-    char __iomem *addr;
-
-    /* Why do we have this when nobody checks it=2E How about a BUG()!? -=
AK */
-    if (unlikely((bus > 255) || (devfn > 255) || (reg > 4095))) {
-err:        *value =3D -1;
-        return -EINVAL;
-    }
-
-    addr =3D pci_dev_base(seg, bus, devfn);
-    if (!addr)
-        goto err;
-
-    switch (len) {
-    case 1:
-        *value =3D mmio_config_readb(addr + reg);
-        break;
-    case 2:
-        *value =3D mmio_config_readw(addr + reg);
-        break;
-    case 4:
-        *value =3D mmio_config_readl(addr + reg);
-        break;
-    }
-
-    return 0;
-}
-
-int pci_mmcfg_write(unsigned int seg, unsigned int bus,
-               unsigned int devfn, int reg, int len, u32 value)
-{
-    char __iomem *addr;
-
-    /* Why do we have this when nobody checks it=2E How about a BUG()!? -=
AK */
-    if (unlikely((bus > 255) || (devfn > 255) || (reg > 4095)))
-        return -EINVAL;
-
-    addr =3D pci_dev_base(seg, bus, devfn);
-    if (!addr)
-        return -EINVAL;
-
-    switch (len) {
-    case 1:
-        mmio_config_writeb(addr + reg, value);
-        break;
-    case 2:
-        mmio_config_writew(addr + reg, value);
-        break;
-    case 4:
-        mmio_config_writel(addr + reg, value);
-        break;
-    }
-
-    return 0;
-}
-
 static void __iomem *mcfg_ioremap(const struct acpi_mcfg_allocation *cfg,
                                   unsigned long idx, unsigned int prot)
 {
@@ -133,6 +46,25 @@ static void __iomem *mcfg_ioremap(const struct acpi_mc=
fg_allocation *cfg,
     return (void __iomem *) virt;
 }
=20
+char __iomem *pci_mmcfg_base(unsigned int seg, unsigned int *bus)
+{
+    struct acpi_mcfg_allocation *cfg;
+    int cfg_num;
+
+    for (cfg_num =3D 0; cfg_num < pci_mmcfg_config_num; cfg_num++) {
+        cfg =3D pci_mmcfg_virt[cfg_num]=2Ecfg;
+        if (cfg->pci_segment =3D=3D seg &&
+            (cfg->start_bus_number <=3D *bus) &&
+            (cfg->end_bus_number >=3D *bus)) {
+            *bus -=3D cfg->start_bus_number;
+            return pci_mmcfg_virt[cfg_num]=2Evirt;
+        }
+    }
+
+    /* Fall back to type 0 */
+    return NULL;
+}
+
 int pci_mmcfg_arch_enable(unsigned int idx)
 {
     const typeof(pci_mmcfg_config[0]) *cfg =3D pci_mmcfg_virt[idx]=2Ecfg;
diff --git a/xen/arch/x86/x86_64/pci=2Ec b/xen/arch/x86/x86_64/pci=2Ec
index 8d33429103=2E=2Ec37e3edade 100644
--- a/xen/arch/x86/x86_64/pci=2Ec
+++ b/xen/arch/x86/x86_64/pci=2Ec
@@ -11,13 +11,123 @@
 #define PCI_CONF_ADDRESS(sbdf, reg) \
     (0x80000000U | ((sbdf)=2Ebdf << 8) | ((reg) & ~3))
=20
+/*
+ * AMD Fam10h CPUs are buggy, and cannot access MMIO config space
+ * on their northbrige except through the * %eax register=2E As such, you=
 MUST
+ * NOT use normal IOMEM accesses, you need to only use the magic mmio-con=
fig
+ * accessor functions=2E
+ * In fact just use pci_config_*, nothing else please=2E
+ */
+static inline unsigned char mmio_config_readb(void __iomem *pos)
+{
+    u8 val;
+    asm volatile("movb (%1),%%al" : "=3Da" (val) : "r" (pos));
+    return val;
+}
+
+static inline unsigned short mmio_config_readw(void __iomem *pos)
+{
+    u16 val;
+    asm volatile("movw (%1),%%ax" : "=3Da" (val) : "r" (pos));
+    return val;
+}
+
+static inline unsigned int mmio_config_readl(void __iomem *pos)
+{
+    u32 val;
+    asm volatile("movl (%1),%%eax" : "=3Da" (val) : "r" (pos));
+    return val;
+}
+
+static inline void mmio_config_writeb(void __iomem *pos, u8 val)
+{
+    asm volatile("movb %%al,(%1)" :: "a" (val), "r" (pos) : "memory");
+}
+
+static inline void mmio_config_writew(void __iomem *pos, u16 val)
+{
+    asm volatile("movw %%ax,(%1)" :: "a" (val), "r" (pos) : "memory");
+}
+
+static inline void mmio_config_writel(void __iomem *pos, u32 val)
+{
+    asm volatile("movl %%eax,(%1)" :: "a" (val), "r" (pos) : "memory");
+}
+
+static char __iomem *pci_dev_base(unsigned int seg, unsigned int bus, uns=
igned int devfn)
+{
+    char __iomem *addr;
+
+    addr =3D pci_mmcfg_base(seg, &bus);
+    if (!addr)
+        return NULL;
+     return addr + ((bus << 20) | (devfn << 12));
+}
+
+static inline
+int pci_mmcfg_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int len, u=
32 *value)
+{
+    char __iomem *addr;
+
+    /* Why do we have this when nobody checks it=2E How about a BUG()!? -=
AK */
+    if (unlikely(reg > 4095)) {
+err:        *value =3D -1;
+        return -EINVAL;
+    }
+
+    addr =3D pci_dev_base(sbdf=2Eseg, sbdf=2Ebus, sbdf=2Edevfn);
+    if (!addr)
+        goto err;
+
+    switch (len) {
+    case 1:
+        *value =3D mmio_config_readb(addr + reg);
+        break;
+    case 2:
+        *value =3D mmio_config_readw(addr + reg);
+        break;
+    case 4:
+        *value =3D mmio_config_readl(addr + reg);
+        break;
+    }
+
+    return 0;
+}
+
+inline int pci_mmcfg_write(pci_sbdf_t sbdf, unsigned int reg, unsigned in=
t len, u32 value)
+{
+    char __iomem *addr;
+
+    /* Why do we have this when nobody checks it=2E How about a BUG()!? -=
AK */
+    if (unlikely(reg > 4095))
+        return -EINVAL;
+
+    addr =3D pci_dev_base(sbdf=2Eseg, sbdf=2Ebus, sbdf=2Edevfn);
+    if (!addr)
+        return -EINVAL;
+
+    switch (len) {
+    case 1:
+        mmio_config_writeb(addr + reg, value);
+        break;
+    case 2:
+        mmio_config_writew(addr + reg, value);
+        break;
+    case 4:
+        mmio_config_writel(addr + reg, value);
+        break;
+    }
+
+    return 0;
+}
+
 uint8_t pci_conf_read8(pci_sbdf_t sbdf, unsigned int reg)
 {
     uint32_t value;
=20
     if ( sbdf=2Eseg || reg > 255 )
     {
-        pci_mmcfg_read(sbdf=2Eseg, sbdf=2Ebus, sbdf=2Edevfn, reg, 1, &val=
ue);
+        pci_mmcfg_read(sbdf, reg, 1, &value);
         return value;
     }
=20
@@ -30,7 +140,7 @@ uint16_t pci_conf_read16(pci_sbdf_t sbdf, unsigned int =
reg)
     {
         uint32_t value;
=20
-        pci_mmcfg_read(sbdf=2Eseg, sbdf=2Ebus, sbdf=2Edevfn, reg, 2, &val=
ue);
+        pci_mmcfg_read(sbdf, reg, 2, &value);
         return value;
     }
=20
@@ -43,7 +153,7 @@ uint32_t pci_conf_read32(pci_sbdf_t sbdf, unsigned int =
reg)
     {
         uint32_t value;
=20
-        pci_mmcfg_read(sbdf=2Eseg, sbdf=2Ebus, sbdf=2Edevfn, reg, 4, &val=
ue);
+        pci_mmcfg_read(sbdf, reg, 4, &value);
         return value;
     }
=20
@@ -53,7 +163,7 @@ uint32_t pci_conf_read32(pci_sbdf_t sbdf, unsigned int =
reg)
 void pci_conf_write8(pci_sbdf_t sbdf, unsigned int reg, uint8_t data)
 {
     if ( sbdf=2Eseg || reg > 255 )
-        pci_mmcfg_write(sbdf=2Eseg, sbdf=2Ebus, sbdf=2Edevfn, reg, 1, dat=
a);
+        pci_mmcfg_write(sbdf, reg, 1, data);
     else
         pci_conf_write(PCI_CONF_ADDRESS(sbdf, reg), reg & 3, 1, data);
 }
@@ -61,7 +171,7 @@ void pci_conf_write8(pci_sbdf_t sbdf, unsigned int reg,=
 uint8_t data)
 void pci_conf_write16(pci_sbdf_t sbdf, unsigned int reg, uint16_t data)
 {
     if ( sbdf=2Eseg || reg > 255 )
-        pci_mmcfg_write(sbdf=2Eseg, sbdf=2Ebus, sbdf=2Edevfn, reg, 2, dat=
a);
+        pci_mmcfg_write(sbdf, reg, 2, data);
     else
         pci_conf_write(PCI_CONF_ADDRESS(sbdf, reg), reg & 2, 2, data);
 }
@@ -69,7 +179,7 @@ void pci_conf_write16(pci_sbdf_t sbdf, unsigned int reg=
, uint16_t data)
 void pci_conf_write32(pci_sbdf_t sbdf, unsigned int reg, uint32_t data)
 {
     if ( sbdf=2Eseg || reg > 255 )
-        pci_mmcfg_write(sbdf=2Eseg, sbdf=2Ebus, sbdf=2Edevfn, reg, 4, dat=
a);
+        pci_mmcfg_write(sbdf, reg, 4, data);
     else
         pci_conf_write(PCI_CONF_ADDRESS(sbdf, reg), 0, 4, data);
 }
diff --git a/xen/include/xen/pci=2Eh b/xen/include/xen/pci=2Eh
index d816dcad05=2E=2Eb3c91fea9c 100644
--- a/xen/include/xen/pci=2Eh
+++ b/xen/include/xen/pci=2Eh
@@ -258,10 +258,8 @@ void pci_conf_write16(pci_sbdf_t sbdf, unsigned int r=
eg, uint16_t data);
 void pci_conf_write32(pci_sbdf_t sbdf, unsigned int reg, uint32_t data);
 uint32_t pci_conf_read(uint32_t cf8, uint8_t offset, uint8_t bytes);
 void pci_conf_write(uint32_t cf8, uint8_t offset, uint8_t bytes, uint32_t=
 data);
-int pci_mmcfg_read(unsigned int seg, unsigned int bus,
-                   unsigned int devfn, int reg, int len, u32 *value);
-int pci_mmcfg_write(unsigned int seg, unsigned int bus,
-                    unsigned int devfn, int reg, int len, u32 value);
+char *pci_mmcfg_base(unsigned int seg, unsigned int *bus);
+int pci_mmcfg_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int len, =
u32 value);
 unsigned int pci_find_cap_offset(pci_sbdf_t sbdf, unsigned int cap);
 unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
                                    const unsigned int caps[], unsigned in=
t n,
--=20
2=2E52=2E0



-- 
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates s=
olutions

web: https://vates=2Etech
---=Part.e14.e5f1b60d69208c0d.19e3baeb0f7.8800be35dc06f22b=---


From xen-devel-bounces@lists.xenproject.org Mon May 18 15:33:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 15:33:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312085.1582254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzyW-00078y-0K; Mon, 18 May 2026 15:33:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312085.1582254; Mon, 18 May 2026 15:33:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wOzyV-00078r-U0; Mon, 18 May 2026 15:33:47 +0000
Received: by outflank-mailman (input) for mailman id 1312085;
 Mon, 18 May 2026 15:33:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wOzyU-00078J-VQ
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:33:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wOzyU-00AWpt-7Y
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:33:46 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b314a-bab6-0a2a0a5309dd-0a2a45078cc2-26
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:33:46 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b3159-229c-0a2a45070019-d155802fc86e-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:33:46 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-4891e5b9c1fso20359615e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:33:46 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45e6a135f0csm19579704f8f.27.2026.05.18.08.33.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 08:33:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779118425; x=1779723225; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ttAFH9En8RKoxwxbEZQby/iBflt+QkURqBpl3u3nteE=;
        b=VcK73qmHILzm8N9ihTSNTmAsTISkc2vgBK0EyNVyVQo2Updp65aFqLSmxc7wzhFuZt
         dsadzM1IrPjqPLtSRVYw5t5HarMKupSnCOi6FM8kCcPTQs9BKaK1a/uFnaL+aZYb9haa
         BhyKkLM/wmoJ+1iu92/SSL22bY+/IprlDXDUXZDdmIniTWo/G/98aQfCj6CzD6EfKoaC
         HHUr4b+UwQ92AYLXmVMt+Xpk6xHVEsmGdbhGgvydyRGZRnpdO32deMpUPC1rwJy2ZG2v
         T6p8YriaHfT45H6htiK1Aq7SQ+q1FJ8G8omH5YqctlvBS6F1yfmtQVncJdBftUA3xSx7
         nU4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779118425; x=1779723225;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ttAFH9En8RKoxwxbEZQby/iBflt+QkURqBpl3u3nteE=;
        b=UL+Wk3RE0r9WrH18+66HcEk4K5LJ6cpg2NEm3r81aH+Dl6fPq5mzyHjWtUkn3Ph/gP
         Nf3CcqPA2FGRZ7RK9e6cuBDjoE3f1imgXLxu7ctRern15H9uFCuIUTCsz99zWPj9THpy
         FjzPg9kqHh8Kcc03RBiqcp34aBcmtesRhrVZKsTpdiU2Rt3fJD+/yv7Rwl5KQgmYogOE
         8vXXcjKAcvEgApUT5vUaHiyLvyhZJN9o8toDKtHfRfyplhcffX7hXX90fDeRBGKcolWy
         zp8laUe03jx1m/sT5CqnkOTbu/PO9iUFHPJUxUEtRfmY7RmaR2ZMgLRvKWX1WSOpy1Wl
         a8tA==
X-Forwarded-Encrypted: i=1; AFNElJ+3f7JkFred6Ze9HsRHHgDBdV6K4G+P3rLBcuuw1ZQSeJnkDq/yLqsF+CN6YcrQFU0WvMJtN6y1XzM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyikHZncwkp0WYnZXsHIoi81zVMFv0Eb600hyzaFZE3M3SwfxAW
	DMT+VWHloK1F3qjRH5tnEtMAoKij4dWFx6GEtAIWxYtRmZCOq/4EYd2j7WO31u39bQ==
X-Gm-Gg: Acq92OHWy4HHXN7P5ZTTZkgYyUhq8bcSDSKqLDkiOCdKNLHVUFYaR+S09Wp0LEzNUHI
	9IqDAbm/6uOyX6ZYQS0w34zWpuBYd0U/1SBfpOnksAGUOfaBA0xNsV6c1mxcM2A5J8zNNFRQihs
	sIiXmA7exFzTyEEWBn6mlOXWSYs1D7HMGc623q3lvdp8NYrb85AfVJbqIbywv+JrHYn3zqBfzQq
	VoA2AsTujj/7LCUEUsWgA4QLF+5WSFlwuGM93Tx6lzUOcs2oBXOeT9/iN/il4oYvaSo0hW0agbZ
	YLQHYfCtOA5iRjHYIb8CEtvsgCKu+iKf48v4O0k9u0LzPItz76UNuU5sU8ebYQ7T+RPt63Mf77B
	4gNQpKy9ewkTqMoxm7NIFq3ph3rGtiLyIGIv+cKyFu9s54i6Fp7blywGt6zTmr1aMYCHjLXHbU6
	ETOUJPkvQObrYVAxKglYxvqDYNuz1efTkQEs3EAPfLDUT1F9eAZsFMTKyTsh0SFzEU+JGGZfpTl
	qS4cSb4ORqUHDk=
X-Received: by 2002:a05:600c:4e87:b0:48a:768b:eea9 with SMTP id 5b1f17b1804b1-48fe60e51bamr254801655e9.4.1779118425440;
        Mon, 18 May 2026 08:33:45 -0700 (PDT)
Message-ID: <8b076265-8559-40cd-ac65-418e7b3c9e7e@suse.com>
Date: Mon, 18 May 2026 17:33:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 03/26] xen/riscv: Implement construct_domain()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <3b1c60095c8a963e7df3ca5025e637e678f5ee71.1778250616.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <3b1c60095c8a963e7df3ca5025e637e678f5ee71.1778250616.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1779118426-23B78C48-187BEEBB/10/73395122804
X-purgate-type: spam
X-purgate-size: 1944

On 08.05.2026 16:43, Oleksii Kurochko wrote:
> Implement construct_domain() function for RISC-V, which performs initial setup
> for the domain's first vCPU, loads the kernel, initrd, and device tree,
> and sets up guest CPU registers for boot.
> 
> It also creates additional vCPUs up to max_vcpus and assigns the device tree
> address and boot cpuid in registers.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
with ...

> --- /dev/null
> +++ b/xen/arch/riscv/domain-build.c
> @@ -0,0 +1,52 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +
> +#include <xen/fdt-domain-build.h>
> +#include <xen/fdt-kernel.h>
> +#include <xen/init.h>
> +#include <xen/sched.h>
> +
> +#include <asm/current.h>
> +#include <asm/guest_access.h>
> +
> +int __init construct_domain(struct domain *d, struct kernel_info *kinfo)
> +{
> +    struct vcpu *v = d->vcpu[0];
> +    struct cpu_user_regs *regs = vcpu_guest_cpu_user_regs(v);
> +
> +    BUG_ON(v->is_initialised);
> +
> +    /*
> +     * At the moment *_load() don't return value and will just panic()
> +     * inside.
> +     * TODO: it will be good to change that.
> +     */
> +    kernel_load(kinfo);
> +    initrd_load(kinfo, copy_to_guest_phys);
> +    dtb_load(kinfo, copy_to_guest_phys);
> +
> +    regs->sepc = kinfo->entry;
> +
> +    /* Guest boot cpuid = 0 */
> +    regs->a0 = 0;
> +    regs->a1 = kinfo->dtb_paddr;
> +
> +    for ( unsigned int i = 1; i < d->max_vcpus; i++ )
> +    {
> +        const struct vcpu *tmp_v = vcpu_create(d, i);
> +
> +        if ( !tmp_v )
> +        {
> +            printk("Failed to allocate %pd v%d\n", d, i);

... %u used here and ...

> +            break;
> +        }
> +
> +        dprintk(XENLOG_INFO, "Created vcpu %pv\n", tmp_v);

... this line preferably dropped. Can do when committing, provided you agree.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 15:38:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 15:38:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312096.1582264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP032-00085C-Iq; Mon, 18 May 2026 15:38:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312096.1582264; Mon, 18 May 2026 15:38:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP032-000855-FQ; Mon, 18 May 2026 15:38:28 +0000
Received: by outflank-mailman (input) for mailman id 1312096;
 Mon, 18 May 2026 15:38:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wP031-00084z-93
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:38:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP030-003nH7-LI
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:38:26 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b3269-2eae-0a2a0a5409dd-0a2a45048b5e-22
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:38:26 +0200
Received: from [209.85.221.52] (helo=mail-wr1-f52.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b3272-1dec-0a2a45040019-d155dd34e826-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:38:26 +0200
Received: by mail-wr1-f52.google.com with SMTP id
 ffacd0b85a97d-44e5624c053so1437194f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:38:26 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9ec3ac86sm37721267f8f.14.2026.05.18.08.38.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 08:38:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779118706; x=1779723506; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9dscsK/n/zXXEPGWqtxY6kvxT1hlDEvADzIWDhRa4Gw=;
        b=UugQgxMLo5EiLFeHFQx7qZw36d9vOqQXZeltKJO7rVZP5pZMDvI4tPcOUC8NzbuSvL
         EDOxSI4RXUVmc4J6XTw9JjKG4kvTNVUm2B4jEsoDShP+FiV6HFWajGFCDWuoSV8Xkv30
         dMyxotO2rJ0eEe2w0ub1m748AHcrwqjgLZbcn08Oa1woI2dEsIa0rm3F7iNNHR1OXTYE
         yrNq3RwGwEih8OqROUxzy8Sy0XZnB9IHl12n1gd3MMgolik5ybEU9UHMq9T6DuiQNyv5
         iHCYTmfjihnuiCTzwSDOVirNtk9l9iZUe8+t1ifbXKSJ7GYgFXLKjY/YTDim4tuK31Js
         L1ww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779118706; x=1779723506;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9dscsK/n/zXXEPGWqtxY6kvxT1hlDEvADzIWDhRa4Gw=;
        b=HqfMcR4qqaOEwROiCXybmIXKk/7xW4Z134HprVwWFxPeUDB2BeAk8+bYWQnQihwn86
         w09z1XPJHs6IW8S9Bj6RfB2t9v/0cPVujd6g/B3XyGe7KyHU4AU8Yrt23K0oCROVi+F3
         nKn5Vuqkwcj9ZYF2b840n4+zw9S39f1vKDaf2e+TaVbGrSRJEPGMTgg22XSU9zmR8AzO
         wYW6fTAm69FUuT4sDGFu74+pvuKyMFOJx7ywqu57hZz39uOUuLhNh6Qq1xyPXmqpi+Rs
         c5B0LFkozfPn6micuPWLNledW7kcTVQpwvHYAyMowq7mPlBpx1L3DR+v0HU5Q49PemX2
         5nHA==
X-Forwarded-Encrypted: i=1; AFNElJ9ImikKm8Dyh4XeeNCkRv2iRFFWS0PKUYknviAFQjzcqaHLdFJ1eJUKwOoDj3w39dYDJQBeqSeec1E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzwcNirV+1YmGGV1MszZaQ0tsB/DL2xKLFHu2AyOpbO31ncJ5/F
	G+MFWgRwMqmlfqUKKDdVSCuvqRfkXHZNiT2mhIccLNdsYtIk2OQu+sUTKJTLABeM/w==
X-Gm-Gg: Acq92OFqdqF0mGz24traxjjD+tEKEMU3S2h7C69HDF4z2tTE9LzfIHNQNlqVkkBOmCj
	DWYIfjT+UAJiJ17yTjK0YpoW0xYKyOL0oC37OYStHPOTaMiZ/qlBbYf2wKEAtdHLyit+5ghyy1z
	T0kbLA+pbOZWUMv8XX8SulC4gIkWHGz1zUlfbRd+Xk/TWUbCDOk38YbEysItoCX/wd56GP3WfpR
	OlZtCqKXgV+/bh7uqGZ3ZqibI+A9/6suJFroPf2x9DIXC1k4AzY8FofVi9Ycmwi+YMLcyL27qJ8
	0awhVNGipaYpkSVJG38HVMwIiuR3xtDdm70IKW5idpQA+26oeYS/7mHOWL4BEB51kzsUDo2YpoM
	aXHgst2b2DDrc1v8UMAu4LLr95mBeLMEbhG4obCHFyxslo8x6zZh28l0aBuc3CaPa/UXHj33ySX
	dh6d7Z91Cgos7GIEje5QdjNdJHufquDdHGXHI7wjTrbmSvXhLjvYvRj1dmr4LRqnHRmBNKKiTQP
	992ogo0OsTotP4=
X-Received: by 2002:a05:6000:4210:b0:43b:4f86:e985 with SMTP id ffacd0b85a97d-45e5c5dd47amr24092727f8f.33.1779118705938;
        Mon, 18 May 2026 08:38:25 -0700 (PDT)
Message-ID: <0c732808-8bf7-4f8f-9a81-4c649f030a00@suse.com>
Date: Mon, 18 May 2026 17:38:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/26] Introduce enablemenant of dom0less
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>, Doug Goldstein <cardoe@cardoe.com>,
 xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <cover.1778250616.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1779118706-2BB6B3FF-4F94A824/0/0
X-purgate-type: clean
X-purgate-size: 691

On 08.05.2026 16:43, Oleksii Kurochko wrote:
> This patch series reprensent a bunch of patches necessary to enable common part
> of Dom0less.
> The stuff necessary to start/launch domains will be introduced separately.
> 
> This patch series is based on [1], but a lot of patch could go even without
> it.

What do I do with this kind of statement? This still leaves it to the committer
to figure out which ones could go in earlier. What helps in this specific case
it that ...

> [1] https://lore.kernel.org/xen-devel/cover.1778140240.git.oleksii.kurochko@gmail.com/T/#t
... the remainder of this looks to be ready to go in now (and I intend to commit
that tomorrow).

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 15:43:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 15:43:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312104.1582273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP07U-0001A9-32; Mon, 18 May 2026 15:43:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312104.1582273; Mon, 18 May 2026 15:43:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP07T-0001A2-VV; Mon, 18 May 2026 15:43:03 +0000
Received: by outflank-mailman (input) for mailman id 1312104;
 Mon, 18 May 2026 15:43:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wP07S-00019v-C3
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:43:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP07R-009dKq-ON
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:43:01 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b337b-e002-0a2a0a5209dd-0a2a450abab2-8
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:43:01 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b3385-56b3-0a2a450a0019-d155802ac9f5-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:43:01 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-488b8bc6bc9so14294055e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:43:01 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da0fe248dsm37522824f8f.30.2026.05.18.08.43.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 08:43:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779118981; x=1779723781; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rhf9hUi+PrYqZ5KPKZaHt0LmySJhRBUtHslVoaCrFBM=;
        b=OmEra1M7PxCaYJ16/jU4r/Eie9qeigXFB3BdhzOZJAQh4A7j5kcyTVRZ+MdbzX2apQ
         m2CDxfjNpUrRNHAM9jb6OAfd2zNHGU5rGoau4YJXk5r9lseyA8xT/+qjvWD1t2XJcCS4
         kVtOxG5fEgDALHrB25MYCSCM/cyO1WmfNgIAQ2alxWoBPSVnupbdKi1WNmyKKdTuFSqt
         OEXVt+/N0rnuYc2o5MwK0cx6fRvVjIJ1U0TcM0zy6NomYyO19SqVugSnb4GPjUknFBUr
         sA7FXEHN6qof1ubzAdnzrHuyhNJ40OaBYmL7+sHIXDEJaVMrZS5WhNvAEzmJkJ5EQewZ
         +8oQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779118981; x=1779723781;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rhf9hUi+PrYqZ5KPKZaHt0LmySJhRBUtHslVoaCrFBM=;
        b=TkoEK4OglQsXSsjkzZR6Hc6N68gDesTv1Ev6xrnxnZ0DGj9RClggiE+rABMIM9RoXj
         n6d5FvPCkeNLFdiqmrgQ83pGTlkKcsylsnQWHqY686LtXg3Dtw5B2Ht8t3BHTtC8R5Pw
         o5e9JjLUfrkrgdhNnQPrSwtlMU3FkAWycxj73ruT1M6PkyeQQUew3L+xxQUf40OE5LKj
         SjESW/Jq1Qhztundv83WT6wOQ2oOtO5VuLrz1FNCaNek67wTjwETKG9HHCSZMAe7nkur
         8o7Idu1Jyn9d82W+WdSphamr1ZjUYskDJSB116Aml/WNW4BJqFaVTVl+4X7T1HAv7a5K
         VkIw==
X-Forwarded-Encrypted: i=1; AFNElJ8rFPWuT+j3VGNXN4v/w60fSkXShkc6QGdd3nIg+murGcvrP9el/9JkCpvVU6g0bMYmCM2fJUQRja8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIW1EDEuvxHNkWftEgu0PbbzmfeUaBUXIJ4nIzha/TI8vWK3ps
	NSEqzpSwt+waN1MLVLVM7v3A71Wf3Po4Zsng8UGNYzYPdMcQJdG6vVAA9GSIHrlCsg==
X-Gm-Gg: Acq92OFAVEWKXEe1uV+E/HnJlgUN32fr5ZFVENEPtpxJKIQAEbiAyE1wprKSn4lVbMu
	on5qvRBMggfJRoYtM/nBNHtKSxCkwo92++QcHAKLluvttMZYsj7D4RScSAWNrPGNA7DgordpGYe
	fALF4rg3dNh1uI5arYz+hP/+vmoq/jEzYqOVIBS4IYv/rKOa7l8ncpTjPqedsUyfn+AaoIJNOny
	G8+KfNsSxXTMhtsSDvYhRoSsPEq39cPJhy2EOjRMDAOhqhKQd+lDioV34KQ71rzeAx4DAyIkkUI
	JQVvZMrAtNps0hME0qJ4KukXZyiAVeGWM8eM1DczC2xl5duD4TzT9aSzKZsrCGrlMLjvydeFkA1
	F9Di4W4T0nfUAFBaQ2pE9OCLZqCkR8N1RQBQIQ5YI8Wqpi6CYQfeBsG9LCrnb/bjwGozEkM8BjJ
	FNltUZpFvUhCYaOkronifspIgfny8+oguwJd8AZpzEzvOpkSasAsPXEy/R6/VoG9EYIFlpVjIUN
	Szqprkj7798ZsObVg6IdMcZOw==
X-Received: by 2002:a05:600c:49a7:b0:48f:e230:8caa with SMTP id 5b1f17b1804b1-48fe6898854mr146752735e9.30.1779118981193;
        Mon, 18 May 2026 08:43:01 -0700 (PDT)
Message-ID: <5c047204-09ac-49b7-b9b3-c6e1c7b7f079@suse.com>
Date: Mon, 18 May 2026 17:43:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 04/26] xen/riscv: implement prerequisites for
 domain_create()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <e4d6f36bcdf13e8fc12e8769dd965954c5f45b97.1778250616.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e4d6f36bcdf13e8fc12e8769dd965954c5f45b97.1778250616.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1779118981-7E78F8B7-ECB80F71/0/0
X-purgate-type: clean
X-purgate-size: 957

On 08.05.2026 16:43, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/domain.c
> +++ b/xen/arch/riscv/domain.c
> @@ -289,6 +289,31 @@ void sync_vcpu_execstate(struct vcpu *v)
>      /* Nothing to do -- no lazy switching */
>  }
>  
> +int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
> +{
> +    return 0;
> +}
> +
> +int arch_domain_create(struct domain *d,
> +                       struct xen_domctl_createdomain *config,
> +                       unsigned int flags)
> +{
> +    int rc = 0;
> +
> +    if ( is_idle_domain(d) )
> +        return 0;
> +
> +    if ( (rc = p2m_init(d, config)) != 0)
> +        goto fail;
> +
> +    return rc;
> +
> + fail:
> +    d->is_dying = DOMDYING_dead;

domain_create() does this as well. Is it really needed here?

> +    arch_domain_destroy(d);

This continues to be a stub, i.e. upon encountering any kind of error one
would hit the BUG_ON() there.

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 15:51:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 15:51:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312111.1582283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP0Fu-00032g-Sr; Mon, 18 May 2026 15:51:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312111.1582283; Mon, 18 May 2026 15:51:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP0Fu-00032Y-P1; Mon, 18 May 2026 15:51:46 +0000
Received: by outflank-mailman (input) for mailman id 1312111;
 Mon, 18 May 2026 15:51:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wP0Ft-00032S-Ep
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 15:51:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP0Fs-00F2NS-Fv
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:51:44 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b3580-5cb7-0a2a0a5109dd-0a2a450b93ea-30
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:51:44 +0200
Received: from [209.85.221.46] (helo=mail-wr1-f46.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b3590-212f-0a2a450b0019-d155dd2ea447-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 17:51:44 +0200
Received: by mail-wr1-f46.google.com with SMTP id
 ffacd0b85a97d-43d734223e4so1543777f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 08:51:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da0fe13a7sm39765648f8f.29.2026.05.18.08.51.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 08:51:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779119504; x=1779724304; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IzlThvmhLIBjzAkrqvq74kWIvUxnNWa7d68hXnZ1JB0=;
        b=NPzxM+t5AZE0BQ5gBACepP0FaCxX8eKWjlw94xjAWy2IFcR/641XValvJLADBnrGhX
         kyEEzIloLt/a2VdBdZz5GIAlyw4whIQRRKtYqZAoS2wcqN6qpc5oVdmacQDkqh9J2if7
         xZh+cLCm/w7qf5awgucbvOWR43YmiR+Pqn6fFbSNUpYPVBH6WnfDWN6N4RX62ihIG6NR
         rtJ75eXpkupIOsobJiHemFst+k3RIPJ7o3wCunULm4neomU8k3ve9AdgJUBV+EUEG2+2
         a/jb5hdZVh0pqDUD0xfdCoZn8rPoLpraCSwyqDyCtpPeZPRUYnUOlz6iPy6WyMAZfFo3
         ItiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779119504; x=1779724304;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IzlThvmhLIBjzAkrqvq74kWIvUxnNWa7d68hXnZ1JB0=;
        b=qDwnRTKc2B6hw95E3TsLGiyO/JXqeBbuh/uctt2Z3fBbj2oZc6yJh5Ubn6qNJ4FWcj
         Zqa1fUkjyEVFdJx0RLbCf0XOlmLy3iRQ2N2CnFiPYOwCWtEMLZDJUlWBan9Nm6fL2gKI
         xD1U6M8GwirVTqqcOOzc/9zWiZ1SPOgCSm2APqSZ1ZgdR/cV9mPeaKvQShXKgzhnnjOf
         eCfVHVolIFA5WuEGkFL9mtG2WbatfLMz4szE85Kz2AuxWQLOgXwEbKOpuH9DWy8pqSKw
         zlXVwSHes3TBIkLZ/btyJ/GvmV2tXmcvTah+klVR0rmySDbvDNX+KSU4evj0YfglaplY
         uCXQ==
X-Forwarded-Encrypted: i=1; AFNElJ9nWPqeAuvELHHUfuQNp2JZqsc3E++Kn9vuStttJ8p53BbjtEOFF67Pz4lmgGM5gRohjFICcEDIo0g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzsMn/DxClsWnphpFjxJDu6SZLrZtsckIx06ODBRZciM/OGAjjD
	djbJTIz3P7SXoT7kCKuBXMTZE3FpskNQIrmz52vF9hYkJ9gQZWGGO7TwouNhz2ty6w==
X-Gm-Gg: Acq92OG9i1CYUX8hsPoM5ndG4Aa/EX67Vu60DSZtZ/gVnJ/WExprM7v4kW5/YtKjE/v
	PlpuxlSBTsyRXyzRn84y26rlsBPAr1CSIYwx2AHVfkjwZydDxCc6Btt/AXB1dUqIxJUZwpYHzYO
	ubDcoNXL/s/K+cJQlwOFFMK1HDVoTwUJ8upE524h15XEclPmNP1v5oYD3KBypjaCNETw0ELt8Jp
	jgRmHGs4z0R0+KBGAcSTF7E5sw/XV9EIZLBdpBADahQVhrQwmEx4WpeJauw1v/uewWpLOZWsaQy
	4B4EB5pnXpsmuF9hKGg+NSK9AiF9e7mQkultX7hLG1YjBuSMelej/WlnbgX5iBIgsPdB3OY64+9
	4Hvy/A8ZcxH4Sf3xQ1auRnCN+xgqrWOBsJoT0aAxNLOZN+M/eOkBdWbYAPN6WdUbz+VqX8GkM2g
	y0lBYKD+FddzVZkgtZXtBVyNkBSfq8qtJUu/As1L5Sg2saB0ZEEdP+Uhx3HT/F3Kg39L75LJ2Ds
	bDxPnsfbRJoC/8=
X-Received: by 2002:a05:6000:1949:b0:45e:7792:6e6d with SMTP id ffacd0b85a97d-45e7792716cmr7604965f8f.13.1779119503837;
        Mon, 18 May 2026 08:51:43 -0700 (PDT)
Message-ID: <364abd6e-4fff-437a-90c8-bb4489f0c51d@suse.com>
Date: Mon, 18 May 2026 17:51:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/26] xen/riscv: introduce guest riscv,isa string
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <b2d4f3f7f049837a25bc00bfb1d3da8b984a8b5a.1778250616.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b2d4f3f7f049837a25bc00bfb1d3da8b984a8b5a.1778250616.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1779119504-1AD77F3B-D24F6471/0/0
X-purgate-type: clean
X-purgate-size: 2567

On 08.05.2026 16:43, Oleksii Kurochko wrote:
> @@ -480,6 +488,53 @@ bool riscv_isa_extension_available(const unsigned long *isa_bitmap,
>      return test_bit(id, isa_bitmap);
>  }
>  
> +int init_guest_isa(struct domain *d)
> +{
> +    char *buf = d->arch.guest_isa_str;
> +    size_t len = sizeof(d->arch.guest_isa_str);

Seeing these uses: Is the "guest" prefix really of much use here?

> +    bitmap_andnot(d->arch.guest_isa, riscv_isa, guest_unsupp,
> +                  RISCV_ISA_EXT_MAX);

Same question here, clearly.

> +#if defined(CONFIG_RISCV_32)
> +    if ( snprintf(buf, len, "rv32") >= len )
> +        return -ENOBUFS;
> +#elif defined(CONFIG_RISCV_64)
> +    if ( snprintf(buf, len, "rv64") >= len )
> +        return -ENOBUFS;
> +#else
> +#   error "Unsupported RISC-V bitness"
> +#endif
> +
> +    for ( unsigned int i = 0; i < ARRAY_SIZE(riscv_isa_ext); i++ )
> +    {
> +        const struct riscv_isa_ext_data *ext = &riscv_isa_ext[i];
> +
> +        if ( !riscv_isa_extension_available(d->arch.guest_isa, ext->id) )
> +            continue;
> +
> +        if ( ext->id >= RISCV_ISA_EXT_BASE && strlcat(buf, "_", len) >= len )
> +            return -ENOBUFS;
> +
> +        if ( strlcat(buf, ext->name, len) >= len )
> +            return -ENOBUFS;
> +    }
> +
> +    return 0;
> +}
> +
> +static void __init init_guest_unsupp(void)
> +{
> +    set_bit(RISCV_ISA_EXT_f, guest_unsupp);
> +    set_bit(RISCV_ISA_EXT_d, guest_unsupp);
> +    set_bit(RISCV_ISA_EXT_q, guest_unsupp);
> +    set_bit(RISCV_ISA_EXT_v, guest_unsupp);
> +    set_bit(RISCV_ISA_EXT_h, guest_unsupp);
> +    set_bit(RISCV_ISA_EXT_sstc, guest_unsupp);
> +    set_bit(RISCV_ISA_EXT_svade, guest_unsupp);
> +    set_bit(RISCV_ISA_EXT_svpbmt, guest_unsupp);
> +}

These don't need to be atomic, do they? I.e. __set_bit() would suffice.

> --- a/xen/arch/riscv/include/asm/cpufeature.h
> +++ b/xen/arch/riscv/include/asm/cpufeature.h
> @@ -17,6 +17,8 @@
>   */
>  #define RISCV_ISA_EXT_BASE  26
>  
> +#define RISCV_GUEST_ISA_STR_MAX 256

This looks like it won't be good for very long, seeing how long ISA strings can
get. I wonder anyway whether ...

> @@ -94,6 +95,9 @@ struct arch_domain {
>      struct p2m_domain p2m;
>  
>      struct paging_domain paging;
> +
> +    DECLARE_BITMAP(guest_isa, RISCV_ISA_EXT_MAX);
> +    char guest_isa_str[RISCV_GUEST_ISA_STR_MAX];

... a compile-time sized buffer is suitable here. Can't you allocate a buffer
just large enough to hold the string?

Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 16:00:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 16:00:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312122.1582291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP0O7-0005S9-Ni; Mon, 18 May 2026 16:00:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312122.1582291; Mon, 18 May 2026 16:00:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP0O7-0005S2-Ks; Mon, 18 May 2026 16:00:15 +0000
Received: by outflank-mailman (input) for mailman id 1312122;
 Mon, 18 May 2026 16:00:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wP0O6-0005Rv-5Z
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 16:00:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP0O5-0090YI-EK
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 18:00:13 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b378b-bab6-0a2a0a5309dd-0a2a4504e72a-24
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 18:00:13 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0b378d-1dec-0a2a45040019-d1558033ed46-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 18:00:13 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-4891e86fabeso33670535e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:00:13 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48febf81970sm118375315e9.8.2026.05.18.09.00.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 09:00:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779120013; x=1779724813; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZS0F4Q4a37PChXIgi7DKC5iYO2nLobBUU4nfJAGybw8=;
        b=H0qhhhVYqVyqL5sny7aj7xmf6djz0OTNgBau84+0codB2OETvBRkPzkkL10ohPsjH2
         hBoJaBZGY/wpOJw88XMWcL+F6G0GBswhSO6C9awE4ZJZLAYHrUJP51ElZJ7I4nbsvzV8
         JJ5Pg/6gQRIRX251qjWVKK4hQ3HBIUcDmVRY/Uck7Nj0urAF6Vw/IfnqED6aiWYwVpJX
         qBd6ubrVzWkCjgIhHUy/YscOmpfxsBgRNrGCXq6o7Bc8o26F9KmFuGjVDAQwxnLmh7OX
         h++jx23VykSSwe9Y4lc6hVXfkFLr9GzFcvTJ9Gstp1A4dFC51zGWcOLeyftnh6pUHyzo
         40ag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779120013; x=1779724813;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZS0F4Q4a37PChXIgi7DKC5iYO2nLobBUU4nfJAGybw8=;
        b=ig/qzLRC1TOpLCL9gRNMJB23ZSlK3/kj35wC0ncP3peS2OC4SwVgl+CTNkRr8ix3BG
         gIuUAwgrAaZEYalXDYHnrqg20OGlUcDvNjbowfW6Gt3STJwEpPMF7+pqyw/xzKdElsIp
         Ach8q1hDvjIdK3q8/5VcKJMxc6gLDyjdWU5z90pTnk8pmlxlB8mb8Gt59gxc+3Hb+rzr
         RF9WEtlf6q1URRy88HTLrcMy4fXA/sYlmX+y7pKLnzrD/qHdJ84Mkx7W20u2dlCQQ1Bk
         uwQeQWYiHcen5M4ij4PfYtZ5LUSvXgahzd547xYlCR3Ws0ssL6ZgoT+TllfNYMOCHEB1
         N4ag==
X-Forwarded-Encrypted: i=1; AFNElJ9hsX+w1hYwt920rxJvG8pwSxN5P7+chsyjhKnR17VIn7M2D6sEzuiDmjc4Ka1eIUByawE1vdv+CGo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwzCWsVKxoxNkSPaI3+19v4DRYVlT/4T5scUSH45TwgHEamaCCC
	Rs5nfWDc1/FQCrKtvZBm9EHt3uvcGso1wMgiV21h7VALy7S/bKjHTBV9OnJkgjesUw==
X-Gm-Gg: Acq92OHW6eDlRkrRJGVmz9WrmYLtpA9SjfhL3dbLKMMNOJZ2TBAwyJZQZCez7/DGSuI
	0zmgkoR3mHPzC5CBT8PumTqwRQt2Pe0soiuN68n1hfa9MzRFZdF6J8veR6L/34zIkIbrPHLORgI
	H4tKnAQWCbcHX7cbu0H/JaVPZogmWvURDdkFLmu2W08txghkJieGseW/F2Ts3qEkkP/iBxaHDPR
	lzceveBsgsMrcNrT4WUGZk6tYg6psg39pgtVJXiCnTsIoPXbkjN+OZbv33/i1p8WWPTn76Dgq/d
	UaqUl1zffiTr/0WawB8c8rQ4ov3HadfKKGeFxPerHU6Z/ZrnoWFJQFy6llVjGPymvUVauVtfGgD
	NFkNJyo5seiSweEazesr3IWt/svBti/FEKadOzioDu7FFAtP7vEE4KMwif7E2XExanqJfhKMegD
	C9ZO8pCC5zpQcK/kUZrogCbILFWlwrZ+enii6HLHfMZNv0/oto+4cGjewdcd0UI+QuppdbMZOEY
	OMmvGY42NhtO+Y=
X-Received: by 2002:a05:600c:c10b:b0:48f:d612:3c59 with SMTP id 5b1f17b1804b1-48fe60eb0f6mr166812605e9.9.1779120012634;
        Mon, 18 May 2026 09:00:12 -0700 (PDT)
Message-ID: <3c0e5b33-d3bb-41ea-ba13-43add1d64617@suse.com>
Date: Mon, 18 May 2026 18:00:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/26] xen/riscv: implement make_cpus_node()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <69d2dd26b7c2d00c9d28f898f041f6d1be145e0d.1778250616.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <69d2dd26b7c2d00c9d28f898f041f6d1be145e0d.1778250616.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1779120013-2997A3FF-FD8DDBA0/0/0
X-purgate-type: clean
X-purgate-size: 3825

On 08.05.2026 16:43, Oleksii Kurochko wrote:
> @@ -50,3 +52,107 @@ int __init construct_domain(struct domain *d, struct kernel_info *kinfo)
>  
>      return 0;
>  }
> +int __init make_cpus_node(const struct domain *d, struct kernel_info *kinfo)

Nit: Blank line above here, please.

> +{
> +    int res;
> +    const struct dt_device_node *cpus = dt_find_node_by_path("/cpus");
> +    unsigned int cpu;
> +    uint32_t timebase_frequency;
> +    bool frequency_valid;
> +    void *fdt = kinfo->fdt;
> +
> +    dt_dprintk("Create cpus node\n");
> +
> +    if ( !cpus )
> +    {
> +        dprintk(XENLOG_ERR, "Missing /cpus node in the device tree?\n");
> +        return -ENOENT;
> +    }
> +
> +    frequency_valid = dt_property_read_u32(cpus, "timebase-frequency",
> +                                           &timebase_frequency);
> +
> +    res = fdt_begin_node(fdt, "cpus");
> +    if ( res )
> +        return res;
> +
> +    res = fdt_property_cell(fdt, "#address-cells", 1);
> +    if ( res )
> +        return res;
> +
> +    res = fdt_property_cell(fdt, "#size-cells", 0);
> +    if ( res )
> +        return res;
> +
> +    if ( frequency_valid )
> +        res = fdt_property_cell(fdt, "timebase-frequency", timebase_frequency);
> +
> +    for ( cpu = 0; cpu < d->max_vcpus; cpu++ )

Limit cpu's scope to this loop?

> +    {
> +        char buf[64];
> +        uint32_t reg = cpu_to_fdt32(cpu);

Isn't this a byte-order adjustment? If so, how come ...

> +        snprintf(buf, sizeof(buf), "cpu@%u", cpu);

... the result is passed to an entirely non-FDT function? (Most pre-existing uses
of the function that I can spot store something in memory, i.e. adjusting byte-
order makes sense there.)

> +        res = fdt_begin_node(fdt, buf);
> +        if ( res )
> +            return res;
> +
> +        res = fdt_property(fdt, "reg", &reg, sizeof(reg));
> +        if ( res )
> +            return res;
> +
> +        res = fdt_property_string(fdt, "status", "okay");
> +        if ( res )
> +            return res;
> +
> +        res = fdt_property_string(fdt, "compatible", "riscv");
> +        if ( res )
> +            return res;
> +
> +        BUILD_BUG_ON((sizeof("riscv,") +
> +                      sizeof_field(struct gstage_mode_desc, name)) >= sizeof(buf));
> +        snprintf(buf, sizeof(buf), "riscv,%s", max_gstage_mode->name);
> +        res = fdt_property_string(fdt, "mmu-type", buf);
> +        if ( res )
> +            return res;
> +
> +        res = fdt_property_string(fdt, "riscv,isa", d->arch.guest_isa_str);
> +        if ( res )
> +            return res;
> +
> +        res = fdt_property_string(fdt, "device_type", "cpu");
> +        if ( res )
> +            return res;
> +
> +        res = fdt_begin_node(fdt, "interrupt-controller");
> +        if ( res )
> +            return res;
> +
> +        res = fdt_property_string(fdt, "compatible", "riscv,cpu-intc");
> +        if ( res )
> +            return res;
> +
> +        res = fdt_property_cell(fdt, "#interrupt-cells", 1);
> +        if ( res )
> +            return res;
> +
> +        res = fdt_property(fdt, "interrupt-controller", NULL, 0);
> +        if ( res )
> +            return res;
> +
> +        res = fdt_property_u32(fdt, "phandle", alloc_phandle(kinfo));
> +        if ( res )
> +            return res;
> +
> +        /* end of interrupt-controller */

Nit: Comment style. Also such a comment pretty clearly calls for a counterpart
at the start.

> +        res = fdt_end_node(fdt);
> +        if ( res )
> +            return res;
> +
> +        res = fdt_end_node(fdt);
> +        if ( res )
> +            return res;
> +    }
> +
> +    return fdt_end_node(fdt);
> +}



From xen-devel-bounces@lists.xenproject.org Mon May 18 16:05:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 16:05:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312130.1582299 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP0T3-00069G-8C; Mon, 18 May 2026 16:05:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312130.1582299; Mon, 18 May 2026 16:05:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP0T3-000699-5W; Mon, 18 May 2026 16:05:21 +0000
Received: by outflank-mailman (input) for mailman id 1312130;
 Mon, 18 May 2026 16:05:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksii_Moisieiev@epam.com>) id 1wP0T1-000693-RA
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 16:05:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP0T1-00Gk4t-3b
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 18:05:19 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 6a0b38a7-5cb7-0a2a0a5109dd-0a2a450c9c38-46
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 18:05:19 +0200
Received: from [52.101.70.73]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 6a0b38be-62f1-0a2a450c0019-34654649b241-4
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 18:05:18 +0200
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com (2603:10a6:10:519::5)
 by AS2PR03MB9467.eurprd03.prod.outlook.com (2603:10a6:20b:59c::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May
 2026 16:05:16 +0000
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908]) by DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908%5]) with mapi id 15.21.0025.022; Mon, 18 May 2026
 16:05:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tdVedvT9DbHMD+nD7Q4Fz/uwqoIeVkHw2EzkOUkuFRLybZwmB4jp4yLGE9lg+NjbgnxkczyYbZMnNWFHGYvsSWoyiAkSyZJkq3AA/TSpl3bA8nKR4TufCabYrNRzWLbsALAuZkImgidDTdQd66bvRP+vUhdEMBVaeUv09Mb68/PENIHdesmZbDxKLlXhPsx6CkMA3xqS6UUEX4s5P1m3mE43PpIYxUgKeyUEowfN9eO2bSnBCwXChqbL7YYMAoS/I73gM5JkvakrKyW4h6uN61/3dPNFi4nFKWuh4PaD2jhGVI0rTdFQ1n4LVx8Ib9LFSkQlhGWxBZsnMbZ0Jf74Fg==
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=F5wUnsDaUBq/j/iG6V3G8/zSJ6iPPLZuqhd9Pgpuc7g=;
 b=a8Qkq573bdtzVXv+8KLuhB8U6W975IlSFN61fvYDFNplGEQxsadBTgIev4W690PTkwT7itSniiBAVmiv+4MDg68+Uk71aG9dGYpM0hHEnJqd6Nzf9Ss/lrqpknJASLdNGee/XFfHhTcnDJQVD858XUWsDEpFZwbmGz84ApU6b2+VlyQH6x2m7Wnn9Y8qVFtsGM5uoOtLMitYavpplB5Sq8KLhnSQam+bHSl2pnRKBgFTXazeI97lbcuCCu9yPQQQdGf3ceCxXLcuhk6TpcErE/WmPPR3AdZxNSDGRsxB/eVfC47+NTeWwn/7Ku+Cne93VsrYAH/t81GN53HegEbv5g==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=F5wUnsDaUBq/j/iG6V3G8/zSJ6iPPLZuqhd9Pgpuc7g=;
 b=Jd2qkqIgbLMHmMvCt8aDUTRHikZmSf8OdBxQMzOblP+1OdTo2ag9NB5rJ8esNTKa+HL0sFW2e+VUFdWBt0XkhKxe2rnFbsirVT8YUCsGTkwHsA1o5TKftV+o8utBsVpoiBuIgcRtUCuwWxd8HulenZMmrao+IQIrhjFm85gXKlf8htk5en6XBGA2BjLrdHZ5/Bav4wbWJMy2mB8Zvhy928h3DY/mDgJsz8aOI/fqRKqI/DFzM14b8WzxYNM3grg0fbYXLGO+NdA7Dg+E4o17vMPKk5mIX7YZvdWEiiapNJUjywU1YA02vVmnTTX1WU7VjTsslk8O5dlXhkdsWfHAiw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <07643fba-5e1b-449c-955b-949ef38bdb61@epam.com>
Date: Mon, 18 May 2026 19:05:14 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: RTDS scheduler patches
To: Jan Beulich <jbeulich@suse.com>, Dario Faggioli <dfaggioli@suse.com>,
 Meng Xu <mengxu@cis.upenn.edu>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <41d236ba-a93d-446a-b29a-449a1c5f8972@suse.com>
Content-Language: en-US
From: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
In-Reply-To: <41d236ba-a93d-446a-b29a-449a1c5f8972@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: VI1P194CA0049.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:803:3c::38) To DU5PR03MB10263.eurprd03.prod.outlook.com
 (2603:10a6:10:519::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU5PR03MB10263:EE_|AS2PR03MB9467:EE_
X-MS-Office365-Filtering-Correlation-Id: 6e382cd2-d0f0-400d-9942-08deb4f7400f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|11063799003|4133799003|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	JrZxVc+md2Aj46OkZ0jwSt76BjGW2CdVMM5rS6XrHM/XKc46s5g78IjHXTos2KJWcZVT1QjceKT6GhsnIb55WIG2t4jpYgCsIlg5f5VFMowsm70T0qhTbazaiAqzRZEfavpbew54iTlPf4LRc37RuAt1CdZqsnWpMUDRsW+4iegX4E5uiDhWEpOJbkuDxrXeysdAhz0GqdiOxdayyVIhsYsYZfKctiTVQuLyAGH6DsPZshEWomwrKKaLwfG1m4YcQjS3zP4uOC6IMPQzu8ZCf3PwvT9viwajWEH4xmP/EQDI4jF/1vvX4ijlRefdp8+NgFKcti64Ugx/6MiKyrCn0Aw42qVR9K6L8tdDDSOwRgZlhawECOwO4gmeXoTB2/APkYozFI/c2bCjOlz+BtIidUklhVNSAP5opF11WnW15m86nnqeE0UeiIsnQ0U/o8m6+RBAasziPEX61epkzJZ29/gST00evqmFn4oYITU7bU5VsxbfzcSVfPXHYpMJbjMA/SboYUcFyNr7JfKMnedJEWeGfTju9T2n85wyRIYs3ySPJW8ZB07IyN9HNGTnyPAbR/xGax49x7TGp9jJr8XxwncsLMPLJ26qR/itygwE2m4uxv2KQHqzHdTCVRTtjito4sQ/lswp3aSwJL9ifhLpKS3pTnGZgOrQQrME5hL9F59VvRR4HBvxEMjKCFgYIcpJ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10263.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(11063799003)(4133799003)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Ky8zVmQvRHovVDBUREdqTWcyeVREeWFlaWVTWlpyYkwrOFNHWjl2QzFTNEgy?=
 =?utf-8?B?VHNFRFA2dHBpcGxObitaa2QrMzBSOXpMdXExNTJtbENuWXA0clc1Vi9Dem9l?=
 =?utf-8?B?ekxtVGdJb01HUm1MN25jeWhpekYydmltblJuaU5kdUZQZnBOS1lGUjc1T05L?=
 =?utf-8?B?TndndnpKM28yaTAyNDNmQkt1cEZFVXFIUExyNm5kQUk3cGJTSGJ0T2pyN0NW?=
 =?utf-8?B?WTB0MUFWbEZSV0RmUnluRUhqN3JBOXArZ2ZzU2NReW9FQmw1ZmUxM25YSHU1?=
 =?utf-8?B?RG84Q1hXejVwV3pEU1NFOGFkb2IzODloUmd5YURFU0RObSttUUtlSWZzbzZS?=
 =?utf-8?B?dFp1LzVOSWdPcDNQWlN4TUJDQzZVSE1qWFJQb3dhc0VrLzN1ekg2cVNWRFlv?=
 =?utf-8?B?dmFERytMZitrK3ppbDJuNjNMYUVFNXN5TjNyakt2bE8wU0gvOWtoZ1g1eSti?=
 =?utf-8?B?eDF2UVpYM0hQVHhUaDdOT1ltN2FTRlNtdW9zYzUwbWZyd2ZnUldXT0p0ekxj?=
 =?utf-8?B?dkVUazIwckM4V0ViTlpSVVBjMFZHeG1TdHIyYkpwaUQ1TTc0dGpXZzJBTXQx?=
 =?utf-8?B?SEQrUHV0Y3BlaFlOUEIrNzV4dGpPQ2h3ZzM5MWdHaFdnWTh6a3EzSEErQ0l3?=
 =?utf-8?B?blpReGkxZVJ1NllFb2M1aVg0RFMraEh0Q1EveElYQXkwVEoyME5rWFF0SUhT?=
 =?utf-8?B?MEJZUTFLaGhDdlhvd2xNcnZDUUo2cFBiN21DZDlBQnFqWU9tclVYSjVYUG41?=
 =?utf-8?B?Rks1bjJOTzB5bCtkVEFJeHVxbGMzNWppSWlyN1dwZTRYd3N1ckhIYUE4OTcx?=
 =?utf-8?B?T3BLY1lCbTZ5K3A2bGNpK05WSklqdVdRUkVuS0dzcmVvVHZMUjB4MWhNZnBT?=
 =?utf-8?B?TFNKbTIzbGs2bXdhSDhSbEQ3TGdYVVJXQi91RDRYRWNLdVlIalFWTFpWSWc4?=
 =?utf-8?B?dlRUK29LS2cxeHNhazRKSEJ5NHNVZEw3UmJBL3o5Qy9yZjhZOFlyc2ttVHBm?=
 =?utf-8?B?d3J1d1p3NGpmc3BoeWM0K1FIckZoOTRmUFFrUlA3cmk5ZW4wcDN2cFJ2bDB5?=
 =?utf-8?B?YStMTC9jK0g5U2pISXdZZ0VnTm5IdU45dldFR0pLVE1zRnpUVGpQcEFiU3U0?=
 =?utf-8?B?QVhyS3o5MFJnTUFVUC90dE5HM0tWVVBxd0pTY1pBbHp2c1dHZzNreHFMcU1K?=
 =?utf-8?B?V1I1SHVmSWlmYlR1S3NEVDV6UXZXcjJuUWpSWUtURSswcVFKcGVka3ZVdDRp?=
 =?utf-8?B?S0RaNDYyclk5U1lkdkJaNi9sL3FobkpVSkhNRmpqZEV0dWdPcnBoZko5aGE5?=
 =?utf-8?B?bW05eW1KVmwvaEZoSXFZR1pNaGJyYUo0NHZJNjg1eUdjbFV1ZmlON01DN3RO?=
 =?utf-8?B?MEdGS2tCWUNWYnFCQmVmUW95Z2IwdjdVSlFqQ0tKYW9HVWUyNXB2SExjV1Aw?=
 =?utf-8?B?MXRqUTVPUW5UOXIvVXQ3OGYyT0JXQVVYeDc4a2VzaWtJK2tERFFXNTFHcW1w?=
 =?utf-8?B?QXJzTEdlMzN4UXhuM2xiRVE1RHd2VDN0ZlRQV3hDcUJyY0R2YVNteEEzcTgr?=
 =?utf-8?B?bE1wMmI2dkxNSlBsYkJ2NWIvMldoa2xuQUhWazBUdkoxa1Vuc0VVRkZLcW9x?=
 =?utf-8?B?eDZBMit3SC9qbWVMNXM3aG9GQjRDSkxHVG5CUE8yWGM2TGFWZGdhTnRJN0gv?=
 =?utf-8?B?M2xyOE01YlVSM1lVTWJsem1Xd3VlZTdpSlFkeEluRkprOHlPYTRuWGFCMTFx?=
 =?utf-8?B?Kyt1Lzk0V0NpWG5scUUxZTRpZWI4U3dqR1BGbER6cGVwZmx4eUQyRnRoTnAw?=
 =?utf-8?B?dWVtOHFTL0lnNllXTXpCd1VzVG5raGVhUWpmWnk1QTVMbm94WXJTeWJkUncr?=
 =?utf-8?B?V0RicWVNRm80cjF2WTNYSno0SUZWTVRmdDJHZ2hqTjA3NmdLWHFoWlYrcWIw?=
 =?utf-8?B?V3Z5YXdBT0V6N2VqNWNBMHFIYUgrQjU0TW02VEoxNlRLSm1HK2lIR1RpNWtC?=
 =?utf-8?B?dnA1emtMM1VJVlpnTHl0b2hzdlFIbFdNTjZOYUQzTXZiakFud1Z5Y1lxUk1C?=
 =?utf-8?B?QllMRGNCSnVWT3VuaVFXTW9MNnNXOXBPRUcyWXVNUVkwdnBVSm04NUlHZzdO?=
 =?utf-8?B?L3B4VHo3akdWakU4MWkxSVBINzFqM2dpWEdySmdZOWMyeGhwNWJBU0huQ2da?=
 =?utf-8?B?a3NJVlFMS3A5VHZpZk9YZkFER3NCQzlQd0lPZ2p2SmhaWGg0RUNOQWhuV1V4?=
 =?utf-8?B?bVdvQVk0d3ZBR2taR0dCaVY4SmV2YXIxUFVReEZValRCSk5wa1hQaGxYUU5o?=
 =?utf-8?B?ajdYOFVPT3RSeEFvTzh6R1QzN2QvUnBOeU1SNVVHM1hhRlFvc2xpWXo0OXlT?=
 =?utf-8?Q?00O4XcmB2AcEI5OY=3D?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6e382cd2-d0f0-400d-9942-08deb4f7400f
X-MS-Exchange-CrossTenant-AuthSource: DU5PR03MB10263.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 16:05:15.9224
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cxNr5t0qYo9lVvr4OsMUE8jpMdwVu87x0bVxwbU/lWDteNmolKGohEeuAj/VEViK69PqvSfv+Oc1mfkvnsBEQLEdjwRwVB1VPojZtvQ9jfA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9467
X-purgate-ID: tlsNG-d25034/1779120319-F5784CF5-9E92512E/0/0
X-purgate-type: clean
X-purgate-size: 761

Hi Jan,

Sure. Will do it tomorrow. Also I found another bug in RTDS. Still need 
some extra checks to be done. I planning to post it tomorrow as well.

Oleksii.

On 18/05/2026 18:08, Jan Beulich wrote:
> Hello,
>
> would you mind taking a look at two patches, both of which were reviewed by
> Jürgen and hence hopefully should be relatively straightforward to given an
> ack for:
> https://lists.xen.org/archives/html/xen-devel/2026-03/msg01341.html
> https://lists.xen.org/archives/html/xen-devel/2026-04/msg00162.html
>
> In case of continued lack of response, I guess I'm going to commit the
> patches as-is towards the end of this week.
>
> Oleksii, fyi: Generally it is the submitter's responsibility to chase acks.
>
> Thanks, Jan


From xen-devel-bounces@lists.xenproject.org Mon May 18 16:08:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 16:08:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312138.1582309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP0W2-00073L-Mk; Mon, 18 May 2026 16:08:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312138.1582309; Mon, 18 May 2026 16:08:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP0W2-00073E-Jr; Mon, 18 May 2026 16:08:26 +0000
Received: by outflank-mailman (input) for mailman id 1312138;
 Mon, 18 May 2026 16:08:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wP0W1-000738-Rl
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 16:08:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP0W1-0091uF-7m
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 18:08:25 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0b3964-2eae-0a2a0a5409dd-0a2a4502bee4-40
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 18:08:25 +0200
Received: from [209.85.208.171] (helo=mail-lj1-f171.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0b3978-af86-0a2a45020019-d155d0abbcb7-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 18:08:25 +0200
Received: by mail-lj1-f171.google.com with SMTP id
 38308e7fff4ca-38e800deae4so25241471fa.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:08:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779120504; cv=none;
        d=google.com; s=arc-20240605;
        b=J6PKl+FzxGfECp8Hld8M52iOfThor0R6WBQoub/4gy9bf4ZPQ8+vcp14p8Z0nSnsgy
         JTNUbmHiy0X7zxIMA6CAtgwWaOh3cxWRb8ct2nMSdqKhqeZNihz3NE1UzuQm/Sd4Yp3U
         fWsMt+GlUUzgn9aFB+0trgxQ/EF4Y0g2TaVakbqMkkFSpjxHuW3DtXTmt4lPybJO7n0P
         mN2kozlhHw+g6AwZ2VN9S/qdzts5bruEEh8ykjsh8nuaF5yUUpdNKW+c1UWejzUTZT95
         u8s0zjzmySKPFMLliHX+PwoaTOHPLq57ymy47gnGnBupGSEJU3wcFodbIpH4CYhg49Wl
         4/ew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=b+C5Z7D2PCHplHcCQ1DIKAONDdkfE1fB3nnk1v3jlmc=;
        fh=Y48x1ukbkIffKm3ALNxHiiKo9yxrWWvlvMeS1xgC45s=;
        b=VWWqy89Fhp6p51oLbWokD2fm0gF0MHhI6mBxNbWRYAm/8+cczUa0AqBxSgkxnsOIrJ
         Ua5TozIRNetQCsRetdfDdCoujDIIh/JnN4Lt4mSh5WeJsoLpPetq35205twYCGo664zp
         7gx2q7YXDGN34G7waHTZnlXulg5HJMuuLfWBiLh3/v7lGMJS3BqjTaL3wQ8dudR4Yira
         Bx/Xc3L7+1fmtLMFjuV7yDeq3OxMUPHB5cjtB29Zx/TYVf3dAttTmVflJVSla7B9C2E/
         qVLXtgQQx90qBqeTzNQmEOuLYoKC5SdmgV4Fpi3Xs2XMMModQyOO6J1cX1c3CZ7IO4Av
         YwGw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779120504; x=1779725304; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b+C5Z7D2PCHplHcCQ1DIKAONDdkfE1fB3nnk1v3jlmc=;
        b=LqoaE/fuSUCUnI51y0QkC5na2zfuda92//64AYHCraqhYJe40DdU60andHTTa+ezFy
         /mb5mY6mOWpQbnDICnrciVkKB6AHUBphV4w0nx9tN/eZPmKj+lAq0iXvb63hYtJ+w6t/
         +HIxF4j6z3ZESLg0aF996p5ZNbg8mHXP4GhRFWw8/kIOyVPTLqK6IPgBNimmL7kosatp
         wd/dABzaI/bx4R9Q620IjtPPCtNHsl/uyLt6Bw4uBs3tcaxoZjze99iQLVhiRCtTQERE
         5u6LOq4tyjAHKibMy7O7DqI/d4R7JNR74oAbfO+C5AEqla7F/6dMyMNnagxMPzUu15ba
         zYEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779120504; x=1779725304;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=b+C5Z7D2PCHplHcCQ1DIKAONDdkfE1fB3nnk1v3jlmc=;
        b=Kd67BnLmRrUxdsolyQ2usYt8DK6RlKP5w4MI9aHQFiELUkc/QyRkO+szbihz+vPA9o
         xNapv1NnnOYj1zbNFdGjmKPv29X4qoMpKXPhJuOM+CehHG1BFpHKulJXSTlzxVJYh3iN
         d9FxIaCA2vLuGsyUv9SlY2bINFrpJmMTLSDqOGyYo12u39GldYWW7a4ll+3KvdmU0d7I
         x3ovNiX0QHeh0Se/Zo7C81KFY7sHQaolN8B5u1j/GamVZQHAfBOkvMy3eTSWCrRC8Wjf
         pHoBSZHM72lpiPiKiODvzwT0hGNNHDj/055BAs26p7FERT8MYyso1d9Q5T6t8XB1lvnK
         fdGA==
X-Gm-Message-State: AOJu0YwDiuqJKpIU/iD+ihdVyMWnuhWG+xZtFwOviVYq+26jRDrbUtFv
	Vkyy32iJhHI9nBAohu+h4BbC0MqL/LJ8dbi+2+CBmtsZwp+HnYY/+Cm8r3UciYrADuB81tmLlyX
	OpokCSYZY8EXBVr8/4bo9bF2fSRccoJw=
X-Gm-Gg: Acq92OH1FyryTk5MUY+zuE/u1oxG1iIgzM4oPiCwW/r4Qy2VzZ9/hcoKIh2okokbauu
	ljnfiKiMdBYxU5nVgyNRdawDXar7RUQkt+TlKRsDby81V8/KqEnaiZxySwY+IC6tlJ0i0gE+mkq
	vnsa1PAAYvKzF/cr3/Lk60Fgs2c6MaEC2kh+RR/hITYzRPBhYvVTpj/Ef7PI60MIxujusn/fG50
	dYuGR8a8+9cWmk0iCihPP8Ig98uyYTDpy7vKZU/o75GkyMND7YWMtRjMVez9g6fWM/A3CKiP8/d
	hYUG
X-Received: by 2002:a05:651c:1608:b0:38e:7a75:8763 with SMTP id
 38308e7fff4ca-39561d60079mr48716381fa.18.1779120503998; Mon, 18 May 2026
 09:08:23 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778605274.git.mykola_kvach@epam.com> <fae03d32bb817d56a20b0437e433bd124f89ac88.1778605274.git.mykola_kvach@epam.com>
 <EF57B350-AB80-4157-AB49-6A449604BC06@arm.com>
In-Reply-To: <EF57B350-AB80-4157-AB49-6A449604BC06@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 May 2026 19:08:12 +0300
X-Gm-Features: AVHnY4KvoH9vaDd8jAi1fl1JDyx0ETxOKyJq8oUfbWZiGZBzl4yiv0xTMr0Zcks
Message-ID: <CAGeoDV-Yb0pF0GN17FpuU3xk=EGcgx3vh087oGoaXTnL2=nDxQ@mail.gmail.com>
Subject: Re: [PATCH v9 09/13] xen/arm: smmu-v3: add suspend/resume handlers
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Rahul Singh <Rahul.Singh@arm.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Pranjal Shrivastava <praan@google.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-720697/1779120505-A9D77161-15EFF6CE/0/0
X-purgate-type: clean
X-purgate-size: 5935

Hi Luca,

Thank you for the review.

On Thu, May 14, 2026 at 7:42=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> >
> > +static int arm_smmu_enable_irqs(struct arm_smmu_device *smmu)
> > +{
> > + int ret;
> > + u32 irqen_flags =3D IRQ_CTRL_EVTQ_IRQEN | IRQ_CTRL_GERROR_IRQEN;
> > +
> > + if ( smmu->features & ARM_SMMU_FEAT_PRI )
> > + irqen_flags |=3D IRQ_CTRL_PRIQ_IRQEN;
> > +
> > + /* Enable interrupt generation on the SMMU */
> > + ret =3D arm_smmu_write_reg_sync(smmu, irqen_flags,
> > +      ARM_SMMU_IRQ_CTRL, ARM_SMMU_IRQ_CTRLACK);
> > + if ( ret )
> > + {
> > + dev_warn(smmu->dev, "failed to enable irqs\n");
> > + return ret;
> > + }
> > +
> > + return 0;
> > +}
> > +
> > +/*
> > + * Probe-time only: request host IRQs and, when available, program the=
 SMMU's
> > + * MSI doorbells. Resume does not restore the SMMU *_IRQ_CFGn MSI regi=
sters,
> > + * so any host suspend support must treat the active MSI IRQ path as
> > + * unsupported until that restore path exists.
> > + */
> > static int __init arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
> > {
> > int ret, irq;
> > - u32 irqen_flags =3D IRQ_CTRL_EVTQ_IRQEN | IRQ_CTRL_GERROR_IRQEN;
> >
> > /* Disable IRQs first */
> > ret =3D arm_smmu_write_reg_sync(smmu, 0, ARM_SMMU_IRQ_CTRL,
> > @@ -2028,22 +2052,7 @@ static int __init arm_smmu_setup_irqs(struct arm=
_smmu_device *smmu)
> > }
> > }
> >
> > - if (smmu->features & ARM_SMMU_FEAT_PRI)
> > - irqen_flags |=3D IRQ_CTRL_PRIQ_IRQEN;
> > -
> > - /* Enable interrupt generation on the SMMU */
> > - ret =3D arm_smmu_write_reg_sync(smmu, irqen_flags,
> > -      ARM_SMMU_IRQ_CTRL, ARM_SMMU_IRQ_CTRLACK);
> > - if (ret) {
> > - dev_warn(smmu->dev, "failed to enable irqs\n");
> > - goto err_free_irqs;
> > - }
> > -
> > return 0;
> > -
> > -err_free_irqs:
> > - arm_smmu_free_irqs(smmu);
> > - return ret;
> > }
> >
> > static int arm_smmu_device_disable(struct arm_smmu_device *smmu)
> > @@ -2057,7 +2066,7 @@ static int arm_smmu_device_disable(struct arm_smm=
u_device *smmu)
> > return ret;
> > }
> >
> > -static int __init arm_smmu_device_reset(struct arm_smmu_device *smmu)
> > +static int arm_smmu_device_reset(struct arm_smmu_device *smmu)
> > {
> > int ret;
> > u32 reg, enables;
> > @@ -2163,17 +2172,9 @@ static int __init arm_smmu_device_reset(struct a=
rm_smmu_device *smmu)
> > }
> > }
> >
> > - ret =3D arm_smmu_setup_irqs(smmu);
> > - if (ret) {
> > - dev_err(smmu->dev, "failed to setup irqs\n");
> > + ret =3D arm_smmu_enable_irqs(smmu);
> > + if ( ret )
> > return ret;
> > - }
> > -
> > - /* Initialize tasklets for threaded IRQs*/
> > - tasklet_init(&smmu->evtq_irq_tasklet, arm_smmu_evtq_tasklet, smmu);
> > - tasklet_init(&smmu->priq_irq_tasklet, arm_smmu_priq_tasklet, smmu);
> > - tasklet_init(&smmu->combined_irq_tasklet, arm_smmu_combined_irq_taskl=
et,
> > - smmu);
> >
> > /* Enable the SMMU interface, or ensure bypass */
> > if (disable_bypass) {
> > @@ -2181,20 +2182,16 @@ static int __init arm_smmu_device_reset(struct =
arm_smmu_device *smmu)
> > } else {
> > ret =3D arm_smmu_update_gbpa(smmu, 0, GBPA_ABORT);
> > if (ret)
> > - goto err_free_irqs;
> > + return ret;
> > }
> > ret =3D arm_smmu_write_reg_sync(smmu, enables, ARM_SMMU_CR0,
> >      ARM_SMMU_CR0ACK);
> > if (ret) {
> > dev_err(smmu->dev, "failed to enable SMMU interface\n");
> > - goto err_free_irqs;
> > + return ret;
> > }
> >
> > return 0;
> > -
> > -err_free_irqs:
> > - arm_smmu_free_irqs(smmu);
> > - return ret;
> > }
> >
> > static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu)
> > @@ -2558,10 +2555,23 @@ static int __init arm_smmu_device_probe(struct =
platform_device *pdev)
> > if (ret)
> > goto out_free;
> >
> > + ret =3D arm_smmu_setup_irqs(smmu);
> > + if ( ret )
> > + {
> > + dev_err(smmu->dev, "failed to setup irqs\n");
> > + goto out_free;
> > + }
> > +
> > + /* Initialize tasklets for threaded IRQs*/
> > + tasklet_init(&smmu->evtq_irq_tasklet, arm_smmu_evtq_tasklet, smmu);
> > + tasklet_init(&smmu->priq_irq_tasklet, arm_smmu_priq_tasklet, smmu);
> > + tasklet_init(&smmu->combined_irq_tasklet, arm_smmu_combined_irq_taskl=
et,
> > + smmu);
> > +
> > /* Reset the device */
> > ret =3D arm_smmu_device_reset(smmu);
> > if (ret)
> > - goto out_free;
> > + goto out_free_irqs;
> >
> > /*
> > * Keep a list of all probed devices. This will be used to query
> > @@ -2575,6 +2585,8 @@ static int __init arm_smmu_device_probe(struct pl=
atform_device *pdev)
> >
> > return 0;
> >
> > +out_free_irqs:
> > + arm_smmu_free_irqs(smmu);
> >
> > out_free:
> > arm_smmu_free_structures(smmu);
> > @@ -2855,6 +2867,96 @@ static void arm_smmu_iommu_xen_domain_teardown(s=
truct domain *d)
> > xfree(xen_domain);
> > }
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +static void arm_smmu_reset_for_suspend_rollback(struct arm_smmu_device=
 *smmu)
> > +{
> > + int ret =3D arm_smmu_device_reset(smmu);
> > +
> > + if ( ret )
> > + dev_err(smmu->dev, "Failed to reset during suspend rollback: %d\n",
> > + ret);
> > +}
> > +
> > +static int arm_smmu_suspend(void)
> > +{
> > + struct arm_smmu_device *smmu;
> > + int ret =3D 0;
> > +
> > + list_for_each_entry(smmu, &arm_smmu_devices, devices)
> > + {
> > + /* Abort all transactions before disable to avoid spurious bypass */
> > + ret =3D arm_smmu_update_gbpa(smmu, GBPA_ABORT, 0);
> > + if ( ret )
> > + goto fail;
>
> Should we have this here as the restore path calls arm_smmu_enable_irqs()=
?
>
> ret =3D arm_smmu_write_reg_sync(smmu, 0,
>                               ARM_SMMU_IRQ_CTRL,
>                               ARM_SMMU_IRQ_CTRLACK);
> if ( ret )
>     goto fail;

Yes, I agree. I will add the IRQ_CTRL disable here, after setting
GBPA.ABORT and before disabling the SMMU.

Thanks,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 18 16:19:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 16:19:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312148.1582317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP0fy-0000Y8-OO; Mon, 18 May 2026 16:18:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312148.1582317; Mon, 18 May 2026 16:18:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP0fy-0000Y1-LQ; Mon, 18 May 2026 16:18:42 +0000
Received: by outflank-mailman (input) for mailman id 1312148;
 Mon, 18 May 2026 16:18:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wP0fw-0000Xv-Sb
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 16:18:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP0fv-001IkX-CI
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 18:18:39 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a0b3bdc-2eae-0a2a0a5409dd-0a2a450495a0-12
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 18:18:39 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a0b3bde-1dec-0a2a45040019-d155802fdd3f-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 18:18:39 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-4891b0786beso17971385e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:18:39 -0700 (PDT)
Received: from [10.2.5.24] (wl.mlade.cb.wlnet.cz. [193.165.72.195])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48ff2cb4ae0sm114076225e9.0.2026.05.18.09.18.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 09:18:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779121118; x=1779725918; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=BpPw5/zJIR0qZbQ74z7sS+aD2QTInuFDoKI9xJxpE+s=;
        b=VdlR/OyeobrAUnGhQ4Zjt7VZG3bZneNhE69pxvwp0zgOu0qxJMGRtwJHF8Yt888UeK
         z3MCG9sg/nKrYB88AwCM0BVZrl/eRe4heXxisamUIHMrezJ1YGQ5Ej1f4cBPyDo55QRs
         bRwD1wDEYZOml929ZUCboAi8KoNWFYzj2NQMA+M45DM6iwjgpbjFynUpxOOAQNi7j5v2
         sqsMjM9PPenh6Nuv92R4G9W38jt7Y6LwYMmqJ+jDLSdNdX8Gyl11QtyikbaazAY0DL20
         aItQBc2FMTa240MCfEWQI0KEuEQZ4dbGyERFKVgXJ9EzOBawtg44rALYYrnHqr8FLMhS
         LNVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779121118; x=1779725918;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=BpPw5/zJIR0qZbQ74z7sS+aD2QTInuFDoKI9xJxpE+s=;
        b=sjNl6pdmImf/BM/mc54dProO23Bikp8/4VZWNq9wrQBCT6GPpwySFr+ewy2yGZvgGO
         Mc5XmBKQzXRmVRCEgw8LggS4tv/Lly31VpfdvlGCnEqpFGWkXvVEUCgj2bmkRdS9JK2D
         B0JwcJafLqT4LMKOMBM+c54tvwfAszmqf2t9xgO8MB4qBB1AocIOGGJxANEfV9Yj9HqH
         2prYHLyTTm5mAhJm1T58++vggsp596NDFC56/28UjtedwIRw29Xq/Vlb9Y8C7COykFeY
         QXeuTL6G062Rb0Gmx+v0eFZVMOSa9M6WOaYk3Iq81sUHQLF5HTEzmWNFdA2iBi+D42ym
         wZgw==
X-Forwarded-Encrypted: i=1; AFNElJ8DGYk6zOXru4hrQUQZGg6sQpUqMwFZelTAJ+tWMdDS8XjRAHKWEpSCwGO/wDgfX+X6nGXn09b3UN4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwQi3yy+VQNAu0Hr0YShaNKTzouhjjtUP1PyKY1Sje+WCwTpyOa
	0HCilVDz6t/FgDrJcSYHXSO3JwEqBgzM4wDcr5KCzHn8DdldDM6o2VtcSj4rEgn72Gw=
X-Gm-Gg: Acq92OGaq22aiVhMSfRrcimV3lN4bdarikT8hQW9CMH8DnzjdOyCYU8MN+UfuY8Nbxv
	7+gVFkRJtotHZL/KsfnWglHrUMvXllUDEwUzfGm8IqAaKXejIGg1JBLn9AGW/AK32QtCEula6fA
	wkWMn/thoZPvqrfbKM5jllRq7DLud9VnjNVNDkt7KFcnvKPMWrtfvle7yzRtm399Q/F31Tgob8j
	nmXwC2ZtGEEKDitp6IgqLyM+TI4ez5eOJnD5REfovO3gm1PP4Kn98fc0rwE2CW3XvwTMKBouMsK
	RvSiqnXlbGI2rD1SBIwwiKFYTQO2yyCqf864JKxOakw2WkrB7j8oLkaogfcJwMx8ydDMIi+Kwul
	438iltqJ0pn9Z5fFJalL3Bj2+ppf7sDc2BP7twUnyffYSyWAiOBZfhDNn+fqSw/bgXmoD08bKht
	PlKYNdcuC7vW+pKtiBzbrQ/blgQMqkyrV7HnVqKDeHeIfWZTA=
X-Received: by 2002:a05:600c:c087:b0:48f:d612:3c4a with SMTP id 5b1f17b1804b1-48fe60de6bdmr189702555e9.1.1779121118520;
        Mon, 18 May 2026 09:18:38 -0700 (PDT)
Message-ID: <8b37000c-1b44-4ae8-acf4-5ea3e4f069d9@suse.com>
Date: Mon, 18 May 2026 18:18:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/4] tools/xenstore: fix issue related to XSA-417
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20260429120619.1013440-1-jgross@suse.com>
 <7a911029-57ba-421d-9657-03762dfe1109@gmail.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <7a911029-57ba-421d-9657-03762dfe1109@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------6vKDRpy0r0xguvdHwOlq6kGT"
X-purgate-ID: tlsNG-ebf023/1779121119-29B7B3FF-DB875C19/10/73395122804
X-purgate-type: spam
X-purgate-size: 12457

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------6vKDRpy0r0xguvdHwOlq6kGT
Content-Type: multipart/mixed; boundary="------------Wb1oIGPfuMai8FvQltbG2Axn";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <8b37000c-1b44-4ae8-acf4-5ea3e4f069d9@suse.com>
Subject: Re: [PATCH v2 0/4] tools/xenstore: fix issue related to XSA-417
References: <20260429120619.1013440-1-jgross@suse.com>
 <7a911029-57ba-421d-9657-03762dfe1109@gmail.com>
In-Reply-To: <7a911029-57ba-421d-9657-03762dfe1109@gmail.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------Wb1oIGPfuMai8FvQltbG2Axn
Content-Type: multipart/mixed; boundary="------------CxnSkQVdbP6MzIbORzJDJMZV"

--------------CxnSkQVdbP6MzIbORzJDJMZV
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTIuMDUuMjYgMTc6NDgsIE9sZWtzaWkgS3Vyb2Noa28gd3JvdGU6DQo+IA0KPiANCj4g
T24gNC8yOS8yNiAyOjA2IFBNLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gVGhlcmUgaXMg
b25lIGNvcm5lciBjYXNlIG9mIFhTQS00MTcgd2hpY2ggd2Fzbid0IGhhbmRsZWQgY29tcGxl
dGVseQ0KPj4gd2l0aCB0aGUgcGF0Y2hlcyBiYWNrIHRoZW4uDQo+Pg0KPj4gVGhlIFhTQS00
MTcgZml4ZXMgdHJpZWQgdG8gc29sdmUgdGhlIHByb2JsZW0sIHRoYXQgYSBuZXcgZG9tVSB3
b3VsZA0KPj4gaW5oZXJpdCBhY2Nlc3MgcGVybWlzc2lvbnMgdG8gYWNjZXNzIFhlbnN0b3Jl
IGVudHJpZXMgd2l0aCB0aGF0IGRvbWlkDQo+PiBsaXN0ZWQgaW4gdGhlIGFjY2VzcyByaWdo
dHMuIEluIG9yZGVyIG5vdCB0byBtYWtlIGl0IGVhc3kgZm9yIGEgZG9tVQ0KPj4gdG8gcXVl
cnkgZXhpc3RlbmNlIG9mIGEgZG9taWQsIGFkZGluZyBwZXJtaXNzaW9uIGZvciBhIG5vbi1l
eGlzdGluZw0KPj4gZG9tYWluIGlzIG5vdCByZWplY3RlZCBieSBYZW5zdG9yZS4gVGhlIFhT
QS00MTcgcGF0Y2hlcyBzb2x2ZWQgdGhhdA0KPj4gcHJvYmxlbSBieSBhZGRpbmcgYSBmbGFn
IHRvIGEgcGVybWlzc2lvbiBlbnRyeSByZWZlcmVuY2luZyBhIG5vdA0KPj4gZXhpc3Rpbmcg
ZG9tYWluLCBpbmRpY2F0aW5nIHRoYXQgdGhlIHBlcm1pc3Npb24gc2hvdWxkIG5vdCBiZQ0K
Pj4gZWZmZWN0aXZlIGZvciBYZW5zdG9yZS4NCj4+DQo+PiBPbmUgY29ybmVyIGNhc2Ugd2Fz
IG5vdCBoYW5kbGVkOg0KPj4NCj4+IENvbnNpZGVyIGd1ZXN0IDEgYW5kIGd1ZXN0IDIgcnVu
bmluZy4gR3Vlc3QgMSBhZGRzIGd1ZXN0IDIgdG8gYmUgYWJsZQ0KPj4gdG8gYWNjZXNzIGEg
WGVuc3RvcmUgZW50cnkuIE5vdyBndWVzdCAyIGlzIHJlbW92ZWQgZnJvbSB0aGUgc3lzdGVt
IGFuZA0KPj4gYSBuZXcgZ3Vlc3QgMyB3aXRoIHRoZSBzYW1lIGRvbWlkIGFzIGd1ZXN0IDIg
aGFkIGlzIGJlaW5nIGNyZWF0ZWQuDQo+Pg0KPj4gV2hlbiBndWVzdCAzIHdvdWxkIHRyeSBu
b3cgdG8gYWNjZXNzIHRoZSBYZW5zdG9yZSBlbnRyeSwgaXQgd291bGQgZmFpbCwNCj4+IGFz
IFhlbnN0b3JlIHdvdWxkIHNlZSB0aGF0IHRoZSBYZW5zdG9yZSBlbnRyeSBpcyBvbGRlciB0
aGFuIGd1ZXN0IDMuDQo+Pg0KPj4gQnV0IGlmIGd1ZXN0IDEgaXMgbW9kaWZ5aW5nIHRoZSBw
ZXJtaXNzaW9ucyBvZiB0aGUgWGVuc3RvcmUgZW50cnkNCj4+IGFnYWluLCBlLmcuIGJ5IGFk
ZGluZyBhbm90aGVyIGRvbWFpbiwgdGhlIHBlcm1pc3Npb24gZW50cnkgZm9yIGd1ZXN0IDIN
Cj4+IHdvdWxkIGxvc2UgaXRzICJzcGVjaWFsIGZsYWciLCByZXN1bHRpbmcgaW4gZ3Vlc3Qg
MyBub3cgcmVhbGx5IGdhaW5pbmcNCj4+IGFjY2VzcyB0byB0aGUgWGVuc3RvcmUgZW50cnku
DQo+Pg0KPj4gVGhpcyBzZXJpZXMgaXMgZml4aW5nIHRoaXMgcHJvYmxlbSBieSB0aGUgZm9s
bG93aW5nIG1lYW5zOg0KPj4NCj4+IC0gSW4gb3JkZXIgdG8gYWxsb3cgZ3Vlc3RzIHRvIGtu
b3cgdGhhdCBhIFhlbnN0b3JlIGVudHJ5IHBlcm1pc3Npb24NCj4+IMKgwqAgbWlnaHQgaGF2
ZSBnb25lIHN0YWxlLCBhbGxvdyB1bnByaXZpbGVnZWQgZ3Vlc3RzIHRvIHJlY2VpdmUNCj4+
IMKgwqAgQHJlbGVhc2VEb21haW4gd2F0Y2ggZXZlbnRzLiBUaGlzIGRvZXNuJ3Qgb3BlbiBh
IHNlY3VyaXR5IGhvbGUsIGFzDQo+PiDCoMKgIHRoZSBvbmx5IGtub3dsZWRnZSB3aGljaCBj
YW4gYnkgZ2F0aGVyZWQgZnJvbSB0aGF0IGNoYW5nZSBpcyB0aGF0IGENCj4+IMKgwqAgZG9t
YWluIGlzIGdvbmUsIG5vdCB0aGF0IGEgZG9tYWluIHdpdGggYSBzcGVjaWZpYyBkb21pZCBp
cyBleGlzdGluZy4NCj4+DQo+PiAtIFdoZW4gYSBkb21haW4gaXMgcmVtb3ZlZCwgcmVtb3Zl
IGFsbCBwZXJtaXNzaW9ucyByZWxhdGluZyB0byB0aGlzDQo+PiDCoMKgIGRvbWFpbiBmcm9t
IGFsbCBYZW5zdG9yZSBlbnRyaWVzLg0KPj4NCj4+IE5vdGUgdGhhdCB0aGlzIGlzc3VlIHdh
cyBkaXNjdXNzZWQgYnkgdGhlIFhlbiBzZWN1cml0eSB0ZWFtIGFuZCB3ZQ0KPj4gZGVjaWRl
ZCBub3QgdG8gaXNzdWUgYW4gWFNBLCBhcyB0aGVyZSBhcmUgbm8ga25vd24gdXNlIGNhc2Vz
IHdoZXJlIG9uZQ0KPj4gdW5wcml2aWxlZ2VkIGd1ZXN0IHdvdWxkIGdyYW50IGFjY2VzcyB0
byBpdHMgWGVuc3RvcmUgbm9kZXMgdG8gbW9yZQ0KPj4gdGhhbiBvbmUgb3RoZXIgdW5wcml2
aWxlZ2VkIGd1ZXN0cy4NCj4+DQo+PiBXZSBkZWNpZGVkIHRvIGRlbGF5IHRoaXMgcGF0Y2gg
c2VyaWVzIHVudGlsIHRoZSB3YXRjaCBkZXB0aCBmZWF0dXJlIGhhcw0KPj4gYmVlbiBjb21t
aXR0ZWQsIGFzIHdpdGggdGhhdCBmZWF0dXJlIGF2YWlsYWJsZSBpdCBpcyBub3cgcG9zc2li
bGUgZm9yDQo+PiBhIGd1ZXN0IHRvIGhhbmRsZSB0aGUgZGVhdGggb2YgYSBzcGVjaWZpYyBk
b21haW4gaW4gYSBzYW5lIHdheS4NCj4+DQo+PiBDaGFuZ2VzIGluIFYyOg0KPj4gLSBzb21l
IG1pbm9yIGNvbW1lbnRzIGFkZHJlc3NlZA0KPj4NCj4+IERlbmlzIE11a2hpbiAoMSk6DQo+
PiDCoMKgIHhlbi9wdWJsaWM6IGludHJvZHVjZSBET01JRF9BTlkNCj4+DQo+PiBKdWVyZ2Vu
IEdyb3NzICgzKToNCj4+IMKgwqAgdG9vbHMveGVuc3RvcmVkOiBhZGQgc3VwcG9ydCBmb3Ig
ImFsbCBkb21haW5zIiBub2RlIHBlcm1pc3Npb24NCj4+IMKgwqAgdG9vbHMveGVuc3RvcmVk
OiBhbGxvdyBAcmVsZWFzZURvbWFpbiB3YXRjaCBmb3IgYWxsIGRvbWFpbnMNCj4+IMKgwqAg
dG9vbHMveGVuc3RvcmVkOiByZW1vdmUgcGVybWlzc2lvbnMgcmVsYXRlZCB0byBkZWFkIGRv
bWFpbg0KPj4NCj4+IMKgIGRvY3MvbWFuL3hsLmNmZy41LnBvZC5pbsKgwqDCoMKgwqDCoMKg
IHzCoCA0ICsrDQo+PiDCoCB0b29scy94ZW5zdG9yZWQvY29yZS5jwqDCoMKgwqDCoMKgwqDC
oMKgIHwgNDUgKysrKysrKysrKysrKystLS0tLQ0KPj4gwqAgdG9vbHMveGVuc3RvcmVkL2Rv
bWFpbi5jwqDCoMKgwqDCoMKgwqAgfCA3OCArKysrKysrKysrKysrKysrKysrKystLS0tLS0t
LS0tLS0NCj4+IMKgIHRvb2xzL3hlbnN0b3JlZC9kb21haW4uaMKgwqDCoMKgwqDCoMKgIHzC
oCAzICstDQo+PiDCoCB4ZW4vaW5jbHVkZS9wdWJsaWMvaW8veHNfd2lyZS5oIHzCoCAyICsN
Cj4+IMKgIHhlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaMKgwqDCoMKgwqDCoMKgIHzCoCA3ICsr
Kw0KPj4gwqAgNiBmaWxlcyBjaGFuZ2VkLCAxMDAgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRp
b25zKC0pDQo+Pg0KPiANCj4gUmVsZWFzZS1BY2tlZC1ieTogT2xla3NpaSBLdXJvY2hrbyA8
b2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20+DQoNCkkgYmVsaWV2ZSB0aGlzIHNlcmllcyBj
YW4gYmUgY29tbWl0dGVkIG5vdywgYXMgU3RlZmFubyBoYXMgQWNrLWVkIHBhdGNoIDE/DQoN
Cg0KSnVlcmdlbg0K
--------------CxnSkQVdbP6MzIbORzJDJMZV
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------CxnSkQVdbP6MzIbORzJDJMZV--

--------------Wb1oIGPfuMai8FvQltbG2Axn--

--------------6vKDRpy0r0xguvdHwOlq6kGT
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmoLO9wFAwAAAAAACgkQsN6d1ii/Ey+R
lAf8CmigA9dldr+ZO/QQ3kXy8ZId5XZ0EzjAcKKwwKl/oub9/W0Uzo8vcNOatmBmcBzL0ZUs4Mm6
SLsNQDgfC5C5ZhPOBBBgKEoPKmVGW4NN5D4/kvP+uy3PggKxtsIfSo2ZfOZmSSpwyAzTYVWx1Zbc
RDmYjOBC/4FPpJC+DNDr3/H8FV0sCEAm57oCa4IDIWWebQReEDwwW7W6hFZxE4iKMP0FQjrdhAYZ
D3fwj7uVUeHCiOQ5PclPCo64B2RlcHCezekOPGEKdHmHF7hs69z085i7OHfms9oiWyoiqnK9pweS
tdZd6eFmM5FoXY0Br8VEvxvfEeh/t9OK3MI+rdlawQ==
=X0YZ
-----END PGP SIGNATURE-----

--------------6vKDRpy0r0xguvdHwOlq6kGT--


From xen-devel-bounces@lists.xenproject.org Mon May 18 16:49:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 16:49:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312160.1582327 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP1A4-00056j-Vw; Mon, 18 May 2026 16:49:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312160.1582327; Mon, 18 May 2026 16:49:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP1A4-00056c-SW; Mon, 18 May 2026 16:49:48 +0000
Received: by outflank-mailman (input) for mailman id 1312160;
 Mon, 18 May 2026 16:49:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wP1A3-00056W-68
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 16:49:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP1A1-00FBPO-Pn
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 18:49:45 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0b4303-e002-0a2a0a5209dd-0a2a4507d2ac-36
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 18:49:45 +0200
Received: from [209.85.208.174] (helo=mail-lj1-f174.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0b4329-229c-0a2a45070019-d155d0aee59d-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 18:49:45 +0200
Received: by mail-lj1-f174.google.com with SMTP id
 38308e7fff4ca-394413a63d3so22407411fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 09:49:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779122985; cv=none;
        d=google.com; s=arc-20240605;
        b=Q7ahKdAi/ytb+adxfgwau/iRKzgThadUCXpjzxDW8HvKVtUXX+Dqt6IZNdIHqxq9tq
         p1fOB1rfXPTJ0lLBMBEf1+SwZiGaS+8QdhQ9o0ntQt2YaGtxVRJN9iTF2OK2X2oo4apV
         /WmMa4erZdYTqptQGSgiIujuydTNzAvVcofFvsqsRBaf7+VCp78JWVhVUHB2QRmcz18t
         /aeYEkdOBfy8GWsl37r7lNttnrNyi3grqBsITlIArz5QSD/zIRdJcdXfLpHoex6vMVEX
         NKDDN7pdvA+wxIoouLvTuaNgCDMrr7NqEk4Sx838txwlCuzPIyHIVCupAXzefBxCZgBd
         zt9g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=2Apv+qMKbA7fz7/8la2yYzKpT8LQKv7OimyMDcCXInk=;
        fh=SFtdlMni3BnFH+oTSZbVgVF1hLyFxrwlVmTI+BqD6+c=;
        b=Y053u7+ksSq2USO2mZpqe1qQaqWbMm62lIzalwSMmljQkSe6j1ipUKotuFPvA8ypYg
         LmxxBeRKlR8ixJiF/CmCZLjhIjJ+BcqLXfRo53pfMT8amKNr5aZqctmV33Udp2TZ6GaC
         jNWYLll0intSYunqxw7hgWLCbWEwPmPKeNgKRaofto3+ZccHHsU1hDDTTLEW2rLiuzdL
         01wfzhRuaVJN9bSg41rRs+S16FWExhonlvKbsUWSsSnibvPqXOE+jcGQIiagYph3hUG0
         LtNU5tcSVeD4f6v0rKknb/GbiJFzAURCbtgh8iJW1rOrSprtJRW6r4lHbFIAxvfGeEpr
         9rww==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779122985; x=1779727785; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2Apv+qMKbA7fz7/8la2yYzKpT8LQKv7OimyMDcCXInk=;
        b=EePzDma6IlvH4nRQtUj4U1aZ/edlVY0sCsBpew385YYTX1zvkNdnAOJ7TqaSlegUQl
         A51JOQ1GVeldm1rszotioy5roT4w2jvk+tmY+dNLDyrtcH+D4eW0xrHDCT4El3TZ4MHT
         k03E50MlmKZDZ81fD08DpptyeQybarZg8UYx/IEhe64j+b9ZoGtVvBhTCq4FfzuGb1gx
         qchOtL9VZLVgfGW/6gwfT9c2YEZdOGd63YSYH9JwPtBxtvIL8CkFAJ54uJ+2c+SVzVq7
         PPRiKs1o+0aEPhf3k4IjVKgYKeF9ekS4wD+fIknRN5VD//CnWxkOILAc8UtlpTNZ0ymB
         2CkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779122985; x=1779727785;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=2Apv+qMKbA7fz7/8la2yYzKpT8LQKv7OimyMDcCXInk=;
        b=XKE9iBYLgCPBBNWJ8JBAHA37rPkiD4vqUWa/VB4rHePaGSKgnm4KM79IG3/z+S1mPB
         68i8GCnfOzwPZLrd0FDSQqh2CpD19MjXGI5Qu5sz60FbPEsfYRQjUjx92iuNMFkUCeom
         DkaTB8RVQbii5vZaircpeGff26OPqT77K2yfUJ+Tnxb0j85kurIOyks5IhXTXLtgoqru
         huRB7eNP5+ipcDhvWahZjXfW28YKT9xGj5rxhEI09npRpFw7ex60MVBCrRTTN+vV/0L2
         Kp10t5XjD+mbgH23zpppMHM+J5THpqzPNDzz17F8Nj6rr0HStbCGbnMQ45X2hEr03r1a
         mXCQ==
X-Gm-Message-State: AOJu0Yz3XidFHLwVkSED/zSQvi01U6q+rydyjSeHIU9+CgqZ8XwVQUdI
	gOFBWMelpSRvrXM4Er8Y6NNROw9MDwCn/r738nqqMMUZICZZZrMRtP0++I3C7feHX/3CgahwKcw
	bne7AP5JakRtSQTMohVKlXGv0U+A8ta4=
X-Gm-Gg: Acq92OG/vraX2soY3FJlrnP49QP58E/UP8BAFJaHcw5Tn/Sn0i5zYJAPtBc7+ERaNE9
	Qp+Nn0xTF93mBQdgftdpFbB9Rqhr3QEGZgHcRhziOunS8QzCbRBDxa84Wp+GWUiDi2msmoy292F
	4eOFX9WFM3wnWDh7CzY50/tZDcUijQITLwZWgAm2cDCMSnpuLHGabGJEV60ofhwCxvvO7IlwZPv
	1rcGpC9lqJNIAL5+lrK3Tdh7IgX6HqY7bHntQnGIPylu/e0eI9LRobz4Jm6XVAWcsCvPemWZ96t
	3WNX
X-Received: by 2002:a2e:a995:0:b0:393:7ac9:2d8a with SMTP id
 38308e7fff4ca-39561c05799mr48855741fa.2.1779122984661; Mon, 18 May 2026
 09:49:44 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778605274.git.mykola_kvach@epam.com> <2268857aa7eef95444169564c17f7e9a6f59b1c5.1778605274.git.mykola_kvach@epam.com>
 <8bdaa98b-94cb-43a7-a02d-d2ec1e899fb9@gmail.com>
In-Reply-To: <8bdaa98b-94cb-43a7-a02d-d2ec1e899fb9@gmail.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 May 2026 19:49:33 +0300
X-Gm-Features: AVHnY4IYJOC8Bgg9Ct-BK3EGHlPnRUZKmBydfbolZI9I0alg-kxqmjx27zl3lWQ
Message-ID: <CAGeoDV9FU7kgm4eMZcOaxmEAkA6SnSimB5G_ux=Uh1Va7bmVJA@mail.gmail.com>
Subject: Re: [PATCH v9 13/13] xen/arm: Add host system suspend backend
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ef75cf/1779122985-20563C48-885141D0/0/0
X-purgate-type: clean
X-purgate-size: 11451

Hi Oleksandr,

Thank you for the review.

On Sun, May 17, 2026 at 4:00=E2=80=AFPM Oleksandr Tyshchenko
<olekstysh@gmail.com> wrote:
>
>
>
> On 5/12/26 20:07, Mykola Kvach wrote:
>
> Hello Mykola
>
> > From: Mirela Simonovic <mirela.simonovic@aggios.com>
> >
> > Add the Xen-wide suspend/resume backend used after a control-domain
> > vPSCI SYSTEM_SUSPEND request has been accepted. The vPSCI policy,
> > runtime driver blockers and control-domain sequencing checks are handle=
d
> > by the preceding commit; this change adds the code that actually drives
> > the host suspend attempt.
> >
> > The backend runs from a tasklet scheduled on pCPU0, because non-boot CP=
Us
> > are disabled during suspend. It freezes domains, disables the scheduler
> > and then disables non-boot CPUs.
> >
> > Host-side suspend participants are handled in phases. IOMMU and console
> > state are suspended first. Local IRQs are then disabled before suspendi=
ng
> > timer and GIC state. On resume or failure, the completed suspend phases
> > are unwound in reverse: GIC and timer state are restored while IRQs are
> > still disabled, local IRQs are restored, and then console and IOMMU sta=
te
> > are restored.
> >
> > On boot, init_ttbr is normally initialized during secondary CPU hotplug=
.
> > On uniprocessor systems this can leave init_ttbr uninitialized, so set =
it
> > from the boot CPU before entering suspend.
> >
> > Note: the code is behind CONFIG_HAS_SYSTEM_SUSPEND, which is currently
> > only selected when UNSUPPORTED is set and MPU is not set.
> >
> > Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
> > Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
> > Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>
>
> Patch looks good to me, just one question to clarify ...
>
>
> > ---
> > Changes in V9:
> > - Split vPSCI availability policy, runtime host-suspend blockers and th=
e
> >    domain-readiness precheck into the preceding commit.
> > - Trigger the host suspend backend from the control-domain SYSTEM_SUSPE=
ND
> >    path.
> > - Reorder the host suspend/resume phases so the timer is suspended with
> >    local IRQs disabled and local IRQs are restored after the GIC and ti=
mer
> >    resume paths, before the console and IOMMU resume paths.
> > - Move HAS_HWDOM_SYSTEM_SUSPEND and related logic to policy patch.
> >
> > Changes in V8:
> > - Add a pre-suspend check in system_suspend() after scheduler_disable()=
 to
> >    require all domains to be in the shut down state with SHUTDOWN_suspe=
nd
> >    before proceeding with the global suspend flow.
> > - Drop the common-level depends on !ARM_64 || !SYSTEM_SUSPEND from
> >    CONFIG_HAS_HWDOM_SHUTDOWN_ON_SUSPEND and model the ARM64 suspend cas=
e
> >    with an arch-selected capability instead.
> > - Rename CONFIG_HAS_HWDOM_SHUTDOWN_ON_SUSPEND to
> >    CONFIG_HAS_HWDOM_SYSTEM_SUSPEND.
> > - Rename need_hwdom_shutdown() to want_hwdom_shutdown().
> >
> > Changes in V7:
> > - Control domain is responsible for host suspend.
> > - Add an empty inline host_system_suspend() function when SYSTEM_SUSPEN=
D
> >    config is disabled.
> > - Use IS_ENABLED() for config checking instead of #ifdef.
> > - Replace #ifdef checks in domain_shutdown() with IS_ENABLED() to simpl=
ify
> >    control flow.
> > - Factor hardware domain shutdown condition into a helper
> >    (need_hwdom_shutdown()) to avoid preprocessor directives inside the
> >    function.
> > - Squash with iommu suspend/resume commit.
> > ---
> >   xen/arch/arm/Kconfig               |   1 +
> >   xen/arch/arm/include/asm/mm.h      |   2 +
> >   xen/arch/arm/include/asm/suspend.h |   2 +
> >   xen/arch/arm/mmu/smpboot.c         |   2 +-
> >   xen/arch/arm/suspend.c             | 140 ++++++++++++++++++++++++++++=
+
> >   xen/arch/arm/vpsci.c               |  10 ++-
> >   6 files changed, 154 insertions(+), 3 deletions(-)
> >
> > diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> > index 54a5bfb9ae..119bc00674 100644
> > --- a/xen/arch/arm/Kconfig
> > +++ b/xen/arch/arm/Kconfig
> > @@ -9,6 +9,7 @@ config ARM_64
> >       select 64BIT
> >       select HAS_DOMAIN_TYPE
> >       select HAS_FAST_MULTIPLY
> > +     select HAS_SYSTEM_SUSPEND if !MPU && UNSUPPORTED
> >       select HAS_VPCI_GUEST_SUPPORT if PCI_PASSTHROUGH
> >
> >   config ARM
> > diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/m=
m.h
> > index 2eb8465aa9..de119cad3a 100644
> > --- a/xen/arch/arm/include/asm/mm.h
> > +++ b/xen/arch/arm/include/asm/mm.h
> > @@ -360,6 +360,8 @@ static inline void page_set_xenheap_gfn(struct page=
_info *p, gfn_t gfn)
> >       } while ( (y =3D cmpxchg(&p->u.inuse.type_info, x, nx)) !=3D x );
> >   }
> >
> > +void set_init_ttbr(lpae_t *root);
> > +
> >   #endif /*  __ARCH_ARM_MM__ */
> >   /*
> >    * Local variables:
> > diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/=
asm/suspend.h
> > index 87db12eac3..a194dbb21a 100644
> > --- a/xen/arch/arm/include/asm/suspend.h
> > +++ b/xen/arch/arm/include/asm/suspend.h
> > @@ -40,11 +40,13 @@ int prepare_resume_ctx(void);
> >   void hyp_resume(void);
> >   bool host_system_suspend_allowed(void);
> >   void host_system_suspend_disable(const char *reason);
> > +void host_system_suspend(struct domain *d);
> >
> >   #else /* !CONFIG_SYSTEM_SUSPEND */
> >
> >   static inline bool host_system_suspend_allowed(void) { return false; =
}
> >   static inline void host_system_suspend_disable(const char *reason) {}
> > +static inline void host_system_suspend(struct domain *d) {}
> >
> >   #endif
> >
> > diff --git a/xen/arch/arm/mmu/smpboot.c b/xen/arch/arm/mmu/smpboot.c
> > index 37e91d72b7..ff508ecf40 100644
> > --- a/xen/arch/arm/mmu/smpboot.c
> > +++ b/xen/arch/arm/mmu/smpboot.c
> > @@ -72,7 +72,7 @@ static void clear_boot_pagetables(void)
> >       clear_table(boot_third);
> >   }
> >
> > -static void set_init_ttbr(lpae_t *root)
> > +void set_init_ttbr(lpae_t *root)
> >   {
> >       /*
> >        * init_ttbr is part of the identity mapping which is read-only. =
So
> > diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
> > index a571035d2c..b1cc67fbdb 100644
> > --- a/xen/arch/arm/suspend.c
> > +++ b/xen/arch/arm/suspend.c
> > @@ -1,10 +1,16 @@
> >   /* SPDX-License-Identifier: GPL-2.0-only */
> >
> > +#include <asm/gic.h>
> >   #include <asm/psci.h>
> >   #include <asm/suspend.h>
> >
> > +#include <xen/console.h>
> > +#include <xen/cpu.h>
> > +#include <xen/iommu.h>
> >   #include <xen/lib.h>
> > +#include <xen/sched.h>
> >   #include <xen/serial.h>
> > +#include <xen/tasklet.h>
> >
> >   struct resume_cpu_context resume_cpu_context;
> >
> > @@ -44,6 +50,140 @@ void host_system_suspend_disable(const char *reason=
)
> >              reason ? reason : "unsupported suspend/resume path");
> >   }
> >
> > +/* Xen suspend. data identifies the domain that initiated suspend. */
> > +static void system_suspend(void *data)
> > +{
> > +    int status;
> > +    unsigned long flags;
> > +    struct domain *d =3D (struct domain *)data;
> > +
> > +    BUG_ON(system_state !=3D SYS_STATE_active);
> > +
> > +    system_state =3D SYS_STATE_suspend;
> > +
> > +    printk("Xen suspending...\n");
> > +
> > +    freeze_domains();
> > +    scheduler_disable();
> > +
> > +    /*
> > +     * Non-boot CPUs have to be disabled on suspend and enabled on res=
ume
> > +     * (hotplug-based mechanism). Disabling non-boot CPUs will lead to=
 PSCI
> > +     * CPU_OFF to be called by each non-boot CPU. Depending on the und=
erlying
> > +     * platform capabilities, this may lead to the physical powering d=
own of
> > +     * CPUs.
> > +     */
> > +    status =3D disable_nonboot_cpus();
> > +    if ( status )
> > +    {
> > +        system_state =3D SYS_STATE_resume;
> > +        goto resume_nonboot_cpus;
> > +    }
> > +
> > +    console_start_sync();
> > +    status =3D iommu_suspend();
> > +    if ( status )
> > +    {
> > +        system_state =3D SYS_STATE_resume;
> > +        goto resume_end_sync;
> > +    }
> > +
> > +    status =3D console_suspend();
> > +    if ( status )
> > +    {
> > +        dprintk(XENLOG_ERR, "Failed to suspend the console, err=3D%d\n=
", status);
> > +        system_state =3D SYS_STATE_resume;
> > +        goto resume_iommu;
> > +    }
> > +
> > +    local_irq_save(flags);
> > +
> > +    time_suspend();
> > +
> > +    status =3D gic_suspend();
> > +    if ( status )
> > +    {
> > +        system_state =3D SYS_STATE_resume;
> > +        goto resume_time;
> > +    }
> > +
> > +    set_init_ttbr(xen_pgtable);
> > +
> > +    /*
> > +     * Enable identity mapping before entering suspend to simplify
> > +     * the resume path
> > +     */
> > +    update_boot_mapping(true);
> > +
> > +    if ( prepare_resume_ctx() )
> > +    {
> > +        status =3D call_psci_system_suspend();
> > +        /*
> > +         * If suspend is finalized properly by above system suspend PS=
CI call,
> > +         * the code below in this 'if' branch will never execute. Exec=
ution
> > +         * will continue from hyp_resume which is the hypervisor's res=
ume point.
> > +         * In hyp_resume CPU context will be restored and since link-r=
egister is
> > +         * restored as well, it will appear to return from prepare_res=
ume_ctx.
> > +         * The difference in returning from prepare_resume_ctx on syst=
em suspend
> > +         * versus resume is in function's return value: on suspend, th=
e return
> > +         * value is a non-zero value, on resume it is zero. That is wh=
y the
> > +         * control flow will not re-enter this 'if' branch on resume.
> > +         */
> > +        if ( status )
> > +            dprintk(XENLOG_WARNING, "PSCI system suspend failed, err=
=3D%d\n",
> > +                    status);
> > +    }
>
>
>
> ... unless I am mistaken, the boot CPU appears to bypass errata checks
> on resume.
>
> Non-boot (secondary) CPUs: before suspending, Xen calls
> disable_nonboot_cpus(). Upon resume, it calls enable_nonboot_cpus(),
> which utilizes the standard secondary CPU bring-up path. Secondary CPUs
> boot through init_secondary() -> start_secondary(), where Xen explicitly
> calls functions such as check_local_cpu_errata(), etc. So, secondary
> CPUs are fine.
>
> Boot CPU: when CPU0 wakes up from SYSTEM_SUSPEND, it enters
> hyp_resume(), calls cpu_init(), and branches directly back into the
> middle of system_suspend(), where it resumes the GIC, timer, IOMMU, etc.
> At no point in hyp_resume() or system_suspend() does CPU0 call
> check_local_cpu_errata().
>
> Could you, please, clarify why this is OK?

Good catch, thanks.

I agree there is a gap here. Secondary CPUs go through the normal
secondary bring-up path after resume, so they run the local CPU
errata/workaround handling again. The boot CPU, however, resumes through
hyp_resume() and returns directly to the suspend path.

I will rework this so that the boot CPU also re-applies the relevant
local CPU errata/workaround handling after SYSTEM_SUSPEND, before
continuing with the rest of the resume sequence.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 18 17:20:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 17:20:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312173.1582335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP1df-0002Oe-AX; Mon, 18 May 2026 17:20:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312173.1582335; Mon, 18 May 2026 17:20:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP1df-0002OX-7y; Mon, 18 May 2026 17:20:23 +0000
Received: by outflank-mailman (input) for mailman id 1312173;
 Mon, 18 May 2026 17:20:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3c1a4a3e000f373@swg.vates.tech>)
 id 1wP1de-0002OR-H1
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:20:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP1dd-009CLD-TP
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 19:20:21 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3c1a4a3e000f373@swg.vates.tech>)
 id 6a0b4a3e-bab6-0a2a0a5309dd-0a2a450c92fa-48
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 19:20:21 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e3c1a4a3e000f373@swg.vates.tech>)
 id 6a0b4a55-62f1-0a2a450c0019-b9ff1c2292af-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 19:20:21 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e3c1a4a3e000f373.006 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 18 May 2026 17:20:16 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id A244E862B6;
 Mon, 18 May 2026 19:20:15 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=hra9r/K7igTQFEEyjuEvXlR5DPULI1rg28Vp8J2SGCc=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=kUX/B+Zab2MOGdzdLl8xorHiE3bocZ2W5/i3+s9YFD14pkgUcdSSNIheZpgtQnaqmb1o7JcbI
 dv8WBUvXEK2iMxBuzR69hYAIRFwkOEEidPkGA34Gm0Mp0snC4CU2bmEx0qEpyTGPlOi6t9iijaI
 dYLxeX4tHRydCFNAH/cmwVYBOvIEVJsM1RUMCPg/C3M6VFfbWZhWpHAmD0BPx4SwQ1fgGl94Eh1
 rDCpfznW3wDzpKpZttUvD6xfKmCYdqP0e0v7hUIleEori4VB1LMOcIw3KO8OuoDmJWj1eunYs+v
 IRIPyzoyv7Y9UA55rP42DBPaPXG5fsspZed1bkUbfi6Q==
X-Zone-Loop: a6ca151f86f1954769f84cd7dba69e910b8496af4835
x-campaign-type: default
x-transaction-id: 027ce0ef-2aac-4fc7-bfa1-bd925e781530
x-swg-uid: 01-919c3f49-d901-4964-b27c-2c025e2667e7
X-Mailer: Sweego
Message-ID:
 <1779124816.8631fc262581453bbf619ec5b2062170.19e3c1a4a3e000f373@vates.tech>
x-swg-bid: 1779124816.8631fc262581453bbf619ec5b2062170.19e3c1a4a3e000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Mon, 18 May 2026 19:20:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/5] Small PCI refactoring
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <cover.1779116255.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
Autocrypt: addr=teddy.astie@vates.tech; keydata=
 xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7LTBVHV/XO
 Zw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJT4ny+OGntnJntUoR
 KRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJAWicutjkkUgd28Bh6HV9EIumH
 tCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaT
 VqMdqul07o72m3eA2mf+LMu9a04FX/d4wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/
 EoucejoZ5SH49ksmVAmKOLktOaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+S
 PhHar7TPKjFz0G3DPNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89
 MXfQXZ3qt1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
 LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWjmoACGwME
 CwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNzuyOVCskwfUZPla6Z
 pd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp0x0HfuhcYfAYPR46XHTvjaJE
 v99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuROxdK8G+YHccJY8PvWSq2K2yiae2KGiAv
 1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhP
 eP3IdpfWc8cyRLXF06Rk46YMYCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcT
 UwgnYlFRk2FLq0QeKEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9
 Egr/Wmu3MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
 f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEMAKiQiZa3
 yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ3DbVf+en3/FvdVZg
 2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTmetSG5/52AjtmPFtlXAk0NmLv
 fJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0s3109sJeXT5ImVdphFs9cvyZyBT9t1Pb
 Rowv58EgV0zE4hbAeVkULAbxFV5b/ExTjjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKb
 Yu6NCfiHfEyB3Xyg9hfdrRgjMRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ov
 XoK4jm+Py0FiUGUaA6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/
 eVtR2Q1wZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
 IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWjmoACGwwA
 CgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiVoUiHYN5QwhnbZnsa
 JDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764QxyX6rld2f2RcWkDuBHun55ZWXj
 by8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk/dS0XTOQi2wVUb17sW/+ybCEokdVacZG
 zOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fuoGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+
 lOWSvdNHgoEkWR0RXBPQjnGmLKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/Off
 O485NOTKwGOxyWb006cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR
 8ULR9nX0LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
 x9fhaZEsniw8/bYgC3igkk5YJiOa
In-Reply-To: <cover.1779116255.git.teddy.astie@vates.tech>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------wsDScAUdj85lIBzS7DRc1Uw9"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779124815832
X-purgate-ID: tlsNG-d25034/1779124821-F5585CF5-002AD657/0/0
X-purgate-type: clean
X-purgate-size: 11125

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------wsDScAUdj85lIBzS7DRc1Uw9
Content-Type: multipart/mixed; boundary="------------eViBguofPDE0pRtXSMXpjhGo";
 protected-headers="v1"
From: Teddy Astie <teddy.astie@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Jason Andryuk <jason.andryuk@amd.com>
Message-ID: <70b597da-e564-4f97-b22d-a647b6497a0d@vates.tech>
Subject: Re: [PATCH 0/5] Small PCI refactoring
References: <cover.1779116255.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1779116255.git.teddy.astie@vates.tech>

--------------eViBguofPDE0pRtXSMXpjhGo
Content-Type: multipart/mixed; boundary="------------zvnv6f4a0PpngRFwpPYNjlmx"

--------------zvnv6f4a0PpngRFwpPYNjlmx
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

TGUgMTgvMDUvMjAyNiDDoCAxNzoyMiwgVGVkZHkgQXN0aWUgYSDDqWNyaXTCoDoNCj4gVGhl
IGdvYWwgb2YgdGhpcyBzZXJpZXMgaXMgdG8gbWFrZSBzb21lIHJlZmFjdG9yaW5nIG9mIHNv
bWUNCj4gcGNpIHByaW1pdGl2ZXMgdG8gaW1wcm92ZSBjb2RlZ2VuIGFuZCBtYWtlIGNvZGUg
bGVzcyB2ZXJib3NlLg0KPiANCj4gQSBiaWcgY2h1bmsgb2YgaXQgaXMgY29udmVydGluZyBt
YW55IHBsYWNlcyB3aGVyZSAoc2VnLCBidXMsIGRldiwgZm4pDQo+IGlzIHNwbGl0IGludG8g
bXVsdGlwbGVzIHZhcmlhYmxlcyBhbmQgY29udmVydCBpdCBpbnRvIGJlaW5nIGp1c3QNCj4g
cGNpX3NiZGZfdCwgaW4gcGFydGljdWxhciBpbiBzb21lIFBDSSBmdW5jdGlvbiBwYXJhbWV0
ZXJzIHRvIHJlZHVjZQ0KPiBwYXJhbWV0ZXIgY291bnQgd2hpY2ggdXN1YWxseSB0cmFuc2xh
dGUgaW50byBsZXNzIHJlZ2lzdGVycyB0byBwYXNzDQo+IHRvIHRoZSBmdW5jdGlvbi4gTW9y
ZW92ZXIsIHdlIGFsc28gYXZvaWQgdHJhbnNsYXRpbmcgYmFjayBhbmQgZm9ydGgNCj4gYmV0
d2VlbiBwY2lfc2JkZl90IGFuZCBpbmRpdmlkdWFsIChzZWcsIGJ1cywgZGV2LCBmbikuDQo+
IA0KPiBMYXRlc3QgcGF0Y2ggYXR0ZW1wdHMgdG8gaW1wcm92ZSBjb2RlZ2VuIG9mIHBjaV9j
b25mX3tyZWFkLHdyaXRlfU4oKQ0KPiBieSBtYWtpbmcgdGhlbSBpbmxpbmUgc3BlY2lhbGl6
ZWQgdmFyaWFudHMgb2YgcGNpX21tY2ZnX3tyZWFkLHdyaXRlfSgpDQo+IGluIG9yZGVyIHRv
IGVsaW1pbmF0ZSBhIHBhcnRpY3VsYXIgYHN3aXRjaCAobGVuKWAgYXQgY29tcGlsZSB0aW1l
Lg0KPiANCj4gTm8gaW50ZW5kZWQgZnVuY3Rpb25hbCBjaGFuZ2UsIGFzaWRlIHNvbWUgcGFy
dHMgb2YgdGhlIGNvZGViYXNlIHRoYXQgd2lsbA0KPiBub3cgY29ycmVjdGx5IGhhbmRsZSBQ
Q0kgc2VnbWVudCB3aGVuIHBhcnNlZCB3aGlsZSBpdCB3YXMgcHJldmlvdXNseQ0KPiBpZ25v
cmVkIChlLmcgZGJncCkuDQo+IA0KPiBCbG9hdC1vLW1ldGVyIGlzIHByZXR0eSB0ZWxsaW5n
DQo+IA0KPiBhZGQvcmVtb3ZlOiA0LzIgZ3Jvdy9zaHJpbms6IDExLzE0IHVwL2Rvd246IDUy
OS8tMTQ3MCAoLTk0MSkNCj4gRnVuY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb2xkICAgICBuZXcgICBkZWx0YQ0KPiBwY2lfbW1jZmdfYmFzZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0gICAgIDEwNiAgICArMTA2DQo+IHBhcnNlX3Bj
aV9zYmRmX3NlZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAgICAgIDg4ICAgICAr
ODgNCj4gcGFyc2VfcGNpX3NiZGYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt
ICAgICAgODUgICAgICs4NQ0KPiBwY2lfZGV2X2Jhc2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC0gICAgICA1NiAgICAgKzU2DQo+IHBjaV9jb25mX3JlYWQxNiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA5MiAgICAgMTE4ICAgICArMjYNCj4gcGNpX2Nv
bmZfcmVhZDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkyICAgICAxMTcgICAg
ICsyNQ0KPiBlaGNpX2RiZ3BfaW5pdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2
MjkgICAgIDY1MiAgICAgKzIzDQo+IHBjaV9jb25mX3JlYWQzMiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA5NCAgICAgMTE2ICAgICArMjINCj4gcGNpX2NvbmZfd3JpdGUzMiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg4ICAgICAxMDkgICAgICsyMQ0KPiBzeW1i
b2xzX25hbWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDY0MzUgIDEwNjQ1MiAg
ICAgKzE3DQo+IHN5bWJvbHNfc29ydGVkX29mZnNldHMgICAgICAgICAgICAgICAgICAgICA1
OTY3MiAgIDU5Njg4ICAgICArMTYNCj4gcGNpX2NvbmZfd3JpdGUxNiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDk0ICAgICAxMDkgICAgICsxNQ0KPiBwY2lfY29uZl93cml0ZTgg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTQgICAgIDEwOCAgICAgKzE0DQo+IHJl
c2VydmVfdW5pdHlfbWFwX2Zvcl9kZXZpY2UgICAgICAgICAgICAgICAgIDQzNCAgICAgNDQ1
ICAgICArMTENCj4gc3ltYm9sc19vZmZzZXRzICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDMxOTIwICAgMzE5MjQgICAgICArNA0KPiBtbWNmZ19pbnRlcmNlcHRfd3JpdGUgICAgICAg
ICAgICAgICAgICAgICAgICAxOTQgICAgIDE5MyAgICAgIC0xDQo+IGFkZF9vbmVfdXNlcl9y
bXJyICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY1MyAgICAgNjQ0ICAgICAgLTkNCj4g
X19maW5kX2RiZ3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg3ICAgICAg
NjAgICAgIC0yNw0KPiBwY2lfZGV2aWNlX2RldGVjdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgODkgICAgICA1NSAgICAgLTM0DQo+IHBjaV9tbWNmZ193cml0ZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDE5NyAgICAgMTUyICAgICAtNDUNCj4gX3NjYW5fcGNpX2Rl
dmljZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjg2ICAgICAyNDEgICAgIC00NQ0K
PiBwYXJzZV9pdnJzX2lvYXBpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOTIgICAg
IDIzNSAgICAgLTU3DQo+IHBhcnNlX3JtcnJfcGFyYW0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQ4NCAgICAgNDIwICAgICAtNjQNCj4gcmVnaXN0ZXJfb25lX3JtcnIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMzg5ICAgICAzMjQgICAgIC02NQ0KPiBwYXJzZV9pdnJz
X2hwZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNDkgICAgIDE4NCAgICAgLTY1
DQo+IHBhcnNlX2l2bWRfcGFyYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY1MSAg
ICAgNTcwICAgICAtODENCj4gYWNwaV9wYXJzZV9kbWFyICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyNjI1ICAgIDI1MjAgICAgLTEwNQ0KPiBnZXRfdmlydCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMDYgICAgICAgLSAgICAtMTA2DQo+IHBjaV9tbWNm
Z19yZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4OSAgICAgICAtICAgIC0x
ODkNCj4gbnMxNjU1MF9pbml0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMjA1
ICAgIDMwMDIgICAgLTIwMw0KPiBhY3BpX3BhcnNlX2Rldl9zY29wZSAgICAgICAgICAgICAg
ICAgICAgICAgIDE0NjUgICAgMTA5MSAgICAtMzc0DQo+IA0KPiBUZWRkeSBBc3RpZSAoNSk6
DQo+ICAgIHBjaTogSW50cm9kdWNlIHBhcnNlX3BjaV9zYmRme19zZWd9KCkNCj4gICAgdnRk
OiBVc2UgcGNpX3NiZGZfdCBpbiBhY3BpX3BhcnNlX2Rldl9zY29wZSgpDQo+ICAgIHBjaTog
VXNlIHBjaV9zYmRmX3QgaW4gcGNpX2RldmljZV9kZXRlY3QoKQ0KPiAgICBwY2k6IFBhcnNl
IGludG8gcGNpX3NiZGZfdCBkaXJlY3RseQ0KPiAgICBSRkM6IHBjaTogTWlncmF0ZSBwY2lf
bW1jZmdfe3JlYWQsd3JpdGV9KCkgdG8gcGNpLmMNCj4gDQo+ICAgeGVuL2FyY2gveDg2L3B2
L3JvLXBhZ2UtZmF1bHQuYyAgICAgICAgICB8ICAgMyArLQ0KPiAgIHhlbi9hcmNoL3g4Ni94
ODZfNjQvbW1jb25maWcuaCAgICAgICAgICAgfCAgNDMgLS0tLS0tLS0NCj4gICB4ZW4vYXJj
aC94ODYveDg2XzY0L21tY29uZmlnXzY0LmMgICAgICAgIHwgMTA2ICsrKystLS0tLS0tLS0t
LS0tLS0tDQo+ICAgeGVuL2FyY2gveDg2L3g4Nl82NC9wY2kuYyAgICAgICAgICAgICAgICB8
IDEyMiArKysrKysrKysrKysrKysrKysrKystLQ0KPiAgIHhlbi9kcml2ZXJzL2NoYXIvZWhj
aS1kYmdwLmMgICAgICAgICAgICAgfCAgMzUgKysrLS0tLQ0KPiAgIHhlbi9kcml2ZXJzL2No
YXIvbnMxNjU1MC5jICAgICAgICAgICAgICAgfCAgMjQgKystLS0NCj4gICB4ZW4vZHJpdmVy
cy9jaGFyL3hoY2ktZGJjLmMgICAgICAgICAgICAgIHwgICA2ICstDQo+ICAgeGVuL2RyaXZl
cnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2FjcGkuYyB8ICAyNiArKy0tLQ0KPiAgIHhlbi9k
cml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jICAgICAgICAgICAgfCAgMTYgKy0tDQo+ICAgeGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2RtYXIuYyAgICAgICB8ICA4MCArKysrKystLS0t
LS0tLS0NCj4gICB4ZW4vZHJpdmVycy9wY2kvcGNpLmMgICAgICAgICAgICAgICAgICAgIHwg
IDE4ICsrKysNCj4gICB4ZW4vaW5jbHVkZS94ZW4vcGNpLmggICAgICAgICAgICAgICAgICAg
IHwgIDExICstDQo+ICAgMTIgZmlsZXMgY2hhbmdlZCwgMjQzIGluc2VydGlvbnMoKyksIDI0
NyBkZWxldGlvbnMoLSkNCj4gDQoNClRoZXJlIGFyZSBzb21lIGlzc3VlcyB3aXRoIG91ciBt
YWlsIHByb3ZpZGVyIGZvciB0aGUgY292ZXIgbGV0dGVyIGFuZCANCnNvbWUgd2hpdGVzcGFj
ZSBpc3N1ZXMgaW4gb25lIG9mIHRoZSBwYXRjaCwgd2lsbCByZXNlbmQgdG9tb3Jyb3cgDQoo
aG9wZWZ1bGx5IGNvcnJlY3RseSB0aGlzIHRpbWUpLg0KDQpUZWRkeQ0K
--------------zvnv6f4a0PpngRFwpPYNjlmx
Content-Type: application/pgp-keys; name="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Disposition: attachment; filename="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7L
TBVHV/XOZw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJ
T4ny+OGntnJntUoRKRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJA
WicutjkkUgd28Bh6HV9EIumHtCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO
8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaTVqMdqul07o72m3eA2mf+LMu9a04FX/d4
wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/EoucejoZ5SH49ksmVAmKOLkt
OaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+SPhHar7TPKjFz0G3D
PNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89MXfQXZ3q
t1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWj
moACGwMECwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNz
uyOVCskwfUZPla6Zpd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp
0x0HfuhcYfAYPR46XHTvjaJEv99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuR
OxdK8G+YHccJY8PvWSq2K2yiae2KGiAv1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50
wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhPeP3IdpfWc8cyRLXF06Rk46YM
YCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcTUwgnYlFRk2FLq0Qe
KEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9Egr/Wmu3
MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEM
AKiQiZa3yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ
3DbVf+en3/FvdVZg2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTm
etSG5/52AjtmPFtlXAk0NmLvfJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0
s3109sJeXT5ImVdphFs9cvyZyBT9t1PbRowv58EgV0zE4hbAeVkULAbxFV5b/ExT
jjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKbYu6NCfiHfEyB3Xyg9hfdrRgj
MRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ovXoK4jm+Py0FiUGUa
A6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/eVtR2Q1w
ZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWj
moACGwwACgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiV
oUiHYN5QwhnbZnsaJDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764Qxy
X6rld2f2RcWkDuBHun55ZWXjby8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk
/dS0XTOQi2wVUb17sW/+ybCEokdVacZGzOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fu
oGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+lOWSvdNHgoEkWR0RXBPQjnGm
LKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/OffO485NOTKwGOxyWb0
06cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR8ULR9nX0
LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
x9fhaZEsniw8/bYgC3igkk5YJiOa
=3DlUIA
-----END PGP PUBLIC KEY BLOCK-----

--------------zvnv6f4a0PpngRFwpPYNjlmx--

--------------eViBguofPDE0pRtXSMXpjhGo--

--------------wsDScAUdj85lIBzS7DRc1Uw9
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmoLSk8FAwAAAAAACgkQZg+p0QLLz9DK
ywwAkatCCt3kig4rV6kGwkbHQfs5ImENXC0GfqBHWNEDv1aDZRYY9uV8Xy3cLQr266VMliaa7qTW
JAYOYX+JlLR2qeTHTRY+Yt8w4hkcuZbBoFNOShHNUVMXoBCXUfsFOgwwQfeg99lmzZEIPpuANJcu
JI9BUX7oe4c2tSYDrnEimHMuXLzze+vy7HUbxotOLv/tVCPDuWHl9cHZag1Qdx5DFFdxWw5qY3rx
yzFRvEZv28/U/qMNhSm2rRq8vNHX+udw9+In8+HMvFH3lsJtxyXvPO4t+4UXHxLT6cQWny+6Wg8w
pgT12op4yJCJ4gH7kHhal6BErGXG4ijrWRwMLN+vdR7FMEXAiMX311wJ8RFTjAxetz9+jtEFXhF5
TeN9QsXZwZ3GwirG5yT0i0zz48Esppirwry63itcX3uedMHkuo+7KT76w2W3vyowkOTH4AJvbPGJ
5FdnRCa0afUbXm/sssMX6eRP/fOEKDrsRzB2IaKoUjOdNxxZEw/njQ+q7Uhe
=vSDr
-----END PGP SIGNATURE-----

--------------wsDScAUdj85lIBzS7DRc1Uw9--


From xen-devel-bounces@lists.xenproject.org Mon May 18 17:36:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 17:36:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312181.1582345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP1sl-0004K4-I9; Mon, 18 May 2026 17:35:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312181.1582345; Mon, 18 May 2026 17:35:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP1sl-0004Jx-FO; Mon, 18 May 2026 17:35:59 +0000
Received: by outflank-mailman (input) for mailman id 1312181;
 Mon, 18 May 2026 17:35:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wP1sj-0004Jq-Gn
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 17:35:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP1si-00435A-Ap
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 19:35:56 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0b4deb-2eae-0a2a0a5409dd-0a2a450c97fe-46
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 19:35:56 +0200
Received: from [52.101.57.59]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0b4dfa-62f1-0a2a450c0019-3465393b65df-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 19:35:55 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA2PR03MB5881.namprd03.prod.outlook.com (2603:10b6:806:11d::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May
 2026 17:35:51 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0025.022; Mon, 18 May 2026
 17:35:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DhwJeJX732cqNiiMNFydYFznN24c8TPZwn+axWo8K/NH7CGicJfIPhifQJQkIuLkZc3LquwKqXzLxnRXCWHR6bNfAc38FCqbaNQxGLfdIGPMJrd2JxvWA0rQSFqwzGaor+PYY3tW/S+swL31YsYPyW4D684OeXwF6jtLoQfw2mKCxgwRQlmMrnWLbvHOYu8HZRFNN2kN77GuRwbVhIaefVKmuyhg8mtTj/lccbeykQ4+R7G5rOpAHl92j4UKBV5OXRSfT0V4eus8hSgZNN3Vq5v8AWvPsG1IZDo+U3IH3Uc6SXTcOSM9+6eBT0aQpSH3Iz1+4cxP4jQY55h/BSWA0Q==
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=Q3V/3xqU8rvEI4kDqvuV4q+H2XEtjmhTKcs+k/WkhGM=;
 b=UxLxa7qxJEkL7L/+3Ua1fQb7s4oiDqSGFUFFyt6b6FwFyKmQG8Krfxu3tU25ufKZn8L9jg+I3VnYzWjJbE9KaaoEPK9BOb8a/CWG8dMbSttopzvoXp3wB66WR9g3rOo5ngYAC8pvoyY55gTDNL9r25GeA25Gu51JlXjapsIvdPUXVLAQ8NcIX4hCUbvTfbXyCvvquD20aqmAZu//HtHIzOksX7KyRad2Yp1yAXSE+rq/ZSgNb68DHsJT7ROyljjjh+E75ilJXVzegZT4Y5tle1UQ2h0ddrJKhxD1QtTCChTlAxiu/fI2RG3SIro2K9d5q2O9VlHfWqZTyydLuCObIw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Q3V/3xqU8rvEI4kDqvuV4q+H2XEtjmhTKcs+k/WkhGM=;
 b=Rg7OFzs/b/XDnBYG8bY3ewgL00Pz4O7DBrUdaMKWVMqByMRR1AKNTnZ6eyAhS6CztR0Y4fjkfv1ZJYJLJA8glNtxg7seNJ8CkV/3TdfoDVeDGTJJN9J5G1HlZM6f8sRVhID7RIptiQXe7ML409KborbQKMfubLwwQbSf2Igzk1M=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <7ac53569-acca-44f7-a129-99b5dcb97500@citrix.com>
Date: Mon, 18 May 2026 18:35:48 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 5/5] RFC: pci: Migrate pci_mmcfg_{read,write} to pci.c
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117765.8631fc262581453bbf619ec5b2062170.19e3baeb295000f373@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1779117765.8631fc262581453bbf619ec5b2062170.19e3baeb295000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0331.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18c::12) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA2PR03MB5881:EE_
X-MS-Office365-Filtering-Correlation-Id: 4dc2d8a6-5837-471e-da9e-08deb503e7c6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|3023799003|4143699003|11063799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	5YW3a/RqrBVC9UIGwVXwzEYl7l7YnFLyOmVakbiw5S3ey4fVrQvEHovh8kqiQ6E9XzbCjfw456yGbFRsLeQXqFLD+HKtSFwyhokK8IFgQJOYrnU5mgkPTJCndHnAw/WVVeXOOOvcYEBPWkUHFv9gqrvbwZ7uyC0UxUEdgTIz0N4kt1mGoDVpbEIWMgJ+gHq0kHZC9207j6efoxx2J9T+e5pxsD/N3Qm523zohTCTdI2sPWCNirQM5heCtJqwTmweqHKsJv7hanDfXxYFXaqbrmBHQmPTtDpLrwUdFYVCsya2qgVAbv9LOx2aRAAt4S7rKPpZ1faQc+QmqII30pJMmIYA/PppWjNXZbWKiIpoNnoqN5KSr5ACM7hJg/4Bt3E5iYJinLURqz4U4tPEqj4kufemv31W84H2aRPof4fsFAcJD3m3Z1hAb+iyfJcsZskn/MmF9jZ0uOaEvtXg1dl7kD9pE/L0JBbYIl1HwmPn1LsEkDNpD4ZVaUc5cGVnmz6TJsqN8YdMEpukPYgACcvQSfgYvpzvIujuO9xPx6xd1Dj3FLfIookUhgq3ErjyXAT4sKMyyWFIWWaXOndc5QMYfIXpzwpXdmj5Yx+XiH+kFsOKBp9FpcoLzubwZ4R9I17pLmg9ax72LhQKiPH9wvCq3HshpFY/VvGb3RDxKo82MUXoqc00j/vP+WoIo1RnL52blstZLlir6/Rxj2ht70y97Q==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(3023799003)(4143699003)(11063799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SWkwaWFZK2gwZHBUYkkrNGJiN2FTanVxa0Y5NEE4dno4Yys0dWJEUDU2Z3Jw?=
 =?utf-8?B?ZTNoM3lxSWZ3czU3MDh1RGEvSHIzU1cwQXZPaWJIVUxhdWhzdDYrUGFyTGdS?=
 =?utf-8?B?QThxdjRIaHZTT0VWaDAzaitkeXZkbjFrNzRVVFViVFFWbEZERmJjdDhvTnJy?=
 =?utf-8?B?Z2p0YXZrWlowckE4MXdNT0FMWE1rOFZqTkNGZDJUYXFlZGdFeW1tcmE5bzFE?=
 =?utf-8?B?T1p6OWVneXorR1JjcDJzaWFvWHUwK0IrY0NpdEFpZFVueFVlSVNVSWxSTFh6?=
 =?utf-8?B?b2dSaDVvZXhpWkRlbktVM0FKaHB4dkR0RG8rcWxBYTY0YThxcUltMmljblVY?=
 =?utf-8?B?SjJtZ3hjVUZVU2hFMkVEOG03SUdUV1djVENzTTJReVVqNkRVNmc0WFcxWm9j?=
 =?utf-8?B?cmJlb3FwTjducVJmTFM2UXhqZG9HOWZNMnc5c0NteUpLUWdRS0lPa1pwSnVm?=
 =?utf-8?B?TVEybHE2TC9idXFQNU50cElINEhQQmNlUEdFaUpFRTJ5Q0ZzQ1F3YkRaYXgr?=
 =?utf-8?B?aVlMT2Q5c0xNNUxPOG8rQzlYUDgvclN6NWVKVisyNXhDaVZvdXhnTkdKWm1Y?=
 =?utf-8?B?T25nTVNiRUo3TzllYXBxNjZWajQwWVdRbXV0cklXOGNoU3oyT0ZrM1ppR2kv?=
 =?utf-8?B?YXRjTnFqOVJJVzBOOUxua0xDYXY0UEhqWVFEWmZOVWIyQlpSaHJKbnB4T2Rk?=
 =?utf-8?B?YmxmTDhYOHZRTXFmNGo3czBaMWtjVWFHdzVRejIwdUJnUlB5N1hPdUk3MEhu?=
 =?utf-8?B?UGxNVTZobVRqWS8wbHBmSU9VbDg2ZkZXVGM3eW1vSHB1bm1iNEFqekhUUUUy?=
 =?utf-8?B?dUF4RU91QmV2aEFjNDNFRjVLLzhTYksyRDNnYkNqUlpxQmhTTzI3aVZXTG4w?=
 =?utf-8?B?TEgyRjFIWTFiZkdQTVFYaWFWQnQvSVNPeUl4ci9RS2QyelJmSHJYbDRRL1Fy?=
 =?utf-8?B?WTF5YTdxd1ZPRlByUExBWHQ1UE1pVi82bUc0eFh4SkdXdjhTSklCL3RzSG9G?=
 =?utf-8?B?MFMvcSsraURVWHRSdjQxVDBrK2krYjVNWjFHNDJTb3hYZXZ5NVcveFJ4R2pP?=
 =?utf-8?B?TzdnZkNBSGluTjFBbUlTUXpPN3d1RnZBOXc4QmZLc3hvRndYQzVqWkpla21N?=
 =?utf-8?B?R3pSdEd4ei9ML21tWlBxUjRwQTlzd2c3bFlTMkpFcGQveVltM1ovVktYWmhT?=
 =?utf-8?B?ZENadWdsZTRKQnRUdFlzSkZwSllCTytFNTYzdkMyMnp0dk1IWHd5aExJQVBu?=
 =?utf-8?B?Z1V6YVFzODQzWEFnVG4yMVR4TDFBbWZMaFhoaDNSdm5pR3JJRTB4OFROYnk4?=
 =?utf-8?B?bU5Za2dZNUZKNm9pNElraHJDTGliRnRaeHpRVjFTZVRxN2EyemtOWTFkQ1pW?=
 =?utf-8?B?QkpvTHg2SFltekwzcno4RlcyTk96MWt0cGV3NmJkd2Fsa2tFblFhV3NkVkNo?=
 =?utf-8?B?NGZxS0FOdnJ3VGdscVRQbzBYcHBZRTdVYjg4cXF5dldmUDJaV0xGM1NDTm5n?=
 =?utf-8?B?UkNLTGdIMTlZRXpPRXVnVXRpRGgwMEdQcDJsUnlrdUNrYkk4cldSZTcxcFdh?=
 =?utf-8?B?eE02TFpUZXIxbnA1ejkzMWZ5T2s1R1oxbUJHdEhld0pUcTI2SDMza1dyVCtK?=
 =?utf-8?B?Nk1Ia3RsbUNFRGhpaTJwL3ZONzE0RjViUjJYc1MyblQzWFJBR0g5akMyaVBY?=
 =?utf-8?B?VC9na0Q2TTNFaW1oaUtjakhhNXBsT1c2MnAvSmFPYnNjQU1YS0dIRCtpSjdy?=
 =?utf-8?B?RERGUm5vVEh0MEIwR0EzOTk4YXhUNkRKTXRpa2RYclh5aFJSc25qcU1PTXlt?=
 =?utf-8?B?d29zNURLaDdrTjVXREZvT3ZVVmZZc08zNEhCRURSeHNsRjYvQnl2RWY4RWJa?=
 =?utf-8?B?T2I1SUFjSmpRMzZ0ckZtSnNkTk5tWDBhemVSRTBrZDQyUk5BNzhJZExDU1JS?=
 =?utf-8?B?VmUzNjQ0eUZzZWtEdzY3dDJ4ZjJyRE5hRVdGUThYbVcyWEh6Rkt1YnhQN0lo?=
 =?utf-8?B?ME1JUEZTZlJHTXBVd28wNER0QUV1MWRDRGkvM0dsVFpvb254VklwdEowbEpy?=
 =?utf-8?B?NnBSNE11dHZmT2Q4eThuNStUM2VCMnR3K0VYRS9leERoZ1IxdG5wUnhlYTMy?=
 =?utf-8?B?YmpwMU9nenF5K3dxQ3pWT1grRDlpdzhhZGU0eHFaQ2JTaG16Vm9NNUkrZlpI?=
 =?utf-8?B?V0ZSWVAzV0cvR3dXLzVrQ3BIY1h1TnhSS2lKbVF5NTJ2S0Q2QjBsaVM2U3hi?=
 =?utf-8?B?L3JKcU9uQldaTU5OWW1paVdLVVhyN2JzbzJnZWhuQVMzcHd3M0NvWEI1aFhI?=
 =?utf-8?B?VnBKSnU0MkhNNUtNSll2TkorUzJuT1RoTkwxVDVrWkNoVE5nYUhGNE1IT3B1?=
 =?utf-8?Q?HMjnotgiOh7cHfo4=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4dc2d8a6-5837-471e-da9e-08deb503e7c6
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 17:35:51.2438
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: PG0QQktzQmKYDBHVpiCtqF9fBRX+U5N/Vse9fBYeHUTOzywbim5E34rBLWrogyQ+NAuuBD4HW3aGxcRwNyhiJfcZSbP80dyOb/ZLeedPW34=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5881
X-purgate-ID: tlsNG-d25034/1779125756-D996DCF5-CF2E183E/0/0
X-purgate-type: clean
X-purgate-size: 10709

On 18/05/2026 4:21 pm, Teddy Astie wrote:
> Key parts of MMCFG access bits are in mmconfig_64.c (in particular
> pci_mmcfg_{read,write}()) while PCI configuration primitives (used accross the
> codebase) are in pci.c.
> This leads to situations where the compiler cannot optimize the `switch (len)`
> for MMCFG access for all pci_conf_{read,write}N(), because they are not from
> the same file.
>
> Move the pci_mmcfg_{read,write} in pci.c and hint the compiler to inline these
> functions such that it's more likely that the compiler eliminates the
> `switch (len)``.
>
> Also take the opportunity to migrate to pci_sbdf_t to reduce the parameter count
> and drop many parameter domains checks.
>
> On GCC 16.1, this leads to codegen where pci_conf_{read,write}N() doesn't call
> pci_mmcfg_{read,write}() anymore and directly perform the MMIO RW.
>
> <pci_conf_read32>:
>        55                      push   %rbp
>        48 89 e5                mov    %rsp,%rbp
>        53                      push   %rbx
>        89 f8                   mov    %edi,%eax
>        89 f3                   mov    %esi,%ebx
>        c1 ef 10                shr    $0x10,%edi
>        81 fe ff 00 00 00       cmp    $0xff,%esi
>        77 26                   ja     ffff82d040301fab <pci_conf_read32+0x3a>
>        85 ff                   test   %edi,%edi
>        75 22                   jne    ffff82d040301fab <pci_conf_read32+0x3a>
>        0f b7 f8                movzwl %ax,%edi
>        c1 e7 08                shl    $0x8,%edi
>        83 e3 fc                and    $0xfffffffc,%ebx
>        09 df                   or     %ebx,%edi
>        81 cf 00 00 00 80       or     $0x80000000,%edi
>        ba 04 00 00 00          mov    $0x4,%edx
>        be 00 00 00 00          mov    $0x0,%esi
>        e8 2a 1c 03 00          call   ffff82d040333bd3 <pci_conf_read>
>        eb 22                   jmp    ffff82d040301fcd <pci_conf_read32+0x5c>
>        81 fb ff 0f 00 00       cmp    $0xfff,%ebx
>        77 24                   ja     ffff82d040301fd7 <pci_conf_read32+0x66>
>        0f b6 d0                movzbl %al,%edx
>        0f b6 f4                movzbl %ah,%esi
>        0f b7 ff                movzwl %di,%edi
>        e8 f5 fd ff ff          call   ffff82d040301db6 <pci_dev_base>
>        48 85 c0                test   %rax,%rax
>        74 18                   je     ffff82d040301fde <pci_conf_read32+0x6d>
>        89 db                   mov    %ebx,%ebx
>        48 01 d8                add    %rbx,%rax
>        8b 00                   mov    (%rax),%eax
>        48 8b 5d f8             mov    -0x8(%rbp),%rbx
>        c9                      leave
>        e9 89 12 f0 ff          jmp    ffff82d040203260 <__x86_return_thunk>
>        b8 ff ff ff ff          mov    $0xffffffff,%eax
>        eb ef                   jmp    ffff82d040301fcd <pci_conf_read32+0x5c>
>        b8 ff ff ff ff          mov    $0xffffffff,%eax
>        eb e8                   jmp    ffff82d040301fcd <pci_conf_read32+0x5c>

This is not the whole function because it's missing a pop %rbx.  Also,
right at the bottom here are the -1's from bad error paths (discussed
later).

But, this should be after the ---.  Disassembly this long isn't
interesting to stay in the commit message.


> diff --git a/xen/arch/x86/x86_64/mmconfig_64.c b/xen/arch/x86/x86_64/mmconfig_64.c
> index 940cf6d747..483dff9c2c 100644
> --- a/xen/arch/x86/x86_64/mmconfig_64.c
> +++ b/xen/arch/x86/x86_64/mmconfig_64.c
> @@ -133,6 +46,25 @@ static void __iomem *mcfg_ioremap(const struct acpi_mcfg_allocation *cfg,
>      return (void __iomem *) virt;
>  }
>  
> +char __iomem *pci_mmcfg_base(unsigned int seg, unsigned int *bus)
> +{
> +    struct acpi_mcfg_allocation *cfg;
> +    int cfg_num;
> +
> +    for (cfg_num = 0; cfg_num < pci_mmcfg_config_num; cfg_num++) {
> +        cfg = pci_mmcfg_virt[cfg_num].cfg;
> +        if (cfg->pci_segment == seg &&
> +            (cfg->start_bus_number <= *bus) &&
> +            (cfg->end_bus_number >= *bus)) {
> +            *bus -= cfg->start_bus_number;
> +            return pci_mmcfg_virt[cfg_num].virt;
> +        }
> +    }
> +
> +    /* Fall back to type 0 */
> +    return NULL;
> +}

This is a horrid function.  Accessing and modifying bus like that causes
poor code generation, and by now having this in a separate translation
unit, the optimiser can't fold it into it's single caller and undo the
poor decisions which went into writing this function.

Instead, you want:

void __iomem *pci_mmcfg_base(pci_sbdf_t sbdf)
{
    ...
}

base which takes care of the bus adjustment internally.  This can be
broken out into a separate patch, and take the opportunity to write it
to Xen style.

> diff --git a/xen/arch/x86/x86_64/pci.c b/xen/arch/x86/x86_64/pci.c
> index 8d33429103..c37e3edade 100644
> --- a/xen/arch/x86/x86_64/pci.c
> +++ b/xen/arch/x86/x86_64/pci.c
> @@ -11,13 +11,123 @@
>  #define PCI_CONF_ADDRESS(sbdf, reg) \
>      (0x80000000U | ((sbdf).bdf << 8) | ((reg) & ~3))
>  
> +/*
> + * AMD Fam10h CPUs are buggy, and cannot access MMIO config space
> + * on their northbrige except through the * %eax register. As such, you MUST
> + * NOT use normal IOMEM accesses, you need to only use the magic mmio-config
> + * accessor functions.
> + * In fact just use pci_config_*, nothing else please.

I know you're just copying an existing comment, but it's mostly an
opinion and not terribly helpful in place.

"AMD Fam10h CPUs can only make MMCFG accesses via MOV %eax/%ax/%al",
would be better, except...

... this claim cannot be true.  It's been made since the K8 RevF BKWG
and exists even into the latest PPRs, but that's simply not how
load/store ops work in the pipeline.

It was added to Linux in
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3320ad994afb2c44ad34b3b34c3c5cf0da297331
but without adequate justification.  I've made some enquiries.

> + */
> +static inline unsigned char mmio_config_readb(void __iomem *pos)
> +{
> +    u8 val;
> +    asm volatile("movb (%1),%%al" : "=a" (val) : "r" (pos));
> +    return val;
> +}

These need corrections, either in this patch or a followup.

Switch to Xen types, and correct the memory operand constraint to be "m"
(*(uint8_t *)ptr).

The Fam10h BKWG states that any memory encoding is acceptable, and this
allows the optimiser more flexibility (which will get used).

> +
> +static inline unsigned short mmio_config_readw(void __iomem *pos)
> +{
> +    u16 val;
> +    asm volatile("movw (%1),%%ax" : "=a" (val) : "r" (pos));
> +    return val;
> +}
> +
> +static inline unsigned int mmio_config_readl(void __iomem *pos)
> +{
> +    u32 val;
> +    asm volatile("movl (%1),%%eax" : "=a" (val) : "r" (pos));
> +    return val;
> +}
> +
> +static inline void mmio_config_writeb(void __iomem *pos, u8 val)
> +{
> +    asm volatile("movb %%al,(%1)" :: "a" (val), "r" (pos) : "memory");
> +}
> +
> +static inline void mmio_config_writew(void __iomem *pos, u16 val)
> +{
> +    asm volatile("movw %%ax,(%1)" :: "a" (val), "r" (pos) : "memory");
> +}
> +
> +static inline void mmio_config_writel(void __iomem *pos, u32 val)
> +{
> +    asm volatile("movl %%eax,(%1)" :: "a" (val), "r" (pos) : "memory");
> +}
> +
> +static char __iomem *pci_dev_base(unsigned int seg, unsigned int bus, unsigned int devfn)
> +{
> +    char __iomem *addr;
> +
> +    addr = pci_mmcfg_base(seg, &bus);
> +    if (!addr)
> +        return NULL;
> +     return addr + ((bus << 20) | (devfn << 12));
> +}
> +
> +static inline
> +int pci_mmcfg_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int len, u32 *value)
> +{
> +    char __iomem *addr;
> +
> +    /* Why do we have this when nobody checks it. How about a BUG()!? -AK */
> +    if (unlikely(reg > 4095)) {
> +err:        *value = -1;
> +        return -EINVAL;
> +    }
> +
> +    addr = pci_dev_base(sbdf.seg, sbdf.bus, sbdf.devfn);
> +    if (!addr)
> +        goto err;
> +
> +    switch (len) {
> +    case 1:
> +        *value = mmio_config_readb(addr + reg);
> +        break;
> +    case 2:
> +        *value = mmio_config_readw(addr + reg);
> +        break;
> +    case 4:
> +        *value = mmio_config_readl(addr + reg);
> +        break;
> +    }
> +
> +    return 0;
> +}

Again, for this patch or a later cleanup, drop the output-by-pointer and
return value directly.  The optimiser is hopefully doing this already
but it also makes the function simpler.

At best, we want ASSERT_UNREACHBLE()'s in the error paths (including no
mapping), and to consistently return -1.  Returning 0 for a bad length
is bogus.

Strictly speaking we also need to check reg & (len - 1) because accesses
must be naturally aligned, but even with ASSERT_UNREACHABLE() and a
failsafe -1, that's still logic emitted and I'm not sure if it's worth
having.  Amongst other things you really need to know that len is 1, 2
or 4 before the alignment check reads correctly.

> +
> +inline int pci_mmcfg_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int len, u32 value)
> +{
> +    char __iomem *addr;
> +
> +    /* Why do we have this when nobody checks it. How about a BUG()!? -AK */
> +    if (unlikely(reg > 4095))
> +        return -EINVAL;
> +
> +    addr = pci_dev_base(sbdf.seg, sbdf.bus, sbdf.devfn);
> +    if (!addr)
> +        return -EINVAL;
> +
> +    switch (len) {
> +    case 1:
> +        mmio_config_writeb(addr + reg, value);
> +        break;
> +    case 2:
> +        mmio_config_writew(addr + reg, value);
> +        break;
> +    case 4:
> +        mmio_config_writel(addr + reg, value);
> +        break;
> +    }
> +
> +    return 0;
> +}
> +
>  uint8_t pci_conf_read8(pci_sbdf_t sbdf, unsigned int reg)
>  {
>      uint32_t value;
>  
>      if ( sbdf.seg || reg > 255 )
>      {
> -        pci_mmcfg_read(sbdf.seg, sbdf.bus, sbdf.devfn, reg, 1, &value);
> +        pci_mmcfg_read(sbdf, reg, 1, &value);
>          return value;
>      }

Not for this patch, but we also need to junk the if() condition here and
elsewhere.

We should be using MMCFG unilaterally if it's available; the IO port
pairs require use of a global spinlock, and behind the scenes all the
CPU is doing is translating it back into MMCFG-like accesses.

At this juncture we should probably change it at the start of the 4.23
dev window to give it maximum time to settle before getting into a
release, so probably best to tack it on as a final commit in this series?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon May 18 18:00:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 18:00:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312198.1582354 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP2GV-0000MO-Gn; Mon, 18 May 2026 18:00:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312198.1582354; Mon, 18 May 2026 18:00:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP2GV-0000MH-E0; Mon, 18 May 2026 18:00:31 +0000
Received: by outflank-mailman (input) for mailman id 1312198;
 Mon, 18 May 2026 18:00:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wP2GT-0000MB-Ot
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 18:00:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP2GT-00FLJN-4m
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 20:00:29 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0b53ae-bab6-0a2a0a5309dd-0a2a4507a520-44
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 20:00:28 +0200
Received: from [52.101.52.43]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0b53bb-229c-0a2a45070019-3465342bf2aa-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 20:00:28 +0200
Received: from PH1PEPF00013305.namprd07.prod.outlook.com (2603:10b6:518:1::17)
 by CH3PR12MB8329.namprd12.prod.outlook.com (2603:10b6:610:12e::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Mon, 18 May
 2026 18:00:18 +0000
Received: from CY4PEPF0000FCC1.namprd03.prod.outlook.com
 (2a01:111:f403:f910::1) by PH1PEPF00013305.outlook.office365.com
 (2603:1036:903:47::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.23 via Frontend Transport; Mon, 18
 May 2026 18:00:18 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000FCC1.mail.protection.outlook.com (10.167.242.103) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.11 via Frontend Transport; Mon, 18 May 2026 18:00:18 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Mon, 18 May
 2026 13:00:15 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 18 May
 2026 13:00:15 -0500
Received: from [10.252.225.139] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 18 May 2026 13:00:10 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VjaDPc1IDKbNvn7Lf5dBLOyA5RwRDqB9h4NejAp3IHd98is7Im75WDRRLxnaS+KcY5GWf64Q9zTHsv0TNMrfFT581vC8OA8nj8w58DYPHV8DqNhQxEZnZA/4M5+SCYFLr9byj9pUvHtMPIjkohjyN7fCAOuOlG6dU8X0fwTSLDniPoWHvM6PV/HRN4dUhrxuHFgJVFS++4zydR5s/5FO9LnDBejZnUZzSLO+5wxzFqdmhJHOP1nc6lCxZKHRSeSq3EU+xNd211V24FI/VYjPInNaJrcMjC/zvqOiFiBwdsKu0s5QsFj12YklNcaYuQKcTwFDwOxuflsccPKx8ueAxg==
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=s3KZXaEvl/iWr8NiuIWntoPtBXfNjIoGDvr8DD4eLN4=;
 b=KTlWmN7VHEWk8/dlP6RzB91TP4AHlil7QuulZ6lEd6Kfi5sqrkB2nNiK903nyOeQgX97kN6RTHxTOPpx/SDy5kZtJ73jYktJbsTs3FvXU52xS76ImRZigfHkfaIrvk1T1vW57R9b5tZfqYQaO9/0dbTmJqUNzry7B+PQ/PJ/+eh0egEHMHeiDm7s1CLHip7GTJF9rJ5ayOlNpMf+4pKimlD3Q/mS1e9HO5cAonghdn7aaMvF+tB2kwYhvMms3b0pOHsZGtDeZ0/xCG+VzLWw/W+MEiQvgemYNXKblcphM7LJvsVymJPxMX+S5xCWhNCsGVamjJIQu2fJNsYIPkzVqA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=s3KZXaEvl/iWr8NiuIWntoPtBXfNjIoGDvr8DD4eLN4=;
 b=ItyfJ5DSmXOt6ixUMhN6dAoxuvnT4RjRgCuJTkpytpTE5tXqkS1aCse5EMNWP2q6pZFmU95qYXX14PAzDfm77pKzMa9VcC4LP0NeKVzxVhNi2Kg+Ur8Prbp1p2WMS0NGxGGg8HLG8oyndmJBuzEoJDrTRnbIUFhDzvJRI2bcOTI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <93e15ff8-a313-4f19-84f1-2906cb2ade1b@amd.com>
Date: Mon, 18 May 2026 20:00:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22(?) v2] gnttab: simplify (really: drop)
 gnttab_set_frame_gfn()
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>, Anthony PERARD
	<anthony.perard@vates.tech>, Rafal Wojtczuk <rafal.wojtczuk@7bulls.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <6e3dbb4f-5849-4525-8f8b-a2818c39da2d@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <6e3dbb4f-5849-4525-8f8b-a2818c39da2d@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCC1:EE_|CH3PR12MB8329:EE_
X-MS-Office365-Filtering-Correlation-Id: 9ef4b2fc-257f-4ea6-c40a-08deb507526e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|7416014|376014|36860700016|1800799024|3023799003|11063799003|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	SyO6tIeRbFWA7v8pohKru9lefmu65TOVKv+DwRWnrIOneukgkMnaDfoR2RHmwlPrahq1SMwYUNa0oZS1IDnijGaayRW7VJSOlVcmywU2PSWIkmU8tdk0jQ8DRTg+sy+y3l+BtrsC6Fpbo49tyDM0x3iJ+5jyAtPx88Y9imfA47LzTxVtu94fLDtFLD9CYWY+adiLszJ9cAvaTM97GjijKyIXpz6zJ33H2FfkWsE4IA1CwvfLjz3oxCnUAnVBqOsUks3K7Y+YO+fEfpGIuKExhBO5Pt6/9nHoexQFyHJB+21msEeb3h3g0y0syzGzp4G1vK3oDMPbshXupNqMKxo4SfQt6qpiDDNSy21I8TIyqDvde2rgXto+3BOHrtuEaJyrRLeKPwbJXbPhK+sEiBVGZc0WUL5zsno6UKSyHFFsrT6KvwsXWLr6OHvULikPqzv1NrSTkpe1Qz/UlbNi5E3mzdRdAsAV73g0W9VfdYv+HmJyeziKnVBa1FfBsWxVKGwH6Ayt4dA/ayy6xXB4ySQnpR+kZ3pw33M/V1IbsNJIDr8/8pF1BrED7/gTpjvQuLljn8lRnubBIRBPI7aqs7kGnYts52+gYU29DYsTh4LChzDDo+3H1C9ycmAaWnEcfIpEpPNe1HaYlE9v/hmLEAwkZ901AJslwiKh187yG7awaWfD56yUyv9hN9gh9Os2wQ7ssfgkTuu/3w8GH4oBXbdrlJY+bgpd1gnW1zagg+IuVdg=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(376014)(36860700016)(1800799024)(3023799003)(11063799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	IFTcY4BtDlLg23cDFlld26jxelyI1kXZEtx6UuBc7Uuecq0bkJiySmwQcSvrbbQ2FGTbCIiTNLsF7ZwSPAcKnGJcidsDgKcCMI2yBNNWUAKzCz7lHgTbcrXRjIsFq6mgbcQui/P7Q5xkwfymbSa9SFjlCMvmM+6kcCAuebI88d3f+kinR2/Y9VIL1/j8EX+804Si814FFpH3UEVOQe0QvGs3xxVCKQgHEmao/9uMU/YMXV3QCK7UhNGr5IGxBVI1KjFI0KtvjCk8TL+t7/UWajYtfw2miozteSsPtAWmbULZ0glajrEfosI94X+mkuX+Slz6W146Pv9awKwHWElRzZwGvduZ70CKGia/EI7m5UGrmf978tfRVJjc9e3kH74vGOYljHhUW+S+oP01ad8D+xL84nBUheihjYYgqnHefoX4Cvf14wZSKHGEogB9jjyL
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 18:00:18.4696
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9ef4b2fc-257f-4ea6-c40a-08deb507526e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000FCC1.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8329
X-purgate-ID: tlsNG-ef75cf/1779127228-0AD77C48-E6836939/0/0
X-purgate-type: clean
X-purgate-size: 3526



On 12-May-26 16:46, Jan Beulich wrote:
> It's not really doing anything for valid GFNs, which renders its one use
> site pretty pointless. The other isn't so much about setting anything, but
> rather about clearing.
> 
> The main point here, however, is about Rafal spotting the double
> fetching of the GFN (first in gnttab_unpopulate_status_frames(), then
> again in gnttab_set_frame_gfn()). Re-purpose the macro parameter to pass
> in the already fetched GFN, while dropping the no longer used parameters.
> 
> As the result is a mere wrapper around guest_physmap_remove_page(), drop
> the hook altogether.
> 
> Suggested-by: Rafal Wojtczuk <rafal.wojtczuk@7bulls.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> v2: Drop hook altogether.
> 
> --- a/xen/arch/arm/include/asm/grant_table.h
> +++ b/xen/arch/arm/include/asm/grant_table.h
> @@ -50,13 +50,6 @@ int replace_grant_host_mapping(uint64_t
>  #define gnttab_dom0_frames()                                             \
>      min_t(unsigned int, opt_max_grant_frames, PFN_DOWN(_etext - _stext))
>  
> -#define gnttab_set_frame_gfn(gt, st, idx, gfn, mfn)                      \
> -    (gfn_eq(gfn, INVALID_GFN)                                            \
> -     ? guest_physmap_remove_page((gt)->domain,                           \
> -                                 gnttab_get_frame_gfn(gt, st, idx),      \
> -                                 mfn, 0)                                 \
> -     : 0)
> -
>  #define gnttab_get_frame_gfn(gt, st, idx) ({                             \
>     (st) ? gnttab_status_gfn(NULL, gt, idx)                               \
>          : gnttab_shared_gfn(NULL, gt, idx);                              \
> --- a/xen/arch/x86/include/asm/grant_table.h
> +++ b/xen/arch/x86/include/asm/grant_table.h
> @@ -32,12 +32,6 @@ static inline int replace_grant_host_map
>      return replace_grant_pv_mapping(addr, frame, new_addr, flags);
>  }
>  
> -#define gnttab_set_frame_gfn(gt, st, idx, gfn, mfn)                      \
> -    (gfn_eq(gfn, INVALID_GFN)                                            \
> -     ? guest_physmap_remove_page((gt)->domain,                           \
> -                                 gnttab_get_frame_gfn(gt, st, idx),      \
> -                                 mfn, 0)                                 \
> -     : 0 /* Handled in add_to_physmap_one(). */)
>  #define gnttab_get_frame_gfn(gt, st, idx) ({                             \
>      mfn_t mfn_ = (st) ? gnttab_status_mfn(gt, idx)                       \
>                        : gnttab_shared_mfn(gt, idx);                      \
> --- a/xen/common/grant_table.c
> +++ b/xen/common/grant_table.c
> @@ -1844,8 +1844,7 @@ gnttab_unpopulate_status_frames(struct d
>          {
>              int rc = gfn_eq(gfn, INVALID_GFN)
>                       ? 0
> -                     : gnttab_set_frame_gfn(gt, true, i, INVALID_GFN,
> -                                            page_to_mfn(pg));
> +                     : guest_physmap_remove_page(d, gfn, page_to_mfn(pg), 0);
>  
>              if ( rc )
>              {
> @@ -4285,8 +4284,6 @@ int gnttab_map_frame_begin(
>           */
>          if ( !get_page(pg, d) )
>              rc = -EBUSY;
> -        else if ( (rc = gnttab_set_frame_gfn(gt, status, idx, gfn, *mfn)) )
status is now a variable that is set but never read. Remove it.
With that:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal


From xen-devel-bounces@lists.xenproject.org Mon May 18 18:14:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 18:14:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312206.1582363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP2UE-0002Ar-M1; Mon, 18 May 2026 18:14:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312206.1582363; Mon, 18 May 2026 18:14:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP2UE-0002Ak-J7; Mon, 18 May 2026 18:14:42 +0000
Received: by outflank-mailman (input) for mailman id 1312206;
 Mon, 18 May 2026 18:14:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wP2UC-0002Ae-HN
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 18:14:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP2UB-009Wj7-Tk
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 20:14:39 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0b56f9-bab6-0a2a0a5309dd-0a2a4504cf40-20
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 20:14:39 +0200
Received: from [52.101.48.28]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0b570d-1dec-0a2a45040019-3465301ca213-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 20:14:39 +0200
Received: from SA0PR11CA0055.namprd11.prod.outlook.com (2603:10b6:806:d0::30)
 by SA1PR12MB7441.namprd12.prod.outlook.com (2603:10b6:806:2b9::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Mon, 18 May
 2026 18:14:32 +0000
Received: from SN1PEPF0002636C.namprd02.prod.outlook.com
 (2603:10b6:806:d0:cafe::6f) by SA0PR11CA0055.outlook.office365.com
 (2603:10b6:806:d0::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.23 via Frontend Transport; Mon, 18
 May 2026 18:14:32 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF0002636C.mail.protection.outlook.com (10.167.241.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.11 via Frontend Transport; Mon, 18 May 2026 18:14:32 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 18 May
 2026 13:14:32 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 18 May
 2026 13:14:31 -0500
Received: from [10.252.225.139] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 18 May 2026 13:14:28 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hIv7wOpp6HfNmmLE/fsknYOpt25VQ2CRvi/ODEvWPxno/2ZDCisIl5QeNhmdpT0wjgygJCyqh6yCEQUekItlx2YML+SuEaqAv80AFjS+lBIkQ77knzCoYLhVxhMo1Fzt9tojH2E8yiyDmGyveVgwR5xcHazfNijmCV4dcNXAismQkPrC2yMdbUhnir6lXDzWz2wX0Q/bLIlkNyh9Oszvg6cbqHU5TxHDqLOVQK7LUJ3B06hvWs0btVS7ymaUxlfwgWeIkPzqaDD8Wj9dYB16V6qnQhugw8U8sQVWGW+cD4ULQD/ri9MF7ftt0khkwHVx817VtIuh5CX+hJRZu8yZzA==
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=yzm3e4yjm5WtkXAclJVN1ira0VPRFR9VSV1Cj2+Y8uo=;
 b=cCUmV2Ba8Mk/MeI7MKZFr930EJOrkS6IWigglHKDIJcO4RWo6UCo27CzfBVqrH/Js0kziHkfrdkDXzUQ1NEcisH6NMIuUn4QOAtPNPzIEKBhZ5NBkXKR4iZvKV0U0HLT5UQYiSR4NNOgVgU3F6YdHbsLNpUTVx86ICnCqPZ4VwBr+NV0Rk98vxDttw45r8QYgx8/9H9fGVsm44LKl8oStBx+wjNEXDLWXSHtM9w5GqDVxfOS9jdfkbmYD/Pcy/WNecPUqEazNj9URmMWR4BcZKgykyYLtm9B/yj3iFzhtHDixzOZDEyhp6X7sNbLcfB0uV4XqeZ2kIE1Hez0/vrxEw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yzm3e4yjm5WtkXAclJVN1ira0VPRFR9VSV1Cj2+Y8uo=;
 b=o9kNbJTS5xAAsCrsCCKBRDEhbGatncO/88MoaZBBRsV7sZWgJT9TyPg/RKKSZVcnpd1K9hNx+sfcZh8aP/MKwq2rXWgodqDsYAaj62U7Ym6sQTwEuZ5JUxcxokdGYw2XDwkvXD+XveA2/kitmihPqLxGtJ0TaACJ3ARND2Kc3wk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <b0a7dbdf-775a-45e2-bee4-d234ca21c002@amd.com>
Date: Mon, 18 May 2026 20:14:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] arm: Fix PT_PT table descriptor value and comment
To: =?UTF-8?Q?Gabriel_Quint=C3=A1ns_Souto?= <gabi.qs.mail@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>
References: <2ef09a6a-f78f-47a5-8ffb-cd03cb51fc1b@amd.com>
 <20260518114552.29687-1-gabi.qs.mail@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260518114552.29687-1-gabi.qs.mail@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002636C:EE_|SA1PR12MB7441:EE_
X-MS-Office365-Filtering-Correlation-Id: ac2ac0df-5705-4f7b-82a3-08deb5094f66
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700016|376014|18002099003|56012099003|22082099003|4143699003|11063799003;
X-Microsoft-Antispam-Message-Info:
	QXWtIJK7LaC/bQmjAbpu7k65IV9NR+Zsq1RHAYeSIzRgyw65iJLACrfHQm6sa0Vg0OaZoV6i0VKPHzQowY/k4MS9/WY3ZgoaIG6TBBw0zI+rEmH9AA/DOt3t2wSAgkfwCtBM80SgOUiGVxZgBMqvqS7fzCNvz/GrjSPmPv/6oGK2uSE8HjxJaOunHuXKf0YYcJsIvD5A8bUwI/33kYmmoJ3MxCdPQ9sKKFXMTeheyR6EOFPASDsnAT6nduQ7PDtwFou2hfonxbeXlEA0A1p1dtd521IrBWJHsVcH8uS3sD0a/dxCi5fPkkvMvzV+rI3XHdAnsM8yiZxnd+cMqCFfJK6zqR38QOdrosCHjHGzhw524oEYVh84bxsvftFlG8tw7N7TJaKyGndgd+mfc1H/0DjlJP7A8xP3CsCHZumMzpGJ1Bv+zQ3QUr2yt3LMkSw+t4bcsgVItYKgouVsraITeKUSoVCcucGI+KsOvqLS+e5u1t5nu3ml5CIbUmTpAvi2uYYbek6ALovJpA9hBtLi/C7ZKQEFWKgFNX52rpxWX6uZvnOYVMcvngmLU94/idMoqOcoeh9aKUKgAsqDWOPL9HNvLhOPnUG6qSiD9oJCwpzUSDBAFEvsqs3e3oKx3pNFElz66Uz4Mg8T/ZagkfB7NO2zE270PlrVUHMSzs+yOQDmvUEa5QDqm0fakXXan8vz5zyls1/9wFEs35RJywOiov7NJqbcBtOr/yhaTnn8Kug=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700016)(376014)(18002099003)(56012099003)(22082099003)(4143699003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	YLn8/RLCOaGEIIEt5pKo8CiyfEkReVjt0XXEFal3bwlV5YovvPiTql/+Jj4c8b6UnCeRmlMSgNth4pV5V2pG+0pdnrDwwBQdKlR3eDKZj9i+wAr9heWrdziV1Y9PYX3/LAgo+nSdHplvyNulaxyAzF5fBVRhZsp0HluZjFA3QD45SellFsVXxx9aJH/s3pCeIr5JBtswHZwgw5IOl2TCbfLQVHktSzcp3xfRSMNtvsyUR/Ln2yvIwq/3WEnd/03bMMxi3k4WBwyM2gC3slwPAaxwhSP6Rux7rCRkNnGlU9f+vJR2IAsASDwG94+/JgRQG/ciqBNxH8vNG3mnf8kGMGcOi33mrG5fk1PTrNFwDIsrsIXFRwlPmFwGhMOThMXso520RMUnUa28vmdKLyTDqLr5f1Awz8O/5sahBw3m4MED8kpsHLZ7G8xvuoXA1lDV
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 18:14:32.3994
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ac2ac0df-5705-4f7b-82a3-08deb5094f66
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002636C.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7441
X-purgate-ID: tlsNG-ebf023/1779128079-417793FF-486A0B71/0/0
X-purgate-type: clean
X-purgate-size: 1953



On 18-May-26 13:45, Gabriel Quintáns Souto wrote:
> Per ARMv7-A/ARMv8-A ARM, bits [11:2] of table descriptors are ignored by hardware. The original comment incorrectly described block/page descriptor fields (nG, SH, AP, NS, ATTR) which do not 
Please trim lines to 80 chars

exist in the table descriptor format.
> 
> Set PT_PT to 0x403:
>  - Bit 0 (P): Valid bit (required)
>  - Bit 1 (T): Table descriptor type (required)
>  - Bit 10 (AF): Access flag (future-proof for FEAT_HAFT)
There's no FEAT_HAFT on AArch32, bit 10 is purely ignored, so why setting it
also for arm32? On arm32 it should be 0x3. On arm64, thinking more about it,
setting AF for table descriptor would make sense only if we enable HAFT in TCR
which we don't. Therefore, for consistency you should use 0x3 for both arm32 and
arm64.
> 
> Hardware ignores bits [11:2] but setting AF prepares for ARMv9's FEAT_HAFT. Using 0x403 rather than minimal 0x3 provides forward compatibility while avoiding unnecessary reserved bits.
> 
> This updates both arm32 and arm64 for consistency.
> 
> Signed-off-by: Gabriel Quintáns Souto <gabi.qs.mail@gmail.com>
> 
> ---
> Changes in v2:
> - Apply fix to both arm32 and arm64
> - Use 0x403 instead of 0x743
> ---
>  xen/arch/arm/arm32/mmu/head.S | 2 +-
>  xen/arch/arm/arm64/mmu/head.S | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/arm32/mmu/head.S b/xen/arch/arm/arm32/mmu/head.S
> index 5032e6c075..cab7be0621 100644
> --- a/xen/arch/arm/arm32/mmu/head.S
> +++ b/xen/arch/arm/arm32/mmu/head.S
> @@ -8,7 +8,7 @@
>  #include <asm/page.h>
>  #include <asm/early_printk.h>
>  
> -#define PT_PT     0xf7f /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=1 P=1 */
> +#define PT_PT     0x403 /* AF=1 T=1 P=1 (bits [11:2] ignored in table descriptors) */
Don't exceed 80 chars line length. Also, you don't need to provide reasoning
here for ignored bits.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 18 20:53:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 20:53:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312231.1582372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP4xP-0005Uh-Dp; Mon, 18 May 2026 20:52:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312231.1582372; Mon, 18 May 2026 20:52:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP4xP-0005UZ-AZ; Mon, 18 May 2026 20:52:59 +0000
Received: by outflank-mailman (input) for mailman id 1312231;
 Mon, 18 May 2026 20:52:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3JXwLagYKCaIUGCPLEIQQING.EQOZGP-FGXGNNKUVU.ZGPRTQLGEV.QTI@flex--seanjc.bounces.google.com>)
 id 1wP4xO-0005UT-32
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 20:52:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP4xL-00AEpq-OM
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 22:52:55 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3JXwLagYKCaIUGCPLEIQQING.EQOZGP-FGXGNNKUVU.ZGPRTQLGEV.QTI@flex--seanjc.bounces.google.com>)
 id 6a0b7c19-5cb7-0a2a0a5109dd-0a2a450bc028-10
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 22:52:55 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3JXwLagYKCaIUGCPLEIQQING.EQOZGP-FGXGNNKUVU.ZGPRTQLGEV.QTI@flex--seanjc.bounces.google.com>)
 id 6a0b7c26-212f-0a2a450b0019-d155d6c9b030-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 22:52:55 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2bc977e6aedso25217935ad.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 13:52:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779137573; x=1779742373; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=WgO1KNL8/U9E/DVqPyF+7ERcgH8vwTkrChGAMO4svKA=;
        b=B5+wKvp5rItNKPs4txYNbzzO0jR7F+aH10rptYuucBflYIaHiDPe1rIrOXz+5wVsTf
         YucJRX1e5TGw/rPbGPMPpKGQTvQckCu8oqp+ix0VxAddATAHC75nFRC5p/HBSOlNoJzg
         ZjypzIzsgC7nDBCzG8CcWb0yPu9CSq02x6v253xpt8shRVDOOoMoB/1s7/0K6R6+YWIp
         zitnExt8P3R2KI36I1YDcry5mkKFYpL96MRIVMUTv1ubPug7nkMYlX72ju1HbDaYkG9P
         bz0sL8mu1Y+dJfp2TF+k3AVcIP++nNBDQl2ad8YiyN3V5FXNUO+Ffc39lzsgNI3gChLl
         ErUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779137573; x=1779742373;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=WgO1KNL8/U9E/DVqPyF+7ERcgH8vwTkrChGAMO4svKA=;
        b=Zn//JhRlH+9y/chgwJwOFQQ+qzB87kfXHVYz6dCyFcHOIY4+JGLaUTbssAI06+q3C6
         9Pmz7L9ePgN18WVvySfodgVukXAYen5ciztdu07za+guNStm/NRI0RS0d96RZ4oat3sZ
         p0OTouZj405cgCx1XkO7q6Lol0aYve6w9qTVy+yEojlhA6bEBKBVza3IbCYAb+iKVwZ8
         8PimRFjA5HC6EJUrJsZZRRe+tUnjooDXWhng3tUczLQBZtQ9VMxmpjWPJKkleoYV4e/e
         1mL3xAaN50yuy+c+lVNAZqMHOlWEtfyivK0KGPJdpyo0yBw4El1Sx0CH7V+G7qt7r3w+
         CgNw==
X-Forwarded-Encrypted: i=1; AFNElJ/kjjpHEI7fqik5FY099Dve03JZXDSSeZgJVjuKFQgTZQb+uK0d7q0AkOgO/5WO+HFEoq88wm1hOL0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yysl/fIp0O+iTGdzm2CcenS/yl1FC15qd6K0p+JgSWjOAGW3GWt
	hGcur2bsR6rJgbPv8W+jPplVbliRjbuw1d+GjN0XH4s2QWQaKxynzxrPR/vvyhDt1Jy7gppGlxf
	tZ8aDUg==
X-Received: from plje19.prod.google.com ([2002:a17:902:ed93:b0:2bd:3dba:a4c5])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:230d:b0:2bd:9803:9304
 with SMTP id d9443c01a7336-2bd980394b5mr139925665ad.39.1779137573153; Mon, 18
 May 2026 13:52:53 -0700 (PDT)
Date: Mon, 18 May 2026 13:52:52 -0700
In-Reply-To: <d3c461415e05345a9b82e6f995828c1ae64a4e61.camel@infradead.org>
Mime-Version: 1.0
References: <20260509224824.3264567-1-dwmw2@infradead.org> <20260509224824.3264567-5-dwmw2@infradead.org>
 <0ae8e471-db7a-4842-aca4-8ef643acde8b@oracle.com> <d3c461415e05345a9b82e6f995828c1ae64a4e61.camel@infradead.org>
Message-ID: <agt8JM43BlLPU-kr@google.com>
Subject: Re: [PATCH v4 04/30] KVM: x86: Add KVM_[GS]ET_CLOCK_GUEST for
 accurate KVM clock migration
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Dongli Zhang <dongli.zhang@oracle.com>, kvm@vger.kernel.org, 
	Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
	Shuah Khan <skhan@linuxfoundation.org>, Thomas Gleixner <tglx@kernel.org>, 
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, "H. Peter Anvin" <hpa@zytor.com>, 
	Dave Hansen <dave.hansen@linux.intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, x86@kernel.org, 
	Marc Zyngier <maz@kernel.org>, Juergen Gross <jgross@suse.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Paul Durrant <paul@xen.org>, 
	Jonathan Cameron <jic23@kernel.org>, Sascha Bischoff <Sascha.Bischoff@arm.com>, 
	Jack Allister <jalliste@amazon.com>, Joey Gouly <joey.gouly@arm.com>, joe.jin@oracle.com, 
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, linux-kselftest@vger.kernel.org
Content-Type: text/plain; charset="us-ascii"
X-purgate-ID: tlsNG-42698a/1779137575-21780F3B-DB1EF56B/0/0
X-purgate-type: clean
X-purgate-size: 460

On Mon, May 18, 2026, David Woodhouse wrote:
> On Mon, 2026-05-18 at 00:52 -0700, Dongli Zhang wrote:
> > On 5/9/26 3:46 PM, David Woodhouse wrote:
> 
> Huh, I didn't write that then; it isn't September yet. Did you mean
> 2026-05-09? We aren't all in the US... 
> 
> Strictly speaking, you just misattributed a quote of mine, which is
> very poor form :)

But also pretty darn hilarious given that the thread is all about accurate
timekeeping :-)


From xen-devel-bounces@lists.xenproject.org Mon May 18 21:05:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 21:05:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312239.1582381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP59M-0007Gd-EV; Mon, 18 May 2026 21:05:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312239.1582381; Mon, 18 May 2026 21:05:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP59M-0007GW-Bd; Mon, 18 May 2026 21:05:20 +0000
Received: by outflank-mailman (input) for mailman id 1312239;
 Mon, 18 May 2026 21:05:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <gabi.qs.mail@gmail.com>) id 1wP59K-0007GQ-Ln
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 21:05:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP59J-009coL-JP
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 23:05:17 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <gabi.qs.mail@gmail.com>)
 id 6a0b7efc-5cb7-0a2a0a5109dd-0a2a4504ccc0-16
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 23:05:17 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <gabi.qs.mail@gmail.com>)
 id 6a0b7f0d-1dec-0a2a45040019-d155dd31b507-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 23:05:17 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-45ae6a0e523so1431151f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 14:05:17 -0700 (PDT)
Received: from fedora ([212.231.230.22]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da0a17a22sm40443669f8f.22.2026.05.18.14.05.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 May 2026 14:05:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779138317; x=1779743117; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=agHCrwJYP0DCxaiVVTnVqUVT8BS6ccgDGvOgzoEs3C4=;
        b=iNx23pqOp5n8Zstd1aSEz+UOlJ6s0IWCLpGRKuk9gv6+NPTb+KeGyXfB+mJh5Zq7kg
         uZBbE8lZQNfTDVKiDHg81fRL8YWXIZcqME4Hajezhq4kavOTFL1JjC+HZcnD3gfDVKg2
         oScj7lsWjBykG5mVYTuRqqOvyCMnFlz69pUllcIzubwLgoN4AR1GC1Bykd8MOzIUe3xf
         D8Gg+dxBQnPHUOPzI/9Y/Du/vsUdVNdMmAFPHfmdyFWAZHVHFANBke+Oh1lPfH3oa7b/
         8maf6QEwXb0hJ7qQBENTG831Sivk4h9epXKdZ22/bVebOx9aEYFjAoChx63LUIKwGzWT
         kQ9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779138317; x=1779743117;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=agHCrwJYP0DCxaiVVTnVqUVT8BS6ccgDGvOgzoEs3C4=;
        b=SHnuBss08wuC1uNuWLrHJdMmuhf7mt0I8PWN/CdQ95xMnSVFf7UGrZ4GDZsw6NdjyW
         oe57w7QuD2a91mlc+UOIPJHlFEkRqWvY80ENJ2ooF9C7tZHOmkFUx6kMZwLDsuWCz7Ub
         qSY1x0YRE8+MYlUILVJaE5RqDfKQnxoYs7fzQVqfnQMiT5g1YrEnhKbk7+hqFDDD87TU
         4ycSxMxxXxgG6oi308Qc6j9BiNQQpd6han9iYsfv2Wl6TUUEmwwmAYpJnDMlWkJvjaTr
         BCgpksU/V9KK5b3qPCjePU7f7W1SquPczsjmE3ZsR8pHNvrE1CnUollRcoyk3M/SXoNI
         2heA==
X-Gm-Message-State: AOJu0YzyMU1Rj6SBXHdD8U1S61fOlo0wHBtU4aOsSbzoe0qNCqCWBAAk
	3mA6U2YCxZijH7MIXCDbyYuLf5wtYb/+NLBz1ODha+vRlPhDtJH9hca6g8aSrlWYQ1A=
X-Gm-Gg: Acq92OGaasIoxL2d+Z4iiwvWoJwzut1gPK3qEEUMfk2/TFmDhtoVfa5C/n2DRjNBVDj
	Ry163sHFT61XbKNcXhbA86dVVT1xPYv8KlMCvyqVkQAJIPxtvS6885phK22pUNuBBmPRKICPN7b
	QBZl3vBPck+7JC/SRO45O5M4wEgVFfyh6KkngY3UkRNpHPFN1ZDGlCPSWu37sRPDyfARPvnI8Oo
	WRj+Cde6srod8MBtgztmJrK9pNVk0+9ryZ2gBBwSkuPVwCYaJdPNStwtRjkNQfnaoxSJ7aKkQoW
	mFLpLYEeaXfkYm0g8oyucprb0yqan7/U5mqRAjTXxi9kDpjIcsj6mE8K/J6UM8xPRZPpFjW2G1G
	SZzA3OUmnO8ZOhS3r68TRr9BLr/gyqi1IK9iRYM8sZPadCbAHXtp/8xKVJFxJhHQWlD3cA97bF9
	8A87b7I8PowZFk9LbXF6zCR7U5fCKtrtU=
X-Received: by 2002:a05:6000:400f:b0:456:15fa:9eba with SMTP id ffacd0b85a97d-45e5c5a56f7mr25710079f8f.43.1779138316581;
        Mon, 18 May 2026 14:05:16 -0700 (PDT)
From: =?UTF-8?q?Gabriel=20Quint=C3=A1ns=20Souto?= <gabi.qs.mail@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	julien@xen.org,
	bertrand.marquis@arm.com,
	michal.orzel@amd.com,
	=?UTF-8?q?Gabriel=20Quint=C3=A1ns=20Souto?= <gabi.qs.mail@gmail.com>
Subject: [PATCH v3] arm: Fix PT_PT table descriptor value and comment
Date: Mon, 18 May 2026 23:00:08 +0200
Message-ID: <20260518210340.81347-1-gabi.qs.mail@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <b0a7dbdf-775a-45e2-bee4-d234ca21c002@amd.com>
References: <b0a7dbdf-775a-45e2-bee4-d234ca21c002@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1779138317-28F753FF-7C68DAAE/0/0
X-purgate-type: clean
X-purgate-size: 1929

Per ARMv7-A/ARMv8-A ARM, bits [11:2] of table descriptors are
ignored by hardware. The original comment incorrectly described
block/page descriptor fields which are not present in table
descriptors.

Use the minimal valid encoding for table descriptors by setting
PT_PT to 0x3.

This updates both arm32 and arm64 for consistency.

Signed-off-by: Gabriel Quintáns Souto <gabi.qs.mail@gmail.com>
---
Changes in v3:
- Use 0x3 instead of 0x403

Changes in v2:
- Apply fix to both arm32 and arm64
- Use 0x403 instead of 0x743
---
 xen/arch/arm/arm32/mmu/head.S | 2 +-
 xen/arch/arm/arm64/mmu/head.S | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/arm32/mmu/head.S b/xen/arch/arm/arm32/mmu/head.S
index cab7be0621..3731322f7e 100644
--- a/xen/arch/arm/arm32/mmu/head.S
+++ b/xen/arch/arm/arm32/mmu/head.S
@@ -8,7 +8,7 @@
 #include <asm/page.h>
 #include <asm/early_printk.h>
 
-#define PT_PT     0x403 /* AF=1 T=1 P=1 (bits [11:2] ignored in table descriptors) */
+#define PT_PT     0x3   /* T=1 P=1 */
 #define PT_MEM    0xf7d /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=0 P=1 */
 #define PT_MEM_L3 0xf7f /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=1 P=1 */
 #define PT_DEV    0xe71 /* nG=1 AF=1 SH=10 AP=01 NS=1 ATTR=100 T=0 P=1 */
diff --git a/xen/arch/arm/arm64/mmu/head.S b/xen/arch/arm/arm64/mmu/head.S
index 375d703d9b..8e514d2114 100644
--- a/xen/arch/arm/arm64/mmu/head.S
+++ b/xen/arch/arm/arm64/mmu/head.S
@@ -8,7 +8,7 @@
 #include <asm/page.h>
 #include <asm/early_printk.h>
 
-#define PT_PT     0x403 /* AF=1 T=1 P=1 (bits [11:2] ignored in table descriptors) */
+#define PT_PT     0x3   /* T=1 P=1 */
 #define PT_MEM    0xf7d /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=0 P=1 */
 #define PT_MEM_L3 0xf7f /* nG=1 AF=1 SH=11 AP=01 NS=1 ATTR=111 T=1 P=1 */
 #define PT_DEV    0xe71 /* nG=1 AF=1 SH=10 AP=01 NS=1 ATTR=100 T=0 P=1 */
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Mon May 18 21:11:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 21:11:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312248.1582391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP5Fe-0000aP-76; Mon, 18 May 2026 21:11:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312248.1582391; Mon, 18 May 2026 21:11:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP5Fe-0000aI-3F; Mon, 18 May 2026 21:11:50 +0000
Received: by outflank-mailman (input) for mailman id 1312248;
 Mon, 18 May 2026 21:11:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3kYALagYKCRgG2yB704CC492.0CAL2B-12J2996GHG.L2BDFC720H.CF4@flex--seanjc.bounces.google.com>)
 id 1wP5Fc-0000aC-NY
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 21:11:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP5Fc-00FfbF-06
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 23:11:48 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3kYALagYKCRgG2yB704CC492.0CAL2B-12J2996GHG.L2BDFC720H.CF4@flex--seanjc.bounces.google.com>)
 id 6a0b8076-e002-0a2a0a5209dd-0a2a450590fc-32
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 23:11:47 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3kYALagYKCRgG2yB704CC492.0CAL2B-12J2996GHG.L2BDFC720H.CF4@flex--seanjc.bounces.google.com>)
 id 6a0b8092-aaa8-0a2a45050019-d155d6c9c474-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 23:11:47 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2ba3245a43dso29499985ad.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 14:11:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779138706; x=1779743506; darn=lists.xenproject.org;
        h=to:from:subject:message-id:references:mime-version:in-reply-to:date
         :from:to:cc:subject:date:message-id:reply-to;
        bh=M0HR0/OeCt5J6wDdP6oTOA3/U+zZIegjjUJa8wpeaiw=;
        b=oHa+fhmoEyvGpMxzcJoQbuLyHNZk6Kc2g4bme75/EsQzqLW7As0RohEzxvTbtFL17i
         i0ZJ6kfo7I2sU2rC+Tvvvv7QnGDhJ2fF/CElTc8u6bBej4EaK4sDQmjJhfRWctE0U8vs
         VcvQ73XBAvDw+JP5+UY7RzOd8luHTussH6IvPXNZt3Es6Kdbdc4PKo1QePag6HxJvBOj
         Py8q7q0+RUAwcjfBcs3qFcz1wk9sBW+lmRAoq8UPRTbukmTRJCmIpvBDCCSfZIx3J70Q
         18GdmiP8k/x0u0vRFwwZQy97OjdKUPucK9YsM9HgCI8jWc10rbC1MnhdXLRncMdCoUYK
         dxWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779138706; x=1779743506;
        h=to:from:subject:message-id:references:mime-version:in-reply-to:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=M0HR0/OeCt5J6wDdP6oTOA3/U+zZIegjjUJa8wpeaiw=;
        b=nOOCVSdY4P1qrnw7bgtd7UCHFcLsjIUMH7pUUD9dVP10qTMn3gVkuy1R9NDkf8FWqa
         awUc+w4P4xaPjSX+xHs0hMDykebz3iKMS0MWjCiNu1IOsjhwkrXYVfi7fRRjOi0G60z6
         ySDISS8KHRwfghtO+FX6INtdLocqey+UZKR+epsSpqTaBqCoN0cpgiYdKKIQhauVUXMS
         YP4O9vFi0lN5s568TidCj0dhI5Nnpy0gS3QluKnrbyhDxQ73oC+oPPXwpGLVC9V3v/an
         8sqbd68CsZkbT/Zt0GYrNCXFGTglJ4V9Izi6AgQv23y7Z2kiu7Z0MtQIHjqVQduM+1Mr
         eWxQ==
X-Forwarded-Encrypted: i=1; AFNElJ8qMAigoBmFAF5syJhYRi5Qu05JsMGfkMGPTWSX4A3TpfBM4IjdFK1cqBfYGUjLwHg7hmUIBn+BR2E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxBzifZ9E1ombSqeXusaCUs4paIir3XSvnBonFF7rSVy58wVxxY
	3p1J5PqTeo4zR+YoWZRDEbTmEHESs88X0yKMw0hlmgauF9xM9V1KJuoTX8N15G9AMq1NqwzA4PH
	m1zU7zw==
X-Received: from plhq16.prod.google.com ([2002:a17:903:11d0:b0:2b2:43c2:a183])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:11c4:b0:2bd:9766:bd2b
 with SMTP id d9443c01a7336-2bd9766be37mr135740745ad.19.1779138705542; Mon, 18
 May 2026 14:11:45 -0700 (PDT)
Date: Mon, 18 May 2026 14:11:44 -0700
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com>
Message-ID: <aguAkMTrkSVPthal@google.com>
Subject: Re: [PATCH v3 00/41] x86: Try to wrangle PV clocks vs. TSC
From: Sean Christopherson <seanjc@google.com>
To: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="us-ascii"
X-purgate-ID: tlsNG-c201ff/1779138707-E0A66443-D63935C1/0/0
X-purgate-type: clean
X-purgate-size: 1577

On Fri, May 15, 2026, Sean Christopherson wrote:
> Dave/Thomas/Peter/Boris, what's the going rate for bribes to take something
> like this through the tip tree?  
> 
> The bulk of the changes are in kvmclock and TSC, but pretty much every
> hypervisor's guest-side code gets touched at some point.  I am reaonsably
> confident in the correctness of the KVM changes.  Michael tested Hyper-V in
> v2, and while there were conflicts when rebasing, they were largely
> superficial (and I've just jinxed myself).  For all other hypervisors, assume
> the code is compile-tested only, but those changes are all quite small and
> straightforward.
> 
> The only changes that are questionable/contentious are the last two patches,
> which have KVM-as-a-guest use CPUID 0x16 to get the CPU frequency, even on
> AMD (that's the dubious part).  I very deliberately put them last, so that
> they can be dropped at will (I don't care terribly if those patches land).
> To merge them, I would want explicit Acks from Paolo and David W.
> 
> So, except for the last two patches, to get the stuff I really care about
> landed, I think/hope it's just the TSC and guest-side CoCo changes that need
> reviews/acks?

FYI, don't bother reviewing this version.  Sashiko found several glaring flaws,
but I just realized that sashiko-bot's emails are only being sent to myself and
linux-hyperv@vger.kernel.org.  I'll make sure to highlight the changes in the
next version.

In the meantime, Sashiko's feedback is archived on lore if you want to see me
get torched by AI :-)


From xen-devel-bounces@lists.xenproject.org Mon May 18 22:00:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 22:00:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312262.1582400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP60H-0006Su-O2; Mon, 18 May 2026 22:00:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312262.1582400; Mon, 18 May 2026 22:00:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP60H-0006SN-Ib; Mon, 18 May 2026 22:00:01 +0000
Received: by outflank-mailman (input) for mailman id 1312262;
 Mon, 18 May 2026 22:00:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <prvs=591c97781=dwmw@amazon.co.uk>)
 id 1wP60G-0006Kf-JN
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 22:00:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP60D-00Fk3Q-0U
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 23:59:57 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <prvs=591c97781=dwmw@amazon.co.uk>)
 id 6a0b8b8b-5cb7-0a2a0a5109dd-0a2a450cebb2-30
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 23:59:56 +0200
Received: from [3.211.80.218]
 (helo=iad-out-005.esa.us-east-1.outbound.mail-perimeter.amazon.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <prvs=591c97781=dwmw@amazon.co.uk>)
 id 6a0b8bdb-62f1-0a2a450c0019-03d350da3660-3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 23:59:56 +0200
Received: from ip-10-4-3-150.ec2.internal (HELO
 smtpout.naws.us-east-1.prod.farcaster.email.amazon.dev) ([10.4.3.150])
 by internal-iad-out-005.esa.us-east-1.outbound.mail-perimeter.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 May 2026 21:59:52 +0000
Received: from EX19MTAUEB001.ant.amazon.com [72.21.198.67:31640]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.94.94:2525]
 with esmtp (Farcaster)
 id 7fef345e-b796-4a43-8663-485108bc2c9b; Mon, 18 May 2026 21:59:51 +0000 (UTC)
Received: from EX19D001UEB002.ant.amazon.com (10.252.135.17) by
 EX19MTAUEB001.ant.amazon.com (10.252.135.108) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.37;
 Mon, 18 May 2026 21:59:51 +0000
Received: from EX19D001UEB002.ant.amazon.com (10.252.135.17) by
 EX19D001UEB002.ant.amazon.com (10.252.135.17) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.37;
 Mon, 18 May 2026 21:59:51 +0000
Received: from EX19D001UEB002.ant.amazon.com ([fe80::19d6:e954:f18:6292]) by
 EX19D001UEB002.ant.amazon.com ([fe80::19d6:e954:f18:6292%3]) with mapi id
 15.02.2562.037; Mon, 18 May 2026 21:59:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=amazoncorp2 header.d=amazon.co.uk header.i="@amazon.co.uk" header.h="From:To:CC:Subject:Date:Message-ID:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.co.uk; i=@amazon.co.uk; q=dns/txt;
  s=amazoncorp2; t=1779141596; x=1810677596;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to;
  bh=UY4px7obefDkFSqtaMX8W1nqhkHCToXgPd5bqMLXMUU=;
  b=s034rcmGp4TIFYSid6n8PJcuq2IX2/8c04vw2V/3r3bm5BJuzAqXeg+E
   cbR2cgDi1wt0eSUid0wu52PSZ+XVpjzonR60EhZZz9tFfzryw18rdGWHc
   KyOTViQ+rmVh+1xybtq/JpUgjwf38BBPH7J8mXY9poVcCwM5SvqxAkmOo
   Dn4k3mN9FwxMHP+l/VtGwfzCM7DqRDa7LPBE6IJ6U6dKqHQy73wgstkCG
   g+YqJJcXqCJWHQfRaVuFfBsWjcfChpGGQU0Q882rPY4DzvS5o5oK7UsLh
   pCQZpgAl92ZE4ljGlWKayZfyr5eSCfDoUwGeNozRKDeWkrZNggzfv96Oc
   Q==;
X-CSE-ConnectionGUID: gTMEk/4WTCen/jZTSjFtkg==
X-CSE-MsgGUID: 8tZ40CHMRQSBVjZo5QI3zg==
X-Amazon-filename: smime.p7s
X-IronPort-AV: E=Sophos;i="6.23,242,1770595200"; 
   d="p7s'346?scan'346,208,346";a="18989139"
Content-Type: multipart/mixed; boundary="===============4007323092883351321=="
MIME-Version: 1.0
X-Farcaster-Flow-ID: 7fef345e-b796-4a43-8663-485108bc2c9b
From: "Woodhouse, David" <dwmw@amazon.co.uk>
To: "tglx@kernel.org" <tglx@kernel.org>, "longli@microsoft.com"
	<longli@microsoft.com>, "luto@kernel.org" <luto@kernel.org>,
	"alexey.makhalov@broadcom.com" <alexey.makhalov@broadcom.com>,
	"jstultz@google.com" <jstultz@google.com>, "dave.hansen@linux.intel.com"
	<dave.hansen@linux.intel.com>, "ajay.kaher@broadcom.com"
	<ajay.kaher@broadcom.com>, "jan.kiszka@siemens.com" <jan.kiszka@siemens.com>,
	"haiyangz@microsoft.com" <haiyangz@microsoft.com>, "kas@kernel.org"
	<kas@kernel.org>, "seanjc@google.com" <seanjc@google.com>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>, "kys@microsoft.com"
	<kys@microsoft.com>, "decui@microsoft.com" <decui@microsoft.com>,
	"daniel.lezcano@kernel.org" <daniel.lezcano@kernel.org>, "wei.liu@kernel.org"
	<wei.liu@kernel.org>, "peterz@infradead.org" <peterz@infradead.org>,
	"jgross@suse.com" <jgross@suse.com>
CC: "boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>,
	"linux-coco@lists.linux.dev" <linux-coco@lists.linux.dev>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>, "mhklinux@outlook.com"
	<mhklinux@outlook.com>, "thomas.lendacky@amd.com" <thomas.lendacky@amd.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"bcm-kernel-feedback-list@broadcom.com"
	<bcm-kernel-feedback-list@broadcom.com>, "tglx@linutronix.de"
	<tglx@linutronix.de>, "nikunj@amd.com" <nikunj@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"vkuznets@redhat.com" <vkuznets@redhat.com>, "rick.p.edgecombe@intel.com"
	<rick.p.edgecombe@intel.com>, "virtualization@lists.linux.dev"
	<virtualization@lists.linux.dev>, "sboyd@kernel.org" <sboyd@kernel.org>,
	"x86@kernel.org" <x86@kernel.org>
Subject: Re: [PATCH v3 02/41] x86/tsc: Add helper to register CPU and TSC freq
 calibration routines
Thread-Topic: [PATCH v3 02/41] x86/tsc: Add helper to register CPU and TSC
 freq calibration routines
Thread-Index: AQHc5xGmpbVPXJqKvE66awyRkPGU2A==
Date: Mon, 18 May 2026 21:59:51 +0000
Message-ID: <949e39aec749f019b18fa41c2a42bcc9231288b9.camel@amazon.co.uk>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-3-seanjc@google.com>
In-Reply-To: <20260515191942.1892718-3-seanjc@google.com>
Accept-Language: en-GB, en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.106.83.21]
MIME-Version: 1.0
X-purgate-ID: tlsNG-d25034/1779141596-F4C79CF5-E0AA7E1A/21/137
X-purgate-type: clean
X-purgate-size: 10730

--===============4007323092883351321==
Content-Language: en-US
Content-Type: multipart/signed; micalg=sha-256;
	protocol="application/pkcs7-signature"; boundary="=-6Tz0T5TstgWdynDqmecj"

--=-6Tz0T5TstgWdynDqmecj
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
>=20
> --- a/arch/x86/xen/time.c
> +++ b/arch/x86/xen/time.c
> @@ -569,7 +569,7 @@ static void __init xen_init_time_common(void)
> =C2=A0	static_call_update(pv_steal_clock, xen_steal_clock);
> =C2=A0	paravirt_set_sched_clock(xen_sched_clock);
> =C2=A0
> -	x86_platform.calibrate_tsc =3D xen_tsc_khz;
> +	tsc_register_calibration_routines(xen_tsc_khz, NULL);
> =C2=A0	x86_platform.get_wallclock =3D xen_get_wallclock;
> =C2=A0}
> =C2=A0

xen_tsc_khz() doesn't use CPUID but really *should*.

Care to pull in
https://lore.kernel.org/all/20260509224824.3264567-31-dwmw2@infradead.org/
to your next round please?

(Without the misplaced changes in kvm/x86.c that should have been in
two different prior commits, and are now folded into those correctly in
my kvmclock5 branch ready for the next posting of that).

I'll drop that patch, and the similar x86/kvm one which you *have*
already taken in this series, from my next posting.

Thanks.


--=-6Tz0T5TstgWdynDqmecj
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCEkYw
ggYQMIID+KADAgECAhBNlCwQ1DvglAnFgS06KwZPMA0GCSqGSIb3DQEBDAUAMIGIMQswCQYDVQQG
EwJVUzETMBEGA1UECBMKTmV3IEplcnNleTEUMBIGA1UEBxMLSmVyc2V5IENpdHkxHjAcBgNVBAoT
FVRoZSBVU0VSVFJVU1QgTmV0d29yazEuMCwGA1UEAxMlVVNFUlRydXN0IFJTQSBDZXJ0aWZpY2F0
aW9uIEF1dGhvcml0eTAeFw0xODExMDIwMDAwMDBaFw0zMDEyMzEyMzU5NTlaMIGWMQswCQYDVQQG
EwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYD
VQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50
aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAyjztlApB/975Rrno1jvm2pK/KxBOqhq8gr2+JhwpKirSzZxQgT9tlC7zl6hn1fXjSo5MqXUf
ItMltrMaXqcESJuK8dtK56NCSrq4iDKaKq9NxOXFmqXX2zN8HHGjQ2b2Xv0v1L5Nk1MQPKA19xeW
QcpGEGFUUd0kN+oHox+L9aV1rjfNiCj3bJk6kJaOPabPi2503nn/ITX5e8WfPnGw4VuZ79Khj1YB
rf24k5Ee1sLTHsLtpiK9OjG4iQRBdq6Z/TlVx/hGAez5h36bBJMxqdHLpdwIUkTqT8se3ed0PewD
ch/8kHPo5fZl5u1B0ecpq/sDN/5sCG52Ds+QU5O5EwIDAQABo4IBZDCCAWAwHwYDVR0jBBgwFoAU
U3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFAnA8vwL2pTbX/4r36iZQs/J4K0AMA4GA1Ud
DwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
BQcDBDARBgNVHSAECjAIMAYGBFUdIAAwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC51c2Vy
dHJ1c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYGCCsGAQUF
BwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3QuY29tL1VTRVJUcnVzdFJT
QUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMA0G
CSqGSIb3DQEBDAUAA4ICAQBBRHUAqznCFfXejpVtMnFojADdF9d6HBA4kMjjsb0XMZHztuOCtKF+
xswhh2GqkW5JQrM8zVlU+A2VP72Ky2nlRA1GwmIPgou74TZ/XTarHG8zdMSgaDrkVYzz1g3nIVO9
IHk96VwsacIvBF8JfqIs+8aWH2PfSUrNxP6Ys7U0sZYx4rXD6+cqFq/ZW5BUfClN/rhk2ddQXyn7
kkmka2RQb9d90nmNHdgKrwfQ49mQ2hWQNDkJJIXwKjYA6VUR/fZUFeCUisdDe/0ABLTI+jheXUV1
eoYV7lNwNBKpeHdNuO6Aacb533JlfeUHxvBz9OfYWUiXu09sMAviM11Q0DuMZ5760CdO2VnpsXP4
KxaYIhvqPqUMWqRdWyn7crItNkZeroXaecG03i3mM7dkiPaCkgocBg0EBYsbZDZ8bsG3a08LwEsL
1Ygz3SBsyECa0waq4hOf/Z85F2w2ZpXfP+w8q4ifwO90SGZZV+HR/Jh6rEaVPDRF/CEGVqR1hiuQ
OZ1YL5ezMTX0ZSLwrymUE0pwi/KDaiYB15uswgeIAcA6JzPFf9pLkAFFWs1QNyN++niFhsM47qod
x/PL+5jR87myx5uYdBEQkkDc+lKB1Wct6ucXqm2EmsaQ0M95QjTmy+rDWjkDYdw3Ms6mSWE3Bn7i
5ZgtwCLXgAIe5W8mybM2JzCCBhUwggT9oAMCAQICEFQru/eJkU7BxeS7T6sWKmYwDQYJKoZIhvcN
AQELBQAwgZYxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNV
BAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE+MDwGA1UEAxM1U2VjdGlnbyBS
U0EgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0EwHhcNMjQxMjE1MDAw
MDAwWhcNMjYxMjE1MjM1OTU5WjAiMSAwHgYJKoZIhvcNAQkBFhFkd213QGFtYXpvbi5jby51azCC
AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANhjs6T4tJ0lcw4+6sawEn2FowmhunUBsnSV
ccB+aA7s3Zd9PZV46CU6phAlCWpKk1yFVcD1Rnc4ux17o4LbUgFXiKrORS0jiF/5Oa0rXG3FISG1
Xdjt8oPKIq+9Z1s2e7Ipi5WWj4AG/xlkH/YMMctL9O8CCRHSrhiChbE/gR57x9PAnt5aeZZ2YWza
GOOeceaZe+u6vHCHITRmknSAnAX/aNoNJNsQCGcfrE83y9iHmP8BFrSRZqajBKlKq8tyJd5FnSwP
H3kSUcQlHOwiIfCRFXP4rpXSZ7nKOEZr3SXH06ADY9gZtrSpwBbuzKWDPGWMRuRnz8ogj/Y6DeU4
2zB/ZAIi5b0BzWf4u0rBEQD5xtpOCxYHc2nXQaFSWu36kP1JaNqElE51OQ92EyVKfW3N6qZcKiBr
VijXY2EtR+/5W9ixRFnEs4nIeb94Sf92UMEeG9ew2yVvcYXXNPaicGnrkESNC19/a8YXxQEZfrmB
eAPT9viQJhn3O+sD4pP0Ss3SjVZc6EO7vfoP07bt2n9YE08XSPkxcyb1J/4t/+AskkKeYFBGdpjg
xd+iLFxjSwBytZuh3+7DuHUfg876WA44ieQDrhHSjuvuAZ1Wb8WUsrpzrcLoYjqFmb/bf6/yyoxl
t31mdgPC+FLc+Yu1BQwXC3JMbrvbFBVTtn5X2EKDAgMBAAGjggHQMIIBzDAfBgNVHSMEGDAWgBQJ
wPL8C9qU21/+K9+omULPyeCtADAdBgNVHQ4EFgQUWvtA1XsSV8xjgfFQL/DUTNIbJu4wDgYDVR0P
AQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwQwUAYDVR0gBEkwRzA6
BgwrBgEEAbIxAQIBCgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zZWN0aWdvLmNvbS9TTUlNRUNQ
UzAJBgdngQwBBQEDMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2Vj
dGlnb1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5jcmwwgYoGCCsGAQUF
BwEBBH4wfDBVBggrBgEFBQcwAoZJaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBQ2xp
ZW50QXV0aGVudGljYXRpb25hbmRTZWN1cmVFbWFpbENBLmNydDAjBggrBgEFBQcwAYYXaHR0cDov
L29jc3Auc2VjdGlnby5jb20wHAYDVR0RBBUwE4ERZHdtd0BhbWF6b24uY28udWswDQYJKoZIhvcN
AQELBQADggEBAED6T+rfP2XPdLfHoCd5n1iGIcYauWfPHRdZN2Tw7a7NEXIkm2yZNizOSpp3NrMi
WOBN13XgqnYLsqdpxJhbjwKczKX50/qfhhkOHtrQ0GRkucybK447Aaul80cZT8T3WG9U9dhl3Ct/
MuyKBWQg3MYlbUT6u4kC9Pk8rd+cR14ttYRUWDKTS2BrL7e8jpNmtCoEakDkMY4MrpoMwM1f4ANV
qZ8cnDntwXq5ormZIksN2DqxsKLmrFyVAONhqSST72ImBfIVWhFRTCF9tTcI5wE/0Skl25FZmSsB
B2LUgecgK7MZyw9Do/b0sYS+8YmA/ujUCqNb0fPJBE/B9vBomhswggYVMIIE/aADAgECAhBUK7v3
iZFOwcXku0+rFipmMA0GCSqGSIb3DQEBCwUAMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0
ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJl
IEVtYWlsIENBMB4XDTI0MTIxNTAwMDAwMFoXDTI2MTIxNTIzNTk1OVowIjEgMB4GCSqGSIb3DQEJ
ARYRZHdtd0BhbWF6b24uY28udWswggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDYY7Ok
+LSdJXMOPurGsBJ9haMJobp1AbJ0lXHAfmgO7N2XfT2VeOglOqYQJQlqSpNchVXA9UZ3OLsde6OC
21IBV4iqzkUtI4hf+TmtK1xtxSEhtV3Y7fKDyiKvvWdbNnuyKYuVlo+ABv8ZZB/2DDHLS/TvAgkR
0q4YgoWxP4Eee8fTwJ7eWnmWdmFs2hjjnnHmmXvrurxwhyE0ZpJ0gJwF/2jaDSTbEAhnH6xPN8vY
h5j/ARa0kWamowSpSqvLciXeRZ0sDx95ElHEJRzsIiHwkRVz+K6V0me5yjhGa90lx9OgA2PYGba0
qcAW7sylgzxljEbkZ8/KII/2Og3lONswf2QCIuW9Ac1n+LtKwREA+cbaTgsWB3Np10GhUlrt+pD9
SWjahJROdTkPdhMlSn1tzeqmXCoga1Yo12NhLUfv+VvYsURZxLOJyHm/eEn/dlDBHhvXsNslb3GF
1zT2onBp65BEjQtff2vGF8UBGX65gXgD0/b4kCYZ9zvrA+KT9ErN0o1WXOhDu736D9O27dp/WBNP
F0j5MXMm9Sf+Lf/gLJJCnmBQRnaY4MXfoixcY0sAcrWbod/uw7h1H4PO+lgOOInkA64R0o7r7gGd
Vm/FlLK6c63C6GI6hZm/23+v8sqMZbd9ZnYDwvhS3PmLtQUMFwtyTG672xQVU7Z+V9hCgwIDAQAB
o4IB0DCCAcwwHwYDVR0jBBgwFoAUCcDy/AvalNtf/ivfqJlCz8ngrQAwHQYDVR0OBBYEFFr7QNV7
ElfMY4HxUC/w1EzSGybuMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoG
CCsGAQUFBwMEMFAGA1UdIARJMEcwOgYMKwYBBAGyMQECAQoCMCowKAYIKwYBBQUHAgEWHGh0dHBz
Oi8vc2VjdGlnby5jb20vU01JTUVDUFMwCQYHZ4EMAQUBAzBaBgNVHR8EUzBRME+gTaBLhklodHRw
Oi8vY3JsLnNlY3RpZ28uY29tL1NlY3RpZ29SU0FDbGllbnRBdXRoZW50aWNhdGlvbmFuZFNlY3Vy
ZUVtYWlsQ0EuY3JsMIGKBggrBgEFBQcBAQR+MHwwVQYIKwYBBQUHMAKGSWh0dHA6Ly9jcnQuc2Vj
dGlnby5jb20vU2VjdGlnb1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5j
cnQwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMBwGA1UdEQQVMBOBEWR3bXdA
YW1hem9uLmNvLnVrMA0GCSqGSIb3DQEBCwUAA4IBAQBA+k/q3z9lz3S3x6AneZ9YhiHGGrlnzx0X
WTdk8O2uzRFyJJtsmTYszkqadzazIljgTdd14Kp2C7KnacSYW48CnMyl+dP6n4YZDh7a0NBkZLnM
myuOOwGrpfNHGU/E91hvVPXYZdwrfzLsigVkINzGJW1E+ruJAvT5PK3fnEdeLbWEVFgyk0tgay+3
vI6TZrQqBGpA5DGODK6aDMDNX+ADVamfHJw57cF6uaK5mSJLDdg6sbCi5qxclQDjYakkk+9iJgXy
FVoRUUwhfbU3COcBP9EpJduRWZkrAQdi1IHnICuzGcsPQ6P29LGEvvGJgP7o1AqjW9HzyQRPwfbw
aJobMYIExDCCBMACAQEwgaswgZYxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNo
ZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE+MDwGA1UE
AxM1U2VjdGlnbyBSU0EgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0EC
EFQru/eJkU7BxeS7T6sWKmYwDQYJYIZIAWUDBAIBBQCgggHpMBgGCSqGSIb3DQEJAzELBgkqhkiG
9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUxODIxNTk0OVowLwYJKoZIhvcNAQkEMSIEIFiU5Qg9
Fmi9PGbvIBjBzAyfDqygPzdshDgwa/NHUv8rMIG8BgkrBgEEAYI3EAQxga4wgaswgZYxCzAJBgNV
BAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGDAW
BgNVBAoTD1NlY3RpZ28gTGltaXRlZDE+MDwGA1UEAxM1U2VjdGlnbyBSU0EgQ2xpZW50IEF1dGhl
bnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0ECEFQru/eJkU7BxeS7T6sWKmYwgb4GCyqGSIb3
DQEJEAILMYGuoIGrMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVy
MRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNl
Y3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBAhBUK7v3
iZFOwcXku0+rFipmMA0GCSqGSIb3DQEBAQUABIICAM8OsQlCgYxvSOF82bTYNa12ZmCvPHorscCM
aJsr915mAOH/vS0/0IoGcAzfJ0o+GGrTheWdZh+QRqPF5PFnxgPeB2FpVh2zSA+OwvDXwoLx8McZ
AuZqnRD7mB6jK0/n9Fyi2Pa1Pe7IBxNKaWGgKg0AY4QtJU5p9v/pdw11UyUdilJIqXh4c/uiIOgv
Cpsb/onNbypJ4vSH6zqkc2tjkvAAEAmHxeezBt6nhxZDVCjJseM/e5FivKIxFuWxR9LTNQsWMom5
qTImdoMRznno5kM6Hyv3sGJXRojDzYUnC/LBXC9gPds87vzE6KT1D4orfcejKbshuuWa+5l24ufr
bd90fbHVDfmcHj/pqs+rsZ+SfHaCWHp5S+8jlB/xIywDsw9f6IQ9bm2RWEIoPvNHxSdWK7kzZmFJ
aMHdOdhzOgm/7fL/8R0KFTTC792rh/lP/SbeZ7b76iovsDKAA+hzbg/LXTQbgzqMktUzyD7wiRbL
s+JQFTavHAAXR3oYAEhn+9g+WG5oPwGSvJKt/QiciQJiuuO9t4lOZ62h6nTmaGvLGHnnsDFMXgft
4KJsLrmUnCgTOUe6DXrXzYkohA4g1dNlv17uT1W+48IhnQEhxtyCQzirrPQpdY+C/+knjYlPiQZr
WGoxCpHSfs4SZcMIF5SoHnHRT64vORa3kYLfaeRpAAAAAAAA


--=-6Tz0T5TstgWdynDqmecj--

--===============4007323092883351321==
Content-Type: multipart/alternative; boundary="===============2999282878485236890=="
MIME-Version: 1.0
Content-Disposition: inline

--===============2999282878485236890==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable




Amazon Development Centre (London) Ltd. Registered in England and Wales wit=
h registration number 04543232 with its registered office at 1 Principal Pl=
ace, Worship Street, London EC2A 2FA, United Kingdom.



--===============2999282878485236890==
Content-Type: text/html; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable

<br><br><br>Amazon Development Centre (London) Ltd.Registered in England an=
d Wales with registration number 04543232 with its registered office at 1 P=
rincipal Place, Worship Street, London EC2A 2FA, United Kingdom.<br><br><br>

--===============2999282878485236890==--

--===============4007323092883351321==--


From xen-devel-bounces@lists.xenproject.org Mon May 18 22:36:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 22:36:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312269.1582408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP6Zm-00035L-7U; Mon, 18 May 2026 22:36:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312269.1582408; Mon, 18 May 2026 22:36:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP6Zm-00035E-3z; Mon, 18 May 2026 22:36:42 +0000
Received: by outflank-mailman (input) for mailman id 1312269;
 Mon, 18 May 2026 22:36:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wP6Zl-000358-8t
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 22:36:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP6Zk-00HTli-4e
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 00:36:40 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0b9452-2eae-0a2a0a5409dd-0a2a45048334-8
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 00:36:40 +0200
Received: from [209.85.208.177] (helo=mail-lj1-f177.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0b9477-1dec-0a2a45040019-d155d0b1b8e3-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 00:36:39 +0200
Received: by mail-lj1-f177.google.com with SMTP id
 38308e7fff4ca-393c93a0166so31155171fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:36:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779143799; cv=none;
        d=google.com; s=arc-20240605;
        b=OF+Uj7cfKnYGSyn668pydX58vrnnvHoyY9yY8pNUCbLCX2a9o+fsN0f1dhucS3Zbfr
         xXqdw3qZUls7GDSUpd+r7y9O/Dlqc+YirRVB98PuzudLf7z3P+ORyW5X0O2AGNO3JGCj
         vQrxlsmGn5k3gAYoVFXwlVfB7JASGSikRBStfXozyE8t3oQVyEIWFF97tLycHuPqCP66
         MYZ3e4srd0SivZhRZlbSLFpYHwla8MWJh6Da32Y33BuOdB16SPvyznYjZSUvMmNaYoZI
         SiChD/GUcH+2ck7bj6MG7ArYv7v+QKoEtjR2V3SOu0xuaapBQ2jkI8IU2tUAS+6nNY/7
         REUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=vxjc9Rh85UVDLOa6UVs+hSnPillcyypzCV/sXZmXpZM=;
        fh=URHEk7klKxjqc5bXwxtPgt12zwbJaOVjsCphaVnE7cw=;
        b=S2iIOZn2NA5XtDcw7FRGgDeyxeznBBR1RPqQwMd7Yl/3wNvJ6MrTOVRq5UInQYelQO
         pMJCrFmdeCiibGW4M+8bRbQP6WcedIQ0hJkn9PO2jmFyBR7pMG7DjvpURzz/eylRf3vP
         3/uuzopnKdTbwZFp6ilVPsMTuanrE9+DPxthprU2dHgt9klsjXoFFxZTbTUu1RjmVgEW
         oxEo8QWaAqrC478K2cH7+iyWx+fgWQ9M3on3TSg5piPNSfLFMZxUdoNOIz44tpV8HQFc
         Jmm3K4QFjbPC8jT/jnpDGuCgaM6+6mch/Lpy0TepuBUJZVawG+BaiID1yAVN22Or//CA
         2FGA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779143799; x=1779748599; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vxjc9Rh85UVDLOa6UVs+hSnPillcyypzCV/sXZmXpZM=;
        b=k7q4nOB1an6n7Ev76exccvK76OaSUynCgabgMMv4vlf9zj0k7UrfIKlDoIvnDSU0sm
         aphpJtxtpFdDLIPbvewpGTApHYg6FKiJ1ms16WseL9k1wRIoEDaaDMAHv+ZCM1Lfqk4n
         H+bUiesnuAlkedxWDrESg/PciLV70j7ovxrB/QTJvPyRk4CJgzUQRFkGQ7IfkzrR2MDV
         9xp8ptSKHdpCWkPOiWWwdapeRZo1LMKyT/ry4gjSQKt7IvSKh/8sNi6ccFaQeDKnYs8+
         evvBH8DnhcGZsAVNpkuVz2DHPfNwFoWSi17FcTYc+Bna0ADMRbu4mMTjjjlNd+/lpYJB
         6pCw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779143799; x=1779748599;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=vxjc9Rh85UVDLOa6UVs+hSnPillcyypzCV/sXZmXpZM=;
        b=n/NTni7nTVAsoLyfpkYQ4uGqXxuVCXAJtOVa8biES5PWdll8Q7rKWaX5uiF11U0e8V
         kfecnLCFV0UWpv/bNvq5yEw80c7zudQWesi4si3f7HA+CJKlHXkz3W+CyrVIo2W7NW4v
         udJ3KC16fkIwXeMz61kIjNWeo98dJX6JYuKyf9ZOqAe3l5JCI6TDTxTU/9e1/C0cnd22
         zrR5RVUeLqEg0l68sI52ZopFvUwaFEq8HK3WoXB8AnU5KPdJamATH3Snpnka5dtoNuPz
         vjUALWbABAy/ibtgRGS3K2+bYeW2vCRYs68pU7uz1x69A7S9ahe5XYUCpBHCwYP8uV7h
         HTFg==
X-Gm-Message-State: AOJu0YzsCDBnu9XOJxq+dBoY7bhmswFfKYpPDmdMnpvUQySRAAU8iWiS
	g6rq22VbhOzco+2YH3MYu01BEzxvCz1yxoEfUGvMkoV0YY1Hz4dB3CJ646vF8Vw9qQEY6m1L9pH
	vBGCBvpbTeALtjI5W/afsH2wXmfWUPmQ=
X-Gm-Gg: Acq92OHYvybMqGnhritMEDwqEvtB8/D7I1owTPsAl2OZCCAN/Bi+bprvKwt4ErDdP2K
	1cLjrJYTYsx+U6Z160wtytlgBuBSxXc2PSedNJAhyrIhnNULJUyJgjGazMWLnG8njiVIghI0jCw
	hSnCwq+S9A8Gi3IcWYjUzRLCgbdkwqUMZJQUorQoszj43sG+BmlxSmRe07MQdQFL2uqQ0r+irsl
	wksc4RphuTk4azHKAIwlHgB6JG+cof+Ky+k0/yTyaEXB9j6yMtwFySgxfEspbUqTUz00d53kEq3
	KPa0
X-Received: by 2002:a05:651c:515:b0:393:975b:5634 with SMTP id
 38308e7fff4ca-39561c8b784mr49655891fa.11.1779143799011; Mon, 18 May 2026
 15:36:39 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1778605274.git.mykola_kvach@epam.com> <bd79226263c1dd9c915a7fffd4f92b194af864ee.1778605274.git.mykola_kvach@epam.com>
 <5323B63C-7F37-418C-97C6-0A94F9D03B4F@arm.com>
In-Reply-To: <5323B63C-7F37-418C-97C6-0A94F9D03B4F@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 19 May 2026 01:36:27 +0300
X-Gm-Features: AVHnY4Ku4LoE7n8DvxKqiqS6D51-CFgb9rxrL3rIPk1MoKeL7dmPSVikAsYebDE
Message-ID: <CAGeoDV-fkfUh_+tQ=kddHdPiaGJhgSdFsm79qCWhAyJ6sS0tdw@mail.gmail.com>
Subject: Re: [PATCH v9 05/13] xen/arm: gic-v3: add ITS suspend/resume support
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ebf023/1779143799-2B5683FF-DB206C5E/0/0
X-purgate-type: clean
X-purgate-size: 7917

Hi Luca,

Thank you for the detailed review.

On Thu, May 14, 2026 at 5:46=E2=80=AFPM Luca Fancellu <Luca.Fancellu@arm.co=
m> wrote:
>
> Hi Mykola,
>
> > On 12 May 2026, at 18:07, Mykola Kvach <xakep.amatop@gmail.com> wrote:
> >
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > Handle system suspend/resume for GICv3 with an ITS present so LPIs keep
> > working after firmware powers the GIC down. Save and restore the ITS
> > CTLR, CBASER and BASER registers, and re-establish the collection mappi=
ng
> > on resume.
> >
> > Add list_for_each_entry_continue_reverse() in list.h for the ITS suspen=
d
> > error path that needs to roll back partially saved state.
> >
> > Based on Linux commit dba0bc7b76dc:
> > "irqchip/gic-v3-its: Add ability to save/restore ITS state".
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Changes in V9:
> > - fix the ITS suspend/resume coding-style nits;
> > - preserve the saved GITS_CTLR state while masking the read-only
> >  QUIESCENT bit.
> >
> > Changes in V8:
> > - Reword the CBASER/CWRITER comment to match Xen and drop the stale Lin=
ux
> >  cmd_write reference.
> > - Clarify the list_for_each_entry_continue_reverse() comment.
> > - Factor out per-ITS helpers for collection setup and resume.
> > - Restore each ITS and re-establish its collection mapping in the same
> >  loop, so a failed ITS resume is not followed by MAPC/SYNC on that
> >  un-restored instance.
> > - panic in case when resume of an ITS failed
> > - cleanup baser cache during suspend
> > ---
> > xen/arch/arm/gic-v3-its.c             | 133 ++++++++++++++++++++++++--
> > xen/arch/arm/gic-v3.c                 |  11 ++-
> > xen/arch/arm/include/asm/gic_v3_its.h |  23 +++++
> > xen/include/xen/list.h                |  14 +++
> > 4 files changed, 171 insertions(+), 10 deletions(-)
> >
> > diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> > index 9005ce8ce5..582c26d964 100644
> > --- a/xen/arch/arm/gic-v3-its.c
> > +++ b/xen/arch/arm/gic-v3-its.c
> > @@ -335,6 +335,22 @@ static int its_send_cmd_inv(struct host_its *its,
> >     return its_send_command(its, cmd);
> > }
> >
> > +static int gicv3_its_setup_collection_single(struct host_its *its,
> > +                                             unsigned int cpu)
> > +{
> > +    int ret;
> > +
> > +    ret =3D its_send_cmd_mapc(its, cpu, cpu);
> > +    if ( ret )
> > +        return ret;
> > +
> > +    ret =3D its_send_cmd_sync(its, cpu);
> > +    if ( ret )
> > +        return ret;
> > +
> > +    return gicv3_its_wait_commands(its);
> > +}
> > +
> > /* Set up the (1:1) collection mapping for the given host CPU. */
> > int gicv3_its_setup_collection(unsigned int cpu)
> > {
> > @@ -343,15 +359,7 @@ int gicv3_its_setup_collection(unsigned int cpu)
> >
> >     list_for_each_entry(its, &host_its_list, entry)
> >     {
> > -        ret =3D its_send_cmd_mapc(its, cpu, cpu);
> > -        if ( ret )
> > -            return ret;
> > -
> > -        ret =3D its_send_cmd_sync(its, cpu);
> > -        if ( ret )
> > -            return ret;
> > -
> > -        ret =3D gicv3_its_wait_commands(its);
> > +        ret =3D gicv3_its_setup_collection_single(its, cpu);
> >         if ( ret )
> >             return ret;
> >     }
> > @@ -1210,6 +1218,113 @@ int gicv3_its_init(void)
> >     return 0;
> > }
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +int gicv3_its_suspend(void)
> > +{
> > +    struct host_its *its;
> > +    int ret;
> > +
> > +    list_for_each_entry( its, &host_its_list, entry )
> > +    {
> > +        unsigned int i;
> > +        void __iomem *base =3D its->its_base;
> > +
> > +        /*
> > +         * By the time Xen reaches gic_suspend(), every domain is alre=
ady in
> > +         * SHUTDOWN_suspend, so ITS-targeting interrupt sources are ex=
pected
> > +         * to have been quiesced by the owning OS before SYSTEM_SUSPEN=
D.
> > +         */
> > +        /* Preserve saved GITS_CTLR state, excluding read-only QUIESCE=
NT. */
> > +        its->suspend_ctx.ctlr =3D readl_relaxed(base + GITS_CTLR) &
> > +                                ~GITS_CTLR_QUIESCENT;
> > +        ret =3D gicv3_disable_its(its);
> > +        if ( ret )
> > +        {
> > +            writel_relaxed(its->suspend_ctx.ctlr, base + GITS_CTLR);
> > +            goto err;
> > +        }
> > +
> > +        its->suspend_ctx.cbaser =3D readq_relaxed(base + GITS_CBASER);
> > +
> > +        for ( i =3D 0; i < GITS_BASER_NR_REGS; i++ )
> > +        {
> > +            uint64_t baser =3D readq_relaxed(base + GITS_BASER0 + i * =
8);
> > +
> > +            its->suspend_ctx.baser[i] =3D 0;
> > +
> > +            if ( !(baser & GITS_VALID_BIT) )
> > +                continue;
> > +
> > +            its->suspend_ctx.baser[i] =3D baser;
> > +        }
> > +    }
> > +
> > +    return 0;
> > +
> > + err:
> > +    list_for_each_entry_continue_reverse( its, &host_its_list, entry )
> > +        writel_relaxed(its->suspend_ctx.ctlr, its->its_base + GITS_CTL=
R);
> > +
> > +    return ret;
> > +}
> > +
> > +static int gicv3_its_resume_single(struct host_its *its, unsigned int =
cpu)
> > +{
> > +    void __iomem *base =3D its->its_base;
> > +    unsigned int i;
> > +    int ret;
> > +
> > +    /*
> > +     * Make sure that the ITS is disabled. If it fails to quiesce,
> > +     * don't restore it since writing to CBASER or BASER<n>
> > +     * registers is undefined according to the GIC v3 ITS
>
> s/undefined/unpredictable/ ?

Ack.

>
> > +     * Specification.
> > +     */
> > +    WARN_ON(readl_relaxed(base + GITS_CTLR) & GITS_CTLR_ENABLE);
> > +    ret =3D gicv3_disable_its(its);
> > +    if ( ret )
> > +        return ret;
> > +
> > +    writeq_relaxed(its->suspend_ctx.cbaser, base + GITS_CBASER);
> > +
> > +    /*
> > +     * Writing CBASER resets CREADR to 0, so reset CWRITER to
> > +     * keep the command queue pointers aligned.
> > +     */
> > +    writeq_relaxed(0, base + GITS_CWRITER);
> > +
> > +    /* Restore GITS_BASER from the value cache. */
> > +    for ( i =3D 0; i < GITS_BASER_NR_REGS; i++ )
> > +    {
> > +        uint64_t baser =3D its->suspend_ctx.baser[i];
> > +
> > +        if ( !(baser & GITS_VALID_BIT) )
> > +            continue;
> > +
> > +        writeq_relaxed(baser, base + GITS_BASER0 + i * 8);
> > +    }
> > +
> > +    writel_relaxed(its->suspend_ctx.ctlr, base + GITS_CTLR);
> > +
> > +    return gicv3_its_setup_collection_single(its, cpu);
>
> This will always issue a MAPC V=3D1, in the section 5.3.9 it sais it=E2=
=80=99s "unpredictable
> if there are interrupts that are mapped to the specified collection and t=
he
> collection is currently mapped to a Redistributor, unless MAPC is followe=
d by MOVALL=E2=80=9D,
> in this case the redistributor is the same but the specs don=E2=80=99t sa=
y anything about this case,
> it=E2=80=99s generally unpredictable if we are remapping an already-live =
collection.
>
> I see Linux reply the MAPC V=3D1 only if the collection is stored in the =
ITS (not memory backed),
> our col_id is `cpu`, which I believe that for the suspend path is always =
zero (?), so by looking into
> HCC we could check if we need to issue the MAPC or not.
>
> if ( cpu < GITS_TYPER_HCC(readq_relaxed(base + GITS_TYPER)) )
>     return gicv3_its_setup_collection_single(its, cpu);
>
> return 0;
>

Good point, I agree.

Replaying MAPC unconditionally is not needed here and may be unsafe for
memory-backed collections. Since Xen currently uses col_id =3D=3D cpu, I wi=
ll
add the HCC check before calling gicv3_its_setup_collection_single(), as
you suggested.

I will also add a short comment to make clear that the check is about the
CollectionID being ITS-held.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 18 22:47:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 22:47:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312280.1582418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP6jq-0004u0-8e; Mon, 18 May 2026 22:47:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312280.1582418; Mon, 18 May 2026 22:47:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP6jq-0004tt-4q; Mon, 18 May 2026 22:47:06 +0000
Received: by outflank-mailman (input) for mailman id 1312280;
 Mon, 18 May 2026 22:47:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <edgar.iglesias@gmail.com>) id 1wP6jo-0004tm-RT
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 22:47:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP6jn-00FpFG-Pc
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 00:47:03 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <edgar.iglesias@gmail.com>)
 id 6a0b969d-5cb7-0a2a0a5109dd-0a2a450aecd4-16
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 00:47:03 +0200
Received: from [209.85.167.43] (helo=mail-lf1-f43.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <edgar.iglesias@gmail.com>)
 id 6a0b96e7-56b3-0a2a450a0019-d155a72be199-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 00:47:03 +0200
Received: by mail-lf1-f43.google.com with SMTP id
 2adb3069b0e04-5a8d1f43432so5188872e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:47:03 -0700 (PDT)
Received: from gmail.com (213-67-3-247-no600.tbcn.telia.com. [213.67.3.247])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a9164c5712sm3557137e87.59.2026.05.18.15.46.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 May 2026 15:47:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779144423; x=1779749223; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=U1w+VKmunW76L59Lsi4VNBjY+pQBi8an71eLD+gWmuU=;
        b=P0EZcu4fc8ZzyLQ/9XNMgE3YZU1td0+7hIk4tO1vvJkgLn1ZgUHulHcuwxlI9WMv/H
         POvGYgeyPS/Jbev80uJbcj6ogVeg+8hQDfNyRiLqNnEG27qThm0RBV/azUwV8Y2MguV0
         /cTqTXVPJDUwFYlL/jcvhg2g+TFV10dVrWZAT+T+KXvLL5abZ7InSngOzh1KbTBucNe2
         +1WyXQRR6KDS1p7ejR9pTV3kSRZnVoUD26Zocku9O3IQXNMHCZXHN5kZiqIVT+BNb9Yi
         MTJFC7OYYYkm08AXjh0KedbtMFs92ties4VQ+WKtpLDdsiiB2B2uqi7FD5HU72wZBBsx
         r0dw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779144423; x=1779749223;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U1w+VKmunW76L59Lsi4VNBjY+pQBi8an71eLD+gWmuU=;
        b=C0c7ORbLmRBAotFz7II70d3rHuOyqQfrJG73KuLmcmnpZFpwCBBNloAQBEj6ugCknR
         alXJu/XKlW+ZoMlYu2ug9s4fUPKz+N4c0/7MPix+K710ZpaTUIotQh/R78zRqWT6fN8k
         ffbCNSRGjUubhv4LaqjgtSrTb3+j0PaOx+e98uujSbCsvP1r0nQMD+OesfoyYythAk7L
         693BB5XHHgGRCDol76mdrQO3LqZjFkU+3jn0z9Akh5x3tLUSdTpjckphnJTo2UtxCHxH
         7H2MhdoI/ORABhxTnUU9dNKVkIA+3qMBgqCkaLCl8X2u3mtXeXrzLw3Km4tcjKUm1R8w
         zasg==
X-Gm-Message-State: AOJu0YxN5P7vG5K40B8b1pE7VzwaBpmtYA5ExQYV7mtsjyMQRQe0qeTs
	F3uKU//Zy73AmtvxHY+HpDfAVJFRMgUgLArDBpCkAhsv1192jyhqHVNKiyZVmw==
X-Gm-Gg: Acq92OEM1PUwqtpvpAxMHB3ldpFAdGxqHQNSd2ySmX6yQn1xSSVUpRkH2A7UUqoKN7/
	wCiInyF275DZQYXXQqkHMnOBdBwJ0p03+mdM6RVahWk3lPKBiTwam+jiCOSiI7GnWZwXW5S9MqU
	TpbpbAhRiG7kVtXHnDMS4IB6FOozZpuvNqFpC8350ghukKCUPVFvfooJmN11OVRKlVs+h1CkqcI
	MsUbrRbZQVTyHW2CDMaWpE7UqhTBX+R0FPX25SvEwUE+2HZRY2m2mxB27KSuntfS8ZFAdVvlCf+
	Qc5nOQuME3/abTt5Vf9cNnQaPyLp6n8FKUjPABgT27Sstsuz1HcMji08098kFqFGHAvbDDowEcE
	wteUpBjniTQ/W6dXfbJPaKKJXQWTgIeVQQK3L+K8lDpuY38FckmaHBqCkJzxf2/LPJv0HfZvbvE
	McHoRGZnQodabtvzRbn6KIxqCheQ64RM87Z7dmS9cS1ruPUxkjRzKoQ+vX9EI=
X-Received: by 2002:a05:6512:1317:b0:5a8:f6fd:eb15 with SMTP id 2adb3069b0e04-5aa0e73c73emr5059619e87.24.1779144422770;
        Mon, 18 May 2026 15:47:02 -0700 (PDT)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	julien@xen.org,
	bertrand.marquis@arm.com,
	michal.orzel@amd.com,
	Volodymyr_Babchuk@epam.com,
	edgar.iglesias@amd.com
Subject: [PATCH v1 0/1] xen/arm: gic-v3: Fix wake-up loop in gicv3_enable_redist
Date: Tue, 19 May 2026 00:46:51 +0200
Message-ID: <20260518224652.422864-1-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1779144423-733738B7-9887B7AE/0/0
X-purgate-type: clean
X-purgate-size: 417

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

Hi, 

I ran into this issue with a poll loop in gicv3_enable_redist
while exploring QEMU fault-injection techniques in the context
of safety certification.

Cheers,
Edgar

Edgar E. Iglesias (1):
  xen/arm: gic-v3: Fix wake-up loop in gicv3_enable_redist

 xen/arch/arm/gic-v3.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon May 18 22:47:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 22:47:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312281.1582426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP6jt-000576-FK; Mon, 18 May 2026 22:47:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312281.1582426; Mon, 18 May 2026 22:47:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP6jt-00056z-Br; Mon, 18 May 2026 22:47:09 +0000
Received: by outflank-mailman (input) for mailman id 1312281;
 Mon, 18 May 2026 22:47:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <edgar.iglesias@gmail.com>) id 1wP6js-00056m-H4
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 22:47:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP6jr-004ZjV-TO
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 00:47:07 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <edgar.iglesias@gmail.com>)
 id 6a0b969b-e002-0a2a0a5209dd-0a2a4503a918-40
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 00:47:07 +0200
Received: from [209.85.167.45] (helo=mail-lf1-f45.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <edgar.iglesias@gmail.com>)
 id 6a0b96eb-672d-0a2a45030019-d155a72dd8e4-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 00:47:07 +0200
Received: by mail-lf1-f45.google.com with SMTP id
 2adb3069b0e04-5a8fbe18b1dso4771316e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 15:47:07 -0700 (PDT)
Received: from gmail.com (213-67-3-247-no600.tbcn.telia.com. [213.67.3.247])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-395882c41c1sm14934341fa.12.2026.05.18.15.47.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 May 2026 15:47:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779144427; x=1779749227; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gj9Q26Xnp9vgzseXLrlgwBsXJj51q6a2TH2ZhhhDnDU=;
        b=MYk0ymf8NLJITWwGuDHhYlIvtikKwbOhBTDvTHyLfR1P0H1un/bxgTOY5yhGixhdBd
         RWC+Na9BNPUjA1ATrTyzwqWq3GzeRho/rYPSIcDwupJ6ttnn52/fOcbhSENa/lr6LIyR
         nUMqLHOdULNZCjLziUkKw2zlrdKwvaIftkL6bliaNoHZCmtPW6gwVAwbVhpdluCE84+T
         hhpe7/oDOdHrOvn4rGM7Y9jdGZ94HEx1OEEEJW7zbnfSU4YkxHNnCvitLicUWEw8F/ud
         Z0LsiEKbTbKSYW6J63E3M02OUhN9Zbu79reMmrrPQZaLiaLw7KcsFG7Z5Wp9nPwDTlKo
         oUrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779144427; x=1779749227;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=gj9Q26Xnp9vgzseXLrlgwBsXJj51q6a2TH2ZhhhDnDU=;
        b=iC8l+KbxuFcMqD5Cji3xYdYM0yk2oUNojimRIlovdJYrVKzOiQ9IQ5IAWiitAIl7bq
         1lR3irqJNxD7Bv8g9uM1A4JdcJYP5YU6WIoTRjvECVTd4ERCkFB4KZqWcY4nFCedqKL8
         Lh5EFLKFd3AtbDsrqIL3Twbj2BZJNvtVTUcIJJ+FXOZezwUFrJXR5ilGcVtAsGWmHq03
         PdspdyNA+vQK7azJN3+e5+mHr0DrzI8ps61xvilGAq1QLbDXUYD6aRU5joBY/RAMV6b9
         qGw9dzxwvUnzulVIP6kU8AvCJ0taoWbxeVktgRVYcLR/jgkDqEoNgzuMgM+r3f49iRlo
         EFYQ==
X-Gm-Message-State: AOJu0YzeYnXV0a5aEqndnDgzRV/HIt4jGc8RBeCLiNLuOQnRmvhcebg+
	z5BKiHeZxafYQJ02a4emP8WfiiMwAHKHxXB2O8ZVMXzj+7ho+vnsA/wDwhZIHQ==
X-Gm-Gg: Acq92OEh/AYPlq0zjaQs5yOi8IA2VILh5ooDsF7bB+Vi5LHYssFsE1rF+moMnq8C8Xy
	i1D9rW/5FXMBe7LGel3neuq7qstxzB4Ly5JfFxLIXqTOmBQKXdSYLthipL2ui06vWGaXJ2oS0o1
	235xEXrtnJyLfEpHn/4FemuY7cdGdPuYgN/7+F0hNHE2JOKwJL/zvyvFeVM8AEXyfsJYUbIMxEs
	EVuFgyq3Q5KN8bblBPInYpLu20FJe9XR+p+Jq8gEDc7kDggPXDKV9/UjDmuDBx3ipSaTBeMHqk/
	U7lUl8mfir6K5LpLol6+EHQ2uC4xbzcLwHaPKJaSx+anIK7b4v/+JtshdY885iPzalWU9qW6Y/x
	Fr8ZJkZ0Jz60k/NgdkF3LT50yoI9+pP8Zo5LI+wYU47IZ3LSt+fXTyu4hsGbMLhxarPKthgHHs4
	Iug9/xML6LYBIgyZ3sn1o2CscCLGhc/eHwrkrXIq94xnv6ITZ4Du9Gb4VILIA=
X-Received: by 2002:a05:6512:3a85:b0:5a8:f984:142c with SMTP id 2adb3069b0e04-5aa0e742944mr4597322e87.12.1779144426918;
        Mon, 18 May 2026 15:47:06 -0700 (PDT)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	julien@xen.org,
	bertrand.marquis@arm.com,
	michal.orzel@amd.com,
	Volodymyr_Babchuk@epam.com,
	edgar.iglesias@amd.com
Subject: [PATCH v1 1/1] xen/arm: gic-v3: Fix wake-up loop in gicv3_enable_redist
Date: Tue, 19 May 2026 00:46:52 +0200
Message-ID: <20260518224652.422864-2-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260518224652.422864-1-edgar.iglesias@gmail.com>
References: <20260518224652.422864-1-edgar.iglesias@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779144427-3B56F938-E1191340/0/0
X-purgate-type: clean
X-purgate-size: 849

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

timeout starts as false and is only set on the timeout break, so the
loop always exits after one iteration and a stuck redistributor is
silently treated as woken. Use while ( 1 ) to match the sibling
gicv3_do_wait_for_rwp().

Fixes: bc183a0235 ("xen/arm: Add support for GIC v3")
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
---
 xen/arch/arm/gic-v3.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 7f365cdbe9..f03217282e 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -828,7 +828,7 @@ static int gicv3_enable_redist(void)
         }
         cpu_relax();
         udelay(1);
-    } while ( timeout );
+    } while ( 1 );
 
     if ( timeout )
     {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon May 18 23:38:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 23:38:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312304.1582434 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP7Xf-00047s-5d; Mon, 18 May 2026 23:38:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312304.1582434; Mon, 18 May 2026 23:38:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP7Xf-00047l-2N; Mon, 18 May 2026 23:38:35 +0000
Received: by outflank-mailman (input) for mailman id 1312304;
 Mon, 18 May 2026 23:38:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+b63a902a6511c8cff3bf+8303+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wP7Xa-00047e-9L
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 23:38:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP7XZ-00A6xQ-LF
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 01:38:29 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+b63a902a6511c8cff3bf+8303+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0ba2ec-bab6-0a2a0a5309dd-0a2a4509affa-6
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 01:38:28 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+b63a902a6511c8cff3bf+8303+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0ba2f3-2497-0a2a45090019-5a9b3222c666-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 01:38:27 +0200
Received: from 54-240-197-225.amazon.com ([54.240.197.225]
 helo=u09cd745991455d.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wP7XL-00000005GUS-2sDo; Mon, 18 May 2026 23:38:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=ybRa/FKcrPbhXiFoMzbhw3eRNrNHkp49lvJnD4jyFgA=; b=dtdG+4Gdeg84QaH+8VNriJYoBT
	WyboTRG7NvCI0iX/6Bh8KJOFRRhm3RzTgBjF+Md6KFnV5ODJhXyUBICKCBGFZZbW+f5VOiOihaK4p
	Dx48fZ9qPlQhHdU4VhwMXWSngojfty/OM4XQ31H/+/VLzJp4RPfaQB5G9e9xzqnJj8txjasWjfdBu
	vqtGwP+FW1dxS+GwNI76wn9utdQyT8VMRMsIkA5+LOKG5EYz0lTId0nHb9QuQigjq1WzcPHfGLWg/
	7iT5QG4j5VP7zfEZprEQRdrxpJd2Y4/MKHfxTYHCUbiPvEozcoXvsnsTgh9gDubohNxpI3LjyPeju
	IroO6uTQ==;
Message-ID: <7260682b21c28d1299e58400b9a2f4b8d23bd434.camel@infradead.org>
Subject: Re: [PATCH v3 00/41] x86: Try to wrangle PV clocks vs. TSC
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 19 May 2026 00:38:13 +0100
In-Reply-To: <20260515191942.1892718-1-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-sVYMF3zPsR6TVbl8qGQi"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-bad1c0/1779147508-3777AA53-0135CA1A/0/0
X-purgate-type: clean
X-purgate-size: 11024


--=-sVYMF3zPsR6TVbl8qGQi
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Dave/Thomas/Peter/Boris, what's the going rate for bribes to take somethi=
ng
> like this through the tip tree?
>=20
> The bulk of the changes are in kvmclock and TSC, but pretty much every
> hypervisor's guest-side code gets touched at some point.=C2=A0 I am reaon=
sably
> confident in the correctness of the KVM changes.=C2=A0 Michael tested Hyp=
er-V in
> v2, and while there were conflicts when rebasing, they were largely
> superficial (and I've just jinxed myself).=C2=A0 For all other hypervisor=
s, assume
> the code is compile-tested only, but those changes are all quite small an=
d
> straightforward.
>=20
> The only changes that are questionable/contentious are the last two patch=
es,
> which have KVM-as-a-guest use CPUID 0x16 to get the CPU frequency, even o=
n
> AMD (that's the dubious part).=C2=A0 I very deliberately put them last, s=
o that
> they can be dropped at will (I don't care terribly if those patches land)=
.
> To merge them, I would want explicit Acks from Paolo and David W.
>=20
> So, except for the last two patches, to get the stuff I really care about
> landed, I think/hope it's just the TSC and guest-side CoCo changes that n=
eed
> reviews/acks?
>=20
> The primary goal of this series is (or at least was, when I started) to
> fix flaws with SNP and TDX guests where a PV clock provided by the untrus=
ted
> hypervisor is used instead of the secure/trusted TSC that is controlled b=
y
> trusted firmware.
>=20
> The secondary goal is to draft off of the SNP and TDX changes to slightly
> modernize running under KVM.=C2=A0 Currently, KVM guests will use TSC for
> clocksource, but not sched_clock.=C2=A0 And they ignore Intel's CPUID-bas=
ed TSC
> and CPU frequency enumeration, even when using the TSC instead of kvmcloc=
k.
> And if the host provides the core crystal frequency in CPUID.0x15, then K=
VM
> guests can use that for the APIC timer period instead of manually calibra=
ting
> the frequency.
>=20
> The tertiary goal is to clean up all of the PV clock code to deduplicate =
logic
> across hypervisors, and to hopefully make it all easier to maintain going
> forward.

I booted this in qemu with -cpu host,+invtsc,+vmware-cpuid-freq

I was expecting to see it eschew the kvmclock and use *only* the TSC.
Is there even any need for 'tsc-early' given that it's *told* the TSC
frequency in CPUID? Shouldn't it have detected that the TSC is known
before init_tsc_clocksource() runs?

And then it even spent some time at boot actually using the kvmclock as
clocksource... when ideally I don't think it would even have *enabled*
it at all?

[    0.000000] clocksource: kvm-clock: mask: 0xffffffffffffffff max_cycles:=
 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
[    0.000000] tsc: Detected 2400.000 MHz processor
[    0.008205] TSC deadline timer available
[    0.008270] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0=
xffffffff, max_idle_ns: 1910969940391419 ns
[    0.159085] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, =
max_idle_ns: 19112604467 ns
[    0.164074] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles:=
 0x22983777dd9, max_idle_ns: 440795300422 ns
[    0.229087] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xfffffff=
f, max_idle_ns: 1911260446275000 ns
[    0.337095] clocksource: Switched to clocksource kvm-clock
[    0.345246] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, m=
ax_idle_ns: 2085701024 ns
[    0.356201] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x229=
83777dd9, max_idle_ns: 440795300422 ns
[    0.360560] clocksource: Switched to clocksource tsc


--=-sVYMF3zPsR6TVbl8qGQi
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUxODIzMzgx
M1owLwYJKoZIhvcNAQkEMSIEICdpbo3FRjD2AASiln/oatPqw6OBqIGwJ89vQ7u8KoDcMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAX3Y4/TDg29Zl
OlYDg5rl4FNcTkhdLPPU4NOnexpsV0ImspXiP9DmV6XCtGHlUzwU2QVmWEAKJ5gcWJDG109BJ4iD
MxCvKPxWGIQv6XhRTnNHXdRVR47Cmi0iBkwH1qYGkPLDbevrZBye+PMkGo0xfTStett2FKx3J5kZ
XveIeeAsSHlgf9mzo04N/SXhFZ1diqosTRs0bKrQTR8Yq4+23+HQgdCWfqie4gzeHaS8ncTOSQD3
f9Gg2ntNVonQT8aaPU/oRVMRFX5vwmVT5dq6V2lTibWpW8DEHsfm3CKkQLMqbUJaKXzNuzMbPjDA
py895Q8WQZJt7hDj5JpDRW2Wt0RaZP1MoaLDgWPs7DfY8WczAExYq9ChG2KtIVCJB5Ulvv+NMkpL
rGHKe6CciVeN4AIXq2O81rpIo/u2X25skg7WLWMgWg/w/0lfODLGUMPUca0JN5eT2Rhr7gUFR/J8
JUCGPPKTRJ8bQTPUXuck3zhspeWr65nn2W5NkR97txju6m8/UDGCwGwAKt/IogxYX9q2msD8/XJ7
lXJ3YVePKePxCJuryW7H6tm70i/Xz2vpt37ctLT0gWm8Hk2gC54DxPqWicyaoLKityRxYrxL4God
6oWdil4yhCPpUix045UYkrFJwSxgRwc3b4bDLKPNjAY+tmYkzEJiyID4znkkJsYAAAAAAAA=


--=-sVYMF3zPsR6TVbl8qGQi--


From xen-devel-bounces@lists.xenproject.org Mon May 18 23:44:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 23:44:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312312.1582447 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP7d2-0005gf-UJ; Mon, 18 May 2026 23:44:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312312.1582447; Mon, 18 May 2026 23:44:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP7d2-0005fv-Qd; Mon, 18 May 2026 23:44:08 +0000
Received: by outflank-mailman (input) for mailman id 1312312;
 Mon, 18 May 2026 23:44:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Edgar.Iglesias@amd.com>) id 1wP7d1-0005dV-AR
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 23:44:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP7d0-009rrh-N8
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 01:44:06 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Edgar.Iglesias@amd.com>)
 id 6a0ba42c-5cb7-0a2a0a5109dd-0a2a4501dea6-20
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 01:44:06 +0200
Received: from [40.107.208.71]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Edgar.Iglesias@amd.com>)
 id 6a0ba443-c1f2-0a2a45010019-286bd0477965-4
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 01:44:06 +0200
Received: from SN7PR12MB6839.namprd12.prod.outlook.com (2603:10b6:806:265::21)
 by SJ5PPFCB5E1B8F5.namprd12.prod.outlook.com
 (2603:10b6:a0f:fc02::9a1) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.21; Mon, 18 May
 2026 23:44:00 +0000
Received: from SN7PR12MB6839.namprd12.prod.outlook.com
 ([fe80::ae79:f50b:b7a6:4cd8]) by SN7PR12MB6839.namprd12.prod.outlook.com
 ([fe80::ae79:f50b:b7a6:4cd8%5]) with mapi id 15.21.0025.016; Mon, 18 May 2026
 23:44:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pfxRAHLVZpqjun1aOR/Ym5QxUDSLE/1GQFy4g7LrwIYlMsFyU+ZEbA/v1apNzXEJcuUbVXIxzcQmeku/lvyeAChCFGDL6GGbMW+j6i9ICa8ClCpr4p8+35maphTIQrLIDSVT1uEeIZ7CMWko1jsHPyYU1pRERhO3VrQOU15p99LSLFjZhT1v1XocScILuwRNq+ypNZcD/PRA2dirJkW+tyFoVl+kEUglf648lLqXtLgynH6a5M3cqPceTBTZd/bLCtBOo0zqOvVJ4DCkuq1+y4PgN3Jlj/985xFXI4jn2/TzSgn5w0LRAT0OpJhgodZE5M2GAcmDTnxZJ0m3QvwrlA==
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=t4S/4MTwq6hxCSZMJo8SlPlaAXuhjtvdL1rd4CEbqZM=;
 b=GuOso1Xw3Y11m5OVgfV8anJPMeNKcHlzupE20XVOmJBK8fDN288Fcmhw7ZP5ymnvHlMGhJ6UY2JhBPISrMjnnXxq4gxcxIZJJi7ctB0pwj1G+uDXX3sCUjWuDLU4mLA5K/7ADxthBPCYwpb5L0RP0u3wMXHdcdd7lrK+taaHWEuYmFc1kertDUN2/Yw2iFylku0i0GZLql+tWpw4nkbkJ097T0Su/Y5WzPqShiT59bsFx+SQoeG/zkS+KZIKx8HWxDmRnRTpkT01PzlU57OJ0N16rMXFoGX1XRh0JyULHmePnc8ppU19FCIc/QTMTGtTKz87tLNjDEX+CZLE5orSWA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=t4S/4MTwq6hxCSZMJo8SlPlaAXuhjtvdL1rd4CEbqZM=;
 b=m8o9U5DGJs2DP5N5NjH3/NdMQjj6hDpmSJWirWC7p7KB62P9LkSAqSTzq6NU+HbQvI6fOan+p24CSAp3oroU5zAuDiac4X5MtIGiuuZxwGGGJVir4HTCHGyPZtwrlrWa5boy0XeUfg6rR6oA2WoPcyb1mVpQW2fp/R+tyhH3rm8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	julien@xen.org,
	bertrand.marquis@arm.com,
	michal.orzel@amd.com,
	Volodymyr_Babchuk@epam.com,
	edgar.iglesias@amd.com
Subject: [PATCH v1 1/1] arm64: Fix strrchr() matching of null terminator
Date: Tue, 19 May 2026 01:43:53 +0200
Message-ID: <20260518234353.453193-2-edgar.iglesias@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260518234353.453193-1-edgar.iglesias@amd.com>
References: <20260518234353.453193-1-edgar.iglesias@amd.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: CPAP307CA0001.DNKP307.PROD.OUTLOOK.COM
 (2603:10a6:380:3::10) To SN7PR12MB6839.namprd12.prod.outlook.com
 (2603:10b6:806:265::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN7PR12MB6839:EE_|SJ5PPFCB5E1B8F5:EE_
X-MS-Office365-Filtering-Correlation-Id: 85b7c497-cb8b-4c24-1e07-08deb537558d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|22082099003|18002099003|56012099003|3023799003|11063799003;
X-Microsoft-Antispam-Message-Info:
	+ebV+xXB68rlaQ8lTEH80loxF2gsh09OyqSrp/0UaIjjnIkyIVIUDtBQLk0l86v2XWzscjjlmbCnEcM6Ij8BjwVnCR5FxDrhBoFnEG5vMRUGx10TAxAfj7vzurdYevOwT4NBPzq+N88YrCo44zX714mZ4+5X01cMZgXss48CxO/fTgZymkkylL3N8pb6sCkhHL/knkI21zIhqHOkKq7zekAQLaBdIc3FfpCSVrClKFCqg8cdUKhi47HHFs/7zivEnM0+TA+NaUSZ8KGbkI0/MPAOkCF38sU+9BWPqYZ9C1OC7wpmNpw38EQh9TpkLvyggJh/H/0CFnnBK1zN3/v4OGWuXxVq2j+k4i98SBpo6W9ojByFGXIvMlo0tsfn4Eg2S44HjuZlTp2/Zu/QWl37a9iAXnLuR3Wo6f8PeGR7GZThf3N/os2jWkG9UiLzoK8VIYHWvLQMjYpET9wbf+nfqI5h7wpQRVD18X1iyZBvdb1tIWZcN/QH18o9RsY7UWkRw8UQOseTtQBERjtDVBGVn9RxN7/5pWwF0SiNc30rqnRVvoaydCs1SdD4nJIwW+xRjq01CQiaFSk4x3jKNZLpkIKPxNwFJrxohmDyFvyxVUTFDLHCrcAqvS6OSIgB914w0bx0LgPWSE6gz/HNJM3Cuwh1QlPGqg+mb4qhmwairoKBPSf9Eb+qrs/xIR6wFI3V
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB6839.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(22082099003)(18002099003)(56012099003)(3023799003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?sl6faaC22LTiQTpXYfJIVQeAl/QGu8nGbCQiP4dWVB5HQU2tFYFatfaBaNgG?=
 =?us-ascii?Q?1jXoft3+AtZOyQ3qdYDY/1HKvETHqeOJCfiTJ32TkHDIW4I2zsF40mbWnpWJ?=
 =?us-ascii?Q?iVUYGCQs0rW8M3Ap6VwqgSXHYkESt5dVJQfneD7ZnVcFiYSm9e+QNJPARkys?=
 =?us-ascii?Q?lJ4yJj9cspWzHsPZXfW2JCSCjybxzFlXH9RdZ+lenTJFthWKJ5sKOkOIL3Pv?=
 =?us-ascii?Q?jSffyP7InN/3hk6GTBcwLTVs0wnQqpcf1oLQ/QV+3feKot9BhS8wKI08h+Iv?=
 =?us-ascii?Q?cXip1kKrO/GKt18EtIFqukF27f13HjUXv7g5ErxOXNyJ2PA1Ou+9TmqrfRwv?=
 =?us-ascii?Q?MRrjIrVj7yHKoufpcQFtMy0SRGoNCusYPBOJ5e+frSiu16IpER9MZSoleoTL?=
 =?us-ascii?Q?0MUJDm4hyvDYmgGtbkdnVYBHPwO6PLf8fAsVcE9QrOATnrCLIS+LdKNIs8Ek?=
 =?us-ascii?Q?SLxF279NO8sOyZPXqrfMS8B9Zp1UuI7ov3WYmt0nkjea1babZvCmderlAt21?=
 =?us-ascii?Q?qlrLjUfNec+EH+PVh7kwRvIR8ULaIVCPaOyBnwQceavSQWHzUvNgoGbMydGA?=
 =?us-ascii?Q?/rkNmLoHxZDTTlYptzLH8Jb8VenynpmEP8YUe+GhThQuJ05M1vv+yIB8bCO6?=
 =?us-ascii?Q?ile3Ma5549k2sdHk2QjlPGgQ2FdUj3RzjO9XhY5qp8fzPmAjCS4GnUtM9kVI?=
 =?us-ascii?Q?Hehf4NlAVSC9OW/PVp1B/BM+3QdrzT4Z2goadWEhey4O67ALUrZlrAPUHaD6?=
 =?us-ascii?Q?AjUrln+4PvH0sUXx88pXqIwQbY7bhXeSLW4TXTtE322qjhq1z9Ry0QcKzR3L?=
 =?us-ascii?Q?IM675rQj9AF5HHMsfWXqPn5/i5jncpf2hs17OS8Rd/mYiu8eYFwiR/fuxyE1?=
 =?us-ascii?Q?qmMXXVvpEnnJXKV6cJyVuuVpK1um0fQjfSVnMpltSBWpWwJBnYBRLXjv/fHW?=
 =?us-ascii?Q?BusHbK17rhqOmecQZJkPCw3dVnUJ+HpLhFskVEKQ+tJZrxRCyNL7BLdx7kWb?=
 =?us-ascii?Q?fQ2VgyJyAnXWJDKCtHtybc2A8KoSilA/EYUnP9WwbEYJUM19+ystCVjrpzSl?=
 =?us-ascii?Q?G23WEk3ShfRGfKPoOoF8bSinXzBjQwXmrvIDadT6/6vDFwxRdluiNJHhfhAz?=
 =?us-ascii?Q?ETPRTy++dHnHogl2ZtXlqCauiDg5JaKxHzGEX7w7mo9G6tPCJCNLm46eOyT4?=
 =?us-ascii?Q?J3oIzLkK/se0T2sgrO8afNJ/CTldYJTyRQDMiTCiGG20zPmES1t9ubf8s4bI?=
 =?us-ascii?Q?Qh7kcoE8uxiPyk6uFvEnaLM4lufRm+hhb7JuO+MupFltzEW1MSb4SY53tXVJ?=
 =?us-ascii?Q?rrqjP/lQ+BuQ9/AybytEffc63jGDsuOCStGBTFjF79AiP2DXoKledro2DhDH?=
 =?us-ascii?Q?04MCjq4wH0qyoLMj2OFlGKjmavzimK8TpRHaRKnMP7KOcqEi+tL8k2PzRSPD?=
 =?us-ascii?Q?Eagw5AjO97rakcRrDecXyD6m4VlattWFlfzWAMSO/FWk53Z6taDlv9SbD01g?=
 =?us-ascii?Q?poRyO+ky3/w+clo2AW1bL1CAZqPH8/y2J7kd5vbTvj7sbRo74wDCrZGh3LB+?=
 =?us-ascii?Q?WxLyCUiDlCk6EoJ35R/SmvD+f4F6YsfiIKp6AYN+7kli0n8oqpqJtFFLboXw?=
 =?us-ascii?Q?MSappbzvhJcKitJKBa5VGpX4LgQ7hoA2TJy+xoYk9864yQPwZ1asCljrsNJD?=
 =?us-ascii?Q?IUlqiIHV8dHeH+NI9s3WDviQ6qvV06RjeNheLiHn9hmtEQBw?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 85b7c497-cb8b-4c24-1e07-08deb537558d
X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB6839.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 23:43:59.7508
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: NZz5uhwQOVsMX6YNoqhbS3WNkl3uGAmzBbsrf1ozXDBeoSvER8NcCxTJbtoq77RY
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFCB5E1B8F5
X-purgate-ID: tlsNG-d62444/1779147846-AC457FF4-796B972A/0/0
X-purgate-type: clean
X-purgate-size: 1187

The generic Xen strrchr() implementation returns a pointer to the string
terminator when searching for '\0', matching the standard C semantics.

The ARM64 assembly version stopped as soon as it loaded the terminator and
returned the previous match pointer instead.  This made strrchr("", '\0')
return NULL.

Compare the loaded byte against the requested character before deciding
whether to stop at the terminator, so the terminator itself can be returned
when it is the requested character.

Fixes: 42c4eb6a83 ("xen: arm64: assembly optimised mem* and str*")
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
---
 xen/arch/arm/arm64/lib/strrchr.S | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/arm64/lib/strrchr.S b/xen/arch/arm/arm64/lib/strrchr.S
index 81033c0822..31f304b183 100644
--- a/xen/arch/arm/arm64/lib/strrchr.S
+++ b/xen/arch/arm/arm64/lib/strrchr.S
@@ -30,11 +30,10 @@ FUNC(strrchr)
 	mov	x3, #0
 	and	w1, w1, #0xff
 1:	ldrb	w2, [x0], #1
-	cbz	w2, 2f
 	cmp	w2, w1
-	b.ne	1b
+	b.ne	2f
 	sub	x3, x0, #1
-	b	1b
-2:	mov	x0, x3
+2:	cbnz	w2, 1b
+	mov	x0, x3
 	ret
 END(strrchr)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon May 18 23:44:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 May 2026 23:44:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312311.1582444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP7d2-0005di-NV; Mon, 18 May 2026 23:44:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312311.1582444; Mon, 18 May 2026 23:44:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP7d2-0005db-KR; Mon, 18 May 2026 23:44:08 +0000
Received: by outflank-mailman (input) for mailman id 1312311;
 Mon, 18 May 2026 23:44:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Edgar.Iglesias@amd.com>) id 1wP7d0-0005dP-AX
 for xen-devel@lists.xenproject.org; Mon, 18 May 2026 23:44:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP7cz-009rrh-J8
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 01:44:05 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Edgar.Iglesias@amd.com>)
 id 6a0ba42c-5cb7-0a2a0a5109dd-0a2a4501dea6-18
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 01:44:05 +0200
Received: from [40.107.208.71]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Edgar.Iglesias@amd.com>)
 id 6a0ba443-c1f2-0a2a45010019-286bd0477965-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 01:44:04 +0200
Received: from SN7PR12MB6839.namprd12.prod.outlook.com (2603:10b6:806:265::21)
 by SJ5PPFCB5E1B8F5.namprd12.prod.outlook.com
 (2603:10b6:a0f:fc02::9a1) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.21; Mon, 18 May
 2026 23:43:59 +0000
Received: from SN7PR12MB6839.namprd12.prod.outlook.com
 ([fe80::ae79:f50b:b7a6:4cd8]) by SN7PR12MB6839.namprd12.prod.outlook.com
 ([fe80::ae79:f50b:b7a6:4cd8%5]) with mapi id 15.21.0025.016; Mon, 18 May 2026
 23:43:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=U+RUe5ElVWAARF0FaoJ1Ao/GhrwMQo4TJN5SYIHl5qD+tb9tedt8Y86nuoGTO+iVWrA1NghdV2qnIZNl0OhF7r30e8VuR+kqBlAWafwCYGuvHqDJunpsYHaYe0WMKX49nErwwPYGzVlgdlh2ovasyMICD0FzHVThx7wGt0qtGcsJqanTzEIK1ybG2vN9lduQggIZZ7JpxA8hhDx8GdlV506UCaZsNGC+b2lMb67Vxsuhr5OwYNlFYYS3YYVgRiTIysROQJ/L8LxSLlNlrc8YE8u+GQdMVpcyyQ3PlsYJiiXF7XdHAcRHwS0Ksp4HrJ1+CnJBR+FAd545t983I8NUIA==
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=e6B15qfuEE6W4dJidFJsAPg+nOkXdcykrC9g9nGa02g=;
 b=EZUfZBocrPpaErQ8Ko2dxW8rwiTllLPHgV9Ap4E6ZIYPVmpXy40ukV+N5vp8j1yXliG+Sn0BGTVh3z0YI6/yfCk39ATzfk5AjfEBD/jTLE7ouhAzNkM2qHKRWXlnM5ESk+1mpZy8MfxyVaqYOYNyOxDbmvVDyJhlDX4iTSSjJf2eL4DX5bDyVvhVp92Bg0pSmYGofbez/p5AVfHtUrxjQnGGwCqSSdVejqKq5R3JQHRlbZjFdetRqWkErKykg28WTOtv/FlxDol+W8TS3euH8P27HPHrbITloZY6bo87Ajbj4xoZ1tcCZ5gkxuatlPH0ZSMg0f9TP47ydw3SzinN9g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=e6B15qfuEE6W4dJidFJsAPg+nOkXdcykrC9g9nGa02g=;
 b=s5Ug1JGf8+B1MLBeg9OBHEd3ngZ7AWjZor8fhmiDNzfkB27GPljVvRca4b7WbSDcRhE4sKCxgJNeUjxgCye/6fp8Va5zZHWeaYD9BeCSV60unqSb4f/gvAAYbfUy1AOLcGRHiAQpF6dQBG/9ZiRol1tLjbakRn1x+jX9lhl9Kdc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	julien@xen.org,
	bertrand.marquis@arm.com,
	michal.orzel@amd.com,
	Volodymyr_Babchuk@epam.com,
	edgar.iglesias@amd.com
Subject: [PATCH v1 0/1] arm64: Fix strrchr() matching of null terminator
Date: Tue, 19 May 2026 01:43:52 +0200
Message-ID: <20260518234353.453193-1-edgar.iglesias@amd.com>
X-Mailer: git-send-email 2.43.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: CPCP307CA0012.DNKP307.PROD.OUTLOOK.COM (2603:10a6:380::13)
 To SN7PR12MB6839.namprd12.prod.outlook.com (2603:10b6:806:265::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN7PR12MB6839:EE_|SJ5PPFCB5E1B8F5:EE_
X-MS-Office365-Filtering-Correlation-Id: e5265474-c593-4d77-b5d8-08deb53753b5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|56012099003|3023799003|11063799003;
X-Microsoft-Antispam-Message-Info:
	4dTzfZZLzpF0J199sDyPz3X1kFcEeSBWbQdUytrXvrQC3zQxqpvxpYzLiZVTso67Gw66ePGWLOhc5tNF0u7F3jQbcF4B7NJl1iveGrEe3eIxIRtOHg04j8/URSS755EhzulOgPvumkQTaBO/xHArl1h5/hhS2OK/+izKqlF76FnhAT0CzO/v7TxR7fZFxcKVoyrDkfNJtk9e6fJcyWChKOb8mwz1HmE3PokjSHWX5O4e5rZiwiptUOLPlvCyWqmCJQ4Nmdvi0Fh7KBCTfcTYL683T7odLq6yed2SkBQsGaCkcir8W7FpwOdXUIFNwNWFdyjkqyp3Jw5FtZcz63Iueb6XPCxuzD6U7DA+69TQI2zK0/kE2vc9+wKn0rJx+lOB/3QYgzMpNrnHI5/CtQF7hoWU5qR/5B/Mk8BLQp6y+o0+VSnmxF5E92AZyVAmJhjl6aXu7Jbjqq1vjPK5y7gXSEFtQfytuXeZVXJmmV84HshTjKtUjlqrbUfY8ivpj2n2ZhrZUCZhkf567QHgd/rR9ULToQMITXndflQOLEk5uwHiv1OcbrYHgUCDyoornaK3MKODEoEVO4pVhTKZAAfD18VcjbOspKtChyNJDhHLjkFuun9d0oSyF99uZQRVnCRKzUuaOv0LKnTMWYmmtEbe4jQQURG9ZY3GM7gne6rTaroli0UyTX/0W2VvzujqMuGk
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB6839.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(56012099003)(3023799003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?mzKWru31fXblGvVUWCM1G2eqcA8ApK/NBTumM9BDlyPukplYX6dGU6oVElfO?=
 =?us-ascii?Q?8L5LiFypVwSSrWpDUdHxdAJjeai/CTxoIsGx1OaGafD2sfQbrD2Pu3lXJEfh?=
 =?us-ascii?Q?n0x4UUZx8b/R3gk/WPY9Kg7LTK2Pd0xNG/w+jjzY/kSrFYy78VVW2TgpvP01?=
 =?us-ascii?Q?qflNThwnViV03vXeqqZzEdTwfxMl7N5ZUoPN2+vFR0JoKORm41StrNssFLTT?=
 =?us-ascii?Q?R0dIWF6IJrxac/mTHtjLzCqUMHt76gGfjvpXNflXCVWtN508GvVEkHn319w9?=
 =?us-ascii?Q?iCPtBjLOQZ7iVywSApKWB+sdYDRg/EUmxJ0IitXQ/NOECByD9KYcRfMRQz1L?=
 =?us-ascii?Q?lhce/4Pz87UND+brPySBQZYUSQD7LUWloLIzRl5/14ggtEW0zCZolH3banGW?=
 =?us-ascii?Q?fGHjgjvO60OV2wNE3Cv+wAhEmzbI3kLs7QqqFrYWcyZdmBVfFM85puoaEVSn?=
 =?us-ascii?Q?U3sqdBWigPLWzMcFwEyK2m7nc7BdDmwoF1gUasr/MXnSX5XkeemCcsR8ngAR?=
 =?us-ascii?Q?PDsL1njPhL8DQ2H5keruNNO6p1FFyQPQCsX8QVG50O/hJ1oU4WYIgFwdHlvq?=
 =?us-ascii?Q?R4qSXUX12nyoNaVcZQZDvyuevizpEcIOAPVKWNwMhRZAbzuaOms5EN5oYbc2?=
 =?us-ascii?Q?/297LNdXrt8O4McbLhFwOFl1BvT4zDPpRA5xEWjcr0EoxSTILlfC7MkQw+sH?=
 =?us-ascii?Q?fHaxa3d/oo7cOH4CpUTAywTfKzqKK96O0LTZFuczFh5e28oeThsYkKTKiFe5?=
 =?us-ascii?Q?Rl8xJUbKktD1+AsYhkCWWFZILtm9cfQF6zb0v7j2qnuIbChoZJUWLteOcBTC?=
 =?us-ascii?Q?2Pw+AKYdkNZK5SMVZXjaRLBTvGpaj8jAGZ+kmY2nF4+ZLIogvbWCl1T6HE5U?=
 =?us-ascii?Q?rMbURjbMeY1zePObiTFezOCTOg7k6Mn7rVplL1mrlsqapyfdC0JHzGpq/wS2?=
 =?us-ascii?Q?xwX+4FnzR/QwPmU5F2KOQkDXzJZr6/lj7ano1cIiOtSlyycC/VBMQiVohxto?=
 =?us-ascii?Q?7jAGbsMNMMT860ail0r/Re1quhEHAtoAtjveYE+b3SdgaGQtkP2NPEnn1ElY?=
 =?us-ascii?Q?MWzqLfXrrqDS4jD2/0FCkXbNskcIZMDVUvA7upxDGJib3BZQ89tGRRGSIaJ+?=
 =?us-ascii?Q?xNdQPzqcFQePeCSKSlw5ceephimYMVAFfUSKx7ZRTG/6qKKUfTqDzeT7sVG5?=
 =?us-ascii?Q?LxjnuzpkZczhzZc58RFI8PTwk6HE2mrCa4cZe3GI3ayL32uupS1phI2rLAtM?=
 =?us-ascii?Q?EFaJ5roSaP6evx6K++sBkbDigtdhYtrJdmdXNB5jmgSV0kSI+zC2F8WzOOHM?=
 =?us-ascii?Q?MU1nOyIRwcRoS4yZN5ylRpiDVTS9eI3+z/3Od8wwLQfc2E5G+v0q1Ik32Ugr?=
 =?us-ascii?Q?OnUsDqh+1+9nkl3k/DMc19SxTHg2LZk1jPM6yh5XLgX02Bj3ZSxbayQZB/QW?=
 =?us-ascii?Q?ZL5XAi3imNQpB9pPmYgjvCP41v7ttDSPiOJqSQsxZvqMOnByS5u/H0FTMDTA?=
 =?us-ascii?Q?psz0YzbhSDnNOiXZxtRKEkDZM/XRYzXTertX24ko3TkTrXwzWbdUeOKe6zwg?=
 =?us-ascii?Q?4WuILkmwR7kbpjoKVwWAz376TxIn5KnO3oyZ/6JSOUeDk/96JSvSZJIoZSn7?=
 =?us-ascii?Q?Mm+Z499YagJJ2ExZ1DJL+86NDGsONW+dEvjkmXibDn1O+7tB0Hv2gYkbmg4H?=
 =?us-ascii?Q?eqW5HkmSRX5RO0rEvDV5CytYXr6u8JkPtKRDua4e94y7c8xu?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e5265474-c593-4d77-b5d8-08deb53753b5
X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB6839.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2026 23:43:56.6285
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GNIN2ZjpC0y653CDOf9dtJ42F0bl0g3ziGEph7hWgRZpbIAJT8xj58eYiusTX3sE
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFCB5E1B8F5
X-purgate-ID: tlsNG-d62444/1779147845-B4F48FF4-878D859E/0/0
X-purgate-type: clean
X-purgate-size: 384

Found a problem with strrchr("", '\0') returning NULL when searching for the
terminating null byte. This fixes it.

Found while GDB-fuzzing xen/lib helpers under QEMU.

Cheers,
Edgar

Edgar E. Iglesias (1):
  arm64: Fix strrchr() matching of null terminator

 xen/arch/arm/arm64/lib/strrchr.S | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 19 00:23:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 00:23:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312330.1582463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP8Em-0003zr-Pk; Tue, 19 May 2026 00:23:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312330.1582463; Tue, 19 May 2026 00:23:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP8Em-0003zk-LD; Tue, 19 May 2026 00:23:08 +0000
Received: by outflank-mailman (input) for mailman id 1312330;
 Tue, 19 May 2026 00:23:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Jason.Andryuk@amd.com>) id 1wP8Ek-0003ze-UP
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 00:23:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP8Ek-00BNkp-6s
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 02:23:06 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 6a0bad30-2eae-0a2a0a5409dd-0a2a450ad01a-12
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 02:23:05 +0200
Received: from [52.101.48.66]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 6a0bad67-56b3-0a2a450a0019-34653042ca89-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 02:23:05 +0200
Received: from SJ0PR13CA0116.namprd13.prod.outlook.com (2603:10b6:a03:2c5::31)
 by DS7PR12MB8232.namprd12.prod.outlook.com (2603:10b6:8:e3::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.21; Tue, 19 May
 2026 00:22:59 +0000
Received: from SJ5PEPF000001D1.namprd05.prod.outlook.com
 (2603:10b6:a03:2c5:cafe::96) by SJ0PR13CA0116.outlook.office365.com
 (2603:10b6:a03:2c5::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.14 via Frontend Transport; Tue, 19
 May 2026 00:22:59 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ5PEPF000001D1.mail.protection.outlook.com (10.167.242.53) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.11 via Frontend Transport; Tue, 19 May 2026 00:22:59 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 18 May
 2026 19:22:58 -0500
Received: from fedora.mshome.net (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 18 May 2026 19:22:58 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eGNNR0WyilJn5pE3+Y35AOEej7vHgO5cRia9Mb9y35uyEPpw6OgFEIN96vAYZzUU3AMfgwBHIr0JRjUL42/OYJQQut81/I6uGF0oeHClTZip3eOCUfHKvOre155otNSTT+M+HbqxTz2yj2e43r1wZ9inzqf2oedTgcEvM7GGIAI24JpkXn1w+M8gfpAQeOMPxw0js7YAEed9JMCOqeno30i2QAqhzTZ/0nugkQXRxHmtLsMRY09CBLk8WhF02AGAS6bxAG2Bp/dtDh/q9UChEo0dmUxBQhoUwPZ2+b7mD6Xa1zmwXtiSXOnXLBD83kuifyxzWCUSw0E0bWRqvf5iMg==
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=TIziPShW5JvZAXG/Lgmsjf5KGUiDMQxRult1tOt+ci8=;
 b=Nnw1tD+fY4ONHV61OwzoCO+qJSQy8h+jSCgUkJCP0laMcxheJjaTOzhKdEMp782GT2aFxhVn/UqpClazl1EYXMwHuIkhtUeimF3Y0ummIAVhUo5JrHwpKSgwk1BFiF3hi/iqeJatXyXWPLi8G4fV7lE+L4C3FyW3oU9mo1fs7zTSd/szsF+2Sul6Wiqq0oPvr4Iv0tDdiGwilWgKaAjQHzaVrYTvy6qTGTLf3RsSZ42Mom4Z5AfulfNWIgRHRwZIgIzE9xq+m9mNzkJZAqI98lp9HDDMvoa3mBmqgN1eATgBsIxmNmjIVWgOzWA5ID3pZdRLBw3iL93NdhRP2EpzqA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org 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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TIziPShW5JvZAXG/Lgmsjf5KGUiDMQxRult1tOt+ci8=;
 b=nr+WSZfi05wCN7vlYDCZh0xOWUwxYApZ23wPkeiXU4Igo9gHF9EBE/3fM0OSIF7jooa2TaF4oZUTIbhppsOMmTIZjEI6yAaYTxBegcSBRj9o1TnDDQqJF0P/zAu0tVODvwJOEczFJ3dIO5lpAM4YUVFoqYR3joFg7y50jaycHX4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Teddy Astie
	<teddy.astie@vates.tech>
Subject: [PATCH] x86/irq: Return -EEXIST from map_domain_pirq()
Date: Mon, 18 May 2026 20:15:59 -0400
Message-ID: <20260519001559.28129-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D1:EE_|DS7PR12MB8232:EE_
X-MS-Office365-Filtering-Correlation-Id: b8ca9e19-53ba-46f9-8785-08deb53cc81e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|82310400026|376014|1800799024|56012099003|11063799003|18002099003;
X-Microsoft-Antispam-Message-Info:
	hQW8wzDyLnsXIsE2+Q3H6kC/wMp+4BvRzXYzpqTHr1R5Z9EDgw8MRPF1uBmECxAvhaydBpxzvACFVle8Qq8Beu1lJCXtH8BLMHcqqhFzi3Yxszes4fVp/JoFJVP7S26yW2pfger5hI6TTNBEREe8nkvxTHjbaKDSh64dShmenMLO22LvpGB5CUSueshD4oqo/NAStf/3eXfYbCh8HLYzoYy8lZdMHrKijfMYu1+of5c8a9Pxey5v6TnB9r4GD0vmNpjqH2wXNgKoPxxWWYLyBfhlEkgvIOXVUzjiRmzxPpQ4brV4i0ubactK3tpPyI8Aa0wKwTrf5OeSiRf/H4KkqmLOPD5QzJUnLi8/t9seLZlk5U/sQI3N096np8eamCn1S6IpTMsSoq8m+/EAhtuBqtLzEAvKYlScVy0WZA+5DBY/03RX4E8UEQSTZjdPRwGWGMMNdNBPdH4X6exnpjh20dmOSuSvOP4TkMCnwsE635gatdu5RXtA8Fnl3lYJFA3LaNZO1Q06rXKD8oMQOrG9j8n80Hlf0DAOxiowM4COJs8Z+cjSaK3UX/m9utbAaQWbaT7a1LYsDhmxC4nL1J4gu6pNaUtCIlFD9J8V4gS8ehjGSlq0tmo9vAXEPSehp5FqNkMXIopQR0TGkJIVD0Raf1dpNGfbAnODbbjRKmc+7aRr43sr9PFxp7YSxXq3IwmVFDY/2CmWOSi1CUAQkI5szsKK+pRtlXUqOqK/qFruAEM=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(376014)(1800799024)(56012099003)(11063799003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	BnonSPGH5efWJWj0U/LsDp8cAkQ7J+DDzz0XAAgpB6BzW3UqmNjJnrw3hJnOC3N9Em36nbc79HvG/NeEnU+wk8u5p/EU77r390O0w7rob+zkFMjkA8MmcI+Cn03uHJSvecyfhSDcuVEUBw4DP6jV08yj4Cv0dv7LIqKFGDW4b5OgDITGI+/O/mTUlY5u6tYTe1uHV4XYGK5bA7GwoVzpts9xFfCREWfNzYKg14Mt2g9wGdVNKtgxyy/9CWdBWFhFLY5strbMRrcINzP0stC0ukW/GD2bVq72LHbvgJ33dlNAahSyav9dhGLZyciJnWjjyJA/+B2V7ZyD79rriefaLWdZCv6AN8+bYqECCFRS+7oIMjBeDfknivs9d7YBYW0T3JGIENbO20xNEZ+YxKMK37vEo5jGIEhAQ8Rl9pHxdwQV5Fq7aFqzoKoZWbnTp6lz
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 00:22:59.2194
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b8ca9e19-53ba-46f9-8785-08deb53cc81e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001D1.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8232
X-purgate-ID: tlsNG-4011c0/1779150185-709668B7-F7AC5490/0/0
X-purgate-type: clean
X-purgate-size: 2041

commit bfc341a65cfb ("x86: Make the hypercall PHYSDEVOP_alloc_irq_vector
hypercall dummy.") modified map_domain_pirq() to return 0 when an irq or
pirq is already mapped, when it previously returned -EINVAL.  This
occured when moving map_domain_pirq()'s call from
PHYSDEVOP_alloc_irq_vector into PHYSDEVOP_apic_write.

However, this means other callers cannot detect when a pirq or irq is
already mapped.  Since success is returned but the pirq is not
connected, it will never fire.

Modify map_domain_pirq() to return -EEXIST.  -EINVAL is already returned
elsewhere in map_domain_pirq(), so -EEXIST allows identifying this case.
With that, squash -EEXIST in ioapic_guest_write() so the behavior does not
change.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
I'm not sure whether or not this warrants a Fixes.  Nothing in tree
today is broken, so I did not add one.

 xen/arch/x86/io_apic.c | 2 ++
 xen/arch/x86/irq.c     | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 46c2a43dac..2b928fc236 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -2315,6 +2315,8 @@ int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val)
         ret = map_domain_pirq(hardware_domain, pirq, irq,
                               MAP_PIRQ_TYPE_GSI, NULL);
         write_unlock(&hardware_domain->event_lock);
+        if ( ret == -EEXIST )
+            ret = 0;
         if ( ret < 0 )
             return ret;
     }
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 739fc04bd1..938cca6203 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -2210,7 +2210,7 @@ int map_domain_pirq(
         dprintk(XENLOG_G_WARNING,
                 "dom%d: pirq %d or irq %d already mapped (%d,%d)\n",
                 d->domain_id, pirq, irq, old_pirq, old_irq);
-        return 0;
+        return -EEXIST;
     }
 
     ret = xsm_map_domain_irq(XSM_HOOK, d, irq, data);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 19 00:39:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 00:39:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312339.1582470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP8Um-000611-0a; Tue, 19 May 2026 00:39:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312339.1582470; Tue, 19 May 2026 00:39:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP8Ul-00060u-U5; Tue, 19 May 2026 00:39:39 +0000
Received: by outflank-mailman (input) for mailman id 1312339;
 Tue, 19 May 2026 00:39:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wP8Ul-00060V-C1
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 00:39:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP8Uk-004kWS-9J
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 02:39:38 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a0bb12d-5cb7-0a2a0a5109dd-0a2a450ae87c-8
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 02:39:38 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a0bb149-56b3-0a2a450a0019-ac6904fec070-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 02:39:38 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id A57B8600CB;
 Tue, 19 May 2026 00:39:36 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 14AB4C2BCB7;
 Tue, 19 May 2026 00:39:36 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1779151176;
	bh=OgTVBZMDJzowQNma/1uscbb5FY7vAb8YvSLafcgHqkE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=pMXVcplrrsYyMTuGrEOJOUDbcFsL7uHltYlFEKlrnec3Eaprvahp5yH2laM/3YJyp
	 3NLSakpi9drNa2z6Ouz4a0WsYCW0tAZDt9czUPs5Vmh31uWXwAoMSafxJUs4A1brL/
	 o2mqbg2snuer73tpImp32Y6DO8IRiaT2EXR8Diky48rxvdMj99KVH52C8xSmYuzvh7
	 UVHOl6xb3V1uA2waMw0S+TQvB+0b0kwdLJ/Jg0cUQHY+VoRghj884YoFLQI9SJet16
	 UwujxuF1o4DazoTwU7pXjXd/INZP18sTtywBHBIhAQ/z3SEqI5+A029sG0t9bHH4Pe
	 KKinQFiD7OSPQ==
Date: Mon, 18 May 2026 17:39:32 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, julien@xen.org, 
    bertrand.marquis@arm.com, michal.orzel@amd.com, Volodymyr_Babchuk@epam.com, 
    edgar.iglesias@amd.com, oleksii.kurochko@gmail.com
Subject: Re: [PATCH v1 1/1] xen/arm: gic-v3: Fix wake-up loop in
 gicv3_enable_redist
In-Reply-To: <20260518224652.422864-2-edgar.iglesias@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2605181739130.4460@ubuntu-linux-20-04-desktop>
References: <20260518224652.422864-1-edgar.iglesias@gmail.com> <20260518224652.422864-2-edgar.iglesias@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-4011c0/1779151178-7CA798B7-373C4B9A/0/0
X-purgate-type: clean
X-purgate-size: 1018

On Tue, 19 May 2026, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> 
> timeout starts as false and is only set on the timeout break, so the
> loop always exits after one iteration and a stuck redistributor is
> silently treated as woken. Use while ( 1 ) to match the sibling
> gicv3_do_wait_for_rwp().
> 
> Fixes: bc183a0235 ("xen/arm: Add support for GIC v3")
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
>  xen/arch/arm/gic-v3.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index 7f365cdbe9..f03217282e 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -828,7 +828,7 @@ static int gicv3_enable_redist(void)
>          }
>          cpu_relax();
>          udelay(1);
> -    } while ( timeout );
> +    } while ( 1 );
>  
>      if ( timeout )
>      {
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Tue May 19 00:58:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 00:58:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312345.1582480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP8mw-0000YK-FQ; Tue, 19 May 2026 00:58:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312345.1582480; Tue, 19 May 2026 00:58:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wP8mw-0000YD-Bm; Tue, 19 May 2026 00:58:26 +0000
Received: by outflank-mailman (input) for mailman id 1312345;
 Tue, 19 May 2026 00:58:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dongli.zhang@oracle.com>) id 1wP8mu-0000Y7-N9
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 00:58:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wP8mt-002AYR-IH
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 02:58:23 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dongli.zhang@oracle.com>)
 id 6a0bb535-5cb7-0a2a0a5109dd-0a2a4509ab56-30
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 02:58:20 +0200
Received: from [205.220.165.32] (helo=mx0a-00069f02.pphosted.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dongli.zhang@oracle.com>)
 id 6a0bb5aa-2497-0a2a45090019-cddca520a430-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 02:58:19 +0200
Received: from pps.filterd (m0246617.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64IFqMkF545944; Tue, 19 May 2026 00:57:55 GMT
Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta02.appoci.oracle.com [147.154.114.232])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4e6h4q37ty-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 19 May 2026 00:57:55 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7)
 with ESMTP id 64J0sj9s028343; Tue, 19 May 2026 00:57:54 GMT
Received: from dm1pr04cu001.outbound.protection.outlook.com
 (mail-centralusazon11010053.outbound.protection.outlook.com [52.101.61.53])
 by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 4e6f1a4820-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 19 May 2026 00:57:54 +0000 (GMT)
Received: from BN0PR10MB5109.namprd10.prod.outlook.com (2603:10b6:408:124::23)
 by PH0PR10MB4808.namprd10.prod.outlook.com (2603:10b6:510:35::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Tue, 19 May
 2026 00:57:44 +0000
Received: from BN0PR10MB5109.namprd10.prod.outlook.com
 ([fe80::d9fa:7ad2:804b:bb83]) by BN0PR10MB5109.namprd10.prod.outlook.com
 ([fe80::d9fa:7ad2:804b:bb83%6]) with mapi id 15.21.0025.023; Tue, 19 May 2026
 00:57:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=corp-2025-04-25 header.d=oracle.com header.i="@oracle.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-oracle-onmicrosoft-com header.d=oracle.onmicrosoft.com header.i="@oracle.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	corp-2025-04-25; bh=u+PFvMDHJ33oo7sGA3cLlGmVs2NUml79uY9VX5VPNXc=; b=
	JIeVxkmraKwKJQi7+XjdYYzhRThW8QDwiRTMVHzas61gXSKMdZSoCFpfYZsYOmy2
	LRv3YI26KV5viYAq7GmEIIerF6+da4qjeBORnhH0ru7tx/ZZGA1gjlfEpd+akBi5
	B9kiz8hCKfDC5s8Q9qBn97qSDauxCMcKuvWXt0X0ZURcgNhXOejPckdI2lFfUs/B
	/CjVDi27lP+S98v70xllu+P9860/XPamfFxVZXUeJ/MykJN94vRbGJpJbkhZRlYa
	4wsv9YUIMKmJhAApZPoLnc6I7QishVeDyUuKF1ad0MeEGp8ERwfvVud+mGbiAcvr
	eVTAN+bwIU/4rVMTgyn/OQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tYvxjLHz0pT2q1GlB5Iur0+SSs3mOds/bcF8DL80LTKP4KkQ3Zv3WO7riHP80ivS7aX8LmGTi8Gdb0OMUsz5ry85HbNFGwMICws76wD+zSDNpQ9LfXuPaOzWWvlZ5V4tjgmWB4AoRNwqL8MtvQyu/cRNGffOXy47UlUt5vfEo75nS5YcEyfJn9xMxjd4WD0KpbrfJZm+StCiEpTSyd8dv6b5WmU0q8CYyBCOJop3M2baLAItyB/W3tI9Kskv0cFUUW0yAV20ysnZY99D7AUw9++8HrP+TUNzoUHpiZS6tU6igtGGKsCJJ4cwfeSeQ2Fd/4KhTs0lhMu/nLNSjpkXAg==
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=u+PFvMDHJ33oo7sGA3cLlGmVs2NUml79uY9VX5VPNXc=;
 b=aM3dfNqEaF+2GaLRInOI9LI2lhsvA6DtHoR24cKSCgMiZDZHjdecPJJY/lu2a80+h7HxH5gy/I9KLx/rN9N5/zbk1dHh4s7FwIuRLaJRx03uR9+WAABvTOWbFp0f5raRmWIJ/NKPASmFEoPUOQ9MKRKOEWplFPIbXbeqwo08dFyRjjsp6OoW7hs9y6TEjh7wqENcqc5TaoOPHXKX9ek0v25KwLwHN677MxId0xImJlB7TaCSBuQa4lYS+S9M3o/5WSLver3HQ0+S0vf2HKxLjqITGzn6JOggloXRNLQavyNFHhhAQuw1PjPEzELr18RUTSapqdWMaqedVTUsdoyoJg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=u+PFvMDHJ33oo7sGA3cLlGmVs2NUml79uY9VX5VPNXc=;
 b=KWfEYmpwQB6xr2AYzGkQ5R6IKcrqJxZXI85XeWiPsDoGm4+owFJGxvxkF6X2qpqggWtMyI0o99UYmgv46CCYO0CNb1KWvGq6gYBr9NZUo8X9NVdN9hocJjIzaJhovjajMQGH///fcQmp3dXXrICdHdReiglDhddmCnXUucnQeyk=
Message-ID: <935312be-9a86-49fd-8bb4-2c998a68e2df@oracle.com>
Date: Mon, 18 May 2026 17:57:40 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/30] KVM: x86: Add KVM_[GS]ET_CLOCK_GUEST for
 accurate KVM clock migration
To: David Woodhouse <dwmw2@infradead.org>, kvm@vger.kernel.org
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>,
        Shuah Khan <skhan@linuxfoundation.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Sean Christopherson <seanjc@google.com>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        "H. Peter Anvin" <hpa@zytor.com>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        Vitaly Kuznetsov <vkuznets@redhat.com>, x86@kernel.org,
        Marc Zyngier <maz@kernel.org>, Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Paul Durrant <paul@xen.org>, Jonathan Cameron <jic23@kernel.org>,
        Sascha Bischoff <Sascha.Bischoff@arm.com>,
        Jack Allister <jalliste@amazon.com>, Joey Gouly <joey.gouly@arm.com>,
        joe.jin@oracle.com, linux-doc@vger.kernel.org,
        linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-kselftest@vger.kernel.org
References: <20260509224824.3264567-1-dwmw2@infradead.org>
 <20260509224824.3264567-5-dwmw2@infradead.org>
 <0ae8e471-db7a-4842-aca4-8ef643acde8b@oracle.com>
 <d3c461415e05345a9b82e6f995828c1ae64a4e61.camel@infradead.org>
Content-Language: en-US
From: Dongli Zhang <dongli.zhang@oracle.com>
In-Reply-To: <d3c461415e05345a9b82e6f995828c1ae64a4e61.camel@infradead.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: BY3PR10CA0001.namprd10.prod.outlook.com
 (2603:10b6:a03:255::6) To BN0PR10MB5109.namprd10.prod.outlook.com
 (2603:10b6:408:124::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN0PR10MB5109:EE_|PH0PR10MB4808:EE_
X-MS-Office365-Filtering-Correlation-Id: cef7396b-254b-4543-6ed1-08deb541a29e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|7416014|376014|22082099003|56012099003|18002099003|13003099007|3023799003|4143699003;
X-Microsoft-Antispam-Message-Info:
	rqfUNSh+VeRSytHR4QihiGMxjfG72XXJKuh/PI+n85pjMZHdHVWlJeXBQesQc5hKWKFHnWLXEniHZvYvDbio8tybnw0AUVyUqvhlLbWn0Z4xZj/e5hRS05bg1Bdl29rmAW9+DvA9AUSz4v1BhnbrGR22jkt/CHB2H+/hNxM1D4zbyaTi1n6dnwX/Znq02IT+wv5mtwgkzAjnnNfNVn+AW6032PPz2iK88Iyne/3Kwnud1pEQ0D1XRPiNF+hIdPFUDQsskiFuuu3eOfOxnUVJIblG5f3U4KQxnLxZ7asevMSimT2u5gNaHb3dDRucZbnzYy2MimnQyRGwRVENipUAbvV61AO7RJXUMh4AVbirSJ+2pQv7ARyf95H0nFMrY97UaWlTlvY2G1YJJWcg0P6Pkoi8u3D3muOzX9Z1r3J9pOV79JS4Kp1zpvdx2DA7k0Io2Cl7KrDOGNd5TW4SV9N47uxeMczbXt12MeZFBCcQqNMmMTiy0Xrx83P2EhkQEhC79km1eQUu0BLwz5biz2VIyDzGRguc9j/Z0hrVs6howZH5kJP8iJh9l9xL+/USvRdrb7t4GEYaGJLeM4etSHJa9kq1BCP1/wm7vs3cJO10BLv6B3aevtXiOy6aNfdmr7npOjWUKMshdQQ4iQ7aAtQGgTQv99yBuY6yKMTYckZSmnhfU3j04hQyoXJoqSpL6S/iUEnJ/BlbOoCAUgms0f6PZA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN0PR10MB5109.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(22082099003)(56012099003)(18002099003)(13003099007)(3023799003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?N25MUzFqMngxbVJwK1RheGR1OFZkZTd3YTI0MjB6S1dOQmh3ay9XcWVYSkt3?=
 =?utf-8?B?OVF6M09vUk5sMEFIVFJiM3p2WjJKUjVDaWc3ZzAvRGNtcXpMT1hIazN5NFV4?=
 =?utf-8?B?dTNlTC8razRXZWFFd1M4QzBONjM0aGRSdjdzMFNlSzduM0FYTXBab3psTTQ2?=
 =?utf-8?B?Lzg0YzhmR1hlYTRyTXI2VWVDekUzU3UzVmphTWk2bGY3bElxQXk1WFBsbzJy?=
 =?utf-8?B?T25URlJqemJJcnhWN0xHKy82U1A4anRNdUZCN0hMUytvVU5DbWhjTHQ0QXZ3?=
 =?utf-8?B?TlZKam5EZ2owVjRNaWlPT3pxUE5OQk1CQUdnelJmTTNNeFlMbEJ5MWRhVWVC?=
 =?utf-8?B?UkJxQWE4OEVxVDErdWRiZ1l4VlRSKzI4bHY3Nm1ZQ2N4cjBFeXgzSCszRTI5?=
 =?utf-8?B?SWx0UjFhNHk3aldZNXN2VXkvRm5JY1hieXVPbXBpbys3TXRtR1diblYzbXlG?=
 =?utf-8?B?TlRXektTL1ovYUg3NzVKaEVjQzM3SzhnaUxuTEdNU1VTTDZ0cXEvY1ZjNjZa?=
 =?utf-8?B?b0tHd0tHdTk0MTUvdmN2V3U1VFVWQWR6S3llL0YrOFZId1RRSmdPa0l0LzRh?=
 =?utf-8?B?SFhkeFFXT0RZVU50WkgzdEord1NtMzdkcXhQdUR3Y2Fka1JJdDZTMnpmaUd5?=
 =?utf-8?B?NjdscDhaTDNaSisvSFA2MEcrbkQ3TldJcTdaSXFtS3ZiNHFrbjAxS3F4VkZF?=
 =?utf-8?B?MUVtNXJXMjhMaU4rUmhEaTNicGdGU3MxRklVbzZkZFJ6SERRZU9vVlpFVTR4?=
 =?utf-8?B?QlZTa0d0TkRSQ0RFbDEveXFyOVYwSlBLN1JjcDJTOVlnVHBRTkZNaGFSbGcz?=
 =?utf-8?B?R2ViVFJkWTQreFh4ZFpUdFljb0tmTzdxa01ucnpZK1N2VERXUmR3OU1qZlhW?=
 =?utf-8?B?d0V0QUNKWkQzelVoSmpTd2I4QzRoY0R3RTlXQjdtK3B0ZVVBRThTZU50Qm9V?=
 =?utf-8?B?RklQUHc2RGVtZDVwNFFLNlgrVkxGd3B3Rm42L2tFeWlCTTFKY3ROWUViRk5q?=
 =?utf-8?B?QnNZdkhZRk9qV2tydXFUV0svNmhzeTlFVEdRYTl2bXNhcHcwQ3pLdXNnK2RM?=
 =?utf-8?B?WjFQTEh2WWdsN1lpNEVycGwrSVp4eStlMW9RYUt3cW4wZGZpRlF4S1R0Kzkx?=
 =?utf-8?B?UTRHT29yMFJ4elRJbWlMV21TS2EvOStteWc3QkRuN3dKQm1FNDRuSzlzcmpk?=
 =?utf-8?B?NXF2QnVsMjRDWkNla0dEME9DM0FXZ2NXVlRLRDhBMGRJRldodVlKRk1Nb005?=
 =?utf-8?B?S1RueEhBT2lMWjh0N2tVKzdBZlFVNm44OWpZTTh2REwyMDB5QzBKbFhUS1BO?=
 =?utf-8?B?N0R3V0JtOTJ1SkNscHVybWRlaHQvUVZSUllGSFhIZW4xTDZmczcxajNoODJq?=
 =?utf-8?B?VFVqaXJUM1dLaHkvVUErTzdaUXhKLzNwQXJIcndmbjkxL3lJZm9DaGd5bTlk?=
 =?utf-8?B?NkVMdTFkRitTOW05QlkrUmRBd01obCtBMVBWeTdWczl0Q1J6U3ZZMEZtcDlN?=
 =?utf-8?B?R2lhUzJkQ1FndnBtWmlTYkJVRDlPdm9DdFhJb3h4VUo1eGpYNVZlWlZJc1Bs?=
 =?utf-8?B?dWJYRlhyT1R2SVNvWFhubzlGalNCOWtKdVYzRDdkRGJPVlpXanMzbENFU09S?=
 =?utf-8?B?MzRtNkNyWG9sTExNaUNWbjNuV1JOTEd1aEM4MjlJc01YYjVucFlCdGN6TGNO?=
 =?utf-8?B?WVZ1OGpoVWlzVE9oWmNCT0d4NEFHeWd6eVpSZDVPM1VXeUwyWWZiNXBJa0dF?=
 =?utf-8?B?UEJ0VXExQm1FQnEyd2hyWlpRZXVsODdJS1R1V3RjVVdjMjByMEYvSWhzM3Bp?=
 =?utf-8?B?MjZOZWpkYUpsOENTUW1KZkp3TnYvekhVK0ZUYUpOMDZ3UlFyQzhST1JrZC91?=
 =?utf-8?B?SlRzRTR3cjdPSDB6UHVmbEExWnVRekVIYUQ5K01GQXJydjBRUERlSUlvYldr?=
 =?utf-8?B?QXZiaVU2VE9DOEV4a3Bxa1V6N3FKMTRLUzZBVWJ3L0ppQmxQUXBwbVJLWVVM?=
 =?utf-8?B?SndtZzlaSnAydFlvcUlNdUkzMlkxOThxREpqRHN1NmRDUlk3czdnQy9zSHlJ?=
 =?utf-8?B?Q0ZxMDJBMDBYaEJ6eklteFkzb25tVlVVQmtLWVNFR0VLVmZNRC9CVS96TzBw?=
 =?utf-8?B?aGxwUFhHYmFVOEwyV1NSbUJVSFhFZnU2dm5LNDh3ckpnQWVDYkJKQ0srL2VF?=
 =?utf-8?B?OTQ4ZTJOZXhoRWx2SWEvSE85YVIxd2JCMm1DSC9nZDRVRzFRQjBJaTI1SjJD?=
 =?utf-8?B?QlBPVHRkVlh0WUMrUG1QYjF3eFBLT2lrdWVjUlNnTkZ5ejlVQ1laeWhTN1hR?=
 =?utf-8?B?bzdydkR4MXl1L3p2aG9ETjRHZmoyTS9VeWtPRHREdVkxMDJ4TDhUQT09?=
X-Exchange-RoutingPolicyChecked:
	VSRczNI50qGl0t7ppFFJT9VSU1Z1EDiHIoLfTjdRidhWfHRscuuMr5FZhYM15qIcX6w3Mgm4vxZaKNSP/ib+Iul1Pu5lD7tmxUC0EzKHEzCNrZrEwrBY3x2lcniaxqWBbLIlRFgF/2W9t1EMm3JUwbkGsCh9iaCHtLOuiyT3kkhLkt8io64Hm/+65cm5kr8MEFIj6GpNJ5kodlJNaGdm+wMcuxYs0yDSrkoYp8Bjwyy2st/OenT7FoI9LlNkZwjagMv+IlCek7sagfv3hzW4s3aYMdNA+0D0l+bUgagjMTEbORLkabcmacgieiX412d8as9dFTmICxehOIJh1FqFIw==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	QS42RhmHIkZtk1Llb5kxv59L62liBw7TjNvOz9IiCZRKDJvHqbEcompQ6l3nZHNz2c+e+tZI+2sh0xpasekdlzy+1cwx1JbnBZpFiAs4LESptgkNMnQ8okZlw3v2a0rCvP1ufE8oCnvv/vcaPbkQiErFdhTcEx0NMMqF02r0U9c4+QxvyhTqbZq4mbK9/yn/gAFZlTx0dDRV237waRc9vI6fxznQzd8FomZQS+8nLKLShZJVK/V7AhJnCn1j6ZOtJ9qqMsd0VJc2w/jj/FYaVgfsRqdvC+auCO7m1Kdhro7PIjzSBBVacMcGeRJmcMlnLG0YpSmDX26jvqY7KFwTgan0xquFM6C2ow7xSYV/JSPyFTEzSJC/CUaUTAfUkBw/ba/oKD57jh+4AOEmZIh/YAvvofU4AKWbJoMmTEM4++VE1sLRHaLYbtb1mCn5//by7jmrmpak2GyWVRdc93JytGVi93ppvM+3zN67QnmmeXrOl9vLNWmlt2hCsfMKpqeOFFeL+FYZchHpNi6kw+1HHVtLszyFwtVLxddf9nxP7WhtwOy+//Z4i3NVM+MVfggMMOaFQsJiV1eaxnCWwebR/zLywPBVDzepnNu5qkQcpu4=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cef7396b-254b-4543-6ed1-08deb541a29e
X-MS-Exchange-CrossTenant-AuthSource: BN0PR10MB5109.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 00:57:44.5580
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: iOPiuUj3TuMvYnGrB0hM7c3l3wTYan25foTD2i6GkHYSIk9arQ1+CA28dWYHliMJN919r3Me0vNJLmPPIMiSMg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4808
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_01,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 malwarescore=0 mlxlogscore=999 adultscore=0 mlxscore=0 suspectscore=0
 lowpriorityscore=0 phishscore=0 spamscore=0 classifier=spam adjust=0
 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2605190006
X-Authority-Analysis: v=2.4 cv=NdnWEWD4 c=1 sm=1 tr=0 ts=6a0bb593 cx=c_pps
 a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10
 a=NGcC8JguVDcA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=jiCTI4zE5U7BLdzWsZGv:22 a=7Gl3-_t3PgB9XO-mQDs3:22 a=VwQbUJbxAAAA:8
 a=JfrnYn6hAAAA:8 a=vggBfdFIAAAA:8 a=DIwNPwYT3k4F1lwTFE8A:9 a=3ZKOabzyN94A:10
 a=QEXdDO2ut3YA:10 a=1CNFftbPRP8L7MoqJWF3:22
X-Proofpoint-GUID: ZPc75IED0VObkGZl2k_c21ZY4S-pCRIs
X-Proofpoint-ORIG-GUID: ZPc75IED0VObkGZl2k_c21ZY4S-pCRIs
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE5MDAwNSBTYWx0ZWRfX8M1sB+19sih4
 QZUxBR2UBp7LQ8aw+yGXvxAnVTQ1otpufWml3BbWG6x3+bO3P/DtzUeJHzISCHSAaYJsYvKkoiM
 RzREnjNYqk//9P6mGrM1JhfTfSu6OCbs8tZeLMd1/kN6oMYMWOjFKbBccijTHTEKsOKbwhzEon0
 90+vzzeX2vmOuFt0pH19hIt9Xcp+O5UzkqsESAGlpUFfTWcbgtX3TNw9uIezZv3CnK36jpS2S5R
 ieEfPFg97DP2h3l5DXcI5FvV4bGaVyC17QtcuIxhE/CapLiFWeGxG8hXrHyP46AtJYi9jPpI+R3
 8tF5bXON9G1nWV0Xwd2/ZQc2zfqhmF86zErGk6g3hin5gwcLHVsW1e7C+qTpBoeYac6vqS3oOWK
 PD9cOO05h1o/EzO5IRA5BomaDbVwjRPmoHoCMsnwQIPl306XanCsGjyFjRC1UhcxO6Nqf/KQLsA
 7i5gpv8Kbu7YnArm6Yg==
X-purgate-ID: tlsNG-bad1c0/1779152300-40B60A53-813BB41D/0/0
X-purgate-type: clean
X-purgate-size: 11000



On 2026-05-18 1:48 AM, David Woodhouse wrote:
> On Mon, 2026-05-18 at 00:52 -0700, Dongli Zhang wrote:
>> On 5/9/26 3:46 PM, David Woodhouse wrote:
> 
> Huh, I didn't write that then; it isn't September yet. Did you mean
> 2026-05-09? We aren't all in the US... 
> 
> Strictly speaking, you just misattributed a quote of mine, which is
> very poor form :)
> 
> What mailer are you using? Can it be fixed?

Thunderbird.

I have fixed the Thunderbird configuration. Does it look better to you?

> 
>>> From: Jack Allister <jalliste@amazon.com>
>>>
>>> Where kvm->arch.use_master_clock is false (because the host TSC is
>>> unreliable, or the guest TSCs are configured strangely), the KVM clock
>>> is *not* defined as a function of the guest TSC so KVM_GET_CLOCK_GUEST
>>> returns an error. In this case, as documented, userspace shall use the
>>> legacy KVM_GET_CLOCK ioctl. The loss of precision is acceptable in this
>>
>> The description here confused me a little. It sounds like userspace should call
>> KVM_SET_CLOCK if KVM_SET_CLOCK_GUEST fails. However, I assume it actually means
>> that userspace should do nothing extra if KVM_SET_CLOCK_GUEST fails, and simply
>> rely on the prior KVM_SET_CLOCK and KVM_VCPU_TSC_OFFSET workflow described in
>> patch 07. Is that correct?
> 
> Yes. If KVM_SET_CLOCK_GUEST doesn't work (which might be because
> KVM_GET_CLOCK_GUEST didn't work so userspace doesn't have the data in
> the first place, or because the actual ioctl returns failure), then
> userspace should rely on the old method using KVM_SET_CLOCK imprecisely
> instead. That includes on a migration from an older kernel that *lacks*
> KVM_GET_CLOCK_GUEST, of course.
> 
> I don't think it strictly matters whether userspace does KVM_SET_CLOCK
> first, then *tries* KVM_SET_CLOCK_GUEST, or whether it tries
> KVM_SET_CLOCK_GUEST and then only calls KVM_SET_CLOCK on failure? I'd
> probably be inclined not to use KVM_SET_CLOCK at all unless it is known
> to be needed?

I really appreciate guidelines like the ones below.

https://lore.kernel.org/all/20240522001817.619072-8-dwmw2@infradead.org

Assuming I am a user of the new API, I feel confused about whether the goal is
to replace KVM_SET_CLOCK with KVM_SET_CLOCK_GUEST, or whether the latter is
meant to supplement the former.


If we are going to use KVM_SET_CLOCK_GUEST when KVM_SET_CLOCK is not needed, I
would appreciate it if the API could carry more data in addition to struct
pvclock_vcpu_time_info.

+#define KVM_SET_CLOCK_GUEST    _IOW(KVMIO, 0xd6, struct pvclock_vcpu_time_info)
+#define KVM_GET_CLOCK_GUEST    _IOR(KVMIO, 0xd7, struct pvclock_vcpu_time_info)


In the future, if we need to carry additional data, we could simply reuse the
padding fields instead of introducing another KVM_SET_CLOCK_GUEST2.

The following is an example of how additional data could be carried.

KVM: x86: Report host tsc and realtime values in KVM_GET_CLOCK
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c68dc1b577eabd5605c6c7c08f3e07ae18d30d5d


So far, I believe this guideline resolves most of my concerns.

https://lore.kernel.org/all/20240522001817.619072-8-dwmw2@infradead.org

> 
>>> +4.145 KVM_GET_CLOCK_GUEST
>>> +----------------------------
>>> +
>>> +:Capability: none
>>> +:Architectures: x86_64
>>> +:Type: vcpu ioctl
>>> +:Parameters: struct pvclock_vcpu_time_info (out)
>>> +:Returns: 0 on success, <0 on error
>>> +
>>> +Retrieves the current time information structure used for KVM/PV clocks,
>>> +in precisely the form advertised to the guest vCPU, which gives parameters
>>> +for a direct conversion from a guest TSC value to nanoseconds.
>>> +
>>> +When the KVM clock is not in "master clock" mode, for example because the
>>> +host TSC is unreliable or the guest TSCs are oddly configured, the KVM clock
>>> +is actually defined by the host CLOCK_MONOTONIC_RAW instead of the guest TSC.
>>> +In this case, the KVM_GET_CLOCK_GUEST ioctl returns -EINVAL.
>>> +
>>> +4.146 KVM_SET_CLOCK_GUEST
>>> +----------------------------
>>> +
>>> +:Capability: none
>>
>> Do we need a KVM_CHECK_EXTENSION capability for this? If userspace wants to
>> support the new API, should it detect availability via KVM_CHECK_EXTENSION, or
>> simply try the ioctl and handle failure?
> 
> That might be conventional, I suppose. But I suspect Jack's thinking
> was that userspace is going to have to *try* it anyway, and still might
> have to fall back to what KVM_SET_CLOCK can manage, so userspace
> probably wouldn't even bother to check that capability; it doesn't
> matter.
> 
> Since then, we've added some more attributes in this series though, and
> it probably is worth adding a cap which advertises them *all*?
> Something like KVM_CAP_CLOCK_PRECISION_API?

>From an API user's perspective, userspace may need to distinguish between an API
failure and the API not being available.

I don't see any existing "Capability: none" entries in
Documentation/virt/kvm/api.rst.

> 
>>> +#ifdef CONFIG_X86_64
>>> +static int kvm_vcpu_ioctl_get_clock_guest(struct kvm_vcpu *v, void __user *argp)
>>> +{
>>> +	struct pvclock_vcpu_time_info hv_clock = {};
>>> +	struct kvm_vcpu_arch *vcpu = &v->arch;
>>> +	struct kvm_arch *ka = &v->kvm->arch;
>>> +	unsigned int seq;
>>> +
>>> +	/*
>>> +	 * If KVM_REQ_CLOCK_UPDATE is already pending, or if the pvclock
>>> +	 * has never been generated at all, call kvm_guest_time_update().
>>> +	 */
>>> +	if (kvm_check_request(KVM_REQ_CLOCK_UPDATE, v) || !vcpu->hw_tsc_hz) {
>>
>> This was flagged by AI, and I am still checking whether it is a real issue.
>>
>> What happens if KVM_REQ_MASTERCLOCK_UPDATE and KVM_REQ_CLOCK_UPDATE are both
>> pending?
>>
>> From my perspective, I am also curious how we should reason about this in other
>> scenarios in the future. Specifically, when do we need to process
>> KVM_REQ_MASTERCLOCK_UPDATE before KVM_REQ_CLOCK_UPDATE, and when is it
>> acceptable not to? I noticed that kvm_cpuid() already processes only
>> KVM_REQ_CLOCK_UPDATE.
> 
> The way I've been thinking about it — and I'm only two cups of coffee
> into Monday so take those words literally and don't think of them as
> British understatement of something I believe is absolute truth — is
> that MASTERCLOCK_UPDATE is updating the actual clock for the whole VM,
> while CLOCK_UPDATE is about *putting* that information into the per-
> vCPU pvclock structures.
> 
> So after a MASTERCLOCK_UPDATE, we need to do a CLOCK_UPDATE on all
> vCPUs to disseminate the result. Which means that if CLOCK_UPDATE is
> already pending before a MASTERCLOCK_UPDATE, it's probably redundant
> and might as well be cleared because it's only going to get set *again*
> in kvm_end_pvclock_update()? 

Another scenario is when only MASTERCLOCK_UPDATE is pending and there is no
pending CLOCK_UPDATE.

In this scenario, is it fine to skip processing MASTERCLOCK_UPDATE before saving
pvclock_vcpu_time_info?

This should be a very rare scenario. Although it is not mandatory, I think most
users call these APIs only when the VM is already stopped. I am just curious how
I should handle this in the future if I am implementing similar code, that is,
processing a pending request outside vcpu_enter_guest().

> 
> 
>>> +	/*
>>> +	 * Calculate the guest TSC at the new reference point, and the
>>> +	 * corresponding KVM clock value according to user_hv_clock.
>>> +	 * Adjust kvmclock_offset so both definitions agree.
>>> +	 */
>>> +	guest_tsc = kvm_read_l1_tsc(v, ka->master_cycle_now);
>>> +	user_clk_ns = __pvclock_read_cycles(&user_hv_clock, guest_tsc);
>>> +	ka->kvmclock_offset = user_clk_ns - ka->master_kernel_ns;
>>
>> I used to explore adjusting ka->kvmclock_offset in KVM_SET_CLOCK based on the
>> old hv_clock and the new hv_clock long time ago. At that time, my concern was
>> what would happen if userspace provided bogus values. Theoretically, this is
>> possible with any ioctl. My concern may be unnecessary.
>>
>> Would it be helpful to validate that the delta is within a reasonable range,
>> e.g. that the drift can never be more than five minutes (forward or backward)?
> 
> Setting confidential guests aside, which have their own way of trusting
> the TSC and should never even *consider* using kvmclock, surely this is
> supposed to be *entirely* under the control of the VMM? The kernel has
> no business deciding what is 'bogus'?

Yes, I both think and agree that this is supposed to be entirely under the
control of the VMM.

Sometimes security researchers use fuzzing tools to interact with APIs in an
attempt to leak data or crash the hypervisor in order to turn it into a CVE. My
understanding is that, in the worst-case scenario here, the guest clock would
simply get stuck.

> 
> If a guest has been running for months on a previous host and is
> migrated to a new host, don't we expect that the KVM clock of the new
> VM on the new host is tweaked from its default near-zero after
> creation, to some large amount?
> 

Regarding live migration, my own investigation does not show a proportional
relationship between VM uptime and the amount of drift.

Just taking QEMU + KVM as an example: suppose TSC scaling is inactive, the
amount of drift does not depend on how long the VM has been running before live
migration.

Instead, it depends on the delta between when we call MSR_IA32_TSC and
KVM_GET_CLOCK, and between MSR_IA32_TSC and KVM_SET_CLOCK.

The guest TSC stops at P1 and resumes at P3.
The kvmclock stops at P2 and resumes at P4.

We expect P1 == P2 and P3 == P4.

On source host.

- kvm_get_msr_common(MSR_IA32_TSC) for vCPU=0 ===> P1
- kvm_get_msr_common(MSR_IA32_TSC) for vCPU=1
- kvm_get_msr_common(MSR_IA32_TSC) for vCPU=2
- kvm_get_msr_common(MSR_IA32_TSC) for vCPU=3
- kvm_get_msr_common(MSR_IA32_TSC) for vCPU=4
... ...
- kvm_get_msr_common(MSR_IA32_TSC) for vCPU=N
- KVM_GET_CLOCK                               ===> P2

On target host.

- kvm_set_msr_common(MSR_IA32_TSC) for vCPU=1 ===> P3
- kvm_set_msr_common(MSR_IA32_TSC) for vCPU=2
- kvm_set_msr_common(MSR_IA32_TSC) for vCPU=3
- kvm_set_msr_common(MSR_IA32_TSC) for vCPU=4
- kvm_set_msr_common(MSR_IA32_TSC) for vCPU=5
... ...
- kvm_set_msr_common(MSR_IA32_TSC) for vCPU=N
- KVM_SET_CLOCK                               ====> P4


Here is my equiation to predict the drift.

T1_ns  = P2 - P1 (nanoseconds)
T2_tsc = P4 - P3 (cycles)
T2_ns  = pvclock_scale_delta(T2_tsc,
                             old_hv_clock_src.tsc_to_system_mul,
                             old_hv_clock_src.tsc_shift)

if (T2_ns > T1_ns)
    backward drift: T2_ns - T1_ns
else if (T1_ns > T2_ns)
    forward drift: T1_ns - T2_ns


Theoretically, if P1 == P2 and P3 == P4, we won't encounter any kvm-clock drift.

Thank you very much!

Dongli Zhang


From xen-devel-bounces@lists.xenproject.org Tue May 19 05:01:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 05:01:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312391.1582489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPCaN-00075r-1C; Tue, 19 May 2026 05:01:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312391.1582489; Tue, 19 May 2026 05:01:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPCaM-00075j-SP; Tue, 19 May 2026 05:01:42 +0000
Received: by outflank-mailman (input) for mailman id 1312391;
 Tue, 19 May 2026 05:01:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wPCaL-00075K-31
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 05:01:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPCaJ-000Wv3-Vf
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 07:01:40 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0beea9-2eae-0a2a0a5409dd-0a2a45098432-30
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 07:01:39 +0200
Received: from [209.85.167.45] (helo=mail-lf1-f45.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0beeb3-2497-0a2a45090019-d155a72de11e-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 07:01:39 +0200
Received: by mail-lf1-f45.google.com with SMTP id
 2adb3069b0e04-5a8d1f43432so5642360e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 22:01:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779166899; cv=none;
        d=google.com; s=arc-20240605;
        b=IADRQcWBrBcEFTgcF+z5BddVeQ2wQSmdps/CzVG42gQY8sB6Pk7vq7ibAy0daRPbue
         juQscHlV8raWo2XAN2UuiMUTrylCKHDp9aGx9nCHF4QjP3YTxvISFBnKa4+ZTVA1DTKu
         uLTEf2t8L5mBpS5Ex/Yl+l39KJI+qrdEWo9pxPxKcgkPirQCFUZakR31IhzDVFf+GAzk
         YvI/mqFC8lmml5tzLnrG8TAR1/K+A1yr1X/xY2uW1DaDF7KRqO+vLRYn+dlGiLWNKKpW
         dWyT/dCpbv19F4eNk3VyfifKNRboIrMeFKfU7tDQzpg4kCn4dStD4GdMHSvSGs3fw1LG
         W2Ug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=hTy/+IFaQjdkHID9o6qdzYbGMtuAqjMfzGV2qdYxS+g=;
        fh=uWsTkjyBGGFEWoM6xZO7XjUPbTD7WoYscIlYAYCsDeI=;
        b=dTcntxtGrwUWIsp0VxVYIOWVEQcv5aDVGNJREZtFQIvdiqSu7pijiNeuRk0Aw8g3pJ
         TO7BHu70cbVOMHhw717Ozt/6u/LS/YGuw0PMwqdc+AzxeHcgjpHLoQAw/p2MucmmkHQe
         lX7LzCxqnO56EwYRIzEtBqLSWXcPhgk3KQExNjcPeEZGqOtdMxHSNxwK7TBhwRZYYcsX
         m7WD6xol6sbQwH+kZisawHtpQAAaqx+wG6aWtqvP+6V5pfRdLSDFnjMm7mZdk3dqo5LH
         fXOZVN6z0iP8O25J0sFy81XqNxOKsL0pArm/nhSvAsGAacTdNXdpRwIGSO8RhV9YiEI8
         gueA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779166899; x=1779771699; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hTy/+IFaQjdkHID9o6qdzYbGMtuAqjMfzGV2qdYxS+g=;
        b=pAfj2SGBRyDfnkjJW0Kjq2hdY/gc0L68Yho1OSAANwzVMJRHTuribks7rO6QLIiKNo
         39UucQsc5OO7s+YUuz8zTdvjNqu35ZQFiY/MEc59lXoSp80At9Tg6xzIrJH0euY63PRW
         MCb7Q/A98+0/NM+ekqoCb3ekJShMa5Av1a++1M8aYsDzAizVz7moIjkNOD6Sma8FtsxJ
         P/Xr0f+aFf8Kdb0Bj4a7cdaZgrqpvJzlB3SrPOeQZ8Vg+URkri18fQej16tetH96+D/v
         W1rB8BPi3ZWImKGTj2xpSIdIj3Hkrk3J/M8FnVDWQLP7cs+cQrkckAukAZOMDDA/yLdq
         bTpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779166899; x=1779771699;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=hTy/+IFaQjdkHID9o6qdzYbGMtuAqjMfzGV2qdYxS+g=;
        b=LYCpiqhne6PKKYXuOqzCdflW218pfl5pvWPrBkB2fPUhy5sJJg+4u3zOzRqoXV2znd
         KNAHGbpXLEfvQQyac6NQj2iLGgq2UmRbDnIc1cZqFm9xQho1MuoH//DLwmhJatDVqWzp
         jw6sxGRNAtenm8smDd/3SIa6ts+oIuUiJz/OFi3c7thAMlNiMGk5lvv3LG5K3zK31Trg
         KGSzD8pz+OVDjaI2FzPiCDYlF5Xu3k2LaHmUEDHYxQ5625XC7jaJ+WirS9OUrLY/mhpc
         Y4IzS4bri83SfjWdg4mNWimxe7R2Pogkqv3EGtfEJFrXvcTvSqMXH0alOSiVG1SUyIHY
         4ghg==
X-Forwarded-Encrypted: i=1; AFNElJ8zAq45TcdsjmJyDB4BzT/V6/CcDwzs6uuB/AaanM7EvEaoanwTha1sVDy429wt4bIzle7Sm3QLViE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YynM9Yv2QzAptr9gDe8L3aFLZem/D0lYa/LZILbheIH9zIHdmnx
	EjArPI16pBBG1cMHOMQMMJ0cLMYPuGKHtnGexUkXCOTBuJ0D755O71PDI6Ms7bUO09l7Vfujfaa
	E3PvRYwZIqdm33bS0xioyBUghQItUQPw=
X-Gm-Gg: Acq92OHTWjx2o5Ip+aPn3KLRb51r3e1dTaCiSc/eBZESn9mCR70gmh5bcR0OfrP+DtD
	ly09qpMLGxm8lGxmY5zI/7W6XFw+JH+QkC+pVR8j50Tgwkv6FO2JlB4rTQd7Exl8e4anrHTGhjT
	82scuj/+HpFPT37x5ZWja8jYCWJsVnsR5wy8bOeHP8wMhIuycWDQtQqRk8LUZHIH6uzvwQWikBe
	d7j/cpeB2PB1b1w82aPmB1/EBytb2Ykc+k2ht5senVM+3yLizF/BeBfhdWlyqZwMRhO6CsZmfmy
	Yp8DWbdAKKVIY+BRqghz18TPaQ==
X-Received: by 2002:a05:6512:128a:b0:5a8:65ce:e83b with SMTP id
 2adb3069b0e04-5aa0e60cfadmr5665126e87.7.1779166898676; Mon, 18 May 2026
 22:01:38 -0700 (PDT)
MIME-Version: 1.0
References: <20260518224652.422864-1-edgar.iglesias@gmail.com>
 <20260518224652.422864-2-edgar.iglesias@gmail.com> <alpine.DEB.2.22.394.2605181739130.4460@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2605181739130.4460@ubuntu-linux-20-04-desktop>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 19 May 2026 08:01:27 +0300
X-Gm-Features: AVHnY4LRTH3a7URg3wiw53yOPEIfh1D9K5AvWikCQZvFc3s-s-o2DeunEzVJnMc
Message-ID: <CAGeoDV-4=3WSjA5nvwwvpgY7GYg1Yx4Pwr-dtDGROm_UE55kCQ@mail.gmail.com>
Subject: Re: [PATCH v1 1/1] xen/arm: gic-v3: Fix wake-up loop in gicv3_enable_redist
To: Stefano Stabellini <sstabellini@kernel.org>, Luca Fancellu <luca.fancellu@arm.com>
Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, xen-devel@lists.xenproject.org, 
	julien@xen.org, bertrand.marquis@arm.com, michal.orzel@amd.com, 
	Volodymyr_Babchuk@epam.com, edgar.iglesias@amd.com, 
	oleksii.kurochko@gmail.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-bad1c0/1779166899-8B193A53-1F950A3F/0/0
X-purgate-type: clean
X-purgate-size: 1347

Hi all,

I think this issue is already covered by Luca's patch, currently under
review:

xen/arm: gic-v3: Fix redistributor wakeup polling

Best regards,
Mykola

On Tue, May 19, 2026 at 3:47=E2=80=AFAM Stefano Stabellini
<sstabellini@kernel.org> wrote:
>
> On Tue, 19 May 2026, Edgar E. Iglesias wrote:
> > From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> >
> > timeout starts as false and is only set on the timeout break, so the
> > loop always exits after one iteration and a stuck redistributor is
> > silently treated as woken. Use while ( 1 ) to match the sibling
> > gicv3_do_wait_for_rwp().
> >
> > Fixes: bc183a0235 ("xen/arm: Add support for GIC v3")
> > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
>
>
> > ---
> >  xen/arch/arm/gic-v3.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> > index 7f365cdbe9..f03217282e 100644
> > --- a/xen/arch/arm/gic-v3.c
> > +++ b/xen/arch/arm/gic-v3.c
> > @@ -828,7 +828,7 @@ static int gicv3_enable_redist(void)
> >          }
> >          cpu_relax();
> >          udelay(1);
> > -    } while ( timeout );
> > +    } while ( 1 );
> >
> >      if ( timeout )
> >      {
> > --
> > 2.43.0
> >
>


From xen-devel-bounces@lists.xenproject.org Tue May 19 06:02:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 06:02:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312399.1582497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPDX5-0006cz-Us; Tue, 19 May 2026 06:02:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312399.1582497; Tue, 19 May 2026 06:02:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPDX5-0006cr-Ru; Tue, 19 May 2026 06:02:23 +0000
Received: by outflank-mailman (input) for mailman id 1312399;
 Tue, 19 May 2026 06:02:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPDX4-0006cl-0g
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 06:02:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPDX1-00Bx6e-VH
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 08:02:20 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0bfceb-bab6-0a2a0a5309dd-0a2a450adbc6-6
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 08:02:19 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0bfceb-56b3-0a2a450a0019-d1558033bdc2-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 08:02:19 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-488b0046078so27696835e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 23:02:19 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9ec3acf7sm42690385f8f.12.2026.05.18.23.02.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 23:02:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779170539; x=1779775339; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=p/DK0s7v7U+RPrJSx81Zz5ELjYkahZDDMXmyqQaWpqQ=;
        b=QCc0drcnK08BLCHmCgEZLj3k696z34hb8LoxIGCyYSEQ7qM4lY7xJyLKm1SkmH04zb
         tunFCtDXbKrR/mRtNmi1s1l/9GpZgSJRCreQj5zv0q5Coiqu+6kyEgFKzP/npW2qp7fq
         w4/kDwg25yEYYj3RvvvAqKarn8JcGRXuXtR0klizajL6+AlIqMqhfMdaaRslIJk3e0XZ
         KnyYW/J02Cgh+JTQZ1McN7a8SRxwKM2fbcIrfw4BWkemN1/p+PyrtgVsmVgfiZKv7nM8
         /YMutYN3B5fGUtW8Nwm82lSBW+HISczHGZATdF0WYe0kGi6vHXmRJ909R805xEyFW4Ub
         e1kA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779170539; x=1779775339;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=p/DK0s7v7U+RPrJSx81Zz5ELjYkahZDDMXmyqQaWpqQ=;
        b=RL2qHqWkRgQ94b2QvjVZyFFPi1Oh2ry48PPhX2B/gR5GiRwEGoAy26R5KaBiJQqIHq
         7W5t92QI5s89kOrbdQuBmb6wCzv0JngDBreCyvbJh16WJYDIO2kXvkhyxspqYRGg3A0N
         l0rLVR5RyHBI2ptxIEfWA8pgsezKPcmr2w+5a7gCKC21Snaw6tKp70DCQ/10X/rKV25Q
         Kpq77UoHMAxZfs6kOseuVcSmBoFpV+NQAO6LXMloLah93P6orXaxf6SSPNuduOIX2E/O
         n8lGuK319JnPeeKgIi9u613oK1nGnhHIfIRNRXvCqUvejAB2Tctm9Dggv6ZzvRpwl7pn
         mBkw==
X-Forwarded-Encrypted: i=1; AFNElJ+bKy7JZzDGydYCBNklV13DcawhhFbtTLyEP4ThW0w+EBMJ3I4mW2me4e9S1J7NmdIbEWq3tGlQJHI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwOrH9pP6OSWRlHJpIgAbs9U55v38Le2nAMMENoFfkwoconG4yG
	Df8LBeFzohe2XGorvVehJPetTur8drQRj8qhkl4cViqYZAHOuX6ZSyDjXNJ7SHKPxQ==
X-Gm-Gg: Acq92OHklrQV/MRzuqsNl/XpHjp3xeySqHXgE2RA2CMHMj20Iuh9AzNxD5JsRnCgBKV
	4GMZPmgFDIl3rnvsgES5Ob/NtJE7vRkEy8jTG/ocwdth/YkDI6HuWizjbFL6qGjE0YJ5P1SVeqY
	LMaAXoVio6kUpTbMJYEZevZFgJNyS8Ak9QM4TRwVoNll5DcpA0Dk80ZxCNGlD8m3pN454a3Vg1E
	pJ2AVXqE75t1ipEEhw+SZPn6EW8DK12f4YekP8dlM5ZATml9orNhX8erZ9k+rlB4GJM7sGb0ytj
	IdoviQeWpHAnvKjKC/ekYEHsDk1KctT8v1AhWyt2wMjFHPHfxGbQaHJQ1E7hcfwKdRHWqc23IVc
	zNkSzopllHztLEi26lYgq1d5SWyyF8TIKG93Kv+UfXUMUkKfjedMyqgnarUm0v073uA5zchfwiE
	JqhLKJ3a6+eO6CqP8YllabRldXrRrl7TEabO3ZkepJDuCw2mVDGryEaDxZTIdv6Ab4eZE5QlBNv
	ImOdDG5qJ4yD7U=
X-Received: by 2002:a05:600c:1d0d:b0:489:1ff1:74df with SMTP id 5b1f17b1804b1-48fe5fcdf50mr265359825e9.1.1779170539149;
        Mon, 18 May 2026 23:02:19 -0700 (PDT)
Message-ID: <6430026d-dfa9-4006-86cd-e228625a1914@suse.com>
Date: Tue, 19 May 2026 08:02:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/5] RFC: pci: Migrate pci_mmcfg_{read,write} to pci.c
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117765.8631fc262581453bbf619ec5b2062170.19e3baeb295000f373@vates.tech>
 <7ac53569-acca-44f7-a129-99b5dcb97500@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <7ac53569-acca-44f7-a129-99b5dcb97500@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1779170539-7CE7B8B7-51AB3EEE/0/0
X-purgate-type: clean
X-purgate-size: 4300

On 18.05.2026 19:35, Andrew Cooper wrote:
> On 18/05/2026 4:21 pm, Teddy Astie wrote:
>> --- a/xen/arch/x86/x86_64/mmconfig_64.c
>> +++ b/xen/arch/x86/x86_64/mmconfig_64.c
>> @@ -133,6 +46,25 @@ static void __iomem *mcfg_ioremap(const struct acpi_mcfg_allocation *cfg,
>>      return (void __iomem *) virt;
>>  }
>>  
>> +char __iomem *pci_mmcfg_base(unsigned int seg, unsigned int *bus)
>> +{
>> +    struct acpi_mcfg_allocation *cfg;
>> +    int cfg_num;
>> +
>> +    for (cfg_num = 0; cfg_num < pci_mmcfg_config_num; cfg_num++) {
>> +        cfg = pci_mmcfg_virt[cfg_num].cfg;
>> +        if (cfg->pci_segment == seg &&
>> +            (cfg->start_bus_number <= *bus) &&
>> +            (cfg->end_bus_number >= *bus)) {
>> +            *bus -= cfg->start_bus_number;
>> +            return pci_mmcfg_virt[cfg_num].virt;
>> +        }
>> +    }
>> +
>> +    /* Fall back to type 0 */
>> +    return NULL;
>> +}
> 
> This is a horrid function.  Accessing and modifying bus like that causes
> poor code generation, and by now having this in a separate translation
> unit, the optimiser can't fold it into it's single caller and undo the
> poor decisions which went into writing this function.
> 
> Instead, you want:
> 
> void __iomem *pci_mmcfg_base(pci_sbdf_t sbdf)
> {
>     ...
> }
> 
> base which takes care of the bus adjustment internally.

If the updated bus number need passing back to the caller, what do you
mean by this? With two values to pass back, and without resorting to
returning a larger struct by value, one pointer parameter is going to
be needed, isn't it?

>> diff --git a/xen/arch/x86/x86_64/pci.c b/xen/arch/x86/x86_64/pci.c
>> index 8d33429103..c37e3edade 100644
>> --- a/xen/arch/x86/x86_64/pci.c
>> +++ b/xen/arch/x86/x86_64/pci.c
>> @@ -11,13 +11,123 @@
>>  #define PCI_CONF_ADDRESS(sbdf, reg) \
>>      (0x80000000U | ((sbdf).bdf << 8) | ((reg) & ~3))
>>  
>> +/*
>> + * AMD Fam10h CPUs are buggy, and cannot access MMIO config space
>> + * on their northbrige except through the * %eax register. As such, you MUST
>> + * NOT use normal IOMEM accesses, you need to only use the magic mmio-config
>> + * accessor functions.
>> + * In fact just use pci_config_*, nothing else please.
> 
> I know you're just copying an existing comment, but it's mostly an
> opinion and not terribly helpful in place.
> 
> "AMD Fam10h CPUs can only make MMCFG accesses via MOV %eax/%ax/%al",
> would be better, except...
> 
> ... this claim cannot be true.  It's been made since the K8 RevF BKWG
> and exists even into the latest PPRs, but that's simply not how
> load/store ops work in the pipeline.

How do you know what special casing there exists (or has existed), or
what (e.g.) bogus(?) SMM intercepts there may be? I'm pretty sure the
Linux change was in response to things indeed not working otherwise.

>> +static inline
>> +int pci_mmcfg_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int len, u32 *value)
>> +{
>> +    char __iomem *addr;
>> +
>> +    /* Why do we have this when nobody checks it. How about a BUG()!? -AK */
>> +    if (unlikely(reg > 4095)) {
>> +err:        *value = -1;

Nit: Style. Yet as the comment suggests: Perhaps time to drop or replace
by ASSERT() / BUG_ON()?

>> +        return -EINVAL;
>> +    }
>> +
>> +    addr = pci_dev_base(sbdf.seg, sbdf.bus, sbdf.devfn);
>> +    if (!addr)
>> +        goto err;
>> +
>> +    switch (len) {
>> +    case 1:
>> +        *value = mmio_config_readb(addr + reg);
>> +        break;
>> +    case 2:
>> +        *value = mmio_config_readw(addr + reg);
>> +        break;
>> +    case 4:
>> +        *value = mmio_config_readl(addr + reg);
>> +        break;
>> +    }
>> +
>> +    return 0;
>> +}
> 
> Again, for this patch or a later cleanup, drop the output-by-pointer and
> return value directly.  The optimiser is hopefully doing this already
> but it also makes the function simpler.
> 
> At best, we want ASSERT_UNREACHBLE()'s in the error paths (including no
> mapping), and to consistently return -1.  Returning 0 for a bad length
> is bogus.

This looks to contradict the earlier paragraph: Do you want to return the
value, or do you want to return a success indicator?

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 06:41:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 06:41:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312415.1582507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPE8Q-0003Yy-OT; Tue, 19 May 2026 06:40:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312415.1582507; Tue, 19 May 2026 06:40:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPE8Q-0003Yq-Kt; Tue, 19 May 2026 06:40:58 +0000
Received: by outflank-mailman (input) for mailman id 1312415;
 Tue, 19 May 2026 06:40:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPE8P-0003Yk-7H
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 06:40:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPE8O-005ShI-JA
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 08:40:56 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c05ef-bab6-0a2a0a5309dd-0a2a4507e562-24
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 08:40:56 +0200
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c05f8-229c-0a2a45070019-d155dd32b1f4-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 08:40:56 +0200
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-448528f4e69so2023249f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 23:40:56 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9ed30110sm47025205f8f.13.2026.05.18.23.40.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 23:40:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779172856; x=1779777656; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OUXgLVmBVPIiMSKfHXDS6jk0Qd0XP7lL+x1l1bwIrGM=;
        b=A9awz4hOxdrA+BC43hGYDz5019n+pFZG2MgbSbtbxUWK+Dzqoi0Js/g0RhWTubHhXs
         IGiEYScI4VPkG0aO7d+twu73n8A7LxtwA8usZLiwLeq1dsU0r7EU3Zvo3Qqp3LGE+McG
         cLutz++rp4qeEFzi7ZIr1lLhmw792WoiYlkVpvJS//tcUf8/M5gwnMaik2weftgjbm6z
         JzpiHCZ14ynXXWIRu7mtx/uHuIr2YL4WdOxg8SGR1VSH+80fFrRJlROM42/VIpz4dtDE
         SPKr3DuPtiuPo68SSDx7m3WXq1tjBW01yw7mUWlOkChTs/XKRnuQqvUpEgwy3UbDYMOj
         CnBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779172856; x=1779777656;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OUXgLVmBVPIiMSKfHXDS6jk0Qd0XP7lL+x1l1bwIrGM=;
        b=LocrRs/PRiHQ6fwPyhrvTJofQIpvYi00O5Z/WAHTq1v7Q1XggqCscolJ0t223ITGN1
         H2tNoX+4tBH2rPTR0ObxlxiB4YaMNUdM/B/e63EQWobyO/qwu4w48RmDfNchT+ftsTGU
         P0sIWCBo/whXdS7lpID6A4YY8J8UAPQVRGIvdZurZGIELhjMAJaZuqP43YHpc1+NJ5bw
         mDm8MoBkSdPjR2E4kC8ceeJ7k+WBTxElnFDwigvjECOaZ3Yj4WdwOskI9oO+RBh4bZc9
         kecYAfxZHgt7r2K4vutYNPOdl4noBh82H5AQLk31nAPKupxOhCg4/ad8alF/zbkKe/ki
         7MYw==
X-Forwarded-Encrypted: i=1; AFNElJ8ef7YVwS6r4arW+RWfZ9niSBZalelTS8Im/qvpoaMByIUeT/HUmIByHc161cG4gKAo+szK5LRlUoA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyCHFPIEKMw0tB2+6KmGLiVsyg48vHI1+/1ytqxrRRn7y2DOxfO
	djfgoLo2Pal3FRijXipqGrlExZKsQSRj4ggNBZHBxZtfjG8NkFv0D15lfq3AiDKbrw==
X-Gm-Gg: Acq92OE0nvtsAc7EqV6w17/91/hWo2iIvpp3LUjdp6Z8lPnZwxMmp/fP52wRAT9/PzO
	frsnOtsz7oWzDIIkMO97u5Ju0HuzmIesLW5CMFm+h4Xz+IyVRRD8Zo3u6R9GuslD+HXSdIoK5wO
	DOX4E6Mpn0KQ/ulzlFTY864Lvg/xjyWOHczSCGR0MqgZmNtqhg0ZNMRljK37/RzL5jYF/zFrlyQ
	arn7u9B3i3dOLCKN0cuvltFLcQcQnpMNwdW/uZnR+j03M/FNHT+TSKN4uCv4w5ZkfK6xzCAkOPG
	4vLtGyC1y+ISQJakjdFdm8rRTI1gHo7W26MKN3Nad22FnHasU/jKCoJ7NaTrKfZRw/wsIPKdOD+
	yA4GXfBmWIwBYATah67LV0WNfnOkMg1r54yh5f9aeMixKea0xMTGyFWKJTBB+lACklPJ8WZ1VRR
	jHJyCQSw3ynwfF4amnyCMgKfU23t0BF6ZCtbzTb2c09Sb24qigNF2BmVIsGx2k5XVM+/FygXqxw
	HIzIUkSCfeC/84=
X-Received: by 2002:a05:6000:2405:b0:448:5ec1:dcb5 with SMTP id ffacd0b85a97d-45e5c57d463mr29382650f8f.7.1779172855811;
        Mon, 18 May 2026 23:40:55 -0700 (PDT)
Message-ID: <9b8ec97f-02ae-4a1a-9abe-59873d574a64@suse.com>
Date: Tue, 19 May 2026 08:40:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/1] arm64: Fix strrchr() matching of null terminator
To: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
Cc: sstabellini@kernel.org, julien@xen.org, bertrand.marquis@arm.com,
 michal.orzel@amd.com, Volodymyr_Babchuk@epam.com,
 xen-devel@lists.xenproject.org
References: <20260518234353.453193-1-edgar.iglesias@amd.com>
 <20260518234353.453193-2-edgar.iglesias@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260518234353.453193-2-edgar.iglesias@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1779172856-21165C48-D50F316C/0/0
X-purgate-type: clean
X-purgate-size: 1693

On 19.05.2026 01:43, Edgar E. Iglesias wrote:
> The generic Xen strrchr() implementation returns a pointer to the string
> terminator when searching for '\0', matching the standard C semantics.
> 
> The ARM64 assembly version stopped as soon as it loaded the terminator and
> returned the previous match pointer instead.  This made strrchr("", '\0')
> return NULL.

I wonder though: Why would one pass '\0' to strrchr()? If you want to find
the end of a string, more efficient (at least in the general case) options
exist (strchr(), memchr(), strlen()).

> Compare the loaded byte against the requested character before deciding
> whether to stop at the terminator, so the terminator itself can be returned
> when it is the requested character.

Nit: "..., so a pointer to the terminator ...".

> Fixes: 42c4eb6a83 ("xen: arm64: assembly optimised mem* and str*")
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>

However, the function having come from Linux, imo the patch wants to go to
Linux (ideally first, but at the very least also).

Additionally, looking at strchr() - couldn't the code here be written in a
similar way, allowing to get away with just a single branch? (Arm32's pair
of functions is also pretty similar in this regard.)

Jan

> --- a/xen/arch/arm/arm64/lib/strrchr.S
> +++ b/xen/arch/arm/arm64/lib/strrchr.S
> @@ -30,11 +30,10 @@ FUNC(strrchr)
>  	mov	x3, #0
>  	and	w1, w1, #0xff
>  1:	ldrb	w2, [x0], #1
> -	cbz	w2, 2f
>  	cmp	w2, w1
> -	b.ne	1b
> +	b.ne	2f
>  	sub	x3, x0, #1
> -	b	1b
> -2:	mov	x0, x3
> +2:	cbnz	w2, 1b
> +	mov	x0, x3
>  	ret
>  END(strrchr)



From xen-devel-bounces@lists.xenproject.org Tue May 19 06:54:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 06:54:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312426.1582515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPELX-0005Mb-QJ; Tue, 19 May 2026 06:54:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312426.1582515; Tue, 19 May 2026 06:54:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPELX-0005MU-Nl; Tue, 19 May 2026 06:54:31 +0000
Received: by outflank-mailman (input) for mailman id 1312426;
 Tue, 19 May 2026 06:54:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPELW-0005MO-Sf
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 06:54:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPELW-002sa1-8g
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 08:54:30 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c0910-2eae-0a2a0a5409dd-0a2a45078e26-18
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 08:54:30 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c0925-229c-0a2a45070019-d155802bbd4c-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 08:54:30 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-488b0046078so28142595e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 May 2026 23:54:30 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe53ab671sm308183535e9.1.2026.05.18.23.54.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 May 2026 23:54:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779173669; x=1779778469; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Wmu5e1tpzklBOlYf+M5dndt3/PCcAx4cpV7DzEBBG3o=;
        b=XiLHlfOFsRc1U3T4elHD8Ra+Yonud4FtQukme8jIff5OvqKl0Ch1dS/CAT3FrG13sz
         iGdKQgf7g1bRBiFIyG6mqOFERND9jDaT6im1vEkv+3u6geRHTIWcwhE+nymHeFxta/n8
         0oQ14/J78Bd/3H4Z47ZuNh4TKiw7HarKe7dVH8zQon16m+oggF2e8pDL54y50b3Gblqn
         /6fwEpLnKs69umVB5PIl8rLcC2r3zOx7lyIseDwCyF0ml8evsRoaydFXd53uiIrGIeEj
         IiQbRf8Z60ToRJC+yWC14B0VfT/abjAoKU8hRTc+g4L7l6ExpiRiXvhKXAg0BfBYAEbf
         Cg8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779173669; x=1779778469;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Wmu5e1tpzklBOlYf+M5dndt3/PCcAx4cpV7DzEBBG3o=;
        b=tKCUvCHXlDrFa1qIdyAvxTIGHbE3IF99CjX5vG+z2ZLEJ8WSo1enJ4W2B05AC43xoB
         +HxCeZmPd5mPyiEnjfiQOcfCcddctIw8fVx09016ku+6EWq8GUPtgCn5MbK7PM3bzYNV
         6UTk5801O3um4rMmiEmqWWbcZ52v86O+PWUgjyX4a86Y8QBXazz2E3R7HXURU5T8Fheg
         VFIvsX8ydjcoQ260L50O/y7UbXZogzrRZ4sYlt8LyvELqWRh0BE7O9AUaK4+cg/DkhT2
         QdRUj1drKxt2b6GhieHKp5nXo+YQEDl5mhoTZa2V45Fq8zVD4AiVQieLgpL6j3Sv6oUj
         FJHg==
X-Forwarded-Encrypted: i=1; AFNElJ+28FLyLUVsQ/2GI1MtCummyFv5fNMsOyxphe0S28DIhgX3lL3bGajbSdIMgBeElDd0X+EQyQnmYog=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5SelpKgpu8FSq2nBCETSUJIhyG+pv35NLCWzPuVMlevRljl/E
	w6567vVjACkx1VmPG5X7WcG5BaVMmX07eZKdCRfuQw4ehGz9SNjM2Pz3Ru3LOUO+CyHF80o8g6R
	fvfQ=
X-Gm-Gg: Acq92OHr05wFWLIrgefJF7zciMYyWq+MQg+CiSGNPJZT5EmrDtQrvCPjmhkZG5dkDbb
	IzbyQFSBzftwqUKfVJKdNOtACpMTDp+5KY8CMtdyJrG2tAur7umZZ/bF4xn+Mb5XtDsa2a+l/0f
	OoUaVGpiPbjdofhLR+QWp0yxfyBdu5fizuecW6Gg3Bg0uj9KqVPOoxtS/uV5d4O/+MWd/FP0jlp
	fWRn8xI2AQax3cMWklDJkr/E9rSfnSNW5Z3+2v0bb9KKRh/m+pA+CiR98mlHd650tIdd1agOKHH
	drRJBpWHUDZxmva4tBv+FhcZUSbtG/8etJwz+HbCI2HvdQb7QU1otDK1Gv9irnWpyb9JIvNFIzX
	j9qsSPRUZO2Ph5aGfmTVJOnMYgTNfQFXOzg9WhPvTHjB5/KkM3jPnCxHE9tMJxfquCs8FZgPj55
	UinkjkLHd6r1vkJibHFEBX9WcdLx4EV7PyBguJneH3QikN3UbzoiU1W0WhXwVHUmpiD3WLMYqwl
	KItOTfQOejl9rU=
X-Received: by 2002:a05:600c:608b:b0:48a:58ae:9933 with SMTP id 5b1f17b1804b1-48fe61ed232mr288393135e9.18.1779173669612;
        Mon, 18 May 2026 23:54:29 -0700 (PDT)
Message-ID: <8b0ec241-4636-44ff-917b-1bdadc03f6f8@suse.com>
Date: Tue, 19 May 2026 08:54:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22(?) v2] gnttab: simplify (really: drop)
 gnttab_set_frame_gfn()
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Rafal Wojtczuk <rafal.wojtczuk@7bulls.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <6e3dbb4f-5849-4525-8f8b-a2818c39da2d@suse.com>
 <93e15ff8-a313-4f19-84f1-2906cb2ade1b@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <93e15ff8-a313-4f19-84f1-2906cb2ade1b@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1779173670-2176AC48-810B261D/0/0
X-purgate-type: clean
X-purgate-size: 1007

On 18.05.2026 20:00, Orzel, Michal wrote:
> On 12-May-26 16:46, Jan Beulich wrote:
>> --- a/xen/common/grant_table.c
>> +++ b/xen/common/grant_table.c
>> @@ -1844,8 +1844,7 @@ gnttab_unpopulate_status_frames(struct d
>>          {
>>              int rc = gfn_eq(gfn, INVALID_GFN)
>>                       ? 0
>> -                     : gnttab_set_frame_gfn(gt, true, i, INVALID_GFN,
>> -                                            page_to_mfn(pg));
>> +                     : guest_physmap_remove_page(d, gfn, page_to_mfn(pg), 0);
>>  
>>              if ( rc )
>>              {
>> @@ -4285,8 +4284,6 @@ int gnttab_map_frame_begin(
>>           */
>>          if ( !get_page(pg, d) )
>>              rc = -EBUSY;
>> -        else if ( (rc = gnttab_set_frame_gfn(gt, status, idx, gfn, *mfn)) )
> status is now a variable that is set but never read. Remove it.

Oh, good point. Thanks for spotting.

> With that:
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 07:18:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 07:18:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312444.1582524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPEiW-0000JS-NC; Tue, 19 May 2026 07:18:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312444.1582524; Tue, 19 May 2026 07:18:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPEiW-0000JL-Jz; Tue, 19 May 2026 07:18:16 +0000
Received: by outflank-mailman (input) for mailman id 1312444;
 Tue, 19 May 2026 07:18:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wPEiU-0000JF-Jb
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 07:18:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPEiT-00B4DR-OI
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:18:13 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0c0eb1-5cb7-0a2a0a5109dd-0a2a45028608-20
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:18:13 +0200
Received: from [40.93.196.40]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0c0eb3-af86-0a2a45020019-285dc428f5f3-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:18:12 +0200
Received: from MW4PR04CA0103.namprd04.prod.outlook.com (2603:10b6:303:83::18)
 by CH1PR12MB9720.namprd12.prod.outlook.com (2603:10b6:610:2b2::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Tue, 19 May
 2026 07:18:06 +0000
Received: from MWH0EPF000C6185.namprd02.prod.outlook.com
 (2603:10b6:303:83:cafe::b9) by MW4PR04CA0103.outlook.office365.com
 (2603:10b6:303:83::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.24 via Frontend Transport; Tue, 19
 May 2026 07:18:06 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MWH0EPF000C6185.mail.protection.outlook.com (10.167.249.117) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.11 via Frontend Transport; Tue, 19 May 2026 07:18:06 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 19 May
 2026 02:18:05 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 19 May
 2026 02:18:05 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Tue, 19 May 2026 02:18:04 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=f3e/2eRUQ0Badfmgjw/KIOaxzDP0aGy8KzNZVTWEVcRA9WZL5Xigi68Aa83bcsv6q/iwOJe1aJ61IoPFhP7ShUj7D6DszHcStfCMkB0oAevIVjGxp+qTbyFQ3a2dNFZqQVFvvaXyE4oVw5g0nDxp7rnkJDScGlOrTBnhqOJZLM7noTgsQM2NMxHMfjb8/pznelKf/W7UcdPXpCq/FyoJXLtTD+fnvf6ikE/aKD2WgoMr8GzwbhYMGQmOjwHUIl9t0AzQiqlOr3h3+Ac/bxe7i0i47T78x5qVHCDWgjChJrYP1WWKUXnZIT3TZAUhrLZ9/31ERm15Wsvj05UgnRyagQ==
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=z6DXF+5SNF5nG/qNAlhWLWLmob/3IjBO1EuTs+J8XOU=;
 b=cHji3KUhzOdBcTq1BJQet3Ry5c+zISuWcOH4cjg82DAn2pLxzCki5QyTORlYPooj2LYR43/WHL0S/7E6Q4HVQrFcARrPUdKcKbuuQuCyFpWjwE+BcODnlNyuFBTlYiZMmfjnDNVr7Gp5WbXRDiclhGm5Z9E3tlc+FN6qJWC5UiRbbGa0vTz2pNjTb8LbsxXSR4EH8dakhcMfQA30XvLY11FCnaZFgRVRxLuas4g1ng+54r+n1wBbIbEGR/22FYhf7hB8aHLVblfen0P4O4IU4Fwi/84LYVr6o7evHleERW/PwjxqSFbrQn0h1QIpy7k2Vid+BdojWAbdEtG+otLnHw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=z6DXF+5SNF5nG/qNAlhWLWLmob/3IjBO1EuTs+J8XOU=;
 b=eJnohMO4+BxQwYQppazJDCh7UCKc72fJURs+CDS35KaEBJVOO7oasrDUdGfxBG8YLpTxawSr66JPWApZqbH3+ToIcx8Ja7ZSG93nPKDWTArMJXH7W3H1iHlKF9+wgaDOwtp6MsjM2xxFa5ZsHMKdJAcUVB8T7KeTURpL7J5NINY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <b2a81cec-7e93-4441-832f-ee9cf06d168c@amd.com>
Date: Tue, 19 May 2026 09:18:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] arm: Fix PT_PT table descriptor value and comment
To: =?UTF-8?Q?Gabriel_Quint=C3=A1ns_Souto?= <gabi.qs.mail@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <julien@xen.org>, <bertrand.marquis@arm.com>
References: <b0a7dbdf-775a-45e2-bee4-d234ca21c002@amd.com>
 <20260518210340.81347-1-gabi.qs.mail@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260518210340.81347-1-gabi.qs.mail@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000C6185:EE_|CH1PR12MB9720:EE_
X-MS-Office365-Filtering-Correlation-Id: 2df34451-e763-4e05-6e96-08deb576c5ed
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|82310400026|376014|1800799024|18002099003|56012099003|22082099003|11063799003|4143699003;
X-Microsoft-Antispam-Message-Info:
	UwEq6pqGuPamofkJuQsL57uE5bEJ6WMqkkcuMW4cNnY3O13Gzwo5Q8iQOnVS+/TTgVglbJErKa2rNJHVArxMaw0HEuRHENWeDT9gzuVSQNJlXAZGWoCxj74TkF7dwzsL5rOBUw00Ba2TLWSJu/YSxZtcC04XWaiJmoDDURMUHgHGDePTTrpAjM9406cPwGyYAcT7QQAI7kugUSLLbrqhVdc3x6I3wCqjIf+fhGa26TfUq1gHQ/LFIJEBO3+096/rTDNDX2k2Mu3Lng5H/RMT/AEdTmCCOdAojOIktXNsZe05rBE2NX0GDYdYppHrBBerC7mxFxoD33qgR42KsD2e/O9ICXaRsP6XMPmlmaGSgDW8YYFPQvJobmLkPnGzT6rTcQfQXqSyVmut1Vqp9zxzs4LFRWSMvdcVPvkG3TQMEgU3nxwBeSU22wOB01h4XozUhys0x1WvCwF13JV7CQSW5YXxZefgNSqZZQ5PX5XTvebP3E0eFfV6eCBX+MxN68VVgX+jfLRrrPn3wfL14YRvIbsrf9f0d6k0029mYvKh+tncaF99ZFCMBa5Qc8rc/hOkGMHu54fsNI3rqpDkS9rgNY/uPCaabWSgHh4xBxWRTAbGGtGQUnhMJQaxC2BZpBp7t13GoyQwb0qDanvDJSDDDeZcdRUqyvJysl0WQ9rf981SOynIXcCk0TP5jRZE7GCCnQEaqYusKRLgXBTjrGL9NwZ15C5kxKPCzDE0XcjEtJQ=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(376014)(1800799024)(18002099003)(56012099003)(22082099003)(11063799003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	LnTbfsHVqKZDXaA0LLaFPS+YWMU4FWcWAmPGdUX38iE/grma0ODqQw4yGWC3CGDE1CjPlvnhKXvQPdBrGgIDgWh7ruxhCI0FZyingkKzU4fXTVVV1WeQJvipytea4q6Rh/tjzuK6iOVjjtO1ENUXMhbcOH9EdE+6Gqm0z2ECT8iQVQkfJG3QU9pTxwEuvt4qztVeQ+hyoU4O4tM2e+iXRiVaivsSJkSXSs2ctmCLbDGbA7LDlP9quZoiTlErhxCkA0av4Ookj9GNRWh0ntwKiH/+1FwFkqSHiZuyxiQcvWFe2evP2QC+KCkgz6sVX5cZO9f++88oJr9f1GBdSa2fzsa5Hl1kAqTHeUmrGRzGrxbJYiTxwiyoFCfOHtNzekLnbQFyT0uLOgtyzVrp5pyyKiY/MH5+uvrM84X8AHQ+aO5Tkz3rCb4JlnnwcRO8eFe/
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 07:18:06.3277
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2df34451-e763-4e05-6e96-08deb576c5ed
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C6185.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR12MB9720
X-purgate-ID: tlsNG-720697/1779175092-A8D7F161-A19976C4/0/0
X-purgate-type: clean
X-purgate-size: 547



On 18-May-26 23:00, Gabriel Quintáns Souto wrote:
> Per ARMv7-A/ARMv8-A ARM, bits [11:2] of table descriptors are
> ignored by hardware. The original comment incorrectly described
> block/page descriptor fields which are not present in table
> descriptors.
> 
> Use the minimal valid encoding for table descriptors by setting
> PT_PT to 0x3.
> 
> This updates both arm32 and arm64 for consistency.
> 
> Signed-off-by: Gabriel Quintáns Souto <gabi.qs.mail@gmail.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Tue May 19 07:20:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 07:20:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312449.1582535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPEkX-0001jx-3g; Tue, 19 May 2026 07:20:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312449.1582535; Tue, 19 May 2026 07:20:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPEkW-0001jq-Vp; Tue, 19 May 2026 07:20:20 +0000
Received: by outflank-mailman (input) for mailman id 1312449;
 Tue, 19 May 2026 07:20:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wPEkV-0001jk-Qn
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 07:20:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPEkV-005ckq-6x
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:20:19 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0c0f30-5cb7-0a2a0a5109dd-0a2a450bee00-4
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:20:18 +0200
Received: from [52.101.193.56]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0c0f30-212f-0a2a450b0019-3465c1386552-4
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:20:18 +0200
Received: from SJ0PR03CA0158.namprd03.prod.outlook.com (2603:10b6:a03:338::13)
 by DM3PR12MB9391.namprd12.prod.outlook.com (2603:10b6:0:3d::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Tue, 19 May
 2026 07:20:11 +0000
Received: from CO1PEPF00012E84.namprd03.prod.outlook.com
 (2603:10b6:a03:338:cafe::17) by SJ0PR03CA0158.outlook.office365.com
 (2603:10b6:a03:338::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.12 via Frontend Transport; Tue,
 19 May 2026 07:20:11 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CO1PEPF00012E84.mail.protection.outlook.com (10.167.249.59) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.11 via Frontend Transport; Tue, 19 May 2026 07:20:11 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 19 May
 2026 02:20:06 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Tue, 19 May 2026 02:20:05 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=INPl+KLtWhyVoK4b0YOjtJ8HG95Z5qRIiNt5OvTHDuENZlym2WbIRsXT2HNDi9JKXe1BI2nxFnZMGmT0UC0BrMjPmFyjLOTsLxoBQrhYx2jbmwWPvwfUXlFCotl8rIDEiZzgcJ4EFfIZ8PNLNwqYTkaPy5sDdF96Z+xWZfU9KIY1DT/qE04mxkCpM8ikw/jKuY5UyYYY7s6KSBouT6A/XJMVcx/LGDQ4/n3Y5AtQRBaQWowonXRsGlSLu+xEjeqcYJDiyxTnIx8vX10FQGYubnMbb71Vi1SNG8x72IvuxytoMa4fnTecSSboW3GwaNb0z87wjUrFnN2iQMOFSXfrkw==
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=Z16yhBir+oCgVOrPPXL53jORhztnzJIqAkRmY0B6nyA=;
 b=asv7GoP4bGbDbacKkYJF2Aj4IjniioqEOptxhkbfXfeGFLqoyEt+YMLoyV/eyTuXuxSw9GgKhDRDECPrnj3e6QmijyCX2fxyqLrrFOlXsUBYKGDVd/+mVL/MZb4BGA1dGHLcbvYmmX4NIEB3/Vybk3mfiVRo+5Ziw8Y0fe/rTFPLO8K4xJyT8SvANXQXbuu4sKQxE8IuFS/sTBjFH2mr2gnjVxxbHDu7HiaPZ2iSPfstjSz3D9VUhIgUK4CfykDZGw/3LGzGIretNup6KEfnITxFFr9c9zwOOY3cECGF9yh63tZhP8OcLa5xkjBEy8mU14g8oABaZaKyaK5EYCuXtQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Z16yhBir+oCgVOrPPXL53jORhztnzJIqAkRmY0B6nyA=;
 b=DHTp2yX4+bbT74XOop1HN39a0QTVqxWSM0LQMDU9AdwrjOA3MbFtX3s/qyDAd2kRp5VpaUfpaU7N+oAYD1Zs+E/XB5b2M2290K1sDXaq4TuE9XjwKZCx6pFBmptPt7w9PAo0c/YX4ay8u1DJTVW9spsDxkObP5UnrN54CQsTOY4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <64094528-9c9c-47d4-98b6-640df0a9df3b@amd.com>
Date: Tue, 19 May 2026 09:19:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: gic-v3: Fix redistributor wakeup polling
To: Luca Fancellu <luca.fancellu@arm.com>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
References: <20260518070524.19813-1-luca.fancellu@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260518070524.19813-1-luca.fancellu@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF00012E84:EE_|DM3PR12MB9391:EE_
X-MS-Office365-Filtering-Correlation-Id: 2a0367f1-186a-4c68-73d3-08deb5771046
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700016|1800799024|22082099003|56012099003|18002099003|11063799003;
X-Microsoft-Antispam-Message-Info:
	2W3i1qeab+QYwrAZLReEpOsxJzQ2O2un6CPdH0CdJZ6Xy/gL8pw2ruKpeIK1a657Zcxu/UhSC0PAiFQaRkYbW3jcOW2ZPp0qA58gYY9zMPfg/EyvafvLApLmNWERynW6VDTU6z0hDOAVa9XU0iyenHqV4tCgUZuW7y839fHbCV+fqNh1Kz/hyKi+Y0PLwyK77vX9D5H1TRInv8MxMZZM/ezoTfG6STrRe0glFa2GEAbSBf8IN/tXz3JlNCpvpLgFbNlOeuWpn4CrFmhlA+O0xHmBlhrZxpUY7I4lDtDUcXe+aMfyXHbWbavbfmny9ZUwW+qwpTbd0NQlYn1/HxUSgLy8xKxvzRtQNOM5DJNooeoU6rXaosFPsdsptGMtgem2THtHGe9DxG9GQ99JURG3RN5S8VhvcFPRhtZNwKoIgJfjccV4TlTtpXIqMmUF8Osd/HhlxF9pBavrkKehT31mzbbmej0243GP7kzxTOD0ZZUITAxedukKR+zS7ITcF0YdBxWX2VZ4zRENE95TPFaErvSUBm1kDEPYVkmVfsYqndHBhSpQY/CVsjnQRkCADuHG6C8KjfMz9caUpo8BnCtDE6OwOnu4lKhgTzppIrAIjYAV8pMYBx8g2TfjNopl4AYRx/WvCKPEROquj2IlSpZuPdSvgvep1KknVnIsl5y6YV1ov83dLhNV+qxmvhEbPgz6YidqSNYg1rlXRBYs7rApw4WYf6Cs4jyOBBJPWlwHh/0=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700016)(1800799024)(22082099003)(56012099003)(18002099003)(11063799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	mAqnxGS7cBy3QlpbAZwULSwesazYpXzub6bLJWx0M/fW8h2WyhbatBQ9mCl9H4ZTRoPehGjI/Og6MXc2AD2SUrvYzzyia96pG6t5ztJRl9IL+to+YrhjfredKIHX8njRc5/YiJhKm8o3ciXYWgY9F9MXF2JdbklLGCNbkl0rhDrM7x6fR5pl7o5g5ZgifyQYA1Je3FTdpAFv17G43I60DirxsCfoo+bjJkSXXMvg1W+t15lpF+M73oXJu1R3pd8vgupQ7ugvHxRfZRFC4jynjqgaNlqnB2wlodoUw+xgtqvEfahWVQODBcxJdIq9SKe3Pfk3qidVtcX0dtZVzumRLGPrssd4AWDP/j7/FPgWT1Y6d/fx1Ro+lE9MiAY1pwcbNHPYfnn0tgvDaPX6Ca2WEtY6H5AT/fIjWtEIxVgdeNnmLFRsnKJw/Dc5EWJEaWYX
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 07:20:11.0637
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2a0367f1-186a-4c68-73d3-08deb5771046
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF00012E84.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR12MB9391
X-purgate-ID: tlsNG-42698a/1779175218-13F7EF3B-BB960D17/0/0
X-purgate-type: clean
X-purgate-size: 967



On 18-May-26 09:05, Luca Fancellu wrote:
> gicv3_enable_redist() clears GICR_WAKER.ProcessorSleep and then waits for
> GICR_WAKER.ChildrenAsleep to clear, as required after waking a
> redistributor.
> 
> However, the polling loop currently uses "while ( timeout )". Since
> timeout is initially false, the loop runs only once unless the timeout
> path has already been reached. As a result, Xen can continue before the
> redistributor has completed wakeup.
> 
> Use an unconditional loop, matching the surrounding timeout/break pattern,
> so the code polls until either ChildrenAsleep is clear or the deadline is
> reached.
> 
> While there, also fix the timeout message. This path polls
> GICR_WAKER.ChildrenAsleep, not an RWP bit, so "RWP timeout" is misleading.
> 
> Fixes: bc183a0235e0 ("xen/arm: Add support for GIC v3")
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Tue May 19 07:21:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 07:21:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312454.1582543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPElT-0002CT-Bk; Tue, 19 May 2026 07:21:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312454.1582543; Tue, 19 May 2026 07:21:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPElT-0002CM-83; Tue, 19 May 2026 07:21:19 +0000
Received: by outflank-mailman (input) for mailman id 1312454;
 Tue, 19 May 2026 07:21:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPElR-0002CC-Um
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 07:21:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPElR-00BOEf-Ac
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:21:17 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c0f62-bab6-0a2a0a5309dd-0a2a45099b7e-44
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:21:17 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c0f6d-2497-0a2a45090019-d155802aa561-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:21:17 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-48a3e9862f0so18089605e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 00:21:17 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe53804aesm289881545e9.15.2026.05.19.00.21.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 00:21:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779175276; x=1779780076; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=m90ntWzG5kgyHuikzIndBiREKwCzLhOdbUjtNerME8A=;
        b=Cau8jRedBTUWkvKEfHB/Hf+orocAiBWNZcMskB+oD3XD+xd5AIVRW/jcsegSsAEgjB
         GqDOIu0rIXv/xX8IRE6g6JT1gUdnaX354fgrnyDqUmT9ctA6HOfekpjCjDFpKQeCkyLv
         GNkfgJdNw6J7UR+wehonszbsR8hbFO5FqGUlSNekMI0LRS8x/2mWcSNY6TyIuuPg4av1
         orLRhgHkUQ2vXjQTGsDGnITTj3Amy6t5PESTsEyKUSlSLDp7Ge6X8XOY/laXkMQ7wHDG
         08vZrsNaAp9M/DR18sQvYccTEgav+NqhgWKmw4MAhwV6n1PWH4YW1ho2CwCDinVewgxp
         +sYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779175277; x=1779780077;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=m90ntWzG5kgyHuikzIndBiREKwCzLhOdbUjtNerME8A=;
        b=moTGyrM12lBKMAjuqkZw3QaG+kobD85LgBbiZXv4q3jJXEQ/bCKXWhMgwaGptVzHE2
         HRuK7m9PvPFoh7k9mHobb2+UI7lRLt8QrQsg9R9n+7bun0GfZXl9uavzKPsyML4YJvQc
         78FfxhkTjGDTsNl1Jrd0kfsdA9eQlx2VSu6On5tJIio78Vixv2zTKavURPBloPHo+5a4
         qv7QK4Txed1fHC07CGr9po14ZZUC3qcJDKGzGFEBQKX6JPb7/cBSPXBbbwvJbQ+E0Ayu
         HCULixS14zCNq9b3P5e6bFpgZO5IOHctFkx5vg1NVGWHTsewwtcZaiYdwEQsHsrMnRJk
         /JOA==
X-Forwarded-Encrypted: i=1; AFNElJ/Dosocx/jZ/0KXtDXL4Rp568TTzGInidr6K0YHUSIM/LDUkIFxUcF+ewPDTx6s/DeA1Pop94rvOUs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzBXmkZHm1Hp7sOrsjmPRMoIodliKjng4BxregJDdzovJPiT04x
	+VY11sDJAF6tTjP2FOcpQqbUQAdh4l6T4yL5aY5q8xxYgdgJvTG9Q8vjui94JikpgA==
X-Gm-Gg: Acq92OGNmb4g8gfXigeBM4e+Tx9nMgW8p5x0218OeQ6pIu1af85Dg26W+x9nl4qGdv/
	ny9efeeq7bXczv0QrYeHZiEUDyoZnivv0HnrvZi3yBPfelQD+P+Q+dtGeho29IIpAMxDp9XLoGl
	AL3dwwJlesEdNmPWCHPkT0xoUjRMF6WHnRf5SY36Gs1fN+b5o+esLp+SEscqMfWYpU2njnBPzkw
	DHMqhyX07ottOzPvn8GIA7SXA6YmUc43lSxuCi4mv4bNtUn7Hr7hpBPLH8YSlr5URfPxADR1RfQ
	XE1sd2S5qfip+oV6kmQ8GAEHMO1rKbcQXyes2intxUX0eCODrJ85+MTEpR1m6sqblOIZTTTwWpM
	1TdUgTKT+NenvNBX8mDCXwWkiXiFbFcNJYGtMwM/00LLWjchCWmCqy0ILzcELLp2SghG7mx1yiO
	r8/Q6/5Pzj911Ytr2bfgN+rJe8mXmYGYaLuZ0lO4p1Nh/eYmB8771qLd0fsAvQda4whW3pmTL5T
	iezegZCae19FJa+paBSzipaUw==
X-Received: by 2002:a05:600c:8485:b0:48a:5339:a46 with SMTP id 5b1f17b1804b1-48fe537fb70mr3431315e9.9.1779175276600;
        Tue, 19 May 2026 00:21:16 -0700 (PDT)
Message-ID: <0686cb4d-3020-4c2e-9231-f1a28c714c0c@suse.com>
Date: Tue, 19 May 2026 09:21:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/irq: Return -EEXIST from map_domain_pirq()
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <20260519001559.28129-1-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260519001559.28129-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1779175277-40D67A53-29D3986F/0/0
X-purgate-type: clean
X-purgate-size: 1840

On 19.05.2026 02:15, Jason Andryuk wrote:
> commit bfc341a65cfb ("x86: Make the hypercall PHYSDEVOP_alloc_irq_vector
> hypercall dummy.") modified map_domain_pirq() to return 0 when an irq or
> pirq is already mapped, when it previously returned -EINVAL.  This
> occured when moving map_domain_pirq()'s call from
> PHYSDEVOP_alloc_irq_vector into PHYSDEVOP_apic_write.
> 
> However, this means other callers cannot detect when a pirq or irq is
> already mapped.  Since success is returned but the pirq is not
> connected, it will never fire.
> 
> Modify map_domain_pirq() to return -EEXIST.  -EINVAL is already returned
> elsewhere in map_domain_pirq(), so -EEXIST allows identifying this case.
> With that, squash -EEXIST in ioapic_guest_write() so the behavior does not
> change.

What about the function's uses from allocate_and_map_[gm]si_pirq()? Don't they
then also need to cope with getting back -EEXIST to keep externally visible
behavior unaltered? Else those cases want discussing in the description, I
suppose.

> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
> I'm not sure whether or not this warrants a Fixes.  Nothing in tree
> today is broken, so I did not add one.

In which case this then also isn't 4.22 material, I guess?

> --- a/xen/arch/x86/io_apic.c
> +++ b/xen/arch/x86/io_apic.c
> @@ -2315,6 +2315,8 @@ int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val)
>          ret = map_domain_pirq(hardware_domain, pirq, irq,
>                                MAP_PIRQ_TYPE_GSI, NULL);
>          write_unlock(&hardware_domain->event_lock);
> +        if ( ret == -EEXIST )
> +            ret = 0;
>          if ( ret < 0 )
>              return ret;

Slightly shorter

        if ( ret < 0 && ret != -EEXIST )
            return ret;

?

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 07:32:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 07:32:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312463.1582552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPEvk-00044g-8D; Tue, 19 May 2026 07:31:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312463.1582552; Tue, 19 May 2026 07:31:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPEvk-00044Z-4g; Tue, 19 May 2026 07:31:56 +0000
Received: by outflank-mailman (input) for mailman id 1312463;
 Tue, 19 May 2026 07:31:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPEvj-00044T-JM
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 07:31:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPEvi-00CIer-On
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:31:54 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c11e4-bab6-0a2a0a5309dd-0a2a4509c8d8-20
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:31:54 +0200
Received: from [209.85.208.41] (helo=mail-ed1-f41.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c11ea-2497-0a2a45090019-d155d029a915-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:31:54 +0200
Received: by mail-ed1-f41.google.com with SMTP id
 4fb4d7f45d1cf-67b32c695efso8723639a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 00:31:54 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4c31494sm665096166b.20.2026.05.19.00.31.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 00:31:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779175914; x=1779780714; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=vbzJxX48PuL+8Ew+Ip09xhcY053KY6JIyLgkApHP0X0=;
        b=kKqDq+n+KETROb9PcE0XI2sxbZMtuxosht1bdxrt7zr1XolbJiPWS6LOkKvELQqZeA
         F1dAKc+qSwD5qKNn7xswgIL/1PGSd2B3IIshwyws4XQG852I2YqhOYs2G/xVIMzv/0VS
         JC3wUqYlf/L9jo7CwDPD1o3X3F0jqLRXmgNyyiGi7+hPbOUgudFrAhAUtxLbrbTu9XOx
         NqDkk0pkFB9zN423kbp5zypHZb4fwUtJRs4mg48dBg4BLyQ24wa/2DMs1YbjuYNH6RX6
         rQtFcMD46S0dTW7Ww9kDcCdd1/cHBWxPw12ujUMU+zhLJZ3YrY8NO1l/RNPtr7qpWFrk
         rYWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779175914; x=1779780714;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=vbzJxX48PuL+8Ew+Ip09xhcY053KY6JIyLgkApHP0X0=;
        b=msrDLtVu7bN8qOkDMNyowpbwJFCyQ0NA16bDnzDU7eJP9sl9/NzBYHXZqfz/TfmHQu
         6oukKA/LdZ6Evt5iFCJ4A7UDUc65b0lL6uf1A0WGmjyVHrD/UwVCB5HcsXYDioBGyN1e
         We2D3wwz8Ews6Fkd9stmvKO4Yu9OK8euD5AIlzwKhO6krRPX8wz237XH5cl4Ul/ZzGdk
         gyR80QpU05M5J8AtVhNaunvSxpz0OyK3tZ2yqKQKlV85Izudn5Baxa4CkOAXXex3vyhR
         Lc3BlZeEkyZEpSya7G7aIsKvRxvVnv3NPjZa29HOnR3kMg2KO4zKpvCZBYXy4YfAJaig
         j56Q==
X-Forwarded-Encrypted: i=1; AFNElJ9RdDGQSbOm+d3Z2sknSksiCr5mteLFiszYFg6Pg3vzh1Nez5bU3aI33j8rpdR/9yBfXiPoxC5KD4I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxXhUqaivCd0KviOVL5ZAPBZzaSOSr9mudBh0OAzq2l56p3SC4p
	fJUVT271pm6Pf7cp/xtLUJ3ATc3DYr7ntSSUvl7qP/iaQIfx/PqPwLmk
X-Gm-Gg: Acq92OGNZxX5UEFlFoMhLNHxz2UFrmQrlivf8H7J7vY1/IwpGjsIK6w6AJk23b3jKLS
	nRJF4nVnxwU4MrRrBvmQlmkrjFeLyDE0GyHK6zeJs2vzPws/GzqdJ2Bj1jyaSSakUHAhq4MgWJZ
	Xq4yddB/guVfoHc1TQFpqJ2U+XXGX/Cg4T9d5fs3/KCQ6OwK14vvLukUsljBmadWG/livLloLOE
	hl4RhRgj44GRcnDMnO2tokU5EyXHBfeaMnVDw70EdtftlxDxrI4CRkz3FFf+irYMrYla+ZC2HXk
	QxR7UMoqHF+ygWHhLov4TR33KoTHc3BKgnPHtFfn/n9xZpcFni6q3t0zUndJTst1vkaz7kmVhNp
	LfIdcg7E1chz+T1ialDmOuthh6aohDQ7/8brc5RV2cLzcpGOVNAoHpOKXYcaqK1xbTiqPTU+eAg
	ohBfTb93Lhpyb6Ss0iRYr1cYzrQC60bFARAc/bT9d6a4p9tm0/q3G6k5wYr0yZI99Q2GTksjFmb
	qrLsLIuh3qzNw==
X-Received: by 2002:a17:907:3e90:b0:bd5:eb9:6a53 with SMTP id a640c23a62f3a-bd51534c4acmr848149266b.4.1779175913759;
        Tue, 19 May 2026 00:31:53 -0700 (PDT)
Message-ID: <9892bcb1-4ba2-4bea-a703-5f4d64142799@gmail.com>
Date: Tue, 19 May 2026 09:31:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/4] tools/xenstore: fix issue related to XSA-417
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20260429120619.1013440-1-jgross@suse.com>
 <7a911029-57ba-421d-9657-03762dfe1109@gmail.com>
 <8b37000c-1b44-4ae8-acf4-5ea3e4f069d9@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <8b37000c-1b44-4ae8-acf4-5ea3e4f069d9@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779175914-89174A53-1B3E1879/10/73395122804
X-purgate-type: spam
X-purgate-size: 3577



On 5/18/26 6:18 PM, Juergen Gross wrote:
> On 12.05.26 17:48, Oleksii Kurochko wrote:
>>
>>
>> On 4/29/26 2:06 PM, Juergen Gross wrote:
>>> There is one corner case of XSA-417 which wasn't handled completely
>>> with the patches back then.
>>>
>>> The XSA-417 fixes tried to solve the problem, that a new domU would
>>> inherit access permissions to access Xenstore entries with that domid
>>> listed in the access rights. In order not to make it easy for a domU
>>> to query existence of a domid, adding permission for a non-existing
>>> domain is not rejected by Xenstore. The XSA-417 patches solved that
>>> problem by adding a flag to a permission entry referencing a not
>>> existing domain, indicating that the permission should not be
>>> effective for Xenstore.
>>>
>>> One corner case was not handled:
>>>
>>> Consider guest 1 and guest 2 running. Guest 1 adds guest 2 to be able
>>> to access a Xenstore entry. Now guest 2 is removed from the system and
>>> a new guest 3 with the same domid as guest 2 had is being created.
>>>
>>> When guest 3 would try now to access the Xenstore entry, it would fail,
>>> as Xenstore would see that the Xenstore entry is older than guest 3.
>>>
>>> But if guest 1 is modifying the permissions of the Xenstore entry
>>> again, e.g. by adding another domain, the permission entry for guest 2
>>> would lose its "special flag", resulting in guest 3 now really gaining
>>> access to the Xenstore entry.
>>>
>>> This series is fixing this problem by the following means:
>>>
>>> - In order to allow guests to know that a Xenstore entry permission
>>>    might have gone stale, allow unprivileged guests to receive
>>>    @releaseDomain watch events. This doesn't open a security hole, as
>>>    the only knowledge which can by gathered from that change is that a
>>>    domain is gone, not that a domain with a specific domid is existing.
>>>
>>> - When a domain is removed, remove all permissions relating to this
>>>    domain from all Xenstore entries.
>>>
>>> Note that this issue was discussed by the Xen security team and we
>>> decided not to issue an XSA, as there are no known use cases where one
>>> unprivileged guest would grant access to its Xenstore nodes to more
>>> than one other unprivileged guests.
>>>
>>> We decided to delay this patch series until the watch depth feature has
>>> been committed, as with that feature available it is now possible for
>>> a guest to handle the death of a specific domain in a sane way.
>>>
>>> Changes in V2:
>>> - some minor comments addressed
>>>
>>> Denis Mukhin (1):
>>>    xen/public: introduce DOMID_ANY
>>>
>>> Juergen Gross (3):
>>>    tools/xenstored: add support for "all domains" node permission
>>>    tools/xenstored: allow @releaseDomain watch for all domains
>>>    tools/xenstored: remove permissions related to dead domain
>>>
>>>   docs/man/xl.cfg.5.pod.in        |  4 ++
>>>   tools/xenstored/core.c          | 45 ++++++++++++++-----
>>>   tools/xenstored/domain.c        | 78 +++++++++++++++++++++------------
>>>   tools/xenstored/domain.h        |  3 +-
>>>   xen/include/public/io/xs_wire.h |  2 +
>>>   xen/include/public/xen.h        |  7 +++
>>>   6 files changed, 100 insertions(+), 39 deletions(-)
>>>
>>
>> Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> I believe this series can be committed now, as Stefano has Ack-ed patch 1?

Yes, it can be committed now.

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 07:36:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 07:36:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312473.1582560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPEzf-0004gA-PM; Tue, 19 May 2026 07:35:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312473.1582560; Tue, 19 May 2026 07:35:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPEzf-0004g3-Mb; Tue, 19 May 2026 07:35:59 +0000
Received: by outflank-mailman (input) for mailman id 1312473;
 Tue, 19 May 2026 07:35:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dongli.zhang@oracle.com>) id 1wPEze-0004fx-JS
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 07:35:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPEzd-00B8lW-VE
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:35:57 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dongli.zhang@oracle.com>)
 id 6a0c12db-5cb7-0a2a0a5109dd-0a2a45049582-8
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:35:57 +0200
Received: from [205.220.177.32] (helo=mx0b-00069f02.pphosted.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dongli.zhang@oracle.com>)
 id 6a0c12db-1dec-0a2a45040019-cddcb1208370-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:35:57 +0200
Received: from pps.filterd (m0246631.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64J0bful914005; Tue, 19 May 2026 07:35:25 GMT
Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta03.appoci.oracle.com [130.35.103.27])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4e6h1suftn-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 19 May 2026 07:35:25 +0000 (GMT)
Received: from pps.filterd
 (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.7/8.18.1.7)
 with ESMTP id 64J7YnP2006009; Tue, 19 May 2026 07:35:24 GMT
Received: from dm5pr21cu001.outbound.protection.outlook.com
 (mail-centralusazon11011071.outbound.protection.outlook.com [52.101.62.71])
 by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 4e6f1ffch3-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 19 May 2026 07:35:24 +0000 (GMT)
Received: from BN0PR10MB5109.namprd10.prod.outlook.com (2603:10b6:408:124::23)
 by CH3PR10MB7140.namprd10.prod.outlook.com (2603:10b6:610:123::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.21; Tue, 19 May
 2026 07:35:19 +0000
Received: from BN0PR10MB5109.namprd10.prod.outlook.com
 ([fe80::d9fa:7ad2:804b:bb83]) by BN0PR10MB5109.namprd10.prod.outlook.com
 ([fe80::d9fa:7ad2:804b:bb83%6]) with mapi id 15.21.0025.023; Tue, 19 May 2026
 07:35:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=corp-2025-04-25 header.d=oracle.com header.i="@oracle.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-oracle-onmicrosoft-com header.d=oracle.onmicrosoft.com header.i="@oracle.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	corp-2025-04-25; bh=sqR5XvwemEPJCCdSjqODNkS+O1pHp5KBn6JxHJTmJeM=; b=
	E+M8rLQ2n/Kejxvo7rGc54kcfzTslGF4gbRHRUQBCC2hop5RE3rOxzbEWB+guZWT
	m3CO3ocU+jWyyXuRfPK6HAFA4UBiuAZqV6OKJBCmDzc1D0NwUP6mpLe4fM8wahIr
	KgiBExarymOGROp8nxzvOxTpWXUEa3ojoEfT9Z7Q5r7WzOi4THJti0ykiZUaA79f
	CExzJUujgVOsPcn8gpwHgUZehaM0nyyKIleIRXNi8jFxSFRS7Q0HPCp+P6ZOdt+Q
	cpzRIs04weDppdMjXUOomopT/+Wea7fsjOS7l9JcdplEx4weTuPamqYBxcX0xxnv
	muHLdJlhG/ho0Zo/SA9HCA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YzPS0vM73LgQ7sSFh9tTqaW98tA04iGHRzEO2cTbEF8qpMuWGo13SqLsnqubNLiAEniXDab/lNiVXZkfpJOXGPEP/EgvYqyGkPTC4yC/wkoq8P4tnEtDZFsJWj+4P43dKZAQ3hTGdZZsQwCqw1O56+m0l8WSnpFZPPb9Iq5FIMXmEXzvxwVRnKJu5MvHR+g5gtqJBXddjRe5alduyr55Yq+8mSAbU9y6Yz9IdWodi54lLR3/zfi6ArLUlic7ras9E2/cRir+A3mcFOAFGpej7Mor8HnSpX7Ulcw1uLfYZQmffs5LmtAcJQNu/84lNWzAiBULKOZdadfBj6aWnO8Ogw==
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=sqR5XvwemEPJCCdSjqODNkS+O1pHp5KBn6JxHJTmJeM=;
 b=u9unHoKxHr1ZCaiZzaUzMDIMrxumZWw+CyuqUv1Suon+s8rEBN30WWgvZC9NRBgi9kfcbK3giy0ih0iB9E8QUZagzFqbx2fVC3R7Onux6pczX5/VGxHKN1+pDt/Yjqi/W81QslJ22B9SiYoS4mcD2yr/T2N/SIQaNJARglRzhhCm2raI6tJdlmHSOU/HjZ+eBZu888DVozHJEh2UwxnarmxkD5Vz+IvQmUgEEtqdtuRCKMwtmqHSj9ZGmN9LKn/E3tyTaGjzs95bDYnxxwupl7wavLknLKPd1/JV36Fvl0GuB8GaUM7VPLtzsutcpbxY0il3E6QQIKn0QZyhyZeSTg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sqR5XvwemEPJCCdSjqODNkS+O1pHp5KBn6JxHJTmJeM=;
 b=CEKl4W1Zo78ZWguvI39QYO2WDl/wUoTS0HFpjyOmJoc6PSbNA3f4Kl8kYcTGcoi4awddnfYIqfS1WTnCalxfL/qJcBRwTp7cRXFa6MQFM5aa3c32mdKMuh9gLzcrUiqVSy3hQvxo6PDRZ1n2EA8DvigSypY89FGjRX12zoX0xHU=
Message-ID: <93e799fd-b661-45f0-9cc6-21823765332e@oracle.com>
Date: Tue, 19 May 2026 00:35:15 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/30] UAPI: x86: Move pvclock-abi to UAPI for x86
 platforms
To: David Woodhouse <dwmw2@infradead.org>, kvm@vger.kernel.org
References: <20260509224824.3264567-1-dwmw2@infradead.org>
 <20260509224824.3264567-4-dwmw2@infradead.org>
Content-Language: en-US
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>,
        Shuah Khan <skhan@linuxfoundation.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Sean Christopherson <seanjc@google.com>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
        "H. Peter Anvin" <hpa@zytor.com>,
        Vitaly Kuznetsov <vkuznets@redhat.com>,
        Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Paul Durrant <paul@xen.org>, Jonathan Cameron <jic23@kernel.org>,
        Sascha Bischoff <Sascha.Bischoff@arm.com>,
        Marc Zyngier <maz@kernel.org>, Joey Gouly <joey.gouly@arm.com>,
        Jack Allister <jalliste@amazon.com>, joe.jin@oracle.com,
        linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-kselftest@vger.kernel.org
From: Dongli Zhang <dongli.zhang@oracle.com>
In-Reply-To: <20260509224824.3264567-4-dwmw2@infradead.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BY1P220CA0047.NAMP220.PROD.OUTLOOK.COM
 (2603:10b6:a03:59e::9) To BN0PR10MB5109.namprd10.prod.outlook.com
 (2603:10b6:408:124::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN0PR10MB5109:EE_|CH3PR10MB7140:EE_
X-MS-Office365-Filtering-Correlation-Id: 3d5277be-9ba3-4db6-d9e6-08deb5792d58
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|7416014|13003099007|4143699003|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	hVvjA4JH7liMGhrcCajYWvIyXwAbW9os4dpdV2KyMPSUPOil3zzud0EVxEShqZH4XFC4/cYzfp+Oa9nWNhNDVqVOzaZmfIEQN9yS1SpsV3zvAPh3twhQUKZtOivAR4JPP0P1xqBf1MpQp0z1ZtwruazbGnAHBe3vkMKfJOJUX1BQezrg3Np0Uv9k9Bcj6Bc9To0AYf+vC9bVQepjHHe15ylAfhE3bo91LCVnRjPR/ehUEmLjLkdqcXOVNyQKwqO19QSkri6MpJU2J1S433N6Co4dsQEEL5HnfJWBwhErBmsvOMeuwEPTMi2L5hQ4j45OuJL5yr4ayqSSTGzYG+1lzbm4DrSYak5XS+32nWKXwb2xEhCAfWvS9lEFVHXDXgyqW1IB3Vt/h7hvgR6yE76dRGar5Gl0zZV+Z+g0tXKVtbXm8W5UShbrL+wFsclqgtV1p7/FZmD3+Xuq/bbKsWlUR1zHU4af6SHGtElMZ0tRS0ovFKpUdnuw063M+VbZOvPl6sTwoGmW710wLxIU9knydbN335LC0z5KBHw5Uds2Z6zS0OR+7nfGAppBrqgLD7gsVORCMzsvnxsWw4pWuLNuz48BT8w7a4WXAQpStMG/oFmxVVZYDfYRA7HWXWw9P1RagFvtacolNY4F4jzE2Vp0uLGYRp2YZd5PZOaB5fgjs1oOCWuVzbhLBqRRdWgIL5Ms
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN0PR10MB5109.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7416014)(13003099007)(4143699003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YjZWM09CL3crcVQwM0t6Q1NTcnh1N3JLeUxoazRSZXJVU2VFcVNsV2FXM1VJ?=
 =?utf-8?B?c3BtWEtqVzEzM0VaOWpjLzVaa0VaSk9HWFNJOVFMaFMwM3MzS0lVOEhaTExx?=
 =?utf-8?B?OTVmTGhlUGJnNFpUT0xwSGV0MnkyOTA2VUdiNUpUMEdlZDBRbks0eVkyZy9S?=
 =?utf-8?B?QTk2cjJSUGxVWDdWL21iUnFOSE9mQnhBN280bTNPcDVTRlVlQjZGb3I2Lzhq?=
 =?utf-8?B?WWdTZEhNdlpoenkzTHVWUzQ5b1ZTUENWMmRBQXhXN3pXSEF5cG8xM3BlTmYv?=
 =?utf-8?B?bnFHSkUwZlZsaUV1Qk5vL09ydXh4MTNWdjNGY29wYjBITmVBZTdtbldMUkVL?=
 =?utf-8?B?UzFidFM2b3h2Mnh0Z0tRNWNocGRlaTRENWMwRFlxbWpwK3VFZzlDQkJQdDU5?=
 =?utf-8?B?d2RScmVHSGVXK3FEUEc1aXdoeGp1YWRKTzJCUzhpQjIzNXN2SEpJSmlPamlr?=
 =?utf-8?B?L2lYbUhIMnZ3N2RhZ29XeExJYllSTnJudGVHRUpEK25zajNNUVhpdzlTOXJy?=
 =?utf-8?B?WW43YjVRRGtSa3h0RkdjMTVaQ2xKZElmdkFqYTRhdlByMjhQRnF0NWVOc0xa?=
 =?utf-8?B?NDhHOXZsQi8xT0VUNXZEMEU1QzYvRXNMZmZYZ01tRDVyZUs5QnB0dWx0d0Zj?=
 =?utf-8?B?WDA3MDNkYjJtcHd4THFpYVpPV3p4Wmo3TEI5L212THovakNnRFpkTFg0cWhh?=
 =?utf-8?B?WEd2MHZ6MFJLcE1ETjByNC8xVVRGTWg4T1BCTEJZRnN6ZC95S0t5dmhVdy9r?=
 =?utf-8?B?Q0JzSXl6d1laWEdPS0VOYWdhSUVoOWZBWjN3anVFaXVxTDVIWHNycEM3U1l6?=
 =?utf-8?B?d2o5ejVTVEFiV09HZy80Vkxna055RTVMNGh1KzZWSkdKVCtzMVR2Z3hCZUN3?=
 =?utf-8?B?U0tkWmNTUys2b214NHZmSmcxeFRnc3RDbko4alRoaldTVlcrb1J6a1B2SUFD?=
 =?utf-8?B?OXJNa2VPdEdLR2R3SWF5cjc4YytnRnpJejAwNUQrb0FPYzVRQ0VueE9PdHky?=
 =?utf-8?B?NU40Wmw0RjF4TUZML0EwRFJ3a0ZFWmk3WVo0emtYU1F3SDVSc25yaGErT3E0?=
 =?utf-8?B?emxkVDlaYTJjclhaWjcyb1llUGRscmw1UVp3K05id2F4QWJBMTdEVXdXVXlZ?=
 =?utf-8?B?SXdQR2U4OE5TVGVYRmtkaEpCOUJqM1BiT3E0cFpNbWIwZXV5c1Q5WGRZOWtO?=
 =?utf-8?B?anBFU20vYU9Md1VmNTNtYU5xdXRIRUJEKzRTaEVkaUN5dkczc2FQTjhuU1hE?=
 =?utf-8?B?THVkWm1iNkw5TWw1M3lDQU0wdk1KN2U4Y3YxZW05aEZrS2FrSnJlZSt4VGNK?=
 =?utf-8?B?ZzdnRVUxbjRMd3BlZm1IUzd4R0JweXJidjI3NG12VW1lTUVWRW1TSytWNFpG?=
 =?utf-8?B?S2JwcVNwTFRrT0k1bFRBeHpNS0JUNXFwVm5KNEt3ZHpNYkwxRlpGMWNUTXk5?=
 =?utf-8?B?WGNWczZzMHc2R3cvVkdYcFdoRUZ5TVd6clQzc1RRaEsvNTNZaFVINTR2dDFV?=
 =?utf-8?B?RzFEeWcwcm4zM2x5NDBnQW4yVFFRZVlDYzJRV2lxVXg3eGFDZFlIaDJpdWpO?=
 =?utf-8?B?citMbUlnVnJDSWkzaS9Qa2pnVm10T3NCaThtQjB5aFhkajRvaXZpbG9jNFB5?=
 =?utf-8?B?dGpScDQrVFJpTDlzSHJtOHdXVGlaZnovdno3d1RtMWh6RmZwR1BTVXZPZ3R3?=
 =?utf-8?B?V0NqdnlWT1doTmNqeUZabFFyb1YrU3U2M0JLWlRzNit3VHNod2cxa255cno1?=
 =?utf-8?B?T3VwMktLMzV4dnlZNVl0T3BQY3hHRFB3WEhJdUNVZ3NDSkErT2NqSFYzenVq?=
 =?utf-8?B?bkxpS1lPeDcwbCt2QWtBY0JXaGtiUEpFSFZsVzNFOXhJWVJVTHpiRWZCbE9n?=
 =?utf-8?B?R2xPcGw2U3hLbFNqblNLaDBZU3pXSkwvMTlYakJRT1dDWkJRVVBsUnZ4dHpR?=
 =?utf-8?B?QWNmdmwzZ29ZejNrUGRDbnlkN2VaaE9SZUV3ZVRSajczQVd0MjhwY2dJSkdM?=
 =?utf-8?B?V0hrQjEyOStvN2F0Ty9USnZKNHpTeXJRTDFRNTJvTk1TZnd2dXUwRDVLT0FY?=
 =?utf-8?B?TERDekYya2ZxeHYvVHk0RGdISE0zaTBJcmRkM3VmbTI0MVlOVkxVblN2ZUtm?=
 =?utf-8?B?eGY2UHMvY3gxLy9nSlpKckZISHRuU3VEWkJYOWl2V2tYZnd0S2N2UG1uaG0z?=
 =?utf-8?B?L1ViYUVXYXU4NEpFR00zUjFsZWZMVlhFWnNTWkExQ2ttMnlNQ2V6dWFkRERF?=
 =?utf-8?B?MXpwU3cxaS9xbTZnSTd2M1ZYdmNHUkdWVXJTcFFkN3N1SytIcWtoa1JBOXZa?=
 =?utf-8?B?Vkk3b3gvOE5kMElhV2ZuS1hjYUI5L3BzV3Z5V2lhZUxPUUxkeXFQdz09?=
X-Exchange-RoutingPolicyChecked:
	Ik5KDvF04gkfVJPH/GUdU+8dCqZ53U0n8HURFxpxjn2vRmwBNbO2XvoOe3vn0uyq1Q8A0KcnDwqs5EC4WjApFlrO//NyQNktQ3TdqP/hI7Z/u99XVqtZUjutXIpXB4HDc6Dqlbws6cN5xo5sBjrluvweiKLpOKUmc11Pn5Lwv1mAnpCB/TUkjYqlPC2Vd8MDm43AkoVMOFDxanI4MUV2BtlXUzKRK7yeysid4VpYK1GgzRyWDWb5GPrdTAYm9rwNsH7RGDnj6nf/S2WFm7611Sgh5RNxAJr2d6iYGiJPols4HGmwBO0QrxtETu05+cheAPKTmzWE1E7q1aeLff8w5Q==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	EXwswr6Fim/5mSP7c//HLO+9tXedwV9aLiBurEbSxlXI0rDNB7sg6+6uvAPXK3ggD+y1NIjtmr9culmaMjhT7r/dm9frEzXvLTsNNY5RjJ5dIRMC7/X3pqd3mZ4sK7Gn4shGX76uw6SMp8WcKfZWQBxZyF63V6Csf/f1oBLBSy75/GLLHZUMnOEJj/LDEmZq4KXfFKWObBZrMAEpwgSFc/YPCvG/7YaEPsiu2vMTeE9p2hMQh+VaJNWd9bFWvitfyqPRewDGhZgxTMyUBSzEBqSQcpadqzpRdisZBRn5v0I6qHS/fPa90IBbJnqq2Fsl+yJlhSMIrdr0ZLAH82u0sHqM2Imv491C3QN4sbrLtOwNuW8aEsIEFBRLCg7pCgr7eXdyFe8o+jDbwgR+lgrloJdnrzTndRLGljsv0bQmkKgT9HJcxPdfk3UdV/DItxPgkcbBDm90LmYeUdObpTYsHAa/HexEYJs9Z995KR5MyPebG7ZOJWkIPf81fA9XOlzQsm4yUxlgpMMBZQQEE/UH5RoaQXAd9C8x7mHVbKhWt9aK9WAl4h6P1H1MpVB4rTFXDk69eFDiPr/LCo7b2u/W+qTkp2XVVaVysqlqmugurbQ=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3d5277be-9ba3-4db6-d9e6-08deb5792d58
X-MS-Exchange-CrossTenant-AuthSource: BN0PR10MB5109.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 07:35:19.1645
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: A4wOWKuUS1eMESBChe4QD2YTGhIiFpGhf2n0cjGULtQifNIIPNKFE+i9lWP4A8briC9Urpq01Bl4RkPa44J8zg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB7140
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_02,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 spamscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0
 mlxscore=0 mlxlogscore=999 malwarescore=0 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.19.0-2605130000 definitions=main-2605190074
X-Proofpoint-ORIG-GUID: njjRGzj4jrV7Dq1lzpyR1DT_67iOLPa4
X-Authority-Analysis: v=2.4 cv=aoKCzyZV c=1 sm=1 tr=0 ts=6a0c12bd b=1 cx=c_pps
 a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10
 a=NGcC8JguVDcA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=jiCTI4zE5U7BLdzWsZGv:22 a=o5oIOnhZENCTenyL_yNV:22 a=SiqW3_QkAAAA:8
 a=vggBfdFIAAAA:8 a=pBOR-ozoAAAA:8 a=mLnsDVdbAAAA:8 a=VwQbUJbxAAAA:8
 a=yPCof4ZbAAAA:8 a=cWRNjhkoAAAA:8 a=HoIXkeogjgSWeBYbt8UA:9 a=QEXdDO2ut3YA:10
 a=0-oVHmElw7bdUHZZ8WX8:22 a=xnp1pY6zelCj5OLna2To:22 a=sVa6W5Aao32NNC1mekxh:22
 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22 cc=ntf awl=host:12299
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE5MDA3MiBTYWx0ZWRfX/r9iFmeWgh9a
 ODfEA7rdWTS8JcDl3tg+DEoJs/PxDDvtsECw7HaNBa+VJ7sEa3wVu9Nd09NmfntfLdHnP5l0JzZ
 19DYk8oz1hyCTTbzkHtjiJGp0S7keJmUCVG9PVEE54/0DPxuvnAe9AO6ojMtylf77NRMlaJSQ7w
 HdArtl5j1Wir7S2oa1IHzk0TGC+53VpHaG7SOHeSUpVWd9UVBLcl28MoKuLs9LE5pezFspS4Qvx
 evM4kiSl/fSANzHGNp3gGh50mZ22i5rw3GHW651C9Yx7Ef3uNWDGhsB2KAskQhGLJhOx9Tg0EzR
 4/cFeBB0NYMWVHL1B5pPb/7zTSu9MN8f74XOclhtlbrPDol83dSU9rwHT5SgUtAawTUDiUlEAvG
 L6mgdvmyDb2h2kJw8qfsuEExIQZjBpDY77IoPDb90s8JknR5Q2dWyTENlUGGbyg5Di5dZ+AjWzC
 e8v4c6cnOPNmyt20OTzJV/iWX4RdM6b3/MvTYGac=
X-Proofpoint-GUID: njjRGzj4jrV7Dq1lzpyR1DT_67iOLPa4
X-purgate-ID: tlsNG-ebf023/1779176157-429623FF-F9494337/0/0
X-purgate-type: clean
X-purgate-size: 4478

I have encountered below build warning.

Perhaps it is because of PATCH 03?

In file included from ./include/linux/types.h:5,
                 from ./arch/x86/include/uapi/asm/pvclock-abi.h:5,
                 from ./arch/x86/include/asm/xen/interface.h:197,
                 from ./include/xen/interface/xen.h:13,
                 from <command-line>:
./include/uapi/linux/types.h:10:2: warning: #warning "Attempt to use kernel
headers from user space, see https://kernelnewbies.org/KernelHeaders" [-Wcpp]
   10 | #warning "Attempt to use kernel headers from user space, see
https://kernelnewbies.org/KernelHeaders"
      |  ^~~~~~~
In file included from ./include/linux/types.h:5,
                 from ./arch/x86/include/uapi/asm/pvclock-abi.h:5,
                 from ./arch/x86/include/asm/xen/interface.h:197,
                 from ./include/xen/interface/xen.h:13,
                 from ./include/xen/interface/xenpmu.h:5,
                 from <command-line>:
./include/uapi/linux/types.h:10:2: warning: #warning "Attempt to use kernel
headers from user space, see https://kernelnewbies.org/KernelHeaders" [-Wcpp]
   10 | #warning "Attempt to use kernel headers from user space, see
https://kernelnewbies.org/KernelHeaders"
      |  ^~~~~~~

Thank you very much!

Dongli Zhang

On 2026-05-09 3:46 PM, David Woodhouse wrote:
> From: Jack Allister <jalliste@amazon.com>
> 
> A subsequent commit will provide a new KVM interface for performing a
> fixup/correction of the KVM clock against the reference TSC. The
> KVM_[GS]ET_CLOCK_GUEST API requires a pvclock_vcpu_time_info, as such
> the caller must know about this definition.
> 
> Move the definition to the UAPI folder so that it is exported to
> usermode and also change the type definitions to use the standard for
> UAPI exports.
> 
> Signed-off-by: Jack Allister <jalliste@amazon.com>
> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
> Reviewed-by: Paul Durrant <paul@xen.org>
> ---
>  MAINTAINERS                                   |  4 +--
>  arch/x86/include/{ => uapi}/asm/pvclock-abi.h | 27 ++++++++++---------
>  2 files changed, 17 insertions(+), 14 deletions(-)
>  rename arch/x86/include/{ => uapi}/asm/pvclock-abi.h (82%)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index e0b307b2108c..e49676955c0c 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -14406,7 +14406,7 @@ S:	Supported
>  T:	git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
>  F:	arch/um/include/asm/kvm_para.h
>  F:	arch/x86/include/asm/kvm_para.h
> -F:	arch/x86/include/asm/pvclock-abi.h
> +F:	arch/x86/include/uapi/asm/pvclock-abi.h
>  F:	arch/x86/include/uapi/asm/kvm_para.h
>  F:	arch/x86/kernel/kvm.c
>  F:	arch/x86/kernel/kvmclock.c
> @@ -29087,7 +29087,7 @@ R:	Boris Ostrovsky <boris.ostrovsky@oracle.com>
>  L:	xen-devel@lists.xenproject.org (moderated for non-subscribers)
>  S:	Supported
>  F:	arch/x86/configs/xen.config
> -F:	arch/x86/include/asm/pvclock-abi.h
> +F:	arch/x86/include/uapi/asm/pvclock-abi.h
>  F:	arch/x86/include/asm/xen/
>  F:	arch/x86/platform/pvh/
>  F:	arch/x86/xen/
> diff --git a/arch/x86/include/asm/pvclock-abi.h b/arch/x86/include/uapi/asm/pvclock-abi.h
> similarity index 82%
> rename from arch/x86/include/asm/pvclock-abi.h
> rename to arch/x86/include/uapi/asm/pvclock-abi.h
> index b9fece5fc96d..6d70cf640362 100644
> --- a/arch/x86/include/asm/pvclock-abi.h
> +++ b/arch/x86/include/uapi/asm/pvclock-abi.h
> @@ -1,6 +1,9 @@
> -/* SPDX-License-Identifier: GPL-2.0 */
> +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
>  #ifndef _ASM_X86_PVCLOCK_ABI_H
>  #define _ASM_X86_PVCLOCK_ABI_H
> +
> +#include <linux/types.h>
> +
>  #ifndef __ASSEMBLER__
>  
>  /*
> @@ -24,20 +27,20 @@
>   */
>  
>  struct pvclock_vcpu_time_info {
> -	u32   version;
> -	u32   pad0;
> -	u64   tsc_timestamp;
> -	u64   system_time;
> -	u32   tsc_to_system_mul;
> -	s8    tsc_shift;
> -	u8    flags;
> -	u8    pad[2];
> +	__u32   version;
> +	__u32   pad0;
> +	__u64   tsc_timestamp;
> +	__u64   system_time;
> +	__u32   tsc_to_system_mul;
> +	__s8    tsc_shift;
> +	__u8    flags;
> +	__u8    pad[2];
>  } __attribute__((__packed__)); /* 32 bytes */
>  
>  struct pvclock_wall_clock {
> -	u32   version;
> -	u32   sec;
> -	u32   nsec;
> +	__u32   version;
> +	__u32   sec;
> +	__u32   nsec;
>  } __attribute__((__packed__));
>  
>  #define PVCLOCK_TSC_STABLE_BIT	(1 << 0)



From xen-devel-bounces@lists.xenproject.org Tue May 19 07:39:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 07:39:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312483.1582571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPF2N-0005TO-7L; Tue, 19 May 2026 07:38:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312483.1582571; Tue, 19 May 2026 07:38:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPF2N-0005TH-2v; Tue, 19 May 2026 07:38:47 +0000
Received: by outflank-mailman (input) for mailman id 1312483;
 Tue, 19 May 2026 07:38:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dongli.zhang@oracle.com>) id 1wPF2L-0005TB-LR
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 07:38:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPF2L-0010F1-18
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:38:45 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dongli.zhang@oracle.com>)
 id 6a0c137d-bab6-0a2a0a5309dd-0a2a4503dd40-26
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:38:44 +0200
Received: from [205.220.165.32] (helo=mx0a-00069f02.pphosted.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dongli.zhang@oracle.com>)
 id 6a0c1382-672d-0a2a45030019-cddca5203c4a-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:38:44 +0200
Received: from pps.filterd (m0333521.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64J6Qnbe1882529; Tue, 19 May 2026 07:38:15 GMT
Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta01.appoci.oracle.com [138.1.114.2])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4e6h86uhdk-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 19 May 2026 07:38:15 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7)
 with ESMTP id 64J7Yf2p032194; Tue, 19 May 2026 07:38:14 GMT
Received: from dm1pr04cu001.outbound.protection.outlook.com
 (mail-centralusazon11010057.outbound.protection.outlook.com [52.101.61.57])
 by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 4e6f1aepg6-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 19 May 2026 07:38:14 +0000 (GMT)
Received: from BN0PR10MB5109.namprd10.prod.outlook.com (2603:10b6:408:124::23)
 by CH3PR10MB7140.namprd10.prod.outlook.com (2603:10b6:610:123::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.21; Tue, 19 May
 2026 07:38:04 +0000
Received: from BN0PR10MB5109.namprd10.prod.outlook.com
 ([fe80::d9fa:7ad2:804b:bb83]) by BN0PR10MB5109.namprd10.prod.outlook.com
 ([fe80::d9fa:7ad2:804b:bb83%6]) with mapi id 15.21.0025.023; Tue, 19 May 2026
 07:38:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=corp-2025-04-25 header.d=oracle.com header.i="@oracle.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-oracle-onmicrosoft-com header.d=oracle.onmicrosoft.com header.i="@oracle.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	corp-2025-04-25; bh=wVMIqXlaDGVHOYRt4HeJrHuQKFcLBAC9G+SLJY6E7yg=; b=
	Jr88k3Vvaisrr2u4xIdjA5e8uNmbOhwlMMmxu3nt2oo7RDtzQssHnOz21wnQy4Tg
	wNPxbeVTnTsumiMTP/lsYeYGjPepAPhNE7eMiTZ3b+dcYn+K8iUPGjAi2HuYHI8C
	tRuACaRyNtMC5Ubf/5OsKtXycwKU7AJZ000a4bGP/89suAbv90t8NgZ9HGQ9OAnE
	CrzscsvdfD/8/Y5O/cu3B52taXiUTGyutkUNwdH8/hz5S+OBKY1ED77gv5+I3jZI
	SIgNWEHkimWWVemR2qdjtQF6Ksjn7LT2CQ5H3YLu++c+rEq30OxiyQO8ao/Fy6IP
	eDqevgNa6NwdhaHCOc4NdQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FVAif0Ut5FV05g2UFy3L1fiiBVgPQ0n4d6+6S70MRF4iWCtal2bjGWPKhmoJzY/4SvfQHccEucOGUMy1qXzKjY89tJgWGdeuuDCgvbMNZsFYY0gpMc3G6dyAudFgqJHOFxXa/Gyyh9laI9mw7sAYxNRpkCqPEXCjg/Om2xu+u6gl2jQRD5EDjarZudoAa0xk+ldoGQQaD/hV0O4BscMNCvLl2Nq0SXdMpwqYJl7MUjLHrjrBT4p/xW7FgLw/yFddXcCYt4XaFutvEdbUM8Ld0KppdiROvP7I4XbSQF0LDEZvoUNODmQr9JaPOuDVH+P396UFL/OttKwwNJIDknmSMQ==
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=wVMIqXlaDGVHOYRt4HeJrHuQKFcLBAC9G+SLJY6E7yg=;
 b=Ytrk2TM1NpGEg9nKSLTgLvmjKKi5j0xRrFtu8mvDlVvMRKV6qQuL7Wb4iASYzc+nuzXCAx91RJ40pk0uBGLivmOV745yEZKUI4tgqucoG/edXhepLK+8RvjU1ytgy+3+cN/qTckDowlSogf/0Ifa04XPW+psOB22pj6Z1ShohSF2B+9wVzghF9qZQ3y12GLVr4XNt736LuFUKbDm4tZYeQd0+Iy+iscisu2GsU3g+TlhlWDeTNgsEQMEs7uXywGgIcuWF0bv80Ejo8dlEYkG1HQzINLOgYrFiy7+FehWlHuBqof3gTs75bgZWYq3Y9Gu0t4u9YwCOdoB6UV8TjQL/g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wVMIqXlaDGVHOYRt4HeJrHuQKFcLBAC9G+SLJY6E7yg=;
 b=fg1+UwAgKZj+KiJI4xl4D26N7PCdXy1lKxuqKTCy0Cs8OoMKLDcJCJT2j99pCC62XQsP+znfbocjQKUI0Jx2CNtREqDGovuFJri2/H1EHdVCScPll6G+2Ct/a6t2WGA3nj9lqnJOkaOtwigSj1JIcCwW5lt+DteSBJNld2h77Kw=
Message-ID: <b5a8262d-4128-4fd4-b3db-fa718002c4cc@oracle.com>
Date: Tue, 19 May 2026 00:38:00 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 16/30] KVM: x86: Restructure kvm_guest_time_update()
 for TSC upscaling
To: David Woodhouse <dwmw2@infradead.org>, kvm@vger.kernel.org
References: <20260509224824.3264567-1-dwmw2@infradead.org>
 <20260509224824.3264567-17-dwmw2@infradead.org>
Content-Language: en-US
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>,
        Shuah Khan <skhan@linuxfoundation.org>,
        Sean Christopherson <seanjc@google.com>,
        Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
        "H. Peter Anvin" <hpa@zytor.com>,
        Vitaly Kuznetsov <vkuznets@redhat.com>,
        Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky
 <boris.ostrovsky@oracle.com>,
        Paul Durrant <paul@xen.org>, Jonathan Cameron <jic23@kernel.org>,
        Sascha Bischoff <Sascha.Bischoff@arm.com>,
        Marc Zyngier <maz@kernel.org>, Joey Gouly <joey.gouly@arm.com>,
        Jack Allister <jalliste@amazon.com>, joe.jin@oracle.com,
        linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-kselftest@vger.kernel.org
From: Dongli Zhang <dongli.zhang@oracle.com>
In-Reply-To: <20260509224824.3264567-17-dwmw2@infradead.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: DM6PR07CA0079.namprd07.prod.outlook.com
 (2603:10b6:5:337::12) To BN0PR10MB5109.namprd10.prod.outlook.com
 (2603:10b6:408:124::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN0PR10MB5109:EE_|CH3PR10MB7140:EE_
X-MS-Office365-Filtering-Correlation-Id: dac31658-0e53-40f8-5b31-08deb5798ff7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|7416014|4143699003|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	8FMB00QR4NHXx1g0GjWMsf7JpVb0fhzD1uZyihLFUAx7HYTBVtT36WhJZMXbvDvB+uPnbstMPso4NJTYPLbCyofZRPDlzoY1XIRUo30VlqvnpjoUW/TaPB9tJIGQJEUZyATXb4vFfqMdvPKVgeH+welhtOuohtwE4hgqbOvMIOGw5UAUXhLtGYrukx4/2Ioi4q9Pz0TvoNyj8ZDESxO9SIw2tQACH6h51KqchD9sD3vPeXPwgxKjPsZUTzxYmFdGnfw9awbxixyKAMSJmbkkvMGl01Y8rp+CdYBG1nD120VByHVRQOuO4vyZBgYqJeWjtEePlNTITEuOKTRQoYHFDbzC/Uor1mB+5M9xqPD0tyvd5Z2IE8Tvrqqrchodha2NG6vMXbw4BYRsoSAknzjo8Ce94ScCRRj0JLC302rNcbhYiiK+NsoQ0da1RiTM31C3eo/umC9r6BZ0Ve145U9/+MXcsXfb/Uq1nYgjw2Jx0sZRhHPrA9tQShDhE9qzqWysaYPGDvsyMxTFCoJW+C4DU7VWSsZQL6I1RmqnkXoQcQqhvH77vMdSotDS63ye5di2wXwMWf+T2WkWhAFT1Iq25jCHAb9MIgZzhCuZk+6I1Kj2Me4GqNEb0FRTQxCj9pUlKpf0UlZ3FcIquOmbWx7yfxtPkqfYN8pY5hfmCPOLimSpNhLYfcQ6VCCMVToFkV3F
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN0PR10MB5109.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7416014)(4143699003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?LzlrTVRvWXlkQStkWG0xTXR0dTlwa1NIS1RSR0t2cVVZTGI0OWxpSGlSQVF5?=
 =?utf-8?B?dXNCWVB0QmdCOHF1eitBYW5zeW9uTHZCb1FzRFpBRnRUN2ZHSkRXcmc3dGts?=
 =?utf-8?B?SmV5ZCthOFdoZk9vQk9JdEhWeFI5em5uZlBJTk9QbUduRHNPTGlSck5jb2VW?=
 =?utf-8?B?bHFtdDNCSnZsN00ybEw3aEtYVjVTQnN1TEVpVitzZjRsb05sdmVWU3BqeWc2?=
 =?utf-8?B?eHVGQWp0MmJ1Ly92cmdPd3EwNTJpR0EwMlNTdzZZQW9nWkNlRnhHRGxOazJ4?=
 =?utf-8?B?ZFJmTDdIY2Vua2xVVWY5UklRekhYN3ZPdVlzbDd3ZVZiQkNuYnd2QmVXZTd4?=
 =?utf-8?B?MG1aSVg1bzBCSmhoVUNsVjNRN3BMdTBqSWFhdFp0RVNFRkRFTmNocHlDUTdz?=
 =?utf-8?B?N2swc283SUgvQ3piU1Z3ZkhTWWh4R2R6RjVJbzVDMVFlbTk5Mk9td1NUM09y?=
 =?utf-8?B?dWs4dS85QThUaVRsQWt2YzIrWnZqeFlFMHh1STdlajg2dks1R2luREFxVFpK?=
 =?utf-8?B?cnhMYzhLOXdQMm15K29hdVFEZ3Q2R3p3TUd6QmxJbVhBNGJxc3ErTWpkSjdo?=
 =?utf-8?B?VzFiQlY0VzQ3azE5NEd3MHpTREhBMWRnVmFRUjNsSkZham1rRklnRWVoUSsr?=
 =?utf-8?B?dkJFbXIvckpYbTA3RHcrSnBXZ3hGT2ZlM1JIanJOMEFDNjQrVENFeGhTenFB?=
 =?utf-8?B?K282WlJxLzhVY0tZTEFRb2VRR3gwR2I0M202RE9ES3lZRUdtNXE4R05KZktP?=
 =?utf-8?B?OGlheGcwZ0tmMFlVT1dEaFdmK2l0alV5aSswS2tUd0RhajhWdXFVNWtFSnE3?=
 =?utf-8?B?allmWFk3WEhCaExEekhYR002Y0hNUGovYlJEdkdRMnFhUWFhMDlRWGlEN1lK?=
 =?utf-8?B?Z2VyOEZiQjFiWlNkbThpS0lDZWRiT1NzYmtjTDF2UjRSUmRVVUZGOHNyQnNw?=
 =?utf-8?B?U0hyc3YzVUJxbXByTFhRbjhMcnd0QnR5ZkQ2NC96cEt2bWw4ZTZlMDZUa0lH?=
 =?utf-8?B?SDBENFgvM1M0STVOc2VENDhMNkhtMFlZVm5tZCtLSnVUTGRnYWpQWGE0Y2Vz?=
 =?utf-8?B?Y01XWHppbHQ5STNVWERMaTdHcjVaZEVDcytmTXBnYk5mQ2NBU1FFL3M2cTJn?=
 =?utf-8?B?Zkk3TitoSlFkQXRNcHZ2RXZGQTM0WXVDRlp3MEdGekY0NEpZeFgwdFVwNHR5?=
 =?utf-8?B?eEo4dWpOMi9ZVDBVaG5YaFlMUkVRWlZLTC9sbmN6VWp5RWhMekgvTnZJenN3?=
 =?utf-8?B?SlIwTVlwaXF1RXpac3gvUEhVLzlZb2d3ZGRMZ1FveFN4MzdObTVvVm1vTjNV?=
 =?utf-8?B?YS9GckJ4KzNNWEh1OC9WY0ZTYnZnTTh4YlBmQzRxUjNiSHNVTy9xNi9udTFM?=
 =?utf-8?B?WEJvQnVWMUZ4djVSMjJLcnI3em1NV2lyTkJsV1NWYXNGY2JtaEF1OG4zRm91?=
 =?utf-8?B?cVQrY3FrM0VncDVnUFFCRGJ2UU83aThranVKNXRzS3NVY1pzQUo2QXUvQ1d3?=
 =?utf-8?B?NU92TFFPaGxkRFptWWlCaHB5TXk0Ky8xL2MwUWk0dDIxTGw0NlM5cmZuZ0I3?=
 =?utf-8?B?cnpOL2w5UHo4elgzOUpWaFRIWkV5WnpzazZ5T1lrVmpsS2hYWC9QaEpQWWZx?=
 =?utf-8?B?SktudmtCcHgwZitpTysyaXozZ2UrSUxZTnl1UytEN0R4Sjh0MG5FalA1Sldo?=
 =?utf-8?B?czNoUUtTdnNISmpYeUpyWklGUjRodktsRHdNSUlJLzBIMUlFeUZwbFIrSGdX?=
 =?utf-8?B?dGxadGpUTXRxRy9aNGF1MldDeDdGY2dyK3RlMmlVWG04ZlZ3RnRITUF4V3V5?=
 =?utf-8?B?QlBNdDJDeEt4eHBTbU9KTW1sQmx3K3IzNGNxSXVUdHlyVHFGeXl6NDNXc25y?=
 =?utf-8?B?cXdYT2lBd0RFWGRSM3QvMWNOdnNNL0pYZFFXWnVLb2NoMVFFYm1CekVSVExy?=
 =?utf-8?B?QXJ0QnhXeVR3MzN4K0puYVFQVzM5YUk5Smk1M0dFdmhNRkVmdW9RVjNRWXpn?=
 =?utf-8?B?bGpxSmtuK0JKN3NSNXR4Y05LUEpkUGdNMXFNd0Z3MFk5Ym8xNFdieDRHdTEy?=
 =?utf-8?B?RFQwVzFDSkpSTTE0UFkwRlNxdWZjb3FjbWREbzYyeGZMVENlcVlCMmpzM3N5?=
 =?utf-8?B?M0ljVHpWNDhlOG8zWkRtekNqQ1JMNmhSZUZjalhzNm9STW1rL0NpczlGUE1a?=
 =?utf-8?B?SU5ycVp5MlA5TGMrdDhicDhuRHVnaUVtSHU4S0J1YnFxdEVWWG15cU5vOEgz?=
 =?utf-8?B?bUFrNGN4aG9kQ3BZRVJPK0lPUnJVdnBTdGdnYVoyRVVVZWZRaTgxSFp5ZnNm?=
 =?utf-8?B?dkpuZVZwRjR5TGJ0OGpiVFoxdU1BeTB3N1RZd2RRRTJ0NUtOTjY1Zz09?=
X-Exchange-RoutingPolicyChecked:
	KfpWThmt6bxxm9uXXkQtxchv9zLPS9FOSpPfAjrYJPS3AirSA+cG4CQaCqD0HW0IO7fETP74VOVzLZehhU0vyaggEvGtX0UruH1tFtwUTZgwWuEywW8hlw//9mcinLtNAxYODMlr49Hl6lNdQCWl8UKaEIjNKx91rp4Hu1hMXaSQ1O8yoenp3DRuBKSWk0EP485sBl3LcvPYlPfxGCXcap7woeg/NGZB0dPz1q9T9IUCfpKu8aMlT3QwXXmvpDdiP7uWHHS80rd+1sB5RFv28o9pcN1LekjHNM73NmZfjLG60StCFSjx8IDSmqznqgXK+2+3SZJw9cmlEeZDDzlgNw==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	4Qd2shfWABmZB+1qeOKWw2kjunf5VnFwYX7pwv9VeI8haAesF8V2DEk+Isaa3QGF5yY0DhoPJwyF5xNHpUwZONPXfIjTz+tgpFE2W1Z+AaS0JbalXiopyQ5r7BNo823kYA/Va4U7vyVJKvO6hL+TrA9Pm8NQG+cB7FYoPeG8BojUputTPSYjhDHxE9kLbT0plKvN95WGf6pVu0LNJRFg+tu3PH+do5PevyoFZJ/BurM2g11NMvaCTsYiPWOdCBDUUncq6hMe6m4DyXYZopQEDzivvE2Dvv9CV5rs2Vfrbth5KBQIgaYnn/NGSOH3Ke5pIJok9JvdjFhiQIrLYPWk8MIKXEcAc0DVTULR/tA/0RT8/MRbyoJyebCi4OLDqqEvzSw23yybI0qXM1gx9QE2CI8ray+VJW9xW2ZHlJRq0Z5kA437+lrJ1k3qDcqD1/yLWvWigCGhvafRR9QbKJl+ng1jy7JoAhxoZdE612hCKovpgXuavCM5XBaNKor28/r/305ikDNX34+133kTIUF2Cew0CS38EAKc3HM+d6/3WQ7s35BmpwRMu/zdjcnBJb9thbvwyuLlzIHIVnCksQk+XadWOiRiGpbrwqOYZvZAX0k=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dac31658-0e53-40f8-5b31-08deb5798ff7
X-MS-Exchange-CrossTenant-AuthSource: BN0PR10MB5109.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 07:38:04.5132
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2ERiowJv5imdCbpUxuLqHTK07Tpjwa72GP8e4XeLw1AH6P1jKosxM9GytGiZOVfOdfHeRVTQCXHEE6v3gL8XKQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB7140
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_02,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 bulkscore=0 lowpriorityscore=0 adultscore=0 mlxscore=0 suspectscore=0
 spamscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0
 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2605190074
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE5MDA3MyBTYWx0ZWRfX4blUuN7yZiX7
 mb9xGTX3iH0paZ45euSbm/C83oPiZXZkmF+MhxGIlYRdIzyNT7L0YgbqDg5LIz634QhFV7al5NZ
 oYgOhqz9tE39Q2A1n1BU330hDI8NgyeNGVQqojJnvMYkjw6cRIz0KgUt7o8HlPvTt5bvxs6FYjV
 LnxaSYp+4xS8bFoB5WnNYvmX1npQBIQDlL10XWp54qivaMcGsgho5KBhRGOfJ5p4h7ZGg0fgpiC
 jethFEtUHjf8b8t+ncRDJoinRDKdH82EJzCkQ1RTtP4P8IZZxrWKTxEo88DDALPzragfoJojHnu
 8vP8akOV7yL1zJP5pF1QFufRFVR0f1BCUI5Se0hvBgn7XGJABy1l71eiPaI95IlRCwv1xNz2ErJ
 yTKm2BrKemn1xj8wsM8yYaR0MHHg4pPgchHdOY5yRVzWx9e/JZXE5fF8rXsz6XidEux++JBYYwY
 jXhrvXCVbFTgSV8S6Gw==
X-Proofpoint-GUID: 974FNTPzgHzDMT0Jk64deXyvvFIVwq3d
X-Proofpoint-ORIG-GUID: 974FNTPzgHzDMT0Jk64deXyvvFIVwq3d
X-Authority-Analysis: v=2.4 cv=TLN1jVla c=1 sm=1 tr=0 ts=6a0c1367 cx=c_pps
 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:117 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10
 a=NGcC8JguVDcA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=jiCTI4zE5U7BLdzWsZGv:22 a=x0eKOSpe3m1H3M0S9YoZ:22 a=pBOR-ozoAAAA:8
 a=W_2rHOmGQDXlG3qyckkA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
X-purgate-ID: tlsNG-33051d/1779176324-42F62938-7B78A2B8/0/0
X-purgate-type: clean
X-purgate-size: 5193

I have encountered this build error with this patch.

Perhaps it is because all usage of "flags" are removed.

$ make -j32 > /dev/null
arch/x86/kvm/x86.c: In function ‘kvm_guest_time_update’:
arch/x86/kvm/x86.c:3359:23: error: unused variable ‘flags’ [-Werror=unused-variable]
 3359 |         unsigned long flags;
      |                       ^~~~~
cc1: all warnings being treated as errors
make[4]: *** [scripts/Makefile.build:289: arch/x86/kvm/x86.o] Error 1
make[3]: *** [scripts/Makefile.build:548: arch/x86/kvm] Error 2
make[2]: *** [scripts/Makefile.build:548: arch/x86] Error 2
make[1]: *** [/home/opc/ext4/mainline-linux/Makefile:2143: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2

Thank you very much!

Dongli Zhang

On 2026-05-09 3:46 PM, David Woodhouse wrote:
> From: David Woodhouse <dwmw@amazon.co.uk>
> 
> Restructure kvm_guest_time_update() so that kernel_ns/host_tsc are
> always "now" when doing TSC catchup, then swap in the master clock
> reference values afterward for the hv_clock.
> 
> This makes the TSC upscaling code considerably simpler: the catchup
> adjustment is computed as the delta between what the guest TSC *should*
> be at "now" and what it actually is, rather than mixing "now" and
> "master clock reference" timestamps.
> 
> The seqcount loop now also contains the kvm_get_time_and_clockread()
> call (matching get_kvmclock's pattern), with the same WARN for
> unexpected failure.
> 
> Based on a suggestion by Sean Christopherson.
> 
> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
> ---
>  arch/x86/kvm/x86.c | 67 ++++++++++++++++++++++++++++++++--------------
>  1 file changed, 47 insertions(+), 20 deletions(-)
> 
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index e281c49561fa..8e4993ef4f6b 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -3363,39 +3363,51 @@ int kvm_guest_time_update(struct kvm_vcpu *v)
>  	struct kvm_arch *ka = &v->kvm->arch;
>  	s64 kernel_ns;
>  	u64 tsc_timestamp, host_tsc;
> +	u64 master_host_tsc = 0;
> +	s64 master_kernel_ns = 0;
>  	bool use_master_clock;
>  
> -	kernel_ns = 0;
> -	host_tsc = 0;
> -
>  	/*
>  	 * If the host uses TSC clock, then passthrough TSC as stable
>  	 * to the guest.
>  	 */
>  	do {
>  		seq = read_seqcount_begin(&ka->pvclock_sc);
> +
>  		use_master_clock = ka->use_master_clock;
> -		if (use_master_clock) {
> -			host_tsc = ka->master_cycle_now;
> -			kernel_ns = ka->master_kernel_ns;
> -		}
> +
> +		/*
> +		 * The TSC read and the call to get_cpu_tsc_khz() must happen
> +		 * on the same CPU.
> +		 */
> +		get_cpu();
> +
> +		tgt_tsc_hz = (u64)get_cpu_tsc_khz() * 1000;
> +
> +		if (use_master_clock &&
> +		    !kvm_get_time_and_clockread(&kernel_ns, &host_tsc) &&
> +		    WARN_ON_ONCE(!read_seqcount_retry(&ka->pvclock_sc, seq)))
> +			use_master_clock = false;
> +
> +		put_cpu();
> +
> +		if (!use_master_clock)
> +			break;
> +
> +		master_host_tsc = ka->master_cycle_now;
> +		master_kernel_ns = ka->master_kernel_ns;
>  	} while (read_seqcount_retry(&ka->pvclock_sc, seq));
>  
> -	/* Keep irq disabled to prevent changes to the clock */
> -	local_irq_save(flags);
> -	tgt_tsc_hz = (u64)get_cpu_tsc_khz() * 1000;
>  	if (unlikely(tgt_tsc_hz == 0)) {
> -		local_irq_restore(flags);
>  		kvm_make_request(KVM_REQ_CLOCK_UPDATE, v);
>  		return 1;
>  	}
> +
>  	if (!use_master_clock) {
>  		host_tsc = rdtsc();
>  		kernel_ns = get_kvmclock_base_ns();
>  	}
>  
> -	tsc_timestamp = kvm_read_l1_tsc(v, host_tsc);
> -
>  	/*
>  	 * We may have to catch up the TSC to match elapsed wall clock
>  	 * time for two reasons, even if kvmclock is used.
> @@ -3404,17 +3416,32 @@ int kvm_guest_time_update(struct kvm_vcpu *v)
>  	 *      entry to avoid unknown leaps of TSC even when running
>  	 *      again on the same CPU.  This may cause apparent elapsed
>  	 *      time to disappear, and the guest to stand still or run
> -	 *	very slowly.
> +	 *      very slowly.
>  	 */
>  	if (vcpu->tsc_catchup) {
> -		u64 tsc = compute_guest_tsc(v, kernel_ns);
> -		if (tsc > tsc_timestamp) {
> -			adjust_tsc_offset_guest(v, tsc - tsc_timestamp);
> -			tsc_timestamp = tsc;
> -		}
> +		s64 adjustment;
> +
> +		/*
> +		 * Calculate the delta between what the guest TSC *should* be
> +		 * and what it actually is according to kvm_read_l1_tsc().
> +		 */
> +		adjustment = compute_guest_tsc(v, kernel_ns) -
> +			     kvm_read_l1_tsc(v, host_tsc);
> +		if (adjustment > 0)
> +			adjust_tsc_offset_guest(v, adjustment);
>  	}
>  
> -	local_irq_restore(flags);
> +	/*
> +	 * Now that TSC upscaling is out of the way, the remaining calculations
> +	 * are all relative to the reference time that's placed in hv_clock.
> +	 * If the master clock is NOT in use, the reference time is "now".  If
> +	 * master clock is in use, the reference time comes from there.
> +	 */
> +	if (use_master_clock) {
> +		host_tsc = master_host_tsc;
> +		kernel_ns = master_kernel_ns;
> +	}
> +	tsc_timestamp = kvm_read_l1_tsc(v, host_tsc);
>  
>  	/* With all the info we got, fill in the values */
>  



From xen-devel-bounces@lists.xenproject.org Tue May 19 07:39:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 07:39:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312490.1582578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPF3J-0005yt-Ic; Tue, 19 May 2026 07:39:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312490.1582578; Tue, 19 May 2026 07:39:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPF3J-0005ym-Fl; Tue, 19 May 2026 07:39:45 +0000
Received: by outflank-mailman (input) for mailman id 1312490;
 Tue, 19 May 2026 07:39:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPF3H-0005yD-Lu
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 07:39:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPF3H-0034kA-1d
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:39:43 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c13b7-5cb7-0a2a0a5109dd-0a2a4503aa8e-44
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:39:43 +0200
Received: from [209.85.218.50] (helo=mail-ej1-f50.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c13be-672d-0a2a45030019-d155da32c85a-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:39:42 +0200
Received: by mail-ej1-f50.google.com with SMTP id
 a640c23a62f3a-bd394f4a931so698721766b.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 00:39:42 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4c31404sm673138166b.25.2026.05.19.00.39.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 00:39:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779176382; x=1779781182; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=8ojdXVC2NxdZc5U92Upsaz8ZswxJ7GhnKFyDv+/nulg=;
        b=UMuVMTU1CdrD/+zUdsFsukUox4MwirENUdKpXuih00e3TG5/7tvxsrwIO9ibh8uQ7u
         eECckIpUnjhsfAGIRY8Mj/6BiBHdh7rJKolNVBqEOG/Qrfn3DJyXnu8o2WnByz/LLT+i
         Yr8geLPU1wbykIbek7bgKUdURafdL5nd/2FBJeY+9WG+UosIvxIr0nWph/uJGWGHYcSF
         Ggmcq/A/0RXQ5f+lAK/LdDSUJ6AW5nzI5UixzLFex71CUHzbOXRttyidQnJyzHmiQWGV
         S51P2Hjc600GkgOnNNvJAKzagtP6ddeD1lKOQRCtjbR8taFvyGaZRBBp+sFe5tJYKhK5
         I5ZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779176382; x=1779781182;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=8ojdXVC2NxdZc5U92Upsaz8ZswxJ7GhnKFyDv+/nulg=;
        b=J0QsC8QqftxjGp1InZAShbd2xlJIVmbqBNZs/nljKS8VdHUhMpNlG08dyqeCZiPJBc
         S8xkJDL0sw8MhF/lLz/Lh6v0OXXgNmYpZAMUe9e2rrdukEVu1P40oMLOaOMv1U1QNwpV
         a7fNU0QJ8HYP+ZkEFBiVMQRGcjxnIq3srpKwiB8p/x6P0SFbI61CW2ifjkdQPTVCwK7K
         ynTmUnX+7I3iAkQtwKgcM11e8cGVuXZuErAoNc2vHbyzG5JOekCay3HABJVgJlfa8Tag
         /dl8W/MEYahp4f/6gsGPNbdnlGUW4M6exCAbvk+ZClrxEvFIUWrRoLORP7YlkdzOTAik
         oIhg==
X-Forwarded-Encrypted: i=1; AFNElJ/8NTLoGYMZdmzpg8UL5F8iqelC6OEsS6vcmTZljD0NhbsgMGMEiU2YWYxz8c+c77ly+4/e69ATWsA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5p9By0YQmcHQz9aWNJZJY/0CC+E/nMFUae1n/IbTX7kW1MrFD
	3Jj/cuJRuudB/9Ttf5zhiCJyFfG+1vbLo06oKsdKVdNkGrYu6lMiBrsX
X-Gm-Gg: Acq92OFX5P9HR1fBw6v6ekEyBHdJiZzoqRpW9b0bt34FdwouhooDfD24RU16RChexsL
	xFQPzBxPV5x8vg5yZWtQD0ncEfYr0Wf+/5ofxoZrtjhAoingfXaYehiZw2JnBMrFRCEaQFThc0+
	1puQWibmdHaMRm1BtGF7eJAqykZazXRXIUzKSm+a9Y+HD4yYfPw4qqF6GmH2xhR8SNj591poiIC
	9fpgdtA6aJmhh2udqma9bSo45UMcUgip1EzWSDUGRaL/JB09ifWQrGiLAztc2lQMtJJqO6uSJZl
	28qkx4Y9zhTFlG6h8yWkTJPJbFYWIdxkFrOdk9boPfqFdvR+LnpohP6CZKdPVhpoWgG/idLMr7t
	MzZlIu1ualrSq0aLXkenZUd6S5BLrqYtbBPc8PFDRGR/dNe0gRWIGC5LPr6yV/r0ZwJP1oGGPmV
	x3p0u9UYuiTGK4qlV7sigTtBwPhLvkNRKtgQepfY7Ufs4tblauT2MpACr+s3Zc7yTT5irzsY0nK
	VhguKSV9CMTiw==
X-Received: by 2002:a17:907:8b98:b0:bd3:413d:c51a with SMTP id a640c23a62f3a-bd5178848demr1045827566b.17.1779176381873;
        Tue, 19 May 2026 00:39:41 -0700 (PDT)
Message-ID: <24955932-dbad-435a-8cd6-08301d5201a5@gmail.com>
Date: Tue, 19 May 2026 09:39:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8] xen/domain: introduce DOMID_ANY
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: dmukhin@ford.com, xen-devel@lists.xenproject.org,
 andrew.cooper3@citrix.com, jbeulich@suse.com, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, anthony.perard@vates.tech
References: <20260507202840.293269-1-dmukhin@ford.com>
 <1778680300.8631fc262581453bbf619ec5b2062170.19e219b849d000f373@vates.tech>
 <alpine.DEB.2.22.394.2605151424030.52999@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <alpine.DEB.2.22.394.2605151424030.52999@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1779176382-3774E938-81D6A226/10/73395122804
X-purgate-type: spam
X-purgate-size: 1796



On 5/15/26 11:25 PM, Stefano Stabellini wrote:
> This patch has been around for a long time and has gone through the
> ci-loop multiple times. I think it is low risk.
> 
> Oleksii, can we have a release ack for this?

It looks low risk so we can consider to have it in 4.22:
  Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

> 
> 
> On Wed, 13 May 2026, Anthony PERARD wrote:
>> On Thu, May 07, 2026 at 01:28:40PM -0700, dmukhin@ford.com wrote:
>>> From: Denis Mukhin <dmukhin@ford.com>
>>>
>>> Add a new symbol DOMID_ANY to improve the readability of the code.
>>>
>>> Update all relevant domid_alloc() call sites and harden the domid_alloc()
>>> input value check.
>>>
>>> Also, fix problem with passing invalid domain IDs in
>>> XEN_DOMCTL_createdomain: turns out libxl__domain_make() (toolstack)
>>> uses 0xffff as domain ID.
>>>
>>> Fix failing tools tests too.
>>>
>>> Amends: 2d5065060710 ("xen/domain: unify domain ID allocation")
>>> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
>>> ---
>>> Changes since v7:
>>> - aligned the DOMID_ANY comment with another patch sent separately to
>>>    unblock xenstore series: https://lore.kernel.org/xen-devel/20260429120619.1013440-2-jgross@suse.com/
>>> - added fixups to mem-claim, paging-mempool, resource and tsx tests.
>>> - Link to v7: https://lore.kernel.org/xen-devel/20260408234046.1314021-1-dmukhin@ford.com/
>>> - Link to full CI: https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/2508345752
>>
>> For the tools part:
>> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
>>
>> Thanks,
>>
>>
>> --
>> Anthony Perard | Vates XCP-ng Developer
>>
>> XCP-ng & Xen Orchestra - Vates solutions
>>
>> web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue May 19 07:42:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 07:42:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312498.1582587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPF6G-0007Xb-VR; Tue, 19 May 2026 07:42:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312498.1582587; Tue, 19 May 2026 07:42:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPF6G-0007XU-SH; Tue, 19 May 2026 07:42:48 +0000
Received: by outflank-mailman (input) for mailman id 1312498;
 Tue, 19 May 2026 07:42:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPF6F-0007XO-91
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 07:42:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPF6E-008MlH-He
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:42:46 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c1472-5cb7-0a2a0a5109dd-0a2a45018dd8-4
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:42:46 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c1476-c1f2-0a2a45010019-d155802ba838-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:42:46 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-4890d945eb4so22515305e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 00:42:46 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fffb9aac4sm351862365e9.9.2026.05.19.00.42.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 00:42:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779176566; x=1779781366; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=mxE2l2DTSq4VLsZsXteYhl4kO9URI3X7sspxnSaUzCU=;
        b=C5gmeNp2hiKoB2Rvq/nOfmdQTnp3fhG6zl8z/ZISbNLReCtnBo0dQOZzzH7yQHDXe2
         xiZq2TnNtZvQqmFIp3NQ2wFxMYbAgrwXlnYfV+MLwS41TMw3rNlt2IAV5KN0A8Z2kyxx
         SJLjRY/UsfyP2W81C6fI967TPtvtLmcq8RbX4th/qEMF7zbajvOxEavVYltXvpzxgDNV
         fcUI4BxLH2c8EsSyWyh9fMI+M4I45T7qeqiScJSQUE0cKZyDQpDHci5ZtCcSc4flMNDI
         8YyZsBjaluCnfVmQ2Uw0dZS1uLxTZoNTYC2VkkjSyu5Cs1M0pDAzExaL/iX1dowak62Q
         kzjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779176566; x=1779781366;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=mxE2l2DTSq4VLsZsXteYhl4kO9URI3X7sspxnSaUzCU=;
        b=DnE1IV+Ra1K8Qu2sftHHBPZ5KgMSQo+xII/NQrdT/0VP5pMQnRK7gdDkee30hr69RG
         nhMmgLpsO1sYS/S3JKeVpitsq/sqYrXth4B6Q24nAbV1Ja7Z6f+CR/fBgeyS6q58uQIf
         dziiFY/PiAq2XnN/s6bPEsNZXFrFWrgSbmI2HG4l5N25raT7y70auLV+9EIAvvNaw9Mh
         w2lL18OPZG+HNKR6BKJqpu5tqyd30N/T4TrqvWS8tuDuEDjT/BDyLo1bOmD9E7wSHpW+
         hxVDQOeAIpqv6n1mwSiZ5gn7Vi6s/RTbxXvzFYX3XgD+HuoH9naELbBl41A9KU4oP0FO
         NxEQ==
X-Forwarded-Encrypted: i=1; AFNElJ/i+1yOSUfDmyb7/jkIBy9sIFHqCFboxUVDgBfxByskC+OMyH30ajCj6ZAQflmJCpk9YDpPk9+fy30=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzjUTfPF40V/SyIkZSax7Yrj7pXWgcByXmTbUkZnZjKIB95wtTT
	SwFz+3mmeQL8qCbfuuQRLzSyG7FUmtUSD9dXU6ggFpnLjr0Qs/haipuY
X-Gm-Gg: Acq92OFx8V6gWTlPyj4quLMscSDUIZf6+3fbpCcbPEXZXmMagq/zcT305dMsxIeUJdT
	0eHAIcgnVeQ5DHtVcjYXREO11zfK1NnZPnQkXqa09euiPIaGX8kpp37tn3cXpGs6F0LoqqKDnOE
	vtXfyp64WDF/qFAvwz1OTpHTUCUJDFPnn+Jjb6gWn7r104kAUCleXQCsgFsl/eMpdu/MBoLIW4l
	qWf0CqYhkzDpZ+dAllpCw+DKvuHefv+3NjeJULoQwLiMSTM9dsIebGO6d5sLgXT8dkJeV/cWhq8
	BC9mmO3jJR46sx55ozKr4e87bFfwjp+I/NOvtIBZPx6BhrRnXDtSqV1fkUFc2bLXCbC5neehwLi
	g9tNhzUA4/4FUi2SpNnf4UqxmtF/xgYnY4cmj2KwX5lzJDsjakUBFhGn+ZxU6Dy1snkjkW4TgzO
	vvILJeTZsMhAH4nOWXXDiM/QhD+QxjbCDlorFKnEXeZhiT/jAJ0Y6QasR2gnsRF0XuYO7SQ8Lrr
	Fk=
X-Received: by 2002:a05:600c:8485:b0:48a:5339:a46 with SMTP id 5b1f17b1804b1-48fe537fb70mr4494115e9.9.1779176565600;
        Tue, 19 May 2026 00:42:45 -0700 (PDT)
Message-ID: <0386a521-5a26-430c-9143-e70e77c8d452@gmail.com>
Date: Tue, 19 May 2026 09:42:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] arm/gicv3: Detect normal NC ITS command queues
To: Stefano Stabellini <sstabellini@kernel.org>,
 Luca Fancellu <Luca.Fancellu@arm.com>
Cc: Mykola Kvach <xakep.amatop@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Mykola Kvach <mykola_kvach@epam.com>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <4d72da78b9c30f5da62c8e03c3b03a01c24101eb.1778836836.git.mykola_kvach@epam.com>
 <05997446-AB81-433D-84D9-48A5FBE1D62D@arm.com>
 <alpine.DEB.2.22.394.2605151434470.52999@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <alpine.DEB.2.22.394.2605151434470.52999@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1779176566-AC055FF4-76400CB3/10/73395122804
X-purgate-type: spam
X-purgate-size: 2029



On 5/15/26 11:35 PM, Stefano Stabellini wrote:
> Oleksii, can we have a release ack on this fix?

Sure, fixes could go until Hard Code freeze is started.

Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

> 
> On Fri, 15 May 2026, Luca Fancellu wrote:
>> Hi Mykola,
>>
>>> On 15 May 2026, at 10:40, Mykola Kvach <xakep.amatop@gmail.com> wrote:
>>>
>>> From: Mykola Kvach <mykola_kvach@epam.com>
>>>
>>> GITS_CBASER.InnerCache uses the GIC BASER cacheability encoding.
>>> Both 0b000 (Device-nGnRnE) and 0b001 (Normal Inner
>>> Non-cacheable) describe non-cacheable accesses to the command queue.
>>>
>>> its_map_cbaser() only checked whether the shifted field was zero,
>>> so an ITS that reports Normal Inner Non-cacheable would not set
>>> HOST_ITS_FLUSH_CMD_QUEUE. Decode the field before comparing it with
>>> the unshifted enum value, matching the handling of ITS BASER tables
>>> and GICR_PROPBASER.
>>>
>>> Fixes: 8ed8d21373be ("ARM: GICv3 ITS: map ITS command buffer")
>>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>>> ---
>>> xen/arch/arm/gic-v3-its.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
>>> index 9005ce8ce5..7560d46c6d 100644
>>> --- a/xen/arch/arm/gic-v3-its.c
>>> +++ b/xen/arch/arm/gic-v3-its.c
>>> @@ -424,7 +424,8 @@ static void *its_map_cbaser(struct host_its *its)
>>>       * If the command queue memory is mapped as uncached, we need to flush
>>>       * it on every access.
>>>       */
>>> -    if ( !(reg & GITS_BASER_INNER_CACHEABILITY_MASK) )
>>> +    if ( MASK_EXTR(reg, GITS_BASER_INNER_CACHEABILITY_MASK) <=
>>> +         GIC_BASER_CACHE_nC )
>>>      {
>>>          its->flags |= HOST_ITS_FLUSH_CMD_QUEUE;
>>>          printk(XENLOG_WARNING "using non-cacheable ITS command queue\n");
>>> -- 
>>> 2.43.0
>>>
>>>
>>
>> Looks ok to me
>>
>> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> 



From xen-devel-bounces@lists.xenproject.org Tue May 19 07:43:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 07:43:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312502.1582596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPF6r-0007yb-6m; Tue, 19 May 2026 07:43:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312502.1582596; Tue, 19 May 2026 07:43:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPF6r-0007yU-45; Tue, 19 May 2026 07:43:25 +0000
Received: by outflank-mailman (input) for mailman id 1312502;
 Tue, 19 May 2026 07:43:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPF6q-0007yL-Fg
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 07:43:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPF6p-00BRVh-Rm
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:43:23 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c148f-5cb7-0a2a0a5109dd-0a2a45078b64-18
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:43:23 +0200
Received: from [209.85.208.44] (helo=mail-ed1-f44.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c149b-229c-0a2a45070019-d155d02ccd14-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:43:23 +0200
Received: by mail-ed1-f44.google.com with SMTP id
 4fb4d7f45d1cf-67c1e0229acso5338770a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 00:43:23 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4e21235sm665912566b.43.2026.05.19.00.43.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 00:43:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779176603; x=1779781403; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=U67Y+WBfxsx3bNgtn4VyTq7TZtw0qP5joQfLchg05Dg=;
        b=kNOS7giwfrS9xd/axhcT4eF5MHTiGxWTj8w75lIWQekdl6Mo0urzdY89CxIR1DkCbi
         eCygLfa4pntxxycZTyPIbpEUVlq9cXUnhaLrV8QeBREu6XKgkU6cKZ8zkNHYmlbPCvtM
         j4NsZDkRg9WiSBtriRxMrrBR4BqRcReBZwSVnYSCKbz6C+kTwid3wv+ufgiPl8RTpYQW
         TXXUV99Kpxq7xsILr1J1puQiTIvfM5x9V6snVqcifSVWiDvhnVH9lbf9Q2hqpwxcMdzV
         sgcOgEVPpbQPGQLqmqokRLGqNUVyo1bPt7TBy6bFAcxUUelkGtNlxqBt5twNyZ2zUq2V
         kRTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779176603; x=1779781403;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=U67Y+WBfxsx3bNgtn4VyTq7TZtw0qP5joQfLchg05Dg=;
        b=bInAQ/tKDUPV3ZhLL9QWuKat1rGT7g/l2lvsd8ltxaxR+BWunarg2N4ZlbsJ4W0Fil
         V1jA0OH7++iPXnACnHYVOPvD/z2E+OF/QXSW+taJ8B5FHfKkJU33SRrNshiBnlf9jhcm
         FdqfL1eVYSTSKtfUA4qnhZhwGIoAwt7b5M80Dlhyx5CvhZIerus98ReTds0LEfRgGojC
         GzIOfDmld1wP9wdCKg3Q7vGEo95QIy3cBJ3xTzjwu0Fev3SDAsrdhKDI/DE6halOzXtH
         /ZVkeag6rZFgjerFKGDQTs5qHw4E3svowIR2VeDVy1z0j3KWgvL/X1l/xDTxqpYgzvIf
         P4wQ==
X-Forwarded-Encrypted: i=1; AFNElJ84WVXc0ASJYhYa3xGUoiDNMpJblnZTfAzC69ury4WRMm/Sz4rUDf1Ai1iu5fVHAHuiP7yXB97/R7o=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywbe7iF8kEBs3p94N+7UUb7/oU+bXuEO1AB9IPpcvy3U/ejyUW2
	zWzlA/3BahjANoPCGYLSqVWcAeVHCt3Lw4rWcCJjkxtOf7jQY9pDCDpb
X-Gm-Gg: Acq92OE4v3mXJjaJxiLUUsbk9Us3+w1CQDmWxeghIn6K42+7wumhUXxQ07rRzWP2axc
	aV5kKj1O9elub0Pc7EVPiOkirqH5FCoc7jlqKaUT3tAmCYcB9UhU1g+uFO5rVkn/9Hc/rThcExK
	wWuEr3DeUigls3ZqJngbM8hsdSG4JjNnd36w+HADLTslzLzpbkoTTUTdNphBBbMmgnG8XnAk9vg
	92WO7Xdejst3z21RamDC3agJMGyNzb0pFS4hpXvrcRz/ifbC/vWLwaYnwx38KY7WtEOwc7PsWSy
	sc0V7r+FaubqwEbSxQx/ch9CMX/ELrmmwz3HPAd2c10OPhEkrczG2XanaECSjypuDS9VR9q6BuK
	NVEldYQUMDC75cPwjE/7seOHl3ctbBYTV8PbBL1ocQ3dYqX6APys2ubYj7NBfHGC3fDRc7hDSEN
	hk0XCg1lO9txKxwrpONfgT29dGn9F4w4veiBG+dYw1YfcKNMDYk8JrYGcadDdo9LktwnXYq+hd1
	EI=
X-Received: by 2002:a17:907:8325:b0:bd8:f4bf:76e2 with SMTP id a640c23a62f3a-bd8f4cec6fbmr174028066b.48.1779176603045;
        Tue, 19 May 2026 00:43:23 -0700 (PDT)
Message-ID: <79b48043-baf2-4c42-aabe-062b40b3057d@gmail.com>
Date: Tue, 19 May 2026 09:43:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: gic-v3: Wait for redistributor RWP using the
 right bit
To: Stefano Stabellini <sstabellini@kernel.org>,
 Luca Fancellu <Luca.Fancellu@arm.com>
Cc: Mykola Kvach <xakep.amatop@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Mykola Kvach <mykola_kvach@epam.com>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <0fc5e4d297b8dde66ea36be3ebd60a68dea2562d.1778749474.git.mykola_kvach@epam.com>
 <EDF5B3D9-F532-4D8E-B156-172649433AE9@arm.com>
 <alpine.DEB.2.22.394.2605151436280.52999@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <alpine.DEB.2.22.394.2605151436280.52999@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1779176603-09364C48-4939A2F1/10/73395122804
X-purgate-type: spam
X-purgate-size: 1430



On 5/15/26 11:36 PM, Stefano Stabellini wrote:
> Oleksii, can we have a release ack for this fix?

Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

> 
> On Fri, 15 May 2026, Luca Fancellu wrote:
>> Hi Mykola,
>>
>>> On 14 May 2026, at 10:08, Mykola Kvach <xakep.amatop@gmail.com> wrote:
>>>
>>> From: Mykola Kvach <mykola_kvach@epam.com>
>>>
>>> gicv3_do_wait_for_rwp() is used for both distributor and
>>> redistributor writes. The CTLR register is at offset 0 for both,
>>> but the RWP bit is not in the same position.
>>>
>>> For GICD_CTLR, RWP is bit 31. For GICR_CTLR, bit 31 is UWP,
>>> while RWP is bit 3. The redistributor wait path was therefore
>>> polling UWP instead of RWP.
>>>
>>> UWP covers upstream writes, including Generate SGI packets, and is
>>> not a substitute for redistributor register write completion. The
>>> existing redistributor callers need RWP semantics for redistributor
>>> register writes such as GICR_ICENABLER0 and GICR_CTLR updates.
>>>
>>> Add GICR_CTLR_RWP and pass the expected RWP bit to the shared
>>> helper.
>>>
>>> Fixes: bc183a0235e ("xen/arm: Add support for GIC v3")
>>> Reported-by: Luca Fancellu <luca.fancellu@arm.com>
>>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>>> ---
>>
>> This looks ok to me
>>
>> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
>>
>> Cheers,
>> Luca
>>



From xen-devel-bounces@lists.xenproject.org Tue May 19 07:47:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 07:47:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312512.1582605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFAi-00008C-L9; Tue, 19 May 2026 07:47:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312512.1582605; Tue, 19 May 2026 07:47:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFAi-000080-Id; Tue, 19 May 2026 07:47:24 +0000
Received: by outflank-mailman (input) for mailman id 1312512;
 Tue, 19 May 2026 07:47:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1wPFAi-00007s-0D
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 07:47:24 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1wPFAe-00D46j-0p;
 Tue, 19 May 2026 07:47:20 +0000
Received: from [2a02:8012:3a1:0:f5d8:254d:983d:8dea]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1wPFAd-00DiS6-32;
 Tue, 19 May 2026 07:47:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=yh1h2dw5VVpYebt6+Cbjk9VKND33+605S00u7+5X/Yk=; b=xK+9RhjC70r6phNB9wMTq1ySb3
	yrfEchn6VpxutqrgK2fFGFBDPRlZRZuOXGvR5Iu6H4imMBCG1P3acDiWLX4XdKptmb+q9TUk8XQE4
	Ll/ned0c2eFn40nhShmktAKY0rPrvM4hSrPh8p9LCpY2ZS8l8tab8M0MytzDhQnegHmk=;
Message-ID: <3d1001c8-6761-41ba-83df-42c83a453f3e@xen.org>
Date: Tue, 19 May 2026 08:47:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/1] arm64: Fix strrchr() matching of null terminator
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "Edgar E. Iglesias" <edgar.iglesias@amd.com>
Cc: sstabellini@kernel.org, bertrand.marquis@arm.com, michal.orzel@amd.com,
 Volodymyr_Babchuk@epam.com, xen-devel@lists.xenproject.org
References: <20260518234353.453193-1-edgar.iglesias@amd.com>
 <20260518234353.453193-2-edgar.iglesias@amd.com>
 <9b8ec97f-02ae-4a1a-9abe-59873d574a64@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <9b8ec97f-02ae-4a1a-9abe-59873d574a64@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Edgar and Jan,

On 19/05/2026 07:40, Jan Beulich wrote:
> On 19.05.2026 01:43, Edgar E. Iglesias wrote:
>> The generic Xen strrchr() implementation returns a pointer to the string
>> terminator when searching for '\0', matching the standard C semantics.
 >>>> The ARM64 assembly version stopped as soon as it loaded the 
terminator and
>> returned the previous match pointer instead.  This made strrchr("", '\0')
>> return NULL.
> 
> I wonder though: Why would one pass '\0' to strrchr()? If you want to find
> the end of a string, more efficient (at least in the general case) options
> exist (strchr(), memchr(), strlen()).

+1 I am interested to know the use-case for this change. Is this for 
compliance or real issue? If the latter, can we add some details.

It might also be worth to write a selftest to avoid any regression (in 
particular if we decide to diverge from Linux).

> 
>> Compare the loaded byte against the requested character before deciding
>> whether to stop at the terminator, so the terminator itself can be returned
>> when it is the requested character.
> 
> Nit: "..., so a pointer to the terminator ...".
> 
>> Fixes: 42c4eb6a83 ("xen: arm64: assembly optimised mem* and str*")
>> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> However, the function having come from Linux, imo the patch wants to go to
> Linux (ideally first, but at the very least also).

We are trying to keep the core implementation in lib the same as linux 
(see arch/arm/README.LinuxPrimitives). I would prefer if this is also 
first committed to Linux and then backported.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue May 19 07:51:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 07:51:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312519.1582615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFEF-0001wc-3P; Tue, 19 May 2026 07:51:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312519.1582615; Tue, 19 May 2026 07:51:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFEF-0001wV-0Q; Tue, 19 May 2026 07:51:03 +0000
Received: by outflank-mailman (input) for mailman id 1312519;
 Tue, 19 May 2026 07:51:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+4b7c99f23599b32cd9f8+8304+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPFEC-0001wP-GM
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 07:51:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPFEB-005j5g-SU; Tue, 19 May 2026 09:50:59 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+4b7c99f23599b32cd9f8+8304+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0c1662-bab6-0a2a0a5309dd-0a2a450281a2-6
 for <multiple-recipients>; Tue, 19 May 2026 09:50:59 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+4b7c99f23599b32cd9f8+8304+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0c1661-af86-0a2a45020019-5a9b3222b55e-3
 for <multiple-recipients>; Tue, 19 May 2026 09:50:58 +0200
Received: from 54-240-197-233.amazon.com ([54.240.197.233]
 helo=u09cd745991455d.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPFDt-00000005dE2-2vSi; Tue, 19 May 2026 07:50:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=2I20zy7pvCfvCrda6zbAyknDlpOfiA0ggmXaaJwhbRE=; b=jYbCwqTSVywpKDxG1FmH+Adqcw
	w6GggxLY7YanY4TEBm+Mt2T5jofi8uAT6c/QiFEUhFTx5WmWVieLRrSkByHHxgXoMvQZhJUvQcDsT
	jcpH9HKlG5fEM84xv6ESE14tZmaIutcWzIQzdkHebkfzsOpq7itycL43tvT31y/jjLwExK2/76GsU
	6+vD23HY1HYOnL36nmVxMRB0C7sOTU/UQercN4uAfZS4OFLhugLw2VxKLfVV1zH22Zr4PN4RLFQk8
	3dqSAFuGkZgs0KHIMNz3sEIkO3XlyRFupIo0FQajd4g+cYdZne+LOpbR8rtF1lK/FMwO6dvrbRV/v
	/1QQEAYQ==;
Message-ID: <b9980333f3a310bf05e170e79c40cb2f46485caf.camel@infradead.org>
Subject: Re: [PATCH v4 04/30] KVM: x86: Add KVM_[GS]ET_CLOCK_GUEST for
 accurate KVM clock migration
From: David Woodhouse <dwmw2@infradead.org>
To: Dongli Zhang <dongli.zhang@oracle.com>, kvm@vger.kernel.org
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
 Shuah Khan <skhan@linuxfoundation.org>, Thomas Gleixner <tglx@kernel.org>,
 Sean Christopherson <seanjc@google.com>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, "H. Peter Anvin" <hpa@zytor.com>, Dave
 Hansen <dave.hansen@linux.intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>,  x86@kernel.org, Marc Zyngier <maz@kernel.org>,
 Juergen Gross <jgross@suse.com>,  Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Paul Durrant <paul@xen.org>, Jonathan Cameron
 <jic23@kernel.org>,  Sascha Bischoff <Sascha.Bischoff@arm.com>, Jack
 Allister <jalliste@amazon.com>, Joey Gouly <joey.gouly@arm.com>, 
 joe.jin@oracle.com, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org,
 linux-kselftest@vger.kernel.org
Date: Tue, 19 May 2026 08:50:39 +0100
In-Reply-To: <935312be-9a86-49fd-8bb4-2c998a68e2df@oracle.com>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
	 <20260509224824.3264567-5-dwmw2@infradead.org>
	 <0ae8e471-db7a-4842-aca4-8ef643acde8b@oracle.com>
	 <d3c461415e05345a9b82e6f995828c1ae64a4e61.camel@infradead.org>
	 <935312be-9a86-49fd-8bb4-2c998a68e2df@oracle.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-boRirr429Da0AX+mV+GN"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-720697/1779177058-8077A161-3EE05FE6/0/0
X-purgate-type: clean
X-purgate-size: 17600


--=-boRirr429Da0AX+mV+GN
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, 2026-05-18 at 17:57 -0700, Dongli Zhang wrote:
> On 2026-05-18 1:48 AM, David Woodhouse wrote:
> > ...
>=20
> I have fixed the Thunderbird configuration. Does it look better to you?

The date is certainly better, thank you. But although I *was* up late
that night frowning at clocks, I didn't think I was up *quite* as late
(almost 2am) as it suggests.

But I suspect that getting *that* right is beyond the limit of
Thunderbird's configurability.

Thanks :)

> I really appreciate guidelines like the ones below.
>=20
> https://lore.kernel.org/all/20240522001817.619072-8-dwmw2@infradead.org
>=20
> Assuming I am a user of the new API, I feel confused about whether the go=
al is
> to replace KVM_SET_CLOCK with KVM_SET_CLOCK_GUEST, or whether the latter =
is
> meant to supplement the former.

The issue is that KVM_SET_CLOCK_GUEST can only be used in 'masterclock'
mode, when the TSC is reliable and the guest TSCs are all in sync.

Which ought to be *all* of the time, on modern hardware and sane
configurations. And in this series, I don't even let the *guest* screw
that over by setting different TSC offsets on different vCPUs any more
(we stay in masterclock mode in that case now). But the VMM can cause
its guest to come out of masterclock mode, by setting different TSC
*speeds* on different vCPUs.

So there remain some pathological cases where the kvmclock actually
still has a justification to exist, and those are the cases where it
needs to be set in its own right as a function of host time
(KVM_SET_CLOCK), not purely as a function of the guest TSC
(KVM_SET_CLOCK_GUEST).


>=20
> If we are going to use KVM_SET_CLOCK_GUEST when KVM_SET_CLOCK is not need=
ed, I
> would appreciate it if the API could carry more data in addition to struc=
t
> pvclock_vcpu_time_info.
>=20
> +#define KVM_SET_CLOCK_GUEST=C2=A0=C2=A0=C2=A0 _IOW(KVMIO, 0xd6, struct p=
vclock_vcpu_time_info)
> +#define KVM_GET_CLOCK_GUEST=C2=A0=C2=A0=C2=A0 _IOR(KVMIO, 0xd7, struct p=
vclock_vcpu_time_info)
>=20
>=20
> In the future, if we need to carry additional data, we could simply reuse=
 the
> padding fields instead of introducing another KVM_SET_CLOCK_GUEST2.
>=20
> The following is an example of how additional data could be carried.
>=20
> KVM: x86: Report host tsc and realtime values in KVM_GET_CLOCK
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit=
/?id=3Dc68dc1b577eabd5605c6c7c08f3e07ae18d30d5d

I'm not very keen on the way that KVM_[GS]ET_CLOCK threw extra time
references in over the years without any of them ever actually making
*sense*, which makes me reluctant.=C2=A0

KVM_[GS]ET_CLOCK_GUEST on the other hand does *one* thing: it exports
the relationship between the guest TSC and kvmclock. We don't *need* to
litter it with time values from other clocks willy-nilly.

But yes, you are right in principle.

And in fact, the other part of this conversation has really drawn my
attention to the ugliness of the "try KVM_SET_CLOCK_GUEST and if that
doesn't take then fall back to KVM_SET_CLOCK" which we are pushing onto
userspace.

Yes, I covered it in the guidelines: but we should always abide by the
mantra, "if it *needs* documenting, fix it first".

So perhaps we could build a variant which does both at once. It
provides the guest clock as a function of guest TSC for the sane
masterclock case, but *also* includes CLOCK_TAI at the same moment, in
case it needs to fall back to that.

Although... the actual reference time part of the existing pvclock
might be significantly in the past, especially with all the
MASTERCLOCK_UPDATE elimination that we've been doing. And we'd have to
regenerate it to get a simultaneous realtime reading, wouldn't we?
> >=20

> > > Do we need a KVM_CHECK_EXTENSION capability for this? If userspace wa=
nts to
> > > support the new API, should it detect availability via KVM_CHECK_EXTE=
NSION, or
> > > simply try the ioctl and handle failure?
> >=20
> > That might be conventional, I suppose. But I suspect Jack's thinking
> > was that userspace is going to have to *try* it anyway, and still might
> > have to fall back to what KVM_SET_CLOCK can manage, so userspace
> > probably wouldn't even bother to check that capability; it doesn't
> > matter.
> >=20
> > Since then, we've added some more attributes in this series though, and
> > it probably is worth adding a cap which advertises them *all*?
> > Something like KVM_CAP_CLOCK_PRECISION_API?
>=20
> From an API user's perspective, userspace may need to distinguish between=
 an API
> failure and the API not being available.

That's -ENOTTY vs. -EINVAL for the ioctl, isn't it? And isn't there
something similarly unambiguous for the attributes?

But I have no objection to adding a capability. The lack of it was more
oversight than intent.


> > >=20
> > > From my perspective, I am also curious how we should reason about thi=
s in other
> > > scenarios in the future. Specifically, when do we need to process
> > > KVM_REQ_MASTERCLOCK_UPDATE before KVM_REQ_CLOCK_UPDATE, and when is i=
t
> > > acceptable not to? I noticed that kvm_cpuid() already processes only
> > > KVM_REQ_CLOCK_UPDATE.
> >=20
> > The way I've been thinking about it =E2=80=94 and I'm only two cups of =
coffee
> > into Monday so take those words literally and don't think of them as
> > British understatement of something I believe is absolute truth =E2=80=
=94 is
> > that MASTERCLOCK_UPDATE is updating the actual clock for the whole VM,
> > while CLOCK_UPDATE is about *putting* that information into the per-
> > vCPU pvclock structures.
> >=20
> > So after a MASTERCLOCK_UPDATE, we need to do a CLOCK_UPDATE on all
> > vCPUs to disseminate the result. Which means that if CLOCK_UPDATE is
> > already pending before a MASTERCLOCK_UPDATE, it's probably redundant
> > and might as well be cleared because it's only going to get set *again*
> > in kvm_end_pvclock_update()?=20
>=20
> Another scenario is when only MASTERCLOCK_UPDATE is pending and there is =
no
> pending CLOCK_UPDATE.
>=20
> In this scenario, is it fine to skip processing MASTERCLOCK_UPDATE before=
 saving
> pvclock_vcpu_time_info?
>=20

I'm not sure I understand that scenario.=20

MASTERCLOCK_UPDATE means we have to actually recalculate the master
clock (which really *should* be rare, now!). And then any time we do
that, we also have to do a CLOCK_UPDATE on every vCPU to disseminate
the new information. Which is why kvm_end_pvclock_update() does exactly
that.

So your "MASTERCLOCK_UPDATE is pending and there is no pending
CLOCK_UPDATE" doesn't make much sense to me. If MASTERCLOCK_UPDATE is
pending, then there *will* be a CLOCK_UPDATE pending.


> > >=20
> > > Would it be helpful to validate that the delta is within a reasonable=
 range,
> > > e.g. that the drift can never be more than five minutes (forward or b=
ackward)?
> >=20
> > If a guest has been running for months on a previous host and is
> > migrated to a new host, don't we expect that the KVM clock of the new
> > VM on the new host is tweaked from its default near-zero after
> > creation, to some large amount?
> >=20
>=20
> Regarding live migration, my own investigation does not show a proportion=
al
> relationship between VM uptime and the amount of drift.

You're comparing the VM on the source host, with the VM on the
destination post-migration.

Perhaps I misunderstood, but I thought your suggested validation of a
'reasonable range' would also apply when adjusting the kvmclock of the
nascent VM on the destination host, from "newly created" to "has been
running for months" while migrating the state of the actual guest onto
a clean new slate.

> Just taking QEMU + KVM as an example: suppose TSC scaling is inactive, th=
e
> amount of drift does not depend on how long the VM has been running befor=
e live
> migration.
>=20
> Instead, it depends on the delta between when we call MSR_IA32_TSC and
> KVM_GET_CLOCK, and between MSR_IA32_TSC and KVM_SET_CLOCK.
>=20
> The guest TSC stops at P1 and resumes at P3.
> The kvmclock stops at P2 and resumes at P4.
>=20
> We expect P1 =3D=3D P2 and P3 =3D=3D P4.
>=20
> On source host.
>=20
> - kvm_get_msr_common(MSR_IA32_TSC) for vCPU=3D0 =3D=3D=3D> P1

Here's where it all starts going wrong. Line 1.

Any API which lets you get a single time value in isolation, and thus
which is already out of date by the time the system call even returns,
is fundamentally unsuitable for migration.

> - kvm_get_msr_common(MSR_IA32_TSC) for vCPU=3D1
> - kvm_get_msr_common(MSR_IA32_TSC) for vCPU=3D2
> - kvm_get_msr_common(MSR_IA32_TSC) for vCPU=3D3
> - kvm_get_msr_common(MSR_IA32_TSC) for vCPU=3D4
> ... ...
> - kvm_get_msr_common(MSR_IA32_TSC) for vCPU=3DN
> - KVM_GET_CLOCK=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D=3D=3D> P2
>=20
> On target host.
>=20
> - kvm_set_msr_common(MSR_IA32_TSC) for vCPU=3D1 =3D=3D=3D> P3
> - kvm_set_msr_common(MSR_IA32_TSC) for vCPU=3D2

At this point, the nasty hack in the kernel steps in, realises that the
value you're setting on vCPU 2 is within a second or so of the value
you had previously set on vCPU 1, and snaps it back to be precisely the
same. To work around the fundamental brokenness of this method.

> - kvm_set_msr_common(MSR_IA32_TSC) for vCPU=3D3
> - kvm_set_msr_common(MSR_IA32_TSC) for vCPU=3D4
> - kvm_set_msr_common(MSR_IA32_TSC) for vCPU=3D5
> ... ...
> - kvm_set_msr_common(MSR_IA32_TSC) for vCPU=3DN
> - KVM_SET_CLOCK=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D=3D=3D=3D> P4
>=20
>=20
> Here is my equiation to predict the drift.

I'm sure you're right, but I didn't get that far when looking at this.
I'd already thrown up in my mouth a little bit by line one.

Here's my equation to predict the drift of a live update done correctly
on the same host using the method I've now put in the documentation:

0.

:)

--=-boRirr429Da0AX+mV+GN
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUxOTA3NTAz
OVowLwYJKoZIhvcNAQkEMSIEID4VyOau5HDbTuenIzpyAYYNdwfCXft9bKPuz9k0Xjn2MGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAS1JbDhNwweIc
QuYqwRAR/yS3GsFNwrGARwzxspR3bF3bmAUiOaCXA3/sfTImbngl22ObTT9hBrzX04xEO1F/kWLu
jk0gL1TgngSCBZyQLrwahUBNUjauE3SvCPY6Hj2dsL3Me9qbi9s3aGCmB46zEZhWdYDZ4HUMHPKQ
3TISGmbnsKoW4pEXXGjHEaTXiOU+253QfWEzAo5ftaXKCG0KUIbDPTapzXmiv9do6m8xULhFqLRT
dYfwAelKWA95DmxdS3Etek4fwUH1DOtrYvoMOPdxl+yOB81a5PZ07YvbDXF3oWN4wOBTqII6tJ/2
qerAIlNL3DvUsaSvyq7D+seztNNzZAZCpZmBQCFd/n77JS7C2SMqgcBoh0QxBGg8m/GlI75PdNPf
rXuTxUprfyKPRoWsbQ60WTX0yBKuTxdM31tSCL3VJ1mD49L3nGQFdBqljHmluTFAAZnje2bsDYYb
brqKFb/YL9AIYtWGlyYHXja9jGLK/h1xa6vEVpbhMH8t6MB9GZ90n1mJTt86Oh/s/o+/BHQW2NBB
mnxknQoFRTzV1MLWNt5LcT/G99QT8L7UEBpHsxlA5KtmWub93cFUbN/TJaKLU4wr/ggKq0qwHMAf
xcRJU3086EBsZPLghhtuP/7D5/CkU9W8dvobyuHsQfxlk5u+K312Seym8N2j+jMAAAAAAAA=


--=-boRirr429Da0AX+mV+GN--


From xen-devel-bounces@lists.xenproject.org Tue May 19 07:55:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 07:55:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312529.1582623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFIC-0002Y1-LO; Tue, 19 May 2026 07:55:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312529.1582623; Tue, 19 May 2026 07:55:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFIC-0002Xu-IB; Tue, 19 May 2026 07:55:08 +0000
Received: by outflank-mailman (input) for mailman id 1312529;
 Tue, 19 May 2026 07:55:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+4b7c99f23599b32cd9f8+8304+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPFIB-0002Xo-GS
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 07:55:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPFIA-0038EK-SQ; Tue, 19 May 2026 09:55:06 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+4b7c99f23599b32cd9f8+8304+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0c174a-5cb7-0a2a0a5109dd-0a2a4509e872-48
 for <multiple-recipients>; Tue, 19 May 2026 09:55:06 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+4b7c99f23599b32cd9f8+8304+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0c1759-2497-0a2a45090019-5a9b3222c902-3
 for <multiple-recipients>; Tue, 19 May 2026 09:55:05 +0200
Received: from 54-240-197-233.amazon.com ([54.240.197.233]
 helo=u09cd745991455d.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPFHz-00000005dTa-0xkJ; Tue, 19 May 2026 07:54:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=kxDnhCMFukfGQTD0OCV8H6wDlq4JqmueGtLA8tc8FP8=; b=mjb4kKbrJ/Q2zXDIIGOJ32SVgA
	DHLYAdYPhjAoxXZy7N0ZI8Edf1UZAuPPXAUb9agUSue0Duv0Gt4PgYUDfQCgc+W6hV9tFdBKlM2WQ
	b9aNQqdrK5IR8mOFWDK7V/QimpZKdP3wlIViNxfg4i+BplaqX+RTukA+OnED0AK0xwupT6Ng+h0GU
	egUFRMVtVbC7k82tm6K4hWla+J+GsF2YVLZxf/19Gf5e+vouR3euCUlxO5Hc4AO7BxTWzyKJ0pKpe
	O6VlubjrBvUuklOMdEi+gcj7mMvGlZHEU/JpGTvMX59tTi5W2wQnd7gm+DScuDx1fj9ZnD2Zh7lZh
	vsET8LIg==;
Message-ID: <dda019489e11cd6069c831f270cfbd814ebea9a7.camel@infradead.org>
Subject: Re: [PATCH v4 16/30] KVM: x86: Restructure kvm_guest_time_update()
 for TSC upscaling
From: David Woodhouse <dwmw2@infradead.org>
To: Dongli Zhang <dongli.zhang@oracle.com>, kvm@vger.kernel.org
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
 Shuah Khan <skhan@linuxfoundation.org>, Sean Christopherson
 <seanjc@google.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
 <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,  Dave Hansen
 <dave.hansen@linux.intel.com>, x86@kernel.org, "H. Peter Anvin"
 <hpa@zytor.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross
 <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Paul
 Durrant <paul@xen.org>, Jonathan Cameron <jic23@kernel.org>, Sascha
 Bischoff <Sascha.Bischoff@arm.com>, Marc Zyngier <maz@kernel.org>, Joey
 Gouly <joey.gouly@arm.com>, Jack Allister <jalliste@amazon.com>,
 joe.jin@oracle.com, linux-doc@vger.kernel.org, 
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-kselftest@vger.kernel.org
Date: Tue, 19 May 2026 08:54:53 +0100
In-Reply-To: <b5a8262d-4128-4fd4-b3db-fa718002c4cc@oracle.com>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
	 <20260509224824.3264567-17-dwmw2@infradead.org>
	 <b5a8262d-4128-4fd4-b3db-fa718002c4cc@oracle.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-fhzFy9YA8yde6QYEuqnv"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-bad1c0/1779177305-89174A53-D6D1CF7C/0/0
X-purgate-type: clean
X-purgate-size: 8868


--=-fhzFy9YA8yde6QYEuqnv
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, 2026-05-19 at 00:38 -0700, Dongli Zhang wrote:
> I have encountered this build error with this patch.
>=20
> Perhaps it is because all usage of "flags" are removed.
>=20
> $ make -j32 > /dev/null
> arch/x86/kvm/x86.c: In function =E2=80=98kvm_guest_time_update=E2=80=99:
> arch/x86/kvm/x86.c:3359:23: error: unused variable =E2=80=98flags=E2=80=
=99 [-Werror=3Dunused-variable]
> =C2=A03359 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned lon=
g flags;
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 ^~~~~
> cc1: all warnings being treated as errors
> make[4]: *** [scripts/Makefile.build:289: arch/x86/kvm/x86.o] Error 1
> make[3]: *** [scripts/Makefile.build:548: arch/x86/kvm] Error 2
> make[2]: *** [scripts/Makefile.build:548: arch/x86] Error 2
> make[1]: *** [/home/opc/ext4/mainline-linux/Makefile:2143: .] Error 2
> make: *** [Makefile:248: __sub-make] Error 2
>=20
> Thank you very much!
>=20
> Dongli Zhang

Yes, in all the refactoring/rebasing, somehow the line which should
have removed 'flags' there ended up in
https://lore.kernel.org/all/20260509224824.3264567-31-dwmw2@infradead.org/
along with another one-liner that should have been in a different
previous commit and breaks bisectability of that too. Sorry about that.

Should all be fixed in
https://git.infradead.org/?p=3Dusers/dwmw2/linux.git;a=3Dshortlog;h=3Drefs/=
heads/kvmclock5
where I'm accumulating various fixes in preparation to post a v5.

--=-fhzFy9YA8yde6QYEuqnv
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUxOTA3NTQ1
M1owLwYJKoZIhvcNAQkEMSIEIFjBawHgTxxMoNA8G5On3H8btH5yalszT/cXuFQ1QRfyMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAoTylpGEan1Eb
RzrHGC6MGv9bsV8TMMRQz7uk1duVRywTxsTgF9F/8DlAJ0H20CoIGijaJmxPpsTRMe0xUueIGIGI
F5W5rnWQIbtsFVW3foiEHpgligRz5MhK1Y5GmaOujy+3mJqE3XlmPQjo3XhYM5N0M4MpLENdxuOv
ZZYHA36AwfQAYRnohdjZBhWKrIYT0ZLgFfyhgCDc0MfWMb4xxWhvY58h71OBP4xW6DYt7nL0wxkF
9RAb5mn/E4fseQs8+1MC8kiQwr5URO5DAcdkYVFiCFIFPZpHKCV2/TtGITmjVvcoRXgEW3gKR2hh
nV0OL1wUi6zTjdp3NHIh61RDMZREsueGZE8QLcqjI0uKtX/FgAW81MJ3qN/epzXp7EwnKVjVqvsA
xVbM+OEhXARn0eIKmMMD2hnso+D1PbUuxmxVhtklpKuFXB5av82eEd5+cVagNlr6JB8u7pIG6Wu7
AqX33Z1WhCfFWdRXBUBXcYFvv00PpQ1OGeSPKja0Lk92wQxkuCDNMnC2HiQEhsg1zVbeALLH7mlJ
0TzjOVSGXp+4HelIY9E8y/peyumIkwWpzrmwSyimnPgvnXJsYPgchggSe/cN9o5WhyfC1mM/TMoc
o/yelqMLGv6vhg37fAggVevF1KgasAOjdVOvi/FEQIs5JP/pfXzih/tfvxktBQsAAAAAAAA=


--=-fhzFy9YA8yde6QYEuqnv--


From xen-devel-bounces@lists.xenproject.org Tue May 19 07:56:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 07:56:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312535.1582632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFJU-00031C-T9; Tue, 19 May 2026 07:56:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312535.1582632; Tue, 19 May 2026 07:56:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFJU-000315-QX; Tue, 19 May 2026 07:56:28 +0000
Received: by outflank-mailman (input) for mailman id 1312535;
 Tue, 19 May 2026 07:56:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+4b7c99f23599b32cd9f8+8304+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPFJS-00030x-SV
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 07:56:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPFJS-0014p8-8J; Tue, 19 May 2026 09:56:26 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+4b7c99f23599b32cd9f8+8304+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0c17a6-e002-0a2a0a5209dd-0a2a45079b46-10
 for <multiple-recipients>; Tue, 19 May 2026 09:56:25 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+4b7c99f23599b32cd9f8+8304+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0c17a9-229c-0a2a45070019-5a9b3222bf02-3
 for <multiple-recipients>; Tue, 19 May 2026 09:56:25 +0200
Received: from 54-240-197-233.amazon.com ([54.240.197.233]
 helo=u09cd745991455d.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPFJJ-00000005dZk-0ipd; Tue, 19 May 2026 07:56:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=c/xnNDdjdW3yPVm49W7NS9yIdxRdtcywCdi46mY7yjM=; b=Jq+W1MTsbFtc0xIylRBZvpp5p0
	+s/2q0SDdZe18F4EZhGc8BWhPxAQ+YL/gRXCeCRy/Un32J31dEoDc3LLtE6uQHdVBxup/4p8pC4cG
	XbZ5Jm2EKIog53Ms4DLAKzsVAaRYZsxCjJpn7Tt3Uj1clww5mUB+tj+BPEt9htFXnTK1MbcrDOYWe
	43FtYg63bwrkTGCqfuONAduNKjc+LOcJExNSrWAIx2kUmoUMBAbJXeSN+qNKtPqJk7S+yrI5DQqJ6
	c41mq3Z9y71jCKd60JMjVl6TFYDbnJv6HibpuPueuIA1iHmV3OIPYO88kkVZlVU6Mky4gYTbkG/EF
	lJ/uefhQ==;
Message-ID: <8af90f613ddb4a4f3c60d756c23e696fbd6a6a82.camel@infradead.org>
Subject: Re: [PATCH v4 03/30] UAPI: x86: Move pvclock-abi to UAPI for x86
 platforms
From: David Woodhouse <dwmw2@infradead.org>
To: Dongli Zhang <dongli.zhang@oracle.com>, kvm@vger.kernel.org
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
 Shuah Khan <skhan@linuxfoundation.org>, Thomas Gleixner <tglx@kernel.org>,
 Sean Christopherson <seanjc@google.com>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Juergen Gross <jgross@suse.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Paul Durrant <paul@xen.org>, Jonathan Cameron
 <jic23@kernel.org>, Sascha Bischoff <Sascha.Bischoff@arm.com>, Marc Zyngier
 <maz@kernel.org>, Joey Gouly <joey.gouly@arm.com>, Jack Allister
 <jalliste@amazon.com>, joe.jin@oracle.com,  linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org,
 linux-kselftest@vger.kernel.org
Date: Tue, 19 May 2026 08:56:15 +0100
In-Reply-To: <93e799fd-b661-45f0-9cc6-21823765332e@oracle.com>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
	 <20260509224824.3264567-4-dwmw2@infradead.org>
	 <93e799fd-b661-45f0-9cc6-21823765332e@oracle.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-1WSy560khALeCoLYNttJ"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-ef75cf/1779177385-23F7EC48-98F0A059/0/0
X-purgate-type: clean
X-purgate-size: 8411


--=-1WSy560khALeCoLYNttJ
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64

T24gVHVlLCAyMDI2LTA1LTE5IGF0IDAwOjM1IC0wNzAwLCBEb25nbGkgWmhhbmcgd3JvdGU6Cj4g
SSBoYXZlIGVuY291bnRlcmVkIGJlbG93IGJ1aWxkIHdhcm5pbmcuCj4gCj4gUGVyaGFwcyBpdCBp
cyBiZWNhdXNlIG9mIFBBVENIIDAzPwo+IApBbG1vc3QgY2VydGFpbmx5OyBJJ2xsIGNsZWFuIGl0
IHVwLiBUaGFuayB5b3UuCgo+IEluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2luY2x1ZGUvbGludXgv
dHlwZXMuaDo1LAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZyb20gLi9hcmNo
L3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3B2Y2xvY2stYWJpLmg6NSwKPiDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCBmcm9tIC4vYXJjaC94ODYvaW5jbHVkZS9hc20veGVuL2ludGVyZmFj
ZS5oOjE5NywKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmcm9tIC4vaW5jbHVk
ZS94ZW4vaW50ZXJmYWNlL3hlbi5oOjEzLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIGZyb20gPGNvbW1hbmQtbGluZT46Cj4gLi9pbmNsdWRlL3VhcGkvbGludXgvdHlwZXMuaDox
MDoyOiB3YXJuaW5nOiAjd2FybmluZyAiQXR0ZW1wdCB0byB1c2Uga2VybmVsCj4gaGVhZGVycyBm
cm9tIHVzZXIgc3BhY2UsIHNlZSBodHRwczovL2tlcm5lbG5ld2JpZXMub3JnL0tlcm5lbEhlYWRl
cnMiIFstV2NwcF0KPiDCoMKgIDEwIHwgI3dhcm5pbmcgIkF0dGVtcHQgdG8gdXNlIGtlcm5lbCBo
ZWFkZXJzIGZyb20gdXNlciBzcGFjZSwgc2VlCj4gaHR0cHM6Ly9rZXJuZWxuZXdiaWVzLm9yZy9L
ZXJuZWxIZWFkZXJzIgo+IMKgwqDCoMKgwqAgfMKgIF5+fn5+fn4KCg==


--=-1WSy560khALeCoLYNttJ
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUxOTA3NTYx
NVowLwYJKoZIhvcNAQkEMSIEIOoOnXS+gEcO2wdvyVd9EjeHKuX6JsLKr3D9gEDyqGh0MGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAy1tPTaWh3ZEh
8R5WIgfhfzKKptteZvft2oXZETMBmtVbKS8XArlzKMn82hDFhDu34fZALHvCXMTIN3My1pmNHk/h
q7Jj9DyVxu+0L5BFjEIr8p6lj8m/eX3vgLNAl1edy1tLV34N94OQlbbp6Fe/z1Db307BdBnBmsJ6
XVyAheC2TqjcJrupESo8/OEWUvRDLyV7PIqBTBaoYO8ZI3zWXkmFZQZcI+FE4mOHBLuCT/t0IFP3
3b6UPMjN+APXx5N/+mcPS1fqO6XIWT//bWZ77tHf6QNwAJgnlfvF+WFPpqOas3yWoabHbKCkpW6f
tACTSvLFYBSvkkZnCmHKN8X/Ub4jploho6iAqQ7IxyhWqWCFx6EY5ktwuX7cyMy7JcSYjvz9SiQC
l9T6hw64QSFTPyv3bfyS7Xaeo7d1L0qNuDT4kVjkRBfWc0udfDT3x2yIRuEtVo7A0N2cN9ob9scM
FPFW+gY0zQtDZdVqfXILb9J/f/b+AmRQkWBq1GFLFJd/u1HDRgqUm8HoK0LFzazYdAyIZ+SbMnCd
k+znBjtFGxAARoRBpEfEy5LF/Cp4TIf1i329tJiL2zCQm7vLq1TTb4B9Ieenm7Q8B9HFDwtLTHlr
8vgVM4WVVsw1vD1SRULb6rvBjTgrgcpA7QDvrIfm2trSTgQRy+pM+bVQfx3Pf4gAAAAAAAA=


--=-1WSy560khALeCoLYNttJ--


From xen-devel-bounces@lists.xenproject.org Tue May 19 08:05:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 08:05:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312554.1582642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFS0-0005Yl-9n; Tue, 19 May 2026 08:05:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312554.1582642; Tue, 19 May 2026 08:05:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFS0-0005Ye-6o; Tue, 19 May 2026 08:05:16 +0000
Received: by outflank-mailman (input) for mailman id 1312554;
 Tue, 19 May 2026 08:05:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1wPFRz-0005YY-1D
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 08:05:15 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1wPFRy-00D4zz-23;
 Tue, 19 May 2026 08:05:14 +0000
Received: from [2a02:8012:3a1:0:f5d8:254d:983d:8dea]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1wPFRy-00DjE2-1C;
 Tue, 19 May 2026 08:05:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=ADc5/F5SW02jKw3O+12IEV33qq97n+QupUWW2H0ph9U=; b=gOBtdpJ/AvfWP0NgQomiE146a7
	gSDF9DTtww/Gxad4YmdfymFRKOVQf8WXascrfGZTx3tBTY6RCIUSspBoKR7JXJ+ad0X6CAOkG1Tr+
	QTCckLnBLfUxVZeUjGD3jCkDzQBoWpLask3YpY9f0mDxdMDW04MeK0Kk2B6T7hESWCag=;
Message-ID: <3783f629-c658-4f04-a1c0-f1429b84726e@xen.org>
Date: Tue, 19 May 2026 09:05:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] arm: Fix PT_PT table descriptor value and comment
Content-Language: en-GB
To: =?UTF-8?Q?Gabriel_Quint=C3=A1ns_Souto?= <gabi.qs.mail@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org, bertrand.marquis@arm.com, michal.orzel@amd.com
References: <b0a7dbdf-775a-45e2-bee4-d234ca21c002@amd.com>
 <20260518210340.81347-1-gabi.qs.mail@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20260518210340.81347-1-gabi.qs.mail@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Gabriel,

For the future, when sending a new version, please create a new thread 
rather than in reply to the latest response.

On 18/05/2026 22:00, Gabriel Quintáns Souto wrote:
> Per ARMv7-A/ARMv8-A ARM, bits [11:2] of table descriptors are
> ignored by hardware. The original comment incorrectly described
> block/page descriptor fields which are not present in table
> descriptors.

Do you have more details why this change? Is this to strictly follow the 
Arm Arm?

In the ideal situation we should have the page table descriptors 
consistent between the assembly and the C version (see 
mfn_to_xen_entry()). They were diverging before and this is still 
diverging. If we are concerned about setting AF here, then we ought to 
modify the C versions as well.

It could be done separately though.

> 
> Use the minimal valid encoding for table descriptors by setting
> PT_PT to 0x3.
> 
> This updates both arm32 and arm64 for consistency.
 > > Signed-off-by: Gabriel Quintáns Souto <gabi.qs.mail@gmail.com>

Reviewed-by: Julien Grall <julien@xen.org>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue May 19 08:39:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 08:39:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312578.1582661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFzL-0001yZ-C3; Tue, 19 May 2026 08:39:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312578.1582661; Tue, 19 May 2026 08:39:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFzL-0001wD-8P; Tue, 19 May 2026 08:39:43 +0000
Received: by outflank-mailman (input) for mailman id 1312578;
 Tue, 19 May 2026 08:39:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPFzK-0001lU-Bl
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 08:39:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPFzJ-00CbtC-Nx
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 10:39:41 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c21ca-bab6-0a2a0a5309dd-0a2a45018a9a-28
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 10:39:41 +0200
Received: from [209.85.218.43] (helo=mail-ej1-f43.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c21cd-c1f2-0a2a45010019-d155da2bc5c1-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 10:39:41 +0200
Received: by mail-ej1-f43.google.com with SMTP id
 a640c23a62f3a-bd85ebb368fso379873466b.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 01:39:41 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4c2a0dasm689854066b.19.2026.05.19.01.39.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 May 2026 01:39:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779179981; x=1779784781; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Tpe2zS75TI9kaVvsRUyajjZY4M6ywZ8rkBfskJkU/50=;
        b=PPgnDByba1E0UaFrNzNEZxYBTQjTEUk6xGS68fddx/i8ORaAqBggiluLTiYi2O+U+2
         4N6Y8siJMBCCGdmDJBZtj6SJFxe23oNNntBAJ63lk4o7729VMZbUxwp9okJ7uAY7T1E3
         zsH+Z5D4iS1K/kgGi1thshryq1JbSBa8rmsb2uXWMpR2tKXGWBADpMw3NH3f6bmp7Vb4
         XVbXi0NpcsJuA53HqDYg6dr5TfzjlU4UAhY0Pt5choGLC3N0l3ZQEwiiMO0Q3Fhz23It
         /mB/lOwccQziS5Qo86MMRslwAIHisUp/Il5FT8BBEMi1Zy+08M2EepgZV6BS1xKu8mcc
         N3Sw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779179981; x=1779784781;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Tpe2zS75TI9kaVvsRUyajjZY4M6ywZ8rkBfskJkU/50=;
        b=A3Tyn/6i2ZHcXOUmTVg1is62FibCvDmRFu33RXUq+EGEUadpB3cVbZKGJNkI6Fli6B
         Uuu+PsRIL8zK5KMdC7GnJiHAng5VMoGiWqs85jjQIWK9q2HRtkTSwGaq5UoXXPd4nmkw
         C6O6xNim7gyUl4JrTtWgdPBwNjbnc+F/Ar5fOlu25B2fKLCfUR4ZJPBN1cw+Y2xowyL+
         xCEd8sd94dTSjE+KCwi1lA8Psddff41Q7STvj/eA/XQKDnxmEgdSsfpvp5Yrac+SLm5A
         6uHqbMTJy5yPwphE9M3Pa1dsQwYN/aXa4v8rwBKMyUQQOLX9bNUMXyUkMeZL26Kc3e2j
         tC0g==
X-Gm-Message-State: AOJu0YzTYyY2vS2QYtR/yGUdGIUZMJCyzZTjX7v9OTL+XB1jhX05HYBn
	t3IPzSAMu5J165vRNUWOSSRCLwZufQmAH6exwkHOUSeq3ledZdcl28uhy55MeQ==
X-Gm-Gg: Acq92OGhV5KfVSvfXMdYoSi6wNKJnNZqaweirrev/xBnC2bd5spQz3zkb2RGg8PM1YM
	Fbt9mEGur7XoocAWdRuyVgm1WMTvSmvxkMKGI8teKHuI23odneFIGpC0SaGhEe6j6VGH5Jl5bdG
	sOZoHbrML6QLv2xLR6owBC6Hvmh76eKDbTpuvrmxHPMf3/VXL1IawtD9pAdD0l0woAxjeU5NshH
	hepcYtAzfSmfnQyNhysPXsAldX+X6/hbfUgBqpN0jKvbW5lMbSMhpkfo+dMzj32/srzZlUt0cw/
	Z2jcClftYzuuyN2yPUm/1PGPS51ffd4Xu33uydGXivRLWC8LUkgBEeoQV9cGZY36yL5gkrWW3Wb
	D/39RsB/gEjkFJNXXWmQv0oENgKAOMQLGRcTwYlMJisea4gkXdmxvcHGEJP2avPhbM6i97wtaZY
	VvAjewb7v1gk/saw+rGfMlHzBGCAh/7NXdR3Qoghwig4Tp4Qsh7oMtKPjeW0ymljB+XA==
X-Received: by 2002:a17:907:8b98:b0:bd3:413d:c51a with SMTP id a640c23a62f3a-bd5178848demr1060331166b.17.1779179980677;
        Tue, 19 May 2026 01:39:40 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in vcpu_info_reset()
Date: Tue, 19 May 2026 10:39:27 +0200
Message-ID: <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1779179301.git.oleksii.kurochko@gmail.com>
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1779179981-ADB46FF4-E3BB11CA/10/73395122804
X-purgate-type: spam
X-purgate-size: 1849

vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot inside
the domain's shared_info page for vcpus with id < XEN_LEGACY_MAX_VCPUS,
and falls back to dummy_vcpu_info for vcpus beyond that limit.

However, it does not guard against d->shared_info being NULL.  The
shared_info() macro expands to a member access through d->shared_info,
so when an architecture does not allocate a shared_info page the
dereference triggers UBSAN:
  UBSAN: Undefined behaviour in common/domain.c:325:10
  member access within null pointer of type 'struct shared_info_t'

Extend the existing fallback condition to also cover the case where no
shared_info page has been allocated, mapping the vcpu to dummy_vcpu_info
instead. This is the correct behaviour: dummy_vcpu_info already serves
as the safe stand-in for vcpus that have no usable shared_info slot.

Fixes: 295514ff75506 ("common: convert vCPU info area registration")
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
---
RISC-V does not allocate a shared_info page at the momemnt because its
guests run in dom0less mode and do not use the Xen PV ABI, so
d->shared_info remains NULL throughout domain lifetime.
---
---
 xen/common/domain.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index bb9e210c2895..e64b7df9b704 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -320,7 +320,7 @@ void vcpu_info_reset(struct vcpu *v)
     struct domain *d = v->domain;
 
     v->vcpu_info_area.map =
-        ((v->vcpu_id < XEN_LEGACY_MAX_VCPUS)
+        ((v->vcpu_id < XEN_LEGACY_MAX_VCPUS && d->shared_info)
          ? (vcpu_info_t *)&shared_info(d, vcpu_info[v->vcpu_id])
          : &dummy_vcpu_info);
 }
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 19 08:39:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 08:39:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312576.1582651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFzK-0001li-Nl; Tue, 19 May 2026 08:39:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312576.1582651; Tue, 19 May 2026 08:39:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFzK-0001la-KZ; Tue, 19 May 2026 08:39:42 +0000
Received: by outflank-mailman (input) for mailman id 1312576;
 Tue, 19 May 2026 08:39:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPFzI-0001lI-R8
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 08:39:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPFzI-008Zic-6v
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 10:39:40 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c21c8-2eae-0a2a0a5409dd-0a2a45039dac-8
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 10:39:40 +0200
Received: from [209.85.218.49] (helo=mail-ej1-f49.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c21ca-672d-0a2a45030019-d155da31b5d0-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 10:39:38 +0200
Received: by mail-ej1-f49.google.com with SMTP id
 a640c23a62f3a-bd8f9889a8cso192657366b.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 01:39:38 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4c2a0dasm689854066b.19.2026.05.19.01.39.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 May 2026 01:39:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779179978; x=1779784778; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=0TrdfNJKE3xZqRmv8gW2AE5VRPd+5p3zwBthlgsmjoE=;
        b=qjmgORKaL3AUSq9MWhWRXUsAvQ0FIbUrYREL9th9BqC0IAtWaWqkOC3Pu6pstsq5Nz
         hWlqWm+MZJLqrYO9sRHOFauBGJvuHxnyp6U4GZ7jukf5eXGe+DbZh8yDuiamwI13nOk7
         iqqW98GQ0PiHWV6HRr9thYOOrQKJN2JKuQ+FI3jmsPVgCKvStUbwYln7wxWfRGWCGv5+
         L16W2bxaxlzsEYoNmcUjpwUhu9WSsJKKhjjMCw+IYu/NTG43anQZ9G8TiB/x/ZuahpZ2
         uiDnszQs2+kVxVg0Nkg94VMWU7dxiLHvbJjPkqW1fyP2v7Cx5F/MU5pzzfw0p2OK4Oeh
         +btg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779179978; x=1779784778;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0TrdfNJKE3xZqRmv8gW2AE5VRPd+5p3zwBthlgsmjoE=;
        b=bWnj0OPehFHUnUfWUw2HnBaO/flJEuf/8yjJVLkxrncd/yX0b9aIoA5vA7rZZumJpG
         RuhV9dNaWyetFIm4SXyi7oIe1ay5GXdijKd0aOHx6VIUAXeSyEBh56820AllJ2kK596q
         kad1KuEcz8LFmP1TJZPHrE95OWsm5dG+pvR/HKSB9gzmOVh7/nw6FsQaRWv+iHMmMwnE
         4Igz1Ixuv99STadcjdCYkqh74Iaic/neMuPP8Pwi3MYPlHIeXmMSB8W0K8q6RSOsxrEh
         EgcEjsHlvnkQeTBIoUq+Tdfb8ro2IPIe12JWCaP/CRLNTNg9hU48RTsvKOs1cZWkRSP5
         sBqQ==
X-Gm-Message-State: AOJu0YyBEAaKS9SRy3Cl0xtAxF8ONMQH7fBjtxMXVS1AUNCcwAinNESn
	/2FKMaRn2DBENVhDPvks65P0/ODGdfyvntHbAzP6RkyiOFhh95vhgzHX9A9xaw==
X-Gm-Gg: Acq92OFFl6cXQ/HzcQyz/KgNFKzcGySCpn+4GI+JLB8QGHCk01vMCEzrhijq32Esw1Y
	t+U+caa6+OcEU87tbzhDKgp3DDW3P5Mjt2w/4BYksKqlUKE1PwodUZhNRhGPKnWugbmibFzhsFW
	xst0OqgofZlV4Z+IConAfDoJHgLrlA2iP4W6CLr+1Jej5MlvrXIc57pok6lXdnGFcrnBtLAIPW6
	dYrQsrzey2AUOPkJrIgCe46ySjT1fMOcHwOGRlHl48r0nFQScNIavULoFBzCR5GdFBhsJ+bjwXh
	7pHb3PiWsUE2h7JfbvEoTJq20fyns/seYUeAguwyvzpfOhhZMFM5rGLvhz6rEzpw29fxyGqbVx5
	mgUvs5fQ4Gp0vHK19rXbvmHCHNZozXtlJ4cnMyYuMljTycWX301eKEskyb4DT/eNFPawZ2okkKl
	b/tNEdoSGcdslzJianLMQ04IemyMA+DYxlO4k4h1vSm+bgCfkrZblzbiWHPohxdf94UA==
X-Received: by 2002:a17:906:6185:b0:bd0:6dbe:22b1 with SMTP id a640c23a62f3a-bd5177ec5dfmr1026177166b.12.1779179978104;
        Tue, 19 May 2026 01:39:38 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH v1 0/3] UBSAN fixes
Date: Tue, 19 May 2026 10:39:25 +0200
Message-ID: <cover.1779179301.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779179978-3B56F938-ACE7CE3D/10/73395122804
X-purgate-type: spam
X-purgate-size: 641

During Baptiste Le Duc's work on adding CI stuff for RISC-V several UBSAN
issues were found.

This patch series resolves the found issues.

CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2536470604

Oleksii Kurochko (3):
  xen/riscv: fix switch_stack_and_jump()
  xen/domain: fix UBSAN null pointer dereference in vcpu_info_reset()
  xen/libfdt: fix UBSAN null pointer in fdt_property()

 xen/arch/riscv/include/asm/current.h | 10 +++++-----
 xen/common/domain.c                  |  2 +-
 xen/common/libfdt/fdt_sw.c           |  3 ++-
 3 files changed, 8 insertions(+), 7 deletions(-)

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 19 08:39:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 08:39:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312577.1582655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFzK-0001od-VK; Tue, 19 May 2026 08:39:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312577.1582655; Tue, 19 May 2026 08:39:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFzK-0001oV-RS; Tue, 19 May 2026 08:39:42 +0000
Received: by outflank-mailman (input) for mailman id 1312577;
 Tue, 19 May 2026 08:39:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPFzJ-0001lN-4T
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 08:39:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPFzI-00CbtC-Fy
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 10:39:40 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c21ca-bab6-0a2a0a5309dd-0a2a45018a9a-22
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 10:39:40 +0200
Received: from [209.85.218.53] (helo=mail-ej1-f53.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c21cc-c1f2-0a2a45010019-d155da35a5c4-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 10:39:40 +0200
Received: by mail-ej1-f53.google.com with SMTP id
 a640c23a62f3a-bd2e8931915so818301366b.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 01:39:40 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4c2a0dasm689854066b.19.2026.05.19.01.39.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 May 2026 01:39:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779179980; x=1779784780; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mN0HIj7hPfFykJ64wvxm1nWm1JGJKJwdvn0hxtsjuhM=;
        b=ETaQEUEnQZUyQAs3rbO/Sg1DIHp6rgLcdAfF4Oh2H6bt1neKJNtVK7Fv8p7JQg6608
         pvNl+0cCyc7A7RHkyJ6B8sWUN40i5sAZQzNEmYPR7t0vb151FQQDU3n2hW/OefxaJO2g
         Pawgtw8JWSvISqIgO48R+TttryKZi40wBxAvyWGsIvniqbShj6wNj54O4D6R5zdC4rEJ
         UnZMydGh0wSr0JWQmDTuC64IVcyEAEULll6qs2c9SQzHWZ3SdUkYaLJguGBG6L5rEYHH
         oaFpGwxxPzZ/wnEbSTm/v+AkSpBwaT32tlBaP7k4rn+REV9KzDMyvcWwpmcjJ+uZyqkj
         +kag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779179980; x=1779784780;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=mN0HIj7hPfFykJ64wvxm1nWm1JGJKJwdvn0hxtsjuhM=;
        b=pslW0qkHtLj7Lgt/tYiz2pibtcN1bG24nxKkRsatVerya4xyYgkNVuIGtTfM7mURFO
         Lis28+5lGPq0Zwj4ZVvx9mvn3tNQ4ieYheUDdNUW0480JzqSMZTnl3DeKRyKaMdmEmC1
         9bkRn6NTo06lZC3TBD6/KlbCz3GziU4N7IeBNBhkdS+kmib3RSs0bmY/ONy9a7JNoC6B
         I1XLuVDaKp7chrW4MQOJ1NTTTB5No9vsDAFoh4w/pD04AM29YdJFieZauM2CchN67zys
         onrEhxc4ZsbmZpV/uiMXLS9meGh32nLjA1S6hVpxMku7Ake8yNkZPx7Ci1VOnJbn1Uhi
         kvgA==
X-Gm-Message-State: AOJu0YwwyPXL4Yq3sQRMy7cbAgeiL36thEs98W/MJ7bTMENZnpksxQET
	7ibb5z7TVogvI5KBt2c8IEncgPwgVGHyckpNrue5B89IgRksP7lz9826wQqKqw==
X-Gm-Gg: Acq92OGmOrK2LjzXJ/ATcYSVrWi1RsvyY69JC0vgmEfJedaS/d5AZeWoj95r+Kws/2/
	zWabYVXx1EGMkLd4/gvJJ9h0aHxNvnsJI4zz5B2Qn8m2FIzqlrdZT3jvJnjf95+CFTuOyI5/IJU
	SLnqFIFrm8tSTHnIU11MnIQn+RqC9mBJ6qkdfbtvKiN9cTpwzzS/TYyLODSoEpBwXiE8XhACoVy
	lwjkFTEIzBChoUWLtNo/DR3V4krOlc6ajEtAunHUXQV2J7ZE613sjJ4aZKjYn03rqlEny9s6idl
	3JqEkvRJ9Wqjn2UzRE1LOdO4SV8mUseiocrxv7MaBHTzrqHaYV3iHGz6y4BuULi8DCJ6GG1SNAG
	xAX0vSOz2b+qW/w5nEstDYt1DtYSyWT6ek+BaXsx/iv0hatMtQk4xJNcxaYIKZUYORi/rlfR4Px
	hGTZs/imkmztMX10p5+7wqkC3Pb49ZA2Tgc8lxrxb3zdfno7kUtBrc9jKrTRN0oA5lbQ==
X-Received: by 2002:a17:907:940d:b0:bd4:f2c7:25e2 with SMTP id a640c23a62f3a-bd51534c830mr839814166b.5.1779179979517;
        Tue, 19 May 2026 01:39:39 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 1/3] xen/riscv: fix switch_stack_and_jump()
Date: Tue, 19 May 2026 10:39:26 +0200
Message-ID: <1ac102874c8f7190ea09787a035692b03e4b46cf.1779179301.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1779179301.git.oleksii.kurochko@gmail.com>
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1779179980-B6143FF4-F7C4C7EB/10/73395122804
X-purgate-type: spam
X-purgate-size: 2802

The following compilation issue occurs when UBSAN related stuff is enabled:
prelink.o: in function `smp_processor_id':
  /build/xen/./arch/riscv/include/asm/current.h:46:(.init.text+0x274e2):
  relocation truncated to fit: R_RISCV_JAL against `init_done'
make[2]: *** [arch/riscv/Makefile:45: xen-syms] Error 1

The switch_stack_and_jump macro uses "j " #fn which assembles to
JAL x0, init_done is a RISC-V J-type instruction with only ±1MB range.

Without UBSAN, .init.text is small enough that init_done (which lives in
.text, not .init.text) is within 1MB of the JAL. With UBSAN enabled, all
the instrumentation calls bloat .init.text well past 1MB, so init_done
is now >1MB away from the JAL. The linker tries to truncate the 20-bit
J-type offset and fails.

The linker confusingly attributes the error to smp_processor_id:46
because the compiler inlines that function into the same init function
that ends with switch_stack_and_jump, and the debug info places the
JAL within that inlined scope.

Note that the `tail` instruction looks more natural here, but the `jr`
instruction is chosen instead to avoid depending on how the assembler
expands the `tail` instruction and which register it uses as a scratch
area (`t1` in the case of GAS), which would then need to be listed in
the clobber section of `asm volatile`.

Fixes: e66003e7be199 ("xen/riscv: introduce setup_initial_pages")
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
---
 xen/arch/riscv/include/asm/current.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/include/asm/current.h b/xen/arch/riscv/include/asm/current.h
index 5fbee8182caa..cc004670d18c 100644
--- a/xen/arch/riscv/include/asm/current.h
+++ b/xen/arch/riscv/include/asm/current.h
@@ -51,11 +51,11 @@ DECLARE_PER_CPU(struct vcpu *, curr_vcpu);
 #define vcpu_guest_cpu_user_regs(vcpu) \
     (&(vcpu)->arch.cpu_info->guest_cpu_user_regs)
 
-#define switch_stack_and_jump(stack, fn) do {               \
-    asm volatile (                                          \
-            "mv sp, %0\n"                                   \
-            "j " #fn :: "r" (stack), "X" (fn) : "memory" ); \
-    unreachable();                                          \
+#define switch_stack_and_jump(stack, fn) do {                    \
+    asm volatile (                                               \
+            "mv sp, %0\n"                                        \
+            "jr %1" :: "r" (stack), "r" (fn) : "memory" );       \
+    unreachable();                                               \
 } while ( false )
 
 #define get_per_cpu_offset() __per_cpu_offset[smp_processor_id()]
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 19 08:39:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 08:39:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312579.1582678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFzM-0002ON-JV; Tue, 19 May 2026 08:39:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312579.1582678; Tue, 19 May 2026 08:39:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPFzM-0002OG-Fn; Tue, 19 May 2026 08:39:44 +0000
Received: by outflank-mailman (input) for mailman id 1312579;
 Tue, 19 May 2026 08:39:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPFzL-0001ss-9p
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 08:39:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPFzK-008Zic-Lu
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 10:39:42 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c21bd-2eae-0a2a0a5409dd-0a2a450ab5b8-44
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 10:39:42 +0200
Received: from [209.85.218.47] (helo=mail-ej1-f47.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c21ce-56b3-0a2a450a0019-d155da2fd44c-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 10:39:42 +0200
Received: by mail-ej1-f47.google.com with SMTP id
 a640c23a62f3a-bd9a71b565aso58907866b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 01:39:42 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4c2a0dasm689854066b.19.2026.05.19.01.39.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 May 2026 01:39:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779179982; x=1779784782; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=34U+gzhvif9A/R9ljb0v070dq+nUEolj8ya2xM2qXEY=;
        b=PlZTvmlb9K5nLl7HiW/UVlkFHoplbXM6b0UjvAuLb2Lfi1Sbbnt1I3hb/VF3oalfuw
         EZ/HvAEAi8wiJtF0qz3CKjh8qdDfFQYWm4HH3arUbv1ym+8WsdiRcu7oeDL3V8MmuLmD
         YyhXhhJTw4TpC0epe1WCD8S2CLcCQ/yAvAhASzhd/DrGDiid0poCTOoithgTwjDs9Ezi
         wqiqTX/hZhPa1PKz6GBfMoStxNoxHe3fYAJ4hbZqmOOhsbG1GT2Kpmo0uWa1tbH75z/m
         yLfwVaeSc9DH1ot8CQaHbUJ1yiT+GWKKHcP1U3Vm4xpzGhrXmv1J7iWtqHtKAt2q2yXY
         jeuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779179982; x=1779784782;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=34U+gzhvif9A/R9ljb0v070dq+nUEolj8ya2xM2qXEY=;
        b=q5pLdY01zi7a3ADn+dWgzW3z/OxrI55p+8UKx+xpZkmXeMXT1c72ofbAL0iaXztSPR
         aasmG/TpGvgiw2+PrK38yn6IzfAJwNzFNjq1Cm/FCHpP5XOKQ8FJauaBQ3zV3TCrkzO6
         KoaDzaNNfkNyEbf1yDEFkMfDyxkSoOcGVGv0AjX3rQv/OFWoLuKTqo6nUV9Pu8lq9kCW
         fdW2R1YxtSwHoiOCUsuZZKnBmI3Ph2+h0M7hOlLK8jOEOLF531ju7CMpxHEraNo7dg7Z
         ivstJaTha7wOZVv19kCkvvGnX/yl49NHJnvKJp2wHpIkfBHiM+15z3qahtKmLilagK8Y
         pZNQ==
X-Gm-Message-State: AOJu0Yyg/ok6OfqaXv+wfodQNd9Ud1SGahVPoh6vRunmBhz9FmUAX3X8
	KHKEcF5e3HagjXKXseyFh3kTydPjEGseakzDshLAokgdMAniQoyOdvLYrnlTVw==
X-Gm-Gg: Acq92OEksHeiOtAR5J7GS+r0+OIUuItELhIUuy4sAGH2oQwdeovDdzahu/h/0oY8YrP
	WweuBgWdUR2EbND3TTDMYN5eLsTqkK3qk722MM/x5yiXwOyxWqIBj5eTJkGIKmC0HAoHKNKIcGr
	QsU8sHUiEfa3OT7MjPf3VAfaFLu+FsgbGz7ROZI+zp31RffG5FWQ+raKOVuXEslC1ORfTxfOx77
	BLQQslb2X3BvYwkR+q9aAz4BnC5usHakeP6IdZi6nYKTGUhAd7VtWpXEEMCP9zeYfqplt9gShAh
	bkKAfQrElYis4Z1c8f1lB2lcxWHtFKK+UBaJ2dPHPUjf7LGo2sjQvoW09y6HeX9zEZu7IfgU7JA
	sSkjL47B14ukfLIgxYJqDS7qK8qYC9D2T1zdHhm1TlkN1kSN15OrlbEkVDd11A2o+8/ywus5DFG
	AUvu8txrAWvbBnyZBs8E+w7HvbVG7/L07ZB59PwwXwBGt+cPIkoy1LXnhYT9etmyAD5BOfsv2E2
	21U
X-Received: by 2002:a17:907:9813:b0:bd3:1a18:cc64 with SMTP id a640c23a62f3a-bd5179080d9mr1050897466b.31.1779179982003;
        Tue, 19 May 2026 01:39:42 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v1 3/3] xen/libfdt: fix UBSAN null pointer in fdt_property()
Date: Tue, 19 May 2026 10:39:28 +0200
Message-ID: <0addc679de64cb59b28cf49ba3d39d17443d1ac8.1779179301.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1779179301.git.oleksii.kurochko@gmail.com>
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1779179982-70F618B7-300E0014/10/73395122804
X-purgate-type: spam
X-purgate-size: 1440

fdt_property() unconditionally calls memcpy(ptr, val, len) even when
len is zero and val is NULL.  This is a legitimate calling convention
for adding empty FDT properties such as "interrupt-controller", which
carry no payload.

In Xen, memcpy() maps to __builtin_memcpy(). The compiler treats
__builtin_memcpy as nonnull on its pointer arguments, so UBSAN fires
before it can observe that len is zero:
  UBSAN: Undefined behaviour in common/libfdt/fdt_sw.c:333:2
         null pointer passed as argument 2, declared with nonnull
         attribute

Guard the memcpy() with a check on len so it is skipped entirely when
there is no payload to copy, bringing the code in line with the
nonnull contract.

Fixes: f0ea06558068 ("libfdt: add version 1.3.0")
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
---
 xen/common/libfdt/fdt_sw.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/common/libfdt/fdt_sw.c b/xen/common/libfdt/fdt_sw.c
index 4c569ee7eb0d..96d4cf571319 100644
--- a/xen/common/libfdt/fdt_sw.c
+++ b/xen/common/libfdt/fdt_sw.c
@@ -330,7 +330,8 @@ int fdt_property(void *fdt, const char *name, const void *val, int len)
 	ret = fdt_property_placeholder(fdt, name, len, &ptr);
 	if (ret)
 		return ret;
-	memcpy(ptr, val, len);
+	if (len)
+		memcpy(ptr, val, len);
 	return 0;
 }
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 19 08:49:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 08:49:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312610.1582687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPG8a-00057G-El; Tue, 19 May 2026 08:49:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312610.1582687; Tue, 19 May 2026 08:49:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPG8a-000579-C5; Tue, 19 May 2026 08:49:16 +0000
Received: by outflank-mailman (input) for mailman id 1312610;
 Tue, 19 May 2026 08:49:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPG8Z-000572-1j
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 08:49:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPG8Y-005wzN-Dg
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 10:49:14 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0c2407-bab6-0a2a0a5309dd-0a2a450bd00e-8
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 10:49:13 +0200
Received: from [40.93.195.0]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0c2408-212f-0a2a450b0019-285dc30088cc-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 10:49:13 +0200
Received: from CH0PR03CA0377.namprd03.prod.outlook.com (2603:10b6:610:119::31)
 by IA1PR12MB9740.namprd12.prod.outlook.com (2603:10b6:208:465::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Tue, 19 May
 2026 08:49:09 +0000
Received: from CH2PEPF00000148.namprd02.prod.outlook.com
 (2603:10b6:610:119:cafe::34) by CH0PR03CA0377.outlook.office365.com
 (2603:10b6:610:119::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.24 via Frontend Transport; Tue, 19
 May 2026 08:49:09 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CH2PEPF00000148.mail.protection.outlook.com (10.167.244.105) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.11 via Frontend Transport; Tue, 19 May 2026 08:49:09 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 19 May
 2026 03:49:05 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 19 May
 2026 01:49:05 -0700
Received: from [10.71.196.80] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Tue, 19 May 2026 03:49:04 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PVKRwKmOFPhXuLGpza/qy0F6MOK7wYyk9WXxy+54iULRfOEiMcGR6Q0kqgVwFOhsxWWVmLirn0JjzL5SGh6ALSwMc7GNHa3lgdy9i1OlbJHR9B2OP85GNTPl6pQ1WAJiDkGdFNjVZYMKwU2MJuy2RI6rcuDp1MirzS5le9rl9AO9yciT/mWnbpb5zDtlcmEUX6D18XCGQTpp6KPui3/bRY8ldhOUAFIqdbi7Y16bx33KZVoHGSednA/FVaEUbiDZDpsvQYHTDIYPct24r3vfLKvUsj1pMZfs6hL/LMIqjz7IXyJek7fiJbTliLG3bB4VCwk8bqHennATn1/uTYJ0Kg==
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=CdU8KP8Law14UPZzsFBMa2+++QIUhEUyVlkbL0ovslo=;
 b=vx2wHWIX+mDk4EIcKIqKlU1tT5XCzTCoOmZXx26mRr4Fscy74BBA8PvFOUA0757L7BOacIcMrW0ULLfa7VeakxxwQNAKxiQojA4sBF/Xe1moEhA5HjtcpzbAV+5+lw70BitNLjaVnLCtN4rzc0urUeKcRtgdazq6AgvDiUVJD1sAW1LxbvXa0tQRrbXKZ1xHpTUZ4AlwGsGrc0mW5A3OkqdbzGbf6kRGUpDee2T+9ZnUV2uVfbjKuYxZpwQoyTMGnHCl95Cy1nq1n+3oZuA0zqpYwDeXApDldlqp+J0Ko5H5KTExptGnQscyfg3ZlbqsxCwYk44zgR83s5n200osGQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CdU8KP8Law14UPZzsFBMa2+++QIUhEUyVlkbL0ovslo=;
 b=bt8ZVBK3SKaTc5B9P/vysZrFb7AQeDkFmg1p8Nu+xRxQzMH4Htcgh4LiDFmwzbMQyIUED5sFH5/37Sd+IGAaKAaTU4aexTKMNswZ23vZLYj+qGM6QQapEO59NL6HqwTqsnuFOiSbjraTV7R6zeZpOtDWY0jMs+1BICpGU6sWb98=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <ca61a607-2f55-47b6-93f2-c25079dfd88b@amd.com>
Date: Tue, 19 May 2026 10:49:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/libfdt: fix UBSAN null pointer in
 fdt_property()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Baptiste Le Duc <baptiste.le-duc@vates.tech>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <0addc679de64cb59b28cf49ba3d39d17443d1ac8.1779179301.git.oleksii.kurochko@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0addc679de64cb59b28cf49ba3d39d17443d1ac8.1779179301.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF00000148:EE_|IA1PR12MB9740:EE_
X-MS-Office365-Filtering-Correlation-Id: 2cdca3c5-9351-4cd9-409d-08deb5837e08
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|1800799024|82310400026|376014|56012099003|18002099003|11063799006|22082099003|4143699003;
X-Microsoft-Antispam-Message-Info:
	mKyXxkRcHXOPp4z3OYr5ccZt4AXwq8s0lQhr/ezZTv3Nygf8nBkeQDDcn4RY5MTi4bHcX9rvQ7iyRoM3F19RfnXM73yfzPPwSPzIwNX0I8X732aAj5K+Z3z+97r7ap/2+lgMqknYVh+w1/Hty7YGHQWE0d+E7WFySZZ9EYy5YPO0Y5IF9DE/fGt8URTSTMnzvCaf8ojeULzHPB2Ox3a/d6BntuxU46sOgBwGuhb6fh11ykYlWuQEYQPbHu/CHRgagze14Rzs/vY1XE/oGpR054ukIMBpau+a9WQohc69BOQ3dO7INBaMlfWKoXOixH9D8UkXWyBDO3kFXgVDmk+H6yLF6HQ7G/J/+cU/ClqUkbB3Q6rI+xGbvHxq4S1Uj2GtSk3a7mB7xx23HeY/nEG6pEmo9AJjEq7QUWE5NE3169hQZIYZSCB+rpz0D85nRDd5wB3dPUm0c4OMDrnoaZws+RzmDruGLnsHm7Xmf+sBPrq9fFU8en8Mf0IQW+hssOmoj/83HHL64/tPHHdG70oJ39k2mN28USx/7dMpW2AVrvvYHMHNLQx7DaSeoNaaYnWm7bAdbKUNzOrGx7im06QGhiESXMQcOcYqlZUgKSIpeEG4XUZaIMMwoJsJ4Z/qSZ3ujAQytvograkfAWS9ye6R90ys9OsI4NsD5Q2wKyGyrsOP7ygPPBEIjviDYKWgP2s7P1+0P/z8edFiBtalA2ix1NHiBrpLaYH8l2wJ+YJIipg=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(82310400026)(376014)(56012099003)(18002099003)(11063799006)(22082099003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	3ARutpuTfTNvNt6VMfDLk+VvM+s8uwl8GTZMfLNh1DkuYpB12XoowRTarbYZuGtDC4I+xiXtzGwhHNIFq6L2MWz9b43H7rKNrSoezu5XFesL+hKNcsqWWkxseHwRmO6s0VwS1eUNmGaBHwPg9osB3ELnWGISmMm3ZsbMb5PmBFBl+axHc10yUtVvLJJ53scpt+9I1XwxJHB4s3DT55/t53Rar9U9LVdTJ4bDDzRTN/YRDQCQ/eHIu6FHqA/zhlxyPRRLmUZMWu9XsA8jdaLVdowSTZjcorSrobrUvyclTRdhJhKqTRq2TI4SX0A09VaJPRbQDdz+bvn3H2QyY8CB0inS4R75wG7dSdGvKaHeP7NIqwZGC4tynlIsRU8fiEx/w0AcvuBWEDeGmgGY5q7W/eu93qfAeEtkX8kuJtnsq506QWuuKCKg4gmixu1PD9V/
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 08:49:09.2464
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2cdca3c5-9351-4cd9-409d-08deb5837e08
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF00000148.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB9740
X-purgate-ID: tlsNG-42698a/1779180553-1BF7EF3B-7A759B5C/10/73395122804
X-purgate-type: spam
X-purgate-size: 1775

Hi Oleksii,

We treat libfdt as external library and we don't accept any edits here prior to
first sending a fix to libfdt and then cherry-picking a patch (in fact, afacit
we then do the libfdt version update).

~Michal

On 19-May-26 10:39, Oleksii Kurochko wrote:
> fdt_property() unconditionally calls memcpy(ptr, val, len) even when
> len is zero and val is NULL.  This is a legitimate calling convention
> for adding empty FDT properties such as "interrupt-controller", which
> carry no payload.
> 
> In Xen, memcpy() maps to __builtin_memcpy(). The compiler treats
> __builtin_memcpy as nonnull on its pointer arguments, so UBSAN fires
> before it can observe that len is zero:
>   UBSAN: Undefined behaviour in common/libfdt/fdt_sw.c:333:2
>          null pointer passed as argument 2, declared with nonnull
>          attribute
> 
> Guard the memcpy() with a check on len so it is skipped entirely when
> there is no payload to copy, bringing the code in line with the
> nonnull contract.
> 
> Fixes: f0ea06558068 ("libfdt: add version 1.3.0")
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
> ---
>  xen/common/libfdt/fdt_sw.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/common/libfdt/fdt_sw.c b/xen/common/libfdt/fdt_sw.c
> index 4c569ee7eb0d..96d4cf571319 100644
> --- a/xen/common/libfdt/fdt_sw.c
> +++ b/xen/common/libfdt/fdt_sw.c
> @@ -330,7 +330,8 @@ int fdt_property(void *fdt, const char *name, const void *val, int len)
>  	ret = fdt_property_placeholder(fdt, name, len, &ptr);
>  	if (ret)
>  		return ret;
> -	memcpy(ptr, val, len);
> +	if (len)
> +		memcpy(ptr, val, len);
>  	return 0;
>  }
>  



From xen-devel-bounces@lists.xenproject.org Tue May 19 09:17:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 09:17:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312623.1582696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPGZP-00013X-KW; Tue, 19 May 2026 09:16:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312623.1582696; Tue, 19 May 2026 09:16:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPGZP-00013Q-Hd; Tue, 19 May 2026 09:16:59 +0000
Received: by outflank-mailman (input) for mailman id 1312623;
 Tue, 19 May 2026 09:16:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPGZO-00013K-AV
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:16:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPGZN-0063tq-M8
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:16:57 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c2a81-5cb7-0a2a0a5109dd-0a2a4508a894-26
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:16:57 +0200
Received: from [209.85.218.52] (helo=mail-ej1-f52.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c2a89-63b5-0a2a45080019-d155da34a5d4-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:16:57 +0200
Received: by mail-ej1-f52.google.com with SMTP id
 a640c23a62f3a-bd2e8931915so827525166b.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 02:16:57 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4dec855sm683729866b.37.2026.05.19.02.16.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 02:16:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779182217; x=1779787017; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=SVuPvFrLuDHqFHmDaVdTRVjv70FyWOxPoTdW5TtPJ+Q=;
        b=fn+MjLTOkDyBsRpR03KlWHMqr6qlMdqzpJTAqBCRHJ7xSRNa2SXS4QxzDASVmIaCFP
         YIRYizuvft2PYdvuEdTDb8oawFlNqPpvkLf2dMBONQXXUX00FBKKI/nqKMiPzG2xsV2J
         ui5Ul+Pfl7NZd8Oco4Wr4QgVeodGWX+75XcTthk81vUhn42OE/tFBtiXUU4o72DaKuRV
         JYYid3yP12owX5B17QyLZI102jl3x35F47wTWMh9y1ojEtL36eLf0Qo1hPJc1K5h99m/
         yawbZcIeBX9RTup8FKZcb0lLP9RhPCd8rnRohB7UgJnaoaqFtHSHfHORw/rlBJw1lnpn
         ES+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779182217; x=1779787017;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=SVuPvFrLuDHqFHmDaVdTRVjv70FyWOxPoTdW5TtPJ+Q=;
        b=IfT2MabJgArTik8y6qRmluaof7Q947+JOXPzTtWu6uKxF7+iETEyGBGE/NNTGOL8PI
         HNpvpLYG7xGvIX5NAwkglpy1w6OP7/JH1q7TxCAidbJdwGCz9ezFY8a0rA7p2h2QtGhF
         tG5fdbW+v+MXhnBo/KUgsRf5wa7uFJtE+NSlPUyBqki4MrYreN2rG3ouMmChouyLY8lm
         algDyGbobjn6EDscgTwIJwdoZUojWQY7+B3DjOzvUQkX3Sjbwlaikaiqc7aHYyOeWhvo
         PC2BBafraifnTLhJitZzypdIByZj8LO1S9m7adX32e15Gmv9bydnSc23vEeCCRpD4Ord
         ZahA==
X-Forwarded-Encrypted: i=1; AFNElJ9Eg50WsQetRtr6pRPUwUmDmUDsrpZLiSrKydvEQm2fV42q2DdHLB/r8KD0huFPA4vlgD1Dwxygj4Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwqemZkTfTHDo5ryMtebjHRVbppqFEJPr68/GqNPKi4F+hPeHw0
	vEi1Zw7cqx/SezQ+M5C1Ad2dEH0D85n7Nvp/iaN63/9hRcRTSbTDXJxn
X-Gm-Gg: Acq92OEK8yTo90DxO/CdghOul2OUhJiRT2jor6RrhmiICMK2nQG5seVzS9lIBC40XAx
	UZZW7C1C5RsjQswM5qN6Lyd94I+xDOvBJYaUj70fSPNqI4jkAeigQq+mJOBEwd+ZvSaZbj3tgqW
	SIwWkjodzU2qpbqZw0mcpOT1nm3YRstt5/87vrsYJwbaxBs7bp1GMNXm66DpefiS3fKbideZzav
	gg4mhzR57BMjfuommUx/KZXI4PnEpEnT9AeVOeZbPuU/+ZnzO2aWyEJChyLOemI5P4DwFXYlv4c
	x0qtNvPQMCnNw7n16qcLsOTozs6twFNndzL/7XdHgrTJpwA5uYLJXWd084MypPlC64sf0JXhYeq
	zz3fs6V69cm1j9dtbeoNnYFpKkNz5uUPU3yW6qU0IwA28VUko5sS6kQiHb1l6/2LX+Z+GmqTz3E
	6Vqg9lu0LCM3TgQDobPI2txnDXExNf+3U5ocOsBpFiqQn6mIbUJOi8NCknfdoVqcZLimwJmyoI5
	Bk=
X-Received: by 2002:a17:906:fc10:b0:ba7:41d0:5efd with SMTP id a640c23a62f3a-bd4f34bd0afmr892027966b.28.1779182216989;
        Tue, 19 May 2026 02:16:56 -0700 (PDT)
Message-ID: <e943765c-45f6-4802-bef6-e2fffd49149e@gmail.com>
Date: Tue, 19 May 2026 11:16:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/libfdt: fix UBSAN null pointer in
 fdt_property()
To: "Orzel, Michal" <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <0addc679de64cb59b28cf49ba3d39d17443d1ac8.1779179301.git.oleksii.kurochko@gmail.com>
 <ca61a607-2f55-47b6-93f2-c25079dfd88b@amd.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <ca61a607-2f55-47b6-93f2-c25079dfd88b@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1779182217-C487BDB1-D3960650/10/73395122804
X-purgate-type: spam
X-purgate-size: 2387

Hi Michal,

On 5/19/26 10:49 AM, Orzel, Michal wrote:
> Hi Oleksii,
> 
> We treat libfdt as external library and we don't accept any edits here prior to
> first sending a fix to libfdt and then cherry-picking a patch (in fact, afacit
> we then do the libfdt version update).

Thanks for clarifying that.

Just to be sure I don't confuse something.
According to the commit ...:

commit ad9cf6bde5b90d4c1e5a79a2803e98d6344c27d7
Author: Vikram Garhwal <fnu.vikram@xilinx.com>
Date:   Thu Nov 11 23:27:20 2021 -0800

     Update libfdt to v1.6.1

     Update libfdt to v1.6.1 of libfdt taken from 
git://github.com/dgibson/dtc.
     This update is done to support device tree overlays.

... I have to send this patch to git://github.com/dgibson/dtc, right?

~ Oleksii
> On 19-May-26 10:39, Oleksii Kurochko wrote:
>> fdt_property() unconditionally calls memcpy(ptr, val, len) even when
>> len is zero and val is NULL.  This is a legitimate calling convention
>> for adding empty FDT properties such as "interrupt-controller", which
>> carry no payload.
>>
>> In Xen, memcpy() maps to __builtin_memcpy(). The compiler treats
>> __builtin_memcpy as nonnull on its pointer arguments, so UBSAN fires
>> before it can observe that len is zero:
>>    UBSAN: Undefined behaviour in common/libfdt/fdt_sw.c:333:2
>>           null pointer passed as argument 2, declared with nonnull
>>           attribute
>>
>> Guard the memcpy() with a check on len so it is skipped entirely when
>> there is no payload to copy, bringing the code in line with the
>> nonnull contract.
>>
>> Fixes: f0ea06558068 ("libfdt: add version 1.3.0")
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>> ---
>>   xen/common/libfdt/fdt_sw.c | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/xen/common/libfdt/fdt_sw.c b/xen/common/libfdt/fdt_sw.c
>> index 4c569ee7eb0d..96d4cf571319 100644
>> --- a/xen/common/libfdt/fdt_sw.c
>> +++ b/xen/common/libfdt/fdt_sw.c
>> @@ -330,7 +330,8 @@ int fdt_property(void *fdt, const char *name, const void *val, int len)
>>   	ret = fdt_property_placeholder(fdt, name, len, &ptr);
>>   	if (ret)
>>   		return ret;
>> -	memcpy(ptr, val, len);
>> +	if (len)
>> +		memcpy(ptr, val, len);
>>   	return 0;
>>   }
>>   
> 



From xen-devel-bounces@lists.xenproject.org Tue May 19 09:27:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 09:27:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312638.1582705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPGj0-0002sO-I9; Tue, 19 May 2026 09:26:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312638.1582705; Tue, 19 May 2026 09:26:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPGj0-0002sH-Dc; Tue, 19 May 2026 09:26:54 +0000
Received: by outflank-mailman (input) for mailman id 1312638;
 Tue, 19 May 2026 09:26:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPGiz-0002sB-Cv
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:26:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPGiy-001Q1N-P6
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:26:52 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c2cce-2eae-0a2a0a5409dd-0a2a4509e726-42
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:26:52 +0200
Received: from [209.85.208.54] (helo=mail-ed1-f54.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c2cdc-2497-0a2a45090019-d155d036c9e3-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:26:52 +0200
Received: by mail-ed1-f54.google.com with SMTP id
 4fb4d7f45d1cf-670ab084a39so7057140a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 02:26:52 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4bd099dsm682787366b.8.2026.05.19.02.26.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 02:26:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779182812; x=1779787612; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=AnO6T7eL0trFh6nVtBYNPzDopteyfzH9V9C8BBvHmKE=;
        b=gTN3DYr2rkcEUd/35f6z6p/nSXuxsUFYNimkFk2a/7wNm+HW9s1CoW2V/GAIXYZ8n8
         777JqzemIn6CJXLQpadW3knDRr1MrfKMzVt1nZG0ULmTKzAcwWpP0sVzFDYO/rZPnBgF
         jYgXLcj6WRj+kw3ezHknO3fBojhr2eJLenS2RXaGjls8ZBPCiOGco/orygGMpy61Dl39
         L6g8UumTwFmkuQAOQf/lZji0qxneIdtq/HNZK7y0f6adAuJjaJRg8ffapHo56rEDPlhq
         NPBewWjsEnCsppOmcQzwq595K/j6Op5DvOOiX2Pt0GIHImCxdDV2l86MqEzl6ScxCd7u
         Armg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779182812; x=1779787612;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=AnO6T7eL0trFh6nVtBYNPzDopteyfzH9V9C8BBvHmKE=;
        b=F3Q9IKwIklg0vYZXU81A0bplCeReAxI7XyABqcfKcdzSuxINX2taO24djMEEQCwDUS
         aJWgp891bhD1mS2mNPav37BZoZwR3ngkoka3TDK0GBx4RPd5lnkRW40lNzanylBvF+oE
         Q4/i+rxh9LDTmId9ttWLvQV7o0I07cpHcf3FRYuQqaqEWFdnU40jMMoJ3n+NzcTvKVOZ
         szeT/sliHDufYgUmkmkzn0+JoeX+dhxm+pSj8+DcOw0IuTtSBK9b5TPChf4pcgzL7wYf
         7sm9WRs56c1ZBF2YSqVk5wFZyZQRGc4KDHcL4+gn6o/QTt27o7o9IfwsepzUvn9e+2Zf
         glQw==
X-Forwarded-Encrypted: i=1; AFNElJ9YH5bM96U5qwqQZx8s35stm2CWOeLJscasfjgnAKykQ/Za/3GEps4o+amImEIcHL/qKXuxpkWsex0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxwY2cWFnNQbcfisqnzNcH4GiVMS2nro5a6Zt3T1xF9+GWb6Zym
	ynuYWL0M7VmBIcd4wN4QYlzbyvebOfmQvFEMGm80ozCyYnm4ct0uXEaed4QNKA==
X-Gm-Gg: Acq92OEC7JqXlL3zlrE8XEAlqyY81muRVjJWSXl3uZmuX6MkRVGhKAUzr6Y3xOVuGHX
	vTP4QCmO2R4o0X7ji5kr8UplancFXM8r7jmjNTcgIOMcOT7LT0I/scSBRHk3ZhjRvSY0nfWTOnM
	KeyuEtxGstI21XYez3BzQIq49PLxzc3uF1HR014qbRrv9MdF5845LE91Q7Zm16J/XgRWqppQjck
	TZYRUWw5uuMXlHR13gYA16ure6tfRUh/DQnWEyx3dplQ84wogSC6tzOwWrz68It70AP8EF7rjkq
	mg9f8htPFwtCKlT7+gJ02znQrG/udkzL2Dd3PyOLF3JzxG0dc8XG/JIu3ZhfDK8lhYaCMreAe/w
	3mDs8WIqEerGZLpq92jvoDkR6cSXaU4swtk258b4VSgT6PAnLCEcJL2fqdX01ed9WKlHGCJemNl
	PaUZEocqz1owCZQoGFfUsPNvVHzW0hcS5Lmacia+r/hY3BST40f1vLqmKUd6A9/oSydmwOh1zOR
	7C9avJZ1Hbf3A==
X-Received: by 2002:a17:907:3ea5:b0:bd4:c64c:5a9a with SMTP id a640c23a62f3a-bd517aa757bmr1055753866b.36.1779182812038;
        Tue, 19 May 2026 02:26:52 -0700 (PDT)
Message-ID: <92e8f6fc-09e1-4149-b099-4a46e72e2af2@gmail.com>
Date: Tue, 19 May 2026 11:26:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/26] Introduce enablemenant of dom0less
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>, Doug Goldstein <cardoe@cardoe.com>,
 xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <0c732808-8bf7-4f8f-9a81-4c649f030a00@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <0c732808-8bf7-4f8f-9a81-4c649f030a00@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1779182812-4357BA53-733C9EC5/10/73395122804
X-purgate-type: spam
X-purgate-size: 912



On 5/18/26 5:38 PM, Jan Beulich wrote:
> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>> This patch series reprensent a bunch of patches necessary to enable common part
>> of Dom0less.
>> The stuff necessary to start/launch domains will be introduced separately.
>>
>> This patch series is based on [1], but a lot of patch could go even without
>> it.
> 
> What do I do with this kind of statement? This still leaves it to the committer
> to figure out which ones could go in earlier. What helps in this specific case
> it that ...
> 
>> [1] https://lore.kernel.org/xen-devel/cover.1778140240.git.oleksii.kurochko@gmail.com/T/#t
> ... the remainder of this looks to be ready to go in now (and I intend to commit
> that tomorrow).

I will be more specific in the future and specify which patches can go 
in without waiting for the dependency patch series to be fully merged.


~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 09:27:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 09:27:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312643.1582713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPGjs-0003Us-Os; Tue, 19 May 2026 09:27:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312643.1582713; Tue, 19 May 2026 09:27:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPGjs-0003Ul-M9; Tue, 19 May 2026 09:27:48 +0000
Received: by outflank-mailman (input) for mailman id 1312643;
 Tue, 19 May 2026 09:27:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPGjr-0003PG-HM
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:27:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPGjq-00BKH8-Pt
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:27:46 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c2d11-bab6-0a2a0a5309dd-0a2a45099874-6
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:27:46 +0200
Received: from [209.85.208.43] (helo=mail-ed1-f43.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c2d12-2497-0a2a45090019-d155d02badbe-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:27:46 +0200
Received: by mail-ed1-f43.google.com with SMTP id
 4fb4d7f45d1cf-6804e24803bso7498683a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 02:27:46 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4e9175csm666314866b.55.2026.05.19.02.27.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 02:27:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779182866; x=1779787666; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=dodeXLv0derw32YsSF17DhDhOcw506Kyc1XmLVi4mT4=;
        b=Z1r3uS/QB88RgKUs8QPUw26H4Vp/sZZIUeA1K866016MMoNT3jMv43IB1yE0zrCOlV
         7xJiyFFWJ8Fj5p6ADExRvSr5JUjGlb9tnd0kK+mrgvILCZ+mfVjXiSpbgPJZju2LjHBR
         syFZSwTlvRQ/e9mHqOfecSh3xPoLWcFPOfLGcYrF238d9zQIlGqAerc6Vk975I8qX8u+
         mI2fTtueia/a528cgYluPIZQYfXe4Im9ZJydXJTmYtUHbDcCFdlb6jRxEGiTMX1eRr20
         ViBvFoychrhlRueNDO2PAg/2hC17TicdnvqYZXICeGTBSQHOnvh/RyXUi5H/oEGps887
         g0cA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779182866; x=1779787666;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=dodeXLv0derw32YsSF17DhDhOcw506Kyc1XmLVi4mT4=;
        b=Nx2NYD56X4Xq8R0LfB3mF+gKEOGaPRBSArdj4Jw4GV1veDczfMH4FDGfQ2zn9qXGaG
         RqCKtYHVr0XHgIrh6/hc+wRQ13TLvhVuAk9ZxxF4ie82PJiv9c493at5kojAaMBmWuz8
         3DcjwYox9K30kPx1TbI7Kwkjn0tOwtr3QD+ug0ORPwTSrkqjz96i7n1JBuXCwZoRucIo
         0aKSRgV/zbcEG14eihWT3Rrst6K3JRbVttzgB6bUVDdIHx83W15jVbW9GgKO5GIYLWEN
         asZDDpVsQcU60b96Xrh27ICn8DMWfd9UQ05m9asPc2igWk7XaL4fgVyZ4y1+iaQRYF8q
         CFTQ==
X-Forwarded-Encrypted: i=1; AFNElJ+TroqraooCN21CyOHb7lPSuXyZX9CaEISTNP9Y2Jyb98DsST8I3qAtqItwrilPmNqdxJuhB/6by90=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzfoEA5eFyDSuOJGIC1dhLA1557HqjWY+0p2OUsayeaizKdAfbg
	riiYzefCV8z9TqWvSo2Hkmc3cK7A1/E3/cVqzOHjvip8ueL17jAkjWwr
X-Gm-Gg: Acq92OGkQzu7ToFRzpkomHyD7VwgWposWr5ghkS0RtVf/O87yVKdFZqKWwFiK4oqsYC
	8xdSrWzXhgYmDRTqqUFQzrTSiYDq0FQ6mtX9T52G7p+lE8rB7QCqYeGlgDm/62A3y+YZ+WZhUoD
	8b+EPbUg/xghzqqEPfUyrIhHR6OVP3T4fjgWV/I4UI2Dt+OdVRn8cftnwFbtB1PVAxrqZoSR5/3
	yWZAmD6XPStOpiQJJpP4lMkCx4WtAEe2PbNl6cvm4Kja+07bfRNyXSqtg8e1na7WfGGEmkM7Ps8
	IUUHx0ZjyW9/gXzcEhfeATIFHww37b1SgmIXVfoiSDunSFFyUKM8qClXaXTJ0gMvapFcblAxsn7
	hLOec22OZH5EdpAmHMCB69IQDLIivzWkKDyUKiP9rNJ9YrQP9FuuVX0icNWRdKGNPUoNLSfeRvD
	RNkpddGgpp/deLHexzoezeCFxhiMgRrhKfEkljjgiw78Nntl44W2ymqPnAz5s5Iz0v/KGNcErY8
	qaa+fA+ytSjwQ==
X-Received: by 2002:a17:907:cf8e:b0:bd5:7c2:70ca with SMTP id a640c23a62f3a-bd517a992c2mr1041704466b.48.1779182866083;
        Tue, 19 May 2026 02:27:46 -0700 (PDT)
Message-ID: <a4dca380-1a7e-4c34-9b52-58c056745e03@gmail.com>
Date: Tue, 19 May 2026 11:27:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/26] xen/riscv: Implement ARCH_PAGING_MEMPOOL
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <97f20cc49563fdf01775a649e562e302bd0fa886.1778250616.git.oleksii.kurochko@gmail.com>
 <97011ba2-0f54-4336-9949-5ea0d76900f1@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <97011ba2-0f54-4336-9949-5ea0d76900f1@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1779182866-88B73A53-0AFCDA1C/10/73395122804
X-purgate-type: spam
X-purgate-size: 1764



On 5/18/26 5:13 PM, Jan Beulich wrote:
> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>> The p2m_freelist is used to allocate pages for the P2M. To initialize
>> this list, domain_p2m_set_allocation() may be called from construct_domU()
>> in the common Dom0less code, so RISC-V provides an implementation and
>> enables CONFIG_ARCH_PAGING_MEMPOOL unconditionally.
>>
>> Additionally, implement arch_{set,get}_paging_mempool_size(). They are
>> not directly used yet, but are required to support the
>> XEN_DOMCTL_{get,set}_paging_mempool_size hypercalls.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> Acked-by: Jan Beulich <jbeulich@suse.com>
> with ...
> 
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -1606,3 +1606,27 @@ struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
>>   
>>       return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
>>   }
>> +
>> +int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
>> +{
>> +    unsigned long pages = PFN_DOWN(size);
>> +    int rc;
>> +
>> +    /* Non page-sized request or 32-bit overflow? */
>> +    if ( pfn_to_paddr(pages) != size )
>> +        return -EINVAL;
>> +
>> +    spin_lock(&d->arch.paging.lock);
>> +    rc = p2m_set_allocation(d, pages, true);
>> +    spin_unlock(&d->arch.paging.lock);
>> +
>> +    return rc;
>> +}
>> +
>> +/* Return the size of the pool, in bytes. */
>> +int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
>> +{
>> +    *size =  pfn_to_paddr(ACCESS_ONCE(d->arch.paging.total_pages));
> 
> ... the stray blank dropped from here. Will take care of this when committing.

I would be happy with that.

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 09:28:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 09:28:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312650.1582722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPGkE-00043w-07; Tue, 19 May 2026 09:28:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312650.1582722; Tue, 19 May 2026 09:28:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPGkD-00042t-So; Tue, 19 May 2026 09:28:09 +0000
Received: by outflank-mailman (input) for mailman id 1312650;
 Tue, 19 May 2026 09:28:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPGkD-00042a-4h
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:28:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPGkC-00Cpd9-G8
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:28:08 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c2d13-2eae-0a2a0a5409dd-0a2a4501930a-48
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:28:08 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c2d27-c1f2-0a2a45010019-d1558033ec05-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:28:08 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-48a7fe4f40bso40611415e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 02:28:08 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe4c8344asm533486555e9.1.2026.05.19.02.28.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 02:28:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779182887; x=1779787687; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mcsPspDxsi13i8i+IwJlm9w9vaVz+tt+6JNJITaFXjE=;
        b=WHTmudBHgddk5z51b9X6Iy58H6EWNvob1dFVIuCeuPAvHCxEYUeqLairVtDmZsZ4UD
         fUnwRwsGZ1n//rtYVPQxFiZkSs8oZL0Xw8gwL19ygRDw8djhIvHgYVKtG4aqu5HFbtU3
         XuMG2rIW8OXFXJuDTTnxeL8srn9f5g3pFXUVO1iwJWDmsUrwf5YLsUViMJcL1v0lQXM7
         Ch9g8yQuReNTmEfE7QRVG4kCLqHZLPOAJ8+2khSXg/74izGcBbArHd5nSbRnWt1H4EtV
         nYPCMvSs3zTZHet6fFvqaRoXbdG+VfHHjF9xMrwqtquZ7Wab44FHl6pj2tNIgM6DMq5h
         UU3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779182887; x=1779787687;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mcsPspDxsi13i8i+IwJlm9w9vaVz+tt+6JNJITaFXjE=;
        b=XZmWlBtcRdUKh4PPNVF5RqsQok8GLQDZyCCgs+gC/unfKjDPMOang8aNgb+zy/gIoK
         xCvgPBCfGyHQsMLiM9VooZwbHSQWROMHJzqvJsb79uENaq8M+Fcvhh4aRgme7x35GB2b
         M2JKnIk9FUbjKxzmW2ul/gqzbNNhCL9ZTFU2AfaBQjnH+iJ1ukyUt2TaVBRjhUBV1SXa
         09uy9+YjU1+mVLiRBOmiOn0BqiXjBK/QN9+s/l6mQF2eLTI94hSwjNfppIfQvsryo8qy
         eP6TPyafPKqL6aX/N8zaHOWwJm0tVLjkqFHzTntxi89eIEm0BIHwWH0KQYwd4EJ9CXvK
         ZEGA==
X-Forwarded-Encrypted: i=1; AFNElJ9mCuqmsNdqfZOSy41DoFy9W5jp5+vGnF/hti9AbbvtIlz9EhYVwu0wXkXIVcpGciwXCaLRvYiGZws=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz4sNsbSh2OXZ+dpJsUpDGEAw1W8A89UUFw/mbJ5GFjwnfE7zlc
	BB+jKBGvIZDlPZXPArp3sX7S4QFHvUjI0NdQiJkP2Kinrpoma4BWUZdWgz8RVZlhaA==
X-Gm-Gg: Acq92OEpBnQ4f5CXftvUDUGHU9k4LPhgjv9EQldO/uilavfntan0AKXPaKKm8ITeiE0
	qRdLV7xZKJEGaiJ3RHX9JTFuVoOclrlC16MjPfUuQsTm31DP1ACSIlK/4GgJL39wDzsZbp4dfyu
	ITZJjngzGOjcnsPLxFBw4Y+3a/QqAre2UWhRh+qoWNOcIy0bCSwSY0WA5xKnp6tFzJPHksIiast
	i8SrGKUIkHNDoRi4SYWitFFJo4C8i4/9tU0v/KYTLA69rO8NZVx4/NVo2ZdTzlg3SuPqeY4U+M0
	1CJvIenTG8QWeoT8eT//rDiz8idwvoY4TX3lPyp5tlLmkCSyDYv22qdyF2iLTlujRsV2gpJ7qPS
	tvjKAfyZYewygicZlyiSh4GdgvkWRUIH7A3ZBANA0MNs4BHUGnWD5uQ5ZKnn1SHPHv2G+fjPHUs
	bwYTCJwv2LcNz8KjFFLvZQq9CPAOoeREw2sPjprIPVy+xou1ANQ8EVOSJxqB+wver+LaE9EBY0u
	8sqM6I4sXR4aps=
X-Received: by 2002:a05:600c:c086:b0:48a:563c:c8c5 with SMTP id 5b1f17b1804b1-48fe60eabddmr212967335e9.8.1779182887615;
        Tue, 19 May 2026 02:28:07 -0700 (PDT)
Message-ID: <5f8850b7-11db-4d78-8353-6e0580bd397b@suse.com>
Date: Tue, 19 May 2026 11:28:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] xen/riscv: fix switch_stack_and_jump()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <1ac102874c8f7190ea09787a035692b03e4b46cf.1779179301.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1ac102874c8f7190ea09787a035692b03e4b46cf.1779179301.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1779182888-AE143FF4-9F3BE07F/0/0
X-purgate-type: clean
X-purgate-size: 1193

On 19.05.2026 10:39, Oleksii Kurochko wrote:
> The following compilation issue occurs when UBSAN related stuff is enabled:
> prelink.o: in function `smp_processor_id':
>   /build/xen/./arch/riscv/include/asm/current.h:46:(.init.text+0x274e2):
>   relocation truncated to fit: R_RISCV_JAL against `init_done'
> make[2]: *** [arch/riscv/Makefile:45: xen-syms] Error 1

There's no init_done() as of yet.

> The switch_stack_and_jump macro uses "j " #fn which assembles to
> JAL x0, init_done is a RISC-V J-type instruction with only ±1MB range.
> 
> Without UBSAN, .init.text is small enough that init_done (which lives in
> .text, not .init.text) is within 1MB of the JAL. With UBSAN enabled, all
> the instrumentation calls bloat .init.text well past 1MB, so init_done
> is now >1MB away from the JAL. The linker tries to truncate the 20-bit
> J-type offset and fails.

.init.text is well below 64k right now. Are you telling us that it grows
by more than a factor of 16 when UBSAN is enabled? IOW while the change
may indeed be needed, I question this explanation. .text growth may matter
as well, and e.g. .rodata (living between both sections) might also grow.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 09:29:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 09:29:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312658.1582731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPGl3-0004fb-B5; Tue, 19 May 2026 09:29:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312658.1582731; Tue, 19 May 2026 09:29:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPGl3-0004fU-8b; Tue, 19 May 2026 09:29:01 +0000
Received: by outflank-mailman (input) for mailman id 1312658;
 Tue, 19 May 2026 09:29:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPGl2-0004ev-3P
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:29:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPGl1-00BKXa-FX
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:28:59 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c2d53-5cb7-0a2a0a5109dd-0a2a4502c00e-30
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:28:59 +0200
Received: from [209.85.208.53] (helo=mail-ed1-f53.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c2d5b-af86-0a2a45020019-d155d035c0ba-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:28:59 +0200
Received: by mail-ed1-f53.google.com with SMTP id
 4fb4d7f45d1cf-67e2498f3a7so7372797a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 02:28:59 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4dec855sm685143466b.37.2026.05.19.02.28.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 02:28:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779182939; x=1779787739; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=oilnvXpTVqeZORRPfv32DCf56jL3MsGxny/s4Jkcn58=;
        b=F/lt2Ttcfiwwt/ejm1geGSOaQcT2nWHlJKow025K+XAs18fJNB31s8+tPxxMrHY8YE
         kWhoBDMpXuCu4J8UYfbY4AuVhfZ3p+0NTOAQ2AdlWHO8twyOBWOOqzIDXH5120FVbqSq
         rV7tcrJcnhjhBJGQX948raP6P1FYQWA1JzXEzRC4MTlnGrRZWOW4ALCEoH+QhySc5bGO
         Sa14laVqSIF24KEcM4oE/P0ysmIM7AuoELknx3o5fRHUSlxnTTXFHlDWLd2239ft8Coy
         5FIgdvJIKjS3dmcOEssN6VGDd34KWcFdWyjRMoS74GrkA+CavOOYCHeAojbQEG/gkR5v
         qlcQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779182939; x=1779787739;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=oilnvXpTVqeZORRPfv32DCf56jL3MsGxny/s4Jkcn58=;
        b=snbPZH3dK49evG2p4tTs3JhogpASIoUvX3RC5Erwd2HQ3Y72RO6STxd1cDALhQB6ST
         nwJ0Vg00ZvIC/K/PuYHQvvpqWaQBsErKdTGRAoVEhi/EAo0firMvbLMDLTLWjslGJKak
         DqbPFZvFUG7Lx3mz3nkSWlyJ8Y/3grwkIvaCHhTojYHHUaCmjI+qCRS9/xULOrmP+bca
         eC/xbm5lvjWLTXkETeghwwbr1DKGS03fuHoDsPm46fs7Z0Eczr/kKHSr+JtTO2Tatz7v
         rin7EdhDABv7MYs+rEY7/mqw+rsCsZgBkcUbIOlWCwYSboQ0LkUKJ/fmoR11JLb5SOWs
         hvkw==
X-Forwarded-Encrypted: i=1; AFNElJ++aznIv3cR/H5zzICZaGDE7Hm8w02AQ6rKnA73Gkc/+EKvZhvLUtbX5SjQuNMqr+481ZtjZw29IuM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyEkk+OtxfGoW7SchjPtGX14SOs8AjeWYcQy4frDcetI/oKjSIE
	oG9WJaAsIq7xw0mx4ge+sPU7gO3PEMA8pmiQZ0vC41cDGaRafdP0OrCE
X-Gm-Gg: Acq92OGPiZYzxjBjC0gh8r9YMdII5ZytkksGbwow97H2w9hhOG3EhL7h/Q96CueSjhv
	tHSSdtddVUaiZyRv/8SKb0ewRxF5OXC0ey4sdmbeabl9WVJd6gx+xDzpjJmkgRxBqUk9ZX3AqoF
	aicMG2B01S2OhXew7DUIY6NgEz77HnVzMtURSlyTCn9RWZe1uJp1NbPI3vw6Lo4z/lakH4xj8Ok
	0DFMbLAY2/JUtIpXz9iJtH9Qm0/bFPKpsyAk2CyWQvoibDxnOJlbYt619Z7G4Ehs9xhzq8IfMCf
	Ff/RQFBcGq4fjaHiC7j3bLZ6UpbnyOO6jjG2nNw/7UqnsiYh0HY4yeDPQc12huHZ+XY4VUw/jSv
	IiDIQq6hDGslX/YJoHF14LuYLFgQbssgYlbwDbVmqmIGMuUVdyMjSqg6aMIk7qiFVHh1WvoaBNW
	G+WeIXryV6c1US33L+lIzafZcZew8Pahul2Q/YzMAhxRQcS/REHwDIIedMyyIEAVgAwa743ljnR
	bOFHPhNVIwGKw==
X-Received: by 2002:a17:907:1c0d:b0:bd2:bd3:1ef8 with SMTP id a640c23a62f3a-bd517a99797mr972760566b.35.1779182938736;
        Tue, 19 May 2026 02:28:58 -0700 (PDT)
Message-ID: <7f2a1dcd-482a-4821-bb14-54e804a703e8@gmail.com>
Date: Tue, 19 May 2026 11:28:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 03/26] xen/riscv: Implement construct_domain()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <3b1c60095c8a963e7df3ca5025e637e678f5ee71.1778250616.git.oleksii.kurochko@gmail.com>
 <8b076265-8559-40cd-ac65-418e7b3c9e7e@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <8b076265-8559-40cd-ac65-418e7b3c9e7e@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1779182939-A9573161-27225067/10/73395122804
X-purgate-type: spam
X-purgate-size: 2114



On 5/18/26 5:33 PM, Jan Beulich wrote:
> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>> Implement construct_domain() function for RISC-V, which performs initial setup
>> for the domain's first vCPU, loads the kernel, initrd, and device tree,
>> and sets up guest CPU registers for boot.
>>
>> It also creates additional vCPUs up to max_vcpus and assigns the device tree
>> address and boot cpuid in registers.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> Acked-by: Jan Beulich <jbeulich@suse.com>
> with ...
> 
>> --- /dev/null
>> +++ b/xen/arch/riscv/domain-build.c
>> @@ -0,0 +1,52 @@
>> +/* SPDX-License-Identifier: GPL-2.0-or-later */
>> +
>> +#include <xen/fdt-domain-build.h>
>> +#include <xen/fdt-kernel.h>
>> +#include <xen/init.h>
>> +#include <xen/sched.h>
>> +
>> +#include <asm/current.h>
>> +#include <asm/guest_access.h>
>> +
>> +int __init construct_domain(struct domain *d, struct kernel_info *kinfo)
>> +{
>> +    struct vcpu *v = d->vcpu[0];
>> +    struct cpu_user_regs *regs = vcpu_guest_cpu_user_regs(v);
>> +
>> +    BUG_ON(v->is_initialised);
>> +
>> +    /*
>> +     * At the moment *_load() don't return value and will just panic()
>> +     * inside.
>> +     * TODO: it will be good to change that.
>> +     */
>> +    kernel_load(kinfo);
>> +    initrd_load(kinfo, copy_to_guest_phys);
>> +    dtb_load(kinfo, copy_to_guest_phys);
>> +
>> +    regs->sepc = kinfo->entry;
>> +
>> +    /* Guest boot cpuid = 0 */
>> +    regs->a0 = 0;
>> +    regs->a1 = kinfo->dtb_paddr;
>> +
>> +    for ( unsigned int i = 1; i < d->max_vcpus; i++ )
>> +    {
>> +        const struct vcpu *tmp_v = vcpu_create(d, i);
>> +
>> +        if ( !tmp_v )
>> +        {
>> +            printk("Failed to allocate %pd v%d\n", d, i);
> 
> ... %u used here and ...
> 
>> +            break;
>> +        }
>> +
>> +        dprintk(XENLOG_INFO, "Created vcpu %pv\n", tmp_v);
> 
> ... this line preferably dropped. Can do when committing, provided you agree.

I agree with these changes.

Thanks a lot.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 09:37:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 09:37:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312675.1582750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPGtU-0006nk-Cg; Tue, 19 May 2026 09:37:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312675.1582750; Tue, 19 May 2026 09:37:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPGtU-0006na-8D; Tue, 19 May 2026 09:37:44 +0000
Received: by outflank-mailman (input) for mailman id 1312675;
 Tue, 19 May 2026 09:37:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPGtT-0006nF-71
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:37:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPGtS-00BMV2-JC
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:37:42 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c2f52-2eae-0a2a0a5409dd-0a2a4503e3e8-40
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:37:42 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c2f66-672d-0a2a45030019-d155802bb8ba-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:37:42 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-488a88aeec9so39363405e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 02:37:42 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe5ab3977sm343673985e9.9.2026.05.19.02.37.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 02:37:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779183462; x=1779788262; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=57pwnHxMPCxaGBZNl8cs6PC7ps1WywDh+7AYGFUot5k=;
        b=feZgPsLOcIrllOuKrxaB9856pKf+EmNc0zVMtbqWRS4EQtiHW9EQqQq4pkbUzrab0L
         X/kvXfumNGq8GSZmytCMhKLRTLG7wMPXI8iWnB5dB2avwl4AkPLgaLMq4SI54W2npZZY
         XF2EQUuTMYe7kJ/ks012q+juLHbsMSwbZnqV5Tieu52TfBz6La60ykNLoKscqqs4lW8k
         C0aD2LngX39ZooTGbeZkvXdmP9wEqNKNoJCwKLZ7rbS0/Pdszy5Deq7lc3BE4hiF2HyI
         hRksogVlrvx6PXDobSk2OEd5jPwYUWRiTEn182AZ0cY93Dmz0LSMpROfAQ4TCFbKTcSe
         nSxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779183462; x=1779788262;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=57pwnHxMPCxaGBZNl8cs6PC7ps1WywDh+7AYGFUot5k=;
        b=FN3fIfnPuo1yC8OqjLKr8MijNPfJ5VfQXovJ68Co5foOwGJ9ojFGfJohJmx2UMq8j9
         4pK/VLPTjd+gfDWMlufgoL8GLVM/oY3zorkQBw/Dk43rZ2zoUxeMcUz40jQ5oazM2PeG
         Ceo9LiUhdOBwIdfhbPLRfpvn1uVP9uG1mT0qLmTOo+DAzKTgkWYeTg67TyJjMzjI/2yX
         NhR/9unv1kMkiYMcOEOBbnuEf4dYUX99OyC+H0fltw3YVYEd2mm4d+8p2NnnI4dc3dwx
         Y6MwEdudRqkMPDDlNpKcWXPdi+UqfzdvTgGWICj6YtBx+UCYODXkQdPVLmJHClDu4EVC
         bVtg==
X-Forwarded-Encrypted: i=1; AFNElJ8RnUrJzKDQA5HTnrj8DwpTv7Tg/C5qCNLEF4k97jo8oXFIv/dQ3Fzsot7iAEnNLdPa2pVYgg14zXs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzf2CSbxxBooHAJAdzdjYK1dpw9zhoRrmlXxWg9o+ah6oo6jCl0
	+JBO5UzUdMc91MUrQ8Z6wi5WcEPEsUNnbBqudo3r8iNSTzt/qB9oFiMTzHwtCybc0g==
X-Gm-Gg: Acq92OFalsSr+GejATrit95Ga4qLOYkP5/E/V+p2lf7ekal+tf+LH2pYxlc4+OGhuCx
	Zaf/vR7QNh4MGlJFHuhay+Ei6ZA2g6Jc16X9Of4i+VDuw20MpTEXAdFUiHtmeBitwurvMdCjwGV
	hKIqSsCnuumcCGzuYWgtJVqortzJxX6Gcrpc15OkQ5LQqK6oZaKV4IQ+XhmgszFik+TVBtS4iJj
	ZA21a2GNXa9X+Qoj6Flbnv6DueHX140QbTN8PE+UDZ6Eq8dWeiFa3vVZ07l2ourg9pT9paPUg2N
	l/dkwCMto0rfafZL627P30bP9BfTBHBHIjh4qdlEEOx7C99XPnrh4F+AWC4MtFN8ecaU2BQATBy
	4Yh9Pw66eAKN/0ez4EHjriKl+HeLv91UabB9rBZ79QAQfP0rDu8QZGq2+TExv/5xvH0NiYsZW1S
	SpVH0angm8/SW5iHpL6/KIkxdkLQCscS2a5ovFHCaeqReomUlu5katw/ZmSWxcqSrFffxWWE0QR
	ImOks5BNnZ6E8Q=
X-Received: by 2002:a05:600c:8210:b0:48a:5c23:cab with SMTP id 5b1f17b1804b1-48fe6322447mr270923715e9.19.1779183461808;
        Tue, 19 May 2026 02:37:41 -0700 (PDT)
Message-ID: <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
Date: Tue, 19 May 2026 11:37:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1779183462-36F42938-45DFF5D3/10/73395122804
X-purgate-type: spam
X-purgate-size: 1792

On 19.05.2026 10:39, Oleksii Kurochko wrote:
> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot inside
> the domain's shared_info page for vcpus with id < XEN_LEGACY_MAX_VCPUS,
> and falls back to dummy_vcpu_info for vcpus beyond that limit.
> 
> However, it does not guard against d->shared_info being NULL.  The
> shared_info() macro expands to a member access through d->shared_info,
> so when an architecture does not allocate a shared_info page the
> dereference triggers UBSAN:
>   UBSAN: Undefined behaviour in common/domain.c:325:10
>   member access within null pointer of type 'struct shared_info_t'
> 
> Extend the existing fallback condition to also cover the case where no
> shared_info page has been allocated, mapping the vcpu to dummy_vcpu_info
> instead. This is the correct behaviour: dummy_vcpu_info already serves
> as the safe stand-in for vcpus that have no usable shared_info slot.
> 
> Fixes: 295514ff75506 ("common: convert vCPU info area registration")

I question this, largely (but not only) because I also ...

> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
> ---
> RISC-V does not allocate a shared_info page at the momemnt because its
> guests run in dom0less mode and do not use the Xen PV ABI, so
> d->shared_info remains NULL throughout domain lifetime.

... question this mode of operation. Yes, you may (for now) be able to get
away without, but e.g. event channels will want supporting at some point.
Which will require a shared info page. Better put that in place right away,
even if the guests you test with don't use it (yet). Certain other common
code also assumes d->shared_info to never be NULL for an alive domain.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 09:37:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 09:37:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312673.1582740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPGtP-0006Zg-57; Tue, 19 May 2026 09:37:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312673.1582740; Tue, 19 May 2026 09:37:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPGtP-0006ZZ-1P; Tue, 19 May 2026 09:37:39 +0000
Received: by outflank-mailman (input) for mailman id 1312673;
 Tue, 19 May 2026 09:37:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wPGtN-0006Xj-E8
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:37:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPGtM-008mum-LH
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:37:36 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0c2f5c-e002-0a2a0a5209dd-0a2a4508c7a8-6
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:37:36 +0200
Received: from [52.101.193.11]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0c2f5e-63b5-0a2a45080019-3465c10b511f-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:37:36 +0200
Received: from MN2PR19CA0068.namprd19.prod.outlook.com (2603:10b6:208:19b::45)
 by LV2PR12MB5870.namprd12.prod.outlook.com (2603:10b6:408:175::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Tue, 19 May
 2026 09:37:31 +0000
Received: from BN3PEPF0000B073.namprd04.prod.outlook.com
 (2603:10b6:208:19b:cafe::e4) by MN2PR19CA0068.outlook.office365.com
 (2603:10b6:208:19b::45) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.26 via Frontend Transport; Tue, 19
 May 2026 09:37:31 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN3PEPF0000B073.mail.protection.outlook.com (10.167.243.118) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.11 via Frontend Transport; Tue, 19 May 2026 09:37:31 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 19 May
 2026 04:37:31 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 19 May
 2026 04:37:31 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Tue, 19 May 2026 04:37:29 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QRVprQEOaVLNkPacXmavgq+OU1seG90wekh08L/SD2y/V2GujbBAipJ+vjv5iQ1E2NrId0mzxsg6kHJ0bpPKvhVSUVn4zaXzvhlV/9uFesMtRkg6zR6+8P40wqHs/JeyOtPNaZ8rsXtUz5lK+bpj2zjTMGdR50BJXO0EpVOvLWGZMDpe9EaUFpwpp/z6TCDtR/J7U1xJ4k/yX7HUreI7Ijqk5WGiz1ZWW6pbHNuh5KfkDxtqxMqUIbPO4ZGbLqcnoEfOsi/ftJXtpYzohBC2oYTDXeheor0XKsYZ0uySE9e4bkW7atv/qAc9gEta8gohFXgdQkXbEfnQUoCbQzdqvg==
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=AuOv5HfDcvhsI0JVCdIlwkh2QgMA4dOvBo1NQZ9xx2g=;
 b=JfV2TWZgxRts7zLbgj1VzoRb1G1WTrJkL9TwUJX/8LzEXTkwRx2EAFvyxMWs3n6y92Fur2cucjznlt/dAE47+Vo+23a/yS/YasoaOo50YRMnNJcTf/RohiXZhrsA5q6rz/8bMt8kdkItgcM1VgO922Vg+4zjit7hANUm9TBSBNy7jiwdYxdJAkM/qZjyGqwWqqTjE/9Q4UAFhseXA+D6qxvchk4asZfcLMyihBCyTrR2O0/afe5sv+jWwRUaMdUR9Qkh365g1YgV2f1yFmy8JGk0xK8oHyuFZxXxUQ4+tMsgOL3JIJZeogZMF06K+1A2/Rx+pt39sCv0rUqYGnrIrw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AuOv5HfDcvhsI0JVCdIlwkh2QgMA4dOvBo1NQZ9xx2g=;
 b=Ybj6wluNx0pp9ofI0Wbal69DnIWhJYUFiT7uLWcJbe2bjqEOHdJqFixW1aNRHTmx30DpL3Pxdldsz6zMFyS4N5YE06VjNynvMxA3n/cN92AqTXYvgghOWhmlY2FnNdTyu3pT4lx5pM4059Sy8KN0ZYZ42+vNDC6K7FCyiHsAQuc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <8ade5ff1-a702-4a91-b596-a98833716c20@amd.com>
Date: Tue, 19 May 2026 11:37:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/libfdt: fix UBSAN null pointer in
 fdt_property()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Baptiste Le Duc <baptiste.le-duc@vates.tech>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <0addc679de64cb59b28cf49ba3d39d17443d1ac8.1779179301.git.oleksii.kurochko@gmail.com>
 <ca61a607-2f55-47b6-93f2-c25079dfd88b@amd.com>
 <e943765c-45f6-4802-bef6-e2fffd49149e@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <e943765c-45f6-4802-bef6-e2fffd49149e@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B073:EE_|LV2PR12MB5870:EE_
X-MS-Office365-Filtering-Correlation-Id: 9291a555-0827-45d4-f68f-08deb58a3fd0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700016|376014|82310400026|11063799006|4143699003|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	ZXDNwONUXgX3WCI94RFD7QNb773TI00wjEn2fntZ71nmveAd6wmOsCadeB6sTrMX6x6vtdD6k7Uo6pNjfay2egSfs9/q+3oAc+Zawl5GaIVEv3YHUA0DQp6IpEl1DFBoNV5lYmSwXZI8T2t75OhYqar9hbqxrLkSdob/qY4R0+4JiXH05EiizGxtN/bJX82ABgg9ck2Z+fJ9mKRIV24yU5FC/ZvhI/gdMDKS8u/txIqibHDJ86ioKbRDCCdPUG4FfmmTGvZCDEzxYEZLrBjS+OBw3sFD5c7CBF6ra1D+VKyi7kwFLo4ezEPAZnkatjzofxg/AVmLkb3NEq1eiDyChZycPYCdZMq3ivXjPrhFhohAlDkaNKZFam+knuvk71wzAMezLj3cD2MdbDm80ABFQXzMcgB76r9gcKCJDGNYDEVbhIBLXerqskLD5izo9BuS6y684lKFWUzwPeAAOGjutLAJesv1Eq60DBaXBqgYEFowgYgmTKWgJpIkvbQBNtRZ9EUayqncjdJnS25cXxPuTNM2+Rl+MSm0K3x2n+E7vMc8V2O/AK29mE2NOhnc5Ll2E9l0xBruCMO4HokDBR9JqhUjtH2NM4fgJELBfA5H5X9oE3Tht0j+sZ2JYOQBtgtjMYd6t2wPhgt/Jl+GRjCSGDG2wz1LfF6s3uHX7yifNHwyNLL2ZvM/3AKy+CO28BfVWSyWoQ1qbfJVge5eAsqPitgGSZDCGEFRekHR9XjTzDs=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(376014)(82310400026)(11063799006)(4143699003)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	U2ecZosUZaRwz4eSkkMNz9I3LOWFcdMpxSvwA25KDFg5M790w1f/qSGajbwkXOyYwratZRmxmmqa88pjuGcoLCsbQAW0z19IkqPTjkko58kz1+8y97MTRZmNk7JKJunCcCZLml1uBu1N/aLcJ0XiSDY5m/KPuORHT/dImLxRz0EWSBoRdoIBxBeLkmcIE1pyfsmu+FpM7mUoTFHe2AAJxzdelw2kyEiNy2sS9fEdYW7Qx06yaZVsZdVCfmEzxz8gjXrd+SxuXbZgqN/AiLrV2m5jp9oc87NUBHRr4ATdtRA5Rngv01JJaES7txoGp5vSC13VOMUU2IRfegMXJA7MPlD8wPA6e7QBwdMNcb3Wl42klxYU6PRyuaRMucP2eUfqZ2Gyq2N864eaJMgJr+2F+moUqpNQ3+ppOW6x+A4rXfc6OKdPHoBfWDPlGimE6nhr
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 09:37:31.3540
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9291a555-0827-45d4-f68f-08deb58a3fd0
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B073.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5870
X-purgate-ID: tlsNG-c1860d/1779183456-BC766DB1-240C7391/0/0
X-purgate-type: clean
X-purgate-size: 929



On 19-May-26 11:16, Oleksii Kurochko wrote:
> Hi Michal,
> 
> On 5/19/26 10:49 AM, Orzel, Michal wrote:
>> Hi Oleksii,
>>
>> We treat libfdt as external library and we don't accept any edits here prior to
>> first sending a fix to libfdt and then cherry-picking a patch (in fact, afacit
>> we then do the libfdt version update).
> 
> Thanks for clarifying that.
> 
> Just to be sure I don't confuse something.
> According to the commit ...:
> 
> commit ad9cf6bde5b90d4c1e5a79a2803e98d6344c27d7
> Author: Vikram Garhwal <fnu.vikram@xilinx.com>
> Date:   Thu Nov 11 23:27:20 2021 -0800
> 
>      Update libfdt to v1.6.1
> 
>      Update libfdt to v1.6.1 of libfdt taken from 
> git://github.com/dgibson/dtc.
>      This update is done to support device tree overlays.
> 
> ... I have to send this patch to git://github.com/dgibson/dtc, right?
Yes, that's the main DTC/libfdt repository.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue May 19 09:49:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 09:49:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312693.1582758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPH4p-0000ac-Al; Tue, 19 May 2026 09:49:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312693.1582758; Tue, 19 May 2026 09:49:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPH4p-0000aV-8B; Tue, 19 May 2026 09:49:27 +0000
Received: by outflank-mailman (input) for mailman id 1312693;
 Tue, 19 May 2026 09:49:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPH4o-0000aP-HN
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:49:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPH4n-003buL-S4
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:49:25 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c321e-bab6-0a2a0a5309dd-0a2a4507e37a-42
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:49:25 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c3225-229c-0a2a45070019-d1558036b92a-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:49:25 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-48ff4f8ef0dso37744925e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 02:49:25 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe57944c1sm345441045e9.7.2026.05.19.02.49.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 02:49:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779184165; x=1779788965; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5ssfubz4vlC62LceaJXcP4RoWsVK53s2WgjOkCLZ36w=;
        b=fTthePOqJKydzDl2TeGtH5a1ooskDK5N3u93wemRNv0EYfaHHSlNvOl9KYim2RDgzj
         LTB4Xmkx+mm62LAWfrCAA9z5UnwQ8xkRa+tNPYjCUFS7Q9gknn/1rjrR2GdZB0x3ciwg
         566gzy9L3x2Lry2wsPub6yh1IpV/V1j0D0ZJItyM4aXcs5SkqRwqIeKd1LqEsfw4s97o
         uPgeWaznLFA0DLeM78MlHxrPw66fpRSHAHoDFcn2uTZ8dcVZi+qx0Ixh4EItF0pz/AC7
         L73ajpSRHGJBUb9oIKOMcqk3wgbiG0EbESeneobXolHGLGubfQGAxyDiKBuUCmaDhS+4
         3/9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779184165; x=1779788965;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5ssfubz4vlC62LceaJXcP4RoWsVK53s2WgjOkCLZ36w=;
        b=ilw719Ap5i7IBRLxV1LhgocBdXyLxrCS2SqIFQG5hG0L18gAohC1cG/S0yzOv7zsMt
         pVn0JDI3Iulp1GCn3i0m+sfeMu8XcvEcARne/FXcRokhe7Kv7HoOag8QZYfnUdyboTFL
         jhN99RVApeu/DFmoJU6ImNGmhuwPf91dHoiHMfEUXJX/OCtET9tvkgtge1obk89Kwa+M
         LD6wB+FhvUnkPM9DpjimBXPso0FelmzJanRdliXpMOnIfbC8RZtcghZXdUDqMIrTHFgJ
         SzuV3pVyLXra/jYdiP8gegZkWE9yeKpSoKx6TH+tWZzyzSIBhZclYvKe+mTFEEaopcQV
         wRbg==
X-Forwarded-Encrypted: i=1; AFNElJ/QigTAcSmOYObrFq11hycqdl3g0/SJkaYys5Kt7DXbHSZKW5ncldzR7UxxWEjF8ZacFalf5djEXI8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxruBix/VP196s0WyW2T6QHd7dL2rUz5weC1r0CUI0xoMjFvR1Q
	566j6uHHlQFU+euAWhHTgst7K6zGIoJNGnFjG29ULoc9pf3XyqTSuVmDfGi7j0yRTQ==
X-Gm-Gg: Acq92OGJQ3Iin8i5CZ86YOvZrJaskYDcX+8P8dmd9tYZrTF6sFeh4efd1XhxEQTNTSG
	7hZ+Bt0AGXUOXDI7ZyOrurKC7y14oRMW6xSrboGfuU9C09lAdhWSQnz6o6S6aYM3nqxthNhqcRj
	HZQiQsfTrkaoBclx6Q3t0Nv6kMYO2+IltZQv2AO+YBCb7qbge//sJAKPL01J5TP7K/xyxF7tSoa
	bROf6nvPIwVeNjAHHnNc8VZHrhdccoF097KGE9DYauIlmtq33mJLB1LyWKu9K773A7T4YAYLd4O
	zJc6G6hKFcyY4GyCuFEhjYpK8stxDdP6gR1R/hszyqGX3gpNdRid58TfYPb1Xk3PuwftI2RYttD
	oZC2heMDLu+qt4IdDbMeSBjbGHPwFcjcXlttsavyUEUDprt5PYW8sOzdL+JFS9zKbfZ24HC6FK1
	RrvX1F1yE2TySOuop63D/q3Dv8LT6AiuG3kQBailC2H5OopNOx/39SUb7t8zsMPQlttLe7wIWOi
	3AGWRuknyaVFUM=
X-Received: by 2002:a05:600c:4e02:b0:483:2c98:4368 with SMTP id 5b1f17b1804b1-48fe6322416mr304310965e9.18.1779184164939;
        Tue, 19 May 2026 02:49:24 -0700 (PDT)
Message-ID: <a5b2561f-0225-4f18-bc74-7f66227bc807@suse.com>
Date: Tue, 19 May 2026 11:49:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC v1 5/7] x86/hvm: Move INSTR_* constants to hvm.h
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
 <20260518131404.3716969-6-ross.lagerwall@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260518131404.3716969-6-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1779184165-2236CC48-77160299/0/0
X-purgate-type: clean
X-purgate-size: 4088

On 18.05.2026 15:14, Ross Lagerwall wrote:
> These aren't specific to SVM and will be used for emulator fast path so
> move them to hvm.h.

Some are SVM-specific, e.g. ...

> --- a/xen/arch/x86/hvm/svm/svm.h
> +++ b/xen/arch/x86/hvm/svm/svm.h
> @@ -36,35 +36,6 @@ static inline void svm_invlpga(unsigned long linear, uint32_t asid)
>      asm volatile ( "invlpga" :: "a" (linear), "c" (asid) );
>  }
>  
> -/*
> - * Encoding for svm_get_insn_len().  We take X86EMUL_OPC() for the main
> - * opcode, shifted left to make room for the ModRM byte.
> - *
> - * The Grp7 instructions have their ModRM byte expressed in octal for easier
> - * cross referencing with the opcode extension table.
> - */
> -#define INSTR_ENC(opc, modrm) (((opc) << 8) | (modrm))
> -
> -#define INSTR_PAUSE      INSTR_ENC(X86EMUL_OPC_F3(0, 0x90), 0)
> -#define INSTR_INT3       INSTR_ENC(X86EMUL_OPC(   0, 0xcc), 0)
> -#define INSTR_ICEBP      INSTR_ENC(X86EMUL_OPC(   0, 0xf1), 0)
> -#define INSTR_HLT        INSTR_ENC(X86EMUL_OPC(   0, 0xf4), 0)
> -#define INSTR_XSETBV     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0321) /* octal-ok */
> -#define INSTR_VMRUN      INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0330) /* octal-ok */
> -#define INSTR_VMCALL     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0331) /* octal-ok */
> -#define INSTR_VMLOAD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0332) /* octal-ok */
> -#define INSTR_VMSAVE     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0333) /* octal-ok */
> -#define INSTR_STGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0334) /* octal-ok */
> -#define INSTR_CLGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0335) /* octal-ok */
> -#define INSTR_INVLPGA    INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0337) /* octal-ok */

... the 7 ones above.

> --- a/xen/arch/x86/include/asm/hvm/hvm.h
> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
> @@ -851,6 +851,35 @@ static inline void hvm_sync_pir_to_irr(struct vcpu *v)
>          alternative_vcall(hvm_funcs.sync_pir_to_irr, v);
>  }
>  
> +/*
> + * Encoding for svm_get_insn_len().  We take X86EMUL_OPC() for the main
> + * opcode, shifted left to make room for the ModRM byte.

With all of this moved, the comment wants adjusting, at the very least by
putting "e.g." in front of the function name.

> + * The Grp7 instructions have their ModRM byte expressed in octal for easier
> + * cross referencing with the opcode extension table.
> + */
> +#define INSTR_ENC(opc, modrm) (((opc) << 8) | (modrm))
> +
> +#define INSTR_PAUSE      INSTR_ENC(X86EMUL_OPC_F3(0, 0x90), 0)
> +#define INSTR_INT3       INSTR_ENC(X86EMUL_OPC(   0, 0xcc), 0)
> +#define INSTR_ICEBP      INSTR_ENC(X86EMUL_OPC(   0, 0xf1), 0)
> +#define INSTR_HLT        INSTR_ENC(X86EMUL_OPC(   0, 0xf4), 0)
> +#define INSTR_XSETBV     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0321) /* octal-ok */
> +#define INSTR_VMRUN      INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0330) /* octal-ok */
> +#define INSTR_VMCALL     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0331) /* octal-ok */
> +#define INSTR_VMLOAD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0332) /* octal-ok */
> +#define INSTR_VMSAVE     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0333) /* octal-ok */
> +#define INSTR_STGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0334) /* octal-ok */
> +#define INSTR_CLGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0335) /* octal-ok */
> +#define INSTR_INVLPGA    INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0337) /* octal-ok */
> +#define INSTR_RDTSCP     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0371) /* octal-ok */
> +#define INSTR_INVD       INSTR_ENC(X86EMUL_OPC(0x0f, 0x08), 0)
> +#define INSTR_WBINVD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x09), 0)
> +#define INSTR_WRMSR      INSTR_ENC(X86EMUL_OPC(0x0f, 0x30), 0)
> +#define INSTR_RDTSC      INSTR_ENC(X86EMUL_OPC(0x0f, 0x31), 0)
> +#define INSTR_RDMSR      INSTR_ENC(X86EMUL_OPC(0x0f, 0x32), 0)
> +#define INSTR_CPUID      INSTR_ENC(X86EMUL_OPC(0x0f, 0xa2), 0)
> +
>  #else  /* CONFIG_HVM */

I further wonder whether putting this in hvm.h is a good idea. Is there
anything wrong with using a brand new header, e.g. instr-enc.h?

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 09:54:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 09:54:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312703.1582768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPHA3-0002AW-1d; Tue, 19 May 2026 09:54:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312703.1582768; Tue, 19 May 2026 09:54:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPHA2-0002AP-V4; Tue, 19 May 2026 09:54:50 +0000
Received: by outflank-mailman (input) for mailman id 1312703;
 Tue, 19 May 2026 09:54:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPHA1-0002AJ-C0
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 09:54:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPHA0-00BQ55-NR
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:54:48 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c335b-5cb7-0a2a0a5109dd-0a2a4507cffc-32
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:54:48 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c3368-229c-0a2a45070019-d155802fb84a-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:54:48 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-488a88aeec9so39577045e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 02:54:48 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48feb00bbe4sm103156265e9.12.2026.05.19.02.54.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 02:54:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779184488; x=1779789288; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mif5GzhT3SRTz4VX/5pttmO9kHwwZIDrTn2yshbDP/E=;
        b=bSmoFYFxuXxfVwSvkSq6TaRat1rt1DZIPnDl9oPE4az0rKngqjArjQlMbngzTdJNBa
         ANZxtwhwN0TAdAJCIo/aDpMx09yP0nGVmLTAb6f7yBMO1VKvOnxaMmzSq+/DPM1s5Ldq
         GmekUIOUtvTWSLZKhfGlwH7bAlM/eFn0tuCQZXb6h19CApaAzV6wQ35easVi5NXylsI5
         MF26qgt/IN1KRgpEBADJjz8QyLEO7CQbGIA+lubwsXqAZIs3E1VL8Y+oOKYtGj7qC5XT
         r8wLTiT9Uw3o5GBl9g+f1IEEHuWWC9lJ21ALE1ozxyQ/pb4I/2VN67ljnHD6EZpkN22m
         Hnhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779184488; x=1779789288;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mif5GzhT3SRTz4VX/5pttmO9kHwwZIDrTn2yshbDP/E=;
        b=UfEY6VDIA5wnM92m27RpxBrbvo4A7uO8/6X1MIfv31QhKqy172qk4egYGkHK9uutaI
         Y/HQcOhtrcABK5MHKXbyYInU3c3sDOjre7g2bvkmCyIviJcehWD+8Jc3ctmHDmRDdNcS
         7NnpE/I16eOHkDC+MqyaCl+IUebWiki3GS1ssak0v5qvYzb9ZxXmRcHKM1kltLvd8rSx
         6Po+kUrqyhGHTabPSHY96qmOc81YNDTzX0D+v7hgEcOg5bNWS2iG5HVRUdwm03wsywLm
         pE2xXqJOwXuosxhMI4dHaDXgzZpsoO6f899JKNjr8A1sB6ZlJMxRwtFAyqm3R06nkE2I
         hYIw==
X-Forwarded-Encrypted: i=1; AFNElJ/4MRd4D4OEbD5zc24moBh89oXpziX1MuRijzQtE/1yy2GELyfn+W8Q2HaXkID+K8kbvW0dCYxr5Zo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzziC9FPr4lUxiHtyf7+vLuzDH0NwBWOj/k1LQ4BQuwXO/m5qMV
	D/FnCZiLvvPbh8LxdCI5OmaW82LmDgNsWBwCRewaplAFtnP8FVrNfYCmgGbu6LgKpg==
X-Gm-Gg: Acq92OEWK79+7BMaUCYfSoyCFtvEJmHFs/6Pcvkzy4hk2tH0YtkJ68LmYFE2LHiQThh
	5xO4el832HO0bcqcwe0vOv2oluGMh9NwbpQHiB5Mh3vPwDN3aPsPFvgY4YRaU5DkSpY8PEETRsT
	qmJgvA7gIyaYU25xYJfo3ZxOlgYKr1YwDbo/SNVn9JogS/CgM/V1ELqMx801zqRTmkVbaFhKN6k
	6B8mSqkjJkpn6HaA0hZgk5shMsyECKMw1DMoFUxxXifDh9Nlb4QPX6K+L015mQBQ9D9xrrTA7Xh
	U/6pmSfH+tV/lI9QqibTZaRRz1Hj6u4553hcY8swM5ONirCtpDBbjkN8a4qWwMu9cBdGucZ44TO
	H8dJh2gyGpbVccGWQflLRrFxTVzXeVz+1aHQJj/pOM5BMuFJHHUtfzWo3DnNk8Uct1AI1ha35CT
	DAiPss2JumR5QdntGRTywdKOO78MHbXs32nPjeGJcLG6ElWajou6B9LJg8GTWkSHhUECyt/JWzN
	9xmlSr/PW2+qB4=
X-Received: by 2002:a05:600c:8b47:b0:48f:dfe3:dae3 with SMTP id 5b1f17b1804b1-48fe63223edmr319417225e9.17.1779184488113;
        Tue, 19 May 2026 02:54:48 -0700 (PDT)
Message-ID: <2005e70d-06c1-4a9c-a532-7f1a65761fd8@suse.com>
Date: Tue, 19 May 2026 11:54:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC v1 2/7] x86/hvm: Introduce hvm_emulate_one_ctxt
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
 <20260518131404.3716969-3-ross.lagerwall@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260518131404.3716969-3-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1779184488-21364C48-AD335BCA/0/0
X-purgate-type: clean
X-purgate-size: 1797

On 18.05.2026 15:13, Ross Lagerwall wrote:
> This is like hvm_emulate_one_insn() but takes an existing
> hvm_emulate_ctxt as a parameter. This will be needed to merge the
> instruction emulator and VMEXIT fast paths.

I'm yet to understand why this is necessary, but I'm afraid I don't consider
the name very descriptive. Even hvm_emulate_one_insn2() or
hvm_emulate_one_insn_ex() would come closer: You don't "emulate a context".

> --- a/xen/arch/x86/hvm/io.c
> +++ b/xen/arch/x86/hvm/io.c
> @@ -53,27 +53,32 @@ void send_timeoffset_req(unsigned long timeoff)
>  bool hvm_emulate_one_insn(hvm_emulate_validate_t *validate, const char *descr)
>  {
>      struct hvm_emulate_ctxt ctxt;
> -    int rc;
>  
>      hvm_emulate_init_once(&ctxt, validate, descr, guest_cpu_user_regs());
> +    return hvm_emulate_one_ctxt(&ctxt);
> +}
>  
> -    switch ( rc = hvm_emulate_one(&ctxt, VIO_no_completion) )
> +bool hvm_emulate_one_ctxt(struct hvm_emulate_ctxt *ctxt)
> +{
> +    int rc = hvm_emulate_one(ctxt, VIO_no_completion);
> +
> +    switch ( rc )
>      {
>      case X86EMUL_UNHANDLEABLE:
> -        hvm_dump_emulation_state(XENLOG_G_WARNING, ctxt.descr, &ctxt, rc);
> +        hvm_dump_emulation_state(XENLOG_G_WARNING, ctxt->descr, ctxt, rc);
>          return false;
>  
>      case X86EMUL_UNRECOGNIZED:
> -        hvm_dump_emulation_state(XENLOG_G_WARNING, ctxt.descr, &ctxt, rc);
> +        hvm_dump_emulation_state(XENLOG_G_WARNING, ctxt->descr, ctxt, rc);
>          hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
>          break;

These two lines were already touched by patch 1. Afaict leaving the change out
there will be fine, and hence will be overall less churn (plus following the
lines' histories will be one step shorter).

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 10:08:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 10:08:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312711.1582776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPHN6-0004SY-3p; Tue, 19 May 2026 10:08:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312711.1582776; Tue, 19 May 2026 10:08:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPHN6-0004SR-19; Tue, 19 May 2026 10:08:20 +0000
Received: by outflank-mailman (input) for mailman id 1312711;
 Tue, 19 May 2026 10:08:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPHN4-0004SL-8J
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 10:08:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPHN3-006HbB-GZ
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 12:08:17 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c367a-2eae-0a2a0a5409dd-0a2a4509913e-40
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 12:08:17 +0200
Received: from [209.85.221.46] (helo=mail-wr1-f46.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c3691-2497-0a2a45090019-d155dd2ebc18-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 12:08:17 +0200
Received: by mail-wr1-f46.google.com with SMTP id
 ffacd0b85a97d-43d7e23defbso1869651f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 03:08:17 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9e768c4fsm44830360f8f.8.2026.05.19.03.08.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 03:08:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779185297; x=1779790097; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3I66sgPFUWgB/mtoEHwoGGGGjhZKOoP1e5qfUtkd074=;
        b=fl/2LlxV0CBgrI6SfCZ0VvclbV2ui1R3F0gSIIFN0R2ePQzeObFyN9ncbpXl7q1zZC
         B+7gsXs3QM4Gw1pEKRZ3cqr3ZuKsAondFUkAewPlzuGFl9cEZNmqyWABtTk2gw5mxOXr
         Z8S97jydRlPt6liGl5SGNPTRqrqrgdLJ/dBW5ygbb5iNKz5KT/gIR7Fhf4x3tbvfo8zO
         6wbYCfRTBiUOcHkuJXKjnvQKkDYevQxv/pztQGPuuT7mlAagBJLft4VhO7LGdwlUhI9W
         ycM7cw6ff/Af6mKNxig2HiiCB8KO4Oh1AcnNrezHhbkUXUiQSL+Q+/YHbam/I9aI20/7
         xprw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779185297; x=1779790097;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3I66sgPFUWgB/mtoEHwoGGGGjhZKOoP1e5qfUtkd074=;
        b=EuBzuF+g8nsSp8tfh+971Cd8h+t4nM6F5PsDeUqThg+DaLHGgK6ihOmbDZKRULm98r
         6B7YPls7TVrja9Gpjvp7DRH0DcaAcuhepjykG4bKRFkTKDdcbYYINNL+2RpusPW0Egh2
         Yfi2k7QmJBexNnQ39nU1gZ6ke0+40DAHVlStR8iqtqp7D+jf+T7XG12TKi+YiuvDbk7c
         T0T+i8x9k3GJJZjOJKKOGi/2nNiHfskhVuYdCHHxYoAdRu6IVENFLaRpvYbjU0LWTW0Q
         kH/57ZHsXlaWmFJqYn/f8vaMP5+WSboZReUj6JpVcL+cF7xgl+T6aL1QVLbbT7ehQv10
         HjPA==
X-Forwarded-Encrypted: i=1; AFNElJ+mo2u3sXbe2HAs4Pl0VNCVu6z4wHwy6xLUQ2zfAnm+Hf4n+ayl0OuVbYeod5wtLuIMCDD12Ml/yDA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQYmPtuG5EUxfHp6j4NbBDjqGCDVcCZ9iKch/RiMhIssO6i4f/
	P9+DJDEOTaRVwV/hpR36LezzRvzHa4rCd8yUc+dlaDUTSBqkDMQaZvOtDaVBAzMyPw==
X-Gm-Gg: Acq92OF6XUGljESoir9Q1i3NUAc6UP/0q6vZTLHdz/l70KfH9YoPqaS20dPJnTDNkDo
	BLzMznGOCzJhTcjMcjexlkm5MI7c6ifk0rAldZJPfJrQ9tGt7PsdvM4MjKORQcNemWDtp0XC9VY
	/wwyspg1NkGuNdxwfTVpNvj5LYOWonPN9KQt/85Dz+ZB4UhRaJZNmiXj+hJXFT+gRMR0jtudTgX
	YGfm2oP161TSOeKXOS3Mghl8J68PIwn3ymMFFRu+WzMR1W/9lGqG5EeEC79pXHbe7jMCOYipnnz
	mgqoKvRpiLndNrtkvhfJqxcarDNbdmryYoBN6EDKsMeF0uyelYJawYAiLWhnbWYXRybMLhXMaB/
	T9qiRdDznu7+vx+jw1asp6gJhkwJUIz8s92TcUOGuCP2jI7a1wJia6RrECkq7YkOxOoubmZLcvl
	C4Sx+arNYVYyaTP8siuc9jYL/xmAGWcX/zqJp++4AjHRrssgTRRMrvcBsNxVZTJaJHNsmsk8u/2
	LoFuvlyV2ru40pbyf1wUVam7Q==
X-Received: by 2002:a05:6000:22c5:b0:43d:6f0f:32fe with SMTP id ffacd0b85a97d-45e5c6049acmr29354250f8f.31.1779185296479;
        Tue, 19 May 2026 03:08:16 -0700 (PDT)
Message-ID: <882ff7e2-077a-4af1-8e0c-4a0e83d8c2b8@suse.com>
Date: Tue, 19 May 2026 12:08:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC v1 3/7] x86/emul: Separate out instruction completion
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
 <20260518131404.3716969-4-ross.lagerwall@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260518131404.3716969-4-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1779185297-8AB8EA53-BDC9F6AE/0/0
X-purgate-type: clean
X-purgate-size: 1741

On 18.05.2026 15:14, Ross Lagerwall wrote:
> To support merging the emulated instruction and VMEXIT paths, split out
> instruction completion from the core x86 emulation so it can be called
> separately.

You don't mean to use a full-fledged struct x86_emulate_ctxt on the VMEXIT
paths, do you?

> @@ -1265,8 +1281,6 @@ x86_emulate(
>      uint8_t b, d, *opc = NULL;
>      unsigned int first_byte = 0, elem_bytes, insn_bytes = 0;
>      uint64_t op_mask = ~0ULL;
> -    bool singlestep = (_regs.eflags & X86_EFLAGS_TF) &&
> -	    !is_branch_step(ctxt, ops);

Nit: Yes, indentation was screwed here. Please ...

> @@ -1280,6 +1294,9 @@ x86_emulate(
>  
>      init_context(ctxt);
>  
> +    ctxt->singlestep = (_regs.eflags & X86_EFLAGS_TF) &&
> +	    !is_branch_step(ctxt, ops);

... correct such when moving code around.

> @@ -8347,17 +8364,6 @@ x86_emulate(
>      put_fpu(fpu_type, false, state, ctxt, ops);
>      fpu_type = X86EMUL_FPU_none;
>  
> -    /* Zero the upper 32 bits of %rip if not in 64-bit mode. */
> -    if ( !mode_64bit() )
> -        _regs.r(ip) = (uint32_t)_regs.r(ip);

While, because you have the new helper update ctxt->regs, the removal of
this update of _regs looks technically okay, ...

> -    /* Should a singlestep #DB be raised? */
> -    if ( rc == X86EMUL_OKAY && singlestep && !ctxt->retire.mov_ss )
> -    {
> -        ctxt->retire.singlestep = true;
> -        ctxt->retire.sti = false;
> -    }
> -
>      if ( rc != X86EMUL_DONE )
>          *ctxt->regs = _regs;

... further uses of _regs here (not this one, but in general) would be at
risk of no longer working as expected (yet only in a corner case, so
possibly not covered by testing).

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 10:27:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 10:27:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312729.1582817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPHfd-0007nk-Ty; Tue, 19 May 2026 10:27:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312729.1582817; Tue, 19 May 2026 10:27:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPHfd-0007nd-RK; Tue, 19 May 2026 10:27:29 +0000
Received: by outflank-mailman (input) for mailman id 1312729;
 Tue, 19 May 2026 10:27:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wPHfd-0007lX-8l
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 10:27:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPHfc-00D3IQ-JI
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 12:27:28 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a0c3afd-bab6-0a2a0a5309dd-0a2a450cafcc-12
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 12:27:28 +0200
Received: from [52.101.83.89]
 (helo=GVXPR05CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a0c3b0f-62f1-0a2a450c0019-346553593b60-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 12:27:28 +0200
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by DU4PR03MB11485.eurprd03.prod.outlook.com (2603:10a6:10:632::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Tue, 19 May
 2026 10:27:24 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.21.0025.023; Tue, 19 May 2026
 10:27:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JwW+deMeM+9NBofKpMAJTOpbMj2e5m0UjsWghMRCRWAN4PJoUVod+UxaouHQeLKjqRmjbPBcyTeJk7AeYon5ECzuyKjCceb9iwFd4Dvdlj1Yp8F6XjHIlRyT7t4pXzs370GmbuKBTYG2oDOmePPGca1DJDn8tKqGkIEo5hnZvGt1X1GfqoO9xB08+sbBYqbOrBqWh1CxHMurzzH7ELWfyn0KP1T1OuXymHisMLlSXBtDdrKOronXZVYvkupJ6zvnBHAwx7P8UoqbHPk0uZhFcGJcGrJhlLqY2ntVxUOCYFzoDZdG5c+1EhHnNEwC2zUpshvnLGQnUAeyFQDpznwhxg==
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=BtDfUFpAGFgBbe1z93oEWSJIKnJn9c0VkRHrAxZiFfY=;
 b=o/fWQQdmrDRk3JtXPMmNw6ZmpNjXof1k5/viyqIXyTxcF2tS4Ae0Wt4SaPlvYJSCRRogz3OQX7CS4TALn8WuDM6uTw9aDCRwrpB+MrJrD4pI6gLD8zU/mK0T8rGebNDTzSyOfgL9/9yQXhRPTxkPMZ9eZugJa0++7iRg6zESxe3bBxrsNHziI3oF2jUlp0WHp9peBZwEPJWB0aDvsW3Cv4qZC+LwRk/o1cUtD/qBFzeHCs2j+A/ub8Bj3Ck7OzLsdDamfFLO0+NRZeEYednREtisyuIEVS1zQhrlDyiqQSLxnrZiQda3hF0WIPOOyYshFSzHl/goOegBLY36+xz3TA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BtDfUFpAGFgBbe1z93oEWSJIKnJn9c0VkRHrAxZiFfY=;
 b=GCwXvntVCo1IkbArl4mZTwW4KLkPq6aLAAsnI7MWE9NLShfm/0W3QRt8N3cgOKpPpBKE3O3JQFsNyzAIFB4GqF6jHrzxfhQv8f6RFY1umm8+8AaJVNSdAIX8gs76wVL+anri2AUsCzrIkWQxGeyxg4xRxZhDNMfAk3wqRKSEKORAsAXrFJbuXt7RI+/vx6sLyVQ9q40qakfuyyLnZI6q8o/3CyX5iERVmI3G8Z4rrVePgkROxHIzsSOb5PquMl1sqCyNDGcvizlepkJiUQHD/ZJxB+YarzMODztu7oOjfRpq/7EurPhgFat0zELEAw9vPSBx9QwvrXLXlSFtK1O8ZA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>
Subject: [PATCH] automation/eclair: export XEN_TARGET_ARCH during assignment
Thread-Topic: [PATCH] automation/eclair: export XEN_TARGET_ARCH during
 assignment
Thread-Index: AQHc53oVx3/uBPUL1EWf6nb6ZvtStA==
Date: Tue, 19 May 2026 10:27:24 +0000
Message-ID:
 <8b3120f7302e591b2828cb77c5f903c84149d498.1779186401.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|DU4PR03MB11485:EE_
x-ms-office365-filtering-correlation-id: 9bdf3dec-df40-4831-f1d4-08deb59137f2
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|42112799006|376014|11063799006|18002099003|56012099003|38070700021;
x-microsoft-antispam-message-info:
 2dYy9Xmo9B58lDIwXhtfG7RRHUKZqid2rIrwhaUt7IYj2CVCOMhsXkgYT3IfKabKI9m68LasKMHC5xZMrgs9OlQlLnTQztvwlCqsHgt9sAOxiNTWmQ2midSOKzHRXsnlF8soZmqZ96PzJY7R30FEQWvZaB7fP35D7DaShpN+O74P2Kmo2IxpXJP0bgAxBZCtCl2zjUyrT1vffzaawcOP85YdMnjcBmnhVB4tx2+SNHjfhICKM2Fbpi3aJJ1dwur7UjOzCP4d8BGNtaPqiwEeXfWQ4jykAGxfIZQj41ahV81uhxQtu0sUtygneSphxNlTCkLxNbFSlkUtj2WN+Nu+qz2cVLITOE7eQufZ/7sQJLAogFgifxTeybCUN722LFZfNjvNROingpvS1DJ9b7nWDfq49qleGZu6VTGO00fMjo8nm2N6U3KKGmK8NCW62AiiC/p8FiNYjT6bGmzrB4d5k37p7V9Fj5m1xQvkGwfaKEk0kc0CQ/XSuviV8hmKI3unKs7vvuyzNiaNNEvs7JHMD6WFmen8JbS3EMqxxB4SKlcSnBMHTbyAIo4jNLA1pyIc3JjVEx0UToLk5y5daOGh8U0D/tY1qoPnUk1xnv1uWS7vWOF+X0FgMiSGPHcEW3h+OGIUQvAcy6RdmtUjm4WlXxxfwEZitZjRJiKXkvgvsXiqF/tvcvlexNFeV9H3J0j52fMvbeQ1dzvFpKwk78CTsUJ2amao3Y8oqmmSj8ziPf0+e/NV04mMmBWU1SYF7oY5
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(42112799006)(376014)(11063799006)(18002099003)(56012099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?+MxB2WgXptJG8uhhxKAURgsRRLQQFdkrTCfbh9VHOkvWAyjGNMWbUvP5cR?=
 =?iso-8859-1?Q?yt2yZQhstAvhaqAsp2dsBR1JMFzpfpaPvnqj8gXiLT1vTEOoFL+y1yAf9a?=
 =?iso-8859-1?Q?0nZROg82+EpigGqJX+AuoNDtpmHzA7EtMp98QPs+1Ls3MXjWQ2dvTrNUhb?=
 =?iso-8859-1?Q?Q6HiuHpyVOH2pAvdmg80mHhyxs7cGzaNwQpZLo/NaHCD9QjSER6NDYFhKv?=
 =?iso-8859-1?Q?3vJYrMpqH4P2O6peBoRUWRRiDn8I8cTWfB4JDMNyyq2nA6ZEOwykiaMTw8?=
 =?iso-8859-1?Q?q0U2RukAwKSAqWPFDNdYCpNY4VL0IpKlkiDgzcHkCr8KLWm3tsMJJ2048S?=
 =?iso-8859-1?Q?+lP3yLKHpAjv/Se8Bi9lDgg6ceQHAkYJTCid3QlyaRoXBhebrRWIC4WWzB?=
 =?iso-8859-1?Q?S8fdVpymYSYWoo8qEw8+mxRPrwlJZTMTYgyBPxrjC9MvRuYDLONnnVb4p5?=
 =?iso-8859-1?Q?/0EJN+by6PgdUSIfecLuMlKx9t7RzTtmaU7gSupGjQi6GcKnun9t8APucg?=
 =?iso-8859-1?Q?u45ncqFSlrMcaWjx+0Dy6hqsKefduBdKlL+SRb/4+krO2jkVWbDS+eAT80?=
 =?iso-8859-1?Q?DlzXL7peo+gG3PMM04NS0qYFC4UAeTu/K34EYj5/0OciJ2EJIram7/izcT?=
 =?iso-8859-1?Q?/PM8JROfPEtigeuf6jm2jm+1U2Q55Fwl18cd/tilwZhYAv1q+UyZT6BQjt?=
 =?iso-8859-1?Q?tQs9PT0cvFlIdWHmgk3T26XnlY+mgzz36OjlBF6n9KsI27xH78rESwPGNF?=
 =?iso-8859-1?Q?5Tg9YF1kSzkDWqeHv4+Htriq3Wa876RvnVBIgkgBmJDZtMq9cE7WHsms57?=
 =?iso-8859-1?Q?brUKsC7nqkwdIkkBXEupph9ub1w3h3/BKtbasGWLeIBWLGhbexRBURArXS?=
 =?iso-8859-1?Q?a0pQsfBfU/lenFT5eHDWnQjYpggRg+fVHckNeJ1pHwigP8MNAOocPFOVAy?=
 =?iso-8859-1?Q?ct6YWYK8m+yP9H8vfBiHvEKo53fufgwU4andNAe+OSq2Hhc0r6npVQDK+a?=
 =?iso-8859-1?Q?0+7eSl80z008Tnr2DIxCX1Vk7wdp5Qib2mq84Xwa0F1skrGaTAmozHvplq?=
 =?iso-8859-1?Q?ObUuv5Iia2Xk8NOlzUeZCwbOw5qYw8qKG0j4btjEOnYvtSeqCuA5KcQvru?=
 =?iso-8859-1?Q?kB2H/Yng7lGhzKeEtaOnfTsDtu2pXexGYLgcqDunJfqUfadnyaxAF62mKt?=
 =?iso-8859-1?Q?1mOB/v7YjmPvJtTYAaAlw9JMOIrhg1wUDIezcdN/3qrV+Xmu9MQvYURIgt?=
 =?iso-8859-1?Q?H8F6fOoaYkAVSN1fgdDgiv76Bmj0sdSYz8cbrVukmEcS47b8KN0CoTNMNx?=
 =?iso-8859-1?Q?zAmAKUv5TblgKhTYrmBnsb44Dyt6aIf58Klx5uT3DAJi0Bv4+npYARafFI?=
 =?iso-8859-1?Q?wEw3vkhu+mUrSjFQ78eSJmbvzDuBQa288oPhHXaH6YjoLKwEBOvEJlQcW1?=
 =?iso-8859-1?Q?Q0JejMReBHZGjyvDu0TqqVrUTmUjho6UNf0e+lZlt0VX6elprw9dRGUZ0Q?=
 =?iso-8859-1?Q?nvlWK+EWNEhy8kq/Q4ghxAe407lIW6ZH7Plt6RaHiJgNfTgLOrK+gJsj8d?=
 =?iso-8859-1?Q?7WOhluY+RB+LnctnYcQcfyjpAE7HXNhVdd2fK4jZ64ExHHdZLoxc1mFJJ7?=
 =?iso-8859-1?Q?3YeRhh1x9IAT8XAOkOVy4hKmZZc1c//ySa1phXq8ZZsdLoWdgyS7bQw/AJ?=
 =?iso-8859-1?Q?dtXVKTH5iP0itXYEpa8O7eUPYSQ9BlYLBQxBuirkdiDrypufkUfqjHIp+V?=
 =?iso-8859-1?Q?mzypOFBH45OqKjP8W5fV9ZtUZ6/npcI68LLIe8Nhh5xBNJ9kX/CSLqtAjf?=
 =?iso-8859-1?Q?D1liWC07SyYlG/U6EML1MSTTBuYxYt8=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9bdf3dec-df40-4831-f1d4-08deb59137f2
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 May 2026 10:27:24.6165
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pr2gGYoKdI36LkQgthK373rtCRKHt8bIP7FfZbX3Sjl2AyGQXOpUrT8ptuFjva22/FNz5zV0f2Ka+Ig4bfb+ObBXvLaBd2qBurvDUnJtOyo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB11485
X-purgate-ID: tlsNG-d25034/1779186448-E1360CF5-09C8955E/0/0
X-purgate-type: clean
X-purgate-size: 970

Move XEN_TARGET_ARCH export into the architecture selection
branches instead of exporting the variable before assignment.
This ensures the selected architecture value is correctly
propagated.

No functional changes.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 automation/eclair_analysis/prepare.sh | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/automation/eclair_analysis/prepare.sh b/automation/eclair_anal=
ysis/prepare.sh
index e941e6edc4..fde83c2d2d 100755
--- a/automation/eclair_analysis/prepare.sh
+++ b/automation/eclair_analysis/prepare.sh
@@ -22,12 +22,10 @@ if [ $# -ne 1 ]; then
   exit 1
 fi
=20
-export XEN_TARGET_ARCH
-
 if [ "$1" =3D "X86_64" ]; then
-  XEN_TARGET_ARCH=3Dx86_64
+  export XEN_TARGET_ARCH=3Dx86_64
 elif [ "$1" =3D "ARM64" ]; then
-  XEN_TARGET_ARCH=3Darm64
+  export XEN_TARGET_ARCH=3Darm64
 else
   fatal "Unknown configuration: $1"
 fi
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue May 19 10:32:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 10:32:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312736.1582826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPHkZ-00013q-IB; Tue, 19 May 2026 10:32:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312736.1582826; Tue, 19 May 2026 10:32:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPHkZ-00013j-FG; Tue, 19 May 2026 10:32:35 +0000
Received: by outflank-mailman (input) for mailman id 1312736;
 Tue, 19 May 2026 10:32:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPHkY-00013X-GV
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 10:32:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPHkX-001efs-Or
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 12:32:33 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c3c3b-5cb7-0a2a0a5109dd-0a2a45049a84-42
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 12:32:33 +0200
Received: from [209.85.221.47] (helo=mail-wr1-f47.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c3c41-1dec-0a2a45040019-d155dd2feccd-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 12:32:33 +0200
Received: by mail-wr1-f47.google.com with SMTP id
 ffacd0b85a97d-44a14580111so2484419f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 03:32:33 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9e767d0bsm42787312f8f.3.2026.05.19.03.32.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 03:32:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779186753; x=1779791553; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Bh8m19d56sPfpyOc/hIoN39qYR/TSzKl2UDhOkuehPo=;
        b=YP2M+aZoW3aRpuXFGPBcP4EBdQUwvUU1rFEPT/ZGBA/2g1MQbV7F42xP4ONhBus0AX
         fnQwiPEx9UQLc/I13UTC5mj+FWouEMrDdLDhEJ0UEflKVRo6YY3F06dRAB96wj6oTY8H
         RLEnwh0yR394+bKZylJ8b3SB7urefapBHRxNiph4Q7oYoxQQCe2yOxSCsJKy51EFfAj8
         FQg7zYRZcaxMh3iIMH7rNkvncxKWY9bQegKrfcf49aCE8drTjF9k2xYGRNLxMzXZW8Iq
         VCJw6exXnJVcFQuUjWyYX5HmISHykts7NbKoTxUtw2WqW/XFu2UcAVlqFPwGc2FoDpy/
         uDKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779186753; x=1779791553;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bh8m19d56sPfpyOc/hIoN39qYR/TSzKl2UDhOkuehPo=;
        b=aF8ZMstOFjjSuwMo8q2nzkOHF8lIS02oBDfbGHfMiOKBLRIoRIzyp4fYUNZRE1ty63
         DdqlXY+Rw/KwVnRGX5GY7j8xif46mLZgHAHal+jAUnupxghKOfpBtXqHN3kd9074sbnB
         Xste1irhkSWG+gr843w/Q/+aLhYJxsnk31OAXziWFggYTyi0hPwIXsMlPwHvMnO3FN8L
         et1TSqWD26ke/cZl2DL93/p31O+I5Jk802bMaHRM7C5Um6mqAkaw5tnYocUjvpyhjsI3
         6SFDVaPEqv+xZ0TvhoJHXrtRIgsLqiVZb5EwehuWEg5PYB5XVqNlZ62cWe2iCNPOVmOb
         NgPA==
X-Forwarded-Encrypted: i=1; AFNElJ/PFHceC1art+ZSg5BECoqL1cePzp5AVe3VCXxBjUyFafOGzyG+JpJ8JhXpcq4fAPReEU93wSSJZcU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/X969Gg6RaxCnALEmve4c6BoP7gCeit/emGdPApjBv0tcd1ra
	2s0zGc5TIo9vR/XT+9rrKnD2DC786EhGZ9ZjiiQOkpL0/ebEy7CwbpE0ov59hA1SPA==
X-Gm-Gg: Acq92OGX88txYFTGy7qv6i6qvqF6o1wSL4aUSVkF+qxyz79a0BHsV3T+MyvKJ0QaNMh
	R7iDoNL7Bn5jeDe3Zoy4jMM9VZOttlyrhOHmjx0857acr4OMNz25L5GB9m9EabD4ZaZSKg3h7O/
	5tvSSm3O9fNFHSSsgoG+tL9T4N8sPWiF0MyOQaZM6V70EQNleC4l8gz5Dev8RMVBQjfuGA8J6aF
	E8EMn5YLmZDVXmA7w0EyFCQa91VsJNCPyU4u2SGbC4XJOA5ZpDP2ZjWIoD/IbZp/MCioP3U87qo
	WDbQEeXI7/4ewEfw0xcWyvdx9TUYAqgoWsJy9OOgdKqoFoaWJubycB1dfwHgfbuFhzjBeRZKHWb
	rVT8h6sei3f5XYo1ef4OnadQV3+6aKs+XKRGgvau/KHqIvcx06zI/7cezGBXQLCtK1pymw/OmQy
	qqipOeVxbiXpgGqTQHMyZgsPwMqOPeleeD02MaKXB8awSl39wvkmH1qb88rmB32JE5MIP+Eo1fb
	+Hu726aM4CHeYwJJWpD1CzRUQ==
X-Received: by 2002:a5d:64e9:0:b0:439:b8b2:fad0 with SMTP id ffacd0b85a97d-45e5c5bc7f0mr30923556f8f.5.1779186753047;
        Tue, 19 May 2026 03:32:33 -0700 (PDT)
Message-ID: <6a000480-60ec-4ceb-955b-83a0fdc129cd@suse.com>
Date: Tue, 19 May 2026 12:32:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] automation/eclair: export XEN_TARGET_ARCH during
 assignment
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <8b3120f7302e591b2828cb77c5f903c84149d498.1779186401.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8b3120f7302e591b2828cb77c5f903c84149d498.1779186401.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1779186753-491763FF-4167DEF8/0/0
X-purgate-type: clean
X-purgate-size: 985

On 19.05.2026 12:27, Dmytro Prokopchuk1 wrote:
> Move XEN_TARGET_ARCH export into the architecture selection
> branches instead of exporting the variable before assignment.
> This ensures the selected architecture value is correctly
> propagated.

This reads as if something is being corrected, while ...

> No functional changes.

... this says the opposite. Is the whole purpose ...

> --- a/automation/eclair_analysis/prepare.sh
> +++ b/automation/eclair_analysis/prepare.sh
> @@ -22,12 +22,10 @@ if [ $# -ne 1 ]; then
>    exit 1
>  fi
>  
> -export XEN_TARGET_ARCH
> -
>  if [ "$1" = "X86_64" ]; then
> -  XEN_TARGET_ARCH=x86_64
> +  export XEN_TARGET_ARCH=x86_64
>  elif [ "$1" = "ARM64" ]; then
> -  XEN_TARGET_ARCH=arm64
> +  export XEN_TARGET_ARCH=arm64
>  else
>    fatal "Unknown configuration: $1"
>  fi

... the reduction in line count then (at the expense of some redundancy,
which would increase when further arches get put here)?

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 10:45:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 10:45:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312745.1582836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPHws-00032S-Pt; Tue, 19 May 2026 10:45:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312745.1582836; Tue, 19 May 2026 10:45:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPHws-00032L-Mz; Tue, 19 May 2026 10:45:18 +0000
Received: by outflank-mailman (input) for mailman id 1312745;
 Tue, 19 May 2026 10:45:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wPHwr-00032F-0e
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 10:45:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPHwo-00Bb98-1k
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 12:45:14 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0c3f33-2eae-0a2a0a5409dd-0a2a45038bda-26
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 12:45:13 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0c3f39-672d-0a2a45030019-a237832f88aa-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 12:45:13 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 7B6764EE3CE1;
 Tue, 19 May 2026 12:45:13 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1779187513;
	b=oYPeEcgGPUgB0qDvE2MeLkxbCXzkg1BwjUB3D0E6At9TNqJt8hPnMqVbpgWsNXhyIM8u
	 rIKP03XE6xV+o+QtOYV/l4aA5Ju+euW//KL61gzQAJpflWejGN363kR4zdTxpRGk06R03
	 t55sz1VG1wq9hXzUKPwaKoxJPg3aeOesaUJMtNO1NMTeMIY+pCjDaSCMZomgBDHwXiS29
	 NK6Zx470cgUUDNskBjBjogHeEdV34Q8vZGwi6SPXNSZVvlhGUlGCo4wGOfl6kileq4hXi
	 9xcCpOz3rSco9Uma6bG9CqtxTYG+Wvtt0CrtnZYi3tbExsBGBxxoQYfn93Pl8v/HUkmbd
	 l0gydEqOMYJGYEGM6ULjJIH9Xe4dTM0fka6+WxSKgjfbZhZOLSYtSydYr1RKFqIM0xVVA
	 NSsts9XM9kH8xLb/uwb6QrzfJ48IFs+aofXWegp8hy1E9lcT0JgTMHJ/PLGUyZxi+lpKt
	 WQYgU6Iu26fRX87KFCeOD5KDRCukwoWZyNj9ab7uDMGiipfylXafzR64oKPIME4SeJdEo
	 yo7FVZii5w4cHXkTvGN2oIBe+7qp/0grmH8Sny/x5TvWVrBS6pCH7/7hMuo+8ftcbipuz
	 Gm7ZgrqRHd18DDrv587saNCimczJqz2SSsfLR8nuSA9XhEAGeL3Be1il+XNJNZ0=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1779187513;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=l+pWLWhZltNhxfkU1Tbvx1ofcBWtjiktpSBSBMEySK4=;
	b=5tm1fckGJ377BtVajf74/ShqvWHVRI6lMFjWVS+JLTRAqdoiGUoLanQSWOfS0jio/1rz
	 1q2Iq3algm6F7fvuH1Fj5Domna5sEfnk6nlAvofLCulnq+Cr4RvxWiW462ysIzcfywVva
	 6MzkOLT5VpH1tg7RH5ZisoBFucwQfCA76cbrxLyLmJ5RmCvffQjFYTmPhA+9yR39I/SzT
	 ggmHAMCr7g6BU+0Y/SdvxEZicG1c0UJ0ZWE1nCPKYSMlXYlTTcarhN1gQPqDiFJypjYrO
	 DsfieXLBGa3K3wX97tVRb+PAOfH2/aruTleU0TvvS1bmYZlQ3lQkRwFYp9eAqsruGUD7k
	 VjJV7uiMWCw4Rujf/N2eTg7v7k0pwjKrkT8eb5lyv9Nkbgh3dckiqJp6utURtTIV3I+1q
	 eUq9c3VpbvJRZdwZgMAG2RezC4d2BdpaFxG8DaD12a2fud/6DzW56TgnH52Q4kdEX9f53
	 0ZvJ8+KWEE2WBT2hwljnARXjfAOAm1V2e6mIXFhf5QDFQtNzeRC2oEiw3G5aZfzeVdMaB
	 LeKNYljg/bWDxJXYkF0xWajN3X+C0jFtTbhrWFCConXWvbXKsZyuszHNtatJf8RIoLLhg
	 li0ArbQtMRns8ovB+lTLmiTPOOMRRgkUlCXcOF0c9bocuii9LCRPhRDyc1B4cPM=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Tue, 19 May 2026 12:45:13 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] automation/eclair: export XEN_TARGET_ARCH during
 assignment
In-Reply-To: <8b3120f7302e591b2828cb77c5f903c84149d498.1779186401.git.dmytro_prokopchuk1@epam.com>
References: <8b3120f7302e591b2828cb77c5f903c84149d498.1779186401.git.dmytro_prokopchuk1@epam.com>
Message-ID: <0700a54389d4071c7308b8eb3a52c9ab@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1779187513-36F42938-9A059A16/0/0
X-purgate-type: clean
X-purgate-size: 1429

On 2026-05-19 12:27, Dmytro Prokopchuk1 wrote:
> Move XEN_TARGET_ARCH export into the architecture selection
> branches instead of exporting the variable before assignment.
> This ensures the selected architecture value is correctly
> propagated.
> 

Did you see a case where this is not correctly propagated? As far as I 
understand, the value of XEN_TARGET_ARCH seen by subprocesses is the 
last value set for the variable, regardless of where the export command 
is placed.

> No functional changes.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
>  automation/eclair_analysis/prepare.sh | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/automation/eclair_analysis/prepare.sh 
> b/automation/eclair_analysis/prepare.sh
> index e941e6edc4..fde83c2d2d 100755
> --- a/automation/eclair_analysis/prepare.sh
> +++ b/automation/eclair_analysis/prepare.sh
> @@ -22,12 +22,10 @@ if [ $# -ne 1 ]; then
>    exit 1
>  fi
> 
> -export XEN_TARGET_ARCH
> -
>  if [ "$1" = "X86_64" ]; then
> -  XEN_TARGET_ARCH=x86_64
> +  export XEN_TARGET_ARCH=x86_64
>  elif [ "$1" = "ARM64" ]; then
> -  XEN_TARGET_ARCH=arm64
> +  export XEN_TARGET_ARCH=arm64
>  else
>    fatal "Unknown configuration: $1"
>  fi

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Tue May 19 10:51:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 10:51:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312753.1582845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPI2Q-0004pS-Bw; Tue, 19 May 2026 10:51:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312753.1582845; Tue, 19 May 2026 10:51:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPI2Q-0004pL-8j; Tue, 19 May 2026 10:51:02 +0000
Received: by outflank-mailman (input) for mailman id 1312753;
 Tue, 19 May 2026 10:51:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPI2O-0004pF-Sx
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 10:51:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPI2O-00BcJb-92
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 12:51:00 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c4083-bab6-0a2a0a5309dd-0a2a450bbbcc-48
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 12:51:00 +0200
Received: from [209.85.218.45] (helo=mail-ej1-f45.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c4092-212f-0a2a450b0019-d155da2dec59-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 12:50:58 +0200
Received: by mail-ej1-f45.google.com with SMTP id
 a640c23a62f3a-bd22b2abaa4so603913766b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 03:50:58 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4eaef0asm689042466b.57.2026.05.19.03.50.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 03:50:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779187858; x=1779792658; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=357u5AtE+LISrInibwhnX3322hlpE0n0mX1oKA00rAg=;
        b=qRCmboFetcqMIpTCkJ0GDUkVA5z/dasC0KVFiid5JKWQVCHHKGCDFz1jdYWCP3algp
         cRC9Oqk4Eh/MU+02+sFRFSqtQCFj67axo1begLzpEZOVExzHhaprlnhwo5DudxCWoZC/
         Y5nQSbLirhkTtw7O9XxpisMEmvkKZMht3XlmBpJyRZ4ePx6xeyRATRssoNtSN7oZKpDT
         sZZCP9khQwkd9HaXbDKLoMdeQrGduJV2sxorXEtgGNFyEloEzZ2aV4R++Rn4loM+cmfo
         bUyjj/IcQaSQLLJjVlIgpKA6jkFXz6ULIPJdD76mwX8Ip2g6sP+WrnnU6Kb63nuKzUMS
         sHNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779187858; x=1779792658;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=357u5AtE+LISrInibwhnX3322hlpE0n0mX1oKA00rAg=;
        b=X+H2jzJdO7JBeHoxCGIq6aNiNY4Nyyqcs1Olqjtg8rfJ82wSOvIf1ehF1Qp2GMNRmT
         1KYyXSY/s5z7i651kBhW65Tp0+2D1RjZQHonG3fyiPLlvEYjohASTOhREAeuPQ90WoKV
         5NgABwh/tyBvup8xpssq7F21e3EVIosbkzthJQpNHpTUpI4/DqhpYrke3B+AEKDnuKti
         dtMszqwKTXIDOvloBbogC7sKon91TPVyDNZfZqp8xwGJf5UZkDhuo+z8iqwiYAbRTPNC
         C4VoQfMxkHsLVZeaOSE28TlpjamWhPLUSfPZryK8/SC5KJs9gNGErWhjHpJN6yK7Jydb
         Gilg==
X-Forwarded-Encrypted: i=1; AFNElJ9dYxKaR0dLZjjSS9HNjyAcaJY+19hTbUDQofxWDgFl4Ye8LljACHhUz4/xCnQHLa4XUe28GqfdaFg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz6WUT3wo3XkX5kjL6AdiWVtxeFuOVwYGCEq8QQNdQudAwitBeE
	XQeDAgRVZsojfRN7nscbau/fyMFbujZCqX8wquWPd0t04h76JiGCWFwR
X-Gm-Gg: Acq92OHj620a/8rk+Mq4nKym9d+esfQXbRJmdq61DLZBby8ojEPDEYtSjBDi1a1rf/b
	cKwVdBhX3zGqK+t0v1OXQJ9abbcofPE4GdJSkKpfpXig7BM6ETBODrKq9fH/cfDOQqNODIH8y1x
	L7+lqVibEb/tceiaPq4nAbcNnPBsBy2slXTLj05vp4AO7S8Sj9yQsF0eZz8eeVh/8Ag8Yi5xxjX
	vYU87pwr23LpHJ+sPfp4witBX9c+kWZA3z0GVqv8HFuiJdL2z35xIzSphaL+RIB22s1qb88aL1Z
	cTx36cCeAwVHvaq1kPbpJyKHTMBLpuXG1XXgHNV/qCxXH6Y3EwFUa1mzEuxALImJ/GZTtzicnUZ
	kmg/vLCH/e3CjwifOHzre+aOVqv5fPg6UluFpPFmqIHCRrp3pLM028PsgrfVPnIRhizH6vvqO1V
	jUdfzVEvRA0X8xHyxLKu7+a2QA7ro3PIyJ/T2b/Ntn6zjlsn5er3aI0MNSvx1ztXyB0S08OZISR
	GQ=
X-Received: by 2002:a17:907:c80e:b0:bd4:f814:dbbe with SMTP id a640c23a62f3a-bd517814c55mr1076011966b.19.1779187857278;
        Tue, 19 May 2026 03:50:57 -0700 (PDT)
Message-ID: <5c348320-099e-4511-842b-4d352d641c10@gmail.com>
Date: Tue, 19 May 2026 12:50:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] xen/riscv: fix switch_stack_and_jump()
To: Jan Beulich <jbeulich@suse.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <1ac102874c8f7190ea09787a035692b03e4b46cf.1779179301.git.oleksii.kurochko@gmail.com>
 <5f8850b7-11db-4d78-8353-6e0580bd397b@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <5f8850b7-11db-4d78-8353-6e0580bd397b@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1779187858-1B374F3B-101629EC/10/73395122804
X-purgate-type: spam
X-purgate-size: 3070



On 5/19/26 11:28 AM, Jan Beulich wrote:
> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>> The following compilation issue occurs when UBSAN related stuff is enabled:
>> prelink.o: in function `smp_processor_id':
>>    /build/xen/./arch/riscv/include/asm/current.h:46:(.init.text+0x274e2):
>>    relocation truncated to fit: R_RISCV_JAL against `init_done'
>> make[2]: *** [arch/riscv/Makefile:45: xen-syms] Error 1
> 
> There's no init_done() as of yet.

It was found based on downstream version of RISC-V port.

> 
>> The switch_stack_and_jump macro uses "j " #fn which assembles to
>> JAL x0, init_done is a RISC-V J-type instruction with only ±1MB range.
>>
>> Without UBSAN, .init.text is small enough that init_done (which lives in
>> .text, not .init.text) is within 1MB of the JAL. With UBSAN enabled, all
>> the instrumentation calls bloat .init.text well past 1MB, so init_done
>> is now >1MB away from the JAL. The linker tries to truncate the 20-bit
>> J-type offset and fails.
> 
> .init.text is well below 64k right now. Are you telling us that it grows
> by more than a factor of 16 when UBSAN is enabled? IOW while the change
> may indeed be needed, I question this explanation. .text growth may matter
> as well, and e.g. .rodata (living between both sections) might also grow.

No, it won't grow so much.

With UBSAN enabled:

$ objdump -h xen/prelink.o

xen/prelink.o:     file format elf64-little

Sections:
Idx Name          Size      VMA               LMA               File off
   0 .text         0011c79e  0000000000000000  0000000000000000  00000040
                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
   1 .init.text    000285fe  0000000000000000  0000000000000000  0011c7de
                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE

With UBSAN, .text itself is 0x11c79e ≈ 1.11 MiB — already exceeding the 
JAL range on its own. Even if .init.text directly followed .text (which 
it doesn't), a call from .init.text to a symbol near the start of .text 
would be ~1.11 MiB away. init_done likely sits somewhere specific within 
.text rather than at its very end, but add the .rodata + .data sections 
on top and the gap is comfortably past ±1 MiB.

As a result, the target symbol init_done may end up outside the range 
supported by the R_RISCV_JAL relocation, which is limited to 
approximately ±1 MiB.

Without UBSAN enabled:

xen/prelink.o:     file format elf64-little

Sections:
Idx Name          Size      VMA               LMA               File off
   0 .text         00044618  0000000000000000  0000000000000000  00000040
                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
   1 .init.text    00012c72  0000000000000000  0000000000000000  00044658
                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE

Does it make sense now? I can use the text above for commit message 
instead of what is mentioned now for more accuracy.

Would it be better to send this patch when this issue will occur in 
upstream?

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 10:55:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 10:55:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312760.1582854 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPI6S-0005Ol-Rv; Tue, 19 May 2026 10:55:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312760.1582854; Tue, 19 May 2026 10:55:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPI6S-0005Oe-P3; Tue, 19 May 2026 10:55:12 +0000
Received: by outflank-mailman (input) for mailman id 1312760;
 Tue, 19 May 2026 10:55:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPI6R-0005OY-NV
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 10:55:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPI6R-00CCcZ-3N
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 12:55:11 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c418c-5cb7-0a2a0a5109dd-0a2a4502d260-12
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 12:55:11 +0200
Received: from [209.85.208.53] (helo=mail-ed1-f53.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c418e-af86-0a2a45020019-d155d035c1c8-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 12:55:11 +0200
Received: by mail-ed1-f53.google.com with SMTP id
 4fb4d7f45d1cf-6802f9c5debso8166411a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 03:55:11 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4ded6dfsm707784266b.39.2026.05.19.03.55.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 03:55:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779188110; x=1779792910; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=jGogrGSd0RJvcukUMyuPyf1sE63H4AMkZ2I+S6HMH6A=;
        b=QgyKSYePeXJ7fOrPIp53BrQtEknDs/vfxdJZnbrW9snZPpDu+8/avsl6ttqqiexdl9
         UePsI0gZ2X1ikGJLmNkOggsaBe9/KNC8tpPYmn68BRlhgNXpWZp6AHXDMwcnPNm2553f
         fWmAGKlYq/CpRxsws/W9jQ+1W0VhvRzuTr0lOvGWEiXdIAFj3QFRuL1qEDhV5/7uXdyT
         0czeVq+m0ffucUs/MveAbqni4LhhOVBWBdMn8hHo37m9ErNR8PoOzZop8upUCPie9jNR
         or/Q6EUyjqfzxd/GSv6MvTrMPMj7X3m6xL5bJcPPVUens3RLv9hmQRyrhBT4MN98WV5G
         ej9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779188110; x=1779792910;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=jGogrGSd0RJvcukUMyuPyf1sE63H4AMkZ2I+S6HMH6A=;
        b=Coz7ZfFN7IqMCN7hFc0bzQx18QrZDuF0N4QFqcevC8gSCJfKfnlIDVtm/PQMw2gMED
         8DHza6fBcBd+6zxmMTBA5N8L0V6tgi+lShqo6RWUzZnzftdDPmTU+D2Bl87BCm/ff8Yz
         8P0pwhTJgfmHKa6R3Zl8CN6k6GY4H0RauzPilVDFXbJ+xiTgUNLrtO+FxVI+TUSR3seZ
         yWLczmZIiaJiDXj/0k90VMCbhW+cWxqksdzF/B5bqyixTZgAA86zVxcbZn/Y4LUN+Fyp
         mp6DxMyqNdKXq7piCrH3kE/jkDcveyJB/STdWDxyBAGdv7CXmIeSZaHpZnUx5A6r9gpx
         igew==
X-Forwarded-Encrypted: i=1; AFNElJ/Q4aEp7JqIYEtijMxgvWI7ZsWYIlf57l9m9+BKWg/0FLDgd9AkxdoSQQsL2r9BKYe6PDBmlfRZNJw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYlTCjdrjjJc/1LfESKMGKDQd6ISsJDXqFPdGG/jRn3wk9B7j5
	cGD5rv2K5EtfmkA675SaTT2/T5S3/uIB0IrTlzDCCQMaezuef2FOwefz
X-Gm-Gg: Acq92OEr9X/IqXcRReexPlBXV+TKX58LRLhwhxm4TzVpCaogJbmdgDkn9iii4DPOMYC
	l44ue/F42Ym7uQJElnTLqBgA56+7peHOdJda8YQW9L9XNAzj6KJFTq+5WiRfa42HNkm5BTj8wLB
	J9eEQgE3krnX/M8AJf8H0yViH39gv41Aoq4Q+/gQWXCPC3e4UY7XW8cf4SZ7dtDXw00LAB7XYzw
	qL4HjvhP2E3Pv1Zc8SvgsyZs6skPTKN3qibJ62MgxjRb5DRnDhfit9ih3rslvgKKW9oLf+PpUeb
	V7y1vrKfLM04arSEY7BV1d5E09fycN2W/Foj0/wZjsp0H+ky/z89vpFpZGW6lxxfGZPIModPiwH
	ppuuh91revUDr5rBRANzQy3561le6EB3T/tynqwiw21b4VGdiNlCqWvHlYyJtjMiVAFNSVUnBDc
	D4E7fKXOkyvo+w4apuNS5kC9hzYmLUjv8mImRRl8KLqQv7ksuozx6rxPLTUOTVkLmg2EaBXyM/u
	Gs=
X-Received: by 2002:a17:907:c8c7:b0:ba8:8c8c:1c67 with SMTP id a640c23a62f3a-bd5177dbacemr1124239466b.4.1779188110291;
        Tue, 19 May 2026 03:55:10 -0700 (PDT)
Message-ID: <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
Date: Tue, 19 May 2026 12:55:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
To: Jan Beulich <jbeulich@suse.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1779188111-AA175161-7A45A948/10/73395122804
X-purgate-type: spam
X-purgate-size: 2238



On 5/19/26 11:37 AM, Jan Beulich wrote:
> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot inside
>> the domain's shared_info page for vcpus with id < XEN_LEGACY_MAX_VCPUS,
>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>
>> However, it does not guard against d->shared_info being NULL.  The
>> shared_info() macro expands to a member access through d->shared_info,
>> so when an architecture does not allocate a shared_info page the
>> dereference triggers UBSAN:
>>    UBSAN: Undefined behaviour in common/domain.c:325:10
>>    member access within null pointer of type 'struct shared_info_t'
>>
>> Extend the existing fallback condition to also cover the case where no
>> shared_info page has been allocated, mapping the vcpu to dummy_vcpu_info
>> instead. This is the correct behaviour: dummy_vcpu_info already serves
>> as the safe stand-in for vcpus that have no usable shared_info slot.
>>
>> Fixes: 295514ff75506 ("common: convert vCPU info area registration")
> 
> I question this, largely (but not only) because I also ...
> 
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>> ---
>> RISC-V does not allocate a shared_info page at the momemnt because its
>> guests run in dom0less mode and do not use the Xen PV ABI, so
>> d->shared_info remains NULL throughout domain lifetime.
> 
> ... question this mode of operation. Yes, you may (for now) be able to get
> away without, but e.g. event channels will want supporting at some point.
> Which will require a shared info page. Better put that in place right away,
> even if the guests you test with don't use it (yet). Certain other common
> code also assumes d->shared_info to never be NULL for an alive domain.
> 

Would it be fine than to allocate it in arch_domain_create() ... :

     if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
         goto fail;

     clear_page(d->shared_info);

... but without calling share_xen_page_with_guest() after that 
allocation as share_xen_page_with_guest() isn't implemented at the moment?

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 10:55:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 10:55:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312765.1582863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPI78-0005qm-40; Tue, 19 May 2026 10:55:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312765.1582863; Tue, 19 May 2026 10:55:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPI78-0005qe-0j; Tue, 19 May 2026 10:55:54 +0000
Received: by outflank-mailman (input) for mailman id 1312765;
 Tue, 19 May 2026 10:55:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wPI77-0005qY-67
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 10:55:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPI76-00BpU3-CR
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 12:55:52 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0c41b2-bab6-0a2a0a5309dd-0a2a4505e378-12
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 12:55:52 +0200
Received: from [52.101.56.18]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0c41b7-aaa8-0a2a45050019-346538121f2b-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 12:55:52 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by SA2PR03MB5883.namprd03.prod.outlook.com (2603:10b6:806:f9::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Tue, 19 May
 2026 10:55:49 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0048.013; Tue, 19 May 2026
 10:55:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pRRrWroKYDvYlcHm0ypKv4mCLKkxBPaLMG07XnCFmgS9Uz15aYDtkLLvNB7wnPiuYXIYHwAxdWc+yRxR/D5mHCnILxisHJ/qaX336tEIblP4lXOqi5EBLj5edqCjzpXL7b1r0s8DhMPdba7jcX7vWEIf05aejK2G3lic407thCwOwYvmhOE5m0phDmGv7ZcDh+EL5KnTw4QECoQtX2idipNkIDYctDrDiG77ussjcS2KFt0sY8eZzP9EjsZh+abQaIEQgA4tXTqx9CQx+yTq1Q4GUUkdN1cP3uo/ciqFV6Td7Zq9i6rt4C6Q8cPINxVTRciKNeR8l9rddEVjGZTD0Q==
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=8fOyH0DBH+exaiWsiqF3rVuVhvGeYYtelg3oQrF5zg4=;
 b=CptJA2Zesh2CUTLG1lntJPUHTuYJ+i3aflmT2y+yPLuK1466/qvAUD7GKkEopzs+QwGQ5dJbKF64lZRP/vADZzDpNjSJ8HJi9WpXkGfBGaci6MErjYWSfI+WdPmJBRX4IWwJr458dgP7iZDCWIvK6vnYHs8oksZlVWLEWloahbyZzVMxMkspYpDzgje6/yaqBE9osUZg/zKjrF9RwMyc3CJwCV+UH2FYEGuR6KXFgyl+OW4T2GsmRRwivyutAAjIyo+ntVljFfdJAAt15xvx/5Ln25lFKDyqB18JKCYAE5v9S7GiZGpf/KS7fi9JccAbe7AWusiExdug+xxB5IicSQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8fOyH0DBH+exaiWsiqF3rVuVhvGeYYtelg3oQrF5zg4=;
 b=AC2rKsPya5roukhlxP182v91QpdfcktJUcgqbwIebMl9tWs/SVSSBD9USbAdOXad00yX3DkHjuWhILAwKl2RrLqtMApjdObAkzr/iw4Zois6/vkSdl0FliLJWCkbC+ukSAKUBJnH6yQETUVFXjlbSH+NmoL2a0E6Dx1QIg7YtFs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <70d8aba0-9a8c-43f3-b20e-e017a6949ed1@citrix.com>
Date: Tue, 19 May 2026 11:55:44 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/9] livepatch-build: fix detection of structure sizes
To: Roger Pau Monne <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20240429145654.71669-1-roger.pau@citrix.com>
 <20240429145654.71669-4-roger.pau@citrix.com>
Content-Language: en-US
From: Ross Lagerwall <ross.lagerwall@citrix.com>
In-Reply-To: <20240429145654.71669-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P265CA0014.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:bb::19) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|SA2PR03MB5883:EE_
X-MS-Office365-Filtering-Correlation-Id: 68034ea9-032a-46f7-8583-08deb5952f4b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|11063799006|56012099003|4143699003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	mWq3jgDyuLBTFacRaZALJ56cuOp2OM2rDE7/BYH8w0My4Ovcpkf1oAhfp+CEJ8ig16flpzTWKAvNxzMU40sF+r9OFVyZ+Pk6S6ohapUpl93dmZEscsodUWQKIjiUS5tWBhsrZnIgTgcFkSr5+o/RQSAVvzNH8qqki723czGRKYydcsbXkQlMM523iJVAmuOXhTX8ro+Fed/wPaBzlkmwAsxVxqCMpoMGrVUWoTjJFpBonlwi8lFb5J5mgPnlmo4zt2mTymVqU+T9Bqh2BpYHy5X5vNpxMnhm3RADfH0m/CsGKio1ua3QkMuJR0ZyMbYOpn+7PBOEo8RKYYM93O7/ybKb2rLVMfKipfD1vK7j43fcpNgDY48HcRcDq4E22ohkoyK9BjJ2cTnvqJo878KVz8H3ZeKo3ginFFQEFbH5ql7Vb3IjMmVjXz+yd7/xPYahakZtmo8w5YlFL1PtNA/sTIdydxqdi8i/8i//w59LyPFs46vx1ct2aI8mseLDfHTb1X8KKbo22G+6fAyl/RE9tsoqO2BLcnku+q4ga9EbufICkXfwAa+l3ENcSlNnNH0LReau9X76RJ4vZWB+je3ysu6YRALOofN4VxfEDtWaTduXCIOuwfdtnrVdo1GBY/FGA/qjPUovl/grk37T/358pZwmWT8BhVARnpHkc1R4r7cHQYTENHuzafOcPc7652h2
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(11063799006)(56012099003)(4143699003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cXZ6TmpuTlZXYzRwMHNBa01HZzVvQ081bnZReklSaEdlU2xHVHZUMGRDc0hN?=
 =?utf-8?B?STVkSnJRUW5FTkFUVG5RMHdaYUN1MzNiRkRoNWI0VVl0dE42SmhYdVN0eXpu?=
 =?utf-8?B?TUNZMjBNSEF0VnBiQTFna0Jla3NFaTNsT0tDZjRKajZ6QmN6VDZ6blZCM01D?=
 =?utf-8?B?NG5hQ3pWR1hEOVFvZ2hOVGJYY1pGT2VhTDU2N0ZxdXBOeUo5UXZLcGRvb3hJ?=
 =?utf-8?B?K21pNXZpd2x4NFRZRW9IbWYwMnpWUGp3SktXTEo1bkNqVHYzQXYrR3ZyRUto?=
 =?utf-8?B?OHVFT3VTeXFhVGZoZnZBQWE5dVlmSS91QTR5eUtSend3MlRKMmlnbm1BZHRE?=
 =?utf-8?B?YktZMytGeklQeXoxcmlIcDdZOWxRZkdKVlh3NHhBMUYzNVY0amJJT3hBOUhS?=
 =?utf-8?B?aE4yZlZZeVc2T2Q1T0ZiZlRIQWlCUEtrQzJzOU9hUS90SVNLYnY4QlZiV1dl?=
 =?utf-8?B?OE9kbnFlaFFPNEpDTE1jOG5rS3RKRldOMXFDT21zcnFPUnNuTHp0QjBDQ04r?=
 =?utf-8?B?cVRMamJwNWttdThHOVJxZUFLb2drU1poYURheXRQS2pWSlBpYlZNcFh5dit4?=
 =?utf-8?B?ZytIYU01U3FqakFiUktMUmd5M1o1OE5GbnBpbkhYb01FU3pnOWloQkpuOGtM?=
 =?utf-8?B?akdkUTFOVXRSQ29iZ1RENFFPbElNYm8vTFlDWkVyZ1NKakxpYVJHZDMvdEVs?=
 =?utf-8?B?ZGpYL095Q2V2Z3d6UWFYK1Ywd0JRTERwV0E4eGt4QUhzUE90K0pnQlZuSEs1?=
 =?utf-8?B?a0d0ZXRncmdETWg5aVRmWDdiVGYzNFkvdUlhaVEyZ3RwMFBVanlmZ2dyRVAw?=
 =?utf-8?B?T01sVENCTUxVaG9OQS9jV1dHaG8yOWpGQzVlL1VYckRxQWcvbHMwWmk1eTV5?=
 =?utf-8?B?WU5iMDJFcXQ5bjdKWUJQUmZnajFiZndma3cxZW4ycGlxMGViZGt0YnltRTdw?=
 =?utf-8?B?VDVHdDVjYnR1ZTVOTm9kRG9UVDMwajV3dE0rMEdya2F6dXA5bmhRQmtaWWtO?=
 =?utf-8?B?cE92OFgzSFdaSGg0ZUN5UVlMbGVVcFVXb3JHOUdoVGVyQ2pNdVBiM25sRVFj?=
 =?utf-8?B?R2FCSW56dmJnejMwbjNLSzlObjVPSk5HSjlNQWRnK003eHY3SC8weURRdlAz?=
 =?utf-8?B?dVVLV3U2R2dycmNxM0hDYTZSUUtqT0pJVDNFQmlDelpObVphdzJ5Zno3WnVn?=
 =?utf-8?B?aHdhS0J5K1QzSndXOVRBU0ZPTkE3Z2syQkMyT1VVN3p4bzhhZ1lDbTdJOFVR?=
 =?utf-8?B?alNzRzRpazFrSDN1YW9IOWkxbUY1U3RnaUdrc1o0MFYwSTduQ21mZkFEV1M2?=
 =?utf-8?B?S0RjUklna1R0a0JvZlUxM3FmdVpJTGI2OWNRLzBRYm9walpZdk5RbklLOWVM?=
 =?utf-8?B?d0tsQ25UZy92Z2FTb1IzY1M0ekFPNFRNN3pCd255WWZBalczOHEzV3EzTUcr?=
 =?utf-8?B?NlpCOWVSQWZBVlNBTjlUUjNvK2ZSNVN2RTJ2bjNqR1FTeFZUY2g4M1dSc094?=
 =?utf-8?B?M29xWGlXZ3FqL3o4UFF4UnpzbEY1aDdzQWZ4NU1lcnk1NUg4YU9aaUhNeVpY?=
 =?utf-8?B?NTgvWWJxTVM2dk1qand3dTVEc3R2ZFZiazJObnh6Ukl0U3BBajBuWDBaK3I1?=
 =?utf-8?B?REEzWlpkd0kraG1pVTd6VDJQVWppSEw5aTd1MWVnUGtFb0F6bUtFVVA4eHdE?=
 =?utf-8?B?ZGtyWWFVZ0dBdmtNdW5nMmVjc3dtOGl5WXpTWkRFMHhYdkFlYW5wZ1FkaG16?=
 =?utf-8?B?UHlBY2NUSGxkenRXZGJwK1NHK2RkSXhCM2lNaEdUSkZCdGMwZzdpQXpBbU53?=
 =?utf-8?B?SWxodmJEZ25sc0VDNWRLclI3UG5DM0ZMZU0zRXV6eFJHcVlPV002YlJZVS9Q?=
 =?utf-8?B?SVh3UXlub29WYVJuVk4rdjlsVjh2c2lmTHFEUlYxUHRobE1xcjFOOFFxUXFo?=
 =?utf-8?B?WFdrdG5UWFdCci9lNDZ1UnNlZ05XMVcwLzNET25GZk4zL3dvSTFXZ2VHQmFS?=
 =?utf-8?B?QTdHWDRqZ0piSUxBdXpvcktQcGFlRVR5Q3FxblRQT084S1IvWnI0NC9wdHVK?=
 =?utf-8?B?d1BMRHFxTnpMa2djcUFMdTZ0ZTdzanBvUHJjcXhHaWhyYVN6V3hvS2tMOG9j?=
 =?utf-8?B?dHhyM3VqMHdmU21Na1U5ZzVUOFdjMUhpT2NMQnNZdHJyQVJEQnBVbzhHVW00?=
 =?utf-8?B?SzRQVThsYVd1ZWxvZEJkNE8rYTZKMXB6WUw3b253MU40anRVcG8rOXlQSTlD?=
 =?utf-8?B?VDZCQ2thNDAwNnd0eFgyb1BjdTM1bXVMUEswOGJRRmIremR0SmVibXlFN2g0?=
 =?utf-8?B?SzhUZmNDdzcvYUxaanhpbG91dXZCNThNM0xXdThhSjIwamtlQi90L2ZVd0hw?=
 =?utf-8?Q?DcUvHEIhtGujiS/4=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 68034ea9-032a-46f7-8583-08deb5952f4b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 10:55:48.3134
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2KfOW+GRBPNDzGwknGtmiI4FJl3KtXhX/mkLxJxsyiIsMg+5O6PW+M6R10KSyvy7K8fMx4R0LOC3uxEn7dth9LJQiet0AD+YbG0eBXmyIHk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5883
X-purgate-ID: tlsNG-c201ff/1779188152-DBF66443-8CC4AD35/0/0
X-purgate-type: clean
X-purgate-size: 812

On 4/29/24 3:56 PM, Roger Pau Monne wrote:
> The current runes assume that in the list of DWARF tags DW_AT_byte_size will
> come after DW_AT_name, but that's not always the case.  On one of my builds
> I've seen:
> 
>      <b618>   DW_AT_name        : (indirect string, offset: 0x3c45): exception_table_entry
>      <b61c>   DW_AT_declaration : 1
>   <1><b61c>: Abbrev Number: 5 (DW_TAG_const_type)
>      <b61d>   DW_AT_type        : <0xb617>
>   <1><b621>: Abbrev Number: 14 (DW_TAG_pointer_type)
>      <b622>   DW_AT_byte_size   : 8
> 
> Instead of assuming such order, explicitly search for the DW_AT_byte_size tag
> when a match in the DW_AT_name one is found.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Reviewed-by: Ross Lagerwall <ross.lagerwall@citrix.com>

Thanks


From xen-devel-bounces@lists.xenproject.org Tue May 19 11:03:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 11:03:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312778.1582872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIE5-0007vG-Sd; Tue, 19 May 2026 11:03:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312778.1582872; Tue, 19 May 2026 11:03:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIE5-0007v9-Q2; Tue, 19 May 2026 11:03:05 +0000
Received: by outflank-mailman (input) for mailman id 1312778;
 Tue, 19 May 2026 11:03:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wPIE4-0007v2-LY
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:03:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPIE4-00D9vM-0b
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:03:04 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a0c4362-2eae-0a2a0a5409dd-0a2a45068168-40
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:03:03 +0200
Received: from [40.107.130.141]
 (helo=MRWPR03CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a0c4367-7371-0a2a45060019-286b828df8c9-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:03:03 +0200
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by PAXPR03MB8051.eurprd03.prod.outlook.com (2603:10a6:102:20b::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Tue, 19 May
 2026 11:03:00 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.21.0025.023; Tue, 19 May 2026
 11:03:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yZMb/epAvqDcokPlhpo9aKZxmAl8NSWhllt5Et9+U7YeHTfIuSYq/UL+ywq0+QPrWF00VtPB6F5hbC3q4IIhClilG5cdSP/uyRWTPPoW5R4VHA5wj/m07e54C7PQiLEyAdpfEdE1zFReQmo8Tho9HOPfniyibmKQtjfCisMXikBpBd3Biv8/EX8ovUhS195l/rTy8XhAIl5TyY3rUftJji7E/lrsKmNVRhVEQAXc/QR1qcfW3XRdHvzqB478ENJq3UrV0mh54+cFExii7iEySP1xyUtSk1Fhoq3zwFsrbEfk76KqPztg3Ysdxf+jcTdbhk0md1WoGZjojKhHS40weA==
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=xO4OPw0UJmY4sskhJ9357fn+X2Reta1/dye1Z+NHLck=;
 b=ve1JSmUFKHrVlXgZ5xE2MipUJKENm1BSG/Aby6gEsEtPTyarBeOI9fzDbvjycXwMTIESZVYa5RqQE3d1Izx76Iz9rvyJKDLdrISJLNFiYfQoNXah8HYN9992d2573APervEhUKRbIyrAGy6bZjRT0g1WEE+nPuMcbycrAOSnAWu+1CYtxpLt2LnrRD7qTy6Ujuld9fTHtbKrvKxDhlUWb2OkA4mccBhKWYViM5DewTVBYEkRhAMDeMfGBF4pQFsmjZtthaKLan4JMP+gB+krObej/xQ45XMH6fKcXpPaGxL3YBqjEdauhgKOWGMbLEa71GWqzH5Ro6FH3NRRga9I6w==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xO4OPw0UJmY4sskhJ9357fn+X2Reta1/dye1Z+NHLck=;
 b=CVTsweiOzqRZ9PfCKnHabIAKEhacPqxKunioZDjyU6MBeGLH9ouKYv0jqytD1Qpf5orIA3PEKbyHHumd8p9X36eoKoPrUZxDb74kttcjQ+4L7y64ApO91Ie2iJLXgVCSVZeaMO5227lIBDamRhrFzrlPf2QxEXBCTb4q6MwVy9SKTkYNX3F/oX28DJ1BEqOL7r+b/obtxY2Ds0LN4+NWzyEpTEoy8CvRw5yVld32iqmllw7ILKqKASaysoiK6OUX1LLyOvAL67iKmnU1sDZ/NPDAyjDF8xJ1msiq3Zr3Egk41/u0/N+pGuwEKgp5oVTycs0I+RT8BYC4BKXFipOVdQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Doug
 Goldstein <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] automation/eclair: export XEN_TARGET_ARCH during
 assignment
Thread-Topic: [PATCH] automation/eclair: export XEN_TARGET_ARCH during
 assignment
Thread-Index: AQHc53oVx3/uBPUL1EWf6nb6ZvtStLYVKjCAgAAE+AA=
Date: Tue, 19 May 2026 11:03:00 +0000
Message-ID: <50f31733-3048-4512-af12-50dd9ba3cf8c@epam.com>
References:
 <8b3120f7302e591b2828cb77c5f903c84149d498.1779186401.git.dmytro_prokopchuk1@epam.com>
 <0700a54389d4071c7308b8eb3a52c9ab@bugseng.com>
In-Reply-To: <0700a54389d4071c7308b8eb3a52c9ab@bugseng.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|PAXPR03MB8051:EE_
x-ms-office365-filtering-correlation-id: 60dea3a1-7f7e-4ca2-6bcd-08deb5963132
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|366016|376014|1800799024|56012099003|22082099003|18002099003|11063799006|38070700021|4143699003;
x-microsoft-antispam-message-info:
 mfQ14nCvZuHkV3fdJy0KpHYaduGj8A2cStge5oPiw3T0A1u36an4XvlSl0lxmEDdfDAYyln1p8c/9DYThOtgoER7w3h3bQEbvsylFkp4NLvCV0MaAamYkuRI5OGdaaPS99Sag45WsgdQ7urnxyxpaFpDF4sgBiNAxGVkioJF1Xqghj1boPkcIuyDWkOHOJjc8Z4xtfIyOmy+4Lso8cexKVUL9neDszVeBZ2bcpooOrAnPL1n5UlKDj5dKA5QLcoEYY0J299+bEMh03xv3DM1vxAzDybL4BtYt6xKE8e0gIud6ckNgsWH2r1MgiLtse1R2cOR7Xr46PJUXed2JZBD9amoOxc/ahESdu0g+zd91FngzHMEWN4QnFs20pELrdLSzqN9YFjnacA41r2M2t4aSmlW9pf6jCLlZN/I0H6LmrUkVm+oGntpfAJn8nIkh9fyiZP4aOnyBZuqN8y+cy1+Ug+Q3JxPl9KOGmaWpS2XSu9NFtgEu+66azpv0M1uISzYX41L2XIY2SHRQPeQtjy7yV+856KAoIFkvoA9x/IeyjS8/1HHDgt+R3bLGC7WehKd9bvBggjCmNskq/tQSvUovskTYGlcEG9OKLqBINMb+7IlbIdnjvHUy78QmKx9yq0K7ScEZdsS8dCGzDba9ff9abtfCCsZKgAT6pz/Eqlp6wH4gRWGIOmWver4MxAahGO2DKkja/MPeuvbIfv+ckEZ3LvfMvbp2j5rAo54aComza61UPClry99P3RLEJ16CJk4
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(366016)(376014)(1800799024)(56012099003)(22082099003)(18002099003)(11063799006)(38070700021)(4143699003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TkQxRnNvcFBTSWxGcEl4bWh2aFBLajNrbEc1bzk3NXJaMEh6Mi94REYwNEQ2?=
 =?utf-8?B?VnJjZW5acysxald3Yjk0a0t5YU5lL2ZqTXVWdVdtMHhpaUJ5bmQ3L2N6SXk1?=
 =?utf-8?B?OUZzczlpVGo4L2J1MGd1QnBTOHVpRXVJVTNrTm9DYndnOUlXMjY5cTdmMldj?=
 =?utf-8?B?bVJBVkhtRXc4T1o1MmtwTEJTZEc3cWtHNXh0WWtKemlTSTdEeDc0V0c2OVNq?=
 =?utf-8?B?czQ4L0ZMTkhnc3grdnBtb2JHcGM1Mnhxdlh6Q0Jod1poTzNpWmxQM0syZkNH?=
 =?utf-8?B?RlpNNldQaitjdk05QUJtb05MNVpjV2xOQkRmQ3oyUXEvbUl6VngwaTZDeGd5?=
 =?utf-8?B?cVJ0ZUhtbGFlWXUzSW9FL2NCMCsrVVRjMTJLS3VhcDBBSkxIQzh4UUc5S2Vr?=
 =?utf-8?B?MTc5TGNjUHNQMUpNaitFSXVpeHg2UkNMT0lGSHNpZ0VLVEVYa2xDQit3MllC?=
 =?utf-8?B?bDV0TEZDaS9Memx1VEFRT3FxWFBqVmFYVnVTWXJqb3o3OTVrUXRpckhieVdS?=
 =?utf-8?B?Z0hWSnRQaFRFa0VCT3Zvb2VZR3VSeVVVOWtJZGdHM3NjcWx4L1NDSXRWbWE3?=
 =?utf-8?B?SllUeXVhWHh4Yy9CNVkvS0VqV0diRlFOUE1VOVFTYyt5Qnk0T0ZaaFVyNVA0?=
 =?utf-8?B?dkl0a3EyYzRHUnQ0RFF5eHJVRm82ZUVDeXVRajZQaTU5UURsUDZkOFVNZ3oy?=
 =?utf-8?B?d3lPdzIzbnZvM0p1cldvK0JTQjk2ZmpyMmJNOVJvK0VEOXpwSWJnTVBtNU5D?=
 =?utf-8?B?SDZSa2xWUDFzUTgxcnd6SVZOV2ZMY0pOUVNzMi84U05hc2lVL29ydzdscEJa?=
 =?utf-8?B?b0w0aUNBamlBaHFXY1MwTVo1SU5WNEtmRjNZL3JDRmZtVUM5N3Q1Y2V3c0VR?=
 =?utf-8?B?ZFc1OCtHZGJESTMyNUpnWGR6RnErMEUwZWJDL0dWQ1ZIR1FhNVRyb0xFSlZk?=
 =?utf-8?B?c3NiSW5Pd09KZ2pCcmRDUWtFVWlqYUlVdTRGT1ZrUVZkYWVYWkZtMUI0VER5?=
 =?utf-8?B?MCtrRDN5YUk5QlY5UGh2SWNhQ1Fnbk5qcU5ZcThwR3NXL2FXUStvTENsdmRm?=
 =?utf-8?B?T3hRMGNPWDEwWmJGdEFvbVRIcVJTV3laRDZhV0NYaXZjNFF5RDdwcGJMRFBD?=
 =?utf-8?B?SlRzaERsQm1IV1dsUm1oQkgzZENBclZlalh1WXpNd2dobSthOUNNTlFESGxl?=
 =?utf-8?B?dytPM1l0S3czRUNpVGJQQ0Z3QlUySmwrYVlSTklKcXZHVGthT2oxWmM5eUFC?=
 =?utf-8?B?dm5NL2lkZS8xVFRXS1AvWUlSN29vUFlBbFl4QnR6eDR6NnJ3VFR4V2l1aHk5?=
 =?utf-8?B?SDlEK2paMGNHMkd1c0J1bFM4eHVoNWZSaVFkeEliUXRaVFFqZXozaTU4SkNw?=
 =?utf-8?B?T21YQllhTFhhY0Z0cVVOWmV4aUM2a01QK242WmFscEpwU1FDZUlCWE9ncDgv?=
 =?utf-8?B?Y3U0Y0Q3c0ZOTmljYnN6c1B6SDMrQTNoc0ZWTlhsaEpGSnNqOUdCMkNua2dU?=
 =?utf-8?B?SmdJT2V0SzB4OWR5WEdLTXpzdzVmc1lCekpMT25LdTRSOEJSNTVZZDVzYmF6?=
 =?utf-8?B?OVdlYmprYUx4akNQWTFHUWxXRFQyK2hKWjlxZ0pCQ1hzVXBkWmtFK3A2L1Jj?=
 =?utf-8?B?TnJPSjY1bEEwMHh3djZGSCtLTlJRcmNnUmEzT2FQS3ZwZnhnWmhMblp2eHE3?=
 =?utf-8?B?WnBWTnJKK0R2ZzRxbHpHYkxXRW5BWVlNTFhaNHV3RGw0M3M3ZEF5NjVhMkdx?=
 =?utf-8?B?RWRNdkNzMThrSW5KdzAxc2hxMHZXTGloKzBML1c4OW9WVzJsbE1mZXkyNTdY?=
 =?utf-8?B?L1ZrcndaNWgxaklXQXdzRmtvaTVhR1NEL1ZjeExkeGJCUmx0WmhVbDdrQk9C?=
 =?utf-8?B?dWtIZjQwUVVrVjZxaWJxK1hRRlFxeThQbko1dSs5cU9pM3NKMFhseDR1bWxX?=
 =?utf-8?B?VWlrMlVJOXF3WTNyU1hsYkJ0YktWS2pIRlBkNHY0ZSszcmd0dTk4UnduaHJy?=
 =?utf-8?B?Y0NaSXFJckZCMTk0aUFkemV4RndWYUZ5V1dtZUpMWGFhMTFqQ0theEhaMFEy?=
 =?utf-8?B?ZTBkRjFoczVSMUt3d1ljNFhMdTNPQ0pWUmxXcVVsNEtKWkNwUC95R3VaM0F6?=
 =?utf-8?B?eUJiN04weDE2ZzJ4UW9QQ1FNMmRQTlFHdUY5aVkvV0ZWbTdrZWVFaElpRFNu?=
 =?utf-8?B?YVk4eUtPU2RMZmFUQXk0ZERSZ0E4SUorRHZBWWJFYzJDak8vWWlZa0NRQ1FZ?=
 =?utf-8?B?eVl4Nm83bWt4Tk42bnZkTHFZK052SFo5cy9uZGY1enVyeWdEY2FjWW1DM0RT?=
 =?utf-8?B?ZU9PenBJRXZRbllXRjkxMUxHZHNvUmFLcWhMM3Q5RTlidU5GNmhxRFEydkZ5?=
 =?utf-8?Q?BMKVYlcP072SyCwQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <10DB9017EE2D7648BC8BC0F14C275D3E@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 60dea3a1-7f7e-4ca2-6bcd-08deb5963132
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 May 2026 11:03:00.7780
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: xdnRtn/tIWIotmkpTBSj9fNXGlv3jgu6sBfnq5NDaJtHRBwFD07zyCaCJfrR/VGQJE8iEpowpibxelBNpUj89Fv0v7uka5kkmHggaTfN+o8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB8051
X-purgate-ID: tlsNG-16d1c6/1779188583-7FF7BD75-F2225C33/0/0
X-purgate-type: clean
X-purgate-size: 2176

SGVsbG8gTmljb2xhLA0KDQpPbiA1LzE5LzI2IDEzOjQ1LCBOaWNvbGEgVmV0cmluaSB3cm90ZToN
Cj4gT24gMjAyNi0wNS0xOSAxMjoyNywgRG15dHJvIFByb2tvcGNodWsxIHdyb3RlOg0KPj4gTW92
ZSBYRU5fVEFSR0VUX0FSQ0ggZXhwb3J0IGludG8gdGhlIGFyY2hpdGVjdHVyZSBzZWxlY3Rpb24N
Cj4+IGJyYW5jaGVzIGluc3RlYWQgb2YgZXhwb3J0aW5nIHRoZSB2YXJpYWJsZSBiZWZvcmUgYXNz
aWdubWVudC4NCj4+IFRoaXMgZW5zdXJlcyB0aGUgc2VsZWN0ZWQgYXJjaGl0ZWN0dXJlIHZhbHVl
IGlzIGNvcnJlY3RseQ0KPj4gcHJvcGFnYXRlZC4NCj4+DQo+IA0KPiBEaWQgeW91IHNlZSBhIGNh
c2Ugd2hlcmUgdGhpcyBpcyBub3QgY29ycmVjdGx5IHByb3BhZ2F0ZWQ/IEFzIGZhciBhcyBJIA0K
SSBkaWRuJ3Qgc2VlIGEgY2FzZS4NCj4gdW5kZXJzdGFuZCwgdGhlIHZhbHVlIG9mIFhFTl9UQVJH
RVRfQVJDSCBzZWVuIGJ5IHN1YnByb2Nlc3NlcyBpcyB0aGUgDQo+IGxhc3QgdmFsdWUgc2V0IGZv
ciB0aGUgdmFyaWFibGUsIHJlZ2FyZGxlc3Mgb2Ygd2hlcmUgdGhlIGV4cG9ydCBjb21tYW5kIA0K
PiBpcyBwbGFjZWQuDQpZZXMsIHlvdSBhcmUgcmlnaHQuIEl0IHdvcmtzIGluIHRoYXQgd2F5Lg0K
SU1PLCBleHBvcnRpbmcgZW1wdHkgdmFyaWFibGUgbG9va3Mgc3RyYW5nZS4uLg0KDQpBbnl3YXkg
dXAgdG8geW91IHRvIGp1ZGdlIGlmIHRoaXMgcGF0Y2ggaXMgbmVlZGVkIG9yIG5vdC4NCg0KQlIs
IERteXRyby4NCj4+IE5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5
OiBEbXl0cm8gUHJva29wY2h1ayA8ZG15dHJvX3Byb2tvcGNodWsxQGVwYW0uY29tPg0KPj4gLS0t
DQo+PiDCoGF1dG9tYXRpb24vZWNsYWlyX2FuYWx5c2lzL3ByZXBhcmUuc2ggfCA2ICsrLS0tLQ0K
Pj4gwqAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQ0KPj4N
Cj4+IGRpZmYgLS1naXQgYS9hdXRvbWF0aW9uL2VjbGFpcl9hbmFseXNpcy9wcmVwYXJlLnNoIGIv
YXV0b21hdGlvbi8gDQo+PiBlY2xhaXJfYW5hbHlzaXMvcHJlcGFyZS5zaA0KPj4gaW5kZXggZTk0
MWU2ZWRjNC4uZmRlODNjMmQyZCAxMDA3NTUNCj4+IC0tLSBhL2F1dG9tYXRpb24vZWNsYWlyX2Fu
YWx5c2lzL3ByZXBhcmUuc2gNCj4+ICsrKyBiL2F1dG9tYXRpb24vZWNsYWlyX2FuYWx5c2lzL3By
ZXBhcmUuc2gNCj4+IEBAIC0yMiwxMiArMjIsMTAgQEAgaWYgWyAkIyAtbmUgMSBdOyB0aGVuDQo+
PiDCoMKgIGV4aXQgMQ0KPj4gwqBmaQ0KPj4NCj4+IC1leHBvcnQgWEVOX1RBUkdFVF9BUkNIDQo+
PiAtDQo+PiDCoGlmIFsgIiQxIiA9ICJYODZfNjQiIF07IHRoZW4NCj4+IC3CoCBYRU5fVEFSR0VU
X0FSQ0g9eDg2XzY0DQo+PiArwqAgZXhwb3J0IFhFTl9UQVJHRVRfQVJDSD14ODZfNjQNCj4+IMKg
ZWxpZiBbICIkMSIgPSAiQVJNNjQiIF07IHRoZW4NCj4+IC3CoCBYRU5fVEFSR0VUX0FSQ0g9YXJt
NjQNCj4+ICvCoCBleHBvcnQgWEVOX1RBUkdFVF9BUkNIPWFybTY0DQo+PiDCoGVsc2UNCj4+IMKg
wqAgZmF0YWwgIlVua25vd24gY29uZmlndXJhdGlvbjogJDEiDQo+PiDCoGZpDQo+IA0K


From xen-devel-bounces@lists.xenproject.org Tue May 19 11:09:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 11:09:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312786.1582881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIKM-0000Lu-GI; Tue, 19 May 2026 11:09:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312786.1582881; Tue, 19 May 2026 11:09:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIKM-0000Ln-DA; Tue, 19 May 2026 11:09:34 +0000
Received: by outflank-mailman (input) for mailman id 1312786;
 Tue, 19 May 2026 11:09:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wPIKK-0000Lh-Ri
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:09:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPIKK-0098AI-3g
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:09:32 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0c44eb-bab6-0a2a0a5309dd-0a2a45019ae0-2
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:09:32 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0c44eb-c1f2-0a2a45010019-a237832f8384-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:09:31 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id B06084EE3CB1;
 Tue, 19 May 2026 13:09:31 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1779188971;
	b=06S3+tc0mbeQVpuns0w1x9Vf1eDx13KgntpG0RTrUB3d9Hji28ggfED6Q0TFi4gYrNGp
	 mOjm2mgoyUzd5Lrvc1kv7bSx8KDw+xyESuDP520+b4i2WMY4gY/hRHg3jQsUilVfTl5rl
	 L4KPgeEYT95yeF0rjTEPvUhl5RlvgreBsR9fQJFlguGpgV80oUN6Oj9hru07uw3kbXDH2
	 iaooUuha/3M1mBQZb2eky9mrgLMdmFgk4dRdaV/MSQBPchMmlZSmNQfvH/u9pZMpFnPMw
	 VR+6a25hNnG9vHLZLHhI+8HdrCziDs3xz/8PZ7pKoDXemepEsiAtzNPW+ESarWa2xdj7F
	 YpF5+W/SEt7p0bu7DKJxtgRRPcQKiwI+kaYhgibfGSpZC3izWasajZs8/j/pX0cEz+P6A
	 inV4ytMa/LmOWiA4yGtyhNN/gjasAni1Ieh/uet5n1+QFVLHCGHQ/hSDuMRxQB+uEhOry
	 CYmOH61WsQKcVfuQs/fw0otmFAHVxR5SHpl8U414VJzsG/4pwV8pGExrmQhiqOvXlefYL
	 V14bKHcbY86vI/BzAcv++QTi7w0wLsw7D7DYcR3Ndn68ZqJAIUID19alO+orZG8CZtqLl
	 3qmjdYL9PLxPuaR3zpbptcrS8Qsoqo2jDlbWjEFHbgpsu6sZ7D/02y3Lcpot+wc=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1779188971;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=ARXqPp9NirDiaMmgJPdBfuv/CUClwWWJ8uBW5c1zmZc=;
	b=5Kl9TY0jMe9k5pBLZuOnV/LNteUKg4L15zb4H+06xy0i6To5AjixPOJsHcH6hg0JePBU
	 /t/ThLcTWwraOaq+0VYdYIDA6cNEbkBESk0ElnOnLFwZYICHvLNI+kn4cv5+7cftlCXK3
	 taswyvhO5cSKQerOBVjL07yRimY6LGuUSiniGEfjwQASCpSsPqy9kNjLnoQqHIljyucOC
	 CA0W2KYj7KNO6s5LmFDEiTJrElxDaRXTVw72suBV6qgdSYnBt9+ccg6rzClizIvkFyg2K
	 /YyqgakPyp/T55k+Wq3Cp7dqVuFMGg3If2xl6UqeAMUgIa3b0iSvRG43v2THTCYS1ePhi
	 34/u4lbhMkP+qOlKbCDN2uc6/6j2vSJq2tIO7P/XqLq8oiaofa4RNsMPoLGbNR+C16r4p
	 i1HPU6dIX0dmX6+eYEqVeu25TNWhAxScdbe7DrgYd0u0k80SLJnXaG0C55QTe74xWsWG0
	 H/b8WU2YbY6k9aHP6WV5QxgE4osiHvqgOvNTQBqHaVY/ry49SWwkKlRnmyWaiqng9kkWE
	 x6EDrI8PqRT3qqYsJMpwSAmhqmWBhGq9D2aF3kaKwcb5baIPQ+uPDutTpl20eGFAEiSvL
	 PKHKSGFRyZxkTuZYJRYu7xPaJO/0Zs/g4mlTGXXk/kaE52Eif2kwmSN29aUckYg=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Tue, 19 May 2026 13:09:31 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] automation/eclair: export XEN_TARGET_ARCH during
 assignment
In-Reply-To: <50f31733-3048-4512-af12-50dd9ba3cf8c@epam.com>
References: <8b3120f7302e591b2828cb77c5f903c84149d498.1779186401.git.dmytro_prokopchuk1@epam.com>
 <0700a54389d4071c7308b8eb3a52c9ab@bugseng.com>
 <50f31733-3048-4512-af12-50dd9ba3cf8c@epam.com>
Message-ID: <40a468313da350be8b60df32a7c58083@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1779188972-B474CFF4-FD1ED1B9/0/0
X-purgate-type: clean
X-purgate-size: 2002

On 2026-05-19 13:03, Dmytro Prokopchuk1 wrote:
> Hello Nicola,
> 
> On 5/19/26 13:45, Nicola Vetrini wrote:
>> On 2026-05-19 12:27, Dmytro Prokopchuk1 wrote:
>>> Move XEN_TARGET_ARCH export into the architecture selection
>>> branches instead of exporting the variable before assignment.
>>> This ensures the selected architecture value is correctly
>>> propagated.
>>> 
>> 
>> Did you see a case where this is not correctly propagated? As far as I
> I didn't see a case.
>> understand, the value of XEN_TARGET_ARCH seen by subprocesses is the
>> last value set for the variable, regardless of where the export 
>> command
>> is placed.
> Yes, you are right. It works in that way.
> IMO, exporting empty variable looks strange...
> 
> Anyway up to you to judge if this patch is needed or not.
> 

Indeed it is a bit strange. To avoid this we should perhaps move the 
export after the if, so that it is obvious that it contains the correct 
value

> BR, Dmytro.
>>> No functional changes.
>>> 
>>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
>>> ---
>>>  automation/eclair_analysis/prepare.sh | 6 ++----
>>>  1 file changed, 2 insertions(+), 4 deletions(-)
>>> 
>>> diff --git a/automation/eclair_analysis/prepare.sh b/automation/
>>> eclair_analysis/prepare.sh
>>> index e941e6edc4..fde83c2d2d 100755
>>> --- a/automation/eclair_analysis/prepare.sh
>>> +++ b/automation/eclair_analysis/prepare.sh
>>> @@ -22,12 +22,10 @@ if [ $# -ne 1 ]; then
>>>    exit 1
>>>  fi
>>> 
>>> -export XEN_TARGET_ARCH
>>> -
>>>  if [ "$1" = "X86_64" ]; then
>>> -  XEN_TARGET_ARCH=x86_64
>>> +  export XEN_TARGET_ARCH=x86_64
>>>  elif [ "$1" = "ARM64" ]; then
>>> -  XEN_TARGET_ARCH=arm64
>>> +  export XEN_TARGET_ARCH=arm64
>>>  else
>>>    fatal "Unknown configuration: $1"
>>>  fi
>> 

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Tue May 19 11:22:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 11:22:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312795.1582889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIX4-0003Gl-I0; Tue, 19 May 2026 11:22:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312795.1582889; Tue, 19 May 2026 11:22:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIX4-0003Ge-FS; Tue, 19 May 2026 11:22:42 +0000
Received: by outflank-mailman (input) for mailman id 1312795;
 Tue, 19 May 2026 11:22:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPIX3-0003GY-7U
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:22:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPIX2-000EN5-JU
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:22:40 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c47fc-bab6-0a2a0a5309dd-0a2a4509a64e-44
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:22:40 +0200
Received: from [209.85.208.43] (helo=mail-ed1-f43.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c4800-2497-0a2a45090019-d155d02bb077-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:22:40 +0200
Received: by mail-ed1-f43.google.com with SMTP id
 4fb4d7f45d1cf-67389cf78b0so8029478a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 04:22:40 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-68310b4069dsm6303182a12.1.2026.05.19.04.22.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 04:22:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779189760; x=1779794560; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to
         :cc:subject:date:message-id:reply-to;
        bh=PgFiqEWjNufsJ8px8sHsLEdCGgRsHES8u9NiutjzCzc=;
        b=H2/BMQ+Kwpo5E6XgYL2ocLNcvRcXzZp3lRAnjBhGLrBE7Y22hQ7e6WZb69FdNg0Edx
         WOHrmpjvQWSEyPfWOMz6rga+jA39REcDR+6smwPaiSzWf9E4fUSeb/YjljdUCFHpGWl0
         oPLUd5iuXkggtsjJS+Twm9w7HxlURQ987GIYGgrZ0bjW1g5AeTrXPZsDUOxYu8NclP80
         X0+bQwhfHb7+HEtShBjmXIVhMjQk/YopPXqMZuqxk7kOwuSRnYunv4afXCb4HyyfitP4
         GA3+OTlZRdUbCz2fulSUpjibAUijrfEVeQzeokf/w6K6Qh1FuU5Ucu2uAHCca9MTmEeR
         JNwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779189760; x=1779794560;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=PgFiqEWjNufsJ8px8sHsLEdCGgRsHES8u9NiutjzCzc=;
        b=Uoi1gGT5ILwL+jw1NaKIkEW5Po7pP4m2j6XOzqpePu9XOysvQS6SG6MiQen5USari9
         AQBVPDcWhYCjXXy6J6QHOlYx7PztOesvvomkg3KQLzd5P2L7+lLFj8dcADBIslh/Jwf/
         PQxdQD43wMA5VdhLqDk9IMZTTK/Q5wqUGkjVPwDvFGdutolLseCWkPIBPmgYqmCkole6
         oe3rkqOU0XjdeUmKAF0WBiUWC1JEQtuTHAqV87jsE/oIRfkEBaNPvTgWkJVKMJzLTzJt
         WFCUSsN6ffe3y0HWtYVIZx8zp1BD9Id95+c8iMBHcPvMerBx8Qn21/ZboN9L8sJPlwoT
         LYEw==
X-Forwarded-Encrypted: i=1; AFNElJ/sXss/O1O+1Fy0hFCi82VidNXsz5rbZmarlTn0AvlJbBZqXyuwLSE7hC3C+f2uZTnhsEjGEcroeck=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyqM8ARy7xXhZkMCWwfsDCmVhLMv7wAp1ENWhdxU50S33SSEVPp
	7HsiAOneGbqDarPeER9F11CmO5vebCV6u/7nURkbrAt9jptzhUHL4Lo2
X-Gm-Gg: Acq92OFOLRMKIc5Tc/SHQ2mXT/sWA7UBSYl0Uhhi2Ov1DCc6yZgR6t1QgOJa/nYfQ18
	zI+1CHaJM/blUfZ9D5yCx6foEsP3h2gYiQHPAvpQIumexu9+banpiQSryn0MiiZZ+TQnPWlnuEA
	oVFd+611uMYN0ttLtCds3DtMsbxt/RfKi0nhm9BIuO5Pj8uMVyVXlfCUuXi4Pdbud5lSqTRp3cZ
	s+MjWf6nYi8HR8YwrDoVc4nm87BebBIG4A/tqSYeMf9FsewkQKO1B6T6QbPuYtET2BkB22PEUAT
	DSCwHEN0TKUJrY2jz/CDsi1W8OqnSLKmB+0hNBXxK4aYShhw7XVNlYoPVISBk+8b9qVDRSvFXsE
	bB4nYB1fPIIEhRGfRcDaNvuCcGA38x3vIaRiLsG1oqZMCVFmI28gVmmVd+vqvFsDBIvR1tbCBnZ
	grYAyAmMs4cMMpEFzAs3zESPa5niQ2bAe7U8AUVOMrJn9Gz+hynKJNT7g4ulEnumOM8TnN4luE4
	08=
X-Received: by 2002:a05:6402:3241:b0:681:5b59:648a with SMTP id 4fb4d7f45d1cf-683bc6b7ed1mr7201586a12.11.1779189759888;
        Tue, 19 May 2026 04:22:39 -0700 (PDT)
Message-ID: <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
Date: Tue, 19 May 2026 13:22:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
 <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
Content-Language: en-US
In-Reply-To: <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779189760-8A18BA53-3B91C3CE/10/73395122804
X-purgate-type: spam
X-purgate-size: 2640



On 5/19/26 12:55 PM, Oleksii Kurochko wrote:
> 
> 
> On 5/19/26 11:37 AM, Jan Beulich wrote:
>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot inside
>>> the domain's shared_info page for vcpus with id < XEN_LEGACY_MAX_VCPUS,
>>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>>
>>> However, it does not guard against d->shared_info being NULL.  The
>>> shared_info() macro expands to a member access through d->shared_info,
>>> so when an architecture does not allocate a shared_info page the
>>> dereference triggers UBSAN:
>>>    UBSAN: Undefined behaviour in common/domain.c:325:10
>>>    member access within null pointer of type 'struct shared_info_t'
>>>
>>> Extend the existing fallback condition to also cover the case where no
>>> shared_info page has been allocated, mapping the vcpu to dummy_vcpu_info
>>> instead. This is the correct behaviour: dummy_vcpu_info already serves
>>> as the safe stand-in for vcpus that have no usable shared_info slot.
>>>
>>> Fixes: 295514ff75506 ("common: convert vCPU info area registration")
>>
>> I question this, largely (but not only) because I also ...
>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>>> ---
>>> RISC-V does not allocate a shared_info page at the momemnt because its
>>> guests run in dom0less mode and do not use the Xen PV ABI, so
>>> d->shared_info remains NULL throughout domain lifetime.
>>
>> ... question this mode of operation. Yes, you may (for now) be able to 
>> get
>> away without, but e.g. event channels will want supporting at some point.
>> Which will require a shared info page. Better put that in place right 
>> away,
>> even if the guests you test with don't use it (yet). Certain other common
>> code also assumes d->shared_info to never be NULL for an alive domain.
>>
> 
> Would it be fine than to allocate it in arch_domain_create() ... :
> 
>      if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
>          goto fail;
> 
>      clear_page(d->shared_info);
> 
> ... but without calling share_xen_page_with_guest() after that 
> allocation as share_xen_page_with_guest() isn't implemented at the moment?

Or could it be an option for all arch-s move allocation of 
d->shared_info to domain_create() in common just after arch_domain_create()?

The only question if share_xen_page_with_guest() could be ifdef-ed 
somehow so not to block new ports to implement it from the start.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 11:32:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 11:32:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312802.1582898 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIga-00059U-Ck; Tue, 19 May 2026 11:32:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312802.1582898; Tue, 19 May 2026 11:32:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIga-00059N-AD; Tue, 19 May 2026 11:32:32 +0000
Received: by outflank-mailman (input) for mailman id 1312802;
 Tue, 19 May 2026 11:32:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPIgZ-00059G-CX
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:32:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPIgY-00DHHs-EQ
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:32:30 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c4a4b-e002-0a2a0a5209dd-0a2a4503acba-20
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:32:30 +0200
Received: from [52.101.57.44]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c4a4c-672d-0a2a45030019-3465392c5ab5-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:32:30 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO1PR03MB5828.namprd03.prod.outlook.com (2603:10b6:303:91::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Tue, 19 May
 2026 11:32:26 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Tue, 19 May 2026
 11:32:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TsxpjyZvmwRJYQpiB6L1s5GcBoSSn8DWCCuQFjYCWXd3G8zifkHYSikRUJbnKOozemf56oSLkq6epHQQ+7kCOZ0MX4u6YpijlIhXMHJdKCJk9nJOI1AOzLU+B+eb9SD/QGA8si3l4M6jUehd5opOGiTFzmhziDmaPN/sX1vAV3v7OJHKfr5kzhiyH/1uRkhVeqdmPgdmo7EhWvJM41WqNdsYT6ovsG5ktCRNB1G3Pzp683O3mJhBBKbzpUMSry37ZzjGeEbg81q3XAPezgPcWGhfwvPM38zyFRjFjYk5W1muq/zZ11HWhglHr3TLPRSDGjqhQuGCgCmAyvMYl9paYw==
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=2WAbIv+4bWbzinbg5n0TFSM9rzZ8PYFF9uqE1KnJFXs=;
 b=SRbCZwyqFu/KEo9A2EHwO/ktTDL/u8pIxQhCMfY9X+kuSR4E554SV3eZsIpwfz/fJyAFBJ+ts+1Clo31e516/TjUxu4w2XwpV23A2s+pvgAyDJA4nHwUcg7cVEzvXVAropH92jFR//RXP8WL6ABCSTjoo/D+xws/axulH97puxDXz7upiAQc9oKQZCfCKvF1sNidmVn5svg9pHYJ1mozwCbvYSVfp4tG12qTNtjxXYfFFPdl9TgmHKVchtSwgcWT/IcDDExTgjaiDa7UTA/UrN6dyVu+nJrl6qBkVAhE3Gp2Ef8uWnsHMfLmPHajY7qBLlL5BErCPVcDeaGEF6gvkQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2WAbIv+4bWbzinbg5n0TFSM9rzZ8PYFF9uqE1KnJFXs=;
 b=WDiLIaHo9azWUMdar7ArxQY7gEnhooVPwnUQkeETza2kXfKHley7F49DAN9v5GQoE7r4KREzLPtea8kBj1Poq62Ni64kvpRoKbsmcxoWcc8eK7Nz6NVjbpw5wd0Fb2PX18nZRLMhEJTYtqIS/1OYP6M4BXZNUW3r2Aaj9ucg0tQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e65d9be5-f788-42d1-9117-eef70303a1a4@citrix.com>
Date: Tue, 19 May 2026 12:32:22 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Jan Beulich <jbeulich@suse.com>
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
 <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
 <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0391.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:f::19) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CO1PR03MB5828:EE_
X-MS-Office365-Filtering-Correlation-Id: aaabedb2-182f-44a8-a513-08deb59a4d9d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|56012099003|22082099003|18002099003|11063799006|4143699003;
X-Microsoft-Antispam-Message-Info:
	BK4oeFdXNHrlmcyqRczSW9vWuc0NQv6bnMKgLxvtXCZb04iAcVHfykAfP+zuYDFlEu2fSlI7p2WKnvit2bPwHD75e+dd+xx7HRknf7tXDUb6WU9K7HBzyKAzhSd+hetQACb0UfDVLpTzKblfO6qj0nWcayVsiSoKgRrLs6nmLszZvhKPDAZpwvVQ58cANa2B/jDiEq0wp8ZFxqDo03bvKUkaGn1LYXx1626myZ6S9abxgVuhnPckYYLuion9dtPq5dbJNCmrL012jwRDLiUIfeoYzsH2H62qJXslPrB2vtBhNoqoGhcX/+ZTqBIawzYtMxqjUE5MgmrGNW+CxZkrJgG5KZs5/vcs6G8AUSlAb/9Ivswq2QSkPG+C2iP9kOKgwc/2FgVII59px+OFebMoMbhBcxH9e36aSCgK9GzedcJxkSRKI8xR25imLFtEngf7+nJ8zyXQSouBQafNTJ7HYFQVL8Q4Gw2dIENJWv3EeasbK3rTm8qn9sk3RETyajdnSAe36St9eDQTJSH+zk43NQFHI0bhmj3D38B7yxOcr9/ktLYuS6pg96/mKFBmSZViH3Tzz7kxnVgmA3O9HbnVzNuQqoaHamlSV0WNrvkVMUpnvXtPTIQm/6F5BNILmsoF60igInFqR7zxBr56MBA97j6VWOzRP6Se4PQXOcUibrLdaeEaY951GdhI3SPVRn4F
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(56012099003)(22082099003)(18002099003)(11063799006)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YUtsYVBLMnJaQ0xlRUlnamIzY2Ruc3ZnRHo4dUIvQVREbHI3WXU0aFpUMXFn?=
 =?utf-8?B?Q1ZJNWIzS1J6cld0bTVjR0ZQOUxQSnZUNDlPNGVobkk3N05hTWhsWC90azFZ?=
 =?utf-8?B?TVV3dWlmTnFTVmZrTkVpMFF4eEo2S25GWWp2ZWpNWldzdHFLMkw0VGZNeWta?=
 =?utf-8?B?NnpVbkxGKy9GRzFkb29aMllHRUR0QXVVcHVuNzFGanZCam84QU45U1FnZmVt?=
 =?utf-8?B?UExGMUtEMjdISmhEK3ZzRFhOcnhwTE1QVXVFQ0RhMnRjWlN6NzdnK3R4TDcz?=
 =?utf-8?B?Zk1FSGFwMmNFb3hmZ2hIcnpGV1FWSU9PSUp3R1ZZRkFlV2ZDNEY1bjg3blN2?=
 =?utf-8?B?dVpLdkdTVG5iaDlyamFDd0VnV0UxL3Y0NTFpbkZoTDUreTVLTjZPaFJ2VGRO?=
 =?utf-8?B?TFZMb3IzRkxkNVdrdWNBYU9CeUl2Nk1jaEVMWnhwTnB2cUlBZ2s3eVl6WGM5?=
 =?utf-8?B?WFFZQ0pJSzVnYVB4U2gvRExoS0tVNVdUOVZXVDh0bUl3U3Q0YnROclFyWG51?=
 =?utf-8?B?UjlPa2lOeEk5LzBxVUdBWDJHOS9yWHBGNVpGN0o2WHRSM2thZkFuT2V0dFBx?=
 =?utf-8?B?NnhzS0RlTG5NWFhUakJkcnFGQThZTnJkU2RpWTUzZEhyOVlzbjZURlYweGQy?=
 =?utf-8?B?SVFONnpsd3d4NFd2UHZuRXRLNmg1eTYzSS9LM0FKRDFubldBLzFFWGJ5blFS?=
 =?utf-8?B?MDlVM1I2aThnVEsvV3Z4LzkrNGUxbFVDTERCWVV4WDM3UjR5OXg4cytUbzJJ?=
 =?utf-8?B?NSsxY0d6RER5WUVnY1JTYVJHRFBOdzVvWVRkSGtaeW11dEdmeWtreGdLU20w?=
 =?utf-8?B?d05aTDNtVGRHajJxcUM1aVNoSFVmM2NNa01WQTFTMk5RckJ1UjluUGJ3M0Fa?=
 =?utf-8?B?UjBITElqMEFvQUxlZk1BS1c0NmRxM3lnYUh6QVAxbzh5QVVjQkVhUldybTBF?=
 =?utf-8?B?amFYOWtEK2RrYnFuVGZuSW01ZlN3ZytmOTFQeG1PNjRkT3VDc3VpWlNhZ1JO?=
 =?utf-8?B?SmNKbEpKZ3ZqVEEvUnBxcXgrVmRlRE4vZHd1MlFyTExGQ1lPNXc2UkhGSkx3?=
 =?utf-8?B?VDVTeUlNSjRYRERsa3hzTUppcGExZTN3UXh4bGFENWtOVW4xdEl0LzhEeUdk?=
 =?utf-8?B?Y1poOTM2Tk0vdFRZakRlQTluejNwRnBUb1I0cWNPRFdkSTlHODZiZWZCZU1n?=
 =?utf-8?B?ODhLeWg1SGRvcS91R2E1UFNsaWF4RVBiVmYvVWNTQnVSTVhXbFA5NjZ0QzFx?=
 =?utf-8?B?aTZKd0JFOHh1bW1TL3NrU2dtZXhPWGpvbHQvbVZjNXRDN3A4dFFLWkVlZE8v?=
 =?utf-8?B?L25xa3FzWkdNaDhpb090UVNqeStpelBLQ1ZneSsyVElvWHFIdzFMVGhLek81?=
 =?utf-8?B?M3daTUs2K2R3OG95UHVWTjZ2a3pLcWJWZjRpMStuUlZiVzAzYVh2SFpYRmE0?=
 =?utf-8?B?c1R6bkw0TnRleTlXTktGd0tDM3AwemE5VzkwSmQwU3JsR2RnUUFPU3RveWho?=
 =?utf-8?B?OW1tSERtWlQ5VnFoVTd4bGhMR3A1TEsvUVVnY25mUitWN04yRGFVc0J6VHhL?=
 =?utf-8?B?RTRuR3pyZUtQUzNJWjhhL0pKNGh2Uko2TDVkYnpBVVNMa21BZktOR2t1TmQ0?=
 =?utf-8?B?KzR4SjBEYm56MXcwWTMrL2hvNFNYL0k1V1lwMXhLL0FNUG8vbTlaOU5mUGdN?=
 =?utf-8?B?ZVhjUzJCV21tQ1RISjQxdmJoOUFVcXZkWU5kb2Jacms4dDh3ay9LOC8wR21I?=
 =?utf-8?B?by9wMno1ZjBEckRVbU16cWw5aERlNm1Ra1hTS2hkYm1xZGVyTkNhdFFVN2Ur?=
 =?utf-8?B?bGhOMnArYUx5eVpLY3BucVM2c3puZnlQZ0swbFdzcDZFZXgxbTBUb3N0Q3ZP?=
 =?utf-8?B?SjFQeHJ0dUdxS29oMTN3a2x0SkZBTkNjL0xiNmRMaFV3RzBuVS9HOUlJM1M4?=
 =?utf-8?B?K20vZE54QlAwc1JrMEhnOE5xQkgycUduWW9LS1IveWxTMk5YWk92c1BCS01J?=
 =?utf-8?B?d1VYRVJrdWp0ME5nWjFnNVIzaDh3YjBmWEZRMHVOL1dJOGlXUjZEZXRsZjE3?=
 =?utf-8?B?SXBXa0JsZ0pFSVZCZ0QzZDVZekFpeE8yK2NZSUR2NmhNeTN5S085R0w3NjVU?=
 =?utf-8?B?RkgvTFQ5Rk1XTVNlUVlSQnR3UTVjZzJlUlF0TjcyUllwRktiS3kzQy83ZEhj?=
 =?utf-8?B?bHJHRWVIcmsyQ2R5K3Yrbm9EazFmdC9lL2VUZ0lkdEFaN3RiTGRwd0EzS05W?=
 =?utf-8?B?QWNIM1N5Nk5WaDZIMFdJVWlHajF2QVJUcFRFTEQ3RFpPWUtOWlR6TXdHWkNM?=
 =?utf-8?B?aXlXTndTbGpnbVlmNXFEQTlQcjlieDhvNzY3UVFKSzhWaStodEU5N3JyaE14?=
 =?utf-8?Q?bH2jQ6kdAprpkre8=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: aaabedb2-182f-44a8-a513-08deb59a4d9d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 11:32:26.6029
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: aaCA8lWH8Y84pLKOjwkDz7PJvNvOSd5AkEJSkx+e8yC1bAO3FTjM/J2e8t+qbCoKTQpOBvORump7616ST5nmQPrcUPJmGgnN2+SrixK77/U=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB5828
X-purgate-ID: tlsNG-33051d/1779190350-38D73938-BA4EA418/10/73395122804
X-purgate-type: spam
X-purgate-size: 2987

On 19/05/2026 12:22 pm, Oleksii Kurochko wrote:
>
>
> On 5/19/26 12:55 PM, Oleksii Kurochko wrote:
>>
>>
>> On 5/19/26 11:37 AM, Jan Beulich wrote:
>>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot
>>>> inside
>>>> the domain's shared_info page for vcpus with id <
>>>> XEN_LEGACY_MAX_VCPUS,
>>>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>>>
>>>> However, it does not guard against d->shared_info being NULL.  The
>>>> shared_info() macro expands to a member access through d->shared_info,
>>>> so when an architecture does not allocate a shared_info page the
>>>> dereference triggers UBSAN:
>>>>    UBSAN: Undefined behaviour in common/domain.c:325:10
>>>>    member access within null pointer of type 'struct shared_info_t'
>>>>
>>>> Extend the existing fallback condition to also cover the case where no
>>>> shared_info page has been allocated, mapping the vcpu to
>>>> dummy_vcpu_info
>>>> instead. This is the correct behaviour: dummy_vcpu_info already serves
>>>> as the safe stand-in for vcpus that have no usable shared_info slot.
>>>>
>>>> Fixes: 295514ff75506 ("common: convert vCPU info area registration")
>>>
>>> I question this, largely (but not only) because I also ...
>>>
>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>>>> ---
>>>> RISC-V does not allocate a shared_info page at the momemnt because its
>>>> guests run in dom0less mode and do not use the Xen PV ABI, so
>>>> d->shared_info remains NULL throughout domain lifetime.
>>>
>>> ... question this mode of operation. Yes, you may (for now) be able
>>> to get
>>> away without, but e.g. event channels will want supporting at some
>>> point.
>>> Which will require a shared info page. Better put that in place
>>> right away,
>>> even if the guests you test with don't use it (yet). Certain other
>>> common
>>> code also assumes d->shared_info to never be NULL for an alive domain.
>>>
>>
>> Would it be fine than to allocate it in arch_domain_create() ... :
>>
>>      if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
>>          goto fail;
>>
>>      clear_page(d->shared_info);
>>
>> ... but without calling share_xen_page_with_guest() after that
>> allocation as share_xen_page_with_guest() isn't implemented at the
>> moment?
>
> Or could it be an option for all arch-s move allocation of
> d->shared_info to domain_create() in common just after
> arch_domain_create()?
>
> The only question if share_xen_page_with_guest() could be ifdef-ed
> somehow so not to block new ports to implement it from the start.

shared_info is an x86-PV-ism which escaped into HVM and then infected
ARM too.

Sadly it's ABI there, but this is one of many areas where I really want
RISC-V not to inherit the mistakes of prior ports.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue May 19 11:33:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 11:33:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312811.1582908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIhj-0005gc-Qt; Tue, 19 May 2026 11:33:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312811.1582908; Tue, 19 May 2026 11:33:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIhj-0005gV-OF; Tue, 19 May 2026 11:33:43 +0000
Received: by outflank-mailman (input) for mailman id 1312811;
 Tue, 19 May 2026 11:33:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPIhi-0005gN-LC
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:33:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPIhi-00DHkX-11
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:33:42 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c4a95-5cb7-0a2a0a5109dd-0a2a450485be-8
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:33:41 +0200
Received: from [209.85.218.45] (helo=mail-ej1-f45.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c4a95-1dec-0a2a45040019-d155da2dcd64-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:33:41 +0200
Received: by mail-ej1-f45.google.com with SMTP id
 a640c23a62f3a-bcd0111ea98so530516966b.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 04:33:41 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4e21207sm681148866b.42.2026.05.19.04.33.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 04:33:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779190421; x=1779795221; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=kgR9coyv9rvSNjntN2gIo1P4RQE/qG6sUOMF9mM5dMI=;
        b=mm0/yez+ZLOE6PshkcKvTap+RXQJCMSdDXHkn7i/8DA8QfDnkED6QLDZY8Zfk8yFVl
         UoJCjpVVJodhiyNUsn6+3lPr3kvXjVOOhLMLZqAVnQhJLqNYXvyXM2C6Kt+syZ+RNUAc
         1VsYFar746QQS7BMFVWcCWVdZcAK96hUQNUSyp4aZNI3FbzJok1GM153S2vzi2VnJR+5
         8xOcvStRlYB5T0T1oqoQfDl1X+5GVHzxQY1nOW0v8yCH3Rryn9rBJlq6z0FijUPp0ygn
         DJ/aOneyE3RrFswAM8K3rybQhf+dODFe0eJuXBSskWsQlgDMc2M/PswMTBEaMk89ePaK
         chCw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779190421; x=1779795221;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=kgR9coyv9rvSNjntN2gIo1P4RQE/qG6sUOMF9mM5dMI=;
        b=peBhPdKiGzeRAnb/EaTm7FqEkirbhPnoIKI5rdpmvpd3+34srb1sdolo/ZteCi/Iuo
         3ZIj/JLL9vIjsGRSY9KU1PrGlYJzWmOFHcDXtdjcDNMGMtQV1q2Ao4YweHX9xqTjhclz
         fF0qDpAIM7JQeao2yb1mKzWEPnqKWUKHuOPE1YL+GMXT+49qg3DcWW4Eaah1qtccwayz
         /pn0K6cSbgl1jGaxfaWlFZhdXm/PJXBNpf4dm0xX+jwfx0MxX8X+1pOAl81/IeAjaVPP
         XGGFkhmLaW+zf7mXt/lIz3hlvDHyecB5a2l4qGmcM0XrstFxttKLBIPmDpypgddTPZZ+
         wSbQ==
X-Forwarded-Encrypted: i=1; AFNElJ/3FV6TyWgxdGRHL6Jkjo5+uSiBftay7HsRNNSP4CZMhCzmyVP56v9DrGxjw+usUJ2UrGc0J8Z+2Kg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTNGUQK985uUvoMU6DLHiqMiWMvA1l/+yxIKQPv4gWrbzz+mCk
	gDH8W2WKLoDC6nJz0nVNvGM8Di5aHawDIFDmBXvEGQBocUfBiPVDEzj5
X-Gm-Gg: Acq92OGGzjll+74Haw4iSdYcx2zSaF6pe+f1g4KYTxBEWtn0vu3LHvF4iYvCiQCTYEp
	f33qPXHzFjBMMZceFew0LhEKyMbhgJYrJrTNbZuB+euiYWawxOZZ3ThLXw2tntLicjVEU0EUzEH
	QWXpZJvnXRved4NLdg4ZzOo8/TSgJHJk21V/cBW4md/gMYcPhjpYiqmGE9qxD4RHO4Frag8AEKM
	xyppQjfNWXFvpwNDpoZbszU2Wyss4F5RLEex6HIGMyLVBicdqaUNta6WY4yvzJpgf4uQfEpEklT
	FyjUufN9UKxnz+id3bzIIuz7i6QC1HUjBSxKX8/V52bwpTqX2Cy99fivoEcMSRbYgAeuFjqUhX3
	RM3DxWvJKUvRNHNXXYrzYcDQttXds/qLzzAHvlxpSaUO4nwryn3Zyg8l8MTB6ZoWbg9GFF2c2UF
	2Ogge+JgpDnDA/I5W6bMOOubleZQrEbiD50EvY4K4R7rruVFilSRNoOpTxoBsIk1vhVefnWFZei
	/o=
X-Received: by 2002:a17:907:a286:b0:bd3:2b8a:2164 with SMTP id a640c23a62f3a-bd517842e7dmr1090907366b.16.1779190420902;
        Tue, 19 May 2026 04:33:40 -0700 (PDT)
Message-ID: <244209c6-f707-4418-9513-1ef65d1d97db@gmail.com>
Date: Tue, 19 May 2026 13:33:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 04/26] xen/riscv: implement prerequisites for
 domain_create()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <e4d6f36bcdf13e8fc12e8769dd965954c5f45b97.1778250616.git.oleksii.kurochko@gmail.com>
 <5c047204-09ac-49b7-b9b3-c6e1c7b7f079@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <5c047204-09ac-49b7-b9b3-c6e1c7b7f079@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1779190421-42D643FF-D04CF604/10/73395122804
X-purgate-type: spam
X-purgate-size: 1381



On 5/18/26 5:43 PM, Jan Beulich wrote:
> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/domain.c
>> +++ b/xen/arch/riscv/domain.c
>> @@ -289,6 +289,31 @@ void sync_vcpu_execstate(struct vcpu *v)
>>       /* Nothing to do -- no lazy switching */
>>   }
>>   
>> +int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>> +{
>> +    return 0;
>> +}
>> +
>> +int arch_domain_create(struct domain *d,
>> +                       struct xen_domctl_createdomain *config,
>> +                       unsigned int flags)
>> +{
>> +    int rc = 0;
>> +
>> +    if ( is_idle_domain(d) )
>> +        return 0;
>> +
>> +    if ( (rc = p2m_init(d, config)) != 0)
>> +        goto fail;
>> +
>> +    return rc;
>> +
>> + fail:
>> +    d->is_dying = DOMDYING_dead;
> 
> domain_create() does this as well. Is it really needed here?

Considering that domain wasn't created and thereby scheduled that 
nothing will use d->is_dying and so it could be dropped or moved to
arch_domain_destroy().

> 
>> +    arch_domain_destroy(d);
> 
> This continues to be a stub, i.e. upon encountering any kind of error one
> would hit the BUG_ON() there.

I think that for current stage of development it is fine.

Would it be better change BUG_ON() to printk()? And add proper 
implementation a little bit later?

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 11:47:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 11:47:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312843.1583001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIv2-0008R8-Qz; Tue, 19 May 2026 11:47:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312843.1583001; Tue, 19 May 2026 11:47:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIv2-0008R1-Nh; Tue, 19 May 2026 11:47:28 +0000
Received: by outflank-mailman (input) for mailman id 1312843;
 Tue, 19 May 2026 11:47:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPIv1-0008PR-Vo
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:47:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPIuz-009FXO-C5
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:47:25 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c4dc8-bab6-0a2a0a5309dd-0a2a4501e64c-12
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:47:25 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c4dcd-c1f2-0a2a45010019-d155dd31e15c-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:47:25 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-4585a116a4aso2811367f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 04:47:25 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da0a17a22sm45400975f8f.22.2026.05.19.04.47.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 04:47:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779191244; x=1779796044; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=51zVMcdjsyEuHlZvWuxVkpFkf5XLES/mFx0Ss9JKPdY=;
        b=Sf1XH4XEzjY9eiGBj7MxUbk964O9hd7sQXRh7ChW65W44nAxEbEpTN+BQoGpVifPS9
         oFDll/k2uWtv7xtGjwcADjS/mxIyUGO2G+IzzPp7nZP+VA1s1TqWmQ1uSAhNPSkQqtnE
         fPQrTG6os0YLaC8FFTAnnPj5UHc4q7Agfxc9tGkUHaR5XdChOQyXv293OdSA/ysXhR4o
         vOrl8L7GNM/eDtTtTTBKTIhVx6EK0APkkdCJDbwI6koPmLMPkDLySD2UnTTc4g1n99iX
         qJfYK0p37rdm03ZD3a8SNRk/j6aIFpIOwhFav/K/WVvwl3UVGZsmw5IjvX+EVT0GxZyc
         EUuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779191244; x=1779796044;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=51zVMcdjsyEuHlZvWuxVkpFkf5XLES/mFx0Ss9JKPdY=;
        b=Zztivnw5Sg0emG0N0uu0xyfrJkXk5K3I3da9duTLCnZa8OHY3xTbAZJUBbY6g+0S2/
         4JvF5c98Zq4IEZlloxiN+T2k/WxIEIgHsiqOIvO6fSyj3YA7ETy29vP93BDtX0arCeF6
         af8FPvpOvwUWNQX5gm3blLBVsYPrJ0ruuYUJ/EWjb+6J19oNgKSH5Ng5oDoxW9UWqYcg
         yKk4iOmT4KPX5nM7QRaehPR5HEgKp21dxBevGvJZg/WJweaa2CIsqCL9WF298/V/66xg
         gBeQociWK3U7+zZnwTdGO0hHzz/fFNtXndh43l6HsLIPbE1lrXH9ltbyiNF+9TqFgMZx
         RrXA==
X-Forwarded-Encrypted: i=1; AFNElJ+fkgSyn/zH73zpknKO5fY39JbcTm6qXw4HbUQwTNp85rql9S7lhTmKK5tK7hLNXaBAtpRU/HPXBJo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz896P+ewFI3K5VmUjT4FgxxaiP4r/UOWNZQvATpkoUv6DmvJvs
	InU9DV/foU5UVWvFqHbw/aVH0nASEdPMvgSrdFAH4VEnNUw12i6hS+Rqi6qcRtEslg==
X-Gm-Gg: Acq92OHXL8lxodsYdoavLe2kTgjbn3KxXHt+qGvpRzWXMHG/TWFj486WVSiA91pqSb3
	0NZgCmIYmkRZc8/k55z1m5iwTr5J9rrvD72DRO8inJdw09lyORuPqj/DkuJG8I5Bq8vkpcyr7JA
	wn6wnjBr3onMTfg9oRH9HbTEnjOkcmxZXyRQLFQqF5jF64+ZMSkYsux7Fqc0Vf6lADD0TOELffq
	yMa7dh9I2kmLdWEnsqpw+Olq/d9tZlnZl6zvdI9aXW7kGOxJHreF3wC1vrdDmKugFIsc6oSDvpt
	neW8myTnXHWGUCzPsXruByzcMNvBz9Jfm62kP/W+nxBlOixFiXaaDhPuijzdmdOnEVcoc0cEAuB
	5zp2V+Fw+OMhMs8ehsqn4qqXZbe6s3AiF4FEMwywtPPgFleEOSPm3TsrKaaNvZX+m4tNkhW9GXR
	pXChcS6avqfZ8FbKQErSXINii3J7Ul/cd4h/+qHiKVHBEGGZFJyFHVfXqilS627N6eN0S9X1nVE
	p6Q/9/QwizqjwQ=
X-Received: by 2002:a05:6000:1845:b0:43d:309b:9c4f with SMTP id ffacd0b85a97d-45e5c57d2fdmr30802800f8f.6.1779191244590;
        Tue, 19 May 2026 04:47:24 -0700 (PDT)
Message-ID: <71dcfb4f-c3ab-4b19-b91d-6c3e7bdfcbc9@suse.com>
Date: Tue, 19 May 2026 13:47:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 04/26] xen/riscv: implement prerequisites for
 domain_create()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <e4d6f36bcdf13e8fc12e8769dd965954c5f45b97.1778250616.git.oleksii.kurochko@gmail.com>
 <5c047204-09ac-49b7-b9b3-c6e1c7b7f079@suse.com>
 <244209c6-f707-4418-9513-1ef65d1d97db@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <244209c6-f707-4418-9513-1ef65d1d97db@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1779191245-B7754FF4-E3099893/0/0
X-purgate-type: clean
X-purgate-size: 1503

On 19.05.2026 13:33, Oleksii Kurochko wrote:
> On 5/18/26 5:43 PM, Jan Beulich wrote:
>> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/domain.c
>>> +++ b/xen/arch/riscv/domain.c
>>> @@ -289,6 +289,31 @@ void sync_vcpu_execstate(struct vcpu *v)
>>>       /* Nothing to do -- no lazy switching */
>>>   }
>>>   
>>> +int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>>> +{
>>> +    return 0;
>>> +}
>>> +
>>> +int arch_domain_create(struct domain *d,
>>> +                       struct xen_domctl_createdomain *config,
>>> +                       unsigned int flags)
>>> +{
>>> +    int rc = 0;
>>> +
>>> +    if ( is_idle_domain(d) )
>>> +        return 0;
>>> +
>>> +    if ( (rc = p2m_init(d, config)) != 0)
>>> +        goto fail;
>>> +
>>> +    return rc;
>>> +
>>> + fail:
>>> +    d->is_dying = DOMDYING_dead;
>>
>> domain_create() does this as well. Is it really needed here?
> 
> Considering that domain wasn't created and thereby scheduled that 
> nothing will use d->is_dying and so it could be dropped or moved to
> arch_domain_destroy().
> 
>>
>>> +    arch_domain_destroy(d);
>>
>> This continues to be a stub, i.e. upon encountering any kind of error one
>> would hit the BUG_ON() there.
> 
> I think that for current stage of development it is fine.
> 
> Would it be better change BUG_ON() to printk()? And add proper 
> implementation a little bit later?

That may be acceptable, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 11:48:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 11:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312849.1583015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIwQ-0000oi-Bv; Tue, 19 May 2026 11:48:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312849.1583015; Tue, 19 May 2026 11:48:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIwQ-0000nb-77; Tue, 19 May 2026 11:48:54 +0000
Received: by outflank-mailman (input) for mailman id 1312849;
 Tue, 19 May 2026 11:48:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPIwO-0000lg-LV
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:48:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPIwO-001v21-1B
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:48:52 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c4e05-bab6-0a2a0a5309dd-0a2a450390fe-48
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:48:51 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c4e22-672d-0a2a45030019-d155802cbd6b-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:48:50 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-488b0046078so31205555e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 04:48:50 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe5e9d5d9sm376080335e9.15.2026.05.19.04.48.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 04:48:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779191330; x=1779796130; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=9xweuh/3vGAVF5+Ir+VMpBZdMEtPfAozc94TAl2/ZOI=;
        b=askT7LmFPmXxWCa27YugitSTSy7G5l/2bbrKdnKj79l4MnxPiSv2ZldHb5RIcIVNjf
         YOTGki44tL4rYtE+FDI2O3IShC2fQL0uIAVXLgFD75kjwPJjJSBIcnuepbFJVI4Q1scp
         eF1fkfFh3gSjUhXyeXmweUJKgYXZH5GlLmoKPyR7m5tcoSE/wZ44rh5dqR4h8GwfzT+y
         372duAASlHiaeW+z1urXBFfprbPmra3IFhRPHwsK+SOTVBjeGo4MP0jKIUOG4Olkxwnv
         q++MEXT4l9kPXPi79NzgusTywmyxiCqP2l05FvGwdmhOdCFo4Q0an6RkWGd4usB0UMto
         yaow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779191330; x=1779796130;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=9xweuh/3vGAVF5+Ir+VMpBZdMEtPfAozc94TAl2/ZOI=;
        b=tIzExK2jXtnfAsFkPOG0Xm5jbxQUv+FTjYFWKM5XOMs0FqnfRBozY0RZDCIaHha+Fu
         JK0QLWHB/i+O1Eb8o1Dd3n+GuFL6BgLh6Uz7I5ULPDMzJzOwl2U+8i8NFnRpmW9z4gt5
         m2fzo9Uu3trg4VJpbvV9H/FpbUJ2ysdTxrLbTkNKJWjFNRvNrZ8elFljDFjaUC9LKq4G
         Dlvigp4uBhwXX6ghmgQjHN+FmdTo8ILeXJIfvJpBDnxN7YBx/gUSVCMPQB5q2W1DsAw8
         KLBv/daDdxq/2MdLslG50r8hfaQM8PLUSGLY4IMmtGy6FDCbmlZ32c6vUxkVD9tund0C
         0Srw==
X-Forwarded-Encrypted: i=1; AFNElJ8uRPLX/oXSU5/WTcIYRXIlWy62At7D0gDUS0Nx/mk/Xz02qqzx+Xct/vH6RVpyyhxmSXAPhIrxtDs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxsrrvZ6CwYx+k2G63h12SKCC6Rf6V1Z2STrnMM7rihb8PiYATg
	Lt7Z+UFhw7LGwzGeS3flnfh/GT1p15/P5GgHzdryW36U/tGipyS+2MuJ
X-Gm-Gg: Acq92OEfcx4AAFYbVVfc0vcUtE+bgty1+simZ0r7dK5FB8/HqGSaCrDoiedXrLfv54I
	PHAiCLyQyJf9jBc5RikaaRa+bVj78LGc0ZHuPP+elrU0s2R5Jlfh64O8m4bJDFeIHlvzRkaOlEk
	EU6lMkbt7ya7cWfusGB/i/CsdnuTm+eVOi+kxgcXvp8u/BdBdXL37pe9DtO/YFTlclhupy0kah+
	oxezxc0G+AwsvfgjOmAYqi7B7hhFgybMw4bb0naPCLbZ4nTeREazabKKfnig8re5mfG0tLRZ1T+
	GSSsf4fKCqw/r0OHxZQpZc/hh4zbUbXBIhCriGI18fuwT5SI7P9VJcD+AUQLEyM4wDDjOfR3Nvi
	hDsKe6eWLK416aOHHdrW+rbWH+wah+WPCkNaqVkFWr3hSLNCw38owG9q35T6oeXLJLZi4KMao5J
	JWakz74hK+X+4LGBa5BUH1gIrFRTwA/K/ZAT+hPFHcRAzRoiJ6mVu021QlXF/ib84Dx8fw2OsjG
	6OcIVce174fug==
X-Received: by 2002:a05:600c:c10b:b0:489:1c2d:211e with SMTP id 5b1f17b1804b1-48fe5fcdedemr228875815e9.5.1779191330262;
        Tue, 19 May 2026 04:48:50 -0700 (PDT)
Message-ID: <1de1cff5-65c0-4f59-a55a-f563b48edb73@gmail.com>
Date: Tue, 19 May 2026 13:48:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
 <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
 <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
 <e65d9be5-f788-42d1-9117-eef70303a1a4@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <e65d9be5-f788-42d1-9117-eef70303a1a4@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779191330-38F72938-2D792059/10/73395122804
X-purgate-type: spam
X-purgate-size: 3313



On 5/19/26 1:32 PM, Andrew Cooper wrote:
> On 19/05/2026 12:22 pm, Oleksii Kurochko wrote:
>>
>>
>> On 5/19/26 12:55 PM, Oleksii Kurochko wrote:
>>>
>>>
>>> On 5/19/26 11:37 AM, Jan Beulich wrote:
>>>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>>>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot
>>>>> inside
>>>>> the domain's shared_info page for vcpus with id <
>>>>> XEN_LEGACY_MAX_VCPUS,
>>>>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>>>>
>>>>> However, it does not guard against d->shared_info being NULL.  The
>>>>> shared_info() macro expands to a member access through d->shared_info,
>>>>> so when an architecture does not allocate a shared_info page the
>>>>> dereference triggers UBSAN:
>>>>>     UBSAN: Undefined behaviour in common/domain.c:325:10
>>>>>     member access within null pointer of type 'struct shared_info_t'
>>>>>
>>>>> Extend the existing fallback condition to also cover the case where no
>>>>> shared_info page has been allocated, mapping the vcpu to
>>>>> dummy_vcpu_info
>>>>> instead. This is the correct behaviour: dummy_vcpu_info already serves
>>>>> as the safe stand-in for vcpus that have no usable shared_info slot.
>>>>>
>>>>> Fixes: 295514ff75506 ("common: convert vCPU info area registration")
>>>>
>>>> I question this, largely (but not only) because I also ...
>>>>
>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>>>>> ---
>>>>> RISC-V does not allocate a shared_info page at the momemnt because its
>>>>> guests run in dom0less mode and do not use the Xen PV ABI, so
>>>>> d->shared_info remains NULL throughout domain lifetime.
>>>>
>>>> ... question this mode of operation. Yes, you may (for now) be able
>>>> to get
>>>> away without, but e.g. event channels will want supporting at some
>>>> point.
>>>> Which will require a shared info page. Better put that in place
>>>> right away,
>>>> even if the guests you test with don't use it (yet). Certain other
>>>> common
>>>> code also assumes d->shared_info to never be NULL for an alive domain.
>>>>
>>>
>>> Would it be fine than to allocate it in arch_domain_create() ... :
>>>
>>>       if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
>>>           goto fail;
>>>
>>>       clear_page(d->shared_info);
>>>
>>> ... but without calling share_xen_page_with_guest() after that
>>> allocation as share_xen_page_with_guest() isn't implemented at the
>>> moment?
>>
>> Or could it be an option for all arch-s move allocation of
>> d->shared_info to domain_create() in common just after
>> arch_domain_create()?
>>
>> The only question if share_xen_page_with_guest() could be ifdef-ed
>> somehow so not to block new ports to implement it from the start.
> 
> shared_info is an x86-PV-ism which escaped into HVM and then infected
> ARM too.
> 
> Sadly it's ABI there, but this is one of many areas where I really want
> RISC-V not to inherit the mistakes of prior ports.
> 

Could you please clarify what could be done better now? It seems like 
shared_info is used in a lot of places in common code base and it is 
needed for event channel stuff for example.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 11:48:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 11:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312848.1583010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIwQ-0000ly-4f; Tue, 19 May 2026 11:48:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312848.1583010; Tue, 19 May 2026 11:48:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIwQ-0000lr-1E; Tue, 19 May 2026 11:48:54 +0000
Received: by outflank-mailman (input) for mailman id 1312848;
 Tue, 19 May 2026 11:48:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPIwO-0000lf-KV
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:48:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPIwO-001v21-00
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:48:52 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c4e20-bab6-0a2a0a5309dd-0a2a4507b1c4-10
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:48:51 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c4e23-229c-0a2a45070019-d1558033f114-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:48:51 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-488ab2db91aso35861235e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 04:48:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe5cab818sm333760075e9.14.2026.05.19.04.48.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 04:48:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779191331; x=1779796131; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6W3n8aTIsPypIm8HYvpHEaTDHRf/e3rY3aHufZK+De8=;
        b=TY/j9R76YR3Yf9KuREEfzlj7V2d3vnmPv00p+xfOvPlb4gB7CF4ssW73Wjl3yYOWR1
         BIJTzr0Y0Jx00g0k2QymyZLrvrJk6yiMwfgQRXG75Hb6hDFzst9Eh3ad7P2bECM31d/U
         HZ6muIaPSUzwCEwx4WYIj5Yzo/aCmfZ795EvU4n1cnOwD8hXXi6gYaW8p7EBfXS9llA5
         kTPYQJa0X4GRrPu4f1e5hNP8Tz4T3T5HCFoRvT9PbHN9o4pUvqHQ9dxtu1OAUaM860UT
         bAq7bmJXBEe2+i6azVhwBHcHNHo6Epj6DC6ai3fm395jqOXJn7MBYCmzWUt9Aqvt/chq
         LPtQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779191331; x=1779796131;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6W3n8aTIsPypIm8HYvpHEaTDHRf/e3rY3aHufZK+De8=;
        b=Cja8T2hRVM6LSrgXi6mIlO5Ai1mED/uK7VUJo7c7LI93+nJ1P5Mi0jJZlu+T2dHVBh
         BbWHvDKtObWARMfWz5GeHHPHOuf2WnLADUKB4rW+mqcG+XGC3Q5cVjZZMzWzRlUvED4P
         ntO8Um1wuStcyf7jU0nVDkXOZv2RkdMFQViSk7h+gIVPocAhLfQRFtcyaTNPk06vN7zI
         Swn/x6eb2GV1INEm6gllQQWL1MnzAlkC5VLDv8xCTxyJ38YOmoXPwX3Ud8qn0kJZLdPl
         ik/QuRgLmazqUjqwu+0SEixPK2ooJY79uaBb1PI8wK4b6yVrLA33sK4pA2bECnnNuzP6
         VO6Q==
X-Forwarded-Encrypted: i=1; AFNElJ/1MC+IQvJ1wAVIgcZaJD0LOvh7tqpAryLG0b4uDGtZTpjgbw7zcti8d4aWKHEd/BG9McC92UYk3Lk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyz3mzD3l6G72IycVWqFA4ZuHo+6H9ETs2qWqn7glKNp5xy/tFd
	viyZcoMYM0vCwSRjTUhYcAG1iYPiyip/W7mkjUPVP3tEBR+TkIWTc6WgRQlsqwBBKw==
X-Gm-Gg: Acq92OGS5h0vbcnOiMcgQmNDLGd5H3JYxTt1hgDELEvr9zo0vi/cwJREJyoyeFGOKmF
	cXxeplKMbiA8knQMZsLl0jGkb8uC0fxOV3uG58bTK6yWNpC5fA9uioSka4dwWpHVd5OMBSGpjck
	M4GbOgzai3Kc53g7wOkX4U6ftlZNYKDZtcfvDP3cxM25IcGz6v5wcSAccqXRWG1rLtQ1A+MImMW
	39xFjm2+0K45PLeLIKqBgwePwuUb+imLDns/N99JfjSo/v+LaWLq8dKTDzOmRFPHG6YJooTmi0r
	gyGNJ0P/ttpVMPq64Z12816XSuHQycK1OkPyaX0s6FS1+wSjnpf6oPsP5ejSQO/mJQTwxMEMZad
	rM3VrzOVrvqzwf70OSA1C+8s1RzfTW62u09IUy3HV+lt0bANgI417uULQTVzV/8l8MR+ERvm5jh
	GWMhap0cpnphIh1Ki68eSM3B0xzzNYAQyFxH2ftr9/8+od4C9r/6FCnXnvUn08ywXixk5az9AIW
	gZh1jcZs/qDyOA=
X-Received: by 2002:a05:600c:4fc9:b0:488:a2ac:a334 with SMTP id 5b1f17b1804b1-48fe60e4794mr275877675e9.3.1779191331252;
        Tue, 19 May 2026 04:48:51 -0700 (PDT)
Message-ID: <51bee66a-6b52-4c14-9832-d1a5dae8c221@suse.com>
Date: Tue, 19 May 2026 13:48:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] xen/riscv: fix switch_stack_and_jump()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <1ac102874c8f7190ea09787a035692b03e4b46cf.1779179301.git.oleksii.kurochko@gmail.com>
 <5f8850b7-11db-4d78-8353-6e0580bd397b@suse.com>
 <5c348320-099e-4511-842b-4d352d641c10@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5c348320-099e-4511-842b-4d352d641c10@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1779191331-0B374C48-E5C0CB79/0/0
X-purgate-type: clean
X-purgate-size: 3378

On 19.05.2026 12:50, Oleksii Kurochko wrote:
> 
> 
> On 5/19/26 11:28 AM, Jan Beulich wrote:
>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>> The following compilation issue occurs when UBSAN related stuff is enabled:
>>> prelink.o: in function `smp_processor_id':
>>>    /build/xen/./arch/riscv/include/asm/current.h:46:(.init.text+0x274e2):
>>>    relocation truncated to fit: R_RISCV_JAL against `init_done'
>>> make[2]: *** [arch/riscv/Makefile:45: xen-syms] Error 1
>>
>> There's no init_done() as of yet.
> 
> It was found based on downstream version of RISC-V port.
> 
>>
>>> The switch_stack_and_jump macro uses "j " #fn which assembles to
>>> JAL x0, init_done is a RISC-V J-type instruction with only ±1MB range.
>>>
>>> Without UBSAN, .init.text is small enough that init_done (which lives in
>>> .text, not .init.text) is within 1MB of the JAL. With UBSAN enabled, all
>>> the instrumentation calls bloat .init.text well past 1MB, so init_done
>>> is now >1MB away from the JAL. The linker tries to truncate the 20-bit
>>> J-type offset and fails.
>>
>> .init.text is well below 64k right now. Are you telling us that it grows
>> by more than a factor of 16 when UBSAN is enabled? IOW while the change
>> may indeed be needed, I question this explanation. .text growth may matter
>> as well, and e.g. .rodata (living between both sections) might also grow.
> 
> No, it won't grow so much.
> 
> With UBSAN enabled:
> 
> $ objdump -h xen/prelink.o
> 
> xen/prelink.o:     file format elf64-little
> 
> Sections:
> Idx Name          Size      VMA               LMA               File off
>    0 .text         0011c79e  0000000000000000  0000000000000000  00000040
>                    CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
>    1 .init.text    000285fe  0000000000000000  0000000000000000  0011c7de
>                    CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
> 
> With UBSAN, .text itself is 0x11c79e ≈ 1.11 MiB — already exceeding the 
> JAL range on its own. Even if .init.text directly followed .text (which 
> it doesn't), a call from .init.text to a symbol near the start of .text 
> would be ~1.11 MiB away. init_done likely sits somewhere specific within 
> .text rather than at its very end, but add the .rodata + .data sections 
> on top and the gap is comfortably past ±1 MiB.
> 
> As a result, the target symbol init_done may end up outside the range 
> supported by the R_RISCV_JAL relocation, which is limited to 
> approximately ±1 MiB.
> 
> Without UBSAN enabled:
> 
> xen/prelink.o:     file format elf64-little
> 
> Sections:
> Idx Name          Size      VMA               LMA               File off
>    0 .text         00044618  0000000000000000  0000000000000000  00000040
>                    CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
>    1 .init.text    00012c72  0000000000000000  0000000000000000  00044658
>                    CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
> 
> Does it make sense now? I can use the text above for commit message 
> instead of what is mentioned now for more accuracy.
> 
> Would it be better to send this patch when this issue will occur in 
> upstream?

Having the change right away is fine, but the description needs to match
what's presently upstream (i.e. mention any non-upstream aspect as such).

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 11:50:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 11:50:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312862.1583028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIxy-0002ld-OI; Tue, 19 May 2026 11:50:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312862.1583028; Tue, 19 May 2026 11:50:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIxy-0002lW-KW; Tue, 19 May 2026 11:50:30 +0000
Received: by outflank-mailman (input) for mailman id 1312862;
 Tue, 19 May 2026 11:50:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wPIxw-0002lB-HK
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:50:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPIxv-006cBs-S7
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:50:27 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c4e7f-bab6-0a2a0a5309dd-0a2a4504e09c-36
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:50:27 +0200
Received: from [40.107.208.47]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c4e81-1dec-0a2a45040019-286bd02f295a-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:50:27 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by IA1PR03MB8215.namprd03.prod.outlook.com (2603:10b6:208:5ab::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Tue, 19 May
 2026 11:50:23 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Tue, 19 May 2026
 11:50:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XaANfIqrHdZE7XuzQ2j2BErGcz7WRVsAcEcF0sm3IZ9yyZaG1bWPilQL4Ugrqh/j7NiJUAhrrCWu1fYXijXZzvmh6xcYHz4Y7U2TwxwoMxx2nByZ98r21r0pRXKH71rkhOmplP+YMvS0xz7IXSc8Hl7g9Fph7L1kPs1Ruu82XyHNyk0IAAOmwVDk2hCunoseqlqC28G4DrA3g4pSBgKjfGxNDoBaoS1qp6kkUFKayQmk32zBL3FGnzUdi2PJT60yonI55YohQSO0t9PFI9VkOOKsF85jwwKYHq3SEyxc6xK7Ywp6b4TVgVxItkQHMLd8zPStV3vMmdK7CtYgbeFjPg==
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=UVfj2cmqrInkkkHaSE1/LrrwP0n3azVW2OaahmIbFpM=;
 b=VcXhX9F0gEyce4PdD66OGOOyPXOVldNoAHJWyHh96Klz1bPyA8TZLzLUHO1WXPA6q9c68Bhd8eDr1DcjoxSMJ/AXQ5x/cXH+o09EHDOveAG97/jzvmw3hVJkusBwMbyQLiEjpNO/XvG596ifvjzgpRbSfrTVoqvdZTZvkMVOP+yOigtPCEGbFjdPBOYy3bnQiteo7uyqW4x1yqkSKgndmgjwBvaT8/op33UJl67HX1aTf5EGghPaSxYRbueS3I2porc+kwpDyGbZOCmFCsNK8inB1bk+ATKDuKU9SpjxZOjoAeKiaGb0so6Sd9CeqOzxsPqHNkBJmNwug3HcTChkFg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UVfj2cmqrInkkkHaSE1/LrrwP0n3azVW2OaahmIbFpM=;
 b=cqsWS9tv49cGliuMmMh7CkmXtBcvIB+aCo7zNLc4HFYS1l0gzgbmXpheSOu6FPHS0ROrQSce4798vGEsZqphjxt1mFmF5x1X54c1EtVK+WnY1ChW9E2nRkibpvD7l704L2VIiosyDo7AK36VZauHKuq0RAuW/WrPlf6fYuR4HTE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <4a264ce1-cd01-4519-bfe9-840083bbd623@citrix.com>
Date: Tue, 19 May 2026 12:50:19 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 1/3] xen/riscv: fix switch_stack_and_jump()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Jan Beulich <jbeulich@suse.com>
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <1ac102874c8f7190ea09787a035692b03e4b46cf.1779179301.git.oleksii.kurochko@gmail.com>
 <5f8850b7-11db-4d78-8353-6e0580bd397b@suse.com>
 <5c348320-099e-4511-842b-4d352d641c10@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <5c348320-099e-4511-842b-4d352d641c10@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0248.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:371::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|IA1PR03MB8215:EE_
X-MS-Office365-Filtering-Correlation-Id: 9503dc6d-f43d-4d82-d3f8-08deb59ccf93
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|7416014|22082099003|56012099003|11063799006|18002099003|4143699003|3023799003;
X-Microsoft-Antispam-Message-Info:
	BCoCeiDl025BjW64vCZwHC7k99HKaZ85YoJYa+Vt+sxEB0N9hRMK2DaejG60zyx/kFJPq9IFI6Yvm9j+3Hhn6HALvjtkR5njNAcmFe/jNzPxNUov18ZBrfMxeWU3SLljwweanhxSUirLjseAVr+cyn9zs9pT13YXmQzssUNB0HEEoOKWwt+YROs52iudmO24rSAfpRj8Iygs1crivahnVbtvAML3LC75UJbjl7VqwIx+XQPUjgY7kext0l/sDyjHOZbsZTpeagZpC7+ayOz76Qqc/XWekqgKS+gsRG9IZ2+6OdYjtPE9rP952dlJXcrr0EFOpW/I3yyU2jFT5e6u9ksK8X8cBaqStcrY3BaRNiHYi8gmrWrioy6ByALFd8S/l+EtDeyNNRd0M2g4c0z2axo0H7Jz+2b9pDyR2KfN9d0ytTjdje6REA1poCYpo74FvLRwGI9tog/1bBye6QmBWMv4Um9adEQNfgWb7AN4gjY/3x6HB01xi8AM56FNHTti8QEWRW8R71S4apvtas/iJckU3wlaIhvr5x8Vqg7GVETjA6AMVDW5yCzMa1geQOBl2IDV94fenwJpY3kWWRZ0RplAyxSB7j2bk+gXtiQCEhz9LNV/Gv4Q3ls27GpoXnbL3W7plH5+wCwTZUpGuk9ExSRfv/ioF12d/fUALyTw65R17NrC/KLHDyUtHCC8a2B2
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(22082099003)(56012099003)(11063799006)(18002099003)(4143699003)(3023799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eEJtQUw5cnZ3NENDODBZVGRBVkpJSU93aEl5S0dKdWJKaUZxZmQ5TWZUT1RY?=
 =?utf-8?B?azVCRGZzczE3YUk2YjBnK2NzZkgvcDBOZlZuUzlhOGV5RFh6eVArK3lIQ2Q4?=
 =?utf-8?B?bmprem5qc3htMHlSRkV4VklFSnpPY1ExWEp5R0t1UjBHM2x3OW5QUWJVcytQ?=
 =?utf-8?B?NXNkZk1kTWhVSXhvd1p2cmJxWUxYZTduU3FiWkZyVk1XNXMvUGttcDFqZHhR?=
 =?utf-8?B?Q0ZZRmkzbUlzYU1xNnN2bnZXZ0dTOVcrNlZJV0pCeWNuYm5WSlpWWWVJdXpn?=
 =?utf-8?B?RFZ5QzY2RU1lR3p1ZWROK2VMOTlrN0cwL1o5Q0NlRUhLemMrSm1nYW8vNTRB?=
 =?utf-8?B?SFcvL1didzRJT0RxdDMwRXNjNmhaR3crNHBNVUlhRDBnYjBjMStEa0NrVEVN?=
 =?utf-8?B?TFkvOFFTbFJGcDZXSlhwbXFQSHJIalhYZGZCWVF1MkFGVkVpSXpXOUZKUlph?=
 =?utf-8?B?LzlZdXM2WlBxOVg5NFFvWUd3a3luQWxMeEFXbGRkOUtpelltU3pGU3NtQW9I?=
 =?utf-8?B?eEhYVDExdUNGak9WdGtBMHFWQmNiVHBnazFtQUxmanF3bm1FSEtGS256OEtQ?=
 =?utf-8?B?cjljc29zdXY5Q05CeVcvaVpzVFMycjh3Y2REbDl0Zk5HeHAwM3hkdkpJcUNo?=
 =?utf-8?B?Nyt1eHlFaHlYVmhpWll0a1lIM2U1NXoxb3VrODQ5dE1LTkVCUjRCS0NoQnFV?=
 =?utf-8?B?a3lpN2tFaXJjOHVaemdHM3drN3VKUFBWdzZNbFRpazM4SElBbEMzSllQNldP?=
 =?utf-8?B?SktSaGUvREFzRnRJdHFDWUdaWm1mTFBlS1pqSGdjTTE1cmxRSXU4cEtvQ3Bq?=
 =?utf-8?B?OWk5OGFUMDdQUGtWcnNkbVVpTHVnbnh5ejV3UWlyS0h1dlFkajV4QnZDY2hX?=
 =?utf-8?B?YXRuZEc3U2F5NmEwVS9sS1YzM2tLbFk5QWdjVzhnekF5WjJneFNRVkZmUDhM?=
 =?utf-8?B?SUtZSUIwdTlVT3ZBVjA5SG9lbGQzU3Y3YmFVWXhYR0Z3cTBVV0tVVzNLSXVp?=
 =?utf-8?B?VTZSb1NrT0ZCNFA0SC95S2RxYTI3aDMrQmFFN25yb1l3cnFhS2haaExmN25q?=
 =?utf-8?B?bVdBRHRCRmg5akp3UWc1ZWZmaFVreHlGc0VUaDZpcUxBaXNPdGxOcXNMbysy?=
 =?utf-8?B?RFVXOWJUNThqN2FIL05pWUYyM0d1TUIwTldja0xnSEh2N1h0MmtGWVVVZ3ln?=
 =?utf-8?B?bG5VcnV0WFdQYlZ1Z1k2K2Z3bFZ5dFZkVTJhblNOTXphaW5MeEp6eTMzUG1j?=
 =?utf-8?B?OExFTmVLWUFqenoyb01TY21tVE5MN1NVWTQyNXJhd1k1cWRvVkhKME9UdmdO?=
 =?utf-8?B?N1VoVWlNV0pISUpUZUo3M1VnZW53Vjljamh5cGw3enRKU0JKV1ROaFBLK3Ny?=
 =?utf-8?B?MFFPMWtCdFQ5dXJFNkR2VHZLV3NQektnOHd0dlhmb1BKZXBDSWNnY243TXJZ?=
 =?utf-8?B?L083SDZ2MzNDMWpwZlBGUEI2bkRLTWZRdnphTUdDdGhZeVZ1ZTFnMjFxbEZ2?=
 =?utf-8?B?allEUXV2U0NqM2tkRlBYRGhydlBLcjhhTERtaUludm42Y2ZXODcvQVhyN084?=
 =?utf-8?B?bEp6MC9oU1F0Z0ROT3pxK2J2U0VEM01LWUtvVVgrU2wrbURmQ1NnREZDVWp4?=
 =?utf-8?B?OHZJbDJlM1h6clY1TnJWU09vcHZZS3NzWmlxcU9VOFRNN0lLNk1NME1xdlVV?=
 =?utf-8?B?YW5Xb2swTGVJcWdwaFR4NzZvN0J5cDZtSm5UV0NwWFdiajZ2dHBlMzZMMXAx?=
 =?utf-8?B?UUVHVS9oczZWUjN4aHk5Z1BaMUZ0LzlPZTBsV0I2MTUzS0FDYms5TnNnbGsv?=
 =?utf-8?B?aWhqRlhnTUhCVnhlWlV0TzJJdkkwWGJQQW9qMmY4Qm5yR0p6bVd0c0laMkFB?=
 =?utf-8?B?d2swa0JYelI3c0cvMTR3OVhRUkZ6TzY4eGhXQzBYZEU2VVdZTnVWcXFxWmwr?=
 =?utf-8?B?ditzU0g3a0xrU3MxZ092dTNGSmc4N3g2QVhHdkFuTzNUbHBNdmNodzJTanZS?=
 =?utf-8?B?U1UvQnFWdlkzR3dqd2RHTW16N0pKV2NST2ppQzJlbWQ1ZllUSS9PbWpvSnRW?=
 =?utf-8?B?amk5c2pscDkycWF2UGY5dVpYYWh3UnQyZDlRVW1QaHV5SDF5UzVGdWs0eDVh?=
 =?utf-8?B?cW42Ui96NnNhRDFOS2hBZm50M04xYmVjMmRWcVdDVytXYXhIcWVuQW9hd1hD?=
 =?utf-8?B?YmRmRlI0UitzZFhocmJCYnpDQ05MOWRiVHdveGJScmdQSmhJVnAzSFNJN0pW?=
 =?utf-8?B?dm5yWUF2ME5mT2d6NTFXQXBvWEl0cGZQNG1zbzB4WHNxRjhrNVBMS05iVFM0?=
 =?utf-8?B?VjBaVEtQTnpCelVkOURCazRMam1ObDBnRWUvYmxXd1NNOXllSDB2UGgycXlw?=
 =?utf-8?Q?oyYmLnJdZwNwzXiM=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9503dc6d-f43d-4d82-d3f8-08deb59ccf93
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 11:50:23.5976
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: YKt0YnrRQsQkHOIhRPTBo9E/6mb1/RT1bwlCPYmLh/ks09KDTHGaV6n1twXPwHeUnsxLcgudlSV8eZzS0nu94Dk6pyIB6BYdkTZZTGoFh3o=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8215
X-purgate-ID: tlsNG-ebf023/1779191427-41F7D3FF-873A6213/0/0
X-purgate-type: clean
X-purgate-size: 3931

On 19/05/2026 11:50 am, Oleksii Kurochko wrote:
>
>
> On 5/19/26 11:28 AM, Jan Beulich wrote:
>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>> The following compilation issue occurs when UBSAN related stuff is
>>> enabled:
>>> prelink.o: in function `smp_processor_id':
>>>   
>>> /build/xen/./arch/riscv/include/asm/current.h:46:(.init.text+0x274e2):
>>>    relocation truncated to fit: R_RISCV_JAL against `init_done'
>>> make[2]: *** [arch/riscv/Makefile:45: xen-syms] Error 1
>>
>> There's no init_done() as of yet.
>
> It was found based on downstream version of RISC-V port.
>
>>
>>> The switch_stack_and_jump macro uses "j " #fn which assembles to
>>> JAL x0, init_done is a RISC-V J-type instruction with only ±1MB range.
>>>
>>> Without UBSAN, .init.text is small enough that init_done (which
>>> lives in
>>> .text, not .init.text) is within 1MB of the JAL. With UBSAN enabled,
>>> all
>>> the instrumentation calls bloat .init.text well past 1MB, so init_done
>>> is now >1MB away from the JAL. The linker tries to truncate the 20-bit
>>> J-type offset and fails.
>>
>> .init.text is well below 64k right now. Are you telling us that it grows
>> by more than a factor of 16 when UBSAN is enabled? IOW while the change
>> may indeed be needed, I question this explanation. .text growth may
>> matter
>> as well, and e.g. .rodata (living between both sections) might also
>> grow.
>
> No, it won't grow so much.
>
> With UBSAN enabled:
>
> $ objdump -h xen/prelink.o
>
> xen/prelink.o:     file format elf64-little
>
> Sections:
> Idx Name          Size      VMA               LMA               File off
>   0 .text         0011c79e  0000000000000000  0000000000000000  00000040
>                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
>   1 .init.text    000285fe  0000000000000000  0000000000000000  0011c7de
>                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
>
> With UBSAN, .text itself is 0x11c79e ≈ 1.11 MiB — already exceeding
> the JAL range on its own. Even if .init.text directly followed .text
> (which it doesn't), a call from .init.text to a symbol near the start
> of .text would be ~1.11 MiB away. init_done likely sits somewhere
> specific within .text rather than at its very end, but add the .rodata
> + .data sections on top and the gap is comfortably past ±1 MiB.
>
> As a result, the target symbol init_done may end up outside the range
> supported by the R_RISCV_JAL relocation, which is limited to
> approximately ±1 MiB.
>
> Without UBSAN enabled:
>
> xen/prelink.o:     file format elf64-little
>
> Sections:
> Idx Name          Size      VMA               LMA               File off
>   0 .text         00044618  0000000000000000  0000000000000000  00000040
>                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
>   1 .init.text    00012c72  0000000000000000  0000000000000000  00044658
>                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
>
> Does it make sense now? I can use the text above for commit message
> instead of what is mentioned now for more accuracy.
>
> Would it be better to send this patch when this issue will occur in
> upstream?

You want to make the commit message less specific.

The problem here is that JAL only has a +- 1M range, and that this can
be exceeded in some configurations.

The fact it's init_done(), and indeed that it's also UBSAN, are rather
incidental.  It's useful to state once, (including "found in a
downstream branch"), but don't focus on init_done().

Also the subject should be "fix switch_stack_and_jump() for range beyond
1M" or similar.  "fix" on it's own could be one of many things.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue May 19 11:51:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 11:51:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312871.1583036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIyi-0003En-Vo; Tue, 19 May 2026 11:51:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312871.1583036; Tue, 19 May 2026 11:51:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPIyi-0003Eg-TG; Tue, 19 May 2026 11:51:16 +0000
Received: by outflank-mailman (input) for mailman id 1312871;
 Tue, 19 May 2026 11:51:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPIyh-0003EQ-GI
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:51:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPIyg-006cPi-Sc
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:51:14 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c4ea5-bab6-0a2a0a5309dd-0a2a4505d0ca-24
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:51:14 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c4eb2-aaa8-0a2a45050019-d155dd31c900-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:51:14 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-44c350a5b87so2057047f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 04:51:14 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48febe582d0sm127886225e9.18.2026.05.19.04.51.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 04:51:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779191474; x=1779796274; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2gwjkzCgdOtpORCffBOgLnjw0oSmJe2Fsfw7MNLZ8AE=;
        b=YEIk3TMsD9BiKiZ2cNFv+GsrUA3t+K1E7qnLynZjvI1Yx9CrCnJMmGuyPlNX3f/A0/
         a5q2FtoOU0UK7D4ykYOihNQFjD2voqoev/ISeyp6ZARxHmJbC313hru0O0KveYEzsHZN
         RF0JRV1Ch2+pfMULwnGXvPwyT0P7vzQM4fYbZ4pqkAi/uBMgwT7RYfMcao1uJVMzwy50
         kbiHnWUpffBvEOoeFHs7f/lpqFJGAINqK6hz68GMvvgJWYDzRqzdQ4h9pJBwCobGiAk+
         Qz2TeecNDWdQznEGAXlnTdtFzKTTY26C+6ln1nTDJEfD3o7CZpO6/98OADPD0fr+eZAi
         nBng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779191474; x=1779796274;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2gwjkzCgdOtpORCffBOgLnjw0oSmJe2Fsfw7MNLZ8AE=;
        b=R1kDVcxCd85pBE+4t1m/TpdehzZWQlqBZgnXealhK+y9DXqBo75eniWxAoDFqF1dPJ
         W8S8Tl3nhYC1BgS+BVC+zs7pYk7wUhkyKtydH2NYxW2YmaoaxYZg+PdU0BONTRoWIxlc
         Z0fI2HHQmNNovPRXMPJsEozVUGyGa5LbQQEDSvaeVGzzpp5Jy+2bnI6TJzpubX6XENiN
         qVt94pAd0Jn5oiamKdVknPr/vmVLUrigv2ZfA+HvNlLKDOPxeIHpu1zsOa8AeXt65jM5
         YSRr6yX2NGUJdqiZrEpkPYhxQ7SuGvW/83uOycJViih8Tld6p8dRfuKsEd0YOEd+i2VT
         vY0g==
X-Forwarded-Encrypted: i=1; AFNElJ9OrSeNcQOAlVEAJpngX2JJKsaGs/G35YREb9r1y7Xs9Dxs/7x/FpBPwFBn9+EjKmZ1EiSdaEd+wJM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YykuHaG7/Dl8d4KehQ1McXxI+sod7HjIZG8n4MYUGRkuPRsDHFh
	cgRz+h+R52+FNAyyAtfGasMwILVVw9cOvs2VIn5oAiSh+kEAbDNBmOHUAmQU1RDSsA==
X-Gm-Gg: Acq92OFockX8Uv+CZ/4Ncp6LRY4lY9j6N6E17DvKqrV6G/SFTsMXebVNQSKORHsW3jj
	VNu89t6s4gXElgauRcu4hpGxmAxDsSYQsAF2Pc4LyOW2mn3aT+o655ZNruY4uqtLJYE1aFfIg7e
	WNvlivILRgIxhbNNk2Svj3zXNDlgZBFqtg/vK/tcJbt6YcSnmVuJIEFu1zw1kHjCyMSTKk0Z38A
	9RGIr1O6927QERen0tUh5uRTQBm7BgvqPEF1sHPUNwmYxFD042ZjQiu+33AS81QzbZciImmPCDJ
	vdkW72Z5BE/r3Celo115CY4x0ytEQIrwBleGgLXyMjat5+QIKFFz4yjOAA+QL2TN0OtvW+6glec
	ABUjBHupx6XSKYMPpauuhKlUJWpjXk97eNfOX0NPfDBwoEkwr3jbdTmjpG87l722QagWFa21zoJ
	G2UwkRBAxSKhKDbBKNPDKtciAvgzN7VhTdVFXmVmTTTEwkYuQmrV9pgiArUbyv2VbHWjDEbrcZb
	mg55V1H5gyLqYE/AgabyjJKDA==
X-Received: by 2002:a05:600c:a00f:b0:48a:5301:bb5c with SMTP id 5b1f17b1804b1-48fe63263dfmr308851085e9.16.1779191474171;
        Tue, 19 May 2026 04:51:14 -0700 (PDT)
Message-ID: <ee441369-cc67-4ec1-84f9-4619ce645da1@suse.com>
Date: Tue, 19 May 2026 13:51:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
 <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
 <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
 <e65d9be5-f788-42d1-9117-eef70303a1a4@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e65d9be5-f788-42d1-9117-eef70303a1a4@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1779191474-DB36C443-73C3705A/10/73395122804
X-purgate-type: spam
X-purgate-size: 3203

On 19.05.2026 13:32, Andrew Cooper wrote:
> On 19/05/2026 12:22 pm, Oleksii Kurochko wrote:
>> On 5/19/26 12:55 PM, Oleksii Kurochko wrote:
>>> On 5/19/26 11:37 AM, Jan Beulich wrote:
>>>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>>>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot
>>>>> inside
>>>>> the domain's shared_info page for vcpus with id <
>>>>> XEN_LEGACY_MAX_VCPUS,
>>>>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>>>>
>>>>> However, it does not guard against d->shared_info being NULL.  The
>>>>> shared_info() macro expands to a member access through d->shared_info,
>>>>> so when an architecture does not allocate a shared_info page the
>>>>> dereference triggers UBSAN:
>>>>>    UBSAN: Undefined behaviour in common/domain.c:325:10
>>>>>    member access within null pointer of type 'struct shared_info_t'
>>>>>
>>>>> Extend the existing fallback condition to also cover the case where no
>>>>> shared_info page has been allocated, mapping the vcpu to
>>>>> dummy_vcpu_info
>>>>> instead. This is the correct behaviour: dummy_vcpu_info already serves
>>>>> as the safe stand-in for vcpus that have no usable shared_info slot.
>>>>>
>>>>> Fixes: 295514ff75506 ("common: convert vCPU info area registration")
>>>>
>>>> I question this, largely (but not only) because I also ...
>>>>
>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>>>>> ---
>>>>> RISC-V does not allocate a shared_info page at the momemnt because its
>>>>> guests run in dom0less mode and do not use the Xen PV ABI, so
>>>>> d->shared_info remains NULL throughout domain lifetime.
>>>>
>>>> ... question this mode of operation. Yes, you may (for now) be able
>>>> to get
>>>> away without, but e.g. event channels will want supporting at some
>>>> point.
>>>> Which will require a shared info page. Better put that in place
>>>> right away,
>>>> even if the guests you test with don't use it (yet). Certain other
>>>> common
>>>> code also assumes d->shared_info to never be NULL for an alive domain.
>>>>
>>>
>>> Would it be fine than to allocate it in arch_domain_create() ... :
>>>
>>>      if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
>>>          goto fail;
>>>
>>>      clear_page(d->shared_info);
>>>
>>> ... but without calling share_xen_page_with_guest() after that
>>> allocation as share_xen_page_with_guest() isn't implemented at the
>>> moment?
>>
>> Or could it be an option for all arch-s move allocation of
>> d->shared_info to domain_create() in common just after
>> arch_domain_create()?
>>
>> The only question if share_xen_page_with_guest() could be ifdef-ed
>> somehow so not to block new ports to implement it from the start.
> 
> shared_info is an x86-PV-ism which escaped into HVM and then infected
> ARM too.
> 
> Sadly it's ABI there, but this is one of many areas where I really want
> RISC-V not to inherit the mistakes of prior ports.

In which case, how do you propose e.g. event channels to be handled in
whatever is going to be the alternative?

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 11:54:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 11:54:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312881.1583046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPJ1O-0003nv-DL; Tue, 19 May 2026 11:54:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312881.1583046; Tue, 19 May 2026 11:54:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPJ1O-0003no-AS; Tue, 19 May 2026 11:54:02 +0000
Received: by outflank-mailman (input) for mailman id 1312881;
 Tue, 19 May 2026 11:54:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPJ1N-0003nf-QI
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:54:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPJ1N-0041iS-6B
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:54:01 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c4f55-bab6-0a2a0a5309dd-0a2a450ca952-8
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:54:01 +0200
Received: from [209.85.221.42] (helo=mail-wr1-f42.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c4f58-62f1-0a2a450c0019-d155dd2ae4ef-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:54:01 +0200
Received: by mail-wr1-f42.google.com with SMTP id
 ffacd0b85a97d-45d96d21e82so2023144f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 04:54:01 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9ec3b18fsm41788784f8f.11.2026.05.19.04.53.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 04:54:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779191640; x=1779796440; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NeENzLIWUSD/UCabw8v2juabAhMzSRIwzqjwgW3ANo0=;
        b=KEPv1RSr7lv09BTxPoomB2Cu8y6cciszH1nx4YHs44uYybcmqKi3CuyTZBQboyKlqS
         56k9qZk0REQMsEqqSKHOQmqHaUrcYg+EtvYtf0wrbQxcZu9p/JyOjvnRZsdh8jw0owQg
         xFir+rzVunbSQZFJMoCPP6EM143SA1E5sRmdGOEHqbu8MjTVizGhsjAjbl0gxsGKewg3
         0X4RbD8Rs1FdFe9svaXloDh5uB8j1PCQ/FZEzyFXu9/RqxPHp6yqpKrz8Qmzek52UPHJ
         ReF7FWP4YDYRvNJIzgztVgUavfXkM4berqq1epEYNAslI+HmIK+NymS0oESwe4/iT80h
         xXAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779191640; x=1779796440;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NeENzLIWUSD/UCabw8v2juabAhMzSRIwzqjwgW3ANo0=;
        b=jnf7UeBoi/95FIeDVNxWnOha2jvd3HZM/kQCbgs14ZRQlxAsyWb3+xW6rTlxHGEfwD
         7llJl3eWrSYdgb3ECHCWHhq894dlDPI3GZbD/Zj/1FsYYkzuHEHK0JbdLg62LmcufDsB
         rzPCNTsBi9ZUmIvmo9QAIUnhF9HOXQSshhTkQF2Orwy0XoZkr9rMMrKdc/w9ysYYwpU2
         FPKDICTT4gpx4Cv9VZ0EB/19g2IfrHTfqFmrDIgrOFWwa2dSDZHYBHT/1RLS7qfVzju6
         u2AMNz4w52h1C/Z60Bl5jqaqpXdrQ3orthFJeRGe+TkiTbfBVoE4aXCwcpDYBrcXvhs7
         CsTg==
X-Forwarded-Encrypted: i=1; AFNElJ/OfiCax+wbrOxFCxdo6IOoAnSeY8/xhJAjdDAjGW/ng1NtD+OkuSNZShMGP3k8CQXI/t/PS96gvUA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzq76iw+4lpdiLpEWc3f/TB27rlSNvcdwFeaxdkljQI2UuN8KKM
	wGeP8DAy++AhS0rhMtiouZ03hwUXgh2stAiuQPevgV4rHOmZXGg6dZpM96R2ItwxIg==
X-Gm-Gg: Acq92OHLAaS3EUshJE3KuC0BB4LPvZWFZcs6Qy4wPV2mtiZUxEZcPFdA90tLqelZugx
	5heE27WKuJ0M1T/CKB48j6t5ENyYFhs1iuZ/PlJK6l6vssb/wT1PYS0n/IWy45CT4oXekF2+8UL
	IXntEoqy4/ZIeknxz0citEKoA85NZEswj4V+QwikcMtfe7Tx/QTkBMLoTiGib2JsslXbPmf5NZn
	FXzwK4Ow6gorN6qj0Cp6Nmhnzpym0Dvi9luMtlGc931GRUnzA1QIIzMNxgVrm4vt79ZRIRlfTon
	r6nRrqnFt+7L9XAHNlqDEYeQxZVdl+FXYIhyaauHBBD0UvT4MnVcyB/xnCx01v/AYxozgsTW8sw
	mJQrCRBpy5QtHZpYrqquoZoHpMOs1CqNTF+RxtuHoKjaYYQAwRZQoTP67jYuDcSuWPBo9aBVFNL
	Rb7YckEGXTSFKwx+1Zoaj5heiMnEk0+Dvn2ulmyGwHgvj8chtfSAlyUB4MN01a2FYiProW3KrS4
	zURiwApoxwP11E=
X-Received: by 2002:a05:6000:400f:b0:43d:c95c:4259 with SMTP id ffacd0b85a97d-45e5c5dd488mr29964210f8f.30.1779191640475;
        Tue, 19 May 2026 04:54:00 -0700 (PDT)
Message-ID: <ea274abd-d7be-4fee-a147-936a8adc1c81@suse.com>
Date: Tue, 19 May 2026 13:53:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
 <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
 <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1779191641-DB77ECF5-2A63CC90/10/73395122804
X-purgate-type: spam
X-purgate-size: 2940

On 19.05.2026 13:22, Oleksii Kurochko wrote:
> On 5/19/26 12:55 PM, Oleksii Kurochko wrote:
>> On 5/19/26 11:37 AM, Jan Beulich wrote:
>>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot inside
>>>> the domain's shared_info page for vcpus with id < XEN_LEGACY_MAX_VCPUS,
>>>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>>>
>>>> However, it does not guard against d->shared_info being NULL.  The
>>>> shared_info() macro expands to a member access through d->shared_info,
>>>> so when an architecture does not allocate a shared_info page the
>>>> dereference triggers UBSAN:
>>>>    UBSAN: Undefined behaviour in common/domain.c:325:10
>>>>    member access within null pointer of type 'struct shared_info_t'
>>>>
>>>> Extend the existing fallback condition to also cover the case where no
>>>> shared_info page has been allocated, mapping the vcpu to dummy_vcpu_info
>>>> instead. This is the correct behaviour: dummy_vcpu_info already serves
>>>> as the safe stand-in for vcpus that have no usable shared_info slot.
>>>>
>>>> Fixes: 295514ff75506 ("common: convert vCPU info area registration")
>>>
>>> I question this, largely (but not only) because I also ...
>>>
>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>>>> ---
>>>> RISC-V does not allocate a shared_info page at the momemnt because its
>>>> guests run in dom0less mode and do not use the Xen PV ABI, so
>>>> d->shared_info remains NULL throughout domain lifetime.
>>>
>>> ... question this mode of operation. Yes, you may (for now) be able to 
>>> get
>>> away without, but e.g. event channels will want supporting at some point.
>>> Which will require a shared info page. Better put that in place right 
>>> away,
>>> even if the guests you test with don't use it (yet). Certain other common
>>> code also assumes d->shared_info to never be NULL for an alive domain.
>>>
>>
>> Would it be fine than to allocate it in arch_domain_create() ... :
>>
>>      if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
>>          goto fail;
>>
>>      clear_page(d->shared_info);
>>
>> ... but without calling share_xen_page_with_guest() after that 
>> allocation as share_xen_page_with_guest() isn't implemented at the moment?

I would have said "yes" here, but ...

> Or could it be an option for all arch-s move allocation of 
> d->shared_info to domain_create() in common just after arch_domain_create()?

... Andrew's reply pretty much rules out not only this option, but the
shared-info-page concept as a whole (for RISC-V). See my reply there. In
the meantime, the change as suggested may then indeed be what we want to
go with, albeit (a) with a better description and (b) perhaps covering
all d->shared_info uses.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 11:56:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 11:56:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312899.1583088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPJ3s-0004db-6y; Tue, 19 May 2026 11:56:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312899.1583088; Tue, 19 May 2026 11:56:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPJ3s-0004dU-2X; Tue, 19 May 2026 11:56:36 +0000
Received: by outflank-mailman (input) for mailman id 1312899;
 Tue, 19 May 2026 11:56:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPJ3q-0004dO-JO
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:56:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPJ3p-00DNR5-VE
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:56:33 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c4fe9-bab6-0a2a0a5309dd-0a2a450adbce-10
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:56:33 +0200
Received: from [40.93.196.56]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c4ff0-56b3-0a2a450a0019-285dc438ad99-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:56:33 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS0PR03MB7226.namprd03.prod.outlook.com (2603:10b6:8:124::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Tue, 19 May
 2026 11:56:28 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Tue, 19 May 2026
 11:56:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PRbc/wPSkizHK6R24qw4OAtxdZIw5IxgbMMaoPqlM41QXxQdnbC4I9y90+YpT5AhIu1emsJhK59XkxVfD/xOaEQVC2ApcMzKLCG6uG+Pp6CAEsLfoOo83cn6OldSx5dpzugXPRohPYllfepoqiQiwAVbji9eqe+g6kbBjO93ev3TNXX/Wm1wxEehVm8S2h+Ehx6s8AWcd8EgbjswLvWYvL2rkNLl6rgsOfxyZfCWNvld3RwL5xHikmX+ov90lapxEwcUXWXQn47xYQMfMtyoaSEjL1A1hEhTp/21QArw1lG0Mpu/G9MDYJPWxGmR+uiRoMYwj+o6IEDYvwaCqNgirg==
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=AeE9dFe5BBB4UzHloRoWnzthEkXsiMtoih1bviroqss=;
 b=fQo40KcszCW5yOOKCxY/6tiAjnACw7XcePQuM7svvsfUuGNZ+q0TfiwsXYjXd7b5OG699fZzvvputSbO5VQRXMSiOwEkdGE8EBW1p1ZFBFyPN4p7VPkpJAfz3gp9C8SIR0L8WKIo9Of1rdJuFcz2JveoFK9n2RgEdANgwlqtKbGXov7WO+heUln6FaOFSs/YQ9hwB1RUIOBakki8/f6EzpyvL0gluQW+6wTEKoHSQSlFTGYAPNixp/s3J2z7KAyeE2kDp7/7szzLmldeoVXekut9as3mBpc+sWyA7rAvaQTF7apds1wlLvR3zsZWIWGlAklPvT5IO8fdlN5nwYgXYQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AeE9dFe5BBB4UzHloRoWnzthEkXsiMtoih1bviroqss=;
 b=orlLRS6v5Mhm0faljr11SuSmVtsL2KPxm8dLrQG733zGdVHyP5Gh38BzxLDVNwkFapTffVdHmgDpW7fGNCRekY/JyDOeAT4c62nuFcXo0dzSU88/yCWYpHu0f184QPnhxCCu8+RbnL3QePl2GOQ6LSptH5k53owyMm8q4Bo4Zqs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f5cd7d50-e274-4a8c-a535-8c0f47cec137@citrix.com>
Date: Tue, 19 May 2026 12:56:24 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
To: Jan Beulich <jbeulich@suse.com>
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
 <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
 <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
 <e65d9be5-f788-42d1-9117-eef70303a1a4@citrix.com>
 <ee441369-cc67-4ec1-84f9-4619ce645da1@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <ee441369-cc67-4ec1-84f9-4619ce645da1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0331.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:39a::15) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS0PR03MB7226:EE_
X-MS-Office365-Filtering-Correlation-Id: 46663bd0-19de-429d-56f3-08deb59da901
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|11063799006|4143699003|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	m9VSgp7WYjo3gHw01UD1xNTAl3deJQw9TE5NQDjWLPIAGNwdeWXdPKwGHuj2VYmiPEeQfO40TUeZFIi8scGQ/sC3iz7YWT/Y8N7VmQARZ1/Wfwi0VTagRJ1LjIGhsY2EbsK9PmUKnd9ZEpl8f8lulU06cqptgIV1goNO7U9jJtaULMBxrL3nZbuHgLecFarQ75+exz//vUkMMl79tIYZTPUoeOhMP2s3RVR40ON/zzP3TwAaRgJ0NuLk7utAe8J/IJj2Ej+NtNeyiJx7ry6RNXHhQUHMXKfzIX9vHyl+4wXDJ1Xk8Me1N/79qr3Wm37pmIjOBW8r/lH91HP6xRKQt9EJSgIHdT5uIOQ+nPuf71ATUYnPiU/d6JXWe7s2L4K9H1ghvbWPPBNTWFq3RJOigDtFTLeH+5GZTjVPQ/UKEop4MQScv84zHtCXzjyheBkyLqFAjMs2TF3H18YsKfw+HJKGFL6LAX1n2ya4bvCxZpI6F7NTdSDs7/xVs8C9EWVqhO2KRUQ8/wl2fAeMp6/n4BIGXjzKPouM01xkN1U9JQvCIGVrOR5vddUqm0DhXr0HE8WaFc7LiNHfUUzHPchm/a3QZY859C+1Eawd6JUwv5xNkfg2QQMrCK7I12Ixbozxx1Q4kN8AFORt5Vr+bA7neM5k/U63TaPY6wAmdwIqP2dogCHMQKj0NpghWIn6fOKE
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(11063799006)(4143699003)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TWxGb1owNjJtRm1hUEQrTnZSekFvaFhUSVNwZW9xVG1ldklrb05YTU50MmpT?=
 =?utf-8?B?RHR4VDVIa3cra2t3RGVzT05xT3ZKd0JQbExCTWk2a3NvbVpYRks4YnpiWmwx?=
 =?utf-8?B?bnRPTnB0SHJRb25BdWkxMnMzWHFkQWkwNWUrQ2lBU2hrKzFudmNVNHVqczZU?=
 =?utf-8?B?L3pnU1Y0UXE1UkNONTBOQ3ljeE5teE01M0dKd1cyM29LcC9UdUNWOVhVdHpK?=
 =?utf-8?B?Zy9xcDVLbGljVVRsbjMvOThvQUhFK0R6Z3BoMG5TWkdiWTBtOTJaU3NTNlJv?=
 =?utf-8?B?VWM2N0paYktwZFgxVHVlSGlPb0ZLOHk4aU15RzlTZjRwWGIzdm8wbmoya0lj?=
 =?utf-8?B?UHdVYm9hUmlNd2pRZkFRdW9KaEpyL1p2bzg1TkxhMVRCNHVvcE1mYzFGVGRX?=
 =?utf-8?B?TkJXOHZkM2g4LzYxbktpRHpWZ2FVaitVOTNLeWdFQ09EOUNjN0FWTzB4UTl6?=
 =?utf-8?B?NXkyQ2hkMlV5cnJvbmNGT2pwaFJWR1NtS21zSG9hK2dMRDN6ajQ1dlZQa1lq?=
 =?utf-8?B?Unl6eklTTXZ4YjJiMDAxSC93eUtCR0F1d3h5dmkvSUxiK3p1RnBuK0JWbHl1?=
 =?utf-8?B?WnNjTXJ2SnpON0NjUDVLUXlrOWdYd21xR24xdzFpTVplVGllckpKUEMwNm80?=
 =?utf-8?B?U1VrbHZ5SS9ZR3AxTHg3dFNhRVFHdjlTUXozL3lTTWxiN1JKbjNlWU1Jd3R3?=
 =?utf-8?B?MUV1L0lLUmNNV1BSTHBMN3dsR0Zmbkd0ZGxmenhYMGdUSlAvR3B1L3BMUitl?=
 =?utf-8?B?QldpUEVBeXNLaHBKTkliYmtiU25STnFzOFZRUFUyRjZyTlQvd2p4cUp1MS8z?=
 =?utf-8?B?SXk1ODRFcEpxSXp0UEZWMGlkS0UybFpmbTl5QXJ4VnNRRTBuc0NIQVo3eFBs?=
 =?utf-8?B?R0VocGR4OG1jTENETmI5WjNHSmYrdGdnRXVJai9RbFJUTFRIY0pOcnRGU01C?=
 =?utf-8?B?UE8wVm16cE0raWQvR1F5ajd5aWd1R2ZtdXBMWWJXQ0tRa2xCa3JaUjNRZ0Zi?=
 =?utf-8?B?R0QzdTl2R2hHNEkzUkpCK2lSdVR3amhvRFdjdTgvN2NLcldDYU5CTExFbjNU?=
 =?utf-8?B?REt6c0hoZDJRMDR5SGUwTDBHY2I3WldhNlJxSlZwVDR5eVhlWEdoUjJwNW9j?=
 =?utf-8?B?eUVIcVZaNzBTWWUzZlQ3R2NVeG1oLzBkRFN3cVZGR2o2V3k0OURDOEQ1MXlu?=
 =?utf-8?B?UDNGZERxazMxODRDb0xPMVFpNUJ3L0dhTVA0NmVYK1YvQTZ5SUlnWjhCaTNu?=
 =?utf-8?B?RHB2SnpscWlqS0NkcEVPSExjMzE4UXVLTHpZWUNkVXF3OHdJSXY0UTZQYXhu?=
 =?utf-8?B?N285eUZZdUl6M0dnNUMya0YvZ1ZMZU5zRFNrUzMraTcyOFRIbkdvdnNyRjFQ?=
 =?utf-8?B?czNYUUFmWTN5TTM2S3loTk1vbnBPVFZERnJLK2svbVpuTjNTQndGR21naHEr?=
 =?utf-8?B?WWc5Yk9hUytBZm1LNlNMVzFmQ0NWUW4xV1puM0JadDdaV1BJWnFOYVgvRVFu?=
 =?utf-8?B?WUluSXR6eUdxNkQ2R3JVWllwTStkbGFFZlFMQmdTWTFjVCt3R0locG45QlVl?=
 =?utf-8?B?QlRocmlVU3pLQXZKbk9NRjBxWFNtVFdRTU1jelNUKzBadjhLWmJkYkYycFZR?=
 =?utf-8?B?TUxZVXJtdE1zK2RqUWNhZ2dnMDBobWpqQ0Fja09BWWZKVXVUZSs5c3l4c2F0?=
 =?utf-8?B?bDlFenBRSGUxbTJCaWdqRkc2WHU0YmV0c2pUYWdjNlNwQWY2dEFTbTRpWkRQ?=
 =?utf-8?B?b1oxZmY2M1M1bUI3VzFaRXpCZm55U1NFQmNsTWphaGtzWGhFOHpsdDIxR08r?=
 =?utf-8?B?MVpVeG0rejg3LzZhTm4wQlEyQ0NRSUpLdFA5SW9hU3JFVWdjdVFTYW15Y0xR?=
 =?utf-8?B?eGFVY3VEa2I0K2hrL3M0bFpqNWs0a1NnQ0dwd1NJRDRSUUVQOFZZdTl2YW1O?=
 =?utf-8?B?eTBDc01aVHZnd0E1Q3kzcTl1OVBzKzgvSjllTHJjMzN4emREMVFldVVSUEQx?=
 =?utf-8?B?RysrbmloMkxhYm5LcGNOVXRjMUJIN0hoU2FSMUtRSS96YnEvMTZDZUpFTjIr?=
 =?utf-8?B?MEVaUVd4KytHZFdiTTZ0RmJPaVg5S3ZocFd0eUtieDRsMmRZUkcrejZXM0VW?=
 =?utf-8?B?akJZMjhLOVZ3dzNvUE9pT01MM1M4NW4vS1p1QTZSUXB1UE04QnI5Y29Ra3N0?=
 =?utf-8?B?WW1KWHQrbXNzS1dwSnlIVHJ0K0wwb2ZrdHdYRWhFNHpUakFZbjhLajFtcHdz?=
 =?utf-8?B?RHozbnVlbGFudjFxam00VGkvcjFPK1NIdkdTbkRHVlV5c09vNWhrVzd3TDBD?=
 =?utf-8?B?K1drSjl4QWNpY3lKVVVSRzM5dDU3ckRNL2lQNGp4R29lcmxKWE56UnBuN2RF?=
 =?utf-8?Q?z8aZ9FOGvyRj1CjI=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 46663bd0-19de-429d-56f3-08deb59da901
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 11:56:28.4054
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Vfzfea69lGWvHD3Pwc6PBEsu7fwQIVvQe+XYA3NGIPLljpDectQiF9Pqb1EdVCx6ReHuJhmVzu5kOrv5utIGhhFjM7Hz2FKCnLf0s4IWJcU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7226
X-purgate-ID: tlsNG-4011c0/1779191793-7E38D8B7-F213DE5F/10/73395122804
X-purgate-type: spam
X-purgate-size: 3462

On 19/05/2026 12:51 pm, Jan Beulich wrote:
> On 19.05.2026 13:32, Andrew Cooper wrote:
>> On 19/05/2026 12:22 pm, Oleksii Kurochko wrote:
>>> On 5/19/26 12:55 PM, Oleksii Kurochko wrote:
>>>> On 5/19/26 11:37 AM, Jan Beulich wrote:
>>>>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>>>>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot
>>>>>> inside
>>>>>> the domain's shared_info page for vcpus with id <
>>>>>> XEN_LEGACY_MAX_VCPUS,
>>>>>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>>>>>
>>>>>> However, it does not guard against d->shared_info being NULL.  The
>>>>>> shared_info() macro expands to a member access through d->shared_info,
>>>>>> so when an architecture does not allocate a shared_info page the
>>>>>> dereference triggers UBSAN:
>>>>>>    UBSAN: Undefined behaviour in common/domain.c:325:10
>>>>>>    member access within null pointer of type 'struct shared_info_t'
>>>>>>
>>>>>> Extend the existing fallback condition to also cover the case where no
>>>>>> shared_info page has been allocated, mapping the vcpu to
>>>>>> dummy_vcpu_info
>>>>>> instead. This is the correct behaviour: dummy_vcpu_info already serves
>>>>>> as the safe stand-in for vcpus that have no usable shared_info slot.
>>>>>>
>>>>>> Fixes: 295514ff75506 ("common: convert vCPU info area registration")
>>>>> I question this, largely (but not only) because I also ...
>>>>>
>>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>>>>>> ---
>>>>>> RISC-V does not allocate a shared_info page at the momemnt because its
>>>>>> guests run in dom0less mode and do not use the Xen PV ABI, so
>>>>>> d->shared_info remains NULL throughout domain lifetime.
>>>>> ... question this mode of operation. Yes, you may (for now) be able
>>>>> to get
>>>>> away without, but e.g. event channels will want supporting at some
>>>>> point.
>>>>> Which will require a shared info page. Better put that in place
>>>>> right away,
>>>>> even if the guests you test with don't use it (yet). Certain other
>>>>> common
>>>>> code also assumes d->shared_info to never be NULL for an alive domain.
>>>>>
>>>> Would it be fine than to allocate it in arch_domain_create() ... :
>>>>
>>>>      if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
>>>>          goto fail;
>>>>
>>>>      clear_page(d->shared_info);
>>>>
>>>> ... but without calling share_xen_page_with_guest() after that
>>>> allocation as share_xen_page_with_guest() isn't implemented at the
>>>> moment?
>>> Or could it be an option for all arch-s move allocation of
>>> d->shared_info to domain_create() in common just after
>>> arch_domain_create()?
>>>
>>> The only question if share_xen_page_with_guest() could be ifdef-ed
>>> somehow so not to block new ports to implement it from the start.
>> shared_info is an x86-PV-ism which escaped into HVM and then infected
>> ARM too.
>>
>> Sadly it's ABI there, but this is one of many areas where I really want
>> RISC-V not to inherit the mistakes of prior ports.
> In which case, how do you propose e.g. event channels to be handled in
> whatever is going to be the alternative?

Implement proper enumeration of virtual capabilities (to be retrofitted
to x86/ARM too), and only offer the FIFO ABI (which is superior in every
way to the 2L ABI).

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue May 19 12:00:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 12:00:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312917.1583096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPJ7A-0005l9-Jr; Tue, 19 May 2026 12:00:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312917.1583096; Tue, 19 May 2026 12:00:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPJ7A-0005l2-Gf; Tue, 19 May 2026 12:00:00 +0000
Received: by outflank-mailman (input) for mailman id 1312917;
 Tue, 19 May 2026 11:59:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPJ78-0005kw-QZ
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 11:59:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPJ78-001xhr-6O
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:59:58 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c50b3-bab6-0a2a0a5309dd-0a2a45099b62-26
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:59:58 +0200
Received: from [209.85.221.42] (helo=mail-wr1-f42.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c50be-2497-0a2a45090019-d155dd2ac1af-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 13:59:58 +0200
Received: by mail-wr1-f42.google.com with SMTP id
 ffacd0b85a97d-43eb05b1875so1911312f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 04:59:58 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9e768072sm44537304f8f.5.2026.05.19.04.59.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 04:59:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779191998; x=1779796798; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=hCrYbrBOqFhxqmffg86YlHWIqubtSdqBS4IzDOhc9WU=;
        b=puEv+FbbO2w3wKtsZB/5qUzMd9ut9xMogn3/IxU0WkK8SCZPaTpuG2rzkh1vMDtPEh
         awFiogSy+MA+bmkNPB+/wC+MME6YHsUTQtl7L9yzWOxAu5ekiPCA2QgPH0S08qnvfbFh
         Inbk1ZktrwhPSAAC73Uzl5YUXLqj/cy0cAh+vXw8d4mNhK0efatN43QImdoCbWgzyr63
         UKYW/lL/4Ql5xUpfiiB8TCy/yfMHvsUttUhgQ7no7vHOP4gT1PcX4us7I9dGnH0GBX6F
         ugCICIn39yRb1DihCCxi49wFQ2gxT9dMqR0/kJmqdHhWsxqAlPbLb2GPAlIiKepnJD8/
         5kpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779191998; x=1779796798;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=hCrYbrBOqFhxqmffg86YlHWIqubtSdqBS4IzDOhc9WU=;
        b=haPj/wrxw+iTaowM3apOk4ahZpkTt1zWhMcW5rPMOdksAgmb0Bg620Wk5i7HwbtsUW
         EHVVV4LmVZ2Y4kcOJ8cC44oxjYEZRhz/CD8zpq8kENOgQXfhP3tDZ/EI0OhWjaS0jH11
         dCCXPQnZ5uV4g1VvPVy9/rpTaCXqrzJsn42b9x2aNxiD6+ZnzczpFxhZ6YTpvUPzYU4B
         V/Nbaxn/f/pDTcmstsmdhQq/sqteIVILQKJVhmChM1tZbQhiVqfZxB8zqD6j6QsVstQL
         AM31nqEB53O5YX3DEMZDBjhZqRkgL02x8dyhiPLxHhkX4nkVqiJXtsIySkp4Vj8Ab9n0
         h1Xw==
X-Forwarded-Encrypted: i=1; AFNElJ/y12LhT1ulOyEb/l189OSbFT0pVLfLXT8AqlYlmBhiM/grG0ev2lF7qsmGH4JihlJYyShhiaHyJ7s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyhCBl3AX8un19ABp/Z7dK6pJXSDyi8eboW1OweQv0d1T2k9EEx
	UUC4NH1YhdqYO2JKpnyRdyu9Y//Ld+lVVVFAUTbiTI4Lftkr1Yk2NFOv
X-Gm-Gg: Acq92OEdEVCI9lEDFKjF3RuddUrfR2SsRe7bcfxAY4Aak/uyzkcHCSvqOSY50hBl4w0
	xnDjka8roQjrWkGjgso6yqaRT5eTXFpc9MZ5IGBrBLanhuN0NA2+bYieRuMgL/+BON0HEIfaiTR
	N3UeJ7Fry6QAWIDziDt01O9jWk7180rrnBj6P2t/roB84NKl7XdhRAl8eqIszYacRiUyOc9bqun
	YVGgBtyfSwzHA3xrQFuyVNhmh9nUl4/IbEbQiltF3+mhhhrRPS5BC8fM7weD2GkA7ioWxd4ciat
	a8sNWVK5tO26ThDOG5Fa/DDsk3iWZv0VbNAsqefkfkfIxhfkexXTnNrQxf37o1p9wMPbRIJrr5J
	yMCHlOECe/zDKx0BGcg2VX5aB3sKWaTr3p84Uk7IxnaaXvPPKFNlbQdfZYpJ1nm5on6f7zfinSS
	MXKzNjXYV0wrodb64R80DTjWbygQI8paC1QCma69oFrGPXBG3DDTdDZWHVQ+HEzZUSF3UVn+rf2
	pWLiRy6348kzga3iPfArhRS
X-Received: by 2002:a05:6000:4007:b0:456:ba09:3e64 with SMTP id ffacd0b85a97d-45e5c5b3669mr30505870f8f.1.1779191997531;
        Tue, 19 May 2026 04:59:57 -0700 (PDT)
Message-ID: <f032149e-aa99-4976-8012-39bd01d4a653@gmail.com>
Date: Tue, 19 May 2026 13:59:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/26] xen/riscv: introduce guest riscv,isa string
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <b2d4f3f7f049837a25bc00bfb1d3da8b984a8b5a.1778250616.git.oleksii.kurochko@gmail.com>
 <364abd6e-4fff-437a-90c8-bb4489f0c51d@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <364abd6e-4fff-437a-90c8-bb4489f0c51d@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1779191998-8A38AA53-ECC27105/10/73395122804
X-purgate-type: spam
X-purgate-size: 3128



On 5/18/26 5:51 PM, Jan Beulich wrote:
> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>> @@ -480,6 +488,53 @@ bool riscv_isa_extension_available(const unsigned long *isa_bitmap,
>>       return test_bit(id, isa_bitmap);
>>   }
>>   
>> +int init_guest_isa(struct domain *d)
>> +{
>> +    char *buf = d->arch.guest_isa_str;
>> +    size_t len = sizeof(d->arch.guest_isa_str);
> 
> Seeing these uses: Is the "guest" prefix really of much use here?
> 
>> +    bitmap_andnot(d->arch.guest_isa, riscv_isa, guest_unsupp,
>> +                  RISCV_ISA_EXT_MAX);
> 
> Same question here, clearly.

I will drop "guest" prefix for "d->arch.guest_isa_str".


> 
>> +#if defined(CONFIG_RISCV_32)
>> +    if ( snprintf(buf, len, "rv32") >= len )
>> +        return -ENOBUFS;
>> +#elif defined(CONFIG_RISCV_64)
>> +    if ( snprintf(buf, len, "rv64") >= len )
>> +        return -ENOBUFS;
>> +#else
>> +#   error "Unsupported RISC-V bitness"
>> +#endif
>> +
>> +    for ( unsigned int i = 0; i < ARRAY_SIZE(riscv_isa_ext); i++ )
>> +    {
>> +        const struct riscv_isa_ext_data *ext = &riscv_isa_ext[i];
>> +
>> +        if ( !riscv_isa_extension_available(d->arch.guest_isa, ext->id) )
>> +            continue;
>> +
>> +        if ( ext->id >= RISCV_ISA_EXT_BASE && strlcat(buf, "_", len) >= len )
>> +            return -ENOBUFS;
>> +
>> +        if ( strlcat(buf, ext->name, len) >= len )
>> +            return -ENOBUFS;
>> +    }
>> +
>> +    return 0;
>> +}
>> +
>> +static void __init init_guest_unsupp(void)
>> +{
>> +    set_bit(RISCV_ISA_EXT_f, guest_unsupp);
>> +    set_bit(RISCV_ISA_EXT_d, guest_unsupp);
>> +    set_bit(RISCV_ISA_EXT_q, guest_unsupp);
>> +    set_bit(RISCV_ISA_EXT_v, guest_unsupp);
>> +    set_bit(RISCV_ISA_EXT_h, guest_unsupp);
>> +    set_bit(RISCV_ISA_EXT_sstc, guest_unsupp);
>> +    set_bit(RISCV_ISA_EXT_svade, guest_unsupp);
>> +    set_bit(RISCV_ISA_EXT_svpbmt, guest_unsupp);
>> +}
> 
> These don't need to be atomic, do they? I.e. __set_bit() would suffice.

Agree, __set_bit() would be enough.


> 
>> --- a/xen/arch/riscv/include/asm/cpufeature.h
>> +++ b/xen/arch/riscv/include/asm/cpufeature.h
>> @@ -17,6 +17,8 @@
>>    */
>>   #define RISCV_ISA_EXT_BASE  26
>>   
>> +#define RISCV_GUEST_ISA_STR_MAX 256
> 
> This looks like it won't be good for very long, seeing how long ISA strings can
> get. I wonder anyway whether ...
> 
>> @@ -94,6 +95,9 @@ struct arch_domain {
>>       struct p2m_domain p2m;
>>   
>>       struct paging_domain paging;
>> +
>> +    DECLARE_BITMAP(guest_isa, RISCV_ISA_EXT_MAX);
>> +    char guest_isa_str[RISCV_GUEST_ISA_STR_MAX];
> 
> ... a compile-time sized buffer is suitable here. Can't you allocate a buffer
> just large enough to hold the string?

It could be allocated dynamically.

Does it make sense to evaluate in run-time what should be a buffer size? 
For this case I can't find analogue of realloc() in Xen. Or it would be 
fine just to take something bigger as a const (lets say 2048) and use it 
for dynamic allocation?

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 12:06:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 12:06:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312926.1583106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPJDC-0007Om-D4; Tue, 19 May 2026 12:06:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312926.1583106; Tue, 19 May 2026 12:06:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPJDC-0007Of-9K; Tue, 19 May 2026 12:06:14 +0000
Received: by outflank-mailman (input) for mailman id 1312926;
 Tue, 19 May 2026 12:06:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPJDB-0007OZ-2B
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 12:06:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPJDA-00DQ9J-EE
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 14:06:12 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c5230-2eae-0a2a0a5409dd-0a2a4508a802-22
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 14:06:12 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c5234-63b5-0a2a45080019-d155802dc4e9-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 14:06:12 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-48a563e4ef7so28636315e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 05:06:12 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe5ab52a6sm320514215e9.10.2026.05.19.05.06.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 05:06:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779192372; x=1779797172; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lXu9b5gL8rrqkBgtoIMfae6gMi/kN3ttpRTG890ta6c=;
        b=DOgvZ1fYAVdAJdplKEnIuHOS4eAMz5xsy9xRk1jfDn6vDXC096re5r+aPs0CbVmCUl
         qvFzuuPRIP4AKaO9kJWwYXz5n1Wheqb7Zr8BdTNetT4wbjQDZyJlMdAqJKj6R2DeFFvr
         GYZvkxeizcl9hJwx1tPmILqmf4d1l3MjhicgHdvzPu28d5FBNJoV/lD2rvqHz/44ejrr
         nQKDidCRH7o+UCRdQaJrXl3QfUDjEWnFkDt0AAn5zE+Xpm0fRT5efg8m6IdFw2zztMyS
         E/MftMjohgQp3hVYxi7q8201Gps1r8BT1tEWupj9tNqkOPK9FHpyB0ZnGpskIBxDxZa/
         Ur6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779192372; x=1779797172;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lXu9b5gL8rrqkBgtoIMfae6gMi/kN3ttpRTG890ta6c=;
        b=NwEwFmW/QPzFYkxM2eVZm9MCgAL+LYE6YK0dc7ZrwQUT7uiypqLw5NBv16IRAT1Xdh
         BtG0QE7LkPXkgFBsG8ER60CMAIS8ftXsFESt+pNRAXdPYArlC79wPGz1a+XIKR5+dCmM
         k6NzVEldzOvb30ueW5bjJGa9ZSoTDbXtWoQaH3j9i13B8rBgH8vUFkw99RryKGqTJdwI
         Yo5uxwE648+CAloWHLuf9cifbOIDsBFinEmLckR32GIytV7jEkOONN6evFJ9d5fMd8W8
         kxsqB62FYZPOQOG6T4KkCcDtt5iddThM9fxdevrLr8QnCjxswY1PAbTUssz8cMfFEc3e
         ky/A==
X-Forwarded-Encrypted: i=1; AFNElJ+qdCADBa/q2Loxe5EiROeQnNOaWxJaFZkrfcpOpaQXhTskjuvv77MKsB+2nnlFIuBjiea2JMWg5+A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzGZ1O3wCLoGAh7ayayHQgJ8tgbemUoDH5FL74yjBOESn+hlW3O
	YlesnqFgRVDijfuPVayI2+riahI6rWNVjTazx4NbAiTy72O2f3Adqkf2gY+J5+RgsA==
X-Gm-Gg: Acq92OHSponCk3I8abfxQUj6qn4osQKwt6YEIEeror9agHdoG7eHAmCESS0GetAW4UD
	qHzl1E1RHCWzZHx/g/ndHNoTiLvPhIDxlE7c2wWBkgTeU+UggS2RkUGEQ6iCpeKiU/I7TZjrmZM
	aIGs74dMzDbRWGzsXJL62k+khvp6V4nxJmqOIRxxr0l7o5B0r5SaJOMgY1WD2g7AHGIz+kJ5edg
	28ValnaDZz5Fc9yxcit27AHHsUfudmGTmWMdFu/Jw6CnoFpxglxqvZbTXWGzh7ce+vUg74sEryH
	PDZqrdIMax0q9+MjeYp5F7vPez3KQIvUPm6H7lmiA9A3LGCt/T+iN/+MwbBPpZsGzjSH54Uuplg
	a0oIc7RZl6e/9IX/Tb4USIPGCzR2d8BCg4QbEGYfP+lUVGQ1pITFYe5WZZXgiIfH1L2PwP5HZck
	mawMmasBWGaRBkbJTI/e3SB24/vYktA/PRi2Bwj1u0LbM855Z/s3rlt03GwUq93Tz0ywaV8wNXT
	ZaJ6Ag0wSGJPQ0=
X-Received: by 2002:a05:600c:c087:b0:48a:5546:61a1 with SMTP id 5b1f17b1804b1-48fe61f2911mr218583605e9.15.1779192371717;
        Tue, 19 May 2026 05:06:11 -0700 (PDT)
Message-ID: <7aa7e06e-7a86-46ea-a7fe-bbb81c96d743@suse.com>
Date: Tue, 19 May 2026 14:06:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
 <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
 <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
 <e65d9be5-f788-42d1-9117-eef70303a1a4@citrix.com>
 <ee441369-cc67-4ec1-84f9-4619ce645da1@suse.com>
 <f5cd7d50-e274-4a8c-a535-8c0f47cec137@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f5cd7d50-e274-4a8c-a535-8c0f47cec137@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1779192372-C487BDB1-D6C4DC5B/10/73395122804
X-purgate-type: spam
X-purgate-size: 3662

On 19.05.2026 13:56, Andrew Cooper wrote:
> On 19/05/2026 12:51 pm, Jan Beulich wrote:
>> On 19.05.2026 13:32, Andrew Cooper wrote:
>>> On 19/05/2026 12:22 pm, Oleksii Kurochko wrote:
>>>> On 5/19/26 12:55 PM, Oleksii Kurochko wrote:
>>>>> On 5/19/26 11:37 AM, Jan Beulich wrote:
>>>>>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>>>>>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot
>>>>>>> inside
>>>>>>> the domain's shared_info page for vcpus with id <
>>>>>>> XEN_LEGACY_MAX_VCPUS,
>>>>>>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>>>>>>
>>>>>>> However, it does not guard against d->shared_info being NULL.  The
>>>>>>> shared_info() macro expands to a member access through d->shared_info,
>>>>>>> so when an architecture does not allocate a shared_info page the
>>>>>>> dereference triggers UBSAN:
>>>>>>>    UBSAN: Undefined behaviour in common/domain.c:325:10
>>>>>>>    member access within null pointer of type 'struct shared_info_t'
>>>>>>>
>>>>>>> Extend the existing fallback condition to also cover the case where no
>>>>>>> shared_info page has been allocated, mapping the vcpu to
>>>>>>> dummy_vcpu_info
>>>>>>> instead. This is the correct behaviour: dummy_vcpu_info already serves
>>>>>>> as the safe stand-in for vcpus that have no usable shared_info slot.
>>>>>>>
>>>>>>> Fixes: 295514ff75506 ("common: convert vCPU info area registration")
>>>>>> I question this, largely (but not only) because I also ...
>>>>>>
>>>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>>>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>>>>>>> ---
>>>>>>> RISC-V does not allocate a shared_info page at the momemnt because its
>>>>>>> guests run in dom0less mode and do not use the Xen PV ABI, so
>>>>>>> d->shared_info remains NULL throughout domain lifetime.
>>>>>> ... question this mode of operation. Yes, you may (for now) be able
>>>>>> to get
>>>>>> away without, but e.g. event channels will want supporting at some
>>>>>> point.
>>>>>> Which will require a shared info page. Better put that in place
>>>>>> right away,
>>>>>> even if the guests you test with don't use it (yet). Certain other
>>>>>> common
>>>>>> code also assumes d->shared_info to never be NULL for an alive domain.
>>>>>>
>>>>> Would it be fine than to allocate it in arch_domain_create() ... :
>>>>>
>>>>>      if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
>>>>>          goto fail;
>>>>>
>>>>>      clear_page(d->shared_info);
>>>>>
>>>>> ... but without calling share_xen_page_with_guest() after that
>>>>> allocation as share_xen_page_with_guest() isn't implemented at the
>>>>> moment?
>>>> Or could it be an option for all arch-s move allocation of
>>>> d->shared_info to domain_create() in common just after
>>>> arch_domain_create()?
>>>>
>>>> The only question if share_xen_page_with_guest() could be ifdef-ed
>>>> somehow so not to block new ports to implement it from the start.
>>> shared_info is an x86-PV-ism which escaped into HVM and then infected
>>> ARM too.
>>>
>>> Sadly it's ABI there, but this is one of many areas where I really want
>>> RISC-V not to inherit the mistakes of prior ports.
>> In which case, how do you propose e.g. event channels to be handled in
>> whatever is going to be the alternative?
> 
> Implement proper enumeration of virtual capabilities (to be retrofitted
> to x86/ARM too), and only offer the FIFO ABI (which is superior in every
> way to the 2L ABI).

What about the wc_* fields then? And about everything in struct arch_shared_info?

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 12:12:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 12:12:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312936.1583115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPJIx-00010U-0u; Tue, 19 May 2026 12:12:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312936.1583115; Tue, 19 May 2026 12:12:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPJIw-00010L-ST; Tue, 19 May 2026 12:12:10 +0000
Received: by outflank-mailman (input) for mailman id 1312936;
 Tue, 19 May 2026 12:12:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPJIw-00010E-73
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 12:12:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPJIv-00BuMR-BM
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 14:12:09 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c538e-5cb7-0a2a0a5109dd-0a2a45048102-28
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 14:12:09 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c5398-1dec-0a2a45040019-d155dd31dcd9-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 14:12:09 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-44a044cb827so2486542f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 05:12:09 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9ec3ac86sm44888822f8f.14.2026.05.19.05.12.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 05:12:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779192728; x=1779797528; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oc9tbDGweMFnSRG+PA+uzUnUtV+b8fj+bFrxGKH15d0=;
        b=WYM5V1k0LCHztNahK4S/89+ulR0R8yPGuBCxFAo6eo5U4x1zEHF8LOqxAxSnlKUSAR
         +DLwHqzyKx4nWEv7LN4HoTfQSSvqtuXQRlWNS2JuwKEaxi/RRovbu4gz4XuAaNtW0Bz6
         3BN172mK6ZLeO59mGS4s1Zndoipf9CM+ItQzkjBGyZ/2uL4LUEcvP51Ql1qQH3SI0+nI
         1CwOFjNP/kZM28QMDqgFdDw4TxDViah+hBeBNKNYSYpHpzUbYB02pQ3mQ5+2iMh2OE5G
         5GH16nIewQTFcSdyDYVdy/BSnd7ZNFABFp/eylwCYczopvXsf3GSvCiu+3msOJIMXE3k
         AHhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779192728; x=1779797528;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oc9tbDGweMFnSRG+PA+uzUnUtV+b8fj+bFrxGKH15d0=;
        b=N9h3KpEvvCP11bDDLvaoK7FbAmZBdBgY4qf4Rj2pMCpFeRD9zB1lSxbwfyFusKP1Tj
         pXSd3DWDnLl0fb9JnlK1PR87F+WV/wxRXTNcuAOVmvvKRd2All61aDnWiGOg8qR5FuX2
         rOQOJ3ft0ufMMZrle8eXfrlTQBwTTuUgg9zKOgMmLEs5qHaFFG1UDXajsdhAJe6prsNg
         9Oib75S6s0qxQsc1I7SQQ1JdrkyoHpw7LiOf5LRsfaYBmTBgFytYNOx2gpkwRbi+Jb16
         Kg3aKQRcWxJv9KjiLAB6J7SeAyd/v+aXyDZPQzW3a/M3tzV7SwO2bGaLU+SNdoZosvK5
         MW1A==
X-Forwarded-Encrypted: i=1; AFNElJ9u13OIZLXbk+9MSf6fRBJnwLadWu3HsVqgVcRZHF9B3oHnz2ZMxT9sxWDt30jrRILdmK/j0gvzwco=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFZSOQCG3Oo8yqxdEVuSWcD9pNwMb+lNDP96hizoq57RXcpTcN
	1y5/1HhDBBnf/VBz90QHpR9sokNp0JcSBZmPI4dZH5rPbq6xs5ZvxWEyjrRrZk5pbQ==
X-Gm-Gg: Acq92OFDI2EvbZqz+YGjp58oj4NKfMst3A0MbXTUT5cWpGpYHw6CUx4ajHCxnXaZqF8
	j3ttTa+7btqcwXKz4DKHixp87SPWr8hTO4Q9bp1XIV7i0aDn5HdJ6A7t+clOxhkd6jv2dprazTw
	fVg/k/91JqLd3luTmbJ8WfQ6iVuGg+NEIjdV2nldGb/A2yIRL7jcIk3x27/HmqNhsMke30cGMlS
	jxBe3X/8h5xQVWU2ZE3aP4dkFIfEBKDynHAmm7j1zRtt6x3wduTBrSIaiMcPZDQvB5+V7JazlkC
	oE8nwPI4dG6oFqXtdoti9m8XhVMfZm8y6Yc/eOg7BDWy0Cru0+4bWDExRH79OBU0hUV+J44qJZd
	3m6dVMNl4MsJDqk1O/I/EV2SSkfevv6XyYaMKPUw44NRU/qa7Xouz7kfp/2gFAq2hZ3E4I7LIAX
	tD4vxzrEM1rRCnU2rQtLMyMNxpDroEqUgBFfeBGoXIdZOdebADQea0Ug4iBPvkmtibRnVRt+vYn
	Lg9Ro0yAzQdEjs=
X-Received: by 2002:a05:6000:2083:b0:452:d03a:7aad with SMTP id ffacd0b85a97d-45e5c5daea5mr33068692f8f.36.1779192728554;
        Tue, 19 May 2026 05:12:08 -0700 (PDT)
Message-ID: <23e8de1e-b792-4863-bd99-f529642fb963@suse.com>
Date: Tue, 19 May 2026 14:12:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/26] xen/riscv: introduce guest riscv,isa string
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <b2d4f3f7f049837a25bc00bfb1d3da8b984a8b5a.1778250616.git.oleksii.kurochko@gmail.com>
 <364abd6e-4fff-437a-90c8-bb4489f0c51d@suse.com>
 <f032149e-aa99-4976-8012-39bd01d4a653@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f032149e-aa99-4976-8012-39bd01d4a653@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1779192729-41D7C3FF-FEAE8804/0/0
X-purgate-type: clean
X-purgate-size: 1486

On 19.05.2026 13:59, Oleksii Kurochko wrote:
> On 5/18/26 5:51 PM, Jan Beulich wrote:
>> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/include/asm/cpufeature.h
>>> +++ b/xen/arch/riscv/include/asm/cpufeature.h
>>> @@ -17,6 +17,8 @@
>>>    */
>>>   #define RISCV_ISA_EXT_BASE  26
>>>   
>>> +#define RISCV_GUEST_ISA_STR_MAX 256
>>
>> This looks like it won't be good for very long, seeing how long ISA strings can
>> get. I wonder anyway whether ...
>>
>>> @@ -94,6 +95,9 @@ struct arch_domain {
>>>       struct p2m_domain p2m;
>>>   
>>>       struct paging_domain paging;
>>> +
>>> +    DECLARE_BITMAP(guest_isa, RISCV_ISA_EXT_MAX);
>>> +    char guest_isa_str[RISCV_GUEST_ISA_STR_MAX];
>>
>> ... a compile-time sized buffer is suitable here. Can't you allocate a buffer
>> just large enough to hold the string?
> 
> It could be allocated dynamically.
> 
> Does it make sense to evaluate in run-time what should be a buffer size? 
> For this case I can't find analogue of realloc() in Xen.

Hmm, I see xrealloc_array(), and surely we could gain xvrealloc_array()
which we'll need anyway once xrealloc_array() uses get converted. (I also
see x{,v}realloc_flex_struct(), but that's of no use here as it looks.)

> Or it would be 
> fine just to take something bigger as a const (lets say 2048) and use it 
> for dynamic allocation?

I'd rather not. Can't you determine how much space the string is going to
occupy?

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 12:45:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 12:45:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312954.1583122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPJpT-00061S-Ir; Tue, 19 May 2026 12:45:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312954.1583122; Tue, 19 May 2026 12:45:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPJpT-00061L-Fo; Tue, 19 May 2026 12:45:47 +0000
Received: by outflank-mailman (input) for mailman id 1312954;
 Tue, 19 May 2026 12:45:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wPJpS-00061F-DN
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 12:45:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPJpR-00C2Pc-PP
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 14:45:45 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c5b64-2eae-0a2a0a5409dd-0a2a45048d00-30
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 14:45:45 +0200
Received: from [52.101.61.14]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c5b78-1dec-0a2a45040019-34653d0e98bb-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 14:45:45 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BLAPR03MB5377.namprd03.prod.outlook.com (2603:10b6:208:285::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.21; Tue, 19 May
 2026 12:45:42 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Tue, 19 May 2026
 12:45:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XdUpZgJN+yGHlv+5kv6dSetG9HGZA9w9bm0telVLCf0lgpembF5pVlCnGhA3giUywWrSsni04pdck8KtmK0SaB0HU0DNcr71dmP1vITNqGoeryW7dkoq1kC+G+8MFiHB3+VwHn6mbkHWNDo5aWO/I/3b9wfViukfwNqT6PnZ10yk14/NefM9WwV21vcnOfnfq003muOwFAYHGAj1D1GIxbyRKObrpS+IUWHA9Z5Fsph2FUl5Y2HoE1a7kXIqv+pyuv3887gQW1UIBO+nBeJPXLU5xl4Go/cLY6rDxVSbKFqDXpORoehNfDOtmpg+U3S0jIOo5cylEDpsQ9E3ZX4pGg==
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=g6/vhb/Is7FicYzX1f9wXo/16zxFaX6xyGjfnCdU/DM=;
 b=tI43c5gaIIUpBiHCeCXuw0Nyiv5EAEe4smu8X7G42L1b24G236xpomBYucln3+7+RWXojecu5396N3imP/Rz/TYdI9g5KGS7YSukCQGEvsBfm5yQpH2Hlg8ED0hpmBgJlM7tcZ+Pkkv6lx8DBEI5AysRpbA1q1OLFNVQIBoyrw7avaY7lRA9qUJKY3JZVEscd9/akn+/R+uhpmXubQIL/ZLdiNVedlX+8WEBRLl+gwrezsMXxxGZzW5P0SE0+oYWy9Q4t8Lzz1XmWFZgB8q2dPaamF3E/p4uL5yzlFw+QpHsmU1EsZZzKmBOVukaOxhxqF5X5/gyK3ui3xwDTEh4FA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=g6/vhb/Is7FicYzX1f9wXo/16zxFaX6xyGjfnCdU/DM=;
 b=CBhjPi1NGe7UJYruaFdnlJS9jkpwQD1B0hvHN2ejZ4qxwDgTMY6SfYghUN545RTuau4PdLMQhiaChvS+KkiL17AyLN8uy2qVFT/cEgHcVxSHN2/Vh6MKh0RZ6Tm2j4mUK6sQsZsEmkoCFUKbeVmGLd7b/B7iLNguwdgkhYmNtK0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b9088d84-c92d-4b71-9d02-177282221a90@citrix.com>
Date: Tue, 19 May 2026 13:45:37 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, sstabellini@kernel.org,
 julien@xen.org, bertrand.marquis@arm.com, michal.orzel@amd.com,
 Volodymyr_Babchuk@epam.com
Subject: Re: [PATCH v1 1/1] arm64: Fix strrchr() matching of null terminator
To: "Edgar E. Iglesias" <edgar.iglesias@amd.com>,
 xen-devel@lists.xenproject.org
References: <20260518234353.453193-1-edgar.iglesias@amd.com>
 <20260518234353.453193-2-edgar.iglesias@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20260518234353.453193-2-edgar.iglesias@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0676.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:351::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BLAPR03MB5377:EE_
X-MS-Office365-Filtering-Correlation-Id: dc921fda-a1db-4c2a-9146-08deb5a48994
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|4143699003|11063799006|22082099003|56012099003|3023799003|18002099003;
X-Microsoft-Antispam-Message-Info:
	Zu4pLnDBbnC08kBeNuuU9rNwKVcwoULofLbELHUUhRDA/wgO8gGfA/QyZthO1swWCxX9bCk6DB68mqiB1wWgAzC9FWsr1MEgPrI5PnZ86zlOZ/VH/vpXZZqYsuDVbdr0BSa3ABYDTU0griZRtOs1oGJt2tmlLQmkoSukw1TomYVFDzjuvbhhQFPunafjKm1JhfUTeDKRIIJsl9qFE+fiC4Rq9Q1EQzkjK/xvqsOmNBQd3dH0x9pt4KpqFLAdS49s2GGsFcqYguoS8SZBcdFO/d+TrWyIxVf3eWEeHp4lK0nut1pibfvt9EJ9oH/lhsPxPgsJjQBzi5j97QfqrpZofmvjL+HDv/c47Rlzpq+q0hro9jBvzJAmivPT9x7ygwfwmr9tLLsT/C8Iv04u/wHzsdS+ACUkAhgrh6OC+jLg2lsTNaQwlHlJZX98egQRhge8nLkJ6dmker/gEZNm98+wUIpyKbWmieD9MADobk5KG4SDOZ6SEgXoUtu5wUYkm77Dg5Q79gUKD7f7LXniKVOO8+5nCOFAuoTHscHe5Hvw4FxMcutItIgCTJ4W9ls6dRRNPyknIff/mxhcLmmYawqRFFR/RPznwyUwS/B9tWWs3m4z0rKYaHoDDR46gwPJixJG4QtX0kSssZKiWi6K28f19qJdffuv2pTFLHX5EVJvWr9t96TBBZdXMdV4fGr8jEA6
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(4143699003)(11063799006)(22082099003)(56012099003)(3023799003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a0RMLzZLUXlJejEvNEMycUw4dlJaVStsNTd2dFF6VkkvczB3U2U3VU1hRFRQ?=
 =?utf-8?B?RDNoMTNFMnpuVGp3MmtEaWhJT0ZiWTVzeGZCQlF1Wjk5U3BuVVY5MmdqU0xI?=
 =?utf-8?B?ejRxZlpmekxtUjduTkU1TVgzRlQ2K0VEMEg0V25LV0hYbnIvOE9HblBMOW9P?=
 =?utf-8?B?N29ISVNxN2EyWHBMTGcyWU85RDl3YlB0dG1xOTFrcnBwVHdSSVMzRlBldHZv?=
 =?utf-8?B?a3NsNnlpeFBHZG1nTFhJdWlMWnpFdVNGMTJmTWhhcVhRVmxsblV5VkUrMGxi?=
 =?utf-8?B?NC9Iazk0Ukg3cjUzSGpkbWhmYzFCV2RWeDlsMUhIa09rRFY2dS9CeEJoZ1ha?=
 =?utf-8?B?NDRFOFlzaDlEMUlKVHVlZmVSOVhQaDdHeE5USDM5UnF2cTFxUmYyei95TkhN?=
 =?utf-8?B?dC8xSDd1bUwvSldYM0tvYlJSZ2xneHUyVEQrZ0lRand4MjRlV1pIdUtqMVVu?=
 =?utf-8?B?QjFwZTBVZGN2ejgrbFJaMFFjS1hzQUhUT2RMeTNMM1NZMXZLVXN0b2NpcjZz?=
 =?utf-8?B?VlRVdjdNaEZVN2JQdWQ3Q2J5MllHejN1T0wxSnBoTnlOZGgxSmZVRjVKeEtK?=
 =?utf-8?B?V2cwaWkvUnFPRGs3VkovZmFWRFlLalFrZ2FmeU5nNUkzZm5MTk5CdlRKTlJM?=
 =?utf-8?B?Zk5aRHh2czJiS3VIOTJNdWo1NEx3R3hUOUlleEt6OFl6eTVvK0RrNnFqTk0z?=
 =?utf-8?B?UWRZMWpqOWE1dFAwNy9yc2xCKzVUSHAxSURPeDY3L2NTRDc0a05oUlZhTEJ3?=
 =?utf-8?B?TGV6amNqSGJvemRhR1lhOW85WkFEblY3VUwwYTZpVlg1UmpIdUVGM1R4M1NW?=
 =?utf-8?B?YjNDMDJOd0pST3J1QTY2b2tlUVlONkJtcGZEQzd2a3pFRTNXVHUyM0FtK2xw?=
 =?utf-8?B?VG8zdmxXd0dONk1QUlVGNzV2bTFweVcyODFGU2d2bUdSWkd0b3Vmb3NHbUU1?=
 =?utf-8?B?NW9pb3N5Ni83YlNXTVlPZWJPbTRvL3BUakF1MlZqVGJMY0xOS2ZrZkIyTi9T?=
 =?utf-8?B?Z2pzRm0yczkzV1NoOFhQamdhb3lGeWcxaXhZSlExNkR3SlpzNzRNbXovOGRY?=
 =?utf-8?B?SVpRdWpiNDRBRjg0eFNnQlRGbzRFQS9vNDRORGJpb0puOFUxQkplazV6Y1Vh?=
 =?utf-8?B?c2hWczhSc3ZoVDZYMUFTR0dBa1ZMT2VWTzVIbWpRRWZjKzVud2ROZks2TEli?=
 =?utf-8?B?dGg0c3VSVVIydG1BVFBITVhvWTlycVJxNHdhbTVIMTFMWnJBTzd1RDdiY2Jq?=
 =?utf-8?B?WWorNmp1dWZQWVlGSjJBN05Dd1BISEw3OVpkc3R4dkhZMnR6WDlvRHJteTdF?=
 =?utf-8?B?SUY1NlNGbjNvc0JzVXA5MUZyNXoreXZxemxJTTRtRmhSdTZXSGRHUlJVY1VU?=
 =?utf-8?B?OHJZU3BEdHYzcU93TGp5aTJ1RDNqVWVDZVJOQURlWmMxeGF1OGdKQXFEaXJT?=
 =?utf-8?B?VHdrTVJZREQrbzVRTS80ZENWR2dNbVhzUi8vd2kzQTFXdi92TDBPM0RYTEt0?=
 =?utf-8?B?V1N6TDBlSEdDcWpLZDVpY2lVYVJxV1U5R2dWOWNwdEdYNWlnZG9nNnVIV0h3?=
 =?utf-8?B?enoyWk1KMHpsOExrenFhTlZsVXE0YWdPNHJPRkdYanlMS3JzMGprOGNyUnY4?=
 =?utf-8?B?SCtyQzlvcGFENjNha29DVm1xVXFKdWkwT0xlQkQvNGZqQzB3VmgvNExaUm5G?=
 =?utf-8?B?NGVnMmtRSDRqbnc5VG1yd0laTjgyZnRBZjVlSnZQNFBOZW1JS2lvSzVKMkdF?=
 =?utf-8?B?YXlQWTYrRVZ4YjUwUHpYM0U1YktYOGNCcGRyWHdmMklZQjV3RjdFblY0MWdU?=
 =?utf-8?B?ajhkWDV2S2R5VHAxaDRkZzIyU2JJVG1TUzRPekx1Y0s3Ync4cHFwdFNZTEhP?=
 =?utf-8?B?MTlRZlludHFyVklZTHNzRE5UNzlJK3oycDl0em5tcGx5cHQyUXBhVDZIaVlI?=
 =?utf-8?B?L2I1bzlXQVAzMUplMCtXNFFDWVI3NEVZSmdNaTVETnpTK2ErTkJQY0lmcjNQ?=
 =?utf-8?B?SlQrejMzbGJrZHVqNzZ3Zmh6TW13WFl5RjVPQTFQVTRzUTc2cmJ0UVB0THFk?=
 =?utf-8?B?WXJuSGV6UVVNaGgwVEdIK09VWFdtYXJBVWdNcFdHaTd5M1o5ZXoreW1JcnV0?=
 =?utf-8?B?RnErczd0RGhOV2Y5ZUxENUdENmMvTGtBcmVqR0MyN1RBWFBLeEdjSVgzM3ZQ?=
 =?utf-8?B?RTVQei9LU1A5RnhBc0dWVDRsSmVDWHdYdDNwZ0orRzRKNFFvWGs3UUVqTXF5?=
 =?utf-8?B?YnE2QVdGejJkMldOV1ZxVmZSVVF0YUVBSDVHM2FBUVlhbjY3TlZSUjZUWHAr?=
 =?utf-8?B?a3oxWVcyMm5CUjNJeVBvY2o0VUxaazlDRzAySkdaeDg5QjJENGdmSHJVeFls?=
 =?utf-8?Q?+WlhYU0DnXj+Abwg=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dc921fda-a1db-4c2a-9146-08deb5a48994
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 12:45:42.2527
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: G6wyGGKltT3joT0qJzrffTYWaMutyPdyM9uB/8SHJ01yXerBxJZg0rQjDu/iDdT07jccIx4FmrYu8/V6jRF35B8OrrgUr/WLzIZfcz4lpkU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5377
X-purgate-ID: tlsNG-ebf023/1779194745-42D643FF-CF12071E/0/0
X-purgate-type: clean
X-purgate-size: 1432

On 19/05/2026 12:43 am, Edgar E. Iglesias wrote:
> The generic Xen strrchr() implementation returns a pointer to the string
> terminator when searching for '\0', matching the standard C semantics.
>
> The ARM64 assembly version stopped as soon as it loaded the terminator and
> returned the previous match pointer instead.  This made strrchr("", '\0')
> return NULL.
>
> Compare the loaded byte against the requested character before deciding
> whether to stop at the terminator, so the terminator itself can be returned
> when it is the requested character.
>
> Fixes: 42c4eb6a83 ("xen: arm64: assembly optimised mem* and str*")
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> ---
>  xen/arch/arm/arm64/lib/strrchr.S | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)

A couple of tangential things.

This file was inherited from Linux.  Does the same bug need fixing
there?  What about the arm32 side?

Looking at your example, it surely wasn't actually as simple as
strrchr("", '\0') ?  I'd expect the optimiser to be able to turn that
into a constant and not call out to the library implementation.

Elsewhere, I've created xen/common/bitops.c to be CONFIG_SELF_TESTS for
the bit operations including the arch-optimised variations, because
they're subtle and easy to get wrong.  This looks like it's worth doing
the same for the bits of libc we implement.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue May 19 12:54:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 12:54:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312962.1583132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPJy8-000805-HO; Tue, 19 May 2026 12:54:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312962.1583132; Tue, 19 May 2026 12:54:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPJy8-0007zy-EA; Tue, 19 May 2026 12:54:44 +0000
Received: by outflank-mailman (input) for mailman id 1312962;
 Tue, 19 May 2026 12:54:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wPJy7-0007zs-4R
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 12:54:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPJy5-006q17-2N
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 14:54:41 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a0c5d75-2eae-0a2a0a5409dd-0a2a45078838-48
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 14:54:40 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a0c5d8f-229c-0a2a45070019-a0658309dcd8-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 14:54:40 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id A8D8082044AB;
 Tue, 19 May 2026 08:53:29 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Subject: [PATCH] tests/mem-claim: System test suite for NUMA-aware claim sets
Date: Tue, 19 May 2026 13:53:08 +0100
Message-Id: <89ed55c313dff841ba7030bb7fa13ab248cb3ccd.1779193767.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1779195280-28678FE8-85430644/0/0
X-purgate-type: clean
X-purgate-size: 94387

Add a comprehensive test suite for the xc_domain_claim_memory() API
and the legacy xc_domain_claim_pages() API for regression testing and
confirming interoperability that covers argument validation and the
protection semantics of memory claims across domains and NUMA nodes.

The suite verifies claim behaviour both host-wide and per-node, and
checks how host-wide and node-specific claims interact with claim
and allocation requests for other domains to ensure correct claims
protection and claims invariant maintenance across all code paths.

Key checks include:

- Argument validation and correct errno handling for invalid inputs.
- NUMA-aware claim sets, covering node-specific and global targets.
- Replacement semantics after allocations (global and node-scoped).
- Inter-domain protection and claim movement across NUMA nodes.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
Dear reviewers,

this patch provides the system tests for the NUMA claims series v7:
https://lists.xen.org/archives/html/xen-devel/2026-05/msg00363.html

For reference, find an example of running it on a claims-v7 series
Xen hypervisor (on a NUMA host in this case, UMA hosts skip some tests):

$ git pull git@gitlab.com:bernhardkaindl/xen.git claims-system-test-v7
$ make -C tools/tests/mem-claim clean all
$ tools/tests/mem-claim/test-claim-memory -h
Usage: tools/tests/mem-claim/test-claim-memory [OPTIONS]

Options:
  -l, --list         List available test IDs and exit
  -t, --test ID      Run only the specified test ID (repeatable)
  -v, --verbose      Print per-step progress
  -h, --help         Show this help text
Available tests:
  A1-1  basic_node_claim
  A1-2  host_wide_replace_after_alloc
  A1-3  node_replace_after_alloc
  A1-4  legacy_host_wide_claim
  A1-5  move_claim_between_nodes
  A1-6  zero_claim_resets_claim
  A1-7  zero_claim_memory_reset
  A1-8  query_claim_memory_size
  I1-1  reject_non_present_node
  I1-2  reject_too_many_claims
  I1-3  reject_node_gt_uint8_max
  I1-4  reject_pages_gt_int32_max
  I1-5  reject_nonzero_pad
  I1-6  reject_zero_claim_count
  I1-7  null_claims_nonzero_count
  I1-8  zero_count_with_pointer
  I1-9  claim_pages_gt_free_enomem
  I2-1  claim_pages_causes_enomem
  I2-2  claim_memory_causes_enomem
  I2-3  claim_prima_causes_enomem

$ tools/tests/mem-claim/test-claim-memory -v

========= testcase program: tools/tests/mem-claim/test-claim-memory ==========
      step 1: create primary domain
      step 2: set maxmem for primary domain
      step 3: create secondary domain
      step 4: set maxmem for secondary domain
      step 5: set basic node claim
      step 6: check node claim is reflected in outstanding pages
      step 7: destroy helper domain
      step 8: destroy primary domain
      step 9: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::A1-1  PASSED (0.01 ms)
      step 10: create primary domain
      step 11: set maxmem for primary domain
      step 12: create secondary domain
      step 13: set maxmem for secondary domain
      step 14: install initial host-wide claim
      step 15: Allocate one extent to consume part of claim
      step 16: reduce host-wide claim after allocation
      step 17: release all claims with zero claim
      step 18: destroy helper domain
      step 19: destroy primary domain
      step 20: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::A1-2  PASSED (0.04 ms)
      step 21: create primary domain
      step 22: set maxmem for primary domain
      step 23: create secondary domain
      step 24: set maxmem for secondary domain
      step 25: set initial node-specific replacement claim
      step 26: Allocate one extent to consume part of claim
      step 27: replace node claim with a new absolute target
      step 28: release all claims with zero claim
      step 29: destroy helper domain
      step 30: destroy primary domain
      step 31: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::A1-3 PASSED (0.02 ms)
      step 32: create primary domain
      step 33: set maxmem for primary domain
      step 34: create secondary domain
      step 35: set maxmem for secondary domain
      step 36: set legacy host-wide claim
      step 37: claim is added the outstanding pages
      step 38: allocate extents to redeem a part of claim
      step 39: allocated against claim, outstanding pages reduced
      step 40: destroy helper domain
      step 41: destroy primary domain
      step 42: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::A1-4 PASSED (0.03 ms)
      step 43: create primary domain
      step 44: set maxmem for primary domain
      step 45: create secondary domain
      step 46: set maxmem for secondary domain
      step 47: Claim most memory on source node.
      step 48: claim all except 10 pages on node 1
      step 49: claim all pages except 10 pages on node 1 claim=23748599 free=23748609
      step 50: The claim blocks the allocation on the source node.
      step 51: Move the claim to most memory on the destination node.
      step 52: claim all except 10 pages on node 0
      step 53: claim all pages except 10 pages on node 0 claim=23526547 free=23526557
      step 54: Moved claim no longer blocks allocs on source node.
      step 55: Moved claim now blocks allocs on destination node.
      step 56: release all claims with zero claim
      step 57: Claim released, allocs on destination node succeed.
      step 58: release all claims with zero claim
      step 59: destroy helper domain
      step 60: destroy primary domain
      step 61: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::A1-5 PASSED (0.15 ms)
      step 62: create primary domain
      step 63: set maxmem for primary domain
      step 64: create secondary domain
      step 65: set maxmem for secondary domain
      step 66: zero claim to reset outstanding to baseline
      step 67: zero claim to reset outstanding to baseline
      step 68: check zero claim resets outstanding to baseline
      step 69: destroy helper domain
      step 70: destroy primary domain
      step 71: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::A1-6 PASSED (0.01 ms)
      step 72: create primary domain
      step 73: set maxmem for primary domain
      step 74: create secondary domain
      step 75: set maxmem for secondary domain
      step 76: make a claim to move outstanding away from baseline
      step 77: set a zero claim to reset outstanding to baseline
      step 78: check zero claim resets outstanding to baseline
      step 79: destroy helper domain
      step 80: destroy primary domain
      step 81: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::A1-7 PASSED (0.01 ms)
      step 82: create primary domain
      step 83: set maxmem for primary domain
      step 84: create secondary domain
      step 85: set maxmem for secondary domain
      step 86: Query claim-set size with nr_entries=0 and claim_set=NULL
      step 87: Fetch the claim set using the returned entry count
      step 88: destroy helper domain
      step 89: destroy primary domain
      step 90: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::A1-8 PASSED (0.00 ms)
      step 91: create primary domain
      step 92: set maxmem for primary domain
      step 93: create secondary domain
      step 94: set maxmem for secondary domain
      step 95: reject claim on a non-present NUMA node
      step 96: destroy helper domain
      step 97: destroy primary domain
      step 98: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::I1-1 PASSED (0.00 ms)
      step 99: create primary domain
      step 100: set maxmem for primary domain
      step 101: create secondary domain
      step 102: set maxmem for secondary domain
      step 103: reject claim list larger than the supported maximum
      step 104: destroy helper domain
      step 105: destroy primary domain
      step 106: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::I1-2 PASSED (0.03 ms)
      step 107: create primary domain
      step 108: set maxmem for primary domain
      step 109: create secondary domain
      step 110: set maxmem for secondary domain
      step 111: reject claim with node id above UINT8_MAX
      step 112: destroy helper domain
      step 113: destroy primary domain
      step 114: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::I1-3 PASSED (0.00 ms)
      step 115: create primary domain
      step 116: set maxmem for primary domain
      step 117: create secondary domain
      step 118: set maxmem for secondary domain
      step 119: reject claim with pages larger than INT32_MAX
      step 120: destroy helper domain
      step 121: destroy primary domain
      step 122: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::I1-4 PASSED (0.00 ms)
      step 123: create primary domain
      step 124: set maxmem for primary domain
      step 125: create secondary domain
      step 126: set maxmem for secondary domain
      step 127: reject claim with non-zero cmd
      step 128: destroy helper domain
      step 129: destroy primary domain
      step 130: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::I1-5 PASSED (0.00 ms)
      step 131: create primary domain
      step 132: set maxmem for primary domain
      step 133: create secondary domain
      step 134: set maxmem for secondary domain
      step 135: reject xc_domain_claim_memory() with nr_claims == 0
      step 136: destroy helper domain
      step 137: destroy primary domain
      step 138: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::I1-6 [nr_claims=0] PASSED (0.00 ms)
      step 139: create primary domain
      step 140: set maxmem for primary domain
      step 141: create secondary domain
      step 142: set maxmem for secondary domain
      step 143: reject xc_domain_claim_memory() with claims=NULL and nr_claims == 1
      step 144: destroy helper domain
      step 145: destroy primary domain
      step 146: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::I1-7 [nr_claims=1 claims=NULL] PASSED (0.00 ms)
      step 147: create primary domain
      step 148: set maxmem for primary domain
      step 149: create secondary domain
      step 150: set maxmem for secondary domain
      step 151: reject xc_domain_claim_memory() with !nr_claims but a claims pointer
      step 152: destroy helper domain
      step 153: destroy primary domain
      step 154: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::I1-8 [nr_claims=0 claims=valid node=1] PASSED (0.00 ms)
      step 155: create primary domain
      step 156: set maxmem for primary domain
      step 157: create secondary domain
      step 158: set maxmem for secondary domain
      step 159: reject xc_domain_claim_pages() with pages > total free pages
      step 160: reject claim_memory() with pages > total free pages
      step 161: reject claim_memory() with pages > node free pages
      step 162: destroy helper domain
      step 163: destroy primary domain
      step 164: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::I1-9 [claim=47275120 free=47275119] PASSED (0.01 ms)
      step 165: create primary domain
      step 166: set maxmem for primary domain
      step 167: create secondary domain
      step 168: set maxmem for secondary domain
      step 169: dom_1: claim nearly all global memory with claim_pages
      step 170: expect ENOMEM for xc_domain_claim_pages() with claims > spare page
      step 171: expect ENOMEM for claim_memory() with claims > spare pages
      step 172: expect ENOMEM for claim_memory() with claims > spare pages
      step 173: destroy helper domain
      step 174: destroy primary domain
      step 175: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::I2-1 [claim=47274872 free=47275072] PASSED (0.01 ms)
      step 176: create primary domain
      step 177: set maxmem for primary domain
      step 178: create secondary domain
      step 179: set maxmem for secondary domain
      step 180: claim all except 200 pages on host
      step 181: claim all pages except 200 pages on host claim=47274825 free=47275025
      step 182: expect ENOMEM for xc_domain_claim_pages() with claims > spare page
      step 183: expect ENOMEM for claim_memory() with claims > spare pages
      step 184: expect ENOMEM for claim_memory() with claims > spare pages
      step 185: destroy helper domain
      step 186: destroy primary domain
      step 187: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::I2-2 PASSED (0.01 ms)
      step 188: create primary domain
      step 189: set maxmem for primary domain
      step 190: create secondary domain
      step 191: set maxmem for secondary domain
      step 192: claim all except 200 pages on node 1
      step 193: claim all pages except 200 pages on node 1 claim=23748361 free=23748561
      step 194: expect ENOMEM for claim_memory() with claims > spare pages
      step 195: destroy helper domain
      step 196: destroy primary domain
      step 197: check cleanup restored baseline claimed pages
tools/tests/mem-claim/test-claim-memory::I2-3 PASSED (0.01 ms)
================== short test summary info =================
PASSED A1-1 basic_node_claim
PASSED A1-2 host_wide_replace_after_alloc
PASSED A1-3 node_replace_after_alloc
PASSED A1-4 legacy_host_wide_claim
PASSED A1-5 move_claim_between_nodes
PASSED A1-6 zero_claim_resets_claim
PASSED A1-7 zero_claim_memory_reset
PASSED A1-8 query_claim_memory_size
PASSED I1-1 reject_non_present_node
PASSED I1-2 reject_too_many_claims
PASSED I1-3 reject_node_gt_uint8_max
PASSED I1-4 reject_pages_gt_int32_max
PASSED I1-5 reject_nonzero_pad
PASSED I1-6 reject_zero_claim_count
PASSED I1-7 null_claims_nonzero_count
PASSED I1-8 zero_count_with_pointer
PASSED I1-9 claim_pages_gt_free_enomem
PASSED I2-1 claim_pages_causes_enomem
PASSED I2-2 claim_memory_causes_enomem
PASSED I2-3 claim_prima_causes_enomem
============ 20 passed, 0 failed, 0 skipped ============

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 tools/tests/mem-claim/.gitignore          |   1 +
 tools/tests/mem-claim/Makefile            |  35 +-
 tools/tests/mem-claim/accounting-1.h      | 456 ++++++++++
 tools/tests/mem-claim/input-phase1.h      | 173 ++++
 tools/tests/mem-claim/input-phase2.h      |  96 +++
 tools/tests/mem-claim/libtestclaims.c     | 980 ++++++++++++++++++++++
 tools/tests/mem-claim/libtestclaims.h     | 203 +++++
 tools/tests/mem-claim/test-claim-memory.c | 130 +++
 8 files changed, 2067 insertions(+), 7 deletions(-)
 create mode 100644 tools/tests/mem-claim/accounting-1.h
 create mode 100644 tools/tests/mem-claim/input-phase1.h
 create mode 100644 tools/tests/mem-claim/input-phase2.h
 create mode 100644 tools/tests/mem-claim/libtestclaims.c
 create mode 100644 tools/tests/mem-claim/libtestclaims.h
 create mode 100644 tools/tests/mem-claim/test-claim-memory.c

diff --git a/tools/tests/mem-claim/.gitignore b/tools/tests/mem-claim/.gitignore
index cfcee00b819b..08365576b22b 100644
--- a/tools/tests/mem-claim/.gitignore
+++ b/tools/tests/mem-claim/.gitignore
@@ -1 +1,2 @@
 test-mem-claim
+test-claim-memory
diff --git a/tools/tests/mem-claim/Makefile b/tools/tests/mem-claim/Makefile
index 76ba3e3c8bef..5c090639553b 100644
--- a/tools/tests/mem-claim/Makefile
+++ b/tools/tests/mem-claim/Makefile
@@ -1,14 +1,34 @@
 XEN_ROOT = $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
-TARGET := test-mem-claim
+TARGETS := test-mem-claim test-claim-memory
+
+LIB_OBJ := libtestclaims.o
 
 .PHONY: all
-all: $(TARGET)
+all: $(TARGETS)
+
+#  Can also be called with "make run-tests-mem-claim" from the toplevel.
+.PHONY: run
+run: $(TARGETS)
+ifeq ($(CC),$(HOSTCC))
+	set -e;             \
+	for test in $? ; do \
+		./$$test ;  \
+	done
+else
+	$(warning HOSTCC != CC, will not run test)
+endif
+
+# The tests in this directory need to run in a privileged domain (Dom0)
+# with libxenctrl and a matching the hypervisor to test running it.
+# Therefore, they don't run with the native test target for build-time tests.
+.PHONY: test
+test:
 
 .PHONY: clean
 clean:
-	$(RM) -- *.o $(TARGET) $(DEPS_RM)
+	$(RM) -- *.o $(TARGETS) $(DEPS_RM)
 
 .PHONY: distclean
 distclean: clean
@@ -17,11 +37,11 @@ distclean: clean
 .PHONY: install
 install: all
 	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
-	$(INSTALL_PROG) $(TARGET) $(DESTDIR)$(LIBEXEC)/tests
+	$(INSTALL_PROG) $(TARGETS) $(DESTDIR)$(LIBEXEC)/tests
 
 .PHONY: uninstall
 uninstall:
-	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET)
+	$(RM) -- $(patsubst %,$(DESTDIR)$(LIBEXEC)/tests/%,$(TARGETS))
 
 CFLAGS += $(CFLAGS_xeninclude)
 CFLAGS += $(CFLAGS_libxenctrl)
@@ -32,7 +52,8 @@ LDFLAGS += $(APPEND_LDFLAGS)
 
 %.o: Makefile
 
-$(TARGET): test-mem-claim.o
-	$(CC) -o $@ $< $(LDFLAGS)
+
+$(TARGETS): %: %.o $(LIB_OBJ)
+	$(CC) -o $@ $^ $(LDFLAGS)
 
 -include $(DEPS_INCLUDE)
diff --git a/tools/tests/mem-claim/accounting-1.h b/tools/tests/mem-claim/accounting-1.h
new file mode 100644
index 000000000000..09b1fa69ce3d
--- /dev/null
+++ b/tools/tests/mem-claim/accounting-1.h
@@ -0,0 +1,456 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * claim-memory-allocations.h - Test claiming memory and claims protection
+ * with NUMA-aware claim sets.
+ *
+ * Check claiming memory and allocation against claims with NUMA-aware
+ * claim sets, including:
+ *
+ * - Claim nearly all free memory on a node or host-wide,
+ * - Verify the claim is reflected in physinfo
+ * - Assert that memory can be allocated by redeeming the claim.
+ * - Exercise xc_domain_claim_memory() with different valid claim sets.
+ * - Exercise xc_domain_claim_pages() and verify that claims are reflected
+ *   in the outstanding pages in Xen.
+ */
+#include "libtestclaims.h"
+
+/*
+ * A1-1: basic single-node claim is tracked in outstanding pages and released
+ * when the domain is destroyed.
+ *
+ * Smoke test: claims half the primary node's free pages, verifies they
+ * appear in physinfo.outstanding_pages, then returns.  The fixture destroys
+ * the domain, which releases the claim, and verifies outstanding pages returns
+ * to the pre-test baseline.
+ *
+ * Skipped when NUMA is disabled (num_nodes == 1 and no per-node free pages) or
+ * when there are fewer than 2 free pages available on the primary node.
+ */
+static int test_basic_node_claim(struct test_ctx *ctx)
+{
+    uint64_t pre_existing_claims, free_pages;
+    xen_memory_claim_t claim;
+
+    /* Get the free memory on the test node */
+    ctx->target1 = ctx->env->primary_node;
+    lib_get_node_free_pages(ctx, ctx->target1, &free_pages, NULL);
+
+    if ( free_pages < 2 )
+        return lib_fail(
+            ctx, "need >= 2 free pages on node %" PRIu64 ", got %" PRIu64,
+            ctx->target1, free_pages);
+
+    /*
+     * Leave one page of slack between the claim and the free pages
+     * so claim does not fail due to a small concurrent allocation.
+     */
+    ctx->alloc_pages = free_pages - 1;
+    snprintf(ctx->result->params, sizeof(ctx->result->params),
+             "node=%" PRIu64 " claim_pages=%" PRIu64 " free_pages=%" PRIu64,
+             ctx->target1, ctx->alloc_pages, free_pages);
+
+    /*
+     * Capture the baseline after domain creation (domain creation doesn't
+     * change outstanding pages, so this equals the fixture's baseline).
+     */
+    rc = lib_get_total_claims(ctx, &pre_existing_claims);
+    if ( rc )
+        return rc;
+
+    claim = (xen_memory_claim_t){
+        .pages = ctx->alloc_pages,
+        .target = ctx->target1
+    };
+    rc = lib_claim_memory(ctx, ctx->dom_1, 1, &claim, "set basic node claim");
+    if ( rc )
+        return rc;
+
+    return lib_check_claim(
+        ctx, pre_existing_claims, ctx->alloc_pages,
+        "check node claim is reflected in outstanding pages");
+
+    /* Domain teardown releases claim; fixture verifies baseline is restored. */
+}
+
+/*
+ * A1-2: host-wide claim is replaced atomically after an allocation.
+ *
+ * Sets an initial host-wide claim, allocates one extent (consuming part of it),
+ * then sets a smaller replacement claim and verifies the outstanding count
+ * reflects the new absolute target.
+ */
+static int test_update_host_after_alloc(struct test_ctx *ctx)
+{
+    unsigned long free_pages;
+    unsigned long initial_pages;
+
+    /* Get the total free memory for sizing the initial claim */
+    lib_get_total_free_pages(ctx, &free_pages);
+
+    if ( free_pages < 2 )
+        return lib_fail(ctx, "need >= 2 free pages total, got %" PRIu64,
+                        free_pages);
+
+    /*
+     * This test needs two valid claim targets: an initial larger claim
+     * and a smaller replacement target after consuming one claimed page.
+     */
+    initial_pages    = free_pages;
+    ctx->alloc_pages = free_pages / 2;
+
+    snprintf(ctx->result->params, sizeof(ctx->result->params),
+             "alloc_pages=%" PRIu64 " initial=%" PRIu64 " "
+             "replacement=%" PRIu64 " total free=%" PRIu64,
+             ctx->alloc_pages, initial_pages, ctx->alloc_pages, free_pages);
+
+    rc = lib_claim_memory(ctx, ctx->dom_1, 1, /* one claim record */
+                          &(xen_memory_claim_t){
+                              .pages  = initial_pages,
+                              .target = XEN_DOMCTL_CLAIM_MEMORY_HOST,
+                          },
+                          "install initial host-wide claim");
+    if ( rc )
+        return rc;
+
+    lib_set_step(ctx, "Allocate one extent to consume part of claim");
+    rc = lib_populate_success(ctx, (lib_populate_args_t){
+                                  .domid      = ctx->dom_1,
+                                  .nr_extents = 1,
+                              });
+    if ( rc )
+        return rc;
+
+    rc = lib_claim_memory(ctx, ctx->dom_1, 1, /* one claim record */
+                          &(xen_memory_claim_t){
+                              .pages  = ctx->alloc_pages,
+                              .target = XEN_DOMCTL_CLAIM_MEMORY_HOST,
+                          },
+                          "reduce host-wide claim after allocation");
+    if ( rc )
+        return rc;
+
+    return lib_release_all_claims(ctx, ctx->dom_1);
+}
+
+/*
+ * A1-3: node-specific claim is replaced atomically after an allocation.
+ *
+ * Same as A1-2 but scoped to the primary NUMA node:
+ * Sets an initial node claim, allocates one extent (consuming part of it),
+ * then sets a smaller replacement claim and verifies the outstanding count
+ * reflects the new absolute target.
+ */
+static int test_node_replace_after_alloc(struct test_ctx *ctx)
+{
+    uint64_t free_pages, initial_pages;
+
+    /* Node used for claim sizing, claiming and allocation */
+    ctx->target1 = ctx->env->primary_node;
+
+    /* Get the free memory on the test node for sizing the initial claim */
+    lib_get_node_free_pages(ctx, ctx->target1, &free_pages, NULL);
+    if ( free_pages < 2 )
+        return lib_skip_test(
+            ctx, "need >= 2 pages on node %" PRIu64 ", got %" PRIu64,
+            ctx->target1, free_pages);
+    /*
+     * This test needs two valid claim targets: an initial larger claim
+     * and a smaller replacement target after consuming one claimed page.
+     *
+     * Leave one page of slack between the claim and the free pages
+     * so claim does not fail due to a small concurrent allocation.
+     */
+    initial_pages    = free_pages - 1;
+    ctx->alloc_pages = free_pages / 2;
+
+    /* Logging of test parameters */
+    snprintf(ctx->result->params, sizeof(ctx->result->params),
+             "node=%" PRIu64 " init=%" PRIu64 " replacement=%" PRIu64
+             " free=%" PRIu64,
+             ctx->target1, initial_pages, ctx->alloc_pages, free_pages);
+
+    /* Create the claim with initial_pages */
+    rc = lib_claim_memory(ctx, ctx->dom_1, 1, /* one claim */
+                          &(xen_memory_claim_t){
+                              .pages  = initial_pages,
+                              .target = ctx->target1,
+                          },
+                          "set initial node-specific replacement claim");
+    if ( rc )
+        return rc;
+
+    lib_set_step(ctx, "Allocate one extent to consume part of claim");
+    rc =
+        lib_populate_success(ctx, (lib_populate_args_t){
+                                 .domid      = ctx->dom_1,
+                                 .nr_extents = 1,
+                                 .flags = XENMEMF_exact_node(ctx->target1),
+                             });
+    if ( rc )
+        return rc;
+
+    /* Update the claim with ctx->alloc_pages */
+    rc = lib_claim_memory(ctx, ctx->dom_1, 1, /* one claim */
+                          &(xen_memory_claim_t){
+                              .pages  = ctx->alloc_pages,
+                              .target = ctx->target1,
+                          },
+                          "replace node claim with a new absolute target");
+    if ( rc )
+        return rc;
+
+    return lib_release_all_claims(ctx, ctx->dom_1);
+}
+
+/*
+ * A1-4: legacy xc_domain_claim_pages() host-wide claim is tracked in outstanding
+ * pages, reduced by an allocation, and released when the domain is destroyed.
+ */
+static int test_legacy_host_wide_claim(struct test_ctx *ctx)
+{
+    uint64_t pre_existing_claims, free_pages;
+
+    /* Get the total free memory for sizing the claim */
+    lib_get_total_free_pages(ctx, &free_pages);
+
+    ctx->alloc_pages = free_pages / 2;
+    snprintf(ctx->result->params, sizeof(ctx->result->params), "claim=%" PRIu64,
+             ctx->alloc_pages);
+
+    rc = lib_get_total_claims(ctx, &pre_existing_claims);
+    if ( rc )
+        return rc;
+
+    rc = lib_claim_pages_legacy(ctx, ctx->dom_1, ctx->alloc_pages,
+                                "set legacy host-wide claim");
+    if ( rc )
+        return rc;
+
+    rc = lib_check_claim(ctx, pre_existing_claims, ctx->alloc_pages,
+                         "claim is added the outstanding pages");
+    if ( rc )
+        return rc;
+
+    lib_set_step(ctx, "allocate extents to redeem a part of claim");
+    rc = lib_populate_success(ctx, (lib_populate_args_t){
+                                  .domid      = ctx->dom_1,
+                                  .nr_extents = 10,
+                              });
+    if ( rc )
+        return rc;
+
+    return lib_check_claim(
+        ctx, pre_existing_claims, ctx->alloc_pages - 10,
+        "allocated against claim, outstanding pages reduced");
+    /* Teardown releases the claim; fixture verifies baseline is restored. */
+}
+
+/*
+ * A1-5: Test blocking allocation with claims and claim movement between nodes.
+ *
+ * This test performs a sequence of claims and allocations to verify that claims
+ * block allocations on the claimed node, that moving a claim to another node
+ * allows allocation on the original node, and that the new node is now blocked
+ * by the claim until it is released.
+ *
+ * To achieve this, the test creates a helper domain used for allocation
+ * attempts, then:
+ *
+ * Claims most free pages on the primary node, verifies allocation is blocked,
+ * then moves the claim to the secondary node, verifies the original allocation
+ * can now succeed on the primary node.
+ *
+ * It then verifies allocation is now blocked on the secondary node,
+ * releases the claim, and verifies the allocation can now succeed on the
+ * secondary node as well.
+ *
+ * Requires at least two online NUMA nodes.
+ */
+static int test_move_claim_between_nodes(struct test_ctx *ctx)
+{
+    uint64_t free_src, free_dst, spare_pages = 10;
+
+    if ( !ctx->env->have_secondary_node )
+        return lib_skip_test(ctx, "Requires at least two online NUMA nodes.");
+
+    ctx->target1 = ctx->env->primary_node;
+    ctx->target2 = ctx->env->secondary_node;
+
+    lib_get_node_free_pages(ctx, ctx->target1, &free_src, NULL);
+    lib_get_node_free_pages(ctx, ctx->target2, &free_dst, NULL);
+
+    if ( free_src < spare_pages + 1 || free_dst < spare_pages + 1 )
+        return lib_fail(ctx, "Need more pages, got %" PRIu64 "/%" PRIu64 ".",
+                        free_src, free_dst);
+
+    lib_set_step(ctx, "Claim most memory on source node.");
+    rc = lib_claim_all_on_node(ctx, ctx->dom_1, ctx->target1, spare_pages);
+    if ( rc )
+        return rc;
+
+    lib_set_step(ctx, "The claim blocks the allocation on the source node.");
+    rc =
+        lib_populate_failure(ctx, (lib_populate_args_t){
+                                 .domid      = ctx->dom_2,
+                                 .nr_extents = spare_pages * 2,
+                                 .flags = XENMEMF_exact_node(ctx->target1),
+                             });
+    if ( rc )
+        return rc;
+
+    lib_set_step(ctx, "Move the claim to most memory on the destination node.");
+    rc = lib_claim_all_on_node(ctx, ctx->dom_1, ctx->target2, spare_pages);
+    if ( rc )
+        return rc;
+
+    lib_set_step(ctx, "Moved claim no longer blocks allocs on source node.");
+    rc =
+        lib_populate_success(ctx, (lib_populate_args_t){
+                                 .domid      = ctx->dom_2,
+                                 .start      = spare_pages * 2,
+                                 .nr_extents = spare_pages * 2,
+                                 .flags = XENMEMF_exact_node(ctx->target1),
+                             });
+    if ( rc )
+        return rc;
+
+    lib_set_step(ctx, "Moved claim now blocks allocs on destination node.");
+    rc =
+        lib_populate_failure(ctx, (lib_populate_args_t){
+                                 .domid      = ctx->dom_2,
+                                 .nr_extents = spare_pages * 2,
+                                 .flags = XENMEMF_exact_node(ctx->target2),
+                             });
+    if ( rc )
+        return rc;
+
+    rc = lib_release_all_claims(ctx, ctx->dom_1);
+    if ( rc )
+        return rc;
+
+    lib_set_step(ctx, "Claim released, allocs on destination node succeed.");
+    rc =
+        lib_populate_success(ctx, (lib_populate_args_t){
+                                 .domid      = ctx->dom_2,
+                                 .start      = spare_pages * 2,
+                                 .nr_extents = spare_pages * 2,
+                                 .flags = XENMEMF_exact_node(ctx->target2),
+                             });
+    if ( rc )
+        return rc;
+
+    return lib_release_all_claims(ctx, ctx->dom_1);
+}
+
+/*
+ * A1-6: Check that a calling xc_domain_claim_pages(claim_pages = 0)
+ * resets the claims to the baseline.
+ */
+static int test_zero_claim_resets_claim(struct test_ctx *ctx)
+{
+    uint64_t pre_existing_claims;
+
+    rc = lib_get_total_claims(ctx, &pre_existing_claims);
+    if ( rc )
+        return rc;
+
+    /* Make a claim first to move outstanding away from the baseline. */
+    rc = lib_claim_pages_legacy(ctx, ctx->dom_1, 8,
+                                "zero claim to reset outstanding to baseline");
+    if ( rc )
+        return rc;
+
+    /* Now set a zero claim to reset outstanding back to the baseline. */
+    rc = lib_claim_pages_legacy(ctx, ctx->dom_1, 0,
+                                "zero claim to reset outstanding to baseline");
+    if ( rc )
+        return rc;
+
+    return lib_check_claim(ctx, pre_existing_claims, 0,
+                           "check zero claim resets outstanding to baseline");
+}
+
+/*
+ * A1-7: Check that a calling xc_domain_claim_memory(claim_pages = 0)
+ * resets the claims to the baseline.
+ */
+static int test_zero_claim_memory_resets(struct test_ctx *ctx)
+{
+    uint64_t pre_existing_claims;
+
+    rc = lib_get_total_claims(ctx, &pre_existing_claims);
+    if ( rc )
+        return rc;
+
+    /* Make a claim first to move outstanding away from the baseline. */
+    rc = lib_claim_memory(
+        ctx, ctx->dom_1, 1,
+        &(xen_memory_claim_t){ .pages = 8, .target = ctx->env->primary_node },
+        "make a claim to move outstanding away from baseline");
+    if ( rc )
+        return rc;
+
+    /* Now set a zero claim to reset outstanding back to the baseline. */
+    rc = lib_claim_memory(
+        ctx, ctx->dom_1, 1,
+        &(xen_memory_claim_t){
+            .pages = 0,
+            .target = XEN_DOMCTL_CLAIM_MEMORY_HOST
+        },
+        "set a zero claim to reset outstanding to baseline");
+    if ( rc )
+        return rc;
+
+    return lib_check_claim(ctx, pre_existing_claims, 0,
+                           "check zero claim resets outstanding to baseline");
+}
+
+/*
+ * A1-8: Check that xc_domain_claim_memory(GET) accepts nr_entries == 0 and
+ * claim_set == NULL to report the required claim-set size.
+ */
+static int test_query_claim_memory_size(struct test_ctx *ctx)
+{
+    xen_memory_claim_t claim = {};
+    uint32_t nr_entries = 0;
+
+    snprintf(ctx->result->params, sizeof(ctx->result->params),
+             "mode=get nr_entries=0 claim_set=NULL");
+
+    lib_set_step(ctx,
+                 "Query claim-set size with nr_entries=0 and claim_set=NULL");
+    rc = xc_domain_claim_memory(ctx->env->xch, ctx->dom_1,
+                                XEN_DOMCTL_CLAIM_MEMORY_GET,
+                                &nr_entries, NULL);
+    if ( rc != -1 || errno != ERANGE )
+        return lib_fail_with_errno(
+            ctx, errno,
+            "expected xc_domain_claim_memory(GET, nr_entries=0, claim_set=NULL) "
+            "to fail with ERANGE, got rc=%d and nr_entries=%u",
+            rc, nr_entries);
+
+    if ( nr_entries != 1 )
+        return lib_fail(ctx, "expected required claim-set size 1, got %u",
+                        nr_entries);
+
+    lib_set_step(ctx, "Fetch the claim set using the returned entry count");
+    rc = xc_domain_claim_memory(ctx->env->xch, ctx->dom_1,
+                                XEN_DOMCTL_CLAIM_MEMORY_GET,
+                                &nr_entries, &claim);
+    if ( rc )
+        return lib_fail_with_errno(ctx, errno,
+                                   "xc_domain_claim_memory(GET) failed");
+
+    if ( nr_entries != 1 )
+        return lib_fail(ctx, "expected one returned claim record, got %u",
+                        nr_entries);
+
+    if ( claim.target != XEN_DOMCTL_CLAIM_MEMORY_HOST || claim.pages != 0 )
+        return lib_fail(ctx,
+                        "expected a single zero host-wide claim, got target=%#x"
+                        " pages=%" PRIu64,
+                        claim.target, (uint64_t)claim.pages);
+
+    return 0;
+}
diff --git a/tools/tests/mem-claim/input-phase1.h b/tools/tests/mem-claim/input-phase1.h
new file mode 100644
index 000000000000..b86517363b96
--- /dev/null
+++ b/tools/tests/mem-claim/input-phase1.h
@@ -0,0 +1,173 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * input-phase1.h - Test Phase 1 argument validation for memory claims,
+ * including invalid claim parameters and claiming more pages than are free.
+ *
+ * I1-1 - I1-9: invalid claims are rejected with appropriate error codes.
+ *
+ * This file contains test cases to validate argument handling when dealing
+ * with NUMA-aware claim sets.
+ *
+ * Tests various invalid claim parameters (non-present node, too many claims,
+ * node id above UINT8_MAX, pages above INT32_MAX, non-zero pad, zero claim
+ * count, null claims pointer with non-zero count, and non-null claims pointer
+ * with zero count) and verify they are rejected with the expected error code.
+ */
+#include "libtestclaims.h"
+
+static int test_reject_non_present_node(struct test_ctx *ctx)
+{
+    xen_memory_claim_t claim = {
+        .pages = 1, .target = ctx->env->num_nodes, /* Out-of-range node id */
+    };
+
+    ctx->target1 = ctx->env->primary_node;
+    snprintf(ctx->result->params, sizeof(ctx->result->params),
+             "node=%u num_nodes=%u", claim.target, ctx->env->num_nodes);
+
+    return lib_expect_claim_memory_failure(
+        ctx, ctx->dom_1, 1, &claim, ENOENT,
+        "reject claim on a non-present NUMA node");
+}
+
+static int test_reject_too_many_claims(struct test_ctx *ctx)
+{
+    const uint32_t nr_claims = 0x100; /* Xen does not support such nr_claims */
+    xen_memory_claim_t claims[nr_claims];
+
+    ctx->target1 = ctx->env->primary_node;
+    for ( uint32_t i = 0; i < nr_claims; i++ )
+        claims[i] = ((xen_memory_claim_t){
+                         .pages  = 1,
+                         .target = ctx->env->primary_node,
+                     });
+
+    snprintf(ctx->result->params, sizeof(ctx->result->params), "nr_claims=%u",
+             nr_claims);
+
+    return lib_expect_claim_memory_failure(
+        ctx, ctx->dom_1, nr_claims, claims, E2BIG,
+        "reject claim list larger than the supported maximum");
+}
+
+static int test_reject_node_gt_uint8_max(struct test_ctx *ctx)
+{
+    xen_memory_claim_t claim = {
+        .pages  = 1,
+        .target = UINT8_MAX + 1U,
+    };
+
+    ctx->target1 = ctx->env->primary_node;
+    snprintf(ctx->result->params, sizeof(ctx->result->params), "node=%u",
+             claim.target);
+
+    return lib_expect_claim_memory_failure(
+        ctx, ctx->dom_1, 1, &claim, ENOENT,
+        "reject claim with node id above UINT8_MAX");
+}
+
+static int test_reject_pages_gt_int32_max(struct test_ctx *ctx)
+{
+    xen_memory_claim_t claim = {
+        .pages  = INT32_MAX + 1UL,
+        .target = ctx->env->primary_node,
+    };
+
+    ctx->target1 = ctx->env->primary_node;
+    snprintf(ctx->result->params, sizeof(ctx->result->params),
+             "pages=%" PRIu64 " node=%u", claim.pages, claim.target);
+
+    return lib_expect_claim_memory_failure(
+        ctx, ctx->dom_1, 1, &claim, ENOMEM,
+        "reject claim with pages larger than INT32_MAX");
+}
+
+static int test_reject_nonzero_pad(struct test_ctx *ctx)
+{
+    xen_memory_claim_t claim = {
+        .pages = 1,
+        .target = ctx->env->primary_node,
+        .cmd = 1,
+    };
+
+    ctx->target1 = ctx->env->primary_node;
+    snprintf(ctx->result->params, sizeof(ctx->result->params), "node=%u cmd=%u",
+             claim.target, claim.cmd);
+
+    return lib_expect_claim_memory_failure(
+        ctx, ctx->dom_1, 1, &claim, EINVAL,
+        "reject claim with non-zero cmd");
+}
+
+static int test_reject_zero_claim_count(struct test_ctx *ctx)
+{
+    snprintf(ctx->result->params, sizeof(ctx->result->params), "nr_claims=0");
+
+    return lib_expect_claim_memory_failure(
+        ctx, ctx->dom_1, 0, NULL, EINVAL,
+        "reject xc_domain_claim_memory() with nr_claims == 0");
+}
+
+static int test_null_claims_nonzero_count(struct test_ctx *ctx)
+{
+    snprintf(ctx->result->params, sizeof(ctx->result->params),
+             "nr_claims=1 claims=NULL");
+
+    return lib_expect_claim_memory_failure(
+        ctx, ctx->dom_1, 1, NULL, EFAULT,
+        "reject xc_domain_claim_memory() with claims=NULL and nr_claims == 1");
+}
+
+static int test_zero_count_valid_pointer(struct test_ctx *ctx)
+{
+    xen_memory_claim_t claim = {
+        .pages  = 1,
+        .target = ctx->env->primary_node,
+    };
+
+    snprintf(ctx->result->params, sizeof(ctx->result->params),
+             "nr_claims=0 claims=valid node=%u", claim.target);
+
+    return lib_expect_claim_memory_failure(
+        ctx, ctx->dom_1, 0, &claim, EINVAL,
+        "reject xc_domain_claim_memory() with !nr_claims but a claims pointer");
+}
+
+/*
+ * I1-9: Check both xc_domain_claim_pages() and xc_domain_claim_memory()
+ * with pages > free pages fail with ENOMEM.
+ */
+static int test_claim_pages_gt_free_enomem(struct test_ctx *ctx)
+{
+    uint64_t free_pages;
+
+    /* Get the total free memory for sizing the claim */
+    lib_get_total_free_pages(ctx, &free_pages);
+    ctx->alloc_pages = free_pages + 1;
+
+    snprintf(ctx->result->params, sizeof(ctx->result->params),
+             "claim=%" PRIu64 " free=%" PRIu64, ctx->alloc_pages, free_pages);
+
+    rc = lib_claim_pages_legacy_failure(
+        ctx, ctx->dom_1, ctx->alloc_pages, ENOMEM,
+        "reject xc_domain_claim_pages() with pages > total free pages");
+    if ( rc )
+        return rc;
+
+    rc = lib_expect_claim_memory_failure(
+        ctx, ctx->dom_1, 1,
+        &(xen_memory_claim_t){ .pages  = ctx->alloc_pages,
+                           .target = XEN_DOMCTL_CLAIM_MEMORY_HOST },
+        ENOMEM, "reject claim_memory() with pages > total free pages");
+
+    /* Get the free pages on the primary node and fail to claim more than it */
+    lib_get_node_free_pages(ctx, ctx->env->primary_node, &free_pages, NULL);
+    rc = lib_expect_claim_memory_failure(
+        ctx, ctx->dom_1, 1,
+        &(xen_memory_claim_t){
+            .pages  = free_pages + 1,
+            .target = ctx->env->primary_node
+        },
+        ENOMEM, "reject claim_memory() with pages > node free pages");
+    return rc;
+}
diff --git a/tools/tests/mem-claim/input-phase2.h b/tools/tests/mem-claim/input-phase2.h
new file mode 100644
index 000000000000..c8c4fd94931b
--- /dev/null
+++ b/tools/tests/mem-claim/input-phase2.h
@@ -0,0 +1,96 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * input-phase2.h - Test argument validation for memory claims
+ *
+ * This file contains test cases to validate argument handling when dealing
+ * with NUMA-aware claim sets.
+ */
+#include "libtestclaims.h"
+
+/* Helper to expect ENOMEM for host-wide claims */
+static int claim_expect_host_wide_enomem(struct test_ctx *ctx, uint64_t claims)
+{
+    rc = lib_claim_pages_legacy_failure(
+        ctx, ctx->dom_2, claims, ENOMEM,
+        "expect ENOMEM for xc_domain_claim_pages() with claims > spare page");
+    if ( rc )
+        return rc;
+
+    return lib_expect_claim_memory_failure(
+        ctx, ctx->dom_2, 1,
+        /* Request more than the spare to ensure failure */
+        &(xen_memory_claim_t){
+            .pages  = claims,
+            .target = XEN_DOMCTL_CLAIM_MEMORY_HOST
+        },
+        ENOMEM, "expect ENOMEM for claim_memory() with claims > spare pages");
+}
+
+/* Helper to expect ENOMEM for node-specific claims */
+static int claim_expect_enomem_on_node(struct test_ctx *ctx, uint64_t claims)
+{
+    return lib_expect_claim_memory_failure(
+        ctx, ctx->dom_2, 1,
+        /* Request more than the spare to ensure failure */
+        &(xen_memory_claim_t){ .pages = claims, .target = ctx->target1 },
+        ENOMEM,
+        "expect ENOMEM for claim_memory() with claims > spare pages");
+}
+
+/*
+ * I2-1
+ *
+ * Create a legacy claim for dom_1 using claim_pages and assert claim calls
+ * for dom_2 exceeding the unclaimed memory fail with ENOMEM.
+ */
+static int test_claim_pages_causes_enomem(struct test_ctx *ctx)
+{
+    uint64_t free_pages;
+
+    /* Get the total free memory for sizing the claim */
+    lib_get_total_free_pages(ctx, &free_pages);
+    ctx->alloc_pages = free_pages - SPARE_PAGES;
+
+    snprintf(ctx->result->params, sizeof(ctx->result->params),
+             "claim=%" PRIu64 " free=%" PRIu64, ctx->alloc_pages, free_pages);
+
+    rc = lib_claim_pages_legacy(
+        ctx, ctx->dom_1, ctx->alloc_pages,
+        "dom_1: claim nearly all global memory with claim_pages");
+    if ( rc )
+        return rc;
+
+    rc = claim_expect_host_wide_enomem(ctx, SPARE_PAGES * 2);
+    if ( !rc )
+        rc = claim_expect_enomem_on_node(ctx, SPARE_PAGES * 2);
+    return rc;
+}
+
+/*
+ * I2-2
+ *
+ * Create a host-wide claim for dom 1 using claim_memory and assert that
+ * claim calls for dom 2 that exceed the unclaimed memory fail with ENOMEM.
+ */
+static int test_host_overcommit_enomem(struct test_ctx *ctx)
+{
+    if ( lib_claim_all_on_host(ctx, ctx->dom_1, SPARE_PAGES) )
+        return -1;
+    rc = claim_expect_host_wide_enomem(ctx, SPARE_PAGES * 2);
+    if ( !rc )
+        rc = claim_expect_enomem_on_node(ctx, SPARE_PAGES * 2);
+    return rc;
+}
+
+/*
+ * I2-3
+ *
+ * Create a primary-node claim for dom 1 using claim_memory and assert that
+ * claim calls for dom 2 that exceed the unclaimed memory fail with ENOMEM.
+ */
+static int test_node_overcommit_enomem(struct test_ctx *ctx)
+{
+    if ( lib_claim_all_on_node(ctx, ctx->dom_1, ctx->target1, SPARE_PAGES) )
+        return -1;
+    return claim_expect_enomem_on_node(ctx, SPARE_PAGES * 2);
+}
diff --git a/tools/tests/mem-claim/libtestclaims.c b/tools/tests/mem-claim/libtestclaims.c
new file mode 100644
index 000000000000..c921956670e1
--- /dev/null
+++ b/tools/tests/mem-claim/libtestclaims.c
@@ -0,0 +1,980 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Functional system test framework for testing memory claims in Xen.
+ *
+ * See test-claim-memory.c for details on a test suite using this framework
+ * and the verifications it is designed to perform on behalf of a test suite.
+ *
+ * Besides providing the test suite with functionality to validate the
+ * effects of memory claims on the system, such as querying memory state,
+ * creating and destroying test domains, performing claim operations and
+ * populating memory, it also provides a consistent way to manage test
+ * state and record failures with detailed messages that include the
+ * current step, test parameters, and a snapshot of relevant memory
+ * state to aid in diagnosing issues when a test fails.
+ *
+ * It also provides the framework to select test cases, run them, and
+ * restore the system to a clean state after tests by destroying test
+ * domains to release populated memory and claims, even if a test fails
+ * partway through.
+ *
+ * The functions cover:
+ *
+ * - Managing the test_ctx structure which holds the test environment,
+ *   configuration, and results.
+ *
+ * - Providing helper functions to:
+ *   - Create and destroy domains for testing, which are needed to make claims
+ *   - Query the system's memory state in terms of free pages and outstanding
+ *     claims, which are used for sizing claims and verifying their effects.
+ *   - Perform claim operations and check their effects on the system.
+ *   - Populate memory to test the blocking effects of claims.
+ *   - Record failures with detailed messages that include the current step,
+ *     test parameters, and a snapshot of relevant memory state.
+ *
+ * - Cleanup the test environment by destroying domains after tests, ensuring
+ *   that claims are released and the system is left in a clean state even
+ *   if a test fails partway through.
+ *
+ * - Providing a consistent way to skip tests when preconditions are not met,
+ *   such as insufficient free memory or lack of multiple NUMA nodes.
+ *
+ * - Ensuring that all interactions with Xen are checked for errors, and that
+ *   any failures are reported with detailed diagnostics.
+ *
+ * - Test cases should use the provided helper functions to perform all
+ *   operations that interact with Xen or manage test state to ensure
+ *   consistent failure reporting and cleanup.
+ */
+#include <err.h>
+#include <errno.h>
+#include <getopt.h>
+#include <inttypes.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+#include <xen-tools/common-macros.h>
+
+#include "libtestclaims.h"
+
+int rc;
+static int step;
+static const struct option long_options[] = {
+    { "help",    no_argument,       NULL, 'h' },
+    { "list",    no_argument,       NULL, 'l' },
+    { "test",    required_argument, NULL, 't' },
+    { "verbose", no_argument,       NULL, 'v' },
+    { NULL,      0,                 NULL,  0  },
+};
+
+/* --- diagnostics helpers --- */
+
+/* Append formatted text to a buffer, ensuring it is always null-terminated. */
+void lib_appendf(char *buf, size_t size, const char *fmt, ...)
+{
+    va_list ap;
+    size_t used = strlen(buf);
+
+    if ( used >= size )
+        return;
+
+    va_start(ap, fmt);
+    vsnprintf(buf + used, size - used, fmt, ap);
+    va_end(ap);
+}
+
+/* Print debug information if verbose mode is enabled. */
+void lib_debugf(struct test_ctx *ctx, const char *fmt, ...)
+{
+    va_list ap;
+
+    if ( !ctx->cfg->verbose )
+        return;
+
+    fputs("      debug: ", stdout);
+
+    va_start(ap, fmt);
+    vprintf(fmt, ap);
+    va_end(ap);
+
+    fputc('\n', stdout);
+}
+
+/*
+ * Set the current test step description, which is included in failure reports.
+ * If verbose mode is enabled, also print the step to stdout.
+ */
+void lib_set_step(struct test_ctx *ctx, const char *fmt, ...)
+{
+    va_list ap;
+
+    va_start(ap, fmt);
+    vsnprintf(ctx->step, sizeof(ctx->step), fmt, ap);
+    va_end(ap);
+
+    if ( ctx->cfg->verbose )
+        printf("      step %d: %s\n", ++step, ctx->step);
+}
+
+/*
+ * Record a test failure with a formatted message and errno, and include the
+ * current step, test parameters, and a snapshot of relevant memory state in
+ * the details.
+ */
+static void append_snapshot(struct test_ctx *ctx)
+{
+    xc_physinfo_t physinfo;
+    unsigned int nodes[2] = { ctx->target1, ctx->target2 };
+
+    xc_physinfo(ctx->env->xch, &physinfo);
+    ctx_appendf(ctx,
+                "\n    snapshot: free_pages=%" PRIu64
+                ", outstanding_pages=%" PRIu64,
+                physinfo.free_pages, physinfo.outstanding_pages);
+
+    /* Include their free/total pages at the time of failure in the snapshot. */
+    for ( size_t i = 0; i < ARRAY_SIZE(nodes); i++ )
+    {
+        unsigned long free_pages, total_pages;
+        unsigned int node = nodes[i];
+
+        if ( node == INVALID_NODE )
+            continue;
+        if ( i == 1 && node == nodes[0] )
+            continue;
+
+        lib_get_node_free_pages(ctx, node, &free_pages, &total_pages);
+        ctx_appendf(ctx, "\n    snapshot: node%u free=%lu total=%lu", node,
+                    free_pages, total_pages);
+    }
+}
+
+/*
+ * Record a test failure with a formatted message and the given errno.
+ *
+ * Include the current step, test parameters, and a snapshot of relevant
+ * memory state in the details.
+ */
+int lib_fail_with_errno(struct test_ctx *ctx, int errnum, const char *fmt, ...)
+{
+    va_list ap;
+
+    ctx->result->status     = TEST_FAILED;
+    ctx->result->details[0] = '\0';
+
+    ctx_appendf(ctx, "step=%s", ctx->step[0] ? ctx->step : "(not set)");
+    ctx_appendf(ctx, "\n    dom_1=%u dom_2=%u target1=%s target2=%s",
+                ctx->dom_1, ctx->dom_2,
+                ctx->target1 == INVALID_NODE ? "n/a" : "set",
+                ctx->target2 == INVALID_NODE ? "n/a" : "set");
+
+    if ( ctx->target1 != INVALID_NODE )
+        ctx_appendf(ctx, " (%" PRIu64 ")", ctx->target1);
+    if ( ctx->target2 != INVALID_NODE )
+        ctx_appendf(ctx, " (%" PRIu64 ")", ctx->target2);
+
+    ctx_appendf(ctx, "\n    alloc_pages=%lu", ctx->alloc_pages);
+
+    ctx_appendf(ctx, "\n    cause: ");
+    va_start(ap, fmt);
+    vsnprintf(ctx->result->details + strlen(ctx->result->details),
+              sizeof(ctx->result->details) - strlen(ctx->result->details), fmt,
+              ap);
+    va_end(ap);
+
+    if ( errnum )
+        ctx_appendf(ctx, "\n    errno=%d (%s)", errnum, strerror(errnum));
+
+    append_snapshot(ctx);
+    return -1;
+}
+
+/*
+ * Record a test failure with a formatted message and the current errno.
+ *
+ * Calls lib_fail_with_errno() to do the actual recording, passing the current
+ * errno.
+ */
+int lib_fail(struct test_ctx *ctx, const char *fmt, ...)
+{
+    va_list ap;
+    int saved_errno = errno;
+    char message[1024];
+
+    va_start(ap, fmt);
+    vsnprintf(message, sizeof(message), fmt, ap);
+    va_end(ap);
+
+    return lib_fail_with_errno(ctx, saved_errno, "%s", message);
+}
+
+/*
+ * Record that a test was skipped with a formatted message.
+ *
+ * Include the message in the details to explain why the test was skipped.
+ */
+int lib_skip_test(struct test_ctx *ctx, const char *fmt, ...)
+{
+    va_list ap;
+
+    ctx->result->status     = TEST_SKIPPED;
+    ctx->result->details[0] = '\0';
+
+    va_start(ap, fmt);
+    vsnprintf(ctx->result->details, sizeof(ctx->result->details), fmt, ap);
+    va_end(ap);
+
+    return 1;
+}
+
+/* --- memory-state queries --- */
+
+/* Get the number of free and total pages for a specific NUMA node. */
+int lib_get_node_free_pages(struct test_ctx *ctx, unsigned int node,
+                            uint64_t *free_pages, uint64_t *total_pages)
+{
+    struct test_env *env = ctx->env;
+
+    if ( node >= env->num_nodes ) /* Check node validity */
+        return lib_fail(ctx, "Invalid node %u/%u", node, env->num_nodes);
+
+    if ( xc_numainfo(env->xch, &env->num_nodes, env->meminfo, NULL) )
+        return lib_fail(ctx, "xc_numainfo failed to get node memory info");
+
+    *free_pages = env->meminfo[node].memfree / XC_PAGE_SIZE;
+    if ( total_pages )
+        *total_pages = env->meminfo[node].memsize / XC_PAGE_SIZE;
+    return 0;
+}
+
+/* Get the total number of free pages available across all nodes. */
+int lib_get_total_free_pages(struct test_ctx *ctx, uint64_t *free_pages)
+{
+    struct test_env *env = ctx->env;
+    uint64_t free_bytes;
+
+    if ( xc_availheap(env->xch, 0, 0, -1, &free_bytes) )
+        return lib_fail(ctx, "xc_availheap failed to get total free pages");
+
+    *free_pages = free_bytes / XC_PAGE_SIZE;
+    return 0;
+}
+
+/* Get the current total number of outstanding claimed pages on the host. */
+int lib_get_total_claims(struct test_ctx *ctx,
+                         uint64_t *outstanding_pages_total)
+{
+    xc_physinfo_t physinfo;
+
+    if ( xc_physinfo(ctx->env->xch, &physinfo) )
+        return lib_fail(ctx, "xc_physinfo failed to get outstanding pages");
+
+    *outstanding_pages_total = physinfo.outstanding_pages;
+    return 0;
+}
+
+/* --- claim check operations --- */
+
+/* Check the current outstanding pages against the expected value. */
+int lib_check_claim(struct test_ctx *ctx, uint64_t baseline_outstanding,
+                    uint64_t expected_delta, const char *reason)
+{
+    xc_physinfo_t physinfo;
+    uint64_t expected = baseline_outstanding + expected_delta;
+
+    lib_set_step(ctx, "%s", reason);
+    if ( xc_physinfo(ctx->env->xch, &physinfo) )
+        return lib_fail(ctx, "xc_physinfo failed to get outstanding pages");
+
+    if ( physinfo.outstanding_pages != expected )
+        return lib_fail_with_errno(
+            ctx, 0, "expected outstanding_pages=%" PRIu64 ", got %" PRIu64,
+            expected, physinfo.outstanding_pages);
+    return 0;
+}
+
+/* --- domain lifecycle --- */
+
+/*
+ * Create a domain with the specified configuration and label.
+ * Record a failure if the creation or maxmem setting fails.
+ *
+ * On success, the new domain ID is stored in *domid.
+ */
+int lib_create_domain(struct test_ctx *ctx, uint32_t *domid, const char *label)
+{
+    struct xen_domctl_createdomain create = ctx->env->create_template;
+
+    lib_set_step(ctx, "create %s domain", label);
+    *domid = DOMID_INVALID;
+    if ( xc_domain_create(ctx->env->xch, domid, &create) )
+        return lib_fail(ctx, "xc_domain_create(%s) failed", label);
+
+    lib_set_step(ctx, "set maxmem for %s domain", label);
+    if ( xc_domain_setmaxmem(ctx->env->xch, *domid, -1) )
+    {
+        lib_destroy_domain(ctx, domid, label);
+        return lib_fail(ctx, "xc_domain_setmaxmem(%s) failed", label);
+    }
+
+    return 0;
+}
+
+/*
+ * Destroy the specified domain, if it is valid.
+ * Add the destroy step with the given label to the current test description.
+ * Record a failure if the destroy operation fails.
+ *
+ * This should be called during test cleanup to ensure domains are destroyed
+ * and claims are released even if a test fails partway through.
+ */
+int lib_destroy_domain(struct test_ctx *ctx, uint32_t *domid, const char *label)
+{
+    if ( *domid == DOMID_INVALID )
+        return 0;
+
+    lib_set_step(ctx, "destroy %s domain", label);
+    rc     = xc_domain_destroy(ctx->env->xch, *domid);
+    *domid = DOMID_INVALID;
+    if ( rc )
+    {
+        if ( ctx->result->status == TEST_FAILED )
+        {
+            ctx_appendf(ctx,
+                        "\n    cleanup: xc_domain_destroy(%s) failed: %d (%s)",
+                        label, errno, strerror(errno));
+            return -1;
+        }
+
+        return lib_fail(ctx, "xc_domain_destroy(%s) failed", label);
+    }
+
+    return 0;
+}
+
+/* --- claim operations --- */
+
+/*
+ * Attempt to claim memory with the specified parameters.
+ * Record the failure if the claim operation fails.
+ */
+int lib_claim_memory(struct test_ctx *ctx, uint32_t domid, uint32_t records,
+                     xen_memory_claim_t *claim_set, const char *reason)
+{
+    lib_set_step(ctx, "%s", reason);
+    rc = xc_domain_claim_memory(ctx->env->xch, domid,
+                                XEN_DOMCTL_CLAIM_MEMORY_SET, &records,
+                                claim_set);
+    if ( rc )
+    {
+        uint64_t outstanding_pages, node_free, total_pages;
+
+        lib_get_node_free_pages(ctx, ctx->target1, &node_free, &total_pages);
+        lib_get_total_claims(ctx, &outstanding_pages);
+
+        return lib_fail(ctx,
+                        "xc_domain_claim_memory failed: node=%" PRIu64
+                        "\n    total_outstanding: %" PRIu64
+                        "\n          total_pages: %" PRIu64
+                        "\n      node free_pages: %" PRIu64,
+                        ctx->target1, outstanding_pages, total_pages,
+                        node_free);
+    }
+    return rc;
+}
+
+/*
+ * Attempt to claim memory with the specified parameters, expecting it to fail
+ * with the specified errno. Record a failure if it does not fail as expected.
+ */
+int lib_expect_claim_memory_failure(struct test_ctx *ctx, uint32_t domid,
+                                    uint32_t records,
+                                    xen_memory_claim_t *claim_set,
+                                    int expected_errno, const char *reason)
+{
+    lib_set_step(ctx, "%s", reason);
+    rc = xc_domain_claim_memory(ctx->env->xch, domid,
+                                XEN_DOMCTL_CLAIM_MEMORY_SET, &records,
+                                claim_set);
+    if ( rc == -1 && errno == expected_errno )
+        return 0;
+
+    return lib_fail_with_errno(ctx, errno,
+                               "expected xc_domain_claim_memory() to fail with "
+                               "errno=%d (%s), got rc=%d",
+                               expected_errno, strerror(expected_errno), rc);
+}
+
+/*
+ * Release all claims for the specified domain by setting a zero claim.
+ * Record the failure if the claim release operation fails.
+ */
+int lib_release_all_claims(struct test_ctx *ctx, uint32_t domid)
+{
+    uint32_t records = 1;
+
+    lib_set_step(ctx, "release all claims with zero claim");
+    rc = xc_domain_claim_memory(ctx->env->xch, domid,
+                                XEN_DOMCTL_CLAIM_MEMORY_SET, &records,
+                                &(xen_memory_claim_t){});
+    if ( rc )
+        return lib_fail(ctx, "xc_domain_claim_memory(..., pages=0) failed");
+    return 0;
+}
+
+/*
+ * Claim all available memory on the host except for a specified number
+ * of pages to spare. Record the failure if the claim operation fails.
+ */
+int lib_claim_all_on_host(struct test_ctx *ctx, uint32_t domid,
+                          unsigned int spare)
+{
+    unsigned long free_pages;
+    unsigned long claim_pages = 0;
+
+    lib_set_step(ctx, "claim all except %u pages on host", spare);
+    lib_get_total_free_pages(ctx, &free_pages);
+    if ( free_pages <= spare )
+        return lib_fail(ctx, "Not enough free pages @ host, spare=%u, free=%lu",
+                        spare, free_pages);
+
+    claim_pages += free_pages - spare;
+    snprintf(ctx->result->params, sizeof(ctx->result->params),
+             "claim all pages except %u pages on host claim=%lu free=%lu",
+             spare, claim_pages, free_pages);
+    return lib_claim_memory(
+        ctx, domid, 1,
+        &(xen_memory_claim_t){
+            .pages  = claim_pages,
+            .target = XEN_DOMCTL_CLAIM_MEMORY_HOST
+        },
+        ctx->result->params);
+}
+
+/*
+ * Claim all available memory on the specified node, except for the given
+ * spare pages to tolerate minor fluctuations in free memory.
+ *
+ * Verify the domain's outstanding claims after installing the claim.
+ */
+int lib_claim_all_on_node(struct test_ctx *ctx, uint32_t domid,
+                          unsigned int node, unsigned int spare)
+{
+    uint64_t global_before, global_after, free_pages, claim_pages = 0;
+    uint64_t dom_claims_before;
+    xc_domaininfo_t info;
+
+    lib_set_step(ctx, "claim all except %u pages on node %u", spare, node);
+    lib_get_node_free_pages(ctx, node, &free_pages, NULL);
+    if ( free_pages <= spare )
+        return lib_fail(ctx, "Not enough pages @ node %u, spare=%u, free=%lu",
+                        node, spare, free_pages);
+
+    claim_pages += free_pages - spare;
+    snprintf(ctx->result->params, sizeof(ctx->result->params),
+             "claim all pages except %u pages on node %u claim=%lu free=%lu",
+             spare, node, claim_pages, free_pages);
+
+    /*
+     * For asserting the claims state after installing the claim, we need
+     * to know both the total outstanding claims and the domain's outstanding.
+     */
+    lib_get_total_claims(ctx, &global_before);
+    if ( xc_domain_getinfo_single(ctx->env->xch, domid, &info) )
+        return lib_fail(ctx, "xc_domain_getinfo failed to get domain claims");
+    dom_claims_before = info.outstanding_pages;
+
+    rc = lib_claim_memory(
+        ctx, domid, 1,
+        &(xen_memory_claim_t){ .pages = claim_pages, .target = node },
+        ctx->result->params);
+    if ( rc )
+        return rc;
+    lib_get_total_claims(ctx, &global_after);
+
+    if ( xc_domain_getinfo_single(ctx->env->xch, domid, &info) )
+        return lib_fail(ctx, "xc_domain_getinfo failed to get domain claims");
+
+    if ( info.outstanding_pages != claim_pages )
+        return lib_fail(ctx, "unexpected claims installation: exp=%lu, got=%lu",
+                        claim_pages, info.outstanding_pages);
+
+    if ( global_after - global_before != claim_pages - dom_claims_before )
+        return lib_fail(ctx, "unexpexcted delta @ node %u: exp=%lu, got=%lu",
+                        node, claim_pages, global_before - global_after);
+    return 0;
+}
+
+/*
+ * Attempt to claim memory with the legacy xc_domain_claim_pages() API.
+ * Record the failure if the claim operation fails.
+ */
+int lib_claim_pages_legacy(struct test_ctx *ctx, uint32_t domid,
+                           unsigned long nr_pages, const char *reason)
+{
+    lib_set_step(ctx, "%s", reason);
+    rc = xc_domain_claim_pages(ctx->env->xch, domid, nr_pages);
+    if ( rc )
+        return lib_fail(ctx, "xc_domain_claim_pages(%lu) failed", nr_pages);
+    return 0;
+}
+
+/*
+ * Attempt to claim memory with the legacy xc_domain_claim_pages() API.
+ * Expect it to fail with the specified errno.
+ * Record a failure on success or if it fails with an unexpected errno.
+ */
+int lib_claim_pages_legacy_failure(struct test_ctx *ctx, uint32_t domid,
+                                   unsigned long request, int expected_errno,
+                                   const char *reason)
+{
+    uint64_t outstanding_claims, free_pages;
+
+    /*
+     * Sanity check: Check that there are not enough free pages for installing
+     * the claim, as this is the only condition under which the claim install
+     * is expected to fail with ENOMEM. If this fails, the previous actions
+     * of the test did not properly set up the expected conditions for the
+     * claim to fail, so we record this as the cause of failure.
+     */
+    lib_get_total_claims(ctx, &outstanding_claims);
+    lib_get_total_free_pages(ctx, &free_pages);
+    if ( request < free_pages - outstanding_claims )
+        return lib_fail(ctx,
+                        "too many unclaimed pages to expect ENOMEM: "
+                        "request=%lu, free=%" PRIu64 " - claims=%" PRIu64
+                        "=%" PRIu64,
+                        request, free_pages, outstanding_claims,
+                        free_pages - outstanding_claims);
+    lib_set_step(ctx, "%s", reason);
+    rc = xc_domain_claim_pages(ctx->env->xch, domid, request);
+    if ( rc == -1 && errno == expected_errno )
+        return 0;
+
+    return lib_fail_with_errno(ctx, errno,
+                               "expected xc_domain_claim_pages() to fail "
+                               "with errno=%d(%s), got rc=%d",
+                               expected_errno, strerror(expected_errno), rc);
+}
+
+/* --- physmap population --- */
+
+/*
+ * Private helper function to populate extents at the specified GPFN
+ * with the xc_domain_populate_physmap() API, and return the result code.
+ *
+ * Tests may use its callers lib_populate_success() or lib_populate_failure()
+ * which record the failure the actual result did not match the expectation.
+ */
+static int lib_populate_physmap(struct test_ctx *ctx, lib_populate_args_t args)
+{
+    xen_pfn_t *frames;
+
+    frames = calloc(args.nr_extents, sizeof(*frames));
+    if ( !frames )
+        return lib_fail(ctx, "calloc(%lu) failed", args.nr_extents);
+
+    for ( unsigned long i = 0; i < args.nr_extents; i++ )
+        frames[i] = args.start + i;
+
+    errno = 0;
+    rc    = xc_domain_populate_physmap_exact(ctx->env->xch, args.domid,
+                                             args.nr_extents, args.order,
+                                             args.flags, frames);
+    free(frames);
+    return rc;
+}
+
+/*
+ * Populate extents at the specified GPFN with checking if it
+ * succeeded. Record the failure with diagnostics if it did not.
+ */
+int lib_populate_success(struct test_ctx *ctx, lib_populate_args_t args)
+{
+    rc = lib_populate_physmap(ctx, args);
+    if ( rc )
+        return lib_fail(ctx, "expected populate to succeed for node %u",
+                        XENMEMF_get_node(args.flags));
+    return 0;
+}
+
+/*
+ * Attempt to populate extents at the specified GPFN with checking if it
+ * failed. Record a failure with diagnostics if it did not fail as expected.
+ */
+int lib_populate_failure(struct test_ctx *ctx, lib_populate_args_t args)
+{
+    rc = lib_populate_physmap(ctx, args);
+    if ( rc == 0 )
+        return lib_fail_with_errno(
+            ctx, 0, "expected exact-node populate to fail for node %u",
+            XENMEMF_get_node(args.flags));
+    return 0;
+}
+
+/* --- test runner --- */
+
+static double timespec_diff_ms(const struct timespec *start,
+                               const struct timespec *end)
+{
+    double sec  = (double)(end->tv_sec - start->tv_sec);
+    double nsec = (double)(end->tv_nsec - start->tv_nsec);
+
+    return sec * 1000.0 + nsec / 1e6;
+}
+
+static void usage(FILE *stream, const char *prog)
+{
+    fprintf(stream,
+            "Usage: %s [OPTIONS]\n\n"
+            "Options:\n"
+            "  -l, --list         List available test IDs and exit\n"
+            "  -t, --test ID      Run only the specified test ID (repeatable)\n"
+            "  -v, --verbose      Print per-step progress\n"
+            "  -h, --help         Show this help text\n",
+            prog);
+}
+
+int lib_print_available_tests(const struct test_case *cases, size_t num_cases)
+{
+    puts("Available tests:");
+    for ( size_t i = 0; i < num_cases; i++ )
+        printf("  %s  %s\n", cases[i].id, cases[i].name);
+    return 0;
+}
+
+/*
+ * Parse command-line arguments to configure the test run.
+ * It populates the runtime_config struct with the parsed configuration,
+ * including test IDs and the verbose flag.
+ *
+ * It supports filtering tests by test ID and enabling verbose output.
+ * If --list is specified, prints available tests and exits.
+ * By default, all tests will be run with concise output.
+ * If cfg.list_only is set, the caller should exit after this function returns.
+ *
+ * Returns 0 on success, or 1 on failure (invalid arguments)
+ */
+int lib_parse_args(int argc, char *argv[], struct runtime_config *cfg)
+{
+    int opt;
+
+    while ( (opt = getopt_long(argc, argv, "hlt:v", long_options, NULL)) != -1 )
+    {
+        switch ( opt )
+        {
+        case 'h':
+            usage(stdout, argv[0]);
+        case 'l':
+            cfg->list_only = true;
+            break;
+
+        case 't':
+            if ( cfg->nr_selected_ids >= ARRAY_SIZE(cfg->selected_ids) )
+                errx(1, "too many --test selectors (max %zu)",
+                     ARRAY_SIZE(cfg->selected_ids));
+            cfg->selected_ids[cfg->nr_selected_ids++] = optarg;
+            break;
+
+        case 'v':
+            cfg->verbose = true;
+            break;
+
+        default:
+            usage(stderr, argv[0]);
+            return 1;
+        }
+    }
+
+    if ( cfg->list_only )
+        return 0;
+
+    printf("========= testcase program: %s ==========\n", argv[0]);
+    if ( cfg->nr_selected_ids )
+    {
+        printf("Selected %zu test(s):\n", cfg->nr_selected_ids);
+        for ( size_t i = 0; i < cfg->nr_selected_ids; i++ )
+            printf("  %s\n", cfg->selected_ids[i]);
+    }
+    return 0;
+}
+
+/*
+ * Run a single test case, capturing results and ensuring cleanup.
+ *
+ * Outstanding claims are tracked baseline_outstanding are are checked
+ * to be reset to the baseline at the end of the test, ensuring that all
+ * claims are released after each test case.
+ *
+ * Returns 0 on success, or -1 on failure with result details populated.
+ */
+int lib_run_one_test(struct test_env *env, const struct runtime_config *cfg,
+                     const struct test_case *test, struct test_result *result)
+{
+    struct test_ctx ctx = {
+        .env         = env,
+        .cfg         = cfg,
+        .result      = result,
+        .dom_1       = DOMID_INVALID,
+        .dom_2       = DOMID_INVALID,
+        .target1     = env->primary_node,
+        .target2     = INVALID_NODE,
+        .alloc_pages = 0,
+        .step        = "",
+    };
+    uint64_t baseline_outstanding;
+    struct timespec start, end;
+
+    if ( env->num_nodes >= 2 )
+        ctx.target2 = env->secondary_node;
+
+    result->test        = test;
+    result->status      = TEST_PASSED;
+    result->params[0]   = '\0';
+    result->details[0]  = '\0';
+    result->duration_ms = 0.0;
+
+    /*
+     * Fixture: capture baseline, create the primary domain, run the test
+     * body, then always destroy any remaining test domains and verify
+     * outstanding pages returned to baseline.
+     */
+    rc = lib_get_total_claims(&ctx, &baseline_outstanding);
+    if ( rc )
+        goto out;
+
+    rc = lib_create_domain(&ctx, &ctx.dom_1, "primary");
+    if ( rc )
+        goto out;
+
+    rc = lib_create_domain(&ctx, &ctx.dom_2, "secondary");
+    if ( rc )
+        goto out;
+
+    clock_gettime(CLOCK_MONOTONIC, &start);
+
+    errno = 0;
+    rc    = test->test(&ctx); /* Run the test body */
+
+    clock_gettime(CLOCK_MONOTONIC, &end);
+    result->duration_ms = timespec_diff_ms(&start, &end);
+
+    if ( rc > 0 && result->status == TEST_SKIPPED )
+        rc = 0;
+
+ out:
+    /* Cleanup test domains without affecting the return code if rc != 0 */
+    if ( lib_destroy_domain(&ctx, &ctx.dom_2, "helper") && !rc )
+        rc = -1;
+
+    if ( lib_destroy_domain(&ctx, &ctx.dom_1, "primary") && !rc )
+        rc = -1;
+
+    if ( !rc &&
+         lib_check_claim(&ctx, baseline_outstanding, 0,
+                         "check cleanup restored baseline claimed pages") )
+        rc = -1;
+
+    if ( rc < 0 )
+        result->status = TEST_FAILED;
+
+    return rc;
+}
+
+/*
+ * Run all test cases, filtering based on the runtime configuration, and print
+ * results to stdout. Each test case is run with lib_run_one_test() which
+ * captures detailed diagnostics on failure.
+ */
+void lib_run_tests(struct test_env *env, char *argv0,
+                   const struct runtime_config *cfg,
+                   const struct test_case *test_cases,
+                   unsigned int num_test_cases, struct test_result *results)
+{
+    for ( size_t i = 0; i < num_test_cases; i++ )
+    {
+        struct test_result *result = &results[i];
+
+        if ( !test_is_selected(cfg, &test_cases[i]) )
+            continue;
+
+        lib_run_one_test(env, cfg, &test_cases[i], result);
+
+        /* Print a summary: test, result, including parameters and duration. */
+        printf("%s::%s [%s] %s (%.2f ms)\n", argv0, result->test->id,
+               result->params[0] ? result->params : "default",
+               status_name(result->status), result->duration_ms);
+
+        if ( result->status == TEST_FAILED || result->status == TEST_SKIPPED )
+            printf("    %s\n", result->details);
+    }
+}
+
+/*
+ * Print a concise summary of test results, including counts of passed, failed,
+ * and skipped tests, and details for any failures or skips.
+ */
+int lib_summary(const struct test_result *results, unsigned int num_results)
+{
+    unsigned int passed = 0, failed = 0, skipped = 0;
+
+    puts("================== short test summary info =================");
+    for ( size_t i = 0; i < num_results; i++ )
+    {
+        if ( !results[i].test )
+            continue;
+
+        printf("%s %s %s\n", status_name(results[i].status),
+               results[i].test->id, results[i].test->name);
+
+        switch ( results[i].status )
+        {
+        case TEST_PASSED:
+            passed++;
+            break;
+        case TEST_FAILED:
+            failed++;
+            printf("    %s\n", results[i].details);
+            break;
+        case TEST_SKIPPED:
+            skipped++;
+            printf("    %s\n", results[i].details);
+            break;
+        }
+    }
+    printf("============ %u passed, %u failed, %u skipped ============\n",
+           passed, failed, skipped);
+    return failed;
+}
+
+/* Update the create_template structure based on the host's capabilities */
+static void fixup_create_template(struct xen_domctl_createdomain *create,
+                                  const xc_physinfo_t *physinfo)
+{
+#if defined(__x86_64__) || defined(__i386__)
+    if ( !(physinfo->capabilities & XEN_SYSCTL_PHYSCAP_hap) )
+        create->flags &= ~XEN_DOMCTL_CDF_hap;
+
+    if ( !(physinfo->capabilities &
+           (XEN_SYSCTL_PHYSCAP_hap | XEN_SYSCTL_PHYSCAP_shadow)) ||
+         !(physinfo->capabilities & XEN_SYSCTL_PHYSCAP_hvm) )
+    {
+        create->flags &= ~XEN_DOMCTL_CDF_hvm;
+        create->arch.emulation_flags = 0;
+    }
+#else
+    (void)physinfo;
+#endif
+}
+
+/*
+ * Initialise the test environment by opening the Xen control interface,
+ * querying the number of NUMA nodes, and populating memory information.
+ * Returns 0 on success, or -1 on failure with errno set.
+ */
+int lib_initialise_test_env(struct test_env *env)
+{
+    xc_physinfo_t physinfo;
+
+    env->xch = xc_interface_open(NULL, NULL, 0);
+    if ( !env->xch )
+        err(1, "xc_interface_open");
+
+    /*
+     * Get the number of nodes to allocate xc_meminfo_t structures for.
+     * If NUMA is disabled, this will return one node, so we can still
+     * run tests that don't require > 1 NUMA node on non-NUMA hosts.
+     */
+    xc_numainfo(env->xch, &env->num_nodes, NULL, NULL);
+
+    /* Allocate memory for xc_meminfo_t structures */
+    env->meminfo = calloc(env->num_nodes, sizeof(*env->meminfo));
+    if ( !env->meminfo )
+        err(1, "calloc");
+
+    /* Populate meminfo structures with current data */
+    xc_numainfo(env->xch, &env->num_nodes, env->meminfo, NULL);
+    xc_physinfo(env->xch, &physinfo);
+
+    /* Initialise the create_template structure */
+    env->create_template = (struct xen_domctl_createdomain){
+        .flags            = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
+        .max_vcpus        = 1,
+        .max_grant_frames = 1,
+        .grant_opts       = XEN_DOMCTL_GRANT_version(1),
+#if defined(__x86_64__) || defined(__i386__)
+        .arch = { .emulation_flags = XEN_X86_EMU_LAPIC, },
+#endif
+    };
+    /* Update the create_template structure based on the host's capabilities */
+    fixup_create_template(&env->create_template, &physinfo);
+
+    env->primary_node        = 0;
+    env->secondary_node      = 0;
+    env->have_secondary_node = false;
+
+    /*
+     * Pick the node with the most free memory as the primary node, and if
+     * there's a second node, pick the one with the next most free memory as
+     * the secondary.
+     */
+    for ( unsigned int i = 1; i < env->num_nodes; i++ )
+    {
+        if ( env->meminfo[i].memfree > env->meminfo[env->primary_node].memfree )
+        {
+            env->secondary_node      = env->primary_node;
+            env->primary_node        = i;
+            env->have_secondary_node = true;
+        }
+        else if ( !env->have_secondary_node ||
+                  env->meminfo[i].memfree >
+                  env->meminfo[env->secondary_node].memfree )
+        {
+            env->secondary_node      = i;
+            env->have_secondary_node = true;
+        }
+    }
+
+    if ( env->num_nodes < 2 )
+        env->have_secondary_node = false;
+    else if ( env->secondary_node == env->primary_node )
+    {
+        for ( unsigned int i = 0; i < env->num_nodes; i++ )
+        {
+            if ( i != env->primary_node )
+            {
+                env->secondary_node      = i;
+                env->have_secondary_node = true;
+                break;
+            }
+        }
+    }
+
+    return 0;
+}
+
+/* Free allocated memory and close the Xen control interface */
+void lib_release_test_env(struct test_env *env)
+{
+    free(env->meminfo);
+    env->meminfo = NULL;
+
+    if ( env->xch )
+    {
+        xc_interface_close(env->xch);
+        env->xch = NULL;
+    }
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/tools/tests/mem-claim/libtestclaims.h b/tools/tests/mem-claim/libtestclaims.h
new file mode 100644
index 000000000000..4fb171effd52
--- /dev/null
+++ b/tools/tests/mem-claim/libtestclaims.h
@@ -0,0 +1,203 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Header file for the functional system test framework
+ * testing for memory claims in the Xen hypervisor.
+ *
+ * This header declares the interface for the test framework implemented
+ * in libtestclaims.c.
+ *
+ * It includes the definitions of the test environment, test context, and
+ * helper functions for performing memory claim operations, querying memory
+ * state, managing test domains, and recording test results.
+ */
+#ifndef _LIBTEST_MEM_CLAIMS_
+#define _LIBTEST_MEM_CLAIMS_
+
+#include <limits.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#include <xenctrl.h>
+
+#define MAX_SELECTED_TESTS 32
+#define INVALID_NODE       UINT_MAX
+#define SPARE_PAGES        200
+
+struct test_env {
+    xc_interface                  *xch;
+    struct xen_domctl_createdomain create_template;
+    unsigned int                   num_nodes;
+    unsigned int                   primary_node;
+    unsigned int                   secondary_node;
+    bool                           have_secondary_node;
+    xc_meminfo_t                  *meminfo;
+};
+
+struct runtime_config {
+    const char *selected_ids[MAX_SELECTED_TESTS];
+    size_t      nr_selected_ids;
+    bool        list_only;
+    bool        verbose;
+};
+
+enum test_status {
+    TEST_PASSED,
+    TEST_FAILED,
+    TEST_SKIPPED,
+};
+
+struct test_case;
+
+struct test_result {
+    const struct test_case *test;
+    enum test_status        status;
+    char                    params[256];
+    char                    details[4096];
+    double                  duration_ms;
+};
+
+struct test_ctx {
+    struct test_env             *env;
+    const struct runtime_config *cfg;
+    struct test_result          *result;
+    uint32_t                     dom_1;
+    uint32_t                     dom_2;
+    uint64_t                     target1;
+    uint64_t                     target2;
+    uint64_t                     alloc_pages;
+    char                         step[160];
+};
+
+struct lib_populate_physmap_args {
+    uint32_t      domid;
+    xen_pfn_t     start;
+    unsigned long nr_extents;
+    unsigned int  order;
+    unsigned int  flags;
+};
+typedef struct lib_populate_physmap_args lib_populate_args_t;
+
+/*
+ * test_fn_t: the test body.  Called after the fixture has created
+ * ctx->domid and captured a baseline outstanding-pages count.  Tests needing
+ * extra domains should create and destroy them explicitly.
+ * Returns 0 on pass, -1 on fail, 1 on skip.
+ */
+typedef int (*test_fn_t)(struct test_ctx *ctx);
+
+struct test_case {
+    const char *id;
+    const char *name;
+    test_fn_t   test;
+};
+
+/* --- diagnostics helpers --- */
+void lib_appendf(char *buf, size_t size, const char *fmt, ...)
+__attribute__((format(printf, 3, 4)));
+
+/* Append a formatted string to ctx->result->details. */
+#define ctx_appendf(ctx, ...)                                               \
+        lib_appendf((ctx)->result->details, sizeof((ctx)->result->details), \
+                    __VA_ARGS__)
+void lib_debugf(struct test_ctx *ctx, const char *fmt, ...)
+__attribute__((format(printf, 2, 3)));
+void lib_set_step(struct test_ctx *ctx, const char *fmt, ...)
+__attribute__((format(printf, 2, 3)));
+int lib_fail_with_errno(struct test_ctx *ctx, int errnum, const char *fmt, ...)
+__attribute__((format(printf, 3, 4)));
+int lib_fail(struct test_ctx *ctx, const char *fmt, ...)
+__attribute__((format(printf, 2, 3)));
+int lib_skip_test(struct test_ctx *ctx, const char *fmt, ...)
+__attribute__((format(printf, 2, 3)));
+
+/* --- memory-state queries --- */
+int lib_get_node_free_pages(struct test_ctx *ctx, unsigned int node,
+                            unsigned long *free_pages,
+                            unsigned long *total_pages);
+int lib_get_total_free_pages(struct test_ctx *ctx, unsigned long *free_pages);
+int lib_get_total_claims(struct test_ctx *ctx,
+                         uint64_t *outstanding_pages_global);
+int lib_check_claim(struct test_ctx *ctx, uint64_t baseline_outstanding,
+                    uint64_t expected_delta, const char *reason);
+
+/* --- domain lifecycle --- */
+int lib_create_domain(struct test_ctx *ctx, uint32_t *domid, const char *label);
+int lib_destroy_domain(struct test_ctx *ctx, uint32_t *domid,
+                       const char *label);
+
+/* --- claim operations --- */
+int lib_claim_memory(struct test_ctx *ctx, uint32_t domid, uint32_t nr_claims,
+                     xen_memory_claim_t *claims, const char *reason);
+int lib_expect_claim_memory_failure(struct test_ctx *ctx, uint32_t domid,
+                                    uint32_t nr_claims,
+                                    xen_memory_claim_t *claims,
+                                    int expected_errno, const char *reason);
+int lib_release_all_claims(struct test_ctx *ctx, uint32_t domid);
+int lib_claim_pages_legacy(struct test_ctx *ctx, uint32_t domid,
+                           unsigned long nr_pages, const char *reason);
+int lib_claim_pages_legacy_failure(struct test_ctx *ctx, uint32_t domid,
+                                   unsigned long nr_pages, int expected_errno,
+                                   const char *reason);
+int lib_claim_all_on_host(struct test_ctx *ctx, uint32_t domid,
+                          unsigned int spare);
+int lib_claim_all_on_node(struct test_ctx *ctx, uint32_t domid, uint32_t node,
+                          uint32_t spare);
+
+/* --- physmap --- */
+int lib_populate_success(struct test_ctx *ctx, lib_populate_args_t args);
+int lib_populate_failure(struct test_ctx *ctx, lib_populate_args_t args);
+
+/* --- test runner --- */
+int  lib_print_available_tests(const struct test_case *cases, size_t num_cases);
+int  lib_parse_args(int argc, char *argv[], struct runtime_config *cfg);
+int  lib_run_one_test(struct test_env *env, const struct runtime_config *cfg,
+                      const struct test_case *test, struct test_result *result);
+void lib_run_tests(struct test_env *env, char *argv0,
+                   const struct runtime_config *cfg,
+                   const struct test_case *test_cases,
+                   unsigned int num_test_cases, struct test_result *results);
+int  lib_summary(const struct test_result *results, unsigned int num_results);
+int  lib_initialise_test_env(struct test_env *env);
+void lib_release_test_env(struct test_env *env);
+unsigned long lib_default_alloc_pages(unsigned long free_pages);
+
+extern int rc;
+
+static inline const char *status_name(enum test_status status)
+{
+    switch ( status )
+    {
+    case TEST_PASSED:
+        return "PASSED";
+    case TEST_FAILED:
+        return "FAILED";
+    case TEST_SKIPPED:
+        return "SKIPPED";
+    }
+    return "UNKNOWN";
+}
+
+static inline bool test_is_selected(const struct runtime_config *cfg,
+                                    const struct test_case *test)
+{
+    if ( !cfg->nr_selected_ids )
+        return true;
+
+    for ( size_t i = 0; i < cfg->nr_selected_ids; i++ )
+        if ( !strcmp(cfg->selected_ids[i], test->id) )
+            return true;
+    return false;
+}
+
+#endif /* _LIBTEST_MEM_CLAIMS_ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/tools/tests/mem-claim/test-claim-memory.c b/tools/tests/mem-claim/test-claim-memory.c
new file mode 100644
index 000000000000..006b1f534e50
--- /dev/null
+++ b/tools/tests/mem-claim/test-claim-memory.c
@@ -0,0 +1,130 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Functional system test suite for testing memory claims in Xen.
+ *
+ * It is designed to test the xc_domain_claim_memory() API and
+ * to reconfirm the xc_domain_claim_pages() API and interacts
+ * with the running Xen hypervisor in Dom0 using libxenctrl.
+ *
+ * The verifications performed by the test cases include:
+ *
+ * - Validating that claims can be successfully made with valid parameters
+ *   and that they have the expected effects on the system's memory state,
+ *   such as increasing the number of outstanding claimed pages.
+ *
+ * - Validating that invalid claim attempts are rejected with the expected
+ *   error codes, such as EINVAL for invalid parameters or ENOMEM when
+ *   claiming more pages than are free.
+ *
+ * - Validating the effects of memory claims on the system, such as blocking
+ *   effects when claiming more pages than are free or left unclaimed by
+ *   other domains, and the guarantees provided by claims such as reserved
+ *   claimed pages not being allocated to other domains.
+ *
+ * For the need to perform these verifications, the test cases interact
+ * with the Xen hypervisor to query the system's memory state, create and
+ * destroy test domains, perform claim operations, and populate memory to
+ * test the blocking effects of claims.
+ *
+ * As the act of testing the blocking effects of claims involves allocating
+ * memory from the system, other operations that interact with the system's
+ * memory state should be avoided or kept to a minimum during the test run
+ * to avoid interference with the test results.
+ *
+ * During these interactions, the test cases record successes and failures
+ * with detailed messages that include the current step, test parameters,
+ * and a snapshot of relevant memory state to aid in diagnosing issues
+ * when a test fails.
+ *
+ * The test suite also ensures that domains are destroyed after tests to
+ * clean up claims and leave the system in a clean state, even if a test
+ * fails partway through.
+ *
+ * Some test cases that require multiple NUMA nodes can be skipped if the
+ * system does not have a 2nd NUMA node, allowing the test suite to be run
+ * on single-node systems as well.
+ *
+ * It is designed to run on a quiet system as it stakes claims on the system's
+ * memory and verifies their effects, by allocating against the running system
+ * Xen hypervisor in Dom0 using libxenctrl.
+ */
+#include <err.h>
+#include <errno.h>
+#include <limits.h>
+#include <stdio.h>
+#include <inttypes.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <xen-tools/common-macros.h>
+
+#include "libtestclaims.h"
+#include "accounting-1.h"
+#include "input-phase1.h"
+#include "input-phase2.h"
+
+/* Short helper to declare test cases more concisely. */
+#define CASE(ID, NAME, FN)                           \
+        {                                            \
+            .id = (ID), .name = (NAME), .test = (FN) \
+        }
+
+/*
+ * List of test cases.  lib_run_tests() iterates over this list to run tests.
+ *
+ * Tests are identified by their id (e.g. "A1-1") and have a descriptive name
+ * and a function pointer to the test implementation.
+ */
+static const struct test_case cases[] = {
+    CASE("A1-1", "basic_node_claim", test_basic_node_claim),
+    CASE("A1-2", "host_wide_replace_after_alloc", test_update_host_after_alloc),
+    CASE("A1-3", "node_replace_after_alloc", test_node_replace_after_alloc),
+    CASE("A1-4", "legacy_host_wide_claim", test_legacy_host_wide_claim),
+    CASE("A1-5", "move_claim_between_nodes", test_move_claim_between_nodes),
+    CASE("A1-6", "zero_claim_resets_claim", test_zero_claim_resets_claim),
+    CASE("A1-7", "zero_claim_memory_reset", test_zero_claim_memory_resets),
+    CASE("A1-8", "query_claim_memory_size", test_query_claim_memory_size),
+    CASE("I1-1", "reject_non_present_node", test_reject_non_present_node),
+    CASE("I1-2", "reject_too_many_claims", test_reject_too_many_claims),
+    CASE("I1-3", "reject_node_gt_uint8_max", test_reject_node_gt_uint8_max),
+    CASE("I1-4", "reject_pages_gt_int32_max", test_reject_pages_gt_int32_max),
+    CASE("I1-5", "reject_nonzero_pad", test_reject_nonzero_pad),
+    CASE("I1-6", "reject_zero_claim_count", test_reject_zero_claim_count),
+    CASE("I1-7", "null_claims_nonzero_count", test_null_claims_nonzero_count),
+    CASE("I1-8", "zero_count_with_pointer", test_zero_count_valid_pointer),
+    CASE("I1-9", "claim_pages_gt_free_enomem", test_claim_pages_gt_free_enomem),
+    CASE("I2-1", "claim_pages_causes_enomem", test_claim_pages_causes_enomem),
+    CASE("I2-2", "claim_memory_causes_enomem", test_host_overcommit_enomem),
+    CASE("I2-3", "claim_prima_causes_enomem", test_node_overcommit_enomem),
+};
+
+/* Test entry point */
+int main(int argc, char **argv)
+{
+    struct test_result results[ARRAY_SIZE(cases)] = {};
+    struct runtime_config cfg = {};
+    struct test_env env = {};
+    int retval;
+
+    retval = lib_parse_args(argc, argv, &cfg);
+    if ( cfg.list_only )
+        return lib_print_available_tests(cases, ARRAY_SIZE(cases));
+    if ( !retval )
+    {
+        lib_initialise_test_env(&env);
+        lib_run_tests(&env, argv[0], &cfg, cases, ARRAY_SIZE(cases), results);
+        retval = lib_summary(results, ARRAY_SIZE(results));
+        lib_release_test_env(&env);
+    }
+    return retval ? EXIT_FAILURE : EXIT_SUCCESS;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue May 19 13:07:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 13:07:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1312991.1583141 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKAh-0001lU-PX; Tue, 19 May 2026 13:07:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1312991.1583141; Tue, 19 May 2026 13:07:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKAh-0001lN-Lr; Tue, 19 May 2026 13:07:43 +0000
Received: by outflank-mailman (input) for mailman id 1312991;
 Tue, 19 May 2026 13:07:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <accek@invisiblethingslab.com>) id 1wPKAf-0001ix-R7
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:07:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPKAf-009WyO-1A
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:07:41 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <accek@invisiblethingslab.com>)
 id 6a0c6095-bab6-0a2a0a5309dd-0a2a4509b0e4-16
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:07:40 +0200
Received: from [103.168.172.159] (helo=fhigh-a8-smtp.messagingengine.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <accek@invisiblethingslab.com>)
 id 6a0c609b-2497-0a2a45090019-67a8ac9f83c9-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:07:40 +0200
Received: from phl-compute-07.internal (phl-compute-07.internal [10.202.2.47])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 43E03140005B;
 Tue, 19 May 2026 09:07:39 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-07.internal (MEProxy); Tue, 19 May 2026 09:07:39 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 19 May 2026 09:07:37 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm3 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:Message-ID:MIME-Version:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:message-id:mime-version:reply-to:subject:subject:to:to; s=fm3;
	 t=1779196059; x=1779282459; bh=1GCvfVbmC+gEyoOjFaasIPFibJzKYv/q
	S1gecQDz3pk=; b=SRB8rkPJRZ4UXCPRkaLtoaZPfihaib9lpwHK2eo410d4LmxE
	y8jmi+kiwN7fNHOq/2MLe8RUAVKd77irQfHDoKMPysJtnQw4QtDSaMfxsxyWITQJ
	BRY/NCARBvKg/4Zk7iCzLCBiyZWIl2rC7UuLz0yFDg1KOkUvyVO2phdS8STpdIJ+
	iUxN4FAoUeLzN35m2oLPbib2UwtmyZgUVD531dVxfc4ddSKR6Z65dh3Ha7ZZ35IH
	6fNHN1y198LGNDKnMNQykPcNWIJFOTGpAOlg7D+jFSSqDmaU/m3JVtLnRX8KUZx5
	fUbWVyOYhiV4LmxachrFJBWd2/J68GQ2jKktcw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:message-id:mime-version:reply-to:subject
	:subject:to:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm3; t=1779196059; x=1779282459; bh=1GCvfVbmC+gEyoOjFaasIPFibJzK
	Yv/qS1gecQDz3pk=; b=QJCW1XRSzhFvgYe6fKCIix72Yuokvp4s6BW/FGQZ2gTX
	heOg3NQ2E93HbQyY2G9F8Ot4Wdj6mWcjaVdn+DCdNBCr1me77QviMRx8yGbo1gRe
	YcfFkvfi/u/A5fowpNVA/ChtaeS4/uYQEu5mGaxXprj1J0NkkhkVHjQKvg9T7DPi
	jgH01YWrEDsiVnYFSPfjpoDNhoZCakzkTo9ZF3qZWNU9qG5/vhug/AMD8XTarTTA
	kLCpPNukhMBkQnDKKPxm/TbxTYRl6vCxAWEPEUDe56Vq8sSyG+OraaSrQ0bCUh7O
	lVZmRMaw/ykA2s5xIrQKO8MIyyhIi66eMrw3geB+fw==
X-ME-Sender: <xms:mmAManBeoJbqvVyU1LrWpvwIKrZY3rHja4Q5QcwZHdEdVDEpmYpucQ>
    <xme:mmAMaka8jYG5X4MHNS3Ku5ceCrzfMuBPNhN0uj46amivKM3WCGyYdvwLDblkCMkEi
    btwJp9AmIM1yBQYO9d3dOFAxaAdOpstFiy2qSRmZVpfJH2f-kg>
X-ME-Received: <xmr:mmAMaq6gGmgmOfvz65rm4CLyQWWQooVPBv6oMTb8sUEibWFPrfZA6ZwvOw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgddugedukeefucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpefuiiihmhhonhcu
    tegtvggurgnkshhkihcuoegrtggtvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsg
    drtghomheqnecuggftrfgrthhtvghrnhepiefffffhgfetheelledtudffleetteehfeek
    geeltdeuhfehleelhfejffdvueelnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg
    hmpehmrghilhhfrhhomheprggttggvkhesihhnvhhishhisghlvghthhhinhhgshhlrggs
    rdgtohhmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtth
    hopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgt
    phhtthhopegrtggtvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprh
    gtphhtthhopeguphhsmhhithhhsegrphgvrhhtuhhsshholhhuthhiohhnshdrtghomhdp
    rhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrd
    gtohhmpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomh
X-ME-Proxy: <xmx:mmAMalbou8nXIlsgsdV_nS5fTFdpGEzgCkK_mDt29fdHXZvx2CPGdA>
    <xmx:mmAMapjtHLDFAwjx1FdYV8T9xUkhgDgIyn8N56PjUBoODV7o3mxH9A>
    <xmx:mmAMam8T5NW7GrDw_LvE6Z1IJe_YbFch_UxAS-lUkdXyHAWGlabtqw>
    <xmx:mmAMakpIH361sIi7lBmMnbYs6iZJaVM6GLkUuRtP4kPTRgVa0iNJVQ>
    <xmx:m2AMai30wz-t4pQtJ5Hh8Hbvn4rOA6WLnaeWlmHY-ZfYHWEJFuj6AwN_>
Feedback-ID: i792e4853:Fastmail
From: =?UTF-8?q?Szymon=20Aceda=C5=84ski?= <accek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Szymon=20Aceda=C5=84ski?= <accek@invisiblethingslab.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH for-4.22] EFI: Fix boot from a device without a file system
Date: Tue, 19 May 2026 15:06:57 +0200
Message-ID: <5ee376dc0df448437f386ab2606c42d63a515ca1.1779194154.git.accek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779196060-88D76A53-0AE0874E/0/0
X-purgate-type: clean
X-purgate-size: 1737

When netbooting a unified Xen kernel image (via GRUB chainloader),
the resulting loaded_image->DeviceHandle does not support
SIMPLE_FILE_SYSTEM_PROTOCOL.

Instead of crashing via noreturn PrintErrMesg(), print a message
via PrintStr() and return NULL from get_parent_handle().

Signed-off-by: Szymon Acedański <accek@invisiblethingslab.com>
---
Tested on Intel Lunar Lake laptop via PXE-loaded GRUB chainloading
the unified image including Xen built from upstream staging. Without
the patch the boot aborts with:

  Couldn't obtain the File System Protocol Interface: ErrCode: 0x8000000000000003

(EFI_UNSUPPORTED, per UEFI spec Appendix D). With the patch, dom0
reaches login.

 xen/common/efi/boot.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 9ea2183c0b..a6c3c371c6 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -471,6 +471,15 @@ static EFI_FILE_HANDLE __init get_parent_handle(const EFI_LOADED_IMAGE *loaded_i
         /* Get the file system interface. */
         ret = efi_bs->HandleProtocol(loaded_image->DeviceHandle,
                                      &fs_protocol, (void **)&fio);
+        if ( ret == EFI_UNSUPPORTED )
+        {
+            /*
+             * The image could come from a device without a file system,
+             * for example it could be a netbooted unified Xen kernel image.
+             */
+            PrintStr(L"File System Protocol not supported on boot device\r\n");
+            return NULL;
+        }
         if ( EFI_ERROR(ret) )
             PrintErrMesg(L"Couldn't obtain the File System Protocol Interface",
                          ret);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue May 19 13:24:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 13:24:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313003.1583150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKRA-0004kw-02; Tue, 19 May 2026 13:24:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313003.1583150; Tue, 19 May 2026 13:24:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKR9-0004kp-TX; Tue, 19 May 2026 13:24:43 +0000
Received: by outflank-mailman (input) for mailman id 1313003;
 Tue, 19 May 2026 13:24:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPKR8-0004kj-Jt
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:24:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPKR7-00CAlK-Hm
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:24:41 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c6498-2eae-0a2a0a5409dd-0a2a4505abb8-2
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:24:41 +0200
Received: from [209.85.208.181] (helo=mail-lj1-f181.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c6499-aaa8-0a2a45050019-d155d0b5b54e-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:24:41 +0200
Received: by mail-lj1-f181.google.com with SMTP id
 38308e7fff4ca-393da8f389bso35100251fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 06:24:41 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-395882d28f4sm20195451fa.17.2026.05.19.06.24.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 06:24:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779197080; x=1779801880; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Puyl1fu8qBuC/HyQpOHS6LGvvV3IplxhRqkYs2KFTQk=;
        b=TtgpPlN72adVYHNonNg7kaq6aIS7NDWlYeSLCJkuhHPfiJ633r+l30sdnr/DHU8S04
         L3BgCDiCRp4mA8rxMqGU3VzmwgiMSDpUzIiJGCD+gC8lhKBeJ5qqI1+F0/YrNZbpK/pA
         FVaVpYQL8uAMt3Cna53lAc4Y13H3mauxQVm85BqzPC3eoy8p+Eo5mICrHJM+vNjWYmlV
         gux4WAwRolz+i5M1xA99gKSzSjqZlatJDOKgqhY9FaXitOxyyOS/tAsaVNysCAIW6GLB
         CizoWqVnjC4w7JdvSZ2OSOQAh+DFn+wfFMzrgpaGqyq386ePbbDxIaUAu0EAgiXoq+oa
         cvzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779197080; x=1779801880;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Puyl1fu8qBuC/HyQpOHS6LGvvV3IplxhRqkYs2KFTQk=;
        b=XfbLoJkyX5iMt9UfgcmMx0G6BaRoCSjCeJvFmtluG+jbjr49x87yxBxZyOEVOMOcOs
         ntVfmiNTUYO9kJf9GbgHotGl0XY7IZnSNbJR/WuxXNnyYCoPpv81wA8b/jhVU0oO7H45
         4gMnOyDjxvZPLIGHEm/e4S9UqfKca0cvnnMkVK/CoY4Se6m5vf/Cxa6BgiUVRl364wkE
         i6wThUouCx4iANpRmcdNXteaS6qtoXXyH08UbSFKa7pfpRhFFh1XywaNtlpbJcsAtyZ5
         jptuMFnfxzJhbwCtnOO5roQqjDDEn2IWC7wEXsoz76Sl+4QgKG+bgvXvDfgUMQg1b3kk
         fcTw==
X-Forwarded-Encrypted: i=1; AFNElJ9lCpmRdLOcylwRRSXGUHSc/8Igt3nXwZfbKpzSJtByDhk6PYkwcepNszTIteFmSuIXayRWVhbUD2o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxRnljAk7l6zZQf6Rak5G0wyG3wcw9L/i9ZlmzK6HZQjpKeKsiu
	GE+XhARjEHjf32Ng0INLWBxrK81mxJeKj8woe6z0bA2jWtmoD5a/xc+y
X-Gm-Gg: Acq92OGZ9euLupr918Ha5A3C+kmip94dgrvSdmeAVW9ORRSM9IjmtEMNCfJazn2r58n
	TMm3XBkH3ZMXUB9uKOukDovwkEEkQoCMPTHVLdGdrAC4jWCXvaMGFonoCiXshu8aV8ntWuSeXgr
	ACLMnLZ2aRSrJ44JWHRgaTiVDIKacOKUVG5sBeCbo/zvPu99wWTvmpk3o9Fe+Rym6zXDxMFapHX
	oo4zk3NDk8+PgvH/R7Rv8YXz3XETkp00ABngi5BSrCE142KaDkR953Plo2Ovqz13XM2WZGyum7L
	6wCZYbdra3/V/4tsQVZ9e5Tu2tBipJbAM7TAuNQBivLsW45gKsG+YuN7+C79Lu2nQAUcSO3OH5/
	ZGe58bRr6Yxzyb7NPTAkWiJSDIcX9MIe3s82Frb7fm6DXzmBtQAovaXkc50g7SDQrOniB1NKFj+
	/ppzBnzaray94f1W9UdzIb8hDWLHWtuQEhFTfJS2rq/V/R6/zHcGIKodUJxBs/quoSHglVkYqSN
	Vs=
X-Received: by 2002:a05:651c:515:b0:393:975b:5634 with SMTP id 38308e7fff4ca-39561c8b784mr58984671fa.11.1779197080367;
        Tue, 19 May 2026 06:24:40 -0700 (PDT)
Message-ID: <fbd8b102-d495-4678-8226-a199554e266d@gmail.com>
Date: Tue, 19 May 2026 15:24:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/26] xen/riscv: introduce guest riscv,isa string
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <b2d4f3f7f049837a25bc00bfb1d3da8b984a8b5a.1778250616.git.oleksii.kurochko@gmail.com>
 <364abd6e-4fff-437a-90c8-bb4489f0c51d@suse.com>
 <f032149e-aa99-4976-8012-39bd01d4a653@gmail.com>
 <23e8de1e-b792-4863-bd99-f529642fb963@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <23e8de1e-b792-4863-bd99-f529642fb963@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1779197081-D9F76443-7A740563/10/73395122804
X-purgate-type: spam
X-purgate-size: 2964



On 5/19/26 2:12 PM, Jan Beulich wrote:
> On 19.05.2026 13:59, Oleksii Kurochko wrote:
>> On 5/18/26 5:51 PM, Jan Beulich wrote:
>>> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>>>> --- a/xen/arch/riscv/include/asm/cpufeature.h
>>>> +++ b/xen/arch/riscv/include/asm/cpufeature.h
>>>> @@ -17,6 +17,8 @@
>>>>     */
>>>>    #define RISCV_ISA_EXT_BASE  26
>>>>    
>>>> +#define RISCV_GUEST_ISA_STR_MAX 256
>>>
>>> This looks like it won't be good for very long, seeing how long ISA strings can
>>> get. I wonder anyway whether ...
>>>
>>>> @@ -94,6 +95,9 @@ struct arch_domain {
>>>>        struct p2m_domain p2m;
>>>>    
>>>>        struct paging_domain paging;
>>>> +
>>>> +    DECLARE_BITMAP(guest_isa, RISCV_ISA_EXT_MAX);
>>>> +    char guest_isa_str[RISCV_GUEST_ISA_STR_MAX];
>>>
>>> ... a compile-time sized buffer is suitable here. Can't you allocate a buffer
>>> just large enough to hold the string?
>>
>> It could be allocated dynamically.
>>
>> Does it make sense to evaluate in run-time what should be a buffer size?
>> For this case I can't find analogue of realloc() in Xen.
> 
> Hmm, I see xrealloc_array(), and surely we could gain xvrealloc_array()
> which we'll need anyway once xrealloc_array() uses get converted. (I also
> see x{,v}realloc_flex_struct(), but that's of no use here as it looks.)

Oh, I missed to turned off "full match" during search...

> 
>> Or it would be
>> fine just to take something bigger as a const (lets say 2048) and use it
>> for dynamic allocation?
> 
> I'd rather not. Can't you determine how much space the string is going to
> occupy?

I thought about two options as alternatives:

1. Take as a length host RISC-V ISA string but theoretically we can 
emulate some extensions which aren't mentioned in host RISC-V ISA string 
so it could be longer. So not a good option.

2. Having two walks in init_guest_isa():
    Introduce the following function:
static size_t guest_isa_str_len(const unsigned long *isa_bitmap)
{
     size_t len = 4; /* rvX prefix */

     for ( unsigned int i = 0; i < ARRAY_SIZE(riscv_isa_ext); i++ )
     {
         const struct riscv_isa_ext_data *ext = &riscv_isa_ext[i];

         if ( !riscv_isa_extension_available(isa_bitmap, ext->id) )
             continue;

         if ( ext->id >= RISCV_ISA_EXT_BASE )
             len++; /* '_' separator */

         len += strlen(ext->name);
     }

     return len + 1; /* NUL terminator */
}

   and then:

int init_guest_isa(struct domain *d)
{
     bitmap_andnot(d->arch.guest_isa, riscv_isa, guest_unsupp,
                   RISCV_ISA_EXT_MAX);

     size_t len = guest_isa_str_len(d->arch.guest_isa);
     d->arch.guest_isa_str = xzalloc_array(char, len);
     if ( !d->arch.guest_isa_str )
         return -ENOMEM;

     /* ... existing snprintf + strlcat loop unchanged ... */
}

If approach 2 is a good one I can follow it.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue May 19 13:33:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 13:33:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313012.1583166 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKZR-0006eQ-Qu; Tue, 19 May 2026 13:33:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313012.1583166; Tue, 19 May 2026 13:33:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKZR-0006eJ-Nx; Tue, 19 May 2026 13:33:17 +0000
Received: by outflank-mailman (input) for mailman id 1313012;
 Tue, 19 May 2026 13:33:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPKZR-0006dy-08
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:33:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPKZQ-006zNh-8b
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:33:16 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c6694-2eae-0a2a0a5409dd-0a2a4506865a-18
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:33:16 +0200
Received: from [209.85.218.50] (helo=mail-ej1-f50.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c669c-7371-0a2a45060019-d155da32c973-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:33:16 +0200
Received: by mail-ej1-f50.google.com with SMTP id
 a640c23a62f3a-bccd251d622so610272566b.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 06:33:16 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4e604e6sm698951166b.52.2026.05.19.06.33.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 06:33:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779197596; x=1779802396; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=wD6jX6leT/+DMbGpqeYfChYVqoUr613qF9ySP36PMns=;
        b=N24Hfwe8b6hNjAfT4qKMTk5ASKyATGujQCkcGqYurwdlvcr2AbnSSjLAVP0WYMxLpF
         UvjYrbKgcgBwgXw/qwkehZ8groJxMftwobKpHdGJ/s2YMUocFcsr6aLSKOR3OzPZihvJ
         ixmLM/iQ2XSOLbAETgYcGFaqJ0kElDWVhSydEYe2+H32GKdtICD/cfjKmE4Pj2HTzH6E
         dBJElJSZXxNNa5B9bd3+fWSCVIMxWDzSpxdKQPI3HYsjIuqpTBTvYIlCZsqPxFoJxDM+
         flk5l1BBHm18uhSQvF+u4piUy0dheKDjw+ivUY32UpQdEamjiTfm+nWgvYMlrnwItxK5
         62Hw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779197596; x=1779802396;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=wD6jX6leT/+DMbGpqeYfChYVqoUr613qF9ySP36PMns=;
        b=of5+tIqavMN7H6G+yH7bBfL4BtPIbGpdVbzHms9JMKZTTpiftwWOvOFZ38jbMsMBaO
         uM2AGtBHujAWjZdGCr1Zf6AmjwsdEkGH78DG0ggMxIZ8VyzeyX+uNf8BSWmmx9IG3kN5
         JWHvzbS9C+7I+dx/EyBXXTMxEkT2mpMvGGYhWMrrJjnnk9o3Sr5aj8pBitEWLlPy4sfo
         9ah/bjtRJKJYrOmMBBAtJDuD00MbOVR9+p3g9LU7AuE1sJZZHxq1hssyCPCV9Loc/bSZ
         JT6iD5AUwgXqJrXVu0GADF5MVm22zVqMjVjV0K4+y1WmsXJZs2KAuA9pOhX/pupOtkL0
         ICDw==
X-Forwarded-Encrypted: i=1; AFNElJ/x1vEn1tmo5H1tzeb86gJZxF0IcVyfeOLR8mziiAWgg2EnwbsyNSRmqJw1PC6brhPhBG8fvvWqQ2E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwWu07xBHu4AGDpi6iEeH53QEv452fWYfLRien8dr5JSsjLsmLr
	U+FlYPRz+woKSJVi9dZKtBgZ5//je91ZJhOgV6q0mmAk1Ba1LX6tw9Di4Spq0A==
X-Gm-Gg: Acq92OF5JzlTQGnEVM/W/jq6IZzrOR5oZNg9tjCyMNZ83vUfgUI5YvafcA4ooEtsyLt
	UgPHjuAVv4uvmDqhq+QakwLsHGTAFjbGRiwSvXycyu5zxqR8RjVI/IJOv3IN5EvgNl8+VpKyuP0
	TXJ+uEmx0mE9Oi0QgIdcEKlFO2u2wOCTkYptgkrsxayMlNG4N1eYSoIEZDK6TD3YxvkaZhKQ7JS
	Smv/I0d8mrvg1kMN2Je58PgF7DmRRk9ilWD9fL2C3YlpH+Vw4zMAcmJeP/wGa38o0gAokhcmxRA
	LuHkEFES7XCbHT4XE87MPIqQnCuD/GQiJD/zn5jBQVzqmixN0pV6OlSTdW6WgDKCgi7XcDasLcf
	s6rEMimJbyNBWnY633uGFErJOE5OtNZs8toPwOZHxaH+1Z1FwikT1zrkR5I6fwdkSue7XPLKofi
	cLUHY0/GKI2AO+tSMTs2ZDHVwz/7q2mmkN0LSfzs38fYR/nYASAPE44BITb6ISUYtlsy6kTN+lM
	n4pM8WjRYS/6w==
X-Received: by 2002:a17:906:418f:10b0:bda:24df:231 with SMTP id a640c23a62f3a-bda24df084dmr19413666b.9.1779197595349;
        Tue, 19 May 2026 06:33:15 -0700 (PDT)
Message-ID: <acef31a4-de38-4883-a6e5-7c03106147a3@gmail.com>
Date: Tue, 19 May 2026 15:33:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/26] xen/riscv: implement make_cpus_node()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <69d2dd26b7c2d00c9d28f898f041f6d1be145e0d.1778250616.git.oleksii.kurochko@gmail.com>
 <3c0e5b33-d3bb-41ea-ba13-43add1d64617@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <3c0e5b33-d3bb-41ea-ba13-43add1d64617@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1779197596-87B7DD75-082C7119/10/73395122804
X-purgate-type: spam
X-purgate-size: 4168



On 5/18/26 6:00 PM, Jan Beulich wrote:
> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>> @@ -50,3 +52,107 @@ int __init construct_domain(struct domain *d, struct kernel_info *kinfo)
>>   
>>       return 0;
>>   }
>> +int __init make_cpus_node(const struct domain *d, struct kernel_info *kinfo)
> 
> Nit: Blank line above here, please.
> 
>> +{
>> +    int res;
>> +    const struct dt_device_node *cpus = dt_find_node_by_path("/cpus");
>> +    unsigned int cpu;
>> +    uint32_t timebase_frequency;
>> +    bool frequency_valid;
>> +    void *fdt = kinfo->fdt;
>> +
>> +    dt_dprintk("Create cpus node\n");
>> +
>> +    if ( !cpus )
>> +    {
>> +        dprintk(XENLOG_ERR, "Missing /cpus node in the device tree?\n");
>> +        return -ENOENT;
>> +    }
>> +
>> +    frequency_valid = dt_property_read_u32(cpus, "timebase-frequency",
>> +                                           &timebase_frequency);
>> +
>> +    res = fdt_begin_node(fdt, "cpus");
>> +    if ( res )
>> +        return res;
>> +
>> +    res = fdt_property_cell(fdt, "#address-cells", 1);
>> +    if ( res )
>> +        return res;
>> +
>> +    res = fdt_property_cell(fdt, "#size-cells", 0);
>> +    if ( res )
>> +        return res;
>> +
>> +    if ( frequency_valid )
>> +        res = fdt_property_cell(fdt, "timebase-frequency", timebase_frequency);
>> +
>> +    for ( cpu = 0; cpu < d->max_vcpus; cpu++ )
> 
> Limit cpu's scope to this loop?

I will remove 'unsigned int cpu' from the function-level declarations 
and moved it into the for loop.

> 
>> +    {
>> +        char buf[64];
>> +        uint32_t reg = cpu_to_fdt32(cpu);
> 
> Isn't this a byte-order adjustment? If so, how come ...
> 
>> +        snprintf(buf, sizeof(buf), "cpu@%u", cpu);
> 
> ... the result is passed to an entirely non-FDT function? (Most pre-existing uses
> of the function that I can spot store something in memory, i.e. adjusting byte-
> order makes sense there.)

But here pure cpu is used instead of reg variable and reg variable is 
used here ...

> 
>> +        res = fdt_begin_node(fdt, buf);
>> +        if ( res )
>> +            return res;
>> +
>> +        res = fdt_property(fdt, "reg", &reg, sizeof(reg));
>> +        if ( res )
>> +            return res;
... but it we could drop it and use just:
   res = fdt_property_cell(fdt, "reg", cpu);

fdt_property_cell will take care if a byte-order adjustment.

>> +
>> +        res = fdt_property_string(fdt, "status", "okay");
>> +        if ( res )
>> +            return res;
>> +
>> +        res = fdt_property_string(fdt, "compatible", "riscv");
>> +        if ( res )
>> +            return res;
>> +
>> +        BUILD_BUG_ON((sizeof("riscv,") +
>> +                      sizeof_field(struct gstage_mode_desc, name)) >= sizeof(buf));
>> +        snprintf(buf, sizeof(buf), "riscv,%s", max_gstage_mode->name);
>> +        res = fdt_property_string(fdt, "mmu-type", buf);
>> +        if ( res )
>> +            return res;
>> +
>> +        res = fdt_property_string(fdt, "riscv,isa", d->arch.guest_isa_str);
>> +        if ( res )
>> +            return res;
>> +
>> +        res = fdt_property_string(fdt, "device_type", "cpu");
>> +        if ( res )
>> +            return res;
>> +
>> +        res = fdt_begin_node(fdt, "interrupt-controller");
>> +        if ( res )
>> +            return res;
>> +
>> +        res = fdt_property_string(fdt, "compatible", "riscv,cpu-intc");
>> +        if ( res )
>> +            return res;
>> +
>> +        res = fdt_property_cell(fdt, "#interrupt-cells", 1);
>> +        if ( res )
>> +            return res;
>> +
>> +        res = fdt_property(fdt, "interrupt-controller", NULL, 0);
>> +        if ( res )
>> +            return res;
>> +
>> +        res = fdt_property_u32(fdt, "phandle", alloc_phandle(kinfo));
>> +        if ( res )
>> +            return res;
>> +
>> +        /* end of interrupt-controller */
> 
> Nit: Comment style. Also such a comment pretty clearly calls for a counterpart
> at the start.

Sure, I will add one.

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 13:40:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 13:40:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313027.1583208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKgM-0000EL-Rh; Tue, 19 May 2026 13:40:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313027.1583208; Tue, 19 May 2026 13:40:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKgM-0000E6-Ol; Tue, 19 May 2026 13:40:26 +0000
Received: by outflank-mailman (input) for mailman id 1313027;
 Tue, 19 May 2026 13:40:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPKgL-0000E0-1u
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:40:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPKgJ-009eT0-VN
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:40:23 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c6838-5cb7-0a2a0a5109dd-0a2a45018074-44
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:40:23 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c6847-c1f2-0a2a45010019-d1558036d9cf-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:40:23 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-48e82c23840so28661555e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 06:40:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe537ccf5sm322098845e9.14.2026.05.19.06.40.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 06:40:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779198023; x=1779802823; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8v8u4LmD23Q0kqJA+cqSMyZ6VPpdKXupaYAqEm1/CIY=;
        b=IonWEe4N3c42zAjbRD3sHLGkOd0QsVBuTufalK/0CQ6rUFXQ2M8qepdGf0JcF4637I
         yP+gkM26Nc2g0My8tVs0/wrHpBTKEZwsMYBsCwj9zgfc6PsuB6j8/ZNh3ia2n2+K5ADx
         MMHfwY7xu3NGhFNbqm3XDYT1mSlqluQqX5vMLOVy7fghYCpi1Iee6r8CJa7YFs4yd0PB
         TniF1pY1nu5xketzfhoXMeDjTIDt9k/t5IXgCvadCaw9BUhsDJU6valolLffESdnaWXe
         Z7gU9XyPEIF1Y+XNzrcS65rGl3eLS811g1l97agn+xPJMsgs9qYn4tka4ZPjRypPqEuv
         RpgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779198023; x=1779802823;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8v8u4LmD23Q0kqJA+cqSMyZ6VPpdKXupaYAqEm1/CIY=;
        b=hbRTo+FpZPBmFArhh8DgpXQlGnMBG04P0Z5blS8IeLvLOe4MA/MZ8PwYoAc6ubDZvg
         eCd6ik23bYtUmP03u0Y6IvmHMYgtt+HHCN6VGtXtKnyfSfpoV984+uXWZR99/Ti9piml
         St+9TgG2ksqUrh1DQXiB/8X84GYiyHOncfMacg/SwGbgbLtSyCihP754UfwuBw3/im8h
         rVxezK798jV4M44JKwSQnr6qxYfi944KOliqan5JYI/h9Ttej7Bv2pIOMISZt3wOCHiz
         yBEEEswzVGuOtS09EFra+rf4qjMtWrBNcKmErmkE4WGnUxsL7+Z9mplwZXX1XMgLpAfP
         ll7g==
X-Forwarded-Encrypted: i=1; AFNElJ9pUaDWnKMYOC6XljmJiyGbOxwJCbUaBfDs4YPvrVRi6F4yChNlFS4nSd4PgG48uNLTfvyDbdh9I/Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3E4Yk2mGwdBB/zUucPvzthJV+9/juRX7Icsm2R97DOX2Wipaf
	rqDVj27mepWly+cRzyj1jaMqB0XTme04kG+8wAUnxKX6E9SKv77MZVgqC5/v5SNVdw==
X-Gm-Gg: Acq92OFCLIkzLO/XXpYjgv13VcdLT72U5KygMe6VHn2J6GrW+1FVFRdasaj5ZCPy9xq
	xjaJQKhKQ4JfqWDrWCj2p0gVvkY1utoTU5fik3YYufysxgMxUZ40+AeW5jIUt4xuTmVpQjTAky4
	mbLYFyC1E7NsAJMs8FW75t6rLyRMMjLb2q0qdd2c9mawnVNiKYt+m+I3RPiFf1DU9E8mTXbtFH1
	3BvAc53pmSpJ9wGDGt8Y4nRTiWXApFtJYtOSNhcILq6AdvwCrdpBi8a6eQtDsJEtcADN/zDl6/o
	HA2pGTRzSfegsOBp48VXPmdIykf9wuHsTjEiCgntyeHXarbTuEzlv/ZYCmY9ieGxf+UMjx7UjaJ
	KSXmBDchz+kHJGgSyL7+jS9ngZGvo/4woz5R9C3bR8tWOf7S/fvjWfjoUROheSwBjQ8jpDVNBQH
	65wbhrkd9MpIYWWq9giLEVlWpohEhZabLU5rFHj4dGrTqRDXpxtO7WqHuSGhlGRi7Xn8qK4rkBy
	CIOw+5EpgxvhkXzRY08xe/acw==
X-Received: by 2002:a05:600c:35c6:b0:48f:dfe3:dae4 with SMTP id 5b1f17b1804b1-48fe60e9f8cmr338315225e9.13.1779198023001;
        Tue, 19 May 2026 06:40:23 -0700 (PDT)
Message-ID: <3d9e2a3a-6839-4909-b60f-28b4c1a02cdd@suse.com>
Date: Tue, 19 May 2026 15:40:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/26] xen/riscv: introduce guest riscv,isa string
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <b2d4f3f7f049837a25bc00bfb1d3da8b984a8b5a.1778250616.git.oleksii.kurochko@gmail.com>
 <364abd6e-4fff-437a-90c8-bb4489f0c51d@suse.com>
 <f032149e-aa99-4976-8012-39bd01d4a653@gmail.com>
 <23e8de1e-b792-4863-bd99-f529642fb963@suse.com>
 <fbd8b102-d495-4678-8226-a199554e266d@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <fbd8b102-d495-4678-8226-a199554e266d@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1779198023-B7957FF4-45845DE1/0/0
X-purgate-type: clean
X-purgate-size: 3393

On 19.05.2026 15:24, Oleksii Kurochko wrote:
> 
> 
> On 5/19/26 2:12 PM, Jan Beulich wrote:
>> On 19.05.2026 13:59, Oleksii Kurochko wrote:
>>> On 5/18/26 5:51 PM, Jan Beulich wrote:
>>>> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>>>>> --- a/xen/arch/riscv/include/asm/cpufeature.h
>>>>> +++ b/xen/arch/riscv/include/asm/cpufeature.h
>>>>> @@ -17,6 +17,8 @@
>>>>>     */
>>>>>    #define RISCV_ISA_EXT_BASE  26
>>>>>    
>>>>> +#define RISCV_GUEST_ISA_STR_MAX 256
>>>>
>>>> This looks like it won't be good for very long, seeing how long ISA strings can
>>>> get. I wonder anyway whether ...
>>>>
>>>>> @@ -94,6 +95,9 @@ struct arch_domain {
>>>>>        struct p2m_domain p2m;
>>>>>    
>>>>>        struct paging_domain paging;
>>>>> +
>>>>> +    DECLARE_BITMAP(guest_isa, RISCV_ISA_EXT_MAX);
>>>>> +    char guest_isa_str[RISCV_GUEST_ISA_STR_MAX];
>>>>
>>>> ... a compile-time sized buffer is suitable here. Can't you allocate a buffer
>>>> just large enough to hold the string?
>>>
>>> It could be allocated dynamically.
>>>
>>> Does it make sense to evaluate in run-time what should be a buffer size?
>>> For this case I can't find analogue of realloc() in Xen.
>>
>> Hmm, I see xrealloc_array(), and surely we could gain xvrealloc_array()
>> which we'll need anyway once xrealloc_array() uses get converted. (I also
>> see x{,v}realloc_flex_struct(), but that's of no use here as it looks.)
> 
> Oh, I missed to turned off "full match" during search...
> 
>>
>>> Or it would be
>>> fine just to take something bigger as a const (lets say 2048) and use it
>>> for dynamic allocation?
>>
>> I'd rather not. Can't you determine how much space the string is going to
>> occupy?
> 
> I thought about two options as alternatives:
> 
> 1. Take as a length host RISC-V ISA string but theoretically we can 
> emulate some extensions which aren't mentioned in host RISC-V ISA string 
> so it could be longer. So not a good option.
> 
> 2. Having two walks in init_guest_isa():
>     Introduce the following function:
> static size_t guest_isa_str_len(const unsigned long *isa_bitmap)
> {
>      size_t len = 4; /* rvX prefix */
> 
>      for ( unsigned int i = 0; i < ARRAY_SIZE(riscv_isa_ext); i++ )
>      {
>          const struct riscv_isa_ext_data *ext = &riscv_isa_ext[i];
> 
>          if ( !riscv_isa_extension_available(isa_bitmap, ext->id) )
>              continue;
> 
>          if ( ext->id >= RISCV_ISA_EXT_BASE )
>              len++; /* '_' separator */
> 
>          len += strlen(ext->name);
>      }
> 
>      return len + 1; /* NUL terminator */
> }
> 
>    and then:
> 
> int init_guest_isa(struct domain *d)
> {
>      bitmap_andnot(d->arch.guest_isa, riscv_isa, guest_unsupp,
>                    RISCV_ISA_EXT_MAX);
> 
>      size_t len = guest_isa_str_len(d->arch.guest_isa);
>      d->arch.guest_isa_str = xzalloc_array(char, len);
>      if ( !d->arch.guest_isa_str )
>          return -ENOMEM;
> 
>      /* ... existing snprintf + strlcat loop unchanged ... */
> }
> 
> If approach 2 is a good one I can follow it.

This might be yet better with only a single function. Otherwise the two are
always at risk of going out of sync. After all you can use snprintf() to
determine just the size needed; if you go look, there may even be an
example or two in the tree.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 13:41:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 13:41:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313034.1583216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKhU-0000kr-7P; Tue, 19 May 2026 13:41:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313034.1583216; Tue, 19 May 2026 13:41:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKhU-0000kk-4R; Tue, 19 May 2026 13:41:36 +0000
Received: by outflank-mailman (input) for mailman id 1313034;
 Tue, 19 May 2026 13:41:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wPKhS-0000ke-Iu
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:41:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPKhR-00CPgz-T9
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:41:33 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 6a0c687e-e002-0a2a0a5209dd-0a2a45058094-40
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:41:33 +0200
Received: from [202.12.124.146] (helo=fout-b3-smtp.messagingengine.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 6a0c688c-aaa8-0a2a45050019-ca0c7c92d093-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:41:33 +0200
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfout.stl.internal (Postfix) with ESMTP id 0DE801D00136;
 Tue, 19 May 2026 09:41:31 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-05.internal (MEProxy); Tue, 19 May 2026 09:41:32 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 19 May 2026 09:41:30 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm3 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1779198091;
	 x=1779284491; bh=/lUE3qzJGWId7T2vKGtoCTDKSCMo76uWk1asDkItOAo=; b=
	FaqcnyAUHfzH3CtYMxjln9L8epJ3rnTBkVc0OaXwsCvHEOrZNgZJciWJaYFApETi
	+oukEewFaHv4GT78HGfqr9ZgJa4gHu4OjJJ1uSimhlPwiIKROkl1SOc3+0Zi5ZL8
	+a2wVg9tqp/xAHd3ITefAbhZfr7BBFDGgPfmZ2QW5ppfBSKPvJFY/U1Eh7X/e2NC
	7MBbz3e92jb3Qy7glQ0N6MoFCinvmDFEOtR1pMOafwGwzpOUvIrxA43/SsF/0lnQ
	ktblvCyLSH8T9jox6pWE1rUC6cfPEoCAuH2a56ng81KqhXCj/e0l2JS8EaCQFcwX
	B5XIUSSyaLPTcT/TLXcMmQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=
	1779198091; x=1779284491; bh=/lUE3qzJGWId7T2vKGtoCTDKSCMo76uWk1a
	sDkItOAo=; b=EL9gorARMmL3XTMydaFSAgbJ2dOUxzEmCR9AhB2xgKJzybQcSbV
	/7WdGepBw/vTXrjyP3tASpZszDKuL2J4U9r3h+BZ+DggXLJWR5rfk9J5r00LbMN+
	9eixWh7gBQeOX0Gf+QWo/xfJA9nU1KSiYT5X07Xoc95j2Kqw5NmGwqb/096nUoE9
	2Zm8j904dXmDEZ8mOmtZpGCgNtD26MbSWID5HYRtGJ6G4fxsVZUUSfA7k531RZil
	gzW1vRjOAGNK2l9DIAp6g5pXxa1BxXyLVF6AE5Kf4SJP3rS/Y5llNIhaSNyYBW6j
	5SZVjzGR1qAbrjAZkQ+Uf6LqnEDK5A+uWjw==
X-ME-Sender: <xms:i2gMau4T_wBPWfbatZHN9Z_Jq0q_2cr8VkJDzTb3s0-Xdq49qQ-MQQ>
    <xme:i2gMauw2GHdUUoDE-gmCyWanuBb2YsLvMkO-rFpafY423C3GVIOxkbji3bjAcEh2r
    yEe8K4DGah_0oyBNMVa6nBl2NlbuoEmcIeKFMOXSzRR3iDwqg>
X-ME-Received: <xmr:i2gMalz9SWORWZ8wsMvfQh8KRA-93iuIu1oH8FrNCO1p3jiAJt-e0GeaOFlRxn3EDuwqj_olgOBNK8EmOda8xBONMMetqjlRfv0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgddugeduledtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtoheprggttggvkhesihhnvhhishhisghlvght
    hhhinhhgshhlrggsrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtsh
    drgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepughpshhmihhthhesrghpvghr
    thhushhsohhluhhtihhonhhsrdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhsehsuh
    hsvgdrtghomhdprhgtphhtthhopeholhgvkhhsihhirdhkuhhrohgthhhkohesghhmrghi
    lhdrtghomh
X-ME-Proxy: <xmx:i2gMamyykp7z0GlZiPNdfkXEAordiO9H2-dsmYZRwPhEDxg5ZcboGg>
    <xmx:i2gMava8aKkRnDX1uX-jq3ZE2W-IeK0vUYNIB8yPkt96R23JTxWOyg>
    <xmx:i2gManXSIcb17ULgK-ydBOWbm_giXKB1lmB0mkQheFox0xE9JAESMw>
    <xmx:i2gMatgBkY_lRI2H7Q5Skhc1Su1Q_LU-olgaHw-vq3ApnYj4kXqxQg>
    <xmx:i2gMatKORHmh9hXMtebQKCIwqpLs0wUSSQcqwP0r_kCHEB4o15MHLazN>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 19 May 2026 15:41:28 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Szymon =?utf-8?Q?Aceda=C5=84ski?= <accek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.22] EFI: Fix boot from a device without a file
 system
Message-ID: <agxoiG_JLs_84rY5@mail-itl>
References: <5ee376dc0df448437f386ab2606c42d63a515ca1.1779194154.git.accek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="KMQcbhd7BCExKLra"
Content-Disposition: inline
In-Reply-To: <5ee376dc0df448437f386ab2606c42d63a515ca1.1779194154.git.accek@invisiblethingslab.com>
X-purgate-ID: tlsNG-c201ff/1779198093-DAB68443-7162175B/0/0
X-purgate-type: clean
X-purgate-size: 4096


--KMQcbhd7BCExKLra
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 19 May 2026 15:41:28 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Szymon =?utf-8?Q?Aceda=C5=84ski?= <accek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.22] EFI: Fix boot from a device without a file
 system

On Tue, May 19, 2026 at 03:06:57PM +0200, Szymon Aceda=C5=84ski wrote:
> When netbooting a unified Xen kernel image (via GRUB chainloader),
> the resulting loaded_image->DeviceHandle does not support
> SIMPLE_FILE_SYSTEM_PROTOCOL.
>=20
> Instead of crashing via noreturn PrintErrMesg(), print a message
> via PrintStr() and return NULL from get_parent_handle().

It's worth noting this isn't the first instance of returning NULL from
get_parent_handle(). The return value is used only as an argument
to read_file() (sometimes indirectly), and if it gets to be called with
NULL, read_file() will terminate execution via PrintErrMesg(). But with
unified Xen image, the intention is to not call read_file() at all, only
read_section(), so tolerating get_parent_handle() failure in this case
is desired. Keeping the message in place will ease debugging if
read_file() will actually be called later.

Acked-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>

As a side note, a slightly better approach would be to call
get_parent_handle() lazily (on the first call to read_file()?). But it's
a bigger change that I feel may be too late for in Xen 4.22.

Also, adding cc: Oleksii for release ack.

> Signed-off-by: Szymon Aceda=C5=84ski <accek@invisiblethingslab.com>
> ---
> Tested on Intel Lunar Lake laptop via PXE-loaded GRUB chainloading
> the unified image including Xen built from upstream staging. Without
> the patch the boot aborts with:
>=20
>   Couldn't obtain the File System Protocol Interface: ErrCode: 0x80000000=
00000003
>=20
> (EFI_UNSUPPORTED, per UEFI spec Appendix D). With the patch, dom0
> reaches login.
>=20
>  xen/common/efi/boot.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>=20
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 9ea2183c0b..a6c3c371c6 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -471,6 +471,15 @@ static EFI_FILE_HANDLE __init get_parent_handle(cons=
t EFI_LOADED_IMAGE *loaded_i
>          /* Get the file system interface. */
>          ret =3D efi_bs->HandleProtocol(loaded_image->DeviceHandle,
>                                       &fs_protocol, (void **)&fio);
> +        if ( ret =3D=3D EFI_UNSUPPORTED )
> +        {
> +            /*
> +             * The image could come from a device without a file system,
> +             * for example it could be a netbooted unified Xen kernel im=
age.
> +             */
> +            PrintStr(L"File System Protocol not supported on boot device=
\r\n");
> +            return NULL;
> +        }
>          if ( EFI_ERROR(ret) )
>              PrintErrMesg(L"Couldn't obtain the File System Protocol Inte=
rface",
>                           ret);
> --=20
> 2.53.0
>=20

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--KMQcbhd7BCExKLra
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmoMaIgACgkQ24/THMrX
1yzB8Af8Df9Pm7Jjg/ehsHDowBPmxPEyifkqDf+B3F7OMqvbaAGrVju3pxjmvpEY
HVosTs6gfY/UVIAqkjxgCz7xsniVVqtrfWeg03xsDOrEc2qgKwTYwnzGihutV5NP
JCjHE1DAiUi8nFzHlL17rCI3jboomHiDDoUCPAiMa7tsnzqNPi2FCU2GxUMvuNDB
iMyrBsTz1wscBGkZOw7um0tH8au4wT510jyfLppTd7tDwFaSLd4Z2/F3lVWjVFe0
0+mLAH5b6zIYyV/NHr69D3YyAzwqmOVXzMlq46NAf1Mk0fiqrmIJO6022rc5pc2S
sbG9vx7KRdbCuB32dF9cTRGo9+npPA==
=dZcW
-----END PGP SIGNATURE-----

--KMQcbhd7BCExKLra--


From xen-devel-bounces@lists.xenproject.org Tue May 19 13:42:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 13:42:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313039.1583226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKi6-0001F2-EO; Tue, 19 May 2026 13:42:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313039.1583226; Tue, 19 May 2026 13:42:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKi6-0001Et-Bo; Tue, 19 May 2026 13:42:14 +0000
Received: by outflank-mailman (input) for mailman id 1313039;
 Tue, 19 May 2026 13:42:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPKi5-0001Ed-0o
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:42:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPKi4-00CoZq-CY
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:42:12 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c68ac-bab6-0a2a0a5309dd-0a2a4503d12a-36
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:42:12 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c68b4-672d-0a2a45030019-d155802fac86-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:42:12 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-488a14c31eeso21891065e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 06:42:12 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da0fe13b4sm46269996f8f.28.2026.05.19.06.42.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 06:42:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779198132; x=1779802932; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UTzkNZRv/9acd0+EOTyU7C1Fh720JmA0arbxLOvG6S0=;
        b=VJt+uMMN2tz/A9cgjFDc/mvoIujVzNIjQVs1S5bQJwxky0z+7nWU/yC4wxeRq8Xj/n
         nOVJrV3xYoe8Uv7JPtJF+msrhW7IFm5ocXybFKT1koKWwH0xwlMruy6dQ68EECfqVz40
         SVB4TnB9D0paAExp/RWkKXuDPd5YfEe7wEmbX9dFC6YmbQ5ZzdsPAicYiL/hSBuSZYCt
         IvtWf8Xl/DOqG6gRyz1cC5k8veH+ZFG2SNjcb3QiKsdLn60CW2qbpQfxZxiviYV/LfPL
         g9GdNpnVt3AE4MH5ARsF8lSw/+voaYGm5AhMqX6eXKeXBjQECcdjLSgFVE+bFZiv/zcb
         Fpmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779198132; x=1779802932;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UTzkNZRv/9acd0+EOTyU7C1Fh720JmA0arbxLOvG6S0=;
        b=WPOhgjbGzrmNX2y2FTPMY4J+IVCxVlCYxcRru9D3REO6PJ5T0kBknS5E3rCv4IlFdO
         ezozeNZ7hIILqHLA0oNur+PZFO21i3ACRd34SSPn3/2QHGqqusqPd1XMTnQc/859yal4
         SzZZZQ12w/JAZqAAnSiFE0UxtYKt8WrY7PiMMiNy8cX+SvBuupHoP+N9oBeSk6rWd10m
         TDbZ/T6B2paaSHWuz3TFTmwU+PbFI8iRqxpN8GyMuBIgLSjnsijIP/jcbBZBM6tGh5Wx
         WdbbUdPBcjkwhu2uzaPzfiTIpMvH4lmJaboxhybemx2o60SZeQIEpIRHa+VMLkSdxT9K
         Rp1A==
X-Forwarded-Encrypted: i=1; AFNElJ+Z4HbfImTA4FQ6qqM2TMu7KZEK//cnnDb3y0OiRTxRwf6zsbkzPb+oiqEccGg+10BORUrmkgxj5C8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxX0FpqqADQOo5s90ngRgHaabXiJXzjmeNlww/wPZAExj33PiKJ
	WuXsmU4v1rmIVIefwXyNCIGp2qArmptSh9TUv1Gu3mCE8CSJRgMAzeDkiBt7IxmZUg==
X-Gm-Gg: Acq92OF8TdWYMbmmGK2Fe2HADoo1yHz4a5ydSYNbFsIXHk2p+fgL04pvwSt9oNVCdJo
	vj6S2+bK6RiZfPfc/E3I8pJ35ZZABFbaDkiibfa9W3sXT7RHfZ+8Ed/JLY68ilBssvzv71AoCaX
	uXZNfsX+V+juzYzDsPzV88w/6uNUVT5rTZ+Kqatezn3PvMyorhctrfA8X4RVNLCV3qSyhJs7uph
	bYx5G2sprYFgmjwBwF/+XjuojzlaOk8QWxzODXWOBBBA8PA2chtSuyAM+KM1iYplNApr61vOriR
	7QF+s7NCWI5K3DQLkiVWzLd/gylK6V9tBiBbb732Eo55bvo1qMN2Xemct+rmvHwrJLZp0cpIFa7
	YWjaEbqHI1IvRlHrsqWIHSj30rY4g6XwA/cR8R9iPQoY7o5Ndx7CU/cW8b19gHg8nNonVFQtR8a
	0HLCLw5ij257W6UwGiPLlw99es4hmhqGB5vWRVikkA1cZud0mBgtrsPXd1XB/dAq2oQ2dyYQqbB
	Fpz0mPINi4nJXA=
X-Received: by 2002:a05:600c:1593:b0:48f:f199:79f7 with SMTP id 5b1f17b1804b1-48ff1997aaemr150118725e9.27.1779198131680;
        Tue, 19 May 2026 06:42:11 -0700 (PDT)
Message-ID: <b1007dca-c19e-4dce-b17c-56aedb89c106@suse.com>
Date: Tue, 19 May 2026 15:42:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/26] xen/riscv: implement make_cpus_node()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <69d2dd26b7c2d00c9d28f898f041f6d1be145e0d.1778250616.git.oleksii.kurochko@gmail.com>
 <3c0e5b33-d3bb-41ea-ba13-43add1d64617@suse.com>
 <acef31a4-de38-4883-a6e5-7c03106147a3@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <acef31a4-de38-4883-a6e5-7c03106147a3@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1779198132-41197938-B6012480/0/0
X-purgate-type: clean
X-purgate-size: 1128

On 19.05.2026 15:33, Oleksii Kurochko wrote:
> On 5/18/26 6:00 PM, Jan Beulich wrote:
>> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>>> +    {
>>> +        char buf[64];
>>> +        uint32_t reg = cpu_to_fdt32(cpu);
>>
>> Isn't this a byte-order adjustment? If so, how come ...
>>
>>> +        snprintf(buf, sizeof(buf), "cpu@%u", cpu);
>>
>> ... the result is passed to an entirely non-FDT function? (Most pre-existing uses
>> of the function that I can spot store something in memory, i.e. adjusting byte-
>> order makes sense there.)
> 
> But here pure cpu is used instead of reg variable and reg variable is 
> used here ...
> 
>>
>>> +        res = fdt_begin_node(fdt, buf);
>>> +        if ( res )
>>> +            return res;
>>> +
>>> +        res = fdt_property(fdt, "reg", &reg, sizeof(reg));
>>> +        if ( res )
>>> +            return res;
> ... but it we could drop it and use just:
>    res = fdt_property_cell(fdt, "reg", cpu);
> 
> fdt_property_cell will take care if a byte-order adjustment.

I'm sorry, I clearly must have seen something that wasn't really there.

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 13:42:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 13:42:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313044.1583235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKin-0001jt-Nq; Tue, 19 May 2026 13:42:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313044.1583235; Tue, 19 May 2026 13:42:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKin-0001jm-K4; Tue, 19 May 2026 13:42:57 +0000
Received: by outflank-mailman (input) for mailman id 1313044;
 Tue, 19 May 2026 13:42:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e40798c90000f373@swg.vates.tech>)
 id 1wPKil-0001jO-HX
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:42:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPKik-00DlQJ-QE
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:42:54 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e40798c90000f373@swg.vates.tech>)
 id 6a0c68de-5cb7-0a2a0a5109dd-0a2a45068706-0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:42:54 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e40798c90000f373@swg.vates.tech>)
 id 6a0c68dd-7371-0a2a45060019-b9ff1c228f1d-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:42:54 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e40798c90000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 19 May 2026 13:42:48 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id 75E2F867BD;
 Tue, 19 May 2026 15:42:47 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=KEoPz5th6bWUDP/HX0Q1Ht7UTeF5lemHQC98qjGPtpY=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=WkAm7Tock2C9Yi7DMFasmz5ku8Z8vePor0s1eek7IsZSWVL0igvJD46suvld5Ltlf95FropYL
 LU6KfzP1OSKrkJpDo0cu0SWc/rj7bk7Vpmodf139KwYAd1inMqI2LSQ6RQAGuG9HaDF4ENxc0QM
 ulCb9JGbzUlocWAHEFbKTvENXuhTQIIc5cfS2zdbhDqSmk1u5H0Tg0EUyBN79WLS67WfBXN8+tZ
 Sqo+kgzaIfzgHfn/5DJiwPXjdyZhiGI0s5hB2nk65C/c63l77R2YoMTI4ZrxoYb39lDrTQ7A7Bb
 +VFkA5kQfE8fN+/1voPBpwD7g5xZwfONnqYfyY29eJxQ==
X-Zone-Loop: 023caad8dd6f1f77cc00e2333760cd3ecccac8d4e75e
x-campaign-type: default
x-transaction-id: c063eddc-14cf-4b88-9873-603c114039e9
x-swg-uid: 01-c25dc1cd-5b77-4219-bd4a-df26ec2b6250
X-Mailer: Sweego
Message-ID:
 <1779198168.8631fc262581453bbf619ec5b2062170.19e40798c90000f373@vates.tech>
x-swg-bid: 1779198168.8631fc262581453bbf619ec5b2062170.19e40798c90000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Tue, 19 May 2026 15:42:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/5] RFC: pci: Migrate pci_mmcfg_{read,write} to pci.c
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117765.8631fc262581453bbf619ec5b2062170.19e3baeb295000f373@vates.tech>
 <7ac53569-acca-44f7-a129-99b5dcb97500@citrix.com>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
Autocrypt: addr=teddy.astie@vates.tech; keydata=
 xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7LTBVHV/XO
 Zw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJT4ny+OGntnJntUoR
 KRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJAWicutjkkUgd28Bh6HV9EIumH
 tCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaT
 VqMdqul07o72m3eA2mf+LMu9a04FX/d4wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/
 EoucejoZ5SH49ksmVAmKOLktOaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+S
 PhHar7TPKjFz0G3DPNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89
 MXfQXZ3qt1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
 LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWjmoACGwME
 CwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNzuyOVCskwfUZPla6Z
 pd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp0x0HfuhcYfAYPR46XHTvjaJE
 v99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuROxdK8G+YHccJY8PvWSq2K2yiae2KGiAv
 1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhP
 eP3IdpfWc8cyRLXF06Rk46YMYCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcT
 UwgnYlFRk2FLq0QeKEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9
 Egr/Wmu3MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
 f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEMAKiQiZa3
 yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ3DbVf+en3/FvdVZg
 2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTmetSG5/52AjtmPFtlXAk0NmLv
 fJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0s3109sJeXT5ImVdphFs9cvyZyBT9t1Pb
 Rowv58EgV0zE4hbAeVkULAbxFV5b/ExTjjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKb
 Yu6NCfiHfEyB3Xyg9hfdrRgjMRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ov
 XoK4jm+Py0FiUGUaA6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/
 eVtR2Q1wZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
 IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWjmoACGwwA
 CgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiVoUiHYN5QwhnbZnsa
 JDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764QxyX6rld2f2RcWkDuBHun55ZWXj
 by8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk/dS0XTOQi2wVUb17sW/+ybCEokdVacZG
 zOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fuoGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+
 lOWSvdNHgoEkWR0RXBPQjnGmLKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/Off
 O485NOTKwGOxyWb006cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR
 8ULR9nX0LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
 x9fhaZEsniw8/bYgC3igkk5YJiOa
In-Reply-To: <7ac53569-acca-44f7-a129-99b5dcb97500@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------bd92M9bACcL9fTUr80x3iKUy"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779198167637
X-purgate-ID: tlsNG-16d1c6/1779198174-87F7BD75-10503653/0/0
X-purgate-type: clean
X-purgate-size: 23040

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------bd92M9bACcL9fTUr80x3iKUy
Content-Type: multipart/mixed; boundary="------------GEP22FFrtPRvDx6BJ8KMG4sg";
 protected-headers="v1"
From: Teddy Astie <teddy.astie@vates.tech>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <a5d0c138-e45e-4ceb-ad36-23bbc559a038@vates.tech>
Subject: Re: [PATCH 5/5] RFC: pci: Migrate pci_mmcfg_{read,write} to pci.c
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117765.8631fc262581453bbf619ec5b2062170.19e3baeb295000f373@vates.tech>
 <7ac53569-acca-44f7-a129-99b5dcb97500@citrix.com>
In-Reply-To: <7ac53569-acca-44f7-a129-99b5dcb97500@citrix.com>

--------------GEP22FFrtPRvDx6BJ8KMG4sg
Content-Type: multipart/mixed; boundary="------------kWoG8TOokTgd7YOP0vQi0rrU"

--------------kWoG8TOokTgd7YOP0vQi0rrU
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

TGUgMTgvMDUvMjAyNiDDoCAxOTozOCwgQW5kcmV3IENvb3BlciBhIMOpY3JpdMKgOg0KPiBP
biAxOC8wNS8yMDI2IDQ6MjEgcG0sIFRlZGR5IEFzdGllIHdyb3RlOg0KPj4gS2V5IHBhcnRz
IG9mIE1NQ0ZHIGFjY2VzcyBiaXRzIGFyZSBpbiBtbWNvbmZpZ182NC5jIChpbiBwYXJ0aWN1
bGFyDQo+PiBwY2lfbW1jZmdfe3JlYWQsd3JpdGV9KCkpIHdoaWxlIFBDSSBjb25maWd1cmF0
aW9uIHByaW1pdGl2ZXMgKHVzZWQgYWNjcm9zcyB0aGUNCj4+IGNvZGViYXNlKSBhcmUgaW4g
cGNpLmMuDQo+PiBUaGlzIGxlYWRzIHRvIHNpdHVhdGlvbnMgd2hlcmUgdGhlIGNvbXBpbGVy
IGNhbm5vdCBvcHRpbWl6ZSB0aGUgYHN3aXRjaCAobGVuKWANCj4+IGZvciBNTUNGRyBhY2Nl
c3MgZm9yIGFsbCBwY2lfY29uZl97cmVhZCx3cml0ZX1OKCksIGJlY2F1c2UgdGhleSBhcmUg
bm90IGZyb20NCj4+IHRoZSBzYW1lIGZpbGUuDQo+Pg0KPj4gTW92ZSB0aGUgcGNpX21tY2Zn
X3tyZWFkLHdyaXRlfSBpbiBwY2kuYyBhbmQgaGludCB0aGUgY29tcGlsZXIgdG8gaW5saW5l
IHRoZXNlDQo+PiBmdW5jdGlvbnMgc3VjaCB0aGF0IGl0J3MgbW9yZSBsaWtlbHkgdGhhdCB0
aGUgY29tcGlsZXIgZWxpbWluYXRlcyB0aGUNCj4+IGBzd2l0Y2ggKGxlbilgYC4NCj4+DQo+
PiBBbHNvIHRha2UgdGhlIG9wcG9ydHVuaXR5IHRvIG1pZ3JhdGUgdG8gcGNpX3NiZGZfdCB0
byByZWR1Y2UgdGhlIHBhcmFtZXRlciBjb3VudA0KPj4gYW5kIGRyb3AgbWFueSBwYXJhbWV0
ZXIgZG9tYWlucyBjaGVja3MuDQo+Pg0KPj4gT24gR0NDIDE2LjEsIHRoaXMgbGVhZHMgdG8g
Y29kZWdlbiB3aGVyZSBwY2lfY29uZl97cmVhZCx3cml0ZX1OKCkgZG9lc24ndCBjYWxsDQo+
PiBwY2lfbW1jZmdfe3JlYWQsd3JpdGV9KCkgYW55bW9yZSBhbmQgZGlyZWN0bHkgcGVyZm9y
bSB0aGUgTU1JTyBSVy4NCj4+DQo+PiA8cGNpX2NvbmZfcmVhZDMyPjoNCj4+ICAgICAgICAg
NTUgICAgICAgICAgICAgICAgICAgICAgcHVzaCAgICVyYnANCj4+ICAgICAgICAgNDggODkg
ZTUgICAgICAgICAgICAgICAgbW92ICAgICVyc3AsJXJicA0KPj4gICAgICAgICA1MyAgICAg
ICAgICAgICAgICAgICAgICBwdXNoICAgJXJieA0KPj4gICAgICAgICA4OSBmOCAgICAgICAg
ICAgICAgICAgICBtb3YgICAgJWVkaSwlZWF4DQo+PiAgICAgICAgIDg5IGYzICAgICAgICAg
ICAgICAgICAgIG1vdiAgICAlZXNpLCVlYngNCj4+ICAgICAgICAgYzEgZWYgMTAgICAgICAg
ICAgICAgICAgc2hyICAgICQweDEwLCVlZGkNCj4+ICAgICAgICAgODEgZmUgZmYgMDAgMDAg
MDAgICAgICAgY21wICAgICQweGZmLCVlc2kNCj4+ICAgICAgICAgNzcgMjYgICAgICAgICAg
ICAgICAgICAgamEgICAgIGZmZmY4MmQwNDAzMDFmYWIgPHBjaV9jb25mX3JlYWQzMisweDNh
Pg0KPj4gICAgICAgICA4NSBmZiAgICAgICAgICAgICAgICAgICB0ZXN0ICAgJWVkaSwlZWRp
DQo+PiAgICAgICAgIDc1IDIyICAgICAgICAgICAgICAgICAgIGpuZSAgICBmZmZmODJkMDQw
MzAxZmFiIDxwY2lfY29uZl9yZWFkMzIrMHgzYT4NCj4+ICAgICAgICAgMGYgYjcgZjggICAg
ICAgICAgICAgICAgbW92endsICVheCwlZWRpDQo+PiAgICAgICAgIGMxIGU3IDA4ICAgICAg
ICAgICAgICAgIHNobCAgICAkMHg4LCVlZGkNCj4+ICAgICAgICAgODMgZTMgZmMgICAgICAg
ICAgICAgICAgYW5kICAgICQweGZmZmZmZmZjLCVlYngNCj4+ICAgICAgICAgMDkgZGYgICAg
ICAgICAgICAgICAgICAgb3IgICAgICVlYngsJWVkaQ0KPj4gICAgICAgICA4MSBjZiAwMCAw
MCAwMCA4MCAgICAgICBvciAgICAgJDB4ODAwMDAwMDAsJWVkaQ0KPj4gICAgICAgICBiYSAw
NCAwMCAwMCAwMCAgICAgICAgICBtb3YgICAgJDB4NCwlZWR4DQo+PiAgICAgICAgIGJlIDAw
IDAwIDAwIDAwICAgICAgICAgIG1vdiAgICAkMHgwLCVlc2kNCj4+ICAgICAgICAgZTggMmEg
MWMgMDMgMDAgICAgICAgICAgY2FsbCAgIGZmZmY4MmQwNDAzMzNiZDMgPHBjaV9jb25mX3Jl
YWQ+DQo+PiAgICAgICAgIGViIDIyICAgICAgICAgICAgICAgICAgIGptcCAgICBmZmZmODJk
MDQwMzAxZmNkIDxwY2lfY29uZl9yZWFkMzIrMHg1Yz4NCj4+ICAgICAgICAgODEgZmIgZmYg
MGYgMDAgMDAgICAgICAgY21wICAgICQweGZmZiwlZWJ4DQo+PiAgICAgICAgIDc3IDI0ICAg
ICAgICAgICAgICAgICAgIGphICAgICBmZmZmODJkMDQwMzAxZmQ3IDxwY2lfY29uZl9yZWFk
MzIrMHg2Nj4NCj4+ICAgICAgICAgMGYgYjYgZDAgICAgICAgICAgICAgICAgbW92emJsICVh
bCwlZWR4DQo+PiAgICAgICAgIDBmIGI2IGY0ICAgICAgICAgICAgICAgIG1vdnpibCAlYWgs
JWVzaQ0KPj4gICAgICAgICAwZiBiNyBmZiAgICAgICAgICAgICAgICBtb3Z6d2wgJWRpLCVl
ZGkNCj4+ICAgICAgICAgZTggZjUgZmQgZmYgZmYgICAgICAgICAgY2FsbCAgIGZmZmY4MmQw
NDAzMDFkYjYgPHBjaV9kZXZfYmFzZT4NCj4+ICAgICAgICAgNDggODUgYzAgICAgICAgICAg
ICAgICAgdGVzdCAgICVyYXgsJXJheA0KPj4gICAgICAgICA3NCAxOCAgICAgICAgICAgICAg
ICAgICBqZSAgICAgZmZmZjgyZDA0MDMwMWZkZSA8cGNpX2NvbmZfcmVhZDMyKzB4NmQ+DQo+
PiAgICAgICAgIDg5IGRiICAgICAgICAgICAgICAgICAgIG1vdiAgICAlZWJ4LCVlYngNCj4+
ICAgICAgICAgNDggMDEgZDggICAgICAgICAgICAgICAgYWRkICAgICVyYngsJXJheA0KPj4g
ICAgICAgICA4YiAwMCAgICAgICAgICAgICAgICAgICBtb3YgICAgKCVyYXgpLCVlYXgNCj4+
ICAgICAgICAgNDggOGIgNWQgZjggICAgICAgICAgICAgbW92ICAgIC0weDgoJXJicCksJXJi
eA0KPj4gICAgICAgICBjOSAgICAgICAgICAgICAgICAgICAgICBsZWF2ZQ0KPj4gICAgICAg
ICBlOSA4OSAxMiBmMCBmZiAgICAgICAgICBqbXAgICAgZmZmZjgyZDA0MDIwMzI2MCA8X194
ODZfcmV0dXJuX3RodW5rPg0KPj4gICAgICAgICBiOCBmZiBmZiBmZiBmZiAgICAgICAgICBt
b3YgICAgJDB4ZmZmZmZmZmYsJWVheA0KPj4gICAgICAgICBlYiBlZiAgICAgICAgICAgICAg
ICAgICBqbXAgICAgZmZmZjgyZDA0MDMwMWZjZCA8cGNpX2NvbmZfcmVhZDMyKzB4NWM+DQo+
PiAgICAgICAgIGI4IGZmIGZmIGZmIGZmICAgICAgICAgIG1vdiAgICAkMHhmZmZmZmZmZiwl
ZWF4DQo+PiAgICAgICAgIGViIGU4ICAgICAgICAgICAgICAgICAgIGptcCAgICBmZmZmODJk
MDQwMzAxZmNkIDxwY2lfY29uZl9yZWFkMzIrMHg1Yz4NCj4gDQo+IFRoaXMgaXMgbm90IHRo
ZSB3aG9sZSBmdW5jdGlvbiBiZWNhdXNlIGl0J3MgbWlzc2luZyBhIHBvcCAlcmJ4LsKgIEFs
c28sDQo+IHJpZ2h0IGF0IHRoZSBib3R0b20gaGVyZSBhcmUgdGhlIC0xJ3MgZnJvbSBiYWQg
ZXJyb3IgcGF0aHMgKGRpc2N1c3NlZA0KPiBsYXRlcikuDQo+IA0KPiBCdXQsIHRoaXMgc2hv
dWxkIGJlIGFmdGVyIHRoZSAtLS0uwqAgRGlzYXNzZW1ibHkgdGhpcyBsb25nIGlzbid0DQo+
IGludGVyZXN0aW5nIHRvIHN0YXkgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLg0KPiANCg0KWWVz
LCBJIGd1ZXNzIEkgY291bGQganVzdCBzdW1tYXJ5IGl0IGFzIHRoZSBmdW5jdGlvbiBpcyBu
b3cgaW5saW5lZCANCnByb3Blcmx5Lg0KDQo+IA0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni94ODZfNjQvbW1jb25maWdfNjQuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW1jb25m
aWdfNjQuYw0KPj4gaW5kZXggOTQwY2Y2ZDc0Ny4uNDgzZGZmOWMyYyAxMDA2NDQNCj4+IC0t
LSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW1jb25maWdfNjQuYw0KPj4gKysrIGIveGVuL2Fy
Y2gveDg2L3g4Nl82NC9tbWNvbmZpZ182NC5jDQo+PiBAQCAtMTMzLDYgKzQ2LDI1IEBAIHN0
YXRpYyB2b2lkIF9faW9tZW0gKm1jZmdfaW9yZW1hcChjb25zdCBzdHJ1Y3QgYWNwaV9tY2Zn
X2FsbG9jYXRpb24gKmNmZywNCj4+ICAgICAgIHJldHVybiAodm9pZCBfX2lvbWVtICopIHZp
cnQ7DQo+PiAgIH0NCj4+ICAgDQo+PiArY2hhciBfX2lvbWVtICpwY2lfbW1jZmdfYmFzZSh1
bnNpZ25lZCBpbnQgc2VnLCB1bnNpZ25lZCBpbnQgKmJ1cykNCj4+ICt7DQo+PiArICAgIHN0
cnVjdCBhY3BpX21jZmdfYWxsb2NhdGlvbiAqY2ZnOw0KPj4gKyAgICBpbnQgY2ZnX251bTsN
Cj4+ICsNCj4+ICsgICAgZm9yIChjZmdfbnVtID0gMDsgY2ZnX251bSA8IHBjaV9tbWNmZ19j
b25maWdfbnVtOyBjZmdfbnVtKyspIHsNCj4+ICsgICAgICAgIGNmZyA9IHBjaV9tbWNmZ192
aXJ0W2NmZ19udW1dLmNmZzsNCj4+ICsgICAgICAgIGlmIChjZmctPnBjaV9zZWdtZW50ID09
IHNlZyAmJg0KPj4gKyAgICAgICAgICAgIChjZmctPnN0YXJ0X2J1c19udW1iZXIgPD0gKmJ1
cykgJiYNCj4+ICsgICAgICAgICAgICAoY2ZnLT5lbmRfYnVzX251bWJlciA+PSAqYnVzKSkg
ew0KPj4gKyAgICAgICAgICAgICpidXMgLT0gY2ZnLT5zdGFydF9idXNfbnVtYmVyOw0KPj4g
KyAgICAgICAgICAgIHJldHVybiBwY2lfbW1jZmdfdmlydFtjZmdfbnVtXS52aXJ0Ow0KPj4g
KyAgICAgICAgfQ0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIC8qIEZhbGwgYmFjayB0byB0
eXBlIDAgKi8NCj4+ICsgICAgcmV0dXJuIE5VTEw7DQo+PiArfQ0KPiANCj4gVGhpcyBpcyBh
IGhvcnJpZCBmdW5jdGlvbi7CoCBBY2Nlc3NpbmcgYW5kIG1vZGlmeWluZyBidXMgbGlrZSB0
aGF0IGNhdXNlcw0KPiBwb29yIGNvZGUgZ2VuZXJhdGlvbiwgYW5kIGJ5IG5vdyBoYXZpbmcg
dGhpcyBpbiBhIHNlcGFyYXRlIHRyYW5zbGF0aW9uDQo+IHVuaXQsIHRoZSBvcHRpbWlzZXIg
Y2FuJ3QgZm9sZCBpdCBpbnRvIGl0J3Mgc2luZ2xlIGNhbGxlciBhbmQgdW5kbyB0aGUNCj4g
cG9vciBkZWNpc2lvbnMgd2hpY2ggd2VudCBpbnRvIHdyaXRpbmcgdGhpcyBmdW5jdGlvbi4N
Cj4gDQo+IEluc3RlYWQsIHlvdSB3YW50Og0KPiANCj4gdm9pZCBfX2lvbWVtICpwY2lfbW1j
ZmdfYmFzZShwY2lfc2JkZl90IHNiZGYpDQo+IHsNCj4gIMKgIMKgIC4uLg0KPiB9DQo+IA0K
PiBiYXNlIHdoaWNoIHRha2VzIGNhcmUgb2YgdGhlIGJ1cyBhZGp1c3RtZW50IGludGVybmFs
bHkuwqAgVGhpcyBjYW4gYmUNCj4gYnJva2VuIG91dCBpbnRvIGEgc2VwYXJhdGUgcGF0Y2gs
IGFuZCB0YWtlIHRoZSBvcHBvcnR1bml0eSB0byB3cml0ZSBpdA0KPiB0byBYZW4gc3R5bGUu
DQo+IA0KDQpUaGF0J3MgYSBnb29kIGlkZWEsIElJVUMgeW91IHdhbnQgdGhpcyBmdW5jdGlv
biB0byBub3cgcmV0dXJuIGEgcG9pbnRlciANCnRvIHRoZSBFQ0FNIE1NSU8gcmVnaW9uIGZv
ciB0aGlzIFNCREYuIFNvIHdlIHdvbid0IGhhdmUgdG8gY29tcHV0ZSBpdCANCmFmdGVyd2Fy
ZC4NCg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvcGNpLmMgYi94ZW4v
YXJjaC94ODYveDg2XzY0L3BjaS5jDQo+PiBpbmRleCA4ZDMzNDI5MTAzLi5jMzdlM2VkYWRl
IDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9wY2kuYw0KPj4gKysrIGIv
eGVuL2FyY2gveDg2L3g4Nl82NC9wY2kuYw0KPj4gQEAgLTExLDEzICsxMSwxMjMgQEANCj4+
ICAgI2RlZmluZSBQQ0lfQ09ORl9BRERSRVNTKHNiZGYsIHJlZykgXA0KPj4gICAgICAgKDB4
ODAwMDAwMDBVIHwgKChzYmRmKS5iZGYgPDwgOCkgfCAoKHJlZykgJiB+MykpDQo+PiAgIA0K
Pj4gKy8qDQo+PiArICogQU1EIEZhbTEwaCBDUFVzIGFyZSBidWdneSwgYW5kIGNhbm5vdCBh
Y2Nlc3MgTU1JTyBjb25maWcgc3BhY2UNCj4+ICsgKiBvbiB0aGVpciBub3J0aGJyaWdlIGV4
Y2VwdCB0aHJvdWdoIHRoZSAqICVlYXggcmVnaXN0ZXIuIEFzIHN1Y2gsIHlvdSBNVVNUDQo+
PiArICogTk9UIHVzZSBub3JtYWwgSU9NRU0gYWNjZXNzZXMsIHlvdSBuZWVkIHRvIG9ubHkg
dXNlIHRoZSBtYWdpYyBtbWlvLWNvbmZpZw0KPj4gKyAqIGFjY2Vzc29yIGZ1bmN0aW9ucy4N
Cj4+ICsgKiBJbiBmYWN0IGp1c3QgdXNlIHBjaV9jb25maWdfKiwgbm90aGluZyBlbHNlIHBs
ZWFzZS4NCj4gDQo+IEkga25vdyB5b3UncmUganVzdCBjb3B5aW5nIGFuIGV4aXN0aW5nIGNv
bW1lbnQsIGJ1dCBpdCdzIG1vc3RseSBhbg0KPiBvcGluaW9uIGFuZCBub3QgdGVycmlibHkg
aGVscGZ1bCBpbiBwbGFjZS4NCj4gDQo+ICJBTUQgRmFtMTBoIENQVXMgY2FuIG9ubHkgbWFr
ZSBNTUNGRyBhY2Nlc3NlcyB2aWEgTU9WICVlYXgvJWF4LyVhbCIsDQo+IHdvdWxkIGJlIGJl
dHRlciwgZXhjZXB0Li4uDQo+IA0KPiAuLi4gdGhpcyBjbGFpbSBjYW5ub3QgYmUgdHJ1ZS7C
oCBJdCdzIGJlZW4gbWFkZSBzaW5jZSB0aGUgSzggUmV2RiBCS1dHDQo+IGFuZCBleGlzdHMg
ZXZlbiBpbnRvIHRoZSBsYXRlc3QgUFBScywgYnV0IHRoYXQncyBzaW1wbHkgbm90IGhvdw0K
PiBsb2FkL3N0b3JlIG9wcyB3b3JrIGluIHRoZSBwaXBlbGluZS4NCj4gDQo+IEl0IHdhcyBh
ZGRlZCB0byBMaW51eCBpbg0KPiBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGlu
dXgva2VybmVsL2dpdC90b3J2YWxkcy9saW51eC5naXQvY29tbWl0Lz9pZD0zMzIwYWQ5OTRh
ZmIyYzQ0YWQzNGIzYjM0YzNjNWNmMGRhMjk3MzMxDQo+IGJ1dCB3aXRob3V0IGFkZXF1YXRl
IGp1c3RpZmljYXRpb24uwqAgSSd2ZSBtYWRlIHNvbWUgZW5xdWlyaWVzLg0KPiANCg0KUmVj
ZW50IEFNRCBQUFIgc3RhdGUgdGhhdCB5b3UgbXVzdCB1c2UgZWF4L2F4L2FsIHRvIGFjY2Vz
cyBNTUlPIA0KY29uZmlndXJhdGlvbiBzcGFjZSwgc28gSSBzdXBwb3NlIGl0J3Mgbm90IGFj
dHVhbGx5IGEgYnVnIChvciB3YXMgaW4gdGhlIA0KcGFzdCBvbmUsIGJ1dCBqdXN0IGJlY2Ft
ZSBhIHBhcnQgb2YgdGhlIHNwZWMgPykNCg0KID4gTU1JTyBjb25maWd1cmF0aW9uIHNwYWNl
IGFjY2Vzc2VzIG11c3QgdXNlIHRoZSB1bmNhY2hlYWJsZSAoVUMpIG1lbW9yeQ0KID4gdHlw
ZS4NCiA+IEluc3RydWN0aW9ucyB1c2VkIHRvIHJlYWQgTU1JTyBjb25maWd1cmF0aW9uIHNw
YWNlIGFyZSByZXF1aXJlZCB0bw0KID4gdGFrZSB0aGUgZm9sbG93aW5nIGZvcm06DQogPiBt
b3YgZWF4L2F4L2FsLCBhbnlfYWRkcmVzc19tb2RlOw0KID4gSW5zdHJ1Y3Rpb25zIHVzZWQg
dG8gd3JpdGUgTU1JTyBjb25maWd1cmF0aW9uIHNwYWNlIGFyZSByZXF1aXJlZCB0bw0KID4g
dGFrZSB0aGUgZm9sbG93aW5nIGZvcm06DQogPiBtb3YgYW55X2FkZHJlc3NfbW9kZSwgZWF4
L2F4L2FsOw0KID4gTm8gb3RoZXIgc291cmNlL3RhcmdldCByZWdpc3RlcnMgbWF5IGJlIHVz
ZWQgb3RoZXIgdGhhbiBlYXgvYXgvYWwuDQoNCkkgY2FuJ3QgZmluZCBhbnl0aGluZyByZWdh
cmRpbmcgSW50ZWwgdGhvdWdoLg0KDQpJZiB0aGF0IGhhcHBlbnMgdG8gbm90IGJlIHRoZSBj
YXNlIGluIHByYWN0aWNlLCBhbmQgaXQncyBmaW5lIHRvIHVzZSANCndoaWNoZXZlciByZWdp
c3RlciwgdGhhdCB3b3VsZCBiZSBwcmVmZXJhYmxlOyBzb21lIG90aGVyIHBhcnRzIG9mIHRo
ZSANCmNvZGUgcmVseSBvbiBqdXN0IHZvbGF0aWxlIHBvaW50ZXJzIHRvIGRvIGl0Lg0KDQo+
PiArICovDQo+PiArc3RhdGljIGlubGluZSB1bnNpZ25lZCBjaGFyIG1taW9fY29uZmlnX3Jl
YWRiKHZvaWQgX19pb21lbSAqcG9zKQ0KPj4gK3sNCj4+ICsgICAgdTggdmFsOw0KPj4gKyAg
ICBhc20gdm9sYXRpbGUoIm1vdmIgKCUxKSwlJWFsIiA6ICI9YSIgKHZhbCkgOiAiciIgKHBv
cykpOw0KPj4gKyAgICByZXR1cm4gdmFsOw0KPj4gK30NCj4gDQo+IFRoZXNlIG5lZWQgY29y
cmVjdGlvbnMsIGVpdGhlciBpbiB0aGlzIHBhdGNoIG9yIGEgZm9sbG93dXAuDQo+IA0KPiBT
d2l0Y2ggdG8gWGVuIHR5cGVzLCBhbmQgY29ycmVjdCB0aGUgbWVtb3J5IG9wZXJhbmQgY29u
c3RyYWludCB0byBiZSAibSINCj4gKCoodWludDhfdCAqKXB0cikuDQo+IA0KPiBUaGUgRmFt
MTBoIEJLV0cgc3RhdGVzIHRoYXQgYW55IG1lbW9yeSBlbmNvZGluZyBpcyBhY2NlcHRhYmxl
LCBhbmQgdGhpcw0KPiBhbGxvd3MgdGhlIG9wdGltaXNlciBtb3JlIGZsZXhpYmlsaXR5ICh3
aGljaCB3aWxsIGdldCB1c2VkKS4NCj4gDQoNCkxvb2tzIGdvb2QgdG8gbWUuDQpJIHdhcyB0
aGlua2luZyBhYm91dCB1c2luZyBhIG1hY3JvIGhlcmUsIGJ1dCBJIGRpZG4ndCBsaWtlIHRo
ZSBlbmQgDQpyZXN1bHQuIFNvIEkgZ3Vlc3MgSSB3aWxsIHN0YXkgd2l0aCB0aGVzZSBpbmxp
bmUgZnVuY3Rpb25zLg0KDQpBZ3JlZSB3aXRoIHN0eWxpbmcgY2hhbmdlIChJIGd1ZXNzIHRo
ZXJlIGFyZSAodG9vKSBtYW55IHBsYWNlcyB0aGF0IHdhbnQgDQpzdWNoIHJlZmFjdG9yKS4N
Cg0KPj4gKw0KPj4gK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgc2hvcnQgbW1pb19jb25maWdf
cmVhZHcodm9pZCBfX2lvbWVtICpwb3MpDQo+PiArew0KPj4gKyAgICB1MTYgdmFsOw0KPj4g
KyAgICBhc20gdm9sYXRpbGUoIm1vdncgKCUxKSwlJWF4IiA6ICI9YSIgKHZhbCkgOiAiciIg
KHBvcykpOw0KPj4gKyAgICByZXR1cm4gdmFsOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMg
aW5saW5lIHVuc2lnbmVkIGludCBtbWlvX2NvbmZpZ19yZWFkbCh2b2lkIF9faW9tZW0gKnBv
cykNCj4+ICt7DQo+PiArICAgIHUzMiB2YWw7DQo+PiArICAgIGFzbSB2b2xhdGlsZSgibW92
bCAoJTEpLCUlZWF4IiA6ICI9YSIgKHZhbCkgOiAiciIgKHBvcykpOw0KPj4gKyAgICByZXR1
cm4gdmFsOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW5saW5lIHZvaWQgbW1pb19jb25m
aWdfd3JpdGViKHZvaWQgX19pb21lbSAqcG9zLCB1OCB2YWwpDQo+PiArew0KPj4gKyAgICBh
c20gdm9sYXRpbGUoIm1vdmIgJSVhbCwoJTEpIiA6OiAiYSIgKHZhbCksICJyIiAocG9zKSA6
ICJtZW1vcnkiKTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGlubGluZSB2b2lkIG1taW9f
Y29uZmlnX3dyaXRldyh2b2lkIF9faW9tZW0gKnBvcywgdTE2IHZhbCkNCj4+ICt7DQo+PiAr
ICAgIGFzbSB2b2xhdGlsZSgibW92dyAlJWF4LCglMSkiIDo6ICJhIiAodmFsKSwgInIiIChw
b3MpIDogIm1lbW9yeSIpOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW5saW5lIHZvaWQg
bW1pb19jb25maWdfd3JpdGVsKHZvaWQgX19pb21lbSAqcG9zLCB1MzIgdmFsKQ0KPj4gK3sN
Cj4+ICsgICAgYXNtIHZvbGF0aWxlKCJtb3ZsICUlZWF4LCglMSkiIDo6ICJhIiAodmFsKSwg
InIiIChwb3MpIDogIm1lbW9yeSIpOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgY2hhciBf
X2lvbWVtICpwY2lfZGV2X2Jhc2UodW5zaWduZWQgaW50IHNlZywgdW5zaWduZWQgaW50IGJ1
cywgdW5zaWduZWQgaW50IGRldmZuKQ0KPj4gK3sNCj4+ICsgICAgY2hhciBfX2lvbWVtICph
ZGRyOw0KPj4gKw0KPj4gKyAgICBhZGRyID0gcGNpX21tY2ZnX2Jhc2Uoc2VnLCAmYnVzKTsN
Cj4+ICsgICAgaWYgKCFhZGRyKQ0KPj4gKyAgICAgICAgcmV0dXJuIE5VTEw7DQo+PiArICAg
ICByZXR1cm4gYWRkciArICgoYnVzIDw8IDIwKSB8IChkZXZmbiA8PCAxMikpOw0KPj4gK30N
Cj4+ICsNCj4+ICtzdGF0aWMgaW5saW5lDQo+PiAraW50IHBjaV9tbWNmZ19yZWFkKHBjaV9z
YmRmX3Qgc2JkZiwgdW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgaW50IGxlbiwgdTMyICp2
YWx1ZSkNCj4+ICt7DQo+PiArICAgIGNoYXIgX19pb21lbSAqYWRkcjsNCj4+ICsNCj4+ICsg
ICAgLyogV2h5IGRvIHdlIGhhdmUgdGhpcyB3aGVuIG5vYm9keSBjaGVja3MgaXQuIEhvdyBh
Ym91dCBhIEJVRygpIT8gLUFLICovDQo+PiArICAgIGlmICh1bmxpa2VseShyZWcgPiA0MDk1
KSkgew0KPj4gK2VycjogICAgICAgICp2YWx1ZSA9IC0xOw0KPj4gKyAgICAgICAgcmV0dXJu
IC1FSU5WQUw7DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgYWRkciA9IHBjaV9kZXZfYmFz
ZShzYmRmLnNlZywgc2JkZi5idXMsIHNiZGYuZGV2Zm4pOw0KPj4gKyAgICBpZiAoIWFkZHIp
DQo+PiArICAgICAgICBnb3RvIGVycjsNCj4+ICsNCj4+ICsgICAgc3dpdGNoIChsZW4pIHsN
Cj4+ICsgICAgY2FzZSAxOg0KPj4gKyAgICAgICAgKnZhbHVlID0gbW1pb19jb25maWdfcmVh
ZGIoYWRkciArIHJlZyk7DQo+PiArICAgICAgICBicmVhazsNCj4+ICsgICAgY2FzZSAyOg0K
Pj4gKyAgICAgICAgKnZhbHVlID0gbW1pb19jb25maWdfcmVhZHcoYWRkciArIHJlZyk7DQo+
PiArICAgICAgICBicmVhazsNCj4+ICsgICAgY2FzZSA0Og0KPj4gKyAgICAgICAgKnZhbHVl
ID0gbW1pb19jb25maWdfcmVhZGwoYWRkciArIHJlZyk7DQo+PiArICAgICAgICBicmVhazsN
Cj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICByZXR1cm4gMDsNCj4+ICt9DQo+IA0KPiBBZ2Fp
biwgZm9yIHRoaXMgcGF0Y2ggb3IgYSBsYXRlciBjbGVhbnVwLCBkcm9wIHRoZSBvdXRwdXQt
YnktcG9pbnRlciBhbmQNCj4gcmV0dXJuIHZhbHVlIGRpcmVjdGx5LsKgIFRoZSBvcHRpbWlz
ZXIgaXMgaG9wZWZ1bGx5IGRvaW5nIHRoaXMgYWxyZWFkeQ0KPiBidXQgaXQgYWxzbyBtYWtl
cyB0aGUgZnVuY3Rpb24gc2ltcGxlci4NCj4gDQo+IEF0IGJlc3QsIHdlIHdhbnQgQVNTRVJU
X1VOUkVBQ0hCTEUoKSdzIGluIHRoZSBlcnJvciBwYXRocyAoaW5jbHVkaW5nIG5vDQo+IG1h
cHBpbmcpLCBhbmQgdG8gY29uc2lzdGVudGx5IHJldHVybiAtMS7CoCBSZXR1cm5pbmcgMCBm
b3IgYSBiYWQgbGVuZ3RoDQo+IGlzIGJvZ3VzLg0KPiANCj4gU3RyaWN0bHkgc3BlYWtpbmcg
d2UgYWxzbyBuZWVkIHRvIGNoZWNrIHJlZyAmIChsZW4gLSAxKSBiZWNhdXNlIGFjY2Vzc2Vz
DQo+IG11c3QgYmUgbmF0dXJhbGx5IGFsaWduZWQsIGJ1dCBldmVuIHdpdGggQVNTRVJUX1VO
UkVBQ0hBQkxFKCkgYW5kIGENCj4gZmFpbHNhZmUgLTEsIHRoYXQncyBzdGlsbCBsb2dpYyBl
bWl0dGVkIGFuZCBJJ20gbm90IHN1cmUgaWYgaXQncyB3b3J0aA0KPiBoYXZpbmcuwqAgQW1v
bmdzdCBvdGhlciB0aGluZ3MgeW91IHJlYWxseSBuZWVkIHRvIGtub3cgdGhhdCBsZW4gaXMg
MSwgMg0KPiBvciA0IGJlZm9yZSB0aGUgYWxpZ25tZW50IGNoZWNrIHJlYWRzIGNvcnJlY3Rs
eS4NCj4gDQoNCk1ha2luZyB0aGlzIGZ1bmN0aW9uIGlubGluZSBpdHNlbGYgY291bGQgYWN0
dWFsbHkgd29yayBhdCBhbGxvd2luZyB0aGUgDQpjb21waWxlciB0byBlbGltaW5hdGUgbWFu
eSBvZiB0aGVzZSBjaGVja3MsIGJ1dCBpdCdzIG5vdCBpZGVhbC4NCg0KV2UgY2FuIGV2ZW50
dWFsbHkgbGVhdmUgYWxpZ25tZW50L2xlbmd0aCBhc3NlcnRzIHRvIGRlYnVnIGNvZGUuDQoN
Cj4+ICsNCj4+ICtpbmxpbmUgaW50IHBjaV9tbWNmZ193cml0ZShwY2lfc2JkZl90IHNiZGYs
IHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCBsZW4sIHUzMiB2YWx1ZSkNCj4+ICt7
DQo+PiArICAgIGNoYXIgX19pb21lbSAqYWRkcjsNCj4+ICsNCj4+ICsgICAgLyogV2h5IGRv
IHdlIGhhdmUgdGhpcyB3aGVuIG5vYm9keSBjaGVja3MgaXQuIEhvdyBhYm91dCBhIEJVRygp
IT8gLUFLICovDQo+PiArICAgIGlmICh1bmxpa2VseShyZWcgPiA0MDk1KSkNCj4+ICsgICAg
ICAgIHJldHVybiAtRUlOVkFMOw0KPj4gKw0KPj4gKyAgICBhZGRyID0gcGNpX2Rldl9iYXNl
KHNiZGYuc2VnLCBzYmRmLmJ1cywgc2JkZi5kZXZmbik7DQo+PiArICAgIGlmICghYWRkcikN
Cj4+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4gKw0KPj4gKyAgICBzd2l0Y2ggKGxl
bikgew0KPj4gKyAgICBjYXNlIDE6DQo+PiArICAgICAgICBtbWlvX2NvbmZpZ193cml0ZWIo
YWRkciArIHJlZywgdmFsdWUpOw0KPj4gKyAgICAgICAgYnJlYWs7DQo+PiArICAgIGNhc2Ug
MjoNCj4+ICsgICAgICAgIG1taW9fY29uZmlnX3dyaXRldyhhZGRyICsgcmVnLCB2YWx1ZSk7
DQo+PiArICAgICAgICBicmVhazsNCj4+ICsgICAgY2FzZSA0Og0KPj4gKyAgICAgICAgbW1p
b19jb25maWdfd3JpdGVsKGFkZHIgKyByZWcsIHZhbHVlKTsNCj4+ICsgICAgICAgIGJyZWFr
Ow0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIHJldHVybiAwOw0KPj4gK30NCj4+ICsNCj4+
ICAgdWludDhfdCBwY2lfY29uZl9yZWFkOChwY2lfc2JkZl90IHNiZGYsIHVuc2lnbmVkIGlu
dCByZWcpDQo+PiAgIHsNCj4+ICAgICAgIHVpbnQzMl90IHZhbHVlOw0KPj4gICANCj4+ICAg
ICAgIGlmICggc2JkZi5zZWcgfHwgcmVnID4gMjU1ICkNCj4+ICAgICAgIHsNCj4+IC0gICAg
ICAgIHBjaV9tbWNmZ19yZWFkKHNiZGYuc2VnLCBzYmRmLmJ1cywgc2JkZi5kZXZmbiwgcmVn
LCAxLCAmdmFsdWUpOw0KPj4gKyAgICAgICAgcGNpX21tY2ZnX3JlYWQoc2JkZiwgcmVnLCAx
LCAmdmFsdWUpOw0KPj4gICAgICAgICAgIHJldHVybiB2YWx1ZTsNCj4+ICAgICAgIH0NCj4g
DQo+IE5vdCBmb3IgdGhpcyBwYXRjaCwgYnV0IHdlIGFsc28gbmVlZCB0byBqdW5rIHRoZSBp
ZigpIGNvbmRpdGlvbiBoZXJlIGFuZA0KPiBlbHNld2hlcmUuDQo+IA0KPiBXZSBzaG91bGQg
YmUgdXNpbmcgTU1DRkcgdW5pbGF0ZXJhbGx5IGlmIGl0J3MgYXZhaWxhYmxlOyB0aGUgSU8g
cG9ydA0KPiBwYWlycyByZXF1aXJlIHVzZSBvZiBhIGdsb2JhbCBzcGlubG9jaywgYW5kIGJl
aGluZCB0aGUgc2NlbmVzIGFsbCB0aGUNCj4gQ1BVIGlzIGRvaW5nIGlzIHRyYW5zbGF0aW5n
IGl0IGJhY2sgaW50byBNTUNGRy1saWtlIGFjY2Vzc2VzLg0KPiANCj4gQXQgdGhpcyBqdW5j
dHVyZSB3ZSBzaG91bGQgcHJvYmFibHkgY2hhbmdlIGl0IGF0IHRoZSBzdGFydCBvZiB0aGUg
NC4yMw0KPiBkZXYgd2luZG93IHRvIGdpdmUgaXQgbWF4aW11bSB0aW1lIHRvIHNldHRsZSBi
ZWZvcmUgZ2V0dGluZyBpbnRvIGENCj4gcmVsZWFzZSwgc28gcHJvYmFibHkgYmVzdCB0byB0
YWNrIGl0IG9uIGFzIGEgZmluYWwgY29tbWl0IGluIHRoaXMgc2VyaWVzPw0KPiANCg0KSXQn
cyBhY3R1YWxseSB0aGUgcGxhbiBmb3IgWzFdLiBJIHdhcyB0aGlua2luZyBvZiBzcGxpdHRp
bmcgdGhpcyANCnNwZWNpZmljIHBhdGNoIGFuZCBtZXJnZSBpdCBpbnRvIGEgbmV3IG9uZSBk
ZWRpY2F0ZWQgdG8gTU1DRkcgDQpyZWZhY3RvcmluZyBhbmQga2VlcCB0aGUgUENJIHJlZmFj
dG9yaW5nIGFyb3VuZCBwY2lfc2JkZl90IHNlcGFyYXRlICh0aGUgDQptb3JlIEkgbG9vayB0
byBQQ0kgc3Vic3lzdGVtLCB0aGUgbW9yZSBzdHVmZiBJIGZpbmQgdG8gaW1wcm92ZSB0aGVy
ZSkuDQo+IH5BbmRyZXcNCj4gDQoNClRlZGR5DQoNClsxXSANCmh0dHBzOi8vbG9yZS5rZXJu
ZWwub3JnL3hlbi1kZXZlbC9jb3Zlci4xNzY3ODA0MDkwLmdpdC50ZWRkeS5hc3RpZUB2YXRl
cy50ZWNoLw0K
--------------kWoG8TOokTgd7YOP0vQi0rrU
Content-Type: application/pgp-keys; name="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Disposition: attachment; filename="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7L
TBVHV/XOZw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJ
T4ny+OGntnJntUoRKRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJA
WicutjkkUgd28Bh6HV9EIumHtCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO
8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaTVqMdqul07o72m3eA2mf+LMu9a04FX/d4
wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/EoucejoZ5SH49ksmVAmKOLkt
OaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+SPhHar7TPKjFz0G3D
PNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89MXfQXZ3q
t1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWj
moACGwMECwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNz
uyOVCskwfUZPla6Zpd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp
0x0HfuhcYfAYPR46XHTvjaJEv99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuR
OxdK8G+YHccJY8PvWSq2K2yiae2KGiAv1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50
wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhPeP3IdpfWc8cyRLXF06Rk46YM
YCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcTUwgnYlFRk2FLq0Qe
KEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9Egr/Wmu3
MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEM
AKiQiZa3yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ
3DbVf+en3/FvdVZg2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTm
etSG5/52AjtmPFtlXAk0NmLvfJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0
s3109sJeXT5ImVdphFs9cvyZyBT9t1PbRowv58EgV0zE4hbAeVkULAbxFV5b/ExT
jjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKbYu6NCfiHfEyB3Xyg9hfdrRgj
MRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ovXoK4jm+Py0FiUGUa
A6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/eVtR2Q1w
ZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWj
moACGwwACgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiV
oUiHYN5QwhnbZnsaJDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764Qxy
X6rld2f2RcWkDuBHun55ZWXjby8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk
/dS0XTOQi2wVUb17sW/+ybCEokdVacZGzOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fu
oGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+lOWSvdNHgoEkWR0RXBPQjnGm
LKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/OffO485NOTKwGOxyWb0
06cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR8ULR9nX0
LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
x9fhaZEsniw8/bYgC3igkk5YJiOa
=3DlUIA
-----END PGP PUBLIC KEY BLOCK-----

--------------kWoG8TOokTgd7YOP0vQi0rrU--

--------------GEP22FFrtPRvDx6BJ8KMG4sg--

--------------bd92M9bACcL9fTUr80x3iKUy
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmoMaNcFAwAAAAAACgkQZg+p0QLLz9DB
4wv5AZdxwQkt9s0zag8BpZxEHdkwwhXVo26hxgBBYr178v+25RlSQFu3zoJNVPpONEpmiwWZhldw
7yw5iKeOhuGy920OVvVSZoHxSasnVn93KcjgTOFu/7SKgUecmQPglzjrIAZoHq9Nn2to8mhjnP6q
icHosIAbFPEm7cQJ3/jl7hqwnUVW3Ue6cQ2hsvMitt3CD5JO6JN8r9E7h497nONJcDP/aeDV6rOu
5NTknPW6YXeUvEF1zhXkSb2Dpjv6J0ht589Piuv2CIBITQmr6WX7unECgqiKPzU+2Mr7wIW38jd5
J942ck5evn9xykWvWpjl1TXla5IFglgGkOhR6x5i7TcrpKrHH1sPBezf9a0uak7lRL05NHP9vvBz
4gLgFgDns/7ZNvUvxnyghFsQhnQGgS/iwTec1lH3K0CebOZO2q0/LDjXL+nQj5+PTGFVAxv255UP
A6YNg9PUSX1ERCsuRVi6JJWqkaD06mIyLsBX8I6jR9PejRpvHycUFlU39N3k
=jZlc
-----END PGP SIGNATURE-----

--------------bd92M9bACcL9fTUr80x3iKUy--


From xen-devel-bounces@lists.xenproject.org Tue May 19 13:45:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 13:45:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313062.1583276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKl9-0002an-Gy; Tue, 19 May 2026 13:45:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313062.1583276; Tue, 19 May 2026 13:45:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKl9-0002ag-E2; Tue, 19 May 2026 13:45:23 +0000
Received: by outflank-mailman (input) for mailman id 1313062;
 Tue, 19 May 2026 13:45:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wPKl8-0002aS-2i
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:45:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPKl7-00CpEq-Eb
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:45:21 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c6963-2eae-0a2a0a5409dd-0a2a4502ae54-34
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:45:21 +0200
Received: from [52.101.46.0]
 (helo=CO1PR03CU002.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c696f-af86-0a2a45020019-34652e004f35-4
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:45:20 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH2PR03MB5224.namprd03.prod.outlook.com (2603:10b6:610:93::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.21; Tue, 19 May
 2026 13:45:17 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Tue, 19 May 2026
 13:45:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uworPqCH1fp3E6kXgPkmFO4ltjKQsU6Yju8Me8brrzHzil2b6M/JqmK2deHONKBdniN6VNe6RJMMPj8DqoIC3R2pNxGyXA/lN4yQv8HdPhvOwTxIhb4wkdH+BWxHcoNsl1VpH7YmBljfcvr/RpvVo10Gs0XgMQO5oppXFw580Xj0udWsrIhrvVXTx/yHNLjvJtt/hZrapGWra8K/v5b8GRVIhUIkEmDucGDsaVm9r8KCr+iXtEFUa7Uae27ncM2bIIrAzXZXuUIPIiTGMSmmvzewo84tWhWTSbdZtWo+XpcLlPHAX+/L6LwJ3EIncDCwJUbiBJzbWDbxZ3tIn5l8qw==
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=rtEmnQOTQ6ssUy1qlvVRdBUL3UyHxDpmyqpMB5vejdc=;
 b=Yxakn81WEugvSMdVrtIXJ7zI37cqZd9NNBIgoVqxAEG0Zqr+NvQ6FKCe0OT1llQZsCbtDNjEjrGbdkboHHezqOiWoVcYARGs8U7vla3Q06A/quw9iCPNfqxJB42VbAgpGOCraXaJfOcRkMHx5ZqhSrvxzl4DxDed/ZwaaH5GczpXFQyPODz1bE3kVJttv6HCxXX2AUUtR+tdRZApHeXYpPzx5fL6s4563kYCbnKwAiTmHYP0vrBOL24xbm7kprpDYhG3vz3Wlz39DPQMT4adOhv9vYou+JrWknsfe1v05n7+DYvkCzFR6zHyHFwVUdiEmC/BmY6bHCn130o8JMq+lA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rtEmnQOTQ6ssUy1qlvVRdBUL3UyHxDpmyqpMB5vejdc=;
 b=T/GzB5okw+OP80MGEnlN/kqVxMR4rZIrkzhk0GSWXzYAz6in0LhyfXMkpId2C3CjEiSSJUqgzyfE82pRNU95sZBcGwZilCFBvyjK5b+5GZ+TEeDn3i5VeBkYFVe7aiFUrnO1PamUHn+0UniGeW2PatjahUsCiQgTBCFtbsYnfTM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e06a61c8-c2b3-4eb1-a118-41e1a70db77e@citrix.com>
Date: Tue, 19 May 2026 14:45:13 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jan Beulich <jbeulich@suse.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH for-4.22] EFI: Fix boot from a device without a file
 system
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 =?UTF-8?Q?Szymon_Aceda=C5=84ski?= <accek@invisiblethingslab.com>
References: <5ee376dc0df448437f386ab2606c42d63a515ca1.1779194154.git.accek@invisiblethingslab.com>
 <agxoiG_JLs_84rY5@mail-itl>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <agxoiG_JLs_84rY5@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0056.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:153::7) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH2PR03MB5224:EE_
X-MS-Office365-Filtering-Correlation-Id: e75206bd-15ac-4c3c-5449-08deb5acdc07
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|3023799003|4143699003|11063799006|56012099003|18002099003|22082099003|17002099007;
X-Microsoft-Antispam-Message-Info:
	Nby+IKRBBqFu+g5pVB5Qx84lAyv3RfsH+g228g5keUKps2kVz9T4nvqlCaI/JFY0ZfRahsHvasWq2uSiRv2mcKC/7LhuhOf+vX3QLAegTwF7eZuER+ruem6knPTdzCrD5drR6z1ep5Fb3kbWZbXKUC1RVYI8b3/JhbzLmM3bJX74DFC6wPodPL0bRJvZ+ASsb6aQfuivTJPDoXmM2cOz2U+vdmjavZkBvlX0QNKXXTDTIw7WVWvmxBvt0wUdxnc59J3YZORTFiNpAlHdzanq+qki6T1z9M7ycrSekSuhd7S76LvIQWix/BJPpKwwsuKo6cQF/rM92racvriC9Jd7o8F6bWRY5mbGavj0DdcMvI7gnbWmd5o3ASFAyX0Ni8v60PHOVpHTL3jGfYdnT7R2dhGtybVB/9bfFKd9xYHxf416UqwlXHQy0ApgvWfxqrtwvEQQEP+Yu2LkK7X+paJCMPum9EX7yBnwFNg9lIOuPXcrsqPlBbGJwWZ7itcEeu+kBwJNezZiMY+wNJ5Yn3rEe5xzTA7Wji1h055+LpIZBxVjAd915KZI0cZc6B0UWSYEyiqq0q7IZJNmlHroQ1Qxhkxm5rFxH4XI2IKnYqbPXgpD5+ydWN6TvYlkdMA0oLpDIxxd5pqr+yEtlliZblT+6Rce8mG9JleSXTOTbKFkbBxHuwJizsyhYMPRCxfte/ut
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(3023799003)(4143699003)(11063799006)(56012099003)(18002099003)(22082099003)(17002099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NTFXWG0rUmZFQjlOc1hxSlJ2SXZVSTJQSCswSTJ0UGdmZjNkdVc0T3ZYYVlW?=
 =?utf-8?B?eFJYeUxNV1Q2QlQ5R2RvYXk1ODdZNGphZ2ZBWm0rbDFTcEIraG9KUWEvSnpn?=
 =?utf-8?B?K0xFQ2E0TjZIdmxweFhFWER1L3lGUlBISk9Ud3Nnd2dQNGlCeVJKUVdxQnZk?=
 =?utf-8?B?eSt5SE8waGZkOFhyYWdydmdaRzJpQnhCcXpZbUJLdlhFdUdZTktHNEh4V2dO?=
 =?utf-8?B?Z1ROL0xmMVNSWkNXN2FHQXRhUHpHa1BtcVNRcEtzT24rWWc0Zkk4RFY5aGRh?=
 =?utf-8?B?Y1pxaDdBMjBYMjhhK1FhNCtBWEZTdktpM003d1pra2JXM3VNRzlmbmJyVHBL?=
 =?utf-8?B?Vms3UVFOeWJaRkVTUXpONllSbjJwaWtjN2s2ZVR0NVFzRUlkWmU3MTJ6VkpP?=
 =?utf-8?B?OVd3MlNVNXJ1TWZtQVpGSVVJQlFMOGw3QUlMYWkzRUZ4Uk5kSjFlaFFPOGtw?=
 =?utf-8?B?dHEzUGRsbHZ0Y2tnS05KS0FpMGdETWdidm5iNk9VUWQxNXJhM2liZjNnRkdt?=
 =?utf-8?B?WDZqN3JESEdhTFJkQUdwM2RpL2xKNkQrUVAwdUxKYW1ROGN3a3M3bCtrMi9s?=
 =?utf-8?B?ZjRPd1RkeU84MmlFb2UrOGluSzVYaUZZeCt2aTBNRzQ5b2VnaFpScmpEZWZx?=
 =?utf-8?B?R1QrMFpJZVNmSVdoLzg2NmtzdllsK3VlOTBKR2VkendqL3J0Ui9KQVRZcnVI?=
 =?utf-8?B?Q1FNTG1rdnBpU1hudkFmL2FOVjVVdzVmeDhsMUJ3am8wTXNBUGdWTWpkK2xh?=
 =?utf-8?B?V1d1d1NET2VZM1prejlIaDFsa0NFSVc3RnVMSEcvTHhOOS8rbFNkVkNmZjR3?=
 =?utf-8?B?emRIZWZmaGE5NkJ5SWM5WUMxb0lYVE9KS3hXbVhNZ3I4RDhkRGFwMkkvaHRP?=
 =?utf-8?B?encxcE5SdTJlclZ4MmxlcUZzNk1yNVNOYnJLb1JuS3pvQ3h3d01CQXduejQ2?=
 =?utf-8?B?WEE2MU5xQ0p2RjE1ZXdleU5kODRqdEhFV2c1azlUNTFPNnQxaU95cFhpS2xk?=
 =?utf-8?B?MU13a0JiTGJhRlBFWkE3L2hSdHlyT1ZBeWE1U0g1RDh0WWgzdTRVVXhPK29N?=
 =?utf-8?B?RFhjRnBQUC9QZCtjNEIvaVByNU9CU1dmNDRBQ1haMm1OckVUOFFNQURnYXZt?=
 =?utf-8?B?K0RkNmV6cWwyT01INkl5ejFyWnlEanZXNk5RWHFHU3h3TWJHblVmVzdEUHp4?=
 =?utf-8?B?c2k3ZVhqdE0xRStyOFNmNmo0YkJaV0ZEK2NEajUrRFRkK090UHJIWDNnRHhF?=
 =?utf-8?B?TWxmUWk5SzNqRXFjSkFDb2lReFNSMmoxY3plRHdjdFdLNXNaVTY5RTV1UjhQ?=
 =?utf-8?B?MnZZZllwTVF4TFV3YWpMQVpCQUFLVjVUNjVCcC9RWXZIanRBS1prb3hIYTda?=
 =?utf-8?B?bUY0NS9NeDNJYVJFV21lK09ZcDI5ajFKeCt2TVdIV0NRQndKWERhelJxb1k4?=
 =?utf-8?B?S0t6NTl5OFFPdjNVeWQ3SlEvTytxQkhqa1FQV3JoVmczeUtMaTYvQlVYVkky?=
 =?utf-8?B?RHBrQ0tkRTlNa3hpS25udDFHcUhERUdMaW9QcW1LaDkrMzBKQUprNllIT1Jt?=
 =?utf-8?B?b1Z5NnhlRFg2SWdmNDIyaFhyQldkZjJON2JiVDBlU3JkNnNZWXhFNmdEZEdJ?=
 =?utf-8?B?clhhUTJ2WEltRXJYV2VxV2FBcCtVQyt4d3piWHpUa1ZkbHhETEYyaGlPZVNR?=
 =?utf-8?B?N2pkbXd5eHRHOW5WZ2dOOGFMTEthcGcxeHUwK2lncXg5ZlVpaUFPRHRpdHBQ?=
 =?utf-8?B?ZzFPYmt6QkNwV1ZDWlJtN0grUTlka0RxWk5qRENiYmtnMVZKcGRkSkRUQ3FU?=
 =?utf-8?B?d3pHN091SXE3dVU0dEM2alUxb05iR0tXSE5jZEhrVFJuNEswUm9CVnJZZzNi?=
 =?utf-8?B?cWpseFkvOG4va0drSWlZNHBSWERzQ2lrRmx4SzNLdHFNQ2lxYUs1bUUrZERl?=
 =?utf-8?B?TmlCcXVVZ0tqV0xvcHVURHVOcGIvWGFuRVZsMWlBK1A4RGd0b0tMaTEwam5Y?=
 =?utf-8?B?WGcrU0pvWm5VL0g1M0tiTTQwUGVJVFdlK2NsL01iQnU3ajJPRnNPTzlOLzV6?=
 =?utf-8?B?MWgvcnN0dE1ncUsvZnl0M2RidU1PSkhuTTVOTTdTYVAxV1M5NExrb0lHemhL?=
 =?utf-8?B?ZHhta3doNlduOHVWYmdyWTZIZXoxcXB6QmIvYXF3MlNhN1RIQjRiYm10RXFs?=
 =?utf-8?B?RWlDdVBlcUhsd1hqa2k3RXl1UUU0YmJZYUNzZ1ZGb3pZc2NoUld6QU5SK3l6?=
 =?utf-8?B?cGpzazgyTG8vTTd5SnIwVW1DRWFMZSthbERCbGIyek81dllmTWZCNHBQLzNV?=
 =?utf-8?B?SmtrYkRWN1VMdk1udnBhSEpYaEM4cDZlZ3Exc29zKzdrc1lrSjZGUEdST0Q2?=
 =?utf-8?Q?bypE75RZfpyCwV+I=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e75206bd-15ac-4c3c-5449-08deb5acdc07
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 13:45:16.4910
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: LUShl3Q0cJHYFMNccpWcPOUetctlVNndnTwWsqkaBn8jidiJZPHO84a4kHUYMs+ZC2Z6xlGLFQ5P4wnScItibTcy1bfngK2C24N7LVAhNN4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5224
X-purgate-ID: tlsNG-720697/1779198321-A937C161-D06B9B7A/0/0
X-purgate-type: clean
X-purgate-size: 1561

On 19/05/2026 2:41 pm, Marek Marczykowski-Górecki wrote:
> On Tue, May 19, 2026 at 03:06:57PM +0200, Szymon Acedański wrote:
>> When netbooting a unified Xen kernel image (via GRUB chainloader),
>> the resulting loaded_image->DeviceHandle does not support
>> SIMPLE_FILE_SYSTEM_PROTOCOL.
>>
>> Instead of crashing via noreturn PrintErrMesg(), print a message
>> via PrintStr() and return NULL from get_parent_handle().
> It's worth noting this isn't the first instance of returning NULL from
> get_parent_handle(). The return value is used only as an argument
> to read_file() (sometimes indirectly), and if it gets to be called with
> NULL, read_file() will terminate execution via PrintErrMesg(). But with
> unified Xen image, the intention is to not call read_file() at all, only
> read_section(), so tolerating get_parent_handle() failure in this case
> is desired. Keeping the message in place will ease debugging if
> read_file() will actually be called later.
>
> Acked-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>
> As a side note, a slightly better approach would be to call
> get_parent_handle() lazily (on the first call to read_file()?). But it's
> a bigger change that I feel may be too late for in Xen 4.22.
>
> Also, adding cc: Oleksii for release ack.

Bugfixes are still fine to go in.

Personally, I think moving the call to get_parent_handle() is a better
fix, and fine for 4.22 even at this juncture.  ARM already does
something along these lines in allocate_module_file().

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue May 19 13:50:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 13:50:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313074.1583297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKq1-0004d1-92; Tue, 19 May 2026 13:50:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313074.1583297; Tue, 19 May 2026 13:50:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKq1-0004cu-62; Tue, 19 May 2026 13:50:25 +0000
Received: by outflank-mailman (input) for mailman id 1313074;
 Tue, 19 May 2026 13:50:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPKpz-0004co-SW
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:50:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPKpz-009gET-89
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:50:23 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c6a99-2eae-0a2a0a5409dd-0a2a4505a8e4-28
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:50:23 +0200
Received: from [40.93.195.41]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c6a9b-aaa8-0a2a45050019-285dc3294b4a-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:50:21 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB6343.namprd03.prod.outlook.com (2603:10b6:a03:399::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Tue, 19 May
 2026 13:50:14 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Tue, 19 May 2026
 13:50:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zOPb45u3OtzK7ezuZ0vSyJfnRicuUXOQMoWUf/x7q0hk6Xyj62BGdcT78nGrulU9F7COfEvGjqV3PN9oxLhBH1fQSZbMW7Cy7/nzXphAIF39WncDEb/lqilR1nPieS/DafVpI5quTjINVhbtUwmgJ31s6IsTvYms1Tbk6P6oEvNF0fL3jhbGNFcOM6RQIs04XnFdCcXDGlKdAO3bxxop4+UPUst5H9n9CvxJdY0Klb39vV25m/XQXHQl3i8Q/byq10WcvjMpiW8BQDLbR7qkM1c22SwqWiHwgsF9Y4Ks16pOGiiWWOExAEB+J8pFAiH/+L+xZM11v8tAbJSCoAFVDg==
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=uBPLpsujZYVqwaibqZEFWnaIUp+JU6Ei3Tj8GKDwHcw=;
 b=FuMkEwdHSNIiGe6mrGdKayay0blHk41MHGIU4tSj1dUh71Hr5SLnOFMnFIIH04QHhOC3NhaAoqK5PijMAiZ/ofXMLpzE2fZ9oLBaSn71XGSsfxTwA9ODZesLx+cKwm8e1ld1tWXXNY6XVzjUuX9WVJH5k5iuC/ncfHLnIYf/iFf3f5XR+EIb9gQ23+gMRpBSxIrDFORDR6GIIWVCUtYcsn+oYPqHyoOUwIy9iqRwLX86gI9N69Oh9NZLwv4dtaQlWtlBECsNV0bua3D4pA7pIGMZV3DRUjHug9M+z+d46trOR2nWZsO2d7e32whyisMl0IV048U6zX2PAGq9qGEuyA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uBPLpsujZYVqwaibqZEFWnaIUp+JU6Ei3Tj8GKDwHcw=;
 b=qZmOIx0bqMx6TEzIoEFyJG3qMwVq5VfcSJrm+Q7fs/1fnZdLyevi5te/UGvmQTUSiJM5hY7G6UrixHJg/vN8FpD7FL8/tLOtvmt3D5zkQWH03TYQZhQhkk+0ftCyxEk66EzjALpQ+zLutLlnZeh6ocCgDMmJm2c/VNqdb7IjMNY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <dc8c4f7e-24f6-4430-872e-e4b9f3c02c4e@citrix.com>
Date: Tue, 19 May 2026 14:50:08 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
To: Jan Beulich <jbeulich@suse.com>
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
 <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
 <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
 <e65d9be5-f788-42d1-9117-eef70303a1a4@citrix.com>
 <ee441369-cc67-4ec1-84f9-4619ce645da1@suse.com>
 <f5cd7d50-e274-4a8c-a535-8c0f47cec137@citrix.com>
 <7aa7e06e-7a86-46ea-a7fe-bbb81c96d743@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <7aa7e06e-7a86-46ea-a7fe-bbb81c96d743@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0428.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18b::19) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ0PR03MB6343:EE_
X-MS-Office365-Filtering-Correlation-Id: 1edeb523-b769-463c-1634-08deb5ad8c6c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|4143699003|22082099003|56012099003|18002099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	OvJca6m/AoeJWgLidJFtNn3RWOxHu9mUGvTpz10vlTFeUJ2CU66iLzS3MvFy+MNPl3Lurk+k8eMuowQ1+GTbdHb+WHSXAnMBZIfKt6jVE+8lAFna0OWmQaw3A1XR3hR5XNrEfYK+S133KCYAevNPpxDsJ5Pdc/0UKHjXM2YMGRcESirX/MfZ1KISxVW+5wqih4867OO92exN66x+spuGFZ1GAw+WiUV+WfAXLgOzvjmsG7C2g0WnpoK00LfIrJuTwLzErg6lM20ZJyoi6w9mpLowc1/71pn3tYkHeEqJGJGa8TrKeYfnk8XgNermmL3fErOMdQMiNXAX9jLnl5sSdZQ7SaJt8TnEBz7tufEz+z1ChnS/X6vAreOHIvwO+KuupJIG2xNpLlUlglOCxTPICbOek7SKy2kw0ovfiS+WDCx6fK27Y7D5xYLE9/+chGVSW2hFfmQspMnixM/EOr+L04cOokmKtTgKfD34Ly03UPbdxwUObALcEA71Nfp13s5pORK6jYkY0+q8+PfYVRmmpFw9OmX+hTV5if5Usq6SAbOa5vpM+ZTMKf8zdwatTCGtc0oHbEjcZKHKpOh5/1F/uTCETefdGcn48i7AEvNrQ7Zbg9iApMGabOAvCHSNNS54VCHinCEOQY3PR4qdvT3ZWXrCj9mRp9jWGF1cznGy0ktZkqx95TpDfYld4ciycOnz
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(4143699003)(22082099003)(56012099003)(18002099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bW5lNXhFY3VzK2Q3bVpRMHJrWDVMSjJCTk01TGFYV2R2U2RMZEZqejNnTHdq?=
 =?utf-8?B?RnFMdlV2dmZZSXBXZ3BvR0JFV2UvZWpDeVN0dWRxNGFKZzBnWExicVhuTDBI?=
 =?utf-8?B?bWhwVEZLU2xISUpjTEFtRXQ5SkRPZXd4M081Z2M3ZHJLM0JPaEowdC94NkxS?=
 =?utf-8?B?L0JWNlh2RVJoYUFMWElCcjFrRHdBMjNpcGxFMlVmRG1COGlOV0ZMd21qcUpW?=
 =?utf-8?B?dXYweitZMVF4eVNQTEYvVWFmQlB5RVFwb3JLUHE2Zi9aR0JIKzJQN0k0cUMr?=
 =?utf-8?B?em5CTmkwanNRb3NSajVpQ0IwdzhySDJESWFLZ0czT3BvYndTQ2REWXA2aGJM?=
 =?utf-8?B?V3owNUVSR3NKcmhZdGgzTzVvOXZYM09zbUNYRzE0VjVhbjJsbjdlaGU3R2VJ?=
 =?utf-8?B?NXZQUDMrWHA4VkFxY284c3RuT3grZHY3M2JsUlFGbXJ2TURTREVLbTFyMXV6?=
 =?utf-8?B?M1NxZWVqajM5dXBQZnNMaVE4Rzl3cC9hQ1RDbjVRRm1WbzMyNUp1dEdzUDB1?=
 =?utf-8?B?dmhKTm4yYkR6Y3RhRTZZVGtFbmc1eU0ybE9KdmRmSGVwZXdSMHFKbFk4NFZY?=
 =?utf-8?B?VEpzeGh1RU1hTlJRSFQxeThSaUQxRWVMUFhhaStyRGJIVVBUa25XRWxTem1t?=
 =?utf-8?B?WG03clBCZlhuZEFMOXNpSTVUVGU1UjBaSnplenprR28wb3hZcnhqaVdLRm1B?=
 =?utf-8?B?U290STBlUlROWFFVUGMzcCtXdGxUNGkzbDk3K0x4OHUzYklFWFVJRU1xOS9H?=
 =?utf-8?B?VkgxSUFkTVM5RDdYMm1XWkhRaU0vVUJqRSt4MkF2NXR5MEd5SE9JYStGa3VV?=
 =?utf-8?B?M0ZER1JBOVhwK0haSHBpeTRtN2xEeUxQa3BYUjdHQmNhM2M5aTJJV3BuUnRH?=
 =?utf-8?B?ZGdkaFhuL01ESjRrOGZWS2xTTkY3NnR5R3JUSW96S0xDVGI4OEgyR0Z6QW9t?=
 =?utf-8?B?WjQ2djZIOEZySkRTZE55dm5mWjZYbFVrLzVvTkt0bFpDaGdzS0ZKOXZ4QXFu?=
 =?utf-8?B?cytYdGdvSjRDcFdjeDdSUzZVa2QxY01QT01SbWlWT3hpbk54YTRnOExpT1hv?=
 =?utf-8?B?cDFOaldhY0g5VDVldDVrMkhGbnpSTUZ6Y1VKeW1nRU8rTDNjQmlJM0w0ajMv?=
 =?utf-8?B?aTNMYkVPUVZPYUlrYnJVc0l0WW9UN1lUR3lYMkR0NlFDRXVpazNhblpGMSt6?=
 =?utf-8?B?SEVqTnBQaWJPUHl1eUxCSjhjZGl1VGN4b1hIN2RONlJPdkxXbDd2dUJaWTR4?=
 =?utf-8?B?c0NsZmUrQXdoSytlTTZzN1ZFRFgvcE43aVVBa2cxdkJ2dXVNTERhZitreDJa?=
 =?utf-8?B?MjlSVW03Zkd6OS9YRlI0R3V1VW16YnNsYmhvdk14N280YmVDOHdyQ2tiK3ht?=
 =?utf-8?B?c1RTSEMrRzFlUElUcm1jMEpuWXdHbjhoV3N0QWtTakp0d0hybERpUDhMS1Vy?=
 =?utf-8?B?ODgwMGRUQ0FJazhzWUdqbnE1eUZ3cnJkcGgwSTNxMDY5UnZqaktMdUtlUDRE?=
 =?utf-8?B?eGVEYmtKM1JVN2kyZWJ1dVBQOUVVeGhYUXhvcVRFQUt2Q2gyckVOS085Sm5H?=
 =?utf-8?B?WDBaRDBUclpRKzYvRWVpcGNKVzNOL1BXL0lNd3AvKy9HUDNKSEV0c2xOOVJ0?=
 =?utf-8?B?bVhQUzVIeHRXeWNrOG9wWGRNUmhrMUJvTjh1Z1RRaGlVbG1ySEdHODZydUlw?=
 =?utf-8?B?YnJ6bENRVnhQZkNLQm1BMlJvRUJ6a1duQS9odmV3K05rYXhhbFZGZGtCMndJ?=
 =?utf-8?B?V3BwWVR0bU5LWWhqa2Vxb3lhNTcvWXJFdm51a1VkSjVuS0xiZG5oVzFidTBP?=
 =?utf-8?B?eFJtL2s5Z1BBdlNtVUYzb2I3MGpZKzRGVGZxUEdkUDZCdzJ6TzNrdEIrSHZt?=
 =?utf-8?B?cTY3K0cyQytEaW5jRkRpTWlzK2hTTmc4NG5WbC9FeXZpQ011cHVGTXpyeW1S?=
 =?utf-8?B?RE5BaVFCQXdsVHJaVnBKVFE0TmM0eE5sNk9laDhDbW9tSlRZa1RubGRQTHVV?=
 =?utf-8?B?OTRwR21TbiszUVdsWkhUVFhKd1NsVndJa1Rma1hWcThXQkU1NFZ4M1g1U01X?=
 =?utf-8?B?NTFpWDBWaWNiMFk2Q0FUeXlVUzQ4d0JodWc1d0tsWC85SE1yYSt4disrR3lp?=
 =?utf-8?B?WDRjVTVXVUZKdTYvdW9qSkliU2JGVytiejZKOC8zTkMwVTlPK0YyazhhTWM0?=
 =?utf-8?B?NVNmaGV1dWxVdEZtVmdXeHBCcXozOVV6UnB5Ui9CMXVNNmhNMndnSFU2bE1p?=
 =?utf-8?B?bTFNNnBVTk85aUlEVDM4aGcyb2pEVE5vRHZBYitNaWRqeEpSQW84YlJkTk96?=
 =?utf-8?B?bGFneTdaZy9JaGs2T2c1SjBITU5MQnlQS04xTW9UM3NXdzc4eGoxeEFwN05o?=
 =?utf-8?Q?PzoELhRdE40sWVqM=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1edeb523-b769-463c-1634-08deb5ad8c6c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 13:50:12.4140
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rcNxbF95PEwshwAFHDf5qL/Hjf55/ex27cQGg6m7s3FCulpQ5CybkdIDrDXRRfb8ho3pwAMgLmUt/FHIctVFJUUPiKa77joxFDPEnL5fojo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6343
X-purgate-ID: tlsNG-c201ff/1779198623-E0E64443-568E9F1D/10/73395122804
X-purgate-type: spam
X-purgate-size: 4240

On 19/05/2026 1:06 pm, Jan Beulich wrote:
> On 19.05.2026 13:56, Andrew Cooper wrote:
>> On 19/05/2026 12:51 pm, Jan Beulich wrote:
>>> On 19.05.2026 13:32, Andrew Cooper wrote:
>>>> On 19/05/2026 12:22 pm, Oleksii Kurochko wrote:
>>>>> On 5/19/26 12:55 PM, Oleksii Kurochko wrote:
>>>>>> On 5/19/26 11:37 AM, Jan Beulich wrote:
>>>>>>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>>>>>>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot
>>>>>>>> inside
>>>>>>>> the domain's shared_info page for vcpus with id <
>>>>>>>> XEN_LEGACY_MAX_VCPUS,
>>>>>>>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>>>>>>>
>>>>>>>> However, it does not guard against d->shared_info being NULL.  The
>>>>>>>> shared_info() macro expands to a member access through d->shared_info,
>>>>>>>> so when an architecture does not allocate a shared_info page the
>>>>>>>> dereference triggers UBSAN:
>>>>>>>>    UBSAN: Undefined behaviour in common/domain.c:325:10
>>>>>>>>    member access within null pointer of type 'struct shared_info_t'
>>>>>>>>
>>>>>>>> Extend the existing fallback condition to also cover the case where no
>>>>>>>> shared_info page has been allocated, mapping the vcpu to
>>>>>>>> dummy_vcpu_info
>>>>>>>> instead. This is the correct behaviour: dummy_vcpu_info already serves
>>>>>>>> as the safe stand-in for vcpus that have no usable shared_info slot.
>>>>>>>>
>>>>>>>> Fixes: 295514ff75506 ("common: convert vCPU info area registration")
>>>>>>> I question this, largely (but not only) because I also ...
>>>>>>>
>>>>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>>>>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>>>>>>>> ---
>>>>>>>> RISC-V does not allocate a shared_info page at the momemnt because its
>>>>>>>> guests run in dom0less mode and do not use the Xen PV ABI, so
>>>>>>>> d->shared_info remains NULL throughout domain lifetime.
>>>>>>> ... question this mode of operation. Yes, you may (for now) be able
>>>>>>> to get
>>>>>>> away without, but e.g. event channels will want supporting at some
>>>>>>> point.
>>>>>>> Which will require a shared info page. Better put that in place
>>>>>>> right away,
>>>>>>> even if the guests you test with don't use it (yet). Certain other
>>>>>>> common
>>>>>>> code also assumes d->shared_info to never be NULL for an alive domain.
>>>>>>>
>>>>>> Would it be fine than to allocate it in arch_domain_create() ... :
>>>>>>
>>>>>>      if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
>>>>>>          goto fail;
>>>>>>
>>>>>>      clear_page(d->shared_info);
>>>>>>
>>>>>> ... but without calling share_xen_page_with_guest() after that
>>>>>> allocation as share_xen_page_with_guest() isn't implemented at the
>>>>>> moment?
>>>>> Or could it be an option for all arch-s move allocation of
>>>>> d->shared_info to domain_create() in common just after
>>>>> arch_domain_create()?
>>>>>
>>>>> The only question if share_xen_page_with_guest() could be ifdef-ed
>>>>> somehow so not to block new ports to implement it from the start.
>>>> shared_info is an x86-PV-ism which escaped into HVM and then infected
>>>> ARM too.
>>>>
>>>> Sadly it's ABI there, but this is one of many areas where I really want
>>>> RISC-V not to inherit the mistakes of prior ports.
>>> In which case, how do you propose e.g. event channels to be handled in
>>> whatever is going to be the alternative?
>> Implement proper enumeration of virtual capabilities (to be retrofitted
>> to x86/ARM too), and only offer the FIFO ABI (which is superior in every
>> way to the 2L ABI).
> What about the wc_* fields then?

Well - ARM seems to have the right idea by entirely ignoring them and
leaving it all 0.

At least it's obviously got no data in it, as opposed to what we do on
x86 where we pretend it's possible to use some stale value to determine
the wallclock time without even a tied TSC reference.

This is one of several things contributing to our in-guest timekeeping bugs.

>  And about everything in struct arch_shared_info?

There is nothing else in any arch_shared_info applicable outside of PV
guests.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue May 19 13:52:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 13:52:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313085.1583305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKsO-0005E5-Oy; Tue, 19 May 2026 13:52:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313085.1583305; Tue, 19 May 2026 13:52:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKsO-0005Dy-MC; Tue, 19 May 2026 13:52:52 +0000
Received: by outflank-mailman (input) for mailman id 1313085;
 Tue, 19 May 2026 13:52:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPKsN-0005Ds-Cm
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:52:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPKsM-00DnjS-Od
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:52:50 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c6b2c-e002-0a2a0a5209dd-0a2a450cc34e-16
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:52:50 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c6b32-62f1-0a2a450c0019-d1558031e5c1-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:52:50 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-48e8132c6d0so23625475e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 06:52:50 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe5694fcasm305965725e9.5.2026.05.19.06.52.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 06:52:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779198770; x=1779803570; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=O/a/OzZaxIL/wVLf1FKXaBULJNpj/cLuMHB3ipX6KUw=;
        b=YgE9HpEuqYuLyP1kXz8r3AkiqZpxYgnwPlCtmu2F6lL/JoyDOvHipltzTbgDJPZ228
         PdQalysj1a4ID6F3F5W+NDC5USgw8sDuyzFZ4yh7FhpZ1qkRrmPWgfieQf7M+ckIPr8/
         8f/lzV3lGZIt9m2YcJvl8wspGwD8hUro+zjhlLa0nhkrfzDQ/rxMIsl+jkuJdOsl/TbA
         nUfPrRKMlbVvhzXU/C2yOf4Nfm1KT/nZlM9AqqyaUc1lM34X2nELAj53VdREjDAl+j3k
         OC6LY2Kh1Ol0ogFsHvtlXgh7RVoGSONTryWvkYIoUcdapxakXCApifqOjmn801Lu3l4Z
         JDIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779198770; x=1779803570;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=O/a/OzZaxIL/wVLf1FKXaBULJNpj/cLuMHB3ipX6KUw=;
        b=fGuVMfZZcMaxp+R0CPMZ76ewKhXKbqJFJMrt+w90sc+/XqVizvA91NjFBB1ZDLbIPT
         QcwQ1gKP4SoOk85dQqk+gqb/wkCPfqk+d9jJiZVTNLSdvYL+RqJ3oXK86PTFgr8Qhpke
         ALngOhuEGJr1/qY0rhq4M/zBwXEUhdJh5/HKcIPfR7+5M/azNpt0dKUWuKpfKUlA3Qs9
         +/XZtvurBX1zmv11z2lbQTZVy2fEA9AqXDSj/aYnNw5YWpHfl0PALEbrXWNRBF28Pcl+
         iNAnn6OLxWN5twYAvU4JP4zH26HNpEBoA/xINqs8TCsK0h8wk6wEBdXS/t7XhBGxHKvh
         yvFg==
X-Forwarded-Encrypted: i=1; AFNElJ/VWbKj7Pp2axwN4jwnTqaY1s+PBIGVV8kwpqFl7lQY+z1CYm78zfflaUTA32hr9vGG57Km/vOltss=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx7Ug207/Xf2STJgzEvcFMXP3+dNwM3e/5Axfksk3k3Ba/d94Mw
	A7LXqChjPaQ9FI5a2NNaKcDqUd+8kXJtMhtzh2iKDRG+GqNZmIfQDQNLnDYd5jdv/A==
X-Gm-Gg: Acq92OFCY88xgGh/f4pHMNOnh8OaLcE3bNz90Eebn1NnJWt/VXJaerlCDIr0NsDD6Cs
	xqdIJte+gOPu6ATk2gmX3CkU8DRPoMiGDSZuwQVOdJRCVWUrsCMlbQbwgZuDMA5Z18XmyJ6Hoov
	Rkl665WpvSHw8z4A0kRcKvvp5AUMOkg1CfLAZKDISKHxIFFE64PfeQ0gEPu+AkMnfQLkNgE9V4d
	usMcI+gunLzfFVz5488KeJggcBwKmbNYPV21pPMHHbYq7mBZ4slkHh8UnYp0IpktfvoH49D4/6x
	kuvO3UXl09xR/txlXng0OfkI4vI2NjSAagPVkqQSAiWIQ5np3d+2hIlKh/kJaLWnEfyfUXLBNSG
	NKp+QtHSXf3KHH5+1nwqBWlrZ2DmPe6TglCfMklA98eZXG4LS5mIqoXr2iYeF7a/XeWPVyGUOFO
	Bm5kO3MwT0wmM9KtDJKwB+r5gopP7FyqCnu3CrOtII0/gI5wingRdmVeX5l2C6yV6n2lLGLsHHI
	si6dmQ+hkYRE7mWPtYmq4t0EQtyPo2ciS4X
X-Received: by 2002:a05:600c:a11c:b0:48a:5574:3a5d with SMTP id 5b1f17b1804b1-48fe60e476fmr209131095e9.7.1779198770052;
        Tue, 19 May 2026 06:52:50 -0700 (PDT)
Message-ID: <15e7a49d-9f0b-481d-b6db-2fa6fb218abe@suse.com>
Date: Tue, 19 May 2026 15:52:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs/process: document AI-assisted patch tags
To: Cody Zuschlag <cody.zuschlag@gmail.com>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech,
 michal.orzel@amd.com, julien@xen.org, roger.pau@citrix.com,
 sstabellini@kernel.org, xen-devel@lists.xenproject.org
References: <20260519134417.16024-2-cody.zuschlag@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260519134417.16024-2-cody.zuschlag@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1779198770-E1F6ACF5-7A46D43B/0/0
X-purgate-type: clean
X-purgate-size: 2633

On 19.05.2026 15:44, Cody Zuschlag wrote:
> This patch adds lightweight guidance for AI-assisted patch
> 
> attribution via an Assisted-by tag.
> 
> The proposal is inspired by similar Linux kernel documentation,
> 
> while keeping the Xen guidance intentionally minimal and aligned
> 
> with the existing sending-patches documentation.
> 
> Feedback welcome.

Up to here it's kind of a cover letter in disguise?

> docs/process: document AI-assisted patch tags
> 
> Add documentation for the Assisted-by tag to clarify how
> AI-assisted tooling may be disclosed in Xen patches.
> 
> The guidance is inspired by similar work in the Linux kernel
> documentation.
> 
> Signed-off-by: Cody Zuschlag <cody.zuschlag@gmail.com>
> ---
>  docs/process/sending-patches.pandoc | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
>  mode change 100644 => 100755 docs/process/sending-patches.pandoc

This and hence ...

> diff --git a/docs/process/sending-patches.pandoc b/docs/process/sending-patches.pandoc
> old mode 100644
> new mode 100755

... this looks unwanted.

Looks okay beyond that.

Jan

> index 798ecceb..b61584f9
> --- a/docs/process/sending-patches.pandoc
> +++ b/docs/process/sending-patches.pandoc
> @@ -195,6 +195,25 @@ E.g.:
>  
>      Requested-by: Jane Doe <jane.doe@example.org>
>  
> +### Assisted-by:
> +
> +This optional tag can be used when AI-assisted tooling contributed to the
> +preparation of a patch. It is in the format:
> +
> +    Assisted-by: <tool-name>[:<model-version>] [tool...]
> +
> +E.g.:
> +
> +    Assisted-by: Claude:claude-3-opus coccinelle sparse
> +    Assisted-by: ChatGPT:gpt-5.5
> +
> +Basic development tools, such as git, compilers, make, and editors, should
> +not be listed.
> +
> +The person submitting the patch remains responsible for reviewing any
> +AI-generated content and ensuring the contribution is correct, appropriate,
> +and compliant with Xen's contribution and licensing requirements.
> +
>  ### Signed-off-by:
>  
>  This mandatory tag specifies the author(s) of a patch (for each author a
> @@ -209,6 +228,9 @@ E.g.:
>  The author must be a natural person (not a team or just a company) and the
>  `Signed-off-by:` tag must include the real name of the author (no pseudonym).
>  
> +AI tools must not add `Signed-off-by:` tags, as only natural
> +persons can certify the `Developer's Certificate of Origin`.
> +
>  By signing the patch with her/his name the author explicitly confirms to have
>  made the contribution conforming to the `Developer's Certificate of Origin`:
>  



From xen-devel-bounces@lists.xenproject.org Tue May 19 13:52:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 13:52:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313086.1583315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKsQ-0005RQ-W0; Tue, 19 May 2026 13:52:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313086.1583315; Tue, 19 May 2026 13:52:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPKsQ-0005RJ-Sf; Tue, 19 May 2026 13:52:54 +0000
Received: by outflank-mailman (input) for mailman id 1313086;
 Tue, 19 May 2026 13:52:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPKsP-0005Ql-Sn
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:52:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPKsP-00CrVd-8d
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:52:53 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c6b2b-bab6-0a2a0a5309dd-0a2a4505e706-34
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:52:53 +0200
Received: from [209.85.208.43] (helo=mail-ed1-f43.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c6b35-aaa8-0a2a45050019-d155d02be5ae-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:52:53 +0200
Received: by mail-ed1-f43.google.com with SMTP id
 4fb4d7f45d1cf-67be41d5eeeso6300829a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 06:52:53 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-68310b3e8fbsm6640261a12.2.2026.05.19.06.52.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 06:52:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779198773; x=1779803573; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=5zQzDAawb2MyiQGrMt/FCPmrtX8nCJ88FEd+CX8xZiY=;
        b=TqkYayUqukRkAdQEi6uco7Ts8MN5ZIONI4AsEETCuoHb2pyIYN/uEuHfyZofXUyxWO
         wsIa1ipdsPGrQMp8OAKX6IWurs+7l16/O6OMextvPx9N3dPylEXqHK3qCxHuhGFH9PEC
         8RPwQytGSVHrvUEXUAUzwpweqvrrr4FKO4KAfFFWe7O3cl9jqlF7oLI7LyATJHWu211D
         aV9GFEDOStGK7KbgQFxBIreMFyOL4jWaHCzUNdD5JMZOuE/RohYpH8hnpSq1O3m9f05Z
         zMmuCaCXsNrR55vgkrgCsLDf+W58n1ZTxGdGdjNWzpOTpdXi6+vIdMJEEly+LtMYktz6
         eexg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779198773; x=1779803573;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=5zQzDAawb2MyiQGrMt/FCPmrtX8nCJ88FEd+CX8xZiY=;
        b=mvZEqVdZGRiSGNrSY0fZFmuMM3Eht87ZmZ4mpXHwj9Hxf5fZXNZNBqeAdBiyYp2ADI
         QhMpO7FwlbC20dY4XHtvzlXx5c3Z6AQHFRqqn5BRj19o1XbQiiMgcN6ax/7f2Rj32mfo
         bPPsMZiMKmfUYqXTfdhQHAY2J4FsoAvDt/K1SnLcfxNIuyFALfJn1KAHTbeZW1lMN6sZ
         WlHxVAhWBgSwkmKFSFstMaYerbfFt8ML+oUnA00FJGcd6MlQ6G56JksMDNaGufAOIawE
         OJzQCS11HQVCD7xe/LW//BPV8sQLWhuv9FeW31Q9yZfdHPMWtFgObHvWcAqg0HpAl5NJ
         mnoA==
X-Forwarded-Encrypted: i=1; AFNElJ8rEJyRJwK96aAapR95HIQoHOe4Bibo747HIIZIN53s8LDBkg1OcXRokDc5q+Ns+Vx8HrzUEeVzzC8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzpFXIc1V0i3koExSUGcEzpIt7sg0OAhfhWRY+bgIAFqSEbF/5k
	wgFwrjc66gr43NSnGfmgRs8uqg9Q/aQY/AiFqsBr2tzrqgKzXp0fqAa6
X-Gm-Gg: Acq92OGeJw4Xyp5rI0dn7H2LvrG19TsHPvvL73msbtWZojbpNrTxJvuEDyMUhjJicqi
	rdP9755xD8ILnhvmDn7/ap3ZCxLblLcXSs785gpi2xt5tegQBHAKo2bxg6ueYFuQ44gp2ChCleP
	jdCyE/160WRnwsPYvavs47eTPsZT3rLiFHfwVL8FJd/nQEzGq611igTyFphecL9yuR18WB3NJZB
	TzlNWUvDgV1SbbS+sbMHLv1EiCzo5skVFOPbHfksrn3JE9LOnQxPGBS7R9DfBPwgVI8h+txBVBv
	8VHFxNXYabWppsfITcLmlPixN9a1TVjoEaclzjhGzkVSurL/x/CJMi/d6eES/8zfSkbsJ/4opoo
	lTYMtvWAiwiybauhQIVar4JY4//l0Kua5frTr8N32TlFzLOZsLu/K3TZATza6+qGLQZOE/fuXQ1
	VIRxnr7I9rjiVOi7ol0qubXcV3Y7DnmnKyNByZ2Y59cmq9RVaja0Yde4iYxjTMq3EwV65tiCQ/M
	Zc=
X-Received: by 2002:a05:6402:428e:b0:683:e394:cc0c with SMTP id 4fb4d7f45d1cf-683e394ce69mr9374327a12.4.1779198772428;
        Tue, 19 May 2026 06:52:52 -0700 (PDT)
Message-ID: <f6b8ce86-11ad-4014-add3-6360c9c53230@gmail.com>
Date: Tue, 19 May 2026 15:52:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
 <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
 <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
 <e65d9be5-f788-42d1-9117-eef70303a1a4@citrix.com>
 <ee441369-cc67-4ec1-84f9-4619ce645da1@suse.com>
 <f5cd7d50-e274-4a8c-a535-8c0f47cec137@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f5cd7d50-e274-4a8c-a535-8c0f47cec137@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1779198773-D8145443-08A95838/10/73395122804
X-purgate-type: spam
X-purgate-size: 4202



On 5/19/26 1:56 PM, Andrew Cooper wrote:
> On 19/05/2026 12:51 pm, Jan Beulich wrote:
>> On 19.05.2026 13:32, Andrew Cooper wrote:
>>> On 19/05/2026 12:22 pm, Oleksii Kurochko wrote:
>>>> On 5/19/26 12:55 PM, Oleksii Kurochko wrote:
>>>>> On 5/19/26 11:37 AM, Jan Beulich wrote:
>>>>>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>>>>>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot
>>>>>>> inside
>>>>>>> the domain's shared_info page for vcpus with id <
>>>>>>> XEN_LEGACY_MAX_VCPUS,
>>>>>>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>>>>>>
>>>>>>> However, it does not guard against d->shared_info being NULL.  The
>>>>>>> shared_info() macro expands to a member access through d->shared_info,
>>>>>>> so when an architecture does not allocate a shared_info page the
>>>>>>> dereference triggers UBSAN:
>>>>>>>     UBSAN: Undefined behaviour in common/domain.c:325:10
>>>>>>>     member access within null pointer of type 'struct shared_info_t'
>>>>>>>
>>>>>>> Extend the existing fallback condition to also cover the case where no
>>>>>>> shared_info page has been allocated, mapping the vcpu to
>>>>>>> dummy_vcpu_info
>>>>>>> instead. This is the correct behaviour: dummy_vcpu_info already serves
>>>>>>> as the safe stand-in for vcpus that have no usable shared_info slot.
>>>>>>>
>>>>>>> Fixes: 295514ff75506 ("common: convert vCPU info area registration")
>>>>>> I question this, largely (but not only) because I also ...
>>>>>>
>>>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>>>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>>>>>>> ---
>>>>>>> RISC-V does not allocate a shared_info page at the momemnt because its
>>>>>>> guests run in dom0less mode and do not use the Xen PV ABI, so
>>>>>>> d->shared_info remains NULL throughout domain lifetime.
>>>>>> ... question this mode of operation. Yes, you may (for now) be able
>>>>>> to get
>>>>>> away without, but e.g. event channels will want supporting at some
>>>>>> point.
>>>>>> Which will require a shared info page. Better put that in place
>>>>>> right away,
>>>>>> even if the guests you test with don't use it (yet). Certain other
>>>>>> common
>>>>>> code also assumes d->shared_info to never be NULL for an alive domain.
>>>>>>
>>>>> Would it be fine than to allocate it in arch_domain_create() ... :
>>>>>
>>>>>       if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
>>>>>           goto fail;
>>>>>
>>>>>       clear_page(d->shared_info);
>>>>>
>>>>> ... but without calling share_xen_page_with_guest() after that
>>>>> allocation as share_xen_page_with_guest() isn't implemented at the
>>>>> moment?
>>>> Or could it be an option for all arch-s move allocation of
>>>> d->shared_info to domain_create() in common just after
>>>> arch_domain_create()?
>>>>
>>>> The only question if share_xen_page_with_guest() could be ifdef-ed
>>>> somehow so not to block new ports to implement it from the start.
>>> shared_info is an x86-PV-ism which escaped into HVM and then infected
>>> ARM too.
>>>
>>> Sadly it's ABI there, but this is one of many areas where I really want
>>> RISC-V not to inherit the mistakes of prior ports.
>> In which case, how do you propose e.g. event channels to be handled in
>> whatever is going to be the alternative?
> 
> Implement proper enumeration of virtual capabilities (to be retrofitted
> to x86/ARM too), and only offer the FIFO ABI (which is superior in every
> way to the 2L ABI).

I'm not familiar with the FIFO ABI, but after a quick look it seems 
d->shared_info is used here for example:
static void setup_ports(struct domain *d, unsigned int prev_evtchns)
{
...
     for ( port = 1; port < prev_evtchns; port++ )
     {
...

         evtchn = evtchn_from_port(d, port);

         if ( guest_test_bit(d, port, &shared_info(d, evtchn_pending)) )
             evtchn->pending = true;

         evtchn_fifo_set_priority(d, evtchn, EVTCHN_FIFO_PRIORITY_DEFAULT);
     }
}

So shouldn't it be still allocated in arch_domain_create() or as I 
suggested in domain_create()?

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 14:03:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 14:03:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313100.1583324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPL2o-0007rw-Sj; Tue, 19 May 2026 14:03:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313100.1583324; Tue, 19 May 2026 14:03:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPL2o-0007rp-Pu; Tue, 19 May 2026 14:03:38 +0000
Received: by outflank-mailman (input) for mailman id 1313100;
 Tue, 19 May 2026 14:03:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksii_Moisieiev@epam.com>) id 1wPL2n-0007rj-Iq
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 14:03:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPL2m-009jHO-TC
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 16:03:36 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 6a0c6da6-2eae-0a2a0a5409dd-0a2a45078a52-34
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 16:03:36 +0200
Received: from [52.101.83.83]
 (helo=GVXPR05CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 6a0c6dae-229c-0a2a45070019-3465535399a3-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 16:03:27 +0200
Received: from PA6PR03MB10266.eurprd03.prod.outlook.com
 (2603:10a6:102:3cd::18) by PAVPR03MB9137.eurprd03.prod.outlook.com
 (2603:10a6:102:328::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Tue, 19 May
 2026 14:03:24 +0000
Received: from PA6PR03MB10266.eurprd03.prod.outlook.com
 ([fe80::2cc9:8d65:65de:c005]) by PA6PR03MB10266.eurprd03.prod.outlook.com
 ([fe80::2cc9:8d65:65de:c005%6]) with mapi id 15.21.0025.023; Tue, 19 May 2026
 14:03:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RVgGNV3pls8hMhvOylcNGrrVtfXws54swCdKeK/X6UIkgeZ3Db0qPgEzR2DrTkjUa5f6P5MqZLRswBps+lTXtlrYsjql6O1zIRh6ajkB4EiLFbEGlKLZ5D70/sxNxraoJdBKHpQtDrnnmJmnfQM+TUZutb2nWdRfKXOWGi7TkYZIkRDtlvrv/LkMAY2ydZAQ6YIq7R6CW2t5Fp+p5dOO/sVMyQqHzlGmtpSBqbCeLZd7H/+guFG7QVl6gl8BZHOgUFtOvOlu7XmVZUn0MVHInPk7uHh76s2n36EWZ+CpDnzMnl/XtIIsZIkBYZrC+0+vbkTaw6+phQQ4RnPjUxVBcQ==
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=amr1ubwZ80QlB1dNNsSBUWh0Pz9PSTRWOqOxWC6B6Jw=;
 b=mtKZgdgYkJNPc2An6MGAY9AIOXM1QG2wr8XWGOozN8kvkLPz1yTYpMh/3WnrBAPEpECumXIu4RcoCK8P9ftENulsZL/1//264BN6CzyGQUZWR+RhQX8zugvxrNIl4IpyskPmFi26lsddPfoD2eYggs+iRIYoQYDGHRDuroh9CFRQoI3zI1f8CO9teMmHQAHXZSKG7g+xTU/iMj+zRA3V4aLHlZi8rRPx138IfL+EBO1QtVsQErDE/gsKyJvnAs1yb4GT3x7snsGFkwO3ASpyHNJ6NdZAB23IamcyucmWUKWiX6o8a64SYnsjF4VT2TMhkVLiU7h/Zf+EXSGqAoQudg==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=amr1ubwZ80QlB1dNNsSBUWh0Pz9PSTRWOqOxWC6B6Jw=;
 b=qHn1oFB+ZI2EtxsnC/pwsK8Y3rfhL1HfOFPGY3Aoov+V2JEIe82kb2K97jv3zG9K1tZIdCHj5eTkh1Ztm8lkvyAuH0NfZmL1AiMiLslgbHqcdfc6DAOO9Y06SdBPa1ZwU8rxA0aTiUCYJOXznAbu29AsW2fFwh4ZiwtBl5D/fGyu5glh0yTBF876wPHTH+zDTJqOEWpgvJAprIG7/HSLOfR7upRw14nXazxg69PLvghr0RsY9wNRAhRzRGKIe79DkM2y+mzcY1sgK7MBmCvh6q7yy5nOdh0XTNjiO2jPH5d2F75fQ6mIjdYpf1U/kDHjCYb+u1k1Qvh4fmwd5Klf3g==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <217a65dd-13e0-41cf-84f0-0155cc9df00a@epam.com>
Date: Tue, 19 May 2026 17:03:22 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: RTDS scheduler patches
To: Jan Beulich <jbeulich@suse.com>, Dario Faggioli <dfaggioli@suse.com>,
 Meng Xu <mengxu@cis.upenn.edu>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <41d236ba-a93d-446a-b29a-449a1c5f8972@suse.com>
Content-Language: en-US
From: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
In-Reply-To: <41d236ba-a93d-446a-b29a-449a1c5f8972@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0018.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::13) To PA6PR03MB10266.eurprd03.prod.outlook.com
 (2603:10a6:102:3cd::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PA6PR03MB10266:EE_|PAVPR03MB9137:EE_
X-MS-Office365-Filtering-Correlation-Id: 037d88e4-87dd-4106-4772-08deb5af64b0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|4133799003|11063799006|13003099007|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	P+nYi3fAqq17YQG7noU51F5SZ1WpANw2UHpTOuXHzAenAojfRnTkTp+JVLNc/uDvXLcGQlSLCzsPMl1leGk7rwDkear2IJPO084sR7OYA72wN1cXrWqJIp5qdztCW1IDT7Wo3/WW+3gpDIfdMe2BUqYZBw5nH3YaM5gktNvsdYO2Z/dHZJE82xUQKwLY+gbKuOXarboX2cZV26c2xCU27Xu+u/bo2FZgSxPAXFlMj/30fDleUZsrQjyz5lfdhPaxXXgca7TsdDzvwp3Hv5taCocoBf1HlSNQviPoHN2I9Nb2MCMPfo2AX/kMu9wH6rGuSV18s8ouHVAHqlSaLNI+MXT6kCizTJq0gKWzVF/vv8kJBHoGHWUidt8rMbye6pZ9RXUTdxLJ157HdmDtOVstnzhabQGk9An6JMcrxivNqV3n2zecD5tu4gycWQ9aAgHzvBFKCbwaFcE59YRvtyMez1TaFPFYXN2EZZwUPwMsKzgOz4gDObpZZddEwlCXIX/6a/zpzUzo93K7NQTvW2x4YS6Od+ohclwkxzac8VXSBVDr0UXFnHM68ltZWlG7OHxWmfUr8Gr189NMXDetH5WXZsp0s/sMe1sm8hj+1qY3mJcBvrU1sT4SNIXbo18k4n7MycLZ0oMqBp1v58w6j24LRW69BFvFEls8fPhwJx2s3p8dWqumwBuZJMjyAKszQAFu
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA6PR03MB10266.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(4133799003)(11063799006)(13003099007)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Z0dZSUg0QThlOU1RK1pmUEVUY3lMd0FRSUNEdEtsSGNZSnJXR2tzbHJJbVdh?=
 =?utf-8?B?MHlMS0t3WmJJWXVHelJ4c0gzVFRJcnVEVVBwMlZ3Mkw5N0NRR0xoK2N2eDZh?=
 =?utf-8?B?VndoZmUwMjYyZzA5WmpDYzN5SmkzbmlrUUQ0N2gwTFAraG9WUW8yeGM1ME9M?=
 =?utf-8?B?ZG95UWdqVHZFd2ZwZmloQjdXMWFrQXpFT2Y0bHllUUhFOE04VEZBNUVSYVRl?=
 =?utf-8?B?ZkFYUWNvK1JZR3FKS094RFh4L3d5NlpsbWdRYkpxR05wMU8vZnNvZTlEazhp?=
 =?utf-8?B?dnJURTRtZUNHNFhxWE1SZktZU01RK0FidmRNVVhxT2ZHTmN1cW9YSmgzWjAw?=
 =?utf-8?B?Nm5kSXk2bHd0V2UyMFh1eHNtQ0pXU0FKTWk0UzREdW8wZ0ErclRZeDNtVTNO?=
 =?utf-8?B?bVZDUjQ3ZmVpU2Jja2hkV0lYY0JWcjhTNnU5MjFLem1nMUJoTUliQTFXdlZE?=
 =?utf-8?B?SVpWSTZIeG1uYWM1ZXNyV2Z1b0NaQzdnNGdiS1hxOThRNmJqM3JzSEg3Nm5r?=
 =?utf-8?B?RlZLTDdyeTk5MTFPem1HSUxadzdxc0JIM0xTa216RHhmVFN1ektWWG5KOWNl?=
 =?utf-8?B?Y1JlOU5TMjk1KzE0N2t1UHRCTHlxWVdKSSswR0laWWplVjRXOUVFRzMycmhH?=
 =?utf-8?B?WVpGcVVRZytMNEhUdGgycjVSV3Q5eFVpSnVQWlRTUFRBOFRwdmRaTXhmSGJk?=
 =?utf-8?B?V3BjY0grUWVtZmRjdHdteFZYbGd3NGxrT2RmekhsbUQ5djNNYnpLaGFWNldH?=
 =?utf-8?B?TWRGZ01DbFdYZ1Y2bFJkb3RKdmxGblZzZmloSEJqMmhudk9nU1VHcVlydmhH?=
 =?utf-8?B?cUxDMWp5d1lFYzNKZXRESnhCcWt1bC8zdXJyZmRFcXNxaE1GWGtYbEl3c2F2?=
 =?utf-8?B?N2lzUGpobVdtdEVXWWZjZVk5OHFvZHdoOG9ZTHpZQnVsSTBaS1hVWEpnd21Y?=
 =?utf-8?B?eUdxQUdHWHhKWTNyamhMZFdpNWkzRllyYnA1eGNland2L0ZXRW5ySFVTeFMw?=
 =?utf-8?B?b2VRVmVLZDhCb0ZhNkFqTnl3YkY5YzR3bm9LK0VFNTF0MWZ6RlpRM2FZc0Q2?=
 =?utf-8?B?N1hGMFFQS1NCbjdQZlJXN3J5V1lhR09QZERxSUZDcm11Vk1WVlNETjg5d0Rm?=
 =?utf-8?B?QjFRVE9nV1FBMlVxQnJBRzR5WDNyQ0xLVE4xZGtuTUljV0JJUGZRY0libDhx?=
 =?utf-8?B?UlVZOG9WTVZzODZkRWcxOGFqQWhCTzJVem1qLzkzcUZBMm1ndlQ1YWtZODZj?=
 =?utf-8?B?QmdaQllxbHhEZmg0OTFPWG1XWGQrbG5Bd2ZmdFltWk55ZDFQaW0rN0FXR3FY?=
 =?utf-8?B?T2ZXQjRNWEpBMlJRakVtYjdEU3FndjRHQlBUUVkwNlNJYmtWTFg4cGdGdUFl?=
 =?utf-8?B?enZwWWlaMWdVc3FsLzV0YURDQXpDOEJiZm82V2VEYVVtT2pTS0Voek80Qk9P?=
 =?utf-8?B?dk5yS0xrNkRxYmZUTGlWWGJ2Qkp5N2xDVndHRjFxNTRQNklyVkFHR1Bzb1VU?=
 =?utf-8?B?MXNhNmZEL055K1RJUVJXSllObTg4allhK3BncnpraXNJbkZTa3V5Zjg1aHpU?=
 =?utf-8?B?N1Q0Z1FKaDNsSWZlVUkvVURDeVJPTVMyVVUyYTNTa05ERWErak5abXVubXFv?=
 =?utf-8?B?TWl2Vi9hWEdqVGJORzJPMUFLMjJYa3pNSmVaamZJNWdUNlp0RXBocllOekxE?=
 =?utf-8?B?RjRwcHFwVm5yOEVDcGhqQjNOKzI1UmdSbzkxMkdzMDI3dit1dEtNT095WGpm?=
 =?utf-8?B?cmIwV2g5T3V0d1VaQXd3d0hLZnBmTUcwRDlOMkhEWE1rQkhTRTQ3Q29TR1d3?=
 =?utf-8?B?K1plLzZqM1RyT3JxR1l4TVhzYnFwSmgzOUxLTmhhWHYrR1hZKzk0QVN6eVVB?=
 =?utf-8?B?Wmdqd1hEbTh6azJYVmxMY01wNnZ0Q3l4MHdrdHgyNEVCcisxM0FZVGNZbTdL?=
 =?utf-8?B?Rkh4R2VkalhFTkZYcDF0Sm93TU1YTXdTL1hRK2ZXTkloanJuSWlNZTBLdEVo?=
 =?utf-8?B?Mytuclc1YnBnY2poUkUxYU83UmlaSzc4MVJWdmh4dlg0M0VCQmg2NGQzNFk2?=
 =?utf-8?B?QjQvYVoyVFdxWVBMcy9JN1Evd3BCTml3Wmh5UUNuY21lSFN0M3hoVWpEV0dv?=
 =?utf-8?B?ejdkbHhOc3BDNmRuV2JUUjBHb2EwL0ZiMmdjSWdNQUNUMjRDZWFnUDgvdDZm?=
 =?utf-8?B?LzRVTlY0RWlaQTVudS85bm9iRGQzcjNTVlZFWURZekJPUjlPTDA2MzZTVm9p?=
 =?utf-8?B?ZDJjK3VmTjN5clBJSThlb0xHY3UySzZUMG52REFYdnduTDNFSXA1ZWwxdXlX?=
 =?utf-8?B?RGoxQ2d3bTJ3SktqeTJwT2trcXd2bnEwbEhiV0JyaXFOY2NIUzBqK2l4V2R5?=
 =?utf-8?Q?5XbJFMvFgv7eW1jU=3D?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 037d88e4-87dd-4106-4772-08deb5af64b0
X-MS-Exchange-CrossTenant-AuthSource: PA6PR03MB10266.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 14:03:24.7638
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DzpYCIlrvylxs3Ehaq2GPQd+I+hs6mgaZSOnyCDsDArk0osrHPG30Xujg7bPT5VOHsDn5oWaAgygctswh7gAIH14CqkD9K9dPTfpEKTHd5U=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9137
X-purgate-ID: tlsNG-ef75cf/1779199407-21969C48-FF2F85CD/0/0
X-purgate-type: clean
X-purgate-size: 1052

Hello one more time,

Small update:

The fist patch series mentioned below:
[PATCH v2] xen/sched: rtds: re-arm repl_timer after timer re-initialization
https://lists.xen.org/archives/html/xen-devel/2026-04/msg00162.html

Was reworked since cpupools forbids removing last pCPU. See v3:

[PATCH v3] xen/sched: rtds: assert replq is empty on timer (re-)init
https://lists.xenproject.org/archives/html/xen-devel/2026-05/msg00078.html

--

Oleskii

On 18/05/2026 18:08, Jan Beulich wrote:
> Hello,
>
> would you mind taking a look at two patches, both of which were reviewed by
> Jürgen and hence hopefully should be relatively straightforward to given an
> ack for:
> https://lists.xen.org/archives/html/xen-devel/2026-03/msg01341.html
> https://lists.xen.org/archives/html/xen-devel/2026-04/msg00162.html
>
> In case of continued lack of response, I guess I'm going to commit the
> patches as-is towards the end of this week.
>
> Oleksii, fyi: Generally it is the submitter's responsibility to chase acks.
>
> Thanks, Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 14:10:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 14:10:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313107.1583332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPL9L-0001Qk-Lm; Tue, 19 May 2026 14:10:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313107.1583332; Tue, 19 May 2026 14:10:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPL9L-0001Qd-J2; Tue, 19 May 2026 14:10:23 +0000
Received: by outflank-mailman (input) for mailman id 1313107;
 Tue, 19 May 2026 14:10:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Yazen.Ghannam@amd.com>) id 1wPL9K-0001QX-K6
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 14:10:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPL9J-009krr-OZ
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 16:10:21 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Yazen.Ghannam@amd.com>)
 id 6a0c6f42-bab6-0a2a0a5309dd-0a2a45039062-42
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 16:10:21 +0200
Received: from [40.107.208.46]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Yazen.Ghannam@amd.com>)
 id 6a0c6f4b-672d-0a2a45030019-286bd02e3a5a-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 16:10:20 +0200
Received: from DM4PR12MB6374.namprd12.prod.outlook.com (2603:10b6:8:a3::18) by
 PH8PR12MB7446.namprd12.prod.outlook.com (2603:10b6:510:216::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Tue, 19 May
 2026 14:10:15 +0000
Received: from DM4PR12MB6374.namprd12.prod.outlook.com
 ([fe80::af35:a7a6:6ca:7fcf]) by DM4PR12MB6374.namprd12.prod.outlook.com
 ([fe80::af35:a7a6:6ca:7fcf%5]) with mapi id 15.21.0025.023; Tue, 19 May 2026
 14:10:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=btErGJ0F7paZRCGhfNQogohvV26GDw8F6BtYyC1yanoEkVQ/WqCs5VOwBvq5Iwnyy99FPO6kfJno8Ww05Up8tkcLc+SuItIRT63He08lPr5whbYPbLpWvYD65xjI4jpjr+gCn4orE/aZsYaMIK1xXqJ50mj8UbFKUUQETBMZnGXyZKDoeDLusRwVvWsTY1ButKmSDuAfWg1ekNoSFhjHzKqdjeQK46G6EsXytgLfOb/MUvICmAwUSm9IkByp/tvHK/25EZV6kziIsRJQNXYj6nWtyrgCGjoQoiKyaiZ9XipoKYLeOjH681F2Zt9/V/qF/jVhhAcsZOFgq2geb89dOA==
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=DSyxyiXr3NhxlqSMoUOj2rYZGQfdPYOffTIYUa+1i+Y=;
 b=VbVekySlgO5KaECW8pMQPGhtutQzg1XFB8AxcW+AbQIIdHn2ycjpHXzdhadXu1khaQKKoNH+xmPtC8+Uh12M9W2Cj7ukRzDgW27JveRePHMuiUTnO1Go8TpL1/C8iBqOeRqNH9AgH5QfzBn57tz+OiYTcmXCVvYWUGkD8pn8Ox+bd+V8S3wyY5OQRKfKKPkIUqDm17GHkT/eMU/WAh9hsuROT5d5hOl1yDMfPOLgikQUDKCyEH8NGCLNIRjRAkeLpUdLEzIGDwN8hSs/z50CEFIHN+no+o1UNTZMuWJPKvpism9aldoziAHH9QnLHMY9SdiX59Z7rk+bmEABufOciA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DSyxyiXr3NhxlqSMoUOj2rYZGQfdPYOffTIYUa+1i+Y=;
 b=AQJsIK0c0FcKNgQeMv3EiXMiol3200Mbq4tK+q4TvL7uN9Ypr+VkMA0vj3ZxulZzkXzS3qvhge5rHk2o81Hb7pt+L6eIuT+6aJbwd58NOxGqGIzF9LKmb5QJ9ZxcsKPHtM37XNMGGial6naISQifIYvow1coqRIgGa3WrlytH6w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Date: Tue, 19 May 2026 10:10:02 -0400
From: Yazen Ghannam <yazen.ghannam@amd.com>
To: Jiaqing Zhao <Zhao.Jiaqing@amd.com>
Cc: Penny Zheng <penny.zheng@amd.com>, x86@kernel.org, ray.huang@amd.com,
	Jason.Andryuk@amd.com, stefano.stabellini@amd.com,
	Mario Limonciello <mario.limonciello@amd.com>,
	Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1 0/2] x86/amd_node: harden amd_smn_init() against Xen
 dom0 topology
Message-ID: <20260519141002.GA369920@yaz-khff2.amd.com>
References: <20260506055528.476493-1-penny.zheng@amd.com>
 <3531c9e1-97a8-42ab-aae7-4cfa8976f443@amd.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3531c9e1-97a8-42ab-aae7-4cfa8976f443@amd.com>
X-ClientProxiedBy: SA1P222CA0027.NAMP222.PROD.OUTLOOK.COM
 (2603:10b6:806:22c::11) To DM4PR12MB6374.namprd12.prod.outlook.com
 (2603:10b6:8:a3::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR12MB6374:EE_|PH8PR12MB7446:EE_
X-MS-Office365-Filtering-Correlation-Id: 66ff1b07-77e1-469b-2fd3-08deb5b05974
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|11063799006|18002099003|22082099003|56012099003|4143699003;
X-Microsoft-Antispam-Message-Info:
	ZpwW8F/H7IdDnFpbyIGsdPl9+WLQAbQCFSs7Wijc1kktXW6QRkqcZHCKJXgjDMwKNKNa5GusTFzPmfDqwBymqgvKLws2sJFdMoH4UMa956BA+TyojZRZLrqSx2lIpjr1honW3X3jh7kp8BpBMc6WuUF+go7M5ZK+s8IiImxm3WX0QSOO8b0aHwnxcaYdxOO8zW+87ypl/WG4wiNM8Q+Lwzg8OlESbIXViDnXszUPf3s/yC7BMxGyrhGZkC3ymmMiq98OPkTwompfx4vvOStebDc9MdYTs9tDFUTABXJSntbk8+wR14GJiQbvolmkU7eqeGkpky5SGqEpKOglvd29hcE2e28u1UiRV6SYoGWdDIUNya/RQSZouM0wA/CTvc4qrOS5P7sAxyj74vRCvxsD12tTWiIJ0HfFqJN1yVOlyrcu49rfj3b228mR+ZmCNCLP6J8GX0a5sVfPZas5n79e86bEeD+9dQZzfl9JS4ZMZTqel3/bT9LNO2KdAIWd5ax6K6aziuWQ5u0P/+P/Jm0Z5Jm2cKk88sVFDOSmayM06qLCxOUHE3ZGs1gua40npABFTBSUklGLg68SY/ZpBPgmPG6pzyvhWa2PorUZEu7c3cOLxlnIglSkqfUDxrYEwPEEXIKiHVDXfsjcwiSv5Xib9KUDkHoD3zv5X24kC43J69vdDcF5+MrRN56hbDM/m0PB
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB6374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(11063799006)(18002099003)(22082099003)(56012099003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?9EmZ8f/tDBfvXsRoD+tBkCACjoge4XjKHsBSI1sM1MptpH0y4Uv2Y5OAa/O/?=
 =?us-ascii?Q?fJYwM87jMuY2cxuUz7ShafQjSCGlxWBm2y6rmtOqldTZEUSiy+LhfftA6QHQ?=
 =?us-ascii?Q?1Ls4txfEfh7/M1m1x+mW5cWyzUYh3rZrcLXKS/dTEM/CVRrgGQ08hRab324p?=
 =?us-ascii?Q?HCeGXRRCddDuR2/A2TwmGJLIjvpmFLfATmiKgXt49G8TJ7p7dikrh4xjNEAL?=
 =?us-ascii?Q?YI13SlfnEappy+xtNIOeEJUnXtoSx63OZbJT4skW687vLbIpGOjFZPdwaRzE?=
 =?us-ascii?Q?kCg9Gd3W3TM/CgARHHSCqgz55vGuwrvItlHJsBSOVA2DzDyAp9nBIMOhjiG5?=
 =?us-ascii?Q?FTf2nJAmYjBfb3QyKkdNyiwAKYa7EIxi13XHb69J7lHPfrD5MpyeoC93whom?=
 =?us-ascii?Q?SIdQuHaPi36C49una70HfvYNaYhqaVNqbEfjBMT0FdvAF+qJDtzIs0YkriDz?=
 =?us-ascii?Q?udoOXnf/6/r7EusiSdWGoNWARvnTpil9dcydVzk1pzVj2zudj4KS/uG53PPl?=
 =?us-ascii?Q?sZofqe2Sn8d1EJNJpZ/vb1FodVplK+btrg+H7Iwi3QNAsyL1aHLMvsvMsnIb?=
 =?us-ascii?Q?0xpgnCt4Fa0aPUkK13YRkhP/fci8ZGG51HRRsk2Spftv6H2VIs3vf2Zlajbp?=
 =?us-ascii?Q?QoTOxSwWcdzPrekl6Qx4tzS+xg4JlhOlyr0OFcYufnLZ/KcNIhUmR9V8Ytwb?=
 =?us-ascii?Q?484EZLZrOfUHEtwYlyxW3sdIY+8+NN/3GC3fN90kiLD4iUi/M65CIxcdvm9S?=
 =?us-ascii?Q?gdohHD5hRuo6WZ7TiACf0zVcXXRwsApY2GKOcgq1CBQqHh45JIUDb2pXvcXz?=
 =?us-ascii?Q?NgYFk0+F1NfJtFGSr++SyGatnSfTZKrHzOk/xMYjnZzBWWj7d3ZgYMOWc+x3?=
 =?us-ascii?Q?6n4Uf0gSy5LsReaUviBKmihMlrRJAmiuFI2fFCZap7Yl9WDvah4gceE7WVOn?=
 =?us-ascii?Q?G1OxpDjC2XJ3VdC9d9UW66+jmJMdz2bFDx96S91OCCEpCutjy/n/q3nrYMk9?=
 =?us-ascii?Q?r0hUNmaoY8wipy4BbCL7apDwveuQm8K6xzXfj2m4yrAp73rONRjYAFqOIr94?=
 =?us-ascii?Q?tPrnJASrxeMRyAJ0wZt5alWIPhf+3EEwuSMYhmRDXHfWNEN8FAG1FPY5vX14?=
 =?us-ascii?Q?bthzZfVcAhbroDvYvCgGJvq6DzdZJvzutzG3z0ozp8MIrRUfIB9GX3XeVCwu?=
 =?us-ascii?Q?ZdeVwnPoh3ary69cDc4PZ4gi+IBLNNAeQzmq7WGwk1xQ/gZAbCmhN4jFedR2?=
 =?us-ascii?Q?8tYSyMB9TthTpt5ghHoK2xTzD7XFw2GbM08Cf31WGgz00VVghYB6H6OsGgTK?=
 =?us-ascii?Q?gaGBNpDtsFFMSd0pQ3u8PS6bYwu+LzZlHHVmNfJ1jhnp4GUC/0R7rWPlErus?=
 =?us-ascii?Q?jGziXTnz469jJKVL/PO+IBBQwxAu8e7IJhBltzwhKjAx6Nar3GAvc/sDJGGB?=
 =?us-ascii?Q?fxl8qDM1ry4DgkC7N/aKNJMQwV9+nh1ELSP+oklweBGzUBXTikHRVxuFonq0?=
 =?us-ascii?Q?/usFxBe15Y/O2xW2SFtOwYbzqQb7bg0TBYuiiLJ6qnBtkmfNBuIAj8s+aNNP?=
 =?us-ascii?Q?aGYqA7TfX2f2IqJwolGGLSgbnooKQqh4qAIAX4Ws1sGhqctbfSShzjSwew7F?=
 =?us-ascii?Q?XW8jnjBBrakdqap6Ys4vcv1Q37c/b3TmMoIrJ7vtgUcSK6RNDvsUFCDylOyB?=
 =?us-ascii?Q?u8LwzC/CT2lKY2gg6EIMdnTV3GIP+35AfUuwYL823A87J8e1?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 66ff1b07-77e1-469b-2fd3-08deb5b05974
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB6374.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 14:10:15.5539
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QDzAkhWUBH/Ds7psDsGRkUji44rlSsEn246qWSm+JN4GsqZREab8BR0dtMP5iQYyG69BSgTcTJy041YxXblVpA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7446
X-purgate-ID: tlsNG-33051d/1779199820-41396938-9ADD7A2D/0/0
X-purgate-type: clean
X-purgate-size: 382

On Thu, May 07, 2026 at 04:37:43PM +0800, Jiaqing Zhao wrote:
> This amd_smn_init div0 oops is also observed on 6.19.14+deb14 (Debian testing)
> and 6.18.27. Given that 6.18 is LTS, suggesting `Cc: stable@vger.kernel.org`
> to get it backported.
> 

Hi Jiaqing,

So is the issue observed with the latest mainline kernel?

Or only with v6.19 and before?

Thanks,
Yazen


From xen-devel-bounces@lists.xenproject.org Tue May 19 14:34:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 14:34:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313122.1583341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPLWw-0004y7-JL; Tue, 19 May 2026 14:34:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313122.1583341; Tue, 19 May 2026 14:34:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPLWw-0004y0-Fr; Tue, 19 May 2026 14:34:46 +0000
Received: by outflank-mailman (input) for mailman id 1313122;
 Tue, 19 May 2026 14:34:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wPLWv-0004xu-6r
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 14:34:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPLWu-00D0uz-J5
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 16:34:44 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0c7501-5cb7-0a2a0a5109dd-0a2a4503b31c-8
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 16:34:44 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0c7504-672d-0a2a45030019-d1558032d1a3-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 16:34:44 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-48d146705b4so39879835e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 07:34:44 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.18]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe5694f2csm332412275e9.4.2026.05.19.07.34.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 May 2026 07:34:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779201283; x=1779806083; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=EFsM69tub7HaJA13MDbunxZ7yWIg1wjasziHv5KLvkQ=;
        b=W9LyCGGH8LSQO1UnzjxajB7b1kPb0sbJ+xEglH+bMLBrWhE7YB1ec8sbyt7YJ4Fdn4
         xeWSDsScQ9aMaZbpj6IVgOqNaf3k90nk9DUBepBilGwvPnyAhduURIHKsGgQxGkdgFG6
         1XlXIxDrgAG8aISIszLeicXzUE7c67sd8ypjbaAVlxDRwlMUr+eIL4DCaCnKr2b8o9XI
         i5dHf5q3V7ra9j89XFnVC7aifPQjSoH46oxJir0eUIkhtTcNcnnQF1jfzpxYkYEXqiZU
         64rx7sIrB46VQhYUvXpgEunMewdXbdwhF6hUGgseOWeDOHu2oQVm4VkooFuArVRMfg8/
         STCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779201283; x=1779806083;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EFsM69tub7HaJA13MDbunxZ7yWIg1wjasziHv5KLvkQ=;
        b=CEyCn78CJEIUjHDBB3OLFHBC/GQlKVjsI27w04jUahpdhs3OvOTGkd7AC2cUcbXg9/
         KvVoLvqZz45gVtMV3iyQGAPVJnnwO/tFbEpHRJD2wwIIeHisaBnmkJc+Ph6RJI6HpQZs
         xcirLMDP01MjAvnmDvAd5TFhwbtjg4O0iT43Gm3DzjnkCGY0dzE6kDvuxX4TixXjxQXF
         WWIdlptEIPBEoQVgSj2uGV8tsvFfvAO94QW+3Sqf+a1TXJu/eW0qWBvOajkdZqr90MI3
         jbzuyp6LuUyxQ4ioLCmvW3iooSlfqXtih7yC1O7F7sBXQCh4ofGYNEN3GADDHnhjHdsH
         viSw==
X-Gm-Message-State: AOJu0YyjVADMm28d+BFtRX9+LD0TjFttVPriWXdksXwKDA9HiI80cJpe
	RQfVsHYPvIq3L4N7RIp3eJ4tzJCbF1iQqLumO8fZ8b5cAeZUp95ypUZTahcliw==
X-Gm-Gg: Acq92OH4As2Wb5UTrSK03GlKqDAifnMqi8433OBgh4bDXEgfFYW5z/P6h4Ht67zaWMo
	MOSraqffAn9p/dVxPEpBJvw36+Jp7z0ursx2uggdOaNpO/6+1PqPPkwyZzfDg44EJ8h+M+Za74x
	EYirDOUGOUST5f8jbb920hr1mreyoi5Y5RmT4qkDv8Z9jytPe3c4eDwxVRe7e/FBSPGYD8sU0zq
	VQJUNyZuythlq8bahBDS4ycc7vODL8PmgtIT3cQvp57Quw2MvS1k0RNcgqTZPcE5vmgzA/TC0+K
	SpjFKmADo3kmlsDaJDQnHZtaH9xRoFAMY5QXvM/Bk55+S6Q5WzakF6X0lXOUhkUo4aSGUL8M55q
	aZ1XF5dfjva1bWAFOnC/x1z2V4K2m0Fu36AWneQVEcWKCdmqKMTA5lqaiDfGrEkIyYaLx498qVZ
	iav/3z1PiVx/yBD9Og0umgSCx9ZQ==
X-Received: by 2002:a05:600c:4692:b0:48a:906b:14ca with SMTP id 5b1f17b1804b1-48fe632579dmr313045065e9.20.1779201283308;
        Tue, 19 May 2026 07:34:43 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Luca Fancellu <luca.fancellu@arm.com>,
	Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] xen/arm: gic-v3: Preserve ARE_NS when disabling the distributor
Date: Tue, 19 May 2026 17:31:54 +0300
Message-ID: <0bc584018c025ee9fa5557276b9f3914ca9205d4.1779200467.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779201284-4066C938-A4105372/0/0
X-purgate-type: clean
X-purgate-size: 1810

From: Mykola Kvach <mykola_kvach@epam.com>

gicv3_dist_init() disables the distributor before reprogramming the
global interrupt state. It used to do this by writing 0 to GICD_CTLR.

On a system where firmware has already enabled Non-secure affinity
routing, a zero write clears the Non-secure view's GICD_CTLR.ARE_NS bit.
Arm IHI 0069H.b, section 2.3.3 ("Changing affinity routing enables"),
states that changing GICD_CTLR.ARE_NS from 1 to 0 is UNPREDICTABLE. The
GICD_CTLR register description in section 12.9.4 carries the same rule
for the ARE_NS field.

Preserve ARE_NS while clearing the group enable bits. If firmware left
ARE_NS clear, the value written is still 0, preserving the existing
initialization flow.

Fixes: bc183a0235e0 ("xen/arm: Add support for GIC v3")
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/arch/arm/gic-v3.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 7f365cdbe9..dc00afc0ee 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -745,12 +745,17 @@ static void __init gicv3_dist_espi_init_aff(uint64_t affinity) { }
 static void __init gicv3_dist_init(void)
 {
     uint32_t type;
+    uint32_t ctlr;
     uint64_t affinity;
     unsigned int nr_lines;
     int i;
 
-    /* Disable the distributor */
-    writel_relaxed(0, GICD + GICD_CTLR);
+    /*
+     * Disable the distributor without clearing ARE_NS. The GIC architecture
+     * makes changing ARE_NS from 1 to 0 UNPREDICTABLE.
+     */
+    ctlr = readl_relaxed(GICD + GICD_CTLR);
+    writel_relaxed(ctlr & GICD_CTLR_ARE_NS, GICD + GICD_CTLR);
 
     type = readl_relaxed(GICD + GICD_TYPER);
     nr_lines = 32 * ((type & GICD_TYPE_LINES) + 1);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue May 19 14:50:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 14:50:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313132.1583350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPLli-0007Pn-Qb; Tue, 19 May 2026 14:50:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313132.1583350; Tue, 19 May 2026 14:50:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPLli-0007PL-NM; Tue, 19 May 2026 14:50:02 +0000
Received: by outflank-mailman (input) for mailman id 1313132;
 Tue, 19 May 2026 14:50:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPLlh-0007DV-6x
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 14:50:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPLlg-000xE3-Io
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 16:50:00 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c7887-e002-0a2a0a5209dd-0a2a45038e60-34
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 16:50:00 +0200
Received: from [209.85.208.54] (helo=mail-ed1-f54.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c7898-672d-0a2a45030019-d155d036e937-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 16:50:00 +0200
Received: by mail-ed1-f54.google.com with SMTP id
 4fb4d7f45d1cf-67c2b4809baso8323862a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 07:50:00 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-684744d13aesm4062050a12.18.2026.05.19.07.49.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 07:49:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779202200; x=1779807000; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=V+s3QJ934ow7XOzVh4Rq3bRp7OPLgnNHbqN1My81cY8=;
        b=lPGKleIbYhAdiXQ3ewmbEk//RPRiM8buWtpxHOBLaaJ1EqhL2CEjJJ5T2G0731l33c
         oJdMNoNFbEv8HOVavBJ4QbJrO0OfU+hUR8UZz2ngjWewJ3O+vWsYdVv/E0Z4XScVavwf
         As0IAY0NK0Iubpjq/CB0jmk/+0UJBd0E9On2Co1TRdnx8xXMm5O1N9IVS0CX0zL7Cdo8
         4YdQqxAaNnivvTAFp7GRkgIGkSCuCoo3kNDKGI1L3Dk8e8pHIV4I09FtccJbXX6YKReM
         KcekjvXfpBsRic28OCesE0H8/B0hnKiNL1Bgz9OkQimId0exRsY1JVbJCTzy5O3uxvJ+
         KyGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779202200; x=1779807000;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=V+s3QJ934ow7XOzVh4Rq3bRp7OPLgnNHbqN1My81cY8=;
        b=b1TafxrM69CzEJtoC2I7BjHK9G0efuZzCr3tg+EnThEs+/nPh+ZGBa/eSh1avURZVP
         luSIc81dGv7J9BmKjh2vIdB2Hqr1Ycr0uCoOtdNHhKjurNzeQAzlviFPx3s6jRu7Aktj
         c3Rkeiq1lMQtYNvRJY0GrTQAE5VAs1Z/FxJVBeOXh3P+YIDdxjoGpFaPEzpgBYbgscG1
         hIOsvIRGyPCmNa/C0EzoUoVpYIl28eeTPsFJ4hEO8XdLwIvDnxymWDD8XgmbA6/puRRI
         gKQd1n854p5XnzbcM0CKjVn01srDMTJlz/oFQAWEWq5lcIWWrq7+a18FYWhhBRiVleX/
         vMcg==
X-Forwarded-Encrypted: i=1; AFNElJ/9UophePRgF91gubgUav46Yp6NLpXBx6+BstpJ2DDt3f9O1TA/tGR9olQcHjfm1gmP9X2RYYfFBJI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyJpLv1LDHfSLlAtUtdUxGx8MSip3hfyMlmkX34GmfxxaDZ54hy
	7fmosWFxrf19G9zHW7iQ0OVPWLx9PeQ+Lfo4Y57+ektFoK2kk7CFZGTO
X-Gm-Gg: Acq92OHunPCp0sTKkLL+I0KpSBScS1RNyH1DpT4mLQmLAISivviQ4tCIH0eFTJ3HNq6
	LSDAQHFScnTa2bCxTm1oWE6+y36KFcRsXrBgwtG0XNE+jV/tIFGOxsXDZlevr03M/nXtE1L+VZS
	/RHSNsrWOXgZFCRwusnIgUI7IBLpEotkAJ6J2awgFALOQZ6XpWv5nfgOO9WlfFSEYti96BdzR3A
	fCctnNTVIPx/zE7veZtzDB6EHTLJfM0WHfZmW8pJ9De1X2bFKHnSxjI6mYxw7TO8OI3IlmYIzN8
	ZRYWhHScgHZIBA5vj9zYoZMwY1Yr5r4tCbSAMcjYZ6+stWrr96m5oFC3eTWjJWH76P3VyTHBJSz
	Bel4X2gEITe5S5i51op73GRfmQIWzPtz7Zm8CazMt47l+TaRS0Y8JCGb2e8JrV3oP5dRedJp2n3
	EVh6s9i1LIUVEGL7k1vkf/NXfs4hKOjrTYv5p5aioQ4Dj8TDMNKTOc20Hxjiz0fNFSDFw0i1BK5
	ok=
X-Received: by 2002:a05:6402:3494:b0:683:c72:44c9 with SMTP id 4fb4d7f45d1cf-683bc8ac2f4mr12552686a12.11.1779202199769;
        Tue, 19 May 2026 07:49:59 -0700 (PDT)
Message-ID: <fa617f4f-7057-4b59-8f28-5a014b0c423a@gmail.com>
Date: Tue, 19 May 2026 16:49:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/26] xen/riscv: introduce guest riscv,isa string
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <b2d4f3f7f049837a25bc00bfb1d3da8b984a8b5a.1778250616.git.oleksii.kurochko@gmail.com>
 <364abd6e-4fff-437a-90c8-bb4489f0c51d@suse.com>
 <f032149e-aa99-4976-8012-39bd01d4a653@gmail.com>
 <23e8de1e-b792-4863-bd99-f529642fb963@suse.com>
 <fbd8b102-d495-4678-8226-a199554e266d@gmail.com>
 <3d9e2a3a-6839-4909-b60f-28b4c1a02cdd@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <3d9e2a3a-6839-4909-b60f-28b4c1a02cdd@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1779202200-40E68938-9ED97FED/10/73395122804
X-purgate-type: spam
X-purgate-size: 5069



On 5/19/26 3:40 PM, Jan Beulich wrote:
> On 19.05.2026 15:24, Oleksii Kurochko wrote:
>>
>>
>> On 5/19/26 2:12 PM, Jan Beulich wrote:
>>> On 19.05.2026 13:59, Oleksii Kurochko wrote:
>>>> On 5/18/26 5:51 PM, Jan Beulich wrote:
>>>>> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>>>>>> --- a/xen/arch/riscv/include/asm/cpufeature.h
>>>>>> +++ b/xen/arch/riscv/include/asm/cpufeature.h
>>>>>> @@ -17,6 +17,8 @@
>>>>>>      */
>>>>>>     #define RISCV_ISA_EXT_BASE  26
>>>>>>     
>>>>>> +#define RISCV_GUEST_ISA_STR_MAX 256
>>>>>
>>>>> This looks like it won't be good for very long, seeing how long ISA strings can
>>>>> get. I wonder anyway whether ...
>>>>>
>>>>>> @@ -94,6 +95,9 @@ struct arch_domain {
>>>>>>         struct p2m_domain p2m;
>>>>>>     
>>>>>>         struct paging_domain paging;
>>>>>> +
>>>>>> +    DECLARE_BITMAP(guest_isa, RISCV_ISA_EXT_MAX);
>>>>>> +    char guest_isa_str[RISCV_GUEST_ISA_STR_MAX];
>>>>>
>>>>> ... a compile-time sized buffer is suitable here. Can't you allocate a buffer
>>>>> just large enough to hold the string?
>>>>
>>>> It could be allocated dynamically.
>>>>
>>>> Does it make sense to evaluate in run-time what should be a buffer size?
>>>> For this case I can't find analogue of realloc() in Xen.
>>>
>>> Hmm, I see xrealloc_array(), and surely we could gain xvrealloc_array()
>>> which we'll need anyway once xrealloc_array() uses get converted. (I also
>>> see x{,v}realloc_flex_struct(), but that's of no use here as it looks.)
>>
>> Oh, I missed to turned off "full match" during search...
>>
>>>
>>>> Or it would be
>>>> fine just to take something bigger as a const (lets say 2048) and use it
>>>> for dynamic allocation?
>>>
>>> I'd rather not. Can't you determine how much space the string is going to
>>> occupy?
>>
>> I thought about two options as alternatives:
>>
>> 1. Take as a length host RISC-V ISA string but theoretically we can
>> emulate some extensions which aren't mentioned in host RISC-V ISA string
>> so it could be longer. So not a good option.
>>
>> 2. Having two walks in init_guest_isa():
>>      Introduce the following function:
>> static size_t guest_isa_str_len(const unsigned long *isa_bitmap)
>> {
>>       size_t len = 4; /* rvX prefix */
>>
>>       for ( unsigned int i = 0; i < ARRAY_SIZE(riscv_isa_ext); i++ )
>>       {
>>           const struct riscv_isa_ext_data *ext = &riscv_isa_ext[i];
>>
>>           if ( !riscv_isa_extension_available(isa_bitmap, ext->id) )
>>               continue;
>>
>>           if ( ext->id >= RISCV_ISA_EXT_BASE )
>>               len++; /* '_' separator */
>>
>>           len += strlen(ext->name);
>>       }
>>
>>       return len + 1; /* NUL terminator */
>> }
>>
>>     and then:
>>
>> int init_guest_isa(struct domain *d)
>> {
>>       bitmap_andnot(d->arch.guest_isa, riscv_isa, guest_unsupp,
>>                     RISCV_ISA_EXT_MAX);
>>
>>       size_t len = guest_isa_str_len(d->arch.guest_isa);
>>       d->arch.guest_isa_str = xzalloc_array(char, len);
>>       if ( !d->arch.guest_isa_str )
>>           return -ENOMEM;
>>
>>       /* ... existing snprintf + strlcat loop unchanged ... */
>> }
>>
>> If approach 2 is a good one I can follow it.
> 
> This might be yet better with only a single function. Otherwise the two are
> always at risk of going out of sync. After all you can use snprintf() to
> determine just the size needed; if you go look, there may even be an
> example or two in the tree.

I will do than in the following way:

static int build_guest_isa_str(char *buf, size_t size,
                                const unsigned long *isa_bitmap)
{
     int total = 0;
     int ret;

#if defined(CONFIG_RISCV_32)
     ret = snprintf(buf, size, "rv32");
#elif defined(CONFIG_RISCV_64)
     ret = snprintf(buf, size, "rv64");
#else
#   error "Unsupported RISC-V bitness"
#endif
     if ( ret < 0 )
         return ret;
     total += ret;

     for ( unsigned int i = 0; i < ARRAY_SIZE(riscv_isa_ext); i++ )
     {
         const struct riscv_isa_ext_data *ext = &riscv_isa_ext[i];

         if ( !riscv_isa_extension_available(isa_bitmap, ext->id) )
             continue;

         ret = snprintf(buf ? buf + total : NULL,
                        buf ? size - total : 0, "%s%s",
                        ext->id >= RISCV_ISA_EXT_BASE ? "_" : "",
                        ext->name);
         if ( ret < 0 )
             return ret;
         total += ret;
     }

     return total;
}

int init_guest_isa(struct domain *d)
{
     int len;

     bitmap_andnot(d->arch.isa, riscv_isa, guest_unsupp,
                   RISCV_ISA_EXT_MAX);

     len = build_guest_isa_str(NULL, 0, d->arch.isa);
     if ( len < 0 )
         return len;

     d->arch.isa_str = xmalloc_array(char, len + 1);
     if ( !d->arch.isa_str )
         return -ENOMEM;

     build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa);

     return 0;
}

Thanks for suggestion.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 14:53:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 14:53:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313139.1583361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPLpJ-0000HW-9T; Tue, 19 May 2026 14:53:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313139.1583361; Tue, 19 May 2026 14:53:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPLpJ-0000HP-5f; Tue, 19 May 2026 14:53:45 +0000
Received: by outflank-mailman (input) for mailman id 1313139;
 Tue, 19 May 2026 14:53:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPLpH-0000HJ-UO
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 14:53:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPLpH-002awr-5f
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 16:53:43 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c7964-e002-0a2a0a5209dd-0a2a450b9060-36
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 16:53:42 +0200
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c7976-212f-0a2a450b0019-d155dd29e9d2-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 16:53:42 +0200
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-44509921fbcso2280201f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 07:53:42 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9ed2ffdfsm42971590f8f.15.2026.05.19.07.53.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 07:53:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779202422; x=1779807222; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=O7K9R9TrNAFbW06NGLwSDhYJGfDwvo0BPfnDY40GzO0=;
        b=a3o8daNgmqqfYmPKLvUj901082w1N+T7iWJQYOjf5XCYXNsM6vYJVPZcKNG8iZVVCq
         hh6QWn4T7HCglkIm35s/AgXU22q7KBhkoOs2JUdVcDgGQ80JNXj3wIvpeFq1jn8/yRl/
         IHTbm5mA86o3OBb//7ENtftkVIabhBu16Yr0/vmj/Wj7IyVd0trE5fj6nzyO5yPF/ITo
         QXaN6dE/n/z3ux3+k9NLWVkuqStZwwvgfh2hnv1vsszci9hs7SBv9kk+xjXIDZSoZklc
         DtWyJ0BOfE6mE4mOt/EsgpwuFyb0Fg5uDIe5wLTUu+O44SkRpGex3pnkjxBEElLe8Prz
         fHdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779202422; x=1779807222;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=O7K9R9TrNAFbW06NGLwSDhYJGfDwvo0BPfnDY40GzO0=;
        b=RmfGId5vTsA8blUdRMtRBq//U0yLfGsoPz8JWx8kgC3kYFQqf/XVstOEr3v0RXbn5M
         yQMvbsS1qlul9OSKfoum6KjDYFMaEhTPKLaKmlAcL+kEwPkI+kq7/cuPSXRN83I7z5Pg
         4Xn2b9BokS9VCSis/K1um5qdjdV3qTMkBytVlWuk23cQiL1ZXQSYw6g72vekI+ZnvJ2R
         RqIaK+3rtPwa8oUN8kB8D7dShsasWLWmBQvAS6cJu8XPQx4BTQCdos4ixVHpvMNaRFKl
         1JvjSAHdLCeT62jWPskAEG6fkRPYqhkV2Dmhfhj3jcTVGfsZxFf9JNwgVQBmDC8T/VwN
         g/kA==
X-Forwarded-Encrypted: i=1; AFNElJ+817V3pI3dT3taVlvQvaf5qKAShdmsvW5mKltNSMSnIp7FMbAVNWzIASWFtbLxLpgPFegbEvDVwUs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwHqAiArxaWNuoJRUumzDfsF2WKHNId3UNGimavdvi+C4e2+1VK
	ECKtH+CPPYOTuePC35lHXZC0pLiTPp6/vsHh6ZKiYonkMa5+klF9vZ85yAHGq3XZVQ==
X-Gm-Gg: Acq92OGQNg7PBiFbP5p0mKX6vR4YQ9nh2qDJhGleTNo65jNlttOnWzoDO9KwFShOQOg
	zCZpdvNO0BrpM0hwKG/kqccogaxHoLRZ/0NZd+7iU8I0JjbyrHJiAJt7vQPXngjfHBwMrPDjf5X
	VuTcTu9xoI2RGSLXqu6JYf6bC2jHjQZSA+OpH1PXUvUhvctdPOUtY7DrJzjS2jY7Mw7GTbqSTkI
	ulT/AMlky2TiogrwVunLj2SI+pboRzxOdjpGBmTpTj+i4fTIhsle2q1Pn9A+gwGRNfwagTMME0k
	XDs+m1SxGQncOUa6qhy+SYksL3b7fHCIO1qVKR8V7ld1pMDXtA1Ayeznpptv54KOVNlte9dOs8V
	xrf6ArElqCP116RoorepcvHt9aeWhxJrEfhcFL0nktS7u5uNsF9WztBXYgPXGycPZyrwUcmyMXa
	VmVQ5nVob/902FChnPscgnQXQqAZz4CBah4lN9dL1RNIydNlh7B4Qb2pULkJbZGz3F5Ftequ2Ar
	+fwmowgITDxY48=
X-Received: by 2002:a05:6000:26c4:b0:43e:a69b:d810 with SMTP id ffacd0b85a97d-45e5c5e6096mr33288151f8f.38.1779202422284;
        Tue, 19 May 2026 07:53:42 -0700 (PDT)
Message-ID: <3b5f681c-bda4-4c46-a96d-cd3da1658e28@suse.com>
Date: Tue, 19 May 2026 16:53:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/26] xen/riscv: introduce guest riscv,isa string
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <b2d4f3f7f049837a25bc00bfb1d3da8b984a8b5a.1778250616.git.oleksii.kurochko@gmail.com>
 <364abd6e-4fff-437a-90c8-bb4489f0c51d@suse.com>
 <f032149e-aa99-4976-8012-39bd01d4a653@gmail.com>
 <23e8de1e-b792-4863-bd99-f529642fb963@suse.com>
 <fbd8b102-d495-4678-8226-a199554e266d@gmail.com>
 <3d9e2a3a-6839-4909-b60f-28b4c1a02cdd@suse.com>
 <fa617f4f-7057-4b59-8f28-5a014b0c423a@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <fa617f4f-7057-4b59-8f28-5a014b0c423a@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1779202422-20E7CF3B-B94340BD/0/0
X-purgate-type: clean
X-purgate-size: 3666

On 19.05.2026 16:49, Oleksii Kurochko wrote:
> On 5/19/26 3:40 PM, Jan Beulich wrote:
>> On 19.05.2026 15:24, Oleksii Kurochko wrote:
>>> I thought about two options as alternatives:
>>>
>>> 1. Take as a length host RISC-V ISA string but theoretically we can
>>> emulate some extensions which aren't mentioned in host RISC-V ISA string
>>> so it could be longer. So not a good option.
>>>
>>> 2. Having two walks in init_guest_isa():
>>>      Introduce the following function:
>>> static size_t guest_isa_str_len(const unsigned long *isa_bitmap)
>>> {
>>>       size_t len = 4; /* rvX prefix */
>>>
>>>       for ( unsigned int i = 0; i < ARRAY_SIZE(riscv_isa_ext); i++ )
>>>       {
>>>           const struct riscv_isa_ext_data *ext = &riscv_isa_ext[i];
>>>
>>>           if ( !riscv_isa_extension_available(isa_bitmap, ext->id) )
>>>               continue;
>>>
>>>           if ( ext->id >= RISCV_ISA_EXT_BASE )
>>>               len++; /* '_' separator */
>>>
>>>           len += strlen(ext->name);
>>>       }
>>>
>>>       return len + 1; /* NUL terminator */
>>> }
>>>
>>>     and then:
>>>
>>> int init_guest_isa(struct domain *d)
>>> {
>>>       bitmap_andnot(d->arch.guest_isa, riscv_isa, guest_unsupp,
>>>                     RISCV_ISA_EXT_MAX);
>>>
>>>       size_t len = guest_isa_str_len(d->arch.guest_isa);
>>>       d->arch.guest_isa_str = xzalloc_array(char, len);
>>>       if ( !d->arch.guest_isa_str )
>>>           return -ENOMEM;
>>>
>>>       /* ... existing snprintf + strlcat loop unchanged ... */
>>> }
>>>
>>> If approach 2 is a good one I can follow it.
>>
>> This might be yet better with only a single function. Otherwise the two are
>> always at risk of going out of sync. After all you can use snprintf() to
>> determine just the size needed; if you go look, there may even be an
>> example or two in the tree.
> 
> I will do than in the following way:
> 
> static int build_guest_isa_str(char *buf, size_t size,
>                                 const unsigned long *isa_bitmap)
> {
>      int total = 0;
>      int ret;
> 
> #if defined(CONFIG_RISCV_32)
>      ret = snprintf(buf, size, "rv32");
> #elif defined(CONFIG_RISCV_64)
>      ret = snprintf(buf, size, "rv64");
> #else
> #   error "Unsupported RISC-V bitness"
> #endif
>      if ( ret < 0 )
>          return ret;

You can use total here right away, and limit ...

>      total += ret;
> 
>      for ( unsigned int i = 0; i < ARRAY_SIZE(riscv_isa_ext); i++ )
>      {
>          const struct riscv_isa_ext_data *ext = &riscv_isa_ext[i];

... ret's scope to this loop. This then also justifies total to be of a
signed type.

>          if ( !riscv_isa_extension_available(isa_bitmap, ext->id) )
>              continue;
> 
>          ret = snprintf(buf ? buf + total : NULL,
>                         buf ? size - total : 0, "%s%s",
>                         ext->id >= RISCV_ISA_EXT_BASE ? "_" : "",
>                         ext->name);
>          if ( ret < 0 )
>              return ret;
>          total += ret;
>      }
> 
>      return total;
> }
> 
> int init_guest_isa(struct domain *d)
> {
>      int len;
> 
>      bitmap_andnot(d->arch.isa, riscv_isa, guest_unsupp,
>                    RISCV_ISA_EXT_MAX);
> 
>      len = build_guest_isa_str(NULL, 0, d->arch.isa);
>      if ( len < 0 )
>          return len;
> 
>      d->arch.isa_str = xmalloc_array(char, len + 1);
>      if ( !d->arch.isa_str )
>          return -ENOMEM;
> 
>      build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa);

At least ASSERT() the success of this?

Jan


From xen-devel-bounces@lists.xenproject.org Tue May 19 15:17:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 15:17:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313148.1583368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPMCF-0003kr-5o; Tue, 19 May 2026 15:17:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313148.1583368; Tue, 19 May 2026 15:17:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPMCF-0003kk-2r; Tue, 19 May 2026 15:17:27 +0000
Received: by outflank-mailman (input) for mailman id 1313148;
 Tue, 19 May 2026 15:17:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPMCD-0003kb-EV
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:17:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPMCB-00CiuL-JB
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 17:17:23 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c7ef6-5cb7-0a2a0a5109dd-0a2a4508b0fe-36
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 17:17:23 +0200
Received: from [209.85.218.47] (helo=mail-ej1-f47.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c7f03-63b5-0a2a45080019-d155da2fece0-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 17:17:23 +0200
Received: by mail-ej1-f47.google.com with SMTP id
 a640c23a62f3a-bd22b2abaa4so655781366b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 08:17:23 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-68311670a00sm6448919a12.20.2026.05.19.08.17.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 08:17:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779203843; x=1779808643; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=W4Tad3+H1mBSyVcoyjsaiYAt1DwHQRehXSMzcDpaoRk=;
        b=iGsF2SOT+yvRKtYZNjpX0a+gXEiTrVTKzA47rA15gkDoFmF4WP9DCpKPeGl//lNCjg
         62sqZTta2J+J8T3SxEgA+uWv3UFiqJG01LZFyyHORAfjTKr6uEDkkg3+AFG55HSEaDQ3
         gjlNpcGWdegogjRwv0pYtZvoPk275QfiFqNvJ07ZHydnNq+Qn2aI4WVR7fA0eDI5XIFN
         SAeQ2ZU56wmZl57xB1gCOrAIXeQaGyb1HiEKAS8xAKnD9h1husoq89jJ77hniZjVDy44
         LKpDlrfyrnWaTvPhuV7l83UOcE0APTO6b20AnCBCv1T9CV8PpLP4EcEsfSPTln2Yux+A
         wT5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779203843; x=1779808643;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=W4Tad3+H1mBSyVcoyjsaiYAt1DwHQRehXSMzcDpaoRk=;
        b=d55CbE0LKZkdBhxCnIKTqDtRnRLBG8x5OA8e1qUwlGR5n5NG/cp2xdWK3Lzn3PcvkR
         1JwnF1sjmnitNd0QHaNm/KOJDfkbh3bmHPUt49Y+ZsbmRjR4/sKN+YorPRcNAtTxH+2u
         f4P5SvIwwucR4r54jaIuVBp8cyBNmU53DfpCS6WzXImIq8JexbvhwsuuRkuY8nT+rWyX
         p7WLkVqcnXnQw3x5N1qzQ/7jsi0HLwB3/Bba5ZQJKHre2yp+kDhkCLYrxQDFB7gN7deO
         dPbre7DyRkzbSghCp+MnCZUVP3uEQYBSYx/989kjzoDDN1cvUSD/H6qIPW4vBdmLT8V7
         zp3g==
X-Forwarded-Encrypted: i=1; AFNElJ+0zwAVy/QriZ0MQkeyG0BCCOpfbhz7jPlQWxMaB1MdSTi8tQh2S2+PeUNWVLnAW2TnCqBENlTbkPk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwVXdUKYZxo6DBooWt6Y9MAzzvPBlY1+ehJV5mDaRo59DAXSzvz
	ZLjlAgOg2Q45SgfZ4oGTFyBdN7GJwRo+08YIY5XzikoTLVHyYXiVBO8w
X-Gm-Gg: Acq92OHgPuVLM69Vd4Yh/6w/qq48/utuT1CjvXqh3R7mhYy1GhMX7GDjDERcuqReuOd
	3reU274mLGgPu3xDwxtGbxBhLRI6Sv/a2VwyCKkt75205Z1W5NzTzGaFxpDo8YnkPzXo10L4Oxv
	vD0DqWKrbqnO4lo9+hshSUxspyFr3x341iYJUc/u0l5ElSoAGpvaeIUxtDzARZDGUPNR70eIj6v
	+Qr8LgTcT5iCaVnr0pfAnQ9/ms45p8Lch/m476RFbep22uZTbVCot2/bXUNAK+hrRLmXFyeqaDi
	FuAI4E7l9KZTVrwZooormsXpOxjXrpPm9/jhMkSE7u0wozR6Osfnx6Cu0Hx9DiFvOv3ZYgRyh7I
	jsfzFYZacl5J88Pd+VU+YYFAtZh5o2G9uX33q+dm/7e543YLQX9f/EWhHlE9nA6bCDCmYffsUVg
	gYkl8rJAdrifVr6HUNHhKr/fI0CdFItom/TDS4aTpytbb947YXAcxZFz70fafoAbpkoG7M4DvPY
	14=
X-Received: by 2002:a17:906:730b:b0:bd5:7c3:ac9e with SMTP id a640c23a62f3a-bd517aa8105mr1079972866b.46.1779203842663;
        Tue, 19 May 2026 08:17:22 -0700 (PDT)
Message-ID: <8472866e-49e6-45e8-8d86-3b6b09d2c177@gmail.com>
Date: Tue, 19 May 2026 17:17:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/26] xen/riscv: introduce guest riscv,isa string
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <b2d4f3f7f049837a25bc00bfb1d3da8b984a8b5a.1778250616.git.oleksii.kurochko@gmail.com>
 <364abd6e-4fff-437a-90c8-bb4489f0c51d@suse.com>
 <f032149e-aa99-4976-8012-39bd01d4a653@gmail.com>
 <23e8de1e-b792-4863-bd99-f529642fb963@suse.com>
 <fbd8b102-d495-4678-8226-a199554e266d@gmail.com>
 <3d9e2a3a-6839-4909-b60f-28b4c1a02cdd@suse.com>
 <fa617f4f-7057-4b59-8f28-5a014b0c423a@gmail.com>
 <3b5f681c-bda4-4c46-a96d-cd3da1658e28@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <3b5f681c-bda4-4c46-a96d-cd3da1658e28@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1779203843-BE368DB1-4CFEC29D/10/73395122804
X-purgate-type: spam
X-purgate-size: 4111



On 5/19/26 4:53 PM, Jan Beulich wrote:
> On 19.05.2026 16:49, Oleksii Kurochko wrote:
>> On 5/19/26 3:40 PM, Jan Beulich wrote:
>>> On 19.05.2026 15:24, Oleksii Kurochko wrote:
>>>> I thought about two options as alternatives:
>>>>
>>>> 1. Take as a length host RISC-V ISA string but theoretically we can
>>>> emulate some extensions which aren't mentioned in host RISC-V ISA string
>>>> so it could be longer. So not a good option.
>>>>
>>>> 2. Having two walks in init_guest_isa():
>>>>       Introduce the following function:
>>>> static size_t guest_isa_str_len(const unsigned long *isa_bitmap)
>>>> {
>>>>        size_t len = 4; /* rvX prefix */
>>>>
>>>>        for ( unsigned int i = 0; i < ARRAY_SIZE(riscv_isa_ext); i++ )
>>>>        {
>>>>            const struct riscv_isa_ext_data *ext = &riscv_isa_ext[i];
>>>>
>>>>            if ( !riscv_isa_extension_available(isa_bitmap, ext->id) )
>>>>                continue;
>>>>
>>>>            if ( ext->id >= RISCV_ISA_EXT_BASE )
>>>>                len++; /* '_' separator */
>>>>
>>>>            len += strlen(ext->name);
>>>>        }
>>>>
>>>>        return len + 1; /* NUL terminator */
>>>> }
>>>>
>>>>      and then:
>>>>
>>>> int init_guest_isa(struct domain *d)
>>>> {
>>>>        bitmap_andnot(d->arch.guest_isa, riscv_isa, guest_unsupp,
>>>>                      RISCV_ISA_EXT_MAX);
>>>>
>>>>        size_t len = guest_isa_str_len(d->arch.guest_isa);
>>>>        d->arch.guest_isa_str = xzalloc_array(char, len);
>>>>        if ( !d->arch.guest_isa_str )
>>>>            return -ENOMEM;
>>>>
>>>>        /* ... existing snprintf + strlcat loop unchanged ... */
>>>> }
>>>>
>>>> If approach 2 is a good one I can follow it.
>>>
>>> This might be yet better with only a single function. Otherwise the two are
>>> always at risk of going out of sync. After all you can use snprintf() to
>>> determine just the size needed; if you go look, there may even be an
>>> example or two in the tree.
>>
>> I will do than in the following way:
>>
>> static int build_guest_isa_str(char *buf, size_t size,
>>                                  const unsigned long *isa_bitmap)
>> {
>>       int total = 0;
>>       int ret;
>>
>> #if defined(CONFIG_RISCV_32)
>>       ret = snprintf(buf, size, "rv32");
>> #elif defined(CONFIG_RISCV_64)
>>       ret = snprintf(buf, size, "rv64");
>> #else
>> #   error "Unsupported RISC-V bitness"
>> #endif
>>       if ( ret < 0 )
>>           return ret;
> 
> You can use total here right away, and limit ...
> 
>>       total += ret;
>>
>>       for ( unsigned int i = 0; i < ARRAY_SIZE(riscv_isa_ext); i++ )
>>       {
>>           const struct riscv_isa_ext_data *ext = &riscv_isa_ext[i];
> 
> ... ret's scope to this loop. This then also justifies total to be of a
> signed type.
It makes sense.

> 
>>           if ( !riscv_isa_extension_available(isa_bitmap, ext->id) )
>>               continue;
>>
>>           ret = snprintf(buf ? buf + total : NULL,
>>                          buf ? size - total : 0, "%s%s",
>>                          ext->id >= RISCV_ISA_EXT_BASE ? "_" : "",
>>                          ext->name);
>>           if ( ret < 0 )
>>               return ret;
>>           total += ret;
>>       }
>>
>>       return total;
>> }
>>
>> int init_guest_isa(struct domain *d)
>> {
>>       int len;
>>
>>       bitmap_andnot(d->arch.isa, riscv_isa, guest_unsupp,
>>                     RISCV_ISA_EXT_MAX);
>>
>>       len = build_guest_isa_str(NULL, 0, d->arch.isa);
>>       if ( len < 0 )
>>           return len;
>>
>>       d->arch.isa_str = xmalloc_array(char, len + 1);
>>       if ( !d->arch.isa_str )
>>           return -ENOMEM;
>>
>>       build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa);
> 
> At least ASSERT() the success of this?

I will add:

ASSERT(build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa) == len);

but I expect that we won't be here if len is incorrect or 
d->arch.isa_str wasn't allocated properly.

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 15:24:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 15:24:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313156.1583377 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPMJC-0005Wx-Rr; Tue, 19 May 2026 15:24:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313156.1583377; Tue, 19 May 2026 15:24:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPMJC-0005Wq-PB; Tue, 19 May 2026 15:24:38 +0000
Received: by outflank-mailman (input) for mailman id 1313156;
 Tue, 19 May 2026 15:24:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Edgar.Iglesias@amd.com>) id 1wPMJB-0005Wk-O7
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:24:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPMJB-00DAZD-0C
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 17:24:37 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Edgar.Iglesias@amd.com>)
 id 6a0c8099-e002-0a2a0a5209dd-0a2a4506bd94-44
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 17:24:36 +0200
Received: from [40.107.200.68]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Edgar.Iglesias@amd.com>)
 id 6a0c80b2-7371-0a2a45060019-286bc844dc50-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 17:24:36 +0200
Received: from SN7PR12MB6839.namprd12.prod.outlook.com (2603:10b6:806:265::21)
 by SA1PR12MB8741.namprd12.prod.outlook.com (2603:10b6:806:378::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Tue, 19 May
 2026 15:24:28 +0000
Received: from SN7PR12MB6839.namprd12.prod.outlook.com
 ([fe80::ae79:f50b:b7a6:4cd8]) by SN7PR12MB6839.namprd12.prod.outlook.com
 ([fe80::ae79:f50b:b7a6:4cd8%5]) with mapi id 15.21.0025.016; Tue, 19 May 2026
 15:24:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dKZLqP/6Sc8wWaTL6rYRBOgY8ifiprFYvEp3rzTLaF7hlqXu1LJWhUji1ANn3LH0CQ07MW6msSUAtBa5V5WTADtzxrBAM+6mM+6g9mxWkUSPR4lBQRIpFBuscW+9wyqHQAR/+U4nJpf/mjVcopi18uIn5o5RiDDooOf/EEmlAOm252+ISwhjFSizngReKcMYVZZ9LMaDCAYtBwD2CcMgAvhj7zUS5TEK+2P7m6xNfCGaEC5UMaFIoES4LEDgxiFCvOLYiMHAtgiyySmuEXUrEQxZKBghjFROIp8nGc5v3KTHvwfHC6bcCzaN0XpARUOB7IVS5WvCoXhWY3rUgeqb2g==
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=L2FPL1DcUqrpzDA09JXWsJT5W314n+sIwMchd5dgiPQ=;
 b=b/UULwZl0m1cvTxsU5zf2/v0uWBAxDe3tM3PtmMJoaDqZPQx8QZYjc0z0GNVWqbgx16EEV9YuEkM09kQvTrAVTtXCz2qPBAna9UXbhsT74yBpgmY2fPia9ah0wqA+H+I+Kw8D8DB+Yd2i6Z/fs4ItapfUehm+7m9ne0qvsTBz/HbEHlYeVtDRN4yBmSt74JdMNHVNgeMzj6ExS7oc7cQLTwKtUqEYxq4pZvrKnemQ9+oCh9D0Tvl4x9Hfl2B/3ZsuNQielb2cXX0fwpLb2Jedj9/QhsNr8m8EQyplUt7RXTq2MjCscKlyZ2UoAU63zGxPdA9FeBszxfa5IgJ/+08+w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L2FPL1DcUqrpzDA09JXWsJT5W314n+sIwMchd5dgiPQ=;
 b=MGeET17aKfUUvdY6chFjvA3x8Ca6MR86bUsd0N2nIMd4h7HEz4Jfy6GHkGO+gyB3m0fP7FduQCKymvKV9PHvzssv+0c23+pSRTtOStDu5Lm4burDAgtkRxyUii38hPz31jId7iCXJp1VCN/fh0Fj1mBamksayrD4g4US5Klr/MI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Date: Tue, 19 May 2026 17:24:24 +0200
From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: sstabellini@kernel.org, julien@xen.org, bertrand.marquis@arm.com,
	michal.orzel@amd.com, Volodymyr_Babchuk@epam.com,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 1/1] arm64: Fix strrchr() matching of null terminator
Message-ID: <agyAqDWWYUunmYFW@zapote>
References: <20260518234353.453193-1-edgar.iglesias@amd.com>
 <20260518234353.453193-2-edgar.iglesias@amd.com>
 <9b8ec97f-02ae-4a1a-9abe-59873d574a64@suse.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <9b8ec97f-02ae-4a1a-9abe-59873d574a64@suse.com>
User-Agent: Mutt/2.2.14+84 (2efcabc4) (2026-01-25)
X-ClientProxiedBy: GVYP280CA0014.SWEP280.PROD.OUTLOOK.COM
 (2603:10a6:150:fa::8) To SN7PR12MB6839.namprd12.prod.outlook.com
 (2603:10b6:806:265::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN7PR12MB6839:EE_|SA1PR12MB8741:EE_
X-MS-Office365-Filtering-Correlation-Id: 297e2c95-40d4-40a6-aa6c-08deb5bab7c3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|3023799003|4143699003|18002099003|22082099003|56012099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	tmZTYJ/W6d+RlR8Eku8u7z3vQaA+90AyOYFa6tzTiIrUzuxnFNHkXlGyUabOicZTn/3uqf9mn0i4o02zrZeQjxBYYrmJonOQTmO+aj+bWKMgO2pUnMJenEDT7tQW5Abk2O2KFTdFDqpnQ8KDmtt3eLDTQa5G2gFyxvmNdWS+oYZwZOhXt5gKDdfAtEJOa7vluab1aiIHCxOVOTIjiVQz1EGvaXrPOVeyhNPNTzTXAJbkzjpkn9Q0aOQgspDoX7BUzSwhQ2XpjkrOuD4+Ef4+YLUwMaTxFBH2j6hf10h2sEzizXOIH2cSq/70xiWElp7FysEEKRyzVoIZWKflnPVy3cRHuHDnXKIMKMi9n/fopEbm7ELg64ddXHZzllIERhUWXVKsuUa6BUPTCAHAMy0vLBUYOSdGyU71oTFFEAjnjnnFllLZDeixkRRfI6Jgm31GcHMT4/ZP2jM7x6aOHHO6ftIS14DFPP2UeSWOys6tW/+LBjFB02WDtkYM4E4tKEy2p6MarzUs9jiWCU8k7p646ECXa8Gj4LYAZVJ2oURzVlJrxmJkKrXsrlsDReFSGUYs8CCgf7kXjg3OkgJOFkebMLvqVoZJAA/71cisZ1hxht63T5dOM2gLTc0XuuuH7w3CAKvbkLRu6VhLJb1BERKsKqnLhsi9kkxx7YWainPHSpdp4GvOjp5AsrI94oz7Y7pi
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB6839.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(3023799003)(4143699003)(18002099003)(22082099003)(56012099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?QBfjWozbAG8qMJNwstrHDXTcMAIKgNBSoYecip+I66M+yNrfSjbLMr4a5Sgt?=
 =?us-ascii?Q?5T21EEQJjmNG8392+nu7J5U0BgzPCS6VZjZrMahPT1Lj6rYokEz5M1uY41w/?=
 =?us-ascii?Q?by/Siho4D11bUZupIVB/NPQw6CkXa1jLiF17H0v2AWJK0JMQ3iUJk8pHZJbO?=
 =?us-ascii?Q?uhOH5ejEZOqT5geIEWWszuadcYgAAtpCECCRT8x1Z3Wxq1tC32ODrQnupeuL?=
 =?us-ascii?Q?rpDr/fnJbK71y8fZTHCFEUYp+YNBC6wwZQz4lObLEEM6NHpUuZCQwyI01mHz?=
 =?us-ascii?Q?wecMCxGyKkaVahPsgjKUfg2sEf7ubAcpqXje8xsQDWSvQL/cMtAwkBy+a2IV?=
 =?us-ascii?Q?08I8ngbA+VgSpRP5sZ+Z6OB4XbD2a1IVVN243YIIfT45LXlfHFBw5owfWqkO?=
 =?us-ascii?Q?xfpXVDvCmm4287JFsZVNgSq7fldykdJ1TrByaJD4tD7S8nJuPbcF7qUCvBJC?=
 =?us-ascii?Q?/qTP4FNFo09wMWaK+5IT420Hkaz9KQJKk34JPWWGL9bvxd3MMaHiTXociR91?=
 =?us-ascii?Q?ixgP8hS/Rcu1n2T2eKzD6gq253b+129gOc32XIVQKZk6/OE4kOtpXq4H4Mig?=
 =?us-ascii?Q?lJVZHjwnAqBgbzAWLW6oplQFn8Pzabk0CDKNfRrWE9hZvkDozanM4P8XBP6Y?=
 =?us-ascii?Q?ovq2JN6RKEMholLalz0uiJsfQ0G8C5pDJWvTvIMp51xWUINCGAZj/MhJHfqN?=
 =?us-ascii?Q?u+9QMgsg4QOicoQ4YcbVeYepdORO3AyEzCknmSdPuWfMp7ktFN9H68jk6AXN?=
 =?us-ascii?Q?TahXkrPXUSX9vQ2mpL/ZYcMpdf3ZGurr/U9GTi9GwFv1cdCragdWlHiZqZGz?=
 =?us-ascii?Q?KoC6z4yif1T5D4g32WIdnz9HT+en9cIVGZXHkvl7WmyIb4U9GbBwSFR5Q4Go?=
 =?us-ascii?Q?FDb0vKoXoWSjEgNA0XWUqxRqMJEO9b1NbjIH6g8WgK06i1TFfCnxIeyzrr3y?=
 =?us-ascii?Q?16GViuX0RTrGbPrXY9mWRcuwg7g5H+ln/0Vsn7SzJEMb4X3VLjI80d227gZM?=
 =?us-ascii?Q?Ierq32HbWcgbxd31L1zEhEqSwjx5c1v0Rrno+1UHGdohn5Wu5KHuqjJRsNcp?=
 =?us-ascii?Q?lLRiAf9gIY/QOlXR4vpq3/eeZx/ll2p/50GgLueHcSt117OjCVx38otA+gdL?=
 =?us-ascii?Q?ZCSc6/QoThE42TnHymclJ47Kb8VZT64y75G3O++n4o98y4DW1M67QNrsOSJP?=
 =?us-ascii?Q?VHtrx7IW2SgRdHJCbNFl3VsR1pONfzUsq6yoU4jTMSmwqhNTyTYOKPwyt5eu?=
 =?us-ascii?Q?fL00YkpL2/sGT18vm9767MZZ7Mnd1PO4MR+459G8QKMX5KzuQmTQd+dysZds?=
 =?us-ascii?Q?Oz+bWjC6NEdHWNx6b4OuqiR2qebDxW1xTPRk1ZcDMTSwMTjXOWTVHP28ERb+?=
 =?us-ascii?Q?VLf35tjKTL4Kpha5t0M75s9aXrQtL+why2CQxy8Otm8FyvgKTo3RJUhnqWkk?=
 =?us-ascii?Q?xIyc2ZVCxl6TFSB7OZ8bsJlLFC6XgNZE11SCoS+ctcn8RmzoQG/1tia8WXwP?=
 =?us-ascii?Q?XsxDcvkCXJCpR8cdjMY0CuRz5OyOi28WpixdXpi53Jee+z0hJoh1vDUqZTpO?=
 =?us-ascii?Q?VNHg9kdYonPgFZaveTpASrexMM2HzffqvaK/e/gH3VvX1Q7XsfQgYBV/mWg0?=
 =?us-ascii?Q?wG83fhWV8/5RuRlLhMhE09kV8m3v3DFXtti2Q2ptD5T+5YKlrRpCOMw6nBTG?=
 =?us-ascii?Q?IlUbpPL5SInPY0aXHPPiHhtIFMGbMiw1xd3f4pDBnf8jwV5C?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 297e2c95-40d4-40a6-aa6c-08deb5bab7c3
X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB6839.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 15:24:28.6377
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: MAk4bXmuVNNMLKXhzZ/d9kKt8wTjJX7eVf9iCRfWmQOWCKHNmTDHWoE4oHGUkoW/
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8741
X-purgate-ID: tlsNG-16d1c6/1779204276-8E38FD75-99C6F12A/0/0
X-purgate-type: clean
X-purgate-size: 2748

On Tue, May 19, 2026 at 08:40:54AM +0200, Jan Beulich wrote:
> On 19.05.2026 01:43, Edgar E. Iglesias wrote:
> > The generic Xen strrchr() implementation returns a pointer to the string
> > terminator when searching for '\0', matching the standard C semantics.
> > 
> > The ARM64 assembly version stopped as soon as it loaded the terminator and
> > returned the previous match pointer instead.  This made strrchr("", '\0')
> > return NULL.
> 
> I wonder though: Why would one pass '\0' to strrchr()? If you want to find
> the end of a string, more efficient (at least in the general case) options
> exist (strchr(), memchr(), strlen()).

Right, this came from a fuzzer checking standard strrchr() behavior, not
from an explicit end-of-string use case.

I agree strlen() or strchr(s, '\0') would be better for that, but
strrchr(s, '\0') is valid input, so we should handle it to avoid
surprises for existing or future callers.


> 
> > Compare the loaded byte against the requested character before deciding
> > whether to stop at the terminator, so the terminator itself can be returned
> > when it is the requested character.
> 
> Nit: "..., so a pointer to the terminator ...".

Updated, thanks.


> 
> > Fixes: 42c4eb6a83 ("xen: arm64: assembly optimised mem* and str*")
> > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> However, the function having come from Linux, imo the patch wants to go to
> Linux (ideally first, but at the very least also).

Yes, sounds good.


> 
> Additionally, looking at strchr() - couldn't the code here be written in a
> similar way, allowing to get away with just a single branch? (Arm32's pair
> of functions is also pretty similar in this regard.)

Hm, good point. I had a closer look and came up with a couple of options
that look better. This one is not quite the same shape as strchr(), but it
eliminates one branch and shortens the inner loop from 5 to 4 insns...

FUNC(strrchr)
	mov	x3, #0		/* Last match, or NULL */
	sub	x0, x0, #1	/* For the pre-indexed load */
	and	w1, w1, #0xff
1:	ldrb	w2, [x0, #1]!	/* Load next byte */
	cmp	w2, w1
	csel	x3, x0, x3, eq	/* Remember match */
	cbnz	w2, 1b		/* Keep going until NUL */
	mov	x0, x3
	ret
END(strrchr)

Cheers,
Edgar

> 
> Jan
> 
> > --- a/xen/arch/arm/arm64/lib/strrchr.S
> > +++ b/xen/arch/arm/arm64/lib/strrchr.S
> > @@ -30,11 +30,10 @@ FUNC(strrchr)
> >  	mov	x3, #0
> >  	and	w1, w1, #0xff
> >  1:	ldrb	w2, [x0], #1
> > -	cbz	w2, 2f
> >  	cmp	w2, w1
> > -	b.ne	1b
> > +	b.ne	2f
> >  	sub	x3, x0, #1
> > -	b	1b
> > -2:	mov	x0, x3
> > +2:	cbnz	w2, 1b
> > +	mov	x0, x3
> >  	ret
> >  END(strrchr)
> 


From xen-devel-bounces@lists.xenproject.org Tue May 19 15:28:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 15:28:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313164.1583387 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPMN2-0006N9-B9; Tue, 19 May 2026 15:28:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313164.1583387; Tue, 19 May 2026 15:28:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPMN2-0006N2-87; Tue, 19 May 2026 15:28:36 +0000
Received: by outflank-mailman (input) for mailman id 1313164;
 Tue, 19 May 2026 15:28:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Edgar.Iglesias@amd.com>) id 1wPMN1-0006Mw-GL
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:28:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPMN0-0013Vn-Bq
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 17:28:34 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Edgar.Iglesias@amd.com>)
 id 6a0c819f-e002-0a2a0a5209dd-0a2a4503d486-8
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 17:28:34 +0200
Received: from [52.101.43.2]
 (helo=SJ2PR03CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Edgar.Iglesias@amd.com>)
 id 6a0c81a0-672d-0a2a45030019-34652b02ca67-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 17:28:33 +0200
Received: from SN7PR12MB6839.namprd12.prod.outlook.com (2603:10b6:806:265::21)
 by IA0PR12MB8205.namprd12.prod.outlook.com (2603:10b6:208:400::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Tue, 19 May
 2026 15:28:25 +0000
Received: from SN7PR12MB6839.namprd12.prod.outlook.com
 ([fe80::ae79:f50b:b7a6:4cd8]) by SN7PR12MB6839.namprd12.prod.outlook.com
 ([fe80::ae79:f50b:b7a6:4cd8%5]) with mapi id 15.21.0025.016; Tue, 19 May 2026
 15:28:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MV03DHUdzvs0GnxqS4AXJx2sXPMeVh2+IlkReacGVyMvEwc3Ae/hR5F1cVEHROO/+dGYR8NIyi8SCYFh1LJPxY0ZjscthC5GIdTy4OQsWi5D6ikoyyXMj7h8wpYF2whCtXxuAP+wjG3NWz5ulbxZyOIKIMA/gQf2pQGRZiQUoDPVeG4tte7hGpWAoUrGfIkai0AE7hHlnPI0KtjcOe96Gef4ton+hyMkS8+04A6y4EhS3aLGrp0JqS68GHaq3g0OO1zU2QTtnccIpSdbBvRlHf+UnxbFKS1c3F1oB0AVX7OnKiV3uV5ImvFlCG86eiSu0Zh1X4QCWocPWoTf0aFMsA==
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=HLxL1355H4oAxjE+x6aGUjZQyn+L6Reedm8G67kkc8I=;
 b=E+VgaPJGDdIcipm8w8vYKjp4q6yMLcqXTyOP/0cJ6qlJyPyrj1NUhiY+cQ3ktLAb7NT2EXXXNR3RY4l02eTCpouVw6B7AEqY8757XYf6YMmVMAbvgkPWhNJBTtAa7NEaYf46u9jyM3TSFh3Cx29GVcReoShy/cWDWVMlPFEu1stJ3/5COavgALtO/d1XxtHvJj+En04oXJVSoFoKsgv+WBRV3joVphe8wRD97+wnxLbNlKt6dA36Sno3IxlUwVLBQSuh+nZL7lIl7iyuMFMhhNu0G/CaL9QtdKk9kjSevIUVwmca4jff35eZAPmLwM3EOzfSKlF/Sk4BH4ncrZmwPA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HLxL1355H4oAxjE+x6aGUjZQyn+L6Reedm8G67kkc8I=;
 b=pauqsv+y4QDMCTPrk2xkerXMO11M6GtbaMyvOG2uV80qBNBtDN00coCfhAie19A7pEsB/FkQ7K07p9qh/KnMOv8IcrR0bw5BSRo4/K+K6x4+YtOHVktgjTzv5qtjbmPLcYKKFkEBC7tKHYGix930do2oK53hvyAvz4tzjxZ1Q1Q=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Date: Tue, 19 May 2026 17:28:20 +0200
From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
To: Julien Grall <julien@xen.org>
Cc: Jan Beulich <jbeulich@suse.com>, sstabellini@kernel.org,
	bertrand.marquis@arm.com, michal.orzel@amd.com,
	Volodymyr_Babchuk@epam.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 1/1] arm64: Fix strrchr() matching of null terminator
Message-ID: <agyBlAsqtVEv5c38@zapote>
References: <20260518234353.453193-1-edgar.iglesias@amd.com>
 <20260518234353.453193-2-edgar.iglesias@amd.com>
 <9b8ec97f-02ae-4a1a-9abe-59873d574a64@suse.com>
 <3d1001c8-6761-41ba-83df-42c83a453f3e@xen.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3d1001c8-6761-41ba-83df-42c83a453f3e@xen.org>
User-Agent: Mutt/2.2.14+84 (2efcabc4) (2026-01-25)
X-ClientProxiedBy: CPCP307CA0004.DNKP307.PROD.OUTLOOK.COM (2603:10a6:380::17)
 To SN7PR12MB6839.namprd12.prod.outlook.com (2603:10b6:806:265::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN7PR12MB6839:EE_|IA0PR12MB8205:EE_
X-MS-Office365-Filtering-Correlation-Id: f67f9c87-520c-45e5-5378-08deb5bb43f0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|3023799003|4143699003|22082099003|56012099003|18002099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	yueoleGg9KSq15ln/FGRgLaYwz9ApaGeGNI7DNgDxx8LuU+ujkQiXiwSgDBaJrIjMcc2DsF/YvmA8D68RUbrER8AwocPMqFZgf3ec7GgL1+JWUa3XHNDdRpcsmGpgYGbQcTwdDy9MFDFgq5qcTHiNtXqRYYNf4hfWljcQNOF9a30lYVmlPM01iL4x29jIuV7vL1fL0H3rLL/23D+XgTDFfcgt1hJLEjtsjIb/z5165YkI9/VgzSXEoR2C0gZK+Yh+tO6wlku8qftM69wYTYv6RE4fioJcz2MVV4uGO1zyuY9DslwPjkN+fsuGTTeJN+ImgSa7u/CjWEQdE3n9KkQoPmsJbxfDDiX7CAwRi6bYN66OL3BPCoA5OX17RMLd5yslbx1kSpUwtMVMmNNWUjlff5Z7Suvir+GQNFmbWTeME5Gb/9+g//UE0rfjSYVez9zvU0k1BFn9bwWAOO8VpTjRu+e6NThz+JwXasjHAb9XdJnITQFRNGusU9JZol2SNxEtef+MqW+u3+cRNcGT2erZ8nYQiKIOPiPcPMMomLxFTGOf5PYCLosDDbd2f4GYj0jnDCrF0GcXw7tkGkthOepbMmm7Pw0/xon4KuG71Fg7tBc0sIGRMCtrB1zgApLrv3pshg6kSacC4cyoRvyApZC9y11i9J7l+HE1Atc8QweSlYuTlFrtbUuieRxnjNPJEPv
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB6839.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(3023799003)(4143699003)(22082099003)(56012099003)(18002099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?PHVaY1qJLDGae23Sz+Z+g/asK5pATlVMZ9iXXHUsT/F0UH55T00hLlxeN8W+?=
 =?us-ascii?Q?ta3uW+mWSSBAZVRLhgxa0lJhQhjuh2VKcyNN9+Gf46jdbTMhFVJh0/epspL6?=
 =?us-ascii?Q?Sra/9eVpymGAGv5bJFWBjHpt2HxuXdVoKK6GhWSO4Giabm/8IXO9PbbpTcYR?=
 =?us-ascii?Q?yL9AAHi/z37w/1e5Cq2oNl0YyqH4eNTYUU0/CkYd6E/UtUqFG/hjH8Ynd0Vv?=
 =?us-ascii?Q?InDL6CLKH7RUtCvXbwc+dTR7cGU8WKjEydk3MxsRg7QvL7AgRDEBREcxTHdg?=
 =?us-ascii?Q?xjtOwH52aS0UL/GzlLU/wAqAgym6imDmWwEo7msQO4A7yQTd5U1S14PUi4MI?=
 =?us-ascii?Q?0FkBKGkm2ygTxgrcAcb6uWf0vyvzCLokPvV1XzNiBY4vJrMVCeBV6G/lKHyC?=
 =?us-ascii?Q?x/G/rAOp2wHVHsNqh71lwcdusWgaobVw5mxjBOwvpxNxmlh8AntAiStYuIN8?=
 =?us-ascii?Q?W5AMj6mGPLmH6VuSIpIKDqhpFE+wZaTYtTYHR8WcORZfRDVPevbz6ujczVvv?=
 =?us-ascii?Q?IdpLMXpk+em9nFDOjq1C3asX4xtOVkjQMe0viNAkyfkyVkl+jscEpUU1LDu7?=
 =?us-ascii?Q?PZlPUrWleWAj1BBaRP+2ttEHV6xFR0r7j935HGle8FicqiBmzFlfQuxWcVNs?=
 =?us-ascii?Q?5h7v7ToAZrDokLi47+C2zHWPmoK/M6DlcQBZYzjdWxdXyfOZO0Y124gnrmuP?=
 =?us-ascii?Q?u3Tbg67jlAKX3abkYkDfTKlc/ZZaIE8GRmYnBlQMNlzmtEbJ7OStKG7OHqvI?=
 =?us-ascii?Q?VLZynlOfaAlAIZxGWBxzqkXsO0TBMz7fs10bQZtJ/UxKlk52PcFTzeySdFu/?=
 =?us-ascii?Q?QgyNy/KVTwNzukRCd6Bu5YkYFBbT92l7ZB47+u6jEaOnJNKeSwtSiQd2jXce?=
 =?us-ascii?Q?EsiDfgn4gAM4SiSabfavAkuIG2OeQSW3Sn7Qw58Jc1TJ6S2RzTxI4OAAPN+X?=
 =?us-ascii?Q?fQ4gcWlWFLrBsF8qnv1vYagP2x9nSDKPizdAsPppuTbWHYewT61SPFpnPRKK?=
 =?us-ascii?Q?fNJHSeRupyPMQlzgNZHXu8DAvxnMhaAcwNWtFGJ+N5rZnwBjJjidMRSLqrqP?=
 =?us-ascii?Q?w8uJuB3yPeMfK0Ng3rSpovjRY8cQCLQc2wir0cxnCBXpJjbxgYd8XnxsWXsA?=
 =?us-ascii?Q?qsPdEDtT30jYlrnYkyXFfp2j/kgQpgZZYmZgS6fWgGTZVv0qtqK7ItLzigAf?=
 =?us-ascii?Q?RhIkE+1RzCtOprYuarjO4GZzW94B7OJptpsxrIUNjsBKTJ3LqilBltUhzym5?=
 =?us-ascii?Q?ETXyM36+iSDSh04mqMyAT98xHSa24ns/g91zQaLwvrqZSQOVEEUL/U92ChjV?=
 =?us-ascii?Q?GrGrjPyMwrEhIwHaND3ZP9azOyJh4dPq0+IdbqS829Yf8cYvemcPOe3N53SJ?=
 =?us-ascii?Q?Eo3EgLNvoOYYEm9dWRSTScCAq8+g3RocneNBbmgoF0xh5Y2DoEEjoWMqj+T1?=
 =?us-ascii?Q?RSURZhDDXziWNUabu+ATxrXhwe4DSgrgcZgW3IJJ6EVR8X0NHhipJbjEUkRi?=
 =?us-ascii?Q?p+U2k4gKaQupt04qG4hDfk3WGYvKGaeJBbWvfAGntMHfXW/yyAEHCb+8Ixmq?=
 =?us-ascii?Q?dIR7cHg7Da5cTnTamBvC2S0oEgvu7GeLq/NFzUAsA7E6c+91Gm/9tQiFTCMi?=
 =?us-ascii?Q?lfQInDWngONqOSCHgEqS4Ji3yeQOjjA1iiLcv2bs9JB3CsU8sgR2LJUAeGaQ?=
 =?us-ascii?Q?M7whSb3BxTEdW+nUxoSPOOX5uTPYk87hU4/003xos2Bc6gv4?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f67f9c87-520c-45e5-5378-08deb5bb43f0
X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB6839.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 15:28:23.7600
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: zOxuofKU5Q3D+zdTc1bMiGqtAzFlOV/hXn0rec08Qq5Zo9iqglaP2oW/AEqb1u7S
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8205
X-purgate-ID: tlsNG-33051d/1779204514-3B360938-F3B59085/0/0
X-purgate-type: clean
X-purgate-size: 1856

On Tue, May 19, 2026 at 08:47:17AM +0100, Julien Grall wrote:
> Hi Edgar and Jan,
> 
> On 19/05/2026 07:40, Jan Beulich wrote:
> > On 19.05.2026 01:43, Edgar E. Iglesias wrote:
> > > The generic Xen strrchr() implementation returns a pointer to the string
> > > terminator when searching for '\0', matching the standard C semantics.
> >>>> The ARM64 assembly version stopped as soon as it loaded the terminator
> and
> > > returned the previous match pointer instead.  This made strrchr("", '\0')
> > > return NULL.
> > 
> > I wonder though: Why would one pass '\0' to strrchr()? If you want to find
> > the end of a string, more efficient (at least in the general case) options
> > exist (strchr(), memchr(), strlen()).
> 
> +1 I am interested to know the use-case for this change. Is this for
> compliance or real issue? If the latter, can we add some details.
> 
> It might also be worth to write a selftest to avoid any regression (in
> particular if we decide to diverge from Linux).
> 
> > 
> > > Compare the loaded byte against the requested character before deciding
> > > whether to stop at the terminator, so the terminator itself can be returned
> > > when it is the requested character.
> > 
> > Nit: "..., so a pointer to the terminator ...".
> > 
> > > Fixes: 42c4eb6a83 ("xen: arm64: assembly optimised mem* and str*")
> > > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> > 
> > Reviewed-by: Jan Beulich <jbeulich@suse.com>
> > 
> > However, the function having come from Linux, imo the patch wants to go to
> > Linux (ideally first, but at the very least also).
> 
> We are trying to keep the core implementation in lib the same as linux (see
> arch/arm/README.LinuxPrimitives). I would prefer if this is also first
> committed to Linux and then backported.
>

Sounds good, thanks!



From xen-devel-bounces@lists.xenproject.org Tue May 19 15:38:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 15:38:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313175.1583396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPMWz-00083Y-C5; Tue, 19 May 2026 15:38:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313175.1583396; Tue, 19 May 2026 15:38:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPMWz-00083R-8d; Tue, 19 May 2026 15:38:53 +0000
Received: by outflank-mailman (input) for mailman id 1313175;
 Tue, 19 May 2026 15:38:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e40e3b9da000f373@swg.vates.tech>)
 id 1wPMWx-00083L-Fr
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:38:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPMWw-00CnNk-Hi
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 17:38:50 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e40e3b9da000f373@swg.vates.tech>)
 id 6a0c83fe-e002-0a2a0a5209dd-0a2a4508951c-38
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 17:38:50 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e40e3b9da000f373@swg.vates.tech>)
 id 6a0c840a-63b5-0a2a45080019-b9ff1c22846b-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 17:38:50 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e40e3b9da000f373.007 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 19 May 2026 15:38:46 +0000
Received: from leducb (182.136.141.83.rev.sfr.net [83.141.136.182])
 (Authenticated sender: baptiste.le-duc)
 by mail2.vates.fr (Postfix) with ESMTPSA id C84E686593;
 Tue, 19 May 2026 17:38:45 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=GYnp417w01Lf1CsqXNPWxHt3d4VocunnjUOFZTvihpY=;
 h=from:subject:date:message-id:to:cc:mime-version:content-transfer-encoding:feedback-id;
 b=Ev98y5Ck6RenwwtA5F0kV+hZ0T1tSoqhmV1DtQY5jdG4pkMtiVfS2k/p5280kUPnidcklqc6D
 SwCf0P0gK1rHQdHc5tEuwjPibDDOSM2Vku2qjOnuve0nUNotcG1QP7C5FGi9xE0GwTNTkRbGxuy
 0dDA9E3L16QGfmr2JBXKwzIQboQrzgX44dCgwF+Sfd1YFZwTsODgMLjnA4btiGEqFuhG2KxdKr1
 w3+Dju8cgAT1h9vowJtCR5AYTL1J8MPy6a/y9x9MnnwyoXV20pVreRrM3OmwKRk0zlg7Crj+m/P
 sVFWfwaTsyFpNVqalmy0r2MK3YMWOU9KAwxVA29/eGXg==
X-Zone-Loop: 637d2fec0ac3e3a6bddd82822c2ae1953e1d0d6565a9
x-campaign-type: default
x-transaction-id: 4d6c4308-c795-4aed-87af-041b82dbfe6f
x-swg-uid: 01-5e184eab-63d2-49f0-88d6-e5206b7982e5
X-Mailer: Sweego
Message-ID:
 <1779205126.8631fc262581453bbf619ec5b2062170.19e40e3b9da000f373@vates.tech>
x-swg-bid: 1779205126.8631fc262581453bbf619ec5b2062170.19e40e3b9da000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Baptiste Le Duc <baptiste.le-duc@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/riscv: fix sstc init to write vstimecmp instead of stimecmp
Date: Tue, 19 May 2026 17:38:22 +0200
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779205126043
X-purgate-ID: tlsNG-c1860d/1779205130-C4C79DB1-6BDECA2D/0/0
X-purgate-type: clean
X-purgate-size: 1147

Commit <25e03273069036f5b46e14bbdf396ac79805d07e> mistakenly wrote to
CSR_STIMECMP during sstc initialization instead of CSR_VSTIMECMP.

CSR_VSTIMECMP is the VS-level timer comparator: the hardware fires a
VS-timer interrupt whenever (time + htimedelta) >= vstimecmp. Writing
to CSR_STIMECMP leaves CSR_VSTIMECMP uninitialized, so its reset value
may immediately satisfy this condition, generating spurious VS-timer
interrupts before any guest has programmed the timer.

Fix this by writing the ULONG_MAX value to CSR_VSTIMECMP as intended.

Signed-off-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
---
 xen/arch/riscv/time.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
index 8769709e52..10b7e35f13 100644
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -101,6 +101,6 @@ void __init preinit_xen_time(void)
          * Thereby to avoid spurious VS-timer irqs set vstimecmp CSR to
          * ULONG_MAX.
          */
-        csr_write64(CSR_STIMECMP, ULONG_MAX);
+        csr_write64(CSR_VSTIMECMP, ULONG_MAX);
     }
 }
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 19 15:53:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 15:53:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313188.1583405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPMlF-0002qZ-JZ; Tue, 19 May 2026 15:53:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313188.1583405; Tue, 19 May 2026 15:53:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPMlF-0002qS-Fh; Tue, 19 May 2026 15:53:37 +0000
Received: by outflank-mailman (input) for mailman id 1313188;
 Tue, 19 May 2026 15:53:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPMlE-0002qM-3z
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:53:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPMlD-0017HD-GS
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 17:53:35 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c875d-e002-0a2a0a5209dd-0a2a4506a894-38
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 17:53:35 +0200
Received: from [209.85.218.41] (helo=mail-ej1-f41.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c877e-7371-0a2a45060019-d155da29cc18-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 17:53:34 +0200
Received: by mail-ej1-f41.google.com with SMTP id
 a640c23a62f3a-bcceb394417so471497766b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 08:53:34 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4c313f7sm729557766b.21.2026.05.19.08.53.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 08:53:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779206014; x=1779810814; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=O4t1N0bCYhUC+V/br1cS6UwR+9JOwBLqjrWKwvA/ysg=;
        b=Bsac+DFYj7UGWWH+sj+SuK+/+lUri1haWfrPzATn62GuTT2FLtN7EwBx4J0UPcY3Fc
         j3oVLFHlU6LrKUIXiPNoD2s8dR7q3ZDrBnG85eVdGvuuPVrTLvnFCpssII8jfiChySjA
         qwJgVO4dDTnzI/a1rFSFhyCRBOIKKtduHERWwEGYaAPizch1cwgHpn5TaAljAespeMBo
         xoNGtNUu9xb2wMrdZYmmU+SpdE7XRrKFNqqvLq/aawSfjk7s9EKcG5ib8qa67e8mbi6X
         qdCIYUyYp8nMW2edkgspS5gvEQ9PYuAKtXqna8mRsWXaSdLVUQV9IH6mHOo6fIcsXAum
         DVJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779206014; x=1779810814;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=O4t1N0bCYhUC+V/br1cS6UwR+9JOwBLqjrWKwvA/ysg=;
        b=JBXPta1kTMOtJZKVY1a0kDbeLM4ktgFWXz13a5mClAVT+S17L1Ip9FrkLVN6tpqq0F
         nJeT7/cqC3BfyW4stSfHT98yfUf9wD4WgsP75ZboZaEIN4NTl9UQ7p8szIZ5i7EJ2M5n
         DAh3GNTJ8BUkmBrFUg0wQDOOl4t1dBjIM8meFLM4xllW2MOCDoEW8ikvKoUdKXKOvVaP
         a+GKESrYFcuT+IgMkrtF51vZs+k4pfQ6nOZcmYZOI/r85D0vTxhCh9J7JegjYE3YGtyU
         1aC+HCWim4hHLPYsJewiyXK3Mh2HE424O1utFtOVCie9x6GyJHru9K0r82yMyM9XBIWg
         DXyw==
X-Forwarded-Encrypted: i=1; AFNElJ9J4H6yltrHru4TcAhQfE32ki47cMry7YSZwecAiD19PWGGdSms1IyDvJsNBLpCwOj3JXVgT2gLh54=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyQW6XLQETCTB1Sm53SphXx37hddhHvxx5bYVznMFNR/4Lq1rcJ
	0E6Ssr3jEjf/+jwL309QcOLgXmjmwGcA2HKDNp9/5wYecHWFDUSXLRTtmDwPKQ==
X-Gm-Gg: Acq92OEfCUC1fGwy9YTfBrNX3lMvMx8XoW3ZBs7rnuThygXKemEL5ByhClMiXXL/QXQ
	D9zL57bD7aZ3AVRHJ+peXXHAiJwE2EXvL04nvQmkxTNllK3LakRO5VOsWAExVocAfsBgJsqRob5
	5kmcTePqOjKiaBj5OlLtMJGZif9ks2iJzbdvi3KPd8MjUHMucyPHFld2m3IvwxqECLvsgpqQ+nQ
	8S+4DG7uinEN9rgrOiy6QI+areWmbYUTV/OjnZoY8fJiyxbeXgnvYC1IjKwCT138HzmUHxIVz+D
	tqG/VgTm48VGr4HHLfRny9y295FznTwzL3f5Mhvq2A0FnJIREEbo99rU/PrwaUKRN98VMInbuwW
	9ChcA88q3XJNzrhre2cDAtDiL96JW5fd7b/M5KLK7lCh+a+ZDyYK2d4IxPqgSgUDjfqxUgB2orS
	I3SQbSQUZL7RbEVYLW5GBcZ1gpbD9lLKoDtIDw3l31C6rUbU/qbA0keOjif57fGxRQh+PDWgtON
	wU=
X-Received: by 2002:a17:907:c248:b0:ba1:1181:b773 with SMTP id a640c23a62f3a-bd5177ee49dmr1237133666b.10.1779206013803;
        Tue, 19 May 2026 08:53:33 -0700 (PDT)
Message-ID: <fb53cadf-1913-4902-91c5-22a9f59c20f9@gmail.com>
Date: Tue, 19 May 2026 17:53:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/riscv: fix sstc init to write vstimecmp instead of
 stimecmp
To: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <1779205126.8631fc262581453bbf619ec5b2062170.19e40e3b9da000f373@vates.tech>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <1779205126.8631fc262581453bbf619ec5b2062170.19e40e3b9da000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1779206014-87F7BD75-96947F5B/10/73395122804
X-purgate-type: spam
X-purgate-size: 1795



On 5/19/26 5:38 PM, Baptiste Le Duc wrote:
> Commit <25e03273069036f5b46e14bbdf396ac79805d07e> mistakenly wrote to
> CSR_STIMECMP during sstc initialization instead of CSR_VSTIMECMP.

It doesn't too much sense to write this as ...
> 
> CSR_VSTIMECMP is the VS-level timer comparator: the hardware fires a
> VS-timer interrupt whenever (time + htimedelta) >= vstimecmp. Writing
> to CSR_STIMECMP leaves CSR_VSTIMECMP uninitialized, so its reset value
> may immediately satisfy this condition, generating spurious VS-timer
> interrupts before any guest has programmed the timer.

It could be just "According to the comment above initializing of 
CSR_STIMECMP CSR_VSTIMECMP should be used instead of CSR_STIMECMP" or 
something like that as what is mentioned here is mentioned in the 
comment above csr_write64(CSR_STIMECMP, ULONG_MAX).

> 
> Fix this by writing the ULONG_MAX value to CSR_VSTIMECMP as intended.
> 
With what I mentioned above this could be dropped.

... it should be here:
   Fixes: 25e0327306903 ("xen/riscv: allow Xen to use SSTC while hiding 
it from guests").

> Signed-off-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
> ---
>   xen/arch/riscv/time.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
> index 8769709e52..10b7e35f13 100644
> --- a/xen/arch/riscv/time.c
> +++ b/xen/arch/riscv/time.c
> @@ -101,6 +101,6 @@ void __init preinit_xen_time(void)
>            * Thereby to avoid spurious VS-timer irqs set vstimecmp CSR to
>            * ULONG_MAX.
>            */
> -        csr_write64(CSR_STIMECMP, ULONG_MAX);
> +        csr_write64(CSR_VSTIMECMP, ULONG_MAX);
>       }
>   }

The change itself looks good to me.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue May 19 15:53:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 15:53:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313190.1583414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPMlS-00037D-Pr; Tue, 19 May 2026 15:53:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313190.1583414; Tue, 19 May 2026 15:53:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPMlS-000374-Mj; Tue, 19 May 2026 15:53:50 +0000
Received: by outflank-mailman (input) for mailman id 1313190;
 Tue, 19 May 2026 15:53:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wPMlR-000367-5Y
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:53:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPMlQ-00DGIv-Fq
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 17:53:48 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c8766-5cb7-0a2a0a5109dd-0a2a4508ebdc-42
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 17:53:48 +0200
Received: from [52.101.43.32]
 (helo=SJ2PR03CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c878a-63b5-0a2a45080019-34652b202a60-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 17:53:48 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH4PR03MB7673.namprd03.prod.outlook.com (2603:10b6:610:247::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.22; Tue, 19 May
 2026 15:53:44 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Tue, 19 May 2026
 15:53:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=x3MJRN8Y8c1TWDOrl+RC1tdi8uUVhQyR9klJoU1dDkzCz/JVuYGMRLdxTnDyU+nN81INhkKBZm7dRfcVxO4LCpXo9o34+ABmxUWnOfWbLWjMlHTVhK/NZX+hsaXp904PuQ8ch1jhZWehRWjBRkmB+V980XsOcgHFKIgk8EX1+e5bLm+OZakn3DnMFR33FVJxl77aMcCCwLFV2hF7Jk9nldtltT+eSYgnAUhCYKAxitmiakvSZRYYEFtrFaZvVcz7zA8K3p/oJ9i0OmFn7tjjh2Vatvn4UtJCffs+kXC+0CRK+mf5GriXCJnTwuzmM0E8t6ZT0/3y6ghPpeoYT1P13g==
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=h4PZTOmsO5x5XwKjCIaXiL8ujxE4l9QH+29g6PyH2RQ=;
 b=om998C6BKO/ZHVt7Cir8iQLjoR+QToZCPGgMvIe0PN0ZkSq95eBWP0kn5UKwwn3KMJysZEUJxtFANCvPqT0PXw9gDVZ9PLyOKiMRSqfDiTJ2KfcBPIOSUBYznlCGyoPYEaVJSF1eCsvznW4Dgx6UNUabifv1ytYHBWTA7l0Y6t1xU2/yaT8/SS46qDlcbGT+fIr42TGLWm1P3eC9wMqIDsQU0q9JS/ytcGJLz3qoh7p2BQ/6BFlE0K0clx2iaOi+3uyj5ONLKtODd/KSeGOn8t3Sae8ejU4kN3JgOlsU0Bu749f0zH43Oug89HApkQSCLLkvIKEeTdrfmJBTpxAcug==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=h4PZTOmsO5x5XwKjCIaXiL8ujxE4l9QH+29g6PyH2RQ=;
 b=yL5mMVeMmudUWBaHa1XxBWsRbSNRLO8A3gsI0ieFrq8rtogGYV/xglFd76yY5ltqsxREuJj/5xALgqXzTIeaPUSUZYS3tGsE+Vp99DOupRYNFyzb68itGDHl0PLUV1SYJWCWp/3Js9EbSl8jJJG0x5RJMbLJ4A4XqPYKeeHrHX4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <fb523146-feca-49b8-b578-8f2f76011937@citrix.com>
Date: Tue, 19 May 2026 16:53:39 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] xen/riscv: fix sstc init to write vstimecmp instead of
 stimecmp
To: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 xen-devel@lists.xenproject.org
References: <1779205126.8631fc262581453bbf619ec5b2062170.19e40e3b9da000f373@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1779205126.8631fc262581453bbf619ec5b2062170.19e40e3b9da000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0536.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:2c5::16) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH4PR03MB7673:EE_
X-MS-Office365-Filtering-Correlation-Id: 27248d4d-bfd7-4bd5-d688-08deb5bece18
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|1800799024|366016|22082099003|18002099003|56012099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	r7P+NzRpus1cLjH7hyBl3YG+wqoSNxuz3rvqwd5mW2KxciCmxNsHGSdsQtn6V511d0bIq7mkW5IQIkvIe66OLCDU5Merd5wVrw5sCrNj7JE0+Z1Tn7gecUWHDgiAbVDonm1HDN27JFy/s4Js8aZALDjsZQnizGLY1sw7mgmxSsuTNN3AnE+JkxaTmHSGrVykZ2v8Xz0lmOBluNwSoaqmI5igHVFHENun1tmoViiWJ/jzHQn12198/OQ3VQVuezhgBNAs/N2AgeBCbluOGc3bKegNUQHSoqz7uNiJ9wHb44nbhnREy0DxcLLGItwLf7sa59Z8HaWJevPbKjiqHinq0nghmlYnRtrSPfRXuBUQewZlnAP+LXzvUbL0tSdtxfNTqEbemG0HLEjWv0tcfwzJ9dhTEq+iPqO5NKLWPtxWoJFNmyevwXthaIlNogDoPrDkUpR7GKR/ang4+LemZYBXzhBSPjpy+XnbPMN1geq0X/elTHt1LmYKPf9kXbSMXOrW3tV2trMYkwmj9qk6ThRa5A7V1icSyaDQutpWuJc3K3kUvX7uI8D9n4VTS5ax3mHOzAIvFLhPIV/mJKoWwG97xZMyvLQHQjbnMPLa2Y4K6UwDhdk9Wj2tnFjGrn5PhIP24iUnX1aiAnWHNSq8dUSuuEXyJWfzLDVI1gikFSe0U8DZccdq1vP3RozmTNCjltRC
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(22082099003)(18002099003)(56012099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bHpyaDI4QW1oVUJla1FremUwMDZ4UmdHcXJrSXlFT0t3NmJqM3VNdUFabTU2?=
 =?utf-8?B?Y2o0cjN6NXg3d21HSGFrdk1HS1d0aWwwaWVFKzFNUU4yZVhlWmVzL2lGeUkr?=
 =?utf-8?B?NElXS0N2ZFlHMlFIODJDRVA2M0tiRjZVVS8zZFZ5Slo0Y0tsdk1sNDJXMDZT?=
 =?utf-8?B?aHA3N1F2MkNkQ0drZ3VKZDBSOENIRmFibWhCZnZOZTBzeis2WXdHeXV2NVFE?=
 =?utf-8?B?NVdiNU1oN0hUcy9INENKNFlsdEJrRG1KaWlNdHNIQUhJZmd2WVYwb2s3dTFz?=
 =?utf-8?B?UU1DdFJmMjJUR3pDOE5maVAxbkVMY21Ha3hGT2ZLMFdQUnJsTkx4ZUE0aHZk?=
 =?utf-8?B?UFdxTW5SRjViekVDeEZ6cUJ2cmkxRisrcHRBMElPUkNIVnM5OEdFSW9kcTNj?=
 =?utf-8?B?b24wNTlmeGhXeHNHVTZJUmtYOHBmVGJPbTFsNTExb1dldERINlJEalVFeFh3?=
 =?utf-8?B?dVRyNFBHc2I1akdLNlNselhWaDJqaHFzeWtMNGVjUlUybEU3YzRvTUFlQVBi?=
 =?utf-8?B?cHl2L1BaZXVKZDlQUW5PVUVPNFVTSFFmM051MFAzQUhlN3N5b1l4dlFiWW1B?=
 =?utf-8?B?OEtvOE1abitXQytTUzRkVjRINnRZWU8ybVNVNDYwa1NNdHcwekZpOXNPUU5E?=
 =?utf-8?B?UVBnRDliVkd4YklzY0V5SFpQaFEyT2FCL3Vsbm9oRkRGMkZPMDRwQkxzZEtq?=
 =?utf-8?B?MGhyY0x0L2lGTm02T1NSVG5sL3ZpSHB6U2gxdlRkd29nTUNiY0k1WjVBT2I4?=
 =?utf-8?B?N2hGYmNINmtwL0laaytTTDQwSTFrMVdCc0U4YklhWTMrQk9rdTc2d1h4dHBq?=
 =?utf-8?B?dG52aWRwM0hUaEVBZ3pNZVFGcVhlUllmbCtLK1hYSGNkUFZnTWFYc3NVYyt0?=
 =?utf-8?B?MkJsc1h6NkhmSVdJcnFBUHpyRFE5ZGZqVXNVTTRTRVVqK1ZUa1FObFlZSEMv?=
 =?utf-8?B?Qm56U3dhREcrTlVIRGtpQTFQc3ZTR1NXOGxReTcyQm5TcDVEcTJDQ00wSkJM?=
 =?utf-8?B?N1ZFbG1VQW1ONTRBRHBlQ3gyTDJLdlpmRGRWSEFQcU5MQjVHaGt0U0szdFdO?=
 =?utf-8?B?NWgraVB4WGI2UDhIUVViVDRLM0dyNk1CZGNVMnJWQlE1VVRETEJZeksyRllU?=
 =?utf-8?B?R3JpWkl3RTFiWW02RGJ6NTJzY0MxeTF5QmhBK25Oa05hYUFoK2VtU2tKY0xU?=
 =?utf-8?B?d0RDV2FKeDJvZmhoRTFuTjVqSUhLZFUyZFdaKzI3ZWpWMUx4NzM5MEgraVBt?=
 =?utf-8?B?SnVmSEcwbDM5cWo3TVovVkNyNDVMZ0lrQVh4QXdEWUZiYjIyZUR1MnloVktI?=
 =?utf-8?B?VXVDaitEYkJoUEMzN3Y0Y3V5WnJibndvRVRoTDhoNS9sa2R3U2xvTXlrWmhS?=
 =?utf-8?B?WlkyWUVFVHZkdEg1aU1iRkhsN2JyQW9uYWRDNnd3clN1UnZuWjRZeEdDWHJQ?=
 =?utf-8?B?VDEwdWZlTHh5NzZBTU52ZHdyckRLYzF5RkI3ODlpeEZMSFVDaFBrdmx5Nyt2?=
 =?utf-8?B?KzdFZVVXWFhzTmpJUDVaR3NLeVc2OE1NV01VekdIM1g0c1c1ZFNCeVA3djBm?=
 =?utf-8?B?R0lheExEbFVLcmxuQUFxNVlOaGVkUXRhclY5SnFhS1BucGdLaWVZOVVoZGt3?=
 =?utf-8?B?Y09tRy92RmV1ZktQeGdLek1KZG53RERZYmRlM0FOQnFlZzdLUjJMVXBxNEZw?=
 =?utf-8?B?VTVtQ0V2dDViWnJ5ejhMMUdnTDQzSmdPNG1jRGR3Vk54RlZIdk91Z1hkd0tF?=
 =?utf-8?B?OS9BVVdyUzhPeUV6NHducStUMzhzQjhreFJrZjNEdUxuUkR5cnNraVV3cmd6?=
 =?utf-8?B?RUUycjhFRTlob1hObUtoeXdFY2pNZm1VTnhkUnNOLzJSRytBMVA1c0E3blQv?=
 =?utf-8?B?QSs5S1RrTnlTSnhWVCtqa2g0bDdPci8rdmNyL2NUbDZ0RGVEOTNnUHU2MVcy?=
 =?utf-8?B?S3A5Q1hySCtOTmJwTUFCWDI5OTFNYnRRR1lKNHYxNklENmNERFNwaWtSaldC?=
 =?utf-8?B?OTZwVG55aWY4NjVXMjdjTEFTREtlc3IxZFN3dVN0a2tuTGxuLzJEd0lnYi9a?=
 =?utf-8?B?MWpLUER2ZTBzM1NIV0dPTEgzMWRrVFlBcCs3alZoUm8rejFySWVldU1UWmFG?=
 =?utf-8?B?NWcxdUtLWnQ4NEhLLzNmRVp6QXQ2ejIvSy9GNERWSzA1d2lzNDFmSkVYREZx?=
 =?utf-8?B?U0Y0UGRuTllqdm95V2JWSXBuOTIzalc0Rk1URW1INU9vTnpIQ1dVcnlGUWMv?=
 =?utf-8?B?S2ZuRzZzNStkSzQwTGx0UDRKV0MvbG5oalUvV01PT0RDWkR2OTRCeCtXZmhD?=
 =?utf-8?B?STR5RnVCUm9FcHdyVmtLb3R0QkpabHhQT3FzUGt2Ry9JZVVEMmd2NElnN3BW?=
 =?utf-8?Q?EVdWZCoyycBmgzmU=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 27248d4d-bfd7-4bd5-d688-08deb5bece18
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 15:53:44.0251
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: TaM6xhnTpkc4TmAby4yc4drz7RM/KO5NZmtbgPHLgx57uUg7CC0ApAu9MBwJghOiNA5B7qxOo1uBPT54pnpkGI0xMf8x6mntGXeL1C15WFI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7673
X-purgate-ID: tlsNG-c1860d/1779206028-C5585DB1-929FA83A/0/0
X-purgate-type: clean
X-purgate-size: 1273

On 19/05/2026 4:38 pm, Baptiste Le Duc wrote:
> Commit <25e03273069036f5b46e14bbdf396ac79805d07e> mistakenly wrote to
> CSR_STIMECMP during sstc initialization instead of CSR_VSTIMECMP.

Thankyou for the patch.  We have a standard pattern for referring to
other commits.

For the referencing things in the main text, you want to write it as:

Commit 25e032730690 ("xen/riscv: allow Xen to use SSTC while hiding it
from guests") mistakenly ...

Specifically, git log --abbrev=12 --pretty=format:'commit %h ("%s") and
adjust the capitalisation as necessary.

> CSR_VSTIMECMP is the VS-level timer comparator: the hardware fires a
> VS-timer interrupt whenever (time + htimedelta) >= vstimecmp. Writing
> to CSR_STIMECMP leaves CSR_VSTIMECMP uninitialized, so its reset value
> may immediately satisfy this condition, generating spurious VS-timer
> interrupts before any guest has programmed the timer.
>
> Fix this by writing the ULONG_MAX value to CSR_VSTIMECMP as intended.

For bugfixes, we also have an explicit tag here just above you SoB

Fixes: 25e032730690 ("xen/riscv: allow Xen to use SSTC while hiding it
from guests")

This helps us identify patches for backport.

> Signed-off-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>




From xen-devel-bounces@lists.xenproject.org Tue May 19 15:56:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 15:56:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313202.1583422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPMoU-0003q3-7u; Tue, 19 May 2026 15:56:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313202.1583422; Tue, 19 May 2026 15:56:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPMoU-0003pw-5E; Tue, 19 May 2026 15:56:58 +0000
Received: by outflank-mailman (input) for mailman id 1313202;
 Tue, 19 May 2026 15:56:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPMoS-0003pq-UN
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:56:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPMoS-004f5R-6t
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 17:56:56 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c8845-2eae-0a2a0a5409dd-0a2a4507a8fe-6
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 17:56:56 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0c8847-229c-0a2a45070019-d155802bb0d6-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 17:56:55 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-49021532ebdso7673685e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 08:56:55 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48feaa2c96csm111547385e9.2.2026.05.19.08.56.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 08:56:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779206215; x=1779811015; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xObgkIv4v1Gk2dZyQaSVG5Agqt8ZF9d1ZOFCs2ReudM=;
        b=NQq2JmrqQiWvVTguhuUtbfVOFBYSwgFKh0ni7kR0cFBbL59YHls3dkDq3nM1qXE2EI
         nX6yL7DCXef3YtpJ4K+VOhs+R9ZDx4VubnJveMeOb70/cxxC/DEl151Ypl/m/8guPmJB
         E8gg4ptW+D9lLZ3/BZHBnc2cNkyOe7KPx2QhT/X/vzRco4kpaAeVbIqghkEK15c/ciQ6
         Fc2qgLjVT321G9Jv69uzvZOcruRU4U+qHS+hT92Yw0A9V9ELboekzdvfLmAlCBPLn8+A
         lJcxhNEmEfwiR/yVbrr4Jqe7w4rowAISEZWBQER/9SmRKY6roVhyqR+HjOKmsi7zrHdS
         hozQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779206215; x=1779811015;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xObgkIv4v1Gk2dZyQaSVG5Agqt8ZF9d1ZOFCs2ReudM=;
        b=EJxZQr+9Ue2ZNMbVmPzte636idDhEcZKQAzAQabNs7FG9iaBUxvTOh1VaM9+SACr+O
         +VzFJEBWJH4dH9rO6XgeZ55x3f7czzMpImg3G8becz4VElRuda0Q7y/NxAS29eBw4nVL
         WvZjt6qGTIgM49B2/b4P8a9Bub9Kwtg5U/V+ZWccGFu6DKgHUgRtj5ixvCljoR6adjl/
         jf3xbEVe+sQZzQUkhbCzgqK0h03yKacZrI2DG+BH6GsS14PIBBcEtBpn3bl0jyaZ+5hH
         yJhzOx/WOhAsvsy5yTQBXAZ4ZNW+v/RtOS4ZZqXEAWR33Alo6pczVgt2ZnMnFHxyPMpy
         aW6Q==
X-Forwarded-Encrypted: i=1; AFNElJ/gxC9f4GK1M+OTU2uZRA48crWB/rUEiYhcwARUBUGNU+jOPPaUibmY1wvMMs/7iQgL0P7GonpxvqU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw06Dyi0GOaUsrqCm5LxBGf0G0Ac/gDdTA3JSiF9qr/+XL6bxDd
	8h9qh5mB/kvxu9dyUylir5fXGxbJ7cwIp5Cvr7K32k65Hpfw19dPtwh5pX0SKpv33Q==
X-Gm-Gg: Acq92OG9XqSbj0tsRoinEshK2R9mcN4e0xA2iP56XHAxzG1KZSDz35WvroOyBztay4x
	DJmy/JNedZg54DwFo4CBnNBdEvMO7yrmJCqNMRPa5SQj++MBxPKAx5jtVUbccHOSJPPRydevXEk
	VIqG+po8GqTyK2U2mm4LKHtqEm0zre3LTC7hAH7JZv477xSCBPp1Ou76+5rq8deHa83y7xjqWTc
	szJtAik2qSbZ8ljLoUVKdBWr6GF2nC4hFsdD4UdJL8+NlxtM6B9vA855Hvpj5pOuNFCvXy9DFTH
	iAC/2CT4NaZc6siovto4NOPA4JsZuIyUr5V0MffRQ+H60qC0FzdTCQPjLkkvL8wgQ/jhtTzgCZJ
	iESEZ3HAn0FUU3S9/Qe7zUY9fDKQOA+ZDJCrp8p03YNQlTG5tywetDl9Ht+Oa607ht1CjJXm2qC
	Mx1wqdTZvRjQw+RVqqDVADJFI7UIq/Nx23JTqTCUk/KLZw//yyKKoX9FSSVRo7UCyOE9zoMtBsn
	QxGlL1YI1Ft++k=
X-Received: by 2002:a05:600c:5304:b0:490:17da:27f8 with SMTP id 5b1f17b1804b1-49017da2830mr104668965e9.18.1779206215317;
        Tue, 19 May 2026 08:56:55 -0700 (PDT)
Message-ID: <f499de94-e75c-487e-bd1a-0bd3b4eda39f@suse.com>
Date: Tue, 19 May 2026 17:56:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/26] xen/riscv: introduce guest riscv,isa string
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <b2d4f3f7f049837a25bc00bfb1d3da8b984a8b5a.1778250616.git.oleksii.kurochko@gmail.com>
 <364abd6e-4fff-437a-90c8-bb4489f0c51d@suse.com>
 <f032149e-aa99-4976-8012-39bd01d4a653@gmail.com>
 <23e8de1e-b792-4863-bd99-f529642fb963@suse.com>
 <fbd8b102-d495-4678-8226-a199554e266d@gmail.com>
 <3d9e2a3a-6839-4909-b60f-28b4c1a02cdd@suse.com>
 <fa617f4f-7057-4b59-8f28-5a014b0c423a@gmail.com>
 <3b5f681c-bda4-4c46-a96d-cd3da1658e28@suse.com>
 <8472866e-49e6-45e8-8d86-3b6b09d2c177@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8472866e-49e6-45e8-8d86-3b6b09d2c177@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1779206215-0B77AC48-E3E6A16F/0/0
X-purgate-type: clean
X-purgate-size: 1017

On 19.05.2026 17:17, Oleksii Kurochko wrote:
> On 5/19/26 4:53 PM, Jan Beulich wrote:
>> On 19.05.2026 16:49, Oleksii Kurochko wrote:
>>> int init_guest_isa(struct domain *d)
>>> {
>>>       int len;
>>>
>>>       bitmap_andnot(d->arch.isa, riscv_isa, guest_unsupp,
>>>                     RISCV_ISA_EXT_MAX);
>>>
>>>       len = build_guest_isa_str(NULL, 0, d->arch.isa);
>>>       if ( len < 0 )
>>>           return len;
>>>
>>>       d->arch.isa_str = xmalloc_array(char, len + 1);
>>>       if ( !d->arch.isa_str )
>>>           return -ENOMEM;
>>>
>>>       build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa);
>>
>> At least ASSERT() the success of this?
> 
> I will add:
> 
> ASSERT(build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa) == len);

Ehem. Please check how ASSERT() works (and the difference to BUG_ON()).

Jan

> but I expect that we won't be here if len is incorrect or 
> d->arch.isa_str wasn't allocated properly.
> 
> Thanks.
> 
> ~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue May 19 16:15:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 16:15:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313213.1583431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPN6I-0007qY-OX; Tue, 19 May 2026 16:15:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313213.1583431; Tue, 19 May 2026 16:15:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPN6I-0007qR-M0; Tue, 19 May 2026 16:15:22 +0000
Received: by outflank-mailman (input) for mailman id 1313213;
 Tue, 19 May 2026 16:15:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4105277b000f373@swg.vates.tech>)
 id 1wPN6H-0007qK-7T
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 16:15:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPN6G-00DJsn-JY
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 18:15:20 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4105277b000f373@swg.vates.tech>)
 id 6a0c8c97-5cb7-0a2a0a5109dd-0a2a450bd980-2
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 18:15:20 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4105277b000f373@swg.vates.tech>)
 id 6a0c8c98-212f-0a2a450b0019-b9ff1c22b549-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 18:15:20 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e4105277b000f373.007 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 19 May 2026 16:15:17 +0000
Received: from leducb (182.136.141.83.rev.sfr.net [83.141.136.182])
 (Authenticated sender: baptiste.le-duc)
 by mail2.vates.fr (Postfix) with ESMTPSA id 926978684D;
 Tue, 19 May 2026 18:15:16 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=teqjXE3tkmZ9cojzz0pTGknvHaVWTahpc3tDyhhfebE=;
 h=from:subject:date:message-id:to:cc:mime-version:content-transfer-encoding:feedback-id;
 b=D+3lt53woS3bT1rUSSUt+d79+A/oodZnX9UdGtZJ51np80WsDsDjvYqoOoG8vGuJmgwj2dynn
 QB7Pfl/XPKDJG4zk9sOwyWRwZS4+Ma6v7MVA0HY4v20oDQZ83BSpZCwRzKDT4V1S+uo7OvRrzgr
 HggFRPj2+ejgGVQwlxwinsxgTAZlnSKDqwC99r6EMy/RWCWGa6lDRDNp5yfuopkQp0nMWCBR0KM
 DJXnrXaTqRmJlA44tNb+yOCG0OdPxWc59qEpN0QiApbXrZWqnZVFBjkQmplIXEM8xJCj4aXnxiQ
 lJUg9giB7GS/gB1szzHF2VFIkgiLsReT7VttpCdn6Rmw==
X-Zone-Loop: 12082eaabae1ec0f85cdbbabbdd681f162d1904d40cb
x-campaign-type: default
x-transaction-id: 7e66f6f7-0931-4fe6-a605-f577e1eccb32
x-swg-uid: 01-594f6c10-167d-47ea-b3d1-dc147c62644c
X-Mailer: Sweego
Message-ID:
 <1779207317.8631fc262581453bbf619ec5b2062170.19e4105277b000f373@vates.tech>
x-swg-bid: 1779207317.8631fc262581453bbf619ec5b2062170.19e4105277b000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Baptiste Le Duc <baptiste.le-duc@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2] xen/riscv: fix sstc init to write vstimecmp instead of stimecmp
Date: Tue, 19 May 2026 18:14:44 +0200
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779207316857
X-purgate-ID: tlsNG-42698a/1779207320-23374F3B-07CA67EE/0/0
X-purgate-type: clean
X-purgate-size: 785

According to the comment above initializing of CSR_VSTIMECMP should be used instead of CSR_STIMECM.

Fixes: 25e032730690 ("xen/riscv: allow Xen to use SSTC while hiding it from guests")

Signed-off-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
---
 xen/arch/riscv/time.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
index 8769709e52..10b7e35f13 100644
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -101,6 +101,6 @@ void __init preinit_xen_time(void)
          * Thereby to avoid spurious VS-timer irqs set vstimecmp CSR to
          * ULONG_MAX.
          */
-        csr_write64(CSR_STIMECMP, ULONG_MAX);
+        csr_write64(CSR_VSTIMECMP, ULONG_MAX);
     }
 }
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 19 16:22:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 16:22:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313222.1583441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPNCa-0001qn-Bm; Tue, 19 May 2026 16:21:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313222.1583441; Tue, 19 May 2026 16:21:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPNCa-0001qg-8d; Tue, 19 May 2026 16:21:52 +0000
Received: by outflank-mailman (input) for mailman id 1313222;
 Tue, 19 May 2026 16:21:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPNCY-0001qa-Nq
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 16:21:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPNCY-001B6l-0G
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 18:21:50 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c8e1d-5cb7-0a2a0a5109dd-0a2a4509835e-0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 18:21:49 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c8e1d-2497-0a2a45090019-d155802be071-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 18:21:49 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-488b0e1b870so56658615e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:21:49 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da0a1a22csm45832373f8f.19.2026.05.19.09.21.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 09:21:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779207709; x=1779812509; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=/p90yQsX5BfUhGHtHAPV9H8vmOsxZLJqAoid+MyKp3s=;
        b=pilOBfhvgPxyjAIcwE1jIGo/zj7oa//s29eVFr4JREeixPvxWpqTUeLQqfKm4WGjf8
         SQxQVrkxSQBYTiLwdQqQEOj25DzLCfKXc4jB5tciGn5mMHniSKoqdPXc1qsZ46P5VX0v
         dsa/kXg47HwONx0JLnKtB3g9CJdVcPrQf4nv7Zn9Qspu7QwO3Ztl3xFVH+AgJ5pIsrYp
         nuTIbxKpy3PPwg1nr/mdSwHQaFrnwm8FAS7rZl1pnJzyXTVUF/+Gnu+f/knd2o8sUege
         v894VFZeZQ8CG1HhARUtWbXK/C3iWw+GSkq9jbNCPCUSHczY/Xfj6dWreuhVNkXYMAS+
         djbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779207709; x=1779812509;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=/p90yQsX5BfUhGHtHAPV9H8vmOsxZLJqAoid+MyKp3s=;
        b=r3fRyqhiSw0k34Xaqz7Yuk4fdORVbysp/le6GP7WxWoMMJx7w62Y8QwwsJuvZ36Bi5
         P4VajenEs4t8h0O6DeN70SIMsLiTc0HCESA7a0cLoE+e+mSorz6hcTKMnGBwOigj06yR
         rB5nn/91Pp7rudupsSw/0i9lQN1UojEEPVsNWKcWt4NpVPgmlQnpc0z8hqQ8WK4+siXp
         coTBSH/vV5PRdg9R/gZr+2fh4EGft3S1+UnCjsoG2G+D5zfx5B9FBRyqcOOv4M2l//0w
         I9dbU4fpM9qEMUllDSZf19gvgkj4m2r53OxCYsga/JsP1eCbr0Xt5DZ/wVu0fWzAMNsE
         fD2A==
X-Forwarded-Encrypted: i=1; AFNElJ8zu/Kpowz45cDetR8J1CHtFF1U8ETdtn7Q7D0fzQjz4Yaeaop9POeDWjeq8DCPQ7srkgaCzReDcYE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxpD+ekYi1zFjUC29aXQ9fHOUErXdiosBqHXua1CpRxpvjLxuZ5
	JYhAbuVNXZlxd7AYMA6sVUfxbBcbO+8N3rsVuVy4pUWBQJ/IWYL+xJh2
X-Gm-Gg: Acq92OFQp+aP67dRHKuBJogVXnDTIM6+OND/2h/uMFTqCuuW9urBG16C5WtJqHfQ0Ps
	23bKR07/yxCck6emW174uLSiFmEGRqFfkXWixg1owgJHHH4B78oy+mBt9cC9wi7Pqjzh/itXe4e
	xE+KxjI8DdABnHpx/FHRWEaj3CFmTXZsfi7a/63Vgarzygai2/4FEMjytbzbnT6HFwitu+n+pAI
	YWdMTMNUea6hJDBSe2d9dCHDMlhRoFLBNVpocqtOhqa4vsTjIM1aJVvUfwnnbJjxa74ZU4J4v1E
	68P22O2Q9jvs7/AlSdoVk9HtRLAo9l1Y9mo7sacBu3uUJ7u82Af4eT0tyyIYCPK92tSlNSnw1EZ
	X8PQbtH5HNqdxekRG8o/2yqGBumJBaa85Te82mSB07y1y20KC7gmqxVG+P/XD1udo0RwJCwJBed
	JTptprlJ6886yMux0trXLH3wjaNicKvdPGypkqQAUynMeiLA6KQuVJnRdyNyOGnxFcNnIzEyptt
	otCTrF4/PbFRg==
X-Received: by 2002:a05:600c:8184:b0:488:b187:3c with SMTP id 5b1f17b1804b1-48fe60ee4admr310926765e9.14.1779207709325;
        Tue, 19 May 2026 09:21:49 -0700 (PDT)
Message-ID: <a89475bf-b1e3-4ee4-af13-f86f1602581e@gmail.com>
Date: Tue, 19 May 2026 18:21:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/26] xen/riscv: introduce guest riscv,isa string
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <b2d4f3f7f049837a25bc00bfb1d3da8b984a8b5a.1778250616.git.oleksii.kurochko@gmail.com>
 <364abd6e-4fff-437a-90c8-bb4489f0c51d@suse.com>
 <f032149e-aa99-4976-8012-39bd01d4a653@gmail.com>
 <23e8de1e-b792-4863-bd99-f529642fb963@suse.com>
 <fbd8b102-d495-4678-8226-a199554e266d@gmail.com>
 <3d9e2a3a-6839-4909-b60f-28b4c1a02cdd@suse.com>
 <fa617f4f-7057-4b59-8f28-5a014b0c423a@gmail.com>
 <3b5f681c-bda4-4c46-a96d-cd3da1658e28@suse.com>
 <8472866e-49e6-45e8-8d86-3b6b09d2c177@gmail.com>
 <f499de94-e75c-487e-bd1a-0bd3b4eda39f@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f499de94-e75c-487e-bd1a-0bd3b4eda39f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1779207709-41D6FA53-BECDA9F7/10/73395122804
X-purgate-type: spam
X-purgate-size: 1331



On 5/19/26 5:56 PM, Jan Beulich wrote:
> On 19.05.2026 17:17, Oleksii Kurochko wrote:
>> On 5/19/26 4:53 PM, Jan Beulich wrote:
>>> On 19.05.2026 16:49, Oleksii Kurochko wrote:
>>>> int init_guest_isa(struct domain *d)
>>>> {
>>>>        int len;
>>>>
>>>>        bitmap_andnot(d->arch.isa, riscv_isa, guest_unsupp,
>>>>                      RISCV_ISA_EXT_MAX);
>>>>
>>>>        len = build_guest_isa_str(NULL, 0, d->arch.isa);
>>>>        if ( len < 0 )
>>>>            return len;
>>>>
>>>>        d->arch.isa_str = xmalloc_array(char, len + 1);
>>>>        if ( !d->arch.isa_str )
>>>>            return -ENOMEM;
>>>>
>>>>        build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa);
>>>
>>> At least ASSERT() the success of this?
>>
>> I will add:
>>
>> ASSERT(build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa) == len);
> 
> Ehem. Please check how ASSERT() works (and the difference to BUG_ON()).
> 

Condition itself looks correct for ASSERT(). If build_guest_isa_str() 
returns value equal to len then assert_failed() shouldn't be called.

Maybe do you mean that it will never fire in release build then yes it 
should be changed to BUG_ON() and the condition should be inverted:
  BUG_ON(build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa) != len);

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 16:27:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 16:27:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313231.1583450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPNIA-0002kT-UV; Tue, 19 May 2026 16:27:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313231.1583450; Tue, 19 May 2026 16:27:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPNIA-0002kM-Qz; Tue, 19 May 2026 16:27:38 +0000
Received: by outflank-mailman (input) for mailman id 1313231;
 Tue, 19 May 2026 16:27:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Edgar.Iglesias@amd.com>) id 1wPNI9-0002kG-1O
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 16:27:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPNI8-00ChOx-9w
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 18:27:36 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Edgar.Iglesias@amd.com>)
 id 6a0c8f70-5cb7-0a2a0a5109dd-0a2a4504d4f6-6
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 18:27:35 +0200
Received: from [52.101.46.68]
 (helo=CO1PR03CU002.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Edgar.Iglesias@amd.com>)
 id 6a0c8f76-1dec-0a2a45040019-34652e44fda8-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 18:27:35 +0200
Received: from SN7PR12MB6839.namprd12.prod.outlook.com (2603:10b6:806:265::21)
 by CYYPR12MB8937.namprd12.prod.outlook.com (2603:10b6:930:cb::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.21; Tue, 19 May
 2026 16:27:28 +0000
Received: from SN7PR12MB6839.namprd12.prod.outlook.com
 ([fe80::ae79:f50b:b7a6:4cd8]) by SN7PR12MB6839.namprd12.prod.outlook.com
 ([fe80::ae79:f50b:b7a6:4cd8%5]) with mapi id 15.21.0025.016; Tue, 19 May 2026
 16:27:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=fail header.s=selector1 header.d=amd.com header.i="@amd.com"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ahsaF9qUZE1yBBYgpPmg8NvHbx5flWTnj/QgdnmPtTibhXokUyjG3hwv7JKGYbeUPJrkAlpGbiGoe494bw0Dzyv4j4sJyQh3gAslfz3/SBWrKM/XPzbhOyhGX5ik0k144DcOW2BO4/mQ2iC3UBdyKiG2o+FndzQC0Yn5XGZIOVSgaqUpMGLZ8nUcJLqE0l4S48qeofWVs4K1wXr4k6OdOwiTKsTItkgIGBrUhSNLGw4HUrVmP9U8x9hpep2okdAnb4ds/vWoBxlI9igFMnwlzxxL5vECtthOlZa2VOT8x8CccHOknwkWUQ+Dv8SOv01H1TfcNSon1lgJF3o3BGWTMw==
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=Uh31kvedVf7+zuAc3TPNvVcej9QrdanV4BG58oldh2c=;
 b=eO8louH3RP1cYYvDv80DzcYdebAKlrBCCwB2oM1VTarvT41TYaZmIVMYP4tH6qD/NJLlqXgw/qgdhNIJSjp6OUwvogXSVs68EIFA3fTI3K2cpc/jTK/SXBsf3Gz6FHHKRc3Ci+o3E8owE8Wt7yVzWEZDsyxHHrlTrvBNGqoThq7wVOF0Kvzr11/Zuel551oobBqiyIAsuG17qJYtL26yTTr+HCEgq9uDMQuhybaCBlgY22mnnOT2wkeaT7VEbJGFPrgyJu0XLhHsOBJ2DgSyqCg0xuTPZ4jYFJ/Z1bhqdQsXKhZAvCw/W6UHx5+wyeyJxFJopMSpD50wzELrU5f0jQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass
 header.d=amd.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Uh31kvedVf7+zuAc3TPNvVcej9QrdanV4BG58oldh2c=;
 b=VctKwpFDp1iz+9mIl1WEIjmz14oPM1RY7ugqbdZMwmujbRqi0OWTj1gu+yr4MGkCLcVIx9zCSHCYKs5Sd3hylD9idLazWjDO1zINcdYt4c/BZ477VGxm/jnoNlug4tepO0lRFQKXlgfQ93B0BdujWXSYE2K6hXBGT7cDoiGTSN4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Date: Tue, 19 May 2026 18:27:23 +0200
From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, julien@xen.org,
	bertrand.marquis@arm.com, michal.orzel@amd.com,
	Volodymyr_Babchuk@epam.com
Subject: Re: [PATCH v1 1/1] arm64: Fix strrchr() matching of null terminator
Message-ID: <agyPa90M2iQKTQGj@zapote>
References: <20260518234353.453193-1-edgar.iglesias@amd.com>
 <20260518234353.453193-2-edgar.iglesias@amd.com>
 <b9088d84-c92d-4b71-9d02-177282221a90@citrix.com>
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b9088d84-c92d-4b71-9d02-177282221a90@citrix.com>
User-Agent: Mutt/2.2.14+84 (2efcabc4) (2026-01-25)
X-ClientProxiedBy: CPAP307CA0008.DNKP307.PROD.OUTLOOK.COM
 (2603:10a6:380:3::16) To SN7PR12MB6839.namprd12.prod.outlook.com
 (2603:10b6:806:265::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN7PR12MB6839:EE_|CYYPR12MB8937:EE_
X-MS-Office365-Filtering-Correlation-Id: 3ab0463f-a2cc-4ca9-0e61-08deb5c384a0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|56012099003|18002099003|22082099003|4143699003|11063799006|3023799003;
X-Microsoft-Antispam-Message-Info:
	P60vpx7ZzTcpP+xLeEMTgDxvp8G8f1PNoNDh2GvLlAUszvhrrz9uR6ExApWi8ru0Bw5Lj6PgFbI2galNODLQdCHNVPlplBGp4SU4tODAsqayYz9BqJb7nTM0nPbOXXGwpvflPRmKxhrgaXk/4GdUZKvaFk6ebk5vMXJXrA073mPzD1FsjbGxEjlkAjKl6br1BO4see5cGGvTA19gOZJZxeBgKJp3GdvVD9ax3oqXjb/9McHIUaIg85cWMg6XGqVBsYKNureb503QNwlBYqKXgoiVhkUPR3PlCcXfdfCbz4rAAHrAcYf7FPxb4qy6xX8o0E4zFqivvQnCZiYWg001Lzd6gDtZvnCxq2r9poCENzEOXEe2tFGJlw1udboUv6++s7SE5GW9Bi1kFVd8iM6CWJO2sD+3gUaPSY0qIBdMDmlkIEJ/BfnY/SllgqXC5doBDBnXfM56Z36eXVvG3F17BV3OlBLnZ1YvGs2/6g/munDMq0p3CHfMQl3vkMnqca2M+TBmESTH02bf7SsGobB39grNSm/SZy81r0il4msJpyI4ArjzIxONuu093qaUg1xahrL66fR6toHSYWdxPAzjfWW/QvXp7V0YWo/eLshqJh5jN94H5jd5PtMxq0nKQ9pg12sknTQIX6RnMf97MMcFH76TTzz6pmjj6Vtr9yB6MnJe8vBGf4MjElfdoQNV8rY1
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB6839.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(56012099003)(18002099003)(22082099003)(4143699003)(11063799006)(3023799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?iso-8859-1?Q?eg8IM0FdKdKT0JKKMeOqjvGpYT7QRfaw/LGV7JNrkxXXI3aeD70w7le5VJ?=
 =?iso-8859-1?Q?FooRAaWa9n+VHhXSGi3wmv1jg8VnfDJP7Csl4T5Cir8WKQiK8mfuXwhNph?=
 =?iso-8859-1?Q?az/9uQjuRJp9fUaXTOMWczKfLcdgkh7QH1qwTS7I5rdhi1CU2JgRTMnsWX?=
 =?iso-8859-1?Q?SSpDeaQU7a3t32Lf3srpU3/ZYRNiF65e7ESTVWuwE648UaHcTm6KUpo1C1?=
 =?iso-8859-1?Q?GbNuP6gWsD9+9+C8u6HwhfQZescAB7Zf3ogVfRLkckE/KH/7vYtYbhSoWW?=
 =?iso-8859-1?Q?uTXnaYEktKFwKP+IuShmJF98DYyqi2mUCZKzgckwrL6Qivwd373rJz3oN+?=
 =?iso-8859-1?Q?K/qIwzugDxLHILBpyjp4+lisHgjPHyYbl4sPRUQe/Ni0j+eMvBsBntO95X?=
 =?iso-8859-1?Q?Qt3OgqW36Kp4ss9qrdZiEtDgbbd3+0aiW9sLshsGWXZSIXm3zOgQJ9P+xm?=
 =?iso-8859-1?Q?9CXykUmfVMQLRPNrIHdx1P/26ZOB1OKCthhCBeqes53rYnJDABLbNWrwmq?=
 =?iso-8859-1?Q?LDaxfEhu20x495yE3MJ8KiLV8xPmcYhgHj781K3hDTgAQbkG9Qv/KUFMKr?=
 =?iso-8859-1?Q?Yf3zzQ3HehoiqSlbLKyjDzgbEJVBGR8xcEVpNQPt1wUuRt9xaqSlC61nLB?=
 =?iso-8859-1?Q?wNy/aTchcb6bgeVQCQrhg28ryTORvXTTRFHQjKLaa5hLKSbXS/E1BFG5Qa?=
 =?iso-8859-1?Q?B8QkwkBpD9zbY819WBMibS53n0p7WPvZuiNrJ5rwlS+EJ2hPIDXL/QqiV1?=
 =?iso-8859-1?Q?B4RRHV0GeiVOYeEcbsnE8Ey5F4XmoEkrGnvYHvA/Xnelrkpj6/eG/1Ce/f?=
 =?iso-8859-1?Q?Ho4ToV+46kEfyBVj88vuaDgxgFgqb18lVJkocEnbDhIZGRmXHirPjWwJs4?=
 =?iso-8859-1?Q?M8NElxiWlrVNPUwAaynTeio/Z4PW80xYvF6Sk5yIBiHQN/0WO+I8d3tn4n?=
 =?iso-8859-1?Q?5sx9eUY9SXAwb4jNFtOVB0AAab6Mq+bkH8n2T/zL1Z33aYrlmQw1PQdB9V?=
 =?iso-8859-1?Q?ahp5mQhXy1O7wQMALwmebXvNOrOkNi4H4epKfK7Iz0iq6LeHCG5zS9kcuQ?=
 =?iso-8859-1?Q?/ZmXpq1XL7T+g0D7XJACEmfudvO6Fbc2TGKoZ/XNndboUC3W8lpLPKnenl?=
 =?iso-8859-1?Q?ahc71/J1KsJ7HNyEQ695w0W/LovA69MCILJS18ez+/VyNagB6PbDvrIXP2?=
 =?iso-8859-1?Q?Dm0TijGZceNuZAGL0ilQmAQpUuCEp4+6oKcicmF4fE1L6FXd6Dwitwakz8?=
 =?iso-8859-1?Q?ujvEu/4gumzi5JiHecOONkfa9l2zzfWKuhRohfybFXZ5J/hfxZMyGGSaOQ?=
 =?iso-8859-1?Q?Zcf8Ew2ly9cWFhZfYLQqD2IHeoiAb9XEyJ0xOKdCh+h7Q8Cs+JxbqcBjGs?=
 =?iso-8859-1?Q?WfIRDyLLZAXp6kDBDFxbCrU8BfIXYcSRG4np0+lptzGbqpj6vQB+UJZoO9?=
 =?iso-8859-1?Q?rhJ68VmGWpmPlob44UcS6fiy9ybXwsOK4knBhjbJIN6hhGq6XHwyeN98xB?=
 =?iso-8859-1?Q?XMTvRpgk3ZFFNIaeZauuTYu4RC0ayh0okL1d1LWZyuhmSAmS/o/s9m4/DS?=
 =?iso-8859-1?Q?WLR/LG+0FjeJzxnYb5fKnx0xljo6JuMeIJrea0QUUT4ZKoZKCFWKXtlux0?=
 =?iso-8859-1?Q?bUJt/oIhSIMLSmcVu0EMxAz0kV6A411k2/70KQBY9oNd/t+mnUqi/iCkUO?=
 =?iso-8859-1?Q?LoxAKrMNrKsMw8AzuuUgeZiAUPS9g0YJfVPouFpk/l3layCWZfmGMRCNxr?=
 =?iso-8859-1?Q?SU3fXxQFRh1Wtb4WpCdZs3hKaZG5ykucUSqeLLiK/3Flbk?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ab0463f-a2cc-4ca9-0e61-08deb5c384a0
X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB6839.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 16:27:28.2509
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wYH7Mup1Tas0wGgFI4QLLeFj2SqcAPxDMz0e9uVOph+V/KBSDFvrYommFUoJSvw5
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8937
X-purgate-ID: tlsNG-ebf023/1779208055-407713FF-7467C5EB/0/0
X-purgate-type: clean
X-purgate-size: 1795

On Tue, May 19, 2026 at 01:45:37PM +0100, Andrew Cooper wrote:
> On 19/05/2026 12:43 am, Edgar E. Iglesias wrote:
> > The generic Xen strrchr() implementation returns a pointer to the string
> > terminator when searching for '\0', matching the standard C semantics.
> >
> > The ARM64 assembly version stopped as soon as it loaded the terminator and
> > returned the previous match pointer instead.  This made strrchr("", '\0')
> > return NULL.
> >
> > Compare the loaded byte against the requested character before deciding
> > whether to stop at the terminator, so the terminator itself can be returned
> > when it is the requested character.
> >
> > Fixes: 42c4eb6a83 ("xen: arm64: assembly optimised mem* and str*")
> > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> > ---
> >  xen/arch/arm/arm64/lib/strrchr.S | 7 +++----
> >  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> A couple of tangential things.
> 
> This file was inherited from Linux. Does the same bug need fixing
> there? What about the arm32 side?

Yes, I'll have a look at Linux. Arm32 looks fine to me.

> 
> Looking at your example, it surely wasn't actually as simple as
> strrchr("", '\0') ? I'd expect the optimiser to be able to turn that
> into a constant and not call out to the library implementation.
> 

We ran into this while exploring a new QEMU based test framework, we had
it do some fuzzing and it tripped over this.


> Elsewhere, I've created xen/common/bitops.c to be CONFIG_SELF_TESTS for
> the bit operations including the arch-optimised variations, because
> they're subtle and easy to get wrong. This looks like it's worth doing
> the same for the bits of libc we implement.
>

Yes, that looks like a good fit, thanks.

Cheers,
Edgar


From xen-devel-bounces@lists.xenproject.org Tue May 19 16:28:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 16:28:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313240.1583459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPNIw-0003CG-5Y; Tue, 19 May 2026 16:28:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313240.1583459; Tue, 19 May 2026 16:28:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPNIw-0003C9-2f; Tue, 19 May 2026 16:28:26 +0000
Received: by outflank-mailman (input) for mailman id 1313240;
 Tue, 19 May 2026 16:28:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPNIu-0003C1-6G
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 16:28:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPNIt-00DLxZ-Ic
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 18:28:23 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c8f9b-5cb7-0a2a0a5109dd-0a2a450ca80c-26
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 18:28:23 +0200
Received: from [209.85.208.46] (helo=mail-ed1-f46.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0c8fa7-62f1-0a2a450c0019-d155d02ea559-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 18:28:23 +0200
Received: by mail-ed1-f46.google.com with SMTP id
 4fb4d7f45d1cf-678a16429c6so6864722a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 09:28:23 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-68310b3e800sm6941820a12.6.2026.05.19.09.28.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 09:28:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779208103; x=1779812903; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=cuaRy8vTMZhnsIPU3fg8GazaeIe69JwFVS9UAY+B9jc=;
        b=j3lwY5ZnFj2fgIszGTTerPgs8S3g1fHgNF8EWEB5hsDi4PXOPWunj3MZWsh/e+tcjp
         R+bpA2OUDvbUwXRYmo/EPUMAHlq20NnynlS8O30i8zB8Tj8MrIEiNDMqPHyEcxg1R5zf
         bnJ74pHeCFHam3oXccq1KLQRBTg9ZUaVYbTFlzI03wGYtwq0QG8oJeKwZhISQpqO+/L9
         m8IhA4KvlYEE4ECgjWGRJe8SB+MTsGc68rITeCDPro58TRCP0PvaEnxONnxo0XETq7GF
         HDYYBBXUuLSZBnF7Cnqk/Wgt8ynxgBkpXaA3gkCLrcebH7iNnIp9JkvfgEFrKx2t3Udl
         pNzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779208103; x=1779812903;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=cuaRy8vTMZhnsIPU3fg8GazaeIe69JwFVS9UAY+B9jc=;
        b=sFo9GvNxiAoqXl+SIu0lFtE3NpjwxBtnh3PmsWWisr0jBxlxYC0vTohjrFWDFB/mYZ
         IXUjU7Q3ziwSqgMPjUDUeAt2iWuZEQBXX6+WE5W9gjpwAnY7xA9s9KSA5t0I4p5FJc7o
         CskBV+2yUNBtKY9Q+ZlDZX1yuBNU1IQvGYLyMVlFk04P7PpnuiPrkUuK/Nhkr492WR4w
         pRlRmZVamnX7/ditvSj/p/NmrpqEDUGnKEA9JwJTuwFiDVgFu4GbGCU8SgPDAqfS1dtK
         Klglp4KpOY/xIpRAqsRDiV0JO7mPs8gRSdr95kPDJNYcXWaHLFU1psPMwkUGcn0XuGqc
         kShw==
X-Forwarded-Encrypted: i=1; AFNElJ/RcVu7x8DSYqi5K2N5ip8ZUWmbHfbWf1nIusWqWG1fVPljOaK9iqQIKsx/GQoNFwmOrusbPDe6dUI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwpMP6bXdbLdID/3MR/xJqeoyBrTgUdGJ9RgxCvRZ50MooOoy9q
	bFwn8pRn8NYY/C/DyLtIK08SKJS3W3/yNiZcsYFDHwlML6hzjo4n+Otj
X-Gm-Gg: Acq92OGJoqkkv0ZuXAZcSgRwVk3TbGcCz9ZfrRphphMN3zqud7qy/ceOY0aIGez0cFw
	qE6PxapuQe88SqJ0ZoFR4+1xAD7z1uCwc8ID7qUfEQymi/1gzmXDHYz/ZpP6mN6jNevlYfciLn6
	9co0WPGCnO6zenqPTDGltwIL6mVtjGdSrM1TkCABELEenj5vWatAWijma9JKlO5Feb7nNO0zPfA
	onoSgh+7cCH+2lqDwJG9p2D8cN82Sdb7PudNdvuW6rh01KPtcxBXvfDHNIt+WvKP+j6qK4CcGWa
	Nh2S6cYdKJbqtZDiq5TJd7JHLYqYiNgvxgBligUsJNSz1AzYc0aD9zrDNKib/02VBpb3RwYX+RC
	/yIoOeHNvYlhiLWtAAO2e7RYFawp69mJU42HbNyfgi/YyYlAM89Bv/YHXWpK+EvaHWAI5oj7JAd
	QQgpWQ3pnjdLtFkN5B7XtJYrda+ouOWeA08RVK3w8nn1WzqK3PZaKh7cMCYhoBwI9ol5KGRj+ky
	Us=
X-Received: by 2002:a05:6402:528e:b0:67c:fb8e:41c8 with SMTP id 4fb4d7f45d1cf-683b506305cmr10834394a12.12.1779208102962;
        Tue, 19 May 2026 09:28:22 -0700 (PDT)
Message-ID: <49d0cbe5-1366-4539-9754-371e9507a54d@gmail.com>
Date: Tue, 19 May 2026 18:28:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/riscv: fix sstc init to write vstimecmp instead of
 stimecmp
To: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <1779207317.8631fc262581453bbf619ec5b2062170.19e4105277b000f373@vates.tech>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <1779207317.8631fc262581453bbf619ec5b2062170.19e4105277b000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1779208103-DA975CF5-89684A1C/10/73395122804
X-purgate-type: spam
X-purgate-size: 937



On 5/19/26 6:14 PM, Baptiste Le Duc wrote:
> According to the comment above initializing of CSR_VSTIMECMP should be used instead of CSR_STIMECM.

Probably, it is something wrong with my e-mail app but this line looks 
long enough.

I think we have to follow 80 chars per line.

Nit: s/CSR_STIMECM/CSR_STIMECMP

> 
> Fixes: 25e032730690 ("xen/riscv: allow Xen to use SSTC while hiding it from guests")

Nit: there is no need for empty line between Fixes: and Signed-off-by.

> 
> Signed-off-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>

Nit: it also would be nice to put here what was changed, for example,
---
Changes in v2:
  - Update the commit message.
---

Please don't rush to send a new version of the patch. Probably 
committers will agree to make suggested fixes during commit.

With fixes mentioned above:
  Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks!

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 19 16:30:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 16:30:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313251.1583468 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPNLG-0004lM-Kb; Tue, 19 May 2026 16:30:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313251.1583468; Tue, 19 May 2026 16:30:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPNLG-0004lF-Hk; Tue, 19 May 2026 16:30:50 +0000
Received: by outflank-mailman (input) for mailman id 1313251;
 Tue, 19 May 2026 16:30:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPNLF-0004kt-KM
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 16:30:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPNLF-001Ck7-0G
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 18:30:49 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c902f-2eae-0a2a0a5409dd-0a2a450bc8f4-18
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 18:30:48 +0200
Received: from [40.93.194.66]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c9037-212f-0a2a450b0019-285dc242388d-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 18:30:48 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB7141.namprd03.prod.outlook.com (2603:10b6:510:296::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Tue, 19 May
 2026 16:30:43 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Tue, 19 May 2026
 16:30:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j3F+mgGjl2Vn9YvCLukksoIxxuQsUAYhR9C41mtyj3G33Q91u1beT21HqWmEvVnnWNVTQsgo+BHDIS55a7kLlgkCSAeJeTqPYWweRArNzgpD9Kf6YvGLW10Jf7NUFcq1bJ5+KWFvC3c65i8GyYmH2v4FviRE6gChSbRXz74t65m1ALsgkz7DXvUfyH2XT//e+IyEJk8jaTQfiqHbMXr7Y4sG1th0rHa8jPqgrwFCPaIyUqJIY3he4lT0UhIuaMypehxLETCqn0JnUyGKav8Q7Tt7xIFitkLc/qWcJsDs5JOAwHcCXY+jAFaJIFWKV5ds+6gGqRFSU4Xw3guzX1+kNg==
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=CqsTliI4tJ/noBkulXoXbRnVYJOKLpwXhKFjf5fAGPw=;
 b=fhLa5Ws2D0lahkEe1E8RY6MfKhbOM6cYfCoDB5EEAlC9hj2fQ8xkfA2z1FLN9+HoWYTDL3xT0PnrB9ldhyEI9M8hgio4sPr1mqateYP8lLiac6L7IKe7Y67DHCqXAGQaVI+aHX28SaqLUEokDa+JIh6IwVlaFjqhFoW/euIfvamrxHgQy1l7ASoG9VnYWUf67pppFdoza4Azk81HWn6gvTSSlJWWX0eij37ozW7Mp0axo9XXrY8zQ07C1jngDahKHa0kJAO0Ov86VeNbTgKAva3msW15lga7lClcxE/sROL1LeYelR6UY04bV8yxdf2HUel2BJoH2HsOB93Rl5xRcA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CqsTliI4tJ/noBkulXoXbRnVYJOKLpwXhKFjf5fAGPw=;
 b=dwbAS1Dt/71fKowTg6lSWb+pr9VJ3pNpPhEGaeCaLKaNjNmE3rw0QXaM8yA9bErg3ZEJFFBtyrxjZYIKxop0w5cAjuMIgKas7touOGi/zrdKYakh0ZhhjqSbs1RRr2uh1oGx6cykv8D59XDGyhfz5CsNd19tw+39GEp3hVQ/dRY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f33d1ad2-2dbf-4aa7-8785-43fee4e74753@citrix.com>
Date: Tue, 19 May 2026 17:30:39 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2] xen/riscv: fix sstc init to write vstimecmp instead of
 stimecmp
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Baptiste Le Duc <baptiste.le-duc@vates.tech>, xen-devel@lists.xenproject.org
References: <1779207317.8631fc262581453bbf619ec5b2062170.19e4105277b000f373@vates.tech>
 <49d0cbe5-1366-4539-9754-371e9507a54d@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <49d0cbe5-1366-4539-9754-371e9507a54d@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0288.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:195::23) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB7141:EE_
X-MS-Office365-Filtering-Correlation-Id: f4169b49-d130-4867-4c28-08deb5c3f916
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|1800799024|366016|4143699003|11063799006|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	dT7OsxEAlFxs4DCKgode3Yv4a5w30enDf2Z0xEhZnOo/nm5q/PujJ2mHBTmsl1T9hd/1krN9+SMwRvhGKB2LSvoWQS6TXAfRYrlFM0pnx4TW/UJp++meIXB/APVdEh1Tw8w5aF+q+o5S7RGmI1n8Rpv+Gw+3qmya/JvN6d/gsZW+DIHKnbBJGByoGQ4kv0JRV/sSoc7isDF6rVoS45uppoaAqKqBCNbhzZwUcsjWTBpnbhKRCLkfP1JsCcGzrwyK8sRBcNw3CyVCySoFNbApCtst8fnCCOdI6ysEGYRH4JCph8o/RrVGfeeoHnJwPQqyiELLz7K7r63ikknOctGYhFWotn2+inMM7dA3A6zIYH0GjZ4SB5HVp/FBpHKANMJXqMHFpWuggWrqlRRhLzdi3KNWo+EQAWbkHAt5iymJ3Lcz+cQ4PFEBb5DUDxDICWZqtQFxFfb5PW4WM4zJ908TivVlFxMsTfEv6cTnClGpNXZgdIsEzqEgOhSetf5asm0Wbnm9cmGyAZBfv7cjKzDXKh1IPcYueyr8P5QEGPmQftFGmYX7tFtXI4lsy3RTaaWOF8ucqShw4p8mMNDqM5St1TnF6y8zIi/JhzKHzHtACJ8YVpGX0YpWLkoYu2xP/Ykgf6vhsVxcBbaaU6BH7VHbjx07OH+stSkTa3Ae9RaP9PQKmx08lrwYz9C9n2lggQSx
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(4143699003)(11063799006)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bjI4bHhKYlYxRzR5aW9wNC81THVFREhxejkwcCswdVYwUWZlZ243K3M5SGps?=
 =?utf-8?B?Zm1vSzI4V2ljYmNoVE5saTVNbG12ZW9rWkFQTWl2VExPakN3NHhuR2I5L25j?=
 =?utf-8?B?aFgzSkdXZjFrYis2bUtLTEozVDQ1bGxSMW9lMXR6T2hTMHJhMEVRaVkxS1pw?=
 =?utf-8?B?Q0FUb0F0SFhSU3BWb2lleTZKUTNOMkVQM3l2WU5nOGxWaitlbVhqY2NqaTJH?=
 =?utf-8?B?YUV0Z2oxc1h3ekNPNU9lNFZINHhZdHF6NjFveWFDamZEQjU4OUYxNWZ6dmhq?=
 =?utf-8?B?aVhaREZJb3dtc3U0YWdiTmhZLytVWDhyTDVzQ2dMSS8rWnNsbTZKYlZHQytM?=
 =?utf-8?B?T0ZPU2hONXRSMVR3UVJ3QmNCelZobnhna2FXazg0S09ZWUZjVGdsWnJuaXZH?=
 =?utf-8?B?SjhYMnp0UVJKUnVGcnFRYkpDZ1QvMzhuMms2NURTVHo1eFdCTzNVTDdlaVlw?=
 =?utf-8?B?MlE1NGVUVVM1V1puVWhySzI3YXpsQmhZUDdpbEtFb1drNjNlc2plejU4dHhQ?=
 =?utf-8?B?TDBuZGFISUZGWkVGK21uQ2FnU1pBck1VaGk5dnJGOVVzMGxtVitJZEd5bkFQ?=
 =?utf-8?B?bE5lM3BlOEllZWoxcWdHV1Ivem5SUmRWT1kwaTFtWjlWTDFmOTZvSHVoU1Y3?=
 =?utf-8?B?MmwvaGR6L2ZNQzRzMHRsNTdzMUZ2ZEJlYjRVT2hHVEY3dXV5QUd1VWxNL3ky?=
 =?utf-8?B?OWJEYjczVUN6SmhSQmZWTUNXUjVQeU5BR2x5U3RMWGQ2Q0piOFRENm5yR3NR?=
 =?utf-8?B?VGUwbGVQQUdZMGV6b0ZZaTlzUjROTnB0TXhvcmJKeWNrNFMvWmx4dUQyakM2?=
 =?utf-8?B?YUZxbTd1QlJJaE52cHZnbk5XeGsvMElzQVdiaFZqNjlqQUsxbUk1Z0ZSSVNm?=
 =?utf-8?B?UXdtZlVPYmRDRHBtM2o2UmxkZ3RDakwrNTBsRmNydzVoQzcwaFR1cElMTFJn?=
 =?utf-8?B?NGVqYis2WUZ2NnVlZEJvd29Pa2k1VXN2RkJuMmIyVXpTYlVLd1N3eWJCRG5h?=
 =?utf-8?B?ckdENTU5ei92Y3habFQ1bWlzVi9QSlkxK1loRS83UHMrN0kreGV4bWx2TTI3?=
 =?utf-8?B?OEF1b1dYYmU2MVJxUzdYUzhLVWhKRkNrVm9rYVpNdmhPRW5IdXltdmVaL3VY?=
 =?utf-8?B?Z1JWYkVpc1VEalVtNlFwN1JqM0xIVmdhZWFhcnVjZk96aWI4TGhaV2txWFFu?=
 =?utf-8?B?S3hrRkJrcDdaWXN5c0NIOExVZjBhUk5icVRrZ3FhV3R3VysvRDlpUHZWclhz?=
 =?utf-8?B?LzF3TGU3QmlxTUQzN0M2K1ZiVVhXTDFiSnZQbTRncy8xYXFYN2tYRzNkMlc1?=
 =?utf-8?B?T2l2M0plOGdHYXg1SXNiOUhtN0wzNjRJREZKVnd6TlJBSEpPS2xMMWJKMFdu?=
 =?utf-8?B?TzgwYXE1eVAzQjh0MnRiZEJaeG5YNDlFOUVvY1pnVkxhK0JlWW9iTS9IRmpw?=
 =?utf-8?B?bndvOTZ5c2QxNFlJbXdwK1ordjM2bzFoQmhXa3ZzWXNKZlE4NlhFMmw3WE9P?=
 =?utf-8?B?bHRybWlCbjVQT1hXcWxvTVVwR2UwclZmaHZJdjR6MDhRODVzMmppZ2pKakdS?=
 =?utf-8?B?WXB4dlRkc3ExbjFvcWgrZWlhcjJtNUhHTEFwSGhxc2Z6S0FpbTl4SUxuU2VZ?=
 =?utf-8?B?QjluTGhndS9IVjdGVHpmQ2c0T0NlM2JBZTdEQS9VL0hxNDFmeDVBbTNUZHZD?=
 =?utf-8?B?Y0JHT1BCZ1V4V0lPZkpjb1RJa1FVRTV0clhUdTVmbERQZ3E1cVo5R1EvbUhK?=
 =?utf-8?B?ZnJLK3ZmeXR4S1ROd3E2WWk2QnZORkk3a2tyMzFzdCsrSDJpSjVxalJsTGlv?=
 =?utf-8?B?YUptZTdGUXpJVUhXRThUK1FQL2pINWpSUWRoSEk3R3BIZVdnUHQ2MkJabEJ1?=
 =?utf-8?B?T2diajdNM3JNOGNUSGhOdGg4MDZSOEVOQVFaQjdFU2craDNyZlZzL3NORmFy?=
 =?utf-8?B?MTg2NzI1WUN6Z1hvLzlOQ0xCcVdjNm9ORWdYV1FGMURiMlNjOVZNa2hnRERh?=
 =?utf-8?B?ZEVqWlhaLy9YUUhQcWd1MzFIdG85VzJPdTJBL0N4QkNxNnlhaUd3MGFNamNE?=
 =?utf-8?B?N285VDZ1KzJzY0daYmZrVHFmUS9uSzNkM2xIMjd5Zmp3cDNVZHlBck41OUg2?=
 =?utf-8?B?K0NFYWg0bVRZWUhnYWdKVWZhaUpNOGdPL0JrZWh5V0ttemJ2TXhGMTZvYlYw?=
 =?utf-8?B?YlFxMlorU0NGRGJESzlPSy95ZjNsV2phWk9lMjM5dUljeWxSM00xZDN0NnVo?=
 =?utf-8?B?SlduV2RFU282ZkdzZmNGLzUxeWl4bXZNaGZkUDhDa0xITzd6czdrRXQ2SHZh?=
 =?utf-8?B?clBZTjYxZVVrTkIybW5sdDRLL3pvZnphWVpZL1I3T1J2WDFSSVo2dUlvNjRE?=
 =?utf-8?Q?NuL+qwcXtljdKJ0E=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f4169b49-d130-4867-4c28-08deb5c3f916
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 16:30:43.6216
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2+KauG2CKXY8dlF5MUcvoX0+AaYExPzVhMTEdHyqZGB5S1O03DIoOcZi0PM+4InzJp3lCvsmloxR7tBEdmggGYwP5PF28cfV/XVjL8kr5Kk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB7141
X-purgate-ID: tlsNG-42698a/1779208248-18F66F3B-387F35F0/10/73395122804
X-purgate-type: spam
X-purgate-size: 1126

On 19/05/2026 5:28 pm, Oleksii Kurochko wrote:
>
>
> On 5/19/26 6:14 PM, Baptiste Le Duc wrote:
>> According to the comment above initializing of CSR_VSTIMECMP should
>> be used instead of CSR_STIMECM.
>
> Probably, it is something wrong with my e-mail app but this line looks
> long enough.
>
> I think we have to follow 80 chars per line.
>
> Nit: s/CSR_STIMECM/CSR_STIMECMP
>
>>
>> Fixes: 25e032730690 ("xen/riscv: allow Xen to use SSTC while hiding
>> it from guests")
>
> Nit: there is no need for empty line between Fixes: and Signed-off-by.
>
>>
>> Signed-off-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>
> Nit: it also would be nice to put here what was changed, for example,
> ---
> Changes in v2:
>  - Update the commit message.
> ---
>
> Please don't rush to send a new version of the patch. Probably
> committers will agree to make suggested fixes during commit.
>
> With fixes mentioned above:
>  Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

In this case, it's probably easiest for me to fix up on commit to
produce a good example to follow.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue May 19 16:31:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 16:31:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313258.1583477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPNLo-0005Ck-TI; Tue, 19 May 2026 16:31:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313258.1583477; Tue, 19 May 2026 16:31:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPNLo-0005Cd-QQ; Tue, 19 May 2026 16:31:24 +0000
Received: by outflank-mailman (input) for mailman id 1313258;
 Tue, 19 May 2026 16:31:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksii_Moisieiev@epam.com>) id 1wPNLn-0005CV-P6
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 16:31:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPNLn-00CwQx-4z
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 18:31:23 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 6a0c9057-e002-0a2a0a5209dd-0a2a450a9c92-12
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 18:31:23 +0200
Received: from [40.107.130.110]
 (helo=MRWPR03CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 6a0c905a-56b3-0a2a450a0019-286b826eae54-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 18:31:22 +0200
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com (2603:10a6:10:519::5)
 by DB4PR03MB9508.eurprd03.prod.outlook.com (2603:10a6:10:3f4::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Tue, 19 May
 2026 16:31:19 +0000
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908]) by DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908%6]) with mapi id 15.21.0048.013; Tue, 19 May 2026
 16:31:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D3LP6j/WfkSRT25rsp6q1FavxCzD3/tmYAYdQcCv0GGtCMk7kvY1V6TRaR3cYJTb+4ciEr3K4qu0KqQM5dC1XkNFpTTa+LBZroKChdsnRRLYb87tebY97LhQukqMFquZggTIVnMATAL5Oh4q8NeYHN0d7lGPt4oFS06lNXQqm4Eyv0eWgv07nizLuf/L+WeoK4YzezzG9v7LgKzwfpoqnr6rWNIGT9mrEXQoywvqa6WFa0IlcSoZyuoCQ9jqeJY/k/os94bkW+Xcsc+2+2dLkJ3DhTXG6ws5kfPmKulPvcm1zypBIK+0uOqD4/rnyVvZZolHG/g8eMSTe019ZpxWZA==
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=WonWStXbPXKpK/5+hWfiJKnMISdxhPwRH7T5EZ/MGa4=;
 b=KmqIqOivU27QyrZF2+KYpQGYN+qnZvAvnWImMEzneNfIyAfVlNnWaRc9MZECWf+OytXqWDqnG1ScCIRp0atslNsFd1sq1hEx4XLyFgx11ysWMsXQ+ANJN04NZxS6FG6tx+KGOR9OMV5mXY8Yy/nQsN7QmM2d2Wst6GrPHI3S/8IDswreM3h/AVZ8SlCc35wtWXNvUOUQXOQF73Wg6/Sw7RXAevLIbOffll0bLsqNejxusvjwC9SriXSRMVWSBQeQM8k6dQcXe6SBb+D4r1Am/xEawYGkeIyHKVD2UcUIRD/HKDf2PTD4ud4yIuuMxvXOyauLmyLXLAzqUMhSfXLpDA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WonWStXbPXKpK/5+hWfiJKnMISdxhPwRH7T5EZ/MGa4=;
 b=R1vUdP0P9N7Fjn3gUfI8V/ZLc0y3sZ0LQg7L3DW/fOKe2XEQX10YlkbCQ8G++ocp4szgw7cx1GwsBsoWuyuTuYLv82uFL3LaJpuS95VVB8QDW2kxsmqdYbaGdBe5F3iBlLSnyYsYuciwSfWKzvqxAPttKuDyLpI1UnB4enAn8zZEP/RBzvRMym2cKHlup4VhgGomY7BhO9e4Wb8qgxc9nG0FWiDrLgNerFwML0s+nVITNm/HLufJ1Tg45VZA5aJYF4sjMqBuS+WM64AZDSs9hjK7QQvP4Y6xEGyInb73c2srkXqt74pQwqDdwhd2JuGkTF0bvMlRMyAY0Bzvhm6P4w==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <26f52f4a-a830-4430-b0c1-9ca7f761515e@epam.com>
Date: Tue, 19 May 2026 19:31:15 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 0/6] xen/arm: scmi: introduce SCI SCMI SMC multi-agent
 support
To: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Juergen Gross <jgross@suse.com>,
 Anthony PERARD <anthony.perard@vates.tech>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Jan Beulich
 <jbeulich@suse.com>, Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <cover.1775493499.git.oleksii_moisieiev@epam.com>
Content-Language: en-US
From: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1775493499.git.oleksii_moisieiev@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0404.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:cf::6) To DU5PR03MB10263.eurprd03.prod.outlook.com
 (2603:10a6:10:519::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU5PR03MB10263:EE_|DB4PR03MB9508:EE_
X-MS-Office365-Filtering-Correlation-Id: c0f88bd2-f2de-4b3e-a390-08deb5c40ddd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|7416014|376014|22082099003|18002099003|56012099003|11063799006|4133799003;
X-Microsoft-Antispam-Message-Info:
	EjcLMLcsy6DfQvMfHfZhDyT9faw3be0wne+H4pilc3mSkWIjkA7TR6/bfnRGMHKETZh8aT9aeE4RROGirB1ed2uoBuGUd9Mx7EQzKPMDjisH24ab+YrTJ3gnaKBwCp7jKLAc6zLXPgh1w2imzV9q2ilL9rQEtzNI8657bUpMat2nWsX8Pqmj5PTnGSr0SJOCzg9xc0AweT2YQ1GngDg9uXoC9D/2ngxjWhmEun1tw0YNOSzXuFI01JIgAARKNFXEvl4I/Qv0mxCZuAySW3GNmVzr9fDLDdaI+yw6E2NDNUHgLfkQd5sEiCAJJARkvqINnduDcaXlot2x+8deUPz047yWQM5aFkDAShEB3xma+I6EzLO87qR4ZEq2BYs3F+zUzVMBx596qSEyNoz373N7Lf9t98oPClKhGC8D+QD83YscCa5PVms2xTFkRJJqJYe9a9rLOXrEK5iXTtNPvSHUmrADf9zqd1W3j2PuTSOBaK8518MaYCs1Sme6wJ1LUIvfhs/t00Kt1HfO4VZJNKTAr1WwGYPfiG1WdNdczoTleZUY7Z2YPMP/YpYHSjERuuwYV6sJo+vCG4sJFL0PhkEkHv8BY9jYBYXN6eOdMYuXvCT5onL1oeN94yjrJbaPihTfGlODJXIVgp7Jeb/eqNCFTC4CnuUOnNoDOOlU2CQf1ANhXzMP5L1MMIRPy4msxbMrlSff4MP9CE7lm3aXQ6OW2Q==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10263.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(22082099003)(18002099003)(56012099003)(11063799006)(4133799003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dytyTnVNaHRjczRJdmNxMnlNY0czQWZ1SGFRTEFvaEV1MTRIRVoxcU54Nm4y?=
 =?utf-8?B?WllvR3BubUZvMHhTRjZFRzJPUW1VU01tZDdXYXVGT3doeEJ3K1ppZWVWajl0?=
 =?utf-8?B?enQ3cW1tMEU5RTdMK3BMVFdPYVc1OFI4TTlFNzN2bkdPWmVDeVY5TUhBeWhj?=
 =?utf-8?B?NVU2R3BMeldaUTgxejFsQkphdkVHN1JKbUE0MlBDdHllT0pwbjVKK2EwQnVy?=
 =?utf-8?B?QXNRaXhGd2RPREJTNTBzUzBFbXhodDNFRStXdEJHME5TOGcwZWthdENRNXNs?=
 =?utf-8?B?OXNmSHcyemVaa3ZmZFhQNlFSZElXN0YrZHNuamdIeTY3VldWcVFqaXpQVGdE?=
 =?utf-8?B?VGNIN0tKWlRWUEFYaUJFQTR1WXhDQ1Z4THpkdysvVGdWSXB3SnA1VnVoeW5Z?=
 =?utf-8?B?c0YxWEd0ZXRrQ0gxcTh5OUtmRWFyQzNFQ1RKb0paU2MyTHNVcWRXZ0Q0Um8v?=
 =?utf-8?B?a3lXemY4U2NnRzZRSHluUy80Qkk4OHh3N2MwNUJhUDBocWorNnVZZXdDWlpW?=
 =?utf-8?B?WkQ0NUY1d2JaVG56dDAyTVVISzd4N0pOOWw4TFlPWGVock12OW10TU5XaHN0?=
 =?utf-8?B?aFN2TEhQdHFvRGJTSkRRa2lvTTFPT29kM2h5WjNmd0lzMTZrK1R1TkNNLzBy?=
 =?utf-8?B?bGFDOGZwNzRsalBQZDkyS25tRkFnT0tSUVZubFlwcUsrT0FvQitmbHZlOHJI?=
 =?utf-8?B?cVluRElhZkNxSUJSNTBjWnJsNGpDZ2xXU09tenMvYmRyVVZIMHFRSFAyelRt?=
 =?utf-8?B?TlZnSjR2R2NBTTR6L0dwaGJlZ2R1N3BOY2I1OGVSRlhISExmSXdVWjNCL2dh?=
 =?utf-8?B?K1RORkRwZWcrekEvTXRNZWRVTjQ2REw1ck80OXU3U2VQKzJWZE9kMXhHUlNO?=
 =?utf-8?B?THJid3A5SEJjbXlyb0VySS8ycjU3bGZWVEJqMFNHbHc3djNpTkRsRlNTc3gy?=
 =?utf-8?B?YnN4U0Y4Vk51OHBoMU5WZkRRa3B6NHUySUV2cEZ4Q2o4WW5KYXVway9TMTdy?=
 =?utf-8?B?TTRKTy9XWmtqUDZTbStET0FJYzk4NTcwS3NXK3JrdlNaUnNiT2xuWGp5NTVC?=
 =?utf-8?B?eGI4QXF2WSsvTnQ5clhqd3Z5cTdQOGdTOWNhY1FjUHZoejNQcS8wY0F5dnlO?=
 =?utf-8?B?M1BUd2hFKzhPTlpkQlBPRVYxYzN3Q2hySkN1TTdQZnNPYVBpUnRHK0tLUDBE?=
 =?utf-8?B?eU9Jd1hNRU1tKzFpVk5hM2dPT3dqM0dMWHFpK25qcmswTzN0V2V4dTYwK000?=
 =?utf-8?B?bzRGdDFWbGtaWFVmQTlZaFpZc3J1RGVyZmUzb042OVBLbmViOXFuSTdGWDV3?=
 =?utf-8?B?UEhZRWJOQ1RHcGpLQVBNblRhUGNzZXZuWXNYbFpPWTRxbEE1WWprSldSYUlR?=
 =?utf-8?B?bFVsajdnMUYzWiswWHBLQXp5Yk5LU3Q4RVFtT1hFZ3lndlU1SVNGUk13VG5G?=
 =?utf-8?B?SnJPd1lMT0dNSVFxMmwrdXhKcWVNWHpLc21kc2ptSjlSOVhnUk5LQnlLclAr?=
 =?utf-8?B?UkM2Zis1SG5DcXpWTGFvbTRVSjRUaWZkclQ5aGJtSnN5NUhVV3BQVFJBRkZ3?=
 =?utf-8?B?N3MwZnJsbzhaSmk5ekNqU2pUUDVUMGtUcUxUU3V6SFNDVDB5T1ZVUzRlQUVR?=
 =?utf-8?B?c0JoVjMxNXFpRnptQVR3WW0vZkFLYWZadlVPbUYyMys1d1B3c3NYeVZIU1M4?=
 =?utf-8?B?SUxMeGZvUUNjdFNYbHZ1Q21xRXZQVWJ0UGNwNVFuTVp2dnF1OWFST2kySW1t?=
 =?utf-8?B?MnVSUG9KV0tUWGlkZFIyeHAxODkrWmVKS2M0bExsTC9MTXBuUFVSZkxJcGdn?=
 =?utf-8?B?cFNBdlRnanJNcWtlUEMzQ3FsRUZWUmxMQnk3eS9ubHZmcTVxOVJJMnBCODJk?=
 =?utf-8?B?QWFtTVZhQnZVNXA3VDhkektIQzVrU3VHOEhPeWlEWGpPamxBdmc4Q0tkS0d3?=
 =?utf-8?B?cmg5WFIyNkYxQ1NXMnFFSUNram5QVzhhamlTSUhRSDdPaGlTSXdGN050R1FD?=
 =?utf-8?B?SUVXS016cm9heXpmdjY0L1RhbkhnL3VoWGVXS2hteFQ3QURMdTlJWUduQUlj?=
 =?utf-8?B?TmVQcEs2MHlaNkVaaTNPdXZ6NktCMXcrRFViZktPSnRPUWlOL0puWG5hSm9E?=
 =?utf-8?B?VGt1Y3FwZStJbXgrWklMRVNyRDBuSlVXNWZ6TnlobnBSUW14YU1hL1NyM2hS?=
 =?utf-8?B?UTZyRWlWd1lVTERBUU5KUjVZaStzSjk4MEtvSmVLM210Y1pxOHdVbHo5Q3RW?=
 =?utf-8?B?MXFEQWJTZUc0Q0hoSHBPaDBHWWlRWG15VElwc1ZYR0s4dERaS1hOZDE3MHpL?=
 =?utf-8?B?VjZXaTI5REVpc3JQNHFGQjkxVW9CK0hNSVpqaS9tK0dUZG16R3BacytUYkVR?=
 =?utf-8?Q?TwO/3kK0R9gX2P4Y=3D?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c0f88bd2-f2de-4b3e-a390-08deb5c40ddd
X-MS-Exchange-CrossTenant-AuthSource: DU5PR03MB10263.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 16:31:18.7585
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: zdxp4bLjXniSPOx/7oLlTpolDD2XIQ/ZYB2CYk4j/FzqrkHqdLkGUr2CRNRx35ygtS1mXCPzQMHr2hefnR57vgtdm8WoKL1MUx5XosMG4s0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR03MB9508
X-purgate-ID: tlsNG-4011c0/1779208283-7D3858B7-975A755E/0/0
X-purgate-type: clean
X-purgate-size: 16952

Gentle ping for this patch series.

On 06/04/2026 19:39, Oleksii Moisieiev wrote:
> Inroducing patch series which includes implementation of the SCI SCMI
> SMC multi-agent support.
> This patch series follows RFC v5 [3] series which was introducing both
> SCMI single-agent and multi-agent support. After the discussion it was
> decided to split features and upstream singe-agent support first. This
> feature is merged for now to v4.21-rc2.
> I'm starting this patch series from v6 to save the discussion history
> and don't break changes log.
>
> Patch - xen/domctl: extend XEN_DOMCTL_assign_device to handle not
> only iommu
> - add chainged handling of assigned DT devices to support
> access-controller functionality through SCI framework.
> Change was done in two parts:
>   - call to sci_do_domctl() to do_domctl()
>   - update iommu_do_dt_domctl() to check for dt_device_is_protected()
>   and not fail if DT device is not protected by IOMMU
>
> Patch - xen/arm: scmi: introduce SCI SCMI SMC multi-agent driver
> - add Xen-specific SCMI container compatible `xen,sci`
>    under `/chosen/xen`; Xen binds only to the `arm,scmi-smc` inside it and
>    ignores other SCMI nodes (e.g. under `/firmware`).
> - add `scmi-secondary-agents` and `#scmi-secondary-agents-cells` to describe
>    func_id/shmem/(optional agent_id) tuples for secondary agents.
> - each guest using SCMI supplies its agent_id (dom0 via
>    `xem,dom0-sci-agent-id=` parameter in xen,sci compatible node,
>    toolstack via `arm_sci = "type=scmi_smc_multiagent,agent_id=..."`, dom0less
>    via `xen,sci_type` + `xen,sci-agent-id` in `xen,domain`).
> - factor out SCMI generic definitions and shmem code.
> - passthrough configuration for SCMI guests mirrors other HW passthrough.
>
> Patch - docs: arm: add SCI SCMI SMC multi-agent driver docs
> - document the Xen SCMI container under `/chosen/xen/xen_scmi_config` and the
>    mediator’s binding rules; update examples accordingly.
>
> All Xen-specific SCMI configuration now lives under `/chosen/`
> to keep host DT changes isolated while leaving the host `/firmware/scmi`
> untouched for Dom0 consumption.
>
> Code can be found at:
> https://github.com/oleksiimoisieiev/xen/tree/scmi_ma_upstrv6
>
> [1] RFC v2:
> http://patchwork.kernel.org/project/xen-devel/cover/cover.1644341635.git.oleksii_moisieiev@epam.com/
> [2] RFC v3:
> https://patchwork.kernel.org/project/xen-devel/patch/20250311111618.1850927-1-grygorii_strashko@epam.com
> [3] RFC v5:
> https://lore.kernel.org/xen-devel/cover.1753184487.git.oleksii_moisieiev@epam.com/
> [4] SCMI single-agent:
> https://lore.kernel.org/xen-devel/cover.1756995595.git.oleksii_moisieiev@epam.com/
> SCMI spec:
> https://developer.arm.com/documentation/den0056/e/?lang=en
>
> SCMI bindings:
> https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/access-controllers/access-controllers.yaml
>
> Reference EL3 FW:
> RPI5: https://github.com/xen-troops/arm-trusted-firmware/commits/rpi5_dev/
> Renesas v4h:
> https://github.com/GrygiriiS/arm-trusted-firmware/commits/rcar_gen4_v2.7_v4x-scmi_upd/
>
> base-commit: dbe60f244c (Update Xen to 4.21, 2025-02-21)
>
> Changes in v11:
> - Fix agent_id documentation: clarify it applies to SCMI SMC
> multi-agent support only, not plain SCMI SMC (reviewer feedback)
> - Remove "non-zero" from agent_id description to match accepted
> range [0..254]
> - Remove "UINT8_MAX (255) is treated as invalid" from user
> documentation as unnecessary implementation detail
> - Add LIBXL_HAVE_SCMI_SMC_MULTIAGENT feature macro in libxl.h to
> advertise the new scmi_smc_multiagent type and agent_id field
> - Add agent_id validation in
> libxl__arch_domain_build_info_setdefault() to reject invalid values at
> the libxl level, not only in xl
>
> Changes in v10:
> - remove unused sci_do_domctl stub from sci.h
> - removed extra include in memcpy-{to/from}io.c files
> - Fix tabs in MAINTAINERS file
> - remove duplicate SPDX tag from scmi-shmem.c
> - add cast to ARM_SMCCC_INVALID_PARAMETER to settle the sign since
> ARM_SMCCC_INVALID_PARAMETER is -3 which is part of the spec and resp
> is the default smccc call structure.
> - update free_channel_list. Add spinlock to avoid race condition and
> a comment with a description of the function work
> - preserve error of smc_create_channel in scmi_probe
> - check scmi shmem address alignment as wel as it is done for size
> - check for d->arch.sci_data != NULL in scmi_handle_call
> - use SCMI_SHMEM_MAPPED size for iomem_permit_access
> - change len type to unsigned in shmem_{get|put}_message
> - rename shmem_channel_is_free to shmem_channel_status
> - add comment about skipping message status when getting message response
> - Set correct agent_id ranges for dom0less and a toolstack. Agent_id 0
> is not binded for dom0 so can be reused. Also mentioned that
> UINT8_MAX (255) is treated as invalid agent_id.
> - Split hypervisor and toolstack changes into separate commits
> - move init list and spin init after initial checks in probe call
> - fix typo in comments
> - clean resources when sci_register returns an error.
> - Split hypervisor and toolstack changes into separate commits
> - rephrase section about /firmware/scmi. Mentioned that this node is
> taken from Host DT and copied unmodified.
> - fix xen,reg address for secondary domains for Dom0less configuration
>
> Changes in v9:
> - treat SCI as a gate for XEN_DOMCTL_*assign_device: abort before
> IOMMU if sci_do_domctl() returns an error other than -ENXIO, instead
> of trying to propagate SCI errors after a successful IOMMU
> operation. This avoids partial success and the need for IOMMU rollback.
> - remove early return from do_domctl() in the assign_device
> path to keep RCU handling intact.
> - change IS_ENABLED(*) to #ifdef in sci_do_domctl quard
> - reword commit description to refer to memcpy_fromio and memcpy_toio
> - ordering obj-y in Makefile
> - rename ALL_LIBS to ARCH_LIBS
> - drop io.h and move definitions to the common header, fix comments to
> be arch neutral
> - update comments for memcpy_{from/to}io implementation
> - sort and refactor MAINTAINERS enties
> - remove Spurious changes
> - add extra check to avoid ASSERT when calling unmap_channel_memory
> from assign device method
> - set correct tx flag to SCMI_BASE_AGENT_PERMISSIONS_RESET when
> freeing resources. Flag should be set to 1 according to the
> section 4.2.2.12 [0].
> - fix dt node copmaring
> - moved channel->shmem check from ASSERT in unmap_memory_channel to
> "if" statement. This will prevent firing ASSERT if
> unmap_channel_memory was called twice on the same channel.
>
> Changes in v8:
> - check for CONFIG_ARM_SCI to be ebabled instead of COMFIG_ARM before
> calling sci_do_domctl
> - rework sci_do_domctl call to avoid extra checks, improved error
> handling.
> - do not propagate ret1 if sci_do_domctl returned positive ret
> - updated comment in domctl.c code
> - switched to ordered accessors to address the ordering and barrier
> concerns.
> - updated the documentation to match the implementation and explicitly
> state the supported access sizes and granularity.
> - rename memcpy_* implementation files to memcpu-* to follow naming
> convension
> - fix indentation to match Xen style
> - fix intendation to match Xen style
> - move memcpy-{from/to}io to more convenient library place
> - update xen_scmi func_id in commit description
> - updated documentation with the new DT format
> - updated opt_dom0_scmi_agent_id setting to avoid it to be equal
> SCMI_AGENT_ID_INVALID.
> - changed SCMI_AGENT_ID_INVALID from 0xff to UINT8_MAX which makes
> code more clear showing that UINT8_MAX is theated like invalid
> agent_id and couldn't be used. Also excluded SCMI_AGENT_ID_INVALID
> from acceptable value range
> - remove outdated xen,config property ignore, added xen,sci compatible
> to skip_matches in handle_node
> - add documentation for pre-existing scmi-smc-passthrough command line
> option in alphabetically correct location (in 's' section)
> - add note to commit description about documentation for previously
> undocumented scmi-smc-passthrough
> - Fix SMC IDs in DT examples (Xen management uses 0x82000003, Dom0 uses 0x82000002)
> - Add explicit note explaining why Dom0 and Xen channels do not conflict
> - Document dom0less multi-agent configuration example (xen,sci_type / xen,sci-agent-id)
> - Add scmi_xen node to agent-discovery example with #scmi-secondary-agents-cells = 2
> - Drop dom0=sci-agent-id command line handling; Dom0 SCMI is now enabled via
>    xen,dom0-sci-agent-id in the xen,sci DT container
> - Refresh docs and examples to mention the DT property instead of the cmdline option
> - update documentation to match the last DT format
> - fixed RST: "... code-block:: dts" -> ".. code-block:: dts"
> - update documentation with dom0less configuration example
> - update documentation with new param xen,dom0-sci-agent-id
> instead of the command line parameter
>
> Changes in v7:
> - update domctl to build on both Arm and x86 platforms
> - move ret1 declaration to the top of the function as required by code
> style
> - x86 guidance: removed the speculative note; header now just says
>    each arch supplies its own implementation or macro.
> - name spacing: dropped the double-underscore; the helpers are now
>    memcpy_fromio / memcpy_toio. The header also explicitly allows an
>    arch to define these as macros before including it.
> - updated io.c to keep 32-bit transfers safe on arm32
> - moved to __raw_read*/__raw_write* accessors to avoid endianness conversion.
> - split the helpers into separate compilation units
> - rework scmi nodes for xen to match on compatible string instead of
> the direct path
> - update documentation in section of the xen_scmi configuration which
> is matched by "xen,sci" compatible instead of the direct path.
>
> Changes in v6:
> - change iommu_do_domctl and sci_do_domctl command order and
> call sci_do_domctl first which will produce cleaner code path.
> Also dropped changing return code when iommu was disabled in
> iommu_do_domctl.
> - sorted objs in Makefile alhabetically
> - added newline at the end of Makefile
> - used uint{N}_t intead of u{N}
> - add comment about why 32 bit IO operations were used
> - updated cast opertaions to avoid dropping constness which is wrong
> - move function definitions to generic place so the could be reused by
> other arch
> - add SPDX tag to io.c
> - updated scmi-shmem to use io.h from generic location
> - update scmi_agent_id parameter to be provided inside dom0= parameter
> list and have the following format "dom0=sci-agent-id=0"
> This change was done as a response for Stefano comment and
> requires a lot of code changes, but produces much cleaner solution
> that's why I've added it to the code.
> - fix file comments and return codes
> - fix lenght checks in shmem_{get,put}_message to use offsetof
> - remove len member from scmi_channel structure as it is not used
> - set scmi-secondary-agents property to be mandatory since if no
> secondary agents were provided then there is no sence to enable scmi
> when no secondary agents are populated to the Domains
> - update documentation in booting.txt, added xen_scmi node to the
> example
> - adjust d->arch.sci_enabled value in scmi_domain_destroy
> - fix lock management in smc_create_channel call
> - avoid extra map_channel_memory command for Xen management channel
> because collect_agent_id call unmaps memory if DOMID_XEN is not
> set. So for Xen management channel we can init domain_id ad DOMID_XEN
> before calling collect_agent_id so memory shouldn't be unmapped.
> - remove all HVC mentions from the multi-agent doc
> - update sci-agent-id parameter description in the documentation
> - add missing Sign-of
> - minor fixes across the document
>
> Changes in v5:
> - return -EINVAL if mediator without assign_dt_device was provided
> - invert return code check for iommu_do_domctl in
> XEN_DOMCTL_assign_device domctl processing to make cleaner code
> - change -ENOTSUPP error code to -ENXIO in sci_do_domctl
> - handle -ENXIO return comde of iommu_do_domctl
> - leave !dt_device_is_protected check in iommu_do_dt_domctl to make
> code work the same way it's done in "handle_device" call while
> creating hwdom(dom0) and "handle_passthrough_prop" call for dom0less
> creation
> - drop return check from sci_assign_dt_device call as not needed
> - do not return EINVAL when addign_dt_device is not set. That is
> because this callback is optional and not implemented in single-agent driver
> - move memcpy_toio/fromio to the generic place
> - fix device-tree example format in booting.txt, added ";" after "}".
> - update define in scmi-proto.h
> - update define in scmi-shmem.h file
> - scmi_assign_device - do not ignore -EOPNOTSUPP return
> code of the do_smc_xfer
> - remove overwriting agent_channel->agent_id after
> SCMI_BASE_DISCOVER_AGENT call
> - add multi-agent files to the MAINTAINERS
> - add SCMI multi-agent description to the SUPPORT.md
> - handle ARM_SMCCC_INVALID_PARAMETER return code and return -EINVAL
> for smc call
> - updated collect_agents function. Set agent_id parameter as optional
> in scmi-secondary-agents device-tree property
> - introduce "#scmi-secondary-agents-cells" parameter to set if
> agent_id was provided
> - reanme xen,scmi-secondary-agents property to scmi-secondary-agents
> - move memcpu_toio/fromio for the generic place
> - update Xen to get management channel from /chosen/xen,config node
> - get hypervisor channnel from node instead of using hardcoded
> - update handling scmi and shmem nodes for the domain
> - Set multi-agent driver to support only Arm64
> - rework multi-agent driver to leave Host Device-tree unmodified
>
> Changes in v4:
> - toolstack comments from Anthony PERARD
> - added dom0less support
> - added doc for "xen,scmi-secondary-agents"
>
> Grygorii Strashko (2):
>    xen/domctl: chain SCI handling before IOMMU in assign_device domctl
>    docs: arm: add SCI SCMI SMC multi-agent driver docs
>
> Oleksii Moisieiev (4):
>    xen: arm: smccc: add INVALID_PARAMETER error code
>    lib/arm: Add I/O memory copy helpers
>    xen/arm: scmi: introduce SCI SCMI SMC multi-agent driver
>    tools/xl/libxl: wire up SCMI SMC multi-agent configuration
>
>   MAINTAINERS                                   |   1 +
>   SUPPORT.md                                    |  11 +
>   .../arm/firmware/arm-scmi.rst                 | 422 +++++++++
>   docs/man/xl.cfg.5.pod.in                      |  13 +
>   docs/misc/arm/device-tree/booting.txt         | 197 +++++
>   tools/include/libxl.h                         |   8 +
>   tools/libs/light/libxl_arm.c                  |  13 +
>   tools/libs/light/libxl_types.idl              |   4 +-
>   tools/xl/xl_parse.c                           |  12 +
>   xen/arch/arm/Makefile                         |   1 +
>   xen/arch/arm/arch.mk                          |   1 +
>   xen/arch/arm/dom0less-build.c                 |  11 +
>   xen/arch/arm/domain_build.c                   |  39 +
>   xen/arch/arm/firmware/Kconfig                 |  12 +
>   xen/arch/arm/firmware/Makefile                |   1 +
>   xen/arch/arm/firmware/sci.c                   |  36 +
>   xen/arch/arm/firmware/scmi-proto.h            | 164 ++++
>   xen/arch/arm/firmware/scmi-shmem.c            | 118 +++
>   xen/arch/arm/firmware/scmi-shmem.h            |  45 +
>   xen/arch/arm/firmware/scmi-smc-multiagent.c   | 830 ++++++++++++++++++
>   xen/arch/arm/include/asm/firmware/sci.h       |   8 +
>   xen/arch/arm/include/asm/smccc.h              |   1 +
>   xen/arch/arm/lib/Makefile                     |   2 +
>   xen/arch/arm/lib/memcpy-fromio.c              |  55 ++
>   xen/arch/arm/lib/memcpy-toio.c                |  55 ++
>   xen/common/domctl.c                           |  15 +
>   xen/drivers/passthrough/device_tree.c         |   6 +
>   xen/include/public/arch-arm.h                 |   3 +
>   xen/include/xen/io.h                          |  10 +
>   29 files changed, 2093 insertions(+), 1 deletion(-)
>   create mode 100644 xen/arch/arm/firmware/scmi-proto.h
>   create mode 100644 xen/arch/arm/firmware/scmi-shmem.c
>   create mode 100644 xen/arch/arm/firmware/scmi-shmem.h
>   create mode 100644 xen/arch/arm/firmware/scmi-smc-multiagent.c
>   create mode 100644 xen/arch/arm/lib/Makefile
>   create mode 100644 xen/arch/arm/lib/memcpy-fromio.c
>   create mode 100644 xen/arch/arm/lib/memcpy-toio.c
>


From xen-devel-bounces@lists.xenproject.org Tue May 19 17:02:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 17:02:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313277.1583485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPNpj-0001xK-At; Tue, 19 May 2026 17:02:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313277.1583485; Tue, 19 May 2026 17:02:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPNpj-0001xD-8A; Tue, 19 May 2026 17:02:19 +0000
Received: by outflank-mailman (input) for mailman id 1313277;
 Tue, 19 May 2026 17:02:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e41301cfd000f373@swg.vates.tech>)
 id 1wPNph-0001x4-1D
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 17:02:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPNpf-00ClaK-Ez
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 19:02:15 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e41301cfd000f373@swg.vates.tech>)
 id 6a0c978f-2eae-0a2a0a5409dd-0a2a450393e0-26
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 19:02:15 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e41301cfd000f373@swg.vates.tech>)
 id 6a0c9796-672d-0a2a45030019-b9ff1c22b3a1-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 19:02:15 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e41301cfd000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 19 May 2026 17:02:12 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id 8C2EF866D2;
 Tue, 19 May 2026 19:02:11 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=BGLoXKjW+QoctzuaXS2h2JIaLtIBtboZDXZmE8fkcSE=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=Ju25qRR9kZyAI2/uYddduxUAYe/8/YpB4CzLNgpDXmk8WElV0izkAqn00Xz/9pDssfGy9A8YQ
 ZskNSPqP+0AvvJd58Th0q1PVDP1i02SNDb6wFiO2lDCV1tKiFw002O3aezFKznQOrGXl8lrcLU+
 92EtU4BXDQdqzikp9YZJvE2xoGtwK6kOeszMMOxtqdJDMI368xBZj2uc22wYI8CMvsRbHCu6ACQ
 GLiw/YF44304MkMHRt30YJmCSU7d1WFhol39wGGWdaaKRPPsqd+1DXHM6tWcf0QPFIvk5WyFyIS
 sN0hKfkpOF+25c8zi3c0FACSsekvercfT+NpRaNBI9QQ==
X-Zone-Loop: c8b5e218c58bfc1ddf4bc601eb7a8c5f773bc5eced15
x-campaign-type: default
x-transaction-id: b999a90f-18d8-469a-bbec-6dfd0c31f01d
x-swg-uid: 01-5944820a-a82b-41eb-9b90-e26ad13e094f
X-Mailer: Sweego
Message-ID:
 <1779210132.8631fc262581453bbf619ec5b2062170.19e41301cfd000f373@vates.tech>
x-swg-bid: 1779210132.8631fc262581453bbf619ec5b2062170.19e41301cfd000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Tue, 19 May 2026 19:02:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC v1 6/7] x86/svm: Use the emulator path for VMEXIT_HLT
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
 <20260518131404.3716969-7-ross.lagerwall@citrix.com>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
Autocrypt: addr=teddy.astie@vates.tech; keydata=
 xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7LTBVHV/XO
 Zw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJT4ny+OGntnJntUoR
 KRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJAWicutjkkUgd28Bh6HV9EIumH
 tCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaT
 VqMdqul07o72m3eA2mf+LMu9a04FX/d4wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/
 EoucejoZ5SH49ksmVAmKOLktOaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+S
 PhHar7TPKjFz0G3DPNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89
 MXfQXZ3qt1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
 LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWjmoACGwME
 CwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNzuyOVCskwfUZPla6Z
 pd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp0x0HfuhcYfAYPR46XHTvjaJE
 v99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuROxdK8G+YHccJY8PvWSq2K2yiae2KGiAv
 1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhP
 eP3IdpfWc8cyRLXF06Rk46YMYCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcT
 UwgnYlFRk2FLq0QeKEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9
 Egr/Wmu3MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
 f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEMAKiQiZa3
 yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ3DbVf+en3/FvdVZg
 2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTmetSG5/52AjtmPFtlXAk0NmLv
 fJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0s3109sJeXT5ImVdphFs9cvyZyBT9t1Pb
 Rowv58EgV0zE4hbAeVkULAbxFV5b/ExTjjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKb
 Yu6NCfiHfEyB3Xyg9hfdrRgjMRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ov
 XoK4jm+Py0FiUGUaA6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/
 eVtR2Q1wZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
 IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWjmoACGwwA
 CgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiVoUiHYN5QwhnbZnsa
 JDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764QxyX6rld2f2RcWkDuBHun55ZWXj
 by8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk/dS0XTOQi2wVUb17sW/+ybCEokdVacZG
 zOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fuoGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+
 lOWSvdNHgoEkWR0RXBPQjnGmLKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/Off
 O485NOTKwGOxyWb006cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR
 8ULR9nX0LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
 x9fhaZEsniw8/bYgC3igkk5YJiOa
In-Reply-To: <20260518131404.3716969-7-ross.lagerwall@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------ar0zEbDrBzvgrywSSB5oec8Y"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779210131697
X-purgate-ID: tlsNG-33051d/1779210135-41197938-DC9C9EF9/0/0
X-purgate-type: clean
X-purgate-size: 11334

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------ar0zEbDrBzvgrywSSB5oec8Y
Content-Type: multipart/mixed; boundary="------------rH8w30eBaf70kN5g283p00Ix";
 protected-headers="v1"
From: Teddy Astie <teddy.astie@vates.tech>
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
Message-ID: <02ba0a06-2df2-4f27-9d72-4cf77fbe9149@vates.tech>
Subject: Re: [RFC v1 6/7] x86/svm: Use the emulator path for VMEXIT_HLT
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
 <20260518131404.3716969-7-ross.lagerwall@citrix.com>
In-Reply-To: <20260518131404.3716969-7-ross.lagerwall@citrix.com>

--------------rH8w30eBaf70kN5g283p00Ix
Content-Type: multipart/mixed; boundary="------------bhFvJUHuc3jXUnzYdCXeC0gT"

--------------bhFvJUHuc3jXUnzYdCXeC0gT
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

SGVsbG8sDQoNCkhlcmUgaXMgbXkgZmVlZGJhY2sgZnJvbSBhIFNFVi1FUyBpbXBsZW1lbnRh
dGlvbiBwZXJzcGVjdGl2ZSwgYXMgaXQgaGFzIA0Kc3BlY2lmaWMgbmVlZHMgcmVsYXRlZCB0
byBzb21lIFZNRVhJVCBoYW5kbGluZy4NCg0KTGUgMTgvMDUvMjAyNiDDoCAxNToxNCwgUm9z
cyBMYWdlcndhbGwgYSDDqWNyaXTCoDoNCj4gU2lnbmVkLW9mZi1ieTogUm9zcyBMYWdlcndh
bGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5jb20+DQo+IC0tLQ0KPiAgIHhlbi9hcmNoL3g4
Ni9odm0vZW11bGF0ZS5jICAgICB8ICA1ICsrKysrDQo+ICAgeGVuL2FyY2gveDg2L2h2bS9z
dm0vZW11bGF0ZS5jIHwgIDIgKy0NCj4gICB4ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYyAg
ICAgfCAyNCArKysrKysrKysrKy0tLS0tLS0tLS0tLS0NCj4gICB4ZW4vYXJjaC94ODYvaHZt
L3N2bS9zdm0uaCAgICAgfCAgMSArDQo+ICAgNCBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRp
b25zKCspLCAxNCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94
ODYvaHZtL2VtdWxhdGUuYyBiL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jDQo+IGluZGV4
IGM5NTUzY2QyODIzOC4uNDcxYzAzMmMxZTljIDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC94
ODYvaHZtL2VtdWxhdGUuYw0KPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYw0K
PiBAQCAtMjgwMCw2ICsyODAwLDExIEBAIHN0YXRpYyBpbnQgX2h2bV9lbXVsYXRlX29uZShz
dHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCAqaHZtZW11bF9jdHh0LA0KPiAgIA0KPiAgICAgICAg
ICAgc3dpdGNoICggaHZtZW11bF9jdHh0LT5pbnNuICkNCj4gICAgICAgICAgIHsNCj4gKyAg
ICAgICAgY2FzZSBJTlNUUl9ITFQ6DQo+ICsgICAgICAgICAgICBodm1lbXVsX2N0eHQtPmN0
eHQucmV0aXJlLmhsdCA9IHRydWU7DQo+ICsgICAgICAgICAgICByYyA9IFg4NkVNVUxfT0tB
WTsNCj4gKyAgICAgICAgICAgIGJyZWFrOw0KPiArDQo+ICAgICAgICAgICBkZWZhdWx0Og0K
PiAgICAgICAgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOw0KPiAgICAgICAgICAgICAg
IHJjID0gWDg2RU1VTF9VTkhBTkRMRUFCTEU7DQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94
ODYvaHZtL3N2bS9lbXVsYXRlLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9lbXVsYXRlLmMN
Cj4gaW5kZXggMWRkODMwYTMxYmQ3Li4zMWYzY2Q4OGE4NTggMTAwNjQ0DQo+IC0tLSBhL3hl
bi9hcmNoL3g4Ni9odm0vc3ZtL2VtdWxhdGUuYw0KPiArKysgYi94ZW4vYXJjaC94ODYvaHZt
L3N2bS9lbXVsYXRlLmMNCj4gQEAgLTE2LDcgKzE2LDcgQEANCj4gICAjaW5jbHVkZSAic3Zt
LmgiDQo+ICAgI2luY2x1ZGUgInZtY2IuaCINCj4gICANCj4gLXN0YXRpYyB1bnNpZ25lZCBs
b25nIHN2bV9uZXh0cmlwX2luc25fbGVuZ3RoKHN0cnVjdCB2Y3B1ICp2KQ0KPiArdW5zaWdu
ZWQgbG9uZyBzdm1fbmV4dHJpcF9pbnNuX2xlbmd0aChzdHJ1Y3QgdmNwdSAqdikNCj4gICB7
DQo+ICAgICAgIHN0cnVjdCB2bWNiX3N0cnVjdCAqdm1jYiA9IHYtPmFyY2guaHZtLnN2bS52
bWNiOw0KPiAgIA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMg
Yi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYw0KPiBpbmRleCBmNDlkMmViYmZkZDUuLjJk
NjAyMmQ2MjM4YyAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMN
Cj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMNCj4gQEAgLTIwNTEsMTggKzIw
NTEsNiBAQCBzdGF0aWMgdm9pZCBzdm1fZG9fbXNyX2FjY2VzcyhzdHJ1Y3QgY3B1X3VzZXJf
cmVncyAqcmVncykNCj4gICAgICAgICAgIGh2bV9pbmplY3RfaHdfZXhjZXB0aW9uKFg4Nl9F
WENfR1AsIDApOw0KPiAgIH0NCj4gICANCj4gLXN0YXRpYyB2b2lkIHN2bV92bWV4aXRfZG9f
aGx0KHN0cnVjdCB2bWNiX3N0cnVjdCAqdm1jYiwNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPiAtew0KPiAtICAgIHVu
c2lnbmVkIGludCBpbnN0X2xlbjsNCj4gLQ0KPiAtICAgIGlmICggKGluc3RfbGVuID0gc3Zt
X2dldF9pbnNuX2xlbihjdXJyZW50LCBJTlNUUl9ITFQpKSA9PSAwICkNCj4gLSAgICAgICAg
cmV0dXJuOw0KPiAtICAgIF9fdXBkYXRlX2d1ZXN0X2VpcChyZWdzLCBpbnN0X2xlbik7DQo+
IC0NCj4gLSAgICBodm1faGx0KHJlZ3MtPmVmbGFncyk7DQo+IC19DQo+IC0NCj4gICBzdGF0
aWMgdm9pZCBzdm1fdm1leGl0X2RvX3JkdHNjKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdz
LCBib29sIHJkdHNjcCkNCj4gICB7DQo+ICAgICAgIHN0cnVjdCB2Y3B1ICpjdXJyID0gY3Vy
cmVudDsNCj4gQEAgLTIzNjMsNiArMjM1MSwxMyBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBz
dm1fc2V0X3JlZyhzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHJlZywgdWludDY0X3Qg
dmFsKQ0KPiAgICAgICB9DQo+ICAgfQ0KPiAgIA0KPiArc3RhdGljIHZvaWQgc3ZtX2VtdWxh
dGVfb25lKHN0cnVjdCBodm1fZW11bGF0ZV9jdHh0ICpjdHh0KQ0KPiArew0KPiArICAgIGN0
eHQtPmluc25fbGVuID0gc3ZtX25leHRyaXBfaW5zbl9sZW5ndGgoY3VycmVudCk7DQo+ICsg
ICAgaWYgKCAhaHZtX2VtdWxhdGVfb25lX2N0eHQoY3R4dCkgKQ0KPiArICAgICAgICBodm1f
aW5qZWN0X2h3X2V4Y2VwdGlvbihYODZfRVhDX0dQLCAwKTsNCj4gK30NCj4gKw0KPiAgIHN0
YXRpYyBzdHJ1Y3QgaHZtX2Z1bmN0aW9uX3RhYmxlIF9faW5pdGRhdGFfY2ZfY2xvYmJlciBz
dm1fZnVuY3Rpb25fdGFibGUgPSB7DQo+ICAgICAgIC5uYW1lICAgICAgICAgICAgICAgICA9
ICJTVk0iLA0KPiAgICAgICAuY3B1X3VwX3ByZXBhcmUgICAgICAgPSBzdm1fY3B1X3VwX3By
ZXBhcmUsDQo+IEBAIC0yNDk2LDYgKzI0OTEsNyBAQCB2b2lkIGFzbWxpbmthZ2Ugc3ZtX3Zt
ZXhpdF9oYW5kbGVyKHZvaWQpDQo+ICAgICAgIHZpbnRyX3QgaW50cjsNCj4gICAgICAgYm9v
bCB2Y3B1X2d1ZXN0bW9kZSA9IGZhbHNlOw0KPiAgICAgICBzdHJ1Y3QgdmxhcGljICp2bGFw
aWMgPSB2Y3B1X3ZsYXBpYyh2KTsNCj4gKyAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCBj
dHh0Ow0KPiAgIA0KPiAgICAgICByZWdzLT5yYXggPSB2bWNiLT5yYXg7DQo+ICAgICAgIHJl
Z3MtPnJpcCA9IHZtY2ItPnJpcDsNCj4gQEAgLTI4NDAsNyArMjgzNiw5IEBAIHZvaWQgYXNt
bGlua2FnZSBzdm1fdm1leGl0X2hhbmRsZXIodm9pZCkNCj4gICAgICAgfQ0KPiAgIA0KPiAg
ICAgICBjYXNlIFZNRVhJVF9ITFQ6DQo+IC0gICAgICAgIHN2bV92bWV4aXRfZG9faGx0KHZt
Y2IsIHJlZ3MpOw0KPiArICAgICAgICBodm1fZW11bGF0ZV9pbml0X29uY2UoJmN0eHQsIE5V
TEwsIE5VTEwsIHJlZ3MpOw0KPiArICAgICAgICBjdHh0Lmluc24gPSBJTlNUUl9ITFQ7DQo+
ICsgICAgICAgIHN2bV9lbXVsYXRlX29uZSgmY3R4dCk7DQo+ICAgICAgICAgICBicmVhazsN
Cg0KDQpJbiB0aGlzIGNhc2UsIG1vc3Qgb2YgdGhlIGxvZ2ljIGlzIGhpZGRlbiBiZWhpbmQg
c3ZtX2VtdWxhdGVfb25lKCk7IA0KaG93ZXZlciwgU0VWLUVTIGNoYW5nZXMgc29tZSBhc3Bl
Y3RzIG9mIHRoZSBWTUVYSVRfSExUIGJlaGF2aW9yICh0aGlzIGlzIA0KdGhlIHNhbWUgZm9y
IGUuZyBWTUVYSVRfUEFVU0UpLg0KDQpXaXRoIFNFVi1FUywgd2UgY2FuJ3QgYWNjZXNzIHRo
ZSBDUFUgcmVnaXN0ZXJzIGFueW1vcmUgYnV0IGhsdCBjYW4gc3RpbGwgDQpiZSBpbnRlcmNl
cHRlZCAoaXQncyBhICJBdXRvbWF0aWMgRXhpdCAoQUUpIiksIGluIHRoaXMgY2FzZSwgdGhl
IENQVSANCmluY3JlYXNlcyBSSVAgaXRzZWxmICh0aGlzIGlzIGRvY3VtZW50ZWQgaW4gU0VW
LUVTIHNlY3Rpb24gb2YgdGhlIEFQTSksIA0KYW5kIHdlIGp1c3QgaGF2ZSB0byBlbXVsYXRl
IHRoZSBITFQgYmVoYXZpb3IuIEhvdyB3b3VsZCB0aGF0IHNwZWNpZmljIA0KYmVoYXZpb3Ig
Zml0IGluIHRoaXMgbmV3IGRlc2lnbiA/DQoNCldlIGNhbiBza2lwIGluY3JlYXNpbmcgcmlw
IGluIHRoaXMgc3BlY2lmaWMgY2FzZSwgYnV0IGl0J3Mgbm93IGNvbW1vbiBjb2RlLg0KDQo+
ICAgDQo+ICAgICAgIGNhc2UgVk1FWElUX0lPSU86DQo+IGRpZmYgLS1naXQgYS94ZW4vYXJj
aC94ODYvaHZtL3N2bS9zdm0uaCBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5oDQo+IGlu
ZGV4IGY3NWJjYTdjNWY2Ni4uOTQyMmRiZDM4YTc4IDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJj
aC94ODYvaHZtL3N2bS9zdm0uaA0KPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0u
aA0KPiBAQCAtMzYsNiArMzYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc3ZtX2ludmxwZ2Eo
dW5zaWduZWQgbG9uZyBsaW5lYXIsIHVpbnQzMl90IGFzaWQpDQo+ICAgICAgIGFzbSB2b2xh
dGlsZSAoICJpbnZscGdhIiA6OiAiYSIgKGxpbmVhciksICJjIiAoYXNpZCkgKTsNCj4gICB9
DQo+ICAgDQo+ICt1bnNpZ25lZCBsb25nIHN2bV9uZXh0cmlwX2luc25fbGVuZ3RoKHN0cnVj
dCB2Y3B1ICp2KTsNCj4gICB1bnNpZ25lZCBpbnQgc3ZtX2dldF9pbnNuX2xlbihzdHJ1Y3Qg
dmNwdSAqdiwgdW5zaWduZWQgaW50IGluc3RyX2VuYyk7DQo+ICAgdW5zaWduZWQgaW50IHN2
bV9nZXRfdGFza19zd2l0Y2hfaW5zbl9sZW4odm9pZCk7DQo+ICAgDQoNClRlZGR5DQo=
--------------bhFvJUHuc3jXUnzYdCXeC0gT
Content-Type: application/pgp-keys; name="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Disposition: attachment; filename="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7L
TBVHV/XOZw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJ
T4ny+OGntnJntUoRKRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJA
WicutjkkUgd28Bh6HV9EIumHtCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO
8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaTVqMdqul07o72m3eA2mf+LMu9a04FX/d4
wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/EoucejoZ5SH49ksmVAmKOLkt
OaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+SPhHar7TPKjFz0G3D
PNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89MXfQXZ3q
t1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWj
moACGwMECwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNz
uyOVCskwfUZPla6Zpd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp
0x0HfuhcYfAYPR46XHTvjaJEv99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuR
OxdK8G+YHccJY8PvWSq2K2yiae2KGiAv1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50
wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhPeP3IdpfWc8cyRLXF06Rk46YM
YCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcTUwgnYlFRk2FLq0Qe
KEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9Egr/Wmu3
MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEM
AKiQiZa3yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ
3DbVf+en3/FvdVZg2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTm
etSG5/52AjtmPFtlXAk0NmLvfJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0
s3109sJeXT5ImVdphFs9cvyZyBT9t1PbRowv58EgV0zE4hbAeVkULAbxFV5b/ExT
jjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKbYu6NCfiHfEyB3Xyg9hfdrRgj
MRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ovXoK4jm+Py0FiUGUa
A6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/eVtR2Q1w
ZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWj
moACGwwACgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiV
oUiHYN5QwhnbZnsaJDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764Qxy
X6rld2f2RcWkDuBHun55ZWXjby8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk
/dS0XTOQi2wVUb17sW/+ybCEokdVacZGzOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fu
oGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+lOWSvdNHgoEkWR0RXBPQjnGm
LKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/OffO485NOTKwGOxyWb0
06cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR8ULR9nX0
LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
x9fhaZEsniw8/bYgC3igkk5YJiOa
=3DlUIA
-----END PGP PUBLIC KEY BLOCK-----

--------------bhFvJUHuc3jXUnzYdCXeC0gT--

--------------rH8w30eBaf70kN5g283p00Ix--

--------------ar0zEbDrBzvgrywSSB5oec8Y
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmoMl5MFAwAAAAAACgkQZg+p0QLLz9AR
YwwArB88u2eJvYlIhEgg5PGGX/aCbLgFKuI1kNSfLqpG7GR0atKOJR66FG9eV+Bgn4LaLukUXIF4
cJNvFSmc5tYLSyhXh1YdO7lCSbn/hn5px0TqyTkJVKVjPCGgCbGXcVcNIFiF3knk20LG7jmiQB6y
KCICU/Vdf6ALiLrgzK53Ck/R6Ck+b+xa5DGL977IF4WWMsv6wndFVwwCHqrT2K5J2oqlZVWd6vYY
ANFERjfi0xirAKg8zzyDKbXoEZ8VAX8wGJu/uUl45ZRLIrjrSl4lgpy57q9VqhafQ4bJ2mz8oiZS
DAkE8YNpBvKjWn4EDqPfRQ1KFE+5e+z+zCHvL3O/IQ79VQ3Hm4R5kkIUZ4VxteMs8o1Py3MqNt0s
d8RafIL0Uhl8rqAffXsNBO1IJanTGUDqpGSwWMzuNDXPb06mrJw2jEXvXLqH9pNEllwFaKnsmwsL
w2dtvUvA090SCWou+TgSOLDlBU7vyAc+Sqn6D2m6ODBYwLrzgojaPQZqyIcJ
=2FnW
-----END PGP SIGNATURE-----

--------------ar0zEbDrBzvgrywSSB5oec8Y--


From xen-devel-bounces@lists.xenproject.org Tue May 19 17:15:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 17:15:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313285.1583495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPO2V-0003sc-DV; Tue, 19 May 2026 17:15:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313285.1583495; Tue, 19 May 2026 17:15:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPO2V-0003sV-AY; Tue, 19 May 2026 17:15:31 +0000
Received: by outflank-mailman (input) for mailman id 1313285;
 Tue, 19 May 2026 17:15:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wPO2T-0003sP-DP
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 17:15:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPO2S-007bSM-B8
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 19:15:28 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c9a97-e002-0a2a0a5209dd-0a2a450cbf8e-30
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 19:15:28 +0200
Received: from [40.93.196.44]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0c9aae-62f1-0a2a450c0019-285dc42c9fe1-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 19:15:27 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA6PR03MB7998.namprd03.prod.outlook.com (2603:10b6:806:42e::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Tue, 19 May
 2026 17:15:24 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Tue, 19 May 2026
 17:15:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GQVMwMqTctepAkHA0Fk83kRfFAsacoYzV58cIJWtwvOB6AHWbE8J0Yv4aNc9oGbDN2v5E/Pw9ZUXgkR0Ga4PZfYUQ48F4gKTofvf9wMYYjq0PXokYgIv1OkX/WytzFtOmCc0MMlHZ7vjR795DHSvO0Ej/OK+A0BKVDk4LQPLCMKkiFbwNX7M/xr6Mf2+HlFw8Sz5mJdTkNQfEZCLKJwznrPH5mF/sGPcjRGIODIO1Zo7HLlXgoYZyLwtqVxk5iUbBGai/HBMR1FPkA/gmadXeGAUlIXV0Ky+W46Kgr5MsXz2imMeXFlNvE7HVn4XG1PuAMNfPw4WhJkDz8WZxXMk7Q==
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=QaKilY3q6vWh3mxKUZf39XWzw1pXnR6ACYxasrZqYS4=;
 b=V+278Fe6mAqffU8qcBByfZO4Gnn1JPvbvYK4MhKJ9OxCTsPC64kLqwCAYcOcWhKiNZ2zOg/1Fkrnk6jNqKFbScyUVncqPC6okGHHjkhNMZakyjlK+EH6XLkw4VYM8pxVQZx1KFRE1A4X7QmbpdQUkCG4Y4HIE2cGCi9ihMzFJHbu40BzZ7wNzzNi6QczSdOUrpqS09dE4Owc4qmHaQHV32aRvFXE+Sa8RymA7r1CbQ4/TmkoKHIMa1/w5oQSJkP1u2RFVJGb2h1DGjIyweh8eFeN1w+OH3remzRg+ZCyPnI+RaxQE24eocZdEbX5O6gxiofGhYZhTCxGhbt6/4Vz9Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QaKilY3q6vWh3mxKUZf39XWzw1pXnR6ACYxasrZqYS4=;
 b=yvOhx3FthFLodtafwjcmBL0ivahfe0Gt0EhRn+VCbJtKdTyrUl9VN8ALFkZUvaCE3iXHFg7mSir6l0nFrYzbaUw4Q9SaYleVEIpnlnTG4AW5Mg3C/5y+NBQ+RbxysIL+zv1ULtRDL9KfBNsCBKnPcg12q7FZf34t4ZxjBKb2qNs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a32b18e8-bdb0-4c11-97a6-ea67541140bd@citrix.com>
Date: Tue, 19 May 2026 18:15:18 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 5/5] RFC: pci: Migrate pci_mmcfg_{read,write} to pci.c
To: Jan Beulich <jbeulich@suse.com>, Teddy Astie <teddy.astie@vates.tech>
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117765.8631fc262581453bbf619ec5b2062170.19e3baeb295000f373@vates.tech>
 <7ac53569-acca-44f7-a129-99b5dcb97500@citrix.com>
 <6430026d-dfa9-4006-86cd-e228625a1914@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <6430026d-dfa9-4006-86cd-e228625a1914@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR3P193CA0014.EURP193.PROD.OUTLOOK.COM
 (2603:10a6:102:50::19) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA6PR03MB7998:EE_
X-MS-Office365-Filtering-Correlation-Id: c6a8983d-4a39-4d7c-bd10-08deb5ca36d3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|4143699003|56012099003|18002099003|3023799006|5023799003|11063799006|22082099003;
X-Microsoft-Antispam-Message-Info:
	vpsr1kyHa3QRh03acO7KHJJQdNaOoxrMGUIjel7xHmlFwp/J4c9ISficrq/9tRB7vgkLJf5jOhQtO1wOfQIbhm9ohSgXBoSjds9LgpPCGNAkusuhy3cmz/qtHD0ukCVdnlkh55BnQLDwn68Wawg/AL60+P7WsrI4IupPvAALuaLrVKuHVaufiYhHzEcr/0HVOxhpX3Phhnj0D58reYnwhtjdTfB9iiBZfjUeFaKakRCCBRteaOEyHwWu8kH9WYuWZwkhEl+PkkL3FreJ3ut/TJeL1jH5co2L2eSylXqzYD4JiZT/DK70+hKFjC3n/bzHpV1gGkoRznaDYNtGkCBn6rS4rWatEW2eYrbETP5JtW2z9PhbrCcbpYZlCWlffTjCrMSoDaFxrir9JexuGPy1nNzsbLVlDGtw9C8HDNDhdtUVrNV0POF7MFlTblCSfj9xr7QF1UH4/Jyyr99q2Zk/YKDGaZDH4KEEqumM2vDtuGebrSzzCwQB3iBZfvhCbZEqD6eB9Taw2y33rJyF5gjck5Kp5KN9Ffw01BOlsLsysOWOeSqUPjWLJ3TyVb8vgLYSinXw1TKIfYncgbfuW+O4fi59uFyAVrD6oxyCU/LBSqF2DXHp23Dk4ax1y0sUXzEQenOs8Bqwudpuy8StO4AbRl89x4MkJ03rmk7mbDr56CHGDUlKbDEGhhHRrfEWFz8V
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(4143699003)(56012099003)(18002099003)(3023799006)(5023799003)(11063799006)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Y1JPNUZPdVJMZnpoQ2lMYUFNMFI3anp4blRJTmh1TE5ycWxyOWNIRm1qVnBj?=
 =?utf-8?B?eUg0YisxbnY3eTJSbnR4d0pETEJ3cko0YzJrOUhjRWhmS3pETjl3ajU5aFJT?=
 =?utf-8?B?OFVkMC9GYlBRaXJFNk5PaXFsT3lwQWp3ZnZZb1RRSFJ4UGxFMCs0ZWN5dmc4?=
 =?utf-8?B?YkFDRHEyQWwwTkw0QTZyeS9hN1dmZ3RwTWozNU92dk5NR0ZYZHlVNFBQZlFw?=
 =?utf-8?B?YWYyTy9paHluSlpXOFl4SCtDakJYNVk5bEFvK2RlK2ZPdTB3T3N5Qi8rTWpm?=
 =?utf-8?B?OTdieGRYb0VwYkVBbi9YU2h4UitqWEJpU1ZGejl4WUJQNkFQWGJCVkFPTG0r?=
 =?utf-8?B?a1NvWWI1RXZjbUplbzliYmZKR09vYVdvNEllRFpWUUVxalRDT2t2YlRWaDhk?=
 =?utf-8?B?ZWxlMXdkYys3ZWxGSjlGLzNtQmMvTktGR0xLMSs5WXNnZGE2bldWZ3ZkdXla?=
 =?utf-8?B?RkNLd3hpdHU3ZVFZZDhIRmpacmloNnZtcDA0UVZkMGZJL2hCTmlKeExmK1M3?=
 =?utf-8?B?Y3ZYUzBTUmtpODNuRlBvLzduV0lWeHVHTTRzMGUxOUJTcU1iS3pWMVdrVFBh?=
 =?utf-8?B?cFFpNDZ1L1pHeC9rMlFrdmZWLzFEVDFCNmV6Q0FFaEtNMWhqM09ObGpqcEdO?=
 =?utf-8?B?eUxvWGJmY0tBWS83TEpvKzRQN0c1YXZQbW40RmFKWDJUSkZjUVJLdUkxL0hH?=
 =?utf-8?B?cmhzQzdnYlArMk83YlpPUjlPRWRzT3hlQUtpb2swSTBpSk9pelBic2lNSmU4?=
 =?utf-8?B?YWhnSWNSNmg3bGlGME4wOTdaZTc2TG1BY2ZHSVROTXhRVVFIcm9nWmZHelVC?=
 =?utf-8?B?S1c1b0lybjVxY3pKR3IyMUVRUSt4TTBGRFJMK2QyVVpnd0YwQUpDbm9Rcm80?=
 =?utf-8?B?N0NhUXNKelp0UkNPT242OUNnK2RQZWdrUEVCRzZkVWFKZ0h6UUgxQUEwdG9Q?=
 =?utf-8?B?akVPVXU4d2FzZEFMOEhGaFAvWHM3YWRWM1F2WGM4dXJXRHlMcjhjZUZLUTNR?=
 =?utf-8?B?eXNSdWVtejlxdS9HSkJVZkJ1bDBJLzU2bndtcjQyN1hSRFVUbGN0UVhXalla?=
 =?utf-8?B?V0JQUHN6UTBtZUFWYmExRU0xV1hVVTNZeGl5bnIydHdxbmxEcWVKeUNwNGp1?=
 =?utf-8?B?VUVubXlvMmpiUWpIdUVWTGpjSVV0TDU0UlFOTnZma1djVUpYR0grejRDOG9i?=
 =?utf-8?B?a0hWT0lEQjFOeGRHWUNVa3N6L3Q3ZTdHNkRYVlVtU0FTaHZtM25qUS9tVnA2?=
 =?utf-8?B?c2FpZmxQNDJ4cUtyWDc4QlVPSUVvc2tjYW52aHFvVmFiYytWdnRWczF1K1p2?=
 =?utf-8?B?cjJMODRtMEZPV1lzSy9BUFN1cFB1TmNyM1NHSEJmSTU2VDZyejNFQ0dSb2dW?=
 =?utf-8?B?MEVVTFljS0ZMRlFtWnNkejNHSGFUMWx1aUtrTkxaa1ZJc1p0Z3ZTNVBvU2Fu?=
 =?utf-8?B?RDRDcVpNaDBuMGlqWC9FdnIweFNHZm16Y2VIU09uK2dxeG5nM2pqZUdwRkxo?=
 =?utf-8?B?eCtLbk42Q2g3TWM5YXVsbFBZc1ZlM3h1a1ZhMkhOL2RaZHRkY0doNkUwKzRr?=
 =?utf-8?B?UmNNSFpXMzJFWG5QZmhxTGVzWVdxUDJja0hYREdUaklnZEVteVZCSzEydkN3?=
 =?utf-8?B?OTBBSFYvdklwY0IvZDNnNXpEWENMajJJQ0hKTUtwc2J1NmFodXJ6WTVmQWM2?=
 =?utf-8?B?TTA3SDAxNUtkd3hFNU8xRzd2b2w5dk5vQldtSWY3bUJGSG5CeVJWYnhNK1BH?=
 =?utf-8?B?U0ZBelhTMFF1Wi9XRnZlbloreFMwRDFlUHo4M3VuZkM4ZC85NHZxWCtMNlVa?=
 =?utf-8?B?c3BJTm5EOVNNUUJOWkFrRFRWbVlhU3NLRVd2cWx0NGpvcVZkcTh3NkNJMTRt?=
 =?utf-8?B?T2wxREh6RDRCSVVNYTJCaUgwend5alE2S1dlRGM4Uks0cEhRWG0xdFhpS3Ja?=
 =?utf-8?B?eTNCa0llVmNSYmpJMmQrOWg1bmxRL2dHYlFwSnh6Q2N5bzc5NkFGcjRpN2RK?=
 =?utf-8?B?Z0tDVHdXMkx2bkd1WlF6L0RXWHV2MXoxY25CWm1UZnRjNHZJcVczUE1sQkJX?=
 =?utf-8?B?OHMvY2MxUXcrMHRGUVhwZFRsS09JV3FSNjZxMFk4bklTRDBOV3RoSWhqU0Fu?=
 =?utf-8?B?cWpkTSs2SHorUFhuRjJUMjVteWlTdkwvSHFmMFloT3hBeUNjSXk1MXBOMklZ?=
 =?utf-8?B?WXRrTVBZNks0Ukx4VkJpMG1BaEpNMjRSTFhHRmhzbUJRZy9vdW91cUNVQmsw?=
 =?utf-8?B?NFNGUXpXazBvcTZtbFVVWGx5aW1KaUs0Vm9TWlFYVkJYZ3l2RU1NcFdVcjFM?=
 =?utf-8?B?blRDK1VNQ1VXY20raS84SlNXYVgxOG4zaE1YeHBiR3JUa3pYUitzdHVCaHNz?=
 =?utf-8?Q?fw5Xs9fBWCuvun/w=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c6a8983d-4a39-4d7c-bd10-08deb5ca36d3
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 17:15:24.2233
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ekrycfovhJlfxwV4I12wbtpmnv6x2Uj6T2Rdi9eX9mDo5WM4TycPTZAQwuXeLsmFe+eRZ0ZUT/JgUS1kqzo82OAJw05LrsbeHdtQKFtliaw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR03MB7998
X-purgate-ID: tlsNG-d25034/1779210928-D9F6ACF5-BB9CEF8C/0/0
X-purgate-type: clean
X-purgate-size: 5046

On 19/05/2026 7:02 am, Jan Beulich wrote:
> On 18.05.2026 19:35, Andrew Cooper wrote:
>> On 18/05/2026 4:21 pm, Teddy Astie wrote:
>>> --- a/xen/arch/x86/x86_64/mmconfig_64.c
>>> +++ b/xen/arch/x86/x86_64/mmconfig_64.c
>>> @@ -133,6 +46,25 @@ static void __iomem *mcfg_ioremap(const struct acpi_mcfg_allocation *cfg,
>>>      return (void __iomem *) virt;
>>>  }
>>>  
>>> +char __iomem *pci_mmcfg_base(unsigned int seg, unsigned int *bus)
>>> +{
>>> +    struct acpi_mcfg_allocation *cfg;
>>> +    int cfg_num;
>>> +
>>> +    for (cfg_num = 0; cfg_num < pci_mmcfg_config_num; cfg_num++) {
>>> +        cfg = pci_mmcfg_virt[cfg_num].cfg;
>>> +        if (cfg->pci_segment == seg &&
>>> +            (cfg->start_bus_number <= *bus) &&
>>> +            (cfg->end_bus_number >= *bus)) {
>>> +            *bus -= cfg->start_bus_number;
>>> +            return pci_mmcfg_virt[cfg_num].virt;
>>> +        }
>>> +    }
>>> +
>>> +    /* Fall back to type 0 */
>>> +    return NULL;
>>> +}
>> This is a horrid function.  Accessing and modifying bus like that causes
>> poor code generation, and by now having this in a separate translation
>> unit, the optimiser can't fold it into it's single caller and undo the
>> poor decisions which went into writing this function.
>>
>> Instead, you want:
>>
>> void __iomem *pci_mmcfg_base(pci_sbdf_t sbdf)
>> {
>>     ...
>> }
>>
>> base which takes care of the bus adjustment internally.
> If the updated bus number need passing back to the caller, what do you
> mean by this? With two values to pass back, and without resorting to
> returning a larger struct by value, one pointer parameter is going to
> be needed, isn't it?

With an API like this, the bus number does not need passing back.  The
caller just accesses pci_mmcfg_base(sbdf) + reg (after the NULL check of
course).

Also, I'm pretty sure that it will be cleaner to merge the two functions
than to leave them split.

>
>>> diff --git a/xen/arch/x86/x86_64/pci.c b/xen/arch/x86/x86_64/pci.c
>>> index 8d33429103..c37e3edade 100644
>>> --- a/xen/arch/x86/x86_64/pci.c
>>> +++ b/xen/arch/x86/x86_64/pci.c
>>> @@ -11,13 +11,123 @@
>>>  #define PCI_CONF_ADDRESS(sbdf, reg) \
>>>      (0x80000000U | ((sbdf).bdf << 8) | ((reg) & ~3))
>>>  
>>> +/*
>>> + * AMD Fam10h CPUs are buggy, and cannot access MMIO config space
>>> + * on their northbrige except through the * %eax register. As such, you MUST
>>> + * NOT use normal IOMEM accesses, you need to only use the magic mmio-config
>>> + * accessor functions.
>>> + * In fact just use pci_config_*, nothing else please.
>> I know you're just copying an existing comment, but it's mostly an
>> opinion and not terribly helpful in place.
>>
>> "AMD Fam10h CPUs can only make MMCFG accesses via MOV %eax/%ax/%al",
>> would be better, except...
>>
>> ... this claim cannot be true.  It's been made since the K8 RevF BKWG
>> and exists even into the latest PPRs, but that's simply not how
>> load/store ops work in the pipeline.
> How do you know what special casing there exists (or has existed), or
> what (e.g.) bogus(?) SMM intercepts there may be? I'm pretty sure the
> Linux change was in response to things indeed not working otherwise.

I did see you elsewhere on the PR which merged this, but not on this
patch specifically.

I have it on good authority that AMD CPUs can't trap MMIO into SMM. 
(I'm not aware of Intel CPUs being able to trap MMIO like this either,
whereas both Intel and AMD explicitly can trap IO ports into SMM.)

Hence the aformentioned enquiries.
>>> +        return -EINVAL;
>>> +    }
>>> +
>>> +    addr = pci_dev_base(sbdf.seg, sbdf.bus, sbdf.devfn);
>>> +    if (!addr)
>>> +        goto err;
>>> +
>>> +    switch (len) {
>>> +    case 1:
>>> +        *value = mmio_config_readb(addr + reg);
>>> +        break;
>>> +    case 2:
>>> +        *value = mmio_config_readw(addr + reg);
>>> +        break;
>>> +    case 4:
>>> +        *value = mmio_config_readl(addr + reg);
>>> +        break;
>>> +    }
>>> +
>>> +    return 0;
>>> +}
>> Again, for this patch or a later cleanup, drop the output-by-pointer and
>> return value directly.  The optimiser is hopefully doing this already
>> but it also makes the function simpler.
>>
>> At best, we want ASSERT_UNREACHBLE()'s in the error paths (including no
>> mapping), and to consistently return -1.  Returning 0 for a bad length
>> is bogus.
> This looks to contradict the earlier paragraph: Do you want to return the
> value, or do you want to return a success indicator?

Despite returning -EINVAL, the single callers don't look at the return
value, and only take the *value value, which is generally -1.

For a bad length, 0 is returned (indistinguishable from success if
anyone were to care) and *value is left uninitialised.

So yes, -1 on the failsafe real error path is fine; after all it can
occur for many other non-error reasons too in PCI Config Space accesses.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue May 19 17:41:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 17:41:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313307.1583504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPORr-0008PI-Fr; Tue, 19 May 2026 17:41:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313307.1583504; Tue, 19 May 2026 17:41:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPORr-0008PA-D3; Tue, 19 May 2026 17:41:43 +0000
Received: by outflank-mailman (input) for mailman id 1313307;
 Tue, 19 May 2026 17:41:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wPORq-0008P4-16
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 17:41:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPORp-00EQ0L-9I
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 19:41:41 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0ca0ca-e002-0a2a0a5209dd-0a2a450ae8d6-20
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 19:41:41 +0200
Received: from [52.101.201.51]
 (helo=PH7PR06CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0ca0d3-56b3-0a2a450a0019-3465c93393a9-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 19:41:40 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA0PR03MB5514.namprd03.prod.outlook.com (2603:10b6:806:b0::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Tue, 19 May
 2026 17:41:36 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Tue, 19 May 2026
 17:41:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hmHOZ5XQv78xpZwGTaY9xY3Lh48878RYySwULy0xMu+H2MXfrY8635GF8rr9cBEl39JnYIX4TKp57VniItMApzdYNpQGmvFnIcEdppt3H5VgAg8/YcoQIa82vY2oFa/TelM7Nyl9zNY0uGBGXEu5ORQaW2mwKd77koxUOY01Z4trzmCd7nlAeEVi7qxZqflRVrf/FNoGEQGn9MhJF88dXgq5VKthTLALONdIo/1OTEgkAebvoskjxORUgLVhqQXJao+I1IC/PCZ7Pp4+Bp8O+24vVqod8mG+P/caSbAymFd+CpIpf97rpgXpDATJQREB2/6o+4T7EwMoOmOMrjdrUg==
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=+ymYs8xXL+BgwlisRTg8wWjBWiwq+CBJp9LiXK9OXtY=;
 b=QEtjOPotc7yLRV6jebkvSRlihUad40NEfATyTUtkLy7DEDCeg0cyPf+Z0JXMeoTINy6OCB+Qqmn8c2AOu+Mxs9Q3X39B0LIEtzrdXFzdOGDN0HkJMblc6sWRAfPDHoNQYkmuBY/OUiQJdla5AOTF6IooTfBfTLc+CwbG3UhHU0x7kYD8Alhu361JR5B43tdA40zW3iJcITHgtM/kfiAv8rbCebakTh7Fe0Sf50dfhkplhN1aAJ9cPqBvKGI/iGHjAHTB1Buu6Lu8/7oYge9PllQ81kprmoh/encEbJAuz2B5ovqJ1BRn1v6EiuNiunr+7wBn1OSqYPUgIiYucqy1HA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+ymYs8xXL+BgwlisRTg8wWjBWiwq+CBJp9LiXK9OXtY=;
 b=Y8xk6WGXokvzoS9pSU9tSg5lsb8Rf2EZiOrx+1mEq5pihYRDaFm9pQaswv98vvpIlwf93ALEhVWckTCuFVKyZvu4s2UyLNHtIpwghuSjz9bCMUl815KXL7ivWmCYTGw3WlY2RsTbIR7/han0d2Yh4HUipIyL8nNJU0lhuUnnRmI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <340d782a-4720-4e67-baba-7b320de55a72@citrix.com>
Date: Tue, 19 May 2026 18:41:32 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH 0/5] Small PCI refactoring
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779124816.8631fc262581453bbf619ec5b2062170.19e3c1a4a3e000f373@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1779124816.8631fc262581453bbf619ec5b2062170.19e3c1a4a3e000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0403.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:189::12) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA0PR03MB5514:EE_
X-MS-Office365-Filtering-Correlation-Id: ab8bfac5-2c97-4c50-c608-08deb5cddff8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|4143699003|11063799006|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	75DWhjEu2oHqXan1quTrz18GzXvhb4aLkn5KLZ+EBW0MRDqiUNDmxQHV7/4DobOw19yhrFL3inX3rHT4joy3I9TwC2OiRVa/zsUvHFiCJAzU/5EZ2NIbk1j3lCyV2tNchuVg7uSCVDYLZw+RP0nHRPSjdBnXtySRS1FlNiScr+G3PUFsri+TQtkwh8R5LgUkf9avJ7nqrW7QAM38c52/cmTfyyukPAxwtYsqXElRvqQdfQQioMuOoqgZm8e4/2RBv6A90Myi7jXu16A9q+wtLwIFZdvbwQiRqeKz/qwW44PgasTMUgxJvHfsBn6VQ7TH4SCAd34uTbg1D4Ls2fhU0TNay3DXAIs6SCqbbstPLTC30IFgisuQGcTQZHmF417X6OHJH3rB6/tJ8gmxD4OPaiV4EyAG8/ZgonZ9RJdZ0Wy/g0uL6JhRfXUb4W/J8b7j/3RgGBYs+F1v0GPu/60Euc+07n49CxP5pEuy0IMrBAy8/gvbZ5BxkeaSj1LnYm7uReDtbZeLIOh9RvwN55XvKklJfYLiyh9dgXmHlzz8jOp7+3zFSMtTlNYIOtvgMHCjyGmQS4xgZpWknxmCoLNdAkWjWQJgpEHv8HRIlE0x5hHbcrk+mIzyEHMvY07+ZYCTPu+2WXr6CG8sSomrgKE8ttiNInkuUvOstMJtYmJeHrrxY8Hu1ups8ocWMLFwZ+cS
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(4143699003)(11063799006)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eU9uZnMzRzh5YzlOQ2lZcENUR3hyTnYybi9aN0lTSUZCdTJUa2VOUllGa05m?=
 =?utf-8?B?T2RPbG5qSTM1blJKNjdVeVhJejg5dE4rdDdhbDZDRWxUbVM3Q2N2em1BSDVT?=
 =?utf-8?B?dXd0bk9zc0M3TGFNZUVSSVVlb0xPYUxqK3E4S2p2bFZOb3Y5NjM3ZG5hcmR0?=
 =?utf-8?B?MVZzd0RtWlVDZDZjSXVrWDFKRXVZMFhGMUVQcUdwQlNIdWV0NDdGdUo0Vlkw?=
 =?utf-8?B?MzJYa24wMTI5RWc4RnNobTg4S09yWHVHOTFkUDh6YkZIN2JTdjlpUkZFdmtw?=
 =?utf-8?B?TldiVjJybW5mUTJWZjgwOVB4cEFUWHMwdktiYWphVEZYRXgwTWNsd1pNYjdu?=
 =?utf-8?B?RjIxZkt3bGRWSktFYkFsTTk0Z1BFVVFjc2lBeVFVNDBjbWErSzhVOVJzQ1Zt?=
 =?utf-8?B?ZFVPdVYwWitJd2tqL2J5TGlzeWhTZXdVbnFNS3FtRHZ0T3BmMjdYd29VSHJE?=
 =?utf-8?B?cnhEcEhrMlZLUjViOG1hZnhRQUZVT2VlZVpZcWlROW1iVHJEa2xzdmpjdU9s?=
 =?utf-8?B?V3kyWXp5R3hZM2ZBTENWdUE2ejZPWWhHUDNMWE85a0lMYnNobzhJdVU5RXF4?=
 =?utf-8?B?YVN3aDZCbHllbUlpNVpudGJFWEt0L3dPWWtPZCtnb2cwTlh5THFwK2JQSFA0?=
 =?utf-8?B?SUI5ME5GYkdXRi9ZRGN3dVRidzNRVGtmeHU0bk0xTW1QZWJ4VXMxOFdVUzhC?=
 =?utf-8?B?aXZrSk1ENzhVaDNkYUV6cDNvUm1JWnRXa1lteDI2YXhEUE9adHBGWDNzdE9I?=
 =?utf-8?B?a0NnL0VIY0VSQ3BVR2kyd2pkaEp1ZGRmOTNPTzIxazZiWnNzaEpVTHJJbG9E?=
 =?utf-8?B?N2VhdzNkUXl6bHRqRFRPSHZ2N25KdzBXdlEweXZkSkdwaXplVkwzRDNhYzF0?=
 =?utf-8?B?dysrNFZkamtDNDA0RzZNN0pyYlFvRCt0MmFMZVppY1p6bzVGcDJTR0xiNkEx?=
 =?utf-8?B?RG5ld1lsQThjdndSS0dLbkJ4ZTVua2dmV3BvWEVWZGpNTlNRUHhrNWFzb2pn?=
 =?utf-8?B?NGpqeFlmQjBVRmJzRXhtS0FTdDVQUS9uTU9XVHJGYlBNRGluVGFKWXpadDFL?=
 =?utf-8?B?bFk1N0RIc3k5YnEvTGk4T3AvNGlRajZ4WkFmUjc2bWVKeHFMNXBlRExGUk5S?=
 =?utf-8?B?clJLdHpYSFlhK2JyZHp2QmlUYW8vUm9tWkw5V1RQeDRIdFdPNm1sMjUyQ1cw?=
 =?utf-8?B?OER5Q1JKWXVncmVjb2NvdGdVdDNJdklDUDNJd2NiSFVIMnFmZ1BTZHlmejVR?=
 =?utf-8?B?UnRKS0NvU0ZwVHpsd0ZqdDU1MTVXV2Z0eG4vdTV2VEJyckM5MFBsMjRycW5j?=
 =?utf-8?B?ckczbDgzaGN1QlpyWkN5aG93K3BqNGZKcnlrUmhwVTVWUVRaV0Q2bTRhN1FR?=
 =?utf-8?B?aFVod1lWUnM5UFNRZ1p6aEhtU1Q1eXptRVlLZzVNcWU3aUsxb0FWR3ZVY1Ju?=
 =?utf-8?B?UnIxbG1Sdk1xZEgvdnhWN291dGxLUnNDdzhZMytzSVJDeXMxejlCSkcvd3JE?=
 =?utf-8?B?eE56aDlkRllCb01xYWlUQ2NQU1R4MmpBNnhGbHRLaWwwTGs2bVhQYUdiTDVP?=
 =?utf-8?B?RDE5NFhGSjBlZlFjZmJTeXJOaTB1aHc5WWNxcUwrRXE5MWlrM2xqMHRPbytk?=
 =?utf-8?B?UWNmcGFxN3B4VFBwdlJxVG9nOFdJdjZoM1dEQ3I1NFJtQXNqQjduTTRNeW5y?=
 =?utf-8?B?SXg2SkpmOU9sSngwTjhVRE8va1NmT24wQWgyUVZQSTNUVmFMVmZISkh1SHdi?=
 =?utf-8?B?RXd4dVpDWXpmOVgya0J2NWVRZVpnQkNla2RweXV2L0hSd3U2Q3lHQ05idEt4?=
 =?utf-8?B?dDlJRHIxMVM1eVdzWndYdmtYSnBLYUJhUXV5QmZIZGI3eTNLMmZjWjdKWTNp?=
 =?utf-8?B?enl3ZVZ0L0lTL3ZRWGM1c2M2VHZ4cXg5VkE2MTZpRGZhYmhpSXJ3UHAycVFL?=
 =?utf-8?B?K0pHVWdvWG5ZZFp5bFprYTBLaFgybFlRY2Fna3gyd3hEL3hFTGhyZVMrblF0?=
 =?utf-8?B?dU5sNlBRVjVMakduWWdraHpYeWw0aWlUV3RvNXRzTjNPRzNNZWhmaDVNem1X?=
 =?utf-8?B?aCtQcTZucG94MlJKUHBFNXhDS05YZUxkczJlcVkvTS9UeDZsRCtsOEhzUk8x?=
 =?utf-8?B?bzQrT2llVjZNYkxLcWRaMjlxVXdmUHEvY0laN1dQa1dUMkt2MjZwV0lVQ1pO?=
 =?utf-8?B?Mjk4NXkzK1U5dHkyYi8yTEx3cnpUamQ1YWRITnZmU2FtUWR3ZTlBTW9EazJR?=
 =?utf-8?B?djRUd1NIb3ZodmFGUEJYNGo0UXJlZUYyd1pqVkRsNUg5SUcvNTlZcFFMcXVo?=
 =?utf-8?B?TGJrTGhVN2N2U0dNRmpKRGh5U2xid2YybktWSTFSZ2s2RVltWVR2UHNYMUhR?=
 =?utf-8?Q?kebkKi9jtFKzc5Ds=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ab8bfac5-2c97-4c50-c608-08deb5cddff8
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 17:41:36.4598
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: oLV2cpmFJl8RkuC264Y+iXBJ/cny1gpiWB1sxy3KeFJUtmgxZ4fvOPMeIa9D4SZU0DN293PrOHm0CbM6VybnjIqK5T4aPdrjVU/1pMnBkmw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5514
X-purgate-ID: tlsNG-4011c0/1779212501-73D788B7-6D98A631/0/0
X-purgate-type: clean
X-purgate-size: 1097

On 18/05/2026 6:20 pm, Teddy Astie wrote:
> Le 18/05/2026 à 17:22, Teddy Astie a écrit :
>> Teddy Astie (5):
>>    pci: Introduce parse_pci_sbdf{_seg}()
>>    vtd: Use pci_sbdf_t in acpi_parse_dev_scope()
>>    pci: Use pci_sbdf_t in pci_device_detect()
>>    pci: Parse into pci_sbdf_t directly
>>    RFC: pci: Migrate pci_mmcfg_{read,write}() to pci.c
>>
>>   xen/arch/x86/pv/ro-page-fault.c          |   3 +-
>>   xen/arch/x86/x86_64/mmconfig.h           |  43 --------
>>   xen/arch/x86/x86_64/mmconfig_64.c        | 106 ++++----------------
>>   xen/arch/x86/x86_64/pci.c                | 122 +++++++++++++++++++++-- 

Looking at this further, I think all of x86/x86_64/pci.c wants merging
upwards into x86/pci.c

The arguments about constant-propagating switch (len) apply to
dispatching to pci_conf_{read,write}() too.

One of the two external callers of pci_conf_read() should be converted
to pci_conf_read32 right away, and the other probably could do with
turning into an if/else chain too.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue May 19 18:00:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 18:00:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313319.1583513 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPOjw-0003L8-VQ; Tue, 19 May 2026 18:00:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313319.1583513; Tue, 19 May 2026 18:00:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPOjw-0003L1-Rl; Tue, 19 May 2026 18:00:24 +0000
Received: by outflank-mailman (input) for mailman id 1313319;
 Tue, 19 May 2026 18:00:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Jason.Andryuk@amd.com>) id 1wPOjv-0003Kv-Ep
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 18:00:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPOju-001O53-Ca
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 20:00:22 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 6a0ca527-e002-0a2a0a5209dd-0a2a4507ed2a-24
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 20:00:20 +0200
Received: from [52.101.61.53]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 6a0ca532-229c-0a2a45070019-34653d3536da-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 20:00:19 +0200
Received: from PH0PR07CA0062.namprd07.prod.outlook.com (2603:10b6:510:f::7) by
 BN7PPFA8145BD40.namprd12.prod.outlook.com (2603:10b6:40f:fc02::6de)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.25; Tue, 19 May
 2026 18:00:13 +0000
Received: from MW1PEPF00016159.namprd21.prod.outlook.com
 (2603:10b6:510:f:cafe::7b) by PH0PR07CA0062.outlook.office365.com
 (2603:10b6:510:f::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.14 via Frontend Transport; Tue, 19
 May 2026 18:00:13 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MW1PEPF00016159.mail.protection.outlook.com (10.167.249.84) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.0 via Frontend Transport; Tue, 19 May 2026 18:00:12 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 19 May
 2026 13:00:08 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 19 May
 2026 11:00:08 -0700
Received: from [172.26.18.13] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Tue, 19 May 2026 13:00:07 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BPW9EuKVhwrM9Mk2r2eptoNaJVXmK1TOIai+f1ruSqMpZUO7CH8rkKLg+xm2//0tqMEOtGRNxIE6bE3FdKVc1NIqCvFs//M3XdCsKbGl90Gwbyzcd8mD9uMR/Oh/kxoioSqPv6io3/dImz7T5cklco9X6UeRXaPKDNkM3RVmiAVY6ZfQvAk3a81DHK8FiPWi+eRPOfBIAai6m4LGMxmI0Rpn7ibg7nDGwOKBHBkBZRmkfnSkx3iSfLJhxkyeub/YpqG+bzsSAl9T7ZCbLmBvtnODimod7pcDu9CiS7hOnTdgH4zJXLko8xOoPEFRQ0/eRUmxw41/ue4tJFxoB5LBhg==
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=fjknw+1Oy9Iv1ktAAF/hX0aOUOpZcxnroVvhN5VaOGg=;
 b=avOzKu4NP8AmEmYIaruTeRpuWGMZihw9D5rmoyI0cVtJcCfh4AZWGPyYZ/2w3/EgJjJzUSFQ9FHLtk0XjcZU/ZExdcIwKHfby2GR98YqomhntPQzRBDZ8j0X1QAoeOY4y3yylS5wUNghEWcNwU3QOZ/1NMH+BipLs319EdKViJNP1CUy6aCeMIjLCOgnPi2vFGs9hxowo2XWz9sBseWxLF+4IGMBep0GVaxinLMg6nyn9rOet0y0zlYAsV173bUtVhLXfqQ08s6FKt75LYkft6CQNw24VnD9sqg14IUaR3IfglJZlgLiH00ygmudRkKkh7Jd2nJq2igYB+oVIFKzMg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fjknw+1Oy9Iv1ktAAF/hX0aOUOpZcxnroVvhN5VaOGg=;
 b=tTnLcoNUaZagER38GT4eoc8jrdsypeuXE9kROE7Phj3YeplEPkL1u1S3VyMN3N0Pem501IUb9y2iwglbrWB83a7amf3HqoBpea5yE2IcjpIxFifUmQ/M5cMGh5f33OTw3VBl/dXJtD7iHMGlO+7lkzLYCShjMZQlS7gxLu3SS+M=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <38dc7297-5107-4b41-8a28-daf631118912@amd.com>
Date: Tue, 19 May 2026 14:00:07 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/irq: Return -EEXIST from map_domain_pirq()
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Teddy Astie
	<teddy.astie@vates.tech>, <xen-devel@lists.xenproject.org>
References: <20260519001559.28129-1-jason.andryuk@amd.com>
 <0686cb4d-3020-4c2e-9231-f1a28c714c0c@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <0686cb4d-3020-4c2e-9231-f1a28c714c0c@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MW1PEPF00016159:EE_|BN7PPFA8145BD40:EE_
X-MS-Office365-Filtering-Correlation-Id: db656b06-ba4e-4244-b748-08deb5d07962
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700016|1800799024|22082099003|11063799006|18002099003|56012099003|5023799004|4143699003;
X-Microsoft-Antispam-Message-Info:
	LKgod0T9UiALmz5xlquAv+4dYuM59w07yC1QRI+FqsKZPWQFEhuPM3JdseiKyUywOBkoN2Cuh6VWMo8Lxon7ljhCGaefc1mR7TDVHaGWr0nFU1DJaw6yHqG40a0F9h9aYCdz9aIZBBsi29ilBhoiCGSVUfRsv8RTgNplJBzS1Smke18dwbMFYvNXLxvFoDitn3UXOF66n9+q5Jjlwj9MTlokTYRTN0IqEoOnp1LONiVPTVBjfmQCr+KRU1a0vZOcLLTDO6OAvhHr+OHD4ru5Ep31vWneGQ/cdsOuEHQGW/YzEjfy96oFbjQkU9BE79cknaOIoMVel44sfzCx9IxPpsn6hSqfFwWNkU7Jr6k/SpOyyHuE86irNo8Hvj8CeNIx5oWHHME3sKuinekr8AkPfmL7HxQ/t+cjWbsJ+B5LIPDgXm8Jfp+O+BhFnFffnYLJ+derrWMx2CGzTG32sVrETzGq42UY0TlciARBUE+teno/74fwOnuAEHaD8bXD/G156J7Fbo0ThsXqO0ZEJ5DhilACMWe3PPU22XVb908bLsx5oqwxhWgA0ulcPH1pkJSe8Rxumi1p0UXXgj1CNi9AumPhHr1Az0dDAQ9laJsbOk4TSQ9DGlTLd9FkAixOHk6kQA2nll5aQ3RJTqvHqyIjfdGDAXHHlS7XWRLliSZEhQGpVKnttdZvX+zXxB8OAHVblQRpqUuA9T1NlHDtnKY5df1GmLzOX/Uzq1wwW+ihx8s=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700016)(1800799024)(22082099003)(11063799006)(18002099003)(56012099003)(5023799004)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ocXy+tDomfhHCNIoq+dtKcCpRG3Lvw6ehqwCfP7fRmzt+n0CkKcC1XVhms7kgsUXgHjCsTsMUkj+gBmB9X/V5ayC2m98j3uAoVqKktZOwqx5yjqhPdh3BwqBgBr5/B/bBpX7L8BYhi0pF+b6LZC9gXVlDoAVUlXNGJ/pW/XZH+mZwIiqBs4lfvnMQJ2NjtwVG/1hO5skN+QGlv9fUGfgUcmeFGPXwusZWeyO+y8QeTeOQMe1xVrvL16vLU0U2KWDhl5y7UsauZjzPudu40DPUN/TDONQNSKK9kM5e1ohmtijIyvDAQzhEkUkyM2hvfcci92Pn5Yu4hQbVVUnkkEcVCgVO+l01KnQbZEFU1ZO9wMabF8swmVqVsmZdljuZJ5a6lR60yC8N9ghrWoKlMS4wTKS5uEK9gYqym0ACEvfSoC/wdPrOvg+hGpxH4KfpQ7H
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 18:00:12.6698
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: db656b06-ba4e-4244-b748-08deb5d07962
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MW1PEPF00016159.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPFA8145BD40
X-purgate-ID: tlsNG-ef75cf/1779213619-0AB70C48-B60F94B3/0/0
X-purgate-type: clean
X-purgate-size: 2353

On 2026-05-19 03:21, Jan Beulich wrote:
> On 19.05.2026 02:15, Jason Andryuk wrote:
>> commit bfc341a65cfb ("x86: Make the hypercall PHYSDEVOP_alloc_irq_vector
>> hypercall dummy.") modified map_domain_pirq() to return 0 when an irq or
>> pirq is already mapped, when it previously returned -EINVAL.  This
>> occured when moving map_domain_pirq()'s call from
>> PHYSDEVOP_alloc_irq_vector into PHYSDEVOP_apic_write.
>>
>> However, this means other callers cannot detect when a pirq or irq is
>> already mapped.  Since success is returned but the pirq is not
>> connected, it will never fire.
>>
>> Modify map_domain_pirq() to return -EEXIST.  -EINVAL is already returned
>> elsewhere in map_domain_pirq(), so -EEXIST allows identifying this case.
>> With that, squash -EEXIST in ioapic_guest_write() so the behavior does not
>> change.
> 
> What about the function's uses from allocate_and_map_[gm]si_pirq()? Don't they
> then also need to cope with getting back -EEXIST to keep externally visible
> behavior unaltered? Else those cases want discussing in the description, I
> suppose.

For my use, I want allocate_and_map_gsi_pirq() to return -EEXIST.  I'll 
have to look at everything again and update the description.

>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> ---
>> I'm not sure whether or not this warrants a Fixes.  Nothing in tree
>> today is broken, so I did not add one.
> 
> In which case this then also isn't 4.22 material, I guess?

Probably not.

>> --- a/xen/arch/x86/io_apic.c
>> +++ b/xen/arch/x86/io_apic.c
>> @@ -2315,6 +2315,8 @@ int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val)
>>           ret = map_domain_pirq(hardware_domain, pirq, irq,
>>                                 MAP_PIRQ_TYPE_GSI, NULL);
>>           write_unlock(&hardware_domain->event_lock);
>> +        if ( ret == -EEXIST )
>> +            ret = 0;
>>           if ( ret < 0 )
>>               return ret;
> 
> Slightly shorter
> 
>          if ( ret < 0 && ret != -EEXIST )
>              return ret;
> 
> ?

Well, I intentionally set ret = 0, so -EEXIST wasn't seen later in the 
function.  Though double checking now, there aren't any further uses of 
ret, so your suggestion is okay.  I just felt better overriding ret 
instead of leaving it.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Tue May 19 18:53:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 18:53:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313338.1583522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPPZJ-00029K-Mv; Tue, 19 May 2026 18:53:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313338.1583522; Tue, 19 May 2026 18:53:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPPZJ-00029D-Jm; Tue, 19 May 2026 18:53:29 +0000
Received: by outflank-mailman (input) for mailman id 1313338;
 Tue, 19 May 2026 18:53:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <olekstysh@gmail.com>) id 1wPPZI-000297-2H
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 18:53:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPPZH-00AQDZ-8j
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 20:53:27 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a0cb197-e002-0a2a0a5209dd-0a2a4501b484-28
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 20:53:27 +0200
Received: from [209.85.167.53] (helo=mail-lf1-f53.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a0cb1a6-c1f2-0a2a45010019-d155a735d032-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 20:53:27 +0200
Received: by mail-lf1-f53.google.com with SMTP id
 2adb3069b0e04-5a887ebb416so4808179e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 11:53:27 -0700 (PDT)
Received: from [10.17.80.122] (ll-22.209.223.85.sovam.net.ua. [85.223.209.22])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a90f11ad33sm4358839e87.33.2026.05.19.11.53.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 11:53:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779216806; x=1779821606; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=yFQiCmcG4MpfQCwPbtRrlRM8gafrPnGa2hpWo4+DeAM=;
        b=LcB/RsfnfSi3vFxCIvaExcKknTr6cylu/prUku9oETbV/PR7IErWKMgfbdfQzv5Ztc
         PoePA+7RCVJem6swnoovoNddPSnjwjLBBN1C176sY5dK1RokjzB17Gp2fU+Csw34ytJs
         lAZYmCynY1NCHMaFgbn+klIvBxaRj+Tdm5i9o5N6Fh+H/rggqzxY15S8e2V/6xQkZJkr
         mYRkDKGAX218AtBLyPLBo4e5l0fjsMLeGZe/ieWx+4m3GQKbQMR1LhSCih09HYUxuHkP
         nCvPltj+xKiQEbRxe4vDQwIkKmzWy0bfxyK4EcTzAPtmeOp4mL1eR10BLYvYdjBAHAOp
         vbwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779216806; x=1779821606;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=yFQiCmcG4MpfQCwPbtRrlRM8gafrPnGa2hpWo4+DeAM=;
        b=WVVdH7jhnTi3++2mBXZFP/70XIgnzbyjoIH4tBZxKVv+Y1xjqQBIf7wpX8v3kzWqjc
         bW3KtpgO1YC7YUr4Tuj9eFJlGKu3S9sBz4K7hJnfyBdxz/7qyoHlxJcbpEzxA/HOtTUY
         /koYSu1FBl1wgTdZRmSiYwBUJpxiTFvvB0ws8j3SBLE98dt9wTU8fR+tEbMFU/T2TxhM
         P6w91wjeGlOhXVe28mEtx2JgATjzFgunH1QQcyYIRMgNOCPLcCwj7AG1C+VNIArrinqD
         AR5Tcmt3XMYwOIl+x6wm4rV8aoh/Cyhmkvz0uzOOaj6nITxf7sED6sw8sBOpFfTKDT8C
         zEoQ==
X-Gm-Message-State: AOJu0Yx0CXGTX7R8jYb0kjvgBg0wGbhteifHeRCEV/5FDm9AfPhqmCZ1
	9YfLaQMiBcj/XErhfDMO9BLabVljwR+DMSPQ7mjQo9ko7DvP09Mq9k5J
X-Gm-Gg: Acq92OGJaivBALVBOPnoG11sh8m8eSJsBJ/n44gMXPUkGcmv+P4wbibT5/NtcAJEj3m
	iQnveW2uH3N2Y1RyCkQS+ifXrs3Scxz7oggEfJVBm10ycjXxJvUgNOtP8GXPpbng2+L6RXjQ92w
	jc84rQvYxopyNRM1oIo0Hdbj6aCrcUfkq0an4XpDKLIejHKjQYtIchNJj3ega0+8af6YOsTTz88
	/wk/5jiNp/SXDqzplUv+i5qIsSRLiZNd2lD+6Q2M5bIvwiVhSioy8gQAay6Pe84tgI0VuBERsXn
	E3B4WGXRoyHvoorhayRQuUEM5LvPNdujgozyyTn9xQGtRyGjCyMfbeiSYK+70ms5WVTDYKw5xQN
	itmo+uVbRDs4BrXZbGrrMhl5+S4AsaNs2tyCsd32NmDyId7xpBg6hZxJAozXIkflJerxig5Z0HC
	arp/HXAW/YIF5PQZUnmqRhqYt7wYLRa5SYGxKhATRLcvC8qldkpHqqC14=
X-Received: by 2002:a05:6512:4016:b0:5a8:e363:7b51 with SMTP id 2adb3069b0e04-5aa0e6191b7mr5569539e87.8.1779216806012;
        Tue, 19 May 2026 11:53:26 -0700 (PDT)
Message-ID: <684b3884-2cfe-4532-a72e-ab7e5b6b6f71@gmail.com>
Date: Tue, 19 May 2026 21:53:23 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 12/13] xen/arm: Add vPSCI SYSTEM_SUSPEND policy
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Rahul Singh <rahul.singh@arm.com>
References: <cover.1778605274.git.mykola_kvach@epam.com>
 <06448a30ef6694a55ac85d4c8c78ca2d71342430.1778605274.git.mykola_kvach@epam.com>
 <c8d0e466-d5e3-4791-9dfe-6221ba219abb@gmail.com>
 <CAGeoDV9BjVRQFOnujOLS+trQfnC7kH8K+HLvp3=61hoV2+jE-w@mail.gmail.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <CAGeoDV9BjVRQFOnujOLS+trQfnC7kH8K+HLvp3=61hoV2+jE-w@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1779216807-AF15BFF4-9BEDD36F/0/0
X-purgate-type: clean
X-purgate-size: 20593



On 5/18/26 17:16, Mykola Kvach wrote:
> Hi Oleksandr,

Hello Mykola

> 
> Thank you for the review.
> 
> On Sun, May 17, 2026 at 5:37 PM Oleksandr Tyshchenko
> <olekstysh@gmail.com> wrote:
>>
>>
>>
>> On 5/12/26 20:07, Mykola Kvach wrote:
>>> From: Mykola Kvach <mykola_kvach@epam.com>
>>
>>
>> Hello Mykola
>>
>>>
>>> Introduce CONFIG_HAS_HWDOM_SYSTEM_SUSPEND as an architecture-selected
>>> capability for platforms where the hardware domain can be parked with
>>> SHUTDOWN_suspend without calling hwdom_shutdown().
>>>
>>> Expose PSCI SYSTEM_SUSPEND as a vPSCI operation for all domains. For
>>> non-control domains, including the hardware domain when it is not acting as a
>>> control domain, the call is handled as a guest/domain suspend request and
>>> parks the domain in SHUTDOWN_suspend.
>>>
>>> Control domains need additional sequencing because their SYSTEM_SUSPEND
>>> request is used to coordinate host-wide suspend. A non-last awake control
>>> domain may be parked in SHUTDOWN_suspend without requiring the host suspend
>>> path to be available. The last awake control domain is treated as the point
>>> where the request becomes a host-suspend request, and it may only proceed
>>> when all non-control domains are already in SHUTDOWN_suspend and the host
>>> suspend path is available.
>>>
>>> Keep the control-domain sequencing and domain-readiness checks out of
>>> PSCI_FEATURES. They are per-attempt runtime conditions rather than stable PSCI
>>> function availability. Advertise SYSTEM_SUSPEND as implemented by vPSCI and
>>> enforce the sequencing policy in the call handler.
>>>
>>> Select HAS_HWDOM_SYSTEM_SUSPEND independently from CONFIG_SYSTEM_SUSPEND so
>>> that SHUTDOWN_suspend from the hardware domain can be treated as a domain
>>> suspend state rather than as a hardware-domain initiated host shutdown. This
>>> does not by itself imply that host-wide suspend is available.
>>>
>>> Add host_system_suspend_allowed() to combine the host PSCI SYSTEM_SUSPEND
>>> capability with runtime blockers reported by Xen-owned subsystems. Add
>>> runtime blockers for registered serial, IOMMU, GIC and SMMUv3 MSI IRQ paths
>>> lacking suspend/resume support. These blockers are runtime based, so they
>>> only apply to drivers or paths that Xen actually uses on the platform. For
>>> SMMUv3, the blocker applies only when Xen actually uses the MSI IRQ path,
>>> since resume does not restore the SMMU *_IRQ_CFGn MSI registers yet.
>>>
>>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>>
>> Apart from Jan's and Luca's findings, patch looks good to me. Just a few
>> questions to clarify, apologies if these have already been discussed
>> elsewhere.
>>
>>> ---
>>>    xen/arch/arm/Kconfig                  |   1 +
>>>    xen/arch/arm/gic.c                    |   6 ++
>>>    xen/arch/arm/include/asm/psci.h       |   3 +
>>>    xen/arch/arm/include/asm/suspend.h    |  10 ++-
>>>    xen/arch/arm/psci.c                   |   7 ++
>>>    xen/arch/arm/suspend.c                |  40 +++++++++
>>>    xen/arch/arm/vpsci.c                  | 114 +++++++++++++++++++++++---
>>>    xen/common/Kconfig                    |   3 +
>>>    xen/common/domain.c                   |   7 +-
>>>    xen/drivers/char/serial.c             |  12 +++
>>>    xen/drivers/passthrough/arm/iommu.c   |   4 +
>>>    xen/drivers/passthrough/arm/smmu-v3.c |   4 +
>>>    xen/include/xen/serial.h              |   1 +
>>>    xen/include/xen/suspend.h             |   2 +
>>>    14 files changed, 201 insertions(+), 13 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>>> index 79622b46a1..54a5bfb9ae 100644
>>> --- a/xen/arch/arm/Kconfig
>>> +++ b/xen/arch/arm/Kconfig
>>> @@ -19,6 +19,7 @@ config ARM
>>>        select HAS_ALTERNATIVE if HAS_VMAP
>>>        select HAS_DEVICE_TREE_DISCOVERY
>>>        select HAS_DOM0LESS
>>> +     select HAS_HWDOM_SYSTEM_SUSPEND if !MPU
>>>        select HAS_GRANT_CACHE_FLUSH if GRANT_TABLE
>>>        select HAS_STACK_PROTECTOR
>>>        select HAS_UBSAN
>>> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
>>> index 7727ffed5a..a5efcaeb4c 100644
>>> --- a/xen/arch/arm/gic.c
>>> +++ b/xen/arch/arm/gic.c
>>> @@ -26,6 +26,7 @@
>>>    #include <asm/device.h>
>>>    #include <asm/io.h>
>>>    #include <asm/gic.h>
>>> +#include <asm/suspend.h>
>>>    #include <asm/vgic.h>
>>>    #include <asm/acpi.h>
>>>
>>> @@ -44,6 +45,11 @@ static void __init __maybe_unused build_assertions(void)
>>>    void register_gic_ops(const struct gic_hw_operations *ops)
>>>    {
>>>        gic_hw_ops = ops;
>>> +
>>> +#ifdef CONFIG_SYSTEM_SUSPEND
>>> +    if ( !ops->suspend || !ops->resume )
>>> +        host_system_suspend_disable("GIC driver lacks suspend/resume support");
>>> +#endif
>>>    }
>>>
>>>    static void clear_cpu_lr_mask(void)
>>> diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
>>> index bb3c73496e..142fa1bfe5 100644
>>> --- a/xen/arch/arm/include/asm/psci.h
>>> +++ b/xen/arch/arm/include/asm/psci.h
>>> @@ -24,6 +24,9 @@ void call_psci_cpu_off(void);
>>>    void call_psci_system_off(void);
>>>    void call_psci_system_reset(void);
>>>    int call_psci_system_suspend(void);
>>> +#ifdef CONFIG_SYSTEM_SUSPEND
>>> +bool psci_system_suspend_allowed(void);
>>> +#endif
>>>
>>>    /* Range of allocated PSCI function numbers */
>>>    #define     PSCI_FNUM_MIN_VALUE                 _AC(0,U)
>>> diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
>>> index 2d9fc331fc..87db12eac3 100644
>>> --- a/xen/arch/arm/include/asm/suspend.h
>>> +++ b/xen/arch/arm/include/asm/suspend.h
>>> @@ -38,7 +38,15 @@ extern struct resume_cpu_context resume_cpu_context;
>>>
>>>    int prepare_resume_ctx(void);
>>>    void hyp_resume(void);
>>> -#endif /* CONFIG_SYSTEM_SUSPEND */
>>> +bool host_system_suspend_allowed(void);
>>> +void host_system_suspend_disable(const char *reason);
>>> +
>>> +#else /* !CONFIG_SYSTEM_SUSPEND */
>>> +
>>> +static inline bool host_system_suspend_allowed(void) { return false; }
>>> +static inline void host_system_suspend_disable(const char *reason) {}
>>> +
>>> +#endif
>>>
>>>    #endif /* ARM_SUSPEND_H */
>>>
>>> diff --git a/xen/arch/arm/psci.c b/xen/arch/arm/psci.c
>>> index e05dae1133..e9d78668fd 100644
>>> --- a/xen/arch/arm/psci.c
>>> +++ b/xen/arch/arm/psci.c
>>> @@ -41,6 +41,13 @@ static bool __ro_after_init has_psci_system_suspend;
>>>
>>>    #define PSCI_RET(res)   ((int32_t)(res).a0)
>>>
>>> +#ifdef CONFIG_SYSTEM_SUSPEND
>>> +bool psci_system_suspend_allowed(void)
>>> +{
>>> +    return has_psci_system_suspend;
>>> +}
>>> +#endif
>>> +
>>>    int call_psci_cpu_on(int cpu)
>>>    {
>>>        struct arm_smccc_res res;
>>> diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
>>> index 6ea4a0f9cc..a571035d2c 100644
>>> --- a/xen/arch/arm/suspend.c
>>> +++ b/xen/arch/arm/suspend.c
>>> @@ -1,9 +1,49 @@
>>>    /* SPDX-License-Identifier: GPL-2.0-only */
>>>
>>> +#include <asm/psci.h>
>>>    #include <asm/suspend.h>
>>>
>>> +#include <xen/lib.h>
>>> +#include <xen/serial.h>
>>> +
>>>    struct resume_cpu_context resume_cpu_context;
>>>
>>> +/*
>>> + * Non-PSCI infrastructure can make host suspend impossible even when the PSCI
>>> + * SYSTEM_SUSPEND conduit is present, e.g. when a Xen-owned driver has no valid
>>> + * suspend/resume path.
>>> + *
>>> + * This gate is checked only when the last awake control domain attempts to
>>> + * turn a guest SYSTEM_SUSPEND request into a host-suspend request.
>>> + */
>>> +static bool host_system_suspend_runtime_allowed = true;
>>> +
>>> +static bool host_serial_suspend_allowed(void)
>>> +{
>>> +    if ( serial_suspend_supported() )
>>> +        return true;
>>> +
>>> +    printk_once(XENLOG_INFO
>>> +                "Host SYSTEM_SUSPEND blocked: serial driver lacks suspend/resume support\n");
>>> +
>>> +    return false;
>>> +}
>>> +
>>> +bool host_system_suspend_allowed(void)
>>> +{
>>> +    return psci_system_suspend_allowed() &&
>>> +           host_serial_suspend_allowed() &&
>>> +           host_system_suspend_runtime_allowed;
>>> +}
>>> +
>>> +void host_system_suspend_disable(const char *reason)
>>> +{
>>> +    host_system_suspend_runtime_allowed = false;
>>> +
>>> +    printk(XENLOG_INFO "Host SYSTEM_SUSPEND blocked: %s\n",
>>> +           reason ? reason : "unsupported suspend/resume path");
>>> +}
>>> +
>>>    /*
>>>     * Local variables:
>>>     * mode: C
>>> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
>>> index ac6af6118f..48a963ae3e 100644
>>> --- a/xen/arch/arm/vpsci.c
>>> +++ b/xen/arch/arm/vpsci.c
>>> @@ -5,6 +5,7 @@
>>>
>>>    #include <asm/current.h>
>>>    #include <asm/domain.h>
>>> +#include <asm/suspend.h>
>>>    #include <asm/vgic.h>
>>>    #include <asm/vpsci.h>
>>>    #include <asm/event.h>
>>> @@ -219,6 +220,89 @@ static void do_psci_0_2_system_reset(void)
>>>        domain_shutdown(d,SHUTDOWN_reboot);
>>>    }
>>>
>>> +/*
>>> + * Serialise SYSTEM_SUSPEND policy decisions with the domain suspend transition,
>>> + * so multiple control domains cannot all observe each other as still awake.
>>> + */
>>> +static DEFINE_SPINLOCK(vpsci_system_suspend_lock);
>>> +
>>> +static bool domain_in_suspend_state(struct domain *d)
>>> +{
>>> +    bool suspended;
>>> +
>>> +    spin_lock(&d->shutdown_lock);
>>> +    suspended = d->is_shut_down && d->shutdown_code == SHUTDOWN_suspend;
>>> +    spin_unlock(&d->shutdown_lock);
>>> +
>>> +    return suspended;
>>> +}
>>> +
>>> +static int32_t domain_psci_system_suspend_policy(struct domain *d)
>>> +{
>>> +    struct domain *other;
>>> +    bool last_awake_control_domain = true;
>>> +    bool awake_non_control_domain = false;
>>> +
>>> +    /* Only control domains participate in sequencing policy. */
>>> +    if ( !is_control_domain(d) )
>>> +        return 0;
>>> +
>>> +    rcu_read_lock(&domlist_read_lock);
>>> +
>>> +    for_each_domain ( other )
>>> +    {
>>> +        bool suspended;
>>> +
>>> +        if ( other == d )
>>> +            continue;
>>> +
>>> +        suspended = domain_in_suspend_state(other);
>>> +        if ( suspended )
>>> +            continue;
>>> +
>>> +        if ( is_control_domain(other) )
>>> +        {
>>> +            last_awake_control_domain = false;
>>> +            break;
>>> +        }
>>> +
>>> +        awake_non_control_domain = true;
>>> +    }
>>> +
>>> +    rcu_read_unlock(&domlist_read_lock);
>>> +
>>> +    /*
>>> +     * Another control domain is still awake. This request is only the first
>>> +     * phase of the sequencing: park this control domain and leave the host
>>> +     * running. Host-wide suspend gates must not block this intermediate state.
>>> +     */
>>> +    if ( !last_awake_control_domain )
>>> +        return 0;
>>> +
>>> +    /*
>>> +     * This is the last awake control domain. It must not be parked unless the
>>> +     * request can proceed as a host-suspend request; otherwise Xen would lose
>>> +     * the last domain that can coordinate the system suspend.
>>> +     */
>>> +    if ( awake_non_control_domain )
>>> +    {
>>> +        printk(XENLOG_DEBUG
>>> +               "SYSTEM_SUSPEND denied: last awake control domain dom%u requested host suspend while non-control domains are still awake\n",
>>> +               d->domain_id);
>>> +        return PSCI_DENIED;
>>> +    }
>>> +
>>> +    /*
>>> +     * Host-wide gates are relevant only for the last-control-domain case. They
>>> +     * must not block parking of a non-last control domain, but they must reject
>>> +     * the last control domain when host suspend is not available.
>>> +     */
>>> +    if ( !host_system_suspend_allowed() )
>>> +        return PSCI_NOT_SUPPORTED;
>>
>> In do_psci_1_0_features(), the guest is told that SYSTEM_SUSPEND is
>> implemented:
>>
>> case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>>       return 0;  /* "This function IS implemented" */
>>
>> However, when the guest actually calls SYSTEM_SUSPEND, the policy check
>> above can reject it by return PSCI_NOT_SUPPORTED; /* "This function is
>> NOT implemented" */
>>
>> These two responses are contradictory. The guest probes via
>> PSCI_FEATURES, is told suspend is available, and then gets
>> PSCI_NOT_SUPPORTED when it attempts to use it (if let's say the SMMUv3
>> driver has blocked suspend).
>>
>>   From Arm Power State Coordination Interface (DEN0022F.b):
>>
>> 5.3.2 Implementation responsibilities
>> ... Any function that is not implemented must return NOT_SUPPORTED in
>> accordance with the SMC Calling Conventions [4]. In addition,
>> PSCI_FEATURES must also return NOT_SUPPORTED for any non-implemented
>> function...
>>
>> My questing is should do_psci_1_0_features() consult the same policy so
>> that the feature is only advertised when it can actually be used?
>>
>> Or am I missing something here?
> 
> For the PSCI_FEATURES part, I agree there is a problem with returning
> PSCI_NOT_SUPPORTED after advertising SYSTEM_SUSPEND as implemented.
> 
> I would still prefer not to make PSCI_FEATURES depend on the full
> domain_psci_system_suspend_policy(), because that policy depends on
> runtime state: whether this is the last awake control domain and whether
> other non-control domains are still awake. Reporting the feature as
> available or unavailable based on that state would make PSCI_FEATURES
> unstable between attempts.
> 
> However, once vPSCI advertises SYSTEM_SUSPEND as implemented, the call
> handler should not return PSCI_NOT_SUPPORTED for an attempt-time policy
> failure. I think PSCI_DENIED is a better fit for the last-control-domain
> case when the request cannot proceed as host suspend because Xen currently
> cannot support the host-wide suspend path. I will rework that part.

Thank you for the explanation, I agree. Returning PSCI_DENIED instead of 
NOT_SUPPORTED at call time is clearer than the current state and 
eliminates the contradiction with PSCI_FEATURES.


> 
>>
>>> +
>>> +    return 0;
>>> +}
>>> +
>>>    static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
>>>    {
>>>        int32_t rc;
>>> @@ -232,10 +316,6 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
>>>        if ( is_64bit_domain(d) && is_thumb )
>>>            return PSCI_INVALID_ADDRESS;
>>>
>>> -    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
>>> -    if ( is_hardware_domain(d) )
>>> -        return PSCI_NOT_SUPPORTED;
>>> -
>>>        /* Ensure that all CPUs other than the calling one are offline */
>>>        domain_lock(d);
>>>        for_each_vcpu ( d, v )
>>> @@ -252,16 +332,29 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
>>>        if ( rc )
>>>            return PSCI_DENIED;
>>>
>>> -    rc = domain_shutdown(d, SHUTDOWN_suspend);
>>> +    spin_lock(&vpsci_system_suspend_lock);
>>> +
>>> +    rc = domain_psci_system_suspend_policy(d);
>>> +    if ( !rc )
>>> +    {
>>> +        rc = domain_shutdown(d, SHUTDOWN_suspend);
>>> +        if ( rc )
>>> +            rc = PSCI_DENIED;
>>> +        else
>>> +        {
>>> +            rctx->ctxt = ctxt;
>>> +            rctx->wake_cpu = current;
>>> +        }
>>> +    }
>>> +
>>> +    spin_unlock(&vpsci_system_suspend_lock);
>>> +
>>>        if ( rc )
>>>        {
>>>            free_vcpu_guest_context(ctxt);
>>> -        return PSCI_DENIED;
>>> +        return rc;
>>>        }
>>>
>>> -    rctx->ctxt = ctxt;
>>> -    rctx->wake_cpu = current;
>>> -
>>>        gprintk(XENLOG_DEBUG,
>>>                "SYSTEM_SUSPEND requested, epoint=%#"PRIregister", cid=%#"PRIregister"\n",
>>>                epoint, cid);
>>> @@ -287,10 +380,9 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>>>        case PSCI_0_2_FN32_SYSTEM_RESET:
>>>        case PSCI_1_0_FN32_PSCI_FEATURES:
>>>        case ARM_SMCCC_VERSION_FID:
>>> -        return 0;
>>>        case PSCI_1_0_FN32_SYSTEM_SUSPEND:
>>>        case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>>> -        return is_hardware_domain(current->domain) ? PSCI_NOT_SUPPORTED : 0;
>>> +        return 0;
>>>        default:
>>>            return PSCI_NOT_SUPPORTED;
>>>        }
>>> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
>>> index 5ff71480ee..816a1a4ecb 100644
>>> --- a/xen/common/Kconfig
>>> +++ b/xen/common/Kconfig
>>> @@ -140,6 +140,9 @@ config HAS_EX_TABLE
>>>    config HAS_FAST_MULTIPLY
>>>        bool
>>>
>>> +config HAS_HWDOM_SYSTEM_SUSPEND
>>> +     bool
>>> +
>>>    config HAS_IOPORTS
>>>        bool
>>>
>>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>>> index bb9e210c28..d3edfb2a13 100644
>>> --- a/xen/common/domain.c
>>> +++ b/xen/common/domain.c
>>> @@ -1375,6 +1375,11 @@ void __domain_crash(struct domain *d)
>>>        domain_shutdown(d, SHUTDOWN_crash);
>>>    }
>>>
>>> +static inline bool want_hwdom_shutdown(uint8_t reason)
>>> +{
>>> +    return !IS_ENABLED(CONFIG_HAS_HWDOM_SYSTEM_SUSPEND) ||
>>> +           reason != SHUTDOWN_suspend;
>>> +}
>>>
>>>    int domain_shutdown(struct domain *d, u8 reason)
>>>    {
>>> @@ -1391,7 +1396,7 @@ int domain_shutdown(struct domain *d, u8 reason)
>>>            d->shutdown_code = reason;
>>>        reason = d->shutdown_code;
>>>
>>> -    if ( is_hardware_domain(d) )
>>> +    if ( is_hardware_domain(d) && want_hwdom_shutdown(reason) )
>>>            hwdom_shutdown(reason);
>>>
>>>        if ( d->is_shutting_down )
>>> diff --git a/xen/drivers/char/serial.c b/xen/drivers/char/serial.c
>>> index adb312d796..cc2b5b5dee 100644
>>> --- a/xen/drivers/char/serial.c
>>> +++ b/xen/drivers/char/serial.c
>>> @@ -497,6 +497,8 @@ const struct vuart_info *serial_vuart_info(int idx)
>>>
>>>    #ifdef CONFIG_SYSTEM_SUSPEND
>>>
>>> +static bool __read_mostly serial_suspend_available = true;
>>> +
>>>    void serial_suspend(void)
>>>    {
>>>        int i;
>>> @@ -513,6 +515,11 @@ void serial_resume(void)
>>>                com[i].driver->resume(&com[i]);
>>>    }
>>>
>>> +bool serial_suspend_supported(void)
>>> +{
>>> +    return serial_suspend_available;
>>> +}
>>> +
>>>    #endif /* CONFIG_SYSTEM_SUSPEND */
>>>
>>>    void __init serial_register_uart(int idx, struct uart_driver *driver,
>>> @@ -521,6 +528,11 @@ void __init serial_register_uart(int idx, struct uart_driver *driver,
>>>        /* Store UART-specific info. */
>>>        com[idx].driver = driver;
>>>        com[idx].uart   = uart;
>>> +
>>> +#ifdef CONFIG_SYSTEM_SUSPEND
>>> +    if ( !driver->suspend || !driver->resume )
>>> +        serial_suspend_available = false;
>>
>>
>> I wonder why different suspend-blocker API are used for serial vs other
>> subsystems (GIC, IOMMU). Why serial_register_uart() could not simply
>> call host_system_suspend_disable() like every other subsystem?
>>
>> This would avoid adding three unnecessary symbols
>> (serial_suspend_available, serial_suspend_supported(),
>> host_serial_suspend_allowed()).
>>
>> Or am I missing something here?
> 
> For the serial case, the split was intentional. The other callers are in
> Arm-specific code, while serial.c is common code. I wanted to avoid making
> the common serial layer call an Arm host-suspend policy helper directly,
> or requiring arch-specific stub(s) only for this case.
> 
> So the current shape keeps serial.c exposing only whether the registered
> UART drivers have suspend/resume callbacks, while the Arm host suspend
> policy decides whether that blocks host SYSTEM_SUSPEND.
> 
> That said, if the preferred direction is to make host_system_suspend_disable()
> a generic suspend helper with no-op stub(s) for architectures that do not use
> it, I can rework serial_register_uart() to call it directly and drop the
> extra serial_suspend_supported() path.

Thank you for the explanation, now it is clear why the approaches 
diverge. The concern about keeping serial.c free of arch-specific calls 
makes sense. That said, a single no-op stub for non-Arm arches might be 
simpler than maintaining three extra symbols and a separate pattern. 
But, I will leave it to you and the maintainers to decide which approach 
is preferred.

> 
> Best regards,
> Mykola



From xen-devel-bounces@lists.xenproject.org Tue May 19 20:32:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 20:32:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313405.1583532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPR72-0007i2-O6; Tue, 19 May 2026 20:32:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313405.1583532; Tue, 19 May 2026 20:32:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPR72-0007hv-Iw; Tue, 19 May 2026 20:32:24 +0000
Received: by outflank-mailman (input) for mailman id 1313405;
 Tue, 19 May 2026 20:32:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wPR71-0007hp-8b
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 20:32:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPR70-007y3Z-Ho
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 22:32:22 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a0cc8cc-2eae-0a2a0a5409dd-0a2a450cebdc-4
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 22:32:22 +0200
Received: from [52.101.70.56]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a0cc8d5-62f1-0a2a450c0019-3465463858cc-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 22:32:21 +0200
Received: from AS4P195CA0035.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:65a::19)
 by DB9PR08MB8739.eurprd08.prod.outlook.com (2603:10a6:10:3d1::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Tue, 19 May
 2026 20:32:16 +0000
Received: from AMS0EPF000001A0.eurprd05.prod.outlook.com
 (2603:10a6:20b:65a:cafe::f) by AS4P195CA0035.outlook.office365.com
 (2603:10a6:20b:65a::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.14 via Frontend Transport; Tue, 19
 May 2026 20:32:15 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001A0.mail.protection.outlook.com (10.167.16.230) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.11
 via Frontend Transport; Tue, 19 May 2026 20:32:15 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by GV1PR08MB7730.eurprd08.prod.outlook.com (2603:10a6:150:51::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Tue, 19 May
 2026 20:31:08 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.21.0025.022; Tue, 19 May 2026
 20:31:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=DxUuthYMAAuzAeWISwNH0Sz1d/4qy37lE7sc5SHsslNpOJtEiDfkq6py0MEli0wfoR/bS7ILRvGnmx/MA8cgBJXWW3d1XijcfEiAnUhKqFw+Cu4H0wwVsawSJ0ma63OLhgaBeX2tvHGtpWVFBS8Dgc+RU3QlcIFi+vRrfAdbSp76i0WIa6nY1J8KCbW0cXTBXvmfoq+XLfKaX+d3X7Sp4RhqQ/LPfttCBzxqVxw7LCU5OE9ec7AazfWOJ9zw19cJYXpqMtNH7EkJYwaPhglLL9g9ecdJmsjn6Ld3s51FRz91WN4gOKuY0+SwMaRUGbg4EM+65fy+mjxRH2hA6vkutg==
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=ggP6mE4pgsMMj14IvM+asEVHGETF/xyPvBsMDIMk9ks=;
 b=rHzE2up+jPPt5sws7m9PPXt8aCCmEuA+bSAUemTAF11q/eFWe2lCtyPbtrtES1icUQDuoqEfqBDx8ptEk3Yu9V0sqh1JOz0Ap551/T4SFLcAz0wyoAdunKoaLbAjyvgWcv9u5p4Iq+zFEcv863nHHRogZl5BMiFmlGAqiWhJJDZdVo8viiihudYooAuhOGFW4YPWudZVxH+pHl/6Dml9PoAjKh1f9BLxof/idUKuecT0TTvFAfeG1pe3s+85habjt65YJHI7yLpCTGbZa0lM77Y1RCLtsptYzZmneJp7b9CinFrQxiPghxz7d2FB5MjXIFhVFWpdcWH7P++rbmM2DQ==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ggP6mE4pgsMMj14IvM+asEVHGETF/xyPvBsMDIMk9ks=;
 b=lp4BKJZTEvVBRDyHge40pYT8b4lWQmmfZLnwtcyrPG0UoPxlIfegY4F9r5b8NLjA2JXiIWGfZnmO9tudL3jI8TO13YTAVA6sjY8fqvVg3VjEECelif69yUnbJxkxh6UNzt6jOAa1H5FLxGWuHogU5krAhOWrP8uddgcfN2D+xH4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Bbgm3pV9iFjKNhkGRrEdme2IGo1jSORLfNbwdJrIFj1vz5gAGXgrtw4U9oKgFqacKWuerZMUlaRVGVuHiV5jcsI2IUtismOhLm6/63aTcFKLablbfKcBU4JgJwsgfy9axyp/UZKbywnoPA/hs3AkQVTz7GzE0D28Wzqe5Zs4xbscBltUnvnIvE7DyBIasO3DL782uE/UEuBcwXn8ej0qg+GqPo9KggTsplCwwUmzg0NKNiKYc9O3cNF92j3pSLpOepAvo5/xrnOVkgiJNSccfYxGlOfc9R4IF+mdBf5BGR541lJjcegnJskldPHWOJRYU7etwb0wcieSgATGMx8PTg==
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=ggP6mE4pgsMMj14IvM+asEVHGETF/xyPvBsMDIMk9ks=;
 b=rPT8I7nrAU5TgQQxeDAcQv3KBWSFZAR7mfN8fLVATQPbMZi6KVSX1rMV7QCk8jFN++PXdYwKI6bhMf5MHwu9+nD4Ug0M+Yw+HypazYbhGe6Lrjsd0lL7c8EftYcsBx/f849seevSC3HX0c1zrj8V2JoRCrV8xAirWOVquvOBdsSxgvJWfPvlP4svYRUb0EfIqgn5S9hYBhqXV5OdDnPn883E5MRF3EXS2Z2G6cKNGHNuY5HKj6/92t6i8DFqxd1Gm2YLIdlxyBiEazsU01SuOmYekXGE4DFGYhK0Q7D4RMHAyHGPhnaRxopu8C5v3nkQmaXY4mEVS+ltPnVFfiUsvA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ggP6mE4pgsMMj14IvM+asEVHGETF/xyPvBsMDIMk9ks=;
 b=lp4BKJZTEvVBRDyHge40pYT8b4lWQmmfZLnwtcyrPG0UoPxlIfegY4F9r5b8NLjA2JXiIWGfZnmO9tudL3jI8TO13YTAVA6sjY8fqvVg3VjEECelif69yUnbJxkxh6UNzt6jOAa1H5FLxGWuHogU5krAhOWrP8uddgcfN2D+xH4=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] xen/arm: gic-v3: Preserve ARE_NS when disabling the
 distributor
Thread-Topic: [PATCH] xen/arm: gic-v3: Preserve ARE_NS when disabling the
 distributor
Thread-Index: AQHc55ylTZMtKVDVD0+QjroHtjvpLLYVzXqA
Date: Tue, 19 May 2026 20:31:08 +0000
Message-ID: <7FB76638-6C8A-4D29-B7CF-3EBBE82095E0@arm.com>
References:
 <0bc584018c025ee9fa5557276b9f3914ca9205d4.1779200467.git.mykola_kvach@epam.com>
In-Reply-To:
 <0bc584018c025ee9fa5557276b9f3914ca9205d4.1779200467.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|GV1PR08MB7730:EE_|AMS0EPF000001A0:EE_|DB9PR08MB8739:EE_
X-MS-Office365-Filtering-Correlation-Id: 2dbef979-bcfc-40ee-8420-08deb5e5b70f
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|366016|376014|11063799006|38070700021|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info-Original:
 CmuPitCUD8scnVeqTmC3HKc7SuxTF9bwuDu5kqZ4Gb+AqB7B8Czey85pWYbuxsUwhcr3HPsdBjG0sM1/wNcYB6Xx0Fb67oYJu3GBLZjUjqNGAqGCBOVm38N0UCShHytYBcxFoFljml7+9W+z9S/Lq/Pj1p8mz7RmqBNWXNCq5j3opa+dzEynpclYETtacX2z1SV43wivBMQPSUEmPRFaFKGzwcksTLK72k6NPt3uT6JBomhT6MUWML+I9F61kIcedZR6qHzbKKyoyJx/xMkW2QJXEaYheSoZOw9KzMODck/RxTeSgTkyBfT4bmsUWLJu4Hl12DUymIEKGpCHED3clTsxN1er/0PD1BFtCAVHeBoPLLsG3d67b3MOITG6+cRGE7NoWBjTFrpe8nEYKIAJCSAENgbjwwUePnZlw1+4RTC0Z+9kczEzFGbipvPUayeYCAvWUL0Jz9t3/6eYlwMr5PA8Ver+u9ESGvB8RWgaipMMS3uDwpVaHZhV0WJMNNEnm1mY9BBMAWqyZFhSH6rQZg/6D6BWcPP97DbhlR5T7lYSVqkloLpBbs9KFk84ZJPoz7/pCmgn22LGMiReH7XVYqppoy+/Zd1km3hDx1joZ0nCjhZbYkaQowU707DUC1aG0bF7YWIwmfLI/vEBzicsJvZD1E8JEF8WED60/XWV7ett/td+bdn+7MngzUNEzXNtlNtTmV8ttfcuWEitkjhZ6kNugh0lN3eT6AI/rtaZVwFQtRyVtFwFdtaPEv1iRgch
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(11063799006)(38070700021)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <D9EB9CBF5E6DDD47A9B278449F1E16FC@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 CRZocTkXdGQwzm2WlfmMylDOSpSRAQyuYD1QyFX0Y7F20BnpjWQJGNH+TqpOu2PCiWwC+TdNIDO/YeJ4yfqXahLGQJpEiTKgiY+zXRBlY/Hdnu4WhucVl/ehL/EwFwZiQOQp0ywlREcuICYMv3ntpqeKFTI/W810iBOxz+pEOu9ztcsQQCEFqDCSUDRnvellzl0npNK93wNt4htIexbrZSIzoTHNFP8n5ab8SbAeMbBJ2tbgu+dWrttdxqr/ClRFHLFzOP6AP172UqzuG2bfmLR9eukm6Bj09olv3t5l44/0HH00cR5lee0ZllKynj/Enk/3ZOq20G8xmoZbmTPUuA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB7730
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001A0.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	432582c8-da2c-4efc-b575-08deb5e58ecc
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|1800799024|36860700016|82310400026|35042699022|376014|56012099003|18002099003|22082099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	qkwVN9hc1tbH2zFrD86C5YWrHlxwZum22xFXybEv+Lcz/q/bvnszgb25Q6CQceM+ib8ejAB1tgouaN3EQSbuk6I4QbvJdaP58fbQmMXAQX2sWIZ/G1/ziCNrRNjIdmHyOdBPCu0UFEA0aS0/+K5r18ObvbgmyY/zFVjxykeW640B9LNUUgM6xqkoceKdGgwCWvhNEs2vEa4mL28dkBuLvzvvh279DmjnFg7K6RoVrE6nLjpY0eFgQ3ELb1FbpIlBLkkaPbq9p50JGwzr9yBRtPvQgId8WwJPp4AQwGZjsmEecGw0tjHsyORjgwVEUt3TbA5HmPFFVR0Yu0ycbcIJubZIMUTJznLgNpYijYerwQ6lk6jAPbqYzVPK2177ZQb/Wa5fKGGUsEJxv0xOqCpZgWsB8FMrRHEFYstDILqBc9NDGhRLDda1U5PJ88Tu0r5TDXotJlPGWc6WzSjtlccCcseptXhwp+T1QqBSGhrudfmOamdMOz2PZvCsWF09yomQ2WqXh0NALg9U2hJ9Z/b0P+pC1GxgjME7rCJGDaY3tGCArLleVb4ZDv736FKNdw47sltLgTsifQT5oU/ptm32q/t3RoQqmLz/cxOnFksXWTOeEWJXCzXR+1cL20/jn95hJHdQGXgD4gbbYleib1AVOmkZiom3oRy9t7N3EW4vUmB7xgUlcxz+HRA69IAK90nI95U5yvMc3iPY0BlXF/pOXrYoBuDHyEK74u1mPnMWuk8=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(1800799024)(36860700016)(82310400026)(35042699022)(376014)(56012099003)(18002099003)(22082099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	3QzEn8BZFfrIYmevgcTRrj3Th2Q+eR8U4wfgVvV/dTp0fNhMws6KMfMr8LY/w0Xcsa8fLU4dJ3/khUaVJxuAQ+nVsS5T6ZP0Bk74UVnBNOKjI9mBdw+LzkJfqekz9m81ZPDVSuK4HJxu6wVaOINc0TswmsxeFjHNmtSpb4XOKiTk3h29vamHt1vvrP5DosdkXnOegrhktGocqaZTqEEtDJwzHyMX2HdiOD9mGPrGWdh8sMQ5PiuaOc1Fwiyo6diR3sL3Qy7EUhJ5keblSWKFQvFiTHycbxA6AJEJB/FUvzeWS38j7w4gJywwgriYhHPmZBcfdNYs5KrQH94aEVZ8iAQRlzGJToGS3/7hda/upxgimom5wh//UZEU6aMQ/660/VpNDSJu9r+OyJAZNBWW3uM8hZZq5NJtrTdNwhAg44YA/vHtb2lSFKmJ5otRAvTm
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 20:32:15.5618
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2dbef979-bcfc-40ee-8420-08deb5e5b70f
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001A0.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB8739
X-purgate-ID: tlsNG-d25034/1779222742-E0965CF5-F1159BA6/0/0
X-purgate-type: clean
X-purgate-size: 1188

Hi Mykola,

> On 19 May 2026, at 15:31, Mykola Kvach <xakep.amatop@gmail.com> wrote:
>=20
> From: Mykola Kvach <mykola_kvach@epam.com>
>=20
> gicv3_dist_init() disables the distributor before reprogramming the
> global interrupt state. It used to do this by writing 0 to GICD_CTLR.
>=20
> On a system where firmware has already enabled Non-secure affinity
> routing, a zero write clears the Non-secure view's GICD_CTLR.ARE_NS bit.
> Arm IHI 0069H.b, section 2.3.3 ("Changing affinity routing enables"),
> states that changing GICD_CTLR.ARE_NS from 1 to 0 is UNPREDICTABLE. The
> GICD_CTLR register description in section 12.9.4 carries the same rule
> for the ARE_NS field.
>=20
> Preserve ARE_NS while clearing the group enable bits. If firmware left
> ARE_NS clear, the value written is still 0, preserving the existing
> initialization flow.
>=20
> Fixes: bc183a0235e0 ("xen/arm: Add support for GIC v3")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---

Looks ok to me and aligned to the specifications, bit 4 is preserved on bot=
h
Armv8-A (ARE_NS) and Armv8-R (ARE).

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Cheers,
Luca





From xen-devel-bounces@lists.xenproject.org Tue May 19 21:25:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 21:25:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313413.1583539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPRw3-0006QJ-8u; Tue, 19 May 2026 21:25:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313413.1583539; Tue, 19 May 2026 21:25:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPRw3-0006QC-5n; Tue, 19 May 2026 21:25:07 +0000
Received: by outflank-mailman (input) for mailman id 1313413;
 Tue, 19 May 2026 21:25:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dongli.zhang@oracle.com>) id 1wPRw1-0006Q6-Rg
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 21:25:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPRw1-00Dy1K-13
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 23:25:05 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dongli.zhang@oracle.com>)
 id 6a0cd48b-e002-0a2a0a5209dd-0a2a450c89de-48
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:25:04 +0200
Received: from [205.220.165.32] (helo=mx0a-00069f02.pphosted.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dongli.zhang@oracle.com>)
 id 6a0cd52e-62f1-0a2a450c0019-cddca520ab38-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:25:03 +0200
Received: from pps.filterd (m0246617.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64JJbaOG545944; Tue, 19 May 2026 21:24:04 GMT
Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta03.appoci.oracle.com [130.35.103.27])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4e6h4q5ygs-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 19 May 2026 21:24:03 +0000 (GMT)
Received: from pps.filterd
 (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.7/8.18.1.7)
 with ESMTP id 64JLEohl003722; Tue, 19 May 2026 21:24:02 GMT
Received: from co1pr03cu002.outbound.protection.outlook.com
 (mail-westus2azon11010052.outbound.protection.outlook.com [52.101.46.52])
 by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 4e6f1gbwgc-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 19 May 2026 21:24:02 +0000 (GMT)
Received: from BN0PR10MB5109.namprd10.prod.outlook.com (2603:10b6:408:124::23)
 by DS0PR10MB8055.namprd10.prod.outlook.com (2603:10b6:8:1fc::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Tue, 19 May
 2026 21:23:53 +0000
Received: from BN0PR10MB5109.namprd10.prod.outlook.com
 ([fe80::d9fa:7ad2:804b:bb83]) by BN0PR10MB5109.namprd10.prod.outlook.com
 ([fe80::d9fa:7ad2:804b:bb83%6]) with mapi id 15.21.0025.023; Tue, 19 May 2026
 21:23:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=corp-2025-04-25 header.d=oracle.com header.i="@oracle.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-oracle-onmicrosoft-com header.d=oracle.onmicrosoft.com header.i="@oracle.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	corp-2025-04-25; bh=eiYEirk7wfR11MHIEZKgaarRpwEjqyHqhoKP12QGp0U=; b=
	Y/2jerAaR+8GBP6Frmpb5+k/IRoWLf9iadf+niy3k3NfYkixuFw8ZltuwmY7lEp+
	1coRCYwCq06ea+Jg8Q0SkT1hm+6u9GE2alaJwk1S8Btl8Q3+eYbeLQdnvQdFT2WE
	/sZ+lFhvNf0Ts6UV7UHfXtOIBhaoWZnBgPpBPvfQDj+Lv8ZbMe2LYkIdQbWbvJzs
	yJ0zdryCwChycHb45C8/65zEHVraLlg9VL4O+3n3xn/ndGSU2tPcGiQ765F7j+Su
	wpOu/VuHUDZ0CrMJXL2PX2OPh9LMIo/O9ZFdB5+J3o+otAVq/kRmQusqQHg7qQl0
	ypzUkkuNnrEWhodWo4yJjw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yaUD2BTzJKZnmX83l+dBk2SRnA8wGT7IQU2wbLaQMCZNFksBQo7qn9vXt3RVyq5XwvnJLM2d/QahG+QW9Q6HZJIn/wn3IG8PGmDLx4Ni/0n1OooxwS66M/6nXtvggn3D0YEW0oJkBMN4PnS3eYdNfmVnPd/2InFavrNcPaEs1KltVZ48CiKRRTWrLBAYIyfo4Ezc/6QH7h3WF3tUnxPYdKSOfAhbo2qw8PA0QHa+VxtJOiVHe3ASipiKjEWmhMb5P66+1s95TqvrasPJbJP9TNG5Nf2PEfehmYkkxESJt5plBJlpSvRcWoR3Pf2I5M8+jg/cfVHBvJ0Enna14SGA7w==
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=eiYEirk7wfR11MHIEZKgaarRpwEjqyHqhoKP12QGp0U=;
 b=nTdKb4Iil5b4BMk/zbwr/HuWN+MBZ4it2morRKZh8qr8oxAGvStBvh82zQLGdKZsZwONWA2ymAll0JDgZGhOwHNijuEZEjZ/nS3L6mbEN42p6zU2xO6PNAM9i9HA+W0c0n5X9aLb5r9zILpx+hIuk8Wpzn+Hy77lrD7u87jVvVLD/mBH3XrV4H5vGVPtK0kRc7y7s3kNB8Yy5udBOL0SPOIxohDOi1noUqCkrxTMfHp1cnmmOOyWiLdGIcYt62qZoRt4B9ppFZ4Ka6ZkWFfz0Z0GdaPlw9GxOPCwcLNZQDl8sVYhZFfJB7rneKodv0eguFZ7C71s66eN8DtpLKiOHQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eiYEirk7wfR11MHIEZKgaarRpwEjqyHqhoKP12QGp0U=;
 b=VkeEUgWB7hWWb94pglLDthi0GZEvanfNphFKC9wNx6mP2tRmer9lb0OBNrMOgwIxZk57sGXAEcjMxDYlAbY90xc8kiHuye51uXP5UOiVHArHhwmkU4Bp/rQeaeYIb9MTtpcKs3jWoHQQ+g5gsKLA7O7esnLqA+MBwF/gdXm4yTA=
Message-ID: <aa68ed10-15da-4368-a986-6864843a3c44@oracle.com>
Date: Tue, 19 May 2026 14:23:49 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/30] KVM: x86: Add KVM_[GS]ET_CLOCK_GUEST for
 accurate KVM clock migration
To: David Woodhouse <dwmw2@infradead.org>, kvm@vger.kernel.org
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>,
        Shuah Khan <skhan@linuxfoundation.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Sean Christopherson <seanjc@google.com>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        "H. Peter Anvin" <hpa@zytor.com>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        Vitaly Kuznetsov <vkuznets@redhat.com>, x86@kernel.org,
        Marc Zyngier <maz@kernel.org>, Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Paul Durrant <paul@xen.org>, Jonathan Cameron <jic23@kernel.org>,
        Sascha Bischoff <Sascha.Bischoff@arm.com>,
        Jack Allister <jalliste@amazon.com>, Joey Gouly <joey.gouly@arm.com>,
        joe.jin@oracle.com, linux-doc@vger.kernel.org,
        linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-kselftest@vger.kernel.org
References: <20260509224824.3264567-1-dwmw2@infradead.org>
 <20260509224824.3264567-5-dwmw2@infradead.org>
 <0ae8e471-db7a-4842-aca4-8ef643acde8b@oracle.com>
 <d3c461415e05345a9b82e6f995828c1ae64a4e61.camel@infradead.org>
 <935312be-9a86-49fd-8bb4-2c998a68e2df@oracle.com>
 <b9980333f3a310bf05e170e79c40cb2f46485caf.camel@infradead.org>
Content-Language: en-US
From: Dongli Zhang <dongli.zhang@oracle.com>
In-Reply-To: <b9980333f3a310bf05e170e79c40cb2f46485caf.camel@infradead.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: BYAPR11CA0107.namprd11.prod.outlook.com
 (2603:10b6:a03:f4::48) To BN0PR10MB5109.namprd10.prod.outlook.com
 (2603:10b6:408:124::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN0PR10MB5109:EE_|DS0PR10MB8055:EE_
X-MS-Office365-Filtering-Correlation-Id: e659e28e-9ec1-415b-a718-08deb5eced1f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|366016|376014|1800799024|4143699003|5023799004|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	RMsJwk4Kzx5mnD6TpjBg0BFs2p6K0Wns3WVnEagB4Mba0k6sIvTyph0BG5o1UjPdyb2vWTBe1IA2bzr550lpZacHXHVUary9QhUvF/nh+K9Px5LfUtqAxknW8AzjTCxJ5Z8SsfDVPRhodO4cT8LUwDTP21mL35TO2Cu5fddpceG4t2GVT6R9lLwvc7HmpRatZWhZhDsbDhhhM3wB6XnF7NDfuERWchbkDZI7t9/nhFqjmblOlX93ZrYR7Q7GgFRFgj/xztd3J3ODaji4wr8fIFOC/Vi9iE0ejypA+oCFSGXrzeQMQsEwV9p1vJ5OwZoaCfKPsZmk3bkpEpkHl+Jr3zlV//ngf1B/RO1lw0xMC0UfxtqorXn9M1jtTGAnknvgNrIqvw42ytl5OjqjfxcYtuXwWCIaLEDDTfT23v+/kYzJaYvWyQqAskAcbiosm31g2EdQnMrhJ09OcC3PLV14uIHeuy0EubmULSVnd+97JMqYwJ2w7WmcjnTM8YD/H0ODnrQ21kA+CRGmaXpUVZpHTvJqLpoKiQXw0+LJwTQuhj1yg6W1KMyYfKKRXXi/uoOzIzAfiDdcEhbB+OJVfbxnBjfv+f0029WFB2ls7RaTx9TuUmUUOEJCICJJal/2wQGfLPxfutQz0Qroznnqa3Z8ACrKWdWih8DhDi0Wz3Mm9N3fQ4rV1m2BfMiZIXYGnvB91T7cSkzJeYFSXM8X01KS/w==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN0PR10MB5109.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(1800799024)(4143699003)(5023799004)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?L25hWU5zUElyRDQwbjNkVVF3amIvYm9pZHplUUhKU3k3UjB3YlFNM0tBTmpu?=
 =?utf-8?B?K2FQWlZQYTJaL3FlVlIrREVLK1lKNC9QdXg2dmRtL0xIZzBOeHdEYTR3Y09o?=
 =?utf-8?B?WFBNcVBPR0VxZU1naVJlNEFvLzFsRU9sbnRHU2VvVU9VUGZXSEpkYXFvSmpZ?=
 =?utf-8?B?QnJoa25sMmgrU2JQRFdKcDVJOWtXYTVUV09lNTlVZkd5bVlxQ0xnT3h0VENW?=
 =?utf-8?B?TWdrMEJvM2pMK3Q0QTFXUzJ1UE04dUN1WGxXSzkrdVhSY3NUSldXN21HZHlL?=
 =?utf-8?B?cmtZZkhkQzZQSmRpbkNOaEdqV1ZoeVorQ0M0bDNxZDVhMDRWM0xVZ3lVOHpH?=
 =?utf-8?B?VnFPZFJFQjV1b2VMQ3Nha2hiQk14TTNCamNQTzN6UTQxR2o2TFVyNXNUUit3?=
 =?utf-8?B?TUZzKzNRWUM5SlpFKzV2TTNEbUIwVlNEU3VwbVZPcHZ0TDFpZUVndEgxZjUx?=
 =?utf-8?B?aVVyclc2dHpnK1kxYUl4ek8zNHMzczFacnNyNVlPNEQ1UFI3aXROcXAwMFR3?=
 =?utf-8?B?Y0g0bk9DNTdZSXdWMzExV0xnY1FTTkVGSUpVdmR0YmpSdXRPdHlkMHVnVk9p?=
 =?utf-8?B?N0JwUWdiSGpjQlpRaUV3a3NtWDFiK0EzZ2RPZER6ZnpIQ1lXZ2hZWEs2U0N6?=
 =?utf-8?B?U3ljMVdGOWM0N3gxbXArQnFSMVRDSi91WjZ2WXh4WjlyOGJDamc5dk1rdTJt?=
 =?utf-8?B?RDhTdzNkd1FZZEJVdHVCYU56WWdhdXVlZGZjVHFzUDZTeUJ4dklHWWt4TUVu?=
 =?utf-8?B?WWdWTlhEY0lGVFhUeUNSNWZ3b2ZNUzNDYUpQZGZKcDMxR2NvRVJjT1AwQkV3?=
 =?utf-8?B?Um0vVXpCcVV1Q2tBRmQwdlFZR01LZno4b2FabkV2R1JTeFZNY0FMcEhSVzNB?=
 =?utf-8?B?V1ZFOURweGl0UENBRldBMC9TVUYxdEJPRVZHd1ozOU1VeUYvdXI2cVJZLzhX?=
 =?utf-8?B?aXBHYjZVNmVVZkMySVp3ZEowdmgzVlpvWGZzcFF1MGlUaHBvTWQzdmRtWHFE?=
 =?utf-8?B?TVJJV3ZTY0ZyQ09zNkNEUC9sUDE5a3BIQXdVZU9NNmxPNk5LM2twRThTancr?=
 =?utf-8?B?ZEhXeE5GZTQ4Y3g5NWxadnpCY3VGRWxzODZwc3d3MnZveGVGZ1JaVEpKY2Jj?=
 =?utf-8?B?WnduZ0VnTTFUZEJHV3VwNVFKZ0NaZkllbW0xQUR5UVhnOTd5OFhjeXhISERC?=
 =?utf-8?B?cWFIc2tlQXlGUUxBVnJGT0p5SGFjM3JCSnJFVzYzU3lwU1lQTEJ6eWxNZW9j?=
 =?utf-8?B?eDBUOHR6dlBaZkFsVnU0eGxpVXV6enBmTFRYZVZ6b3dCbHZUc3FyeGpFT2hJ?=
 =?utf-8?B?bC9qdWtDV0JQK05pYW1HWHZXZmZLbEIraitybllPbENEWXVYbHhLT05mNGFh?=
 =?utf-8?B?M2FEY0xkdjZWWm5Ha0prRWt2cTM5dDNka1J1M0N2SW1GbEhqTElmdDE1M2Ri?=
 =?utf-8?B?OWVsMlg1ZGpkLzRzTDZ2TFlQYWdCSHhNL2ZqYzFNNnZ4NjlXaUpLbGFlbHha?=
 =?utf-8?B?Q0QzNDlvWlBsTVRkeWVPdnErZDVLZTFZMEpkNzMzT01jK1hGc2dRVFMxWVkv?=
 =?utf-8?B?RDdGL085YmUvVlhZUlNRR3FtZWl3SlVlMlJWYzhoMkl3KzJERXlydFFyVEVy?=
 =?utf-8?B?RlpoT1ZVMGRMUkRMR1ZuTVVEK2FoZFM0ODA1RXgrc1M0Snc5SERnRzdaRTdq?=
 =?utf-8?B?RHllMExqTDEvQnNIL0FTcm1WOVpSUlRRMTdLWjZWYkN4UTFMNUhYaU5FQVBo?=
 =?utf-8?B?MkQwK0NqVU9yb1J2ZlZjclN6bVJyTFduS0J2QlRNN3dMTXhMOUNRM1pBNmtU?=
 =?utf-8?B?Z016cFJ0UDQ3SGpRSkJYdEhSNko5YXdnSitrbWdpSEF4SnpRcFAwZ0dBQXJX?=
 =?utf-8?B?cFl6ZUpBbGFwbnhST1lyU2FiV3dnYmRWVFA5NHZ0eThEMkVJRUdSaTUxbnFX?=
 =?utf-8?B?NmgwekJJMTduRDlSL2s5WFJIaHpaUEY2TnJLNml1Mlk1ZmhhYnBkRmU0L1ZR?=
 =?utf-8?B?NUs3RytsdmZ1Mk1kdDhyY0JBQVBjbTc5Q3hOSkc4amoyY2JOeXMybGVnaFox?=
 =?utf-8?B?VFp4R3pzVFFRMzg0ZkZtUXpGWHFxVXRWRHcvY0ZxUUdPbzMvSXdwcjYrcXBN?=
 =?utf-8?B?ZXZhbS9uU2w0ZkxBZXFvRWNxSHcxTnQ4MVFaQ2xSUDE2cURFMVBEbDhvVG82?=
 =?utf-8?B?Z0hreC96dzhsUG8ybjlpakx5UGpTVXBaU3lJd3JNdEhqSlpWMG5hTHhJYkZK?=
 =?utf-8?B?TmZZZUR2Q2poU2JmWHE0SVVJTmtFYmw5N0dUeDNDazlYRWRNT01pdm1oa29D?=
 =?utf-8?B?ODNVQlJ5VEUvTEdGN2NidHJVNzJwMjVDcjFseTNjUXhIcHBrWTRBQT09?=
X-Exchange-RoutingPolicyChecked:
	XZcEg/JyLi5Eomow/J8pR/4uqf3peiaV8sjNvYLMN1FM1jLrPU1Bt7y/Li9HfsrUj+P0b2zXC2QNgHGMe4ZNLFoDOVGmdtzx4h+Y82HDTq66cfbFtr47xviipH+aibaswt1aUyCFyD21qSDQe42iWSiX9C5Z08NQRFigC68Xdl3nKlHAw8UUiWes3VEEJECcdgb//7b9xH3SHIzB/AJu3dlxvGn74Fco1f0A9iRR0nJZmtAmJ4anq1znxCjeSsUp/w1FdEVoouYCJQ7hTADc9hGkg4kfXyUW5WyC+bOQF/wOox6D4o12zBAwX+zmugbR5rlPXryTIf3P54o8q8cQ7Q==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	vuzTNcg+i3Unr1PjBh+NMspi70fZyj4t2Fizh/PFEs7cFEA+xqYbJG7xwN2mBBv0mZGAqtBBLG0uEcnVoIVOD2QwMuFeInqG/iQDCR/wnBRf8ryW41gRkWmm7EJr7UfGrurXIE3ymYNKh6WBbgSAzgALOYAhGow7uXxPYdiOSV7HsIbC2+KTEpEkR9J9LhzHdbCrAVPr/2ciNdqkM3HidfbfFIOzxbrdxM20/6FnTwUBMiPbpF/wZEOvC998g3yY7YPwzG6sxV13HAF3NE6Yy+KBKxolsPddSRhyjFlZaIV7+W/dbSL9Eoh0BVi/2KcCPFzV2/MJWPAcyat9VBZKyNwPF/IHk5K5M/hK0qlnZlFZDF1rVsKwBYggDlKlkQfoi590K06ba9sdu7OXRZyf8YYp1KsDcaqSWmHLaazrA4QBFjryAo6Ec5qRwtbGZkggcqVHm4PV85glDcSDOBsPiVV77NiRliMgBc5F+C9QW9Eq5fBzCvTGH2H11JqJcPcBmg58dqghj9WyvGUOuYWnySBmvlVL6+N9tEp/NpIJEG1ooe3FMcCehrbPW1TdPRdeTvJE2sSeCbJNWzqyosR0KYu+4ks4N7a5ticbCZWhC4I=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e659e28e-9ec1-415b-a718-08deb5eced1f
X-MS-Exchange-CrossTenant-AuthSource: BN0PR10MB5109.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 21:23:53.0904
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: v/k4FyLuswKoZWmSaFej3cVo287Prc8MgAoj/8DQUJw7fdhfME0GulWrelKcSXUIW7V9dgeoBavx55DBJ4wSiA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB8055
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_05,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 spamscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0
 mlxscore=0 mlxlogscore=999 malwarescore=0 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.19.0-2605130000 definitions=main-2605190212
X-Authority-Analysis: v=2.4 cv=NdnWEWD4 c=1 sm=1 tr=0 ts=6a0cd4f4 b=1 cx=c_pps
 a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10
 a=NGcC8JguVDcA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=jiCTI4zE5U7BLdzWsZGv:22 a=7Gl3-_t3PgB9XO-mQDs3:22 a=VwQbUJbxAAAA:8
 a=JfrnYn6hAAAA:8 a=WQdL3in-H15QQPj3npUA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=1CNFftbPRP8L7MoqJWF3:22 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22
 cc=ntf awl=host:12299
X-Proofpoint-GUID: xqRm56LB7JR1qKQpcvfXEuPz_bYa1o5h
X-Proofpoint-ORIG-GUID: xqRm56LB7JR1qKQpcvfXEuPz_bYa1o5h
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE5MDIxNCBTYWx0ZWRfX4kvqtleNLvz5
 yloq7SS3LI9jjyohXeMf+72VfBooCt7XjHhZSh5XNdZashdIyh0IJNqBJEIO6IPg0F8D4t9v5R2
 KcFVAH5jTcxiPFVg9mYNrEl/go0l9NnjZDHo//zXZPXu34ZbFEXIvP9M9StwpwmcXQVwIgK9voR
 krkLVxhhv/ay1pJbu+BnmY21kWStqi4LwAw7JUoA9ODW2/TatTit1hvRQ5Tbu9sSnpm7aDw14KT
 PWyAVoAuTPWzLA1m0WwyUzHn/fgnlKVvq89f9HCszOdxdE/m5svDQOZES0I3V9WI/YWP2Wzeb2m
 WMiDO8Vg7uN9uqplMNFX030/QZurLzftCwvPR4CNlIx0Rq4VjyUfdRx4wJUbnXSvIVco8yfezdp
 B3ZAEhnWfCokp9dMIdUP+u3zIgjwuD+4mXdMsuxhRJdWEvJUJqCtOZZtwkPSKGksd8tRx/d+/4W
 fict9eFY91EEdoCq/ABzJcXtlyvwwi/Ubgn1fnM8=
X-purgate-ID: tlsNG-d25034/1779225904-E3B7CCF5-80412A9E/0/0
X-purgate-type: clean
X-purgate-size: 9204



On 2026-05-19 12:50 AM, David Woodhouse wrote:
> On Mon, 2026-05-18 at 17:57 -0700, Dongli Zhang wrote:
>> On 2026-05-18 1:48 AM, David Woodhouse wrote:
>>> ...
>>
>> I have fixed the Thunderbird configuration. Does it look better to you?
> 
> The date is certainly better, thank you. But although I *was* up late
> that night frowning at clocks, I didn't think I was up *quite* as late
> (almost 2am) as it suggests.
> 
> But I suspect that getting *that* right is beyond the limit of
> Thunderbird's configurability.
> 
> Thanks :)

Let me continue exploring how to add a timezone, such as "17:57 -0700".

> 
>> I really appreciate guidelines like the ones below.
>>
>> https://lore.kernel.org/all/20240522001817.619072-8-dwmw2@infradead.org
>>
>> Assuming I am a user of the new API, I feel confused about whether the goal is
>> to replace KVM_SET_CLOCK with KVM_SET_CLOCK_GUEST, or whether the latter is
>> meant to supplement the former.
> 
> The issue is that KVM_SET_CLOCK_GUEST can only be used in 'masterclock'
> mode, when the TSC is reliable and the guest TSCs are all in sync.
> 
> Which ought to be *all* of the time, on modern hardware and sane
> configurations. And in this series, I don't even let the *guest* screw
> that over by setting different TSC offsets on different vCPUs any more
> (we stay in masterclock mode in that case now). But the VMM can cause
> its guest to come out of masterclock mode, by setting different TSC
> *speeds* on different vCPUs.
> 
> So there remain some pathological cases where the kvmclock actually
> still has a justification to exist, and those are the cases where it
> needs to be set in its own right as a function of host time
> (KVM_SET_CLOCK), not purely as a function of the guest TSC
> (KVM_SET_CLOCK_GUEST).

I think I now understand why I feel like I am always asking weird questions. I
have been thinking about how to account for downtime, so I see
KVM_SET_CLOCK_GUEST as a supplement to KVM_SET_CLOCK.

Suppose we are not going to account for any downtime. With KVM_SET_CLOCK_GUEST:

1. The masterclock is active, so gTSC is synchronized across vCPUs. All vCPUs
share the same kvm_read_l1_tsc(v, ka->master_cycle_now).

2. Migrate the gTSC to the target VM however people want (either ablolute value
or offset value). (Optional) Account for downtime in gTSC however people want,
even with KVM_SET_CLOCK/KVM_CLOCK_REALTIME, which you may not like.

3. Adjust kvm-clock (that is, ka->kvmclock_offset) with KVM_SET_CLOCK_GUEST.

That is why you think KVM_SET_CLOCK is no longer required if we have
KVM_SET_CLOCK_GUEST. While I think KVM_SET_CLOCK is required because of
KVM_CLOCK_REALTIME.

It it isn't required to account any downtime for gTSC or if there is another way
to do so, only KVM_SET_CLOCK_GUEST is enough.

> 
> 
>>
>> If we are going to use KVM_SET_CLOCK_GUEST when KVM_SET_CLOCK is not needed, I
>> would appreciate it if the API could carry more data in addition to struct
>> pvclock_vcpu_time_info.
>>
>> +#define KVM_SET_CLOCK_GUEST    _IOW(KVMIO, 0xd6, struct pvclock_vcpu_time_info)
>> +#define KVM_GET_CLOCK_GUEST    _IOR(KVMIO, 0xd7, struct pvclock_vcpu_time_info)
>>
>>

[snip]

>>
>> Another scenario is when only MASTERCLOCK_UPDATE is pending and there is no
>> pending CLOCK_UPDATE.
>>
>> In this scenario, is it fine to skip processing MASTERCLOCK_UPDATE before saving
>> pvclock_vcpu_time_info?
>>
> 
> I'm not sure I understand that scenario. 
> 
> MASTERCLOCK_UPDATE means we have to actually recalculate the master
> clock (which really *should* be rare, now!). And then any time we do
> that, we also have to do a CLOCK_UPDATE on every vCPU to disseminate
> the new information. Which is why kvm_end_pvclock_update() does exactly
> that.
> 
> So your "MASTERCLOCK_UPDATE is pending and there is no pending
> CLOCK_UPDATE" doesn't make much sense to me. If MASTERCLOCK_UPDATE is
> pending, then there *will* be a CLOCK_UPDATE pending.

Suppose the VM is stopped and the master clock is active.

Suddenly, we change the host clocksource from TSC to HPET. pvclock_gtod_notify()
may call pvclock_gtod_update_fn() to set a pending KVM_REQ_MASTERCLOCK_UPDATE
for all vCPUs. Unless the pending KVM_REQ_MASTERCLOCK_UPDATE is processed by
kvm_update_masterclock(), kvm_end_pvclock_update() will not set a pending
KVM_REQ_CLOCK_UPDATE.

Therefore, this is a scenario in which only KVM_REQ_MASTERCLOCK_UPDATE is pending.

I do not think this scenario is important. I am just curious about the expected
way to implement similar code in the future :)

> 
> 
>>>>
>>>> Would it be helpful to validate that the delta is within a reasonable range,
>>>> e.g. that the drift can never be more than five minutes (forward or backward)?
>>>
>>> If a guest has been running for months on a previous host and is
>>> migrated to a new host, don't we expect that the KVM clock of the new
>>> VM on the new host is tweaked from its default near-zero after
>>> creation, to some large amount?
>>>
>>
>> Regarding live migration, my own investigation does not show a proportional
>> relationship between VM uptime and the amount of drift.
> 
> You're comparing the VM on the source host, with the VM on the
> destination post-migration.

Apologies for making it confusing. I was just trying to explain why I think the
kvm-clock drift will not be large.

We previously discussed the vCPU hotplug and kvm-clock drift issue. The longer
the time interval between two vCPU hotplug events, the larger the drift.

For live migration (with QEMU), I provided the equation to show that the drift
will not be large, because it is determined by something else rather than by how
long the VM has been running on the source server.


For the previous vCPU hotplug and kvm-clock bug, if we add more vCPUs to a guest
that has been running for three months, the drift will be relatively larger.

For QEMU live migration, migrating a guest VM that has been running on the
source host for *three months* versus one that has been running for *one day*
will not cause much difference in kvm-clock drift.

> 
> Perhaps I misunderstood, but I thought your suggested validation of a
> 'reasonable range' would also apply when adjusting the kvmclock of the
> nascent VM on the destination host, from "newly created" to "has been
> running for months" while migrating the state of the actual guest onto
> a clean new slate.
> 
>> Just taking QEMU + KVM as an example: suppose TSC scaling is inactive, the
>> amount of drift does not depend on how long the VM has been running before live
>> migration.
>>
>> Instead, it depends on the delta between when we call MSR_IA32_TSC and
>> KVM_GET_CLOCK, and between MSR_IA32_TSC and KVM_SET_CLOCK.
>>
>> The guest TSC stops at P1 and resumes at P3.
>> The kvmclock stops at P2 and resumes at P4.
>>
>> We expect P1 == P2 and P3 == P4.
>>
>> On source host.
>>
>> - kvm_get_msr_common(MSR_IA32_TSC) for vCPU=0 ===> P1
> 
> Here's where it all starts going wrong. Line 1.
> 
> Any API which lets you get a single time value in isolation, and thus
> which is already out of date by the time the system call even returns,
> is fundamentally unsuitable for migration.
> 
>> - kvm_get_msr_common(MSR_IA32_TSC) for vCPU=1
>> - kvm_get_msr_common(MSR_IA32_TSC) for vCPU=2
>> - kvm_get_msr_common(MSR_IA32_TSC) for vCPU=3
>> - kvm_get_msr_common(MSR_IA32_TSC) for vCPU=4
>> ... ...
>> - kvm_get_msr_common(MSR_IA32_TSC) for vCPU=N
>> - KVM_GET_CLOCK                               ===> P2
>>
>> On target host.
>>
>> - kvm_set_msr_common(MSR_IA32_TSC) for vCPU=1 ===> P3
>> - kvm_set_msr_common(MSR_IA32_TSC) for vCPU=2
> 
> At this point, the nasty hack in the kernel steps in, realises that the
> value you're setting on vCPU 2 is within a second or so of the value
> you had previously set on vCPU 1, and snaps it back to be precisely the
> same. To work around the fundamental brokenness of this method.
> 
>> - kvm_set_msr_common(MSR_IA32_TSC) for vCPU=3
>> - kvm_set_msr_common(MSR_IA32_TSC) for vCPU=4
>> - kvm_set_msr_common(MSR_IA32_TSC) for vCPU=5
>> ... ...
>> - kvm_set_msr_common(MSR_IA32_TSC) for vCPU=N
>> - KVM_SET_CLOCK                               ====> P4
>>
>>
>> Here is my equiation to predict the drift.
> 
> I'm sure you're right, but I didn't get that far when looking at this.
> I'd already thrown up in my mouth a little bit by line one.
> 
> Here's my equation to predict the drift of a live update done correctly
> on the same host using the method I've now put in the documentation:
> 
> 0.

For the ideal live update case (on the same host), there may be no need to
adjust gTSC so that it keeps incrementing. In that case, KVM_SET_CLOCK_GUEST can
be used to adjust kvm-clock based on gTSC.

For the live migration scenario, the current QEMU implementation not only fails
to account for downtime, but also has a drift issue. That is what I would like
to address in QEMU.

Thank you very much!

Dongli Zhang


From xen-devel-bounces@lists.xenproject.org Tue May 19 22:44:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 22:44:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313438.1583567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPTAB-0000mx-BL; Tue, 19 May 2026 22:43:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313438.1583567; Tue, 19 May 2026 22:43:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPTAB-0000mq-76; Tue, 19 May 2026 22:43:47 +0000
Received: by outflank-mailman (input) for mailman id 1313438;
 Tue, 19 May 2026 22:43:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+4b7c99f23599b32cd9f8+8304+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPTA7-0000mk-Ie
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 22:43:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPTA5-00DdEQ-J3; Wed, 20 May 2026 00:43:42 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+4b7c99f23599b32cd9f8+8304+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0ce794-bab6-0a2a0a5309dd-0a2a450a8fda-12
 for <multiple-recipients>; Wed, 20 May 2026 00:43:41 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+4b7c99f23599b32cd9f8+8304+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0ce79c-56b3-0a2a450a0019-5a9b3222885c-3
 for <multiple-recipients>; Wed, 20 May 2026 00:43:40 +0200
Received: from 54-240-197-233.amazon.com ([54.240.197.233]
 helo=u09cd745991455d.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPT9u-00000006Ogz-2yWk; Tue, 19 May 2026 22:43:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=+WCIzdWes3UVgHCi8CWN6cps7bIrLmIXX90dePdofcg=; b=XZTxoahJXwWUNgdkc2NGwg+w0C
	9grBLzjCxRxZt/Dw4831UwgeQh7kB3FwYkzBODyrZZp7PEziYcE75tP5JxV+4EBoEAHSXKW0Xt71O
	1XdfN+I84K4HE7TOw6J9hgOsTuSlKHvJ99s4Z+JRpgVUp+lkdBYcFvKFSCboAzbeWS5iRLML9Q5rA
	sGb4WmwPjp/AGqYvnDSXWbIGoVL0HfAkTeMAR8b17QeFvtAUHEhd4rOL2Cjo3r2+R9VbqG0v6QEJC
	ijG6gU2ZgHHadxvqka+o/fMHrNc668yBdBd/uv1R02ESlxiNhvIT7BuTW6sPpFE0HexGKeLmNw8T1
	EqsW6aaQ==;
Message-ID: <32ca0a8da4bfb1e92013a7f75e0ff7541ebcd6a6.camel@infradead.org>
Subject: Re: [PATCH v4 04/30] KVM: x86: Add KVM_[GS]ET_CLOCK_GUEST for
 accurate KVM clock migration
From: David Woodhouse <dwmw2@infradead.org>
To: Dongli Zhang <dongli.zhang@oracle.com>, kvm@vger.kernel.org
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
 Shuah Khan <skhan@linuxfoundation.org>, Thomas Gleixner <tglx@kernel.org>,
 Sean Christopherson <seanjc@google.com>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, "H. Peter Anvin" <hpa@zytor.com>, Dave
 Hansen <dave.hansen@linux.intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>,  x86@kernel.org, Marc Zyngier <maz@kernel.org>,
 Juergen Gross <jgross@suse.com>,  Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Paul Durrant <paul@xen.org>, Jonathan Cameron
 <jic23@kernel.org>,  Sascha Bischoff <Sascha.Bischoff@arm.com>, Jack
 Allister <jalliste@amazon.com>, Joey Gouly <joey.gouly@arm.com>, 
 joe.jin@oracle.com, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org,
 linux-kselftest@vger.kernel.org
Date: Tue, 19 May 2026 23:43:29 +0100
In-Reply-To: <aa68ed10-15da-4368-a986-6864843a3c44@oracle.com>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
	 <20260509224824.3264567-5-dwmw2@infradead.org>
	 <0ae8e471-db7a-4842-aca4-8ef643acde8b@oracle.com>
	 <d3c461415e05345a9b82e6f995828c1ae64a4e61.camel@infradead.org>
	 <935312be-9a86-49fd-8bb4-2c998a68e2df@oracle.com>
	 <b9980333f3a310bf05e170e79c40cb2f46485caf.camel@infradead.org>
	 <aa68ed10-15da-4368-a986-6864843a3c44@oracle.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-r8BxiHhSG54aOSyFfagN"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-4011c0/1779230621-72F718B7-D52F7678/0/0
X-purgate-type: clean
X-purgate-size: 14660


--=-r8BxiHhSG54aOSyFfagN
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, 2026-05-19 at 14:23 -0700, Dongli Zhang wrote:
> I think I now understand why I feel like I am always asking weird questio=
ns. I
> have been thinking about how to account for downtime, so I see
> KVM_SET_CLOCK_GUEST as a supplement to KVM_SET_CLOCK.

I do not believe in "downtime". There is no such thing.
There is only "steal time".

A CPU may be off in the weeds =E2=80=94 a vCPU suffering steal time, or eve=
n a
pCPU in SMM which is effectively the same thing =E2=80=94 but time doesn't
stop, and neither does the TSC.

> Suppose we are not going to account for any downtime. With KVM_SET_CLOCK_=
GUEST:
>=20
> 1. The masterclock is active, so gTSC is synchronized across vCPUs. All v=
CPUs
> share the same kvm_read_l1_tsc(v, ka->master_cycle_now).

Strictly, by the time we get to the end of my series, masterclock is
active *because* all the vCPUs are running at the same TSC rate (even
if the guest set them to different offsets). But OK.

> 2. Migrate the gTSC to the target VM however people want (either ablolute=
 value
> or offset value). (Optional) Account for downtime in gTSC however people =
want,
> even with KVM_SET_CLOCK/KVM_CLOCK_REALTIME, which you may not like.
>
> 3. Adjust kvm-clock (that is, ka->kvmclock_offset) with KVM_SET_CLOCK_GUE=
ST.
>=20
> That is why you think KVM_SET_CLOCK is no longer required if we have
> KVM_SET_CLOCK_GUEST. While I think KVM_SET_CLOCK is required because of
> KVM_CLOCK_REALTIME.

If I recall correctly what we described in
https://lore.kernel.org/all/20240522001817.619072-8-dwmw2@infradead.org/
I don't think we actually needed KVM_SET_CLOCK at all, did we?

We *abuse* KVM_GET_CLOCK to give us a tuple of {realtime, host TSC}
because there's actually no other way for *userspace* to get that. We
don't actually *care* about the KVM clock part.

We use the {realtime, host TSC} pair to reconstitute the guest TSC
values to correctly reflect the passing of time while the guest was in
the ether.

> It it isn't required to account any downtime for gTSC or if there is anot=
her way
> to do so, only KVM_SET_CLOCK_GUEST is enough.

Right. If you only want the guest to come back with the *same* values
in its TSC as before the migration, as if the TSC was *paused* during
the migration, then you can just restore those values and use
KVM_SET_CLOCK_GUEST. Assuming you are on modern hardware and have set
all vCPUs to the same rate (and are using this series so the *guest*
can't break masterclock for you, and you can trust the
KVM_SET_CLOCK_GUEST will work).

> >=20
> > > Another scenario is when only MASTERCLOCK_UPDATE is pending and there=
 is no
> > > pending CLOCK_UPDATE.
> > >=20
> > > In this scenario, is it fine to skip processing MASTERCLOCK_UPDATE be=
fore saving
> > > pvclock_vcpu_time_info?
> > >=20
> >=20
> > I'm not sure I understand that scenario.=20
> >=20
> > MASTERCLOCK_UPDATE means we have to actually recalculate the master
> > clock (which really *should* be rare, now!). And then any time we do
> > that, we also have to do a CLOCK_UPDATE on every vCPU to disseminate
> > the new information. Which is why kvm_end_pvclock_update() does exactly
> > that.
> >=20
> > So your "MASTERCLOCK_UPDATE is pending and there is no pending
> > CLOCK_UPDATE" doesn't make much sense to me. If MASTERCLOCK_UPDATE is
> > pending, then there *will* be a CLOCK_UPDATE pending.
>=20
> Suppose the VM is stopped and the master clock is active.

I don't know what it means for a VM to be 'stopped'. Do you mean that
all vCPUs happen to be experiencing steal time at the present moment?

> Suddenly, we change the host clocksource from TSC to HPET. pvclock_gtod_n=
otify()
> may call pvclock_gtod_update_fn() to set a pending KVM_REQ_MASTERCLOCK_UP=
DATE
> for all vCPUs. Unless the pending KVM_REQ_MASTERCLOCK_UPDATE is processed=
 by
> kvm_update_masterclock(), kvm_end_pvclock_update() will not set a pending
> KVM_REQ_CLOCK_UPDATE.

You say 'Unless'... do you mean 'Until'?

> Therefore, this is a scenario in which only KVM_REQ_MASTERCLOCK_UPDATE is=
 pending.
>=20
> I do not think this scenario is important. I am just curious about the ex=
pected
> way to implement similar code in the future :)

I think that's working correctly. Until the master clock has *actually*
been updated, there's no point in setting CLOCK_UPDATE for each vCPU to
disseminate the new information to its own pvclock?



> >=20
> >=20
> > > > >=20
> > > > > Would it be helpful to validate that the delta is within a reason=
able range,
> > > > > e.g. that the drift can never be more than five minutes (forward =
or backward)?
> > > >=20
> > > > If a guest has been running for months on a previous host and is
> > > > migrated to a new host, don't we expect that the KVM clock of the n=
ew
> > > > VM on the new host is tweaked from its default near-zero after
> > > > creation, to some large amount?
> > > >=20
> > >=20
> > > Regarding live migration, my own investigation does not show a propor=
tional
> > > relationship between VM uptime and the amount of drift.
> >=20
> > You're comparing the VM on the source host, with the VM on the
> > destination post-migration.
>=20
> Apologies for making it confusing. I was just trying to explain why I thi=
nk the
> kvm-clock drift will not be large.

Sure, but I don't care. If we have a sane API, the drift should be zero
:)

> We previously discussed the vCPU hotplug and kvm-clock drift issue. The l=
onger
> the time interval between two vCPU hotplug events, the larger the drift.
>=20
> For live migration (with QEMU), I provided the equation to show that the =
drift
> will not be large, because it is determined by something else rather than=
 by how
> long the VM has been running on the source server.
>=20
>=20
> For the previous vCPU hotplug and kvm-clock bug, if we add more vCPUs to =
a guest
> that has been running for three months, the drift will be relatively larg=
er.
>=20
> For QEMU live migration, migrating a guest VM that has been running on th=
e
> source host for *three months* versus one that has been running for *one =
day*
> will not cause much difference in kvm-clock drift.

Right.

> For the ideal live update case (on the same host), there may be no need t=
o
> adjust gTSC so that it keeps incrementing. In that case, KVM_SET_CLOCK_GU=
EST can
> be used to adjust kvm-clock based on gTSC.

Right. You restore the gTSC using its *offset* from the host TSC which
hasn't stopped counting on the same host. Then use KVM_SET_CLOCK_GUEST
to restore the kvmclock in terms of the gTSC. And you have an
absolutely cycle-perfect migration.

> For the live migration scenario, the current QEMU implementation not only=
 fails
> to account for downtime, but also has a drift issue. That is what I would=
 like
> to address in QEMU.

Again, restore the gTSC as accurately as possible. Probably by working
out for *yourself* the relationships of the source and destination host
TSCs to real time, and then reconstituting on the destination using TSC
offset just as for live migration.

And then use KVM_SET_CLOCK_GUEST too.

That's what I attempted to document in
https://lore.kernel.org/all/20240522001817.619072-8-dwmw2@infradead.org/
and should probably revive.

--=-r8BxiHhSG54aOSyFfagN
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUxOTIyNDMy
OVowLwYJKoZIhvcNAQkEMSIEIGTvfr5wfeHz/LRotJrCHsL4izASUvFK0bew3Yy0ltj1MGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAHpod2FTGRp3s
+iubDiwdcG6yaOTdLcBeMf4EYW4N1+Rt6Gck9iU5sVGP3pjXieU+mwW7lt+U+XalI+GvZqTE9cNr
nigUN/7qXrrLuS437UBhzJhkKtGJ/nAcmxNKoLH4y6ptsBA+AmWEGbhcw4HdSjAzWwHU1hpmkZWy
opAnjCHqlwswKjzdilciJX6xXiad4m2Tc3/MPxzIygybUazKxvdUYvPe9UmNy35fBKYWxBymxdmh
u+H+3V6ox/UzgU5Hd/uEZQ9P85r6Kq7sYJR8o6G6TZ9Vebc5KYuwhutMvBxAEcPD1OlCfdTbPl5I
LitD+Bu1nKdQE02aArTZhKnacUald05J8/pWbiYaoQBhPWJ7XU1KlTz5QscEjQ4EEAmmAqYiHgPg
stP9ABKr4g5kVi4xgubf83i1b+bBUiMRLVPq18aOHAGFHF7c7OEVW77h0nqM5KQsZ9OcDH7g7+8a
VHLYixTOAbSYJuAcO9Uctr28WNXcNevtYnTLhHIhzFHUV2jlGNxtNWXZJJrSno3C319MIv1iHfrU
PsPW4O90+2wVD+yu3h1pHhhEioBi75IS29XyKJDvRwVRc3UAC+kp7Gh1+lToWweYHMMjQL2EMxn6
e0EeV98Imp12ELJnHfYCcoqMebvBXYSNACKmkQ3RPN0DRVqsF3DA001gtCC4wSMAAAAAAAA=


--=-r8BxiHhSG54aOSyFfagN--


From xen-devel-bounces@lists.xenproject.org Tue May 19 23:35:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 May 2026 23:35:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313448.1583575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPTyD-0007oW-Vq; Tue, 19 May 2026 23:35:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313448.1583575; Tue, 19 May 2026 23:35:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPTyD-0007oP-Sr; Tue, 19 May 2026 23:35:29 +0000
Received: by outflank-mailman (input) for mailman id 1313448;
 Tue, 19 May 2026 23:35:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dongli.zhang@oracle.com>) id 1wPTyC-0007oH-3K
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 23:35:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPTyB-001z9q-Fa
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 01:35:27 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dongli.zhang@oracle.com>)
 id 6a0cf38d-5cb7-0a2a0a5109dd-0a2a450391ec-38
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 01:35:26 +0200
Received: from [205.220.177.32] (helo=mx0b-00069f02.pphosted.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dongli.zhang@oracle.com>)
 id 6a0cf3bd-672d-0a2a45030019-cddcb1205c02-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 01:35:26 +0200
Received: from pps.filterd (m0246631.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64JNPQwi3362833; Tue, 19 May 2026 23:34:58 GMT
Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta02.appoci.oracle.com [147.154.18.20])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4e6h1swwhf-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 19 May 2026 23:34:58 +0000 (GMT)
Received: from pps.filterd
 (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.7/8.18.1.7)
 with ESMTP id 64JNTqI7029364; Tue, 19 May 2026 23:34:57 GMT
Received: from bl2pr02cu003.outbound.protection.outlook.com
 (mail-eastusazon11011026.outbound.protection.outlook.com [52.101.52.26])
 by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 4e84ecx4d9-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 19 May 2026 23:34:57 +0000 (GMT)
Received: from BN0PR10MB5109.namprd10.prod.outlook.com (2603:10b6:408:124::23)
 by MW5PR10MB5714.namprd10.prod.outlook.com (2603:10b6:303:19b::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Tue, 19 May
 2026 23:34:52 +0000
Received: from BN0PR10MB5109.namprd10.prod.outlook.com
 ([fe80::d9fa:7ad2:804b:bb83]) by BN0PR10MB5109.namprd10.prod.outlook.com
 ([fe80::d9fa:7ad2:804b:bb83%6]) with mapi id 15.21.0025.023; Tue, 19 May 2026
 23:34:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=corp-2025-04-25 header.d=oracle.com header.i="@oracle.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-oracle-onmicrosoft-com header.d=oracle.onmicrosoft.com header.i="@oracle.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	corp-2025-04-25; bh=pHI1IYp6ddLBZA3tX/Wz5bpMoCHlqHpiPcKyYqfwPTs=; b=
	n0zWZcKd0M7EUYIy/IFjbuyhpn419OGMexQb4LmeIjfB7mPsrZQBKdTYz5EI9Cqh
	GWHg6bNHcxG4xTgGuBxu6gTpGIzhZsQQpYi12SarQb2stPW8gZ87WeWgszaTMUU7
	M/zmSfxwnBBIHwQqQigz7bMf5YBsRjri3jdxPGeiNU47wwZ5WiRBEblO5C/WkYxL
	tLnvcyHN3E5NIZyPULXoTXAwzR3kiIiFvRlbsAzZyCg9efH9VKrAxsPoksWdTJFw
	c+SQiBVGsJHPR01IhMKFKwYPre7KOxbrmJYkj8cvf4MaQxxMjEFjK1CdzYiRxJx5
	ENfCh5L41U9B4LSArSR2aw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tX3oQ+8DXRsbadh3mwZZK89ace4b6jueMDsR/wC1mRAu04zPnFGnwH6UgQfj1a8BPDE+/10NPnybnwSRD7XvcaYfwU6fQM5KnM54IeGFDPuB9gOIHDC/NIRMdF3heGm0xR1T4BEvDRbPZZLqtVRAA4uBnVvwGmB68mGoJpW2dB4X+yfCIh8UveV40XC0xuVGDYQm90r446e5Sr0n66ToSyohKn2Hr9epfX5bmm471/HTn+Wd9NLSGj8/nfwtOoHM15LK1dGvw1+0FMb3iopactiomRFEjQvFgKK/YjTENuy+/YiP8zCzGATTeRc0fewj71fGn2rwNRyMbbS0Cc9bwQ==
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=pHI1IYp6ddLBZA3tX/Wz5bpMoCHlqHpiPcKyYqfwPTs=;
 b=FpdPHvkPZS7E4jJd0giF5N6+1XPZj9E2XVql+gvq9TgwI0ZFc+GK3PdSqQJTMip9TfiXbHW4kowjxia1gWJNgHQsDMzwvAQ4rAeaRG37DNYtppULx8LvRWWd6w937R2eOEPC0ArtuUCg29/jWs9iTPayxwYnsHcu4rfYvnMJZkNagsz3iFbpLZw/Ggq15WeIOMvr1SZJRjkqn4YoeeQcp6ZQ3nBmR7tWbyz1pDXkq/dwp08Q0+qEeuB+CpmNYolTxGoBaPq1yJQqRkxtbrdx7dNXd1AfnHVoJf0IPtu2vStQAu/l4TRXfTbgSGR5do8Bw+AOsKQN5UPYo8K99jxbFA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pHI1IYp6ddLBZA3tX/Wz5bpMoCHlqHpiPcKyYqfwPTs=;
 b=nijXpo0KhCXcy9RGIOCDX3EaWq4ixZNshhCm0Aoc7tMHAUDyjJWq695+v73K3Ba+OLRFyYr4mj7L9ZkksAYvgc36ywwXeBbNEn9BDRAlpetDRc5FFF0xSSGrF5P/cd6ZfKP3vwxigPkIIyqQ/ZaxXV+SBDs9JXeqUjcprjopJ0w=
Message-ID: <08a64760-a431-4d0a-9480-562f8f38c908@oracle.com>
Date: Tue, 19 May 2026 16:34:48 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/30] KVM: x86: Add KVM_[GS]ET_CLOCK_GUEST for
 accurate KVM clock migration
To: David Woodhouse <dwmw2@infradead.org>, kvm@vger.kernel.org
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>,
        Shuah Khan <skhan@linuxfoundation.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Sean Christopherson <seanjc@google.com>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        "H. Peter Anvin" <hpa@zytor.com>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        Vitaly Kuznetsov <vkuznets@redhat.com>, x86@kernel.org,
        Marc Zyngier <maz@kernel.org>, Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Paul Durrant <paul@xen.org>, Jonathan Cameron <jic23@kernel.org>,
        Sascha Bischoff <Sascha.Bischoff@arm.com>,
        Jack Allister <jalliste@amazon.com>, Joey Gouly <joey.gouly@arm.com>,
        joe.jin@oracle.com, linux-doc@vger.kernel.org,
        linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-kselftest@vger.kernel.org
References: <20260509224824.3264567-1-dwmw2@infradead.org>
 <20260509224824.3264567-5-dwmw2@infradead.org>
 <0ae8e471-db7a-4842-aca4-8ef643acde8b@oracle.com>
 <d3c461415e05345a9b82e6f995828c1ae64a4e61.camel@infradead.org>
 <935312be-9a86-49fd-8bb4-2c998a68e2df@oracle.com>
 <b9980333f3a310bf05e170e79c40cb2f46485caf.camel@infradead.org>
 <aa68ed10-15da-4368-a986-6864843a3c44@oracle.com>
 <32ca0a8da4bfb1e92013a7f75e0ff7541ebcd6a6.camel@infradead.org>
Content-Language: en-US
From: Dongli Zhang <dongli.zhang@oracle.com>
In-Reply-To: <32ca0a8da4bfb1e92013a7f75e0ff7541ebcd6a6.camel@infradead.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: CH0PR03CA0312.namprd03.prod.outlook.com
 (2603:10b6:610:118::21) To BN0PR10MB5109.namprd10.prod.outlook.com
 (2603:10b6:408:124::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN0PR10MB5109:EE_|MW5PR10MB5714:EE_
X-MS-Office365-Filtering-Correlation-Id: 6b93a29f-1af6-4b16-c75f-08deb5ff3972
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|1800799024|366016|5023799004|13003099007|22082099003|56012099003|18002099003|4143699003;
X-Microsoft-Antispam-Message-Info:
	Erv8FgNpAGPqcjHm9og7Fgvkn1msKmwUc1ZsAplt3goaaeGE3taL66TyRLiIApU+AV03Oek2QPAlJsuxldr2uK9/Sob0EyBN7x5TCrcQK3V1gup8Yw/pqIgb3h88dm0CA2o6z/9NtzE/dzGsXYnhf9DCqYLsJ0dn9sxDCJF0SUxz9/5YYBx2yo35rlqluvUcYG0zs39yg7/huvxuXllEOrHDODyZLBcTvMxrTA5vy2OzrjpxfnCz93Me9ZilPUS5k6ESYblxhHqF2AVRt46eDJyZwhWImLh9n9teW21d4WtQEP3cdlITUIbxGWp8Rj2/smHBY4K5TKCjEQzv0FnBJnvQqAQq+xkR3pbB2tFR/I88z3NxzLZqFjrkFY46UU6YVN0igdXZlU4hZ95xiJRpIBI8WPYMQuROktQv2AtIvfOt4SMqhofOd+1VRFISW+XZ+Yl3a16n8vTkOzB8Iq06hAFYBCFn9JKTlDDHTbfk92b0AVt6XNiHbEenRVsf/79xqzlJlSRw+H/6dZ0QV4nZeYQuvnot37ZS6DfZtL7jZsFRaGfHv2Dj2BjmPvLOza3SaM0iIV8BN9Ttk+OZtHHlcPypKoYCV1hsiQL5Ugac5FPHYj7hC1/J1Q8scjgY2eyTVx8ew5Oq7yBoePPutvxK49DAzlncmPhCpsNWVW1rgff/wZEJkwYRnxSrDrGe4aXCSvBnk+Kynv16pczx2sSuuQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN0PR10MB5109.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(5023799004)(13003099007)(22082099003)(56012099003)(18002099003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?T1hCcnZnTEJzaUpNVmMzcmYyZURzb0svTnM2SUtzRkVPaWg2dU1NMFlPRnVT?=
 =?utf-8?B?ek1vQUxLbjFmK2Q3SXNackNlcTFBYlFhQnEwaTF6VTVzZDFiTGNNdUNUaFBu?=
 =?utf-8?B?OGFqZEJCS1pmWEtZRXFUSUQ3aThWYkdFQWJ1Wk9TNzRDR0hlRmVpTEVjTDRo?=
 =?utf-8?B?cDVMTlkwVy9KZ1licElTMGE1TjlrNHVQUmhRdFpyZThjTyt3aXlQa3RIZEFR?=
 =?utf-8?B?cGsxbVE4OE45TzhsRFZqY2xOZ210NUdSTGEvZGlsMll5d25MdnV0dEt6QnBv?=
 =?utf-8?B?K0N4MTV4SmNxa0VpTFd1Y3dyc29sRHdCa3NTRGtRZUI1WjlPMmdVeEFlQ3lL?=
 =?utf-8?B?Y1FhQ3hyZDNhSmI3ZlJiL3AvM0ZGaU1VeExWdTE1eW55aGtoVWlSa2tvd0k1?=
 =?utf-8?B?bDR2Rlhoa2dvRi95cjJJNnhzcDJ3UXYrT2xUcXVlNWRzcThmU2tvd3FiS0hP?=
 =?utf-8?B?a1VYMkxRT3R6ZElMcUIxY3VrbzdZL3o5aG5Zcm11cE9VdmxmMEZWR3RnMzY5?=
 =?utf-8?B?dkx5OURnWGNiY01HWVhwbVBjQlJSSnRLVUN2T0ZqenZwQ09HOWpUdkxrdUtJ?=
 =?utf-8?B?UXp3Q0N5OWNSVFMzaWdrZGUvTlBXeHRyNXNXWld2SFBVTmM1QVgyTFBTM3JL?=
 =?utf-8?B?MHp0d21NeEtxeGFwQ3lCRU1FZVpGWisrSlRFelJmQmRDOFFjS053OGE3MkJq?=
 =?utf-8?B?VFBzMGdwQnA5WnhianlwZE9lUlNLODBNa1BjTTlXWnQwazV0UGdOK3IzbWli?=
 =?utf-8?B?TXUvV1dKZC9XbWNlK1dyM1M3SlExUWlBVXJTdWVwL09ncG5sNkU2K09jM1R4?=
 =?utf-8?B?L3NnenBYYmw3SWllTVJlaWIvQjdGaTFmL1JpWjJ1cFVmNVNlVjRYNDBLcEEx?=
 =?utf-8?B?VkVZQUUwZk1YZytqTTNaNkoyWWxFUlVNeWlObTdxbVAxOS96THJ6eHJuYStJ?=
 =?utf-8?B?UzBFbjltanY2WlZCeVlraVJSdDVrSkJ3dUlRazlLUHJnMlJPVnZvcWxtMTFo?=
 =?utf-8?B?MVB0R0xYQWViL0Y2Nlkwak04TGZVdisxdFpwRkpyM01YTHlDSWVPcW04WVlJ?=
 =?utf-8?B?N3NMdlQ0SGg4UVhvYldOWU1Za0ZJUzViazY2N1hxMHd5dXB6WTlvYTQzSkd4?=
 =?utf-8?B?ZGl5bktnRjdUd3RnS1RESmNaUUFxbEFPMG1YMzdrcVAxb05ock9TdktwSGNk?=
 =?utf-8?B?ZjQzVWJDZkx0UlRSUHFjQ2tLdXlYcDJad1dMbW5rOEQzcXROZ2RCbnFqNjZr?=
 =?utf-8?B?bmxqTFdPbVhHU0lqODVpWHBzS3Q1RGp6UWt4VVc0WTNMaVM2dXEyRnRsSFB2?=
 =?utf-8?B?YW1yajNhQm1uYmFITXNFU3dGTUtrOWNGKy9XM28xY01aWFY4MTdCQk44TGJV?=
 =?utf-8?B?RDN0VDV3WE5ydVd2Mzl2RTNveWJoSGZmOGJtYXY3QjFaRndrUk56OHduUCtS?=
 =?utf-8?B?aDdXcmo1TmR2ZlliVUlUT282c0pMR2IrZDg1YndTK3VudDltdmJwM2hMQzZa?=
 =?utf-8?B?aVNoMkJpYlpGN2RwN3FPR0YwRTlibVc3R2R3eXlrbGRLRG02eHMwQWxpaUt5?=
 =?utf-8?B?Z2NDYi8xNjVtdnFlblk4ZkVUcWNVRXZqZmpaYzdHekRNWnhNVUhQdE9pS2JC?=
 =?utf-8?B?dWRDaVM0VlVwZ1ZuaklPcWhudUxMYnc3TGlwbU1wUTZSTnNJRjd3UEhZazZ0?=
 =?utf-8?B?dEU2YjNPdFhKclhoMVhMTTlWS1FaRHdBM2FMNGZNZUwrcDlleVF1b0FMdHhK?=
 =?utf-8?B?dkRGSnY2MTNMRVlPV2g4Wkg2WFBlTjdtN1JXTjMvSkxYc3M1c0QvSkZsV2xY?=
 =?utf-8?B?aTFlYUlSTU9RdnpORUJaVmMva0pKVXB0VmJnMy9UOHQ0OXJtNXhCUjU2c1hx?=
 =?utf-8?B?aDNZNjNndUVObWR6QTNXZm9HNEdRbGxWNlJjKzF5VmZKdkhHYVorWkFjL1NF?=
 =?utf-8?B?VWJwZmVxRkdURm5qTGVSdDd5cDN1MFhMTGk4VDlxQ0xyMi9VVlBQT1hHdk0x?=
 =?utf-8?B?TFRXL2swYzZFeVFKR2hYRURRMC90dFpaNnAxTzRTZzN1Y1VQSnh1OWVqVlF5?=
 =?utf-8?B?aldqL0w4OS9zYkRSZFUwRmRiMlp6dlFIY3REeHZiYTBPVWRLM2VvYXpOUWdu?=
 =?utf-8?B?QjExbHpxYlhaWktVb01NTkN6UENBYU40K0hwUTlxaTFsd1VHSUJqL2F2bUFC?=
 =?utf-8?B?cmRhKzBUS2FkWW16a2t0VVV0dGkrM2prckxxRFI5YXZKTzhOcE5CU0M1bmNE?=
 =?utf-8?B?OUE4TXBITlgvRWs5OUVuZkVSZThpY1EvQWZlOCthRjZyTmJjNXE2TFN4ejYv?=
 =?utf-8?B?eFFYS1lIQWdyOXlQb0hGcStwTC9laW1EaUd6QzUvTytNRXhwaGdNZz09?=
X-Exchange-RoutingPolicyChecked:
	Uor6c8jtF8h2aaBejnDYejM+7VWDzwjd+kEJ9jkOE2vsj6JzJBfa+TvF5G6OnMAZhrXdO+gR0fyysu79dGTQAjDuZ500pLwqkv07wqbBFXx7bOzC168USLRQ1fdKJdRS7dUa7bcdpScXkFKC+vIcASjp2PuqBmpgr97xw5VUla5l9mfIvgoLGaILkjNAm1goRHpFNq4k4GbqkqEGvgv5NnTLF8J700w4xm+jJA6V3eUUNO71fPQlypel+vOxw8KYnlC//N/5m1wD1tewvfU82k55EUkCf4ya/c64gLo7t5zWk2RNDpHIWYn4MyIEGi59bOZSE8KJxfyAaNyNsoPi4g==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	WQWdvuqxgCDEYBIDHPP8FI3VSQSnoSB60x6wb0pRpy1da5dTXq1COUrZd3T2XaGfJ14VtjuSwGdKV9vH+RsxjodnCBLS/+WVCs4tl0v1NUjK9xzAn7yq7fmagtm6F6KX8q2GeE9rB5lFeET8iaoyFobgqqJMVIcmxZCVH4zMKUvPx7LbDU2i7DNb0bfIPb/ANddNTn8LoS+khu+khu+Gw9Ar33iHhJxJnp3GyadbYR55QkH+5fNurcdmvT2A0FKceFax3dqJD6wvHRhd3DT4dFP2j5NtPNs+Ua3jBfI6p1zZB6yD794wf1RhYMpPOHvN8etg1+7cZC/ou0Qkw8KOFXbNp25KKacA2rzmy8PcVz7Nq2vA9UqDmM4XtNFvTODaQ249xm+dlkiQFpodeQwQ9gA+h+a9LhIl5YiXwNGZIyfNS/ft9CoWccWJxYLc8DeumWwGb2AVNTjOoguOi57nqaL9t1wL7EVGRB2RrpENgmHidhYYR059nBCrS9/uVgzpybCkqeO60TjwmcWrIvApF+p/RF0sfuGKspA3eoGz62ML9RpK3x+bCYvpKYWS8DYRZpSQR9RgOUpKyJ3801aAXrBs4s2Jie/10g9cWaCYPtA=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6b93a29f-1af6-4b16-c75f-08deb5ff3972
X-MS-Exchange-CrossTenant-AuthSource: BN0PR10MB5109.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 23:34:51.9879
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7mqZef0S6doLd1S9rVoSWnIRBGQ3BfyIO46ToKMMkCRs+VneLz/L9iNHbU5ckbNZqenzR7MC1PYica3/vk5I0w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR10MB5714
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_06,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 spamscore=0 adultscore=0 mlxlogscore=999 mlxscore=0 lowpriorityscore=0
 bulkscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.19.0-2605130000 definitions=main-2605190235
X-Proofpoint-ORIG-GUID: 1On2-jH6s1HTS5W4K0QeBUWrqYw4DWEN
X-Authority-Analysis: v=2.4 cv=aoKCzyZV c=1 sm=1 tr=0 ts=6a0cf3a2 b=1 cx=c_pps
 a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10
 a=NGcC8JguVDcA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=jiCTI4zE5U7BLdzWsZGv:22 a=o5oIOnhZENCTenyL_yNV:22 a=VwQbUJbxAAAA:8
 a=JfrnYn6hAAAA:8 a=UsYC2ujuzK4GPOI29i0A:9 a=QEXdDO2ut3YA:10
 a=1CNFftbPRP8L7MoqJWF3:22 a=5yU3S35YU4bGjq-dph-N:22 a=Bho9c0fBagfJEIQBS7DQ:22
 cc=ntf awl=host:13839
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE5MDIzNSBTYWx0ZWRfXzBIo1c2W/gqI
 nhqhVx1svmXEqRCiKtPLq+LnFMGeqVv6BPqyqgl3a9OM0REZD5w+OMylwPTlVEKWLpRc4nMFrNW
 5CqFIQiUBcyGwAob79X4ArKXB32gaerm15y0qyexH5QRqONmLNB9MYEXzehkujeBLMexLTl/dVk
 RY8Bu8n+RGjTRdnyRn7IfXooisnRbKO1N+F+zR0c9kzEVqtio2wm5fL5eXpmO3UdAjaoCNXhcXL
 24XCk5Y0FRsJFWyYG26mDUW6yfKKpb8cmOuVPh+dKJsOi4MQgOt0WGInlpQ6YvSBLUomAzvv/QT
 z5+dOyvBZ1HgQr1Zurxb505DePtWPyD/aNewe7mbVtNkRQnz15xtYMdrVui5ztOHUohMLI+ftuc
 LAjfGbyegdrDhU5OQoCdU/4EeDsHKchcLxa49w/VX2SN2f0Z7T2TlK+yQ8T6s3v2jNHoD+m5ix6
 lRdJssS23/O+mSOXrs1S01lS1bqzN6q8JXZhxJOU=
X-Proofpoint-GUID: 1On2-jH6s1HTS5W4K0QeBUWrqYw4DWEN
X-purgate-ID: tlsNG-33051d/1779233726-38D73938-809F779F/0/0
X-purgate-type: clean
X-purgate-size: 5246



On 2026-05-19 3:43 PM, David Woodhouse wrote:
> On Tue, 2026-05-19 at 14:23 -0700, Dongli Zhang wrote:
>> I think I now understand why I feel like I am always asking weird questions. I
>> have been thinking about how to account for downtime, so I see
>> KVM_SET_CLOCK_GUEST as a supplement to KVM_SET_CLOCK.
> 
> I do not believe in "downtime". There is no such thing.
> There is only "steal time".

Or "leap seconds" as used in the document?

https://lore.kernel.org/all/20240522001817.619072-8-dwmw2@infradead.org


> 
> If I recall correctly what we described in
> https://lore.kernel.org/all/20240522001817.619072-8-dwmw2@infradead.org/
> I don't think we actually needed KVM_SET_CLOCK at all, did we?

Here I partially copied the content from the link.

The 2nd step of destination VMM is to invoke KVM_SET_CLOCK ioctl.

---
 From the destination VMM process:

-4. Invoke the KVM_SET_CLOCK ioctl, providing the source nanoseconds from
-   kvmclock (guest_src) and CLOCK_REALTIME (host_src) in their respective
+4. Before creating the vCPUs, invoke the KVM_SET_TSC_KHZ ioctl on the VM, to
+   set the scaled frequency of the guest's TSC (freq).
+
+5. Invoke the KVM_SET_CLOCK ioctl, providing the source nanoseconds from
+   kvmclock (guest_src) and CLOCK_REALTIME (time_src) in their respective
    fields.  Ensure that the KVM_CLOCK_REALTIME flag is set in the provided
    structure.

-   KVM will advance the VM's kvmclock to account for elapsed time since
-   recording the clock values.  Note that this will cause problems in
+   KVM will restore the VM's kvmclock, accounting for elapsed time since
+   the clock values were recorded.  Note that this will cause problems in
    the guest (e.g., timeouts) unless CLOCK_REALTIME is synchronized
    between the source and destination, and a reasonably short time passes
-   between the source pausing the VMs and the destination executing
-   steps 4-7.
+   between the source pausing the VMs and the destination resuming them.
+   Due to the KVM_[SG]ET_CLOCK API using CLOCK_REALTIME instead of
+   CLOCK_TAI, leap seconds during the migration may also introduce errors.
--


>>>
>>> So your "MASTERCLOCK_UPDATE is pending and there is no pending
>>> CLOCK_UPDATE" doesn't make much sense to me. If MASTERCLOCK_UPDATE is
>>> pending, then there *will* be a CLOCK_UPDATE pending.
>>
>> Suppose the VM is stopped and the master clock is active.
> 
> I don't know what it means for a VM to be 'stopped'. Do you mean that
> all vCPUs happen to be experiencing steal time at the present moment?

Taking QEMU as an example, all vCPU threads remain asleep in host userspace
without having a chance to invoke KVM_RUN. As a result, none of the vCPUs can
enter KVM kernel mode to process any pending requests.

This is the state before QEMU resumes from live migration or live update.

(qemu) stop

(qemu) info status
VM status: paused


According to my understanding, older KVM versions even required the userspace
VMM to keep vCPUs in userspace to avoid racing with KVM_RUN.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/x86/kvm/x86.c?h=v5.15#n6090

	case KVM_SET_CLOCK: {
... ...
		/*
		 * TODO: userspace has to take care of races with VCPU_RUN, so
		 * kvm_gen_update_masterclock() can be cut down to locked
		 * pvclock_update_vm_gtod_copy().
		 */

> 
>> Suddenly, we change the host clocksource from TSC to HPET. pvclock_gtod_notify()
>> may call pvclock_gtod_update_fn() to set a pending KVM_REQ_MASTERCLOCK_UPDATE
>> for all vCPUs. Unless the pending KVM_REQ_MASTERCLOCK_UPDATE is processed by
>> kvm_update_masterclock(), kvm_end_pvclock_update() will not set a pending
>> KVM_REQ_CLOCK_UPDATE.
> 
> You say 'Unless'... do you mean 'Until'?

Until.

> 
>> Therefore, this is a scenario in which only KVM_REQ_MASTERCLOCK_UPDATE is pending.
>>
>> I do not think this scenario is important. I am just curious about the expected
>> way to implement similar code in the future :)
> 
> I think that's working correctly. Until the master clock has *actually*
> been updated, there's no point in setting CLOCK_UPDATE for each vCPU to
> disseminate the new information to its own pvclock?

Thank you very much for helping confirm this.


> 
>> For the live migration scenario, the current QEMU implementation not only fails
>> to account for downtime, but also has a drift issue. That is what I would like
>> to address in QEMU.
> 
> Again, restore the gTSC as accurately as possible. Probably by working
> out for *yourself* the relationships of the source and destination host
> TSCs to real time, and then reconstituting on the destination using TSC
> offset just as for live migration.
> 
> And then use KVM_SET_CLOCK_GUEST too.
> 
> That's what I attempted to document in
> https://lore.kernel.org/all/20240522001817.619072-8-dwmw2@infradead.org/
> and should probably revive.

I would really appreciate it if this document could be revived. I don't see it
in your most recent v4 PATCH 7. It is very helpful as a guideline for how
userspace VMMs should take advantage of these APIs.

Thank you very much!

Dongli Zhang



From xen-devel-bounces@lists.xenproject.org Wed May 20 01:55:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 01:55:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313485.1583585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPW9O-0000uS-Ma; Wed, 20 May 2026 01:55:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313485.1583585; Wed, 20 May 2026 01:55:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPW9O-0000uK-Hx; Wed, 20 May 2026 01:55:10 +0000
Received: by outflank-mailman (input) for mailman id 1313485;
 Wed, 20 May 2026 01:55:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wPW9M-0000uD-Vk
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 01:55:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPW9L-00EMmy-CW
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 03:55:07 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0d13a0-5cb7-0a2a0a5109dd-0a2a450aa8ae-42
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 03:55:06 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0d1477-56b3-0a2a450a0019-94a38ff1303e-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 03:55:04 +0200
Received: from pps.filterd (m0367127.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64JLGTZi351902
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 01:55:03 GMT
Received: from mw6pr02cu001.outbound.protection.outlook.com
 (mail-westus2azon11012047.outbound.protection.outlook.com [52.101.48.47])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4e8ymtse2u-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 01:55:03 +0000 (GMT)
Received: from BN9PR03CA0644.namprd03.prod.outlook.com (2603:10b6:408:13b::19)
 by LV8PR16MB6669.namprd16.prod.outlook.com (2603:10b6:408:25d::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Wed, 20 May
 2026 01:54:59 +0000
Received: from BN1PEPF00006001.namprd05.prod.outlook.com
 (2603:10b6:408:13b:cafe::9b) by BN9PR03CA0644.outlook.office365.com
 (2603:10b6:408:13b::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.14 via Frontend Transport; Wed, 20
 May 2026 01:54:59 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 BN1PEPF00006001.mail.protection.outlook.com (10.167.243.233) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.11
 via Frontend Transport; Wed, 20 May 2026 01:54:59 +0000
Received: from pps.filterd (m0426315.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64JM5OYH2047490
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 21:54:59 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [44.208.76.22])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4e7afru6h3-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 21:54:58 -0400 (EDT)
Received: from localhost ([19.12.92.222]) by cmsmtp with ESMTPSA
 id PW9BwBlrMFYU6PW9CwVFCs; Wed, 20 May 2026 01:54:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=1D4UgvbHh94Oq8u6W/BBTtRllYP
	APk7p1yXXigji2QQ=; b=cKyHx+GMVn8G+bFgn2gDLDeednQG+eR1gA2T66xy09h
	0eXRZafsAboMaNkUroOC2Bxk5zOmUVZTGdBZToqbdAW1EFGB0crDyf7n/swK/HpW
	Xw5uOPPb4BUtxXZOV5AtebtBezXutM73tbwnSG//nOxZhjSMUYPz/0td0oAene+8
	hIjhlusO9ta50e+I0MSyCFqb+HI61MwT70NL2lrnFlQ3tzaw9bF0izIm/YabolKW
	jwhJ3ymb+l/rObOrP/va/ss7IKBtPb1CPGr53Mb6y3JcLcniyXSVtzJC2GC51V7E
	AaJwMCF+lImdUDEv2dmDDEgM5VP3/lbQHJbqTuaynkA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=H2cddTvPR9/zoEdZn74Kfu/kjswMuBaJDq5ziBnTFIKtULNyNcuFEYu3dC5V4lxQHl2Wf7mOBZDdoWtcg8lwYIPc/UYQQWpL+KyQwQKY7+irmuAWggqZHZGZpMVkpLAc7vho7fILDocUwDYK/iS2de50PeccUCM34dgLzmSNsakBF0rkmylHhR7L8O7ocG32ZyJgH3EGs1e98x6xXVgrUmRcTlHJlg0NlqsyJGrpOo1nS4ZldRr7d9teHQgjfOFdxY2qJQGSMT+CswdDGdEH0JX+7hhHLxeb/B5lOGaRZj3ioM4S8W5g8FMhlqNyftENYDVIxdDlzh8OyPOjFAx1kg==
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=1D4UgvbHh94Oq8u6W/BBTtRllYPAPk7p1yXXigji2QQ=;
 b=rcwfmLq5zBsdANMDEy3TYNPewzuXyQIW+Wz3zM+TSuUDpFeQp+Lkrp7Gt5hhRZCJQGP629M7MT1TGnD3vz1cY6dFXwxGAJ8CGs7B2B+Ur9d+9QPI0f6gpgTPR3xyE4dRJKfi6OukOP/rpcYK0PB2dPZeeAVVYz+uVy4umsFANYvKhaT6oI96telVFVAT+aI2TilUgndC6of+FVHa/oi3dDQyHw+veAVMmtSMzUE5f2Z7NJ91qdqPd6LARonKTYWxCaLjllCcWHfbhI05t9MMadDXDn6CiZrK0jwjA/fGe+IJ2RzeKvOVRKBzq93IxaaU/Jqcif5oPP57wJTBJGCUnQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1D4UgvbHh94Oq8u6W/BBTtRllYPAPk7p1yXXigji2QQ=;
 b=ij6NnsLNqUBrPXUIt26WmrgD9YRAvnzfKEWYZiLhT0jV/Cm6eNZOz15wVi2uzS6MEIMZ+9GnT2FEy37p2H766KpN/BD/5+f1pmRf0YhNCTBPjTG0QafD7QB9iM2KWcN3GYmn1kEG8/5GTpe2mm2/YhZxWCYvFphXP9EB/xRlhvY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=1D4UgvbHh94Oq8u6W/BBTtRllYPAPk7p1yXXigji2QQ=; b=d+7bLJxX1Zal
	XmLXagP3P7jJIpS/WvKzfJcd8neuHZJZHMv0pavSwDwQlz9FnQnTbxbSlAUk+8qB
	8F7hD7eXMSQwwB/nxMF8zKuDZP6Tb0nmQSEf7oU1kMfWAhgYvZEG0nQxdwimJi3y
	xRun9I8OOqBzX/f21tIqRHBop2vYNJizjCA2ca59SAyO7fu4So160zU3B4imN3pl
	AddnJR/JRQLYCmJUz0aCjfqLXCT/LkFnJt3VMbXrczQpKXLregbWpxlEOoTYw91A
	Pg6XpMivzBGQPu+sfubzQgIcEgpWGgTVl0qtHlkV4r0WHneouNZgErgiLyTCs49S
	i7WjvEeC4Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=1D4UgvbHh94Oq8u6W/BB
	TtRllYPAPk7p1yXXigji2QQ=; b=tdFUImluXI3SGkP/yHIXyh+t6M08feQL113S
	SGNxWqVHFScV9TQJF9AMg5BJvJ0thyMboVm4W1tpir44aMZY+ZKGs3+OBhGIJ8Uj
	sl3JTP/2tz5zJ94dFWKl5xjQHCv1pLXZIRPzpUX0kO8ceRwWl4I6Qw9kVwRxeiLV
	PkkmHGfoqkw2g9TJxorM/YUYvd+rucagsqsXTUaJaSr/jZa0qWJ5YTO2VlCAsfEO
	KpAm1tEPJKs1btXlRpz9KkxaqAUhv7iPLoq6JOh4RTD/eoZIOrRS4vp7l+i0BF9y
	iEeRHdPOHAAhvHleZ2FfhGzESzOCLOyIdTb5VoPNHmrI1tZ4Lw==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: PW9BwBlrMFYU6PW9CwVFCs
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Tue, 19 May 2026 18:54:56 -0700
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH] tools: Fix helpers build
Message-ID: <ag0UcD6QLjuH5G9B@kraken>
References: <7c5cdad207571e98ad324f07c7c754f79e8ce044.1779089580.git.mykyta_poturai@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <7c5cdad207571e98ad324f07c7c754f79e8ce044.1779089580.git.mykyta_poturai@epam.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_06,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 bulkscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 spamscore=0
 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605200015
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00006001:EE_|LV8PR16MB6669:EE_
X-MS-Office365-Filtering-Correlation-Id: 0d6fd302-d8f2-4a7b-22d8-08deb612ccdb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700016|376014|11063799006|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	/7b1EJa/LLaRPTfEM7ZjDZtk5Rj4awnrHB3cIiVLWSQ3Zj0iNb3ubjRS8/jrJrufriAIvrqllqY5pgvwVKRXl6v+4fjHwtws1AoO0SlcqbycmxJJTkhqXIyfwQ0QjJBb5FyPdz43WIntEtI9Btqt88VOLFRl8bWEC9PjoIj/+45tFSAS3c6EGC8p9KsBT0vkOIbeVKHwCO4KCJLujynoxcuUWcOv9kRTt5hfEUAG4KZhqIz6efKkhTqpm8Ph7wEgz5N7GRvGznzf3c5iIY7XUfkvCEoGcNmjbGG26wJgogRwvLkVfEhv6lZOb+zVR5N5F3TBqVApLsM8TmV3Av251FFaDjxDVaQHZYmq6gJAv2eVyxdWpKAWldq85aV1T5c6fG7bVS4qNoGxHgTiM2mbTsnJmq4sS6yKjsl2hyVdvvSopqNeIMvR70icI9cGJ6lQgxZ9QUOqQG1Sa9/wtMhCFjT5hhiwvRMDYlYrvImCzZvw4jy3F55geIhh9hDZh4RhyP3UADHssIjLtqvBUcZfhfPChr1Z0k8gsjIZE/l+3Ma3uS2+xocubvMbKvZdC8FdzarA6Q6K529/Q4DrOPp367FFgit7Gpk/Ur/iG0uQJmefV1zuL/5E0Sbq+ngCClURpycoNN/XDuTpenMcW5hXHd2zOjjT6lVn5ciXSMHJm2lcN05V/v7gGdMXV27jyF6VFqb+Z2B7Wyr5sAk3t4vpD2Np4LZAOt/f8wbNExbp/Aw=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700016)(376014)(11063799006)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	QhBHyMUVe/N/19kbHsS88RY4I7qvxwlSB8vHnHx2LiMmJIDWRklZTQpBj6J500WF0wz98I2m+E2bmBeDoO9z17edJN/FFK/+btOzhW5OWekHrQa4kyUib/amL3pACkYmCAXKj7oPUm8vChGpVF4HA4zm8jm/Y8mUXypAYzjTVLOCQcGAn3jTTnKMu61gyOqnMQABOi+kyxWirI3uXIMqJWAbLqMSOi/Phb+k6jOs+nIuJDfVwnxB5ZkEzIB+C6RydlkpngFoNz6qk4lK5IyiWbH2nxsD2+pQzzsLDxh3vfK3YoE8nb0AWq3r9309P/SPUPV8iYASIp7iHGBA/8PrbMcsNuEKGiLittSk5jRhAj4kuKNbmyeZkR0jPx4l9Avua9v2eKpk/ERcyJdQlrd+yqB5E8MtwILK7Grm1V+9IWWTtb6q3fwgQqN3i/cYvi4X
X-Exchange-RoutingPolicyChecked:
	lvrmHk5BCJdZejQrGd3HAj0XzG/t5+m1NTd8OhSgKzUVI4sJliN1/lhVszlK2WSr6sb9ryQ7PeAqhzFvnuSbj6v05VQpC0nn+8A/gx9RkRVpGdp9nzIOENxG2Bhnw/3ADfG/egqOFwZqh1RycqYokeh3lBfBnKgJzmZO8LF1oanvUFe7tmpsrGbl3LTQpF4MZgI9SdGNF4jjs2ENsbAslDCZqBNHbDu1FFEunIZsAjTCdtLtcn46y2GJr6SPEvk3vVdWzQwmGuzz/FjQMgNikSGfep/41cBIqvYILUYYFwsyJPgi/9FPzNfARToUZE7LLVto5N+jT/3A2VOTe0nrfw==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	8hvZXX/tfkIqBgg0PJIPNaL1a0cD3Ed9tO9iEAFGEVc2R6juuFPSO8cD2AHvj3/yZrOmaXctRDWfzCxn1vUb91yehpH2w2B1r4iTOA5NZMetE8dkUS7tacrRZ7mltPhoU0JNab8uyutcHD8Tb3kcgwm9SvSHbOqgpyqY254diMREYFeLrc7tKENCyfgJpeqrMHGkyomj1G0cW3xfuAU1mCcYFlSz0FXCjxmdqtKmUt8I7AJvDt1hmJ8qlP6zdjiAILvYGEegv1nCZAx7zfl1lBSSDeEadfDeKFIowMjFp2vFrEyZIfRNcs8DD/zPBE9Epl+QnrWvSC/wgOf2ekbZ5fxnvfl871ixFhYEYqmb0PGpfvVBF7b6JWTKJlNNUWprHBtvrvhgXoLe/NA+RPrDD//51yHRFJ3QcX03mMn6aNRYG5UELjF5wFNM47udgGuiMCbic+jzZfgb4gnLSNP2WeFK6yuiLR3+R+ZSIzQA9LlMTf5xdzNQnzVREfEG5VMnn5k+I390pO7fLyi2k/z4OR/GUk/q4G7vYhaBJD2w0rdy2wEznllromaUoBjL+V0B6muZZ8SliPC+cSKuB4wjq/1l+Zf6FGQU8+SvgZWcw0o2fNaSRHdP/GUaTSa9El3cUJvRco7F20yJJVZn4S/Ivg==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 01:54:59.4292
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d6fd302-d8f2-4a7b-22d8-08deb612ccdb
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00006001.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR16MB6669
X-Proofpoint-GUID: N_gHIkURAK7gBrQXVBYMIEjQMvYwur1Z
X-Proofpoint-ORIG-GUID: N_gHIkURAK7gBrQXVBYMIEjQMvYwur1Z
X-Authority-Analysis: v=2.4 cv=Wuob99fv c=1 sm=1 tr=0 ts=6a0d1477 cx=c_pps
 a=nAh4yJc8K/mwxcjpRfPwJQ==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=dw5MciS7gY-znkhJuOLE:22
 a=DBfv99YmAAAA:8 a=cbNQJ9GKAAAA:8 a=w6iLRhPts_XBajjz8_4A:9 a=CjuIK1q_8ugA:10
 a=3whSkbs7g9Me0DR5EJEX:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIwMDAxNSBTYWx0ZWRfX0/S0y3Bc7EiX
 qVKaEL5JeGvhtHdmyEFM2Zbv8atsvRMQmVu21EQY6Rbtfcfz2q5E6hMaqYao0MqWWdvDtAxWoMA
 IeKdsr/6LEvsTE/5Mfp2PVZN8ziYWCPNxhbkZ6ZxZ+P+9GCB1EHxWyPRD+6jaYhu6QpRiuNTcBH
 iCzG3Joe94cZT37oNSYLugO3Z62B4klZfrp/k3wSY2FX8snocggZVSmILC043XubQ6hsNz6H9/T
 i/BGUS9t2lUt5gFysiTiSf9XFBqT8NYy/pXh50BJuxJnLYEKZHwI59BGn61YJsQ7xPn19p0YcSo
 xArczdUGqhmdmvYmOrGyap/HnMbRNC59mOjBMXiQUPf0oQlfanaL54Zr5xsUYw0OyqSM44Kqvm7
 yP3G6P6MUQmjdXiQd6XYyd6dGFNetInYDyGYPfkEZGAPNGkM73OU6+34+cKAbHqC0gxfw+aJqZ7
 1W/fk/z6XEBf35qtstA==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_06,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 bulkscore=0 malwarescore=0 suspectscore=0 phishscore=0
 spamscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 adultscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605200015
X-purgate-ID: tlsNG-4011c0/1779242106-7D5868B7-B36272C6/0/0
X-purgate-type: clean
X-purgate-size: 741

On Mon, May 18, 2026 at 07:35:43AM +0000, Mykyta Poturai wrote:
> Init helpers sometimes fail to rebuild after switching branches,
> which results in runtime faults.
> 
> Fix this by adding missing DEPS_INCLUDE to the Makefile.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

Reviewed-by: Denis Mukhin <dmukhin@ford.com> 

> ---
>  tools/helpers/Makefile | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/tools/helpers/Makefile b/tools/helpers/Makefile
> index 8262d9e75a..11db7d8982 100644
> --- a/tools/helpers/Makefile
> +++ b/tools/helpers/Makefile
> @@ -64,3 +64,5 @@ clean:
>  	$(RM) *.o $(TARGETS) $(DEPS_RM)
>  
>  distclean: clean
> +
> +-include $(DEPS_INCLUDE)
> -- 
> 2.51.2
> 


From xen-devel-bounces@lists.xenproject.org Wed May 20 02:39:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 02:39:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313494.1583593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPWqS-00070w-Qu; Wed, 20 May 2026 02:39:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313494.1583593; Wed, 20 May 2026 02:39:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPWqS-00070p-O3; Wed, 20 May 2026 02:39:40 +0000
Received: by outflank-mailman (input) for mailman id 1313494;
 Wed, 20 May 2026 02:39:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wPWqQ-00070j-Mj
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 02:39:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPWqP-00FI5t-IB
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 04:39:38 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0d1ed3-e002-0a2a0a5209dd-0a2a45069578-36
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 04:39:37 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0d1ee6-7371-0a2a45060019-94a3921782da-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 04:39:35 +0200
Received: from pps.filterd (m0482516.ppops.net [127.0.0.1])
 by m0482516.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 64JKYe201935696
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 19:39:33 -0700
Received: from ch4pr04cu002.outbound.protection.outlook.com
 (mail-northcentralusazon11013040.outbound.protection.outlook.com
 [40.107.201.40])
 by m0482516.ppops.net (PPS) with ESMTPS id 4e8y11j04t-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 19:39:33 -0700 (PDT)
Received: from CH2PR11CA0030.namprd11.prod.outlook.com (2603:10b6:610:54::40)
 by CO6PR16MB4276.namprd16.prod.outlook.com (2603:10b6:303:b3::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May
 2026 02:39:30 +0000
Received: from CH2PEPF0000013B.namprd02.prod.outlook.com
 (2603:10b6:610:54:cafe::e2) by CH2PR11CA0030.outlook.office365.com
 (2603:10b6:610:54::40) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9791.48 via Frontend Transport; Wed,
 20 May 2026 02:39:30 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 CH2PEPF0000013B.mail.protection.outlook.com (10.167.244.68) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.11
 via Frontend Transport; Wed, 20 May 2026 02:39:29 +0000
Received: from pps.filterd (m0373460.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64K1cdjB2375703
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 22:39:28 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4e79ewudh5-2
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 22:39:28 -0400 (EDT)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id PWqDwURNYxj2GPWqEwIsiK; Wed, 20 May 2026 02:39:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=sS8YO9iyUSJc9im7EGYhEGbzfW3
	F9UgOtrWpPPBKMO4=; b=UBo/bXqfTUadIA/FcP+ZuzY8TR5SYaIGMq6UXyz3Z0q
	Vo1gS4K83tvTXCYhvmxIaC7X/hHRez4NlMlat/XM0hk+MMV0IsbfYgBiJYZ5jB2D
	zvqUsjG8cyoTlBGEOZ5A9MSsz7LIXnP5tEBFDHpZJu3FvoaPaIPzS9EzDnqcch57
	9+Rsn4zoDOYhD92uPrLSPyFV+vooqAZZdCK9iworyWDgOpmknnCj6Rre0IizuKrc
	OBpgPnP5ANBccly/Nte2306oLzE6KqqWk07SU/+Xs3vP0sLwzTXFwzPMgNho7g3x
	Ipy3mkEHOS0u0UY4VCEtHGuk69aEIVWRQVK06TFqNTg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FiFC+j54HFn6juJkdFtIE0vIHbZ6TrRm+H+s502bb0Dvaerz5LOeeMOY5+wjZxrYQBMM/uySfmCeOJ+y0Tn6u2O3BIWwn41tRanmtjKwgPIkJwOxce+wB6FofRi5zkWWrBzSLC3XrGmFnhLmu1qDg2RlaUDQM2fPOEFOPP2mVTh41pmeuZ8+RlDOFyRjS19D5zuO9v6oZni3MjGofUyVaW7WWupVZQyqRxwZRF3opyGzHv+zjM9ES8Uo8yXv8lXV7eJ0MG4FPuz0TDCbTqO1KZyItdYky/3KVKeYgmCioMwVKz5jewxvXKx9aOuh5k9aqwNwLlS2QOuARUxapwIszw==
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=sS8YO9iyUSJc9im7EGYhEGbzfW3F9UgOtrWpPPBKMO4=;
 b=w5d6PbD/xOgDvMNjeiUs6WyA/Vh+vTLjSqI6nHM2jMVWlnXI3C0Ql/4im65+W/JgthnezIF1BsFAULMumE2ZgjaGr3fkVd4bsj18GYh5E+xQs2g1Q2qOYCN4nkwt2YIk41WcyLFVNMq2eh+KN6hz3TV+R+6ULKZ7qq+S1dNcPBN6yulPNsKY/OjppQ06NozPm+KNC7HTku/fLdvAXvpNAgIPEwI++Muu+twWfhtkRM6fgfSf/2Zl+uJX2ln6HOWL6HYaVEtZz+4CyOP0KoZ/bys3IeNVLsF+FxmxnRCitlmfopJMkWqtqd9VzUFCZdu758n0wBqGwiIc4IwjEz/KOw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sS8YO9iyUSJc9im7EGYhEGbzfW3F9UgOtrWpPPBKMO4=;
 b=bpYhLNUobZ/0kBMoyON5ZE4I9T0ushS+lf/dQ/AtPQHqQe/xjxu9WZCyvZV+7zcuHnETE07mx48RgnNSrIq/bKqoIAUIePendWcyamI0oVAg9Tewz3cSNu9r0gtFio4wj042naUkrHmfHrOVTwmJ4HpOZw67J9mVdnLuT6dW478=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=sS8YO9iyUSJc9im7EGYhEGbzfW3F9UgOtrWpPPBKMO4=; b=oPB3OWShHjIb
	j7SytTrsOFDN2UjApJQwb38kUHciWQ05Cm/xn08C1NBudYPUaLs3Vg+QfL2W1kiD
	pRMLkOMmltCR0KL3DkNWEnAb0+sYeNo9TZJrdPaj2U1HVm1gCulD33PGATyBj3dJ
	JKBVd/xKBB/AsOr50UioFGbeMfnZ8D9SL4Fi3E1FitMIlsXWEA/NlWBw14Az7qi+
	csdfT4qVNmUBZ7vgYMJVYta1uM8vD7ho/1RMtAcMht6E80T62++oqOIoNnwxjzRE
	o8mDZkOn+sRuPd16V2ro2AsC9FC19mcX8iXvqClCZYvBLDomwcHjZH6hnYCvijHV
	AwFVeo41Dw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=sS8YO9iyUSJc9im7EGYh
	EGbzfW3F9UgOtrWpPPBKMO4=; b=KhyWVyetfnfVD1r/5sqe6qa8Bvhs5guFLEY5
	Cq4V7mkLqVyvRsHBvsLG2PjZrT1BK9O46Rs1UHnBeN6A3lFmmp45lW6feae+f1HJ
	WimxWVL1lLqLItBXLE0mptbOd5/sMzTbyuncKNyumuXgNX30PPyd/Lgl/19GFI/B
	JfiSFt85PUzqhyTewtLo3alKKImqng9+R/nKfO6oNmHXGeFq9Zknz9IUCFc6wcyb
	c8q6jd27aG765ymyxmzUT+udsfEQKlssaCu4oSPVX6vZP/hJnkSPlKI7sd/SeVf+
	nhAglObC0NfOjciMRNY3bGKTO3zBHstD3/a+EUhPSUTLcISBFw==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: PWqDwURNYxj2GPWqEwIsiK
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Tue, 19 May 2026 19:39:25 -0700
To: Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
        Anthony PERARD <anthony.perard@vates.tech>,
        Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
        Julien Grall <julien@xen.org>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 1/5] pci: Introduce parse_pci_sbdf{_seg}()
Message-ID: <ag0e3ZgNDQN9A6Vn@kraken>
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117760.8631fc262581453bbf619ec5b2062170.19e3bae9f48000f373@vates.tech>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1779117760.8631fc262581453bbf619ec5b2062170.19e3bae9f48000f373@vates.tech>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_06,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 spamscore=0 lowpriorityscore=0 malwarescore=0 suspectscore=0 bulkscore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605200023
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000013B:EE_|CO6PR16MB4276:EE_
X-MS-Office365-Filtering-Correlation-Id: 89890542-5494-4523-8b24-08deb619045d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700016|1800799024|4143699003|22082099003|18002099003|56012099003|11063799006|13003099007;
X-Microsoft-Antispam-Message-Info:
	3cynHu14FnE2nlA13EPCxhukuKP2s1Cb4agq3eQrsdYaAbFL1g/g8SU6l1Kq3dvQBQ0Rh2bT4tad5luY89/3FAi51YV1rn0iz+PobnnmFBTw+tKUmTENyb6Zou6NaMMrVqjUjYUpe3493pXWKSdsw687mLrhXS1Ut4PilD1sEOoImVafhg4W2ZIOgIqMnHyd0h+NYU3YJJHu10pblQLCnH82rHGsWM2Y7ve1s0D6Ej9KygYMtmezbIcd8FDyCtiCihlyqZEHI8zGTVErGsuJY3/wPpb8do7E67lITGhfWsaMxF4Jdn/4V09mg6QbSYj+coUCOfa+JW/XHapb0Ph1hTzHJisRc4Txg0AuTafhojbub6Pb3M2MzuXFU7rZ7/jFsMWw5h9z3NoZzit5aqfa3x04PTIjWbWp98xd+o0moP33pYeFWCyNGJqNNantmXNV0wLn961fmYAbHxtcl8QV5W7QlDmEKQ7g9tuIHcqkHU0zGVJNMhXZteNrVWQaTxjPonqaLjVXJRU9sNYRW4Ux/kxEscHS+sLq3T9bR7I1ajsgHX8nkY6D3eRML5jRIXWbGw6LFnK+ih1zRV3e4h3Pgeyp7slVVkfYlxcZ5Dk1/0ybDUGxwpn3CzonvC2tJ3PWHlRzJaB9VPjvZtRCi3rv8k4Vke5F/USt0LfUvjfMaET3uCwruUo+n4waLdVfjjgA
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700016)(1800799024)(4143699003)(22082099003)(18002099003)(56012099003)(11063799006)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	xuuOgrFqfm4GWWJt1r7AylPKJVU3/igftNwJv+syeLQIqaDqLakDsFs6FHNWNWl5+wyF24Iu9bAT5AVcxm/zrPa09ZneLYzrM/tb/NWltkEkswB2vdy6ufcCPhEIBLFzCFxRTalmAnDm5fmSeG0rpT+kaey0Gr+J+myVoHDXqqj6gnD3wKEDer/l8TrhVEFU7EV85wg/jlHOR4aJ9IOU9TdF3fhwbAOLFsPXzH9tWfJIF8pT6FhYwYnB937BdmL06ZrYWScLw9YQH3d2z/CV65ApYzcZlsYVTwDTPIS6pwgWYuwsdnHn+xD6djEzy1aREZxQZhiI5n9pPPcsk6iFHs5J/J0HyH58N3NudZPKABLD11OJewiJvILgEvwF7QRCn67qWQT79EyrcYIoW5qwETQCDUPujpKVqbYXZcWd74q3oo4TzAPw0BGWWmQpfE/r
X-Exchange-RoutingPolicyChecked:
	nDTKs5gcJ52KgJ1x+6yP16vsHDWfzjozDCJgW8wODA2tmScHXq0lJFUkBTwWadYuINygdRcbLzhkFUymaXi9zagGanzxXaiD/GZeVE1UwZDbflgG4n74A6JU3zKqqVeZ5Gfb4r2cCXCXaopdug8punQcK4sMm+qEyPKaa23cnWla9TtMscvU2S6wmC2Ta8RoBnGAaS80yuTk/Oes1KKR62M5kP2VIoiUOI1WXk8nTEoE95JpMhYVyDSSK2HSJ3CkRLottQxL4/jmWOee2uZp6t8PhkILDNSWX8eW8A85qoKUhrYrWzICJtQ1b/oZ2YwTYCEU8cjJTGcOHl6rA2Swzg==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	g09iVhlcNe9eqZJwLbqSMvEzAUsjGv29DI89rgpyRmZnrpwuSCI7CrgZVstve11KSd08OmSxOWIT4lQNjJLp61+/nopqDLdfYpbEDSwAkliisyzbujUSJnZLAk22aZve+Zl1aojeSPLSryBt7DY1O6+6KxoIBtOJqvTLy8nn1UvRZc2owGRezvjOeijDIQ5veCuk9rzbyUw+woJY4hs+O9be5Mw4aprnXmliI5jWxn3qkvmqmYr+2Uu382MGThBLZzwdTQhEKssng81AzM8JackDHzbFbyElT1zwQ0l8IVV6p/Tt7fIMPQ22wFOGWZM7DUv2RkJE82YoE5MPcmFDpfXWTZH7nwuRwSZ/0YA0R3+OupgZ773xtUF8UXmiJJOhqUpIL8L8DGyyi17JXgJGgmKft+nv74OCHaeEWpo5Bc4f0xhrX7gQhhlMIl+DI/bEieus1XTnIX9v6jOJjp9dHbuc7YgJZifu2YrJ0D5o/DwPt8MLWg1f5rou4mkFW/ZEhq7IpSDToLziCeD1b7OSAbV90//ZxZQpdoynMBBzzbTWjLoYh4+imJn6zm8aaI74eBkpRJfD09KfxE1lE0ZfDJ6tpOzelWC4MPBf9kzOzOH1iPjW94vPGmCAyUGMRIFbXaXoGZdmKLyuaChSXd7l2Q==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 02:39:29.4506
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 89890542-5494-4523-8b24-08deb619045d
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000013B.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR16MB4276
X-Authority-Analysis: v=2.4 cv=P54KQCAu c=1 sm=1 tr=0 ts=6a0d1ee5 cx=c_pps
 a=dJs83p8YoJtII+u9Eez95A==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=NvsXeTrgx-CJMFV-xl94:22
 a=-RI0ju8yAAAA:8 a=VKiVTJu5s6f4S1AJKYMA:9 a=CjuIK1q_8ugA:10
 a=DqJYxgmhk6moR-_7_KoZ:22 a=UsJdYLK5l2RqpxBViBoK:22
X-Proofpoint-GUID: 7Xd7-XAdfjrGpI8F4avEAwjelrcUfXA4
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIwMDAyMyBTYWx0ZWRfX9AWWkqc2UBqd
 QP7qvkrOvIf2IoyThAWdiukrMDvbtN21eAOrq9J6lVloqXkkvmHo66LatpzimQqGaPd49fZCwRn
 PVvEAMws9lf3ixPeJcCB6TUpqtd208NH9R/u789cMq9cOmzjuc6/vJ6+DtZj6YzhExYSQvRAArQ
 JDxejRwFwhhZ9TF9ca8DSyXGiF33HrF7igmcW4iXYy+hCfoxnpuPa98TkfDVvWUbhpjBMZzJbV9
 CIFiRjwLATjFrVTSmOZNu/ugi17N3UYruojhhppucWrAuXBCYaP7dtzyqv8t+/wlqJVUAclUMod
 6OWkUli4McfR4f41spENgqBxPUV4mwjhyPiDh9BoBAiZ5NEFtIVjZMspWdtZDr3JOSpM4aDZfyf
 P/M9+q/yK1pkch2nAkU9uFhn7bvXI9q1F2PtxlFv27dyGSoKIdgdHT/r1CAAzMkome5BPqvanNE
 f5/ks+86EyfHDwKs10A==
X-Proofpoint-ORIG-GUID: 7Xd7-XAdfjrGpI8F4avEAwjelrcUfXA4
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_06,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 adultscore=0 spamscore=0 malwarescore=0 bulkscore=0 lowpriorityscore=0
 suspectscore=0 clxscore=1015 priorityscore=1501 impostorscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605200023
X-purgate-ID: tlsNG-16d1c6/1779244777-7FB7DD75-230A6908/0/0
X-purgate-type: clean
X-purgate-size: 2442

On Mon, May 18, 2026 at 05:21:25PM +0200, Teddy Astie wrote:
> In many places, we're parsing a PCI string into individual parts
> (seg, bus, dev, fn) and then transform it into a pci_sbdf_t using PCI_SBDF
> macro. Rather than converting from parts to pci_sbdf_t and vice versa,
> introduce a new function that parses a PCI string into a pci_sbdf_t structure
> directly.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
>  xen/drivers/pci/pci.c | 18 ++++++++++++++++++
>  xen/include/xen/pci.h |  3 +++
>  2 files changed, 21 insertions(+)
> 
> diff --git a/xen/drivers/pci/pci.c b/xen/drivers/pci/pci.c
> index 084be3880c..1d06cb035b 100644
> --- a/xen/drivers/pci/pci.c
> +++ b/xen/drivers/pci/pci.c
> @@ -202,3 +202,21 @@ const char *__init parse_pci_seg(const char *s, unsigned int *seg_p,
>  
>      return s;
>  }
> +
> +const char *parse_pci_sbdf(const char *s, pci_sbdf_t *sbdf)
> +{
> +    unsigned int seg, bus, dev, func;
> +    const char *out = parse_pci(s, &seg, &bus, &dev, &func);

IMO, both parse_pci() and parse_pci_seg() should be merged into
parse_pci_sbdf() and parse_pci_sbdf_seg() at the end of the series,
since there will be no remaining consumers of the old APIs.

What do you think?

> +
> +    *sbdf = PCI_SBDF(seg, bus, dev, func);
> +    return out;
> +}
> +
> +const char *parse_pci_sbdf_seg(const char *s, pci_sbdf_t *sbdf, bool *def_seg)
> +{
> +    unsigned int seg, bus, dev, func;
> +    const char *out = parse_pci_seg(s, &seg, &bus, &dev, &func, def_seg);
> +
> +    *sbdf = PCI_SBDF(seg, bus, dev, func);
> +    return out;
> +}
> diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
> index afb6bbf50d..7bfc59cd75 100644
> --- a/xen/include/xen/pci.h
> +++ b/xen/include/xen/pci.h
> @@ -280,6 +280,9 @@ const char *parse_pci_seg(const char *s, unsigned int *seg_p,
>                            unsigned int *bus_p, unsigned int *dev_p,
>                            unsigned int *func_p, bool *def_seg);
>  
> +const char *parse_pci_sbdf(const char *s, pci_sbdf_t *sbdf);
> +const char *parse_pci_sbdf_seg(const char *s, pci_sbdf_t *sbdf, bool *def_seg);
> +
>  #define PCI_BAR_VF      (1u << 0)
>  #define PCI_BAR_LAST    (1u << 1)
>  #define PCI_BAR_ROM     (1u << 2)
> -- 
> 2.52.0
> 
> 
> 
> --
> Teddy Astie | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Wed May 20 03:00:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 03:00:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313504.1583610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPXAS-0002is-Ho; Wed, 20 May 2026 03:00:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313504.1583610; Wed, 20 May 2026 03:00:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPXAS-0002il-F2; Wed, 20 May 2026 03:00:20 +0000
Received: by outflank-mailman (input) for mailman id 1313504;
 Wed, 20 May 2026 03:00:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wPXAR-0002ib-51
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 03:00:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPXAQ-002H1d-3B
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 05:00:18 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0d22d2-2eae-0a2a0a5409dd-0a2a450baed8-48
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 05:00:17 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0d23c0-212f-0a2a450b0019-94a38ff108b2-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 05:00:17 +0200
Received: from pps.filterd (m0367127.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64JLGhEB352742
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 03:00:16 GMT
Received: from bl0pr03cu003.outbound.protection.outlook.com
 (mail-eastusazon11012057.outbound.protection.outlook.com [52.101.53.57])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4e8ymtsrhn-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 03:00:15 +0000 (GMT)
Received: from BY3PR05CA0041.namprd05.prod.outlook.com (2603:10b6:a03:39b::16)
 by SA1PR16MB6314.namprd16.prod.outlook.com (2603:10b6:806:3cc::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May
 2026 03:00:10 +0000
Received: from SJ1PEPF00002323.namprd03.prod.outlook.com
 (2603:10b6:a03:39b:cafe::b) by BY3PR05CA0041.outlook.office365.com
 (2603:10b6:a03:39b::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.15 via Frontend Transport; Wed, 20
 May 2026 03:00:10 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 SJ1PEPF00002323.mail.protection.outlook.com (10.167.242.85) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.11
 via Frontend Transport; Wed, 20 May 2026 03:00:09 +0000
Received: from pps.filterd (m0426317.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64JN4S332213539
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:00:09 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [34.209.42.160])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4e77nrbgrp-11
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:00:09 -0400 (EDT)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id PXAFw9GwnvRqcPXAGwPoBq; Wed, 20 May 2026 03:00:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=fRi9H6nH899Pi7a2qa3EUyS/cVH
	iPDhQqk/JIJtR7lI=; b=OIokd/IqXRvW/WTPOZ86i8+ZF0KQjPmP/Zs0ntMVGSn
	AG6JCF/mEegMFogogAQO4eIqco+xmKi6CkgvXl59ZP347MhshofLZNaLbsY3y0VZ
	aLYSQj4F/HfqyQTvr8Pz/biCWGD/GGtwoJ0cSFxWBrNJAjf0S/XTNqAdhuEq0Xzd
	/MkdJqeoICyhL4ItlFNPXcfeL3nRutvPTGGTW/B7BSG980VAUh/bezi+2rOze4IY
	pQGY2iLevxuSfInQdKeTFCs/58GL9AK6h0ng/t4e/KBqAQ+rQmyve2j0k/sfns3+
	icHPKiDaakbJk6c/86kJMhYGjA1Yg9WIGsmxt4vfILw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NOgUCwBUoNdMR8xwd9ugyBYuvIfnRbT+6u+JNdt3Up9TyYwtRD3jxQdYDB9pNVYwG4jmpHY4u2HB8u1gUEk7LkSxe+iM8w3pru7SOn77jdPeh0EGc0HArtcSImr31KXwz78tDSPwCNePZg9cfW87v8yN+EZpcfLv+yCB7wOAb2/WW8wrk26FQqm5XGmzhPZCwEnKL42jyTn7pGd3ClfVwqmiFxsu46wiT4T9d6J/Crl7T5e33LN+rsZZTw2XWofdAPX7oQfRfrZx3UkTnHEbalfua7Lz6P+BnA+nwA2Sj+tRQEBqGr1B1JVMFfJ0Y2JuL1cKz/WVhH7jtK5mYwk+aw==
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=fRi9H6nH899Pi7a2qa3EUyS/cVHiPDhQqk/JIJtR7lI=;
 b=eihzzELllLZvc5mWf24pFv9YWYEFviVWlvPo+UZVpQF6MSqul0Le6x8hZ/f2WJbQ4fkg1VYtbyMMMJB9QnY1DLJU0sOJHWPSjt3W2Il2gJvSXp4lGU220TGiLNzQWXO7FDUnlTp5SbvdGif/bWphwJDJEzQo2MH7kHCXusaBYvxKc/w0iP/YbILLq7ruTARBDXwlGq1NlsUVtVr9Eo+bF8ZjtJ3/wmrDMhwx07JGBCj72dahWM/fVlnqsATo7pws5dDs74yFFGRgbdo86rP9O/OZGC+MWCRFli/z2FUH7Rp/VrIXh7l2pjNccIcEKP5NxmXZgXzYTu/39Tg+7LQFsw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fRi9H6nH899Pi7a2qa3EUyS/cVHiPDhQqk/JIJtR7lI=;
 b=KQi+AjhbdUlpOiTs/Eza4tfWjkSOavZbSaZiYb7Wy/bG9+NVYDemutfdTFLs5nWuZUHgFudjQCPkQRtb6BSWOOOC+ZVmqjv4rEdEhM4ipKhXVSCQRGahp8PHAIqzNGX9JwkEOrg8N4nbR4bhXwEQP7sQoBBIH/vFzllirEU6vGA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=fRi9H6nH899Pi7a2qa3EUyS/cVHiPDhQqk/JIJtR7lI=; b=ctYJKF5nldB5
	qg6uU8wFrTAYWjBERLNq4Ev95jiq2GPo6hsMkwnQNhyCEZi02jhHpHZL+3GVElnm
	D7WNsuUOhUUrYsamVAd7XOv/AXG6H//PIP69+03iIr12jjUpZ6XB8MF2OaI3h+Sz
	U8mvO8Wxri5miOp8y79CgzR40WRHIbn91kdVJtW33mECqkAMBaPL98t7Mx41RRM/
	f0P7Fqy8TIZgDPZ2Q4+nIRgDN8UuOydOis8+yUclnxPOmo2I4kdPuBw/gs2uWabo
	dLjkBGNMYYYQiE+ir629wNXdFmuKyRrnIQqCYIrDU4nN/2XGgTpW6l40YoZnBYrA
	URs1/mCM+w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=fRi9H6nH899Pi7a2qa3E
	UyS/cVHiPDhQqk/JIJtR7lI=; b=qX5jSU/rDFG2BtIMYFcQ6s8qipi8adZibjxs
	h3OvO39fW5oqBBzsy4VyLuaFZ9r0/VHBooXbbjO1lIs9WldNMq2vAoexbeGCePkT
	mvc4xyQaNnjNcihgcTTdd6ZnClgnMnYozt043W4EGYn6e444mVqZtykOeCqUAyO7
	XCrozSjbkj/SJmCopERwPOw2fc8I/3bh8ajwhfGnKh05B4Ektiodx8CNPY8nGhTc
	tKq3BImeEPo95dQKvi17KxBdlcFKdCWK9+Xvlyk0kLqo68DpxfNUIAy5FhnG3bTK
	AQot44D0Tn165OcCJM2X2Xdh8DqoY+wNWWYRiLE6SHLckdVd0Q==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: PXAFw9GwnvRqcPXAGwPoBq
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Tue, 19 May 2026 20:00:07 -0700
To: Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
        Andrew Cooper <andrew.cooper3@citrix.com>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH 2/5] vtd: Use pci_sbdf_t in acpi_parse_dev_scope()
Message-ID: <ag0jtx6yNpPI3ZTD@kraken>
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117761.8631fc262581453bbf619ec5b2062170.19e3baea399000f373@vates.tech>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1779117761.8631fc262581453bbf619ec5b2062170.19e3baea399000f373@vates.tech>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_06,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 adultscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 suspectscore=0
 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound
 adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605200027
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002323:EE_|SA1PR16MB6314:EE_
X-MS-Office365-Filtering-Correlation-Id: 785442e8-fcfa-41b4-df86-08deb61be79b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|1800799024|82310400026|56012099003|22082099003|18002099003|13003099007|11063799006|4143699003;
X-Microsoft-Antispam-Message-Info:
	xL01NsokkIfjAu4YJFoqqEsypOH28UAQkFIXtd6WTdaO/S1tQ1ZRYJt8mxwCXfFYJONta5C7eK+7Xlnw4gERBaVO0ig4q0fnxc8hccIKZvSzb6PuaRM0779SEDKW45tcTBA4kVWly68tMrRcuGFS2MoeiDIbOQSToZ6m3ZvbTP5CRX13yb89YwyRglRUCUN2Kh57oG/KQQHU+tGDL8OOWEvjc82FhX3e4rK4sFosuVdF39MPe4LA859HvYvKcMymiCer8Zi+Ln8cy10d3gKH8j1uTdMl7gVZxgZzY1GSQnGFpytcl2igZVjJe5iQTO4gqYhspYaCoch2fM7dNizNQyjR/HIMwnGE422YTOp1vZF5obg5zHcEShltCd7K82miZbcQs/MQh3+5lURXiSas8rQLKAd4h17dJvWokT9ircCbXsrklaQA51Qbg35BArZMG9kiJpWSt6MKXyrW/7X9V8d9E+XBgvJIWu6eGX4m56iiEbNd3fsT3vt1wbkBCxZVRtCRp6XpQEkILET9dStScExXsjmzAXDKKm5yXGTe7a395GPKu82bM8dVpPXViQxxE992i29OHFu3592FNZenF/0e7A500FYkJhv89QDx+YRuMyKz2B6pxX3v0qY6RKDkZdJZSkEi9NwN/Sq6qUr3hyNvMXqHIn7MwMY5v3GM3o+vdkO5yyyqammd01MsJSw1
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700016)(376014)(1800799024)(82310400026)(56012099003)(22082099003)(18002099003)(13003099007)(11063799006)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	XM8s6QF5M8TrkFgxLM1MKf/jw53ouUmwYBPcZeLY9Gh8VFjOY5xbgxuqFR0AYUqcY4HGFExB+jXFZ2p9RqfdBvzGBIbojCznYFLKG15W+T0qRlcvo4XlebGm1eHxt3zQ5nkTA12Trpamb9KUqYirinS/EEU64ELrKvOpLQy4udZWzaSBRjKr5e+a5tfl7PyQnzsOnUetyFKlzGgZ9cak3pAjXzaUb3kWXgxkVZ77GqxRh1VRBTlVjmxgQVhTAW5UFU9EEN/GYkEXao0TqvvTYTIYJkMn+vuJ/F4uTlwElJ6DuxvvkrmEgibtsDoAatXUYT6JbyYsuOktmV7HkNQ4d1C9Fbq5/SWt2Vix3i2SM2ohlCrVozKrALFzRX7xT4OSsqtAi/X2MxR18Een9rjFW3fHcf6qSaHa4+yip0XR2geu3irKjQYkuaXW5fCWtG1I
X-Exchange-RoutingPolicyChecked:
	gOIfWRlj+sIiCa/zUQvSAKk1G4dK5XS+04k6wvUdv70AalU1OQLkvdCnc9egrfAR+KtUJqCFkk0n2PJVwf/ICKi4esquLaUNsFHTsMyurw8cMBag4rlvXvd+VSuRG1xmSw0lC1DKTbMhIleYweifb6EhWSwkbn4Ua1H8fCdcQV+ZLPJU3h1UtflI/ikieJVEQ3GwPAGj9jkBi+EtpkHgzKwxheK/vzd7mGaSV1gshbXv426O451+kE7TDfkyKBpQZMZBour4F7UHWSNCDzmXhIQm0+JvBxDqq9vPPkgHPf03G7nbwp1kOciHMFpFTI/M4UB9ikoE435jSzzpoWRFPg==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	hRDQXhrPy+st1LasVBd76d0naq7SOK8PPeuvA+2QDZ7CwUreFhROE3fsursPc+8bFWHTSZ3dlCupdIRC8GMiIRmPt1ZDPwQSZ6k6HT8upV658e3m9RQgXe59GpiTKkDP68Ol9ikpFdmxEhJs/KxNGKj9nJmfWySR03ULThCnSIBCvdUeRhPX93WFJVY3iCjMQFqEBdG7yrj+2+YToGEqydEPOHyf0Bv57EdT+MJ0oJcguA/GjgG3dzio0N+W4KSQch+9CzZDOof/CqB3Q+Rv6ySABTOPwMdb3D7NDInS8dKibZvzLy85piEBMXWg5KonHufzeIsjDbEGtNO/0Y4URCEzhpvoeUYvk1beQUy2xosnqyBFGSh9f8t/UOJGz4LDXxjdi9LlZnVsARC3+Ory8ToEqHmFDSl6/gtR6Onl+BoWxJsHt6kkrS/ZdlAFAQ8wNe419pS3kCiEwx8c7LUk8EguG8aQpL1Ccxne972GLo7NKmnZQWhy+nH1YnEDhM9uNhWdOwJMekKhdxL6EJkIlvGzmQVAlO1ThG0EbHfIrkMurCIPU1U2hWV1mdgjh1CBB69lJd7hdyVzToPeoCtH8AOwKm+5wbS45E1bYf36JQIyU2YUrgiI02eYlsHLIoUtPOh/DHRqZN+8hOGDz+fUtA==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 03:00:09.8803
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 785442e8-fcfa-41b4-df86-08deb61be79b
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002323.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR16MB6314
X-Proofpoint-GUID: 3voTNoDNdW_-mXm5MTe9XCv6Fg56d15z
X-Proofpoint-ORIG-GUID: 3voTNoDNdW_-mXm5MTe9XCv6Fg56d15z
X-Authority-Analysis: v=2.4 cv=Wuob99fv c=1 sm=1 tr=0 ts=6a0d23bf cx=c_pps
 a=tGmZTgOEbyl7bSJKA46FEg==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=dw5MciS7gY-znkhJuOLE:22
 a=-RI0ju8yAAAA:8 a=hxWUZ_UOAAAA:8 a=m3qrNmg_BWMN2aNSOiUA:9 a=CjuIK1q_8ugA:10
 a=P0bj-C3X3jJDpopQwM1U:22 a=UsJdYLK5l2RqpxBViBoK:22 a=oJOWNcIRgaUypOnx_dbc:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIwMDAyNiBTYWx0ZWRfXzIFdnDgw9lP/
 44q84x1wZn8jC2IV3stRKV8fLrYartKRP3rxiUVjJbfFqC4ZDfFLBTHLYaS6J3NOhz4SkSJUvZl
 vMg3/4BdQtQPXtGFYWiITZz94MxaPdyq8nRfWqCXj4rfzO+L3/xF1orq160LuBY8kJlvtY4fM0h
 ruh6mqN/7AHgqyy/hl6jt2vt5Utpv+/eywZ9MXxc9QvT2XpkyvS6ekhTROJAF+os5xtz/bhSfCV
 3wZeJyQJaOJCs6AybEYJGvPgwBhbjPFimKXKqeY0asm3s4/YMtuZtHQV/duXL3p5fH/sWzqmf36
 l3i7SYVcIOFxh5XL7rr67qmBWAgaiUOPYhqGAI/uiCWrMeXgOtzLjXvphxFqHF0GeOZ5tNwlJWE
 590TFXuCtKoFZc/gv/EodV0x7PcKbEp8WNdg/uepDQWU7L+SxUcfT0p+vDWH7o3A1juTvUz0aAg
 dTZw5TNoGzulRX92YMg==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_06,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 bulkscore=0 malwarescore=0 suspectscore=0 phishscore=0
 spamscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 adultscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605200026
X-purgate-ID: tlsNG-42698a/1779246017-1BB78F3B-55C19546/0/0
X-purgate-type: clean
X-purgate-size: 6379

On Mon, May 18, 2026 at 05:21:26PM +0200, Teddy Astie wrote:
> Use a dedicated pci_sbdf_t struct that we update instead of recreating
> one each time we need it.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
>  xen/drivers/passthrough/vtd/dmar.c | 42 ++++++++++++------------------
>  1 file changed, 16 insertions(+), 26 deletions(-)
> 
> diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c
> index 2a756831a6..c36f4bbd7b 100644
> --- a/xen/drivers/passthrough/vtd/dmar.c
> +++ b/xen/drivers/passthrough/vtd/dmar.c
> @@ -310,7 +310,7 @@ static int __init acpi_parse_dev_scope(
>  {
>      struct acpi_ioapic_unit *acpi_ioapic_unit;
>      const struct acpi_dmar_device_scope *acpi_scope;
> -    u16 bus, sub_bus, sec_bus;
> +    u16 sub_bus, sec_bus;
>      const struct acpi_dmar_pci_path *path;
>      struct acpi_drhd_unit *drhd = type == DMAR_TYPE ?
>          container_of(scope, struct acpi_drhd_unit, scope) : NULL;
> @@ -332,29 +332,26 @@ static int __init acpi_parse_dev_scope(
>  
>      while ( start < end )
>      {
> +        pci_sbdf_t dev_sbdf;
>          acpi_scope = start;
>          path = (const void *)(acpi_scope + 1);
>          depth = (acpi_scope->length - sizeof(*acpi_scope)) / sizeof(*path);
> -        bus = acpi_scope->bus;
> +        dev_sbdf = PCI_SBDF(seg, acpi_scope->bus, path->dev, path->fn);

`dev_sbdf` calculation depends on `path` which is updated in `while()` loop
below.

>  
>          while ( --depth > 0 )
>          {
> -            bus = pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path->fn),
> -                                 PCI_SECONDARY_BUS);
> +            dev_sbdf.bus = pci_conf_read8(dev_sbdf, PCI_SECONDARY_BUS);
>              path++;
>          }
>  
>          switch ( acpi_scope->entry_type )
>          {
>          case ACPI_DMAR_SCOPE_TYPE_BRIDGE:
> -            sec_bus = pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path->fn),
> -                                     PCI_SECONDARY_BUS);
> -            sub_bus = pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path->fn),
> -                                     PCI_SUBORDINATE_BUS);
> +            sec_bus = pci_conf_read8(dev_sbdf, PCI_SECONDARY_BUS);
> +            sub_bus = pci_conf_read8(dev_sbdf, PCI_SUBORDINATE_BUS);
>              if ( iommu_verbose )
>                  printk(VTDPREFIX " bridge: %pp start=%x sec=%x sub=%x\n",
> -                       &PCI_SBDF(seg, bus, path->dev, path->fn),
> -                       acpi_scope->bus, sec_bus, sub_bus);
> +                       &dev_sbdf, acpi_scope->bus, sec_bus, sub_bus);
>  
>              dmar_scope_add_buses(scope, sec_bus, sub_bus);
>              gfx_only = false;
> @@ -362,8 +359,7 @@ static int __init acpi_parse_dev_scope(
>  
>          case ACPI_DMAR_SCOPE_TYPE_HPET:
>              if ( iommu_verbose )
> -                printk(VTDPREFIX " MSI HPET: %pp\n",
> -                       &PCI_SBDF(seg, bus, path->dev, path->fn));
> +                printk(VTDPREFIX " MSI HPET: %pp\n", &dev_sbdf);
>  
>              if ( drhd )
>              {
> @@ -374,9 +370,7 @@ static int __init acpi_parse_dev_scope(
>                  if ( !acpi_hpet_unit )
>                      goto out;
>                  acpi_hpet_unit->id = acpi_scope->enumeration_id;
> -                acpi_hpet_unit->bus = bus;
> -                acpi_hpet_unit->dev = path->dev;
> -                acpi_hpet_unit->func = path->fn;
> +                acpi_hpet_unit->bdf = dev_sbdf.bdf;
>                  list_add(&acpi_hpet_unit->list, &drhd->hpet_list);
>  
>                  gfx_only = false;
> @@ -386,16 +380,15 @@ static int __init acpi_parse_dev_scope(
>  
>          case ACPI_DMAR_SCOPE_TYPE_ENDPOINT:
>              if ( iommu_verbose )
> -                printk(VTDPREFIX " endpoint: %pp\n",
> -                       &PCI_SBDF(seg, bus, path->dev, path->fn));
> +                printk(VTDPREFIX " endpoint: %pp\n", &dev_sbdf);
>  
> -            if ( drhd && pci_device_detect(seg, bus, path->dev, path->fn) )
> +            if ( drhd && pci_device_detect(seg, dev_sbdf.bus, dev_sbdf.dev, dev_sbdf.fn) )

Looks like `pci_device_detect()` also needs some refactoring...
(Probably out of scope for this series, though)

>              {
> -                if ( pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path->fn),
> +                if ( pci_conf_read8(dev_sbdf,
>                                      PCI_CLASS_DEVICE + 1) != 0x03
>                                      /* PCI_BASE_CLASS_DISPLAY */ )
>                      gfx_only = false;
> -                else if ( !seg && !bus && path->dev == 2 && !path->fn )
> +                else if ( !seg && !dev_sbdf.bus && path->dev == 2 && !path->fn )
>                      igd_drhd_address = drhd->address;
>              }
>  
> @@ -403,8 +396,7 @@ static int __init acpi_parse_dev_scope(
>  
>          case ACPI_DMAR_SCOPE_TYPE_IOAPIC:
>              if ( iommu_verbose )
> -                printk(VTDPREFIX " IOAPIC: %pp\n",
> -                       &PCI_SBDF(seg, bus, path->dev, path->fn));
> +                printk(VTDPREFIX " IOAPIC: %pp\n", &dev_sbdf);
>  
>              if ( drhd )
>              {
> @@ -413,9 +405,7 @@ static int __init acpi_parse_dev_scope(
>                  if ( !acpi_ioapic_unit )
>                      goto out;
>                  acpi_ioapic_unit->apic_id = acpi_scope->enumeration_id;
> -                acpi_ioapic_unit->ioapic.bdf.bus = bus;
> -                acpi_ioapic_unit->ioapic.bdf.dev = path->dev;
> -                acpi_ioapic_unit->ioapic.bdf.func = path->fn;
> +                acpi_ioapic_unit->ioapic.info = dev_sbdf.bdf;
>                  list_add(&acpi_ioapic_unit->list, &drhd->ioapic_list);
>  
>                  gfx_only = false;
> @@ -431,7 +421,7 @@ static int __init acpi_parse_dev_scope(
>              gfx_only = false;
>              continue;
>          }
> -        scope->devices[didx++] = PCI_BDF(bus, path->dev, path->fn);
> +        scope->devices[didx++] = dev_sbdf.bdf;
>          start += acpi_scope->length;
>      }
>  
> -- 
> 2.52.0
> 
> 
> 
> --
> Teddy Astie | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Wed May 20 03:21:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 03:21:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313510.1583618 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPXUp-0005jN-3S; Wed, 20 May 2026 03:21:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313510.1583618; Wed, 20 May 2026 03:21:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPXUp-0005jG-0n; Wed, 20 May 2026 03:21:23 +0000
Received: by outflank-mailman (input) for mailman id 1313510;
 Wed, 20 May 2026 03:21:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wPXUn-0005j9-60
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 03:21:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPXUm-00E5GA-2c
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 05:21:20 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0d2885-2eae-0a2a0a5409dd-0a2a450aa69c-40
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 05:21:19 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0d28ad-56b3-0a2a450a0019-94a38ff152d6-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 05:21:18 +0200
Received: from pps.filterd (m0367128.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64K1ZPdI778971
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 03:21:16 GMT
Received: from bl2pr02cu003.outbound.protection.outlook.com
 (mail-eastusazon11011020.outbound.protection.outlook.com [52.101.52.20])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4e93e68gum-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 03:21:16 +0000 (GMT)
Received: from DS7P222CA0020.NAMP222.PROD.OUTLOOK.COM (2603:10b6:8:2e::16) by
 DS5PPF87C293F87.namprd16.prod.outlook.com (2603:10b6:f:fc00::7d9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.17; Wed, 20 May
 2026 03:21:11 +0000
Received: from DS1PEPF00017095.namprd03.prod.outlook.com
 (2603:10b6:8:2e:cafe::6b) by DS7P222CA0020.outlook.office365.com
 (2603:10b6:8:2e::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.14 via Frontend Transport; Wed, 20
 May 2026 03:21:11 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 DS1PEPF00017095.mail.protection.outlook.com (10.167.17.138) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.11
 via Frontend Transport; Wed, 20 May 2026 03:21:10 +0000
Received: from pps.filterd (m0373460.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64K2bK022376315
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:21:09 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4e79ewuej5-2
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:21:09 -0400 (EDT)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id PXUYwV8MZxj2GPXUZwJnbV; Wed, 20 May 2026 03:21:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=ougHQYWlbhyrFg+BbYoKluHUxte
	kDVPtmi7BzvvH2c0=; b=ci+IfMAW8CQn7rvWCo1obe1SJPvM0kXakj8PAPDEVb3
	TgQrrYIvM+2sz/1Ottm6Et0w//OPgow1l/k45kGpvmRfHHdaTm4hcg/HP7gXc+Jz
	m7BexO0L/GPEhvGG63PcCnG9aUt2LgBmJ6AT7Dnjse+ZxOuWHUAIp5S1GvVGCX5t
	et1dTYFz27n6HGB50QBzsBMNuvK7+fHEPFKq2/Vnz++BmBQAvCsbX2tq2suNe2GU
	p2FQM3h9aopA3zTMl3pegXjtLzsq8sBAziQkHNUi8gJkTiYMWQ7X3Vg4jIUw43zA
	+QQ32KxGw2XgoikDteNnpyaFkaob6NFfSuI6nxqa5Ug==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gh+IfLPs63DBeUlz4xni67q6ncJ/Puwh0PNVdRKiq+yqXwxK8GDTl+UNoE8b0jZBZE5UYQUj5sVGymBqoZINkDHqU/oepR3YMdFGKybwwZvGYxbKLgSXnDcTWGBvdpQmiSYjs8XgZ1CFDGoEWI45JKs1D2IZsV9kHKpmwHbPSHhZMxMB6qKQhsDr7LhHCDUchPabT2K6voLEl6A2Csj4CD9FbvocWIYZvoHnvsuFtBZOZ2zfcoRxKTiDVCQKiLrV2E6Qo4tss3XppAkQQmGNb47lxdFnQ0LheqqO8dHwgI/e//A/Z1eK0/jW9vbk2OAOZe+nNYj7+4pDANULzvxfaA==
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=ougHQYWlbhyrFg+BbYoKluHUxtekDVPtmi7BzvvH2c0=;
 b=HtS5SU5ZFNqHM1mY0LGfz/G1UitFUcn5aGjg0qtCdPSqkFrlqAU6Z7TTZCVoMevNui55aK26RrVHpXjri3xxbhDlpWRr4SpTpzpJASbNA1ugD+B6/AXHnHLr8eCdhvIZkkq2SCvcXgwYRI+Ve6o0v3EAY/0eyheQr+x7MbJImf+NrS1g1H2fk6c9aFjvv9zMQDR2fv1Taz0Gn06pbYrLCoxVNjO7W6G795y2r2BpaWskBzI4tPXL2jrwiJmDfz12ydkpwYnbhf6Ag5rI3UPOHWqreunz3VlmCsF5A+4DDcpQS6K8CfjY02/54oOGIcIlNduKMrZ+pKAVLgC3cBqmeA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ougHQYWlbhyrFg+BbYoKluHUxtekDVPtmi7BzvvH2c0=;
 b=dOtaTyxIbeBL0+7h7e/l3eWq+5we76p1bAvbAE2GIqsp8fapTj/xfL8OV/BAiB9pgAIn819agUF+LefUeu9XvyB4+K/SXe3MhgfSTEDz+UF41AoB9qTcMzqYtdsbkATNy4DORiSsTQO0uidhzfoBpLk+Cd8VBS5Ly60C6uPe8Ko=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=ougHQYWlbhyrFg+BbYoKluHUxtekDVPtmi7BzvvH2c0=; b=lB3r6ZmkJuAF
	anZok4PfWVbIOn5yG5L6N+OZajuNKYqEprY40BOTgS128VWHaRAryqtFzkJmiC+j
	5yo0rWFHfgf+E/9d8wTRHjcEhplSHETYz9+5mFVMiUdT8akfTNUnff52PWA17/SX
	eNqJ0QYfuXRwch6ZV5IKALwh15aw6Oemmzr68zVS3QtYgzD/8k4/40+3ZkqJENFT
	BW/JJKRbZpIUUKRXPjtaanVDDxwAUn2PQZO4jKrAiLcd7hC9o4I0kR71t8gIdQ/t
	DFsOwCq65rt8wtsAipOe6+m6Ge8Yi193P1P88rF38qhoDqSVjmxheHmzeW2QxvCY
	y1xhw68SQw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=ougHQYWlbhyrFg+BbYoK
	luHUxtekDVPtmi7BzvvH2c0=; b=Kyly4zjVF8/ZlHyjhU84qXLv88A/gNyufWzF
	e1EURFwukzCJCXxRTFJVph+Tz7HIRgm2jFRXfgagm0G5CPgVOBq1gLzes+VRua7X
	eUg6xkzeDtx7as5RVltcA4FxfB7XcrJBAnu+870qgtXve9jjMD+zylvAk+2KuJEi
	WrCv/A82kntolnvlTnHhXb/5AhL9cDjtSD7TBtjo6WfbJALPo2beDAZ05A9vCXSP
	YfHJp3NWiWN0OHKLG23g84GzNyw2PFQVshVV/pq0evSZa5eZBTKafojdOZP9SHkW
	R65kl0Nmyr7aBS5n129C6/Zxn7VdCWcHFCdCr3uwgPAWZhl5Qg==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: PXUYwV8MZxj2GPXUZwJnbV
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Tue, 19 May 2026 20:21:06 -0700
To: Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
        Anthony PERARD <anthony.perard@vates.tech>,
        Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
        Julien Grall <julien@xen.org>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 3/5] pci: Use pci_sbdf_t in pci_device_detect()
Message-ID: <ag0oovFrGircUaut@kraken>
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117762.8631fc262581453bbf619ec5b2062170.19e3baea7d1000f373@vates.tech>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1779117762.8631fc262581453bbf619ec5b2062170.19e3baea7d1000f373@vates.tech>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_06,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 spamscore=0 lowpriorityscore=0 malwarescore=0 suspectscore=0 bulkscore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605200030
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF00017095:EE_|DS5PPF87C293F87:EE_
X-MS-Office365-Filtering-Correlation-Id: 2c0d1253-f171-4491-9553-08deb61ed6d0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|376014|1800799024|3023799007|18002099003|22082099003|4143699003|13003099007|11063799006|56012099003;
X-Microsoft-Antispam-Message-Info:
	OBdZJYt7rg54qNWLJeB5U3dpGUsT0hzmb6oyk6q2zzO4N2jKobyzaeJxSguQDBhjtBMtBQSnwLGF2ypVkqROx/87jvKC40XGOPnYqFeymC8uielsysimX5w8hQ7UHSs6E+VxhSoJ/UGK//P10E34w5AxynxQg3hCCij+X8FM05skqiPmBIrsDnoICLMovgY3+dkOpf+gIgK1Dz3Wmk0zFOg0TQEdiCzEaausIbqy8IIZR1jeIXLnpf9E7l7VGRR+iVEiYX6Axnm70Z0W9AqBbz/vhSLzqOSZRVVY7Xen5/470H8UU2DNPbDRsoAR2xJAXNpaBmhxfBJ0WOxc2UsSr7m8UHqEsGJ8JoDtFUnvTowPS5l6eXX7qZjEUnroeWbZdvBPYKXfD9ecIEvEj2LVmQSEiJq17qQb9lUrDz8DBLd86qenm1DWzkWwAeuoXSr8I1m+OYLgvYby+fNlpk4lmLjJf8iCm+5utr9WJ7siqWpuXegT4FsvkWlh4TNGxe65QHHl50+g2wvso/fPmGeVKQJ5Z7ofW9rz7z/aGBhtmlh/0fSxIo+uW++9pb5wHyuyzalM5d0tTnmTg5V56XGtcNupJVMXXxmddbn+iDtyn+9qV0eYgOVmqAebuaKLiUP7BWkhDczlNCybADjyJNBvnLpj5ZFqdVdmMlPt9OK0cvFDamCwxFYSt7qacWvQ8Epz
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(376014)(1800799024)(3023799007)(18002099003)(22082099003)(4143699003)(13003099007)(11063799006)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	fPY8JgSm6KoUOZ6iLUcQPbpzUssDUcUofMNkpwckpRVb22jwzAbckgIctdgaNQbCg5mgtvS2m7Agrf0T3nsVnFws4H4xByyzm6ilBw0q/fHabySL0M4zmdo2myKPcNpySm8uVuGlfFT9W9+IjFK8/udFFVLfFWHYo1bENJnJZQm23hsxga0LILgI8HXvnRpZBL1zyyD6TXUTNJccI2XNcHtGMu4PGyIROSGs3XCu+9hPYLK8GjUjLoI5RdpCWl/KNFE9ea4wUAxrpIJXXCmJVeeg926PeO/Kh/F7YnqUXb74HdLhiXOpHaBW57JY0PycN7z9p9dhQy0DoHYp0rZSZudwBXmaX0qsTRKh+TdJTEWEPc7j6wCZYNH5S8W54EQbOZs3c0b68yIoJbqey9P2xNnx0T1Mhfj/rwA/DY9trLqiqQWR23RbOZqvmTmb48nT
X-Exchange-RoutingPolicyChecked:
	bs1Om16I3/r3CQIaXOouJv4XX04ne9pM2sqX4LLnx4QdY4UUJWrd/v1VhhMLGOT7o9J64cWDrgUFyfb4NrcUS7Ye7DwisomXtafL3dRZizEnu4doEpsf88sW9n2j8wWB35WIRsaikhtmy903i/RwXhaIzEf54iOneNEo4RZQV0M374/blgnzRtazl3XVq0eGlR8/ZJNUnSL0h6DuWvQp4sAvWvTzBtw9U1K0og/tRLDdhVmGvt647vkxisQBqyQz/cbvwVXAmiqGNlOsw2e1VxgDBisrJdDiv9rDsfku5hGeEbdTgK/jk9oYJew33EQmLHludTib2xFRoFK0amKyZA==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	IdFwMTRg1teuzCwwBWatyvvwvXbkDXCvJB1NrBoYxH3rOZj9Hk9NvqDX9RZcVRVcqe82h8jbAB8WGI8VnvtITQSTQ2b/IQABFF5LhuDyYNsNjOaegn529FoQBxlDNhG9e9mDaZDl6E78U7GYdWs709moX6aYPX+lxnCXRReON717VpQdWWiIUeS1sY3BUeIocBEJXohs1GTVWJhLB/GrfkPo4ZjJ3YbwMwikjlgaoEn/YUstpAKhmnW5I+u8JXedzP9V7ebsELK/MXBHCbErjr3NL7h9yizMYVPMbLxKzaSSqULuY5IWtHVRlSfhyySBEuA7AlaViwJNWm/2NKkMUrCAg526Pthn+ks1LpsLkxuviQrXdYDXjMQsZzQG4MfDPnWAOSZjAQYoJL+Smm+SuzzkTQ1HBo9ECWISpLm1UfZ8PwzgS6cElWpxfvPVddQXcRA1QaLyntDdiKM1cqUCV1vT7/Fti4aC876V8myk5XZ+EGIBS0nw/OxaYVsKx9HJMFlKC8MH/5fSOFba434WhcdE2AADDYuqVq6HUQcIM7avJWkW6SPPejVszKFkmXDcRBwNP6Wd1TB2jzf7cfGqvigjFx3Pjr9XaV2bqWs4lcThvzcVK/y/DuDmiVSbcwdY4GzNg6wlU6mXfM0SQc9Bmw==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 03:21:10.0757
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2c0d1253-f171-4491-9553-08deb61ed6d0
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF00017095.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPF87C293F87
X-Authority-Analysis: v=2.4 cv=NKLlPU6g c=1 sm=1 tr=0 ts=6a0d28ac cx=c_pps
 a=x0D8RYL8GqfJKF6oaN0fjw==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=WER9OelvoqQQjwJToBYG:22
 a=-RI0ju8yAAAA:8 a=V9oHlWqBRc9fk6rsD3wA:9 a=CjuIK1q_8ugA:10
 a=DqJYxgmhk6moR-_7_KoZ:22 a=UsJdYLK5l2RqpxBViBoK:22
X-Proofpoint-ORIG-GUID: h7PKsS6EqIVuVHCW7htr-cfVR3Jd4ABi
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIwMDAzMCBTYWx0ZWRfXx61eWAMktJDn
 LUAHhYSJj4gUqg7wmi6l/cIFVUIkeckGXA1l2Zc+/Mueub+PgRTidk+JGg+hS4eysXrbd37uo06
 7IL6E/CgQfWa9rpGzldj9MY8GNOS4tb8QtKVagx+h6+EBxWpM/5P9m7Mfv06IYf2VJVrh39M8xi
 uFn6xsgf3VTdgYCvV6DP+FI8JEdjP9kd2TVj98NtJj5RZHIrzO/3MTKCZ3i9Cd9D5bG7MRM9vdJ
 eME5IaohZWVZrwrNv4fYXsRQLhVnaqnf+3kYrhsJLk07Da0fJ9HfOM6zGKIrY4q8XRHSbyv4W34
 sM3S64v5b68hPS3wjl8lsrRb51+pASLk5iKehIu0FHZB6hMlesxHChyMzeuC5/gbIYs6NSBRMmB
 4YQ77Lw9Zjy8E/c5blrEeFFwQxOVIH4EX1HHuh5XKLjxek2G4vv0XB/0PVpmne6iojsXWHAYeHB
 /dv/eqOWnFctCUHK7eg==
X-Proofpoint-GUID: h7PKsS6EqIVuVHCW7htr-cfVR3Jd4ABi
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_06,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 priorityscore=1501 clxscore=1015 lowpriorityscore=0 impostorscore=0
 bulkscore=0 suspectscore=0 spamscore=0 adultscore=0 phishscore=0
 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605200030
X-purgate-ID: tlsNG-4011c0/1779247279-70F618B7-A5B10A0C/0/0
X-purgate-type: clean
X-purgate-size: 10974

On Mon, May 18, 2026 at 05:21:27PM +0200, Teddy Astie wrote:
> Use a single pci_sbdf_t instead of each of its part as individual parameters.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
>  xen/drivers/char/ehci-dbgp.c       | 35 ++++++++++++++----------------
>  xen/drivers/passthrough/pci.c      | 16 +++++++-------
>  xen/drivers/passthrough/vtd/dmar.c | 33 +++++++++++-----------------
>  xen/include/xen/pci.h              |  2 +-
>  4 files changed, 38 insertions(+), 48 deletions(-)
> 
> diff --git a/xen/drivers/char/ehci-dbgp.c b/xen/drivers/char/ehci-dbgp.c
> index a5c79f56fc..39a047eb3f 100644
> --- a/xen/drivers/char/ehci-dbgp.c
> +++ b/xen/drivers/char/ehci-dbgp.c
> @@ -681,16 +681,14 @@ static int dbgp_control_msg(struct ehci_dbgp *dbgp, unsigned int devnum,
>      return ret;
>  }
>  
> -static unsigned int __init __find_dbgp(u8 bus, u8 slot, u8 func)
> +static unsigned int __init __find_dbgp(pci_sbdf_t sbdf)
>  {
> -    uint32_t class = pci_conf_read32(PCI_SBDF(0, bus, slot, func),
> -                                     PCI_CLASS_REVISION);
> +    uint32_t class = pci_conf_read32(sbdf, PCI_CLASS_REVISION);
>  
>      if ( (class >> 8) != PCI_CLASS_SERIAL_USB_EHCI )
>          return 0;
>  
> -    return pci_find_cap_offset(PCI_SBDF(0, bus, slot, func),
> -                               PCI_CAP_ID_EHCI_DEBUG);
> +    return pci_find_cap_offset(sbdf, PCI_CAP_ID_EHCI_DEBUG);
>  }
>  
>  static unsigned int __init find_dbgp(struct ehci_dbgp *dbgp,
> @@ -704,20 +702,20 @@ static unsigned int __init find_dbgp(struct ehci_dbgp *dbgp,
>          {
>              for ( func = 0; func < 8; func++ )
>              {
> +                pci_sbdf_t sbdf = PCI_SBDF(0, bus, slot, func);
>                  unsigned int cap;
>  
> -                if ( !pci_device_detect(0, bus, slot, func) )
> +                if ( !pci_device_detect(sbdf) )
>                  {
>                      if ( !func )
>                          break;
>                      continue;
>                  }
>  
> -                cap = __find_dbgp(bus, slot, func);
> +                cap = __find_dbgp(sbdf);
>                  if ( !cap || ehci_num-- )
>                  {
> -                    if ( !func && !(pci_conf_read8(PCI_SBDF(0, bus, slot, func),
> -                                                   PCI_HEADER_TYPE) & 0x80) )
> +                    if ( !func && !(pci_conf_read8(sbdf, PCI_HEADER_TYPE) & 0x80) )
>                          break;
>                      continue;
>                  }
> @@ -1510,25 +1508,24 @@ void __init ehci_dbgp_init(void)
>      }
>      else if ( strncmp(opt_dbgp + 4, "@pci", 4) == 0 )
>      {
> -        unsigned int bus, slot, func;
> -
> -        e = parse_pci(opt_dbgp + 8, NULL, &bus, &slot, &func);
> +        pci_sbdf_t sbdf = PCI_SBDF(0, 0, 0, 0);
> +        
> +        e = parse_pci_sbdf(opt_dbgp + 8, &sbdf);

The original logic was ignoring PCI segment, now the full PCI address
is allowed.

Looks like
  docs/misc/xen-command-line.pandoc
needs update; but the documentation also says that debug port should be
in PCI segment 0...

>          if ( !e || *e )
>              return;
>  
> -        dbgp->bus = bus;
> -        dbgp->slot = slot;
> -        dbgp->func = func;
> +        dbgp->bus = sbdf.bus;
> +        dbgp->slot = sbdf.dev;
> +        dbgp->func = sbdf.fn;
>  
> -        if ( !pci_device_detect(0, bus, slot, func) )
> +        if ( !pci_device_detect(sbdf) )
>              return;
>  
> -        dbgp->cap = __find_dbgp(bus, slot, func);
> +        dbgp->cap = __find_dbgp(sbdf);
>          if ( !dbgp->cap )
>              return;
>  
> -        dbgp_printk("Using EHCI debug port on %02x:%02x.%u\n",
> -                    bus, slot, func);
> +        dbgp_printk("Using EHCI debug port on %pp\n", &sbdf);
>      }
>      else
>          return;
> diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
> index 464bb0fee4..7b2898bd5a 100644
> --- a/xen/drivers/passthrough/pci.c
> +++ b/xen/drivers/passthrough/pci.c
> @@ -1166,11 +1166,11 @@ out:
>      return ret;
>  }
>  
> -bool __init pci_device_detect(u16 seg, u8 bus, u8 dev, u8 func)
> +bool __init pci_device_detect(pci_sbdf_t sbdf)
>  {
>      u32 vendor;
>  
> -    vendor = pci_conf_read32(PCI_SBDF(seg, bus, dev, func), PCI_VENDOR_ID);
> +    vendor = pci_conf_read32(sbdf, PCI_VENDOR_ID);
>      /* some broken boards return 0 or ~0 if a slot is empty: */
>      if ( (vendor == 0xffffffffU) || (vendor == 0x00000000U) ||
>           (vendor == 0x0000ffffU) || (vendor == 0xffff0000U) )
> @@ -1221,24 +1221,24 @@ static int __init cf_check _scan_pci_devices(struct pci_seg *pseg, void *arg)
>          {
>              for ( func = 0; func < 8; func++ )
>              {
> -                if ( !pci_device_detect(pseg->nr, bus, dev, func) )
> +                pci_sbdf_t sbdf = PCI_SBDF(pseg->nr, bus, dev, func);
> +
> +                if ( !pci_device_detect(sbdf) )
>                  {
>                      if ( !func )
>                          break;
>                      continue;
>                  }
>  
> -                pdev = alloc_pdev(pseg, bus, PCI_DEVFN(dev, func));
> +                pdev = alloc_pdev(pseg, bus, sbdf.devfn);
>                  if ( !pdev )
>                  {
>                      printk(XENLOG_WARNING "%pp: alloc_pdev failed\n",
> -                           &PCI_SBDF(pseg->nr, bus, dev, func));
> +                           &sbdf);
>                      return -ENOMEM;
>                  }
>  
> -                if ( !func && !(pci_conf_read8(PCI_SBDF(pseg->nr, bus, dev,
> -                                                        func),
> -                                               PCI_HEADER_TYPE) & 0x80) )
> +                if ( !func && !(pci_conf_read8(sbdf, PCI_HEADER_TYPE) & 0x80) )
>                      break;
>              }
>          }
> diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c
> index c36f4bbd7b..9f9b639eba 100644
> --- a/xen/drivers/passthrough/vtd/dmar.c
> +++ b/xen/drivers/passthrough/vtd/dmar.c
> @@ -382,7 +382,7 @@ static int __init acpi_parse_dev_scope(
>              if ( iommu_verbose )
>                  printk(VTDPREFIX " endpoint: %pp\n", &dev_sbdf);
>  
> -            if ( drhd && pci_device_detect(seg, dev_sbdf.bus, dev_sbdf.dev, dev_sbdf.fn) )
> +            if ( drhd && pci_device_detect(dev_sbdf) )
>              {
>                  if ( pci_conf_read8(dev_sbdf,
>                                      PCI_CLASS_DEVICE + 1) != 0x03
> @@ -505,7 +505,6 @@ acpi_parse_one_drhd(struct acpi_dmar_header *header)
>          acpi_register_drhd_unit(dmaru);
>      else
>      {
> -        u8 b, d, f;
>          unsigned int i = 0;
>          union {
>              const void *raw;
> @@ -519,18 +518,16 @@ acpi_parse_one_drhd(struct acpi_dmar_header *header)
>          for ( p.raw = dev_scope_start; i < dmaru->scope.devices_cnt;
>                i++, p.raw += p.scope->length )
>          {
> +            pci_sbdf_t sbdf = PCI_SBDF(drhd->segment, dmaru->scope.devices[i]);
> +
>              if ( p.scope->entry_type == ACPI_DMAR_SCOPE_TYPE_IOAPIC ||
>                   p.scope->entry_type == ACPI_DMAR_SCOPE_TYPE_HPET )
>                  continue;
>  
> -            b = PCI_BUS(dmaru->scope.devices[i]);
> -            d = PCI_SLOT(dmaru->scope.devices[i]);
> -            f = PCI_FUNC(dmaru->scope.devices[i]);
> -
> -            if ( !pci_device_detect(drhd->segment, b, d, f) )
> +            if ( !pci_device_detect(sbdf) )
>                  printk(XENLOG_WARNING VTDPREFIX
>                         " Non-existent device (%pp) in this DRHD's scope!\n",
> -                       &PCI_SBDF(drhd->segment, b, d, f));
> +                       &sbdf);
>          }
>  
>          acpi_register_drhd_unit(dmaru);
> @@ -559,17 +556,14 @@ static int __init register_one_rmrr(struct acpi_rmrr_unit *rmrru)
>  
>      for ( ; i < rmrru->scope.devices_cnt; i++ )
>      {
> -        u8 b = PCI_BUS(rmrru->scope.devices[i]);
> -        u8 d = PCI_SLOT(rmrru->scope.devices[i]);
> -        u8 f = PCI_FUNC(rmrru->scope.devices[i]);
> +        pci_sbdf_t sbdf = PCI_SBDF(rmrru->segment, rmrru->scope.devices[i]);
>  
> -        if ( pci_device_detect(rmrru->segment, b, d, f) == 0 )
> +        if ( pci_device_detect(sbdf) == 0 )
>          {
>              dprintk(XENLOG_WARNING VTDPREFIX,
>                      " Non-existent device (%pp) is reported"
>                      " in RMRR [%"PRIx64", %"PRIx64"]'s scope!\n",
> -                    &PCI_SBDF(rmrru->segment, b, d, f),
> -                    rmrru->base_address, rmrru->end_address);
> +                    &sbdf, rmrru->base_address, rmrru->end_address);
>              ignore = true;
>          }
>          else
> @@ -753,15 +747,13 @@ static int __init register_one_satc(struct acpi_satc_unit *satcu)
>  
>      for ( ; i < satcu->scope.devices_cnt; i++ )
>      {
> -        uint8_t b = PCI_BUS(satcu->scope.devices[i]);
> -        uint8_t d = PCI_SLOT(satcu->scope.devices[i]);
> -        uint8_t f = PCI_FUNC(satcu->scope.devices[i]);
> +        pci_sbdf_t sbdf = PCI_SBDF(satcu->segment, satcu->scope.devices[i]);
>  
> -        if ( !pci_device_detect(satcu->segment, b, d, f) )
> +        if ( !pci_device_detect(sbdf) )
>          {
>              dprintk(XENLOG_WARNING VTDPREFIX,
>                      " Non-existent device (%pp) is reported in SATC scope!\n",
> -                    &PCI_SBDF(satcu->segment, b, d, f));
> +                    &sbdf);
>              ignore = true;
>          }
>          else
> @@ -1184,8 +1176,9 @@ int cf_check intel_iommu_get_reserved_device_memory(
>  static int __init cf_check parse_rmrr_param(const char *str)
>  {
>      const char *s = str, *cur, *stmp;
> -    unsigned int seg, bus, dev, func, dev_count;
> +    unsigned int dev_count;
>      unsigned long start, end;
> +    pci_sbdf_t sbdf;
>  
>      do {
>          if ( nr_rmrr >= MAX_USER_RMRR )
> diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
> index 7bfc59cd75..d816dcad05 100644
> --- a/xen/include/xen/pci.h
> +++ b/xen/include/xen/pci.h
> @@ -218,7 +218,7 @@ static always_inline bool pcidevs_trylock(void)
>  #endif
>  
>  bool pci_known_segment(u16 seg);
> -bool pci_device_detect(u16 seg, u8 bus, u8 dev, u8 func);
> +bool pci_device_detect(pci_sbdf_t sbdf);
>  int scan_pci_devices(void);
>  enum pdev_type pdev_type(u16 seg, u8 bus, u8 devfn);
>  int find_upstream_bridge(u16 seg, u8 *bus, u8 *devfn, u8 *secbus);
> -- 
> 2.52.0
> 
> 
> 
> --
> Teddy Astie | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Wed May 20 03:23:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 03:23:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313517.1583629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPXXA-0006IT-KI; Wed, 20 May 2026 03:23:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313517.1583629; Wed, 20 May 2026 03:23:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPXXA-0006IM-GE; Wed, 20 May 2026 03:23:48 +0000
Received: by outflank-mailman (input) for mailman id 1313517;
 Wed, 20 May 2026 03:23:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wPXX9-0006IE-As
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 03:23:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPXX8-00EVvw-Mz
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 05:23:46 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0d28f5-2eae-0a2a0a5409dd-0a2a4508d2b6-46
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 05:23:46 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0d2940-63b5-0a2a45080019-94a39217efd8-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 05:23:46 +0200
Received: from pps.filterd (m0367123.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64K0J8YI3348981
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 03:23:44 GMT
Received: from sn4pr2101cu001.outbound.protection.outlook.com
 (mail-southcentralusazon11012027.outbound.protection.outlook.com
 [40.93.195.27])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4e92a8gvq2-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 03:23:44 +0000 (GMT)
Received: from PH8P221CA0057.NAMP221.PROD.OUTLOOK.COM (2603:10b6:510:349::12)
 by LV3PR16MB6191.namprd16.prod.outlook.com (2603:10b6:408:1dc::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Wed, 20 May
 2026 03:23:40 +0000
Received: from SN1PEPF0002BA4D.namprd03.prod.outlook.com
 (2603:10b6:510:349:cafe::4f) by PH8P221CA0057.outlook.office365.com
 (2603:10b6:510:349::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.16 via Frontend Transport; Wed, 20
 May 2026 03:23:40 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 SN1PEPF0002BA4D.mail.protection.outlook.com (10.167.242.70) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.11
 via Frontend Transport; Wed, 20 May 2026 03:23:39 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64JN1gJw3135622
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:23:39 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4e7714bjnw-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:23:39 -0400 (EDT)
Received: from localhost ([19.12.92.221]) by cmsmtp with ESMTPSA
 id PXWywVYm29jbEPXWzwc8rD; Wed, 20 May 2026 03:23:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=Xq+M3ryk3wNsaVH96drKxv3favb
	RmynO6kFYdWd8z+0=; b=gbWm9juXLoTc6/GsAdiVmInQJjzmykLg+7vg20IkeGz
	VKzJbA9iZxfKfadvfAnELQvSpMYFsmx8XeoLCegAPU8wvREptQLe3OzeLooHM3S9
	ODWwmVa4QM65fDUQvE8f1qM73Rn3RrFm2j4m2/nCLj/F8yzKHpgHXMQ7mCtWasv1
	PYvbvS9T763XafDFm6tQAivagxgs/dWEnxpVNs6+N1BuTbKi3MX5X0klvS3dREiP
	nXSCcgWWQMQzg4ykS/1z2l5tsqOfewNpzDnZn2yRfS78ihKdlTupaskN9EsdRorF
	fGFVOMEK5tYfSon1vFPvff7R7VmruS9e1w/LQ2YaaAg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MWMJVSkSbpZL5i7aRRae2Nk7i+uktZkoc2mwDTSbWDZJV67bte3x9lSfQw4UE3utr7YOnt9BDzPfnKUVPzlruwA5OaeI2JciOjsCfzxFHjG8oXHBB93adhoB6GMq5IxtH5WPdf+BhT631O05bnKtLJJIQzmV1tRyCs1QnrO37nYdUrTd8vqU6BA1zxKeEW/jrTFU0k06FPbHHJ6D1mKcGq2Lz64Gcwc3fkNbuepaSB27F3NGxl9OmwXJ16wMe3sp8Gp3fZnPP9zmPzYMkcr9dMQ+kC4TVB+VhDc8rdEJWi7JpqimP95UFkasmE2p4SIYQrbVSTo8LYbZk9c5eZe+xQ==
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=Xq+M3ryk3wNsaVH96drKxv3favbRmynO6kFYdWd8z+0=;
 b=pYj8/u9js9btPWc2nBYOYMthpUMZmvffWPLi/ReP78oNlXR5sKKox7MR+HB73rsCzvYZjfq/a0ITBhaajBykZE8We2WfJOR+QpqEmY7XRHZUtlILOdKOjxED3yUbFuu97QnRtgHfOLF8GPRc2U/9yE+ApzaUcWpm14cfF+3a75oxLu2m7jyfTPo43h/X57cQOnGCw/ostTO8qb40dVo9hxKG1Kc5kVvyxPiQNc+oBhjG6arASKnjbiaCN6OcCB1+p86Lx6hNxXu+XM/jY7aZj2u21LPi9q6ImIQZq+SgYff8U10vLQ2MvfxMh3zArgEPKqL1c638m5ZutH2Q6hjOEw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Xq+M3ryk3wNsaVH96drKxv3favbRmynO6kFYdWd8z+0=;
 b=T2n2Wk/lhUhJXsHJ+C0wGWUiFb/Aj7lEuiAQX7Oh1X1Ef2FBYdxbtCEQCwwCsk3S8tIcIdop9E3QUGGGaNJKpjL0l1g713X3FdpEng3dHIlUoHiM3USxWz5/G5AFjGjvct4gCL+x5/C+/LXKNic92sPumsEbyVnvECITbcjeHrc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=Xq+M3ryk3wNsaVH96drKxv3favbRmynO6kFYdWd8z+0=; b=HqgXVaq87iGh
	0wWYxKCVC59udWVzSUs3I8JJiDamuOi12CXiaeSlwnfCv5TwE4BpFcalE0yGgjV8
	Cz5JGmnNwvI0u0LkmXVoDijWqvBVRWRakr0Xpr58cJCGz8rf/Uw+xDx075Jq+s6u
	yo8gbW3p6il5F5KwezTN+rX8RNwjYar7RpRdyG7jMFxa0wBqCSGh34g7Fud/lePh
	joEdhpOSLQAYJ1NlPAqUaDkdyV7EYKhhwLjsL9iZmMJDojH4f+hQOULPy3+PyX6z
	XcCmM1TmiIMZVD7DoM/GoBMo43J12roBqk82Sq9KVJSrTCF/uvKKELN3AicKYUWf
	40ZTw7L71w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=Xq+M3ryk3wNsaVH96drK
	xv3favbRmynO6kFYdWd8z+0=; b=GscAwId+XDAgh2YfJJllLm0ISMmqNVX1DhVO
	5vVoU4WHO1ONd+lYAaq3LMCJ/HNPVPtxht+ZfTw1SX9D78+2v81K7uP/9RfxPvzq
	EGzbyntJdt8eO6tT6HtRwXLgWsMuRIdY0qszIwjb+YMntbagARPfN3fM6+zLoiWs
	Umn0WvsaJ8HqpE7WSENElm7lcyYS/k5Qy8SkgNUSlgbeUHT8cWJX8Pty8hsdvyKP
	Cp5fqxWD8homPKVjPkGIX/zOikib4s64w4F+r1O7g9NjDiTGgXSCaW22AwV2hw4X
	DxpDZpbg2450f397UvoLCaniPEwOsjwPobBJXqp2nmEEOrclrg==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: PXWywVYm29jbEPXWzwc8rD
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Tue, 19 May 2026 20:23:36 -0700
To: dmukhin@ford.com
Cc: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org,
        Jan Beulich <jbeulich@suse.com>,
        Andrew Cooper <andrew.cooper3@citrix.com>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH 2/5] vtd: Use pci_sbdf_t in acpi_parse_dev_scope()
Message-ID: <ag0pOByehq3/KGkd@kraken>
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117761.8631fc262581453bbf619ec5b2062170.19e3baea399000f373@vates.tech>
 <ag0jtx6yNpPI3ZTD@kraken>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <ag0jtx6yNpPI3ZTD@kraken>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_06,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 malwarescore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0
 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605200030
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4D:EE_|LV3PR16MB6191:EE_
X-MS-Office365-Filtering-Correlation-Id: c1d3feb6-f9b2-47a5-fe24-08deb61f301a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700016|376014|13003099007|11063799006|22082099003|56012099003|18002099003|4143699003;
X-Microsoft-Antispam-Message-Info:
	m0isuX26HYuv1NxqTtxPoV5pQnQdLwb05Y+hV3IaIkhT+CtCxBEzyizlz+x2Zcq6+I/7GMKuMASKTO4fFW5fSfC37K/hDJ71bRwQuAaF+JcKSCUgZXGR6Cmla8uO2CWA0tJwXgtv/VFyAYvguUIiG9qjqzSKdg+DNodrvbabSz48XVYhRbySq3g702852L3CQIASte2qENJspvE4c5VzZkjEPyLizjpX5WhKh9tTT3de/a1fFJhfKNBldrlbvUpMVLy4YIQSPERcvQGpo0d6Pf+FyaZwmLwZmqbBWZnXU1Gv9194Sj7/JxEMIh3BvaTCU9X8/O8H8mq9kX5t+/p70TAPXn8L4PyYSWTIWyAwYLKNIPNVpFKx9MQs+RION35MoBIWoqWFD7ylpiKTMuExj5lk/+UJT+bAOu6nhmdL7Pg3mcPUxEt8AEDXfFaDDim5DQW9/DM+ppzk6o3ATTm+NIBBkXdYcC2lBhnw8nhMyO6Fd4Ur7+0e6iJKe5UXhbX4DsprCDEIIL7gl1k1f/FnC16NzZZqQVptLwZA3DNB3xZcOGsjwRpKKJcjyLeeIirBPcM8tq+Q67sqS90efY8N3WNSkpME03yyRTJiPb7gx6WeDVF/+RgoD12PqbGH/5+Di1LJ4MYNXXtw3knIpnU1/HK5RxW3AVu/SgMPoakARiySkavFV9Slwei/Ib7QmltN
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700016)(376014)(13003099007)(11063799006)(22082099003)(56012099003)(18002099003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	2Y25z5SuL48mx00wWkGuPJI+HOvHPwngddxXo3fgLNntEeuVQrFtQJ9OybUgO0CvxHkVd8H2BN7Mp3JhgbqVM3jADL1cta1ixQASv+vCWqUXESJQXTUUs/IjvGLyEjxcANM3aevPXL1Tn2ZoXVnncyOiON3fiG/ca17mbsag0ItIsD/KdxvjG+ym40yhvUJa2bGCk8A8SceI3TnMmpX+SjLliRLqM+KVYJdfeMNkHrrhapqh0wWQhR3sQdz/cwMjfPMYgB68NWOFuFoUdicQ4q21kYz0N0+sgcFZcRD4DRIimzhh8Mj9FG/lxDmkCewmgD6GrcNOC6CX3JBc5bucsFG1LimBRFjv1YEPIwS5uT5HPzZlYS6h5P53QwlZSSuEuNpSjSw2etOLwX/e/UoSBQCu0J0LK+rhpj/+l/ppvPAkHG7Desz+8uK3QcmazKXk
X-Exchange-RoutingPolicyChecked:
	VtO0CqDX/Z3Zx5AOapEMgUufj61jNSp9WX3fdgS6MkYc232zVKxwxSzhLfZR1O35vJmm7cW7FBVVZCc1pxDGF0HnyMuGaFUbPIzjrtmuFYdJ5OKr9A9YBhRaguMF6kfSIzA/c104JSXNgzjgQMEtQrJ/pyf3WNd8x/XLOhZc0Nb5pP5WbGOZkPCB/v+EIHG0IDlVmsRIjFoah8XMDThnKXr1AqhuvlD+UC/aZjETCJhsDlZrdFyN0mTbGC51n+Rr+4YMCojNldvMR3gIJWrhDaredhPkEf1xtK6I6qvOrf2nhoyLPRgvPbs3LyTPO3uC38/A0D+tjo3DbfP2bUPqdA==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	88e95GiEGlZ9S9u8ZNkhFjKECROPfK9c/BId2/Fz19wI+xcrjhSkHDg4eTccm3Ux7J/BBYS9T12pzO/tDG9CeWqPj9rlsNpy00NYU6TtdQZL9uBor34e8sZMc4EokBzYB7wAhQQbAKxQDIP1+g4EIcHIzd2fDQgJ8gwfj6OX6AfNWYkglz2ev3aKccTBxuG0L5xRgih4VyQz/FuXUvmybT8hhB3RJj2q8AGRjb5FC7hIdx5JmILXBMjqJcyJVlVC5eQPdlfQSA1mVUFGpVzbbFqQ5J1sYIPRfL+T6MNQknDmXJT6uVXj0ilVoWsRuCY9/bz70M4dC7yhFaBWL3X3B7/vh+Ssg+7fCdfb6mcvbJA42kvNViEUKaBE0+OLiD7KJmEeDKQp9k7n47JVPqL3tQXMq1jEyITL6uA7o/u1S6DQSgtach6cJo/RzCJ8qvYsMvcyubqQ4j7F4ZxltoOwi+qzSJtWcCm4k0vbBqnRV40hGljTOBMHtnJC0uK3epFYKkskaazaOXbJEeoTctHfvQIpeWA04WnnjF1YDzLb87QH7fngd1eIOE9hnkeuRv9Bls+/nEz6kNE7JldKn259+lR3NZ1IBorpL+Rfne8Rmlmr8JmSxBjkXjiMUvF7GbPEPRfXKt5+OPQjrpC1Uq7XGw==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 03:23:39.8477
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c1d3feb6-f9b2-47a5-fe24-08deb61f301a
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002BA4D.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR16MB6191
X-Proofpoint-GUID: yxWyLITB7-ChgOBqRKK4DgkPReGpVclh
X-Authority-Analysis: v=2.4 cv=QrxuG1yd c=1 sm=1 tr=0 ts=6a0d2940 cx=c_pps
 a=0pMqp0B7/3h4ah4p3fuJNw==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=N9_n2FxmZfwfyRXvS9-E:22
 a=-RI0ju8yAAAA:8 a=cbNQJ9GKAAAA:8 a=hxWUZ_UOAAAA:8 a=3m2Hbao71CtIYFPn_vUA:9
 a=CjuIK1q_8ugA:10 a=G69WFyCBNqGPyalROSdv:22 a=UsJdYLK5l2RqpxBViBoK:22
 a=oJOWNcIRgaUypOnx_dbc:22
X-Proofpoint-ORIG-GUID: yxWyLITB7-ChgOBqRKK4DgkPReGpVclh
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIwMDAzMCBTYWx0ZWRfX22efDvNYjqFo
 2M1BJoAyEk3R0jIqlzqyZ1BFUHC8Fuz5t1bC6+62UiMY5ho4yfMfovq+OBt3E+iqRG2Ca0qWoi3
 HuVr65nJJNxXyhA5QFd5kURQkti2en1dLd3fiO/Uhk4kvDq+c3dChFtiSlbwgfqlykvgjUZ254W
 jblHnUz6DCoP2tym2mnV0iGGvAieCXMFnN9o+45akbtcHsIU6hyvMBMKFXgpA3PXrSPQyf8eSqp
 EOG7mYs3o9KF8hzaGSdjJmjgcCIoeBqQjKttrheuKOzh18koIxtd7ao9wDP8M4Yize9xyTmfKP+
 L+8UCPncWdUtS+bsdz/vuF3O42o/40gaO993uklK3ErD3u96iuHmJEMKcejEt74yJlT1RQqcym5
 lMFEwO7wYUcTZhjE26/oO3HgBX92o/vYuL3pspgqbV8DPXuzuSYWFS8w/WdC3COCZlG8OnjCYlA
 wnQvy9T5jacxt65J0kA==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_06,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 clxscore=1015 lowpriorityscore=0 spamscore=0 malwarescore=0 impostorscore=0
 suspectscore=0 priorityscore=1501 phishscore=0 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605200030
X-purgate-ID: tlsNG-c1860d/1779247426-BED73DB1-58E471ED/0/0
X-purgate-type: clean
X-purgate-size: 6789

On Tue, May 19, 2026 at 08:00:07PM -0700, dmukhin@ford.com wrote:
> On Mon, May 18, 2026 at 05:21:26PM +0200, Teddy Astie wrote:
> > Use a dedicated pci_sbdf_t struct that we update instead of recreating
> > one each time we need it.
> > 
> > Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> > ---
> >  xen/drivers/passthrough/vtd/dmar.c | 42 ++++++++++++------------------
> >  1 file changed, 16 insertions(+), 26 deletions(-)
> > 
> > diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c
> > index 2a756831a6..c36f4bbd7b 100644
> > --- a/xen/drivers/passthrough/vtd/dmar.c
> > +++ b/xen/drivers/passthrough/vtd/dmar.c
> > @@ -310,7 +310,7 @@ static int __init acpi_parse_dev_scope(
> >  {
> >      struct acpi_ioapic_unit *acpi_ioapic_unit;
> >      const struct acpi_dmar_device_scope *acpi_scope;
> > -    u16 bus, sub_bus, sec_bus;
> > +    u16 sub_bus, sec_bus;
> >      const struct acpi_dmar_pci_path *path;
> >      struct acpi_drhd_unit *drhd = type == DMAR_TYPE ?
> >          container_of(scope, struct acpi_drhd_unit, scope) : NULL;
> > @@ -332,29 +332,26 @@ static int __init acpi_parse_dev_scope(
> >  
> >      while ( start < end )
> >      {
> > +        pci_sbdf_t dev_sbdf;
> >          acpi_scope = start;
> >          path = (const void *)(acpi_scope + 1);
> >          depth = (acpi_scope->length - sizeof(*acpi_scope)) / sizeof(*path);
> > -        bus = acpi_scope->bus;
> > +        dev_sbdf = PCI_SBDF(seg, acpi_scope->bus, path->dev, path->fn);
> 
> `dev_sbdf` calculation depends on `path` which is updated in `while()` loop
> below.
> 
> >  
> >          while ( --depth > 0 )
> >          {
> > -            bus = pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path->fn),
> > -                                 PCI_SECONDARY_BUS);
> > +            dev_sbdf.bus = pci_conf_read8(dev_sbdf, PCI_SECONDARY_BUS);
> >              path++;
> >          }
> >  
> >          switch ( acpi_scope->entry_type )
> >          {
> >          case ACPI_DMAR_SCOPE_TYPE_BRIDGE:
> > -            sec_bus = pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path->fn),
> > -                                     PCI_SECONDARY_BUS);
> > -            sub_bus = pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path->fn),
> > -                                     PCI_SUBORDINATE_BUS);
> > +            sec_bus = pci_conf_read8(dev_sbdf, PCI_SECONDARY_BUS);
> > +            sub_bus = pci_conf_read8(dev_sbdf, PCI_SUBORDINATE_BUS);
> >              if ( iommu_verbose )
> >                  printk(VTDPREFIX " bridge: %pp start=%x sec=%x sub=%x\n",
> > -                       &PCI_SBDF(seg, bus, path->dev, path->fn),
> > -                       acpi_scope->bus, sec_bus, sub_bus);
> > +                       &dev_sbdf, acpi_scope->bus, sec_bus, sub_bus);
> >  
> >              dmar_scope_add_buses(scope, sec_bus, sub_bus);
> >              gfx_only = false;
> > @@ -362,8 +359,7 @@ static int __init acpi_parse_dev_scope(
> >  
> >          case ACPI_DMAR_SCOPE_TYPE_HPET:
> >              if ( iommu_verbose )
> > -                printk(VTDPREFIX " MSI HPET: %pp\n",
> > -                       &PCI_SBDF(seg, bus, path->dev, path->fn));
> > +                printk(VTDPREFIX " MSI HPET: %pp\n", &dev_sbdf);
> >  
> >              if ( drhd )
> >              {
> > @@ -374,9 +370,7 @@ static int __init acpi_parse_dev_scope(
> >                  if ( !acpi_hpet_unit )
> >                      goto out;
> >                  acpi_hpet_unit->id = acpi_scope->enumeration_id;
> > -                acpi_hpet_unit->bus = bus;
> > -                acpi_hpet_unit->dev = path->dev;
> > -                acpi_hpet_unit->func = path->fn;
> > +                acpi_hpet_unit->bdf = dev_sbdf.bdf;
> >                  list_add(&acpi_hpet_unit->list, &drhd->hpet_list);
> >  
> >                  gfx_only = false;
> > @@ -386,16 +380,15 @@ static int __init acpi_parse_dev_scope(
> >  
> >          case ACPI_DMAR_SCOPE_TYPE_ENDPOINT:
> >              if ( iommu_verbose )
> > -                printk(VTDPREFIX " endpoint: %pp\n",
> > -                       &PCI_SBDF(seg, bus, path->dev, path->fn));
> > +                printk(VTDPREFIX " endpoint: %pp\n", &dev_sbdf);
> >  
> > -            if ( drhd && pci_device_detect(seg, bus, path->dev, path->fn) )
> > +            if ( drhd && pci_device_detect(seg, dev_sbdf.bus, dev_sbdf.dev, dev_sbdf.fn) )
> 
> Looks like `pci_device_detect()` also needs some refactoring...
> (Probably out of scope for this series, though)

Oh, cool, that is exactly patch 3/5

> 
> >              {
> > -                if ( pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path->fn),
> > +                if ( pci_conf_read8(dev_sbdf,
> >                                      PCI_CLASS_DEVICE + 1) != 0x03
> >                                      /* PCI_BASE_CLASS_DISPLAY */ )
> >                      gfx_only = false;
> > -                else if ( !seg && !bus && path->dev == 2 && !path->fn )
> > +                else if ( !seg && !dev_sbdf.bus && path->dev == 2 && !path->fn )
> >                      igd_drhd_address = drhd->address;
> >              }
> >  
> > @@ -403,8 +396,7 @@ static int __init acpi_parse_dev_scope(
> >  
> >          case ACPI_DMAR_SCOPE_TYPE_IOAPIC:
> >              if ( iommu_verbose )
> > -                printk(VTDPREFIX " IOAPIC: %pp\n",
> > -                       &PCI_SBDF(seg, bus, path->dev, path->fn));
> > +                printk(VTDPREFIX " IOAPIC: %pp\n", &dev_sbdf);
> >  
> >              if ( drhd )
> >              {
> > @@ -413,9 +405,7 @@ static int __init acpi_parse_dev_scope(
> >                  if ( !acpi_ioapic_unit )
> >                      goto out;
> >                  acpi_ioapic_unit->apic_id = acpi_scope->enumeration_id;
> > -                acpi_ioapic_unit->ioapic.bdf.bus = bus;
> > -                acpi_ioapic_unit->ioapic.bdf.dev = path->dev;
> > -                acpi_ioapic_unit->ioapic.bdf.func = path->fn;
> > +                acpi_ioapic_unit->ioapic.info = dev_sbdf.bdf;
> >                  list_add(&acpi_ioapic_unit->list, &drhd->ioapic_list);
> >  
> >                  gfx_only = false;
> > @@ -431,7 +421,7 @@ static int __init acpi_parse_dev_scope(
> >              gfx_only = false;
> >              continue;
> >          }
> > -        scope->devices[didx++] = PCI_BDF(bus, path->dev, path->fn);
> > +        scope->devices[didx++] = dev_sbdf.bdf;
> >          start += acpi_scope->length;
> >      }
> >  
> > -- 
> > 2.52.0
> > 
> > 
> > 
> > --
> > Teddy Astie | Vates XCP-ng Developer
> > 
> > XCP-ng & Xen Orchestra - Vates solutions
> > 
> > web: https://vates.tech
> 


From xen-devel-bounces@lists.xenproject.org Wed May 20 03:32:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 03:32:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313525.1583637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPXf2-00084F-BN; Wed, 20 May 2026 03:31:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313525.1583637; Wed, 20 May 2026 03:31:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPXf2-000848-80; Wed, 20 May 2026 03:31:56 +0000
Received: by outflank-mailman (input) for mailman id 1313525;
 Wed, 20 May 2026 03:31:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wPXf0-000842-Qt
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 03:31:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPXez-00BGbx-OY
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 05:31:53 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0d2add-bab6-0a2a0a5309dd-0a2a4508ec9a-42
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 05:31:53 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0d2b28-63b5-0a2a45080019-94a38ff13634-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 05:31:53 +0200
Received: from pps.filterd (m0482515.ppops.net [127.0.0.1])
 by m0482515.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 64JNTDbr1972049
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 20:31:52 -0700
Received: from ch5pr02cu005.outbound.protection.outlook.com
 (mail-northcentralusazon11012013.outbound.protection.outlook.com
 [40.107.200.13])
 by m0482515.ppops.net (PPS) with ESMTPS id 4e91k1h6bp-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 20:31:51 -0700 (PDT)
Received: from MW4PR03CA0159.namprd03.prod.outlook.com (2603:10b6:303:8d::14)
 by SA2PR16MB4201.namprd16.prod.outlook.com (2603:10b6:806:14c::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May
 2026 03:31:42 +0000
Received: from MWH0EPF000C6195.namprd02.prod.outlook.com
 (2603:10b6:303:8d:cafe::a4) by MW4PR03CA0159.outlook.office365.com
 (2603:10b6:303:8d::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.23 via Frontend Transport; Wed, 20
 May 2026 03:31:42 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 MWH0EPF000C6195.mail.protection.outlook.com (10.167.249.105) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.11
 via Frontend Transport; Wed, 20 May 2026 03:31:40 +0000
Received: from pps.filterd (m0373461.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64K0bmVC1617510
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:31:39 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [44.208.76.22])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4e7777ue3k-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:31:39 -0400 (EDT)
Received: from localhost ([19.12.92.222]) by cmsmtp with ESMTPSA
 id PXejwCy5KFYU6PXekwWqAg; Wed, 20 May 2026 03:31:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=ZkVQ/+lc7/A8VC6aUc0zG6RgnHm
	K/DD/MKcdedcbPMI=; b=tPNKo7Cu5t5dcdsL7rdoshidtkPg5w8r5HzIiOAYJxd
	YblCFOOoETElrH6aGNAoLRP4fhEIoE2XezbzuOFaseiZTC6WdS+DQGHc/hWNtjHc
	L7jGN/GNC5zqYi2fcMx5r5qEsTnImXhfI+OtUzvVIN93b88Y3NeNPnfVVPD1X33h
	FWF9MeqXSeKP82tp27SvUDRFDp0lVI5VD3ylnWPWjrJDy6KgQzIrIYQdnTYyDjwF
	3ZsECxwn4m6WswdG9ajZqFddjUEpX+OaicdFeBMtwZ9fs3PBRUlnbVuFdMPe6S4F
	S2Ck82MfRWPEzcQVU/e7ShjTivz5FO3rSG22/W3ajjg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=H4mG2HtCEe/dZxFc6ophkCYMPHGgbJggv5BHUjYfMJ9GkC5gFMxD3DlJiPDLGDGqwdlxsdlX3mZNZ0h0s6k939aH60nEtFveTwUFhsrMlLnU6KfPiNcyQfcHF56HvppBbs9+LkCZ4IPb3HsIGCuYcMLwxwiBWOc+kTVvM9Ub2QzL4eG8tkCFCPdZ/F4Z5ZJ/dVzraACXbFz6cmOqOMDTSBQ3XBgV5mESs7hUhvz0/d8wRLoDxAdmmpqlm88hGOYucniSUiwZP0j1uxTzAOsHr4IyplqhTVRNJpotIGPUy1YVW0MHetAkrWIdzcIrcrNwBlAGIOR1lMHcWb5ZgG0GTA==
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=ZkVQ/+lc7/A8VC6aUc0zG6RgnHmK/DD/MKcdedcbPMI=;
 b=i8OhMOjT1xiaTVTOIeCWbyfhOVbmKDgmp5zTOneb13GPp6XJb7ARZQmsoUxzhijL5L1pp9WSgjfDcRcMA9V7BkA9Xu2MW8ZeAYS/S9xYzzUXIKUNi7+qL9lMXLY/prphsC5kd1waZBCYYm/xOGbSUEBXSprnCv4PIzSToGhNjXIcECcJSLcy+p874oKO/Bl9vMMWN9EvLG3cpqnpH1mZBAVmqSQ+GTX0rqrOigKaT9P84uxr1ORd15vbOG7sDMbpuwEy/rBwzUF3pXFLb6SpN35RH69EAdmCQeH0/Kaft1nBJ75SibBarWvKnFvNy3D+9yQOkij+XC93hgL0sA174A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZkVQ/+lc7/A8VC6aUc0zG6RgnHmK/DD/MKcdedcbPMI=;
 b=VAsVkrJO61YNd0VMyf7wP41Ta40TxccHs4x1ty+xZlXsponvtthk0zvVCG6+ruz2d7f6n87IVvy5t3aCDujk+gIzsCDZzji4pDdm0wFORDqNDvD+YTGr58NWQQsQiotbgWpV00tHyzgPlZdpyFMUlQpfraQQWivuvXWgFV7phfQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=ZkVQ/+lc7/A8VC6aUc0zG6RgnHmK/DD/MKcdedcbPMI=; b=EEoouxSAIwt4
	LoDC/qorYKNnJvYPMyevv0zInTT4GhPLlp3f27e+5/LdioNjK6OjiIstxkooZp89
	O/rWwj3yNG5fSYCc62S2zNhroSbS1RdTgkiwbyTfeVYBdp+YLcHr5ZMOo0oRUGei
	Nhsi0hISFdSHfVUgCgchfDt/a3cTvycMjVnIzaM78+gP714bm30iV04AiZ/b1+fJ
	5pKs9Z2BggN/d6//UWiLGviY8tCj0+6Rvi4XXzL/fa/BpcEmJjodkpClRUA5LQ3N
	68+DVe/29DmTN0P8oEPwWa3sQSdcX6AtgbUIvJxlyCKu9v58pL/qjBlAJ37f+m4t
	gE3G9MlK3Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=ZkVQ/+lc7/A8VC6aUc0z
	G6RgnHmK/DD/MKcdedcbPMI=; b=tj+P5LoEAylnly4jnHbHBcjbXh73wrjc7L5y
	QaOhkRHn6+9x9tAlCFG4dIvIzbfW4OTY3ohB6fJKqulJw0A7rMYfqyVQ11WQF80y
	hndIH5xYoPhYPvzpibw1DfaNqoYHkn9SEGAUWYWrb9RnWl96XKS+JZpW29de5jfi
	MzEdCTNjmcZTjsTEb6e3A6FtC5QJTyNfX5tA/htkG8F8RNdOD3VU6m4Xi6flkhJF
	b4yH8Zt4CGDeZ+i+wgQj5WL3hIGnq9xvP5MwD57fufyhTa0J9VApehr9F2qs+3rk
	cxDt0ENwuHo09wNwGTmhrngYOc6OOdq05ld0Nr/Lr4g8B5DysQ==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: PXejwCy5KFYU6PXekwWqAg
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Tue, 19 May 2026 20:31:37 -0700
To: Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
        Anthony PERARD <anthony.perard@vates.tech>,
        Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
        Julien Grall <julien@xen.org>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH 4/5] pci: Parse into pci_sbdf_t directly
Message-ID: <ag0rGfmOwqMFXvi5@kraken>
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117763.8631fc262581453bbf619ec5b2062170.19e3baeac47000f373@vates.tech>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1779117763.8631fc262581453bbf619ec5b2062170.19e3baeac47000f373@vates.tech>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_06,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 lowpriorityscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0
 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605200030
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000C6195:EE_|SA2PR16MB4201:EE_
X-MS-Office365-Filtering-Correlation-Id: 30c0b826-463e-4410-6c20-08deb6204e92
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|82310400026|376014|1800799024|13003099007|4143699003|11063799006|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	YbMkH1uSRow2W2RxhNhmz6mIW/iQukeXoxXqgTYfkkjMabQtjvhSxQqUdJlbp6lLyYi23TbnMCYWbtXpmsNhO0acAwiPlmLZxXHBVSrjsuAbf9FGei+9SWN4Qsl+N+IIrYeGbQxs+kiCG1lgA7/udTTMJdb49Mr8xQdVAyYzLSk1x6DaGgkYDjvFl14V7xl6PV9k+L25vL582txbQ57vwB+9FattAsA0yBWKK6ubNCJYCFIag8r20UnJaxDg/y6OtRV/OUzZg5vZ64yuBUNO7ziciPb98J1NigETc5poUNVb5XtVuiC0euiqByXd7QtqlHnZiUMX5a+yUqhWyeGddAT9AEtzU7tFPOozX8Gy/U2/bV+tWuhV6UR8lUUt0vWtukPOhkePn0g1UjvAp8l0qp6gPz1FvmdBKNg7EsubIlWqbgfoy1xwvdVAWBatWuOsCSZabF1vTMWTUtR/BiBta4D+LI1aUgyThho7EbS2uPyNsxgd51S/9EqgKhzcYC5SFrlJO8Z9ORrYSlHnsgzgLzgESl9pbPmPjxl/kUdUW4PgB6J+HkrtNkZTgL9eQs2brRMDiDrzLAy7SXprW6Ha99ZGFdtl5UtyqcdMmdaM3IAkI1Vf8aO3scjXPoYAaqiGTVribkd81540SOjptg3JyEG5vsMcQF8yddgdL2t9UFg=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(376014)(1800799024)(13003099007)(4143699003)(11063799006)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	/ukFXrrXLBNy2cf5wZnxfHLNjYei08aFIdayi4g+D/4PBtkghWGMwjwDzrozfnNDp41Cov7Mv2VglBRqB1FnRuaEpwBJNG0aUh/pwUP3G4PddUHrtG+v74Egb75YjCYaFPyLPteOyfS4KNxgrnyci1BmC+0NpBtxGGGVDHp7voJAOyRyXz7GBOnFUHulDLE3Y2Ri4L++r1IF8M+m10I8WtI//GcBQmioNPXx9jiQgTigZq1wjYG+ZRNtm9u3Fj3waFVe6r2RGVHQLPifzs+/M+HVJrA6KHHoTDtcr5lu8pav2vz5vOBEbdFZJctyKkcZObgf/OiCcaPP2ekz/pzZKwOa0etbrnbo4fpD6gTcrxu+rcBN+Tj2nXj2g+hYJ8IurpVJ30F0rnwO5A+O8x6gK6p15qOkTEfrYYGzPuYQdz+f3X1rV5nqAZgjwf/pQg0E
X-Exchange-RoutingPolicyChecked:
	N5TIpcPAB3C5oejN+/IrUzEJxFP/MQ0kLK8Wb7Sp/Imls+y7ja0k4oduS0Ru9KiBWA2kDLk0zCAf8OKJ/IiJJm8vTyhKkkl1SxvRASfP45AYgWoz0gbkFImwnt7lOPWkUreb1SKhSFCwNSo5tSno8U9d9b2HQOrJgrgYLjXzHgH+DSN1K1sXswb/8qZwhxmM/rZZBH5/xMSvdJHqH2YPdCPcya4pR0tcmQjR83yN3p27t/rr8RVyYXzq99PL2K539CjfTaqiYLFYMz+CWAgcZ3WVvZ8BOE0EydZEvyEqS/skPtD1bfHvpid64hvm1ySTYds25dmKC/ZMt2RQHr2hLw==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	107gY8brd5yscvZRicMG1ks75+xMhzEzDRk97XErBucD2jB3xK8ny9KM+xa/QfF3UVbsFtEIpGWgq6u2P39hWmu+0Mw/knQ509bT/8xquWJLGAfCZ64wJ7sKLCHQU4jRQVHaCzNvPlYUF7ZyaDLB0tash5UmR87nutUJ15EN9gVvziVSZaqSFKE3oaJ9LFtUDqzaAINA33o69A2lObnwMNDEZ1qOT1ZmR4Hx7c7f51+ccv07RW5eK7O41TwqeHwMMl5X9qVQPrAuGcV9/U6Dxy5Lfo7QHgnvnVDXVm3QcAupOgHO0MVHWMkA72AmtTa5aNWeb939TzVZ4YO0RHjZR6BJjX2zQUdtdewNYqPBiPzVhNstFkjz92uWp8fK0JxgJXwFkCDuwtLCyHTk2v5S9d6SASYCPgsz/8VyA46tqx3qmFffk5x9VVaecHJ9DGzfU4ngdwvXBn+AM7CCSEcGt8Uo5PhgZGd/ueWFZcDx0itgWSMoqSxhxyXVHWgHc2+vfFPS/HjCfhm+E3YWNN2sBemf5HBCCdXeRr7gUEfU01ykttrAdu97JaqYVtNtgInSBt567gTMNaMEtOIK0Ps5OBjay4rdxgtI5p3me7AzwPBPn8G6s6IQgjz7uixM3SXNz5vtJ5Rx/3VkB7AOoUx4mQ==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 03:31:40.3768
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 30c0b826-463e-4410-6c20-08deb6204e92
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C6195.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR16MB4201
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIwMDAzMCBTYWx0ZWRfX+rcjIJJBZSRA
 x4UNPRSj84g8ZOgKIWXCED2/sy7a12ge+XFvkW1HdkJU4S8CHqOqmURz2ke7LFXtLNfsXUn/At4
 SP7LCHvtV3rZJ8ygOVu1vxPuuC2V7o54K3eqz5w5mMvOHqffiwgr9FGFfsV8Cl/dP+z7KvXrUsH
 VTRolBkb/O3Eveu4x7L0c8rpsjX9t7pniFQ9WvMT4IJXU63nemtly9CC6/pRCQcJs8K0xHrZYRZ
 JpmcmCWLHEbzDMIjk7S68OYEsjZK5V4pj6PSIbbe7r2amM6JH5A44y5Q9DStcZTsh3mgkxzMl5Y
 ZpbbUM6zWOHOcMJNqRWMNGJ2lhyGhx2/PP3jfur6eCbM6PGB1K6WQtMhAWJoZcWmkt+LifRHB/b
 1/JyhDD3rbOjieLa3Umuss+eUDcA4AW9vsgDvT6H7ce9GmgG1WdCAbZzG4rgHVZTMVOvOYjYAaX
 3VZp4PeHOAROaKKHIHA==
X-Proofpoint-GUID: NTDOGD7rqT73AmNQmLFpZTMdabmOwQ0a
X-Authority-Analysis: v=2.4 cv=Ne3WEWD4 c=1 sm=1 tr=0 ts=6a0d2b27 cx=c_pps
 a=qiA9p8iyC6UfobZpVQ7+mQ==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=0GA0A_IKJoUHBEAzNTkD:22
 a=-RI0ju8yAAAA:8 a=1ix22XOsDN3X6mACLtEA:9 a=CjuIK1q_8ugA:10
 a=3whSkbs7g9Me0DR5EJEX:22 a=UsJdYLK5l2RqpxBViBoK:22
X-Proofpoint-ORIG-GUID: NTDOGD7rqT73AmNQmLFpZTMdabmOwQ0a
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_06,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 bulkscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 phishscore=0
 suspectscore=0 spamscore=0 adultscore=0 lowpriorityscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605200030
X-purgate-ID: tlsNG-c1860d/1779247913-C5187DB1-F8952286/0/0
X-purgate-type: clean
X-purgate-size: 9204

On Mon, May 18, 2026 at 05:21:28PM +0200, Teddy Astie wrote:
> Use the newly introduced parse_pci_sbdf() and parse_pci_sbdf_seg() in order
> to parse into a pci_sbdf_t directly instead of reconstructing it afterward.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
>  xen/drivers/char/ns16550.c               | 24 +++++++++++-----------
>  xen/drivers/char/xhci-dbc.c              |  6 +++---
>  xen/drivers/passthrough/amd/iommu_acpi.c | 26 ++++++++++++------------
>  xen/drivers/passthrough/vtd/dmar.c       |  7 +++----
>  4 files changed, 31 insertions(+), 32 deletions(-)
> 
> diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
> index 878da27f2e..fa2d0e5991 100644
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -1572,22 +1572,22 @@ static bool __init parse_positional(struct ns16550 *uart, char **str)
>  #ifdef CONFIG_HAS_PCI
>      if ( *conf == ',' && *++conf != ',' )
>      {
> -        unsigned int b, d, f;
> +        pci_sbdf_t sbdf;
>  
> -        conf = parse_pci(conf, NULL, &b, &d, &f);
> +        conf = parse_pci_sbdf(conf, &sbdf);

Original logic considered only devices from PCI segment 0, now
all segments are allowed.

I think docs should be updated.

>          if ( !conf )
>              PARSE_ERR_RET("Bad port PCI coordinates");

Unrelated to the patch: I think it will be good to print the bad
string value in the error message.

> -        uart->pci_device = PCI_SBDF(0, b, d, f);
> +        uart->pci_device = sbdf;
>          uart->ps_bdf_enable = true;
>      }
>  
>      if ( *conf == ',' && *++conf != ',' )
>      {
> -        unsigned int b, d, f;
> +        pci_sbdf_t sbdf;
>  
> -        if ( !parse_pci(conf, NULL, &b, &d, &f) )
> +        if ( !parse_pci_sbdf(conf, &sbdf) )
>              PARSE_ERR_RET("Bad bridge PCI coordinates");
> -        uart->pci_bridge = PCI_SBDF(0, b, d, f);
> +        uart->pci_bridge = sbdf;
>          uart->pb_bdf_enable = true;
>      }
>  #endif
> @@ -1671,22 +1671,22 @@ static bool __init parse_namevalue_pairs(char *str, struct ns16550 *uart)
>  
>          case port_bdf:
>          {
> -            unsigned int b, d, f;
> +            pci_sbdf_t sbdf;
>  
> -            if ( !parse_pci(param_value, NULL, &b, &d, &f) )
> +            if ( !parse_pci_sbdf(param_value, &sbdf) )
>                  PARSE_ERR_RET("Bad port PCI coordinates\n");
> -            uart->pci_device = PCI_SBDF(0, b, d, f);
> +            uart->pci_device = sbdf;
>              uart->ps_bdf_enable = true;
>              break;
>          }
>  
>          case bridge_bdf:
>          {
> -            unsigned int b, d, f;
> +            pci_sbdf_t sbdf;
>  
> -            if ( !parse_pci(param_value, NULL, &b, &d, &f) )
> +            if ( !parse_pci_sbdf(param_value, &sbdf) )
>                  PARSE_ERR_RET("Bad bridge PCI coordinates\n");
> -            uart->pci_bridge = PCI_SBDF(0, b, d, f);
> +            uart->pci_bridge = sbdf;
>              uart->pb_bdf_enable = true;
>              break;
>          }
> diff --git a/xen/drivers/char/xhci-dbc.c b/xen/drivers/char/xhci-dbc.c
> index c1ff528de6..c7fd554be0 100644
> --- a/xen/drivers/char/xhci-dbc.c
> +++ b/xen/drivers/char/xhci-dbc.c
> @@ -1357,9 +1357,9 @@ static int __init cf_check xhci_parse_dbgp(const char *opt_dbgp)
>      }
>      else if ( strncmp(opt_dbgp + 4, "@pci", 4) == 0 )
>      {
> -        unsigned int bus, slot, func;
> +        pci_sbdf_t sbdf;
>  
> -        e = parse_pci(opt_dbgp + 8, NULL, &bus, &slot, &func);
> +        e = parse_pci_sbdf(opt_dbgp + 8, &sbdf);
>          if ( !e || (*e && *e != ',') )
>          {
>              printk(XENLOG_ERR
> @@ -1368,7 +1368,7 @@ static int __init cf_check xhci_parse_dbgp(const char *opt_dbgp)
>              return -EINVAL;
>          }
>  
> -        dbc->sbdf = PCI_SBDF(0, bus, slot, func);
> +        dbc->sbdf = sbdf;
>      }
>      opt = e;
>  
> diff --git a/xen/drivers/passthrough/amd/iommu_acpi.c b/xen/drivers/passthrough/amd/iommu_acpi.c
> index 39ae637959..7b40da33ae 100644
> --- a/xen/drivers/passthrough/amd/iommu_acpi.c
> +++ b/xen/drivers/passthrough/amd/iommu_acpi.c
> @@ -682,8 +682,8 @@ static int __init cf_check parse_ivrs_ioapic(const char *str)
>  {
>      const char *s = str;
>      unsigned long id;
> -    unsigned int seg, bus, dev, func;
>      unsigned int idx;
> +    pci_sbdf_t sbdf;
>  
>      if ( *s != '[' )
>          return -EINVAL;
> @@ -692,7 +692,7 @@ static int __init cf_check parse_ivrs_ioapic(const char *str)
>      if ( *s != ']' || *++s != '=' )
>          return -EINVAL;
>  
> -    s = parse_pci(s + 1, &seg, &bus, &dev, &func);
> +    s = parse_pci_sbdf(s + 1, &sbdf);
>      if ( !s || *s )
>          return -EINVAL;
>  
> @@ -707,7 +707,7 @@ static int __init cf_check parse_ivrs_ioapic(const char *str)
>          }
>      }
>  
> -    ioapic_sbdf[idx].sbdf = PCI_SBDF(seg, bus, dev, func);
> +    ioapic_sbdf[idx].sbdf = sbdf;
>      ioapic_sbdf[idx].id = id;
>      ioapic_sbdf[idx].cmdline = true;
>  
> @@ -719,7 +719,7 @@ static int __init cf_check parse_ivrs_hpet(const char *str)
>  {
>      const char *s = str;
>      unsigned long id;
> -    unsigned int seg, bus, dev, func;
> +    pci_sbdf_t sbdf;
>  
>      if ( *s != '[' )
>          return -EINVAL;
> @@ -728,12 +728,12 @@ static int __init cf_check parse_ivrs_hpet(const char *str)
>      if ( id != (typeof(hpet_sbdf.id))id || *s != ']' || *++s != '=' )
>          return -EINVAL;
>  
> -    s = parse_pci(s + 1, &seg, &bus, &dev, &func);
> +    s = parse_pci_sbdf(s + 1, &sbdf);
>      if ( !s || *s )
>          return -EINVAL;
>  
>      hpet_sbdf.id = id;
> -    hpet_sbdf.sbdf = PCI_SBDF(seg, bus, dev, func);
> +    hpet_sbdf.sbdf = sbdf;
>      hpet_sbdf.init = HPET_CMDL;
>  
>      return 0;
> @@ -1399,13 +1399,13 @@ static int __init cf_check parse_ivmd_param(const char *s)
>          }
>  
>          do {
> -            unsigned int seg, bus, dev, func;
> +            pci_sbdf_t sbdf;
>  
>              if ( nr_ivmd >= ARRAY_SIZE(user_ivmds) )
>                  return -E2BIG;
>  
> -            s = parse_pci(s + 1, &seg, &bus, &dev, &func);
> -            if ( !s || seg )
> +            s = parse_pci_sbdf(s + 1, &sbdf);
> +            if ( !s || sbdf.seg )
>                  return -EINVAL;
>  
>              user_ivmds[nr_ivmd].start_address = start << PAGE_SHIFT;
> @@ -1413,16 +1413,16 @@ static int __init cf_check parse_ivmd_param(const char *s)
>              user_ivmds[nr_ivmd].header.flags = ACPI_IVMD_UNITY |
>                                                 ACPI_IVMD_READ | ACPI_IVMD_WRITE;
>              user_ivmds[nr_ivmd].header.length = sizeof(*user_ivmds);
> -            user_ivmds[nr_ivmd].header.device_id = PCI_BDF(bus, dev, func);
> +            user_ivmds[nr_ivmd].header.device_id = sbdf.bdf;
>              user_ivmds[nr_ivmd].header.type = ACPI_IVRS_TYPE_MEMORY_ONE;
>  
>              if ( *s == '-' )
>              {
> -                s = parse_pci(s + 1, &seg, &bus, &dev, &func);
> -                if ( !s || seg )
> +                s = parse_pci_sbdf(s + 1, &sbdf);
> +                if ( !s || sbdf.seg )
>                      return -EINVAL;
>  
> -                user_ivmds[nr_ivmd].aux_data = PCI_BDF(bus, dev, func);
> +                user_ivmds[nr_ivmd].aux_data = sbdf.bdf;
>                  if ( user_ivmds[nr_ivmd].aux_data <
>                       user_ivmds[nr_ivmd].header.device_id )
>                      return -EINVAL;
> diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c
> index 9f9b639eba..dafe1b62f6 100644
> --- a/xen/drivers/passthrough/vtd/dmar.c
> +++ b/xen/drivers/passthrough/vtd/dmar.c
> @@ -1215,7 +1215,7 @@ static int __init cf_check parse_rmrr_param(const char *str)
>          do {
>              bool def_seg = false;
>  
> -            stmp = parse_pci_seg(s + 1, &seg, &bus, &dev, &func, &def_seg);
> +            stmp = parse_pci_sbdf_seg(s + 1, &sbdf, &def_seg);
>              if ( !stmp )
>                  return -EINVAL;
>  
> @@ -1224,12 +1224,11 @@ static int __init cf_check parse_rmrr_param(const char *str)
>               * Segment will be replaced with one from first device.
>               */
>              if ( user_rmrrs[nr_rmrr].dev_count && def_seg )
> -                seg = PCI_SEG(user_rmrrs[nr_rmrr].sbdf[0]);
> +                sbdf.seg = PCI_SEG(user_rmrrs[nr_rmrr].sbdf[0]);
>  
>              /* Keep sbdf's even if they differ and later report an error. */
>              dev_count = user_rmrrs[nr_rmrr].dev_count;
> -            user_rmrrs[nr_rmrr].sbdf[dev_count] =
> -               PCI_SBDF(seg, bus, dev, func).sbdf;
> +            user_rmrrs[nr_rmrr].sbdf[dev_count] = sbdf.sbdf;
>  
>              user_rmrrs[nr_rmrr].dev_count++;
>              s = stmp;
> -- 
> 2.52.0
> 
> 
> 
> --
> Teddy Astie | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Wed May 20 03:34:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 03:34:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313533.1583646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPXhf-0000Co-Sq; Wed, 20 May 2026 03:34:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313533.1583646; Wed, 20 May 2026 03:34:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPXhf-0000Ch-PO; Wed, 20 May 2026 03:34:39 +0000
Received: by outflank-mailman (input) for mailman id 1313533;
 Wed, 20 May 2026 03:34:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wPXhe-0000Cb-8W
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 03:34:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPXhd-008cMQ-Kq
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 05:34:37 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0d2b99-e002-0a2a0a5209dd-0a2a4502c77c-36
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 05:34:37 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0d2bcb-af86-0a2a45020019-94a39217fa32-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 05:34:37 +0200
Received: from pps.filterd (m0384718.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64K0m9rb020720
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 03:34:35 GMT
Received: from bl2pr02cu003.outbound.protection.outlook.com
 (mail-eastusazon11011033.outbound.protection.outlook.com [52.101.52.33])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4e92r00t00-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 03:34:35 +0000 (GMT)
Received: from SJ0PR03CA0179.namprd03.prod.outlook.com (2603:10b6:a03:338::34)
 by BLAPR16MB3844.namprd16.prod.outlook.com (2603:10b6:208:277::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.19; Wed, 20 May
 2026 03:34:30 +0000
Received: from SJ1PEPF00002315.namprd03.prod.outlook.com
 (2603:10b6:a03:338:cafe::c4) by SJ0PR03CA0179.outlook.office365.com
 (2603:10b6:a03:338::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.24 via Frontend Transport; Wed, 20
 May 2026 03:34:29 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 SJ1PEPF00002315.mail.protection.outlook.com (10.167.242.169) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.11
 via Frontend Transport; Wed, 20 May 2026 03:34:29 +0000
Received: from pps.filterd (m0426317.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64JNpw3p2213437
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:34:28 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [44.208.76.22])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4e77nrbhmr-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:34:28 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id PXhSwD0B8FYU6PXhSwWtAh; Wed, 20 May 2026 03:34:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=fail header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=VB2
	EIfuwZN5NpX6Y0ClbK4BwP9/lnQurk/c6iY7FpyA=; b=DPf1H3qbi4r7BuNYFa+
	Z+nylRP7FuQJSLC3SxCW8MYwLIGtanfm0faallV3aAsqejv+Sy7ChsKy45AmOzJB
	F22/AZSVJIULQ6ragOVdQsWdBrUSetjtnsRhXJ+rezDHTcoTiPCRhQjjIO4XBz2y
	YZbVE6K9zGn71JhViF9qA/HHxM7Fnlnq67QCoC/+bbEKosxZ09BJ7G3TK8emlmvU
	BuNlhsBDEZhDY0LpoLWTT9A9blSFnXXSEnENe4tWdErX6E218Il+JMn4iGOZLezn
	tWrtXg+iXOQ/FA9Ldk6g530IfXFEJDcjwKfFkpXF68QhKNZQtCu6dNs9ShXxSlL2
	NKQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UiLfogI/i26HuvXq93jngElb7GjVbF72Rp7bwKD47b76rb1qVp+EKqPA92cSRkjbm4/8AGXBE21NgUpXTo00s7hWvEFgZar3lqchIuhaqrjiroaWVhduHdsl0TZvGpRedcOdc+T8Zl8n4cbI+sSH6oSZd8pd0EzzDu00MVKQ3t+9fuRbscSUf3hsF/LnrguM9jAgAjrz/1d5+vKt+vZB3DKxstv6smp52MzMVpDP8xLUxLc9OAsrPHoMhgvhxRwRQ3JF4onuIQaMx/zbyJ10QSQZ4oKD1RiPykEcXPHwMoSp39iz1mbkxx68Firm3k6yGBGq7GMv3ecFN4RHZiDjvQ==
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=z+z3JbfLUtKKu8H0tn306Fwsm106GqK2cyILhROeg5I=;
 b=cnACWeiG9sA0rMzWGu2n6xIe0XbITwefj9j0ur7ze1iTG2YixLIsjaH1GwVPpSsofavuIO1wgD+DwvBGWRhIxWGi4h5dzfGFRDNV57u6uwD+KFaxHgyp8+Yby2Pw0gOlmjFlg1k57WTV7khwQWEyC0bKG+nFYccNYktaiDpPhuApdJPti1B5A43jST3QqFgFEhyPan8dAP0l5gXncN0MU4Nn+hKSwD9jXlmoWrLnIb6WJnXzATO8+6ib7hhTAH8udbynMdEdEHPnO51dwvrbbAlOFEJ6OLsc4rdC+HkqVu1g+9G0oHDGFy1LKdSPDxmwiGlq9rVwi+PpEQnDlsUpHA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=z+z3JbfLUtKKu8H0tn306Fwsm106GqK2cyILhROeg5I=;
 b=iQD0+nGS7Jl0+ufzasX+P0bXZlQ/5DeNhfaULxAj4/dhAZ/JJ+fyM5vDOC2+e82NszeNA9SSfYKevgHSEuPUao2pu2bWEdV9t4EHxjQzpZxIj1DCT5jVc8NjJt/18iCeV4b8byTNEc5PcIeyLT7H8omjRZ5Ttn8i0YdpdWh6rT8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:content-type
	:date:from:in-reply-to:message-id:mime-version:references
	:subject:to; s=ppserprodsaar; bh=VB2EIfuwZN5NpX6Y0ClbK4BwP9/lnQu
	rk/c6iY7FpyA=; b=RTCmpDAMntO8YbyCu8zEz5OqF+/2IQ2rHHjDJL1gjq/09Yr
	U8Yz/AcRU9p6TcUlSMRzaQ6DfQVNQNMEo/15nymUP8XoLT6hijEj1z9KS/gDLDw7
	S4WclvfNFW3CnKd8KLPOtRnIkMmL8HUEm6HBMo6ORXwIrnTKc9q77j1TakEg5mZT
	LU3GlkwVWM09uFurQ/a3FRgtgzsFbpgTsKypZ2diESCnxxCiStkrl/BB5XAWx4DO
	eVB/NBWWLHeENTtOUrVPL+tAtmxTLdz60WAhcsgKzr3xvy5cvJZV1cPx5u/SnCrH
	8jb1xwUacs1cKQWQ/CM+n9i2ZKYWR3fNfUbILYw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppfserpocford;
	 bh=VB2EIfuwZN5NpX6Y0ClbK4BwP9/lnQurk/c6iY7FpyA=; b=tX3iXyfl9LZN
	Rqf8fluylYoDa86n3W38FfMmCq1m5rfunUfd077qfYy+ZbtOyZJdISxRNiwJVk+S
	+g/8ZOHQ/eXCgm8guCHt38YIaT0FxmiTL9y8yzZsZmaN2QhDPn0si97lQyhDPPSu
	UqTd7moh9jtPjs7aVs1W49+WseeMiA4wPNdhkU3gL++v2jQ5DlDRncA27m6yzmUz
	6o3pZomQ6wHmbrEW42iyPM7hniJuLDIJdYXWr3LB6uqOBFlidbu7DNCnJ2tHuWMH
	3W4Vk5T7aZlMoT2mAiXFK445voPal/9yFssRkXYnyEJnwYpWDm1zrsa2zjCx0R/l
	m+0w6l5z4A==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: PXhSwD0B8FYU6PXhSwWtAh
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Tue, 19 May 2026 20:34:25 -0700
To: Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
        Anthony PERARD <anthony.perard@vates.tech>,
        Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
        Julien Grall <julien@xen.org>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH 0/5] Small PCI refactoring
Message-ID: <ag0rwTIP1Dlo530x@kraken>
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779124816.8631fc262581453bbf619ec5b2062170.19e3c1a4a3e000f373@vates.tech>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1779124816.8631fc262581453bbf619ec5b2062170.19e3c1a4a3e000f373@vates.tech>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_06,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 adultscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 suspectscore=0
 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound
 adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605200030
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002315:EE_|BLAPR16MB3844:EE_
X-MS-Office365-Filtering-Correlation-Id: a01fccad-cc99-4cf2-863e-08deb620b306
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700016|82310400026|3023799007|18002099003|56012099003|22082099003|11063799006|4143699003;
X-Microsoft-Antispam-Message-Info:
	ACnjyr73HIHdTFvgvZ1zvSXfhmahGhwGauGKgX7zayCVRPYILO4I+Q6aSzRBsarR69IRYtLsH7uRo8PnGDWPQcHHvkTocz2ymaQHFFERqm8ZCrB/qDYB00kPDj9i0J/LxynNStNJw1bLM/GR7AhOhrl0GU0Y+1/fxViu0UrzW7bpAH/V7YzB22ECjLFvuYrVcfePIyTpXrYAao3NzlUXEzz5IjpWVesMhfNHzWag6qccoe5x62URfcI8UQ+IrM0wigL0atmBWOIXFh+kyo+XqAD4JNsFcHBqyB2Hv7PgGVYj6/NZEeobDIBM1KZU3VZXUdIf2B/xlzqoSh4qVzWHqPsvCrzoeqkRLtoJYU5BytWFC+u+p0YqrvStPe4sRmW8XmO2T8DcVnzpKYDt0zXJAK/Nryr+4kKrWKW5TSaws8zPCXKkYHKmAunWPHor7ZLhGJ2pQOD19e5sja3QuKy+pXEIbYPBLRUrUufxuWs1I/vkGpWOd3po0vIimFOppogLm4NrKtaBf6FJGlHRLzrr/FFF8WzGuFXV8F3E6R5+Y7YXsACHjjwg1zyyyuma4UN1rrJy5O+JmwNzxgGjbVoP/dyLfB9aSs8wC5x+JoH7WLz3Ok2/jkkBLeQY8TlGH+xLUhPBsX1AvvU6DpHQVXbDGDcf2EMgw+XFdmLaCSy1j+H2XXGPUrMczljzvlvjaHdMj6m2TiVZH3rH8AIobtnIvfP5BkR/k/V5h0vnez0y6lc=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700016)(82310400026)(3023799007)(18002099003)(56012099003)(22082099003)(11063799006)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	hvFj6XNTisx77GBbvoLlR5LDG5LD9m84oi/WwwFjJb2tjGYpB487ord4NTZlfrBIqNTWHuFMrx+/2Qxt2c92Fiibs4NrQu8ps4aF96ZESf7e52IAr16oV4BEoOYS9LEGeekLCvi4gfScZNBEnHQfqta8PLiz3lEbmGnVOfyUVDtSYC/LzXsSMujHVa3MYAtqgcnzoa/LPB4IDjECmwsuX1QasCxCB7vnmhkf5R2dQ2d2drwLYtEEQMXrcGZGYJepepnUUwN/2+dVUczLfNxurJT+UmliO5IkB0LjS3JYhGzFJ4PinQqFD0zTb4rnoIVxTPCVUfvQQRu9/6tspUraUqRyxHGtEo982tVPjXWkdxwA8xU1s1WAyh7aPVapsXf09jj+839zFGAXB0VdcsGYJ4UwpR5qytHeYNmk0lUlHgNlAKmpSSUZdzHkh+YwGo91
X-Exchange-RoutingPolicyChecked:
	Gt2XHsI2Vv8Rf7v/Efcek4Y8rK2ht7Hk6VarPQruNClRrrxjYouMuhZ9P3nyhYxdAVqG7W0kqqHX9tmWp1v58VRObD7TcmKcZdyMow6a591rueDpQRHlPiaksqo31PW30sHcXTRiUc7PVDgm/J225FLPDM9stYwMawusyWKordKA91kpc0VQrsjqc/AC5YfQY9fYJcNeNtWIcGbNSlJmNOrS9oE8qAWPjAGedyYex/P7JGBOCRHLB3vFeyZsPGaJr/Q/wk27upTt+B1mjATBzBx4ZWiYrlQS3EVdSdRQQYRPYMgMzoG3RfPY//htL2eyPlTeJ25rXj8IHNl2/9zpbQ==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	vKY62CCHEUk02CFcQXH1ptL/jL9U5QJRKJMChAFT9oEx9dbIulmTqNEOSOmJFzdE/31C4q2O09UHjEoDlHe1jvkM2AmmAt8msxaIe/+VY+gTNdT9S04flGfBDmrZqttiaO89xHRCgcVET3UKpj03mPN9ndclUOEnbz8CfKwK1LlKieyuAhKW/zCd4uP+QRvt5Bhgd1CEPPeZ2daz1gRSYHpLvfXFqykhita+HTjHHoRZac2PEfFRMgbp86WsciM4SiL7JBGe8lvgokapblR5P96cIyI1NLIQ5XU+oISjmRHVC741KDcsX7bifXNUxCvj3JgzrUjkkZjxNt7Ja6DZnmh0KuzWm8WZ51PWlpRj4YX17ZlElcLYM0QrozrVdjzUBYeQiyQxxjBAKIBNQZSUZvDYRRLD+IpoX/QPMv68o3EOCrELQernh7W01+jwftJCzRyXo7hBFG/uEgXbqa9GDYj7KpblgxLxRfY+XEuTVuiZKPk50y9xWvj2wWdC7fbrWLv/wlTBO8BTXooM4AFf1xCJLaJTpfiRWJSUPbycNAg8Wg4OJ7/IWp2MPUl8Azgu+TLTUXh+1YOqJM3Xcg4bmrB7g2HOTu1NYNc9SwpgRHcWS+MdCfq3ZhofCVIWCAQAKwpkl6mhGq4e/oxeD3FYPw==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 03:34:29.1440
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a01fccad-cc99-4cf2-863e-08deb620b306
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002315.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR16MB3844
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIwMDAzMSBTYWx0ZWRfX6KOlcjd5avMN
 sWx54FMDG4MD34gmUfeVnBRmqwvnlQkIoKTE7L9+3SqqP2QMZz1gYXh+X4sJnMw6Ra3j8UF2fyK
 sbQgQja1qtCwwa2iycJx/ige6DsjSwJkNNNjq37JVKXZ3dTSOpjYhqyZ4x8joxxd07OskzMpt6X
 ddATPbvHREzvamKSO2NdS2uA1eaivnoBoNKO3Ebld4N4V/AYDvo2rf2Z5/hORcDFccOPJ5vlXPA
 q70tYLX9QO5Rq7uYPHEnou88/3OLQ/nP1IW6m7ZNf9ON202rcKbewB2LFcUai7v2pek023Pr10x
 kydWsF0uNgiF7fsiHQ8HtU+MFJ13EQCyZFjVLjejikCJ9l6T51a5J8sbpjve2t5RYVuMgUhXruU
 tWHU//Q/Wjek+3jEviyaZzA+P2nE87+wFFRDnofBEo2rkX6suB2TWHZ1ZZmzxMEvc4oFCkLdfNN
 A8l+igDMym50QzKQkgQ==
X-Proofpoint-ORIG-GUID: ihfgUInsz3aNXo16sGv-0DeKyAXjuIKl
X-Proofpoint-GUID: ihfgUInsz3aNXo16sGv-0DeKyAXjuIKl
X-Authority-Analysis: v=2.4 cv=TeOmcxQh c=1 sm=1 tr=0 ts=6a0d2bcb cx=c_pps
 a=Eo0YKKWWvGv/UpXdOuOi/w==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=8nJEP1OIZ-IA:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=ARvDHhclS48edyKYUbLB:22
 a=cMLCuIsWzknWaDy3D-kA:9 a=3ZKOabzyN94A:10 a=wPNLvfGTeEIA:10
 a=3whSkbs7g9Me0DR5EJEX:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-19_06,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 bulkscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 clxscore=1015
 lowpriorityscore=0 phishscore=0 adultscore=0 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605200031
X-purgate-ID: tlsNG-720697/1779248077-AA76A161-246C08FD/0/0
X-purgate-type: clean
X-purgate-size: 1177

On Mon, May 18, 2026 at 07:20:15PM +0200, Teddy Astie wrote:
> Le 18/05/2026  17:22, Teddy Astie a crit:
> > The goal of this series is to make some refactoring of some
> > pci primitives to improve codegen and make code less verbose.
> > 
> > A big chunk of it is converting many places where (seg, bus, dev, fn)
> > is split into multiples variables and convert it into being just
> > pci_sbdf_t, in particular in some PCI function parameters to reduce
> > parameter count which usually translate into less registers to pass
> > to the function. Moreover, we also avoid translating back and forth
> > between pci_sbdf_t and individual (seg, bus, dev, fn).
> > 
> > Latest patch attempts to improve codegen of pci_conf_{read,write}N()
> > by making them inline specialized variants of pci_mmcfg_{read,write}()
> > in order to eliminate a particular `switch (len)` at compile time.
> > 
> > No intended functional change, aside some parts of the codebase that will
> > now correctly handle PCI segment when parsed while it was previously
> > ignored (e.g dbgp).
> > 

I would schedule a full CI cycle against the series for smoke testing.

--
Denis


From xen-devel-bounces@lists.xenproject.org Wed May 20 04:55:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 04:55:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313117.1583660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPYxG-0003Ap-Id; Wed, 20 May 2026 04:54:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313117.1583660; Wed, 20 May 2026 04:54:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPYxG-0003Ab-F2; Wed, 20 May 2026 04:54:50 +0000
Received: by outflank-mailman (input) for mailman id 1313117;
 Tue, 19 May 2026 14:21:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <cody.zuschlag@gmail.com>) id 1wPLKJ-0003QF-H0
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 14:21:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPLKI-00CZHo-Pm
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 16:21:42 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <cody.zuschlag@gmail.com>)
 id 6a0c71e9-e002-0a2a0a5209dd-0a2a45058182-34
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 16:21:42 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <cody.zuschlag@gmail.com>)
 id 6a0c71f6-aaa8-0a2a45050019-d155802ad5d9-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 16:21:42 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-48fe26a177cso26714345e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 07:21:42 -0700 (PDT)
Received: from localhost.localdomain ([2a01:e0a:e14:c050:d89c:b9ee:3c77:9607])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe4dac000sm336300305e9.0.2026.05.19.07.21.41
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Tue, 19 May 2026 07:21:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779200502; x=1779805302; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=Q3AfrNvrGJyfWtYnCetB4c6I4+sD7SJx4sUA/4sR3s8=;
        b=SS0G/rwlgXbD4Bl8FW71wpk/frvDHBOKUgwAC5ssQorgl4KcQylBJu8uvXZgC9QHWQ
         nDTLCjW2Qhtc+rH2hBhf2R8TOTHaz+jBEGOHRh/pf0KLmsQ7377EKbNOXapvexhU/xZN
         iwWAuQJMdVxDG1qxG4OS9xSdZviusBa9hi6AE8gfe7XpMpAGFGYa+DOX1VWRXSTJ9aaq
         7LrJRZgZfgll+nYdCTKdRXGmZE6UVxvjbaOPwj70yuJlFnsjqOBPnmXuMVYdqkxbLOKH
         MHOEplbKOJceTncYRUlQ7eIJChufdGunpgKDkAgAEENz1O8GS49fmtohF7R3ZDLv/9Rz
         4WhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779200502; x=1779805302;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Q3AfrNvrGJyfWtYnCetB4c6I4+sD7SJx4sUA/4sR3s8=;
        b=L7rqMT2jlFg7T7JQ+7kDQBIP1QEBpNantIpCv+NhG5fGrifnkUbe9HdP4K0nOlbGUt
         5NoWjRfz3lzwyH6XCf2CdY4ZSU7Uxvc3LHt8Sop3EP6oA4FCM1CEUQZ+qSjfYKCdBEs4
         xuFRqcC/WiVrQJqomxIFVExk2fMJQ4bC+q/511WjuFn7FT6n1jh8b+zVJuB7jXrs5TcJ
         1gaU3OoVvg1djukACFrTZ/EzLtyx9+YG4yYNtd1aEwbkY/5ygBR4EwaNJcCiD1Ih2686
         MAPvRvGIft9IgulysC/17BEvl49/Fw77Db6PNF/ZVKklDOG3B1kpCp8DEtsnqz3sZHPh
         +5Yw==
X-Gm-Message-State: AOJu0YzBYWNzA6v0Yr+qhWxUrIpaYHsJBROekutN0LXBW3Vas7BTiJl6
	t1VBkX342NH50mmkvFllOKPLd3dH86wj2Vf7VHbGldk1PNpNinhQcfxU3imP1GvY0CQ=
X-Gm-Gg: Acq92OFYwxdPeVeubj9pPDIUFbVyfNkjnC1cSNP79YdXfcLI3KpK7IPGcDE1Ong4IIH
	VL7GhEKhsfiCUl25cNF5qA9Kug+dxv3f28MAKNew785ivlyL/TLU2kLgrTVq+cfD0N4kp4vhoPU
	VzRdQy/iVQiZAq+7YJSCKL9Xi+U74sZxRHDzANAzqYxM0QAFdJ4jhAbUBX+U1daVxgfI1qOpEdt
	uZJEInR0zY7HPLhZIrUjyxsTMEeHc0DohDMyMZMue+ZAgtdVmvNpQ+ZzKiArqyGxEiSKcq6kB3+
	GANfd4dLMha5dFUlzwYb/v09HhddfFzCRlv4fdbf9PBJHVXdfmfMTAiv0Xn1nf+RCIh3aoXPZ0f
	9bkhOnG7SUbzFIp97VBCii3OYtKKJLm0l2dr0LpMLwnoUOJ3z93vhN/sigJcq8BL3I4T7EKJkjU
	+TAowreBtZkWDbNaKFUiEYW5oDWgOh0cdsDaXitYi0Y3OLo/AO7nozO9hrBY2S/RRR
X-Received: by 2002:a05:600d:8448:b0:48f:fb0d:8d86 with SMTP id 5b1f17b1804b1-48ffb0d8ea0mr211479815e9.32.1779200502063;
        Tue, 19 May 2026 07:21:42 -0700 (PDT)
From: Cody Zuschlag <cody.zuschlag@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	Cody Zuschlag <cody.zuschlag@gmail.com>
Subject: [PATCH v2] docs/process: document AI-assisted patch tags
Date: Tue, 19 May 2026 16:20:12 +0200
Message-ID: <20260519142011.30276-2-cody.zuschlag@gmail.com>
X-Mailer: git-send-email 2.45.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1779200502-DB16D443-E9A5EB0D/0/0
X-purgate-type: clean
X-purgate-size: 1900

Add documentation for the Assisted-by tag to clarify how
AI-assisted tooling may be disclosed in Xen patches.

The guidance is inspired by similar work in the Linux kernel
documentation.

Assisted-by: ChatGPT
Signed-off-by: Cody Zuschlag <cody.zuschlag@gmail.com>
---
 docs/process/sending-patches.pandoc | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/docs/process/sending-patches.pandoc b/docs/process/sending-patches.pandoc
index 798ecceb..b61584f9 100644
--- a/docs/process/sending-patches.pandoc
+++ b/docs/process/sending-patches.pandoc
@@ -195,6 +195,25 @@ E.g.:
 
     Requested-by: Jane Doe <jane.doe@example.org>
 
+### Assisted-by:
+
+This optional tag can be used when AI-assisted tooling contributed to the
+preparation of a patch. It is in the format:
+
+    Assisted-by: <tool-name>[:<model-version>] [tool...]
+
+E.g.:
+
+    Assisted-by: Claude:claude-3-opus coccinelle sparse
+    Assisted-by: ChatGPT:gpt-5.5
+
+Basic development tools, such as git, compilers, make, and editors, should
+not be listed.
+
+The person submitting the patch remains responsible for reviewing any
+AI-generated content and ensuring the contribution is correct, appropriate,
+and compliant with Xen's contribution and licensing requirements.
+
 ### Signed-off-by:
 
 This mandatory tag specifies the author(s) of a patch (for each author a
@@ -209,6 +228,9 @@ E.g.:
 The author must be a natural person (not a team or just a company) and the
 `Signed-off-by:` tag must include the real name of the author (no pseudonym).
 
+AI tools must not add `Signed-off-by:` tags, as only natural
+persons can certify the `Developer's Certificate of Origin`.
+
 By signing the patch with her/his name the author explicitly confirms to have
 made the contribution conforming to the `Developer's Certificate of Origin`:
 
-- 
2.45.0



From xen-devel-bounces@lists.xenproject.org Wed May 20 04:55:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 04:55:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313072.1583654 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPYxG-00037q-Ah; Wed, 20 May 2026 04:54:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313072.1583654; Wed, 20 May 2026 04:54:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPYxG-00037m-84; Wed, 20 May 2026 04:54:50 +0000
Received: by outflank-mailman (input) for mailman id 1313072;
 Tue, 19 May 2026 13:48:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <cody.zuschlag@gmail.com>) id 1wPKoI-0003dj-Jf
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 13:48:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPKoH-0071ua-Vw
 for xen-devel@lists.xenproject.org; Tue, 19 May 2026 15:48:38 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <cody.zuschlag@gmail.com>)
 id 6a0c6a31-e002-0a2a0a5209dd-0a2a4508b8e2-14
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:48:37 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <cody.zuschlag@gmail.com>)
 id 6a0c6a35-63b5-0a2a45080019-d1558036a4bb-3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 15:48:37 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-48fde648a71so26188345e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 06:48:37 -0700 (PDT)
Received: from localhost.localdomain ([2a01:e0a:e14:c050:d89c:b9ee:3c77:9607])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da15a6454sm47044875f8f.34.2026.05.19.06.48.35
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Tue, 19 May 2026 06:48:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779198517; x=1779803317; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=47TB1hZahUbrGTp+tRN8YySgvXEl2GQ3Glx2CwxaA4o=;
        b=hbOiVOKShZ/Bw183Gm6VXURvOb/4MIdjn26d3HosFuG9KTPLLnZjVeZKT/kLmvBnwa
         dYt6xOryx0kLxNf89ByeAOndkCbORR71c4bnh4wIM7oJuG2xVGfddpbUFdBsr8a8PVQz
         StxGCboMh2RBGmy4YFO8kyqEqrWuapuYsS2l5QVaXfEEHhvZc6AHIml5UaAVL+fg1QVv
         lZRliyHknF3/DuidpHEQb+1fVJAvogMgD3Cww3ugNViYacAitZiE1oROyHxizg19FIl7
         VvwSMev+BQHExMujl0k6n+YyHQgVl3pRS900mEBb9GBNgnDJLDhe7EaFDHiYiXOv/6h6
         LVwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779198517; x=1779803317;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=47TB1hZahUbrGTp+tRN8YySgvXEl2GQ3Glx2CwxaA4o=;
        b=dgbBTcCbTgBmz25wv9nOqPQpCx65c7T7T4aRmr0xRx9FaMAB8re2X6hvl0XWOiyNgi
         U6tMjF7/Qv4VtIiPnMhrLJlqR8+WIX3o+wgdBMhvyiUr4+86hCO6S+FqffEfmdsURLEV
         U6FosdCsNRmu2s5UnC4rENV5gwmSnCF4exJlfLAp3IAMGb0Zmk4qPj+w5guMMa6piUY3
         5rERKuq5Yp6UwhMQjmo3kaGe9H8JsRRYBYpmTAUSzOhW38zH0wwwI/kaLOgipvOjbNa0
         tyEV1zHFq/aMHJx/rRihO7H0yqahavEqhBCBg/+Q9nn+qt1r2P1r1IQ26rEv35o6zTdP
         6Zzg==
X-Gm-Message-State: AOJu0Ywd9IsStOeVQAKKVrOlGV5+AtrkPljG2U/6v6uSWuiLmjb+4X7r
	HNhk30MWruqP4ijvsPtSKXz2YWxwbyVesW7KZt/vAuqHoBXd6SEPEGWHZ0tOrKTswSI=
X-Gm-Gg: Acq92OFwmNm0LVN8SuYIWI3wropg8Rijq+OmbILChyZF8PeytnMPVVKxwq+fGfJG/Vc
	VlRon/XNi7s3MP5kzMi7b+Jv5crceCci9KVUPZ+CmCYF1oskV0TE47DfJGSGVYC99N216x3PL7w
	p24v6C1zXDak/sWTmwfANocnrXDnJohgI9bYi+jgc531IGo8Wx7FkOHQiMfkzTAnUKN9iw44l5r
	JF+FUuRJRHc+POJP6fnkHr4iGS9AUY7H+rMWqsgr6Oijt37V834V7RShHNFnGS/5bFjjelypRAz
	0XZWUW/+82zeeA1ZYsDzs+m5pkp99MJRVa/hgy/Ymt2ZOVc5/OsTn4huQ/dSa7hOA4ExZ83b+eE
	xkjaFJfReU+TQIT8pPx30OVihNqP6IrOjWZeugVRUXRDHMNqVMy2L0n60PWUnd29smlCZB17ZF7
	WFkQhuO0WKdHR0xQtuPCz/S3zKjffL0fHK3amMKaluR/h0VZqm3eHNQbT5kNwZs5i7
X-Received: by 2002:a05:600c:41c7:b0:488:a502:8955 with SMTP id 5b1f17b1804b1-48fd6325dc2mr217213535e9.4.1779198516731;
        Tue, 19 May 2026 06:48:36 -0700 (PDT)
From: Cody Zuschlag <cody.zuschlag@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	Cody Zuschlag <cody.zuschlag@gmail.com>
Subject: [PATCH] docs/process: document AI-assisted patch tags
Date: Tue, 19 May 2026 15:44:18 +0200
Message-ID: <20260519134417.16024-2-cody.zuschlag@gmail.com>
X-Mailer: git-send-email 2.45.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1779198517-BC159DB1-A86A7BA2/0/0
X-purgate-type: clean
X-purgate-size: 2332

This patch adds lightweight guidance for AI-assisted patch

attribution via an Assisted-by tag.

The proposal is inspired by similar Linux kernel documentation,

while keeping the Xen guidance intentionally minimal and aligned

with the existing sending-patches documentation.

Feedback welcome.


docs/process: document AI-assisted patch tags

Add documentation for the Assisted-by tag to clarify how
AI-assisted tooling may be disclosed in Xen patches.

The guidance is inspired by similar work in the Linux kernel
documentation.

Signed-off-by: Cody Zuschlag <cody.zuschlag@gmail.com>
---
 docs/process/sending-patches.pandoc | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
 mode change 100644 => 100755 docs/process/sending-patches.pandoc

diff --git a/docs/process/sending-patches.pandoc b/docs/process/sending-patches.pandoc
old mode 100644
new mode 100755
index 798ecceb..b61584f9
--- a/docs/process/sending-patches.pandoc
+++ b/docs/process/sending-patches.pandoc
@@ -195,6 +195,25 @@ E.g.:
 
     Requested-by: Jane Doe <jane.doe@example.org>
 
+### Assisted-by:
+
+This optional tag can be used when AI-assisted tooling contributed to the
+preparation of a patch. It is in the format:
+
+    Assisted-by: <tool-name>[:<model-version>] [tool...]
+
+E.g.:
+
+    Assisted-by: Claude:claude-3-opus coccinelle sparse
+    Assisted-by: ChatGPT:gpt-5.5
+
+Basic development tools, such as git, compilers, make, and editors, should
+not be listed.
+
+The person submitting the patch remains responsible for reviewing any
+AI-generated content and ensuring the contribution is correct, appropriate,
+and compliant with Xen's contribution and licensing requirements.
+
 ### Signed-off-by:
 
 This mandatory tag specifies the author(s) of a patch (for each author a
@@ -209,6 +228,9 @@ E.g.:
 The author must be a natural person (not a team or just a company) and the
 `Signed-off-by:` tag must include the real name of the author (no pseudonym).
 
+AI tools must not add `Signed-off-by:` tags, as only natural
+persons can certify the `Developer's Certificate of Origin`.
+
 By signing the patch with her/his name the author explicitly confirms to have
 made the contribution conforming to the `Developer's Certificate of Origin`:
 
-- 
2.45.0



From xen-devel-bounces@lists.xenproject.org Wed May 20 06:13:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 06:13:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313558.1583673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPaBc-000693-2e; Wed, 20 May 2026 06:13:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313558.1583673; Wed, 20 May 2026 06:13:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPaBb-00068w-Vu; Wed, 20 May 2026 06:13:43 +0000
Received: by outflank-mailman (input) for mailman id 1313558;
 Wed, 20 May 2026 06:13:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPaBa-00068q-A3
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 06:13:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPaBZ-002hF0-7i
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 08:13:41 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d5108-5cb7-0a2a0a5109dd-0a2a450baec2-18
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:13:41 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d5114-212f-0a2a450b0019-d155802ddc93-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:13:40 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-48909558b3aso46816655e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:13:40 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe4c88495sm367415285e9.4.2026.05.19.23.13.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 23:13:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779257620; x=1779862420; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Pp9Z5+tCAC4YAg6VrvsB/GHTU3nQ4XBV1ZYX8tnw3dM=;
        b=GLmWpBFncaQ6lxxbLrEiouz7YlUyuTYMZMJPbAL4UiM9lOksMFWuxf/t6NTlxQ4yhB
         fBBB56Pbl2UJ7gI6Yqe1V6hrCz1MyQZTg0dFh9UV+1El9ltU6UfI3KmAUdqOd7V2epUn
         jwN2wAX45uRUVZ03C7V7ZdKqui3l43dIfNCBhWotgkYRfCi3wGwC4sjZoGf+kGLogZt2
         OgW91wLPt0RTFyixKyiL9mabn6O6Xa7861SAhdtAa6e/v9rfB5O7cItPAJzqYMLhdu0I
         I7/5RqMxf/hJ5gN8uO5KFHJVaQU0+fpCd31MrYZnxFkLqZwMEJNJl8HS8gTdd2ikfVOX
         BebQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779257620; x=1779862420;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Pp9Z5+tCAC4YAg6VrvsB/GHTU3nQ4XBV1ZYX8tnw3dM=;
        b=SNPYOMWPLyTAVjrG2fJWm15Dw5WirjhY7ADuv06egBFFkJwKrO46kdRyqLuwoKnOu9
         RtvaomuT/Lp4nVehPN/3zjPuQCrhFkRYmfzhk6Ld1C3gtQzZkflMD9aSvCBeJ0sLWSxV
         s9Hof89/fn/lZaGD/ysxmlderd7YyoQoQC6lgvXV0s8LAXJSmYkdz9utJ8RK8zYe2yq1
         nY5bqEhJqd1pd/goRoJ1cvOVHhJ9LdYoQz7dmMIagkfpd9Vyb2VrSg5WgNLnatyxvZ79
         DnpSgHU+c7DiHIzjFxWFSSoPB+HaVe0r4oG4wLP1MU6JMFW8xvi28hS0njtPz16fwofc
         +JqQ==
X-Forwarded-Encrypted: i=1; AFNElJ8LVHpiiZZJj0B97rXajGKqU7bRWFcAn4i5A2Qpxyw5jrK7ir6gbvr5UQUNDUxxw/qIRglnYVg5B10=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw8q0wWrgutDaCfi0cLk+GM7QubKdgby6wDjqolhXGiJ6CMwuj5
	dJvSCkUy4mCn5+F/HLXmPWNwC3/7jNF6KS+HUuojfrcY2BZn9He0+Rf8HhXCnsugBA==
X-Gm-Gg: Acq92OG4YSITbQhtNGpq2cbhr+MqoeSBTp4ZO1n7zB+8h0hRpVq+cDMBbR3yz0yvrbB
	axtYfcSLDmbJjelrF3pyAbDg2pbvicD1L9GSejOCoZGfhiV2hpiDXbsxq9OA3iUEqmKG2Z6JjgF
	w5XsYxPky8PxEPGs6LJEbCS/Y5ZyolkN02+lJMtZ9fiHpUs8L4IM7nUDFOSiaUyuCAHS97bxB3T
	lyT3RBZ/6026UM0wkOF4RnqkLjJJrsVDnGJ490KhTqdTD1Gr25jVKhPe35BCOZUsUfbxYYeGaDo
	DbmLN8FUrFKRWHUim3DpflVPtGdvpDspnlEPCl7zSnQZ8JdRivLFr0JofdUNmyelaCv9xLxvHCh
	AzeORLQL04kBXxf/our9XTFXkEdCYqRwuyrKgSpIN7ikzSEOvW1epT1iksC/+noiQxMSS6ITFsk
	Uh8bVL0OTEO/lCq+MpzJvnzYDfxJU9WHKmVz3JXjoLnd53WCJd/mTGiyyQdZ/vZ56Bt3fAPpIFK
	G1AmxQevfwlD4edDSSVMTSuiQ==
X-Received: by 2002:a05:600c:528c:b0:48f:d612:3c6e with SMTP id 5b1f17b1804b1-48fe60de745mr343245825e9.2.1779257620390;
        Tue, 19 May 2026 23:13:40 -0700 (PDT)
Message-ID: <a6e8a461-74f1-473e-92f6-ac2d32823d07@suse.com>
Date: Wed, 20 May 2026 08:13:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/26] xen/riscv: introduce guest riscv,isa string
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <b2d4f3f7f049837a25bc00bfb1d3da8b984a8b5a.1778250616.git.oleksii.kurochko@gmail.com>
 <364abd6e-4fff-437a-90c8-bb4489f0c51d@suse.com>
 <f032149e-aa99-4976-8012-39bd01d4a653@gmail.com>
 <23e8de1e-b792-4863-bd99-f529642fb963@suse.com>
 <fbd8b102-d495-4678-8226-a199554e266d@gmail.com>
 <3d9e2a3a-6839-4909-b60f-28b4c1a02cdd@suse.com>
 <fa617f4f-7057-4b59-8f28-5a014b0c423a@gmail.com>
 <3b5f681c-bda4-4c46-a96d-cd3da1658e28@suse.com>
 <8472866e-49e6-45e8-8d86-3b6b09d2c177@gmail.com>
 <f499de94-e75c-487e-bd1a-0bd3b4eda39f@suse.com>
 <a89475bf-b1e3-4ee4-af13-f86f1602581e@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a89475bf-b1e3-4ee4-af13-f86f1602581e@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1779257620-13374F3B-3F931C7B/0/0
X-purgate-type: clean
X-purgate-size: 1682

On 19.05.2026 18:21, Oleksii Kurochko wrote:
> On 5/19/26 5:56 PM, Jan Beulich wrote:
>> On 19.05.2026 17:17, Oleksii Kurochko wrote:
>>> On 5/19/26 4:53 PM, Jan Beulich wrote:
>>>> On 19.05.2026 16:49, Oleksii Kurochko wrote:
>>>>> int init_guest_isa(struct domain *d)
>>>>> {
>>>>>        int len;
>>>>>
>>>>>        bitmap_andnot(d->arch.isa, riscv_isa, guest_unsupp,
>>>>>                      RISCV_ISA_EXT_MAX);
>>>>>
>>>>>        len = build_guest_isa_str(NULL, 0, d->arch.isa);
>>>>>        if ( len < 0 )
>>>>>            return len;
>>>>>
>>>>>        d->arch.isa_str = xmalloc_array(char, len + 1);
>>>>>        if ( !d->arch.isa_str )
>>>>>            return -ENOMEM;
>>>>>
>>>>>        build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa);
>>>>
>>>> At least ASSERT() the success of this?
>>>
>>> I will add:
>>>
>>> ASSERT(build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa) == len);
>>
>> Ehem. Please check how ASSERT() works (and the difference to BUG_ON()).
> 
> Condition itself looks correct for ASSERT(). If build_guest_isa_str() 
> returns value equal to len then assert_failed() shouldn't be called.
> 
> Maybe do you mean that it will never fire in release build then yes it 
> should be changed to BUG_ON() and the condition should be inverted:
>   BUG_ON(build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa) != len);

No. Unlike in BUG_ON(), you can't use expressions with side effects (i.e.
also function calls, unless they're const/pure) in ASSERT(). That's
true for standard C's assert() as well, i.e. not Xen specific at all.
(We do, however, diverge from assert() in another aspect.)

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 20 06:24:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 06:24:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313564.1583682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPaLS-0007w6-V6; Wed, 20 May 2026 06:23:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313564.1583682; Wed, 20 May 2026 06:23:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPaLS-0007vz-SB; Wed, 20 May 2026 06:23:54 +0000
Received: by outflank-mailman (input) for mailman id 1313564;
 Wed, 20 May 2026 06:23:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPaLR-0007vr-Dp
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 06:23:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPaLP-00Fk93-CY
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 08:23:51 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d536f-bab6-0a2a0a5309dd-0a2a45089ea0-48
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:23:51 +0200
Received: from [209.85.221.47] (helo=mail-wr1-f47.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d5376-63b5-0a2a45080019-d155dd2fe524-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:23:51 +0200
Received: by mail-wr1-f47.google.com with SMTP id
 ffacd0b85a97d-44a5174670eso2457003f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:23:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da0fe13a7sm53474127f8f.29.2026.05.19.23.23.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 23:23:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779258230; x=1779863030; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=q7tf1yMtcKEZ69eJ6y3fRlisdHOXWtrnA86Q47qkz3E=;
        b=HIh2cKVu2epULPvF3CBBlVy8lQfwC71+s/itbXQ3myIGT+NtbDooXIvtIIvR1QQLai
         OLQoiEieOeuPFdr5uSMiXE+KNPBwni4u9I+zjzbEgkbBBQvzBAMlnvMGIZ3K2d0fPVUv
         DXp85qeOdlmx5Y0EVz47xTL+rmvBHrULZV/TSzIPNA7XGMalI13ZChpkg9029Of2CYDL
         AqowExdme7/fWugMm5zZE/t4HuS4n7WLUZGolKkuH8q7tGM6dLNdAdMPSjEolnFsTA1B
         hHXqBgIupKBYeusRZ6HkdM7m28UDty1SNM6oo+Q+s2M378+QX7vu5V+seqpdvQKsnD/H
         /2Bg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779258230; x=1779863030;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=q7tf1yMtcKEZ69eJ6y3fRlisdHOXWtrnA86Q47qkz3E=;
        b=jJyQ6V+q3KtZzASCPAnyZx9uNMtD0LmWGrXzTSnnT8drQ727eoCjmXzTpmIHJ+o9ta
         GIn/GiZ0CHhIrzQ+L6sK0Y6cVONldeAFET+/j+DXt26yxmMDBLgMRRvXan36N+hBO/FQ
         9x7RmDSVA3GqV2O6K8jaPFvGrZabeHVU3tBnPiH4CnKWB8RhcxCjDJWLr0Yqs3T15Det
         NWLGiSDmqH523BIpT/Jo4QP7BgRchjuqxz4LG/mHEGoCWPZu+09qLHpP8I6ipCgCzixS
         bOhXZAij3zTwLriotB5XaIzKFLz/v/o39//mjSJfu6DJXNkCanLUiW9y29Nt2YZKoajt
         D9bg==
X-Gm-Message-State: AOJu0Yw8nCV1nBTAOF7c5X+F37NbBcyMKjZ2t6wAoWMvGogKWFSwztW5
	BtNTjSgytMjY9aX+eNLzUd7bAKs4lenI9FWMGLdNdZpp3Q1jVPZm7/ZHWuDSqRWmZd0RXM4tFQB
	wOuw=
X-Gm-Gg: Acq92OF45nALGwJpoLD/XlxeRtnzqdy4GgXL3CYJr9fReqTClRz2bosuBtBYBelHJMR
	fNfIWZQFpVbb+HhDWC+/UTb+inHs9rngPr4e9SU7uicEN1AO8g7TD/p/ZZm7CEXCh/7/+RfSOUB
	F0jHspMXG76l8CXZNmqseo3oa2VsntPJ+7IyGRsktjnKQsXm/O1FdwFNXHY8Q+u0HBkyATMhPCZ
	irq+psYkxi0zdflnZ2sSGOQP68kQXkzxqBWbJAY+imEj5R4YrIof3+OiwnjQozN91CKkjpMUocS
	laQvAMmJ8tVBKtDC04G9FODpI4UAlPi7KS1g8SGuO8Di5KouyWKhEiiaYTIHVQcBb+5to6p2TIw
	60Dpz/SOMY3RtO7V3JgrAI7WtjYEHxcI8AcrCiv478W/ddgrSzOsGL02bcmbtPOvk9F1yR4gbZH
	OhBHpXRmcKLs2co5VEou3L7RxTaBE2GF7VnBTFzoEw5SdnUNXCqKO7oOVwYTJ5TL1h4hJTmFIc3
	M6ZDlbXLB5s2TM=
X-Received: by 2002:a05:6000:2489:b0:43f:e2b7:7160 with SMTP id ffacd0b85a97d-45e5c58fe72mr34798278f8f.4.1779258230528;
        Tue, 19 May 2026 23:23:50 -0700 (PDT)
Message-ID: <d23a061d-afbe-4b38-9352-de4b63d56396@suse.com>
Date: Wed, 20 May 2026 08:23:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] CI: collect certain intermediate files as artifacts (part 2)
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1779258231-B7F7ADB1-C18EBFC0/0/0
X-purgate-type: clean
X-purgate-size: 1328

Build issues may also surface for analysis jobs. Collect intermediate
files (if any) there as well. Include xen/.config too, since it's not
otherwise collected.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2536905486

--- a/automation/eclair_analysis/build.sh
+++ b/automation/eclair_analysis/build.sh
@@ -58,10 +58,21 @@ runtime_failures_docs() {
 (
   runtime_failures_docs
 
+  ret=0
+  mkdir -p intermediates
   make "-j${PROCESSORS}" "-l${PROCESSORS}.0"    \
        "CROSS_COMPILE=${CROSS_COMPILE}"         \
        "CC=${CC}"                               \
        "CXX=${CXX}"                             \
        "XEN_TARGET_ARCH=${XEN_TARGET_ARCH}"     \
-       -C xen
+       -C xen || ret=$?
+
+  # Preserve Xen intermediate files.  Some may be there only upon build failure.
+  for f in xen/.config xen/.xen-syms.* xen/.xen.efi.*; do
+      if [[ -f $f ]]; then
+          cp $f intermediates/
+      fi
+  done
+
+  exit $ret
 )
--- a/automation/gitlab-ci/analyze.yaml
+++ b/automation/gitlab-ci/analyze.yaml
@@ -18,6 +18,7 @@
       - "${ECLAIR_OUTPUT_DIR}/*.txt"
       - '*.log'
       - '*.json'
+      - intermediates/
     reports:
       codequality: gl-code-quality-report.json
   rules:


From xen-devel-bounces@lists.xenproject.org Wed May 20 06:29:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 06:29:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313571.1583691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPaQQ-0000JK-GM; Wed, 20 May 2026 06:29:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313571.1583691; Wed, 20 May 2026 06:29:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPaQQ-0000JD-Cj; Wed, 20 May 2026 06:29:02 +0000
Received: by outflank-mailman (input) for mailman id 1313571;
 Wed, 20 May 2026 06:29:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPaQP-0000J7-D8
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 06:29:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPaQO-002k04-I9
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 08:29:00 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d54a7-5cb7-0a2a0a5109dd-0a2a450b964e-14
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:29:00 +0200
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d54ac-212f-0a2a450b0019-d155dd32b16b-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:29:00 +0200
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-448528f4e69so2969407f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:29:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe4c885d5sm343097975e9.5.2026.05.19.23.28.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 23:28:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779258540; x=1779863340; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ngzefi0PIDnQzGnnI8oUeHXDHAmckTXHl7nx3hjBqf0=;
        b=Ybj/prP/iD7VDoJBkHC3BpK0AHPbydTlfrk9pch+L4QDdSPAqQOMIopf2UdtbMkt0d
         VftZLE8BI5wEBcVJgZYJvjVC4fycHPUDlNeQbYnP/jDXiyt0r8YsJ09RvTgTL+pqjpo8
         CydEfBOvZZY61u9XVji+1hnSyUGsBBCaj9lCInbPpxCogoEigcY+UsmYALpVAm/Jg28L
         MIlNs34rS7BRUAhdibN+/vwU7n1XeI1vOHsuX/B2I+Zud3Iw4Pdei0F6B/zt0SZpk1Da
         +J5O90CnvseoZh6V6ryUg9rAfo9ojfpOUMDBJ4ceKUefMzAfinabltBF6MN9yr/SInzL
         ZnNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779258540; x=1779863340;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ngzefi0PIDnQzGnnI8oUeHXDHAmckTXHl7nx3hjBqf0=;
        b=QFjHNCsAtRVcnq/Y1o3Eb3CK47/0ZmEGgcUcwTV10kC2rO5GHvn028p1xbpa90Q1J8
         pGRjppr4yLtZtmaULGTSMaosUDoQoi6FxsY7rXloM8Q0DIirGUoseFpNoHbDvibM9Qzs
         Z6nyshNH7xQoBi5ynnHSKVkZ/DtvKc8wAp/9oYOQkKUHifQUqSeVzzgkgzQNdFhkC5DP
         40DdqpQQdY+YG+cQkTkbilihUdNDIXqoP1nTtu3oPDJrMhmnqAOUsO7FXAsYEsb+GyFt
         lILkx+KEdggN4u8vmLqAJyt3i5hWdvIEt/XGfwhvT8+RsDFVEgyf82S98kSgFX5Tuznb
         c3rQ==
X-Forwarded-Encrypted: i=1; AFNElJ+wbSfvxlrFk3qSQuXYr7nb/eNOHfAfK2yp42D+PH99Xr8noGSEiEWrPlJLuCiV+TxvRO8VQF/JwZk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxSB0XxEP91TdNY0evmZNYHUFqQW9VBOMhtv0RuCrRB8nQTCiPC
	qWjim9ShoETmSALNm0DCLaGagsojPTbOi+wx9qKriRvWHD8nbbsmpEvK5X4FIny6ig==
X-Gm-Gg: Acq92OFa/coqm2rbJijmBXVNrK0CZrGwm0VnMymDX0ihy0dZq2mMN5dsG/p5LTaiUiZ
	/Nj5HDk+Wx8rN0QECAEVbCAvBIXEhftqrNkphvLzph61mhZWGOxAvj4aX+D2VKL7HFfwslwJfak
	qLHrA3e2sWs5NDoIgHTiGBGnqDHWedPebpa7CM/bqL8CnzU9PdGABakW5RsYOsJPeeGDdDGB8Ln
	m49s6lUiZGJ9X9TbvP4BSeGrBtxXSiLwQonQCSFY6jE6dJLA5pvCcOdctfviGg5t8wjCx9wCfts
	vmqlGTuHVqmDeh7bECg3sq1CC62r4o5sSRZdHsHwUjOBckmW5aDFpwHzQh7QYuG6gVIonE/8Mwa
	DZgpWiM1gQir9qkyEPkRARj5YwSOZz7bvjQ6bSGzQ2PCJi5zFq69iVQlHrNADT5siLu83b+qS1V
	4j5BSzWwxn+lmIBRTXq+1VqE2xeo+/sBGkM4/dreWJlFsm5PuYynl6rf7RKq/y0hgLFmEypr2LM
	V8knn2znhHV8fILkPSXWOXy8w==
X-Received: by 2002:a05:600c:34cd:b0:488:936a:6220 with SMTP id 5b1f17b1804b1-48fe61f2c03mr382547225e9.21.1779258539915;
        Tue, 19 May 2026 23:28:59 -0700 (PDT)
Message-ID: <d636c3f9-6faf-4fb0-8b72-617f70dc1ef9@suse.com>
Date: Wed, 20 May 2026 08:28:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC v1 6/7] x86/svm: Use the emulator path for VMEXIT_HLT
To: Teddy Astie <teddy.astie@vates.tech>,
 Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
 <20260518131404.3716969-7-ross.lagerwall@citrix.com>
 <1779210132.8631fc262581453bbf619ec5b2062170.19e41301cfd000f373@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1779210132.8631fc262581453bbf619ec5b2062170.19e41301cfd000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1779258540-13D7FF3B-0C40AE67/0/0
X-purgate-type: clean
X-purgate-size: 1456

On 19.05.2026 19:02, Teddy Astie wrote:
> Le 18/05/2026 à 15:14, Ross Lagerwall a écrit :
>> @@ -2496,6 +2491,7 @@ void asmlinkage svm_vmexit_handler(void)
>>       vintr_t intr;
>>       bool vcpu_guestmode = false;
>>       struct vlapic *vlapic = vcpu_vlapic(v);
>> +    struct hvm_emulate_ctxt ctxt;
>>   
>>       regs->rax = vmcb->rax;
>>       regs->rip = vmcb->rip;
>> @@ -2840,7 +2836,9 @@ void asmlinkage svm_vmexit_handler(void)
>>       }
>>   
>>       case VMEXIT_HLT:
>> -        svm_vmexit_do_hlt(vmcb, regs);
>> +        hvm_emulate_init_once(&ctxt, NULL, NULL, regs);
>> +        ctxt.insn = INSTR_HLT;
>> +        svm_emulate_one(&ctxt);
>>           break;
> 
> 
> In this case, most of the logic is hidden behind svm_emulate_one(); 
> however, SEV-ES changes some aspects of the VMEXIT_HLT behavior (this is 
> the same for e.g VMEXIT_PAUSE).
> 
> With SEV-ES, we can't access the CPU registers anymore but hlt can still 
> be intercepted (it's a "Automatic Exit (AE)"), in this case, the CPU 
> increases RIP itself (this is documented in SEV-ES section of the APM), 
> and we just have to emulate the HLT behavior. How would that specific 
> behavior fit in this new design ?
> 
> We can skip increasing rip in this specific case, but it's now common code.

I guess we may need to somehow reflect fault vs trap semantics in the
context, for RIP updating to only occur in the former case.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 20 06:30:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 06:30:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313576.1583700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPaRP-00014m-Na; Wed, 20 May 2026 06:30:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313576.1583700; Wed, 20 May 2026 06:30:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPaRP-00014J-Kv; Wed, 20 May 2026 06:30:03 +0000
Received: by outflank-mailman (input) for mailman id 1313576;
 Wed, 20 May 2026 06:30:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPaRO-0000r4-Jy
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 06:30:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPaRN-004OgP-VB
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 08:30:01 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d54e4-2eae-0a2a0a5409dd-0a2a4508d06e-12
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:30:01 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d54e9-63b5-0a2a45080019-d1558030b9e3-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:30:01 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-48ff4f8ef0dso49996005e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:30:01 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe4c8d39esm375501035e9.7.2026.05.19.23.30.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 23:30:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779258601; x=1779863401; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1sAwuwf/n5qpKLh+f0gYs9pPjzCKK8MclNE8xWrVAJ4=;
        b=HbPdV1HUra+pyeB8T8s2tsT/vNQ7oGZJVGlPv7X/AiBQN1wUqFaEHs5wu2aHQBl1q0
         7mIXCs2FSxidU3nryCvCFOGBUD56dOhKKyizgm4BArGyfEGcmChT8Db0H2OnzW1i1YW6
         nrXUtldIt4xiHdtlmYl867mJBIKST1mCGlF+orejh97X6mjh4ojbKCCqR+ZynH8rQnaO
         K81156NVuXj/JGmIrluXkbs1BvPHW63zWvPTSmPzYjWiyx6X9vUJFaMp0XTcclqPH5gZ
         wa5sJ4ikMcppe0qlfZVbjAuEtAUHai1j5yl881uCWGqRWUKAztfjrO5FHBQNtktxWmce
         Ybkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779258601; x=1779863401;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1sAwuwf/n5qpKLh+f0gYs9pPjzCKK8MclNE8xWrVAJ4=;
        b=aRQnkKPtvWQc5M0P4elNkOTECClNZZiMOsHBgO4yuOgLS1V07UXlycoSDymDCq0aVo
         3sh2i1lZwNI9JpOY8fmgkA79qvfnT0UGB+6WaIZxZwG5bx1+pICUznpOGHzT9TbWkTjF
         dTxOlaX/zY5jdS7PfNQtP74oc0QP6QpA2VA3d2o/d5JjRTGdrY5A3hqsnN5iHQrLfR8c
         QcdsSf8/7Gvh88j9IaaRiUe+O9kmUP6o5iDZHTsmsm0oOIE6JthjXJb4GAEEbEnhMmpN
         0E4Angv32uLrIjgU1WVHGI77V9cIXHZit2VCTFf9Prj7dLg3QsyhQHiZMvmNbK0fgmoQ
         QhuQ==
X-Forwarded-Encrypted: i=1; AFNElJ9ivAUN73uIMdkGVGI43JUzy4Bd8XSLaVnfwiS3BRg0At6r6ocTKgjIxC0ubLhhRBkGpEaS9fFmHmY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygHs4gocQqc0UYd0spXmDTbd5qFMHapINvYS5kyR2NHbR027sn
	18QqcvfX/BTlKV+3jsf9aCJlCiYIol4ZTGZNbHPhuv/I2Q2Q65OFsivGwtA5MVk6yA==
X-Gm-Gg: Acq92OFOCT3y/QL9MrvDQyAevC6ISxCrrjsGyYE+d00qFNmrCU1i98hL09LxopEP0WG
	YwNxFVbTDPLE/2uz/OFiGDMPgo8DM3ASIx7GljypV/kCW8Cm21mKtWyxo+AJjaG2YXEuW3PbjyB
	H3MqaqnreXh9lwEBKdkwuFxKUMYwcOEsG9mco5qR+eQ+Bl5hezOdNfWFbpBVKJ0RHu2KM2SfBOC
	75ndwxolpWYJra83YvVC/FU7euwMNal1Z80trr7c2LUen/8+Fw5JtNwkd0zdHML3j0slt/KeiWa
	88vx5CiiAqauWcbszEz8MWTpNrYnFnhxftIq1onGFoTbREYS02z+M2Ja5rDI9Cj24WiQ2em4wJO
	2ZQmz2aH0DWDIGlzr/+EYJNDZyJAKtuZnUg3uHTAQGSYMiww+Y0Zfg+tSaapgQbWymAfQ18FCOJ
	JZ2rKf5Dm5ymuBCgXbQUkKQKR4VENIKdOYZ/5vKgAjGsY+JwWV7yRLaYquCNFM/EB732t9f5VlE
	t8AU/AgQQIBVbs=
X-Received: by 2002:a05:600c:4e87:b0:487:21c7:2885 with SMTP id 5b1f17b1804b1-48fe60e142emr362746995e9.5.1779258601195;
        Tue, 19 May 2026 23:30:01 -0700 (PDT)
Message-ID: <21b6526c-5185-43d0-bdd6-df477cef4b66@suse.com>
Date: Wed, 20 May 2026 08:30:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/5] Small PCI refactoring
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779124816.8631fc262581453bbf619ec5b2062170.19e3c1a4a3e000f373@vates.tech>
 <340d782a-4720-4e67-baba-7b320de55a72@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <340d782a-4720-4e67-baba-7b320de55a72@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1779258601-C4C79DB1-09C1508C/0/0
X-purgate-type: clean
X-purgate-size: 872

On 19.05.2026 19:41, Andrew Cooper wrote:
> On 18/05/2026 6:20 pm, Teddy Astie wrote:
>> Le 18/05/2026 à 17:22, Teddy Astie a écrit :
>>> Teddy Astie (5):
>>>    pci: Introduce parse_pci_sbdf{_seg}()
>>>    vtd: Use pci_sbdf_t in acpi_parse_dev_scope()
>>>    pci: Use pci_sbdf_t in pci_device_detect()
>>>    pci: Parse into pci_sbdf_t directly
>>>    RFC: pci: Migrate pci_mmcfg_{read,write}() to pci.c
>>>
>>>   xen/arch/x86/pv/ro-page-fault.c          |   3 +-
>>>   xen/arch/x86/x86_64/mmconfig.h           |  43 --------
>>>   xen/arch/x86/x86_64/mmconfig_64.c        | 106 ++++----------------
>>>   xen/arch/x86/x86_64/pci.c                | 122 +++++++++++++++++++++-- 
> 
> Looking at this further, I think all of x86/x86_64/pci.c wants merging
> upwards into x86/pci.c

+1

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 20 06:33:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 06:33:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313585.1583709 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPaUI-0002NF-8b; Wed, 20 May 2026 06:33:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313585.1583709; Wed, 20 May 2026 06:33:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPaUI-0002N7-5Z; Wed, 20 May 2026 06:33:02 +0000
Received: by outflank-mailman (input) for mailman id 1313585;
 Wed, 20 May 2026 06:33:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPaUH-0002N1-Ce
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 06:33:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPaUG-00Bfqv-P9
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 08:33:00 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d5597-2eae-0a2a0a5409dd-0a2a4505a62e-8
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:33:00 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d559c-aaa8-0a2a45050019-d1558036d132-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:33:00 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-48d146705b4so48881635e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:33:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4902ea3d876sm4063645e9.30.2026.05.19.23.32.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 23:32:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779258780; x=1779863580; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=H4uoct5i8SKm/46ae8IMjvR9emVUQCNhrW9pVwxf598=;
        b=OUbTnoZzI+4kPSF3tnAIs0xdgnem8MYcgWlAAoXbNpaf5vLKQ2GNAU9sN5pJhjtmfI
         eQIs+rmKipQvq3Mr1fB62cigC5UJFY3MlGE34XRGUrN4mTt0OM/Y23lL37peQTX4Mwjl
         WsnekxpTzV1Ie3gomU/a2RXrKFdt/yeFox1rqgr3cOgz0UFIRiD3aolCscMH/zrqM+uo
         oytu6bA77TSJo6Dwnh4Z/Zyktgs6vhGZlxBe5j7Oko9fgNtEgLhFe+pEASAph9rxg9c0
         EWCqBAHLmVrz5L2JalCqdbbXmYy2QbUF8jEf2fSThKHfYnnbblbslZTOpBYqIlHaPMyu
         Mozw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779258780; x=1779863580;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=H4uoct5i8SKm/46ae8IMjvR9emVUQCNhrW9pVwxf598=;
        b=fT84O4fNqCF/kr0juEhOdmbZeEAnbuQONDq7NCe+s4QW/bdEVHIcBizbHhZXE0pnZr
         zgeh/zDa6LsS79n36BtWfD49HxRXcgIcrsQ6yjsW2Pb09Ts7FkRHXwkSDk9WQc7SO/Vr
         Y4kvIK8TtWeTb0kkyVxYmVDJQez/ZnF3mCee+FVRF/4n1FmLj9WlNbs6XfMX6Lt6o+Si
         5rtmo2w2f05CC9QHiN/eZUqlsK+PTcPMNoi1p36HKb7uilI/du1F0YoAzs9PwfY6OX8H
         MVkxVMwk1hcHGL4VdaNEYLNSzQiEdB+/FKLnfnznuxwZ9TfZKAP1jjxko45GJqYAVLnT
         QjgQ==
X-Gm-Message-State: AOJu0YwXuLLqSa6F8HEdvHSmEoOcw/Ue4Pjq+dfRT8jtiLDN9D5JVfe9
	0BmLblcHaoiCBFWqUHfj7naUXn145tAlJedzrbw4vMTjfexxoU1z6jWxuEGYqGe2Og==
X-Gm-Gg: Acq92OHpaRgVZ2o7e+sAByj5S4R46lo+n7anXDtVT1yS9gjwVMS06vr8Dc28pW7LNtl
	vazZ+pP0ILH4AROZoYpoAzr0QnpQMjfzv3TwoIPJxnym1H4WkmMY2RxA7uzn4IgZVB5rEjduY1E
	oL3qckcoLhYux6aYSXIaQblv/vTiMRd1xzJi5F/yMRKB0B8cJ/Lsf9jrAUgncZn8OZBmC2I9z/T
	8Pshgdkv2lZsIj7bCBtm9TZTXpMre2bwD6KDvkih362m6QmM2T1GvOJQwJWU8a9Z5CvnKjFYvCg
	egVd3jnQHgenYfQsSkvVRjOfgUaAloLd23YBx5bZ/NjXHj+Crg0DkIT5GPHIlcpCKxCZMCVYxw6
	JhMY+rNNlq1YJF0DAIPcLwL9kE4E+tfa4OtCwaIpElIw64E/y/6qa9/PwpzwS68Hj8PRocixMyY
	i37FW/sPHbTLFscfm0RzOuCgIddfnMSlcWecBuMaqQlWA5vmQN4xcrMh+qqDv4CZpIxD/qA84Rs
	A0k2/PmNGitb2M=
X-Received: by 2002:a05:600c:4692:b0:48a:906b:14ca with SMTP id 5b1f17b1804b1-48fe632579dmr353703805e9.20.1779258780244;
        Tue, 19 May 2026 23:33:00 -0700 (PDT)
Message-ID: <a477f883-b1ea-4db5-a073-8a136bcb8387@suse.com>
Date: Wed, 20 May 2026 08:32:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] vtd: Use pci_sbdf_t in acpi_parse_dev_scope()
To: dmukhin@ford.com, Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117761.8631fc262581453bbf619ec5b2062170.19e3baea399000f373@vates.tech>
 <ag0jtx6yNpPI3ZTD@kraken> <ag0pOByehq3/KGkd@kraken>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ag0pOByehq3/KGkd@kraken>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1779258780-E2392443-D66771FA/0/0
X-purgate-type: clean
X-purgate-size: 1018

On 20.05.2026 05:23, dmukhin@ford.com wrote:
> On Tue, May 19, 2026 at 08:00:07PM -0700, dmukhin@ford.com wrote:
>> On Mon, May 18, 2026 at 05:21:26PM +0200, Teddy Astie wrote:
>>> @@ -386,16 +380,15 @@ static int __init acpi_parse_dev_scope(
>>>  
>>>          case ACPI_DMAR_SCOPE_TYPE_ENDPOINT:
>>>              if ( iommu_verbose )
>>> -                printk(VTDPREFIX " endpoint: %pp\n",
>>> -                       &PCI_SBDF(seg, bus, path->dev, path->fn));
>>> +                printk(VTDPREFIX " endpoint: %pp\n", &dev_sbdf);
>>>  
>>> -            if ( drhd && pci_device_detect(seg, bus, path->dev, path->fn) )
>>> +            if ( drhd && pci_device_detect(seg, dev_sbdf.bus, dev_sbdf.dev, dev_sbdf.fn) )
>>
>> Looks like `pci_device_detect()` also needs some refactoring...
>> (Probably out of scope for this series, though)
> 
> Oh, cool, that is exactly patch 3/5

Might better be done the other way around. At least then there wouldn't be a
line length issue here, afaict.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 20 06:36:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 06:36:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313591.1583717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPaXa-0002tU-Me; Wed, 20 May 2026 06:36:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313591.1583717; Wed, 20 May 2026 06:36:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPaXa-0002tN-Jv; Wed, 20 May 2026 06:36:26 +0000
Received: by outflank-mailman (input) for mailman id 1313591;
 Wed, 20 May 2026 06:36:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wPaXZ-0002tH-56
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 06:36:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPaXY-0090CG-3N
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 08:36:24 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0d5661-bab6-0a2a0a5309dd-0a2a4505b10e-18
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:36:23 +0200
Received: from [40.107.209.3]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0d5665-aaa8-0a2a45050019-286bd10346da-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:36:22 +0200
Received: from SJ0PR05CA0189.namprd05.prod.outlook.com (2603:10b6:a03:330::14)
 by DM4PR12MB6327.namprd12.prod.outlook.com (2603:10b6:8:a2::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.14; Wed, 20 May 2026 06:36:12 +0000
Received: from SJ5PEPF000001F3.namprd05.prod.outlook.com
 (2603:10b6:a03:330:cafe::a3) by SJ0PR05CA0189.outlook.office365.com
 (2603:10b6:a03:330::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.14 via Frontend Transport; Wed, 20
 May 2026 06:36:11 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF000001F3.mail.protection.outlook.com (10.167.242.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.11 via Frontend Transport; Wed, 20 May 2026 06:36:11 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 20 May
 2026 01:36:11 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 20 May 2026 01:36:09 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l758DIyqHJpxDuePf6OCB9uSwhnLmNZXvxA7mldA+NwgMGQBR7SJrp2yRFRS4nuesf+jJfAyqQ0b6bG9fr4dywTpWtpFKNVDqvjJY8xxmb1TSTrv19Obo9mKVP0kRZ9iODJUIxZzK4oNeLtGweGSE8amDvRy8UoqbpmseYVGTq4+sg/tpV8x/BE3tU2R3a4bLi+8kQrbMYwJutg8LxJOF3jIFblJZePJL7Mh71e+udbkb3XuX2I2RKpGMy4hPyjrWzfzcAerWK062Sxl9ncmDYO7OmIZwboePZ9/JgnLfdjsXbrnRbQS8dRiP6jsI+a+B+bmihJgl8Ap5Di5DVJA0A==
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=JvAcfWRUYQFO1jzSlAxMX11eA0rQiDt6l5Sm/FanEY4=;
 b=coTuJOL4GlHIDvafyUnGQHFgeu/959rtPuy2JB1vtLEHQYM7cN8Mt4raFB/3Exs7FZi8CsPzaonX3BkrzhMlavxkhQ7B6CdwCOXyaldN6GskOxbbgNZcAxwjGeTgt5mma2Emzyn7lAl6hwpYBwgQ5TC1Y6Mzzdic5VOORrFfAOfpyhCR4JhKrZgcslZ2lqCyHW76yurJVf38ij0t85sGfWiLau2kxbUOyXUNrjga6Tyj8OAydhhFQiLZDArZxK+hzwPkThCxV3Afyuv/rIAucUCwRDyz/J0l1OJ15zoo8m/H11/dpIYQjnyIUBm14ZM+F0azeb0rTQI6OYeUrh+26Q==
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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JvAcfWRUYQFO1jzSlAxMX11eA0rQiDt6l5Sm/FanEY4=;
 b=bjBFtTPSx/PVMYx/fQFXMR2qrnzo5DjRQpa+glvCVdp0CQi6ydXWWqSZlFgHQ2+WhMhfI1RfFzvjbkNQd/0WEw6dJGU0fZW+8aoDPhmCa620Jr3BmgKwUEI1gQzjWi0EMJLc5znJQ18AnBgDPgL6tZTlc/rou9nycjxC9CSMXZ0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <5a74b63a-0312-4992-abca-4ba54110426a@amd.com>
Date: Wed, 20 May 2026 08:36:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 0/6] xen/arm: scmi: introduce SCI SCMI SMC multi-agent
 support
To: Oleksii Moisieiev <oleksii_moisieiev@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Juergen Gross
	<jgross@suse.com>, Anthony PERARD <anthony.perard@vates.tech>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Grygorii Strashko <grygorii_strashko@epam.com>
References: <cover.1775493499.git.oleksii_moisieiev@epam.com>
 <26f52f4a-a830-4430-b0c1-9ca7f761515e@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <26f52f4a-a830-4430-b0c1-9ca7f761515e@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001F3:EE_|DM4PR12MB6327:EE_
X-MS-Office365-Filtering-Correlation-Id: 8f528bcb-37b5-40d9-d6af-08deb63a157d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|7416014|36860700016|13003099007|22082099003|56012099003|4143699003|18002099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	Fs9PEXawg3OAqAe63XiRpCDkECQOe6vtTIs4Y5bZANtxr4RphNqxsIlRSrB9rM2w9N7SpmT1YIB/tWLYnvnv6hp27gzJ7Dh4m+oF3ruUfOJGx8iPmNQ3ojFoBEeh0tdaW45OnNuA4uTxfEwNCEJdch5bb9VagAhfGFq1U+1X4gY9Z++Vqsa9bZHTe4SGv3j6xucHe63/aI/IKDmLZ1JHjZi/xjdyZD+lbZY6XBVDrV4sBSxVODn1pZnyV0CzML6wmZZl8jQvPi0RFrmZoeufRLWzOybXQkqqGyY6y15fu7l7uxiPPwJ+FHcSBWyeVBb/kdsUOzsYFNt0vv4t9fM8S5HQ2LnY4nnjcnDAqz1nC+jNEy7eZ7VytJCfNTgM+PRipMXLp2JAbhD1U63tBoCqWNuL2lw2aELpL8pDGhdxujuic8pQAoiVwrn/wuEBODX2tK+Hm9N+3+JsbCRyx1rI9807XVdkfOLVf+n7ncLHLlk/W6eafQAz9MaMBGFyQI411aXv4Gq4Nxjk9erVUNrW6oLLXWw+yp7fE2CavJWYHrHolzwwBQcUwgicjXnBzjie6unwYb1SnsI2CAyrdIPBGDmeeyLw4sv5LeROQn0eA3xI5r4qowT7J+AIUKX3av4+0Kt79JNaefFvrzAxPuhMFDrnxVkWU5/HSOEHJVhyF44cZg909pVseTw9tsXagl4r/x2MHxXssJiuvz1XDWX79WFH5X5qEMWEfTwX2leS/ps=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(7416014)(36860700016)(13003099007)(22082099003)(56012099003)(4143699003)(18002099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Z4gSF1VhMCmYzgw6j89VE8jPePDmfCSFSk+EMlw4vmvV2m5OZYGblBz5ZI/t4D80ltYFF7ASiT8w5MLUFzo5l3q33ROiNpQONExsWa5VvUh9PptX2egf1gP/eYOC0xkBCiCyh6A7sG4S0Fe5mv74VTDh0vF5U63NcgU4bPEgjs7ikFRLF+E22rPsZY/twGv4KBAK3rwXZGHiUOKc7fq9JvYAeeGmWF5RElRCOSRqgzHaOaGEpe9nxuP6KBRmxwzrgxmrjCHpzz6aVT4t9ZOt5whgPIyXXpr8FO1feLSp4vsgAH002ooGbWLIau/zK8a0YHlL4udcnKKrnk2IbBi/1ce0Tqj52ggXTGfAZ00k4qAX/9QN/a3lpq1lzvo5HroEr92B27QmJUPMbgwFY8Lo475uQ/0F5zeiTDFEx8qpWdnfc54iUFtiSnullB/nVzVB
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 06:36:11.7297
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8f528bcb-37b5-40d9-d6af-08deb63a157d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001F3.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6327
X-purgate-ID: tlsNG-c201ff/1779258983-D8F7E443-CAB49AC5/0/0
X-purgate-type: clean
X-purgate-size: 17525

Hi Oleksii,

On 19-May-26 18:31, Oleksii Moisieiev wrote:
> Gentle ping for this patch series.
We are past the feature freeze, so we now focus mostly on bug fixes that can
still go in. Other series need to wait for a new dev cycle unless someone finds
free time.

~Michal

> 
> On 06/04/2026 19:39, Oleksii Moisieiev wrote:
>> Inroducing patch series which includes implementation of the SCI SCMI
>> SMC multi-agent support.
>> This patch series follows RFC v5 [3] series which was introducing both
>> SCMI single-agent and multi-agent support. After the discussion it was
>> decided to split features and upstream singe-agent support first. This
>> feature is merged for now to v4.21-rc2.
>> I'm starting this patch series from v6 to save the discussion history
>> and don't break changes log.
>>
>> Patch - xen/domctl: extend XEN_DOMCTL_assign_device to handle not
>> only iommu
>> - add chainged handling of assigned DT devices to support
>> access-controller functionality through SCI framework.
>> Change was done in two parts:
>>   - call to sci_do_domctl() to do_domctl()
>>   - update iommu_do_dt_domctl() to check for dt_device_is_protected()
>>   and not fail if DT device is not protected by IOMMU
>>
>> Patch - xen/arm: scmi: introduce SCI SCMI SMC multi-agent driver
>> - add Xen-specific SCMI container compatible `xen,sci`
>>    under `/chosen/xen`; Xen binds only to the `arm,scmi-smc` inside it and
>>    ignores other SCMI nodes (e.g. under `/firmware`).
>> - add `scmi-secondary-agents` and `#scmi-secondary-agents-cells` to describe
>>    func_id/shmem/(optional agent_id) tuples for secondary agents.
>> - each guest using SCMI supplies its agent_id (dom0 via
>>    `xem,dom0-sci-agent-id=` parameter in xen,sci compatible node,
>>    toolstack via `arm_sci = "type=scmi_smc_multiagent,agent_id=..."`, dom0less
>>    via `xen,sci_type` + `xen,sci-agent-id` in `xen,domain`).
>> - factor out SCMI generic definitions and shmem code.
>> - passthrough configuration for SCMI guests mirrors other HW passthrough.
>>
>> Patch - docs: arm: add SCI SCMI SMC multi-agent driver docs
>> - document the Xen SCMI container under `/chosen/xen/xen_scmi_config` and the
>>    mediator’s binding rules; update examples accordingly.
>>
>> All Xen-specific SCMI configuration now lives under `/chosen/`
>> to keep host DT changes isolated while leaving the host `/firmware/scmi`
>> untouched for Dom0 consumption.
>>
>> Code can be found at:
>> https://github.com/oleksiimoisieiev/xen/tree/scmi_ma_upstrv6
>>
>> [1] RFC v2:
>> http://patchwork.kernel.org/project/xen-devel/cover/cover.1644341635.git.oleksii_moisieiev@epam.com/
>> [2] RFC v3:
>> https://patchwork.kernel.org/project/xen-devel/patch/20250311111618.1850927-1-grygorii_strashko@epam.com
>> [3] RFC v5:
>> https://lore.kernel.org/xen-devel/cover.1753184487.git.oleksii_moisieiev@epam.com/
>> [4] SCMI single-agent:
>> https://lore.kernel.org/xen-devel/cover.1756995595.git.oleksii_moisieiev@epam.com/
>> SCMI spec:
>> https://developer.arm.com/documentation/den0056/e/?lang=en
>>
>> SCMI bindings:
>> https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
>> https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/access-controllers/access-controllers.yaml
>>
>> Reference EL3 FW:
>> RPI5: https://github.com/xen-troops/arm-trusted-firmware/commits/rpi5_dev/
>> Renesas v4h:
>> https://github.com/GrygiriiS/arm-trusted-firmware/commits/rcar_gen4_v2.7_v4x-scmi_upd/
>>
>> base-commit: dbe60f244c (Update Xen to 4.21, 2025-02-21)
>>
>> Changes in v11:
>> - Fix agent_id documentation: clarify it applies to SCMI SMC
>> multi-agent support only, not plain SCMI SMC (reviewer feedback)
>> - Remove "non-zero" from agent_id description to match accepted
>> range [0..254]
>> - Remove "UINT8_MAX (255) is treated as invalid" from user
>> documentation as unnecessary implementation detail
>> - Add LIBXL_HAVE_SCMI_SMC_MULTIAGENT feature macro in libxl.h to
>> advertise the new scmi_smc_multiagent type and agent_id field
>> - Add agent_id validation in
>> libxl__arch_domain_build_info_setdefault() to reject invalid values at
>> the libxl level, not only in xl
>>
>> Changes in v10:
>> - remove unused sci_do_domctl stub from sci.h
>> - removed extra include in memcpy-{to/from}io.c files
>> - Fix tabs in MAINTAINERS file
>> - remove duplicate SPDX tag from scmi-shmem.c
>> - add cast to ARM_SMCCC_INVALID_PARAMETER to settle the sign since
>> ARM_SMCCC_INVALID_PARAMETER is -3 which is part of the spec and resp
>> is the default smccc call structure.
>> - update free_channel_list. Add spinlock to avoid race condition and
>> a comment with a description of the function work
>> - preserve error of smc_create_channel in scmi_probe
>> - check scmi shmem address alignment as wel as it is done for size
>> - check for d->arch.sci_data != NULL in scmi_handle_call
>> - use SCMI_SHMEM_MAPPED size for iomem_permit_access
>> - change len type to unsigned in shmem_{get|put}_message
>> - rename shmem_channel_is_free to shmem_channel_status
>> - add comment about skipping message status when getting message response
>> - Set correct agent_id ranges for dom0less and a toolstack. Agent_id 0
>> is not binded for dom0 so can be reused. Also mentioned that
>> UINT8_MAX (255) is treated as invalid agent_id.
>> - Split hypervisor and toolstack changes into separate commits
>> - move init list and spin init after initial checks in probe call
>> - fix typo in comments
>> - clean resources when sci_register returns an error.
>> - Split hypervisor and toolstack changes into separate commits
>> - rephrase section about /firmware/scmi. Mentioned that this node is
>> taken from Host DT and copied unmodified.
>> - fix xen,reg address for secondary domains for Dom0less configuration
>>
>> Changes in v9:
>> - treat SCI as a gate for XEN_DOMCTL_*assign_device: abort before
>> IOMMU if sci_do_domctl() returns an error other than -ENXIO, instead
>> of trying to propagate SCI errors after a successful IOMMU
>> operation. This avoids partial success and the need for IOMMU rollback.
>> - remove early return from do_domctl() in the assign_device
>> path to keep RCU handling intact.
>> - change IS_ENABLED(*) to #ifdef in sci_do_domctl quard
>> - reword commit description to refer to memcpy_fromio and memcpy_toio
>> - ordering obj-y in Makefile
>> - rename ALL_LIBS to ARCH_LIBS
>> - drop io.h and move definitions to the common header, fix comments to
>> be arch neutral
>> - update comments for memcpy_{from/to}io implementation
>> - sort and refactor MAINTAINERS enties
>> - remove Spurious changes
>> - add extra check to avoid ASSERT when calling unmap_channel_memory
>> from assign device method
>> - set correct tx flag to SCMI_BASE_AGENT_PERMISSIONS_RESET when
>> freeing resources. Flag should be set to 1 according to the
>> section 4.2.2.12 [0].
>> - fix dt node copmaring
>> - moved channel->shmem check from ASSERT in unmap_memory_channel to
>> "if" statement. This will prevent firing ASSERT if
>> unmap_channel_memory was called twice on the same channel.
>>
>> Changes in v8:
>> - check for CONFIG_ARM_SCI to be ebabled instead of COMFIG_ARM before
>> calling sci_do_domctl
>> - rework sci_do_domctl call to avoid extra checks, improved error
>> handling.
>> - do not propagate ret1 if sci_do_domctl returned positive ret
>> - updated comment in domctl.c code
>> - switched to ordered accessors to address the ordering and barrier
>> concerns.
>> - updated the documentation to match the implementation and explicitly
>> state the supported access sizes and granularity.
>> - rename memcpy_* implementation files to memcpu-* to follow naming
>> convension
>> - fix indentation to match Xen style
>> - fix intendation to match Xen style
>> - move memcpy-{from/to}io to more convenient library place
>> - update xen_scmi func_id in commit description
>> - updated documentation with the new DT format
>> - updated opt_dom0_scmi_agent_id setting to avoid it to be equal
>> SCMI_AGENT_ID_INVALID.
>> - changed SCMI_AGENT_ID_INVALID from 0xff to UINT8_MAX which makes
>> code more clear showing that UINT8_MAX is theated like invalid
>> agent_id and couldn't be used. Also excluded SCMI_AGENT_ID_INVALID
>> from acceptable value range
>> - remove outdated xen,config property ignore, added xen,sci compatible
>> to skip_matches in handle_node
>> - add documentation for pre-existing scmi-smc-passthrough command line
>> option in alphabetically correct location (in 's' section)
>> - add note to commit description about documentation for previously
>> undocumented scmi-smc-passthrough
>> - Fix SMC IDs in DT examples (Xen management uses 0x82000003, Dom0 uses 0x82000002)
>> - Add explicit note explaining why Dom0 and Xen channels do not conflict
>> - Document dom0less multi-agent configuration example (xen,sci_type / xen,sci-agent-id)
>> - Add scmi_xen node to agent-discovery example with #scmi-secondary-agents-cells = 2
>> - Drop dom0=sci-agent-id command line handling; Dom0 SCMI is now enabled via
>>    xen,dom0-sci-agent-id in the xen,sci DT container
>> - Refresh docs and examples to mention the DT property instead of the cmdline option
>> - update documentation to match the last DT format
>> - fixed RST: "... code-block:: dts" -> ".. code-block:: dts"
>> - update documentation with dom0less configuration example
>> - update documentation with new param xen,dom0-sci-agent-id
>> instead of the command line parameter
>>
>> Changes in v7:
>> - update domctl to build on both Arm and x86 platforms
>> - move ret1 declaration to the top of the function as required by code
>> style
>> - x86 guidance: removed the speculative note; header now just says
>>    each arch supplies its own implementation or macro.
>> - name spacing: dropped the double-underscore; the helpers are now
>>    memcpy_fromio / memcpy_toio. The header also explicitly allows an
>>    arch to define these as macros before including it.
>> - updated io.c to keep 32-bit transfers safe on arm32
>> - moved to __raw_read*/__raw_write* accessors to avoid endianness conversion.
>> - split the helpers into separate compilation units
>> - rework scmi nodes for xen to match on compatible string instead of
>> the direct path
>> - update documentation in section of the xen_scmi configuration which
>> is matched by "xen,sci" compatible instead of the direct path.
>>
>> Changes in v6:
>> - change iommu_do_domctl and sci_do_domctl command order and
>> call sci_do_domctl first which will produce cleaner code path.
>> Also dropped changing return code when iommu was disabled in
>> iommu_do_domctl.
>> - sorted objs in Makefile alhabetically
>> - added newline at the end of Makefile
>> - used uint{N}_t intead of u{N}
>> - add comment about why 32 bit IO operations were used
>> - updated cast opertaions to avoid dropping constness which is wrong
>> - move function definitions to generic place so the could be reused by
>> other arch
>> - add SPDX tag to io.c
>> - updated scmi-shmem to use io.h from generic location
>> - update scmi_agent_id parameter to be provided inside dom0= parameter
>> list and have the following format "dom0=sci-agent-id=0"
>> This change was done as a response for Stefano comment and
>> requires a lot of code changes, but produces much cleaner solution
>> that's why I've added it to the code.
>> - fix file comments and return codes
>> - fix lenght checks in shmem_{get,put}_message to use offsetof
>> - remove len member from scmi_channel structure as it is not used
>> - set scmi-secondary-agents property to be mandatory since if no
>> secondary agents were provided then there is no sence to enable scmi
>> when no secondary agents are populated to the Domains
>> - update documentation in booting.txt, added xen_scmi node to the
>> example
>> - adjust d->arch.sci_enabled value in scmi_domain_destroy
>> - fix lock management in smc_create_channel call
>> - avoid extra map_channel_memory command for Xen management channel
>> because collect_agent_id call unmaps memory if DOMID_XEN is not
>> set. So for Xen management channel we can init domain_id ad DOMID_XEN
>> before calling collect_agent_id so memory shouldn't be unmapped.
>> - remove all HVC mentions from the multi-agent doc
>> - update sci-agent-id parameter description in the documentation
>> - add missing Sign-of
>> - minor fixes across the document
>>
>> Changes in v5:
>> - return -EINVAL if mediator without assign_dt_device was provided
>> - invert return code check for iommu_do_domctl in
>> XEN_DOMCTL_assign_device domctl processing to make cleaner code
>> - change -ENOTSUPP error code to -ENXIO in sci_do_domctl
>> - handle -ENXIO return comde of iommu_do_domctl
>> - leave !dt_device_is_protected check in iommu_do_dt_domctl to make
>> code work the same way it's done in "handle_device" call while
>> creating hwdom(dom0) and "handle_passthrough_prop" call for dom0less
>> creation
>> - drop return check from sci_assign_dt_device call as not needed
>> - do not return EINVAL when addign_dt_device is not set. That is
>> because this callback is optional and not implemented in single-agent driver
>> - move memcpy_toio/fromio to the generic place
>> - fix device-tree example format in booting.txt, added ";" after "}".
>> - update define in scmi-proto.h
>> - update define in scmi-shmem.h file
>> - scmi_assign_device - do not ignore -EOPNOTSUPP return
>> code of the do_smc_xfer
>> - remove overwriting agent_channel->agent_id after
>> SCMI_BASE_DISCOVER_AGENT call
>> - add multi-agent files to the MAINTAINERS
>> - add SCMI multi-agent description to the SUPPORT.md
>> - handle ARM_SMCCC_INVALID_PARAMETER return code and return -EINVAL
>> for smc call
>> - updated collect_agents function. Set agent_id parameter as optional
>> in scmi-secondary-agents device-tree property
>> - introduce "#scmi-secondary-agents-cells" parameter to set if
>> agent_id was provided
>> - reanme xen,scmi-secondary-agents property to scmi-secondary-agents
>> - move memcpu_toio/fromio for the generic place
>> - update Xen to get management channel from /chosen/xen,config node
>> - get hypervisor channnel from node instead of using hardcoded
>> - update handling scmi and shmem nodes for the domain
>> - Set multi-agent driver to support only Arm64
>> - rework multi-agent driver to leave Host Device-tree unmodified
>>
>> Changes in v4:
>> - toolstack comments from Anthony PERARD
>> - added dom0less support
>> - added doc for "xen,scmi-secondary-agents"
>>
>> Grygorii Strashko (2):
>>    xen/domctl: chain SCI handling before IOMMU in assign_device domctl
>>    docs: arm: add SCI SCMI SMC multi-agent driver docs
>>
>> Oleksii Moisieiev (4):
>>    xen: arm: smccc: add INVALID_PARAMETER error code
>>    lib/arm: Add I/O memory copy helpers
>>    xen/arm: scmi: introduce SCI SCMI SMC multi-agent driver
>>    tools/xl/libxl: wire up SCMI SMC multi-agent configuration
>>
>>   MAINTAINERS                                   |   1 +
>>   SUPPORT.md                                    |  11 +
>>   .../arm/firmware/arm-scmi.rst                 | 422 +++++++++
>>   docs/man/xl.cfg.5.pod.in                      |  13 +
>>   docs/misc/arm/device-tree/booting.txt         | 197 +++++
>>   tools/include/libxl.h                         |   8 +
>>   tools/libs/light/libxl_arm.c                  |  13 +
>>   tools/libs/light/libxl_types.idl              |   4 +-
>>   tools/xl/xl_parse.c                           |  12 +
>>   xen/arch/arm/Makefile                         |   1 +
>>   xen/arch/arm/arch.mk                          |   1 +
>>   xen/arch/arm/dom0less-build.c                 |  11 +
>>   xen/arch/arm/domain_build.c                   |  39 +
>>   xen/arch/arm/firmware/Kconfig                 |  12 +
>>   xen/arch/arm/firmware/Makefile                |   1 +
>>   xen/arch/arm/firmware/sci.c                   |  36 +
>>   xen/arch/arm/firmware/scmi-proto.h            | 164 ++++
>>   xen/arch/arm/firmware/scmi-shmem.c            | 118 +++
>>   xen/arch/arm/firmware/scmi-shmem.h            |  45 +
>>   xen/arch/arm/firmware/scmi-smc-multiagent.c   | 830 ++++++++++++++++++
>>   xen/arch/arm/include/asm/firmware/sci.h       |   8 +
>>   xen/arch/arm/include/asm/smccc.h              |   1 +
>>   xen/arch/arm/lib/Makefile                     |   2 +
>>   xen/arch/arm/lib/memcpy-fromio.c              |  55 ++
>>   xen/arch/arm/lib/memcpy-toio.c                |  55 ++
>>   xen/common/domctl.c                           |  15 +
>>   xen/drivers/passthrough/device_tree.c         |   6 +
>>   xen/include/public/arch-arm.h                 |   3 +
>>   xen/include/xen/io.h                          |  10 +
>>   29 files changed, 2093 insertions(+), 1 deletion(-)
>>   create mode 100644 xen/arch/arm/firmware/scmi-proto.h
>>   create mode 100644 xen/arch/arm/firmware/scmi-shmem.c
>>   create mode 100644 xen/arch/arm/firmware/scmi-shmem.h
>>   create mode 100644 xen/arch/arm/firmware/scmi-smc-multiagent.c
>>   create mode 100644 xen/arch/arm/lib/Makefile
>>   create mode 100644 xen/arch/arm/lib/memcpy-fromio.c
>>   create mode 100644 xen/arch/arm/lib/memcpy-toio.c
>>



From xen-devel-bounces@lists.xenproject.org Wed May 20 06:37:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 06:37:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313598.1583726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPaYk-0003cP-3H; Wed, 20 May 2026 06:37:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313598.1583726; Wed, 20 May 2026 06:37:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPaYk-0003cI-0i; Wed, 20 May 2026 06:37:38 +0000
Received: by outflank-mailman (input) for mailman id 1313598;
 Wed, 20 May 2026 06:37:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPaYi-0003c9-Pu
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 06:37:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPaYi-004QKv-5g
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 08:37:36 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d56af-e002-0a2a0a5209dd-0a2a4505a774-4
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:37:36 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d56af-aaa8-0a2a45050019-d155802cd91f-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:37:35 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-48e82c23840so35782035e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:37:35 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48febe6b9efsm188750155e9.5.2026.05.19.23.37.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 23:37:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779259055; x=1779863855; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4Zl5QevfXhi7Er0je9+mWVEjuKoO5f6FlDWf04AEBWQ=;
        b=BKwoT8LsSC/XhK9K/M9diqwwtFBA+z+5EU0M+Q5REe4dYthUnbcmp2JdLW9sOdkphD
         iwBPUp+jzNI/wHJzrmV9F60X3UIK3bDqoxYOCaP4luyuQjbztR20g5GLUlJEnqBEaLGI
         DJCAsPuIMAlXV8+oDYbwpv8ld0xGkJ0Fmg5N0BMTvf8qJBf7WUm3EihSraJGswumxUw3
         Uc2mo83zUG2g529R7mS97huUA2D6KnB5VRxBetx7/tJDMoygERWkOasqyO6lJ3qWyqYM
         8yK/ERvs6VpVbGU7Uz+kq9jKNMHen06OLANMJl2A+rua77xiKigH5eQbDzBDfdy6GL+5
         1Wvw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779259055; x=1779863855;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4Zl5QevfXhi7Er0je9+mWVEjuKoO5f6FlDWf04AEBWQ=;
        b=XDK6g+xuW3WqXXJ7Nx1OWJY+VQUVUYxhaG3VZdDA8v8dzmyM0TeLe/rRYHsnj8wFCu
         KQjEMafJfGRzyUckbdxbzC9HxamDEbHembD+o5n8P4iMwW4Nt7wy9P3Ru86wMKZHACp2
         pqnlpnpbmbcVy/XGjzM/bpen3JidOxPoZIeFdyaHQbG0Pc39gpNNgHrjhqwZS3YP8dwU
         EPMBAHBk3FPF2OuCSan+IEptBTMTLQnO7wJU54czBrrq1qy7JRo3TpEsAbcUSt+sUvlJ
         APMOfKcU8rw8rtT4i3pQa3gVgm24XZNCYEzEFB/mqE+Zu64XJwJEMrCw8UfZhhgTVB80
         M9vw==
X-Gm-Message-State: AOJu0YxpBLgzgpCkAuWZlJZjg79qhQQ5Gzln16ksKEyC6pwpFJxPCw9m
	nBhEueZmY2SmC3neo8UcCYhFLmOFBUxCPPuKVhCVDYiZq1OuVKI7aCFBxUu/TYZ6eg==
X-Gm-Gg: Acq92OG9Dyw3qh2B8qOmTZn7VpXff/pT8VjavHAiCnaO9YXRKhXoxpX9kLL4+W5v8b1
	SxM3VryubUeoIZ8sX4d6MbvcIt5V8zMhZSeyxRQPItbcLMx/bITXNKBs02QKfc2t7gLvzGPBiP6
	W5nyfb62GOQh4oVawwTe2G/PuEmzeJiK+RVRbRjD9kumelYKppOvYJ2w9s5SiHDxH7XzjjMT8w1
	D+h/04SW8NzcFTFzTPlsdrGkTgLS9auoewAkOvOXcdHnvLulU3nKeEWrfkgB5vg/ZpXDWIopgbU
	OMl7keRtpzcBZun/rAgX1toWlwyIU31heMeMa50De9G/sex+azNWtt7kJLZNC6TkjJU+nN/PBq4
	UUV/smHhbzJCP9ufCUPLD11X4a4vgQ5b2E989whHWXl+ZkGb1A4l5UOiHcYsz+6q2XhvEq6PYKy
	Ip3N0K1jT9UvWSQ8LKYEmooiGcSSdmqHT01bG5JV9kHnK0kGzY+HCIFNvX4s6aBgDVjEXUgNLJE
	7fH7NhIXz8M14E=
X-Received: by 2002:a05:600c:8715:b0:490:b07:5f27 with SMTP id 5b1f17b1804b1-4900b07600fmr231818225e9.24.1779259055492;
        Tue, 19 May 2026 23:37:35 -0700 (PDT)
Message-ID: <194504fb-686c-49d4-a962-44c407e39a74@suse.com>
Date: Wed, 20 May 2026 08:37:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] pci: Use pci_sbdf_t in pci_device_detect()
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Teddy Astie <teddy.astie@vates.tech>
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117762.8631fc262581453bbf619ec5b2062170.19e3baea7d1000f373@vates.tech>
 <ag0oovFrGircUaut@kraken>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ag0oovFrGircUaut@kraken>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1779259055-DBB60443-DBA2172D/0/0
X-purgate-type: clean
X-purgate-size: 761

On 20.05.2026 05:21, dmukhin@ford.com wrote:
> On Mon, May 18, 2026 at 05:21:27PM +0200, Teddy Astie wrote:
>> @@ -1510,25 +1508,24 @@ void __init ehci_dbgp_init(void)
>>      }
>>      else if ( strncmp(opt_dbgp + 4, "@pci", 4) == 0 )
>>      {
>> -        unsigned int bus, slot, func;
>> -
>> -        e = parse_pci(opt_dbgp + 8, NULL, &bus, &slot, &func);
>> +        pci_sbdf_t sbdf = PCI_SBDF(0, 0, 0, 0);
>> +        
>> +        e = parse_pci_sbdf(opt_dbgp + 8, &sbdf);
> 
> The original logic was ignoring PCI segment,

Not quite - it was demanding it to be either absent or 0.

> now the full PCI address is allowed.

This behavioral change (if indeed intended) definitely needs mentioning /
justifying in the description.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 20 06:40:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 06:40:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313603.1583736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPab9-0005By-H5; Wed, 20 May 2026 06:40:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313603.1583736; Wed, 20 May 2026 06:40:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPab9-0005Bq-Cp; Wed, 20 May 2026 06:40:07 +0000
Received: by outflank-mailman (input) for mailman id 1313603;
 Wed, 20 May 2026 06:40:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPab8-00055r-5B
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 06:40:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPab7-0090oG-HJ
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 08:40:05 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d5735-bab6-0a2a0a5309dd-0a2a4509a7ba-42
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:40:05 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d5745-2497-0a2a45090019-d1558035c079-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:40:05 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-488a9033b2cso36067425e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 May 2026 23:40:05 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe53ab6aasm405073275e9.2.2026.05.19.23.40.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 May 2026 23:40:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779259205; x=1779864005; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KYbnqpWizzz3hbTmvk1yGALIeF3YmXmKF0Fupo5IaBY=;
        b=Ar1R+PfjYIB3TU+4im0gT0Ppc1nNoexrFkvAevG1d5Jq3RQOWf9N6IshM6JlN90mtp
         ekQx8TQYKL+Bllcg3tJPL3iV+Tg8v4jJo4LiIpVEzgfTx7HeHhzT/EleyDaLp06m6S5A
         INvRbV6dwGvEqWoQcBQecbEhbUgSrNEhsWcOUq7Z1GhtjI+yXJjcOy8VN0cmWrfObca3
         g8Hbpizuo8LEyzR6d3HA1hDi5mu8OnDFXd4ulnui/36JGvTr0OWYxUqF2vjcvVlK7a/Q
         Q9xRjACPMqcKzQoCG8jBuw9YigSdNlL5VVmJrVqQadKsn2ZaZn0EiDzCVOsV4evGNCrq
         gB/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779259205; x=1779864005;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KYbnqpWizzz3hbTmvk1yGALIeF3YmXmKF0Fupo5IaBY=;
        b=JcMOYxfTwyy70oZBFCsair5TRWpWohtex8u+VCRs4qTn+D5tNI+DpI2qVC4rWuAxFg
         Mn+q8RM5oeTLE24E/SEilEv5zqIDDIutGtJJayHyRRJSzwawBLihXbbgxA2rRxFblLGt
         L0bYUL1GxFcYhPNHegUXUVwsEIv0YxrdarjSz+Nd1BT5miy2VuqQIMPDUTwwfT/WbZvb
         0HsCPxyaLkKfg8miEGdR9CWXpWUC70qmFxqTWmkMQQHf7ggg60MC2K4L8jaORRk73qcj
         YuNABjm+c45lWmkDf0U6su04a3yg43M3rgrc0IcFThz75nZ/i8EKx3X5vgWKudP7GPFD
         1anQ==
X-Forwarded-Encrypted: i=1; AFNElJ+zS36l7DZkRjAzShgWns+jiTsrgjO2zB7nlG3WMFupPV6rkf+w8nFXmJPQwIyWVuRIuNiOeijIh2k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzIqCn1ts/AUhBQBtE1juLJGjfqxAiZ001B10n6rjT6c28QNOKv
	la+WDDefBqOrIxjM9oyBSiEgWYcogsyeg7vekxlxLQ3PT4lbkdJESx8rutEl3juhCg==
X-Gm-Gg: Acq92OG+8W398ZCrpzN1clHzr2OiBsNoUajTW9wT/7PBgeyZfNZB8eIt/I72x3ExH5Y
	eVgDL1+FsrYszuYgxa4wWeWCnLNxipbDIAY54IetlbpVNLHVb/EZGGkMZAlCo8+kP/+m0acXp0J
	Mlbj6mWtyplAOM2YsY2661sfnlydGnWbDtMTEQdCbIQG0G4WZflNfw7/vpQN05KsRvqAPY+rrla
	RH+d4k8dk/BlmpDx38icROXah58yUO4H4LcLJlrRUnMfD0SnQdKXL4lYOkyNG5QtXKr0cX7Ualg
	ruSfXcVLChd0agCEb1WDFGRAkFDyywfkKzmEVIrUeP9fgwmr7CKf1ys+/wsbI6Ly8A9Dj3Y8JcQ
	sWPCql6JPVrzqG+JQdyUCQ1E2V/YRO2mxu2p43rvBLoUwyBpeCwAe4traismBsUl+uTthmvSXxW
	t01VzK9FJqenooxseeSkRMgUGgDczNW5gqZxGycILlIuuZ3CdGk1DRD/OBnBm5V7IK5Odkcc4G/
	7ZqvV6q1Bnq190=
X-Received: by 2002:a05:600c:8b6e:b0:48a:6fd4:d3d3 with SMTP id 5b1f17b1804b1-48fe61ed21amr364200145e9.20.1779259204878;
        Tue, 19 May 2026 23:40:04 -0700 (PDT)
Message-ID: <5aae861f-38c8-49c5-9881-fcd3a00b8e98@suse.com>
Date: Wed, 20 May 2026 08:40:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/riscv: fix sstc init to write vstimecmp instead of
 stimecmp
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Baptiste Le Duc <baptiste.le-duc@vates.tech>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <1779207317.8631fc262581453bbf619ec5b2062170.19e4105277b000f373@vates.tech>
 <49d0cbe5-1366-4539-9754-371e9507a54d@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <49d0cbe5-1366-4539-9754-371e9507a54d@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1779259205-8816CA53-E18902CE/0/0
X-purgate-type: clean
X-purgate-size: 422

On 19.05.2026 18:28, Oleksii Kurochko wrote:
> On 5/19/26 6:14 PM, Baptiste Le Duc wrote:
>> According to the comment above initializing of CSR_VSTIMECMP should be used instead of CSR_STIMECM.
> 
> Probably, it is something wrong with my e-mail app but this line looks 
> long enough.
> 
> I think we have to follow 80 chars per line.

Just to mention - for commit messages I think the limit is 75 or 76.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 20 07:28:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 07:28:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313621.1583745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbLl-000356-Rf; Wed, 20 May 2026 07:28:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313621.1583745; Wed, 20 May 2026 07:28:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbLl-00034z-OY; Wed, 20 May 2026 07:28:17 +0000
Received: by outflank-mailman (input) for mailman id 1313621;
 Wed, 20 May 2026 07:28:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPbLk-00034t-4u
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 07:28:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPbLj-004c4Z-HF
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 09:28:15 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0d628a-bab6-0a2a0a5309dd-0a2a4501a232-30
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 09:28:15 +0200
Received: from [209.85.221.47] (helo=mail-wr1-f47.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0d628f-c1f2-0a2a45010019-d155dd2fc170-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 09:28:15 +0200
Received: by mail-wr1-f47.google.com with SMTP id
 ffacd0b85a97d-43eb05b1875so2439129f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 00:28:15 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45da0a19a0csm49169685f8f.20.2026.05.20.00.28.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 00:28:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779262095; x=1779866895; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=06X7VCmR5DVVJrrHcUBqQOGLtGl3uUt17K//J3YuTPc=;
        b=ncCCa9O5tLsEM9C0EPQpBJG4GlwiOKa6iUnoovpk+ZPgUhrbND2/UjJwWDygvYZCQj
         oDai5H8N8xDf0Seb0KnlGljxFZENjAbksrB32neQQvdf4+KqcnhlRqJGlfOrZ6/V1UlW
         AthFV0FrjDLyrEf/Tpu+tVFmt0XcteBXEF/Coey7zl1+BD/9A05nWiQhL8ScIID+m39l
         0vK5PE0SuZlj+o8CQImJ8jUrbwu14IzrWdiep+nktpyMB56TQMD19IF2l7xXmJ8AKYME
         9EMDgsrFpig/bgQ0ADgdJW83EK3NXGmwWVTOUDev2FRV/bb+0Q3GubN75YtguZuqd+z3
         4Xcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779262095; x=1779866895;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=06X7VCmR5DVVJrrHcUBqQOGLtGl3uUt17K//J3YuTPc=;
        b=NYykLB2dhMbVtHR1YsrSSNHNw90E2fNWDBWEvW3Q71igWogz2bvXmxEYxzr1PZeAsL
         PgzYpQ5JPJUcKyKYXetT3+VHZ8gDBcV/VlOFrnC8J6O6n0Bkvo4KVbfzygM4ivgIdfT4
         UctKOi/mKRjnDjeIK5g7zcvwZrqwU/Glqfb5CkknkhHJyh0kERs6KKSpo58kDyV4Drv6
         rI3bkROOM8deAwx4+nUwrG/TytK1MxiFxifMF9V3oN8d3EYBfrXOkXkiokCCQle4VlfL
         Xdh8XGCRa1GbTvugiR2r1ZEooSOtZjdRCHMQPV5Kf7aI0/J3X5evWBF7AnrqWDZ6wqUZ
         9HUg==
X-Forwarded-Encrypted: i=1; AFNElJ/zAqf8bzsgCyo2aRzqzwRi1yQ+M1mHFR+DR0O6Cu5Oa4RzHkU845pSkuP8NZKDjcKXNkso8x3/rYk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyA6/Z0RKcsAZDxFhgVWL9IxtR86ViP5H+2hfye9XX7wYcCoFnr
	IBm/UHA37vlOUVYbF7C5GOBNnVklSAHjoZAOhwqxvH2PatRmqG4N+msZ
X-Gm-Gg: Acq92OGJr4oqewlzP+CMoe/hqJJAJ8isywFemrhm/stb3SBNjEljeunRDFtOfnQFBRu
	h04Au+06pxAph8gVqcfgapXu5dBvvrGwBgtCuMyQK+tqxww24Mm25tjXQYEXu2UOFCQqscO+P3S
	+jLil17jcraQt4ADm30O6UmuyyOiY69FDz4wt2e+4XVNXNW7P3jeZ2Ci2Enq4HW+mKxbaVZSA3t
	U/3DkvAEPV2SUmf0T/onJi1lUAOMiFVmkuoCwU+o+FZcZPXFx0apZorThMSKwEGUk1tJg6rrujw
	oet7JZeJGbZqMropEMU/1G4mAKFT5wfQFH4pgS/P4WTpocJc1q3gyARPMx71NH0ZMmv5EpVgtVp
	1cICl/5cdbm5UFtv3fnaeIzphFzSGe3x2jIvQO4052AqhZy7r7VY+es+KjwJWtl3Th6g2I7XZsN
	Tti3Z7s58J2Z9PMCKMeyVhnsAsmd+5HNkPE6uNlyw95S35/Sl6GkeHf0TDUz87zTepwag/xViiT
	SU=
X-Received: by 2002:a05:6000:1aca:b0:43c:f247:4792 with SMTP id ffacd0b85a97d-45e5c5be70cmr35961504f8f.12.1779262094640;
        Wed, 20 May 2026 00:28:14 -0700 (PDT)
Message-ID: <749658a9-e32a-4681-ab30-2984e83b5396@gmail.com>
Date: Wed, 20 May 2026 09:28:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/26] xen/riscv: introduce guest riscv,isa string
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <b2d4f3f7f049837a25bc00bfb1d3da8b984a8b5a.1778250616.git.oleksii.kurochko@gmail.com>
 <364abd6e-4fff-437a-90c8-bb4489f0c51d@suse.com>
 <f032149e-aa99-4976-8012-39bd01d4a653@gmail.com>
 <23e8de1e-b792-4863-bd99-f529642fb963@suse.com>
 <fbd8b102-d495-4678-8226-a199554e266d@gmail.com>
 <3d9e2a3a-6839-4909-b60f-28b4c1a02cdd@suse.com>
 <fa617f4f-7057-4b59-8f28-5a014b0c423a@gmail.com>
 <3b5f681c-bda4-4c46-a96d-cd3da1658e28@suse.com>
 <8472866e-49e6-45e8-8d86-3b6b09d2c177@gmail.com>
 <f499de94-e75c-487e-bd1a-0bd3b4eda39f@suse.com>
 <a89475bf-b1e3-4ee4-af13-f86f1602581e@gmail.com>
 <a6e8a461-74f1-473e-92f6-ac2d32823d07@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <a6e8a461-74f1-473e-92f6-ac2d32823d07@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1779262095-AFD51FF4-71A79FA9/10/73395122804
X-purgate-type: spam
X-purgate-size: 2244



On 5/20/26 8:13 AM, Jan Beulich wrote:
> On 19.05.2026 18:21, Oleksii Kurochko wrote:
>> On 5/19/26 5:56 PM, Jan Beulich wrote:
>>> On 19.05.2026 17:17, Oleksii Kurochko wrote:
>>>> On 5/19/26 4:53 PM, Jan Beulich wrote:
>>>>> On 19.05.2026 16:49, Oleksii Kurochko wrote:
>>>>>> int init_guest_isa(struct domain *d)
>>>>>> {
>>>>>>         int len;
>>>>>>
>>>>>>         bitmap_andnot(d->arch.isa, riscv_isa, guest_unsupp,
>>>>>>                       RISCV_ISA_EXT_MAX);
>>>>>>
>>>>>>         len = build_guest_isa_str(NULL, 0, d->arch.isa);
>>>>>>         if ( len < 0 )
>>>>>>             return len;
>>>>>>
>>>>>>         d->arch.isa_str = xmalloc_array(char, len + 1);
>>>>>>         if ( !d->arch.isa_str )
>>>>>>             return -ENOMEM;
>>>>>>
>>>>>>         build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa);
>>>>>
>>>>> At least ASSERT() the success of this?
>>>>
>>>> I will add:
>>>>
>>>> ASSERT(build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa) == len);
>>>
>>> Ehem. Please check how ASSERT() works (and the difference to BUG_ON()).
>>
>> Condition itself looks correct for ASSERT(). If build_guest_isa_str()
>> returns value equal to len then assert_failed() shouldn't be called.
>>
>> Maybe do you mean that it will never fire in release build then yes it
>> should be changed to BUG_ON() and the condition should be inverted:
>>    BUG_ON(build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa) != len);
> 
> No. Unlike in BUG_ON(), you can't use expressions with side effects (i.e.
> also function calls, unless they're const/pure) in ASSERT(). That's
> true for standard C's assert() as well, i.e. not Xen specific at all.
> (We do, however, diverge from assert() in another aspect.)

Got you.

Also it could be in release build that build_guest_isa_str() won't be 
called at all because of how ASSERT() is open-coded:  if ( 0 && (p) ...

Then probably it would be better to do in the following way:

if ( build_guest_isa_str(d->arch.isa_str, len + 1, d->arch.isa) != len )
{
     XVFREE(d->arch.isa_str);
     return -EINVAL;
}

return 0;

I am not sure that -EINVAL is the best one option but I don't see any 
better now.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed May 20 07:52:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 07:52:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313639.1583753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbie-0007FT-KY; Wed, 20 May 2026 07:51:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313639.1583753; Wed, 20 May 2026 07:51:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbie-0007FM-HB; Wed, 20 May 2026 07:51:56 +0000
Received: by outflank-mailman (input) for mailman id 1313639;
 Wed, 20 May 2026 07:51:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPbid-0007Eu-9R
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 07:51:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPbic-00BwW4-I5
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 09:51:54 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0d681a-2eae-0a2a0a5409dd-0a2a450cce12-2
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 09:51:54 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0d681a-62f1-0a2a450c0019-d1558033e99f-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 09:51:54 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-4891d7164ddso25231775e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 00:51:54 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48febe5821fsm124538085e9.14.2026.05.20.00.51.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 00:51:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779263514; x=1779868314; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=5M2MIxiyY2Qlw+vztBjaaQeX4qsekWqJLMuyhBvHXVQ=;
        b=PQdvF1MS7nXx1UtTDbVJYgrrpZEYFuae4VCy1+azeOClZO93WOeeaULE1ZT11pjyJz
         pGLd0ZaTzSbEAwf3+RhOOzURqHCqjpaymTe3m02nF86H9O+Kc+mQVTyD9IDPKRq8h21d
         F3iHn+xrNeFVUy7EDxA9Hy6iPcKzVPwsQqqgDAsN8Vl6iy4zbHH8u8Q+AcYHR9VCulMm
         nNkUnBILWHhR+QWU3SxggL2oQHNPNhDiqyZgrjMDb/Is4tyLdWTByk5p8PRi57/UQmKV
         Rc3kbmvqO4ukabZ3mBMjjK9dASXu9jCzVHwWPnihYXEEkt8Y04DUsvEgqVe8y3U01fQk
         35hw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779263514; x=1779868314;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=5M2MIxiyY2Qlw+vztBjaaQeX4qsekWqJLMuyhBvHXVQ=;
        b=pUL/UMkGB7R4iSWO3d3c8YwxhMzNCCHelJqLw/+KP7IhJY8aKVDw7Y3jhx9Xp4WBBD
         7lhVe1rgEC8fFI/VMtwoNwEA8n09xMw0ZHSeTA1mcNpWcTY7evC/Rf2t0SJ4z7xrlTfx
         QzNVU8N+6j4lY/vv2Z9bO4YUfA9ow/2Q817lyqAjPuA6Ffmyx/RPwmTPqHEjSlQ4ruTM
         FZKxYFGx3DlW41RAFPbUWy0ARTNEXRsYtvLdoATs8EJtZ8FOdUOkBYPN4SSeSprk8I4T
         im5lOR9eJiJlk3o8XC7i7w3GKKVW5OQFDM9MV5E+x7G5dqPuS0ADGS1KCZb2Sr1SBS3H
         4YeA==
X-Forwarded-Encrypted: i=1; AFNElJ+yQdQnrhpz9SB1o9kNX7ysSVviojgKAsGB2AMt00YRTLx9V00Oucc2Rwa8zHvnMeeDU4gXhQGwZVA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyDPbjGcifTGYWBEDnn/NGZgZoZAWJzWdF3FwjmS07hLuthoFDt
	GQKAGUVWly3GRmGazSzmcScemEo62ud4zgq6lVr7ZYstmuCan4pUfqg3
X-Gm-Gg: Acq92OFs+0P6ZICCBKq8S+QgmNuUcMaAfUZI4S5XhuONyivkc4H0aA9ej5P/knPT04F
	ZBwgNLIkXDQK77UBGPDWbp5tlqsn2dNeo6kHyt3Ut+qYh8Q3LUysj7r5buMVkVcXAR+hqwdG8dQ
	GMOxGhz/u6mgBY9ZuxyLAtuRUFgpkIU5qcFOv7XT3hl4FurgloBgKwYLiJC2xSsZHyw21H7H8fz
	QlqbOEivCH9SSK1dey1rBBdPFiM4KUT+yMLxVFWNGnAb6CSezx4dx0HhxzCI4ZXvYVn7o0Vxt9X
	c+Emf4DK+YPfDaiWUhYlZEp+wyMRkIBg1yRlY0ovu2aNlVVP8xnBr4v+Tdy6tyLA0tLzx/EGlaD
	aXbkNxfyFloLh6rqjB99iAvP11kaDBdt9ib6ARQeRYaa8NeAlUzha7AJf0nybcglp/r6vqFmysl
	rm15ddkBSu3Tq7GmNgzs0+0epf9h9aiIag5/3cEt3ClXtTzZg9L11cN+ELOvIns4NqG4EXRy+v4
	GlVGhYtJpjtjw==
X-Received: by 2002:a05:600c:a4f:b0:48f:e230:c3f9 with SMTP id 5b1f17b1804b1-48fe661df4dmr324899015e9.31.1779263513574;
        Wed, 20 May 2026 00:51:53 -0700 (PDT)
Message-ID: <bf22c29e-3388-4531-b14d-dc32198500c1@gmail.com>
Date: Wed, 20 May 2026 09:51:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/libfdt: fix UBSAN null pointer in
 fdt_property()
To: "Orzel, Michal" <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <0addc679de64cb59b28cf49ba3d39d17443d1ac8.1779179301.git.oleksii.kurochko@gmail.com>
 <ca61a607-2f55-47b6-93f2-c25079dfd88b@amd.com>
 <e943765c-45f6-4802-bef6-e2fffd49149e@gmail.com>
 <8ade5ff1-a702-4a91-b596-a98833716c20@amd.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <8ade5ff1-a702-4a91-b596-a98833716c20@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1779263514-E1F6ACF5-A2DC0F79/10/73395122804
X-purgate-type: spam
X-purgate-size: 1354

Hello Michal,

On 5/19/26 11:37 AM, Orzel, Michal wrote:
>>> We treat libfdt as external library and we don't accept any edits here prior to
>>> first sending a fix to libfdt and then cherry-picking a patch (in fact, afacit
>>> we then do the libfdt version update).
>>
>> Thanks for clarifying that.
>>
>> Just to be sure I don't confuse something.
>> According to the commit ...:
>>
>> commit ad9cf6bde5b90d4c1e5a79a2803e98d6344c27d7
>> Author: Vikram Garhwal <fnu.vikram@xilinx.com>
>> Date:   Thu Nov 11 23:27:20 2021 -0800
>>
>>       Update libfdt to v1.6.1
>>
>>       Update libfdt to v1.6.1 of libfdt taken from
>> git://github.com/dgibson/dtc.
>>       This update is done to support device tree overlays.
>>
>> ... I have to send this patch to git://github.com/dgibson/dtc, right?
> Yes, that's the main DTC/libfdt repository.

The patch to dtc repo was accepted and merged:
https://github.com/dgibson/dtc/commit/f57e7df35df4a301961cbbf9433ba4e85c2ee5ed

But current version of dtc is:
   $ cat https://github.com/dgibson/dtc/blob/main/VERSION.txt
     1.7.2

Does it make sense to backport just one patch to Xen instead of updating 
update libfdt to 1.7.2 as it would be necessary to apply 61 patch on top 
of Xen's libfdt 1.6.1:
   $ git format-patch v1.6.1..main -- libfdt/ | wc -l
     61

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed May 20 07:56:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 07:56:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313650.1583762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbn2-0007sO-6Q; Wed, 20 May 2026 07:56:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313650.1583762; Wed, 20 May 2026 07:56:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbn2-0007sH-3v; Wed, 20 May 2026 07:56:28 +0000
Received: by outflank-mailman (input) for mailman id 1313650;
 Wed, 20 May 2026 07:56:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wPbn1-0007sB-2I
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 07:56:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPbn0-00ERAB-Dr
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 09:56:26 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0d6925-2eae-0a2a0a5409dd-0a2a4502d10a-24
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 09:56:25 +0200
Received: from [40.107.200.18]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0d6928-af86-0a2a45020019-286bc8120b14-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 09:56:25 +0200
Received: from CH2PR11CA0011.namprd11.prod.outlook.com (2603:10b6:610:54::21)
 by CH3PR12MB9169.namprd12.prod.outlook.com (2603:10b6:610:1a0::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May
 2026 07:56:21 +0000
Received: from DS2PEPF00003444.namprd04.prod.outlook.com
 (2603:10b6:610:54:cafe::53) by CH2PR11CA0011.outlook.office365.com
 (2603:10b6:610:54::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.22 via Frontend Transport; Wed,
 20 May 2026 07:56:21 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 DS2PEPF00003444.mail.protection.outlook.com (10.167.17.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.11 via Frontend Transport; Wed, 20 May 2026 07:56:20 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Wed, 20 May
 2026 02:56:18 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 20 May
 2026 02:56:18 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 20 May 2026 02:56:16 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Fgszy4I78oOtQRf254wGTcRQ0oWkElpcQnhmuEUyDzZKVBiE2yaRecwreZoDtzpZ4iqasc4/WTWI8TnsbUU5fPKmjhWAN+rj4boGg7rOYusB5MMZRE/G809H+1n4IW/dI6qybKt+56I/bwiulvFaAoEoe14hSQOOcKpkQwk1Id6L4hKQxmKvvanrAIZQm4lYrKYJLo3KLGc1cw1eVIaXMOwnIWvlprgr07+rZQln/aJa37riy33awg1x1y2GXpPwS/bXcwJCuqxFb/YQryZ9jobuIM20lq354Z5sV0JrGRIF7CN96YxXQREv3TkQdOMpwe1pHzVzxIEgeAPb1FF7+g==
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=IR6+fktXwIXkaRDI+OMF+BgDVBMQl7kRoFmawKgfKDM=;
 b=jIRG9ou8Ly7lFseQjY7fL8RHGDXs4P15O7hjEZwy/a/QxPv6cczWYiKniaNIjzHnS7u3R1g1QwewMn7cgYzly+JXfYeb4OXhHnumy9xk3vjE84f9KiryKC5lNI86lLrboNlBQMihBxtJ9PDNOQA/vQ5xMuFmve7JUt9jtnopPCmFrJ8B0yWeQQmBc1Os5MO5IozVZWf5vq1GU7bYFNTCqJm3t7lFW/3rafxxSlGWo8QswVhqfFFtNa5V56U1Bymk62qwWrUY1jpJvOOZQfV6TR74Vj5MObjLuYh8AoP97oX46G2zOVDbjCcRBaG+zuuG1ElJUmRVLBi7tR6FbxCrFQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IR6+fktXwIXkaRDI+OMF+BgDVBMQl7kRoFmawKgfKDM=;
 b=jgglXm3N8oJ4cGziJy6d1moH2KJI6jNahQ1W06FvvMC+2Ckl898/N2D/PynsYniMYFgb6hy8yQgcPXgBKuccSCCrvxw5JusA79BIpcHiKBNfU9lbM5dUN0PUcuT0P/0LnmNKMGNH4HXG7SIyYL35Ce1knM/1v5TEw+HcQFxZ0EM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <8bbfc208-1fb7-444a-b1cc-b978270f65c5@amd.com>
Date: Wed, 20 May 2026 09:56:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/libfdt: fix UBSAN null pointer in
 fdt_property()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Baptiste Le Duc <baptiste.le-duc@vates.tech>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <0addc679de64cb59b28cf49ba3d39d17443d1ac8.1779179301.git.oleksii.kurochko@gmail.com>
 <ca61a607-2f55-47b6-93f2-c25079dfd88b@amd.com>
 <e943765c-45f6-4802-bef6-e2fffd49149e@gmail.com>
 <8ade5ff1-a702-4a91-b596-a98833716c20@amd.com>
 <bf22c29e-3388-4531-b14d-dc32198500c1@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <bf22c29e-3388-4531-b14d-dc32198500c1@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003444:EE_|CH3PR12MB9169:EE_
X-MS-Office365-Filtering-Correlation-Id: ac4ec057-90f4-4a21-3fe7-08deb6454800
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700016|13003099007|22082099003|56012099003|4143699003|18002099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	JYjXLPS4YvVxYAQiWJYnUzPKMA4KIOT526gfvSZe0Zg2ShfZwCLL3Rdfby8EkZFHJbYNwFbiuIXm6Gu6MzzlbCYGdoZeAff/9C0oeOgnqK7juJzq09JBTYOGgClHZZQGG3vzqDMptzmoIBiKqcTELvpICCqq//SuVpDx0oy+lvy0pifzckSpV7aXnR0nKqv/eIJ9ZFHWruHR0zswNnrrSrs9MBabrxY8baxQqJsbb8t+6T9db4wW72EiyO6nUDzrwnKV8PE8nGdmxd31Uh1Uuj+C3zzta9hGdnM1Z6E2o9vuAk/9LTB8ZO3vWr47NSscpRCTDPTCJARwdd2nskGWHctAohAGpnmX7k34JrxbURo9+JHp6eVeaqW7RWdOqj2WrwOD0uYysrFoi+VfV8Rz9S+/ep6pC8GK8l6yfp+WzBjJZym6wCgVBxkoF1LE1pWow7jB0bvlMSOTcrF6Qu7Xo5A32F8920p+i5+WIktcnbZKkqCuF7TfNP60yJ1XYClRjbvYcZCcO0lNCMgNXZpd2s2SoryIce0wM8B5++zvspj1pLS9jUg8nTjGq7GlzmjIO9mKGaIyessvUJ+a0l1DQoRLPHzLd0rpeL5nR7BkTl5rEWkKGCkc4yj/Xmdp7BwpkIyG5QEFysiGZ2gaeetJ8XNs6S3nBAdbSFoNbbXirMhnaT+yMmMj07JbRvoORc77sZ83/GWQjztKxAELs6943p4dTHu0X2SquDnc4QEZPzk=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700016)(13003099007)(22082099003)(56012099003)(4143699003)(18002099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	zTYYu6yq6ZPFJtjxWZCJXl0gb0J3VljyDM/jMUchlsR9CaOHcJsH4yUFsK3+PWegnR/duUVVTieirAIDNjG8ZcO3z4u/bMeYNiApdpj5E7sHy9SWE7y1WMxQQaU+BEAr2g86zXf8n5LA0roexsjBQbx0HvfVJQ2OfhlwtXuQOV4/MUMOW9a4yqXOuX3/I/6RXJ9AZOCzLzZBjIPisiFueqRjxT//8luxKWgu70/0QDBQ3zy1DiQGnqMyMHM082gLY7GQVPkRp3GcGGP3whfJmcmd/dN2tMbJodNAkiQ3oTvhpoCb6Fbsn7fjthiQ86JdhcPLMiYjgEd9j6UK2BZ3g1qHtGHV/cXi0uU2zU04jNFtctnlqCPS5v7gdAgxkZP5s7xko8anKB9i1y/v8f3+AhVKZ788nIINo2G08mCk605CYWQOxQIuiSCDoSvTuW89
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 07:56:20.9368
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ac4ec057-90f4-4a21-3fe7-08deb6454800
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF00003444.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9169
X-purgate-ID: tlsNG-720697/1779263785-AA56B161-A0CB02CD/0/0
X-purgate-type: clean
X-purgate-size: 1415



On 20-May-26 09:51, Oleksii Kurochko wrote:
> Hello Michal,
> 
> On 5/19/26 11:37 AM, Orzel, Michal wrote:
>>>> We treat libfdt as external library and we don't accept any edits here prior to
>>>> first sending a fix to libfdt and then cherry-picking a patch (in fact, afacit
>>>> we then do the libfdt version update).
>>>
>>> Thanks for clarifying that.
>>>
>>> Just to be sure I don't confuse something.
>>> According to the commit ...:
>>>
>>> commit ad9cf6bde5b90d4c1e5a79a2803e98d6344c27d7
>>> Author: Vikram Garhwal <fnu.vikram@xilinx.com>
>>> Date:   Thu Nov 11 23:27:20 2021 -0800
>>>
>>>       Update libfdt to v1.6.1
>>>
>>>       Update libfdt to v1.6.1 of libfdt taken from
>>> git://github.com/dgibson/dtc.
>>>       This update is done to support device tree overlays.
>>>
>>> ... I have to send this patch to git://github.com/dgibson/dtc, right?
>> Yes, that's the main DTC/libfdt repository.
> 
> The patch to dtc repo was accepted and merged:
> https://github.com/dgibson/dtc/commit/f57e7df35df4a301961cbbf9433ba4e85c2ee5ed
> 
> But current version of dtc is:
>    $ cat https://github.com/dgibson/dtc/blob/main/VERSION.txt
>      1.7.2
> 
> Does it make sense to backport just one patch to Xen instead of updating 
We can backport this patch only the same way as for example here:
d434dc4ac182 ("libfdt: overlay: change overlay_get_target()")

~Michal



From xen-devel-bounces@lists.xenproject.org Wed May 20 08:03:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 08:03:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313669.1583771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbtk-0001ub-E7; Wed, 20 May 2026 08:03:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313669.1583771; Wed, 20 May 2026 08:03:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbtk-0001uU-BR; Wed, 20 May 2026 08:03:24 +0000
Received: by outflank-mailman (input) for mailman id 1313669;
 Wed, 20 May 2026 08:03:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1wPbti-0001ts-0q
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 08:03:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPbtg-00FGZB-Se
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 10:03:20 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 6a0d6ac6-5cb7-0a2a0a5109dd-0a2a45029dcc-12
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 10:03:20 +0200
Received: from [205.220.168.131] (helo=mx0a-0031df01.pphosted.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 6a0d6ac6-af86-0a2a45020019-cddca883dff6-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 10:03:20 +0200
Received: from pps.filterd (m0279864.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64K6kR8u1953973
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:03:18 GMT
Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com
 [209.85.216.71])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e8t3xuq73-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:03:17 +0000 (GMT)
Received: by mail-pj1-f71.google.com with SMTP id
 98e67ed59e1d1-36642d2f4deso10016910a91.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 01:03:17 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-369517aa6f8sm20889290a91.11.2026.05.20.01.03.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 May 2026 01:03:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:Message-Id:MIME-Version:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Cc:To:Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=qcppdkim1; bh=jlSKfthX4HPtf4+kK54drZ
	mQ19Rqg4gAjCsyLiQCKHc=; b=IwDPonQhvvyJevlabHcwTTFLwsVT53P8rB5/He
	GSbTKmyCQP2enzl7cpF/ylHVoFR1Dc+5Dgy63LdRTa94Y268kiNDo0+ZTMRCrbLj
	yu5FljcIumMIitp/eqh/tq1iEFeSj9DHbnCY6Fz3AwDn849V/hdhG5rAYd3uiDqW
	tLvlBYSIcXUSEP9qn5wi9efTksX6t4VVJ4tQAxnl3UjZjxKcpyOuCX+fb3ShyU6V
	N5TtgidypoPPwsxQuo2+umOShvr84ENx8naZUrDzkYYQnvZJ57LRpJKfl0lU6uri
	5QBcvkMTo+NlmplyHVjNV7g5djtTk0Fi8GMQO4i1+yccPtZA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1779264197; x=1779868997; darn=lists.xenproject.org;
        h=cc:to:content-transfer-encoding:mime-version:message-id:date
         :subject:from:from:to:cc:subject:date:message-id:reply-to;
        bh=jlSKfthX4HPtf4+kK54drZmQ19Rqg4gAjCsyLiQCKHc=;
        b=UgJpGOjHdcHB/Ofv3OakIJab9h2Uz/AAdMaCmV1q+ZFjoxL3e/qZ4td4jlRD4lXD5Q
         6W+s/qk+nK7KVx5pdMQrBW3iYaQnYXuERJVDs3D57+B0uB0NHu9Lm0Mj4xpNY+6g7xo7
         rqDIH0UVxXm4YkTQK2ff3jg7cvYiRptwjdxqeUHUGweU5R3QLZ52BCJr8XDTqdgacExz
         5BDJH4SVcfRSq1xE4Q1sAfEUWD49wMr23VPhfcWGWbBfJwozkgzGBHnq+Rfi4Pg8lucc
         KyI5Lxe4oGoXK8uupkb+nlfAM7T2Ti705slT9yBAnmBgyUbLp1jB8Wb32VjV8W72OwvO
         pr0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779264197; x=1779868997;
        h=cc:to:content-transfer-encoding:mime-version:message-id:date
         :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jlSKfthX4HPtf4+kK54drZmQ19Rqg4gAjCsyLiQCKHc=;
        b=Q3WDIh4eYacH+g1D/8nCjc7lfddY01lT9shouf4RFBPuLqFo18xB6g6RSm7aEjlJRx
         LjDpP7PnOCNG7peD3eMXM/w648UeBBBMu9OFHxpW+1EuaU50LF0IhqfjaVy8izSPaCy5
         Lr3eL56sddCCNMrt/k2MZlhCBHNj+XjMjz3pUBtP5buHB+r7tdTK/Ki9x7o2IvM7hTLU
         tkwTmHCFJXYkHd/jAqmzKGTjXgHGRU7k64Fw5As3Oe39GvNefHROFWdqBiiB5LxBYiCF
         +1ZAArpIh3OAs9b15zUhOc/gl9h4PTmF90E9/Mt4rI9LKCblme5ah9/KdwlxwSwl6qk/
         Ko1g==
X-Forwarded-Encrypted: i=1; AFNElJ/R+49XoQwGcL8ziBGxg3LHyE3Q2ZFtwInIsQDCgyxuToqTF1x5miRuG+Sjd2kUjyS5pblo91b1J5A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyPECOlMvOY5kVR38DqffT2yRCf5KkmRrjFizggoJSsV49zlmeY
	vn/8klJkhh/zZ6Q9Y7dZqt3+UIrZeYzIn1baZEj+ToXU4mHQGwMNjo/UTzLPzsl+u0RK4wF2s6i
	hX1pJiB3RPeOOdeaSUUSszT7QP8T+DUENw+t2xfaomqNfK1F7HB6LlVcGspIUfJ6X8qPdlg==
X-Gm-Gg: Acq92OGzwkLUgsZv4GFwh6C/1vK0bDrzqlJVmuzduT2WcmnkdXRE5pQTBRDkPzvMLrv
	CVfQvEXhVRyt4sEJcwMFRYFwDwKuMG8wL8IO1rX77rVTabBoxXgh4JwJqJE2dDRBWCxJ9mtvLPD
	TzpxJvVr1tevzCXhMg71Nc3m4WOezFTzuyA8ifWHfRGZO5eLSJaOqKTVq1iebFOsVGdQptK3gah
	WgP37Qz+Z+IHcVSJYT3bCQ/MNyKrYRG2OIgyFkxXY0XvrAN4oZdcqe+wjTw1+sQB5uzwGZfyfEU
	FfR5LfiR7RBeuC0X+Q3VGRaDdfm1i6Fu/3G+7HPlM/jMThRt+SvO5n2rofXRQPp/BYWVzF1sWPY
	o9OL0Rea6DnyI+l8iy+SVcjyuomk1ODNVn+B/FaPsOKOiUACWFLG8W8o7
X-Received: by 2002:a17:90b:5904:b0:367:d850:6a5f with SMTP id 98e67ed59e1d1-36951c9f53dmr23576081a91.25.1779264197096;
        Wed, 20 May 2026 01:03:17 -0700 (PDT)
X-Received: by 2002:a17:90b:5904:b0:367:d850:6a5f with SMTP id 98e67ed59e1d1-36951c9f53dmr23576055a91.25.1779264196495;
        Wed, 20 May 2026 01:03:16 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Subject: [PATCH v15 0/3] of: parsing of multi #{iommu,msi}-cells in maps
Date: Wed, 20 May 2026 13:32:39 +0530
Message-Id: <20260520-parse_iommu_cells-v15-0-b5f99ad4e7e8@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
X-B4-Tracking: v=1; b=H4sIAJ9qDWoC/33QwU7DMAwA0F+ZcqZT7DSh4cR/IDS5jsMibetoW
 AWa+u+ku9BDysWSLftZ9l1lGZNk9bK7q1GmlNNwKQnYp53iI10+pEmhFBRqdNpoaK40Zjmk4Xy
 +HVhOp9wAG/PsOpK+J1XmrqPE9P1A395Lfkz5axh/Hjsmv1T/0ybf6KYN0LMIsxV4HXLef97ox
 KVrX4Ja0An0WvI1CXSh2GFkIksQui0KVhTaKgWFgiiRLGvpkLcoXFGmeh9goYJwDEZbEfJblPm
 jWt1VKVOoSB5BPDoH/RbVrihsq1S7UEFjBOgdm9qv5nn+BdtGt/ExAgAA
X-Change-ID: 20260301-parse_iommu_cells-1c33768aebba
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
X-Mailer: b4 0.15.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1779264185; l=11180;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=iNWcrRc8U4lM1k8ax/30YJhUEnlFBubqUx9ZeFn1nFA=;
 b=07EsmYfofxVCPU2Je9T3PGCZ5cjU9kJe1yL3BwAPeQsdVaBtAkvf00Fj0WfbPDVAxb2jPyVks
 h1aA3AbmsLXAN617RCr+2eG6fvYxmLMaxJPpDY0VZEobOFwGPKVdK0C
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Authority-Analysis: v=2.4 cv=WaY8rUhX c=1 sm=1 tr=0 ts=6a0d6ac5 cx=c_pps
 a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22
 a=VwQbUJbxAAAA:8 a=COk6AnOGAAAA:8 a=NEAV23lmAAAA:8 a=bC-a23v3AAAA:8
 a=EUspDBNiAAAA:8 a=zd2uoN0lAAAA:8 a=tA7aZXjiAAAA:8 a=7CQSdrXTAAAA:8
 a=8AirrxEcAAAA:8 a=1XWaLZrsAAAA:8 a=pGLkceISAAAA:8 a=iox4zFpeAAAA:8
 a=DBfv99YmAAAA:8 a=JfrnYn6hAAAA:8 a=cWRNjhkoAAAA:8 a=vIDDpPC5oxyFppbewhgA:9
 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22
 a=TjNXssC_j7lpFel5tvFf:22 a=FO4_E8m0qiDe52t0p3_H:22 a=kIIFJ0VLUOy1gFZzwZHL:22
 a=a-qgeE7W1pNrGK8U0ZQC:22 a=ST-jHhOKWsTCqRlWije3:22 a=WzC6qhA0u3u7Ye7llzcV:22
 a=1CNFftbPRP8L7MoqJWF3:22 a=sVa6W5Aao32NNC1mekxh:22
X-Proofpoint-GUID: gtAH-Q-Ctpe4ok5WJg2dHzqBIZkg-9K8
X-Proofpoint-ORIG-GUID: gtAH-Q-Ctpe4ok5WJg2dHzqBIZkg-9K8
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIwMDA3NiBTYWx0ZWRfX7JtfZjdd7jYD
 IOf1ASCy46AYZ6jzxXDh7ywqAPKbDnKMTQXqRGTEw+743VtqGAdBkdip3RIuR4r2WXFSWv7f4xk
 ciT2Y9fIuUgePxck8j4b1xWVjxx8JbH4N+QHQVwykK4ITuJOyh3W9b0R2rwPr2YcsFxUl17DFcb
 peX63a6JoM8JHB02paMGiEcGSO4TQcJnmL/1NjWLd9siQFWG3Lig/kRfiQAHoHAvFw2oC2D+0Bh
 9IFaAuxTdreMJ0NcZ+u8ODe/BTAPs61f4YJ4WuSQkr2T/oHX8HOUTCcctng0s9aEqtxzSpllzsm
 dV6fzfrS5MrFpJkRy3S2L/LH+Ln9eX6eG01PuHr9aLtuHARvnwGrrqNSKDkyIwfZkOIcThh+kE4
 UJGvQozbPqlM61MWbXynJ7jcfA3UhUMgoL18ampLMvMbmT9tKM1Nv/NKCGuT+lRA8hQ7DRF9tmL
 m2bPkm9qoRpzX4x11Sg==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-20_01,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 adultscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 spamscore=0
 suspectscore=0 phishscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605200076
X-purgate-ID: tlsNG-720697/1779264200-83563161-C210C7E3/0/0
X-purgate-type: clean
X-purgate-size: 11182

So far our parsing of {iommu,msi}-map properties has always blindly
assumed that the output specifiers will always have exactly 1 cell.
This typically does happen to be the case, but is not actually enforced
(and the PCI msi-map binding even explicitly states support for 0 or 1
cells) - as a result we've now ended up with dodgy DTs out in the field
which depend on this behaviour to map a 1-cell specifier for a 2-cell
provider, despite that being bogus per the bindings themselves.

Since there is some potential use[1] in being able to map at least
single input IDs to multi-cell output specifiers (and properly support
0-cell outputs as well), add support for properly parsing and using the
target nodes' #cells values, albeit with the unfortunate complication of
still having to work around expectations of the old behaviour too.
							-- Robin.

Unlike single #{}-cell, it is complex to establish a linear relation
between input 'id' and output specifier for multi-cell properties, thus
it is always expected that len never going to be > 1.

These changes have been tested on QEMU for the arm64 architecture.

Since, this would also need update in dt-schema, raised PR[2] for the
same.

[1] https://lore.kernel.org/all/20250627-video_cb-v3-0-51e18c0ffbce@quicinc.com/
[2] PR for iommu-map dtschema: https://github.com/devicetree-org/dt-schema/pull/184

V15:
  Address Sashiko AI review comments on v14:

  Patch 2:
  - [Critical] pci-imx6: pass &msi_filter (not NULL) to of_map_msi_id()
    so that of_map_id() returns -ENODEV when msi-map is absent, preventing
    the '!err_m && !msi_spec.np' path from incorrectly returning -EINVAL
  - [High] of_map_id(): explicitly set arg->np = NULL before any bypass
    path so callers can safely call of_node_put(arg->np) on all return paths
  - [Medium] of_msi_xlate(): pass msi_np directly to of_map_msi_id() and
    of_check_msi_parent() (removing the local_np/np indirection), and use
    'break' (not 'continue') when msi_spec.np is NULL so that msi-parent
    bindings are still checked when msi-map is present but has no match
  - Guard 'id_out = msi_spec.args[0]' with 'args_count > 0' in
    of_msi_xlate() to correctly handle 0-cell MSI output specifiers
  - Use of_node_get() + unconditional of_node_put() in of_msi_xlate()
    for clearer reference ownership

  Patch 3:
  - [Critical] of_map_id(): add 'cells > MAX_PHANDLE_ARGS' check before
    using cells as an array index to prevent stack buffer overflow
  - [High] of_map_id(): the MAX_PHANDLE_ARGS bound on cells also prevents
    integer overflow in the '3 + cells' length check
  - [High] of_map_id(): fix misleading bad-map workaround message from
    "assuming extra cell of 0" to "treating as 1-cell output" to accurately
    describe the actual behavior
  - [Medium] of_msi_xlate(): guard 'id_out = msi_spec.args[0]' with
    'args_count > 0' to preserve id_in for 0-cell MSI output specifiers

  Link to v14:
  https://patch.msgid.link/20260424-parse_iommu_cells-v14-0-fd02f11b6c38@oss.qualcomm.com

V14:
  - Updated Patch 2 ("of: Factor arguments passed to of_map_id() into a struct") to
    fix below two issues in of_msi_xlate() that were introduced by the API refactoring:

    1) The refactoring changed of_map_id()'s dual-purpose **target parameter to
    an explicit filter_np parameter. In of_msi_xlate(), this caused
    of_map_msi_id() to return 0 (pass-through) instead of -ENODEV when a node
    has no msi-map, terminating the device hierarchy walk prematurely before
    reaching the root complex node that has the msi-map. This broke MSI
    allocation for PCIe endpoint devices (e.g., wcn7850 Wi-Fi on ARM64).

    2) Additionally, fsl_mc_get_msi_id() passes msi_np == NULL to of_msi_xlate(),
    which would dereference NULL with the new API.

  Link to v13:
  https://patch.msgid.link/20260408-parse_iommu_cells-v13-0-fa921e92661b@oss.qualcomm.com

V13:
  - Fix bad_map handling in of_map_id(): 'cells' is re-initialized to 0
    on each loop iteration, so the !bad_map guard was insufficient, cells
    stayed 0 for all entries after the first. Fix by explicitly setting
    cells=1 when bad_map is true on every iteration.
  - Collected Acked-by from Frank Li.

  Link to v12:
  https://patch.msgid.link/20260331-parse_iommu_cells-v12-0-decfd305eea9@oss.qualcomm.com

V12:
  - Call of_node_put() unconditionally in imx_pcie_add_lut_by_rid()
    thereby addressing comments from Bjorn Helgaas.

  Link to v11:
  https://lore.kernel.org/r/20260325-parse_iommu_cells-v11-0-1fefa5c0e82c@oss.qualcomm.com

V11:
  - Added explicit filter_np parameter to of_map_id() and of_map_msi_id()
    per Dmitry Baryshkov's review feedback, making the filter explicit
    instead of overloading arg->np as both input filter and output parameter.
  - Removed of_node_put() from inside of_map_id(), making the caller responsible
    for reference management. Updated of_msi_xlate() to properly handle reference counting.
  - Collected ACKed by tags, and fixed minor typos.
  Link to v10:
  https://lore.kernel.org/r/20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com

V10:
  - Move of_map_iommu_id()/of_map_msi_id() from include/linux/of.h to
    drivers/of/base.c as out-of-line helpers per feedback from Marc Zyngier
    and Rob Herring.
  - Add kernel-doc to document both helpers for discoverability and
    usage clarity.
  - Fix of_map_msi_id() wrapper and all its callers (cdx_msi.c,
    irq-gic-its-msi-parent.c, drivers/of/irq.c) to correctly use the new
    struct of_phandle_args-based API with proper of_node_put() handling
    as per feeback from Dmitry.
  Link to v9:
  https://lore.kernel.org/r/20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com

V9:
  - Updated TO/CC list based on feedback to include all relevant
    maintainers.
  - No functional changes to the patches themselves.

  Link to V8:
  https://lore.kernel.org/all/20260226074245.3098486-1-vijayanand.jitta@oss.qualcomm.com/

V8:
  - Removed mentions of of_map_args from commit message to match code.

  Link to V7:
  https://lore.kernel.org/all/20260210101157.2145113-1-vijayanand.jitta@oss.qualcomm.com/

V7:
  - Removed of_map_id_args structure and replaced it with
    of_phandle_args as suggested by Dmitry.

  Link to V6:
  https://lore.kernel.org/all/20260121055400.937856-1-vijayanand.jitta@oss.qualcomm.com/

V6:
  - Fixed build error reported by kernel test bot.

  Link to V5:
  https://lore.kernel.org/all/20260118181125.1436036-1-vijayanand.jitta@oss.qualcomm.com/

V5:
  - Fixed Build Warnings.
  - Raised PR for iommu-map dtschema: https://github.com/devicetree-org/dt-schema/pull/184

  Link to V4:
  https://lore.kernel.org/all/20251231114257.2382820-1-vijayanand.jitta@oss.qualcomm.com/

V4:
  - Added Reviewed-by tag.
  - Resolved warnings reported by kernel test bot, minor code
    reorganization.

  Link to V3:
  https://lore.kernel.org/all/20251221213602.2413124-1-vijayanand.jitta@oss.qualcomm.com/

V3:
  - Added Reviewed-by tag.
  - Updated of_map_id_args struct as a wrapper to of_phandle_args and
    added comment description as suggested by Rob Herring.

  Link to V2:
  https://lore.kernel.org/all/20251204095530.8627-1-vijayanand.jitta@oss.qualcomm.com/

V2:
  - Incorporated the patches from Robin that does the clean implementation.
  - Dropped the patches the were adding multi-map support from this series
    as suggested.

V1:
 https://lore.kernel.org/all/cover.1762235099.git.charan.kalla@oss.qualcomm.com/

RFC:
 https://lore.kernel.org/all/20250928171718.436440-1-charan.kalla@oss.qualcomm.com/#r

Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
To: Nipun Gupta <nipun.gupta@amd.com>
To: Nikhil Agarwal <nikhil.agarwal@amd.com>
To: Joerg Roedel <joro@8bytes.org>
To: Will Deacon <will@kernel.org>
To: Robin Murphy <robin.murphy@arm.com>
To: Lorenzo Pieralisi <lpieralisi@kernel.org>
To: Marc Zyngier <maz@kernel.org>
To: Thomas Gleixner <tglx@kernel.org>
To: Rob Herring <robh@kernel.org>
To: Saravana Kannan <saravanak@kernel.org>
To: Richard Zhu <hongxing.zhu@nxp.com>
To: Lucas Stach <l.stach@pengutronix.de>
To: Krzysztof Wilczyński <kwilczynski@kernel.org>
To: Manivannan Sadhasivam <mani@kernel.org>
To: Bjorn Helgaas <bhelgaas@google.com>
To: Frank Li <Frank.Li@nxp.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
To: Pengutronix Kernel Team <kernel@pengutronix.de>
To: Fabio Estevam <festevam@gmail.com>
To: Juergen Gross <jgross@suse.com>
To: Stefano Stabellini <sstabellini@kernel.org>
To: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: linux-arm-msm@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: iommu@lists.linux.dev
Cc: linux-arm-kernel@lists.infradead.org
Cc: devicetree@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Cc: imx@lists.linux.dev
Cc: xen-devel@lists.xenproject.org

---

To: Nipun Gupta <nipun.gupta@amd.com>
To: Nikhil Agarwal <nikhil.agarwal@amd.com>
To: Joerg Roedel <joro@8bytes.org>
To: Will Deacon <will@kernel.org>
To: Robin Murphy <robin.murphy@arm.com>
To: Lorenzo Pieralisi <lpieralisi@kernel.org>
To: Marc Zyngier <maz@kernel.org>
To: Thomas Gleixner <tglx@kernel.org>
To: Rob Herring <robh@kernel.org>
To: Saravana Kannan <saravanak@kernel.org>
To: Richard Zhu <hongxing.zhu@nxp.com>
To: Lucas Stach <l.stach@pengutronix.de>
To: Krzysztof Wilczyński <kwilczynski@kernel.org>
To: Manivannan Sadhasivam <mani@kernel.org>
To: Bjorn Helgaas <bhelgaas@google.com>
To: Frank Li <Frank.Li@nxp.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
To: Pengutronix Kernel Team <kernel@pengutronix.de>
To: Fabio Estevam <festevam@gmail.com>
To: Juergen Gross <jgross@suse.com>
To: Stefano Stabellini <sstabellini@kernel.org>
To: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: linux-arm-msm@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: iommu@lists.linux.dev
Cc: linux-arm-kernel@lists.infradead.org
Cc: devicetree@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Cc: imx@lists.linux.dev
Cc: xen-devel@lists.xenproject.org

---
Charan Teja Kalla (1):
      of: Factor arguments passed to of_map_id() into a struct

Robin Murphy (2):
      of: Add convenience wrappers for of_map_id()
      of: Respect #{iommu,msi}-cells in maps

 drivers/cdx/cdx_msi.c                    |  10 +-
 drivers/iommu/of_iommu.c                 |   6 +-
 drivers/irqchip/irq-gic-its-msi-parent.c |  10 +-
 drivers/of/base.c                        | 227 +++++++++++++++++++++++++------
 drivers/of/irq.c                         |  25 +++-
 drivers/pci/controller/dwc/pci-imx6.c    |  55 ++++----
 drivers/pci/controller/pcie-apple.c      |   6 +-
 drivers/xen/grant-dma-ops.c              |   5 +-
 include/linux/of.h                       |  32 ++++-
 9 files changed, 277 insertions(+), 99 deletions(-)
---
base-commit: e98d21c170b01ddef366f023bbfcf6b31509fa83
change-id: 20260301-parse_iommu_cells-1c33768aebba

Best regards,
--  
Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>



From xen-devel-bounces@lists.xenproject.org Wed May 20 08:03:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 08:03:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313671.1583781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbtt-0002BB-RE; Wed, 20 May 2026 08:03:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313671.1583781; Wed, 20 May 2026 08:03:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbtt-0002B4-NM; Wed, 20 May 2026 08:03:33 +0000
Received: by outflank-mailman (input) for mailman id 1313671;
 Wed, 20 May 2026 08:03:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1wPbts-0002AM-Mc
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 08:03:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPbts-00ET3i-2T
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 10:03:32 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 6a0d6acd-e002-0a2a0a5209dd-0a2a45029dce-44
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 10:03:31 +0200
Received: from [205.220.168.131] (helo=mx0a-0031df01.pphosted.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 6a0d6ad1-af86-0a2a45020019-cddca8833b10-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 10:03:31 +0200
Received: from pps.filterd (m0279864.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64K77XqL1953961
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:03:29 GMT
Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com
 [209.85.216.71])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e8t3xuq82-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:03:29 +0000 (GMT)
Received: by mail-pj1-f71.google.com with SMTP id
 98e67ed59e1d1-3662668b825so9290074a91.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 01:03:29 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-369517aa6f8sm20889290a91.11.2026.05.20.01.03.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 May 2026 01:03:26 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-Id:MIME-Version:References:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	FIwRGbihw9ibmdw2sFBiy3DnC7QkudGEzjZgfV2uv2w=; b=aWVwVHnzTd6YLtiG
	xH4Okt96JuBzSmgt2+3v9vv4+yIWWzx/kbLxCpSsuaik5jk5SIPN0GjHNwXMinHs
	OBVnw1Z/CxjAbcvkecP+wPx/Gw/R7gcFU6ctu2+uj4mwYOB9WDcvNQTVyh/jOYId
	XRuj/5eTFHfO0UcC9SEfkKhzxQseCU99nGmzI5ZEvR4KkvWj9WEx/Ze1XGpaCtNw
	xAUtc1fp/YLFs42biudgbkKKi9ALDsDE6BpTCKzdybU+KR3e1HlEwzPGVQm17cL4
	A9sP0MeX9FNDV/Ylg76eYqJ6u8175Sm7AjjnNSLm3vwKq3pLFuDs4Cb3NhlDHh+e
	2t9XQg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1779264208; x=1779869008; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=FIwRGbihw9ibmdw2sFBiy3DnC7QkudGEzjZgfV2uv2w=;
        b=UifPyldGLbvXWbZYBqqo/MT4qLcE0tbyQXpGMp9hmt8+DMv047womE/PjpibSwnbsI
         mm2Kxc86q/r9aFnWcdfMN9QJsoEw5k6pwUqHBrq89sXKLsDRc5vbJcdfAI+aWbGSpH+Z
         EXIDT/rl2Nrzla0y8LCbfM7dTvEV0Sn/O/rC0MqXXtkO8wY1ZsBIEsGIRo2vUABIwL4q
         xJ7JYTJKZwWGthx2Y3LrEwdjC1+IeT0Oqc0tw8jsfBRA1gUskcn6YFV49mSeXP2omZYZ
         ufFQrM27LkPHvX+lmGIN99qNbBuNcASOAeIhSfe0ooqSeaoCtYCHTZ24HNa8uLjdotBm
         zcnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779264208; x=1779869008;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=FIwRGbihw9ibmdw2sFBiy3DnC7QkudGEzjZgfV2uv2w=;
        b=gHTby4DMNsX0uk3mh4Aw18IYVwmzKioToV6kZ57XlwmW/fxfC4DLp3sIg7+EuQCsXp
         HEY0OKMKeQXtzemhzCc1vaird5HeXogCMIsZci8o/6QjjMF09PNg4sAOllaSD9hJdv/E
         +7e75Nz5WDQO+tU7MDb5i2UCfUmZVUp7eB8o/8lZk7NNw0NH9lPI0fElpTPl9wXfpxOQ
         MUfKMeFsoRLcWA4uFF9BaPTp/OheOj1VdyP1jhahr8lWUzdWjLUpVK3fKbQLc7pZJaqh
         ItBDXZooHxfcdPVL/cDzk9BoTYcZebVEn/3M3MoNVYhMiGLGSWZrGDgna29mACF4rrzd
         lerg==
X-Forwarded-Encrypted: i=1; AFNElJ+4lr8d+PHBjZJhhr5ug0kab3wwh0Snj2FNpouYtVqstuTIHIHmExIMRJxVSQhKdEFB0I5imhCZ0+Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyg52pKYFjr9YAqO8v9HcSTHk8gl5YAwEbwkpk3YjCAAl6MHTdZ
	dafZecUxfktk1u0KF5dFNzBxHbmshUTylyzyaDnolBZ4xhUk0EUmawtzXzqapTt/BUqmKwYQ8BR
	0V5cSMlDyv8UPLZtuTwNMpo0sP3xcWVGplKMR+TRY0kwJK4EPYWLALsF4dh/ONKkyITjTTA==
X-Gm-Gg: Acq92OERY/kIeCt+8l+fqO+h/ISa6bk534dwOG5m0Vk1s95s4F8AzR+z7EfQe5ko6bi
	kXXHr3XBDW7Xbif4pGd5zm7Pi+6KpAbtZDb7QCNh9yVDB8Lh3v0bGBgML7sSgzO74/ocNkeXJO1
	Qcj5jF+7ibPiNpAI0eKdIDS+Xb8RU4imyTSZrTq7jQU2Ffon+uIVs6q7Lw/wihUjqy4E7U8ytQY
	1MTeguTzX4HCpHmXlR2/6/OnQJp5JacVVhIBO0u4CxNkRthz1bzj0Ctcvdsngx9jf9mMu8RDgWn
	IXxVJecfGsXWMPDApay8FuLksXKGzmrGYyJkhFwIPYb3gUDys3ad4+Paa/8WT/rihVObAIf1TPo
	+R16C6tcJ9lNt9DVWb1sQSYlaxOQCntt6/Xt4Dd0zM4LcaiwFtDecsHsa
X-Received: by 2002:a17:90b:260b:b0:368:ed92:6f3 with SMTP id 98e67ed59e1d1-36951b89773mr24767452a91.18.1779264208484;
        Wed, 20 May 2026 01:03:28 -0700 (PDT)
X-Received: by 2002:a17:90b:260b:b0:368:ed92:6f3 with SMTP id 98e67ed59e1d1-36951b89773mr24767391a91.18.1779264207963;
        Wed, 20 May 2026 01:03:27 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Wed, 20 May 2026 13:32:40 +0530
Subject: [PATCH v15 1/3] of: Add convenience wrappers for of_map_id()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260520-parse_iommu_cells-v15-1-b5f99ad4e7e8@oss.qualcomm.com>
References: <20260520-parse_iommu_cells-v15-0-b5f99ad4e7e8@oss.qualcomm.com>
In-Reply-To: <20260520-parse_iommu_cells-v15-0-b5f99ad4e7e8@oss.qualcomm.com>
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
X-Mailer: b4 0.15.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1779264185; l=8692;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=6WwVJdgDC+Pm2Sux0Nsas8KIvED10B5HRfeqtTU/lhc=;
 b=Avwv4njbY9ZiIIe1YQtbsdcqBiwZRYWWqv+UaxTUCSBN/Un8571eB3pAOLYzMSYrhdxLe30qj
 87MQDMJX7ENBWSVj9dLyx0medcxa5u10fEAW2+WnBP1fCf57QH/sMpV
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Authority-Analysis: v=2.4 cv=WaY8rUhX c=1 sm=1 tr=0 ts=6a0d6ad1 cx=c_pps
 a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22
 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=8AirrxEcAAAA:8 a=1XWaLZrsAAAA:8
 a=EUspDBNiAAAA:8 a=f4O9XJQV64orvU1ydW8A:9 a=QEXdDO2ut3YA:10
 a=uKXjsCUrEbL0IQVhDsJ9:22 a=a-qgeE7W1pNrGK8U0ZQC:22 a=ST-jHhOKWsTCqRlWije3:22
X-Proofpoint-GUID: StolocHZ2T5puvt-8kp8imfgcNnuOQh6
X-Proofpoint-ORIG-GUID: StolocHZ2T5puvt-8kp8imfgcNnuOQh6
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIwMDA3NiBTYWx0ZWRfXwYtPQWZwNrja
 lUCEzhIXc/SNW/3oJActrZRu7vSPhOOU6ftuUbl+xTKWeZbP22Papp6zd4Um82D8wOEY0FYrfC8
 qm8MfgaSVHE/J32U4YFpBGp3d1Ub7+IJdh8J39SRi1AoodU5rPWPqVBxengp/MNR2qa+a83IMy7
 0/J3z7NT6beP1d2CKAtYOgMPXta++4rs+Q5krnRHmFjAJg82asU0VUUVXuuzzqWf2RkGr78QXpU
 SrBBnI0aZ4QkydZJEn9cwTFxoWyDA5lI8xRLEJPGNryrUAgHU4ha/FR2sVM03bmZu1ozVlN/cyH
 R4cKq9uqFpk0ijhsFypcu1O76SUkd32mkDlzwUvxI/s+ASh1jxXpqiphw2Ncgk2p4S5OFhsj8r3
 XC1iyPAQO/5HrLEb0g6Q9jyn58sy4p7zIAvq/PWG403GCswtCkkFpKYPFJcQqhg7cue1N3dTVjB
 oQSdY74lgB1NlA3Lqzg==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-20_01,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 adultscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 spamscore=0
 suspectscore=0 phishscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605200076
X-purgate-ID: tlsNG-720697/1779264211-A9971161-E5BA72AA/0/0
X-purgate-type: clean
X-purgate-size: 8739

From: Robin Murphy <robin.murphy@arm.com>

Since we now have quite a few users parsing "iommu-map" and "msi-map"
properties, give them some wrappers to conveniently encapsulate the
appropriate sets of property names. This will also make it easier to
then change of_map_id() to correctly account for specifier cells.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/cdx/cdx_msi.c                    |  5 ++---
 drivers/iommu/of_iommu.c                 |  4 +---
 drivers/irqchip/irq-gic-its-msi-parent.c |  2 +-
 drivers/of/base.c                        | 38 ++++++++++++++++++++++++++++++++
 drivers/of/irq.c                         |  3 +--
 drivers/pci/controller/dwc/pci-imx6.c    |  6 ++---
 drivers/pci/controller/pcie-apple.c      |  3 +--
 drivers/xen/grant-dma-ops.c              |  3 +--
 include/linux/of.h                       | 18 +++++++++++++++
 9 files changed, 65 insertions(+), 17 deletions(-)

diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
index 91b95422b263..78edb7308856 100644
--- a/drivers/cdx/cdx_msi.c
+++ b/drivers/cdx/cdx_msi.c
@@ -128,10 +128,9 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
 	int ret;
 
 	/* Retrieve device ID from requestor ID using parent device */
-	ret = of_map_id(parent->of_node, cdx_dev->msi_dev_id, "msi-map", "msi-map-mask",
-			NULL, &dev_id);
+	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
 	if (ret) {
-		dev_err(dev, "of_map_id failed for MSI: %d\n", ret);
+		dev_err(dev, "of_map_msi_id failed for MSI: %d\n", ret);
 		return ret;
 	}
 
diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index 6b989a62def2..a511ecf21fcd 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -48,9 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
 	struct of_phandle_args iommu_spec = { .args_count = 1 };
 	int err;
 
-	err = of_map_id(master_np, *id, "iommu-map",
-			 "iommu-map-mask", &iommu_spec.np,
-			 iommu_spec.args);
+	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
 	if (err)
 		return err;
 
diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
index d36b278ae66c..b63343a227a9 100644
--- a/drivers/irqchip/irq-gic-its-msi-parent.c
+++ b/drivers/irqchip/irq-gic-its-msi-parent.c
@@ -180,7 +180,7 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
 
 	struct device_node *msi_ctrl __free(device_node) = NULL;
 
-	return of_map_id(dev->of_node, dev->id, "msi-map", "msi-map-mask", &msi_ctrl, dev_id);
+	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
 }
 
 static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
diff --git a/drivers/of/base.c b/drivers/of/base.c
index a650c91897cc..1e9b9692c0d9 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2221,3 +2221,41 @@ int of_map_id(const struct device_node *np, u32 id,
 	return 0;
 }
 EXPORT_SYMBOL_GPL(of_map_id);
+
+/**
+ * of_map_iommu_id - Translate an ID using "iommu-map" bindings.
+ * @np: root complex device node.
+ * @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
+ *      stream/device ID) used as the lookup key in the iommu-map table.
+ * @target: optional pointer to a target device node.
+ * @id_out: optional pointer to receive the translated ID.
+ *
+ * Convenience wrapper around of_map_id() using "iommu-map" and "iommu-map-mask".
+ *
+ * Return: 0 on success or a standard error code on failure.
+ */
+int of_map_iommu_id(const struct device_node *np, u32 id,
+		    struct device_node **target, u32 *id_out)
+{
+	return of_map_id(np, id, "iommu-map", "iommu-map-mask", target, id_out);
+}
+EXPORT_SYMBOL_GPL(of_map_iommu_id);
+
+/**
+ * of_map_msi_id - Translate an ID using "msi-map" bindings.
+ * @np: root complex device node.
+ * @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
+ *      stream/device ID) used as the lookup key in the msi-map table.
+ * @target: optional pointer to a target device node.
+ * @id_out: optional pointer to receive the translated ID.
+ *
+ * Convenience wrapper around of_map_id() using "msi-map" and "msi-map-mask".
+ *
+ * Return: 0 on success or a standard error code on failure.
+ */
+int of_map_msi_id(const struct device_node *np, u32 id,
+		  struct device_node **target, u32 *id_out)
+{
+	return of_map_id(np, id, "msi-map", "msi-map-mask", target, id_out);
+}
+EXPORT_SYMBOL_GPL(of_map_msi_id);
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index 6367c67732d2..e37c1b3f8736 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -817,8 +817,7 @@ u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in)
 	 * "msi-map" or an "msi-parent" property.
 	 */
 	for (parent_dev = dev; parent_dev; parent_dev = parent_dev->parent) {
-		if (!of_map_id(parent_dev->of_node, id_in, "msi-map",
-				"msi-map-mask", msi_np, &id_out))
+		if (!of_map_msi_id(parent_dev->of_node, id_in, msi_np, &id_out))
 			break;
 		if (!of_check_msi_parent(parent_dev->of_node, msi_np))
 			break;
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index 1034ac5c5f5c..c863c7b02289 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -1128,8 +1128,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 	u32 sid = 0;
 
 	target = NULL;
-	err_i = of_map_id(dev->of_node, rid, "iommu-map", "iommu-map-mask",
-			  &target, &sid_i);
+	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
 	if (target) {
 		of_node_put(target);
 	} else {
@@ -1142,8 +1141,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 	}
 
 	target = NULL;
-	err_m = of_map_id(dev->of_node, rid, "msi-map", "msi-map-mask",
-			  &target, &sid_m);
+	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
 
 	/*
 	 *   err_m      target
diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
index 2d92fc79f6dd..a0937b7b3c4d 100644
--- a/drivers/pci/controller/pcie-apple.c
+++ b/drivers/pci/controller/pcie-apple.c
@@ -764,8 +764,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
 		pci_name(pdev->bus->self), port->idx);
 
-	err = of_map_id(port->pcie->dev->of_node, rid, "iommu-map",
-			"iommu-map-mask", NULL, &sid);
+	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
 	if (err)
 		return err;
 
diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
index c2603e700178..1b7696b2d762 100644
--- a/drivers/xen/grant-dma-ops.c
+++ b/drivers/xen/grant-dma-ops.c
@@ -325,8 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
 		struct pci_dev *pdev = to_pci_dev(dev);
 		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
 
-		if (of_map_id(np, rid, "iommu-map", "iommu-map-mask", &iommu_spec.np,
-				iommu_spec.args)) {
+		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
 			dev_dbg(dev, "Cannot translate ID\n");
 			return -ESRCH;
 		}
diff --git a/include/linux/of.h b/include/linux/of.h
index 959786f8f196..721525334b4b 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -468,6 +468,12 @@ int of_map_id(const struct device_node *np, u32 id,
 	       const char *map_name, const char *map_mask_name,
 	       struct device_node **target, u32 *id_out);
 
+int of_map_iommu_id(const struct device_node *np, u32 id,
+		    struct device_node **target, u32 *id_out);
+
+int of_map_msi_id(const struct device_node *np, u32 id,
+		  struct device_node **target, u32 *id_out);
+
 phys_addr_t of_dma_get_max_cpu_address(struct device_node *np);
 
 struct kimage;
@@ -948,6 +954,18 @@ static inline int of_map_id(const struct device_node *np, u32 id,
 	return -EINVAL;
 }
 
+static inline int of_map_iommu_id(const struct device_node *np, u32 id,
+				  struct device_node **target, u32 *id_out)
+{
+	return -EINVAL;
+}
+
+static inline int of_map_msi_id(const struct device_node *np, u32 id,
+				struct device_node **target, u32 *id_out)
+{
+	return -EINVAL;
+}
+
 static inline phys_addr_t of_dma_get_max_cpu_address(struct device_node *np)
 {
 	return PHYS_ADDR_MAX;

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed May 20 08:03:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 08:03:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313675.1583790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbu6-0002aO-2v; Wed, 20 May 2026 08:03:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313675.1583790; Wed, 20 May 2026 08:03:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbu5-0002Zd-Vh; Wed, 20 May 2026 08:03:45 +0000
Received: by outflank-mailman (input) for mailman id 1313675;
 Wed, 20 May 2026 08:03:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1wPbu4-0002X1-73
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 08:03:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPbu3-00EpqC-J4
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 10:03:43 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 6a0d6adf-e002-0a2a0a5209dd-0a2a450baf78-0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 10:03:43 +0200
Received: from [205.220.180.131] (helo=mx0b-0031df01.pphosted.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 6a0d6add-212f-0a2a450b0019-cddcb483d8b4-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 10:03:42 +0200
Received: from pps.filterd (m0279872.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64K76Mn62143776
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:03:41 GMT
Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com
 [209.85.216.71])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e8t3tkq9b-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:03:40 +0000 (GMT)
Received: by mail-pj1-f71.google.com with SMTP id
 98e67ed59e1d1-365fc4636bbso10095286a91.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 01:03:40 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-369517aa6f8sm20889290a91.11.2026.05.20.01.03.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 May 2026 01:03:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-Id:MIME-Version:References:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	zAX0bs0UOHJYNMBN18iZfCUndGbpOKo08NnjEnlmcqM=; b=nfn0VbQaRMQ3aUJi
	qWigyQpoqyIrJBUtb/2DDjGv2eYvomIF5q9queEEbSoMNsCkdfo4Zklk/9Jybk5h
	DfQevKWPJZCtkZ4ZB394E2ee2QNX7XMZ8CKZxXXn0aeVq3pjUe/588ucxlpfZ82s
	LGRZR9HQEdaMHEcdRIvW/yCYB6AtPrIY60Xab+VecCEa2e4uOasTTfejQAGg5s2J
	U8u1I404AtKi5QRqEpZKe0NySnKhGOR+zYXRKkyp6RqQM5bR9AqhYNdu9M09nfqw
	JRoUINtS1CF4pkP96EEYdfPHtL+TsSHrAfCXTmJ7X+spp9pGGJCEfWoy665uISII
	rVkMkA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1779264220; x=1779869020; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=zAX0bs0UOHJYNMBN18iZfCUndGbpOKo08NnjEnlmcqM=;
        b=BvH8F7OQ0N5CYN5ffC3/E4dAf7YFk2eq1QFNe2HXT7ugc5sFNe8xUsWwUrVrqZGiVJ
         4wFan450JvKOKHol7zjaS9qz7bF3DLTTcr2ckfX7/Q/DKcQpX4y0phCY7553pGZdYXXv
         PIejnz88SKniVXMJ3F7dl8G2XhePnA1yd7jCnDJw2DDBf2VwoS7XgQk8IKELas+wlbK/
         5yryOEXNPc0ZiZU4xQyZ6dFWGVfTzJTRbgGyl6XxdrUzy9ZtgInLyZg3BHxj5z1o632I
         zrxVoZQd0C55kwgsY+gf2PxkwP+tTqmyHh6Pm3LMsaocsdb3h3NL62AlFoYwZpQ3waGI
         boow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779264220; x=1779869020;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=zAX0bs0UOHJYNMBN18iZfCUndGbpOKo08NnjEnlmcqM=;
        b=LyFinNADiyHNyESLXKEAuhAY0vpk7fBXcSgofRgjTknSkZmMsh5BP006wEVLvMQHi6
         qgztslsIq2FNvraQnNjUg9Nt7S1uAi+5vAwUOqGsCo+4qA6t1f6wPc2c+rXb1aMKPPXJ
         tjxdnhIs7VuWSWeUS0fRW5IRIDCvuafXqrfHuBrOzDmXp2FNhwRyfWXKyBWgnK4b5DLA
         BA5t/pxeelX619ZOdlnXU+PTQzAjXyLqaw+b6dJV2ogXYRbJsYTv1qox2VQd33gYm7kq
         KQRHnJLqHDySBIKBgL9sklh6MIX1kO77EFwfb3mRQxgAjl0cjnliJLk7Wgk5Y3vP/Lb4
         J/rw==
X-Forwarded-Encrypted: i=1; AFNElJ8ORzolnY52f6G1ICIKwqsxvACTwFELuw9mImylRfEOI8Sv3NI1kfoh460sEJuM0F+uIV/bjFGgX4U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZE9j5snEAUEWSYuITj/KGRMwPSGyjZdzbJKMtFXhKvJvNuyS+
	9nn1fWx/yDdyG4/+xYfbBxdtwNHknalgjuEvv0YjPE3FrvKsacM0Ka/2VDTLk+wYZZR84Ipa211
	pavmW+Opd8vp0TrMWJx74pcdmubUqBKm42vj+quaSXTLOSN4B6KOQR3IgkvliIKdv0jI6bg==
X-Gm-Gg: Acq92OE+KHj3ec9p8+SZ0SnAdhgIp8Sn5YnksMkgUfkERXpnfMq8puUDSFwR1Gr8iiC
	qqfh8n7pobUOw+++8ZjRD4j/3Wc0IZ6l/m5IipuzA7dKYfI+9jLU+vmYh0EJZo98h1lRwNNJ8Hb
	HzDLufXBiErVkk8qIDJk/fxNDHKubAhRm45MdQSbr4ZkXctcuiTHgYsc3zSR56x7LHoP9rfHKYU
	Sc2NRxb0OUXShI+glg4uxtNYDx3eIy2UELMmPYLBW2OW6B2mtKYzC5tzIMiw68DC6lrhloSKClZ
	Ms1qhWIEooe2OZWQ+sdqQ9pHM6wJQLDaW2Cdr/TZI0WrzAwuiXneRDonhjeU5hZ7JbE0PA9oxyd
	fAmkUgXzWBE2c9rYqRI0vTsB/r+JoTYdTnntUfEL0EVZyOle0KcgjgeAI
X-Received: by 2002:a17:90b:5284:b0:367:bafd:9431 with SMTP id 98e67ed59e1d1-369519e1633mr22595503a91.8.1779264219608;
        Wed, 20 May 2026 01:03:39 -0700 (PDT)
X-Received: by 2002:a17:90b:5284:b0:367:bafd:9431 with SMTP id 98e67ed59e1d1-369519e1633mr22595478a91.8.1779264218991;
        Wed, 20 May 2026 01:03:38 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Wed, 20 May 2026 13:32:41 +0530
Subject: [PATCH v15 2/3] of: Factor arguments passed to of_map_id() into a
 struct
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Message-Id: <20260520-parse_iommu_cells-v15-2-b5f99ad4e7e8@oss.qualcomm.com>
References: <20260520-parse_iommu_cells-v15-0-b5f99ad4e7e8@oss.qualcomm.com>
In-Reply-To: <20260520-parse_iommu_cells-v15-0-b5f99ad4e7e8@oss.qualcomm.com>
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
X-Mailer: b4 0.15.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1779264185; l=18841;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=6eRMuWmhXjbnSJYvhbFJSC2KZDtKKNJ6RzoqGThjaBE=;
 b=H2g9vgK02I3T4O6EdZXAAnBqjw3fraE5pi5lJGY4/8oSX9KrrD03/2/7CvTY5mLSSZL0oWoT+
 H/nqjclTyZlBS2tPFxoTfXmitFEc3PNM9lTC2gn2+3kLY7BGJX/hilE
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Authority-Analysis: v=2.4 cv=feCdDUQF c=1 sm=1 tr=0 ts=6a0d6adc cx=c_pps
 a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22
 a=EUspDBNiAAAA:8 a=8AirrxEcAAAA:8 a=VwQbUJbxAAAA:8 a=YNKo5iN9BcXwmsqDYIQA:9
 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22
 a=ST-jHhOKWsTCqRlWije3:22
X-Proofpoint-ORIG-GUID: PU5iuC52mgl5TM-d7Dx4d9m8PUQec0QG
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIwMDA3NiBTYWx0ZWRfXwLWxWNV1MOdi
 UHBrsJItdx067vMmpM4lNUxMtnNE6EXHHCbfA0nDicMIHqmlL3u4ogG0Go0DHp47WjIqThyQ7hk
 zLKkiANy1OwrxseAIhpKfWJB2KYA3n/VhyUJ7s4v8bXoWtfDva7OdYC/iJ2U8kgn4VhlfhhBDSQ
 OneOP1j7YOT3cGQgExiwP3LKFVjHoHTUo3mQVNSuEr2gw3y0hOiPZMKcAoXowWt1HTC4+gDrvqA
 jIRcXiQbOav7ywAyOapgEeUBYvJlt1HpYuc0UUyXh/0527Zn7ovUWzmn1rC9zelpuUP055Or88Z
 NKabKtcJXYpKVR6YUNgep0eXIrGvz6GSqUkqUULHLSl3/cBXUviD0ProOMMMpP6VcNbORaEtNfi
 Qvjxg0FOU0dYB8tNdnQluMqaP5kNwW4lLakD0cmq3unfUkwH9nOUMgH1ewDbSkFhvmTHZdAroQA
 /Fuc8/5PHMw9vv9/5lA==
X-Proofpoint-GUID: PU5iuC52mgl5TM-d7Dx4d9m8PUQec0QG
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-20_01,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 adultscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 bulkscore=0
 priorityscore=1501 clxscore=1015 suspectscore=0 phishscore=0 impostorscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605200076
X-purgate-ID: tlsNG-42698a/1779264223-21183F3B-9FBB80BA/0/0
X-purgate-type: clean
X-purgate-size: 18902

From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>

Change of_map_id() to take a pointer to struct of_phandle_args
instead of passing target device node and translated IDs separately.
Update all callers accordingly.

Add an explicit filter_np parameter to of_map_id() and of_map_msi_id()
to separate the filter input from the output. Previously, the target
parameter served dual purpose: as an input filter (if non-NULL, only
match entries targeting that node) and as an output (receiving the
matched node with a reference held). Now filter_np is the explicit
input filter and arg->np is the pure output.

Previously, of_map_id() would call of_node_put() on the matched node
when a filter was provided, making reference ownership inconsistent.
Remove this internal of_node_put() call so that of_map_id() now always
transfers ownership of the matched node reference to the caller via
arg->np. Callers are now consistently responsible for releasing this
reference with of_node_put(arg->np) when done.

Acked-by: Frank Li <Frank.Li@nxp.com>
Suggested-by: Rob Herring (Arm) <robh@kernel.org>
Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/cdx/cdx_msi.c                    |  7 ++--
 drivers/iommu/of_iommu.c                 |  4 +-
 drivers/irqchip/irq-gic-its-msi-parent.c | 10 +++--
 drivers/of/base.c                        | 71 ++++++++++++++++++--------------
 drivers/of/irq.c                         | 24 ++++++++---
 drivers/pci/controller/dwc/pci-imx6.c    | 53 ++++++++++++------------
 drivers/pci/controller/pcie-apple.c      |  5 ++-
 drivers/xen/grant-dma-ops.c              |  4 +-
 include/linux/of.h                       | 16 ++++---
 9 files changed, 114 insertions(+), 80 deletions(-)

diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
index 78edb7308856..c8d832b0b1f5 100644
--- a/drivers/cdx/cdx_msi.c
+++ b/drivers/cdx/cdx_msi.c
@@ -121,22 +121,23 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
 			   struct device *dev,
 			   int nvec, msi_alloc_info_t *info)
 {
+	struct of_phandle_args msi_spec = {};
 	struct cdx_device *cdx_dev = to_cdx_device(dev);
 	struct device *parent = cdx_dev->cdx->dev;
 	struct msi_domain_info *msi_info;
-	u32 dev_id;
 	int ret;
 
 	/* Retrieve device ID from requestor ID using parent device */
-	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
+	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &msi_spec);
 	if (ret) {
 		dev_err(dev, "of_map_msi_id failed for MSI: %d\n", ret);
 		return ret;
 	}
+	of_node_put(msi_spec.np);
 
 #ifdef GENERIC_MSI_DOMAIN_OPS
 	/* Set the device Id to be passed to the GIC-ITS */
-	info->scratchpad[0].ul = dev_id;
+	info->scratchpad[0].ul = msi_spec.args[0];
 #endif
 
 	msi_info = msi_get_domain_info(msi_domain->parent);
diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index a511ecf21fcd..a18bb60f6f3d 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -45,10 +45,10 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
 				     struct device *dev,
 				     const u32 *id)
 {
-	struct of_phandle_args iommu_spec = { .args_count = 1 };
+	struct of_phandle_args iommu_spec = {};
 	int err;
 
-	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
+	err = of_map_iommu_id(master_np, *id, &iommu_spec);
 	if (err)
 		return err;
 
diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
index b63343a227a9..b9257103a999 100644
--- a/drivers/irqchip/irq-gic-its-msi-parent.c
+++ b/drivers/irqchip/irq-gic-its-msi-parent.c
@@ -152,6 +152,8 @@ static int its_v5_pci_msi_prepare(struct irq_domain *domain, struct device *dev,
 static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u32 *dev_id,
 				phys_addr_t *pa)
 {
+	struct device_node *msi_ctrl = NULL;
+	struct of_phandle_args msi_spec = {};
 	struct of_phandle_iterator it;
 	int ret;
 
@@ -178,9 +180,11 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
 		}
 	}
 
-	struct device_node *msi_ctrl __free(device_node) = NULL;
-
-	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
+	ret = of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, &msi_spec);
+	if (!ret)
+		*dev_id = msi_spec.args[0];
+	of_node_put(msi_spec.np);
+	return ret;
 }
 
 static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 1e9b9692c0d9..d658c2620135 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2122,36 +2122,40 @@ int of_find_last_cache_level(unsigned int cpu)
  * @id: device ID to map.
  * @map_name: property name of the map to use.
  * @map_mask_name: optional property name of the mask to use.
- * @target: optional pointer to a target device node.
- * @id_out: optional pointer to receive the translated ID.
+ * @filter_np: pointer to an optional filter node, or NULL to allow bypass.
+ *	If non-NULL, the map property must exist (-ENODEV if absent). If
+ *	*filter_np is also non-NULL, only entries targeting that node match.
+ * @arg: pointer to a &struct of_phandle_args for the result. On success,
+ *	@arg->args[0] will contain the translated ID. If a map entry was
+ *	matched, @arg->np will be set to the target node with a reference
+ *	held that the caller must release with of_node_put().
  *
  * Given a device ID, look up the appropriate implementation-defined
  * platform ID and/or the target device which receives transactions on that
- * ID, as per the "iommu-map" and "msi-map" bindings. Either of @target or
- * @id_out may be NULL if only the other is required. If @target points to
- * a non-NULL device node pointer, only entries targeting that node will be
- * matched; if it points to a NULL value, it will receive the device node of
- * the first matching target phandle, with a reference held.
+ * ID, as per the "iommu-map" and "msi-map" bindings.
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_id(const struct device_node *np, u32 id,
 	       const char *map_name, const char *map_mask_name,
-	       struct device_node **target, u32 *id_out)
+	       struct device_node * const *filter_np, struct of_phandle_args *arg)
 {
 	u32 map_mask, masked_id;
 	int map_len;
 	const __be32 *map = NULL;
 
-	if (!np || !map_name || (!target && !id_out))
+	if (!np || !map_name || !arg)
 		return -EINVAL;
+	/* Ensure bypass/no-match success never returns a stale target node. */
+	arg->np = NULL;
 
 	map = of_get_property(np, map_name, &map_len);
 	if (!map) {
-		if (target)
+		if (filter_np)
 			return -ENODEV;
 		/* Otherwise, no map implies no translation */
-		*id_out = id;
+		arg->args[0] = id;
+		arg->args_count = 1;
 		return 0;
 	}
 
@@ -2193,18 +2197,14 @@ int of_map_id(const struct device_node *np, u32 id,
 		if (!phandle_node)
 			return -ENODEV;
 
-		if (target) {
-			if (*target)
-				of_node_put(phandle_node);
-			else
-				*target = phandle_node;
-
-			if (*target != phandle_node)
-				continue;
+		if (filter_np && *filter_np && *filter_np != phandle_node) {
+			of_node_put(phandle_node);
+			continue;
 		}
 
-		if (id_out)
-			*id_out = masked_id - id_base + out_base;
+		arg->np = phandle_node;
+		arg->args[0] = masked_id - id_base + out_base;
+		arg->args_count = 1;
 
 		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
 			np, map_name, map_mask, id_base, out_base,
@@ -2213,11 +2213,11 @@ int of_map_id(const struct device_node *np, u32 id,
 	}
 
 	pr_info("%pOF: no %s translation for id 0x%x on %pOF\n", np, map_name,
-		id, target && *target ? *target : NULL);
+		id, filter_np && *filter_np ? *filter_np : NULL);
 
 	/* Bypasses translation */
-	if (id_out)
-		*id_out = id;
+	arg->args[0] = id;
+	arg->args_count = 1;
 	return 0;
 }
 EXPORT_SYMBOL_GPL(of_map_id);
@@ -2227,17 +2227,19 @@ EXPORT_SYMBOL_GPL(of_map_id);
  * @np: root complex device node.
  * @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
  *      stream/device ID) used as the lookup key in the iommu-map table.
- * @target: optional pointer to a target device node.
- * @id_out: optional pointer to receive the translated ID.
+ * @arg: pointer to a &struct of_phandle_args for the result. On success,
+ *	@arg->args[0] contains the translated ID. If a map entry was matched,
+ *	@arg->np holds a reference to the target node that the caller must
+ *	release with of_node_put().
  *
  * Convenience wrapper around of_map_id() using "iommu-map" and "iommu-map-mask".
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_iommu_id(const struct device_node *np, u32 id,
-		    struct device_node **target, u32 *id_out)
+		    struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "iommu-map", "iommu-map-mask", target, id_out);
+	return of_map_id(np, id, "iommu-map", "iommu-map-mask", NULL, arg);
 }
 EXPORT_SYMBOL_GPL(of_map_iommu_id);
 
@@ -2246,16 +2248,21 @@ EXPORT_SYMBOL_GPL(of_map_iommu_id);
  * @np: root complex device node.
  * @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
  *      stream/device ID) used as the lookup key in the msi-map table.
- * @target: optional pointer to a target device node.
- * @id_out: optional pointer to receive the translated ID.
+ * @filter_np: pointer to an optional filter node, or NULL to allow bypass.
+ *	If non-NULL, the map property must exist (-ENODEV if absent). If
+ *	*filter_np is also non-NULL, only entries targeting that node match.
+ * @arg: pointer to a &struct of_phandle_args for the result. On success,
+ *	@arg->args[0] contains the translated ID. If a map entry was matched,
+ *	@arg->np holds a reference to the target node that the caller must
+ *	release with of_node_put().
  *
  * Convenience wrapper around of_map_id() using "msi-map" and "msi-map-mask".
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_msi_id(const struct device_node *np, u32 id,
-		  struct device_node **target, u32 *id_out)
+		  struct device_node * const *filter_np, struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "msi-map", "msi-map-mask", target, id_out);
+	return of_map_id(np, id, "msi-map", "msi-map-mask", filter_np, arg);
 }
 EXPORT_SYMBOL_GPL(of_map_msi_id);
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index e37c1b3f8736..e63a43be6c4a 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -796,14 +796,15 @@ static int of_check_msi_parent(struct device_node *dev_node, struct device_node
 /**
  * of_msi_xlate - map a MSI ID and find relevant MSI controller node
  * @dev: device for which the mapping is to be done.
- * @msi_np: Pointer to target MSI controller node
+ * @msi_np: Pointer to target MSI controller node, or NULL if the caller
+ *           only needs the translated ID without receiving the controller node.
+ *           If non-NULL and pointing to a non-NULL node, only entries targeting
+ *           that node will be matched. If non-NULL and pointing to NULL, it will
+ *           receive the first matching target node with a reference held.
  * @id_in: Device ID.
  *
  * Walk up the device hierarchy looking for devices with a "msi-map"
  * or "msi-parent" property. If found, apply the mapping to @id_in.
- * If @msi_np points to a non-NULL device node pointer, only entries targeting
- * that node will be matched; if it points to a NULL value, it will receive the
- * device node of the first matching target phandle, with a reference held.
  *
  * Returns: The mapped MSI id.
  */
@@ -817,8 +818,21 @@ u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in)
 	 * "msi-map" or an "msi-parent" property.
 	 */
 	for (parent_dev = dev; parent_dev; parent_dev = parent_dev->parent) {
-		if (!of_map_msi_id(parent_dev->of_node, id_in, msi_np, &id_out))
+		struct of_phandle_args msi_spec = {};
+
+		if (!of_map_msi_id(parent_dev->of_node, id_in, msi_np, &msi_spec)) {
+			if (msi_spec.np) {
+				/* msi-map matched: use the translated ID and target node */
+				if (msi_spec.args_count > 0)
+					id_out = msi_spec.args[0];
+				if (msi_np && !*msi_np)
+					*msi_np = of_node_get(msi_spec.np);
+				of_node_put(msi_spec.np);
+			}
+			/* msi-map present but no match → stop walking */
 			break;
+		}
+		/* -ENODEV: msi-map absent → check for msi-parent */
 		if (!of_check_msi_parent(parent_dev->of_node, msi_np))
 			break;
 	}
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index c863c7b02289..105038c15aa8 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -1121,41 +1121,42 @@ static void imx_pcie_remove_lut(struct imx_pcie *imx_pcie, u16 rid)
 
 static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 {
+	struct of_phandle_args iommu_spec = {};
+	struct of_phandle_args msi_spec = {};
 	struct device *dev = imx_pcie->pci->dev;
-	struct device_node *target;
+	struct device_node *msi_filter = NULL;
 	u32 sid_i, sid_m;
 	int err_i, err_m;
 	u32 sid = 0;
 
-	target = NULL;
-	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
-	if (target) {
-		of_node_put(target);
-	} else {
-		/*
-		 * "target == NULL && err_i == 0" means RID out of map range.
-		 * Use 1:1 map RID to streamID. Hardware can't support this
-		 * because the streamID is only 6 bits
-		 */
-		err_i = -EINVAL;
+	err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec);
+	if (!err_i) {
+		if (!iommu_spec.np)
+			/*
+			 * "iommu_spec.np == NULL && err_i == 0" means RID out of map
+			 * range. Use 1:1 map RID to streamID. Hardware can't support
+			 * this because the streamID is only 6 bits.
+			 */
+			err_i = -EINVAL;
+		else
+			sid_i = iommu_spec.args[0];
 	}
+	of_node_put(iommu_spec.np);
 
-	target = NULL;
-	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
-
+	err_m = of_map_msi_id(dev->of_node, rid, &msi_filter, &msi_spec);
 	/*
-	 *   err_m      target
-	 *	0	NULL		RID out of range. Use 1:1 map RID to
-	 *				streamID, Current hardware can't
-	 *				support it, so return -EINVAL.
-	 *      != 0    NULL		msi-map does not exist, use built-in MSI
-	 *	0	!= NULL		Get correct streamID from RID
-	 *	!= 0	!= NULL		Invalid combination
+	 *   err_m      msi_spec.np
+	 *	0	!= NULL		Got correct streamID from RID via msi-map
+	 *	0	NULL		msi-map present but RID out of range
+	 *	-ENODEV	NULL		msi-map absent, use built-in MSI controller
 	 */
-	if (!err_m && !target)
-		return -EINVAL;
-	else if (target)
-		of_node_put(target); /* Find streamID map entry for RID in msi-map */
+	if (!err_m) {
+		if (!msi_spec.np)
+			/* msi-map present but RID out of range */
+			return -EINVAL;
+		sid_m = msi_spec.args[0];
+	}
+	of_node_put(msi_spec.np);
 
 	/*
 	 * msi-map        iommu-map
diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
index a0937b7b3c4d..c2cffc0659f4 100644
--- a/drivers/pci/controller/pcie-apple.c
+++ b/drivers/pci/controller/pcie-apple.c
@@ -755,6 +755,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 {
 	u32 sid, rid = pci_dev_id(pdev);
 	struct apple_pcie_port *port;
+	struct of_phandle_args iommu_spec = {};
 	int idx, err;
 
 	port = apple_pcie_get_port(pdev);
@@ -764,10 +765,12 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
 		pci_name(pdev->bus->self), port->idx);
 
-	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
+	err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec);
 	if (err)
 		return err;
 
+	of_node_put(iommu_spec.np);
+	sid = iommu_spec.args[0];
 	mutex_lock(&port->pcie->lock);
 
 	idx = bitmap_find_free_region(port->sid_map, port->sid_map_sz, 0);
diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
index 1b7696b2d762..2aa1a772a0ff 100644
--- a/drivers/xen/grant-dma-ops.c
+++ b/drivers/xen/grant-dma-ops.c
@@ -319,13 +319,13 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
 					   struct device_node *np,
 					   domid_t *backend_domid)
 {
-	struct of_phandle_args iommu_spec = { .args_count = 1 };
+	struct of_phandle_args iommu_spec = {};
 
 	if (dev_is_pci(dev)) {
 		struct pci_dev *pdev = to_pci_dev(dev);
 		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
 
-		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
+		if (of_map_iommu_id(np, rid, &iommu_spec)) {
 			dev_dbg(dev, "Cannot translate ID\n");
 			return -ESRCH;
 		}
diff --git a/include/linux/of.h b/include/linux/of.h
index 721525334b4b..ea50b45d9ff7 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -466,13 +466,15 @@ bool of_console_check(const struct device_node *dn, char *name, int index);
 
 int of_map_id(const struct device_node *np, u32 id,
 	       const char *map_name, const char *map_mask_name,
-	       struct device_node **target, u32 *id_out);
+	       struct device_node * const *filter_np,
+	       struct of_phandle_args *arg);
 
 int of_map_iommu_id(const struct device_node *np, u32 id,
-		    struct device_node **target, u32 *id_out);
+		    struct of_phandle_args *arg);
 
 int of_map_msi_id(const struct device_node *np, u32 id,
-		  struct device_node **target, u32 *id_out);
+		  struct device_node * const *filter_np,
+		  struct of_phandle_args *arg);
 
 phys_addr_t of_dma_get_max_cpu_address(struct device_node *np);
 
@@ -949,19 +951,21 @@ static inline void of_property_clear_flag(struct property *p, unsigned long flag
 
 static inline int of_map_id(const struct device_node *np, u32 id,
 			     const char *map_name, const char *map_mask_name,
-			     struct device_node **target, u32 *id_out)
+			     struct device_node * const *filter_np,
+			     struct of_phandle_args *arg)
 {
 	return -EINVAL;
 }
 
 static inline int of_map_iommu_id(const struct device_node *np, u32 id,
-				  struct device_node **target, u32 *id_out)
+				  struct of_phandle_args *arg)
 {
 	return -EINVAL;
 }
 
 static inline int of_map_msi_id(const struct device_node *np, u32 id,
-				struct device_node **target, u32 *id_out)
+				struct device_node * const *filter_np,
+				struct of_phandle_args *arg)
 {
 	return -EINVAL;
 }

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed May 20 08:03:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 08:03:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313680.1583798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbuG-00031B-CM; Wed, 20 May 2026 08:03:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313680.1583798; Wed, 20 May 2026 08:03:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbuG-000314-9N; Wed, 20 May 2026 08:03:56 +0000
Received: by outflank-mailman (input) for mailman id 1313680;
 Wed, 20 May 2026 08:03:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1wPbuF-00030L-6a
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 08:03:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPbuE-00G7uL-Ia
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 10:03:54 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 6a0d6ae6-bab6-0a2a0a5309dd-0a2a450bcc6c-26
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 10:03:54 +0200
Received: from [205.220.180.131] (helo=mx0b-0031df01.pphosted.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 6a0d6ae8-212f-0a2a450b0019-cddcb4832eac-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 10:03:54 +0200
Received: from pps.filterd (m0279870.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64K7SP9m1739704
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:03:52 GMT
Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com
 [209.85.216.70])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e8t3qbmvm-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:03:52 +0000 (GMT)
Received: by mail-pj1-f70.google.com with SMTP id
 98e67ed59e1d1-365ff2ab7beso4683234a91.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 01:03:52 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-369517aa6f8sm20889290a91.11.2026.05.20.01.03.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 May 2026 01:03:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-Id:MIME-Version:References:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	gXN8U+lu0TOvT7NP9tTGGGw5W2W1/7IB2Iy+LKjXH2U=; b=luM+++5cgw90nkNo
	5Zd0jhfTVMw5CDRRadpgCFomLuNTbxIHLp3U6lTjTQCcWznOS5C4xB0FQmcY1ljZ
	OgL3dXMNPmNOcMbfrRnPZQwnHm3KbTosZ6tHrH0IQT6poxwkexxlBTId/cDR/cem
	GEE6UBFCLGcQ5j7zMioKhjmkXcTp0g5D4wwrp9NEsW0wCJKxy5x1584PDOmMjFu9
	johrHH0PgwKI6aix2qxpesOck+IjR/gDowjJUKKXsdtxR/QfKcrc2Pdp8UsfBg8/
	6ZPI0f/UGDNUP2WXxfwRCQMxP4m7AvLTxSblN9cQABYRxslL4HvBKx0xad/ZihTf
	S2ed7g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1779264231; x=1779869031; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=gXN8U+lu0TOvT7NP9tTGGGw5W2W1/7IB2Iy+LKjXH2U=;
        b=MBqw0V4jy4gzfp+UGlyZptNaedtz0vcQmhsC6BPKmw1N/Fi065j+z80/5Cgk69xizA
         JSGV85mWqwgr+NUSXxlnsJakkC8g/GO48jUfVt4nWHzbFUnkC8pKT6loxAPWaLqBTPVy
         E7JZf243fE3MiASjsI5M9qlQvoD+qiij5d6sJ7lV7BVOb4ZG07LDNKhZKA6qta0wjwy8
         byr91ab+pagCAcVQjzngOMW1nyeOi1oEnEJ64cyzEYczarJYs6B+P5qWRLBF74fgrSLs
         3uvkNt1fOQRytvO+VpSk9cCMuQup16oNTYiJSOX/Yk/MgYdQ7yA8TlnuluRfMzHJuOgT
         2p0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779264231; x=1779869031;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=gXN8U+lu0TOvT7NP9tTGGGw5W2W1/7IB2Iy+LKjXH2U=;
        b=hU0qz/UduWI68MKvxly9/86Q115Y8h+V0kRGLprGbLKT3bwgJpaPdjJ9wRyx/neCjq
         g5pndEvsgrH3GzUnEw405gh6L2XyNTrUs/c/qmM6ehdfWFX6PeHjW3hCM+MWLiobQ/xJ
         MdAZ/VHS64y3gkLmMGmqG6DI/dc4ZeQgBTyuZLBcHqroXuDZiD16EVw5ka39ANJjzug4
         Xs7c+tWWZXJoqFyqK5k6Fs8wqT0+Mbs+dnJySNbzO82yZT2z9EfPTjnniGKXGTG447KV
         MvtkHUFi9YXHskwM0FJOe+qozjtox84b3OCOyGMJ6Y5vk7NH3H6AY3HugK+ACoWCFsB6
         xdqA==
X-Forwarded-Encrypted: i=1; AFNElJ/iQJJ1QIWwSxACZEcgSWY2efPRg0ukFGsLwm/IRaGgq8+/KwhhuqxomQOywfmM2IBeaUU+gO5xoV0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyDRdgP04uojewKH09eUHQ2Dme/zmgomloIbLGaUqPAJEN6QUfN
	Ge4qQxLITNMhKNsS+xpY+pgRBS2XVMAlw9VhyzupI9Aq+tl0VUHTgAepDzl3UoGVk8WCBa/ilbW
	W36rZzAFdL7Ny3ltXRCSL+L1MN9ivvBMEfAM43BgD/H/4rAHGaNDsJHIidEheMnW4GSK5eQ==
X-Gm-Gg: Acq92OF/I9ncjTxt+qko0BQJGl9Qrdnri+KyTkmSxzyahpN+SgaObyneGGGkhqgFcCa
	UXn+Sa7TBfl5gtDN0des03hPySF44igwUFjBDSr6NRV2hrFNhGKWS44d7ziSFeE+yia2jEST/Ot
	/W/YyxE0pgDAqxjlBHem6wVvjwjffHvQqHhq9AmD2DNiPiRofLfE0Rx4KRnT0gdenihhvqWTmsw
	FJ4KgyW01a8t5EDfzjYiik4qj1yueGayNcaRe166HCoDOGh72zI4hCPE/MwmE8LvJs9fzcl0lv5
	F7wPd+M4dFpkxlzUbhQw95oJfPmhRA4s8PFWTNgToCLE+icC4WrgNaTew3ELAzT4ZtReIaHrhF/
	v2xZelmeDBYAurvE1ifqU4ssubLUy3f8nTQvknVxJmyWC0KIyx5NgrdBl
X-Received: by 2002:a17:90b:38c9:b0:369:9469:aeba with SMTP id 98e67ed59e1d1-3699469b41cmr11587701a91.1.1779264231298;
        Wed, 20 May 2026 01:03:51 -0700 (PDT)
X-Received: by 2002:a17:90b:38c9:b0:369:9469:aeba with SMTP id 98e67ed59e1d1-3699469b41cmr11587664a91.1.1779264230586;
        Wed, 20 May 2026 01:03:50 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Wed, 20 May 2026 13:32:42 +0530
Subject: [PATCH v15 3/3] of: Respect #{iommu,msi}-cells in maps
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260520-parse_iommu_cells-v15-3-b5f99ad4e7e8@oss.qualcomm.com>
References: <20260520-parse_iommu_cells-v15-0-b5f99ad4e7e8@oss.qualcomm.com>
In-Reply-To: <20260520-parse_iommu_cells-v15-0-b5f99ad4e7e8@oss.qualcomm.com>
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
X-Mailer: b4 0.15.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1779264185; l=12523;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=xwYkAEs+q6jRw+I3dHPltl1MmPPWsBwiOXNPNgKt/0c=;
 b=wcATq9lX5Bq1e8erTyBpni5Dih/s1c6wO9/NnG4qxR1ffvxl+OPEk6rtMC5rr4W4VoKcAWrsQ
 FdmlXhXN/pYDkytoi0wtNZgLMf9D1M6bGdq1x4YOiNvy+TxTUK7PV8y
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Proofpoint-GUID: 29FMm-Cl_aVgQUlfrOW5VikvhV-mWiL9
X-Authority-Analysis: v=2.4 cv=LcMMLDfi c=1 sm=1 tr=0 ts=6a0d6ae8 cx=c_pps
 a=0uOsjrqzRL749jD1oC5vDA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22
 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=9707C7GnR82a18xSEiYA:9 a=QEXdDO2ut3YA:10
 a=mQ_c8vxmzFEMiUWkPHU9:22 a=a-qgeE7W1pNrGK8U0ZQC:22
X-Proofpoint-ORIG-GUID: 29FMm-Cl_aVgQUlfrOW5VikvhV-mWiL9
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIwMDA3NiBTYWx0ZWRfX3bwDKyymN2ei
 okqtmslm7SxvtwsxMosUHT9hQ5f2jFy70LzavHneOTkz5jctFC1XWpNK3w+eo9u0X3wZgVTxiU3
 VWfKQ9snZUr4L/FcfMwWAXpFPmOnjhmlpcGgvgEFXpap3KXwiEHfr84VpmnHdwQAJzN1/Evqvks
 Kip1jwxlkX5Ucxh9X6M8WKhrcRZ6pBN1+YXSCMJj1hCJEsEr4g+5Kqe2IzGJfJxs34jrwgyRspE
 yOQYc4Vvm7d4u8TakyKUi52Cn5sZoE/HSUiYhQAp2WGxqkvDBWO9ZLA92ZqJNXLAEmxnz/AMIbQ
 npeZ2wSVvFmGgROyNSjoTn5/I9x3LPsTDaXwsPBz52TtNsrnKCcrYcFycnAe0pvKmxJ2GBU5ixN
 0H+RwbdB9aKVZC+d3y/mUele9EGqvV/Nhtvezyfy9t6BaxoYTrJ/303i6ee0IfJRv3lDxGo8lC/
 KM44pEWg1KvgHERbMzQ==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-20_01,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 suspectscore=0 phishscore=0 spamscore=0 priorityscore=1501 clxscore=1015
 bulkscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 impostorscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605200076
X-purgate-ID: tlsNG-42698a/1779264234-21F84F3B-2466D821/0/0
X-purgate-type: clean
X-purgate-size: 12570

From: Robin Murphy <robin.murphy@arm.com>

So far our parsing of {iommu,msi}-map properties has always blindly
assumed that the output specifiers will always have exactly 1 cell.
This typically does happen to be the case, but is not actually enforced
(and the PCI msi-map binding even explicitly states support for 0 or 1
cells) - as a result we've now ended up with dodgy DTs out in the field
which depend on this behaviour to map a 1-cell specifier for a 2-cell
provider, despite that being bogus per the bindings themselves.

Since there is some potential use in being able to map at least single
input IDs to multi-cell output specifiers (and properly support 0-cell
outputs as well), add support for properly parsing and using the target
nodes' #cells values, albeit with the unfortunate complication of still
having to work around expectations of the old behaviour too.

Since there are multi-cell output specifiers, the callers of of_map_id()
may need to get the exact cell output value for further processing.
Update of_map_id() to set args_count in the output to reflect the actual
number of output specifier cells.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/of/base.c  | 166 +++++++++++++++++++++++++++++++++++++++++------------
 include/linux/of.h |   6 +-
 2 files changed, 134 insertions(+), 38 deletions(-)

diff --git a/drivers/of/base.c b/drivers/of/base.c
index d658c2620135..f436e2676381 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2116,19 +2116,49 @@ int of_find_last_cache_level(unsigned int cpu)
 	return cache_level;
 }
 
+/*
+ * Some DTs have an iommu-map targeting a 2-cell IOMMU node while
+ * specifying only 1 cell. Fortunately they all consist of value '1'
+ * as the 2nd cell entry with the same target, so check for that pattern.
+ *
+ * Example:
+ *	IOMMU node:
+ *		#iommu-cells = <2>;
+ *
+ *	Device node:
+ *		iommu-map = <0x0000 &smmu 0x0000 0x1>,
+ *			    <0x0100 &smmu 0x0100 0x1>;
+ */
+static bool of_check_bad_map(const __be32 *map, int len)
+{
+	__be32 phandle = map[1];
+
+	if (len % 4)
+		return false;
+	for (int i = 0; i < len; i += 4) {
+		if (map[i + 1] != phandle || map[i + 3] != cpu_to_be32(1))
+			return false;
+	}
+	return true;
+}
+
 /**
  * of_map_id - Translate an ID through a downstream mapping.
  * @np: root complex device node.
  * @id: device ID to map.
  * @map_name: property name of the map to use.
+ * @cells_name: property name of target specifier cells.
  * @map_mask_name: optional property name of the mask to use.
  * @filter_np: pointer to an optional filter node, or NULL to allow bypass.
  *	If non-NULL, the map property must exist (-ENODEV if absent). If
  *	*filter_np is also non-NULL, only entries targeting that node match.
  * @arg: pointer to a &struct of_phandle_args for the result. On success,
- *	@arg->args[0] will contain the translated ID. If a map entry was
- *	matched, @arg->np will be set to the target node with a reference
- *	held that the caller must release with of_node_put().
+ *	@arg->args_count will be set to the number of output specifier cells
+ *	as defined by @cells_name in the target node, and
+ *	@arg->args[0..args_count-1] will contain the translated output
+ *	specifier values. If a map entry was matched, @arg->np will be set
+ *	to the target node with a reference held that the caller must release
+ *	with of_node_put().
  *
  * Given a device ID, look up the appropriate implementation-defined
  * platform ID and/or the target device which receives transactions on that
@@ -2137,11 +2167,13 @@ int of_find_last_cache_level(unsigned int cpu)
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_id(const struct device_node *np, u32 id,
-	       const char *map_name, const char *map_mask_name,
+	       const char *map_name, const char *cells_name,
+	       const char *map_mask_name,
 	       struct device_node * const *filter_np, struct of_phandle_args *arg)
 {
 	u32 map_mask, masked_id;
-	int map_len;
+	int map_bytes, map_len, offset = 0;
+	bool bad_map = false;
 	const __be32 *map = NULL;
 
 	if (!np || !map_name || !arg)
@@ -2149,7 +2181,7 @@ int of_map_id(const struct device_node *np, u32 id,
 	/* Ensure bypass/no-match success never returns a stale target node. */
 	arg->np = NULL;
 
-	map = of_get_property(np, map_name, &map_len);
+	map = of_get_property(np, map_name, &map_bytes);
 	if (!map) {
 		if (filter_np)
 			return -ENODEV;
@@ -2159,11 +2191,9 @@ int of_map_id(const struct device_node *np, u32 id,
 		return 0;
 	}
 
-	if (!map_len || map_len % (4 * sizeof(*map))) {
-		pr_err("%pOF: Error: Bad %s length: %d\n", np,
-			map_name, map_len);
-		return -EINVAL;
-	}
+	if (map_bytes % sizeof(*map))
+		goto err_map_len;
+	map_len = map_bytes / sizeof(*map);
 
 	/* The default is to select all bits. */
 	map_mask = 0xffffffff;
@@ -2176,39 +2206,93 @@ int of_map_id(const struct device_node *np, u32 id,
 		of_property_read_u32(np, map_mask_name, &map_mask);
 
 	masked_id = map_mask & id;
-	for ( ; map_len > 0; map_len -= 4 * sizeof(*map), map += 4) {
+
+	while (offset < map_len) {
 		struct device_node *phandle_node;
-		u32 id_base = be32_to_cpup(map + 0);
-		u32 phandle = be32_to_cpup(map + 1);
-		u32 out_base = be32_to_cpup(map + 2);
-		u32 id_len = be32_to_cpup(map + 3);
+		u32 id_base, phandle, id_len, id_off, cells = 0;
+		const __be32 *out_base;
+
+		if (map_len - offset < 2)
+			goto err_map_len;
+
+		id_base = be32_to_cpup(map + offset);
 
 		if (id_base & ~map_mask) {
-			pr_err("%pOF: Invalid %s translation - %s-mask (0x%x) ignores id-base (0x%x)\n",
-				np, map_name, map_name,
-				map_mask, id_base);
+			pr_err("%pOF: Invalid %s translation - %s (0x%x) ignores id-base (0x%x)\n",
+			       np, map_name, map_mask_name, map_mask, id_base);
 			return -EFAULT;
 		}
 
-		if (masked_id < id_base || masked_id >= id_base + id_len)
-			continue;
-
+		phandle = be32_to_cpup(map + offset + 1);
 		phandle_node = of_find_node_by_phandle(phandle);
 		if (!phandle_node)
 			return -ENODEV;
 
+		if (bad_map) {
+			cells = 1;
+		} else if (of_property_read_u32(phandle_node, cells_name, &cells)) {
+			pr_err("%pOF: missing %s property\n", phandle_node, cells_name);
+			of_node_put(phandle_node);
+			return -EINVAL;
+		}
+
+		if (cells > MAX_PHANDLE_ARGS) {
+			pr_err("%pOF: %s cell count %d exceeds maximum\n",
+			       phandle_node, cells_name, cells);
+			of_node_put(phandle_node);
+			return -EINVAL;
+		}
+
+		if (offset == 0 && cells == 2) {
+			bad_map = of_check_bad_map(map, map_len);
+			if (bad_map) {
+				pr_warn_once("%pOF: %s has 1-cell entries targeting 2-cell %s, treating as 1-cell output\n",
+					     np, map_name, cells_name);
+				cells = 1;
+			}
+		}
+
+		if (map_len - offset < 3 + cells) {
+			of_node_put(phandle_node);
+			goto err_map_len;
+		}
+
+		out_base = map + offset + 2;
+		offset += 3 + cells;
+
+		id_len = be32_to_cpup(map + offset - 1);
+		id_off = masked_id - id_base;
+		if (masked_id < id_base || id_off >= id_len) {
+			of_node_put(phandle_node);
+			continue;
+		}
+		if (id_len > 1 && cells > 1) {
+			/*
+			 * With 1 output cell we reasonably assume its value
+			 * has a linear relationship to the input; with more,
+			 * we'd need help from the provider to know what to do.
+			 */
+			pr_err("%pOF: Unsupported %s - cannot handle %d-ID range with %d-cell output specifier\n",
+			       np, map_name, id_len, cells);
+			of_node_put(phandle_node);
+			return -EINVAL;
+		}
+
 		if (filter_np && *filter_np && *filter_np != phandle_node) {
 			of_node_put(phandle_node);
 			continue;
 		}
 
 		arg->np = phandle_node;
-		arg->args[0] = masked_id - id_base + out_base;
-		arg->args_count = 1;
+		for (int i = 0; i < cells; i++)
+			arg->args[i] = id_off + be32_to_cpu(out_base[i]);
+		arg->args_count = cells;
 
 		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
-			np, map_name, map_mask, id_base, out_base,
-			id_len, id, masked_id - id_base + out_base);
+			np, map_name, map_mask, id_base,
+			cells ? be32_to_cpup(out_base) : 0,
+			id_len, id,
+			cells ? id_off + be32_to_cpup(out_base) : id_off);
 		return 0;
 	}
 
@@ -2219,6 +2303,10 @@ int of_map_id(const struct device_node *np, u32 id,
 	arg->args[0] = id;
 	arg->args_count = 1;
 	return 0;
+
+err_map_len:
+	pr_err("%pOF: Error: Bad %s length: %d\n", np, map_name, map_bytes);
+	return -EINVAL;
 }
 EXPORT_SYMBOL_GPL(of_map_id);
 
@@ -2228,18 +2316,21 @@ EXPORT_SYMBOL_GPL(of_map_id);
  * @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
  *      stream/device ID) used as the lookup key in the iommu-map table.
  * @arg: pointer to a &struct of_phandle_args for the result. On success,
- *	@arg->args[0] contains the translated ID. If a map entry was matched,
- *	@arg->np holds a reference to the target node that the caller must
- *	release with of_node_put().
+ *	@arg->args_count will be set to the number of output specifier cells
+ *	and @arg->args[0..args_count-1] will contain the translated output
+ *	specifier values. If a map entry was matched, @arg->np holds a
+ *	reference to the target node that the caller must release with
+ *	of_node_put().
  *
- * Convenience wrapper around of_map_id() using "iommu-map" and "iommu-map-mask".
+ * Convenience wrapper around of_map_id() using "iommu-map", "#iommu-cells",
+ * and "iommu-map-mask".
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_iommu_id(const struct device_node *np, u32 id,
 		    struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "iommu-map", "iommu-map-mask", NULL, arg);
+	return of_map_id(np, id, "iommu-map", "#iommu-cells", "iommu-map-mask", NULL, arg);
 }
 EXPORT_SYMBOL_GPL(of_map_iommu_id);
 
@@ -2252,17 +2343,20 @@ EXPORT_SYMBOL_GPL(of_map_iommu_id);
  *	If non-NULL, the map property must exist (-ENODEV if absent). If
  *	*filter_np is also non-NULL, only entries targeting that node match.
  * @arg: pointer to a &struct of_phandle_args for the result. On success,
- *	@arg->args[0] contains the translated ID. If a map entry was matched,
- *	@arg->np holds a reference to the target node that the caller must
- *	release with of_node_put().
+ *	@arg->args_count will be set to the number of output specifier cells
+ *	and @arg->args[0..args_count-1] will contain the translated output
+ *	specifier values. If a map entry was matched, @arg->np holds a
+ *	reference to the target node that the caller must release with
+ *	of_node_put().
  *
- * Convenience wrapper around of_map_id() using "msi-map" and "msi-map-mask".
+ * Convenience wrapper around of_map_id() using "msi-map", "#msi-cells",
+ * and "msi-map-mask".
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_msi_id(const struct device_node *np, u32 id,
 		  struct device_node * const *filter_np, struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "msi-map", "msi-map-mask", filter_np, arg);
+	return of_map_id(np, id, "msi-map", "#msi-cells", "msi-map-mask", filter_np, arg);
 }
 EXPORT_SYMBOL_GPL(of_map_msi_id);
diff --git a/include/linux/of.h b/include/linux/of.h
index ea50b45d9ff7..374b249766a2 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -465,7 +465,8 @@ const char *of_prop_next_string(const struct property *prop, const char *cur);
 bool of_console_check(const struct device_node *dn, char *name, int index);
 
 int of_map_id(const struct device_node *np, u32 id,
-	       const char *map_name, const char *map_mask_name,
+	       const char *map_name, const char *cells_name,
+	       const char *map_mask_name,
 	       struct device_node * const *filter_np,
 	       struct of_phandle_args *arg);
 
@@ -950,7 +951,8 @@ static inline void of_property_clear_flag(struct property *p, unsigned long flag
 }
 
 static inline int of_map_id(const struct device_node *np, u32 id,
-			     const char *map_name, const char *map_mask_name,
+			     const char *map_name, const char *cells_name,
+			     const char *map_mask_name,
 			     struct device_node * const *filter_np,
 			     struct of_phandle_args *arg)
 {

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed May 20 08:06:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 08:06:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313694.1583807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbwF-0003yt-Nb; Wed, 20 May 2026 08:05:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313694.1583807; Wed, 20 May 2026 08:05:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPbwF-0003yk-Ko; Wed, 20 May 2026 08:05:59 +0000
Received: by outflank-mailman (input) for mailman id 1313694;
 Wed, 20 May 2026 08:05:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1wPbwD-0003yb-NV
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 08:05:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPbwD-00353W-3J
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 10:05:57 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 6a0d6b5f-2eae-0a2a0a5409dd-0a2a4506b4aa-16
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 10:05:56 +0200
Received: from [205.220.168.131] (helo=mx0a-0031df01.pphosted.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 6a0d6b62-7371-0a2a45060019-cddca88386aa-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 10:05:56 +0200
Received: from pps.filterd (m0279866.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64K7Z6L4629753
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:05:54 GMT
Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com
 [209.85.215.200])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e8t3nur5d-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:05:54 +0000 (GMT)
Received: by mail-pg1-f200.google.com with SMTP id
 41be03b00d2f7-c82ba4715b6so4808960a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 01:05:54 -0700 (PDT)
Received: from [10.219.57.109] ([202.46.23.19])
 by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-c82bb11683fsm18637582a12.26.2026.05.20.01.05.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 01:05:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	h4o4tguLJ2M8UFVCSQAOmrgjGYGYAaNNp+BkOJSYljs=; b=ZaRSheFuPELGrHrU
	5bq5fVMfyqResKiQ70JQ9GcmVcwVO++BNdtAGa8VE2RcuXKOS1fdXMzwTJtDbph5
	Kdz4noyWWRWd6d23UxPQMSbSlVPYhaCaEpU8/dR7MIrPBCAKu4u2eeLWD7A9h8Ru
	U3reVb2kI1+5mBFvP29oQxg4eDYm25BSrQS33OCcAsX2dxLWXMzwkxEAzAllr/T5
	SbMuaMtk4zoKuAm4QahqJUCu0TasoEKPmouhj+BzAYKQPlph23Nquuv+5EWqtMuO
	plY7E2DXbNgLQ53IfLC/cnaAcIDD30ZwYB/zcqQY/p+D8n8MDMmrXgdUON6gqfI7
	uk+kjg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1779264354; x=1779869154; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=h4o4tguLJ2M8UFVCSQAOmrgjGYGYAaNNp+BkOJSYljs=;
        b=Wz18DJLibymhAWuJX1rNdsy3JgQLYghh/o593ZUNsMEVcJjLpnB67O6GGmvjCyWiE9
         z+X3hXaKEjGgeNlJnUQGVXs+U71L8sLqkkWnB6uCotYIs/4Mvlyh0/ZHDOxjN+skcgKb
         hXNRktvlzG7v368S2XqnIlhfF3/xekfGF9/cybKCD/4jhBBqGiJ21uZhnHDa/N6FXRjx
         hcEVJwMUiStqRXlM9yUxo6iF0s+shNH12po2CAWGJ+he/qcmt4m4Rwvi0OkKiogp188u
         9jC+2w6W0wgjZszNIOi5QARjhqtk7hKg+BBnnpi9cu0qr0tmRj6uJzU0zfc2bkTO94cS
         w3aA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779264354; x=1779869154;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=h4o4tguLJ2M8UFVCSQAOmrgjGYGYAaNNp+BkOJSYljs=;
        b=IDhw6fdsEWXG9sRRZV27/cW5oS0b+BwW4kLogMC9rmWbmXHLa98L1lDaZ15ZOJsett
         cpj/qDQZ1OsrCIFNWjADt7UOassqziKdTg0KE+zcXTKRuh7xMrzSs4KGmoil3SE76aIU
         ujs+9l9n4WNbvoW8CoonAhXUF4K7F0wQuF9o+Hu8xkuNFEHIAwNyyGCX2FhTgwe7mR1W
         v2bWnnqojpl2xRn8nVteGnEgKoyojHR8T8TYe2ByPF+1W/kd8N8veLcgOEf/Gh1d/uzP
         cSY0JnS8yM9ISuwKjUq7htt6kiqd1goZ6KUzGcBgbgJBdAki5bMqMswcFYXrV67xcKzb
         lMVg==
X-Forwarded-Encrypted: i=1; AFNElJ9vmHMxIKp6GPIAErNgKld7+cdLfE9p8irg7n78Na7fYsM9omM2ULnn8r1V9ymbkxeWWXCVfGumRog=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxXqiyCscgqs1yfn3gjAw3LKoz6k59r0xu0hegShd6ftcF8FXKX
	c2Ux3YfpiSVzGAYV2jpjBVz2BxVnnWe+x6+su0rg1r/GyvHkBVIi1OagZs2YEQepS7ykYqHGjXj
	HiQ+a067M2duN0jTZYyNuXq5Hd7RLZc1FxJVfll8fsHRHOLLYWqrhc+WRzpvTEisHehTZng==
X-Gm-Gg: Acq92OGn2AFAyP6djNga4R4lZ/68E/HOCV7nFRu4EDNSRnnIVTwyCVq0JorlD6Adg1g
	qZxhpZqh77uv+hKtbP1kGZGzh1PvPgs47w7XDzHnnDeUKscSMH5DtlbQkU6e4AxHWD0yRMepcXr
	SBK4Q1tIWciwCj/5I9OFyLvI7S06vumldBvXesHspjJzu8rT13G8FauIIDdmpRWySNDK8YmhJmn
	Hi9QJE8xQcJwOXJsG8rzHy51dsMt7eDjjT3jHq2bz6WOsQ28xkiIptRiz9hd3LmtiZjl3WWrD6F
	FRLcXfJ3SjkoU6UxStsOq/CgHAppOekKfQE86bVuJIFKx0lk2G41133IdAK8EFlK4RfDKeC65Ut
	rhbNEWitSumTDoltAyfRtI2MoMkSmVx6YeoCmdToXLl0/ar7t3qdkU6LzckARgOQ368E=
X-Received: by 2002:a05:6a20:7d9f:b0:398:ac0d:9a0b with SMTP id adf61e73a8af0-3b22ecb031amr25955115637.50.1779264353644;
        Wed, 20 May 2026 01:05:53 -0700 (PDT)
X-Received: by 2002:a05:6a20:7d9f:b0:398:ac0d:9a0b with SMTP id adf61e73a8af0-3b22ecb031amr25955066637.50.1779264353199;
        Wed, 20 May 2026 01:05:53 -0700 (PDT)
Message-ID: <11b91838-9b24-4a62-8760-fdeb3703afc4@oss.qualcomm.com>
Date: Wed, 20 May 2026 13:35:30 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v14 0/3] of: parsing of multi #{iommu,msi}-cells in maps
To: Rob Herring <robh@kernel.org>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal
 <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas
 <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski
 <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
References: <20260424-parse_iommu_cells-v14-0-fd02f11b6c38@oss.qualcomm.com>
 <20260506221915.GA3290640-robh@kernel.org>
Content-Language: en-US
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
In-Reply-To: <20260506221915.GA3290640-robh@kernel.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIwMDA3NiBTYWx0ZWRfX+aM4afpsp/wZ
 YJiY6BhZzXEmIVwbienWjat6KeyMU0US7xxff90viZIFVhCg5SihNsl+7xUmDvp4Cc80w5AXSKV
 5R1F5u9y0NfOkV2Lv+4gqSZN8R3OPWRnVXsdU1qwaEwc4J4F/7Be1GvBPhprMgeEBhR4Rv/RITf
 YZ2ufh3hKDp6zBBeGssZqJH/oDOQyCQmxTNOgSUjgzVDVHyh8Y8N7VgeS7GIbJ4Rv/l18qvvYCs
 pQaPTTVo99RAlnohCC5WJvigeMDvXc2XXi5xrl6W72lWTCUfR5qoF4nDF2pqGnBl12QjR3oEfez
 e4tmpVh6Esqfq1m7aSKRHBdQEoiOdDUIjIw1yvN7zNhGXOAiPb/PvgfhaqPqm6xU12+5YwG2t6H
 zr0Pkmx+MyttbklG1jl2U3z1g4XEtQFcvYtLOBA3u4B1pB1y0EUO9TpJjD/yXnPVyaAq12zVFFr
 rsmzkUlvQvnhw/G07Xw==
X-Proofpoint-GUID: zEeL0ux16ZTk98mKvaRsx4xv_rt-TteS
X-Proofpoint-ORIG-GUID: zEeL0ux16ZTk98mKvaRsx4xv_rt-TteS
X-Authority-Analysis: v=2.4 cv=Mr9iLWae c=1 sm=1 tr=0 ts=6a0d6b62 cx=c_pps
 a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=j4ogTh8yFefVWWEFDRgCtg==:17
 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22
 a=c92rfblmAAAA:8 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=zmrd7r8un3QtD10oEDQA:9
 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 a=GvGzcOZaWPEFPQC_NcjD:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-20_01,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 lowpriorityscore=0 adultscore=0 priorityscore=1501 malwarescore=0
 clxscore=1015 bulkscore=0 impostorscore=0 spamscore=0 phishscore=0
 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605200076
X-purgate-ID: tlsNG-16d1c6/1779264356-8FD7AD75-E81BF915/0/0
X-purgate-type: clean
X-purgate-size: 1756



On 5/7/2026 3:49 AM, Rob Herring wrote:
> On Fri, Apr 24, 2026 at 11:26:07AM +0530, Vijayanand Jitta wrote:
>> So far our parsing of {iommu,msi}-map properties has always blindly
>> assumed that the output specifiers will always have exactly 1 cell.
>> This typically does happen to be the case, but is not actually enforced
>> (and the PCI msi-map binding even explicitly states support for 0 or 1
>> cells) - as a result we've now ended up with dodgy DTs out in the field
>> which depend on this behaviour to map a 1-cell specifier for a 2-cell
>> provider, despite that being bogus per the bindings themselves.
>>
>> Since there is some potential use[1] in being able to map at least
>> single input IDs to multi-cell output specifiers (and properly support
>> 0-cell outputs as well), add support for properly parsing and using the
>> target nodes' #cells values, albeit with the unfortunate complication of
>> still having to work around expectations of the old behaviour too.
>> 							-- Robin.
>>
>> Unlike single #{}-cell, it is complex to establish a linear relation
>> between input 'id' and output specifier for multi-cell properties, thus
>> it is always expected that len never going to be > 1.
>>
>> These changes have been tested on QEMU for the arm64 architecture.
>>
>> Since, this would also need update in dt-schema, raised PR[2] for the
>> same.
> 
> Sashiko has some thoughts on the series:
> 
> https://sashiko.dev/#/patchset/20260424-parse_iommu_cells-v14-0-fd02f11b6c38%40oss.qualcomm.com
> 
> Rob

Thanks for the feedback, I have Posted v15 addressing comments from Sashiko.

v15: https://lore.kernel.org/all/20260520-parse_iommu_cells-v15-0-b5f99ad4e7e8@oss.qualcomm.com/

Thanks,
Vijay


From xen-devel-bounces@lists.xenproject.org Wed May 20 08:20:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 08:20:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313716.1583817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPc9t-00076o-1x; Wed, 20 May 2026 08:20:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313716.1583817; Wed, 20 May 2026 08:20:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPc9s-00076h-Un; Wed, 20 May 2026 08:20:04 +0000
Received: by outflank-mailman (input) for mailman id 1313716;
 Wed, 20 May 2026 08:20:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPc9r-0006qW-RR
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 08:20:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPc9r-00EWiv-3T
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 10:20:03 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d6eac-5cb7-0a2a0a5109dd-0a2a4505874e-36
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 10:20:02 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0d6eb2-aaa8-0a2a45050019-d1558032c44c-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 10:20:02 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-48a563e4ef7so37402635e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 01:20:02 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe4c8d39esm381227875e9.7.2026.05.20.01.20.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 01:20:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779265202; x=1779870002; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=nHCAKlHkoqP04jUBv6qKUfRV9vMTAsd3SJvtE13gw9k=;
        b=esYGDIVY/qI+7gvZ14WFJAzXkMLzMyxX33zNNIFzcT1kC1DJDoaHQ58+6N05fXZO1y
         OsVG0yjXGA68dht3Ba3Kw7nYU/UOvF6w1WL4CnBDGZpazYexgxFt5FGLtZT8Q5pRxB7p
         /5y+t1+RMTEVlY2jgfFnI5oMtvEAXCuK9ktnR/dHyU/lIocU58Z+sbs09rJnLvvZFV/t
         SrrQQrQpzjmUNfU6uYgvwP9POOe7rDn0Aaa0hEVoiTymYxT61WVe/QDz+27IH1pbvZ8W
         5//nwaHfQ3q7XFIOvftUeIxa4reJ2ajRCUoLvC7zo19ZIy/iohew1DkXtr6ymhO8rTMm
         vD9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779265202; x=1779870002;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=nHCAKlHkoqP04jUBv6qKUfRV9vMTAsd3SJvtE13gw9k=;
        b=jJYHevvQHSGk8Gzx8TCDSkswUDBZeGoxU1UYPJEhEG3UEcDZVd8LiPrfJViv5rHxjY
         bAw1PcdkUbdE195U6nRoRop0Z8JiJ53ws2jdnhoHWbTsrBsROF66lpuboJefxG+PrcTC
         3sd2MFp1Ka4xL4E3jDsdHnjajDyhXYF3VGs4p3uF9JLfjgbRc9mekMngiAKxX2SFeyDO
         1zvOeMH7tLwawJQCUrAyiLqRmPq5bZn5N+XECpCy4hlRLmWLdyeYnxHq15kqErZc5OOr
         4xikrwtapGSL/b2Omoax6GdixiWSwGiDnlmcx6uhomOUi010Snm+aSLJNeVMh3eZIRlW
         cX0g==
X-Gm-Message-State: AOJu0YwY0A2jZfpC/MB8kWnibDA+MyGRiRipDw4GOzyNYUCvFkvmCpIJ
	2PSLLk5RwdBTWl/sgBukEvTZv3EO0UNNn+0/GODqX/5Iz7eu8El0QtW3dm/GubOMUV19nDCBfX7
	rzLQ=
X-Gm-Gg: Acq92OGe46H+2H6HbUsEMGCKmwBmnYjK+c1DDfA/2K4Iw4A+Pg6T1DWPAOIbk4yavzy
	A9/ot5XeRoU10yvWnIiAzvdeHBhVIaR0xgq+u2D5PMzWpcAEvQobVjfbCFcfpMqL6Z2h46lpLrU
	JyYp7ipKSiPIVmmQWdgdOPtg5AJVl4+NUfsyjoijwWIkC+TbeJqgp2SkxscmVcd219cbO0veSpv
	0vX1VWI3WG7upoiFP16DkBgjJsGRwTc/oqI9CXo7IB1lmlULefgn50yc8HA9/O7pj8TG2DOTNYJ
	p9M8F/Q1VayU2uBiY8mqFlyLVlBx2kQT0w0MFcaPOIpo4F/VYMLq6yVK9e1gC4y8mOPQNnY4viF
	JpgGyTXrwAiOs9DlsbTxN3MB89nDYRl9fwbvP27VC7aA+cQyYokkqZPwMY6Aid5roNM7ypkwRUf
	G5QaJCrOa23H3euAx7UHe1cLQZ6dGmzubpVSxSNs4QMTA+30RS5JrLMWXUMl9HTxUQmrFT1kFVU
	ToV7INLjRFrq+6ZkvrnXDwUeg==
X-Received: by 2002:a05:600c:8b6e:b0:485:9a50:3370 with SMTP id 5b1f17b1804b1-48fe60ecc24mr367082855e9.8.1779265201804;
        Wed, 20 May 2026 01:20:01 -0700 (PDT)
Message-ID: <4f3a0cf9-63cf-405a-a19c-c8fc0473b2ce@suse.com>
Date: Wed, 20 May 2026 10:20:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] CI: disable debug info for analysis jobs
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1779265202-D9772443-70454C94/0/0
X-purgate-type: clean
X-purgate-size: 1471

Its generating and linking takes time (and space), while at the same time
Eclair should be entirely independent of its presence.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Sadly the setting of EXTRA_XEN_CONFIG doesn't look to be cumulative
(across "extends:"), so the addition needs making to all four eclair-*
jobs.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2539557855

--- a/automation/gitlab-ci/analyze.yaml
+++ b/automation/gitlab-ci/analyze.yaml
@@ -47,6 +47,7 @@ eclair-x86_64-allcode:
     RULESET: "monitored"
     EXTRA_XEN_CONFIG: |
       CONFIG_ARGO=y
+      CONFIG_DEBUG_INFO=n
       CONFIG_DEBUG_LOCK_PROFILE=y
       CONFIG_DEBUG_TRACE=y
       CONFIG_EFI_SET_VIRTUAL_ADDRESS_MAP=y
@@ -105,6 +106,7 @@ eclair-x86_64-amd:
       CONFIG_INTEL_IOMMU=n
       CONFIG_EXPERT=y
       CONFIG_DEBUG=y
+      CONFIG_DEBUG_INFO=n
       CONFIG_GDBSX=n
       CONFIG_FRAME_POINTER=n
       CONFIG_SELF_TESTS=n
@@ -129,6 +131,7 @@ eclair-ARM64-allcode:
       CONFIG_ARM64_SVE=y
       CONFIG_ARM_SMMU_V3=y
       CONFIG_BOOT_TIME_CPUPOOLS=y
+      CONFIG_DEBUG_INFO=n
       CONFIG_DEBUG_LOCK_PROFILE=y
       CONFIG_DEBUG_TRACE=y
       CONFIG_DEVICE_TREE_DEBUG=y
@@ -206,6 +209,7 @@ eclair-ARM64-amd:
       CONFIG_ARM_SMMU_V3=y
       CONFIG_EXPERT=y
       CONFIG_DEBUG=y
+      CONFIG_DEBUG_INFO=n
       CONFIG_FRAME_POINTER=n
       CONFIG_SELF_TESTS=n
       CONFIG_DEBUG_LOCKS=n


From xen-devel-bounces@lists.xenproject.org Wed May 20 10:00:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 10:00:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313765.1583833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPdir-0004gn-Sw; Wed, 20 May 2026 10:00:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313765.1583833; Wed, 20 May 2026 10:00:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPdir-0004gg-QA; Wed, 20 May 2026 10:00:17 +0000
Received: by outflank-mailman (input) for mailman id 1313765;
 Wed, 20 May 2026 10:00:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e44d40e68000f373@swg.vates.tech>)
 id 1wPdiq-0004ga-3m
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 10:00:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPdip-00F9AE-Fl
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 12:00:15 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e44d40e68000f373@swg.vates.tech>)
 id 6a0d862e-2eae-0a2a0a5409dd-0a2a4506b882-10
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 12:00:15 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e44d40e68000f373@swg.vates.tech>)
 id 6a0d862f-7371-0a2a45060019-b9ff1c2292e1-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 12:00:15 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e44d40e68000f373.006 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 20 May 2026 10:00:08 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id D1DF2811AA;
 Wed, 20 May 2026 12:00:07 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=bQatXbQY4ZA2SaKgg7Wr6TCXHjhRgm9n5VK3mC7JflY=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=m278DRsvCTxsd5HXzwJ6XdLusUcujQwaEIs211mo+SaLhWI/D9/VN2SyV173Jy8A21+BKePie
 FelX2l7LpiVJVjAeMu4d4CkACmahBFiMJnAIqPAzz4A41njeDT03Fy6+u2p1Xyylxc9pghQpOKy
 n7/O61+yf5vvlzXDFPGEq1SXL/Rse9wvtKFYSDLgS3IIL5qHCHY99Fgeh6V67GO5xauPkSPwin/
 64VM6Ti6N2j3kGKtI6Ck8u4iuixEm46tlfPOxmerqDHOuIoowDC5uCDCNYax89BFFktPdocc7Gg
 nsdJFZgSfnTCfXA9kbUD7w0dmxAVILHjcN9SOsiBAqJg==
X-Zone-Loop: 4a2e9b52e063a9079685eded1d98c20f208f82ef25fc
x-campaign-type: default
x-transaction-id: d4b92f99-7d6a-486e-8dff-dc960c70dae4
x-swg-uid: 01-35f6bea6-3258-47f9-a778-65e9a96ab596
X-Mailer: Sweego
Message-ID:
 <1779271208.8631fc262581453bbf619ec5b2062170.19e44d40e68000f373@vates.tech>
x-swg-bid: 1779271208.8631fc262581453bbf619ec5b2062170.19e44d40e68000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Wed, 20 May 2026 12:00:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] pci: Introduce parse_pci_sbdf{_seg}()
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117760.8631fc262581453bbf619ec5b2062170.19e3bae9f48000f373@vates.tech>
 <ag0e3ZgNDQN9A6Vn@kraken>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
Autocrypt: addr=teddy.astie@vates.tech; keydata=
 xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7LTBVHV/XO
 Zw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJT4ny+OGntnJntUoR
 KRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJAWicutjkkUgd28Bh6HV9EIumH
 tCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaT
 VqMdqul07o72m3eA2mf+LMu9a04FX/d4wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/
 EoucejoZ5SH49ksmVAmKOLktOaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+S
 PhHar7TPKjFz0G3DPNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89
 MXfQXZ3qt1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
 LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWjmoACGwME
 CwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNzuyOVCskwfUZPla6Z
 pd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp0x0HfuhcYfAYPR46XHTvjaJE
 v99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuROxdK8G+YHccJY8PvWSq2K2yiae2KGiAv
 1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhP
 eP3IdpfWc8cyRLXF06Rk46YMYCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcT
 UwgnYlFRk2FLq0QeKEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9
 Egr/Wmu3MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
 f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEMAKiQiZa3
 yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ3DbVf+en3/FvdVZg
 2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTmetSG5/52AjtmPFtlXAk0NmLv
 fJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0s3109sJeXT5ImVdphFs9cvyZyBT9t1Pb
 Rowv58EgV0zE4hbAeVkULAbxFV5b/ExTjjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKb
 Yu6NCfiHfEyB3Xyg9hfdrRgjMRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ov
 XoK4jm+Py0FiUGUaA6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/
 eVtR2Q1wZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
 IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWjmoACGwwA
 CgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiVoUiHYN5QwhnbZnsa
 JDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764QxyX6rld2f2RcWkDuBHun55ZWXj
 by8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk/dS0XTOQi2wVUb17sW/+ybCEokdVacZG
 zOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fuoGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+
 lOWSvdNHgoEkWR0RXBPQjnGmLKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/Off
 O485NOTKwGOxyWb006cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR
 8ULR9nX0LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
 x9fhaZEsniw8/bYgC3igkk5YJiOa
In-Reply-To: <ag0e3ZgNDQN9A6Vn@kraken>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------rsU2yxDq17VOtzGHA3ZtMnoT"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779271208019
X-purgate-ID: tlsNG-16d1c6/1779271215-86B75D75-9B17226B/0/0
X-purgate-type: clean
X-purgate-size: 9306

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------rsU2yxDq17VOtzGHA3ZtMnoT
Content-Type: multipart/mixed; boundary="------------dpInNmscFASBFIegzTSCyLoV";
 protected-headers="v1"
From: Teddy Astie <teddy.astie@vates.tech>
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <3ba68adb-97a9-4c04-ba0e-c716c5bfbc65@vates.tech>
Subject: Re: [PATCH 1/5] pci: Introduce parse_pci_sbdf{_seg}()
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117760.8631fc262581453bbf619ec5b2062170.19e3bae9f48000f373@vates.tech>
 <ag0e3ZgNDQN9A6Vn@kraken>
In-Reply-To: <ag0e3ZgNDQN9A6Vn@kraken>

--------------dpInNmscFASBFIegzTSCyLoV
Content-Type: multipart/mixed; boundary="------------1v3gL6Jja0MXw0yu9Dtj4RlM"

--------------1v3gL6Jja0MXw0yu9Dtj4RlM
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

TGUgMjAvMDUvMjAyNiDDoCAwNDo0MywgZG11a2hpbkBmb3JkLmNvbSBhIMOpY3JpdMKgOg0K
PiBPbiBNb24sIE1heSAxOCwgMjAyNiBhdCAwNToyMToyNVBNICswMjAwLCBUZWRkeSBBc3Rp
ZSB3cm90ZToNCj4+IEluIG1hbnkgcGxhY2VzLCB3ZSdyZSBwYXJzaW5nIGEgUENJIHN0cmlu
ZyBpbnRvIGluZGl2aWR1YWwgcGFydHMNCj4+IChzZWcsIGJ1cywgZGV2LCBmbikgYW5kIHRo
ZW4gdHJhbnNmb3JtIGl0IGludG8gYSBwY2lfc2JkZl90IHVzaW5nIFBDSV9TQkRGDQo+PiBt
YWNyby4gUmF0aGVyIHRoYW4gY29udmVydGluZyBmcm9tIHBhcnRzIHRvIHBjaV9zYmRmX3Qg
YW5kIHZpY2UgdmVyc2EsDQo+PiBpbnRyb2R1Y2UgYSBuZXcgZnVuY3Rpb24gdGhhdCBwYXJz
ZXMgYSBQQ0kgc3RyaW5nIGludG8gYSBwY2lfc2JkZl90IHN0cnVjdHVyZQ0KPj4gZGlyZWN0
bHkuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZh
dGVzLnRlY2g+DQo+PiAtLS0NCj4+ICAgeGVuL2RyaXZlcnMvcGNpL3BjaS5jIHwgMTggKysr
KysrKysrKysrKysrKysrDQo+PiAgIHhlbi9pbmNsdWRlL3hlbi9wY2kuaCB8ICAzICsrKw0K
Pj4gICAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKykNCj4+DQo+PiBkaWZmIC0t
Z2l0IGEveGVuL2RyaXZlcnMvcGNpL3BjaS5jIGIveGVuL2RyaXZlcnMvcGNpL3BjaS5jDQo+
PiBpbmRleCAwODRiZTM4ODBjLi4xZDA2Y2IwMzViIDEwMDY0NA0KPj4gLS0tIGEveGVuL2Ry
aXZlcnMvcGNpL3BjaS5jDQo+PiArKysgYi94ZW4vZHJpdmVycy9wY2kvcGNpLmMNCj4+IEBA
IC0yMDIsMyArMjAyLDIxIEBAIGNvbnN0IGNoYXIgKl9faW5pdCBwYXJzZV9wY2lfc2VnKGNv
bnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCAqc2VnX3AsDQo+PiAgIA0KPj4gICAgICAgcmV0
dXJuIHM7DQo+PiAgIH0NCj4+ICsNCj4+ICtjb25zdCBjaGFyICpwYXJzZV9wY2lfc2JkZihj
b25zdCBjaGFyICpzLCBwY2lfc2JkZl90ICpzYmRmKQ0KPj4gK3sNCj4+ICsgICAgdW5zaWdu
ZWQgaW50IHNlZywgYnVzLCBkZXYsIGZ1bmM7DQo+PiArICAgIGNvbnN0IGNoYXIgKm91dCA9
IHBhcnNlX3BjaShzLCAmc2VnLCAmYnVzLCAmZGV2LCAmZnVuYyk7DQo+IA0KPiBJTU8sIGJv
dGggcGFyc2VfcGNpKCkgYW5kIHBhcnNlX3BjaV9zZWcoKSBzaG91bGQgYmUgbWVyZ2VkIGlu
dG8NCj4gcGFyc2VfcGNpX3NiZGYoKSBhbmQgcGFyc2VfcGNpX3NiZGZfc2VnKCkgYXQgdGhl
IGVuZCBvZiB0aGUgc2VyaWVzLA0KPiBzaW5jZSB0aGVyZSB3aWxsIGJlIG5vIHJlbWFpbmlu
ZyBjb25zdW1lcnMgb2YgdGhlIG9sZCBBUElzLg0KPiANCj4gV2hhdCBkbyB5b3UgdGhpbms/
DQo+IA0KDQpUaGF0IHdhcyBteSBwbGFuLCBidXQgcGFyc2VfcGhhbnRvbV9kZXYoKSAoaW4g
DQp4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYykgd2FudHMgdG8gcGFyc2UgdGhlIFBD
SSBzdHJpbmcgd2l0aG91dCB0aGUgDQpmdW5jdGlvbiBwYXJ0IChpLmUgWFhYWDpZWTpaWikg
d2hpY2ggY2FuJ3QgYmUgZXhwcmVzc2VkIHdpdGggYSBmdWxsIFNCREYgDQpwYXJzZSBmdW5j
dGlvbi4NCg0KSXQgY3VycmVudGx5IHdvcmtzIGJ5IHBhc3NpbmcgTlVMTCB0byBgZnVuY19w
YCwgd2hpY2ggaGFzIHNwZWNpYWwgDQpoYW5kbGluZyBpbiBwYXJzZV9wY2kuDQoNCldlIGNv
dWxkIGV2ZW50dWFsbHkgYWxsb3cgb21pdHRpbmcgUENJIGZ1bmN0aW9uIGFuZCBtYWtlIGRl
ZmF1bHQgaXQgdG8gDQp6ZXJvLCBzbyB0aGF0IHdlIHdpbGwgYmUgYWJsZSBtaWdyYXRlIHBh
cnNlX3BoYW50b21fZGV2IHRvIHRoaXMgbmV3IA0KZnVuY3Rpb24gKHNvIGl0IG5vdyBhbGxv
d3MgcGFyc2luZyBmdWxsIFNCREYsIGJ1dCBpZ25vcmUgdGhlIGZ1bmN0aW9uIA0KcGFydCBv
ZiBpdCkuDQoNCj4+ICsNCj4+ICsgICAgKnNiZGYgPSBQQ0lfU0JERihzZWcsIGJ1cywgZGV2
LCBmdW5jKTsNCj4+ICsgICAgcmV0dXJuIG91dDsNCj4+ICt9DQo+PiArDQo+PiArY29uc3Qg
Y2hhciAqcGFyc2VfcGNpX3NiZGZfc2VnKGNvbnN0IGNoYXIgKnMsIHBjaV9zYmRmX3QgKnNi
ZGYsIGJvb2wgKmRlZl9zZWcpDQo+PiArew0KPj4gKyAgICB1bnNpZ25lZCBpbnQgc2VnLCBi
dXMsIGRldiwgZnVuYzsNCj4+ICsgICAgY29uc3QgY2hhciAqb3V0ID0gcGFyc2VfcGNpX3Nl
ZyhzLCAmc2VnLCAmYnVzLCAmZGV2LCAmZnVuYywgZGVmX3NlZyk7DQo+PiArDQo+PiArICAg
ICpzYmRmID0gUENJX1NCREYoc2VnLCBidXMsIGRldiwgZnVuYyk7DQo+PiArICAgIHJldHVy
biBvdXQ7DQo+PiArfQ0KPj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9wY2kuaCBi
L3hlbi9pbmNsdWRlL3hlbi9wY2kuaA0KPj4gaW5kZXggYWZiNmJiZjUwZC4uN2JmYzU5Y2Q3
NSAxMDA2NDQNCj4+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9wY2kuaA0KPj4gKysrIGIveGVu
L2luY2x1ZGUveGVuL3BjaS5oDQo+PiBAQCAtMjgwLDYgKzI4MCw5IEBAIGNvbnN0IGNoYXIg
KnBhcnNlX3BjaV9zZWcoY29uc3QgY2hhciAqcywgdW5zaWduZWQgaW50ICpzZWdfcCwNCj4+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmJ1c19wLCB1bnNp
Z25lZCBpbnQgKmRldl9wLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCAqZnVuY19wLCBib29sICpkZWZfc2VnKTsNCj4+ICAgDQo+PiArY29uc3QgY2hh
ciAqcGFyc2VfcGNpX3NiZGYoY29uc3QgY2hhciAqcywgcGNpX3NiZGZfdCAqc2JkZik7DQo+
PiArY29uc3QgY2hhciAqcGFyc2VfcGNpX3NiZGZfc2VnKGNvbnN0IGNoYXIgKnMsIHBjaV9z
YmRmX3QgKnNiZGYsIGJvb2wgKmRlZl9zZWcpOw0KPj4gKw0KPj4gICAjZGVmaW5lIFBDSV9C
QVJfVkYgICAgICAoMXUgPDwgMCkNCj4+ICAgI2RlZmluZSBQQ0lfQkFSX0xBU1QgICAgKDF1
IDw8IDEpDQo+PiAgICNkZWZpbmUgUENJX0JBUl9ST00gICAgICgxdSA8PCAyKQ0KPj4gLS0g
DQo+PiAyLjUyLjANCj4+DQo+Pg0KPj4NCj4+IC0tDQo+PiBUZWRkeSBBc3RpZSB8IFZhdGVz
IFhDUC1uZyBEZXZlbG9wZXINCj4+DQo+PiBYQ1AtbmcgJiBYZW4gT3JjaGVzdHJhIC0gVmF0
ZXMgc29sdXRpb25zDQo+Pg0KPj4gd2ViOiBodHRwczovL3ZhdGVzLnRlY2gNCj4gDQoNClRl
ZGR5DQo=
--------------1v3gL6Jja0MXw0yu9Dtj4RlM
Content-Type: application/pgp-keys; name="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Disposition: attachment; filename="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7L
TBVHV/XOZw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJ
T4ny+OGntnJntUoRKRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJA
WicutjkkUgd28Bh6HV9EIumHtCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO
8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaTVqMdqul07o72m3eA2mf+LMu9a04FX/d4
wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/EoucejoZ5SH49ksmVAmKOLkt
OaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+SPhHar7TPKjFz0G3D
PNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89MXfQXZ3q
t1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWj
moACGwMECwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNz
uyOVCskwfUZPla6Zpd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp
0x0HfuhcYfAYPR46XHTvjaJEv99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuR
OxdK8G+YHccJY8PvWSq2K2yiae2KGiAv1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50
wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhPeP3IdpfWc8cyRLXF06Rk46YM
YCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcTUwgnYlFRk2FLq0Qe
KEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9Egr/Wmu3
MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEM
AKiQiZa3yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ
3DbVf+en3/FvdVZg2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTm
etSG5/52AjtmPFtlXAk0NmLvfJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0
s3109sJeXT5ImVdphFs9cvyZyBT9t1PbRowv58EgV0zE4hbAeVkULAbxFV5b/ExT
jjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKbYu6NCfiHfEyB3Xyg9hfdrRgj
MRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ovXoK4jm+Py0FiUGUa
A6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/eVtR2Q1w
ZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWj
moACGwwACgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiV
oUiHYN5QwhnbZnsaJDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764Qxy
X6rld2f2RcWkDuBHun55ZWXjby8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk
/dS0XTOQi2wVUb17sW/+ybCEokdVacZGzOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fu
oGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+lOWSvdNHgoEkWR0RXBPQjnGm
LKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/OffO485NOTKwGOxyWb0
06cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR8ULR9nX0
LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
x9fhaZEsniw8/bYgC3igkk5YJiOa
=3DlUIA
-----END PGP PUBLIC KEY BLOCK-----

--------------1v3gL6Jja0MXw0yu9Dtj4RlM--

--------------dpInNmscFASBFIegzTSCyLoV--

--------------rsU2yxDq17VOtzGHA3ZtMnoT
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmoNhicFAwAAAAAACgkQZg+p0QLLz9Cq
Dgv/TJZtU9wjpVBKM7xiaEhor2qPz1SJt1au3SGp6G6dVrxCfYwSAvhLKx6gzwDcn1GqRL4VVsVX
SPggZRboxtnuOTlz5iEDTe5YHSnH34+PrJySAomI3du8Ax6AZps+YYCHMeNaz9IW/UUMk83mt58Q
RmI36qkqtD6Hm977fZbp4YK7ztlyel1oM2jFXi4UC/nAgB8pvZswoRTE7YFmZJv7HDVr1C4EjMoI
R1jUsxA9QySFMsiXL4SAw1yoc9fliFDzv7n03olDq/4BoucCgj7iReLiqW4yxobvymUhSjO/7/F4
mRkWjS8Xh0D8eZIBArL3N5X1aYdaFwhBwTozTb9BGlDZqB8wCiXMKtS7YPMHrMNRm2BopSMPQyIq
egd0Vizk4TQX8I2iMPav/7OBWTSxSKhImBRr05pt39t38nkigTN1fCchxJWrS1FmEEZUSqcRF3Hx
H3ZsRD/no6U86bOu9Ml4g/A65azrJ0YVV2wADcqXjJSoPyUEVhMFuV9cH99p
=OUqs
-----END PGP SIGNATURE-----

--------------rsU2yxDq17VOtzGHA3ZtMnoT--


From xen-devel-bounces@lists.xenproject.org Wed May 20 10:03:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 10:03:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313777.1583843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPdlY-0005D3-9W; Wed, 20 May 2026 10:03:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313777.1583843; Wed, 20 May 2026 10:03:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPdlY-0005Cw-5y; Wed, 20 May 2026 10:03:04 +0000
Received: by outflank-mailman (input) for mailman id 1313777;
 Wed, 20 May 2026 10:03:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wPdlW-0005Cq-VE
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 10:03:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPdlW-003VSq-4E
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 12:03:02 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a0d86d1-e002-0a2a0a5209dd-0a2a450bb796-28
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 12:03:01 +0200
Received: from [52.101.61.67]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a0d86d3-212f-0a2a450b0019-34653d432879-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 12:03:01 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM6PR03MB5306.namprd03.prod.outlook.com (2603:10b6:5:243::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.16; Wed, 20 May
 2026 10:02:57 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.21.0048.013; Wed, 20 May 2026
 10:02:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=O4Q7F+YrbwH58nntsPjPeZMitbudITSAseOYTvxJoJW+xFGtcbNNhJhc7a5tOjHaF6pwZ0Su0BfHA8EQ8wxght3uJIDQuA7/4ZkigCUml0Q261g0FAUfGp+61vU6NppqgV5hJFkqW5HRoBszXqkHbuXg534qQNj06p93W6JnbW87pfuPNIw4IOsFo/M5fI5+gqt9E+9oSeJvYiKZB4qVF8zp7/p8uSpmJH5RV2EFOuj7BOxfPjjT7ZgFPjGUEb6MFisR77K2EtyjI227kxKJ6aQHY9xFnRm4/gTLksXx7FwyPqJ5LwYX3uTniViKi19u20ilwIEGBJZe/dyL6kr9Nw==
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=eINjlhfG1Rhpl1Pu3mthwbYWgVp4GH3KSOpebC1q3tU=;
 b=Wx39rQGnKjzhWkVFRlJet0ULWKt5R7RYgm+03lL+c9qo9HeyS0ilRy5x8lTsr7GvEiYG5uLYPUjkIBXTfSz7S8nvWalQRL9D4T569Xb0ZhpqeKBwecJ5vUzu1hF2S9U0xCTNB+gpsmVXbtiZrSJNYatun28oxJ6+nGjeyRCmOewk2QmSUecaHUuwVhKAGTF2scMAwBWwOjYl599WQk+y6Nv9AGVbu5WQVUHfCliPZfbLlM8WH8a/05jXA4L67sqPh73Ry8HyCQ0VQhJQmAOFp+6WkGXdO62zYNFqXHOtdVlLxsH1Bi0MeYz4BhKp/9oYnh6KPdR0wmjQ0fG6hzZfQA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eINjlhfG1Rhpl1Pu3mthwbYWgVp4GH3KSOpebC1q3tU=;
 b=NmHMb+fsZmb5UPVEovY+ad1k90qr0YJrMWXhp+E3JYQ/773BiSoDo1ngI3X9VBGdYuaLLJ1fbk1l6RNOZayg5mTMOwqr1shjicv+bpIAfXNfScs5k9Vs47D1rprbVQ5z6/kwoaE8OCgBBKHdFs2/AR6fSfVH91EnRh4XTWL4sP4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 20 May 2026 12:02:53 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v2 RFC] x86/time: avoid early uses of NOW() to return zero
Message-ID: <ag2GzXm-yg12DQY5@macbook.local>
References: <68b1607a-f2a1-4f53-84c5-43c61eeb1869@suse.com>
 <agXwsshLlV50dcnV@macbook.local>
 <8fbab1f4-3078-4ac3-b147-84d1b5f5abd1@suse.com>
 <agcb1WAGLWDRYZ06@macbook.local>
 <547161b2-2fea-4576-a635-62838ffa2d33@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <547161b2-2fea-4576-a635-62838ffa2d33@suse.com>
X-ClientProxiedBy: ZRAP278CA0007.CHEP278.PROD.OUTLOOK.COM
 (2603:10a6:910:10::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DM6PR03MB5306:EE_
X-MS-Office365-Filtering-Correlation-Id: 4aba454a-b996-4fce-476e-08deb656f7e5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|22082099003|56012099003|18002099003|3023799007|11063799006|4143699003;
X-Microsoft-Antispam-Message-Info:
	/XGY9yERaXJw8fH6x+A1h5D5foxD66gRljAHLzAItbCR/xtkSGA4T0ukPjrFap54lysPyenVaRKA4OICY/xNhIg6KRPXE/MfXcVPtZ2qSiyF9g9YN5RTo9Pj3gLPm7a6CMKSuqEok3BIwlS0TkWL5Vrd2oYvDCzVWk6kSU/pmEjW4EvQ34eR7+U5tZLMrZ3AmKz/9GPzon47xDHTJc0WsYsiyTqPwWQHGv0kzuNFvDtm5Scgc/AaRh6zSqDO+7Wf+qFpfafX3nr+TN7E58Rs09sWR/nyG9sZoH2LjFlZA9Din4lB8Q8YpjCLj2UBM4UL+nxSUqwzJa4M3vdL7uC4tesqV0DaMmMpnia06ze4PYyY+UsZ0eK5vZoX9bEi3J1YZcRSrbkMRkkMx8+g80g5cCd9oveeMH601+jEWEvHpH7poS2WB2iTjY7tmgE2WTOlnnZSPQrCTAnTYx88SiwBVA4LJ4Nh50eMrTNr0bMG+1B5cmV4i0Q5D8zQmxpLAQ3e+wxvBgAaQWs3EhgN5IGElTbu48EohgUq1f2eFpg1GQUnTwX5MaJX+IUFjEWZwXCwMnrjtulfyG8afWtL11TwlA+8O698Srfo4OiLQe9Ml8URgHNnQF9ptN+hsgnE9Un47YV84e7xcN5Z8sr3UpQQerm6rC0+d9VjKFvNbwxQ8MXGQC/HInYr9eTHJwqIZRpc
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(22082099003)(56012099003)(18002099003)(3023799007)(11063799006)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dS9yV0xSclZXbmh3RHN4bTllaDFHVTlTWGhobEdVZFg4a1MzeVRyTkJSb0RV?=
 =?utf-8?B?VlJOYWJibFpLeHZ4N0NFUTllM0RTRDl4UjNSWU8rajFJTFR1Q3Y2U3huZVNj?=
 =?utf-8?B?UUZyY1pCVmJIaVdLbHljS2lmUHQ0dzZvanFzay9ocmU4dE9lR295cGt2bWhR?=
 =?utf-8?B?TitHTjNHcjA3dlFBUlc4Z3JMUkU0QlQyZDZmSzJXajZyc0VUNjZUU0I1ZzRZ?=
 =?utf-8?B?QUxqV2ltVWxMR3RWVWw3WE5KaFRwbmhvbXhhd0hEZHlQWExnODNaMFRYOW5k?=
 =?utf-8?B?ejIrZWtxK3JZVll0WTFwU3pXaXJJMzZUWVIvaWJxTXEvSEx1eG5CY1NUSWl2?=
 =?utf-8?B?b21QWVlwUExnc3lXV1NpVU1tMGxncCtDRHVVYW1QSDV1dHVDRndOVk5QelNZ?=
 =?utf-8?B?VEs2U2ZFWTNFWE0xTFQ3UHdROE9TWHdINEF4ajFEdlJhM29tSTJOV09oMktm?=
 =?utf-8?B?L2QzRVNFVkxBT3JGWDk3b3VQMmJJNk5XdExTZ282UDcxM3dHa1NDdk1UZjRE?=
 =?utf-8?B?cGtIR0Q1azdFaDhHVzFCTzVWOFpwTEtMWnZRSmtVb0Z5dk5XVFZDL0Z6dzVI?=
 =?utf-8?B?Z3Z1cXhSaFQ5Tk9qNjBVYnZoSGJjZnVMT3VsRGdtYU9YZEdoUjNTcW9WK0xh?=
 =?utf-8?B?cm9BMncvVjg2bzBZODNhMGlpOXdvcUVub3kzcUJGUmI2d2w1OXVKYWVFZTFi?=
 =?utf-8?B?ZnZoQ0xpTmI3T0c5SGgrYXpxSXAzK0YrUFFIbXFZU1hlWHdveDVlcVZDOERN?=
 =?utf-8?B?ejE4WlI3OUZWSXkzc1ppL2V0aUxLM29zTDJpVVpFTjFpQXNMaVphSCt0ZG9Q?=
 =?utf-8?B?b1RYdTVDMlpMcFlnUFZxWnhYYlhYOXhCQzBkeUtwM2ljQzR6UVFLNmp6aTVs?=
 =?utf-8?B?eWx5L3k5K1pxaWF6bGdKZVpHTlhqVHIxNWdqVHlJUzNxLzljdFdtaURIb0wz?=
 =?utf-8?B?WlZiQTdxWW5FV0RSN1FOMVo1ZE4wY2ZOUmt0ZCtJMmVwMmR3OEZmS0diUnVm?=
 =?utf-8?B?VklVQmlIL3ZrRHEzZ2l5eWRzdCtObDN1eC9sK1ZaZEtja3YwVXBnTzVWVGxa?=
 =?utf-8?B?cmVNTHFSTzdrU2ZxRkVRR0paZWxFWUFrU2Q3ZkVUN1BoakRHMCtSdjJnNStw?=
 =?utf-8?B?ZVp0UHNwdFVOKzNNSWE2VzR0RC9raysrcEJmaW40Ui82ejVrbzVXTnIya3I0?=
 =?utf-8?B?TVUramhNbis5V3RSWm9la0x5elk0NXVyb3ljR3k0Q2xiV0g4cnFYanlnaGQr?=
 =?utf-8?B?N3ZlZmdCMXJXbUpETWt3NXd3eC8zT0dzTXFQcE9jY1N2aDY4TTlNV0pTNU9J?=
 =?utf-8?B?eDh6MWJ4OHhERFlQY0RtMnAwbzhkY3l1N0cwcEptbzEySDVrcHFGSG1hYmIr?=
 =?utf-8?B?SjQrelhoanQ4MEtjR2V6djFzWkNnMzQyM28vczgwZU9uTnJjU3RPR2crWGxX?=
 =?utf-8?B?TGR0Sm1VQjNzY2k1YkxDTzdqendJdW9MYVNRaTNSQ3I4NEZDNzF0N04yYm4y?=
 =?utf-8?B?RVova2VtRTRtalZTeTJEUjQrdFZYTEJncDhLRXR0eTV2cHlzZitzN1Qxc3l6?=
 =?utf-8?B?V0dmS295SjVjZVZlR0FNZXJGOFRiVnYzVzNOeU5LREF4OTBLNUQ0TjdVdGp3?=
 =?utf-8?B?TGl2NXkvdGVacC94by9IYUNwRGxIOWJYVDlIdHl0Z0NMWmtKejFFUm02YnVI?=
 =?utf-8?B?TFpPWEdHOGVHcW1yaVRVejQ2VysxQ21iMnZlTUdEMmFiOEVLZ2JtQXdheTZH?=
 =?utf-8?B?RUNIOEdPVjJSU2FLN2M5MWU3bkllbEpyRWp3NGhFK3VDMTdteUtXSUwrQkhJ?=
 =?utf-8?B?LzV4ZVVYeGduc2ZDdWNsSmNOQ2VWQnFuVHBjYkVpaXovNHRNL01KUkgwNlBO?=
 =?utf-8?B?OXE5QTdPUm1UQUp2TnovcGF2cWFTMUVncGhJSU1ZcUhtUWhHQlAyN3MzdWdu?=
 =?utf-8?B?cEJibDhXYVMxdTM4RnpXRjJRc011MitReEhDYjZ5bUFPdXdyTFZSM3g5YmlT?=
 =?utf-8?B?d1ZkSkpSaXhKTTdoak9XUzdWN1F3NVR6Yjc0dmNUakQ0KzNMditWU0pnd3Vz?=
 =?utf-8?B?YTN2T2gzYktKUU1DZHBGQm5IQ28veFVDSkFudGhzTHFoM0Y5RWxYOFNOOFFF?=
 =?utf-8?B?bGROMS9hUWJMQ2NjZHF0Y1hpRjJ4VERjRFVQV0IzT3lEdlg3MDhTNUIyUHFa?=
 =?utf-8?B?MVZWWjcwTW9hYzNRbVBKYXFEL1EvU0JTWnVYODJ2Q2FXUE9BQ2loSFFjMzQy?=
 =?utf-8?B?ZDVZd3FhaVZWeGNhTHcwT1JYQTJZYWFJS1F2Z1ZyZHpQeFN1K2dpM2pjakJM?=
 =?utf-8?B?eGNXbGNjcVpRcHV6RkNnbE03aDB1Q3E4Z01BZWFBekszdnFGdit3Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4aba454a-b996-4fce-476e-08deb656f7e5
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 10:02:57.8451
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: b2ZS60WkAZOtNtZDvIBoOP9ighCE6KervwknFZ++OuI48XbCBlasGlT+JCLoO0L+Rp3hexgHhMAg3BXCse0AiQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5306
X-purgate-ID: tlsNG-42698a/1779271381-1956BF3B-B46A946A/0/0
X-purgate-type: clean
X-purgate-size: 3270

On Mon, May 18, 2026 at 10:05:41AM +0200, Jan Beulich wrote:
> On 15.05.2026 15:12, Roger Pau Monné wrote:
> > On Fri, May 15, 2026 at 09:15:40AM +0200, Jan Beulich wrote:
> >> On 14.05.2026 17:56, Roger Pau Monné wrote:
> >>> On Wed, May 13, 2026 at 08:44:46AM +0200, Jan Beulich wrote:
> >>>> @@ -2623,6 +2640,21 @@ int __init init_xen_time(void)
> >>>>      return 0;
> >>>>  }
> >>>>  
> >>>> +/* BSP-only function to pre-set an approximate TSC scale. */
> >>>> +void __init preset_tsc_scale(unsigned long freq)
> >>>> +{
> >>>> +    struct cpu_time *t = &this_cpu(cpu_time);
> >>>> +
> >>>> +    /*
> >>>> +     * The incoming frequency is only approximate (nominal).  Increase it by
> >>>> +     * 1% to make NOW() output rather a little too slow than too fast, thus
> >>>> +     * avoiding a possible backwards jump once the final scale is set.
> >>>> +     */
> >>>> +    freq += DIV_ROUND_UP(freq, 100);
> >>>
> >>> To avoid such possible jump backwards, won't it safer to also update
> >>> the ->local_stime and ->local_tsc fields at the time the new scale is
> >>> set?  Updatign those ahead of setting the new scale should avoid any
> >>> backward jumps.
> >>
> >> ->stamp.local_tsc does get updated; you merely dropped that line from reply
> >> context. As to local_stime - how could we possibly set that, when we didn't
> >> get through init_platform_timer() yet? Leaving it at 0 is the correct
> >> match for setting local_tsc to boot_tsc_stamp.
> > 
> > Please bear with me, maybe I'm not understanding exactly to what the
> > code comment refers to as "possible backwards jump once the final
> > scale is set".  I assume you refer to the setting of scale
> > early_time_init()?  The ->stamp.local_tsc value also gets updated at
> > that point, so it's not possible for the timer going backwards?
> 
> It is updated there, but only to boot_tsc_stamp. I.e. no change at all
> if preset_tsc_scale() set the field already.

Couldn't we do the following in early_init_time() to ensure time
doesn't go backwards:

    if ( t->tsc_scale.mul_frac )
    {
        /*
         * Update time snapshot to ensure time doesn't go backwards as a
         * result of the scale change done below.
         */
        t->stamp.local_tsc = rdtsc_ordered();
        t->stamp.local_stime = get_s_time_fixed(t->stamp.local_tsc);
    }
    else
        t->stamp.local_tsc = boot_tsc_stamp;

    set_time_scale(&t->tsc_scale, tmp);
    init_percpu_time();

That's kind of the same logic that's used in cpu_frequency_change()
ahead of calling set_time_scale().

> > This changed with the addition of the init_percpu_time() call in
> > early_time_init(), and makes the setting of "t->stamp.local_tsc =
> > boot_tsc_stamp" pointless, as it will get overwritten by the logic in
> > init_percpu_time() a couple of lines after?
> 
> When making these changes, I first thought so too. But no, that write
> isn't pointless: In case preset_tsc_scale() wasn't called, leaving the
> field at 0 would break the use of get_s_time_fixed() out of
> init_percpu_time(). (Iirc I only noticed this because of having put
> debug printk()s there for other purposes.)

I see, yes, that would be needed.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 20 10:08:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 10:08:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313791.1583856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPdqc-00067R-VN; Wed, 20 May 2026 10:08:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313791.1583856; Wed, 20 May 2026 10:08:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPdqc-00067K-SI; Wed, 20 May 2026 10:08:18 +0000
Received: by outflank-mailman (input) for mailman id 1313791;
 Wed, 20 May 2026 10:08:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e44db6d97000f373@swg.vates.tech>)
 id 1wPdqa-000678-KI
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 10:08:16 +0000
Received: from mx.expurgate.net (helo=mx.expurgate.net)
 by mx.expurgate.net with esmtp id 1wPdqa-00FL01-01
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 12:08:16 +0200
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPdqZ-00FvRT-O3
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 12:08:15 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e44db6d97000f373@swg.vates.tech>)
 id 6a0d8808-e002-0a2a0a5209dd-0a2a4506c6ea-36
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 12:08:15 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e44db6d97000f373@swg.vates.tech>)
 id 6a0d880e-7371-0a2a45060019-b9ff1c22b4e1-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 12:08:15 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e44db6d97000f373.004 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 20 May 2026 10:08:11 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id 0163C8671A;
 Wed, 20 May 2026 12:08:10 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=i1ThJMD2BLyIekFWi1EDNcZCQxbwnEJ7ym0A9HVsYKk=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=MSpqQW0jXggX33Nf+XfKYDMFhGV/1tvGIbo4Q7a874akgM6faaVdtOaUgynekdW/ZFG8HlIyt
 01QIVafoL+GE4xgMpZ2sF1awfr1rXxVW3ZPsvlAPWR4jhD1uBsvGSQmGYHUcDwFqrzFmuLuQ4zD
 ZuujWdc/mQMY3pmQjatDGRpPg5BjCk/lAkntQ57Sr15uRAUn1MUgwwrIIDKELz9Y1Pga3eh9mZS
 4904MbBJ2oLTD28QrZJgluPv+YSg7UHzqYZddV3/8ggyOCzTwfLFjBYUbQLla6BIwOp5AGHqO/b
 uN5aqfbMAgj+r41Q4+SeAv9tDmjVVh84zdCUQkw5NoBA==
X-Zone-Loop: dbb4011142d79ab59d54812e1c9f52763cfa04c27d0b
x-campaign-type: default
x-transaction-id: d42fba42-d897-4a99-8059-d3523256b2df
x-swg-uid: 01-30b67fce-77b0-4a9a-b14f-f7d4f5b71270
X-Mailer: Sweego
Message-ID:
 <1779271691.8631fc262581453bbf619ec5b2062170.19e44db6d97000f373@vates.tech>
x-swg-bid: 1779271691.8631fc262581453bbf619ec5b2062170.19e44db6d97000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Wed, 20 May 2026 12:08:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] vtd: Use pci_sbdf_t in acpi_parse_dev_scope()
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117761.8631fc262581453bbf619ec5b2062170.19e3baea399000f373@vates.tech>
 <ag0jtx6yNpPI3ZTD@kraken>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
Autocrypt: addr=teddy.astie@vates.tech; keydata=
 xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7LTBVHV/XO
 Zw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJT4ny+OGntnJntUoR
 KRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJAWicutjkkUgd28Bh6HV9EIumH
 tCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaT
 VqMdqul07o72m3eA2mf+LMu9a04FX/d4wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/
 EoucejoZ5SH49ksmVAmKOLktOaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+S
 PhHar7TPKjFz0G3DPNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89
 MXfQXZ3qt1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
 LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWjmoACGwME
 CwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNzuyOVCskwfUZPla6Z
 pd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp0x0HfuhcYfAYPR46XHTvjaJE
 v99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuROxdK8G+YHccJY8PvWSq2K2yiae2KGiAv
 1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhP
 eP3IdpfWc8cyRLXF06Rk46YMYCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcT
 UwgnYlFRk2FLq0QeKEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9
 Egr/Wmu3MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
 f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEMAKiQiZa3
 yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ3DbVf+en3/FvdVZg
 2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTmetSG5/52AjtmPFtlXAk0NmLv
 fJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0s3109sJeXT5ImVdphFs9cvyZyBT9t1Pb
 Rowv58EgV0zE4hbAeVkULAbxFV5b/ExTjjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKb
 Yu6NCfiHfEyB3Xyg9hfdrRgjMRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ov
 XoK4jm+Py0FiUGUaA6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/
 eVtR2Q1wZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
 IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWjmoACGwwA
 CgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiVoUiHYN5QwhnbZnsa
 JDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764QxyX6rld2f2RcWkDuBHun55ZWXj
 by8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk/dS0XTOQi2wVUb17sW/+ybCEokdVacZG
 zOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fuoGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+
 lOWSvdNHgoEkWR0RXBPQjnGmLKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/Off
 O485NOTKwGOxyWb006cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR
 8ULR9nX0LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
 x9fhaZEsniw8/bYgC3igkk5YJiOa
In-Reply-To: <ag0jtx6yNpPI3ZTD@kraken>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------VdzMO0gutUTPpb1isbd0dYZO"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779271691116
X-purgate-ID: tlsNG-16d1c6/1779271695-8ED88D75-3A3E0D68/0/0
X-purgate-type: clean
X-purgate-size: 14057

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------VdzMO0gutUTPpb1isbd0dYZO
Content-Type: multipart/mixed; boundary="------------N30O4PzHj1bWEgezF9Q86UDN";
 protected-headers="v1"
From: Teddy Astie <teddy.astie@vates.tech>
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Message-ID: <fab3f871-c29e-4049-9cb9-818941c72565@vates.tech>
Subject: Re: [PATCH 2/5] vtd: Use pci_sbdf_t in acpi_parse_dev_scope()
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117761.8631fc262581453bbf619ec5b2062170.19e3baea399000f373@vates.tech>
 <ag0jtx6yNpPI3ZTD@kraken>
In-Reply-To: <ag0jtx6yNpPI3ZTD@kraken>

--------------N30O4PzHj1bWEgezF9Q86UDN
Content-Type: multipart/mixed; boundary="------------Ax4fG7B1C6CHvK1AyveBCiOu"

--------------Ax4fG7B1C6CHvK1AyveBCiOu
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

TGUgMjAvMDUvMjAyNiDDoCAwNTowMywgZG11a2hpbkBmb3JkLmNvbSBhIMOpY3JpdMKgOg0K
PiBPbiBNb24sIE1heSAxOCwgMjAyNiBhdCAwNToyMToyNlBNICswMjAwLCBUZWRkeSBBc3Rp
ZSB3cm90ZToNCj4+IFVzZSBhIGRlZGljYXRlZCBwY2lfc2JkZl90IHN0cnVjdCB0aGF0IHdl
IHVwZGF0ZSBpbnN0ZWFkIG9mIHJlY3JlYXRpbmcNCj4+IG9uZSBlYWNoIHRpbWUgd2UgbmVl
ZCBpdC4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBUZWRkeSBBc3RpZSA8dGVkZHkuYXN0aWVA
dmF0ZXMudGVjaD4NCj4+IC0tLQ0KPj4gICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv
ZG1hci5jIHwgNDIgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tDQo+PiAgIDEgZmls
ZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkNCj4+DQo+PiBk
aWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2RtYXIuYyBiL3hlbi9k
cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9kbWFyLmMNCj4+IGluZGV4IDJhNzU2ODMxYTYuLmMz
NmY0YmJkN2IgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv
ZG1hci5jDQo+PiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZG1hci5jDQo+
PiBAQCAtMzEwLDcgKzMxMCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGFjcGlfcGFyc2VfZGV2
X3Njb3BlKA0KPj4gICB7DQo+PiAgICAgICBzdHJ1Y3QgYWNwaV9pb2FwaWNfdW5pdCAqYWNw
aV9pb2FwaWNfdW5pdDsNCj4+ICAgICAgIGNvbnN0IHN0cnVjdCBhY3BpX2RtYXJfZGV2aWNl
X3Njb3BlICphY3BpX3Njb3BlOw0KPj4gLSAgICB1MTYgYnVzLCBzdWJfYnVzLCBzZWNfYnVz
Ow0KPj4gKyAgICB1MTYgc3ViX2J1cywgc2VjX2J1czsNCj4+ICAgICAgIGNvbnN0IHN0cnVj
dCBhY3BpX2RtYXJfcGNpX3BhdGggKnBhdGg7DQo+PiAgICAgICBzdHJ1Y3QgYWNwaV9kcmhk
X3VuaXQgKmRyaGQgPSB0eXBlID09IERNQVJfVFlQRSA/DQo+PiAgICAgICAgICAgY29udGFp
bmVyX29mKHNjb3BlLCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQsIHNjb3BlKSA6IE5VTEw7DQo+
PiBAQCAtMzMyLDI5ICszMzIsMjYgQEAgc3RhdGljIGludCBfX2luaXQgYWNwaV9wYXJzZV9k
ZXZfc2NvcGUoDQo+PiAgIA0KPj4gICAgICAgd2hpbGUgKCBzdGFydCA8IGVuZCApDQo+PiAg
ICAgICB7DQo+PiArICAgICAgICBwY2lfc2JkZl90IGRldl9zYmRmOw0KPj4gICAgICAgICAg
IGFjcGlfc2NvcGUgPSBzdGFydDsNCj4+ICAgICAgICAgICBwYXRoID0gKGNvbnN0IHZvaWQg
KikoYWNwaV9zY29wZSArIDEpOw0KPj4gICAgICAgICAgIGRlcHRoID0gKGFjcGlfc2NvcGUt
Pmxlbmd0aCAtIHNpemVvZigqYWNwaV9zY29wZSkpIC8gc2l6ZW9mKCpwYXRoKTsNCj4+IC0g
ICAgICAgIGJ1cyA9IGFjcGlfc2NvcGUtPmJ1czsNCj4+ICsgICAgICAgIGRldl9zYmRmID0g
UENJX1NCREYoc2VnLCBhY3BpX3Njb3BlLT5idXMsIHBhdGgtPmRldiwgcGF0aC0+Zm4pOw0K
PiANCj4gYGRldl9zYmRmYCBjYWxjdWxhdGlvbiBkZXBlbmRzIG9uIGBwYXRoYCB3aGljaCBp
cyB1cGRhdGVkIGluIGB3aGlsZSgpYCBsb29wDQo+IGJlbG93Lg0KPiANCg0KQWggeWVzIGlu
ZGVlZCwgZ29vZCBjYXRjaC4NCg0KRml4ZWQgbG9jYWxseS4NCg0KPj4gICANCj4+ICAgICAg
ICAgICB3aGlsZSAoIC0tZGVwdGggPiAwICkNCj4+ICAgICAgICAgICB7DQo+PiAtICAgICAg
ICAgICAgYnVzID0gcGNpX2NvbmZfcmVhZDgoUENJX1NCREYoc2VnLCBidXMsIHBhdGgtPmRl
diwgcGF0aC0+Zm4pLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBD
SV9TRUNPTkRBUllfQlVTKTsNCj4+ICsgICAgICAgICAgICBkZXZfc2JkZi5idXMgPSBwY2lf
Y29uZl9yZWFkOChkZXZfc2JkZiwgUENJX1NFQ09OREFSWV9CVVMpOw0KPj4gICAgICAgICAg
ICAgICBwYXRoKys7DQo+PiAgICAgICAgICAgfQ0KPj4gICANCj4+ICAgICAgICAgICBzd2l0
Y2ggKCBhY3BpX3Njb3BlLT5lbnRyeV90eXBlICkNCj4+ICAgICAgICAgICB7DQo+PiAgICAg
ICAgICAgY2FzZSBBQ1BJX0RNQVJfU0NPUEVfVFlQRV9CUklER0U6DQo+PiAtICAgICAgICAg
ICAgc2VjX2J1cyA9IHBjaV9jb25mX3JlYWQ4KFBDSV9TQkRGKHNlZywgYnVzLCBwYXRoLT5k
ZXYsIHBhdGgtPmZuKSwNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUENJX1NFQ09OREFSWV9CVVMpOw0KPj4gLSAgICAgICAgICAgIHN1Yl9idXMgPSBwY2lf
Y29uZl9yZWFkOChQQ0lfU0JERihzZWcsIGJ1cywgcGF0aC0+ZGV2LCBwYXRoLT5mbiksDQo+
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9TVUJPUkRJTkFU
RV9CVVMpOw0KPj4gKyAgICAgICAgICAgIHNlY19idXMgPSBwY2lfY29uZl9yZWFkOChkZXZf
c2JkZiwgUENJX1NFQ09OREFSWV9CVVMpOw0KPj4gKyAgICAgICAgICAgIHN1Yl9idXMgPSBw
Y2lfY29uZl9yZWFkOChkZXZfc2JkZiwgUENJX1NVQk9SRElOQVRFX0JVUyk7DQo+PiAgICAg
ICAgICAgICAgIGlmICggaW9tbXVfdmVyYm9zZSApDQo+PiAgICAgICAgICAgICAgICAgICBw
cmludGsoVlREUFJFRklYICIgYnJpZGdlOiAlcHAgc3RhcnQ9JXggc2VjPSV4IHN1Yj0leFxu
IiwNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICZQQ0lfU0JERihzZWcsIGJ1cywgcGF0
aC0+ZGV2LCBwYXRoLT5mbiksDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICBhY3BpX3Nj
b3BlLT5idXMsIHNlY19idXMsIHN1Yl9idXMpOw0KPj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgJmRldl9zYmRmLCBhY3BpX3Njb3BlLT5idXMsIHNlY19idXMsIHN1Yl9idXMpOw0KPj4g
ICANCj4+ICAgICAgICAgICAgICAgZG1hcl9zY29wZV9hZGRfYnVzZXMoc2NvcGUsIHNlY19i
dXMsIHN1Yl9idXMpOw0KPj4gICAgICAgICAgICAgICBnZnhfb25seSA9IGZhbHNlOw0KPj4g
QEAgLTM2Miw4ICszNTksNyBAQCBzdGF0aWMgaW50IF9faW5pdCBhY3BpX3BhcnNlX2Rldl9z
Y29wZSgNCj4+ICAgDQo+PiAgICAgICAgICAgY2FzZSBBQ1BJX0RNQVJfU0NPUEVfVFlQRV9I
UEVUOg0KPj4gICAgICAgICAgICAgICBpZiAoIGlvbW11X3ZlcmJvc2UgKQ0KPj4gLSAgICAg
ICAgICAgICAgICBwcmludGsoVlREUFJFRklYICIgTVNJIEhQRVQ6ICVwcFxuIiwNCj4+IC0g
ICAgICAgICAgICAgICAgICAgICAgICZQQ0lfU0JERihzZWcsIGJ1cywgcGF0aC0+ZGV2LCBw
YXRoLT5mbikpOw0KPj4gKyAgICAgICAgICAgICAgICBwcmludGsoVlREUFJFRklYICIgTVNJ
IEhQRVQ6ICVwcFxuIiwgJmRldl9zYmRmKTsNCj4+ICAgDQo+PiAgICAgICAgICAgICAgIGlm
ICggZHJoZCApDQo+PiAgICAgICAgICAgICAgIHsNCj4+IEBAIC0zNzQsOSArMzcwLDcgQEAg
c3RhdGljIGludCBfX2luaXQgYWNwaV9wYXJzZV9kZXZfc2NvcGUoDQo+PiAgICAgICAgICAg
ICAgICAgICBpZiAoICFhY3BpX2hwZXRfdW5pdCApDQo+PiAgICAgICAgICAgICAgICAgICAg
ICAgZ290byBvdXQ7DQo+PiAgICAgICAgICAgICAgICAgICBhY3BpX2hwZXRfdW5pdC0+aWQg
PSBhY3BpX3Njb3BlLT5lbnVtZXJhdGlvbl9pZDsNCj4+IC0gICAgICAgICAgICAgICAgYWNw
aV9ocGV0X3VuaXQtPmJ1cyA9IGJ1czsNCj4+IC0gICAgICAgICAgICAgICAgYWNwaV9ocGV0
X3VuaXQtPmRldiA9IHBhdGgtPmRldjsNCj4+IC0gICAgICAgICAgICAgICAgYWNwaV9ocGV0
X3VuaXQtPmZ1bmMgPSBwYXRoLT5mbjsNCj4+ICsgICAgICAgICAgICAgICAgYWNwaV9ocGV0
X3VuaXQtPmJkZiA9IGRldl9zYmRmLmJkZjsNCj4+ICAgICAgICAgICAgICAgICAgIGxpc3Rf
YWRkKCZhY3BpX2hwZXRfdW5pdC0+bGlzdCwgJmRyaGQtPmhwZXRfbGlzdCk7DQo+PiAgIA0K
Pj4gICAgICAgICAgICAgICAgICAgZ2Z4X29ubHkgPSBmYWxzZTsNCj4+IEBAIC0zODYsMTYg
KzM4MCwxNSBAQCBzdGF0aWMgaW50IF9faW5pdCBhY3BpX3BhcnNlX2Rldl9zY29wZSgNCj4+
ICAgDQo+PiAgICAgICAgICAgY2FzZSBBQ1BJX0RNQVJfU0NPUEVfVFlQRV9FTkRQT0lOVDoN
Cj4+ICAgICAgICAgICAgICAgaWYgKCBpb21tdV92ZXJib3NlICkNCj4+IC0gICAgICAgICAg
ICAgICAgcHJpbnRrKFZURFBSRUZJWCAiIGVuZHBvaW50OiAlcHBcbiIsDQo+PiAtICAgICAg
ICAgICAgICAgICAgICAgICAmUENJX1NCREYoc2VnLCBidXMsIHBhdGgtPmRldiwgcGF0aC0+
Zm4pKTsNCj4+ICsgICAgICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiIGVuZHBvaW50
OiAlcHBcbiIsICZkZXZfc2JkZik7DQo+PiAgIA0KPj4gLSAgICAgICAgICAgIGlmICggZHJo
ZCAmJiBwY2lfZGV2aWNlX2RldGVjdChzZWcsIGJ1cywgcGF0aC0+ZGV2LCBwYXRoLT5mbikg
KQ0KPj4gKyAgICAgICAgICAgIGlmICggZHJoZCAmJiBwY2lfZGV2aWNlX2RldGVjdChzZWcs
IGRldl9zYmRmLmJ1cywgZGV2X3NiZGYuZGV2LCBkZXZfc2JkZi5mbikgKQ0KPiANCj4gTG9v
a3MgbGlrZSBgcGNpX2RldmljZV9kZXRlY3QoKWAgYWxzbyBuZWVkcyBzb21lIHJlZmFjdG9y
aW5nLi4uDQo+IChQcm9iYWJseSBvdXQgb2Ygc2NvcGUgZm9yIHRoaXMgc2VyaWVzLCB0aG91
Z2gpDQo+IA0KPj4gICAgICAgICAgICAgICB7DQo+PiAtICAgICAgICAgICAgICAgIGlmICgg
cGNpX2NvbmZfcmVhZDgoUENJX1NCREYoc2VnLCBidXMsIHBhdGgtPmRldiwgcGF0aC0+Zm4p
LA0KPj4gKyAgICAgICAgICAgICAgICBpZiAoIHBjaV9jb25mX3JlYWQ4KGRldl9zYmRmLA0K
Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfQ0xBU1NfREVW
SUNFICsgMSkgIT0gMHgwMw0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKiBQQ0lfQkFTRV9DTEFTU19ESVNQTEFZICovICkNCj4+ICAgICAgICAgICAgICAg
ICAgICAgICBnZnhfb25seSA9IGZhbHNlOw0KPj4gLSAgICAgICAgICAgICAgICBlbHNlIGlm
ICggIXNlZyAmJiAhYnVzICYmIHBhdGgtPmRldiA9PSAyICYmICFwYXRoLT5mbiApDQo+PiAr
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKCAhc2VnICYmICFkZXZfc2JkZi5idXMgJiYgcGF0
aC0+ZGV2ID09IDIgJiYgIXBhdGgtPmZuICkNCj4+ICAgICAgICAgICAgICAgICAgICAgICBp
Z2RfZHJoZF9hZGRyZXNzID0gZHJoZC0+YWRkcmVzczsNCj4+ICAgICAgICAgICAgICAgfQ0K
Pj4gICANCj4+IEBAIC00MDMsOCArMzk2LDcgQEAgc3RhdGljIGludCBfX2luaXQgYWNwaV9w
YXJzZV9kZXZfc2NvcGUoDQo+PiAgIA0KPj4gICAgICAgICAgIGNhc2UgQUNQSV9ETUFSX1ND
T1BFX1RZUEVfSU9BUElDOg0KPj4gICAgICAgICAgICAgICBpZiAoIGlvbW11X3ZlcmJvc2Ug
KQ0KPj4gLSAgICAgICAgICAgICAgICBwcmludGsoVlREUFJFRklYICIgSU9BUElDOiAlcHBc
biIsDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAmUENJX1NCREYoc2VnLCBidXMsIHBh
dGgtPmRldiwgcGF0aC0+Zm4pKTsNCj4+ICsgICAgICAgICAgICAgICAgcHJpbnRrKFZURFBS
RUZJWCAiIElPQVBJQzogJXBwXG4iLCAmZGV2X3NiZGYpOw0KPj4gICANCj4+ICAgICAgICAg
ICAgICAgaWYgKCBkcmhkICkNCj4+ICAgICAgICAgICAgICAgew0KPj4gQEAgLTQxMyw5ICs0
MDUsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBhY3BpX3BhcnNlX2Rldl9zY29wZSgNCj4+ICAg
ICAgICAgICAgICAgICAgIGlmICggIWFjcGlfaW9hcGljX3VuaXQgKQ0KPj4gICAgICAgICAg
ICAgICAgICAgICAgIGdvdG8gb3V0Ow0KPj4gICAgICAgICAgICAgICAgICAgYWNwaV9pb2Fw
aWNfdW5pdC0+YXBpY19pZCA9IGFjcGlfc2NvcGUtPmVudW1lcmF0aW9uX2lkOw0KPj4gLSAg
ICAgICAgICAgICAgICBhY3BpX2lvYXBpY191bml0LT5pb2FwaWMuYmRmLmJ1cyA9IGJ1czsN
Cj4+IC0gICAgICAgICAgICAgICAgYWNwaV9pb2FwaWNfdW5pdC0+aW9hcGljLmJkZi5kZXYg
PSBwYXRoLT5kZXY7DQo+PiAtICAgICAgICAgICAgICAgIGFjcGlfaW9hcGljX3VuaXQtPmlv
YXBpYy5iZGYuZnVuYyA9IHBhdGgtPmZuOw0KPj4gKyAgICAgICAgICAgICAgICBhY3BpX2lv
YXBpY191bml0LT5pb2FwaWMuaW5mbyA9IGRldl9zYmRmLmJkZjsNCj4+ICAgICAgICAgICAg
ICAgICAgIGxpc3RfYWRkKCZhY3BpX2lvYXBpY191bml0LT5saXN0LCAmZHJoZC0+aW9hcGlj
X2xpc3QpOw0KPj4gICANCj4+ICAgICAgICAgICAgICAgICAgIGdmeF9vbmx5ID0gZmFsc2U7
DQo+PiBAQCAtNDMxLDcgKzQyMSw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGFjcGlfcGFyc2Vf
ZGV2X3Njb3BlKA0KPj4gICAgICAgICAgICAgICBnZnhfb25seSA9IGZhbHNlOw0KPj4gICAg
ICAgICAgICAgICBjb250aW51ZTsNCj4+ICAgICAgICAgICB9DQo+PiAtICAgICAgICBzY29w
ZS0+ZGV2aWNlc1tkaWR4KytdID0gUENJX0JERihidXMsIHBhdGgtPmRldiwgcGF0aC0+Zm4p
Ow0KPj4gKyAgICAgICAgc2NvcGUtPmRldmljZXNbZGlkeCsrXSA9IGRldl9zYmRmLmJkZjsN
Cj4+ICAgICAgICAgICBzdGFydCArPSBhY3BpX3Njb3BlLT5sZW5ndGg7DQo+PiAgICAgICB9
DQo+PiAgIA0KPj4gLS0gDQo+PiAyLjUyLjANCj4+DQo+Pg0KPj4NCj4+IC0tDQo+PiBUZWRk
eSBBc3RpZSB8IFZhdGVzIFhDUC1uZyBEZXZlbG9wZXINCj4+DQo+PiBYQ1AtbmcgJiBYZW4g
T3JjaGVzdHJhIC0gVmF0ZXMgc29sdXRpb25zDQo+Pg0KPj4gd2ViOiBodHRwczovL3ZhdGVz
LnRlY2gNCj4gDQoNClRlZGR5DQo=
--------------Ax4fG7B1C6CHvK1AyveBCiOu
Content-Type: application/pgp-keys; name="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Disposition: attachment; filename="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7L
TBVHV/XOZw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJ
T4ny+OGntnJntUoRKRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJA
WicutjkkUgd28Bh6HV9EIumHtCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO
8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaTVqMdqul07o72m3eA2mf+LMu9a04FX/d4
wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/EoucejoZ5SH49ksmVAmKOLkt
OaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+SPhHar7TPKjFz0G3D
PNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89MXfQXZ3q
t1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWj
moACGwMECwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNz
uyOVCskwfUZPla6Zpd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp
0x0HfuhcYfAYPR46XHTvjaJEv99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuR
OxdK8G+YHccJY8PvWSq2K2yiae2KGiAv1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50
wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhPeP3IdpfWc8cyRLXF06Rk46YM
YCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcTUwgnYlFRk2FLq0Qe
KEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9Egr/Wmu3
MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEM
AKiQiZa3yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ
3DbVf+en3/FvdVZg2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTm
etSG5/52AjtmPFtlXAk0NmLvfJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0
s3109sJeXT5ImVdphFs9cvyZyBT9t1PbRowv58EgV0zE4hbAeVkULAbxFV5b/ExT
jjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKbYu6NCfiHfEyB3Xyg9hfdrRgj
MRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ovXoK4jm+Py0FiUGUa
A6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/eVtR2Q1w
ZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWj
moACGwwACgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiV
oUiHYN5QwhnbZnsaJDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764Qxy
X6rld2f2RcWkDuBHun55ZWXjby8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk
/dS0XTOQi2wVUb17sW/+ybCEokdVacZGzOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fu
oGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+lOWSvdNHgoEkWR0RXBPQjnGm
LKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/OffO485NOTKwGOxyWb0
06cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR8ULR9nX0
LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
x9fhaZEsniw8/bYgC3igkk5YJiOa
=3DlUIA
-----END PGP PUBLIC KEY BLOCK-----

--------------Ax4fG7B1C6CHvK1AyveBCiOu--

--------------N30O4PzHj1bWEgezF9Q86UDN--

--------------VdzMO0gutUTPpb1isbd0dYZO
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmoNiAoFAwAAAAAACgkQZg+p0QLLz9AY
EQwAk2dZ8ELxednBp7+0Q/DwovhCqg9/fnh9ReqZLbp1n9Ozhw8ApUkoIQTaJhaiycjWh4AvfZce
6aUl+jXFECy6cxvz7UYK+K9cwefryRmUl77PiDS0csWavcQNNLLtisOH2aXtWXjT22CHSAC9FOg3
kerOcLicY3n0CbBZKs/XHagXzhyEnMUSCU/cuKbmYF3YptDRgopB4AuYPWvt2pAx/0ApaYtqF5Zb
2pWVWo3XuUmpPjeaMb0Z54gobuLvcAjQRayJHRYtUxE0TNq8fp4fM+YMAHVmMlzgq4uzZE5C+bUi
GTsrgKnNrALg3L1B6WtnUpJgNfCNUQG/f87MqO67UoTPg0Foi7+7rZUwuRhKmdztT2Pm5/7e5f+M
eK0/elPCEjhbxx1ynaD3F7E6DFGgwucrAJAxdYxK2lNvvauHHd9Gvn+b6kFzjL3iFayK6laybDbN
uIELHIzbP82RezIEYZ5kEx6/xYlFZsKo5Mnk9WBF4BlROUcB6eRxtql3Kgrb
=Ip3A
-----END PGP SIGNATURE-----

--------------VdzMO0gutUTPpb1isbd0dYZO--


From xen-devel-bounces@lists.xenproject.org Wed May 20 10:33:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 10:33:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313809.1583865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPeEj-0001ta-RH; Wed, 20 May 2026 10:33:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313809.1583865; Wed, 20 May 2026 10:33:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPeEj-0001tT-Na; Wed, 20 May 2026 10:33:13 +0000
Received: by outflank-mailman (input) for mailman id 1313809;
 Wed, 20 May 2026 10:33:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <accek@invisiblethingslab.com>) id 1wPeEi-0001tL-H8
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 10:33:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPeEh-005eeI-T0
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 12:33:11 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <accek@invisiblethingslab.com>)
 id 6a0d8ddf-e002-0a2a0a5209dd-0a2a45058328-18
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 12:33:11 +0200
Received: from [202.12.124.153] (helo=fhigh-b2-smtp.messagingengine.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <accek@invisiblethingslab.com>)
 id 6a0d8de6-aaa8-0a2a45050019-ca0c7c99d4a1-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 12:33:11 +0200
Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 590A27A00E8;
 Wed, 20 May 2026 06:33:09 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Wed, 20 May 2026 06:33:10 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 20 May 2026 06:33:06 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm3 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm3; t=1779273189; x=1779359589; bh=ZzZRd/W+tw
	Uqe2StwJ6Eyg7n9htO5E4rntWCs+841Nw=; b=kXKq/+gPIJgFYtlBGfAwJ19V5E
	Q0Q44XkYpupxCV3Kkppy0UNSTMXUM5/feinb25g3+AcwkCrQo2u6PXU/j/XhYNX5
	glakQAO69I85vPRSWnEXY5oG7K1C9plc22VKhg9Knpgc4z+pImhheBnMvTd5uimk
	MOULPg2ZUcny7mV2EfaGqSHqI2YoKl+/Urwxgbm5FTRo474+WYsgiOmoDqIXzk9f
	LLZ3X14K5kpip8GkfzepPG623A7s3CaYePVxSc+EhN82uaOwhR0zv0MuCuRne/FR
	X50fE2UpOA19qr0wbxki7hhqF14MqDjyjDwtcqOGCmhuyNLQpDwV0fkVkPmQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1779273189; x=
	1779359589; bh=ZzZRd/W+twUqe2StwJ6Eyg7n9htO5E4rntWCs+841Nw=; b=M
	6/BMmMkQp02+XO39XlR6+3MdQKWzvCsySPhLID2T+Gve7yzmSnF85hEGcbPMszUG
	QmmoLJskBE9ZsRq0fO48x8gcOQRzXLOdLxXBo4Fd1uJnhum81XWXvjnLO98cPalM
	G3LH0jrWmkHyHiYvEA8pzTehPeTjsbnFu2Zc/9XiSQ7/AqRpgMXvaa3syoH2JEIa
	VvzOACS8zxI1ZAR27M9ZiF10dZmSeNWVUgBjt2mniW8BEwEP6bfxr1oDGnYD/c7c
	BgYdABEvNv5YfVhW8vTlYol4oJpuJv/1vfdVFSYC3h9RLHAhib8o+EqPbz4da+Xj
	4UhKCUG0QNMUNqg2foyJg==
X-ME-Sender: <xms:5I0Nava_KGOcmii07YGd8yeEXZrZRpVvkTaivlC8eo-7Tjrn6DjvEA>
    <xme:5I0NaiGzXr1qEMN_fBCr6DAZo84hxghiwKxJvUxq-JQwmswLY3xLGxH7Yj77Mk7Z4
    PgxSeR_UQnDqCXVKF9KBZMY09CLyQYhgxzC454e-0dobljI4FE>
X-ME-Received: <xmr:5I0Naqk4JT6gk5qMIGMUp84No-5854BMmVpLT5GF-7gZbUlGI0HfCWFD>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgddugeeggedtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpefuiiihmhho
    nhcutegtvggurgnkshhkihcuoegrtggtvghksehinhhvihhsihgslhgvthhhihhnghhslh
    grsgdrtghomheqnecuggftrfgrthhtvghrnhepheeuffeggfeuffduteelffdvtddvgfeg
    ffevvdetteekiefgvdekieduveeljeffnecuvehluhhsthgvrhfuihiivgeptdenucfrrg
    hrrghmpehmrghilhhfrhhomheprggttggvkhesihhnvhhishhisghlvghthhhinhhgshhl
    rggsrdgtohhmpdhnsggprhgtphhtthhopedugedpmhhouggvpehsmhhtphhouhhtpdhrtg
    hpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhg
    pdhrtghpthhtohepohhlvghkshhiihdrkhhurhhotghhkhhosehgmhgrihhlrdgtohhmpd
    hrtghpthhtoheprggttggvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
    pdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprh
    gtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgt
    ohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtg
    hpthhtohepjhhulhhivghnseigvghnrdhorhhgpdhrtghpthhtohepsggvrhhtrhgrnhgu
    rdhmrghrqhhuihhssegrrhhmrdgtohhmpdhrtghpthhtohepmhhitghhrghlrdhorhiivg
    hlsegrmhgurdgtohhm
X-ME-Proxy: <xmx:5I0NanA9DeGsBOAMK_sCitHFJ65iYXjPQqwxoOOJs8g9LK5PgehEKw>
    <xmx:5I0NasBQgJqHnds0eoW_meL61UrklCQnfWWK7JOh2Ifq7BLBzEXEuA>
    <xmx:5I0NauEgTaC4uJYxnXEtoQ4Um_duL9PSuXPI9x9KMY_XIucDq-mE8A>
    <xmx:5I0Naj65SNxjDe1fGsGiWpN7g_hMjLWQxVA4YPXF-vRMM5OKSfyLkg>
    <xmx:5Y0Napxz-a0FctNQORJYjzAHN6jypM3VLc_ufmpxGnqO0UGMheWR8Ikr>
Feedback-ID: i792e4853:Fastmail
From: =?UTF-8?q?Szymon=20Aceda=C5=84ski?= <accek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: oleksii.kurochko@gmail.com,
	=?UTF-8?q?Szymon=20Aceda=C5=84ski?= <accek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v2 for-4.22] EFI: Fix boot from a device without a file system
Date: Wed, 20 May 2026 12:30:26 +0200
Message-ID: <809b9976089eaf02e864684461ced4e939dbcc83.1779271357.git.accek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <5ee376dc0df448437f386ab2606c42d63a515ca1.1779194154.git.accek@invisiblethingslab.com>
References: <5ee376dc0df448437f386ab2606c42d63a515ca1.1779194154.git.accek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1779273191-E2F94443-E4806041/0/0
X-purgate-type: clean
X-purgate-size: 9995

When netbooting a unified Xen kernel image (via GRUB chainloader),
the resulting loaded_image->DeviceHandle does not support
SIMPLE_FILE_SYSTEM_PROTOCOL.

Instead of crashing via noreturn PrintErrMesg() in get_parent_handle(),
we defer calling this function until filesystem access is needed.
This way when booting UKI, get_parent_handle() is not called at all.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Suggested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Szymon Acedański <accek@invisiblethingslab.com>
---
Changes in v2:
 - Restructured along the lines Andrew and Marek both suggested on v1:
   defer get_parent_handle() until the first call site that actually
   needs a file.

   This mirrors the existing lazy pattern in ARM's
   allocate_module_file() in xen/arch/arm/efi/efi-boot.h, which was also
   changed to use the new ensure_dir_handle() helper.

Tests performed:
 - Same as v1: PXE-loaded GRUB chainloading UKI - failure without
   patch, success with patch
 - QEMU boot from EFI partition, with config, kernel and initrd on EFI
   partition too - success with and without patch (halts later in both
   cases due to unrelated issue)
 - Cross-compiling ARM64 - success

 xen/arch/arm/efi/efi-boot.h | 12 ++++----
 xen/arch/x86/efi/efi-boot.h |  9 ++++--
 xen/common/efi/boot.c       | 57 ++++++++++++++++++++++++-------------
 3 files changed, 50 insertions(+), 28 deletions(-)

diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index ea59de47e7..069cc68b0a 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -403,7 +403,7 @@ static void __init noreturn efi_arch_post_exit_boot(void)
 }
 
 static void __init efi_arch_cfg_file_early(const EFI_LOADED_IMAGE *image,
-                                           EFI_FILE_HANDLE dir_handle,
+                                           EFI_FILE_HANDLE *dir_handle,
                                            const char *section)
 {
     union string name;
@@ -419,8 +419,11 @@ static void __init efi_arch_cfg_file_early(const EFI_LOADED_IMAGE *image,
         name.s = get_value(&cfg, section, "dtb");
         if ( name.s )
         {
+            CHAR16 *fname;
+
             split_string(name.s);
-            read_file(dir_handle, s2w(&name), &dtbfile, NULL);
+            ensure_dir_handle(image, dir_handle, &fname);
+            read_file(*dir_handle, s2w(&name), &dtbfile, NULL);
             efi_bs->FreePool(name.w);
         }
     }
@@ -430,7 +433,7 @@ static void __init efi_arch_cfg_file_early(const EFI_LOADED_IMAGE *image,
 }
 
 static void __init efi_arch_cfg_file_late(const EFI_LOADED_IMAGE *image,
-                                          EFI_FILE_HANDLE dir_handle,
+                                          EFI_FILE_HANDLE *dir_handle,
                                           const char *section)
 {
 }
@@ -665,8 +668,7 @@ static int __init allocate_module_file(const EFI_LOADED_IMAGE *loaded_image,
     file_info->name_len = name_len;
 
     /* Get the file system interface. */
-    if ( !*dir_handle )
-        *dir_handle = get_parent_handle(loaded_image, &fname);
+    ensure_dir_handle(loaded_image, dir_handle, &fname);
 
     /* Load the binary in memory */
     read_file(*dir_handle, s2w(&module_name), &module_binary, NULL);
diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 42a2c46b5e..d738b839ee 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -284,13 +284,13 @@ static void __init noreturn efi_arch_post_exit_boot(void)
 }
 
 static void __init efi_arch_cfg_file_early(const EFI_LOADED_IMAGE *image,
-                                           EFI_FILE_HANDLE dir_handle,
+                                           EFI_FILE_HANDLE *dir_handle,
                                            const char *section)
 {
 }
 
 static void __init efi_arch_cfg_file_late(const EFI_LOADED_IMAGE *image,
-                                          EFI_FILE_HANDLE dir_handle,
+                                          EFI_FILE_HANDLE *dir_handle,
                                           const char *section)
 {
     union string name;
@@ -304,9 +304,12 @@ static void __init efi_arch_cfg_file_late(const EFI_LOADED_IMAGE *image,
         name.s = get_value(&cfg, "global", "ucode");
     if ( name.s )
     {
+        CHAR16 *fname;
+
         microcode_set_module(mbi.mods_count);
         split_string(name.s);
-        read_file(dir_handle, s2w(&name), &ucode, NULL);
+        ensure_dir_handle(image, dir_handle, &fname);
+        read_file(*dir_handle, s2w(&name), &ucode, NULL);
         efi_bs->FreePool(name.w);
     }
 }
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 9ea2183c0b..f90309624b 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -547,6 +547,17 @@ static EFI_FILE_HANDLE __init get_parent_handle(const EFI_LOADED_IMAGE *loaded_i
     return dir_handle;
 }
 
+static void __init ensure_dir_handle(const EFI_LOADED_IMAGE *loaded_image,
+                                     EFI_FILE_HANDLE *dir_handle,
+                                     CHAR16 **file_name)
+{
+    if ( *dir_handle )
+        return;
+    *dir_handle = get_parent_handle(loaded_image, file_name);
+    if ( !*dir_handle )
+        blexit(L"Cannot load files without a usable file system");
+}
+
 static CHAR16 *__init point_tail(CHAR16 *fn)
 {
     CHAR16 *tail = NULL;
@@ -1514,7 +1525,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
 
     if ( use_cfg_file )
     {
-        EFI_FILE_HANDLE dir_handle;
+        EFI_FILE_HANDLE dir_handle = NULL;
         EFI_HANDLE gop_handle;
         UINTN depth, cols, rows;
 
@@ -1526,31 +1537,33 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
 
         gop = efi_get_gop(&gop_handle);
 
-        /* Get the file system interface. */
-        dir_handle = get_parent_handle(loaded_image, &file_name);
-
         /* Read and parse the config file. */
         if ( read_section(loaded_image, L"config", &cfg, NULL) )
             PrintStr(L"Using builtin config file\r\n");
-        else if ( !cfg_file_name && file_name )
+        else
         {
-            CHAR16 *tail;
+            ensure_dir_handle(loaded_image, &dir_handle, &file_name);
 
-            while ( (tail = point_tail(file_name)) != NULL )
+            if ( !cfg_file_name )
             {
-                wstrcpy(tail, L".cfg");
-                if ( read_file(dir_handle, file_name, &cfg, NULL) )
-                    break;
-                *tail = 0;
+                CHAR16 *tail;
+
+                while ( (tail = point_tail(file_name)) != NULL )
+                {
+                    wstrcpy(tail, L".cfg");
+                    if ( read_file(dir_handle, file_name, &cfg, NULL) )
+                        break;
+                    *tail = 0;
+                }
+                if ( !tail )
+                    blexit(L"No configuration file found.");
+                PrintStr(L"Using configuration file '");
+                PrintStr(file_name);
+                PrintStr(L"'\r\n");
             }
-            if ( !tail )
-                blexit(L"No configuration file found.");
-            PrintStr(L"Using configuration file '");
-            PrintStr(file_name);
-            PrintStr(L"'\r\n");
+            else if ( !read_file(dir_handle, cfg_file_name, &cfg, NULL) )
+                blexit(L"Configuration file not found.");
         }
-        else if ( !read_file(dir_handle, cfg_file_name, &cfg, NULL) )
-            blexit(L"Configuration file not found.");
         pre_parse(&cfg);
 
         if ( section.w )
@@ -1567,6 +1580,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
             if ( !name.s )
                 break;
             free_cfg();
+            ensure_dir_handle(loaded_image, &dir_handle, &file_name);
             if ( !read_file(dir_handle, s2w(&name), &cfg, NULL) )
             {
                 PrintStr(L"Chained configuration file '");
@@ -1578,13 +1592,14 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
             efi_bs->FreePool(name.w);
         }
 
-        efi_arch_cfg_file_early(loaded_image, dir_handle, section.s);
+        efi_arch_cfg_file_early(loaded_image, &dir_handle, section.s);
 
         option_str = name.s ? split_string(name.s) : NULL;
 
         if ( !read_section(loaded_image, L"kernel", &kernel, option_str) &&
              name.s )
         {
+            ensure_dir_handle(loaded_image, &dir_handle, &file_name);
             read_file(dir_handle, s2w(&name), &kernel, option_str);
             efi_bs->FreePool(name.w);
         }
@@ -1599,6 +1614,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
             name.s = get_value(&cfg, section.s, "ramdisk");
             if ( name.s )
             {
+                ensure_dir_handle(loaded_image, &dir_handle, &file_name);
                 read_file(dir_handle, s2w(&name), &ramdisk, NULL);
                 efi_bs->FreePool(name.w);
             }
@@ -1609,6 +1625,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
             name.s = get_value(&cfg, section.s, "xsm");
             if ( name.s )
             {
+                ensure_dir_handle(loaded_image, &dir_handle, &file_name);
                 read_file(dir_handle, s2w(&name), &xsm, NULL);
                 efi_bs->FreePool(name.w);
             }
@@ -1634,7 +1651,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
             }
         }
 
-        efi_arch_cfg_file_late(loaded_image, dir_handle, section.s);
+        efi_arch_cfg_file_late(loaded_image, &dir_handle, section.s);
 
         free_cfg();
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed May 20 11:33:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 11:33:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313844.1583875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPfAm-0001nG-4F; Wed, 20 May 2026 11:33:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313844.1583875; Wed, 20 May 2026 11:33:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPfAm-0001n9-0D; Wed, 20 May 2026 11:33:12 +0000
Received: by outflank-mailman (input) for mailman id 1313844;
 Wed, 20 May 2026 11:33:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPfAk-0001n1-CO
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 11:33:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPfAj-00Cnhr-OT
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 13:33:09 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0d9be7-e002-0a2a0a5209dd-0a2a45018818-48
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 13:33:09 +0200
Received: from [209.85.208.45] (helo=mail-ed1-f45.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0d9bf5-c1f2-0a2a45010019-d155d02dec16-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 13:33:09 +0200
Received: by mail-ed1-f45.google.com with SMTP id
 4fb4d7f45d1cf-672645dbfeaso6351047a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 04:33:09 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-68738e20f86sm622667a12.9.2026.05.20.04.33.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 04:33:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779276789; x=1779881589; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=vjT9tOmgUBgHGv7WWQJyM8WLeUlcoezaeON/2eV3idU=;
        b=rpm3I6FzMvxXTDC6/fStvxHdgDxG52absRWqmkbO5e48ZmfBWvN2CZLViX/REyp8uj
         sgxyvfwnkZoUfmwfsqZxOSasi3d7aBDueo++VA6YdX3F99q2zFeH35CnHPvbMv5doZyl
         gChQfbFVLCn45cEkhfU0UiCp2rbYBk94DuioUvZnfdYQ/veyiHgrcq+bTGvUsDhgSKyb
         QI3+J1pHOUsD/4b2EFCFMLg9FF0xqEj1qOovHusB4nzaJ5L++MEpkk0XxpNOR40vpKLO
         63iIrAWevrhILX8AgN8jtpLk4ogbtGmndRbA49p7ESbGS76ojdBcqmRbGACtS2nsST8K
         l/Iw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779276789; x=1779881589;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=vjT9tOmgUBgHGv7WWQJyM8WLeUlcoezaeON/2eV3idU=;
        b=efMQEiYgcAC8wlhyYFL4hjMNwLevfddUs7y8zMJZIO4D72WEDxD6kd6/DPFSyaEVjB
         HSAGQeiYXUCs6pn6TsY6z6l4nrcyVEtiOTjgfITGZtWLfru7AAkdqn7x2pi01zS4lrWK
         hGZa3r+/FQwcuIJAMGJkqanomK0gbARJteryJ2chwhYa8pPwvR8o4xeyZBh9X/1wymmx
         Skwu75I3WUv6gDQaeswq4tCWl9t7JRLMtHwzZweYDvJz32reM3F3zFTPWycmZRjR8+Ty
         d+wwI8+VPGG3nnjAiIcioa2tzXDIgfvJctg1o6ciTlwHdN6fJeXNGH9yjZ9cXUpp6E/5
         wKRQ==
X-Forwarded-Encrypted: i=1; AFNElJ+2W/5FU5prW5jJ5IhYTYgArmN/dDM/DI/RL33F4eFKL0Ep11hKFGc402zSaf8pJ9xgoA3t+/oacAo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxEPsqUw6INFlUw6QLRqJQYs5BqHW5G98wNMAyLLOWIRsQil6HZ
	5dVWkxDI8NKKwmszTOfLW4JZY5t5Pg7UrBFjmNdALaztq3AZCtiM/BCX
X-Gm-Gg: Acq92OFroolBNurZiQEybdFbbGjtq2VmZXgTK/VXel4/GsRkFXOFpZ2ix6JmDeXej9Y
	BxR8kOd8I26ZyRDBczxqkXMK/BeKxXrm90fHX7w8L3ZeIV/R3O73V5L0VKb04SMeCQ04dleHPZx
	38AfvJYkhUza1YwinLVos3qmL3n6mvF2Afx0Jyi3zXKKwmTqkKFvUQkQJc5Ffaqr7ywwSe1w7da
	VT+hQX1OscpBla+oh7gXSS6bLsqCjuZrwmmPVdegqWSfKe41JFe+HMhoqMQYudxaT4kZUT4xAlL
	SugVUiKf3KNOtqC4Lpn+dAVrlgY4ZQF/3AbcQAtMl6cn7G4aletRtMyOAxY7f86AFh5+vdXM6yh
	QXmbNv4QWzopeU21WnLOuqXg8wmTvBviEYwdFc1QXoy5Pk2F3SfspjEjqUK7PgW1ryhXoj59SOr
	oevWmnrr1ekuB7+9tCuWvvJlk2VvIA4BQDgAErzFLq4/MJBoi+PpqWHvKltniZ9QA5ooh/YYcxS
	GM=
X-Received: by 2002:a05:6402:5bcd:b0:676:e2c2:9034 with SMTP id 4fb4d7f45d1cf-683bd28c712mr6927106a12.13.1779276789072;
        Wed, 20 May 2026 04:33:09 -0700 (PDT)
Message-ID: <12e89d4e-2856-4130-aaa7-1ec1a742c72f@gmail.com>
Date: Wed, 20 May 2026 13:33:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
To: Jan Beulich <jbeulich@suse.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
 <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
 <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
 <ea274abd-d7be-4fee-a147-936a8adc1c81@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <ea274abd-d7be-4fee-a147-936a8adc1c81@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1779276789-B7555FF4-C30E98E8/10/73395122804
X-purgate-type: spam
X-purgate-size: 4233



On 5/19/26 1:53 PM, Jan Beulich wrote:
> On 19.05.2026 13:22, Oleksii Kurochko wrote:
>> On 5/19/26 12:55 PM, Oleksii Kurochko wrote:
>>> On 5/19/26 11:37 AM, Jan Beulich wrote:
>>>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>>>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot inside
>>>>> the domain's shared_info page for vcpus with id < XEN_LEGACY_MAX_VCPUS,
>>>>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>>>>
>>>>> However, it does not guard against d->shared_info being NULL.  The
>>>>> shared_info() macro expands to a member access through d->shared_info,
>>>>> so when an architecture does not allocate a shared_info page the
>>>>> dereference triggers UBSAN:
>>>>>     UBSAN: Undefined behaviour in common/domain.c:325:10
>>>>>     member access within null pointer of type 'struct shared_info_t'
>>>>>
>>>>> Extend the existing fallback condition to also cover the case where no
>>>>> shared_info page has been allocated, mapping the vcpu to dummy_vcpu_info
>>>>> instead. This is the correct behaviour: dummy_vcpu_info already serves
>>>>> as the safe stand-in for vcpus that have no usable shared_info slot.
>>>>>
>>>>> Fixes: 295514ff75506 ("common: convert vCPU info area registration")
>>>>
>>>> I question this, largely (but not only) because I also ...
>>>>
>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>>>>> ---
>>>>> RISC-V does not allocate a shared_info page at the momemnt because its
>>>>> guests run in dom0less mode and do not use the Xen PV ABI, so
>>>>> d->shared_info remains NULL throughout domain lifetime.
>>>>
>>>> ... question this mode of operation. Yes, you may (for now) be able to
>>>> get
>>>> away without, but e.g. event channels will want supporting at some point.
>>>> Which will require a shared info page. Better put that in place right
>>>> away,
>>>> even if the guests you test with don't use it (yet). Certain other common
>>>> code also assumes d->shared_info to never be NULL for an alive domain.
>>>>
>>>
>>> Would it be fine than to allocate it in arch_domain_create() ... :
>>>
>>>       if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
>>>           goto fail;
>>>
>>>       clear_page(d->shared_info);
>>>
>>> ... but without calling share_xen_page_with_guest() after that
>>> allocation as share_xen_page_with_guest() isn't implemented at the moment?
> 
> I would have said "yes" here, but ...
> 
>> Or could it be an option for all arch-s move allocation of
>> d->shared_info to domain_create() in common just after arch_domain_create()?
> 
> ... Andrew's reply pretty much rules out not only this option, but the
> shared-info-page concept as a whole (for RISC-V). See my reply there. In
> the meantime, the change as suggested may then indeed be what we want to
> go with, albeit (a) with a better description and (b) perhaps covering
> all d->shared_info uses.

Looking at guest kernel code (Linux), FIFO is tried first, so if RISC-V 
is going to support only FIFO, d->shared_info could legally be NULL.

Looking at the Xen side, if an architecture decides to support only 
FIFO, d->shared_info is touched only in vcpu_info_reset(), which is 
called from vcpu_create().

All other places where d->shared_info is accessed should not be 
reachable except for one case in event_fifo.c: when a guest issues the 
EVTCHNOP_init_control hypercall, setup_ports() reads from shared_info(d, 
evtchn_pending):
   static void setup_ports(struct domain *d, unsigned int prev_evtchns)
   {
   ...
           if ( guest_test_bit(d, port, &shared_info(d, evtchn_pending))
               evtchn->pending = true;
   ...
       }
   }

This looks like it handles the transition from the 2L ABI to the FIFO 
ABI: if a guest started with 2L and then switched to FIFO, any events 
already pending in shared_info(d, evtchn_pending) need to be migrated to 
FIFO's per-channel evtchn->pending flag. But it looks like I am missing 
something here as I mentioned at the start that Linux uses or FIFO or 2L.

Am I missing something?

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed May 20 11:53:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 11:53:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313861.1583882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPfUY-0004nj-MZ; Wed, 20 May 2026 11:53:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313861.1583882; Wed, 20 May 2026 11:53:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPfUY-0004nc-Jv; Wed, 20 May 2026 11:53:38 +0000
Received: by outflank-mailman (input) for mailman id 1313861;
 Wed, 20 May 2026 11:53:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPfUX-0004nW-3i
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 11:53:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPfUW-0061VL-Fi
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 13:53:36 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0da0ab-e002-0a2a0a5209dd-0a2a4501a63e-42
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 13:53:36 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0da0bf-c1f2-0a2a45010019-d155802de11a-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 13:53:36 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-488a8ca4aadso47210005e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 04:53:36 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48febf8305dsm190937145e9.9.2026.05.20.04.53.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 04:53:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779278015; x=1779882815; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=cG4KY/LtA+rmaeWfv89MpY7etKVt+G0tiI317PH7v6A=;
        b=atfKcIwbZijwFTx2iegJXDnSMcT1t5imeMxuK0w4le5tnRsU2VsaNgxiDMYTNmEKDV
         7z5BT+1yar6EuwPEG4OA9OBbfTu61K6bHunXv3JiWhlRWTI3pw4R/1K8v+LxCGMYi1l4
         T6holSHYgKlhw1iezcJ1TfI5qMXKrdUfuz3XQLVPvVBrH8UEHTia8IZeSk+W6dM1NKoH
         bPOq4EPKA9DbXO+Ovx4P4f4HofRf6VTw6l+A7OVSwGbL8fNOsxny1Z6sr4JttKbIVtYa
         b7lvxnKfpvEUrGu8XpYjo0WgW6fOtH1irCKRrpvkiwdgGagbKqmgdWZkUnmmM+OS/2RG
         3MZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779278015; x=1779882815;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=cG4KY/LtA+rmaeWfv89MpY7etKVt+G0tiI317PH7v6A=;
        b=UUkXsNDMAcfdYdaNqbEcla1w5qYyxJ+oYGZuiVk0euHp/Zf/CSmgxqdbMOL7xstp2u
         5LJzK91+131NUyRdoEaC/e0OW0UwvN1PhtejtIgR80RX1N9zAdETW0lHDH5ed5OMW2OA
         Z7EeSKiHk7Vyqo8WcZMxMlJNy2xQrRLC3rfp+j6HimaaJ1Pt9jPx+O8MEFDrDStwX66z
         uZ/GWO98zgDpT2RjZbzgHhyd1kdFI6PiyqTtk4lRXpR6c9VD02jNf8v3KlqP7THIUgYE
         2AAdAbOHIMNckvfwGO/MF1hJC+d7bJnlR/h7/Qxqw38IC4qII6z/sOscTR14+YUonutd
         W24g==
X-Gm-Message-State: AOJu0Yz6fFstMkyCkSGKO324kwSScFt4VUgJ4TFPip9bZI82uwISFxTV
	gogXttZTZ0hJjg/I3T9ZTKTsE4ow+aFIVhhdJmHuhY6l7ih3xWKIMWorwuURMoWkiYBOhnBfNqQ
	zVXc=
X-Gm-Gg: Acq92OGo0YGPN67pIfbddvwfW8qtC9Q7mI9OZ55V0IVmB3eZIkuVsIPDu8rLBMal5KY
	p3C7BNgElyUGFfw7iEp03RHP9zU6fAcvDG/R3IerdrYG8jUBZ/GR7zmkHGniLry1eEPvrljaXSV
	e2gVOVn3mERxXcEsNHsrkTvAHlAp9BZIIfp3RZpqsNqKChmpbTJJ42IYQAR8j9LYIe/W4JvswQq
	DnyfwTT1HE6/ms2FZYkgkdTM/ELUaUeNS9hqo7cWk9xlaplBStrpizEj+o96Y+n6vnoH2NYLPkm
	QAWpacRmb9EMsnuE1nFXcJfxWCzZcusfVE0REtyf+Bx5qxTMJQ/Zg9dA/W7er9AWW1+KD8zJknA
	FhYQf6iCkw1hNP8dADcx41RE3tu9prMwYe/iX5YbZbBi7GZ9GbgocpQJCCV8BlaWhwOvHvvyqMq
	yOTjYkC+NSa1wfahQ4ZBdlDidBIz0Wn4qk8UdoiLj2KaVomgJXZShH0mXCPtwkp/uAuDgIct2RJ
	wogqMzx+ZBAMNw=
X-Received: by 2002:a05:600c:858d:b0:488:f453:b976 with SMTP id 5b1f17b1804b1-48fe651c8b1mr250303605e9.27.1779278015521;
        Wed, 20 May 2026 04:53:35 -0700 (PDT)
Message-ID: <7b23e011-56b8-4f6c-bd55-83e1d9b0453f@suse.com>
Date: Wed, 20 May 2026 13:53:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] Arm: do a 4th linking pass if necessary
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1779278016-B715BFF4-15E5E2A3/0/0
X-purgate-type: clean
X-purgate-size: 3148

The .rodata growth between 1st and 2nd linking passes may affect the
number of stubs the linker wants to insert, which in turn affects the
number of symbols. If symbol table sizes change after the 2nd linking
pass, insert another one before the final one. (As a comment in Linux puts
it, "In theory it's possible this results in even more stubs, but
unlikely.")

To use the $(compare-symbol-tables) macro in a shell "if", it needs
slightly adjusting (and then wrapping to be run in a sub-shell).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
There's imo no good Fixes: tag, since (aiui) stubs (veneers) may also be
inserted for reasons other than errata workarounds.

For context: The Cortex A53 erratum 843419 workaround in GNU ld comes in
two flavors: In the general case a stub is inserted, but if the problem
ADRP can be replaced by ADR (i.e. the target symbol is within ±1Mb), then
that's preferred and no stub is needed. The addition of the symbol table
data is what then results in the stub-less form to no longer be usable in
affected configurations. A possible countermeasure could be to move
.rodata ahead of .text. (Also, from looking at generated code, it may well
be that newer gcc simply avoids producing problematic insn sequences.)

Linux simply compares object file sizes, but I consider that fragile: A
change in size of one of the symbol table constituents may not necessarily
change the object file size, due to padding which may be in use.

Once we generalize linking, we may want to introduce an equivalent of
Linux'es KALLSYMS_EXTRA_PASS as well. I don't think doing this right here
would make overly much sense, though.

--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -99,9 +99,20 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).2.S
 	$(MAKE) $(build)=$(@D) $(dot-target).2.o
-	$(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o)
+	if ! { $(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o) >/dev/null; }; \
+	then \
+		$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
+		    $(dot-target).2.o -o $(dot-target).2; \
+		$(NM) -pa --format=sysv $(dot-target).2 \
+			| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
+			> $(dot-target).3.S; \
+		$(MAKE) $(build)=$(@D) $(dot-target).3.o; \
+		$(call compare-symbol-tables, $(dot-target).2.o, $(dot-target).3.o); \
+	else \
+		ln -sf $(dot-target).2.o $(dot-target).3.o; \
+	fi
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
-	    $(dot-target).2.o -o $@
+	    $(dot-target).3.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
--- a/xen/scripts/Kbuild.include
+++ b/xen/scripts/Kbuild.include
@@ -65,7 +65,7 @@ define compare-symbol-tables
     $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(1).sym; \
     ln -f $(2) $(@D)/.cst.$$$$; \
     $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(2).sym; \
-    rm -f $(@D)/.cst.$$$$
+    rm -f $(@D)/.cst.$$$$; \
     diff -u $(1).sym $(2).sym
 endef
 


From xen-devel-bounces@lists.xenproject.org Wed May 20 11:58:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 11:58:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313868.1583892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPfZB-0005XZ-7T; Wed, 20 May 2026 11:58:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313868.1583892; Wed, 20 May 2026 11:58:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPfZB-0005XR-3y; Wed, 20 May 2026 11:58:25 +0000
Received: by outflank-mailman (input) for mailman id 1313868;
 Wed, 20 May 2026 11:58:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPfZ9-0005XL-LM
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 11:58:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPfZ8-00GxHg-Ti
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 13:58:22 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0da1dc-5cb7-0a2a0a5109dd-0a2a450accb8-22
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 13:58:22 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0da1de-56b3-0a2a450a0019-d1558036c8b9-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 13:58:22 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-4891e5b9c1fso41358685e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 04:58:22 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48febf81970sm185677645e9.8.2026.05.20.04.58.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 04:58:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779278302; x=1779883102; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1DZmJ2eP7fo1cjpTosdZNGxpmiMnS2id7gX5PIEUn80=;
        b=SezYaZXFLAJdcGPRiUCsPLVghgmTya90S17N5z9yI1Xavx2z16xi5ehKiMykZ/zOSI
         vBqb5gncVGg2rDICYD1K8/ZRrNd0CjCeSfJydchwE7kj71UlwxMhviNX37ph1xhCR152
         UDM7F+7cVKTySKHml+Y1w9xaE0deiqw7cKY3l31A0xdRnlcwLiuQVnl3t5oX383E1Z1u
         BJkqRKz7WIWMReb9xNWhZDyY4VK+LtM1jUJ5AUMMFkC/2sxsFw1yHiA0j/c7shWMZTIS
         fwSwOtknpG6DhI7F78JQecrDx0+UwLAzLIR4uFO+ja7zksCXyQuMOjfZKjRQiucRw5pp
         YQWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779278302; x=1779883102;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1DZmJ2eP7fo1cjpTosdZNGxpmiMnS2id7gX5PIEUn80=;
        b=qZ40WhZ2s48jClECfA15f+uMy47GnXuI5jl8+12kpZUnlzNh9t+84IJ7TWxxsNE/dP
         QjyLw8b27tfClCLJcPdcaNm9t3XgUEEl6Itb1qaG1I+JG+QcJYgFCqnXwOCAYjbno2v7
         0SkoMNfi8fJLvkFhpNaGUtRmsGNRLy0Z7aq3VByIA7WSFVrI7x2VzVN6Ob0UDWrYFApC
         uNmqRfcgi3YmBdwRQwWalW/bxtASVvndzodJk0i2J0b5ZsyVo4y0xwws3WbWD+59ffmP
         qTHN8jDRGPTGMiY8s5AZu4zMa3wlmXadfLjCvkhaYofk4sFIC1TSpSPMOZuCjOls4qc3
         Oz1Q==
X-Forwarded-Encrypted: i=1; AFNElJ88fXHReiJIaZzLIX9DvKbMzNN7+5fYGQ4l0HV4e9ghoAXcAFiAsYcCGfjxrT9ft1WSsEQNtJfg8Yw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYROjt/vVepoonVqj2dLYbv47JmVoSug+LUSIs2LK95rmLc7sw
	ERfdQZabeW9cMJLLMQPuLNeQgr2Eh2LpEohg4EHKj9MI59lqOKYIPYi7kSqKLjKByg==
X-Gm-Gg: Acq92OGsCbHvXKIKtV/caed9zSra6lILZWKPIiBqF9cV7xpQaHQioGTll6QKAykTVig
	0x2LkLrz1RROLuP8UkgnJGc9dk/F59LqDT3aM1mCFc23YHi/y12vRcscvgbBHE+KK57iouo3khq
	5w/DAWNbq3Hwv+nN4MPFSG2334n9KkGKuMcY06+nTJbBcDC9WuCfRP3HHFYMkfTV6X2j4ErdOOt
	f1Z9nkYNZ9bD3SJv7Vr1Y4HCG/yLQb8VfE6bLGW/d+HB8vtTKs74KEBROPBq5Nzcie7j91/KR3l
	XwagfyUQVI1PM+x1h66awBkrV3pF3c5D1xTgBQeAJvb4Z7iLFwHe2HMjjAbnwX7/f3Na8CuT+iW
	8Y6M0zZj08Wbyuqq0+Zgo92YAAqSRykBZz4isiuVbF9woNe7Bjni9Ia+WQ53H6AiXNzIZMV2l3u
	kJcXncVvKNEtYkyscDgf3p4iRXBrcvCPEpPP1QNid7ismxDvQNze+jEkbA9gY/KW0wTsEgvr8dv
	bMEfRekYykra2oWdNDDHB137g==
X-Received: by 2002:a05:600c:5298:b0:48e:635a:18d2 with SMTP id 5b1f17b1804b1-48fe60e51d1mr369313745e9.2.1779278302160;
        Wed, 20 May 2026 04:58:22 -0700 (PDT)
Message-ID: <31ee4635-0eaa-41cd-8fad-223fb11cb9bc@suse.com>
Date: Wed, 20 May 2026 13:58:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 for-4.22] EFI: Fix boot from a device without a file
 system
To: =?UTF-8?Q?Szymon_Aceda=C5=84ski?= <accek@invisiblethingslab.com>
Cc: oleksii.kurochko@gmail.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <5ee376dc0df448437f386ab2606c42d63a515ca1.1779194154.git.accek@invisiblethingslab.com>
 <809b9976089eaf02e864684461ced4e939dbcc83.1779271357.git.accek@invisiblethingslab.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <809b9976089eaf02e864684461ced4e939dbcc83.1779271357.git.accek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1779278302-70F618B7-0FAC5660/0/0
X-purgate-type: clean
X-purgate-size: 2292

On 20.05.2026 12:30, Szymon Acedański wrote:
> @@ -1526,31 +1537,33 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
>  
>          gop = efi_get_gop(&gop_handle);
>  
> -        /* Get the file system interface. */
> -        dir_handle = get_parent_handle(loaded_image, &file_name);
> -
>          /* Read and parse the config file. */
>          if ( read_section(loaded_image, L"config", &cfg, NULL) )
>              PrintStr(L"Using builtin config file\r\n");
> -        else if ( !cfg_file_name && file_name )
> +        else
>          {
> -            CHAR16 *tail;
> +            ensure_dir_handle(loaded_image, &dir_handle, &file_name);
>  
> -            while ( (tail = point_tail(file_name)) != NULL )
> +            if ( !cfg_file_name )
>              {
> -                wstrcpy(tail, L".cfg");
> -                if ( read_file(dir_handle, file_name, &cfg, NULL) )
> -                    break;
> -                *tail = 0;
> +                CHAR16 *tail;
> +
> +                while ( (tail = point_tail(file_name)) != NULL )
> +                {
> +                    wstrcpy(tail, L".cfg");
> +                    if ( read_file(dir_handle, file_name, &cfg, NULL) )
> +                        break;
> +                    *tail = 0;
> +                }
> +                if ( !tail )
> +                    blexit(L"No configuration file found.");
> +                PrintStr(L"Using configuration file '");
> +                PrintStr(file_name);
> +                PrintStr(L"'\r\n");
>              }
> -            if ( !tail )
> -                blexit(L"No configuration file found.");
> -            PrintStr(L"Using configuration file '");
> -            PrintStr(file_name);
> -            PrintStr(L"'\r\n");
> +            else if ( !read_file(dir_handle, cfg_file_name, &cfg, NULL) )
> +                blexit(L"Configuration file not found.");
>          }
> -        else if ( !read_file(dir_handle, cfg_file_name, &cfg, NULL) )
> -            blexit(L"Configuration file not found.");
>          pre_parse(&cfg);
>  
>          if ( section.w )

Seeing in particular this hunk - why not have read_file() call the new function?
Most of the churn here would then go away.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 20 12:00:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 12:00:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313875.1583900 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPfbV-00075u-O3; Wed, 20 May 2026 12:00:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313875.1583900; Wed, 20 May 2026 12:00:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPfbV-00075n-LO; Wed, 20 May 2026 12:00:49 +0000
Received: by outflank-mailman (input) for mailman id 1313875;
 Wed, 20 May 2026 12:00:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPfbU-00075h-4I
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 12:00:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPfbS-0064tR-M5
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:00:46 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0da268-e002-0a2a0a5209dd-0a2a4503bac8-38
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:00:46 +0200
Received: from [209.85.221.46] (helo=mail-wr1-f46.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0da26d-672d-0a2a45030019-d155dd2eb527-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:00:46 +0200
Received: by mail-wr1-f46.google.com with SMTP id
 ffacd0b85a97d-45e8a834cc2so1562093f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 05:00:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9ed2f738sm52188037f8f.16.2026.05.20.05.00.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 05:00:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779278445; x=1779883245; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7vh+Jk6AkFaG+BUdY0B+EcwpmSUibGLaUtyDHyh//wg=;
        b=RPdrwH6/7EaElQV+QHSixq8o1z5xao8KUhf2ct1mhRxEbdzLc4Tjkx4Mk8Nq2qEhiQ
         TGxOQItGbJUqFx3sMV2J2UFGxwQGsKx4HOm5fGLFtulQsHZzk3SLNzTjACBuypUb+/6u
         YXRhhetkLsmLO6AOU8cbgmmevuSFBP04ccgG+7EZG1Q2Ky4ZhdKCF1/0ctjQiAh8G1MK
         kcPfXgpIT2bDVGf8ChpTsZyzvBm3474oD3z1dQ2sndmqllIt3Z/dQeFmMjBQ5lRBEdFm
         dxx6eJJCgQizztgJT9Lmb5uW5aNdqsqOedDXlETeWiYwu/3xO7ms40It9Yo9yAPNHZvt
         usDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779278445; x=1779883245;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7vh+Jk6AkFaG+BUdY0B+EcwpmSUibGLaUtyDHyh//wg=;
        b=nsvfNhY+SqOiTGhY6Mxn7UgfP06GZVREDctWa9R2V2/u2i29ByJI28bJy2gImRVJ0h
         e9D3rWN2XyJKxreEZTgcW02JzlekLuRTrJWAJTXmvhiEyGXIl5uzAiMQbBK2LEvQYF96
         0ydrcI/S/rqbtW67zjgSCWqv88I8F0BaRpxa5WVprby2iIVL/n3xxeAEzt+VFxXkcjl5
         lfkXiaLp2FcBD+X99kMyaJ780kaZFRqaLOrNreuJIlB9kQ3cjEmBUTf0Lmwb6owgrTlF
         E/vCcupW6axnL46CwbVJlXYKvKdHPu1NP/SRApQMOXtHhx2Z59R1oawIIk5wFnhOm006
         QRiA==
X-Forwarded-Encrypted: i=1; AFNElJ/NLisVuj456eFM2Uv0DW9a2Spt7/RhANnzu16psmiJWS2d8J2Xadv4Q06DpreyhOeyVFWWKOVqrUc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwaAlgGRNg8z05dMwIzwuGyc7y+iAzc7r+TQV5ECsjDSMIOVvkZ
	WI9643+1hMj8UbLMpqu4U/mJYeFdQiok/qVfH23wNb/Tnw3ZY0dFnS0NSi2tJPHzzg==
X-Gm-Gg: Acq92OGJnjb4oizAuCtN7v70hCEg66XxqUpkLBRHw1Lm/7KR+Mp1Xvxrt4e8cBWyUAN
	GozTTD5Bo7qAFvKsqjjvHuewiakhAGeqm2azXYqa57EmjnPRuhOf6rCW63SazA2cZ5aKKAdXXel
	Bu+m/seAm5uv2ccJVNz8cizXOUNo+c2ZrOtupuHczm2zf6plShzfiYmGws7Aojy07KoZLALFxub
	vALyK8K2J2Wjb6QybnMQ47QBiDlGLL44msUXweO0E/ObZAmspzZ6ZlQnb0uCf6X7AinBpqC/vgl
	kg8KMMHq4YOGxlltOOqslC6FwmoYXV9HIU8eeCHxi07CYHshbuxSx/P715GPfhjWlDfZoOb8JrQ
	S3hvJ1IdNTO+ngCsgrFWsuh6prTkVTNo/p1cde9hFmeqV01q0vFyIqhSJpjGCpP+1acu9aucGaO
	Met4Dgao3H/2Qlk1Y5yZjkJtekduv9u/uTeUzGTJoxxa8033BkD1aOxkGnvf4ByXHUw3IwkvpIw
	mJhEFrosb7Lxz3hC7BBrGEz231RqLB/aiLf
X-Received: by 2002:a05:6000:2f83:b0:43b:5097:6f62 with SMTP id ffacd0b85a97d-45e5c5952d5mr37053860f8f.36.1779278445118;
        Wed, 20 May 2026 05:00:45 -0700 (PDT)
Message-ID: <7cc23a66-106d-4159-bf52-48e4f468086d@suse.com>
Date: Wed, 20 May 2026 14:00:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 for-4.22] EFI: Fix boot from a device without a file
 system
To: =?UTF-8?Q?Szymon_Aceda=C5=84ski?= <accek@invisiblethingslab.com>
Cc: oleksii.kurochko@gmail.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <5ee376dc0df448437f386ab2606c42d63a515ca1.1779194154.git.accek@invisiblethingslab.com>
 <809b9976089eaf02e864684461ced4e939dbcc83.1779271357.git.accek@invisiblethingslab.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <809b9976089eaf02e864684461ced4e939dbcc83.1779271357.git.accek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779278446-41396938-716A4329/0/0
X-purgate-type: clean
X-purgate-size: 797

On 20.05.2026 12:30, Szymon Acedański wrote:
> When netbooting a unified Xen kernel image (via GRUB chainloader),
> the resulting loaded_image->DeviceHandle does not support
> SIMPLE_FILE_SYSTEM_PROTOCOL.
> 
> Instead of crashing via noreturn PrintErrMesg() in get_parent_handle(),
> we defer calling this function until filesystem access is needed.
> This way when booting UKI, get_parent_handle() is not called at all.
> 
> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Suggested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> Signed-off-by: Szymon Acedański <accek@invisiblethingslab.com>

Oh, one other, formal thing (for the future): Please don't send new patch
versions as reply to a prior one. They should root entirely new threads.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 20 12:03:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 12:03:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313882.1583909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPfeX-0007cg-4r; Wed, 20 May 2026 12:03:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313882.1583909; Wed, 20 May 2026 12:03:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPfeX-0007cZ-1u; Wed, 20 May 2026 12:03:57 +0000
Received: by outflank-mailman (input) for mailman id 1313882;
 Wed, 20 May 2026 12:03:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPfeV-0007cR-Aw
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 12:03:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPfeU-003szj-Ju
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:03:54 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0da329-bab6-0a2a0a5309dd-0a2a4507cb62-8
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:03:54 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0da32a-229c-0a2a45070019-d155802bc1d9-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:03:54 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-490229aa522so14630605e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 05:03:54 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48febe7dd22sm174526595e9.7.2026.05.20.05.03.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 05:03:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779278634; x=1779883434; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yW2WdulNizvKxY3NV0lffQCauWLj96CfNpycZyhRj+s=;
        b=O3aKlMl52znZvXD6eadddXVEFgwc5OjxvRnLByYp8DGfmvck8FT965wBrRhdCRdKUm
         /9+8Oh7c8APpCJvPGuGsTn6FP0qInRJMDNyShi3dkUqSnCdQPl4JfSERjuxGmlBVKXx6
         3slqk3iNfjPoyzxH7BozcWA28SEVt98OwWs9wJL6uBMLhmpS5cJ77oJfvxuIsZfjqJyk
         1N8RsfotvEhmSKtxDqFX0Iq0IZDGEUFd43DskdQAwLtBEGiLDAfjIsn00KO/4HBvuld9
         EHQeoJPME96wga1lh8jrRAkSMp/5CVqwGkeecW1Ogh10gqBe0HUJ7OwkVk1vJaJvNqOA
         qTbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779278634; x=1779883434;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yW2WdulNizvKxY3NV0lffQCauWLj96CfNpycZyhRj+s=;
        b=hhuoEPyJ0ROvyZ9f9S8HdNcJuzs4o+IdqSmV+9Ux2XH9NMQNRqjJjc5orbOaMdjcdu
         kJIVHFzcCMcXeCbAt+Uoe9KERycirvAeREzdexGRy1z9skKrt+dxKSCtD/5WMB3OGTxS
         0+9c77PhQgDfgF/PUU29oRORDKCvIwHlJrU16XIHFTigGVQgdjKtyVwbQrZCvlYEEP5t
         UX45Q4foeTpWl/pinCoNOLd8jWI40on7frEczbELbVJDzby1CIBf4sbrp93uv1O+usTM
         M+zeP/pzqZYHC+gjdaZfNy3YFPQzwaEr0cVLMtzqF/KlH1CaZMuK2V8D5ghF7CFRdbvf
         T4jA==
X-Forwarded-Encrypted: i=1; AFNElJ/t//401Z1XZIygl7+470bjq50t95FVBsBsrr309I4lellAHGF+Xkqh26bud+sJfwWsX7LgFhlE5Y0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyM1DiNqjXO9KiQ9FsNH91QsZ/RarHyBjwa0Ay8BmT8troiXDGq
	+ccFvxnQ5rPh1wYFMu26OKnCbC/voY+T3Iro2KLhh4A+DzjUqNS3jeINsN6sGUkalw==
X-Gm-Gg: Acq92OHY9NPdy+YmWulrU+3sMOoUwsOq+b6AXVxzYUQEI3UOFncxh/g5xAllgV9xagw
	zx8pd5kJt+MJBItEwywwfARRKT6PlIA6qHiCls55x1H+UUGvi4Ew+1L7RNzBqo8X3vOOMFTECM6
	+QIEYQ4Y8MX94RioeMjDa+dlhkg3dmxUZyqqPonO2oyuXrO1/qNbseS39sxuM+KVijjcWdfTqns
	J1m2wvmJxODtIBLNySI8vGPMUN9i0hEA31uQR+aPFtz0M7OVXvOSsA7aCALGoOsowWuWGFEb3E2
	2YlBIN10CAtMANRgDGIw+fTdkgUdTRnP8Ktt4pEHJKyuAt27/cXGkVp6vO8Y5exD9lV0USMm4wS
	Ia47UaJBmPBALsBitNwfZnR9aNUQfcDhV1+I/iNWlbVVvZVYdE2lfRgn4beJVg26TH7iqQ1Wst+
	a94NJluVHsMGrbJqISHtSg2Mq8Nb+QKusL2DZpIWvuFfIdZvLQaLRDUnWbgcLjaK8O7+6xSh9GP
	heiD3EOEcTtOfU/CltTgmeeDA==
X-Received: by 2002:a05:600c:4ed0:b0:490:778:4fec with SMTP id 5b1f17b1804b1-49007785052mr241394625e9.33.1779278633692;
        Wed, 20 May 2026 05:03:53 -0700 (PDT)
Message-ID: <2d8166e4-009f-4066-b96d-fb9e41b548a1@suse.com>
Date: Wed, 20 May 2026 14:03:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
 <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
 <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
 <ea274abd-d7be-4fee-a147-936a8adc1c81@suse.com>
 <12e89d4e-2856-4130-aaa7-1ec1a742c72f@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <12e89d4e-2856-4130-aaa7-1ec1a742c72f@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1779278634-09F6EC48-F09931CD/10/73395122804
X-purgate-type: spam
X-purgate-size: 4547

On 20.05.2026 13:33, Oleksii Kurochko wrote:
> 
> 
> On 5/19/26 1:53 PM, Jan Beulich wrote:
>> On 19.05.2026 13:22, Oleksii Kurochko wrote:
>>> On 5/19/26 12:55 PM, Oleksii Kurochko wrote:
>>>> On 5/19/26 11:37 AM, Jan Beulich wrote:
>>>>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>>>>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot inside
>>>>>> the domain's shared_info page for vcpus with id < XEN_LEGACY_MAX_VCPUS,
>>>>>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>>>>>
>>>>>> However, it does not guard against d->shared_info being NULL.  The
>>>>>> shared_info() macro expands to a member access through d->shared_info,
>>>>>> so when an architecture does not allocate a shared_info page the
>>>>>> dereference triggers UBSAN:
>>>>>>     UBSAN: Undefined behaviour in common/domain.c:325:10
>>>>>>     member access within null pointer of type 'struct shared_info_t'
>>>>>>
>>>>>> Extend the existing fallback condition to also cover the case where no
>>>>>> shared_info page has been allocated, mapping the vcpu to dummy_vcpu_info
>>>>>> instead. This is the correct behaviour: dummy_vcpu_info already serves
>>>>>> as the safe stand-in for vcpus that have no usable shared_info slot.
>>>>>>
>>>>>> Fixes: 295514ff75506 ("common: convert vCPU info area registration")
>>>>>
>>>>> I question this, largely (but not only) because I also ...
>>>>>
>>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>>>>>> ---
>>>>>> RISC-V does not allocate a shared_info page at the momemnt because its
>>>>>> guests run in dom0less mode and do not use the Xen PV ABI, so
>>>>>> d->shared_info remains NULL throughout domain lifetime.
>>>>>
>>>>> ... question this mode of operation. Yes, you may (for now) be able to
>>>>> get
>>>>> away without, but e.g. event channels will want supporting at some point.
>>>>> Which will require a shared info page. Better put that in place right
>>>>> away,
>>>>> even if the guests you test with don't use it (yet). Certain other common
>>>>> code also assumes d->shared_info to never be NULL for an alive domain.
>>>>>
>>>>
>>>> Would it be fine than to allocate it in arch_domain_create() ... :
>>>>
>>>>       if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
>>>>           goto fail;
>>>>
>>>>       clear_page(d->shared_info);
>>>>
>>>> ... but without calling share_xen_page_with_guest() after that
>>>> allocation as share_xen_page_with_guest() isn't implemented at the moment?
>>
>> I would have said "yes" here, but ...
>>
>>> Or could it be an option for all arch-s move allocation of
>>> d->shared_info to domain_create() in common just after arch_domain_create()?
>>
>> ... Andrew's reply pretty much rules out not only this option, but the
>> shared-info-page concept as a whole (for RISC-V). See my reply there. In
>> the meantime, the change as suggested may then indeed be what we want to
>> go with, albeit (a) with a better description and (b) perhaps covering
>> all d->shared_info uses.
> 
> Looking at guest kernel code (Linux), FIFO is tried first, so if RISC-V 
> is going to support only FIFO, d->shared_info could legally be NULL.
> 
> Looking at the Xen side, if an architecture decides to support only 
> FIFO, d->shared_info is touched only in vcpu_info_reset(), which is 
> called from vcpu_create().
> 
> All other places where d->shared_info is accessed should not be 
> reachable except for one case in event_fifo.c: when a guest issues the 
> EVTCHNOP_init_control hypercall, setup_ports() reads from shared_info(d, 
> evtchn_pending):
>    static void setup_ports(struct domain *d, unsigned int prev_evtchns)
>    {
>    ...
>            if ( guest_test_bit(d, port, &shared_info(d, evtchn_pending))
>                evtchn->pending = true;
>    ...
>        }
>    }
> 
> This looks like it handles the transition from the 2L ABI to the FIFO 
> ABI: if a guest started with 2L and then switched to FIFO, any events 
> already pending in shared_info(d, evtchn_pending) need to be migrated to 
> FIFO's per-channel evtchn->pending flag. But it looks like I am missing 
> something here as I mentioned at the start that Linux uses or FIFO or 2L.
> 
> Am I missing something?

Quite likely you aren't, but I didn't check. My earlier "covering all" may
well resolve to merely stating things accordingly in the patch description.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 20 12:10:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 12:10:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313894.1583919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPfkh-00010N-OW; Wed, 20 May 2026 12:10:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313894.1583919; Wed, 20 May 2026 12:10:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPfkh-00010G-Lp; Wed, 20 May 2026 12:10:19 +0000
Received: by outflank-mailman (input) for mailman id 1313894;
 Wed, 20 May 2026 12:10:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wPfkf-00010A-TO
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 12:10:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPfkf-003uYJ-9I
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:10:17 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0da4a7-e002-0a2a0a5209dd-0a2a4503c090-8
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:10:17 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0da4a8-672d-0a2a45030019-a237832f98d6-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:10:17 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id CA5FA4EE3D8A;
 Wed, 20 May 2026 14:10:16 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1779279016;
	b=PLrzmc2lj7NVUmyrrcg9kaBeqW0wQ+mFeIRwOMCvSWzPF+OqwnoXGGx8+0SD5D7WzJ/Y
	 S860M7E/ux9DN5oOZzkRjutspA0TPqdTwVIY05HaGN6gBfrNsNbR5uj1sxUOxcN+300Xe
	 wwEiLvxJkeRMfip5NW+kH4lNwgLuEQVGxJAT7aIK4A7mEpReqUGYfmaolt3cDRWcc+RWN
	 VSviPKY2GkN5CEnkSsjjmXuMs14nMw8Fxk9HT9LWSQxVtRGG3Xdi6ufMav/skXmilLNVQ
	 ALhs5ucNVBqx4w9+CNjtVhw0YLK6tQOfTAaWap0MtbDH2GXBrz4LDI4kGLxXB9laH24pd
	 kaAzPbDfVCG+ow5PO5rWhGuJ6YQhLBZ94WzIFYuLAXeBbr7/jKLCNzaMaWwAbwNjS5tlO
	 oXygfFAeJXZnQgG1esAtnCEkKDnV4q9mp1jkU1HlALyBCIOw1/yEyr2wg1QjP3yav7e1a
	 0GoxlLVxDXgoEwvegbTmHEco6qjctgZHE0mLUoofvlWAA9WswwxKvkmY/eY1no0QynuZj
	 zuBcVjCSzpBLkXRkIDhaQE1dBuCc8U/yPAlUM6LC1thzIg4IJ3TR9/9f4kRcMVxjA0HiT
	 LHsJLR7R1tRUKR0EQHco9qlsPPQduQl1nsgAu88iVXbGfDMzqC3/+wGURapLoho=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1779279016;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=g90j5HQfthglz82uSMzTSHjm3mEZ1dFfuSF71ADKbvs=;
	b=jCvbd7nrV83Tep8exxO+36AvQDH6X8DVXQ9FfSuFZB/yIYhRYnUt6I6ZF1akQq9X8Jxx
	 3LBW0fhKuJiPTiyacSb6ff2urwrtB5jnDqQR6l+9c4FCasfKcB2eMcRBQfR+lMnNBwjUb
	 5bv5rDjRQ5uUPQSGoHkKR8SPOYTXxbT6hDP8/OfPKhlodxwzqxy7n8yl9x/TZdSH0PU4E
	 Ns/8urZihsPrMtwIhNm/p7FA4yISkz6K/VDU15a/H79vwAH/nh/y4x40zSeijklpnQxQN
	 xv3fxAYEhGks+ej5QtAPiqfW/KOwICYFuV0LxBDbs/nWz7TnP3ASwj/wsUW9GNRmhWCnb
	 R40d7D3XNWwm8EyM5aE1cAHKQAyN14cvuNO5zitHPRb17jqOb9q8sTSfOqxu9oUludMNk
	 ofYuO8myz3l2PwZuyXQvPhdttDZ76GmkppMh/LrskLNh2x2EYwxA5MlMXYdifcl0pgiQT
	 2cSrpMVqxmhSsxrNlz8gbwsyzbupAumxM7e+iGR6blGAhu1VESt7tIeA+ULtNEjz3ljlx
	 FfvBUDXkFJ+xCj3Vsr/0YW51o2umTUhxkXMRefViG19ikG9mNhNfvCcwe/6S4zEv/Ntj5
	 hkndJmviHlezjzYD83cvbMYopOrqj14bz4qX0wtN416lVjiptltSvjRcGNi4RZM=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Wed, 20 May 2026 14:10:16 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Stefano Stabellini
 <sstabellini@kernel.org>, Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] CI: disable debug info for analysis jobs
In-Reply-To: <4f3a0cf9-63cf-405a-a19c-c8fc0473b2ce@suse.com>
References: <4f3a0cf9-63cf-405a-a19c-c8fc0473b2ce@suse.com>
Message-ID: <6ed5a037c10e2b896e1269c6856508f5@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1779279017-39D7B938-963510D8/0/0
X-purgate-type: clean
X-purgate-size: 2119

On 2026-05-20 10:20, Jan Beulich wrote:
> Its generating and linking takes time (and space), while at the same 
> time
> Eclair should be entirely independent of its presence.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Sadly the setting of EXTRA_XEN_CONFIG doesn't look to be cumulative
> (across "extends:"), so the addition needs making to all four eclair-*
> jobs.
> 

Maybe with anchors and variable expansion it could be made to work, 
having a base template EXTRA_XEN_CONFIG and then adding variables as 
needed, but let's not complicate this unless needed. Indeed ECLAIR is 
not affected by stripping flags currently (though I don't exclude it may 
in the future).

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2539557855
> 
> --- a/automation/gitlab-ci/analyze.yaml
> +++ b/automation/gitlab-ci/analyze.yaml
> @@ -47,6 +47,7 @@ eclair-x86_64-allcode:
>      RULESET: "monitored"
>      EXTRA_XEN_CONFIG: |
>        CONFIG_ARGO=y
> +      CONFIG_DEBUG_INFO=n
>        CONFIG_DEBUG_LOCK_PROFILE=y
>        CONFIG_DEBUG_TRACE=y
>        CONFIG_EFI_SET_VIRTUAL_ADDRESS_MAP=y
> @@ -105,6 +106,7 @@ eclair-x86_64-amd:
>        CONFIG_INTEL_IOMMU=n
>        CONFIG_EXPERT=y
>        CONFIG_DEBUG=y
> +      CONFIG_DEBUG_INFO=n
>        CONFIG_GDBSX=n
>        CONFIG_FRAME_POINTER=n
>        CONFIG_SELF_TESTS=n
> @@ -129,6 +131,7 @@ eclair-ARM64-allcode:
>        CONFIG_ARM64_SVE=y
>        CONFIG_ARM_SMMU_V3=y
>        CONFIG_BOOT_TIME_CPUPOOLS=y
> +      CONFIG_DEBUG_INFO=n
>        CONFIG_DEBUG_LOCK_PROFILE=y
>        CONFIG_DEBUG_TRACE=y
>        CONFIG_DEVICE_TREE_DEBUG=y
> @@ -206,6 +209,7 @@ eclair-ARM64-amd:
>        CONFIG_ARM_SMMU_V3=y
>        CONFIG_EXPERT=y
>        CONFIG_DEBUG=y
> +      CONFIG_DEBUG_INFO=n
>        CONFIG_FRAME_POINTER=n
>        CONFIG_SELF_TESTS=n
>        CONFIG_DEBUG_LOCKS=n

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Wed May 20 12:11:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 12:11:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313898.1583927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPflb-0001Rr-0d; Wed, 20 May 2026 12:11:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313898.1583927; Wed, 20 May 2026 12:11:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPfla-0001Rk-Tt; Wed, 20 May 2026 12:11:14 +0000
Received: by outflank-mailman (input) for mailman id 1313898;
 Wed, 20 May 2026 12:11:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPflZ-0001Ra-Io
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 12:11:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPflY-007XCj-K0
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:11:12 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0da4dc-2eae-0a2a0a5409dd-0a2a450acb1a-18
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:11:12 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0da4de-56b3-0a2a450a0019-d1558035ecef-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:11:10 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-48a7fe4f40bso57650765e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 05:11:10 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe5694fcasm368284335e9.5.2026.05.20.05.11.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 05:11:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779279070; x=1779883870; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Y0ixmEhnIn+bt53HAzXc3q5zzjNf9ZvQMkFxbuYcfyU=;
        b=K9bUOvPXyreVzRcxqrsSyzFhXBuVM5Jq0/oMTK5eSin0pvjzXIhHit5ERdS0cU/PG3
         gfRLLEfkjHe9iWqBPt8kLB4DSvQ5Y5ebO6tlYPzd78wN45LoZ/f25AY+STJWMg/8O48u
         p5D96FDZ6C4zxMWYm0XRMwPeTGwwa0Rm46DNpJhpz+OvXMUK9Ro/JQDmmvvLQrZVHDEE
         8AhsMs811qNGAXPJ37CY9CU4rU3R7g+KS8ENFQ/YX91YN47jwGBmeJTjvBiIj/2LIxdP
         N0tVrBGuDfWowgAQ6LtORuARTkQzf8EUW0tAxIREBJUrPnSzTMRforDg9kNBTGI5GORQ
         b8/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779279070; x=1779883870;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Y0ixmEhnIn+bt53HAzXc3q5zzjNf9ZvQMkFxbuYcfyU=;
        b=BZVJ+mLN/9eib0mW/tqwtNjXAg+ZK3b+r4A/WhXy4mqyC9Km89judyvGwzM68UATYU
         0AlJL+etdhUOENJE9as7D3ZIzInPycjV0rBC6jHZylp9olwys5IpS+c8NMqln8z7IdXE
         iHbhWKQPTlHWNb6p7nmALyMjc3hcgZ1JXqIISgIS0lxhx4C+tPCm8PDCoh/0yBNwSUsn
         O78FfTa499Hxu2tcJ11VIx9a8fLUAwhpBg/nA66oHUgSCMBVdUAYdt6PRy249qjnhf+w
         3GGifGqtPNflEDlGSjiN/1XbMvc6nE9WC6UlWGnqLuqqQvJKneyFZEsQkwdYKkATm8PK
         8ajw==
X-Gm-Message-State: AOJu0Yy59iNkWErMEusBmQeXYrNN8Xxam6XR5A1nkNSrJ7PYH1DK/zlZ
	fDun9k4KeK2yUnAfmdjz0neSSfbwmAEXN3N4Pn3hNETYFPBKNArE6v5qUEKVOvRV7L1GqA0yKic
	WEMc=
X-Gm-Gg: Acq92OEvT5c6R01XNxg3G3ZP2ev9ndz/m5HyR9VygyseuMzn2Sqf/x05Nv9HQK9NHZh
	t0ypfSpACWLgRO+PZzmL8GNPMb+p0c0lQIRNUGUnJk2sX9NP05+RDnV4RfOoIbBEQO1Hw1MgblP
	+iAS+j3gGoTK/U61JC2RRJLH303TJENfzceLpLmjHc0UPDY8TOxHnZ1dhTJ8mv/g98IRFwe9WrA
	2xz5LBOhyNY51gbomwiCNM5Oi4R+m4AHK/oz0jArAGuLiMyZpJfiFf5d4gbSK9j1KzYdqEYM4AZ
	1BBmMfd20VqxnHZICdMsglohVwJ4LI2VxE8oYXSNNFV2pB1mf1jRucPrcWsfavDfCAtoDVI0amM
	N2R3cl93lULkI9p0iaMs3JMyyumB6hQM2SidbodKxfOkHunPWUBD0QKIjuAix+284el88EHACUB
	7RP8Z0qqKt/5vb+MFt3Ai3Ynlm+LLtHVd0Ko3l/4YFDzuNXqQI9TTE2XIpliNW2Iy0oXE6Wl2/2
	FXY+Wl/Dd7e9ok=
X-Received: by 2002:a05:600c:a11c:b0:48f:e468:1761 with SMTP id 5b1f17b1804b1-48fe60e47afmr270980825e9.2.1779279070451;
        Wed, 20 May 2026 05:11:10 -0700 (PDT)
Message-ID: <7a2fb6cc-fc9b-43c1-9f4f-d5a573d52dbc@suse.com>
Date: Wed, 20 May 2026 14:11:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86: strip debug info for intermediate linking steps
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1779279070-72F718B7-58021305/0/0
X-purgate-type: clean
X-purgate-size: 2967

Linking debug info takes time, especially for xen.efi. At the same time
symbol table contents aren't affected by presence / absence of debug info
in the linked binaries (the ELF and COFF symbol tables would have extra
section symbols, but tools/symbols omits those anyway).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
The main speed gain is from xen.efi linking. Therefore I'm not even sure
if this wants mirroring to the other targets, where only xen-syms is
produced. It would mainly be some transient space saving there. (It would
perhaps want retaining when the linking steps are moved to common code.)
Thoughts?

On the system I measured this on, "real" time went down from 4.9s to 3.9s,
while "user" time went from 7.8s to 6.8s (all approximate values of
course, as there naturally is a bit of variance, and all for full
incremental builds with no other changes, i.e. mainly the final linking
steps getting carried out for the common/version.o change).

--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -127,13 +127,13 @@ CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_E
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
 	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
 	$(MAKE) $(build)=$(@D) $(dot-target).0.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) --strip-debug \
 	      $(dot-target).0.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S
 	$(MAKE) $(build)=$(@D) $(dot-target).1.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) --strip-debug \
 	    $(dot-target).1.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
@@ -205,7 +205,7 @@ endif
 	$(MAKE) $(build)=$(@D) .$(@F).0s.o
 	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
 	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds $< $(relocs-dummy) \
-	                $(dot-target).0s.o $(note_file_option) \
+	                $(dot-target).0s.o $(note_file_option) --strip-debug \
 	                -o $(dot-target).$(base).0 &&) :
 	$(MKRELOC) $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(dot-target).$(base).0) \
 		> $(dot-target).1r.S
@@ -215,7 +215,7 @@ endif
 		> $(dot-target).1s.S
 	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
 	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
-	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds $< \
+	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds $<  --strip-debug \
 	                $(dot-target).1r.o $(dot-target).1s.o $(note_file_option) \
 	                -o $(dot-target).$(base).1 &&) :
 	$(MKRELOC) $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(dot-target).$(base).1) \


From xen-devel-bounces@lists.xenproject.org Wed May 20 12:31:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 12:31:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313918.1583936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPg4f-0004fn-Ja; Wed, 20 May 2026 12:30:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313918.1583936; Wed, 20 May 2026 12:30:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPg4f-0004fg-Gf; Wed, 20 May 2026 12:30:57 +0000
Received: by outflank-mailman (input) for mailman id 1313918;
 Wed, 20 May 2026 12:30:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPg4f-0004fa-1Y
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 12:30:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPg4e-00H5Oa-Di
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:30:56 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0da97a-bab6-0a2a0a5309dd-0a2a4503bdc0-30
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:30:56 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0da980-672d-0a2a45030019-d1558030b49f-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:30:56 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-488af96f6b2so51998425e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 05:30:56 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9ed2f738sm52371893f8f.16.2026.05.20.05.30.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 05:30:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779280255; x=1779885055; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DyrjVMz/CBFQOrBzEWGj1Z+FYpZqcVY8M5LwV9dqMSM=;
        b=SdSAEV+IEEPJoI2rRi6+IVx4fb+/8ZYvWIMstZIWpmV92TNJOojXs72JCxXyLB2+VJ
         eXLZWkh8OTd84qsIlvethWbc9a9tvrs8eGp22IXlk61wxksi+zklSiLyiBetBTRHAW7w
         NMEPWs2s4iYCiMrykcKEfpTIhPLagTcFjpc5PhhH2CQWl11ImNb44UX3u8Xd8IpR2Cnb
         mmeiLcwhRj8gJ6M8x+joSPLrTJP6nUNHhP0s6uq2CHTCU9wFrtPR/XdvFYvCo/sQ5oEG
         uqayOIu1Yps+f4MMmkQ0gW7yermi/yzvm200lJRiwre+rGGPw2yJAJynbdQVRkVnmBM8
         FFdg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779280255; x=1779885055;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DyrjVMz/CBFQOrBzEWGj1Z+FYpZqcVY8M5LwV9dqMSM=;
        b=Y1w9nYTGvJrWi2Cz8F0uwVqckdUH77IJ0nGZxzPcnFOWl+cT6JLhtoz9eQN+nbSXJ/
         n/26CfZoCDkN68gMXs7EnM8CUwd/E7DUJ70mQZ/pwaFwJR2nAKKBs8fm4DRdNvqcpu25
         zUgocjY9cEUyrPAS/lCRcLTcahvlthR2N3XoZgw+4FbDb72tsdIBtw2vQu24Fwq77L+6
         zlu2tyv3+1zo+RZ5K7XK+a2kSxIwhA3Frt/nNAt+QNnRXUXH8zFCMiwNhgb3zN4JYNGx
         xnjArI+cwkrhI/rfdsS5LCeq/U0zetE2w0Nuaos3gekGpsu4XGHQ1VPBiU+3hbxr5ZaQ
         UNRA==
X-Gm-Message-State: AOJu0YxEnK8kJald4uxzue5c7ecmBBFdguko3QtYamNUVDkWCFgi/gb7
	XE4kKUH/2zDNEfcrgMFBw8TLy2FGHd5gsWpKcFEWDjeAf2yLy0iZAhRay7QpfVv8hMERsV49wx+
	WtBU=
X-Gm-Gg: Acq92OGd7dSKEreIDyt+JBFKDFqMpk6XfhLj8gDlAZnRNITzEo/rJgG3AnPiCTcGPu2
	V/xMZLXwutprTrlNZEMnZ7MiWly/9X5kE/VtDqR15I08ccQ6tkBkdKeBTbYdhYr7f+u/CXPKMSP
	iZq+AAX0RjeAteR74ZKXbsIk4NzxjJtEuedZINa5TFCHh1rVjZycVSAKhZubKTi+6x9OlNWUWsY
	Z5qdd5+B15lE7AId+zPERXj9Pu0kCgS3hHP0BKV9TRLT6U/Yy21b00ewSQrQRVzSOXDGBxWhFfb
	MDTAsv/mYn6TcqA8iMEoVCtk6/O2u7JVeeJrPE2jCB6YlZF4uOtT7LqLtPlDjbUVsmM2+uthc3Y
	IHMzhcgV9PFHHBuiXPPqh1FFlhgA2EXcrMJppHS+Pvgw8GMjDwnt8o27nl2YzfTLrNYU2efQ0Su
	/Vsrhno/s4ebinA9v+g4+7HILhAopAeqMQysRdFSXgMGs/O6WepQXNZ2Ry8Qk93B/k52g6UjvcD
	hwf2MrrL5aaKZI=
X-Received: by 2002:a05:600c:4504:b0:48f:d1b8:9a9c with SMTP id 5b1f17b1804b1-48fe60e14bamr350630225e9.7.1779280255553;
        Wed, 20 May 2026 05:30:55 -0700 (PDT)
Message-ID: <02d7f002-dc14-497e-bae9-a8c0c9460fac@suse.com>
Date: Wed, 20 May 2026 14:30:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 RFC] x86/time: avoid early uses of NOW() to return zero
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <68b1607a-f2a1-4f53-84c5-43c61eeb1869@suse.com>
 <agXwsshLlV50dcnV@macbook.local>
 <8fbab1f4-3078-4ac3-b147-84d1b5f5abd1@suse.com>
 <agcb1WAGLWDRYZ06@macbook.local>
 <547161b2-2fea-4576-a635-62838ffa2d33@suse.com>
 <ag2GzXm-yg12DQY5@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ag2GzXm-yg12DQY5@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779280256-3754F938-9332087E/0/0
X-purgate-type: clean
X-purgate-size: 3325

On 20.05.2026 12:02, Roger Pau Monné wrote:
> On Mon, May 18, 2026 at 10:05:41AM +0200, Jan Beulich wrote:
>> On 15.05.2026 15:12, Roger Pau Monné wrote:
>>> On Fri, May 15, 2026 at 09:15:40AM +0200, Jan Beulich wrote:
>>>> On 14.05.2026 17:56, Roger Pau Monné wrote:
>>>>> On Wed, May 13, 2026 at 08:44:46AM +0200, Jan Beulich wrote:
>>>>>> @@ -2623,6 +2640,21 @@ int __init init_xen_time(void)
>>>>>>      return 0;
>>>>>>  }
>>>>>>  
>>>>>> +/* BSP-only function to pre-set an approximate TSC scale. */
>>>>>> +void __init preset_tsc_scale(unsigned long freq)
>>>>>> +{
>>>>>> +    struct cpu_time *t = &this_cpu(cpu_time);
>>>>>> +
>>>>>> +    /*
>>>>>> +     * The incoming frequency is only approximate (nominal).  Increase it by
>>>>>> +     * 1% to make NOW() output rather a little too slow than too fast, thus
>>>>>> +     * avoiding a possible backwards jump once the final scale is set.
>>>>>> +     */
>>>>>> +    freq += DIV_ROUND_UP(freq, 100);
>>>>>
>>>>> To avoid such possible jump backwards, won't it safer to also update
>>>>> the ->local_stime and ->local_tsc fields at the time the new scale is
>>>>> set?  Updatign those ahead of setting the new scale should avoid any
>>>>> backward jumps.
>>>>
>>>> ->stamp.local_tsc does get updated; you merely dropped that line from reply
>>>> context. As to local_stime - how could we possibly set that, when we didn't
>>>> get through init_platform_timer() yet? Leaving it at 0 is the correct
>>>> match for setting local_tsc to boot_tsc_stamp.
>>>
>>> Please bear with me, maybe I'm not understanding exactly to what the
>>> code comment refers to as "possible backwards jump once the final
>>> scale is set".  I assume you refer to the setting of scale
>>> early_time_init()?  The ->stamp.local_tsc value also gets updated at
>>> that point, so it's not possible for the timer going backwards?
>>
>> It is updated there, but only to boot_tsc_stamp. I.e. no change at all
>> if preset_tsc_scale() set the field already.
> 
> Couldn't we do the following in early_init_time() to ensure time
> doesn't go backwards:
> 
>     if ( t->tsc_scale.mul_frac )
>     {
>         /*
>          * Update time snapshot to ensure time doesn't go backwards as a
>          * result of the scale change done below.
>          */
>         t->stamp.local_tsc = rdtsc_ordered();
>         t->stamp.local_stime = get_s_time_fixed(t->stamp.local_tsc);
>     }
>     else
>         t->stamp.local_tsc = boot_tsc_stamp;
> 
>     set_time_scale(&t->tsc_scale, tmp);
>     init_percpu_time();

Yes, this would prevent stime going backwards. But at the same time it
would latch the imprecise calculations done initially. The farther off
the initial scale (e.g. when using "high" in case "nominal" isn't
available, as discussed previously), the bigger the error. That may be
mainly (only?) a cosmetic thing, but still.

Actually, if we did that, what would prevent stime going backwards by
the update done in init_percpu_time()? Aiui we really want .local_stime
to be written there for the very first time.

> That's kind of the same logic that's used in cpu_frequency_change()
> ahead of calling set_time_scale().

That function is ripe for removal anyway, so I'm hesitant to derive
anything from it.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 20 12:41:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 12:41:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313925.1583946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPgEH-0006Qm-Fo; Wed, 20 May 2026 12:40:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313925.1583946; Wed, 20 May 2026 12:40:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPgEH-0006Qf-Cs; Wed, 20 May 2026 12:40:53 +0000
Received: by outflank-mailman (input) for mailman id 1313925;
 Wed, 20 May 2026 12:40:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPgEG-0006QZ-1O
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 12:40:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPgEF-00H8DU-69
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:40:51 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0dabd3-bab6-0a2a0a5309dd-0a2a4506d19a-0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:40:51 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0dabd2-7371-0a2a45060019-d155dd2ca9bc-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:40:51 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-43d75312379so3982472f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 05:40:50 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9ec39806sm52771104f8f.9.2026.05.20.05.40.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 05:40:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779280850; x=1779885650; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OVbt8LF2TFC/GW9jTs7SUeYjjipR2rJOKtaePna5zpo=;
        b=WT/d6FIaOf0P1HS1k/6FLrF8If1Aj2tleB7Q3qLxmTDw8f8hFixgLmeigy8O68eCzJ
         oPfjf8QDHyCu0086s+LmyLrzm1TcTo1sOHENbFosDRNsD9v9GHHSjIPLXGvBdWnlYMw2
         yfdOi1pEndjDYP0DTelOE4llYFKYBn18p92DaUd23h8QB+k1Y1TFssKqIzgVaUuUYx+d
         pJhJutOU8unoUbOxodZxuvttfCJU6vdqnuE4Rga6teQAghhLbDFD3vTCTfl7rxyLEENs
         ROb+LxSx3ijrVk3pi38Lg7NxDlelcpXtGv8P5hm4va7iClEJfakoZkz5lv+r93ZqzNa9
         AAYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779280850; x=1779885650;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OVbt8LF2TFC/GW9jTs7SUeYjjipR2rJOKtaePna5zpo=;
        b=GGAg8woHJioSfJlRr/QG5jTbiv0B8jEuV/toIUsyfgwTcC/2agMwvBP2uaBw3ZY/xH
         nlr3KJ+k3DgCEmDoOamoI9N/rCdKjHXMOS3WW2siP33eWWR9t4zPF2pJQBB/h+iwSXGO
         nauyeGkRAxAwzaaXaCVcjgkmJC6IyVOT6Cwg5Sv9hrLw/veFD5z1ejC1M77bLbVRUzAf
         hU03oIjB/kBr58p5D+xtrOaQ51m6Hg5QaGMKVJNtNCnTnEGdEVItUfDzBdesLckL326b
         OT8h59Ms0LHl5wW0/HLVaheslBDiVH7B5FMVXNLfCaVmFL+wke30IMVajd9v4oI8ZLf0
         WrjQ==
X-Forwarded-Encrypted: i=1; AFNElJ9Jnm/Hysc4fxi8bP9CUBNKhIBI21gSnMkn7Of3xQn0Ga6Ve0Rz4fSEaJmrVHFEHLFAiIy4EcmVthE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxESZDCiBD4rX3Xxiv5AIDlgalzYVL5FmMUfsKpitFVOy8AurjX
	LjIMvBTwa0S5BZGOcGav5xK4ng8gJUE9HAF5WBzZIR0+Q0Bj0qxCbfVMULlch3wJYQ==
X-Gm-Gg: Acq92OHpA6in6ySxo3jetvCPYE0XuHe9WZIDbwmkZ09cE1aP6qlykSs5kEjh8fHlzo/
	CXqjEC+3gCHcg8CeCBg3PX16ytPE6T/xlJ6Cf822jXgTvwXKHkQDDozaD6eiRMdWm8r/Kb1Cu3Z
	UF9IHPtsPKvU+nahRMQHmK40m+p5poJjl//21VYj1FntxltAqYnVdvhffRwRcmHfzPZoDNRDtpB
	BpR1mGE7FaTbzVm6SY/uxMTwXCWoM9tLgFsMXR4ka9Tz377bX2Q+ATPv6ALLgB0FgaZPCEvoNE+
	X56SB01cIRj+p7GGwpg0aVGNVG0lExEnCtGr1s75aFo5pLBQnnCi6GR12znA6kXnWRSY6jYZPvy
	oeSqA6d1Qh3anAsJcxZ9vhpfCUan0Vw1413ElhwndNdfFrqMuWOVU+7vH4psVk2cvojqi1itNWW
	DHgaytzzR1C0caOiaScIT4dJDkxnSH/6rDFfU2atAzmXf4HBc9uAESwa4fkl1QigSoFkyT6Pisr
	sLdRcpft6AfquM=
X-Received: by 2002:a05:6000:23c6:b0:450:ad00:86aa with SMTP id ffacd0b85a97d-45d92796fefmr27972862f8f.15.1779280850574;
        Wed, 20 May 2026 05:40:50 -0700 (PDT)
Message-ID: <abb57426-4336-448d-b529-bbef066d8ae6@suse.com>
Date: Wed, 20 May 2026 14:40:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 v6] x86/svm: Support vNMI on capable hardware
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, Jason Andryuk <jason.andryuk@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260514175623.1869042-1-andrew.cooper3@citrix.com>
 <559dc10a-d390-4723-8c52-f649a7acf8e0@suse.com>
 <79b1d15d-f18c-4cc1-a763-ea2d10d6f91c@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <79b1d15d-f18c-4cc1-a763-ea2d10d6f91c@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1779280851-87B7DD75-90B825AD/0/0
X-purgate-type: clean
X-purgate-size: 1539

On 18.05.2026 13:12, Andrew Cooper wrote:
> On 18/05/2026 8:53 am, Jan Beulich wrote:
>> On 14.05.2026 19:56, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/hvm/svm/intr.c
>>> +++ b/xen/arch/x86/hvm/svm/intr.c
>>> @@ -33,6 +33,12 @@ static void svm_inject_nmi(struct vcpu *v)
>>>      u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
>>>      intinfo_t event;
>>>  
>>> +    if ( vmcb->_vintr.fields.vnmi_enable )
>>> +    {
>>> +        vmcb->_vintr.fields.vnmi_pending = true;
>>> +        return;
>>> +    }
>> How does all of this work during migration to a vNMI-incapable host? The
>> hw feature is used ...
>>
>>> --- a/xen/arch/x86/hvm/svm/vmcb.c
>>> +++ b/xen/arch/x86/hvm/svm/vmcb.c
>>> @@ -185,6 +185,8 @@ static int construct_vmcb(struct vcpu *v)
>>>      if ( default_xen_spec_ctrl == SPEC_CTRL_STIBP )
>>>          v->arch.msrs->spec_ctrl.raw = SPEC_CTRL_STIBP;
>>>  
>>> +    vmcb->_vintr.fields.vnmi_enable = cpu_has_svm_vnmi;
>> ... unconditionally when available (i.e. the feature not being there
>> won't prevent the migration), yet the vnmi_{pend,block}ing fields are
>> lost during migration (aiui). Are building on the fact that all of this
>> state is already getting lost while migrating?
> 
> I can't quite parse the final sentence, but yes; migration has always
> lost the NMI state.

In which case:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan

> This goes largely unnoticed because guests don't issue their final
> suspend from NMI context.
> 
> ~Andrew



From xen-devel-bounces@lists.xenproject.org Wed May 20 12:51:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 12:51:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313935.1583955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPgOK-0008Ko-C0; Wed, 20 May 2026 12:51:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313935.1583955; Wed, 20 May 2026 12:51:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPgOK-0008Kh-99; Wed, 20 May 2026 12:51:16 +0000
Received: by outflank-mailman (input) for mailman id 1313935;
 Wed, 20 May 2026 12:51:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wPgOJ-0008Kb-74
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 12:51:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPgOI-00GBSv-B5
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:51:14 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0dae3c-e002-0a2a0a5209dd-0a2a4501e622-26
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:51:14 +0200
Received: from [40.107.200.37]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0dae40-c1f2-0a2a45010019-286bc825be41-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:51:13 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH2PR03MB8115.namprd03.prod.outlook.com (2603:10b6:610:27c::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May
 2026 12:51:10 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026
 12:51:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XSTc8pRj4KdXfaH8qh1n+/jaLj2FjxKykMuQUZT8s4rRV/aai8sFVqMTtvZ8NuETD/5WFW+1FcnlQ6QZMQ1hKGAAsadK0NVzczEPQwR4GHpGAdhllC3RQmAAW2nTuqw3GJ9PY3kIzGcWN5P/HqdRnC6Iu0AAPtU6D0sodipbb4KWxnJcjfE/Gzg0+MXBv7Fgd9yMCAaY/phYJ1iOcENfsJM4CxWwn9cA5++f+E0LT1sNXq4KRUXEiEoQ338PzRGtKHvuNFNwaScKOrj0/1gzcCZl4Ft+Xs5T2NETTAC58BrVYqEg76YhbSNqXD6tPf/pKNlbMf9XnXwXqQMvRYV+Qg==
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=ROiJdfBbYtCDwzlvt6d59DYPUqrM9XCpKmNjuIOAJes=;
 b=G2gzRGqfy2fIYPWbPh/9XrGOlLC/xdcesNsBNaHNSboIjjB0WaIUl7+F6pb2sprRmO1Ywyg5OZWLRFVRQEcQ/F7vpnqyZXBOF8j9vZzgdUHij9TUvJEel3h2F4/sGZZ2GaipSw0tiSToXq5B97lztGBj63WGiuQishnBZk+2Owmts3N6BVMwWF5OO0KquE213o8I3OYEECS693Kfb1srb6IPyZuCn9siomlXna2MsaDUz/Oc04WhcinOdu117SJLfFFY4gCIf9Erf6CXLzkKiNmU4jenr5EH+9UNefGy7Te3bx/AkFyX6X/2EzGvOku/z+W64taq6zkfeSIPBHKFDg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ROiJdfBbYtCDwzlvt6d59DYPUqrM9XCpKmNjuIOAJes=;
 b=WWsuagoEYWgXeURbNd6OvkMCfXU/tBToI6IBvvLxlMEcICi5VP1U9yfeQ5qF6qq0UYl2RYp+RxxiptqWJqZDHoszZ8/7vJdv1Q33EYZ6jCBhukDdwNAPexvLZW2+Ah6ANADiqGJxb3Nd6nsn7r6unTZfXZfEulQ/zXKDp4oGOTY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <2d995d54-40fd-48e1-90c9-fbf6a9933415@citrix.com>
Date: Wed, 20 May 2026 13:51:07 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86: strip debug info for intermediate linking steps
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <7a2fb6cc-fc9b-43c1-9f4f-d5a573d52dbc@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <7a2fb6cc-fc9b-43c1-9f4f-d5a573d52dbc@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0200.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:318::15) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH2PR03MB8115:EE_
X-MS-Office365-Filtering-Correlation-Id: 264b50eb-e750-4133-a187-08deb66e7783
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|11063799006|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	9KdkglwgcsuR0NALhJRxKdb8vtySiPcc2R7FOuQlMpJyTyhrE/e1mIPPhWJXoxUWnFqc+0DlAW/myGyft3E7WPtiEFrqC2tGY3I7HhuK+535D2KDp3VRp5XkC3FiHGzprnv7vNQmH1dCa182dkWSYPSLpnwKDkMZWULssXfa7QyyOiPItNof65NRA+9RbctJmihepsEO/iDqOmQZF6EIwTqBaG2YazuAOcj3/mZ3f4ejO9ptu/G6I/pIiZcmpVOMsEfTxAUWW8YFC/SXFxsSYSpN4bBtFD85C2p041gUwfYFcgqL/Owk4Zb+yekJPfc33VxQK0U/Bh1V4CBVqpmqfWwYgUApqmgrHfS8vPTGGpgolxF4h65bXXRKjsOZLVQ3SLyM9V9gnBi04WraAgV4hAt4vCkTklX19Y1f0CBcrVA6KjXw8yBQVcBkDGSGk1qT+T0aO/aocRW0Fd+gi0OAlo5dJnw/OQH68xpKA/vLyJZ1MB0ICRZrhn9iN+fvdC/Y9A2Xs9uKv/5pXTTiRm3DwmKvfncT2+icV1xpLc8gqZss4qZJ+KjN6FbM0M2ncQ/6SrRQe3cj7trd4IbGUhuL5HWb7xsHou83aM7mrriDkrk79Mvol+p7zY2FRATQ14rPKOim8wxXIAt5kX4PTSL5syENBmLuxhAx79/kNFIbY1v26jHQvkVg4Cg3CVU6zZA5
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(11063799006)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QWd2eGpXZ1ZLZTVTb3JaYUZGNUUrQkNIaElhS0xpMFkrQldtTkJjSGw5QXlN?=
 =?utf-8?B?ZTZINHNOREFaaHZPck0yN09GRzV0WTRLaFVwQTNtZVdkRFVqTlM0S0pKSW9F?=
 =?utf-8?B?R1VvUTNISGdPV1NORXZXVG1pQm9keW5JRGFBREowWVJhVHZONUw0bmpLcmM1?=
 =?utf-8?B?TU9WTmpiUHFFajlxK1BHOU9yZGJqYmpEdVZ0MGcwa3hHR21NeHhwM1NQWGtB?=
 =?utf-8?B?alVVUitJNm5BZzh3OUNDaklZdWtIZzhNcHhCSE1LY2JDZnlMcWFQSjRRSG1D?=
 =?utf-8?B?UnVSTmtQcnVEdk92aEZSMFh0S2w2MjZKOXRVQ0hzZUxBdC9MR1A2YWVFcTNB?=
 =?utf-8?B?WkZOYnJ1bFNXVldFS3NJRUJaVXNDL0p6UENkZkN1OS9qMThaSkVSRHlmVlJT?=
 =?utf-8?B?SWVlQnRNa0t2V0FlRkZ1eTA0NnBETVNqTU14NXBDNUYxdjc2eTRGZ1NxNXNx?=
 =?utf-8?B?VWxhbXlhSHZIY3c1bG8vZGkzNkMxUjVKbWRXQ2kvbU1lOEVGUVorRTVzaThq?=
 =?utf-8?B?SWM2Q25WUkVGUHZsZUMwNDgrK3o3Mk1ieklHdmtqQkxpREFudDZwRzJtOHJB?=
 =?utf-8?B?OTV3bGdodkVWWkFHSm1VQ0g4WUxGMzVZZ2FxOFllNGJhZGRQQldGSy9hV2xh?=
 =?utf-8?B?aVJoN0llb3czQlcwQUhVczhyNjVROEhXSVZKRXV6MmpJR2tYRVh2aE16UWVU?=
 =?utf-8?B?dkswR2VrdHNWUmVhV1JERFNEU242Mk1CbVFpYjFzRElUNzJBNHJaaGZ4ekRv?=
 =?utf-8?B?QmZLdmVkY0F0eU5kSTNrOUxZYzlWNTR3aS83UnBhRFZ4ZXM2OEFrU2J2aEdw?=
 =?utf-8?B?SDh4ZGRVVTRBVTQ5bVZjOEhXNmtPUkV1eWYrUHF1ZUdyL0tnU3pPWXV1VnFM?=
 =?utf-8?B?Q2VEaEo1bzdIM3VycExvSlJRVncxbmdCN0FUTWdTU3NlZGo1TUh5d3pJbCtI?=
 =?utf-8?B?U2M0eE9PWFdGdmxLZ3I0TGRXWWVQaXlPdjk1S2FuOFdQblZkd2VZVmxZcDVr?=
 =?utf-8?B?ZkpENmdPbTFLV3ZkYWdVdWNRZ3V3Q2oyMHZ5ZzlndTNNaEVlaHI2Sm5oUVM5?=
 =?utf-8?B?VmVYdE9NRm1hMjI3bDVIVTVMSnNKcVFERjNVY1NZVDVac1ZkUHlaUFczZWd1?=
 =?utf-8?B?empwU1MvWGtmcHk2eVQrZ1dGSmtEblpkQnRBUWo3YTBSeVl0L1lNYVpIRkti?=
 =?utf-8?B?Z1V1TFoyTWo0YWJDckl2WUg1WEt3MFo4d0x3WFdvTlkwNldMN0Rvek1BMCtT?=
 =?utf-8?B?ZHFaTHNtd1dJWFJtb3ZRMlluR0tZTGJKTjFvRm42aXE2eitMYko5bjlWZDEw?=
 =?utf-8?B?bks3R3RoMEtaMWFqRFIwZWZCNEFjSytEOW9wRis0eWJGOGNNR1A1azhnUkpl?=
 =?utf-8?B?azh1TjhNKzVWZy96UVpDL2hkcng3SHhjZ25sdEZpWVBncHlJOG11RVczNVdC?=
 =?utf-8?B?N1NsV1BRQXE0VjV3K1lwWkNSako1aXNHcllkdHlXdnI1aWdPdjFXU2JXYkRC?=
 =?utf-8?B?OHB1eGgrdGJGRWtrdDFqZ1gxYXV1V1o3V1liM2VCdTlRMnFUWVdZc1lGSEVy?=
 =?utf-8?B?azhZTlg5UTZBc1o3Yk5WYko0NVVOcTR4RGlROVh5clBuMWR1eUM5RTlLQXp6?=
 =?utf-8?B?MzNjbkh2YTBmQWNXb0dkdVNSMWZiTktLQXJtcmhKWkhERWpxK3h3V1Y3VjMy?=
 =?utf-8?B?b3FDMkNQRkE5cUQzdDFSQUpVOGJ4bTl1a3dlVVRHZ2gzL0U2ME9LVTJUZS9q?=
 =?utf-8?B?eDZTVlJCenVaRGYyVmZzMDRsblRJRWZYb1FWMFlNSitubEVYdk1yVDlwUVZX?=
 =?utf-8?B?ZVFXdUxxR0wxU3FiS3Avb0puUnVuTVFmTHpkd0dKRXMvNzlpY2pqaHJET2l2?=
 =?utf-8?B?bktCSVNwbC9TMGtWTGtmOGY5QlRRQmM2dnAxNUJBVXFtQW9ZREF1d05qZGFk?=
 =?utf-8?B?L3Rtc3I0dXptU1RxQTNkSjV3Ty94b2NHcmIwZ0JFejZJVnhIS2pPZmVMbG4z?=
 =?utf-8?B?allhb0p1NUllajBtTmFKa01DUzZhQ1QrUzlVcU1GTzhsTGhTL1ZpZ3dNam91?=
 =?utf-8?B?VXpRWUdKcTdBd3BoSnBlR1BNSUhTK3JlSGpXaWJMVThLQWtmTDE2UmlKMmlD?=
 =?utf-8?B?WHR6L2o1TVVFWW4rT2JyZkJ1UDJHMk9naWcrcy8xSi9udkhobzRyYnUyb041?=
 =?utf-8?B?aE1KdkZzdWs3Z2N1TkpEcmlNKzZmUm5lNUR0NUwxOUhjWmFQMDZmaXBZTzFI?=
 =?utf-8?B?N1FUZG55TU1LeXhtWTFyQnViOG1OZXRKNDlDdUlHbHZYNVA1WWhVMFZmQ2ZQ?=
 =?utf-8?B?S2ozV2ttSzg4NTFwRFpwOTJOUHp4NDhuSFNSbFhwY3hKR21qYnRDNSsrOXVU?=
 =?utf-8?Q?kUEktPatyGtFFVdo=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 264b50eb-e750-4133-a187-08deb66e7783
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 12:51:10.2915
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: XuOhyfgOqWXI88bgIv4lyuimtlrqf2qQCQ6tp7GFWBGZL4Ek8a6K9TmeYCTyTDm117TWBlvDoq5voTtd9NnSPKEW78kcULlpiIUVrtmfxeI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB8115
X-purgate-ID: tlsNG-d62444/1779281473-B5D41FF4-30898B69/0/0
X-purgate-type: clean
X-purgate-size: 1461

On 20/05/2026 1:11 pm, Jan Beulich wrote:
> Linking debug info takes time, especially for xen.efi. At the same time
> symbol table contents aren't affected by presence / absence of debug info
> in the linked binaries (the ELF and COFF symbol tables would have extra
> section symbols, but tools/symbols omits those anyway).
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> The main speed gain is from xen.efi linking. Therefore I'm not even sure
> if this wants mirroring to the other targets, where only xen-syms is
> produced. It would mainly be some transient space saving there. (It would
> perhaps want retaining when the linking steps are moved to common code.)
> Thoughts?
>
> On the system I measured this on, "real" time went down from 4.9s to 3.9s,
> while "user" time went from 7.8s to 6.8s (all approximate values of
> course, as there naturally is a bit of variance, and all for full
> incremental builds with no other changes, i.e. mainly the final linking
> steps getting carried out for the common/version.o change).

If it saves time, then good; this will make an improvement to my dev
cycle.  How does it fair on Ubuntu 16.04, where we've other known issues
about the debug symbols appearing to be corrupt?

It would be nice to be consistent across the board.  If we're going to
make linking common soon, then it's probably fine, but this does risk
becoming yet another mysterious difference.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 20 12:51:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 12:51:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313937.1583964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPgOT-00008n-OJ; Wed, 20 May 2026 12:51:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313937.1583964; Wed, 20 May 2026 12:51:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPgOT-00008g-KY; Wed, 20 May 2026 12:51:25 +0000
Received: by outflank-mailman (input) for mailman id 1313937;
 Wed, 20 May 2026 12:51:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <accek@invisiblethingslab.com>) id 1wPgOR-00007V-H5
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 12:51:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPgOQ-00GBSv-QO
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:51:22 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <accek@invisiblethingslab.com>)
 id 6a0dae46-e002-0a2a0a5209dd-0a2a4508e9da-14
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:51:22 +0200
Received: from [103.168.172.147] (helo=fout-a4-smtp.messagingengine.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <accek@invisiblethingslab.com>)
 id 6a0dae48-63b5-0a2a45080019-67a8ac939e4b-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:51:21 +0200
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfout.phl.internal (Postfix) with ESMTP id 1E1D5EC00A5;
 Wed, 20 May 2026 08:51:19 -0400 (EDT)
Received: from phl-imap-10 ([10.202.2.85])
 by phl-compute-02.internal (MEProxy); Wed, 20 May 2026 08:51:19 -0400
Received: by mailuser.phl.internal (Postfix, from userid 501)
 id 0F0BC216008A; Wed, 20 May 2026 08:51:18 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm3 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-Id:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-Id:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm3; t=1779281479; x=1779367879; bh=Jxj4b47lg2
	xi5Nsw0TfkSeTWxLc0RwisqW7frdYveYM=; b=guqbbH7AgGxL8WPIVjyqho33wZ
	5DVVWfngNM7flttNq8DJQL1E0xv2ysnzEsIEKVpRIs869h2v1UC8qFOT6DPpHkic
	54C/B87MxqtBfmQ0pevftSQTSEKeWKZfGKC7A5jF8nHLqWqpAubpAjTtl7kMX0in
	1yPLcqedVTi+wap2Wx83y8zbpQ3MO8CHVIFhUVIIpM3gSOH4xlIeYdO59NhD96B+
	sAV9A4phEv1R86twE4rn+Uag54+HnuoDJY/Y3TN8YqQWfu4htyt/9NKPnOvxpcQJ
	hfVTpI0hs87UwmbwlGb2zDoaobE5RSTwL1oaitAuMizASs2GZ8/iLT09q1sw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1779281479; x=
	1779367879; bh=Jxj4b47lg2xi5Nsw0TfkSeTWxLc0RwisqW7frdYveYM=; b=o
	idn6j/y5I0yK9UNSJCbJGelri8VrrqQs5MxJ+VlfrFx8I2gM4LaTnfMwoqIS1DRY
	sULKEubT6bCRslxOKKL3jQD/GrPK/7zmmJwPDhgnn7ENOs9589+K4GCgYyqc/Qxa
	49Nll2IEqxNJ0q7Y+4j+TJ8sX6mwsdvIv4njtdmPPAPZbqUafbR/FrafG963sd+X
	Y0MeiAhRa2MuIbj6Kow73/nH4dO8llzlHbtEtunW2IjFUfa+1c/K/WBVBO4N4BZ9
	I6KXgySvHBmku6dBRfS9oUbTruFkPexfBJYtspTgdg0n8KEGJSE4eHhgOAEPSDGa
	RlwBvhSPmNiEx3pAK4Xjg==
X-ME-Sender: <xms:Rq4Nag7dunH4LlK52QCdqRuZPoCN2dRnQJkv3T0yBBsMw5SX2HqOdg>
    <xme:Rq4NasuGoRfxBzws7584pcNOxm3xGf3UYtas37iHBQrafCGkueh3G2GbJ8Dte0PKi
    2xu7Y9WGoa5XIFHBP4CJA3SwuVUX7sgDPQr5PTbHl5kTFHxR2w>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgddugeegieejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepofggfffhvfevkfgjfhfutgfgsehtqhertdertdejnecuhfhrohhmpefuiiihmhho
    nhcutegtvggurgnkshhkihcuoegrtggtvghksehinhhvihhsihgslhgvthhhihhnghhslh
    grsgdrtghomheqnecuggftrfgrthhtvghrnhepheeghedvueetffegkeduteeuiedvkeej
    ffeggfevffeffffghfetvdelgfetkedvnecuvehluhhsthgvrhfuihiivgeptdenucfrrg
    hrrghmpehmrghilhhfrhhomheprggttggvkhesihhnvhhishhisghlvghthhhinhhgshhl
    rggsrdgtohhmpdhnsggprhgtphhtthhopedufedpmhhouggvpehsmhhtphhouhhtpdhrtg
    hpthhtohepmhhitghhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtohepughp
    shhmihhthhesrghpvghrthhushhsohhluhhtihhonhhsrdgtohhmpdhrtghpthhtohepsg
    gvrhhtrhgrnhgurdhmrghrqhhuihhssegrrhhmrdgtohhmpdhrtghpthhtoheprghnughr
    vgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopehrohhgvghrrd
    hprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehvohhlohguhihmhihrpggsrggs
    tghhuhhksegvphgrmhdrtghomhdprhgtphhtthhopeholhgvkhhsihhirdhkuhhrohgthh
    hkohesghhmrghilhdrtghomhdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhi
    sghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhnih
    eskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:Rq4NahLRS6RXJM0b9n0u56qSmeUr2EIVk1BdolZxuDf69qDgwKrskQ>
    <xmx:Rq4NajrQI9BzycuNuczjnEIEWUxQEUUOVmzh5BmSNzEELbmEiGvgfQ>
    <xmx:Rq4NanvPtabc9GRkWO1PXkerJZtldcS2QF8vJg9IFdxIkWpEz3InkQ>
    <xmx:Rq4NalIl4FAI020XVeaLXcXD745UZT-Y0qoNmkIfdgmnuZZirynebQ>
    <xmx:R64NatxzoUsANYSZG1oJQfKZjHbz6H4IvLWQi_9yCPhXk8mZ3RUngNlZ>
Feedback-ID: i792e4853:Fastmail
X-Mailer: MessagingEngine.com Webmail Interface
MIME-Version: 1.0
X-ThreadId: AjnajP81mqMc
Date: Wed, 20 May 2026 14:50:57 +0200
From: =?UTF-8?Q?Szymon_Aceda=C5=84ski?= <accek@invisiblethingslab.com>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: oleksii.kurochko@gmail.com, "Andrew Cooper" <andrew.cooper3@citrix.com>,
 "Marek Marczykowski" <marmarek@invisiblethingslab.com>,
 "Stefano Stabellini" <sstabellini@kernel.org>,
 "Julien Grall" <julien@xen.org>,
 "Bertrand Marquis" <bertrand.marquis@arm.com>,
 "Michal Orzel" <michal.orzel@amd.com>,
 "Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Teddy Astie" <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Message-Id: <b7708cbf-ea9f-4ba1-a93d-3981eacabbc7@app.fastmail.com>
In-Reply-To: <31ee4635-0eaa-41cd-8fad-223fb11cb9bc@suse.com>
References: 
 <5ee376dc0df448437f386ab2606c42d63a515ca1.1779194154.git.accek@invisiblethingslab.com>
 <809b9976089eaf02e864684461ced4e939dbcc83.1779271357.git.accek@invisiblethingslab.com>
 <31ee4635-0eaa-41cd-8fad-223fb11cb9bc@suse.com>
Subject: Re: [PATCH v2 for-4.22] EFI: Fix boot from a device without a file system
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c1860d/1779281481-B7D7BDB1-1810D5C3/0/0
X-purgate-type: clean
X-purgate-size: 3595

On Wed, May 20, 2026, at 1:58 PM, Jan Beulich wrote:
> On 20.05.2026 12:30, Szymon Aceda=C5=84ski wrote:
> > @@ -1526,31 +1537,33 @@ void EFIAPI __init noreturn efi_start(EFI_HA=
NDLE ImageHandle,
> > =20
> >          gop =3D efi_get_gop(&gop_handle);
> > =20
> > -        /* Get the file system interface. */
> > -        dir_handle =3D get_parent_handle(loaded_image, &file_name);
> > -
> >          /* Read and parse the config file. */
> >          if ( read_section(loaded_image, L"config", &cfg, NULL) )
> >              PrintStr(L"Using builtin config file\r\n");
> > -        else if ( !cfg_file_name && file_name )
> > +        else
> >          {
> > -            CHAR16 *tail;
> > +            ensure_dir_handle(loaded_image, &dir_handle, &file_name=
);
> > =20
> > -            while ( (tail =3D point_tail(file_name)) !=3D NULL )
> > +            if ( !cfg_file_name )
> >              {
> > -                wstrcpy(tail, L".cfg");
> > -                if ( read_file(dir_handle, file_name, &cfg, NULL) )
> > -                    break;
> > -                *tail =3D 0;
> > +                CHAR16 *tail;
> > +
> > +                while ( (tail =3D point_tail(file_name)) !=3D NULL )
> > +                {
> > +                    wstrcpy(tail, L".cfg");
> > +                    if ( read_file(dir_handle, file_name, &cfg, NUL=
L) )
> > +                        break;
> > +                    *tail =3D 0;
> > +                }
> > +                if ( !tail )
> > +                    blexit(L"No configuration file found.");
> > +                PrintStr(L"Using configuration file '");
> > +                PrintStr(file_name);
> > +                PrintStr(L"'\r\n");
> >              }
> > -            if ( !tail )
> > -                blexit(L"No configuration file found.");
> > -            PrintStr(L"Using configuration file '");
> > -            PrintStr(file_name);
> > -            PrintStr(L"'\r\n");
> > +            else if ( !read_file(dir_handle, cfg_file_name, &cfg, N=
ULL) )
> > +                blexit(L"Configuration file not found.");
> >          }
> > -        else if ( !read_file(dir_handle, cfg_file_name, &cfg, NULL)=
 )
> > -            blexit(L"Configuration file not found.");
> >          pre_parse(&cfg);
> > =20
> >          if ( section.w )
>=20
> Seeing in particular this hunk - why not have read_file() call the new=
 function?

This is because get_parent_handle not only sets dir_handle, but also sets
file_name to something like xen.efi or BOOTX64.EFI. The quoted code then
replaces .efi with .cfg to get the path to the config file to load:
> > +                while ( (tail =3D point_tail(file_name)) !=3D NULL )
> > +                {
> > +                    wstrcpy(tail, L".cfg");
> > +                    if ( read_file(dir_handle, file_name, &cfg, NUL=
L) )

I considered calling ensure_dir_handle() from read_file() for the other
call sites, but this would:
- still leave the explicit call in the quoted hunk, so it's a bit
  inconsistent (most calls implicit, one explicit)
- requires passing loaded_image to read_file + changing dir_handle
  argument to a pointer

Happy to do it in v3 if you think the call-site savings outweigh
the inconsistency and the extra argument.

> Most of the churn here would then go away.

The hunk above is the restructure of two else-if branches into a single
else block with ensure_dir_handle() on top. Most of the churn is
indentation.

Szymon

(ACK on sending new patch versions as new threads)


From xen-devel-bounces@lists.xenproject.org Wed May 20 12:57:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 12:57:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313950.1583972 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPgUT-00019h-Al; Wed, 20 May 2026 12:57:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313950.1583972; Wed, 20 May 2026 12:57:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPgUT-00019a-81; Wed, 20 May 2026 12:57:37 +0000
Received: by outflank-mailman (input) for mailman id 1313950;
 Wed, 20 May 2026 12:57:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Edwin.Thankachan@electrifex.com>) id 1wPgUR-00019O-FR
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 12:57:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPgUQ-0045TN-O7
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:57:34 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Edwin.Thankachan@electrifex.com>)
 id 6a0dafb4-5cb7-0a2a0a5109dd-0a2a4504a6fa-38
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:57:34 +0200
Received: from [3.110.59.181] (helo=repost.tmes-in.trendmicro.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Edwin.Thankachan@electrifex.com>)
 id 6a0dafbd-1dec-0a2a45040019-036e3bb5c06f-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:57:34 +0200
Received: from 52.101.227.96_.trendmicro.com (unknown [172.26.60.77])
 by repost.tmes-in.trendmicro.com (Postfix) with SMTP id 560E910000699
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 12:57:32 +0000 (UTC)
Received: from MA0PR01CU009.outbound.protection.outlook.com (unknown
 [52.101.227.96])
 by repre.tmes-in.trendmicro.com (Trend Micro Email Security) with ESMTPS id
 67B34100002F0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 12:57:03 +0000 (UTC)
Received: from PN0PR01MB8924.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:11d::6)
 by PNYPR01MB11012.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:2a7::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May
 2026 12:57:01 +0000
Received: from PN0PR01MB8924.INDPRD01.PROD.OUTLOOK.COM
 ([fe80::81f0:38bd:ddb5:ab49]) by PN0PR01MB8924.INDPRD01.PROD.OUTLOOK.COM
 ([fe80::81f0:38bd:ddb5:ab49%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026
 12:57:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
X-TM-MAIL-RECEIVED-TIME: 1779281823.424000
X-TM-MAIL-UUID: f19e9acd-0f21-43d1-929f-844febccb025
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZNv7k2HbeZ3C60kCVReRWyKQ2b1uY5puHJRtuIazPF1oVM8qKGxiG/5Pc5zp3C9ZttwMQymp7iXVpiJaHeH/CcLMXEzUFGW64Wb/fG1XjiyMDc9oYbizU9dZRj4LokDPNMCsZ3QoAa8viQTRiPGvFspKjMvv0yxIv3IxSleUl8Z3/vlL0V14GjeImQJnZ3tldKHeUBSnAkyJamq9mreejEj9O1XApLyWNmMxGPZHHOe6c9HL9tQvTaPTqbxRVX5zFRRaCcSSMz5ngWtX9YEBBlrQ7D59wvmm3yy7DX2XZIIN+exxObCf0amdTb17BEKswD88EOOxiPKocZ0TYSzulw==
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=c/rHjlZbXHG+RAYrjfiUIq+PxBLk66amCccPTg02BgA=;
 b=PJr2mk/wJQy2ZO2fgVm1Its76aTtuH2SOG0bqcNiIliMv6xxC6yqRf7aTWRW/h6uNt8O0ZAeokX9BT3ZdTzEAoUeQGAr/rpJNopmzzzPFUdxXUE7kFmcMuHYCqcRo8RE8t+/JKSLNDzVUgOKvKEJYH62jJ16GqZ+m939PZ05LyqH/4As+0DJQEcNdGfWyohBz2xg4dWFJc0oyMdw5Z2iXxumPXxp7b0ZTrHx8rVJ1mGOZcAwcSvfZqoNVSc1G7WTlT56ksxkLrRr6iuR+QEVR022KikRLCsREHizESGYJ2IYCLsbvBkywJ8rWhduYOrxIpvPazpXM7Y53vXQU7pauQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=electrifex.com; dmarc=pass action=none
 header.from=electrifex.com; dkim=pass header.d=electrifex.com; arc=none
From: Edwin Thankachan <Edwin.Thankachan@electrifex.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: unsubscribe
Thread-Topic: unsubscribe
Thread-Index: AQHc6FghEC3STlxKe0KikvTZD7+mZw==
Date: Wed, 20 May 2026 12:57:01 +0000
Message-ID:
 <PN0PR01MB892424B0AE38BCAAACB0C659EC012@PN0PR01MB8924.INDPRD01.PROD.OUTLOOK.COM>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=electrifex.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PN0PR01MB8924:EE_|PNYPR01MB11012:EE_
x-ms-office365-filtering-correlation-id: f1a7b0bc-d3cc-4b6f-0cc3-08deb66f48e1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|8096899003|56012099003|18002099003|38070700021|13003099007;
x-microsoft-antispam-message-info:
 j6qVIh6e/95Y0T0ZGMPGLtrNM1bmkTVm6aYR6EXMuRW8Tjq3ueNVj6KCKL4l4/3ICJGAG+hZoMnp4zoqh0FBzatQWNbzG3gBNEgAt5q9sHpcbovJdYlAMt3EH3SLN1lvsjm3wud0r3g7kbs0TQ4ecNR8qhmE1eItqmBdnL5RqZphVQQ2UomRdkOcUe1zLG3lFD8g05jmjfNLPqe+7KtGw1sV24qTKNEApkbj1GZJ1Lg9CWdHBSqb3WE7wuRV3Ltk/rYoXcTzQSwKBPY4HKBjZkYgPe1mtNopX168vB+WZG1yYEDIpxOeA1eJrbGs38xFzxeveNe43bhqQ8QQu6WTJMBzlkA9bZaqTV0ZjQEFCNFdLBA1erthxPP2aVGS+3tcnjkT63lcp8J5WmTQ+Qyd+YyHdfiBzcvuJsgFOfxlRxUZE7mZ0GUKIagpQ3XFVowBNQU2H8JiKYleeuZifkiYIrFeFI42B7frilh4mwyeVdHvwjbAtUStJjau/EFd7Z5AIcIMlqC7zbv+2eYUUZLjMCzTPv+X8PtZLRZrPr71jXSxWGlWkz3ATm6uM14qX+vCFmIMHs22NVSGEhHf6CP/RYAWsVCI7no2zjCdkLXfpge82PJnFCPJcr/7bf3b/cmntJDX8gMWV7h1+mGN4JXXDxQIHNnTtC4ThLnWZ/gFswDM2NmrgSvW+r5SGds4QEDG
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN0PR01MB8924.INDPRD01.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(8096899003)(56012099003)(18002099003)(38070700021)(13003099007);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?tMiW3J176mOqoidxLCl1Ve8RkFm5BsVUc/u3RGE1hW0PCxvvbFKMqbn0dU?=
 =?iso-8859-1?Q?b36U5dB6vE/o9dx/CUeUbFO0HnrVthj7NSR+BTsG6o5QFKbFSC046ftymC?=
 =?iso-8859-1?Q?FBRGGQ1KEL5leLSa4YJi9vye57PnYnJSmiddqnVYws/H2viU4bGcDDAgZc?=
 =?iso-8859-1?Q?aX3o0qeSZcgRGBG2RURXdaolHKn/izSczJHBBwDOM/6QPEjrv0ioreOZkK?=
 =?iso-8859-1?Q?1f0hDaORps5ubrKzFTgHY/qWxErzE6dAogar/L5I0WbRXYRfzYcnJmDgkf?=
 =?iso-8859-1?Q?/m0FvYDCa85CBQdwChArRCXUU2lClBUsIsmw10xlEEUMxP5pGqsAW/8MPn?=
 =?iso-8859-1?Q?RQd1n88imVmbZcv/9D0OO+zVZ/wt8i62k8ykoaM1ms+0JBIFKm3p2rqxPQ?=
 =?iso-8859-1?Q?DDqBp1aEldYhwAdGr6GCqaorJZAnoOatIOPIoqXjf9QXb6qKXH+XSvybbU?=
 =?iso-8859-1?Q?ikrqFhP7o7g9VJOeGuYGFVP76BUG83lPqTJ8AOVpXIfs4EHcP33rEsp9en?=
 =?iso-8859-1?Q?pTo1F7TuBF04nuMIzkznzBP84QppI4IBvdBBHtd5kvNscdO/S9EsAB1FvJ?=
 =?iso-8859-1?Q?KhX5Idc8MDV9CQOHk+NKxUschgrDqkca3m2XR5Iqg8Wi5aCZvNkppp1jms?=
 =?iso-8859-1?Q?VcYCRbDrI24dmje+rnmJ0+ZFSEYbsZ5mAWI8PU6dYDSDr+FwdpKPrw/rPU?=
 =?iso-8859-1?Q?o8Hmr+cUX98tovJzZm0u5KEtRBsW30T74U12GTfAlFkNdfxNAW03wKJiMd?=
 =?iso-8859-1?Q?vzNbn7UBgMZN3+JqUvhFSYbz6jP7mka/NDR4cyfW4g1bTvfsHkTd/2917a?=
 =?iso-8859-1?Q?D9Aksuc4mSe1m5JR8apXJXO3U9eSoWHp8x7+chZyb6LtNUyIIIIzTctW36?=
 =?iso-8859-1?Q?+r+M38AXo9Vdz7s80fc+a3H4r+groUpv1eUQJsorWqBZ3ZfJO5wa6kff0q?=
 =?iso-8859-1?Q?ecVpqjQPALMyAzvnap40PoYLxkTZZL1RREsSqzs57BX6igT06pqzrNAnKN?=
 =?iso-8859-1?Q?o8Px4LSBxtkarXl3sNFFGUVX/J3WOoNUmAewCCEKAgIUaPcQwtHrr6ru6T?=
 =?iso-8859-1?Q?d/qBWZXj6vCkMQHmCiikVt5vJArgwENDZC+7ASh+1d5+ccqZrG7LESJX9u?=
 =?iso-8859-1?Q?O4ByBZXrqsXK404V2i2u59Ip/x3pqQjmvQ3jdmW89H6lYHUBtlqb9n6ei+?=
 =?iso-8859-1?Q?JciBcPHzmZYhI4HtZeMgkJKlW6v4uiqU2fHAtDZA93UxuW6GM1DFGwXQDe?=
 =?iso-8859-1?Q?Hrh6aBV6epEYsyHNALcDdmIFiYKZl40aYHEYOiFTKD/k1y0jSAmYS0rb8y?=
 =?iso-8859-1?Q?K4+LtTSNzEpIj7emvA5SC7I4y+N/D+9gm/NoY+uE32vuec6mHg/GvGdPpX?=
 =?iso-8859-1?Q?WwM35PMG2IGqByGyIxg+T0dw57KDpf2V6CMESw4MyGprtOOPeOGYAd0j5y?=
 =?iso-8859-1?Q?wiTgdQWHFyhIqko5Sl9IZnZKpqqtEgxlWPUwp9jdFBNdwGOSer6ZaSggfQ?=
 =?iso-8859-1?Q?P3AYz1rHnbKoUyRA6kqfpUevRgEQeyUQxtMfHaVT4trKaQgA1qCj3f3ISc?=
 =?iso-8859-1?Q?MG0OjyBPoHq9XN5AleleSpCrrst0YXT/4gkSG0p0ebf4YEGGK5v8DvTaxt?=
 =?iso-8859-1?Q?vvfo4tFckA6QlwkD8FjnLaNZ6sylBtsdXau25pNoXrEW84VlWDfbbCiEAZ?=
 =?iso-8859-1?Q?5bISTjV4H9dfwJsDaGj9Y2BPyk2LOOGhkR/TFtL1gqaJGDrQw3WgaXo64Y?=
 =?iso-8859-1?Q?ThyP0rdM12tHfPdHCutH7gHQc4xoYQeoo8bjFVSxtB+kA+o7dFGewc2fQG?=
 =?iso-8859-1?Q?V5PcyMV7+mPPnobJG4M5b1eNZa/BZZQ=3D?=
Content-Type: multipart/alternative;
	boundary="_000_PN0PR01MB892424B0AE38BCAAACB0C659EC012PN0PR01MB8924INDP_"
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
	JpaM87Zpxgz1W7KrN1DRAylwoiQiYMr8dM5sYdk6F2tNBu+tvqUCGepmF2/VZvwyhz0k0xlmYbDkMj51Wv7N79WB8E+QtES4U78xH57Dr8Iq5i7KsUuZ34Ull20CN+75VQRTMbyttmQoG4TgncuBSwbvVuA+eGRlTbpfn8mB6r/O8oDIf8Xa0oOxKKMwooD3CVEetQngMDXY05Wkuimk8pexC/f8+whs45dZtMjyq/+etuM6d7MRwugGDge36VH98dwIsIANEJIdwT1a+ybhxg1+TRV6EtiLdE4+l2mS5sxORexNBnCIqsfSVI3giiX3Jro+w7Onm5BsTGgg4GWRXQ==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	PSTOvTWdEDWPuZIRhdXXXa6qftjJVhU6snDFuckaUGVT83rrXk0sZ/AJKJ+J2aWyuD0apz0AnKP98YjoqO6kZCwqNM00Kxar80OUelpmMaHc1niczjzfhLIR2Zbl+Lcr1V0lo19QBC+S+NqcSfU/4zwPYRkw9w0nVCZ4pYxDfBCxUz1rKHp0ctXhs4/XU8HKLAYARGQMrVcFKbvVPXMSPGQfs/fEzzPGiCzseRRdU5zz/+4wKKQs7wIWTFui9pZkcXw+o2xkLJbTc2sQhs+EwYBs5kkTCGDjq/L4LLsA586CPxyQByGSSAkY6n/qB0TH1sg8CDkqXkPx1mQGUR/hlx0d9hFByhbgUh9zxrBPP/6LkhY8kT081IshJc+OUN+Qjn98R+6Zkahnn4V6eQ/H1shFVKgQylXfLgahtX5u76gObx4bbAr8JUWWaYDoa49PpxR3ebIPVX99gZFozrPh+7kc2fZjxzaTwa/6YdITlZ0PVVPHSo3/4suHsbIX+zp5jq6NDfTBuFpOmOS7fBSaGQuXoaXhmpbsi/Ybrq/zCFrZsUk7LSiEiwN5RTqDiPfvjtqsd9m1HgWiZ2aNMThqv3em5xIO8mwuqJixWWiWG4U=
X-OriginatorOrg: electrifex.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PN0PR01MB8924.INDPRD01.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: f1a7b0bc-d3cc-4b6f-0cc3-08deb66f48e1
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2026 12:57:01.3366
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: f2626450-e675-4872-bae6-db17376f7643
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: AJFTomfYFu1BcHPABh6G0j6F4GTlP5tvTN/qJ30tGSII8Jt7Q7GK9TXSLcNVXaOsPm1i7Gu1xLXJ6o+dI8mF/GT4H4vraVmovkocZBewcfo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PNYPR01MB11012
X-TM-AS-ERS: 52.101.227.96-0.0.0.0
X-TMASE-Version: StarCloud-1.3-9.2.1014-29954.006
X-TMASE-Result: 10--13.282000-7.000000
X-TMASE-MatchedRID: UTY1qVrtKF9loDh19hwAerQD5tVOK8yYrVnDQjOPUSHvl/sSkP3Ta16n
	qcxwgJci72nfH9xa/ZiDzVKzxtpbxripA0mFNtPDMtANETYcEGtayaf9MuAM8ZwmoyicyUk4Iia
	XEuKQ0BKif1w5aAHlEujWIKCroftba1MlcefkD6XzHErngGz1SYnzDhr8bhSP4gefAI4RchD7Jq
	mA7t7dY2joepJqlXhIZaJ+QcJBnf6O3MZEKZpyL/Qu6ZqDKgUEuUeJCuB9aL1SMzx3ql2YQ8yfx
	QnKP1ktleSnBtsiioMjkgvxkEq0rOH7RHkgEpGy4z6zHqVW+oLkDloO+14I74mRx7OV7pazHeL4
	9luCA8ViyuQOZndK/eaOLqeqLSisprKwPj9bdNtK6tUNC8nCvL7hGwTSDQ8bVZnNYkc0+t4+FfD
	c5UEa8Q==
X-TMASE-XGENCLOUD: b9071cae-6cf2-487d-8aa1-5e1fd76a34e5-0-0-200-0
X-TM-Deliver-Signature: AC2BCFEB34BD7A0F3935DF3D7888CA61
X-TM-Addin-Auth: RTgpVicZ8LJXWeWfrMxi9SpMJiUQl/HNcGOrX6GtZfOAvEcwzPiv9GljyRR
	3d+Gv2bMbUMEGmNK1IeLYGRDQmoiRqM1iOykiZiEEevndFPvNDSFdRJ/UA0FZAWPFFald0+baD0
	BMaxwZui2HntY3IUyxiWLD43HL+vUMDZXJXd/m7xbcTuX1xUTQbH/BH3pXdnDm2W6tuKxEj6bOj
	lVaRuOVLMl8pPPlKgvD7+5agyVpOe+a3/+sD0roFoH5l+krh1XZvZ+6iueABxVZ1VJoU6HZPk3D
	B+dvdlIyfDRJwsKX946G/G9EyfpAxDofL+93pLyASnuKOQuO9a/QbVJTuw==.p32+CUB2VKEYP9
	dLTFbZd7dQg1TnoMJRD+wXuROBd8yJept6rs8TJM9Q8LbSO27m1/BBU1zM8+lCQHUOO21DJSSQ3
	lzThdvbfFBQj7Y9wqVY6PQGnecHp/teGhoLpD3Xx/HKwa4GeUSLzD+hX0oRynjfHmNNBD7PRwY3
	WLSo3HSNKqyJnzI7xTTNE5ezJyMEjl/+pfappd0fVKxzXw2OPlK4W7zMsGbzElQMHryEBZiwGxo
	IVh7cVxyYF4XPiA/wZDke/9RMxLveoqxcvSprulrOVajYEhQjf+GJheOwxuZ6dRjjk2ltTjuGyO
	BgWec0ugSVdZXuUEheQODx6HM1Sg==
X-TM-Addin-ProductCode: EMS
X-purgate-ID: tlsNG-ebf023/1779281854-2B96A3FF-B4FB2D9E/0/0
X-purgate-type: clean
X-purgate-size: 3227

--_000_PN0PR01MB892424B0AE38BCAAACB0C659EC012PN0PR01MB8924INDP_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable



Best Regards,

Edwin Thankachan

Embedded Software Engineer


Electrifex Technologies Pvt. Ltd.,

Trans Asia Cyber Park, Infopark SEZ Phase 2,

Kochi 682303, Kerala, India

Web:     www.electrifex.com<http://www.electrifex.com/>


--_000_PN0PR01MB892424B0AE38BCAAACB0C659EC012PN0PR01MB8924INDP_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<br>
</div>
<div id=3D"Signature" class=3D"elementToProof">
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<p style=3D"text-align: left; text-indent: 0px; background-color: rgb(255, =
255, 255); margin: 0px;">
<span style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService,=
 Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">Best Regar=
ds,</span></p>
<div style=3D"background-color: rgb(255, 255, 255); margin: 0px;">
<p style=3D"margin-top: 0px; margin-bottom: 0px;"><span style=3D"font-famil=
y: Calibri, sans-serif; font-size: 11pt; color: black;">Edwin Thankachan</s=
pan></p>
<div style=3D"margin-top: 0px; margin-bottom: 0px; font-family: Calibri, sa=
ns-serif; font-size: 11pt; color: black;">
<br>
</div>
<div style=3D"margin-top: 0px; margin-bottom: 0px; font-family: Calibri, sa=
ns-serif; font-size: 11pt; color: black;">
Embedded Software Engineer</div>
<div style=3D"margin-top: 0px; margin-bottom: 0px; font-family: Calibri, sa=
ns-serif; font-size: 11pt; color: black;">
<br>
</div>
<p style=3D"margin-top: 0px; margin-bottom: 0px;"><span style=3D"font-famil=
y: Calibri, sans-serif; font-size: 11pt; color: black;">Electrifex Technolo=
gies Pvt. Ltd.,&nbsp;</span></p>
<p style=3D"margin: 0px;"><span style=3D"font-family: Calibri, sans-serif; =
font-size: 11pt; color: black;">Trans Asia Cyber Park, Infopark SEZ Phase 2=
,&nbsp;</span></p>
<div style=3D"margin: 0px; font-family: Calibri, sans-serif; font-size: 11p=
t; color: black;">
Kochi 682303, Kerala, India<br>
<br>
</div>
<div style=3D"margin: 0px; font-family: Calibri, sans-serif; font-size: 11p=
t; color: black;">
Web: &nbsp;&nbsp; &nbsp;<a href=3D"http://www.electrifex.com/" id=3D"LPlnkO=
WAd7422fc4-03a2-5f56-4d3e-22e985e7e014" title=3D"http://www.electrifex.com/=
" style=3D"margin: 0px; text-align: left;">www.electrifex.com</a></div>
</div>
<div style=3D"margin-top: 0px; margin-bottom: 0px; font-family: Calibri, sa=
ns-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
</div>
</body>
</html>

--_000_PN0PR01MB892424B0AE38BCAAACB0C659EC012PN0PR01MB8924INDP_--



From xen-devel-bounces@lists.xenproject.org Wed May 20 13:40:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 13:40:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313969.1583982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPhAD-00082G-A7; Wed, 20 May 2026 13:40:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313969.1583982; Wed, 20 May 2026 13:40:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPhAD-000829-6z; Wed, 20 May 2026 13:40:45 +0000
Received: by outflank-mailman (input) for mailman id 1313969;
 Wed, 20 May 2026 13:40:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPhAB-000823-Oa
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 13:40:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPhAB-007npu-4L
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 15:40:43 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0db9d5-bab6-0a2a0a5309dd-0a2a45099c06-36
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 15:40:42 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0db9da-2497-0a2a45090019-d1558035eccc-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 15:40:42 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-48a7fe4f40bso58833975e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 06:40:42 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fed253f93sm129612165e9.16.2026.05.20.06.40.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 06:40:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779284442; x=1779889242; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=v+2UzxBb3zs5SgWY6m3PxM1VuB1SPTX8E5PmlgRv8jw=;
        b=UOER0mM99X1ILjRZVTDjC9rNPp2j2LaxeFPpRRDjZp/DCqYkJ6eOWFUsl45Wd6xUst
         4s6ID4tRdRs0+SWRo7vbYIB3fKCisqkFpx1kZkAyytismd7ila0VbYUVC6JfZZlOA/Ah
         z3FKRWWMtiODzdiSoo+47TNJWtEQc/oYsz+HcT5QZYzIYJqaVZFtinfPQopdYKGc7jLR
         rHqd6g/GAFadOKxcn7DU6XUrulOrIkogxd2qObjpjOUMjcKG2/ggQ1PUQBz7m58KAb6k
         H2Rfq6OVC3wXgI1QrRM9NWlIsZdnOCZSXdMyA9QWmFBMTom/RIPXiIz+lAhfBEox/BOR
         /yOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779284442; x=1779889242;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=v+2UzxBb3zs5SgWY6m3PxM1VuB1SPTX8E5PmlgRv8jw=;
        b=BvJPLWF2eDzGUDuyQ1yQFhad1Bm4h0DLczSv8O75yaP+f/u8pwzgoxm46NZRZJyqQk
         pajRHYIaJ2b91Nx3yHOVHehR3tkBW5h9/BpulYAeapOq65SysuZrpwvp5gipSIeTvN4q
         2RPfWh8pQV0FZzYIw98vBfvey/e7GXC7IaYyMEkyydchlZg50p0G5oZvE2P6raEt+QhF
         ZhPM4P2xxpLpF5hJJaT8jcDsJ6xh7lUYnkyXTXvNXDsNBtIMrFvqXTfXAkbq8grym/Id
         nYNdRzRveTZQajvsVoLGRNo+CCtnmiQOgIqeeurFqONGSO4z6oKeKsq7m4wi9BerlLua
         gWVw==
X-Forwarded-Encrypted: i=1; AFNElJ/XHoqx0GUqQbJ7BM7spost22JHIRG/35KMl1y2RMFHxdqacMaXoLIiFra+vjoe9VWSgL3bpu95BKQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzs3XJJ2dYUgcM6MP/fV9otBaZXL8/y5+/74p6ynoJi5X4yKvYr
	WWEYOQ3JggARQ/iHCmVpzTTwnCrUlp+f84RINeANnyAMDlaP2pWSrnBN
X-Gm-Gg: Acq92OF+Ph7ug7UwbbFn8aXhDx920pj7JBkkEpWHSFOHDK8yhYrBLgoebK6KhtCFVDZ
	szoxlAlHBWPtJ6KveLERiZK8ijIioAF+CyAgliC4UriPRLG1AnfIpdvGHs26XDGNiuLWamq6nHZ
	NwmUQ+Sx4PphW91MLl+1T113NRt4FJ9hooOdtGUYg5RafeebXR+DTh2gaOYj9sRP56/gLWscQ0L
	qEV98EvsabCzUOdqhYkCXLvdoKuqY+pkNL0fWmtZKmKz6vTVWYoktNEEUTKqwUm2Z+KL6kw8gLv
	vMX8dRBSaLfhR0MlM2ddFqle6qNHxxEusMXzttIVxptCz1sLPDEgUTjRDz/6Kf+SMu2CGQ5FoAT
	rn4tNzyQpdSpgZKHzbT+LnW8csAGGDtUL+/V5rinPOg67z90q2Iuc7ApgHok9jTfbBAJSvpPWmW
	as5fkiUnKpkBjA7RBXmcgiUdoUVGps6q1Pmx5NZYAqO49QJVGTFF78HV/wOoMpxh1uwVeQOZVBq
	tI=
X-Received: by 2002:a05:600c:45c6:b0:490:2248:dc93 with SMTP id 5b1f17b1804b1-4902248dcd5mr91982665e9.12.1779284442105;
        Wed, 20 May 2026 06:40:42 -0700 (PDT)
Message-ID: <eec28059-d7c5-4d30-80ff-7b1b57d706ec@gmail.com>
Date: Wed, 20 May 2026 15:40:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
To: Jan Beulich <jbeulich@suse.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
 <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
 <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
 <ea274abd-d7be-4fee-a147-936a8adc1c81@suse.com>
 <12e89d4e-2856-4130-aaa7-1ec1a742c72f@gmail.com>
 <2d8166e4-009f-4066-b96d-fb9e41b548a1@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <2d8166e4-009f-4066-b96d-fb9e41b548a1@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779284442-89B7BA53-0EFB91F3/10/73395122804
X-purgate-type: spam
X-purgate-size: 5326



On 5/20/26 2:03 PM, Jan Beulich wrote:
> On 20.05.2026 13:33, Oleksii Kurochko wrote:
>>
>>
>> On 5/19/26 1:53 PM, Jan Beulich wrote:
>>> On 19.05.2026 13:22, Oleksii Kurochko wrote:
>>>> On 5/19/26 12:55 PM, Oleksii Kurochko wrote:
>>>>> On 5/19/26 11:37 AM, Jan Beulich wrote:
>>>>>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>>>>>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot inside
>>>>>>> the domain's shared_info page for vcpus with id < XEN_LEGACY_MAX_VCPUS,
>>>>>>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>>>>>>
>>>>>>> However, it does not guard against d->shared_info being NULL.  The
>>>>>>> shared_info() macro expands to a member access through d->shared_info,
>>>>>>> so when an architecture does not allocate a shared_info page the
>>>>>>> dereference triggers UBSAN:
>>>>>>>      UBSAN: Undefined behaviour in common/domain.c:325:10
>>>>>>>      member access within null pointer of type 'struct shared_info_t'
>>>>>>>
>>>>>>> Extend the existing fallback condition to also cover the case where no
>>>>>>> shared_info page has been allocated, mapping the vcpu to dummy_vcpu_info
>>>>>>> instead. This is the correct behaviour: dummy_vcpu_info already serves
>>>>>>> as the safe stand-in for vcpus that have no usable shared_info slot.
>>>>>>>
>>>>>>> Fixes: 295514ff75506 ("common: convert vCPU info area registration")
>>>>>>
>>>>>> I question this, largely (but not only) because I also ...
>>>>>>
>>>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>>>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>>>>>>> ---
>>>>>>> RISC-V does not allocate a shared_info page at the momemnt because its
>>>>>>> guests run in dom0less mode and do not use the Xen PV ABI, so
>>>>>>> d->shared_info remains NULL throughout domain lifetime.
>>>>>>
>>>>>> ... question this mode of operation. Yes, you may (for now) be able to
>>>>>> get
>>>>>> away without, but e.g. event channels will want supporting at some point.
>>>>>> Which will require a shared info page. Better put that in place right
>>>>>> away,
>>>>>> even if the guests you test with don't use it (yet). Certain other common
>>>>>> code also assumes d->shared_info to never be NULL for an alive domain.
>>>>>>
>>>>>
>>>>> Would it be fine than to allocate it in arch_domain_create() ... :
>>>>>
>>>>>        if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
>>>>>            goto fail;
>>>>>
>>>>>        clear_page(d->shared_info);
>>>>>
>>>>> ... but without calling share_xen_page_with_guest() after that
>>>>> allocation as share_xen_page_with_guest() isn't implemented at the moment?
>>>
>>> I would have said "yes" here, but ...
>>>
>>>> Or could it be an option for all arch-s move allocation of
>>>> d->shared_info to domain_create() in common just after arch_domain_create()?
>>>
>>> ... Andrew's reply pretty much rules out not only this option, but the
>>> shared-info-page concept as a whole (for RISC-V). See my reply there. In
>>> the meantime, the change as suggested may then indeed be what we want to
>>> go with, albeit (a) with a better description and (b) perhaps covering
>>> all d->shared_info uses.
>>
>> Looking at guest kernel code (Linux), FIFO is tried first, so if RISC-V
>> is going to support only FIFO, d->shared_info could legally be NULL.
>>
>> Looking at the Xen side, if an architecture decides to support only
>> FIFO, d->shared_info is touched only in vcpu_info_reset(), which is
>> called from vcpu_create().
>>
>> All other places where d->shared_info is accessed should not be
>> reachable except for one case in event_fifo.c: when a guest issues the
>> EVTCHNOP_init_control hypercall, setup_ports() reads from shared_info(d,
>> evtchn_pending):
>>     static void setup_ports(struct domain *d, unsigned int prev_evtchns)
>>     {
>>     ...
>>             if ( guest_test_bit(d, port, &shared_info(d, evtchn_pending))
>>                 evtchn->pending = true;
>>     ...
>>         }
>>     }
>>
>> This looks like it handles the transition from the 2L ABI to the FIFO
>> ABI: if a guest started with 2L and then switched to FIFO, any events
>> already pending in shared_info(d, evtchn_pending) need to be migrated to
>> FIFO's per-channel evtchn->pending flag. But it looks like I am missing
>> something here as I mentioned at the start that Linux uses or FIFO or 2L.
>>
>> Am I missing something?
> 
> Quite likely you aren't, but I didn't check. My earlier "covering all" may
> well resolve to merely stating things accordingly in the patch description.

If either FIFO or 2L can be used, shouldn't guest_test_bit(d, port, 
&shared_info(d, evtchn_pending)) in setup_ports() be dropped? If FIFO 
was chosen by Linux, there won't be any events in &shared_info(d, 
evtchn_pending), so it is essentially dead code that could just be 
dropped. Or would it be better to leave it and skip only if 
d->shared_info is allocated: if ( d->shared_info && guest_test_bit(...) 
)  to cover the case when a guest wants to switch from 2L to FIFO (if 
that is even a possible case at all, since as I mentioned above, the 
guest (Linux) chooses the event ABI once and it stays for its lifetime)?

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed May 20 13:50:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 13:50:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313978.1583990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPhJL-0001Qy-7U; Wed, 20 May 2026 13:50:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313978.1583990; Wed, 20 May 2026 13:50:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPhJL-0001Qr-4v; Wed, 20 May 2026 13:50:11 +0000
Received: by outflank-mailman (input) for mailman id 1313978;
 Wed, 20 May 2026 13:50:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPhJJ-0001Ql-Md
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 13:50:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPhJI-00AUIF-Jz
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 15:50:08 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0dbc0f-2eae-0a2a0a5409dd-0a2a45089730-2
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 15:50:08 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0dbc10-63b5-0a2a45080019-d1558032a409-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 15:50:08 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-48fde648a71so36200935e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 06:50:08 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48febf8305dsm194507585e9.9.2026.05.20.06.50.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 06:50:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779285008; x=1779889808; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=EZ9lCyVH1EXRNroQFJ1fse/T5OyZlgaGaj8jm+Tv6j4=;
        b=HUJldVWrmQa/QzA20m6P8azDebr9GOPPx+i52/ChECImRj1c8bVXnMYuelFXOgdYbx
         bR7lgpFbc0hp0OXw8e2tPXy1QSQLjM6KOGxZGXlW1Fn7vhuPjFwIa0WB1P4+tWtn07BK
         izeXR20BuAHaEhQKBJo/ZfAj9nt5cWvTrU0Thr9ClaalZyzr7wn9BZaeolN8OEmfAk+0
         IAGsYszNVxImnhS170lPssTRMBATbaY2i/5ey+XB/3v3rMfdXboEv2acAKtSA+voozE/
         gNLepQ0AtyBPNQBToeKE0wqpwDB89YvrpsW7c0skYPaXDR+JNyjBawkeTz1Z7oSwAiYe
         2DLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779285008; x=1779889808;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=EZ9lCyVH1EXRNroQFJ1fse/T5OyZlgaGaj8jm+Tv6j4=;
        b=p+SIdRTNXI0PF7SEV46PxulkoDfswf9E2vIpJIibK+O1xvUGH7/f2ck6Ch9V5lceid
         MRAXok7fdtIR0VR86C6SJZc+fd8d2ofAzfyL/1yzx7vYeY6Mt/W9XITwu+aIk+Tu+V7k
         Rz1aXWt1RgNU2i/hSgkpglZZmIINl2opqCg1rRE4OG/EAlQa+gWkb6GpZsyndpts/RLZ
         SzGDR7d5++lPWagkBz4dNHnJbQ+GpWW0DRhfA1tp9nTk5PFEN59saq3IHPXDa4C+ly+V
         ZqE+0djJGdvFoslu99kIbZLHWrQxu9x3uAnrd9oNupLirLjXL2onbQZ7w3dIZb36uwMJ
         c92Q==
X-Forwarded-Encrypted: i=1; AFNElJ+aW/IifiTh2gzEGIkIUr+hMU40DLo7Em1gk8MVKU0eoECeNEpruR0zw8SoFvDZ3TE2thYFNMCoApw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzyLnxFMoPYCmDfgRGSJjF4Z1otUqnV/WgrvGaxair6MbxHdyB6
	55P22ofyACD8HrWGb/uFTXl4/0OqslejYuO1bEPmDTx55raL6OnHpMVsaWySow==
X-Gm-Gg: Acq92OHAZfdGZjA3u6b3dl1QCXYjeY0A7PnEn0c5Pywcnxor1s6P35fVpSlkm47E/Mi
	1sVg7tJYMYEL9wCGQPF+Yj/JK0ESLhOXPSeyQ4s8RmI6Gl5yNcppFOEgdXGxpwr+hjP0UPthhjD
	NK2H0Lf7GHml7JtGoIzfLgc7HZHyt0JxCTdmdMpKjWHMnBO+hTM+cbgG6joQkr0BCmzu0ztLn6e
	PyyntAjR1OpRdzzJAT8YBGp7ZbbtaEHTQMjg1QwG/K8fmNCtdsCLijQ5RX05GDdaMv7vqeZW/zW
	BbAl484iNifbd7+XcdIfmp7BfTRbAbCQh4FkCSsQ03SFjljv1Ff8MPNHSaKqwm4Ofb96q3yOizy
	DXFFhEZpsWGQT2cZGPVL3qVZtwU/N102aVcLplaEiexWBeutkwaySeXtWADXl3GkT4mbCaz1k7o
	kFzI6H6i5pw0hvvl0mm9h35XxMREowpqCmcaP0KKYz72ZEjm2S8bpALXEu+JyayT8IG9hU3tiGJ
	OU=
X-Received: by 2002:a05:600c:1d09:b0:48d:50a:6ef4 with SMTP id 5b1f17b1804b1-48fe537fb44mr314284825e9.11.1779285007760;
        Wed, 20 May 2026 06:50:07 -0700 (PDT)
Message-ID: <cd7c7b48-16db-456b-b38a-5f7e8fdb43c1@gmail.com>
Date: Wed, 20 May 2026 15:50:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm: do a 4th linking pass if necessary
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>
References: <7b23e011-56b8-4f6c-bd55-83e1d9b0453f@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <7b23e011-56b8-4f6c-bd55-83e1d9b0453f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1779285008-BCB64DB1-27313756/10/73395122804
X-purgate-type: spam
X-purgate-size: 4903

On 5/20/26 1:53 PM, Jan Beulich wrote:
> The .rodata growth between 1st and 2nd linking passes may affect the
> number of stubs the linker wants to insert, which in turn affects the
> number of symbols. If symbol table sizes change after the 2nd linking
> pass, insert another one before the final one. (As a comment in Linux puts
> it, "In theory it's possible this results in even more stubs, but
> unlikely.")
> 
> To use the $(compare-symbol-tables) macro in a shell "if", it needs
> slightly adjusting (and then wrapping to be run in a sub-shell).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> There's imo no good Fixes: tag, since (aiui) stubs (veneers) may also be
> inserted for reasons other than errata workarounds.
> 
> For context: The Cortex A53 erratum 843419 workaround in GNU ld comes in
> two flavors: In the general case a stub is inserted, but if the problem
> ADRP can be replaced by ADR (i.e. the target symbol is within ±1Mb), then
> that's preferred and no stub is needed. The addition of the symbol table
> data is what then results in the stub-less form to no longer be usable in
> affected configurations. A possible countermeasure could be to move
> .rodata ahead of .text. (Also, from looking at generated code, it may well
> be that newer gcc simply avoids producing problematic insn sequences.)
> 
> Linux simply compares object file sizes, but I consider that fragile: A
> change in size of one of the symbol table constituents may not necessarily
> change the object file size, due to padding which may be in use.
> 
> Once we generalize linking, we may want to introduce an equivalent of
> Linux'es KALLSYMS_EXTRA_PASS as well. I don't think doing this right here
> would make overly much sense, though.

Probably we want to have the similar for RISC-V. Not so far time ago in 
downstream we faced the following issue:
https://gitlab.com/xen-project/people/olkur/xen/-/jobs/14389897308

Unfortunately I wasn't able to reproduce it locally and it was only on 
CI but I suggested the similar to this fix and it helped:

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index a1124eb5d072..72b9789cfd9c 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -52,9 +52,15 @@ $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
  		> $(dot-target).2.S
  	$(MAKE) $(build)=$(@D) $(dot-target).2.o
-	$(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o)
  	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
-	    $(dot-target).2.o -o $@
+	    $(dot-target).2.o -o $(dot-target).2
+	$(NM) -pa --format=sysv $(dot-target).2 \
+		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
+		> $(dot-target).3.S
+	$(MAKE) $(build)=$(@D) $(dot-target).3.o
+	$(call compare-symbol-tables, $(dot-target).2.o, $(dot-target).3.o)
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
+	    $(dot-target).3.o -o $@
  	$(NM) -pa --format=sysv $@ \
  		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
  		> $@.map

The fix wasn't sent as after merging some extra patches on top of it the 
issue just disappear.

> 
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -99,9 +99,20 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
>   		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>   		> $(dot-target).2.S
>   	$(MAKE) $(build)=$(@D) $(dot-target).2.o
> -	$(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o)
> +	if ! { $(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o) >/dev/null; }; \
> +	then \
> +		$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
> +		    $(dot-target).2.o -o $(dot-target).2; \
> +		$(NM) -pa --format=sysv $(dot-target).2 \
> +			| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
> +			> $(dot-target).3.S; \
> +		$(MAKE) $(build)=$(@D) $(dot-target).3.o; \
> +		$(call compare-symbol-tables, $(dot-target).2.o, $(dot-target).3.o); \
> +	else \
> +		ln -sf $(dot-target).2.o $(dot-target).3.o; \
> +	fi
>   	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
> -	    $(dot-target).2.o -o $@
> +	    $(dot-target).3.o -o $@
>   	$(NM) -pa --format=sysv $@ \
>   		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
>   		> $@.map
> --- a/xen/scripts/Kbuild.include
> +++ b/xen/scripts/Kbuild.include
> @@ -65,7 +65,7 @@ define compare-symbol-tables
>       $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(1).sym; \
>       ln -f $(2) $(@D)/.cst.$$$$; \
>       $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(2).sym; \
> -    rm -f $(@D)/.cst.$$$$
> +    rm -f $(@D)/.cst.$$$$; \
>       diff -u $(1).sym $(2).sym
>   endef
>   

LGTM:
  Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed May 20 13:55:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 13:55:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313986.1583999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPhO1-0001yX-OK; Wed, 20 May 2026 13:55:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313986.1583999; Wed, 20 May 2026 13:55:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPhO1-0001yQ-LX; Wed, 20 May 2026 13:55:01 +0000
Received: by outflank-mailman (input) for mailman id 1313986;
 Wed, 20 May 2026 13:55:00 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wPhNz-0001yI-So
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 13:55:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPhNy-00GHcw-Ry
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 15:54:59 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a0dbd15-2eae-0a2a0a5409dd-0a2a4507aac2-38
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 15:54:58 +0200
Received: from [40.93.201.32]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a0dbd30-229c-0a2a45070019-285dc9206623-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 15:54:58 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MW4PR03MB6523.namprd03.prod.outlook.com (2603:10b6:303:126::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May
 2026 13:54:52 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.21.0048.013; Wed, 20 May 2026
 13:54:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RpR4ifVe77t2GEop0aicxKo+RGpgDCTOQ1DE7CinXElZK9PaZhtVutTUIPgW/pgPtnUAXLpH9Y3DJHvxTGuUzOTnbr5+5kncRirsGBi+8LL5S/Sftfc4priWbUnQ1oHTnVjFd/cjdwbBaaVEhzF09lxfSlfXANNva3syqzHzRvD9P9Sjgj8diGD6YceFjJR55FesJsLginUUbFQHzudeEHyhNhY3BAYtSA2iZFlHz1zhb46POlA/+uAjSvHiH0BTDAxQQGlxzcGCisX5NRul2qrxVX+Ip6btZCE9hA+9U16W6eCg2AaYUokpfPQ5XI5gyLfkMCT56e8us/26rvWrSQ==
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=6SGbwOpwSnbAXjVEgb37b75Phl/x2O+0FRj1Cy2LLmQ=;
 b=VnYLDZCjiY1K/Kj1ISYzqGv99+Dzl+sYlZOW3Q9+abJsfHfLkUetPo7vY5LajmKkrI+OfKPGMgb/ElRPUkV01C7eLx4BMlXsbdht0vJVI7BJdICfhHvNRGycDTG+p1+8gxjPRyEzPuDkV8JGQNtnyPyntyGHFk+204u7lfDwizcPWEKFntXLVoQv/HS8EeeXCL1GM/Qr2Gz3Bs5kpZaxW48yk6BxlEuJLD6pdRSRKtFkgyK0uaG3pWu3WMMlonmBxHgUNxeqO9w/B92i2BlglA0FTrRal/0k+hbPfcs7YYXvXrNA9smr4MpQVwj5zm47Ta6xGmM5GrYromJwEkD2jA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6SGbwOpwSnbAXjVEgb37b75Phl/x2O+0FRj1Cy2LLmQ=;
 b=IimDgSwUFIN9iAoAcXuhB99fs7qaheWvLGJkYbu/ej45yGnCJdPveWKGaiBCrwc786RRdnzZXx4JFgrK79dBywanVhPaJMb8/B9HEe6rPQemNE4bF3Zib8y9B6tzOVHM/O8W5+CON+lhJjRRiokM4pMeOhHzmcBj+mNOyXLHHCc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 20 May 2026 15:54:48 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 2/3] x86/shadow: VRAM last_dirty tagging
Message-ID: <ag29KOzxOyU47mFM@macbook.local>
References: <5149ab32-7d03-4ae5-9af0-e62dd5836329@suse.com>
 <8559db88-5f1d-4ced-980c-e71c4e229c7c@suse.com>
 <ae8sMiXAWjeXI3o1@macbook.local>
 <eba10bd9-064b-437a-bf42-7a627fda464b@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <eba10bd9-064b-437a-bf42-7a627fda464b@suse.com>
X-ClientProxiedBy: MR1P264CA0031.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2f::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MW4PR03MB6523:EE_
X-MS-Office365-Filtering-Correlation-Id: e7495e67-9ed6-417b-69ff-08deb6775d8d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|56012099003|22082099003|18002099003|5023799004|11063799006|4143699003;
X-Microsoft-Antispam-Message-Info:
	peIokoq4r67ZmAROmnjlxMpgG9a8uOoBzIs8fzgAJyszphSGPi5/lt8FYVTOxV4felPwyV3ZaLlvziclQywUCD5niZHKnIPizXK9vNCGOz01bA3QiQU4DY+ElZaCASULpFyD1nYnZajyxEC6fMw8tRgR+wlLcSP/BY1mRKvO7T2K0GfAqKZ3Vf5JeqZ7WmHkIhMmm2/fTMaE/9/4ks+DDhSGs4idZFoU3LO4DC6ffXZF7i8WLU7UW+aQ/t3RXL+ac2t/ZBeUjE7mZG5p0vExLeng2QGCLQhSJHB/uWRqQzwgFw4YQ+XDNCtbpU8RpQGtJYKUiGwjlTJL15YYYm/TryLO99Zd93i6Hef60Pm36YFgfEExFL6D3/G57u8xWKOLuN7gACq36zkEw+0NwAy6cXvBGJ3zI5++lTH5qpUdAgb0OFEcs0MDOHtboaJDERREIjr05GrI9IpjjMipUpNv7Eoq7wMpEzy/asdW8ov18oruhmtb1VqT6e2svZhf7b1SeaSGpzPsLDY/NnNYXAZgGN4PkyHuKznsE1TZf+Kf7DRxpvtvOp3Rf3rmj3k0N8fc6eazOyFDH+hxGPuwDBqEKNMFBOMYM/br9C7Pzga5HeyaJtxnijiC6UfxBiRenCT++rHFyzYv5eRJnNrr/ZVruUiSJ8Xcmjg3NYaFD2uH7vtHssBrXDcTADAZEPkZ6vCd
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(56012099003)(22082099003)(18002099003)(5023799004)(11063799006)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NGVIbzZvZnIrdmN3THdacm94OHErWWxGaGRyOGwrUkNJdU5uVUVZWFJKeE50?=
 =?utf-8?B?N2xxRGoxZVhRYWliM1A0WVo3Uk1KTEJHVkQ4c0ZnMzhHUzRWYThrSXdTWjY3?=
 =?utf-8?B?eHd4WnJ1eGRpMld4UzZDZ0Fma1hKOGtlYUdZZG1QOW5mRjY0eWhpRmxxZGl6?=
 =?utf-8?B?eFQwUittNUd3M0czampmRXplUVh1anBMTmNld3U0WXVCWkFrbVF1SklDZnp4?=
 =?utf-8?B?YzhMbVBRanEzVUVQUGxXZW8xc1J6NjdFZFBYRE9XMGZVckoyWW44clFCVjlk?=
 =?utf-8?B?cis3QXR0dzluSVlpdG5JaU54c1BWUXY4UWpPQnE5YWtaU0xER1NPQ3NyYlJI?=
 =?utf-8?B?WGNJbVVUSXY1TWtjSnc2QTU4cERoMzkzUzFiVEJlbkJUeEFFWnJsOU5TUUl3?=
 =?utf-8?B?cmpyc01PbEMrRGJLbjFraElkRXUwSmNQUTlYRWY2TFRuSzF0bFZNV0lUT0l6?=
 =?utf-8?B?MXBrTVBWWUZtVGhPR25pUnVsQ2pCMUxCNmRXc2pVdDdKQ29SYjJsRWNwY0Za?=
 =?utf-8?B?YW5tVjJhZDYyY1JDdjZuT1hiUEg5MmFndlh1MXBGY3MvTS9YT2RGV0RMV2Jp?=
 =?utf-8?B?Rk5NSnorK0Z5K0FyYUQvTk5rR0Q5bUZJTlNtTkczYUxKV1NudDRzUHNCSlpw?=
 =?utf-8?B?VjZUVjJoT3JJWENRUmtQMjNKT0ZpNzB6TTVhT2Z1cStiSDBNVTU4SHcxMlh0?=
 =?utf-8?B?bFpVZXByUGpHOFNNYTR0ZWwwdWlzVDRRN3JVeWR0Qkx6UWVFd1FIR2ZpaytL?=
 =?utf-8?B?Y3A5Tm9uL0xJYWRINHJndTk0VzZBRHNraHNreExXQVU2Ym5PMjh5b09tRTdk?=
 =?utf-8?B?RTl5bmJCMFAvQzNxbjYraWlPamZnM2ZGZU5lZThvM2d4UmwrQUFKbWxtYURV?=
 =?utf-8?B?aXFVMm9XbEYvZzV3RFkzOHNGTjBVb1Z1dU9oMm1VWEZaNVB1MFhGL3MxTXhp?=
 =?utf-8?B?bzdmWE9aZUhyT215dUorS0VhL08zaGJLQkhWb0JWZllWN3lNUURKOExycGUx?=
 =?utf-8?B?bmJwcHhFT1BmY3pNTHA0RnJHRC9JM09LZzZ5K3E0cFBObUVQYytjeE43Nkla?=
 =?utf-8?B?bDZwUE1kK3dKQUk4SkJOTm9oRXVYa014OXordXp6YUpYdVlSWHNMSVVFc1Bw?=
 =?utf-8?B?ZVFWYkY0Ui9OeDh4MitBMzR6bjNzRDZqWko4RG1Bd2dvemt0dmk1ZjNWR2Qr?=
 =?utf-8?B?YUtNaWhYbUYzNVo3WCtDbkdUa21mSXpwQm1uYW5LQVppZnA3RWdSeVNXSGZo?=
 =?utf-8?B?ditGRmlueHltTmtUMUlBQi9HTlFnOGJCZFJPYkxOdXBqaEJ4Vmsvbk5tclpX?=
 =?utf-8?B?K2RHY0VtNHZLaWJNL2ZzQWFPQ0ZJVE1XWkJidVBxTFh2Nkw2UDcrQlJOWmJU?=
 =?utf-8?B?K0wxMGxXZVRGQWhJbHZ1cXhUdWJGeHVURWpqcnN1QXZXdWJYYVFVcU04TVhS?=
 =?utf-8?B?MURva2k3VVdFZEZ3WVc5ODc0cjRDeVdjNjdHN0l6RUU3U3NtOENaS25adno3?=
 =?utf-8?B?TGJ2OUl4b2s2RFBpRkt4ZVNrT3RPTnY0L1FMMEZKZW5ZQ2VlNXRNUW9md2Fp?=
 =?utf-8?B?enpkdGZ2ZnBUYUlGZVdMZG5uVDJwU1JCQkNhRGRLWGhqN3B6d0NlM0pYcTQr?=
 =?utf-8?B?ZERURkpHQ1ZPTWdrY2xGdjZvdDBHVlcyWG9pbmdkTTFjdVRhQWFKUDNLS2Vr?=
 =?utf-8?B?bEJST0d0TzVhZjNHUURmTzJ3RjFZWSt6K2ErOTRzVDhQUERnOVI2NnBVT2Zh?=
 =?utf-8?B?cm5lUUc1WDJsWVJWQlU2NVliMEl1cnA2eGxXb3RJRHpad0xrTWtoUGdnUDJa?=
 =?utf-8?B?NVU3eThsK2NwdCtQZmdEZ3FMTDFLK3JSeTI1aDV1bDArYnNwRE9YVDloQlE2?=
 =?utf-8?B?bkZabExaSFdEQUx2UUoyWG5QeFNPY0pHK2lrNERzVC9Ud1NicFc5OXJhMXdE?=
 =?utf-8?B?dWxjMVVSc1NFZGFTQVBOZExRZGN4bzV0OWYyZ0JCRU5IdWltbE1ObXRyQm1m?=
 =?utf-8?B?YVR3VFZsWDBiWlg1UFBOdTdtemdyZzBxOTB3WkhiN3laSlhXMjdCMnF6Wkly?=
 =?utf-8?B?aGh1K09nVWhHTVpHbnZmSlNseUNvYTlJUy9oL2dSbEo0Z2UxajVSRDJ0RjFl?=
 =?utf-8?B?NFVsamRLYTNLT09uZVVpNCttMnJiU2xxZWl2YVdTU2liaVJjeFBuOTFhZm56?=
 =?utf-8?B?Nk1YOG5oWTRUcEp6RlArZ2ZhQnNrVFRRQWxzV1dEM2g0dS9qZWFZL0RWb2pl?=
 =?utf-8?B?dHF4N2pUQ3k4eW91R0V2OEVoRlcvSWxBU1VEWXpLRTd2RFdDZ0hRYVBYUjlJ?=
 =?utf-8?B?WEdJSk9kRGoxMXd3dDB6ZXk1dTZTeW5PSm9JR01ER29LQmplZTlGdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e7495e67-9ed6-417b-69ff-08deb6775d8d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 13:54:52.3556
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Nwk8Yz2FAeN4TPQA8Xu5EYjY19ncHoTr4gSYe0djeP+lIcsUE1YYJJOC4rbpRpeQchXsg3JjGlYc9C+vBg6i7A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6523
X-purgate-ID: tlsNG-ef75cf/1779285298-0BD7FC48-2DB25939/0/0
X-purgate-type: clean
X-purgate-size: 3590

On Mon, May 04, 2026 at 10:39:53AM +0200, Jan Beulich wrote:
> On 27.04.2026 11:28, Roger Pau Monné wrote:
> > On Tue, Feb 03, 2026 at 05:49:55PM +0100, Jan Beulich wrote:
> >> --- a/xen/arch/x86/mm/shadow/hvm.c
> >> +++ b/xen/arch/x86/mm/shadow/hvm.c
> >> @@ -1087,18 +1087,18 @@ int shadow_track_dirty_vram(struct domai
> >>          if ( (dirty_vram->dirty_bitmap = xzalloc_array(uint8_t, dirty_size)) == NULL )
> >>              goto out_sl1ma;
> >>  
> >> -        dirty_vram->last_dirty = NOW();
> >> +        dirty_vram->last_dirty = -1;
> >>  
> >>          /* Tell the caller that this time we could not track dirty bits. */
> >>          rc = -ENODATA;
> >>      }
> >> -    else if ( dirty_vram->last_dirty == -1 )
> >> -        /* still completely clean, just copy our empty bitmap */
> >> -        memcpy(dirty_bitmap, dirty_vram->dirty_bitmap, dirty_size);
> >> -    else
> >> +    /* Nothing to do when the bitmap is still completely clean. */
> >> +    else if ( dirty_vram->last_dirty != -1 )
> >>      {
> >>          mfn_t map_mfn = INVALID_MFN;
> >>          void *map_sl1p = NULL;
> >> +        bool any_dirty = false;
> >> +        s_time_t now;
> >>  
> >>          /* Iterate over VRAM to track dirty bits. */
> >>          for ( i = 0; i < nr_frames; i++ )
> >> @@ -1174,16 +1174,20 @@ int shadow_track_dirty_vram(struct domai
> >>              if ( dirty )
> >>              {
> >>                  dirty_vram->dirty_bitmap[i / 8] |= 1 << (i % 8);
> >> -                dirty_vram->last_dirty = NOW();
> >> +                any_dirty = true;
> >>              }
> >>          }
> >>  
> >> +        now = NOW();
> >> +        if ( any_dirty )
> >> +            dirty_vram->last_dirty = now;
> > 
> > I'm a bit confused with the setting of ->last_dirty here ...
> > 
> >> +
> >>          if ( map_sl1p )
> >>              unmap_domain_page(map_sl1p);
> >>  
> >>          memcpy(dirty_bitmap, dirty_vram->dirty_bitmap, dirty_size);
> >>          memset(dirty_vram->dirty_bitmap, 0, dirty_size);
> > 
> > ... as here the bitmap is zeroed, and hence ->last_dirty should be set
> > to -1?
> 
> That's not how I understand the field is used. Aiui it identifies "was
> clean for more than 2 seconds". That's not the case here. Hence the
> setting to -1 only conditionally a few lines down from here.

Hm, OK, it seems like a very complicated way to signal this.  Won't it
be easier to unconditionally store the last write time in
->last_dirty, and let the consumer decide whether it's been more than
2s or not?

Maybe you could write a comment next to the field in the struct
declaration?

Either way:

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

> >> @@ -1216,6 +1220,7 @@ int shadow_track_dirty_vram(struct domai
> >>          paging_lock(d);
> >>          for ( i = 0; i < dirty_size; i++ )
> >>              dirty_vram->dirty_bitmap[i] |= dirty_bitmap[i];
> >> +        dirty_vram->last_dirty = NOW();
> > 
> > I think this is doesn't deserve a 'Fixes:' tag because the setting of
> > ->last_dirty unconditionally to NOW() regardless of whether the bitmap
> > is zeroed?
> 
> There was (and is) no unconditional setting of ->last_dirty. Technically
> maybe a Fixes: tag might be appropriate, but this is an error path which
> should never be taken (assuming a well behaved DM). Do you think I should
> dig out the offending commit?

I'm not specially fuzzed about backporting this, I think it's fine to
go in without a Fixes tag (and then no backport).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 20 13:57:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 13:57:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1313992.1584008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPhQP-0002VC-42; Wed, 20 May 2026 13:57:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1313992.1584008; Wed, 20 May 2026 13:57:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPhQP-0002V5-1I; Wed, 20 May 2026 13:57:29 +0000
Received: by outflank-mailman (input) for mailman id 1313992;
 Wed, 20 May 2026 13:57:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksii_Moisieiev@epam.com>) id 1wPhQN-0002Un-IP
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 13:57:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPhQM-007rgd-QC
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 15:57:26 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 6a0dbdc5-2eae-0a2a0a5409dd-0a2a4508a792-8
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 15:57:26 +0200
Received: from [52.101.84.96]
 (helo=DB3PR0202CU003.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 6a0dbdc6-63b5-0a2a45080019-346554603c04-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 15:57:26 +0200
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com (2603:10a6:10:519::5)
 by AM9PR03MB7980.eurprd03.prod.outlook.com (2603:10a6:20b:43d::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May
 2026 13:57:24 +0000
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908]) by DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026
 13:57:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CnWy2AlINieyRIvaTSk0vAYSVPM+EWlldiwqlwwGIEDWJbbXHPnUROykagRXzqPTm4iMjMHlHqLt9QzXkTF4qK9/i46wftwaHoo6WvNmXUZsIadIy/OslSmK9RFhhymo8SF9UXa/0bAA6W+6FtIFRLD8aiYvH+Fo8EUrj150CdwtbSVWChONhN3m+UsX8QobDvrcH2z+XLtOt9Jh/WMoRu2vCokrdb1FchkJgWSRmSDnj+y/URt/gHRr7HBx63TK0SouCrGplPnj2zbGdy1Q5jsXxoTkuqVJ/r/1VxVSpKvfRBLGX1wwjvXB6Dols4HZ7Uby94+oEZllPyt+30h4lg==
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=6wAYJZ8KZZHEoBPSeN2CfVB1LKAgTCQag44BgT2Zj60=;
 b=FvBFAvl9T5W1e3o5JyAHjNOYhSmTtPaCHdCX0IAiuIzlmU1YGXkHNL650xa09d2FK5ab71tfA+aihNBUobcctvPEcnaNd55xeVDwtXstw8Vr4x/cs+gk1ANkPeHH/FKE/VR6ZDrXvoTd4rzO8oyi4XXhvbVBREKSmz13bx1DKwU9VvCqekliM0Xls1n6pCYTf+tZEFSUfZekzXShPhvlZvpmKM80CHKOIcAk39P1hXOJa537VJvgzRpnF3fEUH1FVjfUe7/hZ9yoJFUTtZ9872+0n51yU5U0sZlzB5oTTQZH7JKeRGRv7izg65sdw9JvsAClTuOhSQQqKJROl0biEQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6wAYJZ8KZZHEoBPSeN2CfVB1LKAgTCQag44BgT2Zj60=;
 b=soo2TGMz9ayCj2VBOVRL1QDkpMUXjDz3dKDyylcF5bsfmevARxuScRk/1vdGUVna1UnxW8jYth55T5zpm7+5dnIcOQ6US1GGeV9Tp1C0XlSq7Tf+B0Cb3RhhKKBYqPs/BnzI8y0MNf4YvySSJov7ltZ7EOZFKavT18GStpB39JaEve/Q0bZVOrlWYK7NpBU1tDbTRCsxBqlDhGp5X/A5lCSuxpn1fBtatGJRUJSoav0UbVUEEGVMgW6JHZOLX1NNTAdKSnbTi7W6oqYUBZNUFTk/fRJ68SLrTUKzdWe2to154UzzbJOvcBVGB0O8p4Wfonm1ZAwJY2mpnAOheieALw==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
	Juergen Gross <jgross@suse.com>, Meng Xu <mengxu@cis.upenn.edu>, Oleksii
 Moisieiev <Oleksii_Moisieiev@epam.com>
Subject: [PATCH] sched/rtds: refill cur_budget when extratime is toggled on a
 depleted vCPU
Thread-Topic: [PATCH] sched/rtds: refill cur_budget when extratime is toggled
 on a depleted vCPU
Thread-Index: AQHc6GCVPGH3eIVQNU2ACk9r0dRkTQ==
Date: Wed, 20 May 2026 13:57:24 +0000
Message-ID:
 <9f20b6ac8176da6c67e1084e862158a2e47abc40.1779285422.git.oleksii_moisieiev@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DU5PR03MB10263:EE_|AM9PR03MB7980:EE_
x-ms-office365-filtering-correlation-id: 07aeb2bf-fc01-4498-b681-08deb677b83a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|11063799006|18002099003|56012099003|38070700021;
x-microsoft-antispam-message-info:
 wg/pcuYOTA4ACk/1PNnm+8oICnpGe0bytQKN3IlVjfqmmeskOsKndIA2HQWxvWwsRLojKxp64GJWWmrSdtEFYp1qT+Cf5Od4n+T6GVZrycj3XXYFMVI2kpU01iST1KwGdmH+BLs85chpdiRIgU9TaDQsmWkcqbiW3UV9k4ttRd4XSD6qftlevu496nz3R+/LCAizPFqxXu/kAZgijYH9THcLFzdwsoRZ8Vjrj5NpbXoxNGHREmGsa1sxJR7iTE4/ULnNHv6FjURHeWZ9KDAGqj5nTJNV9Al5VaOCCYGWCSun7NHe9wqf9/L/3HtF+3JZKFrYZR0Qjnfr3kFzAcyV7bbhGxefZsmQpP7PLjLmYdaJ47VBPKC8cFS23WQtoB52zC/Qo10lMdkASj8VtJM30pbp2TeUqtREj6ITO3lPOQJIY6LUZZbMaEF31dckYYuGFu6k3oSQRrewIet4qMGiH3dTMtMWtxVNrrBbpppQqs7liF760c9KAVM/4O1jJwhJtuASWV7NfQlS170WT+14gUfBTdPkWVcAj4DcIY8MC4EZ1htcxYeCWHDZ7VepI4BBEr4u/rX8xxpUzpCp8gHV7s7ohxQRY/MPK1RS+3vBUQS18b2KJcT/QMeIzJVht+Hr9x7jozIBBlxV/ed246WLoBfEsvI5GgvQLa8HXI0BfSgQBUA+2Pd4e5DsrU4JnmBHqdiRCDpWaDJOqd5Ihw1t8w12TMXWwfQNyf6n/K8LLr4lJ9zq37cqg5aCglW98Szz
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10263.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(11063799006)(18002099003)(56012099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?10IZSuiMG2tLUmKR0BckgmOIdXT4vixo2noWMEz1L/LTAYn0T+YMvAzava?=
 =?iso-8859-1?Q?flpYIttJ/UUvPJ2PJYFn0AOE5O3mr0IQ1rvEUiGtlXnMtWJi9PKnfa+dFH?=
 =?iso-8859-1?Q?6OF8poVpK/iGBTBlPM5D/H3TMQDBEzr23frhbh9PbQninqfOyG99MpKGcK?=
 =?iso-8859-1?Q?hx1tRdwRN7t/aPpz9CUR3+w5Mwn2YUWdfYdMncNcGZeroVKNh3ktUj07cW?=
 =?iso-8859-1?Q?3ThyU3Xz17FBABySE9K+UqJd66OW2ZMovxGAQdugr86nXwp8sDpeg0xci9?=
 =?iso-8859-1?Q?xwXL/CsZaRXLMdVA53EthnKYHii5/8DLIDtTcVMH5ucZLOm3Lu/ATej1th?=
 =?iso-8859-1?Q?tkaHcs7E6hmVs6K4Xzs2e1nTdEiSrrsX+QOsVHlvOKzYr8O3Hi4YShQ6tr?=
 =?iso-8859-1?Q?X71HalUh6vzNWqldOmidPRaUmfeHcGLYhtscek+M+ebp4ofyC9TXKI4P+r?=
 =?iso-8859-1?Q?qWkGPEK3Plyxrni+nRACx8MzrBZh5tJ5tEPYUhgtjobFY2w95QtsMqwSt8?=
 =?iso-8859-1?Q?3DqVdJv5Djfb9WOuFeYZY4Dc67gHgynM6l2POtXVnQPGwThGxIvtu6DydZ?=
 =?iso-8859-1?Q?FX6xL7/TsTBt0RoLZ0Sh3yEGJCUaiG/KVaBpAwLFAw6noSCls+FB49EmF5?=
 =?iso-8859-1?Q?O2bg9dGxZ209VJ/vkd37dn8az0QvrfFfd6l4lU1As3njvQloWWD9PYgApX?=
 =?iso-8859-1?Q?v7nSDKcL+7aWF7hFxoVkNbztd6591zmosFie9VkOBn02mt7XWID9twxsrV?=
 =?iso-8859-1?Q?O8UQS68E9tiWIcdE4Z4vPnbYiA2WqD6Lbgxxinu9GCfj4q9Gouct3w4Rj+?=
 =?iso-8859-1?Q?U/gVP98C3mdOrdog9RYMaKR2LPBCeAOQnwieF2PCAkHNYGvL7Oiqo7vfU3?=
 =?iso-8859-1?Q?H8dL/+doGZjHnaP2OCGSQsaO+WHanqdb421fT9OER3QcNEIAWLFrK4VwD1?=
 =?iso-8859-1?Q?HBqNw2Y+aXM5/DFu0jjBU/bWbPgu1GheMHNbykUejTPMx6z9ivo2afhmyZ?=
 =?iso-8859-1?Q?hlDhtm02OKpO7QhCpIAm35otSlRsxzQevoLyQ6ljweG4WiM8tkESxZp3jn?=
 =?iso-8859-1?Q?W0QXsv4qhPA1ScsDmcevp3UpQJ+UzQpdiHqLi4ZoSYPLjIi0tzc2vaKmKl?=
 =?iso-8859-1?Q?Qa+c+jhNCyamZrExNPJL2geJ5agzZRbkC6AGf+2It2k2VZ6x7/IZ+17QwY?=
 =?iso-8859-1?Q?qK9b8cCCrZH2zl43F64Tm3pP5FFvjio7MpUXsCwnAHScj1c66sUXYwzTs8?=
 =?iso-8859-1?Q?8lI6w56wfvVKtIefetv8yTmnxr0VHlS9yp2merjPnp8xFzpozJQnab7sUh?=
 =?iso-8859-1?Q?Tbr2rZmtzb/Vj7Z/tqB6L3gvNuE/cGfQ8C7JDaRjDD9Gqj9nDfE3WxbgAK?=
 =?iso-8859-1?Q?7vjDqfDTVAcGmpoSXyhK+0aObilFyVQFc598JUyKqGmcCuKum6xdqL1VnY?=
 =?iso-8859-1?Q?WXb5w02cckQEdVj2DtXgAfytKwDNcXw6YNfhEJ+QnR0kRc3d7IuL66ljyj?=
 =?iso-8859-1?Q?50Cgpyv5f+zm8z3cDnDpIGJFlvA4RNtLzuuhJ0wCqxe6nNVunIX7IDD4Hq?=
 =?iso-8859-1?Q?buClgnI8emwmbIin+aOvJ3gXMUqnz1y9XEhIA7OLdxED4q3/hFZ7aXXMio?=
 =?iso-8859-1?Q?+v5Nn/Dsy0S+uasLA4N+WpUFtWYfdF6mduZrg0+1Lhvt5gtYXGPLGGS+jX?=
 =?iso-8859-1?Q?h8GvnzmHMziLq55fyCZ9+O4hjtjW9e0D0qbtLS5x+gAQUsJDJGby2RtwcS?=
 =?iso-8859-1?Q?CwDa5u2crBdQ7EdVi4cUTBwIJ1I7BdAoMJ6GlM6XjbasdaK5kXgNRqeUT/?=
 =?iso-8859-1?Q?WOYF7xx9FcIincr3+TqFjZzXUSKDhV8=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DU5PR03MB10263.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 07aeb2bf-fc01-4498-b681-08deb677b83a
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2026 13:57:24.1293
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: qhs3/gSDtOcYdav48K/PgTMSth9noYd6O/qGknGNrFzNYh4sdCr5L4G49STEJUvYf5s+deD8XMcFZKNc3wSfdNkcLZ5OEYBGQX84lfDfHcw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7980
X-purgate-ID: tlsNG-c1860d/1779285446-BE368DB1-790FE86E/0/0
X-purgate-type: clean
X-purgate-size: 5912

XEN_DOMCTL_SCHEDOP_putvcpuinfo can flip the RTDS_extratime bit on a vCPU
that is currently depleted (cur_budget =3D=3D 0, possibly sitting on the
depleted queue). rt_dom_cntl() touches only svc->flags; cur_budget is
left unchanged. As a result the next code path that calls runq_insert()
on this vCPU - rt_unit_wake() after a domain_unpause(),
rt_context_saved() following a delayed runq add, or repl_timer_handler()
after a replenishment - places the vCPU on the run queue, because
has_extratime(svc) is now true and runq_insert() admits extratime units
regardless of cur_budget:

    /* add svc to runq if svc still has budget or its extratime is set */
    if ( svc->cur_budget > 0 ||
         has_extratime(svc) )
        deadline_runq_insert(svc, &svc->q_elem, runq);
    else
        list_add(&svc->q_elem, &prv->depletedq);

The very next rt_schedule() iterates the run queue from runq_pick()
and trips the ASSERT(iter_svc->cur_budget > 0) at the bottom of the
loop, panicking the host. Observed trace:

    Assertion 'iter_svc->cur_budget > 0' failed at common/sched/rt.c:1035
    ----[ Xen-4.22-unstable  arm64  debug=3Dy ubsan=3Dy  Not tainted ]----
    [<...>] rt.c#rt_schedule+0x1558/0x33e0 (PC)
    [<...>] core.c#do_schedule+0x2e4/0x15b4
    [<...>] core.c#schedule+0xb14/0xe50
    [<...>] softirq.c#__do_softirq+0x20c/0x3d4
    [<...>] do_softirq+0x14/0x1c
    [<...>] domain.c#idle_loop+0x194/0x558

Minimal reproducer: pin a single-vCPU domU to a pCPU, program RTDS with
extratime off and a low utilisation (e.g. budget =3D 10ms / period =3D 100m=
s)
so the vCPU spends most of its time in the depleted queue, pause the
domain, issue a putvcpuinfo that sets XEN_DOMCTL_SCHEDRT_extra, then
unpause. As soon as the schedule softirq fires on the pCPU, the BUG
hits. The same sequence is reachable without an explicit pause: any
window in which rt_dom_cntl() runs between burn_budget()'s budget
exhaustion and rt_context_saved()'s runq_insert() also closes onto the
same broken state, because the per-scheduler lock is dropped between
those two points.

The semantics for "extratime gets exhausted budget refilled" already
live in burn_budget():

    if ( has_extratime(svc) )
    {
        svc->priority_level++;
        svc->cur_budget =3D svc->budget;
    }

Apply the same priority-demotion-and-refill in rt_dom_cntl() when the
flag transitions from off to on while the vCPU is depleted, clear
RTDS_depleted to match, and - if the vCPU is currently on the depleted
queue - move it to the run queue using the same q_remove() +
runq_insert() pattern already used by repl_timer_handler(). The vCPU
remains on the replenishment queue throughout, so its normal
replenishment cadence is preserved.

The complementary transition (on -> off) is already safe: clearing the
flag only narrows the runq_insert() admission condition, so subsequent
depleted insertions correctly route to the depleted queue.

No other call sites need changes: with cur_budget restored before the
flag is observable to runq_insert(), runq_pick()'s long-standing
invariant (every run-queue entry has cur_budget > 0) is preserved.

Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
---

 xen/common/sched/rt.c | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
index b156f61afa..18e39977be 100644
--- a/xen/common/sched/rt.c
+++ b/xen/common/sched/rt.c
@@ -1465,7 +1465,41 @@ rt_dom_cntl(
                 svc->period =3D period;
                 svc->budget =3D budget;
                 if ( local_sched.u.rtds.flags & XEN_DOMCTL_SCHEDRT_extra )
+                {
+                    /*
+                     * Turning extratime on while the vCPU is depleted
+                     * (cur_budget <=3D 0) leaves cur_budget unchanged. Th=
e
+                     * next runq_insert() on this vCPU - from
+                     * rt_unit_wake() after a domain unpause,
+                     * rt_context_saved() following a delayed runq add, or
+                     * repl_timer_handler() - then places it on the run
+                     * queue because has_extratime() is now true, even
+                     * though cur_budget is 0. The very next rt_schedule()
+                     * iterates the run queue from runq_pick() and trips
+                     * the ASSERT(iter_svc->cur_budget > 0).
+                     *
+                     * Apply the same priority-demotion-and-refill that
+                     * burn_budget() would have performed if the flag had
+                     * been set when the budget ran out, clear the
+                     * depleted state, and - if the vCPU is currently on
+                     * the depleted queue - move it to the run queue so
+                     * the new extratime allocation is picked up
+                     * immediately instead of waiting for the next
+                     * replenishment.
+                     */
+                    if ( !has_extratime(svc) && svc->cur_budget <=3D 0 )
+                    {
+                        svc->priority_level++;
+                        svc->cur_budget =3D svc->budget;
+                        __clear_bit(__RTDS_depleted, &svc->flags);
+                        if ( unit_on_q(svc) )
+                        {
+                            q_remove(svc);
+                            runq_insert(ops, svc);
+                        }
+                    }
                     __set_bit(__RTDS_extratime, &svc->flags);
+                }
                 else
                     __clear_bit(__RTDS_extratime, &svc->flags);
                 spin_unlock_irqrestore(&prv->lock, flags);
--=20
2.43.0

base-commit: d6fb54fa71926e2ab44ccd84f968ec9228319d65
branch: amoi_rtds_extra_budget_par=


From xen-devel-bounces@lists.xenproject.org Wed May 20 14:09:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 14:09:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314003.1584018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPhbn-0004jU-5G; Wed, 20 May 2026 14:09:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314003.1584018; Wed, 20 May 2026 14:09:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPhbn-0004jN-1s; Wed, 20 May 2026 14:09:15 +0000
Received: by outflank-mailman (input) for mailman id 1314003;
 Wed, 20 May 2026 14:09:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPhbj-0004jE-Vm
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:09:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPhbj-004LMM-BX; Wed, 20 May 2026 16:09:11 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0dc083-2eae-0a2a0a5409dd-0a2a4506a0f0-26
 for <multiple-recipients>; Wed, 20 May 2026 16:09:10 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0dc085-7371-0a2a45060019-5a9b3222df30-3
 for <multiple-recipients>; Wed, 20 May 2026 16:09:09 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPhbR-00000007ENY-3nxJ; Wed, 20 May 2026 14:08:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=QS4NMsaNSoU7MmRQD1e7M/qaWF5XdZVKlFlNM8QnvlQ=; b=V7NbBBRxTQzb4WZQPH0ia7W/u4
	3ap8xYFd0M/I/URx05Sytf3MhFybq9K7GVj95D7uC2Cnm6QCUOEOGNzr+QlLj+Ju7dp8z3OdV4wZ3
	QFCcI0S19iHHGmiwuSl9i6sU6nkpxFiBVfwyUXuxSTDVoETShIo7st29u6rBnCfU+upJiw+WHh3pk
	rhQyUXImFihk+Ta7IZRuDthpjteHwyNnvb6mFgjTg+DTtY8n88VY6mmMSnMU8hDJpWGeB1BmYQ9ys
	cfwlIEynsY7i992ptTzokZmqeoCoMzXgVLgwHPoMt9jXQQFI0A8ZOAs/qEjbXMu5Jp9h/8DGhKMn2
	Hm59lBmg==;
Message-ID: <15b04b2640820d275d051b3dfbcd15302b93f355.camel@infradead.org>
Subject: Re: [PATCH v4 04/30] KVM: x86: Add KVM_[GS]ET_CLOCK_GUEST for
 accurate KVM clock migration
From: David Woodhouse <dwmw2@infradead.org>
To: Dongli Zhang <dongli.zhang@oracle.com>, kvm@vger.kernel.org
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
 Shuah Khan <skhan@linuxfoundation.org>, Thomas Gleixner <tglx@kernel.org>,
 Sean Christopherson <seanjc@google.com>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, "H. Peter Anvin" <hpa@zytor.com>, Dave
 Hansen <dave.hansen@linux.intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>,  x86@kernel.org, Marc Zyngier <maz@kernel.org>,
 Juergen Gross <jgross@suse.com>,  Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Paul Durrant <paul@xen.org>, Jonathan Cameron
 <jic23@kernel.org>,  Sascha Bischoff <Sascha.Bischoff@arm.com>, Jack
 Allister <jalliste@amazon.com>, Joey Gouly <joey.gouly@arm.com>, 
 joe.jin@oracle.com, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org,
 linux-kselftest@vger.kernel.org
Date: Wed, 20 May 2026 15:08:52 +0100
In-Reply-To: <08a64760-a431-4d0a-9480-562f8f38c908@oracle.com>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
	 <20260509224824.3264567-5-dwmw2@infradead.org>
	 <0ae8e471-db7a-4842-aca4-8ef643acde8b@oracle.com>
	 <d3c461415e05345a9b82e6f995828c1ae64a4e61.camel@infradead.org>
	 <935312be-9a86-49fd-8bb4-2c998a68e2df@oracle.com>
	 <b9980333f3a310bf05e170e79c40cb2f46485caf.camel@infradead.org>
	 <aa68ed10-15da-4368-a986-6864843a3c44@oracle.com>
	 <32ca0a8da4bfb1e92013a7f75e0ff7541ebcd6a6.camel@infradead.org>
	 <08a64760-a431-4d0a-9480-562f8f38c908@oracle.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-kdLl6ujEBe96tHDTmnqo"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-16d1c6/1779286150-87B7DD75-F21C171A/0/0
X-purgate-type: clean
X-purgate-size: 8127


--=-kdLl6ujEBe96tHDTmnqo
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, 2026-05-19 at 16:34 -0700, Dongli Zhang wrote:
>=20
> I would really appreciate it if this document could be revived. I don't s=
ee it
> in your most recent v4 PATCH 7. It is very helpful as a guideline for how
> userspace VMMs should take advantage of these APIs.

In the kvmclock5 branch I'm revising for the next round.

https://git.infradead.org/?p=3Dusers/dwmw2/linux.git;a=3Dcommitdiff;h=3Dae8=
72d9b75

Now has a selftest which serves as an example of the process that was
documented. And an extra fix right before it in the tree, to update the
master clock on vCPU creation because otherwise otherwise KVM_GET_CLOCK
wasn't returning the host_tsc.

I think I need to change that to only do so if ka->use_master_clock
isn't *already* set though, or we risk introducing discrepancies on
hotplug again? Will tweak that...



--=-kdLl6ujEBe96tHDTmnqo
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDE0MDg1
MlowLwYJKoZIhvcNAQkEMSIEIJza43h/FwgwD2EkJ+bq4stwt29DSUHRCPFBwLtsb3yXMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAFFEKdpALDqXh
98WXtQxeMs9JtVb0zg4HAtsKc543QODPTTbvOOdM5lYBKAGoZ4oYvBU5Y3W9Erie9o+NfS8UFXBY
8v8qn+zntuKw/C3TI94IVNUW2+FY2UiToaZXyfPJDrxpdnv6UHiWSY9Mzhve303g2rJhQgmxm2Pb
YUF60IZch8nqSKNX9BqxEtCwjhcqPMUAd9nAWtKe9Awxsr7gLX7S26Ai7qCeJvuB56NdeHyAqObD
wVqh3UNgJ7uNI9pUQbmjj7GF9gdfrCMkXTd5J2T9XFy0Vu67zeQihDJnIIkF176L2owSHC9kLqff
EFNBw8OlYN2z/2EshiOqcDmIZg1uhuxfq5+O57bRdCirVIfxzAaRJOEpNFLG/m+n7F0QTSPTe0CI
Oue1hnRyxMVwD8jElEqHyJDzG5dwmi1QYZlfPJZ08d5UalrzUQmS14qtIWivAlvhU+R7hNS1TyQH
COT9g8/uX3KFCYRQOq3BBOPmG7ZLmqpSlz/qMhhLDBPs9QpdEgh/WCxEJq33zQVwE/ISA7ujIWl6
bC/6OKOoT6MJu2zQpafgVWsp0ncYIkn2JRA6LZpJXtn7oeZN1ztd5ub7GJCEPc4E8V+Gxy6K8TOu
XGNcYXljNyWlD9iYBxBaBsh7tSntuo/tVTmMJ8vTUad7MgmRNkox46SOBYeL6VYAAAAAAAA=


--=-kdLl6ujEBe96tHDTmnqo--


From xen-devel-bounces@lists.xenproject.org Wed May 20 14:22:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 14:22:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314015.1584027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPhoB-0007V1-7Z; Wed, 20 May 2026 14:22:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314015.1584027; Wed, 20 May 2026 14:22:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPhoB-0007Uu-4C; Wed, 20 May 2026 14:22:03 +0000
Received: by outflank-mailman (input) for mailman id 1314015;
 Wed, 20 May 2026 14:22:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPhoA-0007Uo-76
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:22:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPho9-004OG2-JC
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 16:22:01 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0dc380-e002-0a2a0a5209dd-0a2a4504a230-18
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 16:22:01 +0200
Received: from [209.85.221.52] (helo=mail-wr1-f52.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0dc389-1dec-0a2a45040019-d155dd34d577-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 16:22:01 +0200
Received: by mail-wr1-f52.google.com with SMTP id
 ffacd0b85a97d-43d7645adbdso3360641f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 07:22:01 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45d9ec3b18fsm50031998f8f.11.2026.05.20.07.21.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 07:22:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779286921; x=1779891721; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=c/9AEJH/l3xIg12uGcEio/MBEycibDFrO4TX5PYp34M=;
        b=cTpGx3b/Bh6ScVuj0RODIbbZtyWHXHDVaIq3VqwtFL05P4ssFrj+el6x50x8h6xrg4
         LSStvBYtyNi4445w6uaxog+4r+h8xeWHeZX+DonNz2A1yjfvrdDnO4WFA/TWMbXknQ0h
         GEIvtGb3F/pO6A+4INDawe7n1+YFgd6jgGS7hpuHZi/LgU30DsIBg1a1f1OStBfyKyQj
         OxnB4pr0Smz/QctWFOiOdfYH7ruAYFmVG0fsQQCkTD//2MRFol2XhVRDJtmVcUZxy5KH
         3jtYlZqvmbtOM5pSMt5lM2qmnAnGIbajKdt3iVVVWrZXhhR0zrmGtTMrVMU/S/ahFZV6
         1vNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779286921; x=1779891721;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=c/9AEJH/l3xIg12uGcEio/MBEycibDFrO4TX5PYp34M=;
        b=RqmH+TzPaan6NkukI2dIQPdsGMIxFjBYvO2V50tRzbJO/aQj9YTP/aZdxdB4593OID
         c3HD9sXntqzeyd1JLSAqmUx7k5ylKD1Yd8D+NDkHF2L0+HpqFKaGmP+ilMoDD6EmLm/b
         /7ZighTMxmotTQ9l8aGEZdR+J3ToGCjapKNUoTlU3q4AU6OQNGRBaRRsp49KxxpPLZRa
         1epgxfakI4mf3lyvm9S144v6D4WJzmGt6ho1bCKUwRXOFTPCbMKd2f+zO6MM6Lus8NV/
         3UzQCSCqcItJw1p/oZVJodCfOwq9g744Mowd8zAw84nWvK5PKvm/KTw7sKf8U1rkeuRW
         GinA==
X-Forwarded-Encrypted: i=1; AFNElJ/tX/bjkESG6Vz3jmAhsbrL8CRu0GUo6rRp2D0BI2kLztScn/bN3Ug9VgyyxYP3BRpZdz9qU0aSIss=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw8l+WJFaE7qNNcJtLR2euPmWvzjXOvNIZU5YTmTYM/7DEdsQHK
	3eh3SRCb9ys2NWLwC3nRsYzONJAyYroL/q9pSR8HlIbr3M0fHEldGvy3bNhH5EScwA==
X-Gm-Gg: Acq92OGBQyEuZteTUczZ50P6s/dlOfgIBashwrZMWB8cV6URw05tYild+VeLM22vgIn
	QGOl+RXSaCtInygFPzbMdHSBIctg8nqfJ+VG0dOgkdzCz5oq0S67EfBhEfi4Flivv2ewaoojHtg
	bAUCJK9Wb5HGLtVrWkKh98eamvBxM+5JCgelbZW9t85RORn+Y0+0z2RJI1l19RqQLhPsAieU3wF
	CJSs2EQel9fvqiW68ZgiNQT44Aail7KHZdDvuTx9YZ0pbvnW+fvjamrGr51XE2cniRfnVDOuKS0
	bmxxDmpX75b+qXMH1P/Zly4Y6PqWhCmFEiGMPgctyvX3LenbHZJUh41qvtXE32LNa3mrZi3tLf8
	6uuyLzhzVb7BClQq1i3mq6luVDWW+N+c2K7y9QGX/FuBR7BgbVIa2NeMhLFSdfo9giaedO5x1fj
	hjoxqXeA4qB2QW4VHeqT8PfNDT9K+LfBfZ640mxKVeaimdUcRBBsKyefpSBCSTVyd4os65dU2y2
	c+b1SJU09TGIGvsZeyMUF218g==
X-Received: by 2002:a5d:5f53:0:b0:44b:9dca:7d93 with SMTP id ffacd0b85a97d-45e5c58761emr37830394f8f.26.1779286920565;
        Wed, 20 May 2026 07:22:00 -0700 (PDT)
Message-ID: <5f2013a0-d90b-49c9-bd18-afeffebac74e@suse.com>
Date: Wed, 20 May 2026 16:21:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
 <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
 <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
 <ea274abd-d7be-4fee-a147-936a8adc1c81@suse.com>
 <12e89d4e-2856-4130-aaa7-1ec1a742c72f@gmail.com>
 <2d8166e4-009f-4066-b96d-fb9e41b548a1@suse.com>
 <eec28059-d7c5-4d30-80ff-7b1b57d706ec@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <eec28059-d7c5-4d30-80ff-7b1b57d706ec@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1779286921-41D7C3FF-A1796CA4/10/73395122804
X-purgate-type: spam
X-purgate-size: 5648

On 20.05.2026 15:40, Oleksii Kurochko wrote:
> 
> 
> On 5/20/26 2:03 PM, Jan Beulich wrote:
>> On 20.05.2026 13:33, Oleksii Kurochko wrote:
>>>
>>>
>>> On 5/19/26 1:53 PM, Jan Beulich wrote:
>>>> On 19.05.2026 13:22, Oleksii Kurochko wrote:
>>>>> On 5/19/26 12:55 PM, Oleksii Kurochko wrote:
>>>>>> On 5/19/26 11:37 AM, Jan Beulich wrote:
>>>>>>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>>>>>>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot inside
>>>>>>>> the domain's shared_info page for vcpus with id < XEN_LEGACY_MAX_VCPUS,
>>>>>>>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>>>>>>>
>>>>>>>> However, it does not guard against d->shared_info being NULL.  The
>>>>>>>> shared_info() macro expands to a member access through d->shared_info,
>>>>>>>> so when an architecture does not allocate a shared_info page the
>>>>>>>> dereference triggers UBSAN:
>>>>>>>>      UBSAN: Undefined behaviour in common/domain.c:325:10
>>>>>>>>      member access within null pointer of type 'struct shared_info_t'
>>>>>>>>
>>>>>>>> Extend the existing fallback condition to also cover the case where no
>>>>>>>> shared_info page has been allocated, mapping the vcpu to dummy_vcpu_info
>>>>>>>> instead. This is the correct behaviour: dummy_vcpu_info already serves
>>>>>>>> as the safe stand-in for vcpus that have no usable shared_info slot.
>>>>>>>>
>>>>>>>> Fixes: 295514ff75506 ("common: convert vCPU info area registration")
>>>>>>>
>>>>>>> I question this, largely (but not only) because I also ...
>>>>>>>
>>>>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>>>>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>>>>>>>> ---
>>>>>>>> RISC-V does not allocate a shared_info page at the momemnt because its
>>>>>>>> guests run in dom0less mode and do not use the Xen PV ABI, so
>>>>>>>> d->shared_info remains NULL throughout domain lifetime.
>>>>>>>
>>>>>>> ... question this mode of operation. Yes, you may (for now) be able to
>>>>>>> get
>>>>>>> away without, but e.g. event channels will want supporting at some point.
>>>>>>> Which will require a shared info page. Better put that in place right
>>>>>>> away,
>>>>>>> even if the guests you test with don't use it (yet). Certain other common
>>>>>>> code also assumes d->shared_info to never be NULL for an alive domain.
>>>>>>>
>>>>>>
>>>>>> Would it be fine than to allocate it in arch_domain_create() ... :
>>>>>>
>>>>>>        if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
>>>>>>            goto fail;
>>>>>>
>>>>>>        clear_page(d->shared_info);
>>>>>>
>>>>>> ... but without calling share_xen_page_with_guest() after that
>>>>>> allocation as share_xen_page_with_guest() isn't implemented at the moment?
>>>>
>>>> I would have said "yes" here, but ...
>>>>
>>>>> Or could it be an option for all arch-s move allocation of
>>>>> d->shared_info to domain_create() in common just after arch_domain_create()?
>>>>
>>>> ... Andrew's reply pretty much rules out not only this option, but the
>>>> shared-info-page concept as a whole (for RISC-V). See my reply there. In
>>>> the meantime, the change as suggested may then indeed be what we want to
>>>> go with, albeit (a) with a better description and (b) perhaps covering
>>>> all d->shared_info uses.
>>>
>>> Looking at guest kernel code (Linux), FIFO is tried first, so if RISC-V
>>> is going to support only FIFO, d->shared_info could legally be NULL.
>>>
>>> Looking at the Xen side, if an architecture decides to support only
>>> FIFO, d->shared_info is touched only in vcpu_info_reset(), which is
>>> called from vcpu_create().
>>>
>>> All other places where d->shared_info is accessed should not be
>>> reachable except for one case in event_fifo.c: when a guest issues the
>>> EVTCHNOP_init_control hypercall, setup_ports() reads from shared_info(d,
>>> evtchn_pending):
>>>     static void setup_ports(struct domain *d, unsigned int prev_evtchns)
>>>     {
>>>     ...
>>>             if ( guest_test_bit(d, port, &shared_info(d, evtchn_pending))
>>>                 evtchn->pending = true;
>>>     ...
>>>         }
>>>     }
>>>
>>> This looks like it handles the transition from the 2L ABI to the FIFO
>>> ABI: if a guest started with 2L and then switched to FIFO, any events
>>> already pending in shared_info(d, evtchn_pending) need to be migrated to
>>> FIFO's per-channel evtchn->pending flag. But it looks like I am missing
>>> something here as I mentioned at the start that Linux uses or FIFO or 2L.
>>>
>>> Am I missing something?
>>
>> Quite likely you aren't, but I didn't check. My earlier "covering all" may
>> well resolve to merely stating things accordingly in the patch description.
> 
> If either FIFO or 2L can be used, shouldn't guest_test_bit(d, port, 
> &shared_info(d, evtchn_pending)) in setup_ports() be dropped? If FIFO 
> was chosen by Linux, there won't be any events in &shared_info(d, 
> evtchn_pending), so it is essentially dead code that could just be 
> dropped.

Why would it be dead code? Who said that a guest couldn't to 2L for a
while, then switch to FIFO? Think of boot loaders, for example.

Jan

> Or would it be better to leave it and skip only if 
> d->shared_info is allocated: if ( d->shared_info && guest_test_bit(...) 
> )  to cover the case when a guest wants to switch from 2L to FIFO (if 
> that is even a possible case at all, since as I mentioned above, the 
> guest (Linux) chooses the event ABI once and it stays for its lifetime)?
> 
> ~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed May 20 14:25:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 14:25:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314023.1584035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPhrd-000839-LI; Wed, 20 May 2026 14:25:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314023.1584035; Wed, 20 May 2026 14:25:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPhrd-000832-If; Wed, 20 May 2026 14:25:37 +0000
Received: by outflank-mailman (input) for mailman id 1314023;
 Wed, 20 May 2026 14:25:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPhrc-00082w-U3
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:25:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPhrc-00HRyn-AE
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 16:25:36 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0dc451-e002-0a2a0a5209dd-0a2a450ce4ba-32
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 16:25:36 +0200
Received: from [209.85.221.48] (helo=mail-wr1-f48.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0dc45f-62f1-0a2a450c0019-d155dd30a81b-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 16:25:35 +0200
Received: by mail-wr1-f48.google.com with SMTP id
 ffacd0b85a97d-44dd5cb0f81so4051856f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 07:25:35 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4900c16c744sm237312445e9.3.2026.05.20.07.25.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 07:25:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779287135; x=1779891935; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ac32WCr+Ihzp1gBe7Qmdq78cZVdv0dfRb6ezXTBUVNA=;
        b=OJL2ybJWBmQMA7TtdJPwxN9p2LFSTIRwbrNG7A4ccjNvCY/9lXmvhZKoa+oUSEkuPb
         FO8iy+y5UKDEFADL3FnKzvbOpun7dMrPBa8haXjGNwKHu9gliyCJmgxl1tR4RH3yuwtn
         gvTVwvPwDDjpwgS2j9QlbspeM4zgTvxke/G8UVlk8PmCfghhHfmJSFM/46VWdrTR9Wju
         VkQuRtJaJt8o3hXyf9hebUNXuzls2Wupaf549lH/vY9FC1NLCYbnRH1U0g3xBBdDCpG9
         Hb0jueTT9W/4T5rgUM8CYgRX62rWzztwUlT9lCcMzwYpSQ5DWCBnkD9OwFonRDXiihhC
         RK5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779287135; x=1779891935;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ac32WCr+Ihzp1gBe7Qmdq78cZVdv0dfRb6ezXTBUVNA=;
        b=gevIgKpjk2UVPxZCxKwo38G6i2RzpPCUBj/vEMBuNQJN/u8rCAWA/qDHHPCRTKhQU7
         MbndmV76e0AIb/KgYNyYwlNAh96KOx2crWopfgBRPP17/yuT2+qPnRODL+BQQ5jzYLWo
         p9FpWYqfvMgfeqllbFA8XbiDgHLmrPiryab50QnFp+NZFuVVKnvGc6ILYexfDUJHyFdB
         32Os6gFpFNonGCeHnAtj+mAZzkpwcVdf2l05NI3zHeVpZHEgmdUWac0ZMtOS3apLIqCE
         vl9cOE6hPE+7yj5ophpWsMUJfL4qKagm9haQZ6fauVeO/44QqeSrKsGf3FIY+Oh+EUlX
         kIBw==
X-Gm-Message-State: AOJu0YziE/rVetbJ+bZ1shh/aej7G5icSrMdTwg23lRuW/W/2Lcp4Ewq
	2izNISMXrqZ64gvXri8gQ59lZN0yjkQcy5VoBCsHYcZ1vkN+dKSVfYWjk31WFzVKIg==
X-Gm-Gg: Acq92OFg7g6otHLW5GN+5C+L4wrcQRN9f2WKSbC7sNTMWpRXIG5spjUQRF9n0Hc38Do
	u1/81/7j3OuVZgGekQHCtKC2SYrUTQ8E7PF4HYIBia8uRLZxrsaq/V2lhN0dS9gy7NnPSVLso+3
	+cXCX1pK7x0v5RqYWvQHJSNJoiUA4EKUpaYEq8ar7iEk2mCFGXyFgs/D0/qf95G8aPGwHzSBqzd
	gvgKQpkNY7TtQonxPSLWOBA2NJlPDCd3GvsPub4DH2IupQTAxgoRQe8J27+gnbYOH1Zk6X/60dL
	f33DOQYPV0+EKoAFjndwYQmKB17Hk5BjMdnTqCL6CsXjobiQx9UUCySCdFDYxQUdHfuuaCi+TYS
	MiD4Nb7XxCq+sjRVGuV+ySXtB+6k7F9yZbIeBueWGxRk18xJ9clL+w8KdXOjLPG1WAcyWd6T9Rf
	FAMJ8GiTToT6ytCRjsk1z4U1sbB85hIsTUFviwZ11oSpGGE9viy25sLUX7uG8e1GmKejXS5rgmE
	tL2kyki+y+r1+g=
X-Received: by 2002:a05:600c:3493:b0:48a:534a:eed8 with SMTP id 5b1f17b1804b1-48fe4cae12dmr366407745e9.1.1779287135334;
        Wed, 20 May 2026 07:25:35 -0700 (PDT)
Message-ID: <c2bc17e2-9446-411e-8bfe-c1641a10a85b@suse.com>
Date: Wed, 20 May 2026 16:25:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/shadow: VRAM last_dirty tagging
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <5149ab32-7d03-4ae5-9af0-e62dd5836329@suse.com>
 <8559db88-5f1d-4ced-980c-e71c4e229c7c@suse.com>
 <ae8sMiXAWjeXI3o1@macbook.local>
 <eba10bd9-064b-437a-bf42-7a627fda464b@suse.com>
 <ag29KOzxOyU47mFM@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ag29KOzxOyU47mFM@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1779287135-DBF7ACF5-534AB3F1/0/0
X-purgate-type: clean
X-purgate-size: 2997

On 20.05.2026 15:54, Roger Pau Monné wrote:
> On Mon, May 04, 2026 at 10:39:53AM +0200, Jan Beulich wrote:
>> On 27.04.2026 11:28, Roger Pau Monné wrote:
>>> On Tue, Feb 03, 2026 at 05:49:55PM +0100, Jan Beulich wrote:
>>>> --- a/xen/arch/x86/mm/shadow/hvm.c
>>>> +++ b/xen/arch/x86/mm/shadow/hvm.c
>>>> @@ -1087,18 +1087,18 @@ int shadow_track_dirty_vram(struct domai
>>>>          if ( (dirty_vram->dirty_bitmap = xzalloc_array(uint8_t, dirty_size)) == NULL )
>>>>              goto out_sl1ma;
>>>>  
>>>> -        dirty_vram->last_dirty = NOW();
>>>> +        dirty_vram->last_dirty = -1;
>>>>  
>>>>          /* Tell the caller that this time we could not track dirty bits. */
>>>>          rc = -ENODATA;
>>>>      }
>>>> -    else if ( dirty_vram->last_dirty == -1 )
>>>> -        /* still completely clean, just copy our empty bitmap */
>>>> -        memcpy(dirty_bitmap, dirty_vram->dirty_bitmap, dirty_size);
>>>> -    else
>>>> +    /* Nothing to do when the bitmap is still completely clean. */
>>>> +    else if ( dirty_vram->last_dirty != -1 )
>>>>      {
>>>>          mfn_t map_mfn = INVALID_MFN;
>>>>          void *map_sl1p = NULL;
>>>> +        bool any_dirty = false;
>>>> +        s_time_t now;
>>>>  
>>>>          /* Iterate over VRAM to track dirty bits. */
>>>>          for ( i = 0; i < nr_frames; i++ )
>>>> @@ -1174,16 +1174,20 @@ int shadow_track_dirty_vram(struct domai
>>>>              if ( dirty )
>>>>              {
>>>>                  dirty_vram->dirty_bitmap[i / 8] |= 1 << (i % 8);
>>>> -                dirty_vram->last_dirty = NOW();
>>>> +                any_dirty = true;
>>>>              }
>>>>          }
>>>>  
>>>> +        now = NOW();
>>>> +        if ( any_dirty )
>>>> +            dirty_vram->last_dirty = now;
>>>
>>> I'm a bit confused with the setting of ->last_dirty here ...
>>>
>>>> +
>>>>          if ( map_sl1p )
>>>>              unmap_domain_page(map_sl1p);
>>>>  
>>>>          memcpy(dirty_bitmap, dirty_vram->dirty_bitmap, dirty_size);
>>>>          memset(dirty_vram->dirty_bitmap, 0, dirty_size);
>>>
>>> ... as here the bitmap is zeroed, and hence ->last_dirty should be set
>>> to -1?
>>
>> That's not how I understand the field is used. Aiui it identifies "was
>> clean for more than 2 seconds". That's not the case here. Hence the
>> setting to -1 only conditionally a few lines down from here.
> 
> Hm, OK, it seems like a very complicated way to signal this.  Won't it
> be easier to unconditionally store the last write time in
> ->last_dirty, and let the consumer decide whether it's been more than
> 2s or not?
> 
> Maybe you could write a comment next to the field in the struct
> declaration?

Maybe (in a separate patch), but then how I understand the field is used
may still not be quite correct. I.e. by adding a comment I may further
confuse things.

> Either way:
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 20 14:43:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 14:43:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314035.1584045 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPi8w-0002qL-6Y; Wed, 20 May 2026 14:43:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314035.1584045; Wed, 20 May 2026 14:43:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPi8w-0002qE-2y; Wed, 20 May 2026 14:43:30 +0000
Received: by outflank-mailman (input) for mailman id 1314035;
 Wed, 20 May 2026 14:43:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPi8v-0002q8-6f
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:43:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPi8u-0081b5-If
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 16:43:28 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0dc888-5cb7-0a2a0a5109dd-0a2a45018db4-26
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 16:43:28 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0dc890-c1f2-0a2a45010019-d155802dcc11-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 16:43:28 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-48984d29fe3so55127045e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 07:43:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fed253f93sm130787775e9.16.2026.05.20.07.43.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 07:43:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Content-Language:Cc:To:Subject:From:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779288208; x=1779893008; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=1nbudUEqnTAxYGN5Oi8IfyVVCmUa+WSp+/nGr6qgW0w=;
        b=KoAQrQ6VA9DQ5JISjkHQys8Nr3ZR82yZCbSkcwUFCiF+gspZAcF9hwsfsonKk4ou1p
         7dzQ2kPyaX/DAXbfOv9bBT1CtbUjIb3x1PyESH5f9KZThIAEsZIdInrEi/6v2n6+QgMD
         1e8MznzMNiNITVT+J0vyXEjuS3e8Wk8YYp0Kl3gGkeyLcoKvB7u1wVi69TdOdPndiCnF
         ARPEwZj/lNZW5ebyUhKFfWZthzy8pg+yFkn0LnJEJY9zpD6BQ63qz/6S3lDbWskRvDIk
         fxBUgtM0SjUMb5f4eQ4xXpBO9cb3FScmmsiqDbo1YmTkwMcFxeTteHVYMCyfFcsZEYVz
         J31A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779288208; x=1779893008;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=1nbudUEqnTAxYGN5Oi8IfyVVCmUa+WSp+/nGr6qgW0w=;
        b=D6e/LuSSCTWTsr2G55lklAAl7BmOcPQ32yx1FjsvUVGJyupKkGhPZHjCF7s+vwHCaM
         IRqMmqxysqykhk+yDencOo/D/R//fZ1jATxmk7Af/0bIMXzadE8JZND3oCzumMLiAIst
         KP6dB/lzXiosBDohT8Y32pMsEjtpDPlMACnQvQtGFreYf+/jpOdPh2NKuc1pWpwpmebG
         09PXs3Dq6ArJdtvX68biFhDl/H0RAHAqahbxoes3W2FyHn9FlH6mH+olV03VgGXFAwc7
         mfa8LdZs1aWnyzfOs06KGjPg/XH81nJ+lQuEmwQo4f/O31HSFY3pByEYuQ8ddP6asDLg
         P3Pg==
X-Gm-Message-State: AOJu0YyiyMZZb4dwT/wUUMHtu8f2BTlEm0e1nOiHPnhu+OGvkuWM6mTF
	Q7dwO93zLCgca2xAH5SDWmQvjHt3n4NPx7K447IKo0gK5KTA9+e5BIUWr7x2Dy/XNzjA37KN4gv
	1SYw=
X-Gm-Gg: Acq92OEWHfMcXH0bBDfRmnBM4p0BVq833mYtRQpQ8/MndqTNMBRS9RNvTo+L8Vh0kR7
	Ao/lIG40kRXEBfRWyghiRQbnrZfKeiRzTxFPmsBP6IsJC+k3G7FHNRCsO4NxKrKwTo6v2DeXrlN
	hDmKmHUtMxUwwbayYIkqZTI8gWjqUGglnw+otlbdgMK0OrraCnwN+MEdq5z4GUprg2fpSnM2zt/
	C7tAkvXphoQcij43B2Mah6XM4tglXNnvXbuUjun2+Q6xTWl1aGfVK/so8RpGUMwh3kLqQNTjw+S
	cvhS4LQ8DaeyHpyPJTa4wvV4rRD+341oM0YKUiV+Hm3BTuLpXjysrTsJP3lMr3FrEna5mWT+8cK
	EymbM6dhN31G2ll3kORzUdn2BOBvakUXRhKH4wKQwWXoONfSb1nnBb+/ASqW81F4AyQFKA+ISXc
	Kem6iR0pBKVpR29XHAsM5WRAdJQjUpe798gnw6p96CQiYTN+EDAlVZwVkiYjlv0YfnDGl8n4ohJ
	ouBTeXDsvz90H4=
X-Received: by 2002:a05:600c:4f13:b0:485:30d4:6b9e with SMTP id 5b1f17b1804b1-48fe6328bb7mr414252495e9.21.1779288207813;
        Wed, 20 May 2026 07:43:27 -0700 (PDT)
Message-ID: <a3e034a4-621a-45ad-9b96-9a85cbe5eafd@suse.com>
Date: Wed, 20 May 2026 16:43:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH RFC v3 0/3] x86/time: avoid early uses of NOW() to return zero
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1779288208-AE55DFF4-D7EBF1CA/0/0
X-purgate-type: clean
X-purgate-size: 245

Two new prereq patches were added in response to review feedback.

1: time: add "NOW() good" indicator
2: x86/Intel: split model-specific freq calculation off of intel_log_freq()
3: x86/time: avoid early uses of NOW() to return zero

Jan


From xen-devel-bounces@lists.xenproject.org Wed May 20 14:45:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 14:45:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314040.1584053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPiAs-0003KB-HR; Wed, 20 May 2026 14:45:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314040.1584053; Wed, 20 May 2026 14:45:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPiAs-0003K4-E8; Wed, 20 May 2026 14:45:30 +0000
Received: by outflank-mailman (input) for mailman id 1314040;
 Wed, 20 May 2026 14:45:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPiAr-0003Ju-7D
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:45:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPiAq-00DOsN-Je
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 16:45:28 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0dc907-2eae-0a2a0a5409dd-0a2a450bd9b8-10
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 16:45:28 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0dc906-212f-0a2a450b0019-d1558035c84c-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 16:45:26 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-4891e5b9c1fso43654415e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 07:45:26 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45e6a135f0csm35919031f8f.27.2026.05.20.07.45.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 07:45:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779288326; x=1779893126; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dHoS210MxadB7J4xOPvWHIDlEyec0VM05s2uEJ0dyVw=;
        b=Pvk57zP8fFiBvShKpIeEr3aoe+BZ3XqX2heBLNpXopYS4NM5NOoNqMlFhRHZD22+Zv
         KHGZBVq5sXl/gDg9RSgd5/GQ3ioTltdquEZt6BRmyayjlV6+3zyC0WIpmSPKEgppfaOu
         OAdTRqPLngHs+WQWheMVd1aSxCh1yfIRcjo7yCZgOWGaShPXoeApVQeHHXVHi7dyLXdP
         stq67/rwsjUOORXG72TPMXqloIR9tkb9f1Eo3f7bT5VPXqL6LgpLl+nK6EWyVOD/koPT
         wvvNECQT+zbzO3+8hULcMhvzACzeJBsFVC+kainFKDQbNcG2qQkHbwc3R5kvHah9t9Is
         xw3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779288326; x=1779893126;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dHoS210MxadB7J4xOPvWHIDlEyec0VM05s2uEJ0dyVw=;
        b=estBXF3mG8AfHWj5aR9zUfVbCB1YYDS76Ne5piJPkxkpWbqCI3W/WOpTVoe5R3K3PN
         MciJJIt6ZPLBgz8eQLAEh9bPOpTbnbGVtMhi0HMhmDxAGA51JEjJhG/DtRO1CenF4ZeJ
         waVZ1GhmKNSG1Z8TRO6dPjxPuDjPyX2WsvyKMfdg/VfGJOA4/fpiL5vYr26CwgpAW1LW
         Ggo+SnMb/D1Avfjc4llwQRiXqu2+pp5fLjw9NNxdbLBCxtUU40khFAMLrgLqcZbGEqG2
         veRXCGLh/MtfOUcbPPbeZEJBBs2msGiaEAN3phmbUgTHwAEpcU3kfhlq266sMtuhXzur
         66ZQ==
X-Gm-Message-State: AOJu0Ywde/J17V9v0X0omc2Opb5NghryrTOaje0fb5KtCPLD6OzjAq0B
	T+PGvXrGwOygwd8tUlimtsvRCVAOeeQysTrX669zoewTJ7FhGQhDTFwfaryTR0D5ufuLPtEDcTu
	EWFA=
X-Gm-Gg: Acq92OH2jgTqTPswMmLKqtkC9/LVQSjJeHjItdCtFjLIayGGZvjFzpITt/IdxfFcnk1
	cshEpc7bEfiNgvdrJ+l6qP03eqKfpJCwtA7Rb//BIxe/RofcOgkIT273UUFQ2YNbw0aRbf+QaF1
	WXwYSr2A89CEdLyV9yYCS/GRCABTQOFdCu/CPJIFkQGQ2XKGbnqmMoLKXPZ9Ng/XmOyiJefAKcO
	pnxcsaUE81oYWcwMt7ct0hVb9O/BrnyWcDxmXpn9SNNhxoOjCEjeC8DMTG3VTzcn9XOSGqis4l5
	OzG/8LnCCN78zIk47XgqjS6aHA3PsUtl8bwCfHKDKJugxsQDWXhs5HhVtwf5WlpVwaTbiMLgfZD
	f+MpOYmqGWP+8yL6o2DHTiUaLNwEfD41gaIbhNE10IFtb3qfeyZbvXEdxPFn3qXjJI0X3BGvxGi
	gZC9l0TRyFXFiYA5x8IVuXBGgLpyJW0I6uhv0rBtPb9pfYltlcQ5f5vQ2FXRDvBdxTpBddB4f5F
	OqqNb5NqciYM8CWcndnN2PSCA==
X-Received: by 2002:a05:600c:c096:b0:48f:d1b8:9aaa with SMTP id 5b1f17b1804b1-48fe60e525bmr279995405e9.6.1779288325690;
        Wed, 20 May 2026 07:45:25 -0700 (PDT)
Message-ID: <38b28709-eddc-4dc7-9e8e-92db67d20ea7@suse.com>
Date: Wed, 20 May 2026 16:45:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH RFC v3 1/3] time: add "NOW() good" indicator
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <a3e034a4-621a-45ad-9b96-9a85cbe5eafd@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a3e034a4-621a-45ad-9b96-9a85cbe5eafd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1779288326-21F84F3B-A81C7090/0/0
X-purgate-type: clean
X-purgate-size: 2742

printk_start_of_line() checks for a value of 0 right now. In order to be
able to have NOW() return at least monotonically increasing values, that
needs replacing by an explicit indicator.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Arm and RISC-V may want to consider whether their initial get_cycles()
can't be moved yet earlier, such that the indicator also can be set
yet earlier.
---
v3: New.

--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -145,6 +145,7 @@ void __init preinit_xen_time(void)
         panic("Timer: Cannot initialize platform timer\n");
 
     boot_count = get_cycles();
+    NOW_good = true;
 }
 
 static void __init init_dt_xen_time(void)
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -87,6 +87,7 @@ void __init preinit_xen_time(void)
         panic("%s: ACPI isn't supported\n", __func__);
 
     boot_clock_cycles = get_cycles();
+    NOW_good = true;
 
     /* set_xen_timer must have been set by sbi_init() already */
     ASSERT(set_xen_timer);
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -2657,6 +2657,7 @@ void __init early_time_init(void)
 
     set_time_scale(&t->tsc_scale, tmp);
     t->stamp.local_tsc = boot_tsc_stamp;
+    NOW_good = true;
 
     init_percpu_time();
 
--- a/xen/common/time.c
+++ b/xen/common/time.c
@@ -22,6 +22,8 @@
 #include <asm/div64.h>
 #include <asm/domain.h>
 
+bool __ro_after_init NOW_good;
+
 /* Nonzero if YEAR is a leap year (every 4 years,
    except every 100th isn't, and every 400th is).  */
 #define __isleap(year) \
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -975,11 +975,10 @@ static void printk_start_of_line(const c
         }
         /* fall through */
     case TSM_BOOT:
-        sec = NOW();
-        nsec = do_div(sec, 1000000000);
-
-        if ( sec | nsec )
+        if ( NOW_good )
         {
+            sec = NOW();
+            nsec = do_div(sec, 1000000000);
             snprintf(tstr, sizeof(tstr), "[%5"PRIu64".%06"PRIu64"] ",
                      sec, nsec / 1000);
             break;
--- a/xen/include/xen/time.h
+++ b/xen/include/xen/time.h
@@ -63,6 +63,12 @@ struct tm wallclock_time(uint64_t *ns);
 /* Chosen so (NOW() + delta) wont overflow without an uptime of 200 years */
 #define STIME_DELTA_MAX ((s_time_t)((uint64_t)~0ULL>>2))
 
+/*
+ * Indicator that the value returned by NOW() is good (earlier invocations may
+ * return zero or very small, merely monotonically increasing values).
+ */
+extern bool NOW_good;
+
 /* Explicitly OR with 1 just in case version number gets out of sync. */
 #define version_update_begin(v) (((v) + 1) | 1)
 #define version_update_end(v)   ((v) + 1)



From xen-devel-bounces@lists.xenproject.org Wed May 20 14:45:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 14:45:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314042.1584062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPiB9-0003ff-OO; Wed, 20 May 2026 14:45:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314042.1584062; Wed, 20 May 2026 14:45:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPiB9-0003fY-LX; Wed, 20 May 2026 14:45:47 +0000
Received: by outflank-mailman (input) for mailman id 1314042;
 Wed, 20 May 2026 14:45:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPiB7-0003cN-W1
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:45:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPiB7-00GaD1-Bu
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 16:45:45 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0dc919-bab6-0a2a0a5309dd-0a2a4508d5b0-0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 16:45:45 +0200
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0dc919-63b5-0a2a45080019-d1558034e079-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 16:45:45 +0200
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-488b0e1b870so72536565e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 07:45:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe4dac000sm411296365e9.0.2026.05.20.07.45.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 07:45:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779288345; x=1779893145; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Yi1J6oBQQCDF544YYXBhrqWzrznLLlVPi+0upj+pGUE=;
        b=cCy/m2yxiaZNn0KcgZOPTURz8LAVxhP091VhHykY7rdNib82B5PFJgAv0brO2MJnfa
         mAga18IcYErM8hb+VVk5qDgWiE5vZhIgJ63LHngchNBj1tdUGvyU9jqyAg7kv6bHYUnL
         WeuA+TWyxU/PMbCxydliJFVjFATwLoXJbDM1F9PgTkxdsLpq5Jlay2cgYJa2fKQBa/7L
         YaWBO2XBHCUsj1u6v5QgOP6UhleDKzbv7c8o840wTFNsPJHG9yutE+AfSo3u48tjBTT6
         Oa/Cg+O/p/21HtCQKVvaoFOje+HDxJfGs9FIDX3mBWbL4GpbiVw9LBhQvb9a4dZdMwyf
         WyRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779288345; x=1779893145;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Yi1J6oBQQCDF544YYXBhrqWzrznLLlVPi+0upj+pGUE=;
        b=Acl6S7TWU33Gb58DlvbB4iTbBoMfRMNeWJxutCXwn6B76u+7TyUch+4r6Ut0FB+L3r
         YdBIGzX7S8RlxVnwjYnDKUN+Uwmyd22wTp42nlrrmE1zIynuPAcKjpMDvVNfEsfB0bPA
         1kl1dZ5QE6DQdEr66kviiLAfobcLiIUSoivFZkNSoexOaWho/Y2AjidprbZ0VrnX0dmK
         S3kOuFJqEK5kxwaLIPA6rj92hJqcs+lUIlJZUcsqU1mc5Sl9mdXXbfAbBWkzak1mEzbj
         4roSl8h5z0u/JIObl/bux0qgdV+MQm7YmzIY8Vgfql3gp/VdjBQ2gThOzOzpk/pruwod
         hSKw==
X-Gm-Message-State: AOJu0YxCLOtzzmlHOmSsbgQqn0IOv8GxjCyz5R2zD/PDlY+LHn1qkHMH
	0z54VfZF4mVi6ql5jrrHyR3IzndKyLw67Zv65177bS5T9+WqKLvKhDBNWXfAK25qPdXEeTjXTl6
	Hq/o=
X-Gm-Gg: Acq92OEmIzENuuBVZ6KlUBNy3D1TW0f6xsrztUa9Vj3CSg5MCObyXSzQMD3uVfcgldu
	M1wO0H8iuG7hIrnFdoLHvB5uaWVseyKys3JgrDNojlQnmCDAZjrXmGZcQViZj5cSB/+m/TLsxIR
	2JcAyB5oauWWeRK16eSnWHoGdnkZpxG7yPvufzhLP+PbpcyRCHevYmzWEvuLusx5eNUeqoUIqWl
	FPZelF49UF2sc9WaoMog+afProLh0vn/eJBb6KfvL9vZn8e6Ik1af3hxkXOHAcfmheRfvsPq6eK
	UQqRxPEp8usY0aP/wIDM8+RckEFiHSFGErf7UQXX3XctR44A7VJCKuNWZihxr4fM23OcX7qOIN+
	drTkOuj8j36+DlDPh5rT1h+jfRr6f46uVX9Uk/xCBBGaXzcXNe1BUqulIHgew0oGlqKyPvdLVpH
	Vbxnpz3zC/SELcigpnedT+TuWp74sFrE7I2zzl0PW39MYrmtTbLrF9gJElDWDoRhoYl/RhfNNJO
	bw7zwHGiwaZESc=
X-Received: by 2002:a05:600d:10:b0:48f:e230:2a21 with SMTP id 5b1f17b1804b1-48fe662fd6bmr309525975e9.32.1779288344783;
        Wed, 20 May 2026 07:45:44 -0700 (PDT)
Message-ID: <401037ba-97d3-4d16-926d-ecbb99947004@suse.com>
Date: Wed, 20 May 2026 16:45:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH RFC v3 1/3] x86/Intel: split model-specific freq calculation
 off of intel_log_freq()
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <a3e034a4-621a-45ad-9b96-9a85cbe5eafd@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a3e034a4-621a-45ad-9b96-9a85cbe5eafd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1779288345-B6577DB1-981F97E3/0/0
X-purgate-type: clean
X-purgate-size: 4526

..., for that logic to become reusable. While doing so undo the open-
coding of DIV_ROUND_UP(). Also switch to the new struct cpuinfo_x86 field
names.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
If Misra didn't dislike non-static functions without external callers, the
new function could be put below the old one, thus reducing churn and
improving readability of the diff (really I moved the code for the new
function up, but the diff representation is the other way around).
---
v3: New.

--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -476,51 +476,14 @@ static int num_cpu_cores(struct cpuinfo_
 		return 1;
 }
 
-static void intel_log_freq(const struct cpuinfo_x86 *c)
+static void intel_process_freq(const struct cpuinfo_x86 *c,
+                               unsigned int *min_mhz, unsigned int *max_mhz)
 {
-    unsigned int eax, ebx, ecx, edx, factor;
     uint64_t msrval;
     uint8_t max_ratio, min_ratio;
+    unsigned int factor;
 
-    if ( c->cpuid_level >= 0x15 )
-    {
-        cpuid(0x15, &eax, &ebx, &ecx, &edx);
-        if ( ecx && ebx && eax )
-        {
-            unsigned long long val = ecx;
-
-            val *= ebx;
-            printk("CPU%u: TSC: %u Hz * %u / %u = %Lu Hz\n",
-                   smp_processor_id(), ecx, ebx, eax, val / eax);
-        }
-        else if ( ecx | eax | ebx )
-        {
-            printk("CPU%u: TSC:", smp_processor_id());
-            if ( ecx )
-                printk(" core: %u Hz", ecx);
-            if ( ebx && eax )
-                printk(" ratio: %u / %u", ebx, eax);
-            printk("\n");
-        }
-    }
-
-    if ( c->cpuid_level >= 0x16 )
-    {
-        cpuid(0x16, &eax, &ebx, &ecx, &edx);
-        if ( ecx | eax | ebx )
-        {
-            printk("CPU%u:", smp_processor_id());
-            if ( ecx )
-                printk(" bus: %u MHz", ecx);
-            if ( eax )
-                printk(" base: %u MHz", eax);
-            if ( ebx )
-                printk(" max: %u MHz", ebx);
-            printk("\n");
-        }
-    }
-
-    switch ( c->x86 )
+    switch ( c->family )
     {
         static const unsigned short core_factors[] =
             { 26667, 13333, 20000, 16667, 33333, 10000, 40000 };
@@ -533,7 +496,7 @@ static void intel_log_freq(const struct
         if ( !max_ratio )
             return;
 
-        switch ( c->x86_model )
+        switch ( c->model )
         {
         case 0x0e: /* Core */
         case 0x0f: case 0x16: case 0x17: case 0x1d: /* Core2 */
@@ -578,10 +541,61 @@ static void intel_log_freq(const struct
         return;
     }
 
+    if ( min_mhz )
+        *min_mhz = DIV_ROUND_UP(factor * min_ratio, 100);
+    *max_mhz = DIV_ROUND_UP(factor * max_ratio, 100);
+}
+
+static void intel_log_freq(const struct cpuinfo_x86 *c)
+{
+    unsigned int eax, ebx, ecx, edx, min_mhz = 0, max_mhz = 0;
+
+    if ( c->cpuid_level >= 0x15 )
+    {
+        cpuid(0x15, &eax, &ebx, &ecx, &edx);
+        if ( ecx && ebx && eax )
+        {
+            unsigned long long val = ecx;
+
+            val *= ebx;
+            printk("CPU%u: TSC: %u Hz * %u / %u = %Lu Hz\n",
+                   smp_processor_id(), ecx, ebx, eax, val / eax);
+        }
+        else if ( ecx | eax | ebx )
+        {
+            printk("CPU%u: TSC:", smp_processor_id());
+            if ( ecx )
+                printk(" core: %u Hz", ecx);
+            if ( ebx && eax )
+                printk(" ratio: %u / %u", ebx, eax);
+            printk("\n");
+        }
+    }
+
+    if ( c->cpuid_level >= 0x16 )
+    {
+        cpuid(0x16, &eax, &ebx, &ecx, &edx);
+        if ( ecx | eax | ebx )
+        {
+            printk("CPU%u:", smp_processor_id());
+            if ( ecx )
+                printk(" bus: %u MHz", ecx);
+            if ( eax )
+                printk(" base: %u MHz", eax);
+            if ( ebx )
+                printk(" max: %u MHz", ebx);
+            printk("\n");
+        }
+    }
+
+    intel_process_freq(c, &min_mhz, &max_mhz);
+    if ( !max_mhz )
+        return;
+
     printk("CPU%u: ", smp_processor_id());
-    if ( min_ratio )
-        printk("%u ... ", (factor * min_ratio + 50) / 100);
-    printk("%u MHz\n", (factor * max_ratio + 50) / 100);
+    if ( min_mhz )
+        printk("%u ... ", min_mhz);
+    printk("%u MHz\n", max_mhz);
 }
 
 static void init_intel_perf(struct cpuinfo_x86 *c)



From xen-devel-bounces@lists.xenproject.org Wed May 20 14:46:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 14:46:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314051.1584073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPiBv-0004Fw-1X; Wed, 20 May 2026 14:46:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314051.1584073; Wed, 20 May 2026 14:46:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPiBu-0004Fp-TZ; Wed, 20 May 2026 14:46:34 +0000
Received: by outflank-mailman (input) for mailman id 1314051;
 Wed, 20 May 2026 14:46:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPiBu-0004Fh-F4
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:46:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPiBt-004SpS-RR
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 16:46:33 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0dc939-e002-0a2a0a5209dd-0a2a4503e3f2-30
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 16:46:33 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0dc949-672d-0a2a45030019-d1558029c930-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 16:46:33 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-488b8bc6bc9so29462145e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 07:46:33 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48fe4c8d39esm400931785e9.7.2026.05.20.07.46.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 07:46:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779288393; x=1779893193; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=m6/z6mQH97SLM9utUeJW3NmikHD9BAdeol1rvf0NTA0=;
        b=eBF8JHzDFJ2N+mz9sqBItemyRZGfha/Vd8HrB0OynbFEa/1eQhGSPTTfDGVhqOvNKF
         r3+HLLDKvPYI8obcAk908uyDyOJ3AVhceN7wTbJNIHdf5wIU57mY05KvFwH2QuqZ8MR4
         tAct1gNxwB9MnXX/ZKLmkzDRIU1kM+RyCLzmn3Ks3wxLG6VD0l2gxJAsWcv0miwCj3Sp
         LdjvgaKmd/Kafz2tyDtvOeROuFc3iV6BRrXA6ngG3FygEAYoB4mUD/QGICIHG6CWXoDA
         aIBEuDukxS5t5cPU3Pfdqo77NLIvD681D+7UBN3PVoFJewPuH6lqRr608wEgso4lq+Xq
         G+UA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779288393; x=1779893193;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=m6/z6mQH97SLM9utUeJW3NmikHD9BAdeol1rvf0NTA0=;
        b=qxm/uAh4tOR2/fbJLo7/9gNBcjsB2bcWmBRY8RyuYcYBU4mNowmjx/9ItzZDlLppkp
         Xbsg2GhE4zoXGPWixGRE/udosZCd3mUA1byildtN+hbKqI3BZ27WCL6fvWRArM//dqb/
         5vaq26lQ1HHWHJhUy7O6jY+98RpZxeb2IkhzociY4y1+A3nbiHAzu2ZOAXSCAFTP4kMV
         5lA+4ITQ0cNIUetSkuGgXJc23P4X5LJIhKnj8N7byeNjqDXUpjx+ZNWbhbvfan3qVEJL
         CdxqqqdCehEN83ZfK0VFjkb5QyFuCuB0k4IOUxOubUgAAoA8b/OEd0BwPPWEphQ5nGBN
         MHog==
X-Gm-Message-State: AOJu0YwFUcH3kzqEiHroUcnnlzG5CwFUsSQ+xrS/ovTgzJiuPCfjafrk
	/VzMSZTkxhN9He1LtrDa70c4NEcWQmoNTqDa9uNgTysslsNenZpJfVdbXS7s33j0q6JF3OBAF8Z
	SuEg=
X-Gm-Gg: Acq92OHDjS6M5x7H1vl/T8YYy63QVNggTClWQplySm0pzaQKPjY7Hdt5ReiBB920KQ5
	4Q9ekSRUk5ZIuj4HEandxrSIc+rm5HT6/I6vH6kcPKtnukI4lPMHDQJsZ4junM5XYa6sRZTPi3y
	BBtHqYixCKBEyTLcrEg3eZ3xhFdMi3ZJU226BLhXwU8M10rYFlJBCd+mInDw6OH9Ms7ZnkCe7HP
	RYLh8dTf6kpnICzNViP92GO33TAEYzbMUQCAdhsUpBBFSUbkdgMX/Fg5GOvNayj60wzuZMaORtq
	MLZ4DPBNT7vYUXmfbqywLkfnZHQRzm9UlIU+JbYhIV0mPCnEkIGRUX8sPBDy1yyrfxek1sH0KGN
	C7k+ye+V2GYiLno3W/vL21fwOMjqaIrJlDMYD/VT4//UlwO3eOUvUZpQOxLl9wIwhN7eS+ddmgB
	yIm2K8QtLl3GbyFh+VFNK25xyPFIefXDHiX6yKqckWPFkLqQD+375Dt+XYZTjKYxZnlj7UqIF+V
	zQBVv/ohdw7fTyA0Asz4kuagw==
X-Received: by 2002:a05:600c:3b27:b0:48e:7854:1608 with SMTP id 5b1f17b1804b1-48fe6516b54mr350190015e9.25.1779288393115;
        Wed, 20 May 2026 07:46:33 -0700 (PDT)
Message-ID: <7d59c238-4ff4-40aa-a050-37446bd3973f@suse.com>
Date: Wed, 20 May 2026 16:46:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH RFC v3 3/3] x86/time: avoid early uses of NOW() to return zero
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <a3e034a4-621a-45ad-9b96-9a85cbe5eafd@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a3e034a4-621a-45ad-9b96-9a85cbe5eafd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779288393-3794D938-983638CA/0/0
X-purgate-type: clean
X-purgate-size: 6188

Waiting loops like the one in flush_command_buffer() will degenerate to
infinite ones when used early enough for NOW() to still return constant
zero. Make sure the returned value at least monotonically increases. When
available, use nominal frequency values as initial approximation.

Do this only in get_s_time(), as producing a sane value in
get_s_time_fixed() for non-zero inputs won't be reasonably possible.
Put an assertion there.

Reported-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
RFC: While generally the mentioned waiting loops will take longer to time
     out, on a very fast CPU tight loops may time out too early.

RFC: On the 2nd pass through early_cpu_init() it may be okay to skip the
     new additions.

With "x86/time: set AP's TSC scale estimate earlier" the counter update
may not need to be atomic anymore, as then only the BSP can reasonably hit
that path.

I don't think Fixes: tags should be put here. If we did, we'd have to
enumerate all introductions of early uses of NOW() (or get_s_time()), with
the exception of those dealing with getting back 0 (which I expect is only
printk_start_of_line()). Will want backporting nevertheless (unless deemed
too risky).
---
v3: Use "high" / "max" freq if "nominal" isn't available. Set NOW_good.
v2: Add assertion to get_s_time_fixed(). Use nominal frequencies for very
    early setting, if available.

--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -19,6 +19,7 @@
 #include <asm/random.h>
 #include <asm/setup.h>
 #include <asm/shstk.h>
+#include <asm/time.h>
 #include <asm/xstate.h>
 
 #include <public/sysctl.h>
@@ -403,6 +404,36 @@ void __init early_cpu_init(bool verbose)
 				    &c->x86_capability[FEATURESET_7d1]);
 	}
 
+	if (c->cpuid_level >= 0x15) {
+		cpuid(0x15, &eax, &ebx, &ecx, &edx);
+
+		if (ecx && ebx && eax)
+			preset_tsc_scale(DIV_ROUND_UP(ecx * 1UL * ebx, eax));
+		else if (c->cpuid_level >= 0x16) {
+			/* Assume CPU base freq ≈ TSC freq. */
+			cpuid(0x16, &eax, &ebx, &ecx, &edx);
+			if (eax)
+				preset_tsc_scale(eax * 1000000UL);
+			else if (ebx) /* See preset_tsc_scale() for why. */
+				preset_tsc_scale(ebx * 1000000UL);
+		}
+	} else if (c->vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) {
+		unsigned int nom_mhz = 0, hi_mhz = 0;
+
+		amd_process_freq(c, NULL, &nom_mhz, &hi_mhz);
+		if (nom_mhz)
+			preset_tsc_scale(nom_mhz * 1000000UL);
+		else if (hi_mhz) /* See preset_tsc_scale() for why. */
+			preset_tsc_scale(hi_mhz * 1000000UL);
+	} else if (c->vendor & X86_VENDOR_INTEL) {
+		unsigned int hi_mhz = 0;
+
+		/* See preset_tsc_scale() for why. */
+		intel_process_freq(c, NULL, &hi_mhz);
+		if (hi_mhz)
+			preset_tsc_scale(hi_mhz * 1000000UL);
+	}
+
 	eax = cpuid_eax(0x80000000);
 	if ((eax >> 16) == 0x8000 && eax >= 0x80000008) {
 		ebx = eax >= 0x8000001f ? cpuid_ebx(0x8000001f) : 0;
--- a/xen/arch/x86/include/asm/time.h
+++ b/xen/arch/x86/include/asm/time.h
@@ -21,6 +21,7 @@ mktime (unsigned int year, unsigned int
 int time_suspend(void);
 int time_resume(void);
 
+void preset_tsc_scale(unsigned long freq);
 void init_percpu_time(void);
 void time_latch_stamps(void);
 
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -476,8 +476,8 @@ static int num_cpu_cores(struct cpuinfo_
 		return 1;
 }
 
-static void intel_process_freq(const struct cpuinfo_x86 *c,
-                               unsigned int *min_mhz, unsigned int *max_mhz)
+void intel_process_freq(const struct cpuinfo_x86 *c,
+                        unsigned int *min_mhz, unsigned int *max_mhz)
 {
     uint64_t msrval;
     uint8_t max_ratio, min_ratio;
--- a/xen/arch/x86/include/asm/processor.h
+++ b/xen/arch/x86/include/asm/processor.h
@@ -414,6 +414,9 @@ static inline uint8_t get_cpu_family(uin
     return fam;
 }
 
+void intel_process_freq(const struct cpuinfo_x86 *c,
+                        unsigned int *min_mhz, unsigned int *max_mhz);
+
 #ifdef CONFIG_INTEL
 extern int8_t opt_tsx;
 extern bool rtm_disabled;
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -1661,6 +1661,9 @@ s_time_t get_s_time_fixed(u64 at_tsc)
     const struct cpu_time *t = &this_cpu(cpu_time);
     u64 tsc, delta;
 
+    /* scale_delta() degenerates when the scale wasn't set yet. */
+    ASSERT(t->tsc_scale.mul_frac);
+
     if ( at_tsc )
         tsc = at_tsc;
     else
@@ -1676,6 +1679,20 @@ s_time_t get_s_time_fixed(u64 at_tsc)
 
 s_time_t get_s_time(void)
 {
+    /*
+     * Before the TSC scale is set, avoid returning constant 0 (or whatever
+     * this_cpu(cpu_time).stamp.local_stime is set to).  While the returned
+     * value is in no way representing time, it at least increases
+     * monotonically, thus avoiding e.g. waiting loops to degenerate to
+     * entirely infinite ones.
+     */
+    if ( unlikely(!this_cpu(cpu_time).tsc_scale.mul_frac) )
+    {
+        static s_time_t counter;
+
+        return arch_fetch_and_add(&counter, 1);
+    }
+
     return get_s_time_fixed(0);
 }
 
@@ -2629,6 +2646,22 @@ int __init init_xen_time(void)
     return 0;
 }
 
+/* BSP-only function to pre-set an approximate TSC scale. */
+void __init preset_tsc_scale(unsigned long freq)
+{
+    struct cpu_time *t = &this_cpu(cpu_time);
+
+    /*
+     * The incoming frequency is only approximate (nominal).  Increase it by
+     * 1% to make NOW() output rather a little too slow than too fast, thus
+     * avoiding a possible backwards jump once the final scale is set.
+     */
+    freq += DIV_ROUND_UP(freq, 100);
+
+    set_time_scale(&t->tsc_scale, freq);
+    t->stamp.local_tsc = boot_tsc_stamp;
+    NOW_good = true;
+}
 
 /* Early init function. */
 void __init early_time_init(void)
@@ -2646,6 +2679,9 @@ void __init early_time_init(void)
                    "TSC ADJUST set to %lx on boot CPU - clearing\n", tmp);
             wrmsrl(MSR_IA32_TSC_ADJUST, 0);
             boot_tsc_stamp -= tmp;
+
+            if ( t->stamp.local_tsc )
+                t->stamp.local_tsc -= tmp;
         }
     }
 



From xen-devel-bounces@lists.xenproject.org Wed May 20 14:56:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 14:56:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314067.1584088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPiKu-0006Lf-0R; Wed, 20 May 2026 14:55:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314067.1584088; Wed, 20 May 2026 14:55:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPiKt-0006LY-U8; Wed, 20 May 2026 14:55:51 +0000
Received: by outflank-mailman (input) for mailman id 1314067;
 Wed, 20 May 2026 14:55:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e45e2b319000f373@swg.vates.tech>)
 id 1wPiKs-0006LQ-KO
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 14:55:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPiKs-00HWVb-0T
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 16:55:50 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e45e2b319000f373@swg.vates.tech>)
 id 6a0dcb56-2eae-0a2a0a5409dd-0a2a4504c920-42
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 16:55:49 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e45e2b319000f373@swg.vates.tech>)
 id 6a0dcb75-1dec-0a2a45040019-b9ff1c22b57f-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 16:55:49 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e45e2b319000f373.002 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 20 May 2026 14:55:45 +0000
Received: from l14 (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id B8E268689D;
 Wed, 20 May 2026 16:55:44 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=J4thoi6+2i6F5kP5g2a7F2mrA6Al+TU4PQ9gtuoo90g=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=HPxwPFIKrpKTgbtTq5TSMOSmojqPuFn2LbDPevPlg6KCfn6UiXSBWD0nq+ltKKai+EH8eDdhM
 hmDT856g6SxRCnLmnh0U6ZFrowNeijJ+stWniRgi4Ijw1u/8J8UOry5JsZXLkmniF7Q74M92Fh4
 t72Gp/rM4oTWGAKQi2YBQZyWMc9X9Wjx0cUimOLYrWhE99LGNQsM3pa39eAfSqkpQREh4wPD8Ue
 dsS62JDwSnAM2l4bkDACJaFq6gzF77UAPao8vKwBP8z4+SxBHdLVU+RYMmJA6sLvvVRt87SPoa6
 NbHPCx/iUr3pwbE0GQeBacgQoOpUH5v5joA4iTSznc2A==
X-Zone-Loop: 8e7c8da8a33fe498d3d25f4ea42dbfb55ee090293734
x-campaign-type: default
x-transaction-id: e3c1928e-4ce3-4eff-9549-054bad24269b
x-swg-uid: 01-c5f5b51e-4524-4bda-ae92-bfe90e5e74cf
X-Mailer: Sweego
Message-ID:
 <1779288945.8631fc262581453bbf619ec5b2062170.19e45e2b319000f373@vates.tech>
x-swg-bid: 1779288945.8631fc262581453bbf619ec5b2062170.19e45e2b319000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Wed, 20 May 2026 16:55:44 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] tools: Fix helpers build
References: <7c5cdad207571e98ad324f07c7c754f79e8ce044.1779089580.git.mykyta_poturai@epam.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <7c5cdad207571e98ad324f07c7c754f79e8ce044.1779089580.git.mykyta_poturai@epam.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1063.84da57cda8e78332.19e45e2b0ba.77f21546638438cc=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779288944826
X-purgate-ID: tlsNG-ebf023/1779288949-2BD6C3FF-A36AB71A/0/0
X-purgate-type: clean
X-purgate-size: 832

---=Part.1063.84da57cda8e78332.19e45e2b0ba.77f21546638438cc=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, May 18, 2026 at 07:35:43AM +0000, Mykyta Poturai wrote:
> Init helpers sometimes fail to rebuild after switching branches,
> which results in runtime faults=2E
>=20
> Fix this by adding missing DEPS_INCLUDE to the Makefile=2E
>=20
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam=2Ecom>

That's not really a complete fix, but that will help, and that's the
best our current build system can do=2E

Acked-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.1063.84da57cda8e78332.19e45e2b0ba.77f21546638438cc=---


From xen-devel-bounces@lists.xenproject.org Wed May 20 15:08:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 15:08:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314085.1584098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPiXT-0000IH-1Z; Wed, 20 May 2026 15:08:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314085.1584098; Wed, 20 May 2026 15:08:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPiXS-0000IA-Uq; Wed, 20 May 2026 15:08:50 +0000
Received: by outflank-mailman (input) for mailman id 1314085;
 Wed, 20 May 2026 15:08:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPiXR-0000I3-QR
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 15:08:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPiXR-00DT2t-5v
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 17:08:49 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0dce70-bab6-0a2a0a5309dd-0a2a4502ed92-28
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 17:08:49 +0200
Received: from [209.85.218.49] (helo=mail-ej1-f49.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0dce81-af86-0a2a45020019-d155da31ac02-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 17:08:49 +0200
Received: by mail-ej1-f49.google.com with SMTP id
 a640c23a62f3a-bd2087858c4so1093140866b.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:08:49 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4bce1a4sm871556666b.5.2026.05.20.08.08.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 08:08:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779289729; x=1779894529; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=lTugFGXKT8kvgrB1D0VxjRNU93aeE2uqD4QSZQAJ/Es=;
        b=ktpzsD+GE64Ft9LOMXWhdShXE+2/1rFU5w0vMP1gkRu0Vmp5JLKFJZfjOTCoSvYNnb
         fsVvHhZnlN0pvu32ZJpEDp6J9DCqApj4in6D6BVwURWId0UqqXv6qT/RK/+yDPDQq2V6
         D2/iKIze4BR2YZUhKq58+s5kso5W7h6sUIwXqpZ8d2AalRUyvWosLSC0FK+74CcmB0C5
         mY2bbfkxa9dXSMcB6mknQ8xsYUFaSI4Bv/lv0F4fRlK3DFPXj78dUMIbiIXxH5esEY0k
         MRP0/9asH4lrBS1f4Qr6Vq+2TbTXkDbZh4DPuZiCnLSiCPrJif+MMKPydMKWJrIQKHex
         /Tgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779289729; x=1779894529;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=lTugFGXKT8kvgrB1D0VxjRNU93aeE2uqD4QSZQAJ/Es=;
        b=IycqiVcvDlyzWvvQ4FDDf66vQ9DLaOZ2+iwOfEqoZl5sojK1SArrWnXCjr3gyri9xd
         RJ6Y29qQdvrAqq1DXrJbOcPwk03vyhnmpJSxOfK+Wx8fMoaFJaYX2Q3AJBrvqudqlPCK
         p2oIKOGfpIQyZf2cq6Gx2J6QaqqmGptG50MnAzFK3FsEJqiEwMytLffOLwXYfe0o7sJ8
         yeqNMIEUjeMY2vk5bvh/8acqwdgcUZjU4TvHp5y+8TNwlhzBHcCnHwwGkBo0vbVjB4Fn
         WF+df2uCZlPXTluHlZulMHucV+Txxaol1FR5GuZPJag2a/URFMUzj4rRZ9lWLZq738ax
         Hjyw==
X-Forwarded-Encrypted: i=1; AFNElJ/B3IvqywZp4gD/GiotlJzpR/cTXXldvhOfa9lb3eUu7GZoU9EELdKeHPjY1LV2X8Rnqu8PxnD3gm4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxLHN2WS50Rg62BMkowpNRehVfJURV4CTtM1OVjV7kluZ6YU4fx
	aK9f/vYJzsYeny8hzJO8tCpo5h16AYLlOMJCtG9Ee9QT+aCiIfTWCOGS
X-Gm-Gg: Acq92OHBOXzG8HyTKLPcg2Ym5b6ftfWWeUbYLhAnF359yFvItZVOM1QdlHFcp3SOr6J
	UqLkdo3hrKflHRkL+XaVJyO2WfSZv2uX0tTBOI1AQPPQ3JVSeQ0qOUz+PjTS2RLgGhGK3BUUUT9
	MnWMsB8aebGo1qDQnVNusgsZZMil6Bf21KLXYPNPkwlJkAQlSlaViyXSRgk586yUNlehDNZMi6b
	4QZfKooADEdSdJy/rp5csN36rcHbqKKgQLO7nJxOK17G2ZCQNc1D6GMCxNHPhWklr4EJINX7Gdv
	JWa+uN++olVbj/xs7KPPOeq5MsI1DacfeaMYEETVa4oxXNRviXftoa4+eSyN1B1S2cHnY65qU7s
	wI6h3ZAFLaXXvY1XkOkS2nQ2bVEgwJsFfPoeRjMwHGT6Z94xxrFMJXmK/WtCCdEYO4jmRqvj7Me
	TCDYQNXp0TzHW6Zsb7PIOUmftnK+83mEFyGOOznVQVpG+XFfOjuJI14l+GH98+xPpV8FVXXSxkf
	6AZXJCeQo0yPQ==
X-Received: by 2002:a17:907:1787:b0:bd5:5ac:d70e with SMTP id a640c23a62f3a-bd5179060fcmr1450956266b.26.1779289728336;
        Wed, 20 May 2026 08:08:48 -0700 (PDT)
Message-ID: <16fb059d-84a1-4f2c-bd25-36ac1fc6d0c1@gmail.com>
Date: Wed, 20 May 2026 17:08:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
To: Jan Beulich <jbeulich@suse.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
 <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
 <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
 <ea274abd-d7be-4fee-a147-936a8adc1c81@suse.com>
 <12e89d4e-2856-4130-aaa7-1ec1a742c72f@gmail.com>
 <2d8166e4-009f-4066-b96d-fb9e41b548a1@suse.com>
 <eec28059-d7c5-4d30-80ff-7b1b57d706ec@gmail.com>
 <5f2013a0-d90b-49c9-bd18-afeffebac74e@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <5f2013a0-d90b-49c9-bd18-afeffebac74e@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1779289729-81F76161-96B95780/10/73395122804
X-purgate-type: spam
X-purgate-size: 7236



On 5/20/26 4:21 PM, Jan Beulich wrote:
> On 20.05.2026 15:40, Oleksii Kurochko wrote:
>>
>>
>> On 5/20/26 2:03 PM, Jan Beulich wrote:
>>> On 20.05.2026 13:33, Oleksii Kurochko wrote:
>>>>
>>>>
>>>> On 5/19/26 1:53 PM, Jan Beulich wrote:
>>>>> On 19.05.2026 13:22, Oleksii Kurochko wrote:
>>>>>> On 5/19/26 12:55 PM, Oleksii Kurochko wrote:
>>>>>>> On 5/19/26 11:37 AM, Jan Beulich wrote:
>>>>>>>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>>>>>>>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot inside
>>>>>>>>> the domain's shared_info page for vcpus with id < XEN_LEGACY_MAX_VCPUS,
>>>>>>>>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>>>>>>>>
>>>>>>>>> However, it does not guard against d->shared_info being NULL.  The
>>>>>>>>> shared_info() macro expands to a member access through d->shared_info,
>>>>>>>>> so when an architecture does not allocate a shared_info page the
>>>>>>>>> dereference triggers UBSAN:
>>>>>>>>>       UBSAN: Undefined behaviour in common/domain.c:325:10
>>>>>>>>>       member access within null pointer of type 'struct shared_info_t'
>>>>>>>>>
>>>>>>>>> Extend the existing fallback condition to also cover the case where no
>>>>>>>>> shared_info page has been allocated, mapping the vcpu to dummy_vcpu_info
>>>>>>>>> instead. This is the correct behaviour: dummy_vcpu_info already serves
>>>>>>>>> as the safe stand-in for vcpus that have no usable shared_info slot.
>>>>>>>>>
>>>>>>>>> Fixes: 295514ff75506 ("common: convert vCPU info area registration")
>>>>>>>>
>>>>>>>> I question this, largely (but not only) because I also ...
>>>>>>>>
>>>>>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>>>>>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>>>>>>>>> ---
>>>>>>>>> RISC-V does not allocate a shared_info page at the momemnt because its
>>>>>>>>> guests run in dom0less mode and do not use the Xen PV ABI, so
>>>>>>>>> d->shared_info remains NULL throughout domain lifetime.
>>>>>>>>
>>>>>>>> ... question this mode of operation. Yes, you may (for now) be able to
>>>>>>>> get
>>>>>>>> away without, but e.g. event channels will want supporting at some point.
>>>>>>>> Which will require a shared info page. Better put that in place right
>>>>>>>> away,
>>>>>>>> even if the guests you test with don't use it (yet). Certain other common
>>>>>>>> code also assumes d->shared_info to never be NULL for an alive domain.
>>>>>>>>
>>>>>>>
>>>>>>> Would it be fine than to allocate it in arch_domain_create() ... :
>>>>>>>
>>>>>>>         if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
>>>>>>>             goto fail;
>>>>>>>
>>>>>>>         clear_page(d->shared_info);
>>>>>>>
>>>>>>> ... but without calling share_xen_page_with_guest() after that
>>>>>>> allocation as share_xen_page_with_guest() isn't implemented at the moment?
>>>>>
>>>>> I would have said "yes" here, but ...
>>>>>
>>>>>> Or could it be an option for all arch-s move allocation of
>>>>>> d->shared_info to domain_create() in common just after arch_domain_create()?
>>>>>
>>>>> ... Andrew's reply pretty much rules out not only this option, but the
>>>>> shared-info-page concept as a whole (for RISC-V). See my reply there. In
>>>>> the meantime, the change as suggested may then indeed be what we want to
>>>>> go with, albeit (a) with a better description and (b) perhaps covering
>>>>> all d->shared_info uses.
>>>>
>>>> Looking at guest kernel code (Linux), FIFO is tried first, so if RISC-V
>>>> is going to support only FIFO, d->shared_info could legally be NULL.
>>>>
>>>> Looking at the Xen side, if an architecture decides to support only
>>>> FIFO, d->shared_info is touched only in vcpu_info_reset(), which is
>>>> called from vcpu_create().
>>>>
>>>> All other places where d->shared_info is accessed should not be
>>>> reachable except for one case in event_fifo.c: when a guest issues the
>>>> EVTCHNOP_init_control hypercall, setup_ports() reads from shared_info(d,
>>>> evtchn_pending):
>>>>      static void setup_ports(struct domain *d, unsigned int prev_evtchns)
>>>>      {
>>>>      ...
>>>>              if ( guest_test_bit(d, port, &shared_info(d, evtchn_pending))
>>>>                  evtchn->pending = true;
>>>>      ...
>>>>          }
>>>>      }
>>>>
>>>> This looks like it handles the transition from the 2L ABI to the FIFO
>>>> ABI: if a guest started with 2L and then switched to FIFO, any events
>>>> already pending in shared_info(d, evtchn_pending) need to be migrated to
>>>> FIFO's per-channel evtchn->pending flag. But it looks like I am missing
>>>> something here as I mentioned at the start that Linux uses or FIFO or 2L.
>>>>
>>>> Am I missing something?
>>>
>>> Quite likely you aren't, but I didn't check. My earlier "covering all" may
>>> well resolve to merely stating things accordingly in the patch description.
>>
>> If either FIFO or 2L can be used, shouldn't guest_test_bit(d, port,
>> &shared_info(d, evtchn_pending)) in setup_ports() be dropped? If FIFO
>> was chosen by Linux, there won't be any events in &shared_info(d,
>> evtchn_pending), so it is essentially dead code that could just be
>> dropped.
> 
> Why would it be dead code? Who said that a guest couldn't to 2L for a
> while, then switch to FIFO? Think of boot loaders, for example.

I jsut based my assumption on Linux use case, if generally such switch 
is okay then I will add to my original patch what I suggested here ...

> 
> Jan
> 
>> Or would it be better to leave it and skip only if
>> d->shared_info is allocated: if ( d->shared_info && guest_test_bit(...)
>> )  to cover the case when a guest wants to switch from 2L to FIFO (if
>> that is even a possible case at all, since as I mentioned above, the
>> guest (Linux) chooses the event ABI once and it stays for its lifetime)?

... + refactor commit message:
```
xen/domain: fix UBSAN null pointer dereference of d->shared_info

It is legal to have d->shared_info equal to NULL for architectures which
support only the FIFO ABI for event channel management.

Having d->shared_info == NULL leads to a UBSAN issue on such architectures:
   UBSAN: Undefined behaviour in common/domain.c:325:10
          member access within null pointer of type 'struct shared_info_t'

vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot inside
the domain's shared_info page for vcpus with id < XEN_LEGACY_MAX_VCPUS,
and falls back to dummy_vcpu_info for vcpus beyond that limit.
Extend the existing fallback condition to also cover the case where no
shared_info page has been allocated, mapping the vcpu to dummy_vcpu_info
instead. This is the correct behaviour: dummy_vcpu_info already serves
as the safe stand-in for vcpus that have no usable shared_info slot.

Additionally, if an architecture supports only the FIFO ABI, setup_ports()
should be updated to avoid a NULL pointer dereference of d->shared_info,
since in that case there will be no pending events in
shared_info->evtchn_pending and the pending flag of the FIFO event 
channel does not need to be set to true.
```

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed May 20 15:21:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 15:21:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314095.1584107 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPijq-00038v-3V; Wed, 20 May 2026 15:21:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314095.1584107; Wed, 20 May 2026 15:21:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPijp-00038o-W2; Wed, 20 May 2026 15:21:37 +0000
Received: by outflank-mailman (input) for mailman id 1314095;
 Wed, 20 May 2026 15:21:36 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wPijo-00038i-Go
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 15:21:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPijn-00H6k0-9x
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 17:21:35 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0dd17f-5cb7-0a2a0a5109dd-0a2a4505884e-0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 17:21:35 +0200
Received: from [209.85.218.47] (helo=mail-ej1-f47.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0dd17f-aaa8-0a2a45050019-d155da2fc517-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 17:21:35 +0200
Received: by mail-ej1-f47.google.com with SMTP id
 a640c23a62f3a-bd85ebb368fso723872466b.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 08:21:35 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bd4f4bd0a24sm874062766b.11.2026.05.20.08.21.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 08:21:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779290495; x=1779895295; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to
         :cc:subject:date:message-id:reply-to;
        bh=e/uf9Lkg0CRtG5Rk8s9zUsp5qaEY5uGp+gmWi2WAye0=;
        b=jYW65RkR91UVh07EvboFybjn/KZM73dP1lshsXbNt9ddEu9DkPij3dlYh6E1SPM3pC
         Wt3a4UGDYtRC1KAVQzf7IP1SL2oNY2j42Yzy8/1mZ+eEUiHszKLvTZGKMtjtkkCYYlA7
         Lia49h3YfYGqy0MvbmgZVvrkl2e65u2A9b2dUhZnLgeXomWxAUXUefEHvV2y3BlWU57I
         sDzRcm0DbVWxzR/BtlzA91QuT7WcCADK0zraai8Yr1/g9TEm3tz6Muvlu7dnaLVXP707
         MBPh28x+ld2pXn/pQQpqJyRIztCImZRI7WcYgk7zSmp6/fVFFKL7SsNzFTRQyjGVz5SH
         WSOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779290495; x=1779895295;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=e/uf9Lkg0CRtG5Rk8s9zUsp5qaEY5uGp+gmWi2WAye0=;
        b=c0pE0IN4H2ivhTxqT34xSccrc6CfAYL1yBZPetZ331MmBpGUFA509+dieohHTILjbf
         A9UdWY1OmBgFMwT+tTAR4IGT+YdOafKNmrba7HpHTNgy8MVYHOBsktqd+ReMe0xIZxHs
         TzugEIKXyHL0OEKQGiLHW89Tz7M1gyRAoTN/HjpixYgQaxU2TANuctpSdUclTdyDP16+
         sSzH4RrPdyABUbn9Rs82nLZD9C8V5WfdbsETWPq6FhRET/ZjEHoCukLQb740cY8iG2xm
         wryF8wbx255eAaV4Vm8fdxQHmvIrl5op8dF11R2sNr2n5nOKGOIbeNAPBNM5Y7NIi+w3
         xNfA==
X-Forwarded-Encrypted: i=1; AFNElJ81SZmMTDxP1pE3TMB7sQF5xSaBdWrMS1o5QMAKcHT4oLkzQ2+FuEmL1zeiATq8RO2FLs4PHASsPUE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyBY18fEogBdM1ZDJdntZpywOEP5qlRyJlHcKGgjatMAjUlC69F
	VeO3sxK8Je8V9VaqtbjzK3sWVxUtfKR21tXpVwYuflzUALzzmf/9mwf6
X-Gm-Gg: Acq92OFlnimLhs9oJWH0AFUgLp4LJOBNpltSYyg9gKVsY1CVJUY6klrU2RL4k1D6y60
	/X1ZodBrsyuZHZjSQXUirAof/DQ+iLGpm5Yl4C0xlk1kKYW4iXrgGn27Rz38S+sfOWQ2sLrsFY6
	IXhmJrSKW3sSrgh3AUgzgsUMPhoEXEqskvI5n9MEmRJytBU4pZMfumGmfF6d1FDauotbOJ1GVHZ
	aXiCbdV9g2iuCRlacWUohHG5LoEXQUf83X11RvbCJKf3iPZHkhkxRrqRInngUoGvpJkMXtZFGRd
	Zuhgx9Y92Eoc9ZjFsQqGFX2Q32REkCxx0T01Cpzdkiiugew5g/yZyqC5bR+HuxwPeTAS5jxPHlj
	faAsf36RvNBI+zPtTSjvm7sMfZdsziVm41ge6VXQRB1NzqL9/F28ogwyOn0z5YQlLes0MBrr4+Q
	r1mPyRfWmC5W7IQbb7X6bf8Z7yV2OozI/X2zH3vqJwAxXtxGMM6JAHur6uecZ517O0ZGpqwREaA
	Sc=
X-Received: by 2002:a17:907:c291:b0:bcd:be80:63b8 with SMTP id a640c23a62f3a-bd517ad60b0mr1466955466b.44.1779290494560;
        Wed, 20 May 2026 08:21:34 -0700 (PDT)
Message-ID: <f04bf56e-187c-4378-9207-851776290c5d@gmail.com>
Date: Wed, 20 May 2026 17:21:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/domain: fix UBSAN null pointer dereference in
 vcpu_info_reset()
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Baptiste Le Duc <baptiste.le-duc@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1779179301.git.oleksii.kurochko@gmail.com>
 <09ae75638f9e7991163ed3633e7a60461d93da70.1779179301.git.oleksii.kurochko@gmail.com>
 <2be07ba3-879b-4c79-8103-b4951ab4cf53@suse.com>
 <bedfec37-4c74-40dc-904e-b80e33461be7@gmail.com>
 <e77cb8b3-35ce-4fc1-b98c-d4e889502acf@gmail.com>
 <ea274abd-d7be-4fee-a147-936a8adc1c81@suse.com>
 <12e89d4e-2856-4130-aaa7-1ec1a742c72f@gmail.com>
 <2d8166e4-009f-4066-b96d-fb9e41b548a1@suse.com>
 <eec28059-d7c5-4d30-80ff-7b1b57d706ec@gmail.com>
 <5f2013a0-d90b-49c9-bd18-afeffebac74e@suse.com>
 <16fb059d-84a1-4f2c-bd25-36ac1fc6d0c1@gmail.com>
Content-Language: en-US
In-Reply-To: <16fb059d-84a1-4f2c-bd25-36ac1fc6d0c1@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1779290495-D8D7F443-6184FA2D/10/73395122804
X-purgate-type: spam
X-purgate-size: 9082



On 5/20/26 5:08 PM, Oleksii Kurochko wrote:
> 
> 
> On 5/20/26 4:21 PM, Jan Beulich wrote:
>> On 20.05.2026 15:40, Oleksii Kurochko wrote:
>>>
>>>
>>> On 5/20/26 2:03 PM, Jan Beulich wrote:
>>>> On 20.05.2026 13:33, Oleksii Kurochko wrote:
>>>>>
>>>>>
>>>>> On 5/19/26 1:53 PM, Jan Beulich wrote:
>>>>>> On 19.05.2026 13:22, Oleksii Kurochko wrote:
>>>>>>> On 5/19/26 12:55 PM, Oleksii Kurochko wrote:
>>>>>>>> On 5/19/26 11:37 AM, Jan Beulich wrote:
>>>>>>>>> On 19.05.2026 10:39, Oleksii Kurochko wrote:
>>>>>>>>>> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu 
>>>>>>>>>> slot inside
>>>>>>>>>> the domain's shared_info page for vcpus with id < 
>>>>>>>>>> XEN_LEGACY_MAX_VCPUS,
>>>>>>>>>> and falls back to dummy_vcpu_info for vcpus beyond that limit.
>>>>>>>>>>
>>>>>>>>>> However, it does not guard against d->shared_info being NULL.  
>>>>>>>>>> The
>>>>>>>>>> shared_info() macro expands to a member access through d- 
>>>>>>>>>> >shared_info,
>>>>>>>>>> so when an architecture does not allocate a shared_info page the
>>>>>>>>>> dereference triggers UBSAN:
>>>>>>>>>>       UBSAN: Undefined behaviour in common/domain.c:325:10
>>>>>>>>>>       member access within null pointer of type 'struct 
>>>>>>>>>> shared_info_t'
>>>>>>>>>>
>>>>>>>>>> Extend the existing fallback condition to also cover the case 
>>>>>>>>>> where no
>>>>>>>>>> shared_info page has been allocated, mapping the vcpu to 
>>>>>>>>>> dummy_vcpu_info
>>>>>>>>>> instead. This is the correct behaviour: dummy_vcpu_info 
>>>>>>>>>> already serves
>>>>>>>>>> as the safe stand-in for vcpus that have no usable shared_info 
>>>>>>>>>> slot.
>>>>>>>>>>
>>>>>>>>>> Fixes: 295514ff75506 ("common: convert vCPU info area 
>>>>>>>>>> registration")
>>>>>>>>>
>>>>>>>>> I question this, largely (but not only) because I also ...
>>>>>>>>>
>>>>>>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>>>>>>> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
>>>>>>>>>> ---
>>>>>>>>>> RISC-V does not allocate a shared_info page at the momemnt 
>>>>>>>>>> because its
>>>>>>>>>> guests run in dom0less mode and do not use the Xen PV ABI, so
>>>>>>>>>> d->shared_info remains NULL throughout domain lifetime.
>>>>>>>>>
>>>>>>>>> ... question this mode of operation. Yes, you may (for now) be 
>>>>>>>>> able to
>>>>>>>>> get
>>>>>>>>> away without, but e.g. event channels will want supporting at 
>>>>>>>>> some point.
>>>>>>>>> Which will require a shared info page. Better put that in place 
>>>>>>>>> right
>>>>>>>>> away,
>>>>>>>>> even if the guests you test with don't use it (yet). Certain 
>>>>>>>>> other common
>>>>>>>>> code also assumes d->shared_info to never be NULL for an alive 
>>>>>>>>> domain.
>>>>>>>>>
>>>>>>>>
>>>>>>>> Would it be fine than to allocate it in arch_domain_create() ... :
>>>>>>>>
>>>>>>>>         if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
>>>>>>>>             goto fail;
>>>>>>>>
>>>>>>>>         clear_page(d->shared_info);
>>>>>>>>
>>>>>>>> ... but without calling share_xen_page_with_guest() after that
>>>>>>>> allocation as share_xen_page_with_guest() isn't implemented at 
>>>>>>>> the moment?
>>>>>>
>>>>>> I would have said "yes" here, but ...
>>>>>>
>>>>>>> Or could it be an option for all arch-s move allocation of
>>>>>>> d->shared_info to domain_create() in common just after 
>>>>>>> arch_domain_create()?
>>>>>>
>>>>>> ... Andrew's reply pretty much rules out not only this option, but 
>>>>>> the
>>>>>> shared-info-page concept as a whole (for RISC-V). See my reply 
>>>>>> there. In
>>>>>> the meantime, the change as suggested may then indeed be what we 
>>>>>> want to
>>>>>> go with, albeit (a) with a better description and (b) perhaps 
>>>>>> covering
>>>>>> all d->shared_info uses.
>>>>>
>>>>> Looking at guest kernel code (Linux), FIFO is tried first, so if 
>>>>> RISC-V
>>>>> is going to support only FIFO, d->shared_info could legally be NULL.
>>>>>
>>>>> Looking at the Xen side, if an architecture decides to support only
>>>>> FIFO, d->shared_info is touched only in vcpu_info_reset(), which is
>>>>> called from vcpu_create().
>>>>>
>>>>> All other places where d->shared_info is accessed should not be
>>>>> reachable except for one case in event_fifo.c: when a guest issues the
>>>>> EVTCHNOP_init_control hypercall, setup_ports() reads from 
>>>>> shared_info(d,
>>>>> evtchn_pending):
>>>>>      static void setup_ports(struct domain *d, unsigned int 
>>>>> prev_evtchns)
>>>>>      {
>>>>>      ...
>>>>>              if ( guest_test_bit(d, port, &shared_info(d, 
>>>>> evtchn_pending))
>>>>>                  evtchn->pending = true;
>>>>>      ...
>>>>>          }
>>>>>      }
>>>>>
>>>>> This looks like it handles the transition from the 2L ABI to the FIFO
>>>>> ABI: if a guest started with 2L and then switched to FIFO, any events
>>>>> already pending in shared_info(d, evtchn_pending) need to be 
>>>>> migrated to
>>>>> FIFO's per-channel evtchn->pending flag. But it looks like I am 
>>>>> missing
>>>>> something here as I mentioned at the start that Linux uses or FIFO 
>>>>> or 2L.
>>>>>
>>>>> Am I missing something?
>>>>
>>>> Quite likely you aren't, but I didn't check. My earlier "covering 
>>>> all" may
>>>> well resolve to merely stating things accordingly in the patch 
>>>> description.
>>>
>>> If either FIFO or 2L can be used, shouldn't guest_test_bit(d, port,
>>> &shared_info(d, evtchn_pending)) in setup_ports() be dropped? If FIFO
>>> was chosen by Linux, there won't be any events in &shared_info(d,
>>> evtchn_pending), so it is essentially dead code that could just be
>>> dropped.
>>
>> Why would it be dead code? Who said that a guest couldn't to 2L for a
>> while, then switch to FIFO? Think of boot loaders, for example.
> 
> I jsut based my assumption on Linux use case, if generally such switch 
> is okay then I will add to my original patch what I suggested here ...
> 
>>
>> Jan
>>
>>> Or would it be better to leave it and skip only if
>>> d->shared_info is allocated: if ( d->shared_info && guest_test_bit(...)
>>> )  to cover the case when a guest wants to switch from 2L to FIFO (if
>>> that is even a possible case at all, since as I mentioned above, the
>>> guest (Linux) chooses the event ABI once and it stays for its lifetime)?
> 
> ... + refactor commit message:
> ```
> xen/domain: fix UBSAN null pointer dereference of d->shared_info
> 
> It is legal to have d->shared_info equal to NULL for architectures which
> support only the FIFO ABI for event channel management.
> 
> Having d->shared_info == NULL leads to a UBSAN issue on such architectures:
>    UBSAN: Undefined behaviour in common/domain.c:325:10
>           member access within null pointer of type 'struct shared_info_t'
> 
> vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot inside
> the domain's shared_info page for vcpus with id < XEN_LEGACY_MAX_VCPUS,
> and falls back to dummy_vcpu_info for vcpus beyond that limit.
> Extend the existing fallback condition to also cover the case where no
> shared_info page has been allocated, mapping the vcpu to dummy_vcpu_info
> instead. This is the correct behaviour: dummy_vcpu_info already serves
> as the safe stand-in for vcpus that have no usable shared_info slot.
> 
> Additionally, if an architecture supports only the FIFO ABI, setup_ports()
> should be updated to avoid a NULL pointer dereference of d->shared_info,
> since in that case there will be no pending events in
> shared_info->evtchn_pending and the pending flag of the FIFO event 
> channel does not need to be set to true.
> ```
> Additionally it seems it is needed to add the following:

diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 93738931c575..2fa2dcdf4ded 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -104,9 +104,12 @@ void getdomaininfo(struct domain *d, struct 
xen_domctl_getdomaininfo *info)
  #ifdef CONFIG_MEM_PAGING
      info->paged_pages       = atomic_read(&d->paged_pages);
  #endif
-    info->shared_info_frame =
-        gfn_x(mfn_to_gfn(d, _mfn(virt_to_mfn(d->shared_info))));
-    BUG_ON(SHARED_M2P(info->shared_info_frame));
+    if ( d->shared_info )
+    {
+        info->shared_info_frame =
+            gfn_x(mfn_to_gfn(d, _mfn(virt_to_mfn(d->shared_info))));
+        BUG_ON(SHARED_M2P(info->shared_info_frame));
+    }

      info->cpupool = cpupool_get_id(d);

diff --git a/xen/common/time.c b/xen/common/time.c
index 04a65f00b35c..1ee49a8b0d13 100644
--- a/xen/common/time.c
+++ b/xen/common/time.c
@@ -94,6 +94,9 @@ void update_domain_wallclock_time(struct domain *d)
      uint32_t *wc_version;
      uint64_t sec;

+    if ( !d->shared_info )
+        return;
+
      spin_lock(&wc_lock);

      wc_version = &shared_info(d, wc_version);

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed May 20 15:52:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 15:52:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314121.1584116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPjDF-0007eq-Fw; Wed, 20 May 2026 15:52:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314121.1584116; Wed, 20 May 2026 15:52:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPjDF-0007ej-Ci; Wed, 20 May 2026 15:52:01 +0000
Received: by outflank-mailman (input) for mailman id 1314121;
 Wed, 20 May 2026 15:52:00 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e46162869000f373@swg.vates.tech>)
 id 1wPjDE-0007ed-7d
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 15:52:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPjDD-00HDJ7-KY
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 17:51:59 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e46162869000f373@swg.vates.tech>)
 id 6a0dd876-5cb7-0a2a0a5109dd-0a2a4506cef2-44
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 17:51:59 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e46162869000f373@swg.vates.tech>)
 id 6a0dd89f-7371-0a2a45060019-b9ff1c22a30f-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 17:51:59 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e46162869000f373.003 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 20 May 2026 15:51:57 +0000
Received: from bazzite.gpn.vates.fr (88-175-170-134.subs.proxad.net
 [88.175.170.134]) (Authenticated sender: teddy.astie@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 31834868D8;
 Wed, 20 May 2026 17:51:57 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=vVL24CTVrrepMXmhLSUTgF/J1TtkBVoPs1lVFbXAbqE=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:feedback-id;
 b=ImvHycVpargEHRiWoLC+u+WBgtip+cTyz+90GLq3oe7tlpPzzz8TuPRIeHwvNkYlGoLMugHpD
 Px2etAyUf7XV1/JLYEzd/GAyHjaE2Y2pgPmgMfSwsiH+EzKQTmXYgpCGlHQofisB2BeKditgmSp
 OBsD7IE3ZaPy+a5dQv/PsVKMSXGZNOd17BKxvxPZjEkU1DjMX/gkAzwIdo6tIByYDTQeygusn3o
 jMO7brtT9+Uj01biOHOkIjt60Ssgf1qSkM8pOkH7EWloPUBWJL/CvsRyzNfR02CzZlF0s8mWW6B
 5Uie9iXJZAS7gWthzyx7xOxweGEqnODHNBIy/As0zETQ==
X-Zone-Loop: 959df66f18f2a21e91f4e0881fd64bb9dbaadc46d6bf
x-campaign-type: default
x-transaction-id: 5acd565a-b143-442f-8b97-ea55d02a6163
x-swg-uid: 01-23142679-b23f-4480-889c-59843510e477
X-Mailer: Sweego
Message-ID:
 <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
x-swg-bid: 1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Teddy Astie <teddy.astie@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Teddy Astie <teddy.astie@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] pv32: Fix bogus cr2 on fault in emulation gate
Date: Wed, 20 May 2026 17:51:31 +0200
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1070.9e5a0f0fefa47ed6.19e4616267f.17fafed23575f740=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779292317315
X-purgate-ID: tlsNG-16d1c6/1779292319-8D785D75-174FA97F/0/0
X-purgate-type: clean
X-purgate-size: 1984

---=Part.1070.9e5a0f0fefa47ed6.19e4616267f.17fafed23575f740=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

__{put,get}_guest returns -EFAULT on access faults which causes
the injected cr2 to be off by 14 bytes (as EFAULT is 14) which is
incorrect=2E

Fix the computation by relying on copy_{from,to}_guest_pv which
reports the number of remaining bytes instead of a negative errno,
such that we can compute the offset properly=2E

Fixes: 70ad570b2799 ("x86/64: paravirt 32-on-64 call gate support")
Signed-off-by: Teddy Astie <teddy=2Eastie@vates=2Etech>
---
 xen/arch/x86/pv/emul-gate-op=2Ec | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/pv/emul-gate-op=2Ec b/xen/arch/x86/pv/emul-gate-=
op=2Ec
index c2c699fbff=2E=2Ecacc171115 100644
--- a/xen/arch/x86/pv/emul-gate-op=2Ec
+++ b/xen/arch/x86/pv/emul-gate-op=2Ec
@@ -289,9 +289,10 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
         int rc;
 #define push(item) do \
         { \
+            unsigned int __value =3D item; \
             --stkp; \
             esp -=3D 4; \
-            rc =3D __put_guest(item, stkp); \
+            rc =3D copy_to_guest_pv(stkp, &__value, sizeof(__value)); \
             if ( rc ) \
             { \
                 pv_inject_page_fault(PFEC_write_access, \
@@ -359,7 +360,7 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
                     unsigned int parm;
=20
                     --ustkp;
-                    rc =3D __get_guest(parm, ustkp);
+                    rc =3D copy_from_guest_pv(&parm, ustkp, sizeof(parm))=
;
                     if ( rc )
                     {
                         pv_inject_page_fault(0, (unsigned long)(ustkp + 1=
) - rc);
--=20
2=2E52=2E0



-- 
 | Vates 

XCP-ng & Xen Orchestra - Vates solutions

web: https://vate=
s=2Etech
---=Part.1070.9e5a0f0fefa47ed6.19e4616267f.17fafed23575f740=---


From xen-devel-bounces@lists.xenproject.org Wed May 20 16:03:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 16:03:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314131.1584125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPjOJ-0001bs-Dt; Wed, 20 May 2026 16:03:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314131.1584125; Wed, 20 May 2026 16:03:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPjOJ-0001bl-B3; Wed, 20 May 2026 16:03:27 +0000
Received: by outflank-mailman (input) for mailman id 1314131;
 Wed, 20 May 2026 16:03:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e46209296000f373@swg.vates.tech>)
 id 1wPjOI-0001bf-T1
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 16:03:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPjOI-004efe-7P
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 18:03:26 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e46209296000f373@swg.vates.tech>)
 id 6a0ddb37-bab6-0a2a0a5309dd-0a2a4508e5ec-26
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:03:26 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e46209296000f373@swg.vates.tech>)
 id 6a0ddb4d-63b5-0a2a45080019-b9ff1c22a221-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:03:26 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e46209296000f373.007 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 20 May 2026 16:03:20 +0000
Received: from l14 (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 8940482F0B;
 Wed, 20 May 2026 18:03:19 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=uGIjoaPJRNiMI3TEsvCd7pchrF6q+islJ76UpPMOkr0=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=LRcFAUgx5G2+z5jtGSfzRBPJ7NxCGEiSUXPiIMHgvTDd+ieUF5rejbhgc+g4qejMuZpsaAjX4
 9GB7tbH+quFuRDJoP8zU1v6w38ur0vcyIrudZcWNVRysWRIaStwJgvl66MW8dfVbYTONntemS0s
 7UhK1W2HMbuUJAhloqzgAf2RA9L7Q6HmjjlvjES+aW+MuhHghcZ2aHPs3zLicH0oCo11GKsbsOr
 LmxhwQ1hjp52gvXWcwsf4Jv/Ssb3VnbB0CU+K6aNxDNSSTunTO2DKWzI8A26T1Ce48nqNprCpzc
 0k7lj8GCq7rY2DsArCeK4iYdJqvzr7oq5Zv1uBcVTiMQ==
X-Zone-Loop: f5cc6a7259e86d66f72198d6fe7d5415a68d0ac7f0b5
x-campaign-type: default
x-transaction-id: 70fe10aa-b35d-4c6d-b982-91cd7eae5ed6
x-swg-uid: 01-ea4c1311-eb49-41cd-9b00-6fb76243c048
X-Mailer: Sweego
Message-ID:
 <1779293000.8631fc262581453bbf619ec5b2062170.19e46209296000f373@vates.tech>
x-swg-bid: 1779293000.8631fc262581453bbf619ec5b2062170.19e46209296000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Wed, 20 May 2026 18:03:19 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Subject: Re: [PATCH] Arm: do a 4th linking pass if necessary
References: <7b23e011-56b8-4f6c-bd55-83e1d9b0453f@suse.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <7b23e011-56b8-4f6c-bd55-83e1d9b0453f@suse.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1071.99cd8c440335dea4.19e4620903d.4105d4de25590562=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779292999742
X-purgate-ID: tlsNG-c1860d/1779293006-B777EDB1-E646E5FB/0/0
X-purgate-type: clean
X-purgate-size: 2937

---=Part.1071.99cd8c440335dea4.19e4620903d.4105d4de25590562=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, May 20, 2026 at 01:53:34PM +0200, Jan Beulich wrote:
> Once we generalize linking, we may want to introduce an equivalent of
> Linux'es KALLSYMS_EXTRA_PASS as well=2E I don't think doing this right h=
ere
> would make overly much sense, though=2E

If you generalise linking, you are going to put it in a shell script,
right? Because this recipe is getting very complicated, for within a
makefile=2E

> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -99,9 +99,20 @@ $(TARGET)-syms: $(objtree)/prelink=2Eo $(o
>  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>  		> $(dot-target)=2E2=2ES
>  	$(MAKE) $(build)=3D$(@D) $(dot-target)=2E2=2Eo
> -	$(call compare-symbol-tables, $(dot-target)=2E1=2Eo, $(dot-target)=2E2=
=2Eo)
> +	if ! { $(call compare-symbol-tables, $(dot-target)=2E1=2Eo, $(dot-targ=
et)=2E2=2Eo) >/dev/null; }; \

This `>/dev/null` seems to only suppress the output of the `diff` of the
macro, is it what is intended?

> +	then \
> +		$(LD) $(XEN_LDFLAGS) -T $(obj)/xen=2Elds $< $(build_id_linker) \
> +		    $(dot-target)=2E2=2Eo -o $(dot-target)=2E2; \
> +		$(NM) -pa --format=3Dsysv $(dot-target)=2E2 \
> +			| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
> +			> $(dot-target)=2E3=2ES; \
> +		$(MAKE) $(build)=3D$(@D) $(dot-target)=2E3=2Eo; \

This new block ignore all errors, from LD, NM and MAKE=2E We want
a `set -e` before the if=2E

> +		$(call compare-symbol-tables, $(dot-target)=2E2=2Eo, $(dot-target)=2E=
3=2Eo); \

At least, an error returned by `diff` in that macro should be taken into
account, for now=2E

> +	else \
> +		ln -sf $(dot-target)=2E2=2Eo $(dot-target)=2E3=2Eo; \
> +	fi
>  	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen=2Elds $< $(build_id_linker) \
> -	    $(dot-target)=2E2=2Eo -o $@
> +	    $(dot-target)=2E3=2Eo -o $@
>  	$(NM) -pa --format=3Dsysv $@ \
>  		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
>  		> $@=2Emap
> --- a/xen/scripts/Kbuild=2Einclude
> +++ b/xen/scripts/Kbuild=2Einclude
> @@ -65,7 +65,7 @@ define compare-symbol-tables
>      $(OBJDUMP) -t $(@D)/=2Ecst=2E$$$$ > $(1)=2Esym; \
>      ln -f $(2) $(@D)/=2Ecst=2E$$$$; \
>      $(OBJDUMP) -t $(@D)/=2Ecst=2E$$$$ > $(2)=2Esym; \
> -    rm -f $(@D)/=2Ecst=2E$$$$
> +    rm -f $(@D)/=2Ecst=2E$$$$; \
>      diff -u $(1)=2Esym $(2)=2Esym

This macro is missing `set -e`, if both OBJDUMP command fails and create
an empty file, `diff` will return success=2E But looks like `set -e` in
this macro isn't going to work in the condition of the `if`=2E


Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.1071.99cd8c440335dea4.19e4620903d.4105d4de25590562=---


From xen-devel-bounces@lists.xenproject.org Wed May 20 16:04:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 16:04:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314136.1584134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPjP5-00021o-LH; Wed, 20 May 2026 16:04:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314136.1584134; Wed, 20 May 2026 16:04:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPjP5-00021h-Ii; Wed, 20 May 2026 16:04:15 +0000
Received: by outflank-mailman (input) for mailman id 1314136;
 Wed, 20 May 2026 16:04:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e46215cd2000f373@swg.vates.tech>)
 id 1wPjP4-00021U-TG
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 16:04:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPjP4-004euV-8b
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 18:04:14 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e46215cd2000f373@swg.vates.tech>)
 id 6a0ddb77-5cb7-0a2a0a5109dd-0a2a4506c1f4-24
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:04:14 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e46215cd2000f373@swg.vates.tech>)
 id 6a0ddb7d-7371-0a2a45060019-b9ff1c229eef-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:04:14 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e46215cd2000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 20 May 2026 16:04:12 +0000
Received: from bazzite.gpn.vates.fr (88-175-170-134.subs.proxad.net
 [88.175.170.134]) (Authenticated sender: teddy.astie@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id 53E67867FE;
 Wed, 20 May 2026 18:04:11 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=XwTgf/QRiMFLHiS2rUGitIqoTNX+K/UmZ4oVh4h0AtU=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:feedback-id;
 b=XUxsWo5EB5rg39+krIRUyo+yv+LMFg+YEdlymDzsx6yXZgRXy7Nk+iaaNdV9zVDW4DUfkNZN3
 UwxVK5XGoYzungnekj1KocC1/f4s2EgUEPpegAsutSSeTxL52/GZffS81+bxjjAA+xM86tsNUWP
 vr9k7RE9ZYRXp2NHXN7wJ6g6Tmzv5/PXZ+LFczk9FEihaUawMAwv/2zBwyK7jDl8gf1S9FNMtVw
 M1tYOEtH/tXA7yQc/a9aCuYJO2ifbg+2nLrRKKS0oC0yEO8i1BdaYlhDABuEkhdyoorlEtxgbjq
 1kS4GX2pDU/VC3LWgMY9xOxgaFS6LP3a/tv06r0/7Zog==
X-Zone-Loop: 4805e9105c4b156d5dfb6979429bbce12af117822890
x-campaign-type: default
x-transaction-id: c0c50a56-19a7-4768-8382-0746779003c1
x-swg-uid: 01-1e7a0ea8-032f-412d-80cb-89665e8560fb
X-Mailer: Sweego
Message-ID:
 <1779293052.8631fc262581453bbf619ec5b2062170.19e46215cd2000f373@vates.tech>
x-swg-bid: 1779293052.8631fc262581453bbf619ec5b2062170.19e46215cd2000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Teddy Astie <teddy.astie@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Teddy Astie <teddy.astie@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] docs: Update console=pv requirement
Date: Wed, 20 May 2026 18:03:45 +0200
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1072.4d949d962ea7e0dd.19e46215a78.4bbfb8025a971d63=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779293051512
X-purgate-ID: tlsNG-16d1c6/1779293054-86168D75-A274F77A/0/0
X-purgate-type: clean
X-purgate-size: 1591

---=Part.1072.4d949d962ea7e0dd.19e46215a78.4bbfb8025a971d63=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

PV console doesn't require Xen to be running as a shim and only
requires CONFIG_XEN_GUEST and running as a Xen guest=2E Update the
documentation accordingly=2E

Fixes: 4f6609d6a665 ("x86/guest: use PV console for Xen/Dom0 I/O")
Signed-off-by: Teddy Astie <teddy=2Eastie@vates=2Etech>
---
 docs/misc/xen-command-line=2Epandoc | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/docs/misc/xen-command-line=2Epandoc b/docs/misc/xen-command-l=
ine=2Epandoc
index 52d4ca0f2f=2E=2Ed46d5b2152 100644
--- a/docs/misc/xen-command-line=2Epandoc
+++ b/docs/misc/xen-command-line=2Epandoc
@@ -446,8 +446,9 @@ the converse; transmitted and received characters will=
 have their MSB
 cleared=2E  This allows a single port to be shared by two subsystems
 (e=2Eg=2E console and debugger)=2E
=20
-`pv` indicates that Xen should use Xen's PV console=2E This option is
-only available when used together with `pv-in-pvh`=2E
+`pv` indicates that Xen should use Xen's PV console=2E This option requir=
es
+Xen running as a Xen guest=2E and is only available if the hypervisor was
+compiled with `CONFIG_XEN_GUEST` enabled=2E
=20
 `dbgp` or `ehci` indicates that Xen should use a USB2 debug port=2E
=20
--=20
2=2E52=2E0



-- 
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates s=
olutions

web: https://vates=2Etech
---=Part.1072.4d949d962ea7e0dd.19e46215a78.4bbfb8025a971d63=---


From xen-devel-bounces@lists.xenproject.org Wed May 20 16:27:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 16:27:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314157.1584152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPjm2-0005fj-Hx; Wed, 20 May 2026 16:27:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314157.1584152; Wed, 20 May 2026 16:27:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPjm2-0005fc-Ey; Wed, 20 May 2026 16:27:58 +0000
Received: by outflank-mailman (input) for mailman id 1314157;
 Wed, 20 May 2026 16:27:57 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e46370a9a000f373@swg.vates.tech>)
 id 1wPjm1-0005fF-4U
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 16:27:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPjm0-00Gnvi-HM
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 18:27:56 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e46370a9a000f373@swg.vates.tech>)
 id 6a0de0e6-bab6-0a2a0a5309dd-0a2a4508c92a-46
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:27:56 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e46370a9a000f373@swg.vates.tech>)
 id 6a0de10c-63b5-0a2a45080019-b9ff1c228d37-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:27:56 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e46370a9a000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 20 May 2026 16:27:52 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id 023FF86379;
 Wed, 20 May 2026 18:27:51 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=6ai6RDoOnMiVqPq5fxns6SLHJNSmKZqtrRwSK9574ko=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=C70QacQ+3KNYAEGvveaTPPLAtzI2nuR6D6lHTCEPJkljvd6FSZwYhA3hdPiwME4mAmFai731D
 KI1AwBvRAxH71O9bVczjwiaqZBjl5FbEbhE4tav2u5RtXT6qkVlQkZV+XQywkhUAxLBcyua2z3G
 Nx05feqm5W40b7Ik2iFMfJo7w3slyAjmS3Q5HmrKDqeWsSyAGk39PztcunTVeIpvWmt1j/OEpHx
 VhCjEE9JOmIwIFnngebEj4TV3dTZVOdEjaLb2CIXnmoZlqtLUAvfn9+VHOHka2N3bEgzomtrVS0
 okh04Vdn/pvPhYRWRyfmFqj8Qh9iZZdymbSgcqOAP6vA==
X-Zone-Loop: fa9293090769a94597df8d20adf012fae000a11078d2
x-campaign-type: default
x-transaction-id: 10a098b1-d381-4c42-b5b4-88babb6eb2e1
x-swg-uid: 01-4ae21b1f-02b1-4bb0-9844-4c75350d5923
X-Mailer: Sweego
Message-ID:
 <1779294472.8631fc262581453bbf619ec5b2062170.19e46370a9a000f373@vates.tech>
x-swg-bid: 1779294472.8631fc262581453bbf619ec5b2062170.19e46370a9a000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Wed, 20 May 2026 18:27:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC v1 5/7] x86/hvm: Move INSTR_* constants to hvm.h
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
 <20260518131404.3716969-6-ross.lagerwall@citrix.com>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
Autocrypt: addr=teddy.astie@vates.tech; keydata=
 xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7LTBVHV/XO
 Zw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJT4ny+OGntnJntUoR
 KRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJAWicutjkkUgd28Bh6HV9EIumH
 tCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaT
 VqMdqul07o72m3eA2mf+LMu9a04FX/d4wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/
 EoucejoZ5SH49ksmVAmKOLktOaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+S
 PhHar7TPKjFz0G3DPNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89
 MXfQXZ3qt1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
 LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWjmoACGwME
 CwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNzuyOVCskwfUZPla6Z
 pd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp0x0HfuhcYfAYPR46XHTvjaJE
 v99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuROxdK8G+YHccJY8PvWSq2K2yiae2KGiAv
 1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhP
 eP3IdpfWc8cyRLXF06Rk46YMYCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcT
 UwgnYlFRk2FLq0QeKEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9
 Egr/Wmu3MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
 f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEMAKiQiZa3
 yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ3DbVf+en3/FvdVZg
 2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTmetSG5/52AjtmPFtlXAk0NmLv
 fJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0s3109sJeXT5ImVdphFs9cvyZyBT9t1Pb
 Rowv58EgV0zE4hbAeVkULAbxFV5b/ExTjjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKb
 Yu6NCfiHfEyB3Xyg9hfdrRgjMRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ov
 XoK4jm+Py0FiUGUaA6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/
 eVtR2Q1wZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
 IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWjmoACGwwA
 CgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiVoUiHYN5QwhnbZnsa
 JDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764QxyX6rld2f2RcWkDuBHun55ZWXj
 by8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk/dS0XTOQi2wVUb17sW/+ybCEokdVacZG
 zOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fuoGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+
 lOWSvdNHgoEkWR0RXBPQjnGmLKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/Off
 O485NOTKwGOxyWb006cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR
 8ULR9nX0LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
 x9fhaZEsniw8/bYgC3igkk5YJiOa
In-Reply-To: <20260518131404.3716969-6-ross.lagerwall@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------nWwNd3YfCTqIOB9d3IGnGF0Z"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779294472135
X-purgate-ID: tlsNG-c1860d/1779294476-B7370DB1-F0A9F2A5/0/0
X-purgate-type: clean
X-purgate-size: 12065

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------nWwNd3YfCTqIOB9d3IGnGF0Z
Content-Type: multipart/mixed; boundary="------------w0AUmbiNtGs0DU4wEQcl2flT";
 protected-headers="v1"
From: Teddy Astie <teddy.astie@vates.tech>
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
Message-ID: <b7ff4761-cd0f-49c1-a2fd-bea66a1315e2@vates.tech>
Subject: Re: [RFC v1 5/7] x86/hvm: Move INSTR_* constants to hvm.h
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
 <20260518131404.3716969-6-ross.lagerwall@citrix.com>
In-Reply-To: <20260518131404.3716969-6-ross.lagerwall@citrix.com>

--------------w0AUmbiNtGs0DU4wEQcl2flT
Content-Type: multipart/mixed; boundary="------------vI6JgBA3q8y6cDyxiKRcbwGl"

--------------vI6JgBA3q8y6cDyxiKRcbwGl
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

SGVsbG8sDQoNCkxlIDE4LzA1LzIwMjYgw6AgMTU6MTQsIFJvc3MgTGFnZXJ3YWxsIGEgw6lj
cml0wqA6DQo+IFRoZXNlIGFyZW4ndCBzcGVjaWZpYyB0byBTVk0gYW5kIHdpbGwgYmUgdXNl
ZCBmb3IgZW11bGF0b3IgZmFzdCBwYXRoIHNvDQo+IG1vdmUgdGhlbSB0byBodm0uaC4NCj4g
DQo+IFNpZ25lZC1vZmYtYnk6IFJvc3MgTGFnZXJ3YWxsIDxyb3NzLmxhZ2Vyd2FsbEBjaXRy
aXguY29tPg0KPiAtLS0NCj4gICB4ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uaCAgICAgICAg
IHwgMjkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gICB4ZW4vYXJjaC94ODYv
aW5jbHVkZS9hc20vaHZtL2h2bS5oIHwgMjkgKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysNCj4gICAyIGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9u
cygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5oIGIv
eGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmgNCj4gaW5kZXggY2ZhNDExYWQ1YWUxLi5mNzVi
Y2E3YzVmNjYgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5oDQo+
ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5oDQo+IEBAIC0zNiwzNSArMzYsNiBA
QCBzdGF0aWMgaW5saW5lIHZvaWQgc3ZtX2ludmxwZ2EodW5zaWduZWQgbG9uZyBsaW5lYXIs
IHVpbnQzMl90IGFzaWQpDQo+ICAgICAgIGFzbSB2b2xhdGlsZSAoICJpbnZscGdhIiA6OiAi
YSIgKGxpbmVhciksICJjIiAoYXNpZCkgKTsNCj4gICB9DQo+ICAgDQo+IC0vKg0KPiAtICog
RW5jb2RpbmcgZm9yIHN2bV9nZXRfaW5zbl9sZW4oKS4gIFdlIHRha2UgWDg2RU1VTF9PUEMo
KSBmb3IgdGhlIG1haW4NCj4gLSAqIG9wY29kZSwgc2hpZnRlZCBsZWZ0IHRvIG1ha2Ugcm9v
bSBmb3IgdGhlIE1vZFJNIGJ5dGUuDQo+IC0gKg0KPiAtICogVGhlIEdycDcgaW5zdHJ1Y3Rp
b25zIGhhdmUgdGhlaXIgTW9kUk0gYnl0ZSBleHByZXNzZWQgaW4gb2N0YWwgZm9yIGVhc2ll
cg0KPiAtICogY3Jvc3MgcmVmZXJlbmNpbmcgd2l0aCB0aGUgb3Bjb2RlIGV4dGVuc2lvbiB0
YWJsZS4NCj4gLSAqLw0KPiAtI2RlZmluZSBJTlNUUl9FTkMob3BjLCBtb2RybSkgKCgob3Bj
KSA8PCA4KSB8IChtb2RybSkpDQo+IC0NCj4gLSNkZWZpbmUgSU5TVFJfUEFVU0UgICAgICBJ
TlNUUl9FTkMoWDg2RU1VTF9PUENfRjMoMCwgMHg5MCksIDApDQo+IC0jZGVmaW5lIElOU1RS
X0lOVDMgICAgICAgSU5TVFJfRU5DKFg4NkVNVUxfT1BDKCAgIDAsIDB4Y2MpLCAwKQ0KPiAt
I2RlZmluZSBJTlNUUl9JQ0VCUCAgICAgIElOU1RSX0VOQyhYODZFTVVMX09QQyggICAwLCAw
eGYxKSwgMCkNCj4gLSNkZWZpbmUgSU5TVFJfSExUICAgICAgICBJTlNUUl9FTkMoWDg2RU1V
TF9PUEMoICAgMCwgMHhmNCksIDApDQo+IC0jZGVmaW5lIElOU1RSX1hTRVRCViAgICAgSU5T
VFJfRU5DKFg4NkVNVUxfT1BDKDB4MGYsIDB4MDEpLCAwMzIxKSAvKiBvY3RhbC1vayAqLw0K
PiAtI2RlZmluZSBJTlNUUl9WTVJVTiAgICAgIElOU1RSX0VOQyhYODZFTVVMX09QQygweDBm
LCAweDAxKSwgMDMzMCkgLyogb2N0YWwtb2sgKi8NCj4gLSNkZWZpbmUgSU5TVFJfVk1DQUxM
ICAgICBJTlNUUl9FTkMoWDg2RU1VTF9PUEMoMHgwZiwgMHgwMSksIDAzMzEpIC8qIG9jdGFs
LW9rICovDQo+IC0jZGVmaW5lIElOU1RSX1ZNTE9BRCAgICAgSU5TVFJfRU5DKFg4NkVNVUxf
T1BDKDB4MGYsIDB4MDEpLCAwMzMyKSAvKiBvY3RhbC1vayAqLw0KPiAtI2RlZmluZSBJTlNU
Ul9WTVNBVkUgICAgIElOU1RSX0VOQyhYODZFTVVMX09QQygweDBmLCAweDAxKSwgMDMzMykg
Lyogb2N0YWwtb2sgKi8NCj4gLSNkZWZpbmUgSU5TVFJfU1RHSSAgICAgICBJTlNUUl9FTkMo
WDg2RU1VTF9PUEMoMHgwZiwgMHgwMSksIDAzMzQpIC8qIG9jdGFsLW9rICovDQo+IC0jZGVm
aW5lIElOU1RSX0NMR0kgICAgICAgSU5TVFJfRU5DKFg4NkVNVUxfT1BDKDB4MGYsIDB4MDEp
LCAwMzM1KSAvKiBvY3RhbC1vayAqLw0KPiAtI2RlZmluZSBJTlNUUl9JTlZMUEdBICAgIElO
U1RSX0VOQyhYODZFTVVMX09QQygweDBmLCAweDAxKSwgMDMzNykgLyogb2N0YWwtb2sgKi8N
Cj4gLSNkZWZpbmUgSU5TVFJfUkRUU0NQICAgICBJTlNUUl9FTkMoWDg2RU1VTF9PUEMoMHgw
ZiwgMHgwMSksIDAzNzEpIC8qIG9jdGFsLW9rICovDQo+IC0jZGVmaW5lIElOU1RSX0lOVkQg
ICAgICAgSU5TVFJfRU5DKFg4NkVNVUxfT1BDKDB4MGYsIDB4MDgpLCAwKQ0KPiAtI2RlZmlu
ZSBJTlNUUl9XQklOVkQgICAgIElOU1RSX0VOQyhYODZFTVVMX09QQygweDBmLCAweDA5KSwg
MCkNCj4gLSNkZWZpbmUgSU5TVFJfV1JNU1IgICAgICBJTlNUUl9FTkMoWDg2RU1VTF9PUEMo
MHgwZiwgMHgzMCksIDApDQo+IC0jZGVmaW5lIElOU1RSX1JEVFNDICAgICAgSU5TVFJfRU5D
KFg4NkVNVUxfT1BDKDB4MGYsIDB4MzEpLCAwKQ0KPiAtI2RlZmluZSBJTlNUUl9SRE1TUiAg
ICAgIElOU1RSX0VOQyhYODZFTVVMX09QQygweDBmLCAweDMyKSwgMCkNCj4gLSNkZWZpbmUg
SU5TVFJfQ1BVSUQgICAgICBJTlNUUl9FTkMoWDg2RU1VTF9PUEMoMHgwZiwgMHhhMiksIDAp
DQo+IC0NCj4gICB1bnNpZ25lZCBpbnQgc3ZtX2dldF9pbnNuX2xlbihzdHJ1Y3QgdmNwdSAq
diwgdW5zaWduZWQgaW50IGluc3RyX2VuYyk7DQo+ICAgdW5zaWduZWQgaW50IHN2bV9nZXRf
dGFza19zd2l0Y2hfaW5zbl9sZW4odm9pZCk7DQo+ICAgDQo+IGRpZmYgLS1naXQgYS94ZW4v
YXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2h2bS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2h2bS9odm0uaA0KPiBpbmRleCBlN2MxMzY0ODAyZjguLmE5YjY0ODE0Y2E3MSAxMDA2
NDQNCj4gLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9odm0uaA0KPiArKysg
Yi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2h2bS5oDQo+IEBAIC04NTEsNiArODUx
LDM1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBodm1fc3luY19waXJfdG9faXJyKHN0cnVjdCB2
Y3B1ICp2KQ0KPiAgICAgICAgICAgYWx0ZXJuYXRpdmVfdmNhbGwoaHZtX2Z1bmNzLnN5bmNf
cGlyX3RvX2lyciwgdik7DQo+ICAgfQ0KPiAgIA0KPiArLyoNCj4gKyAqIEVuY29kaW5nIGZv
ciBzdm1fZ2V0X2luc25fbGVuKCkuICBXZSB0YWtlIFg4NkVNVUxfT1BDKCkgZm9yIHRoZSBt
YWluDQo+ICsgKiBvcGNvZGUsIHNoaWZ0ZWQgbGVmdCB0byBtYWtlIHJvb20gZm9yIHRoZSBN
b2RSTSBieXRlLg0KPiArICoNCj4gKyAqIFRoZSBHcnA3IGluc3RydWN0aW9ucyBoYXZlIHRo
ZWlyIE1vZFJNIGJ5dGUgZXhwcmVzc2VkIGluIG9jdGFsIGZvciBlYXNpZXINCj4gKyAqIGNy
b3NzIHJlZmVyZW5jaW5nIHdpdGggdGhlIG9wY29kZSBleHRlbnNpb24gdGFibGUuDQo+ICsg
Ki8NCj4gKyNkZWZpbmUgSU5TVFJfRU5DKG9wYywgbW9kcm0pICgoKG9wYykgPDwgOCkgfCAo
bW9kcm0pKQ0KPiArDQo+ICsjZGVmaW5lIElOU1RSX1BBVVNFICAgICAgSU5TVFJfRU5DKFg4
NkVNVUxfT1BDX0YzKDAsIDB4OTApLCAwKQ0KPiArI2RlZmluZSBJTlNUUl9JTlQzICAgICAg
IElOU1RSX0VOQyhYODZFTVVMX09QQyggICAwLCAweGNjKSwgMCkNCj4gKyNkZWZpbmUgSU5T
VFJfSUNFQlAgICAgICBJTlNUUl9FTkMoWDg2RU1VTF9PUEMoICAgMCwgMHhmMSksIDApDQo+
ICsjZGVmaW5lIElOU1RSX0hMVCAgICAgICAgSU5TVFJfRU5DKFg4NkVNVUxfT1BDKCAgIDAs
IDB4ZjQpLCAwKQ0KPiArI2RlZmluZSBJTlNUUl9YU0VUQlYgICAgIElOU1RSX0VOQyhYODZF
TVVMX09QQygweDBmLCAweDAxKSwgMDMyMSkgLyogb2N0YWwtb2sgKi8NCj4gKyNkZWZpbmUg
SU5TVFJfVk1SVU4gICAgICBJTlNUUl9FTkMoWDg2RU1VTF9PUEMoMHgwZiwgMHgwMSksIDAz
MzApIC8qIG9jdGFsLW9rICovDQo+ICsjZGVmaW5lIElOU1RSX1ZNQ0FMTCAgICAgSU5TVFJf
RU5DKFg4NkVNVUxfT1BDKDB4MGYsIDB4MDEpLCAwMzMxKSAvKiBvY3RhbC1vayAqLw0KDQpJ
IGFzc3VtZSBhIHBhcnQgb2YgdGhlIHBsYW4gaXMgdG8gdXNlIHRoZXNlIGNvbnN0YW50cyBm
b3IgVk1YIGFzIHdlbGwuDQpIZW5jZSwgeW91IHZlcnkgbGlrZWx5IHdhbnQgdG8gc3BsaXQg
Vk1DQUxMIChWTVgpIGFuZCBWTU1DQUxMIChTVk0pIA0KZW5jb2RpbmdzICh3aGljaCBpcyBv
ZGRseSBuYW1lZCBJTlNUUl9WTUNBTEwgZGVzcGl0ZSBhY3R1YWxseSBiZWluZyANCmFjdHVh
bGx5IHZtbWNhbGwgZW5jb2RpbmcpLg0KDQo+ICsjZGVmaW5lIElOU1RSX1ZNTE9BRCAgICAg
SU5TVFJfRU5DKFg4NkVNVUxfT1BDKDB4MGYsIDB4MDEpLCAwMzMyKSAvKiBvY3RhbC1vayAq
Lw0KPiArI2RlZmluZSBJTlNUUl9WTVNBVkUgICAgIElOU1RSX0VOQyhYODZFTVVMX09QQygw
eDBmLCAweDAxKSwgMDMzMykgLyogb2N0YWwtb2sgKi8NCj4gKyNkZWZpbmUgSU5TVFJfU1RH
SSAgICAgICBJTlNUUl9FTkMoWDg2RU1VTF9PUEMoMHgwZiwgMHgwMSksIDAzMzQpIC8qIG9j
dGFsLW9rICovDQo+ICsjZGVmaW5lIElOU1RSX0NMR0kgICAgICAgSU5TVFJfRU5DKFg4NkVN
VUxfT1BDKDB4MGYsIDB4MDEpLCAwMzM1KSAvKiBvY3RhbC1vayAqLw0KPiArI2RlZmluZSBJ
TlNUUl9JTlZMUEdBICAgIElOU1RSX0VOQyhYODZFTVVMX09QQygweDBmLCAweDAxKSwgMDMz
NykgLyogb2N0YWwtb2sgKi8NCj4gKyNkZWZpbmUgSU5TVFJfUkRUU0NQICAgICBJTlNUUl9F
TkMoWDg2RU1VTF9PUEMoMHgwZiwgMHgwMSksIDAzNzEpIC8qIG9jdGFsLW9rICovDQo+ICsj
ZGVmaW5lIElOU1RSX0lOVkQgICAgICAgSU5TVFJfRU5DKFg4NkVNVUxfT1BDKDB4MGYsIDB4
MDgpLCAwKQ0KPiArI2RlZmluZSBJTlNUUl9XQklOVkQgICAgIElOU1RSX0VOQyhYODZFTVVM
X09QQygweDBmLCAweDA5KSwgMCkNCj4gKyNkZWZpbmUgSU5TVFJfV1JNU1IgICAgICBJTlNU
Ul9FTkMoWDg2RU1VTF9PUEMoMHgwZiwgMHgzMCksIDApDQo+ICsjZGVmaW5lIElOU1RSX1JE
VFNDICAgICAgSU5TVFJfRU5DKFg4NkVNVUxfT1BDKDB4MGYsIDB4MzEpLCAwKQ0KPiArI2Rl
ZmluZSBJTlNUUl9SRE1TUiAgICAgIElOU1RSX0VOQyhYODZFTVVMX09QQygweDBmLCAweDMy
KSwgMCkNCj4gKyNkZWZpbmUgSU5TVFJfQ1BVSUQgICAgICBJTlNUUl9FTkMoWDg2RU1VTF9P
UEMoMHgwZiwgMHhhMiksIDApDQo+ICsNCj4gICAjZWxzZSAgLyogQ09ORklHX0hWTSAqLw0K
PiAgIA0KPiAgICNkZWZpbmUgaHZtX2VuYWJsZWQgZmFsc2UNCg0KVGVkZHkNCg==
--------------vI6JgBA3q8y6cDyxiKRcbwGl
Content-Type: application/pgp-keys; name="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Disposition: attachment; filename="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7L
TBVHV/XOZw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJ
T4ny+OGntnJntUoRKRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJA
WicutjkkUgd28Bh6HV9EIumHtCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO
8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaTVqMdqul07o72m3eA2mf+LMu9a04FX/d4
wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/EoucejoZ5SH49ksmVAmKOLkt
OaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+SPhHar7TPKjFz0G3D
PNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89MXfQXZ3q
t1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWj
moACGwMECwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNz
uyOVCskwfUZPla6Zpd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp
0x0HfuhcYfAYPR46XHTvjaJEv99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuR
OxdK8G+YHccJY8PvWSq2K2yiae2KGiAv1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50
wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhPeP3IdpfWc8cyRLXF06Rk46YM
YCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcTUwgnYlFRk2FLq0Qe
KEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9Egr/Wmu3
MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEM
AKiQiZa3yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ
3DbVf+en3/FvdVZg2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTm
etSG5/52AjtmPFtlXAk0NmLvfJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0
s3109sJeXT5ImVdphFs9cvyZyBT9t1PbRowv58EgV0zE4hbAeVkULAbxFV5b/ExT
jjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKbYu6NCfiHfEyB3Xyg9hfdrRgj
MRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ovXoK4jm+Py0FiUGUa
A6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/eVtR2Q1w
ZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWj
moACGwwACgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiV
oUiHYN5QwhnbZnsaJDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764Qxy
X6rld2f2RcWkDuBHun55ZWXjby8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk
/dS0XTOQi2wVUb17sW/+ybCEokdVacZGzOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fu
oGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+lOWSvdNHgoEkWR0RXBPQjnGm
LKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/OffO485NOTKwGOxyWb0
06cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR8ULR9nX0
LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
x9fhaZEsniw8/bYgC3igkk5YJiOa
=3DlUIA
-----END PGP PUBLIC KEY BLOCK-----

--------------vI6JgBA3q8y6cDyxiKRcbwGl--

--------------w0AUmbiNtGs0DU4wEQcl2flT--

--------------nWwNd3YfCTqIOB9d3IGnGF0Z
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmoN4QcFAwAAAAAACgkQZg+p0QLLz9A2
2gv+NAvj1fce1RfMtJ5x3tS7hUAWcXJnNQyYDb1Jm2xjDa892NrRBe/fhi7xywo9Gic1lkFeOM0e
hfBWv2CLIfwf+acEZ4aRwRZO3Pj1ots6sTYx1YYG0S42jGKQAapB4SONmjFgRME6ER8UnvqkhiEE
8KLa+3b8dZ0vKiBU4BqbF+zhRUdscf4BmL0ze+e8HjuQ78AU10lOiUo2o88OSDtJgayI7J85sLsd
1a1VAdoFfgdNHcBqn1F7YAB9fiPgivHwRHJPCIWfWWx3etvPqSBpjAU9JBEoM7AQhrpjEiwajwC8
aKo7Nap9v0a4YstYjo9DTmPXclvav8zM5dmjoaJERbVGv1tNBTV5wwtUs1ObAILrqKwdt2sB07le
UhGoBdk34rhWy5iqujLodexFCMbnf7I6T5lTDkw+w2UcxfD/Pn9Axd7Xi70mN3prEjflRQ8NWbf8
ZAEqOvnpJZ83egpCHGRQx9hYBHM8eGuF79zoScHulkltBgU2eynMTpM0d0Pd
=EbGn
-----END PGP SIGNATURE-----

--------------nWwNd3YfCTqIOB9d3IGnGF0Z--


From xen-devel-bounces@lists.xenproject.org Wed May 20 16:27:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 16:27:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314156.1584142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPjly-0005S3-8s; Wed, 20 May 2026 16:27:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314156.1584142; Wed, 20 May 2026 16:27:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPjly-0005Rw-5O; Wed, 20 May 2026 16:27:54 +0000
Received: by outflank-mailman (input) for mailman id 1314156;
 Wed, 20 May 2026 16:27:53 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wPjlx-0005O3-5R
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 16:27:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPjlv-00HKOS-UT
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 18:27:52 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0de0d4-5cb7-0a2a0a5109dd-0a2a4504d4e4-32
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:27:51 +0200
Received: from [40.93.196.39]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0de105-1dec-0a2a45040019-285dc427bb27-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:27:51 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN8PR03MB5108.namprd03.prod.outlook.com (2603:10b6:408:db::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May
 2026 16:27:48 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026
 16:27:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=swmtJ01WLr6N44cMzLGp9WvEf2oTmEexDD2HJ+T3IC93JYIcH31aY7KRvLqrKzLqIg0Hx/90JTyU7EzCQP0bK5irV8ORDuNy5A4DC/ResQcoKayMn/hTX3vNm40IK4E6zCK1oZS6EEO1X4FgDwcu0D8kcMuUhnfWzz3yGXnlQOxdnC9mPXtF51BbBd027h/PTORnRYYd7y8MfSiXTqaV+wta1E5nIEn3BFk4VtrktMGDan8naChvYB5hV5N0idx4NYus7ccb/DdcfKXnVIebvr3x4Nfc+HcsyHs1aWcmM5zHELEzUJ1ZsNKycuk0e2Ko8rXgvPks/Dumqkdh2rmBEA==
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=9R2qmBAcouqsQoKHolYONzObX2TpYVolAq5+aiMBpbA=;
 b=SUr0f8lIxPSXKkLblz7yOG/l8Z/wQ297cbe0G4XMO+Xo15uKYMuMMjq9JZ0U8Wa+P4owDPFdz7HDe/J4OKtG3B/c9JrVGfdq/PKvMPDdTo1td7RGycEKOtHjubGu764zn6Mc78NYuPIZWBJxIdYNj5mxzsePVJzjyRgx3gb7sb79m4ie4Dy9Pg+2RvW/o7DuJcOuc4+NcKrUZrX4pJxQajPFPLEewA1zzk0Vz3tyHuPyiHeH+nuw+plGLymI4LXD0DMDUOCSzk3fw3oSnx2llUgIjai0scToM2e+Lk4DzdoNciQ8f5u20PFPHIBVXbdkN3qP4Q0Q+w3eId69Qoevfg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9R2qmBAcouqsQoKHolYONzObX2TpYVolAq5+aiMBpbA=;
 b=SzQ/I4ZfpUjOV0sqkqDSefTCu3T6+X9TUvQfMXKMohxOhhen3r7XibFPol2gqlJTrhIBEnb9bLdJVZYJqfb+/8A31kx7nQWcF8UzN8Q31JnbZNwEtrFxMihCUNLoC1o96E2/mhEbnvvaQyi+vfaAIKzNUDxhHnxg++fzgGtQLHs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <93cbe99f-a75b-4837-be6b-d6621d9f4d6d@citrix.com>
Date: Wed, 20 May 2026 17:27:44 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] pv32: Fix bogus cr2 on fault in emulation gate
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0008.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:150::13) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BN8PR03MB5108:EE_
X-MS-Office365-Filtering-Correlation-Id: e74fd248-5729-40f4-caf1-08deb68cbaba
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|11063799006|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	xRf37mXqBnA969/SFab2DilKw9dryVNiaKR+zAJWh/XGcyQ6xXQ791VzPrt1MOFbXO3hWGo3QdMW3OXdtcdec882HwHy5NFv4QzPrJXdLjAVBFTl/izABnFzXGOtDtJAvqlnMPrXx706Yck4BZhNsvPrgtCh78sz8VlZJ1LneiRSRlV3C3UR7o7xiBbLpNzp/xeRH5EL0Qxq2e/bUc4APGfJFPUrao5R2Nf5UFr88H2bczki0oCKvcL48TNK8u7nyRLSD3O0FgICZ9aozfdPQ/hpkSPv/59X1UZaqNhsxW14rATOYY0YZwnoE3yRXW90bijfowid7vJWfFEr5v2/lmpxYxmHRcLXQZZ4ajLdMVfWkn12JM3OyfukKHxv5H2Oo94+3MqZDVvGIeLP/8xQ5zC5joAVlq4uoRghbTv3nPoTtp8ZA6KatJL+BGoSc+GCywMiQsaRUC1InHk8qIi0w7hbyPp9IKz99R95J+yqSdBxu2FJEwCZJbso+K3CxIv/W8/5ATrlbTkOIBtcqsAjgDgSHcHBYnaNXxGQZPhQZu+eLtHbRKLLMpI+eLor/eultKtUxWyDd4lSIVT9ZFqtV8cT3MLP+OUDNnB3DT3tdiHwVlG4Ir375wvM99BIAsrmgyGHj0znoHJwPSgr0mm5CT+I+4fEqC6WJDUJqrBQWf5I3W/vs9OqMcn7lvCMjYKB
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(11063799006)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b2xHdDRGZG15VDhUTSswWE0wcDNBS2o0bjlwU1ArOVlxSndMTlJuZHRCbnA4?=
 =?utf-8?B?L1dzb1BNQVhmMzI2ckN6RjFaY0w3WWZ2YXhlVE9MR1BGWEplMGlDd05vdmJm?=
 =?utf-8?B?MUR3aG1lY1NBTGRiRVhudnluUUI1aXpNVnoxMUlVblBDdFFQMlBMNXpmT3U2?=
 =?utf-8?B?enVtQkUreDNmdFljWXBYajJXc0hpajVpU21tdmtVZTk4VGJ6S3hiQ0RRNGw2?=
 =?utf-8?B?djlTVVMrbmllTG9hQ3N0UTZ2RlI4c0ZPWHR2YnE5Vlg0ZDRtd1BXenBYWWFj?=
 =?utf-8?B?ZDYvMmVWM2VFalpORWhQVlJEZU11aTNTbFZZT3FRQm5JaWFPclZKTkhBZDk3?=
 =?utf-8?B?SWRQcUxzdGNQL3I4M29JRVFwbDRFYWJkN0hRbG5yZWxWcVFsSE5DNWRDNEh4?=
 =?utf-8?B?aFdZL1hMMlJWUVJyOWdFT3dTeDRXcXA5bm9JY1pJL3Vua2NVY3VYQ1ZYcEpI?=
 =?utf-8?B?aWtyaG9tUVk5dlFGbzZUZFF4NjhOc2pCQkhBd2NLajdhbDFlc01OcFU2UnpW?=
 =?utf-8?B?NmdLZVEzZHFVNmJ0bzcvV2lubS9IaHIvd3NUL2t3MXYyQkdlb0VHRk9CSk91?=
 =?utf-8?B?Y0dLa29uYkNNVDBpSkk2dVlSTW5admVNSzFvUUx2WWZnQ29BZXA4S2p3S25F?=
 =?utf-8?B?a1NDZm5ZS1J0Z05ocVFOTVJqRW5YaENzaXFyUURLWDlpeHV1b1UzOXpFTUp3?=
 =?utf-8?B?a3VKbE9iSXJYQ3BialNLSXU5Y3llaXh5SFA4bUR3eFM2YnFabDhpNFRkV2Y5?=
 =?utf-8?B?YWgxZVZGVzBNK2VkQnpnaXNtWmRWVGZmY0VqcnpjQTlZcTZBNng1cGpJMVdH?=
 =?utf-8?B?RXhBaEFGcThyTFRxM2pPL2VtL2hHUll3QUVlZ0JaaGZ2eWx6a05GTDJLLzk2?=
 =?utf-8?B?bUJYaGZvOVF4cUFpSkYrdG01SnRoQ2loa0kzVVFMU0JBNkEwTnNZc2RERmJR?=
 =?utf-8?B?VCtCWTlWYkNPcTZjTllkUXB4YmJDd3pMSHpqRis4UzRDbGU3M3NwcFg5azE4?=
 =?utf-8?B?S3huMmRoK3BybXliWTQ5d3FrbmlwRGNWYVE5eHhrbzc4dVBjOEhlUHhtZmZ6?=
 =?utf-8?B?L052ZUFkZEFQRmZZM05DZEhJMlFSQVVZU1NJVnB6QUFoQ3NJbXlEVnZEMnNE?=
 =?utf-8?B?alVaRis4clBPUWt1WU10UXE2eGZkdEF2a2ZYYjhTeXpLMHpuV3dMZUl0STdT?=
 =?utf-8?B?dDE5UUE5YVRMNVA5a296ZEZaYmIvQ09LSk9TbDBUSHlGaGprZDdPSTFIU25a?=
 =?utf-8?B?SkZWL2ZyWEllODZXSklZK3NNM3V3bFNSR01icWRiZE90YTBVWHNaVW9CbU9w?=
 =?utf-8?B?ZUcwVHZWTVpWcSt6QWtWa2kybXR5OXhYMEg0K1oxNlYvL20wc2pkVk11SFRh?=
 =?utf-8?B?ZWJwQzZwckJqMDhqR0V0Q1M4ZDNjSTExdTFUYU1DTlVuanNkOWc5YXk4UlBL?=
 =?utf-8?B?QXgyTUpjS0lta0xwZnRxSDZGcnlsaHB3ekNLQlZaTVpLbnF5NmRKbjAyMXg0?=
 =?utf-8?B?MmU1bXRqRWpmRFlpNi9oa1hUOEpxUXo1czd0b1phV013ZUJ2NC9kSWZOTWw5?=
 =?utf-8?B?dys1bGlpZmNkeEJZcWdQM3AveDIzVDAzOG5QR1BLVkRxREJxKysxaklsMjd3?=
 =?utf-8?B?Ty83UTdBalFlZDViNjZPdGNwc1F4a3VCK05TNWpGYjlteXpMYlJubnRUQVRu?=
 =?utf-8?B?WGdLRDkxYVFJb2wrMmZNclFPcWRrRWFiVVdZV29CWG10Nkg1UEdTeU1ZbzFt?=
 =?utf-8?B?NXJZY0FqeVM0SjRYY2pnMzdpbjY5YkJ2WVdmL2UxWVFNK1VWalgyZDFtRFlD?=
 =?utf-8?B?OENkYWppOThxNTZhbHlKOThjNERwMEo0aS8zVEtmK0JRZFg4S1M1Z0RzTE9o?=
 =?utf-8?B?N2tJY3NQSXZGUkplRnlBcFAwa1NGOTlOb2ZtR3ZSTkdGSjJDTmREWlYySTAx?=
 =?utf-8?B?R1JJaEs3TkgzbGc0TE1OTFgrZko2ZmdHZk1GaE0yOUYzRUZSTm1kVmQ3KzMy?=
 =?utf-8?B?dS82aXhORkVyMnRjUnN4NFgxSmFtaS9MbUgzODNtMGtCYnI1OHVwOXNpZzdC?=
 =?utf-8?B?VVdLY1hya0g2VGN5UjJubFFBUXo4aTBWdjkyN3lZbXBzS1hqR01INEFadkh0?=
 =?utf-8?B?TXR6VTAwN29sRkIzM3BvWTVHQmxBaGN4NHo2SDhhei94eUJscisyN1hLb0Zy?=
 =?utf-8?B?c2hUOS9QS2I5RjRjb2xRaXNnWStWVG5mclE0Wm9xOFlnQUMvNnBWc2hjQWFj?=
 =?utf-8?B?eXFmeGV2MjJqT0EvL2JtKytjR3haUXlQTi9GdWhFS2ZBbWY3VDZBUkN5bVc0?=
 =?utf-8?B?dWdva1VaaitFaE9ybi9kM0FsU0l6cGJaTWIyNEMyUUtxQ0dwMHdHOEU5NDRY?=
 =?utf-8?Q?f2lYBnQLVyfEDE5E=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e74fd248-5729-40f4-caf1-08deb68cbaba
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 16:27:47.9596
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Fs4OPMVz6cF1ov9gFQsnCX7bWtpGQjj82owAmfBTh7axjshGFJJUxmLYZSyYx96kJXOYMw2Vhx+WJpQvXqNr49uo9vMWdzUVO5oDQH3q3sk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB5108
X-purgate-ID: tlsNG-ebf023/1779294471-405703FF-D6098164/0/0
X-purgate-type: clean
X-purgate-size: 1097

On 20/05/2026 4:51 pm, Teddy Astie wrote:
> __{put,get}_guest returns -EFAULT on access faults which causes
> the injected cr2 to be off by 14 bytes (as EFAULT is 14) which is
> incorrect.
>
> Fix the computation by relying on copy_{from,to}_guest_pv which
> reports the number of remaining bytes instead of a negative errno,
> such that we can compute the offset properly.
>
> Fixes: 70ad570b2799 ("x86/64: paravirt 32-on-64 call gate support")
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

Given it was __*_guest() before, I think we can use the
__copy_*_guest_pv() variants.

I can fix on commit if you're happy?  Reviewed-by: Andrew Cooper
<andrew.cooper3@citrix.com>

Jan, this wants committing ahead of your MISRA change, as it needs
backporting.

Strictly speaking, gate emulation is all PV right now.  It does want
moving behind CONFIG_PV32.

Also, with these two callers dropped, all remaining users of
__{get,put}_guest() only care about success/failure rather than the
precise value, so there is probably some cleanup which can be done.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 20 16:34:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 16:34:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314175.1584160 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPjsg-0007Vy-9Q; Wed, 20 May 2026 16:34:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314175.1584160; Wed, 20 May 2026 16:34:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPjsg-0007Vq-5w; Wed, 20 May 2026 16:34:50 +0000
Received: by outflank-mailman (input) for mailman id 1314175;
 Wed, 20 May 2026 16:34:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wPjse-0007Vk-3f
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 16:34:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPjsd-0079rN-5M
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 18:34:47 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0de29b-e002-0a2a0a5209dd-0a2a4501da0e-12
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:34:46 +0200
Received: from [52.101.193.56]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0de2a2-c1f2-0a2a45010019-3465c1381991-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:34:43 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS0PR03MB7656.namprd03.prod.outlook.com (2603:10b6:8:1f3::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May
 2026 16:34:41 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026
 16:34:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Zk0z1Rnp9JxuostBLbCxAS3xY8x1QgL1oitQfB1qrMnwEw58NWJTb8mDckfhgHO6v4MImFTNR3PhRwjrSN0F32v/uwQcTUHMki2qIfXS20FSiqbv12TrIszIENVIO/aA9Z0MOqDB6K0Z+NXkeqRd7C6XWJGFyVC7X8K2AK/9qGISqbwo3w0pVTw+0LWxK3weqr5Z2M1e83oyJvgAFOvIhM87NXWnIn/9JZJsx3EczHDzAQvmbEzaavQdaYXx81i7LljrijXCC0g6xj/rchMbaqUjXPQan1TQEidchAjTG7d8fk3oSyZ93aNm/UMHjvnm0O/7ElVnM9hNeZExh7+gEQ==
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=KJ2wQpAUwCmGegJ3HAkRDiyUEv0uf/GhBvx6/g4X6ng=;
 b=JVAOsA0g5OzPcvE7QDUwSB7uF8ozJr93tL69LMT8hq8GAZDIo2IwGDgh9bl43YxKxbq0xzGwgWIOBF3gAo4VTt/id6E04WNuteCF6xMNv+QQRNcDcD8oWhk7ZRg4mHwhDE+tpI5v8eWmfvzY6Pfm2pOkViYVrHlZrAS8PNroqg7ILiHf4VHfRkGUiDGITqdA7vKYkXSMMndfbya6rhPJjVZee2HFghEI8JzOeowpFYjOLz4BTU3K7pbhrtfuoEWge+rHQW9t6yf1FgVX9W7SKaiDHkSetfw7iq28DXnPsokQ/q/uYYzwn6RB61Ur4haBHbqxvPZSJNzBgqZpOMKkZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KJ2wQpAUwCmGegJ3HAkRDiyUEv0uf/GhBvx6/g4X6ng=;
 b=lbrCu9MbpAh1bGYoRGedsDAVkhwlXPiuGbQrqby+tQWY5jtNmg8aQeUch2K7Pvgw0cqyOi4axNxd9UVon2/C+Nn365in4ThgXKt0HnxYlzgcwRY0jPLMos/1ATf4UM6w5CstVHhMLFkRyEwDGZI/tccGapmnTW6RlXdxEZTz+/Y=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <0e23078f-30e0-4077-be1e-365a265603de@citrix.com>
Date: Wed, 20 May 2026 17:34:38 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] pv32: Fix bogus cr2 on fault in emulation gate
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0512.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:13b::19) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS0PR03MB7656:EE_
X-MS-Office365-Filtering-Correlation-Id: 7f6511d8-d25e-4039-7fd4-08deb68db120
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|56012099003|18002099003|22082099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	ePZLAsnVdMFgYylG70hT81MI6/iZXSialMHRH/Q3TVnQ99M25Y9TUKuLmt4JvuoQ8rvl+15hLGwUds0LhR5zdnxLZYU6zFQdz69fmRE+yiaaxFK+sojeo9SR9KBYwQlVsTzz4iPh02I1IBJqSpvl7pmcAK2ZhyFkshpI+JIHLvAy2Am1+T90Pj9FYTWoyPL9+W5UMoidrBYUKZu+Hc+f/hr0ambjG34ew43ErMjOR9rwoFOyMxtD9xw5wSsdo0/xw+rN36ETojphg567/GLVpfzS8m2ePTsj+x0H/k7Phf3Jd2XbxeS8VKQmoUJGBfvtZEqqCAxJu6wuB23udRnY9xRoVrb9DX7fzfqLZv15LqKjjWwQcrM/1/oyY33u1FC2AOlELQUNkaZjYuBa5BN0oZXqgeU0KLXtKoVhKVGByq4L4TJe+9vIIT06+lKk3/Ijq3+zS3w4RxmpJDiCjEk7dt+y8Md4whSjF24peP0XXxBFlX69l5O6oWbkj9w0KgRZwadAbZmLq7JJwBLg4u5P5PK8+ySYoXGyDVvWHutFcKgO7Rght+WDfsmWOcChlORW3M68O5avXIH7GVr+0e6tZv021FpFJOxbXihrDeFf33v8HEcA+h6z1Ru30e3RuxZ8xrGxCzWZ9duVtP43BroKNRo/zsqNnpfQaBpKYxhzFusOMph6lBIwUaja5L5JsUDa
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(56012099003)(18002099003)(22082099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eXdEUjlpbjN6SDVhTmxYNGh1ZkFiSFhkYzZ4dEs0SmN1L0M0NSt4ZVhmLzI0?=
 =?utf-8?B?NXVqbnhSTmNIVGZTOUlielBFQ3h4ZC9sNkhKaTMvcmltZnBNcjJpNUpCa1F5?=
 =?utf-8?B?WTJKZy9MK29SU1dlek02V2tKdVRPZ1pzcHp4bzFOMW5WNEVSSnUrRC9GV050?=
 =?utf-8?B?WGNtMXhtb2JBWHBWQVlmamtCbDczVklBekt0ajRoc04zdWM1ZU14cEY1NVBS?=
 =?utf-8?B?MFBhTXZXS3F2ZzVnajJocGNBaXJwTnhSM0VMTUhMTXpaNXBwUTFKK045c1dx?=
 =?utf-8?B?NHd5S1hPWmQ1WUdpRXdaSnh2NjRTUHd1QXJBYmg5ckR3WGZ3N1pUT2YySUpB?=
 =?utf-8?B?ZE5wci9wWU1yb1Q2cWJLa0tET0FFUXJSRzJkbE9ic3llVlAxMWZ2MXp4RUty?=
 =?utf-8?B?VWVVa2F3ZUR5azBsaHVpUnlkenlQZ3FCQit4ZXZ3WXlROGZPeEdxSk1kdmJU?=
 =?utf-8?B?TDRQNDI0Q0JnL0pRU3RwZmxLY29uU01BWGRKRXVzdHhBZHNGd05tbVdkSjhx?=
 =?utf-8?B?MitWbFRJZmxBSWlwN0k0bzY1bkN2MitXOFd4WExaUFJCeDhHY2trSVE2TVRH?=
 =?utf-8?B?VkxHUmQ3QlhhTmZwRWNBVmFabitqOXF2M0NhbkMxcXNhTUV2c3JralNaNGFV?=
 =?utf-8?B?WlhVTE1ZRjNQbUs1UjA5L3dXS0hMNE43VStsOU8xUy8ydlYzUVc2c01ORHF5?=
 =?utf-8?B?WnFLanltT2JnRVg2OHd6alVVSXBqaktIUXk0eFRJL3RuVjE1dysrWkEzdTVW?=
 =?utf-8?B?NjF5NUdJYmd5YmpaMEkwSGF4QXZiaUJ1QTRWaTYzcnJlVGc0QXdjNU9qaHZ4?=
 =?utf-8?B?OFZUV1ZxTGFlZzhyNjVmbTVTS3Z4U0ZzbVloaE14SGtkQUNtZ1V5bHRZdzRi?=
 =?utf-8?B?NHp5Y3hHV1lDV2Rpbk5rYzNGTDNhQy9KSEZqYVBpNXBWTWhhVUl3UlowRVVn?=
 =?utf-8?B?R1ZUWTJyeWg5VWlXN2xIQTlyb25rOU9LMlJFTkVjZEl3SlRtNG9Qc2tGWGxy?=
 =?utf-8?B?VWpGZk1KMGRMNGZRc09XaVF4NnFUekRld09kdlovK0VRMEpET2FrNmp1bHBB?=
 =?utf-8?B?REhkSzVIKzJjdnJkQWV2dzNZTDUvNGJjTUd6WEc5NXlGaTMwUyt2b0c3MkE5?=
 =?utf-8?B?M0RvS2RCcDBzeVk0MklsdWNuMnY3cENpR3AxZ1k3VGVzSUhhQXYyNGROZ2Er?=
 =?utf-8?B?dHEyanlmOTV5SFFIaVJ2aUdUaW1QeDdzMVYxaU05ZGRRN3dpK2Z3bjl0UGZk?=
 =?utf-8?B?MXFFVFZ5dXY2YWFiOVdkUHZYQWM3WnRsUHFvbWJOOUphSGUyNlM4N05QUnEz?=
 =?utf-8?B?NGVNbndTNDJ4aGJFM1RMRGhNZGNpYTRZVDBGWVR2bHRDTGFUaUZZTTNjK0o0?=
 =?utf-8?B?eG5hU3VnaWozalNySG5vM1p3eHdPMmtHS2l2Z2VFRWhwVEEyR0twZVc4T1F5?=
 =?utf-8?B?b0h1bVA4bCtkWm1iVkNnSjA5NjRTVUh1LzgwSlE3RFRTaFpwaVQ4MUpjd1lh?=
 =?utf-8?B?RldEdHRJb3hacWw1WXV4d1E5YW51clpyUzNDdDg0NjVZNTBrTURiaE9mWm1l?=
 =?utf-8?B?OVZyVTFHT3JlM01RcEFKSW1tK3N1K3d0NytrWTRpSFNvRThWUzlpVzQvK1lO?=
 =?utf-8?B?L2NJWXBGMDR5OUVnR0Q2R2JvYU1XWUkzK0lzeXZnNmxtdHNYLy85VnNzQmN4?=
 =?utf-8?B?TGx4Y1cwV0M5clM0YXAxMGJaaDVTQk1kaGQ5QkMwZUlocjV2MlRSQXUyVEF3?=
 =?utf-8?B?Z3c2emRnNHJEbVVEczM3TytsQzJORU9GVmh6YS9LamcvWU5UUE5OMmZTUEhC?=
 =?utf-8?B?N2s3eS9RL3V6d2tBY1pSazN4cXgrNGVoWjhNSEVnVFp0ZG4vSkdybHVYeVBz?=
 =?utf-8?B?SDF6dTV2ZFJORnQ0azluWG1aMENqdDE0VkZjVDJFUTJ5Y1JiWEQveitpbVR5?=
 =?utf-8?B?UStzcXVtU3FiZVJPL3ZBUGdDYnp2U1B5MkFYVlJibld1d25DTk95bjEwRjRu?=
 =?utf-8?B?dlNoNENaZkJJV2Ztam5ZcUFOQ0g0Q1ovK3UzMkFuRWVtK3p2UTcrdFJLTno0?=
 =?utf-8?B?eVJZazkzb1VidDJrY1pjR29VWjNiR2xwdHlJdm4rMDU4bE1wR0QzbVRweVRr?=
 =?utf-8?B?RkVHczQxU1ljdkZhMXFibXVJa2JlY2J5WnR6QWY0RmxtdzJNSmsvdFdUa1Fj?=
 =?utf-8?B?Q2owSEU3Yy9jMkN5K2FYbkZTOXBXKytFNHd4a3A5SGZCbUl6UnVwZUVkSkVi?=
 =?utf-8?B?QVhWNDk1VWJnSzJuVHpCVFJVMjF4ZG5vMldRdkV2UlFRMjd3cGUzYitFbDFZ?=
 =?utf-8?B?S0hxdERYZFZnMi9RTnFzTCt3dkRoNjlnbnVwVTRDUktTa3N2cmVwck8yS1VS?=
 =?utf-8?Q?ULvpu3peuMJgYKPc=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7f6511d8-d25e-4039-7fd4-08deb68db120
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 16:34:41.3216
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: exochmJkw3ia1tlvx9IcKrTI2gT9zr5P/7CC0kJAhXq5FJpBdkKPQGe95lpeM+tXIzHJs/CBPfG26He0NaR9ya80BIbsAs95wbBqyQ50dVg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7656
X-purgate-ID: tlsNG-d62444/1779294884-AC656FF4-52746255/0/0
X-purgate-type: clean
X-purgate-size: 1420

On 20/05/2026 4:51 pm, Teddy Astie wrote:
> __{put,get}_guest returns -EFAULT on access faults which causes
> the injected cr2 to be off by 14 bytes (as EFAULT is 14) which is
> incorrect.
>
> Fix the computation by relying on copy_{from,to}_guest_pv which
> reports the number of remaining bytes instead of a negative errno,
> such that we can compute the offset properly.
>
> Fixes: 70ad570b2799 ("x86/64: paravirt 32-on-64 call gate support")
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
>  xen/arch/x86/pv/emul-gate-op.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/x86/pv/emul-gate-op.c b/xen/arch/x86/pv/emul-gate-op.c
> index c2c699fbff..cacc171115 100644
> --- a/xen/arch/x86/pv/emul-gate-op.c
> +++ b/xen/arch/x86/pv/emul-gate-op.c
> @@ -289,9 +289,10 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
>          int rc;
>  #define push(item) do \
>          { \
> +            unsigned int __value = item; \
>              --stkp; \
>              esp -= 4; \
> -            rc = __put_guest(item, stkp); \
> +            rc = copy_to_guest_pv(stkp, &__value, sizeof(__value)); \

Oh, this probably violates MISRA, but you don't need to use a separate
variable because sizeof() has no side effects.

Given that the expression is now &item, I think it needs to be &(item).

Can also be fixed on commit.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 20 16:36:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 16:36:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314180.1584170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPjtq-00082c-MF; Wed, 20 May 2026 16:36:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314180.1584170; Wed, 20 May 2026 16:36:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPjtq-00082V-JC; Wed, 20 May 2026 16:36:02 +0000
Received: by outflank-mailman (input) for mailman id 1314180;
 Wed, 20 May 2026 16:36:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e463e7052000f373@swg.vates.tech>)
 id 1wPjtp-00082N-5W
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 16:36:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPjto-007ABp-Hn
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 18:36:00 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e463e7052000f373@swg.vates.tech>)
 id 6a0de2cb-e002-0a2a0a5209dd-0a2a4505a91c-46
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:36:00 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e463e7052000f373@swg.vates.tech>)
 id 6a0de2f0-aaa8-0a2a45050019-b9ff1c22a5fb-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:36:00 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e463e7052000f373.003 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 20 May 2026 16:35:57 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id 119EB863EA;
 Wed, 20 May 2026 18:35:57 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=7OsXOt1ZtVwGuaBqf2QY0vMR1N9YWSAj+bSzWlfXDuk=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=GnHCwiv8/fTFscFJI9ko75iTeL+4bt+7BisBST/QUq0wohbEXZ8zuRh5KHLSRs2Wcj6eMsDp1
 mmnpbamKAt6sPIuNmnLvhsvcf9appeaaBec6eG8Yk6bHw2kg7M8MMFq4gBMRoE4vHEtM4tWdCfp
 N52maNPceUd05zqhhxC/XN4LpTomdG60qwLsYgI4JPFKEdffi0KNI70i/9FyklCbKuXWeU12vZE
 Nv72apnGRRHpe6eSQFKzne3GsIgNLTtdHgUM2CwVRSzqnBVjn2NUMjiTPSG863AHXp2CiGGAsTH
 TO/A+42uag2ij6sAbtRFpW+8fqV2ulNtnC6c1uT+QoHQ==
X-Zone-Loop: e24540465fab2ad8f4c1250338a67266dd678727b73b
x-campaign-type: default
x-transaction-id: 8133f623-a63a-4128-b8b9-a908ead6de0f
x-swg-uid: 01-2190edb2-1feb-440e-97bb-7bd07a545ad9
X-Mailer: Sweego
Message-ID:
 <1779294957.8631fc262581453bbf619ec5b2062170.19e463e7052000f373@vates.tech>
x-swg-bid: 1779294957.8631fc262581453bbf619ec5b2062170.19e463e7052000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Wed, 20 May 2026 18:35:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] pv32: Fix bogus cr2 on fault in emulation gate
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
 <93cbe99f-a75b-4837-be6b-d6621d9f4d6d@citrix.com>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
Autocrypt: addr=teddy.astie@vates.tech; keydata=
 xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7LTBVHV/XO
 Zw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJT4ny+OGntnJntUoR
 KRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJAWicutjkkUgd28Bh6HV9EIumH
 tCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaT
 VqMdqul07o72m3eA2mf+LMu9a04FX/d4wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/
 EoucejoZ5SH49ksmVAmKOLktOaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+S
 PhHar7TPKjFz0G3DPNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89
 MXfQXZ3qt1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
 LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWjmoACGwME
 CwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNzuyOVCskwfUZPla6Z
 pd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp0x0HfuhcYfAYPR46XHTvjaJE
 v99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuROxdK8G+YHccJY8PvWSq2K2yiae2KGiAv
 1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhP
 eP3IdpfWc8cyRLXF06Rk46YMYCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcT
 UwgnYlFRk2FLq0QeKEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9
 Egr/Wmu3MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
 f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEMAKiQiZa3
 yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ3DbVf+en3/FvdVZg
 2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTmetSG5/52AjtmPFtlXAk0NmLv
 fJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0s3109sJeXT5ImVdphFs9cvyZyBT9t1Pb
 Rowv58EgV0zE4hbAeVkULAbxFV5b/ExTjjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKb
 Yu6NCfiHfEyB3Xyg9hfdrRgjMRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ov
 XoK4jm+Py0FiUGUaA6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/
 eVtR2Q1wZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
 IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWjmoACGwwA
 CgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiVoUiHYN5QwhnbZnsa
 JDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764QxyX6rld2f2RcWkDuBHun55ZWXj
 by8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk/dS0XTOQi2wVUb17sW/+ybCEokdVacZG
 zOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fuoGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+
 lOWSvdNHgoEkWR0RXBPQjnGmLKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/Off
 O485NOTKwGOxyWb006cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR
 8ULR9nX0LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
 x9fhaZEsniw8/bYgC3igkk5YJiOa
In-Reply-To: <93cbe99f-a75b-4837-be6b-d6621d9f4d6d@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------4w7Goen218LlNNbUXxqrJvbN"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779294957153
X-purgate-ID: tlsNG-c201ff/1779294960-DB36C443-A5A53228/0/0
X-purgate-type: clean
X-purgate-size: 6634

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------4w7Goen218LlNNbUXxqrJvbN
Content-Type: multipart/mixed; boundary="------------cMeW7KPLeUdDfCaVwf2deibA";
 protected-headers="v1"
From: Teddy Astie <teddy.astie@vates.tech>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Message-ID: <7b911ff5-d5f6-44a7-a1c9-a04fd991f4a7@vates.tech>
Subject: Re: [PATCH] pv32: Fix bogus cr2 on fault in emulation gate
References: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
 <93cbe99f-a75b-4837-be6b-d6621d9f4d6d@citrix.com>
In-Reply-To: <93cbe99f-a75b-4837-be6b-d6621d9f4d6d@citrix.com>

--------------cMeW7KPLeUdDfCaVwf2deibA
Content-Type: multipart/mixed; boundary="------------QA4pDIpOrMN7w4WN8J0o9Nj8"

--------------QA4pDIpOrMN7w4WN8J0o9Nj8
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

TGUgMjAvMDUvMjAyNiDDoCAxODoyNywgQW5kcmV3IENvb3BlciBhIMOpY3JpdMKgOg0KPiBP
biAyMC8wNS8yMDI2IDQ6NTEgcG0sIFRlZGR5IEFzdGllIHdyb3RlOg0KPj4gX197cHV0LGdl
dH1fZ3Vlc3QgcmV0dXJucyAtRUZBVUxUIG9uIGFjY2VzcyBmYXVsdHMgd2hpY2ggY2F1c2Vz
DQo+PiB0aGUgaW5qZWN0ZWQgY3IyIHRvIGJlIG9mZiBieSAxNCBieXRlcyAoYXMgRUZBVUxU
IGlzIDE0KSB3aGljaCBpcw0KPj4gaW5jb3JyZWN0Lg0KPj4NCj4+IEZpeCB0aGUgY29tcHV0
YXRpb24gYnkgcmVseWluZyBvbiBjb3B5X3tmcm9tLHRvfV9ndWVzdF9wdiB3aGljaA0KPj4g
cmVwb3J0cyB0aGUgbnVtYmVyIG9mIHJlbWFpbmluZyBieXRlcyBpbnN0ZWFkIG9mIGEgbmVn
YXRpdmUgZXJybm8sDQo+PiBzdWNoIHRoYXQgd2UgY2FuIGNvbXB1dGUgdGhlIG9mZnNldCBw
cm9wZXJseS4NCj4+DQo+PiBGaXhlczogNzBhZDU3MGIyNzk5ICgieDg2LzY0OiBwYXJhdmly
dCAzMi1vbi02NCBjYWxsIGdhdGUgc3VwcG9ydCIpDQo+PiBTaWduZWQtb2ZmLWJ5OiBUZWRk
eSBBc3RpZSA8dGVkZHkuYXN0aWVAdmF0ZXMudGVjaD4NCj4gDQo+IEdpdmVuIGl0IHdhcyBf
XypfZ3Vlc3QoKSBiZWZvcmUsIEkgdGhpbmsgd2UgY2FuIHVzZSB0aGUNCj4gX19jb3B5Xypf
Z3Vlc3RfcHYoKSB2YXJpYW50cy4NCj4gDQo+IEkgY2FuIGZpeCBvbiBjb21taXQgaWYgeW91
J3JlIGhhcHB5P8KgIFJldmlld2VkLWJ5OiBBbmRyZXcgQ29vcGVyDQo+IDxhbmRyZXcuY29v
cGVyM0BjaXRyaXguY29tPg0KPiANCg0KTG9va3MgZ29vZCB0byBtZS4NCg0KPiBKYW4sIHRo
aXMgd2FudHMgY29tbWl0dGluZyBhaGVhZCBvZiB5b3VyIE1JU1JBIGNoYW5nZSwgYXMgaXQg
bmVlZHMNCj4gYmFja3BvcnRpbmcuDQo+IA0KPiBTdHJpY3RseSBzcGVha2luZywgZ2F0ZSBl
bXVsYXRpb24gaXMgYWxsIFBWIHJpZ2h0IG5vdy7CoCBJdCBkb2VzIHdhbnQNCj4gbW92aW5n
IGJlaGluZCBDT05GSUdfUFYzMi4NCj4gDQoNClRoaXMgZmlsZSBpcyBhbHJlYWR5IGdhdGVk
IGJlaGluZCBDT05GSUdfUFYzMiwgc28gSSB0aGluayBpdCdzIGFscmVhZHkgDQp0aGUgY2Fz
ZS4NCg0KPiBBbHNvLCB3aXRoIHRoZXNlIHR3byBjYWxsZXJzIGRyb3BwZWQsIGFsbCByZW1h
aW5pbmcgdXNlcnMgb2YNCj4gX197Z2V0LHB1dH1fZ3Vlc3QoKSBvbmx5IGNhcmUgYWJvdXQg
c3VjY2Vzcy9mYWlsdXJlIHJhdGhlciB0aGFuIHRoZQ0KPiBwcmVjaXNlIHZhbHVlLCBzbyB0
aGVyZSBpcyBwcm9iYWJseSBzb21lIGNsZWFudXAgd2hpY2ggY2FuIGJlIGRvbmUuDQo+IA0K
PiB+QW5kcmV3DQoNClRlZGR5DQo=
--------------QA4pDIpOrMN7w4WN8J0o9Nj8
Content-Type: application/pgp-keys; name="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Disposition: attachment; filename="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7L
TBVHV/XOZw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJ
T4ny+OGntnJntUoRKRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJA
WicutjkkUgd28Bh6HV9EIumHtCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO
8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaTVqMdqul07o72m3eA2mf+LMu9a04FX/d4
wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/EoucejoZ5SH49ksmVAmKOLkt
OaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+SPhHar7TPKjFz0G3D
PNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89MXfQXZ3q
t1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWj
moACGwMECwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNz
uyOVCskwfUZPla6Zpd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp
0x0HfuhcYfAYPR46XHTvjaJEv99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuR
OxdK8G+YHccJY8PvWSq2K2yiae2KGiAv1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50
wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhPeP3IdpfWc8cyRLXF06Rk46YM
YCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcTUwgnYlFRk2FLq0Qe
KEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9Egr/Wmu3
MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEM
AKiQiZa3yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ
3DbVf+en3/FvdVZg2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTm
etSG5/52AjtmPFtlXAk0NmLvfJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0
s3109sJeXT5ImVdphFs9cvyZyBT9t1PbRowv58EgV0zE4hbAeVkULAbxFV5b/ExT
jjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKbYu6NCfiHfEyB3Xyg9hfdrRgj
MRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ovXoK4jm+Py0FiUGUa
A6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/eVtR2Q1w
ZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWj
moACGwwACgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiV
oUiHYN5QwhnbZnsaJDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764Qxy
X6rld2f2RcWkDuBHun55ZWXjby8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk
/dS0XTOQi2wVUb17sW/+ybCEokdVacZGzOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fu
oGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+lOWSvdNHgoEkWR0RXBPQjnGm
LKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/OffO485NOTKwGOxyWb0
06cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR8ULR9nX0
LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
x9fhaZEsniw8/bYgC3igkk5YJiOa
=3DlUIA
-----END PGP PUBLIC KEY BLOCK-----

--------------QA4pDIpOrMN7w4WN8J0o9Nj8--

--------------cMeW7KPLeUdDfCaVwf2deibA--

--------------4w7Goen218LlNNbUXxqrJvbN
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmoN4uwFAwAAAAAACgkQZg+p0QLLz9D8
WAv/SUrqJo8Ovj0YUEmNc/JN4qacpwCEL0RCWRcWf8u8S/OSF4UY+U8WqKX8VwAyNavnypLN1bUq
Rtx/53nm1XUEahMKcvnkshrfJebMWLhZx1ubPXu5FP71x3YmFj6zCLoiaRVbZSdeC+AmRsPoJxIv
ffgzCq77CSc8Eh3147HyiSIE1miza5xZgl69qfIymu9pGPpDvUtc0yzfl14EiLkpzlBynvlEnwCQ
lWnuI3rYzBt6Dm7Ax7Jtc6Fbwu34V3EbDljy9Y2bxzqyvaOqApsAW03WoctyjVAl5esXk9kN08ee
IYqHdxQ6bk/1Z9lgv/BEwIficp/r5/bkI2zW2MNfMyBVS4B2LIWSTqqLE1BULhc/rayh4ClkRaQP
R2uEKByVI86NpdCUstvfQuLvRexp51x91DIS77T0irKw/bDbOcKGzPDAsqTVuj0m7Xst1nslxh7G
j6vNudNR0HixcpgKcvwWNU47bqxOqx5DsTGVSRx9r0rDV8zmxa2l01apaNf1
=0IeH
-----END PGP SIGNATURE-----

--------------4w7Goen218LlNNbUXxqrJvbN--


From xen-devel-bounces@lists.xenproject.org Wed May 20 16:47:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 16:47:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314192.1584179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPk55-0001hV-Mq; Wed, 20 May 2026 16:47:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314192.1584179; Wed, 20 May 2026 16:47:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPk55-0001hO-KD; Wed, 20 May 2026 16:47:39 +0000
Received: by outflank-mailman (input) for mailman id 1314192;
 Wed, 20 May 2026 16:47:38 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wPk54-0001f9-96
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 16:47:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPk53-00HNPv-Ba
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 18:47:37 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0de58c-2eae-0a2a0a5409dd-0a2a4502b516-46
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:47:37 +0200
Received: from [40.93.195.54]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0de5a7-af86-0a2a45020019-285dc3363a62-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:47:36 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN8PR03MB5140.namprd03.prod.outlook.com (2603:10b6:408:7d::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.16; Wed, 20 May
 2026 16:47:32 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026
 16:47:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CkEyi++n/AIFO7IZZEc6TDBszikcGoumCheKCKWOlD+Ng7qjDwzplSfcNQKFbF2CkjT0r0EGRPyAgl25VAl25ehrmMfGjjlNeE6A4g2DutS1jMpWbDIB8yYiTN8xNLtWAlykmNFkpGGxfwhzD5vfnRJWk0WQprHj4whpEKdILwWGimP6SquIry4iqa2yTeIYysy/NkITgm+fmiGOa5pxtahwVuumOUD8MHRjqaodGRTz0+GiS6Dag3Qmlj7iSGodNuuc6+91ui9034+ggVp78QxFNGMBzD5YQ0gfM2tWWAez4IeoLkVIKGryEmhdUdA/qHylg9G5vqnI/xVtqLZ09Q==
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=sMa9x7NfrTIUVNyMKtnxAFkNC6/MdmDNZLFaao9cMzc=;
 b=iarGuU2jfDoQ5vshahQDMCW07K22c6SJiGhokn50lb8CdlOhzXFzcLpKkPJShZRZKQCSBNRyY/VGfnXpT2exMiFiMFA7goOdE2nZBwZHqlSQlyA6uzvvy05aAuQx666vVRPD2ySPVMkvciOFqeJmKfoQX8penkF7d/tFj9hGa9LbHjCM6QcjggpuCnUhD3vLspNQ5xFQ9aMR0KcXviq3ah8seGr045H/0aXVKHRxkg2QGmUP/rjhbMSpFyXR68XKv4gdbCgLBqAJlS7YnsBr0rEoxvKY6ZP3fYvi5AaY7mxyv9v4K+IiXIpndWq8fjAwcJKpGwliSJy0kAGF7puQ+w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sMa9x7NfrTIUVNyMKtnxAFkNC6/MdmDNZLFaao9cMzc=;
 b=S955qACz/HQKgHyuWGDOGgXKn04gc1qeA/OrRxamjJRHM5SWZX1PSyNmtPT2gHNGhZv+5R8eYMtTRYWTwmcOkjVVhZ57DASP3N2G9+vfAFhzjuVC/1brK2C/2TV/TbQqbqNxELso7Js37/UKkfuLqmicbPtj1CQTuZERxApb8Pw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e239c97c-b759-415f-92d1-313d856820fe@citrix.com>
Date: Wed, 20 May 2026 17:47:28 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Subject: Re: [RFC v1 6/7] x86/svm: Use the emulator path for VMEXIT_HLT
To: Jan Beulich <jbeulich@suse.com>, Teddy Astie <teddy.astie@vates.tech>,
 Ross Lagerwall <ross.lagerwall@citrix.com>
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
 <20260518131404.3716969-7-ross.lagerwall@citrix.com>
 <1779210132.8631fc262581453bbf619ec5b2062170.19e41301cfd000f373@vates.tech>
 <d636c3f9-6faf-4fb0-8b72-617f70dc1ef9@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <d636c3f9-6faf-4fb0-8b72-617f70dc1ef9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0261.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:37c::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BN8PR03MB5140:EE_
X-MS-Office365-Filtering-Correlation-Id: a4137573-d4e9-4e2e-55a8-08deb68f7cb7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|11063799006|5023799004|3023799007|4143699003|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	TZiiRP0zvt7RhZn51jqNgubKgdqHofAYcCXVMuHxnocSESw3nCfvAY39ARBvYoY8eKIqalUs6/tYRFXyrLB02WzHzrYKXdYu5/6KrdF7y7/GzRdU/ifiZj8STtrSPweUwAP8Go8RGYl6JNPJ7mACvlhjHWmdGn8M29e0ja7cu1deTy9vagy/y8zUbnVX3tYWrlO+iLaLPHLGNfEZUp4lvS0HzPl5s8UtM7lfihgR36ELzVJGBkXjdQJZyXSKHYthMRM96zT3uTC5Tf8Dmr9P4J6T29r5+W7+G/HUXiOo5W/I2r2g+QU2rLeMUncZ3PJf6X2ljo5Ochecf0WSNBc9l2tUlkQzfDRbQlDHzolSHo731DcunqJ+6r+aREsLZlcnQuYKZg54sYEpyWEyCxzi7EKrDRYEzncMLahbM0aBALEuCx4Plp6REAGpaFuhHGBrLA63bJqvjVfDErem62LGrzQLnu3r6beqj6rorV4RFWi99KQtTlHcyIvqLU14mXECSC5gIa41xLp58WSSxiVd9vOIutUSkmaoEc4dDNGFvGdSShYWjgd97iZqubKgzLVuZbPGXgCE23M2M6n5Duv+bwcRFmcS42n3tk9kvplvwU1kxjniUVoKp73qOr7SC7mCiSlLsBRRjuBjSeySFfa5VSssAyEq2KklU4vNTlLjIVwdwtOYD4lftkWWK8ewCJqb
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(11063799006)(5023799004)(3023799007)(4143699003)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aXJleDRJN01lVnkza3pZK2pkK3NYajRqUWJrdVYyV2pMRGdvZk1VSTBxYW8x?=
 =?utf-8?B?YmYxc0QzYVpqZ0FHK21CYXR3RGJoZTUvN1JiamNxSkVlYUlzNkNuSUo4bDFx?=
 =?utf-8?B?bmExWlg0T0ovY0p3VHJBZTJ3RzYrdXd1U0FxTWMzOHFsVTVyRndzdm5RQlgy?=
 =?utf-8?B?YU9IODVuOW9TYkcydVJRMnUraHB3eE5GS0NVQUlLWVNBQXBQVzV1S3VCQXR3?=
 =?utf-8?B?WDJMK2pYc3FDUW4zNXJWSmNTVUgwdFFvMjRYMUwrcXpBc0lNNmZoY0lkeEZy?=
 =?utf-8?B?RTB0OWh0WlFaSXV4eUhqdTVLVFJXRU5QcjQycFoxQUxlakxrVk9lV2F5STJm?=
 =?utf-8?B?T1hZS1NMRXlRNzBWQVBSNVpldXhFeGNIUWlCaVptZVUzSGczL3R0UURpQnpY?=
 =?utf-8?B?T0pRMUFiK0YwcnBkNjVxUGtSL0ZVQTBrRC9USFoyeVczVm51QWtSeEdlNjE1?=
 =?utf-8?B?b3FIKytrTlBiaDNaNmY2Lzl3Qzk2MUZ6SGkybkJ3UFhPcXcyaHcwN1Bwb09m?=
 =?utf-8?B?NUd4SDhtTkp2R2tkNVJBNXN6S0JWNGVjam16TXNjR0w4UEVRNFJUNisxKzJD?=
 =?utf-8?B?Q0JRUGJJV2ZIcmREc2RSdmxNZDVSNm5CUytnSGZtUHVDaktuYmFHVDR0M1dq?=
 =?utf-8?B?WTFaMmhDc1lvektyZk94Z2hPWjJhRW9sd2pnMklhQTZKTHBNSEJycXJ3blJZ?=
 =?utf-8?B?REwxYnAxcnE5U0dDYU5WOXJxTmZZdFFzSFk4Nmc2Z0pENjdDMmxPZm1MT1RF?=
 =?utf-8?B?cHNhR1dDeHd3NHM3KythZXQvTURIWVFXaDFhem1Bd001andsS2RyQWVJZGho?=
 =?utf-8?B?aHpqWTE2MXJhVjRGcTNBRjMrbjhXNWxaSW1GWlBNeVYvODM5eTViejVBQ29m?=
 =?utf-8?B?TzlXZ01uYk95ZHc2MXRwUXE3aG5FT3V5Wmxmcm54dC9FNFZkWFg2UStrWVpn?=
 =?utf-8?B?OGp1QlNwRmdZZGxjQlE3YWx2ZWFONCszM2t4TCt6ZUxHWElBNlU3Sm5TUjdm?=
 =?utf-8?B?cWcxUHpVNUtMaDhDck5od3RHcUdQMERIOWhBYWc3ZDgvRGFSM0xpdDhyalJ4?=
 =?utf-8?B?bHFjVGVFMXJMYVFUYml6b0l6bmZwODRsc3k1WGhBVDVnU1VPeVIyK3VSV2VJ?=
 =?utf-8?B?aDZxQ00wTlA3amxVMU5GZExkMkFLTnQwMkdRdFRKZjRRc3JaTkVmaVd5aENv?=
 =?utf-8?B?dHpRdmVuYVMzVmZsdjJlWWp6TXpEYkMwcVBSdVNBZ2FNNjJqUE96bVpYbmwz?=
 =?utf-8?B?SWs0S0U2M2R6UHJhUEIvanBRbDdzN3RVT1F0OGJXekJrVTJMdDhnWkR4YnVT?=
 =?utf-8?B?UEpEb2pBNG5jWHR0QnpoKzNiaGhpVWl3UFQvTHFPRkV5NFkrV3Y1WWZsYldB?=
 =?utf-8?B?MFFNenNSNENmSS8yeCtuR0FCV2dmODM1UDZEYkI1T1lJNldhNTNrdS9jQkxv?=
 =?utf-8?B?MHkzN2VRSVIrTndtUTVxWlZiVkZEZkdwMGZiZ1ZlTjBqd2psbCtWeElYRU1U?=
 =?utf-8?B?d0hCQ0pjdnNNejZzandHdUdnd3ZMTlZNd3RaOG41ZFg3Y1V0L245SlJUUDQx?=
 =?utf-8?B?ZU50NC9YUWZ3WnZFRERWRG0yRW5hSFQ4cm01dnhUeU1ZcE9PR3lsREpENWhW?=
 =?utf-8?B?MnVNV3pNamJLTWJLclFFRFJBRUlkMTB0VTByRjBPM1ZDZ1U3U3JDUTQwUlJ1?=
 =?utf-8?B?STJ0K0pZWkNSVGhGdkJCTTdjRGNiUUdYMW8veVA3anE3SjZBYThybE1GZXk4?=
 =?utf-8?B?YUg2c2tFUmcvc1ZRWU5FbDJtTTYwZkxUcTZSOTBZVWFuVU9Ja1MyTzl3Skl0?=
 =?utf-8?B?dFdLR2s5RlN4NFZTcU1xZzVVZVdOMEF1TEIrdEQydkxrSkQ2aVRCQndTaWpn?=
 =?utf-8?B?MGo2WTltWmZPN3NWYTVBZS85ckJIQ3pNb0E3ZStSSEVZMU5lSDVCVEduUkds?=
 =?utf-8?B?WitOMkIwU0svS2hJQWpSYnZHYUs1Z0ZvYnVrd2t1aDRVZlhsVTl6TzQ5L3dT?=
 =?utf-8?B?U0tVRTl3d01tMDg4dWRWNkxxa2lOTEJSVmM1OEVPSGtoN213UTBsTGFWMTJx?=
 =?utf-8?B?cHg0bHV2YWRBRkg0cHBGLzlCRGh3ZENQSUFOL0VObURnckNpZWFBRE1iTlJ3?=
 =?utf-8?B?aUJwa2w2KzBqTm5ob29POGpLekx0amJCUHdpRjlVd0hqWkU0cHRUZE9uS1pY?=
 =?utf-8?B?cWd0djl0Q3V4QVg0anhzQklUZVpCQkhMMkNEY1piNWp1VUg2a214MzlBRG1h?=
 =?utf-8?B?TTBDc05Ia1FueENKOVpvV2s5dnVnZnF6blYxRjYycUVXZzZIdTZvMUxrRTk2?=
 =?utf-8?B?OW10b2dQVVRkNjlQZjM5OWVlZWJwLzRJWnNJSmxTdnExOWQ4RkhZYlFmSnk0?=
 =?utf-8?Q?z2XAelGnaPkIblXI=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a4137573-d4e9-4e2e-55a8-08deb68f7cb7
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 16:47:32.4010
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QNXxD5Eh5YUDqH1FxC3YYA1wdr3ZC6r3Yy/yh0xzAVJyhWKK3YhYjzVUSnhBxzHspatViL5daIw/bhX/snChCGM+4+Tom4zKgsn8fA2Z3Hs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB5140
X-purgate-ID: tlsNG-720697/1779295657-AA175161-76859602/0/0
X-purgate-type: clean
X-purgate-size: 2091

On 20/05/2026 7:28 am, Jan Beulich wrote:
> On 19.05.2026 19:02, Teddy Astie wrote:
>> Le 18/05/2026 à 15:14, Ross Lagerwall a écrit :
>>> @@ -2496,6 +2491,7 @@ void asmlinkage svm_vmexit_handler(void)
>>>       vintr_t intr;
>>>       bool vcpu_guestmode = false;
>>>       struct vlapic *vlapic = vcpu_vlapic(v);
>>> +    struct hvm_emulate_ctxt ctxt;
>>>   
>>>       regs->rax = vmcb->rax;
>>>       regs->rip = vmcb->rip;
>>> @@ -2840,7 +2836,9 @@ void asmlinkage svm_vmexit_handler(void)
>>>       }
>>>   
>>>       case VMEXIT_HLT:
>>> -        svm_vmexit_do_hlt(vmcb, regs);
>>> +        hvm_emulate_init_once(&ctxt, NULL, NULL, regs);
>>> +        ctxt.insn = INSTR_HLT;
>>> +        svm_emulate_one(&ctxt);
>>>           break;
>>
>> In this case, most of the logic is hidden behind svm_emulate_one(); 
>> however, SEV-ES changes some aspects of the VMEXIT_HLT behavior (this is 
>> the same for e.g VMEXIT_PAUSE).
>>
>> With SEV-ES, we can't access the CPU registers anymore but hlt can still 
>> be intercepted (it's a "Automatic Exit (AE)"), in this case, the CPU 
>> increases RIP itself (this is documented in SEV-ES section of the APM), 
>> and we just have to emulate the HLT behavior. How would that specific 
>> behavior fit in this new design ?
>>
>> We can skip increasing rip in this specific case, but it's now common code.
> I guess we may need to somehow reflect fault vs trap semantics in the
> context, for RIP updating to only occur in the former case.

Indeed.  There are APIC acceleration exits which have trap semantics
after the write into the APIC page has completed.

For these, we need to drive the LAPIC machinery, not move RIP, but still
deal with things like singlestep.

I'm not even sure what the correct behaviour for blocked-by-sti/movss
would be here but I suspect they can be set and would want dropping
too.  The point of these VMEXIT is to let the hypervisor take an action
that's still logically part of executing the instruction, and that
completes prior to the shadows dropping.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 20 16:48:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 16:48:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314198.1584187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPk5o-0002Ic-Uo; Wed, 20 May 2026 16:48:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314198.1584187; Wed, 20 May 2026 16:48:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPk5o-0002IV-SC; Wed, 20 May 2026 16:48:24 +0000
Received: by outflank-mailman (input) for mailman id 1314198;
 Wed, 20 May 2026 16:48:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4649c100000f373@swg.vates.tech>)
 id 1wPk5n-0002IN-Mh
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 16:48:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPk5n-004lLT-2q
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 18:48:23 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4649c100000f373@swg.vates.tech>)
 id 6a0de5d1-2eae-0a2a0a5409dd-0a2a45029ea0-26
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:48:23 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4649c100000f373@swg.vates.tech>)
 id 6a0de5d6-af86-0a2a45020019-b9ff1c2284e7-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 18:48:22 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e4649c100000f373.003 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 20 May 2026 16:48:19 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id 861B786869;
 Wed, 20 May 2026 18:48:18 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=0lPD8imD0MTFM6B7ln4P8KJHd1hvhY1HV4F74iKPNw4=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=Bcz+BCtjowwE5cciQLYoxgMGjYMBQ5bTlgRlmQKMfvQGsI3P5lcwaEYK6LYE31ZAmZFmnJ98m
 c9ofrxR/5M8h/csh9iSLIhi+Hbu01x48uIPl3zXlLOmkhnF1j72bdH00Sy9Y4eDKZAyTdInZjA8
 mn0uFn9/CfikOMwo0u/siBT2uMm18ZfRy5kqnXTR2qjHFLsK4GHxwhMrzbdNEnOsb9TYO2DL+MI
 aOEXoEFdL3UByuNa1gHIzjG+e/roIBR/y8Y9/5ccCQffIRlZw0xYExEkvybM7jWB5Png2p2Q8Ru
 qll4aiaW7bAn9kKqGsK/gX/s7DsJ+s1WwxyF3tbVctuw==
X-Zone-Loop: 56faee6bf07cb9074ac95b6f37237138c7502bab23b9
x-campaign-type: default
x-transaction-id: a4fb4eb0-81ec-4e7c-82c9-5e477d569969
x-swg-uid: 01-0ca19352-5961-4612-a6fc-931d8211e420
X-Mailer: Sweego
Message-ID:
 <1779295699.8631fc262581453bbf619ec5b2062170.19e4649c100000f373@vates.tech>
x-swg-bid: 1779295699.8631fc262581453bbf619ec5b2062170.19e4649c100000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Wed, 20 May 2026 18:48:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] pv32: Fix bogus cr2 on fault in emulation gate
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
 <0e23078f-30e0-4077-be1e-365a265603de@citrix.com>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
Autocrypt: addr=teddy.astie@vates.tech; keydata=
 xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7LTBVHV/XO
 Zw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJT4ny+OGntnJntUoR
 KRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJAWicutjkkUgd28Bh6HV9EIumH
 tCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaT
 VqMdqul07o72m3eA2mf+LMu9a04FX/d4wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/
 EoucejoZ5SH49ksmVAmKOLktOaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+S
 PhHar7TPKjFz0G3DPNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89
 MXfQXZ3qt1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
 LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWjmoACGwME
 CwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNzuyOVCskwfUZPla6Z
 pd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp0x0HfuhcYfAYPR46XHTvjaJE
 v99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuROxdK8G+YHccJY8PvWSq2K2yiae2KGiAv
 1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhP
 eP3IdpfWc8cyRLXF06Rk46YMYCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcT
 UwgnYlFRk2FLq0QeKEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9
 Egr/Wmu3MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
 f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEMAKiQiZa3
 yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ3DbVf+en3/FvdVZg
 2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTmetSG5/52AjtmPFtlXAk0NmLv
 fJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0s3109sJeXT5ImVdphFs9cvyZyBT9t1Pb
 Rowv58EgV0zE4hbAeVkULAbxFV5b/ExTjjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKb
 Yu6NCfiHfEyB3Xyg9hfdrRgjMRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ov
 XoK4jm+Py0FiUGUaA6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/
 eVtR2Q1wZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
 IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWjmoACGwwA
 CgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiVoUiHYN5QwhnbZnsa
 JDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764QxyX6rld2f2RcWkDuBHun55ZWXj
 by8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk/dS0XTOQi2wVUb17sW/+ybCEokdVacZG
 zOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fuoGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+
 lOWSvdNHgoEkWR0RXBPQjnGmLKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/Off
 O485NOTKwGOxyWb006cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR
 8ULR9nX0LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
 x9fhaZEsniw8/bYgC3igkk5YJiOa
In-Reply-To: <0e23078f-30e0-4077-be1e-365a265603de@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------dop8SB7Y1OivNs6eaVJIbuNC"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779295698639
X-purgate-ID: tlsNG-720697/1779295703-8336C161-2A7F1FC1/0/0
X-purgate-type: clean
X-purgate-size: 8298

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------dop8SB7Y1OivNs6eaVJIbuNC
Content-Type: multipart/mixed; boundary="------------v7AnXBKYY1bXDuHiyp050iDT";
 protected-headers="v1"
From: Teddy Astie <teddy.astie@vates.tech>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Message-ID: <0ee50b7d-fe74-4b60-ae03-d8214d163153@vates.tech>
Subject: Re: [PATCH] pv32: Fix bogus cr2 on fault in emulation gate
References: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
 <0e23078f-30e0-4077-be1e-365a265603de@citrix.com>
In-Reply-To: <0e23078f-30e0-4077-be1e-365a265603de@citrix.com>

--------------v7AnXBKYY1bXDuHiyp050iDT
Content-Type: multipart/mixed; boundary="------------YNbAUR7bWMD3CCa835wEg3k3"

--------------YNbAUR7bWMD3CCa835wEg3k3
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

TGUgMjAvMDUvMjAyNiDDoCAxODozNCwgQW5kcmV3IENvb3BlciBhIMOpY3JpdMKgOg0KPiBP
biAyMC8wNS8yMDI2IDQ6NTEgcG0sIFRlZGR5IEFzdGllIHdyb3RlOg0KPj4gX197cHV0LGdl
dH1fZ3Vlc3QgcmV0dXJucyAtRUZBVUxUIG9uIGFjY2VzcyBmYXVsdHMgd2hpY2ggY2F1c2Vz
DQo+PiB0aGUgaW5qZWN0ZWQgY3IyIHRvIGJlIG9mZiBieSAxNCBieXRlcyAoYXMgRUZBVUxU
IGlzIDE0KSB3aGljaCBpcw0KPj4gaW5jb3JyZWN0Lg0KPj4NCj4+IEZpeCB0aGUgY29tcHV0
YXRpb24gYnkgcmVseWluZyBvbiBjb3B5X3tmcm9tLHRvfV9ndWVzdF9wdiB3aGljaA0KPj4g
cmVwb3J0cyB0aGUgbnVtYmVyIG9mIHJlbWFpbmluZyBieXRlcyBpbnN0ZWFkIG9mIGEgbmVn
YXRpdmUgZXJybm8sDQo+PiBzdWNoIHRoYXQgd2UgY2FuIGNvbXB1dGUgdGhlIG9mZnNldCBw
cm9wZXJseS4NCj4+DQo+PiBGaXhlczogNzBhZDU3MGIyNzk5ICgieDg2LzY0OiBwYXJhdmly
dCAzMi1vbi02NCBjYWxsIGdhdGUgc3VwcG9ydCIpDQo+PiBTaWduZWQtb2ZmLWJ5OiBUZWRk
eSBBc3RpZSA8dGVkZHkuYXN0aWVAdmF0ZXMudGVjaD4NCj4+IC0tLQ0KPj4gICB4ZW4vYXJj
aC94ODYvcHYvZW11bC1nYXRlLW9wLmMgfCA1ICsrKy0tDQo+PiAgIDEgZmlsZSBjaGFuZ2Vk
LCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9wdi9lbXVsLWdhdGUtb3AuYyBiL3hlbi9hcmNoL3g4Ni9wdi9lbXVs
LWdhdGUtb3AuYw0KPj4gaW5kZXggYzJjNjk5ZmJmZi4uY2FjYzE3MTExNSAxMDA2NDQNCj4+
IC0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLWdhdGUtb3AuYw0KPj4gKysrIGIveGVuL2Fy
Y2gveDg2L3B2L2VtdWwtZ2F0ZS1vcC5jDQo+PiBAQCAtMjg5LDkgKzI4OSwxMCBAQCB2b2lk
IHB2X2VtdWxhdGVfZ2F0ZV9vcChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykNCj4+ICAg
ICAgICAgICBpbnQgcmM7DQo+PiAgICNkZWZpbmUgcHVzaChpdGVtKSBkbyBcDQo+PiAgICAg
ICAgICAgeyBcDQo+PiArICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fdmFsdWUgPSBpdGVt
OyBcDQo+PiAgICAgICAgICAgICAgIC0tc3RrcDsgXA0KPj4gICAgICAgICAgICAgICBlc3Ag
LT0gNDsgXA0KPj4gLSAgICAgICAgICAgIHJjID0gX19wdXRfZ3Vlc3QoaXRlbSwgc3RrcCk7
IFwNCj4+ICsgICAgICAgICAgICByYyA9IGNvcHlfdG9fZ3Vlc3RfcHYoc3RrcCwgJl9fdmFs
dWUsIHNpemVvZihfX3ZhbHVlKSk7IFwNCj4gDQo+IE9oLCB0aGlzIHByb2JhYmx5IHZpb2xh
dGVzIE1JU1JBLCBidXQgeW91IGRvbid0IG5lZWQgdG8gdXNlIGEgc2VwYXJhdGUNCj4gdmFy
aWFibGUgYmVjYXVzZSBzaXplb2YoKSBoYXMgbm8gc2lkZSBlZmZlY3RzLg0KPiANCj4gR2l2
ZW4gdGhhdCB0aGUgZXhwcmVzc2lvbiBpcyBub3cgJml0ZW0sIEkgdGhpbmsgaXQgbmVlZHMg
dG8gYmUgJihpdGVtKS4NCj4gDQoNCkkgdHJpZWQgc29tZXRoaW5nIGxpa2UgdGhhdCwgYnV0
IGl0IGxvb2tlZCBhIGJpdCB3ZWlyZCBhbmQgY2xhbmcgd2Fzbid0IA0KaGFwcHkgKGF0IGxl
YXN0IGluIGxhbmd1YWdlIHNlcnZlcikgYmVjYXVzZSBvZiB0aGUgJih4ICsgeSkuDQoNCldl
IGFsc28gbmVlZCB0byBlbnN1cmUgdGhhdCB3ZSdyZSBhY3R1YWxseSBjb3B5aW5nIDMyLWJp
dHMgc2NhbGFycyAoYW5kIA0Kbm90IDE2LWJpdHMgb3IgNjQtYml0cyBvbmVzKSBsaWtlIHRo
ZSBwcmV2aW91cyBiZWhhdmlvci4NCg0KVGhhdCBkaWZmIHNlZW1zIHRvIHdvcmsgdGhvdWdo
DQoNCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZW11bC1nYXRlLW9wLmMgYi94ZW4v
YXJjaC94ODYvcHYvZW11bC1nYXRlLW9wLmMNCmluZGV4IGNhY2MxNzExMTUuLmI3MmEzMDU4
ZGQgMTAwNjQ0DQotLS0gYS94ZW4vYXJjaC94ODYvcHYvZW11bC1nYXRlLW9wLmMNCisrKyBi
L3hlbi9hcmNoL3g4Ni9wdi9lbXVsLWdhdGUtb3AuYw0KQEAgLTI4OSwxMCArMjg5LDkgQEAg
dm9pZCBwdl9lbXVsYXRlX2dhdGVfb3Aoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQog
ICAgICAgICAgaW50IHJjOw0KICAjZGVmaW5lIHB1c2goaXRlbSkgZG8gXA0KICAgICAgICAg
IHsgXA0KLSAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX3ZhbHVlID0gaXRlbTsgXA0KICAg
ICAgICAgICAgICAtLXN0a3A7IFwNCiAgICAgICAgICAgICAgZXNwIC09IDQ7IFwNCi0gICAg
ICAgICAgICByYyA9IGNvcHlfdG9fZ3Vlc3RfcHYoc3RrcCwgJl9fdmFsdWUsIHNpemVvZihf
X3ZhbHVlKSk7IFwNCisgICAgICAgICAgICByYyA9IGNvcHlfdG9fZ3Vlc3RfcHYoc3RrcCwg
Jih1aW50MzJfdCkoaXRlbSksIA0Kc2l6ZW9mKHVpbnQzMl90KSk7IFwNCiAgICAgICAgICAg
ICAgaWYgKCByYyApIFwNCiAgICAgICAgICAgICAgeyBcDQogICAgICAgICAgICAgICAgICBw
dl9pbmplY3RfcGFnZV9mYXVsdChQRkVDX3dyaXRlX2FjY2VzcywgXA0KDQoNCj4gQ2FuIGFs
c28gYmUgZml4ZWQgb24gY29tbWl0Lg0KPiANCj4gfkFuZHJldw0KDQpUZWRkeQ0K
--------------YNbAUR7bWMD3CCa835wEg3k3
Content-Type: application/pgp-keys; name="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Disposition: attachment; filename="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7L
TBVHV/XOZw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJ
T4ny+OGntnJntUoRKRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJA
WicutjkkUgd28Bh6HV9EIumHtCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO
8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaTVqMdqul07o72m3eA2mf+LMu9a04FX/d4
wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/EoucejoZ5SH49ksmVAmKOLkt
OaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+SPhHar7TPKjFz0G3D
PNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89MXfQXZ3q
t1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWj
moACGwMECwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNz
uyOVCskwfUZPla6Zpd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp
0x0HfuhcYfAYPR46XHTvjaJEv99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuR
OxdK8G+YHccJY8PvWSq2K2yiae2KGiAv1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50
wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhPeP3IdpfWc8cyRLXF06Rk46YM
YCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcTUwgnYlFRk2FLq0Qe
KEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9Egr/Wmu3
MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEM
AKiQiZa3yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ
3DbVf+en3/FvdVZg2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTm
etSG5/52AjtmPFtlXAk0NmLvfJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0
s3109sJeXT5ImVdphFs9cvyZyBT9t1PbRowv58EgV0zE4hbAeVkULAbxFV5b/ExT
jjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKbYu6NCfiHfEyB3Xyg9hfdrRgj
MRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ovXoK4jm+Py0FiUGUa
A6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/eVtR2Q1w
ZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWj
moACGwwACgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiV
oUiHYN5QwhnbZnsaJDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764Qxy
X6rld2f2RcWkDuBHun55ZWXjby8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk
/dS0XTOQi2wVUb17sW/+ybCEokdVacZGzOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fu
oGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+lOWSvdNHgoEkWR0RXBPQjnGm
LKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/OffO485NOTKwGOxyWb0
06cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR8ULR9nX0
LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
x9fhaZEsniw8/bYgC3igkk5YJiOa
=3DlUIA
-----END PGP PUBLIC KEY BLOCK-----

--------------YNbAUR7bWMD3CCa835wEg3k3--

--------------v7AnXBKYY1bXDuHiyp050iDT--

--------------dop8SB7Y1OivNs6eaVJIbuNC
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmoN5dIFAwAAAAAACgkQZg+p0QLLz9CS
sAv/SDsTuwOts6kHLnde2LcTx9WqsJeKPh2bJ+W0hYHe5Jq9qSv8U/q6AqALkDKYlusuXZECK5yX
i88ER/g2/KBQkvXX/HD9xp9VjIXBBu5KZP7PhVbcLoupld865vCOXJls+kXCL/GqYAXqDm1+u1Qi
zWewpKv532W/rT55P6oSzAB/tvq41Sa6bsnlQlOYc2qwRD19QkiNCYodnGhLBDNN9PrJrkkorKk+
FKyXBfgXg2iWMjEjMqVQ1A+C6TDwHKr9QhkGCUbgnB4yaLRTc0CUJAp+tJGCK4o/r81Yi4pF9i9A
fk2XVa1CXFx2M8eSfg1c8KhvKujHvjCZxfMNq04Tt+rXifJX2oyrW9v+KVdN6I2yO8MRH4zcnIFI
ZhQrWA/OeY85uODV6+wCjXZJxgZiLdr9PXr82ZBDHQ1zImUSCi2Oiy18OpxFoQtBc878y3/YzHwm
ww+/Y7nmUlQ19z5jR7kGSEdGuUdevTTkWkWnrDVB5/d4yPI8/AJZkU6iL1vM
=0Y4A
-----END PGP SIGNATURE-----

--------------dop8SB7Y1OivNs6eaVJIbuNC--


From xen-devel-bounces@lists.xenproject.org Wed May 20 17:21:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 17:21:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314217.1584198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPkbp-0007yg-HI; Wed, 20 May 2026 17:21:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314217.1584198; Wed, 20 May 2026 17:21:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPkbp-0007yZ-Da; Wed, 20 May 2026 17:21:29 +0000
Received: by outflank-mailman (input) for mailman id 1314217;
 Wed, 20 May 2026 17:21:27 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wPkbn-0007yS-GC
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 17:21:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPkbm-00HSTV-I6
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 19:21:26 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0ded94-5cb7-0a2a0a5109dd-0a2a45059a88-2
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 19:21:26 +0200
Received: from [40.93.195.30]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0ded94-aaa8-0a2a45050019-285dc31eb4ce-4
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 19:21:26 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH8PR03MB8324.namprd03.prod.outlook.com (2603:10b6:610:2ba::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.16; Wed, 20 May
 2026 17:21:22 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026
 17:21:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FG+XGNbIKVXvKZmXzFbL2JZ7jfWZSOfYjA+flsZHq7FRpXtZFtyIEd6roa8Nb1QHut4mhbaF6Mfg/eyDlBIUMJZExYUaySNbQyauO/bU43s7RMJrdufrYYV6Fit0ZpC/q3Pw+YpwuG0Aj/RlQaCp6LTzp/G95GUpXsRwuLXOXUlHzfDi/ILlHLM8MJzRe/t5mkSBumuE0ptNXTLojBhl347ugyGlfADvB5Q1U4aj+2FC0rr/bdnkeK2yT1G1O8OKGjSOXQLrU6wI0KnQSv05UfkOZWU/1vNvp3lT3Nem93beR1mBoVnbmOtYlcCHZJmv5FNyCsv39Z1nsBhzQcbYew==
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=MJMYv+lFmDMeADUd2BTKbkLoCZoHH0E3Nr1XiM/5apo=;
 b=j+7YVF1AzQDs5SFFtqxMbPEmxIOETQrrzotaCxwlDi78GX5WeEoXHO5EOauko/gFSoNX9KwGYS/ICeKaJNxxRQwzEoO3/iimCDff1j8+Wr5QuWAzlKaeF8gro4mridzbjSrg9wqRqMtjsMsQF7cZa27mdr+VSkh8CKskjmkYb2vLpm8CqDn3z6LaNkgpVFhV5NhQcmhZf+56Eld8orQkCC61KWI8Lm7becWBvNFdbEbYAwSlk1ehOdOmR/iQWSZD4oqGxG/vpTmGkq+4KdHbdoJz8iTIzN62GQsy85rTJ3D3xBtr60vu7pYt0E//UrAkbKBsCpeoTT9iZAhfzIXCPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MJMYv+lFmDMeADUd2BTKbkLoCZoHH0E3Nr1XiM/5apo=;
 b=tI/zhwO/6O4tTnDOt9AcfDMyvfr2lc8j8zWMpBuIQLDcN/DxT1/gL/sLhyUEmNK+qr9LRPtQrP+VZFpFcDitlBILJV2ogeAryHjzJulfEy1m/YeG50NLRwpmyCbe+FNfi23kkcX+hTzEcOacwv44aFj/oBdScNv47cR65qiQiQg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <9a6f4d03-651b-449a-80d0-35077170c8c8@citrix.com>
Date: Wed, 20 May 2026 18:21:18 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] pv32: Fix bogus cr2 on fault in emulation gate
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
 <0e23078f-30e0-4077-be1e-365a265603de@citrix.com>
 <1779295699.8631fc262581453bbf619ec5b2062170.19e4649c100000f373@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1779295699.8631fc262581453bbf619ec5b2062170.19e4649c100000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0310.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:197::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH8PR03MB8324:EE_
X-MS-Office365-Filtering-Correlation-Id: c764f151-2a6c-4be0-948f-08deb694368f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|22082099003|18002099003|56012099003|4143699003|11063799006;
X-Microsoft-Antispam-Message-Info:
	3n/KFIiD88YY522lRSxCEYjOqw1zRoiOQjtAM1ZYYFRdOeMXF01K+7b/8fpNT6VWDWXTI1FbFWDNdJFdVKS1F0H6Xwx+q9ZCOHWTCw0ubQyU2yGeA1nvPF9MoRFMrFD6FiW9jhvJro+qIQ8P3EFMRXZAjA5Tmp82POVhkPhktyATpkB/sXc7P05Ty+6GrvbnTteWXBp7qYZh1f3DY8rTq5oJTbvySWO0w0RAldTKD/IDjtPd/D+hlcNPYPR6MS/SA5cO+YInEAQ2tVGhIK+vcnM3SJIx5wJTkfcI/RGEQq0o2vrPGvcKlz/Kl3NWwL1c1+07Jfq5A9Z9Y+2D/JNhG0X7bTd63wvP4D88oIM81fNqhF5ZdwZMk4SkS1P6bVNuoaxQD+dLOBUtgcp0uGkqUG3fctp7uXyqe+cYOq++tMHxgsDbWIy2iEYnGw6UlZeju1Bi+KqQuDR+jbM5Mq/D3IxhL33aWLkZhXq6eQ7tVVr6we2adJiE3kWdUwGrh/mmeKhxbb/CsZ9FawJdU9aGw5nlaITIm6muEA6aqEIxrNe0ANNcKdmv/kTFh1sk12sz4m5MQuBwV4sms+x6fb4ThpA4ZYbsWfx8lXMTI2Dg20GoqUcvMlu+DYZaEXhw0st08vR8V4L3vDmYiW/EeUOn4Xe4J7iWbdplmAVxP1MwQdoLFcFtwgj3/rCd92FKoc+7
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(18002099003)(56012099003)(4143699003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VTNIVDZUdjZtVmFFVFdBSnUvZmhHRWhnVWVDVCtodU1CNkVtQjIrOWpDeFk5?=
 =?utf-8?B?aGtIeGRiZUpVUDBhZFlGeTRDcnp2amZ5eTNvaTJaSUVHMExXQThnMFhCeVdH?=
 =?utf-8?B?RVZxaDdzTlVrdmhCZHhpQm4yaE9jRndBVUlhQ2MwVk9ZYURSSGkwRzVUYXJs?=
 =?utf-8?B?UVM4ckh3MVNwV1RxS0dZV0ZmdjErdyt2bGFKSWNiME9ZUkdyRlFENi9USUFh?=
 =?utf-8?B?S3lQTWt5a2JYMW55OHQ2KzEya29WdXNvbGlTMWJaMGNVUnp2c0d1V2ZENFh6?=
 =?utf-8?B?UFdjM3NiUitRMzY5d0RKTUw1V1Bkc3M4R29yL0FMc2l3RkRpM3Jrc1dwR3Rl?=
 =?utf-8?B?NkRmdElkRW93cVRlOHFQcDJHUUlibUE2emU5QVB1SHpqOXdmb25obGJzN0xB?=
 =?utf-8?B?VmNPOGhEM1UyNXRrQnhhcDZ6aWdEcDY0UVZ6M0pQemNRalQ2WG9YSGV0YlE4?=
 =?utf-8?B?b0VEd2FDYnRzOGNkcHNlVDlCb2xVV0p0SEdWM0VmaVUrU1JtblhKcDRjYkR6?=
 =?utf-8?B?RHlQQjdrMVJ0UDhGajZ1Nlo2VkJaK2tTcFBnQVRBSjloWnVreUVVbDNEME9u?=
 =?utf-8?B?WXBBOTI2Uk5Ra3BlUVFYc25QYVNXbEh3czhZdTBvOEh0bHlxL01haFBIRXRO?=
 =?utf-8?B?bHFEZEFXNTRlVUpOYXFydmI3RFgycmpRb1prZDg2QU9BUEE3ZGNnci8wZm5h?=
 =?utf-8?B?V05iREtCOGZBR0NDRW9Ec2hNMU9yZ3NWZzRUVFJOWXN4b3Rhc2Zsd0RMYnN2?=
 =?utf-8?B?bmNRcmFKTGdaMGNRVE0xRWtOK3o5ZnZZNnpzZ0c2Z1JXK3NLd20zTC9wYVh4?=
 =?utf-8?B?aFRsalIyeTB1TDJjUTdGakhhRFBva1BDYkczUzQ2NFJpeGt3ZkVtUnN5Z2Zn?=
 =?utf-8?B?NnFZeFVrYkk0Wkk5STNaTWNaMDFTcy91eTc5RWp5RG4rNlJhRjA2N0liVXZG?=
 =?utf-8?B?a2RnYTZpcXRWMlcrMnAyNk1EcnhJZkE2NWMxR094OGc0a28xSkVwaGw2ZWZk?=
 =?utf-8?B?dXlJeWZuNXpDeThrWC85MHp2d1B6TGxybWkwcStaZEFKOUhFTFBBZlp3Sk5Q?=
 =?utf-8?B?N25xOW5sMHQ5c3gwNGdZT3VyVUhxdFRLUW9WZll1dUE4NVpOUVo1clRFNU8w?=
 =?utf-8?B?Z1lpZzFxUkQwQmtYemJvUW5RY3VxTHNsc2dRT0xNNDNldWhPMVlHUGVGNEpk?=
 =?utf-8?B?dytyUjBZWTdnUEdIR0dhRHNrTk1ONUhwY1hhbFBiY0tnMnlvc0hRWG1PV0ht?=
 =?utf-8?B?R0cxdlFucDduR3ZSSVROZGxSQklHUEh6SFNSdnJRUzVUWGk1MDVicDBHdkVx?=
 =?utf-8?B?NnRhK0cxUk5tUkpoOUxNK0NkNnlFVDVjSkdQWHBEUjE2b2dDN3JZRXUrRDA5?=
 =?utf-8?B?ckI4d2UyYjBYMWJYYlU5QjZTbmF6RE50VWF5WDNMY01RbUhBRzlIRHdFUk5i?=
 =?utf-8?B?QTdYYUIxb01qemg1ckFGSXVPbVVPb1Rwb3ZiVTJVeGIrRnlHZEZOQ1prSWZQ?=
 =?utf-8?B?TWNZdENibzVoOUp0MGZBa1NzV1JUNnBoUEVFYUhrajJKTzZST3AwWDdWb1Jm?=
 =?utf-8?B?cDJrYkViQ2tiMzdEcm8vSXcybjFQQ3BWZEJXTG5lNFlENDJWcDV4SHlrWFp6?=
 =?utf-8?B?WktWTGtsZGtSY3k4Y3BScVBmOXBjT0lWRjgyTUJGV2EzeWZpSVdWUUJrQ1pv?=
 =?utf-8?B?SS82c3JKSmVlVUhucnNEN0REOE8veEhybDViT2JqajU4cVhVVnpwU3dEeUw3?=
 =?utf-8?B?TXVSYlgvdHRLYWJlejNYemR6a0JOOWczVFFyZEpKeGhNZmRDNEdYMXhMUzdN?=
 =?utf-8?B?b3dZMG1MNE1ybmJCV3VuVzd3aUhEcHlhR3pvWWI2dXdmT3lpcWVZUGkzcldo?=
 =?utf-8?B?ZnY4WldLeWVTVWJNUTNLeVNrdkdoV1oxUmdUSUxUc1NMU2k2UFYwbmZ5S3ZJ?=
 =?utf-8?B?K21PU25QUEd6SjRwQ0hCVmE5YUpPWXRMODVmYmVVNDNPTkJXSjlOSm5CZVQ4?=
 =?utf-8?B?a0VGTTdqcGpBMXZjWm9sWHppV2krdHBocjVQWU1KSzBtWmZ2Q2N1c2M3Njly?=
 =?utf-8?B?OXNabXhFTzlSWVlTdEdNa2pOdHpHMjFuYVhNamNTV1FueXp2SklFK3lFdGxO?=
 =?utf-8?B?YVRuYWxqTzNBYmFyZWppK2VLb0dWQTFmSXlhemM5alZGT0xXVVBqVUYveUx1?=
 =?utf-8?B?SjI0WGxVZlBTek5uY0lwdUZ0M2tLeWNDbkVpNi9Dc25XaDRaK1FqQTJCT3hi?=
 =?utf-8?B?SjNadG1NNnlnZSt3dkxwV29tK2xQNWxKQU5kSVFCb3VRT1MycjBoMzFGdXR1?=
 =?utf-8?B?ODhLOFRkVU9UMWZBOTY4NExYdUV4RDlDdXpWQmVPUFlHSGNFcmlPVm16S2U4?=
 =?utf-8?Q?GSeq45dzhzaQJuw0=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c764f151-2a6c-4be0-948f-08deb694368f
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 17:21:22.0976
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: f0ibDbmUEk9ur07b0an51WBbuiC85OK4h4oZZTIiVfG3dKtFziZC25R9GhVIdymOf1lWfze/0DkwnrxueljnnFBviifSalDJIThoVjcnsLQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH8PR03MB8324
X-purgate-ID: tlsNG-c201ff/1779297686-E139A443-58E49D25/0/0
X-purgate-type: clean
X-purgate-size: 3171

On 20/05/2026 5:48 pm, Teddy Astie wrote:
> Le 20/05/2026 à 18:34, Andrew Cooper a écrit :
>> On 20/05/2026 4:51 pm, Teddy Astie wrote:
>>> __{put,get}_guest returns -EFAULT on access faults which causes
>>> the injected cr2 to be off by 14 bytes (as EFAULT is 14) which is
>>> incorrect.
>>>
>>> Fix the computation by relying on copy_{from,to}_guest_pv which
>>> reports the number of remaining bytes instead of a negative errno,
>>> such that we can compute the offset properly.
>>>
>>> Fixes: 70ad570b2799 ("x86/64: paravirt 32-on-64 call gate support")
>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>> ---
>>>   xen/arch/x86/pv/emul-gate-op.c | 5 +++--
>>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/pv/emul-gate-op.c
>>> b/xen/arch/x86/pv/emul-gate-op.c
>>> index c2c699fbff..cacc171115 100644
>>> --- a/xen/arch/x86/pv/emul-gate-op.c
>>> +++ b/xen/arch/x86/pv/emul-gate-op.c
>>> @@ -289,9 +289,10 @@ void pv_emulate_gate_op(struct cpu_user_regs
>>> *regs)
>>>           int rc;
>>>   #define push(item) do \
>>>           { \
>>> +            unsigned int __value = item; \
>>>               --stkp; \
>>>               esp -= 4; \
>>> -            rc = __put_guest(item, stkp); \
>>> +            rc = copy_to_guest_pv(stkp, &__value, sizeof(__value)); \
>>
>> Oh, this probably violates MISRA, but you don't need to use a separate
>> variable because sizeof() has no side effects.
>>
>> Given that the expression is now &item, I think it needs to be &(item).
>>
>
> I tried something like that, but it looked a bit weird and clang
> wasn't happy (at least in language server) because of the &(x + y).
>
> We also need to ensure that we're actually copying 32-bits scalars
> (and not 16-bits or 64-bits ones) like the previous behavior.
>
> That diff seems to work though
>
> diff --git a/xen/arch/x86/pv/emul-gate-op.c
> b/xen/arch/x86/pv/emul-gate-op.c
> index cacc171115..b72a3058dd 100644
> --- a/xen/arch/x86/pv/emul-gate-op.c
> +++ b/xen/arch/x86/pv/emul-gate-op.c
> @@ -289,10 +289,9 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
>          int rc;
>  #define push(item) do \
>          { \
> -            unsigned int __value = item; \
>              --stkp; \
>              esp -= 4; \
> -            rc = copy_to_guest_pv(stkp, &__value, sizeof(__value)); \
> +            rc = copy_to_guest_pv(stkp, &(uint32_t)(item),
> sizeof(uint32_t)); \
>              if ( rc ) \
>              { \
>                  pv_inject_page_fault(PFEC_write_access, \ 

Oh, that's a second bug you're fixing then.

Pushes of ss/cs need to be done with 4-byte writes and zero extended.

I've added:

The use of a local variable in push() also fixes a second bug.  On all
but the earliest 32bit CPUs, segment selectors pushes are
zero-extended 32bit stores.  Xen was not doing this for %ss and %cs.

to the commit message.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 20 17:32:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 17:32:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314226.1584206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPkmr-0001OI-Fi; Wed, 20 May 2026 17:32:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314226.1584206; Wed, 20 May 2026 17:32:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPkmr-0001OB-Ci; Wed, 20 May 2026 17:32:53 +0000
Received: by outflank-mailman (input) for mailman id 1314226;
 Wed, 20 May 2026 17:32:52 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wPkmq-0001O5-OX
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 17:32:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPkmp-00HUGx-8n
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 19:32:51 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0df02f-e002-0a2a0a5209dd-0a2a4509e2b2-46
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 19:32:51 +0200
Received: from [52.101.62.39]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0df041-2497-0a2a45090019-34653e27b499-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 19:32:50 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS1PR03MB7968.namprd03.prod.outlook.com (2603:10b6:8:222::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Wed, 20 May
 2026 17:32:48 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026
 17:32:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=g16Pm5bjFoXGKmwaBRdWAN4NIo/ALAT6+jpdBDCADorMkCNJOdQLZddIPtxvz8FjN0PEldq3td7ppjciw9t72JhJ55jnOtkYq2wWGOPf8Adz8ZZnUvhWUZDybAswKKLVcB/j6m47hjpCxQcj/cFA3RyBwiwCFK/Q7RfRPY/MkTFMeziOUieQ4OTWKMyqv0CapcddPg6xudZSJzumPVdVZODa5DPJy/4YxL+ljIETt0V8WKahpxdTaTJaACEeQlcADWBrfCoqT+6UZjxwzMvz1oLjwOE0nkQOc4Iu5Favt1s1QKo6bBXDtdRKdLCSg+Lu+OawV5r8YTzYUUinQsHA2A==
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=f8sJgVkOcRnwfhHGyUTRu757ZGClPP1yhmXOqtI8c8U=;
 b=BDa421P6ev0jluB1Mi/XCZZSmkMKbxiPrPk52TzkdSRTzzBzU9FsSzAf9yUPPFE4Vuj5XvVx5FakaVA/SHyj57VBLbk3NQKKCi+Ucmb/K6d2SWWtrpjijny/V3DHuiYxOYL/ZjYX5O8XmSEtzWwva2emcKyTmkDUJq/fwt8p+fS5/9w3TFlITc7yvo8e5jttqgUrKAh6a0ntIvEjD3Vi9L8fa4CtfN8DxaJjxwmcRc9i/lYN+tEMw/N6huC6bril2XssyC/fWpOGg05/qF91450ZxeIOqiYQSAOjWRKvn482yD6ZmDLrJzkFZGXs1bqDmmgefc6HX7XbYNiUPNrfBw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=f8sJgVkOcRnwfhHGyUTRu757ZGClPP1yhmXOqtI8c8U=;
 b=dG7Ry+E8uId83dZi0BqJMAlKie6/HjLo7TGBBKOJUnuqr4kCnakLDbB5gWQwVvBqXIA//neunYAZBTftV76Y+OrbDXjf5FWu894WOtLNJFRHt1M03MlAw13n4tJtta9RXGyeUYvblc5+6dxp75lr9q2/LfZEYoGbg+hj8DdaSNk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b5753aea-15b7-4bfe-bb69-e002c1964ad0@citrix.com>
Date: Wed, 20 May 2026 18:32:44 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] docs: Update console=pv requirement
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <1779293052.8631fc262581453bbf619ec5b2062170.19e46215cd2000f373@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1779293052.8631fc262581453bbf619ec5b2062170.19e46215cd2000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PA7P264CA0441.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:37d::21) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS1PR03MB7968:EE_
X-MS-Office365-Filtering-Correlation-Id: 57d6851e-7be3-40cf-6f97-08deb695cf58
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|22082099003|18002099003|56012099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	17YthNOpcTQOXh5CvoPGLtpr1fKvIHCDiPsF7FgJVUsmGZ+/7BzCyTaTWQoonyhwDenMaK4MHpaKtUboVPLcbuo+N6ABOyICrqOXnw4FL6vRwBbxEjkN6bnv+E6VXp69NrGSTHpR54N/mghI4atPITzzOMGlbwd8X5OkQrhEDR+MKJNVjtzAWljxSqI6wGGRHmLd07OE4nsVVTetcqwS3bppohxyTduROMfavRObKMjWrdRuFBTKUAqwbzxsP6P2SxI8QgpgA+0bidbIlcvEcwJOuxYe+DHE6UG+dEoPcFL6/6tjHaREMi0AD9Z/fbk5wzLbE73cVIKn0GN+vQzYTfwKzdAnam2TuLH7szQtNw6HM1Uh5pWgTqgMj9a88oKlMNLQGotq0Qxr57UUrThS8DfJ9Yvum9wUYFLaPuxOnnEFSAr/RgqmTIDp2sa3aJT8lCPHtEHbudJ3AmJWf2tHzL0dgq2wptLqc8halVIQ+brmoDVgmNBtFu+FvNmu/waaLhlk/30eztRLjL9uC8tpCE7U4abvZZeJVONQEndiOMMqx7GigDbdYpJHcPZI+S9urlxavUDtzN/Idboid0A/iQiId+SSBtzyLXce3WKV0THQAWAsNFYdGmlV4w6u1mGirRcvOmIyC2ROi6OoL/M+bCm+bcIfTV6Lojqb8zQw2TLkk+LLxnaRepLRVWbX2QvB
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(22082099003)(18002099003)(56012099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SEJQVjN6N3UxaDJweTA5WkFxdjhleUJ0SUhla0NJLzQ5VXBRMDVjNFhJMHMw?=
 =?utf-8?B?c1BCWURNeUF3aFZOTis3a1I2bFpxRkZMNTZCMG9HUGxXVDVrcWNBMGVZSXl0?=
 =?utf-8?B?Q3B4OU92MmRIVzlZY1pUeWxnVjk1U3RoSUl6L2pCVkZ4bVdVTHNNRjc2VUcw?=
 =?utf-8?B?bnVOMFl2MElaL1NUblNjV3pqUnF6V1RpeFkrYlNWVERVQjFteGwzWkhQMEox?=
 =?utf-8?B?cThYMnAxK0tLc2FjQjVqdFJBdThaUVh6OCs1NDFjMmUvZm9kaDNtdXVWSURK?=
 =?utf-8?B?NzdpbzNtUVU3eVZFYmk1c054M04rTFZhZkZUZ2lKSVFxZW9TNVl2b1JYRzhY?=
 =?utf-8?B?cEE0UDRnSTZ1Ty9ValpIc1pIRWtLVTRXM0tHdGtxTkcwMDFiQzg0d1BLMjc2?=
 =?utf-8?B?UWYrTVJ4WDNCaHlLUXR4UGo5Sm41Qk5RR3hkTzZIb1hrMUx2TVlFVXVqb1Bq?=
 =?utf-8?B?SHJiMEo2TVorRE1aK3Q5OTJMdmppMklURzluaktRNUJYT2VEWFBaMnoxNjBN?=
 =?utf-8?B?Y0FSeXVybkhtdGlNZTB4NU1iMGdGMzEwWmpqbmhYWDZwZkhOWGFQMitnMDJi?=
 =?utf-8?B?R2cybHZLeUl5VGsyNTNaL093VzIxbWM3RzdOYjNWZHdrVlVkM2JJLzQ4N1pw?=
 =?utf-8?B?d01QTE5oSjNlR3Q3NnpPcHJVRGRiZW16TkVwQysvQlBpVXF3THdjUzRQdG9p?=
 =?utf-8?B?SHR6MlU3dkRyVVNLMCtGVnNsa2pVSytWWG4yYnJNSVJoaGppcXhRQ01Vc2lV?=
 =?utf-8?B?eHk4U3RvUkMrczNJVThpbHlSU0JoeU56MnVOd0ltS0JnOUZsL0d0UFFNMkRX?=
 =?utf-8?B?MThMZVhVVGl4cWVGWERIOExseFhsTHJKUVM5aElDMmU3OUk5cmVjNGxtTVI5?=
 =?utf-8?B?eWhCdlJpMWxyQU0xbmFncTAyMXhYYmJiT2NxN2h5NWc1cVd1djFLRDk5amZa?=
 =?utf-8?B?ODFhUy8zemF0a1pPYmpzN3g4OWFBbk5Fa3kzNHpxTlRtbXMzYWRvbU9DcFRj?=
 =?utf-8?B?Ykt3V2RXL09lUHF2L1laV0t3WFptNnVabHVBdkthUCtnb3NxYXNNRXlnVWV6?=
 =?utf-8?B?L3N2eXlqSWgxb05ESlFuZXowRlJ3dEJvWHNYamVETTZVOEduSUhsSll5Yjkz?=
 =?utf-8?B?OFU2N29Nek4zbWIyUVpzWUF2R2t4VUZOa21HcDVXUmZoak12ajZjcVRxNkRD?=
 =?utf-8?B?T2RHdVJVTWhUaURSTkJEVnZJbTRPTnc3cnIyaDFYYWtSVTRYL0k3aUFqSGlz?=
 =?utf-8?B?TG1KUnR4bEpFekZ6M1ZxOFFXeVFZNE05T3NaOVNQK2gxcVd6d2NIUWJoNXRq?=
 =?utf-8?B?eHBRRVFZOHhJSzBSRXVmRVlCOGE1aUcwNjBCM3FGUG9tMFdSUGhvdmVOaWtr?=
 =?utf-8?B?T2JqSXk5Sld2L3pvVkpqQys0T2xnR0NCbjNRZzNpcW9uWnQyZ0NrNDVpTkhV?=
 =?utf-8?B?VzRNZ2dzN0xDMmVrZkVhMCt6OUhMR0hWb3JSOGdpTDNnT2d3bEg4UG80TnVK?=
 =?utf-8?B?anBFQ1BRTG9jaXBDSnFzakNRSlVBWEYralVXZWg5UHlxYnREK1VveTgyM3JR?=
 =?utf-8?B?M3Blei9RcHgzUng1M1FCaGJ1UUlsa2VQN2k1UFI2a0h2R3czcEo3WklFZWh1?=
 =?utf-8?B?MUppdi9lZGpSZHpHdms3alNodXJlNERTNUpWZnhGallWQ2dJWmgxd0x6M2ww?=
 =?utf-8?B?aFR4Wnl2QUgwcWxkSUpRNm1mS1Vhajc0K2hlMGtUb01uZ2VWVVQ2YVJ0b2RE?=
 =?utf-8?B?RFhGNUMwb3o5czZTeGs0NEJYVDZ4bGFqS0Z4aXhMMXZoZlZwSHN6OWFqNTJC?=
 =?utf-8?B?NzJ3RUhxdGZDSkh1UkE2UVdHRnNCemJLN0cyNCsvSGV2MU9ab05IQ1hjTXJw?=
 =?utf-8?B?K2lDWWVHN1IxVVdtemVMK2pJWXBaVkFIODRTNlI0VjBNdnNHelI2WEFXVW0y?=
 =?utf-8?B?cHB1eEJKbEFONzZScWFqNFNIaE5DMFpyTU53RDZFVTdEQXdycGVIS0JYcmxx?=
 =?utf-8?B?QktLKytHc0NoOFd5WUw0WW41c1UxT0g4NGlRWXp3ekQvYzVBbDEweGR5Q1lQ?=
 =?utf-8?B?aDFDaVFhNXlPR0U2RWZ5bXZNb3Z3VjU5MEZjelhmeEZEVFQ1SlRhZGdXWXgv?=
 =?utf-8?B?NW9UVDQ3Q0czM1Y4cnZLR0M5TUVyTWpFSHhpd2pNNC9xWitheStmdUFlTlVL?=
 =?utf-8?B?dlpleG9KQmowdlFoTElvekhrZ2ZHdWFjeVVLL002QUlEYVpIMU54MGVlZjNB?=
 =?utf-8?B?bEt0OW00Mk9PK0poajRndE9yakFNNmFLbFlUdGwvN2dsRDhQcExWbFRhMkpI?=
 =?utf-8?B?aTVmVXd0NWdrUWl3WGhmS29pcXB2M1l5TTNhaTlqTEZ0Vyt3dWxGeEJyL0tn?=
 =?utf-8?Q?QeWLVeQCrXgC4znQ=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 57d6851e-7be3-40cf-6f97-08deb695cf58
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 17:32:48.0054
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JgxjDNa+pfbF6zoprYx7KxSZgorj67eu0LdT+SNb17vIctLySmiC+zoNmGPhoBDT/NT9i2FMlg+Ocw4cbvBQVN+76WI2CTVhmMNcl/7CBFk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS1PR03MB7968
X-purgate-ID: tlsNG-bad1c0/1779298371-88B73A53-1EAB51DD/0/0
X-purgate-type: clean
X-purgate-size: 396

On 20/05/2026 5:03 pm, Teddy Astie wrote:
> PV console doesn't require Xen to be running as a shim and only
> requires CONFIG_XEN_GUEST and running as a Xen guest. Update the
> documentation accordingly.
>
> Fixes: 4f6609d6a665 ("x86/guest: use PV console for Xen/Dom0 I/O")
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>



From xen-devel-bounces@lists.xenproject.org Wed May 20 17:56:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 17:56:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314244.1584214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPl9v-0004St-8A; Wed, 20 May 2026 17:56:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314244.1584214; Wed, 20 May 2026 17:56:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPl9v-0004Sm-4i; Wed, 20 May 2026 17:56:43 +0000
Received: by outflank-mailman (input) for mailman id 1314244;
 Wed, 20 May 2026 17:56:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <31vUNagYKCVEBxt62vz77z4x.v75Gx6-wxEx441BCB.Gx68A72xvC.7Az@flex--seanjc.bounces.google.com>)
 id 1wPl9t-0004Sg-Q1
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 17:56:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPl9t-004uJe-5s
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 19:56:41 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <31vUNagYKCVEBxt62vz77z4x.v75Gx6-wxEx441BCB.Gx68A72xvC.7Az@flex--seanjc.bounces.google.com>)
 id 6a0df5ab-5cb7-0a2a0a5109dd-0a2a4509c26a-32
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 19:56:41 +0200
Received: from [209.85.210.201] (helo=mail-pf1-f201.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <31vUNagYKCVEBxt62vz77z4x.v75Gx6-wxEx441BCB.Gx68A72xvC.7Az@flex--seanjc.bounces.google.com>)
 id 6a0df5d7-2497-0a2a45090019-d155d2c9dc2c-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 19:56:40 +0200
Received: by mail-pf1-f201.google.com with SMTP id
 d2e1a72fcca58-83f24cd00f8so2788371b3a.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 10:56:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779299799; x=1779904599; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=s6+hlvnmwj5Awnxfo2Fw5NZ8DPJZlHGIf0en9UEe6nA=;
        b=waz1pOgkccI/EWQOK/i4YKIGUNCAc/qknH344jQbd/endX8v9Y+VURQx4P0P4QH7+x
         2Dq3FPEnMl79gtQraj3eRGaDqR0bcmmiFPOwZpuOr3AHtsPCFxyduP1FNYumzeS8HySr
         pVsZo1nreW68NGdCRqNrRrKejrLy/axYNrWqewhTXvpAOhq4pcBZS9pq/JWjvZu0aX0J
         sYtmtMlvyU6C+bP9nyPNYNz7UEXNtNLZwuwZLNdnubj2v1ixrf2RBbS8q4LcN70VTx94
         u5WycHUMt70z2ohZ7sfrakuurwElUUdD7lPlH/wJN1O6muZPS8sufQs2vDmK4+hyd1n6
         gGhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779299799; x=1779904599;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=s6+hlvnmwj5Awnxfo2Fw5NZ8DPJZlHGIf0en9UEe6nA=;
        b=gIOAK+bEvjvF3hhhcxR8VcrPBel8JlVcuuK7/TcjeuZ0qLWv0eTx8Pmv3TY7AtN76F
         4PFT+kFjK4uYiE3eJ3SF90czwXvqTlvUDfffwMMRshN/pvEknt7hrg9FtAf8BdfSqhAJ
         6CoGha+eArIKPwingG+8m44SzD+uyPNvbvBuLoaorOn2rSaKY1QDR+YXUUaBr+9Gzo4Y
         BIk/rxO42rpHqAd+Qd6nUFlUfVmmilv5Xz6SOyRuolIdJGyGpWnoDA0HiRZmbK5fxMdT
         0iBOmvOLh7DnLogDYt6RQAnXDWTrTM1UvwLaykpvoFAet1RICt5k2PHiDwXetIFW9Kqi
         tf7Q==
X-Forwarded-Encrypted: i=1; AFNElJ/07m5xtAE9SGjlF7E5biNMEj7RYnZ8FbACzoq3g9UX8G68JZ/jGZdPMIC+sYkrhxsY6MxekU7meaE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwE2AaHTANPbR5bgmJFrDDoHjNGOjrZbdtmK7uq6Fz2u/2pbuya
	JQO57u2UcLzgaM0fd8JbBnxPVAVwzKiNli1sFnhUaiC7eI3AWOeWnyHlsmeSnc9JUV/an5NNeeW
	l9DsJ4w==
X-Received: from pfdc18.prod.google.com ([2002:aa7:8c12:0:b0:834:df9e:8e02])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:3028:b0:837:8c8f:8f51
 with SMTP id d2e1a72fcca58-83f33db3f0dmr25728027b3a.47.1779299798653; Wed, 20
 May 2026 10:56:38 -0700 (PDT)
Date: Wed, 20 May 2026 10:56:38 -0700
In-Reply-To: <949e39aec749f019b18fa41c2a42bcc9231288b9.camel@amazon.co.uk>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com> <20260515191942.1892718-3-seanjc@google.com>
 <949e39aec749f019b18fa41c2a42bcc9231288b9.camel@amazon.co.uk>
Message-ID: <ag311hHnqrCGR9Jc@google.com>
Subject: Re: [PATCH v3 02/41] x86/tsc: Add helper to register CPU and TSC freq
 calibration routines
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw@amazon.co.uk>
Cc: "tglx@kernel.org" <tglx@kernel.org>, "longli@microsoft.com" <longli@microsoft.com>, 
	"luto@kernel.org" <luto@kernel.org>, 
	"alexey.makhalov@broadcom.com" <alexey.makhalov@broadcom.com>, "jstultz@google.com" <jstultz@google.com>, 
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>, 
	"ajay.kaher@broadcom.com" <ajay.kaher@broadcom.com>, "jan.kiszka@siemens.com" <jan.kiszka@siemens.com>, 
	"haiyangz@microsoft.com" <haiyangz@microsoft.com>, "kas@kernel.org" <kas@kernel.org>, 
	"pbonzini@redhat.com" <pbonzini@redhat.com>, "kys@microsoft.com" <kys@microsoft.com>, 
	"decui@microsoft.com" <decui@microsoft.com>, 
	"daniel.lezcano@kernel.org" <daniel.lezcano@kernel.org>, "wei.liu@kernel.org" <wei.liu@kernel.org>, 
	"peterz@infradead.org" <peterz@infradead.org>, "jgross@suse.com" <jgross@suse.com>, 
	"boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>, 
	"linux-coco@lists.linux.dev" <linux-coco@lists.linux.dev>, "kvm@vger.kernel.org" <kvm@vger.kernel.org>, 
	"mhklinux@outlook.com" <mhklinux@outlook.com>, "thomas.lendacky@amd.com" <thomas.lendacky@amd.com>, 
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, 
	"bcm-kernel-feedback-list@broadcom.com" <bcm-kernel-feedback-list@broadcom.com>, 
	"tglx@linutronix.de" <tglx@linutronix.de>, "nikunj@amd.com" <nikunj@amd.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>, "vkuznets@redhat.com" <vkuznets@redhat.com>, 
	"rick.p.edgecombe@intel.com" <rick.p.edgecombe@intel.com>, 
	"virtualization@lists.linux.dev" <virtualization@lists.linux.dev>, "sboyd@kernel.org" <sboyd@kernel.org>, 
	"x86@kernel.org" <x86@kernel.org>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-bad1c0/1779299801-37F7EA53-5E04E7AD/0/0
X-purgate-type: clean
X-purgate-size: 1036

On Mon, May 18, 2026, David Woodhouse wrote:
> On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> >=20
> > --- a/arch/x86/xen/time.c
> > +++ b/arch/x86/xen/time.c
> > @@ -569,7 +569,7 @@ static void __init xen_init_time_common(void)
> > =C2=A0	static_call_update(pv_steal_clock, xen_steal_clock);
> > =C2=A0	paravirt_set_sched_clock(xen_sched_clock);
> > =C2=A0
> > -	x86_platform.calibrate_tsc =3D xen_tsc_khz;
> > +	tsc_register_calibration_routines(xen_tsc_khz, NULL);
> > =C2=A0	x86_platform.get_wallclock =3D xen_get_wallclock;
> > =C2=A0}
> > =C2=A0
>=20
> xen_tsc_khz() doesn't use CPUID but really *should*.
>=20
> Care to pull in
> https://lore.kernel.org/all/20260509224824.3264567-31-dwmw2@infradead.org=
/
> to your next round please?
>=20
> (Without the misplaced changes in kvm/x86.c that should have been in
> two different prior commits, and are now folded into those correctly in
> my kvmclock5 branch ready for the next posting of that).

Ya, will do.  What's one more patch...


From xen-devel-bounces@lists.xenproject.org Wed May 20 18:00:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 18:00:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314253.1584224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPlD6-0005Gg-Pa; Wed, 20 May 2026 18:00:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314253.1584224; Wed, 20 May 2026 18:00:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPlD6-0005GZ-Mk; Wed, 20 May 2026 18:00:00 +0000
Received: by outflank-mailman (input) for mailman id 1314253;
 Wed, 20 May 2026 17:59:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3m_YNagYKCRgG2yB704CC492.0CAL2B-12J2996GHG.L2BDFC720H.CF4@flex--seanjc.bounces.google.com>)
 id 1wPlD5-0005GT-1v
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 17:59:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPlD4-00B8Dw-EX
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 19:59:58 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3m_YNagYKCRgG2yB704CC492.0CAL2B-12J2996GHG.L2BDFC720H.CF4@flex--seanjc.bounces.google.com>)
 id 6a0df688-2eae-0a2a0a5409dd-0a2a4509cd90-18
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 19:59:58 +0200
Received: from [209.85.210.202] (helo=mail-pf1-f202.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3m_YNagYKCRgG2yB704CC492.0CAL2B-12J2996GHG.L2BDFC720H.CF4@flex--seanjc.bounces.google.com>)
 id 6a0df69c-2497-0a2a45090019-d155d2cab15f-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 19:59:58 +0200
Received: by mail-pf1-f202.google.com with SMTP id
 d2e1a72fcca58-82fa6c3a77cso2941261b3a.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 10:59:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779299996; x=1779904796; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=CN4Zn2M2jJcMvhiuUJl3O5eQtI7RDh/+btUc2M7YWms=;
        b=SH3BMk/qzhgTuBB9zkEXNGLp3Yo9XQ08pfAku9KfsPEQ6sXfEmYRsdMs+wmt0H54hD
         yGdWX/4+kJL4VqkKUXrPdLCTkcLlYUiGFVJvBTU+1fn7+MBdqSkgxwEYNOa4JWTwoYzf
         2JN6t8aoAuu5Z8TbIG5GjZ4IhCngzyqUZ5/E0Zxg+0HKC6P4JNuM9GoRYHzFg0RaTpnx
         ZooWuLBM43mdNzxZsCG7R8C/wrF2FIm7j+naUj53kBJtonWOQ8Q4evmsTWnOOT+vm8WF
         9hNc404d6jxeDxh4hiVM1dnDeeHnRTAPoz6PANtJNLi7fdymSw0mMOFC59BHiVNSzeYS
         nq/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779299996; x=1779904796;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=CN4Zn2M2jJcMvhiuUJl3O5eQtI7RDh/+btUc2M7YWms=;
        b=Ht8u76NBnEO3IpZeEryiVtvV1d/zkE3lqboFIaB0dE1zCxHs2y2J3Z5c6dAGsFHNlS
         zAYz7h+Zi9mZsj9R7Cbil1KxnSLnB5hh67qjZkZCHB0rbmnf/t96ddEp65BzZ+WJNUCx
         AtF2nl8xQWV14tIiKdQaeGZGbRgD7X1bAQyjIjfJUNhjVOoOrPR/MnamuFtYMfKuwX5C
         V7NsObeZXHp8+EXUB02fabBmx+Jp1i5iRFhYbcXaFlpQ/4hAidcec5fuqxDc5CNTk1LV
         xHG8hCnKFusBJEYNhD+gdko4QkTlTkGbx+c8vaPQRf094C3tplmVdDzjzxxqIXtq24bk
         VpcQ==
X-Forwarded-Encrypted: i=1; AFNElJ8r+uvB3DjFyfUprx33uMn1+iM1YxZbU0TFjEjWWHcKbuMSF7wTdKh1KFKaMZFCIKCHMXQqXz9nXYY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx0ppvt0egDUV7xh2hghnrB8NWBGRtt2y2f4140HfxB3R9uekX4
	sj5bU8ILDxnhN73bS9TYW+7yuFIsZ2GcQI/nWcDXxcO17erGxm8ZkeVcczmR8BAZ+LoJ6/y9drq
	av6mYkw==
X-Received: from pfblu4.prod.google.com ([2002:a05:6a00:7484:b0:83a:58c1:f5e2])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:2449:b0:835:405a:7e72
 with SMTP id d2e1a72fcca58-83f33c24d1cmr24352155b3a.11.1779299995865; Wed, 20
 May 2026 10:59:55 -0700 (PDT)
Date: Wed, 20 May 2026 10:59:55 -0700
In-Reply-To: <7260682b21c28d1299e58400b9a2f4b8d23bd434.camel@infradead.org>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com> <7260682b21c28d1299e58400b9a2f4b8d23bd434.camel@infradead.org>
Message-ID: <ag32mwLvHpWn2vCt@google.com>
Subject: Re: [PATCH v3 00/41] x86: Try to wrangle PV clocks vs. TSC
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-bad1c0/1779299998-37175A53-26F4437A/0/0
X-purgate-type: clean
X-purgate-size: 4263

On Tue, May 19, 2026, David Woodhouse wrote:
> On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> > Dave/Thomas/Peter/Boris, what's the going rate for bribes to take somet=
hing
> > like this through the tip tree?
> >=20
> > The bulk of the changes are in kvmclock and TSC, but pretty much every
> > hypervisor's guest-side code gets touched at some point.=C2=A0 I am rea=
onsably
> > confident in the correctness of the KVM changes.=C2=A0 Michael tested H=
yper-V in
> > v2, and while there were conflicts when rebasing, they were largely
> > superficial (and I've just jinxed myself).=C2=A0 For all other hypervis=
ors, assume
> > the code is compile-tested only, but those changes are all quite small =
and
> > straightforward.
> >=20
> > The only changes that are questionable/contentious are the last two pat=
ches,
> > which have KVM-as-a-guest use CPUID 0x16 to get the CPU frequency, even=
 on
> > AMD (that's the dubious part).=C2=A0 I very deliberately put them last,=
 so that
> > they can be dropped at will (I don't care terribly if those patches lan=
d).
> > To merge them, I would want explicit Acks from Paolo and David W.
> >=20
> > So, except for the last two patches, to get the stuff I really care abo=
ut
> > landed, I think/hope it's just the TSC and guest-side CoCo changes that=
 need
> > reviews/acks?
> >=20
> > The primary goal of this series is (or at least was, when I started) to
> > fix flaws with SNP and TDX guests where a PV clock provided by the untr=
usted
> > hypervisor is used instead of the secure/trusted TSC that is controlled=
 by
> > trusted firmware.
> >=20
> > The secondary goal is to draft off of the SNP and TDX changes to slight=
ly
> > modernize running under KVM.=C2=A0 Currently, KVM guests will use TSC f=
or
> > clocksource, but not sched_clock.=C2=A0 And they ignore Intel's CPUID-b=
ased TSC
> > and CPU frequency enumeration, even when using the TSC instead of kvmcl=
ock.
> > And if the host provides the core crystal frequency in CPUID.0x15, then=
 KVM
> > guests can use that for the APIC timer period instead of manually calib=
rating
> > the frequency.
> >=20
> > The tertiary goal is to clean up all of the PV clock code to deduplicat=
e logic
> > across hypervisors, and to hopefully make it all easier to maintain goi=
ng
> > forward.
>=20
> I booted this in qemu with -cpu host,+invtsc,+vmware-cpuid-freq
>=20
> I was expecting to see it eschew the kvmclock and use *only* the TSC.
> Is there even any need for 'tsc-early' given that it's *told* the TSC
> frequency in CPUID? Shouldn't it have detected that the TSC is known
> before init_tsc_clocksource() runs?
>
> And then it even spent some time at boot actually using the kvmclock as
> clocksource... when ideally I don't think it would even have *enabled*
> it at all?

Yeah, that's definitely the ideal state.  And I had all the same expectatio=
ns and
observations as you when digging in and testing this.  But unless this seri=
es
makes things worse, I want punt on achieving the ideal state for the moment=
, as
it's proving to be a big lift just to get to a not-awful state.

> [    0.000000] clocksource: kvm-clock: mask: 0xffffffffffffffff max_cycle=
s: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
> [    0.000000] tsc: Detected 2400.000 MHz processor
> [    0.008205] TSC deadline timer available
> [    0.008270] clocksource: refined-jiffies: mask: 0xffffffff max_cycles:=
 0xffffffff, max_idle_ns: 1910969940391419 ns
> [    0.159085] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff=
, max_idle_ns: 19112604467 ns
> [    0.164074] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycle=
s: 0x22983777dd9, max_idle_ns: 440795300422 ns
> [    0.229087] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xfffff=
fff, max_idle_ns: 1911260446275000 ns
> [    0.337095] clocksource: Switched to clocksource kvm-clock
> [    0.345246] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff,=
 max_idle_ns: 2085701024 ns
> [    0.356201] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x2=
2983777dd9, max_idle_ns: 440795300422 ns
> [    0.360560] clocksource: Switched to clocksource tsc
>=20




From xen-devel-bounces@lists.xenproject.org Wed May 20 18:31:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 18:31:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314278.1584233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPlhL-0002OK-45; Wed, 20 May 2026 18:31:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314278.1584233; Wed, 20 May 2026 18:31:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPlhL-0002OD-19; Wed, 20 May 2026 18:31:15 +0000
Received: by outflank-mailman (input) for mailman id 1314278;
 Wed, 20 May 2026 18:31:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPlhH-0002O7-M1
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 18:31:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPlhH-00DulQ-26
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 20:31:11 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0dfdd0-2eae-0a2a0a5409dd-0a2a450cb570-30
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 20:31:10 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0dfded-62f1-0a2a450c0019-5a9b32229ece-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 20:31:09 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPlh5-00000007THG-3qKd; Wed, 20 May 2026 18:31:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=38VjBVseDEfelALR1MiRTEA2WPwIZueCOuQcJA11DHw=; b=okyxUeyjtEfb4IL9N+H2s3fQ4l
	+FXGCOPfRMtSwfjsiCCErR/hqYIp5E43h19nlrt4LOcqkVnHdTnI4R4ixw9GM3byo64IZ/CfBk9zN
	QlG9oyCXRDp/W4Nv8hFGJ6REc4kp1SYAJvrFHC3S5281hyRFw/yATFCORBqbsYQ8DJcq4CyQo8OIn
	9twCl0C6vXyDdlGu5IPu/RSlBANVuoNJZbRft5N+r2T/6avcFTE3Cm0V5uIZHyxK9DkX4PBh0jkkL
	ySMglljmFU2brGpAwqD/FpsMhr94TdQ3qTAs7ut6Ck8Y1oxrtBwReeEv+UYTIVdX7di2RShBiv2WW
	lkFhaaWQ==;
Message-ID: <6e80893d022b10110f520acf152f70ff6acf2e00.camel@infradead.org>
Subject: Re: [PATCH v3 00/41] x86: Try to wrangle PV clocks vs. TSC
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
 "K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang
 <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, Dexuan Cui
 <decui@microsoft.com>, Long Li <longli@microsoft.com>, Ajay Kaher
 <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen
 <dave.hansen@linux.intel.com>, Andy Lutomirski <luto@kernel.org>, Peter
 Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, Daniel
 Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>,
 John Stultz <jstultz@google.com>, Rick Edgecombe
 <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 19:30:58 +0100
In-Reply-To: <ag32mwLvHpWn2vCt@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <7260682b21c28d1299e58400b9a2f4b8d23bd434.camel@infradead.org>
	 <ag32mwLvHpWn2vCt@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-nkQFBHechIC9A3sNo6/e"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d25034/1779301870-E3370CF5-87EC9819/0/0
X-purgate-type: clean
X-purgate-size: 7941


--=-nkQFBHechIC9A3sNo6/e
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, 2026-05-20 at 10:59 -0700, Sean Christopherson wrote:
>=20
> > And then it even spent some time at boot actually using the kvmclock as
> > clocksource... when ideally I don't think it would even have *enabled*
> > it at all?
>=20
> Yeah, that's definitely the ideal state.=C2=A0 And I had all the same exp=
ectations and
> observations as you when digging in and testing this.=C2=A0 But unless th=
is series
> makes things worse, I want punt on achieving the ideal state for the mome=
nt, as
> it's proving to be a big lift just to get to a not-awful state.

Ack. Just checking my understanding was correct. Baby steps... 40 patches a=
t a time :)

--=-nkQFBHechIC9A3sNo6/e
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDE4MzA1
OFowLwYJKoZIhvcNAQkEMSIEIF3l2a4Wdb2a80C4c8VJcARIXM3y61splW2FzgQoYUL6MGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAB69u+TIeiYPs
vONBwNLh462fNKqtmCitXKuce67H1Ek4LUyS0EqY2/Ci9/bnO6UFewN6KiK3EqvxfPHUjYLWChjD
Ip6YOtCPKnXMDLDakYYjpz65w1OvFPsKtY03t5//O3akbXt0OKV/eKPm0XvQ79r+w6lsC2ilv8tt
LmlXHyU198rmJj3N4yZPkYf52eQcl+sKvvjAeN9e6wtLd8630ZFZ2FYxEgUuiKoj6UnHw7ot+VdZ
e6SRiRD31p3rIgzi6rIiI4M/g5Rv8FNy+VMHMKI044MxXlKCh1TKcPEksZJS8VEvDGcJU2b+iPir
lOH9+swQMOSzVeIQSIdpiFqizUedCsg8J7BFmYPg4ki4QSrqxKva6MJwbGD9uT9u04dtDhRA9cI9
M+5+Swa+M3pa1SgB7B6sFIYsTHgzr6hITakDKkhZDyp2hF6dxH3XH4KbOSVGeo3XB8rEo74P4KzL
nj0BNGJJs+0C6lJhr58ni3de6bfo3QXse6hta2L1sknek9ZBAi8Ug8DxPlvsVtcxB0ikAGatF5AN
Z0U8W0CFXuVsSE3wmCie1K3v512MJ2us2GYiSMXcDoEaw3S+oyKPHxKwfgXOCmY0Sk0oSV1JZCnl
Y1pTTwVtCHtN2SYlV/A04mcHgQHiffjbJVHYmD1sHg1CocXIVzC2i748OD9jqWYAAAAAAAA=


--=-nkQFBHechIC9A3sNo6/e--


From xen-devel-bounces@lists.xenproject.org Wed May 20 18:50:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 18:50:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314289.1584243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPlzq-0005QD-Kj; Wed, 20 May 2026 18:50:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314289.1584243; Wed, 20 May 2026 18:50:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPlzq-0005Q6-GB; Wed, 20 May 2026 18:50:22 +0000
Received: by outflank-mailman (input) for mailman id 1314289;
 Wed, 20 May 2026 18:50:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPlzo-0005Px-NV
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 18:50:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPlzn-00513u-LM
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 20:50:19 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e0268-bab6-0a2a0a5309dd-0a2a45049fd0-2
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 20:50:18 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e026a-1dec-0a2a45040019-5a9b3222a532-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 20:50:18 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPlzZ-00000007UI1-3OGD; Wed, 20 May 2026 18:50:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=vfqQqe3/Q5FohBSCxOE8qHtO0nxO4XvM5LjLHZKXyao=; b=LMM/1bfq7BKcsb1h5JmlVGAaqW
	vi8jmiUaEoy+tahKu2tgUaSO9O0xNvl+zkTWYReTeSdPjeJucgVK5iiSoGE8XdlPjbEflxMAovy0J
	9Q4N+u9Y/VZ6oK8vkDXNkLffswvQhkZ01Bazh+3DdTFIGV670OJV4FhZ9CYmgnzNWEDZfbIoSKcRG
	S1wnSn16JqIf9a8tBjsyYQZjy69Nj6zCvX5x2jroKuilGJOO/IjPGMmqVI4LzsRgCOBYYVLj3cZG8
	SahANau1nYZOtWoYoQ+CykqDx66r4FqVPVBvoTcSECdEbqdw4oMj+3eQBlwVw4PMkiBPwJlrcxmOZ
	V3TQPMqg==;
Message-ID: <e892099dd6f459e5fe60ae7b9cb2183c2da2e1e6.camel@infradead.org>
Subject: Re: [PATCH v3 40/41] x86/tsc: Add standalone helper for getting CPU
 frequency from CPUID
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>, Sean Christopherson
 <seanjc@google.com>,  Kiryl Shutsemau <kas@kernel.org>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 19:50:04 +0100
In-Reply-To: <3cb683b4-973a-4b3e-a5d5-a8baa8a70eb0@redhat.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-41-seanjc@google.com>
	 <3cb683b4-973a-4b3e-a5d5-a8baa8a70eb0@redhat.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-JOgeb2pU8FOLtFZNxJ2T"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-ebf023/1779303018-2A9623FF-30B6FFEF/0/0
X-purgate-type: clean
X-purgate-size: 8201


--=-JOgeb2pU8FOLtFZNxJ2T
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sat, 2026-05-16 at 09:42 +0200, Paolo Bonzini wrote:
> On 5/15/26 21:19, Sean Christopherson wrote:
> > Extract the guts of cpu_khz_from_cpuid() to a standalone helper that
> > doesn't restrict the usage to Intel CPUs.=C2=A0 This will allow sharing=
 the
> > core logic with kvmclock, as (a) CPUID.0x16 may be enumerated alongside
> > kvmclock, and (b) KVM generally doesn't restrict CPUID based on vendor.
>=20
> Even for native there's no real reason to restrict to Intel, I think.
> native_calibrate_tsc() only limits itself because historically (prior to=
=20
> commit 604dc9170f24, "x86/tsc: Use CPUID.0x16 to calculate missing=20
> crystal frequency", 2019-05-09) it used a hardcoded table of crystal=20
> frequencies.
>=20
> Of course paranoia applies, but for virtualization, if the leaf exists=
=20
> there is no reason not to trust it.

Agreed.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>


--=-JOgeb2pU8FOLtFZNxJ2T
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDE4NTAw
NFowLwYJKoZIhvcNAQkEMSIEID7ca3tuJwwUf5Js/sG6GGefWz90VKTOFSllAHg4ow4nMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAMC/+9eJS22ME
MZ7NXE3U3R/3x8P0KKWdW5/+eBTFCJ2VXjwjGy0nETrehf1T20o7VuApc+cJe6NFMwRobeAeXygx
UG/dP14WgdeHZT0MLgjLa6iAQ2CgXPyIe8GyXnL2uVMxh9ZE1kwYbzFYfjAtUxIePQB8o4aqZs1h
YzYp/wYay7NUEo0UmyD+Ix6Nk1o8D7qkxAdEpmdptYGaCyYw0QeSziPdE9Cb84HwDmh5PcYkzhaQ
SazrVeN/qoyMBipnqtoMvGUfmIwNPtadKdHh72gR0Y2+Jm5FDehQbDFBW1g5qHCojjaiHjnS4Mjk
N3TS7gayOWNrj67usQ7we1tqzNAmE+zm+3UfLhU51TVExceZevs8l3qg7lbmIXrGRr2QrQGCpirJ
Q/SRZOzxUkMLhUs4rkQibapb4wKtIGduczQjlwcsy+lmPe0GF9VRGU9DlCgIkWEFFZ4/B6yUNhKd
Pse/rflqiJ7RUeR3ARoYFPs+Rbvi6HLm+r8iJKmVA5tsdsKiZoqgg2OBi1eA1gjrJSIzRsdIzILE
T/rVrcG8RpHCr1WRM4aZz4xi4abpsqqauNiBN5kpZgfhbTpETfTSTZfKBDPbHGP9VUNTodYU0Fdt
p88tgNmgnsi6M2WtYalG0lEiWgR0dPcxze4AR9Pmbz0uR0vJsS8jb05Qe5peMuYAAAAAAAA=


--=-JOgeb2pU8FOLtFZNxJ2T--


From xen-devel-bounces@lists.xenproject.org Wed May 20 18:52:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 18:52:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314296.1584251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPm1n-0005zd-2B; Wed, 20 May 2026 18:52:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314296.1584251; Wed, 20 May 2026 18:52:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPm1m-0005zW-V6; Wed, 20 May 2026 18:52:22 +0000
Received: by outflank-mailman (input) for mailman id 1314296;
 Wed, 20 May 2026 18:52:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPm1m-0005zQ-9M
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 18:52:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPm1l-008YEM-Lq
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 20:52:21 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e02dc-bab6-0a2a0a5309dd-0a2a450be6d6-8
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 20:52:20 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e02e4-212f-0a2a450b0019-5a9b3222bfcc-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 20:52:20 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPm1d-00000007UNm-3bew; Wed, 20 May 2026 18:52:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=eRikeJAaevbA4NP2g19rUNwI2NZyhVnTYBWtQ7dcaAU=; b=lgUr7i8EL2F8QaWtzohapoINjb
	dAnsORiobdYMPtmsSDZ/QRiN7s1rJUCLo9RKbLoIg7hISvL/AVEQZV+KPYSUfrPlPLBx6WxW38sGS
	StE/N1VLLOq2EXBHiHp5tpuj4XnsA94KqqySKjvCZH1818yr33rWd2lt3i8Z7+V5eDgAVvzdgankH
	o6qQUd23ZxwUk68fsqyexc2ORewi6gkpiiPpEOsilLASL6yk5nr0Xj2C2toi+f9IuAfZLfUPegn0l
	dMC3Fcyo7XJFJ3v8+0OXg/iwVZLcN5GdGUs4G5fr4w3PaILbl4vVz1q0UuQpfAUDYMnvOFqzrUtKR
	sQuhKA1A==;
Message-ID: <0a3aa07a1d3c4bec2b89f8026093969155b73caa.camel@infradead.org>
Subject: Re: [PATCH v3 41/41] x86/kvmclock: Get CPU base frequency from
 CPUID when it's available
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 19:52:12 +0100
In-Reply-To: <20260515191942.1892718-42-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-42-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-iph/FD/9Oere6U4F6y6S"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-42698a/1779303140-1AF76F3B-1CF750A4/0/0
X-purgate-type: clean
X-purgate-size: 8741


--=-iph/FD/9Oere6U4F6y6S
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> If CPUID.0x16 is present and valid, use the CPU frequency provided by
> CPUID instead of assuming that the virtual CPU runs at the same
> frequency as TSC and/or kvmclock.=C2=A0 Back before constant TSCs were a
> thing, treating the TSC and CPU frequencies as one and the same was
> somewhat reasonable, but now it's nonsensical, especially if the
> hypervisor explicitly enumerates the CPU frequency.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> ---
> =C2=A0arch/x86/kernel/kvmclock.c | 16 +++++++++++++++-
> =C2=A01 file changed, 15 insertions(+), 1 deletion(-)
>=20
> diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
> index 62c8ea2e6769..7607920ae386 100644
> --- a/arch/x86/kernel/kvmclock.c
> +++ b/arch/x86/kernel/kvmclock.c
> @@ -190,6 +190,20 @@ void kvmclock_cpu_action(enum kvm_guest_cpu_action a=
ction)
> =C2=A0	}
> =C2=A0}
> =C2=A0
> +static unsigned long kvm_get_cpu_khz(void)
> +{
> +	unsigned int cpu_khz;
> +
> +	/*
> +	 * Prefer CPUID over kvmclock when possible, as the base CPU frequency
> +	 * isn't necessarily the same as the kvmlock "TSC" frequency.
> +	 */
> +	if (!cpuid_get_cpu_freq(&cpu_khz))
> +		return cpu_khz;
> +
> +	return pvclock_tsc_khz(this_cpu_pvti());

I'm fine with this in principle but shouldn't the fallback be calling
kvm_get_tsc_khz() instead of directly calling pvclock_tsc_khz()?



--=-iph/FD/9Oere6U4F6y6S
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDE4NTIx
MlowLwYJKoZIhvcNAQkEMSIEICQ+S9WKGu2dd+J62OoYQxFX0FPKGyzSXOKV7vozFMv6MGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAa2emjoU+APF4
kqv55ASwWrq71cxMkBfS9xPkjVAzSLFvp/J4aOalhMIe0At74TZpPZOfjacFhDJjCJ8y2dD5z7dH
U+ec/b+Kj+YYv+68UaP4DlpI5Ue8Pw+u/yyxTljlf3x3D7aXf1o5Q8apZ23EW7MVoAjrGqy+xFu9
hBrLPI+8LGi9+2KfAOLznoDqAFbEP7Nl2l9qYuQ2IZNB9AeQCJ4E15Ne7bMJHFuWIhlAfoJpCBQ7
viQe7gzQHorNsiIxdaQCdk5QtIpIiR3fUHpBRrZxQyoQ5VjyAYh86ioMxITc8Ln6gVLtpZGHcivm
Tp5g2Y87Da03qaHslfYEXdNg6RGFfP5zCcnYB6hNUztCMT44/n3c1L1F64iKQDwrFIEJB4v3ig5n
qogjVcniGBOkncAOUTgIhRnR1FWLQRNHOygoZybtO8xGFJ/aYFRhhKi3v/7j+TvWVjh8qfERWbK1
5VmgOpSLx/0AARHDek54pklqDlmLxpFkx4FHQZ9pU2SquzjqPioSKRJuOcYbD5byMjS/fjxi4OR0
EL0ZZ4/QJsxhAlQT/Y2hJTcV8p4frvAJ93Dnk26OoFaLjQaOHeFoknHRHNvoco3z76l8/tBBcx4M
mZour2PV9c459u9CS11Q7LJ3XIqvsRpsfo2Okg8ZUrQTJhAvDaJQHa/zRgvQR6kAAAAAAAA=


--=-iph/FD/9Oere6U4F6y6S--


From xen-devel-bounces@lists.xenproject.org Wed May 20 18:59:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 18:59:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314303.1584260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPm8Y-0006ld-PI; Wed, 20 May 2026 18:59:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314303.1584260; Wed, 20 May 2026 18:59:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPm8Y-0006lW-ME; Wed, 20 May 2026 18:59:22 +0000
Received: by outflank-mailman (input) for mailman id 1314303;
 Wed, 20 May 2026 18:59:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPm8X-0006lQ-79
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 18:59:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPm8W-000PiE-FQ
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 20:59:20 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e0476-bab6-0a2a0a5309dd-0a2a4501e21a-24
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 20:59:19 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e0487-c1f2-0a2a45010019-5a9b3222b586-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 20:59:19 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPm8N-00000007Ufj-3Rdt; Wed, 20 May 2026 18:59:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=Q62hcPFZc1NYqJLxUGdKsz2+hy0EqGUz86+v1ivJn+s=; b=g5JoUbWJQdG7sePmt8GlN2Kgqm
	bsgtRyCbYF3vxM3/Nedaj8XxmrWzGATtvuAoTxGm5KPEf4EzzLf0v9/Hafh3vT9zK/rHx2DttmiKu
	pW8SpVX/0FYF8PsbiegIcabyU7BBcJaQnsD66lRZe9YS0baBlP9pULXnvjknCaSDfUjVGy0wCLtlT
	Qtqzt10CHymMbbqv2Ok+IgydIWN/ELCCTwz/1IKoddqkR4WFERL7cLKMVv2X7yhLMBw9v111BUt+n
	/qDNPW6NjTuKyF5mttga1f22yZprgTCfTqXjQkt3CUsKmuXOw/3+n57JgRGvbQxdhhOntA39VrO8m
	LWv7AbDg==;
Message-ID: <810a35d31c00daf48efae533134f68e23ef98de8.camel@infradead.org>
Subject: Re: [PATCH v3 01/41] x86/tsc: Add a standalone helpers for getting
 TSC info from CPUID.0x15
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 19:59:10 +0100
In-Reply-To: <20260515191942.1892718-2-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-2-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-AYSJ/gnlvUPwOtRc9eC8"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d62444/1779303559-B4D49FF4-A522FA9F/0/0
X-purgate-type: clean
X-purgate-size: 8046


--=-AYSJ/gnlvUPwOtRc9eC8
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Extract retrieval of TSC frequency information from CPUID into standalone
> helpers so that TDX guest support can reuse the logic.=C2=A0 Provide a ve=
rsion
> that includes the multiplier math as TDX does NOT want to use
> native_calibrate_tsc()'s fallback logic that derives the TSC frequency
> based on CPUID.0x16, when the core crystal frequency isn't known.
>=20
> Opportunsitically drop native_calibrate_tsc()'s "=3D=3D 0" and "!=3D 0" c=
hecks
> in favor of the kernel's preferred style.

"Opportunistically" ? Now that looks wrong too...=20

> No functional change intended.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-AYSJ/gnlvUPwOtRc9eC8
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDE4NTkx
MFowLwYJKoZIhvcNAQkEMSIEIJTKQSj5R0hL5wkeRRYmvqS4pDifeFwjrpzfGk4puPKgMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAPT5nfPm9Tu6C
pPBq8njqRPhcBZYlkcOxVTVkZO4EjvssxcnINr1dR3R76AFmK6DJz+2N2uZW5eH+GKG0gCAc0gUy
9hEurC8QK/SecNdo5ye7H4yC5SP3G0BiRAjEulg42z4SYjPXuwOHOhtacjGz9kfKUkewRYQto5nZ
F+sWmHhs2AhWVVR8pf5rYNl9t4fxcNpswW18V8QOWnIoOabambIEeLB2tooe47LLhQtcGGtM/2I5
U/Zy49WvUd9xiq7wCg+L15p/QfZaLrmUvW97SKggx1eIFDtG41udmHoLrlURkn09v4rH+h7rV4Hv
66xEoAl3zMqx9DDcKPFG5uQ8V5r/nB/Cz6PBsvAWr37jPEE5+1vFPUP99OGQJfxyYcX0TBprUz80
mVEOgcB5IydinJ6HuUCTUiotpHW6/kIgx1rpjzuMFRtavSIL2C3TEl5lM/L5eoNyJ2cJv6FDOFTp
gnuNxSfhtqWU7AALQY0H9KXrJmEGiX7KO5ecyB1kx323N0IlMT4Ha4nBGOXkbtNkQum569CrPDHj
KJoShZMBUwYG7aYuhgGyFD2jl4MwUv1ZUk9toSDxlYJjzRFgaJwMVVXbNtAx06SU9d5wSqfSyrir
yvqPwlkz9iLS45zueEoF9E0QLonk81foUOW29bP+qJ7Tf3KTkMpr5xbJD77sAgoAAAAAAAA=


--=-AYSJ/gnlvUPwOtRc9eC8--


From xen-devel-bounces@lists.xenproject.org Wed May 20 19:05:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 19:05:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314310.1584269 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPmEB-0008NR-Au; Wed, 20 May 2026 19:05:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314310.1584269; Wed, 20 May 2026 19:05:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPmEB-0008NK-88; Wed, 20 May 2026 19:05:11 +0000
Received: by outflank-mailman (input) for mailman id 1314310;
 Wed, 20 May 2026 19:05:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPmEA-0008NE-7M
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 19:05:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPmE9-00HG8b-GV
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:05:09 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e05b2-5cb7-0a2a0a5109dd-0a2a450c8b5e-40
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 21:05:09 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e05e5-62f1-0a2a450c0019-5a9b3222af66-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 21:05:09 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPmE0-00000007Uvp-12En; Wed, 20 May 2026 19:05:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=8tbHSXv0PduRga+zT/mB8RJeehigf48DptUBou4PkPA=; b=rAm9IlUyk+WfmPm0L70sobS35Q
	8cq3fq5zSk3bgOImc18izqE3hqDuQBOcWwAi1O5HYkWy3804x5Hjt615HyGyxul4NFnCjSsO5DuzO
	0Wxma947xFddm4dHrcR64NJpJnhW0sHTZj6QA8BkmxeP1xHky+iq9cKJEUdVkrGyoMG9YFRydPnR6
	YlGcmhd8pc1HNqDjRNgjymByHXAfA4JYQeQ8Gf/vYwygDzLtt8HiAlvIKUc0Ka10cd3IR029AM3DB
	kB6a2OPg+Fry3XggO/NRKqNmPNLOj7ncCeZNbT9L1Prz6s1Oiz7PpN3BRBJUUYLlxc3EzNGKIzJIi
	0csYMZKQ==;
Message-ID: <44e0d60548d317fd59895f18bd17220dfb2f834b.camel@infradead.org>
Subject: Re: [PATCH v3 02/41] x86/tsc: Add helper to register CPU and TSC
 freq calibration routines
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 20:04:58 +0100
In-Reply-To: <20260515191942.1892718-3-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-3-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-BQ4J6FeuOLTRewu0k3H0"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d25034/1779303909-D9F6ACF5-CEDB96A1/0/0
X-purgate-type: clean
X-purgate-size: 9667


--=-BQ4J6FeuOLTRewu0k3H0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Add a helper to register non-native, i.e. PV and CoCo, CPU and TSC
> frequency calibration routines.=C2=A0 This will allow consolidating handl=
ing
> of common TSC properties that are forced by hypervisor (PV routines),
> and will also allow adding sanity checks to guard against overriding a
> TSC calibration routine with a routine that is less robust/trusted.
>=20
> Make the CPU calibration routine optional, as Xen (very sanely) doesn't
> assume the CPU runs as the same frequency as the TSC.
>=20
> Wrap the helper in an #ifdef to document that the kernel overrides
> the native routines when running as a VM, and to guard against unwanted
> usage.=C2=A0 Add a TODO to call out that AMD_MEM_ENCRYPT is a mess and do=
esn't
> depend on HYPERVISOR_GUEST because it gates both guest and host code.
>=20
> No functional change intended.
>=20
> Reviewed-by: Michael Kelley <mhklinux@outlook.com>
> Tested-by: Michael Kelley <mhklinux@outlook.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Mildly concerned that we might want to support multiple options =E2=80=94 d=
oes
it have CPUID 0x15? Does it have 0x40000x10? Does it have a pvclock?
There are various permutations of those which are perhaps best handled
by *trying* each one, in some order, and populating a struct with the
answers?

But on the basis that perfect is the enemy of good,

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

> diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
> index b5991d53fc0e..e9e7394140dd 100644
> --- a/arch/x86/kernel/kvmclock.c
> +++ b/arch/x86/kernel/kvmclock.c
> @@ -321,8 +321,8 @@ void __init kvmclock_init(void)
> =C2=A0	flags =3D pvclock_read_flags(&hv_clock_boot[0].pvti);
> =C2=A0	kvm_sched_clock_init(flags & PVCLOCK_TSC_STABLE_BIT);
> =C2=A0
> -	x86_platform.calibrate_tsc =3D kvm_get_tsc_khz;
> -	x86_platform.calibrate_cpu =3D kvm_get_tsc_khz;
> +	tsc_register_calibration_routines(kvm_get_tsc_khz, kvm_get_tsc_khz);
> +
> =C2=A0	x86_platform.get_wallclock =3D kvm_get_wallclock;
> =C2=A0	x86_platform.set_wallclock =3D kvm_set_wallclock;
> =C2=A0#ifdef CONFIG_X86_LOCAL_APIC

Can we move those (and maybe everything in the context there too) up
*before* the check for no-kvmclock at the top of the function? Probably
in a separate patch.

--=-BQ4J6FeuOLTRewu0k3H0
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDE5MDQ1
OFowLwYJKoZIhvcNAQkEMSIEINsIUHhejUFzHIyQHegqaLqM7IIfDGimFTPgqrmLZ+apMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAh+w8PesY8mIO
er/Nr+QFVMGIFZcQJ4eGQmhVTLxh6uPcn3Jq8EVibLvaEVvjWWmo68ANJD5oqtNB5vbcIvct1mdF
LtaX1wIgQ++d79DHV5xr0rxefqnMJX7G82Q2F0PeUy8yY53Iisyb/NlbeV1GJ1RjnZcI2liCEh7j
34hxCZRq4aUUPdtn+4+pA+FUV6++6gzXhP9rDv2UIhyPFGtK3Kuhf62dXoL+O/OPOccGu1ccQ9YE
2EZwwdM8BJuI5IK8+V/YwcOxYESo+tgT8p1FKIDB6SD0cqiTaQXTUZNC5Plyim120+0WwhzFT0AN
1rmAxvi4x1wyAEdSdgYMMAm8k5+CtNB5uxZvI7ZJcJ7bD4At7H8Bkgz8ULJxYfQMyclaoBVepVNo
UquMMgo2tcylzSsgCbbJG2J2gxiKas3++0RtGoQXP90KKSLPsUGbA5oKtFMJ93psXQagj92Q2MTD
MhtR4tTAkjuo/97YhzyWL0jZs5s4nk02EdewhQ6KsZxBeMNKcMqwY0Yf+oP3u/t2hFszeZUwb85R
HSm7hUcauHVtijQx/rGbE8PjehRZV4l05hKTXEWdTnJ8OCiNOE0XTHmzH3wdp8NTH8gpGVxU8cBP
Dzfzf2wsgnvcXFXj7iOzLKkyI+2vF9eTQ8+xRi6fhhPIBuxbSQCBcn7DVfLmSMIAAAAAAAA=


--=-BQ4J6FeuOLTRewu0k3H0--


From xen-devel-bounces@lists.xenproject.org Wed May 20 19:06:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 19:06:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314317.1584278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPmF7-0000Ss-NO; Wed, 20 May 2026 19:06:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314317.1584278; Wed, 20 May 2026 19:06:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPmF7-0000Sl-KG; Wed, 20 May 2026 19:06:09 +0000
Received: by outflank-mailman (input) for mailman id 1314317;
 Wed, 20 May 2026 19:06:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3HAYOagYKCbcpbXkgZdlldib.Zljubk-absbiifpqp.ubkmolgbZq.lod@flex--seanjc.bounces.google.com>)
 id 1wPmF5-0000Sa-Re
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 19:06:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPmF5-00BG1W-7p
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:06:07 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3HAYOagYKCbcpbXkgZdlldib.Zljubk-absbiifpqp.ubkmolgbZq.lod@flex--seanjc.bounces.google.com>)
 id 6a0e0608-5cb7-0a2a0a5109dd-0a2a4505a596-24
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 21:06:07 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3HAYOagYKCbcpbXkgZdlldib.Zljubk-absbiifpqp.ubkmolgbZq.lod@flex--seanjc.bounces.google.com>)
 id 6a0e061d-aaa8-0a2a45050019-d155d6cab9a8-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 21:06:06 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2bd6cc53fd6so53194455ad.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 12:06:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779303965; x=1779908765; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=6WNRv8jV4IoEb/swCa+lI2OUcbnWLzJ/hZWZsifg+pw=;
        b=WN4B1m7Eqe1kDKwb0yBMWGpk5ahowPrWZmydymmyRQWSwFbHEkq6rrsNznrg6su25d
         prcXvaYRqnJVKKMeM1wfYgTS+MKuBPol5Ro7Xt4OU5Z+VGpnlkWfcmrTvK094yqTxZJf
         rgE1kxkuYtnHZeumI5sV87gkoamA9d17OLkhkeVM3Xch5Gb9hPss+6QZH3NDK8ql9iTR
         dA5zEs/S0qyuIsZ7LT8MEDFT7pVC/rRKpYq33eCm/WJQnVltzivto2ZElP5jdrKD+0Yg
         FUPsTKBkxgLB3MMpUAcEYkJvFBEME9yYwfjzgFZeCeKnelwzDkHY4kosTcPJeK+kT2r8
         LZ8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779303965; x=1779908765;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=6WNRv8jV4IoEb/swCa+lI2OUcbnWLzJ/hZWZsifg+pw=;
        b=dJWxgdCgULIWfCKlorRQPNmdIMD/vUbpS8Fy/eApDZ7CwG3UxtN/iGFnEKAW07RDIR
         WPsJE5KXYp946eltdIs2OwGN9SYyARBmx01QVnBDF7xn7u/rw6sWGvM5d+Xj659FTs0J
         hOtGXzw4H8SUoFTtNpsXFKyyuA1+tT2Dm82vnwjawtsEEeLjmUNzS9qRNC9Vg0VIuiz8
         J8cufZPO32rN9FiVwkBTlm63AbPJMiXPPcQGZiTsak0tuUGh+yo6hvXwNAw8D/NLqEkd
         R1Sb6vLbk7aA6uamsHE4zo6AT0MY/P/FY10y2BIHqlrWj4hXflCYtcxOwyFRldyHP5oe
         RUbA==
X-Forwarded-Encrypted: i=1; AFNElJ+TA6sybeuknCpjWOmMq4EqfaHPxrRIOlgkMf+oCeaPOE7t70AOtF/ZzJXVLve/9wX2htocEtmHu6M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzBg0diXG0Rt33gSzzz5GpZAlRg8kr/vj7acbaNQylFXTgQLffI
	nMaRAmeGpHnf1vATUbimU5ITqKNgGi+et4PS8WM8rAPawoXiDaDd9P+CzrrxjKWVoGw8HufIxK3
	C9VqjAQ==
X-Received: from plup11.prod.google.com ([2002:a17:903:4b2b:b0:2ba:67f8:6257])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:7d96:b0:2b0:bed1:46f7
 with SMTP id d9443c01a7336-2bd7e910f99mr193795045ad.37.1779303964438; Wed, 20
 May 2026 12:06:04 -0700 (PDT)
Date: Wed, 20 May 2026 12:06:02 -0700
In-Reply-To: <0a3aa07a1d3c4bec2b89f8026093969155b73caa.camel@infradead.org>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com> <20260515191942.1892718-42-seanjc@google.com>
 <0a3aa07a1d3c4bec2b89f8026093969155b73caa.camel@infradead.org>
Message-ID: <ag4GGqYv0DHoVx-C@google.com>
Subject: Re: [PATCH v3 41/41] x86/kvmclock: Get CPU base frequency from CPUID
 when it's available
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c201ff/1779303967-E3D67443-573BBDD1/0/0
X-purgate-type: clean
X-purgate-size: 1889

On Wed, May 20, 2026, David Woodhouse wrote:
> On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> > If CPUID.0x16 is present and valid, use the CPU frequency provided by
> > CPUID instead of assuming that the virtual CPU runs at the same
> > frequency as TSC and/or kvmclock.=C2=A0 Back before constant TSCs were =
a
> > thing, treating the TSC and CPU frequencies as one and the same was
> > somewhat reasonable, but now it's nonsensical, especially if the
> > hypervisor explicitly enumerates the CPU frequency.
> >=20
> > Signed-off-by: Sean Christopherson <seanjc@google.com>
> > ---
> > =C2=A0arch/x86/kernel/kvmclock.c | 16 +++++++++++++++-
> > =C2=A01 file changed, 15 insertions(+), 1 deletion(-)
> >=20
> > diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
> > index 62c8ea2e6769..7607920ae386 100644
> > --- a/arch/x86/kernel/kvmclock.c
> > +++ b/arch/x86/kernel/kvmclock.c
> > @@ -190,6 +190,20 @@ void kvmclock_cpu_action(enum kvm_guest_cpu_action=
 action)
> > =C2=A0	}
> > =C2=A0}
> > =C2=A0
> > +static unsigned long kvm_get_cpu_khz(void)
> > +{
> > +	unsigned int cpu_khz;
> > +
> > +	/*
> > +	 * Prefer CPUID over kvmclock when possible, as the base CPU frequenc=
y
> > +	 * isn't necessarily the same as the kvmlock "TSC" frequency.
> > +	 */
> > +	if (!cpuid_get_cpu_freq(&cpu_khz))
> > +		return cpu_khz;
> > +
> > +	return pvclock_tsc_khz(this_cpu_pvti());
>=20
> I'm fine with this in principle but shouldn't the fallback be calling
> kvm_get_tsc_khz() instead of directly calling pvclock_tsc_khz()?

Oh, yeah, for this patch, definitely yes, so that there's no side effects. =
 The
question really should be answered in the context of "x86/kvmclock: Obtain =
TSC
frequency from CPUID if present", which subtly impacts the CPU frequency, b=
ut I
think the answer is "yes" there as well.


From xen-devel-bounces@lists.xenproject.org Wed May 20 19:07:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 19:07:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314322.1584287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPmG4-0000xT-0a; Wed, 20 May 2026 19:07:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314322.1584287; Wed, 20 May 2026 19:07:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPmG3-0000xM-TU; Wed, 20 May 2026 19:07:07 +0000
Received: by outflank-mailman (input) for mailman id 1314322;
 Wed, 20 May 2026 19:07:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPmG2-0000ww-JM
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 19:07:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPmG1-00BGAX-Vm
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:07:05 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e0644-e002-0a2a0a5209dd-0a2a4507d81e-20
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 21:07:05 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e0659-229c-0a2a45070019-5a9b3222ad7a-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 21:07:05 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPmFr-00000007V1a-3HR4; Wed, 20 May 2026 19:06:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=KBm/TLbfPZj0qsgOsLDng1ZI6bZ8URdy5t6tLhKnzXo=; b=TkxNPg1dpluV9BITXlJJuw4kXL
	2kkGiWpzEqbOAjSw/BdQ09Ld6amQ8ITurcs6fNtHk9Y/t+cQtdtTHd04wgxkqwGWW7llQKeaVObp0
	mlNZxv1L09bDDezWrGXcVN2x+ycvHSRkWXZ7pyo8MwjmEdootwOG0yhvUfBu2Mac+CzkiCegrf/RP
	vexXz15qcADvTfdiM2LJ+ZPsjGJKo6BCQ+nM+DoJnqlXZIyYHG+DcQxJ5jpT4rfkXnD09znJvTRtO
	cG2SocKIG66e5AjMqA4BbaR9tbpcvlZQS+U+VRYGaHEmTrb381orpErgam7Upj7TNnnO8K4TuYNkk
	Fbyuc8zQ==;
Message-ID: <5cbc62dd2ad1f3f7b8ed4771c9ae02c8eee45886.camel@infradead.org>
Subject: Re: [PATCH v3 03/41] x86/sev: Mark TSC as reliable when configuring
 Secure TSC
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 20:06:54 +0100
In-Reply-To: <20260515191942.1892718-4-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-4-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-rhI5F8i7SpBc8jvUjeNP"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-ef75cf/1779304025-09D6FC48-C604C7D8/0/0
X-purgate-type: clean
X-purgate-size: 7930


--=-rhI5F8i7SpBc8jvUjeNP
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Move the code to mark the TSC as reliable from sme_early_init() to
> snp_secure_tsc_init().=C2=A0 The only reader of TSC_RELIABLE is the aptly
> named check_system_tsc_reliable(), which runs in tsc_init(), i.e.
> after snp_secure_tsc_init().
>=20
> This will allow consolidating the handling of TSC_KNOWN_FREQ and
> TSC_RELIABLE when overriding the TSC calibration routine.
>=20
> Cc: Tom Lendacky <thomas.lendacky@amd.com>
> Reviewed-by: Nikunj A Dadhania <nikunj@amd.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>


Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-rhI5F8i7SpBc8jvUjeNP
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDE5MDY1
NFowLwYJKoZIhvcNAQkEMSIEIEnxGKASfqeQ+RjblD7XQkcFO3wA0ehRKjPcM9LOmGXQMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIATG8wc1GjOtxy
kylp6pGxioGQdkj5dRb42uttb2Ne6QBGWoYZCDvVXau4hsxy0B/utxM28eMbbcpqNZUYhBPhQsqA
4TL1bJXxG5HiQRo96kCSXMVAsPxRbc3DFkLCpclnffa8/D+PKr7pim8466An6tm5EzMASBbEDslo
Oko7XH68U4+O0OsqqCQBLsZ20WFqITG173G9fgTBZ39bjxhzPEtoIQk0sqhFVP6IVVVjxsCoam1d
b2jaAdnmyHk3uF7CeGJLR7zWXwhOfhDBgmW9sGodDBpBDQqUZ1c5jZQtiJbOJlqyZJZCWEF4G6Wj
bPegjhOcUk57Ldw/Unl+jHocrGZ/wuzd6zyScR0ZAu95bskOgLr7FucEAyu+TtZ0Csbqc7FSQ2T4
62zsYMa2RruW558s2aGBV0hTknpnPzLj/OZog0uWrhO3Ddp0jT3LueQ+AaZboE7FulxCj4qBg/65
PNbdEimtq2rwMiQEbsqzIKSh5M+1+yOb2MpwtQB+YlYgRshNMfPCbqnfSsZIYL3cC1oV+7lvBegh
ICv5FKrmqDWjwMkJp7nrfSYZ7282YmMtNWKId0irfTfEyhzsdol9nL88wpY6cqvUZTFWp2+1SO5h
jizWzk0OtXDPeKj/8dxNIyNko4ljadhKP/nzoetpvuJ4Ih172rkrLAgFE0MMef8AAAAAAAA=


--=-rhI5F8i7SpBc8jvUjeNP--


From xen-devel-bounces@lists.xenproject.org Wed May 20 19:16:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 19:16:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314335.1584297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPmP4-0002n0-Re; Wed, 20 May 2026 19:16:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314335.1584297; Wed, 20 May 2026 19:16:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPmP4-0002mt-Nm; Wed, 20 May 2026 19:16:26 +0000
Received: by outflank-mailman (input) for mailman id 1314335;
 Wed, 20 May 2026 19:16:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPmP3-0002mn-9o
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 19:16:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPmP2-000RxG-I7
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:16:24 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e0857-bab6-0a2a0a5309dd-0a2a4503ec7c-42
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 21:16:24 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e0887-672d-0a2a45030019-5a9b3222dd60-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 21:16:23 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPmOr-00000007VRU-2Tk4; Wed, 20 May 2026 19:16:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=9DXK3vuF2YCkTc2OlQDicr0ftdse5wXqLiL3ouHr4ms=; b=VE5Yl6ZhrWBXN0rkkMgd1i5Lrb
	/e2rPlMT7Mb3GqHa+oX3i6w94pFC89AjuOqCgc1nooRFQyYx6dBbwsQtYGtniSDaMP3aVKVQM9xPv
	6TQzcW3f5akieX8W/8kbw8fN7AHERtGlv1aGw9OwkeDiCUTUPWriwTrNGKzDcSJfOeiAk0ZkRNeu/
	6T3LJesThKwF+slByTbXW8z3S+f8lP/fWXPQ+Uh4eYGqiqcTRb4jshPwMnuLbdWYtBdjCgCKaA1oi
	D3DrQ0uSzxTAHw6kTVBGBkAiQ8fM6ekQOv8skb/cQyr/zoo7dqYLKHBUChPS6tXFlRaXnEb5w+I78
	jLR5Hp0w==;
Message-ID: <5136c8a3d03d33f0d249ebcf72b956d15ab80757.camel@infradead.org>
Subject: Re: [PATCH v3 04/41] x86/sev: Move check for SNP Secure TSC support
 to tsc_early_init()
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 20:16:11 +0100
In-Reply-To: <20260515191942.1892718-5-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-5-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-SwdCHlOnxZcQ2QC94Edp"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-33051d/1779304584-37F4A938-3636054C/0/0
X-purgate-type: clean
X-purgate-size: 7845


--=-SwdCHlOnxZcQ2QC94Edp
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Move the check on having a Secure TSC to the common tsc_early_init() so
> that it's obvious that having a Secure TSC is conditional, and to prepare
> for adding TDX to the mix (blindly initializing *both* SNP and TDX TSC
> logic looks especially weird).
>=20
> No functional change intended.
>=20
> Cc: Tom Lendacky <thomas.lendacky@amd.com>
> Reviewed-by: Nikunj A Dadhania <nikunj@amd.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-SwdCHlOnxZcQ2QC94Edp
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDE5MTYx
MVowLwYJKoZIhvcNAQkEMSIEIHiKGacM4TY5tAUAqrO3AjQIwXDmEtGGTmDAuObCgEqWMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAwtu6Nb+tF6ZQ
fITuHb/8CSbZijdAgHV/Jsf2ye3IstsIAbSdcDaQMT4uhN7DGpGQVe3mPPlhkdHnVOgmNPHggzNU
t1b4hnrUiJWlCEqy5Du7AbY4zCWAy4BnIjSivKAQyQyl4eo2DGqNo+mqNYdV0BhuV8OPVvHUwnN5
t4o+N2qXpL3iR1V0VrogkvhvdWQDBoCHrY6dNp+hQ2OHdEkNvsk//VPtI4eWfuENLUTIc3WZVaZC
QcGb4oAmbnmnPYYtYW1tPGRpcBoEr+fuA4fu3vL9z+rWb3oo6q+wXmtB2CpNZNp4y4V+2PQZe0No
th6d8vRFtjGWb+HSHlV8vn5h2pEJuPEOW8iy8ACnN5j50K83NVjQmdi6L37osmycAtmU0p0/d/X6
PZKVsfszZg/M1uTyK9hJiqbc6nA+Vq5aZVGf4nIs5dO0cJXSFBYIY0M5HsUL8sPsbjthgD0MCGgj
K+Jr0umkP0u3caph7mTzI1oqFX7OP5skpOYWKaB0i94XGJeU9+tK2qY7Q7U+3HUXiYiVS+S07J3M
RXrbwfKWI0gG4otN+g3h1SEcsPqPsTInt4dHM9qAYCAqdJKefo6zYhZ/xDqnOkOC2b7Zb7vVNofW
o6Fx4h81SnQkZuI43ATGuFnJ+xeZBq0lNdnnZBiv6kcX33I4wc8HCoWXTnQpFHUAAAAAAAA=


--=-SwdCHlOnxZcQ2QC94Edp--


From xen-devel-bounces@lists.xenproject.org Wed May 20 19:53:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 19:53:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314356.1584304 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPmyM-00006E-G6; Wed, 20 May 2026 19:52:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314356.1584304; Wed, 20 May 2026 19:52:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPmyM-000067-D2; Wed, 20 May 2026 19:52:54 +0000
Received: by outflank-mailman (input) for mailman id 1314356;
 Wed, 20 May 2026 19:52:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPmyI-000060-Tm
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 19:52:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPmyH-000WSn-8r
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:52:50 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e10e8-2eae-0a2a0a5409dd-0a2a450cee2a-42
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 21:52:49 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e1110-62f1-0a2a450c0019-5a9b3222a4aa-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 21:52:49 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPmy6-00000007X3w-0iI8; Wed, 20 May 2026 19:52:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=NfDpWCHNwCELYmlOslr/nQ3b8qR5PBi6+oTunXmBd4o=; b=DkoJ/w1PPPOjo84eaBmK3YrnUk
	9H1j54dtNQaWS9aYKjJOV4LaeDeHzYJ8wV/KR7UGTuxRrRQylp1GWU6k1H+s5w+eWsWwmmqxdybuH
	gbtoAQOU+y7SeDsiyFcCl2IfVipHbaSO3RiSLrS2oaDiAd+Abl2Smbu93cLi9/vTIw/JMe5RK897z
	ZBi1VceUgVrtC6pGP+YpmzNDSNqVjVkou6NYUlB7ZUQYrezAJVmCXwGu/ph/hOuIrt1W+H572McTe
	9nbmgL7H4CD3jaFTXtPFuXwG8PtQOd7d5siZIRaz2wm2lCJhwyriFq7UeEck7P0P1/rHzSB1WP72H
	DdxKO+PA==;
Message-ID: <cbb47751c74ea07298b87145c65b12850d731ff7.camel@infradead.org>
Subject: Re: [PATCH v3 05/41] x86/tdx: Override PV calibration routines with
 CPUID-based calibration
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 20:52:36 +0100
In-Reply-To: <20260515191942.1892718-6-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-6-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-5uq1B3Al8/yI7wiKnpz0"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d25034/1779306769-DB370CF5-EF504B1B/0/0
X-purgate-type: clean
X-purgate-size: 9337


--=-5uq1B3Al8/yI7wiKnpz0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> When running as a TDX guest, explicitly override the TSC frequency
> calibration routine with CPUID-based calibration instead of potentially
> relying on a hypervisor-controlled PV routine.=C2=A0 For TDX guests, CPUI=
D.0x15
> is always emulated by the TDX-Module, i.e. the information from CPUID is
> more trustworthy than the information provided by the hypervisor.
>=20
> To maintain backwards compatibility with TDX guest kernels that use nativ=
e
> calibration, and because it's the least awful option, retain
> native_calibrate_tsc()'s stuffing of the local APIC bus period using the
> core crystal frequency.=C2=A0 While it's entirely possible for the hyperv=
isor
> to emulate the APIC timer at a different frequency than the core crystal
> frequency, the commonly accepted interpretation of Intel's SDM is that AP=
IC
> timer runs at the core crystal frequency when that latter is enumerated v=
ia
> CPUID:
>=20
> =C2=A0 The APIC timer frequency will be the processor=E2=80=99s bus clock=
 or core
> =C2=A0 crystal clock frequency (when TSC/core crystal clock ratio is enum=
erated
> =C2=A0 in CPUID leaf 0x15).
>=20
> If the hypervisor is malicious and deliberately runs the APIC timer at th=
e
> wrong frequency, nothing would stop the hypervisor from modifying the
> frequency at any time, i.e. attempting to manually calibrate the frequenc=
y
> out of paranoia would be futile.
>=20
> Deliberately leave the CPU frequency calibration routine as is, since the
> TDX-Module doesn't provide any guarantees with respect to CPUID.0x16.
>=20
> Opportunistically add a comment explaining that CoCo TSC initialization
> needs to come after hypervisor specific initialization.
>=20
> Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>

I don't much like stuffing the lapic_timer_period... but I'll give you
'least awful option'. For now.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>


--=-5uq1B3Al8/yI7wiKnpz0
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDE5NTIz
NlowLwYJKoZIhvcNAQkEMSIEIIZybDgq34ujgmmOx9jiMi5WEwl8o3CwAule8aCQAiSaMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIASEFWzHe5BfGG
XZev/QqN9whQng0KPbnyISACnOAw7u+q7+XRCdUhdyPvJueFpYdFcSxk4fSJhwdjQkpbGkduGGpp
dtJfA+I8wId3jEsq1KdLLGqrpTy8i+ZNV9APBq8vx5fHrAQnV5afJD41leNimQGXR+H5GPha7fX5
/P64AO9LEsdrmUg3+hN/yzOzG70hv7QmIq7dQIjONMic7R23DqamkDuHUC9mLyNqZgnYyDoCi6XV
K/JcgM9Qfoy4OBqdCrIYCL9Pw/JBpR9m+0JUZBpvrajeRDL+zQhfi2FzrVz6r5INKI5ZYL+z7SlV
ehkDtTmlq+4Nnvg9thtMrRYpJLk9KStlwkxvXpmnqtnumxH0AE3R14YceeYmoyH3Tch94Ksanro5
Cd69ZFCnNSP9W3J7ypLYgvX0wvW6/wuHb1PTzLOsUZPDwyhxdsmOtBxY27YDtkgB+bo5dbMBdMf8
9nLewc4jAH7f+dpNEdT/5FPuZLV0DeD2tcfTsguS3+jPRwE6cV8tN0g3ReCae85dfOLyVhpcH37g
To2U44jl5ed3oQhpgQS7AD6pfJd5fQQ1jbLZ0DI/13OfwVd0EVVpn0vP6MojZowIgRVxkP4UFSN+
/px954mmmEDNt7eur2bb89vSLarAdz7oRH1DqSvU8+XRRhdLNtEUMOJ5gIKz6BcAAAAAAAA=


--=-5uq1B3Al8/yI7wiKnpz0--


From xen-devel-bounces@lists.xenproject.org Wed May 20 20:01:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 20:01:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314364.1584315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPn6l-0001ss-8d; Wed, 20 May 2026 20:01:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314364.1584315; Wed, 20 May 2026 20:01:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPn6l-0001sl-4L; Wed, 20 May 2026 20:01:35 +0000
Received: by outflank-mailman (input) for mailman id 1314364;
 Wed, 20 May 2026 20:01:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPn6j-0001sf-4J
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 20:01:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPn6h-00E5o6-E5
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 22:01:32 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e1306-2eae-0a2a0a5409dd-0a2a450ba57a-38
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 22:01:30 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e131a-212f-0a2a450b0019-5a9b3222c51c-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 22:01:30 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPn6Y-00000007XP2-0MYI; Wed, 20 May 2026 20:01:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=z7cL9NmYzNY0dm/kHQmLedGtyro/w1YtGsslfqFf7rU=; b=HTI93RWkuybXpEb4YMAveyPPv/
	sI4YMAa4ukmqd6Inidx4NQ3yOZpxMrKNP6N40nFP81aPdbQAGe+C6a4auz/LaDhVnTansTJKgiPp+
	ewCyEDeXzlncCkeatMNHniDVVnIwy0xUepX5SFJcdKap9uSckbNxHYpzU8O79VCS55ffWk3u8SHEN
	vkeScKhHd2WdYu8Gebnc0FhWr1ivo+FikXYRYAZHCR5Muvom0vT+SAlIDIytr98k6Fyo6eYPHvuBY
	4UB46sdoUfvyiEpyyNqk4c3wip3HM5bpjUnsFbRHzFIt6XP3cWsUoDRkiVEVQJvCXUAc5ElV/IQF7
	afaU1LHw==;
Message-ID: <c347d65f555ad1e10a0e87ee57c5879c7046d0e7.camel@infradead.org>
Subject: Re: [PATCH v3 06/41] x86/acrn: Mark TSC frequency as known when
 using ACRN for calibration
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 21:01:20 +0100
In-Reply-To: <20260515191942.1892718-7-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-7-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-dAeHKvdWKxIIK3rDkIA7"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-42698a/1779307290-23374F3B-3267BB31/0/0
X-purgate-type: clean
X-purgate-size: 8602


--=-dAeHKvdWKxIIK3rDkIA7
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Mark the TSC frequency as known when using ACRN's PV CPUID information.
> Per commit 81a71f51b89e ("x86/acrn: Set up timekeeping") and common sense=
,
> the TSC freq is explicitly provided by the hypervisor.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> ---
> =C2=A0arch/x86/kernel/cpu/acrn.c | 1 +
> =C2=A01 file changed, 1 insertion(+)
>=20
> diff --git a/arch/x86/kernel/cpu/acrn.c b/arch/x86/kernel/cpu/acrn.c
> index c1506cb87d8c..2da3de4d470e 100644
> --- a/arch/x86/kernel/cpu/acrn.c
> +++ b/arch/x86/kernel/cpu/acrn.c
> @@ -29,6 +29,7 @@ static void __init acrn_init_platform(void)
> =C2=A0	/* Install system interrupt handler for ACRN hypervisor callback *=
/
> =C2=A0	sysvec_install(HYPERVISOR_CALLBACK_VECTOR, sysvec_acrn_hv_callback=
);
> =C2=A0
> +	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
> =C2=A0	tsc_register_calibration_routines(acrn_get_tsc_khz,
> =C2=A0					=C2=A0 acrn_get_tsc_khz);

I'd feel slightly happier doing that from within acrn_get_tsc_khz()
itself.... which I note is 'static inline'. I'm vaguely surprised that
even builds (although it does). Probably nicer to move it explicitly
out of line in acrn.c though.

Most of that should be a comment on patch  2 of the series, I guess?

--=-dAeHKvdWKxIIK3rDkIA7
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIwMDEy
MFowLwYJKoZIhvcNAQkEMSIEIAop72XGHrug56nuMsnYzgFS/5LGRLKd938JQUPy1jqjMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAgB1joYL9q7Bb
l06FMVRf9dlcznTAFWR9BRqbulDgD7HPZOyFQgjVBbIuEgiTf9bsYMw2hu3f3nYcVSr4S0RkqqnR
Wyn0cU3QdkjWdILpGlkjnIYppivlc2nthfXNM5HGSmDscWBCCzqHTQxBO11edoQVB09/D1U9eumW
5hfbnkPYME7hpiD7QvlmIOK4qUEcdlEhCGp9SheNzVyKksSnW/iMY79IlAsUP8C8g7JUV3tz2FLk
xXiHTbdSJR8trR8wY4fhWnWAq+8gDj8Mw5eUDydpDIiRxbdu5qxysY4f80Fh59PFLljlbQ+n1Zxq
D4fFiYRWtf4OFFPuIHwC6gu4mMzwxJLDyJkwhfhJFoPqnC3atUWuSFbZbh3nSKHgeXFUc12LfaTt
V3mtf58X1gtnM8iPixk7A545Z267G982fglhXoeAo9A2rN4EA87/V90jZ+m8TCW1G3Pd5TgELKO5
uNdlqEx7EiXqLNVZA5FMqIBGLkY+2sL8IVB6w5hXmZFQgaXK8KFSEdg5jOa+/UEgd4i63sI7yVMo
ef9UHS11L/f2MWSGnwbpIwwydzsRcc8GIl9t1FrDe7mMKF6i5pZqL5VzBdGFmMf9bwYsw2YUpa+f
QayFJEzngtM8ev127V3fvjsWXnryTeFugx5Fz5r2KDw84S/J287oej09BReIEEEAAAAAAAA=


--=-dAeHKvdWKxIIK3rDkIA7--


From xen-devel-bounces@lists.xenproject.org Wed May 20 20:44:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 20:44:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314378.1584324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPnmR-0007NB-9d; Wed, 20 May 2026 20:44:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314378.1584324; Wed, 20 May 2026 20:44:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPnmR-0007N4-60; Wed, 20 May 2026 20:44:39 +0000
Received: by outflank-mailman (input) for mailman id 1314378;
 Wed, 20 May 2026 20:44:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3MR0OagYKCfougcpleiqqing.eqozgp-fgxgnnkuvu.zgprtqlgev.qti@flex--seanjc.bounces.google.com>)
 id 1wPnmP-0007My-AG
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 20:44:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPnmO-008mdr-J8
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 22:44:36 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3MR0OagYKCfougcpleiqqing.eqozgp-fgxgnnkuvu.zgprtqlgev.qti@flex--seanjc.bounces.google.com>)
 id 6a0e1cfb-bab6-0a2a0a5309dd-0a2a4505c6fa-26
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 22:44:36 +0200
Received: from [209.85.210.202] (helo=mail-pf1-f202.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3MR0OagYKCfougcpleiqqing.eqozgp-fgxgnnkuvu.zgprtqlgev.qti@flex--seanjc.bounces.google.com>)
 id 6a0e1d32-aaa8-0a2a45050019-d155d2cac95f-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 22:44:36 +0200
Received: by mail-pf1-f202.google.com with SMTP id
 d2e1a72fcca58-837cc5bc6deso3220402b3a.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 13:44:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779309874; x=1779914674; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Mknx5aOiI2gHqgCD2H8iHmrBA38hthuUh1cz4/8g/LE=;
        b=F9UplH9ufJsEwqikRDE+yfo68yFWGyhWzKlBT+hSm4aH6RjdJiSsyLCLfS8Hh7yzRK
         ph4IXU7WD/QaZbxMWqHEpPWOCmU4X85sOVN2dM03gJuLQWUMpsiKe1RE/cEq21oyVXIe
         7WfXfjgN78rzIguxFKb9NHXFnChfI9oy1McvDtSNOzeT7T41/FhmAqDH2CUboYKK7JTF
         ziTvVqdMMmTFr8MOUIm3srWqJdNQHuWabHZvH4C2xEPOe+0mIub9KZPxCBTcddgbZEed
         fxbmc4Icx5iONQGSN1M/JqE6hcYyvX23CHGBcg/wePHkBkhbLjTTScmt6procYUNWn9T
         nR9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779309874; x=1779914674;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Mknx5aOiI2gHqgCD2H8iHmrBA38hthuUh1cz4/8g/LE=;
        b=bLMggOMq1QR8YQiju/99VgIBnGfbjXUu3EQciI2jjgoPX3dHqp4kfBOZ4oVCtgJpTE
         g0oiPqXhyJmeIWrc/lruoVds4h9J5m+FzogukiGti07CPSRSJUfq5+DMXB0gWdOFqO3E
         0WAMFP1uO+kvgcl1MMrB0KIa/vkTK4pQLoern+fmxI4V7Mjb5FPnp+fRve/e0w+f2TWI
         duLMn3Nt2aoRc12DYZJZu7av2Xi/g9KVWcJLhkgyJ8/dQeQSuQ9L2mLpdppqJImdWh9f
         WtYhMaiFXj4TjbRgqbWjRSKv3bwzjP/0XE0KdGQX+UhENvh1a4IisnUBjTafGbxtRgkV
         r8Eg==
X-Forwarded-Encrypted: i=1; AFNElJ9Rwfc794+93YnPd2vEyGJQbv0tFqs2oJnR6h2GNWOaU1h5arHObOEqYoLsM8rRCRk4twLIo55Kz9U=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxuqw4fnDYGsns+O5/8D/LAvQyD+kEkkon3Xnobc0Zswfxq350n
	h4d2nhs/jHuDd1UxYSrdUv+ZnBU1+4v6NW5PG7hfhLC0Vp0wyX1Sc08H9hWU7CG7WGMTfAgQ+AN
	pCd8ZFQ==
X-Received: from pfbmd16.prod.google.com ([2002:a05:6a00:7710:b0:838:4903:1f13])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:c86:b0:837:eaa9:381f
 with SMTP id d2e1a72fcca58-8414aaf9e7emr187969b3a.0.1779309873801; Wed, 20
 May 2026 13:44:33 -0700 (PDT)
Date: Wed, 20 May 2026 13:44:33 -0700
In-Reply-To: <44e0d60548d317fd59895f18bd17220dfb2f834b.camel@infradead.org>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com> <20260515191942.1892718-3-seanjc@google.com>
 <44e0d60548d317fd59895f18bd17220dfb2f834b.camel@infradead.org>
Message-ID: <ag4dMc2B3JQi4vxU@google.com>
Subject: Re: [PATCH v3 02/41] x86/tsc: Add helper to register CPU and TSC freq
 calibration routines
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c201ff/1779309876-D3D67443-AD6A1377/0/0
X-purgate-type: clean
X-purgate-size: 5371

On Wed, May 20, 2026, David Woodhouse wrote:
> On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> > diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
> > index b5991d53fc0e..e9e7394140dd 100644
> > --- a/arch/x86/kernel/kvmclock.c
> > +++ b/arch/x86/kernel/kvmclock.c
> > @@ -321,8 +321,8 @@ void __init kvmclock_init(void)
> > =C2=A0	flags =3D pvclock_read_flags(&hv_clock_boot[0].pvti);
> > =C2=A0	kvm_sched_clock_init(flags & PVCLOCK_TSC_STABLE_BIT);
> > =C2=A0
> > -	x86_platform.calibrate_tsc =3D kvm_get_tsc_khz;
> > -	x86_platform.calibrate_cpu =3D kvm_get_tsc_khz;
> > +	tsc_register_calibration_routines(kvm_get_tsc_khz, kvm_get_tsc_khz);
> > +
> > =C2=A0	x86_platform.get_wallclock =3D kvm_get_wallclock;
> > =C2=A0	x86_platform.set_wallclock =3D kvm_set_wallclock;
> > =C2=A0#ifdef CONFIG_X86_LOCAL_APIC
>=20
> Can we move those (and maybe everything in the context there too) up
> *before* the check for no-kvmclock at the top of the function?

Oof, I was going to say "no", but disabling kvmclock is exactly the workaro=
und
I've told people to use to get the kernel to use the TSC instead of kvmcloc=
k.

> Probably in a separate patch.

Ya.  I think this?

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 08ee4bc304c8..92a1ebf31e4d 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -27,6 +27,7 @@ static int kvmclock_vsyscall __initdata =3D 1;
 static int msr_kvm_system_time __ro_after_init;
 static int msr_kvm_wall_clock __ro_after_init;
 static u64 kvm_sched_clock_offset __ro_after_init;
+static unsigned int kvm_tsc_khz_cpuid __ro_after_init;
=20
 static int __init parse_no_kvmclock(char *arg)
 {
@@ -207,7 +208,7 @@ static unsigned long kvm_get_tsc_khz(void)
                lapic_timer_period =3D apic_khz * 1000 / HZ;
 #endif
=20
-       return kvm_para_tsc_khz() ? : pvclock_tsc_khz(this_cpu_pvti());
+       return kvm_tsc_khz_cpuid ? : pvclock_tsc_khz(this_cpu_pvti());
 }
=20
 static unsigned long kvm_get_cpu_khz(void)
@@ -387,9 +388,39 @@ void __init kvmclock_init(void)
        enum tsc_properties tsc_properties =3D TSC_FREQUENCY_KNOWN;
        bool stable =3D false;
=20
-       if (!kvm_para_available() || !kvmclock)
+       if (!kvm_para_available())
                return;
=20
+       /*
+        * If the TSC counts at a constant frequency across P/T states, cou=
nts
+        * in deep C-states, and the TSC hasn't been marked unstable, treat=
 the
+        * TSC reliable, as guaranteed by KVM.  Note, the TSC unstable chec=
k
+        * exists purely to honor the TSC being marked unstable via command
+        * line, any runtime detection of an unstable will happen after thi=
s.
+        */
+       if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC) &&
+           boot_cpu_has(X86_FEATURE_NONSTOP_TSC) &&
+           !check_tsc_unstable())
+               tsc_properties =3D TSC_FREQ_KNOWN_AND_RELIABLE;
+
+       kvm_tsc_khz_cpuid =3D kvm_para_tsc_khz();
+
+       /*
+        * If provided, use the TSC (and APIC bus) frequency provided in KV=
M's
+        * PV CPUID leaf even if kvmclock itself is disabled via command li=
ne.
+        * The PV CPUID information isn't dependent on kvmclock in any way,=
 and
+        * in fact using the precise information is *more* important when t=
he
+        * user has explicitly disabled kvmclock to force the kernel to use=
 the
+        * TSC as its clocksource.
+        */
+       if (!kvmclock) {
+               if (kvm_tsc_khz_cpuid)
+                       tsc_register_calibration_routines(kvm_get_tsc_khz,
+                                                         kvm_get_cpu_khz,
+                                                         tsc_properties);
+               return;
+       }
+
        if (kvm_para_has_feature(KVM_FEATURE_CLOCKSOURCE2)) {
                msr_kvm_system_time =3D MSR_KVM_SYSTEM_TIME_NEW;
                msr_kvm_wall_clock =3D MSR_KVM_WALL_CLOCK_NEW;
@@ -424,21 +455,14 @@ void __init kvmclock_init(void)
        }
=20
        /*
-        * If the TSC counts at a constant frequency across P/T states, cou=
nts
-        * in deep C-states, and the TSC hasn't been marked unstable, prefe=
r
-        * the TSC over kvmclock for sched_clock and drop kvmclock's rating=
 so
-        * that TSC is chosen as the clocksource.  Note, the TSC unstable c=
heck
-        * exists purely to honor the TSC being marked unstable via command
-        * line, any runtime detection of an unstable will happen after thi=
s.
+        * If the TSC is reliable (see above), prefer the TSC over kvmclock=
 for
+        * sched_clock and drop kvmclock's rating so that TSC is chosen as =
the
+        * clocksource.
         */
-       if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC) &&
-           boot_cpu_has(X86_FEATURE_NONSTOP_TSC) &&
-           !check_tsc_unstable()) {
+       if (tsc_properties & TSC_RELIABLE)
                kvm_clock.rating =3D 299;
-               tsc_properties =3D TSC_FREQ_KNOWN_AND_RELIABLE;
-       } else {
+       else
                kvm_sched_clock_init(stable);
-       }
=20
        tsc_register_calibration_routines(kvm_get_tsc_khz, kvm_get_cpu_khz,
                                          tsc_properties);


From xen-devel-bounces@lists.xenproject.org Wed May 20 21:02:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:02:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314386.1584332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPo3j-00025J-OH; Wed, 20 May 2026 21:02:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314386.1584332; Wed, 20 May 2026 21:02:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPo3j-00025C-Le; Wed, 20 May 2026 21:02:31 +0000
Received: by outflank-mailman (input) for mailman id 1314386;
 Wed, 20 May 2026 21:02:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3YyEOagYKCTYkWSfbUYggYdW.UgepWf-VWnWddaklk.pWfhjgbWUl.gjY@flex--seanjc.bounces.google.com>)
 id 1wPo3i-000256-Rb
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:02:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPo3h-00ECMP-O6
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:02:29 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3YyEOagYKCTYkWSfbUYggYdW.UgepWf-VWnWddaklk.pWfhjgbWUl.gjY@flex--seanjc.bounces.google.com>)
 id 6a0e215f-bab6-0a2a0a5309dd-0a2a450c8e8a-8
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:02:29 +0200
Received: from [209.85.216.73] (helo=mail-pj1-f73.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3YyEOagYKCTYkWSfbUYggYdW.UgepWf-VWnWddaklk.pWfhjgbWUl.gjY@flex--seanjc.bounces.google.com>)
 id 6a0e2164-62f1-0a2a450c0019-d155d849dc15-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:02:29 +0200
Received: by mail-pj1-f73.google.com with SMTP id
 98e67ed59e1d1-365e70c39d0so5049843a91.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:02:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779310947; x=1779915747; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=IMxqN6rGG5Sakxt9VTCj2ZelG+Z0Re7U8JKIeB5aot8=;
        b=fKpg+CLza4LQIEiudT6O8mJg+ekZQTt0hSYxMJuZkri5saeTEuHzfqViXy53gCHZds
         /Mb5y2mG0sNPFokq+6biRvOgd8LqC2Q28kYDoWs0M3t9XaS2PZxBK+YtWJfw+BzLVClR
         q7hI75Yf54uGLWvpMnVxFnUEuGtAxurR+tmkX0Grb/IPVuqqEU3Aew13ngL9gJJgOmn/
         uzkpD/VySrbNuZf+jAy7GzG5gCsDhojdhVtsm47CQNWdTq7tqhea+pU+1/H+rUnxJ6Gm
         lTtmpgzL3hEG+L4SXSQy+xfe42R6z0VudGTWp82QoVZKtOz6lYgih3kyXWQJdp2mspXy
         0l+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779310947; x=1779915747;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=IMxqN6rGG5Sakxt9VTCj2ZelG+Z0Re7U8JKIeB5aot8=;
        b=MCqDPvkI+eUChcV5ydeqvLAy4FHY0ZJzhUHZOxm6MI5b9Lqd+3Ek4OlBjOvTgq6Dv5
         8iKAuW2l/bI65Lm1CXkKM3u1oG3uBvsBiRISMqLrXJeDlZw9lkNIvZJyEZdsmQ1mPUrM
         RzPSiLviEqRdn1cCtITwiOpguJmmx/lPsZnZU/70om5lXv2QE36y+fdTsZ3zP6Ktjoqs
         9o8NsJfem0JNcS/Go5VlJLY87QfXFrv/mu7QD3BVTDNDD4iDE8Db9Bk18TqYjtA20amd
         ED/I3gCA9iVsf83XrcYKXf6pNvUuPGQgZuqb6Vlmr/iNQfsScPpPMbQt/1gscN9tiQbP
         eZSA==
X-Forwarded-Encrypted: i=1; AFNElJ9z7AO2ttSQnvmLmNKEYtgMnwt3ilhAMdIrM4HR9d3Ug4j8AkRzhh906Kf6Rl7u0kz6HHp7zL+z+H0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzAVphiZvf9qic1pWLQ5EyhEztsI9GUY4hOaeB4cIgX/8GDULUA
	lt4AQsDe+0FmqgbJ9MTUttEQjrJRRq8d6jE5X5XiV+6SO2Q3eZ2p/l1hzPd1avcdE2CmnhQ41zc
	RLkdiNA==
X-Received: from pgnp19.prod.google.com ([2002:a63:7f53:0:b0:c82:7805:9e4d])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6300:279a:10b0:39b:dea7:5626
 with SMTP id adf61e73a8af0-3b308856ca4mr1798637.35.1779310947183; Wed, 20 May
 2026 14:02:27 -0700 (PDT)
Date: Wed, 20 May 2026 14:02:26 -0700
In-Reply-To: <c347d65f555ad1e10a0e87ee57c5879c7046d0e7.camel@infradead.org>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com> <20260515191942.1892718-7-seanjc@google.com>
 <c347d65f555ad1e10a0e87ee57c5879c7046d0e7.camel@infradead.org>
Message-ID: <ag4hYu0O71QrLW2y@google.com>
Subject: Re: [PATCH v3 06/41] x86/acrn: Mark TSC frequency as known when using
 ACRN for calibration
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d25034/1779310949-E0B64CF5-B9D4BC25/0/0
X-purgate-type: clean
X-purgate-size: 2904

On Wed, May 20, 2026, David Woodhouse wrote:
> On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> > Mark the TSC frequency as known when using ACRN's PV CPUID information.
> > Per commit 81a71f51b89e ("x86/acrn: Set up timekeeping") and common sen=
se,
> > the TSC freq is explicitly provided by the hypervisor.
> >=20
> > Signed-off-by: Sean Christopherson <seanjc@google.com>
> > ---
> > =C2=A0arch/x86/kernel/cpu/acrn.c | 1 +
> > =C2=A01 file changed, 1 insertion(+)
> >=20
> > diff --git a/arch/x86/kernel/cpu/acrn.c b/arch/x86/kernel/cpu/acrn.c
> > index c1506cb87d8c..2da3de4d470e 100644
> > --- a/arch/x86/kernel/cpu/acrn.c
> > +++ b/arch/x86/kernel/cpu/acrn.c
> > @@ -29,6 +29,7 @@ static void __init acrn_init_platform(void)
> > =C2=A0	/* Install system interrupt handler for ACRN hypervisor callback=
 */
> > =C2=A0	sysvec_install(HYPERVISOR_CALLBACK_VECTOR, sysvec_acrn_hv_callba=
ck);
> > =C2=A0
> > +	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
> > =C2=A0	tsc_register_calibration_routines(acrn_get_tsc_khz,
> > =C2=A0					=C2=A0 acrn_get_tsc_khz);
>=20
> I'd feel slightly happier doing that from within acrn_get_tsc_khz()
> itself....

Ya, though as you note below, this is really a comment on the overall serie=
s.

Waiting to set the cap until the calibration routine is actually run does p=
revent
the case where the something registers a calibration routine, but its routi=
ne is
never run.

However, because the cap is sticky, it doesn't handle the scenario where it=
s
routine _does_ run, but the kernel ultimately throws away its calibration i=
n favor
of something else.

Further complicating things is that ~half of the paravirt flows already for=
ce set
caps before their routines are invoked:

  snp_secure_tsc_init(), jailhouse_init_platform(), ms_hyperv_init_platform=
(),
  vmware_set_capabilities()

Rather than trying to convince everyone that waiting is better, despite tha=
t
approach still being flawed, I chose to handle this by ensuring that once t=
he TSC
is marked known and/or reliable, the kernel won't replace the calibration r=
outine
with a "lesser" source:

  x86/tsc: Rejects attempts to override TSC calibration with lesser routine

That doesn't completely prevent the kernel from being stupid, but it should=
 prevent
both the case where X's routine is registered but never run, as well as the=
 case
where it's run but ultimately ignored.

> which I note is 'static inline'. I'm vaguely surprised that even builds
> (although it does).

Heh, KVM x86 (in the host) does stupid things like this too.  E.g. kvm_pdpt=
r_read()
is a static inline, but then wired up as a function pointer in three differ=
ent
places.

> Probably nicer to move it explicitly out of line in acrn.c though.
>=20
> Most of that should be a comment on patch  2 of the series, I guess?


From xen-devel-bounces@lists.xenproject.org Wed May 20 21:12:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:12:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314393.1584341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoDi-0003rs-JZ; Wed, 20 May 2026 21:12:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314393.1584341; Wed, 20 May 2026 21:12:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoDi-0003rl-GL; Wed, 20 May 2026 21:12:50 +0000
Received: by outflank-mailman (input) for mailman id 1314393;
 Wed, 20 May 2026 21:12:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wPoDf-0003rf-5c
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:12:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPoDe-00EDfE-4R
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:12:46 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a0e23a3-e002-0a2a0a5209dd-0a2a450ad53a-38
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:12:45 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a0e23cd-56b3-0a2a450a0019-d561b338982c-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:12:45 +0200
Received: from 186-249-145-161.shared.desktop.com.br ([186.249.145.161]
 helo=[192.168.1.68]) by fanzine2.igalia.com with esmtpsa 
 (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wPoDX-0041Tq-LQ; Wed, 20 May 2026 23:12:39 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Cc:To:In-Reply-To:References:Message-Id:
	Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender:
	Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
	:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
	List-Subscribe:List-Post:List-Owner:List-Archive;
	bh=jkpwXdcnHe1Zv/dlRDcrtsBOp/xquKy8TUTUHmBcL1U=; b=dUzRobAH+mthZRI7uJWLVNLyzp
	VzF6Bb3s2HtliD6A5H1iVmP+juxYJyBrAKi0u3b6IzPD7xxn3tJZu4+pTkKVyHx1iGbbiFQi3kPAN
	ugqtXjeWMYGekFisfkeO73ZivU9lMcTqya+RfRgfeJPR0vT/yjy06/PAV9vdtl6rDJ9MTXpjC88wl
	USF3MRMam86DLoz+EQfXXgXdrkyE9L7F71NTIl54eAbnR9PDlu56Sz2bGugTotwnjUh4bdTiOo5K5
	j1UmrI8ZtiOuItOS8zCt+derjk76bYCwNfRFr4pU//xD+jHew5EmJsng1KBijgbHnAuAv39pt+MfK
	XlQFtNZA==;
From: Mauricio Faria de Oliveira <mfo@igalia.com>
Date: Wed, 20 May 2026 18:12:06 -0300
Subject: [PATCH v3 2/4] x86/asm, x86/boot: expose inline memcmp
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260520-pvh-kasan-inline-v3-2-bede769c6ec7@igalia.com>
References: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
In-Reply-To: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, 
 Juergen Gross <jgross@suse.com>, Alexey Dobriyan <adobriyan@gmail.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org, 
 xen-devel@lists.xenproject.org, Mauricio Faria de Oliveira <mfo@igalia.com>
X-Mailer: b4 0.14.2
X-purgate-ID: tlsNG-4011c0/1779311565-7196E8B7-FCAD2D12/0/0
X-purgate-type: clean
X-purgate-size: 2056

Move the inline memcmp function currently only available in 'boot/string.c'
and its users (eg, 'boot/compressed/string.c' and 'purgatory/purgatory.ro')
into the inline string functions header <asm/string_inline.h> to be reused.

Note that the inline memcmp() returns 0/1, not -1/0/1 as regular memcmp()
(reported by David Laight <david.laight.linux@gmail.com>), which is not
caused or changed by this commit; this will be addressed separately.

Signed-off-by: Mauricio Faria de Oliveira <mfo@igalia.com>
---
 arch/x86/boot/string.c               |  6 ++----
 arch/x86/include/asm/string_inline.h | 11 +++++++++++
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/arch/x86/boot/string.c b/arch/x86/boot/string.c
index ac0f900ebc47efa81c92e1bb2010ea41677899c4..544681d046c3f87101309ffaca0c90512a244856 100644
--- a/arch/x86/boot/string.c
+++ b/arch/x86/boot/string.c
@@ -15,6 +15,7 @@
 #include <linux/errno.h>
 #include <linux/limits.h>
 #include <asm/asm.h>
+#include <asm/string_inline.h>
 #include "ctype.h"
 #include "string.h"
 
@@ -31,10 +32,7 @@
 
 int memcmp(const void *s1, const void *s2, size_t len)
 {
-	bool diff;
-	asm("repe cmpsb"
-	    : "=@ccnz" (diff), "+D" (s1), "+S" (s2), "+c" (len));
-	return diff;
+	return __inline_memcmp(s1, s2, len);
 }
 
 /*
diff --git a/arch/x86/include/asm/string_inline.h b/arch/x86/include/asm/string_inline.h
index ffcfa6583d2bc7b91d078888518d0e80248af940..91ed89bfdfa9b148002441e94f48039b17f70391 100644
--- a/arch/x86/include/asm/string_inline.h
+++ b/arch/x86/include/asm/string_inline.h
@@ -23,4 +23,15 @@ static __always_inline void *__inline_memset(void *s, int v, size_t n)
 	return ret;
 }
 
+/* Note: this memcmp() returns 0/1, not -1/0/1 as regular memcmp(). */
+static __always_inline int __inline_memcmp(const void *s1, const void *s2, size_t len)
+{
+	bool diff;
+
+	asm("repe cmpsb"
+	    : "=@ccnz" (diff), "+D" (s1), "+S" (s2), "+c" (len));
+
+	return diff;
+}
+
 #endif /* _ASM_X86_STRING_INLINE_H */

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed May 20 21:12:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:12:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314394.1584349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoDl-00045F-Ps; Wed, 20 May 2026 21:12:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314394.1584349; Wed, 20 May 2026 21:12:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoDl-000458-N3; Wed, 20 May 2026 21:12:53 +0000
Received: by outflank-mailman (input) for mailman id 1314394;
 Wed, 20 May 2026 21:12:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wPoDk-00044Z-4c
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:12:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPoDj-00EDfE-H6
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:12:51 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a0e23cc-e002-0a2a0a5209dd-0a2a4502d6f0-10
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:12:51 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a0e23d2-af86-0a2a45020019-d561b338a816-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:12:51 +0200
Received: from 186-249-145-161.shared.desktop.com.br ([186.249.145.161]
 helo=[192.168.1.68]) by fanzine2.igalia.com with esmtpsa 
 (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wPoDS-0041Tq-O9; Wed, 20 May 2026 23:12:35 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Cc:To:In-Reply-To:References:Message-Id:
	Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender:
	Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
	:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
	List-Subscribe:List-Post:List-Owner:List-Archive;
	bh=QWDJ2OzZaJom0a60jnwGYvvAozNLoOMpVxRWdTCYrLY=; b=k0wISdlG2PRGKql4/MXlPi0po4
	EfelhhvuoBBZAUZY1KGzV8lbvG53iTgc3x9kKP66naKIZNo7xHGstbidJ6sMr0YL4w3vMBC/hnTwv
	0GdgVAjRGCRlGhMoW+ofgtEzcU6REh6OX0BSJVUP00+BD7qD5i1Us2ijJlI3NbLqyG3FyoZ2zCXps
	N2ETl/O8vHJyASsxVO2zCNbjpA/m9aYC+q1GAqVJufiNSgYUQJCEq5+Uo8aK1A0GdukhrAs/TosIB
	xdFYNv7CSitO+KF2Rwm1wI8dc8b99jTvpIBDZtbZjWMclDN64XwsDUXbzEnJXMsZnImd8KZkl+F7P
	1HCZg+bQ==;
From: Mauricio Faria de Oliveira <mfo@igalia.com>
Date: Wed, 20 May 2026 18:12:05 -0300
Subject: [PATCH v3 1/4] x86/asm: move inline string functions to
 <asm/string_inline.h>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260520-pvh-kasan-inline-v3-1-bede769c6ec7@igalia.com>
References: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
In-Reply-To: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, 
 Juergen Gross <jgross@suse.com>, Alexey Dobriyan <adobriyan@gmail.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org, 
 xen-devel@lists.xenproject.org, Mauricio Faria de Oliveira <mfo@igalia.com>, 
 kernel test robot <lkp@intel.com>
X-Mailer: b4 0.14.2
X-purgate-ID: tlsNG-720697/1779311571-B0979161-D1A88A3B/0/0
X-purgate-type: clean
X-purgate-size: 4424

In next patch, inline string functions are included from 'boot/string.c'.

Using the header <asm/string.h> is problematic for a couple of reasons (*)
(i.e., build errors), which can be addressed, but introduce unnecessary
complexity and regression risk (beyond these _found_ couple of reasons).

Using a new header <asm/string_inline.h> is simpler and transparent to
existing users of <asm/string.h>, with less changes to 'boot/string.c'
and its users (eg 'boot/compressed/string.c' and 'purgatory/purgatory.ro'),
which minimize regression risk.

No functional change intended.

(*) Reasons not to include <asm/string.h> in 'boot/string.c':

1) 'boot/string.c' is built for 16-bit/real mode thus some type and word
size errors happen when <asm/string.h> include, e.g., <asm/string_64.h>.

This can be addressed with '#ifndef _SETUP' (defined by 'boot/Makefile').

2) 'boot/string.c' is included by 'boot/compressed/string.c' which is
the source of 'purgatory/string.o', linked by 'purgatory/purgatory.ro'
(CONFIG_KEXEC_FILE).

In 64BIT, <asm/string.h> includes <asm/string_64.h>, which references
__memset() and __memmove() with KCFI_REFERENCE(), ie, __ADDRESSABLE();
however, 'purgatory/purgatory.ro' is not linked with implementations.

So, CONFIG_KEXEC_FILE and CONFIG_CFI without CONFIG_KASAN hit errors:

  >> ld.lld: error: undefined symbol: __memset
     >>> referenced by string.c
     >>>               arch/x86/purgatory/purgatory.ro:\
                       (__UNIQUE_ID_addressable___memset_0)
  --
  >> ld.lld: error: undefined symbol: __memmove
     >>> referenced by string.c
     >>>               arch/x86/purgatory/purgatory.ro:\
                       (__UNIQUE_ID_addressable___memmove_1)

(Note: this is not hit with CONFIG_KASAN because 'boot/compressed/string.c'
adds aliases __memset()/__memmove() to memset()/memmove() in that case.)

This can be addressed with 'CFLAGS_string.o := -D__DISABLE_EXPORTS' so to
disable KCFI_REFERENCE() in 'purgatory/Makefile' (it removes CC_FLAGS_CFI
anyway).

...

However, since a change in this series would need more changes to address
errors it causes, it is reasonable to change the series not to cause them,
by using a separate header with _just_ inline string functions.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202605140922.q7IlUv7o-lkp@intel.com/
Signed-off-by: Mauricio Faria de Oliveira <mfo@igalia.com>
---
 arch/x86/include/asm/string.h        | 21 +--------------------
 arch/x86/include/asm/string_inline.h | 26 ++++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 20 deletions(-)

diff --git a/arch/x86/include/asm/string.h b/arch/x86/include/asm/string.h
index 9cb5aae7fba9ffcf0f5af8f939d30467750ccaa9..8a849bb5d0c7100a2a1820ec0af9fc9f850727fd 100644
--- a/arch/x86/include/asm/string.h
+++ b/arch/x86/include/asm/string.h
@@ -8,25 +8,6 @@
 # include <asm/string_64.h>
 #endif
 
-static __always_inline void *__inline_memcpy(void *to, const void *from, size_t len)
-{
-	void *ret = to;
-
-	asm volatile("rep movsb"
-		     : "+D" (to), "+S" (from), "+c" (len)
-		     : : "memory");
-	return ret;
-}
-
-static __always_inline void *__inline_memset(void *s, int v, size_t n)
-{
-	void *ret = s;
-
-	asm volatile("rep stosb"
-		     : "+D" (s), "+c" (n)
-		     : "a" ((uint8_t)v)
-		     : "memory");
-	return ret;
-}
+#include <asm/string_inline.h>
 
 #endif /* _ASM_X86_STRING_H */
diff --git a/arch/x86/include/asm/string_inline.h b/arch/x86/include/asm/string_inline.h
new file mode 100644
index 0000000000000000000000000000000000000000..ffcfa6583d2bc7b91d078888518d0e80248af940
--- /dev/null
+++ b/arch/x86/include/asm/string_inline.h
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_X86_STRING_INLINE_H
+#define _ASM_X86_STRING_INLINE_H
+
+static __always_inline void *__inline_memcpy(void *to, const void *from, size_t len)
+{
+	void *ret = to;
+
+	asm volatile("rep movsb"
+		     : "+D" (to), "+S" (from), "+c" (len)
+		     : : "memory");
+	return ret;
+}
+
+static __always_inline void *__inline_memset(void *s, int v, size_t n)
+{
+	void *ret = s;
+
+	asm volatile("rep stosb"
+		     : "+D" (s), "+c" (n)
+		     : "a" ((uint8_t)v)
+		     : "memory");
+	return ret;
+}
+
+#endif /* _ASM_X86_STRING_INLINE_H */

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed May 20 21:12:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:12:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314396.1584367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoDn-0004W5-CW; Wed, 20 May 2026 21:12:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314396.1584367; Wed, 20 May 2026 21:12:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoDn-0004Vy-9O; Wed, 20 May 2026 21:12:55 +0000
Received: by outflank-mailman (input) for mailman id 1314396;
 Wed, 20 May 2026 21:12:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wPoDl-000450-D3
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:12:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPoDk-00BUA1-P8
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:12:52 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a0e23cb-bab6-0a2a0a5309dd-0a2a4503e78a-14
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:12:51 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a0e23d3-672d-0a2a45030019-d561b338e6d0-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:12:51 +0200
Received: from 186-249-145-161.shared.desktop.com.br ([186.249.145.161]
 helo=[192.168.1.68]) by fanzine2.igalia.com with esmtpsa 
 (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wPoDc-0041Tq-C8; Wed, 20 May 2026 23:12:44 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Cc:To:In-Reply-To:References:Message-Id:
	Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender:
	Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
	:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
	List-Subscribe:List-Post:List-Owner:List-Archive;
	bh=gJKjWXfILv4BRccqYgfSFnf+b13WkiYn/6GuwfAO050=; b=hbcb4LsaBlq3hBRBoiPoGkUpqZ
	aT2CHNIPR/K5BMimvBDH/sPdEcTqCzIGc98CxKvCC+2NBKGrfRs6n7Mi/9uBsqsff+2jnB5ZnKkIm
	NuSHyh5rDrKK3QQbbjbaw6F8iO7uorMIIeshBHymTwfEE2mnCGhRYOgifQbzKvQHt22bF565InE+F
	FZQ598/RljxuizulzinIcd7BHjTUJzsY4jFPmOfvyHICX29nSADoWz/Vh5jFhyxy1W9WDCf0g6F96
	1PhzdCgWxWWqCY7KVCoJ49nFx2rl+DapUKM6cGKFUhHbWf36P6RH06UWBSXq9iXlf/h0J6nyVs00k
	i8DFXIVQ==;
From: Mauricio Faria de Oliveira <mfo@igalia.com>
Date: Wed, 20 May 2026 18:12:07 -0300
Subject: [PATCH v3 3/4] x86/cpuid: fix unbootable VMs by really inlining
 memcmp() in hypervisor_cpuid_base()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260520-pvh-kasan-inline-v3-3-bede769c6ec7@igalia.com>
References: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
In-Reply-To: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, 
 Juergen Gross <jgross@suse.com>, Alexey Dobriyan <adobriyan@gmail.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org, 
 xen-devel@lists.xenproject.org, Mauricio Faria de Oliveira <mfo@igalia.com>
X-Mailer: b4 0.14.2
X-purgate-ID: tlsNG-33051d/1779311571-3B360938-660D8FB8/0/0
X-purgate-type: clean
X-purgate-size: 1458

Even with __builtin the compiler may decide to use the out of line function
instead of the inline implementation.

The existing code is broken with gcc-14/15 but not gcc-12/13 (Ubuntu 25.10)
and vmlinux no longer boots with CONFIG_PVH if CONFIG_KASAN_GENERIC is set.

For testing purposes, if the size argument is reduced from 12 to 8 then the
compiler decides to use the inline implementation; that shows results vary.

Switch the builtin to the inline implementation to address it.

Fixes: 416a33c9afce ("x86/cpu: fix unbootable VMs by inlining memcmp() in hypervisor_cpuid_base()")
Signed-off-by: Mauricio Faria de Oliveira <mfo@igalia.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/include/asm/cpuid/api.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/cpuid/api.h b/arch/x86/include/asm/cpuid/api.h
index 82eddfa2347b32b76c2ea9b85f005ca5416ac71f..2d9f3d4d63de6e721f275d9e80d372edbdfedf30 100644
--- a/arch/x86/include/asm/cpuid/api.h
+++ b/arch/x86/include/asm/cpuid/api.h
@@ -204,7 +204,7 @@ static inline u32 cpuid_base_hypervisor(const char *sig, u32 leaves)
 		 * from PVH early boot code before instrumentation is set up
 		 * and memcmp() itself may be instrumented.
 		 */
-		if (!__builtin_memcmp(sig, signature, 12) &&
+		if (!__inline_memcmp(sig, signature, 12) &&
 		    (leaves == 0 || ((eax - base) >= leaves)))
 			return base;
 	}

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed May 20 21:12:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:12:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314395.1584355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoDm-00047x-1n; Wed, 20 May 2026 21:12:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314395.1584355; Wed, 20 May 2026 21:12:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoDl-00047O-TC; Wed, 20 May 2026 21:12:53 +0000
Received: by outflank-mailman (input) for mailman id 1314395;
 Wed, 20 May 2026 21:12:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wPoDk-00044l-Px
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:12:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPoDk-005Gae-63
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:12:52 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a0e23c0-2eae-0a2a0a5409dd-0a2a450789f8-14
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:12:52 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a0e23d3-229c-0a2a45070019-d561b338a818-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:12:52 +0200
Received: from 186-249-145-161.shared.desktop.com.br ([186.249.145.161]
 helo=[192.168.1.68]) by fanzine2.igalia.com with esmtpsa 
 (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wPoDN-0041Tq-R0; Wed, 20 May 2026 23:12:30 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Cc:To:Content-Transfer-Encoding:Content-Type:MIME-Version:Message-Id:Date:Subject:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Cc:To:Content-Transfer-Encoding:Content-Type:MIME-Version:
	Message-Id:Date:Subject:From:Sender:Reply-To:Content-ID:Content-Description:
	Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
	In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
	List-Post:List-Owner:List-Archive;
	bh=HMYOPdGU8sl7pv2qCjbJUiNAmrkkLYxcfG9BmUTr1j0=; b=G5/E2wwpP3qOYwkqsVagOvWPkD
	sNR91BuKo1uImAfen8tomjkL5x3iaLKBFF87LMWLTEGsgPyPfcwsYqtdaXP5UtLliXfonRM3u/OCo
	F+/fM2JBLm0FyO4zhizXA9k4YQgNriAGCIb+Mg8vUEPjtdxglxrBn79WEkEpMnzIoG3KBxQxpvjVr
	J0uIHqZxstPkw5ExB7jI3mLXriokseheA5NpjN4G896npCFWzy3IeRLQNGWdc/1PnQUkrhXhnx1UK
	rSldvJPksowRssF8w3czF1Wf1ZWtsxSt5U+nWeL7fagxxh30ACgyrvYGoMeB1OofoTs0pfvhEe2+X
	pxKGyQDg==;
From: Mauricio Faria de Oliveira <mfo@igalia.com>
Subject: [PATCH v3 0/4] x86/pvh: fix unbootable VMs again (PVH + KASAN)
Date: Wed, 20 May 2026 18:12:04 -0300
Message-Id: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-B4-Tracking: v=1; b=H4sIAKQjDmoC/33NQQ6CMBCF4auQrq2hQ23FlfcwLkqZwkQspDWNh
 nB3CytNjMv/JfPNzCIGwshOxcwCJoo0+hzVrmC2N75DTm1uBiWoUgLwKfX8ZqLxnPxAHrlCZ6z
 WTjSgWT6bAjp6buTlmrun+BjDa/uQxLr+wZLgJdeoRC0rKW0NZ+rMQGZvxztbtQSfgv4hQBbAH
 nRzbK1zynwJy7K8AZCPjPPzAAAA
X-Change-ID: 20260422-pvh-kasan-inline-6efac77f1b27
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, 
 Juergen Gross <jgross@suse.com>, Alexey Dobriyan <adobriyan@gmail.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org, 
 xen-devel@lists.xenproject.org, Mauricio Faria de Oliveira <mfo@igalia.com>, 
 kernel test robot <lkp@intel.com>
X-Mailer: b4 0.14.2
X-purgate-ID: tlsNG-ef75cf/1779311572-22F76C48-C353EFC2/0/0
X-purgate-type: clean
X-purgate-size: 6162

The issue of unbootable VMs with CONFIG_PVH due to CONFIG_KASAN is back.

Booting directly from vmlinux (instead of bzImage) now fails with gcc-14/15
(but works with gcc-12/13) if CONFIG_KASAN_GENERIC is set, on Ubuntu 25.10.

The PVH code is required/supposed not to use the KASAN memory access check
in the kernel entry point as KASAN has not yet been setup, or an exception
is hit and the boot fails.

This was previously described and addressed with __builtin_mem{cmp,set}():
- commit 661362e3dcab ("xen, pvh: fix unbootable VMs (PVH + KASAN - AMD_MEM_ENCRYPT)")
- commit 416a33c9afce ("x86/cpu: fix unbootable VMs by inlining memcmp() in hypervisor_cpuid_base()")
- commit fbe5a6dfe492 ("xen, pvh: fix unbootable VMs by inlining memset() in xen_prepare_pvh()")

However, even with __builtin the compiler may decide to use the out of line
function instead of the inline implementation. So, that does not really fix
the issue unconditionally; see details below.

In order to address this, it's required to switch to inline implementations
that do not depend on the compiler.

There's such a memset() in <asm/string.h> and memcmp() in 'boot/string.c'.
Use them instead of builtins in PVH entry.

Testing:

- Booting from vmlinux (fixed) and bzImage (still works) using
  allnoconfig + CONFIG_PVH + CONFIG_KASAN with gcc-12/13/14/15.

- Building with CONFIG_KEXEC_FILE, CONFIG_CFI and !CONFIG_KASAN with LLVM 20
  (check for a build error related to <asm/string.h>, not caught previously).

Details/Debugging:

- Only CONFIG_PVH (works):

  make allnoconfig
  ./scripts/config \
    -e 64BIT -e HYPERVISOR_GUEST -e PVH \
    -e SERIAL_8250 -e SERIAL_8250_CONSOLE
  make olddefconfig
  make -j$(nproc) vmlinux

  qemu-system-x86_64 \
    -accel kvm -nodefaults -nographic -serial stdio \
    -kernel vmlinux -append 'console=ttyS0'
  ...
  SeaBIOS (version ...)
  Booting from ROM...
  Linux version ...
  ...
  <Ctrl-C>

- With CONFIG_KASAN (fails)

  ./scripts/config -e KASAN
  make olddefconfig
  make -j$(nproc) vmlinux

  qemu-system-x86_64 \
    -accel kvm -nodefaults -nographic -serial stdio \
    -kernel vmlinux -append 'console=ttyS0'
  ...
  SeaBIOS (version ...)
  Booting from ROM...
  <QEMU reboot loop, flashing the text above>

- Debugging:

  Enable debug info and rebuild.

  QEMU: enable and wait for GDB, stop rebooting, remain running.

  qemu-system-x86_64 \
    -s -S -no-reboot -no-shutdown \
    <other options>

  gdb vmlinux
  (gdb) target remote localhost:1234
  ...
  (gdb) c
  ...
  Thread 2 received signal SIGQUIT, Quit.
  ...
  (gdb) info threads
    Id   Target Id                    Frame
    1    Thread 1.1 (CPU#0 [running]) bytes_is_nonzero (
      start=0xfffffbfff031eebe <error: Cannot access memory at address 0xfffffbfff031eebe>, size=1)
      at .../linux/mm/kasan/generic.c:98
  * 2    Thread 1.2 (CPU#1 [halted ]) 0x00000000000fd0a9 in ?? ()
  ...
  (gdb) thr 1
  ...
  (gdb) bt
  #0  bytes_is_nonzero (start=0xfffffbfff031eebe <error: Cannot access memory at address 0xfffffbfff031eebe>, size=1)
      at .../linux/mm/kasan/generic.c:98
  #1  memory_is_nonzero (start=0xfffffbfff031eebe, end=0xfffffbfff031eebf) at .../linux/mm/kasan/generic.c:115
  #2  memory_is_poisoned_n (addr=0xffffffff818f75f0, size=8) at .../linux/mm/kasan/generic.c:140
  #3  memory_is_poisoned (addr=0xffffffff818f75f0, size=8) at .../linux/mm/kasan/generic.c:172
  #4  check_region_inline (addr=0xffffffff818f75f0, size=8, write=false, ret_ip=18446744071585002062)
      at .../linux/mm/kasan/generic.c:191
  #5  kasan_check_range (addr=addr@entry=0xffffffff818f75f0, size=size@entry=8, write=write@entry=false,
      ret_ip=18446744071585002062) at .../linux/mm/kasan/generic.c:200
  #6  0xffffffff813eb283 in __asan_loadN (addr=addr@entry=0xffffffff818f75f0, size=size@entry=8)
      at .../linux/mm/kasan/generic.c:278
  #7  0xffffffff815df24e in memcmp (cs=cs@entry=0xffffffff818f75f0, ct=ct@entry=0x1be2fe4, count=<optimized out>,
      count@entry=12) at .../linux/lib/string.c:683
  #8  0xffffffff81ba2323 in cpuid_base_hypervisor (sig=0xffffffff818f75f0 "XenVMMXenVMM", leaves=2)
      at .../linux/arch/x86/include/asm/cpuid/api.h:206
  #9  xen_cpuid_base () at .../linux/arch/x86/include/asm/xen/hypervisor.h:46
  #10 xen_prepare_pvh () at .../linux/arch/x86/platform/pvh/enlighten.c:119
  #11 0x0000000001ba2588 in ?? ()
  #12 0x0000000000000000 in ?? ()
  (gdb)

  Frames #7-#8 show the non-builtin memcmp() (lib/string.c) was called
  even with __builtin_memcmp() being used in cpuid_base_hypervisor().

Signed-off-by: Mauricio Faria de Oliveira <mfo@igalia.com>
---
Changes in v3:
- Create and use a separate header for inline string functions
  to fix a build error reported by kernel test robot (patch 1).
- That also removes '#ifndef _SETUP/#endif' in <asm/string.h>.
- Link to v2: https://lore.kernel.org/r/20260427-pvh-kasan-inline-v2-0-2c57b8dcff6a@igalia.com

Changes in v2:
- Add comment about the return value of __inline_memcmp() in patch 1. (v3: now 2)
- Add 'Reviewed-by: Juergen Gross' in patches 2 and 3 (v3: now 3 and 4).
- Link to v1: https://lore.kernel.org/r/20260422-pvh-kasan-inline-v1-0-7e6194344c92@igalia.com

---
Mauricio Faria de Oliveira (4):
      x86/asm: move inline string functions to <asm/string_inline.h>
      x86/asm, x86/boot: expose inline memcmp
      x86/cpuid: fix unbootable VMs by really inlining memcmp() in hypervisor_cpuid_base()
      x86/pvh: fix unbootable VMs by really inlining memset() in xen_prepare_pvh()

 arch/x86/boot/string.c               |  6 ++----
 arch/x86/include/asm/cpuid/api.h     |  2 +-
 arch/x86/include/asm/string.h        | 21 +-------------------
 arch/x86/include/asm/string_inline.h | 37 ++++++++++++++++++++++++++++++++++++
 arch/x86/platform/pvh/enlighten.c    |  3 ++-
 5 files changed, 43 insertions(+), 26 deletions(-)
---
base-commit: 80dd246accce631c328ea43294e53b2b2dd2aa32
change-id: 20260422-pvh-kasan-inline-6efac77f1b27

Best regards,
-- 
Mauricio Faria de Oliveira <mfo@igalia.com>



From xen-devel-bounces@lists.xenproject.org Wed May 20 21:12:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:12:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314397.1584376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoDo-0004km-Kq; Wed, 20 May 2026 21:12:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314397.1584376; Wed, 20 May 2026 21:12:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoDo-0004ke-HC; Wed, 20 May 2026 21:12:56 +0000
Received: by outflank-mailman (input) for mailman id 1314397;
 Wed, 20 May 2026 21:12:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wPoDn-0004Yv-Nf
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:12:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPoDn-008pPL-3p
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:12:55 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a0e23b7-5cb7-0a2a0a5109dd-0a2a4508e012-12
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:12:55 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a0e23d6-63b5-0a2a45080019-d561b338cf20-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:12:55 +0200
Received: from 186-249-145-161.shared.desktop.com.br ([186.249.145.161]
 helo=[192.168.1.68]) by fanzine2.igalia.com with esmtpsa 
 (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wPoDg-0041Tq-SN; Wed, 20 May 2026 23:12:49 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Cc:To:In-Reply-To:References:Message-Id:
	Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender:
	Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
	:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
	List-Subscribe:List-Post:List-Owner:List-Archive;
	bh=L3Sr9rY5U1mD/3546TE+xOT1mBFRY3YzwAzYlEgEGo8=; b=MDSYObuCLhGGk3kLSDRFhFo0Xr
	hAIFZMraCR/zpz1BmNe4aoczkzyiHAXFjnXpDpxnphQoyvLq8CMCKa/daqplYQ0ZGPjtubRWcFU1I
	vyjvOjZNCKvKVm9kSyi24rbD4Ifnjo2u7jOZdS0PQoHU3sho5bq012deIlao81PuWi7nOTJDy5mza
	Oiue8g2rZRvjjf9rNjL7aPMpOO1GC55ui6B6OicxChee+axFMIyKVR274WRUaSgaxcKGFExPSlaBX
	G15x18CAzivBk+085CCxq2+BIt+ySRxPDl95qPMz/JmWHE+SCvK8lZbPsO9a0oHdTH0lYbDFmXdec
	Jrxy5LIg==;
From: Mauricio Faria de Oliveira <mfo@igalia.com>
Date: Wed, 20 May 2026 18:12:08 -0300
Subject: [PATCH v3 4/4] x86/pvh: fix unbootable VMs by really inlining
 memset() in xen_prepare_pvh()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260520-pvh-kasan-inline-v3-4-bede769c6ec7@igalia.com>
References: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
In-Reply-To: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, 
 Juergen Gross <jgross@suse.com>, Alexey Dobriyan <adobriyan@gmail.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org, 
 xen-devel@lists.xenproject.org, Mauricio Faria de Oliveira <mfo@igalia.com>
X-Mailer: b4 0.14.2
X-purgate-ID: tlsNG-c1860d/1779311575-B6F72DB1-146F5E81/0/0
X-purgate-type: clean
X-purgate-size: 1474

Even with __builtin the compiler may decide to use the out of line function
instead of the inline implementation.

This particular one (still) generated the inline implementation as expected
(at least in these compiler versions), but this is not guaranteed to remain
the case, as seen with the previous commit.

Switch the builtin to the inline implementation to prevent a similar issue.

Fixes: fbe5a6dfe492 ("xen, pvh: fix unbootable VMs by inlining memset() in xen_prepare_pvh()")
Signed-off-by: Mauricio Faria de Oliveira <mfo@igalia.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/platform/pvh/enlighten.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/platform/pvh/enlighten.c b/arch/x86/platform/pvh/enlighten.c
index f2053cbe9b0ce3d2178938269607c652ae8f528e..cb442cbd9d828619421babb281bfe9759edbca8a 100644
--- a/arch/x86/platform/pvh/enlighten.c
+++ b/arch/x86/platform/pvh/enlighten.c
@@ -8,6 +8,7 @@
 #include <asm/hypervisor.h>
 #include <asm/e820/api.h>
 #include <asm/x86_init.h>
+#include <asm/string.h>
 
 #include <asm/xen/interface.h>
 
@@ -129,7 +130,7 @@ void __init xen_prepare_pvh(void)
 	 * This must not compile to "call memset" because memset() may be
 	 * instrumented.
 	 */
-	__builtin_memset(&pvh_bootparams, 0, sizeof(pvh_bootparams));
+	__inline_memset(&pvh_bootparams, 0, sizeof(pvh_bootparams));
 
 	hypervisor_specific_init(xen_guest);
 

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed May 20 21:19:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:19:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314427.1584386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoKG-0006eU-BD; Wed, 20 May 2026 21:19:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314427.1584386; Wed, 20 May 2026 21:19:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoKG-0006eN-7j; Wed, 20 May 2026 21:19:36 +0000
Received: by outflank-mailman (input) for mailman id 1314427;
 Wed, 20 May 2026 21:19:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPoKD-0006eH-1J
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:19:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPoKC-00BUls-3D
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:19:32 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e250d-2eae-0a2a0a5409dd-0a2a450b9da4-44
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:19:31 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e2563-212f-0a2a450b0019-5a9b322297a2-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:19:31 +0200
Received: from [54.240.197.227] (helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPoK1-00000007aua-0ZJM; Wed, 20 May 2026 21:19:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=2T02KkRcNqHQW1Lp9kmhoNiqh8itBq6Uvl0wCCT1Bio=; b=RzgYSL+9m9JvdNIyWP36q3XkJO
	Nk3v7gLu9PPih2xcac5s9Zwy3uEdKi88oue80vbclyxBfh/sEdrtKY/4tkb4u+2V6dyul19hJO4gc
	F+IAuYrKjGIODQTeJwY49IPc7k6cvnN3zZzZo7h2KgwYQ3fqUpfOttTbg7dpxsLlpdzuFNbOeo2wa
	sP7p5x5a5ECsFi23z9NcBMQdkqcQEveo1E78SK4uMA1bc85cdi5x+slspcFgNztkUxM0b8/Y8rkQ4
	PBJWktM5UgvY3+/uw83eoZxMYhqNsqzbpXonsL/v2P3+B6YkDkmIvfdYPyuicJB1nlD4zSVmnNjvI
	bGwYbeCA==;
Message-ID: <621e10bdc9e297c6c600b561d8fa25c3b62968bc.camel@infradead.org>
Subject: Re: [PATCH v3 02/41] x86/tsc: Add helper to register CPU and TSC
 freq calibration routines
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
 "K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang
 <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, Dexuan Cui
 <decui@microsoft.com>, Long Li <longli@microsoft.com>, Ajay Kaher
 <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen
 <dave.hansen@linux.intel.com>, Andy Lutomirski <luto@kernel.org>, Peter
 Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, Daniel
 Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>,
 John Stultz <jstultz@google.com>, Rick Edgecombe
 <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 22:19:19 +0100
In-Reply-To: <ag4dMc2B3JQi4vxU@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-3-seanjc@google.com>
	 <44e0d60548d317fd59895f18bd17220dfb2f834b.camel@infradead.org>
	 <ag4dMc2B3JQi4vxU@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-VYaNBcSebu2vVTBLAdmQ"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-42698a/1779311971-20C7DF3B-A42CEB32/0/0
X-purgate-type: clean
X-purgate-size: 10525


--=-VYaNBcSebu2vVTBLAdmQ
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64

T24gV2VkLCAyMDI2LTA1LTIwIGF0IDEzOjQ0IC0wNzAwLCBTZWFuIENocmlzdG9waGVyc29uIHdy
b3RlOgo+IAo+ICvCoMKgwqDCoMKgwqAgLyoKPiArwqDCoMKgwqDCoMKgwqAgKiBJZiB0aGUgVFND
IGNvdW50cyBhdCBhIGNvbnN0YW50IGZyZXF1ZW5jeSBhY3Jvc3MgUC9UIHN0YXRlcywgY291bnRz
Cj4gK8KgwqDCoMKgwqDCoMKgICogaW4gZGVlcCBDLXN0YXRlcywgYW5kIHRoZSBUU0MgaGFzbid0
IGJlZW4gbWFya2VkIHVuc3RhYmxlLCB0cmVhdCB0aGUKPiArwqDCoMKgwqDCoMKgwqAgKiBUU0Mg
cmVsaWFibGUsIGFzIGd1YXJhbnRlZWQgYnkgS1ZNLsKgIE5vdGUsIHRoZSBUU0MgdW5zdGFibGUg
Y2hlY2sKPiArwqDCoMKgwqDCoMKgwqAgKiBleGlzdHMgcHVyZWx5IHRvIGhvbm9yIHRoZSBUU0Mg
YmVpbmcgbWFya2VkIHVuc3RhYmxlIHZpYSBjb21tYW5kCj4gK8KgwqDCoMKgwqDCoMKgICogbGlu
ZSwgYW55IHJ1bnRpbWUgZGV0ZWN0aW9uIG9mIGFuIHVuc3RhYmxlIHdpbGwgaGFwcGVuIGFmdGVy
IHRoaXMuCj4gK8KgwqDCoMKgwqDCoMKgICovCj4gK8KgwqDCoMKgwqDCoCBpZiAoYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQykgJiYKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAg
Ym9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX05PTlNUT1BfVFNDKSAmJgo+ICvCoMKgwqDCoMKgwqDC
oMKgwqDCoCAhY2hlY2tfdHNjX3Vuc3RhYmxlKCkpCiAgICB7IAo+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIHRzY19wcm9wZXJ0aWVzID0gVFNDX0ZSRVFfS05PV05fQU5EX1JFTElBQkxF
OwoKICAgIGt2bWNsb2NrID0gMDsgLyogV2h5IHVzZSBpdCBpZiB0aGUgVFNDIHdvcmtzPyBUaGUg
a3ZtY2xvY2sgZXhpc3RzCiAgICAgICAgICAgICAgICAgICAgICpwdXJlbHkqIHRvIHdvcmsgYXJv
dW5kIGEgVFNDIHdoaWNoICpkb2Vzbid0KgogICAgICAgICAgICAgICAgICAgICBoYXZlIHRob3Nl
IHByb3BlcnRpZXMgY2hlY2tlZCBhYm92ZS4gKi8KICAgIH0KCkkgd2FzIGdvaW5nIHRvIHNheSBQ
VkNMT0NLX1RTQ19TVEFCTEVfQklULCBhbmQgbWF5YmUgd2Ugc2hvdWxkIGNoZWNrCnRoYXQgKnRv
byogZm9yIHBhcmFub2lhPyBCdXQgaG9wZWZ1bGx5IHRoZSBjaGVja3MgeW91IGhhdmUgYWJvdmUg
YXJlCmVxdWl2YWxlbnQ/Cgo+ICsKPiArwqDCoMKgwqDCoMKgIGt2bV90c2Nfa2h6X2NwdWlkID0g
a3ZtX3BhcmFfdHNjX2toeigpOwo+ICsKPiArwqDCoMKgwqDCoMKgIC8qCj4gK8KgwqDCoMKgwqDC
oMKgICogSWYgcHJvdmlkZWQsIHVzZSB0aGUgVFNDIChhbmQgQVBJQyBidXMpIGZyZXF1ZW5jeSBw
cm92aWRlZCBpbiBLVk0ncwo+ICvCoMKgwqDCoMKgwqDCoCAqIFBWIENQVUlEIGxlYWYgZXZlbiBp
ZiBrdm1jbG9jayBpdHNlbGYgaXMgZGlzYWJsZWQgdmlhIGNvbW1hbmQgbGluZS4KPiArwqDCoMKg
wqDCoMKgwqAgKiBUaGUgUFYgQ1BVSUQgaW5mb3JtYXRpb24gaXNuJ3QgZGVwZW5kZW50IG9uIGt2
bWNsb2NrIGluIGFueSB3YXksIGFuZAo+ICvCoMKgwqDCoMKgwqDCoCAqIGluIGZhY3QgdXNpbmcg
dGhlIHByZWNpc2UgaW5mb3JtYXRpb24gaXMgKm1vcmUqIGltcG9ydGFudCB3aGVuIHRoZQo+ICvC
oMKgwqDCoMKgwqDCoCAqIHVzZXIgaGFzIGV4cGxpY2l0bHkgZGlzYWJsZWQga3ZtY2xvY2sgdG8g
Zm9yY2UgdGhlIGtlcm5lbCB0byB1c2UgdGhlCj4gK8KgwqDCoMKgwqDCoMKgICogVFNDIGFzIGl0
cyBjbG9ja3NvdXJjZS4KPiArwqDCoMKgwqDCoMKgwqAgKi8KPiArwqDCoMKgwqDCoMKgIGlmICgh
a3ZtY2xvY2spIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoa3ZtX3RzY19r
aHpfY3B1aWQpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IHRzY19yZWdpc3Rlcl9jYWxpYnJhdGlvbl9yb3V0aW5lcyhrdm1fZ2V0X3RzY19raHosCj4gK8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAga3Zt
X2dldF9jcHVfa2h6LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIHRzY19wcm9wZXJ0aWVzKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCByZXR1cm47Cj4gK8KgwqDCoMKgwqDCoCB9Cj4gKwoKClJlZ2FyZGxlc3Mgb2YgdGhl
IGFib3ZlLCB3aHkgbm90IGp1c3QgcmVnaXN0ZXIgdGhlc2UgaGVyZQp1bmNvbmRpdGlvbmFsbHks
IGFuZCByZW1vdmUgdGhlIGxhdGVyIGNhbGwgdGhhdCBkb2VzIHRoZSBzYW1lPwo=


--=-VYaNBcSebu2vVTBLAdmQ
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIxMTkx
OVowLwYJKoZIhvcNAQkEMSIEINhvu80Esasizc/IrdUGbWb0meAtd12BJXV3+c9suECwMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAjn/O/SoEwAbs
YaXatoOuo8GSukimv9TlOJECjOZobWrlR4CEhwquW+XWRwlyZ8+eQQ4xu8AooNdh52B0fRNE3DeT
u65bXJuPgiLZuFlLy1iom72SwPtRrtlfQZPYQfYJl2SKVrr6bujGyhrSnO3tuZE/LOKXfFWiP3Yj
I9+Z89WHkGl2eY+Q4ZjUw0eK/fJre2PBt1BdpFHjxZG1WWhYGYIUoSZ62kNkxTWfrd2C3xr9Lzy0
wNSBOFB00yP3AgCAFhjHQmpkDTrugWIhsRmi8pvzVKxwaepUciccAe4Tx3CgCoIP5Q5KXknnIu1i
9my+2+xsG7JpVzRSgJj59jLNkQqlwCT57gIA5bQ5UNUYgxiBlT0mK5Q+ISXIMn6a9PIy78Z3bCam
TwWWH57PNX3g2yr3yxWNs1MgT9Z+RLpVp/ywq6in29MOkjDPJkPlVUc2qNLqfoXwDwDv0YlehAPA
D15sxI/yfeAVZVbOHZCIx47lSJRqAITMiHqY/qptT5u7eP0XtgczvRvyPZMzBIelPI3Ti7Be4bm9
UQTCTXCO37ARS3qnHAmQQW24h0KRCp9yXkmD4F17iP4aci79W6+jP8HQ+qzj+AhrsZEp9ix1NBo/
niFXiIy7mz2DN0n3EATdDw1AtJuGs82eyYjgQ6dpqEmw3xFsdXBGln/AkowqCXIAAAAAAAA=


--=-VYaNBcSebu2vVTBLAdmQ--


From xen-devel-bounces@lists.xenproject.org Wed May 20 21:23:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:23:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314434.1584395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoNw-0008CB-P0; Wed, 20 May 2026 21:23:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314434.1584395; Wed, 20 May 2026 21:23:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoNw-0008C4-MM; Wed, 20 May 2026 21:23:24 +0000
Received: by outflank-mailman (input) for mailman id 1314434;
 Wed, 20 May 2026 21:23:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wPoNv-0008Bt-Dd
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:23:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPoNu-000fJQ-Pt
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:23:22 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a0e25ea-2eae-0a2a0a5409dd-0a2a4502c594-42
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:23:22 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a0e2469-af86-0a2a45020019-d561b338b5f6-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:15:22 +0200
Received: from maestria.local.igalia.com ([192.168.10.14] helo=mail.igalia.com)
 by fanzine2.igalia.com with esmtps 
 (Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wPoFv-0041Ys-8c; Wed, 20 May 2026 23:15:07 +0200
Received: from webmail.service.igalia.com ([192.168.21.45])
 by mail.igalia.com with esmtp (Exim)
 id 1wPoFt-008Pcq-07; Wed, 20 May 2026 23:15:07 +0200
Received: from localhost ([127.0.0.1] helo=webmail.igalia.com)
 by webmail.service.igalia.com with esmtp (Exim 4.98.2)
 (envelope-from <mfo@igalia.com>) id 1wPoFs-00000002qJh-1HpH;
 Wed, 20 May 2026 23:15:04 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Content-Transfer-Encoding:Content-Type:Message-ID:References:In-Reply-To:Subject:Cc:To:From:Date:MIME-Version"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Content-Transfer-Encoding:Content-Type:Message-ID:References:
	In-Reply-To:Subject:Cc:To:From:Date:MIME-Version:Sender:Reply-To:Content-ID:
	Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
	:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
	List-Post:List-Owner:List-Archive;
	bh=QrmoDDcRFc85TJxSTIraknowNTSHHOttVC2hQ/n8Nw8=; b=h5Cwm4IXpqydrJFUwR+NYd9lEz
	MgWdiaLQRW3jNu68Dv9kDXmNtxbACTne+/I1pY8Uyc0KYJx7e5TDIDoxEge2SGzZOpP1SaqH5G8p2
	nX9ChKIUHZtmsjAVXEVgIa2RLd0CxVPfTAU9Yn3ra0srJqgb05V9NUm6tjrzWBERCA9jqBOGm6RBs
	c4l4RXPIkl3P50RE1VOC9221An5SaDxMz2Zk0qYN5SJ6upzgjjlaYm+Xj7j+/235+RRat0vdW20tT
	+bowa6B5uk88ORN7ZtYOBC6XDJDnknjIU8MmW0Bi37N7kalpP/v02ZYMARqD48QhCxa0s5Xp1Xgsn
	kgvLaNfw==;
MIME-Version: 1.0
Date: Wed, 20 May 2026 18:15:04 -0300
From: Mauricio Faria de Oliveira <mfo@igalia.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, Juergen Gross
 <jgross@suse.com>, Alexey Dobriyan <adobriyan@gmail.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 0/3] x86/pvh: fix unbootable VMs again (PVH + KASAN)
In-Reply-To: <20260427-pvh-kasan-inline-v2-0-2c57b8dcff6a@igalia.com>
References: <20260427-pvh-kasan-inline-v2-0-2c57b8dcff6a@igalia.com>
Message-ID: <b84eb4bb9f056285832e68d510d9a27a@igalia.com>
X-Sender: mfo@igalia.com
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-Spam-Report: NO, Score=-4.8, Tests=ALL_TRUSTED=-3,AWL=-2.599,BAYES_50=0.8
X-Spam-Score: -47
X-Spam-Bar: ----
X-purgate-ID: tlsNG-720697/1779311722-A917D161-25AE0A03/13/0
X-purgate-type: clean
X-purgate-size: 403

On 2026-04-27 13:10, Mauricio Faria de Oliveira wrote:
> The issue of unbootable VMs with CONFIG_PVH due to CONFIG_KASAN is back.
> 
> Booting directly from vmlinux (instead of bzImage) now fails with gcc-14/15
> (but works with gcc-12/13) if CONFIG_KASAN_GENERIC is set, on Ubuntu 25.10.

v3:
https://lore.kernel.org/all/20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com/

-- 
Mauricio


From xen-devel-bounces@lists.xenproject.org Wed May 20 21:27:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:27:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314446.1584404 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoRn-0000MI-Cc; Wed, 20 May 2026 21:27:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314446.1584404; Wed, 20 May 2026 21:27:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoRn-0000MB-9Q; Wed, 20 May 2026 21:27:23 +0000
Received: by outflank-mailman (input) for mailman id 1314446;
 Wed, 20 May 2026 21:27:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPoRl-0000M5-Fd
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:27:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPoRj-000fbl-HL
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:27:20 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e26fb-5cb7-0a2a0a5109dd-0a2a4507a754-18
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:27:19 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e2737-229c-0a2a45070019-5a9b3222b610-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:27:19 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPoRa-00000007bFG-3vAv; Wed, 20 May 2026 21:27:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=iiu0/Z8Z7QeRqVwrLu8YClRj6HX01QNYQxrtQs5e9+o=; b=RMaOxZwtwHkrLgzAtve8ev8iAf
	fczeJu/80YxKxgYQHNfztXPFjE6kCrb9wl0TzPBNfz2EQsoXBIiyjZZemBQMNLAc+qgyrktBIoOWx
	A2dY6MW/hTSorRjXX3+qr1b8P3UHzhFRU2Dls+P3Xp1hjxprHj53OjTRa8JW6M+DSUklFP2NXpfC5
	uYZmIJuZ5QjQlUGu2q85N53PHXfzxOC6vgCGaGiCBvOLzn1FFvXe6JGN7kfku2tjtFemybWD4rvCM
	8ZrjDHvf+x90FQg0rv6MGRoJMepOj0vJUakz5urBKuhb+MDyWrAJykwLy8Tc7fbAppLet6VG0TdG0
	eBNUvKhw==;
Message-ID: <3b3d39c2293c3c59950509591a6477a912ec8a7a.camel@infradead.org>
Subject: Re: [PATCH v3 07/41] clocksource: hyper-v: Register sched_clock
 save/restore iff it's necessary
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 22:27:09 +0100
In-Reply-To: <20260515191942.1892718-8-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-8-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-WsVF7OPC8zpBEcS9iR9i"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-ef75cf/1779312439-09F6EC48-E711E55E/0/0
X-purgate-type: clean
X-purgate-size: 8641


--=-WsVF7OPC8zpBEcS9iR9i
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Register the Hyper-V reference counter (refcounter) callbacks for saving
> and restoring its PV sched_clock, if and only if the refcounter is
> actually being used for sched_clock.=C2=A0 Currently, Hyper-V overrides t=
he
> save/restore hooks if the reference TSC available, whereas the Hyper-V
> refcounter code only overrides sched_clock if the reference TSC is
> available *and* it's not invariant.=C2=A0 The flaw is effectively papered=
 over
> by invoking the "old" save/restore callbacks as part of save/restore, but
> that's unnecessary and fragile.
>=20
> To avoid introducing more complexity, and to allow for additional cleanup=
s
> of the PV sched_clock code, move the save/restore hooks and logic into
> hyperv_timer.c and simply wire up the hooks when overriding sched_clock
> itself.
>=20
> Note, while the Hyper-V refcounter code is intended to be architecture
> neutral, CONFIG_PARAVIRT is firmly x86-only, i.e. adding a small amount o=
f
> x86 specific code (which will be reduced in future cleanups) doesn't
> meaningfully pollute generic code.
>=20
> Reviewed-by: Michael Kelley <mhklinux@outlook.com>
> Tested-by: Michael Kelley <mhklinux@outlook.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-WsVF7OPC8zpBEcS9iR9i
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIxMjcw
OVowLwYJKoZIhvcNAQkEMSIEIGNRTDI7TnRBOnvwfS4obxmpOeATDVDp5SzkllIbtI1VMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAWsjViTh11cZu
2TpV5+rKN5L7V7/3S3QnVll/1b/lSRsSPwnpayYHlvlTjWRlxqUe9zVLr51bokU47sbE8Sp5Aq5K
Oq/dfLqvKnmjMJzEZCFwxwkOXEa5aic9LSB51uMQxcOvudbaQgZXVyTbC5aEAf254QvCFOxM+z6W
VqZD96VmY9PIdMiEsIswUF1kzc3Si+mjGvtqKCOz4xMh71W6yxZdNGuQ1gNmvNq+vLFj5rM4/fBU
oq1oKNVGLqojAtbmMJsFu1iFAhOF4JJcUlBy1NzgppUqqBnA+azhHIsN7sqSIohokSQR0Nr1QwsY
eer4NIHKgoCKfCJqlxXdwIQIgJBsrn/UGY6FIbAwBo/zVIOI8xoZ8BNsztUBXrZQJiK8Cy4pvFhP
dZ8E+9OUvlZJAVRfJxgyvDb7pWt5CEYwZCUmTGD5lP8bYAXfgjVebjuRNLPJIrkGrUOXF6pBXqQV
dKiy602IFJrqWbamOSFFoeH3lqNLm2SiTgQ01RUGhVrtmlCNabn4oYqTXWCsWF5ThotIsluZYSp0
E8x6FoTXGhpgzkhUfY1SjSrdXAIcHxjK7QJ9+TOtIjSPfBkI2JnTVTQvQjWSkmiZic2SfrMfsBq5
6mfF+IOOyYfjHimFOaOJIn9dD/0oRq35tCWD4zac/PifCRDz/Z13VuQCTv19CBYAAAAAAAA=


--=-WsVF7OPC8zpBEcS9iR9i--


From xen-devel-bounces@lists.xenproject.org Wed May 20 21:30:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:30:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314453.1584413 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoUW-00026R-OR; Wed, 20 May 2026 21:30:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314453.1584413; Wed, 20 May 2026 21:30:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoUW-00026K-Le; Wed, 20 May 2026 21:30:12 +0000
Received: by outflank-mailman (input) for mailman id 1314453;
 Wed, 20 May 2026 21:30:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPoUV-00026E-34
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:30:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPoUU-005Ieq-C8
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:30:10 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e27b3-bab6-0a2a0a5309dd-0a2a450cd7ba-32
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:30:09 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e27e1-62f1-0a2a450c0019-5a9b32228842-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:30:09 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPoUL-00000007bM0-2WPm; Wed, 20 May 2026 21:30:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=uBmG60KCmcW5thThJf45pWeWvJEk6dEfmgG3zQwi5dg=; b=B6y/IdtSkSEp3UbkGDeA5gyvHc
	iOKeHHaresxSKHgsuQw7WHfjywoyo6BsCu6vst8m0xAfBOrS2GE5VzQ9vkow127vMeCW4X4o0ddTZ
	q6YKbD9w3RbalgIPlRQPvUflvKVosoC6Yx6jGwj8a3I/HtORYv6ZNC45/trlfMJHtcv86hSo0b6Ui
	HP9kR7PtNJpjd/eu8XGEvvR7EBx7XBiAlvZUTV5IUZDL/QXBQDhUUtii/Q5z5eeFkF3meNucgrKwm
	cQHEApK1XZAwgd2ZeZ9Fkpr955B6kmRjJZnrTjJ0Kd8Cip2L6UTqGMCmPpvhq03KrVyH7QIqK/17Z
	UCCCOuKg==;
Message-ID: <b7ba5c1813864d04e0a59ce5e1079af1d0e17915.camel@infradead.org>
Subject: Re: [PATCH v3 08/41] clocksource: hyper-v: Drop wrappers to
 sched_clock save/restore helpers
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 22:29:59 +0100
In-Reply-To: <20260515191942.1892718-9-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-9-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-XejRO1KMfpncCeYEoNeh"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d25034/1779312609-DBD7BCF5-9CB98298/0/0
X-purgate-type: clean
X-purgate-size: 7753


--=-XejRO1KMfpncCeYEoNeh
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Now that all of the Hyper-V reference counter sched_clock code is located
> in a single file, drop the superfluous wrappers for the save/restore flow=
s.
>=20
> No functional change intended.
>=20
> Reviewed-by: Michael Kelley <mhklinux@outlook.com>
> Tested-by: Michael Kelley <mhklinux@outlook.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-XejRO1KMfpncCeYEoNeh
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIxMjk1
OVowLwYJKoZIhvcNAQkEMSIEIL+PmeVhEuq0EEKqRuIy6NSWbIBbZ1cZMhpst0eS617HMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAHOyCa3vnPaVx
pAwzhufuqCpjlX+Do8c0x48ZuNc0F7163vroVqFidzIKrIG0OHUN715PtzFLgEihMjgkZfpUETBG
l1t4HCTjyrZQk/Nl3zl6m/etdFDqJjWa3BX6kM3rJHvEuuVaDQpgx0KcZTp9cikS2uXs/k0m4gvg
Efvef63ojOwil4ISDoEFm4baPuLE9CLhknZfTRKtQ+qF5V5Zwy+IYi+NSwLdT7NP5Nyylq4eoK/4
xpuIepcc7Bs9yt19vnNo3lDaVxkzCQZ3ibsNbvlLGzfSHqGUC9taawZrWZl2s4iIWed6i47e6Vvq
ATapzBhNjIRY3cjCGcIIfjdco286Xpo6U0bVsy1QiboLgOoHDuP9GrhY4LtaRXry2UvhpGlNu/UP
EKN5y7jQ9ozhaFzC1g6V9RLNZ28EK/nm5DbB+VgxHmIVdmPxd+ox/iKKbxgEfilHzfoUvqW1preo
Qgh5n2PClISlnGh9wCLaaGLwXrhemT5QZcm7mZFy8ggbm4CNb74IU0sFE99LEaD9aiPLjdSlIw9t
+fhcldPux/WrJZrfwhexAYucUuFAYVGvd2jRyY9EpiwNvcNSoOy2FJZF0WLya3M45KK0Uihat4h2
+ALlolFwLSXCsb6OU42gnblJZmQgYao2JiOemTdivxRS+h8uVtLyWZGYInouQIMAAAAAAAA=


--=-XejRO1KMfpncCeYEoNeh--


From xen-devel-bounces@lists.xenproject.org Wed May 20 21:30:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:30:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314459.1584422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoV9-0002Xp-Vm; Wed, 20 May 2026 21:30:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314459.1584422; Wed, 20 May 2026 21:30:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoV9-0002Xg-T7; Wed, 20 May 2026 21:30:51 +0000
Received: by outflank-mailman (input) for mailman id 1314459;
 Wed, 20 May 2026 21:30:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPoV9-0002XV-51
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:30:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPoV8-00EFYb-Hc
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:30:50 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e27dd-e002-0a2a0a5209dd-0a2a4503a624-14
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:30:49 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e2809-672d-0a2a45030019-5a9b3222cd76-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:30:49 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPoV0-00000007bNi-3Sai; Wed, 20 May 2026 21:30:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=iR0vPLYITswgtSgBTBoRMyjUX6mzMxULdJ7R+Sys+Ms=; b=vr0sBVx5eHlZoE7JM07BZ2HK6V
	+Nlyipxl9SHT0Bbe7Kc1YS4xhkhoaxoTsvqPNbggpQNxMueEB91VbhSBvtR9FzGq5Ywy4JypnGy5e
	f5gccZoj0ctTgKyFSFWO3OoNP5VE2HrbwsMs+RTlEvZNtCdkf8wlJKpfNsWS9Kev3hPeZ7cENoNMb
	26HRx+plhBG8DM7SgwqpuwrElbsw86w/FddZTYPWTEO2pGJeV/X4yS3jdGPwK/dN4Oov776G5ccaS
	kwziog9DmxJWPQrHB5kMofq7xOfJgd9ImoLdUad2jRg8orVPuFMxztf/ym1442HECcSGtIvXzZk7a
	Rq1sJwIw==;
Message-ID: <1115ab6aedaaa25dfa4f143ad151bb2af0e290d3.camel@infradead.org>
Subject: Re: [PATCH v3 09/41] clocksource: hyper-v: Don't save/restore TSC
 offset when using HV sched_clock
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 22:30:41 +0100
In-Reply-To: <20260515191942.1892718-10-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-10-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-Sn8epQWSao7nVocRa+BP"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-33051d/1779312649-38577938-7E8548B0/0/0
X-purgate-type: clean
X-purgate-size: 8240


--=-Sn8epQWSao7nVocRa+BP
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Now that Hyper-V overrides the sched_clock save/restore hooks if and only
> sched_clock itself is set to the Hyper-V reference counter, drop the
> invocation of the "old" save/restore callbacks.=C2=A0 When the registrati=
on of
> the PV sched_clock was done separately from overriding the save/restore
> hooks, it was possible for Hyper-V to clobber the TSC save/restore
> callbacks without actually switching to the Hyper-V refcounter.
>=20
> Enabling a PV sched_clock is a one-way street, i.e. the kernel will never
> revert to using TSC for sched_clock, and so there is no need to invoke th=
e
> TSC save/restore hooks (and if there was, it belongs in common PV code).
>=20
> Reviewed-by: Michael Kelley <mhklinux@outlook.com>
> Tested-by: Michael Kelley <mhklinux@outlook.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-Sn8epQWSao7nVocRa+BP
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIxMzA0
MVowLwYJKoZIhvcNAQkEMSIEIMeQ1gU+KVwGQPHzOL8it0kgAyiQSr7Z/VeLigqpvrGjMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAEYz61V0unSv/
wFhbyk9O9q6uHQtWdSW4YW6o688L8yDPnW0/YO/grLOswG50sdT2fJ7CCtfEzl+mnVYh4mfp0P29
VP3rmmAGp2xGhrc9gqE3yb/dgRhQs0zNmvgXphdVFB8v/sfbebvwQP/8tHLizSXrQlEFoC8zJDk8
lfoTid4Z23xHgE6tBYzZOZ/ML+Ev+Jc4Q5dEEQRt5QSr2OJcgAqr6+F9PW0F4xPLVFenMG+jVnZT
8vwtnYw35xOCQk+8fEZKYQwjF8EaG8GpjhVabchQ+EW7dRTBSZ9mhiv6lKuo6qx1CtVVQrNRbipN
CHBWCwMU41m/jlkSlUc1n7hJXJo735U3BmcCm2uJ2YcFbfyIZPGHCiajwjSzso0xWGaeJTtX0hIS
TkyAGlGJrDioxK1VoxaNEp1D2BCiyOX4E6qs7YJKtFjHnuScwO6vwtHOPhYgFQc4Z5eNcdy+0xZw
CW9gz2BimMvOmFVbqcBsKGL28tUTNpE4dUrxItc4kR31rhWJyk3iU8w7b8ZmO+DhrTbubO67thzO
1uBPoKfqL3GIdVVlSZuHKpCKQHFbQacDnstMPxSBB2K8Cg99Kj9mAjgTmKuVcRvGEAKhWwPw+bB8
wKJKp3x5Mq2NmqdOPpoi2jt5wHxFBCtZCwKTMkBzeBth4F6zUouUItU+QY9IYT4AAAAAAAA=


--=-Sn8epQWSao7nVocRa+BP--


From xen-devel-bounces@lists.xenproject.org Wed May 20 21:33:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:33:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314466.1584431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoXt-0003BF-FL; Wed, 20 May 2026 21:33:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314466.1584431; Wed, 20 May 2026 21:33:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoXt-0003B8-C1; Wed, 20 May 2026 21:33:41 +0000
Received: by outflank-mailman (input) for mailman id 1314466;
 Wed, 20 May 2026 21:33:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3sCgOagYKCZEDzv84x19916z.x97Iz8-yzGz663DED.Iz8AC94zxE.9C1@flex--seanjc.bounces.google.com>)
 id 1wPoXr-0003Au-N2
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:33:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPoXq-000gTb-PH
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:33:38 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3sCgOagYKCZEDzv84x19916z.x97Iz8-yzGz663DED.Iz8AC94zxE.9C1@flex--seanjc.bounces.google.com>)
 id 6a0e2876-5cb7-0a2a0a5109dd-0a2a4503bc6e-38
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:33:38 +0200
Received: from [209.85.215.201] (helo=mail-pg1-f201.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3sCgOagYKCZEDzv84x19916z.x97Iz8-yzGz663DED.Iz8AC94zxE.9C1@flex--seanjc.bounces.google.com>)
 id 6a0e28b1-672d-0a2a45030019-d155d7c9d921-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:33:38 +0200
Received: by mail-pg1-f201.google.com with SMTP id
 41be03b00d2f7-c828acf7c1dso8774959a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 14:33:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779312816; x=1779917616; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=LZSsn4W0FsDL+gHozCZFUr2SRc1gslr4/bysNvveKJE=;
        b=Bj04TAHLewNVYX/QUbiC3VU8l65ecoXf8zQbW2Gwjj0Kv34+JbiWwYyVlnpIhGDirY
         85WrUovIZqICDQBD8vQCYEZIplLs5LecZSdEEzEyslJX1mpsgZszyH1Qt98aSSMxsHdV
         yxFeOB2qVgfqdHmSlshAmsMY6C/6xlfrXh96iI+KQOF4KZJ1j5Pn/BH/u4+Ml6Ju/MWN
         9TKOtI/Ce1zaaWHhsLziDw4b0h9rfooDFSbyjL8dYxGJo8tCGBVH/FgsBBgErBt8bD7S
         eEyImAyYcrXw+Z/o08KYA/BuZ2YLBSSZMujvrFAWF9TKrHYiSDGx9n84SE7FZXNy24f5
         6tlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779312816; x=1779917616;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=LZSsn4W0FsDL+gHozCZFUr2SRc1gslr4/bysNvveKJE=;
        b=oZ4eSrF2NXjJbpLwdMAnIEp+CGl8p58L7nCFnllEokZObBkRfBjF9m9tkVnfzT8Q7d
         7VkLhf/GRDDq3xqne5D+ZwsgqbHO7QNxA/NDhNd2F1tOKRFrzF5AR4x9vUPFKFJFYZIB
         84dByNsbH22m+jzKZ3AXADmGAfewdDBKH80X7EN7JdfYNnFeEiW3kqUcwU+OXeBA6vS6
         BLggMA/zPmIwmRJzWziBTc9WE6Ysk4i/0Tb45X7O22AWJXXBRP+MGzRSC+Bzw/UuCi+s
         UWpeEY8nE0JdlmPCBFtqFMqMUPJHNFpuHMjVg8LG+kZu8FZq6sb3iacp9+/OX96KCufY
         9wQQ==
X-Forwarded-Encrypted: i=1; AFNElJ+QYRbf80WV3PMPZXu5z+LoKXu/f85uYYo7nzwt4wCgZzw58iU1oZ/oAF5ciA5yK7RB0MdgHoz/kBU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxBifvR+cIp7jllGEaB3ptZqJAG9mquxeoxvAEIAbBU6xsv6c1N
	H+NsY+ACTySR97GF1Dqa1OAn7ntDU9rPrwAqpZHpAUvwkXitgh0a3BnFtxOEgmx9iOV1g1hSV21
	t8PVX6A==
X-Received: from pgdh5.prod.google.com ([2002:a05:6a02:5185:b0:c79:7107:a67a])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:7fa8:b0:3a0:b65a:5dd1
 with SMTP id adf61e73a8af0-3b3081bfb61mr164633637.0.1779312816324; Wed, 20
 May 2026 14:33:36 -0700 (PDT)
Date: Wed, 20 May 2026 14:33:35 -0700
In-Reply-To: <621e10bdc9e297c6c600b561d8fa25c3b62968bc.camel@infradead.org>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com> <20260515191942.1892718-3-seanjc@google.com>
 <44e0d60548d317fd59895f18bd17220dfb2f834b.camel@infradead.org>
 <ag4dMc2B3JQi4vxU@google.com> <621e10bdc9e297c6c600b561d8fa25c3b62968bc.camel@infradead.org>
Message-ID: <ag4or9-9c6VZxqya@google.com>
Subject: Re: [PATCH v3 02/41] x86/tsc: Add helper to register CPU and TSC freq
 calibration routines
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
X-purgate-ID: tlsNG-33051d/1779312818-3794D938-11D3E248/0/0
X-purgate-type: clean
X-purgate-size: 4426

T24gV2VkLCBNYXkgMjAsIDIwMjYsIERhdmlkIFdvb2Rob3VzZSB3cm90ZToKPiBPbiBXZWQsIDIw
MjYtMDUtMjAgYXQgMTM6NDQgLTA3MDAsIFNlYW4gQ2hyaXN0b3BoZXJzb24gd3JvdGU6Cj4gPiAK
PiA+ICvCoMKgwqDCoMKgwqAgLyoKPiA+ICvCoMKgwqDCoMKgwqDCoCAqIElmIHRoZSBUU0MgY291
bnRzIGF0IGEgY29uc3RhbnQgZnJlcXVlbmN5IGFjcm9zcyBQL1Qgc3RhdGVzLCBjb3VudHMKPiA+
ICvCoMKgwqDCoMKgwqDCoCAqIGluIGRlZXAgQy1zdGF0ZXMsIGFuZCB0aGUgVFNDIGhhc24ndCBi
ZWVuIG1hcmtlZCB1bnN0YWJsZSwgdHJlYXQgdGhlCj4gPiArwqDCoMKgwqDCoMKgwqAgKiBUU0Mg
cmVsaWFibGUsIGFzIGd1YXJhbnRlZWQgYnkgS1ZNLsKgIE5vdGUsIHRoZSBUU0MgdW5zdGFibGUg
Y2hlY2sKPiA+ICvCoMKgwqDCoMKgwqDCoCAqIGV4aXN0cyBwdXJlbHkgdG8gaG9ub3IgdGhlIFRT
QyBiZWluZyBtYXJrZWQgdW5zdGFibGUgdmlhIGNvbW1hbmQKPiA+ICvCoMKgwqDCoMKgwqDCoCAq
IGxpbmUsIGFueSBydW50aW1lIGRldGVjdGlvbiBvZiBhbiB1bnN0YWJsZSB3aWxsIGhhcHBlbiBh
ZnRlciB0aGlzLgo+ID4gK8KgwqDCoMKgwqDCoMKgICovCj4gPiArwqDCoMKgwqDCoMKgIGlmIChi
b290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKSAmJgo+ID4gK8KgwqDCoMKgwqDC
oMKgwqDCoMKgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9OT05TVE9QX1RTQykgJiYKPiA+ICvC
oMKgwqDCoMKgwqDCoMKgwqDCoCAhY2hlY2tfdHNjX3Vuc3RhYmxlKCkpCj4gICAgIHsgCj4gPiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0c2NfcHJvcGVydGllcyA9IFRTQ19GUkVRX0tO
T1dOX0FORF9SRUxJQUJMRTsKPiAKPiAgICAga3ZtY2xvY2sgPSAwOyAvKiBXaHkgdXNlIGl0IGlm
IHRoZSBUU0Mgd29ya3M/IFRoZSBrdm1jbG9jayBleGlzdHMKPiAgICAgICAgICAgICAgICAgICAg
ICAqcHVyZWx5KiB0byB3b3JrIGFyb3VuZCBhIFRTQyB3aGljaCAqZG9lc24ndCoKPiAgICAgICAg
ICAgICAgICAgICAgICBoYXZlIHRob3NlIHByb3BlcnRpZXMgY2hlY2tlZCBhYm92ZS4gKi8KCmt2
bWNsb2NrIHN0aWxsIHByb3ZpZGVzIFNZU1RFTV9USU1FIGFuZCBXQUxMX0NMT0NLIDotLwoKPiAg
ICAgfQo+IAo+IEkgd2FzIGdvaW5nIHRvIHNheSBQVkNMT0NLX1RTQ19TVEFCTEVfQklULCBhbmQg
bWF5YmUgd2Ugc2hvdWxkIGNoZWNrCj4gdGhhdCAqdG9vKiBmb3IgcGFyYW5vaWE/CgpObz8gUFZD
TE9DS19UU0NfU1RBQkxFIGlzIHByb3BlcnR5IG9mIGt2bWNsb2NrIG1vcmUgdGhhbiBpdCdzIGEg
cHJvcGVydHkgb2YgdGhlClRTQyBpdHNlbGYuICBBbmQgZm9yIHRoZSBuby1rdm1jbG9jayBjYXNl
LCB3ZSBtb3N0IGRlZmluaXRlbHkgZG9uJ3Qgd2FudCB0byBzZXR1cAprdm1jbG9jayBqdXN0IHRv
IHF1ZXJ5IHRoYXQgZmxhZy4KCj4gQnV0IGhvcGVmdWxseSB0aGUgY2hlY2tzIHlvdSBoYXZlIGFi
b3ZlIGFyZSBlcXVpdmFsZW50PwoKVGhleSBhcmVuJ3QgYXMgcGFyYW5vaWQsIGJ1dCBpZiB0aGUg
aG9zdCBlbnVtZXJhdGVzIENPTlNUQU5UK05PTlNUT1AgVFNDIGRlc3BpdGUKS1ZNLXRoZS1ob3N0
IG5vdCBiZWluZyBhYmxlIHRvIGFkdmVydGlzZSBQVkNMT0NLX1RTQ19TVEFCTEVfQklULCB0aGVu
IHRoZSBWTU0gZG9uZQptZXNzZWQgdXAuCgo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoCBrdm1fdHNj
X2toel9jcHVpZCA9IGt2bV9wYXJhX3RzY19raHooKTsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqAg
LyoKPiA+ICvCoMKgwqDCoMKgwqDCoCAqIElmIHByb3ZpZGVkLCB1c2UgdGhlIFRTQyAoYW5kIEFQ
SUMgYnVzKSBmcmVxdWVuY3kgcHJvdmlkZWQgaW4gS1ZNJ3MKPiA+ICvCoMKgwqDCoMKgwqDCoCAq
IFBWIENQVUlEIGxlYWYgZXZlbiBpZiBrdm1jbG9jayBpdHNlbGYgaXMgZGlzYWJsZWQgdmlhIGNv
bW1hbmQgbGluZS4KPiA+ICvCoMKgwqDCoMKgwqDCoCAqIFRoZSBQViBDUFVJRCBpbmZvcm1hdGlv
biBpc24ndCBkZXBlbmRlbnQgb24ga3ZtY2xvY2sgaW4gYW55IHdheSwgYW5kCj4gPiArwqDCoMKg
wqDCoMKgwqAgKiBpbiBmYWN0IHVzaW5nIHRoZSBwcmVjaXNlIGluZm9ybWF0aW9uIGlzICptb3Jl
KiBpbXBvcnRhbnQgd2hlbiB0aGUKPiA+ICvCoMKgwqDCoMKgwqDCoCAqIHVzZXIgaGFzIGV4cGxp
Y2l0bHkgZGlzYWJsZWQga3ZtY2xvY2sgdG8gZm9yY2UgdGhlIGtlcm5lbCB0byB1c2UgdGhlCj4g
PiArwqDCoMKgwqDCoMKgwqAgKiBUU0MgYXMgaXRzIGNsb2Nrc291cmNlLgo+ID4gK8KgwqDCoMKg
wqDCoMKgICovCj4gPiArwqDCoMKgwqDCoMKgIGlmICgha3ZtY2xvY2spIHsKPiA+ICvCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChrdm1fdHNjX2toel9jcHVpZCkKPiA+ICvCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0c2NfcmVnaXN0ZXJfY2FsaWJy
YXRpb25fcm91dGluZXMoa3ZtX2dldF90c2Nfa2h6LAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAga3ZtX2dldF9jcHVfa2h6LAo+ID4g
K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
dHNjX3Byb3BlcnRpZXMpOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJu
Owo+ID4gK8KgwqDCoMKgwqDCoCB9Cj4gPiArCj4gCj4gCj4gUmVnYXJkbGVzcyBvZiB0aGUgYWJv
dmUsIHdoeSBub3QganVzdCByZWdpc3RlciB0aGVzZSBoZXJlCj4gdW5jb25kaXRpb25hbGx5LCBh
bmQgcmVtb3ZlIHRoZSBsYXRlciBjYWxsIHRoYXQgZG9lcyB0aGUgc2FtZT8KCkJlY2F1c2UgaWYg
a3ZtY2xvY2s9biwgaXQncyBvbmx5IHNhZmUgdG8gY2FsbCBrdm1fZ2V0X3RzY19raHooKSBpZiBr
dm1fdHNjX2toel9jcHVpZAppcyBub24temVybywgb3RoZXIgd2lzZSB0aGUgImVsc2UiIHBhdGgg
d2lsbCBoaXQgYSBOVUxMIHBvaW50ZXIgZGVyZWYgd2hlbiB0cnlpbmcKdG8gZ2V0IHRoZSBmcmVx
dWVuY3kgZnJvbSB0aGUgUFYgY2xvY2sgc3RydWN0OgoKCXJldHVybiBrdm1fdHNjX2toel9jcHVp
ZCA/IDogcHZjbG9ja190c2Nfa2h6KHRoaXNfY3B1X3B2dGkoKSk7Cg==


From xen-devel-bounces@lists.xenproject.org Wed May 20 21:44:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:44:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314478.1584441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoiC-00052t-Eg; Wed, 20 May 2026 21:44:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314478.1584441; Wed, 20 May 2026 21:44:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoiC-00052l-95; Wed, 20 May 2026 21:44:20 +0000
Received: by outflank-mailman (input) for mailman id 1314478;
 Wed, 20 May 2026 21:44:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPoiA-00052f-QB
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:44:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPoi9-000hXc-Bp
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:44:17 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e2ad0-2eae-0a2a0a5409dd-0a2a4502aadc-38
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:44:17 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e2b30-af86-0a2a45020019-5a9b3222cdf2-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:44:17 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPoi0-00000007bx6-0NuV; Wed, 20 May 2026 21:44:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=V+eATgFjWpKnSKJ5+sPGQpYVwR9soHFVnn/OiMK5Xu8=; b=DWZ73e2as4JZA5wGwlfPWL899B
	lD0QbdknJ5+LTfMizvdQ0Ltd3UyxnFmVZ/6KF+xY5Nt4xtAqHI+T5YgcwG2Gug4yGEUXjiptDo7h1
	a+FoiEL2zHsVAWUO1iZZYYmedl5/6ETBuIBKDhbopX57i2My7K9jNk56GrIwl3HnwCjbl7yAP7ctV
	4YhhryAvO6p5/bSuTOoK0+KL2aj5WiS4lHvHcPe2GjyCjcLD0iAYqwPgP03Lw3q2M2H4kboQ69h8b
	0U+9KwFbsneBjHn5oqHOZPfu7RwBidF5xkcqWAIWR8CItkSRmTLQnOWV7GUuKLLSXaCEXWzVkE/75
	87ObyEVw==;
Message-ID: <a336f998f4d6ca1872eb1ce5867c89e54c228b8b.camel@infradead.org>
Subject: Re: [PATCH v3 02/41] x86/tsc: Add helper to register CPU and TSC
 freq calibration routines
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
 "K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang
 <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, Dexuan Cui
 <decui@microsoft.com>, Long Li <longli@microsoft.com>, Ajay Kaher
 <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen
 <dave.hansen@linux.intel.com>, Andy Lutomirski <luto@kernel.org>, Peter
 Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, Daniel
 Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>,
 John Stultz <jstultz@google.com>, Rick Edgecombe
 <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 22:44:06 +0100
In-Reply-To: <ag4or9-9c6VZxqya@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-3-seanjc@google.com>
	 <44e0d60548d317fd59895f18bd17220dfb2f834b.camel@infradead.org>
	 <ag4dMc2B3JQi4vxU@google.com>
	 <621e10bdc9e297c6c600b561d8fa25c3b62968bc.camel@infradead.org>
	 <ag4or9-9c6VZxqya@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-oxbeONMkNdqRjI4b1mSx"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-720697/1779313457-83762161-36AD66D8/0/0
X-purgate-type: clean
X-purgate-size: 11473


--=-oxbeONMkNdqRjI4b1mSx
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64

T24gV2VkLCAyMDI2LTA1LTIwIGF0IDE0OjMzIC0wNzAwLCBTZWFuIENocmlzdG9waGVyc29uIHdy
b3RlOgo+IE9uIFdlZCwgTWF5IDIwLCAyMDI2LCBEYXZpZCBXb29kaG91c2Ugd3JvdGU6Cj4gPiBP
biBXZWQsIDIwMjYtMDUtMjAgYXQgMTM6NDQgLTA3MDAsIFNlYW4gQ2hyaXN0b3BoZXJzb24gd3Jv
dGU6Cj4gPiA+IAo+ID4gPiArwqDCoMKgwqDCoMKgIC8qCj4gPiA+ICvCoMKgwqDCoMKgwqDCoCAq
IElmIHRoZSBUU0MgY291bnRzIGF0IGEgY29uc3RhbnQgZnJlcXVlbmN5IGFjcm9zcyBQL1Qgc3Rh
dGVzLCBjb3VudHMKPiA+ID4gK8KgwqDCoMKgwqDCoMKgICogaW4gZGVlcCBDLXN0YXRlcywgYW5k
IHRoZSBUU0MgaGFzbid0IGJlZW4gbWFya2VkIHVuc3RhYmxlLCB0cmVhdCB0aGUKPiA+ID4gK8Kg
wqDCoMKgwqDCoMKgICogVFNDIHJlbGlhYmxlLCBhcyBndWFyYW50ZWVkIGJ5IEtWTS7CoCBOb3Rl
LCB0aGUgVFNDIHVuc3RhYmxlIGNoZWNrCj4gPiA+ICvCoMKgwqDCoMKgwqDCoCAqIGV4aXN0cyBw
dXJlbHkgdG8gaG9ub3IgdGhlIFRTQyBiZWluZyBtYXJrZWQgdW5zdGFibGUgdmlhIGNvbW1hbmQK
PiA+ID4gK8KgwqDCoMKgwqDCoMKgICogbGluZSwgYW55IHJ1bnRpbWUgZGV0ZWN0aW9uIG9mIGFu
IHVuc3RhYmxlIHdpbGwgaGFwcGVuIGFmdGVyIHRoaXMuCj4gPiA+ICvCoMKgwqDCoMKgwqDCoCAq
Lwo+ID4gPiArwqDCoMKgwqDCoMKgIGlmIChib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQ09OU1RB
TlRfVFNDKSAmJgo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgYm9vdF9jcHVfaGFzKFg4Nl9G
RUFUVVJFX05PTlNUT1BfVFNDKSAmJgo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgIWNoZWNr
X3RzY191bnN0YWJsZSgpKQo+ID4gwqDCoMKgIHsgCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHRzY19wcm9wZXJ0aWVzID0gVFNDX0ZSRVFfS05PV05fQU5EX1JFTElBQkxFOwo+
ID4gCj4gPiDCoMKgwqAga3ZtY2xvY2sgPSAwOyAvKiBXaHkgdXNlIGl0IGlmIHRoZSBUU0Mgd29y
a3M/IFRoZSBrdm1jbG9jayBleGlzdHMKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgKnB1cmVseSogdG8gd29yayBhcm91bmQgYSBUU0Mgd2hpY2ggKmRvZXNuJ3Qq
Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGhhdmUgdGhvc2Ug
cHJvcGVydGllcyBjaGVja2VkIGFib3ZlLiAqLwo+IAo+IGt2bWNsb2NrIHN0aWxsIHByb3ZpZGVz
IFNZU1RFTV9USU1FIGFuZCBXQUxMX0NMT0NLIDotLwoKVW0sIFNZU1RFTV9USU1FICppcyogdGhl
IGt2bWNsb2NrIG9mIHdoaWNoIHdlIHNwZWFrLCBpc24ndCBpdD8KCldBTExfQ0xPQ0sgaXMgc29t
ZXRoaW5nIGVsc2UsIGFuZCBJIGd1ZXNzIHdlIHNob3VsZCBzdGlsbCBjb25zdW1lIHRoYXQsCnll
cy4KCj4gCj4gPiA+ICsKPiA+ID4gK8KgwqDCoMKgwqDCoCBrdm1fdHNjX2toel9jcHVpZCA9IGt2
bV9wYXJhX3RzY19raHooKTsKPiA+ID4gKwo+ID4gPiArwqDCoMKgwqDCoMKgIC8qCj4gPiA+ICvC
oMKgwqDCoMKgwqDCoCAqIElmIHByb3ZpZGVkLCB1c2UgdGhlIFRTQyAoYW5kIEFQSUMgYnVzKSBm
cmVxdWVuY3kgcHJvdmlkZWQgaW4gS1ZNJ3MKPiA+ID4gK8KgwqDCoMKgwqDCoMKgICogUFYgQ1BV
SUQgbGVhZiBldmVuIGlmIGt2bWNsb2NrIGl0c2VsZiBpcyBkaXNhYmxlZCB2aWEgY29tbWFuZCBs
aW5lLgo+ID4gPiArwqDCoMKgwqDCoMKgwqAgKiBUaGUgUFYgQ1BVSUQgaW5mb3JtYXRpb24gaXNu
J3QgZGVwZW5kZW50IG9uIGt2bWNsb2NrIGluIGFueSB3YXksIGFuZAo+ID4gPiArwqDCoMKgwqDC
oMKgwqAgKiBpbiBmYWN0IHVzaW5nIHRoZSBwcmVjaXNlIGluZm9ybWF0aW9uIGlzICptb3JlKiBp
bXBvcnRhbnQgd2hlbiB0aGUKPiA+ID4gK8KgwqDCoMKgwqDCoMKgICogdXNlciBoYXMgZXhwbGlj
aXRseSBkaXNhYmxlZCBrdm1jbG9jayB0byBmb3JjZSB0aGUga2VybmVsIHRvIHVzZSB0aGUKPiA+
ID4gK8KgwqDCoMKgwqDCoMKgICogVFNDIGFzIGl0cyBjbG9ja3NvdXJjZS4KPiA+ID4gK8KgwqDC
oMKgwqDCoMKgICovCj4gPiA+ICvCoMKgwqDCoMKgwqAgaWYgKCFrdm1jbG9jaykgewo+ID4gPiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoa3ZtX3RzY19raHpfY3B1aWQpCj4gPiA+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0c2NfcmVnaXN0
ZXJfY2FsaWJyYXRpb25fcm91dGluZXMoa3ZtX2dldF90c2Nfa2h6LAo+ID4gPiArwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBrdm1fZ2V0X2Nw
dV9raHosCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIHRzY19wcm9wZXJ0aWVzKTsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgcmV0dXJuOwo+ID4gPiArwqDCoMKgwqDCoMKgIH0KPiA+ID4gKwo+ID4gCj4gPiAK
PiA+IFJlZ2FyZGxlc3Mgb2YgdGhlIGFib3ZlLCB3aHkgbm90IGp1c3QgcmVnaXN0ZXIgdGhlc2Ug
aGVyZQo+ID4gdW5jb25kaXRpb25hbGx5LCBhbmQgcmVtb3ZlIHRoZSBsYXRlciBjYWxsIHRoYXQg
ZG9lcyB0aGUgc2FtZT8KPiAKPiBCZWNhdXNlIGlmIGt2bWNsb2NrPW4sIGl0J3Mgb25seSBzYWZl
IHRvIGNhbGwga3ZtX2dldF90c2Nfa2h6KCkgaWYga3ZtX3RzY19raHpfY3B1aWQKPiBpcyBub24t
emVybywgb3RoZXIgd2lzZSB0aGUgImVsc2UiIHBhdGggd2lsbCBoaXQgYSBOVUxMIHBvaW50ZXIg
ZGVyZWYgd2hlbiB0cnlpbmcKPiB0byBnZXQgdGhlIGZyZXF1ZW5jeSBmcm9tIHRoZSBQViBjbG9j
ayBzdHJ1Y3Q6Cj4gCj4gCXJldHVybiBrdm1fdHNjX2toel9jcHVpZCA/IDogcHZjbG9ja190c2Nf
a2h6KHRoaXNfY3B1X3B2dGkoKSk7CgpBaCwgcmlnaHQuIFRoYW5rcy4gSWNrIHRob3VnaCA6KQo=


--=-oxbeONMkNdqRjI4b1mSx
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIxNDQw
NlowLwYJKoZIhvcNAQkEMSIEIEmBoU2SoTpbUcEINmHhbssFqM9cMtAcIF2RwoenHW4SMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAz/wiqoIcasKx
bjslyFyZ7yEgJVNn0JJcSpCgnFYroD+iQXtLV/szjY3km9e4EtHn0jmjHMNjJ+CHUi4yrcOU9OQp
i9Rx0olS3amDHQTwZ89HDSG8187RNnJC3Czqs0+ZE59fuMXwbmgCzablVsgZLXM6VWTISdfJgqH3
zn3UK2KojCLpQkCUO2fl4gknxzEP9TBbpQX52Wem0YlaHnIG6du9ht8hbouRfv0VnLuIKaSJB6KL
RuS3rc+TMlcVdUS7LzoDqxf4CT4HX2umWlwnthoAXCBs5H/ZEKucIF1YjKaSqLP/+pb0rRrmoPbX
1IUK87sMU+BKxXacDCBzOo9Pev3U7p1ba2NDddOVsARByzM2FTO8m3lP/dHk25sQ9AXqVuGSVn7+
a5yv5/ViBkKq/OsJ6BK0ANY/bHLl339Y8VAcLtDta4LrO7t1DJKxZgs8zkkjmOyD2fYPYQ6/3zU4
9Evwy/ycUyZiVhpnmFCuNHslfYs8RieMK8nqGcGgTxIeV+xn/N9Q6WDn7fiPZUXVg2aMSa2dNRCy
pQedYZNrVP8HADS4M3wkhgZH/e3x1+ogRtireu2rVLNKiOoOO14PNpayVX4CLSOgoOv+s9CyC7/G
lvrsjhfGNgdySpgl97YST+zUsUuj0iqKAUzGiZUlD2wh1sla0hW4cf59o7fcSnoAAAAAAAA=


--=-oxbeONMkNdqRjI4b1mSx--


From xen-devel-bounces@lists.xenproject.org Wed May 20 21:46:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:46:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314484.1584450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoju-0005WA-NL; Wed, 20 May 2026 21:46:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314484.1584450; Wed, 20 May 2026 21:46:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPoju-0005W3-JQ; Wed, 20 May 2026 21:46:06 +0000
Received: by outflank-mailman (input) for mailman id 1314484;
 Wed, 20 May 2026 21:46:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPojs-0005Vv-L8
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:46:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPojs-000hdK-1B
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:46:04 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e2b70-2eae-0a2a0a5409dd-0a2a450cac30-38
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:46:03 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e2b9b-62f1-0a2a450c0019-5a9b3222b608-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:46:03 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPojk-00000007c3P-0JUI; Wed, 20 May 2026 21:45:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=kMvKUYUiacn08XkU4Q8chB3i7d0Md6scr9tZlkvezXo=; b=e0Y1e/z/NlAQMOxl7qWJr20NHv
	4M9sDFcjk6Vt29Tb1kezyRviZ3URUrpKS2JjK2X7mL5txD0EyfZQUxTlHhkwoFPFg2HXKhLBnkHy6
	+ee093iE6WdCtkjbla98j2HbmY/Bh4bwKn0MpQzJLKRdbaCY3QCb5WbGUV1KStdOD8aE0ZPtyqIbJ
	vhkXPD/wYNL+ufFiOb/SSQyOn+jsE0Syyk0+DOuyyV9r9FRJL52x9xc+RH+oYNHC2teuLISgNX+bQ
	FN3kdnlfLKIMxCC0+wJQzxMUNjrLtkle+IIhOY933l03yaINabarzpg4ZcUUEc79P9bErwp+sAKYP
	jdxI5DPQ==;
Message-ID: <d02f2ad81ba1030029ad0624c5dbb6f8bf1806a8.camel@infradead.org>
Subject: Re: [PATCH v3 10/41] x86/kvmclock: Setup kvmclock for secondary
 CPUs iff CONFIG_SMP=y
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 22:45:54 +0100
In-Reply-To: <20260515191942.1892718-11-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-11-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-+JrU7A56rZDSz8IlvFyo"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d25034/1779313563-E196DCF5-A62DF8C6/0/0
X-purgate-type: clean
X-purgate-size: 7791


--=-+JrU7A56rZDSz8IlvFyo
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Gate kvmclock's secondary CPU code on CONFIG_SMP, not CONFIG_X86_LOCAL_AP=
IC.
> Originally, kvmclock piggybacked PV APIC ops to setup secondary CPUs.
> When that wart was fixed by commit df156f90a0f9 ("x86: Introduce
> x86_cpuinit.early_percpu_clock_init hook"), the dependency on a local API=
C
> got carried forward unnecessarily.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-+JrU7A56rZDSz8IlvFyo
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIxNDU1
NFowLwYJKoZIhvcNAQkEMSIEIKPdoFhvPTMpPVw2XUITwTLNBQPAmcxVv7Tg/fzHVvB0MGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAgzbVGk8huXTS
4on9xRfy0KnakB4hk3fxetzvNePeJs0D+0uIlQ6rqdxQDd4oQo0vuGESRZW9T2Aa+SybAqLxkykx
a1tRVsv5qKbqIcmnBbouA9qAQs+f0E76E0u7lzH7beLNz4Fg9LMfviWdB1GX5G2lJmp7O+O3iqlm
f0LO/NzLkoUIeClT3GbvGX7m78VtkWSAW/6btbG2jcu6L6Mpd3GjgWK1aR9uykW3Ju4PP97Fx8Fb
22NZB4mvo4AK3XM2PSVzlK7J4EjFDC8FI0LJWXBEXd1wTeWEHOZKi15qvJA/zD2Klrlt74gcUtXx
mgaJ/Wc2AlhbpHnjYgKwybuz42MrhXfahuytl4cO65dijjg7AhdCJolY5d7tbJw8Nv0vpXyR7sx6
m5UXOCi0dIcXKO9kmwSEzfhrEzh2kPpRR71eOrH+6SwcB2WPTn0eUS+AfHXDcmn9LttXtg1pjjmo
pFN5Y16N+2wS1kWzCGkvZai9bsT4IvH7+VVzXWazyPOsK1EQh8lJnZpUzodBjz1NnX/fFZ/yAlQ0
5kugqtWCICV5AedRGCqj1tTzpcT2hrUAEIPtca+cMix0PSGHkNrmB11472AiH+RY4Dl1Qt/Kl9NT
OPXqvH4Eyq4uBO4aolIlBC7lV+USbpsDBomQveJD7BL5LCA/uDE4HfVv8WtXXYMAAAAAAAA=


--=-+JrU7A56rZDSz8IlvFyo--


From xen-devel-bounces@lists.xenproject.org Wed May 20 21:52:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:52:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314492.1584458 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPopb-0007Hg-DA; Wed, 20 May 2026 21:51:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314492.1584458; Wed, 20 May 2026 21:51:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPopb-0007HZ-AL; Wed, 20 May 2026 21:51:59 +0000
Received: by outflank-mailman (input) for mailman id 1314492;
 Wed, 20 May 2026 21:51:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPopZ-0007HT-81
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:51:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPopY-00BXe1-Fe
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:51:56 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e2cf8-e002-0a2a0a5209dd-0a2a450b812e-2
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:51:56 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e2cfb-212f-0a2a450b0019-5a9b3222e90c-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:51:56 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPopP-00000007cNa-1TEk; Wed, 20 May 2026 21:51:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=76gkSSjJ06e6pDzAypOKfXDG5VHWtkBMD5ifLWyI+5o=; b=jDmVqRhZHbXv3h5OJh4AYHQSn8
	TcRtwUK1NdPokJBhfUkxNtROd3xAiaREqNuRLWVIiAXHP3UvgdDYC5Yf5BY4rY2TUaQPllysR1KXQ
	dO3DkzxajHWJ5inYosuVwKRT3D1Rr4EnWLI7eDhQTR5KCsWJbTO7vE10xzs5bJTR8JwGwjEPARDuH
	Wcfd1KxkS1iwkD1eI4tUV852ZYMaBI+Larn/10z+aIEdObmWVitRQmNZoTanmKg4em5hfIx+C+nrN
	Cnt2ATvIMHLya1fQDhLPMBKr7eHbZ+6VLggLrfzNweB1BhFDqasyaNljdnwfvp/3r5yRvfXJeRphV
	/KxhU1rQ==;
Message-ID: <133628b2e275b00f0b0779b6b6507043f08c4a52.camel@infradead.org>
Subject: Re: [PATCH v3 11/41] x86/kvm: Don't disable kvmclock on BSP in
 syscore_suspend()
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 22:51:45 +0100
In-Reply-To: <20260515191942.1892718-12-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-12-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-kWcNeJmwuu+RfO0gpPl+"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-42698a/1779313916-12971F3B-C19676F8/0/0
X-purgate-type: clean
X-purgate-size: 8499


--=-kWcNeJmwuu+RfO0gpPl+
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Don't disable kvmclock on the BSP during syscore_suspend(), as the BSP's
> clock is NOT restored during syscore_resume(), but is instead restored
> earlier via the sched_clock restore callback.=C2=A0 If suspend is aborted=
, e.g.
> due to a late wakeup, the BSP will run without its clock enabled, which
> "works" only because KVM-the-hypervisor is kind enough to not clobber the
> shared memory when the clock is disabled.=C2=A0 But over time, the BSP's =
view
> of time will drift from APs.

The work that Dongli and I have been doing elsewhere makes me want to
phrase that last sentence far more judgmentally, as the kvmclock
absolutely should *not* be randomly drifting over time without good
reason, and what was written to it earlier really *ought* to still be
valid.

But OK :)

> Plumb in an "action" to KVM-as-a-guest and kvmclock code in preparation
> for additional cleanups to kvmclock's suspend/resume logic.
>=20
> Fixes: c02027b5742b ("x86/kvm: Disable kvmclock on all CPUs on shutdown")
> Cc: stable@vger.kernel.org
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-kWcNeJmwuu+RfO0gpPl+
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIxNTE0
NVowLwYJKoZIhvcNAQkEMSIEIG3Ms/13pOS1mNDRU/9ZB7E5uWogHeTmmvAoNMVFtrizMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAok3JwsHkytAd
bZrxc7xVEyigMcx6SvsZP+pov2/2/Rne/m7TSWOl+u7OwAkiRZbshvzJ5oPaygE5lJYRCMunbDyY
ndmrWWj7Tj8rSIFeXHygCw7VQ3V1imuY540zqE+t+ojO2mPmVpKjyHOUcTmwTglL6T767BtXyh7Z
qqARBmNXd0gTf2P16Iw9AmuxrDhflH4U8DUEQqs5LNxo2BQKEESejrH4w1yX4keCG4iPJ7S7lGkz
WM+cjCtcXQPyRDRr9IZvdNlbG7hANlz/iLpaBOfCnZhIJLXt8Ql1f3+mfrnhhVlQamzMGH6AlxiZ
8Q8i/knykFTRtdI1MXois+n2HHMsKUJ8LV+Ap+UuX09bc457DK2l3RKl4+CbQ4UI4UcV28Wt8btz
TLN2JOvfyUvGsPgupMldea7VMxFQf+5ClYUL3rk/G16RNapLCqPnKB8NXy28g46CYwF3y1/cm7vN
sozgjp/Hg5BwXoD4B1M1ihttWTL9XhbpFYzXLnZqaqDYRwgeboDxKDC1t5otHDlS5hLZiVfLA/nu
1Ck6uLoEdBhEpKT4rPwv9CJs921ez6SMGx12h9zdBZb9q1cB2zOXlMBBaFgbdte8DAujk79Ryz4k
CpVtS6qk7e9dkG91LsmDFdD3rfv+wQKShFSn/iKU4A+9oXSUBWK2YIrfMq7Tpb8AAAAAAAA=


--=-kWcNeJmwuu+RfO0gpPl+--


From xen-devel-bounces@lists.xenproject.org Wed May 20 21:53:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:53:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314498.1584467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPor2-0007mr-NM; Wed, 20 May 2026 21:53:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314498.1584467; Wed, 20 May 2026 21:53:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPor2-0007mk-KK; Wed, 20 May 2026 21:53:28 +0000
Received: by outflank-mailman (input) for mailman id 1314498;
 Wed, 20 May 2026 21:53:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPor1-0007mc-AU
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:53:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPor0-005Ktp-NL
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:53:26 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e2d55-e002-0a2a0a5209dd-0a2a4506d960-0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:53:25 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e2d55-7371-0a2a45060019-5a9b32229f44-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:53:25 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPoqo-00000007cdF-2nQQ; Wed, 20 May 2026 21:53:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=xSmotBumbh9nvUNe1AmY/zmLJ0tpoG/fPrPBvV+spqM=; b=C3KXodiWWlgbcDiMbYKSpffnDe
	2wy6vD24WI6C1ASVsOfhTce+ihf2Dqyd8eFfQDaSYovFMEhBW5AOUerUAgoxbwDXXzU9ZwM9og/Xr
	5bv0RZOSJ+eSbKBsKc/SSqtqaRjHyLpz09cbwVaqvKPKwb8WAMQC76x+9LXAG6WObOE6rTG6nb71T
	IWO5oPlGRzeP3SUbnQjxiq20sactLFbbEYLGhsc1jW3JJzkvgt2G9Sajga+enQxPWp/X+J0cIDhxr
	eonRP9bLJO0+FNHlGndkblplvoAfPUYaHDXks6QiL5Suq2vZXuRu7+upJTYnEveFeyHljBzRSjpUk
	t1GTRagQ==;
Message-ID: <d9fbed593b0ecca90a71fc6882a0de9edddbcfe9.camel@infradead.org>
Subject: Re: [PATCH v3 12/41] x86/paravirt: Remove unnecessary PARAVIRT=n
 stub for paravirt_set_sched_clock()
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 22:53:12 +0100
In-Reply-To: <20260515191942.1892718-13-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-13-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-LZSBgeOiINF7ylNXtgtB"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-16d1c6/1779314005-8D186D75-A49B79EA/0/0
X-purgate-type: clean
X-purgate-size: 7816


--=-LZSBgeOiINF7ylNXtgtB
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Remove the unnecessary paravirt_set_sched_clock() stub for PARAVIRT=3Dn, =
as
> all callers are gated by PARAVIRT=3Dy.=C2=A0 Eliminating the stub will av=
oid a
> pile of pointless churn as the "real" implementation evolves.
>=20
> No functional change intended.
>=20
> Fixes: 39965afb1151 ("x86/paravirt: Move paravirt_sched_clock() related c=
ode into tsc.c")
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-LZSBgeOiINF7ylNXtgtB
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIxNTMx
MlowLwYJKoZIhvcNAQkEMSIEIFwZX1U3qAgHVlxhzTSREIIljfe3Nc0Ke8tpnMrjmZkUMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAGPOKfWEYNmL/
c395LI9tfqZ9BP/jkeDBgiUpYumRI0DJH1gAaERjgaFe+bc6lYKUKAomMqI5UsyXVTqoq9eWI3Xz
pojXqPjJxVDr48vxDPurApwjYj3YU0XYPggjO7Op2zd+4muoDBo6R2GrNg3bvTFCRDB4tkUDbyCm
M69u4N5kkqd4AsDpPD1aTZPfnBTxbgcBZ0WEMIy8/nCfqj4th7Q8g9OQBHNye602ygt5Wv+Pcn4c
omovUu+NCTodtZqor9NXl/udmvzhZNmjlwYy+FPvzSGJRMNlOTMthxvI6cBD/FI+bvKovB7NqHca
4fHxT7c9cdonwmOGVYZlkCgKRPtg9ozCLlRd0dYBx9iuTz5gUPnGgmewVu+Av6uuqTW6wIp4PfeW
4oPkW/FuVNAta/jO2+r5zrk78XlOOzyWB3vLa6GsuoG9sf3Q7CuWGr3wjMoZwW4+ELgWUwLdvUpU
cVAa+QQEwhbU7idACTbZIEeeuKdaleg105inuEd3pcyySWzTju3wdFdOVOb5a+YzhMSe62yuqbzd
N732Ld0ONbBt8LVC8nAqZxRzGQCajXVPQiXbnjSAERxPfXn6Avnn2Y68QKCHlYuUgZFjYX1uJj/3
v0eVd1wck1pZx3JDm8TApXjreIGjgHDqcF9RB6PGGo9cWLoa2hAibZWbiv/Mfx8AAAAAAAA=


--=-LZSBgeOiINF7ylNXtgtB--


From xen-devel-bounces@lists.xenproject.org Wed May 20 21:57:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:57:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314505.1584475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPov7-0008Ui-5v; Wed, 20 May 2026 21:57:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314505.1584475; Wed, 20 May 2026 21:57:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPov7-0008Ub-2t; Wed, 20 May 2026 21:57:41 +0000
Received: by outflank-mailman (input) for mailman id 1314505;
 Wed, 20 May 2026 21:57:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPov6-0008UV-B2
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:57:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPov5-008u4B-9A
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:57:39 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e2e44-bab6-0a2a0a5309dd-0a2a4508cf74-14
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:57:38 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e2e52-63b5-0a2a45080019-5a9b3222eda6-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:57:38 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPouw-00000007d9H-14M2; Wed, 20 May 2026 21:57:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=38ANKb1jM4JmiMAnBWx/WwzViNtUVSjLLpZWyzM+25E=; b=PI0diD+pIo5hPd+dE2/c7EucR4
	eoXPFJj9K2jg+Q44TZdb/PVK5gc9FJrKYGBqpzqXIpj9r9J5Rz4/jg2cgHi6XzBqkZLUBgTLUYLoy
	047XQmdylbC/gviPM4c+Tif5Oo2OKwymc3pSYxOocHUhVdbVS3YzkPnZOKYtwtwNHUgWZp3GhJ4ga
	/oLbFiB63TZwL9iUYbPSGEfVWT9pIav1zASgHO4FaOLw3UcWV2in/7/WVffKmNb4voCLSQH2kYOht
	zGmG4zVhSn4VIJVtC6mAR/8UKzddaT0j+PEhOs84B88U10UHpPh+VcrvVk2a2NXrX25TN/iCx0Ss/
	Rcid4VuA==;
Message-ID: <c4fa5996ceddc4e420f21aeab0601263eedad717.camel@infradead.org>
Subject: Re: [PATCH v3 13/41] x86/paravirt: Move handling of unstable PV
 clocks into paravirt_set_sched_clock()
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 22:57:28 +0100
In-Reply-To: <20260515191942.1892718-14-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-14-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-3Uz1L207KXSTPaqLS94I"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-c1860d/1779314258-B6F72DB1-A1F6CD8D/0/0
X-purgate-type: clean
X-purgate-size: 8130


--=-3Uz1L207KXSTPaqLS94I
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Move the handling of unstable PV clocks, of which kvmclock is the only
> example, into paravirt_set_sched_clock().=C2=A0 This will allow modifying
> paravirt_set_sched_clock() to keep using the TSC for sched_clock in
> certain scenarios without unintentionally marking the TSC-based clock as
> unstable.
>=20
> No functional change intended.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

> -void paravirt_set_sched_clock(u64 (*func)(void));
> +void __paravirt_set_sched_clock(u64 (*func)(void), bool stable);
> +
> +static inline void paravirt_set_sched_clock(u64 (*func)(void))
> +{
> +	__paravirt_set_sched_clock(func, true);
> +}

One of the few things I actually like about C++ is default arguments...


--=-3Uz1L207KXSTPaqLS94I
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIxNTcy
OFowLwYJKoZIhvcNAQkEMSIEIPTA1loByIjCYOZHDBu0Ot8UcSvt/9c0GYRJNGUWMDbdMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAbNn2HHtSHgSB
7zBjOeSrxiUKvKc2+ugzA6V1vBH28jl8NO0BPJDA05KyN7buN0trQQmIrjRRVxrgQ0wsXJgoR3PQ
mIZImeYQi4opHIydEWRCvM87ePvYuPp201aGtrbpybqS1QRTAylk7lrolrXgxgOr655ULmi7rAMg
DNHymbPcg95sBU7bgvjzhl5C/WJ+JohNIFLTaHy57TmDV43tuehQrO6i4b+hwP73YLSKKNuA60VK
iTOMMXSihKz/XK+cykv294Jwd52cL4SnUEekc8E+19y0zqhLBv+37s14dDDp86rMqVuDXYBb71Zs
G2sXDZATPdOOGnxKiSVXoDJquhdZJvcoxMuVmcbZ+8eHsf7vl/zS+y8cXzWh2wKcANGYat5sxndW
pooKx1CxLr1UaxPwSRgK0lr+/04EYVKdd+M0Xb26oUPoLu3v/mBEuB+bJ5qJ1CorLPbOnZRqQ+a/
WeiuR31Ilb9zRzA4GdFGJlvw0QvOBmrgTKlqTrCfrxFqscbnu79z4xvRsDwEsT+BD/fTnaazeOMn
+p6IFQLEOFkWwWzR/vKBGnXszz154cDEEpo6aFTx6W8CCSVgXSWvYe5mnjcM+uagy5AwdWJ0hWRI
q/gqEhrDbXu5cPyRGwavdZGsN4khV1q7NStvSbhbiNliCt3iNiHGU5GpLZnxPZQAAAAAAAA=


--=-3Uz1L207KXSTPaqLS94I--


From xen-devel-bounces@lists.xenproject.org Wed May 20 21:59:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 21:59:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314512.1584485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPowr-0000dp-JP; Wed, 20 May 2026 21:59:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314512.1584485; Wed, 20 May 2026 21:59:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPowr-0000dg-Fb; Wed, 20 May 2026 21:59:29 +0000
Received: by outflank-mailman (input) for mailman id 1314512;
 Wed, 20 May 2026 21:59:28 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPowp-0000da-VP
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 21:59:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPowp-000S1I-CB
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:59:27 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e2ebf-5cb7-0a2a0a5109dd-0a2a4502a2a0-0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:59:27 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e2ebe-af86-0a2a45020019-5a9b32229b96-3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:59:27 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPowf-00000007dEY-2xst; Wed, 20 May 2026 21:59:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=Nxl72hpGuRjTtFDFYVIo2HTu6nOPkXxVj25aveizy6g=; b=rWM0lK7Hb+v9K8wEmJj/KZGSYj
	kDp9lGXOtLBV9sa8n35EUiVvI2ure9vEJax/mBA11EaqvNwHobSvmqnpqe77NuTeAAt/mcYg8LeyN
	c9MXpxa5tpbhSxt/zp7k+cuirWL2lrB4rxT5Ae3Na/SYbnAvrp5cfdzPzFrout1MgTppWvMo+ZwzP
	6DJzFDhMSJ4F91pZHMVXs4sHCkjT8LHSmvyFm00Y2BL7ELdQjC4/+RGJRrMeE079Fn7LcaPTTHUm2
	KsO9X8NY3H4bmoh4UkTHqE5neD/VH26JyjMV4rnusuyKL4M3wXgCJw+hrbp/q1m8q/yNoJp8GkuqY
	dp2vdBEw==;
Message-ID: <4f5fb04c3682a8814ff6eaef9c7d5358f97f2dd1.camel@infradead.org>
Subject: Re: [PATCH v3 14/41] x86/kvmclock: Move sched_clock save/restore
 helpers up in kvmclock.c
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 22:59:15 +0100
In-Reply-To: <20260515191942.1892718-15-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-15-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-SmgPIZ7sB07ARuLBADik"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-720697/1779314367-7BF66161-91A61A3E/0/0
X-purgate-type: clean
X-purgate-size: 7618


--=-SmgPIZ7sB07ARuLBADik
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Move kvmclock's sched_clock save/restore helper "up" so that they can
> (eventually) be referenced by kvm_sched_clock_init().
>=20
> No functional change intended.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-SmgPIZ7sB07ARuLBADik
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIxNTkx
NVowLwYJKoZIhvcNAQkEMSIEIPFF0IeBthPFUME1u97aSnLasuPCVt86SZySS9hwkjC8MGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIA1i/IdMAU6jNE
YR+Er7BKG2cHykZ7mph2HRWuutg8RzbkuqvfvD0METs1Ayxh8fqZHLh0IG6D5lUxT5s2I85e+Pq2
yF+OzE4w0KaLk1wK93V9lKwasuH4WqNiLwWK4g5GUdB0MlMaBsI/VZB5dUFHyhzshFC4UYVKfdua
xagqL87YM4Tpssvhd9eybPc+YG3xOiNP6eW3uAagZAa2EccZ3/xM6v6ICVo/wgV4qSWUdxqAQtdN
pqMsvPegEPXiqgvD+10jFAabrydyizy085OgXXd88sW/HvT5KdT9vE4xX2myxLqhaop6/rEhxgvg
iQEclFlgpR4wxYbUHk4yfJt9bTxZBiVuk35kH8Kn9OjhMeVrxxIm8dC/sjOvMRwd5d6tg1VMEqMx
GdjxelrKboQ2TUEHW9yIjyWCgU5jntwfHxauGaW5UDJ6GK35JhsqIX8rHqwaOwQikgRsScQ+Y8KK
4I7N+2Qv/55WMueEq+uXCEolpyP6AgD8huXXBB8Hmf/0cGpkHHcWw8qrekWZOYAJT9qLR7q1h7P/
ypfMRQiU6q8bMMEJpk3nes/xrZgYg1G8amAphx3jSggq2TsGtdUSVIBk2fXqAzydNXPbn5WfuQ7d
N29x1joyhR6HpjpY9ipP3FFvo6vhhuR4w42OUK7R1GM/6Attasc01bIfhhB1QCQAAAAAAAA=


--=-SmgPIZ7sB07ARuLBADik--


From xen-devel-bounces@lists.xenproject.org Wed May 20 22:11:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 22:11:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314522.1584494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPp8c-0003OJ-Ji; Wed, 20 May 2026 22:11:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314522.1584494; Wed, 20 May 2026 22:11:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPp8c-0003OC-H5; Wed, 20 May 2026 22:11:38 +0000
Received: by outflank-mailman (input) for mailman id 1314522;
 Wed, 20 May 2026 22:11:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPp8Z-0003O6-QE
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 22:11:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPp8Z-008vem-5k
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 00:11:35 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3173-5cb7-0a2a0a5109dd-0a2a450a87da-24
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:11:34 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3196-56b3-0a2a450a0019-5a9b32229d3a-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:11:34 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPp8P-00000007emg-1ZkF; Wed, 20 May 2026 22:11:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=CT5QpPm6eA1CZnoEA6O4hJlmgB44gFuedizQIf0klZQ=; b=c6or5S8TwDkifUFcK1yIWbcrXf
	iRKKGvwlZrOWMQeTdtkFxu/d1OfuzMFdhaJI2d9ssCc8q372BQ2B1Ep1743dJ/anVPzTkw5Yo8fBt
	Vj1JnT8xFtDqfEaMkxIao0gcZVpBpNQhW/S5a4eLRfbm4ARdcEdMimgSzT3zv9wu/T8QvZn5yjO1W
	tUWxXHaBGj3zJnza9n8IJyoDru0nfl0tRUPczn8U5Km5oQ6HZx0s1p0Xx2Lc6lux2lZYyxHPAALvR
	RaY4ql1iINZwgGIr6pW/Hj1n5NKw+17K+4RZuUFhTggbPIl9gHTD0B6G+Qb3g+qEpDUiJVM+lXo9b
	53Jm1N8w==;
Message-ID: <93f8fad19e2c617ca17f544d11483c517024bfc4.camel@infradead.org>
Subject: Re: [PATCH v3 15/41] x86/xen/time: Nullify x86_platform's
 sched_clock save/restore hooks
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 23:11:23 +0100
In-Reply-To: <20260515191942.1892718-16-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-16-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-eUMZcoCFNRZTyvVvYNIb"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-4011c0/1779315094-72D708B7-8EBC1E31/0/0
X-purgate-type: clean
X-purgate-size: 8596


--=-eUMZcoCFNRZTyvVvYNIb
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Nullify the x86_platform sched_clock save/restore hooks when setting up
> Xen's PV clock to make it somewhat obvious the hooks aren't used when
> running as a Xen guest (Xen uses a paravirtualized suspend/resume flow).
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Hm. Xen HVM guests *do* use a standard ACPI S4 hibernation flow.

Does that need testing?

> ---
> =C2=A0arch/x86/xen/time.c | 6 ++++++
> =C2=A01 file changed, 6 insertions(+)
>=20
> diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
> index 3d3165eef821..21d366d01985 100644
> --- a/arch/x86/xen/time.c
> +++ b/arch/x86/xen/time.c
> @@ -568,6 +568,12 @@ static void __init xen_init_time_common(void)
> =C2=A0	xen_sched_clock_offset =3D xen_clocksource_read();
> =C2=A0	static_call_update(pv_steal_clock, xen_steal_clock);
> =C2=A0	paravirt_set_sched_clock(xen_sched_clock);
> +	/*
> +	 * Xen has paravirtualized suspend/resume and so doesn't use the common
> +	 * x86 sched_clock save/restore hooks.
> +	 */
> +	x86_platform.save_sched_clock_state =3D NULL;
> +	x86_platform.restore_sched_clock_state =3D NULL;
> =C2=A0
> =C2=A0	tsc_register_calibration_routines(xen_tsc_khz, NULL);
> =C2=A0	x86_platform.get_wallclock =3D xen_get_wallclock;


--=-eUMZcoCFNRZTyvVvYNIb
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIyMTEy
M1owLwYJKoZIhvcNAQkEMSIEIJnSSoq9NI7xStvVnNpxLgcv8TcKhPF622XKonuR5mWbMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAkoslWOiVglKA
MfX4FWwlVWwm7DnxMV4Z/ctuNZBNjVd2VYW/SezvSfOqMuAoj7G+Hg2Pj4tq2WvX2sedXmd3OeHl
CaKlFsmAiK1ASraPdeAGHKwZpFsb4Jbvo+3xHXBW1JWOKdvhzNcmN9asFdZgzqGeEJ5ZZVzB+jxy
3oEQA7Lt/ChWQFOBzKJteBog/7EvYYrvNDTPOtvnJO9ehUPSEfzazLA5Uo3RezTz+tR5gMV1VvSI
LagaRfCN6OZl8y1sOAIu+XXAk24B7B47l/rrhPYTeukeOJlRIvx2ToJ7Q1NcwmJq1c3AugtCjOie
H9qyA2LyqrLqEJ/nctTvVj8LBFMQBD818qAOzolUwy+QuHXgxzKTpLhV+h0JHb8KYYmZ4sQRnZUR
/Va1eJAe4S0BCn+EAdcjWt7uSmywZXWjWJYQFEW15xw9RNiGGmQccE9JrdGOQHtxhPu4cZ8HGfmO
bncsG9lgA45mjKEnQtNM+ERGSgOeLP33Qz+S1U814PyAQLZ/ZeT6elUux3gFoBmOaEt+1XSeKYLP
z/2Ii/6QWpBc3ABODZjvdlAshLXlX59uKlYD17LdydkTrAqYXXASl826hmF9GI6ui+nEoefY3kct
CcGuqIT/XuMGN+tl1uHot/PmzP4771iRYqAkw+DyGLGHic2UTxK1EMN5WOlPY4EAAAAAAAA=


--=-eUMZcoCFNRZTyvVvYNIb--


From xen-devel-bounces@lists.xenproject.org Wed May 20 22:15:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 22:15:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314531.1584502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpCS-0003vj-28; Wed, 20 May 2026 22:15:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314531.1584502; Wed, 20 May 2026 22:15:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpCR-0003vc-Vr; Wed, 20 May 2026 22:15:35 +0000
Received: by outflank-mailman (input) for mailman id 1314531;
 Wed, 20 May 2026 22:15:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPpCQ-0003vW-6k
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 22:15:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPpCP-008w9L-Il
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 00:15:33 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e325b-bab6-0a2a0a5309dd-0a2a45068e46-44
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:15:32 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3283-7371-0a2a45060019-5a9b3222eb7e-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:15:31 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPpCF-00000007fCZ-3fxu; Wed, 20 May 2026 22:15:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=rT9nUsxSu2Ybme3gJs5c20aSGkkXIKB7Tp3hLLwdwlQ=; b=Wr9TJuDNhfwD+ASl40rB6eLn5A
	XHmr9Ui/RLpFuNfW/MAyhI5S1mXY6h4F2wtyet+ZyqA8j+5e2s5f8Upd1vRumjnVyEPUEXyOMWAQG
	PNMtTcg0BcTYhYLF/q8OF+qbPFFefdSV+JuIzsPupvwDUacau3rb6Wgxfzh2BL+bezLuA/3aZ8j3u
	HPKtglkKriRmLnFc0OP7b43/19Hnbxp7l3VZdgS1mnTE00aVLoDkBj17Jc+7jUdlSKbxpUA3Tcem0
	YbiordyimJUGn7kEkNWPlNKEqnPk2NMbk7Joefc+W79n2WaF+9EX95ha49rVAhKzFry6IwDJfakA/
	nc1lyZNQ==;
Message-ID: <97b6edeb207a8c02b79b95d7e5091b37c8ce8025.camel@infradead.org>
Subject: Re: [PATCH v3 16/41] x86/vmware: Nullify save/restore hooks when
 using VMware's sched_clock
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 23:15:22 +0100
In-Reply-To: <20260515191942.1892718-17-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-17-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-jnx7qWHFD66TSDSU1e26"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-16d1c6/1779315331-8F397D75-36533D30/0/0
X-purgate-type: clean
X-purgate-size: 7916


--=-jnx7qWHFD66TSDSU1e26
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Nullify the sched_clock save/restore hooks when using VMware's version of
> sched_clock.=C2=A0 This will allow extending paravirt_set_sched_clock() t=
o set
> the save/restore hooks, without having to simultaneously change the
> behavior of VMware guests.
>=20
> Note, it's not at all obvious that it's safe/correct for VMware guests to
> do nothing on suspend/resume, but that's a pre-existing problem.=C2=A0 Le=
ave it
> for a VMware expert to sort out.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-jnx7qWHFD66TSDSU1e26
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIyMTUy
MlowLwYJKoZIhvcNAQkEMSIEIJbzPB0JUp5A1CJXpu+C1+54nsAFDZdaz3WGk/3ajv3eMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAyPqpc4xfWPNg
LCDYBbC/MATsmWgw4tZ7g1T55BvVMpVQTQeTGV5MMPqLn0WxY3FAZEhb37/W5PhmiVdJ3+9uRZsF
BxUzHbK4MjPTsm/uA7Kx128/31vWb51FFrowoR86ZUwA1ADT7ICkFHOBoWpCV3ayNAVtJckJy0SY
48vHHnF6zAL7+RwwDxA0zErIjm4lB+U8u6BU/utgaR7L50ZbcRL3om4PUHXpN9yIkWxWimxD/BHs
a81/ikfX9qXiQ/oXMrPiOXGqhiAzbeV4duH9nOJ7idEgJgLni3zSZm+Ghqel2kgm5X4lRBiVNd8R
oY39/70pQS53ofsdZHOUwobuKjtrXEYbXxF2bEPZfOspm9REPP9RFT7KACdDPX9I1RuFmdiVlxXU
nS5a41kTgKLd4qfYOoRMKQWe2Ybydl2Pc5uGrohbk2SV9Qc6EOK8XTmUlsl8JpNqh+6jYv1GLJY9
mGs+me8pvrQa9D+E/HwO3gB8zc+rYXl2Dzg1wwJQFTD3h65W6GhJD1HTfC0SyvyWBXcPBOOvGrmq
/LHUku5meEAFsadBdzK2LqVE/GTA2/5RRztxXRVyjywHekgVBRP2dhyh4PewaHqKflu2cGZzy5yj
VU8wvS1edQBgGT5VrTlbven9mq4kZmsbIN3FeScCxIFqDIoYZJzUQFBRpjcvko4AAAAAAAA=


--=-jnx7qWHFD66TSDSU1e26--


From xen-devel-bounces@lists.xenproject.org Wed May 20 22:28:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 22:28:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314542.1584512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpOV-0005ww-6x; Wed, 20 May 2026 22:28:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314542.1584512; Wed, 20 May 2026 22:28:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpOV-0005wp-3J; Wed, 20 May 2026 22:28:03 +0000
Received: by outflank-mailman (input) for mailman id 1314542;
 Wed, 20 May 2026 22:28:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPpOU-0005wj-7M
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 22:28:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPpOT-005Oc8-Bq
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 00:28:01 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e34cc-2eae-0a2a0a5409dd-0a2a450cc220-42
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:28:01 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3570-62f1-0a2a450c0019-5a9b3222a144-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:28:01 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPpOK-00000007guY-2eBr; Wed, 20 May 2026 22:27:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=u/o0dx1DTtvDMEvtqsgv6xvzgr05hh9iTv1UVVaweM8=; b=Pf4BtEcR1l2SN8va8ePyeHXTYd
	UdkibwUXr3vheIE7ybNGI6jziKF5IfUWKppllOgstw5tkz+n0qfSv+hNKT7YcN7cCCn8TvAFwomwq
	NmCKWjlehElWaf42JeesPOgqI9pcYK0u1BCIRWRA9KAKckQd1T6d31MK4erjJfq6ody+beqE3EAOQ
	6qDdakbhleQXU1geIXfWCSfzwuzCS9n0Db1K5q9D/dYU/8dAPV/ZtQQ7pGy+sYODX+dEBpFqY6SjG
	y+O4Q7VuoLvl6IXC61Zzydc+xLeaF8LAQiClSFyfNIG1E6CxiBu/RfFlOzTOxCpJaZUgBmZgU1rOz
	qnClQF2w==;
Message-ID: <28efabc0618268447144db5068cdf377afbea506.camel@infradead.org>
Subject: Re: [PATCH v3 17/41] x86/tsc: WARN if TSC sched_clock save/restore
 used with PV sched_clock
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 23:27:50 +0100
In-Reply-To: <20260515191942.1892718-18-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-18-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-WbaHQ7O15QtA6Zt9MU0Q"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d25034/1779316081-DA577CF5-B7376CA4/0/0
X-purgate-type: clean
X-purgate-size: 7667


--=-WbaHQ7O15QtA6Zt9MU0Q
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Now that all PV clocksources override the sched_clock save/restore hooks
> when overriding sched_clock, WARN if the "default" TSC hooks are invoked
> when using a PV sched_clock, e.g. to guard against regressions.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-WbaHQ7O15QtA6Zt9MU0Q
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIyMjc1
MFowLwYJKoZIhvcNAQkEMSIEIB249DW0wfaAFh4pCPYaY4vo3sZBefduWJ5iTaUGiiCqMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAlJInfj3i8dd2
G30lrdbs8eiUN1T2Oq5d4KTAUdt6GTb5F4h828r6CgVjklSo6de+DYYKV2Ab54bjhGFUldIgeOzp
9ieWPEl4bwEY7P7YTFcNWwQBAZXF/kYegbDBnGHuYEy6KkiPT6d1E+Zh0VKmiKR2FTtx4C9X5G0/
ZLFceHc73/lbQGLvXI/fLujnyp6ThsD3zWYqVmPsQpa2M/byBENQj/Z4p99dc/LeG1bQ6LMsy/ck
MYRBwfuyBHj2erXFseQRn+eWLuV0Bq9om2s/Fc8o9eooEHsEl8cssVnTIwlBo/Nk1Z4FsLxt9eDe
vV7kAmyTyhyEMhlNT7K59FKqs1y1fILf1zSetzlRN6uvOxTNAnfpxkdLFJh96s89aMILLsMsFqMh
oB1IQt8jrNuLcxu9iz9XjYPVRmfwnXRGKD/+hq0M27cwD06ifHkij3GkGyLiiteu+TG4w9pdwHlu
6/gSnTwOD0V5MG/e4nw5gG1otNTfPxnE7Ci1ZoiK7ZqEwE76FWLqTWLTF03Tt6h71WXRJbfTCG3f
TmtMIEqwUcZYCqlKirZop61aFMZPW/ouYcIfyyMMn2SEGABGfnEp5NdcQbT9bLGdBRfphhU3kucG
xvIyR79pKweA/k031Ju6xde1NyiYAL1iSV4Tr8rZzSZ1VHiSVyR7gwL096ZQbOgAAAAAAAA=


--=-WbaHQ7O15QtA6Zt9MU0Q--


From xen-devel-bounces@lists.xenproject.org Wed May 20 22:35:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 22:35:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314551.1584520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpVl-0007UV-Tc; Wed, 20 May 2026 22:35:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314551.1584520; Wed, 20 May 2026 22:35:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpVl-0007UO-Qi; Wed, 20 May 2026 22:35:33 +0000
Received: by outflank-mailman (input) for mailman id 1314551;
 Wed, 20 May 2026 22:35:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <prvs=593727dcc=dwmw@amazon.co.uk>)
 id 1wPpVk-0007UH-RN
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 22:35:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPpVj-005PJ7-WD
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 00:35:32 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <prvs=593727dcc=dwmw@amazon.co.uk>)
 id 6a0e372c-2eae-0a2a0a5409dd-0a2a4504da88-2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:35:31 +0200
Received: from [34.197.10.50]
 (helo=iad-out-012.esa.us-east-1.outbound.mail-perimeter.amazon.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <prvs=593727dcc=dwmw@amazon.co.uk>)
 id 6a0e3732-1dec-0a2a45040019-22c50a327e5a-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:35:31 +0200
Received: from ip-10-4-10-75.ec2.internal (HELO
 smtpout.naws.us-east-1.prod.farcaster.email.amazon.dev) ([10.4.10.75])
 by internal-iad-out-012.esa.us-east-1.outbound.mail-perimeter.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2026 22:35:28 +0000
Received: from EX19MTAUEB002.ant.amazon.com [72.21.198.67:6519]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.39.92:2525]
 with esmtp (Farcaster)
 id 59278547-ce4e-45a1-a98f-79b6d9967b7c; Wed, 20 May 2026 22:35:27 +0000 (UTC)
Received: from EX19D001UEB003.ant.amazon.com (10.252.135.61) by
 EX19MTAUEB002.ant.amazon.com (10.252.135.47) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.37;
 Wed, 20 May 2026 22:35:27 +0000
Received: from EX19D001UEB002.ant.amazon.com (10.252.135.17) by
 EX19D001UEB003.ant.amazon.com (10.252.135.61) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.37;
 Wed, 20 May 2026 22:35:26 +0000
Received: from EX19D001UEB002.ant.amazon.com ([fe80::19d6:e954:f18:6292]) by
 EX19D001UEB002.ant.amazon.com ([fe80::19d6:e954:f18:6292%3]) with mapi id
 15.02.2562.037; Wed, 20 May 2026 22:35:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=amazoncorp2 header.d=amazon.co.uk header.i="@amazon.co.uk" header.h="From:To:CC:Subject:Date:Message-ID:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.co.uk; i=@amazon.co.uk; q=dns/txt;
  s=amazoncorp2; t=1779316531; x=1810852531;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to;
  bh=gSw8rnwXQ0rhZeVx84L0W3uc6MkIiFaqVJq9n/+cEdc=;
  b=cy3GisuwUsm2T7ZS2T7Q3v6ch39Yhl50nK+mzouUTqbcwN4T56yoFTB1
   HQKgQ4BPu3I5/xHYTmbLTLjtb0xl8syM7WPMja0deETIrcSiFAROoIpxF
   R0VWbZ6MfKudgV4fqDM1sL3/WOSmbibYJLi5lnssviRvI9QuW3CkS7Ykd
   1vWuJtylvmcvUytYWiFnVhZxCpaQQSPnttfWFGcR+GVFl/ShrQlFx213/
   NMvnLiTtQeJCVrCM7tnE8iHEJp3Sm/jvH7jc3l9vjKGKQq7ZFs7dWh/d3
   0UweHNo2Y5IRg7X3zC3Vt3QWbu/dfXZH0PkzmW4wjIgDACLWzpZ0ogpxE
   Q==;
X-CSE-ConnectionGUID: 5Q/LMkrsSYKzZPZuKRMfEQ==
X-CSE-MsgGUID: BEOYDa+3QkGrhQBheknQYg==
X-Amazon-filename: smime.p7s
X-IronPort-AV: E=Sophos;i="6.23,245,1770595200"; 
   d="p7s'346?scan'346,208,346";a="18939673"
Content-Type: multipart/mixed; boundary="===============8743037896110918423=="
MIME-Version: 1.0
X-Farcaster-Flow-ID: 59278547-ce4e-45a1-a98f-79b6d9967b7c
From: "Woodhouse, David" <dwmw@amazon.co.uk>
To: "tglx@kernel.org" <tglx@kernel.org>, "longli@microsoft.com"
	<longli@microsoft.com>, "luto@kernel.org" <luto@kernel.org>,
	"alexey.makhalov@broadcom.com" <alexey.makhalov@broadcom.com>,
	"jstultz@google.com" <jstultz@google.com>, "dave.hansen@linux.intel.com"
	<dave.hansen@linux.intel.com>, "ajay.kaher@broadcom.com"
	<ajay.kaher@broadcom.com>, "jan.kiszka@siemens.com" <jan.kiszka@siemens.com>,
	"haiyangz@microsoft.com" <haiyangz@microsoft.com>, "kas@kernel.org"
	<kas@kernel.org>, "seanjc@google.com" <seanjc@google.com>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>, "kys@microsoft.com"
	<kys@microsoft.com>, "decui@microsoft.com" <decui@microsoft.com>,
	"daniel.lezcano@kernel.org" <daniel.lezcano@kernel.org>, "wei.liu@kernel.org"
	<wei.liu@kernel.org>, "peterz@infradead.org" <peterz@infradead.org>,
	"jgross@suse.com" <jgross@suse.com>
CC: "boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>,
	"linux-coco@lists.linux.dev" <linux-coco@lists.linux.dev>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>, "mhklinux@outlook.com"
	<mhklinux@outlook.com>, "thomas.lendacky@amd.com" <thomas.lendacky@amd.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"bcm-kernel-feedback-list@broadcom.com"
	<bcm-kernel-feedback-list@broadcom.com>, "tglx@linutronix.de"
	<tglx@linutronix.de>, "nikunj@amd.com" <nikunj@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"vkuznets@redhat.com" <vkuznets@redhat.com>, "rick.p.edgecombe@intel.com"
	<rick.p.edgecombe@intel.com>, "virtualization@lists.linux.dev"
	<virtualization@lists.linux.dev>, "sboyd@kernel.org" <sboyd@kernel.org>,
	"x86@kernel.org" <x86@kernel.org>
Subject: Re: [PATCH v3 18/41] x86/paravirt: Pass sched_clock save/restore
 helpers during registration
Thread-Topic: [PATCH v3 18/41] x86/paravirt: Pass sched_clock save/restore
 helpers during registration
Thread-Index: AQHc6Kj0fv5ul1kqCk6EoM3O36i5qw==
Date: Wed, 20 May 2026 22:35:26 +0000
Message-ID: <69226e77bcf1b93041f27843b6259921f226c0cc.camel@amazon.co.uk>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-19-seanjc@google.com>
In-Reply-To: <20260515191942.1892718-19-seanjc@google.com>
Accept-Language: en-GB, en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.106.83.30]
MIME-Version: 1.0
X-purgate-ID: tlsNG-ebf023/1779316531-4396A3FF-151BF746/21/137
X-purgate-type: clean
X-purgate-size: 11302

--===============8743037896110918423==
Content-Language: en-US
Content-Type: multipart/signed; micalg=sha-256;
	protocol="application/pkcs7-signature"; boundary="=-4SuH15PLIgNoHhsEZRux"

--=-4SuH15PLIgNoHhsEZRux
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Pass in a PV clock's save/restore helpers when configuring sched_clock
> instead of relying on each PV clock to manually set the save/restore hook=
s.
> In addition to bringing sanity to the code, this will allow gracefully
> "rejecting" a PV sched_clock, e.g. when running as a CoCo guest that has
> access to a "secure" TSC.
>=20
> No functional change intended.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Nice!

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

> --- a/arch/x86/xen/time.c
> +++ b/arch/x86/xen/time.c
> @@ -567,13 +567,12 @@ static void __init xen_init_time_common(void)
> =C2=A0{
> =C2=A0	xen_sched_clock_offset =3D xen_clocksource_read();
> =C2=A0	static_call_update(pv_steal_clock, xen_steal_clock);
> -	paravirt_set_sched_clock(xen_sched_clock);
> +
> =C2=A0	/*
> =C2=A0	 * Xen has paravirtualized suspend/resume and so doesn't use the c=
ommon
> =C2=A0	 * x86 sched_clock save/restore hooks.
> =C2=A0	 */
> -	x86_platform.save_sched_clock_state =3D NULL;
> -	x86_platform.restore_sched_clock_state =3D NULL;
> +	paravirt_set_sched_clock(xen_sched_clock, NULL, NULL);
> =C2=A0
> =C2=A0	tsc_register_calibration_routines(xen_tsc_khz, NULL);
> =C2=A0	x86_platform.get_wallclock =3D xen_get_wallclock;


Same deal here as with kvmclock, FWIW. If the TSC is viable, then it's
the better choice.=20

Especially now there's a significant chance that a "Xen guest" is
actually running under KVM. Xen never screwed its pvclock up quite as
much as KVM did :)

--=-4SuH15PLIgNoHhsEZRux
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCEkYw
ggYQMIID+KADAgECAhBNlCwQ1DvglAnFgS06KwZPMA0GCSqGSIb3DQEBDAUAMIGIMQswCQYDVQQG
EwJVUzETMBEGA1UECBMKTmV3IEplcnNleTEUMBIGA1UEBxMLSmVyc2V5IENpdHkxHjAcBgNVBAoT
FVRoZSBVU0VSVFJVU1QgTmV0d29yazEuMCwGA1UEAxMlVVNFUlRydXN0IFJTQSBDZXJ0aWZpY2F0
aW9uIEF1dGhvcml0eTAeFw0xODExMDIwMDAwMDBaFw0zMDEyMzEyMzU5NTlaMIGWMQswCQYDVQQG
EwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYD
VQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50
aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAyjztlApB/975Rrno1jvm2pK/KxBOqhq8gr2+JhwpKirSzZxQgT9tlC7zl6hn1fXjSo5MqXUf
ItMltrMaXqcESJuK8dtK56NCSrq4iDKaKq9NxOXFmqXX2zN8HHGjQ2b2Xv0v1L5Nk1MQPKA19xeW
QcpGEGFUUd0kN+oHox+L9aV1rjfNiCj3bJk6kJaOPabPi2503nn/ITX5e8WfPnGw4VuZ79Khj1YB
rf24k5Ee1sLTHsLtpiK9OjG4iQRBdq6Z/TlVx/hGAez5h36bBJMxqdHLpdwIUkTqT8se3ed0PewD
ch/8kHPo5fZl5u1B0ecpq/sDN/5sCG52Ds+QU5O5EwIDAQABo4IBZDCCAWAwHwYDVR0jBBgwFoAU
U3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFAnA8vwL2pTbX/4r36iZQs/J4K0AMA4GA1Ud
DwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
BQcDBDARBgNVHSAECjAIMAYGBFUdIAAwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC51c2Vy
dHJ1c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYGCCsGAQUF
BwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3QuY29tL1VTRVJUcnVzdFJT
QUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMA0G
CSqGSIb3DQEBDAUAA4ICAQBBRHUAqznCFfXejpVtMnFojADdF9d6HBA4kMjjsb0XMZHztuOCtKF+
xswhh2GqkW5JQrM8zVlU+A2VP72Ky2nlRA1GwmIPgou74TZ/XTarHG8zdMSgaDrkVYzz1g3nIVO9
IHk96VwsacIvBF8JfqIs+8aWH2PfSUrNxP6Ys7U0sZYx4rXD6+cqFq/ZW5BUfClN/rhk2ddQXyn7
kkmka2RQb9d90nmNHdgKrwfQ49mQ2hWQNDkJJIXwKjYA6VUR/fZUFeCUisdDe/0ABLTI+jheXUV1
eoYV7lNwNBKpeHdNuO6Aacb533JlfeUHxvBz9OfYWUiXu09sMAviM11Q0DuMZ5760CdO2VnpsXP4
KxaYIhvqPqUMWqRdWyn7crItNkZeroXaecG03i3mM7dkiPaCkgocBg0EBYsbZDZ8bsG3a08LwEsL
1Ygz3SBsyECa0waq4hOf/Z85F2w2ZpXfP+w8q4ifwO90SGZZV+HR/Jh6rEaVPDRF/CEGVqR1hiuQ
OZ1YL5ezMTX0ZSLwrymUE0pwi/KDaiYB15uswgeIAcA6JzPFf9pLkAFFWs1QNyN++niFhsM47qod
x/PL+5jR87myx5uYdBEQkkDc+lKB1Wct6ucXqm2EmsaQ0M95QjTmy+rDWjkDYdw3Ms6mSWE3Bn7i
5ZgtwCLXgAIe5W8mybM2JzCCBhUwggT9oAMCAQICEFQru/eJkU7BxeS7T6sWKmYwDQYJKoZIhvcN
AQELBQAwgZYxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNV
BAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE+MDwGA1UEAxM1U2VjdGlnbyBS
U0EgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0EwHhcNMjQxMjE1MDAw
MDAwWhcNMjYxMjE1MjM1OTU5WjAiMSAwHgYJKoZIhvcNAQkBFhFkd213QGFtYXpvbi5jby51azCC
AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANhjs6T4tJ0lcw4+6sawEn2FowmhunUBsnSV
ccB+aA7s3Zd9PZV46CU6phAlCWpKk1yFVcD1Rnc4ux17o4LbUgFXiKrORS0jiF/5Oa0rXG3FISG1
Xdjt8oPKIq+9Z1s2e7Ipi5WWj4AG/xlkH/YMMctL9O8CCRHSrhiChbE/gR57x9PAnt5aeZZ2YWza
GOOeceaZe+u6vHCHITRmknSAnAX/aNoNJNsQCGcfrE83y9iHmP8BFrSRZqajBKlKq8tyJd5FnSwP
H3kSUcQlHOwiIfCRFXP4rpXSZ7nKOEZr3SXH06ADY9gZtrSpwBbuzKWDPGWMRuRnz8ogj/Y6DeU4
2zB/ZAIi5b0BzWf4u0rBEQD5xtpOCxYHc2nXQaFSWu36kP1JaNqElE51OQ92EyVKfW3N6qZcKiBr
VijXY2EtR+/5W9ixRFnEs4nIeb94Sf92UMEeG9ew2yVvcYXXNPaicGnrkESNC19/a8YXxQEZfrmB
eAPT9viQJhn3O+sD4pP0Ss3SjVZc6EO7vfoP07bt2n9YE08XSPkxcyb1J/4t/+AskkKeYFBGdpjg
xd+iLFxjSwBytZuh3+7DuHUfg876WA44ieQDrhHSjuvuAZ1Wb8WUsrpzrcLoYjqFmb/bf6/yyoxl
t31mdgPC+FLc+Yu1BQwXC3JMbrvbFBVTtn5X2EKDAgMBAAGjggHQMIIBzDAfBgNVHSMEGDAWgBQJ
wPL8C9qU21/+K9+omULPyeCtADAdBgNVHQ4EFgQUWvtA1XsSV8xjgfFQL/DUTNIbJu4wDgYDVR0P
AQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwQwUAYDVR0gBEkwRzA6
BgwrBgEEAbIxAQIBCgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zZWN0aWdvLmNvbS9TTUlNRUNQ
UzAJBgdngQwBBQEDMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2Vj
dGlnb1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5jcmwwgYoGCCsGAQUF
BwEBBH4wfDBVBggrBgEFBQcwAoZJaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBQ2xp
ZW50QXV0aGVudGljYXRpb25hbmRTZWN1cmVFbWFpbENBLmNydDAjBggrBgEFBQcwAYYXaHR0cDov
L29jc3Auc2VjdGlnby5jb20wHAYDVR0RBBUwE4ERZHdtd0BhbWF6b24uY28udWswDQYJKoZIhvcN
AQELBQADggEBAED6T+rfP2XPdLfHoCd5n1iGIcYauWfPHRdZN2Tw7a7NEXIkm2yZNizOSpp3NrMi
WOBN13XgqnYLsqdpxJhbjwKczKX50/qfhhkOHtrQ0GRkucybK447Aaul80cZT8T3WG9U9dhl3Ct/
MuyKBWQg3MYlbUT6u4kC9Pk8rd+cR14ttYRUWDKTS2BrL7e8jpNmtCoEakDkMY4MrpoMwM1f4ANV
qZ8cnDntwXq5ormZIksN2DqxsKLmrFyVAONhqSST72ImBfIVWhFRTCF9tTcI5wE/0Skl25FZmSsB
B2LUgecgK7MZyw9Do/b0sYS+8YmA/ujUCqNb0fPJBE/B9vBomhswggYVMIIE/aADAgECAhBUK7v3
iZFOwcXku0+rFipmMA0GCSqGSIb3DQEBCwUAMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0
ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJl
IEVtYWlsIENBMB4XDTI0MTIxNTAwMDAwMFoXDTI2MTIxNTIzNTk1OVowIjEgMB4GCSqGSIb3DQEJ
ARYRZHdtd0BhbWF6b24uY28udWswggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDYY7Ok
+LSdJXMOPurGsBJ9haMJobp1AbJ0lXHAfmgO7N2XfT2VeOglOqYQJQlqSpNchVXA9UZ3OLsde6OC
21IBV4iqzkUtI4hf+TmtK1xtxSEhtV3Y7fKDyiKvvWdbNnuyKYuVlo+ABv8ZZB/2DDHLS/TvAgkR
0q4YgoWxP4Eee8fTwJ7eWnmWdmFs2hjjnnHmmXvrurxwhyE0ZpJ0gJwF/2jaDSTbEAhnH6xPN8vY
h5j/ARa0kWamowSpSqvLciXeRZ0sDx95ElHEJRzsIiHwkRVz+K6V0me5yjhGa90lx9OgA2PYGba0
qcAW7sylgzxljEbkZ8/KII/2Og3lONswf2QCIuW9Ac1n+LtKwREA+cbaTgsWB3Np10GhUlrt+pD9
SWjahJROdTkPdhMlSn1tzeqmXCoga1Yo12NhLUfv+VvYsURZxLOJyHm/eEn/dlDBHhvXsNslb3GF
1zT2onBp65BEjQtff2vGF8UBGX65gXgD0/b4kCYZ9zvrA+KT9ErN0o1WXOhDu736D9O27dp/WBNP
F0j5MXMm9Sf+Lf/gLJJCnmBQRnaY4MXfoixcY0sAcrWbod/uw7h1H4PO+lgOOInkA64R0o7r7gGd
Vm/FlLK6c63C6GI6hZm/23+v8sqMZbd9ZnYDwvhS3PmLtQUMFwtyTG672xQVU7Z+V9hCgwIDAQAB
o4IB0DCCAcwwHwYDVR0jBBgwFoAUCcDy/AvalNtf/ivfqJlCz8ngrQAwHQYDVR0OBBYEFFr7QNV7
ElfMY4HxUC/w1EzSGybuMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoG
CCsGAQUFBwMEMFAGA1UdIARJMEcwOgYMKwYBBAGyMQECAQoCMCowKAYIKwYBBQUHAgEWHGh0dHBz
Oi8vc2VjdGlnby5jb20vU01JTUVDUFMwCQYHZ4EMAQUBAzBaBgNVHR8EUzBRME+gTaBLhklodHRw
Oi8vY3JsLnNlY3RpZ28uY29tL1NlY3RpZ29SU0FDbGllbnRBdXRoZW50aWNhdGlvbmFuZFNlY3Vy
ZUVtYWlsQ0EuY3JsMIGKBggrBgEFBQcBAQR+MHwwVQYIKwYBBQUHMAKGSWh0dHA6Ly9jcnQuc2Vj
dGlnby5jb20vU2VjdGlnb1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5j
cnQwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMBwGA1UdEQQVMBOBEWR3bXdA
YW1hem9uLmNvLnVrMA0GCSqGSIb3DQEBCwUAA4IBAQBA+k/q3z9lz3S3x6AneZ9YhiHGGrlnzx0X
WTdk8O2uzRFyJJtsmTYszkqadzazIljgTdd14Kp2C7KnacSYW48CnMyl+dP6n4YZDh7a0NBkZLnM
myuOOwGrpfNHGU/E91hvVPXYZdwrfzLsigVkINzGJW1E+ruJAvT5PK3fnEdeLbWEVFgyk0tgay+3
vI6TZrQqBGpA5DGODK6aDMDNX+ADVamfHJw57cF6uaK5mSJLDdg6sbCi5qxclQDjYakkk+9iJgXy
FVoRUUwhfbU3COcBP9EpJduRWZkrAQdi1IHnICuzGcsPQ6P29LGEvvGJgP7o1AqjW9HzyQRPwfbw
aJobMYIExDCCBMACAQEwgaswgZYxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNo
ZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE+MDwGA1UE
AxM1U2VjdGlnbyBSU0EgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0EC
EFQru/eJkU7BxeS7T6sWKmYwDQYJYIZIAWUDBAIBBQCgggHpMBgGCSqGSIb3DQEJAzELBgkqhkiG
9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIyMzUyNVowLwYJKoZIhvcNAQkEMSIEIL2s+i5z
peY46Ptk9qjCSJOKEZrw5O7LYSh0B78gGztzMIG8BgkrBgEEAYI3EAQxga4wgaswgZYxCzAJBgNV
BAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGDAW
BgNVBAoTD1NlY3RpZ28gTGltaXRlZDE+MDwGA1UEAxM1U2VjdGlnbyBSU0EgQ2xpZW50IEF1dGhl
bnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0ECEFQru/eJkU7BxeS7T6sWKmYwgb4GCyqGSIb3
DQEJEAILMYGuoIGrMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVy
MRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNl
Y3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBAhBUK7v3
iZFOwcXku0+rFipmMA0GCSqGSIb3DQEBAQUABIICADOnPyHOuAq054zVY9YGhJxO7Weim8TV3Mv+
IQQXLakRg9mUO3R9mM0OKP/yipEhYUKwntpnfxVh/+1WMRZG16pXRgiMmngl/rIF9T3nYrLua8sS
6yjLGeF1kbnViuPAhUMZaMCMVUY7TThYT5pY6eiWXhYgEpLIGtk+54n0w2HS5SF+ot86AOeZMzDW
OYCn8LLvkuAD5xCKSuMGRgcsdacZZ4g4iz02jzif5VnaDdeAtxZ9sRDAfOOBHHuI9unRkffcAl/S
XfxmARsV52J2VeyWh2J1Ef723VWayYNGZvmZbpJ4XEM9RzL0/GWeCY9ErMViUWXYCANRiT8PD/tf
u3K5vm5hGHCbW4G4KndzJ7Kqgs1lCHuNuucdl3OVszY9ntcWp/Am9t5XRaiJKhpQPh1UyuZ5ikOg
3sS4zu17fiBvtBemzQ/n+2HlLWpdVy9ggdJNprCOo1uXrkoIWouHtM7bhU90aEaVhEljpLl4HliU
wA++vIJ1qXSkeSeE8mR3OFNDHv1KDWE4y1RGdF2JoKeSKP9UFcfvo8KdnQSYq80KF31dgwLm5ZPf
CAzHt6ylFufRPkoca9fpNrkGj1dlLLBMImqcsiAe+FrD/XN5Zoyor6a08kvDIbvwH5RN32h7dVuA
f64X0LXa77752tE3HenWxcHB5Mj+da7CBds5/1x3AAAAAAAA


--=-4SuH15PLIgNoHhsEZRux--

--===============8743037896110918423==
Content-Type: multipart/alternative; boundary="===============2486592903892225233=="
MIME-Version: 1.0
Content-Disposition: inline

--===============2486592903892225233==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable




Amazon Development Centre (London) Ltd. Registered in England and Wales wit=
h registration number 04543232 with its registered office at 1 Principal Pl=
ace, Worship Street, London EC2A 2FA, United Kingdom.



--===============2486592903892225233==
Content-Type: text/html; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable

<br><br><br>Amazon Development Centre (London) Ltd.Registered in England an=
d Wales with registration number 04543232 with its registered office at 1 P=
rincipal Place, Worship Street, London EC2A 2FA, United Kingdom.<br><br><br>

--===============2486592903892225233==--

--===============8743037896110918423==--


From xen-devel-bounces@lists.xenproject.org Wed May 20 22:40:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 22:40:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314558.1584529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpa8-0000FA-E2; Wed, 20 May 2026 22:40:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314558.1584529; Wed, 20 May 2026 22:40:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpa8-0000E6-AO; Wed, 20 May 2026 22:40:04 +0000
Received: by outflank-mailman (input) for mailman id 1314558;
 Wed, 20 May 2026 22:40:03 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPpa7-0008IC-Bb
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 22:40:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPpa5-00HZa5-0E
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 00:40:02 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e383d-e002-0a2a0a5209dd-0a2a4501945c-6
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:40:00 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3840-c1f2-0a2a45010019-5a9b3222dfac-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:40:00 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPpZu-00000007hX4-39AK; Wed, 20 May 2026 22:39:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=DtDH8j0NQKmUGV97Jxz9ELEov3a5u9SumjQAgzWnX0k=; b=EUutVYgwMU8x7Umh1WP+INCI0R
	y8Lwa60qjt+2RfzfYtBTtlJSR6+/DdDzzFw/U6lYyfqNxJnWcgC8Ibt4aVxOPQRN4peTsfL3vRs4C
	3UJ90JNqkrEd414rCqZaTn2mRewNe+bkLZcEdF5MI+WZ0gsVnexuCPkJ9EBYzJAoQ3mO++RivLXzy
	d0m0DV4+0ZOwQX46H7ELhq0VdyMIYgRVhYXAan1mzFiKGjJ+nELMRiJ7OTJkXmHSx/tO9RHg2GT4W
	RZN1CS6bBvoJDPfqeXIopnptfYj6P4JIsdVDsZmUL4l01tr+pIGDbyKT1kEvcEJy/a4XAa/PuqkV+
	oxXhD3DQ==;
Message-ID: <e04f557315fbd7c6cdef142198abd62531ff7db8.camel@infradead.org>
Subject: Re: [PATCH v3 19/41] x86/kvmclock: Move kvm_sched_clock_init() down
 in kvmclock.c
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 23:39:49 +0100
In-Reply-To: <20260515191942.1892718-20-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-20-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-RlSQbiMm4CS3La34h7if"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d62444/1779316800-AC457FF4-50CDDE17/0/0
X-purgate-type: clean
X-purgate-size: 8045


--=-RlSQbiMm4CS3La34h7if
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Move kvm_sched_clock_init() "down" so that it can reference the global
> kvm_clock structure without needing a forward declaration.
>=20
> Opportunistically mark the helper as "__init" instead of "inline" to make
> its usage more obvious; modern compilers don't need a hint to inline a
> single-use function, and an extra CALL+RET pair during boot is a complete
> non-issue.=C2=A0 And, if the compiler ignores the hint and does NOT inlin=
e the
> function, the resulting code may not get discarded after boot due lack of
> an __init annotation.
>=20
> No functional change intended.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-RlSQbiMm4CS3La34h7if
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIyMzk0
OVowLwYJKoZIhvcNAQkEMSIEIMv0cmp797L7b+DChYUBkSa6Z6iSls4XNbCYu4nJ/Z9kMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAroxTfEq6Wrqb
dZj+V+hRR8tZZbqHWMKBBd3Lf1/z2kACSewIAl5A0vkDQfzn9j7wtTvTufJ9ITMyuCAamAkhpqDg
mqVuKaMZ9Jtm47RkzcO3tzwG27UKf6Mx3/u93uhbkOOlFvUdlWq/H4x+H0y2uwVqDoA2iOnnp/g4
rd3toSKwlF5kjBilpgHUY0n1K+iOSUGNcnovdT6/UJ9AKt4TzaCWDiUmYLIlv1lGW1kZ2uDuvd3J
E1evMj1eIBh1gCCWjQByuId3IP8b2COFwjfjOt41flJhnsaur+jpMtY4Ax2nOpnySG4K/kf7j0ul
T2WQnDN4vMnG3DmjbpMcA6lPbbiYUCaSlimFwjE8JuV+Y5sYGJRuUpQzpdiSerhACGmLIDoDUWzQ
stUMe+8ubyoBLRVgAJnMPEGFXaqJ2n4MJPw7hbP3DuLB2p5xD9qibVNUtdQbndneYmy3qLFHDHRI
wkiB2JygPPw5W37ceRuK4KR7eU5ALpQdWnqMABcvAssDNU4aOjfyPPzG9iY8gi0A7dLUQS4oj1Xb
2E6Ks5vpv9pFrHqJo1FsQKaCyxLnTtN3uHZ9QQKppShZXo2rgsqOQuQDz9q+IWCLQkalcDs755aF
hZgnu60DwLs117xUWAvl5PU0e0Ykt+OYx/Qu9y60VGQNQZd+aeWkmzvX/b+LlkkAAAAAAAA=


--=-RlSQbiMm4CS3La34h7if--


From xen-devel-bounces@lists.xenproject.org Wed May 20 22:40:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 22:40:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314562.1584540 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpaY-00018t-QE; Wed, 20 May 2026 22:40:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314562.1584540; Wed, 20 May 2026 22:40:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpaY-00018m-ME; Wed, 20 May 2026 22:40:30 +0000
Received: by outflank-mailman (input) for mailman id 1314562;
 Wed, 20 May 2026 22:40:29 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPpaX-00018V-F2
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 22:40:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPpaW-00HZiQ-SO
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 00:40:28 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3832-2eae-0a2a0a5409dd-0a2a4504d034-28
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:40:28 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e385c-1dec-0a2a45040019-5a9b3222c03e-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:40:28 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPpaO-00000007hZG-2ad3; Wed, 20 May 2026 22:40:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=saT8MuuzWPlbn7ifIKzdCzwT8XCvT9iD6bVie5w2WH0=; b=vW4Wh/kJdDtKuHu85EdUIZf+rL
	nbgqpReFiX1VGK4Gl5ELGsborIWNu6QYoCKzfiLZKWCsmK8A9k5X1gTFpZE3S8EfYmQl2gBcGkjcR
	TJAETEZPbdhF/aciJn09nWNi4EzlzUKIKyNViXM37VIv7DhVF/L4ZgSxhbXH0Gw9AgPcG44PTik4y
	nA3hzJXF4KTSMlx5UGpA0AqCpYkSEHO5t8VFBCLrfkdqYyrXbmqeboBO3Ml8S5el2qlU04jo0uwJF
	D1D4kaISS3rmhc3JEHNF1g1ylaLmX+haOFm4ZRFtG3gEjNr0Y95h/8aFlCUiDMvExdtJthmzDQBVd
	WwQWzUIQ==;
Message-ID: <4a260cf6b85dd895e005fe255bf25efd995e27d5.camel@infradead.org>
Subject: Re: [PATCH v3 20/41] x86/xen/time: Mark
 xen_setup_vsyscall_time_info() as __init
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 23:40:18 +0100
In-Reply-To: <20260515191942.1892718-21-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-21-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-zpoYd5Qa1cV0TiUes6bQ"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-ebf023/1779316828-40F753FF-DCAF0657/0/0
X-purgate-type: clean
X-purgate-size: 7615


--=-zpoYd5Qa1cV0TiUes6bQ
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Annotate xen_setup_vsyscall_time_info() as being used only during kernel
> initialization; it's called only by xen_time_init(), which is already
> tagged __init.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-zpoYd5Qa1cV0TiUes6bQ
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIyNDAx
OFowLwYJKoZIhvcNAQkEMSIEIHqoaX7Jlr4mYI5+0sNnVJ/kUBi9h1OR5Z/Kdy8/sFIPMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAF3QZo49HnIlh
hfVM4wJ519fRNR9QJOcivNgXddwe8qwxte/qgId64o21VyM7PgSK8GmlrLR1bcZoaPGNKJRf3yzG
rv43/OOtua6MjEzWumCeGvqQdEjEIPHPq35toGphKFzC4TlFfz78QOJFPogWjkc1JIS/sbgWl0BJ
dpYZ8Lul7KyyrpTfu/5DjpAE6Bsci04Kmh92DPk5gpwP01M4I83uxdpLexsm0+brSgoG3EXGnzEl
uvTVXQueLv3jbV9W8JlIMXUNIi0XMa3L6SbXgqujSWaZM5hA+QAISu/miFTQ9yur6xTPcAD2E1Jf
cP0TTqiFLTUvT7xNLMhp6NUrtGSSEH0NDMvzrVfCVjUPqdn/wLvFZt/6OoERAF2Bg/40BFc+j7Go
Eov+gxE7W3/aLInpEsZmRDVWs856dnWRDr1Pg0AQThWdLpI6yfq7M4zvzsuePz2Fw6irpokhGWTt
zZkD+76Ub/jOeA6SjnwKnJBU7qpu6SIB7g5J+hfoW4+Vo4OIXX7oOxSw8TZG0NGurvutex/+eKUL
rrpFudsPsWRkm9Kh17OM6fzzOqDpR57ThgEd9SO6ovTCKo+VwpmNiFEKphAMfLcp7BHvXlwNOaDd
e2ukxpodK04O50QRRmBZmvcCOI6Uy6qGdqN7+RGnk8Tr42NjbIWrD6Wi9hraLmIAAAAAAAA=


--=-zpoYd5Qa1cV0TiUes6bQ--


From xen-devel-bounces@lists.xenproject.org Wed May 20 22:44:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 22:44:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314575.1584548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpdu-0001pF-86; Wed, 20 May 2026 22:43:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314575.1584548; Wed, 20 May 2026 22:43:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpdu-0001p8-4C; Wed, 20 May 2026 22:43:58 +0000
Received: by outflank-mailman (input) for mailman id 1314575;
 Wed, 20 May 2026 22:43:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <prvs=593727dcc=dwmw@amazon.co.uk>)
 id 1wPpds-0001p1-2Q
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 22:43:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPpdr-00Bcnp-Ee
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 00:43:55 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <prvs=593727dcc=dwmw@amazon.co.uk>)
 id 6a0e38da-2eae-0a2a0a5409dd-0a2a450681f2-30
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:43:55 +0200
Received: from [34.193.58.168]
 (helo=iad-out-008.esa.us-east-1.outbound.mail-perimeter.amazon.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <prvs=593727dcc=dwmw@amazon.co.uk>)
 id 6a0e392a-7371-0a2a45060019-22c13aa8d65d-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:43:55 +0200
Received: from ip-10-4-13-79.ec2.internal (HELO
 smtpout.naws.us-east-1.prod.farcaster.email.amazon.dev) ([10.4.13.79])
 by internal-iad-out-008.esa.us-east-1.outbound.mail-perimeter.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2026 22:43:51 +0000
Received: from EX19MTAUEA002.ant.amazon.com [52.94.133.129:14694]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.46.69:2525]
 with esmtp (Farcaster)
 id 8d88b796-f37c-44f5-8209-724cb01a4369; Wed, 20 May 2026 22:43:50 +0000 (UTC)
Received: from EX19D001UEB004.ant.amazon.com (10.252.135.58) by
 EX19MTAUEA002.ant.amazon.com (10.252.134.9) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.37;
 Wed, 20 May 2026 22:43:50 +0000
Received: from EX19D001UEB002.ant.amazon.com (10.252.135.17) by
 EX19D001UEB004.ant.amazon.com (10.252.135.58) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.37;
 Wed, 20 May 2026 22:43:50 +0000
Received: from EX19D001UEB002.ant.amazon.com ([fe80::19d6:e954:f18:6292]) by
 EX19D001UEB002.ant.amazon.com ([fe80::19d6:e954:f18:6292%3]) with mapi id
 15.02.2562.037; Wed, 20 May 2026 22:43:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=amazoncorp2 header.d=amazon.co.uk header.i="@amazon.co.uk" header.h="From:To:CC:Subject:Date:Message-ID:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.co.uk; i=@amazon.co.uk; q=dns/txt;
  s=amazoncorp2; t=1779317035; x=1810853035;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to;
  bh=PJNyu+7jvvvEzBtI7cLEsrH2QC8dv62u4lL0oNrS5wo=;
  b=dN3SSuQGdSvjt/DeZzq/b0LYz4VKxBYZT6Bu0LEuW5z3voDAo6X+ZSiR
   IyXMGhaia6PhFeVEiWFKn9ugbXZ6SlDSfXHnyjWDnjYRC0rGYokvdxm8L
   50uf10UepD+pE8HdeOzeHPNaXlyJn9EF6soqJk/q75CGaB11bM09ZXEx/
   4LMXsV8KoHjhdYriKR++UGYOs7jBp89GxEItFB18sBbq+ep0CqOGLgkPn
   TLCNhXPN4OiI3g0snXIJpBLoq8fqOCmXZ3TkVLVECfrCvQssda/EUMV5S
   c+sw2PsRXWk0ANjtmOLiggCIqk3wwvIKc+p8DoV9jCXRQyXZGMkKFskVb
   A==;
X-CSE-ConnectionGUID: KUcEZvlvRXKlfzyUj1YxVw==
X-CSE-MsgGUID: kjcPQ6toQd2rmx7v9/f/bA==
X-Amazon-filename: smime.p7s
X-IronPort-AV: E=Sophos;i="6.23,245,1770595200"; 
   d="p7s'346?scan'346,208,346";a="19042141"
Content-Type: multipart/mixed; boundary="===============5843396909028368669=="
MIME-Version: 1.0
X-Farcaster-Flow-ID: 8d88b796-f37c-44f5-8209-724cb01a4369
From: "Woodhouse, David" <dwmw@amazon.co.uk>
To: "tglx@kernel.org" <tglx@kernel.org>, "longli@microsoft.com"
	<longli@microsoft.com>, "luto@kernel.org" <luto@kernel.org>,
	"alexey.makhalov@broadcom.com" <alexey.makhalov@broadcom.com>,
	"jstultz@google.com" <jstultz@google.com>, "dave.hansen@linux.intel.com"
	<dave.hansen@linux.intel.com>, "ajay.kaher@broadcom.com"
	<ajay.kaher@broadcom.com>, "jan.kiszka@siemens.com" <jan.kiszka@siemens.com>,
	"haiyangz@microsoft.com" <haiyangz@microsoft.com>, "kas@kernel.org"
	<kas@kernel.org>, "seanjc@google.com" <seanjc@google.com>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>, "kys@microsoft.com"
	<kys@microsoft.com>, "decui@microsoft.com" <decui@microsoft.com>,
	"daniel.lezcano@kernel.org" <daniel.lezcano@kernel.org>, "wei.liu@kernel.org"
	<wei.liu@kernel.org>, "peterz@infradead.org" <peterz@infradead.org>,
	"jgross@suse.com" <jgross@suse.com>
CC: "boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>,
	"linux-coco@lists.linux.dev" <linux-coco@lists.linux.dev>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>, "mhklinux@outlook.com"
	<mhklinux@outlook.com>, "thomas.lendacky@amd.com" <thomas.lendacky@amd.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"bcm-kernel-feedback-list@broadcom.com"
	<bcm-kernel-feedback-list@broadcom.com>, "tglx@linutronix.de"
	<tglx@linutronix.de>, "nikunj@amd.com" <nikunj@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"vkuznets@redhat.com" <vkuznets@redhat.com>, "rick.p.edgecombe@intel.com"
	<rick.p.edgecombe@intel.com>, "virtualization@lists.linux.dev"
	<virtualization@lists.linux.dev>, "sboyd@kernel.org" <sboyd@kernel.org>,
	"x86@kernel.org" <x86@kernel.org>
Subject: Re: [PATCH v3 21/41] x86/pvclock: Mark setup helpers and related
 various as __init/__ro_after_init
Thread-Topic: [PATCH v3 21/41] x86/pvclock: Mark setup helpers and related
 various as __init/__ro_after_init
Thread-Index: AQHc6Kog9FpgV4YmyUikwo4VicWA8g==
Date: Wed, 20 May 2026 22:43:49 +0000
Message-ID: <ac40b7e4ba713f0965218a9b7b18406523da78f5.camel@amazon.co.uk>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-22-seanjc@google.com>
In-Reply-To: <20260515191942.1892718-22-seanjc@google.com>
Accept-Language: en-GB, en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.106.83.30]
MIME-Version: 1.0
X-purgate-ID: tlsNG-16d1c6/1779317035-86576D75-01F37FA9/21/137
X-purgate-type: clean
X-purgate-size: 10043

--===============5843396909028368669==
Content-Language: en-US
Content-Type: multipart/signed; micalg=sha-256;
	protocol="application/pkcs7-signature"; boundary="=-xcaOhLSkATaKEeh9yzW3"

--=-xcaOhLSkATaKEeh9yzW3
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Now that Xen PV clock and kvmclock explicitly do setup only during init,
> tag the common PV clock flags/vsyscall variables and their mutators with
> __init.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-xcaOhLSkATaKEeh9yzW3
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCEkYw
ggYQMIID+KADAgECAhBNlCwQ1DvglAnFgS06KwZPMA0GCSqGSIb3DQEBDAUAMIGIMQswCQYDVQQG
EwJVUzETMBEGA1UECBMKTmV3IEplcnNleTEUMBIGA1UEBxMLSmVyc2V5IENpdHkxHjAcBgNVBAoT
FVRoZSBVU0VSVFJVU1QgTmV0d29yazEuMCwGA1UEAxMlVVNFUlRydXN0IFJTQSBDZXJ0aWZpY2F0
aW9uIEF1dGhvcml0eTAeFw0xODExMDIwMDAwMDBaFw0zMDEyMzEyMzU5NTlaMIGWMQswCQYDVQQG
EwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYD
VQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50
aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAyjztlApB/975Rrno1jvm2pK/KxBOqhq8gr2+JhwpKirSzZxQgT9tlC7zl6hn1fXjSo5MqXUf
ItMltrMaXqcESJuK8dtK56NCSrq4iDKaKq9NxOXFmqXX2zN8HHGjQ2b2Xv0v1L5Nk1MQPKA19xeW
QcpGEGFUUd0kN+oHox+L9aV1rjfNiCj3bJk6kJaOPabPi2503nn/ITX5e8WfPnGw4VuZ79Khj1YB
rf24k5Ee1sLTHsLtpiK9OjG4iQRBdq6Z/TlVx/hGAez5h36bBJMxqdHLpdwIUkTqT8se3ed0PewD
ch/8kHPo5fZl5u1B0ecpq/sDN/5sCG52Ds+QU5O5EwIDAQABo4IBZDCCAWAwHwYDVR0jBBgwFoAU
U3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFAnA8vwL2pTbX/4r36iZQs/J4K0AMA4GA1Ud
DwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
BQcDBDARBgNVHSAECjAIMAYGBFUdIAAwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC51c2Vy
dHJ1c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYGCCsGAQUF
BwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3QuY29tL1VTRVJUcnVzdFJT
QUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMA0G
CSqGSIb3DQEBDAUAA4ICAQBBRHUAqznCFfXejpVtMnFojADdF9d6HBA4kMjjsb0XMZHztuOCtKF+
xswhh2GqkW5JQrM8zVlU+A2VP72Ky2nlRA1GwmIPgou74TZ/XTarHG8zdMSgaDrkVYzz1g3nIVO9
IHk96VwsacIvBF8JfqIs+8aWH2PfSUrNxP6Ys7U0sZYx4rXD6+cqFq/ZW5BUfClN/rhk2ddQXyn7
kkmka2RQb9d90nmNHdgKrwfQ49mQ2hWQNDkJJIXwKjYA6VUR/fZUFeCUisdDe/0ABLTI+jheXUV1
eoYV7lNwNBKpeHdNuO6Aacb533JlfeUHxvBz9OfYWUiXu09sMAviM11Q0DuMZ5760CdO2VnpsXP4
KxaYIhvqPqUMWqRdWyn7crItNkZeroXaecG03i3mM7dkiPaCkgocBg0EBYsbZDZ8bsG3a08LwEsL
1Ygz3SBsyECa0waq4hOf/Z85F2w2ZpXfP+w8q4ifwO90SGZZV+HR/Jh6rEaVPDRF/CEGVqR1hiuQ
OZ1YL5ezMTX0ZSLwrymUE0pwi/KDaiYB15uswgeIAcA6JzPFf9pLkAFFWs1QNyN++niFhsM47qod
x/PL+5jR87myx5uYdBEQkkDc+lKB1Wct6ucXqm2EmsaQ0M95QjTmy+rDWjkDYdw3Ms6mSWE3Bn7i
5ZgtwCLXgAIe5W8mybM2JzCCBhUwggT9oAMCAQICEFQru/eJkU7BxeS7T6sWKmYwDQYJKoZIhvcN
AQELBQAwgZYxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNV
BAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE+MDwGA1UEAxM1U2VjdGlnbyBS
U0EgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0EwHhcNMjQxMjE1MDAw
MDAwWhcNMjYxMjE1MjM1OTU5WjAiMSAwHgYJKoZIhvcNAQkBFhFkd213QGFtYXpvbi5jby51azCC
AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANhjs6T4tJ0lcw4+6sawEn2FowmhunUBsnSV
ccB+aA7s3Zd9PZV46CU6phAlCWpKk1yFVcD1Rnc4ux17o4LbUgFXiKrORS0jiF/5Oa0rXG3FISG1
Xdjt8oPKIq+9Z1s2e7Ipi5WWj4AG/xlkH/YMMctL9O8CCRHSrhiChbE/gR57x9PAnt5aeZZ2YWza
GOOeceaZe+u6vHCHITRmknSAnAX/aNoNJNsQCGcfrE83y9iHmP8BFrSRZqajBKlKq8tyJd5FnSwP
H3kSUcQlHOwiIfCRFXP4rpXSZ7nKOEZr3SXH06ADY9gZtrSpwBbuzKWDPGWMRuRnz8ogj/Y6DeU4
2zB/ZAIi5b0BzWf4u0rBEQD5xtpOCxYHc2nXQaFSWu36kP1JaNqElE51OQ92EyVKfW3N6qZcKiBr
VijXY2EtR+/5W9ixRFnEs4nIeb94Sf92UMEeG9ew2yVvcYXXNPaicGnrkESNC19/a8YXxQEZfrmB
eAPT9viQJhn3O+sD4pP0Ss3SjVZc6EO7vfoP07bt2n9YE08XSPkxcyb1J/4t/+AskkKeYFBGdpjg
xd+iLFxjSwBytZuh3+7DuHUfg876WA44ieQDrhHSjuvuAZ1Wb8WUsrpzrcLoYjqFmb/bf6/yyoxl
t31mdgPC+FLc+Yu1BQwXC3JMbrvbFBVTtn5X2EKDAgMBAAGjggHQMIIBzDAfBgNVHSMEGDAWgBQJ
wPL8C9qU21/+K9+omULPyeCtADAdBgNVHQ4EFgQUWvtA1XsSV8xjgfFQL/DUTNIbJu4wDgYDVR0P
AQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwQwUAYDVR0gBEkwRzA6
BgwrBgEEAbIxAQIBCgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zZWN0aWdvLmNvbS9TTUlNRUNQ
UzAJBgdngQwBBQEDMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2Vj
dGlnb1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5jcmwwgYoGCCsGAQUF
BwEBBH4wfDBVBggrBgEFBQcwAoZJaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBQ2xp
ZW50QXV0aGVudGljYXRpb25hbmRTZWN1cmVFbWFpbENBLmNydDAjBggrBgEFBQcwAYYXaHR0cDov
L29jc3Auc2VjdGlnby5jb20wHAYDVR0RBBUwE4ERZHdtd0BhbWF6b24uY28udWswDQYJKoZIhvcN
AQELBQADggEBAED6T+rfP2XPdLfHoCd5n1iGIcYauWfPHRdZN2Tw7a7NEXIkm2yZNizOSpp3NrMi
WOBN13XgqnYLsqdpxJhbjwKczKX50/qfhhkOHtrQ0GRkucybK447Aaul80cZT8T3WG9U9dhl3Ct/
MuyKBWQg3MYlbUT6u4kC9Pk8rd+cR14ttYRUWDKTS2BrL7e8jpNmtCoEakDkMY4MrpoMwM1f4ANV
qZ8cnDntwXq5ormZIksN2DqxsKLmrFyVAONhqSST72ImBfIVWhFRTCF9tTcI5wE/0Skl25FZmSsB
B2LUgecgK7MZyw9Do/b0sYS+8YmA/ujUCqNb0fPJBE/B9vBomhswggYVMIIE/aADAgECAhBUK7v3
iZFOwcXku0+rFipmMA0GCSqGSIb3DQEBCwUAMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0
ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJl
IEVtYWlsIENBMB4XDTI0MTIxNTAwMDAwMFoXDTI2MTIxNTIzNTk1OVowIjEgMB4GCSqGSIb3DQEJ
ARYRZHdtd0BhbWF6b24uY28udWswggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDYY7Ok
+LSdJXMOPurGsBJ9haMJobp1AbJ0lXHAfmgO7N2XfT2VeOglOqYQJQlqSpNchVXA9UZ3OLsde6OC
21IBV4iqzkUtI4hf+TmtK1xtxSEhtV3Y7fKDyiKvvWdbNnuyKYuVlo+ABv8ZZB/2DDHLS/TvAgkR
0q4YgoWxP4Eee8fTwJ7eWnmWdmFs2hjjnnHmmXvrurxwhyE0ZpJ0gJwF/2jaDSTbEAhnH6xPN8vY
h5j/ARa0kWamowSpSqvLciXeRZ0sDx95ElHEJRzsIiHwkRVz+K6V0me5yjhGa90lx9OgA2PYGba0
qcAW7sylgzxljEbkZ8/KII/2Og3lONswf2QCIuW9Ac1n+LtKwREA+cbaTgsWB3Np10GhUlrt+pD9
SWjahJROdTkPdhMlSn1tzeqmXCoga1Yo12NhLUfv+VvYsURZxLOJyHm/eEn/dlDBHhvXsNslb3GF
1zT2onBp65BEjQtff2vGF8UBGX65gXgD0/b4kCYZ9zvrA+KT9ErN0o1WXOhDu736D9O27dp/WBNP
F0j5MXMm9Sf+Lf/gLJJCnmBQRnaY4MXfoixcY0sAcrWbod/uw7h1H4PO+lgOOInkA64R0o7r7gGd
Vm/FlLK6c63C6GI6hZm/23+v8sqMZbd9ZnYDwvhS3PmLtQUMFwtyTG672xQVU7Z+V9hCgwIDAQAB
o4IB0DCCAcwwHwYDVR0jBBgwFoAUCcDy/AvalNtf/ivfqJlCz8ngrQAwHQYDVR0OBBYEFFr7QNV7
ElfMY4HxUC/w1EzSGybuMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoG
CCsGAQUFBwMEMFAGA1UdIARJMEcwOgYMKwYBBAGyMQECAQoCMCowKAYIKwYBBQUHAgEWHGh0dHBz
Oi8vc2VjdGlnby5jb20vU01JTUVDUFMwCQYHZ4EMAQUBAzBaBgNVHR8EUzBRME+gTaBLhklodHRw
Oi8vY3JsLnNlY3RpZ28uY29tL1NlY3RpZ29SU0FDbGllbnRBdXRoZW50aWNhdGlvbmFuZFNlY3Vy
ZUVtYWlsQ0EuY3JsMIGKBggrBgEFBQcBAQR+MHwwVQYIKwYBBQUHMAKGSWh0dHA6Ly9jcnQuc2Vj
dGlnby5jb20vU2VjdGlnb1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5j
cnQwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMBwGA1UdEQQVMBOBEWR3bXdA
YW1hem9uLmNvLnVrMA0GCSqGSIb3DQEBCwUAA4IBAQBA+k/q3z9lz3S3x6AneZ9YhiHGGrlnzx0X
WTdk8O2uzRFyJJtsmTYszkqadzazIljgTdd14Kp2C7KnacSYW48CnMyl+dP6n4YZDh7a0NBkZLnM
myuOOwGrpfNHGU/E91hvVPXYZdwrfzLsigVkINzGJW1E+ruJAvT5PK3fnEdeLbWEVFgyk0tgay+3
vI6TZrQqBGpA5DGODK6aDMDNX+ADVamfHJw57cF6uaK5mSJLDdg6sbCi5qxclQDjYakkk+9iJgXy
FVoRUUwhfbU3COcBP9EpJduRWZkrAQdi1IHnICuzGcsPQ6P29LGEvvGJgP7o1AqjW9HzyQRPwfbw
aJobMYIExDCCBMACAQEwgaswgZYxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNo
ZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE+MDwGA1UE
AxM1U2VjdGlnbyBSU0EgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0EC
EFQru/eJkU7BxeS7T6sWKmYwDQYJYIZIAWUDBAIBBQCgggHpMBgGCSqGSIb3DQEJAzELBgkqhkiG
9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIyNDM0OFowLwYJKoZIhvcNAQkEMSIEIPpTxyn4
5hSo87oPWK90mU2WB7paa4xSpP+3KIgdKSXTMIG8BgkrBgEEAYI3EAQxga4wgaswgZYxCzAJBgNV
BAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGDAW
BgNVBAoTD1NlY3RpZ28gTGltaXRlZDE+MDwGA1UEAxM1U2VjdGlnbyBSU0EgQ2xpZW50IEF1dGhl
bnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0ECEFQru/eJkU7BxeS7T6sWKmYwgb4GCyqGSIb3
DQEJEAILMYGuoIGrMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVy
MRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNl
Y3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBAhBUK7v3
iZFOwcXku0+rFipmMA0GCSqGSIb3DQEBAQUABIICAHKAIyALBLmIt4aCmiYRFH+Xkc0d2BDf5jML
9hBw4XysNh/NXNCw8aG1965zbJIXv8++yzhMHk/AcUsUe4ME3GBurp69NS8nEZobR/S6vVdOyUvN
JdFh6lBfyHMKNd2IGHIcRJudu0/i9HnTDxPLzGmzqujAqA4N90Dxv1sU6EkBtDjn4rsMrRhrjEJQ
d2CDFm49NBTpVRNZnHWsKaJeap3I5Xja/fCsWGx/QnhZHzVoL5AkX0KRS4LRuP0FdDeu4S9mZmvt
93HyplBFucPabaPRWjbzLBtNeA5hphnCvDQS1VyPdC3IWIFHXtf9Z6lVFs84dAEz5nyQDd91RFdA
Zw4xoAvBmpvwoPWgvzaPTkLjo9g47J8Fe2sCpkXq+qwW0oMvgmmVZormbap/siidoG6vsM+3zk4l
xT5VEO3dA/tm1LeB3lWg06usR0KiIq80auUZbKNuYppk1pEw2mIfz/UwK1xO62OBAGBGL/8fw6wF
1OkGp5+7JBwnEUH/FdXCsd4Ijq5mP7FVcYm8qbxj+cf869+D8GDuDez85Zr0f1eul67mlxwCpLLp
hbH0aEzWLv4AvVr6+96McHZ5dZy+q/9DPQOFBpKEwv206iy/clTZ/lzIr/76lBzcSCDYNQ7c+j3R
ZUGWkcoj6Hwbwd91JhWS0M2VKFl6gNG4m8DzDAoEAAAAAAAA


--=-xcaOhLSkATaKEeh9yzW3--

--===============5843396909028368669==
Content-Type: multipart/alternative; boundary="===============3620804152469418255=="
MIME-Version: 1.0
Content-Disposition: inline

--===============3620804152469418255==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable




Amazon Development Centre (London) Ltd. Registered in England and Wales wit=
h registration number 04543232 with its registered office at 1 Principal Pl=
ace, Worship Street, London EC2A 2FA, United Kingdom.



--===============3620804152469418255==
Content-Type: text/html; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable

<br><br><br>Amazon Development Centre (London) Ltd.Registered in England an=
d Wales with registration number 04543232 with its registered office at 1 P=
rincipal Place, Worship Street, London EC2A 2FA, United Kingdom.<br><br><br>

--===============3620804152469418255==--

--===============5843396909028368669==--


From xen-devel-bounces@lists.xenproject.org Wed May 20 22:44:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 22:44:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314580.1584558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpea-0002Gw-HX; Wed, 20 May 2026 22:44:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314580.1584558; Wed, 20 May 2026 22:44:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpea-0002Gp-D3; Wed, 20 May 2026 22:44:40 +0000
Received: by outflank-mailman (input) for mailman id 1314580;
 Wed, 20 May 2026 22:44:39 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPpeY-0002GY-Pj
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 22:44:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPpeX-00HaCQ-Iz
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 00:44:38 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3954-e002-0a2a0a5209dd-0a2a4505c5ac-0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:44:36 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3954-aaa8-0a2a45050019-5a9b3222dad0-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:44:36 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPpeP-00000007hpg-3cKx; Wed, 20 May 2026 22:44:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=+DZstB+MHV1CL9v7iC4hC3EpbpRzleu52F3/Mziw8iM=; b=fYoCh94NRELg3JF+baJD0NwyKW
	qxprqsvXJn2MLO6JnMX7rBBAYmPRxh9oA0VXaxq7IPID3cN1CXZ1FoPyXcDgP7YIZVUCN6LkrWLg+
	euJPiQ4jxmCc5ul4K7Oz1xvORpLHrVNR4RZu9n8hXvWd+bJris5s+eYCrokeLoHFBIwwYU7hAk1I7
	GZUeduno3qphHT8EMk5R8iL+8rzytL+Y0w+dqcZsY9iHIymEVxtU1VCt0jgXPKRQeUQhe4YqqsREg
	X7+OioG2bJiktmDw51FG/9t02YZZgfal7nQRjAB8LbeAK2DDXVTQRje3/+ud1Aob0y3Z8qc5DoTOa
	4/B+EDcA==;
Message-ID: <3c319fe5f9d9e1ff005074320de9065af8a79f41.camel@infradead.org>
Subject: Re: [PATCH v3 22/41] x86/pvclock: WARN if pvclock's valid_flags are
 overwritten
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 23:44:28 +0100
In-Reply-To: <20260515191942.1892718-23-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-23-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-NmFCdyiY4egYUvp+XVXA"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-c201ff/1779317076-D8F7E443-EA9245C5/0/0
X-purgate-type: clean
X-purgate-size: 7645


--=-NmFCdyiY4egYUvp+XVXA
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> WARN if the common PV clock valid_flags are overwritten; all PV clocks
> expect that they are the one and only PV clock, i.e. don't guard against
> another PV clock having modified the flags.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-NmFCdyiY4egYUvp+XVXA
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIyNDQy
OFowLwYJKoZIhvcNAQkEMSIEIJdSbDqznLlmk+9xLPrpY5tHHF5lZRvHPu+xsrwyCB8kMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAEW+elvPAEqax
TgQLs5DnO9MoNfIOu9NOgREju+JVwqLmzT2lS57aZPzm1fTG+wSbTHk6gmPRZ7RIWJQPNQA5gaUY
WGurn8vBJRoMX4c0715QnQOa0+AXAXvnYv8pf8Cs/eqDylnNixPNiKla2CzxJysHkdiARo7WgfGk
eAv2vJG/iz8cW8+sEW6zPAQgxeArdu92KRCkd2R0mb8xf7P3ooV713t/L4MdTCxOTKq8R8VzD0mX
MWna4T6j5csKsTc8FfR3XqLgv14DJX9snVHyCRSTbKaRHNTGWMa3xOvs99Fd8LClwUPssEs0GUnw
H5iNZ9DGJp97Wt/l0JVDn7VMzLlIUkyXukd5TPnwmFuWjY+eLAEWuLXGzLliPRGcOMnj1bz0ojN0
wof50GZJ/yiErB0CadlcfdcQrCSTDYyzFOVA9vYQ06T2YBIIbvcjcrimhlWrJnE9LFiPd6NkYHkk
TnB3YWhaYPsDfr7umhy8XArVlymdjmhzIkn0TfNG2L31cmPVmM/61WOAIw8OlkfOfEVeQjdoBjeR
dVsj1RGhyfIskwiBRALIIMWXJYTgvADfSGpMYAYuUYNPRtFUJtSU7xv42Fnv91BV0TlUIecR8Baa
xi1wyBMER2z6LrN6EpBDtF/6SYuSYNbHzy7Gn1TKyrhccl+GKZ17vLtUEKrF+SYAAAAAAAA=


--=-NmFCdyiY4egYUvp+XVXA--


From xen-devel-bounces@lists.xenproject.org Wed May 20 22:46:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 22:46:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314589.1584566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpgo-0002rj-0H; Wed, 20 May 2026 22:46:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314589.1584566; Wed, 20 May 2026 22:46:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpgn-0002rc-TX; Wed, 20 May 2026 22:46:57 +0000
Received: by outflank-mailman (input) for mailman id 1314589;
 Wed, 20 May 2026 22:46:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPpgm-0002rV-96
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 22:46:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPpgl-005QBw-Ky
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 00:46:55 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3983-5cb7-0a2a0a5109dd-0a2a45089da6-26
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:46:55 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e39de-63b5-0a2a45080019-5a9b32229104-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:46:55 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPpgd-00000007i1f-1xjN; Wed, 20 May 2026 22:46:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=eGf8zE8VSU/CYWvR8RwGK3Zkxx3u3NJdsOQ3RwMffU4=; b=ES80omK3u8axorzR/jGS695miN
	cvmxX5MMxSnJGpZensYsRW0qi/rn4sH6nj1g+6ltU0uUMgFD6ZAgdwVWyfk1cPWPMW7A90Ay4PH+T
	NROgO2JN27vk2hi6ymoA42i6p7XPaKC6+sCveUhLQbzFMR/w94Ojd8UNzZFp92i4czyLvQryBgmzI
	EcbCsN4RIxRXykjbYldnrz5Tdj5X+e2KzJ/tf/11fJN+3nkFHmgZOhJ7matEiNZO4fqEl2jRjR2jn
	D0UaKI55Bhwsypops6zHGPGOlXFLlDmhWYOog0JH9WV43Eu7L33/tORS6rjqF/eyA0s5NtkPMx1/+
	DHosMsDw==;
Message-ID: <5979bd60fc7d8eebfacb71112db5d0a74a98de19.camel@infradead.org>
Subject: Re: [PATCH v3 23/41] x86/kvmclock: Refactor handling of
 PVCLOCK_TSC_STABLE_BIT during kvmclock_init()
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 23:46:45 +0100
In-Reply-To: <20260515191942.1892718-24-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-24-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-2WAgxEizV8hcN/lY6ryq"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-c1860d/1779317215-B6D73DB1-CF0D1FB2/0/0
X-purgate-type: clean
X-purgate-size: 7941


--=-2WAgxEizV8hcN/lY6ryq
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Clean up the setting of PVCLOCK_TSC_STABLE_BIT during kvmclock init to
> make it somewhat obvious that pvclock_read_flags() must be called *after*
> pvclock_set_flags().
>=20
> Note, in theory, a different PV clock could have set PVCLOCK_TSC_STABLE_B=
IT
> in the supported flags, i.e. reading flags only if
> KVM_FEATURE_CLOCKSOURCE_STABLE_BIT is set could very, very theoretically
> result in a change in behavior.=C2=A0 In practice, the kernel only suppor=
ts a
> single PV clock.

> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-2WAgxEizV8hcN/lY6ryq
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIyNDY0
NVowLwYJKoZIhvcNAQkEMSIEINS9LM6KRfUo2yx8Pb5YXUAcV0mU0oFDiaUR57Ame11gMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAsoz3oJRhm2hX
gNAchDUTQ9d9uzKv9AfAnWM27xlRjNoHJFxeuKNJaWe9wO0+D1l8fVrz3fVgGBglCCJMJBHAdMGY
aex+sxJiuHN2FfKBPTGkXY16GQDxXsyEi0VerM7X/QGU7QwWY6EknthEDEdct+I80ExLvCI+JRF3
Xtf4MZkcnQQWIxvoR9RG3IjuQc95zM0otPRNlNUDVBpxlaV3P5ixG/VDjTxKM0A9VwoR8rVmFj3l
KBnxFxT8OmXdacCy+LGmw/c4o8HGbMgPtEoho5ljLnlcp5xYCtq6m+CyxI3F7BRD/vHp+rTJwkE0
LqjLfX4oetuEPBXDgvUQ7YMdSoLVFaME5suHc8Cm2Ln2Zd1RQrKRBRrsnX8kQDoUu9WhHm9P1Nbd
+iGC6HWTmuKixes0vd7OCtnncwTWtOdzfdM7hHS6FDTFcputoj9yFbQ7CkvZiZVy2GniwzNgjqSK
RumzZdDrKWzB6WXBk5lsMET+hHRDbBMfJZfTbbMD3qyxK7DCPZ0lyolLYc79rQFVPcydLKo9wxOy
ETUZDfIfCnuj7J9/6v5A3T6bFo6k3kFsaOkN+2yFG2hL9cPsJMf+iIdSXNOfXl3ok9hlbGV7RKOt
59mQfdSMWr9ZZsImRgFL2zPsNYuCXqzuVgllFGEn0NOhSRCWI/o3aocQ1gHGv7oAAAAAAAA=


--=-2WAgxEizV8hcN/lY6ryq--


From xen-devel-bounces@lists.xenproject.org Wed May 20 22:53:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 22:53:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314597.1584574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpmd-0004aT-J9; Wed, 20 May 2026 22:52:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314597.1584574; Wed, 20 May 2026 22:52:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpmd-0004aM-GZ; Wed, 20 May 2026 22:52:59 +0000
Received: by outflank-mailman (input) for mailman id 1314597;
 Wed, 20 May 2026 22:52:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPpmc-0004aG-9Y
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 22:52:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPpmZ-0009cl-MC
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 00:52:55 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3abb-e002-0a2a0a5209dd-0a2a4506dfd4-40
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:52:54 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3b46-7371-0a2a45060019-5a9b3222e7c4-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:52:54 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPpmR-00000007iMt-17II; Wed, 20 May 2026 22:52:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=0xB2c+l1rITmxW/V+Z0/6dbvZG3N4bYoVGjcTR7obto=; b=Br7jKn/triMy0YPuXhAeyCW48s
	z1cDkBsZ34cSLTEhbDA4GTXYhadTihDaZpKOfUmatPUknqwLBN5ESFk2VY+aLucGiyrIJ7GqAl3Qv
	70eisbeRHfc3TWejZtPNVmlEmR3V+2SPwvlpvHae55wYCzCWk5+KnjIIfASycnKNyJF2izudVYRuN
	iodZaESZ3uDInwpIb9EGvqxfGCDFcgJJ91HTbmYjEoNmS2F+LQa7rh3PUfWcX5LarLnNAHcXv133q
	4dBr2YH0sd0oxECYa8RcawLqthoPwDySFXaOh5tiT08iPIE3PaCYfDT+ha1zevhvKYCJiIhp1CuVN
	b3fd/zew==;
Message-ID: <5c3609eea079a7b5b521ac4f01849bb05386a4ad.camel@infradead.org>
Subject: Re: [PATCH v3 24/41] timekeeping: Resume clocksources before
 reading persistent clock
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 23:52:45 +0100
In-Reply-To: <20260515191942.1892718-25-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-25-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-I8cK8q5LHpUuTl/PNs95"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-16d1c6/1779317574-87F7BD75-6B7BE6BD/0/0
X-purgate-type: clean
X-purgate-size: 8206


--=-I8cK8q5LHpUuTl/PNs95
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> When resuming timekeeping after suspend, restore clocksources prior to
> reading the persistent clock.=C2=A0 Paravirt clocks, e.g. kvmclock, tie t=
he
> validity of a PV persistent clock to a clocksource, i.e. reading the PV
> persistent clock will return garbage if the underlying PV clocksource
> hasn't been enabled.=C2=A0 The flaw has gone unnoticed because kvmclock i=
s a
> mess and uses its own suspend/resume hooks instead of the clocksource
> suspend/resume hooks, which happens to work by sheer dumb luck (the
> kvmclock resume hook runs before timekeeping_resume()).
>=20
> Note, there is no evidence that any clocksource supported by the kernel
> depends on a persistent clock.
>=20
> Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-I8cK8q5LHpUuTl/PNs95
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIyNTI0
NVowLwYJKoZIhvcNAQkEMSIEIM7LF1Zhf0hqDDCQ+GyoItPFm1Rrv+yNTldIbW4NPBmLMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIARjA38r2B57sX
K8edWM4yPK73dXkjwa1pVmH3y6iXLPlu8c/YLtW93pApN2uQ8X1BtE6ur94n2vRz5UkN92s0L8++
Bs9mvXAmAnf4x07gb97qraK/d9Gt+9vR2SP8KbVSvSUmvjDSVcrwLRfmtXlqs1/wfFtI9ygsbxy/
dbqjcz2L8KwSm96BFd3s7R36wOgUln1MAV+5lCyYx5XwcYZmi9nTCb6AtyMfumMUKS2Bt5hMlqp3
1ItPKoXJCrNz+Ecn09wJrTV3hPGGybkT0ix30n0pSXD3yWR/MqKByjUPdv5vp1n5YdRTjEFN+Z3+
wtARjEqI00/Uq5rXjbu2M337Z5ph1NZi0SWXx7IJywiOw8KvMJpri4pYbOQMYwwUGI6WNKpYMBbk
Tji91qXgrGauS6LsH3AMUxykjvJrkrh0824hUNbpTFQWumoJ85AbpOkN7T+KFNqrQAo1mpIQHmqV
HD+o2MV2Sd0FSlSoqqzj7LTw3y2fhnUN2hNt8Kd/vw6YZvei9fEePShAcSf9jErpVoyR+l+yGly1
DErkO6DEOlfhHoAJIJHc+MCPOWfgcA6nkHD0NCcnof2rmfksSf9W5eSQTe3x6cK+xhWKQkF3em+M
jSUDlYnQ4X6U0po84g3/60LFMHSHbeyejwSv3i9veRC+DM6qqb8M6y8nBpdQUpQAAAAAAAA=


--=-I8cK8q5LHpUuTl/PNs95--


From xen-devel-bounces@lists.xenproject.org Wed May 20 22:54:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 22:54:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314604.1584583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpoQ-00055a-U1; Wed, 20 May 2026 22:54:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314604.1584583; Wed, 20 May 2026 22:54:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpoQ-00055T-Qv; Wed, 20 May 2026 22:54:50 +0000
Received: by outflank-mailman (input) for mailman id 1314604;
 Wed, 20 May 2026 22:54:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPpoO-00055J-OC
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 22:54:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPpoO-005Qrl-40
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 00:54:48 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3bb7-5cb7-0a2a0a5109dd-0a2a4509cec8-2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:54:47 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3bb7-2497-0a2a45090019-5a9b32228084-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:54:47 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPpoG-00000007iRi-36HA; Wed, 20 May 2026 22:54:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=6FuTxCzG50tCcJ7JmDxJagIZRoKf3Vu9pBMmVtaV0rk=; b=XYPO8EiyAGWA8BerIq1h1Qkdmp
	ixOBf1cP/KTVnPlQpdfOZ2AQQ4LFWx4MAHfZb8XLrqaA+0kcNuENbYE5M27rjY+n9qUQeJPB4P2lS
	ec3nSK5ceiNzY0vIjdTilzffUpZt5PkxAlIVUDrV168xX+76oH45/Abd2q/duj58F4fxKwBHEX7MM
	GrRA7Z4IV4F/SrSXM/Fy/kEciz57tZ1RiFP/HpS/XlMSj6mmTNfQJoETcajwxZ0Yt8Y3u6oujjhL/
	jKD35RtkmOir3i489jpPeN8KZgStKrUZcMSgqTigLESbNWbe7bGdom+vHuO4u+lz11v0mab3xHPlW
	zR5Cg4gQ==;
Message-ID: <8515b91e076fc48ba76c5a9284cc35da8a104715.camel@infradead.org>
Subject: Re: [PATCH v3 15/41] x86/xen/time: Nullify x86_platform's
 sched_clock save/restore hooks
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 20 May 2026 23:54:39 +0100
In-Reply-To: <93f8fad19e2c617ca17f544d11483c517024bfc4.camel@infradead.org>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-16-seanjc@google.com>
	 <93f8fad19e2c617ca17f544d11483c517024bfc4.camel@infradead.org>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-/gqDT+SRkshP8r6BXHU7"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-bad1c0/1779317687-4176AA53-7AD11921/0/0
X-purgate-type: clean
X-purgate-size: 8835


--=-/gqDT+SRkshP8r6BXHU7
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, 2026-05-20 at 23:11 +0100, David Woodhouse wrote:
> On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> > Nullify the x86_platform sched_clock save/restore hooks when setting up
> > Xen's PV clock to make it somewhat obvious the hooks aren't used when
> > running as a Xen guest (Xen uses a paravirtualized suspend/resume flow)=
.
> >=20
> > Signed-off-by: Sean Christopherson <seanjc@google.com>
>=20
> Hm. Xen HVM guests *do* use a standard ACPI S4 hibernation flow.
>=20
> Does that need testing?

Ah, this looks as sane as we can expect.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

>=20
> > ---
> > =C2=A0arch/x86/xen/time.c | 6 ++++++
> > =C2=A01 file changed, 6 insertions(+)
> >=20
> > diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
> > index 3d3165eef821..21d366d01985 100644
> > --- a/arch/x86/xen/time.c
> > +++ b/arch/x86/xen/time.c
> > @@ -568,6 +568,12 @@ static void __init xen_init_time_common(void)
> > =C2=A0	xen_sched_clock_offset =3D xen_clocksource_read();
> > =C2=A0	static_call_update(pv_steal_clock, xen_steal_clock);
> > =C2=A0	paravirt_set_sched_clock(xen_sched_clock);
> > +	/*
> > +	 * Xen has paravirtualized suspend/resume and so doesn't use the comm=
on
> > +	 * x86 sched_clock save/restore hooks.
> > +	 */
> > +	x86_platform.save_sched_clock_state =3D NULL;
> > +	x86_platform.restore_sched_clock_state =3D NULL;
> > =C2=A0
> > =C2=A0	tsc_register_calibration_routines(xen_tsc_khz, NULL);
> > =C2=A0	x86_platform.get_wallclock =3D xen_get_wallclock;
>=20


--=-/gqDT+SRkshP8r6BXHU7
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIyNTQz
OVowLwYJKoZIhvcNAQkEMSIEIKjBGgEsujcPILKoD+U8O2PbPkRVy9RtGsUhBH4vzi4VMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIArlM1Zzl4gH/P
r1LzkiOe6fTM9c/kB6h/vLmehCgDPUTQNpchPqueiTuOm48r3Jsg63O6evCg2elLqny90aITvW83
zVmmfL2OsCtJZ5HnQW5NZvB4DjbtgWtYnnsRL/8oWptWDcXDBXC9n6Dl3sv6NVNLJQFkKQsaFOa2
6YFY2TrCkxrf5iTrA136cI6Lb6CZ4iMAnsS0BzL405TBhDjLlFvtZBpF2ZkoQzgCYS+SmQzZnrxf
kRb/rNGHH/vsjxHJFxLkYCzlSp2J91OeXXfaAJ0QzBtLdbVCLglsR49glOs0A/nsY7ZbBv/I61g0
rkyKaYrRCBvLRj8ueqTrpvZRPagIWWkh/R8jAirtUvAtSZBuJUMPCtjwHRppC8XJernooSNho50f
Zgx0dRvVHxRv2XmJRZwFVQRBTsu2URn7jeZ7xXKw3udQZm9g+sycE3Dr4wWv/srHOI8Exso53+nD
sAZS2510BlTx1kpNM9SHHKLfyKmMgpoLYUeVEiZ3p09gieEF82V+cNt7rw+qkIuKkVTyIVafgCgn
Gep8oyT1xHtH5tmaMaIN8p2RonIyuZnj5oBxrVM9zKII8OmHOpAe4/Vf8gDwVWDQ8GTlcprUv0NB
5mxGGQxDRfnr7aTV8VRAq7MEi5bHPwxjLgtNIxTV8IWTjfB6/f8ikPti2Qs+asMAAAAAAAA=


--=-/gqDT+SRkshP8r6BXHU7--


From xen-devel-bounces@lists.xenproject.org Wed May 20 22:58:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 22:58:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314612.1584593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPps3-0005rE-Gl; Wed, 20 May 2026 22:58:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314612.1584593; Wed, 20 May 2026 22:58:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPps3-0005r7-Db; Wed, 20 May 2026 22:58:35 +0000
Received: by outflank-mailman (input) for mailman id 1314612;
 Wed, 20 May 2026 22:58:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <VictorM.Lira@amd.com>) id 1wPps2-0005r1-Lg
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 22:58:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPps1-005R7M-QR
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 00:58:33 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <VictorM.Lira@amd.com>)
 id 6a0e3c72-5cb7-0a2a0a5109dd-0a2a450493aa-20
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:58:33 +0200
Received: from [40.93.198.24]
 (helo=CY7PR03CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <VictorM.Lira@amd.com>)
 id 6a0e3c97-1dec-0a2a45040019-285dc618487b-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:58:33 +0200
Received: from PH8P220CA0001.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:345::9)
 by MN0PR12MB6125.namprd12.prod.outlook.com (2603:10b6:208:3c7::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Wed, 20 May
 2026 22:58:27 +0000
Received: from SA2PEPF00001504.namprd04.prod.outlook.com
 (2603:10b6:510:345:cafe::f5) by PH8P220CA0001.outlook.office365.com
 (2603:10b6:510:345::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.16 via Frontend Transport; Wed, 20
 May 2026 22:58:27 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF00001504.mail.protection.outlook.com (10.167.242.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.11 via Frontend Transport; Wed, 20 May 2026 22:58:27 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Wed, 20 May
 2026 17:58:26 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 20 May
 2026 17:58:26 -0500
Received: from xsjvictlira01-ubuntu-0.mshome.net (10.180.168.240) by
 satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.41 via Frontend Transport; Wed, 20 May 2026 17:58:26 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JlzwQeRL5Ce3DmW4e7pFnX7b0TAtRIASWdfsA8Q46bKbNVayemtmXthwFT3bNc1C+WAMtdY++OPEpF01CJe+a8hwLxTZWZCK2YklJT03xYyayLUxq1JcbT6Pa3tVAkvwUMIsRXRLP2ak7soX2tvJu67/idaq8giU9PDmjkyavAnqHAXxSLWBMt0faN79HSYXQLVApjYU+K/oVcoJ82jBUtMzhZrg5twuvf9Uaal4eBzvuFZmH6393LfYRlb3t9ck1dljsyMcLTIUdLRU+ABYN/qxep9t4h7lRbQRIRwQzhgBDjeecaFG9bep38hCTuU3gVp3rbXEU+cBHouScGNIjg==
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=tiyW2ai+Q1Srlz+/1YbnLpsnAw5fJtpOfsPhS6Mo7Sc=;
 b=YyJeL3lupJK/MiE9Jrmvafp9FKxwtS/psS4FhdszmiDsGloBBcwXOiRA9P5GLrIqLKmmf4mH8uusPH9SFsQaioiQnB25TxxxJcKNpRPPg6WU4/HAiAn2IYnHjKZZ4giD3lbyC7k+oHtGa0vIXJfnSCBQ/mcVTuy5IZJHBm3sfN9l7lPvpmWHxGbAPSyasx24h3aHdFkw2EiE6QUAyDGgFR4QJcwWTaQY3Ctv+dgxUHxdV6wQ8hhJL8EZcrW9NmnYomOiTWjskyu4xwxrmBD3rof+XdUEcJFqs2+c95ON9r5Jbr+4zcH365V7qmQKwYzc+tjy0HUnzqnR+r7HAsZzJA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org 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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tiyW2ai+Q1Srlz+/1YbnLpsnAw5fJtpOfsPhS6Mo7Sc=;
 b=ntv5RhAb9MsYuE+b9DHI8kOkBQonAyzPcEXUJF0HRPei7C+psNdA3UTVfhhfJNnICpzjClk+PDXXvA7lHfm4EERoK98DkSmBPNKMoG2LAjApbpGEYHecVoXmtWfyuYLn4b+7RUqiRnRPmL2vUj31IxQNMgRNnzFri6Ac6htuLTM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Victor Lira <victorm.lira@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v1] automation: edit rules for analyze jobs
Date: Wed, 20 May 2026 22:58:20 +0000
Message-ID: <20260520225820.31550-1-victorm.lira@amd.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: victorm.lira@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00001504:EE_|MN0PR12MB6125:EE_
X-MS-Office365-Filtering-Correlation-Id: 4d00ae99-9de0-4c1c-388d-08deb6c34dc3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|1800799024|376014|82310400026|18002099003|56012099003|11063799006|13003099007|6133799003;
X-Microsoft-Antispam-Message-Info:
	U7YDSG6hiSlwyKCXIF4NnI4718o88Mzw0+zJsbdlcWzb2viV0lUNgB8pOy0ueHArpT3azWJsTF3Ydv/hsVxkunIFlq/dSC+RMlhZ4CsVIfKi/SSt9rfIyxImyhgLquEllzd7dJ6xMd2KnJxupa2lkBS0r7myVmvreMa9mekOe+NRJeeW3duF6INWnDKRXdxh8W8uiaQ1LUqhgWAqgDkq2qR3jrKbUM2UMjBfZn+P8AYj8GEUJZpiAsY8h0fMSx438dBad6yWfleBsh8As4kD9Q8U5dYTwmc7Q6tcko6Y6NbMMcSyTG5EwjC5dMF3jGWrQ8WA3IlxMlVNJCcgnW6+84dkDO3x89onf2k/blpKnDFSD5GfB+f0CPvZdMb5AGTElvzVKwwjBaRvquRdD/3qU7LjGZvjrRE0MldpoDA5cO+I5QHWzQmarih7wd8JhDI6rHQxzR3+LbwJSBwr1fgFATkaIZtigCUaKmeetnzLf/U603Wo/R6+JKDL+yghChkykmpDAcqpk01mBzprSJ2iUOSu6vF4HweM+tpA7PsaH085HMJ08AqS+A06PtTT5soeUIRrLkkKBkbiaWrvwA3Vd6J8RTXG41n82vEM/aphuwMgTInWwh+Y2/hGBl+QuZT0rN3Lp4vguGHurIbTD5oSdak3aUCUNUlvc2fFcdBNvo2P1QMgUEW/X+wfTsWeEMxd22nnZo7DOn26XjLUQaja5lnw9duZTtMzLL8xjhm8P40=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(376014)(82310400026)(18002099003)(56012099003)(11063799006)(13003099007)(6133799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	t1hQuDtFC7v3VmtAuqidXR5JqqTd+RvpiBTb4vmGWkyKjoSoeN/X4eXZDxo6Vlen4FjnHjvcXa1VDfTlLtRCPX4LDpMhflJzFVhYCmfqHlO328gBJ8+WFov4C2DBlPO7oVlC5OgUo9vIJfs9L5OV5qjlxcu3zMRXUf2or0OxmFnqxzIemsQ0Jo/UDuJkWWjem29uuNAnixDZI+NIuYMYCSQW9ZmHJ6ozHIMCo5x/+QVrrdRd622SaLsMQLgfx8INBLdzE9R+dpCiITBLBNaj2OmIOEzStNl+SBLLyKyUhhdRYdRiI8HWr/sm4DDIaai/T6uhOkXacp0w4h7lAeBi6JOREZqS/zrzIZDWaAVt8haOGf0z0PRaQdbxzZg+fKaE1VyLWtjA9iP/4sGT5L/yhreas0kkRkwrXX+Z6nKQvizrH2kDYwHmr62fEksxq3ja
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 22:58:27.2051
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d00ae99-9de0-4c1c-388d-08deb6c34dc3
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00001504.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6125
X-purgate-ID: tlsNG-ebf023/1779317913-42D643FF-F11ED8BE/0/0
X-purgate-type: clean
X-purgate-size: 3286

rewrite analyze jobs rules to simplify the conditions under which the
jobs appear and run

after these changes:
 - to appear, all jobs must be selected (SELECTED_JOBS_ONLY), have token
   (WTOKEN), and be in an allowed path (CI_PROJECT_PATH), this is specified in
   .eclair-analysis
 - the subcategories have their own exceptions, keeping current behavior:
   - ECLAIR_SAFETY/ECLAIR_TESTING can force enable some
   - eclair-testing jobs will not appear outside xen-project/people

This assumes we don't use pipeline sources other than push/api/schedule.

Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
this preseves the current behavior of the -testing jobs running anywhere on
xen-project/people but maybe we want to limit it to whoever is doing the
testing, or in some other way

tested on my own repo xen-project/people/victormlira/xen

push https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541858231
push /eclair-x86_64-amd$|alpine-3.18-gcc$/ https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541859057
push /alpine-3.18-gcc$/ https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541859605
schedule https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541871689
schedule /eclair-x86_64-amd$|alpine-3.18-gcc$/ https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541875599
schudule /alpine-3.18-gcc$/ https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541876512
---
 automation/gitlab-ci/analyze.yaml | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/automation/gitlab-ci/analyze.yaml b/automation/gitlab-ci/analyze.yaml
index b3f99f472d..687af4d452 100644
--- a/automation/gitlab-ci/analyze.yaml
+++ b/automation/gitlab-ci/analyze.yaml
@@ -19,25 +19,25 @@
       - '*.log'
       - '*.json'
     reports:
       codequality: gl-code-quality-report.json
   rules:
-    - if: $WTOKEN == null
-      when: never
-    - when: always
+    - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $WTOKEN
+          && $CI_PROJECT_PATH =~ /^xen-project\/hardware\/.*$/
+      when: on_success
+    - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $WTOKEN
+          && $CI_PROJECT_PATH =~ /^xen-project\/people\/.*$/
+      when: manual
+      allow_failure: true
+
   needs: []

 .eclair-analysis:triggered:
   extends: .eclair-analysis
   rules:
-    - if: $CI_PIPELINE_SOURCE == "schedule"
+    - if: $CI_PIPELINE_SOURCE != "push" && $CI_PIPELINE_SOURCE != "api"
       when: never
-    - if: $CI_JOB_NAME !~ $SELECTED_JOBS_ONLY
-      when: never
-    - if: $WTOKEN && $CI_PROJECT_PATH =~ /^xen-project\/people\/.*$/
-      when: manual
-      allow_failure: true
     - !reference [.eclair-analysis, rules]

 eclair-x86_64-allcode:
   extends: .eclair-analysis:triggered
   variables:
@@ -218,12 +218,10 @@ eclair-ARM64-amd:
 .eclair-analysis:on-schedule:
   extends: .eclair-analysis
   rules:
     - if: $CI_PIPELINE_SOURCE != "schedule"
       when: never
-    - if: $CI_JOB_NAME !~ $SELECTED_JOBS_ONLY
-      when: never
     - !reference [.eclair-analysis, rules]

 eclair-x86_64-allrules:on-schedule:
   extends: .eclair-analysis:on-schedule
   variables:
--
2.54.0


From xen-devel-bounces@lists.xenproject.org Wed May 20 23:02:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 23:02:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314621.1584602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpvS-0007MN-Ul; Wed, 20 May 2026 23:02:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314621.1584602; Wed, 20 May 2026 23:02:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPpvS-0007MG-SB; Wed, 20 May 2026 23:02:06 +0000
Received: by outflank-mailman (input) for mailman id 1314621;
 Wed, 20 May 2026 23:02:06 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPpvR-0007MA-VV
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:02:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPpvR-000a8D-CG
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 01:02:05 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3d59-e002-0a2a0a5209dd-0a2a4504d618-26
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:02:04 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3d6c-1dec-0a2a45040019-5a9b3222d88a-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:02:04 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPpvH-00000007ikJ-3pxF; Wed, 20 May 2026 23:01:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=HkuY5zlrDncQKLllQWWZ8rfybB4YymoG1YSXmtRo0wk=; b=DYgCKqJAuV01wCeoijOeQHyFzp
	eCVeH2ow0VIwOMPxuJ37OmNrkc6hTszDikp1AX4YN4iVsT7jZ+EaJZjzdL0Kol5g+Ci0PpHOsyYdk
	25zjVPdkDqtlK0hzO+QaKBJlQv69RZohqGn1PhH3VF90viyzSXM1vu7r1fupR+JowX80QlWz4JazM
	ljWoTb8ACPM+hp92r6OX216b7g2nQWsLgyLm9o8Q96CC1GxFw48PfdD+HZs2N25t3xsaz2gJRYh7v
	ZcJPbjk8KranAwE4PKqk5J6hOXmuVAsMyyUHK4sPluJw7rm8q1uUWadjLgHpuEt6j6fSR534NLYr0
	zGSmGDCQ==;
Message-ID: <6a621c6ef71670394b3bcbe34cda8c5ae635558e.camel@infradead.org>
Subject: Re: [PATCH v3 25/41] x86/kvmclock: Hook clocksource.suspend/resume
 when kvmclock isn't sched_clock
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 May 2026 00:01:53 +0100
In-Reply-To: <20260515191942.1892718-26-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-26-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-xGIqWxFCaJJI32R6nuFc"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-ebf023/1779318124-409723FF-23F0C67D/0/0
X-purgate-type: clean
X-purgate-size: 7690


--=-xGIqWxFCaJJI32R6nuFc
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Save/restore kvmclock across suspend/resume via clocksource hooks when
> kvmclock isn't being used for sched_clock.=C2=A0 This will allow using kv=
mclock
> as a clocksource (or for wallclock!) without also using it for sched_cloc=
k.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-xGIqWxFCaJJI32R6nuFc
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIzMDE1
M1owLwYJKoZIhvcNAQkEMSIEICiBqRHwycfobkqKmA4uL8ZXD8100ngBVNG/6s3GDF1TMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAUCkd0Gi966hw
7ilIQqPLyebpwmMB9p3m1I9h4YJJ/IKmNGaPnbLYkLYnT8oJvmqa9rqKVLT8sA36+EcLg312UGVT
vY3XkCtJARpplbCbs4773p8cB5XCcu08rO1ByQ8c+RBEi5WuhjYiPkPeiYtMQIH9Squ5qFEUCkSG
YKrjeLzle9LCpcjqvZIGV8Ll+llYO9K4DzzzeP4Su5cW2g3OXGwIc7jdLhhaZBh4fQa/JSsmX0aa
r3P9ahcP7qH8MxSD0D8LX4W2MexJgWUP5Rbf10ev/hqWpOyyMtmJsMJ/jQN10iztSFf/wWwlsQ3d
dqFCDlBvZsmMuAZuDqfjyrd5ZNR4HfwHEIb+OMX/zRxrgBnG2qJXNC1HIQ+igy9XDOZAW3jD+sf6
iSMRYa045cb3sHbnQ4rDqpb/hjyeLLizWfDXzLlmiidFsnrBUZrmkZJbDtiFw/pEpIbFkH93Uy/K
LXLnn5NBlauvD0cOg8jpNGmNGh4WTXQtmS5GoX1BFWHCAzFhei1Pa8MkDnTSRDWQg+MUS+gOcYNl
8faWU6yhMvCGl8R53aSgaaxmnM8XD3Hd2OalmtVjBdfZocH6LNYummksnmahyD+Mj7DkRv8sfkNa
u80tZgytDdiMFdU1Vu0HgGUaqjt5Aa9gf2ci6sayX7tN1WJZODWT7toNbqZyhj8AAAAAAAA=


--=-xGIqWxFCaJJI32R6nuFc--


From xen-devel-bounces@lists.xenproject.org Wed May 20 23:08:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 23:08:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314631.1584611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPq1k-00089a-JZ; Wed, 20 May 2026 23:08:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314631.1584611; Wed, 20 May 2026 23:08:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPq1k-00089T-GL; Wed, 20 May 2026 23:08:36 +0000
Received: by outflank-mailman (input) for mailman id 1314631;
 Wed, 20 May 2026 23:08:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPq1j-00089N-15
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:08:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPq1i-0080rD-D2
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 01:08:34 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3e98-2eae-0a2a0a5409dd-0a2a450b8a20-40
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:08:34 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e3e79-212f-0a2a450b0019-5a9b3222c478-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:06:33 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPpzd-00000007iyd-3KJu; Wed, 20 May 2026 23:06:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=4GQvxYPbI05Z1cj/1WHAcL42C7RPKsGJx4Urkvl1K7Q=; b=k4QnWiSBnVT26KV/1hox8Bc2Zw
	h1ug6i4QDDFzmM1Wh9T7JCcQfBsfGyrAfq6hqZpmaf+jbpJizEBTCL6RJISAN+3C4DxGza0zAwOvS
	pnPO2w4zr+FMIHUZvDFIFMC8THsNlepjNwn9dDI9zBcVCmR9nbPX7YS/HHTjMJALFu5xiGau39JT3
	g3pSSv8rCr8QSFozr5/dF72kXNI2qtwpxkQKvg9P5r6hCk5Mk89exS5Wjqj1q9fsQlmnnoPyG8gla
	BGL+QTW3FsmGeV7rHl1L1F8CZBv7fe2334TuURMV6+GtWXlTdi7Ls8BdIWuFmWHAkQeQ3kT33sdmB
	F4G6SkGA==;
Message-ID: <0f85539ce23881f8a5c5a46c8cc633ef1ec3d162.camel@infradead.org>
Subject: Re: [PATCH v3 25/41] x86/kvmclock: Hook clocksource.suspend/resume
 when kvmclock isn't sched_clock
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 May 2026 00:06:24 +0100
In-Reply-To: <20260515191942.1892718-26-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-26-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-fsxfMtCF9Cp6c6pnaDKT"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-42698a/1779318393-18F66F3B-0FD31CA8/13/0
X-purgate-type: clean
X-purgate-size: 7690


--=-fsxfMtCF9Cp6c6pnaDKT
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Save/restore kvmclock across suspend/resume via clocksource hooks when
> kvmclock isn't being used for sched_clock.=C2=A0 This will allow using kv=
mclock
> as a clocksource (or for wallclock!) without also using it for sched_cloc=
k.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-fsxfMtCF9Cp6c6pnaDKT
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIzMDYy
NFowLwYJKoZIhvcNAQkEMSIEICiBqRHwycfobkqKmA4uL8ZXD8100ngBVNG/6s3GDF1TMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIABBnNQ4d9mtKm
sQ4VDma5YI9qGqW2EdIU1TM/vbCaBpbz0r2tnSIllwWTXuz0HqC/Y3e3yN4dhRrWhDoFtui2bnpR
SKctKGOGmD284FgMxANgIU89R3gN6ECV6Vrc4Kul2PACmSdecAg0HPh7tbg5zbkw6O08eynnozve
bXgXOZ9nkpsWicqt8zMxdZo1E0cz/2+aAxSj0UuIh/FZTpFuz25xXcoyP3X7oxEMIJn/IKsn//+8
2iipgQnMD/hddxztfLXJRIv52drurgDfBCo4Mst8tcOdBD9Vt3ZWlb6QTGuBG7Ys1mjhQvRkR8fH
/yJ4FSiyWSWsCV5PGjYwtkGECIjMN46HCp+z85FFCiVdiFIGss19MNjfnvyQQ2sLYcop+uMnNwQs
+PFzkF92JGWhHZjY9YxL6bej/z/X2yn0FrA83u9cWqNrWgbItc7TEFp6z8Drj4blgQTOjjQkeXaW
Ikd/nJFgxazWSn3IfoTvqpxZoyrcGRUvCDvk69FKbLVP7xIVCUIjZi9892YvaWvFq9iWZYC0pxZ9
Q8Av8LQV6Io1NnwkFd8cb7qSd1QfXXtND3HVrk20Mlv/eSWX01PiAQsvY/em3qbeVNnowD/IjnxN
yIxva5hblIx0Jfr5lYW0t8OfjA/86hHFKXncw+onQ/fO2qoneG1hL108kIlHym4AAAAAAAA=


--=-fsxfMtCF9Cp6c6pnaDKT--


From xen-devel-bounces@lists.xenproject.org Wed May 20 23:20:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 23:20:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314639.1584619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqCw-0002Uv-NN; Wed, 20 May 2026 23:20:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314639.1584619; Wed, 20 May 2026 23:20:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqCw-0002Uo-KX; Wed, 20 May 2026 23:20:10 +0000
Received: by outflank-mailman (input) for mailman id 1314639;
 Wed, 20 May 2026 23:20:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPqCt-0002OX-4O
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:20:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPqCs-00Bg3h-8c
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 01:20:06 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e416b-bab6-0a2a0a5309dd-0a2a4507d388-30
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:20:06 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e41a5-229c-0a2a45070019-5a9b3222e65c-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:20:06 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPqCi-00000007jhq-2nJv; Wed, 20 May 2026 23:19:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=wlYFn8GBTQgMJlzaCY8sTYxsTwtwyZW+CWVEV8yuRNg=; b=mDR37hnk/SJuewmW4PB24JELvz
	L6h2M2SoPugGLQcuTcmZFWo2eA4uAzDkcJ151D8Y0Exm/w8TOKAQU+1rlhmcCto5lW6YB9eu8OOAB
	AL9iswB5MYvnoQpSVQdegij6yVUqfaZnBcwTb2m6Mk7DuGN4ihbJik2XW5/BMEbLoDTT1onNtydf1
	Vlwc1Wpy6qFSiCh5aSxK5Fk4FQc/RGv6mr8v8dEiduA67RGf8FM1Qw8ZgKPBL4kPWnCmHkqhP+KAV
	qIWqftJswGG4HcbR4scZMvtEYBXoeFvPw2Mrp00vjWgnSucSDqiujwb0jQ+7aecNVrMl2EG9nCp/9
	JgMyeXbg==;
Message-ID: <315885e0eb060a1b946aad729195e38e0e0681c8.camel@infradead.org>
Subject: Re: [PATCH v3 26/41] x86/kvmclock: WARN if wall clock is read while
 kvmclock is suspended
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 May 2026 00:19:54 +0100
In-Reply-To: <20260515191942.1892718-27-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-27-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-Z/YBhRco24UWCS5fKwHY"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-ef75cf/1779319206-2015DC48-C9A93793/0/0
X-purgate-type: clean
X-purgate-size: 8044


--=-Z/YBhRco24UWCS5fKwHY
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> WARN if kvmclock is still suspended when its wallclock is read, i.e. when
> the kernel reads its persistent clock.=C2=A0 The wallclock subtly depends=
 on
> the BSP's kvmclock being enabled, and returns garbage if kvmclock is
> disabled.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>


Although I still hate the whole KVM wallclock thing, as the kvmclock
itself is monotonic_raw, so adding that to the wallclock epoch is kind
of wrong.

Maybe the host should updated the wallclock occasionally to keep it up
to date...


Or maybe the guest should prefer the KVM_HC_CLOCK_PAIRING hypercall if
it exists, over kvm-wallclock.

--=-Z/YBhRco24UWCS5fKwHY
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIzMTk1
NFowLwYJKoZIhvcNAQkEMSIEIGLbuq/CsU0ToSEQ1aEAOXW3WPP+6uft6qC5SaR67ZUQMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAjkLHH8Jf38lU
wSCDRPAgehMvDxFtHm+X7S2fNdVMKXC8mttw6/HXDqxu+0XYhwoYogUkfsVE6bC5C0dcvRgYG1zi
a2dAz8bW5uQWISIxKluwmAVMN6gzy7YIX9D65nstoNqeUTQ1jxK2DiZd/p4IjjcpRTspkMp9/6zB
N7Ktcn/IC+LIYyNBCwxC3zM7CY4IEauqzZ36i1b6OBYmAQthmNEv32ZstdtWUYuV6e0UpWcJ4qoV
dISgpPSEj0lC0V/LrQtoXdAcomrxw5YgrzLqbB2p4GJc0DdeeOCaMB9BPkArBUMDYsLy+SWvCscG
YVDcLzH7KISrjxc6GaJsiBI0YGdh73YqyTBpA2vTI94kJohQqiOFfpQKiPBE4CO84v4igHdgndw6
dQyIfpR7o3w3Ogv4+ndlHaiPmwfaLrIvV+pRTM8fvnNjW1Cg9LPQBu5uk9Inh+jUhT7wXCssIdJ/
rA0+VLxvfVsiErJGRF1abebe3JE0FecaB1w0GdeEuR15t/YcwPDTrx+idpZ3DsQz7gwLw3JCKkMe
Ji/+b0/kAWD4wDNv691/mveJG8y0Quhz70Kk7onZJ4jyzHvxWCuanpIoiy5sbb9qilfzwJ8KTuBd
+F1NmbIw6gmZQnfwry///5Gewqy4fHosLeSnEE9RxuV7wSxxvX8LDUNWeF9kyFgAAAAAAAA=


--=-Z/YBhRco24UWCS5fKwHY--


From xen-devel-bounces@lists.xenproject.org Wed May 20 23:29:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 23:29:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314645.1584628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqLT-0003Gy-FB; Wed, 20 May 2026 23:28:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314645.1584628; Wed, 20 May 2026 23:28:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqLT-0003Gr-CT; Wed, 20 May 2026 23:28:59 +0000
Received: by outflank-mailman (input) for mailman id 1314645;
 Wed, 20 May 2026 23:28:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPqLR-0003Gk-8C
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:28:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPqLQ-00ER7h-KB
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 01:28:56 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e43af-5cb7-0a2a0a5109dd-0a2a4509d0ca-4
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:28:56 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e437c-2497-0a2a45090019-5a9b3222cb42-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:27:56 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPqKI-00000007k6c-2Lp0; Wed, 20 May 2026 23:27:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=0UzuSR0lFFJs1N60oRVgd42d8TN/MZ03m79/Hebs0z8=; b=VuBJdjEN0/uT7sj94JtlpAkBp9
	LDdR/TyFbfJKsiSumGNgT740rb91vcwWSgmRTSR6CMc65vxif6nf/7K/BEPlbtJ/mBcP/kyVwe31w
	psHRWYEdc+o3ePDDb7V7xqxOkMLJW0iy4bREcDCdBtlGV+MCOYotcag5SLX6iXZ403/d8/RkHXIKt
	5giThODgbhwwZz+ofkLsuniqBuyHX8Rn9+Hbs1/iYEiV/AC2MtcDgiHdVEgx9pQFQ3uIOLh7Ol32m
	KOeLiGbhvxvVZdnYnFGzgzHH1duez5FrKcjMDRmfVsR8NJ1MiT6W+/q9R9x8nm4nxvgNBVHMQEYYP
	0rSE7VqQ==;
Message-ID: <423b37f056f0d4d596d5f4cc73802fb1079ecf63.camel@infradead.org>
Subject: Re: [PATCH v3 27/41] x86/kvmclock: Enable kvmclock on APs during
 onlining if kvmclock isn't sched_clock
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 May 2026 00:27:44 +0100
In-Reply-To: <20260515191942.1892718-28-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-28-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-QWJZ7uXErmxFQ92K7UlO"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-bad1c0/1779319676-41165A53-7F90EBC1/13/0
X-purgate-type: clean
X-purgate-size: 8752


--=-QWJZ7uXErmxFQ92K7UlO
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> In anticipation of making x86_cpuinit.early_percpu_clock_init(), i.e.
> kvm_setup_secondary_clock(), a dedicated sched_clock hook that will be
> invoked if and only if kvmclock is set as sched_clock, ensure APs enable
> their kvmclock during CPU online.=C2=A0 While a redundant write to the MS=
R is
> technically ok, skip the registration when kvmclock is sched_clock so tha=
t
> it's somewhat obvious that kvmclock *needs* to be enabled during early
> bringup when it's being used as sched_clock.
>=20
> Plumb in the BSP's resume path purely for documentation purposes.=C2=A0 B=
oth
> KVM (as-a-guest) and timekeeping/clocksource hook syscore_ops, and it's
> not super obvious that using KVM's hooks would be flawed.=C2=A0 E.g. it w=
ould
> work today, because KVM's hooks happen to run after/before timekeeping's
> hooks during suspend/resume, but that's sheer dumb luck as the order in
> which syscore_ops are invoked depends entirely on when a subsystem is
> initialized and thus registers its hooks.
>=20
> Opportunsitically make the registration messages more precise to help
> debug issues where kvmclock is enabled too late.

That's a hard word to type, isn't it?

> Opportunstically WARN in kvmclock_{suspend,resume}() to harden against
> future bugs.

So is that :)

> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-QWJZ7uXErmxFQ92K7UlO
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIzMjc0
NFowLwYJKoZIhvcNAQkEMSIEIHCAlb36o7/n/RrOZbQqywYOj+RuHM+I5hLDF45jp+ymMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIArILJY7jhpwC1
FeXC6Ra1q16vpAr1w4cKszzVIiYcnO8F9wgC+g8y8JO1l4GcgCdnI7kLa5yd9jogh/ooPTUHgsp+
p4/jm281Yj2iawrvPUdENmXC8S5dklBva/oh/D2uKOiJjkRwLd8+tYOSA3D7EGRrw1d3+/eeTIfB
Uoaf3k5cj7aUJ/vS/8kB2DXPRY6pg2M3Ooc9DNtMXN5wqklP+tL8zAGTbX8yCDnbkOq7rXpw9zuW
Qg2aqikKvV1rsmEImiMo8Wt9b6/6QNMysLnBIiwEP+r1RjqSRdKwBQFQ6zUKuHeiP9lguS9rm80S
2jxhPJDQs614JAsIo1M+yRTWfyfrfNRCHwGJUOL83Yl+jB3aQ9zVFsQCLrwyS9yMNHJPCujw0ejl
Yu1vz7qQ0g+hQYDRMTca/fsFks8HstYrsXVVbBIWgPsD/H9llTQf2gayJuPWdoTiB0xM7EEeKPDC
JPrFULLunR0gxKucnzYn2WHGeuaTUTmuoSs80wJw33kmWu0HZeL4NWwDdN9m4kLyLg7TtOnSwN9a
u0KzPN64b/5mUhYal/PMWcMPyFkts4lpLFSB9P1Q9mkuQdoDIyY4Ok+cd8CdBfsSWDNvv/WiLj6k
K/YLFsqwLUx6k4FokkR/Ub0qENfQp5prcOTNs5JNn3wpqdxkb5d76hfkd8rBdCsAAAAAAAA=


--=-QWJZ7uXErmxFQ92K7UlO--


From xen-devel-bounces@lists.xenproject.org Wed May 20 23:43:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 23:43:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314652.1584638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqZB-00063e-LN; Wed, 20 May 2026 23:43:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314652.1584638; Wed, 20 May 2026 23:43:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqZB-00063X-Hs; Wed, 20 May 2026 23:43:09 +0000
Received: by outflank-mailman (input) for mailman id 1314652;
 Wed, 20 May 2026 23:43:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPqZA-00063M-6l
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:43:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPqZ9-0085TF-Ik
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 01:43:07 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e46ac-bab6-0a2a0a5309dd-0a2a4508c1d0-26
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:43:06 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e470a-63b5-0a2a45080019-5a9b32228484-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:43:06 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPqYy-00000007kzW-39mi; Wed, 20 May 2026 23:42:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=2aXfXH+xlKwlpiYz6wi553vns4JvXlac96+D4Y0thXo=; b=Oi/AanrVwEcuU6g8apCe7XCOh5
	nA2ayqrirCvIQe6C/yCRxAQBw0R8K2uTTOliPv4ljhvi2s02d7iNYVeyXuANWvyZmq90TToks+8Lv
	+9ko8KUBaD3C97AcoLO/8F+NV74ok/0cww1UL26pVehj/SULxI3NCj+M/+UqjChmyW7jg6vJuUA8H
	IaYXrgWFddYQKFnwa/XazdegbrnrMSoEUhD2DQ5kwlNUt+gMnM539VzW5Pn92b+hv2EuTs094njl5
	OSIFuvzX6p4GZPiwgl60PbcWTj5Zqck7QLhM/3agEtCOuKpZn47Ip8PnsYtEP1Eup5X4Aw3v3JJX/
	mxR97CLQ==;
Message-ID: <6a07dae92cefa8e284ee316acd1134732c3259fe.camel@infradead.org>
Subject: Re: [PATCH v3 28/41] x86/paravirt: Mark
 __paravirt_set_sched_clock() as __init
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 May 2026 00:42:55 +0100
In-Reply-To: <20260515191942.1892718-29-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-29-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-YzWEput9aBYtUvw2DqpS"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-c1860d/1779320586-B5B6CDB1-B1E91096/0/0
X-purgate-type: clean
X-purgate-size: 7765


--=-YzWEput9aBYtUvw2DqpS
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Annotate __paravirt_set_sched_clock() as __init, and make its wrapper
> __always_inline to ensure sanitizers don't result in a non-inline version
> hanging around.=C2=A0 All callers run during __init, and changing sched_c=
lock
> after boot would be all kinds of crazy.
>=20
> No functional change intended.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-YzWEput9aBYtUvw2DqpS
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIzNDI1
NVowLwYJKoZIhvcNAQkEMSIEIN/B1rAKTlCsU7CxX4yxHhfVnhkH57I8R1U1FYWCxJ/GMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAvgeUAyrQbN0B
8XIIjqg4Fs6plXtS6WB17UAXOkoVEojZAgHWJzsrd69+kvwZCtY7l8zqf1a1QXlRSJRhEgnYpwMM
2gcrke1C/NSi48LbBolcG7auezQOXGwNaECV/+fL/7tYjLF1pLpGacT1f/3FmknTzo2/9RdofbYZ
p4H9Y2NeNmO3r4kxxA0gxDVGW6EqdY1DcUWv/3tCmo0V09/9FJbym0ZE/zf9ateZmLdwN2lw0D9+
U6SNrPUTZ2W0nUnsa+6o0sLArKzTSmddDSJvtcWP2N68S/mZhjk2R4p2JdAyhgKe09cdVcOhIFy6
P9KpotKrpox6m5JLQVFGIMCd7Y/Km3cYVLBx5Wsqqf+8uQVssPeMZ49YNf6H5ErfEJ8NLhEaYvJC
BQb3ZvVaMcH9etC6pCBq/3N/YwhNx+v/PE3c+zAgpx9LgmM0ffQO2YbVMNoVt0J3+8saWKFob143
ePy76LvWAkUKOeVQZ2yL3gtF0vhyIgp1jH7j74SESpUMuU2tjEoZ5ymh1fC3D80U+AswBzltLr8x
mVcaTUchVPwN6HblJGdr+h72pV6xKV1Cf/xSNydc24/r+SIvsOt5wOLjM61oBW0lYqA9QqwVE2jC
CQ0oGCBUHqWVXhpsyGgks4VADAF87puZiRJWaS59q+Ld9cm0weXjTDkfF/rtCUYAAAAAAAA=


--=-YzWEput9aBYtUvw2DqpS--


From xen-devel-bounces@lists.xenproject.org Wed May 20 23:44:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 23:44:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314660.1584648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqaU-0006aG-2s; Wed, 20 May 2026 23:44:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314660.1584648; Wed, 20 May 2026 23:44:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqaT-0006a8-VL; Wed, 20 May 2026 23:44:29 +0000
Received: by outflank-mailman (input) for mailman id 1314660;
 Wed, 20 May 2026 23:44:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPqaS-0006a0-K4
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:44:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPqaR-000sNU-WC
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 01:44:28 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e4716-2eae-0a2a0a5409dd-0a2a450cbee2-44
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:44:27 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e475a-62f1-0a2a450c0019-5a9b3222de42-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:44:27 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPqaK-00000007l48-0Tuf; Wed, 20 May 2026 23:44:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=X0zCw9VggqDwYjpyrxBUVYwfytHsLKivEOlU4sByJ9Y=; b=h+XaFM8LtWyTBwkkm146kzpDiU
	1WqJWfaHfkn9U0mCSnCi2lUtr2wv3X+MNS5sFKYGHvH3nVkPO9OJJESVl+aTCFDebY6bnnJ8mEzq8
	MvfRx9Qa2QDidPBjSWpqG8QUNwFF3Zh8W5xVTIdqpDivSWZk/PaPjCLf4kC+EK1D8qSGwfETNF++E
	VkPsHBFXoaD0uraLCxA/UKvVxnAt74nYLgcR25Q1IM3i6hE4rihu3olRuEniFiM92XFFGFp7PQ4UY
	5/YaP8JuMk3fZDfHZcAdAtZcIyEOLb1PGv3JV9f8k4JC7fW97sAiiTzjl+aCFdFNbdgQfkzNRwbPb
	YmWXFTlw==;
Message-ID: <13d79ba1e0450068c9573ccd8deb3ec007aea8d6.camel@infradead.org>
Subject: Re: [PATCH v3 29/41] x86/paravirt: Plumb a return code into
 __paravirt_set_sched_clock()
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 May 2026 00:44:18 +0100
In-Reply-To: <20260515191942.1892718-30-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-30-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-tHXnnzm+pwpZbACXpNw8"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d25034/1779320667-F5585CF5-21972904/0/0
X-purgate-type: clean
X-purgate-size: 8016


--=-tHXnnzm+pwpZbACXpNw8
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Add a return code to __paravirt_set_sched_clock() so that the kernel can
> reject attempts to use a PV sched_clock without breaking the caller.=C2=
=A0 E.g.
> when running as a CoCo VM with a secure TSC, using a PV clock is generall=
y
> undesirable.
>=20
> Note, kvmclock is the only PV clock that does anything "extra" beyond
> simply registering itself as sched_clock, i.e. is the only caller that
> needs to check the new return value.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Oooh... can we use this to reject the kvmclock when we have a stable
and reliable TSC even for non-CoCo guests?

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-tHXnnzm+pwpZbACXpNw8
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIzNDQx
OFowLwYJKoZIhvcNAQkEMSIEICIxrlrIDGBau8EV2kTCO50zMitqmiB+NV5KBzqZe46gMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAhIK8O9Fg9nIr
pnlFAKkqk3T9Uug6GUkfOj0g4L0vW12M71hQBkdb5rh6LvZOa3DU45CBNMg0qt0Fg71ZGHiz4DmJ
vAk6YByByqSpK5/MOpl5eJUd0O6TIauSukh/GrlAgu58aV6kWDVuf0JaAa0vl0CgArLyUpwAMKPV
NVcF9USBRrEcB3AU4m9KRHprSFjb2+9VOiZIRhFmUE8F02ZZOa7zTzitrKrNueeWSbnvM89leYC2
27GGyzHFKw1o819rDXJiZ29C4Je74XA+QCwviMTnVclJUJ0eBy98kYwJcQrJFkWB8E+Jq5m0dRwb
lSxfxFX5jL7VrmIBd2qUuwekFSz3sVicYbqXHTToVoZwS3/geIMpYtjQiPA6PEhNL4paxEiDjrhF
XFobiaH1yNkOrlS0hfI83bqcevPsk1C2MfUUEPrXaJCYnrimta05mNRBQjftUbEJec5KLxAcGwQZ
qpfybFeTPTv/d2tokckOpIbnO1nTEEzNyFLYylxPjoIYs1vUQoWKiNi57kRvnva+9TuarWj7g5Lb
62RG/efpmqY6AYlp5OqNHJ6McpheBub7n6ArJW/fTZwC9G5LVylZ7pWFPtMwDvBPACIzriIhgSCV
zmG+zcO/fCQqQeuAek4JFk4hSLc8puqYQzoRrW+pMEVMtljieLA5vTX71f12bLcAAAAAAAA=


--=-tHXnnzm+pwpZbACXpNw8--


From xen-devel-bounces@lists.xenproject.org Wed May 20 23:46:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 23:46:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314666.1584656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqby-000758-C8; Wed, 20 May 2026 23:46:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314666.1584656; Wed, 20 May 2026 23:46:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqby-000751-9J; Wed, 20 May 2026 23:46:02 +0000
Received: by outflank-mailman (input) for mailman id 1314666;
 Wed, 20 May 2026 23:46:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPqbx-00074v-6E
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:46:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPqbv-00ESfi-Iv
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 01:46:00 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e476a-e002-0a2a0a5209dd-0a2a450cd914-30
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:45:58 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e47b6-62f1-0a2a450c0019-5a9b322298a6-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:45:58 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPqbn-00000007lAX-1Ssh; Wed, 20 May 2026 23:45:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=CDIT4LHc/dZLVw4Pq3pXJSefk+zNidZiNfxkf50m7JQ=; b=KGuP+tGaNAD6aNbiaygC6YoxXR
	QlzegaOK9ix16FZePm7GRz0VG746bKaw14zTeNO1nwOMuJlkrKFNEKsi294S4KrSGUTUIXtd4aTFk
	RMTi5+xDgy9U+JRq6TwtDlwEhPve64oUIlR4FXsXOrO7lGM8z4MnU+UJsoZSJrwVDQgeQ+rrEuMaC
	50l0uJhzmT/zKAt8U4uXCqbEp2G9h3EM8NtFFi8Q/2m7Uzk2GrOIAdxaMNZeHhto86LTwPPpWITI5
	I9754fdkHFA+VhbBMlmZRu2Fdkm7ESX9B9Dq43z1xwtmNyPobNkDZXPtfnv26ThQuusQSnTiIaceU
	XDfftm5A==;
Message-ID: <5eb99994b054700d9924f529448730a7dfabe9ce.camel@infradead.org>
Subject: Re: [PATCH v3 30/41] x86/paravirt: Don't use a PV sched_clock in
 CoCo guests with trusted TSC
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 May 2026 00:45:48 +0100
In-Reply-To: <20260515191942.1892718-31-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-31-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-wo/wRt0Fuqirl5QEKL9D"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d25034/1779320758-E0567CF5-692D74B8/0/0
X-purgate-type: clean
X-purgate-size: 8914


--=-wo/wRt0Fuqirl5QEKL9D
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Silently ignore attempts to switch to a paravirt sched_clock when running
> as a CoCo guest with trusted TSC.=C2=A0 In hand-wavy theory, a misbehavin=
g
> hypervisor could attack the guest by manipulating the PV clock to affect
> guest scheduling in some weird and/or predictable way.=C2=A0 More importa=
ntly,
> reading TSC on such platforms is faster than any PV clock, and sched_cloc=
k
> is all about speed.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

And kvmclock. And Xen.

Are there *any* reasons we'd use a PV sched_clock when the TSC is
usable?

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

> ---
> =C2=A0arch/x86/kernel/tsc.c | 9 +++++++++
> =C2=A01 file changed, 9 insertions(+)
>=20
> diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
> index 3c15fc10e501..ac4abfec1f05 100644
> --- a/arch/x86/kernel/tsc.c
> +++ b/arch/x86/kernel/tsc.c
> @@ -283,6 +283,15 @@ bool using_native_sched_clock(void)
> =C2=A0int __init __paravirt_set_sched_clock(u64 (*func)(void), bool stabl=
e,
> =C2=A0				=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 void (*save)(void), void (*resto=
re)(void))
> =C2=A0{
> +	/*
> +	 * Don't replace TSC with a PV clock when running as a CoCo guest and
> +	 * the TSC is secure/trusted; PV clocks are emulated by the hypervisor,
> +	 * which isn't in the guest's TCB.
> +	 */
> +	if (cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC) ||
> +	=C2=A0=C2=A0=C2=A0 boot_cpu_has(X86_FEATURE_TDX_GUEST))
> +		return -EPERM;
> +
> =C2=A0	if (!stable)
> =C2=A0		clear_sched_clock_stable();
> =C2=A0


--=-wo/wRt0Fuqirl5QEKL9D
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIzNDU0
OFowLwYJKoZIhvcNAQkEMSIEIGmgHQphIWkepxNeSkIpzoIrO9GzP/ClRvCxWhmQ8wpxMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIA2ewjGuWyGaNZ
bLZovo7hAu3o+ITknuPZWs4AiFtqxWMEuCx7NQC0a0zKkqEVzWEI/JVtNF8kWxuVrDLbAfH6iZHN
Z5pPHPY51CoxpzF1FSEsrgpHrGcD8NKK/xW69d0tPWp1OmDo1KpgWXkMc2XexejcEGSNzZ0/ZID8
YPEl3WYGr/YWEabLi6F0GtGiU6y8/YQycyXK+kzX5fZR3M5zraTmoslfcMdW+D02REyXQaCFrquv
gJEuMC5BV846Flx9TQ6hjPRHOs789a5QSdzHsnC0B3jCNsxoKpd8mITtPvvWzIC11nA0nWpKSc5b
zjt6OLk5MjpkOtl4VC8hPg9JcOdm7kHADqG/nNjZgA0rtzhSzpklQNWSTbcLNPTh8HIlKmjq34uE
L2RYSYgTryTwcG5QXCBgdUfhjpLMwwnx+PEETbBOv3ORAc0Fng2nEf9EKnmyIDs3u/oekVH4l6a4
JgumLb+fgfItMwupHeB56Nmt5ZNxWwzlU39e1ouHG2CzxwCecFk85tadGtNlc+CvvLn2/1GY3K9K
mQSNV5m6NoTl2VvUTSMR24MdjvmrVGN5+jrsJdYv+bbRLQ7onFDYYqUJCl+OnazNxiTDRORx/D+6
MEi01hEQPmbjqJZ9E+B+e1X/Y0yqunhqmmKc8JP+Qq1AhF0dTjaoDVdzhB1wf+EAAAAAAAA=


--=-wo/wRt0Fuqirl5QEKL9D--


From xen-devel-bounces@lists.xenproject.org Wed May 20 23:49:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 23:49:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314674.1584665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqfW-0007np-RB; Wed, 20 May 2026 23:49:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314674.1584665; Wed, 20 May 2026 23:49:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqfW-0007ni-Nd; Wed, 20 May 2026 23:49:42 +0000
Received: by outflank-mailman (input) for mailman id 1314674;
 Wed, 20 May 2026 23:49:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <prvs=593727dcc=dwmw@amazon.co.uk>)
 id 1wPqfV-0007nc-Cr
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:49:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPqfU-00ESwt-Os
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 01:49:40 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <prvs=593727dcc=dwmw@amazon.co.uk>)
 id 6a0e488f-5cb7-0a2a0a5109dd-0a2a450aea98-4
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:49:40 +0200
Received: from [13.216.7.111]
 (helo=iad-out-003.esa.us-east-1.outbound.mail-perimeter.amazon.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <prvs=593727dcc=dwmw@amazon.co.uk>)
 id 6a0e4893-56b3-0a2a450a0019-0dd8076f175c-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:49:40 +0200
Received: from ip-10-4-17-41.ec2.internal (HELO
 smtpout.naws.us-east-1.prod.farcaster.email.amazon.dev) ([10.4.17.41])
 by internal-iad-out-003.esa.us-east-1.outbound.mail-perimeter.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2026 23:49:36 +0000
Received: from EX19MTAUEC001.ant.amazon.com [52.94.133.134:2180]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.19.221:2525]
 with esmtp (Farcaster)
 id a8cb2f5c-3fed-4345-bd67-83b9868c096f; Wed, 20 May 2026 23:49:36 +0000 (UTC)
Received: from EX19D001UEB002.ant.amazon.com (10.252.135.17) by
 EX19MTAUEC001.ant.amazon.com (10.252.135.222) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.37;
 Wed, 20 May 2026 23:49:36 +0000
Received: from EX19D001UEB002.ant.amazon.com (10.252.135.17) by
 EX19D001UEB002.ant.amazon.com (10.252.135.17) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.37;
 Wed, 20 May 2026 23:49:35 +0000
Received: from EX19D001UEB002.ant.amazon.com ([fe80::19d6:e954:f18:6292]) by
 EX19D001UEB002.ant.amazon.com ([fe80::19d6:e954:f18:6292%3]) with mapi id
 15.02.2562.037; Wed, 20 May 2026 23:49:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=amazoncorp2 header.d=amazon.co.uk header.i="@amazon.co.uk" header.h="From:To:CC:Subject:Date:Message-ID:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.co.uk; i=@amazon.co.uk; q=dns/txt;
  s=amazoncorp2; t=1779320980; x=1810856980;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to;
  bh=GVMRe+ZWyjYKyN9+/MXWrCIwmzJM84tATrdPquCFMQ8=;
  b=BxJ1rWv1UaadebwiOBdeWH8E/L21GRthAr8mU+XExEvadMHm5yJY2t+E
   qiBQk6zMWVkd3Tz4I40wFTMrMVCw0HN+OIGv0vzt+DDVQ2Z8x/pPfvHPq
   r3BpFKgf8xXk5jqxD1LxO9PHVp2AjwKS7D84OCX4R8AOE57xGpcPIHMDQ
   Owlow89w2dTRO9CVe+4NLWk1Igjox9Es5YClOpr8kdTs6z9edBbgkIP4Z
   qmDVSBrNk7s1YrYsV8VubLgWrlROtHnqbhf8nvX1PvpPbtuOWWWbPLogk
   IK7i7CsDDxsyXoiBlJBeJdrv6qaFGHfBHMxiMBVBz21S1alAQWN46TfX2
   Q==;
X-CSE-ConnectionGUID: GXgbGhW1R9enc/jlf030PQ==
X-CSE-MsgGUID: xSNlsUe2S02Kx07Dkpr5hw==
X-Amazon-filename: smime.p7s
X-IronPort-AV: E=Sophos;i="6.23,245,1770595200"; 
   d="p7s'346?scan'346,208,346";a="19053434"
Content-Type: multipart/mixed; boundary="===============5088877677545521253=="
MIME-Version: 1.0
X-Farcaster-Flow-ID: a8cb2f5c-3fed-4345-bd67-83b9868c096f
From: "Woodhouse, David" <dwmw@amazon.co.uk>
To: "tglx@kernel.org" <tglx@kernel.org>, "longli@microsoft.com"
	<longli@microsoft.com>, "luto@kernel.org" <luto@kernel.org>,
	"alexey.makhalov@broadcom.com" <alexey.makhalov@broadcom.com>,
	"jstultz@google.com" <jstultz@google.com>, "dave.hansen@linux.intel.com"
	<dave.hansen@linux.intel.com>, "ajay.kaher@broadcom.com"
	<ajay.kaher@broadcom.com>, "jan.kiszka@siemens.com" <jan.kiszka@siemens.com>,
	"haiyangz@microsoft.com" <haiyangz@microsoft.com>, "kas@kernel.org"
	<kas@kernel.org>, "seanjc@google.com" <seanjc@google.com>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>, "kys@microsoft.com"
	<kys@microsoft.com>, "decui@microsoft.com" <decui@microsoft.com>,
	"daniel.lezcano@kernel.org" <daniel.lezcano@kernel.org>, "wei.liu@kernel.org"
	<wei.liu@kernel.org>, "peterz@infradead.org" <peterz@infradead.org>,
	"jgross@suse.com" <jgross@suse.com>
CC: "boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>,
	"linux-coco@lists.linux.dev" <linux-coco@lists.linux.dev>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>, "mhklinux@outlook.com"
	<mhklinux@outlook.com>, "thomas.lendacky@amd.com" <thomas.lendacky@amd.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"bcm-kernel-feedback-list@broadcom.com"
	<bcm-kernel-feedback-list@broadcom.com>, "tglx@linutronix.de"
	<tglx@linutronix.de>, "nikunj@amd.com" <nikunj@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"vkuznets@redhat.com" <vkuznets@redhat.com>, "rick.p.edgecombe@intel.com"
	<rick.p.edgecombe@intel.com>, "virtualization@lists.linux.dev"
	<virtualization@lists.linux.dev>, "sboyd@kernel.org" <sboyd@kernel.org>,
	"x86@kernel.org" <x86@kernel.org>
Subject: Re: [PATCH v3 31/41] x86/tsc: Pass KNOWN_FREQ and RELIABLE as params
 to registration
Thread-Topic: [PATCH v3 31/41] x86/tsc: Pass KNOWN_FREQ and RELIABLE as params
 to registration
Thread-Index: AQHc6LNQ1Kwwb6vjAEO0wWcwOC4yeg==
Date: Wed, 20 May 2026 23:49:35 +0000
Message-ID: <8c5590606b5068ca9ea32e054507f89e2b027c96.camel@amazon.co.uk>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-32-seanjc@google.com>
In-Reply-To: <20260515191942.1892718-32-seanjc@google.com>
Accept-Language: en-GB, en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.106.83.30]
MIME-Version: 1.0
X-purgate-ID: tlsNG-4011c0/1779320980-6F95E8B7-BAEA34AE/21/137
X-purgate-type: clean
X-purgate-size: 11091

--===============5088877677545521253==
Content-Language: en-US
Content-Type: multipart/signed; micalg=sha-256;
	protocol="application/pkcs7-signature"; boundary="=-H30ohBc/pVgvJN2jnnL7"

--=-H30ohBc/pVgvJN2jnnL7
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Add a "tsc_properties" set of flags and use it to annotate whether the
> TSC operates at a known and/or reliable frequency when registering a
> paravirtual TSC calibration routine.=C2=A0 Currently, each PV flow manual=
ly
> sets the associated feature flags, but often in haphazard fashion that
> makes it difficult for unfamiliar readers to see the properties of the
> TSC when running under a particular hypervisor.
>=20
> The other, bigger issue with manually setting the feature flags is that
> it decouples the flags from the calibration routine.=C2=A0 E.g. in theory=
, PV
> code could mark the TSC as having a known frequency, but then have its
> PV calibration discarded in favor of a method that doesn't use that known
> frequency.=C2=A0 Passing the TSC properties along with the calibration ro=
utine
> will allow adding sanity checks to guard against replacing a "better"
> calibration routine with a "worse" routine.
>=20
> As a bonus, the flags also give developers working on new PV code a heads
> up that they should at least mark the TSC as having a known frequency.
>=20
> Reviewed-by: Michael Kelley <mhklinux@outlook.com>
> Tested-by: Michael Kelley <mhklinux@outlook.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-H30ohBc/pVgvJN2jnnL7
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCEkYw
ggYQMIID+KADAgECAhBNlCwQ1DvglAnFgS06KwZPMA0GCSqGSIb3DQEBDAUAMIGIMQswCQYDVQQG
EwJVUzETMBEGA1UECBMKTmV3IEplcnNleTEUMBIGA1UEBxMLSmVyc2V5IENpdHkxHjAcBgNVBAoT
FVRoZSBVU0VSVFJVU1QgTmV0d29yazEuMCwGA1UEAxMlVVNFUlRydXN0IFJTQSBDZXJ0aWZpY2F0
aW9uIEF1dGhvcml0eTAeFw0xODExMDIwMDAwMDBaFw0zMDEyMzEyMzU5NTlaMIGWMQswCQYDVQQG
EwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYD
VQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50
aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAyjztlApB/975Rrno1jvm2pK/KxBOqhq8gr2+JhwpKirSzZxQgT9tlC7zl6hn1fXjSo5MqXUf
ItMltrMaXqcESJuK8dtK56NCSrq4iDKaKq9NxOXFmqXX2zN8HHGjQ2b2Xv0v1L5Nk1MQPKA19xeW
QcpGEGFUUd0kN+oHox+L9aV1rjfNiCj3bJk6kJaOPabPi2503nn/ITX5e8WfPnGw4VuZ79Khj1YB
rf24k5Ee1sLTHsLtpiK9OjG4iQRBdq6Z/TlVx/hGAez5h36bBJMxqdHLpdwIUkTqT8se3ed0PewD
ch/8kHPo5fZl5u1B0ecpq/sDN/5sCG52Ds+QU5O5EwIDAQABo4IBZDCCAWAwHwYDVR0jBBgwFoAU
U3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFAnA8vwL2pTbX/4r36iZQs/J4K0AMA4GA1Ud
DwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
BQcDBDARBgNVHSAECjAIMAYGBFUdIAAwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC51c2Vy
dHJ1c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYGCCsGAQUF
BwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3QuY29tL1VTRVJUcnVzdFJT
QUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMA0G
CSqGSIb3DQEBDAUAA4ICAQBBRHUAqznCFfXejpVtMnFojADdF9d6HBA4kMjjsb0XMZHztuOCtKF+
xswhh2GqkW5JQrM8zVlU+A2VP72Ky2nlRA1GwmIPgou74TZ/XTarHG8zdMSgaDrkVYzz1g3nIVO9
IHk96VwsacIvBF8JfqIs+8aWH2PfSUrNxP6Ys7U0sZYx4rXD6+cqFq/ZW5BUfClN/rhk2ddQXyn7
kkmka2RQb9d90nmNHdgKrwfQ49mQ2hWQNDkJJIXwKjYA6VUR/fZUFeCUisdDe/0ABLTI+jheXUV1
eoYV7lNwNBKpeHdNuO6Aacb533JlfeUHxvBz9OfYWUiXu09sMAviM11Q0DuMZ5760CdO2VnpsXP4
KxaYIhvqPqUMWqRdWyn7crItNkZeroXaecG03i3mM7dkiPaCkgocBg0EBYsbZDZ8bsG3a08LwEsL
1Ygz3SBsyECa0waq4hOf/Z85F2w2ZpXfP+w8q4ifwO90SGZZV+HR/Jh6rEaVPDRF/CEGVqR1hiuQ
OZ1YL5ezMTX0ZSLwrymUE0pwi/KDaiYB15uswgeIAcA6JzPFf9pLkAFFWs1QNyN++niFhsM47qod
x/PL+5jR87myx5uYdBEQkkDc+lKB1Wct6ucXqm2EmsaQ0M95QjTmy+rDWjkDYdw3Ms6mSWE3Bn7i
5ZgtwCLXgAIe5W8mybM2JzCCBhUwggT9oAMCAQICEFQru/eJkU7BxeS7T6sWKmYwDQYJKoZIhvcN
AQELBQAwgZYxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNV
BAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE+MDwGA1UEAxM1U2VjdGlnbyBS
U0EgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0EwHhcNMjQxMjE1MDAw
MDAwWhcNMjYxMjE1MjM1OTU5WjAiMSAwHgYJKoZIhvcNAQkBFhFkd213QGFtYXpvbi5jby51azCC
AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANhjs6T4tJ0lcw4+6sawEn2FowmhunUBsnSV
ccB+aA7s3Zd9PZV46CU6phAlCWpKk1yFVcD1Rnc4ux17o4LbUgFXiKrORS0jiF/5Oa0rXG3FISG1
Xdjt8oPKIq+9Z1s2e7Ipi5WWj4AG/xlkH/YMMctL9O8CCRHSrhiChbE/gR57x9PAnt5aeZZ2YWza
GOOeceaZe+u6vHCHITRmknSAnAX/aNoNJNsQCGcfrE83y9iHmP8BFrSRZqajBKlKq8tyJd5FnSwP
H3kSUcQlHOwiIfCRFXP4rpXSZ7nKOEZr3SXH06ADY9gZtrSpwBbuzKWDPGWMRuRnz8ogj/Y6DeU4
2zB/ZAIi5b0BzWf4u0rBEQD5xtpOCxYHc2nXQaFSWu36kP1JaNqElE51OQ92EyVKfW3N6qZcKiBr
VijXY2EtR+/5W9ixRFnEs4nIeb94Sf92UMEeG9ew2yVvcYXXNPaicGnrkESNC19/a8YXxQEZfrmB
eAPT9viQJhn3O+sD4pP0Ss3SjVZc6EO7vfoP07bt2n9YE08XSPkxcyb1J/4t/+AskkKeYFBGdpjg
xd+iLFxjSwBytZuh3+7DuHUfg876WA44ieQDrhHSjuvuAZ1Wb8WUsrpzrcLoYjqFmb/bf6/yyoxl
t31mdgPC+FLc+Yu1BQwXC3JMbrvbFBVTtn5X2EKDAgMBAAGjggHQMIIBzDAfBgNVHSMEGDAWgBQJ
wPL8C9qU21/+K9+omULPyeCtADAdBgNVHQ4EFgQUWvtA1XsSV8xjgfFQL/DUTNIbJu4wDgYDVR0P
AQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwQwUAYDVR0gBEkwRzA6
BgwrBgEEAbIxAQIBCgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zZWN0aWdvLmNvbS9TTUlNRUNQ
UzAJBgdngQwBBQEDMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2Vj
dGlnb1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5jcmwwgYoGCCsGAQUF
BwEBBH4wfDBVBggrBgEFBQcwAoZJaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBQ2xp
ZW50QXV0aGVudGljYXRpb25hbmRTZWN1cmVFbWFpbENBLmNydDAjBggrBgEFBQcwAYYXaHR0cDov
L29jc3Auc2VjdGlnby5jb20wHAYDVR0RBBUwE4ERZHdtd0BhbWF6b24uY28udWswDQYJKoZIhvcN
AQELBQADggEBAED6T+rfP2XPdLfHoCd5n1iGIcYauWfPHRdZN2Tw7a7NEXIkm2yZNizOSpp3NrMi
WOBN13XgqnYLsqdpxJhbjwKczKX50/qfhhkOHtrQ0GRkucybK447Aaul80cZT8T3WG9U9dhl3Ct/
MuyKBWQg3MYlbUT6u4kC9Pk8rd+cR14ttYRUWDKTS2BrL7e8jpNmtCoEakDkMY4MrpoMwM1f4ANV
qZ8cnDntwXq5ormZIksN2DqxsKLmrFyVAONhqSST72ImBfIVWhFRTCF9tTcI5wE/0Skl25FZmSsB
B2LUgecgK7MZyw9Do/b0sYS+8YmA/ujUCqNb0fPJBE/B9vBomhswggYVMIIE/aADAgECAhBUK7v3
iZFOwcXku0+rFipmMA0GCSqGSIb3DQEBCwUAMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0
ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJl
IEVtYWlsIENBMB4XDTI0MTIxNTAwMDAwMFoXDTI2MTIxNTIzNTk1OVowIjEgMB4GCSqGSIb3DQEJ
ARYRZHdtd0BhbWF6b24uY28udWswggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDYY7Ok
+LSdJXMOPurGsBJ9haMJobp1AbJ0lXHAfmgO7N2XfT2VeOglOqYQJQlqSpNchVXA9UZ3OLsde6OC
21IBV4iqzkUtI4hf+TmtK1xtxSEhtV3Y7fKDyiKvvWdbNnuyKYuVlo+ABv8ZZB/2DDHLS/TvAgkR
0q4YgoWxP4Eee8fTwJ7eWnmWdmFs2hjjnnHmmXvrurxwhyE0ZpJ0gJwF/2jaDSTbEAhnH6xPN8vY
h5j/ARa0kWamowSpSqvLciXeRZ0sDx95ElHEJRzsIiHwkRVz+K6V0me5yjhGa90lx9OgA2PYGba0
qcAW7sylgzxljEbkZ8/KII/2Og3lONswf2QCIuW9Ac1n+LtKwREA+cbaTgsWB3Np10GhUlrt+pD9
SWjahJROdTkPdhMlSn1tzeqmXCoga1Yo12NhLUfv+VvYsURZxLOJyHm/eEn/dlDBHhvXsNslb3GF
1zT2onBp65BEjQtff2vGF8UBGX65gXgD0/b4kCYZ9zvrA+KT9ErN0o1WXOhDu736D9O27dp/WBNP
F0j5MXMm9Sf+Lf/gLJJCnmBQRnaY4MXfoixcY0sAcrWbod/uw7h1H4PO+lgOOInkA64R0o7r7gGd
Vm/FlLK6c63C6GI6hZm/23+v8sqMZbd9ZnYDwvhS3PmLtQUMFwtyTG672xQVU7Z+V9hCgwIDAQAB
o4IB0DCCAcwwHwYDVR0jBBgwFoAUCcDy/AvalNtf/ivfqJlCz8ngrQAwHQYDVR0OBBYEFFr7QNV7
ElfMY4HxUC/w1EzSGybuMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoG
CCsGAQUFBwMEMFAGA1UdIARJMEcwOgYMKwYBBAGyMQECAQoCMCowKAYIKwYBBQUHAgEWHGh0dHBz
Oi8vc2VjdGlnby5jb20vU01JTUVDUFMwCQYHZ4EMAQUBAzBaBgNVHR8EUzBRME+gTaBLhklodHRw
Oi8vY3JsLnNlY3RpZ28uY29tL1NlY3RpZ29SU0FDbGllbnRBdXRoZW50aWNhdGlvbmFuZFNlY3Vy
ZUVtYWlsQ0EuY3JsMIGKBggrBgEFBQcBAQR+MHwwVQYIKwYBBQUHMAKGSWh0dHA6Ly9jcnQuc2Vj
dGlnby5jb20vU2VjdGlnb1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5j
cnQwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMBwGA1UdEQQVMBOBEWR3bXdA
YW1hem9uLmNvLnVrMA0GCSqGSIb3DQEBCwUAA4IBAQBA+k/q3z9lz3S3x6AneZ9YhiHGGrlnzx0X
WTdk8O2uzRFyJJtsmTYszkqadzazIljgTdd14Kp2C7KnacSYW48CnMyl+dP6n4YZDh7a0NBkZLnM
myuOOwGrpfNHGU/E91hvVPXYZdwrfzLsigVkINzGJW1E+ruJAvT5PK3fnEdeLbWEVFgyk0tgay+3
vI6TZrQqBGpA5DGODK6aDMDNX+ADVamfHJw57cF6uaK5mSJLDdg6sbCi5qxclQDjYakkk+9iJgXy
FVoRUUwhfbU3COcBP9EpJduRWZkrAQdi1IHnICuzGcsPQ6P29LGEvvGJgP7o1AqjW9HzyQRPwfbw
aJobMYIExDCCBMACAQEwgaswgZYxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNo
ZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE+MDwGA1UE
AxM1U2VjdGlnbyBSU0EgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0EC
EFQru/eJkU7BxeS7T6sWKmYwDQYJYIZIAWUDBAIBBQCgggHpMBgGCSqGSIb3DQEJAzELBgkqhkiG
9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIzNDkzM1owLwYJKoZIhvcNAQkEMSIEIJEqhMdh
TKhnOWoyd+yWlx4qJbO0ULFhlBrv2ctSvxvjMIG8BgkrBgEEAYI3EAQxga4wgaswgZYxCzAJBgNV
BAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGDAW
BgNVBAoTD1NlY3RpZ28gTGltaXRlZDE+MDwGA1UEAxM1U2VjdGlnbyBSU0EgQ2xpZW50IEF1dGhl
bnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0ECEFQru/eJkU7BxeS7T6sWKmYwgb4GCyqGSIb3
DQEJEAILMYGuoIGrMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVy
MRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNl
Y3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBAhBUK7v3
iZFOwcXku0+rFipmMA0GCSqGSIb3DQEBAQUABIICAEvaOoFYZ4UtM5fJ420F/+/uFkyHnDGfXpDU
eqPy8m3xKhKdSzTHQgBYB7k/FGA52PlKF2tuGVll3OZVjZ8z7l7dIpBRchv3mySFQPy+ewQv8K9w
UMaRgC2HepVSTK9hy6HakD7DzVk2S5AQ4ll34uuUvYHCxrUv8F0gX+BWd+OIHrV02gN5Q5bYgmnr
bAf/VvrvocLngu2eXNU8abPnZX5lZUV0PtAyrNMD9JyH1iD72FAqjNxIHoeYKqr3n/FFYf2LuA2d
m9t4GWpGvR7NnCHmnr1O7CtIohGS16ZwhHZCgy2qDA8CnbUiBDzD18ns4vrs/nIHGmo16J1K/gUD
C2sZYJSw/l8uzSmzKVetLDBz8UJOIdOhCTmIxksmeufFhiFtwT5x+/NHWreJlIfigtBGj4TJjwSZ
gOR9uMIR5QGiQMIMmuOfpw55ZCMtseZB7O1a6+pVZS7LNOTmpwBQKeijEvq9Ljei3e0rxLKmRYRz
L+XvmZbVGb56rIz4FcL1XdGEPTvxfV0nCoa+e5bkYGZwi9bJ5DBI/rX2N2muNCykdl136nNaFqWl
9q2qT84vCKypqQuvITiOm1DRPhQ4A3dzQmY9KLBm4IzB4v2dXomCEBt3rV6CQA13YKlNTgtR7UIi
qxjyNU/9pQVjweMhhkkMoQxny7LkZV+BnkvoMY3AAAAAAAAA


--=-H30ohBc/pVgvJN2jnnL7--

--===============5088877677545521253==
Content-Type: multipart/alternative; boundary="===============1156574990222015927=="
MIME-Version: 1.0
Content-Disposition: inline

--===============1156574990222015927==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable




Amazon Development Centre (London) Ltd. Registered in England and Wales wit=
h registration number 04543232 with its registered office at 1 Principal Pl=
ace, Worship Street, London EC2A 2FA, United Kingdom.



--===============1156574990222015927==
Content-Type: text/html; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable

<br><br><br>Amazon Development Centre (London) Ltd.Registered in England an=
d Wales with registration number 04543232 with its registered office at 1 P=
rincipal Place, Worship Street, London EC2A 2FA, United Kingdom.<br><br><br>

--===============1156574990222015927==--

--===============5088877677545521253==--


From xen-devel-bounces@lists.xenproject.org Wed May 20 23:50:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 23:50:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314681.1584673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqgb-0000sv-7E; Wed, 20 May 2026 23:50:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314681.1584673; Wed, 20 May 2026 23:50:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqgb-0000so-4M; Wed, 20 May 2026 23:50:49 +0000
Received: by outflank-mailman (input) for mailman id 1314681;
 Wed, 20 May 2026 23:50:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPqga-0000si-Kf
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:50:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPqga-00Bixg-0a
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 01:50:48 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e48b1-5cb7-0a2a0a5109dd-0a2a4502e7fc-28
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:50:47 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e48d7-af86-0a2a45020019-5a9b3222933c-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:50:47 +0200
Received: from 54-240-197-227.amazon.com ([54.240.197.227]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPqgS-00000007lNX-069X; Wed, 20 May 2026 23:50:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=kjXkTST37i+1gmjQGjhQW588QxcAxvvLMWHi+QpQkZo=; b=a5PC97TD9BKkPl+3e0F6kGlkZ9
	zCbTS/Oo+FoXd4urkvEM1VR8kscN/rFTBlB5Z0VoUPn/tgTVyzLP3mx8Kqx/lgHAjvRXZ5fGmkApq
	jHycwdxF4CqRMaL9mzfuhEvvxFdjD2nnfR9DrD7M3cNRzkUyVcKrDzywFPGi/JDGD933yYoqOAdBU
	deLaoIWGnTDPJb9+jlSQbH9XgV4bfbQ4hfKlIgngYj5XFzOZEjja6vzFMmUl0jpACj4GQlvZ4GMG+
	pNTKyQDM8Bxl7QRUXdZGXFvtIno1U6YAorOg7bqfzc1CJA4JWbFiBWIRS9XHfXE8x4tA/8O/7XQa+
	2P8z9lXA==;
Message-ID: <1e46bbafd280fa70137e530e6694e969f305ab11.camel@infradead.org>
Subject: Re: [PATCH v3 32/41] x86/tsc: Rejects attempts to override TSC
 calibration with lesser routine
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 May 2026 00:50:38 +0100
In-Reply-To: <20260515191942.1892718-33-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-33-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-a1hInw8KTqMYkOpxFKcW"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-720697/1779321047-ABD67161-10E157ED/0/0
X-purgate-type: clean
X-purgate-size: 8202


--=-a1hInw8KTqMYkOpxFKcW
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> When registering a TSC frequency calibration routine, sanity check that
> the incoming routine is as robust as the outgoing routine, and reject the
> incoming routine if the sanity check fails.
>=20
> Because native calibration routines only mark the TSC frequency as known
> and reliable when they actually run, the effective progression of
> capabilities is: None (native) =3D> Known and maybe Reliable (PV) =3D>
> Known and Reliable (CoCo).=C2=A0 Violating that progression for a PV over=
ride
> is relatively benign, but messing up the progression when CoCo is
> involved is more problematic, as it likely means a trusted source of
> information (hardware/firmware) is being discarded in favor of a less
> trusted source (hypervisor).
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-a1hInw8KTqMYkOpxFKcW
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIzNTAz
OFowLwYJKoZIhvcNAQkEMSIEIBvJ/qfmVj2fwwsv2QMnvtWFttCJmGvrB6g8Lrf8IXRoMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIASEEBxDqqHkEh
kkaPZNMCotR0PX37Bvt3ZeOScxa7tTKVFb1JfmMs9T4ZjpjzzpZ1evxrCRgvwU93ZiAI9ImdyETt
1Ap+JbO6z2WgerZeSvhJfe7Kb5alL/QKIILJ2V+aK0C1wROQ+4fU2KJiXclCKXeYIyiWsSiZp7I9
84aA8Vw4boVbnBrpnHsbKOR0jaM9whRP/TeUKfEiD2bzzI3eFQXGpp+Qi12rfaHr9cDMsjIAtB4W
2jvppzKR+mpGeQA5RDo/2/fjVHqzzBhj9dX/w7IZ5A4DmV/GaAwCWaSHFxged3+s1QBBgcmDYXW2
a/xPyECy1wkIE8sJ7XTxHiZNU0oWum/ybXlfg4oNS2CgcVB0Rwe5lJONgt6TNPrgsR9ZD+miMQFA
TIt8No2ZsMTiOklqYWsiWNVJU/Wt8zfqj/MV1byEA6fPhGGCQ44/13r7HvP/5n2EeXlow6kbfjII
A2Kz37LKDtMaQuJVRsgtn8xXIaeb6Ng6fsU5NphkXP3w0gHwo0ER62xTXEor66euQZmTuj0/nlYW
/bUFPaV6gnWWdwfMGuVFXmwGSSKoG1fmoCP6H+ZRN3Ox1MarCP2HQqHdsTrmdfxKR7n2uvmRHzvR
nvtdV/hgiNhTYjqJEXbMTdEl3YvJkLDe3ZcqUfgyy4/MLaRL+9MFQWYSs8mj8ScAAAAAAAA=


--=-a1hInw8KTqMYkOpxFKcW--


From xen-devel-bounces@lists.xenproject.org Wed May 20 23:51:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 23:51:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314686.1584683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqhg-0001ND-HY; Wed, 20 May 2026 23:51:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314686.1584683; Wed, 20 May 2026 23:51:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqhg-0001N6-Dt; Wed, 20 May 2026 23:51:56 +0000
Received: by outflank-mailman (input) for mailman id 1314686;
 Wed, 20 May 2026 23:51:56 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPqhf-0001My-U4
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:51:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPqhf-000fhM-Aw
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 01:51:55 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e48f0-e002-0a2a0a5209dd-0a2a4509d28a-16
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:51:54 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e491a-2497-0a2a45090019-5a9b3222d046-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:51:54 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPqhX-00000007lRX-0Plz; Wed, 20 May 2026 23:51:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=qR+Yt9w79nLl/vKvoVluqJPTCmCSxA09aP7VAr8rnyY=; b=GSaT4OmU8kCyicP8KRwwNSqhBH
	HnEbIU6ancVWsUENun739xiy5/VgMvV8SNDhb07i09YdgCXfHtdTdk9SIahJGQvI8Hsg61a2AC2yc
	8hUqMq8vnthSEqscSfZM4DWl/E7EGILkh8xa4N9TNag/3+ZwpyWB4DAMkwDEgQuLUr1S+wAeZ/K8S
	zP7n+NVHOTr20imXsHeiPHoe0Ku2i5XPw7mDFikvIpxEfPI2juH468hLtYmMpaO4TLIe9EULc7fJD
	dLWZdeafhT+iHYXU/yYaPJHM8XIabCVBx3yYRUPzqxD5smwws5FMXPwmdPmonOf9vEWEMvDrzxopq
	f+Uw3GNw==;
Message-ID: <97e3657ea14fca4b1fffd8c845b71b7a2f71785b.camel@infradead.org>
Subject: Re: [PATCH v3 33/41] x86/kvmclock: Mark TSC as reliable when it's
 constant and nonstop
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 May 2026 00:51:45 +0100
In-Reply-To: <20260515191942.1892718-34-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-34-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-edWqDmeYeCUKdM6/JTWj"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-bad1c0/1779321114-43979A53-31F672E5/0/0
X-purgate-type: clean
X-purgate-size: 8350


--=-edWqDmeYeCUKdM6/JTWj
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Mark the TSC as reliable if the hypervisor (KVM) has enumerated the TSC
> as constant and nonstop, and the admin hasn't explicitly marked the TSC
> as unstable.=C2=A0 Like most (all?) virtualization setups, any secondary
> clocksource that's used as a watchdog is guaranteed to be less reliable
> than a constant, nonstop TSC, as all clocksources the kernel uses as a
> watchdog are all but guaranteed to be emulated when running as a KVM
> guest.=C2=A0 I.e. any observed discrepancies between the TSC and watchdog=
 will
> be due to jitter in the watchdog.
>=20
> This is especially true for KVM, as the watchdog clocksource is usually
> emulated in host userspace, i.e. reading the clock incurs a roundtrip
> cost of thousands of cycles.
>=20
> Marking the TSC reliable addresses a flaw where the TSC will occasionally
> be marked unstable if the host is under moderate/heavy load.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-edWqDmeYeCUKdM6/JTWj
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIzNTE0
NVowLwYJKoZIhvcNAQkEMSIEICVHQ8rOsGXh3jMW98CaskggGKaDBqAZIEhOyGMJ2PfSMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAlYop/f2lDF2V
vUY/tRAU9vEDeJo27Evh70+hOdl3jj4jI9FIMusCWT7aHcTZCBNG7T6mCf6gWeyfIruA5ZrBxkAe
A5TjywPssse2sO8Y4HAN7sMRgAMIhjL0KKquf1xP4TDdHGxIirIOJSD1R5zhk7ZSkACWr0DETcQ/
ffwadfYusVz8lwIacfV67oVDK1wWlwUPXKZTGWoT61ACURw40zTNf1sWHOj0AJMVcCFK9OBuIi4D
98CEvlEFxCSvXchCBw6o9+VB4nlZfvcYCG0ZerlPbrHkzZ4KvGu5eHF9tMU/Nm8gQXMwFZrN/Of5
OOuUkdr8OLBkBinWKJhqxeaqEcNk4m1ROJQ5CX7szJCeT+5HXFpSbBpXBU/z5Vsr6TbAjDTeIZKc
7R2g7uONaqK0dctg/mxVMudXFOBApLE9247bgsZISLlC2vd3+KzDq00ZQ6q15NjRUdahVZYu3QPe
4Vy3EoNKJOlU6EqMuSBdiXsT63mGy8VRpR+jqFV/luAbH4Mlh+PzNmel7X1A8G0u14pkQFPf1+ow
cb15gAR2wt1t56TZX2N9SqGPFQ6NWKn3ioucrAYjF9gi+BUvKFlcONVYqzAGrWg75xqJGQTuihoD
ciFhWqHS8VPCWXelgCR5kJdelYRmN6Bf2wB4+WWj5rF8MBgDZ4GVbJVk6zaOXqcAAAAAAAA=


--=-edWqDmeYeCUKdM6/JTWj--


From xen-devel-bounces@lists.xenproject.org Wed May 20 23:55:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 23:55:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314696.1584691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqkz-0001vR-UJ; Wed, 20 May 2026 23:55:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314696.1584691; Wed, 20 May 2026 23:55:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqkz-0001vK-Ri; Wed, 20 May 2026 23:55:21 +0000
Received: by outflank-mailman (input) for mailman id 1314696;
 Wed, 20 May 2026 23:55:21 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <prvs=593727dcc=dwmw@amazon.co.uk>)
 id 1wPqkz-0001vE-65
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:55:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPqky-000gAr-CV
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 01:55:20 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <prvs=593727dcc=dwmw@amazon.co.uk>)
 id 6a0e492a-5cb7-0a2a0a5109dd-0a2a450bb5a0-34
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:55:20 +0200
Received: from [13.216.7.111]
 (helo=iad-out-003.esa.us-east-1.outbound.mail-perimeter.amazon.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <prvs=593727dcc=dwmw@amazon.co.uk>)
 id 6a0e49e7-212f-0a2a450b0019-0dd8076f8a39-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:55:20 +0200
Received: from ip-10-4-7-229.ec2.internal (HELO
 smtpout.naws.us-east-1.prod.farcaster.email.amazon.dev) ([10.4.7.229])
 by internal-iad-out-003.esa.us-east-1.outbound.mail-perimeter.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2026 23:55:18 +0000
Received: from EX19MTAUEA001.ant.amazon.com [72.21.196.67:28033]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.46.69:2525]
 with esmtp (Farcaster)
 id 8c68160d-41e6-48e7-9eb5-4396a7d7f474; Wed, 20 May 2026 23:55:18 +0000 (UTC)
Received: from EX19D001UEB004.ant.amazon.com (10.252.135.58) by
 EX19MTAUEA001.ant.amazon.com (10.252.134.203) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.37;
 Wed, 20 May 2026 23:55:18 +0000
Received: from EX19D001UEB002.ant.amazon.com (10.252.135.17) by
 EX19D001UEB004.ant.amazon.com (10.252.135.58) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.37;
 Wed, 20 May 2026 23:55:17 +0000
Received: from EX19D001UEB002.ant.amazon.com ([fe80::19d6:e954:f18:6292]) by
 EX19D001UEB002.ant.amazon.com ([fe80::19d6:e954:f18:6292%3]) with mapi id
 15.02.2562.037; Wed, 20 May 2026 23:55:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=amazoncorp2 header.d=amazon.co.uk header.i="@amazon.co.uk" header.h="From:To:CC:Subject:Date:Message-ID:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.co.uk; i=@amazon.co.uk; q=dns/txt;
  s=amazoncorp2; t=1779321320; x=1810857320;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to;
  bh=QOtwzUr7+lfwKaRNJ9pATQCvVFEuRpbNIx1tUU9BEl0=;
  b=r6Ir7/a/jFtyiS8rjH9F3tQZ8/KGkAWADN3rJ+MD21fvJw+QR/iJSU9p
   4YZtfaj+xA/eiVSnHLBmUrzbQ9q7ttWNaqC8eKlq30m70vLOsDzczIe84
   ovG6nwzLSau33I6qoS7pZNV2dyl4WXcF7Soa5hEZKmfAaPAVRs1woCZwB
   N3UeXEWqKatMRVQ+6IpoQLtEQ58Srv25g0bi8sZw0rmQ/HaNVmS5Qrqev
   sTkgZdMsXFEw3/97WU0/+N9HHHf2h2ChI/oimjYV8t6Gqw8mnzkRz0Asl
   X8peylb7fLR7onqy2Qdo6F3uOF9WAEdkwJHYNp/vHT+ec24EyClmIwlWZ
   g==;
X-CSE-ConnectionGUID: iLoCN/ueTcyJJGFSEHvOiw==
X-CSE-MsgGUID: sX4IzYzpRyW2p6SqwvqUoA==
X-Amazon-filename: smime.p7s
X-IronPort-AV: E=Sophos;i="6.23,245,1770595200"; 
   d="p7s'346?scan'346,208,346";a="19053835"
Content-Type: multipart/mixed; boundary="===============2713424259984533892=="
MIME-Version: 1.0
X-Farcaster-Flow-ID: 8c68160d-41e6-48e7-9eb5-4396a7d7f474
From: "Woodhouse, David" <dwmw@amazon.co.uk>
To: "tglx@kernel.org" <tglx@kernel.org>, "longli@microsoft.com"
	<longli@microsoft.com>, "luto@kernel.org" <luto@kernel.org>,
	"alexey.makhalov@broadcom.com" <alexey.makhalov@broadcom.com>,
	"jstultz@google.com" <jstultz@google.com>, "dave.hansen@linux.intel.com"
	<dave.hansen@linux.intel.com>, "ajay.kaher@broadcom.com"
	<ajay.kaher@broadcom.com>, "jan.kiszka@siemens.com" <jan.kiszka@siemens.com>,
	"haiyangz@microsoft.com" <haiyangz@microsoft.com>, "kas@kernel.org"
	<kas@kernel.org>, "seanjc@google.com" <seanjc@google.com>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>, "kys@microsoft.com"
	<kys@microsoft.com>, "decui@microsoft.com" <decui@microsoft.com>,
	"daniel.lezcano@kernel.org" <daniel.lezcano@kernel.org>, "wei.liu@kernel.org"
	<wei.liu@kernel.org>, "peterz@infradead.org" <peterz@infradead.org>,
	"jgross@suse.com" <jgross@suse.com>
CC: "boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>,
	"linux-coco@lists.linux.dev" <linux-coco@lists.linux.dev>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>, "mhklinux@outlook.com"
	<mhklinux@outlook.com>, "thomas.lendacky@amd.com" <thomas.lendacky@amd.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"bcm-kernel-feedback-list@broadcom.com"
	<bcm-kernel-feedback-list@broadcom.com>, "tglx@linutronix.de"
	<tglx@linutronix.de>, "nikunj@amd.com" <nikunj@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"vkuznets@redhat.com" <vkuznets@redhat.com>, "rick.p.edgecombe@intel.com"
	<rick.p.edgecombe@intel.com>, "virtualization@lists.linux.dev"
	<virtualization@lists.linux.dev>, "sboyd@kernel.org" <sboyd@kernel.org>,
	"x86@kernel.org" <x86@kernel.org>
Subject: Re: [PATCH v3 36/41] x86/kvmclock: Get local APIC bus frequency from
 PV CPUID Timing Info
Thread-Topic: [PATCH v3 36/41] x86/kvmclock: Get local APIC bus frequency from
 PV CPUID Timing Info
Thread-Index: AQHc6LQcnp8Xs/NajUaP0pKiNdfTxw==
Date: Wed, 20 May 2026 23:55:17 +0000
Message-ID: <7489ff3cc1ff402bf0ade38272fc52dcbcc75fc1.camel@amazon.co.uk>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-37-seanjc@google.com>
In-Reply-To: <20260515191942.1892718-37-seanjc@google.com>
Accept-Language: en-GB, en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.106.83.30]
MIME-Version: 1.0
X-purgate-ID: tlsNG-42698a/1779321320-13D7FF3B-A1872DFC/21/137
X-purgate-type: clean
X-purgate-size: 10352

--===============2713424259984533892==
Content-Language: en-US
Content-Type: multipart/signed; micalg=sha-256;
	protocol="application/pkcs7-signature"; boundary="=-NifHmF9Py2QHfKflgV2k"

--=-NifHmF9Py2QHfKflgV2k
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> When running as a KVM guest with kvmclock support enabled, stuff the APIC
> timer period/frequency with the local APIC bus frequency reported in
> CPUID.0x40000010.EBX instead of trying to calibrate/guess the frequency.
>=20
> See Documentation/virt/kvm/x86/cpuid.rst for details.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

I still don't much like the way this is done inside kvm_get_tsc_khz().

We also probably ought to be looking for the timing leaf on other
hypervisors including VMware and probably Bhyve too. Should it be done
somewhere else?



--=-NifHmF9Py2QHfKflgV2k
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCEkYw
ggYQMIID+KADAgECAhBNlCwQ1DvglAnFgS06KwZPMA0GCSqGSIb3DQEBDAUAMIGIMQswCQYDVQQG
EwJVUzETMBEGA1UECBMKTmV3IEplcnNleTEUMBIGA1UEBxMLSmVyc2V5IENpdHkxHjAcBgNVBAoT
FVRoZSBVU0VSVFJVU1QgTmV0d29yazEuMCwGA1UEAxMlVVNFUlRydXN0IFJTQSBDZXJ0aWZpY2F0
aW9uIEF1dGhvcml0eTAeFw0xODExMDIwMDAwMDBaFw0zMDEyMzEyMzU5NTlaMIGWMQswCQYDVQQG
EwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYD
VQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50
aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAyjztlApB/975Rrno1jvm2pK/KxBOqhq8gr2+JhwpKirSzZxQgT9tlC7zl6hn1fXjSo5MqXUf
ItMltrMaXqcESJuK8dtK56NCSrq4iDKaKq9NxOXFmqXX2zN8HHGjQ2b2Xv0v1L5Nk1MQPKA19xeW
QcpGEGFUUd0kN+oHox+L9aV1rjfNiCj3bJk6kJaOPabPi2503nn/ITX5e8WfPnGw4VuZ79Khj1YB
rf24k5Ee1sLTHsLtpiK9OjG4iQRBdq6Z/TlVx/hGAez5h36bBJMxqdHLpdwIUkTqT8se3ed0PewD
ch/8kHPo5fZl5u1B0ecpq/sDN/5sCG52Ds+QU5O5EwIDAQABo4IBZDCCAWAwHwYDVR0jBBgwFoAU
U3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFAnA8vwL2pTbX/4r36iZQs/J4K0AMA4GA1Ud
DwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
BQcDBDARBgNVHSAECjAIMAYGBFUdIAAwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC51c2Vy
dHJ1c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYGCCsGAQUF
BwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3QuY29tL1VTRVJUcnVzdFJT
QUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMA0G
CSqGSIb3DQEBDAUAA4ICAQBBRHUAqznCFfXejpVtMnFojADdF9d6HBA4kMjjsb0XMZHztuOCtKF+
xswhh2GqkW5JQrM8zVlU+A2VP72Ky2nlRA1GwmIPgou74TZ/XTarHG8zdMSgaDrkVYzz1g3nIVO9
IHk96VwsacIvBF8JfqIs+8aWH2PfSUrNxP6Ys7U0sZYx4rXD6+cqFq/ZW5BUfClN/rhk2ddQXyn7
kkmka2RQb9d90nmNHdgKrwfQ49mQ2hWQNDkJJIXwKjYA6VUR/fZUFeCUisdDe/0ABLTI+jheXUV1
eoYV7lNwNBKpeHdNuO6Aacb533JlfeUHxvBz9OfYWUiXu09sMAviM11Q0DuMZ5760CdO2VnpsXP4
KxaYIhvqPqUMWqRdWyn7crItNkZeroXaecG03i3mM7dkiPaCkgocBg0EBYsbZDZ8bsG3a08LwEsL
1Ygz3SBsyECa0waq4hOf/Z85F2w2ZpXfP+w8q4ifwO90SGZZV+HR/Jh6rEaVPDRF/CEGVqR1hiuQ
OZ1YL5ezMTX0ZSLwrymUE0pwi/KDaiYB15uswgeIAcA6JzPFf9pLkAFFWs1QNyN++niFhsM47qod
x/PL+5jR87myx5uYdBEQkkDc+lKB1Wct6ucXqm2EmsaQ0M95QjTmy+rDWjkDYdw3Ms6mSWE3Bn7i
5ZgtwCLXgAIe5W8mybM2JzCCBhUwggT9oAMCAQICEFQru/eJkU7BxeS7T6sWKmYwDQYJKoZIhvcN
AQELBQAwgZYxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNV
BAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE+MDwGA1UEAxM1U2VjdGlnbyBS
U0EgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0EwHhcNMjQxMjE1MDAw
MDAwWhcNMjYxMjE1MjM1OTU5WjAiMSAwHgYJKoZIhvcNAQkBFhFkd213QGFtYXpvbi5jby51azCC
AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANhjs6T4tJ0lcw4+6sawEn2FowmhunUBsnSV
ccB+aA7s3Zd9PZV46CU6phAlCWpKk1yFVcD1Rnc4ux17o4LbUgFXiKrORS0jiF/5Oa0rXG3FISG1
Xdjt8oPKIq+9Z1s2e7Ipi5WWj4AG/xlkH/YMMctL9O8CCRHSrhiChbE/gR57x9PAnt5aeZZ2YWza
GOOeceaZe+u6vHCHITRmknSAnAX/aNoNJNsQCGcfrE83y9iHmP8BFrSRZqajBKlKq8tyJd5FnSwP
H3kSUcQlHOwiIfCRFXP4rpXSZ7nKOEZr3SXH06ADY9gZtrSpwBbuzKWDPGWMRuRnz8ogj/Y6DeU4
2zB/ZAIi5b0BzWf4u0rBEQD5xtpOCxYHc2nXQaFSWu36kP1JaNqElE51OQ92EyVKfW3N6qZcKiBr
VijXY2EtR+/5W9ixRFnEs4nIeb94Sf92UMEeG9ew2yVvcYXXNPaicGnrkESNC19/a8YXxQEZfrmB
eAPT9viQJhn3O+sD4pP0Ss3SjVZc6EO7vfoP07bt2n9YE08XSPkxcyb1J/4t/+AskkKeYFBGdpjg
xd+iLFxjSwBytZuh3+7DuHUfg876WA44ieQDrhHSjuvuAZ1Wb8WUsrpzrcLoYjqFmb/bf6/yyoxl
t31mdgPC+FLc+Yu1BQwXC3JMbrvbFBVTtn5X2EKDAgMBAAGjggHQMIIBzDAfBgNVHSMEGDAWgBQJ
wPL8C9qU21/+K9+omULPyeCtADAdBgNVHQ4EFgQUWvtA1XsSV8xjgfFQL/DUTNIbJu4wDgYDVR0P
AQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwQwUAYDVR0gBEkwRzA6
BgwrBgEEAbIxAQIBCgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zZWN0aWdvLmNvbS9TTUlNRUNQ
UzAJBgdngQwBBQEDMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2Vj
dGlnb1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5jcmwwgYoGCCsGAQUF
BwEBBH4wfDBVBggrBgEFBQcwAoZJaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBQ2xp
ZW50QXV0aGVudGljYXRpb25hbmRTZWN1cmVFbWFpbENBLmNydDAjBggrBgEFBQcwAYYXaHR0cDov
L29jc3Auc2VjdGlnby5jb20wHAYDVR0RBBUwE4ERZHdtd0BhbWF6b24uY28udWswDQYJKoZIhvcN
AQELBQADggEBAED6T+rfP2XPdLfHoCd5n1iGIcYauWfPHRdZN2Tw7a7NEXIkm2yZNizOSpp3NrMi
WOBN13XgqnYLsqdpxJhbjwKczKX50/qfhhkOHtrQ0GRkucybK447Aaul80cZT8T3WG9U9dhl3Ct/
MuyKBWQg3MYlbUT6u4kC9Pk8rd+cR14ttYRUWDKTS2BrL7e8jpNmtCoEakDkMY4MrpoMwM1f4ANV
qZ8cnDntwXq5ormZIksN2DqxsKLmrFyVAONhqSST72ImBfIVWhFRTCF9tTcI5wE/0Skl25FZmSsB
B2LUgecgK7MZyw9Do/b0sYS+8YmA/ujUCqNb0fPJBE/B9vBomhswggYVMIIE/aADAgECAhBUK7v3
iZFOwcXku0+rFipmMA0GCSqGSIb3DQEBCwUAMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0
ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJl
IEVtYWlsIENBMB4XDTI0MTIxNTAwMDAwMFoXDTI2MTIxNTIzNTk1OVowIjEgMB4GCSqGSIb3DQEJ
ARYRZHdtd0BhbWF6b24uY28udWswggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDYY7Ok
+LSdJXMOPurGsBJ9haMJobp1AbJ0lXHAfmgO7N2XfT2VeOglOqYQJQlqSpNchVXA9UZ3OLsde6OC
21IBV4iqzkUtI4hf+TmtK1xtxSEhtV3Y7fKDyiKvvWdbNnuyKYuVlo+ABv8ZZB/2DDHLS/TvAgkR
0q4YgoWxP4Eee8fTwJ7eWnmWdmFs2hjjnnHmmXvrurxwhyE0ZpJ0gJwF/2jaDSTbEAhnH6xPN8vY
h5j/ARa0kWamowSpSqvLciXeRZ0sDx95ElHEJRzsIiHwkRVz+K6V0me5yjhGa90lx9OgA2PYGba0
qcAW7sylgzxljEbkZ8/KII/2Og3lONswf2QCIuW9Ac1n+LtKwREA+cbaTgsWB3Np10GhUlrt+pD9
SWjahJROdTkPdhMlSn1tzeqmXCoga1Yo12NhLUfv+VvYsURZxLOJyHm/eEn/dlDBHhvXsNslb3GF
1zT2onBp65BEjQtff2vGF8UBGX65gXgD0/b4kCYZ9zvrA+KT9ErN0o1WXOhDu736D9O27dp/WBNP
F0j5MXMm9Sf+Lf/gLJJCnmBQRnaY4MXfoixcY0sAcrWbod/uw7h1H4PO+lgOOInkA64R0o7r7gGd
Vm/FlLK6c63C6GI6hZm/23+v8sqMZbd9ZnYDwvhS3PmLtQUMFwtyTG672xQVU7Z+V9hCgwIDAQAB
o4IB0DCCAcwwHwYDVR0jBBgwFoAUCcDy/AvalNtf/ivfqJlCz8ngrQAwHQYDVR0OBBYEFFr7QNV7
ElfMY4HxUC/w1EzSGybuMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoG
CCsGAQUFBwMEMFAGA1UdIARJMEcwOgYMKwYBBAGyMQECAQoCMCowKAYIKwYBBQUHAgEWHGh0dHBz
Oi8vc2VjdGlnby5jb20vU01JTUVDUFMwCQYHZ4EMAQUBAzBaBgNVHR8EUzBRME+gTaBLhklodHRw
Oi8vY3JsLnNlY3RpZ28uY29tL1NlY3RpZ29SU0FDbGllbnRBdXRoZW50aWNhdGlvbmFuZFNlY3Vy
ZUVtYWlsQ0EuY3JsMIGKBggrBgEFBQcBAQR+MHwwVQYIKwYBBQUHMAKGSWh0dHA6Ly9jcnQuc2Vj
dGlnby5jb20vU2VjdGlnb1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5j
cnQwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMBwGA1UdEQQVMBOBEWR3bXdA
YW1hem9uLmNvLnVrMA0GCSqGSIb3DQEBCwUAA4IBAQBA+k/q3z9lz3S3x6AneZ9YhiHGGrlnzx0X
WTdk8O2uzRFyJJtsmTYszkqadzazIljgTdd14Kp2C7KnacSYW48CnMyl+dP6n4YZDh7a0NBkZLnM
myuOOwGrpfNHGU/E91hvVPXYZdwrfzLsigVkINzGJW1E+ruJAvT5PK3fnEdeLbWEVFgyk0tgay+3
vI6TZrQqBGpA5DGODK6aDMDNX+ADVamfHJw57cF6uaK5mSJLDdg6sbCi5qxclQDjYakkk+9iJgXy
FVoRUUwhfbU3COcBP9EpJduRWZkrAQdi1IHnICuzGcsPQ6P29LGEvvGJgP7o1AqjW9HzyQRPwfbw
aJobMYIExDCCBMACAQEwgaswgZYxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNo
ZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE+MDwGA1UE
AxM1U2VjdGlnbyBSU0EgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0EC
EFQru/eJkU7BxeS7T6sWKmYwDQYJYIZIAWUDBAIBBQCgggHpMBgGCSqGSIb3DQEJAzELBgkqhkiG
9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIzNTUxNlowLwYJKoZIhvcNAQkEMSIEIBRvcltE
IypFvdd0aOyGmsovDFdoMV6T8G38c2RQC0EOMIG8BgkrBgEEAYI3EAQxga4wgaswgZYxCzAJBgNV
BAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGDAW
BgNVBAoTD1NlY3RpZ28gTGltaXRlZDE+MDwGA1UEAxM1U2VjdGlnbyBSU0EgQ2xpZW50IEF1dGhl
bnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0ECEFQru/eJkU7BxeS7T6sWKmYwgb4GCyqGSIb3
DQEJEAILMYGuoIGrMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVy
MRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNl
Y3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBAhBUK7v3
iZFOwcXku0+rFipmMA0GCSqGSIb3DQEBAQUABIICAIdYJHoC5fCBibABvDmnleIULeUS8CW8NWSH
KDHSjn+vyj55K10tJ1E6epJl4Zkj59C50Xo/qRYiuznJax6zzM+gE5G2rvS/psRj4twLOahMvz1P
0K9Fglvfrz4tDQuaa26bS8zVuQ/B11ORiUNOwyERr0Swl1/zCbhLnJ05laL+vQurbmD9riC7yT19
yhEEvIerI2Yz6AyPPf3GxmbJ03jOWiHXnS/dY/vBl58UeUOafqVrkPrHuAqdlIslmDYgJIEZ4agd
SAcbzfOX43DEqCEqB6oJ6i6TdJxxVo1VWS3l87Du3WuDkFaaFQ/nwBgAtmnj0xXNWnQGBl0HFQGn
3wZVcTg2z+WU/UbndIT9wy0k8WCN6izSor8j6HeGEYtZn32YNqjdHxt3ZMi+tRw2MZ7w5q1lgt/X
0FlxB+XPmO3eZWH4ulZ8WYl8bJQ2ndol7jg+F8RhQtCTA3OvAY56oBQbWAfcZjFsSZ6HBtC+31kL
KlfPVmz2ltIN5fkA8zJg4F+BXv0nARy8gJ2N4sTC42cg2V+fY3MTI6woJ+ZoRTwkFlrnR4Re4R0t
81u+p5s5WwVqeIo7YwstcbGl/XnwXwLy7S3tqErZjCdNTRNId7KOYJY+n6jSe4vVSkOXACbF2w1E
ZAYl7Q+V2yczmDMiIRgCOqWTxDMfYryzX+wqkLvnAAAAAAAA


--=-NifHmF9Py2QHfKflgV2k--

--===============2713424259984533892==
Content-Type: multipart/alternative; boundary="===============7964458139859909908=="
MIME-Version: 1.0
Content-Disposition: inline

--===============7964458139859909908==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable




Amazon Development Centre (London) Ltd. Registered in England and Wales wit=
h registration number 04543232 with its registered office at 1 Principal Pl=
ace, Worship Street, London EC2A 2FA, United Kingdom.



--===============7964458139859909908==
Content-Type: text/html; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable

<br><br><br>Amazon Development Centre (London) Ltd.Registered in England an=
d Wales with registration number 04543232 with its registered office at 1 P=
rincipal Place, Worship Street, London EC2A 2FA, United Kingdom.<br><br><br>

--===============7964458139859909908==--

--===============2713424259984533892==--


From xen-devel-bounces@lists.xenproject.org Wed May 20 23:58:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 23:58:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314703.1584701 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqnX-0002gY-Du; Wed, 20 May 2026 23:57:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314703.1584701; Wed, 20 May 2026 23:57:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqnX-0002gR-Ax; Wed, 20 May 2026 23:57:59 +0000
Received: by outflank-mailman (input) for mailman id 1314703;
 Wed, 20 May 2026 23:57:57 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPqnV-0002gL-JZ
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:57:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPqnV-0007NP-0R
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 01:57:57 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e496c-2eae-0a2a0a5409dd-0a2a450ce1ac-18
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:57:56 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e4a48-62f1-0a2a450c0019-5a9b3222e6a6-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:56:56 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPqmO-00000007lg2-1peW; Wed, 20 May 2026 23:56:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=jTiku2mluObpXzBa1NiYoGfbUZnqEbOOqXCo232N2ic=; b=OmqFRRZQxWH9gzIjOn8pJhyobz
	C/mp6rFHZg1NTyyb93fxGkowyb/YRrFZpHytaXexnnLEveykpofuINlf4eX5iNcrxif81LIQ/Ytl6
	fSQI40Xtuxn0JO9omehm7eJkFr4rPrezzqu+ZupbtcgD8FEsmxD5ui4dK84+jabLaD6vKUfa1Mlrh
	P+X8Xc1jWuK9mAT5dnoungd3495qh8Y/++RA5MYy7/g//9h3PDg2Pxm5RjR97sdBmIQCnFuNizGs8
	KvUCOyXar9Ui6dq+fLstukIZuFA0BiRM//wvGhJxNz3sTH+uXPnNX/m6uqXkPP1phSwk796LOWE8r
	09QEtjJQ==;
Message-ID: <715e3b725b87e96d9733c5565cb00f97b03e6485.camel@infradead.org>
Subject: Re: [PATCH v3 37/41] x86/kvmclock: Use TSC for sched_clock if it's
 constant and non-stop
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 May 2026 00:56:46 +0100
In-Reply-To: <20260515191942.1892718-38-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-38-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-kKUdfWK5Ck2wirAYsNEp"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d25034/1779321416-DB370CF5-6588B9CB/13/0
X-purgate-type: clean
X-purgate-size: 9304


--=-kKUdfWK5Ck2wirAYsNEp
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Prefer the TSC over kvmclock for sched_clock if the TSC is constant,
> nonstop, and not marked unstable via command line.=C2=A0 I.e. use the sam=
e
> criteria as tweaking the clocksource rating so that TSC is preferred over
> kvmclock.=C2=A0 Per the below comment from native_sched_clock(), sched_cl=
ock
> is more tolerant of slop than clocksource; using TSC for clocksource but
> not sched_clock makes little to no sense, especially now that KVM CoCo
> guests with a trusted TSC use TSC, not kvmclock.
>=20
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /*
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * Fall back to jiffies i=
f there's no TSC available:
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * ( But note that we sti=
ll use it if the TSC is marked
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 *=C2=A0=C2=A0 unstable. =
We do this because unlike Time Of Day,
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 *=C2=A0=C2=A0 the schedu=
ler clock tolerates small errors and it's
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 *=C2=A0=C2=A0 very impor=
tant for it to be as fast as the platform
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 *=C2=A0=C2=A0 can achiev=
e it. )
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 */
>=20
> The only advantage of using kvmclock is that doing so allows for early
> and common detection of PVCLOCK_GUEST_STOPPED, but that code has been
> broken for over two years with nary a complaint, i.e. it can't be
> _that_ valuable.=C2=A0 And as above, certain types of KVM guests are losi=
ng
> the functionality regardless, i.e. acknowledging PVCLOCK_GUEST_STOPPED
> needs to be decoupled from sched_clock() no matter what.
>=20
> Link: https://lore.kernel.org/all/Z4hDK27OV7wK572A@google.com
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Yay! (Albeit only for sched_clock, and we should do Xen too)

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-kKUdfWK5Ck2wirAYsNEp
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIzNTY0
NlowLwYJKoZIhvcNAQkEMSIEIM9loCje2QWEUjYKijElvo8yzcwgkPQMdL24rVbDPC0gMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAe9sYCjW1zvtz
Qy+0v2MMDFUQg9QthxzyiIbxtO2k7JykRo4PmqeYd07vZsbSXmFXktKKx8OXA59HGw0gbGEi+ck8
wqBCTzmPq1NucwNPGWTPLk3FrNCq9VVV+SRtFeC285PsWOy1WM9GfBiG7zxp/WJffdyO/poXeQ4S
2VPU9jXqi338Boi8NnMk5qHd3zXjmMAuTqyQgZIUDTGYPjmHmX7TWsNI9wj9Q/n6oPbbZhWfBNUj
ocaiyj1vruL08SlV5Z8lVrDiPNAUrS9qpMbcXM27HvbhH5Lhk/b2WUneKzQmeqGpCdM50CUquBxN
w9uOv2mkce2QQlOFocdjTJGvvVsrXtw4Csr3CnZCVqF5UhNZ9lnLLqHq0J94EGG+2Q//BkYAhNmR
gQCGyWRohkbePfpGbCytEHEjgyJ4FTXCpRhysCSOcGgTUn2IzKcHdevSu1jsYBcRTQlE2fH1LKib
bRB+9EAVW1f/aSN1MreqZa6I2vN6gG3cvVrwK8N0l8f7CGMf5V9a9gQdFTQwbLuzI0CZR0lk0IQl
63ZcVQYQul/UKtU/S0wr8YSaK7v+w9R+5+vpRzyQJsn7lnMK+JCKj5afD4NHCV/FCu9KMLeV0/pF
FlTtDIOL7ivwaN73b9LT3eh5qY6uGu5gC56G+wAPZV+BngTUmNQccjVacSEIFOIAAAAAAAA=


--=-kKUdfWK5Ck2wirAYsNEp--


From xen-devel-bounces@lists.xenproject.org Wed May 20 23:59:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 May 2026 23:59:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314712.1584710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqpH-0003Az-N8; Wed, 20 May 2026 23:59:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314712.1584710; Wed, 20 May 2026 23:59:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqpH-0003As-KM; Wed, 20 May 2026 23:59:47 +0000
Received: by outflank-mailman (input) for mailman id 1314712;
 Wed, 20 May 2026 23:59:45 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPqpF-0003Am-Mx
 for xen-devel@lists.xenproject.org; Wed, 20 May 2026 23:59:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPqpF-000gYl-3q
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 01:59:45 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e4ac1-e002-0a2a0a5209dd-0a2a4502cb70-12
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:59:44 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+a57aa1d5a46c52e8d71d+8305+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e4af0-af86-0a2a45020019-5a9b3222b4bc-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:59:44 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPqp6-00000007lp0-0wIC; Wed, 20 May 2026 23:59:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=4fumDqpfFh7qTUUSt85YEOGP4Jz6d/tV2ufryLf11Sw=; b=SbcgRP/WC+khq2voSt24X8TsZc
	LgTJct21PsM/eYu33L8Rw4dCttnJxdFtOJIbT++GI/8Evz9oMMnyOIaVXE1ocnST7p2R+rYlJspqZ
	FwI3NYgR/E9nczxvpWj+94v2Hp1noG4+kMkpkjSyq+ZtJq+vocxDLip7r6bEburTLmXjS7M3s8A1J
	61mxQGpcIdA1zpYLe0I6vAPHlDYPY/crmL1Sf2UVF+xmn4MvjxExX5qdrTYwjWtTZFUIao2vK3iuJ
	qVzTxJ0blfy4aDeYcd3/IwaY2elApHkQmedp4eHtqi9kN1I5cr6AL00uDkZzPcOaZANBHMWRWJkb9
	r0sTUDFQ==;
Message-ID: <ca2851959379cd0bd8fbae6e86c20c6765bbefca.camel@infradead.org>
Subject: Re: [PATCH v3 38/41] x86/paravirt: kvmclock: Setup kvmclock early
 iff it's sched_clock
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 May 2026 00:59:34 +0100
In-Reply-To: <20260515191942.1892718-39-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-39-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-2k1D7VS0lDh/MqkdLHDz"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-720697/1779321584-8316D161-728003A8/0/0
X-purgate-type: clean
X-purgate-size: 7979


--=-2k1D7VS0lDh/MqkdLHDz
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Rework the seemingly generic x86_cpuinit_ops.early_percpu_clock_init hook
> into a dedicated PV sched_clock hook, as the only reason the hook exists
> is to allow kvmclock to enable its PV clock on secondary CPUs before the
> kernel tries to reference sched_clock, e.g. when grabbing a timestamp for
> printk.
>=20
> Rearranging the hook doesn't exactly reduce complexity; arguably it does
> the opposite.=C2=A0 But as-is, it's practically impossible to understand =
*why*
> kvmclock needs to do early configuration.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>


--=-2k1D7VS0lDh/MqkdLHDz
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMDIzNTkz
NFowLwYJKoZIhvcNAQkEMSIEID+FgLyIg48baVwq0I7o3/457Sl2t4nSAeN8sOjGOfenMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAKSY6Ta+FaArU
nqhLezlh4pmn2OClnACi1/1WyZ6UExsGjrn2+BorseyiYFWc39ltjrMCZ8auFvNID1imjOxF/uGN
62GvrlvMugS30OaTYwiENrl51py+s92N/JOe5NabWcZydjcKeNOykmUBNrVmRiIJWe4L0gOjfZZm
qxDuaPPh55htejaKrkPp46GePT1lXVhneXwQrZTXplzSrtKpNzebbS/hL0AUNMfvSkMeeurBBNxx
jfy33M8tyGUPGpJwoMEWYnOoJmjYvAp1FCCjGZoxr4KKsiTtAeeUQAGhC7bfcX16ntNs38NOF87m
dAe/ZGvYsje5VJfZ2D2u7GZe8JiNjrKHKC4DqfFWf43fRK06TgNuBx3aCAZmZ+qp7Tatlj0fLTpS
LbZcP+OmOhie81VZA307sR8fquCNHrm52hefRpdgfCEzpSnxbit8ZKUEWTZIoTG5u58RIS4OkLZU
a99sUET2ks+gjhQGtgyFKEpYkf0QwaaSP34BCWRJYmVD8/eaC5iF5ChUmvIXwSnPoOgd/RiXK+Dj
Noz9rlIB/drowziiM7oOJrpFXOaWlo57MYuGiY2wyJl2hIuN1O9o/VcfawI/VGCctAsK7ObWKtXd
fIjD9iqANEwlmIx3W141JALhgkJvZBSQzJvobxJ1/w+1dzVxmhO1F4Nin35SfRcAAAAAAAA=


--=-2k1D7VS0lDh/MqkdLHDz--


From xen-devel-bounces@lists.xenproject.org Thu May 21 00:00:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 00:00:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314719.1584719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqqE-0005Hx-Ov; Thu, 21 May 2026 00:00:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314719.1584719; Thu, 21 May 2026 00:00:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPqqE-0005Hq-Lc; Thu, 21 May 2026 00:00:46 +0000
Received: by outflank-mailman (input) for mailman id 1314719;
 Thu, 21 May 2026 00:00:45 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wPqqD-0005Hh-8O
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 00:00:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPqqC-000gpo-LS
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 02:00:44 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e4b10-bab6-0a2a0a5309dd-0a2a4507c894-40
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 02:00:44 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0e4b2c-229c-0a2a45070019-5a9b3222c7f6-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 02:00:44 +0200
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wPqq4-00000007ltE-268x; Thu, 21 May 2026 00:00:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=NcLTLf1gFZKiWmIuS7GLhIukpMn7F7oeQMFwKhor2Fo=; b=I274JKVRB2I/bX5KQZ/FAu7eqx
	FLGKxaMejPeMzVDE/qSz0O7KMiR1POozKjF06k6O/jqCb8/SY49SKTXEUCLDshZD3ClU+TqRrBDRc
	o+FrB7CtLXMyq949MVy7aHfg5/JfjRnZ19Bi4HB2kIKXZmOOMxCvrKsk0ovH4iD7YEgUcdhmRJobi
	FzpG9v9OZNFvun6V54L7lv0mWd23T1lJwkQljap41WA/klem5AAOa+6WKisZrZ9+pOLoAxqHuS4fP
	uNshhLpKWfre8yGZo6sKOTlwgbxu5EY/EDqKythb1g7ttYh5ZVSJplq/x9PBZ9z1VDWr1WywKyxc1
	zipb6mVg==;
Message-ID: <d5633d91efb5c43b3618bd2f6c43c6017086bcda.camel@infradead.org>
Subject: Re: [PATCH v3 39/41] x86/paravirt: Move using_native_sched_clock()
 stub into timer.h
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Kiryl Shutsemau
 <kas@kernel.org>,  Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu
 <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
 <longli@microsoft.com>, Ajay Kaher <ajay.kaher@broadcom.com>, Alexey
 Makhalov <alexey.makhalov@broadcom.com>,  Jan Kiszka
 <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, Andy
 Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>, Daniel Lezcano
 <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, John Stultz
 <jstultz@google.com>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>, Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 May 2026 01:00:34 +0100
In-Reply-To: <20260515191942.1892718-40-seanjc@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-40-seanjc@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-BsKJxp2uQuWPK9KQHUFW"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-ef75cf/1779321644-09969C48-4F70C0E5/0/0
X-purgate-type: clean
X-purgate-size: 7660


--=-BsKJxp2uQuWPK9KQHUFW
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> Now that timer.h ended up with CONFIG_PARAVIRT #ifdeffery anyways, move t=
he
> PARAVIRT=3Dn using_native_sched_clock() stub into timer.h as a "free"
> optimization.
>=20
> No functional change intended.
>=20
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>

--=-BsKJxp2uQuWPK9KQHUFW
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMTAwMDAz
NFowLwYJKoZIhvcNAQkEMSIEIG/tb5oHS69DXoPShiAfo2aoOWoJE5oNgVwA+aqkZngOMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAtGkkp7+gTp0m
emEfPuqG5QfODGFUCdmtbaG+7ajA00e5WZppAE0MO01AyAmagcs+FXyPRBOsB/i6Mn/0xYi1ib0Z
jXpAz/gC+TOzeq32X0+Sw808+JHin2UiKX0OzJNd9GZSqHt8pIFcVBZapucupBdw3rH0KZj5cgxa
0SDzChe/rB2Y4HsEilEpxrBeCO2E7vPCTQymDRWVL572p/hHk0FZ3FWHT0PGWudrCRNFZWcnZz1u
+uth0I2ecGc+rJdDA/Y1VZeFjOS7mYKBU2hc0I6FAljp9xWUbTmuxSpOoJnRccivMZE8bjhX6pP0
euVibnrPUFKCDYSdrkDN1GAPSdGlevwI4ue2xYS/Z/I/KE8daom03b1IhP/hcczwcJw+Zexv5xkl
JNN+NlrVfKSmpq7w8tfRBp9TB3ssSXwYrxNMrRx7UUjYiXxbrXFkyzsFyVA6vUIpLuqhG/1D24zh
w+uqNi0UF3srIKVkKFLfDEqU17Ipr2iGdMcUHM3FCKUL7//7QMDmCUZSKjFAQ0Zw51J6t1IJUV6f
rqW5xEQAukHvZr5ZaDfFPBLnPLA+eymvn3mx/oTAfaLreeDjh0On1VnkWWuJdakzbYEH/nIY4GQp
i4gvJyiNW1p5Rswz5ZSe3gwlx0nYgjHxeri4KJFX1FW1wernAUiSRdB8UVkKwtMAAAAAAAA=


--=-BsKJxp2uQuWPK9KQHUFW--


From xen-devel-bounces@lists.xenproject.org Thu May 21 01:32:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 01:32:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314745.1584728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPsH6-0008Uu-5E; Thu, 21 May 2026 01:32:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314745.1584728; Thu, 21 May 2026 01:32:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPsH6-0008Un-2T; Thu, 21 May 2026 01:32:36 +0000
Received: by outflank-mailman (input) for mailman id 1314745;
 Thu, 21 May 2026 01:32:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wPsH4-0008Ub-60
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 01:32:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPsH2-0012zv-V8
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 03:32:32 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0e603e-2eae-0a2a0a5409dd-0a2a4509e73c-36
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 03:32:32 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0e60af-2497-0a2a45090019-94a39217468c-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 03:32:32 +0200
Received: from pps.filterd (m0367123.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64KMLbO11599809
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:32:30 GMT
Received: from bl2pr02cu003.outbound.protection.outlook.com
 (mail-eastusazon11011044.outbound.protection.outlook.com [52.101.52.44])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4e9g97mba4-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 01:32:30 +0000 (GMT)
Received: from SJ0P220CA0017.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:41b::27)
 by MW3PR16MB3723.namprd16.prod.outlook.com (2603:10b6:303:4c::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Thu, 21 May
 2026 01:32:26 +0000
Received: from SJ5PEPF000001CD.namprd05.prod.outlook.com
 (2603:10b6:a03:41b:cafe::69) by SJ0P220CA0017.outlook.office365.com
 (2603:10b6:a03:41b::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.16 via Frontend Transport; Thu, 21
 May 2026 01:32:26 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 SJ5PEPF000001CD.mail.protection.outlook.com (10.167.242.42) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.11
 via Frontend Transport; Thu, 21 May 2026 01:32:26 +0000
Received: from pps.filterd (m0426315.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64KMXRio2047155
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 21:32:25 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [34.209.42.160])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4e7afrvq1g-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 21:32:25 -0400 (EDT)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id PsGrwT9S7vRqcPsGtwpQ5w; Thu, 21 May 2026 01:32:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=fail header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=Puz
	TPHS5hV1NatTLHAKBVgLynXstsQwI2Jr2fksyHxQ=; b=DcONT0v5AX3HSFEJRdB
	m49Fi6WI+wTa/Ns5WB2+5PYA9f//rWv/Lo7kNK1p8hcICWRzqi1nQgpl09AZ8vuE
	/ONAAKw4m8YwO4N678dnJhsYDY7VkJKnbSwxqR4sJ4YvaSFCgwYB2epoCf4MTmrp
	Oa+IMPpLTJyqdXQLJQoY/90N0oYS/O7TWbiuxF2NARSXUlJwCYokLRCLV6op4qgy
	7mlXCrZgrVaBDiWPfF/IVZxIOrBe7FvUgu2qSeiYzdvAgP8522geqaVgfk5UyQ1E
	flHA2UdcQTp5tSrlmTq2qYIFP2QLLBjfJyoB3tEKPh3X/7fgMMW6NPou4APM9+GB
	ARA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h7kfaMiB9pTIHsw+UawH1gj0fs3ZJwHCm62gTc+be55dHxH923++cjO7Cy2LrZdyLNbevfkEIIBBwDT+qjG9TOYTinWFtZvf5ilL+foo470NWGQnm5eEdebEMo8NFucCJ4yfUACSyP0LUw1WRS0VKh+eoeMpiRwC1aeQh9Oe7CgnZ5nnBv+2PceKTx+M9JKhPYyN+TIyqz9hWpNE9X5TwuDdx4vDxCoQVS1yDJClDRg+UyEOtAJxihAQWNHbryB/CtNRsIG4UVJ/+4wlR+x6ZtqB4eCX0Pp2TsfcwABF88OVKJvuzTPvQemLH4AFWykLiPAuI6ury91B1fHak2xJ0Q==
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=VM02yeOMyT3DINqHV98cZq4VmXxuKOIjewDO7nNRGPc=;
 b=Lj7zrTcInv7Gz3rO8CdF3VMmSSROUgJ3hVRe7pMpQyzyfNWOnN4DtCOM2du1vi4Qdh/tG5xD4UKxbx9VP7DFgSOZko3vmT5aEenHi5bHLyWtsmEAaoWyGXdm06rM2a+jLdA95bRhx/91+DoMwh9efIpn3C8CnGQtF+4vpB8+tli1s/dKzENRL/WgrfWC9lwHeVAnzpJIXlroRXDfFpxyv3BdSO7g4xV9PnQ4Ow3DYQHqfQady1/i14Oeo1BQUj6lvu4IEG2gM0A+X1zHnVJEWOi5UvfY2sNV+eRcW935+Oks5ls8/MS0cIi5opaeOjYtspJOxU0llmY7JGV8TJJDLw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VM02yeOMyT3DINqHV98cZq4VmXxuKOIjewDO7nNRGPc=;
 b=BzJN2aqaFGOoUQg3ZSIDTdmrzTBCQMuf5tG90yNWVNdUBwNy8stPhaFYrgkOq7fkfySXe+y/NTZUpH60lKQVrQdZfvRTbjM4OVjyPxdEW/xUHLzFcjxS9VcoCqQvWntAeGI9qst1lsJtoVyh0m++j+63ncpjaSkbw0kUSmVPxpI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:content-type
	:date:from:in-reply-to:message-id:mime-version:references
	:subject:to; s=ppserprodsaar; bh=PuzTPHS5hV1NatTLHAKBVgLynXstsQw
	I2Jr2fksyHxQ=; b=LeOeStt/ty6vJ/JlO3/jQoVvjhU26ai5gOt10w/hiwu06kV
	qHtRZ7kJ3hH/UxZF0R/g33vR3X7ifvd/DF99w5zlvQijdJJjlREtB1f/SjNTPHOj
	h25M0b76ZirAgjuXrmuAtM5sgFpevMfvI3q+r847F4AnuNph5aeJl86HjeZP4EsQ
	L1iRnnc5Z6DuEbNCyZeWyypiCW51Nkqq6hB81GBmfsxt40nq93vpTnkSFmf/3m2F
	u90qeWcDvxnu/47Z2uruGkXAMSR0V8LimE88sstBYEea64hcVr33uJV7gu6vHRhx
	H5oSGnOwO77idyJnYSyRQZkiWUWgOG5UHdvsn4w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppfserpocford;
	 bh=PuzTPHS5hV1NatTLHAKBVgLynXstsQwI2Jr2fksyHxQ=; b=tbedkb5KInxa
	KNrZM8VaEUAf76ojiAezc7qPzDe+f18ajLmy6s5ZfQ4h2J0NL/svh6XNkfxRebqF
	7V/NawNKUHF9g5n5V4TZsDx/G/bMMAJ1JfRYY5sE2G1sfDGp6Q1t2RQBc6+ubNCF
	RxjQ6cgYpgHOBJj/KyNPwI9KQfml1cUTeqRVt1sWQgZfZR/mvN/cTYQR+6bUgPLH
	9saDbbD/EB4BBYEfefG/hzob6T4sfawmiimihneA6tgeMIw88eA9UwSHx34AOHAG
	qRH8+Os2QDAkAR35NCVs/+3sLghYavKRa5OvEGT+xD8st8/ne85hUkpZ3QR8NhZJ
	Kz0yOpNO9A==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: PsGrwT9S7vRqcPsGtwpQ5w
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Wed, 20 May 2026 18:32:21 -0700
To: Teddy Astie <teddy.astie@vates.tech>
Cc: dmukhin@ford.com, xen-devel@lists.xenproject.org,
        Andrew Cooper <andrew.cooper3@citrix.com>,
        Anthony PERARD <anthony.perard@vates.tech>,
        Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
        Julien Grall <julien@xen.org>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 1/5] pci: Introduce parse_pci_sbdf{_seg}()
Message-ID: <ag5gpWNFGHg79gay@kraken>
References: <cover.1779116255.git.teddy.astie@vates.tech>
 <1779117760.8631fc262581453bbf619ec5b2062170.19e3bae9f48000f373@vates.tech>
 <ag0e3ZgNDQN9A6Vn@kraken>
 <1779271208.8631fc262581453bbf619ec5b2062170.19e44d40e68000f373@vates.tech>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1779271208.8631fc262581453bbf619ec5b2062170.19e44d40e68000f373@vates.tech>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-20_03,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 bulkscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 spamscore=0
 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605210012
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001CD:EE_|MW3PR16MB3723:EE_
X-MS-Office365-Filtering-Correlation-Id: ab1cab3c-8940-4fe0-190f-08deb6d8d0dd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700016|11063799006|18002099003|56012099003|22082099003|4143699003|6133799003;
X-Microsoft-Antispam-Message-Info:
	m2Rm9tK1zP25DWEJm4dPFC0uIVdESxpc6t5ef1GTucXZBtP20a++f6qbaLdffhjPgSf9rWHJLL7Uoa2CA9VMsP9RnQJTgQmS0mvMg4vPR5KaWzup8ITPUkhgZyMA7SJ81qHgPF0MNf6uRKNr0edlwTZcVbNPdMmsNQyFcde44nQxTbStxGA6eCWI2BmNuz32mXnAUc/bPqwbD1HZaxyYFWSmpS1lenQQzQo4t7w/aZdaVV22oeLus1xBCMhGiLvVLKk5rJcKOfPqMw6+R8PrPGdJtgI9Z7vGcqHCMqnKjGvA+9RepeY5qpbP4afEe75op8X+xJvwzg17FFdImy5BOf2FoLLSwGbvOjmimVj+2JPnlJberzJb7kBbGfvH5++VmaJ/1aDWELYAY/R2LsthraOGlS5GrLPtGIZoYNDmRegcoOnTOlIbQyszgBV2iBukhxfSpKeXaHVUQ/fy7G9FX64NclY0nX+R/DRD89Lk9jv1/HxkjuU81svUJoR7qIiRHG5trENQIRdg20YD80bFHIOU4TqtmHEzOlM1t+gAJ2/gXFnH36VQaWyCzBl3Y/6VHjkIgMBt2PUN1e2W/2cL3Yd/6jOuNjypFORWmI7Xyao5e/pgUCSHbDbJTkTf1BA0oguixBDxRJ2UQMcfPiGKc7zRL/LqJbiG6kjp1lOvVVxaIa0jt9r18eEIxl0L+1dMSAQ0nbr5unrJ/15oYkCx0tPa5nHJ3SJOo1wHmy74dQk=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700016)(11063799006)(18002099003)(56012099003)(22082099003)(4143699003)(6133799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	HJLkwFwwQok1eTCddzNd3wzzMmY6lgHXSW2Zm6NQ8tvWDH1PbuNJ4TPeL60ToX5+tvBv6m5Wi6IWNNwcBEWpCaHEhOKi8WbbqGhAYknzm/vkQc/9bSk2MgQifwEkZ/SDqNIDp7nqrWGpDIiWR2bNBz2nt2QLTtsBicYkdFaJuxIzya7zedZSxsrdgdLC8Kqt0RR27cEMh/vT+edJp7W72r2ytNhVagSIXrlJJ62hje3oyR4hWOHZ82/mCTQXMSsFS0Aq1QY9HaFI1Al6XBAh9u1inrik9PMRoIp1HG3y4m2Gh/44h962KMdC/KQO7HSO1WGAmmk1fk8F3Redsqzmqbk4okyuoPxMKsTLxglhCfvYNKThB6uIUk2ucwLZc7TI3maIpbobKHBS59TA69GorFWxXwOeiLR+AxMx0eS7ao78w9lUKm7JglkWg+8oE3pz
X-Exchange-RoutingPolicyChecked:
	NvaSErCxhOPrzZahQGHh6abUQRAm7HRqQ9/9TECCQh+HhRbSNQMLB+3OB82s4mEG9nfgw9xb6n/RxeZhQFurRBZatTPBDQ9sh4MAt2PPV7W95gVYaAMYZpbhnhQYeYEiefahAy8yfQS3fNO5lJNZVYEgx5DOOJD0/l/RCZHxHyrBEdiPIpqhP4FOO//KOSSBefgVHHkhR4wTCCMLP0AY7+FQ/LhjKauCLAKmC0pWw4mUf12gc9a7C+0tzl/GYvHkFTTF66RB1as2a/5NFuhmKoYhoann9zP9+/K21xi7fGWohZTLgxzlqLxfAK8lLnESQQeERGlWlVbUT+o12c3z0w==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	hERbyJt4OpBuhsqAfukj6lccSzz4kK8B83c1gx9Low5YkLANZdT2taEJwNVmZ2Dok5iED0vXXixwj6Orf4Ek3hPRco+UdD12A6XCZXZIhRumB6Hxmo7K8MNEWS7eTBkG4MHMPbj8VIZs4LfWvTJimPi5B2Q5I/9ztoU6Ne3tjlRXKlX14oFUdcAP+xrXUCz8HhyP5nLqKYQUbal1QEWEf8v+SvREdJCsb5vKavWvBjRk1BPbTuTKQjuCLuDE7IHQOEzzVy2i2sNrEGmGDdYIRprA31RmCC/4VGMDUlIucHCi5nK4++GY8OXHzq3LCjCm/DV9URTRZsycwz9W+HLajvdy1heuHfX5Zf1HsaAO9+xlNXUVuMxG2+sC60oM2NKcPghf6+VgVKiJfQ4Z2RUlmxhNIqhsD4E4n0FmRkoOSmZREyVVhlfbX6mNltbveYr4dDYVCo5t0biaYIPsLtT+ByRfg4Eb9U0xLyEisxIzir9syhlpldVKJ6gvsPagTL7Wtz/O29oE/38LhhenN2cbR3ZIQyx3ogWafzuOIm02GEcoTxngD+khZ3nTZ+Halqj/prBtxh8XofhrORnFDMIp6uvsYKv83vpVFfK0xfrNV3gHk7TCu64EyNajMqsNuM3Mb8w9tNZYq4S8wsMFOhsVNQ==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 01:32:26.3707
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ab1cab3c-8940-4fe0-190f-08deb6d8d0dd
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001CD.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR16MB3723
X-Authority-Analysis: v=2.4 cv=SvagLvO0 c=1 sm=1 tr=0 ts=6a0e60ae cx=c_pps
 a=7DaYBXCyACNMaGCgbs47fw==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=8nJEP1OIZ-IA:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=N9_n2FxmZfwfyRXvS9-E:22
 a=cbNQJ9GKAAAA:8 a=L6KX61kmC91rAXb0BzgA:9 a=3ZKOabzyN94A:10 a=wPNLvfGTeEIA:10
 a=O8hF6Hzn-FEA:10 a=P0bj-C3X3jJDpopQwM1U:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIxMDAxMiBTYWx0ZWRfX07U6W3J1Irlq
 c6VWfhEzpqMeIFvZls7ilzfEuoKoJ8ffmFgM6es+NypV2a/CEmSKOftPqbNnFRxtSQ0ppDreQ5a
 h1eWGFinSTWJ3VGpc5fSCbyivi5tbw08bZeX1lhpPMX34qWuEjwm03dSaCd3v9SfI7bTK1GC9UJ
 16LySX4l2BWH+MGzFnShNN56neBBjeFR+0II5jP1hb1dTaUhy43lVLMUSKhprWAOHUkc4AUGSZd
 +Nmcq/8XmiuBzdMhaTT5Qfzffu9XJ5V0Ryk7WpzYQN1YxAP56ejgAzX9XMBD/OcUVV5TQQ1KXQg
 CmWNWMCkHmqi1eOI9UMUy6SkbgrRrnjI4u2RSsd9+HO4Fnv/EavfkP6PhhknUr7zKU9jApYmlLT
 3H+85SdWed7CKruoz07peReUqUvG7WkS5eeGGxZ0oiFu3hw3+DDpW0T1Lg2ut+i0DXOV/+OBklL
 iHUwjqLaNEZ1UFOi6Fg==
X-Proofpoint-GUID: -g8i4shkhdxQz2SydSNZcamrPRLBV6W7
X-Proofpoint-ORIG-GUID: -g8i4shkhdxQz2SydSNZcamrPRLBV6W7
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-20_03,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 bulkscore=0 impostorscore=0 phishscore=0 spamscore=0
 priorityscore=1501 malwarescore=0 suspectscore=0 clxscore=1015 adultscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605210012
X-purgate-ID: tlsNG-bad1c0/1779327152-37374A53-5231C720/0/0
X-purgate-type: clean
X-purgate-size: 2198

On Wed, May 20, 2026 at 12:00:07PM +0200, Teddy Astie wrote:
> Le 20/05/2026  04:43, dmukhin@ford.com a crit:
> > On Mon, May 18, 2026 at 05:21:25PM +0200, Teddy Astie wrote:
> > > In many places, we're parsing a PCI string into individual parts
> > > (seg, bus, dev, fn) and then transform it into a pci_sbdf_t using PCI_SBDF
> > > macro. Rather than converting from parts to pci_sbdf_t and vice versa,
> > > introduce a new function that parses a PCI string into a pci_sbdf_t structure
> > > directly.
> > > 
> > > Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> > > ---
> > >   xen/drivers/pci/pci.c | 18 ++++++++++++++++++
> > >   xen/include/xen/pci.h |  3 +++
> > >   2 files changed, 21 insertions(+)
> > > 
> > > diff --git a/xen/drivers/pci/pci.c b/xen/drivers/pci/pci.c
> > > index 084be3880c..1d06cb035b 100644
> > > --- a/xen/drivers/pci/pci.c
> > > +++ b/xen/drivers/pci/pci.c
> > > @@ -202,3 +202,21 @@ const char *__init parse_pci_seg(const char *s, unsigned int *seg_p,
> > >       return s;
> > >   }
> > > +
> > > +const char *parse_pci_sbdf(const char *s, pci_sbdf_t *sbdf)
> > > +{
> > > +    unsigned int seg, bus, dev, func;
> > > +    const char *out = parse_pci(s, &seg, &bus, &dev, &func);
> > 
> > IMO, both parse_pci() and parse_pci_seg() should be merged into
> > parse_pci_sbdf() and parse_pci_sbdf_seg() at the end of the series,
> > since there will be no remaining consumers of the old APIs.
> > 
> > What do you think?
> > 
> 
> That was my plan, but parse_phantom_dev() (in xen/drivers/passthrough/pci.c)
> wants to parse the PCI string without the function part (i.e XXXX:YY:ZZ)
> which can't be expressed with a full SBDF parse function.

I see.
Perhaps adding "SBD" parsing in-place in parse_phantom_dev() is OK?
Like duplicate a small amount of code but drop old APIs.

> 
> It currently works by passing NULL to `func_p`, which has special handling
> in parse_pci.
> 
> We could eventually allow omitting PCI function and make default it to zero,
> so that we will be able migrate parse_phantom_dev to this new function (so
> it now allows parsing full SBDF, but ignore the function part of it).
> 


From xen-devel-bounces@lists.xenproject.org Thu May 21 06:09:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 06:09:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314795.1584760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPwaQ-0002L4-Ph; Thu, 21 May 2026 06:08:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314795.1584760; Thu, 21 May 2026 06:08:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPwaQ-0002Kx-Mu; Thu, 21 May 2026 06:08:50 +0000
Received: by outflank-mailman (input) for mailman id 1314795;
 Thu, 21 May 2026 06:08:49 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPwaP-0002Kr-0m
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 06:08:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPwaN-000v1c-BV
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 08:08:47 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ea16a-e002-0a2a0a5209dd-0a2a45068d88-16
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:08:47 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ea16e-7371-0a2a45060019-d155802db9da-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:08:46 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-48ff4f8ef0dso62328415e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:08:46 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49035c22d97sm8655395e9.1.2026.05.20.23.08.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 23:08:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779343726; x=1779948526; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1Y7kIHZzlotLB68oXuC02FuqM+ANZWIfcpe9XcjNznU=;
        b=b28JB5e+pwpyeSvamK4RK3BwU9rbnyAm63dy3nskGiAOzTK4HU2VbZtEj+oXA5hkqx
         DXiu03J4eFTkqfR3fsRIZFP5vQ2UryGytnAgeOvdDW1DW2FfnPP13PxPspTmqKoNSvqx
         1NeU/7mAlV3LwPd+fykqqmVC0AxplmiCrKsUbD3IWl6anG4Zjor6oS79xZHLBHTtRijF
         mhtuULxkAK+yjLcphr+1v9zuAkaFo0G/EPbm5tyDadr9SsTLnWxDu4EX8Y20uBEQAryk
         YLSYb0vi1xkkc2umKYshKi1KrQ5Cv36Gx1vx6IwuDqS1fPdECHFFIVyzeGIcZHlv4mq5
         gZ1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779343726; x=1779948526;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1Y7kIHZzlotLB68oXuC02FuqM+ANZWIfcpe9XcjNznU=;
        b=ilOjlqSPXHVY5Ksa5SEhZ1p7laBvKLVioj8hIHnlsJhDy6LjGd0oOfXrCj0GvXNVuk
         bOxgk24Y+bz+5q/U+jdr1dVS+pYcKnhJAEL5C1INQDmxj8N7k6ZhHTMG8b2KDYZgCEn4
         7NalZiIXR0bouV5/HCWfXFi8IzMICuc0O06lUcuBD0ihFCygdvXvwL0uZ8vBzqp3upna
         hAQqwKgQingSc+Jt8twKcOkCR2niF94Ijmsr6u9DmOAPOlEJHsDz11z9TbjvwWUgQe8q
         q9eTm0Cm6eg/gRL+Rf5gDZ4qftMHtaexCTvKCCm5h9C5fVcuPL2J2oZeN/j5YK7VomqT
         enXA==
X-Gm-Message-State: AOJu0YzONRCYBtBMEm8al9RVGq/cEYRxBWWJNXTPWrHykyrflvnIhWaf
	Yufj1gIlE2FgkDf0MWgb/tKbsPs4oMAHUeGmc7LxgCOhNX13aEIblbVPz7d9QNl3gR3tLR3honM
	tOwE=
X-Gm-Gg: Acq92OGRh/M0XzhT94JhIqQOYx+LoGAvjM0NTSzSQFjMJkartSI/fadnIivmJYaObUd
	+phzlBWps1vIhm2y28kequmy7JnbDXAJMdNxIwK/ZXWuUMApG2q4REJIyswi8wO/nFJpBdPCl6q
	LpV8sUf9BOr/FgeVk0X/5aRyKKqaBnx7yK2pBcuDjJXDJc5iR4/Vzm9YNGXDHDOTItdbx0ldNzX
	gzANkAKZxl4aXkMUCx9zIYVGtxLYUu79ws+EEQ+pU1OW50c5y12ClBd2Jgg03amUYtorSeyhN2P
	70FtNv90B72sLRXjJAt5b4rQyk4ngwn0ezgNtQwWx5cnBZ2hJoi572B2k+hcKvPcoGbPFHCYX8F
	eD50JkpGtakFXu4nCxBxoTbzxNP+gvK9S4qEsuS9Wrc/bT9x8Ckae6u8GDbs0KggOOTKQNqIelZ
	IkngMrvDSwTUwFEHkZKWlC5IGBEa3lmobQwLZgvLqgDOC1w28QJD+f998G2v7XmOaUZbfe9heSK
	BnaCy+6w22BidvLU5OHHCDDSA==
X-Received: by 2002:a05:600c:c0c2:b0:48f:e230:2a1c with SMTP id 5b1f17b1804b1-490360eda02mr13047275e9.31.1779343726464;
        Wed, 20 May 2026 23:08:46 -0700 (PDT)
Message-ID: <e3a08386-7b3a-4127-9127-f484ff8bcac8@suse.com>
Date: Thu, 21 May 2026 08:08:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm: do a 4th linking pass if necessary
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>
References: <7b23e011-56b8-4f6c-bd55-83e1d9b0453f@suse.com>
 <1779293000.8631fc262581453bbf619ec5b2062170.19e46209296000f373@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1779293000.8631fc262581453bbf619ec5b2062170.19e46209296000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1779343727-8EF89D75-07A65ED5/0/0
X-purgate-type: clean
X-purgate-size: 2893

On 20.05.2026 18:03, Anthony PERARD wrote:
> On Wed, May 20, 2026 at 01:53:34PM +0200, Jan Beulich wrote:
>> Once we generalize linking, we may want to introduce an equivalent of
>> Linux'es KALLSYMS_EXTRA_PASS as well. I don't think doing this right here
>> would make overly much sense, though.
> 
> If you generalise linking, you are going to put it in a shell script,
> right? Because this recipe is getting very complicated, for within a
> makefile.

Well. Prior to this change I was definitely hoping to spit the big rule up
into small ones. Whether that's still feasible with an optional path I'll
have to see; I very much would prefer if I could keep everything in make
logic.

>> --- a/xen/arch/arm/Makefile
>> +++ b/xen/arch/arm/Makefile
>> @@ -99,9 +99,20 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
>>  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>>  		> $(dot-target).2.S
>>  	$(MAKE) $(build)=$(@D) $(dot-target).2.o
>> -	$(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o)
>> +	if ! { $(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o) >/dev/null; }; \
> 
> This `>/dev/null` seems to only suppress the output of the `diff` of the
> macro, is it what is intended?

Yes. All errors and alike should appear normally.

>> +	then \
>> +		$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
>> +		    $(dot-target).2.o -o $(dot-target).2; \
>> +		$(NM) -pa --format=sysv $(dot-target).2 \
>> +			| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>> +			> $(dot-target).3.S; \
>> +		$(MAKE) $(build)=$(@D) $(dot-target).3.o; \
> 
> This new block ignore all errors, from LD, NM and MAKE. We want
> a `set -e` before the if.

Hmm, perhaps I should add that, yes, albeit ...

>> +		$(call compare-symbol-tables, $(dot-target).2.o, $(dot-target).3.o); \
> 
> At least, an error returned by `diff` in that macro should be taken into
> account, for now.

... I expect this would fail if there was an earlier error.

>> --- a/xen/scripts/Kbuild.include
>> +++ b/xen/scripts/Kbuild.include
>> @@ -65,7 +65,7 @@ define compare-symbol-tables
>>      $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(1).sym; \
>>      ln -f $(2) $(@D)/.cst.$$$$; \
>>      $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(2).sym; \
>> -    rm -f $(@D)/.cst.$$$$
>> +    rm -f $(@D)/.cst.$$$$; \
>>      diff -u $(1).sym $(2).sym
> 
> This macro is missing `set -e`, if both OBJDUMP command fails and create
> an empty file, `diff` will return success.

Whether to have "set -e" here is an independent question, I guess. To avoid
the case you mention, maybe better

      $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(1).sym || rm -f $(1).sym; \

?

> But looks like `set -e` in
> this macro isn't going to work in the condition of the `if`.

Whereas the above would be compatible with both uses, I think.

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 06:24:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 06:24:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314802.1584769 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPwpP-0005BA-1W; Thu, 21 May 2026 06:24:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314802.1584769; Thu, 21 May 2026 06:24:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPwpO-0005B3-V7; Thu, 21 May 2026 06:24:18 +0000
Received: by outflank-mailman (input) for mailman id 1314802;
 Thu, 21 May 2026 06:24:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPwpM-0005Ax-UA
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 06:24:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPwpM-0092ij-6N
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 08:24:16 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ea505-bab6-0a2a0a5309dd-0a2a450ce274-16
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:24:16 +0200
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ea50f-62f1-0a2a450c0019-d155dd33a4a9-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:24:15 +0200
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-43d734223e4so3749855f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:24:15 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eaa93633esm132650f8f.29.2026.05.20.23.24.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 23:24:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779344655; x=1779949455; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Bu9p2QcIhGzylnu9qw5fFo3HIoHdBDprs5E2aDZaigs=;
        b=PrMfVyXc2asVQqon9jb3FaBeh6FrkNPd//zzbeeQcmdqL/ZIKqxu6zEhNFE/e5tZ1r
         LbfhYXsOTw09YdSHLZqnm5w5J2BWBgD2lLeib2hAN4rapxuPstE9YfERm2P7WQmubkWd
         Gu7Esyaoy2DpmrwL0T6i6/o/B/VQeXIFQm52D9EWBl7rIgsAcDKMLd4eOKv7IZ9EtA4z
         gfOpBbhtv8JHdgOb88JSeTYCLIZiNO0tPhWXvkDuJXstaSV4j1BvNb/mUxwwMxLut/yx
         mfWmik25u8xeigxyFreQHfnz/K3cf1X5UNCLqTr4hqqBdJoeV+W/28vjnbJnD5JuiqwP
         wxBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779344655; x=1779949455;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bu9p2QcIhGzylnu9qw5fFo3HIoHdBDprs5E2aDZaigs=;
        b=kCnQnoLDuVKcMjnJrBRsTHbfovYHHkC6uFmhHJ6C95PnuJ0306RiNnJwjRzYWf+H21
         rDIOuoMIyEaS50QcI8vbl2MWgA9VinZnosSbDoQkAxShotcCfqExIlTgnVTL//SwkEnZ
         NjZEwgPMSGGm/dpOYpWPc3Plfg3eBPkvq5JCnAfaQfg6Xc4EwJenrA7LWkwnlQk4Fqcj
         d58Dd2E3NxrSfijpAILhyZMYobr+SWBxbPtjIHxSpI/hVW/qbLzoib9X5984tJRAdjyT
         gAEmkPMFL0ZgbXjd3TXekWDI9t6UvBem824notQx6ci5YrDzpq8JdOoanYoGQUxvM2Zd
         WBqQ==
X-Forwarded-Encrypted: i=1; AFNElJ8ScMGXJnSToPnprsoL0PyarU1c9Pzul4rVxN9itDNMCzrL9I7zs6PYQQmiv01BoQDa2dhDWibL2vM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyy1j7gC1oTvucBSjiZ3IU/wGSop50S1JXUOFDUyYBXyFfFCaA/
	5Sc+q7Xsc4Ggn3HRDfeT/ZJpZyK7uoX+rDiSCbGS95vzpd5NdJlyMoh4aejXL60bXg==
X-Gm-Gg: Acq92OFdxnL7aDg2tSWwPcnEuSCJf/j1kU1Mi0qYE+jPM9PaflNxAf2o/Licgj55DdA
	WIFgNTfPsVB8xaY2/nEgqXEng60qp3VQaDH9arDJoQsTdQJY2mwIB9qimzOjZ+eODYGD0hHc+zX
	4tWgLW9x02AoVBjsqB5x89/ygwS5CO07M3A8mTI85DQrmSon0ObjBVdu+dbeB5e7ZkbOLFq9Z75
	V/OhewMUV2UmJopiySxMS2EeHixOAJ9K9ND+oQEv/p3+idAJTWJNMdTszBRnpBCDoKCC8FSzwgh
	Z0o1JiuQxTqHa8BXU75ZTSq4VO/XFKSYPAtCWuToltOjhRELWS56hQpBsgMkx2ZRbokBAPybrgG
	4nucpNCCTa2lxu0YyWPvwQWzefcJEx4WRLaVM2Aowsr7NK2qtEQxksO5nk+vb8ysYxknThlXUU7
	FqSsJfryFgsfoVC8iXA77iKoFmiDkLMJItEhFHNdUNBTjzGaOPY1HyF3mM7lu5vlB2pVxDYq4aG
	MIIWNQFV+B/aVc=
X-Received: by 2002:a05:6000:178b:b0:44b:5a37:36c4 with SMTP id ffacd0b85a97d-45ea31ce906mr2073897f8f.26.1779344655329;
        Wed, 20 May 2026 23:24:15 -0700 (PDT)
Message-ID: <57a83a27-b472-4f5b-9a0e-b230be0c7151@suse.com>
Date: Thu, 21 May 2026 08:24:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] pv32: Fix bogus cr2 on fault in emulation gate
To: Teddy Astie <teddy.astie@vates.tech>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
 <0e23078f-30e0-4077-be1e-365a265603de@citrix.com>
 <1779295699.8631fc262581453bbf619ec5b2062170.19e4649c100000f373@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1779295699.8631fc262581453bbf619ec5b2062170.19e4649c100000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1779344655-DBD7BCF5-DBD7904B/0/0
X-purgate-type: clean
X-purgate-size: 2818

On 20.05.2026 18:48, Teddy Astie wrote:
> Le 20/05/2026 à 18:34, Andrew Cooper a écrit :
>> On 20/05/2026 4:51 pm, Teddy Astie wrote:
>>> __{put,get}_guest returns -EFAULT on access faults which causes
>>> the injected cr2 to be off by 14 bytes (as EFAULT is 14) which is
>>> incorrect.
>>>
>>> Fix the computation by relying on copy_{from,to}_guest_pv which
>>> reports the number of remaining bytes instead of a negative errno,
>>> such that we can compute the offset properly.
>>>
>>> Fixes: 70ad570b2799 ("x86/64: paravirt 32-on-64 call gate support")
>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>> ---
>>>   xen/arch/x86/pv/emul-gate-op.c | 5 +++--
>>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/pv/emul-gate-op.c b/xen/arch/x86/pv/emul-gate-op.c
>>> index c2c699fbff..cacc171115 100644
>>> --- a/xen/arch/x86/pv/emul-gate-op.c
>>> +++ b/xen/arch/x86/pv/emul-gate-op.c
>>> @@ -289,9 +289,10 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
>>>           int rc;
>>>   #define push(item) do \
>>>           { \
>>> +            unsigned int __value = item; \
>>>               --stkp; \
>>>               esp -= 4; \
>>> -            rc = __put_guest(item, stkp); \
>>> +            rc = copy_to_guest_pv(stkp, &__value, sizeof(__value)); \
>>
>> Oh, this probably violates MISRA, but you don't need to use a separate
>> variable because sizeof() has no side effects.
>>
>> Given that the expression is now &item, I think it needs to be &(item).
>>
> 
> I tried something like that, but it looked a bit weird and clang wasn't 
> happy (at least in language server) because of the &(x + y).
> 
> We also need to ensure that we're actually copying 32-bits scalars (and 
> not 16-bits or 64-bits ones) like the previous behavior.
> 
> That diff seems to work though
> 
> diff --git a/xen/arch/x86/pv/emul-gate-op.c b/xen/arch/x86/pv/emul-gate-op.c
> index cacc171115..b72a3058dd 100644
> --- a/xen/arch/x86/pv/emul-gate-op.c
> +++ b/xen/arch/x86/pv/emul-gate-op.c
> @@ -289,10 +289,9 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
>           int rc;
>   #define push(item) do \
>           { \
> -            unsigned int __value = item; \
>               --stkp; \
>               esp -= 4; \
> -            rc = copy_to_guest_pv(stkp, &__value, sizeof(__value)); \
> +            rc = copy_to_guest_pv(stkp, &(uint32_t)(item), 
> sizeof(uint32_t)); \

But a cast expression isn't an lvalue, so & cannot be applied to it (much
like it can't be applied to (x + y) as you mentioned above).

Jan

>               if ( rc ) \
>               { \
>                   pv_inject_page_fault(PFEC_write_access, \
> 
> 
>> Can also be fixed on commit.
>>
>> ~Andrew
> 
> Teddy



From xen-devel-bounces@lists.xenproject.org Thu May 21 06:33:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 06:33:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314814.1584780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPwyS-00070z-0K; Thu, 21 May 2026 06:33:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314814.1584780; Thu, 21 May 2026 06:33:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPwyR-00070s-SA; Thu, 21 May 2026 06:33:39 +0000
Received: by outflank-mailman (input) for mailman id 1314814;
 Thu, 21 May 2026 06:33:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPwyQ-00070m-US
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 06:33:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPwyQ-009rCy-AJ
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 08:33:38 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ea73a-5cb7-0a2a0a5109dd-0a2a4509d918-24
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:33:38 +0200
Received: from [209.85.221.42] (helo=mail-wr1-f42.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ea741-2497-0a2a45090019-d155dd2ac98c-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:33:37 +0200
Received: by mail-wr1-f42.google.com with SMTP id
 ffacd0b85a97d-44c350a5b87so3487040f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:33:37 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eaa7cf58fsm481556f8f.3.2026.05.20.23.33.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 23:33:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779345217; x=1779950017; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zO3FNoyIO9etrROlKr3aqp1mce92gP7hxrDL7RcYUo0=;
        b=ZY5ZBCoEyi7JYPuumR2QP4WNudlGEvL3gtM9DC9b0vVbh7pfdLL/LxF0m3hWFJtLpa
         v+1sknvMOVs3JHfb/qu+s+1Kj47mYLtxFNh2VHoZwoLVtzXW5aGYgaAcOIfrDZpSMLmR
         T/ztBAV+yt6rEIU0Je5wVEOf8p6vMc9+3QZBjwOKAzOOh3t28k1GwfeiAleqYcK0qDVP
         gLUEH/KWRocg6CnU3ybVDbj8vnb3pRg5ZYS/SGSNfHy/Cv2d+2zB2fJvEB5iq96VjqR5
         MWEKhrd8EG+/hTnjhvRrZYsaonSxmb0moshnqXsYtAq+ILY/u47/0LUOlSTZCjyvSifr
         /wgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779345217; x=1779950017;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zO3FNoyIO9etrROlKr3aqp1mce92gP7hxrDL7RcYUo0=;
        b=ndXXfVHkg1PKrEPZZ45V0OY7lCM77HPPz2J9EZhq1JYVSx8gZTqvS8opd4XSyauKhg
         5mRQy231pDlOa3ZwpcMKTrKsemiYeI/KiwHhx40G5QivTFmn2bqq6A8yVFL0+326kLEu
         Ng3/NjYKpGa2cizTV+FhkiyurMSWC3UDdoN1vUz8+ptPEu82o3RhL80tUWfnUzN2FF5p
         0SKCrRKNtVqkuZKl+ExxODia6B4q8opLXsj/ssNLUNeim6P1GgNc06jeCnN34k71PxQe
         o7q8twb3l1qEI8VWW0FVGb6JxxN5wvteEAaE+qBt8mjlK1tcHvh+QDRxf7vnfEeY7xtZ
         uYhg==
X-Forwarded-Encrypted: i=1; AFNElJ8QKap0so68MbXAA4zeyJflW52qb6NzoFW/ekL7hQSnK0cwHHMDCJLJDgYqzjMfKAvy3h2gx0APFek=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKXWVj8ybanb+rLuy52sAmXHWwyC7Wst5CzIhGNftIDL1q81do
	vrgnvQNUg5zTz6asi6JoSQ4aTTIDYXs7o3Luvm4UWcUTIbp/Wc+ssFtpxubuP96WWA==
X-Gm-Gg: Acq92OH8Rnj8kOWEchAPd5jffCU0LfZdoZ3ITZp79oyjM7cPTD83gFXJKIkX1OhTqzq
	hbb3VN0Ak9m97kjbSxQdrXJSG65sTpuKuiRU2sNU/GniBronwNXSjI/hVYm4vDdh9MJdesqhsd3
	sMfqprM2n6LGEOfWm5lStiCdtel4hN/2ywpGG5mQ4M75BRrmeHa46NCNKctq6OH1EEO70AGpVnl
	2nnLd0qbAbXNeT8jFvRCHLNUQywegvLIsal3ZZMeSNAXM45M6ZNpJ5i6KboP0S7QUyQQzWwUiBz
	MilY2c/xyu9DFs5DHi+Djrjw75bXGacPIaAKgLsufCgZRe4XxpcLinqTmYoXa8pOEIKeTU9v8IO
	Cnofq7llj0NF1yEfbXiL3q4tlsb4sOOJaOFnVuYqoLj84g2wXbdrX0UmTRkK0LZSp5usRbC9Cef
	8Ab2D4qwHfPvXhfK3Vvzx9lSILk8OMy0jx3aawJq/DhThDBLHsvgsqy3JrVkH1JkxmEQ8hK6pfc
	ovSsPoeTjrx4DVfcBlF2htlJQ==
X-Received: by 2002:a5d:5d12:0:b0:45e:8866:e58d with SMTP id ffacd0b85a97d-45ea3ae880cmr2167870f8f.11.1779345217333;
        Wed, 20 May 2026 23:33:37 -0700 (PDT)
Message-ID: <09a27cbf-065a-44ad-8956-18f050202822@suse.com>
Date: Thu, 21 May 2026 08:33:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] pv32: Fix bogus cr2 on fault in emulation gate
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
 <0e23078f-30e0-4077-be1e-365a265603de@citrix.com>
 <1779295699.8631fc262581453bbf619ec5b2062170.19e4649c100000f373@vates.tech>
 <9a6f4d03-651b-449a-80d0-35077170c8c8@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <9a6f4d03-651b-449a-80d0-35077170c8c8@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779345217-8AB8EA53-0AED0936/0/0
X-purgate-type: clean
X-purgate-size: 3400

On 20.05.2026 19:21, Andrew Cooper wrote:
> On 20/05/2026 5:48 pm, Teddy Astie wrote:
>> Le 20/05/2026 à 18:34, Andrew Cooper a écrit :
>>> On 20/05/2026 4:51 pm, Teddy Astie wrote:
>>>> __{put,get}_guest returns -EFAULT on access faults which causes
>>>> the injected cr2 to be off by 14 bytes (as EFAULT is 14) which is
>>>> incorrect.
>>>>
>>>> Fix the computation by relying on copy_{from,to}_guest_pv which
>>>> reports the number of remaining bytes instead of a negative errno,
>>>> such that we can compute the offset properly.
>>>>
>>>> Fixes: 70ad570b2799 ("x86/64: paravirt 32-on-64 call gate support")
>>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>>> ---
>>>>   xen/arch/x86/pv/emul-gate-op.c | 5 +++--
>>>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/xen/arch/x86/pv/emul-gate-op.c
>>>> b/xen/arch/x86/pv/emul-gate-op.c
>>>> index c2c699fbff..cacc171115 100644
>>>> --- a/xen/arch/x86/pv/emul-gate-op.c
>>>> +++ b/xen/arch/x86/pv/emul-gate-op.c
>>>> @@ -289,9 +289,10 @@ void pv_emulate_gate_op(struct cpu_user_regs
>>>> *regs)
>>>>           int rc;
>>>>   #define push(item) do \
>>>>           { \
>>>> +            unsigned int __value = item; \
>>>>               --stkp; \
>>>>               esp -= 4; \
>>>> -            rc = __put_guest(item, stkp); \
>>>> +            rc = copy_to_guest_pv(stkp, &__value, sizeof(__value)); \
>>>
>>> Oh, this probably violates MISRA, but you don't need to use a separate
>>> variable because sizeof() has no side effects.
>>>
>>> Given that the expression is now &item, I think it needs to be &(item).
>>>
>>
>> I tried something like that, but it looked a bit weird and clang
>> wasn't happy (at least in language server) because of the &(x + y).
>>
>> We also need to ensure that we're actually copying 32-bits scalars
>> (and not 16-bits or 64-bits ones) like the previous behavior.
>>
>> That diff seems to work though
>>
>> diff --git a/xen/arch/x86/pv/emul-gate-op.c
>> b/xen/arch/x86/pv/emul-gate-op.c
>> index cacc171115..b72a3058dd 100644
>> --- a/xen/arch/x86/pv/emul-gate-op.c
>> +++ b/xen/arch/x86/pv/emul-gate-op.c
>> @@ -289,10 +289,9 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
>>          int rc;
>>  #define push(item) do \
>>          { \
>> -            unsigned int __value = item; \
>>              --stkp; \
>>              esp -= 4; \
>> -            rc = copy_to_guest_pv(stkp, &__value, sizeof(__value)); \
>> +            rc = copy_to_guest_pv(stkp, &(uint32_t)(item),
>> sizeof(uint32_t)); \
>>              if ( rc ) \
>>              { \
>>                  pv_inject_page_fault(PFEC_write_access, \ 
> 
> Oh, that's a second bug you're fixing then.
> 
> Pushes of ss/cs need to be done with 4-byte writes and zero extended.

And they are: Access size is derived from the pointer passed, not from the
item.

Jan

> I've added:
> 
> The use of a local variable in push() also fixes a second bug.  On all
> but the earliest 32bit CPUs, segment selectors pushes are
> zero-extended 32bit stores.  Xen was not doing this for %ss and %cs.
> 
> to the commit message.
> 
> ~Andrew



From xen-devel-bounces@lists.xenproject.org Thu May 21 06:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 06:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314821.1584788 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPx9P-0000OK-03; Thu, 21 May 2026 06:44:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314821.1584788; Thu, 21 May 2026 06:44:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPx9O-0000OD-SX; Thu, 21 May 2026 06:44:58 +0000
Received: by outflank-mailman (input) for mailman id 1314821;
 Thu, 21 May 2026 06:44:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPx9N-0000O7-T2
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 06:44:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPx9M-009teX-Nf
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 08:44:56 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ea9d4-2eae-0a2a0a5409dd-0a2a450c945a-28
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:44:56 +0200
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ea9e8-62f1-0a2a450c0019-d1558034e1c1-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:44:56 +0200
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-488a8ca4aadso55951755e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 May 2026 23:44:56 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-490387d16basm4312945e9.35.2026.05.20.23.44.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 May 2026 23:44:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779345896; x=1779950696; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IxAi5nkJaxI+gIswepAgokuD+M7PHwZBEoGb7t9APro=;
        b=J7TWjKCa6Oy4qBSlyueh3Mg5os+Ptzv9SKdzyjt1nv7c5ybcgGFh3faCEEY88KQ1eb
         Sl3j3NE7GaRcBYNvd0/K8ljExMSKhhci4Xf0e0+hOJ8TOYLZE0imcnndCjY3R3TVkyv8
         sulwJYJTfd9WucT6th7SI9uWD9pN9g2XMAHzBR/SzDXU6/wgrsVPK4wsewsEiXZ2sP0v
         dEk1vaTT5WKDwvWu7MwwTiOb55gYRFJsTdtTosf8TGCa6ZEKg+guDa4KVECKz5rHMDd6
         F+gu9RKCXyQIVP9OWOO1BayICpTPbO2UjNwtjMKBBJG2EHJUcbN8QfNfNS0yNzHGh0BW
         Hk2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779345896; x=1779950696;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IxAi5nkJaxI+gIswepAgokuD+M7PHwZBEoGb7t9APro=;
        b=HvT2jTNmc/JwKvN68gwjBJkEkq98SO2Hcg/C3ihSXIAPRhjVO9mpxSlxUIQRaCkmri
         1WI14iCPBe3vDxhNEujJ7K1GQm0jXfqKEmG+Olf+UxMx5RVP0619hTfk+NKVGKtpTUva
         fjDg/VUd4j9SX3wUt23ZZWTE4HD+Vr2lWa1ev+iMPY0Pfzz20/4RR+XRKPVpktgnWnqZ
         NtRfe6G8eNl0TkM6cqMtpFWZSzuB95s/7eRG/mOmLBjznhd4DtD9HZhwB0P2XcfIhrwF
         UoMzsbN0rKwmgdF8H7E0aOfAGyWyqUXSTVX+2qiPxTP8LKgno7gwYVowG5Yja/4y+IwD
         L5fg==
X-Forwarded-Encrypted: i=1; AFNElJ/gwjJx4dCjtFIc1C87ubVlHwFpNvtjKi+ep8v2xyZMrYCmqCLSBHegzs3gWU6Tfh14qhqmSMrKbFY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyiEb6KHy8Bz7PjW9KpxrFH1/dCaz1mRLQ8zIjbXQUHHn5X0Ukn
	L5FjI7NGPykVBqoTKamXfIwf8NRxrZ6KkqQAcFO3h3h0Fk6ULDQWsuFijt9m+WSyag==
X-Gm-Gg: Acq92OGnr1ib1Ms7U00EF8fvbVtJu95udBMgqnYEi/I8KCetlUNXkKI2gJwl5i5LF49
	bALoeI+837bY2fTG5xFVkra0nPfzlWKqFxfAZN+bOXIq7tbUSsNJbhoCNTzgIjT97Uy4/8XWoxB
	ehFcrPz+pr1mBpEMgAq61WToVKr6kDF3A1Njt1scEXPvwQMnSjn9mdk8RK5AUO9YJq/dyUE+QCJ
	cXHnOSRpM1vuuzC6IN6dXtBJT7Wl3BF9QqiRsDdDR5Htqf4daAzBF3GtstupOd4viRWcPUeByeI
	kzqSzVnVtw4XLY4VAR5rwlTCeATn+55PEAJYJVmzoMdnPs78RKwRnVKQmJsJn13jf60rvv+mAcg
	Z60sEvoZQxzMfuoxZNq5/WaJmZT5obL8d3uzkPhqYV1QXsn7oSAapsFxW/oG96s06U/97hfV8YO
	f4i8DnWE7eMSi7exPQmAx/1133gnT705fqFXa9M9HSMNFQWyBMpvXhIFtOlcmIxvSGxxe/uJeOi
	uOMH1teYN190uM4IDdGBU+MYA==
X-Received: by 2002:a05:600c:4f04:b0:48f:d612:3c6e with SMTP id 5b1f17b1804b1-4903602cb3emr17372345e9.2.1779345896057;
        Wed, 20 May 2026 23:44:56 -0700 (PDT)
Message-ID: <799796e6-901d-47a4-b097-e97bf65a130a@suse.com>
Date: Thu, 21 May 2026 08:44:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] pv32: Fix bogus cr2 on fault in emulation gate
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
 <93cbe99f-a75b-4837-be6b-d6621d9f4d6d@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <93cbe99f-a75b-4837-be6b-d6621d9f4d6d@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1779345896-E397DCF5-26C85A25/0/0
X-purgate-type: clean
X-purgate-size: 1042

On 20.05.2026 18:27, Andrew Cooper wrote:
> On 20/05/2026 4:51 pm, Teddy Astie wrote:
>> __{put,get}_guest returns -EFAULT on access faults which causes
>> the injected cr2 to be off by 14 bytes (as EFAULT is 14) which is
>> incorrect.
>>
>> Fix the computation by relying on copy_{from,to}_guest_pv which
>> reports the number of remaining bytes instead of a negative errno,
>> such that we can compute the offset properly.
>>
>> Fixes: 70ad570b2799 ("x86/64: paravirt 32-on-64 call gate support")
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> 
> Given it was __*_guest() before, I think we can use the
> __copy_*_guest_pv() variants.
> 
> I can fix on commit if you're happy?  Reviewed-by: Andrew Cooper
> <andrew.cooper3@citrix.com>
> 
> Jan, this wants committing ahead of your MISRA change, as it needs
> backporting.

It would be slightly easier in that order, but adjusting the backport
wouldn't be overly difficult if the Misra change went in first. Yet
that's still lacking an ack anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 07:02:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 07:02:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314831.1584797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPxQX-0003XU-AN; Thu, 21 May 2026 07:02:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314831.1584797; Thu, 21 May 2026 07:02:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPxQX-0003XM-6w; Thu, 21 May 2026 07:02:41 +0000
Received: by outflank-mailman (input) for mailman id 1314831;
 Thu, 21 May 2026 07:02:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPxQV-0003XG-CE
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 07:02:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPxQU-00FLgb-Ku
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 09:02:38 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0eae0d-2eae-0a2a0a5409dd-0a2a450598ba-10
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 09:02:38 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ead96-aaa8-0a2a45050019-d1558029d814-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 09:00:38 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-4891c00e7aeso42448475e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:00:38 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49035c2297esm8955035e9.7.2026.05.21.00.00.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 00:00:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779346838; x=1779951638; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ouCcGRD1KuktTpn2DlaaXdwRIRgy+qFuCrU3nmUrPlg=;
        b=AA9mQiiuK4YmfatBmwxBkzm8F6j/TjUNSeCKrmJX5GPYSVbLibx/FPuO118CT2QvJw
         eRIOHa5M86PPO1E6K+Pf/roJU4YhbIz6CSeBx+FNd3+GekF7Em0G0CdZWw31zesKfISU
         Fc1m+EdDQzNKZrpFon2s+aRfdK9WQRRaQoaHr3HlqkIXv9R8269RmHGGpwmELw8aIXys
         3nehFfcp3wT5+2xnIn0A2foNgV1AWVllE12XYOhLp5pwIJWSNjIdkiTAfNybbW0OiJ+y
         7szIeWmQxoP1Od50s1GwXJ04jPonJCDtduOODp/51W9bTCUIy9qPYmZFxPjK8nNVEGWR
         Qmbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779346838; x=1779951638;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ouCcGRD1KuktTpn2DlaaXdwRIRgy+qFuCrU3nmUrPlg=;
        b=HJoaG/8qd/EipgE9VQnG+wvHkIAuVDILUQqv20B3BPKHroCM3EIRlkN5jpuyA8zPF/
         rX1/4fbVR0GfDtqODqNjsiv9NO9DGl+CltKYjcNCcNpL4KhcvGA2vicSDPl2IEGplcmG
         5Ahg1QlMxTYHPsvtgdfgyZ4ty5h/laYk+tq2nYjaYei4w7PbwEegSzW0fSvGkYM2GGPp
         vP6/uOV5CkR9/a6GY3ISjSCBxplK54o+AnrPWNGzFBZlDot+sULUdJFBzgGroiIZ889P
         EQY5NPhoBvr9Ub69J8ZbEDL8cn70c/TFibP83yNxRuQ/YYfRdY2hX8ue0GVBoDXLW34O
         B6CA==
X-Forwarded-Encrypted: i=1; AFNElJ8La4QPRlk/0gkwnEj0MM1Ko0r8n85SEJKhO+Ibf7D2+F0ohNZyO3kUGjxS9TxYYszs4mjkx3td+L8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyyDFNwOXuKGjF2m/+mBcN1VY3aazA33FLMXKcjOmpslWOaiGZ2
	8mSRNx7tSJr5b8E+JmcoZR5eVf/rtk25qxQWsbV39ugMyDMCiT/EKPjWDp+CzKgyYA==
X-Gm-Gg: Acq92OFshA7foRhKGSp81gHTDSMPcJugWDtSElIHeDKuDdRQ/Vvepitp+IJcasXRzra
	uSIVR5xzsO2GPYUzHeSFVDJAv94LtkDbyYlE6ez+D2SstYIhgDEdXpx7d7uajaWiJUv2iInicBh
	ODXMjL4f8WUEvqrw9+ee1/wLnblB33X2dFjjIGNSM3+D7CUBgxU6yGhme/lC3jTd6eRF0PDTFLg
	ESqmYIeFHcK/49JeXrpAuG72rhK4M4ruuVJQlckFcqJfDRGyDe8XORpFQY8vVNhoYZfXu5lKLD7
	AzVrixDRxSGcNS5FygEkdbVDLxReA4doxJXsklKBEhFAYOzJxz2Vn6CmuIrIIpsv/cB6VlN/WAa
	fFUcRG6hwZhJiA/A+k+ruVSjMYjgvS5Wfv15w2XCTCS5yOfjJs2iphAPOF6Y7IOJSc31tUHdlvp
	GsFy2IGrfzrCWygkOD5yZw/wbdTXNv2eVXc2A9su7yQHHxpfr8XsevRAMGgTRzJgBS1scOLHAyh
	CS4U+hbd1hytL8=
X-Received: by 2002:a05:600c:4c27:b0:48e:6f39:f7be with SMTP id 5b1f17b1804b1-4903605f44amr10738505e9.10.1779346837757;
        Thu, 21 May 2026 00:00:37 -0700 (PDT)
Message-ID: <340a3b2b-23ce-4039-8d00-5245ab252164@suse.com>
Date: Thu, 21 May 2026 09:00:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] pv32: Fix bogus cr2 on fault in emulation gate
From: Jan Beulich <jbeulich@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
 <0e23078f-30e0-4077-be1e-365a265603de@citrix.com>
 <1779295699.8631fc262581453bbf619ec5b2062170.19e4649c100000f373@vates.tech>
 <9a6f4d03-651b-449a-80d0-35077170c8c8@citrix.com>
 <09a27cbf-065a-44ad-8956-18f050202822@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <09a27cbf-065a-44ad-8956-18f050202822@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1779346838-D9F76443-0E1F4CC8/13/0
X-purgate-type: clean
X-purgate-size: 3761

On 21.05.2026 08:33, Jan Beulich wrote:
> On 20.05.2026 19:21, Andrew Cooper wrote:
>> On 20/05/2026 5:48 pm, Teddy Astie wrote:
>>> Le 20/05/2026 à 18:34, Andrew Cooper a écrit :
>>>> On 20/05/2026 4:51 pm, Teddy Astie wrote:
>>>>> __{put,get}_guest returns -EFAULT on access faults which causes
>>>>> the injected cr2 to be off by 14 bytes (as EFAULT is 14) which is
>>>>> incorrect.
>>>>>
>>>>> Fix the computation by relying on copy_{from,to}_guest_pv which
>>>>> reports the number of remaining bytes instead of a negative errno,
>>>>> such that we can compute the offset properly.
>>>>>
>>>>> Fixes: 70ad570b2799 ("x86/64: paravirt 32-on-64 call gate support")
>>>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>>>> ---
>>>>>   xen/arch/x86/pv/emul-gate-op.c | 5 +++--
>>>>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/xen/arch/x86/pv/emul-gate-op.c
>>>>> b/xen/arch/x86/pv/emul-gate-op.c
>>>>> index c2c699fbff..cacc171115 100644
>>>>> --- a/xen/arch/x86/pv/emul-gate-op.c
>>>>> +++ b/xen/arch/x86/pv/emul-gate-op.c
>>>>> @@ -289,9 +289,10 @@ void pv_emulate_gate_op(struct cpu_user_regs
>>>>> *regs)
>>>>>           int rc;
>>>>>   #define push(item) do \
>>>>>           { \
>>>>> +            unsigned int __value = item; \
>>>>>               --stkp; \
>>>>>               esp -= 4; \
>>>>> -            rc = __put_guest(item, stkp); \
>>>>> +            rc = copy_to_guest_pv(stkp, &__value, sizeof(__value)); \
>>>>
>>>> Oh, this probably violates MISRA, but you don't need to use a separate
>>>> variable because sizeof() has no side effects.
>>>>
>>>> Given that the expression is now &item, I think it needs to be &(item).
>>>>
>>>
>>> I tried something like that, but it looked a bit weird and clang
>>> wasn't happy (at least in language server) because of the &(x + y).
>>>
>>> We also need to ensure that we're actually copying 32-bits scalars
>>> (and not 16-bits or 64-bits ones) like the previous behavior.
>>>
>>> That diff seems to work though
>>>
>>> diff --git a/xen/arch/x86/pv/emul-gate-op.c
>>> b/xen/arch/x86/pv/emul-gate-op.c
>>> index cacc171115..b72a3058dd 100644
>>> --- a/xen/arch/x86/pv/emul-gate-op.c
>>> +++ b/xen/arch/x86/pv/emul-gate-op.c
>>> @@ -289,10 +289,9 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
>>>          int rc;
>>>  #define push(item) do \
>>>          { \
>>> -            unsigned int __value = item; \
>>>              --stkp; \
>>>              esp -= 4; \
>>> -            rc = copy_to_guest_pv(stkp, &__value, sizeof(__value)); \
>>> +            rc = copy_to_guest_pv(stkp, &(uint32_t)(item),
>>> sizeof(uint32_t)); \
>>>              if ( rc ) \
>>>              { \
>>>                  pv_inject_page_fault(PFEC_write_access, \ 
>>
>> Oh, that's a second bug you're fixing then.
>>
>> Pushes of ss/cs need to be done with 4-byte writes and zero extended.
> 
> And they are: Access size is derived from the pointer passed, not from the
> item.

Oh, while access size has always been correct, ....

>> I've added:
>>
>> The use of a local variable in push() also fixes a second bug.  On all
>> but the earliest 32bit CPUs, segment selectors pushes are
>> zero-extended 32bit stores.  Xen was not doing this for %ss and %cs.

... zero-extension was lost with the FRED work, so a 2nd Fixes: tag is
going to be necessary: cb29eed2dae7 ("x86/traps: Extend struct
cpu_user_regs/cpu_info with FRED fields").

Jan

>> to the commit message.
>>
>> ~Andrew
> 



From xen-devel-bounces@lists.xenproject.org Thu May 21 07:03:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 07:03:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314836.1584806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPxRh-0003zZ-Jl; Thu, 21 May 2026 07:03:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314836.1584806; Thu, 21 May 2026 07:03:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPxRh-0003zS-Gg; Thu, 21 May 2026 07:03:53 +0000
Received: by outflank-mailman (input) for mailman id 1314836;
 Thu, 21 May 2026 07:03:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wPxRf-0003zI-KS
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 07:03:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPxRf-00CcAT-0H
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 09:03:51 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0eae53-e002-0a2a0a5209dd-0a2a4507992c-20
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 09:03:50 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0eae56-229c-0a2a45070019-d1558031e0c6-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 09:03:50 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-488b0e1b870so81644985e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 00:03:50 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4903c99d807sm5076435e9.5.2026.05.21.00.03.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 00:03:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779347030; x=1779951830; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hpLc8YnZRk20ii5m5hYyQCZnBVJ6zKoRF/I1pDeV6SQ=;
        b=HW96XXf5SttyZjo1aSWC3vzr+I1Ja2duO5Jh4PNJcKYYH86i/O2Kqi/oy+cl4rFJZQ
         3tq7Yo8CqfWDdW0JIXeMtILDG8OY8cA2AIGCPfSirtTzQbewKMvV5aBtI8iXl5HYb3fj
         tyDI1b/z9eRYkQz5tDe1Z4zSWmwAtpcH+loT65yNyQueNYqhYHTOgGEZr5GRpI/Wjyi0
         O1edcQ8e7DKgUuCXL1t9u/mJMEZEgBp1h4QvJoeOOK3k+g3gF9vJMvpyXiNGi6ZOfASO
         Ap0zjV8YZ6M1ZFXfrW5hr2DSD04RYithGuIVUtySsDqBpPGybBi721MimguJv+CogHry
         648Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779347030; x=1779951830;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hpLc8YnZRk20ii5m5hYyQCZnBVJ6zKoRF/I1pDeV6SQ=;
        b=CTgpR5IO6K+hatcAwbBl+8BsSEU64+VC/KuZABShs2wibB3vYlaxmI/v+rnt0YttkI
         eWlgUuz82wgSlDkTvR8AeY6haCk/YGylyFF853AQq/85WTqEYYTOq7frXtKHho7+Sy9A
         Ysgdfen6DFC5SzkVQombaeklNh5URAWlgEp+gW6Rr4BcQyFmXLYnUEcEdMnPbc5xqRRa
         5E0KFeGZhaQlE6zrxDy9g4gQSmdwbE3iH6cxra3tgCpLBm7AQxkV5JTLqG4ixeVm1tch
         Z4lesXfCwur5EgEqmLCgPv1/+AIu3k6h+0dBWXg5cz67/f0apcNAjt+aa3coesoSduLn
         KDBA==
X-Forwarded-Encrypted: i=1; AFNElJ+rvxP+rj4iEB8HWFsCnBmrqX27E2NnjFsYPUtklQmv6Wbmu2LhVw9Duah6mEiQAGGH22BsFpaNmL8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyqZmvqGNvR3RHnr4WAuef4rHiliur93QBIVvu645qscnkMaCNB
	bwJ4DD6SLE7AdYRnEq2HKzih9bMtjmbYDHzvTFsTB7jD8pb2ISvvF9S9TNxlhEr6/Ie1+j6UTsG
	TFwU=
X-Gm-Gg: Acq92OFzTMUC/BZNwru9E8fB/FecvVdl8+dDOmeP1U5M1qtqonjprsU7e1T0bmGZ2V8
	W+HFaXMgzJGqhGAV2FWDpi//i1oByEcBNq1sJOOaYw9DFgRc8hJgr2O1bCs+MG+ZIvhtxWV7wRM
	kZOOig7+kVLpB35rhPDEhBG8rKFvyOdsD2xtedq4QywmzJ51lu1w4tNfNdOnf1voST/mB6YuUOu
	NHMaJEHS0WtSs92CYCx7zu8HenLujrYpMxFUpfkfrL6NILNZyDyXbvSlKqH6g26xE8mWHTAn9qf
	xQVNXyWFtvErZrIIwK0VRchY/PssF1GR/PNBwystl443vLKpvqVxzwR8+qHX33bM73jwiasf7u+
	3HBU/QAIKtn2OMmnXlImfisYYXYcVCf/zjVxQDUb8Wlp43bGwDKnhTO18GxdsiYSTl8TunmLP00
	ZwL8s4A9kQKId3W3jcjO04F7YHalM1WOUw4hTRiF68wqq16dDyIJYoUWTu7KuZmR8KOtLwCcYsH
	PXqt4lajv/Y+6E=
X-Received: by 2002:a05:600c:1c16:b0:48f:d2b5:d7 with SMTP id 5b1f17b1804b1-49036039043mr22525665e9.12.1779347030036;
        Thu, 21 May 2026 00:03:50 -0700 (PDT)
Message-ID: <c5bb55f2-1c0b-4493-8cb6-ce680b5358a0@suse.com>
Date: Thu, 21 May 2026 09:03:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] pv32: Fix bogus cr2 on fault in emulation gate
To: Teddy Astie <teddy.astie@vates.tech>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
 <0e23078f-30e0-4077-be1e-365a265603de@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0e23078f-30e0-4077-be1e-365a265603de@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1779347030-23F7EC48-55E0A41F/0/0
X-purgate-type: clean
X-purgate-size: 1732

On 20.05.2026 18:34, Andrew Cooper wrote:
> On 20/05/2026 4:51 pm, Teddy Astie wrote:
>> __{put,get}_guest returns -EFAULT on access faults which causes
>> the injected cr2 to be off by 14 bytes (as EFAULT is 14) which is
>> incorrect.
>>
>> Fix the computation by relying on copy_{from,to}_guest_pv which
>> reports the number of remaining bytes instead of a negative errno,
>> such that we can compute the offset properly.
>>
>> Fixes: 70ad570b2799 ("x86/64: paravirt 32-on-64 call gate support")
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> ---
>>  xen/arch/x86/pv/emul-gate-op.c | 5 +++--
>>  1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/xen/arch/x86/pv/emul-gate-op.c b/xen/arch/x86/pv/emul-gate-op.c
>> index c2c699fbff..cacc171115 100644
>> --- a/xen/arch/x86/pv/emul-gate-op.c
>> +++ b/xen/arch/x86/pv/emul-gate-op.c
>> @@ -289,9 +289,10 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
>>          int rc;
>>  #define push(item) do \
>>          { \
>> +            unsigned int __value = item; \

As per other comments, this wants to use uint32_t as type.

Given the number of comments, including some back and forth, I think a v2
really needs submitting (rather than one of us doing on-commit edits).

Jan

>>              --stkp; \
>>              esp -= 4; \
>> -            rc = __put_guest(item, stkp); \
>> +            rc = copy_to_guest_pv(stkp, &__value, sizeof(__value)); \
> 
> Oh, this probably violates MISRA, but you don't need to use a separate
> variable because sizeof() has no side effects.
> 
> Given that the expression is now &item, I think it needs to be &(item).
> 
> Can also be fixed on commit.
> 
> ~Andrew



From xen-devel-bounces@lists.xenproject.org Thu May 21 07:07:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 07:07:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314846.1584815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPxUu-0004bt-6g; Thu, 21 May 2026 07:07:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314846.1584815; Thu, 21 May 2026 07:07:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPxUu-0004bl-33; Thu, 21 May 2026 07:07:12 +0000
Received: by outflank-mailman (input) for mailman id 1314846;
 Thu, 21 May 2026 07:07:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wPxUs-0004at-JV
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 07:07:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPxUr-00FMZ3-Hr
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 09:07:09 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0eaf12-bab6-0a2a0a5309dd-0a2a4502c2d6-46
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 09:07:09 +0200
Received: from [52.101.53.2]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0eaf1b-af86-0a2a45020019-3465350220be-4
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 09:07:08 +0200
Received: from BL1PR13CA0212.namprd13.prod.outlook.com (2603:10b6:208:2bf::7)
 by MN0PR12MB5882.namprd12.prod.outlook.com (2603:10b6:208:37a::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.23; Thu, 21 May
 2026 07:07:02 +0000
Received: from BN2PEPF000055DD.namprd21.prod.outlook.com
 (2603:10b6:208:2bf:cafe::ac) by BL1PR13CA0212.outlook.office365.com
 (2603:10b6:208:2bf::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.16 via Frontend Transport; Thu, 21
 May 2026 07:07:02 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN2PEPF000055DD.mail.protection.outlook.com (10.167.245.7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.0 via Frontend Transport; Thu, 21 May 2026 07:07:01 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Thu, 21 May
 2026 02:07:01 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Thu, 21 May
 2026 00:07:01 -0700
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Thu, 21 May 2026 02:07:00 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XUKrdQjw/Al4dhb44yNpSOalj949dxfYLuR778quSdznIPEIldg3xcFDe4kqZBsy07IRtJr6ucF6QGor5TvOkG80c+FH7B4PrrKx0TwjeGv8pVqGJN2dOhvxXJoBoJbAhWH8GZ5XfHFpDrkhLLrMZksMHJgdEQq1XHmqzTy002c/o9rGBdKbgjJhUuYpSH47Lu2xZUfU4ChfyS8r8PGR5jXRfqZmbobgFBTrzK8FbgDGpjrgy0/eyV+MJWiKjdhXF5ketl9luBhrvR6+cizEg5S4PidkDUl2mCfnPD0Z5yC6F1udlSFlx36AasC2SzE9XPdaYjMqyGv/V9icQXPqJA==
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=r5mGbkkwVs8s/HN7qOdJ3f2S3rRuN4gFpBiFq5edXAY=;
 b=S+jHg9qA0Xy9eIsiSrOOb9bsgw8AQjO/bBamRWKda0NoO3Iullu4BNc3Xl+IQ9yNBc4ulj3Cv3IpcXbXQHlS80qIuzTB1dhL+g3FJAT27q4Bxpq2cuHTaKX+dnQcqa93jKhr614aQ3PzGOReFf/udc+y6PWxcsJ+njz3mG5ZZfWxZgM8Reb0xTJ0KvH9R8KJIWXA+3E36xMrAKGByAURwH6YfsZW2e3YiTTyFSRA86zhx/V0GWP1cv8/jjZ3K5JZE2Bm1fos3qv26KfmE6oLbnkHIiMmqDJeNvx2JIGa3UofcKCcdpcgOw44ZZ2DajpmtNaVucbcdHiw5vIY2wiwNg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=arm.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=r5mGbkkwVs8s/HN7qOdJ3f2S3rRuN4gFpBiFq5edXAY=;
 b=hucckEj65C20c56Gp5Rk696KVt/H5LNWTxG6yP+WKprKkLPClwUoX4ao4SxRDwn8YiF7Xrp/FaaCtSq3zgz3PCmuYyct+tBdszXFF0L+y73iEpUtPPl8uiRpX+bWDszYUKgp4bvELvHE3SOEehazjjhAoiqWq4cFP8EiiWreaJw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <7bde7370-cd19-414b-9b53-37aaf076ba82@amd.com>
Date: Thu, 21 May 2026 09:06:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: gic-v3: Fix redistributor wakeup polling
From: "Orzel, Michal" <michal.orzel@amd.com>
To: Luca Fancellu <luca.fancellu@arm.com>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>
References: <20260518070524.19813-1-luca.fancellu@arm.com>
 <64094528-9c9c-47d4-98b6-640df0a9df3b@amd.com>
Content-Language: en-US
In-Reply-To: <64094528-9c9c-47d4-98b6-640df0a9df3b@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000055DD:EE_|MN0PR12MB5882:EE_
X-MS-Office365-Filtering-Correlation-Id: 54fb5fc0-ff66-4e0f-a2c9-08deb7078eac
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|82310400026|1800799024|376014|4143699003|56012099003|22082099003|11063799006|18002099003;
X-Microsoft-Antispam-Message-Info:
	UVJRqD3vO5HgX/ihiQybGymvamTkkWI7IX2Q59T1bwFhW8WpR9WwHKpwpeQ4uSOzqQdjNUmpPAbc/I3u0reghtCP0VTM13Fbsy9TOqV5oGBsThg/f/GFsZOB0xgPfQdrM41xZNjYk7UZmgwtLbcQUlwBTNcVv1zCnYaDZjGojtXSdKgq32OkHTgPn6SqUmeOZDdKMGFl8nZ+p9d3t4bXsU064Qm4muUy9mjD9kTmhxJ+Bby2OokJf3dJW50TOqzBeCi6pjnDUK0u3cie/knGqWf7cz1iRf9FJaG9ceM3Hhl+bk+Zk5EQ1rBfBcLbC8bs54nj6rGUMwiAZXOa+3vu4dVrj600JwOSYWJF7YJgdewbSD0Mt6SOHxVyqu5AIu/Iz03fAHCEn7ocsXLuL6yR5J7BeO4wCRBpUACSQ1bdHdXiZj3E3T8sJRj/F3uoCmI+5z2hOSW2UqlNQtfFoR5ikDnreo0SXraCUieo80N2XwxMBlhMEIpA8wrbGGqKOosi7kqyWNXLIKqRGuBBR+T9lBqfzFILLFserP0ms/ZRFp5BaFyxKUR00BwZQn7+UCmhVdOqZkPGGZahvLbBfLfhEMhoeMAvRa2AmdVerDQ9ZTVisTx7aD5zg3MpyK6mVNOrpHkmNkdGSUgG7M5bJwMYwsqqI6m5tLVPmTuSY/A1tYTA0wmgrzC0ZLqSEilXwVn534WiFU+XGkGg/Sle9mI6ziMJ5LUOLHo75zit+HQ9cmM=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(1800799024)(376014)(4143699003)(56012099003)(22082099003)(11063799006)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	I7G4GwQPvU5T8ozxW51LG8U15vTABeWZe8MvgqxcKXk3kHzbaBfgZarEDsGZ84n4sXJ3eavTCHpphpnlVUBWVonYGPlSg9GHdq6oklP71fW7aBrKGeJ60plV4zxJB5OtyibjmPKWYr5l/AV70GwIdeB/foFf2NkiTQjROwGbw9xFX9E7Zq8ESy2xTNSRDppfPEDmchCkYLguxQl3+db2fYPOIbf5DnQ+vNISwBPP4hpENV3Vzgr5+FOsNNwS2SnSbA44guQdaCj7+brzZjGZ+b9Czw9NdDMgUtJNFgxkPtSXahbVaAuvurdfP0Zl+3ZRrnMKpP1rX6OvU0FL7P5H5D/NN+Jur+3aJvfjIlLNlIIYa3jWcQnbhbud9OULE7LKVtRLYmEkn/gqqG4gk0IP+lHPb2LBj9DOI17BoJSWtd/+BtXvDk1MtmOiu+yPLl0d
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 07:07:01.9123
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 54fb5fc0-ff66-4e0f-a2c9-08deb7078eac
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000055DD.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5882
X-purgate-ID: tlsNG-720697/1779347229-AA374161-19C4A849/0/0
X-purgate-type: clean
X-purgate-size: 1109

Oleksii, can we ask for a release ack for this fix?

~Michal

On 19-May-26 09:19, Orzel, Michal wrote:
> 
> 
> On 18-May-26 09:05, Luca Fancellu wrote:
>> gicv3_enable_redist() clears GICR_WAKER.ProcessorSleep and then waits for
>> GICR_WAKER.ChildrenAsleep to clear, as required after waking a
>> redistributor.
>>
>> However, the polling loop currently uses "while ( timeout )". Since
>> timeout is initially false, the loop runs only once unless the timeout
>> path has already been reached. As a result, Xen can continue before the
>> redistributor has completed wakeup.
>>
>> Use an unconditional loop, matching the surrounding timeout/break pattern,
>> so the code polls until either ChildrenAsleep is clear or the deadline is
>> reached.
>>
>> While there, also fix the timeout message. This path polls
>> GICR_WAKER.ChildrenAsleep, not an RWP bit, so "RWP timeout" is misleading.
>>
>> Fixes: bc183a0235e0 ("xen/arm: Add support for GIC v3")
>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> 
> ~Michal
> 
> 



From xen-devel-bounces@lists.xenproject.org Thu May 21 08:05:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 08:05:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314878.1584825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPyPF-0005HM-Ow; Thu, 21 May 2026 08:05:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314878.1584825; Thu, 21 May 2026 08:05:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPyPF-0005HF-L4; Thu, 21 May 2026 08:05:25 +0000
Received: by outflank-mailman (input) for mailman id 1314878;
 Thu, 21 May 2026 08:05:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <armbru@redhat.com>) id 1wPyPE-0005H9-1z
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 08:05:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPyPD-001dm3-Aa
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 10:05:23 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <armbru@redhat.com>)
 id 6a0ebcc2-bab6-0a2a0a5309dd-0a2a45068450-8
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:05:23 +0200
Received: from [170.10.129.124] (helo=us-smtp-delivery-124.mimecast.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <armbru@redhat.com>)
 id 6a0ebcc1-7371-0a2a45060019-aa0a817c56e1-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:05:22 +0200
Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-467-qw9n426LN6iHWRGDsun09A-1; Thu,
 21 May 2026 04:05:19 -0400
Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id D0BD218005B8; Thu, 21 May 2026 08:05:17 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.44.22.2])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 7804118004A3; Thu, 21 May 2026 08:05:17 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id F194B21E6A26; Thu, 21 May 2026 10:05:11 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mimecast20190719 header.d=redhat.com header.i="@redhat.com" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:content-type:Content-Transfer-Encoding:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1779350721;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=gp1cainvmRZDg+ymp4bpKIlx91SzYg0bZQEDGX2Yx2E=;
	b=OOSwfmRNYKMRkx5Ss5LUYVd1is5GdTBre1o4vCFY3wA2LaPmkmcEO6xbetu3+TbT9ktORB
	LS2oOrXOtr4F0694vb/yrOrR/8n/EUNo4GkQAIKVX03VJw72Jhu8y8+sl1bIssiI3yy8OZ
	fpGWSxlK0iCLIlWlKMc8VsC7wdbLF/I=
X-MC-Unique: qw9n426LN6iHWRGDsun09A-1
X-Mimecast-MFC-AGG-ID: qw9n426LN6iHWRGDsun09A_1779350718
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: philmd@linaro.org,
	pierrick.bouvier@oss.qualcomm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 10/39] MAINTAINERS: Drop bad F: in "X86 Xen CPUs"
Date: Thu, 21 May 2026 10:04:42 +0200
Message-ID: <20260521080511.999266-11-armbru@redhat.com>
In-Reply-To: <20260521080511.999266-1-armbru@redhat.com>
References: <20260521080511.999266-1-armbru@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93
X-Mimecast-MFC-PROC-ID: M_Luv-jqENN8Zl-08zWmetRlQaFhgeMHeIQJ4FZFhy8_1779350718
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
content-type: text/plain; charset="US-ASCII"; x-default=true
X-purgate-ID: tlsNG-16d1c6/1779350723-8C07ED75-E43D1EF4/0/0
X-purgate-type: clean
X-purgate-size: 836

include/hw/block/dataplane/xen* does not exist.
hw/block/dataplane/xen* does, and is covered.  Drop the bad line.

Fixes: fcab2b464e (xen: add header and build dataplane/xen-block.c, 2019-01-08)
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Anthony PERARD <anthony@xenproject.org>
Cc: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Cc: xen-devel@lists.xenproject.org
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 MAINTAINERS | 1 -
 1 file changed, 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 65a1dc99b2..44e5f096a1 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -640,7 +640,6 @@ F: hw/xen/
 F: hw/xenpv/
 F: hw/i386/xen/
 F: hw/pci-host/xen_igd_pt.c
-F: include/hw/block/dataplane/xen*
 F: include/hw/xen/
 F: include/system/xen.h
 F: include/system/xen-mapcache.h
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 09:15:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 09:15:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314933.1584861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPzV5-0006e2-OW; Thu, 21 May 2026 09:15:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314933.1584861; Thu, 21 May 2026 09:15:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPzV5-0006dv-LY; Thu, 21 May 2026 09:15:31 +0000
Received: by outflank-mailman (input) for mailman id 1314933;
 Thu, 21 May 2026 09:15:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dongli.zhang@oracle.com>) id 1wPzV3-0006dp-7n
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 09:15:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPzV2-002Cva-JL
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 11:15:28 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dongli.zhang@oracle.com>)
 id 6a0ecd27-2eae-0a2a0a5409dd-0a2a4502ab64-38
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 11:15:27 +0200
Received: from [205.220.177.32] (helo=mx0b-00069f02.pphosted.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dongli.zhang@oracle.com>)
 id 6a0ecd2e-af86-0a2a45020019-cddcb120a38e-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 11:15:27 +0200
Received: from pps.filterd (m0246632.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64L1PZ5K1648965; Thu, 21 May 2026 09:14:47 GMT
Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta03.appoci.oracle.com [138.1.37.129])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4e6gxx0upw-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 21 May 2026 09:14:47 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7)
 with ESMTP id 64L9EgKB006459; Thu, 21 May 2026 09:14:46 GMT
Received: from sn4pr0501cu005.outbound.protection.outlook.com
 (mail-southcentralusazon11011023.outbound.protection.outlook.com
 [40.93.194.23])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 4e6f1db73p-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 21 May 2026 09:14:46 +0000 (GMT)
Received: from BN0PR10MB5109.namprd10.prod.outlook.com (2603:10b6:408:124::23)
 by DS7PR10MB5901.namprd10.prod.outlook.com (2603:10b6:8:87::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.14; Thu, 21 May 2026 09:14:10 +0000
Received: from BN0PR10MB5109.namprd10.prod.outlook.com
 ([fe80::d9fa:7ad2:804b:bb83]) by BN0PR10MB5109.namprd10.prod.outlook.com
 ([fe80::d9fa:7ad2:804b:bb83%6]) with mapi id 15.21.0048.016; Thu, 21 May 2026
 09:14:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=corp-2025-04-25 header.d=oracle.com header.i="@oracle.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-oracle-onmicrosoft-com header.d=oracle.onmicrosoft.com header.i="@oracle.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	corp-2025-04-25; bh=OIwUQ+Mq3z0V3bUEfW3O9y5O+U+X9Qd2OPUf1RyxbvE=; b=
	KsElKhrKyr9/qDfQUC3Hgt2TLssSO7a71uukg6GD3rY+iHAX+19OeROjsHY+SrHn
	OsdKorNzzWyaBYfori3j234DgZ70RNd21CdeLyUzw/rlIOG8C59rDKxBjaD0MLjh
	vGZc24A96teBnomfr4Ae4KTPi6hHrYrBNUr+/q7Vqb+Q05X8Alk1pebXixwYNuSU
	qbOKJ2KF3+WUmrq+/ZCG838mnOcprdudjJZ3tkxtB0j8g5x6369OfNP5TbuoSJ+4
	QsJ3LO/nzrwIKQkTj2OARK43XPfvOchUI7JWrqlRP45vQ2n/0/3BeEfvchUW0KOd
	hQOkKLMCIGKLhtxzIC21uw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oMmkVcDna5+VrvzDnOIFsZGXbZZdiKEPbmyA/VspjZ44wTSTBzigDfkdR5duNRNwBswF5J6LwUXfYGRMdQk+OlKUgz7G7X/yTyr8ItEsvkm6e6qEm/eAXVWyHoJFdDtBXqsqIuF0NTWVOEUp9WCbPzIReFt6cc696WX/fRkcoM96nAgBfAtUmmZpFCPNIGtqzI/y67ENcAWjPx/9pzpV/LC9dApFgoZaevl7zeuAeFY/eMNOdj2vzonOcKChZrpbLEFCS9GpsLzpMOq0X7TxbSIhrRTE5zMMwKCw5LjTcpaVKMMu1nVOzQyyaCJbkRgrO2cunf+eAhce5Es9CZukWQ==
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=OIwUQ+Mq3z0V3bUEfW3O9y5O+U+X9Qd2OPUf1RyxbvE=;
 b=JjOpABXxOqcpvGSSWNFwsAq8NCdlid9tnZMnVe7utug05dXiFP7qZhWFPVlhbQoWYsrLFnM1rhlr/ergqrRjBJTwBJ0h8HSBcPE8z+vwTkA0R7IkLVy0sW1FMzhdsToIo+ux4bLgo0wRnu3lNASxNsl9ZX5WZPRsU0rZFw4AlRwFAx/9yjygoD7qRP8T0WkP3vWqK2/pR/OoFcTnsinJs9OeEIGKBKY92ryRe3lJ5iXfKdEJe1Z84MPSUxovO/iMskwcALUaD+zlopnSAAddkuvkYPVDNmlWcGtcHzfzb5UU686AM6WQqJlbEIz3mdEiWRu0UO98jcQZ1A7HjQnOPQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OIwUQ+Mq3z0V3bUEfW3O9y5O+U+X9Qd2OPUf1RyxbvE=;
 b=hjpxMjx/gQ1avbUMWez/mannnaNbtZ0/b5UcGRRMaVfRr32bu/OZQbpyblI5Te/AJv2WAEqAqkuYaMwgY2yiXlpAWHvcKcQWQ598a9QYFbnwnrgA6zwmq9qmniESYYjJsXbHH8HVOk57i6EbhBdY8hUksTWHnL7DyLuljZ4jsco=
Message-ID: <c54fd01b-fe22-4c9c-8d5f-5b317de07a40@oracle.com>
Date: Thu, 21 May 2026 02:14:05 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 37/41] x86/kvmclock: Use TSC for sched_clock if it's
 constant and non-stop
To: Sean Christopherson <seanjc@google.com>, kvm@vger.kernel.org
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>,
        Vitaly Kuznetsov <vkuznets@redhat.com>,
        Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Stephen Boyd
 <sboyd@kernel.org>, x86@kernel.org,
        linux-coco@lists.linux.dev, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org, Kiryl Shutsemau <kas@kernel.org>,
        Paolo Bonzini <pbonzini@redhat.com>,
        "K. Y. Srinivasan" <kys@microsoft.com>,
        Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
        Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>,
        Ajay Kaher <ajay.kaher@broadcom.com>,
        Alexey Makhalov <alexey.makhalov@broadcom.com>,
        Jan Kiszka <jan.kiszka@siemens.com>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        Andy Lutomirski
 <luto@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>,
        Daniel Lezcano <daniel.lezcano@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>, John Stultz <jstultz@google.com>,
        Michael Kelley <mhklinux@outlook.com>,
        Tom Lendacky
 <thomas.lendacky@amd.com>,
        Nikunj A Dadhania <nikunj@amd.com>,
        Thomas Gleixner <tglx@linutronix.de>,
        David Woodhouse <dwmw@amazon.co.uk>
References: <20260515191942.1892718-1-seanjc@google.com>
 <20260515191942.1892718-38-seanjc@google.com>
Content-Language: en-US
From: Dongli Zhang <dongli.zhang@oracle.com>
In-Reply-To: <20260515191942.1892718-38-seanjc@google.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PH7P221CA0040.NAMP221.PROD.OUTLOOK.COM
 (2603:10b6:510:33c::24) To BN0PR10MB5109.namprd10.prod.outlook.com
 (2603:10b6:408:124::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN0PR10MB5109:EE_|DS7PR10MB5901:EE_
X-MS-Office365-Filtering-Correlation-Id: e9dac266-67c5-4e93-f890-08deb7195179
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|7416014|376014|1800799024|22082099003|18002099003|56012099003|4143699003;
X-Microsoft-Antispam-Message-Info:
	24kQvVzRECU0IemoEPxAHq5MIb8pgBFGzdT9zsqt/x5CrsJv2vtqJgCoqDzJlCuQfLv6vAXLP5RV7CP6PMy3q3pOph57C0lwhR2ZqPpACUQDs6r/hFqjI5ZehkJ56wNV5m3PCoRxmsI/KKjKmtpqBUPqOtyZYCHM8rRM9R6cWhpz94PwluGT9yDImi2JKGpIJ8eWrM51Hg+OE+OgUXayoM3RUYsfhzwsPAT5cVahSTA/yX07YUvhvQyHZlOnyKqfetOKEQD83ohuWD6KkHFdP5TtYsrg+CIu64f3lKHUaQ/lWugTnzIFyaSvDwdOslKTTF4b4t//3igTexpD7kJu0VtZKQQtmZmll1Ez7V4n+LTlq0YPKvDn5wL7d4yCvYjdQaphMw988GBe1p8kaX8TWalsnvPlYCeMxwNb/wh4VCxEEPgbDl+j4z3IEOGO7ACiCEEf/Psp/t2GdP20l3ZvEU0ZNBIUM6TwoN17kBMrEXtPHZ/KHp1Ks5VqOGJwZW/SluqCQ8Gf2PzH/qlTec+0XbK165YwLzj0c2+dOSbOepGeT+7cGkJNhnGejUXDH7R/WIFi4+Vs5QcvA33/YHIdcEmzaJdME3OdXuVq4+1idHGCmnlQWvWGd/5XTQzIKr+/aiPinytQGUVviPN+yeJmGWPD15YoBOqxpW0krqyomomE84w0EMjwLiKcOp1Yr2zA
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN0PR10MB5109.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(22082099003)(18002099003)(56012099003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NmkzeHk0dm9Xc0l1ZU13bnIzL294MnJrQ25SNUxOa1JXQi9ZbkJVYTU5OWZB?=
 =?utf-8?B?Znp3eTg2VlQ3Rmtia2JmYjMxUGpjam5RanZGdnZxRnBzVk1VR3BTcVFUVklI?=
 =?utf-8?B?UUdncW5DVk5PK1Noek9YQi9MOEVlcjVsZU1jZVFiTEdMUzBmVnl0QlU2dFgv?=
 =?utf-8?B?N3U2MHpVU0p6K090ZlRaaWFDWk91cFR0SGxwdzk2dW5Id2p4aCswYVhTSDdk?=
 =?utf-8?B?TFE4ZWJRMmFFVUdqOERKd3R0akhDREdlaDVDUGJsV2tLU284ZDJFUTYxMzRU?=
 =?utf-8?B?eEZzQ2hzV3dpYXF0R0d6UmtCQUcvcGNVNHNMSlNvbWJoU2tMTHNiejZyaEN4?=
 =?utf-8?B?VitFTVRtQlpDN0FRRGx3RnEyUmgrZVpxa3kzU2RYY01VRWR5UjNYSnRsdjdm?=
 =?utf-8?B?MTFPcWs0Znl6SWcrZUZkcUxKQTFONDVCR05kKzlWeEticCtWRFEyNWxwYTQy?=
 =?utf-8?B?UlRjSklFenRiU3Jwa0plUGIrNGIxN1h2RzlwWnI3OTBPVWhwWWpEbG5oY3VF?=
 =?utf-8?B?Nzh2WGdoSHhvNG5lRVRrcDRNYjh0Q0JaYUlURHBtS0JTNXI0VkhzTEJxMUt4?=
 =?utf-8?B?dk45ajl5UWd2b3U3ZVcvcXNTdnk0dXhIdzlhOWFlMEcxa2Z1UVVXbnVDV0p0?=
 =?utf-8?B?K1RLNFkrczJwaFBsdERBQktwd3JGaFlvLzZDZi80SDc5NTJudGd1Y2VGOExQ?=
 =?utf-8?B?K0tBalN6RXd2MWNtQTdwZUt1YkdvekMzVW9NUkVXZzlmVnRUQ21wUFVPV2FU?=
 =?utf-8?B?Z1ZMamloYitWR1VqTmt5VnByRlJ1MlNtbzBqM3NrM3pDUWw3Yit5cXFMMU9W?=
 =?utf-8?B?Y2E2bzFmVCtlWWNiZDA3ei9iRWRYRTlyWmZ3U3lDMUpTMzZMSXFqT2pWeFBY?=
 =?utf-8?B?V0ZJaDJQK1hKUlk0QmRxc0hsUHg4TnRxTmxWVVowT3V2Ym1MemZrM3l1T2wy?=
 =?utf-8?B?cWx1M0Ntc0gzNG42Vkp6RmJna0dVT3pnZTdkcGxSRkJYZWR6THVLMGNsenNJ?=
 =?utf-8?B?WGVoWkxsRFZoc0xSWmk1UytKR3FTQUR5VnFQcHFlcnBNSzZVRDEwWjU1K0V5?=
 =?utf-8?B?UDJiZXdCaFQvTDFVYXhENi9FMmwwUG5wTGJGSWtQNndBcnNuSG9xM1BDOUht?=
 =?utf-8?B?N3BWOWs0MEJ3L2ZabWtLTlhlUzk0K2ZsTjNEOXUwTTZlbGJhalFQM0tkRFF2?=
 =?utf-8?B?dGd1bjBzWTA3NFpyQmZEQUY1S1hpMm9KM2NXSXhBNWsrVlF0Q1ZKamRpbThO?=
 =?utf-8?B?RXJ3STliaFp6TysyQzVRSW5vQXhEdXUvUzZIZWx3OWNubTh5RHBwQVNJbzJy?=
 =?utf-8?B?b0ViU2tpMGJGL24vMHlDSjdROStGYUdTR1l0QmVoRUJqMmNmUTRjZ1BHNDNq?=
 =?utf-8?B?R04rQ3ZRK3REek1yNzZseWJtNEMzdUtGdnJWUzlXbCtMNUs1cW55QXhZWC84?=
 =?utf-8?B?b25zcjBuc2hyOCtMU3k4djU4S0tWdEh3V2NZL2ZRcUdUZ1hISHMvTVBKRmtO?=
 =?utf-8?B?Y3h2YzZNN0lMSm9hK2s0Q0d3ZjcxMnpkSFgreExJV1EwVDc4bGFOd2tDOGlo?=
 =?utf-8?B?UmVqQUpQQ3dveXNZa3JsWTl3VkQ4cXhPWEt4b0NyRC9IVXV1d2lHWnVKNTVa?=
 =?utf-8?B?cFNVYUt6NnJiZllhYTJ6N2RMQTB3SEpPbzlvQ0F0TC9tUWFGcXV6QUNIUDIz?=
 =?utf-8?B?VllDSnA2c1FUN1JRempvYUZYeTBNQTByZWJHWTl1SjZhK2ZNcnlYLzQzWVFz?=
 =?utf-8?B?MUY3Q3QzdDd5RG9mbmNaUGdvZHdjek5XVW1KN1Z3Tmx4bGRlb0Ixb3I0QTJw?=
 =?utf-8?B?dTVYa1dOeHBCZFp4SE0vZlBtWDhCeXI1SW9rOSs0cWJoUnNBUVh5bkVkYVI2?=
 =?utf-8?B?KzQ3NVhpVkFoOXEzRTFjTHRHZ3hMRGlaSHpGZTJXeU02QTA2S2RFVDAranN3?=
 =?utf-8?B?WEpVQ2VEWFBqYTFOZEttelRBNE4wU3Zua2ZMR3FsTHpxT1hSSkZ1UzBmVnU2?=
 =?utf-8?B?WUlkUXF6bEg3aXhFU0V3ZUdzendLTXlhS092NGJoK1MwZWRlbkRHTDBEeVZv?=
 =?utf-8?B?UGVhQldtS3Zpb1JBRVhzUkFWKzZ1bFBidnRGMjY1MDl1Z2sydlB5U2ZXOXBE?=
 =?utf-8?B?NE01QUp4Z1RsS3NyMURaRG1YaEVXTzNFM0pyT0xLM2NiWHMzM3BjNUJyTVNs?=
 =?utf-8?B?aitUZXhpRVMvd2lYdkNxTWRwSlBGZGcrS1dPMnM0UHdtMmZVeGZKNm5odlB6?=
 =?utf-8?B?ckt0TTFCSzcyb2Z5OFRtTWM4UHpQQ2xzejFrNTU3WFFWWENBeERIdno3bUxl?=
 =?utf-8?B?T1hpd2dXOUVDWEpQdTFjbkx6Rmd0R2lMTmRxeksvd3lHaVBrNXg4TnR5KzB5?=
 =?utf-8?Q?nUr1LVMVNcqzvIns=3D?=
X-Exchange-RoutingPolicyChecked:
	r/aMK27DBZ5omRmnw87u45ukgI6Yh93acU+nKWkmu64PfRo95asypkVBU1Gw1sR7PxRQYbDxm9eZ1rxVZkgiaxrqjRRMQbFm0FFgVfD0tp7JqkXZyXAUnLxybPm87uEC7JSt2A1fPxDaxqjeYIVU+JyQA93WX4DCDXWY58S78vs+iIYG7VcXfEVdEjn9Au3E7gcnxWT1pOhoBIFlBpeSgZ6YfVUd7xoCK6C5PtZ295BFSxV/ohtWeRryJeq9U8AQ0F4+XLDDDRjLAfzCY/q9XWh47yeTtvnTeCCDqMHNge5aEzBKP8jw7zD6sOc3BFG6ziYg3Vfemk5LfHb34F/Gjw==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	VwyTa46qmtiMPKOGpWVqduIsyDbdnlqf2k8Suyit6rsPV1gX6PBDLQKZRY7Ns028Rc4Rnci1pmFH2mxQ6GyXfgwtRuKtjviPuOKgmNR0HqwGMRv2t3SGBTq7EF7Pfc1GGzU5OACsJ+n49M+fIAsrxeZTbiriFLjP2Qa0ukHsm2FFdiQCsRgzY/PUAUqZ5WKajdxsUygD5tOuiXuTPSTHCmWG4uZUck20gcwDBMZTYg1lX2RmaN3jcuqQ0FwPhu5RHUQP7eIexi/zjTDqPPcFWWCiuNZ3BJYtBn7P3/THKy75HAuhr666eDh8beDU1R5GQywmXNtERbkToGmPKmZIWeZGVTXnzXy7/kqZvK0xmgFcA434WdTEUHt7mW+oH+woydUzXa08EfNUdEIhbAWv4kU3ksueOtX2cdimUuSH991tu7Vk70XskkOj3TXPQ9Y241WnaR0zrylt3GIGbaAhh2o/lpD6szcAWgzr/ddrOJ73z82EtSeNZasMNK/MCN5+osTD8eUIbN7m9x/4HO37R5o5/PT2jZJVY3zy1bHMh6UOy4CwjD0Sbaqo/FX0/PPh6dhcM82IJ5Wz5julmGpoq+kIWzjPzZNTwOKUaXkKId0=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e9dac266-67c5-4e93-f890-08deb7195179
X-MS-Exchange-CrossTenant-AuthSource: BN0PR10MB5109.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 09:14:10.5028
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ImDLn1WoPl8lQsGBFpQk9lmKVqJQ48uOknIaKeLR3Q8YHRWuF4NzEkRquo8H7CygzKtocJvwFluBp3+tdzwoeg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5901
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-21_01,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 suspectscore=0 mlxlogscore=999 adultscore=0 mlxscore=0 spamscore=0
 lowpriorityscore=0 phishscore=0 malwarescore=0 classifier=spam adjust=0
 reason=mlx scancount=1 engine=8.19.0-2605130000 definitions=main-2605210091
X-Authority-Analysis: v=2.4 cv=UOjt2ify c=1 sm=1 tr=0 ts=6a0ecd07 b=1 cx=c_pps
 a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10
 a=NGcC8JguVDcA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=jiCTI4zE5U7BLdzWsZGv:22 a=3I1J8UUJPc9JN9BFgKH3:22 a=x44POAVFR4TL_THfJn8A:9
 a=QEXdDO2ut3YA:10
X-Proofpoint-ORIG-GUID: c1Aj3caNtlePCMRWmEJ9PHv6-J8wM_Xv
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIxMDA5MSBTYWx0ZWRfX5/PNePRRk1Sx
 asmthYZA0q/N5hLPX5xdAcnMywXh7LHMNAMsjpZEIcgBWQYPstfPMBRFM4Djf6ei7xpNv1V3tGf
 40dwA1zp+T3aRcQE1Wa3qTNs1QJt5UXUClRigrgiBBi24Q3Ry0mHnUiCP2qBhIZkJBV6ke5K8I8
 /A/P+hTBN996E+9aJhDDY7WWTm/A7RUCAWVEubVdPyqiDwhL1azDDhverIkHH5NxL2o9kDwYeuQ
 hE94H4UtFaMiWOZDi4L5JOMXMVnH3YJZi0OyMX/bRkGaFgzcX7rXrrmsOYbA2zOcm2UF3aUfYoC
 lPpureNOy4G10SB4wYghmdohK7fs+cjb7Yj+pGduY5lZFAoc4SuhtRT16fbmxXpWcQUBR9Se/v6
 UTiQ1EFlKigTqT8ho4wDw6I91gHZTNqMKO5dbgNekm55ytnUwMnp0Odh0G251eD5sBPUZh1FhNr
 rObKcDYHaPgBWMxUMcg==
X-Proofpoint-GUID: c1Aj3caNtlePCMRWmEJ9PHv6-J8wM_Xv
X-purgate-ID: tlsNG-720697/1779354927-A8D7F161-01413469/0/0
X-purgate-type: clean
X-purgate-size: 1502



On 2026-05-15 12:19 PM, Sean Christopherson wrote:
> Prefer the TSC over kvmclock for sched_clock if the TSC is constant,
> nonstop, and not marked unstable via command line.  I.e. use the same
> criteria as tweaking the clocksource rating so that TSC is preferred over
> kvmclock.  Per the below comment from native_sched_clock(), sched_clock
> is more tolerant of slop than clocksource; using TSC for clocksource but
> not sched_clock makes little to no sense, especially now that KVM CoCo
> guests with a trusted TSC use TSC, not kvmclock.
> 
>         /*
>          * Fall back to jiffies if there's no TSC available:
>          * ( But note that we still use it if the TSC is marked
>          *   unstable. We do this because unlike Time Of Day,
>          *   the scheduler clock tolerates small errors and it's
>          *   very important for it to be as fast as the platform
>          *   can achieve it. )
>          */
> 
> The only advantage of using kvmclock is that doing so allows for early
> and common detection of PVCLOCK_GUEST_STOPPED, but that code has been
> broken for over two years with nary a complaint, i.e. it can't be
> _that_ valuable.  And as above, certain types of KVM guests are losing
> the functionality regardless, i.e. acknowledging PVCLOCK_GUEST_STOPPED
> needs to be decoupled from sched_clock() no matter what.

Has it been broken for two years because of pvclock_clocksource_read_nowd()?

Thank you very much!

Dongli Zhang


From xen-devel-bounces@lists.xenproject.org Thu May 21 09:42:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 09:42:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314963.1584870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPzvL-0002hI-RK; Thu, 21 May 2026 09:42:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314963.1584870; Thu, 21 May 2026 09:42:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wPzvL-0002hB-Nk; Thu, 21 May 2026 09:42:39 +0000
Received: by outflank-mailman (input) for mailman id 1314963;
 Thu, 21 May 2026 09:42:38 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wPzvK-0002h5-Gw
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 09:42:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wPzvJ-002QPu-TD
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 11:42:37 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0ed38b-2eae-0a2a0a5409dd-0a2a4506d562-6
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 11:42:37 +0200
Received: from [52.101.62.65]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0ed38c-7371-0a2a45060019-34653e4175bb-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 11:42:37 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by SA1PR03MB6322.namprd03.prod.outlook.com (2603:10b6:806:1b5::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May
 2026 09:42:33 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0048.016; Thu, 21 May 2026
 09:42:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=K/MSKnz/1IeVUmrqGBrzfa5p0QgD0zcz/EVvl/PRf93jYl8CBRKt++Y1TUi8lY2HVbIkl0R0s/9xHo7/8NYTiA3PPcmaw4IF+GYD5dA4DMUKUVGbzkRLtJTnAfgwY5DbpgHZmc191LlhmNe1EJ/4cFwY8i5haSE7aEp9OrqTl2BYmTeH47pnmlLnTg2fTYzD9dxhbVVRMqMHaOUKbyZrcjXiDklLl0DOHKphHQJg0Lm9GCozNl31bRNGbc1ODUEWpDz8l7Duv3i64jSxakZ08eMlcpZpGqAja4VD3hKk//4+J6OmYUzQFliXlSn1mbj/3+Fss1ClfYVRrnQIGXGk7w==
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=Vpn+kqmEH1yUZEUMkrsclFPYiKTScFH2Nq9PqcskGhU=;
 b=gJtZsAa+/7JO89mecVqf2uE/YbDiPiBM/93zS7Ni/0klg68p6aa26lP4VoYTkVR0z50hELA0nu4AJdZHkb6JKnqT5UXc92ay060aAeLT6uTf5atwejn5lSFXRECxn72lnFDOTaTXZhiEG6KqqcY20cdhD9tLAOdoQU1Yryl7ONRtGps2KemgMj8qozBP6h9LU3ZjfJ/xqS1ks3fWOiSmrpGyMVxI2aSZeRgju6pjLoBIKMPTn3GCRC4l8eAnwAjnc/oPBsuNesZeC6XkxPlu39y7qkHLhJBTzrvanjxePeg+N/3PFjAkTEAVhs7kddi1P+Ir6dRUjgdM4RctyCQwug==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Vpn+kqmEH1yUZEUMkrsclFPYiKTScFH2Nq9PqcskGhU=;
 b=D6VJ31cwNaGCwwBfqswD9tMcWb8tH/zPwMhsC/c6ygwBeRykgisPYNDRmOCIGOWoddgl2WUF7gMxPygGaHI35P17TGqvakx3QZ9zyU/8bflnUSrFK0i7VexeltZiL522eT8o7UhNQjFqZRz8F+eIlj6vo0DGDGKff9V0qrmOqts=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e2d6b86a-9d2d-479b-8223-7f1991e6c337@citrix.com>
Date: Thu, 21 May 2026 10:42:22 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC v1 2/7] x86/hvm: Introduce hvm_emulate_one_ctxt
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
 <20260518131404.3716969-3-ross.lagerwall@citrix.com>
 <2005e70d-06c1-4a9c-a532-7f1a65761fd8@suse.com>
Content-Language: en-US
From: Ross Lagerwall <ross.lagerwall@citrix.com>
In-Reply-To: <2005e70d-06c1-4a9c-a532-7f1a65761fd8@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0102.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:191::17) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|SA1PR03MB6322:EE_
X-MS-Office365-Filtering-Correlation-Id: 535b2e55-1167-4679-b4a2-08deb71d48af
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|4143699003|6133799003|3023799007|11063799006|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	e4fTtM6brVEHuPx/wE2JWgG7pvkkKF1q0RN0n4bfv+eTAaUs/VpwCuslF5c31u1LPlIG3Y+uMhTzbdYdI+OhyrwLQq3Bc8vfKCF/rUSvu/3AbPu0Hm0WKnQhxyCB7nYcLuYDKSqtdJ7E6dnZoo24x3KGBdlgWJB8OmHxBv9m9tS2DP/hvqA5KOEfhBdwTMDhKH+PGCdhiy2NlRpCq1G4MCnY2idlSrpBtKsCI2+JrKGxvyfRo+jXUjwc8VNGv4yPzQWFZP3zdaKSklUplzdgtfuNLciVPAUs9OILtTl4AVfUhK4KnPlRh0erVHK3fg+EFjTUxgzvIK2EVegck4zO+wGEVIaJ4YkA47J/TngNxzQSSBtNfZGejviETo0RSMh8V6v0gwsbZQbp/HXqlHCbhpDum/8fy6wevhRycZxM6YpGO4Kt2UEOeAHs6wNbTrkV+vDD4eQTLK7RwJwJrsX6Ghxm97bQmTTr2Z8myy+vnRbvgEdj14UbDxVLG707SVCtdImzazN16yE1CXlhzmB3bYAwiO4cDd18+qzV3H8qHlTe2U0Nas1r18cqz3fIVBukMm9jSEEE5X5NjFt19VsLd5qlmEM71zgUEMcfn9Rca+O64NwKU1D7+z5jpMsO/tbyEx6OkTiNyahOb4eU0lOJTyi8pW3s5KDp8FoxXt0ESpDVgD2R6CN412aPDWTrUpCw
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(4143699003)(6133799003)(3023799007)(11063799006)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YS9RdzB1VmE5K3UrZ2ZpTEpMR2pXV3NYY3hZZmt4MkI3c2RQR0VKL1FBNU0y?=
 =?utf-8?B?cUNqdmtzcEhNRW53S0JIU1VhSmFMcUZ1a2NpQkNEMG9IMVZkR29SanAzOWtt?=
 =?utf-8?B?RGxtN3FST09LZWw1dU5vOWNNazJiZkduekEwNHc2aStVVE56b3BIV0J2NjMx?=
 =?utf-8?B?bCtjdGQ5Tk9JalVUVFFkd082OXF2cGxoWGZDOEVBK3Y3RWFVa3BSTlM1dE4r?=
 =?utf-8?B?dXdBV2V1UE1teGlJOTFUNjRLYk1LcGUybW5UcnA2Ymt3USt3ZTJ4cFVvTlNo?=
 =?utf-8?B?NzF1cnNpUCtZRHpaMHdtMVo3eWw2aHdUSUJMU21FY3ZWWjJiRWlxV1ZFYUpo?=
 =?utf-8?B?V1FNdjRMaWg3bjlrWXRkUTFIdUxFbDdoSEFXNVZMT2pGY1pha213SzdiSU9P?=
 =?utf-8?B?VGs4RkZScEVEbmJieW4raGkzTTdGbWQ1UXZ3U1RNZWVWUkpyMFdXeUZPMUNp?=
 =?utf-8?B?ZlV0VDB0eEtjekFCSmxZU2Vhd1F2S2hvR09QVXdlQ2t2VXlWVVFpWnJlb0Jv?=
 =?utf-8?B?WnZYdk9md0JkVVFzcWxvbVZqYlF4QStvek92bXFVc0hCZW5WMnF2S29DN1J1?=
 =?utf-8?B?S0E1bEw5N1AvMkZnWWllWllqNnJhNnZWcnlvTXBqU2VEQjNWbmdpRm5WTW5G?=
 =?utf-8?B?ME5KdzRRSjc0b3JvcndxQnZNMXBlSDJmQUFVYkozTlN2ajhkbWN1TXdjSXFC?=
 =?utf-8?B?ZVUvWHNvbldnRlZYMmx4RDA5NzQrWGV3S2NXZ25mMlBxTldHek9qWmlEczh2?=
 =?utf-8?B?Z3RFeXk5VGQzUXlEOGVRYmFtNkRkVjZsbjFCMFUweWNZTXNEMFQwQ1ZXUWhT?=
 =?utf-8?B?aC9uWDFHLzVyQ0xIdGJCenZVNjYzYmc0SzV6dzg2bGpnM3BUMk00OWJMZFNL?=
 =?utf-8?B?ZC9LU20xd2hQMXdmK1JicDU3SEFXdXoxa0JSSGZ5Z1lFVEd0R0ZpOG5Ub2Zi?=
 =?utf-8?B?MUl0M2M0a1RFQ3RWQUpsY2d5bksyWDVCM05kRUdURWhFcnVkSlNNejV6bHVI?=
 =?utf-8?B?SzJ4dW9zV2RCSFFCaElhZDNhVGYyaGZCeVkvZ09PZlRTZWRpcklTZ2RaSVZC?=
 =?utf-8?B?UTFiYmtlKysvL0NOci9mODVjdzh3NHBTN0hvTHJjM0NXRHlHVStET21aYnhX?=
 =?utf-8?B?VlNQU3dXcnk2Y0xVcFFJMzlmUVBHN1ZCaHVWTG9BdURnb3NQT2UvTHI4RUZK?=
 =?utf-8?B?eTRTNHplMmQzS0k0ZXEyeVBxbmIyMTh0K202RlNiVDdlZ2wwTzA3bXpnOGFY?=
 =?utf-8?B?Smk0YWt2c3pJV293MjhTZVRIUlhrTUZMUmYwUlRqN3o3dEt3QWIxL1VXamVq?=
 =?utf-8?B?Zk1zU1dwamtoYnlKTTlRTjBDUXNSQVREajNzaVhzZjZMK2lVcnpxcGJUbG5Z?=
 =?utf-8?B?cmluVUxvOGxPZUUxTzR3aEs0eW9YMW1HZkhLQXpkR20wQ3lmdHIvK1FvWHNH?=
 =?utf-8?B?eHNRMW1LaFBkS25ZcTg5eU53UW5qdFZQWnFLblU2UHNlbGUyYWN0d0p0OEJk?=
 =?utf-8?B?MzhGTW9VblJMZmZ6MXhNTFA0ZWlESnNPRnN4ZWwzYUFuVkxBT1dzODhnNTlL?=
 =?utf-8?B?bGdPTWJFTVo4S3RNbkJrVXBjdE5qUVJSUXh4M0ZuNUVzWWNSeTlxb2dCOXlX?=
 =?utf-8?B?SmdCRVYrVnY4WGxnbXV2UUV1RXh1cmZ2V2p4TnhqUjMvSkZ6bnRNckNJZ2N1?=
 =?utf-8?B?TE80bWNNK2NaSXB2MVFnaTVrWUk5VE5YdkE1bUJJeUp6OW0vQnRHNUwwRUJM?=
 =?utf-8?B?V2xjTFJhbzhmeWlRMlRZOGRxeHJJUWJQZG5idFU0VG9yZmloMGdpUUZ3TjNU?=
 =?utf-8?B?TUVRbTU4NFZZVm02b2lHNU9zR1c5VDNzTFNXaFBmbnZQWVg5dk5VMU9GVXVK?=
 =?utf-8?B?YkMyVWJnQ05ydW90YS9XSVNwMmNKODNOM1lna2k2enJlNVlPUEpsWFk2ek9p?=
 =?utf-8?B?amo1cXFqRjRGTG0rU2g4Vit0dXJkdjFuWDMweW43SUhna2ttN0ZwanlVL29y?=
 =?utf-8?B?MEF0cE43TG5RVkgxNFI3MlNhVFZ1Zy9MbUlnclRJK0NjZ0FnTzI4RktxeThx?=
 =?utf-8?B?U3JSdzNzSmp3eWJaem03N25FekxDeW56eUJBbENWRUdrZUNzcXczS1dIS1pO?=
 =?utf-8?B?UmtjbGJ6Ymt5MkxUWVRucm9ZU3FpRmhxa29HdVU2R3dVUm9qVlMxRlhiR1ZD?=
 =?utf-8?B?L0p6ZGhTSFc5YkRyWS9wZG1pRkQwUGhzSVU3RE40b1Z0U0FZeTkrOWE4V09C?=
 =?utf-8?B?OVdGZ2Z6ZDAxdWUzajB3OWVJTGVSUW4rY25CYU5sdGp1TWc3b0NJSWR0ZE8y?=
 =?utf-8?B?bVFDUXo0ZWlIR1hsS3dOS3UvT3JWT3VqM2toUjF2YkxWZDZzTDJJbWtJc3Zp?=
 =?utf-8?Q?kNWVp9UoC248OGwM=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 535b2e55-1167-4679-b4a2-08deb71d48af
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 09:42:33.6339
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mXoIZ4VTZUmYHjd7MUNQ7xLzSdsXnp0oysCLndm04wBZTsNWTmfEHZVb4YVYXim/MWnGcNi/sLbuCJZvQMUskJe15/HeJbwB+gPcrrRKAGE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6322
X-purgate-ID: tlsNG-16d1c6/1779356557-86369D75-1E69051A/0/0
X-purgate-type: clean
X-purgate-size: 2162

On 5/19/26 10:54 AM, Jan Beulich wrote:
> On 18.05.2026 15:13, Ross Lagerwall wrote:
>> This is like hvm_emulate_one_insn() but takes an existing
>> hvm_emulate_ctxt as a parameter. This will be needed to merge the
>> instruction emulator and VMEXIT fast paths.
> 
> I'm yet to understand why this is necessary, but I'm afraid I don't consider
> the name very descriptive. Even hvm_emulate_one_insn2() or
> hvm_emulate_one_insn_ex() would come closer: You don't "emulate a context".

Of those, I'd prefer hvm_emulate_one_insn_ex(), though it still doesn't
give much away as to how it differs from the proliferation of similarly
named functions (i.e. _hvm_emulate_one(), hvm_emulate_one(),
hvm_emulate_one_insn()).

> 
>> --- a/xen/arch/x86/hvm/io.c
>> +++ b/xen/arch/x86/hvm/io.c
>> @@ -53,27 +53,32 @@ void send_timeoffset_req(unsigned long timeoff)
>>   bool hvm_emulate_one_insn(hvm_emulate_validate_t *validate, const char *descr)
>>   {
>>       struct hvm_emulate_ctxt ctxt;
>> -    int rc;
>>   
>>       hvm_emulate_init_once(&ctxt, validate, descr, guest_cpu_user_regs());
>> +    return hvm_emulate_one_ctxt(&ctxt);
>> +}
>>   
>> -    switch ( rc = hvm_emulate_one(&ctxt, VIO_no_completion) )
>> +bool hvm_emulate_one_ctxt(struct hvm_emulate_ctxt *ctxt)
>> +{
>> +    int rc = hvm_emulate_one(ctxt, VIO_no_completion);
>> +
>> +    switch ( rc )
>>       {
>>       case X86EMUL_UNHANDLEABLE:
>> -        hvm_dump_emulation_state(XENLOG_G_WARNING, ctxt.descr, &ctxt, rc);
>> +        hvm_dump_emulation_state(XENLOG_G_WARNING, ctxt->descr, ctxt, rc);
>>           return false;
>>   
>>       case X86EMUL_UNRECOGNIZED:
>> -        hvm_dump_emulation_state(XENLOG_G_WARNING, ctxt.descr, &ctxt, rc);
>> +        hvm_dump_emulation_state(XENLOG_G_WARNING, ctxt->descr, ctxt, rc);
>>           hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
>>           break;
> 
> These two lines were already touched by patch 1. Afaict leaving the change out
> there will be fine, and hence will be overall less churn (plus following the
> lines' histories will be one step shorter).
> 

OK.

Thanks,
Ross


From xen-devel-bounces@lists.xenproject.org Thu May 21 09:59:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 09:59:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314976.1584879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ0Bq-0004lh-4i; Thu, 21 May 2026 09:59:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314976.1584879; Thu, 21 May 2026 09:59:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ0Bq-0004la-1U; Thu, 21 May 2026 09:59:42 +0000
Received: by outflank-mailman (input) for mailman id 1314976;
 Thu, 21 May 2026 09:59:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wQ0Bp-0004lU-5i
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 09:59:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ0Bo-002NTO-D7
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 11:59:40 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0ed77d-5cb7-0a2a0a5109dd-0a2a4507a0a6-40
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 11:59:40 +0200
Received: from [52.101.46.44]
 (helo=CO1PR03CU002.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0ed78a-229c-0a2a45070019-34652e2ca4ba-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 11:59:40 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by DM6PR03MB5065.namprd03.prod.outlook.com (2603:10b6:5:1e6::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Thu, 21 May
 2026 09:59:36 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0048.016; Thu, 21 May 2026
 09:59:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Wv/yM2lobqSxCfkP/YeuFSEHurgv/LOnWwKViSgzfJxIBTDLv+pYGdsB1nRYN3QX8cB2utpGNzAnBQZjv0XZqv/x91hXHb5oTvjtREs6U3RyWKjx67mqouij6WkuPBJ2w3KdVCvMYQOyQxKtHWDb7SPudKZlXn98IopspySTxtlm4P1va70ZjHGU0lB7JXhZdoMjXswhCH3uBBE91qLe8LSZst1ix/bZGgJqJu7ge/NrC/uG9awsMY5eetYDsyomAK0GeNUw91pu3244bSgFEDNLCmCp+nuzuKlB+G9eo9J0dRjb4uZrnMP4DwuApZcpVFNOKY0DVx4lrDqvNgP9Vw==
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=eDEJxPnWZRZ1I1hMe9c7ZBpGFl48edlwTI0Es+xq44E=;
 b=mqll3hVgk+CZO4oUTPcNLMv7mD9tKXFzPaYwHf6GhqlDbtn6dkEef8GcO4AWjfahtctDnPbj+N9OnanF4CJL8CKLp08kfK5UjcIB7C4PHLDXwNyQ0JjRvvnyza62Fh/n0/diK0qMuyom6rzjZfY5Et/ci5By2jfiBzhcD3uAGwRQ2ONOV5KLIrwsw8ZZ6cR2Idvuqhag2csmaWjxSrp4NhgqlKrSZF+9oodY4wR2epylzZ53KvwUrpbISr07hyWtpgK0dpmrXduS5SMGxB6DDWGD/y+EdZUXxrsHg87tNzlrD7QeMkoiM3xpISk3Yx6l5ypFc3YwzFB0e6rZStwOLw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eDEJxPnWZRZ1I1hMe9c7ZBpGFl48edlwTI0Es+xq44E=;
 b=oZ7v9NSvNq1D4LP+J8XTLOnJ2NYDaRhKF2l+ZnhVzck1omazR2wXnouQ7QZ5wn4FSsjlS4G2TJJtU+8pSoiNfxhsWoqIL7wCXyen0WYGS8MWeUML7+ri/wXXNbxGmE9LFkE0/i7SF6ThxwmiI4sIKx4BYtbluZhEKZ8KcbEZroc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <41ae79a0-70b0-4343-a75c-f43f33a6d5d1@citrix.com>
Date: Thu, 21 May 2026 10:59:32 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC v1 3/7] x86/emul: Separate out instruction completion
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
 <20260518131404.3716969-4-ross.lagerwall@citrix.com>
 <882ff7e2-077a-4af1-8e0c-4a0e83d8c2b8@suse.com>
Content-Language: en-US
From: Ross Lagerwall <ross.lagerwall@citrix.com>
In-Reply-To: <882ff7e2-077a-4af1-8e0c-4a0e83d8c2b8@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0381.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a3::33) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|DM6PR03MB5065:EE_
X-MS-Office365-Filtering-Correlation-Id: adbaa2d8-29f2-45ab-d65f-08deb71faa6c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|4143699003|5023799004|3023799007|56012099003|18002099003|22082099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	hHKe3O1WwNVOMrLoRqUivKkhT7C8Rdk8mYbmoCBEy/zhceguZyzZ8qxd0SyrNGV9Oa4K3weJpy//MSRIVly+ZtkmVpYJtjYBqU1xAnKuy0wkQW7IZaTOeaaXoOLoOS7f+tPyPMMMiO/8Jy9vL/l76D1YPeYdgckoVL8dOzcDpMZ1oax8BCXwdH0LuFds1adUiv0KnI5YtWQnRaADjnvLi7AUWVIF04u1ppZ48Hb6SoYBaHo785pZDfJafVcG5dEa428YVnSZ/b4gyS1sCYGUQQiAwXQSjNNA2rADvLzPDA/RdRs50sHIcCZ1pcm5wDUtiz3wfI2sUzJ3kxedsYWbj3Ca1laheuYWLQX3Uw1Oo7ExvvLaIcvGrvcPN6jeZImLiDcqgEOPOumoDD0fJajPwbCaIt/SiWfa1/lqdHnKE5TMaOe+KKfIX3Bc4oVRDyK/zpCb/ssVQNUB5ZJ+1tpsxKmjD3NQNSSeNjovcX5/w8Oty6JO8rNuyDhvI4gY4otVONgXqV0kn0CGvnWacipQOHsBtvehwd3d3Imv2dWe2XOa5akkPpx7R5RZ+m3IVHZjluMo2KVNpQagZCAW4/cIkDBT9++z3c6ViO5oZQPSsOkDPXhyYAvPFKhQsCwok/nZ6IJZ008+qLBU/PQdDyL72BRjczP5kAjYbQCcv0XFOAgQodKR18egYRUXp4sAwnog
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(4143699003)(5023799004)(3023799007)(56012099003)(18002099003)(22082099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SUVTdk5HQlBPUldodmN2cEttUCtKaHJsTXJGUTJBUWlidE1LMk9WUUZ6Um50?=
 =?utf-8?B?UEhqTVh1QnU3NGxuT1FpTWp3ajFSYjhsYmFLc3lxLyt3MW9kRHQ4WnRwUS9X?=
 =?utf-8?B?YTNGRXlFLzVWeDFMRUYvSWxoNHJ3K1FXU3VNU1RrN3BGWFFBbGxaWVJOWEEy?=
 =?utf-8?B?VTdobVYwMm9ObHpXa20wNll1TUE1OGMxak1WTEt5cEdOYUZKMGZDbFE4eStY?=
 =?utf-8?B?bXpaVnBEdnRiMjN2K0dHZUVvd3pBRXprSG9FNUZuaThFNFFVaTA3by9BbFht?=
 =?utf-8?B?YjM3UmNHZzlDOVVLblFWZytzc3JoaDJrWkxZR0JJWnh4ZHR4QlpsUVp1aDYx?=
 =?utf-8?B?TEVxR0Y0NTVaaUtKZFk1a2diWFJYeUtGQlpHL2pRMDBFQ0ZsMGVtOTk3RE92?=
 =?utf-8?B?d2JGTFZ4N0lFeWlpUXhKbjJtcDV0OThzd1c0ZURGUnU5TThlVXAreFI1RTF6?=
 =?utf-8?B?MStYTXN6T2tJQ3JLWEpxU01OODYxMmVQTkJWdXp0OTdyUFVxc3JKK3BQak54?=
 =?utf-8?B?TUlYK3hHQk1HbUZMRzNycVprd2dMbEhrNlVtSmdvSkRWZXFYQ3p0OXd2ZG0y?=
 =?utf-8?B?RTVocEJhK29uZ2FGWEhCUlhOakZndVpxUGJXc0lMQmVnOTdMd3ZCS2s4cE1q?=
 =?utf-8?B?QjRDZ2ZzMVJiOVgvaXpnLzFkanpoSGM0OE95Qmlwd2JRUlVLc1NEaFFFNlRW?=
 =?utf-8?B?SGpjQlEyZXRqZVJJbXk2bmsrNW1LMEQ0SmxBRzRaR1VEQWtBYnQydWdwOUQ5?=
 =?utf-8?B?N3FVT0ErQ3h6b2lTR29QczJBaURTTko2T2paUDZKS3hCTHlvcWR1OVdjSXM2?=
 =?utf-8?B?WlpzRUwxTjFRdWw2L3VzVUFGQTJTZmNERnA4QVo3bXN6M3JFSEx0RmxqY1p5?=
 =?utf-8?B?dTBEeVhMNDNlUWJFd21zRURPSlgzeHZGdi9YRCt6c1FIZGRwRFVQc08vYUEx?=
 =?utf-8?B?VHlXSU1WTml4cEYycmZkOWFQK2dFSklmU2FHRVdJS2IvL1U3OXpiK2x4Lzhl?=
 =?utf-8?B?dFZvQVAxY2FnOWRUaEJRekN4Q3BYbjdhRUgxTmZOSFVmMSthTUNGc3hVaXdi?=
 =?utf-8?B?SzhUb0xSMDVOQjV1T1FkUG5JV3N5UXNzVXFkR001UGpEMnJiMG5BdHVNcUdh?=
 =?utf-8?B?dVpDZm5UTTRWb1lUdFBhdTArRHZvMG92TmdBV2svYnlZQit0Uk9JOTBvSXk3?=
 =?utf-8?B?UnR5dzljMjhXUnF3L1ZWUHlaVW04TDlyeGRSQ1JqYjgvYTYzU1dYUFNBRHRH?=
 =?utf-8?B?MkJrV1ozc2VCRW1rOFBqbG9KSUxTTlQxOWVSMW84RTlLREFScUg3a0hyVlNr?=
 =?utf-8?B?NTJoV3ZiM0JkajhrQ2ovRUhCelhIOU1RMW8zWStpZjFuTXZJd01jTjJHMjd2?=
 =?utf-8?B?TC9BQjhqU3RKcVAydE55ME9LZWE1d1hXZG1UT2FKcnRkTkowMnR6eEQyTVNQ?=
 =?utf-8?B?dzl5SlJqK1JzWmRGV3RWdWJyM1pxS0dDTVYrYUpjNEo4Z0t0T3FtU2tybWNa?=
 =?utf-8?B?NXp6aGQ5bUNZRVExbjBHYkZTcGszS0VjOHJTcXN4eEhuMC9rQjdIeHZHaUg0?=
 =?utf-8?B?VDJuS3ZyWjkxdVljdEo3TURJWjZtV3hXZk50Ry92YXpQc1dhQUJsQUJrYmZt?=
 =?utf-8?B?cDRvUmdRS3ErdGNBZDY2NWdIN0t1M2dmaGhuNHBNaXRnRHJkZUpESGQwQ1Fy?=
 =?utf-8?B?TzJQMFZRR2JRS3hoTTgzNHVYWm5aV3Z4Mm9NaEpYdThOaS9wU1BUbUN1VHhx?=
 =?utf-8?B?eUZJK3c3Q3BUL3lWemFyTytYSTl6S1ZiKzRaRFBYQU5iYWxnNHQ3Qkl5NVFL?=
 =?utf-8?B?RHl1c2NLT0ZrSlB2VUNpdk44aTZFb29sSU9GbDY5UE83YTdGK3JpVzI2YmJu?=
 =?utf-8?B?YjZJeCt6UE01c3Mxc2lFYitHK3BBSXdlTnV3alFJOSt0T3pkT1NHaFpnZVZD?=
 =?utf-8?B?UzF4NlF1b002a2tPSjY4b21VTmtXdHQ2ekt4QitSY3d0QytrdU5PY0QraGhX?=
 =?utf-8?B?Y0o4ZE4vV0FVS2l4bkJlSWEyQlBjdjZoS2YvUTJBU2M2cG1oc3BjSkN2Y0xx?=
 =?utf-8?B?TjEvaHRGQ1Q1V0RFNnAwNDlkSndBVExyNzY5K3hUdXpaVFo1Ui9zSG8vNG1C?=
 =?utf-8?B?dmNvbi9UcGllNksweGh0M2JYTTlFWFJLdFFwRTBoKzVtYnFGNWZhcVROQ1hB?=
 =?utf-8?B?UzU1KzBzZUQxNWZ6UlJRWGc0bHVVSU5aSnB2T1NBWlZSa2RFY1RRZGpiekkz?=
 =?utf-8?B?dlh5NnVrUzRJNXc1VHNKckc4ZFpxNGFFT1dHZzhEUGdLUVBWb3gxVlY5UkNh?=
 =?utf-8?B?aFNxUUIyOUdlY3Z0UkgxelpwTjcxc1MyeUpNb3BaYWViUS9qaUp3aHRRU1RV?=
 =?utf-8?Q?L5honWLh8579GrUw=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: adbaa2d8-29f2-45ab-d65f-08deb71faa6c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 09:59:36.5937
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: iRKyK/VEUdf89IQjap0UdMTPOdrlnWCiP8IvOkqHANBl1CdV7diG2IlE51OB65Cp+PiUE+YH46ZS+zqqIJU3GXwHouPDKIa9ysFyIR3+v/w=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5065
X-purgate-ID: tlsNG-ef75cf/1779357580-23B78C48-6C5679EA/0/0
X-purgate-type: clean
X-purgate-size: 2346

On 5/19/26 11:08 AM, Jan Beulich wrote:
> On 18.05.2026 15:14, Ross Lagerwall wrote:
>> To support merging the emulated instruction and VMEXIT paths, split out
>> instruction completion from the core x86 emulation so it can be called
>> separately.
> 
> You don't mean to use a full-fledged struct x86_emulate_ctxt on the VMEXIT
> paths, do you?

For VMEXITs it uses a struct hvm_emulate_ctxt which contains struct
x86_emulate_ctxt but without going through the full emulator. See patch 4 for
details (probably makes sense to discuss this in the context of that patch).

> 
>> @@ -1265,8 +1281,6 @@ x86_emulate(
>>       uint8_t b, d, *opc = NULL;
>>       unsigned int first_byte = 0, elem_bytes, insn_bytes = 0;
>>       uint64_t op_mask = ~0ULL;
>> -    bool singlestep = (_regs.eflags & X86_EFLAGS_TF) &&
>> -	    !is_branch_step(ctxt, ops);
> 
> Nit: Yes, indentation was screwed here. Please ...
> 
>> @@ -1280,6 +1294,9 @@ x86_emulate(
>>   
>>       init_context(ctxt);
>>   
>> +    ctxt->singlestep = (_regs.eflags & X86_EFLAGS_TF) &&
>> +	    !is_branch_step(ctxt, ops);
> 
> ... correct such when moving code around.

OK.

> 
>> @@ -8347,17 +8364,6 @@ x86_emulate(
>>       put_fpu(fpu_type, false, state, ctxt, ops);
>>       fpu_type = X86EMUL_FPU_none;
>>   
>> -    /* Zero the upper 32 bits of %rip if not in 64-bit mode. */
>> -    if ( !mode_64bit() )
>> -        _regs.r(ip) = (uint32_t)_regs.r(ip);
> 
> While, because you have the new helper update ctxt->regs, the removal of
> this update of _regs looks technically okay, ...
> 
>> -    /* Should a singlestep #DB be raised? */
>> -    if ( rc == X86EMUL_OKAY && singlestep && !ctxt->retire.mov_ss )
>> -    {
>> -        ctxt->retire.singlestep = true;
>> -        ctxt->retire.sti = false;
>> -    }
>> -
>>       if ( rc != X86EMUL_DONE )
>>           *ctxt->regs = _regs;
> 
> ... further uses of _regs here (not this one, but in general) would be at
> risk of no longer working as expected (yet only in a corner case, so
> possibly not covered by testing).

Any uses of _regs after assignment back to the context is surely broken anyway
because nothing outside of this function would see the result? Not that I would
expect that to happen anyway since this is essentially the end of the function.

Ross


From xen-devel-bounces@lists.xenproject.org Thu May 21 10:12:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 10:12:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1314989.1584887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ0Nx-0007gp-3v; Thu, 21 May 2026 10:12:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1314989.1584887; Thu, 21 May 2026 10:12:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ0Nx-0007gi-1M; Thu, 21 May 2026 10:12:13 +0000
Received: by outflank-mailman (input) for mailman id 1314989;
 Thu, 21 May 2026 10:12:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wQ0Nv-0007fo-PL
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 10:12:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ0Nv-0074Mx-54
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 12:12:11 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0eda76-e002-0a2a0a5209dd-0a2a45048692-26
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 12:12:11 +0200
Received: from [40.93.195.69]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a0eda79-1dec-0a2a45040019-285dc3450e15-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 12:12:10 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by BN8PR03MB5089.namprd03.prod.outlook.com (2603:10b6:408:7d::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May
 2026 10:12:07 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0048.016; Thu, 21 May 2026
 10:12:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MKTRDEIRK6Cekh7RMhU6hB0FRePzyCV36FwlNMyWy1gZBJOo6MLdRf+SFrnMMt3fQ4VXYsmpD40IDiXQSMmLULE5LWV0c963m6Dh4dDBxvVsf4LVMxucpBoyKzT2xQVhldEqptqHTqGTyWxLASlTsoa1f70QZjEEL2iJzOr0ovKkVRlbDBBzTVg1YZRTaZWW75wp2xrTqFbQMzsfWICYGp/ewVanVo6xc1KRPUQLTgjEUYlyYbTw+udKp9CeilONxFHJjpI3gMGHUDk6EgHJzbJi04yGpPOMFBpEk86D2Gq18n0rAjryleIPBmoSH7xDs/8xc+xb1atkMXfPNamqmw==
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=Iyo8tMZPDiMI4BhMgaPK7WwQBjL+2b/LtntTFfBi/kg=;
 b=TM5CAF9Y85c6LrXsWkWIDVDsHIg8UMayv7rH5l5CUCOLJaxaVogRoGxrUIOBrL+hD79ZRzhzcjNvCINZbShNIyMWAOYAnY/1/RdSbLQCoRQyBwnQJyFAFvw1IgzPrQkIR3dpE0Wio9336pDDAs3QV2L8mYkZlrZnGy8GheOj5QHJ62+ofPqIN1zmThWrUVMbYT0//QriIBW8U1YST3LR8i2G9i2GY3tnjbrGyGXfJC9zI1NniMYeayITx7q8Tpq7r2K1iPCR4xonjeItL7DnwRDVuJQXDxVsKwMnaiBz9lkhliG1Zqbd9aK5KSy+TrxJeUiuHFLZU+AX8axIP4WWiA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Iyo8tMZPDiMI4BhMgaPK7WwQBjL+2b/LtntTFfBi/kg=;
 b=rcN0djlqaCFMVmmELUxoWz5oJGAt2NdIwXpugIWlLLGI5dvAs9CwYkCCMRHCJEMxmYAdXNtYnkA30KKcYH2jL8p3Q7e/CWsgN5WuuD/bshF/iK+mSndTmv7iD/ScqEldoUyPGGSavuqRcVLOzenGMEDJP2VLzyXm73j1BlOnFvE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <6a6dd703-cb9f-4a13-b0da-ff1a9d841bc5@citrix.com>
Date: Thu, 21 May 2026 11:12:03 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC v1 5/7] x86/hvm: Move INSTR_* constants to hvm.h
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
 <20260518131404.3716969-6-ross.lagerwall@citrix.com>
 <a5b2561f-0225-4f18-bc74-7f66227bc807@suse.com>
Content-Language: en-US
From: Ross Lagerwall <ross.lagerwall@citrix.com>
In-Reply-To: <a5b2561f-0225-4f18-bc74-7f66227bc807@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0587.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:295::15) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|BN8PR03MB5089:EE_
X-MS-Office365-Filtering-Correlation-Id: 4b141d71-1075-45ca-a1d2-08deb72169f4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|11063799006|6133799003|3023799007|4143699003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	KtJ3MzaOEfpr4FBBv5b7G88IDAMI6URkBtWzp2+KD5uMg/7XcNdumBPL6Wk0M/5U5B1cbK5Bvaravs0S4WxwqAc3JCRR25lcsieR0jsEDMPZ3aaNNimFo0aR4cKFHRWOX/Uw3Fsmd8nUZV18vFTWt1O69XX0C6psHzD9IG1F2OoXCHvTtR711Whyvd3BxTVIpuYFHlal3kS2GM+K+SInrpeLuo1Nv3mYVMLqAgiQJJjA0grq89rOU0/k8oK8G8ho9M8wz5/eKGNj3ktOeds22ZUf6Q9CN81wIqVrO5/F7/TY3qOdVFhasgncQSEKZoopsPgQMxqbC1zLpBz3H6Bya3vc3f6kDKXy0LDib74zobex6wAb7gX1biiNY1lz7cvwZf0VN2AvW9A5UqYXjqx6v1rIzXRd403seE9OMQoVE5Utv/bEHLLLdlCJ2MtLiCmyvhX5gslGpKg4VUf5Y3reoF+BbZC7W7kxuaukrhhPF8NmvOSAlbD20YvcqvUVa0wVO5Qj+C3+HBF2W5mD90y+PCwCyAwF6sBvzFoZLABZDflZZjrv3zqTcCGWXAf6UEfJx0SCDLfREIXigtmGU9E2j1M78Sy/cuGUo2ZiE5e0R/m25pGpMdZsZfoGprIyvQ2ei4PAn3N4b504SJ6rQhqsiKJ0BBJBVJ5ZXOuPQBizkZIE7pDwdS0uTJhLG/2jFyof
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(11063799006)(6133799003)(3023799007)(4143699003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TXZKSW5GdVIvNTh5UWtTOVNTem1qRi9tVHI2YU9uU25OdTFBd3BQa2VNcW5F?=
 =?utf-8?B?VWhacTZrRG5hTHlBZXM5MFZObjE1bElZL2ZDU0N3OG05N3JvUmlIOFJtN3VD?=
 =?utf-8?B?TUJaZEdCVkZaN1Q0VElCSHhyVGljbStrbVZrSlhFbE52K1lNRzNzZ0duODRY?=
 =?utf-8?B?ZTZxQ25XYmFOQ3JUUlIrZDFSRVFmZElka29kUzRDQWE5RHEvdzZoQStDV3hP?=
 =?utf-8?B?d1cwK0VDM21UQ3U2UmtpdldueUlodGJ3TG10TS91WURQQWpMWlI3bVBQdFZv?=
 =?utf-8?B?TEk5QkNSN0pUQ1c3eGJSM09objMvWTJOeXE0V0Jld05XODNCMkZud3M4cG44?=
 =?utf-8?B?RWtaZ2lYSHhwbVVHRUs3RGgrT3hQbjFzeHByNzNKdjNwbWVmNUtqc3JjN1Bx?=
 =?utf-8?B?ZmJqRStTM0JpK0I3NzNKeDdGdi81VUhTRnA5NnhkRFlKTCs2VFhiM2U4S21v?=
 =?utf-8?B?NVZqWUkrSmV5ZFpzTFY5eGtwZFF3TEhrajZncUVEY2I3UFordXArdzRYbnFD?=
 =?utf-8?B?YkpXelR4cjNrVTY0Z0N0WmVNR2lCQVRuMEduelZvUTBGQlVFbGNWUXcrVS9p?=
 =?utf-8?B?QzBERXJ4T1RiT1Q3alE4K2Q0cWJHaEY1WmttL09GbURyWWFjS0xtVnBnNTVY?=
 =?utf-8?B?MnpZWVY3RUNHMjhWRkJ3MFpOSDQ1SHQrd3ZUSDdSa2RBN0ZkT0gwRFVYam45?=
 =?utf-8?B?OFZEL2swV1hSZW9DZDJPWDZHK2tsZkxXSmJucFhUL0lKdit3OWxjRytHZU5Y?=
 =?utf-8?B?cHV0RGhsN0RYcnRLayswTFlXaGFtUm8zSjkwMUJ6aC9pWnlXNVd6QWtTblp4?=
 =?utf-8?B?UDZiN0g1TXBNRmtrMStPMjZHQzhPaUc0Z05ZSGFHdStHNjBBNVVlWmtoNXNn?=
 =?utf-8?B?ZHlmQWNyc1p0a3ZSL1dkb1AzR1k1cHFlS1p6UnM0WlRCZDFiOEZucDcrSm5q?=
 =?utf-8?B?Ty9kemNCb1JSamZwMnhLYzFBcFhjbzI1Rzg5RDhpMjJjY3gvZEdXWWNSLzIy?=
 =?utf-8?B?TUthVkVYTkdxdlV5NWhMVnE5UkJMTi9FM0VIc05qeHg5QXdlR1B5dXl5S2tQ?=
 =?utf-8?B?OHh1dVVCb3dFbmU2VW1XaU9KWGNkVDFxUXJpblRZWmFvbkR4ZWdoU3IvNm9J?=
 =?utf-8?B?OGo5MnRmb0lsTkVoVkh4OG5leVNPMVdpRnZGdUZlZ0dPQkExMnZxS3J4MGRU?=
 =?utf-8?B?V0w1WTZKdUN1TUkxbTY1SnYyTGRabzhodXhqMEI3RnpBNDkrNlliZE9HeVJ5?=
 =?utf-8?B?amV5ZmhnRWpCcGEwMlZqaWFCL0k0cWVYSGVOR1NGQTQvN0dpV2Y0MnIvS29Q?=
 =?utf-8?B?dFhwakV5T0ZWQlA0YnUxUldVRnFIcFhYMzFhYW5wWFE0TnprVmk3MlNPcUow?=
 =?utf-8?B?eUNEWXdzeHNCMUZzOWNReFVxWmpnN2JURmJCYy9PNGpQU29Pa0xhcC9oUzlo?=
 =?utf-8?B?aDM3U0JqNXFtQ2VFVnFsRnlnOEhITjJ1dkp1bnhvU2l3Q01sSkl0NVhWY0xK?=
 =?utf-8?B?VGMzd2xmSzNJa0Q4TGNMYXRGY0VGNkZoMk1oQlhFV0VKTlN2UU1yQ1d4dUNi?=
 =?utf-8?B?aTBqK3JJdklHbzJ0NkNEdVdLeTZnWGx3VmlGMkFERWxhd1h6NWlrcFFWTitO?=
 =?utf-8?B?VTZtZUJvMDNyeW9zZi9kcUdCWVFaeFZuOUxjRUJnbW5VSlVVcDMzdzduQThO?=
 =?utf-8?B?cWI4S0xLRU9hdm4vSEppeWs1SmViVWVsMGJuN1QrdzBwdWdrOFozbDk3UDlY?=
 =?utf-8?B?RGt2OHIvcDZ6QldVUWZQYTVTUU43T2hMZVgwTVBjSCtCSkg0TUs1Y2VCbFhK?=
 =?utf-8?B?ekJiWCsxR3JxOUhodTlDaGxKWWtTc2NTNlFhUGpWM0EvTW9lMDZvenNpdndB?=
 =?utf-8?B?UHNuc0VNemdTWjZteGJhRVpVTnd1QVBQYk5iSktqdnJ2c2o5dDVBVDJmb0xY?=
 =?utf-8?B?MDhVNHF2YlpMd29nRmFzdk1IblpmdnhMayswaGF6TkdESkhTVW9tMXMxcmlx?=
 =?utf-8?B?M2NYOWpxelZUQWdWUWt5bkE3TkRVa05KdWxNN0QyeVdnV2JJTmhINGlSeTd0?=
 =?utf-8?B?QzFlVDdkaW9UMnhnNW50NGNDZkVMV0JhUXJDdnVKUHMxZDVVcDF4TnFsVi81?=
 =?utf-8?B?NzNUVll3dFpySnhoUEVTQ3MwZk85RS9sVDB6bVdSeHp2RFQ2MDhRdUlIM0FJ?=
 =?utf-8?B?eXppaVd3TkpXZTRpSUUrTzZzSWRFWXFETU5TcUg1Q2NKNDJyYlJpTjI0bld5?=
 =?utf-8?B?UTJTbG9pUkZKdy9OSU9URHlNa1RBSWtoTjZUSjY1ZndxcW15eit1ekpJVUlQ?=
 =?utf-8?B?Y0czVm5qQ2VQa21yNFZneWRHUzkraUJ4RXk5ZDQ5SGJBWnVJVTVlNTNGYUpG?=
 =?utf-8?Q?tAwAV9gPPXs5oEMk=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4b141d71-1075-45ca-a1d2-08deb72169f4
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 10:12:07.4148
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Ec2gjru6lsk8fsyYkBBsCGjFegyHgDdfSVcxvHxSokgNOMrXUTLpBHIgBIrAR9H+go8eoyPluxtWyC2qqNT4M7ftspF/eCw/+jl8QaeFff8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB5089
X-purgate-ID: tlsNG-ebf023/1779358331-42B633FF-7F735B02/0/0
X-purgate-type: clean
X-purgate-size: 4531

On 5/19/26 10:49 AM, Jan Beulich wrote:
> On 18.05.2026 15:14, Ross Lagerwall wrote:
>> These aren't specific to SVM and will be used for emulator fast path so
>> move them to hvm.h.
> 
> Some are SVM-specific, e.g. ...
> 
>> --- a/xen/arch/x86/hvm/svm/svm.h
>> +++ b/xen/arch/x86/hvm/svm/svm.h
>> @@ -36,35 +36,6 @@ static inline void svm_invlpga(unsigned long linear, uint32_t asid)
>>       asm volatile ( "invlpga" :: "a" (linear), "c" (asid) );
>>   }
>>   
>> -/*
>> - * Encoding for svm_get_insn_len().  We take X86EMUL_OPC() for the main
>> - * opcode, shifted left to make room for the ModRM byte.
>> - *
>> - * The Grp7 instructions have their ModRM byte expressed in octal for easier
>> - * cross referencing with the opcode extension table.
>> - */
>> -#define INSTR_ENC(opc, modrm) (((opc) << 8) | (modrm))
>> -
>> -#define INSTR_PAUSE      INSTR_ENC(X86EMUL_OPC_F3(0, 0x90), 0)
>> -#define INSTR_INT3       INSTR_ENC(X86EMUL_OPC(   0, 0xcc), 0)
>> -#define INSTR_ICEBP      INSTR_ENC(X86EMUL_OPC(   0, 0xf1), 0)
>> -#define INSTR_HLT        INSTR_ENC(X86EMUL_OPC(   0, 0xf4), 0)
>> -#define INSTR_XSETBV     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0321) /* octal-ok */
>> -#define INSTR_VMRUN      INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0330) /* octal-ok */
>> -#define INSTR_VMCALL     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0331) /* octal-ok */
>> -#define INSTR_VMLOAD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0332) /* octal-ok */
>> -#define INSTR_VMSAVE     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0333) /* octal-ok */
>> -#define INSTR_STGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0334) /* octal-ok */
>> -#define INSTR_CLGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0335) /* octal-ok */
>> -#define INSTR_INVLPGA    INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0337) /* octal-ok */
> 
> ... the 7 ones above.
> 
>> --- a/xen/arch/x86/include/asm/hvm/hvm.h
>> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
>> @@ -851,6 +851,35 @@ static inline void hvm_sync_pir_to_irr(struct vcpu *v)
>>           alternative_vcall(hvm_funcs.sync_pir_to_irr, v);
>>   }
>>   
>> +/*
>> + * Encoding for svm_get_insn_len().  We take X86EMUL_OPC() for the main
>> + * opcode, shifted left to make room for the ModRM byte.
> 
> With all of this moved, the comment wants adjusting, at the very least by
> putting "e.g." in front of the function name.
> 
>> + * The Grp7 instructions have their ModRM byte expressed in octal for easier
>> + * cross referencing with the opcode extension table.
>> + */
>> +#define INSTR_ENC(opc, modrm) (((opc) << 8) | (modrm))
>> +
>> +#define INSTR_PAUSE      INSTR_ENC(X86EMUL_OPC_F3(0, 0x90), 0)
>> +#define INSTR_INT3       INSTR_ENC(X86EMUL_OPC(   0, 0xcc), 0)
>> +#define INSTR_ICEBP      INSTR_ENC(X86EMUL_OPC(   0, 0xf1), 0)
>> +#define INSTR_HLT        INSTR_ENC(X86EMUL_OPC(   0, 0xf4), 0)
>> +#define INSTR_XSETBV     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0321) /* octal-ok */
>> +#define INSTR_VMRUN      INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0330) /* octal-ok */
>> +#define INSTR_VMCALL     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0331) /* octal-ok */
>> +#define INSTR_VMLOAD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0332) /* octal-ok */
>> +#define INSTR_VMSAVE     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0333) /* octal-ok */
>> +#define INSTR_STGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0334) /* octal-ok */
>> +#define INSTR_CLGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0335) /* octal-ok */
>> +#define INSTR_INVLPGA    INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0337) /* octal-ok */
>> +#define INSTR_RDTSCP     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0371) /* octal-ok */
>> +#define INSTR_INVD       INSTR_ENC(X86EMUL_OPC(0x0f, 0x08), 0)
>> +#define INSTR_WBINVD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x09), 0)
>> +#define INSTR_WRMSR      INSTR_ENC(X86EMUL_OPC(0x0f, 0x30), 0)
>> +#define INSTR_RDTSC      INSTR_ENC(X86EMUL_OPC(0x0f, 0x31), 0)
>> +#define INSTR_RDMSR      INSTR_ENC(X86EMUL_OPC(0x0f, 0x32), 0)
>> +#define INSTR_CPUID      INSTR_ENC(X86EMUL_OPC(0x0f, 0xa2), 0)
>> +
>>   #else  /* CONFIG_HVM */
> 
> I further wonder whether putting this in hvm.h is a good idea. Is there
> anything wrong with using a brand new header, e.g. instr-enc.h?

No objection to that. I do wonder though if using the instruction encoding like
this is the best way of passing through the instruction to the fast path in
hvm_emulate_one_ctxt() since I think in some cases the instruction encoding
may not match the actual instruction that triggered the VMEXIT.

Ross


From xen-devel-bounces@lists.xenproject.org Thu May 21 10:24:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 10:24:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315006.1584896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ0ZQ-0001Ce-7I; Thu, 21 May 2026 10:24:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315006.1584896; Thu, 21 May 2026 10:24:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ0ZQ-0001CX-4V; Thu, 21 May 2026 10:24:04 +0000
Received: by outflank-mailman (input) for mailman id 1315006;
 Thu, 21 May 2026 10:24:02 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ0ZO-0001CR-Gu
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 10:24:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ0ZN-002aBg-QL
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 12:24:01 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0edd3a-bab6-0a2a0a5309dd-0a2a4501d40c-30
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 12:24:01 +0200
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0edd41-c1f2-0a2a45010019-d155dd29c9a0-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 12:24:01 +0200
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-44c350a5b87so3648357f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 03:24:01 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eaa7cd815sm2549438f8f.6.2026.05.21.03.24.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 03:24:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779359041; x=1779963841; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=W7F78VVVB2LZkM+BbiHjkRKKbRJh9c96LH9MOwlb4/A=;
        b=HkUR+6MPkQxLAGeoSXnGMQ6i5kGprZIO0tnbglidIOp0zObElmwG1QwPrnHiOTHkAf
         +rJKKI87O1skM9bvSciSRqAfDn9D7BVKiq5oEEfVQTdlYpRUdCYUg7D/8d6Lyh0n+bWi
         YCLkGgs3RvrtmAAPoKc6/VOEc2nwwUSz8kObXKZX4WOumo9B+v+6XQ+F8jZnMSDRgaeC
         PxKV+PNNw3yU9Bo3JITHZTcQRvFGQjhIaabtdgXG1af0+AU5d+KkUQs8nBGYdGMH6PY0
         DiFPeFS/O46AQLBvH8MrxI/BPTj8kcRhDA3eFEk4WUGIsUrUpYWO3FfQN9oEc1yXvgUB
         p+6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779359041; x=1779963841;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=W7F78VVVB2LZkM+BbiHjkRKKbRJh9c96LH9MOwlb4/A=;
        b=j1800YH1zyVzCjgZS+V2JFCX8IAAuM9w0o38mhj2xpcuaz+jow+jiQwxQD7E9iEmIw
         ZXI8u9ufT9f5fNKmXOhuu30ZORPX61vV0EbO+zHYO406FOw20tRsNkQ/pGSOPHMmaILF
         FK1KCVRN/AqzMQayjmSOrQoa7dRmtVJDEqFtSN0iM8FPe2sg2kfjZoDN5p0BauwiQ6by
         oEw5LgcNtGMvrUmcD6IplfLCX6TOeO8fp94KIwiy4h6EKtfIFxeDRTaFbirznYzWkqZk
         O9qWmuRanf275WQWvHDW95AJNOmIjOL/FbIcHh9K9Q1FRe7dkDLzdh4QXSONQ39Z7Z5s
         xrug==
X-Forwarded-Encrypted: i=1; AFNElJ9I9E9BQgt93rPpBbLa8pnLUWJPhoVq86OuHfxpYTEt8UKhHXoq/F9+zwq8BbnaTbi9ux+HXSRvPLU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyvDd5w9coKZXzBZ3AtYtBwFxRRxyT6URCWigNQV72UKXkwTeR+
	KBR28Eqe+zDuH1L7hSbhXc6ZeViKJ/VZrPGDFStsQpzVjAiNjawmsxuzf0zbxppIIg==
X-Gm-Gg: Acq92OEI9FEhTB1w/Brx2FsU8uLh65lGyRknnHohmEzbkVIFwN1Trx43dxzRQNA057p
	DIg4CVZ8gZfX01vMhSv9UAM70xf8O/SzNukVwJGvVyZZ18A0q23qyqIcn8DqyaumppE7Vb48IJm
	h8qMLU9eRDtFWEv032/W7v1EMgIIKmTjz6/0sDAmd6fwv2GLcYpKFdoMXMgny0FYX3CSqsdJUlN
	NObFJqDf1PKDC/zAnCYXSjsuYPChSZ4N+VvfHmrsrTo8pZRLfk+BwAF2L5Jdhu1L/IwfkLEMpzc
	q5ABJhE5TB2En7KbOaVP7O5jv6jtN5ihrbpE3GlF5XvN58iaDiyB7QiASsyA0ZU/Mo3iBa43LcK
	UxOhNVJmajexXvnCEpYcJN12uv04Aw3/MZBJZCvPaEjBNgpY9SpfzJyjsbpiKzAj8j0gy+WcKSh
	gTSP4wEjmSN4baDj9REVn5OGKlHZelXtKzNy5Kn1lVA4k3o0rX9sZ9dCXosY3QMChEro86FtA2w
	9hs7aFvgR68TTAoqNz4sWXI8A==
X-Received: by 2002:a05:6000:607:b0:45e:73b3:4515 with SMTP id ffacd0b85a97d-45ea413b984mr3818540f8f.35.1779359041000;
        Thu, 21 May 2026 03:24:01 -0700 (PDT)
Message-ID: <f2d7b907-53b7-457a-a80b-49c393238957@suse.com>
Date: Thu, 21 May 2026 12:23:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: strip debug info for intermediate linking steps
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <7a2fb6cc-fc9b-43c1-9f4f-d5a573d52dbc@suse.com>
 <2d995d54-40fd-48e1-90c9-fbf6a9933415@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2d995d54-40fd-48e1-90c9-fbf6a9933415@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1779359041-B534AFF4-8E93963D/0/0
X-purgate-type: clean
X-purgate-size: 1778

On 20.05.2026 14:51, Andrew Cooper wrote:
> On 20/05/2026 1:11 pm, Jan Beulich wrote:
>> Linking debug info takes time, especially for xen.efi. At the same time
>> symbol table contents aren't affected by presence / absence of debug info
>> in the linked binaries (the ELF and COFF symbol tables would have extra
>> section symbols, but tools/symbols omits those anyway).
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> The main speed gain is from xen.efi linking. Therefore I'm not even sure
>> if this wants mirroring to the other targets, where only xen-syms is
>> produced. It would mainly be some transient space saving there. (It would
>> perhaps want retaining when the linking steps are moved to common code.)
>> Thoughts?
>>
>> On the system I measured this on, "real" time went down from 4.9s to 3.9s,
>> while "user" time went from 7.8s to 6.8s (all approximate values of
>> course, as there naturally is a bit of variance, and all for full
>> incremental builds with no other changes, i.e. mainly the final linking
>> steps getting carried out for the common/version.o change).
> 
> If it saves time, then good; this will make an improvement to my dev
> cycle.  How does it fair on Ubuntu 16.04, where we've other known issues
> about the debug symbols appearing to be corrupt?

All builds are green in
https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14480259043.

> It would be nice to be consistent across the board.  If we're going to
> make linking common soon, then it's probably fine, but this does risk
> becoming yet another mysterious difference.

Well, I can add --strip-debug everywhere, but it feels somewhat unjustified.
Except if we take the disk space / I/O reduction into account.

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 10:26:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 10:26:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315014.1584907 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ0bK-0001gi-Ib; Thu, 21 May 2026 10:26:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315014.1584907; Thu, 21 May 2026 10:26:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ0bK-0001gb-El; Thu, 21 May 2026 10:26:02 +0000
Received: by outflank-mailman (input) for mailman id 1315014;
 Thu, 21 May 2026 10:26:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wQ0bJ-0001gV-Tk
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 10:26:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ0bJ-002Khx-9Z
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 12:26:01 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0edda4-5cb7-0a2a0a5109dd-0a2a4506cd4e-26
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 12:26:01 +0200
Received: from [52.101.193.61]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0eddb7-7371-0a2a45060019-3465c13db41a-4
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 12:26:01 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO1PR03MB7916.namprd03.prod.outlook.com (2603:10b6:303:276::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Thu, 21 May
 2026 10:25:57 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.016; Thu, 21 May 2026
 10:25:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lOIkszQepGJy9+wjQCLWmGpQGEvncN5f2Ab+tGaK7nNy5K84dsUjgYpiJrWj04hzagoLX4nS3K16Tmso4pLweFuPoMNiYZ3YsSnbEc8NZ54kX8yCrZEXCT2VNnxFFz6fhq/e7skmiEF5TuB7TpiDMbkaRq85VoOfuwRBB+hVoYkJt6O1V8uKf1n9qPK1nU8rgq0bMI5+S+fQIJQHVNCROhALPqHkhWrR5rKk8dNqQsk6fMFZblDQWmDmPKTzCoeojZwAuZxifSAcl7kRGO1bPSmo6nDhT87jJZw6QOiFga9GEpVk/V1gAVI/ivccTfIIPmEJnZNfG7ukyHKd3hOcpA==
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=2p1cP8Rf0jtNxQWUaM/+nw7md5LuI9LuWQ4nbDH5zWM=;
 b=xqjjd6FtJhoBdA21pW/a+ZsHgO4sqiSeGIujoKnWl+HdAkGfQQWfjh6toVSqZFEsckQZ2F1j1wo0EXKAI9TnmRSUXfxDtyjQllsu1GLmEnACuiexnIyHibKb2YYdTM+w/zqPLpqQ/QljzUwF5zBMqFTM+TXiMLn8Tg6COiGEwrjEeHClOKO1rtqag/BUH5WB9VXArGe/srYDcblKapDhsM1vJ/IMt7M04dax1p+lY4zsGU/4kDsxmnarU0PJSvZ6F3OoRDgpseDk876cnk3XWcquCXazbJxt60bgoP9V64+Ck0xv2UJoVBTkCvb5dScQmFCNP4sThzN7+5XsKclfIQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2p1cP8Rf0jtNxQWUaM/+nw7md5LuI9LuWQ4nbDH5zWM=;
 b=x9krQRqvuBqV5aRPf9bmaM2PKYXXLFt9+JlQqHRzki89iw1O+gYojJ6GEa+FPvVg27rGnv+PcPMCAJXRcdTUiB4+xDHSMJhq2QZE8fwvBK7+Nr9hVeJrBeqeWWeXQX+L5qqJ/BJaFZShSHs7UDJoevkWzYnZPQagzfxg0cznY0s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <1221af31-0f91-48fa-8928-c59b01608302@citrix.com>
Date: Thu, 21 May 2026 11:25:53 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86: strip debug info for intermediate linking steps
To: Jan Beulich <jbeulich@suse.com>
References: <7a2fb6cc-fc9b-43c1-9f4f-d5a573d52dbc@suse.com>
 <2d995d54-40fd-48e1-90c9-fbf6a9933415@citrix.com>
 <f2d7b907-53b7-457a-a80b-49c393238957@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <f2d7b907-53b7-457a-a80b-49c393238957@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR3PR09CA0008.eurprd09.prod.outlook.com
 (2603:10a6:102:b7::13) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CO1PR03MB7916:EE_
X-MS-Office365-Filtering-Correlation-Id: 32c0840e-8d17-47e3-c6cd-08deb7235895
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|4143699003|18002099003|22082099003|56012099003|11063799006|6133799003;
X-Microsoft-Antispam-Message-Info:
	ZEWg0AvnCGDOvUkvlJ8w12hmYD/HG6feYFNwNTrCjl2F2ZbDJ1dyJJdkXAciFcEtYgAUQaPIPcdWz73PBgiojwzpxRn56Xh723DZ4I6wi9sB6M9tTsgETaDYWL72NVSYYfMGghgmID+wDvY+tVeoLmY4wN2Lr/r8VCltCrOcB3j9kZQAV0p12yG8jyYkRGzFEkP6q/YDEQ3IhXtfMeIjfIvtjBIGk20Otw5hi5FS1yk9My+SFUr9ZyiJF35KQQMWTR1mPHZaGkQm30FbNH3yOnx7u35/xq/XymMHLTP7R2RJfX4ot/84ly8uXWDANEhFNXagkHyXAIgSNUoG9FkoZtnuLfj5a4cZWTbo2HIHLpYCDsf4SdXhQM8VzOrJBnXZ1i5IeCEirjmyZ4RV5wCQxlUOiUA62W1QKfwsnSyWF6u9Hx2/EF7KG6RDFiN3RBrEYdriicxer6LQqGzp4TfDnZ1bClGtjzkqMP+RN9/rYAyfUEXMYeVVM9bYkX5cSf+xN/P9iI6w8EPkYNPBxuGLxMLNiyQBa2HYgdpDZ4KQT1e+P9KqHzoJHx67VYRxGSQoBgSGXCIyJui/vyBVwNs8QsXR6QYCHZ/88Mu2hNbcOR1jvoF8eMmEhXjrX+fEw1I0QxnbkhxwahaRr/3eixKLpI0ZHQMt8Kn/SOYOb0Nlzo5ZjIwmH1L7M18iIJ2j0C9cvcDdD9jufvN6NGU6YYqxaA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(4143699003)(18002099003)(22082099003)(56012099003)(11063799006)(6133799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?N1l6U0J1MEVIaFQxcnBqMUU0Nmd6djA0QkFTMkJaMjJyeFpYdWhWdWF3dm9J?=
 =?utf-8?B?bTlmdFlrWUI3S0tnMC9ZWTNQaE8xY2lhT1UwTCtkdkhjbVR1UHROVmZmMlNy?=
 =?utf-8?B?RXJrVEdXVGttTURWWVNyZ3pvUGNTN1pnS0phcW5jSThtQ1liZjNHTmZod2li?=
 =?utf-8?B?dUdBczBhems5WWN2N0lXMHFBcnR1dkx6am5jSDBLR0c0UTFTL1Yxb3ZKS2g4?=
 =?utf-8?B?QzRzNSs4U3BFbjJIMTNVZmRUR25BRjZsd0xWb2syQ1Fvb2ZrRnNDNGVkSFZq?=
 =?utf-8?B?WFBHc1VkaEFCT1hGenkvOXhRRlpGVk11S0Q3NnVYVWNuTCtPQTduRDhBd1JX?=
 =?utf-8?B?a1NPYy9wbnYvc3BLbk8rbzM2NTZJeDVpRnMveXhXcXJZa0o5ZlhvZzdWeERV?=
 =?utf-8?B?b0ZNdVZoM0RYT3p0Ly93bVR2SnB1dk5HVHVlUVRoTGd5ekhVRVBUb3pGa2E3?=
 =?utf-8?B?YmNMOTRyVUVLdGRMMzRodERCM2ZWZUZsM25nV0lTLy9VNjFNSENKSTM4Q1Zm?=
 =?utf-8?B?b09XR1hrUVQzWkVKZURqYzJDdlhYRG0wMHNTOEthSSthQ240QnNzS1JTeWxx?=
 =?utf-8?B?T1ovN1V2WUxWUklWa3c2VUdJVXUwRVEybFJFNXhOcUxiaFk5dktWZWErY3RG?=
 =?utf-8?B?TWlUdWxYZ2htczlZNnJTYWlUcUNKbHFHQTVDVkQ5eVhjdGxKeGlmSlk4YW9k?=
 =?utf-8?B?VkRwaDZEZTVJaVBKbnUyZXVKcEU4bDhOdkJZOXFoRU1xK25RdnhBTWZNak9F?=
 =?utf-8?B?YWNtRGdWR2NrbWdJSlhVd1o0NTNnejRoVTA1eDM0SVM2V2EyNXJXaWs1dlRI?=
 =?utf-8?B?cDBFSkhVdmhJWllaVGhYcy9WbzgvRDIxNVRwZUQzQzV1Q2J0TFBHY1ZRQ0Jq?=
 =?utf-8?B?OEhza0VSQ1FpakJ0a3h0OC81QTJnSlJ6NkZKeW9Pb3QxamlmQ3ZqR2dDc2N4?=
 =?utf-8?B?VzN3d1MwY2FQK0lVbFpKWFk2aHdybVFaZlV1VnJOa3Y4dHlvVHJua2dua1Vt?=
 =?utf-8?B?R3RnT21aK0lqNjBUT2dCVkU2dXRIM1Y2bytMZUdjZUZySFVuVFAzWWFrTmlm?=
 =?utf-8?B?cjl6S1hBVkRLYStkTU1pUitCdDJrLytzNVl5bHJ4SDBCcWk4eGlYbU11SVFY?=
 =?utf-8?B?ZHpxNTE3MVZFc2RucGRqMHpUT2FONGJRMkNKeW0rTUNyZERRR0FoOU1GMCtm?=
 =?utf-8?B?YWMxUU5KTmd6ZDVYdTFlUytjVGQvYjVmVTlVMHJIenY2ZExVVkZoY2Qyczdz?=
 =?utf-8?B?ZS8rS3ZJaWduZXNTUTVIMytFKzJFWjNZVUxSM3Y0Q2x6ZnJQakZnZXhQRjZL?=
 =?utf-8?B?K21DNzd0MXNwRWEyRVFBZ1UvWkFmbUtyUmRPalBqWlJXNm1vWGhyNElYYnIy?=
 =?utf-8?B?d2RtclQ1YkwyQUUxazFHNWxDTWppM1FyZXpTd0oxM1h5dzBWWnprY3NrZndH?=
 =?utf-8?B?bDNFWUFXcFpoU3RyZkF6aDV5Yy82RGJpSEpqTDQwVjZTKzFpWXgwK2g5dWtj?=
 =?utf-8?B?a2tGamZWQnpnd1prRGNITUtMNnBpTVM2LzVVbjNvd2RPRDVLZlEzNll4OWpY?=
 =?utf-8?B?aTVSbE9VRS91RmJpUDVoRlpyZDljODlHTEw2b3AwYnI1bUxKcUhiazNmUUpH?=
 =?utf-8?B?WkJJbCt5OEJJd0l3cEtTMVNEQlVnSjVuRzczWThrMTVqelpISWMwcVI4YUhi?=
 =?utf-8?B?bUg3UXFxRDZtclUwMGlkMnQzTk1FYTR6WHA2VzZUWVlLMGkza2YrbjVvMHNI?=
 =?utf-8?B?U2gyOVRWZlgzQkV3dlFhNlJqblRJWVdLbEZvc3NZcVp3ZEpnL3lxK1VJdktO?=
 =?utf-8?B?RlNaakYyOFVXT2dOcDU1SENTcmVxRXRmOUdDWGlheGwrSFRPN2lUcUNhaktC?=
 =?utf-8?B?NnpzNXJ2TTNiT0prYng0bmEvQ1grcnBWRFEwVnFJRGg4UG5jMFRXc2x5NjN4?=
 =?utf-8?B?bHZDMzVhQ3VnaE9wSDNlMmc1ai81N2loV2VhQytkZkRJSm9ZTXFyRU1Dcy9l?=
 =?utf-8?B?VEZlVitOd3JXbmIxYzZueHNiZE1XUUQ1dU1xZEZnVmhrVnRHWUY2MDlBeU9E?=
 =?utf-8?B?cFp4MmZWeUFWbDlKelpyMXptaGViNjNyQ3VPSW41dTczbEVYQkFrcjRMZTJq?=
 =?utf-8?B?ZVNHZXc4ZUN2U2hTUTNWL2F1cHNpYi9mRjV6WU1NZ0YzVldhYXRMR2ZObE96?=
 =?utf-8?B?RytYZUU5UnFxcThpQnp1VTFtNUpkaUc1Q0p4dTVvSFNUWGlSUzUyZDBRek1r?=
 =?utf-8?B?TTZISVRTN3pSZGJab3hwalVnSkVXSmQ2aHFxeWZXamJtWEhJRTN6QUoyMm11?=
 =?utf-8?B?cVZ5cW4vQi9obG5lSnRrZVZTODdHVStOcmlidit2M0lFcm8yQkNRc055WFNI?=
 =?utf-8?Q?nPMlwAuA2QWh7FFo=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 32c0840e-8d17-47e3-c6cd-08deb7235895
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 10:25:57.1883
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: u9ZLOoCCaQ/2oYUr53GUK6UfKt/WjF2eYS8jJGl8SfbbSwM5rmPqG6PNluyW2FWUDQUXPPG/LeljjKiKMfZGYFvUSXf+gAJV015kZiEd/Uw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7916
X-purgate-ID: tlsNG-16d1c6/1779359161-8EB8BD75-2321C54E/0/0
X-purgate-type: clean
X-purgate-size: 1968

On 21/05/2026 11:23 am, Jan Beulich wrote:
> On 20.05.2026 14:51, Andrew Cooper wrote:
>> On 20/05/2026 1:11 pm, Jan Beulich wrote:
>>> Linking debug info takes time, especially for xen.efi. At the same time
>>> symbol table contents aren't affected by presence / absence of debug info
>>> in the linked binaries (the ELF and COFF symbol tables would have extra
>>> section symbols, but tools/symbols omits those anyway).
>>>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> The main speed gain is from xen.efi linking. Therefore I'm not even sure
>>> if this wants mirroring to the other targets, where only xen-syms is
>>> produced. It would mainly be some transient space saving there. (It would
>>> perhaps want retaining when the linking steps are moved to common code.)
>>> Thoughts?
>>>
>>> On the system I measured this on, "real" time went down from 4.9s to 3.9s,
>>> while "user" time went from 7.8s to 6.8s (all approximate values of
>>> course, as there naturally is a bit of variance, and all for full
>>> incremental builds with no other changes, i.e. mainly the final linking
>>> steps getting carried out for the common/version.o change).
>> If it saves time, then good; this will make an improvement to my dev
>> cycle.  How does it fair on Ubuntu 16.04, where we've other known issues
>> about the debug symbols appearing to be corrupt?
> All builds are green in
> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14480259043.

Ok.  Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

>
>> It would be nice to be consistent across the board.  If we're going to
>> make linking common soon, then it's probably fine, but this does risk
>> becoming yet another mysterious difference.
> Well, I can add --strip-debug everywhere, but it feels somewhat unjustified.
> Except if we take the disk space / I/O reduction into account.

It's mainly a guess on how long until we unify.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu May 21 10:57:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 10:57:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315050.1584943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ15P-0006Yy-3T; Thu, 21 May 2026 10:57:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315050.1584943; Thu, 21 May 2026 10:57:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ15P-0006Yr-0k; Thu, 21 May 2026 10:57:07 +0000
Received: by outflank-mailman (input) for mailman id 1315050;
 Thu, 21 May 2026 10:57:06 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wQ15O-0006Yl-17
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 10:57:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ15N-002gqJ-3d
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 12:57:05 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0ee500-2eae-0a2a0a5409dd-0a2a4502bad2-2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 12:57:04 +0200
Received: from [52.101.61.70]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0ee4ff-af86-0a2a45020019-34653d46b95f-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 12:57:04 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.16; Thu, 21 May
 2026 10:56:59 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.016; Thu, 21 May 2026
 10:56:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=glEnk6R6Tkqrt3HbT83EyYWawzR/ZtmZ3bX8nDsPM7p/mHmeYXO53+7MREFqz2MlcsDJ6KdvKDNJES+Mqefzwc/WJ4ELQ+xxohKgBox5Wnr7lfmO6XE2vZRXAA5wL7PuuOPT2INN2aWS0Vtdk3CsEUUkXye5baNg7V6NokfSakIGaoFrIXWJnlgiWJTbAWtQ9oaBH+vj4zNVTZGcE7auN8YWQ922B6UrNjRIJRKgbZN81ra0oxxGcdU3nn39vmH+4F82cNcEn6KdpTs5Xfh6+Z8zB5GwMDndnXYXsNCW6ujGb37cOmDcoM1fWRqIlFWaJqYaK3ujL9d6K3vh8VyGnQ==
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=tRwtYSYtMgk0I8R4REhXCzMmlzlRlsFEgWSmblqzuF4=;
 b=YYUSF825mDO0rlZmKNPZuJkf0TResk0zFxL+rOF/JKDuQAXYW2M4dd+DopdU4k2yGUvNtDTGJt8kRTidWUqTM/TmvO7WpS0sYwy8yexR+WHbcTPWtVx0OpI1Fo+8d0D2IYeKxdkUqHBFWjtyuAqGZmMzxq8a27+2I8aXbjF8ZSZkFqcyVFqWSUvt17GPyDC6zJZBg1a9rB68KNQWC3BQB7JgckT+5rThmdY9759eFoJpopGZSr7F8kfd3k+5arvIW0UQ9FZZSdALsFqgcgOs7bbJjoDs7sJvSO476oHZ0nyByW6nATo6elG1sV0oesDyHzn1gyi9Et8RGjrY6oMStg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tRwtYSYtMgk0I8R4REhXCzMmlzlRlsFEgWSmblqzuF4=;
 b=SbcY926lsCf9pWoEm8zsw+Za0eylU+boipLptqy0UvhhEb10frKqeF9LO0VvQr7lyxy60Wi1qA4kAZQtFjOWUYsBh6NpNSHGXesYJ9mI9dBiGCzh9n+3t0kvfDst8cOugfW99FPa1oGGcp6e3A7RimmBEdFVG+Su9bzMQpiakqg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <bfd37118-d955-4faf-b2d2-94a301f5018c@citrix.com>
Date: Thu, 21 May 2026 11:56:56 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] pv32: Fix bogus cr2 on fault in emulation gate
To: Jan Beulich <jbeulich@suse.com>
References: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
 <0e23078f-30e0-4077-be1e-365a265603de@citrix.com>
 <1779295699.8631fc262581453bbf619ec5b2062170.19e4649c100000f373@vates.tech>
 <9a6f4d03-651b-449a-80d0-35077170c8c8@citrix.com>
 <09a27cbf-065a-44ad-8956-18f050202822@suse.com>
 <340a3b2b-23ce-4039-8d00-5245ab252164@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <340a3b2b-23ce-4039-8d00-5245ab252164@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0465.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1aa::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DM8PR03MB6230:EE_
X-MS-Office365-Filtering-Correlation-Id: 54661f46-7522-4839-48a1-08deb727aeb1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|4143699003|11063799006|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	EuEgfIxyxkd0gPOno5dO5boV/YJegjBYiEksnIS0BygR7Wg6Oiy7WWp6MEX7CV8Zly4uAdgqSpqy20iNAUZbzadMwnjl1Ogc2yGMxHlyRi8JEJ94yzSWvLlWZJetpnTJ7HFotHgganevvgFnMrHUsiMbJ4EG3eJr2d76+dQizQuCWaC/G0Ryjzp4PtdxhsPBgQVDwfwDHK1JFihB5vzV2r4oirkJd9lKUWz8ESXyVFlb0wjczRuXVBWFI0y6Vw3knpcwtcVZKkDtCqbycmj+pKxygAW7SxuIgEW6gcguG5RUZW0iIm7HTrONQoPIbzMWwjHe2pVsJIPsFnIdOEcHdPyr6UrtNypFsDu61eIP1ruMSEj1cc2Y3M3KkIrCVbxUhqo+NtOZk3RCeHWK+kmRYAQXrN0IckFFKfRnBL6Ibus+r4Dh3Lzi0xJpuGCYeqghQwo8xMWToSb3HL8Aoj/MRYJjzbyy6KV5PIuDMDwv61AOnz243+WugGd9ffvA7qx3bQhJBDF37jo8ci5KNP14ZH1beC3bJgIYkqU7CmbS2O9n2eAJ0jrtGCb6g38zAJkLi4Kq/oOn4s0WtzAEJHdktqgyLEE6K2eDVsxi73evwHNUMBf1YsI4i1m+f7thTpQ8iLCKUDEFgBVgEFg8Luy2scBRaye6MdgkakLMhn5mA7C6dM2apE6IB2smt9UqR2Od
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(4143699003)(11063799006)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?K0V0dmRLSk5PK1ZEM1JXamdUMGZqbU1MR0dqSVh6NHN3VlZ4b0ZZVDZOWmp5?=
 =?utf-8?B?V2x1dllWZ1M3ZHVxZDJHakpWSWZhYmVoWER3U21tYmJvTE9OZUhwUDBVNlVZ?=
 =?utf-8?B?NmV1RWdSTDQ5RnhZUGNvTkVpajdaNDVkVXFGTnoyZlJSN1dQNXJQRjRsUHVX?=
 =?utf-8?B?Vkg2MVdmLzZoY0xndk54ME4rN1k0YjU4VHlzU0t0NlNNQmNENFROa1FrSXEy?=
 =?utf-8?B?VkdNd3h4QWlXWUx0dTA4cW9ZZVlGdFpvbGROZEZwZmg2ZEQzWnJLTWFhaEkx?=
 =?utf-8?B?TWhqYW5OUkVVNkhMTlpmTWh5N2JuR1crZDFIQVYxcmJkU0dFNFVVVWh0TzdR?=
 =?utf-8?B?OWVGMEo1Z0VucHlLVGQvdTIwbGkrSlkzYnV1am5ZU2Z4REZqeFBKOFcxZW1B?=
 =?utf-8?B?K3NCMWJsVTBOL25ROEJrbXBIRlNTUUcwV1JMUjUwQWJmcCtnbG91WU13ZUNK?=
 =?utf-8?B?L0VYcDluczZvclFoemlnZmdmSElwN29DVjIxZVBWT0txWldqZklYTTN4cThW?=
 =?utf-8?B?UllyZUxRVThOVnk2em04OXZIWnlDekh2cEZhSXdqSm94RTJ1bTJ6eHJCSE1B?=
 =?utf-8?B?cjFNeVdKU2ZTUzdxYzUvVnJGVEloTERvUDIvUWhOMEVab0h1TlcxcEZqMS9U?=
 =?utf-8?B?TkQzTnB0ais2dUJyM3hXUmQwTUQxbEpJdjg5WklwSzRORWZFU1F5dXkreGZl?=
 =?utf-8?B?b2xWOFZlWHFLZnhZazZ5VVRrWVdjb1dRUW13NWRFMWpjVUNFV3N0UllIM0Zo?=
 =?utf-8?B?eGoxREwwZUo1SkNFZXVyOWgwaDJaaDVEVUl5djhmbHFPci92TkJteXJrNGtZ?=
 =?utf-8?B?QjN3YlMzRkFzRUJOeE1PR2pFcXpUWGhhNkErbElZWHVyQnFKdE1icDR0UFNt?=
 =?utf-8?B?dUJNYVd5SWhZWklZOXpNQXRMMFNnU1hLaUtFVzVOdFFZZU1icVpYc3lSMWtq?=
 =?utf-8?B?bkRCdlZ3SXgyWUZrTzlDblZERURWZjZoTlBLOWpId05nRmhpcTRrT0Y5VVVx?=
 =?utf-8?B?Tml0TTM4bEJHN0dOSlF5TG5kNm45d3JXdzgvb0RtMVVVdEMrOEpEOEdZM29r?=
 =?utf-8?B?WVJQTHl1c0xxQTBDbkZ2TmM0WkdwVzdJclVqSVBnK3pSajl1RkFQZVRPWitP?=
 =?utf-8?B?aGp3VE9wR2RqcFpldzRMKzE4N21WSXpwalYzaTV0NWt0eXZZV3dReU5xbFF6?=
 =?utf-8?B?UnhNL2RoeDZTUzg3Z05ucTcwaTF6V3ljSXZJb2dLU2ZLdkJFd08xVUZMM0V6?=
 =?utf-8?B?Ui82Q2pKQkl4VHQ5OTB2aHowYXJSaE5jYTFENzEvUW9zMUpQaHdIS3RrdTFk?=
 =?utf-8?B?aEJrU1htM1F0WkpydDgwRE1lSVNrQjdlTmZnMlBsdEYxMjZlOEdKL2FsNHc3?=
 =?utf-8?B?bSszUllZcEh3OEZOVFpMa1ErZU1BVkViQ05nMnBwTTZPV3Q3NEkyaFdJYlRP?=
 =?utf-8?B?dWJzTWtkNU9aLzduMG5YNzl3d21EQ21yYUJFeFVzVWFPdGV1aGMzcktOZTNQ?=
 =?utf-8?B?eTZIczhlYmtNZnc3TnRJc0hWUVR4VzluemhxR095L05CWmppaTQ2byswUjdZ?=
 =?utf-8?B?VENKUlI0U2UrTFMyN3grdDhScGd3dGFpSWFCNmdRdFFVZ0thcWdaSGM3elJM?=
 =?utf-8?B?SG9VNllxUUR0bWVXcVRjM0NJdXJGUXJsZS9iNkNtaVM0TWZRRU9XdXFNZzk1?=
 =?utf-8?B?NjZxZmJZT2hSSFZ5b1ZtQ2g4SXdtNXlyUVd1My9ybStxdFJxV1I5bDR6WTM0?=
 =?utf-8?B?MHM0NnhYRGtzSDY2THFJN082L01IV3kwbVZhdGVNVFF5TjRpNmg3cmZCOHZR?=
 =?utf-8?B?bkNqK3RZNThzTmpuR211WU5JOFBWWjFDby9mTWVEMEN2NUt3by8vQjhSSmQz?=
 =?utf-8?B?U1BBbm1ybUZXZGN6M0NoUU82SnlWQWJJbGNEdDc4MXNkZjFVdVhZQ2pHT1NY?=
 =?utf-8?B?M1hQRFlROWlYbEFIdmw4Ri84cjludDhnbXEydmtRR3BzaFhENzZGYXN4ZTEx?=
 =?utf-8?B?aFRld1Z3d2hxODFvV1BhNWpvM2ZMVHlzMnptYStlRUUraXcwUTgza3h1RVJW?=
 =?utf-8?B?d2JsQTZrYkRZb2RPeTArU1VhMkdOZVFMV1RxdkFUVnJTWTFJWnpYOXkyWXpw?=
 =?utf-8?B?VXpacUJPRVUrdHBUQ28xNy9zVXZOQ3JYb3ZWMmdIV3QvTDI3blJ6WG5oY1ho?=
 =?utf-8?B?NEE4UzZmWHJVZE56VWFna3Y4Y2h2TXM5ZnkzMHdzSjhsZHllcllMa2xCa29o?=
 =?utf-8?B?Q0JXemNlSDNyMmgySmV3dkJVc05hMFZmaWFxbURCOVRPMmtKWkhOZUpOMjFz?=
 =?utf-8?B?NHNDeTEwNWI4UEdnaTRPam1EYVV3QWxXY3Q3N2JZU0hsTXVrSEtWTkJucDNC?=
 =?utf-8?Q?KSuYtcWbi0C4VJWs=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 54661f46-7522-4839-48a1-08deb727aeb1
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 10:56:59.6481
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Qt91/gHmYFg9eXd4kM/3yewKw9ARqIvvTrxmDUqnQPBVGEF/xS7tfAzG5iPjeNYZxCPes8R8TC4oRI18SyMcfK2LlPiPkxVL/9TKEjmekrU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR03MB6230
X-purgate-ID: tlsNG-720697/1779361024-AB563161-92F09A59/0/0
X-purgate-type: clean
X-purgate-size: 3998

On 21/05/2026 8:00 am, Jan Beulich wrote:
> On 21.05.2026 08:33, Jan Beulich wrote:
>> On 20.05.2026 19:21, Andrew Cooper wrote:
>>> On 20/05/2026 5:48 pm, Teddy Astie wrote:
>>>> Le 20/05/2026 à 18:34, Andrew Cooper a écrit :
>>>>> On 20/05/2026 4:51 pm, Teddy Astie wrote:
>>>>>> __{put,get}_guest returns -EFAULT on access faults which causes
>>>>>> the injected cr2 to be off by 14 bytes (as EFAULT is 14) which is
>>>>>> incorrect.
>>>>>>
>>>>>> Fix the computation by relying on copy_{from,to}_guest_pv which
>>>>>> reports the number of remaining bytes instead of a negative errno,
>>>>>> such that we can compute the offset properly.
>>>>>>
>>>>>> Fixes: 70ad570b2799 ("x86/64: paravirt 32-on-64 call gate support")
>>>>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>>>>> ---
>>>>>>   xen/arch/x86/pv/emul-gate-op.c | 5 +++--
>>>>>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>>>>>
>>>>>> diff --git a/xen/arch/x86/pv/emul-gate-op.c
>>>>>> b/xen/arch/x86/pv/emul-gate-op.c
>>>>>> index c2c699fbff..cacc171115 100644
>>>>>> --- a/xen/arch/x86/pv/emul-gate-op.c
>>>>>> +++ b/xen/arch/x86/pv/emul-gate-op.c
>>>>>> @@ -289,9 +289,10 @@ void pv_emulate_gate_op(struct cpu_user_regs
>>>>>> *regs)
>>>>>>           int rc;
>>>>>>   #define push(item) do \
>>>>>>           { \
>>>>>> +            unsigned int __value = item; \
>>>>>>               --stkp; \
>>>>>>               esp -= 4; \
>>>>>> -            rc = __put_guest(item, stkp); \
>>>>>> +            rc = copy_to_guest_pv(stkp, &__value, sizeof(__value)); \
>>>>> Oh, this probably violates MISRA, but you don't need to use a separate
>>>>> variable because sizeof() has no side effects.
>>>>>
>>>>> Given that the expression is now &item, I think it needs to be &(item).
>>>>>
>>>> I tried something like that, but it looked a bit weird and clang
>>>> wasn't happy (at least in language server) because of the &(x + y).
>>>>
>>>> We also need to ensure that we're actually copying 32-bits scalars
>>>> (and not 16-bits or 64-bits ones) like the previous behavior.
>>>>
>>>> That diff seems to work though
>>>>
>>>> diff --git a/xen/arch/x86/pv/emul-gate-op.c
>>>> b/xen/arch/x86/pv/emul-gate-op.c
>>>> index cacc171115..b72a3058dd 100644
>>>> --- a/xen/arch/x86/pv/emul-gate-op.c
>>>> +++ b/xen/arch/x86/pv/emul-gate-op.c
>>>> @@ -289,10 +289,9 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
>>>>          int rc;
>>>>  #define push(item) do \
>>>>          { \
>>>> -            unsigned int __value = item; \
>>>>              --stkp; \
>>>>              esp -= 4; \
>>>> -            rc = copy_to_guest_pv(stkp, &__value, sizeof(__value)); \
>>>> +            rc = copy_to_guest_pv(stkp, &(uint32_t)(item),
>>>> sizeof(uint32_t)); \
>>>>              if ( rc ) \
>>>>              { \
>>>>                  pv_inject_page_fault(PFEC_write_access, \ 
>>> Oh, that's a second bug you're fixing then.
>>>
>>> Pushes of ss/cs need to be done with 4-byte writes and zero extended.
>> And they are: Access size is derived from the pointer passed, not from the
>> item.
> Oh, while access size has always been correct, ....
>
>>> I've added:
>>>
>>> The use of a local variable in push() also fixes a second bug.  On all
>>> but the earliest 32bit CPUs, segment selectors pushes are
>>> zero-extended 32bit stores.  Xen was not doing this for %ss and %cs.
> ... zero-extension was lost with the FRED work, so a 2nd Fixes: tag is
> going to be necessary: cb29eed2dae7 ("x86/traps: Extend struct
> cpu_user_regs/cpu_info with FRED fields").

I don't understand this comment.

The FRED work added extra fields into %cs/%ss with unions, but the
fields named cs and ss are still uint16_t.  That aspect didn't change.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu May 21 11:49:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 11:49:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315085.1584952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ1u1-0005XZ-V4; Thu, 21 May 2026 11:49:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315085.1584952; Thu, 21 May 2026 11:49:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ1u1-0005XS-Rm; Thu, 21 May 2026 11:49:25 +0000
Received: by outflank-mailman (input) for mailman id 1315085;
 Thu, 21 May 2026 11:49:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ1u0-0005XM-I5
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 11:49:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ1tz-00B3Zm-Lk
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 13:49:23 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ef141-5cb7-0a2a0a5109dd-0a2a450b939c-4
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 13:49:23 +0200
Received: from [209.85.221.42] (helo=mail-wr1-f42.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ef143-212f-0a2a450b0019-d155dd2ad89c-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 13:49:23 +0200
Received: by mail-wr1-f42.google.com with SMTP id
 ffacd0b85a97d-44e1ebb3122so3671206f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 04:49:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49035eba897sm19080675e9.5.2026.05.21.04.49.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 04:49:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779364162; x=1779968962; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HKw2vmwtXVuOXU326RgUdQtgCUot1rc35OPFmGveVmg=;
        b=RuyIc06O00O1Hj/mswXL24Dq8+Nm1poWac9bZM/nM+U6yCObZpm7pEr5qw0b21xJ0A
         Jz/JCMnpLQzT9wFOujlAkVsTugKXbimdX+kADcY19JDpD2dhyZVsfEVV8dzr+1+mpeM3
         uWTg0NC+RUQZtgYQo9K8SWYf3J14J/4f2LBo5iUU6uNaGdE01pc+lIxnDRnOf+T8rX5G
         Iju/oswytlC2wl7qAl41SIk70i1meOOOFVDlIxFw5pbqrfehr8XqJxow8+dQ7P2m3XUr
         FEtcKSIVctFrpaWLiePLC5pLdb9Bi0DQI269tVxgXKlHEl1G3VUHKlYff9ghkG7uivyS
         oFNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779364162; x=1779968962;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HKw2vmwtXVuOXU326RgUdQtgCUot1rc35OPFmGveVmg=;
        b=ft8sXoq+k9I6G/9FORYEf4PQVoliTPShLJjqRtq3mWyMRnxRbeHBtw4yHD7o8KViOV
         reeGM0Rp24vw1ZMtu1R5giNvjaoXbgCSICqP082bPeNCAgJckRfqPUVziYva6+GOY4x3
         dnSJ620qGAS2Edlt6BVMum8NrKvIs0mI+C7VaW+Q06nOIaqHoCrf1vISB/Uc34kphNCr
         nxaP8+LHDNVx7Bvp97lk5h9K7Lna+ry0gUz7X3EhlllScEiGRlWDXnvkmvYKoru43+Ma
         kC0Cy2X99ah7gMFSdgv7umsPyOyo0RqXdCPMuRDaGl51kQvpfVprWKYCVMukx+fE+ok0
         ozlg==
X-Forwarded-Encrypted: i=1; AFNElJ+3s1lDJ3yLGATYh7qy+q7upSHhKyPXEB05GnZV2XNHXlRxOFUqkj+Deqwl+VpBwFU3Kwgtk8UaGc8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzGjjND6451oe75gxswYD7Ny95kc/5OSmlK/BL9PlFJu6xzIOKV
	DtBA0Dmlr5Ho8J2Fe25xzeNMkKH3TDQZNuVlnJfcJzgA0WsN2zEN/YVIOLuNHp3pFA==
X-Gm-Gg: Acq92OHqVlk9GYYTeklDNAbXvjf26IRnRBxlWqIfM7tlj6ZhmP21Qdg1UgKNk9iQiI7
	c8dHSzU9nkJy85CnuhyVAydrgxOIONZksvywzBj/FSWFOX6e2ZegHuWjjucu+4+BQVWtiYsPZGN
	Ap1Ob36Aow1XtBKfonjGJzM/4lPMA1bEm8Y1F/ovR6mvRjm4sZiFHPDGFp20bgqI6R6gZ8VQE1s
	ZV3kKOLtY+JTcdfQxwOBlsr/Dh45lRP/w3N8S00tidJH4VxOpGadHlts/XjFDOkJ7KoLattaEq8
	VvSLahjqzdNIE7xybX06yLLuw9cDPQDZ/AzKRpfIAJ9MU3q3GEACU2xcW2JYUAbCy/sTkAGeZAi
	rtxiCh1WO463sCpL9vqCmU2RBz3QEfi/2dE08oYhin48IjbujTkIpuirl/d5ll9eIyNnTC4r3AX
	tp/XbdNpx7PKZmKqS4Zib8Oz3ZaawW7KVAIk9hICR0Pwt1h4tpRSNVsupM7ts8r+xxpJU0I0tF+
	C2IA+apAncnpr0=
X-Received: by 2002:a05:600d:1:b0:48e:8741:fd3d with SMTP id 5b1f17b1804b1-49036071aedmr30836405e9.14.1779364162277;
        Thu, 21 May 2026 04:49:22 -0700 (PDT)
Message-ID: <4ddcca19-3c19-415b-bbe3-707f839d5210@suse.com>
Date: Thu, 21 May 2026 13:49:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] pv32: Fix bogus cr2 on fault in emulation gate
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <1779292317.8631fc262581453bbf619ec5b2062170.19e46162869000f373@vates.tech>
 <0e23078f-30e0-4077-be1e-365a265603de@citrix.com>
 <1779295699.8631fc262581453bbf619ec5b2062170.19e4649c100000f373@vates.tech>
 <9a6f4d03-651b-449a-80d0-35077170c8c8@citrix.com>
 <09a27cbf-065a-44ad-8956-18f050202822@suse.com>
 <340a3b2b-23ce-4039-8d00-5245ab252164@suse.com>
 <bfd37118-d955-4faf-b2d2-94a301f5018c@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <bfd37118-d955-4faf-b2d2-94a301f5018c@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1779364163-18762F3B-F75B2F0F/0/0
X-purgate-type: clean
X-purgate-size: 4639

On 21.05.2026 12:56, Andrew Cooper wrote:
> On 21/05/2026 8:00 am, Jan Beulich wrote:
>> On 21.05.2026 08:33, Jan Beulich wrote:
>>> On 20.05.2026 19:21, Andrew Cooper wrote:
>>>> On 20/05/2026 5:48 pm, Teddy Astie wrote:
>>>>> Le 20/05/2026 à 18:34, Andrew Cooper a écrit :
>>>>>> On 20/05/2026 4:51 pm, Teddy Astie wrote:
>>>>>>> __{put,get}_guest returns -EFAULT on access faults which causes
>>>>>>> the injected cr2 to be off by 14 bytes (as EFAULT is 14) which is
>>>>>>> incorrect.
>>>>>>>
>>>>>>> Fix the computation by relying on copy_{from,to}_guest_pv which
>>>>>>> reports the number of remaining bytes instead of a negative errno,
>>>>>>> such that we can compute the offset properly.
>>>>>>>
>>>>>>> Fixes: 70ad570b2799 ("x86/64: paravirt 32-on-64 call gate support")
>>>>>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>>>>>> ---
>>>>>>>   xen/arch/x86/pv/emul-gate-op.c | 5 +++--
>>>>>>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>>>>>>
>>>>>>> diff --git a/xen/arch/x86/pv/emul-gate-op.c
>>>>>>> b/xen/arch/x86/pv/emul-gate-op.c
>>>>>>> index c2c699fbff..cacc171115 100644
>>>>>>> --- a/xen/arch/x86/pv/emul-gate-op.c
>>>>>>> +++ b/xen/arch/x86/pv/emul-gate-op.c
>>>>>>> @@ -289,9 +289,10 @@ void pv_emulate_gate_op(struct cpu_user_regs
>>>>>>> *regs)
>>>>>>>           int rc;
>>>>>>>   #define push(item) do \
>>>>>>>           { \
>>>>>>> +            unsigned int __value = item; \
>>>>>>>               --stkp; \
>>>>>>>               esp -= 4; \
>>>>>>> -            rc = __put_guest(item, stkp); \
>>>>>>> +            rc = copy_to_guest_pv(stkp, &__value, sizeof(__value)); \
>>>>>> Oh, this probably violates MISRA, but you don't need to use a separate
>>>>>> variable because sizeof() has no side effects.
>>>>>>
>>>>>> Given that the expression is now &item, I think it needs to be &(item).
>>>>>>
>>>>> I tried something like that, but it looked a bit weird and clang
>>>>> wasn't happy (at least in language server) because of the &(x + y).
>>>>>
>>>>> We also need to ensure that we're actually copying 32-bits scalars
>>>>> (and not 16-bits or 64-bits ones) like the previous behavior.
>>>>>
>>>>> That diff seems to work though
>>>>>
>>>>> diff --git a/xen/arch/x86/pv/emul-gate-op.c
>>>>> b/xen/arch/x86/pv/emul-gate-op.c
>>>>> index cacc171115..b72a3058dd 100644
>>>>> --- a/xen/arch/x86/pv/emul-gate-op.c
>>>>> +++ b/xen/arch/x86/pv/emul-gate-op.c
>>>>> @@ -289,10 +289,9 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
>>>>>          int rc;
>>>>>  #define push(item) do \
>>>>>          { \
>>>>> -            unsigned int __value = item; \
>>>>>              --stkp; \
>>>>>              esp -= 4; \
>>>>> -            rc = copy_to_guest_pv(stkp, &__value, sizeof(__value)); \
>>>>> +            rc = copy_to_guest_pv(stkp, &(uint32_t)(item),
>>>>> sizeof(uint32_t)); \
>>>>>              if ( rc ) \
>>>>>              { \
>>>>>                  pv_inject_page_fault(PFEC_write_access, \ 
>>>> Oh, that's a second bug you're fixing then.
>>>>
>>>> Pushes of ss/cs need to be done with 4-byte writes and zero extended.
>>> And they are: Access size is derived from the pointer passed, not from the
>>> item.
>> Oh, while access size has always been correct, ....
>>
>>>> I've added:
>>>>
>>>> The use of a local variable in push() also fixes a second bug.  On all
>>>> but the earliest 32bit CPUs, segment selectors pushes are
>>>> zero-extended 32bit stores.  Xen was not doing this for %ss and %cs.
>> ... zero-extension was lost with the FRED work, so a 2nd Fixes: tag is
>> going to be necessary: cb29eed2dae7 ("x86/traps: Extend struct
>> cpu_user_regs/cpu_info with FRED fields").
> 
> I don't understand this comment.
> 
> The FRED work added extra fields into %cs/%ss with unions, but the
> fields named cs and ss are still uint16_t.  That aspect didn't change.

__{get,put}_guest() determine the amount of data to copy from the pointer
they're passed. That being unsigned int *, 32 bits will be copied
regardless of field type. Actually: __put_guest() casts the incoming
value to the type the pointer argument points to. So FRED work didn't
break anything, and I was wrong to ask for a 2nd Fixes: tag. Zero-
extension was and is there.

For __get_guest() et al there looks to be potential of data corruption, if
variable type is less wide than pointed-to type.

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 11:50:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 11:50:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315091.1584960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ1vM-0006xS-7J; Thu, 21 May 2026 11:50:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315091.1584960; Thu, 21 May 2026 11:50:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ1vM-0006xL-4l; Thu, 21 May 2026 11:50:48 +0000
Received: by outflank-mailman (input) for mailman id 1315091;
 Thu, 21 May 2026 11:50:46 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQ1vK-0006xB-7T
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 11:50:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ1vJ-002MT5-KK
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 13:50:45 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0ef182-2eae-0a2a0a5409dd-0a2a4509d57a-42
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 13:50:45 +0200
Received: from [209.85.221.45] (helo=mail-wr1-f45.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a0ef195-2497-0a2a45090019-d155dd2db1f2-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 13:50:45 +0200
Received: by mail-wr1-f45.google.com with SMTP id
 ffacd0b85a97d-45ea19f412aso617218f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 04:50:45 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d44d7dsm68031065e9.5.2026.05.21.04.50.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 04:50:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779364245; x=1779969045; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Veh4yAlcfg3txmWXjV6A/+ZcZImXJ9gUqDbiQEAl0U4=;
        b=UW/DD9lfhCPhm2zsLWu44PfLUO7y+mEURR1YBjrdg5efsAW+Pd6Tih5PzakhthpsGR
         NrEQJC9MlJPQKmPeKKM8yNgcRKQqq5Dkjy3G5xfRD9nB4QfaDFfS89fv2+3xgNZezeGW
         nDkKj38HT0EO+DsW4hUb9uo63Ygi2LEGrswn/3VEMdaCPugm5/aLHoHvBssTCFXd3mb+
         q9IEeRmpUZUQspmaTkvjRH8vl+1Tw1m2b6OI9KT8jZDMXoqncXmnhHcuHX5teCCeOR4v
         Eoen0pygxkaz/Ptc66+l+C9yi2AUu+ySxfEd9sfwEkcb4sa438M9vW4b1QGk04hUE/by
         P/LQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779364245; x=1779969045;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Veh4yAlcfg3txmWXjV6A/+ZcZImXJ9gUqDbiQEAl0U4=;
        b=LLR/WOGdwRPw1SCUKGeHkvXm8HtWW1rjDJSE/xb3KrZj6jUBUJImvYDqAX7y3KbvbL
         MgbTx66TDD0xYnNRX9lRRsr6+/YANyS9QAO7sW2pnb7BFDtGiBrdxh/aMpXRHqmcxJRW
         XBXKV72Y89qf8JzmV4Cvq00ywYb2uYG7/Zhs6dSWTyLlruwuC6JFrQaGdN/ZmyFEgj6A
         ck1c4De99jPK/s+UmfI1jyYJXfPMKxV7/d4P96fyVovgbBcHrupEig7nA3I4z3EM4EJ6
         jNjgeaRXeSaLK9+trro7cXxMmr7LYAut3hWKLIfTj1etef5UE2aagpfuVvbl/4NPyOXZ
         CoyA==
X-Forwarded-Encrypted: i=1; AFNElJ83ewlN5/cZ3jF6D/f/n3FSpksv0B6tgyAZ1vseFfhHUbEkgmWTiA4OXbm0Xrcnyyjc9Av/IIDdx54=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyfva/u852CeserTlMn7VEri9arpsNXiQ1S9qH5enBpuMVrITS6
	/Ci//D4kWxTKn/B6e32xYvJM74ypdI3feVq1UccWh0hRrHne63NGZ1kf
X-Gm-Gg: Acq92OE9AFkZdFnNYoUxw7MSnLdFjvRWozSPj/TbEVdpQKPHrPiruSqZaY98GpG0GbH
	vFBeOIxzoRviWoAdXSFbF38Nc6bthrGZ9RGMPtpKnAuVz7yPGMJ4byHD5VjNA1/7p5+Z//eDtDY
	hp8YlOvJjd9xzlBrBUTJvJVtWQBCLP/e0B4BkCaLyz3WWHnQhzn7NoiCZRWF/1uX4FLO09hx8V7
	pS/yrI8qRgKT66YUWgzdACBYDHfZoBLhBnAZRnCmxc4ulYmWd4qGjZNzFG5Bub17IcFs9VUAr6s
	LdgHU+Rx9XWMTiERe7jn8fjH7h0oCSqp49l8bAqA/B+Namr4T8TRvYoC51a+izmFxnSdHzQzXzB
	vt0muC/Ze8qFnf0VQ/FmV8zlGMUiJJXt+6nc1YyTXd0waCM9DIz2BRfrLEn1m5hFX7xI5sw4Fmx
	snFqRvhj5ztRpSxaRlrsOntupA2TcVzwWhPDQi9W+4itUxNo6aRoXTi34heHnNN3mwFW5PH9QEH
	ifuBqZ2cA==
X-Received: by 2002:a05:600c:a112:b0:48f:e230:80a3 with SMTP id 5b1f17b1804b1-490360dc0a4mr28940395e9.33.1779364244776;
        Thu, 21 May 2026 04:50:44 -0700 (PDT)
Message-ID: <47082d75-bb32-4178-952d-a237c111ee5a@gmail.com>
Date: Thu, 21 May 2026 13:50:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 v6] x86/svm: Support vNMI on capable hardware
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <20260514175623.1869042-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20260514175623.1869042-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779364245-4216DA53-5E208827/10/73395122804
X-purgate-type: spam
X-purgate-size: 1798



On 5/14/26 7:56 PM, Andrew Cooper wrote:
> From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
> 
> Starting with Zen4, AMD CPUs can virtualise NMIs for a guest.  On older
> hardware, determining when an NMI is safe to deliver is a challenge and Xen
> does not handle all corner cases correctly.
> 
> With vNMI, there is an enablement bit and two new bits of state in the VMCB; a
> pending bit, and a blocked bit.  These directly map to the CPU state for
> handling NMIs, and are maintained by hardware during the running of the vCPU.
> 
> When vNMI is enabled, have svm_{get,set}set_interrupt_shadow() work in terms
> of the vnmi_blocking bit rather than the IRET intercept.  This allows an
> emulated IRET instruction to re-enable NMIs.
> 
> When injecting a new NMI, simply set the vnmi_pending bit; hardware will
> deliver the NMI to the guest at the next suitable juncture.
> 
> One complication is that, when delivering a second NMI before the first has
> completed, the mix between common HVM logic and SVM specific logic will try to
> open an NMI window, malfunctioning as it does so.  When vNMI is enabled, short
> circuit this to not consider NMIs blocked.
> 
> Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <jbeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Teddy Astie <teddy.astie@vates.tech>
> CC: Jason Andryuk <jason.andryuk@amd.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> For 4.22.  This is somewhat overdue and makes a concrete improvement to NMI
> handling on recent AMD hardware.
> 
Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu May 21 11:57:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 11:57:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315104.1584970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ21j-0007aP-SV; Thu, 21 May 2026 11:57:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315104.1584970; Thu, 21 May 2026 11:57:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ21j-0007aI-Pk; Thu, 21 May 2026 11:57:23 +0000
Received: by outflank-mailman (input) for mailman id 1315104;
 Thu, 21 May 2026 11:57:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ21j-0007aC-DU
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 11:57:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ21i-00DeTp-Ls
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 13:57:22 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ef31f-5cb7-0a2a0a5109dd-0a2a4508eaee-12
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 13:57:22 +0200
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ef322-63b5-0a2a45080019-d155dd33bcfa-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 13:57:22 +0200
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-43d7e23defbso3380479f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 04:57:22 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eaa935898sm2403394f8f.28.2026.05.21.04.57.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 04:57:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779364642; x=1779969442; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ye9HFGiCDntR9q8DEFql3gjH2DlLqZVOyveb2lMOouk=;
        b=a/95HMWf2brbhEwKe09wf+j14HLDFG0eVZEUXKFv+vOucNJnlxUskIHWXWdJphh+9l
         qYFgrmL9kCC/81xMYfNf0FJATu9qXlSRm5W7MINVXQxMGibBoazb0opgvctcZqohiPLx
         wkM6h2axnDW1+hNQ/AWOH9N+dgTD9B8W8aRxJvJxyZMMPXt2thxETOkoW12nBSeStMHj
         O+ID4pKNTD9eJCig7ylOkBmjgI2X1U5ocu7Nd42MStqeTeu3RilRF7rvVdsVjSVLPKTy
         V7YXI1V0XjCVf+OuUSCU+93I4LQAdFZkZV4/i9u3NMmv1Cdds1FzVaDp+opnWLr08eCT
         uUig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779364642; x=1779969442;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ye9HFGiCDntR9q8DEFql3gjH2DlLqZVOyveb2lMOouk=;
        b=OfATwv5zDxkStAiBcoamTsJr1p5hri7NxuX84JxAv7KFVnThZ0UsqjUV7QnOAs1elb
         QGuGALAUeHB8GiXSfh5Id4cotu9PozlXa9VML8aXT7GIK5f+Kf1ePHGPgg1br19nZG/x
         DHUVLt4YjsCyOcxBJyGieuKf5Q/a/Jus0uzNLv1Te7nnUo7li+zVn+5jStNesoHdF2IK
         7KEal+GCq6xY8BbfI2Og0A5rd/UK+Z/7hZi5fu6GcgL+lCRSyQdsDOQmsrm9LgBlXa6+
         lyu9sHQDJu7uxyF/EMX+UiwcVY+ZZd+dEKJSAIkoQuNVPW/p/6rN46uM+HqJuoHMaoyB
         R7mw==
X-Forwarded-Encrypted: i=1; AFNElJ9Wn28K/2cHP1YofaEqoNhSObZ1Amzqg0E3dyo4bCz2lImBBCeVM+zVDyqYMkOTxFRzLb48YdGNQaw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyhtC2DDJVHdn9oAQ9yrwaS/9meGzwsthmp7RgtPRolcrXlGMAe
	eWrUKNSnHOvnTMgTTu/6qHG/8w6uUyQCbkuEQbW0WRqJX6v87eaqOoW+WSmAtkC1bg==
X-Gm-Gg: Acq92OGwbNw5AEnbIy+FaRvz5gQThK8AW/6KhqUSw8v0Wa6WSL7JG3dJiKMcnJ2s9Kb
	abDM/aWotP9K64Kstuo4RiVf/9IRMUTh8NBrCB3wuYxMNGga5Z7HbTXkRnJgbNIOOQb6Gpkv9Pg
	OkhbggwBp2oH2fqVYOn0DmsgHg754UzjO+dRHZMrYceqG5XnAUz/+u3b9oKIKQ4BFmzZvr56ZFR
	JtPyGwwMMOhxFR6b+WwgmxVpgz1Iw1/1s1skamKhzFfhGpIIvJh4VKgsMHe7mKCen9ksIsk0y0K
	s64h4VWkbnJ9o7FlYPJE8byCLdRoQsvEtwKh22jICOIQUgKrxMiNfWVExsLFlarEjBeZICUk4M1
	XpENDUL6mPjEXdnbKp9QoIqUDp/V6sDba1RGLn4sVHmlRQYO/5QmEtIHsc2oYkC0puhCDQ4zj9u
	Wbcf3DC1KPm3vFpF3IrEmuSKdVyKJ9oejU6Jz27wTPqtQdBwFKndTJ27+9YTZgi+/t7QHV+34lr
	QwN6PHvONzwQ56EI8Sxz8tXjQ==
X-Received: by 2002:a05:6000:1884:b0:45e:9ea3:ce9a with SMTP id ffacd0b85a97d-45ea37b45fdmr4414009f8f.8.1779364641923;
        Thu, 21 May 2026 04:57:21 -0700 (PDT)
Message-ID: <4aac1424-1a65-4af2-b9cd-0ec70eee042a@suse.com>
Date: Thu, 21 May 2026 13:57:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC v1 5/7] x86/hvm: Move INSTR_* constants to hvm.h
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
 <20260518131404.3716969-6-ross.lagerwall@citrix.com>
 <a5b2561f-0225-4f18-bc74-7f66227bc807@suse.com>
 <6a6dd703-cb9f-4a13-b0da-ff1a9d841bc5@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <6a6dd703-cb9f-4a13-b0da-ff1a9d841bc5@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1779364642-BC766DB1-70C4E4E5/0/0
X-purgate-type: clean
X-purgate-size: 3048

On 21.05.2026 12:12, Ross Lagerwall wrote:
> On 5/19/26 10:49 AM, Jan Beulich wrote:
>> On 18.05.2026 15:14, Ross Lagerwall wrote:
>>> --- a/xen/arch/x86/include/asm/hvm/hvm.h
>>> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
>>> @@ -851,6 +851,35 @@ static inline void hvm_sync_pir_to_irr(struct vcpu *v)
>>>           alternative_vcall(hvm_funcs.sync_pir_to_irr, v);
>>>   }
>>>   
>>> +/*
>>> + * Encoding for svm_get_insn_len().  We take X86EMUL_OPC() for the main
>>> + * opcode, shifted left to make room for the ModRM byte.
>>
>> With all of this moved, the comment wants adjusting, at the very least by
>> putting "e.g." in front of the function name.
>>
>>> + * The Grp7 instructions have their ModRM byte expressed in octal for easier
>>> + * cross referencing with the opcode extension table.
>>> + */
>>> +#define INSTR_ENC(opc, modrm) (((opc) << 8) | (modrm))
>>> +
>>> +#define INSTR_PAUSE      INSTR_ENC(X86EMUL_OPC_F3(0, 0x90), 0)
>>> +#define INSTR_INT3       INSTR_ENC(X86EMUL_OPC(   0, 0xcc), 0)
>>> +#define INSTR_ICEBP      INSTR_ENC(X86EMUL_OPC(   0, 0xf1), 0)
>>> +#define INSTR_HLT        INSTR_ENC(X86EMUL_OPC(   0, 0xf4), 0)
>>> +#define INSTR_XSETBV     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0321) /* octal-ok */
>>> +#define INSTR_VMRUN      INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0330) /* octal-ok */
>>> +#define INSTR_VMCALL     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0331) /* octal-ok */
>>> +#define INSTR_VMLOAD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0332) /* octal-ok */
>>> +#define INSTR_VMSAVE     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0333) /* octal-ok */
>>> +#define INSTR_STGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0334) /* octal-ok */
>>> +#define INSTR_CLGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0335) /* octal-ok */
>>> +#define INSTR_INVLPGA    INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0337) /* octal-ok */
>>> +#define INSTR_RDTSCP     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0371) /* octal-ok */
>>> +#define INSTR_INVD       INSTR_ENC(X86EMUL_OPC(0x0f, 0x08), 0)
>>> +#define INSTR_WBINVD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x09), 0)
>>> +#define INSTR_WRMSR      INSTR_ENC(X86EMUL_OPC(0x0f, 0x30), 0)
>>> +#define INSTR_RDTSC      INSTR_ENC(X86EMUL_OPC(0x0f, 0x31), 0)
>>> +#define INSTR_RDMSR      INSTR_ENC(X86EMUL_OPC(0x0f, 0x32), 0)
>>> +#define INSTR_CPUID      INSTR_ENC(X86EMUL_OPC(0x0f, 0xa2), 0)
>>> +
>>>   #else  /* CONFIG_HVM */
>>
>> I further wonder whether putting this in hvm.h is a good idea. Is there
>> anything wrong with using a brand new header, e.g. instr-enc.h?
> 
> No objection to that. I do wonder though if using the instruction encoding like
> this is the best way of passing through the instruction to the fast path in
> hvm_emulate_one_ctxt() since I think in some cases the instruction encoding
> may not match the actual instruction that triggered the VMEXIT.

Do you have an example? If so, that would indeed be at risk of being misleading
or actively confusing. (Of course INSTR_VMCALL wants renaming, as was already
suggested.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 12:03:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 12:03:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315117.1584979 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ27E-00014d-Ky; Thu, 21 May 2026 12:03:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315117.1584979; Thu, 21 May 2026 12:03:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ27E-00014W-H2; Thu, 21 May 2026 12:03:04 +0000
Received: by outflank-mailman (input) for mailman id 1315117;
 Thu, 21 May 2026 12:03:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ27D-00014O-N4
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 12:03:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ27B-007SJu-JU
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 14:03:01 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ef46d-e002-0a2a0a5209dd-0a2a4507c598-40
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 14:03:01 +0200
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ef475-229c-0a2a45070019-d155dd32d13d-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 14:03:01 +0200
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-45297094718so4827273f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 05:03:01 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eaa7d0bf6sm2549105f8f.7.2026.05.21.05.02.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 05:03:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Content-Language:Cc:To:Subject:From:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779364981; x=1779969781; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=4Hcux5EJ0H8BCspM7wwo1iUVLe9PilmfYB+sfRulwPE=;
        b=cYphvhvLzDjwEKYsGqkf+m7I3H7Q46rVriHwDMbB2ZIvTa65otiEsRLiMNQ+lVgbvG
         QcnYQnSRK9gvGiKvjFckZL/h8xYhGjYGOqRb4PBIpYyjqbAEqz6xuVa5cq9caAgzf52E
         75taPjM4w5DZuY3jNnr/rJHUBN1a6DJnQK14pa52xT5BmlUe90Tv27ox7x7K0D6FW4CS
         XKtkLb1RzmWJ2NYQ5qb1eW8Z1JDRIGwQNiUHEhEFmitfyNM9I7mP7nVmcm0JM8sxKOtX
         PcJi1A4JLzX138ZD8gHHCfFgnUZsUFNU5ChPzHsjq3afxaF9gUP4K2mfosBMm9V2Pwp/
         6tHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779364981; x=1779969781;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=4Hcux5EJ0H8BCspM7wwo1iUVLe9PilmfYB+sfRulwPE=;
        b=sPqM+CfTY1g5hGRwoJWklOG2PFe8ESprCi63rmOnRooyKOSHoznoGW1JVfgYA5XvAD
         SJgSrweilENx46KMXY+gVNCLd0Vram1lp8s6UTc8ckn8Z4NjS8BN8bMr7liqtErH3bb/
         PvAmh3CCIoNkTntGT0jQXcBX2msJFrLTsEe9n+1zg7e1CAVYkSLGxqdZGHz9Dn4/aTqv
         Ri6gdeH15FH5sWCruneilQKB16qWu1nRoM4DAK+lUVxIrGVMYCT+WwsQ5jf/bK7I/rcP
         /v7A9UQRcnGHejKc0gOeOx11GzoI4Qo59OMCqXnhN6EAYNUfFhphTP/iEz9juc+S1WPw
         46Qw==
X-Gm-Message-State: AOJu0YxuLV9AaAVjX1RNJHTbxjWsWV7xEEy8VQnwxSs6CFf3XVMJXoov
	d+6e/vvwo6oYi4wz1JAjxwQbhD/GrAfRtHC2oE+Ck7m8mTPcIscMlXcYWTDmyJcsuryXj5aK+20
	jjyA=
X-Gm-Gg: Acq92OFOYe8QSllhZDO75EPcJ/ZNej9V5XKfkzKsRm1tCcmeF1Qrdbxk88+xlDrhaZf
	ame8As0p2WYgij54HKgJQfiZvntiBISfGcvvhwmtVHlEpoylDGSUmplJ4KAfaauyaNQpTfz9x/p
	+bksgTQwSpRvRjQosM2CxXsk+mMsE2HbzAOCbJnfe8DayzwUNiZWgOr7eFyyhwHyaB5UmL9KIfv
	D/7XJk3dZnVuARj0JpgX2qxbTfBzX8YquuXMrUsQWgMt1xq9vwxbmXUd6OX6VPHtj1cGOJInBQQ
	Da4CYIrf9zNc4YhOSaqm2cglxnXnllrxPx8R2yDLgz9HAX0Rt109MrtqK4B4FwzsMdFxQhcdEEH
	q8FLvq5B6IuzURmQ4l+aVHyy6flWQG7D9/obwjvdldTV2I2XaMnbg6nAy0Gt4OLWZzIe3gb9WPL
	hiF1CZHGh0SeHT5X1Dnoa3fyg9mO3/veueikLsKOJ0bgUR8pS8Ns78UhZSm3X3xTNVBBS6+TK/0
	fUa7aLZBxq3quY=
X-Received: by 2002:a05:6000:4310:b0:43b:3d02:7806 with SMTP id ffacd0b85a97d-45ea38d958fmr4652712f8f.28.1779364980671;
        Thu, 21 May 2026 05:03:00 -0700 (PDT)
Message-ID: <59fc2b14-073b-42a6-8f30-503ad789fbab@suse.com>
Date: Thu, 21 May 2026 14:02:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] Arm: do a 4th linking pass if necessary
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1779364981-2976AC48-A194ADD0/0/0
X-purgate-type: clean
X-purgate-size: 3186

The .rodata growth between 1st and 2nd linking passes may affect the
number of stubs the linker wants to insert, which in turn affects the
number of symbols. If symbol table sizes change after the 2nd linking
pass, insert another one before the final one. (As a comment in Linux puts
it, "In theory it's possible this results in even more stubs, but
unlikely.")

To use the $(compare-symbol-tables) macro in a shell "if", it needs
slightly adjusting (and then wrapping to be run in a sub-shell).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
There's imo no good Fixes: tag, since (aiui) stubs (veneers) may also be
inserted for reasons other than errata workarounds.

For context: The Cortex A53 erratum 843419 workaround in GNU ld comes in
two flavors: In the general case a stub is inserted, but if the problem
ADRP can be replaced by ADR (i.e. the target symbol is within ±1Mb), then
that's preferred and no stub is needed. The addition of the symbol table
data is what then results in the stub-less form to no longer be usable in
affected configurations. A possible countermeasure could be to move
.rodata ahead of .text. (Also, from looking at generated code, it may well
be that newer gcc simply avoids producing problematic insn sequences.)

Linux simply compares object file sizes, but I consider that fragile: A
change in size of one of the symbol table constituents may not necessarily
change the object file size, due to padding which may be in use.

Once we generalize linking, we may want to introduce an equivalent of
Linux'es KALLSYMS_EXTRA_PASS as well. I don't think doing this right here
would make overly much sense, though.
---
v2: Add "set -e".

--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -99,9 +99,21 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).2.S
 	$(MAKE) $(build)=$(@D) $(dot-target).2.o
-	$(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o)
+	if ! { $(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o) >/dev/null; }; \
+	then \
+		set -e; \
+		$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
+		    $(dot-target).2.o -o $(dot-target).2; \
+		$(NM) -pa --format=sysv $(dot-target).2 \
+			| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
+			> $(dot-target).3.S; \
+		$(MAKE) $(build)=$(@D) $(dot-target).3.o; \
+		$(call compare-symbol-tables, $(dot-target).2.o, $(dot-target).3.o); \
+	else \
+		ln -sf $(dot-target).2.o $(dot-target).3.o; \
+	fi
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
-	    $(dot-target).2.o -o $@
+	    $(dot-target).3.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
--- a/xen/scripts/Kbuild.include
+++ b/xen/scripts/Kbuild.include
@@ -65,7 +65,7 @@ define compare-symbol-tables
     $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(1).sym; \
     ln -f $(2) $(@D)/.cst.$$$$; \
     $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(2).sym; \
-    rm -f $(@D)/.cst.$$$$
+    rm -f $(@D)/.cst.$$$$; \
     diff -u $(1).sym $(2).sym
 endef
 


From xen-devel-bounces@lists.xenproject.org Thu May 21 12:26:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 12:26:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315132.1584988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ2TU-0004PB-79; Thu, 21 May 2026 12:26:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315132.1584988; Thu, 21 May 2026 12:26:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ2TU-0004P4-48; Thu, 21 May 2026 12:26:04 +0000
Received: by outflank-mailman (input) for mailman id 1315132;
 Thu, 21 May 2026 12:26:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ2TS-0004Ox-TR
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 12:26:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ2TS-00BBJa-9G
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 14:26:02 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ef9d4-2eae-0a2a0a5409dd-0a2a4501a88c-30
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 14:26:02 +0200
Received: from [209.85.221.53] (helo=mail-wr1-f53.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ef9d9-c1f2-0a2a45010019-d155dd35d85c-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 14:26:02 +0200
Received: by mail-wr1-f53.google.com with SMTP id
 ffacd0b85a97d-44e1ebb3122so3700868f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 05:26:02 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eaa92f622sm2773425f8f.24.2026.05.21.05.26.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 05:26:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779366361; x=1779971161; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=3eVrVi1QZkBKSzOhKxEdqYODdn4cdGHZ057kaRooKYA=;
        b=NAht9OmsBA9necJpgtoOTFPLTzPKHM7W4r0tGVFB6NtHkPmUfexKC549RrLFp1qUMo
         R8QajhmFYz9L3iEl0YMJiI6OMu9EntfJB5fV0XvmbD0IwNuzQN6nk7jk3iabxjhzZqQG
         7TvwW0BDtCK46hiyg4zlsUWBTtmX7EHXtnTdjVosLICCVWRJJp/dq2mrQGvUTskYfduk
         b4Rwm+W6x/vS/Of4BvsQHgyrRlaWUhPC75BCtDyvcQYmTIw8n4E27hm1wltWu+m5eAgg
         WsF/61zrnZqgMiOjgBFAoumtxaRPI9dixYLL/KrbkbWdGYSP+1Eh/LCeDLhaahqOVLCz
         y3OQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779366361; x=1779971161;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=3eVrVi1QZkBKSzOhKxEdqYODdn4cdGHZ057kaRooKYA=;
        b=TM4VF3rRTE3r3026fNgy83GpuXjJzi27mYkT02bwLmFMWiGaKDfW800uc+4XjOhqOf
         a0TfcKVHBXObbrjeqwlADVaR0RhYNcGlv6eJByVSP9iiaphyefIiwSLoavoYsT1jQlHr
         zl0M0CMyjSac70ZK7EoS2gHCmNjR3bEQkOEnuGpjJP1C+xxt4knOfeI8RkfPo6cB24qA
         2Uu6jPfcU8fZvH0dyVcYy3wbEq33jyQbbVTle3e/mwsA4y1l9VVfSUMP6J8+l3ebLbcM
         lz4RGp1Cnmc/pz+/YgwD7gKHy202N5B/Wc/z3DYvGRvYvK4t1/KCdYPDNCd1f1QH1Fjh
         g+ug==
X-Gm-Message-State: AOJu0YzS6Iwe1jLb2QfQf4dUcvOtOMdv04PrGAGLHzPBfFTSNbb5QGhT
	YGr1Fe2qy3afgIPJ8tQnnFtfGgjNHXa/TYlVlk+Nj2QvQIz322JNFGUfqFsLzrUWTahxdxYQ5jP
	YG1w=
X-Gm-Gg: Acq92OEuZBkb5kttpGqfnF72Itg99JZ33npMSA7UeSA4BPFkCr3g6rL6xGXzkjWQG2y
	NiH5FEd3RjoVgTKX16ZMZPmaef8jK5BeFkNLyU8pyM61ifW++ztkbSq1Vhj/uCx4C0FO+SymtPI
	a2vNG8n1/OdVlfbBt3Jv7S8zRqDAQgkCK5bdnoN5gojJwNSIHFKjY9UofjH9vUlP/Q7dJqGT48r
	oyFdUOUx46eE0+v7Y06NYI0dnDVRju5YGJxkxhkm2tfEGasHRmfx0M6oWXHB3fFUu5AZoZmraxp
	0Ys1sSbUgUSlEZj9u8KTaeGmE1yLACVkB4v/d9lO0mA+jzvvyy5FaPW7k58wwWwCZJnIRoZa7cC
	rBSfx3LKSvSNYPvhaBYWAe1MX3VyrEyOYPpxy+jqLNH9EWwe+BpDfayqDYOIQE67RlMG0/qoaky
	qOcA2ZNTLGXjIPJ5njDnJgfuvaEkXvrsx4ZqFMp1jqAMArvjb+iHCp4A032aHhlMlUeXWCH8rJW
	AyGVaVpLvmUe88=
X-Received: by 2002:a05:6000:178b:b0:450:e5fd:e1a1 with SMTP id ffacd0b85a97d-45ea38d1c8dmr4454823f8f.3.1779366360787;
        Thu, 21 May 2026 05:26:00 -0700 (PDT)
Message-ID: <2ad2b572-45b4-42a5-9b7a-80eebfacc80e@suse.com>
Date: Thu, 21 May 2026 14:25:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/2] x86: don't exclude time.c from scanning
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1779366362-AE95FFF4-419EB3F7/0/0
X-purgate-type: clean
X-purgate-size: 178

1: x86/time: address Misra C:2012 rule 8.3
2: x86/time: don't exclude from Eclair scanning

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2543286982

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 12:26:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 12:26:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315139.1584998 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ2UM-0004qe-Gd; Thu, 21 May 2026 12:26:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315139.1584998; Thu, 21 May 2026 12:26:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ2UM-0004qX-CK; Thu, 21 May 2026 12:26:58 +0000
Received: by outflank-mailman (input) for mailman id 1315139;
 Thu, 21 May 2026 12:26:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ2UK-0004qK-SS
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 12:26:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ2UK-00AbLQ-0u
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 14:26:56 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0efa0e-2eae-0a2a0a5409dd-0a2a4506a0a8-6
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 14:26:55 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0efa0f-7371-0a2a45060019-d1558032e013-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 14:26:55 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-488b0e1b870so85653735e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 05:26:55 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49035c6766fsm28801355e9.2.2026.05.21.05.26.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 05:26:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779366415; x=1779971215; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pMQC9WfYWkVK3lty7thI05rOPXTziYFSPJAYYHL7gY0=;
        b=C92PtEJXm6asL243rrXxXkjbuG4ARhdaZonIyWDyqno+kpl20j2KN5TJn4JunMJ+ej
         ZCv2Yzwnq8WQEARMpYtPqNS6pehfiHqTnvtZ0bP6JX+oL3XDDSxq8rVQoGQgDOFBHaSS
         Vj1SA7P/G9zdg8INp1GWjhGJejeFDDa+WylQ2x/0RUru1TR5xuRuMdk+6JfWu3ZQlTBA
         jG2smmXiNjWaIBybuPmWjpl83xRv5lMdReBVP7Sm/GyapbpXnGNIRHoEKxYOV110TJ2z
         4sWwCSvL2R3H8iQniieU0aY5dwN3TCWdXnVyBnaVpr3f14fFcmmlqJIDq+lCsm7Z0q8r
         3HJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779366415; x=1779971215;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pMQC9WfYWkVK3lty7thI05rOPXTziYFSPJAYYHL7gY0=;
        b=YBVPw9jnCi7DfDMA0VnUU3OZZlfxrycquBDwdw0RQrPm9ypEa0lqTxaygLWhAZJql5
         i4kX6bQOG6NTodofhwBD0oEsWZ1UuYWn0DH0KkcN56zTSeLCTsENVZ9FZ2dqjDGL6HMr
         AB2pB55lItqnLHn7PI/z9k11wPzIHtn2k4hNt1tJy8sC2RZS8jyrpyT6nHNcEH0ptwWI
         hzeTltdlxU5eD/1vxsDOGTzmyoN5WUrfvZRz93fOru36cbrV1vfgb20HrSsY0ma3iCUg
         djc0u48U9nI5mbJqCZoyCMEYxdSBvyHig/gIZB6vyR7bDiy6xotCBQpQkJ7I6A3F8Wjr
         F/aw==
X-Gm-Message-State: AOJu0YyLyEkogJLxsvJecN1Ko4uxXdDOooTRSZiD+lvwYt5R7p3KxA4Y
	VAY/lGJN9XZ2RgO1CHqi6MIMyrHpods9eDe43jhDtihBVOI45zh87dWUHVtP2CTUx/0Gsz8z5o7
	ruQM=
X-Gm-Gg: Acq92OEfOTPzP82pAslgovJXawbao7ryZkTQ+raOGEa/KrxzhWicUAS3UFHNKHQJppS
	JYJEMgz1IIgzBlsGmMhhzt3GUtm8tVtedORxGlcRL0qcQ9gx84lIq4mGQaejzj/YuXTXwq1bQbh
	zSrr+o8O+f6gAAacvd5cFIq6uX6cD6o2YK/zOkdbru5Xn0VkD16J+HTr7DE7867ohX/gtTr7Iv9
	hdQxflFDH1YX9QSQluPQtqi7rR0RNSuGicb4EqraWp+6NRDX37UjJs2rV5kQGIGDgOTcIMEVWqG
	mHqN4h/wWf7uKacziyq0Vvcowfeb4CV/a1JN/tKD0C84FlQL/TMaBQ8Jan4ldlw/5qSVS0ssRNQ
	tH54dUPReJg7IWC9th/diLoedi9mOGWb4fQeaMkRJdMxRk6jd+7DiWIj6wrkT9ed19KcMRN1F3y
	4lI7U/+FITUOJlzv9BnVrBqKlcGmjIIhUe3+rGMoMyBLHEWeKsE2HZGHERhoVg0FT08KH924mDn
	37Y1GE2KJUpuzmrhMR4F+J8GQ==
X-Received: by 2002:a05:600c:a15:b0:490:3cef:bd90 with SMTP id 5b1f17b1804b1-4903cefbe6emr20882785e9.26.1779366415434;
        Thu, 21 May 2026 05:26:55 -0700 (PDT)
Message-ID: <09e58463-4eda-46da-83e0-bc66c84afb25@suse.com>
Date: Thu, 21 May 2026 14:26:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/2] x86/time: address Misra C:2012 rule 8.3
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <2ad2b572-45b4-42a5-9b7a-80eebfacc80e@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2ad2b572-45b4-42a5-9b7a-80eebfacc80e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1779366415-7FB7DD75-9373102C/0/0
X-purgate-type: clean
X-purgate-size: 1860

Before we can enable scanning of time.c, it needs to be clean wrt blocking
rules. Bring boot_tsc_stamp's definition in line with its declaration. For
get_s_time_fixed() go a little farther and move it to the x86 header (the
function only exists in x86) and do, along with correcting the parameter
name, the u64 -> uint64_t a little more widely than strictly necessary.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/include/asm/time.h
+++ b/xen/arch/x86/include/asm/time.h
@@ -13,6 +13,8 @@ static inline cycles_t get_cycles(void)
     return rdtsc_ordered();
 }
 
+s_time_t get_s_time_fixed(uint64_t at_tsc);
+
 unsigned long
 mktime (unsigned int year, unsigned int mon,
         unsigned int day, unsigned int hour,
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -95,7 +95,7 @@ static u32 pit_stamp32;
 static bool __read_mostly using_pit;
 
 /* Boot timestamp, filled in head.S */
-u64 __initdata boot_tsc_stamp;
+uint64_t __initdata boot_tsc_stamp;
 
 /* Per-socket TSC_ADJUST values, for secondary cores/threads to sync to. */
 static uint64_t *__read_mostly tsc_adjust;
@@ -1656,10 +1656,10 @@ static unsigned long get_wallclock_time(
  * System Time
  ***************************************************************************/
 
-s_time_t get_s_time_fixed(u64 at_tsc)
+s_time_t get_s_time_fixed(uint64_t at_tsc)
 {
     const struct cpu_time *t = &this_cpu(cpu_time);
-    u64 tsc, delta;
+    uint64_t tsc, delta;
 
     if ( at_tsc )
         tsc = at_tsc;
--- a/xen/include/xen/time.h
+++ b/xen/include/xen/time.h
@@ -33,7 +33,6 @@ struct vcpu;
 typedef int64_t s_time_t;
 #define PRI_stime PRId64
 
-s_time_t get_s_time_fixed(u64 at_tick);
 s_time_t get_s_time(void);
 unsigned long get_localtime(struct domain *d);
 uint64_t get_localtime_us(struct domain *d);



From xen-devel-bounces@lists.xenproject.org Thu May 21 12:27:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 12:27:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315145.1585006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ2Ur-0005JZ-Ms; Thu, 21 May 2026 12:27:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315145.1585006; Thu, 21 May 2026 12:27:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ2Ur-0005JS-JP; Thu, 21 May 2026 12:27:29 +0000
Received: by outflank-mailman (input) for mailman id 1315145;
 Thu, 21 May 2026 12:27:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ2Uq-0005J1-5P
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 12:27:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ2Up-00AbZb-Hd
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 14:27:27 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0efa26-2eae-0a2a0a5409dd-0a2a4504ce16-30
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 14:27:27 +0200
Received: from [209.85.221.42] (helo=mail-wr1-f42.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0efa2f-1dec-0a2a45040019-d155dd2ac01e-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 14:27:27 +0200
Received: by mail-wr1-f42.google.com with SMTP id
 ffacd0b85a97d-4526a8170ceso2958547f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 05:27:27 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eaa756d61sm2611984f8f.0.2026.05.21.05.27.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 05:27:26 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779366447; x=1779971247; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lAIt2T2NR1fpTTlAhn+LK7AFIufteJRF0rZOBZZiV0o=;
        b=Y7fdAER52/wNqf3jNQ7EQwsPkAEyL8yMfj+3eEPSP0RkKKcTGAwydMEl0g4zqww1QG
         iaebXitZvJ5lFuTRM4oDL4RZpwGEy7midGpD5yDRczYQTpjAnvg9CRjaXOIEf0pr3yj1
         eUIJfCIIyGTfbfsYs/4nc8bhyUBc0aWXnbza9XRONil85tFbN0JBXAtQfq9MfGRIBSM+
         +nNMbhgA5z9S5NUK96nox3TQm12awaXsmIW8Zwaove3pMmzqWoHCA3LaSq6iCtGtTmIL
         136V0C4tcdMcdPJAYl14RtRYbcia+yJWGFNRTLbDlzUS4+AL1iVFZoJqhEtkMwyX4sry
         CGFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779366447; x=1779971247;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lAIt2T2NR1fpTTlAhn+LK7AFIufteJRF0rZOBZZiV0o=;
        b=DIuygXPG4xwwgR03CBCgoPBt+5uEM9Wa/c7paOgzfCZJCpnxP8OgXCw2nsJWntFciG
         QwfRKMhOIMkjvK6q+1OhYTYpAeMWF1iQUv1oQFtG6zqorE6kQf7MEZQ27r2bLKaR2GFh
         PY/et4NWHbVDhl6Remq6ocqA5RzpzCHThg5ACLoXvcSX9ISepa/3hmREEKiWzNsdpXIB
         L52fuMamzubbSxB7cVUpGn9hjyFSIHA5zE3q48hfwbgNTO5kPmhnsxGX6t7p8AzEn5O7
         eORgsFoUUntdaR/Xlypttae5ZiJXouhPHuToSp2QDJ27qFARsL66H75wNUfunvV7Baio
         16ZA==
X-Gm-Message-State: AOJu0YxE8vAjG7WM9c3EWM3hM4VCD2/9yX9Gd0XLTzYL8vuGJwrnjeQY
	GRRiHNPvntnyKGI0vY/W8jEiWiyyO6mPC5srWKjLIRSoPDcIDfBqHtiqXZ6j3DqjLRp2dkAIn8C
	T780=
X-Gm-Gg: Acq92OHM6nU2AqFkomTh08RfbYkHpfODOZJDrAzOAX7tRzn0HDOFGtzUNl8eTwn3ze7
	YvZ9tDgd0kI34doUosfxWFj0q2s/Zwo2zPF5QKpXwUYxESTIIhzaJFAXSRb5ivjef6/u2M+wJ+P
	w0OoPd+MIepT05dF4GLE9x1bTS/T6ra0Cc3XMdl/3tQzj9p8YNr/N4jnx28+VVx+IpGmCIU5eCm
	qBC5yQXy0nOmciC/c8FaWRXIrrb46xUmo63CGxnyRppeVnkOPNPZV8Aw1UY4DU2R4RZVWN7Bxfq
	RiWYNG1M779VJ5EAIra+yMYjlJYNf6E8eHpRa21YCzfPNoM/sV5im1ua+dJhYZ+onCJIlkP70l3
	1qRNCZDH1c+Q7q6spM4s7WRzVqYMHHgpYlL8qBRtmF89xNOiJLgKnNP8qdXPUIPkpOaXIVOC/fX
	EkRmBeTAU/Y0d6LnNlixS/cTnh0dkp+YA+dsaiFLmbS4smLVYyyJ3lTA+7bEMPbkkMcnPq1hQKp
	gponZtGVgudMEs=
X-Received: by 2002:a05:6000:46d3:b0:43f:ea04:dcc7 with SMTP id ffacd0b85a97d-45ea3ae6975mr3286342f8f.24.1779366446963;
        Thu, 21 May 2026 05:27:26 -0700 (PDT)
Message-ID: <81995cf4-19f4-4146-aea7-d3e57609aa2a@suse.com>
Date: Thu, 21 May 2026 14:27:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/2] x86/time: don't exclude from Eclair scanning
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <2ad2b572-45b4-42a5-9b7a-80eebfacc80e@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2ad2b572-45b4-42a5-9b7a-80eebfacc80e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1779366447-289723FF-554DA057/0/0
X-purgate-type: clean
X-purgate-size: 956

The justification is wrong, and the file hence shouldn't really be
excluded.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -214,11 +214,6 @@ const-qualified."
 -doc_end
 
 -doc_begin="The following file is imported from Linux: ignore for now."
--file_tag+={adopted_time_r8_3,"^xen/arch/x86/time\\.c$"}
--config=MC3A2.R8.3,reports+={deliberate,"any_area(any_loc(file(adopted_time_r8_3)))&&(any_area(any_loc(file(^xen/include/xen/time\\.h$)))||any_area(any_loc(file(^xen/arch/x86/include/asm/setup\\.h$))))"}
--doc_end
-
--doc_begin="The following file is imported from Linux: ignore for now."
 -file_tag+={adopted_cpu_idle_r8_3,"^xen/arch/x86/acpi/cpu_idle\\.c$"}
 -config=MC3A2.R8.3,reports+={deliberate,"any_area(any_loc(file(adopted_cpu_idle_r8_3)))&&any_area(any_loc(file(^xen/include/xen/pmstat\\.h$)))"}
 -doc_end



From xen-devel-bounces@lists.xenproject.org Thu May 21 12:59:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 12:59:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315171.1585015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ2zi-0002Ap-3n; Thu, 21 May 2026 12:59:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315171.1585015; Thu, 21 May 2026 12:59:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ2zi-0002Ai-0f; Thu, 21 May 2026 12:59:22 +0000
Received: by outflank-mailman (input) for mailman id 1315171;
 Thu, 21 May 2026 12:59:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3pQEPagYKCTwqcYlhaemmejc.amkvcl-bctcjjgqrq.vclnpmhcar.mpe@flex--seanjc.bounces.google.com>)
 id 1wQ2zh-0002Ac-6K
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 12:59:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ2zg-00BIgZ-Hz
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 14:59:20 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3pQEPagYKCTwqcYlhaemmejc.amkvcl-bctcjjgqrq.vclnpmhcar.mpe@flex--seanjc.bounces.google.com>)
 id 6a0f019d-5cb7-0a2a0a5109dd-0a2a4509ac7c-36
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 14:59:20 +0200
Received: from [209.85.210.202] (helo=mail-pf1-f202.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3pQEPagYKCTwqcYlhaemmejc.amkvcl-bctcjjgqrq.vclnpmhcar.mpe@flex--seanjc.bounces.google.com>)
 id 6a0f01a6-2497-0a2a45090019-d155d2cac926-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 14:59:20 +0200
Received: by mail-pf1-f202.google.com with SMTP id
 d2e1a72fcca58-837cc5bc6deso3781002b3a.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 05:59:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779368358; x=1779973158; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=GqcHY/DvmkAZ9QjHGP0kTeF7mk7WkCMN/ZHV20HdBXo=;
        b=vs64GqVnPqRSmYAKNCqIHM+5m/lC7VzOvYmQtJab0I1Z3fyFrN1c9mrbkxPrqROJRb
         lnH027ST7+RjkC8JXvtZVBN08lamC4LydBZmw4QuXtNWRNECXToPtKwpj4WiudQ1AyzV
         Z2ho5G7EoX2CHm2h+444hEDy1jzV4RBBjW76dTs+NsiS7eRXD2+tFQtMxwM3UY9Nv+ul
         uzjpaQl63X2Og3FkigkbbDfC81YLfiE9aYPqhtsDfUwYfXtLxmUX6MNMcg1uqMes6Tre
         Ur9y+oWeEMRf6gO/S/xOpAWqeu7KZCBivtQr5E2ETLlBNwd6rzd5kB4Mjw7FT6D9AGeL
         Cr7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779368358; x=1779973158;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=GqcHY/DvmkAZ9QjHGP0kTeF7mk7WkCMN/ZHV20HdBXo=;
        b=si3jUcDdNolVBgKk2Sd6UF2sjN+Ks9KrZ5VOnJxWU2mCA4HHiL0HdBYTBc+JI3+rxm
         JBN2kl2EcTVCznmH6VQH5Jn1i99fT6PtWshPGPTJSlkS8rZhNWYjkmWDKFghmu2L59sK
         DHqV71lpdY8ExpqpCTn04kbmF/DTO5760yaQvfDkz5n3UR/GGvCiTAnq1pPf1Q172400
         Tk2SSuVtE8vmNC3MaI59SEStazblKhXwHkNpCHJw+wOBQE8QKgZxzBjSHwo/VjpLoNBb
         WCaJ3j/Fx5PKGZaiykCvKjE8hnetbJSZQPFNmMCjShSoeGwcnrt89a6pCXZdk1CHHWCb
         nQLA==
X-Forwarded-Encrypted: i=1; AFNElJ+51dzHYsOcH+rPW7h2j07UDL23WUf3KP0/S5YGbEXK31fahR7AWr4ShlK6SAZN8BM2Xf5f3ZOBaM4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwgTuFYYLtBmGMcw68rA5KqafEIvAwmSLQiGK3zpQUwaLKPiFa2
	Cyi4dYyEDoq/OtHitWUDQ7a/C64jo1cgHyGRLE+QolBjM48fRghcJxfdCMTgcKvUq2YVPi3NchQ
	Q0cpC9g==
X-Received: from pfdc18.prod.google.com ([2002:aa7:8c12:0:b0:834:df9e:8e02])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:4655:b0:82f:de7:d29
 with SMTP id d2e1a72fcca58-8414ae013a1mr2977074b3a.31.1779368357753; Thu, 21
 May 2026 05:59:17 -0700 (PDT)
Date: Thu, 21 May 2026 05:59:17 -0700
In-Reply-To: <423b37f056f0d4d596d5f4cc73802fb1079ecf63.camel@infradead.org>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com> <20260515191942.1892718-28-seanjc@google.com>
 <423b37f056f0d4d596d5f4cc73802fb1079ecf63.camel@infradead.org>
Message-ID: <ag8Bpc_uVNrNWqfX@google.com>
Subject: Re: [PATCH v3 27/41] x86/kvmclock: Enable kvmclock on APs during
 onlining if kvmclock isn't sched_clock
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-bad1c0/1779368360-4357BA53-6E4EB036/0/0
X-purgate-type: clean
X-purgate-size: 1465

On Thu, May 21, 2026, David Woodhouse wrote:
> On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> > In anticipation of making x86_cpuinit.early_percpu_clock_init(), i.e.
> > kvm_setup_secondary_clock(), a dedicated sched_clock hook that will be
> > invoked if and only if kvmclock is set as sched_clock, ensure APs enabl=
e
> > their kvmclock during CPU online.=C2=A0 While a redundant write to the =
MSR is
> > technically ok, skip the registration when kvmclock is sched_clock so t=
hat
> > it's somewhat obvious that kvmclock *needs* to be enabled during early
> > bringup when it's being used as sched_clock.
> >=20
> > Plumb in the BSP's resume path purely for documentation purposes.=C2=A0=
 Both
> > KVM (as-a-guest) and timekeeping/clocksource hook syscore_ops, and it's
> > not super obvious that using KVM's hooks would be flawed.=C2=A0 E.g. it=
 would
> > work today, because KVM's hooks happen to run after/before timekeeping'=
s
> > hooks during suspend/resume, but that's sheer dumb luck as the order in
> > which syscore_ops are invoked depends entirely on when a subsystem is
> > initialized and thus registers its hooks.
> >=20
> > Opportunsitically make the registration messages more precise to help
> > debug issues where kvmclock is enabled too late.
>=20
> That's a hard word to type, isn't it?

Heh, you have no idea.  I've been "this" close to creating a VIM binding fo=
r a
while, it is time...


From xen-devel-bounces@lists.xenproject.org Thu May 21 13:10:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 13:10:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315183.1585023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ3AX-00052k-1t; Thu, 21 May 2026 13:10:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315183.1585023; Thu, 21 May 2026 13:10:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ3AW-00052d-VJ; Thu, 21 May 2026 13:10:32 +0000
Received: by outflank-mailman (input) for mailman id 1315183;
 Thu, 21 May 2026 13:10:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <peterz@infradead.org>) id 1wQ3AU-00052X-Pu
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 13:10:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ3AT-007gjB-OW
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:10:30 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <peterz@infradead.org>)
 id 6a0f042c-2eae-0a2a0a5409dd-0a2a4507cada-44
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 15:10:29 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <peterz@infradead.org>)
 id 6a0f0444-229c-0a2a45070019-5a9b3222a22e-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 15:10:28 +0200
Received: from
 2001-1c00-8d85-4b00-266e-96ff-fe07-7dcc.cable.dynamic.v6.ziggo.nl
 ([2001:1c00:8d85:4b00:266e:96ff:fe07:7dcc]
 helo=noisy.programming.kicks-ass.net)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wQ3AK-00000008VrU-2GqZ; Thu, 21 May 2026 13:10:20 +0000
Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000)
 id 111F6300446; Thu, 21 May 2026 15:10:19 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="In-Reply-To:Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:
	Sender:Reply-To:Content-ID:Content-Description;
	bh=DA7DVimM8Ck0kNzDR7awZketijLzqktg5UcM679ki4g=; b=q6twZ/quiaPkS7JYDLfYP4oxQR
	kwL3xkWZBEpV2j7C1uN45f/dlF1ZLXrwx+jWqL7SQEvjHcy7/MS8yAxgKbQMJOBppFTgAyijrmCw+
	qsUedKzMdKPt0VHol7Hg5iM2yiOqZHQAzBNQpo0ETgquMSq330OAMMUOL5XazrqdRvIuwmq8fCzvJ
	8w7PV454mMuz+QtTx/4yGia1zkhOm9E43cVzP05eFWXg6UOcrEZyigPUrzrWk0OV5q9ekYN/vFQ9r
	H8UIXCIrcHRZ6j+ZCex3x14hX/FPAOr2uRFQk4MepXZ9vQBQZkKMP2xQUakHd/KfGdD8DmUEqPEFb
	l12Q18Ng==;
Date: Thu, 21 May 2026 15:10:19 +0200
From: Peter Zijlstra <peterz@infradead.org>
To: Sean Christopherson <seanjc@google.com>
Cc: David Woodhouse <dwmw2@infradead.org>, Kiryl Shutsemau <kas@kernel.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Andy Lutomirski <luto@kernel.org>, Juergen Gross <jgross@suse.com>,
	Daniel Lezcano <daniel.lezcano@kernel.org>,
	Thomas Gleixner <tglx@kernel.org>, John Stultz <jstultz@google.com>,
	Rick Edgecombe <rick.p.edgecombe@intel.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stephen Boyd <sboyd@kernel.org>, x86@kernel.org,
	linux-coco@lists.linux.dev, kvm@vger.kernel.org,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	Michael Kelley <mhklinux@outlook.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Nikunj A Dadhania <nikunj@amd.com>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH v3 27/41] x86/kvmclock: Enable kvmclock on APs during
 onlining if kvmclock isn't sched_clock
Message-ID: <20260521131019.GI3126523@noisy.programming.kicks-ass.net>
References: <20260515191942.1892718-1-seanjc@google.com>
 <20260515191942.1892718-28-seanjc@google.com>
 <423b37f056f0d4d596d5f4cc73802fb1079ecf63.camel@infradead.org>
 <ag8Bpc_uVNrNWqfX@google.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ag8Bpc_uVNrNWqfX@google.com>
X-purgate-ID: tlsNG-ef75cf/1779369029-0B57BC48-2C90EFCE/0/0
X-purgate-type: clean
X-purgate-size: 1570

On Thu, May 21, 2026 at 05:59:17AM -0700, Sean Christopherson wrote:
> On Thu, May 21, 2026, David Woodhouse wrote:
> > On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> > > In anticipation of making x86_cpuinit.early_percpu_clock_init(), i.e.
> > > kvm_setup_secondary_clock(), a dedicated sched_clock hook that will be
> > > invoked if and only if kvmclock is set as sched_clock, ensure APs enable
> > > their kvmclock during CPU online. While a redundant write to the MSR is
> > > technically ok, skip the registration when kvmclock is sched_clock so that
> > > it's somewhat obvious that kvmclock *needs* to be enabled during early
> > > bringup when it's being used as sched_clock.
> > > 
> > > Plumb in the BSP's resume path purely for documentation purposes. Both
> > > KVM (as-a-guest) and timekeeping/clocksource hook syscore_ops, and it's
> > > not super obvious that using KVM's hooks would be flawed. E.g. it would
> > > work today, because KVM's hooks happen to run after/before timekeeping's
> > > hooks during suspend/resume, but that's sheer dumb luck as the order in
> > > which syscore_ops are invoked depends entirely on when a subsystem is
> > > initialized and thus registers its hooks.
> > > 
> > > Opportunsitically make the registration messages more precise to help
> > > debug issues where kvmclock is enabled too late.
> > 
> > That's a hard word to type, isn't it?
> 
> Heh, you have no idea.  I've been "this" close to creating a VIM binding for a
> while, it is time...

'z=' not good enough?



From xen-devel-bounces@lists.xenproject.org Thu May 21 13:10:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 13:10:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315187.1585032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ3Au-0005Nd-8U; Thu, 21 May 2026 13:10:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315187.1585032; Thu, 21 May 2026 13:10:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ3Au-0005NW-5p; Thu, 21 May 2026 13:10:56 +0000
Received: by outflank-mailman (input) for mailman id 1315187;
 Thu, 21 May 2026 13:10:54 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4aa8f3cc000f373@swg.vates.tech>)
 id 1wQ3As-0005N4-IL
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 13:10:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ3Ar-0036UN-V9
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:10:53 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4aa8f3cc000f373@swg.vates.tech>)
 id 6a0f045c-5cb7-0a2a0a5109dd-0a2a450ae036-10
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 15:10:53 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4aa8f3cc000f373@swg.vates.tech>)
 id 6a0f045c-56b3-0a2a450a0019-b9ff1c22b5e3-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 15:10:52 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e4aa8f3cc000f373.007 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Thu, 21 May 2026 13:10:46 +0000
Received: from l14 (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 4772B866C6;
 Thu, 21 May 2026 15:10:46 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=+zgSvlim6gRdCupTW4H21bdYQ4IwdPqT0BeBRo8Cn7s=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=LfMC+pArjoiP1nvfVdsmK29UgMkX7q44+DPqLvnlHLxzCnGsKmyTATjJ6TQVuAzlLlzFxZdn1
 ay5vaA4dX9lHhm2f4lJmFnIDnrDE3XnaHNEQFQYiKaRj3MhV8yMJZKaqRvdIk+/SQC7WQpcu1UK
 clkkbxkr9k5T/iPlZhK8fFFSAGXWALpIypkasFF+o4VPEKNM1nOB9v++NTo/kcQDpVQm4c3zY5i
 pVhOy1Rm7IHr1PXSN9ZLLnyf5aHPJDd+16adh8Myr25SyiMNGs9ACNrAs9fiySIEqmtTESnYlI6
 HVxBktIexN0CPrYAyRb5thddvOocxFsMlii34+mVTWhQ==
X-Zone-Loop: 7fd641c7608def934c8445d1eccb769459b160f92d1c
x-campaign-type: default
x-transaction-id: 213d17ae-20e8-4dd2-a84b-fc5fb827ac70
x-swg-uid: 01-be5ecac9-3414-44cd-9823-884a22860b65
X-Mailer: Sweego
Message-ID:
 <1779369047.8631fc262581453bbf619ec5b2062170.19e4aa8f3cc000f373@vates.tech>
x-swg-bid: 1779369047.8631fc262581453bbf619ec5b2062170.19e4aa8f3cc000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Thu, 21 May 2026 15:10:45 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Subject: Re: [PATCH] Arm: do a 4th linking pass if necessary
References: <7b23e011-56b8-4f6c-bd55-83e1d9b0453f@suse.com>
 <1779293000.8631fc262581453bbf619ec5b2062170.19e46209296000f373@vates.tech>
 <e3a08386-7b3a-4127-9127-f484ff8bcac8@suse.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <e3a08386-7b3a-4127-9127-f484ff8bcac8@suse.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1119.e76aa2b3b30ea5b4.19e4aa8f1c7.4a35099588d3b533=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779369046472
X-purgate-ID: tlsNG-4011c0/1779369053-7C47E8B7-AE5D6594/0/0
X-purgate-type: clean
X-purgate-size: 2734

---=Part.1119.e76aa2b3b30ea5b4.19e4aa8f1c7.4a35099588d3b533=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, May 21, 2026 at 08:08:44AM +0200, Jan Beulich wrote:
> On 20=2E05=2E2026 18:03, Anthony PERARD wrote:
> > On Wed, May 20, 2026 at 01:53:34PM +0200, Jan Beulich wrote:
> >> +	then \
> >> +		$(LD) $(XEN_LDFLAGS) -T $(obj)/xen=2Elds $< $(build_id_linker) \
> >> +		    $(dot-target)=2E2=2Eo -o $(dot-target)=2E2; \
> >> +		$(NM) -pa --format=3Dsysv $(dot-target)=2E2 \
> >> +			| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
> >> +			> $(dot-target)=2E3=2ES; \
> >> +		$(MAKE) $(build)=3D$(@D) $(dot-target)=2E3=2Eo; \
> >=20
> > This new block ignore all errors, from LD, NM and MAKE=2E We want
> > a `set -e` before the if=2E
>=20
> Hmm, perhaps I should add that, yes, albeit =2E=2E=2E
>=20
> >> +		$(call compare-symbol-tables, $(dot-target)=2E2=2Eo, $(dot-target)=
=2E3=2Eo); \
> >=20
> > At least, an error returned by `diff` in that macro should be taken in=
to
> > account, for now=2E
>=20
> =2E=2E=2E I expect this would fail if there was an earlier error=2E

Yes, but that's fragile, and that's not how `make` behave=2E It's better i=
f
every command behave the same way, that is the recipe fails on the first
command that fail=2E So adding `set -e` would be useful=2E

> >> --- a/xen/scripts/Kbuild=2Einclude
> >> +++ b/xen/scripts/Kbuild=2Einclude
> >> @@ -65,7 +65,7 @@ define compare-symbol-tables
> >>      $(OBJDUMP) -t $(@D)/=2Ecst=2E$$$$ > $(1)=2Esym; \
> >>      ln -f $(2) $(@D)/=2Ecst=2E$$$$; \
> >>      $(OBJDUMP) -t $(@D)/=2Ecst=2E$$$$ > $(2)=2Esym; \
> >> -    rm -f $(@D)/=2Ecst=2E$$$$
> >> +    rm -f $(@D)/=2Ecst=2E$$$$; \
> >>      diff -u $(1)=2Esym $(2)=2Esym
> >=20
> > This macro is missing `set -e`, if both OBJDUMP command fails and crea=
te
> > an empty file, `diff` will return success=2E
>=20
> Whether to have "set -e" here is an independent question, I guess=2E To =
avoid
> the case you mention, maybe better
>=20
>       $(OBJDUMP) -t $(@D)/=2Ecst=2E$$$$ > $(1)=2Esym || rm -f $(1)=2Esym=
; \
>=20
> ?

That sounds fine=2E (Replacing all the `;` by `&&` would work too=2E)

> > But looks like `set -e` in
> > this macro isn't going to work in the condition of the `if`=2E
>=20
> Whereas the above would be compatible with both uses, I think=2E

Yes=2E


With at lest a `set -e` for the `if` block:
Reviewed-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.1119.e76aa2b3b30ea5b4.19e4aa8f1c7.4a35099588d3b533=---


From xen-devel-bounces@lists.xenproject.org Thu May 21 13:12:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 13:12:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315195.1585042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ3CU-00060s-Iu; Thu, 21 May 2026 13:12:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315195.1585042; Thu, 21 May 2026 13:12:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ3CU-00060l-Fq; Thu, 21 May 2026 13:12:34 +0000
Received: by outflank-mailman (input) for mailman id 1315195;
 Thu, 21 May 2026 13:12:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4aaa7d0d000f373@swg.vates.tech>)
 id 1wQ3CS-00060d-V3
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 13:12:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ3CS-00DvaY-Aw
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:12:32 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4aaa7d0d000f373@swg.vates.tech>)
 id 6a0f04bd-bab6-0a2a0a5309dd-0a2a4504ba8c-22
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 15:12:32 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4aaa7d0d000f373@swg.vates.tech>)
 id 6a0f04bf-1dec-0a2a45040019-b9ff1c228b55-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 15:12:32 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e4aaa7d0d000f373.007 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Thu, 21 May 2026 13:12:27 +0000
Received: from l14 (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 05FA486930;
 Thu, 21 May 2026 15:12:27 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=tAOMW8NDnqJEu18gDQLMpl8tOrXomB+eYdOjwvR0/nI=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=lLPIlXf/KKjuxGhbnEyhzffAPrXopnfdbAxmUR2ktxikDrp0/qaEyuMqWp8u7s555q6vSjpc5
 7mrMNMBVxTPTXL+8wHbncZeSFAw9dnh0Mvz5i8uKMmyeuxJQ4Nh1L9zPIPUSvzCYuty9YvecC7b
 viqkG78+0c1kqPg4COv6kZGODGNJYcpk06S1SQKXZ/0YMa1UybwjJ5YISiFMI+Qp16jaNTqtB4J
 Ns+/lk2Cut0PdWY2IxIP5W3+B6AXeQfVVMeUQxXbcNEjFvzw+a+34+Df61aJPEL9q9wep+uCE+A
 IAWHqtOyyFlNjJsVRKSODAROAOtWMeO08UlNrdhaKvWA==
X-Zone-Loop: ea2490a7f8d6d220ce3992768096cbc0176c920a7e6f
x-campaign-type: default
x-transaction-id: e7106546-664f-490a-b9c2-979c69197eb1
x-swg-uid: 01-92e4064e-834f-41a3-8f92-7eebfb10e107
X-Mailer: Sweego
Message-ID:
 <1779369147.8631fc262581453bbf619ec5b2062170.19e4aaa7d0d000f373@vates.tech>
x-swg-bid: 1779369147.8631fc262581453bbf619ec5b2062170.19e4aaa7d0d000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Thu, 21 May 2026 15:12:26 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Subject: Re: [PATCH v2] Arm: do a 4th linking pass if necessary
References: <59fc2b14-073b-42a6-8f30-503ad789fbab@suse.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <59fc2b14-073b-42a6-8f30-503ad789fbab@suse.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.111e.176d8371ba2d0dc1.19e4aaa7b3c.c8bb295495a3997d=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779369147196
X-purgate-ID: tlsNG-ebf023/1779369152-2A37F3FF-855D5C99/0/0
X-purgate-type: clean
X-purgate-size: 1074

---=Part.111e.176d8371ba2d0dc1.19e4aaa7b3c.c8bb295495a3997d=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, May 21, 2026 at 02:02:59PM +0200, Jan Beulich wrote:
> The =2Erodata growth between 1st and 2nd linking passes may affect the
> number of stubs the linker wants to insert, which in turn affects the
> number of symbols=2E If symbol table sizes change after the 2nd linking
> pass, insert another one before the final one=2E (As a comment in Linux =
puts
> it, "In theory it's possible this results in even more stubs, but
> unlikely=2E")
>=20
> To use the $(compare-symbol-tables) macro in a shell "if", it needs
> slightly adjusting (and then wrapping to be run in a sub-shell)=2E
>=20
> Signed-off-by: Jan Beulich <jbeulich@suse=2Ecom>

Reviewed-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.111e.176d8371ba2d0dc1.19e4aaa7b3c.c8bb295495a3997d=---


From xen-devel-bounces@lists.xenproject.org Thu May 21 13:20:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 13:20:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315206.1585050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ3KK-0007sj-8C; Thu, 21 May 2026 13:20:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315206.1585050; Thu, 21 May 2026 13:20:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ3KK-0007sc-5d; Thu, 21 May 2026 13:20:40 +0000
Received: by outflank-mailman (input) for mailman id 1315206;
 Thu, 21 May 2026 13:20:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQ3KI-0007sW-LB
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 13:20:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ3KH-0033oF-To
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:20:37 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f06a3-bab6-0a2a0a5309dd-0a2a45089428-4
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 15:20:37 +0200
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f06a5-63b5-0a2a45080019-d1558034a40b-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 15:20:37 +0200
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-48fde648a71so44128445e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 06:20:37 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4903c9b004csm16317245e9.6.2026.05.21.06.20.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 06:20:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779369637; x=1779974437; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=H1D4BR5UO0yoHoRI0QNF4Yv2ieB2IAvqJtXB05Jf0KE=;
        b=MHGRnqKapYwnTt6DwYEjnIh0RssDGGltyUkVpTd7xoND0caSffow0f2e0F2ZizmBsv
         Wkqq4Ni5JkydYc66C3FgGuKeKEiaKJdNo+9+vV5mOV7q4JkQhnHv4hLIIC/FRjCPKOKH
         CdD/ozuJmk9Cjnpl8x73uoMdLzyudtUWyKq5FnuL3Dm7MWFE2GjCbC1BAus+LbivXh5T
         iM+EZ5qct4uL8UBk53+KVzpfAj4tGSp80AORTpafzT3ZVZ3+LwZHo8fLRdm9FwpP9Z1K
         /KOtXZLstodOwNhHHY4st4Rci1alLIfwQxpqV0Et/rtobcRJ8KcHlK3udrnqcK6YXSxq
         wTog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779369637; x=1779974437;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=H1D4BR5UO0yoHoRI0QNF4Yv2ieB2IAvqJtXB05Jf0KE=;
        b=qXdRl0YbTeyjxn3yi/io9ivZO5qXJ4W7dDzh2yzGsUvcI8D/rFz5U0k9U/4g6KHkRL
         x9+FZPMPrY2lZcQbu9Y6a36SY92ny44NcyVPVHaz2UOwACagd4fPiKsPCsGQ9ViViBES
         CAbRd0ySfPcZr2XE7i/RTsbMBTyjuy1LuMl4lx6z2O0O+n5xGZgF+A+iGaML4oeuF58F
         4gE52gJn2crFpd5CuKcYy2Nidxz385YMt5yPdngOlagGWyPQ9vDMMhlCVFvVmdiQHv3d
         vgDUaMQhMSqi6W3N2VuhC9e4o05Xp4ZY/2bIe4foS3L+anFofw9OCMYQsatcTnETRKi7
         Nipg==
X-Forwarded-Encrypted: i=1; AFNElJ8L/3NY22MCeHMZtoiDmY4FGkQ51a3uD0aQ8zu2Ozs1fAYaVJeyRZzAJ4GYHEs561hDqDXT6SI2G5E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyEyFSQdYuv6FzVcZE2X3xCajqnljn0WmS9wtYuBhnr166HdXhW
	c+Ji7zN2a8ObIhXLNu7dWqn2/tYOVQeNBGcSeG6haX1mVopK1IeHCJezhPmgwLUxkA==
X-Gm-Gg: Acq92OHZ3XZdADg5QpRaBRU2ATQuTLhqK8FbNSzh5K1f5C29vajfGFqJI10bv+1Ev3D
	PpQfxkhD7Yd3Km/JM7diAgrjGN/ksZBirghd0asgz104GJErNcQRjWX8G2esm0SJItZx0IwCY0i
	5DfGpVfOdL8xwJTrIQqAYKqk+BdrYBOEUdLC8mapwifGEPux6HKBs5W9YZGE635ZkTW42r9GUP3
	FTmnEKhlbvPT1lx1GZr53NBkuR+1W9d0o7JVGMBW1OZMi0qj3ldbLjSIYhtWxoDVSeDw8mPaN8O
	wcRQ4oltvIQOznnEnYrkc6NVFAiBWpaU5hyuEZ/v6tesVje5Y4S9v1zZ6vIW8sfS60RTT30ZQ7e
	VPtjpBgkfrbVo0+/EtbskRJVDbGW7fOpI+GYZ5sMP7T2XWKE5B0pBKN2oGLCqP6xtp8Rnp4TEuI
	Kb7N28vySbpMeXqYpuFRDmyMVlULOtwxNlL5A6YoMpXB0JUOBkGegprAwWqiM+UTace0pNeCBPx
	vSLCApjWj26yuc=
X-Received: by 2002:a05:600c:1c1d:b0:48a:79d8:a8d6 with SMTP id 5b1f17b1804b1-4903607fd1emr37030015e9.7.1779369637113;
        Thu, 21 May 2026 06:20:37 -0700 (PDT)
Message-ID: <9ca54605-5548-436e-b079-fc4b33b5fb6f@suse.com>
Date: Thu, 21 May 2026 15:20:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 08/26] xen/riscv: implement make_arch_nodes()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <92338cb9254da76cccb242154d0617603b856052.1778250616.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <92338cb9254da76cccb242154d0617603b856052.1778250616.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1779369637-B5D6BDB1-DBF1AB43/10/73395122804
X-purgate-type: spam
X-purgate-size: 457

On 08.05.2026 16:43, Oleksii Kurochko wrote:
> No RISC-V-specific nodes need to be created at the moment,
> so make_arch_nodes() is implemented to simply return 0.
> 
> It is placed in dom0less-build.c as make_arch_nodes() is
> only used in the dom0less code path. In the future, it will
> be extended to create an emulated UART node.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



From xen-devel-bounces@lists.xenproject.org Thu May 21 13:25:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 13:25:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315217.1585059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ3Ov-0008WL-ST; Thu, 21 May 2026 13:25:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315217.1585059; Thu, 21 May 2026 13:25:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ3Ov-0008WE-Pd; Thu, 21 May 2026 13:25:25 +0000
Received: by outflank-mailman (input) for mailman id 1315217;
 Thu, 21 May 2026 13:25:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQ3Ou-0008W6-1I
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 13:25:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ3Ot-00362c-DU
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:25:23 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f07b9-2eae-0a2a0a5409dd-0a2a4505bba8-40
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 15:25:23 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f07c3-aaa8-0a2a45050019-d1558033a4b3-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 15:25:23 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-48fde648a71so44163585e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 06:25:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033cdcc01sm73668495e9.0.2026.05.21.06.25.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 06:25:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779369923; x=1779974723; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1E/Bznlp+WNpMwj62zhBu6ZBHv3a8SyoZnd97uVJ/74=;
        b=RThbXKStUIBaN/JJfBpzVrDUn6+VKzHwCXJs4Gmfb+QAoYo0C/enQDqqwVeQHCAYFa
         E75fh3ZQ66uPM/ib8f7JpcJ5BdJe0cCz1V8niLcMX1inRzyJ0VkkcDMmMoYuAFeP5get
         G3cosH+y4gIE8PWFlfM3+Nyw6QqNNOQygDGYkTaMaul5H+m/So/zsQi/ATv1tZuVGLJr
         P+e5jaEpD2lEpCtrrgyyYj2r4p2YvY8AuxPiLKu1q8Zb291HjlCnjAtOqFU9aisFhK9I
         kf2lLHSMFRuP0u2n5k4/ir6f6xsq5OtnsDnxVuzSeDc1gdMiVElRwT2QR5elIHnSva0d
         FBHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779369923; x=1779974723;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1E/Bznlp+WNpMwj62zhBu6ZBHv3a8SyoZnd97uVJ/74=;
        b=hRxttLTY/fwKJIE6ECbZ6LrFJ8Ddljhnbdr9ckKuOESOMbZic5GKw1+dpoTA2RjgHg
         zuEoXgX15DKCqYK9HHADsCxby7OR7aBPUSA36WKktBVKGZBt6QR4aAWgQGVhIpZS0E9d
         LoIM6yXeL6JlmWzI/pn5y5xk4MkCxr+o2o1t6LVh9fLT87AZl+nvxmtVatahpAC9mleu
         n1vEiaH073WqpM1DjJ+xtLySLkTW/agCVT4eAPv867v1pwu03Z3iSSHpJ5gACR8sNSFJ
         ydA0/wRoiakmJihZQruMTC3qK6S4YS6LMrEJ2TTfxeDNE/mwKPNgqrYEu7pC4OTKbKYZ
         yI0w==
X-Forwarded-Encrypted: i=1; AFNElJ9BbntDJ2S97lOxj0/b1/hFCHCXIddCr5phuPiQeTzPiFK7U2TNHzACBdqa3SB3Hs8WV5glE/6q/xY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwBpMtDr2QITsry+bVcGTiebR9aHdmf6kJP9OJ4bcGtsEvLj+Bp
	4aqSbd8q1W22w1QMxyzqrVW73C9K2piLkuw2EwOMax22NB51ziSFMrpuq5mCRLxk/Q==
X-Gm-Gg: Acq92OFv4joNW14Htd0Ev7WI9v/rHewOtrgy3oH9oAvEE79GpS9pY+kUr8j0BT9tMSp
	4GacxxSdwgG38enHo3cRnoHnhqfN+MO/I65MahZzZ7P59snB5+7+iCZTz93NBrl/sds4I8lYWI7
	LiRMmx/U7rYOZhsnuDUzI1hjvkGXLPH0QvjIzhdAAlJhkgw/nlWYhAY70Eoaly01kOJw1DsJIe9
	/V56Az861OpJG+Ue4MHC1Oi6Ka9hQhHadC0+EYTAiGxKfq6XgqudVHH8zSe1HibIPuWCzlRFpzs
	m+XZ3wD0CFJEfDzhu/FjV275fD6fsfdupPrlU0Z183NkJKDRPAmrhrzdFaKhALXKP8HCXkHcBC+
	k+KyNv+v7ZJEAFQ83AKDgn8qt8JibJL5s4RJgBo4E3KaCjX8AcZoWcBUhI0ojs7DBZH4b6JQZuj
	D2dg01N5VQwTHPX2czQTVUGvSuPB/wQTzW1x+AYIAlTVDVRxvNayArhb8G4nL0CRTvZUrlU5/b0
	ZE5T70B6DEXy9A=
X-Received: by 2002:a05:600c:4849:b0:48a:761:5816 with SMTP id 5b1f17b1804b1-4903608030amr20839555e9.8.1779369922791;
        Thu, 21 May 2026 06:25:22 -0700 (PDT)
Message-ID: <a94a55e0-b6c7-45ed-bc9f-76022f02b1fa@suse.com>
Date: Thu, 21 May 2026 15:25:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/26] xen/riscv: introduce init interrupt controller
 operations
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <286a8b99ad7c107fc46c346f7c075617740fa194.1778250616.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <286a8b99ad7c107fc46c346f7c075617740fa194.1778250616.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1779369923-DBB60443-C94E8BB8/10/73395122804
X-purgate-type: spam
X-purgate-size: 2136

On 08.05.2026 16:43, Oleksii Kurochko wrote:
> Introduce intc_hw_init_ops structure to avoid risky mix of init
> function and non-init function.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in v2:
>  - New patch.
> ---
>  xen/arch/riscv/aplic.c            |  7 +++++--
>  xen/arch/riscv/include/asm/intc.h | 10 +++++++---
>  xen/arch/riscv/intc.c             | 10 ++++++++--
>  3 files changed, 20 insertions(+), 7 deletions(-)
> 
> diff --git a/xen/arch/riscv/aplic.c b/xen/arch/riscv/aplic.c
> index 739e8dab3498..97dc0ef731f0 100644
> --- a/xen/arch/riscv/aplic.c
> +++ b/xen/arch/riscv/aplic.c
> @@ -306,12 +306,15 @@ static const hw_irq_controller aplic_xen_irq_type = {
>  
>  static const struct intc_hw_operations aplic_ops = {
>      .info                = &aplic_info,
> -    .init                = aplic_init,
>      .host_irq_type       = &aplic_xen_irq_type,
>      .handle_interrupt    = aplic_handle_interrupt,
>      .set_irq_type        = aplic_set_irq_type,
>  };
>  
> +static const struct intc_hw_init_ops __initdata aplic_init_ops = {
> +    .init                = aplic_init,
> +};

const wants to pair with __initconst. Then:
Acked-by: Jan Beulich <jbeulich@suse.com>

However, I have another comment for consideration:

> --- a/xen/arch/riscv/intc.c
> +++ b/xen/arch/riscv/intc.c
> @@ -12,9 +12,13 @@
>  
>  static const struct intc_hw_operations *__ro_after_init intc_hw_ops;
>  
> -void __init register_intc_ops(const struct intc_hw_operations *ops)
> +static const struct intc_hw_init_ops *__initdata intc_hw_init_ops;
> +
> +void __init register_intc_ops(const struct intc_hw_operations *ops,
> +                              const struct intc_hw_init_ops *init_ops)
>  {
>      intc_hw_ops = ops;
> +    intc_hw_init_ops = init_ops;
>  }

Again following what we do e.g. in x86'es IOMMU code, instead of passing
two pointers to the function, have struct intc_hw_init_ops have a
const struct intc_hw_operations * member which then can be used to
set intc_hw_ops here? Both will always come in pairs anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 13:30:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 13:30:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315227.1585070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ3U8-0002JX-FI; Thu, 21 May 2026 13:30:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315227.1585070; Thu, 21 May 2026 13:30:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ3U8-0002JP-BG; Thu, 21 May 2026 13:30:48 +0000
Received: by outflank-mailman (input) for mailman id 1315227;
 Thu, 21 May 2026 13:30:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ3U7-0002JJ-GD
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 13:30:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ3U6-007lSm-OF
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:30:46 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f08fc-bab6-0a2a0a5309dd-0a2a4502bf3c-38
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 15:30:46 +0200
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f0906-af86-0a2a45020019-d155dd32acaa-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 15:30:46 +0200
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-44e1860558fso3960332f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 06:30:46 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eaa7cdcc3sm3212213f8f.8.2026.05.21.06.30.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 06:30:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779370246; x=1779975046; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KNqRKJumI/43DKGi3J/KgJAOZc3VimHLh1ukKr3IdIs=;
        b=anxhiXrdVZeHEXp0zHFPrO5VBWPosaZS7PU8itVKNOVwTHwO3xP3s1p6ewdPLQGRLW
         /TERDETJJQ4FHLeMXNp0+afmL5vhVMVBKpMNIP130pp3TSpGDZNZjlelJX6omtulmffS
         d4zwlHYdeYiPHSUULEEKedV2RHfuXbCON3Lqr7r9hJsV3JFoLnoyXkeAzJqUud+DL7ji
         FVrKXqwab6qF+n9oRccm0LoLPGkg8VfO8j12UCAAFK/1hxmJF2H3VJY6QR1ixpFsjk83
         KoJkU2uJlwkOUoSKPymS11mdQWAX/Sm1DzYnyRDsnP62mHQUAoMjAOhVtRK0o1+64CqS
         BHSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779370246; x=1779975046;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KNqRKJumI/43DKGi3J/KgJAOZc3VimHLh1ukKr3IdIs=;
        b=IkNKHLpMO5psgFNWTq7nBV2YMdEs2p2QTBTBe2Nawdu5mjnxe+NhbsK2CA/pgpwPkH
         Aj1EhqaGpNX2nzyejoFh8ly4u4iSF4uWqJvhAtlu9HF5qtFyTZldQfEJm/ZvTEP31beF
         GXu9t1mWgHjtnFGQ4PhyIb7G4ZchPEvuXP2g3JDiv1PnJYOvtyWp9gAjwkubU0f8SY2O
         vKy3vObUQSUUUo2HlxLK5iPlrpwxCb7vh8xGWQafpuQwV1QR2najA1+mHtkXaDy7rmfr
         o7TB2+H7UOfwhXX4tZ9mYE+GaLBEIvUBBr/8dHvpKrUVZK2bDT3ObuDW+FQQoY8OoL7j
         LNPw==
X-Forwarded-Encrypted: i=1; AFNElJ+qjL1eF4O9VGy3BXVM0+V8IEwZo4LID+CUBe7rK+Iog1ZvDlN416Dhrq4QV9WeugPuLH0xs9D+Ipk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzLaqBu494ieGnOV02PRUxwQ8I4CLGRct18WmFU7b+XseWiiiSB
	hLwcH9wnhTCZdf61nIY6WeZGrXC5Aj6KX4ksvMee+bxG0eB+wATpCzbcCucPW8NhIw==
X-Gm-Gg: Acq92OHqjW32jefL2iDXPUee3Kp9bpyw7MhmHwQxkqvfiqGtuJsankFvGS8Wx9G7AAZ
	ItlRozix8jtjiaCkdTKPAWeN7Td0xKS9KCzZT54lKhepDTCLKlP7705bg34KVpU5HWC0eqGINTS
	ZemVnErwZhaZPwNVHCdjXfeJRPBk9pGpruEUxaenPtDjg98tYA6b0uGVqLbBdrPVTjLl/HPQVkm
	7QvU3I93h58gB820jhr5WZYKjkFcqckGrcawVCP8lYRo5mgYwA8DT0p0BjeYYH1A5e2nFUUqLEv
	rs4QkFSkEJZxK5bAZWJKG79yhH994nPOUAHEbkEApxDlDBMO8aziBE0BO/WZONA6Y/ew0JIu63h
	Ib/ZzdcJKFmF/THkluxGjDLPWjQ1Qa9WYfXAhf8ZIgdXa5OZ4dhtwpiMI3Il/pvohQkbv6S3/Im
	JQXY9UJPsTYZEneN7gG0sPhSdaFxU4NuqPIhs0iX360pSxa3FFEuL798FnFlPtR2sTU7amA6ep+
	lwZ8PdfqlwOHZ4JZRr93tkQ6Q==
X-Received: by 2002:a05:6000:601:b0:44a:b931:f32a with SMTP id ffacd0b85a97d-45ea4126a81mr4918655f8f.27.1779370245531;
        Thu, 21 May 2026 06:30:45 -0700 (PDT)
Message-ID: <ea7d6009-8494-4510-a5eb-b07fa6b8d6cc@suse.com>
Date: Thu, 21 May 2026 15:30:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/26] xen/riscv: implement make_intc_domU_node()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <425157c3414ca95665288fa3788430e96a99e3cd.1778250616.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <425157c3414ca95665288fa3788430e96a99e3cd.1778250616.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1779370246-82B68161-BE5DE662/0/0
X-purgate-type: clean
X-purgate-size: 1105

On 08.05.2026 16:43, Oleksii Kurochko wrote:
> @@ -46,6 +45,15 @@ struct intc_hw_init_ops {
>      int (*init)(void);
>  };
>  
> +struct vintc_init_ops {
> +    /* Create interrupt controller node for domain */
> +    int (*make_domu_dt_node)(struct kernel_info *kinfo);
> +};
> +
> +struct vintc {
> +    struct vintc_init_ops *init_ops;

Pointer-to-const?

> @@ -73,3 +74,13 @@ void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
>      intc_set_irq_type(desc, desc->arch.type);
>      intc_set_irq_priority(desc, priority);
>  }
> +
> +int __init make_intc_domU_node(struct kernel_info *kinfo)
> +{
> +    struct vintc *vintc = kinfo->bd.d->arch.vintc;
> +
> +    if ( intc_hw_ops && vintc->init_ops && vintc->init_ops->make_domu_dt_node )

Why the intc_hw_ops check? The variable isn't otherwise used here.

As to the other two checks: Is it plausible for either of the two pointers
to be NULL? If not, merely ASSERT() or even build upon ...

> +        return vintc->init_ops->make_domu_dt_node(kinfo);

... NULL derefs to fault anyway?

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 13:38:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 13:38:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315238.1585078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ3bi-0003iJ-6W; Thu, 21 May 2026 13:38:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315238.1585078; Thu, 21 May 2026 13:38:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ3bi-0003iA-2A; Thu, 21 May 2026 13:38:38 +0000
Received: by outflank-mailman (input) for mailman id 1315238;
 Thu, 21 May 2026 13:38:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <32QoPagYKCYIykgtpimuumrk.ius3kt-jk1krroyzy.3ktvxupkiz.uxm@flex--seanjc.bounces.google.com>)
 id 1wQ3bg-0003i2-Pf
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 13:38:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ3bg-00Gin8-5e
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:38:36 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <32QoPagYKCYIykgtpimuumrk.ius3kt-jk1krroyzy.3ktvxupkiz.uxm@flex--seanjc.bounces.google.com>)
 id 6a0f0ad2-bab6-0a2a0a5309dd-0a2a45068402-24
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 15:38:36 +0200
Received: from [209.85.210.202] (helo=mail-pf1-f202.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <32QoPagYKCYIykgtpimuumrk.ius3kt-jk1krroyzy.3ktvxupkiz.uxm@flex--seanjc.bounces.google.com>)
 id 6a0f0ada-7371-0a2a45060019-d155d2caed64-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 15:38:35 +0200
Received: by mail-pf1-f202.google.com with SMTP id
 d2e1a72fcca58-841127f960fso1220376b3a.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 06:38:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779370714; x=1779975514; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=jbJ4F8kl/6/QcBmB9dNne3NQOqe79KuT470iYfI7huM=;
        b=hG6B9OEgWtr7KTUiUJXXEpQ1JY+bs8So+ilFZT4WRa1GbMtbUbgoUBcpQPkheK0GHo
         dVp0Ey6EsM/eugVN2fmv9TLIAabVzmCH/Z1+5uOWbXIzlFY3rF4LCiV18+/qgAsgiqh+
         NlEA11Ydo/C3feLRzxgyiLMGVWuwIm15kkcHTsPeko+WrVBPr3jfmddxxtgNaMuyXN3R
         PnFuo6J0RlDzp90jobGs+IpgwXXgh4tlxNwy/S7O6vzZ/mF6iKGU4YKyfkb18fPlDQaR
         qDWVrBj70nMW4dcm3rQUtyU0YgptjPMbf0TA5Xe4qE12do0abRkorVVCoYMPAlacaexx
         f3sA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779370714; x=1779975514;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=jbJ4F8kl/6/QcBmB9dNne3NQOqe79KuT470iYfI7huM=;
        b=mbrlvJtcPRzWDxHqYmM+Tz6hhUozTPLbwxvu9urZXU9M03UCm/cdgPcIKi14NKd2Yj
         oMwVfkWu6xWVKrOYq4XB59XZEsMcIUdGZz/8CrJtgkc0bchhD24agubfhhIyj/lceDBm
         g7NH9vS9N44q3Mq4lzK6H7kZVqlwTBuWQtb/m0vPKywNQs6OIcHULuZjSU49g3bdCHLc
         j+NCaGXUXiHCNujGUL491IK5CSKqFpTKxiCt/eTanApuW64Zt0dIQTrSUPivPszVKFWz
         un4eMUBo0O2s6IMdAljEQAn/fW7wiOWFjSoHGW5ACEJB4aHdSkH24fmIKuXm5UqCgT5F
         pPCw==
X-Forwarded-Encrypted: i=1; AFNElJ9lMxR6hrkiraU3P+d4maUpYPUO9i6EGor3sg0Is+COxyFtb9oZ/WkXIBhaTzgUXB/MEkOv8E7LFqA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx1h5hIR7B6K0aOGn2mb9VGckB30biRdOQ6XBijRoWTccjkE9++
	l48odtfhfpBfAkzq98P9cv5LOHhyfnKviwkJrutshBIK+TDo7OcvSu2JDm/bsuZfoIcUEiVGp8k
	VYHcNiQ==
X-Received: from pfbem15.prod.google.com ([2002:a05:6a00:374f:b0:83d:3c25:eb8b])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:4c8c:b0:827:3b1b:43e6
 with SMTP id d2e1a72fcca58-8414acc6e8emr3123916b3a.21.1779370713612; Thu, 21
 May 2026 06:38:33 -0700 (PDT)
Date: Thu, 21 May 2026 06:38:32 -0700
In-Reply-To: <20260521131019.GI3126523@noisy.programming.kicks-ass.net>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com> <20260515191942.1892718-28-seanjc@google.com>
 <423b37f056f0d4d596d5f4cc73802fb1079ecf63.camel@infradead.org>
 <ag8Bpc_uVNrNWqfX@google.com> <20260521131019.GI3126523@noisy.programming.kicks-ass.net>
Message-ID: <ag8K2FRGcoEa-D2Y@google.com>
Subject: Re: [PATCH v3 27/41] x86/kvmclock: Enable kvmclock on APs during
 onlining if kvmclock isn't sched_clock
From: Sean Christopherson <seanjc@google.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: David Woodhouse <dwmw2@infradead.org>, Kiryl Shutsemau <kas@kernel.org>, 
	Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-16d1c6/1779370716-87371D75-0F2D37D4/0/0
X-purgate-type: clean
X-purgate-size: 1831

On Thu, May 21, 2026, Peter Zijlstra wrote:
> On Thu, May 21, 2026 at 05:59:17AM -0700, Sean Christopherson wrote:
> > On Thu, May 21, 2026, David Woodhouse wrote:
> > > On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> > > > In anticipation of making x86_cpuinit.early_percpu_clock_init(), i.=
e.
> > > > kvm_setup_secondary_clock(), a dedicated sched_clock hook that will=
 be
> > > > invoked if and only if kvmclock is set as sched_clock, ensure APs e=
nable
> > > > their kvmclock during CPU online.=C2=A0 While a redundant write to =
the MSR is
> > > > technically ok, skip the registration when kvmclock is sched_clock =
so that
> > > > it's somewhat obvious that kvmclock *needs* to be enabled during ea=
rly
> > > > bringup when it's being used as sched_clock.
> > > >=20
> > > > Plumb in the BSP's resume path purely for documentation purposes.=
=C2=A0 Both
> > > > KVM (as-a-guest) and timekeeping/clocksource hook syscore_ops, and =
it's
> > > > not super obvious that using KVM's hooks would be flawed.=C2=A0 E.g=
. it would
> > > > work today, because KVM's hooks happen to run after/before timekeep=
ing's
> > > > hooks during suspend/resume, but that's sheer dumb luck as the orde=
r in
> > > > which syscore_ops are invoked depends entirely on when a subsystem =
is
> > > > initialized and thus registers its hooks.
> > > >=20
> > > > Opportunsitically make the registration messages more precise to he=
lp
> > > > debug issues where kvmclock is enabled too late.
> > >=20
> > > That's a hard word to type, isn't it?
> >=20
> > Heh, you have no idea.  I've been "this" close to creating a VIM bindin=
g for a
> > while, it is time...
>=20
> 'z=3D' not good enough?

You people and your fancy ways.  I'm just happy I can get in and out of the=
 editor :-)


From xen-devel-bounces@lists.xenproject.org Thu May 21 14:14:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 14:14:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315260.1585086 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ49s-0002gS-LV; Thu, 21 May 2026 14:13:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315260.1585086; Thu, 21 May 2026 14:13:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ49s-0002gL-Iq; Thu, 21 May 2026 14:13:56 +0000
Received: by outflank-mailman (input) for mailman id 1315260;
 Thu, 21 May 2026 14:13:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wQ49p-0002gF-Ds
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 14:13:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ49n-007tvp-7W
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 16:13:51 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0f1310-e002-0a2a0a5209dd-0a2a45018118-16
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 16:13:50 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0f131d-c1f2-0a2a45010019-5a9b3222dce0-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 16:13:49 +0200
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=u09cd745991455d.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wQ49a-00000008Zoj-333x; Thu, 21 May 2026 14:13:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=Ma4rUXxctxkBftmjMkUa1ZjNAzu1G4mVje5WD9fbAWQ=; b=CSe7eIl3b9aaKU3qvbReR7GGlx
	TvFYVP+wbeuYlAI6cAn2jdlkw0yqpFub5sWNPQghqq18UMXyDmvmuuGjf2wgJ/7aUedA3wf+XZtg8
	QuDlLJmdEedu/ZAx2g6D4kwFpgXbVAnC6lIEho0XzXjHYPWGD07pN9WW4VGTrBH3Q3jWU4pa2uUon
	phWtYIwJitJTjVUKaZLrfVfWZlx4wmJ1oGiaY3Vrggo1gK9O5Ex50Iz6MlEhhr2ZtFM9ab8IWHn6/
	gvrmLjB3inwVsMPCOtkjq1d2NWIb+P1kLFDGXJqHbtHBRgX3/HzVyxucukR1qdEVr0GzxxVDPBUP1
	SVeYlqIw==;
Message-ID: <6d37802ec33601d6be0eb648156e985545b2364a.camel@infradead.org>
Subject: Re: [PATCH v3 27/41] x86/kvmclock: Enable kvmclock on APs during
 onlining if kvmclock isn't sched_clock
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>, Peter Zijlstra
	 <peterz@infradead.org>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
 "K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang
 <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, Dexuan Cui
 <decui@microsoft.com>, Long Li <longli@microsoft.com>, Ajay Kaher
 <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen
 <dave.hansen@linux.intel.com>, Andy Lutomirski <luto@kernel.org>, Juergen
 Gross <jgross@suse.com>, Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas
 Gleixner <tglx@kernel.org>, John Stultz <jstultz@google.com>, Rick
 Edgecombe <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov
 <vkuznets@redhat.com>,  Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 May 2026 15:13:37 +0100
In-Reply-To: <ag8K2FRGcoEa-D2Y@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-28-seanjc@google.com>
	 <423b37f056f0d4d596d5f4cc73802fb1079ecf63.camel@infradead.org>
	 <ag8Bpc_uVNrNWqfX@google.com>
	 <20260521131019.GI3126523@noisy.programming.kicks-ass.net>
	 <ag8K2FRGcoEa-D2Y@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-/luWii/cRDq/zhkGKorZ"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d62444/1779372830-B4D49FF4-9E84712B/0/0
X-purgate-type: clean
X-purgate-size: 9790


--=-/luWii/cRDq/zhkGKorZ
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, 2026-05-21 at 06:38 -0700, Sean Christopherson wrote:
> On Thu, May 21, 2026, Peter Zijlstra wrote:
> > On Thu, May 21, 2026 at 05:59:17AM -0700, Sean Christopherson wrote:
> > > On Thu, May 21, 2026, David Woodhouse wrote:
> > > > On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> > > > > In anticipation of making x86_cpuinit.early_percpu_clock_init(), =
i.e.
> > > > > kvm_setup_secondary_clock(), a dedicated sched_clock hook that wi=
ll be
> > > > > invoked if and only if kvmclock is set as sched_clock, ensure APs=
 enable
> > > > > their kvmclock during CPU online.=C2=A0 While a redundant write t=
o the MSR is
> > > > > technically ok, skip the registration when kvmclock is sched_cloc=
k so that
> > > > > it's somewhat obvious that kvmclock *needs* to be enabled during =
early
> > > > > bringup when it's being used as sched_clock.
> > > > >=20
> > > > > Plumb in the BSP's resume path purely for documentation purposes.=
=C2=A0 Both
> > > > > KVM (as-a-guest) and timekeeping/clocksource hook syscore_ops, an=
d it's
> > > > > not super obvious that using KVM's hooks would be flawed.=C2=A0 E=
.g. it would
> > > > > work today, because KVM's hooks happen to run after/before timeke=
eping's
> > > > > hooks during suspend/resume, but that's sheer dumb luck as the or=
der in
> > > > > which syscore_ops are invoked depends entirely on when a subsyste=
m is
> > > > > initialized and thus registers its hooks.
> > > > >=20
> > > > > Opportunsitically make the registration messages more precise to =
help
> > > > > debug issues where kvmclock is enabled too late.
> > > >=20
> > > > That's a hard word to type, isn't it?
> > >=20
> > > Heh, you have no idea.=C2=A0 I've been "this" close to creating a VIM=
 binding for a
> > > while, it is time...
> >=20
> > 'z=3D' not good enough?
>=20
> You people and your fancy ways.=C2=A0 I'm just happy I can get in and out=
 of the editor :-)

I reached the peak of my vi knowledge in about 1995 when I learned that
I could log in on another terminal, kill it from there, and then set
EDITOR=3Demacs.

Ironically I still find myself doing that kind of thing when I'm
composing a git-send-email cover letter and decide I don't want to send
the series as-is at all. Maybe there's a way to put a poison pill in
the message (or save it unchanged?) to make git *NOT* send anything...
but I always err on the side of caution and just nuke it from orbit, or
at least from another terminal.


--=-/luWii/cRDq/zhkGKorZ
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMTE0MTMz
N1owLwYJKoZIhvcNAQkEMSIEIEgkkw1Zfu2OudnG8cU+MVWgyG8a1j0D52Qh8hHReT5yMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIA036HTeiItcPn
bSvgswYeD77jdEe/2Kl5P0nyJ5bE+UOLwkXom7KRUxdoA+vd1+MqFMDWoAywMwXgm9rKNwQK/1ZG
yNGaNy9GqbZcvleefr4PwFHO2gN5+H86tX3gkF+at+Q4gAHTGjSUR5xR1ZWMDXsTbhGsy24uw0yL
h2lillfsgvUWUmRbUKq9CLitnxg4m+un1nD/bvfB8VEHuj+q8CTnsVgPAB6z215sMgsImO6yPDEZ
iu7wFELTqO6S1v1wWO9omEeRhxPk4cHG+to5ukTJQKwaXEljtLIeDMn/BwHlCwUPOzzE70ayjJno
pn/DjnCu2E3n9kbLtnYrv64OX6szqz9x1Xc9Rud0rJABnrSZvGWlRo7f0CZmNI8QQ9gh65lHaMG9
uhi9BYdqC1mea9cAKo0j7UIY8pm4O5CKb2zdepOfxUUIqhi7zleSh0/S9UlSdZrOIvXO8uEgxZig
izjZ4+U8vo5LVQlUD57qnry3duXa4nDpBqVv6T3mPdd5XEoKiGp62m5ka/aov2kYr3LW56PFA/Sp
c/4CAC3140Hdf4wmHAuWheEclOgI5A6diLJ9h/E9e5J3YbDbL3kOMejlhbkEfnPMwycZ76PqIalG
A9mD189d0OO2dtY20lQnVGKuq0UuheZji+6yoMwpRYuE0MKMIs2z0otc7Il591QAAAAAAAA=


--=-/luWii/cRDq/zhkGKorZ--


From xen-devel-bounces@lists.xenproject.org Thu May 21 14:24:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 14:24:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315278.1585096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ4KU-00054Q-Mc; Thu, 21 May 2026 14:24:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315278.1585096; Thu, 21 May 2026 14:24:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ4KU-00054J-Jg; Thu, 21 May 2026 14:24:54 +0000
Received: by outflank-mailman (input) for mailman id 1315278;
 Thu, 21 May 2026 14:24:53 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wQ4KT-00054C-Bb
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 14:24:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ4KS-003O6f-OD
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 16:24:52 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0f15a1-2eae-0a2a0a5409dd-0a2a450b86aa-48
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 16:24:52 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0f15b4-212f-0a2a450b0019-a237832fb00e-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 16:24:52 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 3D79C4EE3D8A;
 Thu, 21 May 2026 16:24:51 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1779373492;
	b=2nJZJvCDfthLX3d/AywBUR82gf+zpaZt+Fjn+/N/jhLvD0mnN1Nu0D+AMW1e7yqDNHnB
	 vRAzuYnzuUII+0W8TSJsLTntHvN3EjXoLZVvNWMDRFiU3A+PBjokLkI0at6FD5O2FspV3
	 TFA4vP9MJLQA7wqVvCSVRblsq0+xazQO6aUBkOYZV8udEBYaxTrqqwiVmWU+SIDvMau/H
	 F4liOyiVC8GkOU5Gd36O6+9KikKUq8/1XZ9uUdv28fCWP4mSVCqkRRRdk50CkEB9qZWCH
	 j5AMFh2YUO1+n72putv2R2pBNKn+/nBLYzhV1149apiVXsjqJ74FmOpVHBkg/Xb2VgDQI
	 qrILVW98IjzsybiCiAe0CpizqoH1h4Zg0nVEQyUIRZYM1/G516EM1P4V4XdLQYVAp1yP5
	 AnM9GFk16cY0fXovTA97MgqbkBt5c5vYPaoAofe5Q8LEH1OIkAyYB7INWsz5N9kBE0PpX
	 H0IxjbKtn8fRNXnStJFV3tDUrm86z8RRBFS71xt8Us+2Np0qbJrHmiqFMA0NFY9KOtBwc
	 9GbBZDijN1j4lrbViOx22oOESb8/f/mDQe2vQ3YBTFScL5B5YTvSZQj1X/vron7oAtSvk
	 0mrw2BAZCEw9KpYf2B2fw6Cbg+bmYWot8wVZouIAB/f7SobphD/rn154IjaYZ8Y=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1779373492;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=2kIBIalVSnUduM9+XigotZF1KqV+aPJCsd7ouGZg7UQ=;
	b=bAnrFCYgdiEhtlgUR6oZNTLhYBe3C1y0CDZ8sRWD8Y8RkN35nPoh7yG9JNVq8lS8l/Ge
	 8FSJ/uF4hg3zoBlDbVFOCmasSCSubREGTsJQBHAUWo0lttQbUFg2AD4xvBikIeKmR5kV2
	 6XoYSoXGA7fBN9gE/UK+e0j/bwoqJGTAASKks561uzYXlYUKX1eWIVQ8tXdt5trE1iL2p
	 9fYDylh7CusIxphULML42DrcPiu98BusOy2Gq1ZqCGgVpD5iNU2srraRlU8J2zPOXGj00
	 vFnCZ1fG559eMzVDQ6cO+28FpTnhb2/K5YgNKkJmc7w8YQ7ZLMv8bAL8rqCkC5cDeA4vt
	 yAfQKZbTw4V3tsFR2pvzPFN/8pQiDY9Aw/VDHxm/zsS+bnFngcHznB1jyI4ar1oWVLyvs
	 oVyZwHj5W4u6etNqMZTuQgQhdKwXlMqiOCzONMmJNsM3bOmdWDq33VgNEKrvDr5vhwKUh
	 eBp/qNdCvArEW2hxlCJlHR83zX0JasljVvmMgtFfe20aIcWjCrfVBNgcpcvM4v3rMeiu4
	 enZk2qtxu91ZOyAbn1i4yvDJT86VrH1ZE12H1Gs8UOvPfPaPWxWOeNBtN2SIwSnrTswmL
	 kLP8KIwMitCCS+S9K65wRGl1cDwuX+XqOGySjxYUdLbApeRyE72Mkl4XQ76JCj8=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Thu, 21 May 2026 16:24:51 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Teddy Astie
 <teddy.astie@vates.tech>
Subject: Re: [PATCH 1/2] x86/time: address Misra C:2012 rule 8.3
In-Reply-To: <09e58463-4eda-46da-83e0-bc66c84afb25@suse.com>
References: <2ad2b572-45b4-42a5-9b7a-80eebfacc80e@suse.com>
 <09e58463-4eda-46da-83e0-bc66c84afb25@suse.com>
Message-ID: <1b9724be44ac321a7efa0852014312f6@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1779373492-19364F3B-B24F2715/0/0
X-purgate-type: clean
X-purgate-size: 2229

On 2026-05-21 14:26, Jan Beulich wrote:
> Before we can enable scanning of time.c, it needs to be clean wrt 
> blocking
> rules. Bring boot_tsc_stamp's definition in line with its declaration. 
> For
> get_s_time_fixed() go a little farther and move it to the x86 header 
> (the
> function only exists in x86) and do, along with correcting the 
> parameter
> name, the u64 -> uint64_t a little more widely than strictly necessary.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

> --- a/xen/arch/x86/include/asm/time.h
> +++ b/xen/arch/x86/include/asm/time.h
> @@ -13,6 +13,8 @@ static inline cycles_t get_cycles(void)
>      return rdtsc_ordered();
>  }
> 
> +s_time_t get_s_time_fixed(uint64_t at_tsc);
> +
>  unsigned long
>  mktime (unsigned int year, unsigned int mon,
>          unsigned int day, unsigned int hour,
> --- a/xen/arch/x86/time.c
> +++ b/xen/arch/x86/time.c
> @@ -95,7 +95,7 @@ static u32 pit_stamp32;
>  static bool __read_mostly using_pit;
> 
>  /* Boot timestamp, filled in head.S */
> -u64 __initdata boot_tsc_stamp;
> +uint64_t __initdata boot_tsc_stamp;
> 
>  /* Per-socket TSC_ADJUST values, for secondary cores/threads to sync 
> to. */
>  static uint64_t *__read_mostly tsc_adjust;
> @@ -1656,10 +1656,10 @@ static unsigned long get_wallclock_time(
>   * System Time
>   
> ***************************************************************************/
> 
> -s_time_t get_s_time_fixed(u64 at_tsc)
> +s_time_t get_s_time_fixed(uint64_t at_tsc)
>  {
>      const struct cpu_time *t = &this_cpu(cpu_time);
> -    u64 tsc, delta;
> +    uint64_t tsc, delta;
> 
>      if ( at_tsc )
>          tsc = at_tsc;
> --- a/xen/include/xen/time.h
> +++ b/xen/include/xen/time.h
> @@ -33,7 +33,6 @@ struct vcpu;
>  typedef int64_t s_time_t;
>  #define PRI_stime PRId64
> 
> -s_time_t get_s_time_fixed(u64 at_tick);
>  s_time_t get_s_time(void);
>  unsigned long get_localtime(struct domain *d);
>  uint64_t get_localtime_us(struct domain *d);

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu May 21 14:26:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 14:26:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315283.1585104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ4LX-0005bo-Ul; Thu, 21 May 2026 14:25:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315283.1585104; Thu, 21 May 2026 14:25:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ4LX-0005bh-S3; Thu, 21 May 2026 14:25:59 +0000
Received: by outflank-mailman (input) for mailman id 1315283;
 Thu, 21 May 2026 14:25:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wQ4LW-0005bW-8T
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 14:25:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ4LV-00B8Ai-Kz
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 16:25:57 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0f15f2-e002-0a2a0a5209dd-0a2a450aa83a-16
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 16:25:57 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a0f15f5-56b3-0a2a450a0019-a237832fa9c2-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 16:25:57 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 5515F4EE3FFD;
 Thu, 21 May 2026 16:25:57 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1779373557;
	b=aE7aC+DuA42lS5q/Bg/smYtOC5vKwnG3cKYbSl8ybREkIDp3bfQG/U7kR22US7UCH4j2
	 f7LwO+eYuQK1+2MdfVwY9PlxHkC/izmdD+bxsmStk06gfAKZOILtlyXir4paqIDpOWYoB
	 KWBUxcHbagvGwI+WgKh6eIPUa8WU9xzbOUgiCE9VZ6dd60xn1U6uenAJt5Si+kTpAGnBn
	 OzcP45NBWFQcs2v6AVCNJli4KIpu4Hn9YvyOWpMYZJaCABQzO2yKy0pMZo3sBEJpPtQb6
	 qgwapN2cq/n8Na2XUjeFdXyoZpzcMUuXIRD5AjBNihdNVfAoUFLTzd83nvRwnO8M6Ncj6
	 IjCO3AMnN5M/rOCaO2O12b4miVThlbzXkwhcxYZoCY2/+9aJ3a1a5GzsVcuWV1kVr87jP
	 7qGHYEroIIolMNQEeg5uh3rumvX4Z4r+Tl/aIckD8+Y2d3It6BY0Y6vJ1mR7GYj4YjTA+
	 cKqe9u3/PkEE966uPB10ETFNvHQA18F9fjLmAV++odMkxLGeLdhlkJEjGaEHvs7wPzH3K
	 yaehrYNBpzaHwl69tsGgDT75p3PqZW1Ys2890m3GZU/pEuR39M4u86g392jrY73mNhFlH
	 i8v7wrKgh0Pomtx2KsffumJKNSdcxNijuaCtNNjuP4HOeHT9FCE1Tc7axBiMnj4=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1779373557;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=dp/o+oIXXcCCQ2xcGMfkA4KluUYXWS+QdJHoSLMHecE=;
	b=CaYo8076vqgDTd9d4Xs2H0OjHDP805kxsoPEyDVuhUqKGfKwYNgeLBInda7upCdIHTv8
	 WC2rCj+botuDSvbihAT+abFhyl7nbKQNIeEbnAPvonmI3K9RtP1SeQAH27xryUIdm99qW
	 xR8v+IE/KU5Q62+aVP5iKQfgNJRlOcxoPhwFzVq0JNjFN+/mQ2HkG+at/n7RUem5pAMXZ
	 D/LoFnhZB7Ce7ootsposjq92qjeTcz/e/PFzMkv1vtgOLaiL58zDtZG5uxm8kTUqvS76X
	 WELid01B3ZqEmOLOOe+NYjsTnlbX0AnyocLTMnwYzeNpiUHpcoiLemCnVo8VarEMT8/WS
	 mrQxd8M5wHOMrTslqWcrjZFMUnzJo3lMwCntOdAEhkmio73bew6fbR1/RhCmU41ipOyED
	 6Q0IUd00UkOjtP56Lfj0j1J1Gny+ztc0fFE6RNLqQxvpIGBbBJ1khV2Q+nNpRenL0P+Pn
	 LxDykfS6Rg0DuZvddcaRQ6o7Sa5/VthbP7fRwofkLJZfhcHmDPrWDTcVnW0cxfJHMzZev
	 /5WvF6SePu0ZuIR19hXFKXNsYIazYuq8OJoXG2Z/knCMlKecvd+EFlPR6SS8Q6nk7sChh
	 f27kq0iD7i0GqNoct6vRQsKX7GOPHh/U2miG0LXpOIalTVc0vb8d/gk2dEG1Ej0=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Thu, 21 May 2026 16:25:57 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 2/2] x86/time: don't exclude from Eclair scanning
In-Reply-To: <81995cf4-19f4-4146-aea7-d3e57609aa2a@suse.com>
References: <2ad2b572-45b4-42a5-9b7a-80eebfacc80e@suse.com>
 <81995cf4-19f4-4146-aea7-d3e57609aa2a@suse.com>
Message-ID: <3fd25161430c25f855fe0ba291b5bebf@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1779373557-7D7878B7-BBA745B5/0/0
X-purgate-type: clean
X-purgate-size: 1280

On 2026-05-21 14:27, Jan Beulich wrote:
> The justification is wrong, and the file hence shouldn't really be
> excluded.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Thanks for addressing this

> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -214,11 +214,6 @@ const-qualified."
>  -doc_end
> 
>  -doc_begin="The following file is imported from Linux: ignore for 
> now."
> --file_tag+={adopted_time_r8_3,"^xen/arch/x86/time\\.c$"}
> --config=MC3A2.R8.3,reports+={deliberate,"any_area(any_loc(file(adopted_time_r8_3)))&&(any_area(any_loc(file(^xen/include/xen/time\\.h$)))||any_area(any_loc(file(^xen/arch/x86/include/asm/setup\\.h$))))"}
> --doc_end
> -
> --doc_begin="The following file is imported from Linux: ignore for 
> now."
>  -file_tag+={adopted_cpu_idle_r8_3,"^xen/arch/x86/acpi/cpu_idle\\.c$"}
>  
> -config=MC3A2.R8.3,reports+={deliberate,"any_area(any_loc(file(adopted_cpu_idle_r8_3)))&&any_area(any_loc(file(^xen/include/xen/pmstat\\.h$)))"}
>  -doc_end

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu May 21 14:34:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 14:34:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315298.1585114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ4U8-0007nR-Nd; Thu, 21 May 2026 14:34:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315298.1585114; Thu, 21 May 2026 14:34:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ4U8-0007nK-Ko; Thu, 21 May 2026 14:34:52 +0000
Received: by outflank-mailman (input) for mailman id 1315298;
 Thu, 21 May 2026 14:34:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ4U7-0007nC-OK
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 14:34:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ4U6-00GuRf-Mx
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 16:34:50 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f1804-e002-0a2a0a5209dd-0a2a4503e8ac-10
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 16:34:50 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f180a-672d-0a2a45030019-d155dd31e818-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 16:34:50 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-44e5624c053so3847223f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 07:34:50 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eaa9358d0sm3008572f8f.26.2026.05.21.07.34.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 07:34:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779374090; x=1779978890; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FHpTqvrtPipZsB8bxnLfRL1iHtLkmSgdn8fCyGOIxnQ=;
        b=fATTcVep2AAy10mzBnl4lC0edj6oi3fFv34Kyl7H+16BlZY9mfOvsooxFkhwnOwz6q
         0T2pCE66DoNH3Xduhn0qS6b+X8L4fiTZKLYUnCBWeXzHTuxAAAjHg7lhaCSa+Zbw09zD
         RribNquJx/2/Fp0NAj5Xqe2mcIQHDopD++us4YXU5sUynwZKD2MG2PY6+RkWx1Cf+qM3
         0BLVn3De+6sixZ/JmylkOTXGMV5A/UMmQCrt6eKDd0+uy3cA9QdjMcjUHjeW/miiwjBO
         Zr3QYT4rKNXgNi9HeydCLw4/5wgSWmLUpBrGtEa0EiAQifDvCuv7MhbYJT611xdlAaTs
         ry4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779374090; x=1779978890;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FHpTqvrtPipZsB8bxnLfRL1iHtLkmSgdn8fCyGOIxnQ=;
        b=gBd6Wp0L8n21Nl6PHhB74c6JIIRpJ9IIpm0psYqn9teLxhzwFDufXFtEwSxypJTPPw
         FlLqP+na6Qeu9tL9p+HstmAgrHU/n/yBW7+aCXzW6bdF7jWWyitDkkJPHyAvfk95084h
         iyAI0kQZKKQBE3yOlphtWHNcLIgPLjxj4tPUJySljPfA1c6BhTLlx7LIeKzwY5G6qXdF
         NEN5ihqrSM88AXbUsk0FpARYW3sdICqiTG3OsAzcqrZ7b2gpEBzxoIP+Ce1v+2R1oAFG
         eVq1nZXXCB1RmVITqLRqWQmWep0WzA8GzAkqxx9s5xwuD5BXnLdkv5qESsbNiCEV7BHL
         /tYw==
X-Forwarded-Encrypted: i=1; AFNElJ+Cq3jaerPWvCcy6YroEHCuEWArjQsfqu192AO1MNI1/i6DXmuX8+6HebixGRiGn04VUwCAoDZ2Ioc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzuNS3C2FEucnQ4FDAi9N3NDRVyFPpkZi6qmEj0K88xfBEFHfZZ
	jsPeGN1+RLd3aXMiAdyb3iLJKZMMuaCOdBdLv09ONSb4ZROxTneI8RfMhwCDZwS4Gg==
X-Gm-Gg: Acq92OFu/uCIS9XtxzC1oQQId2gffMSFitOUq5zpx93EUBufym9UtVMh2nICdg0MVbp
	lwXU4g7a8eH8SkwZCpwtS4KHJkXz2AUDHKToqvjY5ax9zKHSepGWvMawVYHh5zr2XSDVXJF5NbA
	bOBH+zMwY67ECj1iQh52+1qOXg987Hptq3WNq2EotQ8mvCRh8NwEW6LHqfNhXaiHYd53zUPtLg2
	crfqbbTJN9tlMFDB0xIvnfBj1CCgTnJQqGH6NaLd3KI399BqfYY7f3YQtc13dXpMWZcZhmxoxQw
	acqCEwyC3V9d7S6KAHWOUwVMViXNLHQWP2va8F+ZF33B/B87UggN2ExbxQxjUH8h7S0xOtxBD4t
	4zqXVmNMepQMAUKO9uHNdb6qRNzHvA6+Gd7oKNsauo/DjHTxB6xt+cI48bGQYyEVS3Mkh5mVRyi
	MhYmVDUWFmnbm1DoeqR3XeB36gI2wB30NNbdhfj52saQGDytHziD8KCnHHnUE7K9pGzxOYyWcS7
	3D5fjEFkp8aaUM=
X-Received: by 2002:a05:600c:4a1a:b0:490:31e:d6fd with SMTP id 5b1f17b1804b1-490360a6470mr29609585e9.25.1779374089739;
        Thu, 21 May 2026 07:34:49 -0700 (PDT)
Message-ID: <d87a4771-b2c7-4696-a45e-726821bf1963@suse.com>
Date: Thu, 21 May 2026 16:34:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22? 0/2] x86: don't exclude time.c from scanning
From: Jan Beulich <jbeulich@suse.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <2ad2b572-45b4-42a5-9b7a-80eebfacc80e@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2ad2b572-45b4-42a5-9b7a-80eebfacc80e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1779374090-39D7B938-62073F65/0/0
X-purgate-type: clean
X-purgate-size: 329

On 21.05.2026 14:25, Jan Beulich wrote:
> 1: x86/time: address Misra C:2012 rule 8.3
> 2: x86/time: don't exclude from Eclair scanning
> 
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2543286982

With the quick R-b from Nicola (thanks much!), what's you're view towards
including this in 4.22?

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 14:57:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 14:57:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315314.1585123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ4ph-0003xO-Bv; Thu, 21 May 2026 14:57:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315314.1585123; Thu, 21 May 2026 14:57:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ4ph-0003xH-99; Thu, 21 May 2026 14:57:09 +0000
Received: by outflank-mailman (input) for mailman id 1315314;
 Thu, 21 May 2026 14:57:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQ4pg-0003xB-2d
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 14:57:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ4pf-00EFwr-Eh
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 16:57:07 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f1d38-e002-0a2a0a5209dd-0a2a450c9046-18
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 16:57:07 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f1d43-62f1-0a2a450c0019-d155802ad9b4-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 16:57:07 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-48e82c23840so50795205e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 07:57:07 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d9edcbsm76823485e9.13.2026.05.21.07.57.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 07:57:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779375427; x=1779980227; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iaCwIVAYsmiL0Vvz1AfLADHLOPBlm62cOoYqQEOSbTU=;
        b=JGcJThqeO9a7I/n6wQOB8LqJ+0+itP5pWkz/JvY2MR+SQMo6o8wTaHimc/8uxLXFei
         W7K+tAQ27/P0ncs2AnDLZvbaHCgp+VY7vUkZnKa7C+SEuqtGZ58TnB8MnUVxWBOkSJ94
         549YbSnXs9xAePjjGUYaOaBgwx+m8ZGmpfeSo8/1jqL0e1nLkm8YTwn9hmjuIVWPpiV6
         QVWAuiKnQQN8CJcOqpEgTVGnYlTk89i9UCVfCKPhmpZ5ajwVTM59KrWR8FQleg9g8hpm
         jRQlzRgxKVR50O47xaJqdrL53e/TplTyeaDvDFtZwjsImUbu4blbOFYQRpblGAVc0Y/k
         Hjlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779375427; x=1779980227;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iaCwIVAYsmiL0Vvz1AfLADHLOPBlm62cOoYqQEOSbTU=;
        b=YIpb8CmWXZk+0uJn0wXifJlAhxGS1uMDRKkyDmWy4I85qwTW7j5d0BzCaSXcAhNUgj
         YOZGIVodsra9r3FUQb5VWtiaIlg96B/UMYXsrJfKxiPCKLcbffIL6E+7Te6/kHYNc46s
         rUfZ5AgVVrfHksNz4o28CBUwmkP4VOvbyUJCLpDtRh4XqRJoVgFoftiHmNj9LJHEzuid
         bA1QTMDMCX2a744uYVYnBau1zp9bWBUG8jguo2cCJGG3CYDegOJNhjmKWQ17uwcrtFjA
         Vna3NxjT1s3NjzptGVM6t+67F2GTyvPDaXc0zMTckaDj2Oo+97X+GoWTsMUwFYXPGo2e
         HLbA==
X-Forwarded-Encrypted: i=1; AFNElJ+CWB3qKb5e/A48BJVtftG1TwkFS1HuWnYUBB8azLNQ7xP9HU+0XH6l7xeeruWe9kQmUY7w1+P+DTY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzKkk5QaZ1Dv9Aewxi0zpPxQDasu+/3GAgfp9Zjutx3ntVCszMO
	5YVEBeMb+TOcn6rgztDl5GGbp7qqCrRDV8WrFQHV4Ryyp1u86WxJ+DHXRH4i2AP8zA==
X-Gm-Gg: Acq92OEFc8sgEAnOpmIjQ7f+p2XCcPonV7xlb2aQEX9yoEIz/DjK4j3+OKYWr+n2Pig
	4qKW3houYheTjyaYllmtxiXJaFmKmqolFtKdcv3TVrLn6bPpJxnLgO4/b2RVxayg5wjv+oF/G66
	k3jyI59TUSdUeivktTTo1ZoI1TegDwQQRcf+4B/lrZLgX4Yvgtk7C6u3vXtcRzq8Ulc21FmaaJO
	jymOhKT5PD8MHg9KvgpXyfaF/xp5pn30dkPxvGCaxpw5n4y+0eqbNnVZuhputqgnMZdFnU+7MwT
	f0l+lPh0N7YfcYEL/boT85AWHaM8uyd6XNaHVpks8BsxyYYipYqv31Ghld6vjXIkpCMy4d02Sfk
	9V5aowmRybekn27dVvHeyF26aBaDq6RiJr+4R3w+2rwJsu9MELpPe8yWZPvfEUwXg/nvlszK2OV
	d/V1KdRbcaT2oP14f6fUQdfgCZniQp51MOWLE5mj0w/Kvc3k8xxrFLFrpU1XgZHkC53WJU6u016
	0mXOk3ZhLlqUE4=
X-Received: by 2002:a05:600c:4e87:b0:490:3b87:be0e with SMTP id 5b1f17b1804b1-4903b87bebbmr32533925e9.29.1779375426759;
        Thu, 21 May 2026 07:57:06 -0700 (PDT)
Message-ID: <c4054fd8-5491-4cdd-8921-e058c2243f7f@suse.com>
Date: Thu, 21 May 2026 16:57:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 11/26] xen/riscv: introduce aia_init() and aia_usable()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <66ca7f49756740c3d54ac660bebf406479ed011e.1778250616.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <66ca7f49756740c3d54ac660bebf406479ed011e.1778250616.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1779375427-F4C79CF5-7C71E9F1/10/73395122804
X-purgate-type: spam
X-purgate-size: 1248

On 08.05.2026 16:43, Oleksii Kurochko wrote:
> aia_init() is going to contain all the logic related to AIA initialization.
> 
> At the moment, it only checks whether the SSAIA extension is available,
> and if so, sets is_aia_usable (which  indicates more than just the
> availability of the extension) to true; it also signifies that the necessary
> components (to be introduced in follow-up patches) have been initialized.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
albeit again with a comment for consideration:

> --- /dev/null
> +++ b/xen/arch/riscv/aia.c
> @@ -0,0 +1,23 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/errno.h>
> +#include <xen/init.h>
> +#include <xen/sections.h>
> +#include <xen/types.h>
> +
> +#include <asm/cpufeature.h>
> +
> +static bool __ro_after_init is_aia_usable;

While in an if() the is_ prefix may make sense, in most other uses (all
of the ones below, imo) it is of questionable value. I'd suggest to drop
it, but of course with the then leading underscore retained, to ...

> +bool aia_usable(void)
> +{
> +    return is_aia_usable;
> +}

... not conflict with this function.

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 15:12:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:12:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315331.1585132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ544-0007mP-Gi; Thu, 21 May 2026 15:12:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315331.1585132; Thu, 21 May 2026 15:12:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ544-0007mI-Du; Thu, 21 May 2026 15:12:00 +0000
Received: by outflank-mailman (input) for mailman id 1315331;
 Thu, 21 May 2026 15:11:59 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ543-0007mC-KN
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:11:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ543-0033VJ-1A
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:11:59 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f20a4-bab6-0a2a0a5309dd-0a2a4503e41e-22
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:11:58 +0200
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f20be-672d-0a2a45030019-d155dd33dd17-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:11:58 +0200
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-44a74032ff8so4609418f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:11:58 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eaa9366besm4275317f8f.31.2026.05.21.08.11.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 08:11:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779376318; x=1779981118; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LvYMlyj7vPTLBC16LbNCX8zaavejg+1Spx5ikv9lC9Y=;
        b=LqPlMul5PkKrubVfvH7Cfl/k6Enc91nCH4rOmM2aXLhfCPlB7izoV0dOnC1he9bur/
         zPiKwX6A6vbNzQzGlktwmy54SQqJRuLeAzuBbRQ9qywNwirN5bjN7QQMdutIK2JZlDt+
         /nMmIWoxaNZODqcv7orrGiqDCqVOulbttBdajo5ouDgCgj5qfIBzDxleNutBf4W540QT
         8pvYHAEdMVJXKzK/JLzqnnjJOUY/egPdBHBlSMCrdMg9gp0oahRR0q1zCSA0bZt1V1A2
         ZYYr3rej21Afz9ZinX+rZpbmMNa01L2JIc/DIPcFKdQ5eFXjZKol+6keb/7hE6OHFfi9
         9baQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779376318; x=1779981118;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LvYMlyj7vPTLBC16LbNCX8zaavejg+1Spx5ikv9lC9Y=;
        b=Apv3JzyE7kmWkqYZxL9p+O/XEhRgKxLJAy78CtkWUxMa39XcfQaSVm/+a9qxe0+4LP
         c93Ub69y0lmcp+Kch5Z0AYCbZ5lhZEWtkNLC4wuz/0/0glEIcuAHGgzsoshXBbAQGaY4
         Gf77uSVhX9rtkN/t5PW0J1HkeG/ooNyqcfFJvuKyZqv6p/dj7umN5Q1BiAFSca2Ry4Mt
         c/KD7IUACwBrP7YpCCIs//g5cxCjEnR3e2lDg9p1DWn4nmbkqX2myzX05iOuh3tpmAji
         YMKedVp8pDfp9BiF1XB6vftBoeWQUfbadkqpYIGfXoKOSjjFDjko26eGRYm9sOFNShzO
         qfjA==
X-Forwarded-Encrypted: i=1; AFNElJ+BB8/sWx5ZRh8byUuQGvC46Qh750jLoJY0CfKZgOf/7haJvHy4ZomdbKWbjNZufp0TAV+8s1kUCbg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxeRndQN3IcO9D1hkaWabv5XwShwR8SZ9W51mhpILlFZsahJE6N
	uLg1PsPz7CvAKjBKYywPBPFrANQpkbP/ez3YVsRlyN9ITejb9yMsD3H5K3A2BLQzkQ==
X-Gm-Gg: Acq92OFSdTE0+M7J9j05+Da7fD/LxBQLCLI0VnlQ0WG3xxdD67a6CkA1IUBWd4FMpnh
	W5Kzo8FrIM8TUflG17QzjUkXDBUpe860XWyImpr5kCG/RRNmUlMzXGFmuXjiOoJJw1FSX1plVMK
	ae0ZFyVvDr061+Tph9Jkg6rHyvHhveqEgYmV+DWqyxFZ8/7e0Ho4uvYkvpesUnDP8gX6dXoAZ0j
	XfyqfACtY/7CPdgqInq6lUsbyrr0xGFU8FCOWwTlct+pFOQ/XDcG6pegNN2V6xBG9AT/83OSI/P
	6QpfwRliRyZaZGMatC4pmz4ai6WpmrTTRAoJdjy6gJJ94e7KzZyBSJ/5M6MquNxcZYITHNRipPA
	Zk+L1yXSKjAcr4imHKLV0k6dIlzt2Xgi3aIqBcLD355+eWxyTtQrDwYAjTOrRDildYWQf4VnW3S
	AN0BK59ruu0orI+qRJ4t1DnSOAvgpeHsX9Adk3aMI4yCvgf9weSxAvQZtqdgZD8ZQWvhYnP55u6
	t4f0XgRVJlQlr8=
X-Received: by 2002:a5d:5f09:0:b0:43d:1dfe:350a with SMTP id ffacd0b85a97d-45ea3ef2bccmr5325516f8f.22.1779376318225;
        Thu, 21 May 2026 08:11:58 -0700 (PDT)
Message-ID: <45fb6481-ea0e-455e-a0cc-c5ba0caabdf7@suse.com>
Date: Thu, 21 May 2026 17:11:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 12/26] xen/riscv: add basic VGEIN management for AIA
 guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <61291bec7664e780f122ccf438091dfc1aba99e3.1778250616.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <61291bec7664e780f122ccf438091dfc1aba99e3.1778250616.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1779376318-38D73938-800B9F2B/0/0
X-purgate-type: clean
X-purgate-size: 5715

On 08.05.2026 16:43, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/aia.c
> +++ b/xen/arch/riscv/aia.c
> @@ -1,11 +1,33 @@
>  /* SPDX-License-Identifier: GPL-2.0-only */
>  
> +#include <xen/bitmap.h>
> +#include <xen/cpu.h>
>  #include <xen/errno.h>
>  #include <xen/init.h>
>  #include <xen/sections.h>
> +#include <xen/sched.h>
> +#include <xen/spinlock.h>
>  #include <xen/types.h>
> +#include <xen/xvmalloc.h>
>  
> +#include <asm/aia.h>
>  #include <asm/cpufeature.h>
> +#include <asm/csr.h>
> +#include <asm/current.h>
> +
> +struct vgein_ctrl {
> +    unsigned long bmp;
> +    spinlock_t lock;
> +    struct vcpu **owners;
> +    /* The least-significant bits are implemented first, apart from bit 0 */
> +    unsigned int geilen;
> +};
> +
> +/*
> + * Bitmap for each physical cpus to detect which VS (guest)
> + * interrupt file id was used.
> + */
> +static DEFINE_PER_CPU(struct vgein_ctrl, vgein);

Why "Bitmap" in the comment?

> @@ -14,10 +36,132 @@ bool aia_usable(void)
>      return is_aia_usable;
>  }
>  
> +static int vgein_init(unsigned int cpu)
> +{
> +    struct vgein_ctrl *vgein = &per_cpu(vgein, cpu);
> +
> +    csr_write(CSR_HGEIE, -1UL);
> +    vgein->geilen = flsl(csr_read(CSR_HGEIE) >> 1);
> +    csr_write(CSR_HGEIE, 0);
> +
> +    printk("cpu%d.geilen=%u\n", cpu, vgein->geilen);

%u please with unsigned int.

> +    if ( !vgein->geilen )
> +        return -EOPNOTSUPP;
> +
> +    vgein->owners = xvzalloc_array(struct vcpu *, vgein->geilen);
> +    if ( !vgein->owners )
> +        return -ENOMEM;
> +
> +    spin_lock_init(&vgein->lock);
> +
> +    return 0;
> +}
> +
> +static int cf_check cpu_callback(struct notifier_block *nfb, unsigned long action,
> +                        void *hcpu)
> +{
> +    unsigned int cpu = (unsigned long)hcpu;
> +    int rc = 0;
> +
> +    switch ( action )
> +    {
> +    case CPU_STARTING:
> +        rc = vgein_init(cpu);
> +        if ( rc )
> +            printk("AIA: failed to init vgein for CPU%un", cpu);

Looks like there's \ missing ahead of the trailing 'n'.

> +        break;
> +    }
> +
> +    return notifier_from_errno(rc);
> +}
> +
> +static struct notifier_block cpu_nfb = {
> +    .notifier_call = cpu_callback,
> +};
> +
>  void __init aia_init(void)
>  {
> +    int rc;
> +
>      if ( !riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia) )
> +    {
> +        dprintk(XENLOG_WARNING, "SSAIA isn't present in riscv,isa\n");
> +        return;
> +    }
> +
> +    if ( (rc = vgein_init(0)) )
> +    {
> +        dprintk(XENLOG_ERR, "vgein_init() failed with rc(%d)\n", rc);

Messages like this one, provided they're really needed, should be yet more
terse imo: "vgein_init() failed: %d\n".

>          return;
> +    }
>  
>      is_aia_usable = true;
> +
> +    register_cpu_notifier(&cpu_nfb);
> +}
> +
> +unsigned int vgein_assign(struct vcpu *v)
> +{
> +    unsigned int vgein_id;
> +    struct vgein_ctrl *vgein = &per_cpu(vgein, v->processor);
> +    unsigned long *bmp = &vgein->bmp;
> +    unsigned long flags;
> +
> +    spin_lock_irqsave(&vgein->lock, flags);
> +    /*
> +     * The vgein_id shouldn't be zero, as it will indicate that no guest
> +     * external interrupt source is selected for VS-level external interrupts
> +     * according to RISC-V priviliged spec:
> +     *   Hypervisor Status Register (hstatus) in RISC-V priviliged spec:
> +     *
> +     *   The VGEIN (Virtual Guest External Interrupt Number) field selects
> +     *   a guest external interrupt source for VS-level external interrupts.
> +     *   VGEIN is a WLRL field that must be able to hold values between zero
> +     *   and the maximum guest external interrupt number (known as GEILEN),
> +     *   inclusive.
> +     *   When VGEIN=0, no guest external interrupt source is selected for
> +     *   VS-level external interrupts.
> +     *
> +     * So start to search from bit number 1.
> +     */
> +    vgein_id = find_next_zero_bit(bmp, vgein->geilen + 1, 1);
> +
> +    if ( vgein_id > vgein->geilen )
> +        vgein_id = 0;
> +    else
> +        __set_bit(vgein_id, bmp);
> +
> +    spin_unlock_irqrestore(&vgein->lock, flags);
> +
> +#ifdef VGEIN_DEBUG
> +    gprintk(XENLOG_DEBUG, "%s: %pv: vgein_id(%u), xen_cpu%d_bmp=%#lx\n",
> +           __func__, v, vgein_id, v->processor, *bmp);

%d vs unsigned int again (and then yet again further down).

> +#endif
> +
> +    vcpu_guest_cpu_user_regs(v)->hstatus &= ~HSTATUS_VGEIN;

Is this needed when vgein_release() also does it?

> +    vcpu_guest_cpu_user_regs(v)->hstatus |=
> +        MASK_INSR(vgein_id, HSTATUS_VGEIN);
> +
> +    return vgein_id;
> +}
> +
> +void vgein_release(struct vcpu *v, unsigned int vgen_id)
> +{
> +    unsigned long flags;
> +    struct vgein_ctrl *vgein = &per_cpu(vgein, v->processor);
> +
> +    if ( !vgen_id )
> +        return;
> +
> +    spin_lock_irqsave(&vgein->lock, flags);
> +     __clear_bit(vgen_id, &vgein->bmp);
> +    spin_unlock_irqrestore(&vgein->lock, flags);
> +
> +#ifdef VGEIN_DEBUG
> +    gprintk(XENLOG_DEBUG, "%s: vgein_id(%u), xen_cpu%d_bmp=%#lx\n",
> +           __func__, vgen_id, v->processor, vgein->bmp);
> +#endif
> +
> +    vcpu_guest_cpu_user_regs(v)->hstatus &= ~HSTATUS_VGEIN;
>  }

Overall: How is one to review these two functions, when it's entirely
unclear where they're going to be called from? Among other aspects it
doesn't become clear what the behavior is going to be when
vgein_assign() doesn't find an available ID. I've therefore only
commented on mechanical aspects I noticed.

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 15:14:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:14:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315342.1585141 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ56n-00005H-08; Thu, 21 May 2026 15:14:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315342.1585141; Thu, 21 May 2026 15:14:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ56m-000055-Tg; Thu, 21 May 2026 15:14:48 +0000
Received: by outflank-mailman (input) for mailman id 1315342;
 Thu, 21 May 2026 15:14:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ56l-00004y-Cv
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:14:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ56k-003VwC-PF
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:14:46 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f215b-bab6-0a2a0a5309dd-0a2a4508b2d6-24
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:14:46 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f2166-63b5-0a2a45080019-d1558031a567-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:14:46 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-48a3e9862f0so35865385e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:14:46 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4903cadc125sm25992875e9.10.2026.05.21.08.14.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 08:14:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Content-Language:Cc:To:Subject:From:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779376486; x=1779981286; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Y1hFnFgf39MFXzRWVK0pT7fdnx6SUfADoHfPkVaztN4=;
        b=BPmVe9O+Z+l0zvrJLbvsBpSZ7XJk60KC2Nlk/MK2UxNtymz+LEIAXnmbg1Gkcb/eHk
         nAeSMF3IwN9nJ8m3/jNItByqW2IsEcitVoCWmwyl5/U7bKMSPR0akG0/Ue3c1HJ0ojFZ
         /cqGUSFoPgAJRWIvWZ7GK4M1WYVBtxSjJ++0TpXA+AT0FzyoKiUI0a9OtzCZc9i0AMa5
         GnvQAjrxEDCXrzA5sGP//CJ+Dr3OgcPYJRrtU7sdNe0474G++Q279oy+EWoVUhcwFUEB
         33IVoM55IgQzmIKCQ3DJw8vUX3dCcRRPULLyz45yguIswe8XX+4UDZyAFiMSzWkAXlEF
         dLdg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779376486; x=1779981286;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Y1hFnFgf39MFXzRWVK0pT7fdnx6SUfADoHfPkVaztN4=;
        b=Z+TX3d0k3WTNiqRnuHNO2oD9BM0Sqr1BCqnCoMLGN2moLAZu/AdBNkWaqXuvAnV+Ei
         bgp9X6TWGoowtl2XV5ynTnv09Do83EpMlXM8PtUKlOFrWI+pXI+XiR8hEgQZMHWwhWqL
         8SLO27y6y8Iu7lRnlCLfzDzHGDhUrXxW9LlOr8L1qIJ8sUa0UYLr5jg1BHrtzRN0X3L+
         cTR4PLZkuy+bHFVZ11MEBSyG1IDz2Bev1GRv4x67VvE0LFt9rVWAiGbq1jepsgmfIfzT
         YQrsrRj8qefNXwG07x91vh59eBnbiZRbubIcp7oiEI+H3bL7PUsveqEgEyXT08L99Bmn
         1liw==
X-Gm-Message-State: AOJu0Yze1BLMeiNjybOu9auHk3O+ICQ/vQBoW3g0iNu+8PNmfCCyaDAi
	4gdh8a0ixSImd11R1zafEdbHFg0A4QPzZtKzWTbypg+ooHXFri1lknV28V1w1pE9aUt8ZrPSWD7
	JAJQ=
X-Gm-Gg: Acq92OGlEAYU2uZUwbVYq8ul+Q0lKCuubGpN2vyeAOPytOGYcG+EBFCAruh921VuXub
	tb40zB5MBIYaRqoMWMMe5AwXhrUafH8iATcQ1joowQqcCAWdpv1kzte53LEs+lD773lMiFSplVW
	NpzmjcXDqQGibUW/nutKuha2/qryToEeFXUIfYRh1ngchLsOgH8G6fl6Mcc6AoK6iBKYq+fzXef
	EuNEn2Gj0AGgRLfegEpprncxwXbuV0/JbZnHPtK353IihXSFr/2PMdlHqAOQe5AegvJ06XGKMvV
	DC8ut0fjbCyuRsOJGxIxuliK1lpxh+RZhnZQ70uJiJo39xmXNsOP3NCFDZWLOQKt2H8VtYBkP7K
	uOpu6rdDJamEQiWcGeHDFTJQz4NojFwXUmr1rrsQC0Q8cJHT/nMg552Yn1zofrZmIgKItK9mBoh
	vYlE1pFjinZK4Lv1wqv1sGt5tskVXSUI8T0Gc2hi/8kRadjQufa4/BOtJk58B/qLrp5bsXYaubI
	K7Rjcbv9k+yUEE=
X-Received: by 2002:a05:600c:1f87:b0:490:3cf0:8d81 with SMTP id 5b1f17b1804b1-4903cf08f14mr21717005e9.13.1779376486045;
        Thu, 21 May 2026 08:14:46 -0700 (PDT)
Message-ID: <738daea9-ebec-4299-b0f9-49448293106d@suse.com>
Date: Thu, 21 May 2026 17:14:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/4] x86: Misra rule 13.6
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1779376486-BC766DB1-ED520447/0/0
X-purgate-type: clean
X-purgate-size: 319

1: shadow: split get_unsafe() invocations
2: shadow: avoid sizeof(this_cpu(...))
3: P2M: split a read_atomic() invocation
4: PV: split a get_unsafe() invocation

This takes care of all 77(?) violations of this rule, according to
https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2543797752.

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 15:15:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:15:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315348.1585149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ57X-0000c1-85; Thu, 21 May 2026 15:15:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315348.1585149; Thu, 21 May 2026 15:15:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ57X-0000bu-55; Thu, 21 May 2026 15:15:35 +0000
Received: by outflank-mailman (input) for mailman id 1315348;
 Thu, 21 May 2026 15:15:34 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ57V-0000bk-Rh
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:15:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ57V-0034aG-8K
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:15:33 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f2177-e002-0a2a0a5209dd-0a2a45098682-46
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:15:33 +0200
Received: from [209.85.221.42] (helo=mail-wr1-f42.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f2194-2497-0a2a45090019-d155dd2ab115-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:15:32 +0200
Received: by mail-wr1-f42.google.com with SMTP id
 ffacd0b85a97d-45ea19f412aso781019f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:15:32 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eaa756d61sm3580079f8f.0.2026.05.21.08.15.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 08:15:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779376532; x=1779981332; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zvnwyGfWO+aykVDdTfFo9jZYML1o5FaJFSxKnq9Hzn4=;
        b=aBn1uyVoPp4b2+wqaKqJOveD4ILEPhHKNlOBYOXh24Kr7O9ouKUWeV8qxAIbLT/rm5
         GLMiYGhbF4lD8BAnPVNMsdDinCyLTGZNu0xuBmZLGgxb7HsM0KYxceadpvoaZ08UjHt6
         yiKnkvVhYsMkqvh4RYtV3cS12kkwYPRS18s1F3SHDoVtxG/ENJ2xEFpXJ67UvcfJu2ua
         HazSs5lqI1ret2YIDb+MdLEfnI7kF61+nq3eWOPa88Joi4i9NrJP5m9xBUvv/k6KmPJ2
         8txUxQZUCmA+XlStu4lSSCDNDRt2OkxRd5tdNKHomYQNAzGDWjv3nNfwMXjcinuq1HQm
         EKXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779376532; x=1779981332;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zvnwyGfWO+aykVDdTfFo9jZYML1o5FaJFSxKnq9Hzn4=;
        b=SPQF52GUCbZHMBmVW3ZWXINbADH5cqHnvxcH6yQ6HQ0DdHdMMFduxFHxP2xUjxQ/7A
         oqgaRaYwdNYMzZJc8G2xX1hHJ0RTsuzRuuKzqQnUFK9LFYM3VmWSoZzVtvBrQCby/xAe
         x/CSimEbnl0L9fTVz++fXtFxXYbEYjgwL9Qv0+hNYbZz3GNVUp2H7njFvqMOtGuxQoQk
         3CiVArQncnle66JMfO16ijHQRYyXNPY0JsHyMHB0TAOmzThk2iNWZcRWxe+b1h4m0txe
         1x7fC1lkZ+vsGPuJxCzn3zl0zpdrLwYFK+XBL6g/smI5JKyfAYFGMKANEgcR7qvWYYYN
         w+eA==
X-Gm-Message-State: AOJu0YxUz0HJZiuTsKsHAKkaOvOJ4RBFCksStVslbumynBZ5UEiaACf1
	I0cy68bVSE37TduPoORXHBwZEDH4HPcoTBp48R3NbTLlSo5QOv7UvKU2GlKzq+ubukiSDvPi2dD
	yqBg=
X-Gm-Gg: Acq92OH88Uua0Vo+UJdx4QjOT4l+KUNTHYshS3qcNbUf+rhZSjQ/Uc9t8BeWH2ywuBL
	CEx3YfgcZZBxoN/+B4AaHcQ0Xlm0vEQBrx/GimHj5kCMx58fV44D4VFmPb6K+dT8AF3Bn2dQYtS
	rOO4u8n8zgofQRSrUqv1K4PeVsnsmYOzFR9Y159svgOhG31QUkVwSzPZt3U/6C0KIyl0Yrk1s/F
	PtDgMERZxjvspRJthR8kU5Jer31RNsUf5Zm9eRVm6yPY1ZDSLwkmS20Hairb0XwkvfHiMArKk04
	H6iqDedDuOImbCThieu9KB1T9+NqSG/oE/ucQUbRqvdhUo356nmmkXMP4WTx19SnAS/bG1B5tIU
	VVM4LxV/XmxMwt8eDdZNlO4gXLFpxY/QjXqkgT9p8MvOCyQ/gThr1TwnIG6WVVTLszI42gbWQ/r
	Vfq3ITOWTc6SZCIic2Zdmjx3eREqUBaDGe05itiZ679aLuPXiDCoicpYThqQPrlADkijTuSb0XT
	QzsXmkRDHhPuZ4=
X-Received: by 2002:a05:6000:41e5:b0:45e:a19f:22e4 with SMTP id ffacd0b85a97d-45ea3ef2dc8mr5634208f8f.17.1779376532074;
        Thu, 21 May 2026 08:15:32 -0700 (PDT)
Message-ID: <f532fc29-f3cc-484f-b137-c3f8d04279fb@suse.com>
Date: Thu, 21 May 2026 17:15:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/4] x86/shadow: split get_unsafe() invocations
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <738daea9-ebec-4299-b0f9-49448293106d@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <738daea9-ebec-4299-b0f9-49448293106d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1779376532-8B790A53-F1F82B1D/0/0
X-purgate-type: clean
X-purgate-size: 4442

Misra C:2012 rule 13.6 takes issue with is_hvm_vcpu() uses (deep) inside
sizeof(), as used by get_unsafe(). While sh_linear_l1_table() doesn't
involve is_hvm_vcpu(), the rule there kicks in for "call to function
`__builtin_expect(long, long)' (unevaluated `nothrow' call effect)".
Break out the address calculations.

This, overall, turns out to also improve generated code (with gcc15 at
least). No functional change intended.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -2197,16 +2197,19 @@ static int cf_check sh_page_fault(
 #if (SHADOW_OPTIMIZATIONS & SHOPT_FAST_FAULT_PATH)
     if ( (regs->error_code & PFEC_reserved_bit) )
     {
+        const shadow_l1e_t *psl1e;
+
 #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC)
         /* First, need to check that this isn't an out-of-sync
          * shadow l1e.  If it is, we fall back to the slow path, which
          * will sync it up again. */
         {
             shadow_l2e_t sl2e;
+            const shadow_l2e_t *psl2e = sh_linear_l2_table(v) +
+                                        shadow_l2_linear_offset(va);
             mfn_t gl1mfn;
-            if ( (get_unsafe(sl2e,
-                             (sh_linear_l2_table(v) +
-                              shadow_l2_linear_offset(va))) != 0)
+
+            if ( (get_unsafe(sl2e, psl2e) != 0)
                  || !(shadow_l2e_get_flags(sl2e) & _PAGE_PRESENT)
                  || !mfn_valid(gl1mfn = backpointer(mfn_to_page(
                                   shadow_l2e_get_mfn(sl2e))))
@@ -2222,9 +2225,8 @@ static int cf_check sh_page_fault(
 #endif /* SHOPT_OUT_OF_SYNC */
         /* The only reasons for reserved bits to be set in shadow entries
          * are the two "magic" shadow_l1e entries. */
-        if ( likely((get_unsafe(sl1e,
-                                (sh_linear_l1_table(v) +
-                                 shadow_l1_linear_offset(va))) == 0)
+        psl1e = sh_linear_l1_table(v) + shadow_l1_linear_offset(va);
+        if ( likely((get_unsafe(sl1e, psl1e) == 0)
                     && sh_l1e_is_magic(sl1e)) )
         {
 
@@ -2879,6 +2881,7 @@ static bool cf_check sh_invlpg(struct vc
 {
     mfn_t sl1mfn;
     shadow_l2e_t sl2e;
+    const shadow_l2e_t *psl2e;
 
     perfc_incr(shadow_invlpg);
 
@@ -2897,6 +2900,9 @@ static bool cf_check sh_invlpg(struct vc
 #if SHADOW_PAGING_LEVELS == 4
     {
         shadow_l3e_t sl3e;
+        const shadow_l3e_t *psl3e = sh_linear_l3_table(v) +
+                                    shadow_l3_linear_offset(linear);
+
         if ( !(shadow_l4e_get_flags(
                    sh_linear_l4_table(v)[shadow_l4_linear_offset(linear)])
                & _PAGE_PRESENT) )
@@ -2904,9 +2910,7 @@ static bool cf_check sh_invlpg(struct vc
         /* This must still be a copy-from-unsafe because we don't have the
          * paging lock, and the higher-level shadows might disappear
          * under our feet. */
-        if ( get_unsafe(sl3e,
-                        (sh_linear_l3_table(v) +
-                         shadow_l3_linear_offset(linear))) != 0 )
+        if ( get_unsafe(sl3e, psl3e) != 0 )
         {
             perfc_incr(shadow_invlpg_fault);
             return false;
@@ -2925,9 +2929,8 @@ static bool cf_check sh_invlpg(struct vc
 
     /* This must still be a copy-from-unsafe because we don't have the shadow
      * lock, and the higher-level shadows might disappear under our feet. */
-    if ( get_unsafe(sl2e,
-                    (sh_linear_l2_table(v) +
-                     shadow_l2_linear_offset(linear))) != 0 )
+    psl2e = sh_linear_l2_table(v) + shadow_l2_linear_offset(linear);
+    if ( get_unsafe(sl2e, psl2e) != 0 )
     {
         perfc_incr(shadow_invlpg_fault);
         return false;
@@ -2968,9 +2971,7 @@ static bool cf_check sh_invlpg(struct vc
              * have the paging lock last time we checked, and the
              * higher-level shadows might have disappeared under our
              * feet. */
-            if ( get_unsafe(sl2e,
-                            (sh_linear_l2_table(v) +
-                             shadow_l2_linear_offset(linear))) != 0 )
+            if ( get_unsafe(sl2e, psl2e) != 0 )
             {
                 perfc_incr(shadow_invlpg_fault);
                 paging_unlock(d);



From xen-devel-bounces@lists.xenproject.org Thu May 21 15:15:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:15:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315350.1585159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ57q-0000yp-G7; Thu, 21 May 2026 15:15:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315350.1585159; Thu, 21 May 2026 15:15:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ57q-0000yP-Bs; Thu, 21 May 2026 15:15:54 +0000
Received: by outflank-mailman (input) for mailman id 1315350;
 Thu, 21 May 2026 15:15:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ57o-0000wa-MI
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:15:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ57o-003RkT-2S
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:15:52 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f21a1-5cb7-0a2a0a5109dd-0a2a4506e020-24
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:15:52 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f21a7-7371-0a2a45060019-d155802adcd2-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:15:52 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-48909558b3aso64242765e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:15:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d44705sm66282045e9.4.2026.05.21.08.15.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 08:15:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779376551; x=1779981351; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=e9nzObur1F+0YwQCb6VhkGWkPYh337ms8dSLVHnK8/g=;
        b=BeKLZX7ZXrauQCVGn9sXH84rl2NRsW/wVif+S5VD/UkvBRea52t+b71bF3nATntSAt
         cWUXUW9PjeSoCPklrNLy3jOaWDS1Q02CSmO749kLUtBYffEs4syz93W75qmhPZpw4Pw7
         BMChFHVP3BYMPytDIx9ZoTk6rSU1uNJwyFlh2gmpfbWbkA41G7eY1aYDClihU1e5UB5V
         KTk0EAWnRmrwJK4yS2xAqIK1Bg6/3UctMPNIgUk4ENmZQsjalAWCNX1fztbrYcANmfdK
         cwoIQmh6irfeqsYrkrhz6KEnGWSva+jNK/3kpjz3bZL1uOvpN7cCuB0liGTlip62Qxhf
         wyCw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779376551; x=1779981351;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=e9nzObur1F+0YwQCb6VhkGWkPYh337ms8dSLVHnK8/g=;
        b=ic56ntJm9QTMA5hzyWiMJThjskw1zyppxaEuDQha+wQ71lYdBYEwuNWnVQIzMuTlZa
         mQ5dSZAEBm5DQpr1omT3tZt95qcfUVh9H9bnUCxlrO7z8b1gddrIdmOBEPgmbHyl4aXA
         80QGDsyDjoxSxOXSdrVzkcvEsJPjR/CPMGOFxTgFHlLDQbPoa++nXKDyqq8tw5ZNrvcb
         nDwxX3pcCR1m1D0b9CmrB0M+BFSB4TEZbui3PhhR5cYaX5GQKZzXVG6TbfbE+IkCAEmN
         aRzaQv8kgWpTLLvSDdmqMfNkyywcnBxsvCqfFC8pnJdzWBT54ILDKAJTHtnAp2Pxyr9n
         aw7Q==
X-Gm-Message-State: AOJu0Yx44pZToT/OQZbvwgAzV1cMogN/8Vk2k6aOycNmu/ddfydx1EL8
	M4QnOqSL1nu4bGzDX1anuq3AvzH3UcDFC1lryZlb4nYI06kyUThjU+Ni2qGajdVybKSshjw4xVz
	I79U=
X-Gm-Gg: Acq92OHDJZQ//GjLbUB0e6pqrtA+yy8SQUY0ksVncnfey8xFwSKZCG1AqFgQ9l04gPI
	wn8Wj8KVtM7YWgxZ9s7cd/UkwliNqmB3prBbQ8mQ9S+cvKNjLOlnWpNCHNebTIrDoTIavR7jcaY
	GZsO19a3rBGxc9Cf3tTQ6CH02/g9//cFzsRofl9gX4PCl4jv4SNgpJusjrz3nJCJwphW90/9A6v
	KQ1GRonVtdb035OBHSEAxxXVkJVioBY6r2SZpFy1WIC+MoK3Qx/hw4GpotSWTK67Vrl7SA4OBZy
	/nrAxvBOyD91Q36zna093kecAAM8uN27u5MzX/N4TjBNhw+5Af+wCa9UXiZwtyW3W3gftpgE+0k
	g517nn5RXqguiTEADDB2DAryDmWxY6+J8Dwd5WZzxp1jncw+pYpiURxQVMMmzeVXi+0BHSzEkoU
	3PCd/IJndWZLjA87NJuH8lUj9/7nfhldk13Bw5HqnjzWfF8ui9AP+pN+FPeK/OkM8kTEUyRxATL
	5M7kNnxRXvyYuJQ3cvqQqaHAA==
X-Received: by 2002:a05:600c:81c9:b0:490:3cec:52f5 with SMTP id 5b1f17b1804b1-4903cec55f5mr29327415e9.2.1779376551501;
        Thu, 21 May 2026 08:15:51 -0700 (PDT)
Message-ID: <3e70e912-cb57-42ba-88a9-45e9e3ebab49@suse.com>
Date: Thu, 21 May 2026 17:15:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/4] x86/shadow: avoid sizeof(this_cpu(...))
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <738daea9-ebec-4299-b0f9-49448293106d@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <738daea9-ebec-4299-b0f9-49448293106d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1779376552-7F77FD75-61876E58/0/0
X-purgate-type: clean
X-purgate-size: 1607

Misra C:2012 rule 13.6 takes issue with RELOC_HIDE() uses inside sizeof(),
as used by this_cpu(). Latch the address of the per-CPU variable into a
local variable, and use that in the two sizeof().

No difference in generated code for 2- and 4-level code. There's a small
improvement for the 3-level case.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -2057,22 +2057,24 @@ static DEFINE_PER_CPU(guest_l1e_t, trace
 static void cf_check trace_emulate_write_val(
     const void *ptr, unsigned long vaddr, const void *src, unsigned int bytes)
 {
-    if ( bytes > sizeof(this_cpu(trace_emulate_write_val)) )
-        bytes = sizeof(this_cpu(trace_emulate_write_val));
+    guest_l1e_t *pval = &this_cpu(trace_emulate_write_val);
+
+    if ( bytes > sizeof(*pval) )
+        bytes = sizeof(*pval);
 
 #if GUEST_PAGING_LEVELS == 3
     if ( vaddr == this_cpu(trace_emulate_initial_va) )
-        memcpy(&this_cpu(trace_emulate_write_val), src, bytes);
+        memcpy(pval, src, bytes);
     else if ( (vaddr & ~(GUEST_PTE_SIZE - 1)) ==
               this_cpu(trace_emulate_initial_va) )
     {
         TRACE_SHADOW_PATH_FLAG(TRCE_SFLAG_EMULATE_FULL_PT);
-        memcpy(&this_cpu(trace_emulate_write_val),
+        memcpy(pval,
                (typeof(ptr))((unsigned long)ptr & ~(GUEST_PTE_SIZE - 1)),
                GUEST_PTE_SIZE);
     }
 #else
-    memcpy(&this_cpu(trace_emulate_write_val), src, bytes);
+    memcpy(pval, src, bytes);
 #endif
 }
 #endif /* CONFIG_TRACEBUFFER */



From xen-devel-bounces@lists.xenproject.org Thu May 21 15:16:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:16:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315357.1585168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ58B-0001TJ-Nm; Thu, 21 May 2026 15:16:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315357.1585168; Thu, 21 May 2026 15:16:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ58B-0001TC-Kq; Thu, 21 May 2026 15:16:15 +0000
Received: by outflank-mailman (input) for mailman id 1315357;
 Thu, 21 May 2026 15:16:14 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ58A-0001Si-IV
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:16:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ589-003Yqh-VT
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:16:13 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f21b8-2eae-0a2a0a5409dd-0a2a4503c630-8
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:16:13 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f21bd-672d-0a2a45030019-d1558030e4b6-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:16:13 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-490388fd0dbso7639275e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:16:13 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49035edbe84sm27887945e9.7.2026.05.21.08.16.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 08:16:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779376573; x=1779981373; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6bGHdzAN+VK7CfE++mZcONV/aWnaflTw/8Fi0RlMYa8=;
        b=MyiA3fb+2kbpc1UugVcAO5G7R5yxAXFbHlM7gc2C8+RvqAYeMd8KvIL/hW36uLVrMq
         WRHMe8ydoJjf2nUXL5MDeXSWZLUr2JSNJJW7D2UpzJpn59mAJvWojAf+2bTnHV964EZY
         xl9JXKqmqe73CpAPhqGhTv2728w+uWl+KxGq6SUQKjeRWEx1zLP8XPSR5bfVfmAr0PJh
         BxcWIeVO34zqoyxT8+VVNkz3kW4FJWp/puiNVt/aR4jJgpOceZhipLyEA+WzOYPhjbNJ
         B8LQRwDDAm5mPwoBpWjXOR4hPelJKg3TJ3vUsxbqedLYSZGD6L14N5LxJ+XEIDbq35To
         dI1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779376573; x=1779981373;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6bGHdzAN+VK7CfE++mZcONV/aWnaflTw/8Fi0RlMYa8=;
        b=G/MDXhzolCTtk11clI77qYcA1OtYrxGBx+CM6zszhgL6pzvI1redvrzR5U2h8urCQz
         fQXKSqzGsATAYvGfGwsLI2V9a5NcnxB3ia1EXn83ylMTUxFWTyTaFMZV8t2ec4uU5yI9
         0BfKP3/i8k3Xd8eaxJiJ8Otv4hwd10L+pejzF434UYtGbsx3K7ePEIrUiVMHP+hizgaW
         DVoKxVRdty/BlGlVpKPwjTlf/PqTY29b31djF9csMm8Rs9OX/jb0veghSLexinAYwjt6
         TPOZf7bduzi3bMGnQ5EytKHzDGlDGaAUBn5TpMn0suIVdhqNeNijaiMhLEK0l9uEjJ7d
         5Krw==
X-Gm-Message-State: AOJu0Yw9Xlv8tXGWSVY+Fm20ySgDzXN2wSyE+wHGw8q03sH3JpYtQDqo
	UdtS9ca3Fc00K5OBSwG2z8bycupxx2mYtoFp03NaQpKcqFvw76UogAORTP3qssY58mtyJw03eAn
	kkhY=
X-Gm-Gg: Acq92OEjO6WXcjFxVk+F3b/hdSwQIAruTFIRkMaiQdC+mEoBODQsoZU6mm26SlDcesQ
	xp/b7A0eYnJV7F9tMT85wEXXTVeIPQpKdk1JxUCW9TGATju+PSxRh1YIJQs5z0nlK4VUV2ayCiu
	gXwM4LYkZsu22O8cC7B3UjY+b78r3moYDhk13ARTeHIAODus4K1raP40B8xxtkHS22mcsvT8ezC
	jx+6qUOfNJG5rMTkNKiq47HRJM/6niIbkmUtlFdTkIkHdN0UvSjQ3mGmtehVDnIUNaWy7YNTLzY
	VIoNeyXnScVfaN/xt3S+9YLKBIjqMGV0H0wcymUb47+3GXvlAENvidLyOkvTi1Ff8RwqVo1u0W3
	lm9ZS7RTcr8hWDd8pRx77euVzUV86WKkEneMd8JDxYzh5jSPGtWUr7RkFo8YHCg9HqBzV91jSC+
	h0VJSFfDPKePRRGfBng6PRcAmuw6l6VboJEB38UfQnabRkFEiiqBMOz+dne+w43RLb5SelWlEAs
	eBqbAO0r/tnNck=
X-Received: by 2002:a05:600c:35c8:b0:490:3d62:f5e1 with SMTP id 5b1f17b1804b1-4903d62f8e7mr24151155e9.22.1779376573232;
        Thu, 21 May 2026 08:16:13 -0700 (PDT)
Message-ID: <80d2e824-e6ae-47c4-ba92-e023129ff209@suse.com>
Date: Thu, 21 May 2026 17:16:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 3/4] x86/P2M: split a read_atomic() invocation
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <738daea9-ebec-4299-b0f9-49448293106d@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <738daea9-ebec-4299-b0f9-49448293106d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1779376573-40E68938-C04A9F94/0/0
X-purgate-type: clean
X-purgate-size: 1122

Misra C:2012 rule 13.6 takes issue with pfn_to_pdx() and mfn_x() uses
(deep) inside sizeof(), as used by read_atomic(). Break out the MFN ->
struct page_info * translation.

No difference in generated code, except for a line number change.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -1332,6 +1332,7 @@ int set_shared_p2m_entry(struct domain *
     p2m_access_t a;
     p2m_type_t ot;
     mfn_t omfn;
+    const struct page_info *pg;
     unsigned long pg_type;
 
     if ( !paging_mode_translate(p2m->domain) )
@@ -1345,7 +1346,8 @@ int set_shared_p2m_entry(struct domain *
     ASSERT(mfn_valid(omfn));
     /* Set the m2p entry to invalid only if there are no further type
      * refs to this page as shared */
-    pg_type = read_atomic(&(mfn_to_page(omfn)->u.inuse.type_info));
+    pg = mfn_to_page(omfn);
+    pg_type = read_atomic(&pg->u.inuse.type_info);
     if ( (pg_type & PGT_count_mask) == 0
          || (pg_type & PGT_type_mask) != PGT_shared_page )
         set_gpfn_from_mfn(mfn_x(omfn), INVALID_M2P_ENTRY);



From xen-devel-bounces@lists.xenproject.org Thu May 21 15:16:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:16:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315362.1585176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ58b-00022R-4e; Thu, 21 May 2026 15:16:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315362.1585176; Thu, 21 May 2026 15:16:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ58b-00021e-12; Thu, 21 May 2026 15:16:41 +0000
Received: by outflank-mailman (input) for mailman id 1315362;
 Thu, 21 May 2026 15:16:40 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ58a-00020x-3k
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:16:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ58Z-003Z2j-GX
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:16:39 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f21bb-2eae-0a2a0a5409dd-0a2a45088aba-42
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:16:39 +0200
Received: from [209.85.221.45] (helo=mail-wr1-f45.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f21d7-63b5-0a2a45080019-d155dd2dc9cf-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:16:39 +0200
Received: by mail-wr1-f45.google.com with SMTP id
 ffacd0b85a97d-44c350a5b87so3873316f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:16:39 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eaa93633esm3379919f8f.29.2026.05.21.08.16.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 08:16:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779376599; x=1779981399; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ue6MJCifdDmqf3KI6DMAmEDDdKTWNNcG8m4U1J10AgM=;
        b=da/z+UGgduY4k6zmNdPMiSdGUaeU/QK+ikV5dC2cRCvCwOifyopJxV7LNgtvlK5mP7
         4aaBRj9SCWlY+PwKJvnBOBpw4mi2C3Lc4qplxZxlidl38D8IBjF8bLxERL7nJt9uZx1z
         XMvdgEJY9/L7zsMbbKn20LsXVJreIQESBXag8FEjDfvTDanb1pNAfE/yYNKhMTJPFcIn
         KFqDrqJ1QqDk6IC8rrDJOtE1y4x/3p2ofFdwQv5vNkF4xsXI7l2ppfhQW7lc+bMZlM8+
         x4Qv69Zg8cZD1KAAoIasA2qu49FAXDmEF0kGZHmf0X+vK3unPfLHN38FZXDCQ9+2lGYl
         rtqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779376599; x=1779981399;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ue6MJCifdDmqf3KI6DMAmEDDdKTWNNcG8m4U1J10AgM=;
        b=o1xItSaCMcdJa+95arABNQjZfI+XH/QrwAFYJnKhvvnHS/4fti4t+aMdspuM/M5A59
         aplztgqcnL3qCXbSa5a5m7VH7B3l+Y3u25Ostb8aqolIdrf+oi+8BFasXQ849JYEd+Px
         ftro2PuTosuGkGs1yW9VXc+XHaRClT96/4b4Ghf64at0j15SFYG5iVcuNC5ntmhUdfO7
         vzzXemSY9jY2qq+FYsytK+XRRj8RYY/icmYGsD5niAhUqiW0nhzmLLWowfgd3Ba0SRqT
         qF2fkM1FFmWqWBG7Nvck70JWgIsdY0zdL7oPeoZWNXFIWUpGhPbDlRyDilO2h/ctZDGp
         oOTg==
X-Gm-Message-State: AOJu0YxtNI8Fj1bjI2sNe/4N4df4kGti/cmgFKY5gBJF60ZZ543K6OfI
	jwgK9OGS8UurJmZ60Ud5l/+64nISwGlJl3LrHrPxgn5x6+mbGDtCnVda8Swx2BtGLJ3XHdtXB8N
	OQUs=
X-Gm-Gg: Acq92OEKbRcrFAdSSwdUycA3auO+JhVMBPvngZsXNpa4Ojk1qqCUN9l9Grg2L88Ls2z
	/XeXcFBhUv89D2dTfQp23Rj+vdV0Dji971i1KSTHp/fCKLoXWxcC36irJprHl1f7zU4KHn5J69Q
	437yrXOabYiUoakD8A15PJE2Z/7ihKV1Xstz9/GE6jAVECE3ZqRiy/Dq+HcZh7LIlY5muImupc8
	YfVS7zq4ZNcB4Cwg+cc8/v12y21Jkg0jt6YuI3nHsEjBshgLMhg7LPNFs+DNsmXSHpBwE+S9E0O
	H2rOx6RUWU0+jvIeOPP9ATy9qMkNyRzSsGeK4nO41I9V4IB+m/Xnbld28owHeJ+m8dfvvyfX6j+
	//BghJrN7gGXM6cFEljVmhhe3yMOx6y4EYQejWRSOcYLRnDGoCeO2knIjuQbgzSolFyahxmnFrx
	4nC0oB1+oMRf6QVt91b0VrJxZzSDZXPdzg/fSgZWT99ina+a8qx4TzJcaxBEIT//o3O3Qe31nhG
	qd1j2a6HCqfum8=
X-Received: by 2002:a05:6000:144c:b0:44a:fa76:5193 with SMTP id ffacd0b85a97d-45ea3be6259mr5275958f8f.12.1779376598853;
        Thu, 21 May 2026 08:16:38 -0700 (PDT)
Message-ID: <e8932c52-c030-492f-af87-d37f87ea8f45@suse.com>
Date: Thu, 21 May 2026 17:16:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 4/4] x86/PV: split a get_unsafe() invocation
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <738daea9-ebec-4299-b0f9-49448293106d@suse.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <738daea9-ebec-4299-b0f9-49448293106d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1779376599-BF57FDB1-E5F5B64C/0/0
X-purgate-type: clean
X-purgate-size: 748

Misra C:2012 rule 13.6 takes issue with the gdt_ldt_desc_ptr() call
appearing (deep) inside sizeof(), as used by get_unsafe().

No functional change intended.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/pv/emulate.c
+++ b/xen/arch/x86/pv/emulate.c
@@ -29,8 +29,14 @@ int pv_emul_read_descriptor(unsigned int
           */
          ((sel & 4) && (sel >> 3) >= v->arch.pv.ldt_ents) )
         desc.b = desc.a = 0;
-    else if ( get_unsafe(desc, gdt_ldt_desc_ptr(sel)) )
-        return 0;
+    else
+    {
+        const seg_desc_t *pdesc = gdt_ldt_desc_ptr(sel);
+
+        if ( get_unsafe(desc, pdesc) )
+            return 0;
+    }
+
     if ( !insn_fetch )
         desc.b &= ~_SEGMENT_L;
 



From xen-devel-bounces@lists.xenproject.org Thu May 21 15:24:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:24:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315382.1585186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5Ff-0004VA-Pq; Thu, 21 May 2026 15:23:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315382.1585186; Thu, 21 May 2026 15:23:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5Ff-0004V3-N6; Thu, 21 May 2026 15:23:59 +0000
Received: by outflank-mailman (input) for mailman id 1315382;
 Thu, 21 May 2026 15:23:58 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <luca.fancellu@arm.com>) id 1wQ5Fd-0004Uw-N5
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:23:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ5Fc-0036G1-Sy
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:23:56 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a0f2386-5cb7-0a2a0a5109dd-0a2a4509e4da-6
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:23:55 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTP (eXpurgate 4.56.1)
 (envelope-from <luca.fancellu@arm.com>)
 id 6a0f238a-2497-0a2a45090019-d98c6eacdb88-1
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:23:55 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4DC8A3AEC;
 Thu, 21 May 2026 08:23:49 -0700 (PDT)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2B1893F7B4;
 Thu, 21 May 2026 08:23:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="From:To:Cc:Subject:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1779377034; bh=ZLS2R0ODszTvUfzv4/d3UVm1fR2E1lJ3y4YDzpaln+Y=;
	h=From:To:Cc:Subject:Date:From;
	b=GGENntoz+mw/BDQBdp0U7LAS3cINuxj5V+T37s7xnymFs/faiVL6+vFy8xp5m0kn3
	 v6MfRNKI3cCiFJHiYOKZ0xD8jON7O22JdCWdSyW3uXg5VVcLJhO1JkgBXPUOic8xmJ
	 xdVTHvOSgOnkrnyCl3RvaQJ7hzu7+5GdeZJwe4L4=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH] tools/tests: Fix paging-mempool xen_pfn_t format strings
Date: Thu, 21 May 2026 16:23:44 +0100
Message-Id: <20260521152344.2050899-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779377035-8A18BA53-4B5C5189/0/0
X-purgate-type: clean
X-purgate-size: 1575

xen_pfn_t is not an unsigned long on all architectures. In particular,
Arm32 builds see it as a 64-bit type, so printing it with %lx triggers
a -Werror=format build failure.

Use PRI_xen_pfn for the GFN diagnostics instead.

Fixes: 66c982a5d3614 ("tests/paging-mempool: Extend to test P2M relocation")
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 tools/tests/paging-mempool/test-paging-mempool.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/tests/paging-mempool/test-paging-mempool.c b/tools/tests/paging-mempool/test-paging-mempool.c
index 3c87925288f1..9dd605f1ab3e 100644
--- a/tools/tests/paging-mempool/test-paging-mempool.c
+++ b/tools/tests/paging-mempool/test-paging-mempool.c
@@ -208,7 +208,7 @@ static int check_guest_marks(xen_pfn_t gfn, uint32_t mark_start, size_t count)
         if ( errs[i] )
         {
             rc = -1;
-            fail("    Fail: check mark unable to map gfn %05lx: %d\n",
+            fail("    Fail: check mark unable to map gfn %05"PRI_xen_pfn": %d\n",
                  gfns[i], errs[i]);
             continue;
         }
@@ -216,7 +216,7 @@ static int check_guest_marks(xen_pfn_t gfn, uint32_t mark_start, size_t count)
         if ( *mark == exp )
             continue;
 
-        fail("    Fail: check mark: gfn %05lx expecting %08x (%u), got %08x (%u)\n",
+        fail("    Fail: check mark: gfn %05"PRI_xen_pfn" expecting %08x (%u), got %08x (%u)\n",
                gfns[i], exp, ~exp, *mark, ~*mark);
         rc = -1;
     }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu May 21 15:24:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:24:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315383.1585194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5Ft-0004no-0A; Thu, 21 May 2026 15:24:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315383.1585194; Thu, 21 May 2026 15:24:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5Fs-0004nh-Tn; Thu, 21 May 2026 15:24:12 +0000
Received: by outflank-mailman (input) for mailman id 1315383;
 Thu, 21 May 2026 15:24:11 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ5Fq-0004mv-Ul
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:24:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ5Fq-0036JO-BH
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:24:10 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f2391-5cb7-0a2a0a5109dd-0a2a450ce70e-14
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:24:10 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f239a-62f1-0a2a450c0019-d1558031b068-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:24:10 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-49039a8851fso8598665e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:24:10 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49035eba897sm24488015e9.5.2026.05.21.08.24.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 08:24:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779377050; x=1779981850; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hvXeXBmk/ojxOflt/rgGxdITeIRsZsBqbgGoZkEHDfQ=;
        b=YxDT0mD9yGoHHURG1NdnoboPEuXDLicbohCV3nqEq0fZdq3uuQ67HnhcJUIcHUX9q7
         5l2gfGliAQKaQCzKPbZJNVIi0KQb2Mh3KQfoZ25/SrNyd8RT6Yjja2+nmW0B6iRDC2eU
         dkHBfh8CEGV+kmT5+BmRbMgCCCOEUYPthjXcf0YcLzlyqboJjO1SqZIVSrMVGyDeZy87
         mLJBO0rKB/QO9aRPGtgJcAiqU8iTPUPBwpHKRFT3kow8Fw20EihUPkUx/h67ZRtSVWzo
         8bRGGeXarwSPvC0W7qodqigL+sA41tXjYRgf7lixHx1zcA9moBUfu3qao43icFqE0lCU
         90tQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779377050; x=1779981850;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hvXeXBmk/ojxOflt/rgGxdITeIRsZsBqbgGoZkEHDfQ=;
        b=FmFrJvxP21z0GUF5mf6vs8VM6/YhUnzSY73kuhS44dL7cSlu96Sz9BdLARqZ9VMQI1
         2TUmvknp1KBRE1i4x/PUyE52uj0BaAPbNS56xVyUVpi5UUv142A3VP1u69k7ZW3JHDYI
         KfT4/y9YeJuVmzJ8x7VZatBVBj1vGWftp8kXGSptz0sEXjMG16BhJchMOSmVaMgj5GX7
         EkNzNSC2nhssxexjqEgeKsFdbw6OjgA0UOC6GreFTnIteDqfG9uvhqPUy1WSTBqP3AQX
         yhdQN52Nxi6+QqIA9ylAuw8BNriMRfcxbYaM2j6pWDSlwTsx+mb7frJn3en6Jm4VX1C9
         8NnQ==
X-Forwarded-Encrypted: i=1; AFNElJ/IvqaBsMS6o94e+BUgnZ/j2IFe9iOrbYnf+MQLN8eHJ37/UIU32yUsbM4hWsy1AQbtMgY7DYGfXe8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyy64onu2FB++xjgrFgQh0u0EzUzGoiujNX2swCAkLwBZj+lCzD
	S0vO93Ps0PGZNQ16MAEjZJmAvVD0h8VtReJzf6+mynvHHOlt0+LyR2TSBCJgJytDKw==
X-Gm-Gg: Acq92OFMcUdeHipbo/BA9+GtIXg9vBMJy2s8OTDFvE0WoWGjBoJrpy6LJ1GsJ1Hd9KN
	z8DOOyxUSYoOLpfQgZTFoaOqjMzlCiSufEJC4lixFSQ3bn3XUCuKeYA0CXkSx7NSu47VXKShe2H
	7z0gCswkA2qL5EuahXzbxBBTux4TUUuB+YCmiEkKfrV1NTxRvy5jZC0PP0Oy9p5N8YinJYHQhfX
	q3bEMGSbgNpMWhj1wCDG/s1VFzkdc4LTmUtquxHT7qwW/OXTIuP8Ht7ltcgkdghcNjq328SNwF6
	2SXbDMyFg/DTHleGwcFZPB9Zsv+dYJMZulMix5aVAij9uoopDb0nS8KR3qDdI4e4snZWVdfYHaW
	/XVkdMylqaN7DQFXBmYtV2mTi9CL/69PRsRAxcdMnN0ui5JHd0j/WW8xebCF7t/2QaUDDchSaWk
	uLzXNlSf/zL0P5icHv2vS71YmsHU5pDqcZ6cPpdjRMYAeNZIYCkMaJSz9lw4gr1y2ryrX7kO2/6
	CI8sEpS1KgtdYZvUrL/QCpiig==
X-Received: by 2002:a05:600c:468b:b0:488:aa33:dcbd with SMTP id 5b1f17b1804b1-490360c12cbmr49605035e9.26.1779377049672;
        Thu, 21 May 2026 08:24:09 -0700 (PDT)
Message-ID: <e5ce9b16-c692-48bd-9b3e-c4346fd8f797@suse.com>
Date: Thu, 21 May 2026 17:24:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 13/26] xen/riscv: introduce per-vCPU IMSIC state
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <2471b51e89aff30765433d88b1646c5b2c72b5c2.1778250616.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2471b51e89aff30765433d88b1646c5b2c72b5c2.1778250616.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1779377050-F447DCF5-A61F50E1/0/0
X-purgate-type: clean
X-purgate-size: 2541

On 08.05.2026 16:43, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/imsic.c
> +++ b/xen/arch/riscv/imsic.c
> @@ -16,6 +16,7 @@
>  #include <xen/errno.h>
>  #include <xen/init.h>
>  #include <xen/macros.h>
> +#include <xen/sched.h>
>  #include <xen/smp.h>
>  #include <xen/spinlock.h>
>  #include <xen/xvmalloc.h>
> @@ -56,6 +57,16 @@ do {                            \
>      csr_clear(CSR_SIREG, v);    \
>  } while (0)
>  
> +unsigned int vcpu_guest_file_id(const struct vcpu *v)
> +{
> +    return ACCESS_ONCE(v->arch.vimsic_state->guest_file_id);
> +}
> +
> +void imsic_set_guest_file_id(const struct vcpu *v, unsigned int guest_file_id)

Some people will demand that "const" be omitted in cases like this one, as
it only works ...

> +{
> +    ACCESS_ONCE(v->arch.vimsic_state->guest_file_id) = guest_file_id;

... as long as vimsic_state is a pointer (and not a sub-structure).

> @@ -312,6 +323,30 @@ static int imsic_parse_node(const struct dt_device_node *node,
>      return 0;
>  }
>  
> +int vcpu_imsic_init(struct vcpu *v)
> +{
> +    struct vimsic_state *imsic_state;
> +
> +    /* Allocate IMSIC context */
> +    imsic_state = xvzalloc(struct vimsic_state);
> +    if ( !imsic_state )
> +        return -ENOMEM;
> +
> +    v->arch.vimsic_state = imsic_state;
> +
> +    /* Setup IMSIC context  */
> +    rwlock_init(&imsic_state->vsfile_lock);
> +
> +    imsic_state->vsfile_pcpu = NR_CPUS;
> +
> +    return 0;
> +}
> +
> +void vcpu_imsic_deinit(const struct vcpu *v)
> +{
> +    xvfree(v->arch.vimsic_state);

Better XVFREE(), for the function to be idempotent.

> --- a/xen/arch/riscv/include/asm/imsic.h
> +++ b/xen/arch/riscv/include/asm/imsic.h
> @@ -11,6 +11,7 @@
>  #ifndef ASM_RISCV_IMSIC_H
>  #define ASM_RISCV_IMSIC_H
>  
> +#include <xen/rwlock.h>
>  #include <xen/spinlock.h>
>  #include <xen/stdbool.h>
>  #include <xen/types.h>
> @@ -61,7 +62,24 @@ struct imsic_config {
>      spinlock_t lock;
>  };
>  
> +struct vimsic_state {
> +    /* IMSIC VS-file */
> +    rwlock_t vsfile_lock;
> +    /*
> +     * (guest_file_id == 0) -> s/w IMSIC SW-file
> +     * (guest_file_id > 0) -> h/w IMSIC VS-file
> +     */
> +    unsigned int guest_file_id;
> +    /*
> +     * (vsfile_pcpu >= 0) => h/w IMSIC VS-file
> +     * (vsfile_pcpu == NR_CPUS) => s/w IMSIC SW-file
> +     */
> +    unsigned int vsfile_pcpu;
> +};

In the comments, what does SW stand for? Not "software" I assume, as
that's already expressed by s/w.

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 15:26:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:26:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315394.1585204 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5Hh-0005h2-CC; Thu, 21 May 2026 15:26:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315394.1585204; Thu, 21 May 2026 15:26:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5Hh-0005gv-9U; Thu, 21 May 2026 15:26:05 +0000
Received: by outflank-mailman (input) for mailman id 1315394;
 Thu, 21 May 2026 15:26:04 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1wQ5Hg-0005gp-S8
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:26:04 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1wQ5Hg-00GbV1-2d
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:26:04 +0000
Received: from mail-lj1-f182.google.com ([209.85.208.182])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1wQ5Hg-00H2WN-2F
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:26:04 +0000
Received: by mail-lj1-f182.google.com with SMTP id
 38308e7fff4ca-393a49d2e5eso56671591fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:26:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Type:To:Subject:Message-ID:Date:
	From:MIME-Version; bh=B/dOMcUo+NynDZJBMEP2plK9/7TWgEZLokNt1WPfFwg=; b=FijcW0n
	gdU4Cyv7/9lVghVcm5TF29cIv9OXpfp/KgCdf6IL6ZkcCjDHJ7SM5V/WjFngGlQ3H7KUMbfqkzoA6
	nJyaoh0gXkaHGIT6+Bvoy6nFhGZdTOhpBiBsVcXLGo4pqUQCQeA5VkUCul0bQJ5UxMg6ZLcwMRIig
	uwNKsUeTWA=;
X-Gm-Message-State: AOJu0YyYTuufyDdqAnlPqNJ64+9iGDdD6zGrftGkcHwc9yV9S8OZXg1F
	o+HAhhhCuktj2PLm9fwxx7qJQ3GCKuhz2QmQ+moyT0Xz6t0RzNlFu3YEUHBDsPaPlWFUiucOO/x
	c2OeouXiSeG5FNI2jFjp5VkDMy5wsips=
X-Received: by 2002:a2e:bcc4:0:b0:38e:9277:6990 with SMTP id
 38308e7fff4ca-395ca6e11admr13909501fa.30.1779377163604; Thu, 21 May 2026
 08:26:03 -0700 (PDT)
MIME-Version: 1.0
From: Cody Zuschlag <cody.zuschlag@xenproject.org>
Date: Thu, 21 May 2026 17:25:52 +0200
X-Gmail-Original-Message-ID: <CAJbE=KzArS2AFm4rvb75=35Eyin2NOreh8H0bGcxCxZgwWWNBA@mail.gmail.com>
X-Gm-Features: AVHnY4Ja9BPvrkTRP9WIlaWGceJ2-z25aQVdd_bhaQ6K8kc1j9JSUDJ7--uNFdY
Message-ID: <CAJbE=KzArS2AFm4rvb75=35Eyin2NOreh8H0bGcxCxZgwWWNBA@mail.gmail.com>
Subject: [DISCUSSION] AI-assisted patch attribution guidance
To: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000c218440652558789"

--000000000000c218440652558789
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi all,

During this week's committers call, there was a request to seek broader
consensus among committers and maintainers before merging the proposed
Assisted-by: documentation patch.

The proposal is intentionally lightweight and focuses on:
- optional disclosure of AI-assisted tooling usage
- preserving contributor responsibility
- clarifying that AI tools cannot certify the DCO / Signed-off-by:

The current patch is inspired by similar Linux kernel guidance:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Doc=
umentation/process/coding-assistants.rst

Patch thread:
https://lists.xenproject.org/archives/html/xen-devel/2026-05/msg00993.html

At this stage, I=E2=80=99d mainly like to gather feedback on:
- whether Xen wants to document an Assisted-by: tag
- whether the proposed scope/wording feels appropriate
- whether there are concerns with the general direction

There was also discussion during the call about ensuring the Advisory Board
has an opportunity to raise any concerns before merging.

Thanks!


Cody Zuschlag
Xen Project - Community Manager

--000000000000c218440652558789
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hi all,<br><br>During this week&#39;s committers call=
, there was a request to seek broader consensus among committers and mainta=
iners before merging the proposed Assisted-by: documentation patch.<br><br>=
The proposal is intentionally lightweight and focuses on:<br>- optional dis=
closure of AI-assisted tooling usage<br>- preserving contributor responsibi=
lity<br>- clarifying that AI tools cannot certify the DCO / Signed-off-by:<=
br><br>The current patch is inspired by similar Linux kernel guidance:<br><=
a href=3D"https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.gi=
t/tree/Documentation/process/coding-assistants.rst">https://git.kernel.org/=
pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/codi=
ng-assistants.rst</a><br><br>Patch thread:<br><a href=3D"https://lists.xenp=
roject.org/archives/html/xen-devel/2026-05/msg00993.html">https://lists.xen=
project.org/archives/html/xen-devel/2026-05/msg00993.html</a><br><br>At thi=
s stage, I=E2=80=99d mainly like to gather feedback on:<br>- whether Xen wa=
nts to document an Assisted-by: tag<br>- whether the proposed scope/wording=
 feels appropriate<br>- whether there are concerns with the general directi=
on<br><br>There was also discussion during the call about ensuring the Advi=
sory Board has an opportunity to raise any concerns before merging.<br><br>=
Thanks!<br><br></div><div><div dir=3D"ltr" class=3D"gmail_signature" data-s=
martmail=3D"gmail_signature"><div dir=3D"ltr"><img src=3D"https://ci3.googl=
eusercontent.com/mail-sig/AIorK4x5nkRDCOFJDJAv9aMXdZ0mghItsp3D36JrwBCQtitBS=
W_0NeDS6mBmJ2F4vZVE2oBOqnY6IaJUrl12"><br><div>Cody Zuschlag</div><div>Xen P=
roject - Community Manager</div></div></div></div></div>

--000000000000c218440652558789--


From xen-devel-bounces@lists.xenproject.org Thu May 21 15:26:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:26:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315396.1585212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5Hv-00062N-J4; Thu, 21 May 2026 15:26:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315396.1585212; Thu, 21 May 2026 15:26:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5Hv-00062G-GE; Thu, 21 May 2026 15:26:19 +0000
Received: by outflank-mailman (input) for mailman id 1315396;
 Thu, 21 May 2026 15:26:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wQ5Hu-00060n-Ov
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:26:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ5Hu-00H43E-4y
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:26:18 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0f23f3-e002-0a2a0a5209dd-0a2a450bad44-26
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:26:18 +0200
Received: from [52.101.48.68]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0f2418-212f-0a2a450b0019-346530447c9a-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:26:17 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.16; Thu, 21 May
 2026 15:26:14 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.016; Thu, 21 May 2026
 15:26:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L4Ti85FG3rj7xjj+CLLZtCMecxheqSTowyPd4tQHu0KFAWSkyYQeiUgoKkDdrigzYe3z89v2yuIA9vBmbgYeItHUULEra9YQHsw6kaQqnVuzJZ93KCx7JLXIPKx0YijQXhfmFmHzYoqaMBHq+83MD8ym1ahr7EFr/PnfffA2+sOrerR8L9w7X6pV3+5AIDOd2cZxopU5uEbPp2ZK2DoJEDdMye6gNwAKsd2en+nZitj9awbY4mPHAonvs9Fm+oVwodcgqLNBkTYJc64+Elst7K8sdRLSGA00pdPjtTCu4JQoDWSfX0bO948VzQGKQBm+3/AYBOKhRpBQfNGbp8CKzA==
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=4ApBicLxDhow1FO95wpPaiAUAK2bU1Lk0OBA+35qs98=;
 b=N21FzIdp4+K03uoOOOYCyJi7Eqm7B1mCYZHksbrarCrXTF+dr9oMck1EfAKG2M3InLXR9p8vZgFrQyin+sDSIeAiIFWp3O2Vlax6fBaSlL4UvJnf47Y0pgCIDIQeZi8vwrw7Jn+QJvPHA0x/Eklk1o1QNt2TRiakHwyiuAVZAHV5QVVoXQxFBEe5BQliPFFoWYdLLC5ovlyQEu8ZSt5Jwt8DWdO40i7yJrPZXQruLrg2Fyh3hjPke7uqG0RzphDmq+iwDWo6E0TTHGmxZ/g93TfALLDDsgdhs4A25R3tchNfCXz8GrsXiWANbL8h+NLLSeXASH+jmKBqgCaR495oHw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4ApBicLxDhow1FO95wpPaiAUAK2bU1Lk0OBA+35qs98=;
 b=wwfhr1vFKKA3iTNnNSIbhXBVIH9Ce7LOp5xf5JStRH61w4s6OfIdah6XaYaHeyvj+ZI1QLmhziCadbvYP3I9b/SfyoJGcFon3A6ILx3qaCfQ7DihQBA9uCKltANWsvvfdb0ed+u4Wpo9bq8NnDs8bd0rFoow7XbWz8eiOkhmfUI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <745d33a4-11f4-4000-a8d5-219f9617eab6@citrix.com>
Date: Thu, 21 May 2026 16:26:10 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] tools/tests: Fix paging-mempool xen_pfn_t format strings
To: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
References: <20260521152344.2050899-1-luca.fancellu@arm.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20260521152344.2050899-1-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0146.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2c4::18) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DM8PR03MB6230:EE_
X-MS-Office365-Filtering-Correlation-Id: 40490dd7-dc79-4541-3c87-08deb74d4bb2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|11063799006|56012099003|22082099003|18002099003|6133799003;
X-Microsoft-Antispam-Message-Info:
	Bl1nYt5Nd6YcO4aDnsHdFvH/SRDzw854kkadbLpnXxl0Tzfv3aEbnVNPu6nhhM8qjbwWHwGqag/gibEJiav8rp3rcuCpQ9goUiwaPtQ6rlbUDKzHMOL84D/JIpo0+dDBtg7whSdJVLIQXT8nZBymsR1xBZJRsafabIraTqtMuTGDW6txEouu9JzGLAb0n6QxmK8A7d3MFo9kRpOynlPwLq57tFMtZBQvV4SrdZPejZowM6T7mGwTraMO/LLt4J51uHHNvBr35X2bf4L+3KCUhx9vlOTgS9BrFvO1T+5fYpMw5uow3CVj0ebi4ypsPrlQYebRBVJPy+7m2T8z5kZB01X3Y7xk7W3qXUdjWASCr+sufqXIMIbWv2bfAj9DImh/QWtiBAcvB4zPSvHzwuYVCH1avikpw1RZnfUOVouQ+6gqMsZLcVXgzP4uigChB01km2d6gF2kBwHxbQuMCOu+NDZK/exuYzOcgq4jHNmgYK3NhkZy1SqtM8jOEo0r1tB7R4aKrH0MnqfBp3TeBhQ25PW1+MnA/N76hdF6KeS7ZV5g4WFytyxWlxqBqhD7Y/gYyvGukXzA3vrN2D/LNw89dEGyqS8qsCgoAhebmlyi8IyM5KS75I4Q7GXzi9YpzaiAhtKri4F/kk2gUZsvk4TI88b34N0ME6gIQzRsLpTkOMBnLWfLqkK48IwJpzmCm5wX
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(11063799006)(56012099003)(22082099003)(18002099003)(6133799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QU83QVpQUnFnaXRUaXMvYmwwKzBpMjhrQlVMRTR3Y0hWdnJWZmhPekVmMXY0?=
 =?utf-8?B?UktHSTgxOVRyNm80UnhreFJKVC80ZEpnZkpmT3BiYnJMTk01UkF6VWExMXBY?=
 =?utf-8?B?cDZ4eHpBeVVlUHdYVHNiQmUrRlArZksrWHhDQ3IwSTVrdE9MN0hmOU85ZXV6?=
 =?utf-8?B?andnZFpZdThzYnUvZC9HMUg4VWNQVm0yZEJBbHhHSUlEZ0diQjdEWnByTzZ5?=
 =?utf-8?B?Nk4wMXBydVBudTNkL2tyNHJUM0U3b3ZRSFNsL1A0RU55TmFTYWU1UjFWRXhX?=
 =?utf-8?B?RWhaY2pKT0lJUVB4bzJvQ1lvOHE3bXdLcHlUeEZZZk1wWEZSV0h6NkFIWVR0?=
 =?utf-8?B?ZjZTU2Q2NWFuTmYwdmVLU1BRNDVyekFjN2ViUUpPenBBU0QyaWpBbStOa2xH?=
 =?utf-8?B?TlAwT3k2alBrWWlIUWVCWFA1KzlLSDMyemxQamlwTnNFQjEzSzE2M2pWL2pY?=
 =?utf-8?B?MmNqRndqOEpSWHJSbndIamRJVlJGU3Q3Y25hSDlXckF1Z0ZMYS8rSkRzNEtj?=
 =?utf-8?B?dTJoQWc5TTh2QThlcElQZEhoa2NuR2RVQmd0T0l5MitJUDVxWFZUL20ycVdW?=
 =?utf-8?B?OWI2RjRxUDVWYW9JNWx6SDZuUXQ1S3JSdzNnOEZjVnZ5ZS93akVSaGtWblBj?=
 =?utf-8?B?Z25EaXZxOUdvUHBqQWtHTG1SKzVpMXpicGtUZ2JKQWFBN0ZNcXh3Y1ZhRllL?=
 =?utf-8?B?eGM2YVJwWFU2dHBtVXd5VGU3elBvcDlWVUZwYmkxeXV5UG5VeUM1OEJvZ3pt?=
 =?utf-8?B?cGFMRkZhSkFOUDNDMmZydDBKM0tFZWxxUFRkdjVmam1HNjB5a1Z4QytDWnkw?=
 =?utf-8?B?REphd3NQdGY0STVZTlJ5bDkzRnh6dlJDanNxRS95cUc0QmVrSHRwZ2hvS3NS?=
 =?utf-8?B?N3lqTDBnUGVCWmhER1ZNaXNOck1wTGxUQ25CN3RpeDZtYThBTWpkZWpOZ0c4?=
 =?utf-8?B?MFo0Qi9hcmJGeWpZY2tMUmoyM2EreWZqMGlWSGJxMVR4bmtUdjdOMk4rNGhW?=
 =?utf-8?B?ZkpJYmNwUWRFUzY4ZzFSQXMxcUNHNjNwVS9oeWpVa2pGR0xWeHpBcmJDNFJF?=
 =?utf-8?B?aGxoZktTRlVXakZnM0lGdTY4dG1tb3pMVFE0dFJ1cEJhTjJXaTZxVEgxaEdF?=
 =?utf-8?B?OTVQbXpkY1ZrS0xCQTZXL2ZNNXk3MU5EWDg4dmRxVnhSMm5vaHhaU2kvblJ6?=
 =?utf-8?B?cXcyUW5JaEd6aW1HKzE3bVZIeDdLV0hSMkc4RnVqOGNpUVZTRXJNNWNnbXBu?=
 =?utf-8?B?Y1FVL2JiZmtnS0JKbCtFbDFVa3AvUzVYUWdDL1AyTlk0d25iWXZnWFQvUGZW?=
 =?utf-8?B?aTk4WTdLL1BzWFhacHJJb29OS1RUdStvcjBTR1BVVkVXcXU2bEtUbVlpaEtn?=
 =?utf-8?B?Ky9NeHpINEJrekk4NVVuZzJYODVSL2EraHJSTWUyeDBiQy9lVmRrM0cyaTFJ?=
 =?utf-8?B?M1haMVNxbjVsdDdxUG1tVDBGUnAzQXRuaWJMNFZ5M2IxcVRWcHByMm1Kd3ZP?=
 =?utf-8?B?VjRuckJOQTJSM0k0VTlGV3BmNnNVL0dyZENQcFREOFZRbHhTaEFsM2lyekVx?=
 =?utf-8?B?cG84UUs3amhJRHJkMUJpOHVFOGdQeVptVUpPa3JFVXBRTVpoQXBBWEhWRlZz?=
 =?utf-8?B?clFNLzJ5Yjd1QjdVUGtWTmlvT0JIQ2g5UUVPb2ZGMGtMbFoybVNVQm1CMWlk?=
 =?utf-8?B?NzBBeVE1RDNKaUJIT0pWWnQvTG5GYyt4a21vZzI3L3JuL1Z1M1pSMmRvcDR4?=
 =?utf-8?B?ejZ6QjRaUEdNcU5uN2wyYlZxYTFFS1M4bXlHWE10UE5KeVdSODd0ZWdnY1pK?=
 =?utf-8?B?TVRJMzhvVUFBU0JOd2pwL0xVcThpblNBZERMcFdrdUNndlRwNFlDTVh6ZEYw?=
 =?utf-8?B?QytlSGovVG1CK2s1dUdUcUtOV2s1ZzJBaDVLbUxPU01BOXB5aHgvOFdPMCtS?=
 =?utf-8?B?bHFUTGhhOG14eXVaK2dYK1dicGw5VC9MNWxmbUlDZS9VRlZaSkgrVmZnMGZL?=
 =?utf-8?B?R1lPNW5zMkZ4TmRUek40WmRaZ2tsdUpVVWN3a0M2dWhqMEZHTGt0RHJmbFcx?=
 =?utf-8?B?aFBMWDRrZTViYldGUFdya1dLZTNyYmF0bzQwQldJU3RSaDRWcjFaS2p4c29N?=
 =?utf-8?B?RTBmRXFYajFNdDF0UWFvbkNPbzlQN3NaOG9NNTAvek4zSVFOSnMyQ0NJRG4v?=
 =?utf-8?B?T0RxYlNYdGxMYmN6aHZaS0thVTFwTlZDVnVraTk3aU5Kd3ZPSkE1TDFVa0RT?=
 =?utf-8?B?Q0wxZ1F6WDJRdjZNZThQVEpSa0JYNE9jamFqbm1DM1hDUmxsS2tZL1NZY0ZP?=
 =?utf-8?B?ZWk4QStNWWdjTWxXbnFsV0JUWXRSc3FwMjFEQTUvNE1XYTk4SXQvam1mTGlP?=
 =?utf-8?Q?OLU3VPJZNrzvPxNU=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 40490dd7-dc79-4541-3c87-08deb74d4bb2
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 15:26:14.4354
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Q0MyCuMVEichUhmMvBPjkA/sebsD0hD3LVUuTH1dGKR5mdsxLIYFwFnYOQxJHSi4eI6HT+rVWGCEv7QZWaGjPfpSe+fqTdyIAN+C+Twf9S8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR03MB6230
X-purgate-ID: tlsNG-42698a/1779377178-18762F3B-23331E4E/0/0
X-purgate-type: clean
X-purgate-size: 480

On 21/05/2026 4:23 pm, Luca Fancellu wrote:
> xen_pfn_t is not an unsigned long on all architectures. In particular,
> Arm32 builds see it as a 64-bit type, so printing it with %lx triggers
> a -Werror=format build failure.
>
> Use PRI_xen_pfn for the GFN diagnostics instead.
>
> Fixes: 66c982a5d3614 ("tests/paging-mempool: Extend to test P2M relocation")
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu May 21 15:27:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:27:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315409.1585223 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5Iu-0006qY-W9; Thu, 21 May 2026 15:27:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315409.1585223; Thu, 21 May 2026 15:27:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5Iu-0006qR-Sa; Thu, 21 May 2026 15:27:20 +0000
Received: by outflank-mailman (input) for mailman id 1315409;
 Thu, 21 May 2026 15:27:19 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wQ5It-0006q3-ML
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:27:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ5It-003b2r-39
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:27:19 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0f242c-e002-0a2a0a5209dd-0a2a450c9832-38
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:27:19 +0200
Received: from [40.93.196.50]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0f2454-62f1-0a2a450c0019-285dc4323339-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:27:18 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.16; Thu, 21 May
 2026 15:27:15 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.016; Thu, 21 May 2026
 15:27:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aEyGF5fRZRemYAJ7G6hMn9xqdLGsXGeSOZ8wPXCN/RO3YdY/CDF/K7wzGP2bBzKzOn2wRk/HZzfOeJDj8uBn0+P+FLOvPgDDOXjzqyWnDTdFElu9BCUokg9a2t42XP5GI/6adst2hgPSSKRIUnMtgUwtKz9yXBfDWOYF4paiRu+jQmfBtTTWwk6rd/4Mx9Pa6N/61B735iw1Ozw3NbEh3xvgPDaPBnP8BbNG3fvMd3SB/vy9IoWO769lfZiaHAdL6SfOxzQHpfK/zkgsUAjiodmgagLeXaW5bpds3ee+y+4H6gJU2vQFRQpMiG19FdXfp7Mq++Q59IjUys4t4vWSIw==
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=0K4F/hcRyaD+7FLcG2u4gAy+TpuzoRYRtkVYfuEB3bg=;
 b=Cl3l7aDY1xO2rI2ckkGqqSj+aVKjT+YWs2aWF5uGYZSqfKDq3NlWKlGLkR3Dec5T8+HVZpvby5Q5Tis9HCt2vhdGcSnBt0rU3mEY3SPU0QX71sGba223HyydpjcEYgz/QbhT1OQIMus4uxNTY65jvArj8Ia+akMu3XXpMupUFRalgCCVTmyW8rqF4RMnyqrRucQTDJjO3fgtKQMHfv+Fi+bT5I1l2tQ09OVFalMERzLLRdnDViT6aiGldxVeSEIdCF/1nF7QaIPWQCErmhpieAWUkMrQfFAExr/HpdD2Vk8Gz9YicvBt4hbqBy97xB6dBy+YzMLMgAugCE9Nmp3DSQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0K4F/hcRyaD+7FLcG2u4gAy+TpuzoRYRtkVYfuEB3bg=;
 b=uYkurUK2QJv93rs7UdCOG05/as7Y2Ztcde9nbAy/C1N0zhY+kt7OduHdcruT2YxuEj1L/YRh4FzmuyG+cduHuQ55uDy6GnPgg+/b3g/DknIT8Pb/KYRTcZ7rnF+rJM3ypiU1kmM8xzC1jC8+jPWGJkMTgWlijr5GFcwFB1RCgm0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <28d1d6fc-604e-4689-ba1c-894904f3ac94@citrix.com>
Date: Thu, 21 May 2026 16:27:11 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 1/4] x86/shadow: split get_unsafe() invocations
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <738daea9-ebec-4299-b0f9-49448293106d@suse.com>
 <f532fc29-f3cc-484f-b137-c3f8d04279fb@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <f532fc29-f3cc-484f-b137-c3f8d04279fb@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0135.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2c4::10) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DM8PR03MB6230:EE_
X-MS-Office365-Filtering-Correlation-Id: 5505578a-377f-412d-e018-08deb74d6fd8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|4143699003|11063799006|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	EENtGxYxCQ0dqrlAgaHOqcSUQPLjCME8FBM+0WnecqMs1GVfNwRzX1FNOLogfM5eh39NFmLTARh+4tWBBuZIPBSteP0uuePt/lEIypfCYq7NIF6bJpuVeyupD7Rcl16HmcgzaoQTbrYTJkXV8IaAX+Pvimf/MHBG/J8YYv66kSK6sn2WW89B7a4DzKlywEpc24X4rvh9nI4La3faUrfsF+ujNV9Lnp68r+EvXJ7e+NhAyhXJEw+y0IrfaE6TKdChVKZy+3/GTmmFkpgyekREy631TfLHE0Y8DITd51GCesH9qam7+B2RjRt9BaGu9fIPdsjg1YdBxjFAqB99+vNQUVFlZldf0bxZ3bX4BAxQ2DDhGSg6goj89ZbjWpWSeqv9YlF2r2RQq48wjXYvozQHemxWmQp1wOuDCsDIq3aPsteuILSjLxXBGgeFwEwgphV6GQE1P/gCupSsL3hTXh0ZaZ0MDwCi8nG2Kogo8NHlW0rvZudH8JgXR9y6xb0mLQF/1qJgS/Nw5GIb4cAtFOil2y44HsRMZYYxCqgNyYsmyVMKqLrCqw/0w/ro3puA6GSYg7fRvEiWG3ADgYAih7h6k0fYphgbwa1Bg753y5ciHq6fvqe1nRCJvC41USMfopCYtUNu7AYXl3r0LDJcOn/Q3HeTJg0/SUyo3Y4EDIbIdEVwMQ/j0iTk8KN/AKvY0XiQ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(4143699003)(11063799006)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?c1ZHZGRFUzVTZ0VJZGo1NjJGdjBUQlBmVEY3dDJYQnkvM2t2bVUvQ0NPVUxa?=
 =?utf-8?B?RllxdXZJMlhseHVrZ3doOUIvUVhxcmFxbE5MVlVDNlQ3Qk10QkVQSHk0RHpI?=
 =?utf-8?B?NlBEdEMwZStkSXc5MUo0RUNCelB3blFOQ0JVc1pSZ2FheFVHNkpiYVJoWnhK?=
 =?utf-8?B?Tnl4U1JoZEE1dzNwODJmTUV3eDBFOHZoK3Y0bU1YMnI0YUxDWmJKVmwya3By?=
 =?utf-8?B?Tk9LQnV4MjNBazRTMVliZmphVDZHMTJpOFhwSzJVTnhCOGswN2hUNmZGNlkr?=
 =?utf-8?B?TnFVMStIUE10MlMrRHZiV2dCS0NWeUwramtxV0tYY09FWmpubWZZcy9pSWRP?=
 =?utf-8?B?cy9ScjBRSEhiYzlYdkg1azBxNVU5T2I4U2NGRlJEMFUyYWtOYW0weEtNYVpL?=
 =?utf-8?B?UFBiR1JyWUFrV1NQNG1oZXR0MGtHNDMrcE9HN21DU29SYkhHdWhsQVE2T1V4?=
 =?utf-8?B?czFZRUlJUy9PWnBSNG4yQzBPUzFVcUg1UnVrbkRjSUZiSGlwRldWZXNNdWIz?=
 =?utf-8?B?Q1ZyY0F1WXoxSEo1Z0FERjNMZFJURjJrOHJlS0dHYk9pNVZ6bE1rb29wYzVO?=
 =?utf-8?B?R2svczRGaEsxLy94eitPWkNKSUVPMFhZb1I1cmxwenpoRDlwbjZIMGtNWGVw?=
 =?utf-8?B?U2VxUlhYeFVlbFUxK3ZGK2gvUWZoYWtOV1ltQW1GN3pVZ1RPU1BiOGF6Qlps?=
 =?utf-8?B?R1FBRmlJelplQXhGTjFKWitaQlUyRkd6eml2dllLK2I0U0Qvc3hPeDZlMk83?=
 =?utf-8?B?Kys1M2c2eWtxMFJ0bTA5UFVsRzJMMTJTUEI3OFBPOGtKVkdqY0FCSVFaUkd4?=
 =?utf-8?B?TlRqUCtIRGEvYkxtc0NjaklicWgwa2FqOEd4eHo1dlBWSHJlY0liWFF2aVB5?=
 =?utf-8?B?S0Z3ekpVU1NUTkQ1UGJPbFB6N2IrUzUyVjhGNERFZXhkQ1VqaldPVk5uWTV3?=
 =?utf-8?B?TndIVHRvMEdVYldIOWFUSldDQnpFbm1TVGFLaUxFMkF1N1JORVFvS01XMjgr?=
 =?utf-8?B?UkkzcEtsVFo1TEc5V1ZzdTNoeThsUXR0ckFiOTFOMlZZbW12dmdqRXo1SlFO?=
 =?utf-8?B?cVBMdTR4LzYrRmx1RnFGaWM2UlllQVBLUE43ZDhCUHU0cEZaMmNGTUlRTzB3?=
 =?utf-8?B?ZWtCU3dUZHZ5bHlYMVlldzl0b2ZDbVpoNFBaYXJORklxdkdSTGRCSHBPT3Ur?=
 =?utf-8?B?bUV3TityOUtxRUVEWlRyNXB2aWZFbVFOdVA5bzIrTTRNQVFMZGNReW1aeUJZ?=
 =?utf-8?B?aklaU2hYVGZOK2Vvc2swMHF5VlRUT1dWc3N0bUNYdWdXcCszTWRkeWlsWU1F?=
 =?utf-8?B?UWFXUmRVeHQ4YmxmY3RGWVpiNlp6UnBnMlZheWk3d1hab3haY3IwUEFIY1d3?=
 =?utf-8?B?Sk9KMGkxRm5IQzI4NnZkdnZZN3BvRjJZRFFrb2tjdE9qNjkwN2N4dzFHUy9S?=
 =?utf-8?B?U3Y0MjBUeHVJQ1FuOFpBeHV1WHRqMy9HWTNaSy91ZGliaTVEWWcwTG1OaFZ1?=
 =?utf-8?B?YXdaTUkzY25lU0ZtQUloSU4yVHdvV0haMTNac0VGMk1ZVjFKMzcyQ1JVTjM5?=
 =?utf-8?B?N2hwQnJSUXh1QjhNNkpuYzlQWXhMVVROaFpVWnJjaThJYUxSa21HVTBtTnIy?=
 =?utf-8?B?U2dkMXFxM2U2UkRmdTFCUXNNTm42VVRRSG92UzYzYnc1RnlMMWxrY3JTVW1L?=
 =?utf-8?B?Tk02KytTOVV3UC9vcENUWDV0cXlTNVhVb2wvbVJsbDVqeEJnUWdHQWFWNWVM?=
 =?utf-8?B?SVB6Mi9nTjhYNnhDOTVFT2thNnNMS2JJcE4wQjc4cWpmSzhFU01BT3RoL3U4?=
 =?utf-8?B?UVRWSVFkSnBCR2NlaFFTUEc3QTloSm9HZGVVM1lBSit3V2JRcDBuVVV6ODc2?=
 =?utf-8?B?akliNVpTbEtLTncraTZiRVNXdnhna0I5N0VtcTVLWnJtQXdZd3kyVXRTQ2tY?=
 =?utf-8?B?VW1PV0ZBeG1ZK2JnQUpTcVQwbDl6UFBYSnEwZ3ByMVJKbmZsejVVdUdWYk5R?=
 =?utf-8?B?a29zSHVreHNBUzdySytCV3JpYzFsMVp3S3l6VWdaRDVhQlNPZWdKeHkwVzBY?=
 =?utf-8?B?cHNiNUJtdHFxNndkTVlPZG83bjNkQ3U5Y3E3YjNKMnNmTVFCZ0p3Z3V2Mm5n?=
 =?utf-8?B?Z3dXLzgwZFlNMlV2VnZPby9PRC9hZTBTaFVKRWVOWk1LWGROalJLc2NpQ0F3?=
 =?utf-8?B?YU1DV29QWEE0UHJ6RkRCUk54eTJTUGNwaHExOEZROHltYjhHTEk2ODV0YWRH?=
 =?utf-8?B?SUZQNkdYNEwvT0lUaHBwTXk1VmN2elJOMGszb0YvVHVnbGRSUGJPaFNuTUNl?=
 =?utf-8?B?KzVKOEJVLzlEaGJ0Y0lkNDMrVzkrT1ZSVW04N0RHVldpTFdjajlYMVRBdVY5?=
 =?utf-8?Q?Q4ivxKxWErxYoTYI=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5505578a-377f-412d-e018-08deb74d6fd8
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 15:27:15.1582
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: aDCMR75bLntJInP1J4W5/PONI6lxCgGSt1EWHvAdSfLi+bmQR7VHaZbeBVNNeL+yhjF27sIk5RQPLIx5puzSDmXZKAaoBZiaGCtzx/D0z/o=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR03MB6230
X-purgate-ID: tlsNG-d25034/1779377239-E3B7CCF5-D1C927A7/0/0
X-purgate-type: clean
X-purgate-size: 668

On 21/05/2026 4:15 pm, Jan Beulich wrote:
> Misra C:2012 rule 13.6 takes issue with is_hvm_vcpu() uses (deep) inside
> sizeof(), as used by get_unsafe(). While sh_linear_l1_table() doesn't
> involve is_hvm_vcpu(), the rule there kicks in for "call to function
> `__builtin_expect(long, long)' (unevaluated `nothrow' call effect)".
> Break out the address calculations.
>
> This, overall, turns out to also improve generated code (with gcc15 at
> least). No functional change intended.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Code generation is improved with GCC 12 as well.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu May 21 15:29:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:29:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315420.1585230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5LJ-0007d7-AF; Thu, 21 May 2026 15:29:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315420.1585230; Thu, 21 May 2026 15:29:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5LJ-0007d0-7a; Thu, 21 May 2026 15:29:49 +0000
Received: by outflank-mailman (input) for mailman id 1315420;
 Thu, 21 May 2026 15:29:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wQ5LH-0007ax-S8
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:29:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ5LG-00BMCF-Qg
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:29:46 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0f24ea-5cb7-0a2a0a5109dd-0a2a4508a654-2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:29:46 +0200
Received: from [40.93.195.68]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0f24e9-63b5-0a2a45080019-285dc3446a67-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:29:46 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY1PR03MB7310.namprd03.prod.outlook.com (2603:10b6:a03:52c::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Thu, 21 May
 2026 15:29:38 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.016; Thu, 21 May 2026
 15:29:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cwjlBOWJq2iyGR77f/p0fUsUNB3970w3PRi8AANyAhqec8AvWyG2sG7p9WLdnAoPojOOn4rrEvk1jtZUiA8JhKV91y2Nr1d8c1qA0/nqVUvxRxbJdWHpU8PSquXCZDkoDqHdD8kLcJRaLyLO4rcFqmcogmrvVqcAw4QxIirN6QOJDxzXc1/W53MSIKSvCaiCE3VxZ1Dz449ACv74w7Ut50mwsnDRWzpxWWdlW+bYihYWkRkPcZRUrcgaCTGwkKLoUriFwiYU6W15KPdrKm8872M8651miykz1B1Sfn4eSPrvLQmxjmEhAB0ogR5mNvmsCZwv2ozng/jgdAhyGghvIg==
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=1xBNqvUwrbmlMpswj2eD8cOWiaiZ+c354uqsWwNo4+U=;
 b=iHCUn4PWkWRYv4Jkh2dg5M0UTHP8TXS55Fk+sEmw/7pzsTCKH28edPqXdNHauI2YdjP8/EHf7c1B4qroco8PY2Kg0sPupuQ+NgZHGpfPXNOStd4ZxNYyrb5tdYOmS8rzYHf/cSvv2Z5kjhZqS5YewAICG0Pw06+LAYHUNGs4hxgMdKk4r7HpgSVTqmp1yEHCKeWEncB9GGxF/Tf05US/LQfD7+lxNrfdUTDWW3yW3juBIGP6gZgp7Mq32hm9p92ZQCVWLaIV9a/dkO1vIzCN4rU+noa4t2nC3VTG9kUv+6Dy0nght9dNSxFlcRnyMSgz8DiBDFlTHu+vx+dot6z5nQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1xBNqvUwrbmlMpswj2eD8cOWiaiZ+c354uqsWwNo4+U=;
 b=sneKqjboyip8m9EtiUZNKVJF7wYTmCDaNS8oUjufJ3aI7BNgQSMk2oBK3cMvnu75eERU2PQrQtQsjH8WQ9m2yOCJCnb+L2cZHm1GDS7L/x7exEJbrLefLA6JrdfRf9mn7kLaTSwetk9ePxZNJY/qmR4RFVNoSkxNAGtj6oqamR4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <fde66682-abe8-44c9-9324-85eb430e996f@citrix.com>
Date: Thu, 21 May 2026 16:29:33 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 2/4] x86/shadow: avoid sizeof(this_cpu(...))
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <738daea9-ebec-4299-b0f9-49448293106d@suse.com>
 <3e70e912-cb57-42ba-88a9-45e9e3ebab49@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <3e70e912-cb57-42ba-88a9-45e9e3ebab49@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0203.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:318::17) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BY1PR03MB7310:EE_
X-MS-Office365-Filtering-Correlation-Id: bd290c4b-9e38-460f-54a2-08deb74dc4fb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|22082099003|18002099003|56012099003|11063799006|4143699003;
X-Microsoft-Antispam-Message-Info:
	Djj5pzHqkegY9AngYzw5pIss0bgi0H3yxW6EHC3kxDb/ANKRjVn5C993dL3TMFcE4ee1cOAPfBJmwQ7kG78pbQ9Z/vo6hVOSGNZ2NsWjoRz9FJ040OSNFcAYYH7qa4KrSOKCD1oWBocliilEuFPmTl3OjYcQErh1QdZ180FgoUOXRQj1WYeGBNos+n1yVCx8YB6CzUGFyE8fwVQC/OqEF+DS2kh8CbANcgL8vjVuW8i7cPsZ7pUHym2jaTaWS8TlF1lTM0mcd52ugfQyDV1d8Mkb++QUbaCPT6O/M249X4bwqFvyy3oGevxquZ3ttkcxVapIzUAKFq3ARPjA00Tdv2edWT81+KAq5g+PgOFUfgqm+zkU+yAk+pneeiKQdZFDLviKTiLn1PgZ32QULETBJhA8lg8w6S3M2zNu5QSkPXEFjccxctZpRHIHvOgtMJ+j+S0RsbCf74p1U8MyVmiS+b9CBUCGYu78qPbqDxWjl1ftUCbX2hUJPrX3AwYosvrqEWSnFn2KBpUMrpPpPuZUvWDAsidCVMFfVUF4HnFU5U0L5FOO1bdIGRffn3Jj3OOp3PNlM7VqW2bAT7s4UtIUqycb1euZJs69pO2S+jBhL1RzcNV06xbcX8yE8662K+dQ0QlDJ92GcNGglcpeilV1bBr2l+iTLA4SepzG8vA/KLwEYIKC8KusGRoOOujYiuZf
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(18002099003)(56012099003)(11063799006)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NzRlbGVoanFmeEFVa0NrS082ZHg4QWwrZXRMd0NCSmV3dVJXdDhGMjh0OXRC?=
 =?utf-8?B?bFJmNjhHRWxXT1Y1eTNPcjk3RE5LQnlUSzJ3Q3lVZlAweVVWdGQrdnd0SWdQ?=
 =?utf-8?B?V2lCb0RERWZnWVBGd3d6YytyRjVWcjVIN0dscCtiYlI3UVRqV2ZPMTJEeEVG?=
 =?utf-8?B?TVMzb1FhOW0xK2s0MU9BY29EV3Q3ajFFSWRCcmtVV0hUcnN6VStPR0xHTWxX?=
 =?utf-8?B?d2dmMEx5eTk2QTRpengyQnkvY0FTWXlZNE1Tb1IyYVBvdDY1UGFYRTJrY2k5?=
 =?utf-8?B?MldHcXVOTkZDdEgyemxySFVhTXIwM2czN3lFbUNybkRVQUJ6UWFTbjgzNkdQ?=
 =?utf-8?B?dHNzMkdwaXg2aXpKQnpOcGl4MHAzYnJLZHdTS3JzbGJTN1FNN0ZkM0pJcU5C?=
 =?utf-8?B?SnZ2SFFPd1FlL1hoYndZZDE5bU1oVG1XbGxnOGo5aHd2OUttN2QyTFFNTmtx?=
 =?utf-8?B?TFRBY2pYekY5NG1xeDBDQmNHR1gycERHUUNvNEJDeTN2YTFjUWZJa2FQV256?=
 =?utf-8?B?Y0wxR1M2cTNuRW5Lb2xvWTkyZXp0dis1RHZHRis0cDJOcTBTZWpFbGtjbXZJ?=
 =?utf-8?B?VzlrL01memt4SW5IZCtvcU5YUmFEVTdUR0Fqcmp0elZ2VUUrMzVMVmVwOEFW?=
 =?utf-8?B?ZVpuLzVMRUwxMGQzSCtFQ0VzYUhRbmZKVmZBVFdvK3pONE4zNFNacEpLbE5R?=
 =?utf-8?B?QjdtazByMHZ2dGVvcDlLK3phTlNIcUFnVnFIYk92KzlXSk1ick04QmRZTjZY?=
 =?utf-8?B?dkNndFR4aDFEaGxmRm42UzNvT042WEpLaVRQYzl6RnNqd3REZEgxaDgrYmJX?=
 =?utf-8?B?d1ZUVmp0cmZXQ2tvU3h4TlkvbE5sbVJpYWpUeEpyWHk1Zk1jVHc0eHBhOFJh?=
 =?utf-8?B?VlluZXhoWGFjOER4RmJBL2FiRVIzVVRYY2d1U3N5bFc1NTVrelhFR1N0YUNw?=
 =?utf-8?B?dnNRYTRSWHhMVVg1eGUrd2RKaGFWSmZyNnRweWN4UmF5UGxGWjB6cnVDNTZO?=
 =?utf-8?B?ckUvK3duN1YwVTd1UU13dDFnZ2kxTTA0Z2gvc2ZXdElURnYwdnF6SWVJL3By?=
 =?utf-8?B?KzdOZllRWW1IemVxUTl4UDVaS0lnc3RlYTFMcXc1RGRObGNxbUlnS1YzMGpp?=
 =?utf-8?B?UnRla1BoV21nK3VjVHpJTU0yZ0hVTUg2WEFjQ0JVRzVRaDRYNzNMSjliY2JN?=
 =?utf-8?B?Z3lQSTFISmM5TWRTZ3ZXMkJkYVgxSDZ5aVFxUExxNUJUZjd4WUFmcVQybDMr?=
 =?utf-8?B?c0VmK2pUakxwb1RtbUd3cER1N1ovZmlRMWQvT3FQaGJHMC9iNCs3VjhDSjVt?=
 =?utf-8?B?dGRzRkEvZGlqUXBPNzJHSVVvR0w3UzkwcjdtbFZnQW1mRU9CVXdTSzhtK1k5?=
 =?utf-8?B?TStvdTdRWTVTYlZzS3licHd5Umx1dkFNV2xCd0RxeDRHSUo5NEwrVFdCbmhu?=
 =?utf-8?B?Ym92ODZBSnYzTnllM3RNUWxONDVwVkZWRk5xdSszZVl6Mkl3TUNIN2dZY0Vv?=
 =?utf-8?B?a0NQUkM0Q0x6cnBBOVlFYXFPNW5NTy85RkFFR0ltbm5MNlNGdUFkd1lxR2Jj?=
 =?utf-8?B?U2prdTVKblM5OWVqUW5Za2U0WGFQajh4Z3hhRm4zQ1JydFh5bHRCbHNJLytq?=
 =?utf-8?B?RkhpTWkzSVNYaTFQd0l2bWRDN1RabEVsdE5SMkhRSHNObTd2SkZLbzZWa3dp?=
 =?utf-8?B?UDJuM3JkTTJweXRaMjR4TkJ5bWx4QUtoQlhOSjZydE0vZEZRU29ZdUVrcXY2?=
 =?utf-8?B?dVlPNjBUMDJIdEc1YktJbVY4TGs3WjVpTXFHbXZLRk1Lak1GMzQvOUs5Wjha?=
 =?utf-8?B?eHk0Z0ZUVnNPNW92WXZNSkFvQ3lRbkZTYTJQT0NoZ2JuY3pVZVlwbDlPLzRB?=
 =?utf-8?B?NkozbStoc2thNkdWUXJ6bk9DWXRUeUJ3SXRWNHJMZ01mQjE4ZGh5VDdwMTVz?=
 =?utf-8?B?dXR6aFJYM2lERTJjeXh5czVaekhoMDQ1azRIbGRaMGJnRENmVGs1OHNVdFV2?=
 =?utf-8?B?OGtaa2tEYXZRL01rbVIzS1dMejVMTGo1UDdxSlVzU05DbDkxUDFUNkVMNkRi?=
 =?utf-8?B?RGVKMTJTVm93a3F6elhxamZIRFRpSHVzWElPYUdXY2VVMUk1YW83ek8xdXh2?=
 =?utf-8?B?WFBtV3VkOHhaVE9kVEgxR2VIbVhBeG9MN1FoYmpZZi8vQW1ZVmZwSHFTT28z?=
 =?utf-8?B?TmdHWjNvcmh3STJvUXN2MVNIeU9DeTZBUms5MkRBRGY3VTl4Y01JOVlSSmxF?=
 =?utf-8?B?NXFpM3U2TURoTnU2azFrcnd1ekxsQkVWTkNWNWRFRHZrWkMvTjVRWlNBNHlu?=
 =?utf-8?B?aDdwOGY4cVBZdUZxV1BvMWNkWFlwbHZoWHIzUDcrd3VRQUFPcldSbGpJaE16?=
 =?utf-8?Q?7zgxUkIsYTeN4vbk=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bd290c4b-9e38-460f-54a2-08deb74dc4fb
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 15:29:37.9043
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +QXedpBcPSwAYALDpVN9eRqkbbPq0TTiRIps43ZT4gUE+jQv7Sd0Czzr0kx/jQrjXT9f5uBWrBN6OUSrSC8OGN0FWerrlhY/w1JvpfB1jEk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7310
X-purgate-ID: tlsNG-c1860d/1779377386-C4A7ADB1-2FFF5894/0/0
X-purgate-type: clean
X-purgate-size: 476

On 21/05/2026 4:15 pm, Jan Beulich wrote:
> Misra C:2012 rule 13.6 takes issue with RELOC_HIDE() uses inside sizeof(),
> as used by this_cpu(). Latch the address of the per-CPU variable into a
> local variable, and use that in the two sizeof().
>
> No difference in generated code for 2- and 4-level code. There's a small
> improvement for the 3-level case.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu May 21 15:30:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:30:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315425.1585239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5MC-000106-IP; Thu, 21 May 2026 15:30:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315425.1585239; Thu, 21 May 2026 15:30:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5MC-0000zz-Ft; Thu, 21 May 2026 15:30:44 +0000
Received: by outflank-mailman (input) for mailman id 1315425;
 Thu, 21 May 2026 15:30:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ5MA-0000zX-GD
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:30:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ5M9-00Bmcw-S6
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:30:41 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f2515-bab6-0a2a0a5309dd-0a2a450bcd50-24
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:30:41 +0200
Received: from [209.85.221.46] (helo=mail-wr1-f46.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f2521-212f-0a2a450b0019-d155dd2edc52-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:30:41 +0200
Received: by mail-wr1-f46.google.com with SMTP id
 ffacd0b85a97d-44a044cb827so4661959f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:30:41 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eaa7d9daasm4129691f8f.11.2026.05.21.08.30.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 08:30:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779377441; x=1779982241; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DAvMLbg/7zG1vkGGvBEOl2ZnGXTfXoDw/jP1mgIbf10=;
        b=fiJKwkZt05RIP4Ptx48RZuJeUXyiJrRs51rQ2NYxkq3+t9xfYCFePjG5b1WumOzmgA
         SLKVgCdi4tGkHCiLbAyhp3evyAjxF5mwj7YbK4e66tz37Ua7ld0/Qow1144thYQ5OVrX
         N09LFfSJec411+j2jb3dPoogdZqx1s/QSW2jK/TDafggoqgaVKBWCI0aHz3Yy5fDpk4k
         GAvM1zvl57VWq+9nBjPBck/Q12E97QjxmBUrmsy+16/hl1rMLlpnZDOomfDKwAdDtIo2
         TRTJAEjw0IStBOEkDO6izbZypfcwDKUVF71iCR/K8CY/mBaJ1mmjNXeIux4FDlNcYGrf
         31+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779377441; x=1779982241;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DAvMLbg/7zG1vkGGvBEOl2ZnGXTfXoDw/jP1mgIbf10=;
        b=sgzUGWE4/EeLNFtE5F/A6KtPCMseOF2vCzQkB2vUlEnjEFWihfH7aq39quwx+RSggz
         BkUzIOOF7VFZJgke3ADVOO9ifUC4X3PfBQoLnYKr4aSjNs0SMMBgO+dXI8qNz9IZ1thW
         UohCVg9UWH5nJapICDu7YooG4xx714wL4eCRm/zs/G0aoqyvi8cuxKaK1yFTqd+i66WW
         xvLR8ZvTS/5Hge6ytipGR/XltADAgTYBlhoe+1QwFwTya0PG6RxceOMeKtLMCfZNQEwS
         F9O7HuTOUBSFDDLDdsewtXmkyTPOQZ+UrHINYMyAsinKNzJSofvdOiBjo9fgY7Vyms0I
         M3Ew==
X-Forwarded-Encrypted: i=1; AFNElJ/4xbjkChYTw9N82zj2EBPW6rBJJkj6qk0qVqiMmx4zI1WDWHiHEK7/ra+h+Vw47krH4kCWP4Fzyvw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxfnbpJlVj/mg2GaCZAS2s9vG8lHH9Tpym9Fme74WdQBvsfhWE/
	yLw3oLmXu0xFUlmYY/WV4f9W4N5GvUQpCEHq+qMwAinxztv8xhg1h79xAWMjSsUqPg==
X-Gm-Gg: Acq92OG3u8u7cHozHzoTrr1+z2HkNQ7V7wvlRTPQ3R71gXRkcfOBE6y4h30ZhvpeoZQ
	KmykQJGkIR/Eekz+MnNOPUsMTyyCxcW4gZRvdpgYt6HGLZCuzCwN5Ui4M1lU5jjaEynkgki9c0D
	k1HpafQb+ozCWZExlyHQISHlInOGLD8qSdeXvXh2MQyDWZ+m2oLKqD+n798WkTxtN2X5XfDsXT0
	Q4Omw+NSkmqV861JTMeSY93/oaO0zSI7ImOhSXDkS69achvyua8mRqiJWkJTNlGqQ8gag4beug+
	ues8XS2da8Y0qeWlwCmQ3cmjfK8130tAODtZB9MmtMx9wL7ylo4ZGV2MlPgRNF121DkkssqRiEz
	RsSzNGzokM4EZvgutSu1YKHikTn3DwVwmr++jt1ZeHLbGDG9yXif6E86/bst9zVSrtZkl5ZoP/X
	3WOwKmSxbxcpI9hztCv0VzbWor1pJjWlLmpO6OlQs9o/twF7P5dnTFWXb7eqeKccDLbcvOufpFk
	p33t78HjgrDDDc39NbUKWYGQg==
X-Received: by 2002:a05:6000:25f5:b0:45e:8547:f217 with SMTP id ffacd0b85a97d-45ea410993cmr4607220f8f.37.1779377441014;
        Thu, 21 May 2026 08:30:41 -0700 (PDT)
Message-ID: <1c5238c4-dc03-4204-b5c9-f94ac4c0a65d@suse.com>
Date: Thu, 21 May 2026 17:30:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/tests: Fix paging-mempool xen_pfn_t format strings
To: Luca Fancellu <luca.fancellu@arm.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <20260521152344.2050899-1-luca.fancellu@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260521152344.2050899-1-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1779377441-1AD77F3B-9808D070/0/0
X-purgate-type: clean
X-purgate-size: 1515

On 21.05.2026 17:23, Luca Fancellu wrote:
> xen_pfn_t is not an unsigned long on all architectures. In particular,
> Arm32 builds see it as a 64-bit type, so printing it with %lx triggers
> a -Werror=format build failure.
> 
> Use PRI_xen_pfn for the GFN diagnostics instead.
> 
> Fixes: 66c982a5d3614 ("tests/paging-mempool: Extend to test P2M relocation")
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>

This looks okay, but while we're here ...

> --- a/tools/tests/paging-mempool/test-paging-mempool.c
> +++ b/tools/tests/paging-mempool/test-paging-mempool.c
> @@ -208,7 +208,7 @@ static int check_guest_marks(xen_pfn_t gfn, uint32_t mark_start, size_t count)
>          if ( errs[i] )
>          {
>              rc = -1;
> -            fail("    Fail: check mark unable to map gfn %05lx: %d\n",
> +            fail("    Fail: check mark unable to map gfn %05"PRI_xen_pfn": %d\n",
>                   gfns[i], errs[i]);
>              continue;
>          }
> @@ -216,7 +216,7 @@ static int check_guest_marks(xen_pfn_t gfn, uint32_t mark_start, size_t count)
>          if ( *mark == exp )
>              continue;
>  
> -        fail("    Fail: check mark: gfn %05lx expecting %08x (%u), got %08x (%u)\n",
> +        fail("    Fail: check mark: gfn %05"PRI_xen_pfn" expecting %08x (%u), got %08x (%u)\n",
>                 gfns[i], exp, ~exp, *mark, ~*mark);

... aren't the two ~ wrong here? The message looks to aim at printing the
same value as hex and dec.

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 15:30:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:30:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315427.1585249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5ME-0001EI-TF; Thu, 21 May 2026 15:30:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315427.1585249; Thu, 21 May 2026 15:30:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5ME-0001EA-Py; Thu, 21 May 2026 15:30:46 +0000
Received: by outflank-mailman (input) for mailman id 1315427;
 Thu, 21 May 2026 15:30:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wQ5ME-0001Dk-Cj
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:30:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ5MD-00BMfi-Oo
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:30:45 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0f251b-e002-0a2a0a5209dd-0a2a4506b186-18
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:30:45 +0200
Received: from [52.101.61.33]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0f2524-7371-0a2a45060019-34653d21f0d3-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:30:45 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY1PR03MB7310.namprd03.prod.outlook.com (2603:10b6:a03:52c::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Thu, 21 May
 2026 15:30:42 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.016; Thu, 21 May 2026
 15:30:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Gf71ehuu1QADiZ4w+d6WAL3lZy1764YgmsK0B0CM6BK/EOcGSDRz3AhY3kOv+T7BsKLLWC9U116IP8fAuK4dED89uyHCsLbEF0yfmItPeM0UzRi8ETE7t1YYNruEKvuoFOTNfk56TPIKuU114SF6ZfMih72shtfL2iZpdF0eRsKCSsA8xv4M7b1t2/NpMToafLr1EdyK092/sNy4ag80wdlFe75h0+nN0mMSdKVqdP62nuJqv9fSIbFxh4S6TVFsEN1fEgjRdaWl+QUJ3CeaBV79YvhfSK3krXEf6mQyxSXCVd5X2Jw+f2lS29JufDfNP4C2W9cuptWdemrzbARTPQ==
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=4FKR/++izjAJV7+dGLgHPPZgbI3gFgfQjtLQbfr2t4g=;
 b=KIMywvSIWlfB1gjc/KMhfpsTd7SSpa0tYWOHSsH4SXODSoX3l//Og4ncAL2kThmujBudT2lkvoPMBEAnx3zgMfA2AsX3bDYUD/LJhEfi+9TtBQ4kwEun06mXgBBx0knFR0x+lofJEm798c+3KExJbu7HAD47Ffrr1EZVZvcLuBzTvVTaeIwdxQr8DZb7o2GoHwCVb6H0/WReKyQKAfPPG/qTQcGePTFncfXtbnnL1VyXS47G2JHOolHWdx7ue0DBbLrpr8TX/VX3MUL+Aip8Rl3EQpXzUc1J+cKetzfYofQC0j6SrpBrRbPk66PzmKQ6/8cw2KYeazk/LP/wmnhnYQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4FKR/++izjAJV7+dGLgHPPZgbI3gFgfQjtLQbfr2t4g=;
 b=oVS1psdMp9p0xmGrXx2o3xQ61en9e8QvBLMhJx9sKXs1CU9tS+pKdRjFOPEEQeNGUtbc6mns/yu0VPkGGo5b1vAi8E35GuHVIIzZbMC4/HKEWPlR/WjKzmSv9pMVOKvP2/WcaBsPd3PbL7Eh0ZxwR3eo87XD573ev+ufYzMzV/M=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <6a2e00bf-64e9-410c-b0df-6f6832389525@citrix.com>
Date: Thu, 21 May 2026 16:30:34 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 3/4] x86/P2M: split a read_atomic() invocation
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <738daea9-ebec-4299-b0f9-49448293106d@suse.com>
 <80d2e824-e6ae-47c4-ba92-e023129ff209@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <80d2e824-e6ae-47c4-ba92-e023129ff209@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0204.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:318::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BY1PR03MB7310:EE_
X-MS-Office365-Filtering-Correlation-Id: 38d31dfb-35e5-4436-e068-08deb74de858
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|22082099003|18002099003|56012099003|4143699003|11063799006;
X-Microsoft-Antispam-Message-Info:
	Pz50WKhABcMEPTNbWz6+4S3PyojgJ1obvcxw4hf3dWYsSX0RdUlMWrDy26qfudkao3AW4/pfb73sVNQuzgkKtuxuP6i8uPrdk3btcGTU7WvKI9wKJ5D7YjCf5dHUX220vqRitUnMbkJ1qjZ72OIFhtaw+USLN7UXIGPZ4CyaP3kECVYibSWwU4T9bsfk1dCtGUPecSmaXeep1COjdPpMr6fMVvekw6l6HVA6Kv6qtoMnmg7A5BgzZ9gRcGEm8SfZyocjagMfaJPbR7NBbPfNGElWZOeQuLA1Huqj78hgHgxj060ThHJ30Fmefa5Ah3VUh2Nb44Mk3BeQPK2pqdT9I9sYHRx8KYMYZvqE4/KlCP9TlYM2CsB8dQA3fQoxg9mEh/Zw8S5j16GW7p1Wb5RCB9VSYTJeGthFHvVZOLx+NSWr8ej8iL4rbK1ZoyDzxKIQoP3WJFpFBuv1zjPuf8gn93hUIJmBZnAYU2uSZtE9DqOgZZ0r/X9AnV1u8+Ob+546W8NZuDBiiI13lKbCEWwthXWTOx1gd3RA06HHGJIqkykpTJtikPTNcGEDPtWx9okU6YeHbKmxpGYmLegxxoK5+PusrCQFHqhgoqvDgFaE/8qylczBZ4yMdNGgG6OPWKatabrqQov3xeQEwqiGmGoQs1QTBc0JrQljWqy7CRKXJ7RTFs29ACiToRLESwYIL8dQ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(22082099003)(18002099003)(56012099003)(4143699003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RkFxNmhkaXlpVEd4NXladVZTWUN4WElqMzdzcHR5UjFYS0VMNzBXZGtkRmgr?=
 =?utf-8?B?UTB4bm1HMlZSamdQdTVtRGNNdWdya24rZFRJK2FsM0w0WE5CbGtOb1JHT01k?=
 =?utf-8?B?K0x5QnNsdTZCb3FxbldsRUFmNHE4SkVtblRVUFp4dlZIQSs3M0FvSnBtYUhX?=
 =?utf-8?B?bWt3WHYwcVZLNFlJVjRsL2lqYk5ETHlvZTNtRXl3dWdlb0UvamFNdHlZelpV?=
 =?utf-8?B?VUJXUkJhTnR1RUUxRTdGY2pRVUdxZGtEMXg2YmM2VDdFTS9vZXZaWVp4MG1k?=
 =?utf-8?B?Z3RESzhGK3JjeXRXRzgxUTA2MGIvcytraENmSEFic3JMT0dJbnliUzVoM3Rz?=
 =?utf-8?B?OXBaNkZHTWdpeWxXQzlINnEvUWR5WGxiZmNsK1FyMDdmMGJsV01CamtPOXhJ?=
 =?utf-8?B?NCtlWDBOSEdhaGozZHJIUllSM3JYVVpRL2dSYkdMOS9xY29CcFl1NzdqV3dv?=
 =?utf-8?B?eThreFZTejBjaGY1THV0Y08wS2ZVL1lUMjF1NlUrMjV2WnJuWU9XMUpxRXZB?=
 =?utf-8?B?WDFtYUhEelliNnpjZ3ExanhLaWhNY3JBbXNESzFZNHZwd2NGalA2MHM4RHFl?=
 =?utf-8?B?cDNnQjBmcVZKcmxZNTVNUXBQVGNWZGV2SDF6L3F2WlBLeFpTQVpLbFIzL2Vk?=
 =?utf-8?B?ZFlUOGNKUnJuZE02ckRJbkQvVFFkeCtiZ01CY0YzT1hpU0xqMUpSSWRkQXpN?=
 =?utf-8?B?ZGo5Sm52VDRpc0owVms5UXhoWHBna3BqRWo5K1QrRWRsekNadmRXT3hQcFhM?=
 =?utf-8?B?QXZrdHBxdmxCUXhqUWwzQmdXN0J4UDdoZElWQ004R3RPSWRuSVQ0WXFEVlpq?=
 =?utf-8?B?YjNyYjBUdVlHRVk5anI3ZGRzYWxMUUtUTTBUajRkU2x2MDVoY3c0MkdVZWNB?=
 =?utf-8?B?OVF1eFh2c3dPUlBCb1hOL1VEcElBaXYyTmVYbFpNeGk1Z1A0VUFNOGRXSm1I?=
 =?utf-8?B?MUN6bzV6dk0wL0ZkWkptVVFWY0FHS29wb05qMktWWkxmQjVUZExiRTJGUmhQ?=
 =?utf-8?B?NEovOGFkZVJsekNuQktMaCtwNFRFZUI1UHRVVERRRHdLcXY5cGFMNHhpRDYv?=
 =?utf-8?B?cWxjVWx0eS90WS9Gby9OTlNNbHJURmVIUFVPdjIxTVFENk1LMk84R0NwcHZW?=
 =?utf-8?B?MWNhU2RjZHBRdDNNaGxXVnJ4SERGdkFEMzdLdWpGTStlTVo3K1oxOXEyZi9r?=
 =?utf-8?B?NjNxUXY4ekZBbklvYlB2MmoxdkpWWVNBZTRsTk5oak9URE9NRENEWEpaVVJY?=
 =?utf-8?B?R2pZN2hiNFJMMzhkczVYTUJOZndTYTlWdE9nbmxzYlZuZmt0bzh3U0tEK1pz?=
 =?utf-8?B?WDdOZFpBU0pKbUlyaDZmZHpBcE51N2JWcUppZ3hhSWtIK1lBcW9KNW5QNmpB?=
 =?utf-8?B?ajBXdDcvUEZvTlA2dzRkZjcrV05zaHpQRFRiL21yNUpHNDVoSEN3aTYwcWM0?=
 =?utf-8?B?ZS85U3pYZ0sxaFh0bFlzSmV3Znd1NnVrU1d4aCt3bzR4NHZIaEJtcGVSUjdw?=
 =?utf-8?B?bndIdlo4MlpzSmxXVnFKSVJIZk9pSHduY1NaQnhiNWhVdVlKck9hZXFPMmV6?=
 =?utf-8?B?a0o4OFJ1UUk4UWNnR1NNUHM0bkljeWdWYWdKVVA4NGZhdlAySmszc3J4d1lZ?=
 =?utf-8?B?MkhaT2ErUlNoaW5UQ1JzRnRvSTlmRTdJM2FmalViZTcrZUgvVU5CK1V0NVZ4?=
 =?utf-8?B?U25yNzdCamJxMW5INDJLL3V6VHZUVE53UWhLM0pXa1A3UURQVGllZFlnT0xt?=
 =?utf-8?B?Y1FyVTBRYXh1b2J2SENmNHlIaUNlNERiMmtKMlpBU0IvcUpiR2VWbGt4VFdm?=
 =?utf-8?B?S1NSOUhhZjdlN1hRcEw2cktHQnhzV3F2QndGajVzNHg0d2FIcy8vYStVYkxJ?=
 =?utf-8?B?TUU1Nk5QNkdKaW5iY2xQTzFEUTU5dWpYN0V3UzZYL1NieG5NaS9OendNdlFm?=
 =?utf-8?B?WE1VYzVnWHdzWHgyRmgyUUVZNlNuTmVTTVNKU0t2clppNkxCV1hSV0MvTlRI?=
 =?utf-8?B?Nnh1L3lYSmNIa0Faa3kwdTNWK05Ud2hRL3JZV0U0ZngzZ3lOVGRXMUh3Z012?=
 =?utf-8?B?Z2NXMUpDZjkwTU41ZzN2bVJFck45alpHQm04Qkord3ZlOUFwM29WNXhSUVVx?=
 =?utf-8?B?cUExZTNSYkVOVFc4M3FEbk1mOUhRS3lEdUVVL1BDVVJjQzd2VGVYd2ZQUC84?=
 =?utf-8?B?Y3pXa21GTlpvdGhoMnhIamdUTXhQMjJJUytUTzBta0ZmYTZodk45dnM5Skpr?=
 =?utf-8?B?Nk9DMVoyQVl0emd3T2NJZnZ0U0p1N3NqL0dVODUzMHBDMG53am5ILzQ2blRq?=
 =?utf-8?B?Vm02VU1rcG45MEExQ0h6TGJweUMrekc0N2xPcFRDQnN0dzVPckZ0amo3TG16?=
 =?utf-8?Q?778Yy+fI4mmLIwOk=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 38d31dfb-35e5-4436-e068-08deb74de858
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 15:30:37.2540
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: igAXssGbN24HOoePTOfN9DP+Y3ZaUc74tLOSauujiUdLgbSpBJpgVF84WbIyu9bMIS7iolRNozlaK0H/HBtRqHECu83pGqnWaBI4u8TGHPA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7310
X-purgate-ID: tlsNG-16d1c6/1779377445-8EF89D75-D5BFE43F/0/0
X-purgate-type: clean
X-purgate-size: 408

On 21/05/2026 4:16 pm, Jan Beulich wrote:
> Misra C:2012 rule 13.6 takes issue with pfn_to_pdx() and mfn_x() uses
> (deep) inside sizeof(), as used by read_atomic(). Break out the MFN ->
> struct page_info * translation.
>
> No difference in generated code, except for a line number change.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu May 21 15:31:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:31:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315440.1585259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5N0-000234-8r; Thu, 21 May 2026 15:31:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315440.1585259; Thu, 21 May 2026 15:31:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5N0-00022x-3L; Thu, 21 May 2026 15:31:34 +0000
Received: by outflank-mailman (input) for mailman id 1315440;
 Thu, 21 May 2026 15:31:33 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wQ5Mz-00021X-9C
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:31:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ5My-003blm-Lt
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:31:32 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0f253f-2eae-0a2a0a5409dd-0a2a4504aacc-36
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:31:32 +0200
Received: from [52.101.46.35]
 (helo=CO1PR03CU002.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0f2552-1dec-0a2a45040019-34652e23de8a-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:31:32 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY1PR03MB7310.namprd03.prod.outlook.com (2603:10b6:a03:52c::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Thu, 21 May
 2026 15:31:28 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.016; Thu, 21 May 2026
 15:31:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gJHfziCYRZI1ovuSmRkOOfgV3wo4+L7hNxzUViZlq9RW1ejz0lusMTEDfWgLV2snEFmS57NxnhyOSmzDHQ5ZcW0oZd9sNBwvtTfDma2+777lg38EPCrJBLrttmaj8q+esAzFL1+8+VS6gyzMlXCNRkmsWQ/zn9nitcFHLCYc/syzJlzoCnGDfgzgReDfx3VU0AGgM4hqQ7pmq1G8wcezmyVhJKFX7T+tmscoMzAx1wWSE5ZZ1q2+1IG0dC3FStfLBjRpmupGagk0EuM8W6FM45NsgsfuKsztzeaM4qq99dMeJ1YXAyXsqpAtn724MvClyVBOHnSIaWHZ03o+lQxk2g==
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=vGQPXkNbL817b+o870HF8Buf3s3YT7nC/t7RIeyWlQA=;
 b=KStFJa7bzXuv+O6C12LxatOwc+EXRLoZCrEPzN1nMdpa/YiDjczRR7yWwHXgrTteVkAxmZVYPRl8XWLVg2dsegjbk+wtRkkqIPAmnErPXZFgHFD5KHLByLhNvmH7lHpkSB1qisBBJ692kF0fBqcVBPF88TQ1m8qIgOyafaK0NG1Nmh5Tr6Cpk/CqfR4fiY3Mh9P2Biv1YhW9x2nROKlThjtDxPFsA+SSl7RtiZjAnzdL6aYY3sd/8LWKmOgAO35Ya0nlM0KNSbvW8aE4GMVmwQX86QOUrCZIG7L77qbmuM0dqd5SLeQbR00jgcjUfxJvNGOrkUMw1QcyrYrZkdzy7w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vGQPXkNbL817b+o870HF8Buf3s3YT7nC/t7RIeyWlQA=;
 b=uf/ht0j8EGECgFCQHUXSHfrM1mXAK0OjbFMvUylmNwQjdZNDMEWwzj0Re28tfB7fFkcqYbZc7s3j9jyGXhMDsgGvE7d2Rdfp8pXRjLaB02Ke6kRrWxsfs4t/pPPXdkyF2fj/qXM0D8j2FgorQJukfclPgHhUfHfZWfIlocBsMHI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <8e779783-cbad-4e1c-9401-6eb9f45a84b9@citrix.com>
Date: Thu, 21 May 2026 16:31:25 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 4/4] x86/PV: split a get_unsafe() invocation
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <738daea9-ebec-4299-b0f9-49448293106d@suse.com>
 <e8932c52-c030-492f-af87-d37f87ea8f45@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <e8932c52-c030-492f-af87-d37f87ea8f45@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO6P265CA0009.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:339::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BY1PR03MB7310:EE_
X-MS-Office365-Filtering-Correlation-Id: 7fe01c7a-6661-4b8b-0384-08deb74e06c6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|22082099003|18002099003|56012099003|4143699003|11063799006;
X-Microsoft-Antispam-Message-Info:
	9DBmc5Xxy83ug6JicpkdxADu0nEoHjtvc7PHSkko4dcMW4ZGcDx22L3v9j4Ph3X1Wetwn3Xp0i8XuqMt91Ukv5vK3Qw05V3cbFHd/NuvfbVcrMlY0Edop0d7gQP8aYQIcxjskAAtT0ESg9LR3QCs9ghV4uVOlWUAYUEfTJZaCst0Il3hRx9OtW0gQbN4vWdjZzwKxE5Z85vmvJg4rrOu2A3gl0rHXvGoTiacxUSb5lwqrrgBn8gDZvpt6f8EG/T7Frzni/Oqr+p5ax4DUERwe22go9GuajakBQRVMuH2ESxf8zFSDZJRlOG7Hu5AVg7AalXOBm3zw/FaWlW8zTRTI7r2wmHWfOoKuFiPD5rLxTsqtMiqCnwGMqdHKH32WxCUrVxMCokFjgbZsU8CfPZPS+MCYtoQeKIxRY4GSbchjX1M+/HCzR9KXwoLF+WFMr3rllERZJL90rrRHRpbmBjNPrdE6mM8NqIxGlBfRpOE6YEVAbzY1rsR0BJroDV+EZXvTVY2B/zviBgfnqz0BbU/y2NNE65y8rfwAIM5GxZUj/AAXZ0n86MDPwCZA5ntdxMcWGdGQahAjopTg9o+G0XMVQ0nm3b6MAd9mMXJhHzULMHuR/gKudHYhhKYqEoJoRAGYISDTN5emOw5bEpuT43mcEoc58/9r2N/2R3xWxtFZ1UDDKEaFOeTUUCtx0073JPH
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(22082099003)(18002099003)(56012099003)(4143699003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TmpuQ1Y0TnpYTUZyMFY3cm81R3hqbS94bmg2TEROS1RpbmIwc3lqdHcrQXFF?=
 =?utf-8?B?MXNwZ2xXSWovcXk4UnVtSmhMQTdZSzJBMXBrRVJESjJaNUd5UkdYZy9sdXFU?=
 =?utf-8?B?T0lIbXNndU9yaWhmVFM4b2VQZ1JNSy9ZVWc0SXp2VmVVbUU2MFdCUlM4VEZv?=
 =?utf-8?B?MFlUc0pvaVR2UFFwRXFCVmF5WkRxdGxzeTRCMDQ3ZEpTWEE0RkUxYjNQNkdJ?=
 =?utf-8?B?Si8xQTErV0NHMmpDUXBlK0tSVlQvckh6aUhnTHVTUURDcHZrRWJNbUF6K1RC?=
 =?utf-8?B?c2Z6ekdwTHlqbzZ1SW51VHVZUG42QlNZdWtGcVIrTXIwZEUwSVIzVVR2VGF2?=
 =?utf-8?B?d2pNTVpsOVVPbEg2WW9sRi85b09WWmo1Y1Fvemw2SVpXUjFWTUp5M29YaGJk?=
 =?utf-8?B?aDBTOWNDZTVZVlFDeXJlWVhkMjAvOTJOT3Z0SkoxdzUvK0FKeEJsQzhwSzYy?=
 =?utf-8?B?eEN1VXJsZnBOeWJuMmNYYjdZY1ZkTGxXcWdTdEdSYitrcUhPUWhzU1ZDV2Fs?=
 =?utf-8?B?VldmQnBReTZIL05uVWNWR1ZERVlrWEt2VmRndGJGTlJhc3NFZlFtZmRRSER2?=
 =?utf-8?B?ZGx5U0QyK1gweUtoM0djT3Y2WTJ6RWF3MDZ0QjZoNHBlTVBYaHRLVFpOOTJn?=
 =?utf-8?B?ZXVMTlVOem5COHluMm5GalNiN0p2ZWxIWHRkL0s3bHVyTjBWcTl1Z05iTG5P?=
 =?utf-8?B?dlVsdDJES3JUL0MvTlZnVVhpUkJlVXN3MDFzSVJybnBMM1dtYkZ0QWlVUTNh?=
 =?utf-8?B?NmJpYVJES0l4UENHUnpWYWZlV1VxaWJ2RzhyMjhTS0wrWWlqZkxMc25ibDN0?=
 =?utf-8?B?enVmQmhKY3cxdFlyZlF6aDV6MUV0cC9xWjRKamY0NnQ5TERQRS9XemN3K283?=
 =?utf-8?B?NWFMVXI2WXpGVVIxNU9OcHQrUXA2MWdNdmlNajZCbkloMDJHd1BrMTd4c0Rm?=
 =?utf-8?B?c2RubWpzK2h5bm5ub1ZzcFc3b0pGZVBsZmUrYWd4cXY2VkFzOU9jak56Vzlm?=
 =?utf-8?B?SzdiVE5SenpXN3lFSHEraGR5N1pmcWtoR3F1Y2pydEdoVVkweU9yM2U4NWFu?=
 =?utf-8?B?ZmR6bm5XTlRMbms2alAxK2JzMG5aUUpPQzlyblNQSlpCd3hqdko0S0luMURI?=
 =?utf-8?B?eXdwNTlnNlVMT01uUzk0WkZlWkRLWUxsVXhRaFFBWWZXMEtzQzhFdEd2bHlZ?=
 =?utf-8?B?dUNtb2VjektqbVRCTzBib09weldzdDhxNDZSRUluV3ZSb3Y2Q3BldXdTRkdV?=
 =?utf-8?B?Q1hFZTZHakVMTkFXZE9mc1NKcnpLQjdnaUQ5RmJQbjA0VHRVS3pqcFc2ZUpP?=
 =?utf-8?B?eG55TForOVRGTk5PSWIveklqOFlNVW83SjNydStSSjBPYktadm1IQzh4dVo0?=
 =?utf-8?B?S0NGbmFVQ0hUcUYzV0lRNlBtcHpsckQ4eDBLRlFhNmE5VEdhUW0zTnhjVCtL?=
 =?utf-8?B?WEg2Unprd3VFNGZYQk03VzMzd2swL3RCSGZvR2VoQVp3UzlXRzRQbTkvOCth?=
 =?utf-8?B?cElKWjRIY2V1YVlMZWdiZVZ0cFVUZ3pBbTBDUXk4Y1RnTG41ZjBRSkdJQlY3?=
 =?utf-8?B?Q0xLalJVTnZKNDFFRWJaZVNXMGg1SGZkVzNLZktwaVRRVjBCOWw3RXJkZFMz?=
 =?utf-8?B?eS95eFVmd1VBa004MjlIdEVGUzZpZXRaVWFrSlNXL1BBVmlUNDNLZGROTCt2?=
 =?utf-8?B?MDRjRkYvd3FOQncyaHpOYm90ckVLUThOUzBobjN6MEs5eXQ2MmlzTk5ra3RP?=
 =?utf-8?B?Ukh2YWtDczVvK3ZYWGowMldFNVRnaXlVcXV4SzZIWGxaT3ZhVE1PaG8waHRJ?=
 =?utf-8?B?bmFWUnQ5MXZFSEVYNXp2c1B0MCtQTjNNWi9vMkx4c0FtbTZDWUt6QnVyUUV3?=
 =?utf-8?B?RFg4Rm5RMlJ2clQ0OFE2eUhwSWJyM3NpYTZrSldPWmVkc25JOUVsT2dabGw2?=
 =?utf-8?B?YjNhRHdyYnF3OFRGbkhCQnJpOCszM0VsdVJBNnRDSnloYmpzbWt3MU5TL3Q3?=
 =?utf-8?B?WUx0QmFIZHZMbHhxSDlDVTNuY21zU2FYRklJK3Q2b2Z4di9UaHhLQmh3amNp?=
 =?utf-8?B?WWsyWDZacElSWWdNQm5wNnBQdk05czVQZVhEYlhqb1pSa2hSdHl4ekZDbFRz?=
 =?utf-8?B?M0dOY1B4clZUeTdMYWhMZmlQMzI4UlY4NUZCZkVWcXBxOVFZVjlCWG1LTVg2?=
 =?utf-8?B?YkpnbGovZTliUm9GRjJNTlZTRTJyYm9EcU1Mb1NCcjlhRURSeW81bFpSOWdk?=
 =?utf-8?B?YVJ3VUtMbWllUFA5V1hrbWQwYnJZbFVsQnYwdUppZFJISUhpcXR5UlloamZj?=
 =?utf-8?B?UjZwajJocmhuTXBaa1VOaHU3bDR6Y3FYTWoyOE0xQTI5VGxzM2k0aGhVZzYz?=
 =?utf-8?Q?NoARcpljqRi6DXsI=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7fe01c7a-6661-4b8b-0384-08deb74e06c6
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 15:31:28.2960
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9ipzFrOdwDG7xX92H7U385XzjcQDSkX3Gx/bf3DHfh2g6MaPk+YbWEd0T8i5MKS+++ldSeu6+hsfAKtBMnTIqxSZ6GKZRS4LbXAlQWe11nk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7310
X-purgate-ID: tlsNG-ebf023/1779377492-291763FF-9C98E5D4/0/0
X-purgate-type: clean
X-purgate-size: 324

On 21/05/2026 4:16 pm, Jan Beulich wrote:
> Misra C:2012 rule 13.6 takes issue with the gdt_ldt_desc_ptr() call
> appearing (deep) inside sizeof(), as used by get_unsafe().
>
> No functional change intended.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu May 21 15:46:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:46:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315458.1585267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5bL-0005Ao-Bc; Thu, 21 May 2026 15:46:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315458.1585267; Thu, 21 May 2026 15:46:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5bL-0005Ah-8d; Thu, 21 May 2026 15:46:23 +0000
Received: by outflank-mailman (input) for mailman id 1315458;
 Thu, 21 May 2026 15:46:21 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQ5bJ-0005Ab-QC
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:46:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ5bI-0039t9-PX
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:46:20 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f28b2-bab6-0a2a0a5309dd-0a2a4502eafa-30
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:46:20 +0200
Received: from [209.85.221.54] (helo=mail-wr1-f54.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f28cc-af86-0a2a45020019-d155dd36ec69-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:46:20 +0200
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-44a14580111so4758449f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:46:20 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eaa7dd9e6sm3613936f8f.16.2026.05.21.08.46.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 08:46:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779378380; x=1779983180; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2DtVtonbXLWM9u5aopqTSLiDY22wF3t27p9OTaAMGfo=;
        b=EMS5XrCVmHBnpt2zaKnFVbdTHDFjD0FEaSv2SJ0aAYwzP3qwHLH3TPV3SXjY4tyIKt
         tsO8q5AEfKQtPQPe1reg8Nsr8pZpsE+ikxhgCPppBvLEbv4YPlSsfMSn9rx2gylftWv1
         WJXER4iDyQ6dU3p5sHPD5AmLkJeriF1W+hVBlI/yclOVjGlEZkO6cQfUV/el0mCtQQd9
         UBUmpLhmqMXnGyiawNfPj5JFOHUF85oI0f5Qj0QI8p/0ryWTE8/3YieVklIyq5rlk+jf
         dSXO0dS9skHhptnsw8OZ2O3eWTi5FIGwj7rZV6sqkNopl45XuNopcDBHkIW0vx6sNBhO
         D5Uw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779378380; x=1779983180;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2DtVtonbXLWM9u5aopqTSLiDY22wF3t27p9OTaAMGfo=;
        b=M8arZWJ9VHwou82H5NRu17ggoOhmPM5ES8glXIAWccl3yXnkGPPOo8gFZYjBmvSMzv
         TZgqqOfmX0uIdcXzTvdiNbW0kq+QCm7mBmDDBHglfg9mlFJ5eeQ6oNvwRWwp5xn7Va01
         BC/sSBP8rhoMk7nnRNN5U5iXDQmnWEFLwKTVjtbpWJmViDBjHB2HwA8cIY9i/muB3cU0
         9TPwgEHtEnnBZpnA3Y1h7aPBaVw7y8KNt8odGYlqkmP/yEYVIlQ7QTgZCos1bxCTC3nX
         EdqHVaVMwNYYuMkFWcZL/ujA8UAR24MqeNsD7LKgqYY+omuNldHxXrhPQlnA7lS8x89U
         dG2w==
X-Forwarded-Encrypted: i=1; AFNElJ81vJm3cfN+kfNdKneQY0dOC3/hBF/8oXwYyoRijV820DXfMq2t+GgN7NVnMhWHi7Gl5VvqzT4k2w0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxXM7W+4gnDg2IQVEq1cBmHFjx4dqW36MTRJm6Gkx6Y3zCSeTB9
	cVOL4kHsPlZS9dk6+WssPkL5K8KQH3b89q5sWLqSdmn+GmnvnCQBY1c4fHIYCBDYYA==
X-Gm-Gg: Acq92OF3VuaHvtOdbNhO3due9X9087M9e+ld3MpfjmCPId/wU7RSTXiJMLsZxLmtMrA
	2IojqZr+3/tdPePxzmI1EUfQ5x/AiZwb0JdttCXgub3uTPmrXDAbW7tr34iy4/EyZEkWClxEjSz
	zAiObxmJp/cShsbO/wLGy01cinSZjQVXLl4wDMdWHV8HBM1KmAARjk/SvQQdw+O/zwqP9I64TUY
	1qMgslO3IPriqvoa+/k2Ve07R7s3APGrdHzZiLRP5JfzcWFkeMfBn70WlVJqs9EWXQoStZIzC+8
	eE8CMKp4SmSmgl/eBuLTj8f7jzx/7M7k+c35g3WMZB8fGb0RhwTaOSymcvhIxaM+MUC0iQKTy9S
	YsjmyO2Hj6RvZ/ig4CYoTn5nLdGpzB628iBf9yDKDSzX0f+68ykbzLadGFNJiG4STIh+BRf/TRf
	usIEjEfEUZHhxzlWB2aI69wLix4c9dR5Be7gNB0mDvdL+7qhxgbcvROMDm3+fLbiPiLrSgEXKAX
	v4mxtowDvBGYqTLFfzAx957wAv1bhrGMI12
X-Received: by 2002:a05:6000:2383:b0:45e:651c:47bb with SMTP id ffacd0b85a97d-45ea3aebaebmr6284289f8f.28.1779378380025;
        Thu, 21 May 2026 08:46:20 -0700 (PDT)
Message-ID: <3e2ad5b9-ef65-41fd-87bf-823b98fa0c3d@suse.com>
Date: Thu, 21 May 2026 17:46:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] docs/process: document AI-assisted patch tags
To: Cody Zuschlag <cody.zuschlag@gmail.com>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech,
 michal.orzel@amd.com, julien@xen.org, roger.pau@citrix.com,
 sstabellini@kernel.org, xen-devel@lists.xenproject.org
References: <20260519142011.30276-2-cody.zuschlag@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260519142011.30276-2-cody.zuschlag@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1779378380-8256B161-0813B80E/0/0
X-purgate-type: clean
X-purgate-size: 1771

On 19.05.2026 16:20, Cody Zuschlag wrote:
> --- a/docs/process/sending-patches.pandoc
> +++ b/docs/process/sending-patches.pandoc
> @@ -195,6 +195,25 @@ E.g.:
>  
>      Requested-by: Jane Doe <jane.doe@example.org>
>  
> +### Assisted-by:
> +
> +This optional tag can be used when AI-assisted tooling contributed to the
> +preparation of a patch.

Noticed only while reading your other email, plus checking the Linux
wording: s/can/should/ at the very least? (Personally I'd make it a
requirement.)

> It is in the format:
> +
> +    Assisted-by: <tool-name>[:<model-version>] [tool...]
> +
> +E.g.:
> +
> +    Assisted-by: Claude:claude-3-opus coccinelle sparse
> +    Assisted-by: ChatGPT:gpt-5.5
> +
> +Basic development tools, such as git, compilers, make, and editors, should
> +not be listed.
> +
> +The person submitting the patch remains responsible for reviewing any
> +AI-generated content and ensuring the contribution is correct, appropriate,
> +and compliant with Xen's contribution and licensing requirements.
> +
>  ### Signed-off-by:
>  
>  This mandatory tag specifies the author(s) of a patch (for each author a
> @@ -209,6 +228,9 @@ E.g.:
>  The author must be a natural person (not a team or just a company) and the
>  `Signed-off-by:` tag must include the real name of the author (no pseudonym).
>  
> +AI tools must not add `Signed-off-by:` tags, as only natural
> +persons can certify the `Developer's Certificate of Origin`.

Linux emphasizes "MUST NOT". I think that's advisable for us as well. I
also wonder whether some of their other wording might be worth taking
verbatim, rather than making our own, slightly different variant.

Nit: Wrap differently to make better use of line length?

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 15:51:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 15:51:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315467.1585277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5g5-0007ep-2q; Thu, 21 May 2026 15:51:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315467.1585277; Thu, 21 May 2026 15:51:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5g4-0007ei-UY; Thu, 21 May 2026 15:51:16 +0000
Received: by outflank-mailman (input) for mailman id 1315467;
 Thu, 21 May 2026 15:51:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQ5g3-0007eb-Ns
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:51:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ5g2-003eSf-PA
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:51:14 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f29f2-2eae-0a2a0a5409dd-0a2a4503c5f6-0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:51:14 +0200
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0f29f2-672d-0a2a45030019-d155dd29dd1a-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:51:14 +0200
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-44a74032ff8so4640194f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 08:51:14 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eaa93633esm3582915f8f.29.2026.05.21.08.51.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 08:51:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779378674; x=1779983474; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PieY2pQCCzUH4HvZvOpg+9b6oKl0+43Sg85jO+kPtXM=;
        b=M4JGarKCbyyapYgoWHiopSMictMEXSAIXPhe7YRcej2nDvDZ4/sIw5yieosLDnNDNb
         XgEHHbWFIsCF+T9e/Ny8W8bg2L3z7CP62oaosecqShB7pwgNOy1yVE15rvTzxSPRdauu
         DIC1mdfh1tyelKq0xCaXHEpdq/Is5B4pP8x9natH5fMSs1WlYK/vgfwiGXpjLQbstXtL
         6Az+Wxz2ohswuy2bDrkMDz2uLQ30AgveGscT9lUfwa0Un9JslHSyRXWh4lp+p+Ka2rJp
         hmA2+h2E5rCtRPAm+ZoSiOmexrGhZWmYiuq69qAJTRHLyYr5x+wG7HtvY8LEHFMp/YhY
         eNfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779378674; x=1779983474;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PieY2pQCCzUH4HvZvOpg+9b6oKl0+43Sg85jO+kPtXM=;
        b=SP+kvJZTjR059Uh+0Yr5vZfTOWt6YYGU0xRJd5IO7Q840XXO/u3xkkiwmVdUWedDgj
         fGipxQux89ZojC1ts4BBNcKieQkPNJctFXglPA3lV7AFtTXGkLZZoCKQ3+FfIw9lfdsL
         DTuImJi1JuSZp5CMIyWcLRZ4zzBNcHQZ2IANGAjXDxL0ozFms/vQLD1KUzSSn4Qm0Mzy
         yGhzCFyiAp/hMLu6fytCN3frutLPFXrqLOJC+h/hOO23uDqqNhEXSSFAQ4rv6u6YIIgG
         pW9+AoGOzwDYWYA5P4P6dvedVD46IvxQavxmbAATeBNntzc7U93l3zfiCQJr2dzXelFQ
         39PA==
X-Forwarded-Encrypted: i=1; AFNElJ/dsnJbvryu6P1JolAmPr4U4AeA8s4vp07hBrnWQcFlX/dtXw95opo5+XAo4qj1vYfAayLFLDvgUj4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwRR/Y+X6RyPyMKR8gfT77+K0dO7X0prO9j75YSdQ4YQU8j2pGK
	PMv6j4Dq/oLoiv0aIUJJ8n2G0wlcabc3zUwJUswj+a9m2hWMe1IOsUjR6h4v/0NgzQ==
X-Gm-Gg: Acq92OFxw58SCOjB/xdUTKnkNHKnW7dJDuR0DMQhxikhSI651VypfHJXYb7TGldp6SC
	3yfyGkCgW0iJqVlUlwa17V4suc4XH0LQVc7+PYVfMxACH7CUq7DhuorP7viEjblLk+11ughCNaM
	Jz3LXJs5anUZ7jqzuO78r257mE4xoRipdZH7TJ06Hg1WdIdG+g8SNa9jNcABXgF3h7th+xqbnZJ
	dpqlNzlX/dlDOuQkt+nLohUcAstZcuUZiL98SipOVRQv0keivL7Gd7T9QnpTb7GqvHDwOSrtflh
	S8H5be32oCkv4EJP61ACBy1/2opOpVHrvPsdXYVsKhHDxnzinR/W/G9iinXWwAsWCX8ImHXkOPn
	uLAIwjZOwOe0V7wVxVwNVds9jZc9e4VhQ/XPLkxVz0Jauqdx8U+y6dJprgsKqhl/mJ7Byu6Pbg9
	phlvGGb2Sa74PHXoenfltJGyWeRaWIRMo+1bPxOZwWiaOd3x2MaJboaay5HpKYowvkefoWAbU7s
	kwzkoorzGh3aXE=
X-Received: by 2002:a05:6000:25f5:b0:45e:8547:f217 with SMTP id ffacd0b85a97d-45ea410993cmr4707466f8f.37.1779378674189;
        Thu, 21 May 2026 08:51:14 -0700 (PDT)
Message-ID: <ca7c7f2b-ab85-44ec-a62f-1bab60d045d6@suse.com>
Date: Thu, 21 May 2026 17:51:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 v6] x86/svm: Support vNMI on capable hardware
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, Jason Andryuk <jason.andryuk@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260514175623.1869042-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260514175623.1869042-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779378674-3BF6A938-3CD94CD7/10/73395122804
X-purgate-type: spam
X-purgate-size: 1848

On 14.05.2026 19:56, Andrew Cooper wrote:
> From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
> 
> Starting with Zen4, AMD CPUs can virtualise NMIs for a guest.  On older
> hardware, determining when an NMI is safe to deliver is a challenge and Xen
> does not handle all corner cases correctly.
> 
> With vNMI, there is an enablement bit and two new bits of state in the VMCB; a
> pending bit, and a blocked bit.  These directly map to the CPU state for
> handling NMIs, and are maintained by hardware during the running of the vCPU.
> 
> When vNMI is enabled, have svm_{get,set}set_interrupt_shadow() work in terms
> of the vnmi_blocking bit rather than the IRET intercept.  This allows an
> emulated IRET instruction to re-enable NMIs.
> 
> When injecting a new NMI, simply set the vnmi_pending bit; hardware will
> deliver the NMI to the guest at the next suitable juncture.
> 
> One complication is that, when delivering a second NMI before the first has
> completed, the mix between common HVM logic and SVM specific logic will try to
> open an NMI window, malfunctioning as it does so.  When vNMI is enabled, short
> circuit this to not consider NMIs blocked.
> 
> Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <jbeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Teddy Astie <teddy.astie@vates.tech>
> CC: Jason Andryuk <jason.andryuk@amd.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> For 4.22.  This is somewhat overdue and makes a concrete improvement to NMI
> handling on recent AMD hardware.

In particular with this remark in mind - should I perhaps pull this over onto
4.21 as well? Or are there dependencies I'm overlooking?

Jan


From xen-devel-bounces@lists.xenproject.org Thu May 21 16:09:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 16:09:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315481.1585293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5y3-0003c7-IL; Thu, 21 May 2026 16:09:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315481.1585293; Thu, 21 May 2026 16:09:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5y3-0003c0-F1; Thu, 21 May 2026 16:09:51 +0000
Received: by outflank-mailman (input) for mailman id 1315481;
 Thu, 21 May 2026 16:09:51 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wQ5y3-0003bu-0c
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 16:09:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ5y1-003iDW-Ny
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 18:09:49 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a0f2e3f-e002-0a2a0a5209dd-0a2a45089fd8-26
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 18:09:49 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a0f2e4c-63b5-0a2a45080019-a0658309dab6-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 18:09:49 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 7549A8242082;
 Thu, 21 May 2026 12:08:37 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v3 0/2] tools/tests/native: Native test environment for NUMA claim sets
Date: Thu, 21 May 2026 17:08:06 +0100
Message-Id: <cover.1779379609.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1779379789-BD96DDB1-79916713/0/0
X-purgate-type: clean
X-purgate-size: 4199

Dear reviewers,

This patch series introduces a native test environment for Xen,
currently focused on the hypercall API and exercising the page
allocator APIs in native test programs. The available APIs are:

- The DOMCTL APIs in xc_domain.c, e.g. xc_domain_claim_memory().
- The XENMEM APIs in xc_domain.c, e.g. xc_domain_claim_pages().
- The SYSCTL APIs in xc_domain.c, e.g. xc_availheap().

Where needed, test cases can call Xen functions directly, and
can check the heap state e.g. to check consistency. Any issues
can be investigated directly without rebooting a Xen instance.

The second patch adds regression tests for the NUMA claim sets
v7 series, so this series depends on it.
Please help to review/ack it. It should be eligible for Xen 4.22:

[PATCH v7 0/7] xen/mm: Introduce NUMA-aware claim sets for domains
https://lists.xen.org/archives/html/xen-devel/2026-05/msg00363.html
https://patchwork.kernel.org/project/xen-devel/list/?series=1091810

For local review and test, you can pull and the claims-v7 code and the tests:

$ git pull git@gitlab.com:bernhardkaindl/xen.git claims-native-tests-v3
$ make -C tools/tests/native test cross=y # see tools/tests/native/README.rst

Thanks,
Bernhard Kaindl

Changes since v2:
- Replaced shims that mimicked sched.h and mm.h with the real Xen headers
- Updated and extended the tests for the NUMA claims v7 series
- Changed test calls to use DOMCTL, XENMEM and SYSCTL APIs in xc_domain.c

Bernhard Kaindl (2):
  tests/native: Add native Xen test environment
  tests/native: Add native tests for NUMA claim sets

 tools/tests/Makefile                          |   1 +
 tools/tests/native/.gitignore                 |   4 +
 tools/tests/native/Makefile                   | 206 +++++++++++
 tools/tests/native/README.rst                 | 166 +++++++++
 tools/tests/native/harness/common.h           | 280 +++++++++++++++
 tools/tests/native/harness/domctl-shim.h      | 228 ++++++++++++
 tools/tests/native/harness/domctl-wrapper.h   |  28 ++
 tools/tests/native/harness/memory-shim.h      | 201 +++++++++++
 tools/tests/native/harness/memory-wrapper.h   |  42 +++
 tools/tests/native/harness/mm-wrapper.h       | 118 +++++++
 tools/tests/native/harness/native.h           |  81 +++++
 tools/tests/native/harness/page-alloc-env.h   | 254 ++++++++++++++
 tools/tests/native/harness/page-alloc-shim.h  | 328 ++++++++++++++++++
 tools/tests/native/harness/sysctl-shim.h      | 155 +++++++++
 tools/tests/native/harness/sysctl-wrapper.h   |  38 ++
 tools/tests/native/harness/testcase-asserts.h | 310 +++++++++++++++++
 tools/tests/native/harness/xc-domain-env.h    |  77 ++++
 tools/tests/native/harness/xen-macros.h       | 118 +++++++
 tools/tests/native/harness/xenctrl-shim.h     | 170 +++++++++
 tools/tests/native/host-claims.c              | 248 +++++++++++++
 tools/tests/native/node-claims.c              | 230 ++++++++++++
 21 files changed, 3283 insertions(+)
 create mode 100644 tools/tests/native/.gitignore
 create mode 100644 tools/tests/native/Makefile
 create mode 100644 tools/tests/native/README.rst
 create mode 100644 tools/tests/native/harness/common.h
 create mode 100644 tools/tests/native/harness/domctl-shim.h
 create mode 100644 tools/tests/native/harness/domctl-wrapper.h
 create mode 100644 tools/tests/native/harness/memory-shim.h
 create mode 100644 tools/tests/native/harness/memory-wrapper.h
 create mode 100644 tools/tests/native/harness/mm-wrapper.h
 create mode 100644 tools/tests/native/harness/native.h
 create mode 100644 tools/tests/native/harness/page-alloc-env.h
 create mode 100644 tools/tests/native/harness/page-alloc-shim.h
 create mode 100644 tools/tests/native/harness/sysctl-shim.h
 create mode 100644 tools/tests/native/harness/sysctl-wrapper.h
 create mode 100644 tools/tests/native/harness/testcase-asserts.h
 create mode 100644 tools/tests/native/harness/xc-domain-env.h
 create mode 100644 tools/tests/native/harness/xen-macros.h
 create mode 100644 tools/tests/native/harness/xenctrl-shim.h
 create mode 100644 tools/tests/native/host-claims.c
 create mode 100644 tools/tests/native/node-claims.c

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 21 16:10:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 16:10:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315489.1585302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5yS-0004yQ-Qd; Thu, 21 May 2026 16:10:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315489.1585302; Thu, 21 May 2026 16:10:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5yS-0004yH-ML; Thu, 21 May 2026 16:10:16 +0000
Received: by outflank-mailman (input) for mailman id 1315489;
 Thu, 21 May 2026 16:10:15 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wQ5yR-0004y5-0A
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 16:10:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ5yQ-003iNH-Co
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 18:10:14 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a0f2e5d-5cb7-0a2a0a5109dd-0a2a450286d6-26
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 18:10:14 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a0f2e65-af86-0a2a45020019-a0658309b444-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 18:10:13 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id A7E9E8237B6C;
 Thu, 21 May 2026 12:09:01 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v3 1/2] tests/native: Add native Xen test environment
Date: Thu, 21 May 2026 17:08:07 +0100
Message-Id: <7b5f434e3bf602edadd5387936b80bf3079885ec.1779379609.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1779379609.git.bernhard.kaindl@citrix.com>
References: <cover.1779379609.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1779379814-837622C1-C55CBD39/0/0
X-purgate-type: clean
X-purgate-size: 109683

Add a native test environment for hypercall testing that runs
without a Xen instance.

The initial focus is the page allocator (page_alloc.c) and its
hypercalls. In general, APIs testable with this environment
include:

- DOMCTL APIs via xc_domain.c, e.g. xc_domain_claim_memory().
- XENMEM APIs via xc_domain.c, e.g. xc_domain_claim_pages().
- SYSCTL APIs via xc_domain.c, e.g. xc_availheap().

The test programs build the Xen code under test into the same
compilation unit as the test case source. This gives the tests
full control over the environment and allows selected functions
to be stubbed, mocked, or wrapped as required by the scenario
under test.

For the runtime buddy allocator in page_alloc.c, the environment
creates a synthetic Xen heap. Each test program can define a Xen
configuration, for example whether CONFIG_NUMA and CONFIG_SYSCTL
are enabled. The test cases populate the free lists individually
for each test scenario as needed and can check the heap state.

For testing new code across multiple target architectures, the
harness supports cross-compilation of both the tests and the
code under test for x86_64, arm64, arm32, and riscv64 by passing
cross=y to the build.

If binfmt-misc and qemu-user-static are configured, the
cross-compiled test programs can also be run. Where supported,
clang-based builds are automatically added to the test matrix.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 tools/tests/Makefile                          |   1 +
 tools/tests/native/.gitignore                 |   4 +
 tools/tests/native/Makefile                   | 206 +++++++++++
 tools/tests/native/README.rst                 | 166 +++++++++
 tools/tests/native/harness/common.h           | 280 +++++++++++++++
 tools/tests/native/harness/domctl-shim.h      | 228 ++++++++++++
 tools/tests/native/harness/domctl-wrapper.h   |  28 ++
 tools/tests/native/harness/memory-shim.h      | 201 +++++++++++
 tools/tests/native/harness/memory-wrapper.h   |  42 +++
 tools/tests/native/harness/mm-wrapper.h       | 118 +++++++
 tools/tests/native/harness/native.h           |  81 +++++
 tools/tests/native/harness/page-alloc-env.h   | 254 ++++++++++++++
 tools/tests/native/harness/page-alloc-shim.h  | 328 ++++++++++++++++++
 tools/tests/native/harness/sysctl-shim.h      | 155 +++++++++
 tools/tests/native/harness/sysctl-wrapper.h   |  38 ++
 tools/tests/native/harness/testcase-asserts.h | 310 +++++++++++++++++
 tools/tests/native/harness/xc-domain-env.h    |  77 ++++
 tools/tests/native/harness/xen-macros.h       | 118 +++++++
 tools/tests/native/harness/xenctrl-shim.h     | 170 +++++++++
 19 files changed, 2805 insertions(+)
 create mode 100644 tools/tests/native/.gitignore
 create mode 100644 tools/tests/native/Makefile
 create mode 100644 tools/tests/native/README.rst
 create mode 100644 tools/tests/native/harness/common.h
 create mode 100644 tools/tests/native/harness/domctl-shim.h
 create mode 100644 tools/tests/native/harness/domctl-wrapper.h
 create mode 100644 tools/tests/native/harness/memory-shim.h
 create mode 100644 tools/tests/native/harness/memory-wrapper.h
 create mode 100644 tools/tests/native/harness/mm-wrapper.h
 create mode 100644 tools/tests/native/harness/native.h
 create mode 100644 tools/tests/native/harness/page-alloc-env.h
 create mode 100644 tools/tests/native/harness/page-alloc-shim.h
 create mode 100644 tools/tests/native/harness/sysctl-shim.h
 create mode 100644 tools/tests/native/harness/sysctl-wrapper.h
 create mode 100644 tools/tests/native/harness/testcase-asserts.h
 create mode 100644 tools/tests/native/harness/xc-domain-env.h
 create mode 100644 tools/tests/native/harness/xen-macros.h
 create mode 100644 tools/tests/native/harness/xenctrl-shim.h

diff --git a/tools/tests/Makefile b/tools/tests/Makefile
index 6477a4386dda..2b7af7606992 100644
--- a/tools/tests/Makefile
+++ b/tools/tests/Makefile
@@ -16,6 +16,7 @@ SUBDIRS-$(CONFIG_X86) += tsx
 ifneq ($(clang),y)
 SUBDIRS-$(CONFIG_X86) += x86_emulator
 endif
+SUBDIRS-$(CONFIG_X86) += native
 
 .PHONY: all clean install distclean uninstall
 all clean distclean install uninstall: %: subdirs-%
diff --git a/tools/tests/native/.gitignore b/tools/tests/native/.gitignore
new file mode 100644
index 000000000000..d33db3518337
--- /dev/null
+++ b/tools/tests/native/.gitignore
@@ -0,0 +1,4 @@
+*.x86_64*
+*.arm32*
+*.arm64*
+*.riscv64*
diff --git a/tools/tests/native/Makefile b/tools/tests/native/Makefile
new file mode 100644
index 000000000000..04cbd5d2776b
--- /dev/null
+++ b/tools/tests/native/Makefile
@@ -0,0 +1,206 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+# Makefile for building and running the native tests.
+XEN_ROOT := $(abspath $(CURDIR)/../../..)
+obj      := .
+src      := .
+srctree  := $(XEN_ROOT)/xen
+objtree  := $(XEN_ROOT)/xen
+export srctree objtree
+
+# Load Per-architecture CFLAGS
+define LOAD_ARCH_CFLAGS
+	CFLAGS :=
+	include $(XEN_ROOT)/config/$(1).mk
+	ARCH_CFLAGS_$(1) := $$(CFLAGS)
+endef
+$(foreach arch,$(TEST_ARCHS), \
+	$(eval $(call LOAD_ARCH_CFLAGS,$(arch))))
+
+# Include Xen rules and Kbuild infrastructure
+include $(XEN_ROOT)/tools/Rules.mk
+include $(XEN_ROOT)/xen/scripts/Kbuild.include
+
+# For recursive make calls, don't print the Entering/Leaving messages here.
+MAKEFLAGS += --no-print-directory
+
+# Define SRCARCH and SUBPATH for the Kbuild infrastructure
+define srcarch
+$(subst _,,$(subst 32,,$(subst 64,,$(1))))
+endef
+SRCARCH := $(call srcarch,$(XEN_TARGET_ARCH))
+SUBPATH := $(subst $(XEN_ROOT)/,,$(CURDIR))
+
+# Common CFLAGS for building the tests
+# filter-out -m64
+COMMON_CFLAGS := $(filter-out $(ARCH_CFLAGS_$(XEN_TARGET_ARCH)),$(CFLAGS))
+COMMON_CFLAGS += -D__XEN_TOOLS__ $(APPEND_CFLAGS)
+COMMON_CFLAGS += -D_SUBPATH_=\"$(SUBPATH)\"
+COMMON_CFLAGS += -I$(srctree)/include
+COMMON_CFLAGS += $(CFLAGS_xeninclude)
+
+ifdef TARGETS
+# make test TARGETS="host-claims another-test"
+TEST_SOURCES := $(addsuffix .c,$(TARGETS))
+else
+TEST_SOURCES := $(notdir $(wildcard *.c))
+endif
+
+# Requested architectures
+TEST_ARCHS := x86_64 arm64 arm32 riscv64
+
+# GNU target triples for clang and gcc
+TARGET_TRIPLE_arm64   := aarch64-linux-gnu
+TARGET_TRIPLE_arm32   := arm-linux-gnueabihf
+TARGET_TRIPLE_x86_64  := x86_64-linux-gnu
+TARGET_TRIPLE_riscv64 := riscv64-linux-gnu
+
+ifeq ($(cross),y)
+ifneq ($(filter test run,$(MAKECMDGOALS)),)
+BINFMT_SUPP := $(if $(wildcard /etc/init.d/binfmt-support),1,0)
+QEMU_BINFMT := $(if $(wildcard /usr/libexec/qemu-binfmt),1,0)
+ifneq ($(BINFMT_SUPP)$(QEMU_BINFMT),11)
+$(error "Cross-testing requires binfmt-support and qemu-user-static")
+endif
+endif
+endif
+
+# Detect and select the found cross compilers if enabled with cross=y
+ifneq ($(cross),y)
+ SUPPORTED_ARCHS := $(XEN_TARGET_ARCH)
+else
+ ifneq ($(clang),y)
+  define HAVE_GCC
+   $(if $(shell command -v $(TARGET_TRIPLE_$(1))-gcc 2>/dev/null),$(1))
+  endef
+ endif
+ define HAVE_CLANG
+  $(if $(shell echo 'int main(){}' | clang --target=$(TARGET_TRIPLE_$(1)) -x \
+               c - -o /dev/null >/dev/null 2>&1 && echo y),$(1)-clang)
+ endef
+ SUPPORTED_ARCHS := $(foreach arch,$(TEST_ARCHS),$(call HAVE_GCC,$(arch))) \
+		    $(foreach arch,$(TEST_ARCHS),$(call HAVE_CLANG,$(arch)))
+endif
+$(SUPPORTED_ARCHS):
+	@$(MAKE) XEN_TARGET_ARCH=$(patsubst %-clang,%,$@) build-$@
+
+$(addprefix make-output-,$(SUPPORTED_ARCHS)):
+	@$(MAKE) XEN_TARGET_ARCH=$(patsubst %-clang,%,$(@:make-output-%=%)) \
+		 output-$(@:make-output-%=%)
+
+define ARCH_template
+ARCH_$(1) := $$(patsubst %-clang,%,$(1))
+SRCARCH_$(1) := $$(call srcarch,$$(ARCH_$(1)))
+TEST_SOURCES_$(1) := $$(TEST_SOURCES)
+ifneq ($$(ARCH_$(1)),x86_64)
+# node-claims.c relies on NUMA (only available on x86_64 for now)
+TEST_SOURCES_$(1) := $$(filter-out node-claims.c,$$(TEST_SOURCES_$(1)))
+endif
+
+OBJ_$(1) := $$(addprefix $(obj)/,$$(TEST_SOURCES_$(1):.c=.$(1).o))
+BIN_$(1) := $$(addprefix $(obj)/,$$(TEST_SOURCES_$(1):.c=.$(1)))
+OUTPUT_$(1) := $$(addprefix $(obj)/,$$(TEST_SOURCES_$(1):.c=.$(1).out))
+ALL_BINS += $$(BIN_$(1))
+ALL_OUTPUTS += $$(OUTPUT_$(1))
+
+ifeq ($$(filter %-clang,$(1)),)
+# GCC build
+$$(OBJ_$(1)) $$(BIN_$(1)): CROSS_COMPILE := $$(TARGET_TRIPLE_$$(ARCH_$(1)))-
+else
+$$(OBJ_$(1)) $$(BIN_$(1)): CC := clang
+$$(OBJ_$(1)) $$(BIN_$(1)): CLANG_FLAGS := -fdiagnostics-absolute-paths \
+	--target=$$(TARGET_TRIPLE_$$(ARCH_$(1)))
+endif
+
+DEPS += $(subst ./,.,$(OBJ_$(1):.o=.o.d))
+O_CFLAGS_$$(ARCH_$(1)) := $$(COMMON_CFLAGS) $$(ARCH_CFLAGS_$$(ARCH_$(1)))
+O_CFLAGS_$$(ARCH_$(1)) += -I$(srctree)/arch/$$(SRCARCH_$(1))/include
+O_CFLAGS_$$(ARCH_$(1)) += -I$(objtree)/arch/$$(SRCARCH_$(1))/include/generated
+
+ifeq ($$(ARCH_$(1)),$(XEN_COMPILE_ARCH))
+O_CFLAGS_$$(ARCH_$(1)) += -fsanitize=address -fno-omit-frame-pointer
+else
+O_CFLAGS_$$(ARCH_$(1)) += -static
+endif
+
+$(obj)/%.$(1).o: $(src)/%.c
+	$(Q)$$(CC) $$(CLANG_FLAGS) -c -o $$@ $$< $$(O_CFLAGS_$$(ARCH_$(1)))
+
+$(obj)/%.$(1): $(obj)/%.$(1).o
+	$(Q)$$(CC) $$(CLANG_FLAGS) -o $$@ $$< \
+		$$(LDFLAGS) $$(O_CFLAGS_$$(ARCH_$(1)))
+	@echo "Built $(SUBPATH)/$$@" >> $$(obj)/$(1).result
+
+# Create the .out files by running the test binaries and capturing their output.
+$(obj)/%.$(1).out: $(obj)/%.$(1) FORCE
+	@echo "\nRunning $$< $(RUN_ARGS)to generate $$@..."
+	@./$$< $(RUN_ARGS) >$$@ 2>&1 || \
+	 (sed 's/^/> /' $$@; echo "Test $$< failed"; exit 1)
+	@echo "\n$(SUBPATH)/$$< was successful: $$< output:"
+	@sed 's/^/| /' $$@
+	@tail -1 $$@ >> $$(obj)/$(1).result
+	@$(RM) $$< $$<.o*
+
+# Can only be used with XEN_TARGET_ARCH set to the appropriate architecture:
+# e.g. make XEN_TARGET_ARCH=arm64 build-arm64
+
+.PHONY: $(objtree)/arch/$$(SRCARCH_$(1))/include/generated/asm
+$(objtree)/arch/$$(SRCARCH_$(1))/include/generated/asm::
+	$(Q)$(MAKE) $(asm-generic)=$$@ XEN_TARGET_ARCH=$$(ARCH_$(1))
+
+.PHONY: setup-$(1)
+setup-$(1): $(objtree)/arch/$$(SRCARCH_$(1))/include/generated/asm
+
+.PHONY: build-$(1)
+build-$(1): setup-$(1) $$(BIN_$(1))
+
+.PHONY: output-$(1)
+output-$(1): $$(OUTPUT_$(1))
+
+.PHONY: clean-$(1)
+clean-$(1): $(objtree)/arch/$$(SRCARCH_$(1))/include/generated/asm
+	$(Q)$(RM) -- $$(OBJ_$(1)) $$(BIN_$(1)) $$(OUTPUT_$(1))
+endef
+$(foreach arch,$(SUPPORTED_ARCHS), $(eval $(call ARCH_template,$(arch))))
+
+.PHONY: all run test
+run test: all
+	@:
+# Allow the build to run in parallel with clean before and after, and reporting.
+all: setup
+	$(Q)$(MAKE) clean
+	$(Q)$(MAKE) $(MFLAGS) $(SUPPORTED_ARCHS)
+	@sort $(obj)/*.result
+	@$(RM) $(obj)/*.result
+# If the goal also has run or test in it, run the tests after building.
+ifneq ($(filter run test,$(MAKECMDGOALS)),)
+	$(Q)$(MAKE) $(addprefix make-output-,$(SUPPORTED_ARCHS))
+	@sort $(obj)/*.result
+	@$(RM) $(obj)/*.result ..d
+endif
+
+.PHONY: setup
+setup: $(XEN_ROOT)/tools/include/xen/xen.h
+$(XEN_ROOT)/tools/include/xen/xen.h:
+	@$(MAKE) -C $(XEN_ROOT)/tools/include all
+
+.PHONY: clean clean-archs
+clean-archs: $(addprefix clean-,$(SUPPORTED_ARCHS))
+clean: clean-archs
+	@$(RM) -v -- *.o $(TARGETS) $(DEPS_RM)
+
+.PHONY: postclean-test
+postclean-test: test clean
+
+.PHONY: distclean
+distclean: clean
+	$(Q)$(RM) -- *~
+
+.PHONY: install
+install: all
+	@echo "install: No install; the source is tested, not another Xen host"
+
+.PHONY: uninstall
+uninstall:
+
+-include $(DEPS)
diff --git a/tools/tests/native/README.rst b/tools/tests/native/README.rst
new file mode 100644
index 000000000000..c98552cc4a66
--- /dev/null
+++ b/tools/tests/native/README.rst
@@ -0,0 +1,166 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Native Xen Test Harness
+=======================
+
+Native test environment for Xen, initially focused on the hypercall
+API and exercising the page allocator APIs in native test programs.
+Available APIs include:
+
+- ``DOMCTL`` APIs via ``xc_domain.c``, e.g. ``xc_domain_claim_memory()``.
+- ``XENMEM`` APIs via ``xc_domain.c``, e.g. ``xc_domain_claim_pages()``.
+- ``SYSCTL`` APIs via ``xc_domain.c``, e.g. ``xc_availheap()``.
+
+Each test executable builds the Xen code under test into the same
+compilation unit as the test case source. This gives the tests full
+control over the environment and allows selected functions to be
+stubbed, mocked, or wrapped for the scenario under test.
+
+For the buddy allocator in ``page_alloc.c``, the environment creates
+a synthetic Xen heap. Each test case populates the free lists as needed
+for the scenario under test, and the test cases can check the resulting
+state of the heap after exercising the code under test.
+
+As the code under test is built as a native executable, all advantages
+of native execution are available. The test cases can wrap selected
+functions, and the resulting test programs can be debugged directly
+using ``printf``-style diagnostics. For not cross-compiled builds,
+``AddressSanitizer`` is enabled as well. Cross-compiled builds use
+static binaries that can be run on the host using Linux ``binfmt-misc``
+and ``qemu-user-static`` support.
+
+Harness Shape
+-------------
+
+The harness lives under ``tools/tests/native/harness``. Its main role
+is to provide the Xen runtime environment required by the code under
+test.
+
+The harness uses real Xen headers and definitions wherever possible.
+It does not attempt to replicate Xen internals or maintain local
+copies when they can be avoided. This ensures that the tests always
+use the real definitions and minimises the maintenance burden of
+keeping them in sync.
+
+In particular, it includes 16 Xen headers, including the core headers
+that provide the fundamental data structures and definitions used by
+the code under test. These include central Xen headers such as:
+
+- ``public/xen.h``
+- ``xen/compiler.h``
+- ``xen/config.h``
+- ``xen/domain.h``
+- ``xen/kernel.h``
+- ``xen/macros.h``
+- ``xen/mm.h``
+- ``xen/nospec.h``
+- ``xen/numa.h``
+- ``xen/page-size.h``
+- ``xen/sched.h``
+- ``xen/typesafe.h``
+- ``xenctrl.h``
+
+The remaining shims are intentionally limited to runtime state for
+the test context and the minimal set of shims and stubs needed to
+support the code under test, such as:
+
+- Synthetic heap setup and management
+- Guest-copy helpers backed by host memory copies
+- PDX/frame-table translations matching the synthetic heap
+- Shims for code not yet used by the tests
+
+This keeps Xen definitions in Xen headers wherever possible and
+limits the harness primarily to modelling the execution environment.
+
+How Tests Work
+--------------
+
+Each test case starts from a clean allocator state and initialises a
+synthetic frame table with pages on the free lists. After the
+allocator operations under test, each scenario checks the resulting
+state using assertion helpers.
+
+As running the tests after a change takes only a few seconds, they
+can be used as a quick regression check during development. The test
+cases can also be extended easily to cover new scenarios, and code
+coverage tools can be integrated straightforwardly.
+
+Running The Tests
+-----------------
+
+The ``Makefile`` automatically discovers the C test programs in this
+directory and builds one executable per source file.
+
+The ``test`` target executes the built tests when they are runnable
+on the build host. If ``CC`` and ``HOSTCC`` differ, execution is only
+attempted when ``binfmt`` support for the target architecture is
+available.
+
+Example to clean, build, and run the tests for the default target
+architecture:
+
+.. code:: shell
+
+    make -C tools/tests/native clean test
+
+To build and run a single test program:
+
+.. code:: shell
+
+    make -C tools/tests/native test TARGETS=host-claims
+
+To build and run a given test program with specific arguments:
+
+.. code:: shell
+
+    make -C tools/tests/native test TARGETS=host-claims RUN_ARGS=CNGS
+
+In this example, ``CNGS`` is a test case defined in the ``host-claims.c``
+source file. The test binary is built and executed with ``CNGS`` as an
+argument, causing it to run only that scenario instead of all scenarios
+in the source file. This is useful when working on a specific test case.
+
+Cross-tests
+^^^^^^^^^^^
+
+For broad coverage, the ``test`` target builds and runs the tests for
+all active Xen target architectures when suitable cross-compilers are
+installed. On Debian-based systems, the required cross-compilers can
+be installed with:
+
+.. code:: shell
+
+    sudo apt install -y \
+        gcc-{aarch64,riscv64}-linux-gnu \
+        gcc-arm-linux-gnueabihf
+
+The ``test`` target provides a convenient way to build and run all tests
+for multiple Xen target architectures. This is useful for broader coverage
+and for catching regressions that may only appear on specific architectures.
+
+For target architectures that are not directly executable on the
+host, Linux ``binfmt`` and ``qemu-user-static`` support are required
+so the built test executables can run. On Debian-based systems, these
+can be installed with:
+
+.. code:: shell
+
+    sudo apt install -y binfmt-support qemu-user-static
+
+To obtain broad coverage across multiple Xen target architectures,
+pass ``cross=y`` with the ``test`` target to build and run the tests
+for all supported Xen target architectures with detected
+cross-compilers:
+
+.. code:: shell
+
+    make -C tools/tests/native test cross=y
+
+To build and run tests for a specific Xen target architecture:
+
+.. code:: shell
+
+    make -C tools/tests/native test TEST_ARCHS=x86_64
+    make -C tools/tests/native test TEST_ARCHS=arm64
+    make -C tools/tests/native test TEST_ARCHS=arm32
+    make -C tools/tests/native test TEST_ARCHS=riscv64
diff --git a/tools/tests/native/harness/common.h b/tools/tests/native/harness/common.h
new file mode 100644
index 000000000000..1324368bf7d8
--- /dev/null
+++ b/tools/tests/native/harness/common.h
@@ -0,0 +1,280 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Common test harness for page allocation unit tests.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+
+#ifndef TOOLS_TESTS_ALLOC_HARNESS_H
+#define TOOLS_TESTS_ALLOC_HARNESS_H
+
+/* Assertion helpers shared by the tests. */
+#include "testcase-asserts.h"
+
+/* Configure the Xen code for the test context */
+#define CONFIG_DEBUG
+#define COMPILE_OFFSETS
+#ifdef __x86_64__
+#define __ASM_I386_CPUFEATURE_H
+#define __XEN_X86_CPUFEATURESET_H__
+#define _X86_BITOPS_H
+#define X86_FEATURE_XEN_SMAP 0
+#endif
+#define CONFIG_MMU
+#ifdef __arm__
+#define CONFIG_ARM_32
+#define CONFIG_PADDR_BITS 40
+#endif
+#ifdef __aarch64__
+#define CONFIG_ARM_64
+#define CONFIG_PADDR_BITS 48
+#endif
+#ifdef __riscv
+#define CONFIG_RISCV_64
+#define CONFIG_QEMU_PLATFORM
+#endif
+
+#define CONFIG_NR_CPUS 2048
+#if defined(CONFIG_NUMA) && !defined(CONFIG_NR_NUMA_NODES)
+/* Xen supports at least 64 nodes. New HW can have a lot more memory nodes. */
+#define CONFIG_NR_NUMA_NODES 254 /* 255(0xFF) is reserved for NUMA_NO_NODE. */
+#endif
+#ifdef CONFIG_NR_NUMA_NODES
+#define MAX_NUMNODES CONFIG_NR_NUMA_NODES
+#else
+#define MAX_NUMNODES 1
+#endif
+
+/* Header guards we always need to block (configuration-independent)*/
+#define __ARM_CURRENT_H__
+#define __ASM_X86_X86_EMULATE_H__
+#define __X86_CURRENT_H__
+#define __XEN_IOCAP_H__
+#define __XEN_PAGING_H__
+#define __XEN_RCUPDATE_H
+#define __XSM_H__
+
+/* Blocking P2M headers needs fewer shims than including them */
+#define _XEN_P2M_H
+#define _XEN_ASM_X86_P2M_H
+#define ASM__RISCV__P2M_H
+#define map_mmio_regions(d, gfn, nr, mfn)   0
+#define unmap_mmio_regions(d, gfn, nr, mfn) 0
+struct p2m_domain { int dummy; }; /* riscv */
+
+/* Common Xen types used by the test environment. */
+/* Short integer types (xen/types.h blocked by __TYPES_H__) */
+typedef uint8_t u8;
+typedef uint16_t u16;
+typedef uint32_t u32;
+typedef uint64_t u64;
+typedef uint16_t __be16;
+typedef uint32_t __be32;
+typedef uint64_t __be64;
+typedef uint16_t __le16;
+typedef uint32_t __le32;
+typedef uint64_t __le64;
+typedef unsigned long cpumask_t;
+typedef long long s_time_t;
+typedef bool spinlock_t;
+typedef spinlock_t rwlock_t;
+typedef spinlock_t rspinlock_t;
+typedef spinlock_t percpu_rwlock_t;
+
+#define __XEN_BITMAP_H
+#ifndef BITS_TO_LONGS
+#define BITS_TO_LONGS(bits) (((bits) + BITS_PER_LONG - 1) / BITS_PER_LONG)
+#endif
+#ifndef DECLARE_BITMAP
+#define DECLARE_BITMAP(name, bits) unsigned long name[BITS_TO_LONGS(bits)]
+#endif
+
+/*
+ * If testcase_assert_verbose_assertions is enabled, the spinlock
+ * functions print the spinlock being acquired or released along with
+ * the file and line number of the assertion that triggered it.
+ * This can be helpful for debugging test failures and understanding
+ * the sequence of events leading up to the failure.
+ */
+#define spin_lock(l)              ((void)(l))
+#define spin_unlock(l)            ((void)(l))
+#define spin_lock_cb(l, cb, data) spin_lock(l)
+#define spin_lock_kick()          ((void)0)
+#define nrspin_lock(l)            spin_lock(l)
+#define nrspin_unlock(l)          spin_unlock(l)
+#define rspin_lock(l)             spin_lock(l)
+#define rspin_unlock(l)           spin_unlock(l)
+#define read_lock(rwl)            spin_lock(rwl)
+#define read_unlock(rwl)          spin_unlock(rwl)
+#define read_trylock(rwl)         (spin_lock(rwl), true)
+#define write_lock(rwl)           spin_lock(rwl)
+#define write_unlock(rwl)         spin_unlock(rwl)
+/*
+ * For the test context, we assume all locks are always held to avoid having
+ * to manage lock state in the test helpers.  This allows the test helpers
+ * to call allocator functions that require locks to be held without needing
+ * to acquire those locks, which simplifies the test code and focuses on
+ * exercising the allocator logic under test.
+ *
+ * Invariants that would normally be protected by locks must still be upheld
+ * by the test helpers, but the test helpers can assume they have exclusive
+ * access to the allocator state and do not need to worry about concurrency.
+ */
+#define rw_is_locked(rwl)         true
+#define rw_is_write_locked(rwl)   true
+#define spin_is_locked(l)         true
+#define rspin_is_locked(l)        true
+#define DEFINE_SPINLOCK(l)        spinlock_t l
+
+/* Heap allocator stubs */
+#define __XMALLOC_H__
+#define xmalloc(type)             calloc(1, sizeof(type))
+#define xmalloc_array(type, nr)   calloc((nr), sizeof(type))
+#define xvzalloc_array(type, nr)  calloc((nr), sizeof(type))
+#define xzalloc(type)             calloc(1, sizeof(type))
+#define xfree(p)                  free(p)
+#define xvfree(p)                 free(p)
+
+/* xvmalloc_array supports both 2-arg (type, n) used by page_alloc.c and
+ * 3-arg (type, rows, cols) used by domctl.c via a variadic helper.
+ * The helper appends a sentinel '1' so the 2-arg form multiplies by 1. */
+#define xvmalloc_array(type, ...)    _xvmalloc_impl(type, __VA_ARGS__, 1)
+#define _xvmalloc_impl(t, a, b, ...) calloc((size_t)(a) * (size_t)(b), \
+                                            sizeof(t))
+
+/*
+ * Use the real guest_access functions and provide stubs for
+ * xen/asm-x86/guest_access.h's __raw_copy_{to,from}_guest() functions
+ * which are used by the high-level copy_{to,from}_guest*() functions.
+ */
+#define __X86_UACCESS_H__
+#define __ASM_X86_GUEST_ACCESS_H__
+unsigned long raw_copy_to_guest(void *to, const void *from, unsigned int len)
+{
+    memcpy(to, from, len);
+    return 0;
+}
+#define __raw_copy_to_guest raw_copy_to_guest
+unsigned long raw_copy_to_guest_flush_dcache(void *to, const void *from,
+                                             unsigned int len)
+{
+    memcpy(to, from, len);
+    return 0;
+}
+unsigned long raw_copy_from_guest(void *to, const void *from, unsigned int len)
+{
+    memcpy(to, from, len);
+    return 0;
+}
+#define __raw_copy_from_guest raw_copy_from_guest
+unsigned long raw_clear_guest(void *to, unsigned int len)
+{
+    memset(to, 0, len);
+    return 0;
+}
+
+/* nodemask support for the test environment. */
+#define nodes_intersects(a, b)    ((a) & (b))
+#define nodes_and(dst, a, b)      ((dst) = (a) & (b))
+#define nodes_andnot(dst, a, b)   ((dst) = (a) & ~(b))
+#define nodes_clear(dst)          ((dst) = 0)
+#define nodemask_test(node, mask) ((*(mask) >> (node)) & 1UL)
+#define node_set(node, mask)      ((mask) |= (1UL << (node)))
+#define node_clear(node, mask)    ((mask) &= ~(1UL << (node)))
+#define nodemask_bits(maskp)      ((unsigned long *)(maskp))
+#define node_test_and_set(node, mask)                   \
+        ({                                              \
+             bool was_set = nodemask_test(node, &mask); \
+             node_set(node, mask);                      \
+             was_set;                                   \
+         })
+#define for_each_online_node(i)   for ( (i) = 0; (i) < MAX_NUMNODES; ++(i) )
+#define for_each_cpu(i, mask)     for ( (i) = 0; (i) < 1; ++(i) )
+#define alternative(a, b, c)      ((void)(a), (void)(b))
+#define DECLARE_PER_CPU(type, name) static __used type shim_per_cpu__##name
+static cpumask_t cpu_online_map = ~0UL;
+
+/*
+ * PDX compression not yet actively used for the synthetic heap of the tests.
+ * Use a small identity PDX bridge because pulling in full xen/pdx.h would
+ * bring compressed-PDX runtime tables that the lib does not initialise yet.
+ *
+ * That is a deliberate shim boundary to allow testing without needing to
+ * support PDX runtime in the test harness.  The test cases can use the
+ * mfn_to_pdx and pdx_to_mfn helpers to work with PDX values, and the test
+ * harness will track the valid range of PDX values based on the frame_table
+ * size and the MFNs of the test pages that are initialised during the tests,
+ * but the PDX values are not actually compressed in the test harness.
+ */
+#define mfn_to_pdx(mfn) mfn_x(mfn)
+#define pdx_to_mfn(pdx) _mfn(pdx)
+#define page_to_pdx(pg) ((unsigned long)((pg) - frame_table))
+#define pdx_to_page(pdx) (frame_table + (pdx))
+#define __mfn_valid(mfn) true
+
+/* tlbflush.h */
+#define per_cpu(a, b) (0)
+bool tlb_clk_enabled;
+u32 tlbflush_clock;
+#define tlbflush_time 0U
+#define __cpumask_clear_cpu(cpu, mask) ((void)(cpu), (void)(mask))
+
+#ifdef __x86_64__
+#define cpu_has_cx16 true
+#define cpu_relax()                         ((void)0)
+#define test_and_clear_bit(nr, addr)                         \
+        ({                                                   \
+             bool was_set = test_bit((nr), (addr));          \
+             *(addr) &= ~(1UL << (nr));                      \
+             was_set;                                        \
+         })
+unsigned int attr_const generic_flsl(unsigned long x)
+{
+    return ((x) ? (sizeof(long) * 8) - __builtin_clzl(x) : 0);
+}
+unsigned int attr_const generic_ffsl(unsigned long x)
+{
+    return __builtin_ffsl((long)(x));
+}
+#else
+void flush_page_to_ram(unsigned long mfn, bool sync_icache)
+{
+    (void)mfn;
+    (void)sync_icache;
+}
+#endif
+
+/*
+ * Some functions need to use types defined in specific headers,
+ * so we include them and define header guards to prevent unwanted
+ * definitions from those headers that conflict with the test harness
+ * or bring in Xen-internal structures that are already provided by
+ * the natural C compiler defines, libc defines and stubs in this shim.
+ */
+#define __TYPES_H__
+#define __LIB_H__ /* C runtime library, only for the hypervisor */
+#define XEN_SOFTIRQ_H
+#define XEN__XVMALLOC_H
+#define _LINUX_INIT_H
+#define __LINUX_NODEMASK_H
+#define __RWLOCK_H__
+#define __XEN_SMP_H__
+#define __XEN_BUG_H__
+#define __XEN_ERRNO_H__
+#define _TIMER_H_
+#define __XEN_PERCPU_H__
+#define __XEN_STRING_H__
+#define __XEN_TIME_H__
+#define __XEN_RCUPDATE_H
+#define __XEN_PREEMPT_H__
+#define __XEN_TASKLET_H__
+#define __XEN_PERFC_H__
+#define __SPINLOCK_H__
+#define __VM_EVENT_H__
+#define __XEN_EVENT_H__
+#define __XEN_CPUMASK_H
+#define __XEN_IRQ_H__
+#define __XEN_PDX_H__
+#define __ASM_DOMAIN_H__
+#define __X86_ALTERNATIVE_H__
+#endif
diff --git a/tools/tests/native/harness/domctl-shim.h b/tools/tests/native/harness/domctl-shim.h
new file mode 100644
index 000000000000..36dfe2bd8edb
--- /dev/null
+++ b/tools/tests/native/harness/domctl-shim.h
@@ -0,0 +1,228 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Minimal shim to include xen/common/domctl.c in native program tests.
+ *
+ * This shim provides the minimal Xen definitions that domctl.c
+ * needs to run in a native program test environment.  It replaces a
+ * minimal subset of the Xen environment that xen/common/domctl.c
+ * interacts with with stubs so it can run in the test environment,
+ * allowing test scenarios to verify the behavior of domctl.c.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+#ifndef _TEST_ALLOC_DOMCTL_SHIM_
+#define _TEST_ALLOC_DOMCTL_SHIM_
+
+/*
+ * Guard against language servers and linters picking up this header.
+ *
+ * This shim is intended to be used in test programs for testing
+ * the code of xen/common/domctl.c in a native program test environment,
+ * and test programs need to define TEST_WRAP_XEN_COMMON_DOMCTL_C
+ * to enable the definitions in this header.
+ */
+#ifndef TEST_WRAP_XEN_COMMON_DOMCTL_C
+#warning "Include this header only in integration tests using domctl.c"
+#else
+
+/*
+ * Inside the intended test context, provide stub definitions.
+ *
+ * Some functions need to use types defined in specific headers,
+ * so we include them and define header guards to prevent unwanted
+ * definitions from those headers that conflict with the test harness
+ * or bring in Xen-internal structures that are already provided by
+ * the natural C compiler defines, libc defines and stubs in this shim.
+ */
+
+/* Include xen/domain.h for types required by the stubs below. */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+/* Header guards to block not yet supported domain.h includes */
+#define __XEN_ERRNO_H__
+#define __ASM_DOMAIN_H__
+#define __RWLOCK_H__
+#include <xen/domain.h>
+#pragma GCC diagnostic pop
+
+#ifdef __XEN_FRAME_NUM_H__ /* x86_64 header differnce */
+#define mfn_to_gfn(d, mfn)   ((void)(d), _gfn(mfn_x(mfn)))
+#endif
+
+/* bitmap_to/from_xenctl_bitmap are in xen/bitmap.h (blocked).
+ * Stub them as no-ops; domctl.c uses them only for NUMA info export. */
+#define bitmap_to_xenctl_bitmap(d, s, n) 0
+#define xenctl_bitmap_to_bitmap(d, s, n) 0
+
+/* Domain dying states (normally in xen/sched.h, blocked by __SCHED_H__) */
+#define DOMDYING_alive 0U
+#define DOMDYING_dying 1U
+#define DOMDYING_dead  2U
+
+/* vcpu_runstate_info is now provided by xen/sched.h (via public/vcpu.h) */
+#define RUNSTATE_running 0
+#define vcpu_runstate_get(v, r) ((void)(v), memset((r), 0, sizeof(*(r))))
+
+/* vcpu iteration: no vCPUs in the test context */
+/* for_each_vcpu is provided by xen/sched.h; override with test stub */
+#undef for_each_vcpu
+#define for_each_vcpu(d, v) for ( (v) = NULL; (v) != NULL; )
+
+/* Domain predicates not derived from any included header */
+#define is_hvm_domain(d) false
+#define cpupool_get_id(d) 0
+
+/* spin_trylock: in the test context all locks are always available */
+#define spin_trylock(l) (spin_lock(l), true)
+
+/* XSM hooks: permit all operations in the test context */
+#define XSM_OTHER                         0
+#define XSM_XS_PRIV                       0
+#define XSM_HOOK                          0
+#define XSM_PRIV                          0
+#define xsm_security_domaininfo(d, info)  ((void)(d), (void)(info))
+#define xsm_domctl(xsm, d, ...)           0
+#define xsm_getdomaininfo(xsm, d)         0
+#define xsm_irq_permission(xsm, d, ...)   0
+#define xsm_iomem_permission(xsm, d, ...) 0
+#define xsm_iomem_mapping(xsm, d, ...)    0
+#define xsm_set_target(xsm, d, e)         0
+#define xsm_claim_pages(xsm, d)           0
+
+/* XEN_DOMCTL_soft_reset_cont is inside #ifdef __XEN__ in public/domctl.h */
+#ifndef XEN_DOMCTL_soft_reset_cont
+#define XEN_DOMCTL_soft_reset_cont 23
+#endif
+
+/* physical address bit-width of the hypervisor */
+#define paddr_bits PADDR_BITS
+
+/* vcpu_guest_context allocation helpers */
+#define alloc_vcpu_guest_context()  calloc(1, sizeof(struct vcpu_guest_context))
+#define free_vcpu_guest_context(p)  free(p)
+
+/* Domain lifecycle stubs */
+#define domain_pause(d)                          ((void)(d))
+#define domain_unpause(d)                        ((void)(d))
+#define domain_resume(d)                         ((void)(d))
+#define domain_kill(d)                           0
+#define domain_soft_reset(d, cont)               (-ENOSYS)
+#define domain_create(id, cfg, hvm)              ((struct domain *)NULL)
+#define domain_update_node_affinity(d)           ((void)(d))
+#define domain_set_node_affinity(d, mask)        0
+#define domain_pause_by_systemcontroller(d)      0
+#define domain_unpause_by_systemcontroller(d)    0
+#define domain_set_time_offset(d, off)           ((void)(d))
+#define get_domain_by_id(id)                     ((struct domain *)NULL)
+#define hypercall_create_continuation(...)       0
+
+/* vCPU stubs */
+#define vcpu_pause(v)      ((void)(v))
+#define vcpu_unpause(v)    ((void)(v))
+
+/* Scheduling / affinity stubs */
+#define sched_adjust(d, op)               0
+#define vcpu_affinity_domctl(d, cmd, aff) 0
+
+/* IOMEM and MMIO stubs */
+#define iomem_access_permitted(d, ...)      false
+#define iomem_permit_access(d, ...)         0
+#define iomem_deny_access(d, ...)           0
+#define paging_mode_translate(d)            false
+#define is_hardware_domain(d)               false
+#define is_xenstore_domain(d)               false
+
+/* Misc domctl sub-operation stubs */
+#define vm_event_domctl(d, op)            (-EOPNOTSUPP)
+#define set_global_virq_handler(d, virq)  0
+#define iommu_do_domctl(op, d, u)         (-EOPNOTSUPP)
+#define get_domain_state(st, d, id)       (-EOPNOTSUPP)
+#define arch_do_domctl(op, d, u)          (-EOPNOTSUPP)
+
+/* Provide no-op stubs for these */
+domid_t domid_alloc(domid_t domid)
+{
+    return domid;
+}
+
+/* For do_domctl() to work with multiple domains for testing claims */
+struct domain *rcu_lock_domain_by_id(domid_t domain_id)
+{
+    struct domain *d;
+
+    for_each_domain ( d )
+    {
+        if ( d->domain_id == domain_id )
+            return d;
+    }
+    return NULL;
+}
+
+struct vcpu *vcpu_create(struct domain *d, unsigned int vcpu_id)
+{
+    (void)(d);
+    (void)(vcpu_id);
+    return NULL;
+}
+
+int vcpu_reset(struct vcpu *v)
+{
+    (void)(v);
+    return 0;
+}
+
+int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c)
+{
+    (void)(v);
+    (void)(c);
+    return 0;
+}
+void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
+{
+    (void)(v);
+    (void)(c);
+    return;
+}
+
+void arch_get_domain_info(const struct domain *d,
+                          struct xen_domctl_getdomaininfo *info)
+{
+    (void)(d);
+    (void)(info);
+}
+
+void arch_p2m_set_access_required(struct domain *d, bool access_required)
+{
+    (void)(d);
+    (void)(access_required);
+}
+
+bool arch_use_domctl_lock(const struct xen_domctl *op)
+{
+    (void)op;
+
+    return false;
+}
+
+#if XEN_DOMCTL_get_runstate_info == 1099
+void domain_runstate_get(struct domain *d,
+                         struct xen_domctl_runstate_info_ext *info)
+{
+    (void)d;
+    (void)info;
+}
+#endif
+
+#if (XEN_DOMCTL_numa_op == 1101 && defined(CONFIG_NUMA))
+int numa_domctl(struct domain *d, struct xen_domctl_numa_op *numa,
+                bool *copyback)
+{
+    (void)d;
+    (void)numa;
+    (void)copyback;
+
+    return -EOPNOTSUPP;
+}
+#endif
+#endif
+#endif
diff --git a/tools/tests/native/harness/domctl-wrapper.h b/tools/tests/native/harness/domctl-wrapper.h
new file mode 100644
index 000000000000..ef7d387e4d70
--- /dev/null
+++ b/tools/tests/native/harness/domctl-wrapper.h
@@ -0,0 +1,28 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Wrapper around xen/common/domctl.c for the allocator test framework.
+ *
+ * This file includes the real domctl.c directly in its translation unit.
+ *
+ * It allows to pass hypercalls from xc_domain to the do_domctl()
+ * hypercall handler bin xen/common/domctl.c, which is the entry
+ * point for domctl commands in the Xen hypervisor.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+#ifndef TOOLS_TESTS_NATIVE_HARNESS_DOMCTL_WRAPPER_H
+#define TOOLS_TESTS_NATIVE_HARNESS_DOMCTL_WRAPPER_H
+#ifdef TEST_WRAP_XEN_COMMON_DOMCTL_C
+#include "domctl-shim.h"
+#pragma GCC diagnostic push
+/* Header guards for xen/common/domctl.c inclusion. */
+#define _ASM_HW_IRQ_H
+#define __XEN_HYPERCALL_H__
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#ifdef __clang__
+#pragma clang diagnostic ignored "-Wfor-loop-analysis"
+#endif
+#include "../../xen/common/domctl.c"
+#pragma GCC diagnostic pop
+#endif
+#endif
diff --git a/tools/tests/native/harness/memory-shim.h b/tools/tests/native/harness/memory-shim.h
new file mode 100644
index 000000000000..f65e359e676d
--- /dev/null
+++ b/tools/tests/native/harness/memory-shim.h
@@ -0,0 +1,201 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Minimal shim to include xen/common/domctl.c in host-side tests.
+ *
+ * This shim provides the minimal Xen definitions that domctl.c
+ * needs to run in a host-side test environment.  It replaces a
+ * minimal subset of the Xen environment that xen/common/domctl.c
+ * interacts with with stubs so it can run in the test environment,
+ * allowing test scenarios to verify the behavior of domctl.c.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+#ifndef TOOLS_TESTS_NATIVE_HARNESS_MEMORY_SHIM_H
+#define TOOLS_TESTS_NATIVE_HARNESS_MEMORY_SHIM_H
+
+/*
+ * Guard against language servers and linters picking up this header.
+ *
+ * This shim is intended to be used in test programs for testing
+ * the code of xen/common/domctl.c in a host-side test environment,
+ * and test programs need to define TEST_WRAP_XEN_COMMON_MEMORY_C
+ * to enable the definitions in this header.
+ */
+#ifndef TEST_WRAP_XEN_COMMON_MEMORY_C
+#warning "Include this header only in integration tests using memory.c"
+#else
+
+/*
+ * Inside the intended test context, provide stub definitions.
+ *
+ * Some functions need to use types defined in specific headers,
+ * so we include them and define header guards to prevent unwanted
+ * definitions from those headers that conflict with the test harness
+ * or bring in Xen-internal structures that are already provided by
+ * the natural C compiler defines, libc defines and stubs in this shim.
+ */
+
+/*
+ * Block headers whose content conflicts with the test harness or that pull in
+ * types and functions not available in the host environment.  Stubs for the
+ * symbols that memory.c actually uses from those headers are provided below.
+ */
+#define __XEN_IOREQ_H__         /* ioreq types unavailable; code under CONFIG_IOREQ_SERVER */
+#define __XEN_GRANT_TABLE_H__   /* gnttab_* stubs provided below */
+#define __XEN_LLC_COLORING_H__  /* llc_coloring_enabled stub provided below */
+#define _XEN_MEM_ACCESS_H       /* mem_access_memop stub provided below */
+#define __ASM_HARDIRQ_H         /* in_irq() stub provided below */
+#define ARM_GENERIC_HARDIRQ_H   /* in_irq() stub provided below */
+#define __ASM_GENERIC_HARDIRQ_H /* in_irq() stub provided below */
+
+/*
+ * Stubs for symbols from the blocked headers that memory.c actually uses.
+ */
+
+/*
+ * XSM hooks used by memory.c beyond those already stubbed in domctl-shim.h.
+ * The test environment permits all operations.
+ */
+#ifndef XSM_TARGET
+#define XSM_TARGET      0
+#endif
+#ifndef XSM_DM_PRIV
+#define XSM_DM_PRIV     0
+#endif
+#define xsm_memory_exchange(xsm, d)              0
+#define xsm_add_to_physmap(xsm, d1, d2)          0
+#define xsm_domain_resource_map(xsm, d)          0
+#define xsm_memory_adjust_reservation(xsm, a, b) 0
+#define xsm_memory_stat_reservation(xsm, a, b)   0
+#define xsm_remove_from_physmap(xsm, a, b)       0
+#define xsm_get_vnumainfo(xsm, d)                0
+
+/*
+ * MFN equality and invalid sentinel: mm-frame.h is blocked by
+ * __XEN_FRAME_NUM_H__, so provide these here.
+ */
+#define mfn_eq(x, y) (mfn_x(x) == mfn_x(y))
+
+/*
+ * Guest-handle range check: asm/guest_access.h is blocked; in the test
+ * context the handle always covers the requested range.
+ */
+#ifndef guest_handle_subrange_okay
+#define guest_handle_subrange_okay(hnd, first, last) 1
+#endif
+
+/*
+ * Static memory: not used in the test environment.
+ * acquire_reserved_page is declared in xen/mm.h (blocked) and used only
+ * when is_domain_using_staticmem() is true — which is never in the tests.
+ */
+#define acquire_reserved_page(d, flags) INVALID_MFN
+
+/*
+ * P2M populate-on-demand helpers used in decrease_reservation.
+ * These paths are not exercised by claim tests.
+ */
+#define p2m_pod_decrease_reservation(d, gfn, order) 0UL
+
+/*
+ * Physmap and p2m operations: stubs for the non-x86 code paths in memory.c.
+ * On x86 the real implementations live in asm/p2m.h (already blocked by
+ * domctl-shim.h); the code paths below the #ifdefs still reference these.
+ */
+#define gfn_to_mfn(d, gfn)                                    _mfn(~0UL)
+#define guest_physmap_add_page(d, gfn, mfn, order)            (-EOPNOTSUPP)
+#define guest_physmap_remove_page(d, gfn, mfn, order)         (-EOPNOTSUPP)
+#define guest_physmap_mark_populate_on_demand(d, gpfn, order) (-EOPNOTSUPP)
+
+/* Page reference count helpers used in guest_remove_page and helpers */
+#define get_page(pg, d)         true
+#define put_page_alloc_ref(pg)  ((void)(pg))
+#define get_page_type(pg, type) false
+#define put_page_and_type(pg)   ((void)(pg))
+
+/* Arch page operations used in clear_domain_page / copy_domain_page */
+#ifndef clear_page
+#define clear_page(ptr)         memset((ptr), 0, PAGE_SIZE)
+#endif
+#define copy_page_cold(dst, src) memcpy((dst), (src), PAGE_SIZE)
+#define copy_page_hot(dst, src)  copy_page_cold(dst, src)
+
+/*
+ * Memory extent hypercall shift: defined in xen/hypercall.h (blocked).
+ * do_memory_op() right-shifts cmd by this amount to extract the start extent.
+ */
+#define MEMOP_EXTENT_SHIFT      6
+#define MEMOP_CMD_MASK          ((1 << MEMOP_EXTENT_SHIFT) - 1)
+
+/*
+ * GFN equality and invalid sentinel: mm-frame.h is blocked by
+ * __XEN_FRAME_NUM_H__; gfn_t may be a type-safe wrapper in debug builds.
+ */
+#define gfn_eq(x, y)           (gfn_x(x) == gfn_x(y))
+#define invalidate_icache()    ((void)0)
+
+/*
+ * RCU domain locking for remote domains: sched.h declares
+ * rcu_lock_remote_domain_by_id() as a non-static extern.  Provide a
+ * matching non-static definition here.
+ */
+int rcu_lock_remote_domain_by_id(domid_t dom, struct domain **dp)
+{
+    struct domain *d;
+
+    for_each_domain ( d )
+    {
+        if ( d->domain_id == dom )
+        {
+            *dp = d;
+            return 0;
+        }
+    }
+    return -ESRCH;
+}
+
+/*
+ * p2m_type_t and related constants: architecture p2m.h is blocked by the
+ * wrapper because its helpers need too much real arch_domain state for this
+ * harness.  Provide the minimal subset used by memory.c.
+ */
+typedef unsigned int p2m_type_t;
+typedef unsigned int p2m_query_t;
+#define P2M_ALLOC   (1u << 0)
+#define P2M_UNSHARE (1u << 1)
+#define get_page_from_gfn(d, gfn, t, q) \
+        ((void)(t), (void)(q), (struct page_info *)NULL)
+
+/* grant_table.h: resource frame query/acquire stubs */
+#define gnttab_resource_max_frames(d, id)       0
+#define gnttab_acquire_resource(d, id, f, n, l) (-EOPNOTSUPP)
+
+/*
+ * Maximum GPFN: architecture-specific; in the test environment there is no
+ * real guest memory so return 0.
+ */
+#define domain_get_maximum_gpfn(d) 0UL
+
+/*
+ * Physmap stubs for xenmem_add_to_physmap_one() and set_foreign_p2m_entry().
+ * These arch-level operations are not currently supported in the test env.
+ */
+#define set_foreign_p2m_entry(d, fd, gfn, mfn) (-EOPNOTSUPP)
+
+/* arch_memory_op: architecture-specific memory operations not tested here. */
+#define arch_memory_op(cmd, arg)   (-EOPNOTSUPP)
+
+/* Stealing is initially not supported in the test environment */
+#define steal_page(d, page, flags) (-EOPNOTSUPP)
+
+/* mem_access.h: memory access operations are not tested here */
+#define mem_access_memop(cmd, arg) (-EOPNOTSUPP)
+#define arch_acquire_resource_check(d) false
+
+#ifndef in_irq
+#define in_irq()             false /* Tests aren't in interrupt context */
+#endif
+#define is_control_domain(d) false /* All test domains are unprivileged */
+
+#endif
+#endif
diff --git a/tools/tests/native/harness/memory-wrapper.h b/tools/tests/native/harness/memory-wrapper.h
new file mode 100644
index 000000000000..bec31804e1d9
--- /dev/null
+++ b/tools/tests/native/harness/memory-wrapper.h
@@ -0,0 +1,42 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Wrapper around xen/common/memory.c for the allocator test environment.
+ * It also provides the pass-through implementation of the xc_memory_op()
+ * function, which is used by the memory-related hypercalls implemented in
+ * xc_domain.c to call the memory operation handler in xen/common/memory.c.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+#ifndef TOOLS_TESTS_NATIVE_HARNESS_MEMORY_WRAPPER_H
+#define TOOLS_TESTS_NATIVE_HARNESS_MEMORY_WRAPPER_H
+#ifdef TEST_WRAP_XEN_COMMON_MEMORY_C
+#include "memory-shim.h"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#pragma GCC diagnostic ignored "-Wunused-function"
+#include "../../xen/common/memory.c"
+#pragma GCC diagnostic pop
+
+/*
+ * Pass libxenctrl's xc_memory_op() calls to the Xen hypervisor's
+ * do_memory_op() handler in xen/common/memory.c to run the memory
+ * operations in the test environment.
+ */
+long xc_memory_op(xc_interface *xch, unsigned int cmd,
+                  void *arg, size_t arg_size)
+{
+    union {
+        XEN_GUEST_HANDLE_PARAM(void) handle;
+        void *ptr;
+    } u = { .ptr = arg };
+
+    ASSERT(xch == &test_xc_handle);
+    (void)arg_size;
+
+    /* Call xen/common/memory.c's do_memory_op() handler */
+    return do_memory_op(cmd, u.handle);
+}
+
+#endif
+#endif
diff --git a/tools/tests/native/harness/mm-wrapper.h b/tools/tests/native/harness/mm-wrapper.h
new file mode 100644
index 000000000000..f6d1093b2608
--- /dev/null
+++ b/tools/tests/native/harness/mm-wrapper.h
@@ -0,0 +1,118 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Proxy to include definitions from xen/mm.h for native tests.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+#ifndef TOOLS_TESTS_NATIVE_HARNESS_MM_PROXY_H
+#define TOOLS_TESTS_NATIVE_HARNESS_MM_PROXY_H
+
+#ifndef TEST_WRAP_XEN_INCLUDE_XEN_MM_H
+#warning "Include this header only in integration tests that need xen/mm.h"
+#else
+#include "common.h"
+
+#define __XEN_KCONFIG_H
+#include <xen/config.h>
+#undef cf_check
+#define cf_check __used
+
+#define register_t foo; /* Workaround for arm64 sys/types conflict */
+#include <asm/types.h>
+#undef  register_t
+
+/*
+ * In the real hypervisor, the frame table is located at a fixed virtual
+ * address, but in the test harness, it is allocated in BSS or heap, so
+ * replace the fixed virtual address definitions with dynamic ones.
+ * xen/mm.h defines the frame_table define put point to the virt start.
+ */
+#undef FRAMETABLE_VIRT_START
+#undef FRAMETABLE_VIRT_END
+unsigned long FRAMETABLE_VIRT_START;
+unsigned long FRAMETABLE_VIRT_END;
+
+/*
+ * The test environment needs the virtual address of the direct map which
+ * the test environment emulates with the bss symbol directmap_virt_start
+ * defined below.  In the real hypervisor, this is a fixed virtual address,
+ * but in the test environment, it is allocated in BSS, so replace the fixed
+ * virtual address definition with a dynamic one.
+ *
+ * For example, page_set_owner() and page_get_owner() are used to get and set
+ * the virtual address of the owner domain of a page. They use pdx_to_virt()
+ * and virt_to_pdx() which use DIRECTMAP_VIRT_START to translate between the
+ * page_info struct's pdx-encoded owner field and the virtual address of
+ * the owner domain, so setting DIRECTMAP_VIRT_START to the address of a
+ * an early page-aligned symbol in the test binary (e.g. test_bss_start)
+ * allows the test code to set up and get page ownership.
+ */
+#undef DIRECTMAP_VIRT_START
+unsigned long DIRECTMAP_VIRT_START = (unsigned long)&test_bss_start;
+
+/* Shim definitions for including xen/mm.h in the test context. */
+#define maddr_to_directmapoff(ma)  ((unsigned long)(ma))
+#define directmapoff_to_maddr(off) ((paddr_t)(off))
+#define perfc_incr(x)              ((void)0)
+#define cpumask_copy(dst, src)     ((void)(dst), (void)(src))
+#define cpumask_empty(mask)        true
+
+unsigned long phys_offset;
+unsigned long xen_phys_start;
+char __init_begin[1], __init_end[1];
+struct domain; /* Forward declaration for struct domain* used in arguments */
+
+/* Include xen/mm.h into the test context */
+#include <xen/macros.h>
+#include <asm/types.h>
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#ifndef __clang__
+#pragma GCC diagnostic ignored "-Wbuiltin-declaration-mismatch"
+#endif
+#include <xen/mm.h>
+#pragma GCC diagnostic pop
+
+/* Provide definitions for a minimum synthetic heap */
+#undef page_to_mfn
+#undef mfn_to_page
+#undef mfn_valid
+#define page_to_mfn(pg)    _mfn((pg) - &frame_table[0])
+#define mfn_to_page(mfn)   (&frame_table[mfn_x(mfn)])
+#define mfn_valid(mfn) \
+        (mfn_x(mfn) >= mfn_x(first_valid_mfn) &&  mfn_x(mfn) < max_page)
+
+/* Provide virtual addresses for synthetic memory provided by the harness */
+#undef mfn_to_virt
+#undef __mfn_to_virt
+#undef page_to_virt
+#undef virt_to_page
+static unsigned char       test_dummy_storage[PAGE_SIZE];
+#define mfn_to_virt(mfn)   ((void *)&test_dummy_storage)
+#define __mfn_to_virt(mfn) mfn_to_virt(mfn)
+#define page_to_virt(pg)   ((void *)(pg))
+#define virt_to_page(v)    ((struct page_info *)(v))
+
+/* Not supported by the test harness yet, only used by heap init functions. */
+#undef maddr_to_page
+#define maddr_to_page(pa) (ASSERT_UNREACHABLE(), NULL)
+#endif
+
+#if defined(__arm__) || defined(__aarch64__)
+void dump_hyp_walk(vaddr_t addr)
+{
+    (void)addr;
+}
+
+void __attribute__((__noreturn__)) panic_PAR(uint64_t par)
+{
+    (void)par;
+    ASSERT_UNREACHABLE();
+}
+#endif
+
+#if defined(__riscv)
+vaddr_t directmap_virt_start;
+#endif
+
+#endif
diff --git a/tools/tests/native/harness/native.h b/tools/tests/native/harness/native.h
new file mode 100644
index 000000000000..87553d45d7ec
--- /dev/null
+++ b/tools/tests/native/harness/native.h
@@ -0,0 +1,81 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Main header of the test environment.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+#ifndef TOOLS_TESTS_NATIVE_HARNESS_NATIVE_H
+#define TOOLS_TESTS_NATIVE_HARNESS_NATIVE_H
+
+#pragma GCC diagnostic error "-Wextra"
+#include "common.h"
+
+/*
+ * The test environment needs the virtual address of the direct map which
+ * the test environment emulates with the bss symbol directmap_virt_start
+ * defined below.  In the real hypervisor, this is a fixed virtual address,
+ * but in the test environment, it is allocated in BSS, so replace the fixed
+ * virtual address definition with a dynamic one.
+ *
+ * For example, page_set_owner() and page_get_owner() are used to get and set
+ * the virtual address of the owner domain of a page. They use pdx_to_virt()
+ * and virt_to_pdx() which use DIRECTMAP_VIRT_START to translate between the
+ * page_info struct's pdx-encoded owner field and the virtual address of
+ * the owner domain, so setting DIRECTMAP_VIRT_START to the address of a
+ * an early page-aligned symbol in the test binary (e.g. test_bss_start)
+ * allows the test code to set up and get page ownership.
+ */
+void __aligned(PAGE_SIZE) *test_bss_start;
+
+#ifdef TEST_ENABLE_XC_DOMAIN_C
+#define TEST_WRAP_XEN_COMMON_SYSCTL_C
+#endif
+
+/* If sysctl.c is included, enable CONFIG_SYSCTL for it dependencies */
+#ifdef TEST_WRAP_XEN_COMMON_SYSCTL_C
+#define CONFIG_SYSCTL 1
+#endif
+
+/*
+ * The test environment uses the real Xen page allocator, so include the
+ * page-alloc-shim which provides the necessary supporting structures and
+ * stubs for it to function correctly in the test environment.
+ */
+#define TEST_WRAP_XEN_COMMON_PAGE_ALLOC_C
+#include "page-alloc-shim.h"
+
+/* Include the real page_alloc.c for testing */
+#pragma GCC diagnostic push
+/* At a later point, fix the remaining sign-compare warnings in page_alloc.c */
+#pragma GCC diagnostic ignored "-Wsign-compare"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+/*
+ * Instrumenting the BUG() macro asserting to hit it means it is no longer
+ * noreturn, and a function expects it to be noreturn, so disable this warning
+ */
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#include "../../xen/common/page_alloc.c"
+#pragma GCC diagnostic pop
+
+#ifdef TEST_WRAP_XEN_COMMON_DOMCTL_C
+#include "domctl-wrapper.h"
+#endif
+
+#ifdef TEST_ENABLE_XC_DOMAIN_C
+#include "xc-domain-env.h"
+#define TEST_WRAP_XEN_COMMON_MEMORY_C
+#endif
+
+#ifdef TEST_WRAP_XEN_COMMON_MEMORY_C
+#include "memory-wrapper.h"
+#endif
+
+#ifdef TEST_WRAP_XEN_COMMON_SYSCTL_C
+#include "sysctl-wrapper.h"
+#endif
+
+#ifdef TEST_WRAP_XEN_COMMON_PAGE_ALLOC_C
+#include "page-alloc-env.h"
+#endif
+
+#endif
diff --git a/tools/tests/native/harness/page-alloc-env.h b/tools/tests/native/harness/page-alloc-env.h
new file mode 100644
index 000000000000..53e36c8a3f05
--- /dev/null
+++ b/tools/tests/native/harness/page-alloc-env.h
@@ -0,0 +1,254 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Test environment to compile xen/common/page_alloc.c into the test
+ * environment and provide the necessary supporting structures and stubs
+ * for it to function correctly.
+ *
+ * Also provide helper functions to set up test scenarios and check the
+ * resulting state of the page allocator.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+#ifndef TOOLS_TESTS_NATIVE_PAGE_ALLOC_ENV_H
+#define TOOLS_TESTS_NATIVE_PAGE_ALLOC_ENV_H
+
+#ifdef TEST_WRAP_XEN_COMMON_PAGE_ALLOC_C
+#include "native.h"
+static const unsigned int node = 0;
+static const unsigned int node0 = 0;
+static const unsigned int node1 = 1;
+static const unsigned int order0 = 0;
+static const unsigned int order1 = 1;
+static const unsigned int order2 = 2;
+static const unsigned int order3 = 3;
+
+/* Backing storage for the synthetic allocator state used by the tests. */
+#ifndef PAGES_PER_ZONE
+#define PAGES_PER_ZONE 8
+#endif
+
+#ifndef MAX_PAGES
+#define MAX_PAGES (MAX_NUMNODES * NR_ZONES * PAGES_PER_ZONE)
+#endif
+
+/*
+ * The synthetic frame table backs the page_info entries used by the tests.
+ * It is indexed by MFN so helper code and the imported allocator can
+ * translate directly between MFNs and page_info pointers.
+ */
+struct page_info test_frame_table[MAX_PAGES];
+static heap_by_zone_and_order_t test_heap_storage[MAX_NUMNODES];
+static unsigned long test_avail_storage[MAX_NUMNODES][NR_ZONES];
+struct domain *domain_list;
+
+static void init_numa_node_data(unsigned int start_mfn)
+{
+    (void)start_mfn;
+#ifdef CONFIG_NUMA
+    unsigned long node_spanned_pages = 16;
+
+    for ( unsigned int i = 0; i < NR_CPUS; i++ )
+        cpu_to_node[i] = i;
+
+    for ( unsigned int i = 0; i < MAX_NUMNODES; i++ )
+        node_to_cpumask[i] = (1UL << i);
+
+    for ( unsigned int i = 0; i < MAX_NUMNODES; i++ )
+    {
+        node_data[i].node_start_pfn = start_mfn + (i * node_spanned_pages);
+        node_data[i].node_present_pages = node_spanned_pages;
+        node_data[i].node_spanned_pages = node_spanned_pages;
+    }
+    memnode_shift = fls(node_spanned_pages - 1);
+    for ( unsigned int i = 0; i < 64; i++ )
+        memnodemap[i] = (nodeid_t)i;
+#endif
+}
+
+static void init_dummy_domains(void)
+{
+    nodemask_t dom_node_affinity;
+    struct domain *dom;
+    int dom_id = 1;
+
+    nodes_clear(dom_node_affinity);
+    node_set(node0, dom_node_affinity);
+    node_set(node1, dom_node_affinity);
+    test_current_vcpu.domain = &test_dummy_domain1;
+    domain_list = &test_dummy_domain1;
+    test_dummy_domain1.next_in_list = &test_dummy_domain2;
+
+    for_each_domain ( dom )
+    {
+        dom->node_affinity = dom_node_affinity;
+        dom->max_pages = MAX_PAGES;
+        dom->domain_id = dom_id++;
+        INIT_PAGE_LIST_HEAD(&dom->page_list);
+    }
+}
+
+/* Internal correctness check: page_get_owner and page_set_owner must match. */
+static void sanity_check_page_ownership_accessors(void)
+{
+    struct page_info *page = &frame_table[0];
+
+    /* Ignore the always true warning caused by the static dummy domain */
+    #pragma GCC diagnostic push
+    #pragma GCC diagnostic ignored "-Waddress"
+    page_set_owner(page, &test_dummy_domain1);
+    #pragma GCC diagnostic pop
+
+    ASSERT(page_get_owner(page) == &test_dummy_domain1);
+    page_set_owner(page, NULL); /* Clear the owner again */
+}
+
+static void reset_page_alloc_state(int start_mfn)
+{
+    unsigned int zone, order;
+
+    /* Initialize frame table and heap structures */
+    FRAMETABLE_VIRT_START = (unsigned long)test_frame_table;
+    FRAMETABLE_VIRT_END = (unsigned long)(test_frame_table + MAX_PAGES);
+    memset(test_frame_table, 0, sizeof(test_frame_table));
+    memset(test_heap_storage, 0, sizeof(test_heap_storage));
+    memset(test_avail_storage, 0, sizeof(test_avail_storage));
+    memset(&test_dummy_domain1, 0, sizeof(test_dummy_domain1));
+    memset(&test_dummy_domain2, 0, sizeof(test_dummy_domain2));
+    memset(&test_current_vcpu, 0, sizeof(test_current_vcpu));
+    system_state = SYS_STATE_active;
+    INIT_PAGE_LIST_HEAD(&page_offlined_list);
+    INIT_PAGE_LIST_HEAD(&page_broken_list);
+
+    init_numa_node_data(start_mfn);
+    for ( nodeid_t node = 0; node < MAX_NUMNODES; node++ )
+    {
+        _heap[node] = &test_heap_storage[node];
+        avail[node] = test_avail_storage[node];
+        node_avail_pages[node] = 0;
+        claimed_pages[node] = 0;
+        for ( zone = 0; zone < NR_ZONES; zone++ )
+            for ( order = 0; order <= MAX_ORDER; order++ )
+                INIT_PAGE_LIST_HEAD(&heap(node, zone, order));
+    }
+    total_avail_pages = 0;
+    outstanding_claims = 0;
+    first_valid_mfn = _mfn(start_mfn);
+    max_page = sizeof(test_frame_table) / sizeof(test_frame_table[0]);
+    ASSERT(mfn_x(first_valid_mfn) < max_page);
+    init_dummy_domains();
+    sanity_check_page_ownership_accessors();
+    testcase_assert_verbose_assertions = true;
+}
+
+static void __used init_page_alloc_tests(void)
+{
+    setup_testcase_init_func(reset_page_alloc_state);
+}
+
+static void init_test_page(struct page_info *page, unsigned int order,
+                           unsigned long state)
+{
+    mfn_t mfn = page_to_mfn(page);
+
+    if ( mfn_x(mfn) < mfn_x(first_valid_mfn) && mfn_x(mfn) > 0 &&
+         mfn_x(mfn) < max_page )
+        first_valid_mfn = mfn;
+
+    if ( mfn_x(mfn) >= max_page && mfn_x(mfn) < ARRAY_SIZE(test_frame_table) )
+        max_page = mfn_x(mfn) + 1;
+
+    memset(page, 0, sizeof(*page));
+    page->v.free.order = order;
+    page->u.free.first_dirty = INVALID_DIRTY_IDX;
+    page->u.free.scrub_state = BUDDY_NOT_SCRUBBING;
+    page->count_info = state;
+}
+
+/* Check whether the page is aligned to its order (is size-aligned) */
+static bool page_aligned(struct page_info *pg)
+{
+    return IS_ALIGNED(mfn_x(page_to_mfn(pg)), 1UL << PFN_ORDER(pg));
+}
+
+static size_t __used page_list_add_buddy(struct page_info *pages,
+                                         unsigned int order,
+                                         const char *caller_file,
+                                         const char *caller_func,
+                                         int caller_line)
+{
+    size_t i, num_pages = 1U << order;
+    bool verbose = testcase_assert_verbose_assertions;
+
+    testcase_assert_verbose_assertions = false;
+    init_test_page(&pages[0], order, PGC_state_inuse);
+    for ( i = 1; i < num_pages; i++ )
+        init_test_page(&pages[i], order0, PGC_state_inuse);
+    free_heap_pages(&pages[0], order, false);
+
+    if ( !page_aligned(&pages[0]))
+        testcase_assert(false, caller_file, caller_line, caller_func,
+                        "Buddy of order %u at MFN %lu is not size-aligned",
+                        order, mfn_x(page_to_mfn(&pages[0])));
+    if ( page_to_zone(&pages[0]) != page_to_zone(&pages[num_pages - 1]) )
+        testcase_assert(false, caller_file, caller_line, caller_func,
+                        "Buddy of order %u at MFN %lu crosses zones: "
+                        "start zone %u, end zone %u", order,
+                        mfn_x(page_to_mfn(&pages[0])),
+                        page_to_zone(&pages[0]),
+                        page_to_zone(&pages[num_pages - 1]));
+    testcase_assert_verbose_assertions = verbose;
+    return page_to_zone(&pages[0]);
+}
+#define test_page_list_add_buddy(pages, order) \
+        page_list_add_buddy(pages, order, __FILE__, __func__, __LINE__)
+
+#define test_page_list_add_node_buddy(node, start_mfn, order)             \
+        page_list_add_buddy(frame_table + node_data[node].node_start_pfn + \
+                            (start_mfn), order, __FILE__, __func__, __LINE__)
+
+#define test_get_node_page(node, offset) \
+        (frame_table + node_data[node].node_start_pfn + (offset))
+
+/* Check consistency of total xc_availheap() pages with total_avail_pages */
+static void check_xc_avail_heap(const char *file, int line, const char *func)
+{
+#if defined(TEST_ENABLE_XC_DOMAIN_C) && defined(TEST_WRAP_XEN_COMMON_SYSCTL_C)
+    uint64_t free_bytes;
+
+    testcase_assert(xc_availheap(xch, 0, 0, -1, &free_bytes) == 0,
+                    file, line, func, "xc_availheap() failed");
+    testcase_assert(free_bytes / XC_PAGE_SIZE == total_avail_pages,
+                    file, line, func, "xc_availheap() != total_avail_pages");
+#endif
+}
+
+/* Get the number of free pages with consistency checks */
+unsigned long get_free_pages(const char *file, int line, const char *func)
+{
+    bool verbose = testcase_assert_verbose_assertions;
+
+    testcase_assert_verbose_assertions = false;
+    check_xc_avail_heap(file, line, func);
+    testcase_assert(avail_heap_pages(MEMZONE_XEN, NR_ZONES - 1, -1) ==
+                    total_avail_pages, file, line, func, "avail_heap_pages()");
+    testcase_assert_verbose_assertions = verbose;
+    return total_avail_pages;
+}
+
+#define FREE_PAGES get_free_pages(__FILE__, __LINE__, __func__)
+#define TOTAL_CLAIMS (outstanding_claims)
+
+/* Stubs needed for the page allocator */
+
+/* Stub for page_alloc.c's keyhandler registrations */
+void __init register_keyhandler(unsigned char key, keyhandler_fn_t *fn,
+                                const char *desc, bool diagnostic)
+{
+    (void)key;
+    (void)fn;
+    (void)desc;
+    (void)diagnostic;
+}
+
+#endif
+#endif
diff --git a/tools/tests/native/harness/page-alloc-shim.h b/tools/tests/native/harness/page-alloc-shim.h
new file mode 100644
index 000000000000..75652c9291ba
--- /dev/null
+++ b/tools/tests/native/harness/page-alloc-shim.h
@@ -0,0 +1,328 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Minimal shim to include xen/common/page_alloc.c in host-side tests.
+ *
+ * This shim provides the minimal Xen definitions that page_alloc.c
+ * needs to run in a host-side test environment.  It replaces a
+ * minimal subset of the Xen environment that xen/common/page_alloc.c
+ * interacts with with stubs so it can run in the test environment,
+ * allowing test scenarios to verify the behavior of page_alloc.c.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+#ifndef TOOLS_TESTS_NATIVE_HARNESS_PAGE_ALLOC_SHIM_H
+#define TOOLS_TESTS_NATIVE_HARNESS_PAGE_ALLOC_SHIM_H
+
+/*
+ * Guard against language servers and linters picking up this header.
+ *
+ * This shim is intended to be used in test programs for testing the
+ * code of xen/common/page_alloc.c in a host-side test environment,
+ * and test programs need to define TEST_WRAP_XEN_COMMON_PAGE_ALLOC_C
+ * to enable the definitions in this header.
+ */
+#ifdef TEST_WRAP_XEN_COMMON_PAGE_ALLOC_C
+#define CONFIG_SCRUB_DEBUG
+#define TEST_WRAP_XEN_INCLUDE_XEN_MM_H
+
+/* Provide struct page_info and related Xen definitions */
+#include "common.h"
+#include "mm-wrapper.h"
+
+#include <xen/nospec.h>     /* xen/pci.h needs to include xen/nospec.h */
+#include <xen/kernel.h>
+#include <xen/typesafe.h>
+#include <public/xen.h>
+
+/* Include xen/numa.h with stubs and unused parameter warnings disabled */
+#define cpumask_clear_cpu(cpu, mask) ((void)(cpu), (void)(mask))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#include <xen/numa.h>
+#pragma GCC diagnostic pop
+
+/* Flexible definition to support 32- and 64-bit architectures */
+typedef unsigned long nodemask_t;
+
+/*
+ * Include xen/sched.h for struct domain and struct vcpu definitions.
+ * The guards need to prevent inclusion of the conflicting headers
+ * that would cause problems in the test context, but sched.h itself
+ * is needed to provide the full definitions of struct domain and
+ * struct vcpu that page_alloc.c interacts with.
+ */
+
+/*
+ * Provide stubs for types from blocked headers that xen/sched.h's struct
+ * domain and struct vcpu reference by value.  These are minimal empty
+ * definitions sufficient to make the structs compile in the test context.
+ */
+typedef cpumask_t *cpumask_var_t;
+struct timer {};
+#ifndef __riscv
+struct arch_domain {};
+struct arch_vcpu {};
+struct arch_vcpu_io {};
+#endif
+struct lock_profile {};
+struct lock_profile_qhead {};
+struct tasklet {};
+struct _rcu_read_lock {};
+typedef struct _rcu_read_lock rcu_read_lock_t;
+
+/* rcu_dereference is used by for_each_domain in sched.h (rcupdate.h blocked) */
+#define rcu_dereference(p) (p)
+
+/* perfc_incr is used in SCHED_STAT_CRANK (perfc.h blocked) */
+#define perfc_incr(x)      ((void)0)
+
+/*
+ * Macros and stubs needed by sched.h's inline function bodies during header
+ * compilation.  These come from headers that are blocked above.  Some are
+ * also redefined in the stubs section below.
+ */
+
+/*
+ * RCU annotation and helper stubs.  rcupdate.h is blocked; provide the
+ * minimal definitions that radix-tree.h and sched.h need during compilation.
+ */
+#define __rcu                           /* RCU ownership annotation (empty) */
+#define rcu_assign_pointer(p, v)        ((p) = (v))
+struct rcu_head {
+    struct rcu_head *next;
+    void             (*func)(struct rcu_head *);
+};
+
+static struct vcpu __used *current;  /* zero-init; assigned via constructor below */
+enum system_state system_state = SYS_STATE_active;
+
+/* Macros used by sched.h inline functions (blocked headers provide these) */
+#define cpumask_weight(mask)  1U
+#define rcu_read_lock(lock)   ((void)(lock))
+#define rcu_read_unlock(lock) ((void)(lock))
+/*
+ * Minimal per-CPU stubs: sched.h uses DECLARE_PER_CPU and this_cpu() in
+ * inline functions.  These come from the blocked percpu.h.  Map onto simple
+ * file-scope static variables to satisfy compilation.
+ */
+#define this_cpu(x)                 (shim_per_cpu__##x)
+
+/*
+ * page_to_list is a macro in mock-page-list.h (included earlier) AND a
+ * static inline in sched.h.  Undefine the macro before the include so that
+ * sched.h can define the function without a conflicting macro expansion.
+ * The mock macro is restored after sched.h is included.
+ */
+#undef page_to_list
+#undef is_xen_heap_page
+#undef is_xen_fixed_mfn
+#undef is_xen_heap_mfn
+#define is_xen_heap_page(pg)  false
+#define is_xen_fixed_mfn(mfn) false
+#define is_xen_heap_mfn(mfn)  false
+
+/*
+ * domain_crash has a 1-arg macro in hypervisor-macros.h and a variadic
+ * macro in sched.h.  Undefine before the include to avoid -Wmacro-redefined;
+ * sched.h's variadic version plus the __domain_crash() stub provided below
+ * give us the correct behaviour in the test context.
+ */
+#undef domain_crash
+
+/* ioreq.h provides ioreq_t used by struct vcpu_io inside sched.h */
+#include <public/hvm/ioreq.h>
+
+/*
+ * Include the real xen/sched.h to get struct domain, struct vcpu, and
+ * all related declarations.  The guards above prevent conflicting
+ * subsidiary headers from being pulled in.  Suppress warnings about
+ * unused parameters in the Xen header inline functions.
+ */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+/*
+ * Suppress builtin declaration mismatch warnings for Xen's ffsl and flsl
+ * definitions, Xen's ffs macros are unsigned while gcc expects signed.
+ */
+#ifndef __clang__
+#pragma GCC diagnostic ignored "-Wbuiltin-declaration-mismatch"
+#else
+#pragma clang diagnostic ignored "-Wtypedef-redefinition"
+#endif
+#include <xen/sched.h>
+#pragma GCC diagnostic pop
+
+/* Dummy domains for allocations and page ownership in the test context */
+static struct domain test_dummy_domain1;
+static struct domain test_dummy_domain2;
+static struct domain __used *dom1 = &test_dummy_domain1;
+static struct domain __used *dom2 = &test_dummy_domain2;
+
+/*
+ * Restore test-friendly overrides for sched.h macros that reference
+ * real Xen runtime infrastructure (domain_destroy, etc.).
+ */
+#undef put_domain
+#define put_domain(d)       ((void)(d))
+
+/* RCU domain locking (additional stubs beyond rcu_lock_domain already there) */
+#define rcu_unlock_domain(d) ((void)(d))
+#define dom_io               (&test_dummy_domain1)
+#define dom_xen              (&test_dummy_domain2)
+
+/* To provide a current vcpu/domain pair for code paths that inspect it. */
+
+static struct vcpu test_current_vcpu;
+/* 'current' was forward-declared before sched.h.  Set the pointer at
+ * program startup via a constructor so that test helpers see the right vcpu
+ * from the very first call into the allocator. */
+static void __attribute__((constructor)) _page_alloc_shim_init_current(void)
+{
+    current = &test_current_vcpu;
+}
+/* dom_cow is a domain pointer used by the memory sharing code */
+#ifdef CONFIG_MEM_SHARING
+static struct domain *dom_cow;
+#else
+#define dom_cow NULL
+#endif
+
+/* NUMA stubs for unit testing NUMA-aware page allocator logic. */
+#define first_node(mask)                    \
+        ({                                  \
+             unsigned long __mask = (mask); \
+             __builtin_ffs(__mask) - 1;     \
+         })
+#define next_node(node, mask)                                              \
+        ({                                                                 \
+             unsigned long __mask = (mask) & ~((1UL << ((node) + 1)) - 1); \
+             __builtin_ffs(__mask) - 1;                                    \
+         })
+#define cycle_node(node, mask)                                             \
+        ({                                                                 \
+             unsigned long __mask = (mask) & ~((1UL << ((node) + 1)) - 1); \
+             int __next = __builtin_ffs(__mask) - 1;                       \
+             __next >= 0 ? __next : first_node(mask);                      \
+         })
+#define num_online_nodes()        MAX_NUMNODES
+#define node_online(node)         ((node) < MAX_NUMNODES)
+static nodemask_t node_online_map = ~0UL;
+
+#ifdef CONFIG_NUMA
+/* Replacements for common/numa.c */
+#define __node_distance(a, b) 0
+nodeid_t cpu_to_node[NR_CPUS];
+cpumask_t node_to_cpumask[MAX_NUMNODES];
+struct node_data node_data[MAX_NUMNODES];
+unsigned int memnode_shift;
+static typeof(*memnodemap) _memnodemap[64];
+nodeid_t *memnodemap = _memnodemap;
+unsigned long memnodemapsize = sizeof(_memnodemap);
+#endif /* CONFIG_NUMA */
+
+/*
+ * Stub definitions for Xen functions and macros used by page_alloc.c,
+ * sufficient to support the test scenarios.
+ *
+ * These are not intended to be complete or accurate for general use
+ * in other test contexts or as a general-purpose shim for page_alloc.c.
+ */
+#define rcu_lock_domain(id)               (&test_dummy_domain1)
+#define rcu_lock_domain_by_any_id(id)     (&test_dummy_domain1)
+#define NOW()                             0LL
+#define cpu_online(cpu)                   ((cpu) == 0)
+#define smp_processor_id()                0U
+/* smp_wmb and cpumask_weight defined before sched.h include; identical
+ * redefinitions here are benign but kept for clarity. */
+#define cpumask_empty(mask)               true
+#define cpumask_clear(mask)               ((void)(mask))
+#define cpumask_and(dst, a, b)            ((void)(dst), (void)(a), (void)(b))
+#define cpumask_or(dst, a, b)             ((void)(dst), (void)(a), (void)(b))
+#define cpumask_copy(dst, src)            ((void)(dst), (void)(src))
+#define cpumask_first(mask)               0U
+#define cpumask_intersects(a, b)          false
+
+#define parse_bool(s, e) (-1) /* Use the default register_keyhandler value */
+
+/* cpumask_weight defined before sched.h; identical redefinition is benign */
+#define __cpumask_set_cpu(cpu, mask)      ((void)(cpu), (void)(mask))
+#define page_get_owner_and_reference(pg)  page_get_owner(pg)
+#define page_is_offlinable(mfn)           true
+#define softirq_pending(cpu)              false
+#define process_pending_softirqs()        ((void)0)
+#define on_selected_cpus(msk, f, data, w) ((void)0)
+#define get_order_from_pages(nr)          0U
+#define get_order_from_bytes(bytes)       0U
+
+/* Testing hypercall preemption is not supported yet. */
+#undef hypercall_preempt_check
+#define hypercall_preempt_check()  0
+
+#undef arch_free_heap_page
+#define arch_free_heap_page(d, pg) ((void)(d), (void)(pg))
+#define unmap_domain_page(ptr)     ((void)(ptr))
+#define ASSERT_ALLOC_CONTEXT()     ((void)0)
+#define get_knownalive_domain(d)   ((void)(d))
+#define mem_paging_enabled(d)      false
+
+#define put_page(pg) ((void)(pg))
+bool get_page(struct page_info *page, const struct domain *domain)
+{
+    (void)page;
+    (void)domain;
+    return false;
+}
+
+#ifdef __x86_64__
+#define clear_page_hot(ptr)          memset((ptr), 0, PAGE_SIZE)
+#define clear_page_cold(ptr)         memset((ptr), 0, PAGE_SIZE)
+#define scrub_page_hot(ptr)          clear_page_hot(ptr)
+#define scrub_page_cold(ptr)         clear_page_cold(ptr)
+#define set_gpfn_from_mfn(mfn, gpfn) ((void)0)
+
+unsigned int arch_get_dma_bitsize(void)
+{
+    return 32U;
+}
+#endif
+
+#if defined(__arm__) || defined(__aarch64__)
+#define test_and_clear_bit(nr, addr) generic__test_and_clear_bit(nr, addr)
+#endif
+
+/* LLC (Last Level Cache) coloring support stubs */
+#define llc_coloring_enabled false
+unsigned int get_max_nr_llc_colors(void)
+{
+    return 1U;
+}
+
+unsigned int page_to_llc_color(const struct page_info *pg)
+{
+    (void)pg;
+    return 0U;
+}
+
+void send_global_virq(uint32_t virq)
+{
+    (void)virq;
+}
+
+unsigned long simple_strtoul(const char *cp, const char **endp,
+                             unsigned int base)
+{
+    return strtoul(cp, (char **)endp, base);
+}
+
+/*
+ * __domain_crash is declared by sched.h (via domain_crash macro) but has no
+ * definition for the test environment.  Provide a no-op stub so the test
+ * binary links correctly if domain_crash is ever expanded.
+ */
+void __domain_crash(struct domain *d)
+{
+    (void)d;
+}
+
+#endif
+#endif
diff --git a/tools/tests/native/harness/sysctl-shim.h b/tools/tests/native/harness/sysctl-shim.h
new file mode 100644
index 000000000000..e4170619c46b
--- /dev/null
+++ b/tools/tests/native/harness/sysctl-shim.h
@@ -0,0 +1,155 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Minimal shim to include xen/common/sysctl.c in host-side tests.
+ *
+ * This shim provides the minimal Xen definitions that sysctl.c
+ * needs to run in a host-side test environment.  It replaces a
+ * minimal subset of the Xen environment that xen/common/sysctl.c
+ * interacts with with stubs so it can run in the test environment,
+ * allowing test scenarios to verify the behavior of sysctl.c.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+#ifndef TOOLS_TESTS_NATIVE_HARNESS_SYSCTL_SHIM_H
+#define TOOLS_TESTS_NATIVE_HARNESS_SYSCTL_SHIM_H
+
+/*
+ * Guard against language servers and linters picking up this header.
+ *
+ * This shim is intended to be used in test programs for testing
+ * the code of xen/common/sysctl.c in a host-side test environment,
+ * and test programs need to define TEST_WRAP_XEN_COMMON_SYSCTL_C
+ * to enable the definitions in this header.
+ */
+#ifndef TEST_WRAP_XEN_COMMON_SYSCTL_C
+#warning "Include this header only in integration tests using sysctl.c"
+#else
+
+/*
+ * Inside the intended test context, provide stub definitions.
+ *
+ * Some functions need to use types defined in specific headers,
+ * so we include them and define header guards to prevent unwanted
+ * definitions from those headers that conflict with the test harness
+ * or bring in Xen-internal structures that are already provided by
+ * the natural C compiler defines, libc defines and stubs in this shim.
+ */
+
+/*
+ * Block headers whose content conflicts with the test harness or that pull in
+ * types and functions not available in the host environment.  Stubs for the
+ * symbols that sysctl.c actually uses from those headers are provided below.
+ */
+
+/* console.h: read_console_ring stub provided below. */
+#define __CONSOLE_H__
+
+/*
+ * RCU read-side locking.
+ *
+ * struct _rcu_read_lock, rcu_read_lock_t, rcu_read_lock(), and
+ * rcu_read_unlock() are now provided by page-alloc-shim.h (before sched.h
+ * is included).  Only keep the helpers that sysctl-shim.h itself uses.
+ */
+#define DEFINE_RCU_READ_LOCK(x) static rcu_read_lock_t x
+
+/* domlist_read_lock is declared extern in sched.h; provide the definition. */
+rcu_read_lock_t domlist_read_lock;
+
+/*
+ * XSM hooks used by sysctl.c beyond those already stubbed in
+ * domctl-shim.h and memory-shim.h.
+ * The test environment permits all operations.
+ */
+#define xsm_sysctl(xsm, d)             ((void)(d), 0)
+#define xsm_readconsole(xsm, clear)    ((void)(clear), 0)
+#define xsm_page_offline(xsm, cmd)     ((void)(cmd), 0)
+
+/* console.h stubs: read_console_ring is not tested here. */
+#define read_console_ring(op)           ((void)(op), -EOPNOTSUPP)
+
+/*
+ * keyhandler.h is already included by page-alloc-shim.h; stub
+ * handle_keypress as a no-op so the debug-keys sysctl case compiles.
+ */
+#define handle_keypress(key, ctx)       ((void)(key), (void)(ctx))
+
+/*
+ * Scheduler stubs.
+ *
+ * sched.h is blocked by __SCHED_H__ in page-alloc-shim.h.
+ */
+#define scheduler_id()                  0
+#define sched_adjust_global(op)         ((void)(op), -EOPNOTSUPP)
+#define get_cpu_idle_time(cpu)          ((void)(cpu), 0ULL)
+
+/* cpupool_do_sysctl: cpupool operations are not tested here. */
+#define cpupool_do_sysctl(op)           ((void)(op), -EOPNOTSUPP)
+
+/*
+ * CPU and node count stubs.
+ *
+ * cpumask.h is blocked by __XEN_CPUMASK_H in page-alloc-shim.h.
+ * nodemask.h is blocked by __LINUX_NODEMASK_H there too.
+ */
+#define nr_cpu_ids                      1U
+#define num_online_cpus()               1U
+
+/* cpumask_last: highest present CPU index.  Single-CPU host → 0. */
+#define cpumask_last(mask)              0U
+
+/*
+ * cpu_present_map: reuse cpu_online_map which is already defined as a
+ * static cpumask_t in page-alloc-shim.h.
+ */
+#define cpu_present_map                 cpu_online_map
+#define cpu_present(i)                  ((i) == 0U)
+
+/*
+ * last_node(mask): index of the highest-set bit in the nodemask.
+ * nodemask_t is unsigned long in this test environment (harness.h).
+ * Return MAX_NUMNODES-1 so num_nodes = MAX_NUMNODES consistently with
+ * num_online_nodes().
+ */
+#define last_node(mask)                 ((int)(MAX_NUMNODES - 1))
+
+/* CPU topology: single-socket single-core test host. */
+#ifdef __x86_64__
+#define cpu_to_core(cpu)                ((void)(cpu), 0U)
+#define cpu_to_socket(cpu)              ((void)(cpu), 0U)
+#endif
+
+/* get_upper_mfn_bound: arch-specific stub; return 0 for the test. */
+#define get_upper_mfn_bound()           0UL
+
+/* arch_do_physinfo: no-op arch extension to XEN_SYSCTL_physinfo. */
+#define arch_do_physinfo(pi)            ((void)(pi))
+
+/* arch_do_sysctl: fall-through for unrecognised sysctl commands. */
+#define arch_do_sysctl(op, u)           ((void)(op), (void)(u), -EOPNOTSUPP)
+
+/*
+ * cpu_khz: nominal 1 GHz for the test environment.
+ *
+ * Using a variable rather than a macro avoids the preprocessor expanding
+ * the name inside struct-member access expressions like pi->cpu_khz.
+ */
+static unsigned long cpu_khz = 1000000UL;
+
+/* IOMMU: not configured in the test environment. */
+#define iommu_enabled      false
+#define iommu_hap_pt_share false
+
+/*
+ * vmtrace_available is already #define'd false via xen/domain.h when
+ * CONFIG_VMTRACE is not set.
+ *
+ * vpmu_is_available is declared extern in xen/domain.h with no CONFIG
+ * guard; shadow it here so no definition is needed at link time.
+ */
+#define vpmu_is_available false
+
+/* xen/grant_table.h is blocked by __XEN_GRANT_TABLE_H__ in memory-shim.h. */
+#define opt_gnttab_max_version 0
+#endif
+#endif
diff --git a/tools/tests/native/harness/sysctl-wrapper.h b/tools/tests/native/harness/sysctl-wrapper.h
new file mode 100644
index 000000000000..48857bbc800b
--- /dev/null
+++ b/tools/tests/native/harness/sysctl-wrapper.h
@@ -0,0 +1,38 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Wrapper around xen/common/sysctl.c for the allocator test framework.
+ *
+ * Includes the real sysctl.c directly in its translation unit.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+#ifndef TOOLS_TESTS_NATIVE_HARNESS_SYSCTL_WRAPPER_H
+#define TOOLS_TESTS_NATIVE_HARNESS_SYSCTL_WRAPPER_H
+#ifdef TEST_WRAP_XEN_COMMON_SYSCTL_C
+
+#include "sysctl-shim.h"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#pragma GCC diagnostic ignored "-Wunused-function"
+#include "../../xen/common/sysctl.c"
+#pragma GCC diagnostic pop
+
+#define TEST_WRAP_TOOLS_INCLUDE_XENCTRL_H
+#include "xenctrl-shim.h"
+
+int xc_sysctl(xc_interface *xch, struct xen_sysctl *sysctl)
+{
+    /* Convert from sysctl pointer to xen_sysctl_t handle */
+    union {
+        XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) handle;
+        struct xen_sysctl *ptr;
+    } u = { .ptr = sysctl };
+
+    sysctl->interface_version = XEN_SYSCTL_INTERFACE_VERSION;
+    ASSERT(xch == &test_xc_handle);
+    return do_sysctl(u.handle); /* Call xen/common/sysctl.c's do_sysctl() */
+}
+
+#endif
+#endif
diff --git a/tools/tests/native/harness/testcase-asserts.h b/tools/tests/native/harness/testcase-asserts.h
new file mode 100644
index 000000000000..ac850a8fb052
--- /dev/null
+++ b/tools/tests/native/harness/testcase-asserts.h
@@ -0,0 +1,310 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Functions for running test cases and reporting results.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+
+#ifndef TOOLS_TESTS_NATIVE_HARNESS_TESTCASE_ASSERTS_H
+#define TOOLS_TESTS_NATIVE_HARNESS_TESTCASE_ASSERTS_H
+
+/* Common macros compatible with the test environment. */
+#include "xen-macros.h"
+
+/* Macros for assertions and test case management. */
+#ifndef _SUBPATH_
+#define _SUBPATH_ "tools/tests/native"
+#endif
+#define __used __attribute__((__used__))
+#define assert_failed_str "Assertion failed: "
+#define CHECK(condition, fmt, ...)                                    \
+        testcase_assert(condition, __FILE__, __LINE__, __func__, fmt, \
+                        ##__VA_ARGS__)
+#define ASSERT(x) \
+        testcase_assert(x, __FILE__, __LINE__, __func__, assert_failed_str #x)
+#define BUG_ON(x) \
+        testcase_assert(!(x), __FILE__, __LINE__, __func__, "BUG_ON: " #x)
+#define ASSERT_UNREACHABLE() assert(false)
+#define EXPECT_FAIL_BEGIN() (testcase_assert_expect_fail = true)
+#define EXPECT_FAIL_END(c) testcase_assert_check_expected_failures(c)
+
+/* Structure to hold information about each test case. */
+struct testcase {
+    const char *name;              /* test case name */
+    const char *tid;               /* Test ID */
+    int         intarg;            /* passed to the test case */
+    void        (*func)(int);      /* Test case function */
+    int         passed_asserts;    /* Number of ASSERTS that passed. */
+    int         expected_failures; /* Number of XFAILs */
+    bool        disabled;          /* Whether the test case is disabled */
+    bool        failed;            /* Whether the test case failed */
+} testcases[40];
+
+/* Global variables to track the current test case and assertion results. */
+struct testcase *current_testcase = testcases;
+static bool testcase_assert_expect_fail = false;
+static bool testcase_assert_verbose_assertions;
+static int testcase_assert_verbose_indent_level;
+static int testcase_assert_expected_failures;
+static int testcase_assert_expected_failures_total;
+static int testcase_assert_successful_assert_total;
+static void (*testcase_init_func)(int);
+static char **testcase_assert_enabled_tests;
+static const char *testcase_program_name;
+static const char *testcase_assert_current_func;
+
+/* Print a report for a single test, including its ID, name, and results. */
+static void testcase_print_tid_report(struct testcase *tc)
+{
+    printf("- %-5s %-34s %2d: ", tc->tid, tc->name, tc->intarg);
+    if ( tc->disabled )
+        printf("    disabled"); /* This test case was disabled */
+    else
+    {
+        printf("%3d assertions passed", tc->passed_asserts);
+        if ( tc->failed )
+            printf(" (FAILED)");
+        if ( tc->expected_failures )
+            printf(" (%2d XFAIL)", tc->expected_failures);
+    }
+    printf("\n");
+}
+
+/* Print a summary of all test cases, including totals of the enabled tests. */
+static void testcase_print_summary(void)
+{
+    int total_asserts = 0, expected_failures = 0;
+
+    printf("\nTest Report:\n");
+
+    current_testcase = testcases;
+    for ( size_t i = 0; i < ARRAY_SIZE(testcases) && current_testcase->func;
+          i++ )
+    {
+        testcase_print_tid_report(current_testcase);
+        total_asserts += current_testcase->passed_asserts;
+        expected_failures += current_testcase->expected_failures;
+        current_testcase++;
+    }
+    current_testcase->tid = "Total";
+    current_testcase->name = "";
+    current_testcase->passed_asserts = total_asserts;
+    current_testcase->expected_failures = expected_failures;
+    current_testcase->intarg = current_testcase - testcases;
+    testcase_print_tid_report(current_testcase);
+
+    /* Print if testcase_assert_enabled_tests has tests which were enabled */
+    if ( *testcase_assert_enabled_tests )
+    {
+        printf("\nEnabled tests:");
+        for ( char **p = testcase_assert_enabled_tests; *p; p++ )
+        {
+            printf(" %s", *p);
+            /* Check if the enabled test was actually run, if not print a warning. */
+            bool found = false;
+            current_testcase = testcases;
+            for ( size_t i = 0;
+                  i < ARRAY_SIZE(testcases) && current_testcase->func; i++ )
+            {
+                if ( strcmp(current_testcase->tid, *p) == 0 )
+                {
+                    found = true;
+                    break;
+                }
+                current_testcase++;
+            }
+            if ( !found )
+                printf(" (WARNING: test not found)");
+        }
+        printf("\n");
+    }
+}
+
+/* Print a test report and complete the test program successfully. */
+static int test_complete(void)
+{
+    testcase_print_summary();
+    printf("\nTest program %s completed.\n", testcase_program_name);
+    return 0;
+}
+
+/* Print a test report and abort the test program. */
+static void test_abort(void)
+{
+    testcase_print_summary();
+    printf("\nTest program %s aborted.\n", testcase_program_name);
+    abort();
+}
+
+/* Check if the expected number of assertion failures occurred. */
+static void __used testcase_assert_check_expected_failures(int expected)
+{
+    if ( testcase_assert_expected_failures != expected )
+    {
+        fprintf(stderr, "Expected %d assertion failures, got %d\n",
+                expected, testcase_assert_expected_failures);
+        current_testcase->failed = true;
+        test_abort();
+    }
+    testcase_assert_expect_fail = false;
+    testcase_assert_expected_failures = 0;
+    testcase_assert_expected_failures_total += expected;
+}
+
+/* Set up the initialization function for a test case. */
+static void __used setup_testcase_init_func(void (*init_fn)(int))
+{
+    testcase_init_func = init_fn;
+}
+
+/* Assert a condition, record the result and print a message if it fails. */
+__attribute__((format(printf, 5, 6)))
+static void testcase_assert(bool condition, const char *file, int line,
+                            const char *func, const char *fmt, ...)
+{
+    va_list ap;
+    const char *relpath = file;
+
+    fflush(stdout);
+    while ( (file = strstr(relpath, "../")) )
+        relpath += 3;
+
+    va_start(ap, fmt);
+    if ( testcase_assert_expect_fail )
+    {
+        fprintf(stderr, "\n- Test assertion %s at %s:%d:\n  ",
+                condition ? "unexpectedly passed" : "failed as expected",
+                relpath, line);
+        vfprintf(stderr, fmt, ap);
+        fprintf(stderr, "\n\n");
+
+        if ( condition )
+        {
+            current_testcase->failed = true;
+            test_abort(); /* Unexpected pass, treat as test failure */
+        }
+        else
+            testcase_assert_expected_failures++; /* Count for the report. */
+        goto out;
+    }
+    if ( !condition )
+    {
+        fprintf(stderr, "Test assertion failed at %s:%d: ", relpath, line);
+        vfprintf(stderr, fmt, ap);
+        fprintf(stderr, "\n\n%s/%s:%d, %s():\n", _SUBPATH_, relpath, line, func);
+        fprintf(stderr, "Testcase %s(%s, %d) failed!\n", current_testcase->name,
+                current_testcase->tid, current_testcase->intarg);
+        current_testcase->failed = true;
+        test_abort();
+    }
+    testcase_assert_successful_assert_total++;
+    if ( testcase_assert_verbose_assertions )
+    {
+        if ( strncmp(fmt, assert_failed_str, strlen(assert_failed_str)) == 0 )
+            fmt += strlen(assert_failed_str);
+
+        if ( strcmp(fmt, "ret == 0") == 0 )
+            goto out;
+
+        for ( int i = 0; i < testcase_assert_verbose_indent_level; i++ )
+            printf("  ");
+
+        printf("%s:%d: ", relpath, line);
+        if ( (testcase_assert_current_func == NULL ||
+              strcmp(testcase_assert_current_func, func)) &&
+             (strncmp(relpath, "test-", strlen("test-")) &&
+              strncmp(func, "test_", strlen("test_"))) )
+            printf("%s(): ", func);
+
+        if ( strncmp(fmt, "BUG_ON:", 7) )
+            printf("ASSERT(");
+
+        vprintf(fmt, ap);
+
+        if ( strncmp(fmt, "BUG_ON:", 7) )
+            printf(")");
+
+        printf("\n");
+    }
+ out:
+    va_end(ap);
+}
+
+/* Run a test case function with the given argument and report results. */
+static void run_testcase(void (*case_func)(int), int int_arg, const char *tid,
+                         const char *case_name)
+{
+    current_testcase->name = case_name;
+    current_testcase->func = case_func;
+    current_testcase->intarg = int_arg;
+    current_testcase->tid = tid;
+    current_testcase->passed_asserts = 0;
+    current_testcase->expected_failures = 0;
+
+    if ( *testcase_assert_enabled_tests )
+    {
+        bool enabled = false;
+
+        for ( char **p = testcase_assert_enabled_tests; *p; p++ )
+        {
+            if ( strcmp(*p, tid) == 0 )
+            {
+                enabled = true;
+                break;
+            }
+        }
+        if ( !enabled )
+        {
+            current_testcase->disabled = true;
+            goto skip;
+        }
+    }
+    printf("\nTest Case: %s...\n", case_name);
+
+    if ( testcase_init_func && int_arg >= 0 )
+        testcase_init_func(int_arg);
+
+    case_func(int_arg);
+
+    current_testcase->passed_asserts = testcase_assert_successful_assert_total;
+    current_testcase->expected_failures =
+        testcase_assert_expected_failures_total;
+
+    testcase_assert_successful_assert_total = 0;
+    testcase_assert_expected_failures_total = 0;
+
+    printf("\nResults:\n");
+    testcase_print_tid_report(current_testcase);
+ skip:
+    current_testcase++;
+    if ( current_testcase - testcases >= (long)ARRAY_SIZE(testcases) )
+    {
+        fprintf(stderr, "Too many tests, increase the size of testcases[]\n");
+        test_abort();
+    }
+}
+
+/* Macro to run a test case with the given ID, function, and argument. */
+#define RUN_TESTCASE(tid, func, arg) run_testcase(func, arg, tid, #func)
+
+/* Parse command-line arguments and return the program name. */
+static const char *parse_args(int argc, char *argv[], const char *topic)
+{
+    const char *program_name = argv[0];
+    (void)argc;
+
+    program_name = strrchr(program_name, '/');
+    if ( program_name )
+        program_name++;
+    else
+        program_name = argv[0];
+
+    testcase_assert_enabled_tests = &argv[1];
+    printf("Program: %s\n", program_name);
+    printf("Topic  : %s\n", topic);
+    memset(testcases, 0, sizeof(testcases));
+    testcase_program_name = program_name;
+    return program_name;
+}
+
+#endif
diff --git a/tools/tests/native/harness/xc-domain-env.h b/tools/tests/native/harness/xc-domain-env.h
new file mode 100644
index 000000000000..0d4c6821729b
--- /dev/null
+++ b/tools/tests/native/harness/xc-domain-env.h
@@ -0,0 +1,77 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Wrapper around tools/libs/ctrl/xc_domain.c for the allocator test harness.
+ *
+ * The test framework includes the real xc_domain.c directly in its
+ * translation unit, together with a small shim for the libxc internals it
+ * uses and a proxy that redirects do_domctl(xch, domctl) to the wrapped Xen
+ * domctl handler already present in this harness.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+#ifndef TOOLS_TESTS_NATIVE_HARNESS_XC_DOMAIN_ENV_H
+#define TOOLS_TESTS_NATIVE_HARNESS_XC_DOMAIN_ENV_H
+#ifdef TEST_ENABLE_XC_DOMAIN_C
+
+#define TEST_WRAP_XEN_COMMON_DOMCTL_C
+#include "domctl-wrapper.h"
+
+#define TEST_WRAP_TOOLS_INCLUDE_XENCTRL_H
+#include "xenctrl-shim.h"
+
+/* Hypercall passthrough of xc's do_domctl() to the hypervisor's do_domctl() */
+static inline int do_domctl_hypervisor_passthrough(xc_interface *xch,
+                                                   struct xen_domctl *domctl)
+{
+    /* Convert from domctl pointer to xen_domctl_t handle */
+    union {
+        XEN_GUEST_HANDLE_PARAM(xen_domctl_t) handle;
+        struct xen_domctl *ptr;
+    } u = { .ptr = domctl };
+
+    domctl->interface_version = XEN_DOMCTL_INTERFACE_VERSION;
+    ASSERT(xch == &test_xc_handle);
+    return do_domctl(u.handle); /* Call xen/common/domctl.c's do_domctl() */
+}
+
+/* Make do_domctl() calls in libs/ctrl/xc_domain.c use the passthrough */
+#define do_domctl do_domctl_hypervisor_passthrough
+
+/* Include the real tools/libs/ctrl/xc_domain.c */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wsign-compare"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#include <../libs/ctrl/xc_domain.c>
+#pragma GCC diagnostic pop
+
+/* Assert claim set via xc_domain_claim_memory(XEN_DOMCTL_CLAIM_MEMORY_GET) */
+void assert_claims_via_domctl(xc_interface *xch, struct domain *d,
+                              uint32_t expected_entries,
+                              xen_memory_claim_t *expected_claims,
+                              const char *file, int line, const char *func)
+{
+    uint32_t entries = expected_entries;
+    xen_memory_claim_t claim_set[expected_entries];
+    int ret = xc_domain_claim_memory(xch, d->domain_id,
+                                     XEN_DOMCTL_CLAIM_MEMORY_GET,
+                                     &entries, claim_set);
+
+    testcase_assert(ret == 0, file, line, func, "XEN_DOMCTL_CLAIM_MEMORY_GET");
+    testcase_assert(entries == expected_entries, file, line, func,
+                    "Got %u entries", entries);
+
+    for ( uint32_t i = 0; i < expected_entries; i++ )
+        testcase_assert(claim_set[i].pages == expected_claims[i].pages &&
+                        claim_set[i].target == expected_claims[i].target,
+                        file, line, func,
+                        "Entry %u: node %u with %" PRIu64 " pages",
+                        i, claim_set[i].target, claim_set[i].pages);
+}
+
+/* Assert the current claim set for a domain matches the expected set. */
+#define CLAIMS(d, claim_set)                                               \
+        assert_claims_via_domctl(xch, d, ARRAY_SIZE(claim_set), claim_set, \
+                                 __FILE__, __LINE__, __func__)
+
+#endif
+#endif
diff --git a/tools/tests/native/harness/xen-macros.h b/tools/tests/native/harness/xen-macros.h
new file mode 100644
index 000000000000..e13b49aa5d78
--- /dev/null
+++ b/tools/tests/native/harness/xen-macros.h
@@ -0,0 +1,118 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Provide basic macros expected by Xen hypervisor code for native compilation.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+
+#ifndef TOOLS_TESTS_NATIVE_HARNESS_XEN_MACROS_H
+#define TOOLS_TESTS_NATIVE_HARNESS_XEN_MACROS_H
+
+/*
+ * Central list if glibc headers to include in the test context, to ensure
+ * that the Xen-specific versions of certain functions are used.
+ *
+ * Standard ffs/ffsl and gcc's built-ins are signed, Xen's are unsigned
+ */
+#define ffs glibc_ffs
+#define ffsl glibc_ffsl
+#include <assert.h>
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#undef ffs
+#undef ffsl
+/* xen/config.h defines these without value, glibc defines them with value */
+#undef __LITTLE_ENDIAN
+#undef __BIG_ENDIAN
+
+/*
+ * In Xen, STATIC_IF(x) and config_enabled(x) are defined in kconfig.h,
+ * which cannot be included here. Define the required subset locally.
+ */
+#define STATIC_IF(option)        static_if(option)
+#define static_if(value)         _static_if(__ARG_PLACEHOLDER_##value)
+#define _static_if(arg1_or_junk) ___config_enabled(arg1_or_junk static, )
+#define __ARG_PLACEHOLDER_1      0,
+#define IS_ENABLED(opt)          config_enabled(opt)
+#define config_enabled(cfg)      _config_enabled(cfg)
+#define _config_enabled(value)   __config_enabled(__ARG_PLACEHOLDER_##value)
+
+#define __config_enabled(arg1_or_junk) ___config_enabled(arg1_or_junk 1, 0)
+
+#define ___config_enabled(__ignored, val, ...) val
+
+/*
+ * Reuse the Xen-tools macros from common-macros.h. They are not
+ * necessarily identical to the hypervisor variants, but they are close
+ * enough for this test environment.
+ */
+#include <xen-tools/common-macros.h>
+
+/* Undefine conflicting macros from the Xen-tools headers. */
+#undef BUILD_BUG_ON
+#undef container_of
+#undef MASK_INSR
+#undef MASK_EXTR
+#undef ROUNDUP
+#undef ARRAY_SIZE
+#undef min
+#undef max
+#undef min_t
+#undef max_t
+#undef __nonnull
+#undef offsetof
+#undef __AC
+#undef _AC
+
+/* Include Xen headers for compiler, macros, and page size definitions. */
+#include <xen/compiler.h>
+#include <xen/macros.h>
+#include <xen/page-size.h>
+
+/* Define Xen-specific macros and functions for the test environment. */
+#define domain_crash(d)           ((void)(d))
+#define PRI_mfn                   "05lx"
+#define PRI_stime                 "lld"
+#define dprintk(level, fmt, ...)  printk(fmt, ##__VA_ARGS__)
+#define gdprintk(level, fmt, ...) printk(fmt, ##__VA_ARGS__)
+#define gprintk(level, fmt, ...)  printk(fmt, ##__VA_ARGS__)
+#define panic(fmt, ...)          (printk(fmt, ##__VA_ARGS__), abort())
+#define printk(...)              (fflush(stdout), fprintf(stderr, __VA_ARGS__))
+#define ACCESS_ONCE(x)           (x)
+
+__attribute__((format(printf, 5, 6)))
+static void testcase_assert(bool condition, const char *file, int line,
+                            const char *func, const char *fmt, ...);
+
+static int testcase_assert_expect_to_hit_bug;
+
+/* The BUG() macro for the test environment */
+#define BUG() test_bug(__FILE__, __LINE__, __func__)
+
+/* If the test expects to hit a bug, log it. Otherwise assert and fail. */
+static void test_bug(const char *file, int line, const char *func)
+{
+    fflush(stdout);
+    if ( testcase_assert_expect_to_hit_bug )
+    {
+        printk("\n%s:%d: WE INVOKED a XEN BUG in %s()\n\n", file, line, func);
+        testcase_assert_expect_to_hit_bug = false;
+        return;
+    }
+    testcase_assert(false, file, line, func, "Unexpected XEN BUG WAS INVOKED");
+}
+
+/* The test environment needs to define these as __used */
+#define __initdata
+#define __init        __used
+#define __initconst   __used
+#define __initsetup   __used
+#define __initcall(f) static int __used (*f##_ptr)(void) = (f)
+#endif
diff --git a/tools/tests/native/harness/xenctrl-shim.h b/tools/tests/native/harness/xenctrl-shim.h
new file mode 100644
index 000000000000..4c90cd6222f1
--- /dev/null
+++ b/tools/tests/native/harness/xenctrl-shim.h
@@ -0,0 +1,170 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Minimal shim to include tools/libs/ctrl/xc_domain.c in native tests.
+ *
+ * This shim provides the small subset of libxc internals that xc_domain.c
+ * needs so the allocator harness can exercise libxenctrl paths without
+ * a live Xen instance.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+#ifndef TOOLS_TESTS_NATIVE_HARNESS_XENCTRL_SHIM_H
+#define TOOLS_TESTS_NATIVE_HARNESS_XENCTRL_SHIM_H
+#ifdef TEST_WRAP_TOOLS_INCLUDE_XENCTRL_H
+#include "common.h"
+
+/*
+ * This file replaces the private APIs of xc_private.h. By doing this, we can
+ * include xc_domain.c in the test context and test its functionality without
+ * needing a live Xen instance. The functions defined here are minimal
+ * implementations that allow the test cases to run without errors, while
+ * still exercising the relevant code paths in xc_domain.c.
+ *
+ * This enables calling the Xen hypervisor code built into the test program
+ * from the libxenctrl APIs inside the native test environment.
+ */
+#define XC_PRIVATE_H
+
+/* Include xenctrl.h into the test context for libxc integration testing */
+#define __XEN_KEXEC_H__
+#include <public/version.h>
+#include <public/kexec.h>
+
+/* xenctrl.h conflicts with the Xen hypervisor define, it should be renamed */
+#define XEN_INVALID_MFN _mfn(INVALID_MFN_RAW)
+#undef INVALID_MFN
+#define XEN_BARRIER_H /* riscv is missing in tools/include/xen-barrier.h */
+#include <xenctrl.h>
+#undef INVALID_MFN
+#define INVALID_MFN XEN_INVALID_MFN
+
+struct xc_interface_core {
+    void *xcall;
+};
+
+/* Provision a xc_interface handle for the test context */
+static xc_interface test_xc_handle, *xch = &test_xc_handle;
+
+enum {
+    XC_HYPERCALL_BUFFER_BOUNCE_NONE = 0,
+    XC_HYPERCALL_BUFFER_BOUNCE_IN   = 1,
+    XC_HYPERCALL_BUFFER_BOUNCE_OUT  = 2,
+    XC_HYPERCALL_BUFFER_BOUNCE_BOTH = 3,
+};
+
+xc_hypercall_buffer_t XC__HYPERCALL_BUFFER_NAME(HYPERCALL_BUFFER_NULL) =
+{
+    .hbuf = NULL,
+    .param_shadow = NULL,
+    HYPERCALL_BUFFER_INIT_NO_BOUNCE
+};
+
+#define PERROR(_m, _a ...) ((void)0)
+#define DPRINTF(_m, _a ...) ((void)0)
+
+#define DECLARE_NAMED_HYPERCALL_BOUNCE(_name, _ubuf, _sz, _dir)    \
+        xc_hypercall_buffer_t XC__HYPERCALL_BUFFER_NAME(_name) = { \
+            .hbuf = NULL,                                          \
+            .param_shadow = NULL,                                  \
+            .sz = (_sz),                                           \
+            .dir = (_dir),                                         \
+            .ubuf = (_ubuf),                                       \
+        }
+
+#define DECLARE_HYPERCALL_BOUNCE(_ubuf, _sz, _dir) \
+        DECLARE_NAMED_HYPERCALL_BOUNCE(_ubuf, _ubuf, _sz, _dir)
+
+#define HYPERCALL_BOUNCE_SET_SIZE(b, s) ((HYPERCALL_BUFFER(b))->sz = (s))
+
+void *xc__hypercall_buffer_alloc(xc_interface *xch,
+                                 xc_hypercall_buffer_t *b,
+                                 size_t size)
+{
+    (void)xch;
+    b->hbuf = calloc(size ? size : 1, 1);
+    return b->hbuf;
+}
+
+void xc__hypercall_buffer_free(xc_interface *xch,
+                               xc_hypercall_buffer_t *b)
+{
+    (void)xch;
+    free(b->hbuf);
+    b->hbuf = NULL;
+}
+
+void *xc__hypercall_buffer_alloc_pages(xc_interface *xch,
+                                       xc_hypercall_buffer_t *b,
+                                       int nr_pages)
+{
+    return xc__hypercall_buffer_alloc(xch, b,
+                                      (size_t)(nr_pages ? nr_pages : 1) *
+                                      XC_PAGE_SIZE);
+}
+
+void xc__hypercall_buffer_free_pages(xc_interface *xch,
+                                     xc_hypercall_buffer_t *b,
+                                     int nr_pages)
+{
+    (void)nr_pages;
+    xc__hypercall_buffer_free(xch, b);
+}
+
+static inline int xc__hypercall_bounce_pre(xc_interface *xch,
+                                           xc_hypercall_buffer_t *b)
+{
+    (void)xch;
+    if ( b->ubuf == (void *)-1 || b->dir == XC_HYPERCALL_BUFFER_BOUNCE_NONE )
+        abort();
+    b->hbuf = b->ubuf;
+    return 0;
+}
+
+static inline void xc__hypercall_bounce_post(xc_interface *xch,
+                                             xc_hypercall_buffer_t *b)
+{
+    (void)xch;
+    if ( b->ubuf == (void *)-1 || b->dir == XC_HYPERCALL_BUFFER_BOUNCE_NONE )
+        abort();
+    b->hbuf = NULL;
+}
+
+#define xc_hypercall_bounce_pre(_xch, _name) \
+        xc__hypercall_bounce_pre(_xch, HYPERCALL_BUFFER(_name))
+
+#define xc_hypercall_bounce_post(_xch, _name) \
+        xc__hypercall_bounce_post(_xch, HYPERCALL_BUFFER(_name))
+
+static inline int xencall2(void *xcall, unsigned int op,
+                           unsigned long arg1, unsigned long arg2)
+{
+    (void)xcall;
+    (void)op;
+    (void)arg1;
+    (void)arg2;
+    errno = EOPNOTSUPP;
+    return -1;
+}
+
+int xc_get_cpumap_size(xc_interface *xch)
+{
+    (void)xch;
+    return 1;
+}
+
+int xc_get_nodemap_size(xc_interface *xch)
+{
+    (void)xch;
+    return sizeof(unsigned long);
+}
+
+static inline bool xc_core_arch_auto_translated_physmap(
+    const xc_domaininfo_t *info)
+{
+    (void)info;
+    return false;
+}
+
+#endif
+
+#endif
\ No newline at end of file
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 21 16:10:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 16:10:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315496.1585310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5ym-0005R5-8Y; Thu, 21 May 2026 16:10:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315496.1585310; Thu, 21 May 2026 16:10:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ5ym-0005Qy-4j; Thu, 21 May 2026 16:10:36 +0000
Received: by outflank-mailman (input) for mailman id 1315496;
 Thu, 21 May 2026 16:10:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wQ5yk-0005QK-C7
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 16:10:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ5yj-003Zqu-OX
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 18:10:33 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a0f2e68-e002-0a2a0a5209dd-0a2a4504a856-20
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 18:10:33 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a0f2e78-1dec-0a2a45040019-a06583099528-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 18:10:33 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 962C48242087;
 Thu, 21 May 2026 12:09:21 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v3 2/2] tests/native: Add native tests for NUMA claim sets
Date: Thu, 21 May 2026 17:08:08 +0100
Message-Id: <ebafa1b46ff792d728a316ac920dbfa7965d0cb8.1779379609.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1779379609.git.bernhard.kaindl@citrix.com>
References: <cover.1779379609.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1779379833-28D743FF-75B8AFE9/0/0
X-purgate-type: clean
X-purgate-size: 21358

Test the page allocator's claim behaviour using:

- the legacy xc_domain_claim_pages() call, and
- the new xc_domain_claim_memory() call of the claim-set API,

exercising both host-wide and NUMA node-specific multi-node claims.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 tools/tests/native/host-claims.c | 248 +++++++++++++++++++++++++++++++
 tools/tests/native/node-claims.c | 230 ++++++++++++++++++++++++++++
 2 files changed, 478 insertions(+)
 create mode 100644 tools/tests/native/host-claims.c
 create mode 100644 tools/tests/native/node-claims.c

diff --git a/tools/tests/native/host-claims.c b/tools/tests/native/host-claims.c
new file mode 100644
index 000000000000..8286fc586282
--- /dev/null
+++ b/tools/tests/native/host-claims.c
@@ -0,0 +1,248 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Test basic host-wide functionality of memory claims, including
+ * installing and redeeming claims, and that claims are respected
+ * by allocations and protected against other allocations.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+
+#define TEST_ENABLE_XC_DOMAIN_C /* Enable xc_domain.c APIs */
+#include "harness/native.h"
+
+typedef int (*set_global_claims)(struct domain *d, unsigned long pages);
+set_global_claims install_host_claims;
+
+/* Install a host-wide claim using the legacy xc_domain_claim_pages() call */
+int install_host_claims_legacy(struct domain *d, unsigned long pages)
+{
+    if (pages == 0)
+        return xc_domain_claim_pages(xch, d->domain_id, 0);
+
+    /* The legacy call need resetting claims before claims can be set again */
+    xc_domain_claim_pages(xch, d->domain_id, 0);
+
+    /* The argument of the legacy call includes the domain's existing pages */
+    pages += domain_tot_pages(d);
+
+    return xc_domain_claim_pages(xch, d->domain_id, pages);
+}
+
+/* Install a host-wide claim set using the xc_domain.c hypercall API */
+int xc_domain_claim_memory_host(struct domain *d, unsigned long pages)
+{
+    xen_memory_claim_t claim_set[] = {
+        { .target = XEN_DOMCTL_CLAIM_MEMORY_HOST, .pages = pages },
+    };
+    uint32_t nr_entries = ARRAY_SIZE(claim_set);
+
+    return xc_domain_claim_memory(xch, d->domain_id,
+        XEN_DOMCTL_CLAIM_MEMORY_SET, &nr_entries, claim_set);
+}
+
+static void test_alloc_domheap_redeems_claims(int start_mfn)
+{
+    int ret;
+    struct page_info *pages = frame_table + start_mfn, *pg;
+
+    test_page_list_add_buddy(pages, order2);
+    ASSERT(!install_host_claims(dom1, 3));
+    ASSERT(alloc_domheap_pages(dom1, order1, 0) == pages + 2);
+    ASSERT(alloc_domheap_pages(dom1, order0, 0) == pages + 1);
+    CHECK(TOTAL_CLAIMS == 0, "Expect all claims consumed after allocations");
+    CHECK(FREE_PAGES == 1, "Expect one free page after allocations");
+
+    ASSERT(!install_host_claims(dom2, FREE_PAGES));
+
+    /* Claim more than dom1 already has fails with ENOMEM (claimed by dom2) */
+    ret = install_host_claims(dom1, domain_tot_pages(dom1) + 1);
+    CHECK(ret == -ENOMEM, "dom 1 claim +1 fails due to insufficient pages");
+
+    /* Claim more than dom1's d->max_pages fails with EINVAL */
+    ret = install_host_claims(dom1, dom1->max_pages + 1);
+    CHECK(ret == -EINVAL, "dom 1 claim fails due to exceeding max_pages");
+
+    /* Attempt to allocate an order-0 page with a foreign claim present */
+    pg = alloc_domheap_pages(dom1, order0, 0);
+    CHECK(pg == NULL, "dom 1 allocation fails because of domain 2's claim");
+    CHECK(TOTAL_CLAIMS == 1, "Expect domain 2's claim to be still present");
+    CHECK(FREE_PAGES == 1, "Expect one free page after failed alloc");
+}
+
+/*
+ * Test that memory claims can be cancelled by setting the claim count to 0,
+ * and that cancelled claims are freed up for other domains to claim.
+ *
+ * This is important for domain_kill() to be able to cancel claims of a dying
+ * domain and free up the pages for other domains to claim and free, otherwise
+ * the host might run out of free pages due to claims that are not released.
+ *
+ * - Test that after claiming pages for a domain, allocations redeem a portion
+ *   of those claims.
+ *
+ * - Test that other domains cannot claim more pages than the unclaimed free
+ *   pages, and that cancelled claims are no longer present after cancellation.
+ *
+ * - Test that after cancelling claims for a domain, other domains can claim
+ *   and allocate all remaining free pages.
+ */
+static void test_claim_alloc_cancel(int start_mfn)
+{
+    struct page_info *expected, *page = frame_table + start_mfn;
+    unsigned long heap_pages, claims;
+    unsigned int alloc_order;
+
+    /* Create a buddy of order 2 (4 pages) and add it to the heap. */
+    test_page_list_add_buddy(page, order3);
+    heap_pages = FREE_PAGES;
+    claims = heap_pages / 2;
+
+    /* Claim half of the free pages for domain 1 */
+    ASSERT(install_host_claims(dom1, claims) == 0);
+    ASSERT(TOTAL_CLAIMS == claims);
+
+    /* Allocate an order 1 page for domain 1 */
+    alloc_order = order1;
+    /* Expect the highest available page to be allocated */
+    expected = page + FREE_PAGES - (1UL << alloc_order);
+    ASSERT(alloc_domheap_pages(dom1, alloc_order, 0) == expected);
+    ASSERT(TOTAL_CLAIMS == (claims -= 1UL << alloc_order, claims));
+
+    /* Allocate an order 0 page for domain 1 */
+    alloc_order = order0;
+    /* Expect the highest available page to be allocated */
+    expected = page + FREE_PAGES - (1UL << alloc_order);
+    ASSERT(alloc_domheap_pages(dom1, alloc_order, 0) == expected);
+    ASSERT(TOTAL_CLAIMS == (claims -= 1UL << alloc_order, claims));
+
+    /* Claiming more than unclaimed for domain 2 should fail */
+    ASSERT(install_host_claims(dom2, heap_pages - claims + 1) == -ENOMEM);
+    /* Claiming all free pages for domain 2 should fail (dom1 has a claim) */
+    ASSERT(install_host_claims(dom2, FREE_PAGES) == -ENOMEM);
+    ASSERT(TOTAL_CLAIMS == claims);
+
+    /*
+     * Cancelling claims needs to always work, the checks in place for
+     * installing claims should not prevent cancelling claims, which is
+     * important for domain_kill() to be able to cancel claims of a dying
+     * domain regardless of the state of the domain's configuration.
+     *
+     * An important check that cancelling claims needs to bypass is the
+     * max_pages check, as a domain's max_pages can be set to a low value
+     * due to a toolstack process (Xapi's "squeezed" squeezing the domain
+     * can set its max_pages to a lower value than domain_tot_pages() by
+     * invoking do_domctl(XEN_DOMCTL_max_mem).
+     *
+     * This should not prevent the claims from being cancelled as required.
+     */
+    dom1->max_pages = domain_tot_pages(dom1) - 1;
+
+    /* Cancel all remaining claims for domain 1 */
+    ASSERT(install_host_claims(dom1, 0) == 0);
+    ASSERT(TOTAL_CLAIMS == 0);
+
+    /* Claim all free pages for domain 2, should work */
+    claims = FREE_PAGES;
+    ASSERT(install_host_claims(dom2, claims) == 0);
+    ASSERT(TOTAL_CLAIMS == claims);
+
+    /* Claiming for domain 1 should fail with EINVAL due to max_pages = 0 */
+    ASSERT(install_host_claims(dom1, 1) == -EINVAL);
+
+    /* With d->max_pages > domain_tot_pages(), dom1 claims fails with -ENOMEM */
+    dom1->max_pages = heap_pages;
+    ASSERT(install_host_claims(dom1, 1) == -ENOMEM);
+
+    /* Attempting to allocate a page for domain 1 should likewise fail now */
+    ASSERT(alloc_domheap_pages(dom1, order0, 0) == NULL);
+
+    /* Allocating a page for domain 2 still work as it has the claims */
+    alloc_order = order0;
+    /* Expect the highest available page to be allocated */
+    expected = page + FREE_PAGES - (1UL << alloc_order);
+    ASSERT(alloc_domheap_pages(dom2, alloc_order, 0) == expected);
+    ASSERT(TOTAL_CLAIMS == (claims -= 1UL << alloc_order, claims));
+
+    /* Even allocating the remaining order 2 buddy for domain 2 works */
+    alloc_order = order2;
+    /* Expect the highest available page to be allocated */
+    expected = page + FREE_PAGES - (1UL << alloc_order);
+    ASSERT(alloc_domheap_pages(dom2, alloc_order, 0) == expected);
+    ASSERT(TOTAL_CLAIMS == (claims -= 1UL << alloc_order, claims));
+}
+
+/* Test offlining free pages outside and inside the claimed pages pool */
+static void test_offlining_host_claims(int start_mfn)
+{
+    struct page_info *pages = frame_table + start_mfn;
+    unsigned long heap_size, claims;
+
+    test_page_list_add_buddy(pages, order2);
+
+    heap_size = FREE_PAGES;
+    claims = heap_size - 1; /* Claim all but one page */
+    ASSERT(!install_host_claims(dom1, claims));
+
+    /* Mark a first page as offline */
+
+    mark_page_offline(pages + 3, 0);
+    ASSERT(page_state_is(pages + 3, offlined));
+
+    /* Due to the single unclaimed page, the claims should remain unchanged */
+    ASSERT(FREE_PAGES == heap_size);
+    ASSERT(TOTAL_CLAIMS == heap_size - 1);
+    ASSERT(reserve_offlined_page(pages) == 1);
+    ASSERT(FREE_PAGES == heap_size - 1); /* One free page is offlined */
+    ASSERT(TOTAL_CLAIMS == heap_size - 1);
+
+    /* Offline a second page. Offlines a portion of the claimed pages pool. */
+
+    mark_page_offline(pages + 1, 0);
+    ASSERT(page_state_is(pages + 1, offlined));
+
+    /* Assert the effect of offlining a portion of the claimed pages pool */
+    ASSERT(FREE_PAGES == heap_size - 1);
+    ASSERT(TOTAL_CLAIMS == heap_size - 1);
+    ASSERT(reserve_offlined_page(pages) == 1);
+    ASSERT(FREE_PAGES == heap_size - 2); /* Two pages are offlined */
+    ASSERT(TOTAL_CLAIMS == heap_size - 2); /* One claim is be released */
+}
+
+int main(int argc, char *argv[])
+{
+    const char *topic = "Test host-wide claims with old and new interfaces";
+
+    if ( !parse_args(argc, argv, topic) )
+        return EXIT_FAILURE;
+
+    init_page_alloc_tests();
+
+    /*
+     * Run the tests on all levels of the claims interface:
+     *
+     * 1. Direct page_alloc function call used by other code in the hypervisor,
+     *    which needs to support claim cancellation, needed by domain_kill().
+     *
+     * 2. The domctl helper for the hypercall, which is used by the hypercall
+     *    handler itself to parse the hypercall arguments before calling the
+     *    page_allocator functions.
+     *
+     * 3. The real DOMCTL handler, do_domctl(), which is the actual handler
+     *    function called when invoking the real hypercall.
+     */
+
+    /* Test using the direct claim function call used inside the hypervisor */
+    install_host_claims = install_host_claims_legacy;
+    RUN_TESTCASE("TCCD", test_claim_alloc_cancel, 8);
+    RUN_TESTCASE("DCGD", test_alloc_domheap_redeems_claims, 4);
+
+    /* Test claims setup using the actual DOMCTL handler itself, do_domctl() */
+    install_host_claims = xc_domain_claim_memory_host;
+    RUN_TESTCASE("TCCH", test_claim_alloc_cancel, 8);
+    RUN_TESTCASE("DCGH", test_alloc_domheap_redeems_claims, 4);
+
+    /* Test offlining free pages outside and inside the claimed pages pool */
+    RUN_TESTCASE("OHCH", test_offlining_host_claims, 4);
+
+    return test_complete();
+}
diff --git a/tools/tests/native/node-claims.c b/tools/tests/native/node-claims.c
new file mode 100644
index 000000000000..aa736f325f6b
--- /dev/null
+++ b/tools/tests/native/node-claims.c
@@ -0,0 +1,230 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Integration tests for NUMA-aware memory claims.
+ *
+ * The install test verifies that when a domain has a claim set installed
+ * with host-wide and per-NUMA-node claims, allocations that specify NUMA
+ * node affinity will redeem the appropriate claims (same-node first,
+ * host-wide fallback claim next, then other nodes, to not exceed page
+ * limits). It also verifies that the aggregate claim counters are updated
+ * correctly after each allocation.
+ *
+ * The get test verifies that callers can query the required number of
+ * claim records by passing a count of 0 and a NULL claim set buffer.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+
+#ifdef __x86_64__
+#define CONFIG_NUMA 1 /* Enable NUMA support in the test environment. */
+#define TEST_ENABLE_XC_DOMAIN_C /* Enable xc_domain.c wrapper */
+#include "harness/native.h"
+
+typedef int (*set_numa_claims)
+    (struct domain *d, uint32_t entries, const xen_memory_claim_t *claim_set);
+set_numa_claims install_numa_claims;
+
+/*
+ * Test redeeming NUMA memory claims in exchange for allocations,
+ * where the redeemed claims are correctly reflected in the domain's
+ * claim state and the aggregate claim counters.
+ */
+static void test_claims_numa_install(int start_mfn)
+{
+    test_page_list_add_node_buddy(node0, start_mfn, order2);
+    test_page_list_add_node_buddy(node1, start_mfn, order2);
+
+    /* Install a claim set with host-wide + per-NUMA-node claims. */
+    xen_memory_claim_t claim_set[3] = {
+        { .target = XEN_DOMCTL_CLAIM_MEMORY_HOST, .pages = 2 },
+        { .target = node0, .pages = 2 },
+        { .target = node1, .pages = 2 },
+    };
+    int install = install_numa_claims(dom1, ARRAY_SIZE(claim_set), claim_set);
+
+    ASSERT(install == 0);
+    CHECK(TOTAL_CLAIMS == 6, "Expect 6 total claims after installation");
+    CLAIMS(dom1, claim_set);
+
+    ASSERT(alloc_domheap_pages(dom1, order0, MEMF_node(node0)));
+    CHECK(TOTAL_CLAIMS == 5, "Expect 5 total claims left after allocation");
+    CHECK(FREE_PAGES == 7, "Expect 7 free pages left after allocation");
+    ASSERT(claim_set[1].target == node0);
+    claim_set[1].pages--; /* Expect the allocation redeemed from node 0 */
+    CLAIMS(dom1, claim_set);
+
+    /* An allocation on node 1 redeems a claim from node 1 */
+    ASSERT(alloc_domheap_pages(dom1, order0, MEMF_node(node1)));
+    CHECK(TOTAL_CLAIMS == 4, "Expect 4 total claims left after allocation");
+    CHECK(FREE_PAGES == 6, "Expect 6 free pages left after allocation");
+    ASSERT(claim_set[2].target == node1);
+    claim_set[2].pages--; /* Expect the allocation redeemed from node 1 */
+    CLAIMS(dom1, claim_set);
+
+    /* An allocation on node 1 redeems the last claim from node 1 */
+    ASSERT(alloc_domheap_pages(dom1, order1, MEMF_node(node1)));
+    CHECK(TOTAL_CLAIMS == 2, "Expect 2 total claims left after allocation");
+    CHECK(FREE_PAGES == 4, "Expect 4 free pages left after allocation");
+    xen_memory_claim_t claim_set2[2] = {
+        claim_set[0], /* The Host-wide claim should still be present. */
+        claim_set[1], /* Claim from node 0 should still be present. */
+        /* The claim from node 1 is consumed, not part of the claim set. */
+    };
+    claim_set2[0].pages--; /* The 2nd page is redeemed from host-wide claim */
+    CLAIMS(dom1, claim_set2);
+
+    /* An allocation on node 1 falls back to the host-wide claim */
+    ASSERT(alloc_domheap_pages(dom1, order0, MEMF_node(node1)));
+    CHECK(TOTAL_CLAIMS == 1, "Expect 1 total claims left after allocation");
+    CHECK(FREE_PAGES == 3, "Expect 3 free pages left after allocation");
+    claim_set2[0].pages--; /* The 2nd page is redeemed from host-wide claim */
+    CLAIMS(dom1, claim_set2);
+
+    /* An allocation on node 1 falls back to node 0 */
+    ASSERT(alloc_domheap_pages(dom1, order0, MEMF_node(node1)));
+    CHECK(TOTAL_CLAIMS == 0, "Expect 0 total claims left after allocation");
+    CHECK(FREE_PAGES == 2, "Expect 2 free pages left after allocation");
+    CLAIMS(dom1, /* All claims should be consumed */
+           ((xen_memory_claim_t[]){
+                { .target = XEN_DOMCTL_CLAIM_MEMORY_HOST, .pages = 0 },
+            }));
+}
+
+/* Test getting the current claim set for a domain. */
+static void test_claims_numa_get(int start_mfn)
+{
+    test_page_list_add_node_buddy(node0, start_mfn, order2);
+    test_page_list_add_node_buddy(node1, start_mfn, order2);
+
+    /* Install a claim set with host-wide + per-NUMA-node claims. */
+    const xen_memory_claim_t claim_set[3] = {
+        { .target = XEN_DOMCTL_CLAIM_MEMORY_HOST, .pages = 2 },
+        { .target = node0, .pages = 2 },
+        { .target = node1, .pages = 2 },
+    };
+    int install = install_numa_claims(dom1, ARRAY_SIZE(claim_set), claim_set);
+
+    ASSERT(install == 0);
+
+    /*
+     * Assert that the direct call can get the number of claim records by
+     * passing a count of 0 and NULL for the claim set buffer.
+     */
+    uint32_t records = 0, expected_records = ARRAY_SIZE(claim_set);
+
+    ASSERT(domain_get_claim_entries(dom1, &records, NULL) == -ERANGE);
+    ASSERT(records == expected_records);
+
+    /*
+     * Assert that the libxc wrapper can get the number of claim records for
+     * a domain by passing a count of 0 and NULL for the claim set buffer.
+     */
+    records = 0;
+    ASSERT(xc_domain_claim_memory(&test_xc_handle, dom1->domain_id,
+                                  XEN_DOMCTL_CLAIM_MEMORY_GET,
+                                  &records, NULL) == -ERANGE);
+    ASSERT(records == expected_records);
+
+    /* Assert the libxc wrapper returning the expected claim set contents */
+    CLAIMS(dom1,
+           ((xen_memory_claim_t[]){
+                { .target = XEN_DOMCTL_CLAIM_MEMORY_HOST, .pages = 2 },
+                { .target = node0, .pages = 2 },
+                { .target = node1, .pages = 2 }
+            }));
+}
+
+/* Test offlining free pages outside and inside the claimed pages pool */
+static void test_offlining_node_claims(int start_mfn)
+{
+    struct page_info *pages = test_get_node_page(node0, start_mfn);
+    unsigned long heap_size, claims, host;
+
+    test_page_list_add_node_buddy(node0, start_mfn, order2);
+    test_page_list_add_node_buddy(node1, start_mfn, order2);
+    heap_size = FREE_PAGES;
+    claims = heap_size / 2 - 1; /* Claim all but 1 page on each node*/
+    host = heap_size - 2 * claims; /* Claim the rest host-wide */
+
+    /* Install a claim set with host-wide + per-NUMA-node claims. */
+    xen_memory_claim_t claim_set[] = {
+        { .target = XEN_DOMCTL_CLAIM_MEMORY_HOST, .pages = host },
+        { .target = node0, .pages = claims },
+        { .target = node1, .pages = claims },
+    };
+    ASSERT(install_numa_claims(dom1, ARRAY_SIZE(claim_set), claim_set) == 0);
+
+    /* Mark a first page as offline */
+
+    mark_page_offline(pages + 3, 0);
+    ASSERT(page_state_is(pages + 3, offlined));
+
+    /* The 1st page was not in a node's claims pool, but in the host pool */
+    ASSERT(FREE_PAGES == heap_size);
+    ASSERT(TOTAL_CLAIMS == heap_size);
+    ASSERT(reserve_offlined_page(pages) == 1);
+    ASSERT(FREE_PAGES == heap_size - 1); /* One free page is offlined */
+    ASSERT(TOTAL_CLAIMS == heap_size - 1);
+
+    /* Expect the pool of host-wide claims to be reduced by 1 page */
+    xen_memory_claim_t claim_set1[] = {
+        { .target = XEN_DOMCTL_CLAIM_MEMORY_HOST, .pages = host - 1 },
+        { .target = node0, .pages = claims },
+        { .target = node1, .pages = claims }
+    };
+    CLAIMS(dom1, claim_set1);
+
+    /* Offline a second page. Offlines a portion of the claimed pages pool. */
+
+    mark_page_offline(pages + 1, 0);
+    ASSERT(page_state_is(pages + 1, offlined));
+
+    /* Assert the effect of offlining a portion of the claimed pages pool */
+    ASSERT(FREE_PAGES == heap_size - 1);
+    ASSERT(TOTAL_CLAIMS == heap_size - 1);
+    ASSERT(reserve_offlined_page(pages) == 1);
+    ASSERT(FREE_PAGES == heap_size - 2); /* Two pages are offlined */
+    ASSERT(TOTAL_CLAIMS == heap_size - 2); /* One claim is be released */
+
+    /* The 2nd page was in the claims pool on node0, it should be released */
+    xen_memory_claim_t claim_set2[] = {
+                { .target = XEN_DOMCTL_CLAIM_MEMORY_HOST, .pages = host - 1 },
+                { .target = node0, .pages = claims - 1 },
+                { .target = node1, .pages = claims }
+            };
+    CLAIMS(dom1, claim_set2);
+}
+
+int main(int argc, char *argv[])
+{
+    const char *topic = "Test NUMA-aware claims with allocation from the heap";
+
+    if ( !parse_args(argc, argv, topic) )
+        return EXIT_FAILURE;
+
+    init_page_alloc_tests();
+
+    /* Run test cases with different NUMA claim installation methods */
+
+    /* Run the test with a direct call to domain_set_claim_entries() */
+    install_numa_claims = domain_set_claim_entries;
+    RUN_TESTCASE("CNIS", test_claims_numa_install, 4);
+
+    /* Run the test for getting the current claim set for a domain */
+    install_numa_claims = domain_set_claim_entries;
+    RUN_TESTCASE("CNGS", test_claims_numa_get, 4);
+
+    RUN_TESTCASE("ONCS", test_offlining_node_claims, 4);
+
+    return test_complete();
+}
+#else
+#include <stdio.h>
+int main(int argc, char *argv[])
+{
+    (void)argc;
+    (void)argv;
+    printf("This test requires NUMA, which is only available on x86_64.\n");
+    return 0;
+}
+#endif
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 21 16:13:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 16:13:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315555.1585320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ61m-0006O7-Lw; Thu, 21 May 2026 16:13:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315555.1585320; Thu, 21 May 2026 16:13:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ61m-0006O0-IC; Thu, 21 May 2026 16:13:42 +0000
Received: by outflank-mailman (input) for mailman id 1315555;
 Thu, 21 May 2026 16:13:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQ61l-0006Nu-7w
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 16:13:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ61k-00Bu3F-I6
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 18:13:40 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0f2f31-e002-0a2a0a5209dd-0a2a4502e96c-4
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 18:13:40 +0200
Received: from [52.101.53.57]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0f2f33-af86-0a2a45020019-346535392b1b-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 18:13:40 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA1PR03MB6434.namprd03.prod.outlook.com (2603:10b6:806:1c1::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May
 2026 16:13:37 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.016; Thu, 21 May 2026
 16:13:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ouu+Vdtcw62fwziOhE5sYyERanTrg0rh/8nuu2E/GvKa/8NbLoFDRq3PwkhWd8NadIPAbN5wHGWE1QBGOqHCvj4Om/mYeg42emXL/rLyAI/aU/BuqDFWodsbP9bLkYUQwNFDLsuXW89ZAnZNQk2mjVeHLZ8H7dkasw1QP/KvMUwtSvET/r5oBblX8I90TjR2ojksZ2FIq9fOTMB1Xt4g9l4ARykyw6u2QKxE3ZngtvIfaAXqdz4hf9QVySar6yUIKTwM0abuOYrdWlfdqhK8Jnq/kumfOvzlITCuF2omavvZc7XuqYA/++FZjZwhbKL8yPkJ3Ig6KD5c2HkPFqWweQ==
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=+5xNII3hj8gty8GfUvNS+hTs+MRbWU0WgkzomPKrsc4=;
 b=BeHwQD7w+MZfVjssHAKut2ISeVD8OJlNWtpmdSHws0yhkYbUb4A4scbgPTJAmrXSJILlfIT5j3FcnCpsUWQt6VEUI40Gi1Gi8A7l/eBbugac45sbsupRziBykmnsCqF9IQxE7SYBF4eUUclCgkrROrttKanvu3R34qztcK2R12B512YoK71bKEx5LU+38FWoqV0E+AWsY42Hko7Sr2k8el8bNyzA2/yxoMjTbCzA9j3QiaGvz0cb6DsVFtRvWf205qcqkSRKJBDWK5Bn1+NK9nacYZBPsIf7Cu23bSdZnqSleUgHxlyAI8U3Quyp701nHpfotQMLwQs86AsPof9WOg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+5xNII3hj8gty8GfUvNS+hTs+MRbWU0WgkzomPKrsc4=;
 b=U5VHwFAPQ18FJUjV31k9jy5excTDmxscgw9SGOyUcTBnO07qCsGGxooc/PSOvumY3FVxhk5s/H3RYF7s2bW6Py9SslYNY1N8fek6PzdCMqmFlBUE+vfKdVkNKIzqGWCEexpVkqpHyirc7gl1mVekik9kjl/oTvgKs52tQUdaOJA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <35746cb2-9b36-4c4a-b9bd-71a5df64ed92@citrix.com>
Date: Thu, 21 May 2026 17:13:32 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, Jason Andryuk <jason.andryuk@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.22 v6] x86/svm: Support vNMI on capable hardware
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20260514175623.1869042-1-andrew.cooper3@citrix.com>
 <ca7c7f2b-ab85-44ec-a62f-1bab60d045d6@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <ca7c7f2b-ab85-44ec-a62f-1bab60d045d6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0019.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ae::21) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA1PR03MB6434:EE_
X-MS-Office365-Filtering-Correlation-Id: e204eb92-6132-495c-89c7-08deb753e96d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|11063799006|4143699003|3023799007|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	ANGPgrhrvu7MNukQcVfrdLun21FenkYFB8XpGpORs6lFBrsQaOrMRdaO1iqecPiFqFVHwSmh+w95dkqFzyiAep2jT8Q/g36uBE2nXvQDZXYX18FPOPu3k7tmJmcnl0/fdW6jgTPPu3MaiEvOOB066g96aBbSWhWtuw0N6K1yQOBjR1j2aLzmouhszap7huWB6JII6pbNXgKnsuGr4+xmuk6csnib4MsDbgaaT1f7hk+lK9aKzJFmqhDewq2ryqhJZzBI60nK3rj6qe+i2yHDD4IQeJMpR2+jiXH6EFcLZkicqxc2e3DLArDP5Mhmu4qszg2R+/iRdUEnUJTQYiuNbAtxT7boKlupXCnLYq0qV36j8DVIHSo6qUZZ3ap0Ak+DtpJT3aVBgr/buLM5jFaibZhU4lSrSoLWllbTCZgympjiNLk4KBSPtfwxK2DDp1T1KKXa+P7EfqEhvjsU/7Xd91wDAUZVzMgqKYqbuOdECXDdgOUL0HUJKZIDHz1I910YsKkJ6m35hjUMSJP2Z+0vKQsRtrQmPsniKzm+HoCbJjjjXthp5RV1d2RoXujZZJT2ZUx/UJ7O6n9sqadABx3wja5Wi70FDU/BJCFXknSjM074aUcYgUQ5RMwumq6AWwtTywr+wgPp2zzReFRqGj1hS/OvnykWnub/R7wsfoVg1utIvds+RU7EbNt/id9T/Ktq
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(11063799006)(4143699003)(3023799007)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ak9lUG5waVhwL0lacEl6Z21LVEhLQllYVjMzTlVYN09PMnJqZFNKSXBOVyt5?=
 =?utf-8?B?MWQza2plT3RKYUFldENIMjNqc0NLMksvNkdPT3RSOGppR0VVVDR2QVlrZjhH?=
 =?utf-8?B?em9KR3JLeFJCSnFHeXVBbFpURjdERnhIZEtKRXNrRWpQN1BXZ1RaWFFhWWJ1?=
 =?utf-8?B?VlNEdVRmTFlWTktOYnFEY1E2aTNmM3d2bHlXTmc4ZlFQaGx0SXdhanFaa1lj?=
 =?utf-8?B?MlZGUlBaVTNxd3RmcVowL1ZhUmFJYnpVZTJESnVMRHFuanhIQ3A4bC9kRFRw?=
 =?utf-8?B?bFF2WmZFelFYSzRVTU9QdjVlaXRvenArYTFCUzZ5OUpSSDlkWkdvMVBuR1M3?=
 =?utf-8?B?MkVNRkg3L24wZVM4OFEwUkFnWFJiSVEvaFVLODJjOTZRVjBUcjFqQnk3dDdo?=
 =?utf-8?B?NlBsbVplRXdXSjBpa0JrSkxwZFE2Zks2aVpYMTB2eFJVMmZFc2xRY00xVzdX?=
 =?utf-8?B?M0xidmxBd3poZTNQdW5SNE9vS2VuUnhtMGd1dEdUL2R6SEhDSTdoYlR0ejZh?=
 =?utf-8?B?Wno1ZG5tdnRhM2lNUXVEUmxmdFhTVzhkOEVDNmIyQzIzZjloOXhBZUZXRWd2?=
 =?utf-8?B?N05yQThzMzBVbmJZM0puWHVhYytBa2M3ckoweG5uZVpMZGttQ1FET3dPNXcz?=
 =?utf-8?B?YXJQdGJlR2F3cHFTRjRpWU0yQktxUFdUQW4wbEFCeWxzdDVVS3Q1MmY1dGdY?=
 =?utf-8?B?YWFEN3RndS9jNnQ4ZEFGL29MVGgrdTU4RDZ5QUJmN2k3UTZQODE0TndWQkxx?=
 =?utf-8?B?R0NKbHVZdWIyS2o3Nm1GMFRhUU9QcTNqM0ExQWdleFdCQUdSU2c0dDM0RHBI?=
 =?utf-8?B?Q0tmUFlxN2ptSkNMYVoySXRmc0tSZTJzcnVnSmpUY2tCeUpBRG9vbVR4aHda?=
 =?utf-8?B?T00xbHh6bUxodDEzUEQ2WUNHZmZHLzZ4NStPT3dPMzJGamk2MFNkMExvdk9v?=
 =?utf-8?B?YjlyWnkvd2l6b1RtNi83U2JZeElZUTkxdTU3MmRCbzh1cGZmdFNIUUU1Y2ZY?=
 =?utf-8?B?Y0lpUlczTVoxRnlmL2tjeStWd3Y3TTVIWFF6U1ZxeVdNK3Y4ZWpqdVlXeExa?=
 =?utf-8?B?WGo5SG1rSGNZLzRkQjg5bWxBUXBDVE5QeDRla0t5NXdBRzQrZVVhZVZwQnI1?=
 =?utf-8?B?M0REc3NENjJpa0RtWE1jamdub1oyalNKbWJyVEVKb3ErWWFSMVJ5QnM5dTBn?=
 =?utf-8?B?WHVzMVkzODlwMHJWTi8weG1DNXFBd1FFWWNEOGRNNk83MjVPTEZTSUpCZFNJ?=
 =?utf-8?B?RUtNQUpqcXMrTXVBMVBqUkpIWE9EcC9MWEVVeHc5ODFjN3MyYytYaFhEb0kv?=
 =?utf-8?B?MGZSSXMvWVBQeCtWQ2xpMy84cWhpUkVzeFJaM1lORHZPMHlxTkxRV0hiSXNy?=
 =?utf-8?B?bUVIWHNrSEt1KzAwZFphN2wzcFp6NHk1NGhxb0s0ajg3dVRTM05OdkU3allE?=
 =?utf-8?B?eHN4dm9EdDNaYmZSNGwvZk9mKzc0UXNiZmMzN3dncC9ZTTQzcWNvNnR6YThj?=
 =?utf-8?B?Q3hGbW9sVmNsOEd6akFkMmlLdlFtSDZhN2cwWEx2M294YWFXVEVlWmowZlNF?=
 =?utf-8?B?Y20wNkc1bnpBSGhGMk52SHAzL3czTnpMSDVVek15QnI1ZFlZOTd6bDJmcGpu?=
 =?utf-8?B?YmYzMHliTU5ReCtVR1hLeFVFeWVwSDcySEhuWm0xUDhUYmhqZldEdXhKZGx3?=
 =?utf-8?B?SUk1SlhSSzJPQUR6TlFXYWhZL2R4cnEzamFRL3BBS3d5Y25vTFBoOW9STTk1?=
 =?utf-8?B?VkZNbVNQWXhTVEJCMWljS3lHMWEyVnBTRWF3MFFncFVNZ2djU1dQWVFNTGV6?=
 =?utf-8?B?d2FRTllxVTdkcklya3l2cXRtRzZIQlBFZ0FpYVg1UFRlb3JIaC8vWEMzNVBu?=
 =?utf-8?B?R0laVjkxVVltQUZSK2Q4Qy83Y2lJV2wrcU5OQjc1aUtlblM1MmhTNlgyNmxD?=
 =?utf-8?B?RXNsZ0hmQWpIYm1mT0JaZ3hMWVhUNm1kZERTdHgvMWhjTmk4U2hnTWxBWkRa?=
 =?utf-8?B?ck1aRndKMC81Tkl3ZlNuVENLUllaOU9hdXN0T25DUzhjeWF2TXl3Q09lMXVL?=
 =?utf-8?B?NWFlbE85TG9LRCtGazV2Z00wdFdwNVdYMEt2eUN2KzkvNCszNkNjVHg0ZmFl?=
 =?utf-8?B?cC91YU5NNUhpWVdTZE9PRDV4emlrSkJsOVlkK0hKQ3dvL1V4dGExY0pEdHE3?=
 =?utf-8?B?aFUxeHd5UEVkNVVVY0p1ekQxamJQbkRDYVcrRHYxbzF5dXdVSmJvUjVRaDJG?=
 =?utf-8?B?N2pJQURBQmZUUHVCN0gwNFdPWFlNMGZJem5nWEJ2cmJhV05XZ2VHMWI5cHY5?=
 =?utf-8?B?bWtDVzlGdkZaZXR5ZDRkTnUzTjJOMnRELzRtUUg3OHdNVzd0S2pTdDRYOVl5?=
 =?utf-8?Q?Mxv669EvPmj7Bbmw=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e204eb92-6132-495c-89c7-08deb753e96d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 16:13:36.0444
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sBKP6rKdhpb/QH15kyNlqDsdc9B8fpFqz+vS/ANzI8DTL1PutLIU3PrIccpmLk0MXZaEuYkZd+t8P+O6zrAAk81KwChlHddeFtfSk9bzgtY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6434
X-purgate-ID: tlsNG-720697/1779380020-83961161-6D1755AC/10/73395122804
X-purgate-type: spam
X-purgate-size: 2289

On 21/05/2026 4:51 pm, Jan Beulich wrote:
> On 14.05.2026 19:56, Andrew Cooper wrote:
>> From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
>>
>> Starting with Zen4, AMD CPUs can virtualise NMIs for a guest.  On older
>> hardware, determining when an NMI is safe to deliver is a challenge and Xen
>> does not handle all corner cases correctly.
>>
>> With vNMI, there is an enablement bit and two new bits of state in the VMCB; a
>> pending bit, and a blocked bit.  These directly map to the CPU state for
>> handling NMIs, and are maintained by hardware during the running of the vCPU.
>>
>> When vNMI is enabled, have svm_{get,set}set_interrupt_shadow() work in terms
>> of the vnmi_blocking bit rather than the IRET intercept.  This allows an
>> emulated IRET instruction to re-enable NMIs.
>>
>> When injecting a new NMI, simply set the vnmi_pending bit; hardware will
>> deliver the NMI to the guest at the next suitable juncture.
>>
>> One complication is that, when delivering a second NMI before the first has
>> completed, the mix between common HVM logic and SVM specific logic will try to
>> open an NMI window, malfunctioning as it does so.  When vNMI is enabled, short
>> circuit this to not consider NMIs blocked.
>>
>> Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <jbeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Teddy Astie <teddy.astie@vates.tech>
>> CC: Jason Andryuk <jason.andryuk@amd.com>
>> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>
>> For 4.22.  This is somewhat overdue and makes a concrete improvement to NMI
>> handling on recent AMD hardware.
> In particular with this remark in mind - should I perhaps pull this over onto
> 4.21 as well? Or are there dependencies I'm overlooking?

There's this patch, and a prior patch from a while ago adding the vNMI
CPUID enumeration and fields.  There are no other dependencies that I'm
aware of.

I was intending to backport this to 4.21 in XenServer in due course.

vNMI will be a hard dependency for supporting FRED in guests on AMD, but
I doubt we'll be wanting to backport this as a feature.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu May 21 16:41:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 16:41:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315594.1585329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ6SD-0004M9-P3; Thu, 21 May 2026 16:41:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315594.1585329; Thu, 21 May 2026 16:41:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ6SD-0004M2-M5; Thu, 21 May 2026 16:41:01 +0000
Received: by outflank-mailman (input) for mailman id 1315594;
 Thu, 21 May 2026 16:41:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wQ6SC-0004Lv-Fc
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 16:41:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ6SB-00HFFM-OF
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 18:40:59 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0f3596-bab6-0a2a0a5309dd-0a2a4509cd7c-12
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 18:40:59 +0200
Received: from [52.101.48.43]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a0f3599-2497-0a2a45090019-3465302b07db-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 18:40:58 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA1PR03MB989271.namprd03.prod.outlook.com (2603:10b6:806:4f6::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May
 2026 16:40:55 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.016; Thu, 21 May 2026
 16:40:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nrDFSkhZcUSWVS7U5uYlw8VuirDQwI9ipjmCpO5LM8CPh/9AGVpPqeHtXaAABfVNs0POVRj7MfbAj1DDIr1h3ikfqzqawf3/udECuwlEBW8wQE7uib3fiQKLI8YgV09Jwr0ftenzfyqyzlHWxFaSggiwdBXUrgUBvdp0gb+a1E2h7xbVJDKOs7F8ucot1jvW0Yu75PhsD/gtm6uguklpnStDoIgewikILo/qqm6Gy98Xo9qf0CNgVgnLNxmMeWOr9yRmY7BnTZ27BsTlZE1p68ZNQzct1V51jcpW514Vzlu9PcbrKKYIBsop18Y82ahWAuGLY1y4Gefo2TB9NgWrNA==
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=PKi4X2Epiwg4cD4i7btV/ChlzcS6r1I1bjKtN8VuvGo=;
 b=dvaZh0XEeWMDg4GGgF6t7beEVab+KzQO12u6jt6w4+qX7airFPxL17VeVl8N8+TTKXJr6ofPGB5nXLy2bzipdWzhwmbbXUi+sxO2vWW72Zof7MNBs5av+PqjNO5O+dCY787uBTUpxsux1cjPb6/9r4R+J7+7TE7/dbjXRG5RjClVD4UICQ9LrTmzkPu/9ongw5wxtjs9GAwfiX1fAJKbIVJJAN1XsFgVAPxiJ1wjUtzWhezEnUf/HRcNz+93LRhWezidus4skEVj/vUfTL8pkRO/zv5nwoyewuwnot8dWX7lcazMMThMwF7Pj47Gr+3O5ZRICrnZdPbQ8l0XW4MX5g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PKi4X2Epiwg4cD4i7btV/ChlzcS6r1I1bjKtN8VuvGo=;
 b=o/N7VaAHuYhx8chJzk3120exxLUZvqX4DmQiS/XGlHCO8w69VA3tCjQmZpMIYxa61ItHl/7bYcZD82Xx5SG1OK3OtVlQm/Po4vTPHqFNUou3TkXsMuSbUnI6NA6yJoohdzicDAJYTuVtSSjZlhW7Y80NexiC/pc0uHdQpz5YfKs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c37aff9c-6214-40ad-8ec9-ad8f497dd1d1@citrix.com>
Date: Thu, 21 May 2026 17:40:50 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] tools/tests: Fix paging-mempool xen_pfn_t format strings
To: Jan Beulich <jbeulich@suse.com>, Luca Fancellu <luca.fancellu@arm.com>
References: <20260521152344.2050899-1-luca.fancellu@arm.com>
 <1c5238c4-dc03-4204-b5c9-f94ac4c0a65d@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1c5238c4-dc03-4204-b5c9-f94ac4c0a65d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0330.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18c::11) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA1PR03MB989271:EE_
X-MS-Office365-Filtering-Correlation-Id: 968422ed-aa05-427f-e865-08deb757ba72
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003|11063799006|6133799003|4143699003;
X-Microsoft-Antispam-Message-Info:
	ARusVqd/jzAf1D8ikYdPuV92yVXCwIfEMv4zIte2+wAwChEWa2Yy+y4Hp01oZn7Oebz7rE9jdJxpXbr8mAVPSSSYklChMPX6sNPuVF4x+MyLPQUkOw/cNFQMrqWyuy86OmLdpdobz7G2hl9lbrnddtFlmoOdZvWFKmwkNm+oXES0SXZayDyPknwZB5C9Vo72kScSsFhwO3BVIPT12s8ABUKqrQvsePE2WrMuxIkAt3AGOSFzzhXr5WuecwQJybj/QRUxeGr0JaJAmnE1dP/VLoEzxire6Dd8FY0pmn5a+uO02nGYAvFEOYSo8xLNbwbRRmlAtZ6NfoLDSmV1omgAgJoXIe1G24T/OsbsLs8lLmeSk/P5MnQOQ7BpOBvrMZTh4aCRvrfN2RjqElHrkt5os72Y/ZVlpvg7/34COp0eQSBBR0eDSliwDYEj8WFOWTyl6yXRmVodZ//loVRn4n/mkBhnioPLuuHxqYndPu4LRzbZ6HagwxqGylWg9sZ4gXarmYADAuF0NrvZW4tD5mVrB8yeq3zXiYARKNSm4s//oLxjj3ZWEh2CHTW86/g2dr+KLo7cUyWmXvtG2QquJhwl5jdrFEnx5KpYdeMv+WYCtD6CdK1BBnHhH2+8YkWWpuK/rEL346gEoqaG937/VwLfKlVpLsRlhAj69xBq7ZBvAl6+aNrdzNLIwSk1BNZ6KJUf
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003)(11063799006)(6133799003)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ell4RUo2RERqcHlvL3Rkc0ttdWhDTlRaOG82OGhYU2RiYXlRcGQ4Nmk0NUxK?=
 =?utf-8?B?UG9GdXdOZXhDK2gxZDIvRU1PUkRGYXVlRHlZdDNTMU9xR3NVUDBwcnpKSE5C?=
 =?utf-8?B?MnFvcVNIakVDNGNlNGdPdk5FTlhTSGhIQ21UUC9nQ0pvQzhzeXk2NURiSkpC?=
 =?utf-8?B?Mkk2VS9QdlYwTmkweE0wVm9iM2NJNWhvQ3FkQ0VqQnVRNFJBbk5oc2crLzNn?=
 =?utf-8?B?VkFUditLWlhNR3ZQK3pqamt1dm5QUkowclgxeGZoWlkrSDJsc0dsNTg1T2Jx?=
 =?utf-8?B?R2RXS09uUFZENmd0dDEzQmRmYnYvU29Yd095TElRWjBrZExGNkJMUTlwUkVs?=
 =?utf-8?B?bytzUStwdkUvSEVpUTVVSUVSMVp6QlRBdjQyL3Uvd3hyVUF3dkpjQ2craGlq?=
 =?utf-8?B?OHg4RlBDRWVObFk1UlpYYnlxRWNyYWNVaW10NmFkcWhGNjg3V2hCbVdjSzZD?=
 =?utf-8?B?ODNoVnJlRTU2MGhLVE44YnFFRE5QTllpOUxaVGxmM0dtWXZIc01CK3A4ckFj?=
 =?utf-8?B?OXczUU5PeFRJVFQ1NEFkaEVCNWFBMjB4QStTQ1Q1UE11N1o3cmYzTjh1aTBu?=
 =?utf-8?B?WTRtRHZCNm1WNUJuVzdFMkVVclNUS1ZMbmhjTGN2cm1qbFRXZjZKalhVa1k1?=
 =?utf-8?B?Q084blZwYm1HdnFEbitpTjRnOFYxRTFZRDIwR050c2JmdjlvbW1iOEdsTHVi?=
 =?utf-8?B?L1Q0SjREeHFKZ29uQ252Vjg0QjBPZEJ0amhZUjBZdGtkOS8zL2NoVEl1bmZI?=
 =?utf-8?B?VjQyendCcGVwcU9RckZsNC91YVM4U3lTS1JMdnNOMmR4Wi9aZW4yWWNWNmla?=
 =?utf-8?B?b3lqRldmSG4wKzFWQWRoMUJaelhVQ2JHWE5BTG5WaTdvSmxMVGRnYkhYNytn?=
 =?utf-8?B?MWR6TFhVa05ySW92aWdURmNWK3RZdW9PNlpyTFNqT1dXdVdtVzRVL3lWc0hr?=
 =?utf-8?B?aGVXUk5WZlpXMndKVFdFVUk2NEwxbFhqcUxudVN4Vi9RZWg5S296YnZOd1NN?=
 =?utf-8?B?NmxsVDBuSkF3cDJTMVNBUWt4T2hZMW9VZ1RXblY4dzBVajE3bjlJc2kvYXdh?=
 =?utf-8?B?UU4rYmlPOXJzYXVicUVrWEpNVEhobklvNHlOc3hObWltbXR1cEZMd0RMV2t2?=
 =?utf-8?B?NWlQdFF4eWV5SlBsK1RuRmluVHB3Tksrd1pRTEN2L1hWOUxSRHJsYzI2MnBw?=
 =?utf-8?B?K3pQMzFJeERRWi8zOVlCV042WkxQdjVhTnRhT2hWNE5rVUg5UllraW9JQTQ1?=
 =?utf-8?B?M0YwYjI0aS94bmtoSHUxWjg0OXRmWXFzRTViYmVnazZZTWRxWEVWeURkSlUz?=
 =?utf-8?B?TWdLWTJwa0d3Ky9wdzRpUUN4alB6Zkd4cU5qSGxnWjZZSGxlQzZ1ZG5MeG95?=
 =?utf-8?B?bWRzMCtUUjhiRDZxTUMwNXMrckF0MnA0L1czelBXKyt0Z0tsMDAzbERwdExS?=
 =?utf-8?B?ZEcwV2Q4V3RwdXZQbk8xNG9SdFlTZkZ5T0Q3b3hWRkhkSVBJeXNKcnZtN0xo?=
 =?utf-8?B?QXgyWHRkczVORm5LT3BJUFQ2ZjhnUHdhTjYwMFVodE1nZG1JV25xV2RJRjdt?=
 =?utf-8?B?R0kzQTRRUlNuWXhJVmFOa3ppVTA3QVhHWDM5Q2tqL1VTbGxqSXZlM1FPVlky?=
 =?utf-8?B?bHJqS1c3cldIUkttbEk0VXU1NyszSmQxZG9saGpsRm5ZWDBtaVFOUlBXdUdK?=
 =?utf-8?B?NkI3WUkrMFEzQnlEVVVEQ3dYY3FvY0RIYmhUS2hzU3BkeUxvL0YzL3dNcmpS?=
 =?utf-8?B?eEVkZ0U2VXNGdVF0bkRtZC9WK2QyU0dGR3VlM1pxbzVFcW9PaXU4emJWZ1Bl?=
 =?utf-8?B?dXIycHZ1cENKVTFYZXVvbUE1UWZGUWtmOTErL25Wc2w2TDNscHcvUThDUGow?=
 =?utf-8?B?OTVwdVBXNG1uVGJ2UEFMT3pYNEFZckhXVW9iVDdpUC9WWnYyZVVwRU1hSlg4?=
 =?utf-8?B?b2pDdmdlYk4vMy9HZ3E4SUREM0ZNQ1RVenVpTEdCZERaUzg2SEw5V2VROUcx?=
 =?utf-8?B?TGRMbFlzTGxtTFFTcUl1KzZUdUxhTWl5TWV5M3BRQlNiRTl1V1ZYMUUwa0Y0?=
 =?utf-8?B?Z3ZzZVd2L2pMdkFyNlUrVDFwNjJORi8wSXdsdjNhbzAyVnZPYkxHazVxaHBR?=
 =?utf-8?B?TkluK1I3MEJUbnJNYVJlMTFpdk4rdWNYRytQQVNjdjdDay9ZV211Z3N1MmFy?=
 =?utf-8?B?Y1hjZHBLVzVMSDhuTEFoYUFhMGhtdTVlRmFENnk4Z1lldW1KMkZpVy91RnVk?=
 =?utf-8?B?RTFhQy9DeHdYUWpMYkI2VzhpSTBkQWxEelIvRzlxYUltclpvU3A0clIwNXps?=
 =?utf-8?B?UVc2TnZuWlhzcURNS2hOb2tPVXlwdFdaeTNzcTV3QWJrK3E1TWZtc2Rnb3E5?=
 =?utf-8?Q?oLVXzzxeJZ5B95no=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 968422ed-aa05-427f-e865-08deb757ba72
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 16:40:55.2108
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: m6KRH4mn3Sx/kesuzRs72SzuUr6B4eyhUzMqVRCxkSRMRNiCv2yfel9OyycAAvZharMVzQjO5tjpNfqjfhy+hnTpuWmv8LiXgAUGqZVHBtw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB989271
X-purgate-ID: tlsNG-bad1c0/1779381658-43175A53-C75FF4DC/0/0
X-purgate-type: clean
X-purgate-size: 2060

On 21/05/2026 4:30 pm, Jan Beulich wrote:
> On 21.05.2026 17:23, Luca Fancellu wrote:
>> xen_pfn_t is not an unsigned long on all architectures. In particular,
>> Arm32 builds see it as a 64-bit type, so printing it with %lx triggers
>> a -Werror=format build failure.
>>
>> Use PRI_xen_pfn for the GFN diagnostics instead.
>>
>> Fixes: 66c982a5d3614 ("tests/paging-mempool: Extend to test P2M relocation")
>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> This looks okay, but while we're here ...
>
>> --- a/tools/tests/paging-mempool/test-paging-mempool.c
>> +++ b/tools/tests/paging-mempool/test-paging-mempool.c
>> @@ -208,7 +208,7 @@ static int check_guest_marks(xen_pfn_t gfn, uint32_t mark_start, size_t count)
>>          if ( errs[i] )
>>          {
>>              rc = -1;
>> -            fail("    Fail: check mark unable to map gfn %05lx: %d\n",
>> +            fail("    Fail: check mark unable to map gfn %05"PRI_xen_pfn": %d\n",
>>                   gfns[i], errs[i]);
>>              continue;
>>          }
>> @@ -216,7 +216,7 @@ static int check_guest_marks(xen_pfn_t gfn, uint32_t mark_start, size_t count)
>>          if ( *mark == exp )
>>              continue;
>>  
>> -        fail("    Fail: check mark: gfn %05lx expecting %08x (%u), got %08x (%u)\n",
>> +        fail("    Fail: check mark: gfn %05"PRI_xen_pfn" expecting %08x (%u), got %08x (%u)\n",
>>                 gfns[i], exp, ~exp, *mark, ~*mark);
> ... aren't the two ~ wrong here? The message looks to aim at printing the
> same value as hex and dec.

That's intentional.

The mark is the GFN number, but inverted so gfn 0 doesn't get 0.  But
this also makes it awkward to read when something goes wrong.

>From the failing example in the original commit:

      Fail: check mark unable to map 003c1: -22
      ...
      Fail: check mark unable to map 003df: -22
      Fail: check mark: gfn 003e0 expecting fffffe20 (479), got fffffe3f (448)

This presents the raw mark, and the useful-form decimal.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu May 21 16:43:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 16:43:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315603.1585337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ6US-0004zs-5E; Thu, 21 May 2026 16:43:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315603.1585337; Thu, 21 May 2026 16:43:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ6US-0004zl-26; Thu, 21 May 2026 16:43:20 +0000
Received: by outflank-mailman (input) for mailman id 1315603;
 Thu, 21 May 2026 16:43:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Bertrand.Marquis@arm.com>) id 1wQ6UQ-0004za-Rr
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 16:43:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ6UQ-008Eus-7d
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 18:43:18 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Bertrand.Marquis@arm.com>)
 id 6a0f3617-bab6-0a2a0a5309dd-0a2a4509d3ba-14
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 18:43:17 +0200
Received: from [52.101.83.16]
 (helo=GVXPR05CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Bertrand.Marquis@arm.com>)
 id 6a0f3625-2497-0a2a45090019-346553104174-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 18:43:17 +0200
Received: from CWLP265CA0355.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:5a::31)
 by PR3PR08MB5739.eurprd08.prod.outlook.com (2603:10a6:102:8e::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May
 2026 16:43:13 +0000
Received: from AMS1EPF00000049.eurprd04.prod.outlook.com
 (2603:10a6:401:5a:cafe::4) by CWLP265CA0355.outlook.office365.com
 (2603:10a6:401:5a::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.17 via Frontend Transport; Thu, 21
 May 2026 16:43:13 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF00000049.mail.protection.outlook.com (10.167.16.133) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Thu, 21 May 2026 16:43:10 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DB9PR08MB7424.eurprd08.prod.outlook.com (2603:10a6:10:36f::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May
 2026 16:42:06 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%5]) with mapi id 15.21.0025.020; Thu, 21 May 2026
 16:42:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=fail;
 b=Ywx4axVu1ee8yeBk/f5u4CKMJ2PbqH+JX7w8jD0+AqlQ6PcSUc/q1wQ7pcbL1IPrAOecDfM3LICCXj5u4sYTb2jerlG3QFBaPK3vPdRif31lutdUJeSMPcO8dQwXTQ+RnWqXoC2irWYYSq4ngJGppELKLgnIhsq8Vr+yLXCAXk1cXJhoU6dceugoWBmquV3HV9wtDNK+2yxHSPBtnAdp9HGCpcRPMzlotn3xtg/V+tqBcajtAhJJCTs9faHpGLcRecuxzfqod2GDcHnSQZB4mqdcoAn6vf/lGNjS8CAI2pfVdoWip18Ib5GDxv7IowNRHYe1PDnJUpwRaZ1Ntj58ZA==
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=+SdlPMyloHC0VrrtOvIDK8uAYHwMZWx5pkK7oS8qsZM=;
 b=kNtXzW+offceVo1Mf3lujNsRJXruNib79kQFrpdVxdWVCIaeGpI7mD+F5ui7WZNLL8Q/fVGIHLJNYLsi/51tVPdNyOp2NbS1W/6FBBXqWg1pP92WFDyrI/u4K+/IAMPlNnacxicpzxVmomZM3SEgGS9K4yqX90e32lqNTLnrmitrlZ8EDBQTf2yRfl15rS0s+ELdPUFRz/Lip0ulOuwXvUPsV0FIxsRY5sNBj9+aEwJbZoOgOl+VnRY2C1aGjPaGDqx4pv4sAnZe1UvOita/Agf1VokvetENoY6pAs6OZnO5K8rfR6ohnBng8/isuf/gr+11F2HwlI4pXf63hs+lbQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=suse.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=fail (48)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+SdlPMyloHC0VrrtOvIDK8uAYHwMZWx5pkK7oS8qsZM=;
 b=LDRTovtiQS0IXUBD4BWs2nkx+9k5l7FDnLyYJhPML1Bol1/GIRMzsXH3KmeRiWOhVVBa3FQQ1v1WpOqI7C+gjU75YGJn55vKZ7cyK6v5S43+1jusRU2S8K1kETAiLmBgBFgdtgWATBpDinJ5fjG8vFVPRFzj6bI51s1eDtMV9DI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=T7eMa4dGjP0mCEGT93/SknJc80pcAdggzAd+Al+jhnA2hRKEqtpEGlRhfe0Ha7ezUgmV+i8zGe0tWLvMNETuooFHTnbTeQe5rS9+cbEeAYUzxmrtNxVvh3i43nxpD8EEgqrHGZTdRMiYiYukNI0ZZ7LcS+6cpdBb1aQqVLnn1ESjUNzv0hyFP5sz8BIgyVLRe5ps05UudMYcr6eF7RXwtKcrxxoJBfQvSL8LbctSXbu1T565/Umo6NSxDEkut9sl7wc2xvzUdQKuHX6Mae4zNKD8vTC/0hUg5iTYv9AB6bI7pfs5bbryfQgCMxkrVtvjSBSW4OJEupwyCJHBaRE2qA==
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=+SdlPMyloHC0VrrtOvIDK8uAYHwMZWx5pkK7oS8qsZM=;
 b=C2bk5ZPLuuyE4nwsafFgQJI/3zNY0Lq4bZ3Ko83ouTaICy3v3nLAT0wqfnwM9ylwzNZ2UGrpXwGElFzfkz4ICwQ1TaIHtVsTTtMo9We6uGe9GDwUEqdGkr2J/O9RC/m+PaDryfRxXG5zQw786TG+MjSFiGxvEHWDJftIkEZYZqqXkIvMss0SaKtvZh6x2UHTULsUHxLxiUG6gwxjiCkFV5Z1+cl8SByfRbdyxf8SdNOg5ALdB7anOTGtNp7umyeY3hB0a3jD28/IZXxhBIq5v8yPffag4Ca8R0NvFXmR7pOxl0KGI5NQKU0GM6jW9EVxn2geKiuW5fDo/wBkbDKq8Q==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+SdlPMyloHC0VrrtOvIDK8uAYHwMZWx5pkK7oS8qsZM=;
 b=LDRTovtiQS0IXUBD4BWs2nkx+9k5l7FDnLyYJhPML1Bol1/GIRMzsXH3KmeRiWOhVVBa3FQQ1v1WpOqI7C+gjU75YGJn55vKZ7cyK6v5S43+1jusRU2S8K1kETAiLmBgBFgdtgWATBpDinJ5fjG8vFVPRFzj6bI51s1eDtMV9DI=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Volodymyr
 Babchuk <volodymyr_babchuk@epam.com>
Subject: Re: [PATCH v2] Arm: do a 4th linking pass if necessary
Thread-Topic: [PATCH v2] Arm: do a 4th linking pass if necessary
Thread-Index: AQHc6RnGu1utUAlrJk+sIf0YXyTZG7YYr0OA
Date: Thu, 21 May 2026 16:42:05 +0000
Message-ID: <74846C01-4D54-4DFE-A6B6-9D4DC0301D3E@arm.com>
References: <59fc2b14-073b-42a6-8f30-503ad789fbab@suse.com>
In-Reply-To: <59fc2b14-073b-42a6-8f30-503ad789fbab@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.500.181)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DB9PR08MB7424:EE_|AMS1EPF00000049:EE_|PR3PR08MB5739:EE_
X-MS-Office365-Filtering-Correlation-Id: 43c1be5e-cfe5-45d6-1174-08deb7580b5b
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003|38070700021|11063799006|6133799003;
X-Microsoft-Antispam-Message-Info-Original:
 58nn2JAY22Q4IDrWC7T1dOE4iNh6u5nMmMANMprl/Wtxd9R8Jku0SnbqtPqqXFDdEcCSjYdUyPkkXbQ8i2jU98IcvjtkSgQNBxWh7mG4iqYvV7JY3kbapgfMOmBsXZ3Mj5kp80BzcyeJdytw+5nYxXIxzfIjAZFePj0LHxQiHhZmYGIyp2dFREcoEcQPTNErTztOavfrv3aPIXFbndL3uNZ5M+XjTLMP3XxYPedCH6Bag2uNPJQOPlaSxogwAegHUZe64+k+3vTHldBZE9+VFaMd3ffwQdWT2M6YNREdGMz/cZkbQ8YPgF+3uFuIJw1PUzgWc20FZfEhcg75fLCECqDDMbAR/2p/EZov1z1oJWJeoz4Gnov9zkOE7hZw9MdTLaaIdSnZ1CsgO4/A22VU3h+GocDATPwT26Vr3EWBujTU5zN/+O5XU9a1OYPaMvQl2FQJGtlX1YPO99fmg2d4BUOg98oUBxNRyJhST8FH7EvQ1bXZSVGUdPW5M/saiBw1Ekiir4i4Ng1vE/37vpq9TD+nHWe/kuaT4uQvGl6KiKMuysQkQBj4J4jN3ywQeAZEHBVKwSLzSMw/CUs2oczvor3clC59dQfSJvie6/5Yr7O0NrXD33+BiNZ47jeMMb5PiMJXkGahr7K+hbxk+w7YNfCIcanKjA/T9Re9qFXcx05252CjViErFpOvpRvJ1kVKADxciZAnbhpq96gnHWY+8ltrds2msV3rWyQFabfMEX6j2+Bmv0r8cUt8hLqhjNiT
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003)(38070700021)(11063799006)(6133799003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <63F974E5C27062419ABB9A4B32916418@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 Zdhms4m6LLuRKP0I3a5hKwsPhJ5DnhqUDscCsdlPkIhB2cB/BT8MxBPNQb9S1jr6uzoDlW0bvDOT5kQSYOOxQWpeLROHgxL2D/EAuLOHIP1QhipmD/Kwb/xp0NhT3mnFmDUBAEmTnBNxt3Vn+VVre3fnw94AxRyHhEHVBMgXN3VnrdZtLqpVBGfsroi75WyEC3umg/fLM5eRoKlSy1bv/h1fH28xpJxx2BO9q65Q3xin/tyEEM586G4wLG95hWedUxYwnuYpeY4Ow5DSVGpNyPqYu5fxmfAiNY5khACCvFdrabdbJzGOQcE/OzYr9o7b0lhpYYJVZcTNBp8tiT0hVw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7424
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF00000049.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5a3e3b7d-169e-487f-c2ba-08deb757e497
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|35042699022|1800799024|14060799003|376014|82310400026|56012099003|22082099003|18002099003|11063799006|6133799003;
X-Microsoft-Antispam-Message-Info:
	J5aYUpoBvnvpkysDfzfx+4WHEclv9HXa3tntTkNJXUXtdUSk6ddQUJLNS1P8yMqQYRXr7RjLQnERnWhXYxXQKP7iH4qgbNrgtuOhguVk1Xu6IO1O/Oy1a3FEZK2y6j4aM/o+27LXT87bJkesDfEW0CALqs3YrlkHZpL0I3gggl7/PH6aGoipDY2cSG/a+GwCFksLS1OnrsjIe6A9pz1qNwH+Tm1jGkkOcLHXDbr4DVVxgXSrpEB5xIluIDVEQNAFhR5uke7O2RLke6ohAq0UMYdAdANt4aSMNJAohPNMsME9NI4mNbw9KCRtkYoQNoyWN8SAtQxkbqcT3Iv/AV10OPlKesrssU/s1fbtW2Z/reNTaM+GSoSefegSIdaCxxV1ftZLgOSm2beFZv+iZIjTpt6sqmBXrLPe83DTZj5xfrQiA2TwsgURBSxhXQ5ig59tPIw6W6OPwmwdVNdw6iwRgGVDVlXr8N4A3XZTvNqoifqVu0uCesGbv7+C9nymOmbig+POfq+f8shHo1mYfs1cSP6tLjtQFKcTA/TLccSHQfKHcFUS+tXvEW5WLt3C3Bk1SywWKSOXXLYfTgiQYh3ZfYiyiPWdcq3MQ4UuJxN7tJWSF1ZpoKCxw/8+pjwlDJneZ2xm/9yxYTDX0tZSnydXjd89XSLuwbjP5c9m67XiWVTpwdTccW0CmrUNJdroKAUKPlrgVUlUEPP4Xy2l/L+Fy1RJWd6zkdd3bH10+LNCxyQ=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(35042699022)(1800799024)(14060799003)(376014)(82310400026)(56012099003)(22082099003)(18002099003)(11063799006)(6133799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	44RiZ20zm070Ic0NZ91E1c++Uos5bCnUtqlDi4jy8cPC8e78FCCgcy1ttFdZeeBDUNs9HmyfrFqKUoou4NKAMwZnH2yxQlhhYyo3uPPL6pPjoQUy5CNGBPa4KBh3mI60V4eIG63kKiQKyM4DwSWvyhLCKrfOBUjPkXOzz3id6ktLcNYgoXKdD6+6bnHcUITfPnR0E1YdJ/McW2hJp27UrD9dOEna/v51Zk7Ff6ubmcS2Y979Q8gDjUrFa7SWgVhdLSduBzZxFm8HitsGNUpc/teSfWD0kffsrwrS1yxeJ4/eRPnuXVIZcOd8PZ+CHLw4tkaX9vsq7QtDsnpVK8FSSOVjWqAi2Ok/kVXk1+eHw70wI7Wrhl0ch0Nio6XvphGlEHgp1uZpr46o7JYLOEQxF2gHJdUBm7lW3grgRwzWShYeuZWQQdyzqw+EPCh8pceM
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 16:43:10.7752
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 43c1be5e-cfe5-45d6-1174-08deb7580b5b
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS1EPF00000049.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5739
X-purgate-ID: tlsNG-bad1c0/1779381797-37B78A53-EC319B78/0/0
X-purgate-type: clean
X-purgate-size: 4730

SGkgSmFuLA0KDQo+IE9uIDIxIE1heSAyMDI2LCBhdCAxNDowMiwgSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPiB3cm90ZToNCj4gDQo+IFRoZSAucm9kYXRhIGdyb3d0aCBiZXR3ZWVuIDFz
dCBhbmQgMm5kIGxpbmtpbmcgcGFzc2VzIG1heSBhZmZlY3QgdGhlDQo+IG51bWJlciBvZiBzdHVi
cyB0aGUgbGlua2VyIHdhbnRzIHRvIGluc2VydCwgd2hpY2ggaW4gdHVybiBhZmZlY3RzIHRoZQ0K
PiBudW1iZXIgb2Ygc3ltYm9scy4gSWYgc3ltYm9sIHRhYmxlIHNpemVzIGNoYW5nZSBhZnRlciB0
aGUgMm5kIGxpbmtpbmcNCj4gcGFzcywgaW5zZXJ0IGFub3RoZXIgb25lIGJlZm9yZSB0aGUgZmlu
YWwgb25lLiAoQXMgYSBjb21tZW50IGluIExpbnV4IHB1dHMNCj4gaXQsICJJbiB0aGVvcnkgaXQn
cyBwb3NzaWJsZSB0aGlzIHJlc3VsdHMgaW4gZXZlbiBtb3JlIHN0dWJzLCBidXQNCj4gdW5saWtl
bHkuIikNCj4gDQo+IFRvIHVzZSB0aGUgJChjb21wYXJlLXN5bWJvbC10YWJsZXMpIG1hY3JvIGlu
IGEgc2hlbGwgImlmIiwgaXQgbmVlZHMNCj4gc2xpZ2h0bHkgYWRqdXN0aW5nIChhbmQgdGhlbiB3
cmFwcGluZyB0byBiZSBydW4gaW4gYSBzdWItc2hlbGwpLg0KPiANCj4gU2lnbmVkLW9mZi1ieTog
SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KDQpBY2tlZC1ieTogQmVydHJhbmQgTWFy
cXVpcyA8YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPg0KDQpDaGVlcnMNCkJlcnRyYW5kDQoNCj4g
LS0tDQo+IFRoZXJlJ3MgaW1vIG5vIGdvb2QgRml4ZXM6IHRhZywgc2luY2UgKGFpdWkpIHN0dWJz
ICh2ZW5lZXJzKSBtYXkgYWxzbyBiZQ0KPiBpbnNlcnRlZCBmb3IgcmVhc29ucyBvdGhlciB0aGFu
IGVycmF0YSB3b3JrYXJvdW5kcy4NCj4gDQo+IEZvciBjb250ZXh0OiBUaGUgQ29ydGV4IEE1MyBl
cnJhdHVtIDg0MzQxOSB3b3JrYXJvdW5kIGluIEdOVSBsZCBjb21lcyBpbg0KPiB0d28gZmxhdm9y
czogSW4gdGhlIGdlbmVyYWwgY2FzZSBhIHN0dWIgaXMgaW5zZXJ0ZWQsIGJ1dCBpZiB0aGUgcHJv
YmxlbQ0KPiBBRFJQIGNhbiBiZSByZXBsYWNlZCBieSBBRFIgKGkuZS4gdGhlIHRhcmdldCBzeW1i
b2wgaXMgd2l0aGluIMKxMU1iKSwgdGhlbg0KPiB0aGF0J3MgcHJlZmVycmVkIGFuZCBubyBzdHVi
IGlzIG5lZWRlZC4gVGhlIGFkZGl0aW9uIG9mIHRoZSBzeW1ib2wgdGFibGUNCj4gZGF0YSBpcyB3
aGF0IHRoZW4gcmVzdWx0cyBpbiB0aGUgc3R1Yi1sZXNzIGZvcm0gdG8gbm8gbG9uZ2VyIGJlIHVz
YWJsZSBpbg0KPiBhZmZlY3RlZCBjb25maWd1cmF0aW9ucy4gQSBwb3NzaWJsZSBjb3VudGVybWVh
c3VyZSBjb3VsZCBiZSB0byBtb3ZlDQo+IC5yb2RhdGEgYWhlYWQgb2YgLnRleHQuIChBbHNvLCBm
cm9tIGxvb2tpbmcgYXQgZ2VuZXJhdGVkIGNvZGUsIGl0IG1heSB3ZWxsDQo+IGJlIHRoYXQgbmV3
ZXIgZ2NjIHNpbXBseSBhdm9pZHMgcHJvZHVjaW5nIHByb2JsZW1hdGljIGluc24gc2VxdWVuY2Vz
LikNCj4gDQo+IExpbnV4IHNpbXBseSBjb21wYXJlcyBvYmplY3QgZmlsZSBzaXplcywgYnV0IEkg
Y29uc2lkZXIgdGhhdCBmcmFnaWxlOiBBDQo+IGNoYW5nZSBpbiBzaXplIG9mIG9uZSBvZiB0aGUg
c3ltYm9sIHRhYmxlIGNvbnN0aXR1ZW50cyBtYXkgbm90IG5lY2Vzc2FyaWx5DQo+IGNoYW5nZSB0
aGUgb2JqZWN0IGZpbGUgc2l6ZSwgZHVlIHRvIHBhZGRpbmcgd2hpY2ggbWF5IGJlIGluIHVzZS4N
Cj4gDQo+IE9uY2Ugd2UgZ2VuZXJhbGl6ZSBsaW5raW5nLCB3ZSBtYXkgd2FudCB0byBpbnRyb2R1
Y2UgYW4gZXF1aXZhbGVudCBvZg0KPiBMaW51eCdlcyBLQUxMU1lNU19FWFRSQV9QQVNTIGFzIHdl
bGwuIEkgZG9uJ3QgdGhpbmsgZG9pbmcgdGhpcyByaWdodCBoZXJlDQo+IHdvdWxkIG1ha2Ugb3Zl
cmx5IG11Y2ggc2Vuc2UsIHRob3VnaC4NCj4gLS0tDQo+IHYyOiBBZGQgInNldCAtZSIuDQo+IA0K
PiAtLS0gYS94ZW4vYXJjaC9hcm0vTWFrZWZpbGUNCj4gKysrIGIveGVuL2FyY2gvYXJtL01ha2Vm
aWxlDQo+IEBAIC05OSw5ICs5OSwyMSBAQCAkKFRBUkdFVCktc3ltczogJChvYmp0cmVlKS9wcmVs
aW5rLm8gJChvDQo+IHwgJChvYmp0cmVlKS90b29scy9zeW1ib2xzICQoYWxsX3N5bWJvbHMpIC0t
c3lzdiAtLXNvcnQgXA0KPiA+ICQoZG90LXRhcmdldCkuMi5TDQo+ICQoTUFLRSkgJChidWlsZCk9
JChARCkgJChkb3QtdGFyZ2V0KS4yLm8NCj4gLSAkKGNhbGwgY29tcGFyZS1zeW1ib2wtdGFibGVz
LCAkKGRvdC10YXJnZXQpLjEubywgJChkb3QtdGFyZ2V0KS4yLm8pDQo+ICsgaWYgISB7ICQoY2Fs
bCBjb21wYXJlLXN5bWJvbC10YWJsZXMsICQoZG90LXRhcmdldCkuMS5vLCAkKGRvdC10YXJnZXQp
LjIubykgPi9kZXYvbnVsbDsgfTsgXA0KPiArIHRoZW4gXA0KPiArIHNldCAtZTsgXA0KPiArICQo
TEQpICQoWEVOX0xERkxBR1MpIC1UICQob2JqKS94ZW4ubGRzICQ8ICQoYnVpbGRfaWRfbGlua2Vy
KSBcDQo+ICsgICAgJChkb3QtdGFyZ2V0KS4yLm8gLW8gJChkb3QtdGFyZ2V0KS4yOyBcDQo+ICsg
JChOTSkgLXBhIC0tZm9ybWF0PXN5c3YgJChkb3QtdGFyZ2V0KS4yIFwNCj4gKyB8ICQob2JqdHJl
ZSkvdG9vbHMvc3ltYm9scyAkKGFsbF9zeW1ib2xzKSAtLXN5c3YgLS1zb3J0IFwNCj4gKyA+ICQo
ZG90LXRhcmdldCkuMy5TOyBcDQo+ICsgJChNQUtFKSAkKGJ1aWxkKT0kKEBEKSAkKGRvdC10YXJn
ZXQpLjMubzsgXA0KPiArICQoY2FsbCBjb21wYXJlLXN5bWJvbC10YWJsZXMsICQoZG90LXRhcmdl
dCkuMi5vLCAkKGRvdC10YXJnZXQpLjMubyk7IFwNCj4gKyBlbHNlIFwNCj4gKyBsbiAtc2YgJChk
b3QtdGFyZ2V0KS4yLm8gJChkb3QtdGFyZ2V0KS4zLm87IFwNCj4gKyBmaQ0KPiAkKExEKSAkKFhF
Tl9MREZMQUdTKSAtVCAkKG9iaikveGVuLmxkcyAkPCAkKGJ1aWxkX2lkX2xpbmtlcikgXA0KPiAt
ICAgICQoZG90LXRhcmdldCkuMi5vIC1vICRADQo+ICsgICAgJChkb3QtdGFyZ2V0KS4zLm8gLW8g
JEANCj4gJChOTSkgLXBhIC0tZm9ybWF0PXN5c3YgJEAgXA0KPiB8ICQob2JqdHJlZSkvdG9vbHMv
c3ltYm9scyAtLWFsbC1zeW1ib2xzIC0teGVuc3ltcyAtLXN5c3YgLS1zb3J0IFwNCj4gPiAkQC5t
YXANCj4gLS0tIGEveGVuL3NjcmlwdHMvS2J1aWxkLmluY2x1ZGUNCj4gKysrIGIveGVuL3Njcmlw
dHMvS2J1aWxkLmluY2x1ZGUNCj4gQEAgLTY1LDcgKzY1LDcgQEAgZGVmaW5lIGNvbXBhcmUtc3lt
Ym9sLXRhYmxlcw0KPiAgICAgJChPQkpEVU1QKSAtdCAkKEBEKS8uY3N0LiQkJCQgPiAkKDEpLnN5
bTsgXA0KPiAgICAgbG4gLWYgJCgyKSAkKEBEKS8uY3N0LiQkJCQ7IFwNCj4gICAgICQoT0JKRFVN
UCkgLXQgJChARCkvLmNzdC4kJCQkID4gJCgyKS5zeW07IFwNCj4gLSAgICBybSAtZiAkKEBEKS8u
Y3N0LiQkJCQNCj4gKyAgICBybSAtZiAkKEBEKS8uY3N0LiQkJCQ7IFwNCj4gICAgIGRpZmYgLXUg
JCgxKS5zeW0gJCgyKS5zeW0NCj4gZW5kZWYNCj4gDQoNCg==


From xen-devel-bounces@lists.xenproject.org Thu May 21 17:48:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 17:48:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315657.1585426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VS-0002w8-N5; Thu, 21 May 2026 17:48:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315657.1585426; Thu, 21 May 2026 17:48:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VS-0002us-G5; Thu, 21 May 2026 17:48:26 +0000
Received: by outflank-mailman (input) for mailman id 1315657;
 Thu, 21 May 2026 17:48:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ7VQ-0002II-8U
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:48:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ7VP-00Bm0f-KX
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:48:23 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f452f-bab6-0a2a0a5309dd-0a2a4508d226-34
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:23 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f4567-63b5-0a2a45080019-d1558031d8d5-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:23 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-4891c00e7aeso47876185e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:48:23 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d8e24bsm74565925e9.10.2026.05.21.10.48.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 10:48:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779385703; x=1779990503; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bYofrAN/dcAoG9hDe+IfNA2SsTYiSmdr/xpb0ZlcVh4=;
        b=G6C+bS0+JTYOObzRjMmA99ds9kbALIgc1lE5AwYRL9ir/NoPzc048QTIHgg7GveKuB
         Ngl1r8+ADqN0PhkMocAiLtpbXZrSVlsKvPCwUILXvP6MyqTUnp6msmaeh9ORWaDck83E
         Sb+oRpyNZVMgoz1XI5jd1K0C0slE6sITL4i/ioYjTUifScR4tNfQr62VSVSrfS4k6vd9
         dzYcOrAQiQ743pgm/lG19vLgx0ZzF69EJa2bGD3dQhwx1gpBTSERvR0DHkqh6Yis6V2N
         l14fxBOi5D1mBQ0LvbIY2TnaI1CKh2TZpTn9BBKaVwB5qLnpTP5tnNE6zPG2Cno+TrUm
         VTEQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779385703; x=1779990503;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=bYofrAN/dcAoG9hDe+IfNA2SsTYiSmdr/xpb0ZlcVh4=;
        b=tKK8BxgiT7fHfIgC6sExy9fIQE+X0SHwEQtxN//pQblfTEQOdiE756s25guZmYbf1H
         4T0IsFIS1vPvNmRMCVe0qp31ELRZvzWoPWbgKx5o08Ih9jHfSmib93qqeMCEdCdwWP05
         /yPKjKuk0W2AraMkbio93W9Vu/QUpIYUHM+F/NT/myvIzdQuwoRZTjWnIm9xhkEdLAXz
         rVjhkUEGBb9cGFuDGmnTpz3rNFsvO+OAx/3gM8kAR1p4QN9goeFUwbfjIxFKSlgeLf6/
         ng6eI0CHg01Rr79d/iqywiUDecgf0l+6riolHiBmRg96rMGFro/38BcGvAXykW9n0lWL
         /e0g==
X-Gm-Message-State: AOJu0YxBoeE90Mudt97Es/UySfI8uHEQ0Ew8J6eVVk3f3cZufUuFyMds
	9+Zh2K5ZNSd55uvf4FYbCiO8kt1njtbt9Sz+cDtkTM6w2VSBKF2h4ajC2sZ1az9E
X-Gm-Gg: Acq92OFy4libvI7jpGNX1mBQ9gIxIlkbFddngCZGb4MNtIPcuHQpeO7rlpuMupSpyYC
	uxVB6K4IRiRZkRcbtMoxjhmCZDa7Awl3M8IsUKZ/PAM8nEYFcTBwBViyZUR5Sl5yA/3rtX5tnkG
	7g+NaN5F+Oewm6siCSvX1cYObOcowM/dmW+jkZ/t5aCUxLzBaQiFOtnmWW0hjIr0eUYlpm+AV8m
	b0x8ECQDi+2i9n2MkSMrwAFziqFJrRwDWqWmcK0q4lMGbe7zehCnUR9skO2HEJUyAEqXDA1Dtu8
	cQYjNnoHZWeGTpUgSbeSHTArldcw6BUge0j1uWKWa050L5VpBi+BQp49BMukhioGdXPWGoVxna+
	WGXvKfojhWkozHKOQaHqxy8UdVPRPm3QHYeiZwhgRZ5ikI/3qIB9hBHJyGAwavyUVDl6PyOhELu
	NRb51EvSoJxfhosXiZoGAeZyLn+fq/1txtGvnpRBNXgckRbHs=
X-Received: by 2002:a05:600c:3153:b0:490:3893:c71 with SMTP id 5b1f17b1804b1-49038930e25mr44973285e9.5.1779385702886;
        Thu, 21 May 2026 10:48:22 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v10 08/13] iommu/ipmmu-vmsa: Implement suspend/resume callbacks
Date: Thu, 21 May 2026 20:45:26 +0300
Message-ID: <9cb404f9327e203594127495ff9aedcf96c18377.1779385072.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779385072.git.mykola_kvach@epam.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1779385703-B596DDB1-0A7CA317/0/0
X-purgate-type: clean
X-purgate-size: 14404

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Store and restore active context and micro-TLB registers.

On resume, restore Root IPMMU context state before restoring Cache IPMMU
micro-TLB state. Cache IPMMUs select Root contexts through their micro-TLB
configuration, so restoring Cache micro-TLBs before the Root context
registers are restored can expose stale or uninitialized context state.

Tested on R-Car H3 Starter Kit.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V10:
- Iterate over registered IPMMUs in reverse order during resume so Root IPMMU
  context state is restored before Cache IPMMU micro-TLB state.

Changes in V9:
- set dt_device_set_protected() only after ipmmu_alloc_ctx_suspend()
  succeeds, so DT devices do not remain protected on allocation failure.

Changes in V7:
- moved suspend context allocation before pci stuff
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 323 +++++++++++++++++++++--
 1 file changed, 308 insertions(+), 15 deletions(-)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index fa9ab9cb13..2e54fa63d6 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -71,6 +71,8 @@
 })
 #endif
 
+#define dev_dbg(dev, fmt, ...)    \
+    dev_print(dev, XENLOG_DEBUG, fmt, ## __VA_ARGS__)
 #define dev_info(dev, fmt, ...)    \
     dev_print(dev, XENLOG_INFO, fmt, ## __VA_ARGS__)
 #define dev_warn(dev, fmt, ...)    \
@@ -130,6 +132,24 @@ struct ipmmu_features {
     unsigned int imuctr_ttsel_mask;
 };
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+struct ipmmu_reg_ctx {
+    unsigned int imttlbr0;
+    unsigned int imttubr0;
+    unsigned int imttbcr;
+    unsigned int imctr;
+};
+
+struct ipmmu_vmsa_backup {
+    struct device *dev;
+    unsigned int *utlbs_val;
+    unsigned int *asids_val;
+    struct list_head list;
+};
+
+#endif
+
 /* Root/Cache IPMMU device's information */
 struct ipmmu_vmsa_device {
     struct device *dev;
@@ -142,6 +162,9 @@ struct ipmmu_vmsa_device {
     struct ipmmu_vmsa_domain *domains[IPMMU_CTX_MAX];
     unsigned int utlb_refcount[IPMMU_UTLB_MAX];
     const struct ipmmu_features *features;
+#ifdef CONFIG_SYSTEM_SUSPEND
+    struct ipmmu_reg_ctx *reg_backup[IPMMU_CTX_MAX];
+#endif
 };
 
 /*
@@ -547,6 +570,249 @@ static void ipmmu_domain_free_context(struct ipmmu_vmsa_device *mmu,
     spin_unlock_irqrestore(&mmu->lock, flags);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+static DEFINE_SPINLOCK(ipmmu_devices_backup_lock);
+static LIST_HEAD(ipmmu_devices_backup);
+
+static struct ipmmu_reg_ctx root_pgtable[IPMMU_CTX_MAX];
+
+static uint32_t ipmmu_imuasid_read(struct ipmmu_vmsa_device *mmu,
+                                   unsigned int utlb)
+{
+    return ipmmu_read(mmu, ipmmu_utlb_reg(mmu, IMUASID(utlb)));
+}
+
+static void ipmmu_utlbs_backup(struct ipmmu_vmsa_device *mmu)
+{
+    struct ipmmu_vmsa_backup *backup_data;
+
+    dev_dbg(mmu->dev, "Handle micro-TLBs backup\n");
+
+    spin_lock(&ipmmu_devices_backup_lock);
+
+    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
+    {
+        struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(backup_data->dev);
+        unsigned int i;
+
+        if ( to_ipmmu(backup_data->dev) != mmu )
+            continue;
+
+        for ( i = 0; i < fwspec->num_ids; i++ )
+        {
+            unsigned int utlb = fwspec->ids[i];
+
+            backup_data->asids_val[i] = ipmmu_imuasid_read(mmu, utlb);
+            backup_data->utlbs_val[i] = ipmmu_imuctr_read(mmu, utlb);
+        }
+    }
+
+    spin_unlock(&ipmmu_devices_backup_lock);
+}
+
+static void ipmmu_utlbs_restore(struct ipmmu_vmsa_device *mmu)
+{
+    struct ipmmu_vmsa_backup *backup_data;
+
+    dev_dbg(mmu->dev, "Handle micro-TLBs restore\n");
+
+    spin_lock(&ipmmu_devices_backup_lock);
+
+    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
+    {
+        struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(backup_data->dev);
+        unsigned int i;
+
+        if ( to_ipmmu(backup_data->dev) != mmu )
+            continue;
+
+        for ( i = 0; i < fwspec->num_ids; i++ )
+        {
+            unsigned int utlb = fwspec->ids[i];
+
+            ipmmu_imuasid_write(mmu, utlb, backup_data->asids_val[i]);
+            ipmmu_imuctr_write(mmu, utlb, backup_data->utlbs_val[i]);
+        }
+    }
+
+    spin_unlock(&ipmmu_devices_backup_lock);
+}
+
+static void ipmmu_domain_backup_context(struct ipmmu_vmsa_domain *domain)
+{
+    struct ipmmu_vmsa_device *mmu = domain->mmu->root;
+    struct ipmmu_reg_ctx *regs = mmu->reg_backup[domain->context_id];
+
+    dev_dbg(mmu->dev, "Handle domain context %u backup\n", domain->context_id);
+
+    regs->imttlbr0 = ipmmu_ctx_read_root(domain, IMTTLBR0);
+    regs->imttubr0 = ipmmu_ctx_read_root(domain, IMTTUBR0);
+    regs->imttbcr  = ipmmu_ctx_read_root(domain, IMTTBCR);
+    regs->imctr    = ipmmu_ctx_read_root(domain, IMCTR);
+}
+
+static void ipmmu_domain_restore_context(struct ipmmu_vmsa_domain *domain)
+{
+    struct ipmmu_vmsa_device *mmu = domain->mmu->root;
+    struct ipmmu_reg_ctx *regs = mmu->reg_backup[domain->context_id];
+
+    dev_dbg(mmu->dev, "Handle domain context %u restore\n", domain->context_id);
+
+    ipmmu_ctx_write_root(domain, IMTTLBR0, regs->imttlbr0);
+    ipmmu_ctx_write_root(domain, IMTTUBR0, regs->imttubr0);
+    ipmmu_ctx_write_root(domain, IMTTBCR,  regs->imttbcr);
+    ipmmu_ctx_write_all(domain,  IMCTR,    regs->imctr | IMCTR_FLUSH);
+}
+
+/*
+ * Xen: Unlike Linux implementation, Xen uses a single driver instance
+ * for handling all IPMMUs. There is no framework for ipmmu_suspend/resume
+ * callbacks to be invoked for each IPMMU device. So, we need to iterate
+ * through all registered IPMMUs performing required actions.
+ *
+ * Also take care of restoring special settings, such as translation
+ * table format, etc.
+ */
+static int __must_check ipmmu_suspend(void)
+{
+    struct ipmmu_vmsa_device *mmu;
+
+    if ( !iommu_enabled )
+        return 0;
+
+    printk(XENLOG_DEBUG "ipmmu: Suspending...\n");
+
+    spin_lock(&ipmmu_devices_lock);
+
+    list_for_each_entry( mmu, &ipmmu_devices, list )
+    {
+        if ( ipmmu_is_root(mmu) )
+        {
+            unsigned int i;
+
+            for ( i = 0; i < mmu->num_ctx; i++ )
+            {
+                if ( !mmu->domains[i] )
+                    continue;
+                ipmmu_domain_backup_context(mmu->domains[i]);
+            }
+        }
+        else
+            ipmmu_utlbs_backup(mmu);
+    }
+
+    spin_unlock(&ipmmu_devices_lock);
+
+    return 0;
+}
+
+static void ipmmu_resume(void)
+{
+    struct ipmmu_vmsa_device *mmu;
+
+    if ( !iommu_enabled )
+        return;
+
+    printk(XENLOG_DEBUG "ipmmu: Resuming...\n");
+
+    spin_lock(&ipmmu_devices_lock);
+
+    /*
+     * IPMMUs are registered with list_add(), with Root IPMMU probed first.
+     * Walk backwards to restore Root contexts before Cache micro-TLBs.
+     */
+    list_for_each_entry_reverse( mmu, &ipmmu_devices, list )
+    {
+        uint32_t reg;
+
+        /* Do not use security group function */
+        reg = IMSCTLR + mmu->features->control_offset_base;
+        ipmmu_write(mmu, reg, ipmmu_read(mmu, reg) & ~IMSCTLR_USE_SECGRP);
+
+        if ( ipmmu_is_root(mmu) )
+        {
+            unsigned int i;
+
+            /* Use stage 2 translation table format */
+            reg = IMSAUXCTLR + mmu->features->control_offset_base;
+            ipmmu_write(mmu, reg, ipmmu_read(mmu, reg) | IMSAUXCTLR_S2PTE);
+
+            for ( i = 0; i < mmu->num_ctx; i++ )
+            {
+                if ( !mmu->domains[i] )
+                    continue;
+                ipmmu_domain_restore_context(mmu->domains[i]);
+            }
+        }
+        else
+            ipmmu_utlbs_restore(mmu);
+    }
+
+    spin_unlock(&ipmmu_devices_lock);
+}
+
+static int ipmmu_alloc_ctx_suspend(struct device *dev)
+{
+    struct ipmmu_vmsa_backup *backup_data;
+    unsigned int *utlbs_val, *asids_val;
+    struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
+
+    utlbs_val = xzalloc_array(unsigned int, fwspec->num_ids);
+    if ( !utlbs_val )
+        return -ENOMEM;
+
+    asids_val = xzalloc_array(unsigned int, fwspec->num_ids);
+    if ( !asids_val )
+    {
+        xfree(utlbs_val);
+        return -ENOMEM;
+    }
+
+    backup_data = xzalloc(struct ipmmu_vmsa_backup);
+    if ( !backup_data )
+    {
+        xfree(utlbs_val);
+        xfree(asids_val);
+        return -ENOMEM;
+    }
+
+    backup_data->dev = dev;
+    backup_data->utlbs_val = utlbs_val;
+    backup_data->asids_val = asids_val;
+
+    spin_lock(&ipmmu_devices_backup_lock);
+    list_add(&backup_data->list, &ipmmu_devices_backup);
+    spin_unlock(&ipmmu_devices_backup_lock);
+
+    return 0;
+}
+
+#ifdef CONFIG_HAS_PCI
+static void ipmmu_free_ctx_suspend(struct device *dev)
+{
+    struct ipmmu_vmsa_backup *backup_data, *tmp;
+
+    spin_lock(&ipmmu_devices_backup_lock);
+
+    list_for_each_entry_safe( backup_data, tmp, &ipmmu_devices_backup, list )
+    {
+        if ( backup_data->dev == dev )
+        {
+            list_del(&backup_data->list);
+            xfree(backup_data->utlbs_val);
+            xfree(backup_data->asids_val);
+            xfree(backup_data);
+            break;
+        }
+    }
+
+    spin_unlock(&ipmmu_devices_backup_lock);
+}
+#endif /* CONFIG_HAS_PCI */
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
 {
     uint64_t ttbr;
@@ -559,6 +825,9 @@ static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
         return ret;
 
     domain->context_id = ret;
+#ifdef CONFIG_SYSTEM_SUSPEND
+    domain->mmu->root->reg_backup[ret] = &root_pgtable[ret];
+#endif
 
     /*
      * TTBR0
@@ -615,6 +884,9 @@ static void ipmmu_domain_destroy_context(struct ipmmu_vmsa_domain *domain)
     ipmmu_ctx_write_root(domain, IMCTR, IMCTR_FLUSH);
     ipmmu_tlb_sync(domain);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+    domain->mmu->root->reg_backup[domain->context_id] = NULL;
+#endif
     ipmmu_domain_free_context(domain->mmu->root, domain->context_id);
 }
 
@@ -1338,10 +1610,11 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
     struct iommu_fwspec *fwspec;
 
 #ifdef CONFIG_HAS_PCI
+    int ret;
+
     if ( dev_is_pci(dev) )
     {
         struct pci_dev *pdev = dev_to_pci(dev);
-        int ret;
 
         if ( devfn != pdev->devfn )
             return 0;
@@ -1358,17 +1631,24 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
     if ( !to_ipmmu(dev) )
         return -ENODEV;
 
-    if ( !dev_is_pci(dev) )
+    if ( !dev_is_pci(dev) && dt_device_is_protected(dev_to_dt(dev)) )
     {
-        if ( dt_device_is_protected(dev_to_dt(dev)) )
-        {
-            dev_err(dev, "Already added to IPMMU\n");
-            return -EEXIST;
-        }
+        dev_err(dev, "Already added to IPMMU\n");
+        return -EEXIST;
+    }
 
-        /* Let Xen know that the master device is protected by an IOMMU. */
-        dt_device_set_protected(dev_to_dt(dev));
+#ifdef CONFIG_SYSTEM_SUSPEND
+    if ( ipmmu_alloc_ctx_suspend(dev) )
+    {
+        dev_err(dev, "Failed to allocate context for suspend\n");
+        return -ENOMEM;
     }
+#endif
+
+    /* Let Xen know that the master device is protected by an IOMMU. */
+    if ( !dev_is_pci(dev) )
+        dt_device_set_protected(dev_to_dt(dev));
+
 #ifdef CONFIG_HAS_PCI
     if ( dev_is_pci(dev) )
     {
@@ -1377,26 +1657,28 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
         struct pci_host_bridge *bridge;
         struct iommu_fwspec *fwspec_bridge;
         unsigned int utlb_osid0 = 0;
-        int ret;
 
         bridge = pci_find_host_bridge(pdev->seg, pdev->bus);
         if ( !bridge )
         {
             dev_err(dev, "Failed to find host bridge\n");
-            return -ENODEV;
+            ret = -ENODEV;
+            goto free_suspend_ctx;
         }
 
         fwspec_bridge = dev_iommu_fwspec_get(dt_to_dev(bridge->dt_node));
         if ( fwspec_bridge->num_ids < 1 )
         {
             dev_err(dev, "Failed to find host bridge uTLB\n");
-            return -ENXIO;
+            ret = -ENXIO;
+            goto free_suspend_ctx;
         }
 
         if ( fwspec->num_ids < 1 )
         {
             dev_err(dev, "Failed to find uTLB");
-            return -ENXIO;
+            ret = -ENXIO;
+            goto free_suspend_ctx;
         }
 
         rcar4_pcie_osid_regs_init(bridge);
@@ -1405,7 +1687,7 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
         if ( ret < 0 )
         {
             dev_err(dev, "No unused OSID regs\n");
-            return ret;
+            goto free_suspend_ctx;
         }
         reg_id = ret;
 
@@ -1420,7 +1702,7 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
         {
             rcar4_pcie_osid_bdf_clear(bridge, reg_id);
             rcar4_pcie_osid_reg_free(bridge, reg_id);
-            return ret;
+            goto free_suspend_ctx;
         }
     }
 #endif
@@ -1429,6 +1711,13 @@ static int ipmmu_add_device(u8 devfn, struct device *dev)
              dev_name(fwspec->iommu_dev), fwspec->num_ids);
 
     return 0;
+#ifdef CONFIG_HAS_PCI
+ free_suspend_ctx:
+#ifdef CONFIG_SYSTEM_SUSPEND
+    ipmmu_free_ctx_suspend(dev);
+#endif
+    return ret;
+#endif
 }
 
 static int ipmmu_iommu_domain_init(struct domain *d)
@@ -1490,6 +1779,10 @@ static const struct iommu_ops ipmmu_iommu_ops =
     .unmap_page      = arm_iommu_unmap_page,
     .dt_xlate        = ipmmu_dt_xlate,
     .add_device      = ipmmu_add_device,
+#ifdef CONFIG_SYSTEM_SUSPEND
+    .suspend         = ipmmu_suspend,
+    .resume          = ipmmu_resume,
+#endif
 };
 
 static __init int ipmmu_init(struct dt_device_node *node, const void *data)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 17:48:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 17:48:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315656.1585417 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VR-0002bs-4V; Thu, 21 May 2026 17:48:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315656.1585417; Thu, 21 May 2026 17:48:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VR-0002aY-0s; Thu, 21 May 2026 17:48:25 +0000
Received: by outflank-mailman (input) for mailman id 1315656;
 Thu, 21 May 2026 17:48:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ7VP-00022P-9u
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:48:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ7VO-00Bm0f-Lk
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:48:22 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f452f-bab6-0a2a0a5309dd-0a2a4508d226-32
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:22 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f4566-63b5-0a2a45080019-d155802ba517-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:22 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-48a3e9862f0so36844985e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:48:22 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d8e24bsm74565925e9.10.2026.05.21.10.48.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 10:48:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779385702; x=1779990502; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F0jUJYHm37yuKRA04SvTDMOB3esx5h23DnnVhZYfk0I=;
        b=Dtby69b6q3/TRktc/8pj/Tv2o8HqHWeuvPDbkRYiHnM1TMeNsUNw4JzC8NSGi4RgAR
         2gJihOephrb0uXPSw1Py6i8FyKoMpnTomcI88zuIl6Qgb2NjUs6SVJrr/7EXhtSeTJAe
         JoZ6dJAi+jgeRL/47hidfovaoEMyP28L3YxtBBqOWhGm3M04Ma5cxrF7JszjnOlrRLav
         W2UC97i5dGHk+514kdAiC0SjK+lpopuXTHLj5Jtv6Zxi7YiefozfFUsBEn1uRZPlen84
         Z6F8s7J61lVY7/tCoSZ2yyTj4P/QIYCW0Kz5mdFn5L0qta06K5Y4nSwok5P9hGmuK0sD
         PTfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779385702; x=1779990502;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=F0jUJYHm37yuKRA04SvTDMOB3esx5h23DnnVhZYfk0I=;
        b=GV0p9BX26dqG5Kd5rHaVPBCZgKSwXN2UmznZ+CE/yawLENFAzux+9IVRNwk5UhBjdq
         iXj1aMx9R2VQZZQO5yg9Zb8JlF0nqrU1uRIbOCMr42X4HMFZKBrWVB39dfpJRIYyMizF
         wspf+quH0ateWgyRVYk8uiZ63RBRRVCjk6GkSKjqL4wL4TZt9SKX7CF4IQU1Okg7RUc4
         O5iRdzRUGOjewUgHBYmBe5Hfzru5Xj1FzodELDEdQhKAdpDxQ50vkGQ1706EDsz48WNp
         lurOXl+EN+VQKWdSMaMMqEw2mSgcT4AJIMM5Xb9PRKkETrNe1bJSyqlIaI+0zMWdCFqw
         8p4A==
X-Gm-Message-State: AOJu0YxOEG50tEHTxAVwly0UjCP/3NPrw7gxNMVVtmKaf6n5e+CcBDCj
	K4N9KeeAX0KDFvXzUB15Oi+9GF4C5NJOUd3LDHUV8GX1ejdqCvZKJ5kqyF9gczoo
X-Gm-Gg: Acq92OEU+DQGVsNK+0YWJXnv37sEUQLCDg80k3MnM3TVtL+0RZ5J4lpPZqxuMMSlbKi
	Tro0qt6N8/m8xznMPHfDrSGzU8nBfIG+mKgXvRjXMD1+m/MOiEHT8gsdNRpzAHW3WNssqid5Run
	w6q47cawafWtLl2Dtkd8tc4kWHRH05Ee7z/0EY/O7L1NsyB55tW4tN28NF5o19oYeGWLUoI8bT1
	72keGEsp6gnOXwYR8PxIN4bgU8dXqcPrxdrpmfhIRl28bh172A6MFi/T8NQ1PPevahnt8w1D8HU
	8HwtVih5XZwHqb4VoEmauXCDsehv97YeMjSh245uqHJcOlYqF5e7VyWCX66TIjDAv2Cx4tstKjF
	pAnzlU34HVikvTnA8Pk6ZL+lbwoHzwf19VU9e9Oj/ZxLfEzHqEAX09dJACYN3Uad6oUryk0GooU
	T4/yvilT4p4RG4RP23pxQN+ILQfed+VB/SGRvh
X-Received: by 2002:a05:600c:3b1f:b0:490:f7c:b19 with SMTP id 5b1f17b1804b1-49035fcbd6bmr44775865e9.0.1779385702074;
        Thu, 21 May 2026 10:48:22 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v10 07/13] xen/arm: ffa: fix notification SRI across CPU hotplug/suspend
Date: Thu, 21 May 2026 20:45:25 +0300
Message-ID: <0c0bf3551f32cfc15ae2006988d3324bdca59b18.1779385072.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779385072.git.mykola_kvach@epam.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1779385702-BF370DB1-AD20EAAE/0/0
X-purgate-type: clean
X-purgate-size: 3700

From: Mykola Kvach <mykola_kvach@epam.com>

The FF-A notification SRI interrupt handler was not correctly tied to
CPU hotplug and suspend/resume. As a result, CPUs going offline and
back online could end up with stale or missing handlers, breaking
delivery of FF-A notifications.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa_notif.c | 63 ++++++++++++++++++++++++++++--------
 1 file changed, 50 insertions(+), 13 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
index 186e726412..513c399594 100644
--- a/xen/arch/arm/tee/ffa_notif.c
+++ b/xen/arch/arm/tee/ffa_notif.c
@@ -360,10 +360,28 @@ static int32_t ffa_notification_bitmap_destroy(uint16_t vm_id)
     return ffa_simple_call(FFA_NOTIFICATION_BITMAP_DESTROY, vm_id, 0, 0, 0);
 }
 
-void ffa_notif_init_interrupt(void)
+static DEFINE_PER_CPU_READ_MOSTLY(struct irqaction, sri_irq);
+
+static int request_sri_irq(void)
 {
     int ret;
+    struct irqaction *sri_action = &this_cpu(sri_irq);
+
+    sri_action->name = "FF-A notif";
+    sri_action->handler = notif_irq_handler;
+    sri_action->dev_id = NULL;
+    sri_action->free_on_release = 0;
+
+    ret = setup_irq(notif_sri_irq, 0, sri_action);
+    if ( ret )
+        printk(XENLOG_ERR "ffa: setup_irq irq %u failed: error %d\n",
+               notif_sri_irq, ret);
 
+    return ret;
+}
+
+void ffa_notif_init_interrupt(void)
+{
     if ( fw_notif_enabled && notif_sri_irq < NR_GIC_SGI )
     {
         /*
@@ -376,14 +394,36 @@ void ffa_notif_init_interrupt(void)
          * pending, while the SPMC in the secure world will not notice that
          * the interrupt was lost.
          */
-        ret = request_irq(notif_sri_irq, 0, notif_irq_handler, "FF-A notif",
-                          NULL);
-        if ( ret )
-            printk(XENLOG_ERR "ffa: request_irq irq %u failed: error %d\n",
-                   notif_sri_irq, ret);
+        request_sri_irq();
     }
 }
 
+static void deinit_ffa_notif_interrupt(void)
+{
+    if ( fw_notif_enabled && notif_sri_irq < NR_GIC_SGI )
+        release_irq(notif_sri_irq, NULL);
+}
+
+static int cpu_ffa_notif_callback(struct notifier_block *nfb,
+                                  unsigned long action,
+                                  void *hcpu)
+{
+    switch ( action )
+    {
+    case CPU_DYING:
+        deinit_ffa_notif_interrupt();
+        break;
+    default:
+        break;
+    }
+
+    return NOTIFY_DONE;
+}
+
+static struct notifier_block cpu_ffa_notif_nfb = {
+    .notifier_call = cpu_ffa_notif_callback,
+};
+
 void ffa_notif_init(void)
 {
     const struct arm_smccc_1_2_regs arg = {
@@ -392,7 +432,6 @@ void ffa_notif_init(void)
     };
     struct arm_smccc_1_2_regs resp;
     unsigned int irq;
-    int ret;
 
     /* Only enable fw notification if all ABIs we need are supported */
     if ( ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_CREATE) &&
@@ -408,13 +447,11 @@ void ffa_notif_init(void)
         notif_sri_irq = irq;
         if ( irq >= NR_GIC_SGI )
             irq_set_type(irq, IRQ_TYPE_EDGE_RISING);
-        ret = request_irq(irq, 0, notif_irq_handler, "FF-A notif", NULL);
-        if ( ret )
-        {
-            printk(XENLOG_ERR "ffa: request_irq irq %u failed: error %d\n",
-                   irq, ret);
+
+        if ( request_sri_irq() )
             return;
-        }
+
+        register_cpu_notifier(&cpu_ffa_notif_nfb);
         fw_notif_enabled = true;
     }
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 17:48:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 17:48:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315653.1585391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VO-0001zB-TF; Thu, 21 May 2026 17:48:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315653.1585391; Thu, 21 May 2026 17:48:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VO-0001yz-O9; Thu, 21 May 2026 17:48:22 +0000
Received: by outflank-mailman (input) for mailman id 1315653;
 Thu, 21 May 2026 17:48:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ7VM-0001XX-Qn
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:48:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ7VM-00BluR-6Y
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:48:20 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f452f-bab6-0a2a0a5309dd-0a2a4508d226-24
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:20 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f4563-63b5-0a2a45080019-d155802cc078-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:20 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-4903f7a90d1so3694595e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:48:20 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d8e24bsm74565925e9.10.2026.05.21.10.48.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 10:48:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779385699; x=1779990499; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=a8X7iUE4miDneD3kr0bugCzpGNvoBSglF6ML/JnN4R8=;
        b=eAThH8jzGH2w2jaFSidw1m0g142gEjQsJYPewxqvtZM67EqPmGIpRCjM8o7mFdDGl+
         Psvc0bWm6An2g53SVi1+xluDhM0KHTiACEiUkkNjoONsppn8af12Q03VWFg8ceuoAZHq
         5wR9bT+9iITlhgVyXWCMyEVdZyfr0em/YJDSkEhdVMu70D4hk1nGChhIar9O/wBnpl/Y
         arSyJzq9SYxIgiOFmUzm+wOOHt+wEkVsJuL5RfcKFwmpscUo+BpamERXUNcLAixuCAYw
         J3rSc/nWFo/8pTVN1RPuXT5A16K837wTBAHYEpaH4UOXV3torqkgCzpMRb6C3kLAyNz4
         MUmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779385699; x=1779990499;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=a8X7iUE4miDneD3kr0bugCzpGNvoBSglF6ML/JnN4R8=;
        b=DgxCADAajwoTvdCp+HhiJb6H3Jl+qGIuLbIQal0G/XpowlC+wi7oq3p9Fg0kpsWjmn
         nDqQmKoq3sziaX/iEfBz17bmoONlPPH6nHCj8kyheRkKAfjZ0yzj2sdmXpxuWXnDO5oJ
         5qHbS2SOSRXw9B48TcpPXKfI78QOnVik7sAkIi6A2MQqSidMwzIT9hU79x3vrPF4u+/Y
         FJzvE7lqJZ431G2+4CotPuAyC/gtWWNVAVYLkFcEaZaSlBnmjlg0XcKoINC0xwXziAmQ
         3JakRzgIchd1LPUxTtP5uEB91o+9yqAp2rJOCeIS0gf5yw3fEK5SsR/tXfhMdhXf9ewK
         E3ZA==
X-Gm-Message-State: AOJu0YwBzfs6qISZtmqF1wuXB5/VhZ7Gk8nLnArxT4UMtoba0ky7GHwu
	VLti+ASTBhZRRpOzMHFVppbWqew7aQwLJjjK500BCN/UWr71GuNjwyx9zqKx9sPu
X-Gm-Gg: Acq92OEjK3Z2geNphJgzKbINXINv44Zkc5E9HYEnoCUQmCdeDNJTxF1M+BaREmHHdm0
	08CbaB5CRrrueB1hKNYdZ8PKAvi6qbN/Rue8fidWPQuULWst7hWKOW4T4W0BXiFkO7OIqyFi3ks
	/bntj/28Og1tUKkbNXJFTey53eIpy/EZ26KJ6PYSgWRLBxlfKoPqjnYsKD0PLDda9b7ERnuQ0F3
	sFqMur3f9bx5ar8DdsNYSyXQjojGLByiwWy5frTMvD6FYSuVuWc3ZQY17QTId8bXj9SkYOMrAI0
	544ugZpVUpkAFCIpzIlsGIVpcTNryuU5YK6CDh0RW1iXcX1H85zLDPYBhltZrdrJaa2VT95Ynzp
	TZNMIxSq983Au4KDBA+tjKUhZnIguT84WLvwPXHMhbZ9Wov/5SFlGWv/wGnuDd8Q4iDJzEGX+ZB
	BXi0wMsyFBb0KP8Qv3eCU1qNLswg==
X-Received: by 2002:a05:600c:8596:b0:48a:5339:ef0e with SMTP id 5b1f17b1804b1-4903604ccb3mr48025785e9.3.1779385699432;
        Thu, 21 May 2026 10:48:19 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v10 04/13] xen/arm: gic-v3: Implement GICv3 suspend/resume functions
Date: Thu, 21 May 2026 20:45:22 +0300
Message-ID: <67f47fe59e2d3f66583c3a7ae82db036d57dc07a.1779385072.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779385072.git.mykola_kvach@epam.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1779385700-B6169DB1-2BAA46EE/0/0
X-purgate-type: clean
X-purgate-size: 21029

From: Mykola Kvach <mykola_kvach@epam.com>

System suspend may lead to a state where GIC would be powered down.
Therefore, Xen should save/restore the context of GIC on suspend/resume.

Note that the context consists of states of registers which are
controlled by the hypervisor. Other GIC registers which are accessible
by guests are saved/restored on context switch.

Before continuing suspend, also verify that the physical CPU interface
has no Group 1 active-priority state left. Use ICC_CTLR_EL1.PRIbits to
decide which ICC_AP1R<n>_EL1 registers are implemented, so Xen does not
read an unimplemented AP1R register.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V10:
- abort suspend when the physical Group 1 active-priority state is still
  present, deriving accessible ICC_AP1R<n>_EL1 registers from
  ICC_CTLR_EL1.PRIbits;
- re-enable the redistributor before restoring CPU and virtual interface
  state on the suspend abort path;
- panic if the redistributor cannot be re-enabled on the suspend abort path;
- avoid saving/restoring reserved GICD_IPRIORITYR and GICD_IROUTER entries
  for a partially populated last SPI block;
- disable Distributor group forwarding while preserving affinity routing
  state before restoring Distributor configuration;
- disable SPI/eSPI forwarding and wait for RWP before restoring
  GICD_ICFGR<n>.Int_config.

Changes in V9:
- fix the suspend-context comment typo and split dist_ctx declarations;
- restore ICC_IGRPEN1_EL1 on the suspend error path;
- re-initialize GICD_IGROUPRnE during resume;
- restore GICD_IROUTER only after re-enabling ARE_NS during resume.

Changes in V8:
- use right rdist base for prop/pend baser and ctrl

Changes in V7:
- restore LPI regs on resume
- add timeout during redist disabling
- squash with suspend/resume handling for GICv3 eSPI registers
- drop ITS guard paths so suspend/resume always runs; switch missing ctx
  allocation to panic
- trim TODO comments; narrow redistributor storage to PPI icfgr
- keep distributor context allocation even without ITS; adjust resume
  to use GENMASK(31, 0) for clearing enables
- drop storage of the SGI configuration register, as SGIs are always
  edge-triggered
---
 xen/arch/arm/gic-v3-lpi.c                |   3 +
 xen/arch/arm/gic-v3.c                    | 458 ++++++++++++++++++++++-
 xen/arch/arm/include/asm/arm64/sysregs.h |   5 +
 xen/arch/arm/include/asm/gic_v3_defs.h   |   3 +
 4 files changed, 466 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/gic-v3-lpi.c b/xen/arch/arm/gic-v3-lpi.c
index 847da26ff7..a63c8c4979 100644
--- a/xen/arch/arm/gic-v3-lpi.c
+++ b/xen/arch/arm/gic-v3-lpi.c
@@ -467,6 +467,9 @@ static int cpu_callback(struct notifier_block *nfb, unsigned long action,
     switch ( action )
     {
     case CPU_UP_PREPARE:
+        if ( system_state == SYS_STATE_resume )
+            break;
+
         rc = gicv3_lpi_allocate_pendtable(cpu);
         if ( rc )
             printk(XENLOG_ERR "Unable to allocate the pendtable for CPU%lu\n",
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index a2553e647e..64fd772d65 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -1076,12 +1076,12 @@ out:
     return res;
 }
 
-static void gicv3_hyp_disable(void)
+static void gicv3_hyp_enable(bool enable)
 {
     register_t hcr;
 
     hcr = READ_SYSREG(ICH_HCR_EL2);
-    hcr &= ~GICH_HCR_EN;
+    hcr = enable ? (hcr | GICH_HCR_EN) : (hcr & ~GICH_HCR_EN);
     WRITE_SYSREG(hcr, ICH_HCR_EL2);
     isb();
 }
@@ -1188,7 +1188,7 @@ static void gicv3_disable_interface(void)
     spin_lock(&gicv3.lock);
 
     gicv3_cpu_disable();
-    gicv3_hyp_disable();
+    gicv3_hyp_enable(false);
 
     spin_unlock(&gicv3.lock);
 }
@@ -1924,6 +1924,450 @@ static bool gic_dist_supports_lpis(void)
     return (readl_relaxed(GICD + GICD_TYPER) & GICD_TYPE_LPIS);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+/* This struct represents a block of 32 IRQs */
+struct dist_irq_block {
+    uint32_t icfgr[2];
+    uint32_t ipriorityr[8];
+    uint64_t irouter[32];
+    uint32_t isactiver;
+    uint32_t isenabler;
+};
+
+struct redist_ctx {
+    uint32_t ctlr;
+    uint32_t icfgr; /* only PPIs stored */
+    uint32_t igroupr;
+    uint32_t ipriorityr[8];
+    uint32_t isactiver;
+    uint32_t isenabler;
+
+    uint64_t pendbase;
+    uint64_t propbase;
+};
+
+/* GICv3 registers to be saved/restored on system suspend/resume */
+struct gicv3_ctx {
+    struct dist_ctx {
+        uint32_t ctlr;
+        struct dist_irq_block *irqs;
+        struct dist_irq_block *espi_irqs;
+    } dist;
+
+    /* have only one rdist structure for last running CPU during suspend */
+    struct redist_ctx rdist;
+
+    struct cpu_ctx {
+        uint32_t ctlr;
+        uint32_t pmr;
+        uint32_t bpr;
+        uint32_t sre_el2;
+        uint32_t grpen;
+    } cpu;
+};
+
+static struct gicv3_ctx gicv3_ctx;
+
+static void __init gicv3_alloc_context(void)
+{
+    uint32_t blocks = DIV_ROUND_UP(gicv3_info.nr_lines, 32);
+
+    /* The spec allows for systems without any SPIs */
+    if ( blocks > 1 )
+    {
+        gicv3_ctx.dist.irqs = xzalloc_array(struct dist_irq_block, blocks - 1);
+        if ( !gicv3_ctx.dist.irqs )
+            panic("Failed to allocate memory for GICv3 suspend context\n");
+    }
+
+#ifdef CONFIG_GICV3_ESPI
+    if ( !gic_number_espis() )
+        return;
+
+    blocks = gic_number_espis() / 32;
+    gicv3_ctx.dist.espi_irqs = xzalloc_array(struct dist_irq_block, blocks);
+    if ( !gicv3_ctx.dist.espi_irqs )
+        panic("Failed to allocate memory for GICv3 eSPI suspend context\n");
+#endif
+}
+
+static int gicv3_disable_redist(void)
+{
+    void __iomem *waker = GICD_RDIST_BASE + GICR_WAKER;
+    s_time_t deadline;
+
+    /*
+     * Avoid infinite loop if Non-secure does not have access to GICR_WAKER.
+     * See Arm IHI 0069H.b, 12.11.42 GICR_WAKER:
+     *     When GICD_CTLR.DS == 0 and an access is Non-secure accesses to this
+     *     register are RAZ/WI.
+     */
+    if ( !(readl_relaxed(GICD + GICD_CTLR) & GICD_CTLR_DS) )
+        return 0;
+
+    deadline = NOW() + MILLISECS(1000);
+
+    writel_relaxed(readl_relaxed(waker) | GICR_WAKER_ProcessorSleep, waker);
+    while ( (readl_relaxed(waker) & GICR_WAKER_ChildrenAsleep) == 0 )
+    {
+        if ( NOW() > deadline )
+        {
+            printk("GICv3: Timeout waiting for redistributor to sleep\n");
+            return -ETIMEDOUT;
+        }
+        cpu_relax();
+        udelay(10);
+    }
+
+    return 0;
+}
+
+#define GET_SPI_REG_OFFSET(name, is_espi) \
+    ((is_espi) ? GICD_##name##nE : GICD_##name)
+
+static void gicv3_store_spi_irq_block(struct dist_irq_block *irqs,
+                                      unsigned int i, unsigned int nr_irqs,
+                                      bool is_espi)
+{
+    void __iomem *base;
+    unsigned int irq, nr_priority_regs;
+
+    ASSERT(nr_irqs && nr_irqs <= 32);
+    nr_priority_regs = DIV_ROUND_UP(nr_irqs, 4);
+
+    base = GICD + GET_SPI_REG_OFFSET(ICFGR, is_espi) + i * sizeof(irqs->icfgr);
+    irqs->icfgr[0] = readl_relaxed(base);
+    irqs->icfgr[1] = readl_relaxed(base + 4);
+
+    base = GICD + GET_SPI_REG_OFFSET(IPRIORITYR, is_espi);
+    base += i * sizeof(irqs->ipriorityr);
+    for ( irq = 0; irq < nr_priority_regs; irq++ )
+        irqs->ipriorityr[irq] = readl_relaxed(base + 4 * irq);
+
+    base = GICD + GET_SPI_REG_OFFSET(IROUTER, is_espi);
+    base += i * sizeof(irqs->irouter);
+    for ( irq = 0; irq < nr_irqs; irq++ )
+        irqs->irouter[irq] = readq_relaxed_non_atomic(base + 8 * irq);
+
+    base = GICD + GET_SPI_REG_OFFSET(ISACTIVER, is_espi);
+    base += i * sizeof(irqs->isactiver);
+    irqs->isactiver = readl_relaxed(base);
+
+    base = GICD + GET_SPI_REG_OFFSET(ISENABLER, is_espi);
+    base += i * sizeof(irqs->isenabler);
+    irqs->isenabler = readl_relaxed(base);
+}
+
+static void gicv3_restore_spi_irq_config(struct dist_irq_block *irqs,
+                                         unsigned int i, unsigned int nr_irqs,
+                                         bool is_espi)
+{
+    void __iomem *base;
+    unsigned int irq, nr_priority_regs;
+
+    ASSERT(nr_irqs && nr_irqs <= 32);
+    nr_priority_regs = DIV_ROUND_UP(nr_irqs, 4);
+
+    base = GICD + GET_SPI_REG_OFFSET(ICFGR, is_espi) + i * sizeof(irqs->icfgr);
+    writel_relaxed(irqs->icfgr[0], base);
+    writel_relaxed(irqs->icfgr[1], base + 4);
+
+    base = GICD + GET_SPI_REG_OFFSET(IPRIORITYR, is_espi);
+    base += i * sizeof(irqs->ipriorityr);
+    for ( irq = 0; irq < nr_priority_regs; irq++ )
+        writel_relaxed(irqs->ipriorityr[irq], base + 4 * irq);
+}
+
+static void gicv3_restore_spi_irq_routing(struct dist_irq_block *irqs,
+                                          unsigned int i, unsigned int nr_irqs,
+                                          bool is_espi)
+{
+    void __iomem *base;
+    unsigned int irq;
+
+    ASSERT(nr_irqs && nr_irqs <= 32);
+
+    base = GICD + GET_SPI_REG_OFFSET(IROUTER, is_espi);
+    base += i * sizeof(irqs->irouter);
+    for ( irq = 0; irq < nr_irqs; irq++ )
+        writeq_relaxed_non_atomic(irqs->irouter[irq], base + 8 * irq);
+}
+
+static void gicv3_disable_spi_irq_block(unsigned int i, bool is_espi)
+{
+    void __iomem *base;
+
+    base = GICD + GET_SPI_REG_OFFSET(ICENABLER, is_espi) + i * 4;
+    writel_relaxed(GENMASK(31, 0), base);
+}
+
+static void gicv3_restore_spi_irq_state(struct dist_irq_block *irqs,
+                                        unsigned int i, bool is_espi)
+{
+    void __iomem *base;
+
+    base = GICD + GET_SPI_REG_OFFSET(ISENABLER, is_espi);
+    base += i * sizeof(irqs->isenabler);
+    writel_relaxed(irqs->isenabler, base);
+
+    base = GICD + GET_SPI_REG_OFFSET(ICACTIVER, is_espi) + i * 4;
+    writel_relaxed(GENMASK(31, 0), base);
+
+    base = GICD + GET_SPI_REG_OFFSET(ISACTIVER, is_espi);
+    base += i * sizeof(irqs->isactiver);
+    writel_relaxed(irqs->isactiver, base);
+}
+
+static int gicv3_check_ap1r(unsigned int n, register_t apr)
+{
+    if ( !apr )
+        return 0;
+
+    printk(XENLOG_ERR "GICv3: suspend aborted: ICC_AP1R%u_EL1=%#"
+           PRIregister"\n", n, apr);
+
+    return -EBUSY;
+}
+
+static int gicv3_check_active_priorities(register_t ctlr)
+{
+    unsigned int pribits = MASK_EXTR(ctlr, ICC_CTLR_EL1_PRIBITS_MASK) + 1;
+    int ret;
+
+    /*
+     * Xen enables physical Group 1 interrupts through ICC_IGRPEN1_EL1,
+     * so only the physical Group 1 active-priority registers are relevant
+     * here. Use ICC_CTLR_EL1.PRIbits for the physical CPU interface, not
+     * ICH_VTR_EL2, which describes the virtual interface. ICC_AP1R1_EL1 is
+     * only implemented with at least 6 physical priority bits, and
+     * ICC_AP1R2_EL1/ICC_AP1R3_EL1 with at least 7.
+     */
+    switch ( pribits )
+    {
+    case 8:
+    case 7:
+        ret = gicv3_check_ap1r(3, READ_SYSREG(ICC_AP1R3_EL1));
+        if ( ret )
+            return ret;
+        ret = gicv3_check_ap1r(2, READ_SYSREG(ICC_AP1R2_EL1));
+        if ( ret )
+            return ret;
+        /* Fall through */
+    case 6:
+        ret = gicv3_check_ap1r(1, READ_SYSREG(ICC_AP1R1_EL1));
+        if ( ret )
+            return ret;
+        /* Fall through */
+    default:
+        return gicv3_check_ap1r(0, READ_SYSREG(ICC_AP1R0_EL1));
+    }
+}
+
+static int gicv3_suspend(void)
+{
+    unsigned int i, nr_irqs;
+    void __iomem *base;
+    int ret;
+    struct redist_ctx *rdist = &gicv3_ctx.rdist;
+
+    /* Save GICC configuration */
+    gicv3_ctx.cpu.ctlr     = READ_SYSREG(ICC_CTLR_EL1);
+    gicv3_ctx.cpu.pmr      = READ_SYSREG(ICC_PMR_EL1);
+    gicv3_ctx.cpu.bpr      = READ_SYSREG(ICC_BPR1_EL1);
+    gicv3_ctx.cpu.sre_el2  = READ_SYSREG(ICC_SRE_EL2);
+    gicv3_ctx.cpu.grpen    = READ_SYSREG(ICC_IGRPEN1_EL1);
+
+    gicv3_disable_interface();
+
+    ret = gicv3_check_active_priorities(gicv3_ctx.cpu.ctlr);
+    if ( ret )
+        goto out_enable_iface;
+
+    ret = gicv3_disable_redist();
+    if ( ret )
+        goto out_enable_iface;
+
+    /* Save GICR configuration */
+    gicv3_redist_wait_for_rwp();
+
+    base = GICD_RDIST_BASE;
+
+    rdist->ctlr = readl_relaxed(base + GICR_CTLR);
+
+    rdist->propbase = readq_relaxed(base + GICR_PROPBASER);
+    rdist->pendbase = readq_relaxed(base + GICR_PENDBASER);
+
+    base = GICD_RDIST_SGI_BASE;
+
+    /* Save priority on PPI and SGI interrupts */
+    for ( i = 0; i < NR_GIC_LOCAL_IRQS / 4; i++ )
+        rdist->ipriorityr[i] = readl_relaxed(base + GICR_IPRIORITYR0 + 4 * i);
+
+    rdist->isactiver = readl_relaxed(base + GICR_ISACTIVER0);
+    rdist->isenabler = readl_relaxed(base + GICR_ISENABLER0);
+    rdist->igroupr   = readl_relaxed(base + GICR_IGROUPR0);
+    rdist->icfgr     = readl_relaxed(base + GICR_ICFGR1);
+
+    /* Save GICD configuration */
+    gicv3_dist_wait_for_rwp();
+    gicv3_ctx.dist.ctlr = readl_relaxed(GICD + GICD_CTLR);
+
+    for ( i = 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ )
+    {
+        nr_irqs = min(32U, gicv3_info.nr_lines - i * 32);
+        gicv3_store_spi_irq_block(gicv3_ctx.dist.irqs + i - 1, i, nr_irqs,
+                                  false);
+    }
+
+#ifdef CONFIG_GICV3_ESPI
+    for ( i = 0; i < gic_number_espis() / 32; i++ )
+        gicv3_store_spi_irq_block(gicv3_ctx.dist.espi_irqs + i, i, 32, true);
+#endif
+
+    return 0;
+
+ out_enable_iface:
+    if ( gicv3_enable_redist() )
+        panic("GICv3: Failed to re-enable redistributor after suspend abort\n");
+
+    gicv3_hyp_enable(true);
+    WRITE_SYSREG(gicv3_ctx.cpu.grpen, ICC_IGRPEN1_EL1);
+    isb();
+
+    return ret;
+}
+
+static void gicv3_resume(void)
+{
+    int ret;
+    unsigned int i, nr_irqs;
+    uint32_t dist_ctlr;
+    void __iomem *base;
+    struct redist_ctx *rdist = &gicv3_ctx.rdist;
+
+    dist_ctlr = gicv3_ctx.dist.ctlr & GICD_CTLR_ARE_NS;
+
+    /* Disable group forwarding while preserving affinity routing state. */
+    writel_relaxed(dist_ctlr, GICD + GICD_CTLR);
+    gicv3_dist_wait_for_rwp();
+
+    /*
+     * IHI0069H.b 12.9.9 says changing GICD_ICFGR<n>.Int_config
+     * while the interrupt is individually enabled is UNPREDICTABLE.
+     * Disable SPIs first; 4.7.1 defines GICD_ICENABLER<n>, n > 0,
+     * as the per-SPI disable mechanism.
+     */
+    for ( i = 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ )
+        gicv3_disable_spi_irq_block(i, false);
+
+#ifdef CONFIG_GICV3_ESPI
+    for ( i = 0; i < gic_number_espis() / 32; i++ )
+        gicv3_disable_spi_irq_block(i, true);
+#endif
+
+    gicv3_dist_wait_for_rwp();
+
+    for ( i = NR_GIC_LOCAL_IRQS; i < gicv3_info.nr_lines; i += 32 )
+        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) * 4);
+
+    for ( i = 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ )
+    {
+        nr_irqs = min(32U, gicv3_info.nr_lines - i * 32);
+        gicv3_restore_spi_irq_config(gicv3_ctx.dist.irqs + i - 1, i, nr_irqs,
+                                     false);
+    }
+
+#ifdef CONFIG_GICV3_ESPI
+    for ( i = 0; i < gic_number_espis() / 32; i++ )
+    {
+        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + i * 4);
+        gicv3_restore_spi_irq_config(gicv3_ctx.dist.espi_irqs + i, i, 32,
+                                     true);
+    }
+#endif
+
+    if ( dist_ctlr )
+    {
+        for ( i = 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ )
+        {
+            nr_irqs = min(32U, gicv3_info.nr_lines - i * 32);
+            gicv3_restore_spi_irq_routing(gicv3_ctx.dist.irqs + i - 1, i,
+                                          nr_irqs, false);
+        }
+
+#ifdef CONFIG_GICV3_ESPI
+        for ( i = 0; i < gic_number_espis() / 32; i++ )
+            gicv3_restore_spi_irq_routing(gicv3_ctx.dist.espi_irqs + i, i,
+                                          32, true);
+#endif
+    }
+
+    for ( i = 1; i < DIV_ROUND_UP(gicv3_info.nr_lines, 32); i++ )
+        gicv3_restore_spi_irq_state(gicv3_ctx.dist.irqs + i - 1, i, false);
+
+#ifdef CONFIG_GICV3_ESPI
+    for ( i = 0; i < gic_number_espis() / 32; i++ )
+        gicv3_restore_spi_irq_state(gicv3_ctx.dist.espi_irqs + i, i, true);
+#endif
+
+    writel_relaxed(gicv3_ctx.dist.ctlr, GICD + GICD_CTLR);
+    gicv3_dist_wait_for_rwp();
+
+    ret = gicv3_lpi_init_rdist(GICD_RDIST_BASE);
+    /*
+     * If LPIs are already enabled, assume firmware or the still-powered
+     * redistributor has valid PROPBASER/PENDBASER and skip reprogramming.
+     * Return -EBUSY so callers can ignore this case.
+     */
+    if ( ret && ret != -ENODEV && ret != -EBUSY )
+        panic("GICv3: Failed to re-initialize LPIs during resume\n");
+    else if ( ret == -EBUSY ) /* extra checks, just to be sure */
+    {
+        base = GICD_RDIST_BASE;
+        if ( readq_relaxed(base + GICR_PROPBASER) != rdist->propbase ||
+             readq_relaxed(base + GICR_PENDBASER) != rdist->pendbase )
+            panic("GICv3: LPIs already enabled with unexpected PROPBASER/PENDBASER during resume\n");
+    }
+
+    /* Restore GICR (Redistributor) configuration */
+    if ( gicv3_enable_redist() )
+        panic("GICv3: Failed to re-enable redistributor during resume\n");
+
+    base = GICD_RDIST_SGI_BASE;
+
+    writel_relaxed(GENMASK(31, 0), base + GICR_ICENABLER0);
+    gicv3_redist_wait_for_rwp();
+
+    for ( i = 0; i < NR_GIC_LOCAL_IRQS / 4; i++ )
+        writel_relaxed(rdist->ipriorityr[i], base + GICR_IPRIORITYR0 + i * 4);
+
+    writel_relaxed(rdist->isactiver, base + GICR_ISACTIVER0);
+    writel_relaxed(rdist->igroupr,   base + GICR_IGROUPR0);
+    writel_relaxed(rdist->icfgr,     base + GICR_ICFGR1);
+
+    gicv3_redist_wait_for_rwp();
+
+    writel_relaxed(rdist->isenabler, base + GICR_ISENABLER0);
+    writel_relaxed(rdist->ctlr, GICD_RDIST_BASE + GICR_CTLR);
+
+    gicv3_redist_wait_for_rwp();
+
+    WRITE_SYSREG(gicv3_ctx.cpu.sre_el2, ICC_SRE_EL2);
+    isb();
+
+    /* Restore CPU interface (System registers) */
+    WRITE_SYSREG(gicv3_ctx.cpu.pmr,   ICC_PMR_EL1);
+    WRITE_SYSREG(gicv3_ctx.cpu.bpr,   ICC_BPR1_EL1);
+    WRITE_SYSREG(gicv3_ctx.cpu.ctlr,  ICC_CTLR_EL1);
+    WRITE_SYSREG(gicv3_ctx.cpu.grpen, ICC_IGRPEN1_EL1);
+    isb();
+
+    gicv3_hyp_init();
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 /* Set up the GIC */
 static int __init gicv3_init(void)
 {
@@ -1998,6 +2442,10 @@ static int __init gicv3_init(void)
 
     gicv3_hyp_init();
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+    gicv3_alloc_context();
+#endif
+
 out:
     spin_unlock(&gicv3.lock);
 
@@ -2037,6 +2485,10 @@ static const struct gic_hw_operations gicv3_ops = {
 #endif
     .iomem_deny_access   = gicv3_iomem_deny_access,
     .do_LPI              = gicv3_do_LPI,
+#ifdef CONFIG_SYSTEM_SUSPEND
+    .suspend             = gicv3_suspend,
+    .resume              = gicv3_resume,
+#endif
 };
 
 static int __init gicv3_dt_preinit(struct dt_device_node *node, const void *data)
diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
index f3c11d871e..2261620316 100644
--- a/xen/arch/arm/include/asm/arm64/sysregs.h
+++ b/xen/arch/arm/include/asm/arm64/sysregs.h
@@ -16,6 +16,11 @@
 #define ICC_SRE_EL1               S3_0_C12_C12_5
 #define ICC_IGRPEN1_EL1           S3_0_C12_C12_7
 
+#define ICC_AP1R0_EL1             S3_0_C12_C9_0
+#define ICC_AP1R1_EL1             S3_0_C12_C9_1
+#define ICC_AP1R2_EL1             S3_0_C12_C9_2
+#define ICC_AP1R3_EL1             S3_0_C12_C9_3
+
 #define ICH_VSEIR_EL2             S3_4_C12_C9_4
 #define ICC_SRE_EL2               S3_4_C12_C9_5
 #define ICH_HCR_EL2               S3_4_C12_C11_0
diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/asm/gic_v3_defs.h
index 3714cfeb7d..f741587322 100644
--- a/xen/arch/arm/include/asm/gic_v3_defs.h
+++ b/xen/arch/arm/include/asm/gic_v3_defs.h
@@ -94,12 +94,15 @@
 #define GICD_TYPE_LPIS               (1U << 17)
 
 #define GICD_CTLR_RWP                (1UL << 31)
+#define GICD_CTLR_DS                 (1U << 6)
 #define GICD_CTLR_ARE_NS             (1U << 4)
 #define GICD_CTLR_ENABLE_G1A         (1U << 1)
 #define GICD_CTLR_ENABLE_G1          (1U << 0)
 #define GICD_IROUTER_SPI_MODE_ANY    (1UL << 31)
 
 #define GICC_CTLR_EL1_EOImode_drop   (1U << 1)
+#define ICC_CTLR_EL1_PRIBITS_SHIFT   8
+#define ICC_CTLR_EL1_PRIBITS_MASK    (0x7U << ICC_CTLR_EL1_PRIBITS_SHIFT)
 
 #define GICR_WAKER_ProcessorSleep    (1U << 1)
 #define GICR_WAKER_ChildrenAsleep    (1U << 2)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 17:48:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 17:48:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315655.1585402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VP-0002Dc-Qx; Thu, 21 May 2026 17:48:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315655.1585402; Thu, 21 May 2026 17:48:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VP-0002Bd-Mg; Thu, 21 May 2026 17:48:23 +0000
Received: by outflank-mailman (input) for mailman id 1315655;
 Thu, 21 May 2026 17:48:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ7VO-0001v1-GW
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:48:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ7VN-00Bm0f-Sm
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:48:21 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f452f-bab6-0a2a0a5309dd-0a2a4508d226-30
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:21 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f4565-63b5-0a2a45080019-d1558030eda1-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:21 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-4891e86fabeso83934995e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:48:21 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d8e24bsm74565925e9.10.2026.05.21.10.48.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 10:48:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779385701; x=1779990501; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DakayXl1HcfjZmxzjuOvWT6rEYilW0CjJi4UVOgEk64=;
        b=WgQ1k3oJqUOluzpDSHJTeYHHwEkDmh1rEAdY4EYQ7IA1komQCVtNNZqRZBc08Faoh5
         9DXYJGfHRxu9epkA9qF62IeMQpwE+bBRwjPM9COyece1hQwBzGNYDhp/qbQVlAC0Zh31
         Oubir3oMnZN/314w/H3rAP5XkHXqFu/mQ7nNREJduCHLMjmyJ7lO2F2KRUbrQj+MPcsw
         OiXDyU0Djn3Ta2Z3eH5qEl8sIYtGofAIwYSdqbmq4XkC7bmQvkTJ1iwSTXv/Wj5nP9ST
         Zq2nE1pg3XKbxxGuCg9v4sm+Y+7ojPnUnbvmV8Z2yYcCDXBtU3txi+CKPri3ZZtBgMIF
         nidw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779385701; x=1779990501;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=DakayXl1HcfjZmxzjuOvWT6rEYilW0CjJi4UVOgEk64=;
        b=hNDiAyN9+gMlZy4Qvub6BWUe7r35PCwkBrRNB30Xptpd8Mkhk/E8sSUKXc5VsuOoeb
         9whzKWP3WCUwf8uITaWTfdncW/TPHirKu3IwdS40Q/ueKdKHQnWuRCZX1d2puncded+f
         oJ8KBPKadV0tNrBSkRwuv7dRQ3C1xw1WJdK0aityyUQ9g+PT7XsRkBLf3Gfe9tT0/KSF
         1gmIivTKdilewJKMFDhRTfdT6dTbWbCUMD7frZl8jeEUGCb3++Rm+gIUjrPJUZFP5s2k
         L8JCiIXZximvcV0OTEgA33nE+VnT+HTmoJPEWilNVxzDEFuQTHdRNRwMq02mbjRSi+RI
         s+bA==
X-Gm-Message-State: AOJu0Yw6lOdFGuXskcPg8cn9UdFNvykPhKz8kb9fqGB0zktDDejqCZ03
	1Dsc6AdtOP7o8KWDwPK42Qz79iC0gCIKtjdgd4xYMuUFff25c4GneBI1UY0mvdJx
X-Gm-Gg: Acq92OEsaL4Ttx0lC2jTyieY5CR3IxJq/3CAzqrpvB1vE6je/XYd0hmezrPAPsdlfoI
	pBwgjwMbpl+V+HSruwYrZtBKFiV0KOoeviW7kp5W3skJCrJgRlKHaL1IMtkRsPPfcrsfULNoJq2
	58/1aoGABTa/ZYCIjCz+DEkxK0E6J5/sCZwlIog04/aHbsOENu8wWNPSQLGYUacqnllzlKiEuMU
	vL+QYFlBJRkAf7lMFayoO864xHgLn3g1uRt6LNEBngm/sK91NvbtQzNbRnHDOj8RPgdVTVVhYyR
	4KNvyE4+8tjnkLLVTROEz0YhvtjUD9dnVb2qrV5HSinP+pvq1rS+NiCTB5eRpkQMuSITWlkz9ie
	lvn1/zYdpWKDuPLQnzMPwI4YUOUw6X7ysMBOv3exDqfHpABADB+G41dL/iP8wzGYOKoxx7+faBi
	tHL9kvb+NLhBHAjIqwGTjXfw+JrSvu55YaBC1s
X-Received: by 2002:a05:600c:8b34:b0:490:3d27:94f4 with SMTP id 5b1f17b1804b1-4903d2797c3mr35722615e9.7.1779385701258;
        Thu, 21 May 2026 10:48:21 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v10 06/13] xen/arm: tee: keep init_tee_secondary() for hotplug and resume
Date: Thu, 21 May 2026 20:45:24 +0300
Message-ID: <455bd8ed7d91adcaa5953003bb2936c69c2fbbe6.1779385072.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779385072.git.mykola_kvach@epam.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1779385701-B7B7CDB1-4BBACC1C/0/0
X-purgate-type: clean
X-purgate-size: 1063

From: Mykola Kvach <mykola_kvach@epam.com>

init_tee_secondary() was marked __init and freed after boot. Calling it
from the CPU hotplug/resume path then executed discarded code, which
could crash Xen. Drop __init so the TEE mediator secondary init can run
safely on hotplugged and resumed CPUs.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
 xen/arch/arm/tee/tee.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/tee/tee.c b/xen/arch/arm/tee/tee.c
index 8501443c8e..00e561fc78 100644
--- a/xen/arch/arm/tee/tee.c
+++ b/xen/arch/arm/tee/tee.c
@@ -128,7 +128,7 @@ static int __init tee_init(void)
 
 presmp_initcall(tee_init);
 
-void __init init_tee_secondary(void)
+void init_tee_secondary(void)
 {
     if ( cur_mediator && cur_mediator->ops->init_secondary )
         cur_mediator->ops->init_secondary();
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 17:48:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 17:48:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315659.1585437 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VT-00036I-Nt; Thu, 21 May 2026 17:48:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315659.1585437; Thu, 21 May 2026 17:48:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VT-00033S-9q; Thu, 21 May 2026 17:48:27 +0000
Received: by outflank-mailman (input) for mailman id 1315659;
 Thu, 21 May 2026 17:48:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ7VS-0002o1-17
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:48:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ7VR-00Bm0f-DK
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:48:25 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f455c-bab6-0a2a0a5309dd-0a2a4501d96a-22
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:25 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f4569-c1f2-0a2a45010019-d155802dac30-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:25 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-488a14c31eeso39638495e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:48:25 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d8e24bsm74565925e9.10.2026.05.21.10.48.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 10:48:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779385705; x=1779990505; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h7WFuiMSqb39jLrPmTC0bmJXb2v0T/dsfDif5cBsMJ4=;
        b=NgXQn3LbL/iirrMmMUYgH3V0Vuv7Ve1X0lYKJeuApkLBYJ+/HPjCm4QYwbIf7I43fR
         x8luEqwT/WzY87ERqGGA+lk1cDjJiDHCXRAkxVO0JQV1fXG05pZWZOCsZpxVwsyIwJcQ
         N8B+WSdMEGYfsMwS/Sz6HOSk8NTiu1hTiDySs+8pe4X2qu5pA4fYAYqY2eYCgyw3lMZ5
         rjgcHQffB3aU+5RwDOG3h4a4QTqyAqE7qWMZGyCpzTGf/wbbGVzimSboyU1P/o57gYMw
         YGOq3TOZi+/YjtfqbO4jbeVSnNx2HyRuuCm77SvyE5wrGm3ijQL333x6VJx9m+yWpc50
         6/uw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779385705; x=1779990505;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=h7WFuiMSqb39jLrPmTC0bmJXb2v0T/dsfDif5cBsMJ4=;
        b=VXZt7EwO5C2L4S5KvAGCLla4H5SMv6eO3ZLyNeCNEBgGCsoxDzwwMPqrYazCmJA99p
         SWuIc8knkZUGTPAO3PyxIIeJosDAGLmuS1wfsVH1ZeM+Ml95lol7qF6tjsXGShy/0+mJ
         CoK7N8p9M8Ohw/6vyORtCHsXA3I2fdl6B77OEvXDOBBunMaHJeFRQl/5NGWiO9Fq6+A8
         mhCfXPV95iiC15qKgY897akY8/PrgvdXM+1r11mAGf3wKzkHvn3Zgf1LuTMR7Kg0+jg8
         Jq3Z4PqKVtmRTvs0DRD5paiQc0AldbrK5wZ/JK+9bFfd6kmfQXFbqA4B/1jG91BiGzle
         UWTQ==
X-Gm-Message-State: AOJu0YzZx7YV0fYODbcXHYnmXyehQ6BZ3Lyklu+KTL0LwgZHn9pxfIaQ
	xryYtC4KIZehXlQaSQVbzerC5CDX1w3/FOcGr3wx6XIbYYxFaP7zl/jpVWELxIZR
X-Gm-Gg: Acq92OGwkzDDJISpupPQT2Z/ag731hCOucLv3GdwbRUNEcc6XGvGjPmAwGyXHZ+4tu/
	sUY/ZcRdgOpq5ftzVxQqWZspQDuFDevsOGWXn1NIkPxG6QMUDuoBTJlcb5N/+0K9PEMTtzyXag3
	sF03rNyIsiBapijo+2Fwjv3nWaW3ulUt4pRxgQzCfhCYa7eCnnX2rU09oYvUk7GrARKhLDra4pA
	tUezwSJJdWkD3BIbQtkdwDFWUnmmJCbG/jN/JaFe82UVqYueNgDQ3+bjPYDNSHBV6e2kvOIhVwy
	JayAFi7hKc46rHf8F7oybBsISj6Nf4HkeQQcVH63yHBp6fqxH7Mp2mlPm9ebYjT5JtkBNfDiuIv
	Umxxk7xc0xpmyJ8tNVK6+tXgQGGHb+7z54az9kGrWvGCdBSLR9atpYO4K6bJyDiHFhcdSusRxSx
	UVT7p9zauG3XcZKfj08tyNnXadYw==
X-Received: by 2002:a05:600c:3d96:b0:47e:e2eb:bc22 with SMTP id 5b1f17b1804b1-49036024e9fmr61191025e9.5.1779385704650;
        Thu, 21 May 2026 10:48:24 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: [PATCH v10 10/13] xen/arm64: Save/restore CPU context across SYSTEM_SUSPEND
Date: Thu, 21 May 2026 20:45:28 +0300
Message-ID: <f8f6c8c3ee4f8c4f9f528094ec289554ac9c05f9.1779385072.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779385072.git.mykola_kvach@epam.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1779385705-AC055FF4-6745B4E4/0/0
X-purgate-type: clean
X-purgate-size: 11435

From: Mirela Simonovic <mirela.simonovic@aggios.com>

On wakeup from PSCI SYSTEM_SUSPEND, Xen re-enters EL2 with the MMU and
data cache disabled. The resume path must first switch back to Xen's
runtime page tables before it can access the saved CPU context using
virtual addresses.

Add an arm64 hyp_resume trampoline that reuses enable_secondary_cpu_mm()
to enable the data cache and MMU, switch to init_ttbr, and resume in the
runtime virtual mapping. The trampoline then restores the saved CPU
general-purpose and system-control register context.

prepare_resume_ctx() must be invoked just before the PSCI system suspend
call is issued to the platform firmware. It saves the current CPU context
and returns a non-zero value so that the caller enters the physical
SYSTEM_SUSPEND call.

On resume, hyp_resume restores the saved context, including the saved link
register. Control therefore returns to the place where prepare_resume_ctx()
was called. To avoid re-entering the suspend path, the restored path sees
prepare_resume_ctx() return zero.

The assembly save/restore code uses offsets generated by asm-offsets.c
from struct resume_cpu_context, keeping the assembly memory accesses in
sync with the C structure layout.

Support for ARM32 is not implemented. Instead, compilation fails with a
build-time error if suspend is enabled for ARM32.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
Changes in v10:
- Save and restore CNTHCTL_EL2 across SYSTEM_SUSPEND

Changes in v9:
- Drop the misleading prepare_resume_ctx() pointer argument and make both
  save/restore paths use the global resume_cpu_context.
- Squash the arm64 resume trampoline into the context save/restore patch.
- Document in code that hyp_resume relies on PSCI initial-state rules.
- Use generic platform firmware wording instead of ATF-specific wording.
- Rename the saved context type/storage to resume_cpu_context and rely on
  implicit zero-initialization for the file-scope object.
- Use asm-offsets.c-generated RESUME_CTX_* offsets to keep the assembly
  save/restore code in sync with struct resume_cpu_context.

Changes in v8:
- Fix alignments in code.

Changes in v7:
- No functional changes, just moved commit.
---
 xen/arch/arm/Makefile              |   1 +
 xen/arch/arm/arm64/asm-offsets.c   |  21 +++++
 xen/arch/arm/arm64/head.S          | 122 +++++++++++++++++++++++++++++
 xen/arch/arm/include/asm/suspend.h |  27 +++++++
 xen/arch/arm/suspend.c             |  14 ++++
 5 files changed, 185 insertions(+)
 create mode 100644 xen/arch/arm/suspend.c

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 982c6c396a..c97df7f3a0 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -51,6 +51,7 @@ obj-y += setup.o
 obj-y += shutdown.o
 obj-y += smp.o
 obj-y += smpboot.o
+obj-$(CONFIG_SYSTEM_SUSPEND) += suspend.o
 obj-$(CONFIG_SYSCTL) += sysctl.o
 obj-y += time.o
 obj-y += traps.o
diff --git a/xen/arch/arm/arm64/asm-offsets.c b/xen/arch/arm/arm64/asm-offsets.c
index 38a3894a3b..5d60406e9c 100644
--- a/xen/arch/arm/arm64/asm-offsets.c
+++ b/xen/arch/arm/arm64/asm-offsets.c
@@ -13,6 +13,7 @@
 #include <asm/mm.h>
 #include <asm/setup.h>
 #include <asm/smccc.h>
+#include <asm/suspend.h>
 
 #define DEFINE(_sym, _val)                                                 \
     asm volatile ( "\n.ascii\"==>#define " #_sym " %0 /* " #_val " */<==\""\
@@ -57,6 +58,26 @@ void __dummy__(void)
    OFFSET(INITINFO_stack, struct init_info, stack);
    BLANK();
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+   OFFSET(RESUME_CTX_X19, struct resume_cpu_context, callee_regs[0]);
+   OFFSET(RESUME_CTX_X21, struct resume_cpu_context, callee_regs[2]);
+   OFFSET(RESUME_CTX_X23, struct resume_cpu_context, callee_regs[4]);
+   OFFSET(RESUME_CTX_X25, struct resume_cpu_context, callee_regs[6]);
+   OFFSET(RESUME_CTX_X27, struct resume_cpu_context, callee_regs[8]);
+   OFFSET(RESUME_CTX_X29, struct resume_cpu_context, callee_regs[10]);
+   OFFSET(RESUME_CTX_SP, struct resume_cpu_context, sp);
+   OFFSET(RESUME_CTX_VBAR_EL2, struct resume_cpu_context, vbar_el2);
+   OFFSET(RESUME_CTX_VTCR_EL2, struct resume_cpu_context, vtcr_el2);
+   OFFSET(RESUME_CTX_VTTBR_EL2, struct resume_cpu_context, vttbr_el2);
+   OFFSET(RESUME_CTX_TPIDR_EL2, struct resume_cpu_context, tpidr_el2);
+   OFFSET(RESUME_CTX_MDCR_EL2, struct resume_cpu_context, mdcr_el2);
+   OFFSET(RESUME_CTX_HSTR_EL2, struct resume_cpu_context, hstr_el2);
+   OFFSET(RESUME_CTX_CPTR_EL2, struct resume_cpu_context, cptr_el2);
+   OFFSET(RESUME_CTX_HCR_EL2, struct resume_cpu_context, hcr_el2);
+   OFFSET(RESUME_CTX_CNTHCTL_EL2, struct resume_cpu_context, cnthctl_el2);
+   BLANK();
+#endif
+
    OFFSET(SMCCC_RES_a0, struct arm_smccc_res, a0);
    OFFSET(SMCCC_RES_a2, struct arm_smccc_res, a2);
    OFFSET(ARM_SMCCC_1_2_REGS_X0_OFFS, struct arm_smccc_1_2_regs, a0);
diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
index 72c7b24498..962be716ae 100644
--- a/xen/arch/arm/arm64/head.S
+++ b/xen/arch/arm/arm64/head.S
@@ -561,6 +561,128 @@ END(efi_xen_start)
 
 #endif /* CONFIG_ARM_EFI */
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+/*
+ * int prepare_resume_ctx(void)
+ *
+ * CPU context saved here will be restored on resume in hyp_resume function.
+ * prepare_resume_ctx shall return a non-zero value. Upon restoring context
+ * hyp_resume shall return value zero instead. From C code that invokes
+ * prepare_resume_ctx, the return value is interpreted to determine whether
+ * the context is saved (prepare_resume_ctx) or restored (hyp_resume).
+ */
+FUNC(prepare_resume_ctx)
+        ldr   x0, =resume_cpu_context
+
+        /* Store callee-saved registers */
+        stp   x19, x20, [x0, #RESUME_CTX_X19]
+        stp   x21, x22, [x0, #RESUME_CTX_X21]
+        stp   x23, x24, [x0, #RESUME_CTX_X23]
+        stp   x25, x26, [x0, #RESUME_CTX_X25]
+        stp   x27, x28, [x0, #RESUME_CTX_X27]
+        stp   x29, lr, [x0, #RESUME_CTX_X29]
+
+        /* Store stack-pointer */
+        mov   x2, sp
+        str   x2, [x0, #RESUME_CTX_SP]
+
+        /* Store system control registers */
+        mrs   x2, VBAR_EL2
+        str   x2, [x0, #RESUME_CTX_VBAR_EL2]
+        mrs   x2, VTCR_EL2
+        str   x2, [x0, #RESUME_CTX_VTCR_EL2]
+        mrs   x2, VTTBR_EL2
+        str   x2, [x0, #RESUME_CTX_VTTBR_EL2]
+        mrs   x2, TPIDR_EL2
+        str   x2, [x0, #RESUME_CTX_TPIDR_EL2]
+        mrs   x2, MDCR_EL2
+        str   x2, [x0, #RESUME_CTX_MDCR_EL2]
+        mrs   x2, HSTR_EL2
+        str   x2, [x0, #RESUME_CTX_HSTR_EL2]
+        mrs   x2, CPTR_EL2
+        str   x2, [x0, #RESUME_CTX_CPTR_EL2]
+        mrs   x2, HCR_EL2
+        str   x2, [x0, #RESUME_CTX_HCR_EL2]
+        mrs   x2, CNTHCTL_EL2
+        str   x2, [x0, #RESUME_CTX_CNTHCTL_EL2]
+
+        /* prepare_resume_ctx must return a non-zero value */
+        mov   x0, #1
+        ret
+END(prepare_resume_ctx)
+
+FUNC(hyp_resume)
+        /*
+         * PSCI states that SYSTEM_SUSPEND follows the CPU_SUSPEND initial
+         * state rules, so PSCI-compliant firmware must enter the return
+         * exception level with DAIF masked.
+         */
+
+        /* Initialize the UART if earlyprintk has been enabled. */
+#ifdef CONFIG_EARLY_PRINTK
+        bl    init_uart
+#endif
+        PRINT_ID("- Xen resuming -\r\n")
+
+        bl    check_cpu_mode
+        bl    cpu_init
+
+        ldr   x0, =start
+        adr   x20, start             /* x20 := paddr (start) */
+        sub   x20, x20, x0           /* x20 := phys-offset */
+        ldr   lr, =mmu_resumed
+        b     enable_secondary_cpu_mm
+
+mmu_resumed:
+        /* Now we can access the saved context, so restore it here. */
+        ldr   x0, =resume_cpu_context
+
+        /* Restore callee-saved registers */
+        ldp   x19, x20, [x0, #RESUME_CTX_X19]
+        ldp   x21, x22, [x0, #RESUME_CTX_X21]
+        ldp   x23, x24, [x0, #RESUME_CTX_X23]
+        ldp   x25, x26, [x0, #RESUME_CTX_X25]
+        ldp   x27, x28, [x0, #RESUME_CTX_X27]
+        ldp   x29, lr, [x0, #RESUME_CTX_X29]
+
+        /* Restore stack pointer */
+        ldr   x2, [x0, #RESUME_CTX_SP]
+        mov   sp, x2
+
+        /* Restore system control registers */
+        ldr   x2, [x0, #RESUME_CTX_VBAR_EL2]
+        msr   VBAR_EL2, x2
+        ldr   x2, [x0, #RESUME_CTX_VTCR_EL2]
+        msr   VTCR_EL2, x2
+        ldr   x2, [x0, #RESUME_CTX_VTTBR_EL2]
+        msr   VTTBR_EL2, x2
+        ldr   x2, [x0, #RESUME_CTX_TPIDR_EL2]
+        msr   TPIDR_EL2, x2
+        ldr   x2, [x0, #RESUME_CTX_MDCR_EL2]
+        msr   MDCR_EL2, x2
+        ldr   x2, [x0, #RESUME_CTX_HSTR_EL2]
+        msr   HSTR_EL2, x2
+        ldr   x2, [x0, #RESUME_CTX_CPTR_EL2]
+        msr   CPTR_EL2, x2
+        ldr   x2, [x0, #RESUME_CTX_HCR_EL2]
+        msr   HCR_EL2, x2
+        ldr   x2, [x0, #RESUME_CTX_CNTHCTL_EL2]
+        msr   CNTHCTL_EL2, x2
+        isb
+
+        /*
+         * Since context is restored return from this function will appear
+         * as return from prepare_resume_ctx. To distinguish a return from
+         * prepare_resume_ctx which is called upon finalizing the suspend,
+         * as opposed to return from this function which executes on resume,
+         * we need to return zero value here.
+         */
+        mov   x0, #0
+        ret
+END(hyp_resume)
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 /*
  * Local variables:
  * mode: ASM
diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
index 31a98a1f1b..c848fc6340 100644
--- a/xen/arch/arm/include/asm/suspend.h
+++ b/xen/arch/arm/include/asm/suspend.h
@@ -3,6 +3,8 @@
 #ifndef ARM_SUSPEND_H
 #define ARM_SUSPEND_H
 
+#include <xen/types.h>
+
 struct domain;
 struct vcpu;
 struct vcpu_guest_context;
@@ -14,6 +16,31 @@ struct resume_info {
 
 void arch_domain_resume(struct domain *d);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+#ifdef CONFIG_ARM_64
+struct resume_cpu_context {
+    register_t callee_regs[12];
+    register_t sp;
+    register_t vbar_el2;
+    register_t vtcr_el2;
+    register_t vttbr_el2;
+    register_t tpidr_el2;
+    register_t mdcr_el2;
+    register_t hstr_el2;
+    register_t cptr_el2;
+    register_t hcr_el2;
+    register_t cnthctl_el2;
+} __aligned(16);
+#else
+#error "Define resume_cpu_context structure for arm32"
+#endif
+
+extern struct resume_cpu_context resume_cpu_context;
+
+int prepare_resume_ctx(void);
+void hyp_resume(void);
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 #endif /* ARM_SUSPEND_H */
 
 /*
diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
new file mode 100644
index 0000000000..6ea4a0f9cc
--- /dev/null
+++ b/xen/arch/arm/suspend.c
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <asm/suspend.h>
+
+struct resume_cpu_context resume_cpu_context;
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 17:48:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 17:48:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315654.1585397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VP-00022n-9F; Thu, 21 May 2026 17:48:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315654.1585397; Thu, 21 May 2026 17:48:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VP-00022J-2g; Thu, 21 May 2026 17:48:23 +0000
Received: by outflank-mailman (input) for mailman id 1315654;
 Thu, 21 May 2026 17:48:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ7VN-0001ku-Pf
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:48:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ7VN-00Bm0f-5b
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:48:21 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f452f-bab6-0a2a0a5309dd-0a2a4508d226-28
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:21 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f4564-63b5-0a2a45080019-d155802ccc81-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:21 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-48984d29fe3so69350735e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:48:21 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d8e24bsm74565925e9.10.2026.05.21.10.48.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 10:48:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779385700; x=1779990500; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bhFqA0ujOchoRkzWCwRDd18LeOSHm2z8hzgN4OjK95I=;
        b=l4JYUnGO2DaDJ/MfJMah0A3PVHKAFMvYRPzuIzZgiPR1OFBgrLP8WJjYbfk0FUik/V
         eCFObcYEs14xg07JeFuDMWs+ji2d+dMIBBVliildhnYZ2Ps12zeRRHVCKKQ/L/C5XZU3
         rC2DpImN0TTBg3R33jjkXkuDN6j7GfiOlJ0wbMhfC73Zsrp+L35ALwVPWCAwEZRakzzK
         y6YV3c0S9aSBeP1gznVFzIzDl/4C5sodmxbjtTZsmsBVw+Bl/4YDiWDEQaSnqLBR8+0R
         It3zygcj4srKG8OpI4eWgIsi166NXB+xqzQODqtXD/VdcZ0W1ecupQbchHf8/8TA0TUc
         Befg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779385700; x=1779990500;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=bhFqA0ujOchoRkzWCwRDd18LeOSHm2z8hzgN4OjK95I=;
        b=IoXRQXDroUCxYSAkMW9z8HsXRdN4gaYO1so80mmF8oXobgjuT6+O3RhxAeK2kCeejA
         V3q91DpemV02dqZx4ENvnMAPG4S2Oc2sLzqrb7/6LW2hsPY6xPJz/rAvDM0lDg0atQZ6
         +GphF1pQhDfqHants5fLca/mXc8Ot4u4c/UeGYUkektFcpf6E4xVs9nlZimA2qeT2l7h
         yjDFkzb6+5hfrW6UTtjoOMXvyZs2Cxzgon4/T/e1N6bJYqToJ2C9m8PWB3WDbMG8rfvL
         lp7/LN+Xi7h5aAI/voN9MySjYyB+yxcqBVQ5tK2ag6JvUHemMQi07bY/E7hn+41NtLkY
         k3gQ==
X-Gm-Message-State: AOJu0YzYHbXKxo7EVYVQsG41OvO8QKKpFMlqciOWtfLGu5Z9muo+/r5v
	R7I9/5ihP5YimDpzTWN6oBrM7GJkBVo2xwsT8gMvmGdS78VE/W1e33WQnuejrUdH
X-Gm-Gg: Acq92OHo3aVOqav3ga0u+oJDhx48UOXQXXU8qNVSSPUBUplr0yTUnXRPo/Dfe0SOFmz
	6QUq+R0IEDLKNXkQM6azwFd4VYw49dc2ouQyQQGIvZGfRp/Wkhea8B/rDmSJAhCHBKxLV84a8hZ
	FfMeAWHw6EnDCH2mjWqbh2cJ5kPpHbVQmkiFeOFvbyED+jCFP/TyWD1/HgkA/dQDvwl9C3baPhD
	CaeKT28PUreaYhfQrTol/UbxkKuGMgqUw9kMI66CHrt6UkzcmGqwJkz125+OXBTvvQacrfC4pVo
	8MdwGIxUxdfgccwjPFjt6HKX9Y2sRs7+JNztTGtantgvFBIZxUvLyyEsFzbqeGiJmN+OkwX/UrZ
	oX70jRM8C/XCSSUGKU7KontqrRMiwjvT3sNE4bLd+pl7rz0EGDgRRIMNyt0ZZZCWDVYebTWcb3P
	zYT67Mo31f3EzxLe2GRF5xcteidw==
X-Received: by 2002:a05:600c:1c0d:b0:48f:fe2a:107b with SMTP id 5b1f17b1804b1-49036048699mr70867295e9.7.1779385700421;
        Thu, 21 May 2026 10:48:20 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v10 05/13] xen/arm: gic-v3: add ITS suspend/resume support
Date: Thu, 21 May 2026 20:45:23 +0300
Message-ID: <95930674d4639727b9cdf4f52b4a23b6df60c3c4.1779385072.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779385072.git.mykola_kvach@epam.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1779385701-B797DDB1-2A1C7773/0/0
X-purgate-type: clean
X-purgate-size: 11107

From: Mykola Kvach <mykola_kvach@epam.com>

Handle system suspend/resume for GICv3 with an ITS present so LPIs keep
working after firmware powers the GIC down.

Save and restore the ITS CTLR, CBASER and BASER registers. On resume,
re-establish the collection mapping only when the collection is held in
the ITS itself. Memory-backed collections are restored through the
restored GITS_BASER tables and must not be remapped unconditionally.

Add list_for_each_entry_continue_reverse() in list.h for the ITS suspend
error path that needs to roll back partially saved state.

Based on Linux commit dba0bc7b76dc:
"irqchip/gic-v3-its: Add ability to save/restore ITS state".
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V10:
- Replay MAPC on resume only for collections held in the ITS itself, as
  indicated by GITS_TYPER.HCC. Memory-backed collections are restored
  through GITS_BASER and are no longer remapped unconditionally.
- Make the current Xen col_id == cpu assumption explicit in the ITS
  resume path.
- Use "unpredictable" instead of "undefined" in the CBASER/BASER restore
  comment.

Changes in V9:
- fix the ITS suspend/resume coding-style nits;
- preserve the saved GITS_CTLR state while masking the read-only
  QUIESCENT bit.

Changes in V8:
- Reword the CBASER/CWRITER comment to match Xen and drop the stale Linux
  cmd_write reference.
- Clarify the list_for_each_entry_continue_reverse() comment.
- Factor out per-ITS helpers for collection setup and resume.
- Restore each ITS and re-establish its collection mapping in the same
  loop, so a failed ITS resume is not followed by MAPC/SYNC on that
  un-restored instance.
- panic in case when resume of an ITS failed
- cleanup baser cache during suspend
---
 xen/arch/arm/gic-v3-its.c             | 146 ++++++++++++++++++++++++--
 xen/arch/arm/gic-v3.c                 |  11 +-
 xen/arch/arm/include/asm/gic_v3_its.h |  28 +++++
 xen/include/xen/list.h                |  14 +++
 4 files changed, 189 insertions(+), 10 deletions(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index 7560d46c6d..dd53209865 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -335,6 +335,22 @@ static int its_send_cmd_inv(struct host_its *its,
     return its_send_command(its, cmd);
 }
 
+static int gicv3_its_setup_collection_single(struct host_its *its,
+                                             unsigned int cpu)
+{
+    int ret;
+
+    ret = its_send_cmd_mapc(its, cpu, cpu);
+    if ( ret )
+        return ret;
+
+    ret = its_send_cmd_sync(its, cpu);
+    if ( ret )
+        return ret;
+
+    return gicv3_its_wait_commands(its);
+}
+
 /* Set up the (1:1) collection mapping for the given host CPU. */
 int gicv3_its_setup_collection(unsigned int cpu)
 {
@@ -343,15 +359,7 @@ int gicv3_its_setup_collection(unsigned int cpu)
 
     list_for_each_entry(its, &host_its_list, entry)
     {
-        ret = its_send_cmd_mapc(its, cpu, cpu);
-        if ( ret )
-            return ret;
-
-        ret = its_send_cmd_sync(its, cpu);
-        if ( ret )
-            return ret;
-
-        ret = gicv3_its_wait_commands(its);
+        ret = gicv3_its_setup_collection_single(its, cpu);
         if ( ret )
             return ret;
     }
@@ -1211,6 +1219,126 @@ int gicv3_its_init(void)
     return 0;
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+int gicv3_its_suspend(void)
+{
+    struct host_its *its;
+    int ret;
+
+    list_for_each_entry( its, &host_its_list, entry )
+    {
+        unsigned int i;
+        void __iomem *base = its->its_base;
+
+        /*
+         * By the time Xen reaches gic_suspend(), every domain is already in
+         * SHUTDOWN_suspend, so ITS-targeting interrupt sources are expected
+         * to have been quiesced by the owning OS before SYSTEM_SUSPEND.
+         */
+        /* Preserve saved GITS_CTLR state, excluding read-only QUIESCENT. */
+        its->suspend_ctx.ctlr = readl_relaxed(base + GITS_CTLR) &
+                                ~GITS_CTLR_QUIESCENT;
+        ret = gicv3_disable_its(its);
+        if ( ret )
+        {
+            writel_relaxed(its->suspend_ctx.ctlr, base + GITS_CTLR);
+            goto err;
+        }
+
+        its->suspend_ctx.cbaser = readq_relaxed(base + GITS_CBASER);
+
+        for ( i = 0; i < GITS_BASER_NR_REGS; i++ )
+        {
+            uint64_t baser = readq_relaxed(base + GITS_BASER0 + i * 8);
+
+            its->suspend_ctx.baser[i] = 0;
+
+            if ( !(baser & GITS_VALID_BIT) )
+                continue;
+
+            its->suspend_ctx.baser[i] = baser;
+        }
+    }
+
+    return 0;
+
+ err:
+    list_for_each_entry_continue_reverse( its, &host_its_list, entry )
+        writel_relaxed(its->suspend_ctx.ctlr, its->its_base + GITS_CTLR);
+
+    return ret;
+}
+
+static int gicv3_its_resume_single(struct host_its *its, unsigned int cpu)
+{
+    void __iomem *base = its->its_base;
+    unsigned int i;
+    int ret;
+    uint64_t typer;
+    unsigned int col_id = cpu; /* Xen currently uses col_id == cpu. */
+
+    /*
+     * Make sure that the ITS is disabled. If it fails to quiesce,
+     * don't restore it since writing to CBASER or BASER<n>
+     * registers is unpredictable according to the GIC v3 ITS
+     * Specification.
+     */
+    WARN_ON(readl_relaxed(base + GITS_CTLR) & GITS_CTLR_ENABLE);
+    ret = gicv3_disable_its(its);
+    if ( ret )
+        return ret;
+
+    writeq_relaxed(its->suspend_ctx.cbaser, base + GITS_CBASER);
+
+    /*
+     * Writing CBASER resets CREADR to 0, so reset CWRITER to
+     * keep the command queue pointers aligned.
+     */
+    writeq_relaxed(0, base + GITS_CWRITER);
+
+    /* Restore GITS_BASER from the value cache. */
+    for ( i = 0; i < GITS_BASER_NR_REGS; i++ )
+    {
+        uint64_t baser = its->suspend_ctx.baser[i];
+
+        if ( !(baser & GITS_VALID_BIT) )
+            continue;
+
+        writeq_relaxed(baser, base + GITS_BASER0 + i * 8);
+    }
+
+    writel_relaxed(its->suspend_ctx.ctlr, base + GITS_CTLR);
+
+    typer = readq_relaxed(base + GITS_TYPER);
+
+    /*
+     * Only collections with IDs below HCC are held in the ITS itself
+     * and lose their state across an ITS reset/power loss. Memory-backed
+     * collections are restored by restoring GITS_BASER and must not be
+     * remapped here.
+     */
+    if ( col_id < GITS_TYPER_HCC(typer) )
+        return gicv3_its_setup_collection_single(its, cpu);
+
+    return 0;
+}
+
+void gicv3_its_resume(void)
+{
+    struct host_its *its;
+    unsigned int cpu = smp_processor_id();
+    int ret;
+
+    list_for_each_entry( its, &host_its_list, entry )
+    {
+        ret = gicv3_its_resume_single(its, cpu);
+        if ( ret )
+            panic("GICv3: ITS@%"PRIpaddr": failed to restore during resume: %d\n",
+                   its->addr, ret);
+    }
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
 
 /*
  * Local variables:
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 64fd772d65..6e0ca6c50d 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -2184,10 +2184,14 @@ static int gicv3_suspend(void)
     if ( ret )
         goto out_enable_iface;
 
-    ret = gicv3_disable_redist();
+    ret = gicv3_its_suspend();
     if ( ret )
         goto out_enable_iface;
 
+    ret = gicv3_disable_redist();
+    if ( ret )
+        goto out_its_resume;
+
     /* Save GICR configuration */
     gicv3_redist_wait_for_rwp();
 
@@ -2227,6 +2231,9 @@ static int gicv3_suspend(void)
 
     return 0;
 
+ out_its_resume:
+    gicv3_its_resume();
+
  out_enable_iface:
     if ( gicv3_enable_redist() )
         panic("GICv3: Failed to re-enable redistributor after suspend abort\n");
@@ -2353,6 +2360,8 @@ static void gicv3_resume(void)
 
     gicv3_redist_wait_for_rwp();
 
+    gicv3_its_resume();
+
     WRITE_SYSREG(gicv3_ctx.cpu.sre_el2, ICC_SRE_EL2);
     isb();
 
diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include/asm/gic_v3_its.h
index fc5a84892c..0f8cb16e41 100644
--- a/xen/arch/arm/include/asm/gic_v3_its.h
+++ b/xen/arch/arm/include/asm/gic_v3_its.h
@@ -43,6 +43,11 @@
 #define GITS_CTLR_QUIESCENT             BIT(31, UL)
 #define GITS_CTLR_ENABLE                BIT(0, UL)
 
+#define GITS_TYPER_HCC_SHIFT            24
+#define GITS_TYPER_HCC_MASK             0xffUL
+#define GITS_TYPER_HCC(r)               (((r) >> GITS_TYPER_HCC_SHIFT) & \
+                                                 GITS_TYPER_HCC_MASK)
+
 #define GITS_TYPER_PTA                  BIT(19, UL)
 #define GITS_TYPER_DEVIDS_SHIFT         13
 #define GITS_TYPER_DEVIDS_MASK          (0x1fUL << GITS_TYPER_DEVIDS_SHIFT)
@@ -129,6 +134,13 @@ struct host_its {
     spinlock_t cmd_lock;
     void *cmd_buf;
     unsigned int flags;
+#ifdef CONFIG_SYSTEM_SUSPEND
+    struct suspend_ctx {
+        uint32_t ctlr;
+        uint64_t cbaser;
+        uint64_t baser[GITS_BASER_NR_REGS];
+    } suspend_ctx;
+#endif
 };
 
 /* Map a collection for this host CPU to each host ITS. */
@@ -204,6 +216,11 @@ uint64_t gicv3_its_get_cacheability(void);
 uint64_t gicv3_its_get_shareability(void);
 unsigned int gicv3_its_get_memflags(void);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+int gicv3_its_suspend(void);
+void gicv3_its_resume(void);
+#endif
+
 #else
 
 #ifdef CONFIG_ACPI
@@ -271,6 +288,17 @@ static inline int gicv3_its_make_hwdom_dt_nodes(const struct domain *d,
     return 0;
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+static inline int gicv3_its_suspend(void)
+{
+    return 0;
+}
+
+static inline void gicv3_its_resume(void)
+{
+}
+#endif
+
 #endif /* CONFIG_HAS_ITS */
 
 #endif
diff --git a/xen/include/xen/list.h b/xen/include/xen/list.h
index 98d8482dab..2aab274157 100644
--- a/xen/include/xen/list.h
+++ b/xen/include/xen/list.h
@@ -535,6 +535,20 @@ static inline void list_splice_init(struct list_head *list,
          &(pos)->member != (head);                                        \
          (pos) = list_entry((pos)->member.next, typeof(*(pos)), member))
 
+/**
+ * list_for_each_entry_continue_reverse - iterate backwards from the given point
+ * @pos:    the type * to use as a loop cursor.
+ * @head:   the head for your list.
+ * @member: the name of the list_head within the struct.
+ *
+ * Iterate over list of given type backwards, starting from the element previous
+ * to the current one in list order.
+ */
+#define list_for_each_entry_continue_reverse(pos, head, member)           \
+    for ((pos) = list_entry((pos)->member.prev, typeof(*(pos)), member);  \
+         &(pos)->member != (head);                                        \
+         (pos) = list_entry((pos)->member.prev, typeof(*(pos)), member))
+
 /**
  * list_for_each_entry_from - iterate over list of given type from the
  *                            current point
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 17:48:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 17:48:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315658.1585431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VT-0002yx-5I; Thu, 21 May 2026 17:48:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315658.1585431; Thu, 21 May 2026 17:48:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VS-0002xp-Sp; Thu, 21 May 2026 17:48:26 +0000
Received: by outflank-mailman (input) for mailman id 1315658;
 Thu, 21 May 2026 17:48:25 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ7VR-0002Zw-5J
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:48:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ7VQ-003Sgm-I0
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:48:24 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f4544-2eae-0a2a0a5409dd-0a2a450a9b7a-46
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:24 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f4568-56b3-0a2a450a0019-d1558029c9f6-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:24 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-4903974854dso9346175e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:48:24 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d8e24bsm74565925e9.10.2026.05.21.10.48.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 10:48:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779385704; x=1779990504; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ytebWOt5OB4GGJdMVsvf3hk0k5wEJ8sVdBtQUHUMk1U=;
        b=Fo79PzYYgj5zBoTpN7VjyOeu3Jnn2deK1GwKoksbXdV0Vrf/502pDJBP3CcnUUSGnv
         MYAcfwr/PfPZ5UeqBpqUT+X+IoFNjrQ3Qyy6a3IBpiXoCAaQjNt+QuJwNt7U/sLMp4+2
         2yZ+NLGfenneGsmX0LlZ4TZ+vbil7ZqmtooOCsDsSkPEgx9Jlkwz8sv9ikBBDeJ7lkCy
         aE1QLRHAPsDMOt1go6/+1khzp8ft6AaowKa4dfuOlMcquFynxJCwmD0sBGdGIM84Y03S
         +J2caZ4JH5D2VEu1Bj5Nh9IgEDR9udyAzyt3UbEkQg6e2ng/1XFx53IPImi19JgMmIy0
         SupA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779385704; x=1779990504;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ytebWOt5OB4GGJdMVsvf3hk0k5wEJ8sVdBtQUHUMk1U=;
        b=oo01R4mXhKVQVulu111Y0rRRJbq38Bj0T7MIflhAsKxrPGPcfX6B2oV2l0y2r+Whkf
         iZsAiBbI2oigc2Gd550uBT6c75M0EENQtkAIdFZM0T6EOw6dq52Ns6BchbkGwVkW/NQg
         ie5Kse1HecrCRpWMBTrV4IAT36bOPgom6jqV8fDxxnX/c4xbVH28JmoBj4fywr30H5ZP
         qjPSsm0R9qFkDO49VVAM/B0UDp9gLrK+VPrXXciEsvDkVjDTjsWVYGUjBH6FgciQXpri
         9M0+PZCGlyzzUoEt6qbQKT7EewAjePcytYDLGCHiiVoM6sopGqRWGT+T6KNXQW5KX/Uk
         d47A==
X-Gm-Message-State: AOJu0Yzn/Af4WPffG9zMqBnTjYIjrFyUFxVLutQfPgZ2lGAMWOjZ6h07
	ouEzNaN0Qfz6z7FljgiZRnfK57YfE15RYVjGO53plOm3F1KxbK5U7tnGxPsroRiV
X-Gm-Gg: Acq92OEawk4eWI2ffum6lDva3MhCOgR3IRS02rJoxoQ3zbDHrq/UGnw6L6NMU6hdlmd
	xmYg2tI7lHvRB3oXv5izQUC8qfdYc1jgY8X9NezARTRDZXNVJ2PHCZjGfMI+0/BnFJT+9L0iDpr
	a7kCYZgS4O12VFdPYQ/FZuuv2Jds47Ro9ipJpgqt6FBHwQK/faG44HdjoIgUztfBVnNfXNw1NXz
	JihFS0teafajck6KzxoONZ/wDp8IROhRgzA8WKPkBFxr5xy+USxh/mX12r0eACY+bRuLUemU7Eh
	BE1vFIi5JS2kn+U1CmFT0lVq+tiWY2alzydHW8CP/4Y37/1lmXnQwJg5/HvvKDbmvQuZGVbKdSp
	/s7eDxEZ9ikax1Ubbrq5gBwZ/qzZlS12GKyGrip7bnUUV6XUlO5Nujc83tVUeMhGow/D8GaluK4
	1ndwNkqWPH6FxDqSnQrBC7pZMFFg==
X-Received: by 2002:a05:600d:849c:10b0:488:a797:f0ac with SMTP id 5b1f17b1804b1-490360baf6cmr44349475e9.28.1779385703780;
        Thu, 21 May 2026 10:48:23 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Rahul Singh <rahul.singh@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Pranjal Shrivastava <praan@google.com>
Subject: [PATCH v10 09/13] xen/arm: smmu-v3: add suspend/resume handlers
Date: Thu, 21 May 2026 20:45:27 +0300
Message-ID: <279cd20f49be956fc8493aace906a1adfaf473ee.1779385072.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779385072.git.mykola_kvach@epam.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1779385704-7F1948B7-5F822F34/0/0
X-purgate-type: clean
X-purgate-size: 10603

From: Mykola Kvach <mykola_kvach@epam.com>

Add system suspend/resume callbacks for the Arm SMMUv3 driver.

During suspend, configure GBPA to abort incoming transactions, disable the
translation interface while keeping CMDQ enabled, issue CMD_SYNC to ensure
all previously issued commands have completed, then disable the SMMU IRQs
and SMMU.

Resume uses arm_smmu_device_reset() to reprogram the SMMU and re-enable
translation and interrupt generation.

The IRQ setup split follows the approach from Pranjal Shrivastava's Linux
arm-smmu-v3 runtime/system sleep series: IRQ handlers are requested once
during probe, while reset/resume only restores SMMU hardware state and
re-enables IRQ_CTRL.

Only the pieces relevant to Xen's currently supported SMMUv3 path are
ported here. Xen documents SMMUv3 MSI and PCI ATS as unsupported and not
compiled/tested, so this patch does not restore SMMU MSI IRQ_CFGn registers
nor reinitialize ATS/PRI endpoints. If those paths become usable,
suspend/resume will need corresponding MSI restore and ATS/PRI
quiesce/reinit steps.

Link: https://lore.kernel.org/r/20260414194702.1229094-1-praan@google.com/
Based-on-patch-by: Pranjal Shrivastava <praan@google.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V10:
- Disable SMMU interrupt generation during suspend before disabling the
  SMMU interface, matching the resume/reset path which re-enables IRQ_CTRL.

Changes in V9:
- Use CMD_SYNC in suspend instead of polling CMDQ_CONS, so the suspend
  path waits for command completion rather than only command consumption.
- Document that arm_smmu_setup_irqs() is probe-only and that future Xen
  SMMUv3 MSI support will need to restore SMMU IRQ_CFGn registers on
  resume.
- Restore the reference to Pranjal's Linux runtime/system sleep series and
  clarify that MSI/ATS/PRI resume handling is outside the supported Xen
  path.
- Prefix the subject with xen/arm for consistency with the rest of the
  Arm suspend/resume series.

Changes in V8:
- Honor ARM_SMMU_FEAT_SEV when draining the CMDQ during suspend, matching
  the existing runtime CMD_SYNC path.
- Fold the suspend rollback reset path into a helper and rename the error
  reporting to describe suspend rollback rather than resume.
- Treat SMMU reset failure during resume as fatal instead of logging and
  continuing with a potentially unusable IOMMU.
- cosmetic changes
---
 xen/drivers/passthrough/arm/smmu-v3.c | 186 +++++++++++++++++++++-----
 1 file changed, 150 insertions(+), 36 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
index bf153227db..be8028c036 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -1814,8 +1814,7 @@ static int arm_smmu_write_reg_sync(struct arm_smmu_device *smmu, u32 val,
 }
 
 /* GBPA is "special" */
-static int __init arm_smmu_update_gbpa(struct arm_smmu_device *smmu,
-                                       u32 set, u32 clr)
+static int arm_smmu_update_gbpa(struct arm_smmu_device *smmu, u32 set, u32 clr)
 {
 	int ret;
 	u32 reg, __iomem *gbpa = smmu->base + ARM_SMMU_GBPA;
@@ -1995,10 +1994,35 @@ err_free_evtq_irq:
 	return ret;
 }
 
+static int arm_smmu_enable_irqs(struct arm_smmu_device *smmu)
+{
+	int ret;
+	u32 irqen_flags = IRQ_CTRL_EVTQ_IRQEN | IRQ_CTRL_GERROR_IRQEN;
+
+	if ( smmu->features & ARM_SMMU_FEAT_PRI )
+		irqen_flags |= IRQ_CTRL_PRIQ_IRQEN;
+
+	/* Enable interrupt generation on the SMMU */
+	ret = arm_smmu_write_reg_sync(smmu, irqen_flags,
+				      ARM_SMMU_IRQ_CTRL, ARM_SMMU_IRQ_CTRLACK);
+	if ( ret )
+	{
+		dev_warn(smmu->dev, "failed to enable irqs\n");
+		return ret;
+	}
+
+	return 0;
+}
+
+/*
+ * Probe-time only: request host IRQs and, when available, program the SMMU's
+ * MSI doorbells. Resume does not restore the SMMU *_IRQ_CFGn MSI registers,
+ * so any host suspend support must treat the active MSI IRQ path as
+ * unsupported until that restore path exists.
+ */
 static int __init arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
 {
 	int ret, irq;
-	u32 irqen_flags = IRQ_CTRL_EVTQ_IRQEN | IRQ_CTRL_GERROR_IRQEN;
 
 	/* Disable IRQs first */
 	ret = arm_smmu_write_reg_sync(smmu, 0, ARM_SMMU_IRQ_CTRL,
@@ -2028,22 +2052,7 @@ static int __init arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
 		}
 	}
 
-	if (smmu->features & ARM_SMMU_FEAT_PRI)
-		irqen_flags |= IRQ_CTRL_PRIQ_IRQEN;
-
-	/* Enable interrupt generation on the SMMU */
-	ret = arm_smmu_write_reg_sync(smmu, irqen_flags,
-				      ARM_SMMU_IRQ_CTRL, ARM_SMMU_IRQ_CTRLACK);
-	if (ret) {
-		dev_warn(smmu->dev, "failed to enable irqs\n");
-		goto err_free_irqs;
-	}
-
 	return 0;
-
-err_free_irqs:
-	arm_smmu_free_irqs(smmu);
-	return ret;
 }
 
 static int arm_smmu_device_disable(struct arm_smmu_device *smmu)
@@ -2057,7 +2066,7 @@ static int arm_smmu_device_disable(struct arm_smmu_device *smmu)
 	return ret;
 }
 
-static int __init arm_smmu_device_reset(struct arm_smmu_device *smmu)
+static int arm_smmu_device_reset(struct arm_smmu_device *smmu)
 {
 	int ret;
 	u32 reg, enables;
@@ -2163,17 +2172,9 @@ static int __init arm_smmu_device_reset(struct arm_smmu_device *smmu)
 		}
 	}
 
-	ret = arm_smmu_setup_irqs(smmu);
-	if (ret) {
-		dev_err(smmu->dev, "failed to setup irqs\n");
+	ret = arm_smmu_enable_irqs(smmu);
+	if ( ret )
 		return ret;
-	}
-
-	/* Initialize tasklets for threaded IRQs*/
-	tasklet_init(&smmu->evtq_irq_tasklet, arm_smmu_evtq_tasklet, smmu);
-	tasklet_init(&smmu->priq_irq_tasklet, arm_smmu_priq_tasklet, smmu);
-	tasklet_init(&smmu->combined_irq_tasklet, arm_smmu_combined_irq_tasklet,
-				 smmu);
 
 	/* Enable the SMMU interface, or ensure bypass */
 	if (disable_bypass) {
@@ -2181,20 +2182,16 @@ static int __init arm_smmu_device_reset(struct arm_smmu_device *smmu)
 	} else {
 		ret = arm_smmu_update_gbpa(smmu, 0, GBPA_ABORT);
 		if (ret)
-			goto err_free_irqs;
+			return ret;
 	}
 	ret = arm_smmu_write_reg_sync(smmu, enables, ARM_SMMU_CR0,
 				      ARM_SMMU_CR0ACK);
 	if (ret) {
 		dev_err(smmu->dev, "failed to enable SMMU interface\n");
-		goto err_free_irqs;
+		return ret;
 	}
 
 	return 0;
-
-err_free_irqs:
-	arm_smmu_free_irqs(smmu);
-	return ret;
 }
 
 static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu)
@@ -2558,10 +2555,23 @@ static int __init arm_smmu_device_probe(struct platform_device *pdev)
 	if (ret)
 		goto out_free;
 
+	ret = arm_smmu_setup_irqs(smmu);
+	if ( ret )
+	{
+		dev_err(smmu->dev, "failed to setup irqs\n");
+		goto out_free;
+	}
+
+	/* Initialize tasklets for threaded IRQs*/
+	tasklet_init(&smmu->evtq_irq_tasklet, arm_smmu_evtq_tasklet, smmu);
+	tasklet_init(&smmu->priq_irq_tasklet, arm_smmu_priq_tasklet, smmu);
+	tasklet_init(&smmu->combined_irq_tasklet, arm_smmu_combined_irq_tasklet,
+				smmu);
+
 	/* Reset the device */
 	ret = arm_smmu_device_reset(smmu);
 	if (ret)
-		goto out_free;
+		goto out_free_irqs;
 
 	/*
 	 * Keep a list of all probed devices. This will be used to query
@@ -2575,6 +2585,8 @@ static int __init arm_smmu_device_probe(struct platform_device *pdev)
 
 	return 0;
 
+out_free_irqs:
+	arm_smmu_free_irqs(smmu);
 
 out_free:
 	arm_smmu_free_structures(smmu);
@@ -2855,6 +2867,104 @@ static void arm_smmu_iommu_xen_domain_teardown(struct domain *d)
 	xfree(xen_domain);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+static void arm_smmu_reset_for_suspend_rollback(struct arm_smmu_device *smmu)
+{
+	int ret = arm_smmu_device_reset(smmu);
+
+	if ( ret )
+		dev_err(smmu->dev, "Failed to reset during suspend rollback: %d\n",
+				ret);
+}
+
+static int arm_smmu_suspend(void)
+{
+	struct arm_smmu_device *smmu;
+	int ret = 0;
+
+	list_for_each_entry(smmu, &arm_smmu_devices, devices)
+	{
+		/* Abort all transactions before disable to avoid spurious bypass */
+		ret = arm_smmu_update_gbpa(smmu, GBPA_ABORT, 0);
+		if ( ret )
+			goto fail;
+
+		ret = arm_smmu_write_reg_sync(smmu, 0, ARM_SMMU_IRQ_CTRL,
+					ARM_SMMU_IRQ_CTRLACK);
+		if ( ret )
+		{
+			dev_err(smmu->dev, "Timed-out while disabling SMMU irqs\n");
+			goto fail;
+		}
+
+		/* Disable the SMMU via CR0.EN and all queues except CMDQ */
+		ret = arm_smmu_write_reg_sync(smmu, CR0_CMDQEN, ARM_SMMU_CR0,
+					ARM_SMMU_CR0ACK);
+		if ( ret )
+		{
+			dev_err(smmu->dev, "Timed-out while disabling smmu\n");
+			goto fail;
+		}
+
+		/*
+		 * At this point the translation interface is disabled and the
+		 * SMMU won't access translation/config structures, even
+		 * speculatively, as per the IHI0070 spec (section 6.3.9.6).
+		 * CMDQ is still enabled so that a CMD_SYNC can complete any
+		 * previously issued commands.
+		 */
+
+		/* Ensure all previously issued commands have completed. */
+		ret = arm_smmu_cmdq_issue_sync(smmu);
+		if ( ret )
+		{
+			dev_err(smmu->dev, "Timed-out waiting for pending commands\n");
+			goto fail;
+		}
+
+		/* Disable everything */
+		ret = arm_smmu_device_disable(smmu);
+		if ( ret )
+			goto fail;
+
+		dev_dbg(smmu->dev, "Suspended smmu\n");
+	}
+
+	return 0;
+
+ fail:
+	/* Reset the device that failed as well as any already-suspended ones. */
+	arm_smmu_reset_for_suspend_rollback(smmu);
+
+	list_for_each_entry_continue_reverse(smmu, &arm_smmu_devices, devices)
+		arm_smmu_reset_for_suspend_rollback(smmu);
+
+	return ret;
+}
+
+static void arm_smmu_resume(void)
+{
+	int ret;
+	struct arm_smmu_device *smmu;
+
+	list_for_each_entry(smmu, &arm_smmu_devices, devices)
+	{
+		dev_dbg(smmu->dev, "Resuming device\n");
+
+		/*
+		 * The reset will re-initialize all the base addresses, queues,
+		 * prod and cons maintained within struct arm_smmu_device as well as
+		 * re-enable the interrupts.
+		 */
+		ret = arm_smmu_device_reset(smmu);
+		if ( ret )
+			panic("SMMUv3: %s: Failed to reset during resume: %d\n",
+			      dev_name(smmu->dev), ret);
+	}
+}
+#endif
+
 static const struct iommu_ops arm_smmu_iommu_ops = {
 	.page_sizes		= PAGE_SIZE_4K,
 	.init			= arm_smmu_iommu_xen_domain_init,
@@ -2867,6 +2977,10 @@ static const struct iommu_ops arm_smmu_iommu_ops = {
 	.unmap_page		= arm_iommu_unmap_page,
 	.dt_xlate		= arm_smmu_dt_xlate,
 	.add_device		= arm_smmu_add_device,
+#ifdef CONFIG_SYSTEM_SUSPEND
+	.suspend		= arm_smmu_suspend,
+	.resume			= arm_smmu_resume,
+#endif
 };
 
 static __init int arm_smmu_dt_init(struct dt_device_node *dev,
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 17:48:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 17:48:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315651.1585368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VM-0001MZ-7t; Thu, 21 May 2026 17:48:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315651.1585368; Thu, 21 May 2026 17:48:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VM-0001M8-44; Thu, 21 May 2026 17:48:20 +0000
Received: by outflank-mailman (input) for mailman id 1315651;
 Thu, 21 May 2026 17:48:18 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ7VK-00017d-Jq
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:48:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ7VK-003wjj-0Q
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:48:18 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f455d-e002-0a2a0a5209dd-0a2a4507b53c-2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:17 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f4561-229c-0a2a45070019-d155802be131-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:17 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-488a8ca4aadso63009745e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:48:17 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d8e24bsm74565925e9.10.2026.05.21.10.48.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 10:48:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779385697; x=1779990497; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vJhOSVjOo3e4ttnIxYNTbaGwn5HUF03ETdQ3xyz7eZQ=;
        b=DLCQSlV7sth1ZFQoBDU2Htmzxb9j5N3RobZTnwTdortmqySURauDKbE6RyedDshiXE
         ExP1yHJJhrwHs1blqCVRaKpaFC1PdxXjzt9KMIaIXNuWu+OXkRvhwdHpUHxmf9L3QA2E
         S287CD1ljmr9eJWCkUIc+OguDnes+ZeVj0UcyntZmPfbsdpezTOk5pcm+qWV2Ubf3w9c
         xYfnIdcOGhRmNfYGkNyBepOSacwResgcaR+MpmsFej7BETrRC887KBHZ0wiXrwg3ux/1
         u2ATMOHAAihEUE0P5GtMeKUeMduWfxK5wfRWcOWBTsteDg+exb6Sv3DB7glC83F4lQQN
         bsWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779385697; x=1779990497;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=vJhOSVjOo3e4ttnIxYNTbaGwn5HUF03ETdQ3xyz7eZQ=;
        b=d8ChgT0FcW9CbsVHafmz61xCTIPVinJpl6gCq7S6o8wDQnzgWGSNkuB/8jSE2NHjSX
         9caL6vjgnJ1PkS0MZQQzRq2u6HLkmVmq4lXmpEmRh9UrMTPcEjJKm/cY7xBIfzDrrf/F
         hUH7LjiAEyg9CKI0vckofB12kjOMc/aESh7h0dzvaSF0MRd2RbTavnQKjoJyZuR882sx
         Isv6qrQKsrIfy68JnNAhiTUP9LgJePI9+J4MXvnd9NmrcY5gw7OsFLO+zjdTr/ez59j4
         A7tYtfgW0KaWOSr5IkApSU8PpNNavWzBLO4qe5pResR2YB70xpZ/ZOIQBl4OpwCwX/hF
         P6CQ==
X-Gm-Message-State: AOJu0Yyl5A+rSalqTkX1ZpA9gK810jzNu/iounWWKpHw7ePJzLrms4kZ
	M8pfn4mOtaGNZnKgKXZAjJ5Fnj29fDtw+v7rrWoVQWiSYPLPQU8dWtS3dFcmLA3H
X-Gm-Gg: Acq92OHNV4UZ4c2EfE931cxOmebsHVonwsYAVOBX6KFzndtuLFl8bpOdifIzSbCcSax
	HcKWzNpKXspKWf9sS15ayh02EcV7zPBgmdRT8mBB91oKm615NIm1DP/W2LNmUHmSurOp9/yqsjC
	EPC6i3uwa/zgW0nZkbA+gZqS6EslY55wS2IxKe9V4/YYp5SJdb0uJfNsQmx94PMWE6uSk5Cz/qE
	dXC06EA8hOZF76UMJ3e7XfP59R+s4FC/FydNlS33vQSn8EbcF+xwGXVq/f7jLTMFCeCrj2pF/QO
	9UZei91/A+ZeMPfnAbUUn789H2SLyUQQWe1I9DVGiOvCMOn26RPEeKMH6/Yq3EiryUB1+w0wuOV
	A/twgPppy7CBd65Dlz/iDD9+99w9+u0ub5S1xoKTOuPesKBoRWdQqcpTzC8RSKDO0gtkyAecZ/u
	dl9u972gwbHolfkMF+PlKlW+eBw/aJrOUhc4pI
X-Received: by 2002:a05:600c:4690:b0:490:402f:324d with SMTP id 5b1f17b1804b1-490402f34b6mr10884925e9.29.1779385697115;
        Thu, 21 May 2026 10:48:17 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v10 02/13] xen/arm: gic-v2: Implement GIC suspend/resume functions
Date: Thu, 21 May 2026 20:45:20 +0300
Message-ID: <ae553923955259dae7d680d427fca36824657ecf.1779385072.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779385072.git.mykola_kvach@epam.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1779385697-22573C48-1E81D96B/0/0
X-purgate-type: clean
X-purgate-size: 13521

From: Mirela Simonovic <mirela.simonovic@aggios.com>

System suspend may lead to a state where GIC would be powered down.
Therefore, Xen should save/restore the context of GIC on suspend/resume.

Note that the context consists of states of registers which are
controlled by the hypervisor. Other GIC registers which are accessible
by guests are saved/restored on context switch.

Transient physical SGI pending state (GICD_CPENDSGIRn/GICD_SPENDSGIRn)
is intentionally excluded. CPU-interface active-priority state is also
not restored across suspend/resume. Xen reaches the final suspend path
at a quiescent point, so there is no active-priority execution context
to replay after resume. Enforce this with a runtime check after
disabling the CPU interface: if any implemented GICC_APRn word is still
non-zero, restore GICC_CTLR and abort suspend with -EBUSY.

This does not apply to distributor active state. With GICv2 EOImode==1,
EOIR only drops the interrupt priority; final deactivation is a separate
step. For guest-routed interrupts, Xen can have already EOIed the physical
IRQ while deactivation is still pending on the vGIC/GICV path. Therefore
GICD_ISACTIVER is preserved as architectural in-flight interrupt state.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V10:
- Limit GICC_APR<n> active-priority checks to APR bits visible from
  the Xen CPU-interface view.
- Avoid touching reserved GICD_IPRIORITYR/GICD_ITARGETSR words when the
  last implemented interrupt block is partial.
- Restore distributor configuration before restoring interrupt enable
  state, so GICD_ICFGR is written while the corresponding interrupts are
  disabled.

Changes in V9:
- Skip saving/restoring GICD_ITARGETSR0..7 because SGI/PPI target
  registers hold no state (read-only on MP, RAZ/WI on UP).
- Add a runtime GICC_APRn quiescence check after disabling the CPU
  interface, and restore GICC_CTLR before returning -EBUSY.

Changes in V8:
- disable cpu interface + distributor before suspend
- change 0xffffffff to GENMASK;
- cosmetic changes;

Changes in V7:
- Allocate one contiguous memory block for the GICv2 dist suspend context.
- gicv2_resume() no longer unconditionally re-enables the distributor/CPU
  interface; it now writes back the saved CTLR values as-is.
- gicv2_alloc_context() now returns 0 on success and panics on failure,
  since suspend context allocation is not recoverable.
---
 xen/arch/arm/gic-v2.c          | 226 +++++++++++++++++++++++++++++++++
 xen/arch/arm/gic.c             |  29 +++++
 xen/arch/arm/include/asm/gic.h |  12 ++
 3 files changed, 267 insertions(+)

diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
index 43a379fdda..a0ef6ffc7f 100644
--- a/xen/arch/arm/gic-v2.c
+++ b/xen/arch/arm/gic-v2.c
@@ -1108,6 +1108,223 @@ static int gicv2_iomem_deny_access(struct domain *d)
     return iomem_deny_access(d, mfn, mfn + nr - 1);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+/* This struct represents block of 32 IRQs */
+struct irq_block {
+    uint32_t icfgr[2]; /* 2 registers of 16 IRQs each */
+    uint32_t ipriorityr[8];
+    uint32_t isenabler;
+    uint32_t isactiver;
+    uint32_t itargetsr[8];
+};
+
+/* GICv2 registers to be saved/restored on system suspend/resume */
+struct gicv2_context {
+    /* GICC context */
+    struct cpu_ctx {
+        uint32_t ctlr;
+        uint32_t pmr;
+        uint32_t bpr;
+    } cpu;
+
+    /* GICD context */
+    struct dist_ctx {
+        uint32_t ctlr;
+        /* Includes banked SGI/PPI state for the boot CPU. */
+        struct irq_block *irqs;
+    } dist;
+};
+
+static struct gicv2_context gic_ctx;
+
+#define GICV2_NR_APRS          4
+#define GICV2_APR_BITS_PER_REG 32U
+
+static int gicv2_check_active_priorities(uint32_t bpr)
+{
+    unsigned int i, apr_bits, nr_aprs;
+
+    /*
+     * Xen writes GICC_BPR to 0 during CPU init and does not change it. Per
+     * IHI0048B.b, a write below the implementation minimum reads back as the
+     * minimum supported BPR value. Table 4-47 maps that Xen-visible BPR value
+     * to the visible GICC_APR<n> bits. Avoid reading APR registers outside
+     * that visible range.
+     *
+     * This covers both GICv2 with and without Security Extensions.
+     */
+    apr_bits = 1U << (7 - (bpr & 0x7));
+    nr_aprs = DIV_ROUND_UP(apr_bits, GICV2_APR_BITS_PER_REG);
+
+    ASSERT(nr_aprs <= GICV2_NR_APRS);
+
+    for ( i = 0; i < nr_aprs; i++ )
+    {
+        unsigned int bits = min(GICV2_APR_BITS_PER_REG,
+                                apr_bits - i * GICV2_APR_BITS_PER_REG);
+        uint32_t mask = GENMASK(bits - 1, 0);
+        uint32_t apr = readl_gicc(GICC_APR + i * 4) & mask;
+
+        if ( !apr )
+            continue;
+
+        printk(XENLOG_ERR "GICv2: suspend aborted: GICC_APR%u=%#08x\n",
+               i, apr);
+        return -EBUSY;
+    }
+
+    return 0;
+}
+
+static int gicv2_suspend(void)
+{
+    unsigned int i, blocks = DIV_ROUND_UP(gicv2_info.nr_lines, 32);
+    int ret;
+
+    /* Save GICC_CTLR configuration. */
+    gic_ctx.cpu.ctlr = readl_gicc(GICC_CTLR);
+
+    /* Quiesce the GIC CPU interface before suspend. */
+    gicv2_cpu_disable();
+
+    gic_ctx.cpu.bpr = readl_gicc(GICC_BPR);
+
+    /*
+     * Check the active-priority state for the group Xen drives through the
+     * CPU interface. GICC_CTL_ENABLE enables Group 0 without SecurityExtn and
+     * Group 1 in Xen's Non-secure view with SecurityExtn, and in both cases
+     * the relevant state is visible through GICC_APRn. The APR layout is
+     * implementation-defined, so only test the bits visible from Xen's CPU
+     * interface view instead of reading every possible APR register.
+     */
+    ret = gicv2_check_active_priorities(gic_ctx.cpu.bpr);
+    if ( ret )
+    {
+        writel_gicc(gic_ctx.cpu.ctlr, GICC_CTLR);
+        return ret;
+    }
+
+    gic_ctx.cpu.pmr = readl_gicc(GICC_PMR);
+
+    /* Save GICD configuration */
+    gic_ctx.dist.ctlr = readl_gicd(GICD_CTLR);
+    writel_gicd(0, GICD_CTLR);
+
+    for ( i = 0; i < blocks; i++ )
+    {
+        struct irq_block *irqs = gic_ctx.dist.irqs + i;
+        size_t j, off = i * sizeof(irqs->isenabler);
+        size_t nr_regs = ARRAY_SIZE(irqs->ipriorityr);
+
+        if ( i == blocks - 1 )
+            nr_regs = DIV_ROUND_UP(gicv2_info.nr_lines - i * 32, 4);
+
+        irqs->isenabler = readl_gicd(GICD_ISENABLER + off);
+
+        /*
+         * Save distributor active state as part of the hypervisor-owned
+         * physical interrupt state. In GICv2 EOImode==1, EOIR only drops the
+         * priority; final deactivation is separate. For guest-routed
+         * interrupts, Xen may have EOIed the physical IRQ while the guest/vGIC
+         * side still owns the deactivate step. Therefore GICD_ISACTIVER can
+         * legitimately remain set even though transient SGI pending state and
+         * CPU-interface active-priority state are expected to be quiesced here.
+         */
+        irqs->isactiver = readl_gicd(GICD_ISACTIVER + off);
+
+        off = i * sizeof(irqs->ipriorityr);
+        for ( j = 0; j < nr_regs; j++ )
+            irqs->ipriorityr[j] = readl_gicd(GICD_IPRIORITYR + off + j * 4);
+
+        /*
+         * GICD_ITARGETSR0..7 cover SGIs/PPIs and hold no state to save:
+         * they are read-only on multiprocessor implementations and RAZ/WI
+         * on uniprocessor implementations.
+         */
+        if ( i )
+        {
+            off = i * sizeof(irqs->itargetsr);
+            for ( j = 0; j < nr_regs; j++ )
+                irqs->itargetsr[j] = readl_gicd(GICD_ITARGETSR + off + j * 4);
+        }
+
+        off = i * sizeof(irqs->icfgr);
+        for ( j = 0; j < ARRAY_SIZE(irqs->icfgr); j++ )
+            irqs->icfgr[j] = readl_gicd(GICD_ICFGR + off + j * 4);
+    }
+
+    return 0;
+}
+
+static void gicv2_resume(void)
+{
+    unsigned int i, blocks = DIV_ROUND_UP(gicv2_info.nr_lines, 32);
+
+    gicv2_cpu_disable();
+    /* Disable distributor */
+    writel_gicd(0, GICD_CTLR);
+
+    for ( i = 0; i < blocks; i++ )
+    {
+        struct irq_block *irqs = gic_ctx.dist.irqs + i;
+        size_t j, off = i * sizeof(irqs->isenabler);
+        size_t nr_regs = ARRAY_SIZE(irqs->ipriorityr);
+
+        if ( i == blocks - 1 )
+            nr_regs = DIV_ROUND_UP(gicv2_info.nr_lines - i * 32, 4);
+
+        writel_gicd(GENMASK(31, 0), GICD_ICENABLER + off);
+
+        off = i * sizeof(irqs->icfgr);
+        for ( j = 0; j < ARRAY_SIZE(irqs->icfgr); j++ )
+            writel_gicd(irqs->icfgr[j], GICD_ICFGR + off + j * 4);
+
+        off = i * sizeof(irqs->ipriorityr);
+        for ( j = 0; j < nr_regs; j++ )
+            writel_gicd(irqs->ipriorityr[j], GICD_IPRIORITYR + off + j * 4);
+
+        /*
+         * GICD_ITARGETSR0..7 cover SGIs/PPIs and hold no state to save:
+         * they are read-only on multiprocessor implementations and RAZ/WI
+         * on uniprocessor implementations.
+         */
+        if ( i )
+        {
+            off = i * sizeof(irqs->itargetsr);
+            for ( j = 0; j < nr_regs; j++ )
+                writel_gicd(irqs->itargetsr[j], GICD_ITARGETSR + off + j * 4);
+        }
+
+        off = i * sizeof(irqs->isenabler);
+        writel_gicd(irqs->isenabler, GICD_ISENABLER + off);
+
+        writel_gicd(GENMASK(31, 0), GICD_ICACTIVER + off);
+        writel_gicd(irqs->isactiver, GICD_ISACTIVER + off);
+    }
+
+    /* Restore distributor control state. */
+    writel_gicd(gic_ctx.dist.ctlr, GICD_CTLR);
+
+    /* Restore GIC CPU interface configuration */
+    writel_gicc(gic_ctx.cpu.pmr, GICC_PMR);
+    writel_gicc(gic_ctx.cpu.bpr, GICC_BPR);
+
+    /* Enable GIC CPU interface */
+    writel_gicc(gic_ctx.cpu.ctlr, GICC_CTLR);
+}
+
+static void __init gicv2_alloc_context(void)
+{
+    uint32_t blocks = DIV_ROUND_UP(gicv2_info.nr_lines, 32);
+
+    gic_ctx.dist.irqs = xzalloc_array(struct irq_block, blocks);
+    if ( !gic_ctx.dist.irqs )
+        panic("Failed to allocate memory for GICv2 suspend context\n");
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 #ifdef CONFIG_ACPI
 static unsigned long gicv2_get_hwdom_extra_madt_size(const struct domain *d)
 {
@@ -1312,6 +1529,11 @@ static int __init gicv2_init(void)
 
     spin_unlock(&gicv2.lock);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+    /* Allocate memory to be used for saving GIC context during the suspend */
+    gicv2_alloc_context();
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
     return 0;
 }
 
@@ -1355,6 +1577,10 @@ static const struct gic_hw_operations gicv2_ops = {
     .map_hwdom_extra_mappings = gicv2_map_hwdom_extra_mappings,
     .iomem_deny_access   = gicv2_iomem_deny_access,
     .do_LPI              = gicv2_do_LPI,
+#ifdef CONFIG_SYSTEM_SUSPEND
+    .suspend             = gicv2_suspend,
+    .resume              = gicv2_resume,
+#endif /* CONFIG_SYSTEM_SUSPEND */
 };
 
 /* Set up the GIC */
diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index ee75258fc3..7727ffed5a 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -432,6 +432,35 @@ int gic_iomem_deny_access(struct domain *d)
     return gic_hw_ops->iomem_deny_access(d);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+int gic_suspend(void)
+{
+    /* Must be called by boot CPU#0 with interrupts disabled */
+    ASSERT(!local_irq_is_enabled());
+    ASSERT(!smp_processor_id());
+
+    if ( !gic_hw_ops->suspend || !gic_hw_ops->resume )
+        return -ENOSYS;
+
+    return gic_hw_ops->suspend();
+}
+
+void gic_resume(void)
+{
+    /*
+     * Must be called by boot CPU#0 with interrupts disabled after gic_suspend
+     * has returned successfully.
+     */
+    ASSERT(!local_irq_is_enabled());
+    ASSERT(!smp_processor_id());
+    ASSERT(gic_hw_ops->resume);
+
+    gic_hw_ops->resume();
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 static int cpu_gic_callback(struct notifier_block *nfb,
                             unsigned long action,
                             void *hcpu)
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.h
index ff22dea40d..fbf0d69edd 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -301,6 +301,12 @@ extern int gicv_setup(struct domain *d);
 extern void gic_save_state(struct vcpu *v);
 extern void gic_restore_state(struct vcpu *v);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+/* Suspend/resume */
+extern int gic_suspend(void);
+extern void gic_resume(void);
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 /* SGI (AKA IPIs) */
 enum gic_sgi {
     GIC_SGI_EVENT_CHECK,
@@ -444,6 +450,12 @@ struct gic_hw_operations {
     int (*iomem_deny_access)(struct domain *d);
     /* Handle LPIs, which require special handling */
     void (*do_LPI)(unsigned int lpi);
+#ifdef CONFIG_SYSTEM_SUSPEND
+    /* Save GIC configuration due to the system suspend */
+    int (*suspend)(void);
+    /* Restore GIC configuration due to the system resume */
+    void (*resume)(void);
+#endif /* CONFIG_SYSTEM_SUSPEND */
 };
 
 extern const struct gic_hw_operations *gic_hw_ops;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 17:48:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 17:48:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315652.1585381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VN-0001kn-Iu; Thu, 21 May 2026 17:48:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315652.1585381; Thu, 21 May 2026 17:48:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VN-0001kc-Fn; Thu, 21 May 2026 17:48:21 +0000
Received: by outflank-mailman (input) for mailman id 1315652;
 Thu, 21 May 2026 17:48:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ7VL-0001KV-Vl
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:48:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ7VL-00BluR-BU
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:48:19 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f452f-bab6-0a2a0a5309dd-0a2a4508d226-22
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:19 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f4563-63b5-0a2a45080019-d155802ec0fe-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:19 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-4903f7a90d1so3694485e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:48:19 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d8e24bsm74565925e9.10.2026.05.21.10.48.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 10:48:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779385699; x=1779990499; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EXJbJP8MzENl4VsPg33jnVV005m1Xgxxkwr1fiQgkQc=;
        b=MFB5BzYskP1KR+6tv0f1isY05Mp9DKgnKJRYvOMYXovJzMcne26mQXnOrow4Sb5vqk
         WhZqHZdF1whj6NoKQwFuyp7L2uWnRGG2grpmpKlPMU+BpmVTpRcZdlbEV5qimhMXmR2k
         RMxrtSPL+r0IW4+eWy9Nq/nyGSSyZyaB/rizIkk9phhmjdzqdkv6+YR5bvQFsTmsiQHh
         ZMkbrn8dRWjxkL2QrPNSozQVe7ZbFJApnZQN94s1rHVAByQV53rtiL8bKu2/Eq78gJ7S
         kzei0ZH7vfKVcqe3CPy+UISiNhEvsTbcuj1pSUIu2w4UsJMpVfYrDXARUT9c+d+OcvzK
         cvPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779385699; x=1779990499;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=EXJbJP8MzENl4VsPg33jnVV005m1Xgxxkwr1fiQgkQc=;
        b=cu/Xxnak14t1m/ZBG7gX4ZlRZtJDpbOK84hSdFQgKGBlGzUwMT4LIagAT5wUH21fNU
         wi1j3mfAfKKn/kIFdav6+D9QQyuPxk+toYaJn+qHn5n4J+hIYpcvre0WRhVXIY86pc1A
         F7c4TwqW0uMSEltcWeot2lhx7mEGgfQopkMWXdlcDh20Gye+IVFS/8gZs6R/BzctdGBv
         MXNYTeU/Ppk7g9beQQy26fgIlmc59m3/Tm6UyPpsRxFrsimxNqGS1Ee7g+iuCGQj4Rny
         uYrW+g0iH8TRLVlclOpAA4Hbq6K02J9MI6ViKSYWRsr3XL143yKoEzFp0vIh67rIw2mp
         OeDw==
X-Gm-Message-State: AOJu0Ywu56JUuNuUJ1DNmKn8nk7CU5/ecMSonXavch50+WwIqCXOGnmI
	At8yZsCw5A8nWqNcQBgzWhTl/55N4eQ0vj1dvnY92ejoT+/jaGzJ4P3cPwUqtiEk
X-Gm-Gg: Acq92OGYmij+pPEHf0w1mHbNgKKtHYzSBXnAeVyscHZzOou+VJMGFAxyh9DDG7Wz/OL
	AbrMkgu7oV80gO7AIVVXGw07fhmqI3kpSNLg6mUGGQib2loWYb5zoI6itfdDgI+xIRR/bGLrQCo
	lNB0kN0Me1rP0NmbTrQ4jBSqwCSWMvZVxaqmOrQ6M5+uOdDLpahho4z4irI/TZEvXL5svOQR0XT
	aLA7oZhWt8GJ3VicgvGK0F1INSL3y7GuH1Vy/sLz5FuszrrTPh8FQqJz9o1vBZTP6agF59RaEyz
	/i7aFCslG2seGC0GJtUzVNmmOdlF8BbdUsWQ/ZVr1wlKooMk2mwYH+uPtdsdXddfTpXtLQUyisE
	fj8hv22Wx0YFDo+5qKrfai386w/l9/Eseo88Sd0k2mXxpMzqw2pHO7cSObNQv2g/ifJkQTYCCpq
	DO5DdrdVA+tBcvxQJiL33GggEzXA==
X-Received: by 2002:a05:600c:858c:b0:490:778:4fec with SMTP id 5b1f17b1804b1-490360f28f7mr43420375e9.33.1779385698610;
        Thu, 21 May 2026 10:48:18 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v10 03/13] xen/arm: gic-v3: tolerate retained redistributor LPI state across CPU_OFF
Date: Thu, 21 May 2026 20:45:21 +0300
Message-ID: <34155c346c31582699f269d7c50f7dcd8aedafa9.1779385072.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779385072.git.mykola_kvach@epam.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1779385699-C5784DB1-414DB1AA/0/0
X-purgate-type: clean
X-purgate-size: 9602

From: Mykola Kvach <mykola_kvach@epam.com>

PSCI does not guarantee that a GICv3 redistributor is powered down across
CPU_OFF -> CPU_ON.

DEN0022F.b says CPU_OFF powers down the calling core (5.5) and CPU_ON
brings the core back with a defined initial CPU state (5.6, 6.4).
However, PSCI leaves interrupt migration and GIC re-initialization to the
supervisory software/firmware stack: the caller must migrate interrupts
away before CPU_OFF (5.5.2), and the execution context that is lost in a
powerdown state must be saved and restored by software (6.8). PSCI also
calls out GIC management explicitly in 6.8, including retargeting SPIs,
preventing PPIs/SGIs from targeting a powered down CPU, and reinitializing
the CPU interface after CPU_ON.

This matches the GIC architecture. IHI0069H.b Chapter 11.1 requires the PE
and CPU interface to share a power domain, but explicitly allows the
associated redistributor, distributor, and ITS to remain powered while the
PE and CPU interface are off. All other GIC power-management behavior is
IMPLEMENTATION DEFINED. DEN0050D Chapter 4.2, "Generic Interrupt
Controller (GIC)", says the GICv3 redistributor may live either in the AP
core power domain or in a relatively always-on parent domain. So after
CPU_OFF -> CPU_ON a secondary CPU can legitimately come back to a live
redistributor with GICR_CTLR.EnableLPIs still set.

Handle that case in the LPI setup path instead of assuming a fully reset
redistributor.

The LPI path needs special care because the GIC spec makes redistributor
LPI state sticky and partially implementation defined. IHI0069H.b 5.1.1
and 5.1.2 say that changing GICR_PROPBASER or GICR_PENDBASER while
GICR_CTLR.EnableLPIs == 1 is UNPREDICTABLE. After clearing EnableLPIs,
software must wait for GICR_CTLR.RWP == 0 before touching the pending
table. The architecture also permits implementations where, once
EnableLPIs has been set, clearing it again is not guaranteed to work.
Where an ITS is present, the spec strongly recommends moving LPIs to
another redistributor before clearing EnableLPIs.

Because of that, treat a retained EnableLPIs state as valid when the
redistributor still points at Xen's expected PROPBASER/PENDBASER tables.
Only try to clear EnableLPIs when the retained configuration does not
match Xen's state, and wait for RWP before reprogramming the tables.

This is also consistent with platform firmware reality: PSCI and the GIC
architecture allow platform-specific redistributor power handling, and not
all platform firmware implementations force a full redistributor power-off
through implementation-defined controls during CPU_OFF. Xen therefore needs
to tolerate retained redistributor state on secondary CPU bring-up.

Keep gicv3_populate_rdist() resident as well, because gicv3_cpu_init()
reuses it on secondary CPU bring-up after init.

Tested using Xen's non-boot CPU disable/enable path on Arm
FVP_Base_RevC-2xAEMvA, both with and without:
-C gic_distributor.allow-LPIEN-clear=1
-C gic_distributor.GICR-clear-enable-supported=1
and on Orange Pi 5.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes in v10:
- Drop unrelated gicv3_populate_rdist() printk() format cleanups to keep
  the patch focused on retained redistributor LPI state.

Changes in v9:
- move gicv3_do_wait_for_rwp prototype from its related header to gic.h
- drop __init from gicv3_populate_rdist(), which is reused on secondary
  CPU bring-up after boot
- changed print format for smp_processor_id in gicv3_populate_rdist func
- cosmetic changes
---
 xen/arch/arm/gic-v3-lpi.c      | 77 +++++++++++++++++++++++++++++++++-
 xen/arch/arm/gic-v3.c          | 15 ++++---
 xen/arch/arm/include/asm/gic.h |  4 ++
 3 files changed, 90 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/gic-v3-lpi.c b/xen/arch/arm/gic-v3-lpi.c
index 9ee338edc2..847da26ff7 100644
--- a/xen/arch/arm/gic-v3-lpi.c
+++ b/xen/arch/arm/gic-v3-lpi.c
@@ -81,6 +81,13 @@ static DEFINE_PER_CPU(struct lpi_redist_data, lpi_redist);
 #define MAX_NR_HOST_LPIS   (lpi_data.max_host_lpi_ids - LPI_OFFSET)
 #define HOST_LPIS_PER_PAGE      (PAGE_SIZE / sizeof(union host_lpi))
 
+#define GICR_PROPBASER_XEN_MASK  GENMASK_ULL(51, 12)
+/*
+ * For retained redistributor state, match the pending table by address only.
+ * Attribute bits such as PTZ may not read back with the programmed value.
+ */
+#define GICR_PENDBASER_XEN_MASK  GENMASK_ULL(51, 16)
+
 static union host_lpi *gic_get_host_lpi(uint32_t plpi)
 {
     union host_lpi *block;
@@ -296,6 +303,60 @@ static int gicv3_lpi_set_pendtable(void __iomem *rdist_base)
     return 0;
 }
 
+static uint64_t gicv3_lpi_expected_proptable(void)
+{
+    return virt_to_maddr(lpi_data.lpi_property);
+}
+
+static uint64_t gicv3_lpi_expected_pendtable(void)
+{
+    return virt_to_maddr(this_cpu(lpi_redist).pending_table);
+}
+
+static bool gicv3_lpi_tables_match(void __iomem *rdist_base)
+{
+    uint64_t propbase, pendbase;
+
+    if ( !lpi_data.lpi_property || !this_cpu(lpi_redist).pending_table )
+        return false;
+
+    propbase = readq_relaxed(rdist_base + GICR_PROPBASER);
+    pendbase = readq_relaxed(rdist_base + GICR_PENDBASER);
+
+    return ((propbase & GICR_PROPBASER_XEN_MASK) ==
+            (gicv3_lpi_expected_proptable() & GICR_PROPBASER_XEN_MASK)) &&
+           ((pendbase & GICR_PENDBASER_XEN_MASK) ==
+            (gicv3_lpi_expected_pendtable() & GICR_PENDBASER_XEN_MASK));
+}
+
+static int gicv3_lpi_disable_lpis(void __iomem *rdist_base)
+{
+    uint32_t reg = readl_relaxed(rdist_base + GICR_CTLR);
+    int ret;
+
+    if ( !(reg & GICR_CTLR_ENABLE_LPIS) )
+        return 0;
+
+    writel_relaxed(reg & ~GICR_CTLR_ENABLE_LPIS, rdist_base + GICR_CTLR);
+
+    /*
+     * The spec only guarantees programmability when we have observed the bit
+     * cleared. Where clearing is supported, RWP must reach 0 before touching
+     * PROPBASER/PENDBASER again.
+     */
+    wmb();
+
+    ret = gicv3_do_wait_for_rwp(rdist_base, GICR_CTLR_RWP);
+    if ( ret )
+        return ret;
+
+    reg = readl_relaxed(rdist_base + GICR_CTLR);
+    if ( reg & GICR_CTLR_ENABLE_LPIS )
+        return -EBUSY;
+
+    return 0;
+}
+
 /*
  * Tell a redistributor about the (shared) property table, allocating one
  * if not already done.
@@ -374,7 +435,21 @@ int gicv3_lpi_init_rdist(void __iomem * rdist_base)
     /* Make sure LPIs are disabled before setting up the tables. */
     reg = readl_relaxed(rdist_base + GICR_CTLR);
     if ( reg & GICR_CTLR_ENABLE_LPIS )
-        return -EBUSY;
+    {
+        if ( gicv3_lpi_tables_match(rdist_base) )
+            return -EBUSY;
+
+        ret = gicv3_lpi_disable_lpis(rdist_base);
+        if ( ret == -EBUSY )
+        {
+            printk(XENLOG_ERR
+                   "GICv3: CPU%u: LPIs still enabled with unexpected redistributor tables\n",
+                   smp_processor_id());
+            return -EINVAL;
+        }
+        if ( ret )
+            return ret;
+    }
 
     ret = gicv3_lpi_set_pendtable(rdist_base);
     if ( ret )
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index dfd5d44603..a2553e647e 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -275,7 +275,7 @@ static void gicv3_enable_sre(void)
 }
 
 /* Wait for completion of a distributor/redistributor change */
-static void gicv3_do_wait_for_rwp(void __iomem *base, uint32_t rwp_bit)
+int gicv3_do_wait_for_rwp(void __iomem *base, uint32_t rwp_bit)
 {
     uint32_t val;
     bool timeout = false;
@@ -299,17 +299,22 @@ static void gicv3_do_wait_for_rwp(void __iomem *base, uint32_t rwp_bit)
     } while ( 1 );
 
     if ( timeout )
+    {
         dprintk(XENLOG_ERR, "RWP timeout\n");
+        return -ETIMEDOUT;
+    }
+
+    return 0;
 }
 
 static void gicv3_dist_wait_for_rwp(void)
 {
-    gicv3_do_wait_for_rwp(GICD, GICD_CTLR_RWP);
+    (void)gicv3_do_wait_for_rwp(GICD, GICD_CTLR_RWP);
 }
 
 static void gicv3_redist_wait_for_rwp(void)
 {
-    gicv3_do_wait_for_rwp(GICD_RDIST_BASE, GICR_CTLR_RWP);
+    (void)gicv3_do_wait_for_rwp(GICD_RDIST_BASE, GICR_CTLR_RWP);
 }
 
 static void gicv3_wait_for_rwp(int irq)
@@ -861,7 +866,7 @@ static bool gicv3_enable_lpis(void)
     return true;
 }
 
-static int __init gicv3_populate_rdist(void)
+static int gicv3_populate_rdist(void)
 {
     int i;
     uint32_t aff;
@@ -929,7 +934,7 @@ static int __init gicv3_populate_rdist(void)
                     gicv3_set_redist_address(rdist_addr, procnum);
 
                     ret = gicv3_lpi_init_rdist(ptr);
-                    if ( ret && ret != -ENODEV )
+                    if ( ret && ret != -ENODEV && ret != -EBUSY )
                     {
                         printk("GICv3: CPU%d: Cannot initialize LPIs: %u\n",
                                smp_processor_id(), ret);
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.h
index fbf0d69edd..84e146b832 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -301,6 +301,10 @@ extern int gicv_setup(struct domain *d);
 extern void gic_save_state(struct vcpu *v);
 extern void gic_restore_state(struct vcpu *v);
 
+#ifdef CONFIG_GICV3
+int gicv3_do_wait_for_rwp(void __iomem *base, uint32_t rwp_bit);
+#endif
+
 #ifdef CONFIG_SYSTEM_SUSPEND
 /* Suspend/resume */
 extern int gic_suspend(void);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 17:48:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 17:48:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315649.1585355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VK-00017m-Pb; Thu, 21 May 2026 17:48:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315649.1585355; Thu, 21 May 2026 17:48:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VK-00017f-M0; Thu, 21 May 2026 17:48:18 +0000
Received: by outflank-mailman (input) for mailman id 1315649;
 Thu, 21 May 2026 17:48:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ7VJ-00017S-73
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:48:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ7VI-00BluR-Ii
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:48:16 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f4548-bab6-0a2a0a5309dd-0a2a4505c21c-12
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:16 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f4560-aaa8-0a2a45050019-d1558031e459-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:16 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-490388fd0dbso9362045e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:48:16 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d8e24bsm74565925e9.10.2026.05.21.10.48.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 10:48:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779385696; x=1779990496; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=x4159oRt/HJtjR5zuxsLlhFZFH8epi6PhD6RsyzvFnc=;
        b=WbDRSTHRYqK0RVfTIzObla3Tb9Hz9PCFOZ5kLtXmA3BNgZNP8xLcEhUosn4Swn+9PH
         qXwg430HH4JHIC3FuWL6oqw4ewH5wbtC+Yaj+X61/KSJxnSGIVyTTD/xbsMb48R+CM6l
         dNR+hiGrnr7WA5UWlfRHATqMtWy0xGc4E3DY2UGnADDEaEsu6nkoIoulvsBKvMk2Ijam
         +YuSDU39TY72R9u58giECrDi0FRq/B5OLKPNo6fgwVU0TUm7PVC7lzdyc+IMVLvvcrd0
         83yiq8y5xj6nPTB18SBnaP084hXwkCuf/s9SouFokQ5ZC6wRrpf67OR4BaDvlFUlXl2W
         fv7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779385696; x=1779990496;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=x4159oRt/HJtjR5zuxsLlhFZFH8epi6PhD6RsyzvFnc=;
        b=sr8Hafkqa4w0CXc7UpdVLbhMe9SKA5fsTc1sAqPCQks0DmQtwb4LpbwEmvo/SgH4E/
         AwVhm3CJNx+fPXYbTHTxFmaSWOI6cKXuDBS0Gs0QXd66WNH2iFEuJYeId0aqHXrjMs9Z
         GwgBNI5GXG8PP+mCr/p75AIvtoOKszY09nTMJ7zwz2JkZRPTtmjcBvBqjWQTrKJbYocN
         dxoX1viSQQTIguKicVwIhYW4huSpS9cFaPnBQZ4bQpEDJSTVjI4yXuegExvScEvNIwD9
         WGPBAgFHHzk5Jhc+5tnTTyKqWBuGEcFDf9SFBTs3JbcpAWR9brHwvG4eK2AE54XWlNDl
         xQoQ==
X-Gm-Message-State: AOJu0Yz1/GBl2Oy3lpMs/BiG59IYLO2XI27z5o0XtQyaDca5rHX4hja9
	1EnxI3MtCJ6NehPOv1x1p7oAz9rLtFf15lvAYMtlLAeJB0LngoZ5JIckOhiqfWY9
X-Gm-Gg: Acq92OEfydtEaFk6VpyV/x0wKWAZYRuUDOUDDxQJlp2ARRfhFxpY9YahE/J/+N1+iJi
	ccea5LD44+xHIHMeerXU5rIvJ0K1PStfCGorbQj4NKX1jilYDqOsIiQ9dxM6MhNnFqYJoZ0IbTC
	Fc1CeKhiSrE+wJ5+C8AsKIPp1bJXngoJk4ok364NohzwQhkXegk7D7hLoy7UzP85960RHuFlvo4
	WQ/UVGUADGBrCC07PBd5oh2y5Ygwgs0JW3u9vabYsVQbNkgw0UlF/oPQElAu1xmK9+vMTWlNH4t
	HJ/S9gLvf5wVR30Gx4pqeYq2DvK/ua6ojvCYUNINciF8uoPBA9itJoSDz+45e/1rGsHY/uIBoI1
	3gk1YpGgykmowsF2jA61jOzfqgICbA4y7AUVpod2sDdnTR9GxtP9qejtI+lIu2vpeo60HKKUPU9
	Cu9DPu8/Z0Z/RXtrS3whofxETXYA==
X-Received: by 2002:a05:600c:32af:b0:48a:65ad:1881 with SMTP id 5b1f17b1804b1-49036056678mr38944315e9.13.1779385695369;
        Thu, 21 May 2026 10:48:15 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Rahul Singh <rahul.singh@arm.com>
Subject: [PATCH v10 00/13] Add initial Xen Suspend-to-RAM support on ARM64
Date: Thu, 21 May 2026 20:45:18 +0300
Message-ID: <cover.1779385072.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1779385696-E3B8E443-52E1A399/0/0
X-purgate-type: clean
X-purgate-size: 8294

From: Mykola Kvach <mykola_kvach@epam.com>

This is part 2 of the ARM Xen system suspend/resume patch series, based
on earlier work by Mirela Simonovic and Mykyta Poturai.

Part 1, covering guest suspend functionality, is already in mainline.

NOTE: Host-wide suspend/resume support is guarded by CONFIG_SYSTEM_SUSPEND,
which can currently only be selected when UNSUPPORTED is set, and thus the
host suspend backend is neither enabled by default nor built in supported
configurations. The separate HAS_HWDOM_SYSTEM_SUSPEND policy bit only changes
how ARM treats SHUTDOWN_suspend from the hardware domain; it does not enable
the host-wide suspend backend by itself.

This version is ported to Xen master and includes extensive improvements
based on reviewer feedback. The patch series restructures code to improve
robustness and maintainability, and implements initial ARM64 host-wide
Suspend-to-RAM support driven by control-domain PSCI SYSTEM_SUSPEND
requests. vPSCI also exposes SYSTEM_SUSPEND as a domain suspend operation
for all domains; attempt-time host-suspend policy failures are reported as
PSCI_DENIED rather than hidden through PSCI_FEATURES.

Key updates in this series:
 - Introduced architecture-specific suspend/resume infrastructure
 - Integrated GICv2/GICv3 suspend and resume, including memory-backed context
   save/restore with error handling
 - Added time and IRQ suspend/resume hooks, ensuring correct timer/interrupt
   state across suspend cycles
 - Implemented proper PSCI SYSTEM_SUSPEND invocation and version checks
 - Added vPSCI SYSTEM_SUSPEND policy for domain suspend and host-wide
   control-domain sequencing
 - Improved state management and recovery in error cases during suspend/resume
 - Added support for IPMMU-VMSA/SMMUv3 context save/restore
 - Added support for GICv3 eSPI registers context save/restore
 - Added support for ITS registers context save/restore
---

TODOs:
 - Enable "xl suspend" support on ARM
 - Add suspend/resume CI test for ARM (QEMU if feasible)
 - PCI suspend ?
---

Detailed changelogs can be found in each patch.

Changes in v10:
- Clarify the vPSCI SYSTEM_SUSPEND policy summary: keep SYSTEM_SUSPEND
  advertised once implemented and return PSCI_DENIED, rather than
  PSCI_NOT_SUPPORTED, for attempt-time host-suspend policy failures.
- Tighten GICv2/GICv3 suspend/resume based on review feedback: avoid
  reserved interrupt register ranges, check visible active-priority state,
  restore configuration before enable state, and re-enable the redistributor
  before restoring CPU/virtual interface state on abort paths.
- Refine ITS resume so MAPC is replayed only for ITS-backed collections and
  clarify the collection-ID assumptions.
- Rework IPMMU and SMMUv3 resume/suspend handling, including root-before-cache
  IPMMU restore ordering and disabling SMMU interrupt generation before
  suspend.
- Save and restore CNTHCTL_EL2 in the arm64 CPU resume context and simplify
  the resume trampoline/context hand-off.
- Re-apply boot CPU errata/workaround handling after SYSTEM_SUSPEND and move
  set_init_ttbr() declaration to asm/mmu/mm.h.
- Update patch 12 details: shorten SYSTEM_SUSPEND blocker logs, use %pd for
  control-domain logging, mark serial_suspend_available as __ro_after_init,
  and mention the xen/suspend.h struct domain forward declaration.

Changes in v9:
- Split the control-domain SYSTEM_SUSPEND flow so host availability,
  runtime blockers and domain-readiness checks are handled separately from
  the host suspend backend.
- Gate vPSCI SYSTEM_SUSPEND on cached host PSCI support and Xen runtime
  suspend blockers, and log firmware support during initialization.
- Fold the arm64 resume trampoline into the CPU context save/restore patch
  and use asm-offsets-generated RESUME_CTX_* definitions for the assembly
  save/restore path.
- Tighten the GICv2/GICv3/ITS/IPMMU/SMMUv3 suspend/resume paths based on
  review feedback, including state-save/restore fixes and safer failure
  handling.
- Reorder the host suspend/resume phases so timer and GIC state are
  handled with local IRQs disabled and restored before console/IOMMU
  resume.

Changes in v8:
- Rebased to latest master and refreshed the series accordingly.
- Added a new GICv3 patch to tolerate retained redistributor LPI state
  across CPU_OFF/CPU_ON.
- GICv2 suspend now disables the CPU interface and distributor before
  saving state.
- GICv3 suspend/resume fixes the redistributor base used for LPI state.
- ITS and SMMUv3 suspend/resume paths were tightened, with safer
  restore/rollback handling and stricter fatal-error handling.
- System suspend now checks that all domains are already in
  SHUTDOWN_suspend before proceeding, and renames the hardware-domain
  suspend capability/helper for clearer semantics.
- Fixed alignment/cleanup issues in the low-level suspend/resume code.

Changes in v7:
- Timer helper renamed/clarified; virtual/hyper/phys handling documented.
- GICv2 uses one context block; restore saved CTLR; panic on alloc failure.
- GICv3/eSPI/ITS always suspend/resume; restore LPI/eSPI; rdist timeout.
- IPMMU suspend context allocated before PCI setup.
- System suspend: control domain drives host suspend.
- Dropped v6 IRQ descriptor restore patches; use setup_irq and re-register
  local IRQs on resume instead.

For earlier changelogs, please refer to the previous cover letters.

Mirela Simonovic (5):
  xen/arm: Add suspend and resume timer helpers
  xen/arm: gic-v2: Implement GIC suspend/resume functions
  xen/arm64: Save/restore CPU context across SYSTEM_SUSPEND
  xen/arm: Implement PSCI SYSTEM_SUSPEND call (host interface)
  xen/arm: Add host system suspend backend

Mykola Kvach (7):
  xen/arm: gic-v3: tolerate retained redistributor LPI state across
    CPU_OFF
  xen/arm: gic-v3: Implement GICv3 suspend/resume functions
  xen/arm: gic-v3: add ITS suspend/resume support
  xen/arm: tee: keep init_tee_secondary() for hotplug and resume
  xen/arm: ffa: fix notification SRI across CPU hotplug/suspend
  xen/arm: smmu-v3: add suspend/resume handlers
  xen/arm: Add vPSCI SYSTEM_SUSPEND policy

Oleksandr Tyshchenko (1):
  iommu/ipmmu-vmsa: Implement suspend/resume callbacks

 xen/arch/arm/Kconfig                     |   2 +
 xen/arch/arm/Makefile                    |   1 +
 xen/arch/arm/arm64/asm-offsets.c         |  21 +
 xen/arch/arm/arm64/head.S                | 122 ++++++
 xen/arch/arm/cpuerrata.c                 |   7 +-
 xen/arch/arm/gic-v2.c                    | 226 +++++++++++
 xen/arch/arm/gic-v3-its.c                | 146 ++++++-
 xen/arch/arm/gic-v3-lpi.c                |  80 +++-
 xen/arch/arm/gic-v3.c                    | 482 ++++++++++++++++++++++-
 xen/arch/arm/gic.c                       |  35 ++
 xen/arch/arm/include/asm/arm64/sysregs.h |   5 +
 xen/arch/arm/include/asm/cpuerrata.h     |   1 +
 xen/arch/arm/include/asm/gic.h           |  16 +
 xen/arch/arm/include/asm/gic_v3_defs.h   |   3 +
 xen/arch/arm/include/asm/gic_v3_its.h    |  28 ++
 xen/arch/arm/include/asm/mmu/mm.h        |   2 +
 xen/arch/arm/include/asm/psci.h          |   4 +
 xen/arch/arm/include/asm/suspend.h       |  37 ++
 xen/arch/arm/include/asm/time.h          |   5 +
 xen/arch/arm/mmu/smpboot.c               |   2 +-
 xen/arch/arm/psci.c                      |  38 +-
 xen/arch/arm/suspend.c                   | 210 ++++++++++
 xen/arch/arm/tee/ffa_notif.c             |  63 ++-
 xen/arch/arm/tee/tee.c                   |   2 +-
 xen/arch/arm/time.c                      |  44 ++-
 xen/arch/arm/vpsci.c                     | 120 +++++-
 xen/common/Kconfig                       |   3 +
 xen/common/domain.c                      |   7 +-
 xen/drivers/char/serial.c                |  12 +
 xen/drivers/passthrough/arm/iommu.c      |   4 +
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 323 ++++++++++++++-
 xen/drivers/passthrough/arm/smmu-v3.c    | 190 +++++++--
 xen/include/xen/list.h                   |  14 +
 xen/include/xen/serial.h                 |   1 +
 xen/include/xen/suspend.h                |   2 +
 35 files changed, 2154 insertions(+), 104 deletions(-)
 create mode 100644 xen/arch/arm/suspend.c

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 17:48:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 17:48:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315650.1585364 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VM-0001Kd-0G; Thu, 21 May 2026 17:48:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315650.1585364; Thu, 21 May 2026 17:48:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VL-0001KW-TT; Thu, 21 May 2026 17:48:19 +0000
Received: by outflank-mailman (input) for mailman id 1315650;
 Thu, 21 May 2026 17:48:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ7VK-00017Y-58
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:48:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ7VJ-00BluR-H0
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:48:17 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f452f-bab6-0a2a0a5309dd-0a2a4508d226-20
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:17 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f4561-63b5-0a2a45080019-d155802ea49f-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:17 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-48fde648a71so46135795e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:48:17 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d8e24bsm74565925e9.10.2026.05.21.10.48.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 10:48:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779385696; x=1779990496; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=j/x0rT1oB7OVwr8zqPawvId6h6lac1Z+SScMfAw/LeE=;
        b=YyJkKqDayI8kdzVi71V7ZuwhhCLG6Y/GAT5pIEq5yRLBzSMo3OVyOKFFymvEZ2pfUR
         /tpXkIbtYYgBAfeY76HB7favewF10esXqN/csiUfe9SFtJi9bZuljZ2fiWVVbOpLnT33
         W+1dDKA7Sw7zRczy6oRl+Gh4LIXVovBKYVKeKA0d7b9pgfTI1HsAjn3EyMzrC+M3UPT7
         VgOieAsFeaai2/ZvQt+954Fi4XCGObUt25w8+pUSaP7mZTxS9t+D1pyzToVFNX5fkCS2
         LTnyNugOlKB05L8vSqrAbFIAb0spfn5axsNaK2+IussbnodGmrXzVtONi+JSfN4X5t2b
         0HyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779385696; x=1779990496;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=j/x0rT1oB7OVwr8zqPawvId6h6lac1Z+SScMfAw/LeE=;
        b=DPlB7un9N5C6rl3pio5XfSnSKdZtQTOKxaT+wxAtEyyhNB/26h6Fq+Qit3XRIqqv6s
         2yfuNTdHV0CBtd6PlWHoeJ1AyQJUdSIwX4lO5UvV/6ted6GRt/iDAU40u07LsWR7IS4K
         ftKTTwcJdaNML2nw/N8eoDKYXQNNiPSWD8uCf36+zPrftlyWuXF4fGrw6r5WR4J3JSX4
         EVpmflfm7yUbJqxRvAqrpOFdF/Jns9XiQn8WR2mJoldNXmCZtWb1DNJVbAa1yjp8n4fc
         wY4mI1oMX1Tzq6/WUH+Dl289lAhXYtrrT7JQj4pWFNn1CU918xpmS3/gqI6wypKVqucF
         WW9A==
X-Gm-Message-State: AOJu0YzYeY8jU/n9GfyT/5c7c1dsu63e8N2tU2fFXcDK3p0yWfMUIlsP
	HbCqhSIZ71rDBwzMzl4orouZDhQINJRU+gN56AaiWVkSFqE3hiHJ7Ew+VDxW5DKA
X-Gm-Gg: Acq92OEJg2wAInyKszr5eWQoLqJvwsIXsPKZsqnzLLvbTjQ/tfTdVl+wLb08WRrBxsT
	p5vT7NlsRmpdPDyW5pVSmEQXfFw7fcTXfXNTowjhWJHhmd62xiY8Jk4RuMTaYsV1yQ3ckB6TXPL
	481F8ZnipOMpvKJz488XwUJNdpGlFU437CIhYPvNzb4cUjeSbzfG8hUIcbeDqvgoN78aPpmR+6F
	CJOBWj8bM3qsGBneqKiWQ6gdqktRNYA9V0J2Pqg3XXj15j/oVlqVjnMVyN19X7puz/9rnO4SH3+
	yg/1nHT1q1acLD8BguLn3PnE6p8mCWEZA4SBYUAiS3XXEK99Ts2AObaLPYSG42jDSOrWLlOrDPr
	3GsGE+pbRdJZzt0kZxHc/pnxl0pp7VjyjkHNW0N6gFzJjaYhv9adI1J5SFm9raZFISMWdksoTHa
	cEgeXikld6wVHLEGE1Mhlc7RHK1g==
X-Received: by 2002:a05:600c:490f:b0:48a:5339:a46 with SMTP id 5b1f17b1804b1-49036090799mr29458735e9.9.1779385696352;
        Thu, 21 May 2026 10:48:16 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v10 01/13] xen/arm: Add suspend and resume timer helpers
Date: Thu, 21 May 2026 20:45:19 +0300
Message-ID: <f9e13441918d2fc830d37281d2cf635151512a04.1779385072.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779385072.git.mykola_kvach@epam.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1779385697-BC766DB1-F3241B45/0/0
X-purgate-type: clean
X-purgate-size: 5064

From: Mirela Simonovic <mirela.simonovic@aggios.com>

Timer interrupts must be disabled while the system is suspended to prevent
spurious wake-ups. Suspending timers in Xen consists of disabling the
physical timer and the hypervisor timer on the current CPU. The virtual
timer does not need explicit handling here, as it is already disabled on
vCPU context switch and its state is restored per-vCPU on the next context
restore.

Resuming consists of raising TIMER_SOFTIRQ, which prompts the generic
timer code to reprogram the hypervisor timer with the correct timeout.

Xen does not use or expose the physical timer, so it remains disabled
across suspend/resume.

Introduce a new helper, disable_phys_hyp_timers(), to encapsulate disabling
of the physical and hypervisor timers.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Julien Grall <jgrall@amazon.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes in V7:
  - Dropped EL1/EL2 wording; use "physical timer" and "hypervisor timer"
  - Renamed helper to disable_phys_hyp_timers() to reflect its actual scope
  - Clarified virtual timer handling (disabled on vCPU switch-out, restored
    on context restore) and added comments in suspend/resume paths
  - Added resume comment explaining which timers are restored by
    TIMER_SOFTIRQ
---
 xen/arch/arm/include/asm/time.h |  5 ++++
 xen/arch/arm/time.c             | 44 ++++++++++++++++++++++++++++-----
 2 files changed, 43 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/include/asm/time.h b/xen/arch/arm/include/asm/time.h
index c194dbb9f5..9313b157ea 100644
--- a/xen/arch/arm/include/asm/time.h
+++ b/xen/arch/arm/include/asm/time.h
@@ -105,6 +105,11 @@ void preinit_xen_time(void);
 
 void force_update_vcpu_system_time(struct vcpu *v);
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+void time_suspend(void);
+void time_resume(void);
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 #endif /* __ARM_TIME_H__ */
 /*
  * Local variables:
diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index 6955b2788f..fff8e4aca6 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -296,6 +296,14 @@ static void check_timer_irq_cfg(unsigned int irq, const char *which)
 static DEFINE_PER_CPU_READ_MOSTLY(struct irqaction, irq_hyp);
 static DEFINE_PER_CPU_READ_MOSTLY(struct irqaction, irq_virt);
 
+/* Disable physical and hypervisor timers on the current CPU */
+static inline void disable_phys_hyp_timers(void)
+{
+    WRITE_SYSREG(0, CNTP_CTL_EL0);    /* Physical timer disabled */
+    WRITE_SYSREG(0, CNTHP_CTL_EL2);   /* Hypervisor's timer disabled */
+    isb();
+}
+
 /* Set up the timer interrupt on this CPU */
 void init_timer_interrupt(void)
 {
@@ -306,9 +314,7 @@ void init_timer_interrupt(void)
     WRITE_SYSREG64(0, CNTVOFF_EL2);     /* No VM-specific offset */
     /* Do not let the VMs program the physical timer, only read the physical counter */
     WRITE_SYSREG(CNTHCTL_EL2_EL1PCTEN, CNTHCTL_EL2);
-    WRITE_SYSREG(0, CNTP_CTL_EL0);    /* Physical timer disabled */
-    WRITE_SYSREG(0, CNTHP_CTL_EL2);   /* Hypervisor's timer disabled */
-    isb();
+    disable_phys_hyp_timers();
 
     hyp_action->name = "hyptimer";
     hyp_action->handler = htimer_interrupt;
@@ -333,9 +339,7 @@ void init_timer_interrupt(void)
  */
 static void deinit_timer_interrupt(void)
 {
-    WRITE_SYSREG(0, CNTP_CTL_EL0);    /* Disable physical timer */
-    WRITE_SYSREG(0, CNTHP_CTL_EL2);   /* Disable hypervisor's timer */
-    isb();
+    disable_phys_hyp_timers();
 
     release_irq(timer_irq[TIMER_HYP_PPI], NULL);
     release_irq(timer_irq[TIMER_VIRT_PPI], NULL);
@@ -375,6 +379,34 @@ void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
     /* XXX update guest visible wallclock time */
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+void time_suspend(void)
+{
+    /* CNTV already disabled by virt_timer_save() during vcpu context switch. */
+    disable_phys_hyp_timers();
+}
+
+void time_resume(void)
+{
+    /*
+     * Raising TIMER_SOFTIRQ triggers generic timer code to reprogram the
+     * hypervisor timer with the correct timeout (not known here).
+     *
+     * Xen doesn't use or expose the physical timer, so it remains disabled
+     * across suspend/resume.
+     *
+     * The virtual timer state is restored per-vCPU on the next context switch.
+     *
+     * No further action is needed to restore timekeeping after power down,
+     * since the system counter is unaffected. See ARM DDI 0487 L.a, D12.1.2
+     * "The system counter must be implemented in an always-on power domain."
+     */
+    raise_softirq(TIMER_SOFTIRQ);
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 static int cpu_time_callback(struct notifier_block *nfb,
                              unsigned long action,
                              void *hcpu)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 17:48:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 17:48:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315660.1585449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VV-0003Z8-K4; Thu, 21 May 2026 17:48:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315660.1585449; Thu, 21 May 2026 17:48:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VV-0003Xe-68; Thu, 21 May 2026 17:48:29 +0000
Received: by outflank-mailman (input) for mailman id 1315660;
 Thu, 21 May 2026 17:48:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ7VS-0002wG-R4
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:48:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ7VS-00Bm0f-6P
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:48:26 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f4548-bab6-0a2a0a5309dd-0a2a4505c21c-22
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:26 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f456a-aaa8-0a2a45050019-d1558035e4d5-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:26 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-490388fd0dbso9363275e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:48:26 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d8e24bsm74565925e9.10.2026.05.21.10.48.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 10:48:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779385705; x=1779990505; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9Q1Fsw7I5VcRKOn6Vwcp1VtMdJtga40n5Ed4Emmc+5c=;
        b=ESrXHDSk2Wp+wtQZjrqs10S9BA6OApnII7mkPPZgSepvnZ5G4ccEsamXkbWXQhyr0R
         PQyYLS6r76Tg8RW9Q2ZCPLYmz3o8ls4GpyuLyGU2wfXrq9usw/uRRWHi15bd09qwEVjV
         HFJRkLSDGA9wMhDaQhp+27sBdjbCCYi04axHOYAdbg9IK6erVOKH45LAvh+1mozQ9e29
         xbW5FVaPy9LE5DYnmsffW63NgYxOEbQj2GyH6U+uDFYys91VozbYSwSQ6k5c/vdANEOM
         S6L1LNh06LPbcSsHnD+jNJ9hLLpHA4gAKm8pJs//T2Fo4ow24/vzruQVZErJdA42brCp
         9vSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779385705; x=1779990505;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=9Q1Fsw7I5VcRKOn6Vwcp1VtMdJtga40n5Ed4Emmc+5c=;
        b=X45QHlx5lPmD3gjwFDT8DJNYK3/NecWebvZpABWu40wdm1qvyrjHrLSQCZox2+WWHH
         ewJMlzKcnVGYy/ij0ZRFfIAuh1WcK1oSgAhRRAloJPxJPoVUjSzXprAo8uH96qYkxzEs
         mhPsvKbg9qxkBX6uoE6tCzVHxb1lwAliUYdtnARC4lJX5DgFlWPdnPHMo63R92lagi+d
         T2L9sa5xMhGn2hS7GMkSP4vW2Uv/85pAt/Clt8DuAVldl/kA5XmWeFzFophlh+3gUjK2
         Tz+XrES7nMjSBsxZVYw/SN2l8Q7Ap5MwnamV/KQns3qelo/13h5LSYfzNDxOn3xJGpQ7
         YKDQ==
X-Gm-Message-State: AOJu0Yx5YtoSvKF1wsVwrZVcyjQRH7jS6/XW7cpkau/vObF/J1kwIS6w
	2Al9eax0oxkUCaQpiyAZh9PL4DA7YkBXakvO+eB5/midF1bEbWrBYo2EJ4zXtHgG
X-Gm-Gg: Acq92OFIy2lQCalrg58/G+mSrr5eiAnRuHf92PeFCNjAzQzBFClisOcVWF6s5gXyBp6
	IXP6r6HNNXG3kOscqbMPg2P8QHOl6P1fl3O0Lo0n9bc8H6gyS37o87GP5WzgrwRucvqWcm8dBjj
	czXP2hEMCyia/yyhaRT5eMDEf/+XRUQpsDHzfuezgPcje1wDfR+8PO8CMzpIxuuYANo71C+o1Yj
	7CwEbbqDU8gNNQCH5tysa6nA5jojqj9+UCV2TugKvSbc1GCGKjRUOiVGR22PXvQId47zDcAwZvF
	Fkn0+PShXsP8sJxbYrgVJWVrmj/aQqbLwiMoKv1G8KsIQdUsW/yesKDAYNmzdSfIZvjVDALClHG
	dgLphhVTreCdIeyiz/6uzpEqshXw3doOxMaHcLxpW6yHyu1IgVM12P8//aDLmb6AuE8NAiFu+pP
	mz7wSJKmUCLNwEzLWifII3PVpBsXvlPmnwbawh
X-Received: by 2002:a05:600c:8b77:b0:48e:82af:d9 with SMTP id 5b1f17b1804b1-490360bbdf9mr66528855e9.29.1779385705515;
        Thu, 21 May 2026 10:48:25 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v10 11/13] xen/arm: Implement PSCI SYSTEM_SUSPEND call (host interface)
Date: Thu, 21 May 2026 20:45:29 +0300
Message-ID: <0682352c405b0abfbe2c7f59e4fc1dd51810286c.1779385072.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779385072.git.mykola_kvach@epam.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1779385706-DAB68443-529CE09A/0/0
X-purgate-type: clean
X-purgate-size: 4081

From: Mirela Simonovic <mirela.simonovic@aggios.com>

Invoke PSCI SYSTEM_SUSPEND to finalize Xen's suspend sequence on ARM64
platforms. Pass the Xen resume entry point (hyp_resume) to EL3 together
with a zero context ID, matching Linux.

This patch wires up only the host-side PSCI SYSTEM_SUSPEND invocation.
The resume trampoline and context restore are provided by earlier patches
in the series.

Only enable this path when CONFIG_SYSTEM_SUSPEND is set and PSCI
advertises SYSTEM_SUSPEND via PSCI_FEATURES.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes in v9:
- cache SYSTEM_SUSPEND support using PSCI_FEATURES and gate the host call
  on the cached capability
- keep the cached SYSTEM_SUSPEND capability read-only after init
- log whether firmware reports SYSTEM_SUSPEND support
- pass an explicit zero context ID in the SYSTEM_SUSPEND call
- drop the stale note claiming hyp_resume is still a stub
---
 xen/arch/arm/include/asm/psci.h |  1 +
 xen/arch/arm/psci.c             | 31 ++++++++++++++++++++++++++++++-
 2 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
index 48a93e6b79..bb3c73496e 100644
--- a/xen/arch/arm/include/asm/psci.h
+++ b/xen/arch/arm/include/asm/psci.h
@@ -23,6 +23,7 @@ int call_psci_cpu_on(int cpu);
 void call_psci_cpu_off(void);
 void call_psci_system_off(void);
 void call_psci_system_reset(void);
+int call_psci_system_suspend(void);
 
 /* Range of allocated PSCI function numbers */
 #define	PSCI_FNUM_MIN_VALUE                 _AC(0,U)
diff --git a/xen/arch/arm/psci.c b/xen/arch/arm/psci.c
index b6860a7760..e05dae1133 100644
--- a/xen/arch/arm/psci.c
+++ b/xen/arch/arm/psci.c
@@ -17,23 +17,27 @@
 #include <asm/cpufeature.h>
 #include <asm/psci.h>
 #include <asm/acpi.h>
+#include <asm/suspend.h>
 
 /*
  * While a 64-bit OS can make calls with SMC32 calling conventions, for
  * some calls it is necessary to use SMC64 to pass or return 64-bit values.
- * For such calls PSCI_0_2_FN_NATIVE(x) will choose the appropriate
+ * For such calls PSCI_*_FN_NATIVE(x) will choose the appropriate
  * (native-width) function ID.
  */
 #ifdef CONFIG_ARM_64
 #define PSCI_0_2_FN_NATIVE(name)    PSCI_0_2_FN64_##name
+#define PSCI_1_0_FN_NATIVE(name)    PSCI_1_0_FN64_##name
 #else
 #define PSCI_0_2_FN_NATIVE(name)    PSCI_0_2_FN32_##name
+#define PSCI_1_0_FN_NATIVE(name)    PSCI_1_0_FN32_##name
 #endif
 
 uint32_t psci_ver;
 uint32_t smccc_ver;
 
 static uint32_t psci_cpu_on_nr;
+static bool __ro_after_init has_psci_system_suspend;
 
 #define PSCI_RET(res)   ((int32_t)(res).a0)
 
@@ -60,6 +64,25 @@ void call_psci_cpu_off(void)
     }
 }
 
+int call_psci_system_suspend(void)
+{
+#ifdef CONFIG_SYSTEM_SUSPEND
+    struct arm_smccc_res res;
+
+    if ( !has_psci_system_suspend )
+        return PSCI_NOT_SUPPORTED;
+
+    /* Context ID is unused for the Xen resume path. */
+    arm_smccc_smc(PSCI_1_0_FN_NATIVE(SYSTEM_SUSPEND), __pa(hyp_resume), 0,
+                  &res);
+    return PSCI_RET(res);
+#else
+    dprintk(XENLOG_WARNING,
+            "SYSTEM_SUSPEND not supported (CONFIG_SYSTEM_SUSPEND disabled)\n");
+    return PSCI_NOT_SUPPORTED;
+#endif
+}
+
 void call_psci_system_off(void)
 {
     if ( psci_ver > PSCI_VERSION(0, 1) )
@@ -223,9 +246,15 @@ int __init psci_init(void)
 
     psci_init_smccc();
 
+    has_psci_system_suspend =
+        psci_features(PSCI_1_0_FN_NATIVE(SYSTEM_SUSPEND)) == 0;
+
     printk(XENLOG_INFO "Using PSCI v%u.%u\n",
            PSCI_VERSION_MAJOR(psci_ver), PSCI_VERSION_MINOR(psci_ver));
 
+    printk(XENLOG_DEBUG "PSCI SYSTEM_SUSPEND is %ssupported by firmware\n",
+           has_psci_system_suspend ? "" : "not ");
+
     return 0;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 17:48:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 17:48:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315662.1585459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VX-0003w6-9F; Thu, 21 May 2026 17:48:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315662.1585459; Thu, 21 May 2026 17:48:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VW-0003u3-Ui; Thu, 21 May 2026 17:48:30 +0000
Received: by outflank-mailman (input) for mailman id 1315662;
 Thu, 21 May 2026 17:48:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ7VU-0003M8-E1
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:48:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ7VT-00HNF5-Q1
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:48:27 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f4551-5cb7-0a2a0a5109dd-0a2a4503b258-18
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:27 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f456b-672d-0a2a45030019-d155802ad8d0-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:27 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-4891c00e7aeso47876575e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:48:27 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d8e24bsm74565925e9.10.2026.05.21.10.48.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 10:48:26 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779385707; x=1779990507; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xH+CdyKs4JSeNRtHkAqySvPXuG95ECPS3iRUPK1CuT4=;
        b=nYgklPOz6MJnn5IShbCtfiy9XtYB3nxnUHCRapavg59xlsP3dYol77pHGGOMPuIqWt
         rFKKaS7D6/xB1Bfbr1RhMCImqAdzhruj++qMDA0ymMX58slPaZnqrBWez3tjd6DuDxHG
         wRapnx3xIbat/Jdy1sGXdicjsll9Arr9x/3zr4nGdnyqiYi3dUCRF48POQVW0lrbjqYa
         mdB/7ysr/eEejJ8RTe0X9zafLvNqwrjGsNTW07PR7qt5ysB78v9pGspIm7A/MnRrFRK4
         NeCItqeiDcGoFI8+ls3pM2ycmvnGo3Rt2V1ut343kVo9cDRRCeEBB2XX201yR1BeHVto
         +xoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779385707; x=1779990507;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=xH+CdyKs4JSeNRtHkAqySvPXuG95ECPS3iRUPK1CuT4=;
        b=UVyYQiNRquysV2VIDxyzkQqXg4ncRw3UyqFfC31hUubeiXiFThP+ftjnSWi9spb+Bf
         /5pXpdvOasYvhDaRpb2QxzWu3Q3yeAWsfmEljDFveuC01bhkZCrU8rkMQeXbMYTojdkh
         DwFBqFIhgurXBW/p6ghLYZJ/T3nZKgvfs66AHvBU8YnFeiI6c0SKUMIZWpfOIFUCqMKi
         ytHJnRc3MYIfiSel/4SzflQ9LJfznh3XDA/if1+LflHvmAKDtLxa1UlctPHF/btYlWfM
         9CBugP6S3Yo8zDejZuKa12BXHM2ZK391b+L+7Dk8gHq1jyU2tex0eTC+zBULr1xWgUEI
         Brjg==
X-Gm-Message-State: AOJu0YxwMtF2W3mJ1g4VfeikFOgldvdp0kOiBsT8vGrihXYHMvur+fbh
	vyy9s+7BcD1DD0b7BLyCBvTFH54IFNMmqnpSUNZb9vdb1x7JvGuoKq5i4DoquekK
X-Gm-Gg: Acq92OFrFSM52+M6B+RjDPt5N+U05gfbU7GtCpV47P5nhHmd5jfyEhtq1reiBz9XkPx
	EFzRN2uU/qZ+aR6cHaMMqPBXLxftFx5wrEhxsQI6PjQZq5Pow+Y2cHIQkLY6iXLG/3gBgKD1uXB
	e23BBmbgQI/gCy5ZA443+roldcHiPzwsOhPOE74gCHztt2qzKJh8g5CAu75tMf/fdSebD2Zv0/1
	KxO+jHe1SlhvjS2nRWbtkd1xI2AhNFJbsyxo7YUzM1Dqn3ISPX3f1OiQrlNzMn+7ohFfZGZIWUl
	gYU5rKlaLYD2z/HO/OfxRgD9kqafRNIyRXJu/in22Dy+DLWnJtM9ufQvt088CPPndSRFbsP1cCp
	sZhURNR6XdSfLhaGbljvC9wO6xOIgd+OtcqpjEY1DDY9ivtQP5by7Musd5PB3Hhm6RnmHv6alFY
	gSloVrhepQOphZl/xPUVId/93lAykNdyzh0SE9
X-Received: by 2002:a05:600c:3513:b0:490:32da:30d with SMTP id 5b1f17b1804b1-4903605f0edmr56575805e9.9.1779385707107;
        Thu, 21 May 2026 10:48:27 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Rahul Singh <rahul.singh@arm.com>
Subject: [PATCH v10 12/13] xen/arm: Add vPSCI SYSTEM_SUSPEND policy
Date: Thu, 21 May 2026 20:45:30 +0300
Message-ID: <1d49511fff3ef5f77bc2d4daac00e6895c1359b1.1779385072.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779385072.git.mykola_kvach@epam.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779385707-4086B938-8B9365E2/0/0
X-purgate-type: clean
X-purgate-size: 17397

From: Mykola Kvach <mykola_kvach@epam.com>

Introduce CONFIG_HAS_HWDOM_SYSTEM_SUSPEND as an architecture-selected
capability for platforms where the hardware domain can be parked with
SHUTDOWN_suspend without calling hwdom_shutdown().

Expose PSCI SYSTEM_SUSPEND as a vPSCI operation for all domains. For
non-control domains, including the hardware domain when it is not acting
as a control domain, the call is handled as a guest/domain suspend request
and parks the domain in SHUTDOWN_suspend.

Control domains need additional sequencing because their SYSTEM_SUSPEND
request is used to coordinate host-wide suspend. A non-last awake control
domain may be parked in SHUTDOWN_suspend without requiring the host
suspend path to be available. The last awake control domain is treated as
the point where the request becomes a host-suspend request, and it may
only proceed when all non-control domains are already in SHUTDOWN_suspend
and the host suspend path is available.

Keep the control-domain sequencing and domain-readiness checks out of
PSCI_FEATURES. They are per-attempt runtime conditions rather than stable
PSCI function availability. Advertise SYSTEM_SUSPEND as implemented by
vPSCI and report attempt-time policy failures as PSCI_DENIED.

Select HAS_HWDOM_SYSTEM_SUSPEND independently from CONFIG_SYSTEM_SUSPEND
so that SHUTDOWN_suspend from the hardware domain can be treated as a
domain suspend state rather than as a hardware-domain initiated host
shutdown. This does not by itself imply that host-wide suspend is
available.

Add host_system_suspend_allowed() to combine the host PSCI SYSTEM_SUSPEND
capability with runtime blockers reported by Xen-owned subsystems. Add
runtime blockers for registered serial, IOMMU, GIC and SMMUv3 MSI IRQ
paths lacking suspend/resume support. These blockers are runtime based,
so they only apply to drivers or paths that Xen actually uses on the
platform. For SMMUv3, the blocker applies only when Xen actually uses the
MSI IRQ path, since resume does not restore the SMMU *_IRQ_CFGn MSI
registers yet.

Add a struct domain forward declaration to xen/suspend.h so the generic
header can expose arch_domain_resume() without requiring a full domain.h
include.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V10:
- Return PSCI_DENIED rather than PSCI_NOT_SUPPORTED when the last awake
  control domain cannot proceed to host suspend, keeping PSCI_FEATURES
  stable once SYSTEM_SUSPEND is advertised.
- Shorten SYSTEM_SUSPEND blocker messages and use %pd when logging the
  control domain.
- Mark serial_suspend_available as __ro_after_init.
- Mention the struct domain forward declaration added to xen/suspend.h.

Changes in V9:
- Select HAS_HWDOM_SYSTEM_SUSPEND independently from CONFIG_SYSTEM_SUSPEND
  so that hardware-domain SHUTDOWN_suspend support is not tied to
  host-wide system suspend availability.
- Add runtime host suspend blockers for Xen-owned subsystems lacking
  suspend/resume support.
- Keep vPSCI SYSTEM_SUSPEND advertised through PSCI_FEATURES and enforce
  control-domain sequencing in the call handler.
---
 xen/arch/arm/Kconfig                  |   1 +
 xen/arch/arm/gic.c                    |   6 ++
 xen/arch/arm/include/asm/psci.h       |   3 +
 xen/arch/arm/include/asm/suspend.h    |  10 ++-
 xen/arch/arm/psci.c                   |   7 ++
 xen/arch/arm/suspend.c                |  40 +++++++++
 xen/arch/arm/vpsci.c                  | 114 +++++++++++++++++++++++---
 xen/common/Kconfig                    |   3 +
 xen/common/domain.c                   |   7 +-
 xen/drivers/char/serial.c             |  12 +++
 xen/drivers/passthrough/arm/iommu.c   |   4 +
 xen/drivers/passthrough/arm/smmu-v3.c |   4 +
 xen/include/xen/serial.h              |   1 +
 xen/include/xen/suspend.h             |   2 +
 14 files changed, 201 insertions(+), 13 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 79622b46a1..54a5bfb9ae 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -19,6 +19,7 @@ config ARM
 	select HAS_ALTERNATIVE if HAS_VMAP
 	select HAS_DEVICE_TREE_DISCOVERY
 	select HAS_DOM0LESS
+	select HAS_HWDOM_SYSTEM_SUSPEND if !MPU
 	select HAS_GRANT_CACHE_FLUSH if GRANT_TABLE
 	select HAS_STACK_PROTECTOR
 	select HAS_UBSAN
diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index 7727ffed5a..60488c95b4 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -26,6 +26,7 @@
 #include <asm/device.h>
 #include <asm/io.h>
 #include <asm/gic.h>
+#include <asm/suspend.h>
 #include <asm/vgic.h>
 #include <asm/acpi.h>
 
@@ -44,6 +45,11 @@ static void __init __maybe_unused build_assertions(void)
 void register_gic_ops(const struct gic_hw_operations *ops)
 {
     gic_hw_ops = ops;
+
+#ifdef CONFIG_SYSTEM_SUSPEND
+    if ( !ops->suspend || !ops->resume )
+        host_system_suspend_disable("GIC driver lacks suspend support");
+#endif
 }
 
 static void clear_cpu_lr_mask(void)
diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
index bb3c73496e..142fa1bfe5 100644
--- a/xen/arch/arm/include/asm/psci.h
+++ b/xen/arch/arm/include/asm/psci.h
@@ -24,6 +24,9 @@ void call_psci_cpu_off(void);
 void call_psci_system_off(void);
 void call_psci_system_reset(void);
 int call_psci_system_suspend(void);
+#ifdef CONFIG_SYSTEM_SUSPEND
+bool psci_system_suspend_allowed(void);
+#endif
 
 /* Range of allocated PSCI function numbers */
 #define	PSCI_FNUM_MIN_VALUE                 _AC(0,U)
diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
index c848fc6340..50dc6e9fdf 100644
--- a/xen/arch/arm/include/asm/suspend.h
+++ b/xen/arch/arm/include/asm/suspend.h
@@ -39,7 +39,15 @@ extern struct resume_cpu_context resume_cpu_context;
 
 int prepare_resume_ctx(void);
 void hyp_resume(void);
-#endif /* CONFIG_SYSTEM_SUSPEND */
+bool host_system_suspend_allowed(void);
+void host_system_suspend_disable(const char *reason);
+
+#else /* !CONFIG_SYSTEM_SUSPEND */
+
+static inline bool host_system_suspend_allowed(void) { return false; }
+static inline void host_system_suspend_disable(const char *reason) {}
+
+#endif
 
 #endif /* ARM_SUSPEND_H */
 
diff --git a/xen/arch/arm/psci.c b/xen/arch/arm/psci.c
index e05dae1133..e9d78668fd 100644
--- a/xen/arch/arm/psci.c
+++ b/xen/arch/arm/psci.c
@@ -41,6 +41,13 @@ static bool __ro_after_init has_psci_system_suspend;
 
 #define PSCI_RET(res)   ((int32_t)(res).a0)
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+bool psci_system_suspend_allowed(void)
+{
+    return has_psci_system_suspend;
+}
+#endif
+
 int call_psci_cpu_on(int cpu)
 {
     struct arm_smccc_res res;
diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
index 6ea4a0f9cc..98ddd46a47 100644
--- a/xen/arch/arm/suspend.c
+++ b/xen/arch/arm/suspend.c
@@ -1,9 +1,49 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <asm/psci.h>
 #include <asm/suspend.h>
 
+#include <xen/lib.h>
+#include <xen/serial.h>
+
 struct resume_cpu_context resume_cpu_context;
 
+/*
+ * Non-PSCI infrastructure can make host suspend impossible even when the PSCI
+ * SYSTEM_SUSPEND conduit is present, e.g. when a Xen-owned driver has no valid
+ * suspend/resume path.
+ *
+ * This gate is checked only when the last awake control domain attempts to
+ * turn a guest SYSTEM_SUSPEND request into a host-suspend request.
+ */
+static bool host_system_suspend_runtime_allowed = true;
+
+static bool host_serial_suspend_allowed(void)
+{
+    if ( serial_suspend_supported() )
+        return true;
+
+    printk_once(XENLOG_INFO
+                "Host SYSTEM_SUSPEND blocked: serial unsupported\n");
+
+    return false;
+}
+
+bool host_system_suspend_allowed(void)
+{
+    return psci_system_suspend_allowed() &&
+           host_serial_suspend_allowed() &&
+           host_system_suspend_runtime_allowed;
+}
+
+void host_system_suspend_disable(const char *reason)
+{
+    host_system_suspend_runtime_allowed = false;
+
+    printk(XENLOG_INFO "Host SYSTEM_SUSPEND blocked: %s\n",
+           reason ? reason : "unsupported suspend/resume path");
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index ac6af6118f..0bae42c1bd 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -5,6 +5,7 @@
 
 #include <asm/current.h>
 #include <asm/domain.h>
+#include <asm/suspend.h>
 #include <asm/vgic.h>
 #include <asm/vpsci.h>
 #include <asm/event.h>
@@ -219,6 +220,89 @@ static void do_psci_0_2_system_reset(void)
     domain_shutdown(d,SHUTDOWN_reboot);
 }
 
+/*
+ * Serialise SYSTEM_SUSPEND policy decisions with the domain suspend transition,
+ * so multiple control domains cannot all observe each other as still awake.
+ */
+static DEFINE_SPINLOCK(vpsci_system_suspend_lock);
+
+static bool domain_in_suspend_state(struct domain *d)
+{
+    bool suspended;
+
+    spin_lock(&d->shutdown_lock);
+    suspended = d->is_shut_down && d->shutdown_code == SHUTDOWN_suspend;
+    spin_unlock(&d->shutdown_lock);
+
+    return suspended;
+}
+
+static int32_t domain_psci_system_suspend_policy(struct domain *d)
+{
+    struct domain *other;
+    bool last_awake_control_domain = true;
+    bool awake_non_control_domain = false;
+
+    /* Only control domains participate in sequencing policy. */
+    if ( !is_control_domain(d) )
+        return 0;
+
+    rcu_read_lock(&domlist_read_lock);
+
+    for_each_domain ( other )
+    {
+        bool suspended;
+
+        if ( other == d )
+            continue;
+
+        suspended = domain_in_suspend_state(other);
+        if ( suspended )
+            continue;
+
+        if ( is_control_domain(other) )
+        {
+            last_awake_control_domain = false;
+            break;
+        }
+
+        awake_non_control_domain = true;
+    }
+
+    rcu_read_unlock(&domlist_read_lock);
+
+    /*
+     * Another control domain is still awake. This request is only the first
+     * phase of the sequencing: park this control domain and leave the host
+     * running. Host-wide suspend gates must not block this intermediate state.
+     */
+    if ( !last_awake_control_domain )
+        return 0;
+
+    /*
+     * This is the last awake control domain. It must not be parked unless the
+     * request can proceed as a host-suspend request; otherwise Xen would lose
+     * the last domain that can coordinate the system suspend.
+     */
+    if ( awake_non_control_domain )
+    {
+        printk(XENLOG_DEBUG
+               "SYSTEM_SUSPEND denied for %pd: non-control domains awake\n",
+               d);
+        return PSCI_DENIED;
+    }
+
+    /*
+     * Host-wide gates are relevant only for the last-control-domain case. They
+     * must not block parking of a non-last control domain, but they must deny
+     * the last control domain when host suspend is not currently available.
+     */
+    if ( !host_system_suspend_allowed() )
+        return PSCI_DENIED;
+
+    return 0;
+}
+
 static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
 {
     int32_t rc;
@@ -232,10 +316,6 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
     if ( is_64bit_domain(d) && is_thumb )
         return PSCI_INVALID_ADDRESS;
 
-    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
-    if ( is_hardware_domain(d) )
-        return PSCI_NOT_SUPPORTED;
-
     /* Ensure that all CPUs other than the calling one are offline */
     domain_lock(d);
     for_each_vcpu ( d, v )
@@ -252,16 +332,29 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
     if ( rc )
         return PSCI_DENIED;
 
-    rc = domain_shutdown(d, SHUTDOWN_suspend);
+    spin_lock(&vpsci_system_suspend_lock);
+
+    rc = domain_psci_system_suspend_policy(d);
+    if ( !rc )
+    {
+        rc = domain_shutdown(d, SHUTDOWN_suspend);
+        if ( rc )
+            rc = PSCI_DENIED;
+        else
+        {
+            rctx->ctxt = ctxt;
+            rctx->wake_cpu = current;
+        }
+    }
+
+    spin_unlock(&vpsci_system_suspend_lock);
+
     if ( rc )
     {
         free_vcpu_guest_context(ctxt);
-        return PSCI_DENIED;
+        return rc;
     }
 
-    rctx->ctxt = ctxt;
-    rctx->wake_cpu = current;
-
     gprintk(XENLOG_DEBUG,
             "SYSTEM_SUSPEND requested, epoint=%#"PRIregister", cid=%#"PRIregister"\n",
             epoint, cid);
@@ -287,10 +380,9 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
     case PSCI_0_2_FN32_SYSTEM_RESET:
     case PSCI_1_0_FN32_PSCI_FEATURES:
     case ARM_SMCCC_VERSION_FID:
-        return 0;
     case PSCI_1_0_FN32_SYSTEM_SUSPEND:
     case PSCI_1_0_FN64_SYSTEM_SUSPEND:
-        return is_hardware_domain(current->domain) ? PSCI_NOT_SUPPORTED : 0;
+        return 0;
     default:
         return PSCI_NOT_SUPPORTED;
     }
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 5ff71480ee..816a1a4ecb 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -140,6 +140,9 @@ config HAS_EX_TABLE
 config HAS_FAST_MULTIPLY
 	bool
 
+config HAS_HWDOM_SYSTEM_SUSPEND
+	bool
+
 config HAS_IOPORTS
 	bool
 
diff --git a/xen/common/domain.c b/xen/common/domain.c
index bb9e210c28..d3edfb2a13 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1375,6 +1375,11 @@ void __domain_crash(struct domain *d)
     domain_shutdown(d, SHUTDOWN_crash);
 }
 
+static inline bool want_hwdom_shutdown(uint8_t reason)
+{
+    return !IS_ENABLED(CONFIG_HAS_HWDOM_SYSTEM_SUSPEND) ||
+           reason != SHUTDOWN_suspend;
+}
 
 int domain_shutdown(struct domain *d, u8 reason)
 {
@@ -1391,7 +1396,7 @@ int domain_shutdown(struct domain *d, u8 reason)
         d->shutdown_code = reason;
     reason = d->shutdown_code;
 
-    if ( is_hardware_domain(d) )
+    if ( is_hardware_domain(d) && want_hwdom_shutdown(reason) )
         hwdom_shutdown(reason);
 
     if ( d->is_shutting_down )
diff --git a/xen/drivers/char/serial.c b/xen/drivers/char/serial.c
index adb312d796..e5348b5445 100644
--- a/xen/drivers/char/serial.c
+++ b/xen/drivers/char/serial.c
@@ -497,6 +497,8 @@ const struct vuart_info *serial_vuart_info(int idx)
 
 #ifdef CONFIG_SYSTEM_SUSPEND
 
+static bool __ro_after_init serial_suspend_available = true;
+
 void serial_suspend(void)
 {
     int i;
@@ -513,6 +515,11 @@ void serial_resume(void)
             com[i].driver->resume(&com[i]);
 }
 
+bool serial_suspend_supported(void)
+{
+    return serial_suspend_available;
+}
+
 #endif /* CONFIG_SYSTEM_SUSPEND */
 
 void __init serial_register_uart(int idx, struct uart_driver *driver,
@@ -521,6 +528,11 @@ void __init serial_register_uart(int idx, struct uart_driver *driver,
     /* Store UART-specific info. */
     com[idx].driver = driver;
     com[idx].uart   = uart;
+
+#ifdef CONFIG_SYSTEM_SUSPEND
+    if ( !driver->suspend || !driver->resume )
+        serial_suspend_available = false;
+#endif
 }
 
 void __init serial_async_transmit(struct serial_port *port)
diff --git a/xen/drivers/passthrough/arm/iommu.c b/xen/drivers/passthrough/arm/iommu.c
index 100545e23f..547048af05 100644
--- a/xen/drivers/passthrough/arm/iommu.c
+++ b/xen/drivers/passthrough/arm/iommu.c
@@ -19,6 +19,7 @@
 #include <xen/device_tree.h>
 #include <xen/iommu.h>
 #include <xen/lib.h>
+#include <xen/suspend.h>
 
 #include <asm/device.h>
 
@@ -46,6 +47,9 @@ void __init iommu_set_ops(const struct iommu_ops *ops)
     }
 
     iommu_ops = ops;
+
+    if ( !ops->suspend || !ops->resume )
+        host_system_suspend_disable("IOMMU driver lacks suspend support");
 }
 
 int __init iommu_hardware_setup(void)
diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
index be8028c036..1b6bb1bc5f 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -91,6 +91,7 @@
 #include <asm/io.h>
 #include <asm/iommu_fwspec.h>
 #include <asm/platform.h>
+#include <asm/suspend.h>
 
 #include "smmu-v3.h"
 
@@ -1903,6 +1904,9 @@ static void arm_smmu_setup_msis(struct arm_smmu_device *smmu)
 		}
 	}
 
+	host_system_suspend_disable(
+		"SMMUv3 MSI IRQ path is unsupported for host suspend");
+
 	/* Add callback to free MSIs on teardown */
 	devm_add_action(dev, arm_smmu_free_msis, dev);
 }
diff --git a/xen/include/xen/serial.h b/xen/include/xen/serial.h
index 8e18445552..418b00ead0 100644
--- a/xen/include/xen/serial.h
+++ b/xen/include/xen/serial.h
@@ -137,6 +137,7 @@ const struct vuart_info* serial_vuart_info(int idx);
 /* Serial suspend/resume. */
 void serial_suspend(void);
 void serial_resume(void);
+bool serial_suspend_supported(void);
 #endif
 
 /*
diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
index 6f94fd53b0..a941331035 100644
--- a/xen/include/xen/suspend.h
+++ b/xen/include/xen/suspend.h
@@ -6,6 +6,8 @@
 #if __has_include(<asm/suspend.h>)
 #include <asm/suspend.h>
 #else
+struct domain;
+
 static inline void arch_domain_resume(struct domain *d) {}
 #endif
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 17:48:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 17:48:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315663.1585470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VZ-0004Mq-Hm; Thu, 21 May 2026 17:48:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315663.1585470; Thu, 21 May 2026 17:48:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ7VZ-0004KX-64; Thu, 21 May 2026 17:48:33 +0000
Received: by outflank-mailman (input) for mailman id 1315663;
 Thu, 21 May 2026 17:48:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ7VV-0003Wf-8u
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:48:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ7VU-00HNFj-Ka
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:48:28 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f453f-e002-0a2a0a5209dd-0a2a450bb4b0-44
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:28 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f456c-212f-0a2a450b0019-d1558029d507-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:48:28 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-48fe26a177cso48790455e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 10:48:28 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49033d8e24bsm74565925e9.10.2026.05.21.10.48.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 10:48:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779385708; x=1779990508; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rsbyAykeGDbUvOwTWSI9USgGEMUbfPp5YFjbccc/+1E=;
        b=Y5PkYpAua5N0V6UgrI1Yv5PErzC/00fbyRWmZFq2imnW+LRvAcVyuNOoTqzMKC0p06
         aJkN3Yl6hwm7zkSB6t88/BX1hae0geppsPsoGHp0uNHx0ho30uawOf8YQQypXE0cZ/4d
         B8l3/s7lxTEPP71rL2dPJzgjk8qUy0herLQoWQvSUEDe0jt/DQdoi9qu9URfYvw1FJFl
         NSiIG5CIuJqzW8Tm4g8NgtMHj++NefP+uz6domiXTN76uwKOfTeXVcZQF9VQmCvdlS0W
         dzrkCrFjRnw1EPKpRXbe8/N7qyaYry2RGODMBwvo2W03Ex8bPsxSs/QP3Qu/s7gzdAwo
         QTbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779385708; x=1779990508;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=rsbyAykeGDbUvOwTWSI9USgGEMUbfPp5YFjbccc/+1E=;
        b=PoXtY86CQc4Xaugau8mn6ci8Z7lWyMUrgG3lEO+Eqe07Gj4cAOC6uF+tNLcRTzBFtz
         Ofrkf82qqwvDFNqnzrxjq7WBD1JsbVsSTPvLGpDJD5qX0mfd5+L6vH3iMmey92a1x0C2
         lkFeZj3qPZ/nSeS1JjuMnH/d8MQ1EnXZm2559cbu+eP7HtAe/Myox127V+ljvEZofdoU
         eOLjUOYHW3pWURjw7vW1xKODs1BQIH7+vC/+1UC8//fEQ7n+TKEOfHfvuj7VFPBJtv9J
         4afBMFmi0a1VZkSNNSw1KFZw3FqIcX3Wo8zrmrFstYWpmkq4Db12FZkVmK7DEomoEfoy
         0XMQ==
X-Gm-Message-State: AOJu0YwvWsxju8VFfcS8bLwau7DDewnM596cszZ6yJlp4j6fw5L2ZE1S
	46QsdU/jDAgERcFUFX0opE0coC8860ghTy+iR2ikX+7AvHQLZ4RFNJRJOgiwv955
X-Gm-Gg: Acq92OFdmFxtCktFnI+6BaH8PKPrLve7udg3mJDbdsG0wBPELJztEmna0Kv4iSInnMV
	MZNkX1EY9YyD9N32FNBeNXB5bBJImppqklkyUbFhdm+TtvKSCD1n/Qnz2ppfsvK4bA3R1tbWqoi
	qI8GiK8cqcPF+a+eI0TpZl5sHDH2Anh1ZK21sw7uNXOcVqVvLCYkYod7JK8aojZIQLLVrisXoBG
	9Y90WB+ok9Kqv4oCct/rB6fnaA3U9z+OehFID9y5jsAqSlrsygXAZ7x+AqYVBWSaqFwWxFi6PLs
	09v9gl8NEaJa2xWixI6UTcGSxd5Zmgi1tjE3XuLmTErc3f3npgFzTepU4iv1rkaLfGpjuHekQtd
	mDNNDpCbl3poklhqnN31/odwbmhYu7spu+8VcTFui35dn5p/337uyaV3J2z2x42RkolqU/etd4/
	6pE4MwnWDR9hqVGTs1Mz4UvOukJw==
X-Received: by 2002:a05:600c:4818:b0:488:904b:f31 with SMTP id 5b1f17b1804b1-490360bac01mr39835105e9.22.1779385707903;
        Thu, 21 May 2026 10:48:27 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v10 13/13] xen/arm: Add host system suspend backend
Date: Thu, 21 May 2026 20:45:31 +0300
Message-ID: <199d18fdaf027c2df14c4946df1ec98f42c31c70.1779385072.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779385072.git.mykola_kvach@epam.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1779385708-2087FF3B-CB26C90E/0/0
X-purgate-type: clean
X-purgate-size: 13984

From: Mirela Simonovic <mirela.simonovic@aggios.com>

Add the Xen-wide suspend/resume backend used after a control-domain
vPSCI SYSTEM_SUSPEND request has been accepted. The vPSCI policy,
runtime driver blockers and control-domain sequencing checks are handled
by the preceding commit; this change adds the code that actually drives
the host suspend attempt.

The backend runs from a tasklet scheduled on pCPU0, because non-boot CPUs
are disabled during suspend. It freezes domains, disables the scheduler
and then disables non-boot CPUs.

Host-side suspend participants are handled in phases. IOMMU and console
state are suspended first. Local IRQs are then disabled before suspending
timer and GIC state. On resume or failure, the completed suspend phases
are unwound in reverse: GIC and timer state are restored while IRQs are
still disabled, local IRQs are restored, and then console and IOMMU state
are restored.

On boot, init_ttbr is normally initialized during secondary CPU hotplug.
On uniprocessor systems this can leave init_ttbr uninitialized, so set it
from the boot CPU before entering suspend.

Note: the code is behind CONFIG_SYSTEM_SUSPEND. On ARM64 this is currently
only available when HAS_SYSTEM_SUSPEND is selected, which requires
UNSUPPORTED to be set and MPU to be unset.

Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V10:
- Re-apply boot CPU local errata/workaround handling after SYSTEM_SUSPEND,
  before resuming the rest of the host suspend path.
- Move set_init_ttbr() declaration to asm/mmu/mm.h, since it is
  MMU-specific.

Changes in V9:
- Split vPSCI availability policy, runtime host-suspend blockers and the
  domain-readiness precheck into the preceding commit.
- Trigger the host suspend backend from the control-domain SYSTEM_SUSPEND
  path.
- Reorder the host suspend/resume phases so the timer is suspended with
  local IRQs disabled and local IRQs are restored after the GIC and timer
  resume paths, before the console and IOMMU resume paths.
- Move HAS_HWDOM_SYSTEM_SUSPEND and related logic to policy patch.

Changes in V8:
- Add a pre-suspend check in system_suspend() after scheduler_disable() to
  require all domains to be in the shut down state with SHUTDOWN_suspend
  before proceeding with the global suspend flow.
- Drop the common-level depends on !ARM_64 || !SYSTEM_SUSPEND from
  CONFIG_HAS_HWDOM_SHUTDOWN_ON_SUSPEND and model the ARM64 suspend case
  with an arch-selected capability instead.
- Rename CONFIG_HAS_HWDOM_SHUTDOWN_ON_SUSPEND to
  CONFIG_HAS_HWDOM_SYSTEM_SUSPEND.
- Rename need_hwdom_shutdown() to want_hwdom_shutdown().

Changes in V7:
- Control domain is responsible for host suspend.
- Add an empty inline host_system_suspend() function when SYSTEM_SUSPEND
  config is disabled.
- Use IS_ENABLED() for config checking instead of #ifdef.
- Replace #ifdef checks in domain_shutdown() with IS_ENABLED() to simplify
  control flow.
- Factor hardware domain shutdown condition into a helper
  (need_hwdom_shutdown()) to avoid preprocessor directives inside the
  function.
- Squash with iommu suspend/resume commit.
---
 xen/arch/arm/Kconfig                 |   1 +
 xen/arch/arm/cpuerrata.c             |   7 +-
 xen/arch/arm/include/asm/cpuerrata.h |   1 +
 xen/arch/arm/include/asm/mmu/mm.h    |   2 +
 xen/arch/arm/include/asm/suspend.h   |   2 +
 xen/arch/arm/mmu/smpboot.c           |   2 +-
 xen/arch/arm/suspend.c               | 156 +++++++++++++++++++++++++++
 xen/arch/arm/vpsci.c                 |  10 +-
 8 files changed, 177 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 54a5bfb9ae..119bc00674 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -9,6 +9,7 @@ config ARM_64
 	select 64BIT
 	select HAS_DOMAIN_TYPE
 	select HAS_FAST_MULTIPLY
+	select HAS_SYSTEM_SUSPEND if !MPU && UNSUPPORTED
 	select HAS_VPCI_GUEST_SUPPORT if PCI_PASSTHROUGH
 
 config ARM
diff --git a/xen/arch/arm/cpuerrata.c b/xen/arch/arm/cpuerrata.c
index 17cf134f1b..dd3394345c 100644
--- a/xen/arch/arm/cpuerrata.c
+++ b/xen/arch/arm/cpuerrata.c
@@ -696,6 +696,11 @@ void check_local_cpu_errata(void)
     update_cpu_capabilities(arm_errata, "enabled workaround for");
 }
 
+int enable_local_cpu_errata_workarounds(void)
+{
+    return enable_nonboot_cpu_caps(arm_errata);
+}
+
 void __init enable_errata_workarounds(void)
 {
     enable_cpu_capabilities(arm_errata);
@@ -732,7 +737,7 @@ static int cpu_errata_callback(struct notifier_block *nfb,
          * fixed to expect an error at CPU_STARTING phase.
          */
         ASSERT(system_state != SYS_STATE_boot);
-        rc = enable_nonboot_cpu_caps(arm_errata);
+        rc = enable_local_cpu_errata_workarounds();
         break;
     default:
         break;
diff --git a/xen/arch/arm/include/asm/cpuerrata.h b/xen/arch/arm/include/asm/cpuerrata.h
index 1799a16d7e..b93521326f 100644
--- a/xen/arch/arm/include/asm/cpuerrata.h
+++ b/xen/arch/arm/include/asm/cpuerrata.h
@@ -5,6 +5,7 @@
 #include <asm/alternative.h>
 
 void check_local_cpu_errata(void);
+int enable_local_cpu_errata_workarounds(void);
 void enable_errata_workarounds(void);
 
 #define CHECK_WORKAROUND_HELPER(erratum, feature, arch)         \
diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h
index 7f4d59137d..ee73a77777 100644
--- a/xen/arch/arm/include/asm/mmu/mm.h
+++ b/xen/arch/arm/include/asm/mmu/mm.h
@@ -110,6 +110,8 @@ void dump_pt_walk(paddr_t ttbr, paddr_t addr,
 extern void switch_ttbr(uint64_t ttbr);
 extern void relocate_and_switch_ttbr(uint64_t ttbr);
 
+void set_init_ttbr(lpae_t *root);
+
 #endif /* __ARM_MMU_MM_H__ */
 
 /*
diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
index 50dc6e9fdf..889a6509d9 100644
--- a/xen/arch/arm/include/asm/suspend.h
+++ b/xen/arch/arm/include/asm/suspend.h
@@ -41,11 +41,13 @@ int prepare_resume_ctx(void);
 void hyp_resume(void);
 bool host_system_suspend_allowed(void);
 void host_system_suspend_disable(const char *reason);
+void host_system_suspend(struct domain *d);
 
 #else /* !CONFIG_SYSTEM_SUSPEND */
 
 static inline bool host_system_suspend_allowed(void) { return false; }
 static inline void host_system_suspend_disable(const char *reason) {}
+static inline void host_system_suspend(struct domain *d) {}
 
 #endif
 
diff --git a/xen/arch/arm/mmu/smpboot.c b/xen/arch/arm/mmu/smpboot.c
index 37e91d72b7..ff508ecf40 100644
--- a/xen/arch/arm/mmu/smpboot.c
+++ b/xen/arch/arm/mmu/smpboot.c
@@ -72,7 +72,7 @@ static void clear_boot_pagetables(void)
     clear_table(boot_third);
 }
 
-static void set_init_ttbr(lpae_t *root)
+void set_init_ttbr(lpae_t *root)
 {
     /*
      * init_ttbr is part of the identity mapping which is read-only. So
diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
index 98ddd46a47..2e0833a13c 100644
--- a/xen/arch/arm/suspend.c
+++ b/xen/arch/arm/suspend.c
@@ -1,10 +1,18 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <asm/cpuerrata.h>
+#include <asm/cpufeature.h>
+#include <asm/gic.h>
 #include <asm/psci.h>
 #include <asm/suspend.h>
 
+#include <xen/console.h>
+#include <xen/cpu.h>
+#include <xen/iommu.h>
 #include <xen/lib.h>
+#include <xen/sched.h>
 #include <xen/serial.h>
+#include <xen/tasklet.h>
 
 struct resume_cpu_context resume_cpu_context;
 
@@ -44,6 +52,154 @@ void host_system_suspend_disable(const char *reason)
            reason ? reason : "unsupported suspend/resume path");
 }
 
+/* Xen suspend. data identifies the domain that initiated suspend. */
+static void system_suspend(void *data)
+{
+    int status;
+    unsigned long flags;
+    struct domain *d = (struct domain *)data;
+
+    BUG_ON(system_state != SYS_STATE_active);
+
+    system_state = SYS_STATE_suspend;
+
+    printk("Xen suspending...\n");
+
+    freeze_domains();
+    scheduler_disable();
+
+    /*
+     * Non-boot CPUs have to be disabled on suspend and enabled on resume
+     * (hotplug-based mechanism). Disabling non-boot CPUs will lead to PSCI
+     * CPU_OFF to be called by each non-boot CPU. Depending on the underlying
+     * platform capabilities, this may lead to the physical powering down of
+     * CPUs.
+     */
+    status = disable_nonboot_cpus();
+    if ( status )
+    {
+        system_state = SYS_STATE_resume;
+        goto resume_nonboot_cpus;
+    }
+
+    console_start_sync();
+    status = iommu_suspend();
+    if ( status )
+    {
+        system_state = SYS_STATE_resume;
+        goto resume_end_sync;
+    }
+
+    status = console_suspend();
+    if ( status )
+    {
+        dprintk(XENLOG_ERR, "Failed to suspend the console, err=%d\n", status);
+        system_state = SYS_STATE_resume;
+        goto resume_iommu;
+    }
+
+    local_irq_save(flags);
+
+    time_suspend();
+
+    status = gic_suspend();
+    if ( status )
+    {
+        system_state = SYS_STATE_resume;
+        goto resume_time;
+    }
+
+    set_init_ttbr(xen_pgtable);
+
+    /*
+     * Enable identity mapping before entering suspend to simplify
+     * the resume path
+     */
+    update_boot_mapping(true);
+
+    if ( prepare_resume_ctx() )
+    {
+        status = call_psci_system_suspend();
+        /*
+         * If suspend is finalized properly by above system suspend PSCI call,
+         * the code below in this 'if' branch will never execute. Execution
+         * will continue from hyp_resume which is the hypervisor's resume point.
+         * In hyp_resume CPU context will be restored and since link-register is
+         * restored as well, it will appear to return from prepare_resume_ctx.
+         * The difference in returning from prepare_resume_ctx on system suspend
+         * versus resume is in function's return value: on suspend, the return
+         * value is a non-zero value, on resume it is zero. That is why the
+         * control flow will not re-enter this 'if' branch on resume.
+         */
+        if ( status )
+            dprintk(XENLOG_WARNING, "PSCI system suspend failed, err=%d\n",
+                    status);
+
+        system_state = SYS_STATE_resume;
+    }
+    else
+    {
+        system_state = SYS_STATE_resume;
+
+        /*
+         * CPU0 resumes directly from hyp_resume(), bypassing the CPU hotplug
+         * path that re-checks and re-enables errata workarounds for secondary
+         * CPUs.
+         */
+        check_local_cpu_errata();
+        check_local_cpu_features();
+        BUG_ON(enable_local_cpu_errata_workarounds());
+    }
+
+    update_boot_mapping(false);
+
+    gic_resume();
+
+ resume_time:
+    time_resume();
+
+    local_irq_restore(flags);
+
+    console_resume();
+
+ resume_iommu:
+    iommu_resume();
+
+ resume_end_sync:
+    console_end_sync();
+
+ resume_nonboot_cpus:
+    /*
+     * The rcu_barrier() has to be added to ensure that the per cpu area is
+     * freed before a non-boot CPU tries to initialize it (_free_percpu_area()
+     * has to be called before the init_percpu_area()). This scenario occurs
+     * when non-boot CPUs are hot-unplugged on suspend and hotplugged on resume.
+     */
+    rcu_barrier();
+    enable_nonboot_cpus();
+
+    scheduler_enable();
+    thaw_domains();
+
+    system_state = SYS_STATE_active;
+
+    printk("Resume (status %d)\n", status);
+
+    domain_resume(d);
+}
+
+static DECLARE_TASKLET(system_suspend_tasklet, system_suspend, NULL);
+
+void host_system_suspend(struct domain *d)
+{
+    system_suspend_tasklet.data = (void *)d;
+    /*
+     * The suspend procedure has to be finalized by the pCPU#0 (non-boot pCPUs
+     * will be disabled during the suspend).
+     */
+    tasklet_schedule_on_cpu(&system_suspend_tasklet, 0);
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 0bae42c1bd..6e332d6a12 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -237,7 +237,8 @@ static bool domain_in_suspend_state(struct domain *d)
     return suspended;
 }
 
-static int32_t domain_psci_system_suspend_policy(struct domain *d)
+static int32_t domain_psci_system_suspend_policy(struct domain *d,
+                                                 bool *host_suspend)
 {
     struct domain *other;
     bool last_awake_control_domain = true;
@@ -300,6 +301,7 @@ static int32_t domain_psci_system_suspend_policy(struct domain *d)
     if ( !host_system_suspend_allowed() )
         return PSCI_DENIED;
 
+    *host_suspend = true;
     return 0;
 }
 
@@ -310,6 +312,7 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
     struct vcpu *v;
     struct domain *d = current->domain;
     bool is_thumb = epoint & 1;
+    bool host_suspend = false;
     struct resume_info *rctx = &d->arch.resume_ctx;
 
     /* THUMB set is not allowed with 64-bit domain */
@@ -334,7 +337,7 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
 
     spin_lock(&vpsci_system_suspend_lock);
 
-    rc = domain_psci_system_suspend_policy(d);
+    rc = domain_psci_system_suspend_policy(d, &host_suspend);
     if ( !rc )
     {
         rc = domain_shutdown(d, SHUTDOWN_suspend);
@@ -359,6 +362,9 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
             "SYSTEM_SUSPEND requested, epoint=%#"PRIregister", cid=%#"PRIregister"\n",
             epoint, cid);
 
+    if ( host_suspend )
+        host_system_suspend(d);
+
     return rc;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 18:43:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 18:43:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315793.1585480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ8Mk-00033I-As; Thu, 21 May 2026 18:43:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315793.1585480; Thu, 21 May 2026 18:43:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ8Mk-00033B-8F; Thu, 21 May 2026 18:43:30 +0000
Received: by outflank-mailman (input) for mailman id 1315793;
 Thu, 21 May 2026 18:43:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ8Mi-00032s-8a
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 18:43:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ8Mh-00CAW4-Dp
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 20:43:27 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f5238-bab6-0a2a0a5309dd-0a2a4507b2dc-20
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 20:43:27 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f524f-229c-0a2a45070019-d155802fe110-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 20:43:27 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-488a8ca4aadso63483655e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 11:43:27 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49035c6766fsm42558855e9.2.2026.05.21.11.43.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 11:43:26 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779389007; x=1779993807; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=CbY493eMuX/mj74qMbU9C0aqtJWPKXDVVYRF7iw68Hc=;
        b=ZlMCUH+7A811Vs4j54SkrULrCjhw0zs1YzthLaLg78v00B0XdSA7NKuI2sY7g3HC9/
         anXt3BXmPv1tATKXUFPeukeJsm5Soc4LctmZaIB1d3WQPYfBOc+Yip5iD69Zczcy6pV6
         UxPFfKZg29WgndnQWLI3ev0eEGPn2GgFwUaU+mKsfzdT0j8xU8CS3B6vLssyshXUxbfx
         OiQCtdVJtYO9sY4UNDwB0Rqt0dkmW6IeXscgVOo4+S/GBXrH0YyJehRBgTXd7Ujp7HyF
         i5uBP+SsSDzpj6VeEG0iM2Tzg658XqscKo3bSEIvkc8Obr9W0UhYGi8GDrm4E32e/hzR
         7oVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779389007; x=1779993807;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CbY493eMuX/mj74qMbU9C0aqtJWPKXDVVYRF7iw68Hc=;
        b=Fy68SVJ9FDP+X37UDz+y8wTrINmP7gBxSxv/Rp2BbxVvpOTSMp85iWo0w5YrWq6uFB
         Udb+1vsD7TVmq/P2vBY+nP6r5/1LnMLcRERz7xaYPQ/Eyc3n4/MmDaYqCcM7Bu+soIsA
         cw+NINCX1zH0rRgyt4xfnc2CXCd5feYk8oLWHB3wQ/LP3XOBoLJ9yE6WvRH/865//yIZ
         0rXPyOzWUWf7fjic0Jcwn18raDspBsf/HsmiEbfah8a9w08dBWxhgWMsNUKsFn2E6Hva
         VA618kUAyoX+FjXxGHkt8qzucwO3+GQEDvJXnIBgbxdwnjI9wNUOzo0Kus5VjwQXEs23
         4uYQ==
X-Gm-Message-State: AOJu0Yx+suZjybVXmNnMAi4o2Zfx6dO7HBdU36NlVYAPslVrgTyKPAN3
	6MQdgrbo6FRynSGjtYIQB93v8Bjd4G5xZRKV29T8v/RhY6MbSCiQ0JraXl4C9p7r
X-Gm-Gg: Acq92OE6/d31n6MCaxXiW7qBMbnC+yKh5kSejvHSo3KpIMJG5zFqlop622wRDKQooME
	VYb8OFOI4NGeWmz8ocZQLON5KbEhzXgteDyFd0P7o6UZ5LhGnEdmemvPtwdPdf1U4Abhr8IZYYr
	WZeeMm5Jl328CywdC/7ff/2gP6DpHoumKVRZrZBMA7ZZNEb7yzTFFaFpIJiCYOYjvsZIjEOAt7C
	gFIxoad1wYbuAvB1nRDRXxP6nJqCpKie/UUH7BIByH3RnyYDCUDpXvu3RtTaFDCirMrg+S1DMfP
	Rzt8sd+2qIuqcWRKOPBCVml27FT7I+2W1jzCq2aVnyZ9v7k1bPUz7YV1vl4k5flusOh8VBN3h8P
	q8uH65DZXJqatJs+xJ5fTPbKDIapdKoE8y2V1Ys71NFt0cybKdlqHQIAuO6ezsAkW/nnqjYqB2R
	08enuvNAuJY1aqrFCN9y5s47Xh/Q==
X-Received: by 2002:a05:600c:a15:b0:490:3cef:bd90 with SMTP id 5b1f17b1804b1-4903cefbe6emr44243195e9.26.1779389006562;
        Thu, 21 May 2026 11:43:26 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Carlo Nonato <carlo.nonato@minervasys.tech>,
	Marco Solieri <marco.solieri@minervasys.tech>,
	Luca Miccio <luca.miccio@amd.com>,
	Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 0/2] xen/common: llc-coloring parser fixes
Date: Thu, 21 May 2026 21:41:20 +0300
Message-ID: <cover.1779388510.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1779389007-28C7DC48-EDA8C3E4/0/0
X-purgate-type: clean
X-purgate-size: 1145

From: Mykola Kvach <mykola_kvach@epam.com>

Hi all,

This small series fixes two issues in parse_color_config().

The first patch makes parse failures leave the caller-visible color count
at zero. This prevents a rejected command-line value from leaving a
partially parsed configuration behind for later init paths to consume.

The second patch rejects empty color tokens. Previously, delimiters in
places where a color value was expected could be interpreted as color 0,
because simple_strtoul() returns zero without advancing the input pointer.
The patch checks that each parsed color value consumed input. It also
fixes the DT color parsing error message by adding the missing newline
and including the domain ID.

Changes in v2:
- Clarify the first commit message.
- Include the domain ID in the DT color parsing error message.
- Add Reviewed-by tags.

Mykola Kvach (2):
  xen/common: llc-coloring: clear color count on parse failure
  xen/common: llc-coloring: reject empty color tokens

 xen/common/llc-coloring.c | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 18:43:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 18:43:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315794.1585485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ8Mk-00036F-Le; Thu, 21 May 2026 18:43:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315794.1585485; Thu, 21 May 2026 18:43:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ8Mk-000368-G0; Thu, 21 May 2026 18:43:30 +0000
Received: by outflank-mailman (input) for mailman id 1315794;
 Thu, 21 May 2026 18:43:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ8Mi-00032y-SU
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 18:43:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ8Mi-00HU6L-8W
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 20:43:28 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f523f-e002-0a2a0a5209dd-0a2a450add6c-28
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 20:43:28 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f5250-56b3-0a2a450a0019-d1558033e549-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 20:43:28 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-48e8132c6d0so42393015e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 11:43:28 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49035c6766fsm42558855e9.2.2026.05.21.11.43.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 11:43:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779389008; x=1779993808; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ljEMYEkr4A++xDwBUmB/QQXR4E0ZeG++aH7cfc2SFig=;
        b=c9lAF4n8wFvBWvBIYGmXLRJyvESG7eCY69h5hGWKrX+KRfvY5wFM2n845SOHuir3sB
         LvYyRLsLfTKTakKhzGhy2WOUdzKk+YuEY6j4jlnNqXqRcGirpZ0YDUXCL+Jw2DSl+1AE
         guySLor4zdcN8P4n6rVe0G7B1oRYHtMfoxLC1TOelpDSh7YTh4OFSblfZWPkuCKR1oxG
         7TcS2vMlHhSKTX5mTQgcIbAft1nby8lnFk6TFMU/oJ6ol160UbdbAm9hJMMOr7FsMa5s
         fyBQi+VmLbBJwUlJUHfOCC9jR0GZ4h4rmacGv5nBHzr7Yt4J3MS/yWKHY3uOM8pYWw2X
         MUTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779389008; x=1779993808;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ljEMYEkr4A++xDwBUmB/QQXR4E0ZeG++aH7cfc2SFig=;
        b=I13g1mONgxE2aZCPdhTBFfpDPRADI1NmV41fElRv+aWdaxDf/AW36K+kUTFSvOWVhX
         313eDU+T6z3zORdYypP7q8uxen1ElcXFJvF09y6GhOGIC2lY3aSxCZNlVSEHXYmp81IQ
         DzcwnX8nc1wrDEpAUHgD2HwjpQ1kfNE8OLkfbEE6VJ4rqWS+/IKvBtEmsB+WRpogo3Gq
         F7a8bWGH7aUma2HqooVPhL47MkrQJFlVA1xTFeWqGD4jA0Wrf2mdnN9vX5CKZ0nDuV1s
         ABUO5I99eKJqYvvVaH2uw9+CTPqeVW4ENU06XI/NPNqA1Btb1Tm90NCEupHgh9zaW3Fy
         MCNg==
X-Gm-Message-State: AOJu0Yxrd/7hiFzZmKINIXJ8OW5X7NowrvsDKVtnnjd6a5NsdmlnLRwr
	D762mp0m61EsqloV1gVahLphCgSypnhN4hnl+WKAP0XJ1SrXDU3t9icPcTxW5VNl
X-Gm-Gg: Acq92OEi/urH8hgu8P7Mt96F1ohKEuXapqQ+QPDgoMC64s7WCvOmSE0BBtEGH339JoR
	GF88rYPDjAn0JqRr5QGxdEWxkBwW6+tL9TEWzk57E+Q/WZ1LuhmdAW4Y0BJ3VHJ91lxRmXGWBeK
	JB2zpE2b4cv+vgwdMThoMs+8tAC11LEEYUSvlQz76eLDgf29rX4ajJhxbrUTnrVp5RNlot6bPDc
	etn4k0uIYcCQ3UBfA2dX/NzI+HG8FmN5WkV0BuipcnITN0YJDXO//tCJxMxwVqJxWDDqoClPUZz
	kBSkGPfTrZmldAYC71Y662YiVRY3o0HLwQQWd21RhzyUth0IyrvulCy4lT8NyzHEJp1DlX0GB6S
	Ej0+Wd4cPavg9511U/kkujti/Ss2XNIMddE7teQWCmhfiwKiEnFyCIx/oiFXObRL/hLqDxMusmc
	OtjI8834cE2OS3b+/dkaTJN5q4EZ2YPJWlQXlp
X-Received: by 2002:a05:600c:4fc9:b0:48f:fe2a:107c with SMTP id 5b1f17b1804b1-4904248ac8cmr185605e9.6.1779389007490;
        Thu, 21 May 2026 11:43:27 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Carlo Nonato <carlo.nonato@minervasys.tech>,
	Marco Solieri <marco.solieri@minervasys.tech>,
	Luca Miccio <luca.miccio@amd.com>,
	Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Denis Mukhin <dmukhin@ford.com>
Subject: [PATCH v2 1/2] xen/common: llc-coloring: clear color count on parse failure
Date: Thu, 21 May 2026 21:41:21 +0300
Message-ID: <61c93d1364b24f19215db24f4ca88cf7a5014f24.1779388510.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779388510.git.mykola_kvach@epam.com>
References: <cover.1779388510.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1779389008-7015A8B7-563894AE/0/0
X-purgate-type: clean
X-purgate-size: 1898

From: Mykola Kvach <mykola_kvach@epam.com>

parse_color_config() updates the caller-provided color count while
parsing. If parsing later fails, leave the count at zero so callers
do not consume a partially parsed configuration.

The bug is reachable in practice: cmdline_parse() ignores the -EINVAL
from a custom_param callback, so boot continues with the partial
xen_num_colors / dom0_num_colors that llc_coloring_init() and
dom0_set_llc_colors() then consume.

Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
Changes in v2:
- Clarify that the partial color count can be consumed after
  a command-line parse failure.
- Add Reviewed-by tags.
---
 xen/common/llc-coloring.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
index 6dc614739a..2606cb0977 100644
--- a/xen/common/llc-coloring.c
+++ b/xen/common/llc-coloring.c
@@ -79,7 +79,7 @@ static int __init parse_color_config(const char *buf, unsigned int colors[],
         if ( end >= NR_LLC_COLORS || start > end ||
              (end - start) >= (UINT_MAX - *num_colors) ||
              (*num_colors + (end - start)) >= max_num_colors )
-            return -EINVAL;
+            goto fail;
 
         /* Colors are range checked in check_colors() */
         for ( color = start; color <= end; color++ )
@@ -91,7 +91,14 @@ static int __init parse_color_config(const char *buf, unsigned int colors[],
             break;
     }
 
-    return *s ? -EINVAL : 0;
+    if ( *s )
+        goto fail;
+
+    return 0;
+
+ fail:
+    *num_colors = 0;
+    return -EINVAL;
 }
 
 static int __init parse_dom0_colors(const char *s)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 18:43:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 18:43:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315795.1585494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ8Ml-0003FJ-27; Thu, 21 May 2026 18:43:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315795.1585494; Thu, 21 May 2026 18:43:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ8Mk-0003DH-SF; Thu, 21 May 2026 18:43:30 +0000
Received: by outflank-mailman (input) for mailman id 1315795;
 Thu, 21 May 2026 18:43:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ8Mj-000334-LX
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 18:43:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ8Mj-00EkKx-1m
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 20:43:29 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f5228-5cb7-0a2a0a5109dd-0a2a4508df64-48
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 20:43:28 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f5250-63b5-0a2a45080019-d1558032e55e-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 20:43:28 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-48e8132c6d0so42393085e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 11:43:28 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49035c6766fsm42558855e9.2.2026.05.21.11.43.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 11:43:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779389008; x=1779993808; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=de30ilZc1Pk5ATstxlEw7kAS0ReXrVMylgNlp1/IE6M=;
        b=aJPXv+tP/CNHQJe4rAx+OcaMg1unpfB9hsXCf81wXnc9xUbMCHBvz28pqh+t3zv2cl
         dPyIVjjjF7LnVJl6/Hzat7Orr75xBFm++dONdxmoIbUJhRRaHu5Y5+nSvvnzbUudZkV9
         2SUfSJmEtbb28GbGROzUA5pBW1omQVdJSAi3zp9FmgtyXiuNzR5f4OUlQM7bnc/qXKas
         AEluoINNpWu1uRxjvvwfk/jB5sBEi8qdYMMCIXqrPhiCNHiWh9JZviiSmgyAhdNOGPLf
         jCbA2bDkQWrKd5/lNSY+zoBvtR2qoz7QGPyVZcBCFnvtIGj4yrQY7F7HhpMm1De1+XgC
         MhpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779389008; x=1779993808;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=de30ilZc1Pk5ATstxlEw7kAS0ReXrVMylgNlp1/IE6M=;
        b=X+/xj//cYcBjk4lKUjhrpfLg9Zg3s3i/u/hT0VFb2uR7DxKI8WfzNw6RZRLIaxoBYv
         Z5gjTN/uQRau8tqYAHYgLOuqyvNncotRJeN3HRiX4rWiUxf7phEzbaHPphITMh+6ucEm
         PHjhVhbTk5E44pKgrkDeXnheNiKDu4AnIV2LBZpE/a//zrL3SudBjZzIKF+vTKbcSMxq
         1MFRPinqD5QVHdHunVSoSIenKLjfxDanGSCFwgacUBUohFYggUm4jfxAbtvBWUr1TMql
         uBtXqNi8So0Jj6FHSPbb+cepylBdiehBFlFryBdE3AsV0fJIAh6QfA9oSIYUJ9ilQhus
         ij7w==
X-Gm-Message-State: AOJu0YzqgGyhBlOUuh2bQm07BMTAGIEwApp8VXhMF+53xfPPLfg7fRqK
	S9zywd9xeuiXs4gPMNEq9bXVfgGZhjY+9DtAFd+K+9oHus7nSj41ZmXpFAJCHo1w
X-Gm-Gg: Acq92OGs6aL++l7N4rvuPjAr901PLYHJYIOQAl9+WjjCwkYTZZ5MMfqzlI1ZGOxoHmX
	wKHt2+8gsc1KNGNH6z09jOx5D7DCieb5s7eMIWLGenFdqKcEVXhdCfIYdwD483VPXQejr9gOfZY
	SRzy4Whzd8fLpu3RDBkFUFP/gnQNgaCLgjfJojgGzthhjDdsmExi3ZCYg7Nk9lEKjMHjvQLmopl
	OTxn3v+8P4x5BjWxUtbdLTedUGL8+E3huaTK/PCSx7LpP1HS9339cuk3PyRPMUUlg4nWmpx8LrL
	hqbCLKABA/DcVsJcdfzSHeiBhHqBljV4nqLNxq8PqNyUQdGVdYmO5W0z3DIyIl5N36e575G2NpG
	bNv7yKcjBFNDbYB1KViCtDRZ8KKxdF/nRbnEM3D5557TmelajVJBwVmDE99VK/XO11Kkcl+QSkl
	9T0Q6CsZtMkTrumW0fHYOp9263Ww==
X-Received: by 2002:a05:600c:4649:b0:48d:35e:84a0 with SMTP id 5b1f17b1804b1-490360b366cmr37723645e9.28.1779389008391;
        Thu, 21 May 2026 11:43:28 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Carlo Nonato <carlo.nonato@minervasys.tech>,
	Marco Solieri <marco.solieri@minervasys.tech>,
	Luca Miccio <luca.miccio@amd.com>,
	Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 2/2] xen/common: llc-coloring: reject empty color tokens
Date: Thu, 21 May 2026 21:41:22 +0300
Message-ID: <94d7290edbda36c652579b625acaa4d7cdf1aa68.1779388510.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779388510.git.mykola_kvach@epam.com>
References: <cover.1779388510.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1779389008-BFD7BDB1-6B4CC5E8/0/0
X-purgate-type: clean
X-purgate-size: 2155

From: Mykola Kvach <mykola_kvach@epam.com>

parse_color_config() currently accepts delimiters where a color value
is expected because simple_strtoul() returns zero without advancing the
input pointer. This makes strings such as ",2-6", "-10,19-20" or
"1,,2" look as if an empty value was color 0.

Also fix the DT color parsing error message by adding the missing
newline and including the domain ID, matching the style of the color
validation error below.

Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
Changes in v2:
- Include the domain ID in the LLC color parsing error message.
- Add Reviewed-by tag.
---
 xen/common/llc-coloring.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
index 2606cb0977..b5de5787c1 100644
--- a/xen/common/llc-coloring.c
+++ b/xen/common/llc-coloring.c
@@ -64,14 +64,21 @@ static int __init parse_color_config(const char *buf, unsigned int colors[],
 
     while ( *s != '\0' )
     {
+        const char *endp;
         unsigned int color, start, end;
 
-        start = simple_strtoul(s, &s, 0);
+        start = simple_strtoul(s, &endp, 0);
+        if ( endp == s )
+            goto fail;
+        s = endp;
 
         if ( *s == '-' )    /* Range */
         {
             s++;
-            end = simple_strtoul(s, &s, 0);
+            end = simple_strtoul(s, &endp, 0);
+            if ( endp == s )
+                goto fail;
+            s = endp;
         }
         else                /* Single value */
             end = start;
@@ -334,7 +341,7 @@ int __init domain_set_llc_colors_from_str(struct domain *d, const char *str)
     err = parse_color_config(str, colors, max_nr_colors, &num_colors);
     if ( err )
     {
-        printk(XENLOG_ERR "Error parsing LLC color configuration");
+        printk(XENLOG_ERR "%pd: error parsing LLC color configuration\n", d);
         xfree(colors);
         return err;
     }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 18:55:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 18:55:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315825.1585509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ8Xy-0006Nk-V6; Thu, 21 May 2026 18:55:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315825.1585509; Thu, 21 May 2026 18:55:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ8Xy-0006Nd-RB; Thu, 21 May 2026 18:55:06 +0000
Received: by outflank-mailman (input) for mailman id 1315825;
 Thu, 21 May 2026 18:55:06 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQ8Xx-0006NX-Si
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 18:55:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ8Xx-003c8G-9K
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 20:55:05 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f54d9-bab6-0a2a0a5309dd-0a2a45049bd8-28
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 20:55:05 +0200
Received: from [209.85.208.174] (helo=mail-lj1-f174.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0f5508-1dec-0a2a45040019-d155d0aeb1cd-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 20:55:05 +0200
Received: by mail-lj1-f174.google.com with SMTP id
 38308e7fff4ca-39393c1b5aaso10738411fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 11:55:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779389704; cv=none;
        d=google.com; s=arc-20240605;
        b=Dn19TCDwli0YMOCY1Sw6oU1uUIWugL2km5rfe4lNNufDDrzBiKOTV5Np4q3PPNgE/S
         YwiMslzy6XudACcHHIgzC7aqYX+UOASGPSzPXFxvrJWEFuMoolzZk9cFwkMFTdkycnhE
         oMm5pi7cruU46Qf/CN4hConaejDsvksXt2+mtcSgLXT7LqGWQzfiyfDBwTTsU6IE1naR
         SSCe0RQ3yZ8G2quB5ev/yBVQ5qjrj2O/0dxWxdu98Ce2AbPNY0QavQPhgS61Kvty7rQf
         1lBObC4ca3PDK2pIghJ8ooP24sffHyfd1+qv8ay3rX2F8rDAE4zQUivxmIOsW5F/kv9q
         oKng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=/3rjbGp0HttxGbdO7stMCJxHdJRRoeSvCJWFnm0/r4k=;
        fh=LYPtEiP/QdkSJ/aZ/WXlTr0/QjWEldrtJeLO5/sVid8=;
        b=YanrXs/7dy2uZhAoLcf9375Aq8u5lugoeXtbMjHhBk5nIZ3Rvi/CZ2l6IkYNmdIi6v
         GPsXYIqcQkONm5pMu/g10rvTy6CMPnfVvpfNrwH0ZUurC//P0WmWDJF+n1QqUr1Dh8dK
         NDCibqqX7Dhmuk1UzGidl6CCDSQ7UApJgiyLdLFN8GxgebskMdHRgWmDe7PTxuXDo4Kv
         PKO3lcTt8lDdRakGcbUC2jYwGX7m9hktBbdNeByqCGwwcRtEFSciqDqQJ262UDycjfb5
         wICyMf24XjFMpfq3MHtEFjBI3cq/ur1jJ362rPOhX4KmtznD5gEAt3F9R4IkhupWNoPb
         gTmQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779389704; x=1779994504; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/3rjbGp0HttxGbdO7stMCJxHdJRRoeSvCJWFnm0/r4k=;
        b=feqtx/EAxuhXbyxRw8REO8Cmlo4z90G58KoImZ647WcsflrRqfeCiE13HYwseZ0MHq
         p0Q1D2Mjj8h50bGAUOYzQP2ttngSxaYWHL4aic62w7/1XI7ppoUNsXjgMepqBH9CiA9k
         USfca1/Zm3pOPr8/bP2eHP4vvfUIYgXgTjRo+s3+Mwnvx97mtKLrzXwE1x+OLgOL6gGW
         dUm9AWoQKTxgrg3wEqr+GJBx4fTOLCdgYsz6bYcpk2VapFSqaqThlhgOH/YqPf2UnFrx
         4ZunTPor7xEpwRiR5Rf639Uj1fyqVv+aQXlcODfFaPWM63uQPOTJ9lBhfrvsYvu4y7A9
         FXXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779389704; x=1779994504;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=/3rjbGp0HttxGbdO7stMCJxHdJRRoeSvCJWFnm0/r4k=;
        b=nV6/JHiBApw9gRhCR1l+li9X+4VcTGmQk4f36oPxfuJaDwcExo/RPd0FNxeXocNArk
         5NkB+osYbY7kDpCKkTYuRtx7voQfL3FXdE4vobURcE9hohhAZeVN2fR0lgBGQEtbaFKF
         fUhwRpr5BZ+yVEMCJQI/SGZLzPXlUSzOOzoWkGQMU4fEqgCnvD1vA2/rwpu9nYohpAXI
         +HLXdEV5WauSpwdDyhEuw8uCjaKHPDYrQmCyOiFkTNdhdz+urB3Wl+7jzU+KG+sWEvER
         WMWjAbAb1vda1M/NCUg8kSVM0lTa2Fi9sJhnOIhlMLq2e0naN5HlOfIq/8wBAQgW0qKh
         aK/g==
X-Gm-Message-State: AOJu0YyF93OXplqqPy1uoqUOEh+HKKCO1/fbxHhxYV4zptQ5YunqOS7X
	1ETHg+gLa/JNTTGSh2Mmdu6objY0xpXMzeifU9GqlEauVN7BZa4E6Q5U/bDlBtnOKi7TLtT6GSj
	juK2QEr4ichewaVpqHIKoQkS0DwfHkpBRKXW7Tew=
X-Gm-Gg: Acq92OEbD3F+cw3jqJEHGLiTlA02BC0aluwrsaF56GYBBgNj88iyhrauqv7sC2fsxui
	TuFzc9PqN9sjcqOeH8lUcl7mkEy71W22qh+df++M3JXx/xEtZe2ttwdyrwCJavSge8ojW1OI9uD
	PjW8JZjbOjv6ps/07Yv7+Ez4yKzShJcFs8iTutvUL+Z9Ltc8BeSW74OBJZMIImAjRupZ5s46e09
	0Q5AEQ6mxa2JRmIXWQ2u7B+1sN01k3rvy61KT1Jt2d+qM8j1KhwT1gNsOzr2sJfP1BbvpcTocLn
	QYEw
X-Received: by 2002:a05:651c:150c:b0:393:fa0f:d64a with SMTP id
 38308e7fff4ca-395d8d82e30mr371051fa.28.1779389704281; Thu, 21 May 2026
 11:55:04 -0700 (PDT)
MIME-Version: 1.0
References: <998162706f89bb3100bda409d8fde3c8b143eae6.1777886129.git.mykola_kvach@epam.com>
In-Reply-To: <998162706f89bb3100bda409d8fde3c8b143eae6.1777886129.git.mykola_kvach@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 21 May 2026 21:54:52 +0300
X-Gm-Features: AVHnY4I-IpgjoYId6sqvHLdqAjJa9nS733RLjNqqzF66xXCS7KlCmc2D5iauR44
Message-ID: <CAGeoDV85LvygjSYfma-CLFiZ8Ubc-q0=T4M070bc_67OL=0K=A@mail.gmail.com>
Subject: Re: [PATCH] xen/arm: scan CLIDR Ctype fields upwards when probing LLC
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Luca Miccio <lucmiccio@gmail.com>, Carlo Nonato <carlo.nonato@minervasys.tech>, 
	Marco Solieri <marco.solieri@minervasys.tech>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ebf023/1779389705-291763FF-D72511D3/0/0
X-purgate-type: clean
X-purgate-size: 3964

Hi,

Adding Luca, Carlo and Marco for visibility, as this patch touches code
based on Luca's original work and signed off by Carlo and Marco.

The patch already has Luca Fancellu's Reviewed-by. Please let me know if
you have any concerns.

Best regards,
Mykola

On Mon, May 4, 2026 at 12:21=E2=80=AFPM Mykola Kvach <xakep.amatop@gmail.co=
m> wrote:
>
> From: Mykola Kvach <mykola_kvach@epam.com>
>
> get_llc_way_size() currently scans CLIDR_EL1 Ctype fields from the
> highest level downwards and stops at the first unified cache it finds.
>
> However, CLIDR_EL1 describes the cache hierarchy from Ctype1 upwards.
> Arm ARM DDI 0487J.a, D19.2.27 says that once software has seen a
> Ctype value of 0b000 while reading from Ctype1 upwards, no caches
> manageable by the architected set/way maintenance instructions exist at
> further-out levels, and the higher Ctype fields must be ignored.
>
> The current reverse scan can therefore select a unified cache level from
> a Ctype field above the first no-cache level. Such a field is not part of
> the architecturally described CLIDR/CCSIDR cache hierarchy and should not
> be used for selecting the CCSIDR level.
>
> Scan Ctype fields from L1 upwards, stop at the first no-cache level, and
> keep the outermost unified cache observed before that point.
>
> This preserves the result for regular cache hierarchies, while avoiding
> selection of an architecturally ignored Ctype field.
>
> Fixes: f4985fce6f0b ("xen/arm: add initial support for LLC coloring on ar=
m64")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> This patch follows the xen-devel discussion:
> https://lists.xenproject.org/archives/html/xen-devel/2026-01/msg00345.htm=
l
>
> In that thread, Michal noted that the reverse scan was a simplification
> rather than an intentional requirement, and that changing the
> implementation would be fine.
>
> Testing performed:
> - standalone synthetic CLIDR tests covered both regular and pathological
>   Ctype sequences and showed that the forward scan ignores unified cache
>   levels above the first Ctype =3D=3D 0b000 while the reverse scan can pi=
ck
>   them
> - Renesas H3ULCB booted with llc-coloring=3Don
> ---
>  xen/arch/arm/llc-coloring.c | 22 +++++++++++++++++-----
>  1 file changed, 17 insertions(+), 5 deletions(-)
>
> diff --git a/xen/arch/arm/llc-coloring.c b/xen/arch/arm/llc-coloring.c
> index 6f78817c57..3783f4c824 100644
> --- a/xen/arch/arm/llc-coloring.c
> +++ b/xen/arch/arm/llc-coloring.c
> @@ -22,21 +22,33 @@ unsigned int __init get_llc_way_size(void)
>      register_t id_aa64mmfr2_el1 =3D READ_SYSREG(ID_AA64MMFR2_EL1);
>      uint32_t ccsidr_numsets_shift =3D CCSIDR_NUMSETS_SHIFT;
>      uint32_t ccsidr_numsets_mask =3D CCSIDR_NUMSETS_MASK;
> -    unsigned int n, line_size, num_sets;
> -
> -    for ( n =3D CLIDR_CTYPEn_LEVELS; n !=3D 0; n-- )
> +    unsigned int n, line_size, num_sets, llc_level =3D 0;
> +
> +    /*
> +     * CLIDR_EL1 Ctype fields are interpreted from Ctype1 upwards. Once =
a
> +     * no-cache level is seen, higher Ctype fields are architecturally i=
gnored
> +     * for the CLIDR/CCSIDR set/way manageable cache hierarchy.
> +     *
> +     * Keep the outermost unified cache before that point.
> +     */
> +    for ( n =3D 1; n <=3D CLIDR_CTYPEn_LEVELS; n++ )
>      {
>          uint8_t ctype_n =3D (clidr_el1 >> CLIDR_CTYPEn_SHIFT(n)) &
>                             CLIDR_CTYPEn_MASK;
>
> +        if ( ctype_n =3D=3D 0b000 )
> +            break;
> +
>          /* Unified cache (see Arm ARM DDI 0487J.a D19.2.27) */
>          if ( ctype_n =3D=3D 0b100 )
> -            break;
> +            llc_level =3D n;
>      }
>
> -    if ( n =3D=3D 0 )
> +    if ( !llc_level )
>          return 0;
>
> +    n =3D llc_level;
> +
>      WRITE_SYSREG((n - 1) << CSSELR_LEVEL_SHIFT, CSSELR_EL1);
>      isb();
>
> --
> 2.43.0
>


From xen-devel-bounces@lists.xenproject.org Thu May 21 19:30:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 19:30:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315857.1585517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ96R-0005PV-Fj; Thu, 21 May 2026 19:30:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315857.1585517; Thu, 21 May 2026 19:30:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ96R-0005PO-CA; Thu, 21 May 2026 19:30:43 +0000
Received: by outflank-mailman (input) for mailman id 1315857;
 Thu, 21 May 2026 19:30:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wQ96P-0005PI-Kb
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:30:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ96O-008ZcB-Dq
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 21:30:40 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a0f5d4b-5cb7-0a2a0a5109dd-0a2a4503b72e-26
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 21:30:40 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a0f5d5f-672d-0a2a45030019-ac6904fea68a-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 21:30:40 +0200
Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18])
 by tor.source.kernel.org (Postfix) with ESMTP id 8F5BA60138;
 Thu, 21 May 2026 19:30:38 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 05A541F000E9;
 Thu, 21 May 2026 19:30:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20260515 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1779391838;
	bh=l1yAdQ2QHe1xE2WaVhmsySMvO+Wp1NH1plgIq8vy5A0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References;
	b=Zu1fnxtLALCAt5kfT2j6qSXUr+DhBWaBEhi/zP/RyzdyNJ/TyWUExKLkAuKof6ozG
	 MmIqwQEcup9heVMljoNJX7qhOr+A3jGvWhl7nD2WU/WKPh+Mw7ermim9oYcDVDPLG5
	 ZxRk1FNwaqQSfVcN5ZKfUo2cKQ6I9Mj5kmWIq8bhNlM5w9mI2FoeYl5RpwIBYsBAnP
	 WlmgvM80aduO2QSUFf4e4MvHwyfuHxu5Yy3aGCsct4dQUXpvkxWdLxTpXqXguZBFNN
	 QG0V/5tWMkGcTMI7AbqjNP2rrQhwPT18ltG6BqG34QOHTzpcj4PhAVbLaTp5eNp3IM
	 SeJLvTxEsNZ4w==
Date: Thu, 21 May 2026 12:30:37 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Cody Zuschlag <cody.zuschlag@gmail.com>, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, michal.orzel@amd.com, julien@xen.org, 
    roger.pau@citrix.com, sstabellini@kernel.org, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] docs/process: document AI-assisted patch tags
In-Reply-To: <3e2ad5b9-ef65-41fd-87bf-823b98fa0c3d@suse.com>
Message-ID: <alpine.DEB.2.22.394.2605211229550.182011@ubuntu-linux-20-04-desktop>
References: <20260519142011.30276-2-cody.zuschlag@gmail.com> <3e2ad5b9-ef65-41fd-87bf-823b98fa0c3d@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-33051d/1779391840-3AD63938-510CD7E4/0/0
X-purgate-type: clean
X-purgate-size: 1945

On Thu, 21 May 2026, Jan Beulich wrote:
> On 19.05.2026 16:20, Cody Zuschlag wrote:
> > --- a/docs/process/sending-patches.pandoc
> > +++ b/docs/process/sending-patches.pandoc
> > @@ -195,6 +195,25 @@ E.g.:
> >  
> >      Requested-by: Jane Doe <jane.doe@example.org>
> >  
> > +### Assisted-by:
> > +
> > +This optional tag can be used when AI-assisted tooling contributed to the
> > +preparation of a patch.
> 
> Noticed only while reading your other email, plus checking the Linux
> wording: s/can/should/ at the very least? (Personally I'd make it a
> requirement.)
> 
> > It is in the format:
> > +
> > +    Assisted-by: <tool-name>[:<model-version>] [tool...]
> > +
> > +E.g.:
> > +
> > +    Assisted-by: Claude:claude-3-opus coccinelle sparse
> > +    Assisted-by: ChatGPT:gpt-5.5
> > +
> > +Basic development tools, such as git, compilers, make, and editors, should
> > +not be listed.
> > +
> > +The person submitting the patch remains responsible for reviewing any
> > +AI-generated content and ensuring the contribution is correct, appropriate,
> > +and compliant with Xen's contribution and licensing requirements.
> > +
> >  ### Signed-off-by:
> >  
> >  This mandatory tag specifies the author(s) of a patch (for each author a
> > @@ -209,6 +228,9 @@ E.g.:
> >  The author must be a natural person (not a team or just a company) and the
> >  `Signed-off-by:` tag must include the real name of the author (no pseudonym).
> >  
> > +AI tools must not add `Signed-off-by:` tags, as only natural
> > +persons can certify the `Developer's Certificate of Origin`.
> 
> Linux emphasizes "MUST NOT". I think that's advisable for us as well. I
> also wonder whether some of their other wording might be worth taking
> verbatim, rather than making our own, slightly different variant.

I agree with Jan's suggestion. Other than that:

Acked-by: Stefano Stabellini <sstabellini@kernel.org>



From xen-devel-bounces@lists.xenproject.org Thu May 21 19:51:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 19:51:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315872.1585526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ9QJ-0001FQ-01; Thu, 21 May 2026 19:51:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315872.1585526; Thu, 21 May 2026 19:51:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ9QI-0001FJ-Tc; Thu, 21 May 2026 19:51:14 +0000
Received: by outflank-mailman (input) for mailman id 1315872;
 Thu, 21 May 2026 19:51:12 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wQ9QG-0001FD-UJ
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 19:51:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ9QG-003jzv-0S
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 21:51:12 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a0f6215-5cb7-0a2a0a5109dd-0a2a450ac93e-14
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 21:51:11 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a0f622e-56b3-0a2a450a0019-ac6904fec5ae-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 21:51:11 +0200
Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18])
 by tor.source.kernel.org (Postfix) with ESMTP id 0EED760098;
 Thu, 21 May 2026 19:51:10 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9C7E41F00A3B;
 Thu, 21 May 2026 19:51:09 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20260515 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1779393069;
	bh=j0gao7VKBf6CWO8/YA2Kiau76clnv0hA6lBej/2KwDc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References;
	b=S9A+4TjO9VK6fn5xQYfa/2L5LLE9RvkkSECE6839T+WlexhpFe8dx1DTovOU+SAfp
	 wPJdhgK5hf1zWIdrSUtE0a+Gumn9bQdSm2CS79F765oql/mOB1RdcH+HhMJO0UQnWb
	 JvkK8q86lAMHaQCuCo9ffiGl/0jFmsUmHpRtAsYsuHL96v1MVuiVYC6RTcO8TKyhl3
	 q28ooFQjJHIE9fMJRIbnIMf6rASdeXvxiojfq3+a0YI3hwUs/uHE3a/KQq3XPTWmyA
	 VIsPEH8DnI1tOhJ6HYmEtWlt8RG8SDOnJk7/rcfTO4uCfKOOxHMSSY38HFGHU8FRxJ
	 HqxMtwTa9DG3A==
Date: Thu, 21 May 2026 12:51:09 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] CI: collect certain intermediate files as artifacts
 (part 2)
In-Reply-To: <d23a061d-afbe-4b38-9352-de4b63d56396@suse.com>
Message-ID: <alpine.DEB.2.22.394.2605211250590.182011@ubuntu-linux-20-04-desktop>
References: <d23a061d-afbe-4b38-9352-de4b63d56396@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-4011c0/1779393071-7035B8B7-37A23DE2/0/0
X-purgate-type: clean
X-purgate-size: 1521

On Wed, 20 May 2026, Jan Beulich wrote:
> Build issues may also surface for analysis jobs. Collect intermediate
> files (if any) there as well. Include xen/.config too, since it's not
> otherwise collected.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

> ---
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2536905486
> 
> --- a/automation/eclair_analysis/build.sh
> +++ b/automation/eclair_analysis/build.sh
> @@ -58,10 +58,21 @@ runtime_failures_docs() {
>  (
>    runtime_failures_docs
>  
> +  ret=0
> +  mkdir -p intermediates
>    make "-j${PROCESSORS}" "-l${PROCESSORS}.0"    \
>         "CROSS_COMPILE=${CROSS_COMPILE}"         \
>         "CC=${CC}"                               \
>         "CXX=${CXX}"                             \
>         "XEN_TARGET_ARCH=${XEN_TARGET_ARCH}"     \
> -       -C xen
> +       -C xen || ret=$?
> +
> +  # Preserve Xen intermediate files.  Some may be there only upon build failure.
> +  for f in xen/.config xen/.xen-syms.* xen/.xen.efi.*; do
> +      if [[ -f $f ]]; then
> +          cp $f intermediates/
> +      fi
> +  done
> +
> +  exit $ret
>  )
> --- a/automation/gitlab-ci/analyze.yaml
> +++ b/automation/gitlab-ci/analyze.yaml
> @@ -18,6 +18,7 @@
>        - "${ECLAIR_OUTPUT_DIR}/*.txt"
>        - '*.log'
>        - '*.json'
> +      - intermediates/
>      reports:
>        codequality: gl-code-quality-report.json
>    rules:
> 


From xen-devel-bounces@lists.xenproject.org Thu May 21 20:18:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 20:18:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315891.1585534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ9qr-00066N-W2; Thu, 21 May 2026 20:18:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315891.1585534; Thu, 21 May 2026 20:18:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQ9qr-00066G-TL; Thu, 21 May 2026 20:18:41 +0000
Received: by outflank-mailman (input) for mailman id 1315891;
 Thu, 21 May 2026 20:18:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wQ9qq-00066A-Ew
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 20:18:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQ9qp-0004AJ-Qz
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 22:18:39 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a0f6854-5cb7-0a2a0a5109dd-0a2a450ad7b4-38
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 22:18:39 +0200
Received: from [40.107.159.141]
 (helo=OSPPR02CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a0f689f-56b3-0a2a450a0019-286b9f8dccd0-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 22:18:39 +0200
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by FRZPR03MB11686.eurprd03.prod.outlook.com (2603:10a6:d10:1cb::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May
 2026 20:18:38 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.21.0048.016; Thu, 21 May 2026
 20:18:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GvA71mX+s4y4gopJoSIC6LqBJfuMbTLgdh8oM+1Z+gL3GkmR/nmPlG8mX8HWp3IvgbVXwvHq402yK5miQDqvqAO8KhWXCEWfANjyaCDZM8O3PXPk3SwY53A/x0JpEvzT+tZr0e82JTOCxWh23AxIU+JR1SwhIcNN6ZtXDjWoJPOFs/EumDDnMWPVYm+ewdmkpXH2XtpbBChPdXvJmNjB4b6cGAJIeqd0zEgEm+eaZleakABnT8eye3plc6TBD4V7F4ed/8NwxS/lYhaS8YeTMOMA/Mq2aCvh5FD/3MTzqaZP6LpnNGNhVAC9LIvQxH0U50DNrX1LSR9n7nl6f55dPA==
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=TfmyFn6PmUG0aFO2tfoAng6JltGb0x4H5SvYYBHyxQQ=;
 b=WxXWRvLPjUEFMwqLmGUU43knGFr8K74w80KKmh+i3SEmKCa3WZNQtvKlFnfK7gTFBu9W6Avsc55kgqismRiE3fQ1jF3nmRuRwoHMe/Xw2vL5NL4x4qdrSI6AVRJPFjBVAdK6cF+KZvhqBsVwNPHAePvTQfs4YGxnLsa+iNqmpCws6J79t9V3mTUL6/mBXAoN8R0T0fQJ5b//Xpnuz9l77n/2Mpe6dfw5AJ6n2x77/OTcDaYNAByiCE4pHpRWq9Z8rPX4d8xBRIG9RqjFY9MYamTM4SqZdvV7p5MI26lk2BK08eEiW+9Ci3dVYbF6joiE0oz0l/uc7i7THwrNG8pXkg==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TfmyFn6PmUG0aFO2tfoAng6JltGb0x4H5SvYYBHyxQQ=;
 b=lr3uTVUcm7i1FqE9rkdHs186IwiSCqELMvS67fNkrFZXi02SAHBUHFCQOx5wPXPzdALufBzKghQWWsejs3fUouHqGfj0Xiqv8Ue2e2vIu5TLpDtl8LAw4ayker3DY71ZECbSzdGAi9lp0a7ceTRl2QE7HGJaY7aKBq1DxdzTVjisZZlxYb4P/LGdbwP2l7+T1uhqlc7izqb7Uudw6TUCw1Plh193CDTxGeKApq2jwMbfbdzdXc5SK9qOtd9GWzU3AXX4Gsiqoyyb8xCkrXmbCd8hoolE3E/UK4GdYPaeVwObzcvD3uC/06YiRCn6iqBFavFpJJKeGyZIDT7WI+ZYpQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/decompress: resolve MISRA R5.5 identifier/macro name
 conflicts
Thread-Topic: [PATCH] xen/decompress: resolve MISRA R5.5 identifier/macro name
 conflicts
Thread-Index: AQHc6V8B/lHbglNK/EOVvgWJnFkvvQ==
Date: Thu, 21 May 2026 20:18:37 +0000
Message-ID:
 <69ef81a2f85b35e6231ae389bf271cad2bbd7dfc.1779394622.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|FRZPR03MB11686:EE_
x-ms-office365-filtering-correlation-id: f7535493-ee34-46d0-6557-08deb776246c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|42112799006|38070700021|11063799006|18002099003|56012099003;
x-microsoft-antispam-message-info:
 o1JH+wM8XVwzyCFq7qRUbyPl2u/lkx0hk7trsr4zZrXEmpLvx4Bp2EdxT0m+ylyyXCIubEGEnKlX7QP9AVOyebRVBDuPzu8zZQHd7g50lzTlBSYKYTybN8vM3BMjMJzo/ZEaAWZzhm1A5NrCHTDx9jsWSUS4tT3iRrESBfWwEty4K8cuKz+9MiAVEvf14WN7PNPpDiRXU4rgciya1avzTlV2eLahbnBrwj48ktHfaZm7UaFx4/lOrNcV+uPW8uSHpErkiEp7YDE4dyLf1RocH4W0mqn9+bE5c6xvjr5J1aFocaLK9RG9H0E90Z8pQ2A4QH+zKrkq4SbZrJ8yX99uqtCkESG7Im5PUUNeU9plNPNfC/j8Du9EQR1k3jQ/OiFpxXBNGbsE8HdT/7EkVDR6Fo8oOE72mUNt7gGT6pZKqT67lRqxgOjdL/GP8hayt09cUV6T/Ht3kr8uAJXRlSt7LpYuXT5gA/InRlwrgmanGgPjN6qTejYoAX9+jnKFVgnRHvlOn2geXRS0GI01GNbeOnx8a/mKfRzryLrFJJ2z1ETyye9QsrEDZtIxOjYm/lM4dXsZAe8J6jRYj5jmmoQpiZ2KtLQjFmqdgML1N2+UiQ4PaF+K70aBHfftYq5OPOnrnBpOQG/+rs64FzFMopdNp98eu1OrTduLPW9hp3vq2/zm7bNjgR9FG10P+FQH6e1Q0Qx8g68Ah4mBRQaNgu2x7YNeM5EJ5+Dp1ffkRBKHoh/ZdRB95GEJ7ssQdmqBPa8v
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(42112799006)(38070700021)(11063799006)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?/sRH0ZUkdM55jJZswrwqx9Y6ooAdhhmLr6vEbGkUIrv8MvOzx8ZdrO+IAF?=
 =?iso-8859-1?Q?D6xjxz2owZnZOao6wKA2xrs+Fle1SByNF3Q7/g+tFtk3cdidWyEjvsBMKT?=
 =?iso-8859-1?Q?QSjz9em/eFSMJCqWcQNjHzDve0iOSLLsXKXWHWqFhKn3Yz2NeGv1FijP5x?=
 =?iso-8859-1?Q?tWuhnQsIbM6NCRueu7Z27DWC9VDCBANYEcV8yeGICCjDsKj1AF+95da7RM?=
 =?iso-8859-1?Q?VOHr/kFd0nglLMI5meret8XmJLPijp9ozxAIao59Wy0t17ZlW776isNbpp?=
 =?iso-8859-1?Q?1RP3eKkAG1w4JS4vGUIgz2OtRF1g3Z3v8ks9eJXMPXJRVZkB4faS0LZgEC?=
 =?iso-8859-1?Q?CkgCmCs5IR5ZeiYDErg8P7gOgDC8ZpZsyAUAx04VonhWPMQuNOML2yVGaK?=
 =?iso-8859-1?Q?y5Pcu9Y8VCqHFWSpVwUtw9kye+TSijnaNIQ6NThsZnZAYCtezcdxwz/xeH?=
 =?iso-8859-1?Q?CDFX08dxoRgIixSEW/hDxz5CaEESqz0Eb0qtq1DX+lfhFmFCyL4h4StBcc?=
 =?iso-8859-1?Q?sXfNLrflYSkj5ougD+CBcxaI8vqnXSHHxfpHizBIDHAdL1qfxC8CA9FY96?=
 =?iso-8859-1?Q?/aYqKpPzhVhzacgmWWtu6RRKftpOxRs7qUCiX9xgjuH4TGmaYN9wehGjpD?=
 =?iso-8859-1?Q?jX52F4JLMOsKvCrPjYxFARL0+b6NVMvK0XFgyuNocOMwtKPb3dBkTpTl+y?=
 =?iso-8859-1?Q?q3Y27XHpdCp6DI0Zrs3LeC+VeH1d/cr+32gld+0smRqc+aErtAehNg4P58?=
 =?iso-8859-1?Q?P7/33q8P7JdAy9ISjzbEa25FYcI8nREawE5JZc27W2iimWrETSjanCqMhO?=
 =?iso-8859-1?Q?iwLiLBYDt22mGZF2KyBCNqC942ptcp613ULKudPXT4AB2pSMyx3MtcYICO?=
 =?iso-8859-1?Q?WqOwYccnbOQ50gd2tydcPzN34vyvw1w6q4qL+wLDHamrGI8nGMFbrLTRpp?=
 =?iso-8859-1?Q?zAlZAaLlkiFJXoh9aE44yCmBfz5oVWZt4b2qfSWrYOo7Hcpv66CIlJF/iT?=
 =?iso-8859-1?Q?4MNqldTbdG7ubk6pSWPiTk3nj0FF0MS4sk4pfITzruzsoTF5YsCa5NuLPx?=
 =?iso-8859-1?Q?I9QYcdGFXj+X/cK1FKpEAUwDvbJX28Ao8nyiUXZNVvPW4ky0ELEGrWj1oU?=
 =?iso-8859-1?Q?9XBCvhucawrsbHZE5b8AE28NbW8TozG+zjHSIY/c1zracqyz6gQ0bpwdjo?=
 =?iso-8859-1?Q?6Qwo+v7xxcdYSm643LaSFnjZFznpqlLbGAFn+5QpKR1bl5fbtVcJQ/eQAX?=
 =?iso-8859-1?Q?HXhf/xLjVb1ZZ7c++OmBjuEAwqn2POIjrJXPPtrlvmkqP0hPi7qD7qBSGT?=
 =?iso-8859-1?Q?bYPDxOGcO78GUgJn2RQfc0dj2ZBOPhvB92Qb/WQ3F2B3RnVJxg629XXJQm?=
 =?iso-8859-1?Q?VW6QY7WieuBQ7OQHpWxCnaNuZWOd6wL9yaIXTRpg61ImKrhESzAmlpSX8m?=
 =?iso-8859-1?Q?rGUtejgIjpNw9pm49zNx82BdlGuol4y4dl5WHh8qjoxRrfBtd+HD6exjHC?=
 =?iso-8859-1?Q?lxmfEOTmuildo1JVhUcaaM1LeHtjHTPictzm1sJ4e2J+LHZ0yqFgTUqxWg?=
 =?iso-8859-1?Q?6xdHwLPSBafDfHgiWqE2jDw1O2AJp/xwuUpQAOEkygJwriBmzqk1+YYkiw?=
 =?iso-8859-1?Q?tElmvc4lyJH1OhSql0mFnxEFOegSslEi4lbUJcxUdwJlI6SgvgEkL9pEwy?=
 =?iso-8859-1?Q?eyjqPEZRfDDZZzyOAEnkcg0uiOOT1ESpsitfXOf13/oyVdMafzQDofk0be?=
 =?iso-8859-1?Q?OuBslQhpXepwh8sDbJr4+1AO65DdqU3CuU9ImRDelfyR4ooOxq+VGUDfA1?=
 =?iso-8859-1?Q?xCbBigfunGveHGeJSg0C9fnfcqSaAEU=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f7535493-ee34-46d0-6557-08deb776246c
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 May 2026 20:18:37.8252
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 34sOWjYVwCMz8iyJSNhLiKszTXzoT67QwsOF1rrq6Sr+Dt9arpozrILVgX5zHU523BhJUwFY1b6Tmjfl5eg4RWuangKePX3yNtaZWAZT6Fk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: FRZPR03MB11686
X-purgate-ID: tlsNG-4011c0/1779394719-70D608B7-34FC9976/0/0
X-purgate-type: clean
X-purgate-size: 1085

Convert 'malloc' and 'free' macros in 'decompress.h' from object-like
to function-like form.

The object-like macros '#define free xfree' perform unconditional text
replacement, causing conflicts with struct field 'free' in 'page_info'
unions. Function-like macros only match when followed by parentheses,
allowing 'free' to be used both as a macro and as a struct field without
conflicts.

Applying function-like form to both 'malloc' and 'free' ensures consistent
macro style.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 xen/common/decompress.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/common/decompress.h b/xen/common/decompress.h
index 034c833665..df9fb9234f 100644
--- a/xen/common/decompress.h
+++ b/xen/common/decompress.h
@@ -9,8 +9,8 @@
 #include <xen/types.h>
 #include <xen/xmalloc.h>
=20
-#define malloc xmalloc_bytes
-#define free xfree
+#define malloc(a) xmalloc_bytes(a)
+#define free(a) xfree(a)
=20
 #define large_malloc xmalloc_bytes
 #define large_free xfree
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu May 21 20:34:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 20:34:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315909.1585543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQA6A-000121-9o; Thu, 21 May 2026 20:34:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315909.1585543; Thu, 21 May 2026 20:34:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQA6A-00011u-6Y; Thu, 21 May 2026 20:34:30 +0000
Received: by outflank-mailman (input) for mailman id 1315909;
 Thu, 21 May 2026 20:34:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3UWwPagYKCb4wierngksskpi.gsq1ir-hizippmwxw.1irtvsnigx.svk@flex--seanjc.bounces.google.com>)
 id 1wQA68-00011o-TS
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 20:34:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQA68-004QCY-9T
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 22:34:28 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3UWwPagYKCb4wierngksskpi.gsq1ir-hizippmwxw.1irtvsnigx.svk@flex--seanjc.bounces.google.com>)
 id 6a0f6c4c-bab6-0a2a0a5309dd-0a2a450badb2-8
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 22:34:28 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3UWwPagYKCb4wierngksskpi.gsq1ir-hizippmwxw.1irtvsnigx.svk@flex--seanjc.bounces.google.com>)
 id 6a0f6c52-212f-0a2a450b0019-d155d6c9bc67-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 22:34:28 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2b9fe2d6793so151339755ad.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 13:34:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779395666; x=1780000466; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=dIireasEnp8AQZjS+o0HC63+VEosuYCnO+TKDPQR05s=;
        b=Mma/CTBS4wvstNA67YLtQiuf7Jo3Ou+lT8Fkz9m1AMBNCvSKvIh3H96gB3EHqJdZdn
         lc1QfGbQ10RTc+8aJ3PO9ytlSkx1SDlbsMsT29twfxGnX9UMfOrh4edsFjeefe2qmUte
         viwChWOdzdrFTCTZZ+BQmotAYOGQHykCNBKGjnxSouk8qnBFNSld6tWuUUpZwXzc4nAr
         RufKXoDB+Aa5aW8+8W1ZdmK+0zr3FyOnfwcBFMOLGTOOmqpScgArioDIU5NpqeCIMoT4
         sb0quKIteRQo1XngVHXdbFEEzRK0Os7q6Mc1PwOM53y+oFVjgus91g+VPlBjKJK1kRJE
         un7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779395666; x=1780000466;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=dIireasEnp8AQZjS+o0HC63+VEosuYCnO+TKDPQR05s=;
        b=exDfCjk/6s5AKdsLhcsgSdPNDjfqXut6gRWtBd1ChXdFq0YdfZS7W6cZ3ytf7lD+wJ
         40RQbZThYHxFzTw8wyw+a5oLt504q0qCIzaSQnTvqzAlceSmkUc6QddVxylemmgvPRD1
         uDzGnQ6LJ0pL3t/LbbgFPVsHxe/T6wGY9fZr7OOn7lHmlt3uuDKydqWqAZX+xK4srhdu
         NWpf6DOXAhU568e0YTjNYzynqygSkYQOxWDk9SAW4Zv3etcqZWao2Xv33A162GtHZ+EQ
         hfkOuirUxxLDADTkwMhwbtWOr2jnrA/M6l/6OuH1XPqbytW39pGbWHEy9jPW5kgS9LN2
         ptgw==
X-Forwarded-Encrypted: i=1; AFNElJ/Kn9xyP1YhAkzZZ8vyPwf4Q0W5tFHIbyF9VV+DTsox1OIjgyAGLhR82tPFdhK4ZtlXxJLzhGmMiVI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxpijK+vkgc07JdGzPvDTujUqvkIblEhaP1vC7/XQihwqZ0tRWK
	qYAsRnJJCnpUlI2AlbS7gQOGYiKNZtoiDh6NCvvMf3wBEWJeIfnizihiwHV3slnnDj5nSjCNgf/
	P14Uyzw==
X-Received: from plip15.prod.google.com ([2002:a17:903:38cf:b0:2bc:ae06:63be])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:4405:b0:2b9:6458:1a2c
 with SMTP id d9443c01a7336-2beb06733bemr4530925ad.13.1779395665926; Thu, 21
 May 2026 13:34:25 -0700 (PDT)
Date: Thu, 21 May 2026 13:34:24 -0700
In-Reply-To: <7489ff3cc1ff402bf0ade38272fc52dcbcc75fc1.camel@amazon.co.uk>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com> <20260515191942.1892718-37-seanjc@google.com>
 <7489ff3cc1ff402bf0ade38272fc52dcbcc75fc1.camel@amazon.co.uk>
Message-ID: <ag9sUI8pBJda0Ml5@google.com>
Subject: Re: [PATCH v3 36/41] x86/kvmclock: Get local APIC bus frequency from
 PV CPUID Timing Info
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw@amazon.co.uk>
Cc: "tglx@kernel.org" <tglx@kernel.org>, "longli@microsoft.com" <longli@microsoft.com>, 
	"luto@kernel.org" <luto@kernel.org>, 
	"alexey.makhalov@broadcom.com" <alexey.makhalov@broadcom.com>, "jstultz@google.com" <jstultz@google.com>, 
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>, 
	"ajay.kaher@broadcom.com" <ajay.kaher@broadcom.com>, "jan.kiszka@siemens.com" <jan.kiszka@siemens.com>, 
	"haiyangz@microsoft.com" <haiyangz@microsoft.com>, "kas@kernel.org" <kas@kernel.org>, 
	"pbonzini@redhat.com" <pbonzini@redhat.com>, "kys@microsoft.com" <kys@microsoft.com>, 
	"decui@microsoft.com" <decui@microsoft.com>, 
	"daniel.lezcano@kernel.org" <daniel.lezcano@kernel.org>, "wei.liu@kernel.org" <wei.liu@kernel.org>, 
	"peterz@infradead.org" <peterz@infradead.org>, "jgross@suse.com" <jgross@suse.com>, 
	"boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>, 
	"linux-coco@lists.linux.dev" <linux-coco@lists.linux.dev>, "kvm@vger.kernel.org" <kvm@vger.kernel.org>, 
	"mhklinux@outlook.com" <mhklinux@outlook.com>, "thomas.lendacky@amd.com" <thomas.lendacky@amd.com>, 
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, 
	"bcm-kernel-feedback-list@broadcom.com" <bcm-kernel-feedback-list@broadcom.com>, 
	"tglx@linutronix.de" <tglx@linutronix.de>, "nikunj@amd.com" <nikunj@amd.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>, "vkuznets@redhat.com" <vkuznets@redhat.com>, 
	"rick.p.edgecombe@intel.com" <rick.p.edgecombe@intel.com>, 
	"virtualization@lists.linux.dev" <virtualization@lists.linux.dev>, "sboyd@kernel.org" <sboyd@kernel.org>, 
	"x86@kernel.org" <x86@kernel.org>
Content-Type: text/plain; charset="us-ascii"
X-purgate-ID: tlsNG-42698a/1779395668-1B979F3B-FE8F1F62/0/0
X-purgate-type: clean
X-purgate-size: 1565

On Wed, May 20, 2026, David Woodhouse wrote:
> On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> > When running as a KVM guest with kvmclock support enabled, stuff the APIC
> > timer period/frequency with the local APIC bus frequency reported in
> > CPUID.0x40000010.EBX instead of trying to calibrate/guess the frequency.
> > 
> > See Documentation/virt/kvm/x86/cpuid.rst for details.
> > 
> > Signed-off-by: Sean Christopherson <seanjc@google.com>
> 
> I still don't much like the way this is done inside kvm_get_tsc_khz().

Yeah, I don't like it either (understatement).  Aha!  native_calibrate_tsc() is
the oddball, all of the PV flows stuff lapic_timer_period when parsing the initial
timing info.  I'll just do that.  Blindly writing a global is all kinds of fugly,
but that's a future
problem to solve.

> We also probably ought to be looking for the timing leaf on other
> hypervisors including VMware 

VMware gets the frequency via hypercall.  Why, I have no idea.  I'll let the
VMware folks deal with that.

	eax = vmware_hypercall3(VMWARE_CMD_GETHZ, UINT_MAX, &ebx, &ecx);

> and probably Bhyve too.  Should it be done somewhere else?

I'm not opposed to that, though I don't know that it'd be a net positive. The
"hard" part of getting the info is finding the CPUID base and checking if the
leaf is available.  Unlike the native CPUID leaf, no math is necessary, and so
once the leaf is obtained, getting the frequency is trivial.

Regardless, I definitely don't want to take it on in this series. :-)



From xen-devel-bounces@lists.xenproject.org Thu May 21 20:36:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 20:36:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315914.1585552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQA7a-0001WS-IQ; Thu, 21 May 2026 20:35:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315914.1585552; Thu, 21 May 2026 20:35:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQA7a-0001WL-FY; Thu, 21 May 2026 20:35:58 +0000
Received: by outflank-mailman (input) for mailman id 1315914;
 Thu, 21 May 2026 20:35:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3qWwPagYKCRgG2yB704CC492.0CAL2B-12J2996GHG.L2BDFC720H.CF4@flex--seanjc.bounces.google.com>)
 id 1wQA7Z-0001WD-2p
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 20:35:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQA7Y-004QRX-Bf
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 22:35:56 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3qWwPagYKCRgG2yB704CC492.0CAL2B-12J2996GHG.L2BDFC720H.CF4@flex--seanjc.bounces.google.com>)
 id 6a0f6c6b-5cb7-0a2a0a5109dd-0a2a45068c0e-42
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 22:35:56 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3qWwPagYKCRgG2yB704CC492.0CAL2B-12J2996GHG.L2BDFC720H.CF4@flex--seanjc.bounces.google.com>)
 id 6a0f6caa-7371-0a2a45060019-d155d6c9ecb0-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 22:35:56 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2baf7378ad0so68158605ad.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 13:35:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779395754; x=1780000554; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ipWhDnS3c8Of+slJErBTF5Vqt6ODkaCbWe9MFVov0zI=;
        b=ntZh7ZXBaSWRovqlpnIIgMPqdo4tu3T694iSQ13t9k3MjuKmkiemJ2X4FwkET2PuY+
         wuhmdYYaDOwT9dVloSv3eWUWq8VK0hyJVw80qTsDMlhH5Wj0dCvLcdk4uF82uWwxGDas
         lzeK83bpH7quj3SaT6BX2HvOWFI2icv4P2N8A+GDoSSc//4XWJHLXbk75VCBf6sux1/t
         Z/NeQiAsHTl1QzpnnSBNK3JqSKL/qEpRoVstu9bycH65ZdJhzI8Ls+16Lc5lUtvEcxBD
         lamocgY/GEx5jcUiYFexm0Kn+LACONtRufcgQxguaQVuA4lgueeOgXcW3aTRlGCuIkC+
         Yd/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779395754; x=1780000554;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=ipWhDnS3c8Of+slJErBTF5Vqt6ODkaCbWe9MFVov0zI=;
        b=AcH+W1v0kMmJ/sAKjHl1xPqBQNwCl/tn+XLg7MvFLSJlMJaQE6mzS4abm74DP2YMpU
         +3STs+qNv9u5zsYNRbxvTceFDy/82HUZ1kFoeWPLgxmvHA33mH15Hk6VN+nCEGRnCDDC
         FOWCl8lpbPiT9d0WlZ4sW8K2/wctHUFE/xYduuh43iwPZhUTAjkwrAff8vryRF7Z+LD8
         M6Kpzp/+rp3uMj8NUHI7yt1wuKNl4JfGgUWsmCDttadBwxdPJhz+Tx4xvdydCaa5/PJK
         64B/6c8dbNadQlgvhmE6nUT2SIKvb7RvmGZmU+VCPIszqm57Uxt0CDnXfpBRoQo1GozS
         YRzQ==
X-Forwarded-Encrypted: i=1; AFNElJ/qO7K6H25Araqe+h0JW/TEHA8RGz7UwrYrmjd9HR6l26MuAkCIKaB22DMRfc6qKNAItfHwqPGQdGc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzlrHZYkfPtP/gBbjRTVTJ8PoF0VnzvIsHrygJrAWwMLo+GKYn5
	hsNja88+Bpw1zBu0N0vgtVXtCvG6CNTTCEAo5MmfIKd1blL9s7/TFaKzOr7a/RAWZWBR2Aguw+0
	E7ofRHg==
X-Received: from pglv7.prod.google.com ([2002:a63:1507:0:b0:c80:192c:51ff])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:d491:b0:3b2:8677:813e
 with SMTP id adf61e73a8af0-3b328ec5909mr476744637.42.1779395753857; Thu, 21
 May 2026 13:35:53 -0700 (PDT)
Date: Thu, 21 May 2026 13:35:53 -0700
In-Reply-To: <13d79ba1e0450068c9573ccd8deb3ec007aea8d6.camel@infradead.org>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com> <20260515191942.1892718-30-seanjc@google.com>
 <13d79ba1e0450068c9573ccd8deb3ec007aea8d6.camel@infradead.org>
Message-ID: <ag9sqdLCAqJwaaE-@google.com>
Subject: Re: [PATCH v3 29/41] x86/paravirt: Plumb a return code into __paravirt_set_sched_clock()
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-16d1c6/1779395756-8D387D75-F3CD5B9E/0/0
X-purgate-type: clean
X-purgate-size: 909

On Thu, May 21, 2026, David Woodhouse wrote:
> On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> > Add a return code to __paravirt_set_sched_clock() so that the kernel ca=
n
> > reject attempts to use a PV sched_clock without breaking the caller.=C2=
=A0 E.g.
> > when running as a CoCo VM with a secure TSC, using a PV clock is genera=
lly
> > undesirable.
> >=20
> > Note, kvmclock is the only PV clock that does anything "extra" beyond
> > simply registering itself as sched_clock, i.e. is the only caller that
> > needs to check the new return value.
> >=20
> > Signed-off-by: Sean Christopherson <seanjc@google.com>
>=20
> Oooh... can we use this to reject the kvmclock when we have a stable
> and reliable TSC even for non-CoCo guests?

Yes, but I would much rather "fix" kvmclock to not even attempt to register=
 itself
as the sched_clock (which this series does).


From xen-devel-bounces@lists.xenproject.org Thu May 21 20:53:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 20:53:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315927.1585562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQAOj-0005hI-Ty; Thu, 21 May 2026 20:53:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315927.1585562; Thu, 21 May 2026 20:53:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQAOj-0005hB-Qt; Thu, 21 May 2026 20:53:41 +0000
Received: by outflank-mailman (input) for mailman id 1315927;
 Thu, 21 May 2026 20:53:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <30HAPagYKCUc1njwslpxxpun.lxv6nw-mn4nuur121.6nwy0xsnl2.x0p@flex--seanjc.bounces.google.com>)
 id 1wQAOi-0005h5-52
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 20:53:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQAOh-004TER-E5
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 22:53:39 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <30HAPagYKCUc1njwslpxxpun.lxv6nw-mn4nuur121.6nwy0xsnl2.x0p@flex--seanjc.bounces.google.com>)
 id 6a0f70a2-e002-0a2a0a5209dd-0a2a4506b134-18
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 22:53:39 +0200
Received: from [209.85.210.201] (helo=mail-pf1-f201.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <30HAPagYKCUc1njwslpxxpun.lxv6nw-mn4nuur121.6nwy0xsnl2.x0p@flex--seanjc.bounces.google.com>)
 id 6a0f70d1-7371-0a2a45060019-d155d2c9e1d3-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 22:53:39 +0200
Received: by mail-pf1-f201.google.com with SMTP id
 d2e1a72fcca58-8353fbc7ad5so3306944b3a.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 13:53:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779396817; x=1780001617; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=mtuSO9Df1yE7JlouGMlcWCEpEnvAH6qlC/HYl6ROkD4=;
        b=OSwruEvJMq1hIQHF8ejpwsQW1CDi8rgR2ypgBuXP8Lox1IDV53jRsfd6geFTJz39Nt
         R0YPwdHcpWR6s40D3RdbcJlg+bngIDV6bFr56DS3DOkvYwzsEgj/iOqNi31WV8Uk+IqY
         z4EsHWircUucj6IoN3lOcupj8C3KoqjoPFm1b5w4xY7+JPhBMrVLFlZhFDT7usHompDG
         SkNFFDtgiYobgGCIuq2G7ucCwIVcvq2jZm33rKXElr9HzCP+02eKa0mm29iJK3WMqPmq
         xYHje6hZ2Sod7tzhdq5dTQ95unbP6IXo4ji79ec0Y94asfxKSU0lWWeoP7TAzhOKMhxk
         3NPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779396817; x=1780001617;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=mtuSO9Df1yE7JlouGMlcWCEpEnvAH6qlC/HYl6ROkD4=;
        b=pdVeWN+z/On+ttjm7trDKkG435gzvGaCoYpbxt7balqseL7gfxfRv+ZM620YxgisT5
         9lzWJowFIYAkZpUkyKhRIP14yN4oBqiVtZYqZk0DHserkVL/44NNW2Usol4OkdqapcXV
         kZvIjwzp2X5e7Wc2qQOggOpFUFzbOFEcYwbTMdBx2m0J//QpGGvKLDdoIoXRpSqT+0l3
         2XGc8V3gIthtU08R3nCXPFsn69raiN6nLCE1HkgzX4bt7Rpk+v4bq91u73qL2ttpgx+O
         9H5vecGP4PezCvBVMd6LGDM7FZFQO70qYdRp1q4d27R9idrYgQZg58ODROvxxwCwHFSz
         9wWQ==
X-Forwarded-Encrypted: i=1; AFNElJ86hW8nbweT8Df81btvPDYeIn9hllcT2GD5lkPO0Wx/isFON3QgCb7R+askAL4lIUMdAsZC1ycXLEU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzO4NDgPA2vJmwfrWifDkNufMwXm8G1IRfhJ280w/MbR9mo5qOj
	jZ8+MDnX1zRqi/RogGX1wNEi+8TQfHRMP6M0v6bJpsBztzkbkqtPBZ+bvoVce9rmlVHdx0hRK8G
	OxTQtvA==
X-Received: from pfbg21.prod.google.com ([2002:a05:6a00:ae15:b0:82f:915e:291f])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:3e06:b0:837:b97d:2fe
 with SMTP id d2e1a72fcca58-8415f18b012mr734843b3a.18.1779396816710; Thu, 21
 May 2026 13:53:36 -0700 (PDT)
Date: Thu, 21 May 2026 13:53:35 -0700
In-Reply-To: <44e0d60548d317fd59895f18bd17220dfb2f834b.camel@infradead.org>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com> <20260515191942.1892718-3-seanjc@google.com>
 <44e0d60548d317fd59895f18bd17220dfb2f834b.camel@infradead.org>
Message-ID: <ag9wz3RiJOtVZrK0@google.com>
Subject: Re: [PATCH v3 02/41] x86/tsc: Add helper to register CPU and TSC freq
 calibration routines
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-16d1c6/1779396819-8757ED75-AB378057/0/0
X-purgate-type: clean
X-purgate-size: 4753

On Wed, May 20, 2026, David Woodhouse wrote:
> On Fri, 2026-05-15 at 12:19 -0700, Sean Christopherson wrote:
> > Add a helper to register non-native, i.e. PV and CoCo, CPU and TSC
> > frequency calibration routines.=C2=A0 This will allow consolidating han=
dling
> > of common TSC properties that are forced by hypervisor (PV routines),
> > and will also allow adding sanity checks to guard against overriding a
> > TSC calibration routine with a routine that is less robust/trusted.
> >=20
> > Make the CPU calibration routine optional, as Xen (very sanely) doesn't
> > assume the CPU runs as the same frequency as the TSC.
> >=20
> > Wrap the helper in an #ifdef to document that the kernel overrides
> > the native routines when running as a VM, and to guard against unwanted
> > usage.=C2=A0 Add a TODO to call out that AMD_MEM_ENCRYPT is a mess and =
doesn't
> > depend on HYPERVISOR_GUEST because it gates both guest and host code.
> >=20
> > No functional change intended.
> >=20
> > Reviewed-by: Michael Kelley <mhklinux@outlook.com>
> > Tested-by: Michael Kelley <mhklinux@outlook.com>
> > Signed-off-by: Sean Christopherson <seanjc@google.com>
>=20
> Mildly concerned that we might want to support multiple options =E2=80=94=
 does
> it have CPUID 0x15? Does it have 0x40000x10? Does it have a pvclock?
> There are various permutations of those which are perhaps best handled
> by *trying* each one, in some order, and populating a struct with the
> answers?
>=20
> But on the basis that perfect is the enemy of good,

This has been bothering me too.

Aha!  AHA!  Idea.

... 4 hours later ...

Mhahahaahah, victory is mine!!!!

TL;DR: Overriding x86_platform_ops hooks is dumb.

To your point about making an informed decision, that's essentialy what thi=
s series
is already doing, just in a very roundabout way:

  1. x86_platform.calibrate_{cpu,tsc}() are initialized to "native" version=
s
  2. Hypervisor init code runs and conditionally overrides calibrate_{cpu,t=
sc}()
  3. CoCo init code runs and conditionally overrides calibrate_{cpu,tsc}()

So the ordering you want is already there, as is "trying" each source to so=
me
extent, in the form of steps #2 and #3 overriding the hooks if and only if =
their
source of information is valid.  For all intents and purposes, the hardenin=
g I
was adding by formalizing the calibration overrides was to enforce the abov=
e ordering.

But that's obviously all but impossible to follow, _and_ it's pointless.

For every PV case, including TDX and SNP, "calibration" is simply informati=
on
retrieval, i.e. it never changes (barring broken hypervisors/firmware), and=
 the
information is always available during early boot.

Contrast that with the pre-CPUID CPU frequency calibration, where the frequ=
ency
might change, the kernel is making a best guest based on other timekeeping =
sources,
and not all timekeeping sources are available during early boot.

And so overriding x86_platform.calibrate_{cpu,tsc}() for PV code is complet=
ely
unecessary, because steps #2 and #3 already know the frequency when they ov=
erride
the hooks, and "success" is guaranteed, i.e. the kernel won't have to switc=
h to a
"late" calibration flow.

If we provide x86_hyper_init hooks:

	unsigned int (*get_tsc_khz)(void);
	unsigned int (*get_cpu_khz)(void);

then we can kill off x86_platform.calibrate_{cpu,tsc}() entirely, explicitl=
y
define the preferred ordering (user-forced =3D> CoCo =3D> Hypervisor =3D> n=
ative), and
depup some of the hypervisor code.

E.g. this is what I've got for the early flow.  Testing now.=20

  void __init tsc_early_init(void)
  {
	unsigned int known_cpu_khz =3D 0, known_tsc_khz =3D 0;

	if (!boot_cpu_has(X86_FEATURE_TSC))
		return;
	/* Don't change UV TSC multi-chassis synchronization */
	if (is_early_uv_system())
		return;

	if (x86_init.hyper.get_cpu_khz)
		known_cpu_khz =3D x86_init.hyper.get_cpu_khz();

	if (tsc_early_khz)
		known_tsc_khz =3D tsc_early_khz;
	else if (cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC))
		known_tsc_khz =3D snp_secure_tsc_init();
	else if (boot_cpu_has(X86_FEATURE_TDX_GUEST))
		known_tsc_khz =3D tdx_tsc_init();

	/*
	 * If the TSC frequency is still unknown, i.e. not provided by the user
	 * or by trusted firmware, try to get it from the hypervisor (which is
	 * untrusted when running as a CoCo guest).
	 */
	if (!known_tsc_khz && x86_init.hyper.get_tsc_khz)
		known_tsc_khz =3D x86_init.hyper.get_tsc_khz();

	if (known_tsc_khz)
		setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);

	if (!determine_cpu_tsc_frequencies(true, known_cpu_khz, known_tsc_khz))
		return;
	tsc_enable_sched_clock();
  }


From xen-devel-bounces@lists.xenproject.org Thu May 21 21:01:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 21:01:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315938.1585572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQAWU-0007Zj-LW; Thu, 21 May 2026 21:01:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315938.1585572; Thu, 21 May 2026 21:01:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQAWU-0007Zc-Hz; Thu, 21 May 2026 21:01:42 +0000
Received: by outflank-mailman (input) for mailman id 1315938;
 Thu, 21 May 2026 21:01:40 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3sHIPagYKCSsZLHUQJNVVNSL.JVTeLU-KLcLSSPZaZ.eLUWYVQLJa.VYN@flex--seanjc.bounces.google.com>)
 id 1wQAWS-0007YE-Ol
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 21:01:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQAWR-004L1S-5t
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 23:01:39 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3sHIPagYKCSsZLHUQJNVVNSL.JVTeLU-KLcLSSPZaZ.eLUWYVQLJa.VYN@flex--seanjc.bounces.google.com>)
 id 6a0f729a-5cb7-0a2a0a5109dd-0a2a450bd03e-14
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:01:39 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3sHIPagYKCSsZLHUQJNVVNSL.JVTeLU-KLcLSSPZaZ.eLUWYVQLJa.VYN@flex--seanjc.bounces.google.com>)
 id 6a0f72b1-212f-0a2a450b0019-d155d6cae84b-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:01:38 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2bd1dbcccf6so109114475ad.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 14:01:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779397297; x=1780002097; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=iN4mR6FXbVUwqAWLl+PlqYFyvLBNkg9d4d7Akdf1bJQ=;
        b=JIMauFvrwPnBeNtRDTIluZXbpmUvFefVyHUBcIWXka7+LjZOUZ48q+mq1Sl9FMhj6R
         aBJjM/a1ell70tS6zSU82SHDDKEm8JAXlEcOWuRi6Dm+boyxeqIOCGyX7TiULqfkImRt
         qLxWHMu0Eybykn053m2iEMPxNt8rmSDpxnEyPFaL0FwL9Fmnzhc8SAWvT8B2mLMrhvPe
         I06scUk1niZn7NW8KwnBRfBIjH1I6NcibhdMq+Md+ECHVDeizeOWOlrLr2U8Mzz9owxN
         jTI044Svrals1qFuDVScfS5WVPwr60pDp7DkqDYHtc1uWRVVpqSE1abBI8pgqF3pwnfr
         VQzQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779397297; x=1780002097;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=iN4mR6FXbVUwqAWLl+PlqYFyvLBNkg9d4d7Akdf1bJQ=;
        b=pMV9KLcgX96fu4zo3+k5rgR2gQhJIBb1knnln8ycycwll6fVgsBZy8tREpI8BvV+e2
         pZ23sZnwnZFRe59n1WHNrWDP0brNfZgYnWWtFX50wZ2eT8a8Ybs4byd8t9jRbhOCvONZ
         xEmfmnULkwP5503aZ3TCm54SVMMeCA6bcrHoQItC5SgLBbs1ygsNLN6wVqhmKngO7E31
         +f66QAR31g9OUMjSFG5ExeCyoXhSECUMtFnJ6BhqyCx485GQhkY4BwwZ3aJQUcCWSbpp
         b/i2N5hp4+zPTqbr5LISnuxRaXbGElYuqS+NJh1Ow2IJuq9gZ3b4IKIf0kWccODXuENW
         G19Q==
X-Forwarded-Encrypted: i=1; AFNElJ95T+dXTxteqvcywflvRZsVpsSz1gPAyLBpIM1OwGZhOjRQqlC0ganQFYlTyNBMCS7IbsBwdj5T3iA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxuavIVFEfo+XwfzGBFtNFjRSlSaWYUhPg0haCCVi4SpGTtVyUV
	iCli7efC2Y7FQ+SUWlG2UjEWqhVA00tzXWkB9dboeRkwpT7HqBu7w1LlgmbxXrwPL8fvYC7cxdx
	7znEiag==
X-Received: from plge10.prod.google.com ([2002:a17:902:cf4a:b0:2bd:40d4:e407])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:e84c:b0:2ba:4ad9:70f6
 with SMTP id d9443c01a7336-2beb06aa272mr6036375ad.31.1779397296608; Thu, 21
 May 2026 14:01:36 -0700 (PDT)
Date: Thu, 21 May 2026 14:01:35 -0700
In-Reply-To: <c54fd01b-fe22-4c9c-8d5f-5b317de07a40@oracle.com>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com> <20260515191942.1892718-38-seanjc@google.com>
 <c54fd01b-fe22-4c9c-8d5f-5b317de07a40@oracle.com>
Message-ID: <ag9yryEe0A7_AZCT@google.com>
Subject: Re: [PATCH v3 37/41] x86/kvmclock: Use TSC for sched_clock if it's
 constant and non-stop
From: Sean Christopherson <seanjc@google.com>
To: Dongli Zhang <dongli.zhang@oracle.com>
Cc: kvm@vger.kernel.org, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Kiryl Shutsemau <kas@kernel.org>, 
	Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>, David Woodhouse <dwmw@amazon.co.uk>
Content-Type: text/plain; charset="us-ascii"
X-purgate-ID: tlsNG-42698a/1779397299-19165F3B-09F33C45/0/0
X-purgate-type: clean
X-purgate-size: 1778

On Thu, May 21, 2026, Dongli Zhang wrote:
> On 2026-05-15 12:19 PM, Sean Christopherson wrote:
> > Prefer the TSC over kvmclock for sched_clock if the TSC is constant,
> > nonstop, and not marked unstable via command line.  I.e. use the same
> > criteria as tweaking the clocksource rating so that TSC is preferred over
> > kvmclock.  Per the below comment from native_sched_clock(), sched_clock
> > is more tolerant of slop than clocksource; using TSC for clocksource but
> > not sched_clock makes little to no sense, especially now that KVM CoCo
> > guests with a trusted TSC use TSC, not kvmclock.
> > 
> >         /*
> >          * Fall back to jiffies if there's no TSC available:
> >          * ( But note that we still use it if the TSC is marked
> >          *   unstable. We do this because unlike Time Of Day,
> >          *   the scheduler clock tolerates small errors and it's
> >          *   very important for it to be as fast as the platform
> >          *   can achieve it. )
> >          */
> > 
> > The only advantage of using kvmclock is that doing so allows for early
> > and common detection of PVCLOCK_GUEST_STOPPED, but that code has been
> > broken for over two years with nary a complaint, i.e. it can't be
> > _that_ valuable.  And as above, certain types of KVM guests are losing
> > the functionality regardless, i.e. acknowledging PVCLOCK_GUEST_STOPPED
> > needs to be decoupled from sched_clock() no matter what.
> 
> Has it been broken for two years because of pvclock_clocksource_read_nowd()?

Yep.  Because pvclock_clocksource_read_nowd() ignores PVCLOCK_GUEST_STOPPED, the
flag only ever gets recognized when the kernel reads WALL_CLOCK, which AFAICT
only happens at initial boot, and during suspend and resume.


From xen-devel-bounces@lists.xenproject.org Thu May 21 21:02:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 21:02:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315947.1585579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQAWz-0008Lk-1O; Thu, 21 May 2026 21:02:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315947.1585579; Thu, 21 May 2026 21:02:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQAWy-0008Ld-V3; Thu, 21 May 2026 21:02:12 +0000
Received: by outflank-mailman (input) for mailman id 1315947;
 Thu, 21 May 2026 21:02:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wQAWw-0008Fs-ET
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 21:02:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQAWv-004UOb-8A
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 23:02:09 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0f72c6-bab6-0a2a0a5309dd-0a2a4501a4fa-10
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:02:08 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0f72d0-c1f2-0a2a45010019-5a9b3222d494-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:02:08 +0200
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=u09cd745991455d.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wQAWj-000000091X0-14bj; Thu, 21 May 2026 21:01:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=iLoELKLWpDGPgksb84jNueZXasbLhpDKcJu4JpBYNBE=; b=ZrG/hxvDxHGHTiiXy3ON4tSZFz
	LJTsZov20Do9F/YMSJKdHj/MX3xATnTPBDT5jLmmVf8P9jNjSOkomt1bMFh+PcWXKzoaf8bdBRSiq
	Zp88nHZ1QRYphW4zRvSuB2jflAoaPHN0YFdWr7GSkzb1bPnLvFxvhfIfM9Yavtxhz43x1bRVfDiwM
	C0OMqUR0V2kk4mmGXajNGr+augHkMleedpDaQwZnD2d9sOYgTuSpFkkOULIe1DmcY65j3p/Yyom4w
	T5dcNTitjcNCUnkWi117TFh01tiK6Gqrtu8bfisMU8HqIdJDt7ZxnbLVNRDXbif7JnQnTmrygv4Qi
	KUAZh6ng==;
Message-ID: <342098f6bfe1e4c7b233433df8f79713b4220614.camel@infradead.org>
Subject: Re: [PATCH v3 02/41] x86/tsc: Add helper to register CPU and TSC
 freq calibration routines
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
 "K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang
 <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, Dexuan Cui
 <decui@microsoft.com>, Long Li <longli@microsoft.com>, Ajay Kaher
 <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen
 <dave.hansen@linux.intel.com>, Andy Lutomirski <luto@kernel.org>, Peter
 Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, Daniel
 Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>,
 John Stultz <jstultz@google.com>, Rick Edgecombe
 <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 May 2026 22:01:55 +0100
In-Reply-To: <ag9wz3RiJOtVZrK0@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-3-seanjc@google.com>
	 <44e0d60548d317fd59895f18bd17220dfb2f834b.camel@infradead.org>
	 <ag9wz3RiJOtVZrK0@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-tb6au8i+ZytuAIdzKd7A"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d62444/1779397328-B655DFF4-3409E52C/0/0
X-purgate-type: clean
X-purgate-size: 8726


--=-tb6au8i+ZytuAIdzKd7A
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, 2026-05-21 at 13:53 -0700, Sean Christopherson wrote:
>=20
> E.g. this is what I've got for the early flow.=C2=A0 Testing now.=20
>=20
> =C2=A0 void __init tsc_early_init(void)
> =C2=A0 {
> 	unsigned int known_cpu_khz =3D 0, known_tsc_khz =3D 0;
>=20
> 	if (!boot_cpu_has(X86_FEATURE_TSC))
> 		return;
> 	/* Don't change UV TSC multi-chassis synchronization */
> 	if (is_early_uv_system())
> 		return;
>=20
> 	if (x86_init.hyper.get_cpu_khz)
> 		known_cpu_khz =3D x86_init.hyper.get_cpu_khz();
>=20
> 	if (tsc_early_khz)
> 		known_tsc_khz =3D tsc_early_khz;
> 	else if (cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC))
> 		known_tsc_khz =3D snp_secure_tsc_init();
> 	else if (boot_cpu_has(X86_FEATURE_TDX_GUEST))
> 		known_tsc_khz =3D tdx_tsc_init();
>=20
> 	/*
> 	 * If the TSC frequency is still unknown, i.e. not provided by the user
> 	 * or by trusted firmware, try to get it from the hypervisor (which is
> 	 * untrusted when running as a CoCo guest).
> 	 */
> 	if (!known_tsc_khz && x86_init.hyper.get_tsc_khz)
> 		known_tsc_khz =3D x86_init.hyper.get_tsc_khz();
>=20
> 	if (known_tsc_khz)
> 		setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
>=20
> 	if (!determine_cpu_tsc_frequencies(true, known_cpu_khz, known_tsc_khz))
> 		return;
> 	tsc_enable_sched_clock();
> =C2=A0 }

That seems reasonable. Where does the call to native_calibrate_tsc()
happen; is that from determine_cpu_tsc_frequencies()?=20

--=-tb6au8i+ZytuAIdzKd7A
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMTIxMDE1
NVowLwYJKoZIhvcNAQkEMSIEIH4dK8ucNAn44bQJRj8gYPnctkEFdujKbmptKtW6caqZMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAYJufFOskUPn7
mDayKVPBKZ3o8R8JO12Sx+Ici/5e2vbBOv1VO7xW4dMPdDSZ9dzlrIm+bLH5hJkCRQaYlHO9XsBV
kbIGV7HrVAlJLJNQvOqohJmTtLQyrgObDAKenZn59JaLCG7GdV+LnkO+ZcHMXSq5tODvCZlb/Yqw
DxF4yevbdmtePn5OJItKJx294kxPQphkygnx/FlByqQZQUklDX0AVva643zJUlnftbR55aoZB8Il
MwpWX6OlVAzGE5Pd3m07JkqXtSqtsDzbs9USyfPiW+l+n/wjKjVuYXngchJsboMBcAX5pseVyP/V
GK7BEPyNtEokfCCgUw+t61ItbN9aIH0IzPWaOQKlEIiXwk090U90OagX2d6q/HqBwyZ2nt4JrTiJ
Bt+XGU8EZ2twyELXY7nONcTE/g8cfNN0egsd7s1JPTVl147/RdBc5kLEo0X0e8Cz0+jKoXDECl4h
V1Owz+nXWBxBUtb31jthhgLuH2RHZHU/L8c89YL6zVEywU0QaV3+vEccLWREPpwg3rPa8QOF0vlR
ntmHzi3zbzVvGRwpaWxAYrkWlFyfbvb87kTgeGmnM8XmWbG6AiKvZQfNCRYQBBrL3KjfzlYlIP0F
5HLNTVD1mjhPDdmZPcO4m5oF15jVv9Yd7e6JCtIYx+5UvIhrxS7svcy7PInuB+YAAAAAAAA=


--=-tb6au8i+ZytuAIdzKd7A--


From xen-devel-bounces@lists.xenproject.org Thu May 21 21:17:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 21:17:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315961.1585588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQAlm-0002nm-7Z; Thu, 21 May 2026 21:17:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315961.1585588; Thu, 21 May 2026 21:17:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQAlm-0002ne-4L; Thu, 21 May 2026 21:17:30 +0000
Received: by outflank-mailman (input) for mailman id 1315961;
 Thu, 21 May 2026 21:17:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3ZXYPagYKCeYaMIVRKOWWOTM.KWUfMV-LMdMTTQaba.fMVXZWRMKb.WZO@flex--seanjc.bounces.google.com>)
 id 1wQAlk-0002jc-QY
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 21:17:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQAlk-000AZp-6Y
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 23:17:28 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3ZXYPagYKCeYaMIVRKOWWOTM.KWUfMV-LMdMTTQaba.fMVXZWRMKb.WZO@flex--seanjc.bounces.google.com>)
 id 6a0f763e-5cb7-0a2a0a5109dd-0a2a4504d9aa-28
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:17:28 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3ZXYPagYKCeYaMIVRKOWWOTM.KWUfMV-LMdMTTQaba.fMVXZWRMKb.WZO@flex--seanjc.bounces.google.com>)
 id 6a0f7666-1dec-0a2a45040019-d155d6cae497-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:17:27 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2ba718173d1so113083305ad.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 14:17:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779398246; x=1780003046; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=/jW9XtyrtynBxdJYPv96DfQ4Rw5zedPSv+/BbmcgSxI=;
        b=jScUDgRSeCSqlprq8ADZS69zrw6EHpR7+DvzGX+K5pm1f7kLoNFg5jmRri0ZhIQ/S+
         MXnIGLlDG1YMRteNRDeWw998Pa5++VqZDcHSO/apEdRiWikUWuX/+6rVeru7Zcq7ANhh
         RswIVz2C4X3LNE7KFr29tlg9InNNkII3lRoaMW2hCYu3YDJHFQHw1jDcsTQU6NUz0t76
         gLeFuxKzgF7Aem1vQWbTZoz6lAYh3jps8pm85etF5GR98aXTSUoegN4tD7KVB6I9uGqp
         9+5C+m+jYSOHg+fidPJHHDHwQpt0EwgUMXhBzrKdLvoHcqyYrhZpbr2G5qhUioB2jYk7
         TUPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779398246; x=1780003046;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=/jW9XtyrtynBxdJYPv96DfQ4Rw5zedPSv+/BbmcgSxI=;
        b=sdRgSQDvidb9zenTUiRmY8c2Pd3K0tBdIhiE8nt4KHLYv3agjjuUore0CazBtLirFp
         z7BPbOCwb9aIDGA2xzhwr1FvCtS14tTv0aM6pQD6ZND82vOk01d/BktBMSRXKVCvq1Ou
         I9yEW0PyXV77IjCLhqIqHFlInpv/A5bMRWj4DrnJTIVryejvSDrI8nd4rTf7qz9xvNL0
         Lnk3gqqnEee7YCWkDjyeGCrDGsPxN27+V6Vt+nFV2WQqqN9k590zzeZtzybCtM0rUfrS
         0LTyyL1SditBuNOdpm/hXGEuYxlFlCs9tSyhfLg/rvQL6HW9tYpdz//izpD0wh52MmWx
         ehSg==
X-Forwarded-Encrypted: i=1; AFNElJ8VTSEvQ+1hCVfsuV9FFLgjcessFFKAXCX7eSIhEMbsFbCehqz76u/CVt4by0hhQUMYast4jQTXpV4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwoIlQ8Wl9uZbDGkRDxdiV1gj47urtBSkJpgfVDpp67IEl8Pzvc
	Z4gGs7u4dr30HMiO2AxD5xwxBej3hOyNHb8nQnSLIj9trvizWtVW5C+qjdsS1RzT9PcaxwmDZJJ
	hU+4hOQ==
X-Received: from plbkh13.prod.google.com ([2002:a17:903:64d:b0:2b0:c78a:4537])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:ccd0:b0:2b4:5f19:1d34
 with SMTP id d9443c01a7336-2beb05eec0amr6266755ad.17.1779398245853; Thu, 21
 May 2026 14:17:25 -0700 (PDT)
Date: Thu, 21 May 2026 14:17:25 -0700
In-Reply-To: <342098f6bfe1e4c7b233433df8f79713b4220614.camel@infradead.org>
Mime-Version: 1.0
References: <20260515191942.1892718-1-seanjc@google.com> <20260515191942.1892718-3-seanjc@google.com>
 <44e0d60548d317fd59895f18bd17220dfb2f834b.camel@infradead.org>
 <ag9wz3RiJOtVZrK0@google.com> <342098f6bfe1e4c7b233433df8f79713b4220614.camel@infradead.org>
Message-ID: <ag92Ze_FADmL1llo@google.com>
Subject: Re: [PATCH v3 02/41] x86/tsc: Add helper to register CPU and TSC freq
 calibration routines
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen <dave.hansen@linux.intel.com>, 
	Andy Lutomirski <luto@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	John Stultz <jstultz@google.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, x86@kernel.org, 
	linux-coco@lists.linux.dev, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, Michael Kelley <mhklinux@outlook.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ebf023/1779398248-40F753FF-922242DB/0/0
X-purgate-type: clean
X-purgate-size: 2245

On Thu, May 21, 2026, David Woodhouse wrote:
> On Thu, 2026-05-21 at 13:53 -0700, Sean Christopherson wrote:
> >=20
> > E.g. this is what I've got for the early flow.=C2=A0 Testing now.=20
> >=20
> > =C2=A0 void __init tsc_early_init(void)
> > =C2=A0 {
> > 	unsigned int known_cpu_khz =3D 0, known_tsc_khz =3D 0;
> >=20
> > 	if (!boot_cpu_has(X86_FEATURE_TSC))
> > 		return;
> > 	/* Don't change UV TSC multi-chassis synchronization */
> > 	if (is_early_uv_system())
> > 		return;
> >=20
> > 	if (x86_init.hyper.get_cpu_khz)
> > 		known_cpu_khz =3D x86_init.hyper.get_cpu_khz();
> >=20
> > 	if (tsc_early_khz)
> > 		known_tsc_khz =3D tsc_early_khz;
> > 	else if (cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC))
> > 		known_tsc_khz =3D snp_secure_tsc_init();
> > 	else if (boot_cpu_has(X86_FEATURE_TDX_GUEST))
> > 		known_tsc_khz =3D tdx_tsc_init();
> >=20
> > 	/*
> > 	 * If the TSC frequency is still unknown, i.e. not provided by the use=
r
> > 	 * or by trusted firmware, try to get it from the hypervisor (which is
> > 	 * untrusted when running as a CoCo guest).
> > 	 */
> > 	if (!known_tsc_khz && x86_init.hyper.get_tsc_khz)
> > 		known_tsc_khz =3D x86_init.hyper.get_tsc_khz();
> >=20
> > 	if (known_tsc_khz)
> > 		setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
> >=20
> > 	if (!determine_cpu_tsc_frequencies(true, known_cpu_khz, known_tsc_khz)=
)
> > 		return;
> > 	tsc_enable_sched_clock();
> > =C2=A0 }
>=20
> That seems reasonable. Where does the call to native_calibrate_tsc()
> happen; is that from determine_cpu_tsc_frequencies()?=20

Yep.

static bool __init determine_cpu_tsc_frequencies(bool early,
						 unsigned int known_cpu_khz,
						 unsigned int known_tsc_khz)
{
	/* Make sure that cpu and tsc are not already calibrated */
	WARN_ON(cpu_khz || tsc_khz);

	if (early) {
		/*
		 * Early CPU calibration can only use methods that are available
		 * early in boot (obviously).
		 */
		if (known_cpu_khz)
			cpu_khz =3D known_cpu_khz;
		else
			cpu_khz =3D native_calibrate_cpu_early();
		if (known_tsc_khz)
			tsc_khz =3D known_tsc_khz;
		else
			tsc_khz =3D native_calibrate_tsc();
	} else {
		cpu_khz =3D pit_hpet_ptimer_calibrate_cpu();
	}

	...


From xen-devel-bounces@lists.xenproject.org Thu May 21 21:34:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 21:34:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315977.1585599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQB1X-0006Zb-Fp; Thu, 21 May 2026 21:33:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315977.1585599; Thu, 21 May 2026 21:33:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQB1X-0006ZU-Bm; Thu, 21 May 2026 21:33:47 +0000
Received: by outflank-mailman (input) for mailman id 1315977;
 Thu, 21 May 2026 21:33:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wQB1V-0006ZO-Es
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 21:33:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQB1T-00F3IC-Cf
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 23:33:44 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0f7a09-2eae-0a2a0a5409dd-0a2a45068bce-30
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:33:42 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0f7a34-7371-0a2a45060019-94a3921776bc-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:33:42 +0200
Received: from pps.filterd (m0482517.ppops.net [127.0.0.1])
 by m0482517.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 64LKjdal922754
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 14:33:40 -0700
Received: from ch4pr04cu002.outbound.protection.outlook.com
 (mail-northcentralusazon11013062.outbound.protection.outlook.com
 [40.107.201.62])
 by m0482517.ppops.net (PPS) with ESMTPS id 4ea9cagcv2-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 14:33:40 -0700 (PDT)
Received: from MW4PR03CA0237.namprd03.prod.outlook.com (2603:10b6:303:b9::32)
 by LV3PR16MB6647.namprd16.prod.outlook.com (2603:10b6:408:27a::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May
 2026 21:33:36 +0000
Received: from MWH0EPF000C618A.namprd02.prod.outlook.com
 (2603:10b6:303:b9:cafe::d1) by MW4PR03CA0237.outlook.office365.com
 (2603:10b6:303:b9::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.17 via Frontend Transport; Thu, 21
 May 2026 21:33:36 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 MWH0EPF000C618A.mail.protection.outlook.com (10.167.249.122) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Thu, 21 May 2026 21:33:35 +0000
Received: from pps.filterd (m0426315.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64LKxCbi2047036
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:33:34 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4e7afrwvfh-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 17:33:34 -0400 (EDT)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id QB1GwYsmqxj2GQB1HwxSR3; Thu, 21 May 2026 21:33:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=syniypRRsUpjlhhY1OgRFFdGbkG
	N0+6TBd6U04YUH58=; b=FpP+s/F9i58AzLbC0yNrJvEAh7OO5Xx9uZ3vred18YC
	oPfl3fzQBysxKcqXMaXHH1Mjpe2krEmpmRi1xEL+kXYSlvq5X2T2WzUs3saKgB4y
	LcleAL2/Wlkq9eqda8RD7AUMpQxuxuMYmxdRW9umlzLqyA6OokMJUHyLKyACwNzp
	bg3Ucx4owlf72kZVH4cEpo6DYKJvl/jgo4cEflziVhy4mvn974dcCLqbmz4ADTRB
	yeacVnV1PZF4WW/9YWwxFD8rhxVUGaLfxY6v23ZDDFq5lgSWz8h7wOXe89ZQpNPd
	AKf7dRgOHm2RBOrlSlrtuykWJyBrkYjt1PgxFF4NeKA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OVYtuYr5iuH49XtMI4bTMIn9N3IXehvE+LHjEsUvox1CPW3+dyIlVJqQCBf1vU8mfZN4yL3S2bfOsqRewvTKR3vsh11zxWt7zjn/iGiUQDz8A10yjl1q2I8y4vR91pbkBah4hCXt8SWfny7fhw0iYe1p4VDB6zHTtF2kZWffMy5kRUN6lz/5j1S14wekItotpC+lrW/IKnCxxiRzssp1cpVLAYz+yY/FYsgX8nRe9pBQjeBcIGt1MXXVJSQjZsnMc8DpbtG5+eUROElksl0d6ZGPuiDsUvQUSI+iqnPilAcuqso3KPe2lUnm+GPRlJdileV88PzG7lr1s7J6mPL40A==
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=syniypRRsUpjlhhY1OgRFFdGbkGN0+6TBd6U04YUH58=;
 b=ESiT56EXagy+YXBkESCdrrBd7UpHk7ohClNaHpAMUuzTF5DpzrZQ4N6/7mhTNah25wKCSp4Zodn0ZI8XCkV0S9fUHkMQhTgBy0UFN45CIG+AAHxWCmzP0lh877+A0l/BMELWM2AshNP80LrbKMYwglP6p2TqbYpdGGEausAXRp2Y1/Kqs1e+sKGEBm1efjRcEO1XJUafqdBKzlPbRt6NVqMokJOQDfec1sO83xzGGFtcmUJIn4t2yb9goID8R0a6a01RTKaeNRlt+pkaKFz4BlaCHt2hLO4y0onySRklH2m2wmP4ETe4UbAwNnrSanMY9pOaWmjweEYPR1VCIkXhVw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=syniypRRsUpjlhhY1OgRFFdGbkGN0+6TBd6U04YUH58=;
 b=Mcm5Avs0Miz+iMcqIp9eWcIKSJjOvoZIRbrw2iKwSNtX2P9me7PHxNW0Xd1XsM1J6U64ypl7d0CU64R5NaxoF6xvUe+CN/54TSB9tpgVMXK44C9RD0hRVQakvuv2gInFoDcBP6zyM8i67HBCPFMIV3iwttq5jgs70V3mG8NfGJs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=syniypRRsUpjlhhY1OgRFFdGbkGN0+6TBd6U04YUH58=; b=kXnt6Bczvo5z
	8F7AEXaGgT5eOFpkezeuId/GW8VOsUYKzXIz5UCgybwZgqpH/3nOuQnd4hyNBjkR
	TYrDzi46n/v9Gb2b6IVEAgaxXMZQDWKLiOu9tLj32h6NTYlR3DmvulWR9ARcXOVv
	L6PO6VHc6j9jdbGlOFsCYRwCom9cOECwjspG3XRoHPybS6I/1o2So8CCxsfWrE0x
	T0FnxXRkF/eyPDUT2PcvokYlgda4polrovSdHpRrw6l8RaX77lYcuSM3GcBPwTeu
	0ojBGj84P3GmsdOwRM/WsE6B/VGNdcGVSYkC2KPjlpXNuYGPvcVa+J5x4280w2FR
	jDOOEUkSsQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=syniypRRsUpjlhhY1OgR
	FFdGbkGN0+6TBd6U04YUH58=; b=S2ZCA15hGYnW0AvoDEwNMIQCWCeBUPppIdtX
	iAMstQqgb+5/aBZC8AQiS7esZB0UJ0L6k8iz/NTxxEIAbrzzqiXy2ACdoMPQ8z5f
	q8vfdyJyQDc+f5LTCpHMwgkRKBC5u20oUn2EvxOIZA88FOpp+QNP3cGnEO3o8Fpy
	1CZcUfXSNrvtyQYh8768JR25SU1DMyATWZhkQkq/DvOGgD3lI+sRglGgGebohDL7
	pWAcWxj4m+HAacSmC8GaNCbH9E0oIljA153kisXxZdeq5ypQEVwgAppTpzSodNPJ
	p6/xgQ8cpNQddXjRQAo5xO37MrwsORkZTscDjp5qK2k6QSbpdQ==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: QB1GwYsmqxj2GQB1HwxSR3
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Thu, 21 May 2026 14:33:30 -0700
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: xen-devel@lists.xenproject.org,
        Carlo Nonato <carlo.nonato@minervasys.tech>,
        Marco Solieri <marco.solieri@minervasys.tech>,
        Luca Miccio <luca.miccio@amd.com>,
        Mykola Kvach <mykola_kvach@epam.com>,
        Andrew Cooper <andrew.cooper3@citrix.com>,
        Anthony PERARD <anthony.perard@vates.tech>,
        Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
        Julien Grall <julien@xen.org>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2 2/2] xen/common: llc-coloring: reject empty color
 tokens
Message-ID: <ag96KkrGE7noKv/9@kraken>
References: <cover.1779388510.git.mykola_kvach@epam.com>
 <94d7290edbda36c652579b625acaa4d7cdf1aa68.1779388510.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <94d7290edbda36c652579b625acaa4d7cdf1aa68.1779388510.git.mykola_kvach@epam.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-21_04,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 bulkscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 spamscore=0
 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605210216
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000C618A:EE_|LV3PR16MB6647:EE_
X-MS-Office365-Filtering-Correlation-Id: e4499bdd-2d03-4033-6bf8-08deb7809d89
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|1800799024|82310400026|376014|18002099003|22082099003|56012099003|4143699003|11063799006;
X-Microsoft-Antispam-Message-Info:
	g2ApTCnaLOd5ijo2OSGKnOwKzjAI1ak8/MzYHYkguGfq4v2us8UVCdnPSwdhXMUQ0/AqSnVSLIYC+Zj+aR0+LjSFLRU1RVmblqnX1KtUJqlpBJ8lQrcsYzvOC1j6gMGDq6CsHo/dRAIz+ybFLNQExb2YEAmatBvJOJc90U4aaFHQKOJi1pw6y5yuJn1fhqy9ajM3r4jZ6WB1NdHsS1h1IkndqYyGGoiZfU++FRFY8WY/QQDkiiIcfj4X5alp1DxWuvPIuNH6j3kSVO4gtuJ85aLGlvqtNV/kXcVPCaeeCz0f5fUDdx28p2LjteAU6D0joSwikkfoGLfOlsM355jgu9AubrfsKvyVkovXoPx7jIagAt6cyhGKvIXCkB52Z5Hn6TfSS47RLdfOBHrM6DNgIjTwKs4DL7Py/4hafTlRFMD/mHTGNCDbi/UORDS5Swc08pG0aeyVsJKaZFODQWCI9DYJC7ln9Fh3nj4ht0EIEg7tVdVOwdOacTEHN1QxoQ36xoUinDbiyswA854ftO4NcFyi6EBCeN4J/Ikuf6bJlJ2M7i6tHY5RBctawIBcqR8sf+7dbwv+KYVkSGOjW1g65a8Dm5PXDvN1c7dXKLDYTi55QdqMwvaba7MQVPiOgjsCcQRNYkzUpNOXd9FY1bdHIxBHxYGpLFoAtnIgYEVxei1zmSb0RSAGnQ55R2Zwjg0u/M+DRuxhwYVNBW8n0CJgt4XuV1zs81iipvwGxwPazYA=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(82310400026)(376014)(18002099003)(22082099003)(56012099003)(4143699003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	t4g5UQatuwoxMmzIbsd+6gzwQx0HxKjfWAibKrJWP8BLWfv0Yv2YfLMKDcH80Shv84zsvP3nm3v2GCJSIhEy3arPZu7fHFtKzCx+rA0+GybliA7MkB3mHeHRx/pT09yDVlkt+mi1b/12p5vppKtgdqMM3I71my9iBJn8mxdyTVxXV9dJRWyUIm0Zfwy3B3ljWkD9U4GCueSZY0XiB5CmdElrVqf4pzgFwctdpTsZaUM3OrVlAt9uErBRPj6zwWLSi7IKx57t9KUUWiuf4KlHv5Phgsc1AbZJgImlmXD3T9+aiAcWR313/v7bDH+NzSgaJneU7JuLkfQyNYaTMYzz8CsWcs/Tjq8so+2iZvuY3BPhlxyfh35HCzwy2p4MLyOOZyNeqhBFCH+I/icCIrpexh5qWGijDculd7JMmRMmxF+kW52IjvRGKse4/2fM2iYc
X-Exchange-RoutingPolicyChecked:
	oh3XPXp/ox65ZlZXlEng4VnUJHRqShCkCL51urkGM2xYp+lp/RdnjbOQ9OSjBq8xPz2jznmXmaiP6H/aVMX0VyRZLvo2DCegzxPQs4IRHnOBxsjnP8zg3IqVzkdmtWSdrGaLcXfSgwSUihH0+6I85P59chgBPlPy2nwCrXrLzA0PEbplOppTFbjeAa/AhtNxpFOWmEoY0/pMsN8fiGunjvWukpAj9McQym6uyjGqBPgEZoU1kCi+rupBNZ7ZO+da4mWmcsQFZSJRTMcXzTIcXcCJhElOBPGOoFGB+WGsDBlL5eRfIpbg+U0t7i1OMyHqlWwDgGQGOF6CIsUx7yDaQA==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	N0+8bd7e1U5GuViSF9ZQ93np/E6Gcmso39CK96yfj9tRIF8z81ApJmuPja3XSIEVYzB2xhp7VaUTXep90OZD+TezJC5n4i9IieFkiksDQJe1eSM13a8TThX4PMk1b/bpCR5CzlzmHGCgjgRc7xLsxeZxX+dUyakOWqmA8qMakQbqVo39ZPskcq4xcXa1q6b1h9ElXJCXAlOnb2xuE1KKSonkTXW6C6i/XtQ1U6MtIjExkIIwYZEVcijrI3HGp2i3bgPAjp0+dyz2nJRq+lN1QM3kxjDsza3lEpDfBMLf0Bf3q/ZMvl+BC0NaHsVt/DaBbuSwIeof2a6cJaBkYuciuM7wGZtZ3LU40zjI6x000dtl7nHl7WcXIMb8hp3qq/AtNkhW6On9uEHZG2o4qkcqI8BacEv8VsDY1ucZac21CmMCcKFnprZeWKT5fxLGYiO/Fy6roi9aeg0/yWr7eEkApC5vR6Ykq6XXGQefxfUihkf35vUtQ9jEvU97OVMtOCU+fBViOUIbvP3KcGVM2ILFxqUSPA2p0g/unHjwcAXezZz9yDKBk0dQzc8IQ9PJqd7SnW6QcUuQMYYigVaevIDyKVCfZ3iJxofaKpAZepa5cd0tsofOsZitgTs+PGKEqcWTlQk11nIYPSYFEXn7Gu47jw==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 21:33:35.6861
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e4499bdd-2d03-4033-6bf8-08deb7809d89
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C618A.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR16MB6647
X-Proofpoint-GUID: CXDT23BaQHpQSOZAY4zjbE9xGeiIJah1
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIxMDIxNyBTYWx0ZWRfX7gJmhGCyMVjZ
 XVYDFNglRYUU7EajH6KySconDJcOSwb1htdfWf+b6JeGbSB0A0NJLeT6wPS8MiLh/NGZoJygofv
 +6xdeExUIsSr/PgMGEzCVJ+UI61Vd170/64nCiXvExTImmUJbLrq891I/u/cXl4vL6c1ZRyqySH
 aeMJjqU9odxtt1UwYr1xnvpxaNkb2n5hvx0b78yaHC+1UkjRPhZ/MbQKLZfKzunxnBgFydewp4n
 5pnFqRSoUs5DjdWL8WZx2QJK+E7ASr/VdxbHXoFxEeyJRxrwm5bFSYAu98ytr7pQAU09ubMeM2O
 uj5owSz6nieOZXbjQBeu3y1/1hxyKu68zhv1zLAZkBPnFtbwFQiMVLUNPbcbtjbTAy3uxsf8GfQ
 Gt9h7w0cEYGoHKjVTLrUalSA2pGD8wAzdhQKKYvxkzsm3fIpReGBmPdJglQXaERlwKQG0vRAcT4
 6THqfQqgdMxrxC/1ETw==
X-Proofpoint-ORIG-GUID: CXDT23BaQHpQSOZAY4zjbE9xGeiIJah1
X-Authority-Analysis: v=2.4 cv=B7aJFutM c=1 sm=1 tr=0 ts=6a0f7a34 cx=c_pps
 a=2HCcruDS7e3rZRcUQV6B1Q==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=MLwXIh1eZMowsRZfVxRb:22
 a=DBfv99YmAAAA:8 a=zd2uoN0lAAAA:8 a=cbNQJ9GKAAAA:8 a=dEE_NiS0NobiUu1PXT0A:9
 a=CjuIK1q_8ugA:10 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-21_04,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 malwarescore=0 spamscore=0 adultscore=0 phishscore=0 lowpriorityscore=0
 impostorscore=0 priorityscore=1501 clxscore=1015 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605210217
X-purgate-ID: tlsNG-16d1c6/1779399222-7F57ED75-B78ECEF7/0/0
X-purgate-type: clean
X-purgate-size: 801

On Thu, May 21, 2026 at 09:41:22PM +0300, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> parse_color_config() currently accepts delimiters where a color value
> is expected because simple_strtoul() returns zero without advancing the
> input pointer. This makes strings such as ",2-6", "-10,19-20" or
> "1,,2" look as if an empty value was color 0.
> 
> Also fix the DT color parsing error message by adding the missing
> newline and including the domain ID, matching the style of the color
> validation error below.
> 
> Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>

Looks good, thanks!

Reviewed-by: Denis Mukhin <dmukhin@ford.com> 


From xen-devel-bounces@lists.xenproject.org Thu May 21 21:38:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 21:38:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1315986.1585606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQB5n-0007IU-2K; Thu, 21 May 2026 21:38:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1315986.1585606; Thu, 21 May 2026 21:38:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQB5m-0007IN-Vt; Thu, 21 May 2026 21:38:10 +0000
Received: by outflank-mailman (input) for mailman id 1315986;
 Thu, 21 May 2026 21:38:09 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wQB5l-0007H7-Ai
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 21:38:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQB5k-004QCS-Nf
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 23:38:08 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0f7b06-5cb7-0a2a0a5109dd-0a2a45068074-24
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:38:08 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0f7b3f-7371-0a2a45060019-5a9b3222d02c-3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:38:07 +0200
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=u09cd745991455d.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wQB5W-000000094VX-0s0t; Thu, 21 May 2026 21:37:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=sto4vrdGp1xVl4xxluQsgqhSN4UEkQ/MLv3WN0D9yfk=; b=LXuT3nYEMlTaLuHFZsDAwQQvD9
	pfHkh+x/71+8eRSzLdbvIb+OkRxVn+tiRFMYGWHM7wM8LBg1x2bFQ+M5AHHQrhQeQMW0MPHL5wvYy
	RUqo2JBmVRWytz/ctqc2HPucGt82uc+lZyOMeI71JDmbBiynF84n7QBT3V1RoVmA1Ij91D73WiRra
	It3PtIKXpGwPeoVfphgLTvCkr8EnW66WQua5aZbvBpPUumSBqmcmrLkCiwtg+PR4/TAiaPLgYMft7
	VsfAGiDbelE3Slzj1KKF5w1MGZC5JtqkO4SxcNNPBF+kUIbeMPkkB7+6Oi5X77Z82swELNGdJuL8D
	z9VxHj8A==;
Message-ID: <ba007c2797b98adc39a23a82c2f44d73e2301f75.camel@infradead.org>
Subject: Re: [PATCH v3 02/41] x86/tsc: Add helper to register CPU and TSC
 freq calibration routines
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, 
 "K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang
 <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, Dexuan Cui
 <decui@microsoft.com>, Long Li <longli@microsoft.com>, Ajay Kaher
 <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Jan Kiszka <jan.kiszka@siemens.com>, Dave Hansen
 <dave.hansen@linux.intel.com>, Andy Lutomirski <luto@kernel.org>, Peter
 Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, Daniel
 Lezcano <daniel.lezcano@kernel.org>, Thomas Gleixner <tglx@kernel.org>,
 John Stultz <jstultz@google.com>, Rick Edgecombe
 <rick.p.edgecombe@intel.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>,
 x86@kernel.org,  linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org,  virtualization@lists.linux.dev,
 linux-kernel@vger.kernel.org,  xen-devel@lists.xenproject.org, Michael
 Kelley <mhklinux@outlook.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 May 2026 22:37:52 +0100
In-Reply-To: <ag92Ze_FADmL1llo@google.com>
References: <20260515191942.1892718-1-seanjc@google.com>
	 <20260515191942.1892718-3-seanjc@google.com>
	 <44e0d60548d317fd59895f18bd17220dfb2f834b.camel@infradead.org>
	 <ag9wz3RiJOtVZrK0@google.com>
	 <342098f6bfe1e4c7b233433df8f79713b4220614.camel@infradead.org>
	 <ag92Ze_FADmL1llo@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-0JYzVT5JMNJwWPKngpYY"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-16d1c6/1779399487-8E78DD75-CCA3CCFE/0/0
X-purgate-type: clean
X-purgate-size: 8941


--=-0JYzVT5JMNJwWPKngpYY
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, 2026-05-21 at 14:17 -0700, Sean Christopherson wrote:
> =C2=A0
> > That seems reasonable. Where does the call to
> > native_calibrate_tsc()
> > happen; is that from determine_cpu_tsc_frequencies()?=20
>=20
> Yep.

Great, thanks.

> static bool __init determine_cpu_tsc_frequencies(bool early,
> 						 unsigned int
> known_cpu_khz,
> 						 unsigned int
> known_tsc_khz)
> {
> 	/* Make sure that cpu and tsc are not already calibrated */
> 	WARN_ON(cpu_khz || tsc_khz);
>=20
> 	if (early) {
> 		/*
> 		 * Early CPU calibration can only use methods that
> are available
> 		 * early in boot (obviously).
> 		 */
> 		if (known_cpu_khz)
> 			cpu_khz =3D known_cpu_khz;
> 		else
> 			cpu_khz =3D native_calibrate_cpu_early();
> 		if (known_tsc_khz)
> 			tsc_khz =3D known_tsc_khz;
> 		else
> 			tsc_khz =3D native_calibrate_tsc();
> 	} else {
> 		cpu_khz =3D pit_hpet_ptimer_calibrate_cpu();
> 	}


If, after all that, we still end up in the case where we *do* have to
calibrate it against a legacy timer (which sadly IIRC is the case even
on some fairly modern AMD generations), could we round the answer?

We currently have *far* more precision than accuracy, leading to values
like 2399997kHz which change every boot (and end up being what gets
*advertised* to guests on such a host... and then unless we're careful
to avoid it, we end up trying to *scale* a different host's TSC down
from 2399998 to 2399997 for a guest which is migrated from the first
host...)

We should just fix them (e.g. to 2400000kHz) and let NTP sort them out.

Something like "round to the nearest MHz if that's within =C2=B110PPM"?



--=-0JYzVT5JMNJwWPKngpYY
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMTIxMzc1
MlowLwYJKoZIhvcNAQkEMSIEIE+XmWuFsBU8NlntT6LOqoNgNh/FTwICoGk2sg+rWM22MGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAiBvHqII6Me0/
SXchG+pLDbI78xdCGHWf7BAuLRqmB1bhWvPN5m7TDHybt+/swAcoCb+hH+9L9x/KKKWfNpP2fAgZ
kw5MnPUxPZNj2lAyX9QEV2LaMiv8l7F27+LGlKhyfk+Yoh3DtdO8l1aKXs/DFWq26OcxDRTCzCHp
pdUO5Z4ceous/Y+GeL874j3errP34gKQWT9okfac0zTIXaHJVDND0xulcUC6hGq4qxWKEAp7KJja
IVSGWe0+BkzIsABs6QrsDw5hwevo9RIKAdBN/XEfuIJTIDaGPrt7ADq1XMHG0c3goBJ50vA+jDm3
syosVbIX8MJfijRn0bL0gWK7DT9ujDFJmVJII3RQnL7WK7KpxJafDAjqj0ZyPhQfFb3xtlpE7W/S
prgq1dx5qQCYs1mB0LRzGcLWpjI6ATWCQ1XEscI5FwnnRdENSqJa18cROLHimJBOZY/aI4Noajyo
zEXnp23v2UXn6OaT3U8QUz2m3STzict9vj4QoOhevrxsShShicxO3yRPVw6GwOLZ8alFusPGC9Bo
jtpvZlB7aqTTA+OAXqh7i8I+R/iM9LBqaSo2CRLjShEm0PktDez4fn4o021xaI6Da94N2TxIMWal
wro8gyEjxDLV2UgkjeGkpJVPrv1IfDDFn7KFFG9AbtVrllQtT2W33Qj8yLFZLW4AAAAAAAA=


--=-0JYzVT5JMNJwWPKngpYY--


From xen-devel-bounces@lists.xenproject.org Thu May 21 21:53:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 21:53:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316006.1585615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQBKG-0002oc-87; Thu, 21 May 2026 21:53:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316006.1585615; Thu, 21 May 2026 21:53:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQBKG-0002oV-5E; Thu, 21 May 2026 21:53:08 +0000
Received: by outflank-mailman (input) for mailman id 1316006;
 Thu, 21 May 2026 21:53:07 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wQBKF-0002oP-GE
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 21:53:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQBKE-003ydx-FC; Thu, 21 May 2026 23:53:06 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0f7ebf-e002-0a2a0a5209dd-0a2a450cde72-2
 for <multiple-recipients>; Thu, 21 May 2026 23:53:05 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0f7ec1-62f1-0a2a450c0019-5a9b32229816-3
 for <multiple-recipients>; Thu, 21 May 2026 23:53:05 +0200
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=u09cd745991455d.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wQBK0-000000095A5-459f; Thu, 21 May 2026 21:52:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:To:From:Subject:Message-ID:Sender:Reply-To:Cc:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=lQm3XTbI80oVhehBjbAuKtJa9CPDd69/S5bnpm9lMHU=; b=YIYHCGEZRxwx/UUbFZUWbgIEQQ
	gIewyfR79ILiDfa4YbMDamIBYvhGuG2PXygUjdfM5S4xzCBmnFvsv/mWxbs2Pvnu169oxJY1aXqD5
	gP/NgJZdzLDQmP9Yx0D5Aylx+VnmjB/r9e9G9FBmketmaAuA9n602778rHHKHgTAthZLtdKGiEj0u
	hyzYy0a6I/0MccuSvdzG//WMVsLbGT0sQyfoeck+KJo0IAfLsPmH916B6aB7REqHPci+AkAQ8vFoT
	Z2SufJoWcwXGklfEYAdWkbLUbGcBQxVnTiq8mew7nfTXVVWxrgI3dljn1l057r54TuLgM1LbzwV8Q
	J3WG9daA==;
Message-ID: <3ad6cd109480772ade3c11f23b9c1d7a9855d67e.camel@infradead.org>
Subject: Re: [PATCH v4 27/30] KVM: x86: Add KVM_VCPU_TSC_EFFECTIVE_FREQ
 attribute
From: David Woodhouse <dwmw2@infradead.org>
To: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
 Shuah Khan <skhan@linuxfoundation.org>, Sean Christopherson
 <seanjc@google.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
 <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,  Dave Hansen
 <dave.hansen@linux.intel.com>, x86@kernel.org, "H. Peter Anvin"
 <hpa@zytor.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross
 <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Paul
 Durrant <paul@xen.org>, Jonathan Cameron <jic23@kernel.org>, Sascha
 Bischoff <Sascha.Bischoff@arm.com>, Marc Zyngier <maz@kernel.org>, Joey
 Gouly <joey.gouly@arm.com>, Jack Allister <jalliste@amazon.com>, Dongli
 Zhang <dongli.zhang@oracle.com>,  joe.jin@oracle.com, kvm@vger.kernel.org,
 linux-doc@vger.kernel.org,  linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org,  linux-kselftest@vger.kernel.org
Date: Thu, 21 May 2026 22:52:51 +0100
In-Reply-To: <20260509224824.3264567-28-dwmw2@infradead.org>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
	 <20260509224824.3264567-28-dwmw2@infradead.org>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-kieuLTxJtkGwFtplrKxg"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-d25034/1779400385-F4C79CF5-A8603D8F/0/0
X-purgate-type: clean
X-purgate-size: 8988


--=-kieuLTxJtkGwFtplrKxg
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sat, 2026-05-09 at 23:46 +0100, David Woodhouse wrote:
> From: David Woodhouse <dwmw@amazon.co.uk>
>=20
> Add a read-only per-vCPU attribute that reports the effective TSC and
> APIC bus frequencies as seen by the guest, after hardware TSC scaling
> is applied.
>=20
> This allows userspace to populate CPUID leaf 0x40000010 (the "generic"
> timing information leaf used by FreeBSD, XNU, and VMware) with correct
> values, without KVM needing to modify guest CPUID at runtime.
>=20
> The effective TSC frequency differs from what userspace requested via
> KVM_SET_TSC_KHZ due to the granularity of hardware scaling and the
> host kernel's measurement of its own TSC frequency.

As I do another pass on this series, I don't think I can stand by that
claim.

Even on AMD where we only have a 32-bit shift for TSC scaling, that's
still 0.23 PPM, or about half a Hz precision when scaling a 2400MHz
TSC.

And this API was returning kHz anyway! So it was as likely to be
*introducing* inaccuracy by returning 2299999kHz when userspace had
actually asked for 2300000 and the real rate ended up being
2399999.9995.

I think I'll drop it; and userspace should just use KVM_GET_TSC_KHZ.

That does leave userspace still needing a way to get the APIC bus
frequency, to populate CPUID. So maybe I'll just make an attribute
which returns that as a single value.

Or *maybe* KVM should just populate leaf 0x40000010 in its default
template? I thought we decided not to do that though, as unsuspecting
userspace might pass it through uncorrected from the default values? We
could put *zero* in the TSC part, but that just seems like it's another
potential weirdness for the guest to see.



--=-kieuLTxJtkGwFtplrKxg
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMTIxNTI1
MVowLwYJKoZIhvcNAQkEMSIEIPTu0mqiGZugXJbGRVIc7YWEYXrooNvcvkRWmfHyHQVpMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIA0gKFPMVJ16K8
G+6uSbAsoclqi1r0q8ZMfteGT2TzFUWZkNx0kOz6SCBad01Wf8X12t+HFxFYOrLz0Fc18CuhIgEq
W3ZR4pkUvGQrsqJp0QqAo/zbESWOrYCId6ZVvV/6SOBEjj/lhUMdZrRvuOUeo0QGUArl6aXhGSyb
qaN59x6T/SzleSWnsj9ykOj5NFIwLRJwRFIkSrt3h2bVacx/hwLGQi5q3TTpFy6LFoEn2cGmTgP9
p4s/0zZ/WXW1VM/vxcNQF+Hg0SiCCC6NI9r+frMnHAgUgTdDmAwVIiTVXXnhU74B+U8U3oA/bCBX
xFKyjBtF8zxXIvyCdyZXqS13uNu5Eno1BZcMDb3yUr1WDTJ7yEzZTtgB9ue1ExOCSPdCCQEttwat
ZIPcd0feapzUynQsoW2datvonMGhad1cQd5qYSxQPY3oqvubmK9sov7nw3leMBKfPsVI7DsnWDxx
+3e7ak37k/FPQk5pllx+1+7kDWhCiwDnlR0r9we/deo8V3MobXmdeW4DKZbOZtFPZP2z83p5j+vA
X4IJwLZw2aW5Oh28DuoDnsHfHgOx9SVn4gU9xdlkl47AALbLCKVwJihi0sE8WQ1prfzRjqzq4IiE
jsfkDziMpyolxwykNaGUuOBN/f4ogZ48tj0ZdoHBPLW01z8L6mBMpQ7XHkneEQwAAAAAAAA=


--=-kieuLTxJtkGwFtplrKxg--


From xen-devel-bounces@lists.xenproject.org Thu May 21 22:10:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 22:10:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316023.1585626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQBbR-0006Pz-LM; Thu, 21 May 2026 22:10:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316023.1585626; Thu, 21 May 2026 22:10:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQBbR-0006Ps-H8; Thu, 21 May 2026 22:10:53 +0000
Received: by outflank-mailman (input) for mailman id 1316023;
 Thu, 21 May 2026 22:10:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wQBbP-0006Pm-0n
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 22:10:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQBbO-004eE2-Cv
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 00:10:50 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0f82a9-bab6-0a2a0a5309dd-0a2a4505ab00-36
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 00:10:49 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0f82e7-aaa8-0a2a45050019-94a38ff1daa0-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 00:10:48 +0200
Received: from pps.filterd (m0367129.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64LKEgf22171701
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 22:10:47 GMT
Received: from ph7pr06cu001.outbound.protection.outlook.com
 (mail-westus3azon11010015.outbound.protection.outlook.com [52.101.201.15])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4ea8909b72-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 22:10:46 +0000 (GMT)
Received: from CH5P221CA0017.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:1f2::17)
 by EA2PR16MB6204.namprd16.prod.outlook.com (2603:10b6:303:251::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Thu, 21 May
 2026 22:10:40 +0000
Received: from DS2PEPF000061C6.namprd02.prod.outlook.com
 (2603:10b6:610:1f2:cafe::b0) by CH5P221CA0017.outlook.office365.com
 (2603:10b6:610:1f2::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.17 via Frontend Transport; Thu, 21
 May 2026 22:10:40 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 DS2PEPF000061C6.mail.protection.outlook.com (10.167.23.73) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Thu, 21 May 2026 22:10:40 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64LM0Jkf1923806
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 18:10:39 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [34.209.42.160])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4e9u9ys1sk-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 18:10:39 -0400 (EDT)
Received: from localhost ([19.12.92.221]) by cmsmtp with ESMTPSA
 id QBb9wAeoTl9zvQBbAwKNpt; Thu, 21 May 2026 22:10:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=7djpnDKXX78zsY55yf381FaHrzR
	2Z9YAIdLj82cXheE=; b=jWeWn5bGGgmVkBwmUVkM1hRiWn3HyICf4Acmtd/7fQN
	KFWDR5N/oi+8gj2qbqcK4y0tpvZ8orYGCLa+H0jj1nHKMnTHZH+qk88/xsu3rLS0
	BBbvK+fWThmanD49ikPeYaDLxgm3hR92qH0BeYwC0qhA1HeIcjiIX5qNHcvcD4b8
	40CKVO9f/assEow6MPnSzjIMm2gTrCkuIZlLhSU5MpZF30AJomXuCltIZvmHlVGZ
	pQteAm+W3wilZFeW9cbmF+w78Ie0MKhLf5VZ/aOSxa0IBb239n9hPv3jnSGVYLND
	p2VaQpYJptrJERmnX6LTZtDp8DajMsbgJF/2BJkBOng==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=E6eQ4PURLahNmnrbuJopVONKWLGdQTvPArvExhx3KWxdq3PnVipxbfQElIE8y64Kak5wqkevCSbmwNt+HtcCu6E/A/HrgQAxBEtdPyjxovKmj03rRdv6D26Ys4EZOEE5X8spjLCntNbCduUSHZbARDWh/3c0310dfyqrs3SyH1BxzSJ1uU7OxMV8xMcCBK+iG8zBEh8uhmD9H2oRpLnRT34G0kLTvLj1A0OZMwwUTBXYxB4IFQfq1rgcTmjgCBITEZW/SAMLZr0GrEXoh7mihDjIOrd2z+aes3orBb8Ui3Joc6cFOvSwopFrP2BwSgVeWK+9rYKcPaHzuSymFTJN9A==
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=7djpnDKXX78zsY55yf381FaHrzR2Z9YAIdLj82cXheE=;
 b=jdBrKCaY2+faPSyMIGPk7oXmLzlEpdG30G5HyLqvsBB1uYz6KAiT/oI/c8po48idGcu5tXVQKPLf23ZlXA8Drsfi4J4mZ6qKFFQ+FgcFHHtntHYyAU+VTPhiwTlJsvDTKsi78x3N6XhjY4bPoaJbvNKGljqsKb9p3OweweZcU0N0KYAAN+2Uju9yge6soNbX9An1M0XIu7jRLrWS6gEi8N8+7wN3TL+E3xTVcfv0ugh1ajY8pVCAt1nUdvs0D2iW2PlnaXhOZtDKz1jf/nWPLUshVkDJEtNgQKYoMg8Sl0kfjII57hdiQjJyJHH3g3sg3ZCQ9iH08lbqkTX2GG2z+Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7djpnDKXX78zsY55yf381FaHrzR2Z9YAIdLj82cXheE=;
 b=gBPCKv7/NScoSiYYdKASdwRaRDkxtksNJbhpAxcjN8TuQPWVKSAV2x+6o4uKCTFhqruwHoCbuXcJ1Q/P9ZIeze5chi1gB3YQftyCQEg89DmxAPGhL37SIEZ2Q07XxmJ3WQODCP+BKFrJs9aBqA/5ZSzxyfWlPLGDGSo+HTrQKpk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=7djpnDKXX78zsY55yf381FaHrzR2Z9YAIdLj82cXheE=; b=eMhe4rky7iMI
	me8mw7otM3dEu/eZUZNRYh6xvpONHCBxWzrHoTVKDPLSCNWm+HbSn1QhFfyQKIFC
	Cie3w3wQGm82a2/EuZLU0SYw8mrh75cFn367VKt94o0ymSiIvCfmfe0pyh70XBbP
	eNmQ0cV2vauhNK9jtLc/2Bz4zWCuOWWcXCX6syPfRvaqsAyTa5Jnsky26ek/yEm8
	pwXKq1AtfdhSe1sbdzAiStAAOEBCHncy/xoi3MoClyhSlwXwrDqN0BbAFVBJmCVB
	X6OZ66rdeaSL0Ge3vzFCel2jIIPKSsZg8JQaPOh2MDAd1jaji83VOWkaTvhLGKa7
	OFwfob3eoA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=7djpnDKXX78zsY55yf38
	1FaHrzR2Z9YAIdLj82cXheE=; b=NrebCysjsR4BysrAs51zgkSydHqRLJcL4Q3L
	9MSrvokcqIFzZmOdksV9VyCO7jJtSS1sDwij6b+/ICz2YmfcCV9pWuOzaso5lOjn
	8hrenS/S9RxmR9xBXYonJXpep/48q4k1MDEQ9bMOx9WNdyPJx9UiNUHfC/RsU20r
	nQ/tuO9xoxV43e4mRU1867z53QIh85Kj7EW/o1Xw0dnz0bf02FxiQuvG6KI+6Du/
	jKv+mq/4q3duEVdZv+o3arDBysql2RIeiLKmD9lqmCGofmKciJ0b2GWYMlAPFzOO
	tzzQIEOlBZbcHN34AoQmeQJrEJTLwsdX8Ze+L8kM5eced6RJKg==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: QBb9wAeoTl9zvQBbAwKNpt
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Thu, 21 May 2026 15:10:35 -0700
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Julien Grall <julien@xen.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Michal Orzel <michal.orzel@amd.com>,
        Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
        Andrew Cooper <andrew.cooper3@citrix.com>,
        Anthony PERARD <anthony.perard@vates.tech>,
        Jan Beulich <jbeulich@suse.com>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
        "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: Re: [RFC PATCH] device-tree: size first hwdom bank for boot modules
Message-ID: <ag+C21L9WoH3ngg8@kraken>
References: <9ae4f7dd49f5b1f761193adae573c2675c92e883.1779051035.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <9ae4f7dd49f5b1f761193adae573c2675c92e883.1779051035.git.mykola_kvach@epam.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-21_04,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 suspectscore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 spamscore=0
 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605210223
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF000061C6:EE_|EA2PR16MB6204:EE_
X-MS-Office365-Filtering-Correlation-Id: 6c7232c3-645d-4ec5-d8ba-08deb785cb75
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|1800799024|376014|82310400026|22082099003|18002099003|56012099003|5023799004|11063799006;
X-Microsoft-Antispam-Message-Info:
	nyGQrM54Guc+dGrjhzv53ogY5ye66fUNV0ejtGfW1LyKtxOAglZqfrsrPwgnDqV9eEWbRyFOpFKvDoHYn3iByF8usdLHVnTzsWNbVPHH7RlxtMkMjc0mHJhO4BlxjTZo+97txtIayT488dXGwaNbQLEbf5vsYddBHnJexX4ADJvpGd2wUeYldp1iNV1OGAugwUz84E8q+TcQd5G4lTRgYDrjaXv5cUvAlJIMtfGmBWaTK+YHN3WqEmfm2egGOeTwRVy8Gm01AlcnQe84/bL6M2/8v7pTMhYSyHut6FXiKqn7wb1htx0kyR5hA9iBdSbI2d0NSdn8r06jdqcSec2Tb3sDdlCpQw45NxG2eAAuFij7+zyKLBKlWN7FsrbVYROfx2SUcD0+rm9vvj9Qr8tV7DRD0wmfkvKIxcTn2X40LW6qqlc0v2m8PqMoM5KPDtJOfmwMRq1mNBqzcfMUOLSqCNo9eikrTBRyvOIbn4qaqFGCVNr6XKKxxdtKcf+5HyvjmMdEUguvFZWG5nTJHukXC4dvoeqGqueOnpjWI+x5MSFRzySpzVr6aUlkfRe9xA+lEublcyp8mI7PBa2XOy8ucFRUNXz6zX/2SxVKpCe8Lkju8MgDYRX7UXyJ6mcG4/3Mm+c7e9jl9nbSg/ja2oFb2XPbuAJPFkSuiwMuf7zxwdANUIzrT4fRnliTaZJ29tUO1sfbE/yDKUS3qPfpTTb/M5qHJKKnUfThwp0NvsEzB38=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(376014)(82310400026)(22082099003)(18002099003)(56012099003)(5023799004)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	yVjgsmHkqmAfEUCPNCcJFBLOS3aWKEkQRQujyvnd6pXFycsrte1wIatXz0CxTJOqAPxYAeF32tIozsybMs4MN+/wedR07wT5JUSA5+NTMPl9p15s4xxdOlMLarzudblEb56Qdt5VB7jKHkAC7IydtcmHZeHyFLZWSNYGWnksbJlV8nav5REZ4CScrqwgiBQD3XoXeSTeMCEoQWKS5aTUaNQgVwxNluezD2LAWuxS/WlusYf3F3809xXpDji65OmTsJ60yfJy1EH7h/X113CkGG0FuhM/lRD6r+IlX0Vloscq1zan4H2YA0N/kL4w0oUrVM3wBSCj6JeaCUfGwr3gqQ//pNcSkyzLzwDvdraexs9wILHoh5Ff4nw6tdmIYES2xwgUrbzD02s2r/F69FLAnlavA/Z46kEdBdIQkqy+cYxRRJL69lUbJDJbzv48P/Kf
X-Exchange-RoutingPolicyChecked:
	jbUda9bKtD5RsVzApGIT2hF94ud75cx/o2LhcLUvtwpJk2bBI2ySPUJbyHV7YwQqaq8AcWyX0RVOA2D0c7lRYSyzqTf0x25Gh1weWn7voT+33VeSDBnAAO04w0wYALZFtyh3vSkzVoO/CJtZbCpbgY6hpLEoW6aqr7J1YRQnVxHD0BbRhJTuqdPLsmZYtSl4Wh5UOpHG2JGigayfPu9UGg/WVOHzsHA5aTSrSOZNqGbBId6VIMouxCY6FmdkBmvEPtYTgDnjX7KJEg/w5dthcD9hF5hJ/MB6geqJUH3BkIRs+5tGp370/ujpyV2G1ataqQJjG2BJCKtukWLP3x+Plg==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	DzFBGOHI/S9X9uYptKZ6kT/EdubOeX1oOas5zngZ+k9/fJS06i8vlY6b1uR4Rvl8GeJv+pSAR3Aey8cJz8VfNwkmk81t76gmuEhorpV5WwnN/hFHM6FZHtEqWb8dtEsuBod2mQ4IwLA5U3ny6hwre5oZOV5OxVm4gQgKmpVdZfkatJG69fGQrnLh++RL015FMalbAo9wi7er1q2KqRMaR/E9F9svCK0WIxNZLzGzIQTtsH9USE/Pnqbg/Y4He53ZMQlzAJemwf/mZKXVGa1NyIsWAZgnyBxbjmfBSeXTQmk/zTfdZz4NA96UqarMspkDMJHcNgxDopACVDIg0ZsjIFYLJVIjHhQFwIULsqhv0F3H0U+5DAfQigmTBcxj+TWYMGw87GFC0PTh+V795e18nV7B6Ncelk9O4P0s0t+FegkDeIdaYZGeI3dhtMKZFlHZLBZA/nbv3WMo2HmCuUvKAj++JRphFhrJaej2QtLvAPpdllNXlyalv9jLsXvu2ChiZW12+nwBofERVtn0JP22CH25yIg1ijPdeV1sW6OK4lkD/8PaZWhBlYzDZvlQmJRk7xZ8NCK+L5euTVZOENbgwFgKJCsbQEYsZHCNdm2BNuQYXzCfP3qdjpqMPV4sxe3pmKSe4noKIWilClHK145gzw==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 22:10:40.3095
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6c7232c3-645d-4ec5-d8ba-08deb785cb75
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF000061C6.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: EA2PR16MB6204
X-Proofpoint-GUID: ZjMq4sR7Gk_GVO42wkc-Kmet4KcIy6x_
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIxMDIyMiBTYWx0ZWRfX9Ic3Fn4bAwW7
 ObC8SqiksUY/8WPOtm5wR7euCbotDI97wn9KA2ts7mfwjRcL9byZeu8lx8EP4b2bmlV4b0clCe9
 K1FGTwODbVnroP66BFHMK1FTGlTNMcEgf6R/OVKjOj1PRuYR92N87yeB+TYoq1zmh8TaIWGLdyq
 EkAK+Erqk05PVFOQiKI0G1Luzdr8/7gsHNX1MIfqRewUcyDjs09byUkminn3RWxtDQjaT5k8GhO
 CyCKvCRCw8wxuNeIrlxPiOxcnSnDDBi51VAITq3R2BRBQBV12PskhshfmqBPwom0LaHKnX4bdXV
 qkae1MrDeaL8l5eX6aVnnVDpjPn3GrJEVJ03xTgnXH1DXlljZKFsM7WUny3YexQm+zLzonI2Gmt
 fU1iXc3PHOx/C2XhQ2INcP4F8aYjyFqw88KUPRAj++NbX7c9jtir9z/ozMwTC1k01SCUqe6f6BI
 T73IgFeMrR9+Wzt5QaA==
X-Proofpoint-ORIG-GUID: ZjMq4sR7Gk_GVO42wkc-Kmet4KcIy6x_
X-Authority-Analysis: v=2.4 cv=ZfMt8MVA c=1 sm=1 tr=0 ts=6a0f82e6 cx=c_pps
 a=as7enBq54CXVX8P5rkIU3g==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=X3KReqg2EL6A36SYCKpz:22
 a=DBfv99YmAAAA:8 a=xaZr94278_T5iL3VQHoA:9 a=CjuIK1q_8ugA:10
 a=P0bj-C3X3jJDpopQwM1U:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-21_04,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0
 suspectscore=0 adultscore=0 bulkscore=0 clxscore=1015 lowpriorityscore=0
 priorityscore=1501 phishscore=0 malwarescore=0 spamscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605210222
X-purgate-ID: tlsNG-c201ff/1779401449-DA374443-C32BD03F/0/0
X-purgate-type: clean
X-purgate-size: 7355

Hi Mykola,

The patch looks good!

I would try to add a CI coverage for QEMU aarch64 tests, since QEMU
supports multiple RAM banks topology.

What do you think?

Also, few remarks below.

On Sun, May 17, 2026 at 11:57:56PM +0300, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> With LLC coloring enabled, the hardware domain memory comes from
> allocate_hwdom_memory(), not from the fixed direct-map banks used when
> coloring is off.
> 
> Commit de99f3263555 ("device-tree: Improve hwdom memory allocation for
> DMA") made that allocator sort free host regions by ascending address so
> Dom0 gets DMA-capable low memory first. The first bank filter still only
> required 128MB. That can select a low region which is large enough for
> the heuristic, but not large enough for place_modules() to put the Dom0
> kernel, generated DTB and initrd contiguously in bank 0.
> 
> Ask arch code for any additional first-bank size requirement. On Arm,
> compute it from the actual Dom0 kernel placement, rounded initrd size and
> generated DTB size hint. For 64-bit Image kernels, include the text offset
> from the candidate bank start, because the returned requirement is compared
> with a bank size measured from that start. The hint covers both the normal
> Device Tree path and the minimal DTB created for ACPI boot.
> 
> Check the first-bank threshold against the size which will actually be
> assigned to Dom0, after capping the host region by the remaining unassigned
> Dom0 memory. Otherwise a large host region could pass the test but still
> produce a first guest bank too small for place_modules().
> 
> Use the typed min()/max() helpers for this normal allocation arithmetic;
> MIN()/MAX() are intended for preprocessor-style contexts and skip the type
> checking provided by the lowercase helpers.
> 
> This keeps the DMA-oriented allocation policy from de99f3263555 while
> preventing a too-small bank 0 from reaching place_modules().
> 
> Fixes: de99f3263555 ("device-tree: Improve hwdom memory allocation for DMA")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Test/setup notes:
> 
> The failure was reproduced on a Renesas H3ULCB/R-Car H3 (r8a7795)
> arm64 board booted through U-Boot/TFTP and using huge initrd.
> 
> Relevant Xen command line excerpt:
>   dom0_mem=2048M llc-coloring=on
> 
> Boot module layout from Xen:
>   MODULE[2]: 0x0000000084000040-0x000000008e75d92f Ramdisk
>   MODULE[3]: 0x00000000a0000000-0x00000000a3ffffff Kernel
>   MODULE[4]: 0x00000000a4000000-0x00000000a400ffff XSM Policy
> 
> The initrd is about 168MB. With LLC coloring enabled and the low-address
> allocation policy from de99f3263555, Dom0 can receive a 192MB first bank:
>   d0 BANK[0] 0x00000048000000-0x00000054000000 (192MB)
> 
> That bank satisfies the old 128MB minimum but is too small for the
> rounded Dom0 kernel, generated DTB and initrd placement. The observed
> failure before this patch was:
>   Panic on CPU 0:
>   Not enough memory in the first bank for the kernel+dtb+initrd
> 
> With this patch, the same boot skips the too-small low region for bank 0
> and reaches Dom0:
>   d0 BANK[0] 0x00000057000000-0x00000084000000 (720MB)
>   d0 BANK[1] 0x0000008e800000-0x000000c0000000 (792MB)
>   d0 BANK[2] 0x00000500000000-0x00000521800000 (536MB)
>   d0: extended region 0: 0x48000000->0x54000000
>   Loading zImage from 0x00000000a0000000 to 0x57000000-0x5b000000
>   Loading d0 initrd from 0x0000000084000040 to 0x5f200000-0x6995d8f0
>   Loading d0 DTB to 0x5f000000-0x5f011c80
>   Linux version 5.10.194-yocto-standard
> ---
>  xen/arch/arm/acpi/domain_build.c        |  2 --
>  xen/arch/arm/domain_build.c             |  8 ++++++
>  xen/arch/arm/include/asm/domain_build.h |  4 +++
>  xen/arch/arm/include/asm/kernel.h       |  8 ++++++
>  xen/arch/arm/kernel.c                   | 35 +++++++++++++++++++++++++
>  xen/common/device-tree/domain-build.c   | 27 ++++++++++++++-----
>  xen/include/xen/fdt-kernel.h            |  8 ++++++
>  7 files changed, 83 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/arch/arm/acpi/domain_build.c b/xen/arch/arm/acpi/domain_build.c
> index 249d899c33..db16f7fa94 100644
> --- a/xen/arch/arm/acpi/domain_build.c
> +++ b/xen/arch/arm/acpi/domain_build.c
> @@ -26,8 +26,6 @@
>  #undef virt_to_mfn
>  #define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
>  
> -#define ACPI_DOM0_FDT_MIN_SIZE 4096
> -
>  static int __init acpi_iomem_deny_access(struct domain *d)
>  {
>      acpi_status status;
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 1efddc60ef..226e053c68 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -115,6 +115,14 @@ int __init parse_arch_dom0_param(const char *s, const char *e)
>                               (IS_ENABLED(CONFIG_STATIC_SHM) ?         \
>                                (NR_SHMEM_BANKS * (160 + 16)) : 0))
>  
> +paddr_t __init dom0_get_fdt_size_hint(void)
> +{
> +    if ( !acpi_disabled )
> +        return ACPI_DOM0_FDT_MIN_SIZE;
> +
> +    return fdt_totalsize(device_tree_flattened) + DOM0_FDT_EXTRA_SIZE;

I would invert the condition so it is read more straightforward:

    if ( acpi_disabled )
        return fdt_totalsize(device_tree_flattened) + DOM0_FDT_EXTRA_SIZE;

    return ACPI_DOM0_FDT_MIN_SIZE;

[..]
> diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
> index b72585b7fe..3644663e2f 100644
> --- a/xen/arch/arm/kernel.c
> +++ b/xen/arch/arm/kernel.c
> @@ -128,6 +128,41 @@ static paddr_t __init kernel_zimage_place(struct kernel_info *info)
>      return load_addr;
>  }
>  
> +static paddr_t __init kernel_placement_size(paddr_t load_addr, paddr_t len)
> +{
> +    return ROUNDUP(load_addr + len, MB(2)) - load_addr;
> +}
> +
> +paddr_t __init arch_get_min_first_bank_size(struct kernel_info *info,
> +                                            paddr_t bank_start)
> +{
> +    const struct boot_module *mod = info->bd.initrd;
> +    const paddr_t initrd_len = ROUNDUP(mod ? mod->size : 0, MB(2));
> +    const paddr_t dtb_len = ROUNDUP(dom0_get_fdt_size_hint(), MB(2));
> +    paddr_t kernsize;
> +
> +#ifdef CONFIG_HAS_DOMAIN_TYPE

Perhaps use `IS_ENABLED(CONFIG_HAS_DOMAIN_TYPE)` to reduce ifdefery?
My impression that IS_ENABLED() is preferred.

> +    if ( (info->type == DOMAIN_64BIT) && (info->image.start == 0) )
> +    {
> +        paddr_t load_addr = bank_start + info->image.text_offset;
> +
> +        /*
> +         * The caller compares this value with a size measured from
> +         * bank_start, so include the text offset before the kernel.
> +         */
> +        kernsize = ROUNDUP(load_addr + info->image.len, MB(2)) - bank_start;
> +        return kernsize + initrd_len + dtb_len;
> +    }
> +#endif
> +
> +    if ( info->image.start == 0 )

Here too: invert the condition?

       if ( info->image.start )
           kernsize = kernel_placement_size(info->image.start, info->image.len);
       else
           ...

> +        kernsize = ROUNDUP(info->image.len, MB(2));
> +    else
> +        kernsize = kernel_placement_size(info->image.start, info->image.len);
> +
> +    return kernsize + initrd_len + dtb_len;
> +}

--
Denis


From xen-devel-bounces@lists.xenproject.org Thu May 21 22:30:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 22:30:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316041.1585633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQBuP-0002PD-6I; Thu, 21 May 2026 22:30:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316041.1585633; Thu, 21 May 2026 22:30:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQBuP-0002P6-3a; Thu, 21 May 2026 22:30:29 +0000
Received: by outflank-mailman (input) for mailman id 1316041;
 Thu, 21 May 2026 22:30:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3gIcPagYKCSUTFBOKDHPPHMF.DPNYFO-EFWFMMJTUT.YFOQSPKFDU.PSH@flex--seanjc.bounces.google.com>)
 id 1wQBuN-0002P0-JN
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 22:30:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQBuM-00F99U-Vp
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 00:30:26 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3gIcPagYKCSUTFBOKDHPPHMF.DPNYFO-EFWFMMJTUT.YFOQSPKFDU.PSH@flex--seanjc.bounces.google.com>)
 id 6a0f873f-5cb7-0a2a0a5109dd-0a2a4505c0b0-40
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 00:30:26 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3gIcPagYKCSUTFBOKDHPPHMF.DPNYFO-EFWFMMJTUT.YFOQSPKFDU.PSH@flex--seanjc.bounces.google.com>)
 id 6a0f8781-aaa8-0a2a45050019-d155d6cae50c-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 00:30:26 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2b4530a90fdso118295965ad.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 15:30:26 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779402625; x=1780007425; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=+mwj630vVwEqi8mq4SZZW5tTSWOGwfC/65sZINb+5IQ=;
        b=BugGeCbwc+RKATirmzIrYnpstZ69HJ9H8pkOesTVfk2+vVU1cBd9tJcWoM4j51COeg
         4B9NwSMmOXjzgDMCqv06miwr2U8SyqLr3OUxtNn30nVtzm+2x2wKOVx4J1fTwj5yY2bq
         lN2F6GJznHU0t/KQAzVl9e6v7T/306IOyn5BQkXwaY1INHG5paG13xOcNwwZ0H1zxlKN
         22C0TTmgf8WHlcbkataxC4Fzp8Ypp0w0wLCJepd4x/htQAYWlBMewyE12O/t+EQj/hGi
         w7hxJJxLjCQv25wUjcKTvblfuPn+hz+Zu9W12PTt0SFBArlmxn/+Kix7DQ1MHs0v9YXp
         2Z2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779402625; x=1780007425;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=+mwj630vVwEqi8mq4SZZW5tTSWOGwfC/65sZINb+5IQ=;
        b=c75FrKh4MIES1Y5wD9NPRYByXnff+RiaoW0/UaLBLDAH5oDwymUNnjiDzCQmvebQ93
         WjscJE1ZQdb4CU8s6ElVU1rGbFy0zV/QeYnUUThiEYENBgFhBGS4B1EWdZ6PkeD6U6bZ
         bPtzWFDZZjfAH+BbC9p/WJWR19BRM695euR+zjQjssTC5F6CrTRJcfZp/UDNF+IQo/pE
         Zqnao66NDN5bgSJJwSlb7JCIm8PFJiFdPDIM2YijfReiSImSWR6BLBX8FFFK/DlBn0s+
         B4bj8LsEkAh8mQwqvj7WdzGJUaomf5r7jbI4LGeo4jPLCZSj8l5v/eKUhVIpQSOvLV/T
         LKeg==
X-Forwarded-Encrypted: i=1; AFNElJ9AxtuhF0RIvV2fJa5NascMlrbnRV8tQg6XJmOrn2rGNJLJonFZUxYljRvhCLg2d4BQVcwrEeZyIAI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwBL1mdjBOWv2aDAfPDdHq0Oph+SYwcVktdMTbphT6+uUQF+06p
	SFrirht/PDVbGDkqOErIT59D0WiWbxfUFUjyHJYBvN16Uk7V/b9K7CS5M6a1T8a9TyCd+nlkklf
	F8Yxgkg==
X-Received: from pgbfl15.prod.google.com ([2002:a05:6a02:50cf:b0:c80:1541:9dfc])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:430e:b0:3a3:a55f:407c
 with SMTP id adf61e73a8af0-3b328cad3aemr900407637.16.1779402624505; Thu, 21
 May 2026 15:30:24 -0700 (PDT)
Date: Thu, 21 May 2026 15:30:23 -0700
In-Reply-To: <3ad6cd109480772ade3c11f23b9c1d7a9855d67e.camel@infradead.org>
Mime-Version: 1.0
References: <20260509224824.3264567-1-dwmw2@infradead.org> <20260509224824.3264567-28-dwmw2@infradead.org>
 <3ad6cd109480772ade3c11f23b9c1d7a9855d67e.camel@infradead.org>
Message-ID: <ag-Hf2liLSX9q0rS@google.com>
Subject: Re: [PATCH v4 27/30] KVM: x86: Add KVM_VCPU_TSC_EFFECTIVE_FREQ attribute
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
	Shuah Khan <skhan@linuxfoundation.org>, Thomas Gleixner <tglx@kernel.org>, 
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	"H. Peter Anvin" <hpa@zytor.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross <jgross@suse.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Paul Durrant <paul@xen.org>, 
	Jonathan Cameron <jic23@kernel.org>, Sascha Bischoff <Sascha.Bischoff@arm.com>, 
	Marc Zyngier <maz@kernel.org>, Joey Gouly <joey.gouly@arm.com>, Jack Allister <jalliste@amazon.com>, 
	Dongli Zhang <dongli.zhang@oracle.com>, joe.jin@oracle.com, kvm@vger.kernel.org, 
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, linux-kselftest@vger.kernel.org
Content-Type: text/plain; charset="us-ascii"
X-purgate-ID: tlsNG-c201ff/1779402626-D3961443-0CC7ED7C/0/0
X-purgate-type: clean
X-purgate-size: 511

On Thu, May 21, 2026, David Woodhouse wrote:
> On Sat, 2026-05-09 at 23:46 +0100, David Woodhouse wrote:
> > From: David Woodhouse <dwmw@amazon.co.uk>
> That does leave userspace still needing a way to get the APIC bus
> frequency, to populate CPUID. So maybe I'll just make an attribute
> which returns that as a single value.

Already exists, KVM_CAP_X86_APIC_BUS_CYCLES_NS.  The TDX architecture decided
that unconditionally telling guests the virtual APIC bus runs at 400Mhz was a
brilliant idea.


From xen-devel-bounces@lists.xenproject.org Thu May 21 22:41:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 22:41:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316057.1585642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQC4p-0004kg-3a; Thu, 21 May 2026 22:41:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316057.1585642; Thu, 21 May 2026 22:41:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQC4p-0004kZ-0t; Thu, 21 May 2026 22:41:15 +0000
Received: by outflank-mailman (input) for mailman id 1316057;
 Thu, 21 May 2026 22:41:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wQC4k-0004kQ-3P
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 22:41:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQC4i-00CPFI-IH; Fri, 22 May 2026 00:41:09 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0f8996-bab6-0a2a0a5309dd-0a2a45028542-48
 for <multiple-recipients>; Fri, 22 May 2026 00:41:08 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+d535bf5a2932b236163f+8306+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a0f8a03-af86-0a2a45020019-5a9b3222e548-3
 for <multiple-recipients>; Fri, 22 May 2026 00:41:07 +0200
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=u09cd745991455d.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wQC4Y-000000097kt-2u2j; Thu, 21 May 2026 22:40:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=5sQxohW4OSu29r54ASx2pm8g1AG5G78R16Nk1NylZcM=; b=hhrQZu/j4c4CsJL6z3qVBO3Ejk
	D1XxT7vrmPfmWhNRK8cICJU76fg6wwuyjT9iOJRZ7x06wWbgPs5EifQOP2ghs/EPKa3KQTfCtz3Mi
	oQYlI6Nkd2ohK3jtJe3unvtzf2ILWq11nWoQ4zWfetcsh272bA4tNLBz4Ra1QC+xJKa0EfSXYWMzE
	8H4L9FOQvNlD8Xg5bhoCEAxecqPQYrSj2FH6WsCE7XowmkZHxnu0QpdjECqMbrKn7FlyHoa+orqYT
	VCubFIfer36hygLuW13Zm1+C0W+JO4eU6/S5zGZirgoOWLntFqSCIKD2FpSf4/b3THNg7y//HFTWx
	2WlUMFLg==;
Message-ID: <ab84153e33fbe7c25667f595c56b310d4d5a93ef.camel@infradead.org>
Subject: Re: [PATCH v4 27/30] KVM: x86: Add KVM_VCPU_TSC_EFFECTIVE_FREQ
 attribute
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
 Shuah Khan <skhan@linuxfoundation.org>, Thomas Gleixner <tglx@kernel.org>,
 Ingo Molnar <mingo@redhat.com>,  Borislav Petkov <bp@alien8.de>, Dave
 Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, "H. Peter Anvin"
 <hpa@zytor.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross
 <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Paul
 Durrant <paul@xen.org>, Jonathan Cameron <jic23@kernel.org>, Sascha
 Bischoff <Sascha.Bischoff@arm.com>, Marc Zyngier <maz@kernel.org>, Joey
 Gouly <joey.gouly@arm.com>, Jack Allister <jalliste@amazon.com>, Dongli
 Zhang <dongli.zhang@oracle.com>, joe.jin@oracle.com, kvm@vger.kernel.org, 
 linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, 
 xen-devel@lists.xenproject.org, linux-kselftest@vger.kernel.org
Date: Thu, 21 May 2026 23:40:57 +0100
In-Reply-To: <ag-Hf2liLSX9q0rS@google.com>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
	 <20260509224824.3264567-28-dwmw2@infradead.org>
	 <3ad6cd109480772ade3c11f23b9c1d7a9855d67e.camel@infradead.org>
	 <ag-Hf2liLSX9q0rS@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-VslFd0fYYjszMuMfVfh3"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-720697/1779403267-83D67161-96AA597F/0/0
X-purgate-type: clean
X-purgate-size: 8221


--=-VslFd0fYYjszMuMfVfh3
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, 2026-05-21 at 15:30 -0700, Sean Christopherson wrote:
> On Thu, May 21, 2026, David Woodhouse wrote:
> > On Sat, 2026-05-09 at 23:46 +0100, David Woodhouse wrote:
> > > From: David Woodhouse <dwmw@amazon.co.uk>
> > That does leave userspace still needing a way to get the APIC bus
> > frequency, to populate CPUID. So maybe I'll just make an attribute
> > which returns that as a single value.
>=20
> Already exists, KVM_CAP_X86_APIC_BUS_CYCLES_NS.=C2=A0 The TDX architectur=
e decided
> that unconditionally telling guests the virtual APIC bus runs at 400Mhz w=
as a
> brilliant idea.

Ah, thanks.

So KVM always exposes 1GHz by default regardless of the actual host?
Which is why there's no *get* method?

(Well... getting KVM_CAP_APIC_BUS_CYCLES_NS returns
APIC_BUS_CYCLE_NS_DEFAULT which is 1, so it's basically just returning
1 like a lot of cap queries do, and *not* returning what the period is
actually set to)


--=-VslFd0fYYjszMuMfVfh3
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMTIyNDA1
N1owLwYJKoZIhvcNAQkEMSIEIEg5S8jxoCdUAhUrodsoUgi5nfy+H3Z+jEROKbGtD+APMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIA1W+WM0SzxZhX
19vIPPNmSygD/nzT5Y4Ey3doMP9U1zgBifYHmm61e2DeR5FrQcrhsgPjK589cyDrJ0gBvpHHP+Qh
2fxBjw0QdiB0Jl4cBmiOiq1JZbi1xzxwohbD+s5V0orrX7xnSBNDUhWDq8S0G2rVJYOqF6nkIoc6
Mi3BPTL/VtwYYCESJI67gaNr2XatQFtOrvFJR+B3OOgScHEIs1Ppbd/tgro7y9CKEFBNpWKSAAc2
t2M2EjHIOSXXeffuvkr5fIKs/DYyV9oSe6V4HVXxMGle81koh2eyDAOV7yVkXycAVKAq15aivG9t
Ro25RhmkIWhU20J9Xkj+ZzneEr+moBEhAeOWA7U10imxKLb6mla9Py+oYQ6dWeRHyZIWOzCzYv8q
V5Vel7ye+/J5cDaHpZjiBXA+UCkeLd6nWtOgNzrUM6Gb4+X6eafO/vb2lZGPcYpSu6wCAtqiUe5K
+DpZBCPs0mQs7pYSb+IvwZQUubGs//D50TD5AZotrvZQp89VL0p6jzNSNUBp2P0qkWV3P89qSH61
eyWctaA+BAWj34DBe7FlBgbapg4ypXX29JH93XpFdFvj0VXNBSO2lO50k49NW4oOq7LyYY9Gf7Ha
NCiFCWEFPjfHcVMRJoZBA/xwlow7Ll02ZXTljTdxsBwuZRaP/QZ2PxzuNTdJAMwAAAAAAAA=


--=-VslFd0fYYjszMuMfVfh3--


From xen-devel-bounces@lists.xenproject.org Thu May 21 23:26:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 23:26:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316100.1585669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQCmY-0004MP-Pn; Thu, 21 May 2026 23:26:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316100.1585669; Thu, 21 May 2026 23:26:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQCmY-0004ME-Mi; Thu, 21 May 2026 23:26:26 +0000
Received: by outflank-mailman (input) for mailman id 1316100;
 Thu, 21 May 2026 23:26:25 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wQCmX-0004LG-QS
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 23:26:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQCmX-004cIy-6e
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 01:26:25 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0f949e-5cb7-0a2a0a5109dd-0a2a4508e712-2
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 01:26:25 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0f949f-63b5-0a2a45080019-94a38ff1984e-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 01:26:24 +0200
Received: from pps.filterd (m0367128.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64LKEe513214048
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:26:23 GMT
Received: from bn8pr05cu002.outbound.protection.outlook.com
 (mail-eastus2azon11011008.outbound.protection.outlook.com [52.101.57.8])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4ea7uyswva-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:26:21 +0000 (GMT)
Received: from DS1P221CA0006.NAMP221.PROD.OUTLOOK.COM (2603:10b6:8:451::19) by
 SJ5PPFB091F0E29.namprd16.prod.outlook.com (2603:10b6:a0f:fc02::ade)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May
 2026 23:26:14 +0000
Received: from DS1PEPF00017096.namprd05.prod.outlook.com
 (2603:10b6:8:451:cafe::a3) by DS1P221CA0006.outlook.office365.com
 (2603:10b6:8:451::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.17 via Frontend Transport; Thu, 21
 May 2026 23:26:14 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 DS1PEPF00017096.mail.protection.outlook.com (10.167.18.100) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Thu, 21 May 2026 23:26:13 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64LMsd6E1923795
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:26:13 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4e9u9ys3q4-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:26:13 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id QCmIw3unChUj8QCmIwNjpl; Thu, 21 May 2026 23:26:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=Oiw
	CUSWzsfKuW30+2bJ+fcFpqLsWsgR+bYHn6BG+r88=; b=IBPc6OOHYvoGkG1BU4q
	PFd8dAJM1u7tNLaVGmPjZ29UZ8hOo9M1SNNXPCOrRtPD8MEc5iaOxcGHuvJR4/Zh
	uzU8xTi+4CCGtDYtRXpCyO3k9LfSaMJsxoxrJA0Wl11iNOdyxGtSM4fgmW9RgSM/
	RZ+VnMZuDUivgje7764HRxXjNj5yqOeiA7Gfuafu5/FnHfPibozD+/3vN+V+Khp3
	H7pMJZzPfT1Oc+jDT8eNFcBWaqKW5L9XZw1QnT/+JJtDMMZSUu8iUZFCnqGAbpus
	8bhlL9k93E5F3Cjcx1CVpVEWJHPO6dYADpP1GTM44KkMVP+9MiAhR3nma6W9rQP5
	iDA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OOE08tyyQ2cnAG5lo1Wms7wRgElEd56NxFM2sfQynXgh9T0SktrASeO49tKrXAHD+Q3+aGAu8bVEjpn9kE1IS0UiJ/WjFU62FTRYn3Z45fxfI3jSuSZd2C6yiWMUTH1EtXdal54BdHQUH+pU4KDVgGwhiuPicKnVfFg/sf/mq24N41MlG5+Ngu+sOMCxdb8J7qb9rYS1KR8jA7TadV6v6j1m/vnq0yEvzY6YtOAOWuox3biVR7Ix9B5GW6D4qGYIcVI3ceqY8/wqvDxSbIsoElQ9joYkbNV3QEdbPWuUCUg2n+0bfZUhc0S8IQxWsMDDTBev8WMjSrXbcBU7dP8dBw==
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=OiwCUSWzsfKuW30+2bJ+fcFpqLsWsgR+bYHn6BG+r88=;
 b=OE+RD7haG5CBuGUHFQ2VqM9H/cmYLuXTy141lQ+CKru782SNremdPv6RyOkDbltC4rKv0Iv6k5dhJTNtUwEIFLTyLb+ABLUkwYKOX16WjbTieX+xmQveAdQM6FCYkICDB1RoIQBKZ4b/N5IvZ/zh/RLZXB85YJF+HFwu7HBsT674XKC2osWB981PBYCY9d+K+RyDEEiJigGppA2xZNZbtOgbrBSOORf/JchVOH8yyZqexlJ7XnuTZKy2akYXpW8kTiC6pDPcxUzxVXvpH7+d98B/2iKM8NwOeXoh7WJqHbukejMJRCeOWIS/lIjJfeTvDrwahVK3uYCceumLGx8x6A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OiwCUSWzsfKuW30+2bJ+fcFpqLsWsgR+bYHn6BG+r88=;
 b=SsN9hjua3o70Q+6s8IKGEP4tPX/2IWUMl79J4eGJS7sEwo6zY0UgjCw3Wy+MLqA5BEzKlHJCQXvzHnKREOChQ68qFFNz9o73sJbSXwL6wnjzGAZZydY8FzqHylEQIfz0XrD4SHxdaFh12iYrcjpfr2HX7nIzru+P0eGR88msUkY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=OiwCUSWzsfKuW30+2bJ+fcFpqLsWsgR+bYHn6BG+r88=; b=
	n5CLiYZ/50Mk6ZFswIjwKIi5oRGO39uWAkhZIs8m3D3lzFcSpOGKuNw4t81pTcBi
	PJUllaKJIK1vdZ7U4BTL01Ze7GuAgUxADJeobNguVBg81BOTcmpg9jtQBo6P0hig
	RYyPiOpd2140jFq87nvesLstPolUW80b5c/eszQZ71LkmQWxsjDZNQf5tgNuH9Fw
	Vo9dxRIMXD+8Z79Quxv8a0cKf7J8gJgB8JOjwDKzhIRhChvvmDKoEEqvNlZ3OO46
	jN7byD4Aps7kduYYbCxPZGdEpFH0QAc8+sIp33ig8sxQxpfS44XNJgEHyPGzE0eS
	OX9baVtt/j6lCwrFj+zK1w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=OiwCUSW
	zsfKuW30+2bJ+fcFpqLsWsgR+bYHn6BG+r88=; b=MRf7RHUOptE+8moiG1kKdCa
	NGTOFYY52CFDLSIPYHhoeefDCcZhhwAXdL+2gekGjqqe6mojGOsdhTmovIS+GuWN
	Utf9VC6bW4ZwzGODqiYUDKRvbufJPMOec05/T3hPApp7s0sh+kcxreawyo8c9QUo
	yh8SKqyV6Cjeu2lpxFAl8+LzHqWQXWHk+vg02Btvb0OmusHptyq68xZVT8jS8ZfK
	BYqvHBFs3ZE8nA2zaCMh/8+3ra/5peFno2AzuTjPSI4TlXOLza/CbIW5FeL6I2/g
	JA6b8bKHaXFG/jhmBKKn43R0onBHmHjUDl5O8gWOWct/+GV+sRbxCV9uPCcKK3Q=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: QCmIw3unChUj8QCmIwNjpl
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, christopher.w.clark@gmail.com,
        dpsmith@apertussolutions.com, dmukhin@ford.com
Subject: [PATCH 1/2] argo: lower level of noisy connection-refused log
Date: Thu, 21 May 2026 16:25:28 -0700
Message-ID: <20260521232529.694570-2-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260521232529.694570-1-dmukhin@ford.com>
References: <20260521232529.694570-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-21_05,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 suspectscore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 spamscore=0
 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605210235
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF00017096:EE_|SJ5PPFB091F0E29:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 8617ceab-3377-40a7-00b4-08deb79059b2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|11063799006|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	xYIrxKqXi2gqqLscNBbeMKcytK5tVxyZyk1ORGmsii1wGWtwU4PT4+vu+jvpByVoEM0AT9Y8ojCg/Irybog+RAQSjY+1T1I9PoGlMfb4bnUNSYV9gEEzNecRVnEkiGrmz4aS/TbNyb24spRGainmlIOqiuVmvOgm0XgICaxBoHNF50BB5jU5UE1Qm+SSLmkNl4p32nPbtfG8lzEZ+Rdu/4bUDs5mhq9mKHXys9LWRkJxQzSM4CehFeXFXi3atmbSGDRbnPkV88zjNpy5revJI/ANIOjDIbnS9a23blK4gyVCwZiXCFhk0uf/H6iJxdJoB3tmcZJOJocIuENfFMtlvab1GnFGLrvU0mJgo9e9xWIykjUR6xz02+gDnWwN/uNm0kE3QPMixjfDnFfUfYX8ZHVEaRF5gTthlfxPB2SJ32BsrmeyreWM9Rk3C7cKETjLVrdBmXmHe4mPB/6LfwHTadZKjiL48XAwNQBdYUQU5iY2xtIlf0MKmDNUT/xlIcfwB38rPGB8OXcYu6j0FTlqDJb4E7P2M0O4/qQZINa7UzSNIk/j+zxYTpqMrzB/z8McbLx6eHidwxt7TppKpLgfhE6gKAjqpJJEHAYZR7n9q052h7gABA9lmK0PnLq1kJElgsRHwGACc4hvng5cbSvqu0SYJfGTs8ZVZJWzsqHn/mZSTZ9vuUE6Omc91yayGiAPkRQyAPga0AuiB74J+DBxVVUx2P/UzPzo3PQiYXjm38A=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(11063799006)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	jFh3vzQ8gaHh6nPr1aoXIAMrUFXtw1ftWP00BqH9X94F1HnLCZSIeSREEwqIlkUX7LSbkka4ti2mCizJSvtuyVwhohuyqTq7tjPb+9aRggryxGTTooTWFivF/1I9TaWAWZCzDEcJuhF3jm/3kLNFfUexgHb7Nz5dVwe3CD44P4cFU4xyA8a7yZW5T+COfs0BFvKh8WAvndCRoYq7OYY7vCRJaty2/Q0jOeVWiJWVlfwtMGuFbOMGNtMDII9H13eXVFh/kcPDucjOmBbSVSNCgX+vCqjDF4YzibefO0E7C42RnUbeaTe/ZDGlu+JzuIkYbne4LJ3crW6MqI02glmAibkJoomfUvv8+HfAe6zA54//PEuS5BldnfOOC1mCgp9sazn56waNNK0yMJ0RFrwLoUjgeMnRWZpNXJL2+wMxdrvY18gRo7GYBNBr7TYk/L+E
X-Exchange-RoutingPolicyChecked:
	XQXMClmJjwrSqZkrsZqDI8i5UfnM2TApa0eUZVlJNYiloIEBTZnvUq65Q4RNm7XyQ6T1Hs/piIbZdDMrynohVwGjp6UstT9pnxDaU4WeDU2citDlMeanftFRFhp5sxutX+XqNfZTujW2hs5sk+mEOPW1kpV0HegruC0eYgzez6u559BMuKbBmYrCM917NMwbofQtXaU4+rvGbpXQClOFaHc6v46NY1b610h3sr8C6lnFMuho3jTfL1mzmDu3oO5osSyfH9dSIHAKACyQwvNVBz5Ghy1aU7Cb6zfZ7EiiPt7qgIoEw75Q0RESPae8k9q07d3JckZZ+J0ISC1bsCipQw==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	lRK8GcVSKvrOU0rgfTHl2yVF9DbW0ya8m0QEzSpTwpF/9lm2f6BtEbi9i2mu6n7N47Rj5DrMVigfhfFTiiTnrhTCS0yhM+NzI1iNjS5KOIPui5UZiKbZEMHcxo9KteSZaqQJ36kDLWdZRDGZ3qpxLn9AdMeaYzHobWU13sKV9E+Nfe94vq2mgV0rnuwai0udTK/SC1s1E80wXMVHVScYRr0HL2lhFrvKGGksLfGvCMlOp6RD0XwH2ljlkwaxHGLsRahBQd2xsVHE8omK9/6VXFztxqf0BkdiEtK18LrCxbfuKn14DLWv6sNNyRix/kFBXzQFHD4iUuLN7K+0qvecFJnw/4bJxhVAhr/lJWjEG+hkTIk7m/QlEqNp/fGLFY+FATW0svMZQIinykv1H/PrvdZ2A+ONIIiSjvp7x++qUB70cI9vQxY5nRY/J2xGMfTl0GBs4klAOSwRLqXiO5tD17wyPHrljXHwi14Ovub39jM4C2aL6JPPpqSit1wLyitKCzXnPxkpF//rX4hIs455Ahp5yJMgSL6pXOYCW6LD0BoKxb1P867I6f/+zlUXe/Sexs11c136Mmf7FTU+25+XcbEVGasNdI6o4krQFl9mjaS29vYfhbrBUaWb3HwNq6uCR9LuoLYSIu8w+Ds69ZZHFA==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 23:26:13.9099
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8617ceab-3377-40a7-00b4-08deb79059b2
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF00017096.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFB091F0E29
X-Authority-Analysis: v=2.4 cv=N+QZ0W9B c=1 sm=1 tr=0 ts=6a0f949f cx=c_pps
 a=zYHeo5UF1QI7fA+G+QDVSw==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=WER9OelvoqQQjwJToBYG:22 a=cbNQJ9GKAAAA:8
 a=54Me3sMKcSjXOMnv11IA:9 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-GUID: -jzkl2GOF2LGuv5leACWRrBcLIilz3MC
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIxMDIzNSBTYWx0ZWRfX4rWyOsW/AK3w
 O3ZWQ/OrypNnZ0ZkMEMlFlok38GdWQppVzNJdPvIlX/EctpHufODPnBbK3o/SMHQ8Qetd7ABR04
 nYcGbzeAgx5hHflvZMOwy4wbQHUJdU5+PUXO5DXIZAky1IvyUJRFoXmyZZgX/Sk9SQ4YwJ360fz
 9m32B1yfJSEfUnwcRJ7yoJ2rOD5WrL+z2G4VHXGZjjT2qtsYR4pjGBSRIecslLfj10vvD1JToau
 PziUXziHyYv/1MRMYI+Sh/VXcUq78C+B0jRScRRO2B1GdDTFSSo5XG8ypcLRGuyKwc7lyfC4xqs
 ebNE/mkqNKmqnPFI/y+DRO9mP8fpbnwn/Yp23qNWnPOykLMcGuGgI0jS46ppHy5se3ziMZI+pw3
 w4DLDnWbdBnPqDJ/5/1MyWJDAMhObgw0FXaBRVMvWkt1v4hppOmZoy6p41KWZvRCqBvfQWjm38S
 uezMK2KTXCBk+D7iXGA==
X-Proofpoint-ORIG-GUID: -jzkl2GOF2LGuv5leACWRrBcLIilz3MC
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-21_05,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1015
 spamscore=0 impostorscore=0 bulkscore=0 malwarescore=0 priorityscore=1501
 adultscore=0 phishscore=0 lowpriorityscore=0 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605210235
X-purgate-ID: tlsNG-c1860d/1779405985-C447DDB1-7070168B/0/0
X-purgate-type: clean
X-purgate-size: 1224

From: Denis Mukhin <dmukhin@ford.com> 

Lower the log level of the "connection refused" log line, as it can
spam the logs when a dom0 service using the Argo hypercall tries to
communicate with a domain that is still starting up.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/common/argo.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/xen/common/argo.c b/xen/common/argo.c
index 28626e00a8cb..4f894470698e 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -2034,10 +2034,9 @@ sendv(struct domain *src_d, xen_argo_addr_t *src_addr,
                                         src_id.domain_id);
     if ( !ring_info )
     {
-        gprintk(XENLOG_ERR,
-                "argo: vm%u connection refused, src (vm%u:%x) dst (vm%u:%x)\n",
-                current->domain->domain_id, src_id.domain_id, src_id.aport,
-                dst_addr->domain_id, dst_addr->aport);
+        argo_dprintk("argo: vm%u connection refused, src (vm%u:%x) dst (vm%u:%x)\n",
+                     current->domain->domain_id, src_id.domain_id, src_id.aport,
+                     dst_addr->domain_id, dst_addr->aport);
 
         ret = -ECONNREFUSED;
     }
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 23:26:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 23:26:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316098.1585652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQCmV-0003vJ-8j; Thu, 21 May 2026 23:26:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316098.1585652; Thu, 21 May 2026 23:26:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQCmV-0003vC-5x; Thu, 21 May 2026 23:26:23 +0000
Received: by outflank-mailman (input) for mailman id 1316098;
 Thu, 21 May 2026 23:26:21 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wQCmS-0003v5-O0
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 23:26:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQCmS-004cIy-4U
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 01:26:20 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0f9485-5cb7-0a2a0a5109dd-0a2a450ad838-10
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 01:26:18 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0f9497-56b3-0a2a450a0019-94a39217c18c-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 01:26:16 +0200
Received: from pps.filterd (m0384718.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64LKEtj82580071
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:26:14 GMT
Received: from dm1pr04cu001.outbound.protection.outlook.com
 (mail-centralusazon11010027.outbound.protection.outlook.com [52.101.61.27])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4ea6tp2p0s-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:26:14 +0000 (GMT)
Received: from PH8P220CA0027.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:348::8)
 by SA0PR16MB3805.namprd16.prod.outlook.com (2603:10b6:806:8d::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.21; Thu, 21 May
 2026 23:26:11 +0000
Received: from SJ1PEPF00002327.namprd03.prod.outlook.com
 (2603:10b6:510:348:cafe::d0) by PH8P220CA0027.outlook.office365.com
 (2603:10b6:510:348::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.17 via Frontend Transport; Thu, 21
 May 2026 23:26:11 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 SJ1PEPF00002327.mail.protection.outlook.com (10.167.242.90) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Thu, 21 May 2026 23:26:10 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64LLoIgJ1923897
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:26:10 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4e9u9ys3q1-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:26:09 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id QCmEwvGzwdhUUQCmFwIADb; Thu, 21 May 2026 23:26:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:Message-ID:MIME-Version:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=ppford; bh=QeS7mk7Q8nU1KgP6uhv4jkAvI
	8fGYa8i2nyzo6Eee+U=; b=EljAue7bjayX+hHFC7tdNoKJh7OsJTCfXsmnhH2KX
	c5/6yIHjKzQVDApGT+hZs0b0hRZ1JitadDudQQxM2W544jHWWHIl43b/cFs5RtFx
	k/OZANeZXNZULaz/xzwjij2+9EuXHRZ8NaWrmulLNoXzqn0MDzbWI+s6cal9eEUP
	bVKqsBkFT5KABCTUclYnKmacnPIBsuZ6qytztN4ZKlHuvGBFWphv2IvE8UJgiMCe
	c62AY7GQp9X2vcMIaP9aeQDjeWVodiqyTohnuudmTjJyxwzG/5IXPSU1Df/mFp/U
	TgSzhIymEUoMagqns7HUEShZexYUWPqu+9gXM9Tc2RzhA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VloQgEUrZF9ol9bWfU9++OwYx/cTmjmof74gVl5PkCjzmXZjWDgnxzfNLZplp8omAl8fkTFGn2vdd6m4Is3QdVNzT4agg/9E+vc537ElmTiWMZHXi1REig5suM+Q/7pqeBuySF5r5ZHMQUmUj3xQDm8YKBs7r3QVqzikERdUe81t2M4SYPafwAwOkEYeXrylD1nuT2LWfgtmVT7onS0t6RL0EFw1b015dUOb+41Z8gT3iLSy2U7KWMBm9VRgD3dF+fER7pM7JpWJ44S8XE9HKBoZfZHKa5hi5qH0DOn+prsQJ0OcRk83hvfhLtHoaZCQEvtCobHtN6oeJr1T32YvDw==
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=QeS7mk7Q8nU1KgP6uhv4jkAvI8fGYa8i2nyzo6Eee+U=;
 b=eNE9rokTr49z8ZGV0n2oT1GatbrqbTEfxrmxP+SdOEN6cXg2P+6mVCJegPR0n8DxWRTMX8vy3kaMXYiPZWVXk42lCyuMk8AcnyelRiTw6wyqRl89NuOBazZij/2eK0tdkh79rgt6Ddp5mmTWOqUXy/xisKVWCEf6butC9eh79kmeltQHzJmQ99dTyVG5uY9q+/T12AHm8PB/Ynt/pGuGrzZ7rs/M/dMpZhwwF/KI4iN4/wTXlmZYWIVHDRb5g1NiUf+o17ZsJ1Z/9O7qFlU0wzckhtVVADSpU7HPSzKWbgDNz13wolVDqcQSgTb+AL+ZEL1erZgyU4vvmfnno1U5iQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QeS7mk7Q8nU1KgP6uhv4jkAvI8fGYa8i2nyzo6Eee+U=;
 b=QO275TybHVjvSlUNZY8x5oHpsqiWdpFUm94Ic0qfdZ460TzF0PU6kj+T65YDywlk7qlA8x4eS6Wh6rHNXsUUAdaMhxqOx3PTBMqUKxZiFzhnIiHV3AVE/XvvcXIpWom5DhfmGZdkP0k6jM1yE7aWH4AUgbwBwh1BB+lY7s1es/A=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:message-id:mime-version:subject:to; s=ppserprodsaar; bh=QeS7mk7
	Q8nU1KgP6uhv4jkAvI8fGYa8i2nyzo6Eee+U=; b=Jv1LBlJSwGWDi4WG78oGeV5
	NAFWTYwudS+Lhou9saSAJCWvn42MaJyM+y8xwuvgvMMh3xaSCbUqaSSVth6br2kC
	VH43yh4F0BKphzDa3pqf0zqv0w9kk0Ny4S2KTQEkkIpbeo25hEyNPMPsLG7KYTsJ
	KDK7K2bNlcBFurwksPm2dSfhM0lgEI4W+WfnSfQ5TioFLfmPp0QGk73PBVe7XhwL
	93xRXin4NZlgwYS/L9pG0MwNiSHZaR3cP2A/STrcoF0wydcsxyUIFhff6y37tOoF
	FPbU/mDdv5pF0lTNsfQHAihOqtnj5WIUtaxALvQMTeBsYPMrd3gzPb/1Rusbcew=
	=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:message-id:mime-version
	:subject:to; s=ppfserpocford; bh=QeS7mk7Q8nU1KgP6uhv4jkAvI8fGYa8
	i2nyzo6Eee+U=; b=JMDZw2XW2Dkc8RZAiIrIZPausW4i6TJwQy5ct1Diw82I9xp
	bw0hbufpX0EK84e/4fkO6EyJKlkdgGR37dfvn2fUURQpB75xLhmH02Y3d3w2tjfa
	h2UVuHiM/8rP4PEH7HIAlFQh/Ft4NkjNratuCnAMsoKQLaBlg5aDbqtoBgPV9PW3
	7RPdQabsfwZeY8q+Qn/GGiA1rEWArpdgwWA+pWB6wfoAIGNhmE36b+Pjt2sBorsD
	dCxeEnBWA8aDdD5f+3WnS21JFwXRuHu1PVEWH8AhK++JeXBuVeowkzLDGVXLaLWL
	1ZLpPXj5GcRTwl+zK+UuswLNsDBX8y0tbx6rtWA==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: QCmEwvGzwdhUUQCmFwIADb
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, christopher.w.clark@gmail.com,
        dpsmith@apertussolutions.com, dmukhin@ford.com
Subject: [PATCH 0/2] argo: few loglevel fixes
Date: Thu, 21 May 2026 16:25:27 -0700
Message-ID: <20260521232529.694570-1-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-21_05,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 suspectscore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 spamscore=0
 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605210235
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002327:EE_|SA0PR16MB3805:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 875b8476-e381-4a13-94ef-08deb7905778
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700016|376014|18002099003|56012099003|13003099007|11063799006;
X-Microsoft-Antispam-Message-Info:
	0yUQdGDGM1ggtp9JkWkou8374gTWdQwUJwSGt79UUo4A/kPmBdm+lJmKa6RCklwR/H0F1qNqIMsYxWArm3td3yBEfg90rxZJGr0FmHqNNslDrhifwavwCxjdTAADFyzvQxZ0UNihkmiP0m1q68U+1kfOM1y0Kq0OEVxnoyp3DTPXmT1Zx4DR4N+TB6FDX7umIRTGvkfo//hiKozuYdBwvP64nYgqVNCTQVVEEm0Uzsq1DEmVXlcPx1HJRNvSXYxbMuJCR8PYF2BZ7vtVbo16m+mqzgh84eO/4CKdCdOAziGG9B1rEDYlrwfF04StrVQcA+OoXB0bp/xf5SMdbwxr+nGoWxCcgKhpzzlaknuEw5EReQefUAXwwKxQPxenG8yRT0ZrQ5NxV4B4ZCOEHi8jaNsl4Tzttkg1ctrqiyo7QWsOnDE2ZLHbf9zIQ+ZBMYVHoqzlarjVIZXdxo2C3ZCUHiywonCsFafdwpo23JHyjMnuH7KFuU6JG5fzOu7Q7OKKZDNjYqypLt8MGlTiMUiIFV40LysOSwje8ZeVp9sNdie+s/Hsnk5XtULSroHtSoEfoHoNI66rle4K10BAIf6WQQSxFNkEureH9LOTlhvaYaUUKrJVPbZk9PMmQlmifwqvNiRmyU5S6/hD8D/TOK1GYtO5MR4bRn73ohh4IlsvSk2B348ZXzRPo4BE0lwsnr0XKHA8t8yKKIKJbBpL6tmvCj/eD8TJFIrUT9mEWm0xs1GayrlRH4+spIZEi+fye51v
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700016)(376014)(18002099003)(56012099003)(13003099007)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	YBB8EWzEb00Gnwlx59oTzX2j5kiBiThiJdQZ2yD43dlShzDSlAntW6GxOcK6x0EIXgW7mAn6GuruTF02AENbqr7W4d0VwWk34b/0zK+Dqnhcgm3y7rI8FzglsLFr6qEnOucV7RzjoiGZJTq75CAa/iOz4sRerP9nywam5huKr18iUJ3uDY6vnDW7km/BNPvBe70iS0FJgOhd9xEUStN48cOj9GM5ZYBUJ1C+6TRlVXPuJAv/dNdCJC36sKCvNwlZ2KdcFfww3j6MDxVc8oa0U4LJ5iFPXssPGYuWSz4IjwBI6qYQbk+akajsfZve7rYudl27cgExoUAKshepgicqOLejmwnwawZ3Q0BhdAFPaoRti/cDHQ5NqkTjbz/kLiA8InmvfoEIoWy9rTlNC7tH0XY4H2lYDdzihyEcHPE4xdRF7sdcaf3PrlrGgkNHcCdg
X-Exchange-RoutingPolicyChecked:
	ZZaWE6tZeW24gcu0e3il6Fc6gqjQ+QGeEkYBtQtJgUrJqjCjzHAnCseZOJ2aY1Vcye1Sqjw93LcpbZK+F1Ab32oCKTWaOUQ8Ny8TnBJHd1/RPjTjQEaPMLHfbR6TdvkIo1DKjPXxh+2kmA5h5koNY8rbQKaszn8cPuwEgJwcBW58s/nFGcpsQdg6mZZtj+keYx7AmTAjBZwAVypfjwLrAFbAtg2depZvDsdSJ984fQesW5bjD4oGGZ84CiNX+8NfI5LM+gFkQcxGMZ6gCNjgSkSrg+BS9jQZGwqpOhDVwGCSnIX9AlguQaaOHAG2xuWGR4Cx+U64ZPjR/YQwdajXOA==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	f+0+YS2GDCwQmh5y4JC055F+SCpoF3aftgVIHSn8VF6LdoWIa9kS3x4nqkiPEFyHPIsjoCzx9DCeWPgP1kTh4mUUWs9B4k/D6EEw5nekBuFZCNHsU4NJHSjhYPEjhHqElVuZa6khlyqDIG87yZXcTe9ov525Qc63AJbrgvxe9pvaixamv1U6dkB0JDMRPr1mePWkeM7y854VktKw4hJAnuts+Ny/JZ4fTsnD6FXz3pTWxLU5rn4Fqd8WT3B30s7G20UKBvEw1LefrigEKcg3ZFOgBHtnNHoOumG+hbAazw395bAl0hfGgBj9Of2CPFD/iqBpNx56tOLTwDqFzb4byUZKUbCd8iQKlUDis1NScrQ6AMS9O9AxkINN4pnWo3MklX0CE/Y06wRP5ZS14XNK1DTFRDHOxPhOLho3jHRi1GS1vF4RihQApTzy2wqTPAxVfEKJ38ZXltV9wUZih99HkgA/6o3vo81DQZtALQcNCyEDfLlIHKgoUtmulQwmI1Hr2I/NixFqFS1GucPeWHd+vXkek/b7JoYjYTTicumYmILmdOzgB5sQLg9xQ6PzUsbNxUfFH0go1M11Vzbf04jonpCHivTx73yyxjuy1jVEKBk0hnaaGU3Cn0lL+669CL7taJUBqjOTR7xgRRM1Gc9/Rg==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 23:26:10.3388
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 875b8476-e381-4a13-94ef-08deb7905778
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002327.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR16MB3805
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIxMDIzNSBTYWx0ZWRfX4hw83YTrSC6K
 hg91OzbvIr2CTjPilZaXxIgdfPzuaNrXAWfOk0mDTl0+mKEVczxkB1R4QcdoqYHxvvd85adaSy9
 h+eEbiRxnHJBqmWoMU9ARimQwkgKS3w9eO3+Q6XK6VbncDmZt9a7mhOMQZjQRJ09PF+m9w0ZdM0
 siLxF/0ff4YW6oeJ7MxqwkmzqtoyvCamvt9yMEyAjaqq2QAWDDROShTohj08yKh9cmcWQvOzTiv
 IV5mlXEdGlFTwq6U/P75QMBUsCdldRGNAKzxsHi3aCtRCGZ5C4OwuTms28Ls7noLZ1t53nA5SlQ
 tFsy6QBtzd7kgcezTE+k5JPs/NzvFkH3WV+JIMbso0KsiEB49rPGMafdLkLaBBoBKwV5KxJM5au
 x7+Y/gk+tzv0HqoG3FetHHxyqYkCdJ5NVxTyOV7aRk85JfVRPE8SST3ZYJakD+902f1z4lXL3My
 c0ZBrUFrHkDGYu0IglQ==
X-Authority-Analysis: v=2.4 cv=WaI8rUhX c=1 sm=1 tr=0 ts=6a0f9496 cx=c_pps
 a=ETG1guYRlgXENsW4hp29Cg==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=ARvDHhclS48edyKYUbLB:22 a=p0WdMEafAAAA:8
 a=f8sLD6d1oYygO2dfQ3oA:9 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-ORIG-GUID: QB9eAMwf5piLK9LKSYGdfcUscrgIX-Ra
X-Proofpoint-GUID: QB9eAMwf5piLK9LKSYGdfcUscrgIX-Ra
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-21_05,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 suspectscore=0 clxscore=1015 priorityscore=1501 spamscore=0 malwarescore=0
 adultscore=0 impostorscore=0 lowpriorityscore=0 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605210235
X-purgate-ID: tlsNG-4011c0/1779405978-7E38D8B7-25F23FEC/0/0
X-purgate-type: clean
X-purgate-size: 455

This mini-series fixes a few log messages in the Argo module.

Patch 1 lowers the verbosity of a spammy log message.
Patch 2 corrects the debug logline.

CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2544856081

Denis Mukhin (2):
  argo: lower level of noisy connection-refused log
  argo: correct logline in ring_unmap()

 xen/common/argo.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Thu May 21 23:26:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 May 2026 23:26:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316099.1585660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQCmW-00048M-Id; Thu, 21 May 2026 23:26:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316099.1585660; Thu, 21 May 2026 23:26:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQCmW-00048F-Fq; Thu, 21 May 2026 23:26:24 +0000
Received: by outflank-mailman (input) for mailman id 1316099;
 Thu, 21 May 2026 23:26:23 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wQCmV-0003wr-HX
 for xen-devel@lists.xenproject.org; Thu, 21 May 2026 23:26:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQCmU-004cIy-U1
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 01:26:22 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0f949e-5cb7-0a2a0a5109dd-0a2a4508e712-0
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 01:26:22 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a0f949d-63b5-0a2a45080019-94a39217fad4-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 01:26:22 +0200
Received: from pps.filterd (m0367124.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64LN0SZe1003372
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:26:20 GMT
Received: from cy7pr03cu001.outbound.protection.outlook.com
 (mail-westcentralusazon11010008.outbound.protection.outlook.com
 [40.93.198.8])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4eabbhg3ta-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:26:20 +0000 (GMT)
Received: from CH2PR05CA0021.namprd05.prod.outlook.com (2603:10b6:610::34) by
 DM6PR16MB3765.namprd16.prod.outlook.com (2603:10b6:5:294::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.48.17; Thu, 21 May 2026 23:26:17 +0000
Received: from DM2PEPF00003FC5.namprd04.prod.outlook.com
 (2603:10b6:610:0:cafe::ac) by CH2PR05CA0021.outlook.office365.com
 (2603:10b6:610::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via Frontend Transport; Thu, 21
 May 2026 23:26:17 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 DM2PEPF00003FC5.mail.protection.outlook.com (10.167.23.23) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Thu, 21 May 2026 23:26:17 +0000
Received: from pps.filterd (m0373461.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64LM1EPb1815538
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:26:16 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4e7777x54u-2
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 19:26:16 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id QCmLw3uqPhUj8QCmMwNjtH; Thu, 21 May 2026 23:26:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=auf
	8g2N78hDKKhKdiw09OpQe5vMp48j3NWYn9L2v7Hw=; b=quR89Q1Av7xCihpB2Ha
	7gGI3///Abw8N507ZaU/LPpcFsXCrmB2bmW7wg2yjzpSzCyf4nNFf51ZZFz/MevR
	LhT3d3VXuIyyHrh7NJcbG1or6HkH85MdMK7jzY5VDLdlEF4AW15irhT8B6Vcj+1k
	P2ULYAbcO3SHibwySrU0OLwLMWovmj7wPk2c0Rh8KcLuVQtxLBNru0+193zFPtNw
	ZGbePeKV7VNOjr6+3UROBcgO2bxUtoMdP3LrgpCJEDUASzGDUiWHbXaMOmg5k8HU
	+CwKd0s1U5x8e6LiAUlva6bT4ukOmrOlUwKiNqO45mk56gnM5WaNDbIBH47vXdLh
	mww==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=c4tGOfOoKip3vZQuA8CTiRRCPm5AtKePhRzxfUpkEjmPwriOrrTxKr4YLLUefIMVnPwyXWj+lVubJxggq816eDui8oHNWs4yA2EJW12FbegWMU7ETkwRvOjt11z6JBVyneEi9PPWUv+YwjbX1Jbj0su57vdFetuinrnIkdnGfsaCu96tk3kIuLAUy8EE7sWfNmuwpK9tSK7iZAzv9jBhUPtlOFejscnUtaniVdl2spbudczX+oME8Sx/7l6dJ0Y8mjvXU+Y9mlrkWBGm054ACxcOAQCHTMZgJD3xHeg9JJa4LgVkx5iUJp2K1e93X8UarAvZbN1NCh8oBg6Uy/HRsA==
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=auf8g2N78hDKKhKdiw09OpQe5vMp48j3NWYn9L2v7Hw=;
 b=lTjjV3N5csMhr2t5dIGzh7X7pyfRFr+lJwQdqb2EjLDf5px9d1RqCm3hqgsuSVFFuJoggGOELrWiLGtboYL2RvkCRFo7UgMI0HXp++JY0cIX1oAtmnHMe1YpY76hnCpZbnj/bRTl+VoJkBjPlvkyUXk4ZNdgev5t6g2OCZkm73pgIzMRHyACMXF5JkUVho+AVUA8Yx6mFS3txqIDcpQU++jPjOdgV4CD18vRSdfg4F73S2Gmvay/psU8lNSnh6obfJzZNOd/1Boah/7ILivyysCRLbr3wUlkma8GHBVey5u7RbZK+vfUUO49nibHdEIBH0V6fTZOM63yKzk/mZWkWA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=auf8g2N78hDKKhKdiw09OpQe5vMp48j3NWYn9L2v7Hw=;
 b=cReLtkvLygJTvxyiuu9QhPypM5tV2IVhsBskHncFJZm1rxhlwEuhJ1wIQyEKoamlC+V3MFf2ZstUlKZOGJArAAr5gKksH1vkqM0WSIGXEHzfKVhoEJ4HBi5jvwaWM0hBhz1PGI6TfiAC7Jf9JdwDtonA0dsJ6mezZqlm4xH9IQs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=auf8g2N78hDKKhKdiw09OpQe5vMp48j3NWYn9L2v7Hw=; b=
	kqx2gC/HkdlPEX9oTtI8AQIb01l88o/PnPeeYxJrodqOmYmGP7ksN9VuC0EgJgyL
	7/+IsL1A55/yylBSsCNxKnzbqePg2Be+CMhrO18PsGW7MMYLcOVZhwqKbvS3MtDh
	BJsbyopMqYAfXmbyVPF5N4J5OMEa7uZn41ibJlaEaK6z6SzfFgJcGQW43oNLdP3t
	lP1PNjcuSRq6wZIbvXVZH3TPm8dh1pVfhitHEJSJPgCV6qEBpnhllkjWfMLR5GES
	UMiF/UzXSNfUn7BPmUC79O97nYTl9xbz+yry+5MiznxGTv9ZBlkbdWik8cYWJU0s
	K9Nthl3Ga9/6qXFlStJ2yg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=auf8g2N
	78hDKKhKdiw09OpQe5vMp48j3NWYn9L2v7Hw=; b=hjestMZSkZDdW9MoBz4fTzj
	Bpx8dFwc7DrwbFDHFaHVgwwU9sAyEXNsAV1k+bkcO6fNxCi5RKTUmM6S2GhtgWhd
	4Ti7vr6e9hdnKG1P+OCxtciXEqpPicA0Ji3eN63l3al83tjl4DsOrkzLh7Bt+E/6
	OccB2XTAkgZnwGHSyq/CylzgmSVylHPs5sMqfZwlXUTLAXOJHg6kDI35qJnLWuN6
	2bnLzMH3pHO40VKJto4OcWW/WPNtG9x75cUUt7ohMe5XjW8PXai6fvf6ee5FueWx
	h0hViHeyPUo3zCiPK/sFemyYncL7YAwCTbSYsLDcLrRSNu8/ningXigIEq27S3w=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: QCmLw3uqPhUj8QCmMwNjtH
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, christopher.w.clark@gmail.com,
        dpsmith@apertussolutions.com, dmukhin@ford.com
Subject: [PATCH 2/2] argo: correct logline in ring_unmap()
Date: Thu, 21 May 2026 16:25:29 -0700
Message-ID: <20260521232529.694570-3-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260521232529.694570-1-dmukhin@ford.com>
References: <20260521232529.694570-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-21_05,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 lowpriorityscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0
 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605210235
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM2PEPF00003FC5:EE_|DM6PR16MB3765:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: aab0a8bb-8d25-49e6-f6cc-08deb7905ba8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700016|82310400026|11063799006|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	fRaFnHN5xP75sUDvVxUt/5YFGT+CHiE2fkF4UGR00hHH/DRceL3ifjV7Nn0Yg+buRgFxz8+hUnHboJF4Ff730+nv3/qKng/7/15k6rMmMZ5hxthzlvZZA4bwxw4VYi4deVV11Ft6kj5xlxzCM0YUHY4SdlPjCA+vuMT36uGHpfZhcKpgBoiTZi4gks1j5Uzim0Qgjk2ScW2nFtqp9EiLQ4/5X1vjlsOroqtnYj/uwiRnHmJ7lTen9PZQvqrD0X+reMoKmz9LkQ4vh+xoFF3p3yXLSf/bZT+LSBxDIoPK9sA3+bkmpldANn+OiL+Cq5P7KtQXevKeVvytAUQ4M4aqRYqoRt2WWzI/RyWZLj9/foZDPQ5QlQ4aF9KsSQlMQPh4lv2/0Aua1T79nMlDO9hL8dj2kJ+hJcydMMXd1t1kqmZp3j0wc7iHoIjEab1+YeEs72xtJ37tvyrihiPSV5dGycNrn96JIA+bxceTKFDh3H5lPbCjgI72Se3+ot1IhghTzOJ5kbJkdPNhIH2l9RCpE1q5RoLCkbXaNGVPVKN3SLSdzgs6udyDaFNi9oL+Bljxd+VCLtVWumSV1vB50TX+u9j+vAr5CLbrVM8Cnx+2cpPQc5Uwl47nY+z1fzH+oMu/ha0rfuzf2px+CvmconCr+tTle/oUNRH+fB1jxxVscAEu0RP8kQq7OUnfpbm0wO7UU/nktSbau7+hVYcQJF7yW5sNgXsaQpMsZUZ0ZwqMqiY=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700016)(82310400026)(11063799006)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	x2srf5sYsK3lL0mJVXkeQNXccoPD+K9WRSmL5BCtdR7PovcNbZXSLTJizRCmIF3ET8FGhBahDFJPYQLaHQPgb6gcnANkxqFaVJ6axpmDgfis46P/D3Qzfm2IlhcPzz2Sy5hAOuBmXEo3pl0DfO0O8ZphT8FTGIxhYdJacJGsGPGyi02Mpa0pq/Vz+S9gywWjpeqw2yqF3LXfR+d5+wYL5wghBRb37vId8H1xqRsR3Yfej3UkplL262E/4MyBfxFu5JRaTa+PEp2bOYGvIWU1cYYyGidKQbcV6Hvvswg9QFBbyqnhtwXjO9l6U2mbtFw61AN6PJL6m/KYgg9a9bzQorhbjD7a6q6+VGno1t462hMgy+nnOUj4W+SvAXCmI6VIHZdBI4HgwiYlmsPKosw5KNk7ZPeW6Tzh8TaeTFpkPN3RVW/1lkrkgigOsHMBnq20
X-Exchange-RoutingPolicyChecked:
	KKAWelL0SFmnAZ427JGl9LyCL6Xu8wYEXQ+eph30thTuZ15lRDYzIrAZqEp/7HqqdZxXHL5xbIqKlMY7zPoLEgDna1zINJWczDMx//IFcYDxNr6BolnivTe3IxrVM0a4KfVgSNOfik7G0cKprAF2OhW7oNevt6p2bovRITAGr+eXOYTAgIDdWBZV7Xf8Omw0D8YYeWkZnkqflx7fKkmJEdScM+zZtKe/2oULbUMYIeCOpP3zcI4C/9W5Ob6WUdNPMRRPg0hEhQQBeeXpNhVCpwR8Rt4BwVz6jVbyJmdB65gLPwalskXcBREbjrezpJlW/apKvHFeKoQn0BH0DAF6Bg==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	jwZOM/SkDv/Ov3Z5UXnJQV87KxzMLuad7FMy0MS3Z7ZEDT1Iwc4TPd6jyyaT19lrwyr/rlEOBxj8OsSuXLHiofDpGw0ojCW6Q7l5TX13OMLblS7lz9xV7UVX8WNTTeAdemns9ed71pX4IXM4PpDtPhDaPu8aUpADcHehaHw8nzvktwxm/NAancDjgSfqWi8qQU4mFqQB2Ihlcq+xgIX7yEUmOlEkszfabpFO//b+lmQxV+6aG/MWUBZ68H4+l5qNpqFrc5molj7SeQrhjefhJAP+uQPSKDcTDCHsqh7FaOYGn2n3CykuHrnG+NzDgmMf7d1+WVuBVEuYEsKMvIgYqs73CGGQuUn+PEZn6NuCpYvlMawpMoVebBHkfODBXFIm/ICDCca5Q/GfdA1pXMy8dopMGO+4V207GiNka/jT5rBCRhBt42RC6EjbLNI3a0fLFFlMuy+RllLNYlVZHclbO30h7o/xzzzan/O4pi9qyI8xO+3cAMnL38VFGljvwAzM2uvCu1XGrCP7cBsgWbWEegIijT18EkkGAkjCW82SSHWiv9ix6alaQFvqWWY0gJZ6NbXnKo2k1sfW/1mgr474EgDpSegZdvkBPvPAttV99MQIWjgCF0O0RPtyrDlys/Frxqc0/hUt6vJ93MAvjljCwQ==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 23:26:17.2224
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: aab0a8bb-8d25-49e6-f6cc-08deb7905ba8
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM2PEPF00003FC5.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR16MB3765
X-Proofpoint-ORIG-GUID: O0RyI6B-GBTwaXSE-PQKWv-Lou1DTjOf
X-Authority-Analysis: v=2.4 cv=LOdWhpW9 c=1 sm=1 tr=0 ts=6a0f949c cx=c_pps
 a=ugQZG2M6WJJQC2vHgpB33g==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=YJXg7OVxOWrJwj3yZo-i:22 a=cbNQJ9GKAAAA:8
 a=hsdAAiz330OmmusoZBYA:9 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-GUID: O0RyI6B-GBTwaXSE-PQKWv-Lou1DTjOf
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIxMDIzNSBTYWx0ZWRfX81i7eoULKubR
 S+0+Oue88R4C+hFxVoCtiURdHpELI81oQCUOYh0l+Rykt9CB/ouHRvVR6g5YTZ8O90wyVkkLev4
 7Uf2eGrc01/CtBvY+zMef7QHDO3kzPGdaHj6LKzEpRmc8HLGlb4wj61cZ9Si8mwEeDL5LT6m16x
 T8gCmnMQwdMNjldlbXFhyFoWxw/4NkLQ74mofodmZ56zVy52mcvoymAyLbYZ7IHd8KyE4eGxd5q
 Indvi0ahltdnFGQLLlbklnE0+ec7jMCKmuoroIhX6RARKLoKt0w2c5IxkejjAYeIyHu2wdC7HEs
 IssZvlErEdtXjSBdjquDE2JHzRERHMbn2NCunPdtAvuV5wKr1Q2bMTz/CTt9x5VH6GJpDNWfyhN
 pWwT2ELT4692FWGdqwoxYGfqqrk8X5i3hHz1sVnTHEEjIChbYL7lvvXzv/DSjtzVcMOOmEpIx8M
 GEsDHYmJ8NK76bCkilw==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-21_05,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0
 clxscore=1015 priorityscore=1501 impostorscore=0 lowpriorityscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605210235
X-purgate-ID: tlsNG-c1860d/1779405982-B6368DB1-75009217/0/0
X-purgate-type: clean
X-purgate-size: 904

From: Denis Mukhin <dmukhin@ford.com> 

Drop XENLOG_ERR from the logline since argo_dprintk() already injects
the proper log level indicator.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/common/argo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/argo.c b/xen/common/argo.c
index 4f894470698e..c66632486800 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -474,7 +474,7 @@ ring_unmap(const struct domain *d, struct argo_ring_info *ring_info)
             continue;
 
         ASSERT(!mfn_eq(ring_info->mfns[i], INVALID_MFN));
-        argo_dprintk(XENLOG_ERR "argo: unmapping page %"PRI_mfn" from %p\n",
+        argo_dprintk("argo: unmapping page %"PRI_mfn" from %p\n",
                      mfn_x(ring_info->mfns[i]), ring_info->mfn_mapping[i]);
 
         unmap_domain_page_global(ring_info->mfn_mapping[i]);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 22 06:11:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 06:11:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316292.1585679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJ63-0005VU-LW; Fri, 22 May 2026 06:10:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316292.1585679; Fri, 22 May 2026 06:10:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJ63-0005VJ-FW; Fri, 22 May 2026 06:10:59 +0000
Received: by outflank-mailman (input) for mailman id 1316292;
 Fri, 22 May 2026 06:10:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQJ62-0005VC-FP
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 06:10:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQJ61-00FvU7-BV
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 08:10:57 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ff36d-e002-0a2a0a5209dd-0a2a45058d00-12
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:10:57 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ff370-aaa8-0a2a45050019-d1558030cd07-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:10:57 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-49042aeeb75so5638215e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:10:57 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49041740ce6sm14484595e9.0.2026.05.21.23.10.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 23:10:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779430256; x=1780035056; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Vr+hb+WkMc79ZoAuYkUjo1uULOV4gEl7hC1nxznXQ5M=;
        b=Y1Yo0jqrs+NZgXyDjj+MrCmDQ7RGRjH5sfVYXX5IGBtpfDwnp59QXbl3XGmykivnI/
         tKhqOTGTvHylGY6EUBsyKXOEmLeaB7gj2eK2xczeiuC4UkFJINtPy6hlNP9xDQYx8Rv+
         yt+Qx4zYm8xo3tObh7eJZKtJ/HFZrrbTjc3bJaHTLm6rXPm2mMJnW9lAd6nTq6VxvIZL
         XJ6WAcmkx4keU5muvUPxN53Vh/5FIFnasGvRIsZUc+rmzeUfD6mO8ROBFf5VvikMwjMS
         D3uXWMb3c5MlpzxvAB9RvVxQVxmaLtM4ZrOOA76zPk4FCTmBfOTdN145JBlp5NJY09Tt
         JjOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779430256; x=1780035056;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Vr+hb+WkMc79ZoAuYkUjo1uULOV4gEl7hC1nxznXQ5M=;
        b=WYD7fCvdJHJ2VEpWq2Caak/01P2lYIyGxnxVRVEjZrA2vqAl87qODG6WxykWjToocd
         IiVGaUXzN+LcqKgQzisCWn/PwplRWKX1ZXR2Hgu89Pg5axcXXAM/iKSypaR5YnHv/Jyk
         7DtSGlRKtmUXLEN4Ewk1pN5Ep3+DhwiAgQAvWE8jjjH7T2xfWz7f00jqE9sXbjdnUId+
         TODyqh90yZzujrZM9CTuMCr5MnUyv0mPlErZKGr+Xen/6ES3J0E3bfZMbmysdDgpO9v/
         tmI4BR6cXVm/K0rsMCEPS6Q9oD7X/ocD5Z++QTfAZFUVpmuu1/4gnpyhA9XxFSkJjwQd
         qx4Q==
X-Forwarded-Encrypted: i=1; AFNElJ9cSYRbgZPRzwAGmeTSAbXuxDzvHTr6OT+HkQy7z83Ll4n5ftm6LW9vjJJxfRZSAtFd/PRlrTzrhII=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxCH0jTaWuoqbgBllZ/dzB9jxZngD7r/OscOTEC5rSljvFKQrcK
	gxNSvqMlLYT4OT06x7p8ClnwsH61c8G1HhOyYXldwFBYZ58/fn3QTfvQijccHMUfHw==
X-Gm-Gg: Acq92OF6D9HUu763NwJyEy9tts0Ea9BhG1Gb8kDbiztq24nr34DszlBk6zjlgEpD8Lj
	RnraYpbFDgnsvJYFEMQyt5BizHCirBM2/A7C1IlyzHYXCtUNJokAjdscrOD1L4BMgjgnTYR7iYC
	V/sXlM0OaXKE7SXyAo7VwQacL/9r1Fiv9l9qlOVH0jAxmyTBN58JHGy+gTG+c9Pqwsgv2kMGQ3p
	HLWIYkCAACm+tF8mbaw/xSWvYXkhYxEM3dmmK95tUdN3pMoTzNtDvHpq0aE9cC2enIXtoN4io4Z
	plwkkaChnR12Qfz1Ow2e1Jpt3Ga+o8qzdY4AYFuiciIjuGu1eokRN7oZO7G3Vc0WblqIFJBvVfb
	aYm+2w3wnerj3IrOsuwtzEDmwkuYx5JMZUJJO7AgGb7EuIA58JfMox9RLJr4UW1U2zCjMdSAEmv
	T9M553iSfCGNpu5eZOAZA+i2w7yArqB/r+z5gOuPTKaylzh+Kskzw59PhHvMPqePQNd6VNN4jwJ
	7G9yNETGDNd/js=
X-Received: by 2002:a7b:cb8b:0:b0:490:3fdd:d353 with SMTP id 5b1f17b1804b1-490424ad5d3mr15379015e9.8.1779430256659;
        Thu, 21 May 2026 23:10:56 -0700 (PDT)
Message-ID: <dc95a208-6721-4735-84af-4a3864e9d468@suse.com>
Date: Fri, 22 May 2026 08:10:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/decompress: resolve MISRA R5.5 identifier/macro name
 conflicts
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <69ef81a2f85b35e6231ae389bf271cad2bbd7dfc.1779394622.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <69ef81a2f85b35e6231ae389bf271cad2bbd7dfc.1779394622.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1779430257-E1F9C443-AA99A470/0/0
X-purgate-type: clean
X-purgate-size: 1283

On 21.05.2026 22:18, Dmytro Prokopchuk1 wrote:
> Convert 'malloc' and 'free' macros in 'decompress.h' from object-like
> to function-like form.
> 
> The object-like macros '#define free xfree' perform unconditional text
> replacement, causing conflicts with struct field 'free' in 'page_info'
> unions. Function-like macros only match when followed by parentheses,
> allowing 'free' to be used both as a macro and as a struct field without
> conflicts.

At the same time function-like macros cannot be used to e.g. pass the
(underlying) function pointer to a function. Likely there aren't any
such uses here, but imo this aspect needs covering in patches like
this one.

> Applying function-like form to both 'malloc' and 'free' ensures consistent
> macro style.

Not quite, seeing ...

> --- a/xen/common/decompress.h
> +++ b/xen/common/decompress.h
> @@ -9,8 +9,8 @@
>  #include <xen/types.h>
>  #include <xen/xmalloc.h>
>  
> -#define malloc xmalloc_bytes
> -#define free xfree
> +#define malloc(a) xmalloc_bytes(a)
> +#define free(a) xfree(a)
>  
>  #define large_malloc xmalloc_bytes
>  #define large_free xfree

... these two in context? IOW if you mean to achieve consistency,
convert these (and whatever else, if anything) as well?

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 22 06:13:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 06:13:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316301.1585688 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJ8l-0006L5-1s; Fri, 22 May 2026 06:13:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316301.1585688; Fri, 22 May 2026 06:13:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJ8k-0006Ky-Ut; Fri, 22 May 2026 06:13:46 +0000
Received: by outflank-mailman (input) for mailman id 1316301;
 Fri, 22 May 2026 06:13:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wQJ8j-0006Ks-Qs
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 06:13:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQJ8j-009h4Z-6l
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 08:13:45 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a0ff403-2eae-0a2a0a5409dd-0a2a45029930-38
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:13:45 +0200
Received: from [40.107.130.76]
 (helo=MRWPR03CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a0ff418-af86-0a2a45020019-286b824cb247-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:13:45 +0200
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by PAVPR03MB9232.eurprd03.prod.outlook.com (2603:10a6:102:32f::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 06:13:39 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.21.0048.016; Fri, 22 May 2026
 06:13:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Px2lZzmUJiAX5+wLOWezHi+88VpkZ1YpsXZZcmv9BlakVqh/NbGipaSe1zlaZy9xv3cTY9CNDRPRQp64zAqlLkaNSLvK9G19aKX1x0KWMh5kg8qlLRW1e0AUCo7kzxuWZEFMjBgwr7YObzbKKrlDRMsNTwLbZMP9d/NIf1ux8GABJ/gOJHvZh9jZvuLfznGE8mZEn9OHd7ioy3yMT5m2YCsFHgrw8Xiqtl3rsGWf01iYqiZ4QA051yTMX5pZco8SjHKSiMBf09BYzDzhDcNdUUWQzPWaiQTrqfiaeUGm8ANypQSSbtUBeJ9gZIdjzsbw1ucvXsis15rxRsgYLy3a6A==
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=cSzIkcZnBN1lM7Zv/8++NndRVXnA68TaGTwQobbZpQ4=;
 b=GimbDMOIDurDmlFc4AQopGnhj3YjxLiTFSPtNqyuHbFKQHixHZP2hCyv1/An2LCmLDRoe+RBwKChyibtj50bNdB70HcRVoBbXB93/BRBufFCBuvPIfZX+HTmEXfZdw7DNNvhDJUbK3U+VDdrILEovDdqZQc5xuuyiIGP5WUmpu9xNG4IZTtj4D+zwtTQBGee3NEa7ykrUZDSPS+d2bKbHhVaqpno3g1YJJC6M/dUtXKQGN6fjcN426NWxqD6bsMQYNfaV+PU3/0j+TM/6AFVtQPYZHNvse7SQsjC7pGgFAMB5ScD9WyxA8xle5jbdNLostoO9YXbwmwifmOCrAO/Zg==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cSzIkcZnBN1lM7Zv/8++NndRVXnA68TaGTwQobbZpQ4=;
 b=cXND0Eu6jiqMyFK1anwtMhOcaWhHDo2zJp825M9F6rUezJMzhW4Wo7vi3Ih5anvziU5JU7EwrfvJRwEnjXWjbJOqws6DxVYludgiMRCheT/jqduKe6Uf2jAqwyfsyTpNAelVHqdxDc0xNK2qbFb7QiJC2UStDwUQUMfZLSMGavfdzKsKgIx0o51UQxVRRhPmjOFW7oVBw8i6pJzNZGfKsubZdowpkn+pbnw2TQzVcLx4ZyMo6d7aqwddUH7FM/Sf243Zk4tMvSxMvJfXONl/cLBCA3QH8w+rfI+Pi0Po/grgL6Dtp9MB3AxMW9Ra//j5pAkbCS+g5HjFlM7c9FEV4g==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>
Subject: [PATCH] vPCI: resolve MISRA R10.1 boolean arithmetic type violation
Thread-Topic: [PATCH] vPCI: resolve MISRA R10.1 boolean arithmetic type
 violation
Thread-Index: AQHc6bIh2sSAML9OckiCBnGq/+88iw==
Date: Fri, 22 May 2026 06:13:39 +0000
Message-ID:
 <e23266191a366abe66d8104783d97578aa8734a4.1779428826.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|PAVPR03MB9232:EE_
x-ms-office365-filtering-correlation-id: c6dac1fe-26b8-4090-1168-08deb7c94447
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|42112799006|38070700021|56012099003|18002099003|11063799006;
x-microsoft-antispam-message-info:
 DROTYvEnvoldsNKobNNziH8CdnblQjPcoiy/475aTlr4sIt2zoLndIOLjIuQQQC16GJdotCL2A9ww6b3vnOebHcdoYmxMtMlm66zoJMeTb21kjgBd0bWKxmxCBcqtUikqsMEpWuPjSXJUXmoT681YRm83ldlZ6Akg0Taz8v+j+OGKufllYxT9gDSCPqEj3AVqxgqtPxtYIy0we3pKEBnIf/1B/+laGp2ggo7AHDyZCjmrmVVcd6icUvcoR4tEhTj/rzE4miYhZ4z1QgiUHkRuZWJnu+qVoA9wrKYudtSQ4NAZJaEv1JXEgBAtXiYBx6UYbNsJ0WMaHHIwGStfn21f7K6o5A61Y4GIYSKXV0mt3eiEJINcsx5XVFEQzKMESeruHXoSBEfQOulzM48doxJJSGwW8kWBC/Sbkqpla5vLY7TBaB71+KMy7hzxRym/awWvKhEAxHj/5GTB7OtQ2fKFjV8SREdL2ekbN6ck62P5SsIXGW7ve8iYg7BcMz3NvscwW11v4jVc1c1nMBdbLwPI4+qBBSIcqM2IEMk5v4rgmOY2wV+/6oyGp+963p6L3XKzXK1nLK3pE2kuKCH2ZsZUxOaLxEtYb+PmgclESBO7MaIhFRqyjEUmYF32yWYKX7qDC38twmq5ey6nUaEsgYqblNZ+iVilPs5/F7IEHeuZhNt8uIIcYY/zh4txWMz4KHoeyn5j1jyUzrmRl2fPf7KOise6oWkKooZZC9UmJNJyJkgdX9PNOG36vGBmoo94IU6
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(42112799006)(38070700021)(56012099003)(18002099003)(11063799006);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?OZpSmYu4mwPGRygdwdyC7/ovEB/FnVzqKmhjniy9+g/w2tugokJzgQqK33?=
 =?iso-8859-1?Q?xJXSyCwVN0bN831FNlXARLHavWIu/2x2UYgOe62bmPFPj16+CZ/MJYt48O?=
 =?iso-8859-1?Q?vpNvMOkOljVZH6mljpVelt++l0ClvPEu/9co9J1mXY59DuJdxSiuP0OViR?=
 =?iso-8859-1?Q?RewoqUHe+H0urpZZCfbiQMmR3dSv74xwTN2uspMbWvtRjnxoqkz3GBsQDf?=
 =?iso-8859-1?Q?rT9Ce/emMzl6EPDMVpWMGdTKUphYKcajM3KLshduYhj6y4Npa/x4Q5c1yz?=
 =?iso-8859-1?Q?gdyt6Mp+uiZrJkyslFljMUV8Mq15Wb7ek0k9k88RLhEfo2iJKztmZGAgae?=
 =?iso-8859-1?Q?WtGIZxksebwAXyEFv3CB9ZNnZGSJmDTZClL5N15dGv11CTAEegFjAQXHNi?=
 =?iso-8859-1?Q?gdbJEeQxd5BJXAVqDG0miXHeLBcVoXNMjKkUdN1eAkKPp+xoLuEQO/Fw+G?=
 =?iso-8859-1?Q?ck1qc3xa/V5MB5a1OgHNUVIOg7KN7n1aUwpZpFdsLOUkIe8F95nUY6EAB3?=
 =?iso-8859-1?Q?lAazcMDxhvRPpHs85XdGqihO6LzxEybB6kEDcgerP49+76BSaBPAvBgTew?=
 =?iso-8859-1?Q?D8WNca7A1Z82wMWng824SsWGndoYXP0Tq9U996xfapTbbrGL08QT+jg/1B?=
 =?iso-8859-1?Q?1wlP8yQ/dzZQyhbIA69yF8Dg2wu2ax1hs+20SVRSLl2BDYNgXoWWlq07UH?=
 =?iso-8859-1?Q?FWrCp9NIUM79DGeg3mFnjY5W3k3T1dyt/DYzbGDi5GjutdyKMSC9oWUSt/?=
 =?iso-8859-1?Q?CUM19SfJ7eht61AlsMDsV+BhI0sDckdC3kjgGhRM4dv7QFUZAaxoOp+7z6?=
 =?iso-8859-1?Q?qYOSK0t7YJx1gceWUPHrznaFAU74/Bn4b00lzdaqY9pXWq4bXnBGXQolEg?=
 =?iso-8859-1?Q?gQVjCHVE574RzbT5JDOD8mFSuE83/dkZiGEYhufVDnnFQ5YsskzzX3wFZH?=
 =?iso-8859-1?Q?xZ4VJEMDJSKqZ/5gYz/+rz3PL5Rk6DpqGXa/gAKntloxaYcNfyzVbm1AKr?=
 =?iso-8859-1?Q?NSb8KRIsQDG0r2FT2jiVvlG67uVLJ89iwpEWpaX6xrFf7U6xrgwhf2aeuJ?=
 =?iso-8859-1?Q?dOS4GbHxBxciITca98wiH1LThTR3V6gxndyYBUu/XEKnGaouN/B01UTXJO?=
 =?iso-8859-1?Q?G6ZWtyjmheVjCv12cRd7+bZ2yNS6YoFgHiayhtsT9zHeV+S3kMiIm9P9Yr?=
 =?iso-8859-1?Q?WHlK6N3hI2eZ51EUG2+odJko0NBbSyQCL+7byR96mVRsn0IaTjFe9EAeYB?=
 =?iso-8859-1?Q?glGWg9mvBLDnTpZfmQn7wrKhtCylBMXy/u1HcDCzcQRcY6B/VrF7h6H8F6?=
 =?iso-8859-1?Q?A8Ek6LJrmtn+r7P/0nFtqFVMDl0Khe9/vr1zpTejQBz74MzMQ2OJL3zZz7?=
 =?iso-8859-1?Q?ilBlrSG3Dme5YCGPvn8CpzAYlSPMt8THW0rb5rHm/n55i7pF5cLx3jMdZi?=
 =?iso-8859-1?Q?U/rosxrVZqBIu6J83dbVfX6Ys1vEeE/aXWAj6ISzD2QSuIVxKZVrsun6Qd?=
 =?iso-8859-1?Q?UqpjL9a0HyESfRorr7O/XthJuqVVIi+3VcNMoxicTwBCzvubp5RcdgF/9E?=
 =?iso-8859-1?Q?LNDmRIaZLqzQ1JxH0CWz+lm2FwYA+h+iotQdxU+tC21ms49Xgj0jfRaXb6?=
 =?iso-8859-1?Q?50LjQVpYsW5+loqe18Oqvr+bUtG4mUaPL6GJkLqYnNh6zfwsbf5poeKArU?=
 =?iso-8859-1?Q?qHaiMWg5w6+OrPzB+wx1oNVqhIFKLYGUkf/QaRRZkxCF6MbmBTjnpGLm/0?=
 =?iso-8859-1?Q?uuJiSUBBe+SHN9gGinhMGf3niVXuybCkw7/FXlzB7kF1IybfB9v8Up2C+H?=
 =?iso-8859-1?Q?VOEnEbAuMUsF+sS3QG++UK081WNrcxs=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c6dac1fe-26b8-4090-1168-08deb7c94447
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 May 2026 06:13:39.4629
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: un+vYQZIqXktoHKVAEih5IcRB0EKJSOujd1weP+pNVDBUogiUxQIaA1HFHwnXGzqQAPhSzlvWtd7sKRzbExWVvARXO88+xsvYiwMJ9gv/bo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9232
X-purgate-ID: tlsNG-720697/1779430425-80979161-9C4D3E7E/0/0
X-purgate-type: clean
X-purgate-size: 1645

MISRA C Rule 10.1 states: "Operands shall not be of an
inappropriate essential type".

Boolean values cannot be directly used in arithmetic operations.
Convert boolean to integer in vPCI header bar index calculation
using the ternary operator to satisfy strict type checking rule.

No functional changes.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2545399814
---
 xen/drivers/vpci/header.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index a760d8c32f..2b7f78728d 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -586,7 +586,7 @@ static void cf_check bar_write(
         if ( val !=3D (uint32_t)(bar->addr >> (hi ? 32 : 0)) )
             gprintk(XENLOG_WARNING,
                     "%pp: ignored BAR %zu write while mapped\n",
-                    &pdev->sbdf, bar - pdev->vpci->header.bars + hi);
+                    &pdev->sbdf, bar - pdev->vpci->header.bars + (hi ? 1 :=
 0));
         return;
     }
=20
@@ -647,7 +647,7 @@ static void cf_check guest_mem_bar_write(const struct p=
ci_dev *pdev,
         if ( guest_addr !=3D bar->guest_addr )
             gprintk(XENLOG_WARNING,
                     "%pp: ignored guest BAR %zu write while mapped\n",
-                    &pdev->sbdf, bar - pdev->vpci->header.bars + hi);
+                    &pdev->sbdf, bar - pdev->vpci->header.bars + (hi ? 1 :=
 0));
         return;
     }
     bar->guest_addr =3D guest_addr;
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Fri May 22 06:20:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 06:20:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316310.1585705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJFQ-0000D6-Te; Fri, 22 May 2026 06:20:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316310.1585705; Fri, 22 May 2026 06:20:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJFQ-0000Cz-Qm; Fri, 22 May 2026 06:20:40 +0000
Received: by outflank-mailman (input) for mailman id 1316310;
 Fri, 22 May 2026 06:20:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQJFO-0008RG-U8
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 06:20:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQJFO-00DS7I-9x
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 08:20:38 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ff5ae-bab6-0a2a0a5309dd-0a2a4504ab7a-22
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:20:38 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ff5b6-1dec-0a2a45040019-d155802bc54c-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:20:38 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-488af9fdaa7so33186895e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:20:38 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-490454a0b82sm21875725e9.9.2026.05.21.23.20.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 23:20:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779430838; x=1780035638; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OXWRI7l7nK7SIe4W1b4avZ/Bw1tdkEXb3sGKmZFhqOg=;
        b=ozY1tmOXhhdQQKc1kcwqjZ8FXx4C06qjCBT+0IXu8r6ivxqLEZ2nKcX3o07U/IqW8/
         3tPKw74SWWK5QCd4bvey2PB/OUtNRgpHMSzgoqEEC8R6+yvmSM0CZ/hKKhWs1jECvRDp
         SjqbUMkZm0Boa/UEQXrSsZspjzMEO3BfBZoCxOjuys5YD7/49j24elziiboszYFV7BGI
         LO9JGc/yFDdJxQT0dIl+0Nu9GT925XUbw5gd8y5G8fv1kCGDqYNVZX5OqTEOWhQLjkMV
         JwzeZf2b00bOG6uY0CAaIplZcUFuDu911V5OqCA17lfCSmOZahAb4CVP1wj1NMz9iEQ6
         jATA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779430838; x=1780035638;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=OXWRI7l7nK7SIe4W1b4avZ/Bw1tdkEXb3sGKmZFhqOg=;
        b=dvrDkcaaDUxH1A76uj0OzoM4MIyrJ1BMNh/OEiCBK2BdzB6SZw9GNiGjCbA55ELipo
         dliT8+YNnwPCT1U8qWXXOSUWAvZDWvoeK/1p1wI8K7sSNa68aL5TOzOjTHz1k1EcDXQJ
         EJyX/FaaTeW0loFyQ8E06VLwS7nuqcJN5o45jVeKFiKU2gHYGtDvXnNuUQERSHMjnSuc
         u9kvewWQc0SJEOMAW9H3u2f1EOoUTZh0SsS1R6xfaWtL1jNoBU/M0FBFt/I4fFBO2fY5
         wS+5gCrAxdZNj325AFoutaXTJMPJq5eVAtwvqIeaRxHQil+4cqEI5iOgUAFe2dd3OIh1
         22uw==
X-Gm-Message-State: AOJu0YzZgOUTNEJd9HyZ3iYrGqIhguGiY7ug8+c65Qkjq17UWI/xXHSl
	Up0C5geqEsS24FbhRiacX9g0IHOOiJSMACCWl9iuSUk/M3sbrsslvIew21QZxoJL
X-Gm-Gg: Acq92OGQsGgCl/2BcEEsItXb7vY5zPonkEQ+1JtVKHeTmEwtnJAFGhX7ueyX1Li3VCm
	jqVbeux2teCs2Xy+Q520RsSTJ7etyf8XILDMrpMcsZCbvmKwTiUVd1ytf6h+Mkh2QGiaKBiaeJn
	ZgkOQizzrXIbOvNNIeYoiG2qtHgqgwIkkQN2YdtWEFf+JoNwckVp6/7XDrtqAW6QDAwDmuj9U29
	xptrGVMSpI8LUkbxhp8tAuskPu93M7TsnG4WQLSJhNj2tO1oik5K1kEe1YPe8nCsBzeddMHKkob
	sZoOlgkMWwS7qvt//dsbsyped7vXF9tmdno+FqpVmh4qM0zUGX8YMGviLISUVkmH3FAGrdBFkII
	L1FrMuxl2wUiKd3XsjPzwTxybR+9t+dW50J1r9Cqx0EKTrN41ns+p5J2j9mn0cFA9ls0psgW96j
	MxYMroMhk7cdOdKJc2YmBMl9Pfyg==
X-Received: by 2002:a05:600c:3547:b0:48f:e230:8caa with SMTP id 5b1f17b1804b1-490428f2dc2mr20958225e9.30.1779430837544;
        Thu, 21 May 2026 23:20:37 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH 1/2] xen/arm: propagate vGIC vCPU init failures
Date: Fri, 22 May 2026 09:18:26 +0300
Message-ID: <f9a0308092deb2135d32ad9fc2c5ccafc8a7320e.1779430299.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779430299.git.mykola_kvach@epam.com>
References: <cover.1779430299.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1779430838-2997A3FF-8ED48185/0/0
X-purgate-type: clean
X-purgate-size: 4972

From: Mykola Kvach <mykola_kvach@epam.com>

The vGIC per-vCPU init callback can fail. In particular, GICv3 rejects
a vCPU when the domain's redistributor layout has no MMIO slot covering
that vCPU. However, the generic vGIC init path ignored the callback
return value, so vcpu_create() could succeed with an invalid vGICv3
per-vCPU state.

This can be reproduced on FVP Base RevC by exposing a 2 MiB GICv3
redistributor region to Dom0 and booting Xen with:

    maxcpus=1 dom0_max_vcpus=64

The host GICv3 redistributor range is:

    region 0: 0x0000002f100000 - 0x0000002f300000

With Xen's guest redistributor frame size of 128 KiB, that range covers
16 guest redistributors. vCPU16 and above have no corresponding
redistributor slot.

Before this fix, Xen detected the missing redistributors:

    d0: Unable to find a re-distributor for VCPU 16
    ...
    d0: Unable to find a re-distributor for VCPU 63

but ignored the error and continued as if the secondary vCPUs had been
created correctly. Dom0 then saw 64 possible CPUs and could hang during
secondary CPU bring-up:

    smp: Bringing up secondary CPUs ...
    d0v15: vGICR: SGI: unhandled word write ... to ICACTIVER0

Propagate the vGIC vcpu_init() error so the caller can stop creating
secondary vCPUs. With this fix, Dom0 construction reports:

    d0: Unable to find a re-distributor for VCPU 16
    Failed to allocate d0v16

and the guest continues booting with the vCPUs created before the
failure:

    smp: Brought up 1 node, 16 CPUs

Free the private IRQ rank allocated by vcpu_vgic_init() on this error
path. The caller will still run the generic vCPU creation cleanup, but
XFREE() clears the pointer so that cleanup remains idempotent.

Also fix the host-layout redistributor region count for the case where
the requested vCPU count is larger than the capacity of all host
redistributor regions. The old code always stored i + 1 after the loop.
That is correct when the loop stops inside a valid region because the
requested vCPU count is covered. If the loop exits after consuming all
hardware regions, i is already equal to the number of allocated regions,
so i + 1 records one region too many.

In the same FVP setup, that off-by-one made Xen describe host-layout
GICR state beyond the populated redistributor region list. Dom0 then
accessed the GICR MMIO window described in its device tree, but Xen could
not match the access to a valid emulated redistributor frame. During
debugging this was seen as an unexpected vGICR access followed by a
guest panic:

    d0v0: vGICR: unknown gpa read address 000000002f10ffe8
    pc : gic_iterate_rdists+0x4c/0x104
    Kernel panic - not syncing: Attempted to kill the idle task!

Keep the existing best-effort Dom0 policy: a failure to create a
secondary vCPU stops the secondary vCPU creation loop, but does not fail
the whole Dom0 boot.

Fixes: ea37fd21110b ("xen/arm: split vgic driver into generic and vgic-v2 driver")
Fixes: 54ec59f6b0b3 ("xen/arm: vgic-v3: Don't create empty re-distributor regions")
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/arch/arm/vgic-v3.c |  3 ++-
 xen/arch/arm/vgic.c    | 10 +++++++---
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
index 77517c3030..360778eb32 100644
--- a/xen/arch/arm/vgic-v3.c
+++ b/xen/arch/arm/vgic-v3.c
@@ -1834,7 +1834,8 @@ static int vgic_v3_domain_init(struct domain *d)
          * not match the number of pCPUs). Update the number of regions to
          * avoid exposing unused region as they will not get emulated.
          */
-        d->arch.vgic.nr_regions = i + 1;
+        d->arch.vgic.nr_regions = (i == vgic_v3_hw.nr_rdist_regions) ?
+                                   i : i + 1;
 
         d->arch.vgic.intid_bits = vgic_v3_hw.intid_bits;
     }
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 6647071ad4..e55e484493 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -368,7 +368,7 @@ void domain_vgic_free(struct domain *d)
 
 int vcpu_vgic_init(struct vcpu *v)
 {
-    int i;
+    int i, ret;
 
     v->arch.vgic.private_irqs = xzalloc(struct vgic_irq_rank);
     if ( v->arch.vgic.private_irqs == NULL )
@@ -377,7 +377,12 @@ int vcpu_vgic_init(struct vcpu *v)
     /* SGIs/PPIs are always routed to this VCPU */
     vgic_rank_init(v->arch.vgic.private_irqs, 0, v->vcpu_id);
 
-    v->domain->arch.vgic.handler->vcpu_init(v);
+    ret = v->domain->arch.vgic.handler->vcpu_init(v);
+    if ( ret )
+    {
+        XFREE(v->arch.vgic.private_irqs);
+        return ret;
+    }
 
     memset(&v->arch.vgic.pending_irqs, 0, sizeof(v->arch.vgic.pending_irqs));
     for (i = 0; i < 32; i++)
@@ -944,4 +949,3 @@ void vgic_check_inflight_irqs_pending(struct vcpu *v, unsigned int rank, uint32_
  * indent-tabs-mode: nil
  * End:
  */
-
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri May 22 06:20:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 06:20:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316309.1585696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJFO-0008R1-Mi; Fri, 22 May 2026 06:20:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316309.1585696; Fri, 22 May 2026 06:20:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJFO-0008Qu-K4; Fri, 22 May 2026 06:20:38 +0000
Received: by outflank-mailman (input) for mailman id 1316309;
 Fri, 22 May 2026 06:20:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQJFN-0008Qo-Pb
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 06:20:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQJFN-00FxJO-1i
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 08:20:37 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ff5b3-e002-0a2a0a5209dd-0a2a4507c00c-6
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:20:36 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ff5b4-229c-0a2a45070019-d1558030d944-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:20:36 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-48e82c23840so55592605e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:20:36 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-490454a0b82sm21875725e9.9.2026.05.21.23.20.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 23:20:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779430836; x=1780035636; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=i3goxrv/Y8kshOF/CZ2G/Qlx2qpoE+dQMyCjx1mFAtc=;
        b=ZrT2JnO2XoX1zxkX+NrzATyniYY9sCOT3AjLQRRWv3bRKf2YNckPH5NBw6sW1rrugo
         +XMDu2uXTcy81n3wFHqb9hZFLxOmhyhplw/FtQXP4dU2JndTGX1IN3g9mY+6qiuT0R+6
         7IYlcZrLmpRYJyBQljJzI6XRADGC6f9azFnLFvxoPsf+DnMzwuH4xa5SqV6S4i/MIC2Z
         sf2UZxIKI0ehAw00gXva5w+1PSq6B8I6Z4MjvIqZjJ7vTDsFPBXShtriazS3cuFE+OhF
         vGZdMqU10dPCws8+Mn/Zmsj2Ku3qL/3gp518lJs7OQEygurVkJrzyj05Q7Yw9hq9YiUS
         qb9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779430836; x=1780035636;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=i3goxrv/Y8kshOF/CZ2G/Qlx2qpoE+dQMyCjx1mFAtc=;
        b=U1+L3a06wAZpi3CqRMwl00aw7OjsrkF3Y7itZYmFrOsjHX6EiEFgGr8Rb+XzYhdVzR
         amSVbAYv21SE/38NN4cp5E2r64MHxcgIIESNL/ku8/2OCKqVMyJMTadeR3fdZs0kuR1k
         WmIz9pNIZsck0N91dbbBzVpd1x/RCA5/9FyKx7fdZBAZh4OSyl9+Z8qZPHd9b1UoNdF1
         hwbfcQUaJ1+A5A8kAGA4hN+2YcGrqhHXruMLDzJ3XhwbFD0QP5k7u1xVQl1fkMZOZxXV
         kKm9HqR9T6HZ8hcQh+fLzdt+1fVJiM+EjsFeYa4WoCsEP95Dh55VUni3yeyMFAOqzzt8
         IiNA==
X-Gm-Message-State: AOJu0Yyq3Yp9hxCg4kK7ayP6GGWDEJMTf7OKFmYjytdFDaobMFnrJpto
	M5BsRJobtbrRz1fcOQu9yzIcZz/pnp6xxGzD3ykPjTbGtIg9uVmfjvHwASpvcwyn
X-Gm-Gg: Acq92OEAtJrB9wVN9QHE2hvFLWFvlFIh5U0MDWoMLYiiWSEjOMrq+MZBd3CJEetBCru
	mVKxxwjWm6lRe2ceP0nLpS4T4fBVfYxc0DK48wUvOcHOKqNm3wYepd+SWhiJUyBoB4ItXNnrUf7
	qLzYRoqYwNkvs5H63qF5sbny2h5Nb4Uy/2lMfzgntSi5Z6A2SCMgMqzZWKh+sS6nZ6cQd5igKLc
	n0hP2p8pwNuHJHSkb/ST949ZM9PB6ZaGHwKFAulcs5APE7bAHIpwYHG306pWFpkbqVSp8cgqbAp
	TnZFhIVnfSCZlc9MQq5HTMUBf2GvXw4ulSg0HkWBhKIpt9E9WOoS83SH9CO9JMMNJVZr2Fx892N
	oMtMIb1FMhhm1b8jSWhuouE55WEvoV6Dnu7iRMdzP9YkTB8/e2ZmUcmMhkonKFzSyNZNydEDJvF
	7kSM5+TUd/IQ0djiYSlkRNY+cLoN7AQ9hclOtJYbzEarEewsA=
X-Received: by 2002:a05:600c:3b02:b0:489:201c:dc46 with SMTP id 5b1f17b1804b1-490424b2cf1mr22975655e9.12.1779430836207;
        Thu, 21 May 2026 23:20:36 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 0/2] xen/arm: handle Dom0 vCPU limits from GICv3 redistributors
Date: Fri, 22 May 2026 09:18:25 +0300
Message-ID: <cover.1779430299.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1779430836-09F6EC48-4923BBF8/0/0
X-purgate-type: clean
X-purgate-size: 1477

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



From xen-devel-bounces@lists.xenproject.org Fri May 22 06:20:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 06:20:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316311.1585710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJFR-0000J0-9r; Fri, 22 May 2026 06:20:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316311.1585710; Fri, 22 May 2026 06:20:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJFR-0000IU-6L; Fri, 22 May 2026 06:20:41 +0000
Received: by outflank-mailman (input) for mailman id 1316311;
 Fri, 22 May 2026 06:20:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQJFQ-0000Cf-1R
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 06:20:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQJFP-00FxMi-AB
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 08:20:39 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ff5b4-5cb7-0a2a0a5109dd-0a2a4506bd44-8
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:20:39 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ff5b7-7371-0a2a45060019-d155802ce0d1-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:20:39 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-488b0e1b870so95567515e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:20:39 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-490454a0b82sm21875725e9.9.2026.05.21.23.20.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 May 2026 23:20:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779430839; x=1780035639; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=URS8l+xtKjxWl9mLzqtuCFINDsdxzGnUqvmZmpuEXJI=;
        b=Xz5wPbVgBqp0rbkViHoiybbCP0hQM0ibkvYcVLyyWldMXZtzKOFnGkSO1f6lmYnVD9
         Sl7L69Odho8Dnl5XkJsond054vpAvExkxCCQZ2eEnt76GtOH151x2vPIPVWHzKrg8+UQ
         Ajrg35XqrRwEElukMSqNyh5jSmk20VUY9TLAqqk9huwBUHgpTQAx+VMb4no/4oraNMoy
         GCVEetgQ2X24X3nZA0U8B0bcePDK22xku9OWj5UCTOaq2xo2oNK4azqQ5yCw/0rYGbY8
         RYVvCRLlcZ3sxXONCh42xVIr2jfGUxlJsfCopNLM6KZbB9EFcC/t+U6Rvfb1AG+34Fcf
         VA8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779430839; x=1780035639;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=URS8l+xtKjxWl9mLzqtuCFINDsdxzGnUqvmZmpuEXJI=;
        b=AB4VjjvpCQjw/37rhc00me6I0ZKHfOmtBgtLitCM+P7Xv9uvHCqNm38Skb2f8RYQsC
         ok8jYaNSoFfL1G1nvpYQHRQPhLH+ymkG5s16wGP0IA/18FhtIIRh1digaxWx2ck6rals
         TQ93prOdemc6FfvGhh2/5+c+zI7UkkPaPzkyWIrNb3jovxZbco+MTIv9/grH6HZtmgnF
         JA36tKDMA/b3QynaVQIMCHFp7E/J8BJwfiVgV4BgHl3Q+dq0SkdPp4Oj07LrpgvrScma
         9LsECjg10MzUn+f8wP0ZRugjJdWHV4WkJG3oSqG21aDwet7h2ycPKdqqM4h6/3Sc4NJ6
         UZsg==
X-Gm-Message-State: AOJu0YwqP6SSyrapwb4Db8bN1ReEnAs0+xn8AUJZ92FClkE67BWW3LHg
	mzazWs0fhbn8HADrLIudRpLyTgNDegf3v6ST5Kk77Kfujh9/hxZW/DpwyACm39JC
X-Gm-Gg: Acq92OG+uJyATC8maxNAXhyN0Vc79tvntQX3Ll0lP9geXwhys3LEmZa1Dm3TLFQqzh0
	N+ftjy2axkqk5xFZnboFaqOaZiNS+9BGdLKyXHeCx764xpIUfntm880PhY/6iJtqULLOl5+4Gr+
	wMebpTF6SCbc4mwJHB04gm4PrVryOmA+7oXtfKq3qgiNsXT0M+lQt9BnTwbjwZiCEPfjIOamKp8
	kbhunIraligBTBtki9J8q4cOyHH5itv1tZiLO/Z3ROmiLR9yonJt3lcmYADfsZisUf/9lJGD3vK
	1In9UcvA+WIQvwE/yktj1IT6UcZoRexar1g8mhxJB0z3TMJppw0rvtClrnBOpQdikdcEVT+Nk72
	RQArKxX33mgiJ1F2zqYXpqV/DO1aihNraetMO+5q2Ak9vbBRREHtRNj2yokC4KxNCRSvMv2ahVd
	w9azb4aPJKZCB5yllnXauQhmc5Pw==
X-Received: by 2002:a05:600c:4510:b0:489:1c1f:35df with SMTP id 5b1f17b1804b1-490424a682emr24091185e9.10.1779430838488;
        Thu, 21 May 2026 23:20:38 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/2] docs: Document Arm GICv3 limit for dom0_max_vcpus
Date: Fri, 22 May 2026 09:18:27 +0300
Message-ID: <88459940b410ceddc04bca7e2cadf7c16bd5c13b.1779430299.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779430299.git.mykola_kvach@epam.com>
References: <cover.1779430299.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1779430839-7F57ED75-9813E4FE/0/0
X-purgate-type: clean
X-purgate-size: 1686

From: Mykola Kvach <mykola_kvach@epam.com>

On Arm GICv3 systems, Dom0 may use the host GIC layout, for example
when it is the hardware domain. In that case the effective Dom0 vCPU
count is not only bounded by the requested dom0_max_vcpus value and
Xen's generic vCPU limits. It is also bounded by the redistributor MMIO
regions that can be exposed for the host layout.

Document that Xen can only create Dom0 vCPUs whose virtual redistributor
frame is covered by those regions, and that secondary vCPU creation stops
at the first vCPU whose virtual redistributor frame is not covered.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 docs/misc/xen-command-line.pandoc | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index d46d5b2152..0a5589b24c 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -981,6 +981,14 @@ The number of VCPUs to give to dom0.  This number of VCPUs can be more
 than the number of PCPUs on the host.  The default is the number of
 PCPUs.
 
+On Arm systems using GICv3, Dom0 may use the host GIC layout, for example
+when it is the hardware domain.  In this case, this value is also limited
+by the redistributor MMIO regions that can be exposed for that layout.
+Xen can only create Dom0 VCPUs whose virtual redistributor frame is
+covered by those regions.  If the requested number of VCPUs exceeds that
+limit, secondary VCPU creation stops at the first VCPU whose virtual
+redistributor frame is not covered.
+
 Or:
 
 > `= <min>-<max>` where `<min>` and `<max>` are integers.
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri May 22 06:40:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 06:40:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316336.1585724 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJYG-00056F-Pi; Fri, 22 May 2026 06:40:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316336.1585724; Fri, 22 May 2026 06:40:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJYG-000568-Mp; Fri, 22 May 2026 06:40:08 +0000
Received: by outflank-mailman (input) for mailman id 1316336;
 Fri, 22 May 2026 06:40:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQJYF-00054K-8D
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 06:40:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQJYE-00DWME-DJ
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 08:40:06 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ffa43-2eae-0a2a0a5409dd-0a2a4503dd1a-18
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:40:06 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a0ffa45-672d-0a2a45030019-d1558033f1c7-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:40:05 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-488ab2db91aso72807585e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:40:05 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-490454ea134sm25151995e9.8.2026.05.21.23.40.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 May 2026 23:40:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779432005; x=1780036805; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HkWB3b716oQDbUQg3DPfRxUzoUOFI7+RS8DSdaj562Q=;
        b=O4OxGbuQ8/sghVZ+XIRLBnHPaZNozs/ongV21AWbnFo0l/rzByXNQN7H1/n1j+Tont
         oC3k9gHY3o2fMs68wd8BFIEL4W70C87+hFX1b5mnB/b2mnEg5lMv2z5EsClaccNUzvPv
         C73MBdCPKHme1TlBR/A+x6hzP1C5cW8/6gLSTnjbVKvYCVYdMYDLHXwG1tHaDmv7pYkF
         atwTYkng0GfOSh7wM2Q77nhlo4zQ5uY1bbRUJgisT62pKRfokgVeG2F1xVnCm0O148lL
         ZYoml+sjJ7fcEh20mXEvH5KT55QPdDL64+njTaFAqnDcA/14Dcv1xvsqmI0H1eeTycmA
         xKng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779432005; x=1780036805;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HkWB3b716oQDbUQg3DPfRxUzoUOFI7+RS8DSdaj562Q=;
        b=cTOSe6kIQpCMK+pozf8JlwEfwv9kUWhqYui6hqz+pcYJ/D6wrEXczKA0HdA73TXHCc
         CTNImck5upd59DpGbpLirARnEnxb3zXq789WIYaP141rIrQvkvDLDvWRCqN5Uq221+ZE
         Vg0lJ4T/VdjQU9RCmv7JRQv4NUfdYAjxUcEeJExMKeqpIq3JVJuud50GCtCQ28h1yzjq
         5C0+Z+Q5xN1gKFFfvgGiJK1zFE2HRHlle9EMsjCLRJQekSY/aiLVfoyyLv1tuRNYHafE
         6Vf8b+6xVONTaRFKgbATriMo+k5W8IZLRp/4IlBiX0nUdLiMJrzTEqHcLlLrjFFhsUob
         XMKw==
X-Forwarded-Encrypted: i=1; AFNElJ9iQb8grtrIvg5R2HMR0kOAgDiuY0SkdPuWzw+xH3ob/BR/EuEDWQtkpamh7HVuMt8jxYyc1SHjENM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwNs56JjtZZfZSDxoMfq1bodF/LkgzKjpExsYV+ida2aD2Yoh0r
	Y5WsyDCuAoTumH3cFyjNRTTOm/e2stDfHMR3CoyzGxhtd7KocUPSsw+BxWLwF0++gg==
X-Gm-Gg: Acq92OGYMD11BJZHZDTPeua+xyfIDzIx/t/Nq4ZJfb6CvDcbjNJK3j0cAummqwonp9v
	0YiwgR8GNvHaDONr8UUy0Vem2EVhOga+33w8Cb5e7Ut+hes95aefU3ybKit0vXjcuR+nR3qzzq4
	vvz3MnDATFxMHoEc1QLY0om45wMDacXX9Mj/+wlaodjyM/hkI8aqf6JbgwEz/PcHHCRRnvRHCVE
	sK/dSIjlpIKfBrpdf9+lBo4wG0KwIIUKU88w1784IVHE3URI7NzsmuOSuH4sO/rylaCWqu6hAKA
	SqjZtDmfcfLcYLOtTapz7Jw00Zf617sqpafkETGKtynNBXVgLhUnSHNIP0qcYEFCa4ZVlBvOwfz
	3AX9yWW7kgYVqgekrKwRzEZ6oH0vRHWbLt416igJJFOYom0/gb2TyvfK+q6uysgOG1fJzcwuE7J
	Q16sDQZk05P1qiiBybI5/3NggPTi54LzvRZLINyMx4n/RhoLnkaSxcVtUPln4XR4UZtKTGVWcET
	aQIMIteedfHaN8=
X-Received: by 2002:a05:600c:4688:b0:490:4224:e0a2 with SMTP id 5b1f17b1804b1-49042ae265bmr24797115e9.33.1779432003603;
        Thu, 21 May 2026 23:40:03 -0700 (PDT)
Message-ID: <984c91b8-3d2c-4431-bdf1-4a333ac341d1@suse.com>
Date: Fri, 22 May 2026 08:40:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vPCI: resolve MISRA R10.1 boolean arithmetic type
 violation
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <e23266191a366abe66d8104783d97578aa8734a4.1779428826.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e23266191a366abe66d8104783d97578aa8734a4.1779428826.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1779432005-38348938-9916B21C/0/0
X-purgate-type: clean
X-purgate-size: 1573

(extending Cc list)

On 22.05.2026 08:13, Dmytro Prokopchuk1 wrote:
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -586,7 +586,7 @@ static void cf_check bar_write(
>          if ( val != (uint32_t)(bar->addr >> (hi ? 32 : 0)) )
>              gprintk(XENLOG_WARNING,
>                      "%pp: ignored BAR %zu write while mapped\n",
> -                    &pdev->sbdf, bar - pdev->vpci->header.bars + hi);
> +                    &pdev->sbdf, bar - pdev->vpci->header.bars + (hi ? 1 : 0));
>          return;
>      }
>  
> @@ -647,7 +647,7 @@ static void cf_check guest_mem_bar_write(const struct pci_dev *pdev,
>          if ( guest_addr != bar->guest_addr )
>              gprintk(XENLOG_WARNING,
>                      "%pp: ignored guest BAR %zu write while mapped\n",
> -                    &pdev->sbdf, bar - pdev->vpci->header.bars + hi);
> +                    &pdev->sbdf, bar - pdev->vpci->header.bars + (hi ? 1 : 0));
>          return;
>      }
>      bar->guest_addr = guest_addr;

Well. If I'm not mistaken we had discussed situations like this (long ago).
Imo the added verbosity gets in the way of readability. If we absolutely
cannot or don't want to deviate such constructs (of which I expect we have
more), then we ought to consider alternatives (like changing the variables'
types in the case here).

As to deviating: rules.rst, according to my reading, says that &, |, ^, or
shifts would be okay to use with a bool operand. What's wrong with also
permitting this for other operators?

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 22 06:42:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 06:42:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316341.1585734 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJa3-0005cz-55; Fri, 22 May 2026 06:41:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316341.1585734; Fri, 22 May 2026 06:41:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJa3-0005cs-17; Fri, 22 May 2026 06:41:59 +0000
Received: by outflank-mailman (input) for mailman id 1316341;
 Fri, 22 May 2026 06:41:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wQJa1-0005ck-71
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 06:41:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQJZz-005owH-Dg
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 08:41:55 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0ffaa9-5cb7-0a2a0a5109dd-0a2a4503a63e-12
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:41:54 +0200
Received: from [52.101.56.22]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a0ffab1-672d-0a2a45030019-346538167bd9-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:41:54 +0200
Received: from CH0PR03CA0099.namprd03.prod.outlook.com (2603:10b6:610:cd::14)
 by SA1PR12MB9546.namprd12.prod.outlook.com (2603:10b6:806:459::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 06:41:47 +0000
Received: from CH3PEPF0000000D.namprd04.prod.outlook.com
 (2603:10b6:610:cd:cafe::55) by CH0PR03CA0099.outlook.office365.com
 (2603:10b6:610:cd::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.17 via Frontend Transport; Fri, 22
 May 2026 06:41:47 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF0000000D.mail.protection.outlook.com (10.167.244.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.7 via Frontend Transport; Fri, 22 May 2026 06:41:46 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Fri, 22 May
 2026 01:41:32 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Fri, 22 May
 2026 01:41:32 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Fri, 22 May 2026 01:41:31 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lMW4nRaRYiY5BU4tBdlLDnjZ+YRw5Rdo7gjWtBxYgYULMzDDXMOMi0Hms/rmK/M1s+azmKmHOn81C6IFq3ehgRDWZkh9BTPPmKcqE5IQfERIwfGFW28P9xUJUA4BZfFeZ933op9shPgnKY+nyL0bMP/EZQsJkPvaj9kUKeVnUKm6pnRV+lTjuovmzf1vaDHchN1HdkiSVgfiAbzm8GkSQK70SckdSgoOI3oB+4+tjkqwYQw4ADig2kY6oTeGe2g+7/3+PhVQLLCKgKg62+DiKsVz7IceGEfdbjPLjZ9HUeF8u9QUgnZpi1yZVGS7xUK7Qkff/feg7CvL8qIGmkj0kw==
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=J8+m850O2sFqNFDo2tE189VoTdEgwVkGBndWEojfCLc=;
 b=jUdtb25DWI2LsiXDC0AEKQU7pR6u4y503NHa4IUX3MbKWf9iKBkFXpeoY0gA4QBw6riof4cQURWy3YrAzPm2oCN4vct8+CaLLDyrhJx4DsRvs1MSPbM0ahf7MqkT3kH5pL5r0COZCqyqRWkxJqHj+DR+mDsQdBO/h4F5s7KyzauXpaiNBdlOJTWDz7wj7qR8pAxnQxTTn92CEIrTtdHXwlgTx1f4NqZ2kAmTPT9y++z6uJ1BPEIXCRvp7rOWRygvE08oHrtT3N9TWZGNufuaBo2IKlD54luPHiKDdAwDtg92CQC6UkM559rAkHbyiRcQaKsNTv+eKWfvZo2LI+VLPQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=J8+m850O2sFqNFDo2tE189VoTdEgwVkGBndWEojfCLc=;
 b=a/TJQTOedgecpLqSFFbDOdr1bjq/+eLm93vPtF2M7ERwqkqcg4U5Z//U6q3Gvp2/0Pyee0OnAiwi5yctiMVFN55rb5o3iHptlu4Smg7YwdA/WjEsRXH4up9Pc66NsyjEuaTXzYtpj5GkNZZrM/dMEIdUshsCZRjBLKO40Wx4mww=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <6ebccf8b-c90f-4dca-acf3-ea9cc0dd97f9@amd.com>
Date: Fri, 22 May 2026 08:41:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: scan CLIDR Ctype fields upwards when probing LLC
To: Mykola Kvach <xakep.amatop@gmail.com>, <xen-devel@lists.xenproject.org>
CC: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <998162706f89bb3100bda409d8fde3c8b143eae6.1777886129.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <998162706f89bb3100bda409d8fde3c8b143eae6.1777886129.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF0000000D:EE_|SA1PR12MB9546:EE_
X-MS-Office365-Filtering-Correlation-Id: b2e5f470-7625-490e-d8ed-08deb7cd31e8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700016|82310400026|22082099003|18002099003|56012099003|13003099007|11063799006|3023799007;
X-Microsoft-Antispam-Message-Info:
	CDinYuX1VoUxdBGSBxSTVcWjR8kVRnH0hHUzZxktickX/BJUe+BzNU72RF3wlMLwMimMtpQx7jw1reo65395JJfWTMuqOhJfTFZq4FcV+Dpkau1RlFyOXzg5CD5J3guzZHx+NT6FR5BntnQEou3Ft9zwddE6GmmS+3Gh015UjG9ZzIdjOvQ9qNlNRDl5b0RQWGHtaQZZrb7W0Wp6BDjvaXaHWNwlEXptIbloYf7pCTBix/2Yxs2Kru1jaY/aTvL7kbG7fcEx5Xohy3jXhapSH8VbXZeSbtjjYE7/0YrYxloUuLLsHzt06Ux0VbmHDe7opo8wKRm9lvLLv2zR7g55xJC1Yi75dpCs+oeY+7vlGg9fD3hQN+Fgc3B3BsDuwbyLIQro+JQwp9S1cZ6Gjpa/HtMngrKSQJWiGBt71MTDzapzDmmnMAQv5AKAU47wm1nJC1iVkonNEAJpCfQ6bu/W961H//vdmafr8Aw7/R/bqNoS6rzd7rcGHAvWbBhu53ecui7T2JvNPjiaS5UbbETip17w5llTBvvpBSffQT1nkDAoH+T6OF2OAAVOezL+bkDLP1DFvCmeXkT8fvFgH/qADwuVfuavijzYvZeRs4ops3RgHeC681sXlFiqWQ5CSxsBcCKjS5dQ32MTgjQkpfiVKorS7lapP9SpiduPeYihvnAAK5OAY6EE41HqrtK7IZEmSvEHqnLtyIV1UBJvawdVKTUAFSrtO3w+vbF0N8JBHss=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700016)(82310400026)(22082099003)(18002099003)(56012099003)(13003099007)(11063799006)(3023799007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	PG6ZooHySsiRm2CPBtL08ZGMrQZNLlG2DpKFmRq/TBmZfaobz3yPbRFjXUcNkNWtpA23BwRxGCDrMVYqALzU89IrmSTtsbjuoskWHElq44X7/oJZFH2e34hNycyVDOX6cDyrVAOkuZVkOuqqNETUTYpK8rxbnDQX84FCWp240zrAaPe/tPEnB0xtZAMylhRvEwQUvWkJAyIyIwtAKiEd7oBGSsrRZhjr1vMztyfylWl5m8ICxTUl4a/w1NgN12kZOgYHO8d3hhcWY9BrHeqSrCXzWwgGnW0lIZwO4+V9qncu+xqi1CNWq/bymBusuJBV+MihcV2w3tMvJSB9qO6rQwGQzwE9+PYubDxgNHWCrljq0pNLpKY0FujcKKNRNnmJd7tvEUMPW2Ly8Pb7xUJkvelC8Xk08HQyKs6f9/2QFuM21r3gDkSSthSJ42hybbhG
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 06:41:46.6319
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b2e5f470-7625-490e-d8ed-08deb7cd31e8
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH3PEPF0000000D.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB9546
X-purgate-ID: tlsNG-33051d/1779432114-3774E938-7AC61543/0/0
X-purgate-type: clean
X-purgate-size: 3702



On 04-May-26 11:19, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> get_llc_way_size() currently scans CLIDR_EL1 Ctype fields from the
> highest level downwards and stops at the first unified cache it finds.
> 
> However, CLIDR_EL1 describes the cache hierarchy from Ctype1 upwards.
> Arm ARM DDI 0487J.a, D19.2.27 says that once software has seen a
> Ctype value of 0b000 while reading from Ctype1 upwards, no caches
> manageable by the architected set/way maintenance instructions exist at
> further-out levels, and the higher Ctype fields must be ignored.
> 
> The current reverse scan can therefore select a unified cache level from
> a Ctype field above the first no-cache level. Such a field is not part of
> the architecturally described CLIDR/CCSIDR cache hierarchy and should not
> be used for selecting the CCSIDR level.
> 
> Scan Ctype fields from L1 upwards, stop at the first no-cache level, and
> keep the outermost unified cache observed before that point.
> 
> This preserves the result for regular cache hierarchies, while avoiding
> selection of an architecturally ignored Ctype field.
> 
> Fixes: f4985fce6f0b ("xen/arm: add initial support for LLC coloring on arm64")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> This patch follows the xen-devel discussion:
> https://lists.xenproject.org/archives/html/xen-devel/2026-01/msg00345.html
> 
> In that thread, Michal noted that the reverse scan was a simplification
> rather than an intentional requirement, and that changing the
> implementation would be fine.
> 
> Testing performed:
> - standalone synthetic CLIDR tests covered both regular and pathological
>   Ctype sequences and showed that the forward scan ignores unified cache
>   levels above the first Ctype == 0b000 while the reverse scan can pick
>   them
> - Renesas H3ULCB booted with llc-coloring=on
> ---
>  xen/arch/arm/llc-coloring.c | 22 +++++++++++++++++-----
>  1 file changed, 17 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/arch/arm/llc-coloring.c b/xen/arch/arm/llc-coloring.c
> index 6f78817c57..3783f4c824 100644
> --- a/xen/arch/arm/llc-coloring.c
> +++ b/xen/arch/arm/llc-coloring.c
> @@ -22,21 +22,33 @@ unsigned int __init get_llc_way_size(void)
>      register_t id_aa64mmfr2_el1 = READ_SYSREG(ID_AA64MMFR2_EL1);
>      uint32_t ccsidr_numsets_shift = CCSIDR_NUMSETS_SHIFT;
>      uint32_t ccsidr_numsets_mask = CCSIDR_NUMSETS_MASK;
> -    unsigned int n, line_size, num_sets;
> -
> -    for ( n = CLIDR_CTYPEn_LEVELS; n != 0; n-- )
> +    unsigned int n, line_size, num_sets, llc_level = 0;
> +
> +    /*
> +     * CLIDR_EL1 Ctype fields are interpreted from Ctype1 upwards. Once a
> +     * no-cache level is seen, higher Ctype fields are architecturally ignored
> +     * for the CLIDR/CCSIDR set/way manageable cache hierarchy.
> +     *
> +     * Keep the outermost unified cache before that point.
> +     */
> +    for ( n = 1; n <= CLIDR_CTYPEn_LEVELS; n++ )
>      {
>          uint8_t ctype_n = (clidr_el1 >> CLIDR_CTYPEn_SHIFT(n)) &
>                             CLIDR_CTYPEn_MASK;
>  
> +        if ( ctype_n == 0b000 )
> +            break;
> +
>          /* Unified cache (see Arm ARM DDI 0487J.a D19.2.27) */
>          if ( ctype_n == 0b100 )
> -            break;
> +            llc_level = n;
>      }
>  
> -    if ( n == 0 )
> +    if ( !llc_level )
>          return 0;
>  
> +    n = llc_level;
After a loop, n does not carry any meaning, so I find this assignment a bit odd
and confusing to read. Just use llc_level below. With that:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Fri May 22 06:53:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 06:53:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316352.1585741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJlG-0008Dm-2q; Fri, 22 May 2026 06:53:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316352.1585741; Fri, 22 May 2026 06:53:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJlG-0008Df-0B; Fri, 22 May 2026 06:53:34 +0000
Received: by outflank-mailman (input) for mailman id 1316352;
 Fri, 22 May 2026 06:53:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQJlE-0008DZ-TF
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 06:53:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQJlD-005EgM-QR
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 08:53:31 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ffd60-5cb7-0a2a0a5109dd-0a2a4503df2e-46
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:53:31 +0200
Received: from [209.85.208.182] (helo=mail-lj1-f182.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ffd6b-672d-0a2a45030019-d155d0b6b0be-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:53:31 +0200
Received: by mail-lj1-f182.google.com with SMTP id
 38308e7fff4ca-39397d63804so18272501fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:53:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779432811; cv=none;
        d=google.com; s=arc-20240605;
        b=LB0MVA+OSVwE4y6u6dNSmBy3ZXnwraTjHLVgLnuLVi45qfSx7fU3GjMxG3tEB2HrXE
         KbRlmDF18CNdoBH/uWfKZWRfmq5UaKtqo1eO4zbXMmdn/2OvrqyCSu/9ywGorzfkPz9t
         Lp5Qd+aEXWJAeeiq/yckStbL3tEL9zzoLchQTaFrbGiNWxgzmltFvEgVS4a1e2f+k7Ze
         bCzpYgaprS4drcr16O32ryJVGQMVRlUnroHC/8M95DKnclNJodOjCJte7HD2P9mjVTNv
         ycuj3q8j5/v6tg4LkJsZd+q9mvMcQjfdJ/9k+7APD2cmzFr9kaaEd0AROBeS65lEOlEq
         E4Zg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=IqHZTnhvDlodEAfN9SoUDUUzUXKdGnA4Ep6wRKSYkRI=;
        fh=074dSOZR2TjZuH9KX7pMcX1QOxphcb/LlKcediamujk=;
        b=JmdjFGE1vRO5FcTbcVDIL9//RrnVNLgVmko37jz5jPDkGBQFlg8RbB8fFfAalMBGuM
         /YvlZsfMaGsGOek87NZ6prbe4ENMarhoAv+GB5homEXwRgh5hujVQ9/RlZVnWK24SWrT
         BhEWRZv4GqhC35eXeq4pLtnU8jC7dFW3SNX+p7jEXA2RYEarakXrbzPzE4sQW7Lvy7OZ
         292IuwRIE5hi/1B5gxLT1aeLXH6E1jL0tCRqvulMU2trUw9A52bIe7+m84UwUBnK80iB
         j3+1VgCFpvgo+RdLoQ+66kVKt3iHfnf9WdYdxmraIGfveIeuwBe4NOdvkZSkD4yqNyyQ
         iiLA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779432811; x=1780037611; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IqHZTnhvDlodEAfN9SoUDUUzUXKdGnA4Ep6wRKSYkRI=;
        b=nXZ3HmhLzYgzILQCVUBguDiSSA7wAqVnhnw+TJM1ijuJu2Oj0OCbD5uf1gvaJDCAFt
         m/phX0/dtlY87VkBUSVsKR9kvmNjznCai1kx4qSQ/Y7xWWdV18gj6BZd0Cx8ujDQKXzm
         IFiSb9S83VUK3jVhxIdz7dbMEJWk/qRRURcjXZnChJ2lqvDxcnZ+4VmU0PXlSgboA7kZ
         znMPu/8oK4MPCE/jJCkOzt1yki/RMZQYfp1lOZNTQhGo9yEnwqhH8mDOkCkPcy/rUWXu
         bHaz2v+kBI4+qJv7B482TLgltkAeUagbmPpCy65iD8qv1505aSanFqTdMbWLt/pAcTE8
         zP1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779432811; x=1780037611;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=IqHZTnhvDlodEAfN9SoUDUUzUXKdGnA4Ep6wRKSYkRI=;
        b=jKtPG/FTmJII0G6sh2CkvjZgDjZNjieeFzK3UgrYiRRKySAbilOGCw+7xtk2HAHxxl
         uCcvxRzjn39Dkw7H73qCNeOLjUTUInG7AtvTeipv6oK5Qxf8jAgbcsV43I4Yrf2K1i9U
         6XeMzjxbtgMPfnQ/ly03npJYvhXVZGhKFqZn/DjDe7dCfvZZqINONr013efWH2PJmnK1
         6Jo3eQ0A/9r1Pc6hJwfeaAEme+ujoW2r9OUjVUmWs8Ul2MklzxhDg16C12iYOxF7bsqM
         IWVM2Ni2AxsXGWGB0KCgIlyExS4QGpcHtSCxhbVMm7ctMzNSq95UOK7fg5TPeFlWXWwe
         s85w==
X-Gm-Message-State: AOJu0Yzbl45Fd/Z2EUibTjB5kT8RGb65XJio7NF1IAqxKuD0Egzlecbo
	rKYPRpZmrHOGCxz0Bf3gwrBWNjyypIhYELgvdJN1V8woEi6MMAgWwt5uBQ3zRn3SafdGyn1WEDI
	er4xFzm1/QAEOvCsbV2PNLODRBMd2hwQ=
X-Gm-Gg: Acq92OEdFdMYc4W+rlpbS3aw9NPZ4Simkza9Q1FDB1A5TQ7S8NA4ZH8seD6DVckzRcF
	zTgHatfhtgOTdmZCrGafkLa4QSSzROQvxDvVOjAyOUHZC1gthZkfJRSJNHqnqyLUsMYaitR5P3Y
	sOlmzyNNP8o+qDyBC+wYa8IYYRuAZuSyNxGbl4sN0W3y8dpQsKbr4yzv5xcq9RUbBxWszno824r
	gs8G+tWXWFZWM35kovqexVGCeHtxjU6aPa0hwMUPjEpk0lHByKbxapDASKmmPwW5GMGaX7lwUrJ
	5Iyms331DtKcDJg=
X-Received: by 2002:a05:651c:882:b0:38e:9eb1:693b with SMTP id
 38308e7fff4ca-395d8c1238emr7088961fa.3.1779432810870; Thu, 21 May 2026
 23:53:30 -0700 (PDT)
MIME-Version: 1.0
References: <20260521232529.694570-1-dmukhin@ford.com> <20260521232529.694570-2-dmukhin@ford.com>
In-Reply-To: <20260521232529.694570-2-dmukhin@ford.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 22 May 2026 09:53:18 +0300
X-Gm-Features: AVHnY4I9LC7-6HdtsaD27ry0_Px0zmYX37FycGeibaJAN-3eWl0LtxwvONqv5t0
Message-ID: <CAGeoDV9L5+N7nnhY1A4on0L1+aAfb8JxbBLwoV+XxMwnoTS8xQ@mail.gmail.com>
Subject: Re: [PATCH 1/2] argo: lower level of noisy connection-refused log
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
	michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
	christopher.w.clark@gmail.com, dpsmith@apertussolutions.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-33051d/1779432811-40A6A938-3C811EFA/0/0
X-purgate-type: clean
X-purgate-size: 1291

Hi Denis,

Thank you for the contribution.

On Fri, May 22, 2026 at 2:57=E2=80=AFAM <dmukhin@ford.com> wrote:
>
> From: Denis Mukhin <dmukhin@ford.com>
>
> Lower the log level of the "connection refused" log line, as it can
> spam the logs when a dom0 service using the Argo hypercall tries to
> communicate with a domain that is still starting up.
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
>  xen/common/argo.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/xen/common/argo.c b/xen/common/argo.c
> index 28626e00a8cb..4f894470698e 100644
> --- a/xen/common/argo.c
> +++ b/xen/common/argo.c
> @@ -2034,10 +2034,9 @@ sendv(struct domain *src_d, xen_argo_addr_t *src_a=
ddr,
>                                          src_id.domain_id);
>      if ( !ring_info )
>      {
> -        gprintk(XENLOG_ERR,
> -                "argo: vm%u connection refused, src (vm%u:%x) dst (vm%u:=
%x)\n",
> -                current->domain->domain_id, src_id.domain_id, src_id.apo=
rt,
> -                dst_addr->domain_id, dst_addr->aport);
> +        argo_dprintk("argo: vm%u connection refused, src (vm%u:%x) dst (=
vm%u:%x)\n",

AFAIU, argo_dprintk() already adds the "argo: " prefix internally.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Fri May 22 06:58:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 06:58:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316365.1585751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJq7-00015F-MU; Fri, 22 May 2026 06:58:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316365.1585751; Fri, 22 May 2026 06:58:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQJq7-000158-Jg; Fri, 22 May 2026 06:58:35 +0000
Received: by outflank-mailman (input) for mailman id 1316365;
 Fri, 22 May 2026 06:58:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQJq6-000152-8t
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 06:58:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQJq5-00DTop-Hi
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 08:58:33 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ffe82-2eae-0a2a0a5409dd-0a2a4504e5c4-48
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:58:33 +0200
Received: from [209.85.208.172] (helo=mail-lj1-f172.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a0ffe99-1dec-0a2a45040019-d155d0acc102-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:58:33 +0200
Received: by mail-lj1-f172.google.com with SMTP id
 38308e7fff4ca-393a44854d2so62780771fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 May 2026 23:58:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779433113; cv=none;
        d=google.com; s=arc-20240605;
        b=F2zYkLjn0qE/rmm+lvUrPboECtx1vp4+L6rXLHsED/664RRswvodnB+i0AJwJ3YZKM
         kR0195hdtSkWg/aOpeT3h5WhGnPlo6J8Jd1GVOZ983shjQlpTAWfU7yWjEwyhOKTlMYq
         umKMfWVdM/uLu8qwbQXGetW1pBy0+lGVdLxxLHZ5x3llExm8wLFUU9eAtZ2gAbUZucLI
         XA0760YJYoRW37VJv2Otjl/IPkGUMEf19QMcSFD1G9x7awIT5aeVIYyQeLtPQHqRP7Pk
         qSaKhIG9B5NJrDN4P+ZOeFhrSB2vRW55eXG+LQJhGpzNkluap4k/JMBOC+/SgGrHXIEI
         PhoQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=Aphvrh3o4r9AM14USpcWUYSwrDUfewqP4MvO0SNGqVg=;
        fh=074dSOZR2TjZuH9KX7pMcX1QOxphcb/LlKcediamujk=;
        b=WQivLxi3pMax5hl2dYDrXVskvr69Y3fqKBfbGeOo9g2XKFjHmmO2pOj30T0rySZ0rS
         CyTBVnUF+DWRebPs5jDCPdrmNSa1Sczq4q+asgpsCq8+llDODcKfcHY+comP2eqKbafn
         pt1jrtV6EOpevyOzBkj+02ai+CHRl31SDQADqHAiChk5kJt2/kWiQWth5zjRhSX0+68d
         Qpfkz8vZHJCsStGVCwrTVB7nZSttntxKoIAwVEijKcnBo4lJRwhKbmpwRnoprqIKWXIb
         mKBbMPL/9hCOwtVD6katGSOS7iKdm+R+YlFyU3oqTpkY8lhrEH5CMNI9fjHae5IFjPjz
         FiOg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779433113; x=1780037913; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Aphvrh3o4r9AM14USpcWUYSwrDUfewqP4MvO0SNGqVg=;
        b=fjg/VoZZFE1G6DVwUr5MITyhqHSkmYZwBe3pE6qVGYxkzwcfdnYj/a1qkGtA2LTojG
         6L6XUO0Qunh9+ZNArmwBsZsnvy1C3WB1q8UwtktOhyPTdpJEBFiU+Q0CApiZ5umVgXqa
         neZEDYseyrq0DeHUVSSdXGmI8KZgQ/EfBuKaDEfKD0W+0qWlBsfissMx6o3QsECBoRKF
         +jOT8dx5gdUKX5SSqCvRFStuj+twnLTn9+Prh8wzOUzrln0myY5TCWEd+7Dhcp6HzZPX
         MoFHM8zg6WzsycA3IkWcmedOZNW/vsk0cCCx0323C6g9XZ5weOWt5XseK5ToSarN48Sp
         JmZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779433113; x=1780037913;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Aphvrh3o4r9AM14USpcWUYSwrDUfewqP4MvO0SNGqVg=;
        b=b7E4HnXdJ1FdGZKv6c59UErPNMJuU6V8f35Dhqo66/gEopzL51bH1dTdKCsH2LfXX8
         c3SGAXe+uemO/9ndkeQx7ysbc6GbwqNspehrvItfAK9rJVYgoqyQytFBRcpdOTtD7my1
         A0jLnOJpbaZv+RSMwm68q3/N1t9WSWgfDazoLfaxsIHN2uVw0YHdageJ+ZqW/FCS8khV
         PYXfveNHo7++5imVD1epPjsynALOi1oYsisUQc1nsTmwSe9k8WNIkTrxn7h7AT3dKt1s
         ItZsi0P4WM3rwFz3hdz+UNONGJ/mvpTHLlT+aQcL42Hw3tzzAY6ese0WthbQ4k3xlgrH
         OdyA==
X-Gm-Message-State: AOJu0YwGVPHFhDiDLeftkj9f0ojr6atXwX5+4TyhnwtxCWU8qzuwd9In
	m6N+V7WS5PJ3N69+AiACPUQ0Rk1OGyFoZz3SbqmCtPHK1Iq27Iqu9kIoB611OqKoIEF6JzfXKel
	YfDxxmF4R5rNdfsy2fc3zts509I3Eg8U=
X-Gm-Gg: Acq92OGKsSGfAEt4aPinVghPeu5eweS1pZS0WUA36ZHqFb37bbmbDB9IVMNizGjVbFL
	5cURoWLphgf6Ezua3MpRhgQ2CqemzJvkOlUAgc74bRaxlspaNATSU8idxuvvVJWmuEPIiWFj70S
	HZOBiKCYbHGbXDxew0SOR6fLickkJHFWfKTawx2/Rv7F8bfgHUG1O/uOItOhTbBVs8ACjNcb0bR
	gQTn/q/MuppPtoTtkZRleCJTkpOF/5KeV9b8bLup9O6GrjtW3a2gzd6wo9zykmRbRuMcnok6YuB
	+AWZrYe1XKdyBG0=
X-Received: by 2002:a05:651c:2114:b0:38e:2de3:f8ad with SMTP id
 38308e7fff4ca-395d8c35d98mr7900811fa.4.1779433112500; Thu, 21 May 2026
 23:58:32 -0700 (PDT)
MIME-Version: 1.0
References: <20260521232529.694570-1-dmukhin@ford.com> <20260521232529.694570-3-dmukhin@ford.com>
In-Reply-To: <20260521232529.694570-3-dmukhin@ford.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 22 May 2026 09:58:20 +0300
X-Gm-Features: AVHnY4IBTKvFdp_4SnPV-YX3rBBqyw7U2BYkQTWTSj_TO9u7Z84ppeXwrLXu60g
Message-ID: <CAGeoDV8w9HG=b4homaCp9wWi0Oz8HZUi6UktoRTgTRyDhS+uBg@mail.gmail.com>
Subject: Re: [PATCH 2/2] argo: correct logline in ring_unmap()
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
	michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
	christopher.w.clark@gmail.com, dpsmith@apertussolutions.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ebf023/1779433113-28B733FF-280E3954/0/0
X-purgate-type: clean
X-purgate-size: 1029

Hi Denis,

On Fri, May 22, 2026 at 2:26=E2=80=AFAM <dmukhin@ford.com> wrote:
>
> From: Denis Mukhin <dmukhin@ford.com>
>
> Drop XENLOG_ERR from the logline since argo_dprintk() already injects
> the proper log level indicator.
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
>  xen/common/argo.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/xen/common/argo.c b/xen/common/argo.c
> index 4f894470698e..c66632486800 100644
> --- a/xen/common/argo.c
> +++ b/xen/common/argo.c
> @@ -474,7 +474,7 @@ ring_unmap(const struct domain *d, struct argo_ring_i=
nfo *ring_info)
>              continue;
>
>          ASSERT(!mfn_eq(ring_info->mfns[i], INVALID_MFN));
> -        argo_dprintk(XENLOG_ERR "argo: unmapping page %"PRI_mfn" from %p=
\n",
> +        argo_dprintk("argo: unmapping page %"PRI_mfn" from %p\n",

Same here: argo_dprintk() already adds the "argo: " prefix internally,
so the explicit "argo: " should probably be dropped as well.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Fri May 22 07:13:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 07:13:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316376.1585759 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQK4I-0004Ot-Q8; Fri, 22 May 2026 07:13:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316376.1585759; Fri, 22 May 2026 07:13:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQK4I-0004Om-NR; Fri, 22 May 2026 07:13:14 +0000
Received: by outflank-mailman (input) for mailman id 1316376;
 Fri, 22 May 2026 07:13:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQK4H-0004Og-AC
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 07:13:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQK4G-005Iut-M1
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 09:13:12 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a1001f9-e002-0a2a0a5209dd-0a2a4506bee0-36
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 09:13:12 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a100208-7371-0a2a45060019-d155802dd576-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 09:13:12 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-48fe26a177cso52283235e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 00:13:12 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49042aec059sm11244405e9.28.2026.05.22.00.13.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 May 2026 00:13:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779433992; x=1780038792; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=pr2shRaWS2fF84DEieW/TNvVy/2Fb7SEONyZc10LoPc=;
        b=Xb5CGnynFd2Lmz7UlhJ5hjdFPwPMYKA365NjhNYlFFi3wrjv0jjFVKOgqJC5vtG8oU
         fHFcGAa/0ymL/DxvpJFsWvZchcZ/WRW/KZEQkTtDmsG3RezY5nd5lRyvRXD9waAOyuxG
         28GGMlEHInDduwdZKJBybV7yAfxmuglSmHI/HIlJ5+FP88QZIo1m7cqHnzrG1XDzDyhv
         j4auQKSbMzbuePmZ+O1rif2bpskK8aQe5coAlE2rBQ5/nkVW/Ig6LDlGOl/otZ4otJmA
         HucIVYytJ6d9LxckfoE9ngakAn3SAD7i4N7BvTuVutbQ5BbU0+uNnTO0pmSdetFowD6e
         m61g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779433992; x=1780038792;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=pr2shRaWS2fF84DEieW/TNvVy/2Fb7SEONyZc10LoPc=;
        b=fofLIm8iMUASpaM+WeESOkTvSF9H2uVL1oYtzLrY7htohemxZHF1Sbvw5I2w4VX7n2
         rHRyWDD5Q4gxWkGwqxebiN2k54oURQmRRTtxAzzikTZKu+euzf1MDMK95Z5tGRqc4rps
         bpPAsBb8IT+XOdGMWQFl/xDSJKjJV+hwaUUu314Fb8aeSETa3l9W24+KH+Azfm1HlwiQ
         7klHQK/mW43cLozPheRfQ4mkWk7t8UXQyvqOPi4XIbKu1KR4uBGrgiwtoePXsGnAdOWh
         cXikDJvkcsukzyYiCrlQDvc4fHziKLYDzTa8zREFYkmzieKbzU6cOHpJWDPtRSYc3Fel
         uYzg==
X-Forwarded-Encrypted: i=1; AFNElJ838SDgrrmDjLnNjcmCYSi4irfWnSx1lEyMfWUjXx3yMYb8WKvIQ00fdOymBh4weJ2fHT5Cik4pPpg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyPVQjiiomNJ9QaB3hRLWqP5o+vjs6FuPXPFbOJhphXqeiDT9r4
	B9Q851xegUex3G2cXPQzeAZbrKr6z7GTHVP2zmR51DstY5QboY7ZFAXR
X-Gm-Gg: Acq92OHafICBNQk5wJabVUfNzyeiI2R8W0Der7gCwsfrelqhH1xwO2nxgUecea3JNz2
	DUsSbRDL5i9wSKbeWQ6HhBcyp1zxTUA2fRtGXs9iJCoqKN7c24RzCUXcAmHg9h3CuVeZ51didVM
	B+XNhYAGH0jpyC64EQEn0961MnMjPWvEiGx8PcwV7DHPDkHcxUEPoxnjWowzz8yI7vfhJHHJgUf
	6stpMAGm7/Df5JqBAAperDrko94Gn5ozZStNGcmQ4PAMR2mMNU2YEpFuqmD4bCaVq9W/8X4Actb
	pxnkhbVf2tPG+4vOEZ736N+vX9u8HP7DGDyu25cRRUZXNu4RdJHZfydKtZMqfe5gT5Lu7l1cCGV
	Qmk8TV+GpXoltJIsZMveP61n714QZNgLrtIvlN9+BO7GKrw5X4s2TC2Yjq6uavxFFOUD0Vexzk5
	1Q+lMIS6wF3FkcD63QiW9oiq6NWq/4OKIa4U3iBP9qXwacw7I0WyY3xInnVtNRpgLgLL7FQ1UIr
	j8=
X-Received: by 2002:a05:600c:4706:b0:485:3abe:ab86 with SMTP id 5b1f17b1804b1-49042487e09mr24557545e9.4.1779433991900;
        Fri, 22 May 2026 00:13:11 -0700 (PDT)
Message-ID: <a38c3b10-a7a3-4c16-a8fb-9932a6785102@gmail.com>
Date: Fri, 22 May 2026 09:13:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22? 0/2] x86: don't exclude time.c from scanning
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <2ad2b572-45b4-42a5-9b7a-80eebfacc80e@suse.com>
 <d87a4771-b2c7-4696-a45e-726821bf1963@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <d87a4771-b2c7-4696-a45e-726821bf1963@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1779433992-7FF7BD75-1F63A2C2/10/73395122804
X-purgate-type: spam
X-purgate-size: 505



On 5/21/26 4:34 PM, Jan Beulich wrote:
> On 21.05.2026 14:25, Jan Beulich wrote:
>> 1: x86/time: address Misra C:2012 rule 8.3
>> 2: x86/time: don't exclude from Eclair scanning
>>
>> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2543286982
> 
> With the quick R-b from Nicola (thanks much!), what's you're view towards
> including this in 4.22?

I am okay with having it in 4.22:
  Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri May 22 07:14:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 07:14:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316383.1585768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQK5f-0004wx-2v; Fri, 22 May 2026 07:14:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316383.1585768; Fri, 22 May 2026 07:14:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQK5f-0004wq-0N; Fri, 22 May 2026 07:14:39 +0000
Received: by outflank-mailman (input) for mailman id 1316383;
 Fri, 22 May 2026 07:14:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQK5e-0004wk-5f
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 07:14:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQK5d-005JNX-I0
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 09:14:37 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a10024c-bab6-0a2a0a5309dd-0a2a4507c526-38
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 09:14:37 +0200
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a10025d-229c-0a2a45070019-d155dd33bccd-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 09:14:37 +0200
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-43d7e23defbso3892774f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 00:14:37 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d49132sm1770497f8f.24.2026.05.22.00.14.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 May 2026 00:14:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779434077; x=1780038877; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=BicD9TYxpHdVMRFLSDVpnuTrLVUpY+pOYydHNRXgQYg=;
        b=Ug2ZtriPURY580Y4fIC7hiWBQmGIkdoTYAqVY+pCy8ylhH6ml9+RNClbazmvi3ZBdv
         WuhjsAbwsvf8qF7uMxH90E6nLHi3cpPGCtJkixPg59W2p8k+RIFmjrDk7g+j1CxQyBLs
         I4g23Knk5paPMZw0qWmZVnqZJ7dPje/gtuakISZ8Gee+4qr41xRZPR4dSLAC3AHsbY6a
         FEGMIa7L0Yv/wMCTPe7ezLXdLDTIBjYwzvYUwDf0UoJUehe+KPxZXJSm4cLsVGjdYRyq
         uqqt/rIT5mqJAv+nBOHmE5gutDOW5PDDezOoCSxaO2loqLS48Pz4RG2EtF3xr5czL5hD
         zA6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779434077; x=1780038877;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=BicD9TYxpHdVMRFLSDVpnuTrLVUpY+pOYydHNRXgQYg=;
        b=FHXL1p4pBjPBNzYztsoPS3VCcRlQewxtUkL4b5zRMAorisFQnqLEnEIJCp3YBIYWnq
         HDCimK5w4LZ7vspoLrnh6nNXzZIBXtLcKxFSixIrI/IHY+R2+oXZpB7D0Os7b7tYVjCq
         GFpdg1RVOkTTcaC0jNQ/QyW9KTI03cjMehjrvttEm45h3tZZNPtLzfjbKIsiD0fLFGUZ
         X3PZatEQn+BPlmYQCAKZWV+Dlx6rZjudN1UIT6Ymv6GYtO5MYMc6KDUBOodrjWNVPNq/
         DH/9jqNpnIna6yIYixBokiNu8MjWdWqxhN+DhimtadSRbEvHpViLyaSguWkjQmDy2FlZ
         MOAw==
X-Forwarded-Encrypted: i=1; AFNElJ9ZVEq5TFr0OvPXAfrZh4Q695FZK3OvT0Ks0snH3oPA1kaYyBgd0EW3HdsPYGvtp6KdHHmZvWYi6I8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyqXOdY4tnoLwOEBTrJcpGsWuySxD1yEpui5vxxTE+Fg2qDaC1G
	BCE2V7cBwQXCIrbImXPdm84j5kR8c2NysjZn5i4qCG0TdO8V+pAOYg9Q
X-Gm-Gg: Acq92OHYceltzOpSvKnHeqQnG0K0AQo2+WF0UHh79zOGyN979bOSmliV6awNr8kfavq
	x947wCSkZOdrPBVtpQJb2JUUvFBJxVm0C3xgMkWlFputrUirW19bwA/BE+xrBNOol590GoccIcF
	dZbM520QscmNrXEdkOQ+iizFN1d/8og9hu5AS8eS4PtCa8Ai2up3j6NKhgSrWLSdZmM8tkclzIt
	aaOUuU/wrDBamH16FQtbrE6e+o8G0cDHyvmNV3LLsxXpKgv/EgLkZYjsqIdH0rfCOfJEW78H7cy
	5fl3yJZBOqNL54/kn+7WNHqkClMTxQNTDIdsYl6v43yoo/djSN+1gPNvbYNSwipPNo18ut0es+B
	I5oWKZiv6ZONzTBGCGCK/JQ5HqMJjCNlZVO7t0HpZaQa1LSJikC3Fln/etwlas+HXHT8Uc+YQgL
	1v0y+Z/mYfZJjaZr61qJ0N+JVcxc6eG3IhXKZ+HjJx0sVLMVdpgEWN/9gmNnHDtGfmJJzrmgmi4
	6w=
X-Received: by 2002:a05:6000:26cf:b0:448:7049:a6c9 with SMTP id ffacd0b85a97d-45eb3688808mr2878148f8f.5.1779434076972;
        Fri, 22 May 2026 00:14:36 -0700 (PDT)
Message-ID: <e359f9c0-83c3-4375-ad5c-9bfeceb030a5@gmail.com>
Date: Fri, 22 May 2026 09:14:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: gic-v3: Fix redistributor wakeup polling
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20260518070524.19813-1-luca.fancellu@arm.com>
 <64094528-9c9c-47d4-98b6-640df0a9df3b@amd.com>
 <7bde7370-cd19-414b-9b53-37aaf076ba82@amd.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <7bde7370-cd19-414b-9b53-37aaf076ba82@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1779434077-2236CC48-8C2BB95B/10/73395122804
X-purgate-type: spam
X-purgate-size: 1251



On 5/21/26 9:06 AM, Orzel, Michal wrote:
> Oleksii, can we ask for a release ack for this fix?
> 
> ~Michal
> 
> On 19-May-26 09:19, Orzel, Michal wrote:
>>
>>
>> On 18-May-26 09:05, Luca Fancellu wrote:
>>> gicv3_enable_redist() clears GICR_WAKER.ProcessorSleep and then waits for
>>> GICR_WAKER.ChildrenAsleep to clear, as required after waking a
>>> redistributor.
>>>
>>> However, the polling loop currently uses "while ( timeout )". Since
>>> timeout is initially false, the loop runs only once unless the timeout
>>> path has already been reached. As a result, Xen can continue before the
>>> redistributor has completed wakeup.
>>>
>>> Use an unconditional loop, matching the surrounding timeout/break pattern,
>>> so the code polls until either ChildrenAsleep is clear or the deadline is
>>> reached.
>>>
>>> While there, also fix the timeout message. This path polls
>>> GICR_WAKER.ChildrenAsleep, not an RWP bit, so "RWP timeout" is misleading.
>>>
>>> Fixes: bc183a0235e0 ("xen/arm: Add support for GIC v3")
>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>> Reviewed-by: Michal Orzel <michal.orzel@amd.com>

Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri May 22 07:46:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 07:46:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316405.1585778 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQKaJ-0002Xk-GS; Fri, 22 May 2026 07:46:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316405.1585778; Fri, 22 May 2026 07:46:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQKaJ-0002Xd-D0; Fri, 22 May 2026 07:46:19 +0000
Received: by outflank-mailman (input) for mailman id 1316405;
 Fri, 22 May 2026 07:46:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQKaI-0002XX-7i
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 07:46:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQKaH-0065lg-6p
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 09:46:17 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a1009c8-5cb7-0a2a0a5109dd-0a2a450c9818-2
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 09:46:17 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a1009c8-62f1-0a2a450c0019-d1558035c49a-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 09:46:17 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-48a563e4ef7so54676585e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 00:46:17 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-490454ac6a6sm24566515e9.12.2026.05.22.00.46.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 May 2026 00:46:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779435976; x=1780040776; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=6uHiWn8a0pZizAm+RvQgLjDjdxAKEERcsrkVfsyJD4o=;
        b=ZD/F4+hDTS7A/kpjkbcMe+KUQBAZqQ6mfZ7Ar/PTMTRlsCoYsT0WES44g2Oi2mFPJu
         7NKS7tWUqe8l8jY7VN9S58QZR2FyFzmFxVK5hS+rBJ9tjqfXrxp1jqmpFqmSoa9YaR0n
         aWw5eTTNYbuCHuAa5g/0tr9Eik+iH38mPgKYRN9ocmsQoq+A4LMxJTGATO3aDPrwyJyO
         rhBrXJPpSy7KCvR2UKGkM83XbIOEm+OeTebTj2YNCpWf15iUz9fQsyxvuqD9jfzCBH1s
         NmlVWd0y8Z0BlgQj3Z19m1QxTZCKLvxQewxfqTqXB59OhUZ4BXAoLCV4/jBg11gm2UWW
         j59Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779435976; x=1780040776;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=6uHiWn8a0pZizAm+RvQgLjDjdxAKEERcsrkVfsyJD4o=;
        b=K697eYI3E9gpba8hlftjQnDGl7zPLeLMIBOI+h0uK1RPaGuu2Mh2H87c/ALtX/nALE
         OwKhXp90ycBSXJsgni7GF4UU8blvUA0K6m+4g1yEo9/HcGBj8UnJJdODdClBJw0eD8oT
         Ei6qX0PsyXYTJsuNb1ys8L3EjEkREZHit0DnNEUpYIhY8X9Os5CgQiGyxWvJk7HkVpHV
         O3mF5wilirVLotnJEHWo0p9PHfkoPUJaZImNKbdc3EXvdYaBpykfeYtC2pJNwD5/H2rL
         VPwb3J04f9NzuP4Mayck2fjHHsvx2zbHbw1YXI+eFmo7f8D5r8xzVildcucay8a070Su
         NAMw==
X-Forwarded-Encrypted: i=1; AFNElJ+19gnXbQlgTQM5JFMuNZzhGBzbNtvyYKVqCs3laBPN9A9MsRWkkhlhChAfY9NROuKu5g00eV+AGac=@lists.xenproject.org
X-Gm-Message-State: AOJu0YweNLa2yNB3V7jBA7zTS9g8zYPTW1162P6WsZWcSUkq6pHG96FA
	Dx9uZvnGo9SnOtuTI5Jot897v1xoaIJeFRLCwf8srxxqtZCjOTDnb3Ps
X-Gm-Gg: Acq92OHkBYs0uY1NKzJ9zVi3362x8CinxqJoQaq1F8v99yP4LCM6Pt4Se/22iIoG8tY
	UP6Zep302Dwiw4ptGH8aLIpyqqrzKXz2G+Grey3bfdk9AH8LpT1fQnBHTUkrnpAR4IF3kdxO7hF
	cmLTY86h7Rs/4/SiUuzs6D8y8HkiIZWEI3zUD0fVMLq8wdQxrOGn6U/L7iv1NnM98eCPOgeSRsu
	9CQw8dWiJuW/CsHsUNO8HRfhuPhQmfcoP1uFKmMnfmF2DgjAdDooT8FPqArURZS0HG1lfPtmpCl
	1vwaOX/ZOqza2H447f7JwcdxVABKZ4y9vruwDrr61kJkDUCnsSJVlNKZ7gc4b101pnp7HbEQaxa
	6rQGczaMuyj4E4qmObyZG3GlxfMzQijdOOntk6T4Gvb6WJb83854b86HBrGYpwnW8xE7U+7jw7m
	8kT+Axe31mw8jrddUj6VSGLHShvEqzphGOC9+8VoYIm7hzt8NpXmlsz2cg0xlFZdLEpelSncNT+
	wY=
X-Received: by 2002:a05:600c:4513:b0:490:44eb:c1e2 with SMTP id 5b1f17b1804b1-49044ebc3cdmr20232975e9.21.1779435976448;
        Fri, 22 May 2026 00:46:16 -0700 (PDT)
Message-ID: <fd31b3e1-1995-4cfd-840d-0d7c26765318@gmail.com>
Date: Fri, 22 May 2026 09:46:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RFC v3 1/3] time: add "NOW() good" indicator
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>
References: <a3e034a4-621a-45ad-9b96-9a85cbe5eafd@suse.com>
 <38b28709-eddc-4dc7-9e8e-92db67d20ea7@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <38b28709-eddc-4dc7-9e8e-92db67d20ea7@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1779435977-F407FCF5-7EC06113/10/73395122804
X-purgate-type: spam
X-purgate-size: 2007



On 5/20/26 4:45 PM, Jan Beulich wrote:
> printk_start_of_line() checks for a value of 0 right now. In order to be
> able to have NOW() return at least monotonically increasing values, that
> needs replacing by an explicit indicator.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Arm and RISC-V may want to consider whether their initial get_cycles()
> can't be moved yet earlier, such that the indicator also can be set
> yet earlier.
> ---

At least, for RISC-V ...

> v3: New.
> 
> --- a/xen/arch/arm/time.c
> +++ b/xen/arch/arm/time.c
> @@ -145,6 +145,7 @@ void __init preinit_xen_time(void)
>           panic("Timer: Cannot initialize platform timer\n");
>   
>       boot_count = get_cycles();
> +    NOW_good = true;
>   }
>   
>   static void __init init_dt_xen_time(void)
> --- a/xen/arch/riscv/time.c
> +++ b/xen/arch/riscv/time.c
> @@ -87,6 +87,7 @@ void __init preinit_xen_time(void)
>           panic("%s: ACPI isn't supported\n", __func__);
>   
>       boot_clock_cycles = get_cycles();
> +    NOW_good = true;

...  preinit_xen_time() call could be moved a little bit above just 
after riscv_fill_hwcap() as it is using riscv_isa_extension_available() 
inside.

preinit_xen_time() could be splited so it can be moved just above 
tasklet_subsys_init() after device tree is initialized but I don't think
there is to much sense for that.

>   
>       /* set_xen_timer must have been set by sbi_init() already */
>       ASSERT(set_xen_timer);

The ASSERT is harmless, but NOW_good could technically go after it.

boot_clock_cycles and cpu_khz must be visible to any reader of NOW_good 
== true. There's no explicit ordering between those stores and the 
NOW_good = true store. In practice this is fine because SMP isn't active 
at this point, but a WRITE_ONCE(NOW_good, true) or a compiler barrier 
would make the intent explicit and protect against future reordering by 
an optimizing compiler.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri May 22 07:56:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 07:56:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316424.1585820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQKjw-0005B4-Li; Fri, 22 May 2026 07:56:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316424.1585820; Fri, 22 May 2026 07:56:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQKjw-0005Ax-HO; Fri, 22 May 2026 07:56:16 +0000
Received: by outflank-mailman (input) for mailman id 1316424;
 Fri, 22 May 2026 07:56:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQKju-00059Z-In
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 07:56:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQKjt-00DsHO-RO
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 09:56:13 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a100c1d-5cb7-0a2a0a5109dd-0a2a4507bc1e-6
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 09:56:13 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a100c1d-229c-0a2a45070019-d155802ca5bd-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 09:56:13 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-48a3e9862f0so39277935e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 00:56:13 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d4741bsm2284653f8f.22.2026.05.22.00.56.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 May 2026 00:56:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779436573; x=1780041373; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CjifsBC2QPGjuFooy6rvKS9BK5hhQ4Fgiich6F8P3Ng=;
        b=RocXipDpEenf7QdYRrT9vWWZG3gEIDRsluvT4EKLTqUICc86XkyY9bcDqkPWD2yS/v
         Jo1vWBNnbnvV216wVZ+g2e2uNlE23Fgj4iQLGKfTo0OYZqPpQWF5X70omvRu8bfpkEA4
         k4e3CGTj5UoqCoDDAXyL6noVELEbhpI/eEZp4jb3utA1eh5rlk+lhqcbdiKy2+lYuCBZ
         Arg/S9B9w32zfA912Y4WeQi0RXb3ByY46ocZ6Z1nNZxZXKty7gHowzW8jrs39ZkDcjYU
         yWg0PxYtnW8tJSjwp2tM31IyXmXk7pH/pj29GjTJNq4/BkfHux5NYQiIVPmvGN2V62XJ
         kw4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779436573; x=1780041373;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CjifsBC2QPGjuFooy6rvKS9BK5hhQ4Fgiich6F8P3Ng=;
        b=migNIg2G3o0S5ytMG58KedxPenVC5Z01RaKGoa3ESe3ekkOI7yUjBGlseu1cjsX0XB
         rFpYRyDIeLua/Ng+s0CfK9VDqXcz9lNKm7aDsnxvAcbBkj/Y6uqzPMazUY1Fmelzyr0+
         bhHUwRrZHXC4I43nzPQmIglWzOLfpUITV0mXOHfBngcJqtekiPV0LOzaf9Aq7Y7xBAt9
         tEOCGJR8E9ODzjmtZH2SD5RUDXN1nlBYZm7sIEWrCLUv0uyoT2cvOfJOPS6YYBhuFTZj
         sTsW019P0xjAzTd8PXA5S6vKSxymSKCjqE/0psjJMAuK1V4f3QuYz3k3ooAeGkgQ0TfE
         A84w==
X-Forwarded-Encrypted: i=1; AFNElJ/AWbk7bQXf2hg/zQZgPOpNa0Sj0tGsqJSbfgDCGUGPTHgJO27N775kdRoeuRRL20O3hUGXrbueaAU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxcOzALTjGJmG7prh+P0tuvho/W9PWbD9Hp+qobznxYxULHboKj
	bfvNM+RTLKv2DgIivlswRAzVBfHIg72AqZvqAO2G52GVpRDrSr9LKBzW//xXy0jo9A==
X-Gm-Gg: Acq92OFNAkQ8f3/8+/02KdMg9hutVRRf8X4eIhZt7S+sqpjtBOBwpMI/SxTSH9ua4xd
	fbNYIj4mar+KdsjYJMeU0SA5ID187zuNAJ/MI6FB44B9ULIP2WwvedyQlPr3O2ZGsTHltfMAcl0
	pnpNonE4wvBY3uvF1nebSgSe21tDFj9Zmmi6cBjA16eUl8kn6PGx+sYy95dK2Qlt5vQMVvhWtXf
	z7KCu8o70GJvkjiHo35QgiOVi8/CryluGku4PnnTpkyYRx6pLVH6OmsGUesFKGOJ2JbAoQJXx7J
	dT3ebsyc0Mn6/BAr5PjBtgBq2RVrrtPmUiC9quFu4hOBn2kqRUHyWSJcKCTQmlxh83/hYCGygR7
	EHUSJBhtDu4fXUECTD5gfcrpUSnecAiqtQkcsRq0CRmjHiRc5t9G3rUP4R74vjNzx23M4tkuO2f
	Rep1YXHQLzpNAEURogAykV57UXBiUwp/f34bDX0SKXgQ1YEW/v4c7qX9fOtrM35xD023OoQSOq6
	/ug5hssDLLnEzc=
X-Received: by 2002:a05:600c:c3cf:20b0:489:1c0d:c9cb with SMTP id 5b1f17b1804b1-49035f2e1aemr64316895e9.5.1779436573054;
        Fri, 22 May 2026 00:56:13 -0700 (PDT)
Message-ID: <55cbae35-702a-4176-9c2d-3d400c451a29@suse.com>
Date: Fri, 22 May 2026 09:56:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RFC v3 1/3] time: add "NOW() good" indicator
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <a3e034a4-621a-45ad-9b96-9a85cbe5eafd@suse.com>
 <38b28709-eddc-4dc7-9e8e-92db67d20ea7@suse.com>
 <fd31b3e1-1995-4cfd-840d-0d7c26765318@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <fd31b3e1-1995-4cfd-840d-0d7c26765318@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1779436573-21F6EC48-16E6DF18/0/0
X-purgate-type: clean
X-purgate-size: 2408

On 22.05.2026 09:46, Oleksii Kurochko wrote:
> 
> 
> On 5/20/26 4:45 PM, Jan Beulich wrote:
>> printk_start_of_line() checks for a value of 0 right now. In order to be
>> able to have NOW() return at least monotonically increasing values, that
>> needs replacing by an explicit indicator.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Arm and RISC-V may want to consider whether their initial get_cycles()
>> can't be moved yet earlier, such that the indicator also can be set
>> yet earlier.
>> ---
> 
> At least, for RISC-V ...
> 
>> v3: New.
>>
>> --- a/xen/arch/arm/time.c
>> +++ b/xen/arch/arm/time.c
>> @@ -145,6 +145,7 @@ void __init preinit_xen_time(void)
>>           panic("Timer: Cannot initialize platform timer\n");
>>   
>>       boot_count = get_cycles();
>> +    NOW_good = true;
>>   }
>>   
>>   static void __init init_dt_xen_time(void)
>> --- a/xen/arch/riscv/time.c
>> +++ b/xen/arch/riscv/time.c
>> @@ -87,6 +87,7 @@ void __init preinit_xen_time(void)
>>           panic("%s: ACPI isn't supported\n", __func__);
>>   
>>       boot_clock_cycles = get_cycles();
>> +    NOW_good = true;
> 
> ...  preinit_xen_time() call could be moved a little bit above just 
> after riscv_fill_hwcap() as it is using riscv_isa_extension_available() 
> inside.
> 
> preinit_xen_time() could be splited so it can be moved just above 
> tasklet_subsys_init() after device tree is initialized but I don't think
> there is to much sense for that.
> 
>>   
>>       /* set_xen_timer must have been set by sbi_init() already */
>>       ASSERT(set_xen_timer);
> 
> The ASSERT is harmless, but NOW_good could technically go after it.

"could" or do you perhaps even mean "should"? I'd like to keep the write
next to that of boot_clock_cycles, but of course only if there's no
dependency on set_xen_timer.

> boot_clock_cycles and cpu_khz must be visible to any reader of NOW_good 
> == true. There's no explicit ordering between those stores and the 
> NOW_good = true store. In practice this is fine because SMP isn't active 
> at this point, but a WRITE_ONCE(NOW_good, true) or a compiler barrier 
> would make the intent explicit and protect against future reordering by 
> an optimizing compiler.

Hmm, yes. Logically it would want to be smp_wmb(), and then I'll also
have to add smp_rmb() in printk_start_of_line().

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 22 09:14:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 09:14:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316488.1585885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQLxL-0004IA-7Q; Fri, 22 May 2026 09:14:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316488.1585885; Fri, 22 May 2026 09:14:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQLxL-0004I3-3P; Fri, 22 May 2026 09:14:11 +0000
Received: by outflank-mailman (input) for mailman id 1316488;
 Fri, 22 May 2026 09:14:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wQLxK-0004Hx-Ae
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 09:14:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQLxJ-00E0O9-JD
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 11:14:09 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a101e5e-5cb7-0a2a0a5109dd-0a2a4505c2e8-8
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 11:14:09 +0200
Received: from [40.93.201.0]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a101e5f-aaa8-0a2a45050019-285dc900ba76-4
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 11:14:09 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by BLAPR03MB5524.namprd03.prod.outlook.com (2603:10b6:208:284::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 09:14:05 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0048.016; Fri, 22 May 2026
 09:14:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JuI3A4YbwgjE5ygkQuTp3ORNmDWuox9bO1SEIWnBvrut3fl7KUniy6CRiKQNFI15zxohwbqqy7JgHw+Bpll66JGYXMAmH80+/g166ZBiiINzoiQcKTmlUHv/VFgE7CJL7S8FQuGD/LHHDvccUvZMBs+dXRuEkQln0AdiyHD4K2zz1qLhU7AIT7yvJ60N+2RqWHALxqClBR6GJPF/Al8h0r6b0x/3CPo+/64bV0YIPGMRi64wCgkPHYJfgw8gKpFdtFva0V5HYPZqD3P1WgtyCUv8rSf31lDC2FcTBZkcQFlZ/FqLUurCTbrM8FKmtuJOvutA/nuYHNrYx9FfCmIjvg==
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=mYq8Eq3IwKKX/eUYJnfz3JguYXQEaaaaBSAyij69T5I=;
 b=gqf4YQqzxvvQMblgPzM+pSwFz4Jjs+nj1onx1z0xpmyKauoA9iF4WuJEJqebGYHMnVVBikIvhn8yyi575USabBPdcvf5pup2chu3KkIg6bvapn30CzQLVKv6kHvj6Jltk9wYJY5pxaTlSbx0grAqzhq6RYuH2rIAFJzTZR8ZxW88sn1ezz5hYWs/mbmFjwsWAU5DxzybKRZjPhw7D6rgb2dCaHAHwML1D30wvLFNYgdsW3ozHrC0KRkBiOUguDDfzdmGRkkfoN1mLhMsilNfRqOBjPGYPbKiSIEtfYuwpZ2M4SwnU0iOmgyfl6zp+yPDOZ8W8L+Syh+Fq7b2w9CGfA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mYq8Eq3IwKKX/eUYJnfz3JguYXQEaaaaBSAyij69T5I=;
 b=Os1L06YYkF8jhflnMLk97puc14miTBSjj76msiJspIu6j2OXOqvh8eo+BGq0W/DhxEvDX6v/AGFASKqXe4PHlafd6DsEDDgOfZqF4AMK6UhY59ccl0zR1At0HdumMzFo2vM0T0mZbChcH34lmPzlXgqv2FtEL6MkgquKpxBOsTI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <9cd57494-3b11-4e75-a8bd-4fe2767f0490@citrix.com>
Date: Fri, 22 May 2026 10:14:00 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC v1 5/7] x86/hvm: Move INSTR_* constants to hvm.h
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
 <20260518131404.3716969-6-ross.lagerwall@citrix.com>
 <a5b2561f-0225-4f18-bc74-7f66227bc807@suse.com>
 <6a6dd703-cb9f-4a13-b0da-ff1a9d841bc5@citrix.com>
 <4aac1424-1a65-4af2-b9cd-0ec70eee042a@suse.com>
Content-Language: en-US
From: Ross Lagerwall <ross.lagerwall@citrix.com>
In-Reply-To: <4aac1424-1a65-4af2-b9cd-0ec70eee042a@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO6P123CA0037.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:2fe::9) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|BLAPR03MB5524:EE_
X-MS-Office365-Filtering-Correlation-Id: f976823a-fd1f-447d-2128-08deb7e278f8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|56012099003|22082099003|11063799006|6133799003|3023799007|4143699003;
X-Microsoft-Antispam-Message-Info:
	+o+8DcC4lPQZKBh2F7YXY+hfZBNaMBcXA41L0P96EHN2i0tYUjVOoElQgtpVa6YK5JWXyjwr+weWKlHOxhjiktGFLYPLSBxRwP/8Fb0v3V7rPnKuZOlB0lUal0bJ3bxABOpHPJkbrEHcq29l4aH88mGNTcFPc4K2Ix9QjvY7uoZDZHsTYc2ue46Jwwtx/xCgUYZGIJD25oB/jJf9ZRZdlKXqhIDl/XW0XU8961HwfB0q42YtwXzt76FTD/RFEl4a4iDwl+haBizN5KigvCx7o4siuOmtFX48h0PEfWldLp2iXoHGXFk5FHFY0c4ypAzJzYv3ZlZh6WejmOB+OFTQcJRx9KzecLrCPeEax21JZELatuDP+ZisT42W8Phym8iIwwbptjD2aJbPh33gW/XHGlcoK1OXgqqFnVu9Uqse+GfN63OHPjdo666gjXhCxSfPmIklE09VgPGaVj4cYRtTLTZWb24VCqhXkrNiXvCazHqCrrB0dpw9vBjH16amA83705yfi/x6y4ldiZE4NMhOlSNS0qUeFGlMWaBAD7Yvkh1alW68EMr22wLg8CvtM2z3aCOjb0PSVe+E6+YU4weYxLayt/80popYdHzRmJ5C/YfKLm8ur4f9QodBEPbw5oAePE26+V4O5TTHhk0cbCcGs6SWJIYH7uwoYUGULw4RKJH8c2uE01FJNZHqyye6ghCu
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(18002099003)(56012099003)(22082099003)(11063799006)(6133799003)(3023799007)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dzFtVnR3MHNmL09JR3B6cjRGbXlvUzlBdk9zdmlET0pKeWdHVHUyb0xWazVJ?=
 =?utf-8?B?VUYrNUNvZ1Rnb0Z1amxzL0Vlcyt0Vm1ldjVqM3NCWTNqcWFLZ0gzeU0rSUt2?=
 =?utf-8?B?OXFXemFHcHBLWm5PamJNRCtYNklSUzNNY2k2M0kyMUZJSjV4VlcxSkdVZktR?=
 =?utf-8?B?K1dqRit1eUtwMVhUZC9aUVdUNC9sR0tWQkNZVEV4aVFsbU1aanlYSFBsbjRP?=
 =?utf-8?B?bzdCMUorazc0UVVZb01lMFRHZGQ3aStzcFdtdWdSeHBHaWhvQlY4R1VNL1BD?=
 =?utf-8?B?cStVVkdFWVNBeUVoT3RYQ2FmeTFSWTJVYm1KNWtTOEJlRytKUDdjUnhQL0N1?=
 =?utf-8?B?VGJlVURjcGdVdG5vcWh0ampjellYbjhGa01QZEJRdUNNczcreXVQa1RoTzFi?=
 =?utf-8?B?c2NUMktPR0JHSVY2UEIwdE1sbW85UXR3QnNuQ25VWmNFdGh5NVErOWhqV2VX?=
 =?utf-8?B?U1RrUCtyRkI1MkQxTWxMNjFQbmxMcVRJcmZDUVUwMkgrK29IenFVYlVIb3hZ?=
 =?utf-8?B?MjVQcW9BVHhaUDl1RUg2KzBmWWlOeXJhTjFkbnJBOEpFM3lKeVBqQzRBK0Q2?=
 =?utf-8?B?cGd5L1M1VE13Mlhzb2IzVWdFT3Ixa3gxa0Znd3dQeXlQalBQU1JYR2E3ZEdh?=
 =?utf-8?B?N3Fma1ZsU1RFWnVwMmVBN0gycHZMT2R3dUQrNSs2TnVzRHIweXRWQXBoeVZs?=
 =?utf-8?B?QThka3llaUVOeHRxeHowNlk4UkxJWU90RW9wMmhRS1pGRk5wWEo1cUFGS3FC?=
 =?utf-8?B?L3VPVklQZFgwZzZwS00zMGhEOU9sL1BsNUlFRTBtMS90NVNlNGNZWXBEeUNM?=
 =?utf-8?B?c095YmcxejN3d0ZoaFNHRU9xOHVleXp2amlBTDRyRXlTN253RFh1UDJ6N08v?=
 =?utf-8?B?Sk84eWxoalB0L05yWTBXdkNoRTNVMWR0UVRKTmpybzMySWlxcDZ5V2VUeGw5?=
 =?utf-8?B?MExLajlmYnl5RlRFSDBiZEgrQnVIbmFUSmRncTRoZGZaTndSWHFDMTRCNlht?=
 =?utf-8?B?RHlQbEZQaGs5ME13TUFMNXUveHFHTHBSTU1Xak9INjRRN3BhVEdnYkZyZDNJ?=
 =?utf-8?B?b3pHM2tXRDg0cVAyYW1MeHNPa1JJUzZTc1NjZzAxSXFET1BrWDZ1UVFTYjVV?=
 =?utf-8?B?TnJvNHJBUE4rVlBkOVRrMG5uSTUyQ0oxM1M4WjBNZk1RUkQzNHNJb3JOa01k?=
 =?utf-8?B?cXB6OW1ybmFJNlViMkFWNURadHdnSURxUmIyRmtKV0p1bm1RYk5RQm44QVFm?=
 =?utf-8?B?RVozZXV4dmRCTitlTG1vV2I0clV3anFFZnRVd2RORTFQVDRxMm5JQTY4Q1E2?=
 =?utf-8?B?TnhvYWVkZWt3WGh4WTNYNG1Gc21tVzk4Vm82bFY1Q0NpS2lQcTB0aFRJREF6?=
 =?utf-8?B?dmtmWW1YZ3JaYUx2dnlQKzZUSTNJbjdhaGJ4bkxZd1BjNG9hR0lCQXBrdDZE?=
 =?utf-8?B?eVJVMzE1VFIrWkZCNjM4REtNRm1ES280bFVXYmNqY3FyYWUzNVVEYWEwckEy?=
 =?utf-8?B?Y2tHUno1QmltN0ZzVWlsWHJRNi9CQVFNYlBleU5LYWJsUDJ3bEhWUzVpS1Bi?=
 =?utf-8?B?UjE3ZFBuZ2FDQm4yMDhrQzBTQTEwMFR5NERmRjBRVmF0SWRxSEhHL21sbGVv?=
 =?utf-8?B?ZjBXL1M4WUk0aHJydjMzRUhBQ3R0M0VlUURmVC93bTdVeXRGS0FxckdCNHNU?=
 =?utf-8?B?M3g5WHR0cHFoTTVDMFNWMStGVkJXSllqWm5JbGU3eDJXUzN6S09wM1Y0aHJk?=
 =?utf-8?B?cFUyVHhxeXoyYXhKazFzTzdZblpKZGJyWC9VU2JkcEFGVWszN2Q3ZWs3ZnhY?=
 =?utf-8?B?RW5ZUnhvb0JjNlV5Qm5HK1ArN1ozN0tSMmVzcC9LZ0oyTDljbmoxdTk1U284?=
 =?utf-8?B?WlludDBYZnBxV1hPVGxsNlhTUlFlNXIwakRWbVpQc1UzcUtNUUFmRDdCTTVm?=
 =?utf-8?B?T3BOb3d0YU9scHFrYXRrYUFmOW5RLzVUN3dSM3I5RTB4N2xRM3llYnBmajdi?=
 =?utf-8?B?bXAzNk03WGc2QmExdWZYZGpTU2hOdS90NisraUJNTWZKa0srZzZCRXozVHNT?=
 =?utf-8?B?cHpiNU5qRUJLN1NDcHdYWTJLYnJ6TzE0Y2tUK0lUNkEzMnZzcmhIV3pqTjhs?=
 =?utf-8?B?bGRlUStkNmJRRmgvL2dGSGtoaWZiaWF4elpKK2laUUdLZjVBdzN1ejMyQTdw?=
 =?utf-8?B?OXlSNkRRcjdKRzFEQ25iTklTN2FRa1RFWWh0NERTT0orN04vRzdjeWtJcCtO?=
 =?utf-8?B?U1VJTm9VTzZvMENZQWEwOEJmejNwVU9jTHBielZvVUp1L0FTV3ZoQ1ozbGY3?=
 =?utf-8?B?aHUraHpwNm9ndEJQNUZlbEZ6ZkhrZVlWSnphMEI4ZnNGYkxZc0pUQmZJalA4?=
 =?utf-8?Q?cLrkSv4j0JNYpOT0=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f976823a-fd1f-447d-2128-08deb7e278f8
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 09:14:05.4806
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6mZJBf8J37OmSHZmLmZL13ezaI72b0izSL7ZYXH4A5VkzibP6MqvmFPSKQjFl66XJIUwu+FmRG/6wSHbIxEBgXJyfP6UAuo/ALK6BFhMIuY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5524
X-purgate-ID: tlsNG-c201ff/1779441249-D877A443-6C8D0F3A/0/0
X-purgate-type: clean
X-purgate-size: 3254

On 5/21/26 12:57 PM, Jan Beulich wrote:
> On 21.05.2026 12:12, Ross Lagerwall wrote:
>> On 5/19/26 10:49 AM, Jan Beulich wrote:
>>> On 18.05.2026 15:14, Ross Lagerwall wrote:
>>>> --- a/xen/arch/x86/include/asm/hvm/hvm.h
>>>> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
>>>> @@ -851,6 +851,35 @@ static inline void hvm_sync_pir_to_irr(struct vcpu *v)
>>>>            alternative_vcall(hvm_funcs.sync_pir_to_irr, v);
>>>>    }
>>>>    
>>>> +/*
>>>> + * Encoding for svm_get_insn_len().  We take X86EMUL_OPC() for the main
>>>> + * opcode, shifted left to make room for the ModRM byte.
>>>
>>> With all of this moved, the comment wants adjusting, at the very least by
>>> putting "e.g." in front of the function name.
>>>
>>>> + * The Grp7 instructions have their ModRM byte expressed in octal for easier
>>>> + * cross referencing with the opcode extension table.
>>>> + */
>>>> +#define INSTR_ENC(opc, modrm) (((opc) << 8) | (modrm))
>>>> +
>>>> +#define INSTR_PAUSE      INSTR_ENC(X86EMUL_OPC_F3(0, 0x90), 0)
>>>> +#define INSTR_INT3       INSTR_ENC(X86EMUL_OPC(   0, 0xcc), 0)
>>>> +#define INSTR_ICEBP      INSTR_ENC(X86EMUL_OPC(   0, 0xf1), 0)
>>>> +#define INSTR_HLT        INSTR_ENC(X86EMUL_OPC(   0, 0xf4), 0)
>>>> +#define INSTR_XSETBV     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0321) /* octal-ok */
>>>> +#define INSTR_VMRUN      INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0330) /* octal-ok */
>>>> +#define INSTR_VMCALL     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0331) /* octal-ok */
>>>> +#define INSTR_VMLOAD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0332) /* octal-ok */
>>>> +#define INSTR_VMSAVE     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0333) /* octal-ok */
>>>> +#define INSTR_STGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0334) /* octal-ok */
>>>> +#define INSTR_CLGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0335) /* octal-ok */
>>>> +#define INSTR_INVLPGA    INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0337) /* octal-ok */
>>>> +#define INSTR_RDTSCP     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0371) /* octal-ok */
>>>> +#define INSTR_INVD       INSTR_ENC(X86EMUL_OPC(0x0f, 0x08), 0)
>>>> +#define INSTR_WBINVD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x09), 0)
>>>> +#define INSTR_WRMSR      INSTR_ENC(X86EMUL_OPC(0x0f, 0x30), 0)
>>>> +#define INSTR_RDTSC      INSTR_ENC(X86EMUL_OPC(0x0f, 0x31), 0)
>>>> +#define INSTR_RDMSR      INSTR_ENC(X86EMUL_OPC(0x0f, 0x32), 0)
>>>> +#define INSTR_CPUID      INSTR_ENC(X86EMUL_OPC(0x0f, 0xa2), 0)
>>>> +
>>>>    #else  /* CONFIG_HVM */
>>>
>>> I further wonder whether putting this in hvm.h is a good idea. Is there
>>> anything wrong with using a brand new header, e.g. instr-enc.h?
>>
>> No objection to that. I do wonder though if using the instruction encoding like
>> this is the best way of passing through the instruction to the fast path in
>> hvm_emulate_one_ctxt() since I think in some cases the instruction encoding
>> may not match the actual instruction that triggered the VMEXIT.
> 
> Do you have an example? If so, that would indeed be at risk of being misleading
> or actively confusing. (Of course INSTR_VMCALL wants renaming, as was already
> suggested.)
> 

VMEXIT_CR0_READ may be triggered by MOV-from-CR or SMSW. There are probably
other examples...

Ross


From xen-devel-bounces@lists.xenproject.org Fri May 22 09:15:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 09:15:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316494.1585893 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQLyv-0004t8-GB; Fri, 22 May 2026 09:15:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316494.1585893; Fri, 22 May 2026 09:15:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQLyv-0004t1-DH; Fri, 22 May 2026 09:15:49 +0000
Received: by outflank-mailman (input) for mailman id 1316494;
 Fri, 22 May 2026 09:15:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQLyu-0004su-3a
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 09:15:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQLyt-006Xl2-Ff
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 11:15:47 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a101ec1-5cb7-0a2a0a5109dd-0a2a450be180-12
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 11:15:47 +0200
Received: from [209.85.221.46] (helo=mail-wr1-f46.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a101ec3-212f-0a2a450b0019-d155dd2eec38-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 11:15:47 +0200
Received: by mail-wr1-f46.google.com with SMTP id
 ffacd0b85a97d-44a14580111so5425044f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 02:15:47 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d70c51sm2844426f8f.36.2026.05.22.02.15.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 May 2026 02:15:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779441347; x=1780046147; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=MkfAOLXaXpIT/Nezy3HcPg1CcsGmcAt1KlFltMVEvOw=;
        b=XDGsRTZ+ECrRX0ULniQJkM12dMKVfm2kpK99d0JtDl+6o3y7tcZRKUUOGUQt6b+Xta
         iMXbeUTcSps3tUc6Pu8zFmLn3fx5InqhUjQbHHxn6Rko565vS9cwStLEd2zAOtLSZMS2
         xQnWW+2GFyXXCj/gDjuMBwfSm8khjzCYzHUCNkgHfs7o8fzOUMNXeG0Up7IQwcATIJTK
         0x3lvJUEY3jPGbPMVyTZGO3dsdiKslH6lD8maIfOtX4B7sYqNrqBOua0WjtRrg0FzWRy
         iJ2Zr8lYVs74zPWumeNCYfGZWMO4Ki3Yl6SaMwVOy8D+IWlWLiacWGvvGx55k3XUwDq/
         Ke8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779441347; x=1780046147;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=MkfAOLXaXpIT/Nezy3HcPg1CcsGmcAt1KlFltMVEvOw=;
        b=TTLFkZ5B3Um1baYz8IB1CVK2BVuVGJxmUGof4S1PYbo7avqboRZfNze2WbYQ2Trz1r
         wHQyiVcz7nmUhCaSwjSugKNBTd5ptzsZDB7h7/5PDgAdco3bM+aPb6DioS6kYNgwe1hJ
         Ma9itz+blSGodAnZK/WwjegIvKBW1vuFa+R8KQ3AaITT0QulGXDYenuD6eossVZl5q2Y
         Ve/y89Sr29HdOkzQzYKjBumOBYKkR1uTUjP7NyyNG7zbtN/1lflaqkFKTjPCgYjeJ1Ww
         9qKtUzCrmN8ZewIn4eJu8DcDxBpp7jqYQBfcljyx0cej/c0T8424/VzF4WHX50RVju/Z
         L3/A==
X-Forwarded-Encrypted: i=1; AFNElJ/6oRJ0SnZ8GPkjmDNAVB8Q8Ji0BGASKbATfW97z82o66GQWPAyu+rdNiRFK5vZ7urdByvoMMBQmaI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YydBffUOMRVRb8h3MOUCS0x2Ux9YKWYZPrF/NHf1+BXlwQIwqfe
	UPGGGF10w/bUothv51JANNjNG75jcEuP1+W3tJNpOsk+LdQI5F+9DhPO
X-Gm-Gg: Acq92OH5bZDZ6WqTmmp68Louoccz5yQGc3vA/DJqMCYHzluM7ZpAaQzwM7/PQa+O4pH
	7aVMMN7EoFZk/ZfIAnxawAiXHFCFTw6w8gQJ42GZwWoFvZhrW+ft3mWMx/P38hzUIIJRDYKgkuA
	IWsslQIG1tG//UCsBVS2JiD/Bc3AWBMyr3wqKepGXy8/fB/xUdBPH9UJQIE9A0OB0ZrA2XNzwjT
	5mrhDXU4WULjUmb/0uf5fEO/XeSfUyE4Gk12jhAtL9fAosZb5bfLZhaAUFNhHn661cbC2bxQ1zb
	0BSHFV1fVc60S+KFTH/BQyE0QojMttqYn4Vrpm4hTIbW8/oCh6eBAWHyXoGZOwmRuYKamofX25m
	Sgb8GIPGqZglOq24UF5yFV+KcGZ/lmO7z9r7osY00YTxflwmy/lj/m9SnR6Evo9BMa2pakGX6HP
	1nsnuNE8ySQcUeO9pljP4zTP2do6Jao+DwT7nCG2ZlKhCM28n7+cFIQk/KBSHUcMKTPlJOCj9Cv
	g9IqmyiiZuPDA==
X-Received: by 2002:a05:6000:18ad:b0:452:a293:4d91 with SMTP id ffacd0b85a97d-45eb33551bemr3977862f8f.0.1779441346576;
        Fri, 22 May 2026 02:15:46 -0700 (PDT)
Message-ID: <cbbea642-8aa4-4437-9311-15d0ee0c853a@gmail.com>
Date: Fri, 22 May 2026 11:15:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RFC v3 1/3] time: add "NOW() good" indicator
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <a3e034a4-621a-45ad-9b96-9a85cbe5eafd@suse.com>
 <38b28709-eddc-4dc7-9e8e-92db67d20ea7@suse.com>
 <fd31b3e1-1995-4cfd-840d-0d7c26765318@gmail.com>
 <55cbae35-702a-4176-9c2d-3d400c451a29@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <55cbae35-702a-4176-9c2d-3d400c451a29@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1779441347-13979F3B-A03A0139/10/73395122804
X-purgate-type: spam
X-purgate-size: 2103



On 5/22/26 9:56 AM, Jan Beulich wrote:
> On 22.05.2026 09:46, Oleksii Kurochko wrote:
>>
>>
>> On 5/20/26 4:45 PM, Jan Beulich wrote:
>>> printk_start_of_line() checks for a value of 0 right now. In order to be
>>> able to have NOW() return at least monotonically increasing values, that
>>> needs replacing by an explicit indicator.
>>>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> Arm and RISC-V may want to consider whether their initial get_cycles()
>>> can't be moved yet earlier, such that the indicator also can be set
>>> yet earlier.
>>> ---
>>
>> At least, for RISC-V ...
>>
>>> v3: New.
>>>
>>> --- a/xen/arch/arm/time.c
>>> +++ b/xen/arch/arm/time.c
>>> @@ -145,6 +145,7 @@ void __init preinit_xen_time(void)
>>>            panic("Timer: Cannot initialize platform timer\n");
>>>    
>>>        boot_count = get_cycles();
>>> +    NOW_good = true;
>>>    }
>>>    
>>>    static void __init init_dt_xen_time(void)
>>> --- a/xen/arch/riscv/time.c
>>> +++ b/xen/arch/riscv/time.c
>>> @@ -87,6 +87,7 @@ void __init preinit_xen_time(void)
>>>            panic("%s: ACPI isn't supported\n", __func__);
>>>    
>>>        boot_clock_cycles = get_cycles();
>>> +    NOW_good = true;
>>
>> ...  preinit_xen_time() call could be moved a little bit above just
>> after riscv_fill_hwcap() as it is using riscv_isa_extension_available()
>> inside.
>>
>> preinit_xen_time() could be splited so it can be moved just above
>> tasklet_subsys_init() after device tree is initialized but I don't think
>> there is to much sense for that.
>>
>>>    
>>>        /* set_xen_timer must have been set by sbi_init() already */
>>>        ASSERT(set_xen_timer);
>>
>> The ASSERT is harmless, but NOW_good could technically go after it.
> 
> "could" or do you perhaps even mean "should"? I'd like to keep the write
> next to that of boot_clock_cycles, but of course only if there's no
> dependency on set_xen_timer.

There is no dependency on set_xen_timer so feel free to keep the write 
next to that of boot_clock_cycles.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri May 22 09:23:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 09:23:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316504.1585902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQM5x-0007CN-5s; Fri, 22 May 2026 09:23:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316504.1585902; Fri, 22 May 2026 09:23:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQM5x-0007CG-2v; Fri, 22 May 2026 09:23:05 +0000
Received: by outflank-mailman (input) for mailman id 1316504;
 Fri, 22 May 2026 09:23:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1wQM5v-0007CA-NP
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 09:23:03 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1wQM5q-000cnf-0T;
 Fri, 22 May 2026 09:22:58 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1wQM5p-0013S3-2X;
 Fri, 22 May 2026 09:22:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=H31lC0eOpJY3qpXcHt0ef1xE5sHfYgrP7GJ9jWjLaBM=; b=aIS3u1/YrQnynD3MWM5lo3Grvi
	njtBsTFVWlhv2GJbtcKW204PpT1cUkRi9bXpXPIxXu2Klsh/4FXgQpt13XWzdmOFDPMcHNDA9HDUx
	Us8NJzc/o5rUs69dvx/jLnVk4c8qiJhP8ZeWNGFEjvjOG7p6LsiPRdwbbzGj3Yxu5pL4=;
Date: Fri, 22 May 2026 11:22:55 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, philmd@linaro.org,
	pierrick.bouvier@oss.qualcomm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 10/39] MAINTAINERS: Drop bad F: in "X86 Xen CPUs"
Message-ID: <ahAgb1shN3tLrK_h@l14>
References: <20260521080511.999266-1-armbru@redhat.com>
 <20260521080511.999266-11-armbru@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260521080511.999266-11-armbru@redhat.com>

On Thu, May 21, 2026 at 10:04:42AM +0200, Markus Armbruster wrote:
> include/hw/block/dataplane/xen* does not exist.
> hw/block/dataplane/xen* does, and is covered.  Drop the bad line.
> 
> Fixes: fcab2b464e (xen: add header and build dataplane/xen-block.c, 2019-01-08)
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: Anthony PERARD <anthony@xenproject.org>
> Cc: Edgar E. Iglesias <edgar.iglesias@gmail.com>
> Cc: xen-devel@lists.xenproject.org
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Reviewed-by: Anthony PERARD <anthony@xenproject.org>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Fri May 22 09:41:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 09:41:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316522.1585911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQMNw-0003Af-JT; Fri, 22 May 2026 09:41:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316522.1585911; Fri, 22 May 2026 09:41:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQMNw-0003AY-G0; Fri, 22 May 2026 09:41:40 +0000
Received: by outflank-mailman (input) for mailman id 1316522;
 Fri, 22 May 2026 09:41:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQMNu-0003AS-PW
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 09:41:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQMNt-00E7da-Vt
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 11:41:38 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a1024ca-5cb7-0a2a0a5109dd-0a2a4501a2aa-28
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 11:41:37 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a1024d1-c1f2-0a2a45010019-d155dd2bd803-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 11:41:37 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-44e1ebb3122so4390743f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 02:41:37 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6cd151asm2575040f8f.13.2026.05.22.02.41.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 May 2026 02:41:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779442897; x=1780047697; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mvs9EKNx66wxPurTbgSTe8g22KjiF2kCa8E7RV4Cf1w=;
        b=H/o4HcgnfhY4UGPDI5xF8+gL39h+suh5O7aQQ8Won9zjFVhMn2lsH1+d3V5uHbFyYy
         vwGB23rHW528/JVBuQzk2CgBlEZydtyNl9nsww5JyBc4GiC2KWy9bWbvtuT6qhYv27QQ
         tEKgY0ea8AjrHD2vxAugQWXcuHLY7LtKmUNqFR1CFt3hPX5n4E/rTrZV5C+j/PZ1X/r2
         CinKhBEPUU9o1QF+9puihAgJ/e0u8u//q27ZPhdA+RCPdwpAUwqI0FvGssXiSDMBB6kC
         HW6rmNL2IlH8x9nhDXOvY61YXs5k2yTQgyqmBWG1b1tSVqwjVSjSn5rGjEpR6iiIJAR+
         dQgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779442897; x=1780047697;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mvs9EKNx66wxPurTbgSTe8g22KjiF2kCa8E7RV4Cf1w=;
        b=VKfNe6LsoEyrEb2uGno92geDc3kkSlMFKkJG3fIleCEdiK2/LqxFTriAnn0KMWQVxV
         TAY7C/orhoE2AneSrkXVOOC84eVeg8XhVtB9+Bby2xg7R0CQA3qZM9N0PUwZ4likaRwD
         lflpKrTRptuBqo1G0TLkebIEY0FS7P7OXFhVZi1ibDm0MAyHVsIjNMehkWg6uFcU5lM2
         9XJxsQvqADXvAf+VXDHiQF0qdpKuflieKz6Yj1Xvt9tktXWQknMHqnrJoAu1QCJGogfi
         1rc74KIBl/9Ua0+M7ImU26pGZ2wQXOhWwjJnfQbaJnfIp1DvGTk9apgR2d3p4vJwU6lr
         TUiQ==
X-Forwarded-Encrypted: i=1; AFNElJ8h08wtds1o3C4wtOcoV09pnWJfqaRd8RDUEiUtcXHMsLSL3zNalIiLtI4q22bMNwseApNjtKKV0mQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw4Mwg7gO3FhiaPfbRrRio5m4TUZpYujv71yoR3KeFgdC6Lj2Uu
	gR7HSKZ06WRTg5n0n5N4hSyEnWA03Vt4ovo0nHYAEsX58bv3K/lR4vz0QpfTVfZARA==
X-Gm-Gg: Acq92OFtj51E5HRWn5OXkTfdARSQvPj9C0J78H6BEjBtXTUul9XUvngBaCb+oPhzoPX
	sbNED2d/dNHAChXSJxfVJFPI7xzCjDyrYnNIxDkHVcEGFZJvqVCnUM1tZjAojeEZIvF5b11WJMd
	+w0ThSwz/YrIcfXiXhP1DrdY0UsTqxF3FGyXrH8zYHUM02lPO/iF/Zekp9BezG0IDpkeXSSReM5
	JIPIUdPY457ut2Q7iGo2HlnjNbofR763qhktfZ8HLJRiiO7v6mbqetVfNpwpFc2Cse74FPXGI5r
	Ek8818hhQgP+Py6Ea6jK0x9GzvLq8E5/EQwmtirfH7vym4Ih1a1OxNV2JBTmtCQ+tyiUlaz/CWL
	MXQKiTHNt1HqU9OHatkCo6eQglZXymIPeIpyRzQSMPF8/7UxozuB21u8ZS+A4bh8WNLKGoOAtlb
	/CVABXE5IP0+vY+2YHKc7arDiMUX2eJ6Hu9soa2cL0C/wRvc6UblSOdQ+td9KqBxVYfWFLK+1i2
	YFBHN4y4sQpzhjqMllEG6R1Vg==
X-Received: by 2002:a5d:5f54:0:b0:43d:67f4:91aa with SMTP id ffacd0b85a97d-45eb3af66e2mr3835573f8f.40.1779442897167;
        Fri, 22 May 2026 02:41:37 -0700 (PDT)
Message-ID: <11cbd069-8e2b-4678-a80c-82d0d4318f70@suse.com>
Date: Fri, 22 May 2026 11:41:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC v1 5/7] x86/hvm: Move INSTR_* constants to hvm.h
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20260518131404.3716969-1-ross.lagerwall@citrix.com>
 <20260518131404.3716969-6-ross.lagerwall@citrix.com>
 <a5b2561f-0225-4f18-bc74-7f66227bc807@suse.com>
 <6a6dd703-cb9f-4a13-b0da-ff1a9d841bc5@citrix.com>
 <4aac1424-1a65-4af2-b9cd-0ec70eee042a@suse.com>
 <9cd57494-3b11-4e75-a8bd-4fe2767f0490@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <9cd57494-3b11-4e75-a8bd-4fe2767f0490@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1779442897-AE342FF4-0764C774/0/0
X-purgate-type: clean
X-purgate-size: 3570

On 22.05.2026 11:14, Ross Lagerwall wrote:
> On 5/21/26 12:57 PM, Jan Beulich wrote:
>> On 21.05.2026 12:12, Ross Lagerwall wrote:
>>> On 5/19/26 10:49 AM, Jan Beulich wrote:
>>>> On 18.05.2026 15:14, Ross Lagerwall wrote:
>>>>> --- a/xen/arch/x86/include/asm/hvm/hvm.h
>>>>> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
>>>>> @@ -851,6 +851,35 @@ static inline void hvm_sync_pir_to_irr(struct vcpu *v)
>>>>>            alternative_vcall(hvm_funcs.sync_pir_to_irr, v);
>>>>>    }
>>>>>    
>>>>> +/*
>>>>> + * Encoding for svm_get_insn_len().  We take X86EMUL_OPC() for the main
>>>>> + * opcode, shifted left to make room for the ModRM byte.
>>>>
>>>> With all of this moved, the comment wants adjusting, at the very least by
>>>> putting "e.g." in front of the function name.
>>>>
>>>>> + * The Grp7 instructions have their ModRM byte expressed in octal for easier
>>>>> + * cross referencing with the opcode extension table.
>>>>> + */
>>>>> +#define INSTR_ENC(opc, modrm) (((opc) << 8) | (modrm))
>>>>> +
>>>>> +#define INSTR_PAUSE      INSTR_ENC(X86EMUL_OPC_F3(0, 0x90), 0)
>>>>> +#define INSTR_INT3       INSTR_ENC(X86EMUL_OPC(   0, 0xcc), 0)
>>>>> +#define INSTR_ICEBP      INSTR_ENC(X86EMUL_OPC(   0, 0xf1), 0)
>>>>> +#define INSTR_HLT        INSTR_ENC(X86EMUL_OPC(   0, 0xf4), 0)
>>>>> +#define INSTR_XSETBV     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0321) /* octal-ok */
>>>>> +#define INSTR_VMRUN      INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0330) /* octal-ok */
>>>>> +#define INSTR_VMCALL     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0331) /* octal-ok */
>>>>> +#define INSTR_VMLOAD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0332) /* octal-ok */
>>>>> +#define INSTR_VMSAVE     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0333) /* octal-ok */
>>>>> +#define INSTR_STGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0334) /* octal-ok */
>>>>> +#define INSTR_CLGI       INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0335) /* octal-ok */
>>>>> +#define INSTR_INVLPGA    INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0337) /* octal-ok */
>>>>> +#define INSTR_RDTSCP     INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0371) /* octal-ok */
>>>>> +#define INSTR_INVD       INSTR_ENC(X86EMUL_OPC(0x0f, 0x08), 0)
>>>>> +#define INSTR_WBINVD     INSTR_ENC(X86EMUL_OPC(0x0f, 0x09), 0)
>>>>> +#define INSTR_WRMSR      INSTR_ENC(X86EMUL_OPC(0x0f, 0x30), 0)
>>>>> +#define INSTR_RDTSC      INSTR_ENC(X86EMUL_OPC(0x0f, 0x31), 0)
>>>>> +#define INSTR_RDMSR      INSTR_ENC(X86EMUL_OPC(0x0f, 0x32), 0)
>>>>> +#define INSTR_CPUID      INSTR_ENC(X86EMUL_OPC(0x0f, 0xa2), 0)
>>>>> +
>>>>>    #else  /* CONFIG_HVM */
>>>>
>>>> I further wonder whether putting this in hvm.h is a good idea. Is there
>>>> anything wrong with using a brand new header, e.g. instr-enc.h?
>>>
>>> No objection to that. I do wonder though if using the instruction encoding like
>>> this is the best way of passing through the instruction to the fast path in
>>> hvm_emulate_one_ctxt() since I think in some cases the instruction encoding
>>> may not match the actual instruction that triggered the VMEXIT.
>>
>> Do you have an example? If so, that would indeed be at risk of being misleading
>> or actively confusing. (Of course INSTR_VMCALL wants renaming, as was already
>> suggested.)
>>
> 
> VMEXIT_CR0_READ may be triggered by MOV-from-CR or SMSW. There are probably
> other examples...

Like LMSW, then also relevant to VMX. I think these indeed better wouldn't use
the wrong INSTR_*. On SVM with decode assists, SMSW can be identified, but
LMSW / CLTS are ambiguous without fetching the insn.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 22 10:14:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 10:14:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316548.1585919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQMtH-0000fL-3c; Fri, 22 May 2026 10:14:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316548.1585919; Fri, 22 May 2026 10:14:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQMtH-0000fE-0b; Fri, 22 May 2026 10:14:03 +0000
Received: by outflank-mailman (input) for mailman id 1316548;
 Fri, 22 May 2026 10:14:01 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQMtE-0000e3-VE
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 10:14:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQMtD-006PAg-T7
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:13:59 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a102c61-2eae-0a2a0a5409dd-0a2a4502d7de-18
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:13:59 +0200
Received: from [209.85.208.175] (helo=mail-lj1-f175.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a102c67-af86-0a2a45020019-d155d0afac11-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:13:59 +0200
Received: by mail-lj1-f175.google.com with SMTP id
 38308e7fff4ca-3937014be0cso14153981fa.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 03:13:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779444839; cv=none;
        d=google.com; s=arc-20240605;
        b=OUUAqPPwaFFD9BYbhTUT1OEw6GJXMo++kT9TFhr8Ubm48hiNvY0fdTkUtZEtS2Flff
         +1BsSvS+q5b0Cw0dhekgxOB/Ib5bilfAzszVkKmxfwiUFlSSF7kiLmE014P/PDA1QJZ6
         aiC0cVsWMZ05PuWEhLwPyOhG/8YWTXaiYsYUdB8EteMw+qWOm3VzDP37vOurQKNwuy45
         QUaXlLWxUS6rtbR4SyP8GfikV/Z2Dis+wc5gWPpsBVJtnzzjIM2C5ZdSjB6WLLznTlK/
         J+HVHqNOwJihksa2YOxJFqbQqJlkwXLozrpOEYzog/AN+zEfQ6s+4rRwExB2QMUEch+E
         q1NA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=JUX6vHTa7p0Sfwz+CeidZwv32/WawPrRTHCpIPs0Gdc=;
        fh=zL8KVAj6rSaYbk/102rEWeOa69wm5cw+i9nXMzeM8z8=;
        b=VcxvFykSeKMh428DFLWUPtDRfjZLT/VIYvSLXdWHl0bDocDI6WcAMOIHuEZn1ckF1d
         NWzJBJroYQfAZdS8Un+/m/mQR3lZLb7tgKZmcW9USR11uAtr3a/ZsLKbPn10wS0He0uN
         IOvHsTwjqJZ8UPp4KbXgBvDVXIfNyHF5GCDuhQIJBdfq2SiRgEr4G7HVmTjUs8GVDjqg
         7mHvhV/tb72ABjDBC6BxnGoie0nUvHTcO5JB3bfGrwkSSPSJibLYQ3uXONX/Pm0Cki2i
         k5TnR3yAL/gAAZsUa9ljLxIbXUXBLUlAbFKLEXOEZ4zwnoBicePx9EwDvcvgUCX+m0st
         j1Jw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779444839; x=1780049639; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JUX6vHTa7p0Sfwz+CeidZwv32/WawPrRTHCpIPs0Gdc=;
        b=LPIeRfwNH1X6nF+0631fonW5AZZahlbS5Fxs/uJwp7iYYvo7TzesuuENHud3D1f4uc
         RpTTR+bjeX+eEQvmd5gl36GfhGjY2/dE9fHhfhuRWsL6j1dWemR/uF68l55CabJUSSF6
         thuCGS5H1Fk3UcL7mtqEbd1VCbLV2/4rSM4Pq6Hoq75OEdbPOFx/9w2jmUpWHwlJIuTX
         pshDHH/4VAS38S4SbvhnVwNT2rCxiw5H0sPxfYFJ0CV6T+YcQxKsM+yluPDrCwMJsSIk
         FCRjoDQJOBlbE8Q8TCMdARpFEJlvycx6ULezP4MnCX8jn6Cgd5j8Q0Mey9Rhtc+q3Xq7
         Hw4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779444839; x=1780049639;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=JUX6vHTa7p0Sfwz+CeidZwv32/WawPrRTHCpIPs0Gdc=;
        b=HaqIb5UXBK8zqSCOO5jUD/144LrUjbCjTNwuZH9Nz+7bcK23jThlJ2AuO/0IQsFS61
         Ia9AZ/BjI3iuluoFyBai4f17q3oI+ZPYKMnYJgk/xvjLr7zgash6raKdFfVV+K0bPmbp
         mQvexRwLgNcLUW32W83ONhcqCGOLKKtqzzbUy4smXmFE5295oWvxDHjBRT3TvhIr/I8T
         +sgFtgsqb+LWGJ+JKAzHDNV5CwYk8U6b7GjtQ0UQEYO26zlcLJPWlrnuFtltIrFBSP7l
         LL9o8TTVsIdF0RY88/LGjbFBoDCywxzLwNsgb345U4lDIRAH8NDIwP/W1FDcVln6nwsH
         QMXg==
X-Gm-Message-State: AOJu0YxlrE39Am7qqARHn2zSAAE8iPTJxsyNNxyF1EWHWr+yBrSg4zDP
	6n4Pg8MHG80IqjQjRjWVNCbbAkocGGorIC4MYMu9CQ39KC6bV1LcbTVMaLlVfWKmPtNsq39tbOX
	1bVtWnDPHI6GXCShGjRHSm29UgvISaek=
X-Gm-Gg: Acq92OHCXOV7+WpU+9RsxUJ4mZ1VAKDolIvjZiVd43JVdPf7Q1OnRArmAXJJedh6ggA
	nQL9e20kyUVv32S977e6FSvB2TuPzTp1wvyubqbDzlfS27mck+LXuV0j3EOMJJGzbKd5twh3jem
	tqfkVyMW0i/DR+aBSWJRpn+UFjBCWTcFbzSQluLbjzpqPFClT7u2SguSP5QgKdRtcUxhHvgnYUl
	0iEK7Mrw9y6AzZ4/v0f4QcjZy8mOp7wpvw0tsFvuXvhXvPJJ9y3rcSXKq8KRAYaEbZRhCsM4eoY
	zMNV1lDPeeJTBrY=
X-Received: by 2002:a2e:be2c:0:b0:393:bffa:d815 with SMTP id
 38308e7fff4ca-395d8d3c6f4mr8774721fa.21.1779444838764; Fri, 22 May 2026
 03:13:58 -0700 (PDT)
MIME-Version: 1.0
References: <998162706f89bb3100bda409d8fde3c8b143eae6.1777886129.git.mykola_kvach@epam.com>
 <6ebccf8b-c90f-4dca-acf3-ea9cc0dd97f9@amd.com>
In-Reply-To: <6ebccf8b-c90f-4dca-acf3-ea9cc0dd97f9@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 22 May 2026 13:13:47 +0300
X-Gm-Features: AVHnY4JTY5oRYwLyLX9db7cgfHvfqQZA12KjiW4RrfsCgewum5DgEcTugvUwajg
Message-ID: <CAGeoDV8e1=hqR1VC51ouzFhy125FMtasNB6kLG_g6fJ3GTuLAg@mail.gmail.com>
Subject: Re: [PATCH] xen/arm: scan CLIDR Ctype fields upwards when probing LLC
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-720697/1779444839-83F66161-DA40A2A9/0/0
X-purgate-type: clean
X-purgate-size: 4039

Hi Michal,

Thank you for the feedback.

On Fri, May 22, 2026 at 9:41=E2=80=AFAM Orzel, Michal <michal.orzel@amd.com=
> wrote:
>
>
>
> On 04-May-26 11:19, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > get_llc_way_size() currently scans CLIDR_EL1 Ctype fields from the
> > highest level downwards and stops at the first unified cache it finds.
> >
> > However, CLIDR_EL1 describes the cache hierarchy from Ctype1 upwards.
> > Arm ARM DDI 0487J.a, D19.2.27 says that once software has seen a
> > Ctype value of 0b000 while reading from Ctype1 upwards, no caches
> > manageable by the architected set/way maintenance instructions exist at
> > further-out levels, and the higher Ctype fields must be ignored.
> >
> > The current reverse scan can therefore select a unified cache level fro=
m
> > a Ctype field above the first no-cache level. Such a field is not part =
of
> > the architecturally described CLIDR/CCSIDR cache hierarchy and should n=
ot
> > be used for selecting the CCSIDR level.
> >
> > Scan Ctype fields from L1 upwards, stop at the first no-cache level, an=
d
> > keep the outermost unified cache observed before that point.
> >
> > This preserves the result for regular cache hierarchies, while avoiding
> > selection of an architecturally ignored Ctype field.
> >
> > Fixes: f4985fce6f0b ("xen/arm: add initial support for LLC coloring on =
arm64")
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > This patch follows the xen-devel discussion:
> > https://lists.xenproject.org/archives/html/xen-devel/2026-01/msg00345.h=
tml
> >
> > In that thread, Michal noted that the reverse scan was a simplification
> > rather than an intentional requirement, and that changing the
> > implementation would be fine.
> >
> > Testing performed:
> > - standalone synthetic CLIDR tests covered both regular and pathologica=
l
> >   Ctype sequences and showed that the forward scan ignores unified cach=
e
> >   levels above the first Ctype =3D=3D 0b000 while the reverse scan can =
pick
> >   them
> > - Renesas H3ULCB booted with llc-coloring=3Don
> > ---
> >  xen/arch/arm/llc-coloring.c | 22 +++++++++++++++++-----
> >  1 file changed, 17 insertions(+), 5 deletions(-)
> >
> > diff --git a/xen/arch/arm/llc-coloring.c b/xen/arch/arm/llc-coloring.c
> > index 6f78817c57..3783f4c824 100644
> > --- a/xen/arch/arm/llc-coloring.c
> > +++ b/xen/arch/arm/llc-coloring.c
> > @@ -22,21 +22,33 @@ unsigned int __init get_llc_way_size(void)
> >      register_t id_aa64mmfr2_el1 =3D READ_SYSREG(ID_AA64MMFR2_EL1);
> >      uint32_t ccsidr_numsets_shift =3D CCSIDR_NUMSETS_SHIFT;
> >      uint32_t ccsidr_numsets_mask =3D CCSIDR_NUMSETS_MASK;
> > -    unsigned int n, line_size, num_sets;
> > -
> > -    for ( n =3D CLIDR_CTYPEn_LEVELS; n !=3D 0; n-- )
> > +    unsigned int n, line_size, num_sets, llc_level =3D 0;
> > +
> > +    /*
> > +     * CLIDR_EL1 Ctype fields are interpreted from Ctype1 upwards. Onc=
e a
> > +     * no-cache level is seen, higher Ctype fields are architecturally=
 ignored
> > +     * for the CLIDR/CCSIDR set/way manageable cache hierarchy.
> > +     *
> > +     * Keep the outermost unified cache before that point.
> > +     */
> > +    for ( n =3D 1; n <=3D CLIDR_CTYPEn_LEVELS; n++ )
> >      {
> >          uint8_t ctype_n =3D (clidr_el1 >> CLIDR_CTYPEn_SHIFT(n)) &
> >                             CLIDR_CTYPEn_MASK;
> >
> > +        if ( ctype_n =3D=3D 0b000 )
> > +            break;
> > +
> >          /* Unified cache (see Arm ARM DDI 0487J.a D19.2.27) */
> >          if ( ctype_n =3D=3D 0b100 )
> > -            break;
> > +            llc_level =3D n;
> >      }
> >
> > -    if ( n =3D=3D 0 )
> > +    if ( !llc_level )
> >          return 0;
> >
> > +    n =3D llc_level;
> After a loop, n does not carry any meaning, so I find this assignment a b=
it odd
> and confusing to read. Just use llc_level below. With that:

Ack.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Fri May 22 10:20:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 10:20:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316557.1585928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQMzJ-0002YN-OB; Fri, 22 May 2026 10:20:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316557.1585928; Fri, 22 May 2026 10:20:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQMzJ-0002YG-LA; Fri, 22 May 2026 10:20:17 +0000
Received: by outflank-mailman (input) for mailman id 1316557;
 Fri, 22 May 2026 10:20:16 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wQMzI-0002YA-DM
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 10:20:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQMzH-0061aW-KM
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:20:15 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a102dd4-2eae-0a2a0a5409dd-0a2a4506d84a-40
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:20:15 +0200
Received: from [52.101.62.13]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a102ddb-7371-0a2a45060019-34653e0de39b-4
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:20:13 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB6614.namprd03.prod.outlook.com (2603:10b6:a03:38a::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 10:20:05 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.016; Fri, 22 May 2026
 10:20:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZRvZuymOzuizy3NKMJTmhNsG/XXIOW4vxOjfVVBdeLYAacUgWjEsdVMbFQJBCeB/zQLpXsrzC7tq3lU7TLpKNRAKJ1GtaJA8eTAD201Hrj6176KXtOS+hENGsUPRZvuOxqEsMNokCNe5A3qIPbDWruIACGZrOH8UjAlFug9hajth+bkUqAbDZAUZz/qjOJjXrLt7G6o9evB1E/tHDDAYr5ujPXN0ykPiAsL6TKJOB0P8eTW4TvYhEm8syqR4XO4T/eDnRBQiLRj8NQXABpsvQm8tGnTkCLkuFaglgtwQ2fY3tn51R5sVYrF7rUQSVU8fptzbY63VVR6aTUnDyH3uJQ==
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=T4Z5ZTTDJlRsvZDCAMq4Vzo1JTnNk3MS3KO2phOkyiw=;
 b=EaxzAHeyX5SrgJT9MhbGULeua+dgjqaLbOI3QnsVxBBZQL568kZpVDc0fQX/SLiHFKlTZGjw5FRSz4je0PbmANGQ/SdmL48fOQBQuUAOUpB3FEZ7dCFKWvOaGusG2KRcKlykyyLV4kcR//VFe+tfRr4wDNUrVwihLbUNrSmpYzHjdE+ey6VWgsQw65MhRh9X4CqSCO97xSGSsmyusXA3xyyLi8vpUFALjNvWxvF2owa//aomhMXO33sNSqVe7JlMJ8FEkliqoFH+3s5wF0mGjkyA+FzhsVjAYOVIzBZDPA5RDVZ/BTn8SA/RpNAprmWQas6kcn9yiAAL9w3Ek4CCuQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=T4Z5ZTTDJlRsvZDCAMq4Vzo1JTnNk3MS3KO2phOkyiw=;
 b=zmbrR4ubE3Fqc87nK+sS/gsq6dlwTRS6EK/04lDIWKZgl3K6qs43Hfvadx9LZd1fcsLPETd6D79ii6bI/dkUUT2m736l56EIig2V0Yg6bAAK/H4msXE45XqgbOBkCNNdIQfuEJLKZmMW5TWRGuXZZKffsIXp+OLu3Ybfc65jXUE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <00d987d3-6a9c-440e-beb8-6587a3fd1d9b@citrix.com>
Date: Fri, 22 May 2026 11:20:02 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v1] automation: edit rules for analyze jobs
To: Victor Lira <victorm.lira@amd.com>, xen-devel@lists.xenproject.org
References: <20260520225820.31550-1-victorm.lira@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20260520225820.31550-1-victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0433.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a9::6) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ0PR03MB6614:EE_
X-MS-Office365-Filtering-Correlation-Id: 53ef9f1a-42d5-42e0-d6cf-08deb7ebb16c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|6133799003|11063799006|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	12rZNECHG/NRedEb5KR+dzJLakVlTjzC8DY1vcN4Ur6PySSXcYMNXj4s6bDcjny7PVfbmErPmarb59EKRRtTT/4Fp3cEBS5fX7cSM3PAb0b3avlt64J/5yr4ufno9oaFF2wXostZ2OhZgebw1hzP8L2kle623NoIgkmSJixQEXCa04OoqRtfEM7zE/31dL3OlK60KHzoGGpbbceBkdBv0CTY49KtbjDJ1oDdj1FHwyZqc3jcIMhNI1bJL7ufx/DH7oEGwW7rpUYRe08WX/6BzBSh+D82C/10FaYJ8JT/7SjCYwM2C1teyFhPKlm9pVUYTbjegLCKPUQe+dhwWlkfjZYhJxfaVbsrY8DtKUn5x5l6i1rqCYYtbYi6Tr7ZGXwrfUe3TWa6OPM6D/5AshUzGUaLRFh4g0L4V9Z4Qrkkz5p7Tb7Ir+kwemm8i/hmLmOr98zfL5HNxprGhynp4ELcng1UX/Y6620Ohggwl+P34RbcVpn6EoGxkd4c01mioPrgCDeTIubwSLxe4FEFc/yJ82++2e/IeD9+oCV4xtx7T7dWquFxnhEqqfLbayDHFvru0Yp72GtCe5D7YIqe/iagBI10k/xaYmt80xE8JTWtmjPoNa6Y+j9l2XWPSXkAuH/pud5e0V97+qPCJugciS4bbjBlUHgAesBpBexeK0IW1erFRDMaLdqQFWzliJLP6RqAYYPn0r744pRszRDXVIWHDQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(6133799003)(11063799006)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SHN5SEh2WUl6OW1YK01iZVFYZ25TV002NTRtNXF5VWlveFRkeDMyL3dCT2VU?=
 =?utf-8?B?WVZrUlo2MVNrNldoWS8rOWxaV1EydUV3QVRMaFhpeERmRSs4cXZmcjlaL1lW?=
 =?utf-8?B?aGs2Q2srTGVjWklkcllYSTlqUUUrYzZpUkFBNU5zS01kUUo1QXF4Vkp3VVdh?=
 =?utf-8?B?Vmd5VDNlbzQwQlUyK1EyeFNxUjdRajdmdzR5UzRUL1IvM0pOelVUK1V3dDk4?=
 =?utf-8?B?dlUyV2srWURRM3lyNUx6RVhCUGM4R3FmUUxURGNJenRndW5mbEM1bFFLcDV2?=
 =?utf-8?B?ekg3dWJpYWcrMG0rVnozdVRoVXNUcTcxdlhRZWw5THdtWWRkNnV1a0M0dkNk?=
 =?utf-8?B?REY1bGU5MzE4cElqY2VUdlg3Ny9UUW4vV1FPN0lQU2Z2aFZvRStTSXRBVzRp?=
 =?utf-8?B?dVFYZjQvWlpucUNqVW5raEplUCtOMk9jcHQ0QWRnNHR3YVRCeTlGN2plUVhS?=
 =?utf-8?B?dDZLRWFRUGpKNTF5UTdaSEVWTkoza2VReUZEL2RCVHo3NzRJQzdkNU5lTGVP?=
 =?utf-8?B?U2h5RGthYnNCSnpVSFFtT1VBaDM3ZEFyL0tLeklMcU1HZE5oWEdqZ0hxSkFX?=
 =?utf-8?B?U0UyWXNTM3N6b3BjMkVWYjhXTVNXYXJ0ZkFUbW1yVVowL0MvVjVEanJ4aHZ3?=
 =?utf-8?B?NTdaRkc3R2prajNsYy9zeXpUWFgxQ0ord3YzWGlQMWgyZDdGREphaGlxb2pr?=
 =?utf-8?B?a2ZlOTJuT0JkT2ttUFNuLytPNTBScFdZMlFWSkhrc1dBcjNEWmFLUkVvMVFU?=
 =?utf-8?B?aDNxL2doYnVyS2xnZks5bVVHNkViQXNHdVFieHJIZ0dPL1B1L3lpUjMxQXBB?=
 =?utf-8?B?TkRxN3VjZlJSWU8wMWx5dU1aQlVRN0hXWmVlKzVtczkyaWI5Qy95d0Y4Z3M4?=
 =?utf-8?B?T1lFSE4vWFRORnNKVTgydlJFWWJrNDl2amR0LzlCemFZalFSaHNibUlSaGhO?=
 =?utf-8?B?V0RTQ1BTS1dqeUVuQzB5dytMR3dIdlgyZ2R1Z2hPWGUzU1lUTlRMMHhXRHdQ?=
 =?utf-8?B?eGRpOVdnTUtCaGxaeW5teTNsTnpJNnZzMTFMeXpMVURmbW5lR0N4K2l3MDhQ?=
 =?utf-8?B?SXBtckMxaDV5UTRpM1d3SzdvbEc3SDNaN2dCL2p2bmhJVUpYSC9IOXowVk1H?=
 =?utf-8?B?MUdrQlZwaGpSS2xWWGExRFRkYmVOTkpLbWd5SmNsTndMaEVOZ2RxR25MMWJn?=
 =?utf-8?B?YysyVkJzQmdCb1V4SUNmamVNanRBQTQrSE0xMVNoOVc0aWFSMU9FUnAzOEIz?=
 =?utf-8?B?cGF4TG5YZk5MOHFCSVRsdkxQZTVkNDJyYjdHMGlVR1pBWEVpVGEvZGx3dHYr?=
 =?utf-8?B?WVJPYXh1MW1qMHQxS3R6K3ZlNGRoaFRMTnJ1ZGhUK3pEN3VaRFRRS0I3N0gz?=
 =?utf-8?B?VXRxbGptRVZKcnZ0OUhReFJrMTZjeHJWSEIreGpqeVdOT21jVmhzOVVhUFln?=
 =?utf-8?B?aDNoQWhmOVcvd2N3NkVubTJwR1hQUjdKajRIUG9DV29hZTZhRDAwWEFoWDd1?=
 =?utf-8?B?VVRDNExvWVRLUlFIR3lwTXlUNmRHL3FjREVhb2lmb1llRllBdWxEOVdRa1F5?=
 =?utf-8?B?NlZNVTg3cmpObWRkbkU3QTg2WElrVUdQUjJ2WGVyT1ZxdUtudVVXY3RIVVd0?=
 =?utf-8?B?V0VjRHdOTTNGcThiWnBmSjBvR21mMUQ4VDRRNm4yNFZjTlpiTkJaekJuemJG?=
 =?utf-8?B?Tm5kanYzS2V3NGVhOTZVYVNnTnNONjB1OEhrZkJ3cllhOElNT1ZtdUczWnBw?=
 =?utf-8?B?ZDgxSDFTTG5qRVBPUTgyT1IzdmIrb2FjVmdDRGcrQUxBOGVCVk1PL1BtVjR3?=
 =?utf-8?B?bmVxY3VJVnlRUnBWakJzcVB6aDJZWXZGYW9PRzdTV2FBTnpteFpYUzQ0WmJW?=
 =?utf-8?B?bWlwdVphVEdRblF6azRCRnFWdW1MekRMKytIQ0g3ZkQ0bEdWTUtqWnJXOWM4?=
 =?utf-8?B?bDVSY2xPWjM3Q1pKcGhWZ21LeSszWTNnUVMrOHV4azFtQ1NXcFNMckNSNEwz?=
 =?utf-8?B?d1FLQUlNRnZjZjRVcHk2aGQ2WVBJNVRWZ3dsWmJaVEw5UGE4UG5ZVXQya3BL?=
 =?utf-8?B?d0FRZkZObUpUZVNQdktiVmYvQXMvRjBTb2xYNkFocCs3eXZweVZ0OTRnRmJH?=
 =?utf-8?B?SFBQMTJCY0VVcFNFVWVEeFZkUUN5ZmZPdHl0OTNMck1JaXA1Vkt0NGhyL0Qx?=
 =?utf-8?B?TnlPU2RjZys1czhNUzI5T21sNUluR1ptK3QxNjROVWRJekxBY0FDdHlBYkx2?=
 =?utf-8?B?UWl0TlNzRTNJSCtKdTZlS2xsbXp3TWQxamkwNFhIUm5wUHozU3hFbWNqM1lz?=
 =?utf-8?B?UkgycU9vaE1uNVJxL2dJRzNxMllLWmxrNEY0bGJXR1JYQUJIdDVFMnFPTTFM?=
 =?utf-8?Q?//VMHVDKiGcLNaGU=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 53ef9f1a-42d5-42e0-d6cf-08deb7ebb16c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 10:20:05.5766
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: U8hEYU8klWBTV6x0e6GJXmuhWwVHrbtlNiu2J58WYW1W8t4T+7VxpxMK5y8uhbE0DcLJqEdrLjJAjyjLq0DCvdm35tTKTXlhVuuqWoBjB0E=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6614
X-purgate-ID: tlsNG-16d1c6/1779445213-8DF81D75-6F34DDF9/0/0
X-purgate-type: clean
X-purgate-size: 1835

On 20/05/2026 11:58 pm, Victor Lira wrote:
> rewrite analyze jobs rules to simplify the conditions under which the
> jobs appear and run
>
> after these changes:
>  - to appear, all jobs must be selected (SELECTED_JOBS_ONLY), have token
>    (WTOKEN), and be in an allowed path (CI_PROJECT_PATH), this is specified in
>    .eclair-analysis
>  - the subcategories have their own exceptions, keeping current behavior:
>    - ECLAIR_SAFETY/ECLAIR_TESTING can force enable some
>    - eclair-testing jobs will not appear outside xen-project/people
>
> This assumes we don't use pipeline sources other than push/api/schedule.
>
> Signed-off-by: Victor Lira <victorm.lira@amd.com>
> ---
> this preseves the current behavior of the -testing jobs running anywhere on
> xen-project/people but maybe we want to limit it to whoever is doing the
> testing, or in some other way
>
> tested on my own repo xen-project/people/victormlira/xen
>
> push https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541858231
> push /eclair-x86_64-amd$|alpine-3.18-gcc$/ https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541859057
> push /alpine-3.18-gcc$/ https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541859605
> schedule https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541871689
> schedule /eclair-x86_64-amd$|alpine-3.18-gcc$/ https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541875599
> schudule /alpine-3.18-gcc$/ https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541876512

I'm afraid this still doesn't work.

I pushed with ci.variable=SELECTED_JOBS_ONLY="/eclair-x86_64-allcode/"
and still got the eclair-*-amd jobs started.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2545988798

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri May 22 10:24:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 10:24:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316567.1585945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQN33-0003Gl-9e; Fri, 22 May 2026 10:24:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316567.1585945; Fri, 22 May 2026 10:24:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQN33-0003Ge-6z; Fri, 22 May 2026 10:24:09 +0000
Received: by outflank-mailman (input) for mailman id 1316567;
 Fri, 22 May 2026 10:24:08 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wQN32-0003GY-CC
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 10:24:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQN31-006Rsr-I5
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:24:07 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a102ec1-e002-0a2a0a5209dd-0a2a4502d582-26
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:24:07 +0200
Received: from [40.107.201.33]
 (helo=CH4PR04CU002.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a102ec5-af86-0a2a45020019-286bc921b7b4-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:24:06 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH8PR03MB8225.namprd03.prod.outlook.com (2603:10b6:610:2c3::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 10:24:04 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.21.0048.016; Fri, 22 May 2026
 10:24:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AhgMmCP5Qv0fqNSVoHabiKqs7UuLKub3OJmjacP0Vbj7z31AOx78CVBGSglcG3PaLAO5Pttmg/DbcRQV6fEaG7nTXDrSGAEEnlXL2aLX9sfJfFO7HxUmrUb/3fSpQQojCp6l85lSwgXWPkO/JR+TwmaQWruCPUeXPqV2nPFio1HX7mnKNuQwTL3XPAaTUPIeuXVWvFq/SLRIsQSka/kHqDF3v4dVdOFPgO4ByBqz39TgbJRWnMd9sToFhs4Uf4K01sMvWxE4NuYTykAdunKxoMEaBr1eoySxSBMqqyG4xCOwxe/S2pftaM5RuMJg3OI83evZGMNBhwG96k88F5iATg==
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=kDjxz7Uh0bEn7RrIjWauvVOuI4TTMgRfhG9fGDNH37s=;
 b=Qia8ExJS9JVEp1onw6Nhk2VYkFo619yUDJq/AfbqArMpJbIm1F/KW64AMPQiGM8WgXJ69qumsB+8lWilVVDfHJ5CWSbBVUOWIYznzriVd+Nl4NUPA8S6exaySjshrDniGekK+DMvXhlcCZD14ZxoJtyw6eHOudZE/c8U4MWlfn0gf9u2DLEx0pGYCcKpLAEpgmeOkGUquzybyPdKWno/4CNsFy9zSAmhjKVd0KwnMQYrJuwSnq0IcWSEU/SzXVoK1Ju5AqVEfnWdSFu0ywqDApM1AXTpGDvkvmXvxCyfXqJBFy/FhzXv02s+Uu54jr3B4WGd27sD077D/5Y5WhtoRA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kDjxz7Uh0bEn7RrIjWauvVOuI4TTMgRfhG9fGDNH37s=;
 b=i6DsON+TSbVkA8a2mBLHYm2K/2z4rV3VkC3I43dPhhmg0z4JVSr3+vmAWDbBkCpy8hFd6bqL2UilAIrJRKgnh3sMYev2upvF2l7aeIZqCL3Eu1Wk4vq5WBdx3c097mGpqTLZubZUONkdr9dWk8IBgdxwVRxuSw5gV0TdjvnBws8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 22 May 2026 12:24:00 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 2/5] x86/PV: rename a local variable in
 pv_emulate_gate_op()
Message-ID: <ahAuwEqst5aCJSj2@macbook.local>
References: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
 <871c0ca7-898f-4bc6-8115-d94d40b88301@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <871c0ca7-898f-4bc6-8115-d94d40b88301@suse.com>
X-ClientProxiedBy: MR1P264CA0021.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2f::8) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH8PR03MB8225:EE_
X-MS-Office365-Filtering-Correlation-Id: 0b5e9c06-aa6f-4856-258b-08deb7ec3fba
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|22082099003|18002099003|56012099003|11063799006|4143699003;
X-Microsoft-Antispam-Message-Info:
	IQVnoPVimiCEEM2uH5ESJR+CX8jx2B+9JMfn4N4pBNyEHFGy7YL0yWqqOCaVgz+S6RCF7Q+Sc+e5L0h/lzez1KcMZjWvW2rGByV4cJIhgt779ymFa9PhA7VNE/PXyEgxBd1J3azDMGiiKKBHuCDKbdZ6bc4pCGb8b/ZRjXeqB4OyrDDRc3cioaMyFnPbhck8IOZU4zaJsB+m2JcTa6k4b71ajy87t1hPhrozR9Qgj3NR/j3fqtocmlUs858rmBGXyHojaSg3NC2REQGN2vPa+G4mX1PbR41rHQcAYMWxFLD5a4uW5UddwJ4vo3cuP66h+hZ4VpPp4DgPZ7Kbd3NJu0NNEPP8fVRWEG/7Ld9/DZeyQgDHbaDaHsghdsih2n24YfVz3q+96oHPOamWFUnCbQmJFmvzD+14NplgLqh3t4AXUsOCSL4GjgQHr6qVrEux6AtdmmkE/KUc4+Kyo822wNKT/M2V2oc9jQ0pE/2O5ytqDkUapJQNWOFopDZpUgUXwKp6KnyJSzM92uYl4HdMJ1G1lDlYMQRbhUTnBsnh+3xxksy0/ZZBodOvC1sKa//zCrR51ZSb1ShJ7XKDZeXfR/2EeGegstDfmTK1JfBSIKz4RVmzNqz6yaf56JTbSK032HDoOkbIn3JRE2dNrw4LHy3vh0oVVfcb83BruC1Lu9POhu4uA2GQq8Ld7P/jyyfR
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(18002099003)(56012099003)(11063799006)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VkZsclJoTE1nZW9pbjhMWlVxMkdwZ1N6b0xDUUNPL3FicFN1TUtYcTdyR1F1?=
 =?utf-8?B?OVNOT3oySzZXVjFpVlRGaXJ3VDFYbzVDTnNBZHUwOHd0K252VndWdFF1OGpj?=
 =?utf-8?B?WmZzLzMvN3RaRGVrOFJrWEJ6NmlTdU5WQUhDMis0RUNIOVlKOUZuRU5BRC9Z?=
 =?utf-8?B?MUJoT2Q1ajdmcmI1YVRmcnlwSTA5aVVzRk02VXNGZmVBTjR1SnpsWFJWbkZK?=
 =?utf-8?B?U01maWRMMnU1TG5JSlVUNUptSUlNK3hrZk5CbENVNmJMMUhGZTVtS2ZoR1lv?=
 =?utf-8?B?Nm53aTVzWTc1ZTExZ0pmTm1COVlxVzlFVTJVdXh1dHJUTXRyQStkWTJVR3Ja?=
 =?utf-8?B?b29la3l0ZkprdCtWdmZqV3QvaWZxWDJncC9rNkw0NUFoSkczcmgyUjhSOTdW?=
 =?utf-8?B?M2hXbUZDeUhhQkN3RUNlL3lWZVpsL0I5SUt1cldaTlBnMUxkeEtmcmg3MlND?=
 =?utf-8?B?L3Z5TjJ4M2t6N2NQTmowTjhxNjc4UHJmeHRMN0NkSVdzcjJCaFh5azZ5cWJx?=
 =?utf-8?B?V09mYnBwS3JCS1lUOUVpVFROUzZNVnFKVE80eVhwSjA3NkFranBxbDRtSFB0?=
 =?utf-8?B?aHFIc1lSaTYzN0tFczZIcERjMmNkWVVMdEpKWE56N201SGhVc0dRV1hWaFY3?=
 =?utf-8?B?d2JGN3pQRG1NOC8zUUN2V2pMNUVKVzB1dVRyeVVDZkRwdFlyQzFVckorVGc4?=
 =?utf-8?B?MVdzelVNS1hIMHU4ZHlNMFFsemlCSm95aU93VGZPNzVJaHpVMkhCcVp5NFVr?=
 =?utf-8?B?dTJLcjRCRVhZTkVoaDhtRUY2Rm9PbUUweFpmL3hJWXRxNnJCempoNDh6SWMy?=
 =?utf-8?B?QXZHdFkrM3U5dlZTZHY1ZHdKVjdMT0QrNS9nVHZuQ1ZNYlFaVnNWNjJtVUVD?=
 =?utf-8?B?RmZuYXk3czR5aEQ4UmZtS0VqcHdOZHlsbXpVcWxwRkFVZFI2TmlhYWZOUlJj?=
 =?utf-8?B?bklqZ0M0RCtHcHU1azJjbk93dlRaRDlUZXZaUE9oMnBnZUFvM3NsNzhDekh5?=
 =?utf-8?B?UFRycytESHhqaDIxVlpsQThpZmFDcTlSak1sbzZMaHVaWkdKQnY5YytURTVC?=
 =?utf-8?B?YkNqSXZqQVNGYjh0N21WdXh6dlUxTzltNkFBcG9lREpyNk1JV2c2ektjYlMy?=
 =?utf-8?B?aWxJaUdBdFNuMFNvZlBQRTV0TlpVMHBMYk5TZTFTeGN2YUpzOXVHZk1QbVdC?=
 =?utf-8?B?ZE1CWm1zeVo4cGtralFXSmxMcnZaSXRGZnRRaCtiNkJyb2Z2S2ZCd0pRMVcx?=
 =?utf-8?B?bHhpY3lvV3hSMWI1UTdRNk9NaVZvdDZ5RHptVVVYSXFoRlBaT3hHS0Zvc0lu?=
 =?utf-8?B?ZVN6THRld2kwdVVzdDNhQk1Xc0xpUnMwM2pYMVZGYnVIOSsrSC9sYjJZdnpV?=
 =?utf-8?B?WnFCRExlMjdRNXczUjV1ZWFlS0NhODNUZlNTN3RmSVBRbTYwQ0ZtM1FKd3Vz?=
 =?utf-8?B?WUVPRHRHU3F6bG90eUFYNmpmYnMydlpOaTBYeDdPckdiaVk5R3ZmQ3YzTDMx?=
 =?utf-8?B?TCtib2pNNnVnY2E3cjc2RmhWTURsVVRYd2phTzNNcEtoMlBLYzAwL0NpdXpq?=
 =?utf-8?B?aTNrR3JQOXFDSEE2N2ZwQW92RU5yQVBiTU1HMFFiRzRUQ3ViZk9HVW54VmhD?=
 =?utf-8?B?Y0tPejhBVG9EY0hjWmw5b1JybG5TcUJSSnNrQVpKUzlaMENaQmhsZUpUbkdJ?=
 =?utf-8?B?ZTRFdDM2REh2TnYvTzZHSWxJamhaWG4zVnVDN1daOEJwMk1NUlowakNnWko4?=
 =?utf-8?B?VS9kZnhFTE5ZVklTU0dhbkMxWWlDUlFERjhmM25pNklxTVNFUDVlRVl2d083?=
 =?utf-8?B?U0NPTXVuK28zM2x2YUJlQjdPa2hLeDBRbytSYmEyQVNRUmlQMTFVZjlrZHNm?=
 =?utf-8?B?NE9Jd1pQNUE4L3JTRUtZSWRrVVFRQ0hacm5NUkp1MTdTTWduaGNpaS9jZWFB?=
 =?utf-8?B?SHRNY2ZmNmFlWCt1MWlHWUx6VFl4WHVaMVZSaTJ4K0lVNktQc3kxaGVVc0xT?=
 =?utf-8?B?YjFDYTcwbm1nOVpNdGFuaHgrTGpKdVc0dEtLZXppdlkrTlJQM1VZZmhuRzBv?=
 =?utf-8?B?ZDNleHFPQ0hmNmUwaHNqTVFMM2xPRVA4eTc1OE44VWlaVGJ5b2VJQnU3YUFs?=
 =?utf-8?B?dTRwK3dsbmFFbG1KSFJuSGsycnpoMzBOTzNhN0orbEJ6ZGc3dE9sbVNZYURK?=
 =?utf-8?B?em5YUTlTMjFKaWhhbFYzalN4MlNYcXZZVWpTS0Z4Y1VuN2x4UnNON1JJaGY4?=
 =?utf-8?B?RHRiSG9sNFVqdGtwUy9xLzcvcVI0dkdtTnQxNzBva00xaWZwM2N4czNFd09G?=
 =?utf-8?B?eUVDL0YycEJqMjZ4NDJHWkoxNTFuaXcvMHJ0M2t4aXJTbkdBZzRnUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0b5e9c06-aa6f-4856-258b-08deb7ec3fba
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 10:24:04.4224
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Q9xzZDnTFNpCb0I0VzwAhUk0vcnSKVHLFxfBFhpfY48qhG/9Tj8EyiTpQ77t8xYDEDyTgeOMMVPLvIvMsy30qA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH8PR03MB8225
X-purgate-ID: tlsNG-720697/1779445447-83F66161-67B61E38/0/0
X-purgate-type: clean
X-purgate-size: 2020

On Wed, May 13, 2026 at 01:44:47PM +0200, Jan Beulich wrote:
> ... shadowing a function scope one, thus violating Misra C:2012 rule 5.3
> ("An identifier declared in an inner scope shall not hide an identifier
> declared in an outer scope"). No difference in generated code.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Technically, as the outer scope "rc" isn't used again later, we could
> simply drop the inner decl. That seemed more error prone to me, though.
> 
> --- a/xen/arch/x86/pv/emul-gate-op.c
> +++ b/xen/arch/x86/pv/emul-gate-op.c
> @@ -286,16 +286,16 @@ void pv_emulate_gate_op(struct cpu_user_
>      if ( !jump )
>      {
>          unsigned int ss, esp, *stkp;
> -        int rc;
> +        int left;
>  #define push(item) do \
>          { \
>              --stkp; \
>              esp -= 4; \
> -            rc = __put_guest(item, stkp); \
> -            if ( rc ) \
> +            left = __put_guest(item, stkp); \
> +            if ( left ) \
>              { \
>                  pv_inject_page_fault(PFEC_write_access, \
> -                                     (unsigned long)(stkp + 1) - rc); \
> +                                     (unsigned long)(stkp + 1) - left); \
>                  return; \
>              } \
>          } while ( 0 )
> @@ -359,10 +359,11 @@ void pv_emulate_gate_op(struct cpu_user_
>                      unsigned int parm;
>  
>                      --ustkp;
> -                    rc = __get_guest(parm, ustkp);
> -                    if ( rc )
> +                    left = __get_guest(parm, ustkp);
> +                    if ( left )
>                      {
> -                        pv_inject_page_fault(0, (unsigned long)(ustkp + 1) - rc);
> +                        pv_inject_page_fault(0,
> +                                             (unsigned long)(ustkp + 1) - left);

__{put,get}_guest() return -EFAULT on error, and hence the
addition/subtraction here is wrong AFAICT.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri May 22 10:25:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 10:25:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316575.1585954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQN4Z-0003qr-Lg; Fri, 22 May 2026 10:25:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316575.1585954; Fri, 22 May 2026 10:25:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQN4Z-0003qk-Iy; Fri, 22 May 2026 10:25:43 +0000
Received: by outflank-mailman (input) for mailman id 1316575;
 Fri, 22 May 2026 10:25:42 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wQN4X-0003qX-RU
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 10:25:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQN4X-006S5c-7n
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:25:41 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a102f18-bab6-0a2a0a5309dd-0a2a45078cf2-44
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:25:41 +0200
Received: from [40.107.209.64]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a102f23-229c-0a2a45070019-286bd1401e99-4
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:25:40 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB6614.namprd03.prod.outlook.com (2603:10b6:a03:38a::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 10:25:37 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.016; Fri, 22 May 2026
 10:25:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CHMb86up75FdqZgxLzokSUFuL+g/vIJwZSdsJCvxB/KJA1Ak1hUccRNb+hy+uE3/LsV28i/FDvDv05vL43s0nf8ZUf0jEjoRIVZBEGmJe176sUqBYPyGZqn6GC713qEJ+IaZRJspf6ycckSGKUNjqPLGstF3u/brB1NXunGKGFLgI3HmN7dq20dnRv47K78pIiGvX6tPdhBolRQ6NCAyR0tE6gmFHixcHD2fjcUggW1l0Eriz2/n4DBdgF6so5Q03F+DAVHK3xVRO9GxfCGUUZILulyo3hrAWGu0QO+tdF+smeUVSZqZQIMZqzvB1mt00dWsn6r7SwBEP5pd91rZyA==
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=iSsPDKOQW+Fk7TeKXJ7o9yMs45onMPWtV4NkbToDHCU=;
 b=FRnKHWQj6wPBJBbbfRCxZdmvC8/RPuhULEQhUrWiw6eNNGEOjL4hFDg9QoHH2ykMKK7UpVgAZEr7vy2qVIO/JNu/72y8Vb7IY2kKU/z2mfE1iXZxcQsnVz/DhlEhtQ9Av74WkchBK4Z3rm7Uh5YmoFR+yZCBaF0UH63pHAjEgFOcjaNUVCRGhbnHIokO5ukU/cHntGbwHPe5RShTmmZ6gfbgEw0rii/sRG0Gh6gzAISljZFcOZYhEYiHB3CVbRyjv9aIBqIF2RPuzuHOsQ21DYpb5f0mv15wVJr3Lywr2h2iDA6Dmw8aMoah3LRv5SJgckgedu8ekFn3J3cbuZt4sg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=iSsPDKOQW+Fk7TeKXJ7o9yMs45onMPWtV4NkbToDHCU=;
 b=G2uKcMo/ghQiwzsoyrcv5JUsUsWOljS+MSE2/lkCyaCGPFUtsExjDeWQctj0baqBUIdXFURIJmp5vQD4iAqwAMdsH9TvhPciKAwA1BdkO2K/hfXhUrGU5TlmuwUrxZThEWoWVJUzuMu2gCJxehFMVlYfvwzgmbIrnhwqhiN7QZQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <db7d3e72-160e-4842-8ece-ea7bc9e52b4b@citrix.com>
Date: Fri, 22 May 2026 11:25:33 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 2/5] x86/PV: rename a local variable in
 pv_emulate_gate_op()
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jan Beulich <jbeulich@suse.com>
References: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
 <871c0ca7-898f-4bc6-8115-d94d40b88301@suse.com>
 <ahAuwEqst5aCJSj2@macbook.local>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <ahAuwEqst5aCJSj2@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0317.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:390::18) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ0PR03MB6614:EE_
X-MS-Office365-Filtering-Correlation-Id: f3ea4c42-9d98-492d-e6c3-08deb7ec7726
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|11063799006|4143699003|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	o5NXjSNZ4HRSSyEGCPSDnZrSzYboEfkpaN59O0J1ZM8mlHj8m0JyBfXz2mz85e95ptWj2T+6YSOJ5bDt24pseQ1ZyOw1SCNAsJwAG6Gj8zyQoZnssZIuvL+8ccpzKQFb3hftFqvGWip/2FLGEdjycMjirF5DEB0URI7jlbKU7I5eSPtqIdCApHu80TiBLJ3Y/smOxdMtgbGVzy9Yo+eSozu7TFebit8zxaAM4XWhSkl6S/LZKQVUuBBVCq7uq8stAE0n+maKLmJj3isXLrjXafRn+K41BcHz7tG76I+tgDJJu6Jf9SyMElMDPNjsXYIsHgylLBh9sV84x8vWOLRR0H9om0441UlhESQOlnQL9b+wGpkl1FbTM6Mi9OuJlG8gq9IdF8riWAXmBF9PN4ygt6ak48JpTZZqIQ2remUwsmliHCoI9MkhTqwCDCTdEG9QTZPlQRnvU+/yhQXl0316CUJ8UIKhHlIwDK5JWsdM7Wi+SkXjGUt2NSHWt3/Ey/bxVNgGv46RXNvBKtvZnuWumFD8yIVcJmnWs3WwSHELHPO5sSCgpRON6ORH2iNO/Axm3e2EOW40otr0UsPVSydcryzsZQQncNbopLywY33keKA/hUjDfvNn7T2z2bLjxdBdyiC0II3+bS001QGYO0ey8F5YmyzfwlSFLSNNWCxNIcewARdkV5AyceskbU8ejzea
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(11063799006)(4143699003)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dHo3WHM2VGFLWGQ0akdMTGQ3V0VPd1oyYXRZSlJhZUp0T1FKMzBFVEZraEVD?=
 =?utf-8?B?RWZOdkgzRG9iajRFeUhLMmtRZk90R0pLUldIZk16ZDlaTjFPcXp3eG1OMHJv?=
 =?utf-8?B?dEowUTJ0Vk16NEtvdzBOSWpLNjNZV0pvcEhBS0VaZFQ5UnFiMGZpbUE4K3Fq?=
 =?utf-8?B?alhZb2VvWHM4Wm9oRTdONm9HaW40bEhXTEtXZytaNld2U01RMDFJdzlFM0hs?=
 =?utf-8?B?Zlp4L3FKU2Vrb1FqU1NJdEpHUlFjc0JqVGd1Wk9veW1QR1R2bHNNNWJjMlVQ?=
 =?utf-8?B?WSsxR25RdkpIWTkyNFNBQVBTRGhpWEQxZ0dvNjVEZktHNWxYQmFQZlh5dlVI?=
 =?utf-8?B?VHN5cXprZGhPUTNpSmE0OE1zZHVVb3FnQ05QNW93b0hkTEtiVXdvMzJFRlJ5?=
 =?utf-8?B?ZXF4Z3dYcU81ODIrQkEzWFdvN2I0aEZycDV5SU90YlhGNnh0bDZESkhGMkNy?=
 =?utf-8?B?RjdzNk5WbGkyclNURFNxWUxNZFAyZzllSVlCYUo3ZUIySTJTWnVhQlZRSEI2?=
 =?utf-8?B?Q1dwYit4ZzB1L0E1WjJjSWowVWRhUTBpOG8vWFI5cm9md0JJZ0EwTWtWZ3c4?=
 =?utf-8?B?WXNzL3RtZ05xZUJsVE0wb3lxY2NYMVRoWHZzdnZwNjF3Um1odzV0bXE1SEpn?=
 =?utf-8?B?UitnVUhVTzRXYmN0MlVUOEFXN3A4YnF3OU94My9CdUdsbGFmMlc3azhVMDJW?=
 =?utf-8?B?Z2t1QklnZFBtS1lTTHhqUnFvT2ZmczFYUGlUOUhrc2xFRFFINEduckpLbDlP?=
 =?utf-8?B?bWh2MzdKejhpVU9xZ052SlBYb0pCVndDSUJKd2tTenlFRHVxYjRZbWlvVXBo?=
 =?utf-8?B?eVNPeHIrWS80OTdxZ3czazMwL2gvK2QrKzFsM0UvckZzSWUzdElqZEJ6Ti95?=
 =?utf-8?B?YUVNN2ptZGZMeFdyTDAwcUVJOVhFaDViVEJFeWJiMmttZUtHQkZ0RFNZNE5H?=
 =?utf-8?B?L2ZObE51cjZ0QVlIcHBiM0RCamo4VVZjMnR5US9sQmpMRkhnMGpGZndNWk1L?=
 =?utf-8?B?SVIxSnlvMVRBUVVPeEc1d3dnY3E4MlBVNlhnZGc5RElncGVLamZSM2pTQlBK?=
 =?utf-8?B?NElocHIyTy9iWW9YZ0pQcVVObUtGeGhaR1N2VHdZMittdmJLd1gxRVNMRmxG?=
 =?utf-8?B?THE4SmlpUVBheGM1bnJzQ25SckIwUUtsS25DQ2k5ZnFaRDU2aktrdTVtUldp?=
 =?utf-8?B?ek05NmRZeWVoZTFVNEgrYjN5bkZMaXlMY05TWjVPWWZKdDBHN0VPZ3pBUlJM?=
 =?utf-8?B?QjgvVzFPc1BjN1l5cDROT2VyY0V6TW8zSkZXSjBib2NITE5RYXRiREY4Zk9N?=
 =?utf-8?B?L0ZwZGEvWDhUZWFXbnJNYXNkeXRTOVhHcEVWUVdOM0w4UVZ0ckFlSkhsbHEw?=
 =?utf-8?B?VHJ6aDZ2Z3ZTRjdROHhKUUVyU0lVSldJcStFNUF2WmlCYUFjRUdDS0g1M0R0?=
 =?utf-8?B?ZDdWdjdBQ3JYUjRQMjcvSklBMjd3WEUrNmo0MUpoSEhYNlBWZXIvQnhCMW1o?=
 =?utf-8?B?Z0ZYV0FIanpZZW1yT1k1V1AySWFuQ3ZCUUtJRjhqQ2xqb0JJd3h5dDdhMndm?=
 =?utf-8?B?MGZtS1RRY1ZnUitSVjlTVXRBcWV1SjhyZTBZOFJjWllEL0JiVWRhd3V1WHRw?=
 =?utf-8?B?SStuNUNRbGZDN01kek5ibFdMVDZOTEhzdG1IeWtLVy9PeWVUcElOYTVPc2JS?=
 =?utf-8?B?SjdyZEppMkpoS1dqd0huUGt4aVcrQnE2SStLOGx4SkJrbTV1TU5zdTJIbVdO?=
 =?utf-8?B?QUNrUzAvbUVCNkFzTnd4MGRDRlNSTStCMnJVQkIyYWZqNXlJNHJMVDI2TjJP?=
 =?utf-8?B?ZEt2a1JNL0dPNjNneDVyaTNaZzhUakd4VytCMFpYK0xpUHY5eVFwZ2VyNVNs?=
 =?utf-8?B?cHBlR1FnaFBSZFMzME1XWU9RSFEvai9QK2ZmY0FENU9FR2F1ZGdhU0MrZ25I?=
 =?utf-8?B?VEpqRnhlemlxRzNRNUN6SnFia3pzbThsSHQzWkkrRFpyckt4Um1xRjBJaFl0?=
 =?utf-8?B?cUdmaFB6YjZYNDMrSFNuNTY3eDJ0U0JaNGxGNFlrdjQxNHVQZlpXb21ZUHlu?=
 =?utf-8?B?dFhueTIxTGQybTFkT1hxMEtUd285ckZBM1ZlaU12Zy81d255WWU2VnZ1eUFy?=
 =?utf-8?B?WCtsSUhLVDZPNlE5ejMyYUVlYjdIektaajRSQ28xZjdRWUdrM3ZERlZrOHBo?=
 =?utf-8?B?bGhNM2E4RFdvb0hBN0JpZTFtdWVuMVhyT282RWFnZVR2UngvdE9HMGVaYlM4?=
 =?utf-8?B?MngwRThhallXd3d0UzdLUmRoREluVFQzRGNYZkJ5b2RmZ0lYWTJ3WGdUSkJC?=
 =?utf-8?B?aXNCeVcxVU5qY1hKcFYxVzllR1FWMlBISitRNXdYc0lrOTZOUHQxUXMwTnY3?=
 =?utf-8?Q?1dMVAbQlJO9jA7Rw=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f3ea4c42-9d98-492d-e6c3-08deb7ec7726
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 10:25:37.3011
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UhQO5M6RtMLM8+3LhXMjW4tvMB/AIIyC0a5gDs5B/TRA6BLOVrhWouH3WNjdzpU/p65UGLGU4Jiqr1/sqnyRQyun6NzD6kJWoSeP/i2L2dY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6614
X-purgate-ID: tlsNG-ef75cf/1779445541-20B60C48-DE0190E0/0/0
X-purgate-type: clean
X-purgate-size: 2193

On 22/05/2026 11:24 am, Roger Pau Monné wrote:
> On Wed, May 13, 2026 at 01:44:47PM +0200, Jan Beulich wrote:
>> ... shadowing a function scope one, thus violating Misra C:2012 rule 5.3
>> ("An identifier declared in an inner scope shall not hide an identifier
>> declared in an outer scope"). No difference in generated code.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Technically, as the outer scope "rc" isn't used again later, we could
>> simply drop the inner decl. That seemed more error prone to me, though.
>>
>> --- a/xen/arch/x86/pv/emul-gate-op.c
>> +++ b/xen/arch/x86/pv/emul-gate-op.c
>> @@ -286,16 +286,16 @@ void pv_emulate_gate_op(struct cpu_user_
>>      if ( !jump )
>>      {
>>          unsigned int ss, esp, *stkp;
>> -        int rc;
>> +        int left;
>>  #define push(item) do \
>>          { \
>>              --stkp; \
>>              esp -= 4; \
>> -            rc = __put_guest(item, stkp); \
>> -            if ( rc ) \
>> +            left = __put_guest(item, stkp); \
>> +            if ( left ) \
>>              { \
>>                  pv_inject_page_fault(PFEC_write_access, \
>> -                                     (unsigned long)(stkp + 1) - rc); \
>> +                                     (unsigned long)(stkp + 1) - left); \
>>                  return; \
>>              } \
>>          } while ( 0 )
>> @@ -359,10 +359,11 @@ void pv_emulate_gate_op(struct cpu_user_
>>                      unsigned int parm;
>>  
>>                      --ustkp;
>> -                    rc = __get_guest(parm, ustkp);
>> -                    if ( rc )
>> +                    left = __get_guest(parm, ustkp);
>> +                    if ( left )
>>                      {
>> -                        pv_inject_page_fault(0, (unsigned long)(ustkp + 1) - rc);
>> +                        pv_inject_page_fault(0,
>> +                                             (unsigned long)(ustkp + 1) - left);
> __{put,get}_guest() return -EFAULT on error, and hence the
> addition/subtraction here is wrong AFAICT.

Yes.  Teddy has a patch out to fix that, and this patch needs rebasing
over it.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri May 22 10:29:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 10:29:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316584.1585964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQN7o-0004sZ-3P; Fri, 22 May 2026 10:29:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316584.1585964; Fri, 22 May 2026 10:29:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQN7o-0004sS-09; Fri, 22 May 2026 10:29:04 +0000
Received: by outflank-mailman (input) for mailman id 1316584;
 Fri, 22 May 2026 10:29:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wQN7m-0004sK-1L
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 10:29:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQN7l-00AZea-8U
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:29:01 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a102feb-2eae-0a2a0a5409dd-0a2a450bbbc0-12
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:29:01 +0200
Received: from [40.93.194.28]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a102feb-212f-0a2a450b0019-285dc21cb658-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:29:00 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH3PR03MB7434.namprd03.prod.outlook.com (2603:10b6:610:1a3::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 10:28:56 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.21.0048.016; Fri, 22 May 2026
 10:28:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JseZLmoPjDjO14Z86dCqvLgcXu4w1SNdcd4NVY2ov9XaDftsMXQlkiYtwzsR7c7ZJPJO7P+D26evNe3KbtcKNYHKamZucl8sq2YV0ocoYz6k56eYnCSWT2bOmuFAf7HMoC8T56pTE66yo/AVIDFRHNk0TNRx4gn05rpgvrf7ao3w4zF20kuDUWwHARrcNe44Wgfr94GTUpmCZ34magbOwVUlsoYUiKyErLbK25dQZLt+Wq0hVKHjdjVw81VQ4M3/RSEvmt1fJSCWthj8g7v+fUJJTHOxDyMCKkQhEymqov+bkfGUOv48ohImo6BH0E0h5LxmMoUv4qJEe7uBEjcpHg==
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=txHzWCjSq5UHHy2rzvHtDkEJ9cKhg3LtUcdRkop9CD4=;
 b=OH+cdcauKaTFDEFA9j+ct9vdDed7UCpwX7NEfekeInPxSyY9CB5PkwQs4m1qs/ydreSgSC/1qOI5ggyZpfgVAuwIwaBL5rZ6y6h6jIJULErsYpXlser+Ta4vCfLlzFpUvaxX/nY35n5GDyf+1XBrfhWWbIsf0Zl7ct2SGGGN5KC7jFQQAMX8TEWEHxjBe8Y2p6pkz25r7Up4FD2gleTFPTRlKC8+z8jdQIekHrEscwBLZ4mRpaFqlOehBPfcwA9aNarEn6Zcy+Z2loVz7G60vl8PynSQARD6ySSnllnaza5mOY71tm8CFOc1w4ZQGt45rWP+OWKpMQb72okIy7Oy+g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=txHzWCjSq5UHHy2rzvHtDkEJ9cKhg3LtUcdRkop9CD4=;
 b=YzT044pq0c5tMqp1HRfyvkFz7mWKcpWJRLaDVgG6H6vcmYAkoVSFDhFqhKbrrvhIAMboLPX/XkQIHCezB6CQcmSOxCOlOWEeWiEdabk7PmDAFJdL3IG6tmHObwFbruzL4TvDQHsCNdBZ2c/JX32oeJ5voBAL4K21fky34cN91Cc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 22 May 2026 12:28:52 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 3/5] x86/shadow: conditionalize / rename local variables
Message-ID: <ahAv5C155Pd71mtv@macbook.local>
References: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
 <86b0f926-6733-48ca-90d5-5601e7c6f0bb@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <86b0f926-6733-48ca-90d5-5601e7c6f0bb@suse.com>
X-ClientProxiedBy: MR1P264CA0185.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:58::14) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH3PR03MB7434:EE_
X-MS-Office365-Filtering-Correlation-Id: 8ea73029-38a5-4498-a20a-08deb7ecede7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|11063799006|4143699003|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	WD1BhDzdtwqT01jmSsG5gQCcd1qSb8Ht4WZbIG75dKSCP9fhFd5z3W0gsrXKXedCVKWe0zommWTzsZTp/Sg7GebpHjlBzCGDUP11cnmfuObnM7aGGu/D5/dNoRzY75bCJ0TVT6jCPxCXXuEkiX8V6irwfw2FD9J2HR8jw0XNGVtJRVGgfv+GBtH6PABZqUVFj0yom08KG0mhOwSvviH7tI3QABS+DFbzmENpfikEcSlEe6wpgvO3cUIWrW4u2YrzuyKFvGnshhav/yKs/6h6vh66oP7cXIPQ37/dPP9+tBybhGrqYmIOgTKsSNzSy47CIeVO8Mmnfat3n9DE6FUhRdmTIarrF4jQzbdKf1usPQ3wUZHTrDjTMXTRaObszw4qHjSfvLZiXgSGWiyFzbLgS98h+LYIolK6edchp29KTs32C8GGOSevsnAEgXOK/09sevMqHXNIMxWVpuFigM5wWh+XZ/NLWsqU7ijXlWj7+PVBtXrjvVTyZ/oo5BdqxUz8Fmg43khFcPjn4EOgGFVhg6inT1V2de0DrcqE1JDH7wzZXJ/+3suu1aCy6WPlq02lzgA8rrHsoLCMLoWaIqRdKUGc4vj/tKj76hujIYwFxcWSCSSJOoNS0fbpN+NWZYAeObqJ8IXlDszUHD1QuQTyugHP3ojloFAdjY1CHSKk5KBn7M1iULlvwTzXZja/jgbw
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(11063799006)(4143699003)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bWNYVVljYVBmVXVKc1ovSFF4UDFNemtSUWVaUDV1VUZYVnQ2V3dHaFlzRGFB?=
 =?utf-8?B?UUdFY1FWQy80S3I1TGhhRjh2aUYxNWhjL012YTF2VFpZSXN2RjNnTUoxbloy?=
 =?utf-8?B?NUtvb3JvL2hBQkI5d3VYMUdSUC9wMDFIdjZrVEdoanM1d2F5WE5WWVp5cE5H?=
 =?utf-8?B?RkFsWHdQRkFpY1hZK0t2MWRweXJ5MXdyTFgyUnZKK0U3dUZRTTFlTkNscFNI?=
 =?utf-8?B?MGRYNmttRzRVZGdQQUFlYlc1cXo5dHZrOGdJU1VNeVZ2MnJOamNrNHFIdlZa?=
 =?utf-8?B?Y3F1MXRGUnRocFh6TGxIb3FKT05sTUdGWHRXREtMVHJVbGpHczdsL0V6VnVq?=
 =?utf-8?B?V24wajNFTmdOL0RjQzlBOEdOc0I1bjJYYjBQUlpNRU42ZWFtUUM1RWpuR1E1?=
 =?utf-8?B?SUhhNDVuZUhtZThtem01Z1dNMnpBdEMxclRvZzdsV2VCelcxbUVaYWR4TFhk?=
 =?utf-8?B?MDg3S2dmai9UNXp1bUZDUURrLzgwWUh1Tm1EVUZJaVR1bmx4alJmZXdneG85?=
 =?utf-8?B?a0xLbTcvUWs5TVIvZTlJc0F6MFA0bXE3NExJUDNybHREOXBXZnY1bFJOVkx0?=
 =?utf-8?B?bjNuTDROYnlGd0dydDRBbXREc2lBLzJ1aklabjRxVlI1T0d0WWw3eFA4R2Rq?=
 =?utf-8?B?ZnEvZUluN012QnBHK3RKcGlpN1EzWGhNRDB2SlpMZjFzaU9qMXBHYkhTYXB2?=
 =?utf-8?B?WVRBckQ5QlpxYTB4MytkR3BUN1pBNDIvbW5KanZUWTFlcFNDUkpMaE5lQkZo?=
 =?utf-8?B?V2hvZFMraXQxb1kyS0FSajNTV2MrUzh2cnBIcjdTOFZCYVNuMXpJU3I2aUFG?=
 =?utf-8?B?Mjc5a0N5RDFRc3Ivc29DaHM4MEZpcmx6U3BjVzFpNHpqTEJGTzRsRWN2Q2dv?=
 =?utf-8?B?Z204bnJMZXFzaTFoNWQxU3R2MGVSS3NoL1E4YmJ5RjMxcHJGdU05TVA4V1Zw?=
 =?utf-8?B?MkVSeFZiMTcvcktnNG5tK2NGakZUMUZxeGkwTEM5dFJuZm0xTXlTMFo2M0Rn?=
 =?utf-8?B?VmRMeTkwSGMwZmZrOWU4c3dENkpaZkVwaGFWMSs1eTNpam1Sa2h1RGg3QUUr?=
 =?utf-8?B?cWJ0b1ZNa1A5TjlQdE1vT2d1RWhCV1VkZHQ5NStvMGRXd3pIYWV1R212alJQ?=
 =?utf-8?B?ZWNkdUZyRmNpWHdIYXlFSzJ5ZW5uM0o1aDB0eVVQN2RYRFdJV1JNZFdkalhk?=
 =?utf-8?B?U0NHQzRmL1JXWCtzb1p5WG8vZjUyajlFVjlYVmpVdGoyRlpJMXFCbkx4YnFh?=
 =?utf-8?B?VmNLbGxGKytadDVIdW5YclF0WWhXbklsa1lEbHhUbEEwa0paZTIwSlNXTDNF?=
 =?utf-8?B?dnJodzVNaFBVTDJvY1I1YXRmOENzb3d3V2xqc0ZjaEl4aC9WUEJrL0U1Z0Rx?=
 =?utf-8?B?UkNHZWsrM0ZkYXBMTW9CV2NER052TFJMK0xSSEFUUk9OenJhdncyVE1STmFx?=
 =?utf-8?B?QXdCVEx5bnZCdmhaejhwNFp6bVI2aE5wWUQ4QWxVZHFhMU9tOE5SL0JJSS95?=
 =?utf-8?B?MXZCcFZuUUdYOC9QQjAxNDF0TlhXanBGTFVydWhhNWtSYlMwbU1pTUpZOVRY?=
 =?utf-8?B?a0Y1Z1pRMlNKOVFuMWFLZEdibVFabEhramtwdEVSY24vQXBNNGxwWnovTVJp?=
 =?utf-8?B?NmgrcjNrL25MbEZpWHU1aW1hVU15NmlDM1RGdEtWOXFEK2pyOStsV3RxL2kz?=
 =?utf-8?B?cDc4cDJHMTBoeXFGN3ZlUjZ2SGo1a0NwOFFIT3Vtb1YwSko4VG5iNTlIdHFH?=
 =?utf-8?B?NnZCbENKV2xXOE5xTVh2dGJFcEJaWTY3bzRhbzh0SHJiWEJ4ajdTMDlUT0U0?=
 =?utf-8?B?bjhGWEZIY1ZyOW9rUm8zQUYxL3dycjR2OHBUd3dqNkRtN1NQVktmY21QSGhM?=
 =?utf-8?B?T1RDbXV2aldHU0xVR044cXF3Vk8vV3l3NzFqcTZZVzRPWmI4VEdTTUVHSUVh?=
 =?utf-8?B?QWpvYWRHT3NGOVFzdVJqUkkyTHlPcUVUV0p2SHYxVVM0RjB6YzBmb0tVSTNT?=
 =?utf-8?B?QWdJcHNNZGY1V3k3N1pnUm1BQ21IVjRObmlTdGhhK2VTTkpORXRhNm9rdVNS?=
 =?utf-8?B?NE1MOVRNQUJjRlgrQW8yMFR6UlZUZTVGRTArS0FpVDk1NStHM0RSSm5RclFk?=
 =?utf-8?B?bUp2MDgxL3MxZHJsamU1NjNBRjF1RmxDYjlZRVZRZGR4dHdseitnbkR4RHRo?=
 =?utf-8?B?dTZJY3VEcURnNTBoOVRjZGZBTjZFL3NOaS85S1l0TjlOaGZtRUgrSkJsUHVL?=
 =?utf-8?B?ZXNZZXUraXVQK0QwbW5COHRTZXBBNG1NWDJWRmlRTUNnU3JkamVnSjNKS3lG?=
 =?utf-8?B?akI0MWw5VUFzU1N4TlZVTFpSanRzbm5VNjZOTnlmN015VGROanRLdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8ea73029-38a5-4498-a20a-08deb7ecede7
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 10:28:56.6701
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: yU7aPFQsCmrBv21IlpiiZXUEfuoe7DvWaQoGxchF3I2bfz4ZH7b5Xo9eESv00xVaBMiMnd8K3ZWQC0w4Ddvt6w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR03MB7434
X-purgate-ID: tlsNG-42698a/1779445741-1B57BF3B-2AD1CF3A/0/0
X-purgate-type: clean
X-purgate-size: 2248

On Wed, May 13, 2026 at 01:45:12PM +0200, Jan Beulich wrote:
> ... shadowing a function scope one in one case and the global _end[] in
> another, thus violating Misra C:2012 rule 5.3 ("An identifier declared in
> an inner scope shall not hide an identifier declared in an outer scope").
> No difference in generated code.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

> 
> --- a/xen/arch/x86/mm/shadow/multi.c
> +++ b/xen/arch/x86/mm/shadow/multi.c
> @@ -857,13 +857,13 @@ do {
>  /* 64-bit l2: touch all entries except for PAE compat guests. */
>  #define FOREACH_PRESENT_L2E(_sl2mfn, _sl2e, _gl2p, _done, _dom, _code)      \
>  do {                                                                        \
> -    unsigned int _i, _end = SHADOW_L2_PAGETABLE_ENTRIES;                    \
> +    unsigned int _i, _nr = SHADOW_L2_PAGETABLE_ENTRIES;                     \
>      shadow_l2e_t *_sp = map_domain_page((_sl2mfn));                         \
>      ASSERT_VALID_L2(mfn_to_page(_sl2mfn)->u.sh.type);                       \
>      if ( is_pv_32bit_domain(_dom) /* implies !paging_mode_external */ &&    \
>           mfn_to_page(_sl2mfn)->u.sh.type != SH_type_l2_64_shadow )          \
> -        _end = COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT(_dom);                    \
> -    for ( _i = 0; _i < _end; ++_i )                                         \
> +        _nr = COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT(_dom);                     \
> +    for ( _i = 0; _i < _nr; ++_i )                                          \
>      {                                                                       \
>          (_sl2e) = _sp + _i;                                                 \
>          if ( shadow_l2e_get_flags(*(_sl2e)) & _PAGE_PRESENT )               \
> @@ -3349,7 +3349,9 @@ static pagetable_t cf_check sh_update_cr
>  #if SHADOW_PAGING_LEVELS == 3
>          {
>              mfn_t smfn = pagetable_get_mfn(v->arch.paging.shadow.shadow_table[0]);
> +#if GUEST_PAGING_LEVELS != 3
>              unsigned int i;
> +#endif

Hm, that one is nasty, we would better use a different variable name,
but that would be more churn.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri May 22 10:30:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 10:30:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316589.1585974 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQN9I-0006LW-EA; Fri, 22 May 2026 10:30:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316589.1585974; Fri, 22 May 2026 10:30:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQN9I-0006LP-AF; Fri, 22 May 2026 10:30:36 +0000
Received: by outflank-mailman (input) for mailman id 1316589;
 Fri, 22 May 2026 10:30:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wQN9G-0006LJ-Jk
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 10:30:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQN9F-001vbt-W1
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:30:34 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a103044-5cb7-0a2a0a5109dd-0a2a450bb448-30
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:30:33 +0200
Received: from [52.101.46.42]
 (helo=CO1PR03CU002.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a103048-212f-0a2a450b0019-34652e2a8d89-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:30:33 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH3PR03MB7434.namprd03.prod.outlook.com (2603:10b6:610:1a3::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 10:30:29 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.21.0048.016; Fri, 22 May 2026
 10:30:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JrD9zJXpYH93EpVdvbNAr4NkMKtBSlMdH8Hj6/ywqK6LGQ0y58AGrLLuBQVhEqfyOManzRATCSCN5Jus8L5ObgmzDz4dOEZqApd/EehlAVkEx5JeAC8pvAzACvuEfuSjQiDdWAbsSAJMGwY8ie6LNJVYJZ3n1h7lVDxF3/xNbTGQwuHmZ9EW3/QPk0NddTgI+6XPUyrCp/dNLs4PSaE343lrkcLEV4eIEZUR/qtuRzR6n2E7/qzIzl0FPxr1VNA4vrycX9GI1Nf9hMATKTRFfhy1gmO212HmE5VgVhF8fevPm/KdxJhxncBx/fZf+nsR3m8X5GRfbWlnTkhr/pve3A==
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=AaqmvXKmaleQxgGw8BSuaUmkUV3Iyx+yxOcrs9IDUYA=;
 b=KYSa32kT24tbhBur5D+dctp36OQs5dK5tgkCxMW9s44QmJX5lq3yhcDprvIZh2YKE97akHIn6s7xJws1quyAl4STTGM+q09SUVK+AoOU3ir+6p7pjMY5kXkfcPb73BCKBDGMUKC3vadwico7UeQGW1QzmXRKtQ7jJwcwAviulYLD9u5UQoXFo2x8JZ5Plkv274kbJRBMNFO9OcAEgKmvxKaHhv5SaFP/9B4aTmLNpJFOrcfMElbUiiHFVzZL2G904FN84amdEYUrcAUaNb+59DHurVctzffQE4PwB089LBiUImj7T1ILEe9Qqit0sDp6d9Kh0JdchKTNRV8fD4Rexw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AaqmvXKmaleQxgGw8BSuaUmkUV3Iyx+yxOcrs9IDUYA=;
 b=tlJfpyShRTUsUER2fLmKc/o3JFnMOSOGe4djfzmMb8YJVR9iUoHMVukNx+ZAVM6x+MVBMyWl6WBDzZHOquf0n/dvm6gWpChVJc42waoM4wR+HweeQmUxh0vutBJTlG25BU91Dt4XILfPgz7eViz0R8YGH1X5q14n4dALDpbyXo8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 22 May 2026 12:30:25 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 5/5] x86/shadow: rename a parameter of shadow_l<N>_index()
Message-ID: <ahAwQQiWxLnWtmP7@macbook.local>
References: <5eaaf72a-850c-4535-9f20-13b4feed38d1@suse.com>
 <8aca671a-eb6f-475d-87cb-7a738ecd0793@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8aca671a-eb6f-475d-87cb-7a738ecd0793@suse.com>
X-ClientProxiedBy: MR1P264CA0059.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3e::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH3PR03MB7434:EE_
X-MS-Office365-Filtering-Correlation-Id: 88a53175-a001-4d53-1e95-08deb7ed255d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|11063799006|4143699003|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	56oqteO9j4YJpklfnr+2pAJgNkFs3KJ2W5u2oF5Qp9mtHgq3ZiIilfTACQQCe1I/u1qLVgVSADJ36Vv8JVgKRauwDGAz/noMyC+VDmE4O/xNVswJW6Fe7ekMaGF1UnQEWTkJlptKVhTOHPYueno5wuvSFraJViNI1Gn34uqtA/fviSLnarX8Vh9f/8qG8wYRYCE8+AN1cEziF2u+kbobdCdd/pX6oSoX0MGdeyAn9QmrlmmWYSFfc5aS3LeXweesD9pY6LzprgSpP/u6iV24czIoqSiJrK17acrGj+qAPfFG1qvbYjDM7HcRw73x0OEHaN0TQB9dRbFQoMnGA0cm1Jvu2d9wuU+PXPshbpC8l2DMqeJCyTQ77UHYDFGEofbhq/ftyfsIzUjScJ9pLZeHihaPrugQMcWTmCaEc0cljaqGL+xwbfEu82Nzcv9VttJ32h0CR2EKmHxKe+iojAYmIOuH7z+atVwlAgOlGuEJk2Thzw8KhPpO9f7Q5kYBB572yGm7/T+Y3oxYPTVffQr54F1dT8Ue+WfM9Q7hs1fOoyckPukWWOA5LbY+ETglFwXabsDlYGyMzbCHTR9vUiArGYwo0OEP4gJf1KpP39uWwG0Oe67sYtC6s5oLKIivB5F5nEnT2+0lhPOk4CoBDV6qa6dF09QsX+yaenDtEsgw7bDyvE6LlJTRWMZcb0rgb9lD
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(11063799006)(4143699003)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dThHWXVIWWdVaDJpQVo1d2RGRVlkSVBjaVhqWkhrOWpqa05ZMHUwMk5sNFo5?=
 =?utf-8?B?d256OThIUExUYTEyK2V1UGZFNXNsUVR2UVAySU5BVnd1dWhwNml5dy9zM0xF?=
 =?utf-8?B?dS9lb3kwYjZqTWpRdkhBZ2VtNmJuRS91ME9EM210SXNldDYyYkFrOWhyZnJL?=
 =?utf-8?B?QkFSVFEwbEhpNDQzYlNjN05ScURQMzZuTnEwSWdQUnVGRFpxaWt0d1RwNzZV?=
 =?utf-8?B?RkJpK0tTeFNCYi9QN2w0aUY4ZlNmT3pLcFpRelhleHU0cjdFNlpqSXBtZVlm?=
 =?utf-8?B?V2hYZi9DTUxySVlUZXlRV0V4V0JBTXBZWHZSYzBqM2RhRk0vbk1ZWXIvMnJy?=
 =?utf-8?B?c0ZHWEQwSk5UeitaeFR1eWFLclljRzFkdHlDaXorWFdBbitkQk42SFEyOWVw?=
 =?utf-8?B?cENKTnBteVlUeU1Nc0hTVXNIK2lrMU1WVUtUNDJ1SDN0WHFXcHBudVIzMmF3?=
 =?utf-8?B?NXdvNHNKTXQvb21RaE9oa2M4RW5kd3lyTm5HTklSZzJUWkpmTm5KVThlMnF0?=
 =?utf-8?B?em1DWmFCelR6ZzZTZTBmOGFZZGdmK3huN1k4Z1EyN2FBRDYrODhJTW9JdFpS?=
 =?utf-8?B?OGd0RG1VUDQrRXRWMTJXVk9GdWlXM0JkT2NrMG1LYlRkMWgycWdBSjhFRXJ3?=
 =?utf-8?B?bUp0bmZrSUFFd3Y1LzJZOUtUaHZNYU55cUZIbWZpK0ErbWhBYmlFbWttTFJp?=
 =?utf-8?B?SEhQQWZCbVRoYUhUM254bll6ZXBXUkxlVnVMQUZhdGVJNkJhdE1EZjRJZy9i?=
 =?utf-8?B?eElvU3Yrb0FKcEM5K0p5WWhpRVg0aG9obzBuNjhjQXczSitDOUQvQ0l6YnNX?=
 =?utf-8?B?UWtCei9yNm14bThxTWF1ejM0NEhGNnJWUmFtVzB4MWd4SmN2M3NIWFkzMmlW?=
 =?utf-8?B?NW1QUTRwUzcxdDBoZ2ZmL2xIRnNOUzRPRlA4Z1FhZFNVK0RUVlJDQ3kwZE1C?=
 =?utf-8?B?bnYrc3ZSR0pHd0xBSTFmSUw2N3J4WDE3TENzT3pwT0p1ZGc3YjRHWU8vY2Ra?=
 =?utf-8?B?bnZNdjVVTDQxdnRnV2tUaEd2M1BNU2RWYjBLZzBmRVZNNUU1N3dpOFBUald3?=
 =?utf-8?B?TG5XNzZSdVhweHVSMGZJYzkxNnJNc0prQkV2ODdEMEJ2N0VVNWZIVzFXTjRr?=
 =?utf-8?B?OFBBY0tpcHV3bnZVNWtzQkJvdWpsc21OU29uTmp6S1ZGODh1bXEzMU91Rk10?=
 =?utf-8?B?VlVwTHJlczE5ZHRDY2dScDVaNzZRWUVHV29yYTF0MG9ldXRwMHMvZWtlNmhi?=
 =?utf-8?B?QWlsZTZ1NHpoUVhxbVpnK1FJSEZDQ1pZeUNPakc2Vmkrcnpzd2RrVmppeEJO?=
 =?utf-8?B?TVY1Lzh3Q2thR2tVeFRrMlhLdFlwTW5aYnhIdXJUOU5EcEF1MjBHamZBaWEv?=
 =?utf-8?B?Zlo2aCtmZjJpMzUzVEpydnlmenprb2tObWVORGlCT0tqTWZ5M0VZRjB5YUQ2?=
 =?utf-8?B?YTFwMHhkQjd2cktKdTdwYlM2Y09vcXlvQm1QVng1QXBUVVBMMytKS3hRRmVE?=
 =?utf-8?B?WWxkbEFVdkxrMXJVSHBQM2tCT3lRRkgydEtCVDVWTWdJZmt6aDRJanoxcVQ4?=
 =?utf-8?B?NXpSQUM4TlZMZTRRZysyVDFBQjA4dmh4RkNoSmxEdkFjMkRwYVlPTnozY1J2?=
 =?utf-8?B?UEhtRG5SOWVXK0JaNnkyMUZPcmpvdGVBRU9RM1R2b1F2R0FSNHh4bzhZY0Vz?=
 =?utf-8?B?UGJ3NUxrNVR0WitEdUhMNnFvN3JjeDVyZlpsQXVNQXJLR0RncEZSMmQ0bjBJ?=
 =?utf-8?B?cjlOZXAyK2thNDJ6b1h0dkxGdll2SnRmdytIMExIMlNJcXMyeFRYSjlvQUZz?=
 =?utf-8?B?cHNTdkwveS9WSDh3TVFyUW5HbGk4YzBEVEhBRW54SjBnZVVwbnprdlFpVWwr?=
 =?utf-8?B?cDZVbS9ZSm1VZFQ3WitSeUdhQVB1K3Z1K2I2OTFWVkEwYWJqL0JXOHNLR3lQ?=
 =?utf-8?B?eFRCRXR0bnJhQitSdTB6ZURybzNYaTh1dXEweXdRVnZ3b3ZNMUNuNXJqZkVT?=
 =?utf-8?B?YjI5ZXN1NXhiSEVpUEJFUFg2azN0YnhoOS9EZ2NjRkhQc3FNbVRRYUpxaHpY?=
 =?utf-8?B?bGNpdHB0dSt2TmVKVzBDK2NwU1Z5NWpocDQvazVTN1ZMODJtKy9oNE05RU1E?=
 =?utf-8?B?dDFsZjFwOU00b0ZUdGFlaTVQaWEvMll0SXU0bjBCazdYU3JnZ2dyYm9SUHps?=
 =?utf-8?B?SHZEL3NBWmEwZjByZmtQTVJWTTRJbVBnQ0pxYStzZ0djZFZTOHJiL1pJZnhF?=
 =?utf-8?B?UFloZUY2MUhQSVZESzRnY2IxYXNIeCtHc3MxMHhvNU1HWi9VYkdvVWRmSVVX?=
 =?utf-8?B?WDF0dVUwV1RnWkVGNHZwWldnU0w2aUJwVXhsalI4dDYwdXZpUkNIQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 88a53175-a001-4d53-1e95-08deb7ed255d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 10:30:29.7630
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: krtylLsS9MAZXTJLRXYms9kxb66SeKpqvqSZ2A7+8yTCIEMygARxhhqNHPNxaoKdoSuVLPjVJPmaGOuydrvk7g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR03MB7434
X-purgate-ID: tlsNG-42698a/1779445833-21D85F3B-BA15F593/0/0
X-purgate-type: clean
X-purgate-size: 658

On Wed, May 13, 2026 at 01:46:59PM +0200, Jan Beulich wrote:
> ... shadowing a file scope one, thus violating Misra C:2012 rule 5.3
> ("An identifier declared in an inner scope shall not hide an identifier
> declared in an outer scope").
> 
> While there,
> - replace u32 by uint32_t,
> - reduce the number of cf_check by aliasing shadow_l<N>_index() to
>   shadow_l1_index() for N > 1 and GUEST_PAGING_LEVELS > 2.
> 
> No difference in generated code, except of course the removal of the
> duplicate function instances.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri May 22 10:32:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 10:32:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316599.1585981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQNBC-00072n-SG; Fri, 22 May 2026 10:32:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316599.1585981; Fri, 22 May 2026 10:32:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQNBC-00072g-Pb; Fri, 22 May 2026 10:32:34 +0000
Received: by outflank-mailman (input) for mailman id 1316599;
 Fri, 22 May 2026 10:32:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nicola.vetrini@bugseng.com>) id 1wQNBC-00072Y-6P
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 10:32:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQNBB-006seh-Ii
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:32:33 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a1030b0-5cb7-0a2a0a5109dd-0a2a4503cb80-36
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:32:33 +0200
Received: from [162.55.131.47] (helo=support.bugseng.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nicola.vetrini@bugseng.com>)
 id 6a1030c1-672d-0a2a45030019-a237832fd45a-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:32:33 +0200
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 2511D4EE1D33;
 Fri, 22 May 2026 12:32:33 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1779445953;
	b=uGDw6n1+cwBc12diuIu8WV1U03OQwKoKk8509VJOk/X9kwm5/sr+KmMTpVeMlWdTOXn2
	 ZzwlWMYiKCPHClHbOyZePQOU6vudWfmkUEoImH5S5tAo2OntiPyMbmWQF3RBi8Lsg6rC8
	 kqpKXXpI1Ckh4rLiK6NI+ekbnzpMnfoZZ2wXea2y+KOHGYvUW0dVUlR1Zcf/FaJZkdlhu
	 5U6wY4hQ7fXBpCOQ8z882JVSPi05xrzPgyLs+gfHhzhCM2cUkBcu/t4fgHhRVxMYZiIbP
	 6gUJlr8w8oE5R/Kw4u8PRaLCGsWNGHAeC3m4m3WUzw90V/dO14aSh76j4MQ9C/DK2vTCf
	 eI1N/z70cFVNu/C0I+0LSqPH2AwYa8/xs4jlUDYyaSXUNUDqbdI+N0OSvt0rKfbq4JUCg
	 zfOPYh91mamidsGFuxXAcozz5j5MPeynwo8ORxmNWJJ3ZUtJzOwh2LYeJC8CnAF6nPktF
	 WuGMXM/dvC5U+Q2lJiLq0DwpWKYsk27791Xop02R2ECpqaSp3pdwzRueotKRnl6YEfS8W
	 FGwFmQ2T2HgrOxGz9a+wRfF/Tms4FAmj9DwuP5wKfnJgrSEE0ZFI2ZVNXB8tw4Tz352YM
	 NBXvGH3A9JvLomEa0PGrSpaOHBMSCEB208RRJd5W+nBYHkvS+/q7DhECMaRuyag=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1779445953;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=VHF9eWhlJjXjtVykFe+kyXDIrT8vJHUE5nERukubOlg=;
	b=QqQHTB4muovvrS1tyyJ3fd99IGBNTIT1Ip0Z+SjUYVUY8F/9kbWtln+R+EFXpG2FRnxq
	 zexm80yLwewxh/y4lDAiQPtAHGO3qu7CAE17u4hUNYmRFjNoNbITN/Xzi1qNr052pXlM4
	 J/jzFC/LNEupOHDO/jaZWli/r8J2LAWWK191zTpKpxFWXtYWCifHWp/oaJRvdufUxmpc3
	 IdNpHopBpDeFzkcsJ8OaJEyOiRSZ6tcNuqIxb+I4HoNToZDh1brtyyGIaX9wSRcJKVH6i
	 xN4AEe0A8pxr5SKkB5ef3qVBJeI6V223HnTDZb0CphevWfarw+MIVEVVScJWi3RVRqOKX
	 ArHqRZIdET2RWAyTbYWTbmL+HdtG9SOg54HKKKV6iNdHhW6qgUvgblW9oITTcLZgVR55t
	 8lR9TRlaRSnmu+uyyTXWTH6YIigJs5lY8109nuVo697PAOpBUZpE8tZ24Ql0gqyYBWYOq
	 cFzJTMNTcO83Sg2DWmCmCiFWyrleoOBHtpFmbgcDTUwKcksK+ZE241mylJVCibnJq+5WU
	 Lk9jICTYDaNXFAWfhh2HJW3HpgD5SOo1MqL8AnWYVFo3/9fKE0FmexNn2HhWxkxU1wHKp
	 9LXzAO78QQ3FmLIaMP9whqdBLB+x5cqgNm8OoLz6paph+FYpvO5bcElKQe93J3k=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Fri, 22 May 2026 12:32:33 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Victor Lira <victorm.lira@amd.com>, xen-devel@lists.xenproject.org, Doug
 Goldstein <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v1] automation: edit rules for analyze jobs
In-Reply-To: <00d987d3-6a9c-440e-beb8-6587a3fd1d9b@citrix.com>
References: <20260520225820.31550-1-victorm.lira@amd.com>
 <00d987d3-6a9c-440e-beb8-6587a3fd1d9b@citrix.com>
Message-ID: <751c1684902e41fdd9d29b71670b49f0@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1779445953-36D43938-CE043129/0/0
X-purgate-type: clean
X-purgate-size: 2260

On 2026-05-22 12:20, Andrew Cooper wrote:
> On 20/05/2026 11:58 pm, Victor Lira wrote:
>> rewrite analyze jobs rules to simplify the conditions under which the
>> jobs appear and run
>> 
>> after these changes:
>>  - to appear, all jobs must be selected (SELECTED_JOBS_ONLY), have 
>> token
>>    (WTOKEN), and be in an allowed path (CI_PROJECT_PATH), this is 
>> specified in
>>    .eclair-analysis
>>  - the subcategories have their own exceptions, keeping current 
>> behavior:
>>    - ECLAIR_SAFETY/ECLAIR_TESTING can force enable some
>>    - eclair-testing jobs will not appear outside xen-project/people
>> 
>> This assumes we don't use pipeline sources other than 
>> push/api/schedule.
>> 
>> Signed-off-by: Victor Lira <victorm.lira@amd.com>
>> ---
>> this preseves the current behavior of the -testing jobs running 
>> anywhere on
>> xen-project/people but maybe we want to limit it to whoever is doing 
>> the
>> testing, or in some other way
>> 
>> tested on my own repo xen-project/people/victormlira/xen
>> 
>> push 
>> https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541858231
>> push /eclair-x86_64-amd$|alpine-3.18-gcc$/ 
>> https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541859057
>> push /alpine-3.18-gcc$/ 
>> https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541859605
>> schedule 
>> https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541871689
>> schedule /eclair-x86_64-amd$|alpine-3.18-gcc$/ 
>> https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541875599
>> schudule /alpine-3.18-gcc$/ 
>> https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2541876512
> 
> I'm afraid this still doesn't work.
> 
> I pushed with ci.variable=SELECTED_JOBS_ONLY="/eclair-x86_64-allcode/"
> and still got the eclair-*-amd jobs started.
> 
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2545988798
> 
> ~Andrew

Perhaps it's because the runner is marked as a safety runner?

   rules:
     - if: $ECLAIR_SAFETY
       when: always

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Fri May 22 10:34:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 10:34:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316608.1585990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQNCq-0007Yd-5Q; Fri, 22 May 2026 10:34:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316608.1585990; Fri, 22 May 2026 10:34:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQNCq-0007YW-2c; Fri, 22 May 2026 10:34:16 +0000
Received: by outflank-mailman (input) for mailman id 1316608;
 Fri, 22 May 2026 10:34:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wQNCp-0007YD-9c
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 10:34:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQNCo-006tES-Lh
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:34:14 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a10311f-2eae-0a2a0a5409dd-0a2a45039d06-26
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:34:14 +0200
Received: from [52.101.52.40]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a103125-672d-0a2a45030019-34653428222b-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:34:14 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH8PR03MB8228.namprd03.prod.outlook.com (2603:10b6:610:2bf::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 10:34:11 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.016; Fri, 22 May 2026
 10:34:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ViO5Dxn0UlvchHRZOxoGOW2g0yR0f//4pYN8UcPtkGNHSCgl262do/uNonnbuFvGEE1k3OZXF7zok53IFbhNPYBIdw3cUlbWbAkEl+Clb8XV+NzELokx+kbTKNGIA+OaRMwNVVqmfIvpGAyB2ziD2omOYeBLSMoHjpUNt2Tup0PRP3S/dWF4cpdqmf7TmHOEf97T0pvVgMQXuWQeNkDspmAT1JihnezdYphm/7z4/JOrf4gMOELg+mPqb+LSve+qv+3DEHPFoOGTm6FCTT+aD2eHlTNqN0uNF9rwB2/NERahnL87LvTnANkRH2kWizNm0XR2ZppFO4BBJVAyZmTunw==
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=R649cwk1MfjMUCzx7wjruhZ/AZOsslmqxJwS167XBI0=;
 b=kuzfu3cVKnaQbaRViqTl4PmrfnHJKINrKwa+WXJWtQRHswuG5oT5KeIaFVpMDKvqYA/mhqrs681W4/lQ9lwsNCqr0ms6g6XfvfdewU5hJ6HbD+Tupn2IA43GJakfGkaGICqjQCjewrTryoR38U8SSz68bhXbz5s+4689w+NoAl/vk+YFNcaRoNokh5t8MmPrZUXSz8WmWsYr8HB72Rp97EjRieHrE9VlbC9810wcFtjPnqoLn2nbW8yVV+gJ7L/fFflMW8lOUxfd0qTqzuq967ZaJwol/95uroTXAkIVVQSdTKHR6EsQn9W9ZYDHTMbW8K9pkpMR/eIF9EBJzEmm6g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=R649cwk1MfjMUCzx7wjruhZ/AZOsslmqxJwS167XBI0=;
 b=U0EJed1rkNFIKSq6Ga1L8OOBgrbFnwmwQ7aIi9qBqvsHDQst6lmDDaRgqMgwVCbzfe27Y6f3nMMYnJOQxGU3CkL3O7HSTFSocOVjw5/MGaCLJ58z/s3jkIQnqgDqwjc2EXMcefRzYZ7bDkhwwgOU2VAudL+if+F7I6/H479b2fA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a51495c3-3549-4ea4-afd0-0a8ea0e80ba7@citrix.com>
Date: Fri, 22 May 2026 11:34:07 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] crypto/vmac: adjust for Misra C:2012 rule 17.5
To: Jan Beulich <jbeulich@suse.com>
References: <036752dc-5333-4d01-acaf-ed450e09fe48@suse.com>
 <7ef99f0e-2847-49d8-8701-8243e4b073ed@citrix.com>
 <1019524f-bbe0-46b3-b742-d7404732bc66@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1019524f-bbe0-46b3-b742-d7404732bc66@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0168.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18a::11) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH8PR03MB8228:EE_
X-MS-Office365-Filtering-Correlation-Id: 902e26dc-0b1c-4ab1-9ed3-08deb7eda95b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|56012099003|18002099003|22082099003|11063799006|5023799004|4143699003;
X-Microsoft-Antispam-Message-Info:
	vBr9Opm90AFXlb3Qxbe79rlpuUR2aTk7btqH8kiSh1D4wJrkZEuXCMjDs55bElU7EzcL5vXYhe8xE4+Nm37iFI5fmKKfOe7k+tOVGSt41op4XmB7eLBeb2zUhhi2a+9DEiv9g8GjaFbqyAneSO/KUYxDg3Ee5dLqoU060YTZHTGISDssdE9IHwwR2HGBb3eareXCHQ7odtjJeMSPzmb29D+4okJDuase67UmgGd051BsYjrczWhNh0CRnhdT4Wm47wVYmt03U1ZG6J9jiojgcFZzQcAiqBE67gpGuOIOO/BQad7iJR2aPqpRTTPJWejEHR8rERJ/TNEZcjrS3iXuooefGQAJixTftc8DUqpSzn+2asVPYG8f0L2TK/EjGudtdvxvlAK9YWoxIp1CB11AKYqW208oZPlMuR7L94LwrBgWeh7oBT68RTZL3EAGuxLzzIusOfaqCJml1iNR2NmRrZD6RFuqX0Oq5Esl1fU3Q+BUj80kFAoOnQTrrDlwRewfsfRC+iCqvXyJ94yflPpWDOS/onVkl8X/Hx+/iVumZp95si20TZmVvTOG9Pt0Na3imV3aH4S0dzBCrUcLbe2a50TY2Vm2HOhb4UVSte+fbYjsnm8WvAnwO/VKve1N8nbkuSa83wkvzMOvv79+KPMgg7z3wEF6V6fNeuDTLYO9PT36PNbfOtnEMnDQsw8I6LLq
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(56012099003)(18002099003)(22082099003)(11063799006)(5023799004)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?R2RoVTE1UnVRZ2hUWXlHMUc2ZnRBRDRUNWMyQnI4NXJHdDJrUTJKNVE1ajlX?=
 =?utf-8?B?bjhBZGpOUzF1QTNLMnhJYVlON1ZsM2tXTHNRUlhvL1I3a3o1bkZCZ0NKNGZD?=
 =?utf-8?B?a29BUmJCdXRPUjFobVZ0SU5Ed2RqM05kbGFENVR0elNKaW4xQTRFWXBrbFlj?=
 =?utf-8?B?OFMxcHZiYkNHbVA5ZUwvUksxNWFNY25JYUQvd1o5SDdZcUVWTnJISEhtOUNN?=
 =?utf-8?B?aXhRalc3VHVuYjZqUWtXbnFCQ2ZrRWJTUzN0elpXUnduZDVjaUlLakxOdko4?=
 =?utf-8?B?UWQyRU5KK1I3ZDh0NksrK0N3MHZXdVl1aXM0eVJDMm5XOXViU1dQNVVFV3ZD?=
 =?utf-8?B?Z2lxajNEaU9xWnppb2QvMHJubC8zcEJiQWQ1S0tCRkNQWGl6VXlCYmZRNTg3?=
 =?utf-8?B?bERjMWdrc3BTYldsNjVXSVdDeTdzd2pQZU1yaC8rbzg1b3dpSldEdkVjeUZ2?=
 =?utf-8?B?SFhWU0FYK3NKL3JrRXEzZ01kM2d5ZzVlUWtYTE5CTExUYTJUMkFpY3FmT21D?=
 =?utf-8?B?NUd2cER4L1F6Um1NUHk4TTFzSGtkaThHVjJXdEExWlZSRTRvZ09Tem00My9W?=
 =?utf-8?B?SEFEY0Z3ajM3UTJIOFd0MWdMMUVKd0s2aWhqbWwyUjVrWlE0dVJKdSsvUzA2?=
 =?utf-8?B?REN4SG5xZVBOSmJGQXlTK3V6U2FEWUJlUm5RNXRFUkZWb0llSkpUTmROMUZz?=
 =?utf-8?B?NDdKVjRoSFlOM2xJbGR0NExuMHI4VEVWWkFUaHlBbmcvK01TVld1ZHh0SC95?=
 =?utf-8?B?dHlZcGZVa1psNERiY0d5Z1k5SUdWWlUvc3pJQzJtcmlpVTFhS1Q2S1M2c1J1?=
 =?utf-8?B?K2N5S0kzRW9xcnRiOThPZEVrQ0htaVVKWUxTUzhOT3YzS3VhMzNITmNNV09P?=
 =?utf-8?B?di81S2JnVWpmWkhjanJyQm1IQmgwQklJWWY4ZUxSc0o1L2svRVlWTzJTa0pF?=
 =?utf-8?B?OUhEQm13cWtMbENPRFNadXcwVExyYUJ3OTJha2dZM3lSd1BFT1dUdlJZNmtU?=
 =?utf-8?B?MUJ2ZHgvZS9wc2VWNDFaQ096SnVsNElHQUhNd3NPZkR2K2ZTdU44cGZ4OTNk?=
 =?utf-8?B?K3RjUHNqZFQ2R1hmSkw4WXB2RFpibWhPMU5IQVBZNzF3OWUrSjExMCtIYU5I?=
 =?utf-8?B?emd2ZytHQTlKRUMrZG9sS2VXeTZIdVVMM0NZVFJ2QjVaVWI1Z1h6OFpkYUIw?=
 =?utf-8?B?UWVkZ1lzZ2QraGI0RXdEcjZFNEVLOFhBN1BJQS9rSmJ2ZmpGUStBS2svOVBX?=
 =?utf-8?B?UTNnajZIS1JVZUxKTjZmdjRXV09RMmNuNE5YeWFWaVFkRzMxUmRJRmh6NlRE?=
 =?utf-8?B?WXVuRHp2NkpvRUoxMy9oMUJnaXJ6UkxMUUZESWptV1FGQ01PbTFVeEVISXVt?=
 =?utf-8?B?UWM2aVk0L0JWOEhuSTVyVHVDMVlzYnpCZlVFNXhQMVlSQ1lWU3FiMWxuVUNV?=
 =?utf-8?B?ZENZZTByMTRwNzQ4M3RZSE8vY3Y3TEdYRk1UNkVjNGcxZ1YvNHdHK2dWMVRF?=
 =?utf-8?B?QmpXUGl0Mm9LMmFTM3I0Q0RrS3hab0dOdXNLM0FqUmJHTTlsaDBvRzJjRXQz?=
 =?utf-8?B?cWRUcktHWEtyQzI0VC9WOTlXZ0IvYlJrakQwNmpaSE1zeWxjTmlLUVlwSWNj?=
 =?utf-8?B?TkxKNVh4YnAzc0pFYnRSQmtlL0FqcDBMVEk4TzNNSW9uaklmTlJKQ3lKUVYy?=
 =?utf-8?B?d2d3Y3BjMkFPdFpRcVZ0c1kxNEk2b3B2OTJuaGRicWVzeFpmY0JJZTRwZG1u?=
 =?utf-8?B?MzNmUmI1WEg5U3g3MXdhcDlyY3c5WHBYN1VLUHZZYXVpOTUvKzFXQ1d1ZnNB?=
 =?utf-8?B?OS85S1BjRGlWQzF5OFQ4cnlEK0xhTkRZbnFxREtEQkZMNTg0STZLSys2NWN0?=
 =?utf-8?B?Q1JvQXJUVlpmR3h4ck5zSVZodUx5amJNKzdNWXR1ZjJDcGVaTjRmZXJGa0p3?=
 =?utf-8?B?RHBQdHBkcHRFOXNYa3I5MjdMZnRnNXRxaFVmWHU0dkJOOHlyRitwK1FHa014?=
 =?utf-8?B?L28vT1VacTF5WmZOWisybUpDNlBwL0pGdlNyMXMvOXB3Q1R2RXAwSnVyNGR2?=
 =?utf-8?B?YzRzQ2JwWjNWSVlyeG5JcDhpbUczWlpPblRsVnhxeEJqTnZVdU4xcWsvTTlE?=
 =?utf-8?B?am10V2N3bmFNYTN2NzhXL1R5ZGs4Nnh6STNGRGN6S3czUDF1Vlo1OUNhTzFX?=
 =?utf-8?B?ak9jNGd5TkNKdnl2ZzVSZHVmR3U4Y3loK1pLcE5weGpyeGVSTW5UcWh4VkE0?=
 =?utf-8?B?U2ZsbGJiTVUwUnlqM1BkNG9FblZEZXZMbDEzajVLK3B2SDU2VkF1NTE0Zi9T?=
 =?utf-8?B?cE4vWmdPOTlrRWcwRVhKS0F6UnI5T1N4bjRxZFV4TWJzNzRzQkNud0NacGFr?=
 =?utf-8?Q?AKfAG6jUnJO/7UcU=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 902e26dc-0b1c-4ab1-9ed3-08deb7eda95b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 10:34:11.0445
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: szKHsSAaGmGLRUOlUgLmpLXNcoXl3M+Z+nzNWOhO6WfYNNo9vHF0BrZo3GLMBJlQk2cv37W4mUKFEtkLaFweJvZEoToq5iXRCImnvUSj49A=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH8PR03MB8228
X-purgate-ID: tlsNG-33051d/1779446054-37D4B938-371E6521/0/0
X-purgate-type: clean
X-purgate-size: 1394

On 15/05/2026 7:32 am, Jan Beulich wrote:
> On 14.05.2026 20:07, Andrew Cooper wrote:
>> On 13/05/2026 4:51 pm, Jan Beulich wrote:
>>> ... ("The function argument corresponding to a parameter declared to have
>>> an array type shall have an appropriate number of elements"). Instead of
>>> casts, (ab)use unions.
>>>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> The Rule 17.5 violations aren't reported against this function.
> The report is against uses of aes_encryption() from this function.

Oh, that's very well hidden in the report.  Both the top and bottom of
it say rijndaelEncrypt().

> --- a/xen/crypto/vmac.c
> +++ b/xen/crypto/vmac.c
> @@ -926,41 +926,41 @@ uint64_t vmac(unsigned char m[],
>  
>  void vmac_set_key(const unsigned char user_key[], vmac_ctx_t *ctx)
>  {
> -    uint64_t in[2] = {0}, out[2];
> +    union {
> +        uint64_t q[2];
> +        uint8_t b[16];
> +    } in, out;
>      unsigned i;
>      aes_key_setup(user_key, &ctx->cipher_key);
>      
>      /* Fill nh key */
> -    ((unsigned char *)in)[0] = 0x80; 
> +    in = (typeof(in)){ .b[0] = 0x80 };

typeof like this is not good for legibility.

In this case, I'd prefer to keep the "} in = {}, out;" pattern from
before, and this line be a direct translation like the others in the file.

With that, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri May 22 10:35:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 10:35:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316613.1586000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQNDa-00081R-GG; Fri, 22 May 2026 10:35:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316613.1586000; Fri, 22 May 2026 10:35:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQNDa-00081K-CI; Fri, 22 May 2026 10:35:02 +0000
Received: by outflank-mailman (input) for mailman id 1316613;
 Fri, 22 May 2026 10:35:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wQNDZ-000811-Bg
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 10:35:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQNDY-006tj2-Na
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:35:00 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a103152-2eae-0a2a0a5409dd-0a2a4502bc28-10
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:35:00 +0200
Received: from [40.107.208.68]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a103152-af86-0a2a45020019-286bd044f860-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:35:00 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BN8PR03MB5011.namprd03.prod.outlook.com (2603:10b6:408:7d::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 10:34:57 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.21.0048.016; Fri, 22 May 2026
 10:34:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XlZolCsm5H0M17Zkl5kncQJ+2wYigUApxB0MjWE9pT6AG7eJ2O4uPojfNMTxaLb8ABoJwvmaCHfEKHhm7GOPBdmj1Hsw+Menwy0ZdmU5h2DEK/Lqhwa9DVWEfCyspoRd0FFhVR00wRooCadjSAYhP/KV+HybexZ+itRGG4UlZXnV8K2SOlLJqxpGZD+dKOMJ9G+xK5hcwOX5PYA+Cl3Clyr70J92j5XQSD/npfloax4yW/dAbgwRQA8yLP6IX2gFeBMWyz3hBbetmPTyO05vuijmAhHKbeGv6Hqsxp6S/mAMdZvPItCccuCcS1nNqQXBd0oopMbEANXy1eYCJcWp+A==
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=QWP7YJdPS/j1ixt+uSE+Q6zmysZRvpfTfVl0bXO7ULg=;
 b=GtbCJk6QNStJ33492JPj8a1kaPgpRVpbXV+B2k6CFUQPNSj3+C76OxrIJQ4NlWD2qgcJS4QJyowwnJ5vrPc0coWSSIFx1E4Akawfd6DKXvwlcXd8Ng/Wee5x10wx/TmFTERq1NGGkwTc0aEpka3R8/qTtkgBG8HR228VmAeumGgbI76t447SfYYobGZZffMkscsFufCzwrFUMR4qMDNMVli6p7/vveAnB3xZ5Idn3s4x/doymO3UHXWXf9qlmcOHGEK5/Da3ZzXRyXfta3ZCBMA7dm+dArkraauQ7AfcQIO7GpEskm3VDmpd2VPtCo0HRFckAlb/YLat//wVv/mOkA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QWP7YJdPS/j1ixt+uSE+Q6zmysZRvpfTfVl0bXO7ULg=;
 b=poNMCR273Uj0uw2xZdfGxcns/ESQ7/HT+DP9fiLDLrv+hzirUmonL66J+8KKWzhwRFhUMCx2RKpj/1169sXF+Fw1wYuUqSHHoyMTa4D/Zg4KtYaaMpEvKRDwiALdqNC536wg//oLmezVVSJBR0AzctshZPVxTtZSXrdO28SgX5o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 22 May 2026 12:34:54 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 1/2] x86/mm: address Misra C:2012 rule 16.2
Message-ID: <ahAxToaWG6lccA9S@macbook.local>
References: <e3cdf68f-122a-4a41-a72c-8e6ed857b282@suse.com>
 <ddecaf67-a167-4a1e-8674-20284f6f02b3@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ddecaf67-a167-4a1e-8674-20284f6f02b3@suse.com>
X-ClientProxiedBy: BN9PR03CA0071.namprd03.prod.outlook.com
 (2603:10b6:408:fc::16) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BN8PR03MB5011:EE_
X-MS-Office365-Filtering-Correlation-Id: 1de76ffb-c024-4df5-b35f-08deb7edc467
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|4143699003|11063799006|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	feZJON4uDKf/1kGOuLUiOnT7EC0vpggwITm9SlA13qEfq2X8zxhpMFVnpiFOjbpg/EsbrtAC5wNi8tmOPjsZHbXxI0QNVZtJ/jOi8CVaJlhVPyfEWgmmvu3+Yygz0DroGlKjBi+x/JF848x1wmPmeeL69azxFK4piLw0kkxCpsGE/50acFpjAfcRc3usSosFyhTkvEqCJNiFCKct2EVzgCtKzYNXAeEm3hLWQxwiC8UVjGbumXDf6EDuGbV+vK5Ixf6wkELoIkq4MQm/BzMUIwR8hEEQEl/EtXnE3YbViJvQK4WJkNVh3UXhVMWnOAfWmCuMgEDxVWk9xChoQMbQq4F7U9H6e//8Nrcbi85GUs73HNVXwPCB/ENZIQCT5Zxug4gPUcmSVGhJzLP/taJBnw5ylu0HnAsSo+hkwpgiJjrbHq+A6mHeLxma7hRY/A8s2h4yAjK672OFUBW+xvjom2tZWlaKVqGcT7DCLmF7Iwfd5e4qQzCbVDHZ35aqKJKzKCHc0D1gqkEFb2wBZdzUAJwKau5MmFyJww53vfAx5fli/1dhQrVqWKvQF0s7tfL9yZrfvsHWE3T3IjLhNyvn6cIebm3MGCwrycO5vhlXh5gIZ07NRwxGplz0Nh1ISdPnt6idXDQSaGs4sbXBYHUDw/FhsMCkI6YCIJf+v0GrZmtE6Gra44COuPwu0b5jwwWe
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(4143699003)(11063799006)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aDZyYlFmLzFBaVhzOFZsejJkQS8yS1k0K1JSYmVSNzNqR2U2ZEpUY012c1RM?=
 =?utf-8?B?VzZ3ZWIzTW9tWFdRTnZIS3dGVzZ0dysvNFQ0dXI0WWdOdTQ4dkFGWFI0WjJq?=
 =?utf-8?B?a2tkVndabU1UVzhFRkVqQkxOVXdhQW1LOVBJcE9Obm4zaThRbkNKTmc1VG1R?=
 =?utf-8?B?Wmd5WDFhUXdnWUJvT0VvWmZ3elQ1RDB1MXZOKytsN05jYm9BaDlvM0NpTGo5?=
 =?utf-8?B?YnUzclFLa2E3aHVFdTE0Szl3TUsrNFg5dTJ3NmxaR2tPVjloVCtXZ2IwTVFQ?=
 =?utf-8?B?WkFxanFoN2lRMUVnZldvZUhPbloxRUlWcXdiblYyN01xQ3RLNm8xSm9XeE9V?=
 =?utf-8?B?L3pQTWRnbE1uejZreUhqZEFsM2ZGeVNDMHJOem94NE05VzBBYk0xdGswR016?=
 =?utf-8?B?M2M3eUpkOVJ5TS8xbEd1ZDN5bk9QYjNpbFJJL3hRSkJhOHUzWmdjb3QrZkFo?=
 =?utf-8?B?SG9NNjV6S2E4NTd1c1phT0IzTFFKVTBObWJVN1ZiYjZUK3lOR2NoaG5WWDFZ?=
 =?utf-8?B?cXhoS1oxUERSR1NWYnN3Wlc4eFpkQXN5bmw3dXRWTStVS0IzTy9BaVcreFZB?=
 =?utf-8?B?NUM0bHR4QVp1TWRoMkRKRDU4dDEvY3k0QVgwZjNSM29JVXUrWVIyd1ZMTmt2?=
 =?utf-8?B?V0ZHeWdIWDZuY0JBeWRBQ280Sk1wOG5ib1NXN0YzbVVIa0lhcXZhUmt5TTMv?=
 =?utf-8?B?STg2cGdWcVBYaGY2RFMwVUdleWdSMG1UaFY5eThwMGJwL05TeE5TM3NGRVJi?=
 =?utf-8?B?OURlWnVUM0tXbEhMK01lNTZDZGlCUGpNTHdqMC92NHliQjlsU2paTXpDT3kx?=
 =?utf-8?B?R0dNZWx4R0VMWi9LWWtJckY1NFoyRzNDSXh2cnRwME1pZFdiWmIxNU16OEZt?=
 =?utf-8?B?d0VjUXFRYjhES1RFWC9mRlh2d0pDUFhvdkdBenFFbVFTVVpPTDh6TE9DQXdz?=
 =?utf-8?B?bFpnMFFxREJaUWZCQmlqMlhMVWIwRHIwQnhmRzk4OWpIYUdrVUdJUUJMWjFV?=
 =?utf-8?B?eVBlaWF0WTk5dWQxYWpyRGdxUkc4V2tGRjIzYlM4RlQvTFloTFdpYU5tN3NU?=
 =?utf-8?B?Q1cwOWlGbkJzQ0lhNjRPRmhlMkM1UDZ2NEg3TUVienQvSHk4M21QdzUydUV3?=
 =?utf-8?B?czBvV05qMEhidFFBZk54SUwzc3NVdS9SUUptblg3UGJWYWVka2tERHBWaWpq?=
 =?utf-8?B?dmhldE5sS05VcTN6Tm1YVmJLTml4NDBTRFUwSi9jQzVEYlQ1RDhpOWFIdEp6?=
 =?utf-8?B?TDRuY092TmF5dWdMZjNhVGMxR3VRZURTTTJWdVdtVENtSW9KeEl6WEZ4T21P?=
 =?utf-8?B?cjhKVGI4dEoxcHM4WGNKanB2TVpxaXYyenNRRmJyTWJXRXR5OWpLWHhLbE80?=
 =?utf-8?B?QjNNZVRnbURhYStlaDVkRVNmYzRwSzVPK0cwWVFjMlB4Znh2cm9aTHhnZVlG?=
 =?utf-8?B?NXJCTFlXSksrMnRFSEZpdllPL1B4N1EwaWRoWDhxNkwxVmYvZFN5bWVDcVgw?=
 =?utf-8?B?SGxUbFBoM3NVY2hTRy96VjQ3VjlNOCtrZzQrSnJENE1vd1ZRRFQ3ZmhJVFU3?=
 =?utf-8?B?bDNkck9sRzJsQ1BWODRQajlYakp1RzJWZHFsUkZ4TEtsN0JVbmlyYjlRdm5Y?=
 =?utf-8?B?STlMWkMzZHVKT1ZEZkErUElsSnJjckJKUWFyTXZyaUU2QzNpMDVaSzBUQU1j?=
 =?utf-8?B?SEhSWDZhblRPa3RoMjl3VUNRZDV2YUlhU2NGVk9LMkp6Z09KWVNEeUN4L0pF?=
 =?utf-8?B?THIxb0Jpb1R2Y1g5S2JMV2ZXeHE1enBhaUFyL1o5MnVBa3N2ZnBXckl0TlRP?=
 =?utf-8?B?cWxsMnN2SXkrc3gyUm4ydURCR2ZxQktYak9NbDgzVDgwd3BOZTRzZ3NvZ2pW?=
 =?utf-8?B?UWpSZHJoa3ZEd0xyRWVWNkh4NnVaNVhSZmRCVG5VU2RXZVVaZC84TStXQWpH?=
 =?utf-8?B?TExUUFV5WXRlcnpUN2NoZzhxOHVjTWdLNTVVanp0MU0xOEhzTFNIUkFnekts?=
 =?utf-8?B?WERiRllkMUttUHlrY0locUgvd1Ztd09hRGx3K0lXMS85bGtreTJUTUVWaXlj?=
 =?utf-8?B?RDJXNFd2K2FaWnBaK1JwSkVCL2IwNkFKc08vT0FtVUtEL3QyTXlyWTJ4bXZW?=
 =?utf-8?B?cHJyS2VGZllHTHdBZ3c1MGVtOEJSQ2o2am5ObzkxMGt5cklvT3J5NnNGMklS?=
 =?utf-8?B?eUhGcHcvZnRDUGM2NUJRbjNIaTVFdS9TdU9LMFRSTkwyOTR6QXlFdjFNbjJw?=
 =?utf-8?B?bVRMaUZ3Ry8xSzltNmE4ZnhaNVhmbFNpcUNMeG5nN25mL1pHSmpnRy9LVDFv?=
 =?utf-8?B?NC9ReTE3TzhTNkVPYU5GaDJmTFRBRklpWE0vVkFDMUs4QXd3d2Mxdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1de76ffb-c024-4df5-b35f-08deb7edc467
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 10:34:56.5551
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5NNBttgGRGtWhxues6g3c39CY715j4Q3oSvmrwm/rWXfI1AfrCLU1yX3YdkdFSrWGWfKffYMQuH636Pvxb58xw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB5011
X-purgate-ID: tlsNG-720697/1779446100-83D67161-BC523BFF/0/0
X-purgate-type: clean
X-purgate-size: 435

On Wed, May 13, 2026 at 04:05:55PM +0200, Jan Beulich wrote:
> ... ("A switch label shall only be used when the most closely-enclosing
> compound statement is the body of a `switch' statement"). Use a form of
> fall-through instead. No difference in generated code, except for some
> line number changes.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri May 22 10:49:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 10:49:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316633.1586009 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQNRU-0002VW-Od; Fri, 22 May 2026 10:49:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316633.1586009; Fri, 22 May 2026 10:49:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQNRU-0002VP-LO; Fri, 22 May 2026 10:49:24 +0000
Received: by outflank-mailman (input) for mailman id 1316633;
 Fri, 22 May 2026 10:49:22 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wQNRS-0002VI-Mi
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 10:49:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQNRR-0068Pk-Jz
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:49:21 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a1034a1-2eae-0a2a0a5409dd-0a2a45019034-32
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:49:21 +0200
Received: from [40.93.196.28]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a1034af-c1f2-0a2a45010019-285dc41c42a8-4
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:49:21 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by IA3PR03MB8381.namprd03.prod.outlook.com (2603:10b6:208:543::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 10:49:17 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.21.0048.016; Fri, 22 May 2026
 10:49:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SkNPAbbhwoes0fUn5f4BUk3GAKMU4sFaBM9M/lVy2o34bPwYEluWETaHUlMKVq5f2Abo1+IAI2zsBg1uPo8SkenNEc6vlcCczfucammXcbABSlJ4+HiJt+f3VDpWChq+1Q1Z0z4zkTqRpo4r1ANgL595mR1f5Crw9CiN4DVY3wnwLEwROGwnkP5HtGAf9FKMhMgJT70AUMA0yC7oy0PQn6jaPmUbqeXEM462wxiwj5MBFmKH/ex+iyY40XxQbLvHRY5aL5mTh4kbyJ6l6AC6iXe9joo0VgDxElNKcETMSYV9OsGq5SFoeofGb+Obv0nFK3ECP/E6BagX3bl1GfM+vw==
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=TS9QdBnGXrR9AiAFyGjCmppIl+M0CN9c9ONzWjXg3Rs=;
 b=BA2mg67jQYqtVWGVUtCrAGdNJh+td0jWnT4rWUYloDb2wc9UFuROnAmJTl2rypWyIUxLhf2U3jQkwpAIGCqP3fYdXrGUYVPAwVIuUQJL7ry/ha5HCdyDPb2vjY3Z5jDOa2Tx6cK4oSatm8W19UVcciC3i2bCMNJe0lILVhrgNRqtgFySr2AmEjqgKzkVs4nfxVE1PhU2YFg32Y6jDkoPOjrAbdwx4OWM2FUKwxWJ2mHKjhy7rGDgv/aCh7NrY73TBS85fHKO3XOY5tuitH8HZv06t2+3kZ7vYxLRs+0KYGRWuP6cye1iEDXpBcQ18n8yeJnJKlsoo9QXT3cGQbPaNw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TS9QdBnGXrR9AiAFyGjCmppIl+M0CN9c9ONzWjXg3Rs=;
 b=s+127/T58tn4ml5rjP7ViTG3Vrp1AQeum0MXN8Xo4oPndWv0QW9XXBiTPciFzoSKN6MON1/Y69pMJUYgzFgannI2ckSlQAHkr6YqEASjEArR8osM1NDNAtgABMSviQc8eCwu2JhsCnLZtxxY9GkPL5Xy1yQftk1mKU0KuFewgzQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 22 May 2026 12:49:13 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 2/2] x86/PV: address Misra C:2012 rule 16.2
Message-ID: <ahA0qSC9w61Kx_4P@macbook.local>
References: <e3cdf68f-122a-4a41-a72c-8e6ed857b282@suse.com>
 <d04afa56-1197-4f5c-b158-b4b7eb7fc6b9@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d04afa56-1197-4f5c-b158-b4b7eb7fc6b9@suse.com>
X-ClientProxiedBy: MR1P264CA0213.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:56::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|IA3PR03MB8381:EE_
X-MS-Office365-Filtering-Correlation-Id: 7bef70d9-75ff-406f-18be-08deb7efc53f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|5023799004|11063799006|4143699003|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	qNCEyPBwJ+rnUu4SMjd04rCxvL3W1ioojKGELW04Kk82kpqOKbmr2Q5iMAY8jNNNrylXTRrDViizyOCtALuhNhjXy7QbnxCMMHJiqHJhfsVxAKXLXrYuD+puYuqFeDTHIVumheLNj1O+GWgbH6OQT5cmKKRBRBH8Y9mH4uJ85FkAYuMTHk1rfve/O5jzqwlV8dqbXj8ODHe1wN4Wt05YUbckUtkPhDEOGwpy5Sg7B/VxOwjF0w55uIpyfJkDfO3P3+sZQCc3iUkXC1O8zJw0G0A3D3zifSP1WSG7rrXMldRWt4VL9FtGp3D0GiDOZvrgt7XKjSz9UQgeSWtKMhVKvQ1pBh14T4qOM/TX8iaFnTVmoSyyIOLNG4CJLJ9jMc2rfSaeGXB92PruIBHy4mE+3ejnHTJQMNkzM8/mPZw46k3+7QWjQhI9/+hjPTM9/b6qxAo95iWZbLQYPMgwPnh98eii09gRLO7ZRqWhG0JbhoVLUgVLfzX6qg7YIWjfKY5kCu3OBHv6YxFYo1X8tO1UxWnMPrbiWjP4WIEDsxFwJDM0GGAlehNsVPVxBIVrmZel/niLJwTnjlPcvm+ptgPHZIMDVa7C6xW6nE43ya0yhDq1La5UFtwICnRokZLCZ6JNkpQKB+9DFRUTiVV+/aKrjXXHXfabIa6uTA5RzCcj9tEdxrk44UdwCMR4TwTqnYiu
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(5023799004)(11063799006)(4143699003)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MUdnZVMwbTRTUTl1SFhPcmc2dXlxTVp2a0FBcERMbERUSVlFekd2dlpoVXgz?=
 =?utf-8?B?azJsYTh6UEFGT0xLallmcU9qYktmWlhjM0FEd0wrcnY4R1FzVElSZys2QVln?=
 =?utf-8?B?VWxQcTRab1lSeXYzN2NVRWNEaDF3QmJBTkw1OXI0c25zMkwzNFdDU2d1cWQz?=
 =?utf-8?B?NzZJd1U4SE81ODhsQUFranQzYlRpS1dMUU1MbWVpa2pHSXlXUk9qZjQ0dVZy?=
 =?utf-8?B?ZVlTTkFSc1VjLzBRenh0NmgyNjN5K1pRREk4eUZYZVgvVnhRdTBjZ2NFRUVZ?=
 =?utf-8?B?Wk5QQWt1Q1VEc1RlUXhmUU5nSlhCTWRSckN3SEQzQ2ZhUWl5S2J1VDlRQVV1?=
 =?utf-8?B?c2tuRG54OTZ1SEhmd2Z5TmNhTVkzODRuWUc1cTJnYThIVno1NHNoMU03SDRa?=
 =?utf-8?B?M2ZOR0pGSDVYK3VaaWhXMVMxRk1YdXRZUDQ2K0tNUEpvbTB1Nm11KzU1b3Qy?=
 =?utf-8?B?Mm1YL3habVQvTlpTV3RoUnp0STFDejc5cTZTYm42OUUzZlYxbFFXeEtIb1Br?=
 =?utf-8?B?aUlwSm81bTJuNDdkODU2eUMvUHN0WlpnNEFzenZRem9DdTVKUS9QSVE1M3Jw?=
 =?utf-8?B?a3BpcGxuTkp5TWZXM09xVkJrQnliQ0dsZ3BEdVdScXpVRWI4aUpZemFRT2hW?=
 =?utf-8?B?WWxHb2plS1J4ajh1aEhnVmp4UmdRUHNqODRYRWFpUjhFVzh0alRQNkptUXhE?=
 =?utf-8?B?R3orZDY4ejJrQUdRQ2EvQ0lkZllyYzNObkQvN1ozdEJTTnUrSUwzTVd1OFBv?=
 =?utf-8?B?bnpnbEhlbjVLbEMxZWg0VW44bWFlMGdLQ1RCVWVmckg1NWFGT0prZ3NsaTh4?=
 =?utf-8?B?UmV2SmZGUGllUzVXRVNBK0ZIZndrUXRJa3RRNEJTeTBXNkNYMVI2NTE0ZUM1?=
 =?utf-8?B?VXFiVnBqb09Xb25TVVI5c1AxbHk5YTdzaEFjaVAzNlZIL3k5MWtzcThmZ3VC?=
 =?utf-8?B?bnlNUE13Yk1wSEY2SWhmMVBRaU9oT1ludmdWNytTNUwyd0Rndm91blZhVW9X?=
 =?utf-8?B?RWFEcWxVNmRUWHRQcllrV2U1R240dFZnSy9EU3YwV1JjRGYwSnpHOUlwU2g1?=
 =?utf-8?B?OHNUaWtQSjhuT2tWY3Qyd05sU2t5Z2tZWXYwVHBmY2Y0R0x0U2ovajBCNnVj?=
 =?utf-8?B?Yy8vS0RQc3haNGV3UjJwbStxM05QZzJCQW9FODF1akozNXI2eG5MbWlBMytE?=
 =?utf-8?B?OFlTdTlHT0JEdnJJa1QyMEdpUS9JNENmY0tJV0NrY1lNOStYTGltdk1Pb3FL?=
 =?utf-8?B?YzVtbW9vOEttZU1ER2JXNnFkempvUnI4eHRraTd6RkxGR3c0bC9RWmJSNGZC?=
 =?utf-8?B?VFF4aUw3SnkvbVRDQTJ1czlXNXo5ZVdKWWxTWU5vUmZjTGhndEZPNXYrU2NI?=
 =?utf-8?B?S0RQZ2VYQ1lVR1dVZE40bWZzbndsZ2c3UnEyMWlCSVA3WHVBYTlsSHVQQjhz?=
 =?utf-8?B?V1R3TzdPRS90OGhMUEgwK2QwRmd6ZE5lTDZ3OEltSjBqVXV2ejAxWEtoUGhW?=
 =?utf-8?B?ZUMrcEMxQmtRWDBvOWpTbVFkdjlOL1pXcHdmc3dNOVkxWnJnSE9tSTVJWE9z?=
 =?utf-8?B?djNtZVNnVDAyTEticHFaK3YrTldjcXNSSFJQNXhMSHh2eXZMNzl4NjVHb1V5?=
 =?utf-8?B?ZHpCU1V4bUZPaHV0QnBNdHRpY2dnVktQQ0lnYzFwV1E2TGpESFpxdmVmKyty?=
 =?utf-8?B?MklKSkFUR1hsYzE4SUZHRS9mN244S2tYMGtKdmpudm1EWVZYd0IzL2xkdWtR?=
 =?utf-8?B?UlFYZE5rNnh1QkpkRk9wTUxGMTRIdWdKZHV6UkpRelF6U0NOdWdhdXhKclhQ?=
 =?utf-8?B?djJXbFF6Rm5FU2lDaHVGZjc5K250SWYvbGVUa1R0RlhEQW5qbXFTUWd6Sndu?=
 =?utf-8?B?anFxWEMzV1V2eWZlajJtK0NybzIybkpOU1Nld3IvMlNvd3dHTGNIWVIwLzVt?=
 =?utf-8?B?U2RvMTY2SStPd0JWVVJiQU9JaHFWenpVcGFoNjBoS1VxV2wrYWgxL1kvbHpy?=
 =?utf-8?B?NUhJN3VUTmV1UDVva2dGQkFZWFJSS2J4L3BtcVc0OTVhdW1tQzRSQ0RsUFZn?=
 =?utf-8?B?SXl2Z0xkM2VGbnJnT1dWRGtGN0I2QytJVFBKV1RsS2sxM1VqSGpKSi9oOVJC?=
 =?utf-8?B?ZTR2MzJUeVZXc3hDOW9Nb2NkQzRMTk9rN3RVaTFyR01TTlBreGRIenpnejdZ?=
 =?utf-8?B?OE1VWHZwY00xOC91d21aQUprcTUwQVpRUHpUQkJSSDQxWVdYNnVpN2MvT245?=
 =?utf-8?B?UGozb20vZjJzOFpxLzgrcUNmUkliQWtTWTFRMmdRczkvUVVtSHJmLzNwS3Jw?=
 =?utf-8?B?NmNLTDlHalVtRjlqSy9CRWpGcjVFOVhRa1I5NFc0YW80QzdaVDI3Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7bef70d9-75ff-406f-18be-08deb7efc53f
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 10:49:16.9753
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: TZrtMWkfUaiW39dVc3PH4W8Tc3Ywi9tEzf34W8sZkUkLrKry/t72gF33FcyPZNM2LbWZVJ1qAUeD6UHOPXv89Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB8381
X-purgate-ID: tlsNG-d62444/1779446961-AEF58FF4-AC9442A3/0/0
X-purgate-type: clean
X-purgate-size: 2684

On Wed, May 13, 2026 at 04:06:20PM +0200, Jan Beulich wrote:
> ... ("A switch label shall only be used when the most closely-enclosing
> compound statement is the body of a `switch' statement"). While I don't
> really like doing so, use a few "goto" instead. No change in generated
> code (somewhat to my surprise).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

With one alternative below if you would like to remove one of the
introduced labels.

> 
> --- a/xen/arch/x86/pv/emul-priv-op.c
> +++ b/xen/arch/x86/pv/emul-priv-op.c
> @@ -897,7 +897,7 @@ static int cf_check read_msr(
>      struct vcpu *curr = current;
>      const struct domain *currd = curr->domain;
>      const struct cpu_policy *cp = currd->arch.cpu_policy;
> -    bool vpmu_msr = false, warn = false;
> +    bool warn = false;
>      uint64_t tmp;
>      int ret;
>  
> @@ -996,21 +996,21 @@ static int cf_check read_msr(
>      case MSR_CORE_PERF_FIXED_CTR0 ... MSR_CORE_PERF_FIXED_CTR2:
>      case MSR_CORE_PERF_FIXED_CTR_CTRL ... MSR_CORE_PERF_GLOBAL_OVF_CTRL:
>          if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
> -        {
> -            vpmu_msr = true;
> -            /* fall through */
> +            goto vpmu;
> +        goto check_relaxed;
> +
>      case MSR_AMD_FAM15H_EVNTSEL0 ... MSR_AMD_FAM15H_PERFCTR5:
>      case MSR_K7_EVNTSEL0 ... MSR_K7_PERFCTR3:
> -            if ( vpmu_msr || (boot_cpu_data.vendor &
> -                              (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
> -            {
> -                if ( vpmu_do_rdmsr(reg, val) )
> -                    break;
> -                return X86EMUL_OKAY;
> -            }
> +        if ( boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
> +        {
> +    vpmu:
> +            if ( vpmu_do_rdmsr(reg, val) )
> +                break;
> +            return X86EMUL_OKAY;
>          }
>          /* fall through */
>      default:
> +    check_relaxed:

Not sure it's much better, but I think you could avoid the vpmu label
at the cost of keeping the vpmu_msr local variable:

    case MSR_CORE_PERF_FIXED_CTR0 ... MSR_CORE_PERF_FIXED_CTR2:
    case MSR_CORE_PERF_FIXED_CTR_CTRL ... MSR_CORE_PERF_GLOBAL_OVF_CTRL:
        if ( boot_cpu_data.vendor != X86_VENDOR_INTEL )
            goto check_relaxed;
        vpmu_msr = true;
        fallthrough;

    case MSR_AMD_FAM15H_EVNTSEL0 ... MSR_AMD_FAM15H_PERFCTR5:
    case MSR_K7_EVNTSEL0 ... MSR_K7_PERFCTR3:
       if ( vpmu_msr || (boot_cpu_data.vendor &
                         (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri May 22 10:57:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 10:57:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316642.1586017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQNZR-0004XS-GF; Fri, 22 May 2026 10:57:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316642.1586017; Fri, 22 May 2026 10:57:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQNZR-0004XL-DT; Fri, 22 May 2026 10:57:37 +0000
Received: by outflank-mailman (input) for mailman id 1316642;
 Fri, 22 May 2026 10:57:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Alejandro.GarciaVallejo@amd.com>) id 1wQNZQ-0004UT-6x
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 10:57:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQNZP-00706o-4j
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:57:35 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Alejandro.GarciaVallejo@amd.com>)
 id 6a10368f-2eae-0a2a0a5409dd-0a2a450c82b2-46
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:57:34 +0200
Received: from [52.101.46.41]
 (helo=CO1PR03CU002.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Alejandro.GarciaVallejo@amd.com>)
 id 6a10369c-62f1-0a2a450c0019-34652e2973e1-4
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:57:34 +0200
Received: from SJ0PR03CA0131.namprd03.prod.outlook.com (2603:10b6:a03:33c::16)
 by BN7PPFABD533732.namprd12.prod.outlook.com
 (2603:10b6:40f:fc02::6df) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.16; Fri, 22 May
 2026 10:57:25 +0000
Received: from SJ1PEPF000023CB.namprd02.prod.outlook.com
 (2603:10b6:a03:33c:cafe::7e) by SJ0PR03CA0131.outlook.office365.com
 (2603:10b6:a03:33c::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.17 via Frontend Transport; Fri, 22
 May 2026 10:57:25 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000023CB.mail.protection.outlook.com (10.167.244.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.7 via Frontend Transport; Fri, 22 May 2026 10:57:24 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Fri, 22 May
 2026 05:57:21 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=heIg3oPrNBkbvrtOIc9FU5NWNI8BRo3MKDmcg0dUgW/hD1Mz4GxcvC897LM24FUQlkvG5xdLt0f+F9739ihKm8Wlw9URcSBR6vIHzJxAOuOkL4xNFRIQbcMIHWVdqm+iWQ5Yod1HF7g20eoIq5AW9ND4X5AW/qFoiXGHO+MV5WDUxPJCwxNrqgiCJn1ANz4IaT8Ki13fusvu9nMhNaN92Is4F24j05XWaSa/0WVuEX22SHIoDGtXKjyd2g9mCPKVbnDxAPCvWYNaXKNDSDVYJRSL6uANNHtvbhoGGV10TgXptw76Vlhnh+fcRP/fOv/hacIPbh/mGrlchikuMg4zHg==
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=qOh2jpqS2BR1EVriwkYl3p6XELwuMqsRKXo/u+NABBk=;
 b=GbiS7q4ASnq1eX999s2VRi271FDOYX9qBqwHkKFprEc8p3Jp7D8eGbNKyK53WHvZjuyUI4IT/GVPH3VCOAnwEKzzZqV5QnxDRJ0WQWTBpBoDC6i6MJe8CSwJ7UGhmYxviq4ibFyYeNHURQ5+Y5gSYYrcR4B4Hu+d3wYk/rIpZuiGfGlQExLgXwX8YKjiWpF7MsPCXeYrl946fjXrCsqCWK69FO/GmxxWccB8pwoLzM/sfLlZLBFMj8PS6xGOKxJD5kyx+8KzH0nWXABfccNc/MEdcNZ3t31kE0vw8uH+CgXU1lps7H0EVa0civaYsWVid8Vt5VXmsw/MLHJ1/uiLKw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org 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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qOh2jpqS2BR1EVriwkYl3p6XELwuMqsRKXo/u+NABBk=;
 b=y3xf3DInu3Y+0ER0VOy3IFU4ttZ90K9v+duNvguWa3txIN8gPvCrnDhWha610cTu0K/Affs9t9zKTZ5qouddVpQWsvRxOO8sJPmuqIplTtclp/PR1WEUA6JoLtZ2denRnqgv54XhciIbX+L6riHy/KTeuC2AfGBAdDbuOp2+Ask=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>
Subject: [for-4.22 PATCH] xen/gnttab: Fix TOCTOU race in gnttab_set_version()
Date: Fri, 22 May 2026 12:57:06 +0200
Message-ID: <20260522105709.25073-1-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023CB:EE_|BN7PPFABD533732:EE_
X-MS-Office365-Filtering-Correlation-Id: f988b662-9caf-406e-3ea4-08deb7f0e845
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|30052699003|6133799003|56012099003|18002099003|11063799006|5023799004;
X-Microsoft-Antispam-Message-Info:
	u+DETQJ11dN2U3XOzWA+EwtyC3xR2u48FWVQwgvzEqP/YGqvbFLs5ultd0jO4kXjh/YiJ5xarGja5lt8AfKiluoMKNkyMOokNpvParPQnwRQuQgHNkWNm4U2mnCvArzN3/E5O6a3dqV2PRSuaswt5Nb8WWY1iV17q8CONDwPakIO0qTIDUlDKfXCia44BthpR/JYCwolLr+Yb7ueD8mzH65Blf2Jn5PHPXUulT7wJl6qXTUA2XWlqpQKZlzoIG3DrI2leYTBIgYRQsZCx6H2I/9ygKUybiiEaONlOyRXREI2BXOX57YP6ARVe++jZVVlBXGX4k5lF4utK9lZnNmyC6quO0ozeOKIp51EW9waFXOmCMsO+RHu9E6CYDlUXwKsLOeNpNokBhWq+wq9aNbyRYFH0C8x2khDKGv5lhjDsag2VTo0aUWDiLk7zvyOGltmCajxtBZXRGTwdvC9b391H8/vjNLWNLijdARebPbmwj8wGyyy+DQYyx470m+bPRM7I81vfpKErHp4j3R6L24iyz2OWLNMK7Emnt5wp5iZcHnXivg4U94MhACEghMx+6a999fGUqilRw3Yf7QKzXKMjYnp2KJnA8uc8M9odx/N8uB8P5LSu7cU2hqxNGMluB+jwGTve43MGUV0u6G/Onc9ZcDx5eJ+QQo4X8LmtM3f9YptMFOaOc58udfhhL38DSUBLsYLtG5X+A2v5S+r1ntlrznBJ9tah5avl/CjRoQCwYY=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(30052699003)(6133799003)(56012099003)(18002099003)(11063799006)(5023799004);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	lZvZDlHK1L9QYasQZGBcvyx4LttVpOKkXe+gwlWtpli+ijt9RdyzHn9S+OhCzbnh+weF4J4v48zMz62T7SE+RxaHeQLKPO3e7XYY0wT+86z5YIEZ3qcn3dOI5w4Wj6qLAwZPQbq+mN7xqnkh1udx9WI6QPsX3OS0bIVbtdyzOlV1oEafEv/jQKXb5C1U2kvEtxyRxNYTsUtzomyNNkuiUiQpsKEyCUpA7TINMu06tMkgSYmRyh8dVVhqqDv6dazGrpuEGO1MStPWqSn7euGanF+t1Pprh5fHCnvETUFcThPtfkxpPvvSS5pbHm1piWpkc96d8Kc7otRZ6xGchjVbg2f1h9967BGfVJ2CgTeY+kwXvZqxd/OeMjG4+qS8Eu3HlCPg5/+1ahC/jh417oldG0PmhspfD/p8DbW3Mk5x/UTXE03mIelyoliP8O/CC+k3
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 10:57:24.8730
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f988b662-9caf-406e-3ea4-08deb7f0e845
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000023CB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPFABD533732
X-purgate-ID: tlsNG-d25034/1779447454-E377ECF5-B4D38192/0/0
X-purgate-type: clean
X-purgate-size: 1763

Move first read of gt->gt_version inside the critical region of the
rwlock, otherwise concurrent gnttab operations (silly as they would be)
may get mutually confused as to the actual current version.

Fixes: c1488502c949("grant-tables: do not fail attempts to...")
Reported-by: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
This is far from a problem in practice, because kernels invoke this once and
then are done. Still, correctness mandates correctness.

There are a number of lockless reads of gt_version (e.g: right after unlock),
but they aren't very worrying because they are effectively snapshots of the
instantaneous version. I'd feel better if they were all atomic_read(), but all
Xen ports guarantee atomic access on aligned 4 octet fields, so I couldn't be
bothered to go chase them.
---
 xen/common/grant_table.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 2dda1abd3f..ac9fed6001 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -3184,11 +3184,12 @@ gnttab_set_version(XEN_GUEST_HANDLE_PARAM(gnttab_set_version_t) uop)
     if ( op.version == 2 && gt->max_version == 1 )
         goto out; /* Behave as before set_version was introduced. */
 
+    grant_write_lock(gt);
+
     res = 0;
     if ( gt->gt_version == op.version )
-        goto out;
+        goto out_unlock;
 
-    grant_write_lock(gt);
     /*
      * Make sure that the grant table isn't currently in use when we
      * change the version number, except for the first 8 entries which

base-commit: aaa34f23ac65b75c94d069e407a2698602f18d56
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri May 22 11:00:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 11:00:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316652.1586030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQNcX-0006MZ-UX; Fri, 22 May 2026 11:00:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316652.1586030; Fri, 22 May 2026 11:00:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQNcX-0006MS-Ri; Fri, 22 May 2026 11:00:49 +0000
Received: by outflank-mailman (input) for mailman id 1316652;
 Fri, 22 May 2026 11:00:48 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQNcW-0006ML-Bg
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 11:00:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQNcU-006B5O-A3
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 13:00:46 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a10375b-5cb7-0a2a0a5109dd-0a2a450cd1ec-24
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 13:00:46 +0200
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a10375d-62f1-0a2a450c0019-d155dd32d08f-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 13:00:46 +0200
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-44ccbd3290aso6557903f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 04:00:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d4741bsm3492257f8f.22.2026.05.22.04.00.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 May 2026 04:00:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779447645; x=1780052445; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qJ9aqb41laxGHbBhX8BrmHK/RbTseMwNuLRQmeNWdZI=;
        b=IqYi/BYqZpa2TlOsZ3wCpPddObeMi6UJ8MLt/nwsW1ERYh3wqs6iTLlGF6nO8xeT7o
         mv4TeZYypi8X+qI7JzaNk+C35sPE9GNbvIIa6pX1oOQJOL1fs3UStyiLJPaQbZokOzpK
         w54/9UKNcz8WxfClactVtYnOwob5VUFhjjIQMUIAeTSNpQhe7W5qhI5sTUaJiYB7VduR
         D8Ybf0PX5w/dkxd7LyY3jX6XXGB469zsnXMstmy2NbUHphrFUfue5Fmcyqm6xRCBl6xK
         l9IGAorsUIdxWfgB0zjg/iBIPNsPIBkmwxtDqDRFhpikQWIIg7X+fdPmijwwbNXdTEbk
         i/1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779447645; x=1780052445;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qJ9aqb41laxGHbBhX8BrmHK/RbTseMwNuLRQmeNWdZI=;
        b=aAvBWtUxx+KoqG0Nttk5e2WEnnVYbDYIla0CxAPq8IWwhUj018Qijfom17EpgvnmMt
         UwFIXMxAllH5i7IXmNOHfADuNSYdpiGc9xbVzSJzC+yVF7hw6ZqkWKhWhsKf1shA04Fd
         7Xoht1YPXY/Q4zgs+ViMQgqkwQ2RfeDRZoRmch4iLuHcxbA+AND/aJbS/zwxqMv3kqyV
         nHE+8p37wxTzPgBK4sUK47GTw6wnObYkSdhjm+0EH2rxLSVNZ/GxqhF55n0hR7dsahuC
         wWXoNF5BfcudfNHJAk5VzQx6Lt0nRFTcLmUR8WubHLI731zV+Fa7+1aHZSBc4f7WliQx
         zAnA==
X-Gm-Message-State: AOJu0YzLaJE0nUwPNNTrvPvSgib3w/WUvfavEd6cy13z7jMpskKJzwaq
	YIpS1E5Rljj/Z43IINwKA+6P7S1Gyzrww6RSv0pkXQPSVoH8ZHMq0O+yH7EjRMsYvMDXiAlao3r
	3SjM=
X-Gm-Gg: Acq92OEthDcj3A6QJn2kuUXi/6UdI9/NDSU0HUy3Nc1uQNtV7SSvkOU+c24+jpU1kkw
	UFsPWvyR3M4MLqk/AhRbThwKxGKuYueKi/RdOJaWrOdKOOXlKE4g8cqUQrgTeUmilHB0FXGADaM
	sbzVjSi/q5hDlB08AQ7EPjYK6V+x26pXD1cqIunuArIfkI+f0MMYPgILdELNP5A/50Cg02eIhpd
	usp8pV8QbHCa17DKXcrCxqpVqPQmtZN3XoHwEqxj1GnAhpQMyBwdq+bahR32Poc7UrSGb8R51ri
	FzlJ6m04GG65II3gRx3Wtsm6ib48AfI7hQgrO/NOMa3ORndimhVrIw2UOZLcj4VInQTxHmOW1qq
	ClByROQH/Kd3TJaNEH5TelXeRRTDgtGC8LniY8VBB22hrG9IpOdC40DTJT0wuTQy1uOHAQE2fjN
	UItqmmIfUsXjIiVOo3Ao5c8JVtGmT14nR8mTmN5iBzxphTneomGRP59NIFT0634CpJ3ryVh3n80
	TS7mc2fLbiJbEI=
X-Received: by 2002:a05:6000:616:b0:45d:d092:ac9c with SMTP id ffacd0b85a97d-45eb38c2374mr4765776f8f.33.1779447642705;
        Fri, 22 May 2026 04:00:42 -0700 (PDT)
Message-ID: <b8d684f4-44e9-4ece-80da-c14bb28fc5b3@suse.com>
Date: Fri, 22 May 2026 13:00:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/PV: address Misra C:2012 rule 16.2
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <e3cdf68f-122a-4a41-a72c-8e6ed857b282@suse.com>
 <d04afa56-1197-4f5c-b158-b4b7eb7fc6b9@suse.com>
 <ahA0qSC9w61Kx_4P@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ahA0qSC9w61Kx_4P@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1779447646-D956FCF5-BF772BC7/0/0
X-purgate-type: clean
X-purgate-size: 2911

On 22.05.2026 12:49, Roger Pau Monné wrote:
> On Wed, May 13, 2026 at 04:06:20PM +0200, Jan Beulich wrote:
>> ... ("A switch label shall only be used when the most closely-enclosing
>> compound statement is the body of a `switch' statement"). While I don't
>> really like doing so, use a few "goto" instead. No change in generated
>> code (somewhat to my surprise).
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

> With one alternative below if you would like to remove one of the
> introduced labels.
> 
>>
>> --- a/xen/arch/x86/pv/emul-priv-op.c
>> +++ b/xen/arch/x86/pv/emul-priv-op.c
>> @@ -897,7 +897,7 @@ static int cf_check read_msr(
>>      struct vcpu *curr = current;
>>      const struct domain *currd = curr->domain;
>>      const struct cpu_policy *cp = currd->arch.cpu_policy;
>> -    bool vpmu_msr = false, warn = false;
>> +    bool warn = false;
>>      uint64_t tmp;
>>      int ret;
>>  
>> @@ -996,21 +996,21 @@ static int cf_check read_msr(
>>      case MSR_CORE_PERF_FIXED_CTR0 ... MSR_CORE_PERF_FIXED_CTR2:
>>      case MSR_CORE_PERF_FIXED_CTR_CTRL ... MSR_CORE_PERF_GLOBAL_OVF_CTRL:
>>          if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
>> -        {
>> -            vpmu_msr = true;
>> -            /* fall through */
>> +            goto vpmu;
>> +        goto check_relaxed;
>> +
>>      case MSR_AMD_FAM15H_EVNTSEL0 ... MSR_AMD_FAM15H_PERFCTR5:
>>      case MSR_K7_EVNTSEL0 ... MSR_K7_PERFCTR3:
>> -            if ( vpmu_msr || (boot_cpu_data.vendor &
>> -                              (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
>> -            {
>> -                if ( vpmu_do_rdmsr(reg, val) )
>> -                    break;
>> -                return X86EMUL_OKAY;
>> -            }
>> +        if ( boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
>> +        {
>> +    vpmu:
>> +            if ( vpmu_do_rdmsr(reg, val) )
>> +                break;
>> +            return X86EMUL_OKAY;
>>          }
>>          /* fall through */
>>      default:
>> +    check_relaxed:
> 
> Not sure it's much better, but I think you could avoid the vpmu label
> at the cost of keeping the vpmu_msr local variable:
> 
>     case MSR_CORE_PERF_FIXED_CTR0 ... MSR_CORE_PERF_FIXED_CTR2:
>     case MSR_CORE_PERF_FIXED_CTR_CTRL ... MSR_CORE_PERF_GLOBAL_OVF_CTRL:
>         if ( boot_cpu_data.vendor != X86_VENDOR_INTEL )
>             goto check_relaxed;
>         vpmu_msr = true;
>         fallthrough;
> 
>     case MSR_AMD_FAM15H_EVNTSEL0 ... MSR_AMD_FAM15H_PERFCTR5:
>     case MSR_K7_EVNTSEL0 ... MSR_K7_PERFCTR3:
>        if ( vpmu_msr || (boot_cpu_data.vendor &
>                          (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )

I was actually happy to see this last construct go away, which your
variant would retain.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 22 11:03:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 11:03:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316662.1586040 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQNen-00074b-DR; Fri, 22 May 2026 11:03:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316662.1586040; Fri, 22 May 2026 11:03:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQNen-00074U-AD; Fri, 22 May 2026 11:03:09 +0000
Received: by outflank-mailman (input) for mailman id 1316662;
 Fri, 22 May 2026 11:03:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wQNem-00074M-92
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 11:03:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQNel-00204M-Hb
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 13:03:07 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 6a1037eb-e002-0a2a0a5209dd-0a2a4502d2d4-4
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 13:03:07 +0200
Received: from [103.168.172.144] (helo=fout-a1-smtp.messagingengine.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 6a1037e9-af86-0a2a45020019-67a8ac90cea9-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 13:03:06 +0200
Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51])
 by mailfout.phl.internal (Postfix) with ESMTP id 4DFEEEC00F3;
 Fri, 22 May 2026 07:03:05 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-11.internal (MEProxy); Fri, 22 May 2026 07:03:05 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 22 May 2026 07:03:02 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm3 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1779447785;
	 x=1779534185; bh=wzMxu6DpRwzhvtfIxgBsUGd6A+m2pVfueym5QBf5w/M=; b=
	PkKgFNXffeBTd+v2F6jpv0LUlIbvHu8jzSjSDZZW5B3ct+XJo5GrXcAJSf8kFyb/
	ttPyUUbhK19hKJEaKofmgEjrmXB6MHyQWyCkd3JYqqJx7SBzGkmxISfTlrrSFCtz
	PzHQ4j2UYgtsZknEgBMuWTQNLGnOnVdNCQV+tvs3trvh5rGs+I41y+LnZjhvVwRd
	UZxdPcwsMxOxGXdCSvug9eBsF4a6nt0i03sGyWiDDa8WDBFm2wVTNfmrIFONSZL6
	g8B1bJI6UTkBQvTZYwAG71EcIltccJucSCD3O+CIvk1h/Ta/v9mX+387TbUkjB9r
	121JrUxTpGVf1MkF/9Z6BA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=
	1779447785; x=1779534185; bh=wzMxu6DpRwzhvtfIxgBsUGd6A+m2pVfueym
	5QBf5w/M=; b=fdbOhnrB5ClSIFSrYIhn3I/aaukOMjHKKp0rwoVdsFe8kjN5D5G
	zolVo7zzoSFuKgwpQdHcwcLwMy6ZghHnWw2rpc0ZGxMR8kYAaGNbZPrG45HsVRJ1
	Vr4Io16W5q9m8LFZ8pFVBWpS3iArYxg75oTu2Z5ZcKVTRmDz3GaEOvyIr+w8CrBP
	ofNj81k+0AMD1y1+ZCj6Ld9jDqU6NJ8V9OPW3kIw0ziPAiyHW/Xp30XWHpmzp0+1
	yiguq1eEUVjRGRl6OVNMqky/YQNqG1rYY9iz5uuT7i+DXclMH0AbZt7G9sQUPmi9
	/yQ5XDChTyaXULWxktuSMd2CDhQ8XCxp7HA==
X-ME-Sender: <xms:6DcQagmPvgNulfEG4cGfNTnfyg00uACIpEpT1-rSW0pSefmEfph5OA>
    <xme:6DcQamN7W8n6pMY597G8LUIx0fZNoMjaoH-prFEN0N_d6km9Jhv970hkPM-2jMLKR
    -kNkbMp0OlReVXPUoCFxv17-L2Cn9Mh9uddjiYMG065F_r9>
X-ME-Received: <xmr:6DcQaq6cAgN9hNQDnTIE1QL0-f2wn5L6tWC8Y7LdSmbPxEsT9UquSahgo81Mm3JYX9J3V_BwimtSWUPphqCSpswjVNPdBE7rrP8>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduhedttddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiuceomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfekuddtffettefhieeuheff
    keeuffelvdffuddtteetledtveekfeekleehjefgnecuvehluhhsthgvrhfuihiivgeptd
    enucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgv
    thhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepudefpdhmohguvgepshhmth
    hpohhuthdprhgtphhtthhopegrtggtvghksehinhhvihhsihgslhgvthhhihhnghhslhgr
    sgdrtghomhdprhgtphhtthhopehjsggvuhhlihgthhesshhushgvrdgtohhmpdhrtghpth
    htohepohhlvghkshhiihdrkhhurhhotghhkhhosehgmhgrihhlrdgtohhmpdhrtghpthht
    oheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhope
    hsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopehjuhhlihgv
    nhesgigvnhdrohhrghdprhgtphhtthhopegsvghrthhrrghnugdrmhgrrhhquhhishesrg
    hrmhdrtghomhdprhgtphhtthhopehmihgthhgrlhdrohhriigvlhesrghmugdrtghomhdp
    rhgtphhtthhopehvohhlohguhihmhihrpggsrggstghhuhhksegvphgrmhdrtghomh
X-ME-Proxy: <xmx:6DcQaqaptlop6gm8t6kC3KoGGRoezDuyVyQ38ZaBL8INCY49GjRy5A>
    <xmx:6DcQandqI676eGmMF8Ab8j24YtxhSV4z9sxnk9qSsXT1nODQYYnspQ>
    <xmx:6DcQap6KGVw9m1iO6-rqFj42Mvg5tW8GfxHktcsXysZLDS6-MG342w>
    <xmx:6DcQakbc_3AlkVBLRsbyNbCZLjoLgQCrMe-a-K-CNv3TOCjN4_qI-w>
    <xmx:6TcQasIEeEU15QtIZTv3pgsQsANp4e6mKJbyg1rw1EF6vWklgEW5IE94>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 22 May 2026 13:02:59 +0200
From: Marek Marczykowski <marmarek@invisiblethingslab.com>
To: Szymon =?utf-8?Q?Aceda=C5=84ski?= <accek@invisiblethingslab.com>
Cc: Jan Beulich <jbeulich@suse.com>, oleksii.kurochko@gmail.com,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 for-4.22] EFI: Fix boot from a device without a file
 system
Message-ID: <ahA35DwKm8LM9H_x@mail-itl>
References: <5ee376dc0df448437f386ab2606c42d63a515ca1.1779194154.git.accek@invisiblethingslab.com>
 <809b9976089eaf02e864684461ced4e939dbcc83.1779271357.git.accek@invisiblethingslab.com>
 <31ee4635-0eaa-41cd-8fad-223fb11cb9bc@suse.com>
 <b7708cbf-ea9f-4ba1-a93d-3981eacabbc7@app.fastmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="+lvQ2y5XmQnkW01G"
Content-Disposition: inline
In-Reply-To: <b7708cbf-ea9f-4ba1-a93d-3981eacabbc7@app.fastmail.com>
X-purgate-ID: tlsNG-720697/1779447786-8117D161-0B31C4AF/0/0
X-purgate-type: clean
X-purgate-size: 5782


--+lvQ2y5XmQnkW01G
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 22 May 2026 13:02:59 +0200
From: Marek Marczykowski <marmarek@invisiblethingslab.com>
To: Szymon =?utf-8?Q?Aceda=C5=84ski?= <accek@invisiblethingslab.com>
Cc: Jan Beulich <jbeulich@suse.com>, oleksii.kurochko@gmail.com,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 for-4.22] EFI: Fix boot from a device without a file
 system

On Wed, May 20, 2026 at 02:50:57PM +0200, Szymon Aceda=C5=84ski wrote:
> On Wed, May 20, 2026, at 1:58 PM, Jan Beulich wrote:
> > On 20.05.2026 12:30, Szymon Aceda=C5=84ski wrote:
> > > @@ -1526,31 +1537,33 @@ void EFIAPI __init noreturn efi_start(EFI_HAN=
DLE ImageHandle,
> > > =20
> > >          gop =3D efi_get_gop(&gop_handle);
> > > =20
> > > -        /* Get the file system interface. */
> > > -        dir_handle =3D get_parent_handle(loaded_image, &file_name);
> > > -
> > >          /* Read and parse the config file. */
> > >          if ( read_section(loaded_image, L"config", &cfg, NULL) )
> > >              PrintStr(L"Using builtin config file\r\n");
> > > -        else if ( !cfg_file_name && file_name )
> > > +        else
> > >          {
> > > -            CHAR16 *tail;
> > > +            ensure_dir_handle(loaded_image, &dir_handle, &file_name);
> > > =20
> > > -            while ( (tail =3D point_tail(file_name)) !=3D NULL )
> > > +            if ( !cfg_file_name )
> > >              {
> > > -                wstrcpy(tail, L".cfg");
> > > -                if ( read_file(dir_handle, file_name, &cfg, NULL) )
> > > -                    break;
> > > -                *tail =3D 0;
> > > +                CHAR16 *tail;
> > > +
> > > +                while ( (tail =3D point_tail(file_name)) !=3D NULL )
> > > +                {
> > > +                    wstrcpy(tail, L".cfg");
> > > +                    if ( read_file(dir_handle, file_name, &cfg, NULL=
) )
> > > +                        break;
> > > +                    *tail =3D 0;
> > > +                }
> > > +                if ( !tail )
> > > +                    blexit(L"No configuration file found.");
> > > +                PrintStr(L"Using configuration file '");
> > > +                PrintStr(file_name);
> > > +                PrintStr(L"'\r\n");
> > >              }
> > > -            if ( !tail )
> > > -                blexit(L"No configuration file found.");
> > > -            PrintStr(L"Using configuration file '");
> > > -            PrintStr(file_name);
> > > -            PrintStr(L"'\r\n");
> > > +            else if ( !read_file(dir_handle, cfg_file_name, &cfg, NU=
LL) )
> > > +                blexit(L"Configuration file not found.");
> > >          }
> > > -        else if ( !read_file(dir_handle, cfg_file_name, &cfg, NULL) )
> > > -            blexit(L"Configuration file not found.");
> > >          pre_parse(&cfg);
> > > =20
> > >          if ( section.w )
> >=20
> > Seeing in particular this hunk - why not have read_file() call the new =
function?
>=20
> This is because get_parent_handle not only sets dir_handle, but also sets
> file_name to something like xen.efi or BOOTX64.EFI. The quoted code then
> replaces .efi with .cfg to get the path to the config file to load:

Yes, especially for this case, get_parent_handle() needs to be called
before read_file(). Other calls don't need that, but I'm not sure if having
two ways of calling read_file() would be better.

Speaking of, the dir_handle=3D=3DNULL case in read_file() is unreachable
now, right? Maybe can be replaced with an assert?

> > > +                while ( (tail =3D point_tail(file_name)) !=3D NULL )
> > > +                {
> > > +                    wstrcpy(tail, L".cfg");
> > > +                    if ( read_file(dir_handle, file_name, &cfg, NULL=
) )
>=20
> I considered calling ensure_dir_handle() from read_file() for the other
> call sites, but this would:
> - still leave the explicit call in the quoted hunk, so it's a bit
>   inconsistent (most calls implicit, one explicit)
> - requires passing loaded_image to read_file + changing dir_handle
>   argument to a pointer
>=20
> Happy to do it in v3 if you think the call-site savings outweigh
> the inconsistency and the extra argument.
>=20
> > Most of the churn here would then go away.
>=20
> The hunk above is the restructure of two else-if branches into a single
> else block with ensure_dir_handle() on top. Most of the churn is
> indentation.
>=20
> Szymon
>=20
> (ACK on sending new patch versions as new threads)

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--+lvQ2y5XmQnkW01G
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmoQN+QACgkQ24/THMrX
1yyxoQgAjlBHwLXNAam5S09OUdm64jI8DNxh5plkhgZq3yx92YJujMLr5+Cnlg2h
66nG37AkIJfpzI8xM/KiAdnmoSy7kMbgmTOyIq5CSrntpVD41Tmy3RxDIJhTXUJj
y1SkKjwfUJ/t9FrKJT5yEn9ZKWilGW5L5odCot4zsW06oD5kHIroSJ2EHKK9ZZli
1ZtJ/1uM5bE8GId+GqXm4mgP9QG07r6rzNycfuPq8jAtbivOZaguhSpXAVKvJ4qw
B5Oc81I64xe/vTmAo8jSK22m2xK9T0tsT5DJeyMEH7Bqf/Xb9BAWZeeSp2cF9gnP
Nnsy2ymQRg6b31ARoQlokkVv2Gxeqg==
=5vdS
-----END PGP SIGNATURE-----

--+lvQ2y5XmQnkW01G--


From xen-devel-bounces@lists.xenproject.org Fri May 22 11:32:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 11:32:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316691.1586049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQO6Q-0004Ht-Lq; Fri, 22 May 2026 11:31:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316691.1586049; Fri, 22 May 2026 11:31:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQO6Q-0004Hm-JC; Fri, 22 May 2026 11:31:42 +0000
Received: by outflank-mailman (input) for mailman id 1316691;
 Fri, 22 May 2026 11:31:41 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQO6P-0004Hg-3S
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 11:31:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQO6O-006HyH-1b
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 13:31:40 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a103e87-5cb7-0a2a0a5109dd-0a2a450cae20-48
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 13:31:39 +0200
Received: from [209.85.221.54] (helo=mail-wr1-f54.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a103e9b-62f1-0a2a450c0019-d155dd36a864-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 13:31:39 +0200
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-44dd5cb0f81so5566419f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 04:31:39 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d70d89sm3734890f8f.37.2026.05.22.04.31.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 May 2026 04:31:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779449499; x=1780054299; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cS+xhpdW4/9T0o18/WwgltAV9N9KT6izsx/rOGJbAS4=;
        b=dOc09XxzvMNazY4jE/VCZiogCSGkOES6p8fnFFz5hYKMBMjWp6tKYa87Igvsy5rgjd
         xzPuzdDpIHUcKm/6gJTftmRdx3M6JeqVwlKjgoR50lRa3zyYZ7ehxLxcv9tz5a0k8nRH
         t6A4YiSk6I0U/hp/Uvpkxucw66la/05sFSqVbGlZuL1q7HgYpiIOAUUCH+V5kMuME/9S
         mELmwyNvfx5ywRSL+U0s/tr6oJLsoPsJWMpLFqQRBB2WoPd9T8BctW2I1R1YKNMZZL4w
         pls2HJcFjghixys647aVGrthGwumjz9ZR+KsoKiImNorUUfDkQX0jq2cnxGH5vyKleGM
         SQOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779449499; x=1780054299;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cS+xhpdW4/9T0o18/WwgltAV9N9KT6izsx/rOGJbAS4=;
        b=Ml3S+uqVqfjW5lxqOau2vlf9agxAe/o8I+cOpAY0m+jXHk6lE7dptCBaGhxhRkKAXI
         8nCf/euK8Z7dMjx5je+zqvJIsbWO7e4USLx8LooT9L23zQbVQE//3eiciid9kGFJ6+lC
         IYWlcep4LdicNAxXFPB9pk6f/oY1G0o0Rggk4hK7O2eoMCZVaS7f0ST0ex5cbJhGENbw
         6FBQTMybZzVJxGVyA97S5DV2ikTtoPyyrrIZkMhH4w/P1PcpYp4kXzhK+To+HjTp+cjH
         qCZcKY81Zi1oWIH+vd9MrMOgGieTkvhz21Ozf8BAp9XlkDPU6QvxXZvNRj8FhwOklM+S
         J8Aw==
X-Forwarded-Encrypted: i=1; AFNElJ/8TkQyw35Mxm28UPKGSPcSJhe33mxJ6ktsbR04Jf2IqM0KDIGsn3MPvUzxy8dRcZEHL7q4JsG/N3A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyWcJyScErM8+YVWoEW7W5SLc1neJ6DWS1Hs8/SqoUG5YiuzyKc
	HTzQ9LLMvEmJZkJj0ApV2/s8uuIDfU92Au1YncVsF6srstBbEJ+M57Jp8TXjDGP38w==
X-Gm-Gg: Acq92OHRdEea5K+qGRnYCAR7uO61cukKZzwnvVzowntC6KY4FrlQ4iwDVL+vp9KTfnd
	US0UPdax+YQYFbZ1Hc69EXVoXjedjeg8V/Opwtb1DIndTG6aMiiddRMXvI4X1OHOBf+ShvQUHNe
	AYJEjPAkks+6bDR6gNSxBiLeYWs2ckQdG28u56LDg/Pkxfexo2IJJxCjQ6VFKaELkwOcKnK7Z68
	1LMURDpcp6sg/cyfnUaivZc3HUipr7HY0eojfJABOZcZ4t1WQAJILoK/9hiy1Fo38Z9kBubgZna
	JofSxpZenufuA3XZHCwRfFjHsGn5wcw2SOjQ6V+hqqZpj3POjGYnUyPdMYtu6hhK1dRYq6rzOI7
	A7uw4hiKKUOgNkYeP6/sr6ta4IwOR3TwpnXnW3m7sQU+fpmA7KEGFS21a9MH31Ewc+2CljCa6XQ
	wMAE75gq+Z5dPA0P6MFJhc8EfQGVN0XJqFkr0Uf/fz6x4ICRS1VxKuEnE8d9j3klvLnnMF0j+Ui
	cb8HLeH1s0hJVE=
X-Received: by 2002:a5d:5d81:0:b0:45e:91c1:2518 with SMTP id ffacd0b85a97d-45ea31a1efemr10182196f8f.19.1779449499176;
        Fri, 22 May 2026 04:31:39 -0700 (PDT)
Message-ID: <8c394056-36a8-426c-8c09-ec7594202b4a@suse.com>
Date: Fri, 22 May 2026 13:31:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for-4.22 PATCH] xen/gnttab: Fix TOCTOU race in
 gnttab_set_version()
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20260522105709.25073-1-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260522105709.25073-1-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1779449499-E0F62CF5-C4D05F02/0/0
X-purgate-type: clean
X-purgate-size: 957

On 22.05.2026 12:57, Alejandro Vallejo wrote:
> Move first read of gt->gt_version inside the critical region of the
> rwlock, otherwise concurrent gnttab operations (silly as they would be)
> may get mutually confused as to the actual current version.
> 
> Fixes: c1488502c949("grant-tables: do not fail attempts to...")
> Reported-by: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>

> There are a number of lockless reads of gt_version (e.g: right after unlock),
> but they aren't very worrying because they are effectively snapshots of the
> instantaneous version. I'd feel better if they were all atomic_read(), but all
> Xen ports guarantee atomic access on aligned 4 octet fields, so I couldn't be
> bothered to go chase them.

Sooner or later we will want to deal with all (latent) problems of this kind.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 22 12:24:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 12:24:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316724.1586071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQOvB-00055Y-JO; Fri, 22 May 2026 12:24:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316724.1586071; Fri, 22 May 2026 12:24:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQOvB-00055Q-FM; Fri, 22 May 2026 12:24:09 +0000
Received: by outflank-mailman (input) for mailman id 1316724;
 Fri, 22 May 2026 12:24:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fa4847a000f373@swg.vates.tech>)
 id 1wQOvA-00055K-3L
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:24:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQOv9-006ODu-Ej
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 14:24:07 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fa4847a000f373@swg.vates.tech>)
 id 6a104ad9-5cb7-0a2a0a5109dd-0a2a45039680-28
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 14:24:07 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fa4847a000f373@swg.vates.tech>)
 id 6a104ae6-672d-0a2a45030019-b9ff1c2292ed-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 14:24:07 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e4fa4847a000f373.006 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 22 May 2026 12:24:02 +0000
Received: from l14 (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id B668786A30;
 Fri, 22 May 2026 14:24:01 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=8i7nULkws/S/u415AReAU6V5YZyWrzfJhGhmffEUBJI=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=odlHCq05VRUp1R2kNjuYhFcO45q3J1ZuKA0BRIb4a79Q7Z5ABaGAEVcCCMoAdKqKthyF5a9Yf
 n1D3betJiY2Im8UwiElHWN9A8Zeu/nkXVyjq17LKIOow6wlK5oVQvicqAZ5pOaClJmo3HLPIDfd
 lH2U59HjUX4HqsEpmCNzBJLLD1SRXbaEotiQfT7vB7J6jN9BH0GAX6Nmz/B31+G5yN2CXwWUccn
 vuDEBwaJlbMtDf8712arZCvjWuYRj/3F3LzG99JDBVQE562k2L6XJVnyAtRETTgqM7netxkmTz8
 x6JtWKn3X4Nu7SMXzjMKxa5Lq60LgHWiymZFLoItYygA==
X-Zone-Loop: 1d18b5a0c1e15245d1999d450963cd0602742097590e
x-campaign-type: default
x-transaction-id: 2249cc6a-b8b6-4462-a299-47bd2dfe9dba
x-swg-uid: 01-5171774b-106b-4f75-b025-b1c6b60a906d
X-Mailer: Sweego
Message-ID:
 <1779452642.8631fc262581453bbf619ec5b2062170.19e4fa4847a000f373@vates.tech>
x-swg-bid: 1779452642.8631fc262581453bbf619ec5b2062170.19e4fa4847a000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 22 May 2026 14:24:01 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Victor Lira <victorm.lira@amd.com>, xen-devel@lists.xenproject.org,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v1] automation: edit rules for analyze jobs
References: <20260520225820.31550-1-victorm.lira@amd.com>
 <00d987d3-6a9c-440e-beb8-6587a3fd1d9b@citrix.com>
 <751c1684902e41fdd9d29b71670b49f0@bugseng.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <751c1684902e41fdd9d29b71670b49f0@bugseng.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.123a.871fb6907f276c21.19e4fa48259.1c9e4a2228e6831c=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779452641881
X-purgate-ID: tlsNG-33051d/1779452647-4259D938-DC32CFAE/0/0
X-purgate-type: clean
X-purgate-size: 1080

---=Part.123a.871fb6907f276c21.19e4fa48259.1c9e4a2228e6831c=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, May 22, 2026 at 12:32:33PM +0200, Nicola Vetrini wrote:
> On 2026-05-22 12:20, Andrew Cooper wrote:
> > I'm afraid this still doesn't work=2E
> >=20
> > I pushed with ci=2Evariable=3DSELECTED_JOBS_ONLY=3D"/eclair-x86_64-all=
code/"
> > and still got the eclair-*-amd jobs started=2E
> >=20
> > https://gitlab=2Ecom/xen-project/hardware/xen-staging/-/pipelines/2545=
988798
>=20
> Perhaps it's because the runner is marked as a safety runner?
>=20
>   rules:
>     - if: $ECLAIR_SAFETY
>       when: always


The variable isn't set in the runner (runners variable wouldn't be taken
into account here anyway)=2E The variable is set for the group
"xen-project/hardware", so for every repo under it=2E

Cheers,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.123a.871fb6907f276c21.19e4fa48259.1c9e4a2228e6831c=---


From xen-devel-bounces@lists.xenproject.org Fri May 22 12:29:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 12:29:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316731.1586078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQP00-0006AR-3M; Fri, 22 May 2026 12:29:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316731.1586078; Fri, 22 May 2026 12:29:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQP00-0006AK-0F; Fri, 22 May 2026 12:29:08 +0000
Received: by outflank-mailman (input) for mailman id 1316731;
 Fri, 22 May 2026 12:29:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Alejandro.GarciaVallejo@amd.com>) id 1wQOzz-0006AE-39
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:29:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQOzy-007N1a-F3
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 14:29:06 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Alejandro.GarciaVallejo@amd.com>)
 id 6a104c10-2eae-0a2a0a5409dd-0a2a4508c0d0-12
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 14:29:05 +0200
Received: from [52.101.56.54]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Alejandro.GarciaVallejo@amd.com>)
 id 6a104c10-63b5-0a2a45080019-346538363ac3-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 14:29:05 +0200
Received: from DS7PR03CA0030.namprd03.prod.outlook.com (2603:10b6:5:3b8::35)
 by BL4PR12MB9534.namprd12.prod.outlook.com (2603:10b6:208:58f::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 12:28:57 +0000
Received: from DS2PEPF00003445.namprd04.prod.outlook.com
 (2603:10b6:5:3b8:cafe::2d) by DS7PR03CA0030.outlook.office365.com
 (2603:10b6:5:3b8::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.17 via Frontend Transport; Fri, 22
 May 2026 12:28:57 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS2PEPF00003445.mail.protection.outlook.com (10.167.17.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.7 via Frontend Transport; Fri, 22 May 2026 12:28:56 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Fri, 22 May
 2026 07:28:54 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dMEtkGGWsLJxiNLJeTb3eVRizjx3E/Nr9QCyo++lUdE5Q4pRexkYQwIhmQgSlimK6HPMK5DsMveky3gf69xCpENwMQ85Ahg4W6bHIifBlyYRdYx1qQchbBchVzyPO4Ev509gfgkzQvfNVYRlU73b3wNtPLQepghA2Xd5HhU+9+PYnPmlJvPUoqj5cXOepjlPGv4oz5H79Ux+ke2uVOaaylOFyDayU26Zoc3cFWF/tXwPGlyEZElfwfHHXUAIyVfN1Uys4g/mWt9Q+YtT9Pc71RMmmuKlbf9WHE2IrXwIibbPG6hCe4/Hc0bJp1ltgsiGSD/DNKo+z3wq8wgOw4hBeA==
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=ZnaBrwGog3lFa5TNst9Rllq9+tDmquNFjIq9VfkVVWQ=;
 b=OCAups28PHguj7d+I4aRpf6BzThPOs9wDz3EUbEfFy58OYO8n8G4Av4Q9ZMxROfdkwNYreEXkjODzY/BCYU2wMftBKGJ5TLGikYUcrVf+PrLJfGB6DHdMI/uWI/bGp8Cd3XBy87dCgYmuykQ9QEaFEua1agMdMXrwn+0hNgRVmC6KU/U/Ubp2eisoE5HjL8fR0XRrA7IPm/Kenql/urCbghxcQcfxU03V6mEad6vDt7vFeKHdi9TthyoztaAmWyPUr8OeUbtppvPbdcIMYBkT/oFMd6AVMRW3fqNdxD7aVi3yPj3pXfA99GvO/dEcNkQQUYVAAH6/8QTIvSjXEu/Kg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZnaBrwGog3lFa5TNst9Rllq9+tDmquNFjIq9VfkVVWQ=;
 b=EByPvf2kajVnrqky/TtMuHDftPo4KoD7wEXBOur3s8XRRWAV6z8s5+xh1sSVuXmXDAs4JWZ4Q4WUzCK9lNtEIRKikhsbYcRva3pG4giyIYKGs/PewLVDokyiRLgmkmj4/riEjhQuyEIYtcAdRB+YoqVOqbTVgZVBAV2KmNynoMo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 22 May 2026 14:28:53 +0200
Message-ID: <DIP7F4H1ZJZT.2DAPDIJKK2H17@amd.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [for-4.22 PATCH] xen/gnttab: Fix TOCTOU race in
 gnttab_set_version()
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>, Alejandro Vallejo
	<alejandro.garciavallejo@amd.com>
X-Mailer: aerc 0.21.0
References: <20260522105709.25073-1-alejandro.garciavallejo@amd.com>
 <8c394056-36a8-426c-8c09-ec7594202b4a@suse.com>
In-Reply-To: <8c394056-36a8-426c-8c09-ec7594202b4a@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003445:EE_|BL4PR12MB9534:EE_
X-MS-Office365-Filtering-Correlation-Id: d8a0cd10-850a-4fcb-309c-08deb7fdb1c3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|30052699003|36860700016|376014|1800799024|82310400026|18002099003|56012099003|22082099003|11063799006|4143699003;
X-Microsoft-Antispam-Message-Info:
	5z5FZN9rr8KgwIJL0+IDBSPIYlOjeTLipSO9ygdp3SIiaG7kMQ23z5RtdW24HHkA2PGCV3Et+RKqOhEIHrz9/YKPiqLHIkI+G7PS5rLDfixtyxqL5qZrIVF+Yi/sye7jAJ0JnB6g3TCFVKnwKi9bypP/343c/bLn9O8o2WbQmMIAQdXTpr7hd2RKaJeemGXPQ1btAhaeDeY13P8Simyg8YfVjmR3ZxQzP4XSDs0i6icO0sTl49Ad1IWZ/VmMhsf5MPsGC6TcpWxDOenq2nPOznakra1gbg6MA971mz134Re26fSEdpet+G5SHOK7NZMNZIpBrYLbt7S5OOMTqLpdHQ4m1SHsUlDYqx9Q0LTEPnEuBasyDVE77T5u1SN/GuyW6eqs1V61JOydcYrRiC5LqyKYySrjGsaLyVv3LceO20kv5VcR+qWF6yrHhexW0SuFJrYIF6jHeAz6Tb60dvF1RYU8wu5YNnVymWhoYrUegOFLExhvaLJjKYfKeh1P7hTUc+P3vERPHkWoBBdQQuFbEzNZQ+5/Y22sAP/rinfUeuWmZgagAcStYCGR4EapIvevwiALpHk/nj+w5js4JCkwkM5wa+45crAgJaVJnxiotzMsa7onPbrsCVhq2ri8texn7NwMM5wLqvft3pYI2tTkH0TGktk5UoQVbA5xtGBVjRCHFSwi2ffbF5shI0itFtENplNZk87K9NrESQWTo1xC3sUQ3n+cwf4cNI/vINRfDyY=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(30052699003)(36860700016)(376014)(1800799024)(82310400026)(18002099003)(56012099003)(22082099003)(11063799006)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	jxU6RNBZivGJsDevPONmiiD1kXAoCm6BOtiytN53KboZNz2Qe6lahpD8SnnHZCMNYm0+Hn4kf3mFsT9kz2ZNqGRpIycgNAM41BLhRQcaBVouCWRJgr38e27y+PK7MUyZf2xrOgsdzc7/NLPNYqVtYbabqhTAB4porahJqmbm0bsvzs2W9bPFPoVwNPxKr3gWKYcJ6dgl1vJHZghQbIqAy6vH4HrMwb3vF1pAjcxxnnMM/GDGY18gz+4+FoiSbB0XAwa0vhEaL++vgxgj/udvI/pef1nXux0MoFKj3PPQ77rXPst+TAV/9uB3gmA7Amtn7rgBZlu5wvyYC0fk31nRtpveql9pN6j4fovhP4uO82ZYyiuZdkQS8RrhWDRVbkv8ZGdirpOl5KWA6jzTc5rIQEyrXYd3wJJ/JQ98Xx9ROfkmFV3G6/GSbzT/xz8MJtvc
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 12:28:56.9428
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d8a0cd10-850a-4fcb-309c-08deb7fdb1c3
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF00003445.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR12MB9534
X-purgate-ID: tlsNG-c1860d/1779452945-B5B6CDB1-B834A637/0/0
X-purgate-type: clean
X-purgate-size: 1173

On Fri May 22, 2026 at 1:31 PM CEST, Jan Beulich wrote:
> On 22.05.2026 12:57, Alejandro Vallejo wrote:
>> Move first read of gt->gt_version inside the critical region of the
>> rwlock, otherwise concurrent gnttab operations (silly as they would be)
>> may get mutually confused as to the actual current version.
>>=20
>> Fixes: c1488502c949("grant-tables: do not fail attempts to...")
>> Reported-by: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks

>
>> There are a number of lockless reads of gt_version (e.g: right after unl=
ock),
>> but they aren't very worrying because they are effectively snapshots of =
the
>> instantaneous version. I'd feel better if they were all atomic_read(), b=
ut all
>> Xen ports guarantee atomic access on aligned 4 octet fields, so I couldn=
't be
>> bothered to go chase them.
>
> Sooner or later we will want to deal with all (latent) problems of this k=
ind.

Quite. Concurrency is hard enough without making assumptions about the
underlying ISAs :/

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri May 22 12:34:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 12:34:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316743.1586088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQP4f-0007kh-Jl; Fri, 22 May 2026 12:33:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316743.1586088; Fri, 22 May 2026 12:33:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQP4f-0007ka-H1; Fri, 22 May 2026 12:33:57 +0000
Received: by outflank-mailman (input) for mailman id 1316743;
 Fri, 22 May 2026 12:33:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fad80e4000f373@swg.vates.tech>)
 id 1wQP4e-0007kU-4L
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:33:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQP4d-00Eggc-GK
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 14:33:55 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fad80e4000f373@swg.vates.tech>)
 id 6a104d2b-e002-0a2a0a5209dd-0a2a4505c798-30
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 14:33:55 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fad80e4000f373@swg.vates.tech>)
 id 6a104d33-aaa8-0a2a45050019-b9ff1c2285a1-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 14:33:55 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e4fad80e4000f373.003 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 22 May 2026 12:33:51 +0000
Received: from localhost.localdomain (88-175-170-134.subs.proxad.net
 [88.175.170.134]) (Authenticated sender: teddy.astie@vates.tech)
 by mail2.vates.fr (Postfix) with ESMTPSA id A50EA86A08;
 Fri, 22 May 2026 14:33:50 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=btuo1BkXt6I5InUgJFSYjZbZv6EuMecyqn5NavlpXiA=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:feedback-id;
 b=KKNYOu2UmOALUk9YtOI0fMpzIZ1VOnn0G0pZEKDWDLPv6X28RME8vrTVqVERJz750+V9kOSXC
 JMObwEZf6XLeHwomhxIpfGc0esy9YuTdMv6BhaM7DY033htIt334sSvQ3SCz/Wz6g7wcv0VgZMd
 sWHVrLG1JmVeauTUsgR2eb1sejcWAyTXl2ARxFP54rmpmngNrVlVU8fRQmpBbCzD3nNPTzK3QCV
 kVy4uoFtSLxFLZa+EiFvaBz8R8B5wY9pPPThy/6mkRkT3Ds5UWHbyq47D4UHc06F3ZWqoznr6Ju
 jujRhdXRSTmf8wRwiS6wW6UbYhu9N8IfF04PqUic94Cg==
X-Zone-Loop: 3e4b4098239a8b005422ecdacfa1053111b7e158d1da
x-campaign-type: default
x-transaction-id: 5bbbe97f-a0ac-4f8c-a102-ca207c4937a3
x-swg-uid: 01-8c8fc81e-2762-4640-91f9-a50d47453f05
X-Mailer: Sweego
Message-ID:
 <1779453231.8631fc262581453bbf619ec5b2062170.19e4fad80e4000f373@vates.tech>
x-swg-bid: 1779453231.8631fc262581453bbf619ec5b2062170.19e4fad80e4000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
From: Teddy Astie <teddy.astie@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Teddy Astie <teddy.astie@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2] pv32: Fix bogus cr2 on fault in emulation gate
Date: Fri, 22 May 2026 14:33:16 +0200
MIME-Version: 1.0
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1242.f2a4f52407856473.19e4fad7ebe.3900a54c92a60a3f=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779453230785
X-purgate-ID: tlsNG-c201ff/1779453235-DA374443-6CD7DCD0/0/0
X-purgate-type: clean
X-purgate-size: 2150

---=Part.1242.f2a4f52407856473.19e4fad7ebe.3900a54c92a60a3f=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

__{put,get}_guest returns -EFAULT on access faults which causes
the injected cr2 to be off by 14 bytes (as EFAULT is 14) which is
incorrect=2E

Fix the computation by relying on copy_{from,to}_guest_pv which
reports the number of remaining bytes instead of a negative errno,
such that we can compute the offset properly=2E

Fixes: 70ad570b2799 ("x86/64: paravirt 32-on-64 call gate support")
Signed-off-by: Teddy Astie <teddy=2Eastie@vates=2Etech>
---
v2:
 * Don't add variable in push() macro
 * Use uint32_t type for temporary value=2E

 xen/arch/x86/pv/emul-gate-op=2Ec | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/pv/emul-gate-op=2Ec b/xen/arch/x86/pv/emul-gate-=
op=2Ec
index c2c699fbff=2E=2E9c229c46c4 100644
--- a/xen/arch/x86/pv/emul-gate-op=2Ec
+++ b/xen/arch/x86/pv/emul-gate-op=2Ec
@@ -286,12 +286,14 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
     if ( !jump )
     {
         unsigned int ss, esp, *stkp;
+        uint32_t value;
         int rc;
 #define push(item) do \
         { \
+            value =3D item; \
             --stkp; \
             esp -=3D 4; \
-            rc =3D __put_guest(item, stkp); \
+            rc =3D copy_to_guest_pv(stkp, &value, sizeof(value)); \
             if ( rc ) \
             { \
                 pv_inject_page_fault(PFEC_write_access, \
@@ -359,7 +361,7 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
                     unsigned int parm;
=20
                     --ustkp;
-                    rc =3D __get_guest(parm, ustkp);
+                    rc =3D copy_from_guest_pv(&parm, ustkp, sizeof(parm))=
;
                     if ( rc )
                     {
                         pv_inject_page_fault(0, (unsigned long)(ustkp + 1=
) - rc);
--=20
2=2E52=2E0



-- 
 | Vates 

XCP-ng & Xen Orchestra - Vates solutions

web: https://vate=
s=2Etech
---=Part.1242.f2a4f52407856473.19e4fad7ebe.3900a54c92a60a3f=---


From xen-devel-bounces@lists.xenproject.org Fri May 22 12:42:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 12:42:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316752.1586098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQPDG-0001Yg-E2; Fri, 22 May 2026 12:42:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316752.1586098; Fri, 22 May 2026 12:42:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQPDG-0001YZ-A4; Fri, 22 May 2026 12:42:50 +0000
Received: by outflank-mailman (input) for mailman id 1316752;
 Fri, 22 May 2026 12:42:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wQPDE-0001YT-Q6
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:42:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQPDE-006RZX-62
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 14:42:48 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a104f48-bab6-0a2a0a5309dd-0a2a45099fac-0
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 14:42:48 +0200
Received: from [209.85.221.53] (helo=mail-wr1-f53.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a104f47-2497-0a2a45090019-d155dd35d1cb-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 14:42:47 +0200
Received: by mail-wr1-f53.google.com with SMTP id
 ffacd0b85a97d-45297094718so5755796f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 05:42:47 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d6ebf0sm4195227f8f.34.2026.05.22.05.42.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 May 2026 05:42:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779453767; x=1780058567; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vKYVs1+oJuMu+VlKKc7eRF/nlwaJXJo0Tqfyag2Ys9A=;
        b=bjnlIjoZVuzt5aNQcTlCE3nPmm7k6rrYJVwB1q4rLLogUt7N+OlzYGm80FR7q9mTmX
         UAjDrgqbL7EkpwtwTkEeWBTwC3WdTdMro9l9/c5pHkbrkFtk172qCDsnmnJ3WDPJQhqa
         37F68auC1/7N3rnntUnozXqzB79vBLQ7OdrWjkHih3e9x5cZVL4hb4WESUFB+jxnSfoo
         /1+9dv0kfMNtBVqPF1GphU/dp9Q8AEOHx2dTlGDdD2R6KAYYbj4BvkW0oKziPeVs0DI+
         JrWRd1c/uCezG0XbxFeTKBQgOgRbAudXaaKi8mj9TxrH63NvVitK3OttCB+RuwwkzL+l
         Ttew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779453767; x=1780058567;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vKYVs1+oJuMu+VlKKc7eRF/nlwaJXJo0Tqfyag2Ys9A=;
        b=duUgD5CeI+gFeYFXfRbnL2sGMftMGF2VOfwsBKqEB7WsXt5IY7Ck/zhCjJsX12v+21
         gK8KHcD6FYSf/PnZOk6sflVPPvCfLCwG/Z9VFshGaNE2Nnoljp7GLVJWrUK0HJ6k+XUP
         NO9h/vIgTwOlVcv8ZLHChPNer4SCJ6gK8ZqODdPQ8L3UqcuRA1G1mSuj9UBJ17Nq08da
         JXGti7Fxc5Tva91OYCkmKfqBRDK1n0Jut49gCCXXQ9PFRMytUY0rInH593MUq9EtF4R2
         JZJhL/jqyVy8RrWm3XMogDzPlgitdOpU6FODI2QR9Zujon6jD5N4O3EicXdfWmIiTxPe
         3dfw==
X-Forwarded-Encrypted: i=1; AFNElJ/+D6rWKx2tY6ZiVbHY/BjvDe8+qli7k5jCJLc8zay0ZnB6eo0EbqMcOZYqZiw7FYFXXu8U4QFpK9k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyidSvJQEemEfYbNq38JRBd7PN48SoPko2bK4pSsYoth821pD9l
	R5fb6L86bGBNxLeqDd4gK2AlpPVAUPwvoAWg5mKHs2z/8b4ss/6xu8F4ChjeGamXwQ==
X-Gm-Gg: Acq92OF/uzF1YkZG5QTe004Uw//EKm82PnKZQjOXRWwB7JkNdHQMIDJj7CnpP+lQZN9
	JhbTWwBlUFsYZVHF12hhf3eDP3Ft7456XrIkQxe7QyBrGVbQou1eofKeFr07Z6d5nlOVKhobtP3
	0imM9jmbvmT2WFXkrzXA1mNNipZyUDPUs+C/XoflKox61xZnJ+7ioyqE9iTPF6+oCVvtyLRhkNZ
	8n0zqI4AioYZeAtcaE0GWV3R8H8mQ1VH+CLA5Ssvm9HWz5BiIn6a4O5YrRFgY4PapEdWk8lPoWR
	9Em8ur4257MoEI3duBv+SIPE2YC0sOwxXUydRAJhP2vhUBAHOAB6kFw/QXb0Hn4fYTQbB3JXxyH
	jIWFQZOwQZ9JjQAG3Wz8sMR8nB+28zoKr7lMmQTycAqhdMHS1Nz7xAPdJwbnfW8L2N0yhMiny0M
	+RBLUJfC+1ALTZR7ecnL0aI8Aw6YHblQYovvzOBonJys0CiebStvzNHB8uNzysVuTf/TFbcaQKd
	OCbmcDNASNGVImXzbmOzMRzbQ==
X-Received: by 2002:a05:6000:144c:b0:45e:655e:4e02 with SMTP id ffacd0b85a97d-45eb38c1f5amr5354947f8f.32.1779453767457;
        Fri, 22 May 2026 05:42:47 -0700 (PDT)
Message-ID: <0c9a577c-07bb-459a-96b2-e9693ef89cca@suse.com>
Date: Fri, 22 May 2026 14:42:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] pv32: Fix bogus cr2 on fault in emulation gate
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <1779453231.8631fc262581453bbf619ec5b2062170.19e4fad80e4000f373@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1779453231.8631fc262581453bbf619ec5b2062170.19e4fad80e4000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1779453768-8B193A53-514EBB4A/0/0
X-purgate-type: clean
X-purgate-size: 1055

On 22.05.2026 14:33, Teddy Astie wrote:
> __{put,get}_guest returns -EFAULT on access faults which causes
> the injected cr2 to be off by 14 bytes (as EFAULT is 14) which is
> incorrect.
> 
> Fix the computation by relying on copy_{from,to}_guest_pv which
> reports the number of remaining bytes instead of a negative errno,
> such that we can compute the offset properly.
> 
> Fixes: 70ad570b2799 ("x86/64: paravirt 32-on-64 call gate support")
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
preferably with ...

> --- a/xen/arch/x86/pv/emul-gate-op.c
> +++ b/xen/arch/x86/pv/emul-gate-op.c
> @@ -286,12 +286,14 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
>      if ( !jump )
>      {
>          unsigned int ss, esp, *stkp;
> +        uint32_t value;
>          int rc;
>  #define push(item) do \
>          { \
> +            value = item; \

... (item) here. I think we're okay without, but let's play safe.

Likely can be adjusted by the committer.

Jan


From xen-devel-bounces@lists.xenproject.org Fri May 22 12:50:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 12:50:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316762.1586107 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQPK8-0002mP-8W; Fri, 22 May 2026 12:49:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316762.1586107; Fri, 22 May 2026 12:49:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQPK8-0002mI-3x; Fri, 22 May 2026 12:49:56 +0000
Received: by outflank-mailman (input) for mailman id 1316762;
 Fri, 22 May 2026 12:49:55 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <37lAQagYKCSkXJFSOHLTTLQJ.HTRcJS-IJaJQQNXYX.cJSUWTOJHY.TWL@flex--seanjc.bounces.google.com>)
 id 1wQPK7-0002mC-LJ
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 12:49:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQPK6-006a5e-NI
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 14:49:54 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <37lAQagYKCSkXJFSOHLTTLQJ.HTRcJS-IJaJQQNXYX.cJSUWTOJHY.TWL@flex--seanjc.bounces.google.com>)
 id 6a1050eb-e002-0a2a0a5209dd-0a2a4506964c-28
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 14:49:54 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <37lAQagYKCSkXJFSOHLTTLQJ.HTRcJS-IJaJQQNXYX.cJSUWTOJHY.TWL@flex--seanjc.bounces.google.com>)
 id 6a1050ef-7371-0a2a45060019-d155d6cadc31-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 14:49:52 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2b9b8137828so74872355ad.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 05:49:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779454191; x=1780058991; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=DQXBtYOgD26OY0sxOaH3yIHE1h+TPqKS3BQiU+AvFJA=;
        b=jV7Q9I2dA27qnqDRDYYYvH3PQOKQqjvNFpzHYWCV9Cdn+akZCyfW15uhns/YD8yLWc
         rloyX6WWpzextkmZJpPAsZtCSpbeaeeGC2H1FuF92QVshGEWVIYm+uxXTOB5T7uSx9vf
         e7qhy48DdrXCog+Te+d23BoLUbB1HGDRWYgRKyR8udcC7Y/rZv1IukKfHjEw4FbPn+E+
         1RK83OuKDRSG53APBC8j4KRSyZLTd4KYTLY2JuxNt6HuDwEGZn5DPfWudnqLip0Kfse8
         hrCHOGABlq7TCHJK27SwY6d8pPU6OSU8eumCG5Yftjk03MVLxIyqtBOWZUHgFk5vjWR2
         BTXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779454191; x=1780058991;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=DQXBtYOgD26OY0sxOaH3yIHE1h+TPqKS3BQiU+AvFJA=;
        b=f2Z/A069AcU7RMu66JqgJBLyLvLErXIYWkcZbDvM639m3ciKvwYdwzWmYpTHba51aP
         X7FiAE3yXsK/RMgdk2yRxpJxdLy8P1qe3YSDHB55GbUtCuH1WnCl+s4LHp9aU3tFJPAS
         LN+wLNga1rnoVXz566pjunLGDm3L5Ea3WtfX8HOuyPHMak7LEwGKNB8N/B58Ggnr6I3a
         l06EmsdphjZTIfzSlcIfM4fkYYH7HCMrs6ScgQ9ZsraGY+XBJdvGVqor2ZcTlIXXBrUW
         qAsrtGPsGw40epbEiYzXf8k/gMj0B/3rrR2P3TESE7gWXLWKsQjRLUAXRQ34yc5QLgnB
         lyUQ==
X-Forwarded-Encrypted: i=1; AFNElJ+jGGkAW7RU0os7ZZIs0E5ljAls9UpwvakzA8Ce1p5MD3rn7Cd/CDvIBgRSlxRFCJjdFVE/eNupPTg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzpXgAQJlJ8QamCrUINoumxeiiTX8W5roeam1aTd5Z8+8c841Nj
	N83ED2DB7IeH2Y5l2Ifq7fWD9ftues27saqIlB3fXQe+Ld5W1X6vn8uevHa3F5effipAXgKbnI5
	9YScI2w==
X-Received: from plpf11.prod.google.com ([2002:a17:903:3c4b:b0:2b0:51f0:272d])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:c94d:b0:2b4:63bf:5535
 with SMTP id d9443c01a7336-2beb073d568mr36887635ad.41.1779454190670; Fri, 22
 May 2026 05:49:50 -0700 (PDT)
Date: Fri, 22 May 2026 05:49:50 -0700
In-Reply-To: <ab84153e33fbe7c25667f595c56b310d4d5a93ef.camel@infradead.org>
Mime-Version: 1.0
References: <20260509224824.3264567-1-dwmw2@infradead.org> <20260509224824.3264567-28-dwmw2@infradead.org>
 <3ad6cd109480772ade3c11f23b9c1d7a9855d67e.camel@infradead.org>
 <ag-Hf2liLSX9q0rS@google.com> <ab84153e33fbe7c25667f595c56b310d4d5a93ef.camel@infradead.org>
Message-ID: <ahBQ7mXNaTtouT3C@google.com>
Subject: Re: [PATCH v4 27/30] KVM: x86: Add KVM_VCPU_TSC_EFFECTIVE_FREQ attribute
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
	Shuah Khan <skhan@linuxfoundation.org>, Thomas Gleixner <tglx@kernel.org>, 
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	"H. Peter Anvin" <hpa@zytor.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross <jgross@suse.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Paul Durrant <paul@xen.org>, 
	Jonathan Cameron <jic23@kernel.org>, Sascha Bischoff <Sascha.Bischoff@arm.com>, 
	Marc Zyngier <maz@kernel.org>, Joey Gouly <joey.gouly@arm.com>, Jack Allister <jalliste@amazon.com>, 
	Dongli Zhang <dongli.zhang@oracle.com>, joe.jin@oracle.com, kvm@vger.kernel.org, 
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, linux-kselftest@vger.kernel.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-16d1c6/1779454193-8C47CD75-77086E51/0/0
X-purgate-type: clean
X-purgate-size: 1727

On Thu, May 21, 2026, David Woodhouse wrote:
> On Thu, 2026-05-21 at 15:30 -0700, Sean Christopherson wrote:
> > On Thu, May 21, 2026, David Woodhouse wrote:
> > > On Sat, 2026-05-09 at 23:46 +0100, David Woodhouse wrote:
> > > > From: David Woodhouse <dwmw@amazon.co.uk>
> > > That does leave userspace still needing a way to get the APIC bus
> > > frequency, to populate CPUID. So maybe I'll just make an attribute
> > > which returns that as a single value.
> >=20
> > Already exists, KVM_CAP_X86_APIC_BUS_CYCLES_NS.=C2=A0 The TDX architect=
ure decided
> > that unconditionally telling guests the virtual APIC bus runs at 400Mhz=
 was a
> > brilliant idea.
>=20
> Ah, thanks.
>=20
> So KVM always exposes 1GHz by default regardless of the actual host?
> Which is why there's no *get* method?
>=20
> (Well... getting KVM_CAP_APIC_BUS_CYCLES_NS returns
> APIC_BUS_CYCLE_NS_DEFAULT which is 1, so it's basically just returning
> 1 like a lot of cap queries do, and *not* returning what the period is
> actually set to)

Oh, that's just an oversight, definitely not intentional.  Easy enough to f=
ix:

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 1616b2eec6e7..cd4a244ca0c5 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2235,7 +2235,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, lon=
g ext)
                r =3D tdp_enabled;
                break;
        case KVM_CAP_X86_APIC_BUS_CYCLES_NS:
-               r =3D APIC_BUS_CYCLE_NS_DEFAULT;
+               r =3D kvm ? kvm->arch.apic_bus_cycle_ns : APIC_BUS_CYCLE_NS=
_DEFAULT;
                break;
        case KVM_CAP_EXIT_HYPERCALL:
                r =3D KVM_EXIT_HYPERCALL_VALID_MASK;



From xen-devel-bounces@lists.xenproject.org Fri May 22 13:00:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 13:00:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316777.1586115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQPUa-0005xK-4D; Fri, 22 May 2026 13:00:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316777.1586115; Fri, 22 May 2026 13:00:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQPUa-0005xD-1A; Fri, 22 May 2026 13:00:44 +0000
Received: by outflank-mailman (input) for mailman id 1316777;
 Fri, 22 May 2026 13:00:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fc6126a000f373@swg.vates.tech>)
 id 1wQPUZ-0005x7-AW
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 13:00:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQPUY-007Ty3-Md
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 15:00:42 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fc6126a000f373@swg.vates.tech>)
 id 6a105376-5cb7-0a2a0a5109dd-0a2a4507e654-22
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:00:42 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fc6126a000f373@swg.vates.tech>)
 id 6a10537a-229c-0a2a45070019-b9ff1c22ae4d-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:00:42 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e4fc6126a000f373.003 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 22 May 2026 13:00:41 +0000
Received: from [192.168.1.18] (88-175-170-134.subs.proxad.net [88.175.170.134])
 (Authenticated sender: teddy.astie)
 by mail2.vates.fr (Postfix) with ESMTPSA id D1CF686A08;
 Fri, 22 May 2026 15:00:40 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=87QL4FZaLfz4wf2T0grGJPFm8THq6s8LxFQQ36xT6QQ=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=UjBw4iipCrHVAJJsb7qD49sAoUx3eDIEBQ4dwqoLcv3wK3ibW2oo8X5evpBUiRwTWeZpiKZCw
 cWmDdY/z1fWNrYYdT1t2uIQ/8mt5qW0rcv/STkSx9r5hrjta/ESNo+ot+csqnAezvFVRkKfSnO5
 uGsiusUDbXqNsh5dWJSDsrmfCWv1Fb5pRgZwmnUBTFfqD2UAGinkr5C00kVN5tNUBaKFHlCBA2S
 3OMPiHFKeNcK09EvCTeXM6kFAjDB5P98HW9k/O1ZvmcBefZ3JX0ozA8roWOELiYCEk60xtZphTQ
 oATVnD0ICaycW2HBAFfPeBvqspCpHPCmTJlldZ+w98xQ==
X-Zone-Loop: 3bcdeaa3b456c54dc4b6e5b08d31e97731f300e388f0
x-campaign-type: default
x-transaction-id: 8327d650-e539-48ef-b21a-47af6f812241
x-swg-uid: 01-152409f4-b3ca-46a0-8671-7cd47b1c410d
X-Mailer: Sweego
Message-ID:
 <1779454841.8631fc262581453bbf619ec5b2062170.19e4fc6126a000f373@vates.tech>
x-swg-bid: 1779454841.8631fc262581453bbf619ec5b2062170.19e4fc6126a000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 22 May 2026 15:00:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] pv32: Fix bogus cr2 on fault in emulation gate
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <1779453231.8631fc262581453bbf619ec5b2062170.19e4fad80e4000f373@vates.tech>
 <0c9a577c-07bb-459a-96b2-e9693ef89cca@suse.com>
Content-Language: en-US
From: Teddy Astie <teddy.astie@vates.tech>
Autocrypt: addr=teddy.astie@vates.tech; keydata=
 xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7LTBVHV/XO
 Zw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJT4ny+OGntnJntUoR
 KRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJAWicutjkkUgd28Bh6HV9EIumH
 tCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaT
 VqMdqul07o72m3eA2mf+LMu9a04FX/d4wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/
 EoucejoZ5SH49ksmVAmKOLktOaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+S
 PhHar7TPKjFz0G3DPNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89
 MXfQXZ3qt1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
 LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWjmoACGwME
 CwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNzuyOVCskwfUZPla6Z
 pd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp0x0HfuhcYfAYPR46XHTvjaJE
 v99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuROxdK8G+YHccJY8PvWSq2K2yiae2KGiAv
 1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhP
 eP3IdpfWc8cyRLXF06Rk46YMYCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcT
 UwgnYlFRk2FLq0QeKEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9
 Egr/Wmu3MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
 f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEMAKiQiZa3
 yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ3DbVf+en3/FvdVZg
 2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTmetSG5/52AjtmPFtlXAk0NmLv
 fJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0s3109sJeXT5ImVdphFs9cvyZyBT9t1Pb
 Rowv58EgV0zE4hbAeVkULAbxFV5b/ExTjjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKb
 Yu6NCfiHfEyB3Xyg9hfdrRgjMRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ov
 XoK4jm+Py0FiUGUaA6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/
 eVtR2Q1wZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
 IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWjmoACGwwA
 CgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiVoUiHYN5QwhnbZnsa
 JDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764QxyX6rld2f2RcWkDuBHun55ZWXj
 by8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk/dS0XTOQi2wVUb17sW/+ybCEokdVacZG
 zOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fuoGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+
 lOWSvdNHgoEkWR0RXBPQjnGmLKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/Off
 O485NOTKwGOxyWb006cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR
 8ULR9nX0LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
 x9fhaZEsniw8/bYgC3igkk5YJiOa
In-Reply-To: <0c9a577c-07bb-459a-96b2-e9693ef89cca@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------DbCf3weHpcKDv1y1x8mNEZZE"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779454840948
X-purgate-ID: tlsNG-ef75cf/1779454842-20961C48-8DBC6C37/0/0
X-purgate-type: clean
X-purgate-size: 6459

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------DbCf3weHpcKDv1y1x8mNEZZE
Content-Type: multipart/mixed; boundary="------------LcgzFWTlC64DC8h7FnbGmsks";
 protected-headers="v1"
From: Teddy Astie <teddy.astie@vates.tech>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
Message-ID: <c1aabd88-4633-4e1c-85c8-0afdf15bb73c@vates.tech>
Subject: Re: [PATCH v2] pv32: Fix bogus cr2 on fault in emulation gate
References: <1779453231.8631fc262581453bbf619ec5b2062170.19e4fad80e4000f373@vates.tech>
 <0c9a577c-07bb-459a-96b2-e9693ef89cca@suse.com>
In-Reply-To: <0c9a577c-07bb-459a-96b2-e9693ef89cca@suse.com>

--------------LcgzFWTlC64DC8h7FnbGmsks
Content-Type: multipart/mixed; boundary="------------5SBaMWPRM4rLKK3r0W4Y4mMt"

--------------5SBaMWPRM4rLKK3r0W4Y4mMt
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

TGUgMjIvMDUvMjAyNiDDoCAxNDo0NCwgSmFuIEJldWxpY2ggYSDDqWNyaXTCoDoNCj4gT24g
MjIuMDUuMjAyNiAxNDozMywgVGVkZHkgQXN0aWUgd3JvdGU6DQo+PiBfX3twdXQsZ2V0fV9n
dWVzdCByZXR1cm5zIC1FRkFVTFQgb24gYWNjZXNzIGZhdWx0cyB3aGljaCBjYXVzZXMNCj4+
IHRoZSBpbmplY3RlZCBjcjIgdG8gYmUgb2ZmIGJ5IDE0IGJ5dGVzIChhcyBFRkFVTFQgaXMg
MTQpIHdoaWNoIGlzDQo+PiBpbmNvcnJlY3QuDQo+Pg0KPj4gRml4IHRoZSBjb21wdXRhdGlv
biBieSByZWx5aW5nIG9uIGNvcHlfe2Zyb20sdG99X2d1ZXN0X3B2IHdoaWNoDQo+PiByZXBv
cnRzIHRoZSBudW1iZXIgb2YgcmVtYWluaW5nIGJ5dGVzIGluc3RlYWQgb2YgYSBuZWdhdGl2
ZSBlcnJubywNCj4+IHN1Y2ggdGhhdCB3ZSBjYW4gY29tcHV0ZSB0aGUgb2Zmc2V0IHByb3Bl
cmx5Lg0KPj4NCj4+IEZpeGVzOiA3MGFkNTcwYjI3OTkgKCJ4ODYvNjQ6IHBhcmF2aXJ0IDMy
LW9uLTY0IGNhbGwgZ2F0ZSBzdXBwb3J0IikNCj4+IFNpZ25lZC1vZmYtYnk6IFRlZGR5IEFz
dGllIDx0ZWRkeS5hc3RpZUB2YXRlcy50ZWNoPg0KPiANCj4gUmV2aWV3ZWQtYnk6IEphbiBC
ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4gcHJlZmVyYWJseSB3aXRoIC4uLg0KPiAN
Cj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLWdhdGUtb3AuYw0KPj4gKysrIGIveGVu
L2FyY2gveDg2L3B2L2VtdWwtZ2F0ZS1vcC5jDQo+PiBAQCAtMjg2LDEyICsyODYsMTQgQEAg
dm9pZCBwdl9lbXVsYXRlX2dhdGVfb3Aoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+
PiAgICAgICBpZiAoICFqdW1wICkNCj4+ICAgICAgIHsNCj4+ICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgc3MsIGVzcCwgKnN0a3A7DQo+PiArICAgICAgICB1aW50MzJfdCB2YWx1ZTsNCj4+
ICAgICAgICAgICBpbnQgcmM7DQo+PiAgICNkZWZpbmUgcHVzaChpdGVtKSBkbyBcDQo+PiAg
ICAgICAgICAgeyBcDQo+PiArICAgICAgICAgICAgdmFsdWUgPSBpdGVtOyBcDQo+IA0KPiAu
Li4gKGl0ZW0pIGhlcmUuIEkgdGhpbmsgd2UncmUgb2theSB3aXRob3V0LCBidXQgbGV0J3Mg
cGxheSBzYWZlLg0KPiANCj4gTGlrZWx5IGNhbiBiZSBhZGp1c3RlZCBieSB0aGUgY29tbWl0
dGVyLg0KPiANCg0KTG9va3MgZ29vZCB0byBtZS4NCg0KPiBKYW4NCj4gDQoNClRlZGR5DQo=

--------------5SBaMWPRM4rLKK3r0W4Y4mMt
Content-Type: application/pgp-keys; name="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Disposition: attachment; filename="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGn5sK8BDACuzSrrTjpVf4ay06OYB6yY0J1PqKffihoNMtrQRZjAHxoAPC7L
TBVHV/XOZw5HJc+9R71z1JV+iYg6z3jPziGKzX8Fj3ZXlzJPmpf1PuETH3KdbvtJ
T4ny+OGntnJntUoRKRPhTirr6yNeBk/637O3CQXjtqFUPZnko8OI/o1yawIBhJJA
WicutjkkUgd28Bh6HV9EIumHtCBgn5/1A/fpm9624MMgYLsA8qjC4XsoovQvFCaO
8HEhvfzrrTZHjn/nPeB9SigxIxXW8YaTVqMdqul07o72m3eA2mf+LMu9a04FX/d4
wbxBLtELm+1jIrbtyaFZEMOLv/haSiS/Lj3btJH/EoucejoZ5SH49ksmVAmKOLkt
OaTQ8b2gEvP7iaKiIiszCCtOSRohr+2GvDsDeLvVZnlR3I+SPhHar7TPKjFz0G3D
PNolyjXywNqOAMpomSPi8lSwjAFsxOtQbcck/qRGRSNk4DAmH70pA+89MXfQXZ3q
t1Q01B1+sU0I8xsAEQEAAc0kVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGllQHZhdGVz
LnRlY2g+wsENBBMBCAA3FiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sK8FCQWj
moACGwMECwkIBwUVCAkKCwUWAgMBAAAKCRBmD6nRAsvP0ID6DACGOktArFbLKHNz
uyOVCskwfUZPla6Zpd3GZ8r61SrAKePIr2BnpgPkd0hV3bSRkRLIrgjzR2NRCzfp
0x0HfuhcYfAYPR46XHTvjaJEv99sT/vGUG1BZguYDOScSEpgSNaNlYum3RKZbMuR
OxdK8G+YHccJY8PvWSq2K2yiae2KGiAv1yjnZxug9/PtDfX8vQFUSg2w1ukRDf50
wvDohN1zUQfFtofOP2xCRsDZiHAlQ0pF+aUjXQhPeP3IdpfWc8cyRLXF06Rk46YM
YCytweGtGdHcqAfrVthl84129ZPN422k/voW0sm14gjYlGcTUwgnYlFRk2FLq0Qe
KEDcS0aj3o3EVAQCrayoGzi1pnlIKE3PRGUcUzjGVvzQ/po24gOjwba9Egr/Wmu3
MQlx/7A8zT5QBzF/n+RYdLNQ0Eu6YnUwf0Z1uieqNaon+olyIRFiLb/hCZHO6ekN
f5vrm2clHUbQAYaPQebknujoKBo6ZLHg0WM1gZS01Gz+aUpKsUfOwM0EafmwsAEM
AKiQiZa3yQMmc/h3sDbfVHPSiBA4IMI/NAB7IotzPHq1GzCpsoVILAhF/INbWjxJ
3DbVf+en3/FvdVZg2S38xtnth0njNdlVKpyxm054phKjbdoFDwaknWolS4hrddTm
etSG5/52AjtmPFtlXAk0NmLvfJnW3seXVQbgM7sW/MNXPP5UKDpkGnLhnvej+GU0
s3109sJeXT5ImVdphFs9cvyZyBT9t1PbRowv58EgV0zE4hbAeVkULAbxFV5b/ExT
jjGVHoX7CVhWxvCiTqCUoXZRkUE9C3FnkzEFRkKbYu6NCfiHfEyB3Xyg9hfdrRgj
MRq907zCof+nDtWxGz1MSEuvTj1g9GZ049Bennqzjc/Q+0ovXoK4jm+Py0FiUGUa
A6yhexficjH+kCR/xDbVnWrMhSLB4AuTBT9HjfZI6gk3uYLhoT8Pig4/eVtR2Q1w
ZIJsFToR6ofGuyECwFcs+PUXN7fmGRSiPXgjAr/zIUBdW0VWCE3OGPNqtRk2E5s6
IQARAQABwsD8BBgBCAAmFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmn5sLAFCQWj
moACGwwACgkQZg+p0QLLz9DncQwAg76IehTemLIfrB8T9WIBZrI4kUV7G7a4rjiV
oUiHYN5QwhnbZnsaJDlt+Ezoqy/510eo2bCSzvW5xXYPgyjcuOPwgQo1Qp764Qxy
X6rld2f2RcWkDuBHun55ZWXjby8o21ginPRwruBVYY5rVf3DV1iBu4NurUeHtyFk
/dS0XTOQi2wVUb17sW/+ybCEokdVacZGzOqP/OmwHrF8ylXlXnhQq6e3r+J+T8fu
oGJelm/CJiMwyP6cEWE8sxVqX/iqwjwUYkuOCpE+lOWSvdNHgoEkWR0RXBPQjnGm
LKbfTl/QDXLk6NP2/r9uxm2HL6Ei3QJKSEdrp+XZaVnk/OffO485NOTKwGOxyWb0
06cTMh53xPkAJFQu4Tvdj+odsHz88jqw5wfPG0BYWx0I/FspYj7N9kZR8ULR9nX0
LvpzJ/kB4NgHIUt8YtIL6ZSfM2dbF7fKzvx1UqFfvozJZwFzfEieJLXa4nlGgR6D
x9fhaZEsniw8/bYgC3igkk5YJiOa
=3DlUIA
-----END PGP PUBLIC KEY BLOCK-----

--------------5SBaMWPRM4rLKK3r0W4Y4mMt--

--------------LcgzFWTlC64DC8h7FnbGmsks--

--------------DbCf3weHpcKDv1y1x8mNEZZE
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmoQU3gFAwAAAAAACgkQZg+p0QLLz9CY
Rwv8CwFCtpeXkL5FBYN8479/QvW5ILRueDc0rCaLSR1Bzh9aU45hXNBGHuaiL1YpZTei5wAM0gbf
/J/qxbThRs81pYERa0vykJktcNlN8Pli8D6St55GAbewmhirAnPHu/AsJCRzfyIWyi5TAIhKaiYn
AndnAcJaJC8a1wnYVh8CRaiVuflPmV9Jeuvh+N/ays+7i9gfEIgequK8TPZoYKES1UWI4/iyCjGG
BuMJbmj23BWcNP7vNNa2Qt82e23U3CpTUoLma+DlNi3FRFOAcES7HCkqbOEYA9chP7NIIeuey2rg
uhDQ7Ug+ckr11bPSju5avnHgHl7HijsXLWoCXUvYNTKBTBF0Dlqt5FU7WM33+pSOYJMQhxqVFtXm
viCDl1mlA9kR34Ah/mZ9k3rbqquEnA90mS3fuOqNtxzlh5tOOhEnOtknxp3/GZ3O4XhL1q/p2Ugs
Ltm7Sc/jY5mhyuTo+Ic/BRho6Ct804Qt2vi9jv4wL9laazyRhPvhwwQ2c2Q5
=i59O
-----END PGP SIGNATURE-----

--------------DbCf3weHpcKDv1y1x8mNEZZE--


From xen-devel-bounces@lists.xenproject.org Fri May 22 13:07:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 13:07:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316786.1586123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQPb6-0006kB-PD; Fri, 22 May 2026 13:07:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316786.1586123; Fri, 22 May 2026 13:07:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQPb6-0006k4-MJ; Fri, 22 May 2026 13:07:28 +0000
Received: by outflank-mailman (input) for mailman id 1316786;
 Fri, 22 May 2026 13:07:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+818e15bc21972cf07e63+8307+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wQPb3-0006jn-Ne
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 13:07:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQPb3-006WC0-3M; Fri, 22 May 2026 15:07:25 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+818e15bc21972cf07e63+8307+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a105502-2eae-0a2a0a5409dd-0a2a450b86b2-30
 for <multiple-recipients>; Fri, 22 May 2026 15:07:24 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+818e15bc21972cf07e63+8307+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a10550b-212f-0a2a450b0019-5a9b3222887a-3
 for <multiple-recipients>; Fri, 22 May 2026 15:07:23 +0200
Received: from 54-240-197-238.amazon.com ([54.240.197.238]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wQPap-0000000A7TT-2aXt; Fri, 22 May 2026 13:07:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=AuqlwZw0rYgmnvcus3P1j3sYrFeJ4f6KFnaJd1FqTmI=; b=I2Z1lu0A2WMUwvb3O2GEPeoHr8
	zqNl3A+zIsIj8HFTT7rFR80Dmf3Rf/0eB1vAJR+QcCya94QaSqXQG/zzUGJclrRBwwnMPJciZlobW
	c1i+T4FhyVSp5//2X0fSiI5waKHIjwBbv/RxNZeR8t/I1DStE2J5UbMLJiOT4doF4qierouWbH1fU
	GCHJE2Hamd+EJIa+chz/mPWx5E9zvB2Y1eIlTD9z1GnIm0TuWXNpnQFenRXlDAGr3jgb3+RftyGHC
	ZBnvQtJhHDGFg7Cp2tyxVpqGu/1ZvDclzKOJd8zjs9SjToqRYG+TZuzJpEqTAmGb6kxlN/fhhiECx
	U3+WlAFQ==;
Message-ID: <c4b498c401287477402ddd60a0120b0c5a9bf8d3.camel@infradead.org>
Subject: Re: [PATCH v4 27/30] KVM: x86: Add KVM_VCPU_TSC_EFFECTIVE_FREQ
 attribute
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
 Shuah Khan <skhan@linuxfoundation.org>, Thomas Gleixner <tglx@kernel.org>,
 Ingo Molnar <mingo@redhat.com>,  Borislav Petkov <bp@alien8.de>, Dave
 Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, "H. Peter Anvin"
 <hpa@zytor.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross
 <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Paul
 Durrant <paul@xen.org>, Jonathan Cameron <jic23@kernel.org>, Sascha
 Bischoff <Sascha.Bischoff@arm.com>, Marc Zyngier <maz@kernel.org>, Joey
 Gouly <joey.gouly@arm.com>, Jack Allister <jalliste@amazon.com>, Dongli
 Zhang <dongli.zhang@oracle.com>, joe.jin@oracle.com, kvm@vger.kernel.org, 
 linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, 
 xen-devel@lists.xenproject.org, linux-kselftest@vger.kernel.org
Date: Fri, 22 May 2026 14:07:10 +0100
In-Reply-To: <ahBQ7mXNaTtouT3C@google.com>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
	 <20260509224824.3264567-28-dwmw2@infradead.org>
	 <3ad6cd109480772ade3c11f23b9c1d7a9855d67e.camel@infradead.org>
	 <ag-Hf2liLSX9q0rS@google.com>
	 <ab84153e33fbe7c25667f595c56b310d4d5a93ef.camel@infradead.org>
	 <ahBQ7mXNaTtouT3C@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-CpuB671ZtQNXlLrJBdeU"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-42698a/1779455244-1B979F3B-18657B12/0/0
X-purgate-type: clean
X-purgate-size: 8913


--=-CpuB671ZtQNXlLrJBdeU
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64

T24gRnJpLCAyMDI2LTA1LTIyIGF0IDA1OjQ5IC0wNzAwLCBTZWFuIENocmlzdG9waGVyc29uIHdy
b3RlOgo+IAo+IE9oLCB0aGF0J3MganVzdCBhbiBvdmVyc2lnaHQsIGRlZmluaXRlbHkgbm90IGlu
dGVudGlvbmFsLsKgIEVhc3kgZW5vdWdoIHRvIGZpeDoKCldhbnQgbWUgdG8gcm9sbCB0aGF0IGlu
dG8gdGhlIHNlcmllcz8gQXMgeW91IGVsb3F1ZW50bHkgcHV0IGl0IHRoZQpvdGhlciBkYXksIHdo
YXQncyBvbmUgbW9yZSBwYXRjaC4uLj8KCj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYu
YyBiL2FyY2gveDg2L2t2bS94ODYuYwo+IGluZGV4IDE2MTZiMmVlYzZlNy4uY2Q0YTI0NGNhMGM1
IDEwMDY0NAo+IC0tLSBhL2FyY2gveDg2L2t2bS94ODYuYwo+ICsrKyBiL2FyY2gveDg2L2t2bS94
ODYuYwo+IEBAIC0yMjM1LDcgKzIyMzUsNyBAQCBpbnQga3ZtX3ZtX2lvY3RsX2NoZWNrX2V4dGVu
c2lvbihzdHJ1Y3Qga3ZtICprdm0sIGxvbmcgZXh0KQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCByID0gdGRwX2VuYWJsZWQ7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IGJyZWFrOwo+IMKgwqDCoMKgwqDCoMKgIGNhc2UgS1ZNX0NBUF9YODZfQVBJQ19CVVNfQ1lDTEVT
X05TOgo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHIgPSBBUElDX0JVU19DWUNMRV9O
U19ERUZBVUxUOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHIgPSBrdm0gPyBrdm0t
PmFyY2guYXBpY19idXNfY3ljbGVfbnMgOiBBUElDX0JVU19DWUNMRV9OU19ERUZBVUxUOwo+IMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPiDCoMKgwqDCoMKgwqDCoCBjYXNl
IEtWTV9DQVBfRVhJVF9IWVBFUkNBTEw6Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IHIgPSBLVk1fRVhJVF9IWVBFUkNBTExfVkFMSURfTUFTSzsKClBsZWFzZSB0ZWxsIG1lIHRoYXQg
Y2FuIG5ldmVyIGJlIHplcm8uIEJlY2F1c2Ugd2UgZGl2aWRlIGJ5IGl0IHdoZW4KcmVhZGluZyBI
Vl9YNjRfTVNSX0FQSUNfRlJFUVVFTkNZLgoKIC4uLiBjaGVja3MgLi4uIGl0IGRvZXMgbG9vayBs
aWtlIGl0J3MgaW5pdGlhbGlzZWQgdG8KQVBJQ19CVVNfQ1lDTEVfTlNfREVGQVVMVCBpbiBrdm1f
YXJjaF9pbml0X3ZtKCksIGFuZCB3ZSBkb24ndCBhbGxvdwp1c2Vyc3BhY2UgdG8gc2V0IGl0IHRv
IHplcm8uCgo=


--=-CpuB671ZtQNXlLrJBdeU
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMjEzMDcx
MFowLwYJKoZIhvcNAQkEMSIEIMPCxikEHDQX2wCaNntOTEK0rZx8dvCIOCZD+MJAOSKmMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAU8rJYqt2O38u
+O40TkWc0ihSTIv//fDjxLEGYD6+BhrfXWo8fHYzjh13USsQPHr6Mar41QdTyzOo+PACV5pt9OWe
DCwR/a+mZPuEygz1Y1PetzlBwkqDJLGbnw3vMjmufuJ3vnwBFB5in9ZJw8Bra9eBB74ZydHH5SMg
rgJ9Vd7nvcWht4NgDJEE2q/6G/qu3so18obH2MYLRgGQ8gVWWyz/3pWH5rnECNeLs6+sqTgPEUxq
hEPh8t/c3vnpZd8QZHBw3St+bx0t8Zb0PepG6hM6PQ+tXTBf4Su9ARHnu0qpdPF80ZLtAawO8qtm
FWh/aC4ent95kgcNVUOs6mY5cyc/kyN2P21nyW1m7jYz3HidNBGLTIEBN6ulHWc/uKttZ3cU1Aza
gpAZt3OS7UN+IJxsmlMKU6IDVSOoIAUc2czcDFn5VJGtxxqHgwMwwrzjV1Eu4xxuKHdOilNKsXid
FieAPPYsAVNzM5RCTrTA8uiQe+QmkZG8qCPwLU9R8XAOO0d2Q9aeh4zPVoGkvaCL2q4f62IXArGF
CdkreDTeNQUETYRmArxP9qP/EaG1a0uYBMSQmByJSejs+yNHu/AWVrXlRE+D3SKAed3RdrjmNLjR
xToo9PlIcSsh1nhy2YXuHRmLnmdR5TyLhiObq1tnKjlVWzeBoBLI7FqUnKan71MAAAAAAAA=


--=-CpuB671ZtQNXlLrJBdeU--


From xen-devel-bounces@lists.xenproject.org Fri May 22 13:28:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 13:28:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316818.1586156 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQPvX-0002vd-OW; Fri, 22 May 2026 13:28:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316818.1586156; Fri, 22 May 2026 13:28:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQPvX-0002vW-Ks; Fri, 22 May 2026 13:28:35 +0000
Received: by outflank-mailman (input) for mailman id 1316818;
 Fri, 22 May 2026 13:28:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fdf8954000f373@swg.vates.tech>)
 id 1wQPvW-0002v7-Gb
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 13:28:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQPvV-006aFe-Il
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 15:28:33 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fdf8954000f373@swg.vates.tech>)
 id 6a105a01-5cb7-0a2a0a5109dd-0a2a450287a0-0
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:28:33 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fdf8954000f373@swg.vates.tech>)
 id 6a105a01-af86-0a2a45020019-b9ff1c2282d3-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:28:33 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e4fdf8954000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 22 May 2026 13:28:30 +0000
Received: from l14 (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 7668C866B8;
 Fri, 22 May 2026 15:28:29 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=x+/BT0AdbhlPQPZLi9jRAjjEDzjR6iaAaT9AsOyrBvs=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=hG8G96TNdukgtwCrvHGHcBnek6sOwCXvmlWS/6e/qxf+5i/QmHOiOWqrIyX5Uvdu6j/yneJ61
 ASw+b6wDF+C5+pzTHcas8zwDIw8KdARwialqeBAdLhP6L9CVuPLZOYm7rDVDOutwxHAjPNsYbmH
 wLN9t/ziT5qv02tSHLv6Mt9yUANqo6Xzi7Ng8P0QLvk/msnbrEm25rS3lnu3K7dXtrU8PWQdJBo
 152jy+ZFcKic9/Hut8rYGob0fyWNsgio1T1IFpMT+rLC+QKRKkF+75YNGd+3M/lbdvk9P8taP4s
 MX0RMneGDIR/DcALin0RXxrDaUtUM3qp7zZrt5uqyX5A==
X-Zone-Loop: c062464a5c28aaac552a663c29e0fb710ab59692012c
x-campaign-type: default
x-transaction-id: 7987c31b-b1de-4d41-ab32-bb0a90cb3ea4
x-swg-uid: 01-78f15851-b4fb-4505-9705-5f8412599245
X-Mailer: Sweego
Message-ID:
 <1779456510.8631fc262581453bbf619ec5b2062170.19e4fdf8954000f373@vates.tech>
x-swg-bid: 1779456510.8631fc262581453bbf619ec5b2062170.19e4fdf8954000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 22 May 2026 15:28:29 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 01/13] Add Alpine 3.23 containers
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
 <d778b5c5936932fa0925ffa3bf3e1656da26bbaf.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <d778b5c5936932fa0925ffa3bf3e1656da26bbaf.1777898148.git-series.marmarek@invisiblethingslab.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1251.bb4ab168c438cb5a.19e4fdf869d.f7dfd61d7377498e=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779456509597
X-purgate-ID: tlsNG-720697/1779456513-AB563161-4DDC2498/0/0
X-purgate-type: clean
X-purgate-size: 790

---=Part.1251.bb4ab168c438cb5a.19e4fdf869d.f7dfd61d7377498e=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, May 04, 2026 at 02:35:40PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> Add it in all variants:
> - base container
> - build container
> - initramfs archive
>=20
> libdw used to be part of libelf in Alpine 3=2E18, but it's a separate
> package in 3=2E23=2E
>=20
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethings=
lab=2Ecom>

Reviewed-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.1251.bb4ab168c438cb5a.19e4fdf869d.f7dfd61d7377498e=---


From xen-devel-bounces@lists.xenproject.org Fri May 22 13:30:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 13:30:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316824.1586165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQPxL-0004QG-1v; Fri, 22 May 2026 13:30:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316824.1586165; Fri, 22 May 2026 13:30:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQPxK-0004Q9-VO; Fri, 22 May 2026 13:30:26 +0000
Received: by outflank-mailman (input) for mailman id 1316824;
 Fri, 22 May 2026 13:30:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fe13aa6000f373@swg.vates.tech>)
 id 1wQPxJ-0004Q3-OL
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 13:30:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQPxJ-007bEm-4J
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 15:30:25 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fe13aa6000f373@swg.vates.tech>)
 id 6a105a64-e002-0a2a0a5209dd-0a2a4508a6c8-24
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:30:24 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fe13aa6000f373@swg.vates.tech>)
 id 6a105a70-63b5-0a2a45080019-b9ff1c2287f5-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:30:24 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e4fe13aa6000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 22 May 2026 13:30:21 +0000
Received: from l14 (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 954D38639F;
 Fri, 22 May 2026 15:30:20 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=tcOilUkk3h56Cl0Owy8JUt28eXElBcnJtGZsaIuU71k=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=NcCzoa0e/aKYAjazAOH6oCCbi6DhMsuoR+hvswX57BC7yACh8UwdeY5LJTliAUYVTti4kthWM
 XHG44HvCdACiYeQq2jqkIrswTRD6X4ODaDX2bANdMZkLYihZsD34m2ZfuG20C1HhWfLlXlq6Cln
 Mgar2zTaTh2bxyKObZLfDa+9jjRbgVYVqkdo8tpaHs5rt7hpdzbeV165orOya5PPCEexqFEuzLr
 9sFRuCZi9RZjUsqb3+9q3eh1D4lKByUGGUiv9xHUYxlQaCORP5ffWBDH0U7DA4muibNfqAz/qS/
 LgvUCf9ZqwrhtIcpX3AeZX+seGaQvG2XHHCH0hCG6MSg==
X-Zone-Loop: 3c6bf48189ac22221a4633fe81bdf595ec030847d54c
x-campaign-type: default
x-transaction-id: 10c22514-3d2f-4f29-8cf5-848f59f9f5d6
x-swg-uid: 01-c52230f2-8009-4c23-9868-033a609f295e
X-Mailer: Sweego
Message-ID:
 <1779456621.8631fc262581453bbf619ec5b2062170.19e4fe13aa6000f373@vates.tech>
x-swg-bid: 1779456621.8631fc262581453bbf619ec5b2062170.19e4fe13aa6000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 22 May 2026 15:30:20 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 02/13] Switch Linux builds to use Alpine 3.23 container
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
 <23fbf2c275cfb021161688eb5f0e9013bfb4aa83.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <23fbf2c275cfb021161688eb5f0e9013bfb4aa83.1777898148.git-series.marmarek@invisiblethingslab.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1252.feae6614dcee22e0.19e4fe138b1.50f35089f595e84=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779456620721
X-purgate-ID: tlsNG-c1860d/1779456624-BD56FDB1-3ABD4168/0/0
X-purgate-type: clean
X-purgate-size: 770

---=Part.1252.feae6614dcee22e0.19e4fe138b1.50f35089f595e84=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, May 04, 2026 at 02:35:41PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> Slowly phase out 3=2E18 one=2E
>=20
> But keep Linux 6=2E6 on Alpine 3=2E18 containers - it fails to build on
> Alpine 3=2E23 (due to GCC 15 defaulting to -std=3Dc23)=2E
>=20
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethings=
lab=2Ecom>

Reviewed-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.1252.feae6614dcee22e0.19e4fe138b1.50f35089f595e84=---


From xen-devel-bounces@lists.xenproject.org Fri May 22 13:35:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 13:35:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316839.1586176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQQ2S-00055j-Lh; Fri, 22 May 2026 13:35:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316839.1586176; Fri, 22 May 2026 13:35:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQQ2S-00055b-Gu; Fri, 22 May 2026 13:35:44 +0000
Received: by outflank-mailman (input) for mailman id 1316839;
 Fri, 22 May 2026 13:35:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fe6177b000f373@swg.vates.tech>)
 id 1wQQ2R-00055V-DL
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 13:35:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQQ2Q-002T5P-Pr
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 15:35:42 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fe6177b000f373@swg.vates.tech>)
 id 6a105ba9-2eae-0a2a0a5409dd-0a2a4502bd78-18
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:35:42 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fe6177b000f373@swg.vates.tech>)
 id 6a105bae-af86-0a2a45020019-b9ff1c229abb-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:35:42 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e4fe6177b000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 22 May 2026 13:35:39 +0000
Received: from l14 (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 3AA2A86A02;
 Fri, 22 May 2026 15:35:39 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=pml0ddqtmQbrG50VXhUuTXy9ZFiIej+5i7PFP6V2CN4=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=n1cbVyOSrZCIkU9Y9q9eWBeSNPK8CkgQJyJNgLCABmrsONBS0cLVdHpofVrPCAQCs1XH8TKHe
 dBJ6GErx/ie2DapdjZUXUumUBykkW9SNUi1us/wIFeHgGjnzPQO6PUBmZC2fmvCUtyiVT1syMQJ
 Me5weEVRilS7ZP35l0bvwOKlD1dOti/2hy9q8hK0M409T3eGOBfSNY3AAkLiXKqzepxNj6hc/3Z
 QOyuEsjubODCijRhRHHcuHjpbkJPO6HK9g11Sy7/S2lnS9DecgtjaRq6qdhP1JcDP50/fiB67WI
 8uImk3XFT/56Z4tY9NLAJMTBPJXrs1qfP/VmQbPPv01Q==
X-Zone-Loop: c623cb006f08736b6b2288b3ef629211bb5a36a0dd49
x-campaign-type: default
x-transaction-id: 0c6d37d6-eec4-4ed1-8572-a32b4158c1ca
x-swg-uid: 01-4a1ad561-b75f-4b7f-bdb3-27bceecf6aa6
X-Mailer: Sweego
Message-ID:
 <1779456939.8631fc262581453bbf619ec5b2062170.19e4fe6177b000f373@vates.tech>
x-swg-bid: 1779456939.8631fc262581453bbf619ec5b2062170.19e4fe6177b000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 22 May 2026 15:35:39 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 06/13] Support building arbitrary Linux
 branch/tag/commit
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
 <9440095275dd9313f7f8e2a41384e1275be0fcaa.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <9440095275dd9313f7f8e2a41384e1275be0fcaa.1777898148.git-series.marmarek@invisiblethingslab.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1253.60ef3f67f9fe3725.19e4fe6155a.3f18c0cee08e0c1d=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779456939355
X-purgate-ID: tlsNG-720697/1779456942-81971161-6B9A3FC3/0/0
X-purgate-type: clean
X-purgate-size: 1463

---=Part.1253.60ef3f67f9fe3725.19e4fe6155a.3f18c0cee08e0c1d=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, May 04, 2026 at 02:35:45PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> Change how kernel version is given to the script - use arguments, to
> avoid confusion between pipeline level variables and job level ones=2E
>=20
> The build-linux=2Esh now can take either just the kernel version (used t=
o be
> LINUX_VERSION variable), or git branch/tag/commit name + git URL (new fe=
ature)=2E
> Go with "git init" + "git fetch" instead of "git clone" to support any
> of branch/tag/commit=2E
>=20
> This also defines optional linux-git-* jobs which will build the thing
> if LINUX_GIT_VERSION and LINUX_GIT_URL variables are provided for the
> pipeline=2E
>=20
> The idea is to define separate CI schedules for the test-artifacts repo
> with LINUX_GIT_URL/LINUX_GIT_VERSION pointing at Linux trees to be
> tested (for example linux-next), and then trigger matching pipelines in
> the xen repo for testing with that version=2E
>=20
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethings=
lab=2Ecom>

Reviewed-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.1253.60ef3f67f9fe3725.19e4fe6155a.3f18c0cee08e0c1d=---


From xen-devel-bounces@lists.xenproject.org Fri May 22 13:37:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 13:37:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316847.1586185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQQ3r-0005Zf-UE; Fri, 22 May 2026 13:37:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316847.1586185; Fri, 22 May 2026 13:37:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQQ3r-0005ZW-Qe; Fri, 22 May 2026 13:37:11 +0000
Received: by outflank-mailman (input) for mailman id 1316847;
 Fri, 22 May 2026 13:37:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fe77034000f373@swg.vates.tech>)
 id 1wQQ3q-0005Yb-B9
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 13:37:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQQ3p-00FDyM-Jj
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 15:37:09 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fe77034000f373@swg.vates.tech>)
 id 6a105c02-2eae-0a2a0a5409dd-0a2a4509b67c-6
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:37:09 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4fe77034000f373@swg.vates.tech>)
 id 6a105c05-2497-0a2a45090019-b9ff1c22851b-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:37:09 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e4fe77034000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 22 May 2026 13:37:08 +0000
Received: from l14 (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 821E386324;
 Fri, 22 May 2026 15:37:07 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=Vzyzof6M049MglgyGphYvxr9S5Eyzuvw6mtrmcugws0=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=bM2pk8/73M0VdwinuOodlIBSl8kEe44D4dtqxQ9MAG2UuyiGakSWbUuiLW30Qrx45UwVD3eh8
 WSdIwhrkWrQWP6xPhtGdt1s9cDNKJjGlIAov0k1/1eGBKP5SjNHpq36sEPCuhD5fjW4qPHb4YMt
 shbcNnz8OLSbpCHdVz6uBFqlB9K+hXTvK5R98KR9rLDD43EZVyMswSXBDylVMaLQUD3ZFpKJYV6
 Z4vZZNjwn/ZLvOL7+2RB5ZmjwjSHYwEtiSwazuCUCFMmpe46OcIF93mBPUFWCGnDDoUg0Nq0906
 s9JrjvlgmjuRqRWmYmuC2J3BGYCetQAQ8gcteQVbVtfg==
X-Zone-Loop: 3a749b1756884997b4b7a64080d702b6af34166d5b1a
x-campaign-type: default
x-transaction-id: 9b7fe5ca-9582-4bbe-af5e-7b612cb0683f
x-swg-uid: 01-a3fb1e17-4a7a-4d2f-99c1-3f7fa9b504bd
X-Mailer: Sweego
Message-ID:
 <1779457028.8631fc262581453bbf619ec5b2062170.19e4fe77034000f373@vates.tech>
x-swg-bid: 1779457028.8631fc262581453bbf619ec5b2062170.19e4fe77034000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 22 May 2026 15:37:07 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 09/13] Add trigger-test job, to run test on a Linux
 built from a branch/tag
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
 <4fdfa09a7ff699f5d51ab9beb95b18ccbd0c0be3.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4fdfa09a7ff699f5d51ab9beb95b18ccbd0c0be3.1777898148.git-series.marmarek@invisiblethingslab.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1254.5aa55d87213b6ca.19e4fe76e39.b14198c9c2ecbe7e=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779457027641
X-purgate-ID: tlsNG-bad1c0/1779457029-88572A53-ED8689D0/0/0
X-purgate-type: clean
X-purgate-size: 1437

---=Part.1254.5aa55d87213b6ca.19e4fe76e39.b14198c9c2ecbe7e=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, May 04, 2026 at 02:35:48PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> When scheduling pipeline in test-artifacts repo, it can get also
> TEST_TRIGGER_REPO and TEST_TRIGGER_BRANCH variables, to trigger relevant
> pipeline to test just built artifacts=2E
> Pass ARTIFACTS_REPO+ARTIFACTS_BRANCH to the child pipeline to ensure it
> fetches artifacts from the right job, but avoid xen test pipeline
> inheriting other variables, as they might have unintended consequences
> (for example REGISTRY one)=2E
> For example, to build linux-next and test Xen staging on it, the
> pipeline could be triggered with:
>=20
>     LINUX_GIT_URL=3Dhttps://git=2Ekernel=2Eorg/pub/scm/linux/kernel/git/=
next/linux-next=2Egit
>     LINUX_GIT_VERSION=3Dmaster
>     TEST_TRIGGER_REPO=3Dxen-project/hardware/xen
>     TEST_TRIGGER_BRANCH=3Dstaging
>=20
> The triggered xen test pipeline will skip most build jobs=2E
>=20
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethings=
lab=2Ecom>

Reviewed-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.1254.5aa55d87213b6ca.19e4fe76e39.b14198c9c2ecbe7e=---


From xen-devel-bounces@lists.xenproject.org Fri May 22 13:40:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 13:40:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316858.1586194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQQ74-0007YW-BU; Fri, 22 May 2026 13:40:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316858.1586194; Fri, 22 May 2026 13:40:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQQ74-0007YP-7E; Fri, 22 May 2026 13:40:30 +0000
Received: by outflank-mailman (input) for mailman id 1316858;
 Fri, 22 May 2026 13:40:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQQ73-0007YJ-4d
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 13:40:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQQ72-002To2-Gw
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 15:40:28 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a105ccb-5cb7-0a2a0a5109dd-0a2a45028828-6
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:40:28 +0200
Received: from [52.101.62.39]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a105b26-af86-0a2a45020019-34653e27a41a-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:33:27 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS6PR03MB989095.namprd03.prod.outlook.com (2603:10b6:8:368::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 13:33:25 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.016; Fri, 22 May 2026
 13:33:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QaTSDMQUaPUX9Ka4wG2mbg7DRUpYSi4OxH6K60ThNwwB9OorrBk1EFHx3FHmEP4SiSjga5lK4/NTuk8VrCuVRHyWtwuRTmcE5B/ybL6pyyeKiAoLtoxDRHQZcjnHnIkuO0CMIrFr1AcWEbk7dcIvDf98S0hIamgXmaBwO/sIBGiG2Lw9CnEZCbifmLWqhuLK2iLMOZUHAxjwRCCJHJwnG0ySWMklnQgYdCso3MOnUmonRY0GTRUoF0ff66lMe98XPOEZQQxXhT6G1scmEfOUtph0jcwbNMrJEoERpWXY1QUi2DKCM3Oc737fVCJg0+nbMn4HCgMA1mBAbPBtHMhuEQ==
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=aHE/ePwZPFW2mVX3FxK1qv1GIBqs0iIr5q0mbQMKbhw=;
 b=eIfydgbuneFaIglS/sjBXIs0WiXfkvOD3i1ravk+lHdACwdNGhx0R3QnNSbKRShwLns1sr8r9bhr68Q6jP4DdP2pYp3fC1RwkxkApJnTjgBPReZ3el1u0F+UacR//4xX81kDwq7s6skqrW3G3Pf4Unml2koPrHEay9Ho07ffsrEAbqPmZ/tBqjFCflOO6MZx+GIMgMMpGF3CCMYmJxGiZd9qN6cZ1SgqArUZsG1oYW7WCnRrT4t6C0FUhbg7JPQ1ZsI7tuizPzSUNbyIdSTRKC6ByI4Qgg35KUVZHJrExwBDw7SAtERQYn63cXE6zLR7eoxwVxtLtugukuQyEtKU9Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aHE/ePwZPFW2mVX3FxK1qv1GIBqs0iIr5q0mbQMKbhw=;
 b=TY1M7y+071HYBTE7uBS7Pf+wP8lvUOT3YRt+OoNKeYe6GSAnYypcHP2EnjCAzRoCNYse+CATTDP7hgt8PRBxZ7mxLmANmZq26xbACZDig387ntapiKS/toIDtt5O97KOOI5BN9Wl7xZZHBJay5naCpO6Vgfu/oBDMVhDc6kxE9s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <6fa17f31-05af-43f3-9a85-daaf96d97347@citrix.com>
Date: Fri, 22 May 2026 14:33:21 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2] pv32: Fix bogus cr2 on fault in emulation gate
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <1779453231.8631fc262581453bbf619ec5b2062170.19e4fad80e4000f373@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1779453231.8631fc262581453bbf619ec5b2062170.19e4fad80e4000f373@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0266.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:194::19) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS6PR03MB989095:EE_
X-MS-Office365-Filtering-Correlation-Id: 9f7d31d0-aa00-4af4-41ad-08deb806b313
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	boX1u1l6f/Rn5UJVDdCLbkDpRsI94jt9P6FtiD9z+LVeiWIUjwNNKVEfJrOFGmmieSgPAyCt3zw8DIzMmFmU/2cox94Eg1hMsPVDWcymdmY2O5ErstfZ9qPtmG9352ClNyNwjrfEiiDFT2c5S3EynK2mjw2m3pu98EXNWTcsq4fEnxzz/ald5sN4gwMiKdnBAEvk751VhWPeB4qdbr5SXBGCPp2/5a5D6KXyK827QlwpyMEIh+LiX82qBSGmx5LjcADMsangSxDKsstjNxtPxrkU251BqR7NR4rtz1XRX+AAWZeJPOkKXcbhhxlwuY+9GkilaAiAm4HGsXelqpMq0rPgmhUrSmrQbUXKs8e3UgBi9JHCsPaZkIRayuuInbojeLpyx+AmQdkrpuM/aBt9ptNNSk8TDsd0u5rNIu7hmWPgbssn41tnDqQ/LU2RKrapbBBiFUkyQWHH4eTFmYifaPmOTNTgArYfQ6tuwQZvCo+9rmr1bL2PxV/ef5wPCA95Uy/GrqqLM388/2fDhi64LWDQr2qNsL0TrCyi5yeKcG0RjJyiyGcCWyCEQrHcDEgEiR3Cuo0kY8qycwnOOkoUuvvk8nJbG+gSmKPXQzStOMwkZEo3cjKeUGhewPyB7gX968rgjTJQ5+7Nk42TKwOwrYK+TzhixTr8clSPDV++evXpE0/OJEuteD0WIP7+MsLP
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(22082099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SkVpM3E0UU1VVHlyZzE3eVNlQUljRmhTa3NjV3ZmcUtIUzd1NVArQ3o4QUVE?=
 =?utf-8?B?REIzZHhLSC9lelF5d3FnaFc2YnhBNWFzS2VJL1IwdUtSUnBTSG9EbTVJRVVt?=
 =?utf-8?B?YjNONklXU1hvTlNUbHNuRDkrR2JYZmtkYkovRzJmR29iTW1vbzNlR2p4N0pr?=
 =?utf-8?B?cGpudytmM3J3cXpUS1E0VG9LeUMrZ0NteWsvaCtReCtRdGtyQVdhZGtBd0tw?=
 =?utf-8?B?RVp6cTdTdnQ3OFZRRXZNeks1RDRTNmJ1N09tWW9LbXpnOTlYczltbnFpSU5X?=
 =?utf-8?B?dUcxSTFZL3dhOEF6U3RZMStzbThZMTU1RklZbFdqeVNINXZOZE83UEI5UlhL?=
 =?utf-8?B?aU5JelFGSmhvRERVaWdOMHpIZlY5bGFzaGhsaUkxTjFlVWw3cGgyYVFHRVpi?=
 =?utf-8?B?cnNWQStaeUZjb1RRTmNzREZ2TGFqZUxHSnExK3d4Q1lFaXpEdnJlTXo3UlhB?=
 =?utf-8?B?YTlEOFhaSEw5RTR0S1ZCL280QWFNRDBBeWRKTzdqWlN3blp4NytBT3ZpRmNl?=
 =?utf-8?B?Sng2Z1lvOFp1VlR2Z1VPWnBVazNlZzNJeUFNME9UZDJPRmkwR0NIa0dFSlNO?=
 =?utf-8?B?SFh2NlloZCthbHNFc2FQTEx6cUVIcllNbmRXWU5yVUpueUNQQk1TVWQ5eTZV?=
 =?utf-8?B?dFI4aWlzQzFNcUw1SWsrVUZlQUlDWXFuU2lSRlhsYStMR1kxWElTS2VOUEdI?=
 =?utf-8?B?M1VmWmVYYS9DZXE3di9tS2ZNTlJ0YkE5dDEzTFo5UzBic3k1NmZkUTlPRzJD?=
 =?utf-8?B?b1dxamFRTFRFdHFXbTJhdEFJdkRURWdlUUIxRFFycXRIbW9iWFBkZFRaNkNt?=
 =?utf-8?B?K2FhaXkyc08zSzhURHZqbGNoK3dkNmVUck5HcVNaeHQ1SmlDRTRES0tkSHVq?=
 =?utf-8?B?SDhObHhRY2hUMGxxMTdEMFpQTzg4Ylg2TmN2QXRQVDVGVERVQ2F1SWl0NTZl?=
 =?utf-8?B?QS9MbUtCSnVWVDk0d3g4T2dIUE5Oa0hYTkw5a0prc0hPbmhxTEs1UlBMdkM5?=
 =?utf-8?B?eVN5MlRjSDIwaHMvd0FSeVVZZnBad0s0NW9ZaTBaZURka2ZKL3VpU0FpYU4y?=
 =?utf-8?B?RXhwUHhISlZiNk4zNjVkODZGM1p5UEFjS0NQQmgyRmR3U290K3d4a0FJdlJH?=
 =?utf-8?B?b3FJcDZFMEp0NU5OM1JDY3Z0aHp6S3ZUeUdhUkYwZGU0RE0rM3ZVNmd4MlU0?=
 =?utf-8?B?NWt4RXhRMDBSQ2FkcTcrWXJ0cEZibitIYXNKTnJHeGxHMEowNzFrOU9mS0VO?=
 =?utf-8?B?TGNlaTdrNmFmVXQ4aUIyRXZ0UW0vM0NmeEpDU2tqZEdGaUIzWklnVFA0aTBC?=
 =?utf-8?B?WEZHWDJlZ2V1dUcrVzFRaGp0RTdMcFNjdElyS1o4OGJCaDNLVnRTcGIyNWQx?=
 =?utf-8?B?bGhwUFJleHA0b1c3T0FjSFJuUUYyUFUzc1BQSmY2NEQ5UWFmUVlGcFBNUzZN?=
 =?utf-8?B?R24yMjRHdkhST0dNUll3NU00QzF4RldRdlFrUlM1aWhiVmxHV2trMm15L1kx?=
 =?utf-8?B?QUY0bUZOTGR5a1RhYW5ZUUhuQU03aGord01RNzBMUXRwZXRsbkh2T21saGhX?=
 =?utf-8?B?RlU4ck8rV0lTMG1lNThWdU5SOGo0VHlDS2tVWTIxR3VGV3BYVUZWcHhFRWtm?=
 =?utf-8?B?MEJLZ1c0a2h6NXAva0s5U010ZlBpTmF2bHREM3ExbFUrOEROZlNxYWMwZWRJ?=
 =?utf-8?B?TGpJV2x4bUVrbUFwU2JYSzdOclNSOTJUQjF6YVdmVzYvaVBWT0tLWC9KS05V?=
 =?utf-8?B?MzZnTWhPSFdzKzU4QWJkS2FxNktMWUJjUjFjcitTcnYrTVFjbUxWZFlkbk1r?=
 =?utf-8?B?K0dHNEhmQXFQZmNENmpOcVdqUFIySUp6NzhZcHZOV080dzlhUFZEaXNTTGc5?=
 =?utf-8?B?R21PcFZKQk1TaG9iL2dkd3FQMWNxV0dFNUc2L2NmUWw2K2VGek8rcU5lbWhn?=
 =?utf-8?B?MnUzYzhqSkN5TDNQOTkvekZmUHBJNkZPcFZieFVJbllUbU1LaEM5dFFSVXhU?=
 =?utf-8?B?WlAxbnZEMFY0OTVIb3pVRDdmWHczckgwa0Z0cWJHYWVUcGhPdU5TMm5aNStE?=
 =?utf-8?B?THpOOXN1OVVBNStuazZPSndtekxhV044VlRQY3p0TXFpWUgwSEdNQS9pZ3dW?=
 =?utf-8?B?VXVLaDd2UHp2aitQcEtMdVBYNHlHc0tWc1kxcWlhaFZ0WUZZNnM4Q241QXJD?=
 =?utf-8?B?bTZyUDVFWVRHdC9BTUFMSmFLc05Jbm05YUM2SU9PUnpJWlE1UFVzd0l2NThH?=
 =?utf-8?B?TjAycEJOUlA2bEdyUjVHZlRjWFRLS3lLSDBjSUxndWlScW5xbUtLNys1RjB6?=
 =?utf-8?B?N21DTWtHVFlmcnRSZm1VdVVneVRlVFlaNWI0YlpzcnEwUzhEYjN2UGtRYnk2?=
 =?utf-8?Q?6b2iShj/J2pjFmmE=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9f7d31d0-aa00-4af4-41ad-08deb806b313
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 13:33:24.7812
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5qDojo2kEZ2+VqJKVPJdXqLxvL8dR1mUnlYkb3H+ra/cRF0RYcibMPKll7Uxip/sDUYtftYj7hx5LSgT0VoW36ZePQKrhcBTtsoVqYIl6x4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS6PR03MB989095
X-purgate-ID: tlsNG-720697/1779456807-81D77161-57038220/13/0
X-purgate-type: spam
X-purgate-size: 2171

On 22/05/2026 1:33 pm, Teddy Astie wrote:
> __{put,get}_guest returns -EFAULT on access faults which causes
> the injected cr2 to be off by 14 bytes (as EFAULT is 14) which is
> incorrect.
>
> Fix the computation by relying on copy_{from,to}_guest_pv which
> reports the number of remaining bytes instead of a negative errno,
> such that we can compute the offset properly.
>
> Fixes: 70ad570b2799 ("x86/64: paravirt 32-on-64 call gate support")
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> v2:
>  * Don't add variable in push() macro
>  * Use uint32_t type for temporary value.
>
>  xen/arch/x86/pv/emul-gate-op.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/x86/pv/emul-gate-op.c b/xen/arch/x86/pv/emul-gate-op.c
> index c2c699fbff..9c229c46c4 100644
> --- a/xen/arch/x86/pv/emul-gate-op.c
> +++ b/xen/arch/x86/pv/emul-gate-op.c
> @@ -286,12 +286,14 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
>      if ( !jump )
>      {
>          unsigned int ss, esp, *stkp;
> +        uint32_t value;
>          int rc;
>  #define push(item) do \
>          { \
> +            value = item; \
>              --stkp; \
>              esp -= 4; \
> -            rc = __put_guest(item, stkp); \
> +            rc = copy_to_guest_pv(stkp, &value, sizeof(value)); \
>              if ( rc ) \
>              { \
>                  pv_inject_page_fault(PFEC_write_access, \
> @@ -359,7 +361,7 @@ void pv_emulate_gate_op(struct cpu_user_regs *regs)
>                      unsigned int parm;
>  
>                      --ustkp;
> -                    rc = __get_guest(parm, ustkp);
> +                    rc = copy_from_guest_pv(&parm, ustkp, sizeof(parm));
>                      if ( rc )
>                      {
>                          pv_inject_page_fault(0, (unsigned long)(ustkp + 1) - rc);

As with v1, __copy_*() rather than copy_*().

I've fixed up and committed (including Jan's suggestion), along with
some improvements to the commit message.

x86/pv32.  "gate emulation" rather than "emulation gate", brackets on
function names.

~Andrew




From xen-devel-bounces@lists.xenproject.org Fri May 22 13:54:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 13:54:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316874.1586206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQQKu-0001iJ-Kg; Fri, 22 May 2026 13:54:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316874.1586206; Fri, 22 May 2026 13:54:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQQKu-0001iC-Hb; Fri, 22 May 2026 13:54:48 +0000
Received: by outflank-mailman (input) for mailman id 1316874;
 Fri, 22 May 2026 13:54:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4ff78945000f373@swg.vates.tech>)
 id 1wQQKs-0001i6-Vw
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 13:54:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQQKs-00HK6w-1W
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 15:54:46 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4ff78945000f373@swg.vates.tech>)
 id 6a106012-2eae-0a2a0a5409dd-0a2a4502aed6-18
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:54:46 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4ff78945000f373@swg.vates.tech>)
 id 6a106025-af86-0a2a45020019-b9ff1c22afe9-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:54:45 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e4ff78945000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 22 May 2026 13:54:43 +0000
Received: from l14 (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 72CBC869C1;
 Fri, 22 May 2026 15:54:42 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=3KZw4NbUAnuHoQnUOjqRkQ91RSCgZZzUWQMygOc1QGU=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=Fadol7ik8MTa/vAWKKVIow0RthO4HgDDZyChwCAR1pduc5a/kMAzrh5jOBr3CLQexunNR6dk3
 v+FS/zi9cZfPJEOcYyCPaEl3nWbZW9CvMuNFDrZ8NcUHXdgk9AF0W5ebefCnT7mm1tKfmSMaxYz
 WXTTqYK1R3r9FDrI8ZGBMdezQcfJTCk65LTUdnTJI2Kz4aiKYa4cooxQsiF6+k9KpY1yGUpPTwD
 W4lp1kZqbApVpk11xrPX7gozo1q2E+7glehUyQCiy/JEAuolm2xMYsBYU/vVFdjAyJtyybVYXQ1
 iA3wqxiReZhcXA0/4ifQB7KROyBdDZbcZ4Q4sQV+d5mw==
X-Zone-Loop: 246c80240835eaaddb9b3c1fdc44285763f2d05383aa
x-campaign-type: default
x-transaction-id: 49138ccb-4cf8-4b79-b995-7bf929966894
x-swg-uid: 01-9ab0dd6a-d102-4ef2-add9-e4b973f12632
X-Mailer: Sweego
Message-ID:
 <1779458083.8631fc262581453bbf619ec5b2062170.19e4ff78945000f373@vates.tech>
x-swg-bid: 1779458083.8631fc262581453bbf619ec5b2062170.19e4ff78945000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 22 May 2026 15:54:42 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 13/13] Setup ssh access to test systems
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
 <13f837cd9f394d3b4eddb4849156b8ed5d06d31b.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <13f837cd9f394d3b4eddb4849156b8ed5d06d31b.1777898148.git-series.marmarek@invisiblethingslab.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.1257.e0e040b592ee1554.19e4ff7871d.8d7df2745447e190=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779458082589
X-purgate-ID: tlsNG-720697/1779458086-80F7E161-093B22B0/0/0
X-purgate-type: clean
X-purgate-size: 967

---=Part.1257.e0e040b592ee1554.19e4ff7871d.8d7df2745447e190=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, May 04, 2026 at 02:35:52PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> For this add also bridge package, so xenbr0 can be configured with
> /etc/network/interfaces=2E
> This allows extracting more logs out of the test system=2E
>=20
> Create empty /etc/network/interfaces, so the 'networking' service starts
> cleanly even if no interfaces are configured this way=2E This is
> necessary, as dropbear service depends on networking=2E
>=20
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethings=
lab=2Ecom>

Reviewed-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.1257.e0e040b592ee1554.19e4ff7871d.8d7df2745447e190=---


From xen-devel-bounces@lists.xenproject.org Fri May 22 14:01:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 14:01:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316888.1586238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQQRf-00045U-Gu; Fri, 22 May 2026 14:01:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316888.1586238; Fri, 22 May 2026 14:01:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQQRf-00045N-EK; Fri, 22 May 2026 14:01:47 +0000
Received: by outflank-mailman (input) for mailman id 1316888;
 Fri, 22 May 2026 14:01:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4ffc192e000f373@swg.vates.tech>)
 id 1wQQRe-00045G-6w
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 14:01:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQQRd-00ExlA-If
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 16:01:45 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4ffc192e000f373@swg.vates.tech>)
 id 6a1061c3-e002-0a2a0a5209dd-0a2a4509b576-32
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:01:45 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4ffc192e000f373@swg.vates.tech>)
 id 6a106151-2497-0a2a45090019-b9ff1c229839-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:59:45 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e4ffc192e000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 22 May 2026 13:59:42 +0000
Received: from l14 (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 88E16827FA;
 Fri, 22 May 2026 15:59:41 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=zaeb53hxEkUBaQ2bRhQcUhueHMCULk7xG8x2aaWSvzw=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=Bz/oq12+uwKQk1qY+gUih0u7tJUMUx0tZlByQq7q8GE7bo6qZgAhIOlOpy7Skkr2Zsz1wyqz1
 Jb6hck9iZutOaIO4F51HSaxM2YCg+Ks5z3I15iz+41CMy2Kq2mPZqPwkhkuOf9O+e53kAn3taxX
 a0pNthZoSzcipoUbkTlA9jphICxmmE3iXHZpD4WyH7pX+Z9Zfu5xryudvQff5p4DGozMzkykNGX
 xQDbU9xDnqYFOQGVzjCGAkV/12J342kBxZulAcrn7O59Z1L+JCzNHwnQRhoNRyuu39OoWQU/VQY
 kplqAvZhDsrQ50sSuwn8TVpneAwVTXaNRaMfOu/PFUSg==
X-Zone-Loop: 74066859d730518dc3588a0936ba2a3d2b6c15157863
x-campaign-type: default
x-transaction-id: a2abfe53-5f6e-4f72-b33b-12cefa5e99be
x-swg-uid: 01-57c3908a-ae09-462b-802b-d47cccc9eb60
X-Mailer: Sweego
Message-ID:
 <1779458382.8631fc262581453bbf619ec5b2062170.19e4ffc192e000f373@vates.tech>
x-swg-bid: 1779458382.8631fc262581453bbf619ec5b2062170.19e4ffc192e000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 22 May 2026 15:59:41 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 11/13] Prepare grub for booting x86_64 HVM domU from a
 disk
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
 <00344b97286d79b76334622611da48ceda7e7e8f.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <00344b97286d79b76334622611da48ceda7e7e8f.1777898148.git-series.marmarek@invisiblethingslab.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.125b.972c5034eb1dd18c.19e4ffc1765.4a9b55f24e13aa07=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779458381670
X-purgate-ID: tlsNG-bad1c0/1779458385-41F6EA53-7E78DACB/0/0
X-purgate-type: clean
X-purgate-size: 631

---=Part.125b.972c5034eb1dd18c.19e4ffc1765.4a9b55f24e13aa07=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, May 04, 2026 at 02:35:50PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> The stubdomain test will use it
>=20
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethings=
lab=2Ecom>

Reviewed-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.125b.972c5034eb1dd18c.19e4ffc1765.4a9b55f24e13aa07=---


From xen-devel-bounces@lists.xenproject.org Fri May 22 14:03:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 14:03:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316895.1586247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQQTQ-0004c1-Ri; Fri, 22 May 2026 14:03:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316895.1586247; Fri, 22 May 2026 14:03:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQQTQ-0004bu-P4; Fri, 22 May 2026 14:03:36 +0000
Received: by outflank-mailman (input) for mailman id 1316895;
 Fri, 22 May 2026 14:03:35 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4ffbe7fe000f373@swg.vates.tech>)
 id 1wQQTP-0004bY-C5
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 14:03:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQQTO-006p6o-PB
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 16:03:34 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4ffbe7fe000f373@swg.vates.tech>)
 id 6a106232-bab6-0a2a0a5309dd-0a2a4508a0cc-12
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:03:34 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4ffbe7fe000f373@swg.vates.tech>)
 id 6a106146-63b5-0a2a45080019-b9ff1c228e59-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:59:34 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e4ffbe7fe000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 22 May 2026 13:59:29 +0000
Received: from l14 (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id E48C0827FA;
 Fri, 22 May 2026 15:59:28 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=fzqoco5QRBqDYGvcx49JMboZIyXR1Joea0Y4RpGSGco=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=uG4qVA+At0uSfvG5OhGhE/x2Z3x+1BbONT3XeUYV6WF+0+wMcQdEq4AfqlPO7A3a7IS7fc4JS
 rxyhH7oSfrIs/nhlAQL+rFPpgYQR6+cgbIoVdvbvq7Dua/A8ktX/0ttuVkClnVkvNs314t7LUV7
 4UExX6kud326FzUOjCGUi61HIfyzVLNAtU/xecelYEzdgJPn1zOo83gmYdofnRaAQ9w3JeQiOos
 OKOpxz4eZgnXkcmjcmPC0Ia2L5ZbQx48pNo51P/TEZNVSBJ7Pkp71FsjnaveaOC8Ohdjg+iodK4
 MLRz4+u9rj9owtRkP/nRnfO4AzwU1wmpUGSLOimYfoQA==
X-Zone-Loop: 2db3ed7da530d3a5e0ac9f9a7c30d9e6b83252064b09
x-campaign-type: default
x-transaction-id: ca913175-7ad0-4bfc-8e18-0b6b0e2dd223
x-swg-uid: 01-b26f901d-7829-4a21-ab20-c1c7380264d9
X-Mailer: Sweego
Message-ID:
 <1779458369.8631fc262581453bbf619ec5b2062170.19e4ffbe7fe000f373@vates.tech>
x-swg-bid: 1779458369.8631fc262581453bbf619ec5b2062170.19e4ffbe7fe000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 22 May 2026 15:59:28 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 10/13] Add linux-stubdom dependencies
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
 <11ddf37d6acc5ef3274f3d09f7ea2f0b64b62243.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <11ddf37d6acc5ef3274f3d09f7ea2f0b64b62243.1777898148.git-series.marmarek@invisiblethingslab.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.125a.6b17a20171d55b4b.19e4ffbe615.1e0bf5aa762f2e76=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779458369045
X-purgate-ID: tlsNG-c1860d/1779458374-BE975DB1-551B352B/0/0
X-purgate-type: clean
X-purgate-size: 590

---=Part.125a.6b17a20171d55b4b.19e4ffbe615.1e0bf5aa762f2e76=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, May 04, 2026 at 02:35:49PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethings=
lab=2Ecom>

Reviewed-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.125a.6b17a20171d55b4b.19e4ffbe615.1e0bf5aa762f2e76=---


From xen-devel-bounces@lists.xenproject.org Fri May 22 14:07:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 14:07:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316904.1586258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQQWm-0005Bw-Bf; Fri, 22 May 2026 14:07:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316904.1586258; Fri, 22 May 2026 14:07:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQQWm-0005Bp-7B; Fri, 22 May 2026 14:07:04 +0000
Received: by outflank-mailman (input) for mailman id 1316904;
 Fri, 22 May 2026 14:07:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4ffc5040000f373@swg.vates.tech>)
 id 1wQQWl-0005Bj-9m
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 14:07:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQQWk-00HM8M-F8
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 16:07:02 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4ffc5040000f373@swg.vates.tech>)
 id 6a106302-e002-0a2a0a5209dd-0a2a4501b31e-10
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:07:02 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e4ffc5040000f373@swg.vates.tech>)
 id 6a106161-c1f2-0a2a45010019-b9ff1c228737-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:00:01 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e4ffc5040000f373.005 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 22 May 2026 13:59:56 +0000
Received: from l14 (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id A5EAB86883;
 Fri, 22 May 2026 15:59:55 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=trPP9zCnq/DNHH93lw4AzppJBhl01iJkUPZBcD91A4I=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=sScD1muRs9QPyWj+ZW907HiWbVa6UCGI8l6vpFTkxFzmFIzpRavdey4AoIcxeO0cSQhKzV83I
 y7x4pixPcWRldKsNI2V/amslD4hyXrdt1ubs3g1QTPmwYd41Ncyt62fpfaFJ2b9tJnFf6Qbsf+8
 hO7X9aGbqgPE2aTc8FUJn1oPdeZHbcfrgZ78rlmsq4KgjY4y8xUweolBydgkpnHn0eoKgKkrMgP
 squ4IeJMUqwISKo8UikBm0st6tQV50FsBqzhOJKDU5FLUyYbt7tfv/hFmpdj1D+QK0dsBSrjZZW
 Seriy0wzylzaFwmQzzgZ3B0QyBa21WZPJ+a1GMw7QtZA==
X-Zone-Loop: 2b5189212417b7aa3721f8c9ce1e449a627fd952e20a
x-campaign-type: default
x-transaction-id: 3b7559f0-3cd8-48a4-9a49-f35a90d96292
x-swg-uid: 01-48aa02c6-8360-47df-b35c-3c74cd8aaabd
X-Mailer: Sweego
Message-ID:
 <1779458396.8631fc262581453bbf619ec5b2062170.19e4ffc5040000f373@vates.tech>
x-swg-bid: 1779458396.8631fc262581453bbf619ec5b2062170.19e4ffc5040000f373
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 22 May 2026 15:59:55 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 12/13] Prepare grub for booting x86_64 HVM domU from a
 cdrom
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com>
 <4aa490a4f8a26ec86397cef30091cdd3f3598c30.1777898148.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4aa490a4f8a26ec86397cef30091cdd3f3598c30.1777898148.git-series.marmarek@invisiblethingslab.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.125c.d0896bdb58dc422d.19e4ffc4e8e.e62b2899c3dec311=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779458395790
X-purgate-ID: tlsNG-d62444/1779458401-ADBA8FF4-5A5CC185/13/0
X-purgate-type: clean
X-purgate-size: 634

---=Part.125c.d0896bdb58dc422d.19e4ffc4e8e.e62b2899c3dec311=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, May 04, 2026 at 02:35:51PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> The stubdomain test will use it=2E
>=20
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethings=
lab=2Ecom>

Reviewed-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.125c.d0896bdb58dc422d.19e4ffc4e8e.e62b2899c3dec311=---


From xen-devel-bounces@lists.xenproject.org Fri May 22 14:38:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 14:38:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316928.1586265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQR12-0002lF-Fb; Fri, 22 May 2026 14:38:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316928.1586265; Fri, 22 May 2026 14:38:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQR12-0002l8-Cl; Fri, 22 May 2026 14:38:20 +0000
Received: by outflank-mailman (input) for mailman id 1316928;
 Fri, 22 May 2026 14:38:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQR11-0002l2-0w
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 14:38:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQR10-00F4u5-5V
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 16:38:18 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a106a4c-bab6-0a2a0a5309dd-0a2a4508a598-16
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:38:18 +0200
Received: from [209.85.221.48] (helo=mail-wr1-f48.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a106a59-63b5-0a2a45080019-d155dd30c4c2-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:38:18 +0200
Received: by mail-wr1-f48.google.com with SMTP id
 ffacd0b85a97d-45e7c636e74so4103798f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 07:38:18 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d71688sm4824656f8f.33.2026.05.22.07.38.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 May 2026 07:38:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779460697; x=1780065497; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=M/pRn9LZJwgy+bbz37lqQwUBSagf9USWQAtm+xtRkCw=;
        b=UnZ2FM5zveq2NI3yixVKdq2z4AFRLASETzl0n4FCBH3LnIK1JBoE+SdGNrf2dEymN3
         axzq+EK287V+5HPCO8DRZAEbuhsqJLBitK8f9sEjKlTry3pifi7BLi+qeBiGdWe9X7OP
         0Bhek6PK5lqlpbHoSIkmKjLt16I+5FEAG31D+Ka/D8lmhV5RlMSKM9gXhDPLJSs17xUT
         Z0tSFuiq9SaVfjXUM68hfCWrzofbEMwtcJn/+lU9CAmeIDWI1U0a8OCAnwrLaCpMOvVg
         fBCi0TEDB0oWnpA1A8btbQI6SvKviwlL9P/Ox3rlIy6PaqLKleQui4AzVuDQBvh1nMPN
         62lw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779460697; x=1780065497;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=M/pRn9LZJwgy+bbz37lqQwUBSagf9USWQAtm+xtRkCw=;
        b=qbE3YwUaSt78aQ2NiprFFg+osZkSLveHikJbHPfTvmF3wBoFTF7Cio4hEe9WERA4fx
         /wuTElTjJjesMQavggHJo3hqizvzt81Q3uOQU5eislTYeis6KGbPLIS4ILMgu4vwwQ3r
         G3yEh1kT6/rDbyZgMEwW7JP8Vw7uOUKOtCokwtljwu2J4ZZ96JLarZfDZ2Yy1vRiP/nn
         ecblsQijpH1mVn+Tso4DpSsHVL9j5Bz9TbFi8xT9sFleP0lOt6sdI+tSb3ckg2QnRWHX
         +0wv5lk1e2e/x9Qou4qNGMB5zITBWVZ0wBUP92qhTt5K0J9UGiHyMziUh+ur4YHwra+a
         +DqQ==
X-Forwarded-Encrypted: i=1; AFNElJ9Zt5lxbVbNbl2o0wITENbrNo+NBp/nPaZEt9Ewd2nXwmzkp4wplgu7rNEBYrMjsJrJOCt9ZCXH+8o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJQ921Dwe2vUAazdpKGU4SeOKxCJ1sMvOKwYZLDgJY3d1tVE3W
	BrPCni0AdFB2/zHlBXFLY/GgVXIrWQW2WDk9dZkTDefsWpq+0piVXB00
X-Gm-Gg: Acq92OFGqkMaA3YkKFn0LmFiowipRLa8Mxh/RGYHFZo3pjMekbDXDDryJzzUJYup9dk
	aOUJuJh3xiaf+wFbgo92EaA/YuLcB7+ERD+lIw6f6/JeWKaXfNRN6mWDpxYrghme/nHT1g2h25P
	qcb5TslnbcMxg2WOrX3kaKzTFd0o0CuAChMFY7YwyTbtSqCv1c+rF9/JnqPbAyZYB6h26TYKTnP
	LkG27Y1JzTJuUznzvy4Ap991hhWmybrwTtQBRKCWUL9RY41FvauzyKwxo1kNHuu18sAhdbgduEB
	RF2ZhnQbKCzJdc8Eembl46ffL0OB7Ph/5obH1zT5DATCQgO4kyhEj6MPd+WKliZJk1lemwQm2oe
	Y527poPtUB9zXZArGuFSxFlXwD6A7CFq07WU4xEUTfhYEo9X/ucJMH+5bOziS0d1Le64D6IHsuR
	672vwwq08t5ypJ9oQzmbst6uRCdFFulQA7iihkPaiU/2SJxjzxCnxZqZ3uxB6dWeb68LPz/1cRm
	vw=
X-Received: by 2002:a05:6000:461b:b0:45e:73b3:4515 with SMTP id ffacd0b85a97d-45eb38b7a8bmr5508596f8f.35.1779460697355;
        Fri, 22 May 2026 07:38:17 -0700 (PDT)
Message-ID: <40fa9628-73ab-48cf-9ff4-c87f0595065f@gmail.com>
Date: Fri, 22 May 2026 16:38:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/26] xen/riscv: introduce init interrupt controller
 operations
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <286a8b99ad7c107fc46c346f7c075617740fa194.1778250616.git.oleksii.kurochko@gmail.com>
 <a94a55e0-b6c7-45ed-bc9f-76022f02b1fa@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <a94a55e0-b6c7-45ed-bc9f-76022f02b1fa@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1779460698-C487BDB1-3ACCDBFD/10/73395122804
X-purgate-type: spam
X-purgate-size: 4016



On 5/21/26 3:25 PM, Jan Beulich wrote:
> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>> Introduce intc_hw_init_ops structure to avoid risky mix of init
>> function and non-init function.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>> Changes in v2:
>>   - New patch.
>> ---
>>   xen/arch/riscv/aplic.c            |  7 +++++--
>>   xen/arch/riscv/include/asm/intc.h | 10 +++++++---
>>   xen/arch/riscv/intc.c             | 10 ++++++++--
>>   3 files changed, 20 insertions(+), 7 deletions(-)
>>
>> diff --git a/xen/arch/riscv/aplic.c b/xen/arch/riscv/aplic.c
>> index 739e8dab3498..97dc0ef731f0 100644
>> --- a/xen/arch/riscv/aplic.c
>> +++ b/xen/arch/riscv/aplic.c
>> @@ -306,12 +306,15 @@ static const hw_irq_controller aplic_xen_irq_type = {
>>   
>>   static const struct intc_hw_operations aplic_ops = {
>>       .info                = &aplic_info,
>> -    .init                = aplic_init,
>>       .host_irq_type       = &aplic_xen_irq_type,
>>       .handle_interrupt    = aplic_handle_interrupt,
>>       .set_irq_type        = aplic_set_irq_type,
>>   };
>>   
>> +static const struct intc_hw_init_ops __initdata aplic_init_ops = {
>> +    .init                = aplic_init,
>> +};
> 
> const wants to pair with __initconst. Then:
> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
Thanks.

> However, I have another comment for consideration:
> 
>> --- a/xen/arch/riscv/intc.c
>> +++ b/xen/arch/riscv/intc.c
>> @@ -12,9 +12,13 @@
>>   
>>   static const struct intc_hw_operations *__ro_after_init intc_hw_ops;
>>   
>> -void __init register_intc_ops(const struct intc_hw_operations *ops)
>> +static const struct intc_hw_init_ops *__initdata intc_hw_init_ops;
>> +
>> +void __init register_intc_ops(const struct intc_hw_operations *ops,
>> +                              const struct intc_hw_init_ops *init_ops)
>>   {
>>       intc_hw_ops = ops;
>> +    intc_hw_init_ops = init_ops;
>>   }
> 
> Again following what we do e.g. in x86'es IOMMU code, instead of passing
> two pointers to the function, have struct intc_hw_init_ops have a
> const struct intc_hw_operations * member which then can be used to
> set intc_hw_ops here? Both will always come in pairs anyway.

It makes sense to me.

So I will do the following:

@@ -350,7 +351,7 @@ static int __init aplic_preinit(struct 
dt_device_node *node, const void *dat)

      dt_irq_xlate = aplic_irq_xlate;

-    register_intc_ops(&aplic_ops, &aplic_init_ops);
+    register_intc_ops(&aplic_init_ops);

      /* Enable supervisor external interrupt */
      csr_set(CSR_SIE, BIT(IRQ_S_EXT, UL));
diff --git a/xen/arch/riscv/include/asm/intc.h 
b/xen/arch/riscv/include/asm/intc.h
index 8b498e43b33f..3d84fcc51d1a 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -42,14 +42,14 @@ struct intc_hw_operations {
  };

  struct intc_hw_init_ops {
+    const struct intc_hw_operations *ops;
      /* Initialize the intc and the boot CPU */
      int (*init)(void);
  };

  void intc_preinit(void);

-void register_intc_ops(const struct intc_hw_operations *ops,
-                       const struct intc_hw_init_ops *init_ops);
+void register_intc_ops(const struct intc_hw_init_ops *init_ops);

  void intc_init(void);

diff --git a/xen/arch/riscv/intc.c b/xen/arch/riscv/intc.c
index 8649160403f7..3600d23bdb5b 100644
--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -14,10 +14,9 @@ static const struct intc_hw_operations 
*__ro_after_init intc_hw_ops;

  static const struct intc_hw_init_ops *__initdata intc_hw_init_ops;

-void __init register_intc_ops(const struct intc_hw_operations *ops,
-                              const struct intc_hw_init_ops *init_ops)
+void __init register_intc_ops(const struct intc_hw_init_ops *init_ops)
  {
-    intc_hw_ops = ops;
+    intc_hw_ops = init_ops->ops;
      intc_hw_init_ops = init_ops;
  }

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri May 22 14:45:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 14:45:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316944.1586275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQR82-0004lo-9s; Fri, 22 May 2026 14:45:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316944.1586275; Fri, 22 May 2026 14:45:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQR82-0004lh-6y; Fri, 22 May 2026 14:45:34 +0000
Received: by outflank-mailman (input) for mailman id 1316944;
 Fri, 22 May 2026 14:45:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQR80-0004lZ-HV
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 14:45:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQR7z-00BJsz-Pf
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 16:45:31 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a106bfc-bab6-0a2a0a5309dd-0a2a450ce602-18
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:45:31 +0200
Received: from [209.85.221.53] (helo=mail-wr1-f53.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a106c0b-62f1-0a2a450c0019-d155dd35a91c-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:45:31 +0200
Received: by mail-wr1-f53.google.com with SMTP id
 ffacd0b85a97d-43d75312379so6260020f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 07:45:31 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d64eb1sm5793435f8f.32.2026.05.22.07.45.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 May 2026 07:45:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779461131; x=1780065931; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=STyaRvKhTozXqoLfkbrDQqduof+yyqqxlgDvec/2U9Q=;
        b=PGc4wgsSKcfVlicLoKeP158FhA1cclHuGoL0sK0mTWgJH7GBOjXLY97FgpTBZDpc7E
         m2gc6GaLPhfLTPsynQh38qYc0KCYtLqUhpGECk7r0SH9ZFWB0RT6FAaAHNTuqxL6IspO
         srv/xun8odTMh/DsWCBqg/tz6LLFPKmIbNZSvkYBasUPFr9ivZWscvoYEflKftz8KXA+
         Lbf+fapatsYwaYS9aVKzbxmdXHFWIfvFJU8HuVvhBrPpFHxjAvnHU7DRd//TvYXhFnKy
         m0/YJ6sLq7MpTXcM32Yz1btObKwctt56PwS0OLOMGpDH/DcqHf9PTXa9ikB+M3dxKIOd
         Fpow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779461131; x=1780065931;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=STyaRvKhTozXqoLfkbrDQqduof+yyqqxlgDvec/2U9Q=;
        b=eAedslAT2rsNsH22HbJhu9IRdMiApIt+d1oV4R+qNcD7S1FdQjQHfqY16r8xwAJta4
         ucFY9uhR+UQoKEzPTXGn5lXSxRGcb3i/5jEHrAdeHAwMzZMIsiaxRsRs2QpjGlFiGG8g
         A6+/IKX08KrrDdRyag/6FAhm6KyRqLBONr6hAnBviYaUvTLe9onkvYQ9jNNOK0U9VlDN
         RAv4jxcEfleN//RTuDoYo4Ydp0bhPbtgQlAOQTdPgg0e+MJ2UsVES2TjTncdmpHGvo8V
         SaseJg0ZPea1Avdnr5uIOy/m/YZH5RfO4oIXQxzvfzXcAKiU5oXXpWrwaYwNiIp+Is+7
         +/Dw==
X-Forwarded-Encrypted: i=1; AFNElJ/uquasgDV1FEkM/dzaWjFbgWsLoG2IYZmowY7AYMRXxS4roEWJG/AStqu2gA2XmNNI5PYQP6FBKOE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxXANwMnBFTzOTJs1KDZct5iarc2jxlaNV9IgZRPVLIlc330DS7
	o5wS8HFVwwS5x3T3qLzRFxpnra3C3ynJVHlXsgrY4zQ/z8/TLJBH2YUi
X-Gm-Gg: Acq92OE6w6iAVt23Wdkjp/2tP1zXrYjyWZ3LyUhi5DQ6UTCAjDlkZDFiIOiDTanfxlX
	4nwQhMsINGSdyv47l7k5S+FsxJBh3UiQOflHMNtv4hA3KnzwrtJ6LiXpIZD1BA5YTf1hv/816/+
	9bG6Ru7mGyeRoWBtfomA/lrc8Ql77oYSsNwedIy5rLCp08PH2fzqrJFQYOeC5vjyRMgAJCoq76y
	YtoEC5QZpxBesBuiAr8Ph0zcXe7XOVywwvlbSRM3DSO7gIOkeud8TEa/Pq8sNadaYEDWKZrKso8
	oUelqf35ONIDhg8BaDFqCkNZMHcBOcj7jEyba6NeyAxjbQ1PZGrRvDmw81zvw5OrZbgF/ropKIT
	v4+PKSrurtpMGghNp3LrgJ9UVaS02uTtw3dkSelHcC2/0mMgz87RwGzl6KWVQWB8Yr3L5pPetzK
	LCmlddiNUmOczwv3RuuBOiMvW3/ud+BfpMBQhx5MEQx3aoYtlgSL6hWk2RdlmnpIrZtmsHdKwB0
	e6D7cxuQe/of5t4sLVccDKT
X-Received: by 2002:a05:6000:1889:b0:45e:8edc:dacc with SMTP id ffacd0b85a97d-45ea31ce398mr12730258f8f.27.1779461130745;
        Fri, 22 May 2026 07:45:30 -0700 (PDT)
Message-ID: <7e341326-0d58-4796-9b0b-5901805ae09f@gmail.com>
Date: Fri, 22 May 2026 16:45:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/26] xen/riscv: implement make_intc_domU_node()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <425157c3414ca95665288fa3788430e96a99e3cd.1778250616.git.oleksii.kurochko@gmail.com>
 <ea7d6009-8494-4510-a5eb-b07fa6b8d6cc@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <ea7d6009-8494-4510-a5eb-b07fa6b8d6cc@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1779461131-E2776CF5-59B1749C/10/73395122804
X-purgate-type: spam
X-purgate-size: 1527



On 5/21/26 3:30 PM, Jan Beulich wrote:
> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>> @@ -46,6 +45,15 @@ struct intc_hw_init_ops {
>>       int (*init)(void);
>>   };
>>   
>> +struct vintc_init_ops {
>> +    /* Create interrupt controller node for domain */
>> +    int (*make_domu_dt_node)(struct kernel_info *kinfo);
>> +};
>> +
>> +struct vintc {
>> +    struct vintc_init_ops *init_ops;
> 
> Pointer-to-const?
> 
>> @@ -73,3 +74,13 @@ void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
>>       intc_set_irq_type(desc, desc->arch.type);
>>       intc_set_irq_priority(desc, priority);
>>   }
>> +
>> +int __init make_intc_domU_node(struct kernel_info *kinfo)
>> +{
>> +    struct vintc *vintc = kinfo->bd.d->arch.vintc;
>> +
>> +    if ( intc_hw_ops && vintc->init_ops && vintc->init_ops->make_domu_dt_node )
> 
> Why the intc_hw_ops check? The variable isn't otherwise used here.
> 
> As to the other two checks: Is it plausible for either of the two pointers
> to be NULL? If not, merely ASSERT() or even build upon ...
> 
>> +        return vintc->init_ops->make_domu_dt_node(kinfo);
> 
> ... NULL derefs to fault anyway?

Specifically this pointers can't be NULL.

Generally it would be okay to just have have NULL derefs in runtime but 
there isn't guarantee that some register which will be useful to debug 
where NULL deref happens will be properly filled. I faced that several 
times so I prefer to have here ASSERT().

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri May 22 14:55:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 14:55:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316956.1586284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQRHp-00076C-69; Fri, 22 May 2026 14:55:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316956.1586284; Fri, 22 May 2026 14:55:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQRHp-000765-3T; Fri, 22 May 2026 14:55:41 +0000
Received: by outflank-mailman (input) for mailman id 1316956;
 Fri, 22 May 2026 14:55:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQRHo-00075z-Ke
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 14:55:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQRHn-002gHx-Ma
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 16:55:39 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a106e6b-e002-0a2a0a5209dd-0a2a4507aeda-4
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:55:39 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a106e6b-229c-0a2a45070019-d1558035dd2d-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:55:39 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-4891b0786beso51067675e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 07:55:39 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-49048c6acf8sm5696675e9.10.2026.05.22.07.55.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 May 2026 07:55:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779461739; x=1780066539; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=uYMB1KIId4yJCMr6zMiGmSHFkpr56ebGf9Xev1KwhXE=;
        b=M/wN19RjPcX7zZdt2uixq8j7W9NNx7zWlCeh6uSr/I7Glezyg/FxPs2+nvKJbLRfXH
         b8rk01vK2vCCBWZQTUmVVTLquXHZH/t0SC4I5TSjPtwDVVHLRjeOstt1D/1Cp+6tM6i2
         gXcZvqnFPeFl+IavEfMKB/raRcUYDzaxRBMe9hGKIcYm5LgVhuo7m9iNTJLYkwAAcUta
         SYWYIRaFzVIKYG1KY9176+yKcKI/z2vIMu2l+dqdBwTok8D+37uA/2IeWCetj3dDt9BG
         Ot7kCtxv8SrwVtXeFI5yWmiG29xhOBo7G0ni+rc1fWpOOaqnpT8zYBqm3JmvPgXOwV9B
         OT4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779461739; x=1780066539;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=uYMB1KIId4yJCMr6zMiGmSHFkpr56ebGf9Xev1KwhXE=;
        b=nRUd4nOkMjy0L7oLWdP+0JfQF7oJtC8R8H/AQOA+sqw3Tsq8kZ5U4W8DY9EB+UHXj6
         bCD4rQpgXPWXMUwwU8vFamDDawDySz1YuyMjzqCzHNoR8a5EowS9enUM/pwUYAuDwwRW
         MvYzgyTpK4VwVmsbUfQ+YG3HYYSSYBXm30f3jjSI3+nlEO+OrnZCQpoHxcw16UkRQCvz
         wNvEW8rrulEsX8flIgSIvHWZ5wlEg5Ft/J39nMHfuJoIJ3zHKjI8xIoOIq72sQvFyBy5
         HGLgzbm9pjMIbUyTUr8ZxFVMRW8QPtipP4l6vNDnuy5TERALA0Wbh3iaGDkj7eYbY1It
         5gUw==
X-Forwarded-Encrypted: i=1; AFNElJ/y0hJ4RWvky2iHG77FConSznVSyRTJgO2oqlWP6O2D7TCq0MeYDGx2bSVwWWBxOuB7YXkuXNe2bc0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzStktYDy3fYSDi+Pm7y6j8ii4kUl9vLKqcE6wlOTOoN0hZqDDW
	VTooRh/mOuGBGJv/U+rqItmI11rSMCV8IYVcTUPArqTTPn8Hx4MlFAH2
X-Gm-Gg: Acq92OF8TMjY8IW8eG14lPOx6o+Z7lAwZddGNeGw5DBkayHEvr6d30WsR90uQfqMXKT
	ZL0fKyI5/Spu99vEKYgsdMd4KrYGIiu+OC5Q+MtnhIheRrdJgtWW6nVIoWRMGHFVacMLgQWmAdZ
	04a+9GV3XtSGiv9qnGlc0BHg5JM7oCorIh3XRI36l+gf8u23vjeRflYdVRKG3UipR9XWk3peygt
	Z6hjkOprzHnw0dtVeTh14cHadKeNMyD+2eihL5Qp3C5zKkuhskVCYcgb1W6YDcQ3rqvdFh2rPD0
	oG6nU0qURl2pdSjDpLVBenmY/EATBRKprgZ0oPfo/lUs5ibNKcxu183k6n40IAezklkpmWhv517
	OeSdvlSQ7anhwvNCCwf0EwbqrVT2fdKzi3gQwQ11oPdtZ1RuExNgJvLSVspFjvGTmeXpeHyNd2f
	TLCWTl+fVEhJWrB/2i1PjYw4Tp43k29Wz+eWaPjYfG1l6wOl6V4G1buGCkTGLafYvDC7GX5GpQ4
	6ZaHAIPjQ+eZw==
X-Received: by 2002:a05:600c:468a:b0:490:3d62:f5df with SMTP id 5b1f17b1804b1-490428e5a6amr59617785e9.30.1779461738883;
        Fri, 22 May 2026 07:55:38 -0700 (PDT)
Message-ID: <faa36370-d9ed-4c9f-b041-25a0e1b0a9a9@gmail.com>
Date: Fri, 22 May 2026 16:55:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 11/26] xen/riscv: introduce aia_init() and aia_usable()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <66ca7f49756740c3d54ac660bebf406479ed011e.1778250616.git.oleksii.kurochko@gmail.com>
 <c4054fd8-5491-4cdd-8921-e058c2243f7f@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <c4054fd8-5491-4cdd-8921-e058c2243f7f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1779461739-23B78C48-98246FA9/10/73395122804
X-purgate-type: spam
X-purgate-size: 1824



On 5/21/26 4:57 PM, Jan Beulich wrote:
> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>> aia_init() is going to contain all the logic related to AIA initialization.
>>
>> At the moment, it only checks whether the SSAIA extension is available,
>> and if so, sets is_aia_usable (which  indicates more than just the
>> availability of the extension) to true; it also signifies that the necessary
>> components (to be introduced in follow-up patches) have been initialized.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

> albeit again with a comment for consideration:
> 
>> --- /dev/null
>> +++ b/xen/arch/riscv/aia.c
>> @@ -0,0 +1,23 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/errno.h>
>> +#include <xen/init.h>
>> +#include <xen/sections.h>
>> +#include <xen/types.h>
>> +
>> +#include <asm/cpufeature.h>
>> +
>> +static bool __ro_after_init is_aia_usable;
> 
> While in an if() the is_ prefix may make sense, in most other uses (all
> of the ones below, imo) it is of questionable value. I'd suggest to drop
> it, but of course with the then leading underscore retained, to ...
> 
>> +bool aia_usable(void)
>> +{
>> +    return is_aia_usable;
>> +}
> 
> ... not conflict with this function.
> 

IIUC then I am okay with the following changes:

-static bool __ro_after_init is_aia_usable;
+static bool __ro_after_init _aia_usable;

  bool aia_usable(void)
  {
-    return is_aia_usable;
+    return _aia_usable;
  }

  void __init aia_init(void)
@@ -19,5 +19,5 @@ void __init aia_init(void)
      if ( !riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia) )
          return;

-    is_aia_usable = true;
+    _aia_usable = true;
  }

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri May 22 15:21:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 15:21:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316985.1586292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQRge-0004Nw-3r; Fri, 22 May 2026 15:21:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316985.1586292; Fri, 22 May 2026 15:21:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQRge-0004Np-0g; Fri, 22 May 2026 15:21:20 +0000
Received: by outflank-mailman (input) for mailman id 1316985;
 Fri, 22 May 2026 15:21:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wQRgd-0004Nj-CW
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 15:21:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQRgc-006tQw-O1
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 17:21:18 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a107462-5cb7-0a2a0a5109dd-0a2a4509a194-20
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 17:21:18 +0200
Received: from [195.135.223.130] (helo=smtp-out1.suse.de)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a10746e-2497-0a2a45090019-c387df82dca6-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 17:21:18 +0200
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 1E4E66BA54;
 Fri, 22 May 2026 15:21:18 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id B9B40593A8;
 Fri, 22 May 2026 15:21:17 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id ficyLG10EGp9HwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 22 May 2026 15:21:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779463278; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=DcTkyafxokIFyx7B8h9+YsS080oy1Spc+V4mEk4KkX8=;
	b=L0U28bH6eorjODrOXfO400tSigfB7RM6UK/gMxi7NDlPJF+I01yseTFkVqzgPp0k/JxLpI
	vSS4JEbMX5MfWkkWQazlEgoik7Pd0dmC3q1mAbLSx8k1viSY+wwjyyVdlKc+zKEib48ZJG
	Fpd3J8/HhlPRUQUfDxcVZ2HueVl1UPs=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779463278; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=DcTkyafxokIFyx7B8h9+YsS080oy1Spc+V4mEk4KkX8=;
	b=L0U28bH6eorjODrOXfO400tSigfB7RM6UK/gMxi7NDlPJF+I01yseTFkVqzgPp0k/JxLpI
	vSS4JEbMX5MfWkkWQazlEgoik7Pd0dmC3q1mAbLSx8k1viSY+wwjyyVdlKc+zKEib48ZJG
	Fpd3J8/HhlPRUQUfDxcVZ2HueVl1UPs=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	linux-trace-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org,
	Steven Rostedt <rostedt@goodmis.org>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Subject: [PATCH 0/3] x86/xen: Do some Xen-PV related cleanups
Date: Fri, 22 May 2026 17:21:11 +0200
Message-ID: <20260522152114.77319-1-jgross@suse.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.80
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-0.998];
	MIME_GOOD(-0.10)[text/plain];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	RCPT_COUNT_TWELVE(0.00)[14];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Level: 
X-Spam-Flag: NO
X-purgate-ID: tlsNG-bad1c0/1779463278-88D76A53-3AF6E57F/0/0
X-purgate-type: clean
X-purgate-size: 677

Cleanups related to Xen PV mode.

Note that patch 3 might be debatable.

Juergen Gross (3):
  x86/xen: Guard PV-only stuff in xen-ops.h with CONFIG_XEN_PV
  x86/xen: Cleanup Xen related trace points
  x86/xen: Remove Xen debugfs support

 arch/x86/xen/Kconfig       |   7 --
 arch/x86/xen/Makefile      |   2 -
 arch/x86/xen/debugfs.c     |  16 ---
 arch/x86/xen/mmu_pv.c      |   8 ++
 arch/x86/xen/p2m.c         |  45 -------
 arch/x86/xen/xen-ops.h     | 242 ++++++++++++++++++-------------------
 include/trace/events/xen.h |  62 +---------
 7 files changed, 126 insertions(+), 256 deletions(-)
 delete mode 100644 arch/x86/xen/debugfs.c

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 22 15:21:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 15:21:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316986.1586301 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQRgl-0004cB-AV; Fri, 22 May 2026 15:21:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316986.1586301; Fri, 22 May 2026 15:21:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQRgl-0004c4-7R; Fri, 22 May 2026 15:21:27 +0000
Received: by outflank-mailman (input) for mailman id 1316986;
 Fri, 22 May 2026 15:21:26 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wQRgk-0004bU-0d
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 15:21:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQRgj-007385-6Z
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 17:21:25 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a107474-2eae-0a2a0a5409dd-0a2a4505b378-2
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 17:21:25 +0200
Received: from [195.135.223.131] (helo=smtp-out2.suse.de)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a107474-aaa8-0a2a45050019-c387df83c356-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 17:21:25 +0200
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id A39AD67CF3;
 Fri, 22 May 2026 15:21:23 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 6765E593A8;
 Fri, 22 May 2026 15:21:23 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id KGomGHN0EGqFHwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 22 May 2026 15:21:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779463284; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=0gtEy/TKWNMRa8HbImrFhVuemzU/aU6A58QyV+4lRq8=;
	b=knOvWJxqLEbZsqZ/12jKynptTSPZZ8mcm/H1vh5n25yo7u4vEQYRHni9ssjMHo3KS2GBPj
	EW2XsAIG0/ACRDaj5LpCQK18oOME/NvvBrrO9EGMwz0leb9FUtP/wafuyPr2/T5YrfaHPN
	06NOtYASFynBPmc+4IBLr5SM2Hiu3I0=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779463283; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=0gtEy/TKWNMRa8HbImrFhVuemzU/aU6A58QyV+4lRq8=;
	b=IPM2b6PLDn3U/LQmXOAjd6W7Y5PJqlQ6yv/Hl59HGVGwb8MkNApRRu7+mBqiF3eZpv4cvt
	oW02/9yiacnedlFv1icPuSNLnR/XD3DZqbnsZHoDZL4meT5cpHfnH5xIySrYUAGRJgeTBF
	ZOnKJeqdQMqz4gg4+MVO+vtEuTvcCpY=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 1/3] x86/xen: Guard PV-only stuff in xen-ops.h with CONFIG_XEN_PV
Date: Fri, 22 May 2026 17:21:12 +0200
Message-ID: <20260522152114.77319-2-jgross@suse.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260522152114.77319-1-jgross@suse.com>
References: <20260522152114.77319-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -6.80
X-Spam-Level: 
X-Spamd-Result: default: False [-6.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-0.998];
	MIME_GOOD(-0.10)[text/plain];
	ARC_NA(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCVD_TLS_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	RCPT_COUNT_SEVEN(0.00)[10];
	internal_greylist_whitelist(0.00)[10.150.64.97];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:mid]
X-Spam-Flag: NO
X-purgate-ID: tlsNG-c201ff/1779463285-E318B443-ED6AF8A5/0/0
X-purgate-type: clean
X-purgate-size: 11424

A lot of arch/x86/xen/xen-ops.h is meant to be for PV only. Guard all
of it with CONFIG_XEN_PV in order to avoid someone misusing it in
non-PV builds. Additionally any 64-bit tests for now guarded items can
be dropped.

Move the enum pt_level definition to mmu_pv.c, as it is used only there.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/mmu_pv.c  |   8 ++
 arch/x86/xen/xen-ops.h | 240 ++++++++++++++++++++---------------------
 2 files changed, 123 insertions(+), 125 deletions(-)

diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index 3eee5f84f8a7..cd80406be9c6 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -84,6 +84,14 @@
 
 #include "xen-ops.h"
 
+enum pt_level {
+	PT_PGD,
+	PT_P4D,
+	PT_PUD,
+	PT_PMD,
+	PT_PTE
+};
+
 /*
  * Prototypes for functions called via PV_CALLEE_SAVE_REGS_THUNK() in order
  * to avoid warnings with "-Wmissing-prototypes".
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index f6c331b20fad..a27ab1f50cf9 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -12,28 +12,24 @@
 
 #include <asm/page.h>
 
+#ifdef CONFIG_XEN_PV
+
 #include <trace/events/xen.h>
 
 /* These are code, but not functions.  Defined in entry.S */
 extern const char xen_failsafe_callback[];
 
-void xen_entry_SYSENTER_compat(void);
-#ifdef CONFIG_X86_64
-void xen_entry_SYSCALL_64(void);
-void xen_entry_SYSCALL_compat(void);
-#endif
+DECLARE_PER_CPU(unsigned long, xen_cr3);
 
 extern void *xen_initial_gdt;
+extern cpumask_var_t xen_cpu_initialized_map;
 
 struct trap_info;
 void xen_copy_trap_info(struct trap_info *traps);
 
-DECLARE_PER_CPU_ALIGNED(struct vcpu_info, xen_vcpu_info);
-DECLARE_PER_CPU(unsigned long, xen_cr3);
-
-extern struct start_info *xen_start_info;
-extern struct shared_info xen_dummy_shared_info;
-extern struct shared_info *HYPERVISOR_shared_info;
+void xen_entry_SYSENTER_compat(void);
+void xen_entry_SYSCALL_64(void);
+void xen_entry_SYSCALL_compat(void);
 
 void xen_setup_mfn_list_list(void);
 void xen_build_mfn_list_list(void);
@@ -44,13 +40,10 @@ void __init xen_pt_check_e820(void);
 
 void xen_mm_pin_all(void);
 void xen_mm_unpin_all(void);
-#ifdef CONFIG_X86_64
 void __init xen_relocate_p2m(void);
-#endif
 void __init xen_do_remap_nonram(void);
 void __init xen_add_remap_nonram(phys_addr_t maddr, phys_addr_t paddr,
 				 unsigned long size);
-
 void __init xen_chk_is_e820_usable(phys_addr_t start, phys_addr_t size,
 				   const char *component);
 unsigned long __ref xen_chk_extra_mem(unsigned long pfn);
@@ -59,17 +52,119 @@ void __init xen_remap_memory(void);
 phys_addr_t __init xen_find_free_area(phys_addr_t size);
 char * __init xen_memory_setup(void);
 void __init xen_arch_setup(void);
-void xen_banner(void);
 void xen_enable_syscall(void);
-void xen_vcpu_restore(void);
+void __init xen_build_dynamic_phys_to_machine(void);
+void __init xen_vmalloc_p2m_tree(void);
+void xen_init_irq_ops(void);
+void xen_setup_vcpu_info_placement(void);
+void __init xen_init_apic(void);
+
+__visible void xen_irq_enable_direct(void);
+__visible void xen_irq_disable_direct(void);
+__visible unsigned long xen_save_fl_direct(void);
+
+__visible unsigned long xen_read_cr2(void);
+__visible unsigned long xen_read_cr2_direct(void);
+
+/* These are not functions, and cannot be called normally */
+__visible void xen_iret(void);
+
+void xen_force_evtchn_callback(void);
+
+void xen_pv_pre_suspend(void);
+void xen_pv_post_suspend(int suspend_cancelled);
+void xen_start_kernel(struct start_info *si);
+
+void set_pte_mfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags);
+void xen_init_mmu_ops(void);
+
+/* Multicalls */
+struct multicall_space
+{
+	struct multicall_entry *mc;
+	void *args;
+};
+
+/* Allocate room for a multicall and its args */
+struct multicall_space __xen_mc_entry(size_t args);
+
+DECLARE_PER_CPU(unsigned long, xen_mc_irq_flags);
+
+/* Call to start a batch of multiple __xen_mc_entry()s.  Must be
+   paired with xen_mc_issue() */
+static inline void xen_mc_batch(void)
+{
+	unsigned long flags;
+
+	/* need to disable interrupts until this entry is complete */
+	local_irq_save(flags);
+	trace_xen_mc_batch(xen_get_lazy_mode());
+	__this_cpu_write(xen_mc_irq_flags, flags);
+}
+
+static inline struct multicall_space xen_mc_entry(size_t args)
+{
+	xen_mc_batch();
+	return __xen_mc_entry(args);
+}
+
+/* Flush all pending multicalls */
+void xen_mc_flush(void);
+
+/* Issue a multicall if we're not in a lazy mode */
+static inline void xen_mc_issue(unsigned mode)
+{
+	trace_xen_mc_issue(mode);
+
+	if ((xen_get_lazy_mode() & mode) == 0)
+		xen_mc_flush();
+
+	/* restore flags saved in xen_mc_batch */
+	local_irq_restore(this_cpu_read(xen_mc_irq_flags));
+}
+
+/* Set up a callback to be called when the current batch is flushed */
+void xen_mc_callback(void (*fn)(void *), void *data);
+
+/*
+ * Try to extend the arguments of the previous multicall command.  The
+ * previous command's op must match.  If it does, then it attempts to
+ * extend the argument space allocated to the multicall entry by
+ * arg_size bytes.
+ *
+ * The returned multicall_space will return with mc pointing to the
+ * command on success, or NULL on failure, and args pointing to the
+ * newly allocated space.
+ */
+struct multicall_space xen_mc_extend_args(unsigned long op, size_t arg_size);
+
+extern bool is_xen_pmu;
+
+irqreturn_t xen_pmu_irq_handler(int irq, void *dev_id);
+bool pmu_msr_chk_emulated(u32 msr, u64 *val, bool is_read);
+int pmu_apic_update(uint32_t reg);
+u64 xen_read_pmc(int counter);
+
+void xen_hypercall_pv(void);
+
+#else
+
+static inline void xen_pv_pre_suspend(void) {}
+static inline void xen_pv_post_suspend(int suspend_cancelled) {}
 
+#endif /* CONFIG_XEN_PV */
+
+DECLARE_PER_CPU_ALIGNED(struct vcpu_info, xen_vcpu_info);
+
+extern struct start_info *xen_start_info;
+extern struct shared_info xen_dummy_shared_info;
+extern struct shared_info *HYPERVISOR_shared_info;
+
+void xen_banner(void);
+void xen_vcpu_restore(void);
 void xen_hvm_init_shared_info(void);
 void xen_unplug_emulated_devices(void);
 
-void __init xen_build_dynamic_phys_to_machine(void);
-void __init xen_vmalloc_p2m_tree(void);
-
-void xen_init_irq_ops(void);
 void xen_setup_timer(int cpu);
 void xen_setup_runstate_info(int cpu);
 void xen_teardown_timer(int cpu);
@@ -83,13 +178,10 @@ bool xen_vcpu_stolen(int vcpu);
 
 void xen_vcpu_setup(int cpu);
 void xen_vcpu_info_reset(int cpu);
-void xen_setup_vcpu_info_placement(void);
 
 #ifdef CONFIG_SMP
 void xen_smp_init(void);
 void __init xen_hvm_smp_init(void);
-
-extern cpumask_var_t xen_cpu_initialized_map;
 #else
 static inline void xen_smp_init(void) {}
 static inline void xen_hvm_smp_init(void) {}
@@ -125,8 +217,6 @@ static inline void __init xen_init_vga(const struct dom0_vga_console_info *info,
 
 void xen_add_preferred_consoles(void);
 
-void __init xen_init_apic(void);
-
 #ifdef CONFIG_XEN_EFI
 extern void xen_efi_init(struct boot_params *boot_params);
 #else
@@ -135,16 +225,6 @@ static inline void __init xen_efi_init(struct boot_params *boot_params)
 }
 #endif
 
-__visible void xen_irq_enable_direct(void);
-__visible void xen_irq_disable_direct(void);
-__visible unsigned long xen_save_fl_direct(void);
-
-__visible unsigned long xen_read_cr2(void);
-__visible unsigned long xen_read_cr2_direct(void);
-
-/* These are not functions, and cannot be called normally */
-__visible void xen_iret(void);
-
 extern int xen_panic_handler_init(void);
 
 int xen_cpuhp_setup(int (*cpu_up_prepare_cb)(unsigned int),
@@ -153,16 +233,6 @@ int xen_cpuhp_setup(int (*cpu_up_prepare_cb)(unsigned int),
 void xen_pin_vcpu(int cpu);
 
 void xen_emergency_restart(void);
-void xen_force_evtchn_callback(void);
-
-#ifdef CONFIG_XEN_PV
-void xen_pv_pre_suspend(void);
-void xen_pv_post_suspend(int suspend_cancelled);
-void xen_start_kernel(struct start_info *si);
-#else
-static inline void xen_pv_pre_suspend(void) {}
-static inline void xen_pv_post_suspend(int suspend_cancelled) {}
-#endif
 
 #ifdef CONFIG_XEN_PVHVM
 void xen_hvm_post_suspend(int suspend_cancelled);
@@ -186,83 +256,9 @@ void xen_add_extra_mem(unsigned long start_pfn, unsigned long n_pfns);
 
 struct dentry * __init xen_init_debugfs(void);
 
-enum pt_level {
-	PT_PGD,
-	PT_P4D,
-	PT_PUD,
-	PT_PMD,
-	PT_PTE
-};
-
 bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn);
-void set_pte_mfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags);
-unsigned long xen_read_cr2_direct(void);
-void xen_init_mmu_ops(void);
 void xen_hvm_init_mmu_ops(void);
 
-/* Multicalls */
-struct multicall_space
-{
-	struct multicall_entry *mc;
-	void *args;
-};
-
-/* Allocate room for a multicall and its args */
-struct multicall_space __xen_mc_entry(size_t args);
-
-DECLARE_PER_CPU(unsigned long, xen_mc_irq_flags);
-
-/* Call to start a batch of multiple __xen_mc_entry()s.  Must be
-   paired with xen_mc_issue() */
-static inline void xen_mc_batch(void)
-{
-	unsigned long flags;
-
-	/* need to disable interrupts until this entry is complete */
-	local_irq_save(flags);
-	trace_xen_mc_batch(xen_get_lazy_mode());
-	__this_cpu_write(xen_mc_irq_flags, flags);
-}
-
-static inline struct multicall_space xen_mc_entry(size_t args)
-{
-	xen_mc_batch();
-	return __xen_mc_entry(args);
-}
-
-/* Flush all pending multicalls */
-void xen_mc_flush(void);
-
-/* Issue a multicall if we're not in a lazy mode */
-static inline void xen_mc_issue(unsigned mode)
-{
-	trace_xen_mc_issue(mode);
-
-	if ((xen_get_lazy_mode() & mode) == 0)
-		xen_mc_flush();
-
-	/* restore flags saved in xen_mc_batch */
-	local_irq_restore(this_cpu_read(xen_mc_irq_flags));
-}
-
-/* Set up a callback to be called when the current batch is flushed */
-void xen_mc_callback(void (*fn)(void *), void *data);
-
-/*
- * Try to extend the arguments of the previous multicall command.  The
- * previous command's op must match.  If it does, then it attempts to
- * extend the argument space allocated to the multicall entry by
- * arg_size bytes.
- *
- * The returned multicall_space will return with mc pointing to the
- * command on success, or NULL on failure, and args pointing to the
- * newly allocated space.
- */
-struct multicall_space xen_mc_extend_args(unsigned long op, size_t arg_size);
-
-extern bool is_xen_pmu;
-
-irqreturn_t xen_pmu_irq_handler(int irq, void *dev_id);
 #ifdef CONFIG_XEN_HAVE_VPMU
 void xen_pmu_init(int cpu);
 void xen_pmu_finish(int cpu);
@@ -270,9 +266,6 @@ void xen_pmu_finish(int cpu);
 static inline void xen_pmu_init(int cpu) {}
 static inline void xen_pmu_finish(int cpu) {}
 #endif
-bool pmu_msr_chk_emulated(u32 msr, u64 *val, bool is_read);
-int pmu_apic_update(uint32_t reg);
-u64 xen_read_pmc(int counter);
 
 #ifdef CONFIG_SMP
 
@@ -321,9 +314,6 @@ static inline void xen_smp_intr_free_pv(unsigned int cpu) {}
 static inline void xen_smp_count_cpus(void) { }
 #endif /* CONFIG_SMP */
 
-#ifdef CONFIG_XEN_PV
-void xen_hypercall_pv(void);
-#endif
 void xen_hypercall_hvm(void);
 void xen_hypercall_amd(void);
 void xen_hypercall_intel(void);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 22 15:21:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 15:21:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1316989.1586311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQRgv-0004zD-La; Fri, 22 May 2026 15:21:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1316989.1586311; Fri, 22 May 2026 15:21:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQRgv-0004z4-Ik; Fri, 22 May 2026 15:21:37 +0000
Received: by outflank-mailman (input) for mailman id 1316989;
 Fri, 22 May 2026 15:21:35 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wQRgt-0004uj-Ky
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 15:21:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQRgt-0073CX-1x
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 17:21:35 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a107474-2eae-0a2a0a5409dd-0a2a4505b378-14
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 17:21:34 +0200
Received: from [195.135.223.130] (helo=smtp-out1.suse.de)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a10747e-aaa8-0a2a45050019-c387df82c270-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 17:21:34 +0200
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id A91746BBD8;
 Fri, 22 May 2026 15:21:34 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 6E048593A8;
 Fri, 22 May 2026 15:21:34 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 7o7QGX50EGrVHwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 22 May 2026 15:21:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779463294; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=PCDUi9/RCG0k6XPy+CbzV9Ct7VcOObJCbIUaokAKjPU=;
	b=ewOWPVBKcmYLjAU7Tr8kN9vFuA5Jbq9hNeqRydeQiqFBUFrbN2jv/DswfEYISBRAhs7+MV
	DjrK4bU2bD359aaojUm1QcL02Rs9tGNzvQUxpvq19tqjcbBVcu1Q4S/3cDFcnYUYQsTbQl
	r41viA0p71FsSdvJ/nPJsJlDPZjWeBw=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779463294; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=PCDUi9/RCG0k6XPy+CbzV9Ct7VcOObJCbIUaokAKjPU=;
	b=ewOWPVBKcmYLjAU7Tr8kN9vFuA5Jbq9hNeqRydeQiqFBUFrbN2jv/DswfEYISBRAhs7+MV
	DjrK4bU2bD359aaojUm1QcL02Rs9tGNzvQUxpvq19tqjcbBVcu1Q4S/3cDFcnYUYQsTbQl
	r41viA0p71FsSdvJ/nPJsJlDPZjWeBw=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 3/3] x86/xen: Remove Xen debugfs support
Date: Fri, 22 May 2026 17:21:14 +0200
Message-ID: <20260522152114.77319-4-jgross@suse.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260522152114.77319-1-jgross@suse.com>
References: <20260522152114.77319-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -6.80
X-Spam-Level: 
X-Spamd-Result: default: False [-6.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-0.998];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_COUNT_TWO(0.00)[2];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:mid];
	internal_greylist_whitelist(0.00)[10.150.64.97];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCPT_COUNT_SEVEN(0.00)[10];
	R_RATELIMIT(0.00)[to_ip_from(RLfdszjqhz8kzzb9uwpzdm8png)];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-purgate-ID: tlsNG-c201ff/1779463294-DA374443-8E72E2CF/0/0
X-purgate-type: clean
X-purgate-size: 4613

The only Xen file in debugfs is for dumping the p2m table when running
as a Xen PV guest. This might have been useful when the PV code was
young, but there haven't been any p2m related bugs requiring the p2m
dump since ages.

Remove the code and the related config option.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
Kind of RFC, as there might be different opinions. The only time I
have used the p2m dump was when I reworked the p2m coding more than
10 years ago.
An alternative would be to make CONFIG_XEN_DEBUG_FS dependant on
CONFIG_XEN_PV and to fix the help text (it is completely wrong, as
it enables neither statistics output, nor tuning options, nor is it
relevant to performance at all - the only existing functionality
isn't mentioned either).

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/Kconfig   |  7 -------
 arch/x86/xen/Makefile  |  2 --
 arch/x86/xen/debugfs.c | 16 ---------------
 arch/x86/xen/p2m.c     | 45 ------------------------------------------
 arch/x86/xen/xen-ops.h |  2 --
 5 files changed, 72 deletions(-)
 delete mode 100644 arch/x86/xen/debugfs.c

diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
index aa4040fd9215..51b53ce66efb 100644
--- a/arch/x86/xen/Kconfig
+++ b/arch/x86/xen/Kconfig
@@ -65,13 +65,6 @@ config XEN_PVHVM_GUEST
 	help
 	  Support running as a Xen PVHVM guest.
 
-config XEN_DEBUG_FS
-	bool "Enable Xen debug and tuning parameters in debugfs"
-	depends on XEN && DEBUG_FS
-	help
-	  Enable statistics output and various tuning options in debugfs.
-	  Enabling this option may incur a significant performance overhead.
-
 config XEN_PVH
 	bool "Xen PVH guest support"
 	depends on XEN && XEN_PVHVM && ACPI
diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile
index a9ec8c9f5c5d..717264ae269b 100644
--- a/arch/x86/xen/Makefile
+++ b/arch/x86/xen/Makefile
@@ -43,8 +43,6 @@ obj-$(CONFIG_XEN_PVHVM_SMP)  	+= smp_hvm.o
 
 obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= spinlock.o
 
-obj-$(CONFIG_XEN_DEBUG_FS)	+= debugfs.o
-
 obj-$(CONFIG_XEN_DOM0)		+= vga.o
 
 obj-$(CONFIG_XEN_EFI)		+= efi.o
diff --git a/arch/x86/xen/debugfs.c b/arch/x86/xen/debugfs.c
deleted file mode 100644
index b8c9f2a7d9b6..000000000000
--- a/arch/x86/xen/debugfs.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <linux/init.h>
-#include <linux/debugfs.h>
-#include <linux/slab.h>
-
-#include "xen-ops.h"
-
-static struct dentry *d_xen_debug;
-
-struct dentry * __init xen_init_debugfs(void)
-{
-	if (!d_xen_debug)
-		d_xen_debug = debugfs_create_dir("xen", NULL);
-	return d_xen_debug;
-}
-
diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
index 2dd12b61a230..d007ccf6e7a1 100644
--- a/arch/x86/xen/p2m.c
+++ b/arch/x86/xen/p2m.c
@@ -883,48 +883,3 @@ void __init xen_add_remap_nonram(phys_addr_t maddr, phys_addr_t paddr,
 
 	nr_nonram_remap++;
 }
-
-#ifdef CONFIG_XEN_DEBUG_FS
-#include <linux/debugfs.h>
-static int p2m_dump_show(struct seq_file *m, void *v)
-{
-	static const char * const type_name[] = {
-				[P2M_TYPE_IDENTITY] = "identity",
-				[P2M_TYPE_MISSING] = "missing",
-				[P2M_TYPE_PFN] = "pfn",
-				[P2M_TYPE_UNKNOWN] = "abnormal"};
-	unsigned long pfn, first_pfn;
-	int type, prev_type;
-
-	prev_type = xen_p2m_elem_type(0);
-	first_pfn = 0;
-
-	for (pfn = 0; pfn < xen_p2m_size; pfn++) {
-		type = xen_p2m_elem_type(pfn);
-		if (type != prev_type) {
-			seq_printf(m, " [0x%lx->0x%lx] %s\n", first_pfn, pfn,
-				   type_name[prev_type]);
-			prev_type = type;
-			first_pfn = pfn;
-		}
-	}
-	seq_printf(m, " [0x%lx->0x%lx] %s\n", first_pfn, pfn,
-		   type_name[prev_type]);
-	return 0;
-}
-
-DEFINE_SHOW_ATTRIBUTE(p2m_dump);
-
-static struct dentry *d_mmu_debug;
-
-static int __init xen_p2m_debugfs(void)
-{
-	struct dentry *d_xen = xen_init_debugfs();
-
-	d_mmu_debug = debugfs_create_dir("mmu", d_xen);
-
-	debugfs_create_file("p2m", 0600, d_mmu_debug, NULL, &p2m_dump_fops);
-	return 0;
-}
-fs_initcall(xen_p2m_debugfs);
-#endif /* CONFIG_XEN_DEBUG_FS */
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index a27ab1f50cf9..6808010ac379 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -254,8 +254,6 @@ static inline void xen_hvm_post_suspend(int suspend_cancelled) {}
 
 void xen_add_extra_mem(unsigned long start_pfn, unsigned long n_pfns);
 
-struct dentry * __init xen_init_debugfs(void);
-
 bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn);
 void xen_hvm_init_mmu_ops(void);
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 22 15:27:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 15:27:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317012.1586320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQRmR-00060q-7V; Fri, 22 May 2026 15:27:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317012.1586320; Fri, 22 May 2026 15:27:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQRmR-00060j-4n; Fri, 22 May 2026 15:27:19 +0000
Received: by outflank-mailman (input) for mailman id 1317012;
 Fri, 22 May 2026 15:27:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wQRmO-00060a-Lf
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 15:27:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQRmM-00FZyv-R4
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 17:27:15 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a1075b8-bab6-0a2a0a5309dd-0a2a450ba54a-26
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 17:27:14 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a1075cf-212f-0a2a450b0019-94a38ff1adec-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 17:27:12 +0200
Received: from pps.filterd (m0367130.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64MEpU952467985
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:27:11 GMT
Received: from bl2pr02cu003.outbound.protection.outlook.com
 (mail-eastusazon11011035.outbound.protection.outlook.com [52.101.52.35])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4eam6ju8vc-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 15:27:10 +0000 (GMT)
Received: from BY3PR05CA0043.namprd05.prod.outlook.com (2603:10b6:a03:39b::18)
 by SA2PR16MB4058.namprd16.prod.outlook.com (2603:10b6:806:134::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 15:27:07 +0000
Received: from SJ1PEPF000026C6.namprd04.prod.outlook.com
 (2603:10b6:a03:39b:cafe::78) by BY3PR05CA0043.outlook.office365.com
 (2603:10b6:a03:39b::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.9 via Frontend Transport; Fri, 22
 May 2026 15:27:07 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 SJ1PEPF000026C6.mail.protection.outlook.com (10.167.244.103) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Fri, 22 May 2026 15:27:07 +0000
Received: from pps.filterd (m0426317.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64MEQCwT3201534
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 11:27:06 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4eactprtaa-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 11:27:06 -0400 (EDT)
Received: from localhost ([19.12.92.221]) by cmsmtp with ESMTPSA
 id QRmAwzCFxxj2GQRmCwdCe7; Fri, 22 May 2026 15:27:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=4v7
	HXgYZWteTNhxjPIQmScJWvSKX0zhIjiK5jHjOeRc=; b=lK6dLIMUhuk67MWtKdk
	PiToe5gAwK3t5+mJZPm6GLitz23TBaUUxtPpQnsNvZ34IwPnjEVuRp4jArEJp0sm
	Z9wT1mrxWQFkEvjFLdZSwX6eU3m9KFeB5YVBKXTUjnQaFicbGIXR81odpH3AlFH8
	geY3D4KHFP0heLgSPKgWLpgV23QBW8ktR6YsTiROGqHgt8j2Pqjmv9QA8yk7RAqy
	ljt321g4EOAc/CzMFWTZygkh3ouPpIRy+PvpT1q1dGX1HHKUdpA6WgeUH1NW1GDs
	90hIvcDa9AD4IlfWJAp84tp1WUqyFzyH2DYPiT4f3a8x3TkUfNSji9h6G9ZiRdcf
	XGA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=geiAJxYVCs62dmGhregtHqHoTvJ4J6ghOuo3MkNS7EGJPm94fcl08ZiWJnn2qwedw/GDkvC802S5zIXJ6WwyL92M/anl1If9ZM1VMU57IgbA0T3/Lz0GakBGG9Fdv8uDwOECr9f+AYmwWZBZaoyBU7zseyELGGLnmvH3jl3vzAN8Vd9gnzT5Lf3XM84MX4uqfR9JepAanPKrXO8fGz2TzwKdd4xAij/k5WV9dk6CcJHC+wv+G1W510g5A7WOYXk4DXTJj5vO+O+LtzUL+UnTaQ2giOtt7N3a9E5zH3B4ZuZMRvlod6O3E1tRYDMEd0JTE2LQ99DuMtV9M53/gA+y0g==
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=4v7HXgYZWteTNhxjPIQmScJWvSKX0zhIjiK5jHjOeRc=;
 b=JZL+kj5qpB5Ey5GWMxERDNnuOk9dqxfpUDEcR9fdMm5/jbNxOr7AOsimyqPBgcKsplTZHMGOHzpTeSX+KV35dTC1a7DcaQPlFBFG0dlrBFDqcaI7LfaJcuPiW9NeqnDyQu4Rsu+vEP3DZJNzxMwW7gNCsMYe46J/wnCkmxIs1crwX8Na3PyTyklnKhEyS/dnORmfvT7ATb+m0km9fabHEI00hjAbL2DCnlvdoTSO/Zz37DFU/X8LGsaAK5vDnwc2GF4G+6JP8qy7Mbq8AcEGRt8Jo5ssDc8x9SaSCZs6H+mP5fZdcXBiPcxqc262ujPqmUcrpUsvfoTVnGJE4ggIzA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4v7HXgYZWteTNhxjPIQmScJWvSKX0zhIjiK5jHjOeRc=;
 b=VFpC1sdUGspJvkM+zcnO6zDhQy9ow7p/iv45t5XVXGY4tH4biFvF0o/4Fd5PF+8sVwda/ZhYecVnjQeirN4+qo0aoBsoEQNWvJ/xQM3p9QnsYVF+YszxH9KFWCmVDabK729ERCULHDCowQZMNEq/FWNQcVTeiyWAaIzYK2pu5kY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:content-type
	:date:from:in-reply-to:message-id:mime-version:references
	:subject:to; s=ppserprodsaar; bh=4v7HXgYZWteTNhxjPIQmScJWvSKX0zh
	IjiK5jHjOeRc=; b=KtG3LpPz5benh4uFEjHdTw8iuuhCugsPx+T6jnNtX8AzO4c
	7ZgwC2NN/AgtOnbPCRoeGF6uxGMyVzn4EssVCu14ze6ORTAwlhgn0/SR1RJUj+yh
	YmjxFKLF1ncUO0pFdJCqyLfhXdIGM1ZU9f8zD8RChtbK8CALBSU+Mw2Fw4vCqhFw
	kmHaEU4GwimVojdvPyUUR2wbZk1+V+OB9xsI0nsaS7HvmQWD9irF5vFTM+uh5Dc0
	qDjRrLd/9u5An/vFeF+Nq8g2kVusdzKyjweecSHL7GUhbd9+QxxkABRVCWb+Tcj5
	Bl4M99ANXpXUukwuduHe89lxYC/OyJNLjpGbnJw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppfserpocford;
	 bh=4v7HXgYZWteTNhxjPIQmScJWvSKX0zhIjiK5jHjOeRc=; b=mXww8VOw8CtC
	u6MHhCW2WRiZW0hDa6r+y+8n8PgOk05ZjHjxVR+AAXc68rM7OOlyU3cVo4mkok/N
	DAuBWWyoZXOiaimPhAfN331Gk5YnkaBchegpnjADNA9XYg1clD5BRVoH1UYKYbxK
	HZP0oVeXraYYsTd9/Q3YlVOQKOeurL5i/xkRwuhNL0cZXMFeRCunG8lK93Q27Y67
	3UP0n69fIpPQQPCAt+zsA23FJRuy/NAxnybBTbmfKc60gsq4JK/4ASiH5igbqC5s
	ULOJzFh4QfOWNUL6VV+s58FSIMNXQiBngMnQet+MaITkwj3JTNXvizJhFPh7I6ag
	GBuoy2qDMA==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: QRmAwzCFxxj2GQRmCwdCe7
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Fri, 22 May 2026 08:27:02 -0700
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: dmukhin@ford.com, xen-devel@lists.xenproject.org,
        andrew.cooper3@citrix.com, anthony.perard@vates.tech,
        jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com,
        roger.pau@citrix.com, sstabellini@kernel.org,
        christopher.w.clark@gmail.com, dpsmith@apertussolutions.com
Subject: Re: [PATCH 1/2] argo: lower level of noisy connection-refused log
Message-ID: <ahB1xm8ltR+jyVv2@kraken>
References: <20260521232529.694570-1-dmukhin@ford.com>
 <20260521232529.694570-2-dmukhin@ford.com>
 <CAGeoDV9L5+N7nnhY1A4on0L1+aAfb8JxbBLwoV+XxMwnoTS8xQ@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAGeoDV9L5+N7nnhY1A4on0L1+aAfb8JxbBLwoV+XxMwnoTS8xQ@mail.gmail.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-22_04,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 phishscore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 suspectscore=0
 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605220154
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000026C6:EE_|SA2PR16MB4058:EE_
X-MS-Office365-Filtering-Correlation-Id: dba771ce-5b79-4ff4-77f9-08deb8169597
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700016|4143699003|11063799006|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	ix+q9VbX25HyyvGaxAJjZ03hMtEcw5ymj4TE9G7FcS2X+epYXgHFyCfMZ9OdkRP3K7YtvlCmIOoy1t8h6mU/w9NEH0ia5ufGhKe6EqGS2Is7yr/Sae4OAbrYOJ8PW3J1qcvBIXWPRC3Wql0y/ab6Folvu0qhaCuwFQJ3Uz6iWMA8KD0q1PGeLmohrJ9HKtiwZMhbBVjIV5mfHN2r9xgIIBvgu0jwRhHlYqv4Fa9DmdqwZ1bdpY5yuDtec2XTqhP40XGEMkPFboChZF5HGgTX0KgUwVp9dMRsb2v0xsPnHUo70vv1l7n6Rxv69orGxHCkBuyOE58+b9kPLCSxqV6gK8iErT3yqqTRObTG2anIpaajEeW2ba7h2+u08yho92jmga1zrcRtiVux2Kk+hL3X77UIKyAEpTqZiNwsSAb9750Rx0F6lbsveoUwtObRtakBpRtuheld3elChmarYDRdsDAyRMtRHhBAIhAy6+Nu/RB4pdHmOOLLzsdjq7hCugdJ96WgDhkirGUvC+pm3Nu6sivNowPHtb005sdxOoqlednKkCQ8lt6O+366kpbMm4aTGP5VYeJwJBYfL/cgtoYo/2qYh7zcQ/YPrvI73x7SKpiYbRjIA5BKLoJBdqtSEonxeKPgb3X34MifACoZErUhdhENP5MapBEakK2gm4vZcVLx4UFDsYFRxrhx5eRTTP88TFsuMmIAaFamnfmoyaAPGZU4aT8L08qmCMydn+jv2DM=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700016)(4143699003)(11063799006)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	jsRAmrlkg+EG+W1ClJCRoyLktGXa5Dx6cUB6c4K/OAemaf0KmEPSM2Ple915FORfBjcsdCE0/q2gTV0wawoEYVfkJKdRGYfjaGMEQf8f0yeQd5c21jhNwbR29nVn8XIgv3rl7hljrFj0vuN2efZLGK/LByyc+phLO1A5SH+8EbzoGSFg+/ZRus7jZAbFPMwHERXQF7x1SZEnqWC0voXmDVFepFOLoBhkRzcbxU6Fu2ONh7EtJTUtFAlPMRQ+Y05dh0z19UFoqyt23Nhf7b8L2LDv44YDCb2ywT34j16VNclH+fe6E1LM9C3f/pyUCAaQsmFlKy8JxrEPis8GQkuhGfhwVOuyyn1u/yV8Khi/6ioV+EEywI2BOT06BejuSc0KKn4Zwr01cN64sCmqm8hee32DyB98MJ7MebEnqEzavmXXVDaLEd1MM3hHh0uy1if3
X-Exchange-RoutingPolicyChecked:
	SGt4E+uBdt15m3UBTfGVevYTF0kR9pL0pF7oQRsdwUCdB1QYmNl50L9ROjhZ4EW0y++jELAIqhYHhkhPSFoCL7bkNS911FCIuWNFFC0H3CvcYy5CDgUEaXkk9VhjsLG6AJROIv133Cf4QlhziELfEB4Fo+ycoIdtF31MGhaqN8d9+FkEQK1eUk/eIDNgC9zhDU+0+jr5Q7jqvB++xhaGm1K2aoAiaWj/NxfbYZmugIoEmFHxFAZiTMUG3HIYxnaUxFZ0ik+5xNKurs3agBrO1+K8y2oRMQhcsvWaIqK6Q37XeT2B34lPiKHPoPS3afO4JX165KOLUiTZkE6T66tsBQ==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	32SqQb0+NoFI/L0WalbKffQNMOSX69kP02HxIJfriUsnbbFJ5HiDKUvK1uXJWPzgaS2cPOWhwmyQmh13UcoTRSawRG/75KnYsJvOuPcIqxF9H4Zfh0kzkpHGw/tismMQPJZUrv7td0RH+BD1N5q4xEC40GmkTirFyBHYCJCrmXNGvdqLRebg1I5ApXqyUKL9vPkeUkjQU/j/y3BO+wHkF19M7ANAQ1/3eAiXuOv2wDVdaDVzDTTKIDd8CxVupvK8GRNyjToHWPqgUWL1DaKLAQcOW48vkPEEkFUnB1lSgsnmQtCP+8sk0yGCVQ7Bv9UbZXPYhueswaTHolZhS38OtCEjcsN0tKlziDfKiqj5cS8v8skGJxxEkmzS0FYsveN7CpKuRhSyrlcpRYnW2jWks754iwH4gFmmel84/MweevCd4yMFAsoSwG1jQiSgmfFXOi686kzenaMyb+ye/km/QD/tnokaZc4BLo0ePqzk8qnU6J1U2LFRsspRlnChr2QbKMpSs9QamFao4mptHFqWeiMaoATMsgfkbUl1CYAGufP8vVUt3KHtcgfVXYGaqvTkFlFjiF8hk1yigJhMg5LI12qDgmJUZIPzQcYEtqwN3DDMf68cbw6lQiPYo9geP3WR+CMvWbvvsmoGfPtL1N9GPA==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 15:27:07.1224
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dba771ce-5b79-4ff4-77f9-08deb8169597
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000026C6.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR16MB4058
X-Proofpoint-GUID: eGyx4FYDstEsSsL2jhxq3jHg9ehiu46Z
X-Authority-Analysis: v=2.4 cv=Vp4Txe2n c=1 sm=1 tr=0 ts=6a1075ce cx=c_pps
 a=2EogD3SZGC0twO92opjmhQ==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=vnUQfov-gS4s1L7hHvr-:22
 a=cbNQJ9GKAAAA:8 a=KpvztcgoyaSwxilgUFoA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIyMDE1MyBTYWx0ZWRfX6IB0RZmN8STC
 PyPo4Xt4A4nbvx3o7QB+LmiVsgXMHsUj995mGNEqnRSFmHd8I3CGSviLi850lRLk4IFJ4XBIqeX
 VPoh93Go0PrsYidy75lhCT4nq1hu3IjMuFNUzGkZP2MqqXpQtkZM9fiwy0CGNkXysCBYGHwE+pG
 VvUizfuahe5eifCZJXUkbTwLJEC3xQzuOyHDxWKnxJpBxuao5aDXXG2sihk0gJ0gAWb5GpWh5PP
 j+LN/DLFbfYjPa/5OVLwb738cfRGKiiUsmLQoELwDteBqh76MbW4guP2bmwWxNRMf3yAu8JlPGA
 3hxkdjGQZlhkNCFlML1PZiLLzGA636+FOzeoYci3AO3d5Xy1hkN+DbpWb+gQF3lrR3a8myXuKH+
 hxz0cD5zNkR+gLMhP/8KuO+KyLh0c2Bn+247L+wetSizJazSM/MBJ9cq6rBX+jPU4yFsBYFN2qk
 NXky/W2QBCVuKJtrpBw==
X-Proofpoint-ORIG-GUID: eGyx4FYDstEsSsL2jhxq3jHg9ehiu46Z
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-22_04,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 suspectscore=0 bulkscore=0 adultscore=0 priorityscore=1501 spamscore=0
 lowpriorityscore=0 clxscore=1015 impostorscore=0 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605220153
X-purgate-ID: tlsNG-42698a/1779463633-20678F3B-308A0989/0/0
X-purgate-type: clean
X-purgate-size: 1467

On Fri, May 22, 2026 at 09:53:18AM +0300, Mykola Kvach wrote:
> Hi Denis,
> 
> Thank you for the contribution.
> 
> On Fri, May 22, 2026 at 2:57 AM <dmukhin@ford.com> wrote:
> >
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Lower the log level of the "connection refused" log line, as it can
> > spam the logs when a dom0 service using the Argo hypercall tries to
> > communicate with a domain that is still starting up.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> >  xen/common/argo.c | 7 +++----
> >  1 file changed, 3 insertions(+), 4 deletions(-)
> >
> > diff --git a/xen/common/argo.c b/xen/common/argo.c
> > index 28626e00a8cb..4f894470698e 100644
> > --- a/xen/common/argo.c
> > +++ b/xen/common/argo.c
> > @@ -2034,10 +2034,9 @@ sendv(struct domain *src_d, xen_argo_addr_t *src_addr,
> >                                          src_id.domain_id);
> >      if ( !ring_info )
> >      {
> > -        gprintk(XENLOG_ERR,
> > -                "argo: vm%u connection refused, src (vm%u:%x) dst (vm%u:%x)\n",
> > -                current->domain->domain_id, src_id.domain_id, src_id.aport,
> > -                dst_addr->domain_id, dst_addr->aport);
> > +        argo_dprintk("argo: vm%u connection refused, src (vm%u:%x) dst (vm%u:%x)\n",
> 
> AFAIU, argo_dprintk() already adds the "argo: " prefix internally.

Thanks!
Will fix this and the follow on patch too.

> 
> Best regards,
> Mykola
> 


From xen-devel-bounces@lists.xenproject.org Fri May 22 15:44:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 15:44:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317039.1586330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQS2X-0001Ct-Fw; Fri, 22 May 2026 15:43:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317039.1586330; Fri, 22 May 2026 15:43:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQS2X-0001Cl-Bh; Fri, 22 May 2026 15:43:57 +0000
Received: by outflank-mailman (input) for mailman id 1317039;
 Fri, 22 May 2026 15:43:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQS2V-0001Cf-5u
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 15:43:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQS2U-0000aF-I5
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 17:43:54 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a1079b3-2eae-0a2a0a5409dd-0a2a450bd3ae-2
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 17:43:54 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a1079ba-212f-0a2a450b0019-d1558032ad30-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 17:43:54 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-4891c0620bcso47678175e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:43:54 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-490456274ebsm47360545e9.15.2026.05.22.08.43.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 May 2026 08:43:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779464634; x=1780069434; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=HQPAanHoCJ+rixRh6wLfOeEQLgRNPmkDycVKqJbat50=;
        b=fRqdEBbFUgUiSddwdkzLRRhi8In8MczK/lSUBjAPmhUHIEKAiMPfeycjS+P36XMYFd
         YCvVfKY8HCSVEKoz5FRsVoAHQKOFXY6nNyPf7Tn9he+5DVKDl5yMAeg+vvTNN3IYrm2L
         GxhslE9aM0QEB0zIomWoO6W1xC7mPjb59es1Emb7vAKyScvjufd+dSMGIbNpUcP226yY
         guVHR/8sQN7RhX8GYl/7FCapkjMOow+0DPYOBGlMpmzC9NDwzA6muKvV7J1vVaK2gav6
         4KUnL8l3bh7hoUPn/a2Srsrj3j7ayGH6PxqorocRmO2W1LMXmCnlosBvrQdYY6sc31RP
         J8aw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779464634; x=1780069434;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=HQPAanHoCJ+rixRh6wLfOeEQLgRNPmkDycVKqJbat50=;
        b=gurtTCLuhg0NUqmv8y0KAHS5mWjPPElN4kN3tskh8UY4SH2enpqrkXqbhiX7aWQM7d
         +lpCbrDsipoEb0WnQ25dq59bjqDnwbuy5nJNDx4TQ3YQTcZbDZx8yt+L49KTXa5KIE4A
         kmNvxvqVfV+Rezec9x0TJxNzDsvWM8GiOvH3uGcfFU4b2RhGB5Xja7RxKAe6lOln2x15
         TsR/NhQN2zb064l6DxMEp20nXkhSHyAz/MjQWMSU4wHrvI1axdpGRX1YS0Fy5hKebhFH
         GzKhNwbChsfHp60UtGJLiQEToYfE/QQs4cS6b5OXobvkb/v4yTOZYdr+6BIto90jFZXH
         Q53Q==
X-Forwarded-Encrypted: i=1; AFNElJ/YxkKOGltvu8AjQ4BLT8SK/q9XQc1m6raPHYIJoyRjM+aDymrMJFs4/6XHuyisegPsAevGnE2txz4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxx/vEkUQyhmlGWVHMtOIGd+bHkG/98duiE2EEJfTwZ0zbLb93A
	gaZVouAtYT/L6pYQg7Xy99Z/ygb+eBkr3cdazJGaRoI1QFKsUcWZCEbL
X-Gm-Gg: Acq92OFM5YoMqPNEgTDmYaQ7Bq/b3JGydRpffiC9k+9kjzhKfXSZ+ZjhNRXYDOgYZ2c
	FekQQ91grVdqUw/xPw3WAQVwAHND+5XFA1loVsiSxpn0DH/tYbV+akrfEC8DzIhNXtHyEykQFyT
	/Q5rGlWj/1b3xq92psPDCn9/7oyQLPPteaXToyza9T5kknz9s3qGWjxj7Wg1AN+iKa9kHE4TrSY
	2aZNDlO1MjiwvjrMxrexjtaBXTUvGdu2kYtnGEBIAXNHkY9936FMwvFgkXI/UJmmgWCi+JsoMFv
	sJWYz5LhOLGpAHCMPVpQoqkV/k1M8fpPXy/3pkolfrW2uzReDgtzJqzQ2a6NpW3DX91utmblW7O
	b3yHdDzJgVOcxHH064gpvtwW9uRb+e4dBN6ujLICW1I4zQmE0NE/NLMhTt3ABq3I0zXLlzeDmao
	LtLSQn5UDGj5RpjzalZ8D/2jEHTisgULGtYbeI8lpn8cHUDJH1/uXp1xA7PkVQMdREXTYd4ZvxP
	pU=
X-Received: by 2002:a05:600c:a101:b0:48f:e1ac:c96d with SMTP id 5b1f17b1804b1-490428c95abmr46215975e9.20.1779464633680;
        Fri, 22 May 2026 08:43:53 -0700 (PDT)
Message-ID: <1b9c082f-6eba-4b95-b056-fa6185c61b84@gmail.com>
Date: Fri, 22 May 2026 17:43:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 12/26] xen/riscv: add basic VGEIN management for AIA
 guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <61291bec7664e780f122ccf438091dfc1aba99e3.1778250616.git.oleksii.kurochko@gmail.com>
 <45fb6481-ea0e-455e-a0cc-c5ba0caabdf7@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <45fb6481-ea0e-455e-a0cc-c5ba0caabdf7@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1779464634-1BB78F3B-EBE352F5/10/73395122804
X-purgate-type: spam
X-purgate-size: 5094



On 5/21/26 5:11 PM, Jan Beulich wrote:
> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/aia.c
>> +++ b/xen/arch/riscv/aia.c
>> @@ -1,11 +1,33 @@
>>   /* SPDX-License-Identifier: GPL-2.0-only */
>>   
>> +#include <xen/bitmap.h>
>> +#include <xen/cpu.h>
>>   #include <xen/errno.h>
>>   #include <xen/init.h>
>>   #include <xen/sections.h>
>> +#include <xen/sched.h>
>> +#include <xen/spinlock.h>
>>   #include <xen/types.h>
>> +#include <xen/xvmalloc.h>
>>   
>> +#include <asm/aia.h>
>>   #include <asm/cpufeature.h>
>> +#include <asm/csr.h>
>> +#include <asm/current.h>
>> +
>> +struct vgein_ctrl {
>> +    unsigned long bmp;
>> +    spinlock_t lock;
>> +    struct vcpu **owners;
>> +    /* The least-significant bits are implemented first, apart from bit 0 */
>> +    unsigned int geilen;
>> +};
>> +
>> +/*
>> + * Bitmap for each physical cpus to detect which VS (guest)
>> + * interrupt file id was used.
>> + */
>> +static DEFINE_PER_CPU(struct vgein_ctrl, vgein);
> 
> Why "Bitmap" in the comment?

Hmm, good question. Looks like rudiment from initial implementation.

I will rephrase it to:
/*
  * VGEIN control structure for each physical CPU to track which VS (guest)
  * interrupt file IDs are in use.
  */

>> +
>> +unsigned int vgein_assign(struct vcpu *v)
>> +{
>> +    unsigned int vgein_id;
>> +    struct vgein_ctrl *vgein = &per_cpu(vgein, v->processor);
>> +    unsigned long *bmp = &vgein->bmp;
>> +    unsigned long flags;
>> +
>> +    spin_lock_irqsave(&vgein->lock, flags);
>> +    /*
>> +     * The vgein_id shouldn't be zero, as it will indicate that no guest
>> +     * external interrupt source is selected for VS-level external interrupts
>> +     * according to RISC-V priviliged spec:
>> +     *   Hypervisor Status Register (hstatus) in RISC-V priviliged spec:
>> +     *
>> +     *   The VGEIN (Virtual Guest External Interrupt Number) field selects
>> +     *   a guest external interrupt source for VS-level external interrupts.
>> +     *   VGEIN is a WLRL field that must be able to hold values between zero
>> +     *   and the maximum guest external interrupt number (known as GEILEN),
>> +     *   inclusive.
>> +     *   When VGEIN=0, no guest external interrupt source is selected for
>> +     *   VS-level external interrupts.
>> +     *
>> +     * So start to search from bit number 1.
>> +     */
>> +    vgein_id = find_next_zero_bit(bmp, vgein->geilen + 1, 1);
>> +
>> +    if ( vgein_id > vgein->geilen )
>> +        vgein_id = 0;
>> +    else
>> +        __set_bit(vgein_id, bmp);
>> +
>> +    spin_unlock_irqrestore(&vgein->lock, flags);
>> +
>> +#ifdef VGEIN_DEBUG
>> +    gprintk(XENLOG_DEBUG, "%s: %pv: vgein_id(%u), xen_cpu%d_bmp=%#lx\n",
>> +           __func__, v, vgein_id, v->processor, *bmp);
> 
> %d vs unsigned int again (and then yet again further down).
> 
>> +#endif
>> +
>> +    vcpu_guest_cpu_user_regs(v)->hstatus &= ~HSTATUS_VGEIN;
> 
> Is this needed when vgein_release() also does it?

Considering how ->hstatus is initialized I agree that we don't need that 
here.

> 
>> +    vcpu_guest_cpu_user_regs(v)->hstatus |=
>> +        MASK_INSR(vgein_id, HSTATUS_VGEIN);
>> +
>> +    return vgein_id;
>> +}
>> +
>> +void vgein_release(struct vcpu *v, unsigned int vgen_id)
>> +{
>> +    unsigned long flags;
>> +    struct vgein_ctrl *vgein = &per_cpu(vgein, v->processor);
>> +
>> +    if ( !vgen_id )
>> +        return;
>> +
>> +    spin_lock_irqsave(&vgein->lock, flags);
>> +     __clear_bit(vgen_id, &vgein->bmp);
>> +    spin_unlock_irqrestore(&vgein->lock, flags);
>> +
>> +#ifdef VGEIN_DEBUG
>> +    gprintk(XENLOG_DEBUG, "%s: vgein_id(%u), xen_cpu%d_bmp=%#lx\n",
>> +           __func__, vgen_id, v->processor, vgein->bmp);
>> +#endif
>> +
>> +    vcpu_guest_cpu_user_regs(v)->hstatus &= ~HSTATUS_VGEIN;
>>   }
> 
> Overall: How is one to review these two functions, when it's entirely
> unclear where they're going to be called from? Among other aspects it
> doesn't become clear what the behavior is going to be when
> vgein_assign() doesn't find an available ID. I've therefore only
> commented on mechanical aspects I noticed.

It is used in "[PATCH v2 14/26] xen/riscv: add very early virtual APLIC 
(vAPLIC) initialization support" from this patch series. I realize that 
was not obvious, sorry for the omission.

That said, I am planning to move all AIA-related logic out of 
vcpu_vaplic_init() and into continue_new_vcpu(), because some 
IMSIC-related operations require knowing which physical CPU the vCPU 
will be scheduled on, and moving the work there avoids redundant 
recalculation. As a result, vgein_assign() would no longer be called 
from vcpu_vaplic_init(), so I could drop this patch from the series 
entirely and reintroduce it when it is actually needed.

Alternatively, I can keep the patch and extend the commit message to 
explain the intended call site and how the return value will be handled.

Thanks.

~ Oleksii





From xen-devel-bounces@lists.xenproject.org Fri May 22 15:50:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 15:50:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317055.1586337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQS96-0003LZ-6g; Fri, 22 May 2026 15:50:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317055.1586337; Fri, 22 May 2026 15:50:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQS96-0003LS-3c; Fri, 22 May 2026 15:50:44 +0000
Received: by outflank-mailman (input) for mailman id 1317055;
 Fri, 22 May 2026 15:50:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wQS94-0003LM-MX
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 15:50:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQS93-00FfXi-S7
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 17:50:41 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a107b3e-2eae-0a2a0a5409dd-0a2a450aeb58-26
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 17:50:41 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a107b51-56b3-0a2a450a0019-d1558032c53c-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 17:50:41 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-49048e043e5so3690765e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 08:50:41 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-490469f61b0sm13486875e9.5.2026.05.22.08.50.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 May 2026 08:50:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779465041; x=1780069841; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=sX2K4KCddfv1i4sz/GYUKTCGVOTl3GP+PCJyiNQVoig=;
        b=pwU9tJv+Z8W1Jb5XHOIyFv1CIEOT/Ip5ZmWOLtwF2B5UrSvjHNNtLsC0E70Jz1bJjQ
         8rR/qXG00weZzIBSep1WtdCJwrkvrQ3iwRle8efSyqPitnAy3iZkfovDUY8pz3FIzQs4
         vPU6o6rDjwlivoNThsHxqLTiuZb9/SBvUGO4V4D8kUhERhNANsx+Iz1PptLeADDVsdqC
         GGrmAD1lMFger40H5wEDPIqrvFfUKaNy5Iy4Y4fbESElpvtDBv9eNa35jUJJDa17R7J6
         HrjGbCSIPqSEwFVnO9wE5sEi7Y46Rnk51glwGBajmdmyF2PiX378AeSEAnnqnu7iDphm
         lP3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779465041; x=1780069841;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=sX2K4KCddfv1i4sz/GYUKTCGVOTl3GP+PCJyiNQVoig=;
        b=V1ZRcsLYMsWA5bg7guqHu7GwL+QBZRX22qgkAKcrXqwOqBSAykpwPdcyAy+ocb+FQn
         8mvZOXU94+MUW7FPUwiriN1Hs/t5ivS+YGdYnxszZxQp/X/U4Mn7ftzLE3qTHNxgyViE
         ng6sXuSVjRIffT+OJziKu6d2ax1Albln3ANA/uWy6jbQ0/Aau/C48pUdRG0FWLGkt+eo
         dFTQmzp0tNTsZCDOtpgh78mzPTXAcT2luvY8G9Xs9es8vYkXa6FljiUp9usS4eNg6S8r
         PPIW/0fb5q1tOVKQvdKDN1WHr+GgrBIe39S6oV97so1R4lATX1wHypnNUmTao9Fs2BnW
         Xo8A==
X-Forwarded-Encrypted: i=1; AFNElJ9/0SuaeCr8SyLrsW5U81li0zJlVGFvF/N6y0MgeejW5ifpPMOfSze758A55zDx5BF5ZXCiIFk1pOI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxK0SatJcwtnHodoqYdjx/RXVC+bGYLqkO1r7Mkl8VHgRaV4JQu
	lb4Wgv3Q3SVl8e2Qtp71rL9GBciCw/e0PJ72dcNilR6QusMad6HcW1ec
X-Gm-Gg: Acq92OHqYcQA0+AnpDrro47wVQdxWkXavWicWaf4n/r8WoevpGf47sdXKhLLy3TisRq
	vOP5L8DXYIsogM0KQVXsgi8Xt2CC6ycO2r68c99xYxJAiSqAA/+9HTlY1BK/PyK4jEuIIsyvKW2
	TBkSL9A7HTU1W64H5BNsw9X8sBy8CgBcowPl7NkxE2+4ZpJtCrotM1TB1Hk1coAXPFuK2X8A8Fb
	Xc3axQCDRKnn+Q4RKJWn1hH7v0lYTl4SxrrKT+yD/fV0bj4yeMy8T4XMKXE0+yR8DofRCWjDWqA
	2ckC0ozDcteLK5QNHWEWuPUNtM+/t/UvGKDQ9LoJd1XjpUhTV+jMfFTQT6+SZL3kKFBGReoJrBZ
	F3jMiDdkhXPgNWkr0N2yoHrSh08FgWnoOMgb0qH+OX4BBK9tZvjlDzZaP9DQjKFZFxKhcESapLD
	HFB0N121a/kdb552FFQNmwJspmogHukCgu4nMYoepmTl5Oify+KAtoTvcIB0m7c18LhP3ux1HDC
	gM=
X-Received: by 2002:a05:600c:3547:b0:48f:e230:8cab with SMTP id 5b1f17b1804b1-49042adfb3fmr60331845e9.31.1779465041236;
        Fri, 22 May 2026 08:50:41 -0700 (PDT)
Message-ID: <00f7f34e-c5be-421b-bdf4-dffa84908445@gmail.com>
Date: Fri, 22 May 2026 17:50:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 13/26] xen/riscv: introduce per-vCPU IMSIC state
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1778250616.git.oleksii.kurochko@gmail.com>
 <2471b51e89aff30765433d88b1646c5b2c72b5c2.1778250616.git.oleksii.kurochko@gmail.com>
 <e5ce9b16-c692-48bd-9b3e-c4346fd8f797@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <e5ce9b16-c692-48bd-9b3e-c4346fd8f797@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1779465041-7C47E8B7-709D9EFE/10/73395122804
X-purgate-type: spam
X-purgate-size: 2886



On 5/21/26 5:24 PM, Jan Beulich wrote:
> On 08.05.2026 16:43, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/imsic.c
>> +++ b/xen/arch/riscv/imsic.c
>> @@ -16,6 +16,7 @@
>>   #include <xen/errno.h>
>>   #include <xen/init.h>
>>   #include <xen/macros.h>
>> +#include <xen/sched.h>
>>   #include <xen/smp.h>
>>   #include <xen/spinlock.h>
>>   #include <xen/xvmalloc.h>
>> @@ -56,6 +57,16 @@ do {                            \
>>       csr_clear(CSR_SIREG, v);    \
>>   } while (0)
>>   
>> +unsigned int vcpu_guest_file_id(const struct vcpu *v)
>> +{
>> +    return ACCESS_ONCE(v->arch.vimsic_state->guest_file_id);
>> +}
>> +
>> +void imsic_set_guest_file_id(const struct vcpu *v, unsigned int guest_file_id)
> 
> Some people will demand that "const" be omitted in cases like this one, as
> it only works ...
> 
>> +{
>> +    ACCESS_ONCE(v->arch.vimsic_state->guest_file_id) = guest_file_id;
> 
> ... as long as vimsic_state is a pointer (and not a sub-structure).

Agree, it works only because of a pointer is used. Lets ommit const then 
here.

> 
>> @@ -312,6 +323,30 @@ static int imsic_parse_node(const struct dt_device_node *node,
>>       return 0;
>>   }
>>   
>> +int vcpu_imsic_init(struct vcpu *v)
>> +{
>> +    struct vimsic_state *imsic_state;
>> +
>> +    /* Allocate IMSIC context */
>> +    imsic_state = xvzalloc(struct vimsic_state);
>> +    if ( !imsic_state )
>> +        return -ENOMEM;
>> +
>> +    v->arch.vimsic_state = imsic_state;
>> +
>> +    /* Setup IMSIC context  */
>> +    rwlock_init(&imsic_state->vsfile_lock);
>> +
>> +    imsic_state->vsfile_pcpu = NR_CPUS;
>> +
>> +    return 0;
>> +}
>> +
>> +void vcpu_imsic_deinit(const struct vcpu *v)
>> +{
>> +    xvfree(v->arch.vimsic_state);
> 
> Better XVFREE(), for the function to be idempotent.

Agree it would be better.

> 
>> --- a/xen/arch/riscv/include/asm/imsic.h
>> +++ b/xen/arch/riscv/include/asm/imsic.h
>> @@ -11,6 +11,7 @@
>>   #ifndef ASM_RISCV_IMSIC_H
>>   #define ASM_RISCV_IMSIC_H
>>   
>> +#include <xen/rwlock.h>
>>   #include <xen/spinlock.h>
>>   #include <xen/stdbool.h>
>>   #include <xen/types.h>
>> @@ -61,7 +62,24 @@ struct imsic_config {
>>       spinlock_t lock;
>>   };
>>   
>> +struct vimsic_state {
>> +    /* IMSIC VS-file */
>> +    rwlock_t vsfile_lock;
>> +    /*
>> +     * (guest_file_id == 0) -> s/w IMSIC SW-file
>> +     * (guest_file_id > 0) -> h/w IMSIC VS-file
>> +     */
>> +    unsigned int guest_file_id;
>> +    /*
>> +     * (vsfile_pcpu >= 0) => h/w IMSIC VS-file
>> +     * (vsfile_pcpu == NR_CPUS) => s/w IMSIC SW-file
>> +     */
>> +    unsigned int vsfile_pcpu;
>> +};
> 
> In the comments, what does SW stand for? Not "software" I assume, as
> that's already expressed by s/w.

It is a typo and it should be VS-file.

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri May 22 16:53:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 16:53:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317109.1586350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQT7M-0005eg-IQ; Fri, 22 May 2026 16:53:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317109.1586350; Fri, 22 May 2026 16:53:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQT7M-0005eZ-Fq; Fri, 22 May 2026 16:53:00 +0000
Received: by outflank-mailman (input) for mailman id 1317109;
 Fri, 22 May 2026 16:52:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wQT7J-0005eN-M2
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 16:52:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQT7J-00FO4S-2D
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 18:52:57 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a1089e0-bab6-0a2a0a5309dd-0a2a450983ae-4
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 18:52:57 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a1089e7-2497-0a2a45090019-94a39217ae96-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 18:52:56 +0200
Received: from pps.filterd (m0482516.ppops.net [127.0.0.1])
 by m0482516.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 64MFdgDH4159975
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 09:52:54 -0700
Received: from dm1pr04cu001.outbound.protection.outlook.com
 (mail-centralusazon11010068.outbound.protection.outlook.com [52.101.61.68])
 by m0482516.ppops.net (PPS) with ESMTPS id 4easyy0p5y-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 09:52:54 -0700 (PDT)
Received: from CH0P221CA0040.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:11d::20)
 by DM6PR16MB3863.namprd16.prod.outlook.com (2603:10b6:5:2be::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Fri, 22 May
 2026 16:52:48 +0000
Received: from CH2PEPF000000A0.namprd02.prod.outlook.com
 (2603:10b6:610:11d:cafe::69) by CH0P221CA0040.outlook.office365.com
 (2603:10b6:610:11d::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.17 via Frontend Transport; Fri, 22
 May 2026 16:52:48 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 CH2PEPF000000A0.mail.protection.outlook.com (10.167.244.26) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Fri, 22 May 2026 16:52:48 +0000
Received: from pps.filterd (m0373461.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64MEU1AG3360448
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:52:47 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4eactj8wk2-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:52:47 -0400 (EDT)
Received: from localhost ([19.12.92.221]) by cmsmtp with ESMTPSA
 id QT75wLP5TdhUUQT76wxrum; Fri, 22 May 2026 16:52:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:Message-ID:MIME-Version:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=ppford; bh=+Qr7wpkHVnwSuR63RBoxd8x1a
	tsKCQ3Vdkj3nv3Qhow=; b=BL45QKKodd4sEfykF+6951IAcS4Kh7pATZAvvZo/t
	Z2KNgxustUf1vTvJU0e0i49IgZ46bINICkgQi0LBNyYOmn6S7EJ7VCzk7Dh18u7p
	+2e92GuBkijbcYT9hPnhDRATc6nf4uWTDtY36zyb0/CfisixUkAebutmGv+BG1Gl
	skd/g/p+G1DZqIhDk3wdA/Q/KPe2JHnF9ky1BIPhH6D5MKYjVjBZr4awIHG73OME
	KprOz1eNBGCsDP0xidSl9rOva7BYOA2F5FJcbgbskIATnQlrR7mnFWIx8+M/ABB8
	gAW+QDg2X3HnUpMAFLgnQ7MwBwI9OHhRTPPEmqRXY687A==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dLJpXXZz0EV/ca+CI1Kh2Gi14DZyP6kkWrNUhCPBBxy7YQtAKgfdf1fJ6VLafy1g53JMZy9Nbs6OcYH+g5EOJ2+jHsUzk2dJwVyZ2GTF6WP45Jh9kZjFzn8EBGXDofXO/zmC0AiPwJZjKEKR4zFp/kl60umEcr+lsHpS5LTQrrf4PguW+ZBhYRLFSIjkgvbDMnjQ2MWnjrMhiT0P7qF03TVAFp5xaOUH494NpZTazukqJZy7J/xL6LLYQfCiI9BXV/UfI+1vNXqzxZeskBHACP5W1i8YIIpFLl4ZYp/2Beu4R3ipU+ksxUkCMM7qkYvP4vxXAsUnuIDHsWbyRUXR8g==
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=+Qr7wpkHVnwSuR63RBoxd8x1atsKCQ3Vdkj3nv3Qhow=;
 b=KnmYlfIxGg4hzTjiTY6XonnxSHPXv/RrT5TCRp0/q/EFay2wO9MGHzP4e+LcjVKjqRkYf7dGUZtSq36YsOWFUOEXmgcJqQqbLMQ+a5D9tzPXGvgfGPjZBU4hG4i936JFsDp3N/QipT21Cgy1ZVngA+u7A57IYUDb1lkr/Mk7n9UKExyCNqzesjBueoU+QufQKbepXT5utcbMIG7WH1WjB/B7gJ/F59xctW+YBXtF1Y6uXnx8jA3uxSH6raGNZWxfH8w30L0lOWJjntgMNEe5oj3jzAG+DXQ4PkyXpVfKJJZBfREujV+wdaGiVmofkwJBBcu/arfbGNAcd/8sw7qG0Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+Qr7wpkHVnwSuR63RBoxd8x1atsKCQ3Vdkj3nv3Qhow=;
 b=SoAYAKFCoEaXbB+BqFB4vgzviOR+APtY9gD2wTWt/pAYA9aC9nXU3QcvRP2mI9/kUdc4OFB44rKZgTGrmquvfciWQrsTfsx1tk8vypZNwq9KmujfloHcy4+IZ4GnzY9dr1uRmfZXq8Te0bRf7MXv0ilx/6FXts7ACASQrcY/S9Y=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:message-id:mime-version:subject:to; s=ppserprodsaar; bh=+Qr7wpk
	HVnwSuR63RBoxd8x1atsKCQ3Vdkj3nv3Qhow=; b=AvYqVk/7kG0GuKiNUtk3D2R
	KNEhIlxFS4YTmRh758uplsgS++s4kekK+bE1DZ84O84pv8bJWi+zuBdTw1m5VUBY
	xWzl8iI2AabVFHDLUvGu3Xfm98pRPpX3TSO54LdlxWUDrPf5H0vgwVc9HxAgGHvs
	+5HowheQL2sK2/ow0XwUdJQl4IubSIxnv4DCIummnXmBpbQeskg38BZWGyVrV+TD
	Y7L3wlbAvVSi7YdceX9Qe6OjmyoTGmO3vxE3Di5ApfPcSb50er4a8pPBi8eaTG3o
	cI3RQbCC2qjhnvHPbWQgs21Iah3GHd5VRZWbZtZ0hIFNagu+PKv9LL1prxYQflQ=
	=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:message-id:mime-version
	:subject:to; s=ppfserpocford; bh=+Qr7wpkHVnwSuR63RBoxd8x1atsKCQ3
	Vdkj3nv3Qhow=; b=VYiWkjSEw3P8c01NaybhwyuL/cMigcijHz1Mt6MhPV4/+WY
	TskxbVOzPLDi2vhuybfApM37IkF9FWrBy4A8KgzcVVbsd+O9o6XxZ7Imx7zlQboQ
	cZvlgbmgTj4iHl9IedUxA3+Go4Ai8ZjL3haDoWxAH+Q/OYqWhUZnXwDPaaaU+mL/
	FnNgp/JQPdKDmouhtKLzGbSDcuRcrSxgc1orCnuU6OHxYJi7aBRgMtFU97d5KfRU
	kz1rYwoEAV10kp6ZscznXHB2bQJUOi/QVgTy0Re1Nwzl9Q5AsQK9OQDFEzyGw+i3
	GVKa/MG4m3htTpkFAa7g84Ob0frqryiWW/RA3cw==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: QT75wLP5TdhUUQT76wxrum
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, christopher.w.clark@gmail.com,
        dpsmith@apertussolutions.com, dmukhin@ford.com
Subject: [PATCH v2 0/3] argo: few loglevel fixes
Date: Fri, 22 May 2026 09:52:35 -0700
Message-ID: <20260522165238.844649-1-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-22_04,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 bulkscore=0 phishscore=0 malwarescore=0 spamscore=0 lowpriorityscore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605220168
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF000000A0:EE_|DM6PR16MB3863:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 26d2e6d0-dc4c-4448-9f8d-08deb8228df3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|82310400026|1800799024|13003099007|56012099003|18002099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	b/slkLlQOXjVoeMUy5IWFogdJT4XzgXbG5oSomtCUdt3O7pEq58Ka0Z3jC0s1tNAiDjQYowCnqc5BjwXtoHz7Ts51AtknGVMqeERxQByrh5MF/VKuXzfhI2uZMSzTbBKg2etiH1YtRqBHGZTpdtOekAgZySUPoiHv8ym9aVJRBoc2iDFBp+rW/xzGfstpuqnkxcX9kKj+stb5dWsCYZUa/OXiOB41iV+tpa7ihjz8ACygM3Xu5uaInsXPOHJyl/l/oVUVGibklYtfs3X63M7mMpVzWXCWVlnlar+xOb/L2JMk0BJA5kOYu7gf2NMgLQ9mzszhVBNdx3FZZGqBKP1p3Zn4U+DMCuH+Uy83MZvHKt971F0HkQw4vz83ZhlyCVJ0iXI9LUt7g7w/zbjouYaRaQLul0KgfZpES45Vf4p10mBnpBMr92lWJ9/GqGzVu0wRVnY36NWNZRG8L4HFWwnfpjC2EVbHh+LbwZjnQ5doYkqLn0zekU3RygXVg6tQIahbofFVLs+1O+gN+xrj1vjzyXsIqNqzh622kVB+Nxz+mSSxFyT/Bub/SDdgA89yoDcDsevD0Z7PclLeNKc1A4eJbjGL++Yb0Pxr48N8bdlGcaLJCcr7lj1D16BAqAU+VRwpod6yNlzQiJhrQQgQ9t3maQ5Dnw4H6NTbSBmtBUJfPT8yvIHc+4eOKW07pK4YB6KFETKvMeVM937tPVnIwMBL8Kh7yQxT355OXPGN1FIyTifox3uDe2S4cZMQ+ahnl0y
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(36860700016)(82310400026)(1800799024)(13003099007)(56012099003)(18002099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	qSzu5wcAoNc6vIiJZcF1AFZyRqT4SDJPYdJoi/PlSOePkVCYGCZAkOFSAgfSnjFQHyb3dt7NVNNH7A8m1CfIdvL9m4T6TzNZvLIysBKOSi4oOi2wgon/Qwu8SjqMGSgZvQn7rlkLgIxdN2A4a0RAEeeM64M9WnvUy3JKGGgfWKVG1ESlLDoNJ7bsDSs7eExKRGHz2LIJyFBnzrdGnqlYK/PEiSEtgXdzpy4IMRusXyclqqJXrUtOtqEbeSFHV+krLG8VbkzSCxRdbOMoQZ0UrvsQMy33RZBd6fYuxEgVaTT5DsshSJyR7LXlnbyYKwOh4U3UmCoMCiT2hm0MNy93pHYh3hviowse6+GOZKcDGIA/Qiqz9DkG2B5ZHrOQIo43s/sJN6MXWKCxbL/NnRxd0uYeKSH0McZtTBYZdjpO2BCRzVtJP0T19AG50n7D1VL3
X-Exchange-RoutingPolicyChecked:
	rNW80AnC6FiMaVrdXb96IVBN4WrgyNUCgdsfEKoeT20SsJi1hXSWFRDiVk9v5vpVsY+xRP7ti76OED05NmNUuVaTj4MpsGUV1dBQ1NP7NHquE63a5Ds9y64tqPPDTnJdoSq4+BPDctegyBFICMIia5btJxTrfslvth99K7yk2JZUYSm5GvLLQzG0emdQIOIGPL92/7yvn/MJIuFxOE6NgS/9rxXuYTj+L4Ckxy2y2teMqSL+VgxsguXCa+UGajW+KqS+SXEDwDxTY5l/Z9R+lEMuYshJaepOMGHYbbTf26qZoN5JTAdHyM1NAoLWgFybx4urVW1fV2rHYe83ObrJ0A==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	S4ig0gn0HLPiLjTuIVa/+1fmZMprP0OihXkFrI1kOTz6Qkyd8LL8zN++lcEOf3R8YmO1nUb3z0p1jvjaA7miQA3ppJs4A0XIoQc0giVhwnh+JAgp91WCJao4/N+NboCY565QOdbm3xVnHDIcvfMtZfkbvp3EVHLyVQISA/iMHJort9BkReuqiG8lUwMj8QpSWOLrJlR6SV8p7Mv7U3RMUyCOJiAsiHsAjuGL1pHSX0gNRCv+/M33w0GTHljX17dgLbXOzJ3bjzFWkA5VSQcc4mLMWJsoGeH8fXgFssRI+2ovS9TA3zSRqtOHd+PvRyN5oWZR+tB8aT9RtpbGJDn+1OdvmaoOXFJ4LkJylHQq6IdeaYNg1pZ+SmYY3vngQuwKhMyIjtsZH97fRWTPg6lBNB0P2rXjGVRP695ziofhqlidBvGxLfgN2YONMSb6NCw/EGeQ2t9FFKZDyAwcPfVr3nWm2d21YzBYxR3lyUFnH8VvZGYanveEad6qaCLexINlqZxKpqEorEIWRbZ19xT+GybE97ypSqrakMnP5RelK+O7e1cysr2Oc4X2gKOXASHDi/9OPzT33O1aujr7dZI2SafgEANEthInVDSawLXx+J47zhRuRzLu4rGr2NvTvAAakLTrHYT4PJoJa6xBiDvEDw==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 16:52:48.1940
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 26d2e6d0-dc4c-4448-9f8d-08deb8228df3
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF000000A0.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR16MB3863
X-Proofpoint-ORIG-GUID: 07Sl4udhuZRBdxw81IYke99EphAjKlpV
X-Authority-Analysis: v=2.4 cv=dtbrzVg4 c=1 sm=1 tr=0 ts=6a1089e6 cx=c_pps
 a=UdDD+omNl1Ext3Jod4IcCg==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=NvsXeTrgx-CJMFV-xl94:22 a=p0WdMEafAAAA:8
 a=98mQFhz--LAxPS051FAA:9 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIyMDE2NyBTYWx0ZWRfX3Xfk8gwPvMbJ
 ukTAUzbP/LUQqAP5LwrX5+oX2lMpBHkDNpZRKhK07iRMu11mh3sAlofzVun8VvHPRm1Qh4vRSFs
 Il+n3zNUo1CsYjXNC1Axh8/x1WYauSI5U9RTdf2sIE1kbIxieycMmJ+KMKLT+6DGQ5EmBanQEnM
 G8Sf3moyBvu2X+gbBYXouDtiF/lWfQWHTi8SmiFmQ+ax0NoFEiDidPZYwGRf7mgg5h0pLttyG19
 SHEVw+tQOaQPa02ot009B70+/FO4pJZsqp/5ciJtDdrTWCYLCjWLeQg4YogZifzUW0HVwqVP/m+
 sKhPsmYyuDjV6N0BSEerpazZp1D++pEUo8ozZMHQ67EEh8IskU4aAm4t7qEP0Gm3ojAiNXdHoVO
 zBKFnhRgxTIfrdBgZSou5DPfHx9/oHZN1xpvyf4fzrNeJsJFYd/ue1jlViXzVSknNCf1GAc3ExQ
 lXqzPpN62E8Jl1A9AKA==
X-Proofpoint-GUID: 07Sl4udhuZRBdxw81IYke99EphAjKlpV
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-22_04,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 clxscore=1015 malwarescore=0 phishscore=0 lowpriorityscore=0 impostorscore=0
 bulkscore=0 adultscore=0 suspectscore=0 priorityscore=1501
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605220167
X-purgate-ID: tlsNG-bad1c0/1779468777-43B78A53-DA138D43/0/0
X-purgate-type: clean
X-purgate-size: 585

This mini-series fixes a few log messages in the Argo module.

Patch 1 lowers the verbosity of a spammy log message.
Patch 2 corrects the debug logline.
Patch 3 cleans up existing loglines by dropping duplicate prefixes.

CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2546842322

Denis Mukhin (3):
  argo: lower level of noisy connection-refused log
  argo: correct logline in ring_unmap()
  argo: drop argo prefix from argo_dprintk() calls

 xen/common/argo.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 22 16:53:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 16:53:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317110.1586357 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQT7M-0005hd-SC; Fri, 22 May 2026 16:53:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317110.1586357; Fri, 22 May 2026 16:53:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQT7M-0005hD-Mf; Fri, 22 May 2026 16:53:00 +0000
Received: by outflank-mailman (input) for mailman id 1317110;
 Fri, 22 May 2026 16:52:59 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wQT7L-0005eT-Iu
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 16:52:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQT7K-007HVv-VY
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 18:52:58 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a1089cb-e002-0a2a0a5209dd-0a2a4505ebfc-34
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 18:52:58 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a1089e9-aaa8-0a2a45050019-94a39217c210-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 18:52:58 +0200
Received: from pps.filterd (m0367124.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64MFAhTE3810781
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:52:56 GMT
Received: from sn4pr0501cu005.outbound.protection.outlook.com
 (mail-southcentralusazon11011064.outbound.protection.outlook.com
 [40.93.194.64])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4easjas04x-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:52:56 +0000 (GMT)
Received: from CY5PR18CA0002.namprd18.prod.outlook.com (2603:10b6:930:5::25)
 by DS5PPFFE37258D0.namprd16.prod.outlook.com (2603:10b6:f:fc00::7eb) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 16:52:54 +0000
Received: from CH3PEPF0000000A.namprd04.prod.outlook.com
 (2603:10b6:930:5:cafe::33) by CY5PR18CA0002.outlook.office365.com
 (2603:10b6:930:5::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.17 via Frontend Transport; Fri, 22
 May 2026 16:52:54 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 CH3PEPF0000000A.mail.protection.outlook.com (10.167.244.37) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Fri, 22 May 2026 16:52:53 +0000
Received: from pps.filterd (m0373461.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64MGQhxX3360443
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:52:53 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [34.209.42.160])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4eactj8wk7-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:52:53 -0400 (EDT)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id QT7Cw0mfhvRqcQT7CwYxPs; Fri, 22 May 2026 16:52:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=R1O
	WChNFvwomDsgWABRG20kkJtStsxIi7xL+8JAbvp8=; b=p2CZAHZQEtI0fx2ADkH
	7GpOjO1Sp4rChJpmvANTQ+OraDHTPZRIagKJQgaNPFnVAcMsy/qRxDmdDMmS2991
	v0ryetkRXfIU7kD83WxwNcrlu6z6ZGK2GUyK9aI8SQJ7lh2bGEVl5K3S08rEzedx
	uF2QbYy783hRgigqroUlHtMevSTdNR5n2fx81zFNm5XpysA4ypBHeDjbMsKcwc+1
	kct0F5DugDwoaCEXI5D2liYd3S2Ft5++Siq5EukilyT8Z5xuvNWOFvScrznEh0yT
	FGMB0sGmR36x8lquuDJURTB5BzLpPWjkdQCTqaWUdm7Px8mgNVGDfT2UPWoulg2Y
	gwQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FtULdALDMSz59cCtP/qWuH/LIqzYjiu+LLH0XoDxj8+elOPyi6D2JoMJbZ2icRscT0EimCy30KHUdl9GZRid9lybckJnueEFG94XFzx8oqLxjkCgATbI2OZnrg9h7rsHDgfWN0+i78PkWWLhBfWeCsqDS4MimmGPvRY0kqaEAgckW5UQ1UAwKlWMLl+jm3ZLpwvziw0HSin2eXY59wbPAWCk42sUGpqpHSFZdhGKqyo/dnYWrK+PPLaIEZ8gykTCS11hdjt1kEH0ixuSGkGlWeNgRO/+J42/wcrOSwoAi2r4QIIyaevxSfRFrox+1cYE6+d6P0kya1xkoQsE2cHfrA==
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=R1OWChNFvwomDsgWABRG20kkJtStsxIi7xL+8JAbvp8=;
 b=CxsDqemZYPJi9l5xTNMaD3MgNGhp70vjGmOPsTPwkprBOhWnML5t3rGoPJmKxZw6anem79Qs/oPHujBbnEYfP0z2XT/Gb24O5JnLR4VvcAnGAUIfaFlbNDBMVSKaWQEcG345rNmcPR6kkjXE1OhhAyUFZX2SfY6+bTzoR1glyp83fPAlwnYyo61qbex90tT0xZkLiVV71P7qAJSKga/LDAMazbEAX4CcAbGZxZq+AtGPEzJcV4kHdn+WaVozV9dutGzsKxniz3I9jqugyPWS93Pmm70jHYt4/QCAiuP64HLZMgAgPe2+vysfBdqqGqRG2T861A4pfvMsnORUdTzuzg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=R1OWChNFvwomDsgWABRG20kkJtStsxIi7xL+8JAbvp8=;
 b=JcnHQgUYj5w8FNeT8XCJJ+8MGPmNf07+6L0c5cbGv8c+4rQftPLL0UJjM28jsx6H0ScYTYN0/4nX3WpH0kr71CrPy644ZDOKoX5RYLDNOaItoV01XnHZSH5qUEPWj4w21ICJ3VHfoc1jDhoL9Y17ZZsD/w+Ycom9nWBO+IJ55x4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=R1OWChNFvwomDsgWABRG20kkJtStsxIi7xL+8JAbvp8=; b=
	cJXX1y42VWz0mk0wA16xm1QqSeLQbiRS91wYIkmdDXp2vTuvS+zhxdRhm2C05gKq
	NakuWGywuiEEZF32BP4dYvIZnr/wBfuWZ0XOfeVUGhtnWnKl4PYoV2hPaSBtvVdM
	SdPCC/Fm6ee+l5i5eTPEKlShTeeqlI49cD+V7bLh/N8FHnxDJWVvuYsQ4gJMN0eQ
	2jo7EezRntsrvSNvtLGBOzAJnTZt8/2oMj0e3wdkUd/tYsVjOXVoSW40kI2nB4Jb
	GmxjWCXd7quAHu+bLPmQKTiY7ngLsx/0UVlnZbAaak27BTo3CM5PWXjYI6cTxHKH
	ZAsp6ir4K6BUjF37pIH1zg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=R1OWChN
	FvwomDsgWABRG20kkJtStsxIi7xL+8JAbvp8=; b=UJS0m33grqn+qv3Y5Spr2WH
	Af6nVo44ydltd6pMGAoP3I4emG6Qkvi0gLzYgbuh6Z+E9nDy7V7GbKzFQzu/kGFW
	IHT+mgW13Z1SjmCKgf4k9kSU/JcNjOYbOAE0AlD40+KSH7zqfMoBsbuO3PyUoipz
	Luwc2IzkZW4xCGPGB2Oc20Mi/PiwBr440nYs6KpDNlpZFniLNKI9jByQpedweBJS
	JUogVOdVUzNZAdLZKuEOHKedOi1htFqQYGyiUjuRLt+Koh5erViIKJPdkBwZhiix
	jRuoM1ibai4CLjkJy/SNxcMCTK6Nba3bKjeF36ktmJ6vdybtvTemuAS9UvRKg2Q=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: QT7Cw0mfhvRqcQT7CwYxPs
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, christopher.w.clark@gmail.com,
        dpsmith@apertussolutions.com, dmukhin@ford.com
Subject: [PATCH v2 2/3] argo: correct logline in ring_unmap()
Date: Fri, 22 May 2026 09:52:37 -0700
Message-ID: <20260522165238.844649-3-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260522165238.844649-1-dmukhin@ford.com>
References: <20260522165238.844649-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-22_04,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 bulkscore=0 phishscore=0 malwarescore=0 spamscore=0 lowpriorityscore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605220168
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF0000000A:EE_|DS5PPFFE37258D0:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 0f31d44f-99f9-44e1-3bc7-08deb822915c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|82310400026|1800799024|11063799006|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	QGOV/jwbCc/jooGBN9dR7ddXUO/XRP8kneEkyKRyLw5uF8ahiP7aMeyjeWHQzMS6dZkhpb/P4lKhw00g3d6eO09wL7rez6kxGhs5a3tCRbxg1+E2R5fn6IL4FQqtKBkxATxI4ZDgk31+mu87LjXqowHld4oRWrMwhpnG0kn5Dmr0St0u+xZuzDrsaT5xjg/R1bhzQCXUWVP1H8fn3ifIdZSNKAlEB0mWih4v01dPUhyJ5O29NNA8+ipCkw9/8VlTTnirwdD67Os14M8VbCs88ypZSWlqcKQOcnZw5c5sXqZ72xL85V9CULlznCYVzONKQz975fU+Hlz8wxxcOmO/xi22SGk50f6fzxmRdxbsMvxSaxastGW8eiOHxthJFlh+O0tDevoUypGk14dwAUZI16jdiwoI0lrLYg5RcUAqzuHmZnOKinl+fDypgKDdUlMhnoTr0XyyMjPblnx0YRxZ98gaJSw5N63O7gajjWH4+bku0E1geBHt7PVyArPU/40Dl0omFVpNTGSXZRTc0p3j1mbiw+KYlYuoShHSlLRXM+ZqQxifqEPvaYS56BJCMZ2EBIgx0vR3o0y6GOXxCPWz+s5C3oeYsI3TG3bvGvu6bhh38i+JlPyENb2+MAdgPWn+uWCAOxVhHpKVS1k7PqJJVOmn1TL55C+grkGlYHXSasGVfSbg7rcffOu8slKt+F1qy42XdfCwEUpEyz9c4O80HkWz+KAcOFhcp/lOLyWqc14=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(36860700016)(82310400026)(1800799024)(11063799006)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	TT4mU2higYMD6i2hVQ1RPs7RRnR/8nN7PPD6800V+QaxZMOXv1hPdp53Ei0HWMm4RQasUMMJDebISOYX3GiQ2myQKRCgMdYrOQiAbT1AoO+xsXsWHV7SHCdRO4QMIksrIkxJ5U/cOMMJRPtUn5gv6ryyeNx7YJltR1nTna3HhMCOS1gDywTXXOmz5+pkr0Pz8uLqFLCRkUXsi00WZD2JfY9BDzskbR6qFLCeJ3Uj+Sf9UcQP8cCTvcIjJzpfwOVNHYJsbwrBpNt0zvRLSzyjTstJhhm2d3CiErDd5ymc2k/+Jy2HKCDMhO2OSwkTVPi9SRLe4dUDvAPUKbMMFpzPjBhUIvu+sL+TX5ChibBzcWFlAVcbMndxMZw09SHXw6DeBUVZvhSdZD9HK5FTutolDcnxIMdw2/LCzUOfDN2A/jmrKqGWMbCt2ZtXkxAyukCM
X-Exchange-RoutingPolicyChecked:
	nghd9dKrxVdY2fauj3Zkds03/5wRYxqg4892A4oSVQtTvctJs+8bqhpQHCLtrYk3DRr4V3h5m7xP0nZfE9NQmz1Psnd+WFeIMKWlAXOdsBioBPiZ1Dolr6dTg95JpC1rbEDmptr00qf0vSEpbyFZJjW6m9Z5g6Uhd2UelVRHr1FPGR5oo8bNySzdWLO24LuzIMmtMYy51WpR17DO0GFeam8BX0jrs/a4BHxfkZf1Xgba+90Y8YX+U2FpOVe6W39dKQfnPbCmidF/i08l/T36JBApo3bhdpVtw/Ca4nQGscZy84Jqv2WcDJ++k+U3k/IivUZm5vtOBEmum/lJOuqIcg==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	ShJqmSz+31GtH1X4DBRzAdlbeHo03QL3PtBdusqZrkU8sW3/qceu5YlQtDD6zl3syPwc8xLgrhndp678VAWSOGkiBGnjhXQyeJaF4cOtcLNHoPFduZTtElg9azO4vj3cxpfjkaILQR/4EXfgpLUxy76Km7VVwIQrIg3vEtLPiIgjwZ/6V58OxA/P8OpIfUHL2BmxNDfCgpnEIOAg4MTz5BEsTQDrxdaevW5OAQ4MOAZox8TW6KgLg/dgf2h7lAz+FKeBRTj6Y02nFCF6Chpl4kS87dTmq4uJ3AkULT6Eb0G7jDuoFH49u4rwlD4kYJtnm2cbzVNre58hns1n32ObsXHR0+j+XSsYzUAUb2uhg9qYkMJ1SVJgs5CLGfJlgm4VAprxZX4UB/4jwYpDEcHqL2rSL7TD2WNYCJbW+E/ugW8LoHAfBt7YOtKrMEmGGXu9943lem9JqbwDpNuCAJCqPDsTyA8cLTisDyM5t6bEhnSKyMYWhNmTthBcEjwydX83y5pw6ury9JS8PfeuWOP8tmzNwMdK1T2iXiNDoo0XiZjGuCc/ra5H7FFotwp+bgWgfkR9lUokFvmxrrz72Edkhz55CmGVfjZlonBnr3uqGEgZ3nlUB39v4dy/IMR2MUB1cC3A0i7sC0XMzWfuN2pwIA==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 16:52:53.8906
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f31d44f-99f9-44e1-3bc7-08deb822915c
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH3PEPF0000000A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPFFE37258D0
X-Authority-Analysis: v=2.4 cv=LLdWhpW9 c=1 sm=1 tr=0 ts=6a1089e8 cx=c_pps
 a=cAYAfY5XwGGlFG+HVYY7CQ==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=YJXg7OVxOWrJwj3yZo-i:22 a=cbNQJ9GKAAAA:8
 a=WngjfBvNni4G5VxG9swA:9 a=P0bj-C3X3jJDpopQwM1U:22
X-Proofpoint-GUID: 6vkp8dNCRzA7SEuUZrpcL9r0ukB1TNAc
X-Proofpoint-ORIG-GUID: 6vkp8dNCRzA7SEuUZrpcL9r0ukB1TNAc
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIyMDE2NyBTYWx0ZWRfX/F0xjmXQwYwh
 p98Ku1cnpW/DMKeYd2G1dK6AlCjJVFlfIVJhJfwyQL6KXc0atzWpzmGmpcS+R2Q82gojj5JYDoV
 UOMASZori8h++xYxoj6C3UTtyufJd1+kCcb2x48hSyVFmbseaZI480HvbgKffIB8zUzx9JSv2gQ
 OJ/tvfbqiRBzefhj7Uvg52o1HUf/aWWkhM50jKFybf52PYfXfO6wW9JuVE8BiM6HxHSKPlcbt+4
 G0USn0rs2Qn5gpo87hoI7DmBfL7l39udxeL3gVeB6XIKJIiBmFNiCKFHc5cJql4z2USsFwwcY3T
 aFNmd6eWEDuxynraTxZGCVz6cjh2/v29I5UcTzui8o/GaLHay2Ji1N9gXaTmSrxWMwfsFcBtSCd
 U8YfxgFmzcllQVNhhu9q0ab6XLsOTdn78C9aV4VGNcEK9YpbVTpXMkACpGrlN8RkIl2UE6CxdA3
 6TqvHtu41V0l4JYOdaQ==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-22_04,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0
 spamscore=0 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0
 priorityscore=1501 clxscore=1015 bulkscore=0 lowpriorityscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605220167
X-purgate-ID: tlsNG-c201ff/1779468778-E2F94443-159A49F4/0/0
X-purgate-type: clean
X-purgate-size: 1034

From: Denis Mukhin <dmukhin@ford.com> 

Drop XENLOG_ERR from the logline since argo_dprintk() already injects
the proper log level indicator.

Also, drop "argo: " prefix, since it is also injected by argo_dprintk()

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v1:
- dropped duplicate "argo: " prefix
---
 xen/common/argo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/argo.c b/xen/common/argo.c
index 98a3db7fd070..5da14c929e14 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -474,7 +474,7 @@ ring_unmap(const struct domain *d, struct argo_ring_info *ring_info)
             continue;
 
         ASSERT(!mfn_eq(ring_info->mfns[i], INVALID_MFN));
-        argo_dprintk(XENLOG_ERR "argo: unmapping page %"PRI_mfn" from %p\n",
+        argo_dprintk("unmapping page %"PRI_mfn" from %p\n",
                      mfn_x(ring_info->mfns[i]), ring_info->mfn_mapping[i]);
 
         unmap_domain_page_global(ring_info->mfn_mapping[i]);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 22 16:53:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 16:53:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317113.1586378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQT7U-0006Ky-Cn; Fri, 22 May 2026 16:53:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317113.1586378; Fri, 22 May 2026 16:53:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQT7U-0006Kr-9R; Fri, 22 May 2026 16:53:08 +0000
Received: by outflank-mailman (input) for mailman id 1317113;
 Fri, 22 May 2026 16:53:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wQT7T-0006Jj-5g
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 16:53:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQT7S-008DYy-IK
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 18:53:06 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a1089bd-e002-0a2a0a5209dd-0a2a450882de-18
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 18:53:06 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a1089f1-63b5-0a2a45080019-94a38ff1fe32-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 18:53:06 +0200
Received: from pps.filterd (m0367127.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64MG81FM1233800
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:53:04 GMT
Received: from bl2pr02cu003.outbound.protection.outlook.com
 (mail-eastusazon11011058.outbound.protection.outlook.com [52.101.52.58])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4eanr3bb4u-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:53:04 +0000 (GMT)
Received: from SJ0PR13CA0017.namprd13.prod.outlook.com (2603:10b6:a03:2c0::22)
 by EA2PR16MB5584.namprd16.prod.outlook.com (2603:10b6:303:25b::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.16; Fri, 22 May
 2026 16:52:58 +0000
Received: from SJ1PEPF000026C6.namprd04.prod.outlook.com
 (2603:10b6:a03:2c0:cafe::6b) by SJ0PR13CA0017.outlook.office365.com
 (2603:10b6:a03:2c0::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.9 via Frontend Transport; Fri, 22
 May 2026 16:52:57 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 SJ1PEPF000026C6.mail.protection.outlook.com (10.167.244.103) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Fri, 22 May 2026 16:52:57 +0000
Received: from pps.filterd (m0373461.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64MGQhxa3360443
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:52:56 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4eactj8wka-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:52:56 -0400 (EDT)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id QT7FwLPIgdhUUQT7Fwxs9g; Fri, 22 May 2026 16:52:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=wUY
	hExMRJeVtPFOqPMzPbKjHtBvWIYREvKb+RihaRCU=; b=e8L2tuBtRIOLb7SaKkg
	myIsRLZ08BWcET1zYWpMJZZ0P78hDVO6ThtsGNi2GejZ8KGgq0upo3BpsJ368wFC
	hxNoVdXssJjFYy36PXTt7G7l8pINxM5iWTTRFK2K2cSCCdUz1a3uHumZcLFgsRO5
	1ygEpE/6xlp7C2Q+uHgKbBL4onlIrF66EZ7FvYo+GiYqi3+tU8+LxQNn2nnnPnOv
	fHcFK6tAdr+hwiw1vGcBGsNDPjzjRtQt/LZ//i3FFvpnm2FczGW7pAxub/k0+k1X
	QbLo943AddzdIIQdCg/gbagaNEV0QO6ylE77vMbqqzUOaS4d82cjrsCh4D/QKIDS
	WUA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FVCYAiDzE6AKvRYSEC2vqEfFxpuJcJklAbL/HuyeXPr4WTCDjNSdUkT/i6JnL4Fb7qLTp4d2DOftCbx0JBFvuMwiAOWxmZo8t5+bxd+ptgUW8KFyXH48j1nOwOGw7R+W+OzNCzYNhAhJyCve6uFbLOcCNfGtDF5kUjkxnFryKS9H1JwV7vjMW4aN8Od2NkuMEJ5srdDqUxi1dP4CEGTDAJ2PE1CSxaQygTk5k+o3Dq1H0ikGhfyJKZt/o6n7aqAUQVB3w/6bISIZKR/ebibMN2CuqRgpKC5N350qpqUH/zauDuD1WXbVuc9/Xz2597C+AumLDgP0Bdu/PumC0OAOwA==
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=wUYhExMRJeVtPFOqPMzPbKjHtBvWIYREvKb+RihaRCU=;
 b=VzLQH5n9bT0/PscF2lMYfgs7pBKSsA0FNntRPURoog3o3ghHOTxZRIcZ2IHnDYJlBxFZLQjt5sVFgWQGLByYjdSMsMLuNz8ZEurFvEVw8o7qZArAS8P+CIxZryFLgU3Q7d67g/siRGFtoXb4Uzj20RX2G20HvuAJtSDr9Q28iqkq6KpLQCGGEd/VxhPwlp54wtOk6d7E8IMaQjvbdI+E4ruwAMLdkb0/5log/H1XlVud/agsytDQlhvvLXkVDOzgJ2rGlVozrrL99LnU5C1CDDynoHGRBQO/Gsg903oZYMP27hTpUp0emALSE9NxiHZJrwAruUcBZNt8xfLgIE345g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wUYhExMRJeVtPFOqPMzPbKjHtBvWIYREvKb+RihaRCU=;
 b=S0vLkqpubkvCUWbvzIK6UlzZ1vnJSJ8uSqc6arsoF3+4/TAABUxkDQdhg8qMdjhOmzCIEkPp3LExdHysb9Ool2fNlliaym97q0c8lNHpvMJmP1U/5NmuMA9I+peZiOLMaqLu+jsPanonAutQ1X+BtYnnSaIGGKczU7RbJCRDuNw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=wUYhExMRJeVtPFOqPMzPbKjHtBvWIYREvKb+RihaRCU=; b=
	mlyZi0VCEaZ65KnjW64jmWEBY0/nYEnQWbAZmtdnACqhziFb9Z3w6oU2MpEvt30N
	9Oke7L3V4Fij/045XzEkK7WVDZv+vcwd60tn4g0uAgA+O8vBA+GCgsrMEI8lkITs
	912esTFMpKkZsEd5KlzLYzwTidC8IqPBoskb1S2wxM4cMdxfbdWakVpl25tELfNy
	j615fzBKZIB37vxm41150H0C4dgXlefGQVe+Jd5kEs69rQ3hZebM/wmgaFplWKKX
	oDHeFXsJ77qBMePpvNYga8D3ABfy/uJwiBxoROvfdgLtqErHD0xYP8uwsm1T4Q05
	zhB4rH3rBX04XvcAqZPHKA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=wUYhExM
	RJeVtPFOqPMzPbKjHtBvWIYREvKb+RihaRCU=; b=porAMq9C6CSG32JkCpz0413
	PwgKk40UxUhKCp5iEDsgg7Zp9SxaSnoT1PlIRPWRm7N0qJMjfO1dUywhyiXqRKBS
	OkLC4PnLw2sERIYTWOJ8aTyfHS+kDaEI7JKJNt1hokoEHTK6Krw8RGtaDZSJ8JBv
	zFGnN2O0zkWrqzRejkjpiCGO8BRqkXm2GZFUPd7sVGqYohA69Dp+kNgoGEoT0LWD
	13mWISeQ3pGcv2vD+voQl+DOHcur5YEBTUoS7OC+zP9oAmZI9HBSwhjDYapL/+n8
	C5+MwKjuJJJkZfzb1Bous4EdSZ/s+AgvSEfyIlwVbyA8nT+Ko+o9Dz3OOJRmAQQ=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: QT7FwLPIgdhUUQT7Fwxs9g
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, christopher.w.clark@gmail.com,
        dpsmith@apertussolutions.com, dmukhin@ford.com
Subject: [PATCH v2 3/3] argo: drop argo prefix from argo_dprintk() calls
Date: Fri, 22 May 2026 09:52:38 -0700
Message-ID: <20260522165238.844649-4-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260522165238.844649-1-dmukhin@ford.com>
References: <20260522165238.844649-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-22_04,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 bulkscore=0 phishscore=0 malwarescore=0 spamscore=0 lowpriorityscore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605220168
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000026C6:EE_|EA2PR16MB5584:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: d6b9ea90-91f0-45bb-7bcb-08deb8229378
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700016|22082099003|18002099003|56012099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	VnUaKgb+o2RPf2+5g/xUfcU8zsKb/JZcvRRD4vsl4T/CsCngjX7fDjkmgq6XXNLzlFVyTvNHAlw5/L+ABw+M+kwIX+b0OfVGe6xYKY+ttWz95LXVPkW9jXQh7O2iLhpgKiBYa7ZdmF6otHv4DFDPwwiS1fXRUETLYhWWWk47pFODarEX4JEZ2WbcoPpKlbh4miLX6FlxGqfMdd5MlTmGMtxal/LwdQ/bT0vlKSqJKnVg2mJaUFYX9OgPcNpmU1SJD62IrtZta5c8kAiZhaagrvxFMTY30ADqhm8a80tmKKAxqYdyK9y558ewPcvuT3TS6JAqnomahnBVQrdJAhDRGJ3GmKBUeDZU1kJsl9M2SJ8w89TrF2yx9GfOzA9qSPtX6ZKPKSh6pS0dssznn+XsXnobI7i55PJcfx2gP7l5fSQkAPxR0+ukWieCEPrVwKgX21I2HDxC8hBt9ML5ssPhbJoGJsyg2K8JlVAgiRNTbHbNGPFp+FE9fm5YDgfEfWF23fy0TBI0ENahgCpy+udznY/+Lq0P3aBTyKH9PPRT6XSmESUU9RtdDq6MHd44KWO1/7kjFuzK4QkhekEci0iC/L50l8fd4j/CCGfoP269+C472ySspj1aqG08/yd9Jc6FLSg3RXCCwVtDGzQj4yClClcs3w2+oJ51Sm2bvytbNzTzOX1xCfGOKawHAnFqF2O/KJXazC03Yxm7dVOy+b/EakPCxL3uwVi2iT07yBkvvz0=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700016)(22082099003)(18002099003)(56012099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	3SKca9K9Sw/yXHNZQO+aNO1dGBIl9RzXNHpWRjbXb1ttJ785/1FSGW+2fmlZgyFviVK3yqjCaveF430ut8MV2oUe2HsaaVe4eStExDdJbOPYRAVQyfQ/kWAnnwUX/hav0W7wBATwSS8xtxZVhcV6KxaLbvkHoJ5uuIbyg26sW6eNk1PTgIy4WO8vzwqncGzYNTJiiQVObaSGpL/IUtM3dOyP5S4rww+4khuImcPWHSFuVQ3VMB6TLB5J3Soor7/sOCROAK37YC1DUBRl0Rcck19qsYUx+8JBvUrT0OqEJHPiHVhRik6IcVtOTJ0nfb6FONfHC0RVJKRFPbNTA75PjK4cKJKQnqfa/IW9/KqHKfoyn4JG1lI39dVjDBDU9STsyVJrHZoRiViqCi1gkIDBq2S1hSAhB0uiAaD5EuZc3pfytaQBrxSZ4fw9uHL9504A
X-Exchange-RoutingPolicyChecked:
	RuWKIj5ywdxUYYHQkzOzrbugB6+oexsOEmtg34ZFIvWPJkww4NvKMnImCyIhuj99DucVIydxvsX1KCiiAfg7aWHuee/W2g4jwqGrzS4LW0JKlzdd7AfhRDTZj5xYWaScHJzcuwsQ+hgJRsxeYXKuLQccI78BgKy82g56/dGRRECuZFdHmjpaMBI89BDT/6EpQqIAjIa/HdE0Zb0oNv9XW4bCTofQ/lCtjnJWq+NIyM8dLzdRuG+zLWrpxSbIcsR0ilGshw4U6ThF6I3Axtao4Pr7aWk1TNmDuPqPel1Ocvoo9sHXSyevBwvFk6SvCp3o/SvzLrIxNPLre/iPSF5n6A==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	0aZAZUVcgVHUJEAqyW+Mnl0iPsLW/Di8dtNl6E/nxiEiU6seZ/z/wZt5xs/DHwV4PX08cokX+U+efOXf5bv1J/4Z4sMWTGWmaRcyi59wx8Et5/mZauGpG3rfdTeqJ5amQtyifRX9jg8hcuSDSCDngBsSwju5w/gb7mQxNVtI3fDo4uMDpnX9/TD22nB3wDlX7O/0PZdncZzsWhbdaqx0cTRaWvY4QRuI7BLc0g8TvlPgB55Pv/xsFQYQfWot1Bu2KOTb7r4IOLnsW04VftiWFo4W5R2+qaQMV/Xt5kce8ORKkMO5vkmtLDi3ObO3pzTwE0qRj3QCRTG6cTpLxZaLkTUJzF6YkVYiBv/GtM/beNLaGTR1s/1QPUkK3ETmO/hZWhvtimdjeC+9D3fk2LY+faa1nHhp45Nwp0avGtZX8vNMp2SJa0dKxDiIt5zbieugNyxC+cPtzjYywbwZbV/Tj94jpK6b898HtjYHPEu+VwlwXr4+w5RoxMX858frM9efUmeLpAP1qHMy302pverOyTucmOok0XRHJ4KyxIBFFN+werpMB6GSStTJyc5Ge+Hv3a5TZjAEzH2JiSBzzt7DhhGWoMfvJXQBrB2x87B6mvnSNZESApBvbkpKuxZ+iXHXllaTDHlo7YyXrEU8mf8wnQ==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 16:52:57.2922
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d6b9ea90-91f0-45bb-7bcb-08deb8229378
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000026C6.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: EA2PR16MB5584
X-Authority-Analysis: v=2.4 cv=UptT8ewB c=1 sm=1 tr=0 ts=6a1089f0 cx=c_pps
 a=V6MklVWPegrOQeIbI7BYwA==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=dw5MciS7gY-znkhJuOLE:22 a=cbNQJ9GKAAAA:8
 a=TweWIa6zg6WzoLAQ39YA:9 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-ORIG-GUID: EyXdaORpgwsxdcYU0v-hYTJvAAfqj9OE
X-Proofpoint-GUID: EyXdaORpgwsxdcYU0v-hYTJvAAfqj9OE
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIyMDE2OCBTYWx0ZWRfX/jaQGJJacz3Q
 b9OuDip6b2Xz7xRfPNHJZJBgRuhCjLKZpiz+II2FOM1x09dWdy/GvYn3+lzRc3QQZcabZvPlMMc
 B+kMxGLWlyYxDRzo4h6NtNKhmixTJfuIWTMcJsCUKwngdA/tkzWoziGgoT1sGddRKzwFoA9LnLu
 nC0tc3aFaB/aVpcPQD6VU2GKUEFREWPhNKo3exXm8fQMtfciYMbLEcEnR8/N5kZrc5NTOWUFIg1
 afJ+xnMYB2RJJbhD365Sdmw4XczsfTiiue28U8M1FhGKptQehmAi3blXf6/nu+HI6iA+wXXceZZ
 4UgTgB3gzG+uEPQYk2sBod01bs/UHYu/In2WCJGfF/pZ+PpCJwf6YxuynIZ9+5qn41kpFvZobz1
 ZbBY4mGNdJv0Cjh3nKZn+L6dinox1YhFhfx1KGbcUqSRxgxrIPfdzqB84ryUM3jWOuPpSdKoyD7
 tqU1GUalTj6FwxqSJdQ==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-22_04,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0
 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 lowpriorityscore=0
 clxscore=1015 priorityscore=1501 adultscore=0 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605220168
X-purgate-ID: tlsNG-c1860d/1779468786-B6368DB1-453F8493/0/0
X-purgate-type: clean
X-purgate-size: 2334

From: Denis Mukhin <dmukhin@ford.com> 

argo_dprintk() prefixes all log lines with "argo: " automatically.

Remove duplicate prefixes from log messages in the Argo module where
applicable.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v1:
- new patch
---
 xen/common/argo.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/common/argo.c b/xen/common/argo.c
index 5da14c929e14..ffa1f43437ab 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -1467,7 +1467,7 @@ find_ring_mfns(struct domain *d, struct argo_ring_info *ring_info,
     if ( ring_info->mfns )
     {
         /* Ring already existed: drop the previous mapping. */
-        argo_dprintk("argo: vm%u re-register existing ring "
+        argo_dprintk("vm%u re-register existing ring "
                      "(vm%u:%x vm%u) clears mapping\n",
                      d->domain_id, ring_info->id.domain_id,
                      ring_info->id.aport, ring_info->id.partner_id);
@@ -1527,7 +1527,7 @@ find_ring_mfns(struct domain *d, struct argo_ring_info *ring_info,
     {
         ASSERT(ring_info->nmfns == NPAGES_RING(len));
 
-        argo_dprintk("argo: vm%u ring (vm%u:%x vm%u) %p "
+        argo_dprintk("vm%u ring (vm%u:%x vm%u) %p "
                      "mfn_mapping %p len %u nmfns %u\n",
                      d->domain_id, ring_info->id.domain_id,
                      ring_info->id.aport, ring_info->id.partner_id, ring_info,
@@ -1741,7 +1741,7 @@ register_ring(struct domain *currd,
         list_add(&ring_info->node,
                  &currd->argo->ring_hash[hash_index(&ring_info->id)]);
 
-        argo_dprintk("argo: vm%u registering ring (vm%u:%x vm%u)\n",
+        argo_dprintk("vm%u registering ring (vm%u:%x vm%u)\n",
                      currd->domain_id, ring_id.domain_id, ring_id.aport,
                      ring_id.partner_id);
     }
@@ -1781,7 +1781,7 @@ register_ring(struct domain *currd,
             goto out_unlock2;
         }
 
-        argo_dprintk("argo: vm%u re-registering existing ring (vm%u:%x vm%u)\n",
+        argo_dprintk("vm%u re-registering existing ring (vm%u:%x vm%u)\n",
                      currd->domain_id, ring_id.domain_id, ring_id.aport,
                      ring_id.partner_id);
     }
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 22 16:53:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 16:53:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317111.1586369 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQT7P-00064t-5z; Fri, 22 May 2026 16:53:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317111.1586369; Fri, 22 May 2026 16:53:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQT7P-00064j-1S; Fri, 22 May 2026 16:53:03 +0000
Received: by outflank-mailman (input) for mailman id 1317111;
 Fri, 22 May 2026 16:53:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wQT7N-0005wj-IB
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 16:53:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQT7M-002xdN-Uh
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 18:53:00 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a1089c0-5cb7-0a2a0a5109dd-0a2a4506ca6c-16
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 18:53:00 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a1089eb-7371-0a2a45060019-94a38ff1c144-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 18:53:00 +0200
Received: from pps.filterd (m0367129.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64MD6CW9432872
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:52:59 GMT
Received: from ch5pr02cu005.outbound.protection.outlook.com
 (mail-northcentralusazon11012040.outbound.protection.outlook.com
 [40.107.200.40])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4eaqr0j7by-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 16:52:59 +0000 (GMT)
Received: from IA1P220CA0009.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:461::6)
 by SA1PR16MB5519.namprd16.prod.outlook.com (2603:10b6:806:38c::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 16:52:52 +0000
Received: from MN1PEPF0000ECDA.namprd02.prod.outlook.com
 (2603:10b6:208:461:cafe::1f) by IA1P220CA0009.outlook.office365.com
 (2603:10b6:208:461::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.17 via Frontend Transport; Fri, 22
 May 2026 16:52:51 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 MN1PEPF0000ECDA.mail.protection.outlook.com (10.167.242.134) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Fri, 22 May 2026 16:52:50 +0000
Received: from pps.filterd (m0426317.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64MGb7lv3201690
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:52:50 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [44.208.76.22])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4eactprxv2-5
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:52:49 -0400 (EDT)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id QT79w7GmWmrl3QT7Aw7H3c; Fri, 22 May 2026 16:52:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=kr/
	m9p/JyQJZZujI+NHxVzrOAYyBvIY4VvVrEyr7zag=; b=oKR5WqioMZJ28XW/Xf/
	krLGE2ccN38IGMJ8yIxxPy92lVQyUXsfaRT9aa/3ugEbQUQFo5VkQscpmAYiaa/l
	eTQzE0/osaEyuudzrX/sZxuldBv1jEb2KmYvPsGJwIfPgAPBgZ8af3+4d+nCqnrR
	EjSpwt4CglVN1W9sJxGayW7iQyAj2mDyNyoopZE6vZtRwJVIVzwIyZPAf6v+KSBe
	LbuxXGA9SYpDIDW7kpDN2JrDxsm1nUu71dIbpbl7zPd1VzEqKl4rNhmUcTSox938
	6hJeShuBSh8HaKpJD19dercRQ/ChMyXwV6qfjICiDnU0512kzXMyKzAmMcTrAjO7
	6rA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fgrUtbjvDKe9X502/aZzCJZaFNsflL7h8NbzcXXOGHxi8Yu7DVVs2fLF4A1rTNi+x+Qh1FriF6Oi5PJyVpHCvLtUWicKJ6N07BBrz2MYIBFEA9yxY47BtMCBtUsFWQs4vxA4IdWd0jMynCak9ODW7RNWea8Cob4waAh47aXETqgR1Zt0Kwzcgg3tAWpF9XaxCWY0NOKEwMt8W+/QCVr+mfqQ1Zu1DACtuoVAoi05C6Ty+eBCNIgMOxJHzIZCkHgSCZqvaQAaeG352foMj8II8nqJLUiO6E1G+yTGCKyqPEkagy0fq+u4JCvnSQxN2F9hj/DU/QV2WyuPFZFTtRnPnA==
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=kr/m9p/JyQJZZujI+NHxVzrOAYyBvIY4VvVrEyr7zag=;
 b=Bt96qifQf71iZ5FHP5n46xk7cCp8MHUpHut41m4lpJqBxliVSPueU5kDllJlD7PLTAbt0FiVqjcBrQhGLGOtJeOpbP8rGA/+BuaGVkjO0llFhe4qrT4Ebqw1398Ul0wGT4bpEsNM8NFDhPJrbYBYvgWxyArJJdobdztecPBjozs/BUStJs0xvHpaRrV/xfnbDcEa4s4UO+TLQQ9STkBmlBlhsT4Xd9ysnZS5X5yyuwuoGxrokmZX0GYIM9UWI2tkmu/B5ul/jomTIKBlUlsLrpMubNAxuqLIllowfCQr6Vmauc1NjcPWPbOCSkfDATZ/4rsb8oZ+nymSXmh6mBiTiQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kr/m9p/JyQJZZujI+NHxVzrOAYyBvIY4VvVrEyr7zag=;
 b=IsvgvEWuck5Q5j1ael9jQwkg3ofkznfn7PsmqOsLXsprwW+NQ/EXbFAcN9Y18u4AX+/sqEyRONJ/yqq8+uJlmeHFTj0G29HTSoO5YKkQUyWNMbsBv0+y/l4Cl9BYjKvF/1bXeVn/L49VuErGRjw19cLV0DtdP4ptJ/vmIoePrlc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=kr/m9p/JyQJZZujI+NHxVzrOAYyBvIY4VvVrEyr7zag=; b=
	Yr3ZnmVmK+9XzTdSz2C2Nb+IKTWIj9FiD7ylXo5LR9WcGesUV3T/HjgZPgamDADf
	aUrNA0iEtKXbJR9mc2B4Wib/vpibYoj7DM1mo9q19pAwKjhCSzP8isKWzQQaDA7p
	5C1KOuOO8i4Qh+g55Kr8YC+VdXoqafowqKk4mAFlM83Rs0y21fpgFQgXTH6IwT4u
	PtDU2jBG2r/u3nEgkR7og76UmFQ162vhurfCsVUybcuEdVfpc3Er8JfCDn+1BMJ7
	f4yDZ6pOoQlUShBv7zGujLYnl19EWU53Qhtn4sTiNK4CoWpbaZFCSD/cesEVdeFe
	O+254guMMlfdm5ktBovPGw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=kr/m9p/
	JyQJZZujI+NHxVzrOAYyBvIY4VvVrEyr7zag=; b=nWXJWqL+IrtwgCjzmx9Lzos
	shta863hpDaWDMZj5kFWg0na3YnFN7LGzoaSib2INARfBFxvrT/9WIhsWQwXeOrH
	go6FIZWvfbr5SSfzJR7QO6g8EnA5qVGVC+z02YtZVNH26NovzxpGxHklDxGaAmZ9
	K/RJ7pK67P/zB3ilfx0y3nF2YVcxZ/Qql7/qpCIwkVrjyR5T4xru9qFDmf9b4XAS
	xuqo6bGv1Sb8xQTfsBQPoxM9Mu3DwS59PuzZjeAENlCpVhE4Qfjqm6P+WbsSdyUB
	GstZAbhReEhKGq9CRZnZBGj39UTBm6WFWyobcv7DGia09YBt7yjO1daXjM0adTA=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: QT79w7GmWmrl3QT7Aw7H3c
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, christopher.w.clark@gmail.com,
        dpsmith@apertussolutions.com, dmukhin@ford.com
Subject: [PATCH v2 1/3] argo: lower level of noisy connection-refused log
Date: Fri, 22 May 2026 09:52:36 -0700
Message-ID: <20260522165238.844649-2-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260522165238.844649-1-dmukhin@ford.com>
References: <20260522165238.844649-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-22_04,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 phishscore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 suspectscore=0
 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605220168
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECDA:EE_|SA1PR16MB5519:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 21c515b0-1c67-499f-3441-08deb8228fa7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|11063799006|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	qdfQBcYz6V8ibns7YL692qOZCO5QtM/O8U521h4RJsUF1OWeLZqcjWJbIJrHQfpr3SXekT29lwjerLQEwPl2KpwQM1jHL5HGWv6WniDq4oq8m9NcTmGWYd/dr9zFGdBrF+R/HppuCbvu/XoKpsudBkGywkk8zFt+aAxz2qbGTGg6Sy91ktuiUW6vRL1AFWxjlfMAIfTcTVqB3AD7PBD2krcXRKfMkLTlx2uIuAqp+zwYoCXc1gh+Bt696+7d/VMfgTCTGpX8mTjh7lA2UNmQ00oy/vgMAH+QmPBtTLNn0XhcjtyF4UGB2Xo+ricRa7Jy4aSkE4/h1pDuFFJ+GLvv8dv1XTYWyUSc+1yRyp/IsgeQLe/iXljwTgQ5lGNZwyNBYqLMvMXiZGFGoCXpeynG9IfjOb39AN1tXm0tOAMWoIKAOkG432NKgqhI/xi6cCB8CNfyFNwgnxscDCUAle/mfi0V88UgI0ukrndDKV4mVbP09q2y01L1f7gC2t2/ha/7CO7t+ICPVA0+fJixTkwtF47a7rWf3JMbnJV4faYsRoa3HzCyaxH7hDZGzP2j+jgjMQonmqr3z38Fm4b04GBWnYuFNtPk6pgv/za3YZHN2Dm49qlKzDcQfUR3LpJXv64KorKc1ObhSVgTNiak7tgghddWKAY4Nr1D4NG5ZYIacnwr176vfO/kxP99mJKpNVAMwMakRShpd+BlccHJj7bwbvsLt/N5uNldVwPAtTWHZyM=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(11063799006)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	bgUveZjE6UVRWNNrZoAY39gIYAN8WUZdedqgT2aVstZp6ZucgFiwbiFQx0apEREchxh+57iPtQiLhu6f3Wr6RoV7j3orzZTLmhZx/vyvIzXfCtDnHe+RBdgHbTFOo0GMQ7yKEtA07f/ANTp/zMk8tgER7NRjXWC5UohnTzCNPzSj0Y5Uw0AS/9mYJcuW5I2bym3m6CCNzaRYTLfwtEAtyCsSZQuQ+Ko2Hvys6ZHBwu5xlHftkr4sFPhd1eqUSOw8pHNUhjMGTrOkcRo0cwox3MxDYa0/zYaKMu1QroQNy5+yArGp8DN6EwaXODwhJrZW7NnN6k+qOM4ra7QoC94LHrbYlt2Y7hARUMqXCd3fuVny08VIq/o0hOpWKSCf5NdPkeijMKrRDnCfRPl00BQ92dMCYs9DMb5Ja4FmNT20wZ8NVUUgxc9ilp/YyXzFCJZ+
X-Exchange-RoutingPolicyChecked:
	kUimEsxRWhP/DPXl/m2RS/r0fHJbeeS6FwMbTpL5C5hcGmebQ2Qa/PtvVDD2KrvvLobBxZt4UDLR/NOGGhNRSwO+62nhcWTeeYc6gUxhtFUoiu8POQNNQ52mKvRRY4jnF2a0zfJxPTaIX7m+Y0uW3iYYwCdQ6UkvghQ3YeIEVi14YsnBgMO6AJYdO7gKkzQ0DUb60tPsP/vShWKkcKByR6OpEcmydxiFWnKqo0wSphrBaDjBNkk00h5WxCE7Ebh4S2nF8NN3SSByih/N6SylUAy7qcfcjvyd7VdKkZH6EtTjoyrW8uvjZq4BhQGh39YTOgoPM6ZkakONltn6HTpAWw==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	f9l4dDVLFv5F7nvWLOcSrRaZYJ1FT3LRPf0NaN/2Xx7IjXwL53YUqIZzpvY4wGzLKHhzry5xz5zYjBg+EZDD7P/Z7I/LDo15YHQxjlnVIVu5/7gkdBABpb+GdXnx/6e69kzGiyahPC7odEYZcxzt3hPCQmIUjPtZRxuGlgFXGQRgtzZRjTSOpRqg/SL7nZmQgNFLP3vdKQvfWmM65zOfd5YVEkA+Q+BDvyAUxt9ypv9DNw23Osd6Hxn6LXT3t34gM69au4tT8OIXQHOTpULl1DKmaifkYZBU8drJjTF7+YRqppMxuLoGX9g5OG1d9TRpF5kFuwvZu/VlfR0Kep37So1e7LEDGRK8WnNO3CnS1NGAt5DrY002glpH4yoF4oxw+Fs4PoAnhe3VMFKkVgiO9iKjWyq17HU3opp7rDZnqfqplndoIpwW5MOrNBniKiafP2tvBvObaX7DMHmq6Rrk7FdYwssTSINbj3X02Bv1/BU34RGzHxnvY+yXuVDGRGwU00UsZJ6UdVjn4s0gHYjzHifIJ9peAuADWqJaqhbeWrDbJVCUrMuGF7ZSUZg8XHqQLHuBvYOQFxc/L3UXcddXk2tDRWGq12TAPnT9VCnEDXnNYZit2wuPaJuQUzuZ4oTlkG1tjZvkCGPGhSizHHDt0g==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 16:52:50.8731
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 21c515b0-1c67-499f-3441-08deb8228fa7
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECDA.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR16MB5519
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIyMDE2NyBTYWx0ZWRfX4qs5FZ7eN0tb
 Lc22jLRvDPO6Yt/ZdKvegyCcURGckDukym6SoZBUGyX9To1eeVT9co0V3+XJaRCYWD7eVKIrmUy
 WaanVEPqg57P7UmZxkY14ObQn8TJvOCVzQD8eqhoU0qZAEOX/bQyBNifg4wFdR8KCLq2mh2RX1Q
 4vOvS16X24mzXOsBHTsqhkvTcgPXLg/rc9tCnKfAu3m5s7xI8kI3uoQG7OOQYOs+Pnr1pHgD/NG
 ylv/utgkxG/TULUNL0UJPli7E9bCjmJz07tOX2MRC+e5h9YBVQbBZi4NR2p4WjjY+F4Q7+FeMKT
 mLgNbZZElhDetAcKO4akveaGIZ6mFzHyWDxpYdbj0CbJdj/3O0LHkN/YKMVwTwq8rKagQ0mDdoZ
 JiF4VulEXN4MYL3psUncwXAg1lCOpkPNHrEIa61+D0fpHdRDqite/J7zylsN92zPRSWKSOExsio
 thj+2u7egAa4VdNWUgA==
X-Proofpoint-GUID: X4aRJyA7cAhTcoi_SzjX0kO6dIE4ht1u
X-Authority-Analysis: v=2.4 cv=OM8XGyaB c=1 sm=1 tr=0 ts=6a1089eb cx=c_pps
 a=f2s2IY/meXrRFjAxVkB89g==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=X3KReqg2EL6A36SYCKpz:22 a=cbNQJ9GKAAAA:8
 a=54Me3sMKcSjXOMnv11IA:9 a=3whSkbs7g9Me0DR5EJEX:22
X-Proofpoint-ORIG-GUID: X4aRJyA7cAhTcoi_SzjX0kO6dIE4ht1u
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-22_04,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 phishscore=0 bulkscore=0 spamscore=0 adultscore=0 priorityscore=1501
 impostorscore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605220167
X-purgate-ID: tlsNG-16d1c6/1779468780-8CC78D75-7C4EA1C0/0/0
X-purgate-type: clean
X-purgate-size: 1279

From: Denis Mukhin <dmukhin@ford.com> 

Lower the log level of the "connection refused" log line, as it can
spam the logs when a dom0 service using the Argo hypercall tries to
communicate with a domain that is still starting up.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v1:
- dropped duplicate "argo: " prefix
---
 xen/common/argo.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/xen/common/argo.c b/xen/common/argo.c
index 28626e00a8cb..98a3db7fd070 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -2034,10 +2034,9 @@ sendv(struct domain *src_d, xen_argo_addr_t *src_addr,
                                         src_id.domain_id);
     if ( !ring_info )
     {
-        gprintk(XENLOG_ERR,
-                "argo: vm%u connection refused, src (vm%u:%x) dst (vm%u:%x)\n",
-                current->domain->domain_id, src_id.domain_id, src_id.aport,
-                dst_addr->domain_id, dst_addr->aport);
+        argo_dprintk("vm%u connection refused, src (vm%u:%x) dst (vm%u:%x)\n",
+                     current->domain->domain_id, src_id.domain_id, src_id.aport,
+                     dst_addr->domain_id, dst_addr->aport);
 
         ret = -ECONNREFUSED;
     }
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Fri May 22 17:21:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 17:21:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317153.1586386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQTYi-0004Jn-K0; Fri, 22 May 2026 17:21:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317153.1586386; Fri, 22 May 2026 17:21:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQTYi-0004Jg-HP; Fri, 22 May 2026 17:21:16 +0000
Received: by outflank-mailman (input) for mailman id 1317153;
 Fri, 22 May 2026 17:21:15 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQTYg-0004Ja-U7
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 17:21:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQTYg-007LcX-3x
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 19:21:14 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a10905c-5cb7-0a2a0a5109dd-0a2a4501eaa2-24
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 19:21:14 +0200
Received: from [209.85.208.170] (helo=mail-lj1-f170.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a109089-c1f2-0a2a45010019-d155d0aab9f8-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 19:21:14 +0200
Received: by mail-lj1-f170.google.com with SMTP id
 38308e7fff4ca-39378db197aso78764601fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 10:21:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779470473; cv=none;
        d=google.com; s=arc-20240605;
        b=jHVR/m7AexpdA4W/XMumOkbJpMyOpi5PveOU4vqIo0nRzgQkUJtrFjITEkJgysAYZM
         mqjyyMOgKcej+0Y/kOsgsz9QdjOdkd7RbQjjHF/N61y/Bt68pYctlwdJNNfF8TUr0MJZ
         hJSjhmrXqd/b0t3BrIlhjLDgrdPla+wz1oB5iISByVfBxWCLx2vojuGt70GiZU2IIKAo
         1WAOQCJhKsVaiD01KdYB5CUNlVHvTLiBeGE5ofYu07bG7pkFB2ELY/DokVlPSDwt2uEh
         MIyJyzxVSkKHUd7ZBig4ypIj7nSLU80RBa3ueag70jjt+ebdrad0ezpcCaI/8RbsI+nJ
         O4Zg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=Q3X2LTkGpGrzNkaanU5OXsB+tno/ATiL8zpNRdRupBY=;
        fh=074dSOZR2TjZuH9KX7pMcX1QOxphcb/LlKcediamujk=;
        b=Xv66pTD9hx+K/LSxjJjR9o/ERVWOhR1OdkjppyWjlePahhKRKiPevoEjvnxEf1Ij9c
         T/vnPm1GSIqLuhZFdHlBxDks13f28O07sBW9GCx4gxAbmYFP1Dn7fa4MzDc/huRqCrik
         aHKG7Q+BlFOCLV/7yaEPqlcx3C1P1BsPyLzqGyAcEifa8UPRxReCnn8K8ZjjsPGi3BGO
         ps9lQ3NHZsRNMb2aBZnN7In/YH5S9O1130nXmez1JuitZ132uv3vEnTuOrXMO7iXWtG1
         2Gb4CToRcecxGlLWvy3oFYSaKSiEY4cDe/ayB23Qu7Ui3761p6nx7B8t1o/fo4saGIA4
         SyQw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779470473; x=1780075273; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Q3X2LTkGpGrzNkaanU5OXsB+tno/ATiL8zpNRdRupBY=;
        b=bmwbALPmTgLBes/X+U3VZNQvrT2Kjkd6TU+Q0fXTqi1UMcdC5z1+shlqPY3wlmS7vl
         YbSM0gStmbcngm3zc/I++2GYqe3b4ul8DSDGUxh7EkqOPuOkbYpgFJlI6zUlNaD3uGBG
         6tuJo2Nmwl+teTAJfgA4EzYlRNn/igdnQMSkwTv4jT2gX9wGlkWUKSbrlSJ523YbtQL5
         XA/7QLtuCB8wsrW0ECuhjK/GILmlj8A0M5Fh3fnlthuwGBp+mqjB0OqUtjw1VABtx14o
         3TLnuOkGHFLLxXj/g/XHOC5VTIACXH833W1FYQDARAMV6KMXV7tUHgV6+5NhH3TZjfbQ
         Qwew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779470473; x=1780075273;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Q3X2LTkGpGrzNkaanU5OXsB+tno/ATiL8zpNRdRupBY=;
        b=pq/qJogvgabTEuV981Yt7f4zn9L/Vq4Fjkey+BJoRP75MJ56geACDYNi6bgTpK3FYy
         RjVNfSFDcZG0w4WlmuT6yE8G4sL2+CVb1LChwSRTPzRp9GxPt0Ymg2ejBIp9CFIvmkwS
         kvRzXPUjT9l8gZiCpzOa476qQbHJUzCRUyN9eEw/05MvUOljmjmBrx/eGKk8ThSj7woD
         5WwSIBZIHOypLZtjj6HvuHEjk6lj3rMn52q1yexKtPSXJBEP68Yu5Wb9Ly4iJANouMFX
         dBtV8iOlJsJWrDZQ77yXeP1LPFDpY0Y9mJOvc0heNERQ+mHBi+Y9VuL+Ec11RCKiNaSq
         N/PA==
X-Gm-Message-State: AOJu0YyhrBXph53GGnDqDj+GrRbTHs37xb96iaFU6t6xZ1O0qRbcuM+4
	uPnDvz31bvdK5fbwsiIINxRRY1R1CCINruRL4O+mVH2iy1naPg1eBheV2SiXA+71jzYa93QC4Xb
	1yliOoDu1tGh9XkNkrKvUNT7fw1ci49Y=
X-Gm-Gg: Acq92OHJlTbrcvgA7ljuQ+bIqibjmP0jM8QDjrSfg4xVWVlHmSa/swdEwMqQE6WFC/o
	r9qemUr7VQHAa8SigtGr5808o6oCZwBPidAXFf/RLDO96EwUzDfCFJLi2W2hvGnyIZ9jIbTQv2y
	ZqR1htiQZg3PegWWl+XZXxqDq00IP12igJGTVE5mePghTMXblfqBW3O9q0X8yHVsn9lO5T0JCKu
	4onX1jo3Rd9TJmtsMJSHNuStHaLhV31V2MRyfuJ4Qx7M4or3CmTt8qKtrFGyV2G9E9bYX/qXZJR
	onHkgL7PPB6r6Cg=
X-Received: by 2002:a2e:bd86:0:b0:393:975b:5634 with SMTP id
 38308e7fff4ca-395d8c0f870mr22124781fa.11.1779470473127; Fri, 22 May 2026
 10:21:13 -0700 (PDT)
MIME-Version: 1.0
References: <20260522165238.844649-1-dmukhin@ford.com> <20260522165238.844649-2-dmukhin@ford.com>
In-Reply-To: <20260522165238.844649-2-dmukhin@ford.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 22 May 2026 20:21:01 +0300
X-Gm-Features: AVHnY4LecR-n6Qq4gQ9i09UQsRZlM4uvQfNwQFRN7pqgpAJwxikNPgcM8ccH0Ss
Message-ID: <CAGeoDV_c6NbDXC5Z8x+qqaOtVbXzpOSeJYLBWtk-02LF9opd4Q@mail.gmail.com>
Subject: Re: [PATCH v2 1/3] argo: lower level of noisy connection-refused log
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
	michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
	christopher.w.clark@gmail.com, dpsmith@apertussolutions.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d62444/1779470474-B7957FF4-0FEB443B/0/0
X-purgate-type: clean
X-purgate-size: 1495

On Fri, May 22, 2026 at 7:53=E2=80=AFPM <dmukhin@ford.com> wrote:
>
> From: Denis Mukhin <dmukhin@ford.com>
>
> Lower the log level of the "connection refused" log line, as it can
> spam the logs when a dom0 service using the Argo hypercall tries to
> communicate with a domain that is still starting up.
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v1:
> - dropped duplicate "argo: " prefix
> ---
>  xen/common/argo.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/xen/common/argo.c b/xen/common/argo.c
> index 28626e00a8cb..98a3db7fd070 100644
> --- a/xen/common/argo.c
> +++ b/xen/common/argo.c
> @@ -2034,10 +2034,9 @@ sendv(struct domain *src_d, xen_argo_addr_t *src_a=
ddr,
>                                          src_id.domain_id);
>      if ( !ring_info )
>      {
> -        gprintk(XENLOG_ERR,
> -                "argo: vm%u connection refused, src (vm%u:%x) dst (vm%u:=
%x)\n",
> -                current->domain->domain_id, src_id.domain_id, src_id.apo=
rt,
> -                dst_addr->domain_id, dst_addr->aport);
> +        argo_dprintk("vm%u connection refused, src (vm%u:%x) dst (vm%u:%=
x)\n",
> +                     current->domain->domain_id, src_id.domain_id, src_i=
d.aport,
> +                     dst_addr->domain_id, dst_addr->aport);
>
>          ret =3D -ECONNREFUSED;
>      }
> --
> 2.54.0
>
>

Reviewed-by: Mykola Kvach <mykola_kvach@epam.com>

~Mykola


From xen-devel-bounces@lists.xenproject.org Fri May 22 17:21:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 17:21:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317158.1586396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQTZG-0004l2-S2; Fri, 22 May 2026 17:21:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317158.1586396; Fri, 22 May 2026 17:21:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQTZG-0004ku-PD; Fri, 22 May 2026 17:21:50 +0000
Received: by outflank-mailman (input) for mailman id 1317158;
 Fri, 22 May 2026 17:21:49 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3qZAQagYKCWQUGCPLEIQQING.EQOZGP-FGXGNNKUVU.ZGPRTQLGEV.QTI@flex--seanjc.bounces.google.com>)
 id 1wQTZF-0004jV-5s
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 17:21:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQTZE-007Lgu-It
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 19:21:48 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3qZAQagYKCWQUGCPLEIQQING.EQOZGP-FGXGNNKUVU.ZGPRTQLGEV.QTI@flex--seanjc.bounces.google.com>)
 id 6a10905c-5cb7-0a2a0a5109dd-0a2a4501eaa2-48
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 19:21:48 +0200
Received: from [209.85.210.201] (helo=mail-pf1-f201.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3qZAQagYKCWQUGCPLEIQQING.EQOZGP-FGXGNNKUVU.ZGPRTQLGEV.QTI@flex--seanjc.bounces.google.com>)
 id 6a1090ab-c1f2-0a2a45010019-d155d2c9bcbc-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 19:21:48 +0200
Received: by mail-pf1-f201.google.com with SMTP id
 d2e1a72fcca58-82f74bcfb86so9401362b3a.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 10:21:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779470505; x=1780075305; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=j7PDgeJ1DRC6yA0ExvIeovoOboeWG72MkykGKDF6slU=;
        b=OyUwBIZ+QAmfUbUz9ZVcYqWGnXbAuujC20+Emue6ycGmEWHZbcd1ZOKHZax8w45Gzy
         CHKSuZGfJjoZ4JmxSypTbgmFqzi4sUfnfxOQoWlHs7bnYt1/mY/siP89P+ADoYf7CI9T
         nun5JzxzvdWd8sQt6tqtcfbVpNs+wXq6xzOkSBbaXlItOlFFAv7LZZB0TgYki+unWBXc
         dmsm/fht7b+EBC7xdSA6ztR6vgpcP/tktiUPUUzZTblzp6lhHGxy+SiK8yvw5Y77Xx8v
         X+W8NahY60kgSJOuTXzoatQQcB4bmiVTI6AfW8xGNcaHLt+2VAQ8CtRo61HYFAAOZ4vW
         qVYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779470505; x=1780075305;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=j7PDgeJ1DRC6yA0ExvIeovoOboeWG72MkykGKDF6slU=;
        b=Bkpoqucy6XrOLrTLmjudH1va4OTRtRkOcHjVeDQChBU1RrnjDLQfsOEMzWESM2lqwi
         cgZaFYwi9BSq6Sp1LOXGVlNXkcGqyi8guPibqgUBw9k6kIF5MYi7PGIzjqKHbDb+gPce
         ld9Qamc9+2oPP+/t5C9m1RcJGv+CBjEnCE136M0d2vrX14IBom8i6xrr6a5O+2AZ5nrW
         HanKRLi+STvWe0QCaA1YD/Qe5DPPNWD8xbdYQ2slC504QYsVJwYrnt4z8ghWVIhYwrqt
         Ia+LGkkv4IZyWp/v9c5pNtMMzuCN5n5cc6yVD9xp4//p3aYpOj6OAtfs+SMgl/Q8vROh
         VZYg==
X-Forwarded-Encrypted: i=1; AFNElJ9l+BWRGWlkejFri2PioajNH3ecsN7cpm/skJgk7AOd4REtEkseVTxDc4Kl0dpKBVU9r7qNezepR3E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YybPrBm47lNtTgHCkz1jdF/QW0nrtznTalOm/59BOeuiUlADjhV
	pIN8zbCcMdMQgbYpK8Roh1pPhN4jC5Xgjc+Jo1Zwrocw2uQfbmwTwBIvMqwCv0PXH16rJUvYo5b
	9NiGBgQ==
X-Received: from pfbgv6.prod.google.com ([2002:a05:6a00:4e86:b0:82f:86c3:55ba])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:3004:b0:82f:721f:10ea
 with SMTP id d2e1a72fcca58-8415f17de74mr4765703b3a.18.1779470505093; Fri, 22
 May 2026 10:21:45 -0700 (PDT)
Date: Fri, 22 May 2026 10:21:26 -0700
In-Reply-To: <c4b498c401287477402ddd60a0120b0c5a9bf8d3.camel@infradead.org>
Mime-Version: 1.0
References: <20260509224824.3264567-1-dwmw2@infradead.org> <20260509224824.3264567-28-dwmw2@infradead.org>
 <3ad6cd109480772ade3c11f23b9c1d7a9855d67e.camel@infradead.org>
 <ag-Hf2liLSX9q0rS@google.com> <ab84153e33fbe7c25667f595c56b310d4d5a93ef.camel@infradead.org>
 <ahBQ7mXNaTtouT3C@google.com> <c4b498c401287477402ddd60a0120b0c5a9bf8d3.camel@infradead.org>
Message-ID: <ahCQluJj59uWlDAF@google.com>
Subject: Re: [PATCH v4 27/30] KVM: x86: Add KVM_VCPU_TSC_EFFECTIVE_FREQ attribute
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
	Shuah Khan <skhan@linuxfoundation.org>, Thomas Gleixner <tglx@kernel.org>, 
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	"H. Peter Anvin" <hpa@zytor.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross <jgross@suse.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Paul Durrant <paul@xen.org>, 
	Jonathan Cameron <jic23@kernel.org>, Sascha Bischoff <Sascha.Bischoff@arm.com>, 
	Marc Zyngier <maz@kernel.org>, Joey Gouly <joey.gouly@arm.com>, Jack Allister <jalliste@amazon.com>, 
	Dongli Zhang <dongli.zhang@oracle.com>, joe.jin@oracle.com, kvm@vger.kernel.org, 
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, linux-kselftest@vger.kernel.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d62444/1779470508-AE95FFF4-7F2A958F/0/0
X-purgate-type: clean
X-purgate-size: 494

On Fri, May 22, 2026, David Woodhouse wrote:
> On Fri, 2026-05-22 at 05:49 -0700, Sean Christopherson wrote:
> >=20
> > Oh, that's just an oversight, definitely not intentional.=C2=A0 Easy en=
ough to fix:
>=20
> Want me to roll that into the series? As you eloquently put it the
> other day, what's one more patch...?

I'll send a standalone patch, along with a selftest tweak to verify the fix=
.
It's technically a fix and won't generate any conflicts, no reason to delay=
 it.


From xen-devel-bounces@lists.xenproject.org Fri May 22 17:22:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 17:22:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317162.1586405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQTZY-00059d-3E; Fri, 22 May 2026 17:22:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317162.1586405; Fri, 22 May 2026 17:22:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQTZY-00059U-0I; Fri, 22 May 2026 17:22:08 +0000
Received: by outflank-mailman (input) for mailman id 1317162;
 Fri, 22 May 2026 17:22:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQTZW-00057r-Om
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 17:22:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQTZW-000DgH-50
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 19:22:06 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a1090ab-bab6-0a2a0a5309dd-0a2a4506bc86-16
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 19:22:06 +0200
Received: from [209.85.208.174] (helo=mail-lj1-f174.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a1090bd-7371-0a2a45060019-d155d0aebd3b-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 19:22:06 +0200
Received: by mail-lj1-f174.google.com with SMTP id
 38308e7fff4ca-39394e1e8f3so73366941fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 10:22:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779470525; cv=none;
        d=google.com; s=arc-20240605;
        b=Ejfgr2X/mgtvknTCzA6fOps6avwwAd06VVgu6IHD+XjSC7WtdGWcQoCH+mVs1SP62v
         x173wvpexMA70YCduHtFNcttj8umV6iEEuloRTrkJhNvMCfeWlcPld/6rpYZ6jv0vx8p
         zIDQaELDL2Qg7ppZTi0HDGNkcGUq6H2yPJALGT9RvIUry+Y9cbFbDtaW5uIH+rb5aqDa
         XQ+LazeyZdy4T078gIg7J9061xiU39Vv+nQDcENxP4sLh8SclDKqvgctjItH6eyvBwzd
         YVdLXWQSVH1qe5blrN1bNxsk58jhAPz4iUSG/hyd3wJhZ3mSwHJTmTHz4Q+CPTYwxOZB
         2BUw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=SllpBOG4I8HIjH+P8zdU6RFQYgr0es/ndiJmyiv+G6E=;
        fh=074dSOZR2TjZuH9KX7pMcX1QOxphcb/LlKcediamujk=;
        b=MsubFfZgxRRaeh5bdzYsRvzFLexN7jTMBpJrrRrtNCnPSVJUdMKpdlgPLHWwrNVIAM
         MGyJ4SAFkDNvAx5gTJDGyUSKJjJO8IdDOowPwb6nCBA82xHk593NkjBo1ZSGFqiFQAWH
         J1SCNocGp+QQuN07lX91Kea6C7WUBEohlbJhBfCqDBJeRFeP9E9byiYrqox/6g+84PRr
         6Orq4oJhQT9ltoWDmFrqj14sn80hysEFOOeggvuKw5N+StGEoWEWLiG2YlqYnBoD9U2G
         iwGSsTys8D90KEp20I8+7LDmB7GTK6S0jizy1YXG3jmLU4g0kT2/cfsPMncUnezMUaLD
         kl9g==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779470525; x=1780075325; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SllpBOG4I8HIjH+P8zdU6RFQYgr0es/ndiJmyiv+G6E=;
        b=Lknlu3xnDrZ8OMU3z6yk9auDufAozrvVowFC4VH0HvtL7HYE5wETWRJZsaFlelsuji
         Xm3os5LHBBaN9e+LydZtEz1CpqxfQVNimA1eCPVWoB0cJrbu8R6UCYBQ1PAAmbdsGH3t
         YVywqDbODtDAb7dznd95MkYU2CJVXua/nLgHewDu0/KSV2nlCuvHX884kLpjVJUnmHDD
         lAJVNiN7EjWByVY4pboCV9AyCZz2m+Mu50lCpnIpG6xo759lrccXaZcAxapYzUJ3WIzf
         t7zE6rTwBO02Ow7mXuY/udykUyn/IMJ8vGAq0lyLXBYHWcv0n3tYZXBwyQuqI1WRGLAG
         4LAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779470525; x=1780075325;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=SllpBOG4I8HIjH+P8zdU6RFQYgr0es/ndiJmyiv+G6E=;
        b=PKyl3YuXK5jAL/AZ8KiJWU+mdhpEFfGf3R8ESi5fy/gxV6qUdaL5SA+ImV0hHTvh2F
         dkHjlxLL7GtJbvdR0OkdMCKLFRiI+hZ2jqnaoa0RXkSRoDcD+NjkK4nbBWIvXNlOLLa+
         KtHy0Z96ffTWut+1KXhREdbKx+jA0jKYSObdGBSJbtwBxbQgcrBfAYoGbtbKjwRgZYR2
         KnRwyrSpPVqp1zdJXxguTjnsAXeXzQdJVGS0brcLUpOfA5Pqi5f+SJteTxv4kd+7SuCy
         RlaforMBK8WiGwVsgvDgHCcMlDd+Osh0b7nTMZ8/oZxazI1PMlcaLLqh1FymlaMojOYq
         bNEA==
X-Gm-Message-State: AOJu0YzxmfM2YavRYNtA+KOMdDbKY7kcKsqDFLl/3MNm3rEiudev8smi
	6opaBIIt5BsMUUASpKVcr/gdMJposI55IyMOBITCzVo/gLDd3THKXXoC6Qsc1NlNm0os87eHpGW
	Q5RE5zg2V+bBuUH/qYZXpTUU1QsjFMUU=
X-Gm-Gg: Acq92OHXEaXpzIKOfPjU64kIs9bmTNyXw60CazSLtKbwRaji2G6oqtCO5zgTPpKKQzn
	1VhrnxNwBDcmggznXqiVzNgQ/zOci4VE/cfgRNC8FJcG3VWqDBU2I6qQv11gUWEY8AfJAFtbJtU
	mGVsEDTMamg0wwwy4q/DY5rO+IJxh8BbYV89Xiqr0wSJ1HhJiDg8Sz5E13S5HXocjboodL5tSQb
	+yt3osr4ZY5QmiqrJduN4eB7CcPYQ1c+v0CNknfT8JpntTlRszaAKN/YIPj9kCy/ZzH94WrpoUK
	A3Y7
X-Received: by 2002:a2e:9a16:0:b0:38e:a0a7:d6d9 with SMTP id
 38308e7fff4ca-395d8d0e7d9mr15178421fa.19.1779470525108; Fri, 22 May 2026
 10:22:05 -0700 (PDT)
MIME-Version: 1.0
References: <20260522165238.844649-1-dmukhin@ford.com> <20260522165238.844649-3-dmukhin@ford.com>
In-Reply-To: <20260522165238.844649-3-dmukhin@ford.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 22 May 2026 20:21:53 +0300
X-Gm-Features: AVHnY4LCjaYC3Q_hbLwOlZIBV2uapzaZTHJHPnKp4tv-XOnoSFM3A1g3WyY3KzQ
Message-ID: <CAGeoDV_+t_L2m8NG4JixgdCvG5spwQnp-2e1TtJjE4QzTCAr6g@mail.gmail.com>
Subject: Re: [PATCH v2 2/3] argo: correct logline in ring_unmap()
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
	michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
	christopher.w.clark@gmail.com, dpsmith@apertussolutions.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-16d1c6/1779470526-87B7DD75-1194D071/0/0
X-purgate-type: clean
X-purgate-size: 1141

On Fri, May 22, 2026 at 7:53=E2=80=AFPM <dmukhin@ford.com> wrote:
>
> From: Denis Mukhin <dmukhin@ford.com>
>
> Drop XENLOG_ERR from the logline since argo_dprintk() already injects
> the proper log level indicator.
>
> Also, drop "argo: " prefix, since it is also injected by argo_dprintk()
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v1:
> - dropped duplicate "argo: " prefix
> ---
>  xen/common/argo.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/xen/common/argo.c b/xen/common/argo.c
> index 98a3db7fd070..5da14c929e14 100644
> --- a/xen/common/argo.c
> +++ b/xen/common/argo.c
> @@ -474,7 +474,7 @@ ring_unmap(const struct domain *d, struct argo_ring_i=
nfo *ring_info)
>              continue;
>
>          ASSERT(!mfn_eq(ring_info->mfns[i], INVALID_MFN));
> -        argo_dprintk(XENLOG_ERR "argo: unmapping page %"PRI_mfn" from %p=
\n",
> +        argo_dprintk("unmapping page %"PRI_mfn" from %p\n",
>                       mfn_x(ring_info->mfns[i]), ring_info->mfn_mapping[i=
]);

Reviewed-by: Mykola Kvach <mykola_kvach@epam.com>

~Mykola


From xen-devel-bounces@lists.xenproject.org Fri May 22 17:24:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 17:24:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317174.1586413 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQTcC-0005p4-GU; Fri, 22 May 2026 17:24:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317174.1586413; Fri, 22 May 2026 17:24:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQTcC-0005ox-Dv; Fri, 22 May 2026 17:24:52 +0000
Received: by outflank-mailman (input) for mailman id 1317174;
 Fri, 22 May 2026 17:24:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQTcB-0005op-6j
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 17:24:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQTcA-000E2l-J3
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 19:24:50 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a109123-e002-0a2a0a5209dd-0a2a4509898c-44
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 19:24:50 +0200
Received: from [209.85.167.45] (helo=mail-lf1-f45.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a109162-2497-0a2a45090019-d155a72db81c-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 19:24:50 +0200
Received: by mail-lf1-f45.google.com with SMTP id
 2adb3069b0e04-5a8dc2606a0so8179718e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 10:24:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779470690; cv=none;
        d=google.com; s=arc-20240605;
        b=GhqXVj4o3pcsMM7MQbrVwJtJJ1UylxzoBNt38UuGfacErkcN3Re43D6glbKAhu+iBu
         iuRqJNxro7cByI8MTVK6ALoDeajsaWOb8wWO4CKzqE9n8uYfczjxdZOViCPAFtiwa2tn
         f9bbMveFY4DLZn7TX/L+9PyrFQs2btOc0ZpngBBIN+XyvQUzIbHu0EwmNbewDUVvzmZg
         fXlYokpzhfAOcmP0a7OAw1/Rgequ+jX2s0YkvFxo6kwT7oFE0LAB+BmKjZdOQXhXq5LI
         c/THZseK6n0KYXv7WklLBtyErTq/W/vhkQNVJ80C2b04QNzOUO2CWcmoGfQ1mshym+sB
         I74Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=MZ/vpOKlERU5yi57m5f0o/JHTMWDqUTqTqFJmtCRR9I=;
        fh=074dSOZR2TjZuH9KX7pMcX1QOxphcb/LlKcediamujk=;
        b=P/lVUeDKPbM/o31XToET/tMhz0HHdRYgDb3k4QTU7pjbpLaTHbQz0FrnhdVNdzeMgP
         coXyHhS315Ppxk4Fpp8u7bLKvI1RtDdSQuZmDlEs0A5LJ7qjxPKlSc7l1D7ZItTiFmeD
         Nd6cbRAlYzRWdOdMxJk/IybikppHULV368xfkJi+7VSPlMn/fUIG0uZQgcbzgJJRFqJj
         0p/02vHXXC3GD8tP73IB+XXKikouIgNov2bd+uJ/T7M7J7DEFpUWJUV95iM+F/XHSX4T
         ABfd5ymLUXkyuqfKmnEj6MX4jWyqO47ab2QWAbSeIzl6sHF6rbdZELhsHn8P5CjTcQHy
         0XRQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779470690; x=1780075490; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MZ/vpOKlERU5yi57m5f0o/JHTMWDqUTqTqFJmtCRR9I=;
        b=af8Lsg88QUpdFda/qcAoeOavkg1HkV56HEOwj4u9iKTS4ZP5UsT/vBVn0vNmkI+Lbe
         mfNMbtAOK49C04g0KcYZ4xoGsokMgJ1D/D1bqu8imeH6mK5qqROP+Hcln3mfhdlZYZhB
         QXcsuNuNE9lB6NyVXpnkAt9pd4VJBNu2pmqEKK/fOdSg+GEpxMwmNPdzXEiHliFx+7Uf
         UlxL6rTGT1ucATyTaqpY0fArmOvjiva7gNw3BBjtAslfY75yiQ97R8VSKUlIVkFj6B56
         49dQA0I4Uo5WyZXrTsAsmTIKhSzkqqj9jI/CV1ixv+v+fU95cOxg1Uyu/8UBrPBBsr2N
         4EAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779470690; x=1780075490;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=MZ/vpOKlERU5yi57m5f0o/JHTMWDqUTqTqFJmtCRR9I=;
        b=R1JHPAxepqh+zzseo0YLZkFFFg0ooLQs+34+YBr/2sxsz5pUGhmIXq1LOmCntJqyDS
         8gMFPSEpZN8ZKk8vSqUENCTMhinDoFNjzrkQn75PK0DuoCxnS7IpLLDSEK85/9b5Vrpv
         coEa94t7EoPBYZ3TJ+zFBVzPfhiWzeXZe5Vw4Shdgu99BKDaKNKvHKI8LOzBn2bUlxr7
         KWpaUJPC7rDdGbz9p433yWQPQBFPsYqKaPN14kh3oaH0KoIADTyEc4v1jHSVftRDFGNc
         7SyAHiqYMQiCM2577WU/FE3We7ymFUmLnlX0HwvRNPXNy7GORFSDX2djnCOgQJVEBsar
         5Jxw==
X-Gm-Message-State: AOJu0Yxux0huYdiGB5a2fhLlqYFNqjr9bZ5mOfIvsQJd+UpjrAlKbaJG
	j9FUn40eAdlkDnuBBh/lOksXjy3gY8Dcrj8y13n3k2jsGQrMKE3duandVyk5U/VLQ5QB3T2t9AN
	d8taXQUQdonRCtNk+BZJwFL/9CC55BXQ=
X-Gm-Gg: Acq92OEvaU8H5h04Lkzgz1Ts7Ay0TujrDAvBJHfJrpovpxp0iVXZxZNclkePDGSMlmi
	GaN/TFEtBvjjlx6UyYSeaQn1eVujB7RROvvlcP1S+vnST/O33oEE5yCtX33ka2dGQ3jKvJ5gS2f
	CQQg8O3coEFLy4w4Yf15/cTKcGXWJy2oT28Z9MRO1WFsOP7UHF30ML18FZDojdSxn1B1lQsWM+V
	hdEvYLVu9aKE7Xsw2OhvcRFEWc/B6EWjkE2sHQZthS3/Umk9fXj/JOx38lFcfn53I2W07WqXqb9
	D1FshR7+6azQjnU=
X-Received: by 2002:a05:6512:4890:b0:5a8:f6fd:1cb with SMTP id
 2adb3069b0e04-5aa3238ed6bmr1278467e87.26.1779470689711; Fri, 22 May 2026
 10:24:49 -0700 (PDT)
MIME-Version: 1.0
References: <20260522165238.844649-1-dmukhin@ford.com> <20260522165238.844649-4-dmukhin@ford.com>
In-Reply-To: <20260522165238.844649-4-dmukhin@ford.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 22 May 2026 20:24:38 +0300
X-Gm-Features: AVHnY4LZG7Lq1STBvtGuZVJT0hUQ163E5IgE3WCEme_ERWExTirtVIFpbQBnVSY
Message-ID: <CAGeoDV_CqYCM0r1QAgGxdaxcj5rJ3VeXAuv_-_iUt+ygmPk1Kg@mail.gmail.com>
Subject: Re: [PATCH v2 3/3] argo: drop argo prefix from argo_dprintk() calls
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
	michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
	christopher.w.clark@gmail.com, dpsmith@apertussolutions.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-bad1c0/1779470690-8B790A53-7EE86066/0/0
X-purgate-type: clean
X-purgate-size: 2561

On Fri, May 22, 2026 at 7:53=E2=80=AFPM <dmukhin@ford.com> wrote:
>
> From: Denis Mukhin <dmukhin@ford.com>
>
> argo_dprintk() prefixes all log lines with "argo: " automatically.
>
> Remove duplicate prefixes from log messages in the Argo module where
> applicable.
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v1:
> - new patch
> ---
>  xen/common/argo.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/xen/common/argo.c b/xen/common/argo.c
> index 5da14c929e14..ffa1f43437ab 100644
> --- a/xen/common/argo.c
> +++ b/xen/common/argo.c
> @@ -1467,7 +1467,7 @@ find_ring_mfns(struct domain *d, struct argo_ring_i=
nfo *ring_info,
>      if ( ring_info->mfns )
>      {
>          /* Ring already existed: drop the previous mapping. */
> -        argo_dprintk("argo: vm%u re-register existing ring "
> +        argo_dprintk("vm%u re-register existing ring "
>                       "(vm%u:%x vm%u) clears mapping\n",
>                       d->domain_id, ring_info->id.domain_id,
>                       ring_info->id.aport, ring_info->id.partner_id);
> @@ -1527,7 +1527,7 @@ find_ring_mfns(struct domain *d, struct argo_ring_i=
nfo *ring_info,
>      {
>          ASSERT(ring_info->nmfns =3D=3D NPAGES_RING(len));
>
> -        argo_dprintk("argo: vm%u ring (vm%u:%x vm%u) %p "
> +        argo_dprintk("vm%u ring (vm%u:%x vm%u) %p "
>                       "mfn_mapping %p len %u nmfns %u\n",
>                       d->domain_id, ring_info->id.domain_id,
>                       ring_info->id.aport, ring_info->id.partner_id, ring=
_info,
> @@ -1741,7 +1741,7 @@ register_ring(struct domain *currd,
>          list_add(&ring_info->node,
>                   &currd->argo->ring_hash[hash_index(&ring_info->id)]);
>
> -        argo_dprintk("argo: vm%u registering ring (vm%u:%x vm%u)\n",
> +        argo_dprintk("vm%u registering ring (vm%u:%x vm%u)\n",
>                       currd->domain_id, ring_id.domain_id, ring_id.aport,
>                       ring_id.partner_id);
>      }
> @@ -1781,7 +1781,7 @@ register_ring(struct domain *currd,
>              goto out_unlock2;
>          }
>
> -        argo_dprintk("argo: vm%u re-registering existing ring (vm%u:%x v=
m%u)\n",
> +        argo_dprintk("vm%u re-registering existing ring (vm%u:%x vm%u)\n=
",
>                       currd->domain_id, ring_id.domain_id, ring_id.aport,
>                       ring_id.partner_id);

Reviewed-by: Mykola Kvach <mykola_kvach@epam.com>

~Mykola


From xen-devel-bounces@lists.xenproject.org Fri May 22 17:37:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 17:37:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317186.1586423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQTo8-0007uI-IU; Fri, 22 May 2026 17:37:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317186.1586423; Fri, 22 May 2026 17:37:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQTo8-0007uB-Er; Fri, 22 May 2026 17:37:12 +0000
Received: by outflank-mailman (input) for mailman id 1317186;
 Fri, 22 May 2026 17:37:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQTo7-0007sm-9X
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 17:37:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQTo6-0033VM-Lb
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 19:37:10 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a109446-bab6-0a2a0a5309dd-0a2a450abc5a-0
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 19:37:10 +0200
Received: from [209.85.208.172] (helo=mail-lj1-f172.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a109446-56b3-0a2a450a0019-d155d0aca581-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 19:37:10 +0200
Received: by mail-lj1-f172.google.com with SMTP id
 38308e7fff4ca-392445f11c5so80296411fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 10:37:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779471430; cv=none;
        d=google.com; s=arc-20240605;
        b=c/ldT4wml59Cd/gJmYbcdT9apHRmLxmNdrGCZ4JPzp6UVfHRM0sOYD0IWVkdrjhYNR
         EhhT//5y2gpQ4SHUSmaLha0GTwNkCy/fO8hCBtcykkID7Vty93pXCf1L4ou8fTgT7odj
         lddF8wWob0NSAzmBXTR1guNxP7rK5YAVOj/oiV22ab7I/EPS0Eq7oopzYNL+wj2wJFZ3
         aYH2h2i+UoxIzOOXQILJPeJ/TevQe7AD9licxaMEKygLU9sEvS/NiXvPpzH+rc8XFjTd
         zXUJ8CXgHsvoe04tDGwaH8bf4eGTU6paB6xEP5oogwi1JUH/5FQ7hDUvmtoOF95OvBPV
         R+Vg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=EH6PVOFaeewIUJtcezD92lpwIOONoCbbNYsaM3c1dWk=;
        fh=074dSOZR2TjZuH9KX7pMcX1QOxphcb/LlKcediamujk=;
        b=bleB0azL1ce0KW8UDjCjkuNXxsyqyhMtw4K4d3rwtDWt6xLqrub+xTaSN/qD+chSbV
         ndF7pQ15wFr8r4poC6LvxPBwnTjk5vYZn9Cqk++097yv9/kW5dXz322XBKxUVieTd7o3
         n/NSkaaTfQJkNHwmJSM9q+05seoDtxlNzH9rgLXENUsQ6eadPQiV/q+VsLadBtJ2kg+a
         wTvNnPuK5moiKfdvC4y6rToocRByurPbhSE0UoU1hEG8ggtzR55A/ckkWyPDZc9CjDDn
         CV18w0qrUQFmCrT3lECSVykxd/J5Z8KomxABE3INYBzUWtoRMA4gQtxuzqQiHPoBc+ZH
         uwag==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779471430; x=1780076230; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EH6PVOFaeewIUJtcezD92lpwIOONoCbbNYsaM3c1dWk=;
        b=SHsJxDnLwtXDdHoWpEQF7cA2GK2hXYOqNvRfg+AwZHG4K17i+ELW7NLZVqmwnCQyQv
         zs70K1V+2NMMzoB7sVGdmRIVa62b/o7hMTlugTuccf3q4at7Fdit0VwAq9wSM/+mEnbp
         KvdMPj8bOMFcVDSNo5i+LoFdmuySuB1BqgElMD6t73dExVv7XX/UruU2WJnMhMCBIjOZ
         O1AGgpt/ffUlWgQ3UUgzVNn2cZzbgWtdrH4ePMhsYh8atwPvOAxPo1noYuLc7BzpRKAL
         CdSZpTCLteEitRnBIe09hEUqoIU02OQQUQnIT9QcuBshDUkwO8QS6BMhitHjyHtdX3bS
         XYtQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779471430; x=1780076230;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=EH6PVOFaeewIUJtcezD92lpwIOONoCbbNYsaM3c1dWk=;
        b=F7X8/bU5aZ6AaENwDJpKYKDUJna8MnFi40/cZdRT5U90s5ULkQLJpgfyLTHd1VoXaH
         3GgErKY+/ASSa4lRfZPxi47Pj9uhnuULQ7wU4H8NCFu0nljC9icH/FR2rYZUSIfMOXPQ
         culq+PkQfIFGk3Xx2X4W6mZ70Ee8cu3ElUWUmzOsWV/tZKUvSxNEE1Ir5hielANhXNX+
         4T8GmqtdDXF4pfEOYNHaslQBv36bkKkspbp71OMrX9Zwq0O7vq+XjxjM8qnLKJt8yWb/
         Z46rgX6bWODtdPpn/gCTq9aQFQEl6/GynoUPPS620qc5iweR9qcxd4chrIwIZbpIplr0
         bN8w==
X-Gm-Message-State: AOJu0Yw/aJ5qISA9bExnlMnWX9CSr/BbVvBbOK102kxJZFAYTIB2Zs05
	q3A3Cn9HPE9W9u3ieA5izShThcojW/0XFPm1yMCxDkdX+Jna44v2a56PSgNNne1UR78IbCxr6tH
	8+4V1PM3/0Qs5sf2xCi1tuEdFckPgIho=
X-Gm-Gg: Acq92OEGJefSt6cxfc884AfVcVqfYN2Jzx6+HFmnKOVZBObHH1+WRsGmmYbou+rk4Lc
	R0fCBi5P67RA9W1E6xTMR+rW3qKwyMBPi3/5WeDiMiII2uGhdsZwAx6WI1XucBRPw2tmc82Twpx
	KIaEBpFRNPKyrmwISMC9cv1/XDqFRWE9lom0ozjw7SlfaFIJXflULiTLZTQ9r48BbpdhP+BY6Qa
	B1GurkLZiuphgaiESFGqe6cBqvv86K2ZJmTP5V5s7GOFpdEwMEgkAidT4ks5n4RZPNUEmjjXbQc
	ogu+
X-Received: by 2002:a05:651c:1606:b0:393:d582:b62a with SMTP id
 38308e7fff4ca-395ca18cb1fmr30060171fa.5.1779471429776; Fri, 22 May 2026
 10:37:09 -0700 (PDT)
MIME-Version: 1.0
References: <20260522165238.844649-1-dmukhin@ford.com> <20260522165238.844649-2-dmukhin@ford.com>
In-Reply-To: <20260522165238.844649-2-dmukhin@ford.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 22 May 2026 20:36:58 +0300
X-Gm-Features: AVHnY4I98UlnjtuyWib8rAZ7GCDQN1axv_MUpaY87z1V9yZj4pMHj-T2JCI1SGk
Message-ID: <CAGeoDV9Q=+qujawck1CBtvAgT7hNxFgy2uLdVyJXrCwNEAsD8A@mail.gmail.com>
Subject: Re: [PATCH v2 1/3] argo: lower level of noisy connection-refused log
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
	michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
	christopher.w.clark@gmail.com, dpsmith@apertussolutions.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-4011c0/1779471430-7D1848B7-62FD9FA7/0/0
X-purgate-type: clean
X-purgate-size: 2111

Hi Denis,

Just one follow-up after sending my Reviewed-by.

The patches look fine to me and my tag still stands, but there are a
couple of side effects worth considering here.

On Fri, May 22, 2026 at 7:53=E2=80=AFPM <dmukhin@ford.com> wrote:
>
> From: Denis Mukhin <dmukhin@ford.com>
>
> Lower the log level of the "connection refused" log line, as it can
> spam the logs when a dom0 service using the Argo hypercall tries to
> communicate with a domain that is still starting up.
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v1:
> - dropped duplicate "argo: " prefix
> ---
>  xen/common/argo.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/xen/common/argo.c b/xen/common/argo.c
> index 28626e00a8cb..98a3db7fd070 100644
> --- a/xen/common/argo.c
> +++ b/xen/common/argo.c
> @@ -2034,10 +2034,9 @@ sendv(struct domain *src_d, xen_argo_addr_t *src_a=
ddr,
>                                          src_id.domain_id);
>      if ( !ring_info )
>      {
> -        gprintk(XENLOG_ERR,
> -                "argo: vm%u connection refused, src (vm%u:%x) dst (vm%u:=
%x)\n",
> -                current->domain->domain_id, src_id.domain_id, src_id.apo=
rt,
> -                dst_addr->domain_id, dst_addr->aport);
> +        argo_dprintk("vm%u connection refused, src (vm%u:%x) dst (vm%u:%=
x)\n",

First, switching from gprintk() to argo_dprintk() means the message will
no longer include the "%pv" context printed by gprintk(), i.e. the
current vCPU/domain context. If that context is still useful for this
message, it may need to be added explicitly.

Second, this also changes when the message is printed. gprintk() is a
regular printk() wrapper with a guest prefix and the requested log level,
while argo_dprintk() is compiled as a no-op unless ARGO_DEBUG is enabled.
So the change is not only lowering the log level from error to debug, but
also making the message depend on ARGO_DEBUG.

This may be intended, but in that case it might be worth mentioning this
in the commit message.

~Mykola


From xen-devel-bounces@lists.xenproject.org Fri May 22 17:48:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 17:48:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317206.1586432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQTyx-00025t-LA; Fri, 22 May 2026 17:48:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317206.1586432; Fri, 22 May 2026 17:48:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQTyx-00025m-HJ; Fri, 22 May 2026 17:48:23 +0000
Received: by outflank-mailman (input) for mailman id 1317206;
 Fri, 22 May 2026 17:48:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+818e15bc21972cf07e63+8307+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 1wQTyu-00025b-2m
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 17:48:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQTyt-00FyvF-A7; Fri, 22 May 2026 19:48:19 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+818e15bc21972cf07e63+8307+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a1096de-5cb7-0a2a0a5109dd-0a2a4506e2a0-8
 for <multiple-recipients>; Fri, 22 May 2026 19:48:18 +0200
Received: from [90.155.50.34] (helo=casper.infradead.org)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+818e15bc21972cf07e63+8307+infradead.org+dwmw2@casper.srs.infradead.org>)
 id 6a1096e1-7371-0a2a45060019-5a9b3222ebf4-3
 for <multiple-recipients>; Fri, 22 May 2026 19:48:17 +0200
Received: from 54-240-197-238.amazon.com ([54.240.197.238]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux))
 id 1wQTyi-0000000APGq-2qF8; Fri, 22 May 2026 17:48:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=casper.20170209 header.d=infradead.org header.i="@infradead.org" header.h="MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=YAQoKoOwWPW3Ak+kECiU/OfUOBm+LsGB0e6nKpQwUrQ=; b=qs3+8WTIScj2GuMSok2qYe/51T
	Es3SyEeuALPxrfXQfv0lJpq9p4zAZC1Orm0IrT6fOVURjfSEkTeRsTP4/pJ/5hlnTxj1VNNSsbH9f
	4RdiaQ5RVEZR/zdpm962XMlJIMn8GVkTlxvnY24QYWy2udJECluNpzjrtObaB4kPQiqjMwDnM7h+c
	AvK3xMyjpw3HXO00IvmvkeTb7sTbfuzjPYX6QPze6hoodNxdG6uRkYK6kkEvzOPn+kZphuDlphArh
	j7M+xvHrheUvY3yszEGwomNWLPI93KZUpI2Zym3PY3b+z8Qt5Nxndl0Cd69DrjL880WQzvszegoVq
	BC/IZCyA==;
Message-ID: <99356a588677e9ff31c1747db1705d9250a2728d.camel@infradead.org>
Subject: Re: [PATCH v4 27/30] KVM: x86: Add KVM_VCPU_TSC_EFFECTIVE_FREQ
 attribute
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
 Shuah Khan <skhan@linuxfoundation.org>, Thomas Gleixner <tglx@kernel.org>,
 Ingo Molnar <mingo@redhat.com>,  Borislav Petkov <bp@alien8.de>, Dave
 Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, "H. Peter Anvin"
 <hpa@zytor.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross
 <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Paul
 Durrant <paul@xen.org>, Jonathan Cameron <jic23@kernel.org>, Sascha
 Bischoff <Sascha.Bischoff@arm.com>, Marc Zyngier <maz@kernel.org>, Joey
 Gouly <joey.gouly@arm.com>, Jack Allister <jalliste@amazon.com>, Dongli
 Zhang <dongli.zhang@oracle.com>, joe.jin@oracle.com, kvm@vger.kernel.org, 
 linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, 
 xen-devel@lists.xenproject.org, linux-kselftest@vger.kernel.org
Date: Fri, 22 May 2026 18:48:07 +0100
In-Reply-To: <ahCQluJj59uWlDAF@google.com>
References: <20260509224824.3264567-1-dwmw2@infradead.org>
	 <20260509224824.3264567-28-dwmw2@infradead.org>
	 <3ad6cd109480772ade3c11f23b9c1d7a9855d67e.camel@infradead.org>
	 <ag-Hf2liLSX9q0rS@google.com>
	 <ab84153e33fbe7c25667f595c56b310d4d5a93ef.camel@infradead.org>
	 <ahBQ7mXNaTtouT3C@google.com>
	 <c4b498c401287477402ddd60a0120b0c5a9bf8d3.camel@infradead.org>
	 <ahCQluJj59uWlDAF@google.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-FXtb7qac/xWXftlRSmGM"
User-Agent: Evolution 3.52.3-0ubuntu1.1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by casper.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-16d1c6/1779472098-84767D75-34FB7D32/0/0
X-purgate-type: clean
X-purgate-size: 7564


--=-FXtb7qac/xWXftlRSmGM
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2026-05-22 at 10:21 -0700, Sean Christopherson wrote:
>=20
> I'll send a standalone patch, along with a selftest tweak to verify the f=
ix.
> It's technically a fix and won't generate any conflicts, no reason to del=
ay it.

Are you suggesting the other 30 should be delayed? :P

--=-FXtb7qac/xWXftlRSmGM
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MDUyMjE3NDgw
N1owLwYJKoZIhvcNAQkEMSIEIHWCQf6H2vEPWYuBwCloSTuyO7AX3zsI3J6vj4CtEZeOMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAGPBf5ghet1ia
gwDUGX/8VKP9auTGhaiXI6TYWUTaZT3tFx5/9lBkJRXM/nzLjMflyL44rQAmLz4JLzYR6F/ZdhnL
rRmqpGwRTcEHwMoXw5YFdYrcUbfvzb2Ar48ve9qIRlWtomOjyL7gN9MotsKuO9t8ueex61WaO+LZ
l65gWgcinXxS2C48EM3oqlTp4zeLmoiU9vPGAL0+2/MhVsSs9cu795y82aKTXZbTIxz4Dh5UerX0
BZ+/YpFDF68QW6T1Jgo8M3v6XCw13Io9lGD5p6M608QxOL0EIO04XH5zQ9CirJWMwZno/KGXVjNR
bEEqn/oZSUCtF7la3aYCB3ZGK70w2QgRXFTfpeJNt32Z1fyhN1+Ef8HCJW0sgTfcwE2+c0RWGq4A
jne/9N6qoz5mIwRYvgFP+6K8quNHCGaf9fdlK7YnX/8h9YkpTwwsVHx5fFP7U2TpbTXrThvggxcU
6vi/eikT29yjpQKL1kU4OrSnJt36OA4oKr23jKjDuA05Sdn3YlK5MzXzyoWPUHMk0TP08n8/MBvn
aRxxgCPLbI1L/7YPGE+ADPKvI9nVGHD4PZvBuJ1KcsqDA/EBNJK3MLMTQDUwNPMXTbnANjFBJFyd
mwJBMxYg/vp7ZFR0y/QPfM6XrDsCut88XXmcZP/Jyq10sfcHogU94Kb9GjhQyegAAAAAAAA=


--=-FXtb7qac/xWXftlRSmGM--


From xen-devel-bounces@lists.xenproject.org Fri May 22 19:08:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 19:08:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317259.1586441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQVDo-00079h-1S; Fri, 22 May 2026 19:07:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317259.1586441; Fri, 22 May 2026 19:07:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQVDn-00079a-UU; Fri, 22 May 2026 19:07:47 +0000
Received: by outflank-mailman (input) for mailman id 1317259;
 Fri, 22 May 2026 19:07:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wQVDl-00079U-SE
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 19:07:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQVDl-000Pt0-4L
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 21:07:45 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a10a93f-5cb7-0a2a0a5109dd-0a2a4502bff2-34
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 21:07:44 +0200
Received: from [209.85.167.48] (helo=mail-lf1-f48.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a10a980-af86-0a2a45020019-d155a730b5d1-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 21:07:44 +0200
Received: by mail-lf1-f48.google.com with SMTP id
 2adb3069b0e04-5a742b8b72eso8925758e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 12:07:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779476864; cv=none;
        d=google.com; s=arc-20240605;
        b=cheVRrRQ+QupfbxZ6OvPzAt2xs5cGkuyQ6rLCE9P0BUQkU8DGKzRXTUwN0W///uOGb
         S1BkvrUpVeQXFeriQI1Mwla1sdF3EvhoNfnTc2FpSrpSr8l07PB4eYsJvTYAx7FhHlOX
         1UwhrTGI6Y6dbJAONh9XA6TS20x8NlpbTGhrspCGaa26y4jNWYgSiXRTsvH3nwmZWWDF
         /q27hc5ia31O5VOgluC7DnyL5k5OJuHio/Z+Bp3JY2kZo4DVMslf2DI6ljoO1GgFN6hH
         4trYU/v9THJ/NzcfLUdqA4o5p7hCAQQH3yMdbQBb++dHiko2JPF9i5VDdZCt2f6+gCMO
         3sMg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=U6FoAH0aljJtCakQnRGXKX2kfxj3ossrbBz1P1HqOv4=;
        fh=9JZxiMpSfuLqiQWy+/Qm7fbwQ+MYsT4GTch2ySqG6FU=;
        b=kN04v0p4bcXxGgtohsc+NjedHp33yL763aL8NljnP4x7q3mjV5+TZmyVR5sXe96whe
         xPrv3VZQrtNxp0qCCEHHG4KwucgEWkILDXe1EfwE70RFOLmPH9xfMCkUQoCPfAg4LmQb
         YLHGCHvi/pd0KtwLwRctirCqa9J4ZbPCphjIWp26IGAJAXT+B9aCl0OTmbQNhtV9ldSH
         9vdwTWWEUtK2sD6D7S5OW3JrfSEOiupvJPoU7R7jMMfOgEwM23HBSq9nAUKhQdBI/0JS
         DA8DMnC1/X36YEyhWuJNalM0tbRDslAJS2pgLoi2IJh5K4u7AdLgdKfaO0Bvsbqkc0jE
         O9wQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779476864; x=1780081664; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U6FoAH0aljJtCakQnRGXKX2kfxj3ossrbBz1P1HqOv4=;
        b=DLykwycayKrXTUjL/6XrOwkhG0aMqL5stKhk9Gi9+pzEsJ34y0o9B9ngfKFGeLe+6p
         Bvk8VVW21WahgGT+tooaAk0h8cN8IaHd2D7wSfn/BmVBvSq3YqaWdDnjqMKWoYRLDIU0
         e0ojosgmSw/ahpnL/5tLmbQEGxhjAuv0DwBCGh0nZd7HiecFu6us7zGPFvjPc8ttQG6F
         dWAkWRMa0jSQCzzLXhEX+M855KqJVHXaVCZXRmCXP/uUgLnrrt+EWqmEkUo2Zffl/akU
         NbQ00UXpkfuUw9GtgMbwaIpA/aikd+W9YiMMDSJR/al3djncQBXuhXMv6nbUVUrTMbgE
         YgWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779476864; x=1780081664;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=U6FoAH0aljJtCakQnRGXKX2kfxj3ossrbBz1P1HqOv4=;
        b=V9WlJGOkGRRaCrYnc5GU3jE52H1w0EGIVleZr5g0hZKWLmbEAWMj63Sa0UqCu6RPC+
         +E89ov1gE6ofBzg1RRtFbGlJilP2iot3ku/zfk9wPUuYWaaH5LZqJ2Zu5uz6/E7BRjpY
         3mcYOJt8a2b3FcnKFRPWdZcy9Nx7vv8ASWap3+dmOTs4jjkWmxK8BlqUfOTB93Tynm8E
         64u5haEjrHgwV3F5rKNyhb8c8T7rkK6loKqsTzybLn0WYgG7cKtAmnxv0k38GIO6eGu/
         N6wrdJkhKTWjzBna9dV1d9AtldVtn3rNb+d07SXXE0tQgU/+KgOsql0xusNuZ6yxkCLc
         1YMA==
X-Gm-Message-State: AOJu0Yy/Wna9AHpfYuyIzG61PxcW+LWx4+wb8CElrIATllsSq61d311q
	mPYM/nQzhH0xmlpo2ZVQgKzlPc0Y64wFUV1MdKdKahyUC5wAr1P2K+xwdbhhhaihhJFi92Cg7nM
	m34MP0oP6qZ4Z0l34aSkPHV34Sm5eyak=
X-Gm-Gg: Acq92OFh/iqYQQc/rrBqJhDr6dReBqv5g49cqVLvPSJqsV4RsmbEaoH9BI0NceJ3oQN
	iCfasfoeeuAH1vpm9IIY2GkHf7MVC80RW1tVVSk7DhCl5LyMMBklsdTY2gS+REAR0/2BFHzRe9/
	z75ktRba433HprMoH3EYiS+rIssroGrdPPAy8JPbAuU2cJwMKmDt7lAzHSmlbxa5O+cfKrAUMde
	sAtgIlUyHSkozCnjPUjOCC91i4t3RP5MbLywcGdX5Pgl9iNf/qIN3zvLBaOoRzBH3SC1/tSSFen
	bEf4ynorOwrRZT8=
X-Received: by 2002:ac2:5586:0:b0:5a3:feed:31cc with SMTP id
 2adb3069b0e04-5aa3238e2e0mr1178927e87.24.1779476863868; Fri, 22 May 2026
 12:07:43 -0700 (PDT)
MIME-Version: 1.0
References: <9ae4f7dd49f5b1f761193adae573c2675c92e883.1779051035.git.mykola_kvach@epam.com>
 <ag+C21L9WoH3ngg8@kraken>
In-Reply-To: <ag+C21L9WoH3ngg8@kraken>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 22 May 2026 22:07:31 +0300
X-Gm-Features: AVHnY4K05jPxIxzwwQEypjICtjEPI7LADla4NVbRq5wr81Ppf-i-h32fAjBypTg
Message-ID: <CAGeoDV8bOXp2CqLEVE5+nOygxxHzXnXRLstsGk2kHhiPMVjb2w@mail.gmail.com>
Subject: Re: [RFC PATCH] device-tree: size first hwdom bank for boot modules
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-720697/1779476864-8256B161-8FE3DBA7/0/0
X-purgate-type: clean
X-purgate-size: 8942

Hi Denis,

Thank you for the review.

On Fri, May 22, 2026 at 1:10=E2=80=AFAM <dmukhin@ford.com> wrote:
>
> Hi Mykola,
>
> The patch looks good!
>
> I would try to add a CI coverage for QEMU aarch64 tests, since QEMU
> supports multiple RAM banks topology.
>
> What do you think?

Sounds good to me. CI coverage would be useful for this case.

The test would need LLC coloring enabled and a low free region that
passes the old 128MB threshold while still being too small for the
kernel, generated DTB and initrd placement. This should be possible to
model in QEMU with suitable reserved-memory holes in the DT.

>
> Also, few remarks below.
>
> On Sun, May 17, 2026 at 11:57:56PM +0300, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > With LLC coloring enabled, the hardware domain memory comes from
> > allocate_hwdom_memory(), not from the fixed direct-map banks used when
> > coloring is off.
> >
> > Commit de99f3263555 ("device-tree: Improve hwdom memory allocation for
> > DMA") made that allocator sort free host regions by ascending address s=
o
> > Dom0 gets DMA-capable low memory first. The first bank filter still onl=
y
> > required 128MB. That can select a low region which is large enough for
> > the heuristic, but not large enough for place_modules() to put the Dom0
> > kernel, generated DTB and initrd contiguously in bank 0.
> >
> > Ask arch code for any additional first-bank size requirement. On Arm,
> > compute it from the actual Dom0 kernel placement, rounded initrd size a=
nd
> > generated DTB size hint. For 64-bit Image kernels, include the text off=
set
> > from the candidate bank start, because the returned requirement is comp=
ared
> > with a bank size measured from that start. The hint covers both the nor=
mal
> > Device Tree path and the minimal DTB created for ACPI boot.
> >
> > Check the first-bank threshold against the size which will actually be
> > assigned to Dom0, after capping the host region by the remaining unassi=
gned
> > Dom0 memory. Otherwise a large host region could pass the test but stil=
l
> > produce a first guest bank too small for place_modules().
> >
> > Use the typed min()/max() helpers for this normal allocation arithmetic=
;
> > MIN()/MAX() are intended for preprocessor-style contexts and skip the t=
ype
> > checking provided by the lowercase helpers.
> >
> > This keeps the DMA-oriented allocation policy from de99f3263555 while
> > preventing a too-small bank 0 from reaching place_modules().
> >
> > Fixes: de99f3263555 ("device-tree: Improve hwdom memory allocation for =
DMA")
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Test/setup notes:
> >
> > The failure was reproduced on a Renesas H3ULCB/R-Car H3 (r8a7795)
> > arm64 board booted through U-Boot/TFTP and using huge initrd.
> >
> > Relevant Xen command line excerpt:
> >   dom0_mem=3D2048M llc-coloring=3Don
> >
> > Boot module layout from Xen:
> >   MODULE[2]: 0x0000000084000040-0x000000008e75d92f Ramdisk
> >   MODULE[3]: 0x00000000a0000000-0x00000000a3ffffff Kernel
> >   MODULE[4]: 0x00000000a4000000-0x00000000a400ffff XSM Policy
> >
> > The initrd is about 168MB. With LLC coloring enabled and the low-addres=
s
> > allocation policy from de99f3263555, Dom0 can receive a 192MB first ban=
k:
> >   d0 BANK[0] 0x00000048000000-0x00000054000000 (192MB)
> >
> > That bank satisfies the old 128MB minimum but is too small for the
> > rounded Dom0 kernel, generated DTB and initrd placement. The observed
> > failure before this patch was:
> >   Panic on CPU 0:
> >   Not enough memory in the first bank for the kernel+dtb+initrd
> >
> > With this patch, the same boot skips the too-small low region for bank =
0
> > and reaches Dom0:
> >   d0 BANK[0] 0x00000057000000-0x00000084000000 (720MB)
> >   d0 BANK[1] 0x0000008e800000-0x000000c0000000 (792MB)
> >   d0 BANK[2] 0x00000500000000-0x00000521800000 (536MB)
> >   d0: extended region 0: 0x48000000->0x54000000
> >   Loading zImage from 0x00000000a0000000 to 0x57000000-0x5b000000
> >   Loading d0 initrd from 0x0000000084000040 to 0x5f200000-0x6995d8f0
> >   Loading d0 DTB to 0x5f000000-0x5f011c80
> >   Linux version 5.10.194-yocto-standard
> > ---
> >  xen/arch/arm/acpi/domain_build.c        |  2 --
> >  xen/arch/arm/domain_build.c             |  8 ++++++
> >  xen/arch/arm/include/asm/domain_build.h |  4 +++
> >  xen/arch/arm/include/asm/kernel.h       |  8 ++++++
> >  xen/arch/arm/kernel.c                   | 35 +++++++++++++++++++++++++
> >  xen/common/device-tree/domain-build.c   | 27 ++++++++++++++-----
> >  xen/include/xen/fdt-kernel.h            |  8 ++++++
> >  7 files changed, 83 insertions(+), 9 deletions(-)
> >
> > diff --git a/xen/arch/arm/acpi/domain_build.c b/xen/arch/arm/acpi/domai=
n_build.c
> > index 249d899c33..db16f7fa94 100644
> > --- a/xen/arch/arm/acpi/domain_build.c
> > +++ b/xen/arch/arm/acpi/domain_build.c
> > @@ -26,8 +26,6 @@
> >  #undef virt_to_mfn
> >  #define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
> >
> > -#define ACPI_DOM0_FDT_MIN_SIZE 4096
> > -
> >  static int __init acpi_iomem_deny_access(struct domain *d)
> >  {
> >      acpi_status status;
> > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> > index 1efddc60ef..226e053c68 100644
> > --- a/xen/arch/arm/domain_build.c
> > +++ b/xen/arch/arm/domain_build.c
> > @@ -115,6 +115,14 @@ int __init parse_arch_dom0_param(const char *s, co=
nst char *e)
> >                               (IS_ENABLED(CONFIG_STATIC_SHM) ?         =
\
> >                                (NR_SHMEM_BANKS * (160 + 16)) : 0))
> >
> > +paddr_t __init dom0_get_fdt_size_hint(void)
> > +{
> > +    if ( !acpi_disabled )
> > +        return ACPI_DOM0_FDT_MIN_SIZE;
> > +
> > +    return fdt_totalsize(device_tree_flattened) + DOM0_FDT_EXTRA_SIZE;
>
> I would invert the condition so it is read more straightforward:
>
>     if ( acpi_disabled )
>         return fdt_totalsize(device_tree_flattened) + DOM0_FDT_EXTRA_SIZE=
;
>
>     return ACPI_DOM0_FDT_MIN_SIZE;

Ack, I will change it.

>
> [..]
> > diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
> > index b72585b7fe..3644663e2f 100644
> > --- a/xen/arch/arm/kernel.c
> > +++ b/xen/arch/arm/kernel.c
> > @@ -128,6 +128,41 @@ static paddr_t __init kernel_zimage_place(struct k=
ernel_info *info)
> >      return load_addr;
> >  }
> >
> > +static paddr_t __init kernel_placement_size(paddr_t load_addr, paddr_t=
 len)
> > +{
> > +    return ROUNDUP(load_addr + len, MB(2)) - load_addr;
> > +}
> > +
> > +paddr_t __init arch_get_min_first_bank_size(struct kernel_info *info,
> > +                                            paddr_t bank_start)
> > +{
> > +    const struct boot_module *mod =3D info->bd.initrd;
> > +    const paddr_t initrd_len =3D ROUNDUP(mod ? mod->size : 0, MB(2));
> > +    const paddr_t dtb_len =3D ROUNDUP(dom0_get_fdt_size_hint(), MB(2))=
;
> > +    paddr_t kernsize;
> > +
> > +#ifdef CONFIG_HAS_DOMAIN_TYPE
>
> Perhaps use `IS_ENABLED(CONFIG_HAS_DOMAIN_TYPE)` to reduce ifdefery?
> My impression that IS_ENABLED() is preferred.

I think the #ifdef is needed here. This code is in the common Arm kernel
path and can still be built for 32-bit Arm, while both the `type` field in
struct kernel_info and DOMAIN_64BIT are only available when
CONFIG_HAS_DOMAIN_TYPE is enabled. Also, the `text_offset` field used in
this branch is only present for ARM_64.

IS_ENABLED() would make the condition a compile-time constant, but the
compiler would still need to parse and type-check the expression in
configurations where those fields/symbols do not exist.

>
> > +    if ( (info->type =3D=3D DOMAIN_64BIT) && (info->image.start =3D=3D=
 0) )
> > +    {
> > +        paddr_t load_addr =3D bank_start + info->image.text_offset;
> > +
> > +        /*
> > +         * The caller compares this value with a size measured from
> > +         * bank_start, so include the text offset before the kernel.
> > +         */
> > +        kernsize =3D ROUNDUP(load_addr + info->image.len, MB(2)) - ban=
k_start;
> > +        return kernsize + initrd_len + dtb_len;
> > +    }
> > +#endif
> > +
> > +    if ( info->image.start =3D=3D 0 )
>
> Here too: invert the condition?
>
>        if ( info->image.start )
>            kernsize =3D kernel_placement_size(info->image.start, info->im=
age.len);
>        else
>            ...

Sounds good to me. CI coverage would be useful for this case.

The test would need LLC coloring enabled and a low free region that
passes the old 128MB threshold while still being too small for the
kernel, generated DTB and initrd placement. I think this should be
possible to model in QEMU by using a suitable DT memory layout, for
example with reserved-memory holes.

~Mykola


From xen-devel-bounces@lists.xenproject.org Fri May 22 19:41:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 19:41:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317281.1586450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQVkX-00052Q-Cq; Fri, 22 May 2026 19:41:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317281.1586450; Fri, 22 May 2026 19:41:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQVkX-00052J-9R; Fri, 22 May 2026 19:41:37 +0000
Received: by outflank-mailman (input) for mailman id 1317281;
 Fri, 22 May 2026 19:41:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wQVkV-00052C-EC
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 19:41:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQVkU-008cgJ-CR
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 21:41:34 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a10b11e-2eae-0a2a0a5409dd-0a2a45059404-38
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 21:41:34 +0200
Received: from [52.101.69.96]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a10b16e-aaa8-0a2a45050019-34654560d123-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 21:41:34 +0200
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by DU4PR03MB10816.eurprd03.prod.outlook.com (2603:10a6:10:58e::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May
 2026 19:41:29 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.21.0048.016; Fri, 22 May 2026
 19:41:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oY9DpL0I9y0b0dxQf7Gv3I9s/u2HOhCwS7z9Dt+ulu8WawWuNUHPNyOFa/plsWbZHgssadSTkWwOA9CP+6m5/BNV5s67uJIOFABRTOo7jOX75QV2XXllGvon859fd39LDd+HpbPnnm3oAnp/S7+96oEkvs5zk46DBUqWJ7IsKHlJeXIeNxsyDSdT5f37L18elIQKfn01lugRFhKsvBHQ+mfEGT2ZexKBjeuTjY1QbVrzZqOEiIf6psbxzcRtQ56L7BrpW86aY587QhpcpyVI2SbeMCzBlMkPHAJAJr04ThuNb8iXY1LYnhSJCMNSNj8bCxI8x7LvEn2xvoKiyLIuYQ==
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=AzlmfAAgr3EPxUJhCev4Z1FWalLvf1q6g2YgVqmnga0=;
 b=jqy2FqHys/Y6pwNiEaaazb8KYjet7j+obH3FePAf5mXlFAoYKkHqMQDylKjMYFWNq66V5ADeaDz11rQCEoywhl6VeMoJ55GnKnW+0kJHBvRWciroO0cYY64Xrf1iHeQJSzt+irlXQ/Wbh7m+BqIk9CwyTyB5shmjKfDix0jpeIvrVkbqrBdal9SUBK34Vy/evnDDlxq+yVsUpHXUKqH0vkHsh1uvrXV6YGxMC27XTN+5A+DmNG868uRnVCHQAjcD/RfFukCFw1AQZ0ZXPtXvaMA+MGsT4EJKLzYNbDeD78PEq1FclqAtw5nabwik+6sSt4LPejp2QtHz9ZHPtyz7yQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AzlmfAAgr3EPxUJhCev4Z1FWalLvf1q6g2YgVqmnga0=;
 b=L2ntnvs+7rIWYyU8tVIlTZ++DMyN2yuKa+k3DXe71MD0/Pc5VWdCSlUAHwvYZxI4y9b3OYvcRAxV5ezs+7S8KzlvmIpEA/q3fXTQdVAqRZCbL9WlucsrCaH7kAHWuI64WtOtf/7ggKd+2qDAAr6cm5x1HuLiRKNQrkOxca3DMw1v1saFYCyusGvoRz9qapiW5XJQ0xnjwDUHk3kY/A70Xfwe6xzzSiW4qH2k9vWgks3VnJPrTuz0/cSW5i4k9Uzdd04WF+m1BgjVr+zerPf9gf4VcIFxaGvrqjKko4Zjxov+KKgPDF/gwK9kQCN/fOXTjJOgH2iiYxL+LdEyBqB1Aw==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] xen/decompress: resolve MISRA R5.5 identifier/macro name
 conflicts
Thread-Topic: [PATCH] xen/decompress: resolve MISRA R5.5 identifier/macro name
 conflicts
Thread-Index: AQHc6V8B/lHbglNK/EOVvgWJnFkvvbYZkMGAgADidwA=
Date: Fri, 22 May 2026 19:41:28 +0000
Message-ID: <4f264b66-2561-4d0e-ad84-9677ba243d01@epam.com>
References:
 <69ef81a2f85b35e6231ae389bf271cad2bbd7dfc.1779394622.git.dmytro_prokopchuk1@epam.com>
 <dc95a208-6721-4735-84af-4a3864e9d468@suse.com>
In-Reply-To: <dc95a208-6721-4735-84af-4a3864e9d468@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|DU4PR03MB10816:EE_
x-ms-office365-filtering-correlation-id: 751049d6-f9de-4221-b359-08deb83a1e49
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|42112799006|376014|22082099003|56012099003|18002099003|38070700021|4143699003|11063799006;
x-microsoft-antispam-message-info:
 +DDPZx9dsskJSqHPh1TI5Usn6qk4w3EI5nYn2PewX4O0KBzBA1MtmYG2lrmom5JQEARaib0SqlPScn3Mwjn1oH1mZI2kED+6SvHbf5hrht11OysJGdlfpKNtuUF05m8236ikX/+40J2edGYQQCMHvTcFM5DkIgplp0SdkGDI/e8ptW/zgEqjif4rW07xl7y74RjXv8yufRLl7R+fZ1Klve/RQtFMqv6p1yNnHGtObDKIBJ92f7Drf6tmkYCSM3eHZa5aD367LBmq/GuMBYmIkqSRi7RHh/WxD/rw/vo0rt00JD6b6EJ1FsB9CkkTp1nVyWAJmB7kXkeo0JJXSYPN7MSzcFXNXzrd1UBPUSoLU7WXvds+OqkMarbVB5CFtvM0kFHra88SyoWUr+smSdecNYTn4ESMrFWHXA8v0LLrauw4OxdG6+gPkzfy//AdeHxKHYRJ/xdDUpdB7albhW7/Vl7Z7KPiRu2Y50luKP+bYkuK4PFTCmQLJQdkxpVGJEQdcrP1mFx3BevA0YbAwT0GU5tR8PdXaJOxadw6/5yqQiCSw1B10eYZbnsAZijp2H4WAUlpCO72/7ehL+pkdZfHIiq1sA1Hxv6L1X92UjOlZ2i/ijrYB2y+bR45fj0gOyI1UPKb7U1pun/ss9ZVzrPqgbVimPeHPV7mAv3rXivk0Sol26pVTvR5xo+fPArtXLJabLbghRS33+cHj1ieAxxPsJkQ00mwFlVzJXUq3hSyRfvRwZzqii5PcE/Q0LZwZ9/8
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(42112799006)(376014)(22082099003)(56012099003)(18002099003)(38070700021)(4143699003)(11063799006);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?N3luaGt0Nkhya1dySFliNnRYQ2c5VXVEcFNINkJIMWtLR3kzRXd6ZVFHZUp3?=
 =?utf-8?B?Ym5PZUlzUXRPUFdmeHN6VzVGRVYxZGpiTkxWZ2QyM0xaZ1hvR25MVUwvYWlW?=
 =?utf-8?B?MkE0RUcrazEyVkVIN0xVdUZpOURuTkNCbUJXVVRiNGZ4YWZhWXgzN2czSzFO?=
 =?utf-8?B?dm80VW5rZjhpY1F6YXdaUXFkNVRjU0lnOXVNTHRSQ2VLNmdGaHBtWXJZMDFK?=
 =?utf-8?B?OE5JcnR6a0t3akZVOE9LazZXU2gvWGFaWmJSa0pmT1hBZTRtNkJobDlYTytv?=
 =?utf-8?B?UTNLd1AvbnlqWXJFV1Y4b1FaYmhwVDBSWlhzTE5YQTBLQWdZRUdlYW1HdUhE?=
 =?utf-8?B?ZUwxL3U1V29KSDAwemova3RTUElHMlh4N1FYOFNlbmlnLzZyUHJ6K09ScytE?=
 =?utf-8?B?Q3M4aWpoNUU0TllTdXBnN2lwTGdSYndMTTlFQUNydmRLa1NWN0Y4SnJicUtO?=
 =?utf-8?B?ZlRMS1pGTjUxZFByVTRYSlRjZVVoaFpiS0Y2ZkZKSGZmWG1wRmNXQjFiZG9x?=
 =?utf-8?B?bktIY243Y0drc0JSMEZ1Uk9GUUtLNXdpcVpaQTBFanRTWFRuUmNBa0F2WmpI?=
 =?utf-8?B?eEFMLzVuWUN6U2ZGOTFTdEdaTEN3dHBMbEkrYXJabzVPVUFzZXFBMm03ODBa?=
 =?utf-8?B?OFExZ3V5d1pOQWViL2pKdkxpakd4bjUyZkk4aVkySUJRQ2JzdlY0NmJJVW0r?=
 =?utf-8?B?ODZpcjJSSHBaWUNUcVpUN0FqQ1d6a3pvT01FQlhPK3JjU0JYemNZU245QzBh?=
 =?utf-8?B?aC9WQlh1SEQ3c3NMbVRodmhWdXAwOGtXUFJzZ1FzL1UyZWFIOUlMWHZxWWJk?=
 =?utf-8?B?VmN4OTRYYVc0SHlwamJ0OUg1aVVyY0p2bGhUREViSnFyRlNwWWRlUmkvbmp2?=
 =?utf-8?B?Q3MyS2pHa1R5NGxxTjd1VlJ2aVRQZVVabFM3WU1kbnNHTzFFcVM5UnlVeHJm?=
 =?utf-8?B?KzlLYnZuaVJEL2VvbkpuNU93dDlQbFpvWUdsTWxWa0VQNXNXU2tnUElxN1Ay?=
 =?utf-8?B?RE5CU2RNVk5ZcEZOT0tDcDhCMWJjd3oxTTdxOCtBKzBBaGNpeUNHZDVwemVm?=
 =?utf-8?B?ZFhUK3hYcnhmRzVxUk9pczhMMmZnS0swdkswNHRodUNzMG5aVjRLWUFUMzQ4?=
 =?utf-8?B?amJhdUVIRUlqdGFvTlU4YzZySUVwSTk5ekYwN3lRK0Zlci8vR1prNWZpT01s?=
 =?utf-8?B?RVpWL2Ywek9XWkJNYzd5bWc3Z2U4aXBnUStzT2RISWZKU2dpODRZUmsxRHpB?=
 =?utf-8?B?UDg3WUNJMkp4ZlVSRGJRUzYrL2JnTk9GNU5ObThFUVlZWjNteWpCOG55UkxU?=
 =?utf-8?B?WTFvdVhFcElTaXhlUkNRb2xrOERjb2l6eXcyaTg3a2dmRDg5TW1UMWRKV0Fz?=
 =?utf-8?B?VVBWSThIeThNOWNmSHd3cmtIUnB6VnIwblpBb0dYbXZzdHRZU04xZzNiNk5v?=
 =?utf-8?B?N1ErbU0rR0FEejFyZXV6V09sTEorelB5d25udytGNVZZaEhhK3lRbDFzeEFl?=
 =?utf-8?B?SjNLRURIMitTaDVoKzhHZHRhaEl5THBkTllLTU9ua3h0MGVxRmNlekN5OVBC?=
 =?utf-8?B?M2ROa0NBMUU2SFlYSnQ3cXFLR052REpNNVRLUTFCOVlGZURxNkEzazU2VTIz?=
 =?utf-8?B?ZTdMQzI1QUVna25kbVduM2l4WFVkamw5RzJMU0w1T3YrelErL3dEcmNmVVND?=
 =?utf-8?B?NDB4cDNGU0doVzY1NzR2eVgyL2dVaWE3cE9jMkI0TzZGUEdXMi91VFVrcFE3?=
 =?utf-8?B?TmZadFFHSWVmTjRZbWRWbkxsaXgrd0srWGovZHJORW9yazIrVSt5SWFjbGhL?=
 =?utf-8?B?dU1HKzRFQzc2YmRoRjZ3TEQ0UFF2Q0FxNisranFueTMzN20zYkF1aFR5ZHhG?=
 =?utf-8?B?aFQ1WUpMcVpGSng1c3BhVVpuc1p3cExRQW1jVHF2enh5UE4wRXBhbjI4TnNo?=
 =?utf-8?B?MEtIbitabWxaRG5FR0tTeWFsYmVtMnpVclZlcTd2N29uRjRsN0RZMzlhRjRn?=
 =?utf-8?B?NUpKSlRGTDdTeW5ocGdQa2pDYzkzQUluZ0RjcmpGTE9ZbURrdkhqQVJkRmhK?=
 =?utf-8?B?R3ZhOVpsTXI0Q08zOUwvYWdRNWt1RGZCaUxVZWZ3blVmYXN4bDJERXIvK0Ns?=
 =?utf-8?B?aTd0R0tmUFFOSDBmaVg5eTNoY0w4WE9wZE40UHhJMTRicjY2d3Vmd0dTTmpE?=
 =?utf-8?B?Q0RUWWFadVZDVWI4U0U3OFA2L1VRNlo1c0NUS1J2b1Bmd3g2akloU2N1dHlk?=
 =?utf-8?B?WHQwQUhpTVgwdmRKSTJSNE9HNzJqWlVLaGtjcW1XelZKRFlsUDNsT3d4aW5I?=
 =?utf-8?B?Qjh5eW5nd2VXVmhRcVFiRk9FaTF2ZVFDVUtxd0dhV0hLUVViczZqWGZJVlZG?=
 =?utf-8?Q?ZHfz4QzyIhX9dkAI=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <53A5757F6C9FE04BB4F1D4584E16C8E1@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 751049d6-f9de-4221-b359-08deb83a1e49
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 May 2026 19:41:28.8545
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: mKvKdaZbjom2ZFVW32QqavXY7xGirKGk2N7+rjRGwX6dXhpi//B3bmNGxduOQL4rVBxrgnHzTKRqQ9nBefF3ZQh0sETEwpfO9tiG01FpbvY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10816
X-purgate-ID: tlsNG-c201ff/1779478894-E1599443-7EC581D5/0/0
X-purgate-type: clean
X-purgate-size: 2046

SGVsbG8gSmFuLA0KDQpPbiA1LzIyLzI2IDA5OjEwLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24g
MjEuMDUuMjAyNiAyMjoxOCwgRG15dHJvIFByb2tvcGNodWsxIHdyb3RlOg0KPj4gQ29udmVydCAn
bWFsbG9jJyBhbmQgJ2ZyZWUnIG1hY3JvcyBpbiAnZGVjb21wcmVzcy5oJyBmcm9tIG9iamVjdC1s
aWtlDQo+PiB0byBmdW5jdGlvbi1saWtlIGZvcm0uDQo+Pg0KPj4gVGhlIG9iamVjdC1saWtlIG1h
Y3JvcyAnI2RlZmluZSBmcmVlIHhmcmVlJyBwZXJmb3JtIHVuY29uZGl0aW9uYWwgdGV4dA0KPj4g
cmVwbGFjZW1lbnQsIGNhdXNpbmcgY29uZmxpY3RzIHdpdGggc3RydWN0IGZpZWxkICdmcmVlJyBp
biAncGFnZV9pbmZvJw0KPj4gdW5pb25zLiBGdW5jdGlvbi1saWtlIG1hY3JvcyBvbmx5IG1hdGNo
IHdoZW4gZm9sbG93ZWQgYnkgcGFyZW50aGVzZXMsDQo+PiBhbGxvd2luZyAnZnJlZScgdG8gYmUg
dXNlZCBib3RoIGFzIGEgbWFjcm8gYW5kIGFzIGEgc3RydWN0IGZpZWxkIHdpdGhvdXQNCj4+IGNv
bmZsaWN0cy4NCj4gDQo+IEF0IHRoZSBzYW1lIHRpbWUgZnVuY3Rpb24tbGlrZSBtYWNyb3MgY2Fu
bm90IGJlIHVzZWQgdG8gZS5nLiBwYXNzIHRoZQ0KPiAodW5kZXJseWluZykgZnVuY3Rpb24gcG9p
bnRlciB0byBhIGZ1bmN0aW9uLiBMaWtlbHkgdGhlcmUgYXJlbid0IGFueQ0KPiBzdWNoIHVzZXMg
aGVyZSwgYnV0IGltbyB0aGlzIGFzcGVjdCBuZWVkcyBjb3ZlcmluZyBpbiBwYXRjaGVzIGxpa2UN
Cj4gdGhpcyBvbmUuDQpJIHdpbGwgc2VhcmNoIHRocm91Z2ggdGhlIFhlbiBjb2RlYmFzZSB0aGVz
ZSBtYWNyb3MuDQo+IA0KPj4gQXBwbHlpbmcgZnVuY3Rpb24tbGlrZSBmb3JtIHRvIGJvdGggJ21h
bGxvYycgYW5kICdmcmVlJyBlbnN1cmVzIGNvbnNpc3RlbnQNCj4+IG1hY3JvIHN0eWxlLg0KPiAN
Cj4gTm90IHF1aXRlLCBzZWVpbmcgLi4uDQo+IA0KPj4gLS0tIGEveGVuL2NvbW1vbi9kZWNvbXBy
ZXNzLmgNCj4+ICsrKyBiL3hlbi9jb21tb24vZGVjb21wcmVzcy5oDQo+PiBAQCAtOSw4ICs5LDgg
QEANCj4+ICAgI2luY2x1ZGUgPHhlbi90eXBlcy5oPg0KPj4gICAjaW5jbHVkZSA8eGVuL3htYWxs
b2MuaD4NCj4+ICAgDQo+PiAtI2RlZmluZSBtYWxsb2MgeG1hbGxvY19ieXRlcw0KPj4gLSNkZWZp
bmUgZnJlZSB4ZnJlZQ0KPj4gKyNkZWZpbmUgbWFsbG9jKGEpIHhtYWxsb2NfYnl0ZXMoYSkNCj4+
ICsjZGVmaW5lIGZyZWUoYSkgeGZyZWUoYSkNCj4+ICAgDQo+PiAgICNkZWZpbmUgbGFyZ2VfbWFs
bG9jIHhtYWxsb2NfYnl0ZXMNCj4+ICAgI2RlZmluZSBsYXJnZV9mcmVlIHhmcmVlDQo+IA0KPiAu
Li4gdGhlc2UgdHdvIGluIGNvbnRleHQ/IElPVyBpZiB5b3UgbWVhbiB0byBhY2hpZXZlIGNvbnNp
c3RlbmN5LA0KPiBjb252ZXJ0IHRoZXNlIChhbmQgd2hhdGV2ZXIgZWxzZSwgaWYgYW55dGhpbmcp
IGFzIHdlbGw/DQo+IA0KWWVzLCB0aGlzIG1ha2VzIHNlbnNlIGFzIHdlbGwuDQo+IEphbg0KDQpC
UiwgRG15dHJvLg==


From xen-devel-bounces@lists.xenproject.org Fri May 22 21:47:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 21:47:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317340.1586460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQXiH-0007xe-0w; Fri, 22 May 2026 21:47:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317340.1586460; Fri, 22 May 2026 21:47:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQXiG-0007xX-TO; Fri, 22 May 2026 21:47:24 +0000
Received: by outflank-mailman (input) for mailman id 1317340;
 Fri, 22 May 2026 21:47:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <36M4QagYKCSEPB7KG9DLLDIB.9LJUBK-ABSBIIFPQP.UBKMOLGB9Q.LOD@flex--seanjc.bounces.google.com>)
 id 1wQXiF-0007xR-Gz
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 21:47:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQXiE-000dzV-MD
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 23:47:22 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <36M4QagYKCSEPB7KG9DLLDIB.9LJUBK-ABSBIIFPQP.UBKMOLGB9Q.LOD@flex--seanjc.bounces.google.com>)
 id 6a10ce7c-2eae-0a2a0a5409dd-0a2a4501940e-36
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 23:47:22 +0200
Received: from [209.85.216.73] (helo=mail-pj1-f73.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <36M4QagYKCSEPB7KG9DLLDIB.9LJUBK-ABSBIIFPQP.UBKMOLGB9Q.LOD@flex--seanjc.bounces.google.com>)
 id 6a10cee9-c1f2-0a2a45010019-d155d849ac53-3
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 23:47:22 +0200
Received: by mail-pj1-f73.google.com with SMTP id
 98e67ed59e1d1-367f715cbd0so7708289a91.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 14:47:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1779486440; x=1780091240; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=W3aVsVjXQJZTTHakYlHvO90VBaY9HPHtidD9aUCTMEA=;
        b=Bpb/DzoLb+H6rxsS1jfidDrvsk4BBm1GeI1buX75JYJjKSC36VL4FjngGdUCH7zp/a
         DknDvrin/XpCmV+7ebnfHUW3bsbRURY0lpxhDR/5c9GIqGg65eZ32Tp3x9BD965/st45
         ngLgWy6a7FiB19RTe6iaqo7sYj9zc78p1tRW7ZtXssHSoyX7MEs8heTRX40nN2nyNZiO
         0X7y+Ae9M/ZEZDNVFidzwxlHwEIf2w0ywcSb6lUU5drPEBpCPrL3jSREB3VnXpZvRYZz
         ZD4WMWo91GUeL52Y9MQTGY8NM4d2Eu/rnSgfasZKxfaUX1bJ3NlHrN4El6nLq9KfY6E2
         ckfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779486440; x=1780091240;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=W3aVsVjXQJZTTHakYlHvO90VBaY9HPHtidD9aUCTMEA=;
        b=GgfJ6c91OP8UPnBT7iioNFvqMyfEg6VmimadSkxbh4bx4aseEz5Xzqg5/hSpUHneXk
         3/VwO3u7EB0z0io3zz9MrfqnzJyi7orzYX4/jkqAI8Bg8FcSS4HUCSxDcYecSlOEXpur
         dLIArnK3Uw74Zt3swSqVeIgLcQIfJ28ug3PwFQCrgCu/306EDoDMdNh4QEF5zyH3/NrZ
         FUjV4AyOvjA3qsg9jNwouOzlhE4vhWfnBjkGhoXcODBferL5ggTmFRHpNz8fydjh1b+C
         oDm0GxBpme8z+wo6Tg8j1m7JZ3csqSGWpIGvSDgHBwgZ5ra3gfr/0EdSgv2JWmNIne1v
         SQ7A==
X-Forwarded-Encrypted: i=1; AFNElJ9CThXvSWzL/Er7LXytun5SS/asudNnG6sueuwDkWQ+wMT+V90LhcZeGbgPCxziEV5qutuAl0eDhbs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxb9aBsdoVoddEgLW0xB2G8PnfrdxY+BjME3RYvitNVYCKCkBkz
	cQVwwPDO6QAer+oAXqtoXcyRy3LgSKsiVK3Z07u4Yt05ZdJ7CvbMeTIfezPGZSdTlo255hPSXif
	OpGqP/w==
X-Received: from pgkb12.prod.google.com ([2002:a63:eb4c:0:b0:c82:743c:ea8f])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:3887:b0:369:a359:b181
 with SMTP id 98e67ed59e1d1-36a6787b0dcmr5234805a91.23.1779486440140; Fri, 22
 May 2026 14:47:20 -0700 (PDT)
Date: Fri, 22 May 2026 14:47:19 -0700
In-Reply-To: <99356a588677e9ff31c1747db1705d9250a2728d.camel@infradead.org>
Mime-Version: 1.0
References: <20260509224824.3264567-1-dwmw2@infradead.org> <20260509224824.3264567-28-dwmw2@infradead.org>
 <3ad6cd109480772ade3c11f23b9c1d7a9855d67e.camel@infradead.org>
 <ag-Hf2liLSX9q0rS@google.com> <ab84153e33fbe7c25667f595c56b310d4d5a93ef.camel@infradead.org>
 <ahBQ7mXNaTtouT3C@google.com> <c4b498c401287477402ddd60a0120b0c5a9bf8d3.camel@infradead.org>
 <ahCQluJj59uWlDAF@google.com> <99356a588677e9ff31c1747db1705d9250a2728d.camel@infradead.org>
Message-ID: <ahDO58dKuPt-lj_J@google.com>
Subject: Re: [PATCH v4 27/30] KVM: x86: Add KVM_VCPU_TSC_EFFECTIVE_FREQ attribute
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>, 
	Shuah Khan <skhan@linuxfoundation.org>, Thomas Gleixner <tglx@kernel.org>, 
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	"H. Peter Anvin" <hpa@zytor.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross <jgross@suse.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Paul Durrant <paul@xen.org>, 
	Jonathan Cameron <jic23@kernel.org>, Sascha Bischoff <Sascha.Bischoff@arm.com>, 
	Marc Zyngier <maz@kernel.org>, Joey Gouly <joey.gouly@arm.com>, Jack Allister <jalliste@amazon.com>, 
	Dongli Zhang <dongli.zhang@oracle.com>, joe.jin@oracle.com, kvm@vger.kernel.org, 
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, 
	xen-devel@lists.xenproject.org, linux-kselftest@vger.kernel.org
Content-Type: text/plain; charset="us-ascii"
X-purgate-ID: tlsNG-d62444/1779486442-B454DFF4-1B096409/0/0
X-purgate-type: clean
X-purgate-size: 429

On Fri, May 22, 2026, David Woodhouse wrote:
> On Fri, 2026-05-22 at 10:21 -0700, Sean Christopherson wrote:
> > 
> > I'll send a standalone patch, along with a selftest tweak to verify the fix.
> > It's technically a fix and won't generate any conflicts, no reason to delay it.
> 
> Are you suggesting the other 30 should be delayed? :P

LOL, just acknowledging that it'll take me a minute to page all of that code in.


From xen-devel-bounces@lists.xenproject.org Fri May 22 23:31:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 May 2026 23:31:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317421.1586467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQZKO-0008M8-0N; Fri, 22 May 2026 23:30:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317421.1586467; Fri, 22 May 2026 23:30:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQZKN-0008M1-TV; Fri, 22 May 2026 23:30:51 +0000
Received: by outflank-mailman (input) for mailman id 1317421;
 Fri, 22 May 2026 23:30:50 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <BATV+79b2e557e57d1602ccb1+8307+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 1wQZKL-0008Lv-76
 for xen-devel@lists.xenproject.org; Fri, 22 May 2026 23:30:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQZKK-0083x4-6g; Sat, 23 May 2026 01:30:48 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <BATV+79b2e557e57d1602ccb1+8307+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 6a10e721-bab6-0a2a0a5309dd-0a2a4508b616-10
 for <multiple-recipients>; Sat, 23 May 2026 01:30:48 +0200
Received: from [90.155.92.199] (helo=desiato.infradead.org)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <BATV+79b2e557e57d1602ccb1+8307+infradead.org+dwmw2@desiato.srs.infradead.org>)
 id 6a10e727-63b5-0a2a45080019-5a9b5cc7d0d8-3
 for <multiple-recipients>; Sat, 23 May 2026 01:30:47 +0200
Received: from [2001:8b0:10b:5:5975:12af:289:68ce] (helo=ehlo.thunderbird.net)
 by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat
 Linux)) id 1wQZK5-00000005akR-0Dzw; Fri, 22 May 2026 23:30:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=desiato.20200630 header.d=infradead.org header.i="@infradead.org" header.h="Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:References:In-Reply-To:Subject:CC:To:From:Date"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:Content-Type
	:MIME-Version:Message-ID:References:In-Reply-To:Subject:CC:To:From:Date:
	Sender:Reply-To:Content-ID:Content-Description;
	bh=i6vHdQ5oldCpZlhFDjFmxL304IdV4wnWfln87BM7NM0=; b=OUorWJ8tXcW09mDeCVBA/b8LZW
	hpfXFu+EBYP9IjRj2PiIkEVGfSyH9LRxmdtygDflODeVVijCU7fk7dVBnp1ZLjSeCRFp5cIz2lYZ5
	i0K5bRWjlXK8pJGE+1wWAdEN7ptP8dQ/E7wnmXXsU5b4IldjDJg1OuxzNRa5Dv1ECgoPWc1bQZrYB
	7Qqsy8e6x1CWJOdocrh1neuN+vKOiZ9WJRS268HMjqh6pNxc4N1jCsaKs1K/il0+geGYobFEr/J9E
	zno9xHOsMAknlHjYnXKJQo/D+frfDBzhKu8XKZ8zdUrzZO9dHhegJdo6KdiPhByzmwkvgRjFtEeM+
	BfqIJBCA==;
Date: Sat, 23 May 2026 00:30:33 +0100
From: David Woodhouse <dwmw2@infradead.org>
To: Sean Christopherson <seanjc@google.com>
CC: Paolo Bonzini <pbonzini@redhat.com>, Jonathan Corbet <corbet@lwn.net>,
 Shuah Khan <skhan@linuxfoundation.org>, Thomas Gleixner <tglx@kernel.org>,
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
 "H. Peter Anvin" <hpa@zytor.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Juergen Gross <jgross@suse.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Paul Durrant <paul@xen.org>,
 Jonathan Cameron <jic23@kernel.org>,
 Sascha Bischoff <Sascha.Bischoff@arm.com>, Marc Zyngier <maz@kernel.org>,
 Joey Gouly <joey.gouly@arm.com>, Jack Allister <jalliste@amazon.com>,
 Dongli Zhang <dongli.zhang@oracle.com>, joe.jin@oracle.com,
 kvm@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-kselftest@vger.kernel.org
Subject: =?US-ASCII?Q?Re=3A_=5BPATCH_v4_27/30=5D_KVM=3A_x86=3A_Add_K?=
 =?US-ASCII?Q?VM=5FVCPU=5FTSC=5FEFFECTIVE=5FFREQ_attribute?=
User-Agent: K-9 Mail for Android
In-Reply-To: <ahDO58dKuPt-lj_J@google.com>
References: <20260509224824.3264567-1-dwmw2@infradead.org> <20260509224824.3264567-28-dwmw2@infradead.org> <3ad6cd109480772ade3c11f23b9c1d7a9855d67e.camel@infradead.org> <ag-Hf2liLSX9q0rS@google.com> <ab84153e33fbe7c25667f595c56b310d4d5a93ef.camel@infradead.org> <ahBQ7mXNaTtouT3C@google.com> <c4b498c401287477402ddd60a0120b0c5a9bf8d3.camel@infradead.org> <ahCQluJj59uWlDAF@google.com> <99356a588677e9ff31c1747db1705d9250a2728d.camel@infradead.org> <ahDO58dKuPt-lj_J@google.com>
Message-ID: <277F54CD-9F17-4B67-B575-3A8DDEA09796@infradead.org>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html
X-purgate-ID: tlsNG-c1860d/1779492647-B7D7BDB1-DD550F35/0/0
X-purgate-type: clean
X-purgate-size: 716

On 22 May 2026 22:47:19 BST, Sean Christopherson <seanjc@google=2Ecom> wrot=
e:
>On Fri, May 22, 2026, David Woodhouse wrote:
>> On Fri, 2026-05-22 at 10:21 -0700, Sean Christopherson wrote:
>> >=20
>> > I'll send a standalone patch, along with a selftest tweak to verify t=
he fix=2E
>> > It's technically a fix and won't generate any conflicts, no reason to=
 delay it=2E
>>=20
>> Are you suggesting the other 30 should be delayed? :P
>
>LOL, just acknowledging that it'll take me a minute to page all of that c=
ode in=2E

Hey, it took me more than a year to page it back in :)

I am only teasing; no rush=2E And I will post v5 with some accumulated twe=
aks (from my kvmclock5 branch) soon=2E


From xen-devel-bounces@lists.xenproject.org Sat May 23 02:50:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 May 2026 02:50:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317568.1586477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQcRQ-000572-0n; Sat, 23 May 2026 02:50:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317568.1586477; Sat, 23 May 2026 02:50:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQcRP-00056j-Re; Sat, 23 May 2026 02:50:19 +0000
Received: by outflank-mailman (input) for mailman id 1317568;
 Sat, 23 May 2026 02:50:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wQcRN-00056d-U0
 for xen-devel@lists.xenproject.org; Sat, 23 May 2026 02:50:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQcRN-0016Aq-30
 for xen-devel@lists.xenproject.org; Sat, 23 May 2026 04:50:17 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a11149d-2eae-0a2a0a5409dd-0a2a4508b376-44
 for <xen-devel@lists.xenproject.org>; Sat, 23 May 2026 04:50:16 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a1115e4-63b5-0a2a45080019-94a39217db38-3
 for <xen-devel@lists.xenproject.org>; Sat, 23 May 2026 04:50:14 +0200
Received: from pps.filterd (m0367126.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64MIBMBZ3853570
 for <xen-devel@lists.xenproject.org>; Sat, 23 May 2026 02:50:12 GMT
Received: from ph7pr06cu001.outbound.protection.outlook.com
 (mail-westus3azon11010061.outbound.protection.outlook.com [52.101.201.61])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4eaukqk13m-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sat, 23 May 2026 02:50:11 +0000 (GMT)
Received: from CH0PR03CA0344.namprd03.prod.outlook.com (2603:10b6:610:11a::35)
 by SN7PR16MB5105.namprd16.prod.outlook.com (2603:10b6:806:32d::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sat, 23 May
 2026 02:50:08 +0000
Received: from CH2PEPF0000013E.namprd02.prod.outlook.com
 (2603:10b6:610:11a:cafe::76) by CH0PR03CA0344.outlook.office365.com
 (2603:10b6:610:11a::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.17 via Frontend Transport; Sat, 23
 May 2026 02:50:08 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 CH2PEPF0000013E.mail.protection.outlook.com (10.167.244.70) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Sat, 23 May 2026 02:50:07 +0000
Received: from pps.filterd (m0373461.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64N1JJxS3360427
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 22:50:07 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4eactj9fgm-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 22 May 2026 22:50:07 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id QcR9wbJGcdhUUQcRAwNLGg; Sat, 23 May 2026 02:50:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=Ai/
	UBQTQ1+1jF1sm1fPwgeKCq8TksnMnkKTRAmhwHkE=; b=LIEGmITtsFADyP/IZjq
	TJa6xsKXIBYIa/zHwi9OjDvxvP0bDgnv1A96RatwhtB1U2PtXnSbs3mWNk7NfC/w
	8S9ZiVO7pBZt5zZbXxGWE+JVt3BmH/uBbCvIYz9FMfOQBF2vuSQRqCCqp33fGvmY
	Qo2Tfnl6a0KhkozMBVj8BPrt9AORZhTOr70TM1ZcQK73eCjZi7MLFs3/cTf6Du6D
	Ijz4YLRVrc5x+k8m2LyQvmVD44w1nn0TvWMrqAheIP4RYlLdrjtPDYUTMAUHHONh
	yuH5LFJ5IVrQhkkvFM1DpQNknhO7MmCK2UIpoCkdYuNYCLqMxCf2Gse9LRdnYvS6
	Bcw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=M9GPT76ZnMFZ5yAVN7JYAxDwtjWrSL0GvWvxaMhAS17HRNyxRiyhXSrHMEVqaMiNb5YMO4+YmTbBgxMRf4qrdA4fWDH4HxaLeWyyQXFm3p1VdRstqBoZrFio1XD29zysIfX8KkkHXWK6Trl1hndQ2qIysrx3rDztyefexjsmdnTASngFGePPKFnslng0n/9Q4fvUB7RoVE7gZp+XSK5VXpoFBfNCWuKwkAlSyprdMBrRrUOppKnnx1ihIy7vgPJUg5ZbSu3lmwBlNm1fkEE+txkUxTDZoscaTFLmRAqeLskCWY3QhMG42+hUaYNUuj6XzmL3ckHGHS8Xl8q5I2C/Ug==
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=Ai/UBQTQ1+1jF1sm1fPwgeKCq8TksnMnkKTRAmhwHkE=;
 b=ZduYL5y/OBgFURHHbAaMkkWsBHyc6meGe6b5J5EZK0Y/34WqfZ6rW2VZv2F+GAcY7UN0PggQ7OfhfLbMLgcw3qxXKfGssOZGoJpi1s6NlgFPBDAlscSUZN0ye3MaiUwujy0ZBiXF5nkKLLAF8Ge7SzmLT6IruT9iGlx5DI+pqVOZ0+4PC51W+mcCHvb5/r4pXtEWLtJGZp/ecZFEecTQW0In6hJtcJbONcY5QRhL6NbeImDFw9Fan6JcaV1/D5RlM8VtFJiYxLxrKHv6mfxNK+B6Mh9EQYyBq8l46Uy2m9hjGLC0LORkbYNK0rPCGu7xk9xCWN+e0QRKpkAru0cgXw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ai/UBQTQ1+1jF1sm1fPwgeKCq8TksnMnkKTRAmhwHkE=;
 b=E/S19SMYmFz0pW0av4PWvkDcmbMRAI+4f30wyfZMHHo0cC3j7nk/Tc/BuL2Osw9i2xhaLXlvvQuEgLMwPhz9/M2B/+XkzUxHLospddnzjmQUIcmIttQ1784qnKJUYMSbOZ5D/XJLN8qUch8w5247MOMXA18PoO3Ge2UkPsHRo9s=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:content-type
	:date:from:in-reply-to:message-id:mime-version:references
	:subject:to; s=ppserprodsaar; bh=Ai/UBQTQ1+1jF1sm1fPwgeKCq8TksnM
	nkKTRAmhwHkE=; b=SgYtWAq9KX7Sek3hMjw3bd4Yg62e0UyeWoEjKGnnvXW+5Zw
	teAbXoobJqmRGwJVZCTt8COmZoQCEkLnIiUPg0ZeLi6qDg2HhNfANDSj11MFhe3t
	7MACqFmHUJlXjUfeTobyNiGY8YGOE7w7SVHz5JbUj4u7TYFmo/QpaX8rIIDBwe3w
	TvCUQ56t35qC+Xyf0qOMwjnku0K4JGTlUju9X7elN9gXqD5aHSKBFigSBtWsnitm
	6L3UjPM3Mjx/Ne3sAUM24aUitCNbcnr+TayBFk6XI4pVaDF20r2epeUnxnKKBxJy
	tpXCdakpB9QpCx5WI3ZdXpAhfFmG14RZd+L0/lg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppfserpocford;
	 bh=Ai/UBQTQ1+1jF1sm1fPwgeKCq8TksnMnkKTRAmhwHkE=; b=EJdkgmmVWmKv
	GURS4MunJiYIVcLZlZt0C2yeMp6se+0/WJwGk3g4QPEkjrJ0MAIgOzPEzmXiUjOq
	sTbwPhfa26KK3Y5KeUQA/XZz2RG9TUTBFo37T5y2k77//IPL1IyrVQpRY1C8VITm
	vIyh3Nd4LTvyuBuIslHlTZiOL8X3dZJIDih2znirWYJ/iRO9WKyBDFf2YXnAp9D/
	9eupbxxJzunVQEr9k7Se2Y2ybIJiEF7Fs/DnQphADckO8e3BHwGLte96F2Dqtw+t
	HjYprcFTxeFmUxQebpRn0qP5FWkHYtgLznPiLxrBzWEoMC/0+vbx7fM+f0HJGziH
	Yw0vqP79wA==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: QcR9wbJGcdhUUQcRAwNLGg
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Fri, 22 May 2026 19:50:03 -0700
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: dmukhin@ford.com, xen-devel@lists.xenproject.org,
        andrew.cooper3@citrix.com, anthony.perard@vates.tech,
        jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com,
        roger.pau@citrix.com, sstabellini@kernel.org,
        christopher.w.clark@gmail.com, dpsmith@apertussolutions.com
Subject: Re: [PATCH v2 1/3] argo: lower level of noisy connection-refused log
Message-ID: <ahEV27RO2ClsIrJR@kraken>
References: <20260522165238.844649-1-dmukhin@ford.com>
 <20260522165238.844649-2-dmukhin@ford.com>
 <CAGeoDV9Q=+qujawck1CBtvAgT7hNxFgy2uLdVyJXrCwNEAsD8A@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAGeoDV9Q=+qujawck1CBtvAgT7hNxFgy2uLdVyJXrCwNEAsD8A@mail.gmail.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-23_01,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 bulkscore=0 phishscore=0 malwarescore=0 spamscore=0 lowpriorityscore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605230025
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000013E:EE_|SN7PR16MB5105:EE_
X-MS-Office365-Filtering-Correlation-Id: ebc9dc01-10af-47b0-36c4-08deb876000c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700016|376014|82310400026|22082099003|56012099003|18002099003|11063799006|4143699003;
X-Microsoft-Antispam-Message-Info:
	Yz3DzmnLfLbdU6YB1gI6Q3QmqKZ6BBPxKkA3FsDRFS+5822piltruPKuld3EH4Y/nUVein+x4fXjMG2/3GFKYq2Vs7N29LvduZ9tQYaDhQqZ2e2Z80hVJmNtUkBAnlFbKvlCvPIHP4jOPcVkSmuFTro3phnWc7iEIeM9+WZlt9fYWhtAbZ0ozDnyG74UUcBzpIzcDxRrhKxx40KutHb9LsFSaKYRva2EaKhKescQJn8fsCkryE7Gn4dfPYAnKCJer2faPu3ex2kL8Fuk+t5xakCcNzO7yECFy8f7I6toXnY1hND5fcZua8YAJLIWAiEUa/xEGaehfZXW7byAUDdiJ4ngM+dnIqAnnuvisQ38B1GMxjQDYxrmPhGCLhDVYNyGKnM9cEjymMvtb7OEVk7fJWwe2Za/MecDDtbUNQ6zyO9Efpdpi81bCZxwPFlWvK1R4vk3ih7KCEb3t16k9naG8FNe6JScx57zeOOxqeDUNry6F3372Bt8pFSuub8O0cZsEeVkI0MHt/+LfRctmeXJ8Daxhevz+o4l8X8XUf5QbozhNsz/g313+AuvwAMVqWf8n0W7Z/ydcLnJ40WQYIfB/LEzESDzFW9tYyoKZiREemT0iNBaD4IAxetWrKEUKhUPUgKCW5EijJkRlkqv5xtATn2JItM70E2SBLSVW1EjBPbQPriEHqGbmssQwaU8VuW2pFpVVElbo4P+469jkxniSDGstd2ZFuloyvOKEggti/I=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(376014)(82310400026)(22082099003)(56012099003)(18002099003)(11063799006)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ECvg+FfRw2ZKZprgXdsO+nN0g7OSO1p/qqaIPxR4rXy/OGy0O3mLwiHxox7drTRlJDeI/8mTfx2/grCsFP/4LA7PxTd7+xMHw5M9ElMygGdQReDDEElPBGBJU3Ct7eXHhILcIki9hWPo/mhZ8BVJpqHCo1mDrK2zs//VvlZfTQGLatUw/+MyVt1P96xgQueMngv4CIg3FrG/xyrhXlcbwpVtsFCKXG2CGzjVjLvTciMJKsGxfZ0xdzXa2VEuL+hv76su4c6pJ5y7gvwHvoSSi2TDmU2mSW1Ol0FxffoZZEw2zOLT59Kfychb1RK7gmKeSnUUSAAua9hKu7p9Kx22Peqp1HRwnEWCxBQfwtqaeaGFm2kWt+1InS5EfJbKi/AzmgToPIUC5IKaE61DRoVsgnj4nMRiEfjklMT4Zrjh5/g5AdSl6EfP2A0sg9iG0FKI
X-Exchange-RoutingPolicyChecked:
	GfXgPuR3jf2x0SDdvahnNuF2dMZInso2+wHVXvZGonehdjz0rvOuefJfEI+QeeM+fn3hQixznfUY3+7RhZJLlHz/j6ZpgZs2UkL0lKyTnmZsxvV0NjZDLZm2cDMh6vhNpUUzFGxCR5Gsg/HAS2/+kk7WVEBbtq+9stwevCQmlvc2hAh0YNjHmGDnyAfOYkEPnQvjzCi7+C4gAIjotJTABxhKRGqTvfa4drl8UCDoaspKgGaGw4MTknmmL122VGScrUNoosHgT3pCn33Pb82LYNbOlUEpZQcs8t0mStXoixLpOCJX/m5XbEG/HXI8G2PiT31EEiD63/6SbjN4W0k6cQ==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	lE3QgnK0gkzaAhFJKO3ThCl/jjv3qmta9Ze2B4rKu+eLe8d9BEHE6J+oyh6ngk6BU+s2U0BcBlmTGWjtLvU6Asyp6AO03+McS9QiMSIKX4yxVdMLwcbgsaMm2nnpfxCVVVuRwyE/YxOrmGOFQWK7T+xQulmeJVrF5QYN7iPNhsviD0Qw9VKfQPAJFl/joC8jc2rEx3Q7YgqEUCaNpj+xOVy+Ym1b8yLUcGogdeGCtE5Nuc4v3sal4yIvBjzZUNw3lx8fnHjcNkcVrCw8oyH4TjCVOntp53cNxyBAz7rdGXNEKAlfV0PclKRQn9QKscfWAFg0eYQdFmLcllEvZrwwTVzoBQXPujpD5O40wwKLk6KSnEUco2JRV/Fn09LDv81PWgddpMOvm2EGOp0fycrYUtP0pOK/FD+SkoaPoIc64H6e8HOheyyJMCKkG5ebkvsSREthXhdRC4QVNZGI2Pm1Ay1EdBqrBXt29IQTe1oh7IzTE90NKItZsBKbblaCiuO3BKJ2AjIJSssoxinzKAOqmhr7uBmg/2YbYFpaLsTTdWUfvc9vJuztSCDEF2jXMtRYbD1178Y331KZ6zFzrGcTyrc6ERj/I1EEp2w/gG/pAYXFXjUpeARCc0WI+8zIlojqnFbZJS9jVoUl8AWBCIoA3g==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 May 2026 02:50:07.8203
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ebc9dc01-10af-47b0-36c4-08deb876000c
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000013E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR16MB5105
X-Proofpoint-GUID: ILfQ7Qu9cS3nOp4Q1MXYW3NIKVeuDPx2
X-Proofpoint-ORIG-GUID: ILfQ7Qu9cS3nOp4Q1MXYW3NIKVeuDPx2
X-Authority-Analysis: v=2.4 cv=fvHsol4f c=1 sm=1 tr=0 ts=6a1115e3 cx=c_pps
 a=0p5N1A/s2xr2YPsuh+j7dg==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=-OawqTZBqJjt90xPb8wn:22
 a=cbNQJ9GKAAAA:8 a=-nBlMIZhapJqLXGN05oA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIzMDAyNSBTYWx0ZWRfX/ShwCstWeiuo
 VkANJ7z67nMThVCR7U5VmznZ29uWbIzzAEbLRKzZuBWt/OZTDHcvVK15+Tgzfal9mSp32/uLX9c
 3NctO23D5oh9R2UM7RjTqxF0Qy/5WXN03KXvR4jLykOgfYt1ohWjMgZwlRvC+DE35DFAflByjQI
 2bJzz95X/ohVEIUVojt3hhij889lxUAHtXs0/Q8lZeUtIMvLMJqVCySqxRNEKc+PX/JXc8oMz8K
 s/TfK+/JhrvSp/j6RhBU/CFLbf735bndHGmiAJCM3y3RJPNW7OdN159AKGhMPNXTJ0fR8rjq+kH
 1lzUy/FzV+Gw/CVr28tJT7hnQNqA8LDamablFZSq4DNxpW940PnNmq7oRcwe5n5llX2pvaJ/Ny0
 VhodP5GgTgtJ5bKptraQdaFXMIVTFxiASj/fWup2AF4YrzfBGnOuvzHNvblMC32pSRgW9PY/8oB
 fnxvSwh9iPNuHBBFKOQ==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-23_01,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 spamscore=0 phishscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015
 malwarescore=0 priorityscore=1501 impostorscore=0 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605230025
X-purgate-ID: tlsNG-c1860d/1779504616-C5187DB1-405D449E/0/0
X-purgate-type: clean
X-purgate-size: 2583

On Fri, May 22, 2026 at 08:36:58PM +0300, Mykola Kvach wrote:
> Hi Denis,
> 
> Just one follow-up after sending my Reviewed-by.
> 
> The patches look fine to me and my tag still stands, but there are a
> couple of side effects worth considering here.
> 
> On Fri, May 22, 2026 at 7:53 PM <dmukhin@ford.com> wrote:
> >
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Lower the log level of the "connection refused" log line, as it can
> > spam the logs when a dom0 service using the Argo hypercall tries to
> > communicate with a domain that is still starting up.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v1:
> > - dropped duplicate "argo: " prefix
> > ---
> >  xen/common/argo.c | 7 +++----
> >  1 file changed, 3 insertions(+), 4 deletions(-)
> >
> > diff --git a/xen/common/argo.c b/xen/common/argo.c
> > index 28626e00a8cb..98a3db7fd070 100644
> > --- a/xen/common/argo.c
> > +++ b/xen/common/argo.c
> > @@ -2034,10 +2034,9 @@ sendv(struct domain *src_d, xen_argo_addr_t *src_addr,
> >                                          src_id.domain_id);
> >      if ( !ring_info )
> >      {
> > -        gprintk(XENLOG_ERR,
> > -                "argo: vm%u connection refused, src (vm%u:%x) dst (vm%u:%x)\n",
> > -                current->domain->domain_id, src_id.domain_id, src_id.aport,
> > -                dst_addr->domain_id, dst_addr->aport);
> > +        argo_dprintk("vm%u connection refused, src (vm%u:%x) dst (vm%u:%x)\n",
> 
> First, switching from gprintk() to argo_dprintk() means the message will
> no longer include the "%pv" context printed by gprintk(), i.e. the
> current vCPU/domain context. If that context is still useful for this
> message, it may need to be added explicitly.

I think %pv context is useful for debugging, I will add another small
patch to re-wire argo_dprintk() to gprintk().

> 
> Second, this also changes when the message is printed. gprintk() is a
> regular printk() wrapper with a guest prefix and the requested log level,
> while argo_dprintk() is compiled as a no-op unless ARGO_DEBUG is enabled.
> So the change is not only lowering the log level from error to debug, but
> also making the message depend on ARGO_DEBUG.
> 
> This may be intended, but in that case it might be worth mentioning this
> in the commit message.

Yes, this specific logline should be fine to be compiled out, the error
is propaged back to the caller domain via XEN_ARGO_OP_sendv hypercall.

I will update the commit message.

Thanks!

> 
> ~Mykola
> 


From xen-devel-bounces@lists.xenproject.org Sat May 23 15:26:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 May 2026 15:26:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317800.1586486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQoF2-0008RW-M0; Sat, 23 May 2026 15:26:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317800.1586486; Sat, 23 May 2026 15:26:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQoF2-0008RO-He; Sat, 23 May 2026 15:26:20 +0000
Received: by outflank-mailman (input) for mailman id 1317800;
 Sat, 23 May 2026 13:28:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <len.bao@gmx.us>) id 1wQmPD-0008L3-US
 for xen-devel@lists.xenproject.org; Sat, 23 May 2026 13:28:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQmPD-000qFj-8b
 for xen-devel@lists.xenproject.org; Sat, 23 May 2026 15:28:43 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <len.bao@gmx.us>)
 id 6a11ab6c-5cb7-0a2a0a5109dd-0a2a4504cfde-40
 for <xen-devel@lists.xenproject.org>; Sat, 23 May 2026 15:28:43 +0200
Received: from [212.227.15.18] (helo=mout.gmx.net)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <len.bao@gmx.us>)
 id 6a11ab8a-1dec-0a2a45040019-d4e30f12a199-3
 for <xen-devel@lists.xenproject.org>; Sat, 23 May 2026 15:28:43 +0200
Received: from client.hidden.invalid by mail.gmx.net (mrgmx004
 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MKKZ3-1wm0z323ot-00P9O2; Sat, 23
 May 2026 15:28:39 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=s31663417 header.d=gmx.us header.i="len.bao@gmx.us" header.h="X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.us;
	s=s31663417; t=1779542919; x=1780147719; i=len.bao@gmx.us;
	bh=ymS8BeFp8INvhwUWa1jSmToOQIBb3M3ID9W/KRAJHKM=;
	h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:
	 MIME-Version:Content-Transfer-Encoding:cc:
	 content-transfer-encoding:content-type:date:from:message-id:
	 mime-version:reply-to:subject:to;
	b=hSQEtUOPwLQst/oC9wyCMHg5DjcZlosaIfMFYG4jgXByyKcSi4ydOWNkpPN01yo3
	 AHQwDGreV1UiBrUU6vcf3o9SUHwVcEyWNWSEVvXETHZvZUMmIg4HPU18QG5iqyHH2
	 EBwTTsK86P1wJm+Z+EITylurVpKAghQdjPNwjunFplPz/338OuW6lv7ZSkkPY7kUE
	 9V1gbu8LJl2OPouj3w11rG5Ygu3tLnoG//ZfK70ciidYlVdT/A3af4X9PnHqwXg1Z
	 mV/nGZ2Y15Xi7LWlBl6fRryooXXtNgMc6wmPJNGOwiBrvnaXNuzrq2KFmpaUNgUMi
	 DfrAeP5RfQYHXua5/Q==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
From: Len Bao <len.bao@gmx.us>
To: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Len Bao <len.bao@gmx.us>,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH] xen/mcelog: mark g_physinfo, ncpus and xen_mce_chrdev_device as __ro_after_init
Date: Sat, 23 May 2026 13:28:01 +0000
Message-ID: <20260523132802.25391-1-len.bao@gmx.us>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:t7HjXaVCf2PlNLs94VZfYdtPXzzuo4fK3guIR0L3wY679Op9eoQ
 5/J6G3ykESB15DT8uCb+CiSJqN6FB/mdE00NIYT7TdmkMIoZDOst6YHU36Yqa8Yz+JMlMvc
 NX1Q1Or+JAoreVI1zc4a+dJg9OrGYKbcgcFqkG9MDlQ8bcayWlSiMZrT58b8A7UBXBmZLEl
 xwt/CzWVhGW6oAZ9ND6YQ==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:klaenqraX2c=;D6n+U22RkmtIkymFINMLU5fU5lp
 KmqGewVRIiIe69vJBQQGyDDLo0gyHWzJPOaB0YXl42So0ofxm0Pqi8FybFbCTTTSQCgCMvD71
 eRM7l5GrcGA0xYuS3wYdOXud+farq5HYDkb9WNAtiECyCWmJzBi5AB32FTGVdIt84lFM1bTyO
 NWkWB2MTWYGvZWMBN9Ifobh1v81bdbKMQtrqyUHREu04kwdmhiKhmqtLKZ9i5SxGvUrkTVmgU
 lLd2xnmmVOUikGtRttpg4mJibtOwPXPKQBjNCw6ROAjEDecebX4tD+QUhlmgtaOwzsaBCLdLV
 R09/1MNNQ+D0H4JDUAl75ENbW6nZe6l05m9W59bJA36Z0JIC4gl1wc52SzHTJZanOL7lOjZ0q
 ABQcgpbIGL7ALoDxFA3fdEU6fFF3IujpnqnYHSShKI7YkTrzWWj/4SNiYMS3AFmedfbaYMP6y
 XAn8dc8CHV/bRaWYCJAv+qnv+a9LY5fQGrAOZqvb5YIz9h+xybJtzMlZj3HgfvFVEgCpnvOJ6
 CLIsdbRQvPU3dNABAU3Tw7lrCPTaHKcGQUa4xd732rxNj0H2aaeqSikssxm29Kd7xUoqOI9Pa
 84nDI1vpV22l3p4QiDw3vwWesZVgItTaly3Bjj1WqEzllghw13cDg2AjeRps35u5rxm+BAzXs
 2l4S72Scx6tzikjHT/S2ZfU10YWdBk9/m5boZyAkOil/QoNYl2Gj+MQ+h73eMw3GAH3990Mlg
 nmHWWWxmN0Q6pdRjuQUntHq277YYkRCAcM3bmDAe1W0xA32c5RS4ZrzpjDI4AI6X7dzq7Ukp+
 a4ZnIBndktp2hauneOyqA/36mccSVz36gF/lNigEyDAJ0vsuX0di857L1K5b8xSqHfSf5mjwT
 nH88z8cPXrkhhgHtBN9oWA2Fy82pvCxbhcAFAy1WuLb11OweXtaUibJBaXYf+Cw9+4o8tjt/8
 fHkrjfZ0x3Gacv8GZjSbr93A6P5DGBY8fzI6nisi/POUsKl6qEH64zp1W8XqFXIUqxVBiBzFG
 xDpoQhJhZnVmnWGy9VZ92mu4X+UCQ2aAZKTkLBu9A7xr7lkqStJgxZ6hRUCwVYCKVZ2qy7pcG
 RRW0rMXj/pCToBJnGuCtWg8DUUz/ZFcbFi1OuW9GulzqKS0wFwMqk4JyhFj5pXv+8rOxkTcCS
 L+IOGmiyJzb5QmovMp0CoeSKKxIezF3rEnCvVOG5ALfseX0+evYYs9KTdlL0EIcmLi+GE8ee6
 zTnC3zMWyAFhxteNi3YWhYoxAr5VVmbgEGgWWai9i5Jv7CG4hlKvqbCFsk2WzOF7K/TkIJHyv
 LUG4ssltnC3VtFWuxKLF0rE+qi2hGPuJWbjpE50YQrWCiNmXAUogCWxqoAtjKY0vwJFMFeLfD
 McPMJ/1yAsjLfHEFahIPnE30W8pFcgli6H4kvHwKwLfKEDE9PSrzDD0z6YznmpW3v+nxvGclU
 /sPP/AlXEb1GL/QPkUtboEbVIDr6E+t3Mi9aRBz7Lqkle61GY64iqBROTKRX57i508lMG9UOz
 33uD9RqWxQZcX7Gz2o8uRaiBiGxW2c442tslF1xv2u6FRx908UPL9TEWkAWnEAPRF4u4lDWwe
 bcBuRY1BP6UzL07ARaLBEozv2CTw/WbyXpM4ARXBvS2oJniveWA96lurOgc2ndC3zJXxtZC65
 CKYl20+VCfODGsd/aJRUn0R+v+gT44ZVynJPNnWhZNn4XGB+6VQy8DWirubthwfQoTwyELusj
 gq961LQ5sh0IcJWBHROXbwaB/9VH0FvzUwiXyXuaZiOIfaGQK66HBpUnBVETcBrDtVJafiBmW
 nkvhB02fPzRX1KNnOmrf4MW1WJiqviQr3/Jq6CECBVsZu8lMq2ql0LZQd0M6Pbam9OV8i0SOL
 PIetj9A0O6Gz5ncdzO6xrF9H4kKt4XBlALWxKZhzleFC2LKrjHl74NGIa2jAAnV09CHplTmCE
 qQG40XKet51cy10H/D+V7RTS7PmtvVqsGqcosyDER118lNJOZEiX/Oo3pWNxfvxr+poSeveLx
 sutRsRyi1RJIYlmdkwSd5NN1E7DF1XgnWm8CZPc5dpuNMOpG1he6lEvVWAk3gepf471mHzQKm
 KNOtDTn3ZxI62Oh7UVijJSe7ZUJifd66tsLRzRKNLUc4dmIj2A49AY2e91mjW7i/9G2TM8hcE
 JG7pvrDURudXXsAo1CMyTuPmoTqAtGC3iLqVMmOYxNTvHJ2jbXPzlqvyn5xiimjR6/JEU0YqH
 OdGiOwoNvPdhkjo46/x5hOPzsiOvnTfOZru9Sg12+z/U19QOTjvwMZ/84RUExXJvGfh8YXWjH
 Lodr0kL/7gzjQoq5u4dcThETjSw8p1mpTyX308a0X+xx7jJEOMq7CBoOO0RANRZezse7Z5Dx/
 TLwHESi4uO5jIzTrN8ejTp7DJPcGWLebRWo5/8schdeX20h1Hzt9z4TxCiJxR85SCrLyXj47i
 tq2iNMmJM15sQx/SeI7xnRN5oq9d2BWH+NWMmRk0X6PcxoI4RLU+izkLnaYmo2PV0BuHJKFYp
 POjcHi/8FgYoiZfLRAn/LtirIZ+S/G9m9HmG8Ng8X1JG9pu3BwQh9pppsu9k3+wAdMjewzJ42
 Iv8UQ6rpxZJ4PotTi7ePUWAG64+Y+0azbKiW4By0yMoSiFGJcsKC9aJtBXWzfb3cX7rnsRtVx
 Nxx1cDPWh7DXSo5/iHZ98xRj5rOpM3bkwlOyzV593txEbpctqb/ovd1mQXpF6jhA8HnnY5OHD
 eSKXuyMTgIcFktote++B/WTV29XSVBDO8G+Km+XtrR8LatSaXipl0fh3YdAobMCk1p9W42HZk
 3tHXx0mE4W0zxzZXwoZTqEBQXalF5mHqdKr7gVme0FfxzZhP2gy1TeZgwmITYCRWZoryRLGoI
 DWCju/u2LtWpW0SSRDbZMozuD3rIRiekzjM/lh+vUBrA2sCcpDL9YaZvYdCdd1UG8wawF7Slj
 kYQq0gdKdfpY2TYUDndiYZ60qsg/tswL59zy9vcKdFbUoUiIFHS1m1R39Ej3lPNb5p6znha/j
 gpO9GHugvJOTFU+VmTRpacjE7oLnpiBc/QYYpe9YAIz6mdOuogcscL+sJdt5xC3wk2GzNwMA6
 KlL8h1WxZNp68YsjG/8b6d+KHXmDbqhGK14wosZWlSOwHWhChelNqEN6NjjxMpBlvJAxka1ND
 UuZ5+eFGSlaNYIjoQLmmYhwnoF/bQhEjPNEJRwDrG9Ujr+HNvqVoKeoTOVfzvpFNglgJPcwmO
 Hr1NniSjPE8x/PTfOtIYTkIIIUWzgr4UyMComLyUKKc3HQIgAbipDzd7eb5cEE+tu6hWSw7t/
 XAdaUR4wb/mNw8zHJ+T1Uec+zEspgq32GUr7ep8Kh19u00LsxRqZwvdWv2fgLkJT3orS50Nqo
 mHBEUTHlHpKMu/xHvWMj1GOBCmrrYkSoBhdtpQYC3ay/hhG2+QORAZqV2yblMeWcvxA0wxAE1
 bzg4ighgxNJkQAqoJ+QzmC6n7zo18mPb9SKf0JZC6cLAxXgg2Q8c+FgZ5S1dCHzl4+m5AVujM
 URqq8wBeBSOaulIfPilpayX3pMZMEtLziKBblxfo6J05jujC5cDPjq1UNNFlv7x2ogsyMHuOd
 kqdZUhNC8+eWjvpmF+mW3jo1ZgRp3rQsyEf5NixK6Ap5XdzBUxMmRfU8oNZRSAxjFViIA2OmY
 hA38Q8na5HrzbFZgn5HlURTgNyZDHEDONrPBh3PfwBf7GXKAiXpfFA7Nc/7fv1S96FQ/5bd0J
 JG/mcNP4a7DiExGaQ/Mryc2+iNDyiPCJx8uob/QIhL4y462fN/YlEH8qJZ6ZVJLrbe8FCufXD
 8m7y+fmtkrIFBMT18flUEDRtAiGtKg77mP9ci4k0DUeSj8KXBTVVZzZyZ91LN39CBQ0smT328
 rpb+qNAM1MxM1noM/FLx8jV7gECYcQQ8ByNey5Y4bjMkh3Yc7K5F+mK5+vXZlzR+5l4gMlD5w
 oILlsRbKNVhtYbbUaDBOKz+1nmO6Fng4iop0HKHJUKroi6uXyAVLYaTayjANiapM4s7eYuUaL
 /7KoD7GBNXDQmkE0nXu8PVN+qXHju8pstV9TKVgUkiP5uw3pATFr4SWxpvio4Krg6Lt3tVext
 KKFsVo9rOj5xVzD5Y5mgfEwrgVz5HDcYFmm1NR4JviciL7TYHh2xq/7Y8ts6v/hMFCJIAhSA5
 YhR46ZbVTB1lTSHW9JSw3KE40o1DCR89nDSjolT0Oj/gCqt9toyRkjCfM2l4T7oV6nnFy8X/w
 gpvnLZE3vUBpziHrSKh2odQjj06evCyHJSQF/3AmbTjghqLufDU3UKIHnZAj+eahA7qKZWDyA
 bBoW0b+vVi7DUnEImbysOXOGgPgQGHu6mSCn6pGVp6qWRTGl5zDrrRyMMVUS0nC0vBH/5YTt4
 GogBknQo+7R7hX80cY29IXxAoVvOoQcCrwMbCdtg7uWEFd9aXuYaD0RhuDrS7cDHHQxmqFO6L
 wMFxAdb90e50Vn0qcmPuleNqTnnF5w+HS2s6Tig6+eF39cCjGiz1VYlVhwVOYE7/AGWG7Ls7p
 dFk4yyXAhUZj8my7X61mwB/+bAEG/xYdSbJHwLhYLxRmpwpYoUOQA1XCAUaKdyb76eCOKNhC8
 1kebWWhlVn5BhE9I/QlcsHoNKaZMS0iJWivaPUzCv6qK6pd/zfheP7RtxO2PjuFPtTzi0dMR5
 5spU2qGggMqu8o0QHwPcBLe57VQDdJApOi9tAY8C+K0yZhD5DTUkzi+rdhtwBx0/jq16F3R9p
 MW12gI3spEaa1l/8apAAnUeMP47Qz76AKYnWXPI9OvDDt2Vgmakn8BJ/iehGKH+eOt7tdWG+O
 cExjSg/7isJM2aQ7cxdAn2fmYFwfqESCKhb08qEv/KJMKEzBc+H9I7k+NRrHPlZcXnnikq6ie
 GZiY08AltM9/oPuaJbrmzYEKSvBWMLGhV7vhngL4kt4R7d4oAK5IvFSfYcg8i9JRhsKlTO4Sc
 qVrbUe+bs7eoZzzKffv5mjiwItjIaNsbGIWQIdTj3n+fbc6F3Xi8QjWJKENYooSPPeR/CKd5Z
 sCJNhh/iLU7tE7uyXbg/sfQjse0Kv4vMOE3WYHmC7x7L5u/CcgK1aQIAmV37oyaLoVCR3nHiv
 dVZTKuhvELSXWOnJmrv3BSOroNAYdIRrBHyRmxGe8t1vrShOEQM/tRtcB6SjAhTXOFbkBCXHe
 uFzEAGEN6wzRPWRwcIZlHjIY1t22sCNSoYwdr0QXUpVxvPmNQkb8b6vvv09ONiLwsAk+Mgry6
 aNTAyfY/nTXWFUrWUJ75jvmMW2+VQF13QmwKoxTBykz2EFaG25xNkesn49uItZh+EMcmknkpa
 BTE3TRRahWAh1h7dlzhDoRLGoxV6xFZRNnyMEbTAT347XU0+6UDRME7CGiXItnWNX6z7o7frC
 xXLgcfO5rxtIAeYXbsMeOXJ2MKBkPxRu9jjfMYbI/op2xa2Ajpn9em5Eyf0Bpi1pUyDYLS5h8
 E3BGHa1waitnkROQmp7ZipsTC/90qpScKL64sBxg+PvvpO5QlycbxpJ3dmTO3sQ4omoaBnWeo
 Cq9BcTUYV5vcs7OEHZj+ePz7R65RE4GiWRDZN1cszit6qwJczYxfHtEn+JQJmS/UTXt7LtupV
 3fkVaz1Hfyfn2YPpY0uGQu+HirlhAthro3Ekamc
X-purgate-ID: tlsNG-ebf023/1779542923-41F7D3FF-3989A3A0/0/0
X-purgate-type: clean
X-purgate-size: 1408

The 'g_physinfo' and 'ncpus' variables are initialized only during the
init phase in the 'bind_virq_for_mce' function and never changed. So,
mark them as __ro_after_init.

The 'xen_mce_chrdev_device' variable is initialized only in the
declaration and never changed. So, this variable could be 'const', but
using the 'misc_register' and 'misc_deregister' functions discards the
'const' qualifier. Therefore, as an alternative, mark it as
__ro_after_init.

Signed-off-by: Len Bao <len.bao@gmx.us>
=2D--
 drivers/xen/mcelog.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/xen/mcelog.c b/drivers/xen/mcelog.c
index 53a8720f5..32ab419bb 100644
=2D-- a/drivers/xen/mcelog.c
+++ b/drivers/xen/mcelog.c
@@ -54,8 +54,8 @@
 #include <asm/xen/hypervisor.h>
=20
 static struct mc_info g_mi;
-static struct mcinfo_logical_cpu *g_physinfo;
-static uint32_t ncpus;
+static struct mcinfo_logical_cpu *g_physinfo __ro_after_init;
+static uint32_t ncpus __ro_after_init;
=20
 static DEFINE_MUTEX(mcelog_lock);
=20
@@ -182,7 +182,7 @@ static const struct file_operations xen_mce_chrdev_ops=
 =3D {
 	.unlocked_ioctl		=3D xen_mce_chrdev_ioctl,
 };
=20
-static struct miscdevice xen_mce_chrdev_device =3D {
+static struct miscdevice xen_mce_chrdev_device __ro_after_init =3D {
 	MISC_MCELOG_MINOR,
 	"mcelog",
 	&xen_mce_chrdev_ops,
=2D-=20
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat May 23 15:26:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 May 2026 15:26:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317825.1586489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQoF2-0008UK-S4; Sat, 23 May 2026 15:26:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317825.1586489; Sat, 23 May 2026 15:26:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQoF2-0008TS-Oj; Sat, 23 May 2026 15:26:20 +0000
Received: by outflank-mailman (input) for mailman id 1317825;
 Sat, 23 May 2026 14:08:44 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <len.bao@gmx.us>) id 1wQn1w-0005lQ-Q3
 for xen-devel@lists.xenproject.org; Sat, 23 May 2026 14:08:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQn1v-009dTY-A1
 for xen-devel@lists.xenproject.org; Sat, 23 May 2026 16:08:43 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <len.bao@gmx.us>)
 id 6a11b4b7-e002-0a2a0a5209dd-0a2a4507d9b8-36
 for <xen-devel@lists.xenproject.org>; Sat, 23 May 2026 16:08:43 +0200
Received: from [212.227.15.18] (helo=mout.gmx.net)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <len.bao@gmx.us>)
 id 6a11b4eb-229c-0a2a45070019-d4e30f12ab07-3
 for <xen-devel@lists.xenproject.org>; Sat, 23 May 2026 16:08:43 +0200
Received: from client.hidden.invalid by mail.gmx.net (mrgmx005
 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MtOKi-1xLNBw0one-014WEc; Sat, 23
 May 2026 16:08:39 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=s31663417 header.d=gmx.us header.i="len.bao@gmx.us" header.h="X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.us;
	s=s31663417; t=1779545319; x=1780150119; i=len.bao@gmx.us;
	bh=m/6wiRh+45iMuWPmZC1T+2IYsPa5iUhtnezi3ElcXcE=;
	h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:
	 MIME-Version:Content-Transfer-Encoding:cc:
	 content-transfer-encoding:content-type:date:from:message-id:
	 mime-version:reply-to:subject:to;
	b=BNbDc6kbHoJ7We1V48eQraXYmlC19YQIQXduTDc79On37IYuIYKIjm9Xcp+yD8KF
	 8KtHfEcKbiSDjRghIz1B4hLAsKhiOczuGsD0Q05TScThXv97PdHBuLYAb8mTWzjMM
	 fmZEx+DhjJKKyAuD68v8HJjInXb2PTanu2Ssmpbf9QaS0XlXtsyPGFU+2kRaphpJO
	 7r0dbxtU+86Yl7gIsRlfpAlMmQVOMCeXZ4AiFDbNH18oEwVny5TYBJTimWbPsHw0f
	 UOkVaGVHcY6pU4AK1LOd0sgilecVFMzHY6bg5FHw2kuZpK9rwIDHBknICTMbynnm0
	 VImMI+fX3guvCVsF9A==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
From: Len Bao <len.bao@gmx.us>
To: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Len Bao <len.bao@gmx.us>,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH] xen: constify xsd_errors array
Date: Sat, 23 May 2026 14:08:07 +0000
Message-ID: <20260523140809.30915-1-len.bao@gmx.us>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:veW5s2xvNnaG6CW9XpsLHY7YkjT32wLfhJM8LfU/Nf1dR0rKOxB
 /WpWnPyXGDqcll+i8J2ql0FEkI7lhiLuaOFvXcBh0Am/F+SXtVr9G0nDH0GCrYWI3O37JHF
 6aCsRQGu/0nYd7NCY/DXO7uT0RWsXKC+d5TW/9zS9GBaqtnMa9UgGz5/tYj/J5DodY8cu6f
 9AlhcKpDtiXyX28n2xy3w==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:R/rCFw9OtSQ=;uvNMoV54j5fqSJzLCaROBQzWX6z
 wosOY2+M2hYWx/TLqB632eccJo3OeW1tQPIyHfYzTt+lALU4kxsm9xSF5QLwMbN1cBzCnbpLN
 Y1xTO++PBc2Gx1apT4u28EU6XKiABu8i+iAN1RY1jskZskpISVtK+YGBFjF1Wtrx9o78vxTIx
 vY5oJdPXxWUWSsg6DrlIqrdSB/C7/z+Db5tOW4f+VpONZIwRylKtnj7QuVLCo354Y+P3YsbYE
 a0g4SjhePLuhU+A/vnwkghDTLaiTRluL2fsQjsJsVz3wMmbfGNM2AGmJjgbyOHvZ0xAPm847X
 0kkMpslX2y7UdtUnkC+BIGv/kxXsJkc0HNo7nbDuZr8ogBBiTss/oX88vGvI5anp6YTJUgcGd
 pXNmpcQVlf5b99hM2zxeY1VSxRvRPMt36DV5SwQ6hvYJZrvZhzH2YoiqFLPLxmhHLjUzRQGe2
 MsQuuORxfX2qKLxrjxOoGOvRb1XtxKBOue3626uMbZ+tfUryXHSBoTe7Lez/boUIl5Thcne/z
 yq1YP9UZdPyDnp0e2va5QzwaJIE6morD5MDWrOGoQaklpffn9vcV/WdmV4f2IiqLfozX2JWZZ
 nKT1Heg7IPd+GN4kYRr0XKefPAj9/6HBUP0AGlPDikMvt8vOgOWETNB+oQty9pX6WaslR64p6
 h9WWsFkQOdm2tGvrD9ADFC5I0SAhJDTDQMhnscd8/LSMGUC2eZZgvO8RckN8WMcUAL93uc2ng
 n0Lm5gDOKx7JJovYgU2QBboUo39qQALGSyPpsc5Us6xTprzFot6/EqY2j4aPsKrP17vBCSIVS
 uXw3MWKx8PuqsR9ZbNmiiOdu1amkz+aEhsTcDLTy5Yb4+bo/JrYmSEs3dcE7YMnEKLmtKue4/
 JviHK2Csy7miluhqamiBvHk0CPjG6GNvI1VkhMwyHPboqt81flfn3O2nqiLGGULh8LmhN1YMB
 haBWCSRXElcCea6dx3ELjCaD1MS0xIwhBpnprdUuXWImh2jsft2iwRhs1r8X3I6We9pcDPjsD
 mh+AqceGwg7082+EvgPG/tFB1eVWs/3QYQcSGFotjOFydr9pUF1ycvkTZjWgy79woY8trmG8X
 UPpYPxLNh4SI8cOhmB3xKzw7PYiCypZ5kskYbI0z7nOWuf05JM4KzMyHeBQE+kOUokgHmkuF4
 dGpwpi/uB0tmaVi6wlgbgGlqcawEn+cy9ytb6ZSgZJRHEecH27cKR/6BCjMHNQVTSEtawwzOk
 kMI3RKC0KpAGLZmkzGM8OiwG4jrpBCufcfOO3Fq5NQm/yIXdYmZFKo9V7CtVV5jvtBiapq8Hh
 A/CeNiRbZ2kSy+CS+YfwkwlgHclzAdjunNXivHHHVs8E3YKBAcX1TvFFUNyFE858/D691M8Db
 eOIj3TC43tgug3wY1YDv6aJE5osyqRvSt5odIMhYEYP0UxWOnm3REBLP/FQPcYwOhQC4wnFWJ
 M29trjec1/UJZcTkrnIBdDyXT+4awhJ73wbCeWKXUQdyJqSvypmq0L+wBRf+8ErJitob10MED
 mNZUcE2vP4NUDFXOuYEnDe+xeAs+R3dFMxt24jbb5mjCCCTlDTz9+NQHw9Jrn37uhjd29inY6
 0fKMA+awD7llJpXMaNB/VGCokWpNhceRqR20shgmF9R6RK76PZDKDHBxvr98E8uCsQio/4rtl
 8H9SlhQoQOWmK1O5dAXdxuNjw8t/WCTuTvWYOtIAbgsWrH4qQ874Lyf6522baT6gJlpZ8P2Gw
 Vsp+OIjPQiRzMaJRx+0bW0v+6kMtdiQwe4mC48U7xR95lR7Zl+4ke2dwuJ6xuuG75qq9ihNId
 CjVXx1HeTM7KmRYHamJpo68LDD+tzKOJ0fin9tj3Hvx2s+gbcQ190gVEeFsHMhNO4kHjeeeli
 sekSVRVMIR4DW33CmyJmJF5sIpe7YdSyOzLkNEdvPX2N6Kcf+yAlPgCDe+nEPI/inOGIB879Y
 eFwW6uKq/5kw0C6LneDw+beGhmf4tvmYZ9FiCCDo6b6tFrQYe9tLIpRLXSVz+XC9Crb+szWKv
 p2r99X0K1iUneysEA5+1Hv7TXihqYy8/hQvgk9D4h+8pY4SpHyoVO7Y6zw5ArxdBKMWy3z3Qq
 Nx3dEE9ChQt4S04au84f4s+BY9ziHxh3kUduPKllAdlCQHdAqOFT54cMHkj9KygyZsS2PFuAR
 AubkISqENLwOQxJlu/GCKSO+/Ii5wy7mPIE+Z+4egOrhagA+yCwbvOxBneAvlqddImECxqBu6
 ASyyZEki0ku/PUyx5vD3E5lxcUe6hgUY4FDLIy1LE/Xazr3PaaDxhDwakgsIAQIBHQxWd6Cde
 OTb1kz4y5cYSDz5VUAiRLT4GR1r8Hapa5lYsvQ869Vyse6Ma5sDKtRgw67kt1Mw9OOoEZ9fm/
 zaJjyI1QQrgHgXCJWeSTybQEj0meg/wgkrx3LDwF/Nu/pZyJLVKA/+9H9yGjSsikXw6sw8Kj5
 UZHQI/z4uBq6+AJzjMVHGvqtAwQmzPx/UoQHhf2fRtKueTo8A28s8cwlcCJJyGNrRRq2/EjpH
 pK48YUsEecij5DrJt19GayUfCN55ENZ+4/WaxYa/b9ehhOr/k/BXkMunaqfjTBn0rILvztl3j
 IjG+rPfmG8/CZAn2woL7IDJSqATFkue2hGi1cG8f8aImtG4HHelE9xIOzzsa5Gs++l7CcMsfX
 0QnqBcBRx6CfTG8USP6p+B+Oq5SnGRxZd5UCGV5oMWsMjay1HsmpFXf1SFCEWc34uxfCurcJ0
 UswwmgXQLVxTy4Ke5BDnl6jX6dME91pYV9pJrBbe2AcAB7mmXijHdQ3TZgDd5+fISqwdrvuaj
 P7Ksaqm9SufZawCkeyA2kP4WHCuVYEc8/nTYkk5yXcwCwAILfeYhYUk6ZF0QDj4Z4CrbDWt3x
 FSZ3S1s/LVnkRke5a1I/R/MZnwbj5dPSW9YixSi6pHZsm4x4r9jvFKn4Mn9/OGG1hBoALdKEO
 Zk/+cL7v7bgHSh58Qz2TFgBFWgx6WrasYP7SeXJF9eiDVCKRcFUDvkajGAlAMI33FWcJHwEJC
 D/qcerGsujXSDZp8Pxo0aPKCiJHudF/sW2lruVTdo1nM9KuAe97CVQw3qLCrqseduTK0DK2EV
 hTmLWaBbf43YCAOMYRQkKU9l0nVVAoFFi8MA9pH00Fqpl0lviHi2jWLPfwNhNW7OZvinuo+gP
 RSlVCIQlLGgs4P94nMGtdbkLSvlBCL20H/qT2pLC2M9Gd5VjeIzA1cPa2Tr8nekyXsYvZ/fy9
 UfYFpjtAvFGvLrKMzfGOV9PpmM2iW8Qq9RdoYaijcuQDNnyvtZk2gBKbQp71MzVJ6dGzNsPeO
 NtnSFG/nTiEqMhL3833Pv5HEYw/GXlctbDbDLmByR9ypsTmzihmwMeaQzaogI792adtJEWIq2
 EJzlF6w9+Z25+c69MyBfAYJwzHPlzYymeYKm2+70VioLUCtvPq5byXdaDOF5njOct0EtX2Sz5
 BWlV6ifIVXJsu2cN5bEcO33hnfknefQm9ZwkUTX7QTsO+1TI2UraDnCEPadq+UmoYXSdZ+NRx
 EZrBPhdVHWO2+RyHN6bQ18dLXZKZH5luInh+EKwNwfNc45xvb4gkhSgJv2sGBGpSUIJHjVaE9
 5c9aHS9Xl1fIyBRw+G09GPNl7TTMKP4DbhhbI4T20+2o1kouYwtDpX4J+fobrKTq1eUOOxooi
 tKvZqwKdXdnrrEjY0pdu0KvHVTtoxBfJR/cfYzWjN6GmK+ZUPyFi+yHuWq0RPp+fB4Jw7OzcP
 ceNVC/suBQSRysYudjTiUNnDzNweaAX3byRytjtvngjqZbSgE0b83lAhykomztw2ueU8EmGBF
 ufd+Py6QLtOzhOMG2D4LLuSkvOSb/Qjj92OCVfdA1cHo0s3JQC0/du+YXyujk+GokGAM36lfN
 ztpVeJJ6j6hmjjL0usWdOvFlOAJrhdZBITxI2Lwij11kaYSUKG6Lt8Vh3BmPxeGIy0rNSSBDD
 drubf5+NadcYPHn2V9RUg1vDzDnVb5Tb4/DJcwW8NOLvBn+U6nXLIDm/KCw7dqJlrFPd1PejD
 HXY/yEBSttFZpZ/znDb9WNCEZD+KtEr0W43qAs81BjcV7GvreW00zaVyNxgqOobBybG8x1aeZ
 1Z4ix08cqoU0Wo6ebAdYUalh76aa1yrjQFpBP5uxP2YoPApqGQhfgl2cmy7c36olX/TdXAAZH
 4NYKTLVOJlmPy3JbELbERppTqWpT3WfYg4oqiy0XtRPdfGSmq0iZz3ka6RpBnrE+AKqP7Ou/Q
 9f9rsBYTJCKT2iX6tg4Y9LNgQF+ZguKShG1Rh+kxl5gqQvKkgvsxMAJPdZENxxq0cnaoQMVKZ
 mhrVxAkIAEKp0tyII6eucPXyHC6FI/5Q8p2nMqr1HKBIYaQZkSoszXhEsG+BlV47AJOjVm7es
 PoYkVnucSbyQXYf2ymb9p2ch0nq6dAu4iHLP3oMJLphwRNIhJoAB5ID6ld5EwfhVRLLkmNWRD
 cLMHEzs/j11JQ2YdyeqcCiKCcSxTRW3x4FCQYL8o/eW9Y5qJ4GJ8Y4H4hOM2STp6sLIsBNMU0
 SGUKYIijnK6B9t4+R+E/Aitx+HdW/LM58GI7FAXvPy2hDRbChK54PRRL8L2lZPQx3ebAS4/oo
 2ki8XZyTWGqRbT0tYZffvD3TdunwQVSrPUm/L6ij0+5kxB2ZhZSZLqLzXqnBb8VdqgumAC1vW
 AcMSdCzHi1URat+Ba/pxFeX2VZHpRtZkrsMHXn0WzmsSK77oRpT4l/FAIwwFcjF/pGE3e7r9X
 p9wZV4oSBLm3NlFMWu77ZQrrzwhkJO/eFTZ4c8s3s1wabBo4Atz2mVYy3z5rGbEj6zACtj8ou
 5azsThY2tdcQ6YtvXO7QCsbogYnaMA7joqnGd+HD7njO7sN6MFLDOhCUP8d5Lxl8wqm2zgsKd
 lEeZC8TWtULJtRBFwG+Mz3O1rcyujmIKm3F3d4FoPRFZ7L2hCZNtF/zWYYqNkQ5aQGozxCavo
 +JHudFszmnjSPDNrZNlsqdzVjEbMDee5GHsEuXYAl3soCktW+OEz5FKVqFucBeAFmITGDNyrU
 iVR5UhtGOZKbe8UaRwZ4PRgNkgJFxsX18TNHljgRF2p+/x4KYAaF+dEZZ8C5q/MycZWrXQHbG
 KwVTvGFc6cHqZJUO1Mi4VjLBSNNEqh+mAZusGBoNencL5IWpYc1ats/lKlxYOtHkADqqO2L4H
 szr4X1pE2dobZDxQBYveckXPqA0RX3B3dlj8LyCSn0u0xSOJfmLCqE1F5WZav8+wnIZ7+GRLe
 GKQurU2cpI2JOBxJ2OOPcoNZOfkTaN+PuBypCNIJunypjLufsd9DyQtvkkmBWz9Hu3SD7qGgm
 CKmEZ2wKurApECTp3OEqXJCtxz91rHWx9vV+lIMCvDbdNUdEDRosWBFwapsqTJBEEBqpcH8tf
 ytmA4M/mN3F+gEjZUii3TXdTrKSPwGp2GdiwtNTSfbtjL4y3ev+Urdttx2VFTXvqFTih0Csyp
 RwumlGpG4EwQbVtJaCowSXpQYEjRI8lkltOuZQkoC6Hpkz55tR4pZzn5GB5RqJ/6Bn2vO3jeQ
 CFgIiw==
X-purgate-ID: tlsNG-ef75cf/1779545323-09D6FC48-9DBFD5FA/0/0
X-purgate-type: clean
X-purgate-size: 916

The 'xsd_errors' array is initialized in the declaration and never
changed. So, constify it to reduce the attack surface.

At the same time, use the preferred '__maybe_unused' form over the
'__attribute__((unused))' form.

Signed-off-by: Len Bao <len.bao@gmx.us>
=2D--
 include/xen/interface/io/xs_wire.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/xen/interface/io/xs_wire.h b/include/xen/interface/io=
/xs_wire.h
index b62365478..29d0394b8 100644
=2D-- a/include/xen/interface/io/xs_wire.h
+++ b/include/xen/interface/io/xs_wire.h
@@ -51,7 +51,7 @@ struct xsd_errors
     const char *errstring;
 };
 #define XSD_ERROR(x) { x, #x }
-static struct xsd_errors xsd_errors[] __attribute__((unused)) =3D {
+static const struct xsd_errors xsd_errors[] __maybe_unused =3D {
     XSD_ERROR(EINVAL),
     XSD_ERROR(EACCES),
     XSD_ERROR(EEXIST),
=2D-=20
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat May 23 15:32:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 May 2026 15:32:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317886.1586504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQoLD-0002PK-Fg; Sat, 23 May 2026 15:32:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317886.1586504; Sat, 23 May 2026 15:32:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQoLD-0002PD-CR; Sat, 23 May 2026 15:32:43 +0000
Received: by outflank-mailman (input) for mailman id 1317886;
 Sat, 23 May 2026 15:32:41 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wQoLB-0002P7-8p
 for xen-devel@lists.xenproject.org; Sat, 23 May 2026 15:32:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQoLA-00AJhT-LV
 for xen-devel@lists.xenproject.org; Sat, 23 May 2026 17:32:40 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a11c88e-e002-0a2a0a5209dd-0a2a4507cc3c-2
 for <xen-devel@lists.xenproject.org>; Sat, 23 May 2026 17:32:40 +0200
Received: from [209.85.208.41] (helo=mail-ed1-f41.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a11c898-229c-0a2a45070019-d155d029f0ec-3
 for <xen-devel@lists.xenproject.org>; Sat, 23 May 2026 17:32:40 +0200
Received: by mail-ed1-f41.google.com with SMTP id
 4fb4d7f45d1cf-6877c719cb0so5626209a12.2
 for <xen-devel@lists.xenproject.org>; Sat, 23 May 2026 08:32:40 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-688baf1eb98sm2071609a12.16.2026.05.23.08.32.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 23 May 2026 08:32:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779550360; x=1780155160; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Dfdnec/tY2fvDaoAGv/ul/2NdNqUrerGZ0ygh9oZivk=;
        b=GuE+fNXNkUuSyee1dJevpUs1P4edJZ8qp4S7e1kA8oK5qtJelZEILN4i4d3jl2wt9h
         w4WCq3g+CZfpsRCc+ujzmCh2ge8WppNndBmUHHRnO2QEua2+EcP0lsrQixuZ7r8hLQza
         3a0iO9dGXr+KcoT9q01A5BRns5SkKSHBtXLuLW741mESFlAxHdL2Zbf/OuaefiZZ1VIN
         H8rZJz+Ak6lBM97ZsofQJ9Xflr1PwK8HwpInnmB3XSX4xXUHRepsL4lvDIFXHseWv9Mi
         kV+/e0FqPH+X8liASlf7CM1PhI4jJqYELP0+SkJFITvOIfxRXSyqTkiIJA4tZ4j46dsN
         DG7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779550360; x=1780155160;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Dfdnec/tY2fvDaoAGv/ul/2NdNqUrerGZ0ygh9oZivk=;
        b=h1yx82oZ81Z1R6jAHNASqiWJNj7fSCsRwRbZwT13SKm6P0SdJhM02eSB/k+j7Ylgz0
         819Kpjm1CbsPstpjGUlL/5fWP9Y9o1bKl+7S3uoKjrmDZ2/zBYGDdGd8dcO80KJqv2NV
         9LQ+sfh9LfgJWImKCWJNIs6qq0ZkcfqR8xMSERr1m4eznm2GecKWMQiymN5+Xo/3Or//
         u55z4D3kvIFX04AwIuCpmiLFH7l8JZ+K/BRDNG2EsSkGn4QHms3/PmJda42Om2hb8bOn
         4fnGc/rxp39KLL20ekh69jyBsJjbTrCDvXZxk5qgQ5mVLyomXdLkFMYBTOUS0IQcMsCz
         JHgg==
X-Gm-Message-State: AOJu0YzDXtnG9BP5j6z2ZAXAu6b2VJC5xMa/9jiLg7YPIXKilkzoJxi2
	boADUU5s7DMjmfKA7CBTBr7xlFanmLQsiUyRNpEbd2HQemSCWLmMM1zmPJmjfGiCAmM=
X-Gm-Gg: Acq92OGYch1KFQEXksWYm1vK2ZZ4ULpOu+vIBaXGHsrxPIaVlxo53a/NyrE55JxLYra
	HA3ZXty1eTG6tYFwSqZn1putDbkh22bZPtL5AYgTURKKI/t3wTrhaFKL82R9p4/yOVeBpdixobS
	zm+X7BzAPWp1/YLyLfRcDsJUM3QrnfZnJQcUSTLwFzl2ObAVmIi5YikTBqtk1fgBo5YQJ4hro+9
	XRjdxbMdyyf0w9nTTi01lxeKCVzj/SdnYGzYswBiPZnjC5753okG2Q+f+FP4kg6OPLfpF1ub2tC
	2pLS46xs90ij5H89R/crFZ3qfz5pv6uJJVD1X4cudhdKnNz1ibADR9P8iCg4FaLT1ctc8RorlFY
	Dnh3Hpboqpcaf9Zn5WQOuaZaH28V6DdgZGnwDbHnRAb96JZrvOR6sNR+aaLXxxrhECXhpKzsPbC
	35eV0UkrkYHiBcbR7kPMZBK3is8ahDSK99NdFM3eI/H6L9SHxnST3fHFeXeYjp6N8Bs6DNMd4RV
	PLPSABrhMpWd1ZVSlaJJIcKNo4pXEY/0xHDrdZsagN45unAXc+Fjg==
X-Received: by 2002:a05:6402:540d:b0:67e:4375:a1c9 with SMTP id 4fb4d7f45d1cf-6889c4077fcmr4382000a12.4.1779550359944;
        Sat, 23 May 2026 08:32:39 -0700 (PDT)
Message-ID: <12a89eb8-30d2-4c9e-be31-c1a7a5771c0c@suse.com>
Date: Sat, 23 May 2026 17:32:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: constify xsd_errors array
To: Len Bao <len.bao@gmx.us>, Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20260523140809.30915-1-len.bao@gmx.us>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20260523140809.30915-1-len.bao@gmx.us>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------8VkVqRjBgdJguWEpF4SHnsFd"
X-purgate-ID: tlsNG-ef75cf/1779550360-2156BC48-4BD91C96/0/0
X-purgate-type: clean
X-purgate-size: 6337

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------8VkVqRjBgdJguWEpF4SHnsFd
Content-Type: multipart/mixed; boundary="------------CkdFRziPMRoZouKk60dvzZub";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Len Bao <len.bao@gmx.us>, Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Message-ID: <12a89eb8-30d2-4c9e-be31-c1a7a5771c0c@suse.com>
Subject: Re: [PATCH] xen: constify xsd_errors array
References: <20260523140809.30915-1-len.bao@gmx.us>
In-Reply-To: <20260523140809.30915-1-len.bao@gmx.us>

--------------CkdFRziPMRoZouKk60dvzZub
Content-Type: multipart/mixed; boundary="------------kLrZE973h4CHzz50XUanWPMc"

--------------kLrZE973h4CHzz50XUanWPMc
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMjMuMDUuMjYgMTY6MDgsIExlbiBCYW8gd3JvdGU6DQo+IFRoZSAneHNkX2Vycm9ycycg
YXJyYXkgaXMgaW5pdGlhbGl6ZWQgaW4gdGhlIGRlY2xhcmF0aW9uIGFuZCBuZXZlcg0KPiBj
aGFuZ2VkLiBTbywgY29uc3RpZnkgaXQgdG8gcmVkdWNlIHRoZSBhdHRhY2sgc3VyZmFjZS4N
Cj4gDQo+IEF0IHRoZSBzYW1lIHRpbWUsIHVzZSB0aGUgcHJlZmVycmVkICdfX21heWJlX3Vu
dXNlZCcgZm9ybSBvdmVyIHRoZQ0KPiAnX19hdHRyaWJ1dGVfXygodW51c2VkKSknIGZvcm0u
DQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBMZW4gQmFvIDxsZW4uYmFvQGdteC51cz4NCg0KUmV2
aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCg0KDQpKdWVyZ2Vu
DQo=
--------------kLrZE973h4CHzz50XUanWPMc
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------kLrZE973h4CHzz50XUanWPMc--

--------------CkdFRziPMRoZouKk60dvzZub--

--------------8VkVqRjBgdJguWEpF4SHnsFd
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmoRyJcFAwAAAAAACgkQsN6d1ii/Ey9F
jwgAjcC7WEdzmSzCN0WsMbRGvlK9dfdW1AZJN+QdzCuQKzYXmK1JQM2He9+Jewj67TsKtU8Cq9g3
BAEk+to/DldsNtNwca5ba+ifd+SdKG7R0G2Fyo7Tis+FrE7nU1/SZ8rEfKoGTJFlzo8N7E6QO4fT
x1/5g6/PySuMkTfKWGGp1UeQ935KrtBFq/FFUR+580yJwR80nlKs2SdfDMIUTfv4QcZUdieMoZgK
J9dgFJ+dPx4cbVQAmjlT45EUQAgKU4R3Ny/xQmX6shhoW+80um4VyBferWIFcThxb/LdE93sYJ0M
Z2tE3Jkd/xuybfPIt7sikQtypoNSDxDfABtfuZWNfw==
=JW7h
-----END PGP SIGNATURE-----

--------------8VkVqRjBgdJguWEpF4SHnsFd--


From xen-devel-bounces@lists.xenproject.org Sat May 23 15:37:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 May 2026 15:37:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1317898.1586514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQoPU-0002zk-4U; Sat, 23 May 2026 15:37:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1317898.1586514; Sat, 23 May 2026 15:37:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQoPT-0002zd-W5; Sat, 23 May 2026 15:37:07 +0000
Received: by outflank-mailman (input) for mailman id 1317898;
 Sat, 23 May 2026 15:37:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wQoPR-0002zX-Vf
 for xen-devel@lists.xenproject.org; Sat, 23 May 2026 15:37:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQoPR-00BBav-5w
 for xen-devel@lists.xenproject.org; Sat, 23 May 2026 17:37:05 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a11c98e-e002-0a2a0a5209dd-0a2a4506ac5e-38
 for <xen-devel@lists.xenproject.org>; Sat, 23 May 2026 17:37:05 +0200
Received: from [209.85.218.42] (helo=mail-ej1-f42.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a11c9a0-7371-0a2a45060019-d155da2ad48a-3
 for <xen-devel@lists.xenproject.org>; Sat, 23 May 2026 17:37:05 +0200
Received: by mail-ej1-f42.google.com with SMTP id
 a640c23a62f3a-bd9a71b565aso894664866b.0
 for <xen-devel@lists.xenproject.org>; Sat, 23 May 2026 08:37:05 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc30508d7sm196324866b.18.2026.05.23.08.37.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 23 May 2026 08:37:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779550624; x=1780155424; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=FfKQHdjwih2q+EkxV7DufViCJgSQzMqFM2acZntYQKU=;
        b=VAlseSju1Zaocwi8ptiH0Ucq6jeqMx/WCIZxRlxgTRAT9rnBgpXujTgwGMyCWGkbC7
         NPZ4gwW7r+H76WkI196+iDZrhGgnOSn3G4rlCZIEXwYRfK1AbM3RbH0MODSR1YTqckq8
         lSuPIX8rPQ+kJtGrtgxl6BN9+p2Q7LP06NEHCjIo+6OOOY/bl/wfBZPlCOZRYvWVcfTi
         MX8vmcr9CsBP1v3ASMsLsGTl+N836qNAbodUWROfX5Jhwht8iR82wMmq3wI4CnzrpbuO
         7CCttDuuX8yoeavFQxnRIfuimmRt5dz31uBhwqV11+YvG7PXlOqXatB7y3thZQxnHP2U
         HLXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779550624; x=1780155424;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=FfKQHdjwih2q+EkxV7DufViCJgSQzMqFM2acZntYQKU=;
        b=HljFFvr9vx+OuEI2pJW9IEPaJmrexp6R6tfHyn0H9xJrLosl1QkQJaqJ+W0VNf6jtn
         92Hq6dvo+1vQpfF09+I9iUJdzv3LgxRFzKWaQsh0ptFwPMN7UgC6lB4CF6VYX/SIWXSW
         tm/Gksy0YKyragAOHwuJ2W2QR8v6geEzg3xJc+yiuRPwEzPHQ2+Py6TQ11xMOV/GMrUF
         6Rp4ArWIWe/SP4caeDmA1vfNPyFQfD2l3vaWxWgdhRDnG6r+P/b6efIdAYvRI/Rp+cS/
         XayF/RiogwobAm7hIaJIuJ3Pgv9lcREW23AenNYy2L4MrHAGncWAsxYj8AtAckw/bhA3
         gGpA==
X-Gm-Message-State: AOJu0YzIEGCi8lgJlgJKnPzsTSkyQAgcdCacIdhYVtFfQ/tibd8wziXl
	XBLnR9zm8xNb/Wb+IJrdjamuW49VGaDuEB32uYTe0I8r54xWly2tjP5jp0iH1pB/TGo=
X-Gm-Gg: Acq92OFVd0wyXgJ0NNJkHccN9kccGCNGDl2bRQYXVwQwD8Rfu9P0Vxso3uCXvrkxwfD
	1cjB6mJ6WHVZNnKTibdmeVLlK3OyNQi105aAHcdkPgtlaLjsazx3Zki6UuaIUsxM8COynbKKzZW
	i0b8IGGV4BpQpvZ8No4y2wvrwEDtKyjaVE5VoGO5wm8wJtLb2e34TNi8Vh3i7jnL1TLgWDOgpgt
	J80PDUsWfA1NAvA9Fakfopoqem4HX/7oWo+Ns8z3JjrPNt7Lr6Y+Ic1F2njAs5JbVhcTCUE4nvF
	mF1L9mDL7oPItYuC4PsNPJYDfayYkbbQEmCtwVkoLE2vgM7r+O2gv1ZLzB1sg0ADAfgxowwQjpT
	8MYJoMXa3+nCFW3BK8gzCREmpVqiKwUikohiZiEcdRa8IiKDooTqkkMJmPIQ7x0x3k0yHeFZStq
	36SpMCX3EkS0ptuGsAUBobTSUoLoew075C9prrYTLG/s9BhaoZ1tc4/qsFISgXb7BCtchYr5t6i
	zewucXteClvQr8Ez5zF+znQvahyWamqWuawJrbm7h+zFtJhbW7XiXWEqTeZj6B8
X-Received: by 2002:a17:907:94cc:b0:bad:92f5:daea with SMTP id a640c23a62f3a-bdd22f2522dmr464567466b.14.1779550624518;
        Sat, 23 May 2026 08:37:04 -0700 (PDT)
Message-ID: <e2df8ceb-2649-42d2-aaf7-37f73ac27318@suse.com>
Date: Sat, 23 May 2026 17:37:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/mcelog: mark g_physinfo, ncpus and
 xen_mce_chrdev_device as __ro_after_init
To: Len Bao <len.bao@gmx.us>, Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20260523132802.25391-1-len.bao@gmx.us>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20260523132802.25391-1-len.bao@gmx.us>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------spcSpvn3ewuJgGMJz0qThZnr"
X-purgate-ID: tlsNG-16d1c6/1779550625-84566D75-78E339B0/0/0
X-purgate-type: clean
X-purgate-size: 6724

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------spcSpvn3ewuJgGMJz0qThZnr
Content-Type: multipart/mixed; boundary="------------y3y8chL4tuIw4Z0IVuAWlnEb";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Len Bao <len.bao@gmx.us>, Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Message-ID: <e2df8ceb-2649-42d2-aaf7-37f73ac27318@suse.com>
Subject: Re: [PATCH] xen/mcelog: mark g_physinfo, ncpus and
 xen_mce_chrdev_device as __ro_after_init
References: <20260523132802.25391-1-len.bao@gmx.us>
In-Reply-To: <20260523132802.25391-1-len.bao@gmx.us>

--------------y3y8chL4tuIw4Z0IVuAWlnEb
Content-Type: multipart/mixed; boundary="------------duyL2UmKsaOJkxK6bjEObK7W"

--------------duyL2UmKsaOJkxK6bjEObK7W
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMjMuMDUuMjYgMTU6MjgsIExlbiBCYW8gd3JvdGU6DQo+IFRoZSAnZ19waHlzaW5mbycg
YW5kICduY3B1cycgdmFyaWFibGVzIGFyZSBpbml0aWFsaXplZCBvbmx5IGR1cmluZyB0aGUN
Cj4gaW5pdCBwaGFzZSBpbiB0aGUgJ2JpbmRfdmlycV9mb3JfbWNlJyBmdW5jdGlvbiBhbmQg
bmV2ZXIgY2hhbmdlZC4gU28sDQo+IG1hcmsgdGhlbSBhcyBfX3JvX2FmdGVyX2luaXQuDQo+
IA0KPiBUaGUgJ3hlbl9tY2VfY2hyZGV2X2RldmljZScgdmFyaWFibGUgaXMgaW5pdGlhbGl6
ZWQgb25seSBpbiB0aGUNCj4gZGVjbGFyYXRpb24gYW5kIG5ldmVyIGNoYW5nZWQuIFNvLCB0
aGlzIHZhcmlhYmxlIGNvdWxkIGJlICdjb25zdCcsIGJ1dA0KPiB1c2luZyB0aGUgJ21pc2Nf
cmVnaXN0ZXInIGFuZCAnbWlzY19kZXJlZ2lzdGVyJyBmdW5jdGlvbnMgZGlzY2FyZHMgdGhl
DQo+ICdjb25zdCcgcXVhbGlmaWVyLiBUaGVyZWZvcmUsIGFzIGFuIGFsdGVybmF0aXZlLCBt
YXJrIGl0IGFzDQo+IF9fcm9fYWZ0ZXJfaW5pdC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IExl
biBCYW8gPGxlbi5iYW9AZ214LnVzPg0KDQpSZXZpZXdlZC1ieTogSnVlcmdlbiBHcm9zcyA8
amdyb3NzQHN1c2UuY29tPg0KDQoNCkp1ZXJnZW4NCg==
--------------duyL2UmKsaOJkxK6bjEObK7W
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------duyL2UmKsaOJkxK6bjEObK7W--

--------------y3y8chL4tuIw4Z0IVuAWlnEb--

--------------spcSpvn3ewuJgGMJz0qThZnr
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmoRyZ8FAwAAAAAACgkQsN6d1ii/Ey+D
WAf/Ubj/lcofaGXWai9oviS+4xtaQ7Xo3WT7hy86J6q5zUptxDlE1P7NtJeFFMWg8KuqVLHMWxUw
mvlIROEkWQaJf+Vo3kujJsFH7lzjD+dPw+94Ldeh4AO7QNsJ0IcibkWSsH8AIWj9ltusBcKXYGYT
h5ntjm3mh0ux4OjObvEL6ZDBiJOFFOPkT2z8kGDGJeYNtDgHFOcCQ2GjS990LzHmLbgxDmfTbIy8
TNSm7/XEX48f3w5zrb8uP8UsVnfg9m5mY8KnR8MM0OeCR13tMgwE8KpLQGu7B46pMUGMilL8AoNA
9PmKtkLcYMAmZ95ysqAgPEhKbRjkokchEeSGJgGNbQ==
=Xvnz
-----END PGP SIGNATURE-----

--------------spcSpvn3ewuJgGMJz0qThZnr--


From xen-devel-bounces@lists.xenproject.org Sun May 24 00:02:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:02:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318178.1586549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIe-0002Gf-Vs; Sun, 24 May 2026 00:02:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318178.1586549; Sun, 24 May 2026 00:02:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIe-0002GU-SO; Sun, 24 May 2026 00:02:36 +0000
Received: by outflank-mailman (input) for mailman id 1318178;
 Sun, 24 May 2026 00:02:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwId-0002Fe-RN
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:02:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwId-005yCJ-7e
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:02:35 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a123fb2-e002-0a2a0a5209dd-0a2a4502816c-36
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:35 +0200
Received: from [52.101.125.80]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124018-af86-0a2a45020019-34657d50d7f2-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:34 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:02:31 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:02:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XKvETBGUOdA6bhyCSqI5xwvCDstWAXnLlgT3e3fl/AENn8pLfofdz4Rx0HzyN7b+z0BPPG1+3pyPGxdEc1fOtLuFtHro5eOJknm1yoSfBLe7CS1bv/osM5QoFYMSqJmKiio4m5DHtUTIOi8RUchxde8boaSHktb2a4j8LdosAC0vmPr5vKsGNGQawa+h628M11oLKowvU2bqSJz57m+rNiJ4CmqyYkX84lp23rwrQ0gIb5byhrSYfNB/p8hzrUwcdVKIXYL7xPXFpo8HRAvzTviS0IIv2Meby023AR83SeSg+cEXVAl6Tx/qfOb8tcS5mix5XtXq+ZHrXwTPPlIPkQ==
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=g2lrdoLMqmg98r42qC1DD889Q8lEgAE6Jpi+XHGPJaI=;
 b=hZai01O1ZyxiyrZbVlD2mhixtjb6F1Czlbs57qMnO0O/NNzKdgtMstXG0MX9Bmj8ONEWtQhdVQ6L6NtcbAL7Upd9sbhbf1WcIA00mHmVCmnBVShQWUaJX6uZ8tQtlOvhVFI+FNzqV3isH5pNxZ1adbsBfPSsflI4hgpCkcW/FKq7bTPFtH4pI2XeXl869YrqmEcFHPOJr9o0Iz8N17wThE7dlZatZH1VH0o1gtn0ISFrsXeN+uXpuXSJZrlVm9dmbZKDfZZBwozkvzQJNC0jWfT0wC7JGwLLmG+JQBRcPjH4BP+Ets/t50MXV8okFGuF8A6kMi1ZkXKqN8fFYPda0Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=g2lrdoLMqmg98r42qC1DD889Q8lEgAE6Jpi+XHGPJaI=;
 b=LFf4VD+JS5vierFwmUFtVljA4+jGx7CgZJczyqNWerYq16LADBt14aaYwHwswEmuynn9oeDFICSpOsay0OHTuo6vIyNjAA1CZEIrl2d0v1wmKRYtXRdUG+tOyJ5SWR/93M6Z10hoq0pkB4/knDWwwHP0VaIHfSDJYKOFvGikOU8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 03/21] xen/arm: Introduce CONFIG_DEVICE_TREE_NUMA config option
Date: Sun, 24 May 2026 09:01:51 +0900
Message-ID: <20260524000209.292370-4-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0365.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:79::12) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: 772accbe-66a6-464d-35c5-08deb927c025
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003|6133799003;
X-Microsoft-Antispam-Message-Info:
	TzLRG3tWDA1C9A5OKhu85mUBk+EYW7kCIwv8jxhf+2YiTuFGDZTfWHrwef3vzsmifIeb0bBoSos2ceQ1zsecFRA2/G578wc9tpxADPyg8EOELaax9fiB+wF7WUwYSKTyIlLNMoOpTl+xNALenOypxeouJdm3IcnsTOSw2JyUnNVweTOtdYndgv7iXwSZi4Zj0DXQvYr81iS3UPL6HkMx8y6BhV1vcJexJrlaaWGoAZ/k2H3Hs7fWUQUHQYvD72zv0S0q1Aqp5sgxVnKR+CDquYEj+tYrQvB8u95ZKDmbwcskq7qZZOaPxAdO+T5kJQX6VvGLQzLRqN9ZBARvJgJNuzLpbPvq4mbE2B6pEykZClADNq6os8btZlk0fmpkUt5r2j1dJUDY8UDIX2zF39kmYWqI0d8YadtxZp+qLHA/isuEj0/1zJlRIb6JOHD1wCjNNsPTyV0DUv3a2qGo96psD6qsoL12ZYRvil1K5R5TTfPUWpF/lnLhSk1Gr2wHCKaO2HEeL/FrHPpiOAcKQ51L+JXpkXmMdqTdPltMLZuFJTkpUWio7r2kFjqdVnyzw/vEbS/IlvpZclLX59WlAKLClTgES1kUD1Pvupgm4coitE9w3YigDZoVwG2hBAfoaTECbOJkCCRd9HvUibcWzZ2N2zE6rT4amzbVLpkQe6QmbdpTpW2TOurG2s5eCymrUNfx
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003)(6133799003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?t6hx4cIPOK7Mqu4fV1o/Wp86HgVmM9BDZuM/HTzIlvKg4cOHqVDOKzjvEZRK?=
 =?us-ascii?Q?ECp0jnK5uhz2zcMLCxjTV57WqToy1uKwapnfrUZEarOn1W1SQBIPdxDo9DwE?=
 =?us-ascii?Q?rIdiaXn5p4Qjdqro9f1edY0vtC5Y9EtIMY4Yc60mKFK8Ae6RcvSPt3BLjl6s?=
 =?us-ascii?Q?2ZHbeJWrj5UYubpHeZzzA//0VLzqLh+VuT6KiGONWxMgOJf4Rs8W76pYkJnn?=
 =?us-ascii?Q?G0ZC7MLQfXsSyN7XHCYQvWr4jGQKw9uqHNnbXtaMLaXYlCuHUBXJHbSTHQmu?=
 =?us-ascii?Q?FMzk9+TdMEqCli8zM9KBfENNLjG1zS4QwM7+TDl3IP62HTV8aFbcsVWAApxL?=
 =?us-ascii?Q?Gz1l8BJSafWTIydqwWkWTB6+88wsUFYEYpEU92R/SWdqMKSMb9woLmyegZxM?=
 =?us-ascii?Q?dyowR/9txCAY+yx70ca2YJFt5V0I+zZkOg9te4mglbrqWYhMbWaiVH47tKlc?=
 =?us-ascii?Q?P//37bIXIgSxbKx8hetpvqsZB4iIavR33OKS5eEWglFEJ6MOi/b0W0i9WEye?=
 =?us-ascii?Q?snywolB/baGTSvHv++hOuqFweGcVaSBWFEPt3EEWWNFVGLrRixOjliPB8/9R?=
 =?us-ascii?Q?gR3SfIXOj20fZrzTH+2kXaXpUEZ6OvV9mifJ9+U7v8pcWHMXG9m4Op2/wWNj?=
 =?us-ascii?Q?wOvjJfTBn8mcLH9gmvwmUmbZMWE/WByaW3xIkm8vnN3JNC53QCUhsVJcQtHY?=
 =?us-ascii?Q?0wlQJHRkeWyrtoQWXczwlIocIPppWL103xVZz8Gw2/S33OKUXNjfu2WpPjS8?=
 =?us-ascii?Q?itP3o6Cl9BNFXGmRT2XQFHomLlDOlgkwwJnsiHCj1ToYvz47gcE7NKVTHIn1?=
 =?us-ascii?Q?QiYI1YfZ2pfXF+4UkdLyrw4xKGCNRm5Swf93N/mxtV4LYlBtbUTw/OEGfUcj?=
 =?us-ascii?Q?4R/ZUN09zOEGdEmb9//eCjzPShMcjQNu05Ow6WYLB1fEj79uCoTgqXDzEBFZ?=
 =?us-ascii?Q?d68eE5jhCgzP3FiWrpqQ0DoZcqYymZKpKZ9Xbc14CXWP6354xN2OzG41quRa?=
 =?us-ascii?Q?HrWjpTd4vbQN10CPG9f48cJiAjtfZAxlk8YZHFVnHepWP1eO7xq8H9isH3bu?=
 =?us-ascii?Q?Murr2f/65ILh2sXzC9+Utyk7AskO7W4IxNE3uQp0PXmIm/8rpjjdCtiL0+sB?=
 =?us-ascii?Q?dfzrnTEv/hJ/kC2J08/c7wqSEIFYA/zASTFvty46GdxiQurKOYJ8GIN6GLvG?=
 =?us-ascii?Q?O8YOpN5gomTdirItHVXSAXu276xFduebBqT140XNBYdxyzxo4C3xWbpR5kjD?=
 =?us-ascii?Q?ff2dEPwG2ukDQICfDP/Z0e7Tkp969FwJf1Nh5le1u8HytX05N94lcwSyLLik?=
 =?us-ascii?Q?AwCU4shjaIgSWjHaM1N+VU9ie4vP+0rUFy3qnY9DmlyFRx1A0ckusbiGRGa9?=
 =?us-ascii?Q?U8v/Erw4QYpHH08BWoq42aZdXYXh5diMVsal08qtcJcSieM+Ntz3YRbRuqgJ?=
 =?us-ascii?Q?xr/soGAEp0JMXF1MjLIJI0N+/zMfLQUC8AoemSCqgQu1BMJm/pNSzIOAppGv?=
 =?us-ascii?Q?qeUk3nZ8kdZQesazuvgUwgPN3pRJqrj5r7/FbBwSVbCDh1VB+ZTDLGDsTyeH?=
 =?us-ascii?Q?42qXgvYh3Fx4YAKsXID7I3/1EI7ZrHjw8wFeDPuH9/h7/GWNvZYKx+9fU/yF?=
 =?us-ascii?Q?cvWU5ab9kZ0SkuvYy0x/WkYINIZixxO3eEJQCiDTRH6wJUKfD4QqCnRWrjlP?=
 =?us-ascii?Q?KIoY5AeYDsz6zCXdRIsEJJDD6sGvul1Mnrmj979AocFYSuepd7D5vZs75VDR?=
 =?us-ascii?Q?4c9HK4KiWTfXqx+xLdFhHNA6eELnzBlV6I2lIQYIj8VOweZP9gNFJnfbvsrv?=
X-MS-Exchange-AntiSpam-MessageData-1: Z8RtTEC6NNuhXw==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 772accbe-66a6-464d-35c5-08deb927c025
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:02:31.2622
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3dUUbETlsdEPM0nTUL2SSGgqRYGXYhWPUhMurcmyBVhRIavu0ymWhOM1OympOn5HrAxOenxHJ0xjuNXmAGYUFQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-720697/1779580955-83B60161-E0218547/0/0
X-purgate-type: clean
X-purgate-size: 2348

Introduce the CONFIG_DEVICE_TREE_NUMA configuration option for
Device Tree-based NUMA support. Selecting CONFIG_DEVICE_TREE_NUMA
automatically selects CONFIG_NUMA. While this option is currently
restricted to the ARM architecture, it is designed to be selectable
for RISC-V and PPC in the future. This patch also includes the
necessary compilation fixes required when building with CONFIG_NUMA,
and creates a single fake NUMA node to ensure Xen can boot
successfully at this stage.
---
 xen/arch/arm/setup.c   | 4 ++++
 xen/arch/arm/smpboot.c | 2 ++
 xen/common/Kconfig     | 9 +++++++++
 3 files changed, 15 insertions(+)

diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 6310a47d68..c0202d9ff6 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -351,6 +351,10 @@ void asmlinkage __init noreturn start_xen(unsigned long fdt_paddr)
     /* Parse the ACPI tables for possible boot-time configuration */
     acpi_boot_table_init();
 
+#ifdef CONFIG_NUMA
+    numa_initmem_init(0x0UL, 0x1UL << (PADDR_BITS - 12));
+#endif /* CONFIG_NUMA */
+
     end_boot_allocator();
 
     /*
diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index 7f3cfa812e..d1651fe7dd 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -47,8 +47,10 @@ integer_param("maxcpus", max_cpus);
 /* CPU logical map: map xen cpuid to an MPIDR */
 register_t __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = MPIDR_INVALID };
 
+#ifndef CONFIG_NUMA
 /* Fake one node for now. See also xen/numa.h */
 nodemask_t __read_mostly node_online_map = { { [0] = 1UL } };
+#endif /* CONFIG_NUMA */
 
 /* Xen stack for bringing up the first CPU. */
 static unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 5ff71480ee..2365b421bf 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -188,6 +188,15 @@ config VM_EVENT
 config NEEDS_LIBELF
 	bool
 
+config DEVICE_TREE_NUMA
+	bool "Device tree based NUMA support (UNSUPPORTED)" if UNSUPPORTED && ARM
+	depends on HAS_DEVICE_TREE_DISCOVERY
+	select NUMA
+	help
+	  Device tree based NUMA support. The "numa-node-id" property in
+	  the CPU and memory nodes of a Device Tree defines the NUMA node
+	  to which they belong.
+
 config NUMA
 	bool
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:02:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:02:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318175.1586523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIV-0001aG-Af; Sun, 24 May 2026 00:02:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318175.1586523; Sun, 24 May 2026 00:02:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIV-0001Zr-4S; Sun, 24 May 2026 00:02:27 +0000
Received: by outflank-mailman (input) for mailman id 1318175;
 Sun, 24 May 2026 00:02:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwIS-0001Zl-8T
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:02:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwIR-005yAt-L3
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:02:23 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a123fee-2eae-0a2a0a5409dd-0a2a4508d87c-24
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:22 +0200
Received: from [52.101.229.130]
 (helo=TY3P286CU002.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a12400c-63b5-0a2a45080019-3465e58276d0-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:22 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:02:18 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:02:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GfsP7e4GQ+j7aXejBo4LspgnBnL3lF9D4eaA4IJZc0/TFNY+9VjZCpcPJcjne8n5UJIiJeAGGSWMvtvsiCIsM4fbAJkcq2vNXhbkdoJqgwBDmYdWSirtzTk/7yf24pN0ZlJgufl9N/z+BnwguqFlU/yRq6NuIF+3wR2Vy7GrzHS2MTRi2jIbe8LheKWdAdz21CbWA/2XhWHSpzCNErcsaqC04D2JJRJT3Wqpd2MP1jtD3ztRkufo5qJP4NJWEKN98EIKwq0qgd8BPKtlLiOWE6fbypYZXDMMYSy6Ecxnd084QIhpq9Ijzn8JxKCSYcIeF/2oGcI+RLd/Ln5cDw/0sA==
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=IMx/z4cJBICeXl4yN63GuRWscjM+ZyI0l1AM2oZE+/U=;
 b=TMjlLscOp0lJIg+zm68qUa3ao5VEFL3IpHdJyraQEBOw50Pm8Xii29cxPLtFRRjAHhLu/SxxL8DyaBIM43MLdx0SXbFMnTumiGJmM1Yhkpvuf8jqAvhcRHblk+e3kFOSn/hOAze2vnqEr6OHWQZwIL/yvybahAUwip2kCsdt6P2MIZ7GFazUtsVpfdq7c658SVTnZzlDxMFqtbwjMMnHyVktdHjiHu9EdIRWrlG5R8fNlSPrZRFyrkjH1P1ALaK9CH+aJetrhyp4qBdsnyaFtGnxZeDn8g/WJfmu4g+Q/cqDVF4FPFNkxIrl/Pjk7fvbzqen0SEDwp0W0mkE1Hq6+Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IMx/z4cJBICeXl4yN63GuRWscjM+ZyI0l1AM2oZE+/U=;
 b=hy6XUXPOt/6CLZY07rgp7RwjCgnu5STuDyLk/q+aSkzGYa5KP5bz6ZwC37UNoKyKQCx5qek6JwQaxYBzXLi+g9jaLz6R1fDyvX2v6tWCWg1RS+OjJmp1Wt8p/ivPAmGhcA8jcFtUUXEIVT8muacqClLjbd51dNBGHYMK3FwIGQk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 00/21] Introduce Device Tree based NUMA support for ARM Xen
Date: Sun, 24 May 2026 09:01:48 +0900
Message-ID: <20260524000209.292370-1-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCPR01CA0186.jpnprd01.prod.outlook.com
 (2603:1096:400:2b0::9) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: 0144aab5-663f-470b-c161-08deb927b74a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|18002099003|56012099003|6133799003;
X-Microsoft-Antispam-Message-Info:
	QQg1lAU8/q7UXF/IOQQb50++dHnZQnr6mVf52F9+aPEVc38CLipioEmssWTH4FOo9cwuPjH4kahS5HykJGBx6stD/qTu/S/pDhd5pKT/hpSHccXPtSx0TQBvpX93UYccW/zqJ8eJOB5EboJSyLwzL6xS3zhDK16ZKHEcvpze3+vxvkYK6n7q8h6DylIRf7fS7xYQPhtaFurfLeEH9J1pf7FR3LjPAZwfuKdNvQoLbf3iFGhjhtyO5dTMAPKHzjSgFHPBRE24VNj8JjDMX4E3naVxa+ePkNlNRmimB5eS0wkhM/EhyoVLRL9+B4yUTCNsuJRYURD6VBu4w/ejsY9Ayw3AqvwdhL3J+bak4pCzG7Gjr6mNcadc2ATrblPdTJXZr8Y8riTHAGKgwSM/hGtlzJTrfRuXYaJGtlIJAAapP9MOOgubeZpCcVJyRaP/37MMCIHRxi7ELOm2wIbKjIYg4t9OTbsjzwXDufjo3mQYPZ2Fvk9jBCv6u1tkn2HBjZyXc8ID+9J4ZoQZ5PV7Hg3qm85c9OD+CTM6XTAD/Ff1Zpf4SP5aR/WpQjKdl3tLAieWCsbDag7+nfFWvHC/FT7A/pPKo14A8zbt8AbRiPcrhQnKj3WpxKLcvMujSPWFyv4f1t6tzQUObZhco2jwB9r+1+8WJoVWUv1J/ghdLhBI8epJOuyNE0p9RKV0fBYu1GYG
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(18002099003)(56012099003)(6133799003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?1QaCXQR5poPFxKvOumBVhgOxZZh4ynOnmoYfUaiP2DyZbng0ZqXysrHZ1Jal?=
 =?us-ascii?Q?F8qDzszst3l4eWaokc1Em/itFV1FaAFare6Mt8iVMyehtfJiJn3tLDG3BiEV?=
 =?us-ascii?Q?ZvY8zCZB3ecddDzAtUi/OANOoVjOhdl2qWtJ9TR6YMW5FbsUFn3r9Ey7gUMz?=
 =?us-ascii?Q?VfANrI8mhZjfeEX0UUFx9LRQO7RZzfL+A3FJ4s5HyCriHV1R2UyGF14T0Xvm?=
 =?us-ascii?Q?txNs3ZtRFJJrTr16v23wlxbkQauCRllxUUg52LNkEgqJ1c6dhH1hmA2fKXeZ?=
 =?us-ascii?Q?nJ5tNZnrA1OQX/Djn+1K58dba6sAD5okNJ+FPSFWi63UzAFGOKxtmDdEu35Q?=
 =?us-ascii?Q?php15Vfp/j95RRjkboRZ0nv0VmQ/4lYGJB8n9YkrWkD3Nfeicqe8C85p/Oee?=
 =?us-ascii?Q?s7dVON6G2bDpp6ZRbMSx2YbphmuzqzINkbQvMu/6djoZEPWB8uhPCndFzo5s?=
 =?us-ascii?Q?LIQXQ+974jIqjkwv+Ezd0Lfl5Lj19LOdVQhg2a9pP90FLAQm7gcXZyRvNNvP?=
 =?us-ascii?Q?+WXLTnR2pdVOmEAdA1vevSfketout5KevFXG5tCSf607fDVcdl2mu30Qp5Or?=
 =?us-ascii?Q?Ky6Zd7YM/hy0Mx73ykDhHs2b9EbB9EQ4uKGtTVmM6JlbQQFlvgXsRbSfFky2?=
 =?us-ascii?Q?pGrjL463GcXAdzhwJiA5r27LplR/VhcqkQA1zRgQFSPeONidX+K8aoTk4/IN?=
 =?us-ascii?Q?0zsjklETinsWTGuwy/vR4L4412TP5SyGeNjdtXSfEaYG9ju3rfhHIyhxnT6L?=
 =?us-ascii?Q?iRhq/S63ZNLo8U940yJYD1s+phDm5GQvtO2cLusrYTbCm15xvzwKZj/CrtcX?=
 =?us-ascii?Q?sLW12U1wgK6Id9RTl2Tj+Ci0cjxzS+IUw8fOJSIVcEYabG8byMS5K8Ki65ax?=
 =?us-ascii?Q?z+ROTF0qKMUhKINV19llQrQkvZmw3Ws2ugbgVu4INKUdmTBXZ0hz4RfQSfBN?=
 =?us-ascii?Q?oZ56rwUIZxIw8AodA89W0jSc+67e1cFKEVkI+WmbSgx5DiSACkYR5tNxnC15?=
 =?us-ascii?Q?at5NVHrXscGCVIcPotWW8x5l/kbN+ciLmXsYpkNg794RsSEJXV6ywbeW1i9o?=
 =?us-ascii?Q?c0UwJVf2CAGTRmy0ck4ocTWRv3H0TGPoQxCwTL844GjkWgys8UIORkv5v4yI?=
 =?us-ascii?Q?BzV/Nqx2Bu2j2ppvlcYanngKdiPtgXt2FvGU3AboKr0fhBif6Yg9KoCRx+cC?=
 =?us-ascii?Q?59pUgRlPXBRqozzrRxl7S+2ZtRxYwb3wE29ay7e1AamUvnOOgSbmZFcoAThp?=
 =?us-ascii?Q?k+qRfkAKDzFZPkv/fpPGMwzIxUxUJJd9AjBW1g5lkdu0SQevvxJ/Wfjfsk1v?=
 =?us-ascii?Q?HuWVMJNF/dqLiXLWOa8Ct8rXYbKAav4yOUkEfc3f2LZv+dyT57owpIumIPVP?=
 =?us-ascii?Q?EY0K3VsDcUu4oeMdZ/jLxQ+bF33IdKXfloAUz6F7A3cgD3Jyq/N8TMweNQfd?=
 =?us-ascii?Q?een4dNL0NxpyAKEzuJCsSleuUftIBubjTz7Ro9rVPddrczitSqCAbTc+WgjD?=
 =?us-ascii?Q?GhhHckWftArPPKhtlF9/5+CN4fcwRux/rXrBYCd19ocRkKr58mrYKxjmnGkD?=
 =?us-ascii?Q?K7B50zAPCBiqhDSxHjVRYzAqg+4L2j2dkcb/Wlz9jHBrfUMKPFcs7we1HnEq?=
 =?us-ascii?Q?ucZpFXBslIGf8sEkWCf9RSVKe0GFPCUv2DmG0FatFKC0uYAzdbFoPjFzgf/I?=
 =?us-ascii?Q?BCzJDI+guswF9Wf71GrDicD3fnNaZD1Ca8N2NSczIp2SxiWPAn0VpI5ipot+?=
 =?us-ascii?Q?GOhH7qumJosdx7cQvu4k+iWTPd+mnF3WenYyqtFXGgUoXWJ9IZUDy4LKfB7k?=
X-MS-Exchange-AntiSpam-MessageData-1: Bg5r+jLZmVLH1A==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 0144aab5-663f-470b-c161-08deb927b74a
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:02:16.5191
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: EOb5zW/KsVNqFE8iSFJ6C8QgTwvHG5ONKykyJclldvalSoWyb5hUguLH380JUReQb/5bEYYeo4SzUG3aYMhGRg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-c1860d/1779580942-B7D7BDB1-36844D53/0/0
X-purgate-type: clean
X-purgate-size: 3839

Hi all,

A few years ago, there was an attempt to bring NUMA support to Xen on
ARM, but it got stalled. This patch series revives that work to get
proper NUMA support up and running on ARM.

Note that this series only covers Device Tree environments for now.
ACPI support is skipped and left for the future.

Also, I've put the NUMA DT helper functions into the common code,
so that other DT-based architectures like RISC-V or PPC can easily
reuse them later.

The series is structured as follows:
- Patches 01-09: Basic Device Tree parsing and NUMA initialization
                 for ARM.
- Patches 10-12: Toolstack enhancements to generate vNUMA device
                 tree nodes for guests.
- Patches 13-20: Dom0 memory and vCPU allocation adjustments based
                 on node affinity.
- Patch 21:      Update documentation for the 'numa' and 'dom0_nodes'
                 command-line options.

Thanks,
Hirokazu Takahashi

Hirokazu Takahashi (21):
  xen/device-tree: Initial framework for Device Tree NUMA support
  xen/arm: NUMA helper functions via Device Tree helpers
  xen/arm: Introduce CONFIG_DEVICE_TREE_NUMA config option
  xen/arm: Configure NUMA affinity for populated memory banks
  xen/arm: Map populated CPUs to their respective NUMA nodes
  xen/device-tree: Read NUMA node distance from Device Tree
    'distance-map'
  xen/device-tree: Parse 'cpu-map' node for CPU topology exploration
  xen/sched: Link CPU topology to scheduler and display via xl info
  xen/common: Allow building ARM32 Xen with CONFIG_NUMA
  tools/libxl: Add 'numa-node-id' property to DomU memory nodes
  tools/libxl: Add 'numa-node-id' property to DomU CPU nodes
  tools/libxl: Create 'distance-map' node in DomU Device Tree
  xen/arm: Introduce dom0_nodes boot command option
  xen/arm: Set Domain-0 node affinity from dom0_nodes option
  xen/arm: Reflect physical NUMA node IDs in Dom0 memory DT nodes
  xen/arm: Balance Dom0 vCPU assignment across NUMA nodes
  xen/arm: Export Dom0 vCPU-to-NUMA node mapping to Device Tree
  xen/arm: Generate distance-map node for Dom0 Device Tree
  xen/arm: Balance Dom0 memory allocation across allowed NUMA nodes
  xen/arm: Use dedicated function for Static SHM Device Tree creation
  xen/arm: Support numa and numa_nodes boot options

 docs/misc/xen-command-line.pandoc     |   9 +-
 tools/libs/light/libxl_arm.c          | 134 +++++++-
 xen/arch/arm/Makefile                 |   1 +
 xen/arch/arm/domain_build.c           | 428 +++++++++++++++++++-------
 xen/arch/arm/include/asm/numa.h       |  19 ++
 xen/arch/arm/include/asm/processor.h  |   6 +-
 xen/arch/arm/numa.c                   |  62 ++++
 xen/arch/arm/setup.c                  |   4 +
 xen/arch/arm/smpboot.c                |  35 ++-
 xen/common/Kconfig                    |  16 +
 xen/common/device-tree/Makefile       |   2 +
 xen/common/device-tree/bootinfo-fdt.c |   8 +
 xen/common/device-tree/cpu_topology.c | 361 ++++++++++++++++++++++
 xen/common/device-tree/domain-build.c |  99 +++---
 xen/common/device-tree/numa.c         | 142 +++++++++
 xen/common/numa.c                     |   2 +-
 xen/common/sched/credit2.c            |   3 +
 xen/common/sysctl.c                   |   1 +
 xen/include/xen/bootinfo.h            |  37 +++
 xen/include/xen/cpu_topology.h        |  45 +++
 xen/include/xen/dt-numa.h             |  31 ++
 xen/include/xen/fdt-domain-build.h    |   2 +
 22 files changed, 1274 insertions(+), 173 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/numa.h
 create mode 100644 xen/arch/arm/numa.c
 create mode 100644 xen/common/device-tree/cpu_topology.c
 create mode 100644 xen/common/device-tree/numa.c
 create mode 100644 xen/include/xen/cpu_topology.h
 create mode 100644 xen/include/xen/dt-numa.h

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:02:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:02:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318181.1586567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIi-0002lk-LC; Sun, 24 May 2026 00:02:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318181.1586567; Sun, 24 May 2026 00:02:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIi-0002lb-I3; Sun, 24 May 2026 00:02:40 +0000
Received: by outflank-mailman (input) for mailman id 1318181;
 Sun, 24 May 2026 00:02:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwIh-0002Vv-48
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:02:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwIg-005yCJ-Ga
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:02:38 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a123fb2-e002-0a2a0a5209dd-0a2a4502816c-40
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:38 +0200
Received: from [52.101.125.80]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124018-af86-0a2a45020019-34657d50d7f2-5
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:38 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:02:36 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:02:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FSyEgfrXgy6nyhxqC5/XSzGGwr3+ZnahNP3UbIy9wyruLE6HgmX1dzlZEsod5iFgkBDeOJz1pQ6uks5/tHqbW0lfQPt/KL87ZveFYYiAIl4fO34PmAVKSwfPzUdila+BD+NrEMIpdWTvfJTdcCImmgVQefoAcL8sYztEvnaiMPKdhxXoOd6HxRrBheOtjXMvJJTSz7IRJ5Nd9f5PeC1ma+Ac1I4wGs9Ol6lElr1/6HT9Iz6pAow/VuBThHylW/kWF4WXahWLuS1Y54xEkOseGas76WD9efpkExmVq+ZwXsIwEGgJa+bX7CssAHgPOw3x28qpp7u9MntOblAUpuEfDA==
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=/vwA3Er90o7oXhAI2Lat0t7tLEuFxyB9jiPPQO/KILk=;
 b=JeCQ0yowGUOFzIsvsAsGyLR6bvNRKLJUHVScV6TUlYopvJoY17pr3OnEyIfNAOrua3wKeNcP+UPT8UCGnGlHBvSvC/RpN8fdwbsuJ80Db2NyrHwkrQjQiQMwzuoKy8wMr63EjHjPujmwHImqPrOXfwek1gKEoF/PmST1QvCFAXq1PuTWabcVi2to/ZCSaJFJpMYRKtTSU7dol6DserQRWwKBDvgGOabtJS0L65SuyXfcx4DkvwfsdAP0NMhW++JjHLrlhjn/CoXJbye3YVQR2eTGQgURXWqbcSJEpVWUMBmhOBl7gakE3/fVKNOJ2XOgMxY/fQUHXIQ1wFYWW10KaA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/vwA3Er90o7oXhAI2Lat0t7tLEuFxyB9jiPPQO/KILk=;
 b=e7MgH8/TmCB+UgF8UafU4wmHyk1X2IIJEAMaIuxPHHEY32KRyZZntPwxf3zfD2B0IY2mPpsoWV0sLPk5je4Io3gcBy0zTRV840BJpi8PT9utQO0dVgB+F0ENDk++4D+zRAcpZHOEst79y2xX7qPMDpinY6Nib5cLE5WwaSOgWCs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 05/21] xen/arm: Map populated CPUs to their respective NUMA nodes
Date: Sun, 24 May 2026 09:01:53 +0900
Message-ID: <20260524000209.292370-6-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY6P286CA0006.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:3b8::15) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: b6fd9a07-7498-43b5-c6af-08deb927c31f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	XYq3obG3oln4LH9nuT3gv8PXIp3KsGUuSpdVhjivF927SzYm1ehqnkVSzLJquXCwrG92YfQV3ONJ15cXSaAoI2oCOarDJiY91hPx3UZiJGjwQ6lVzPlj7z4CN3SoxowX9nCdPW8IYVB5G/W8VB8csHOWw2gERU8MO0EtwEvGZKBylVj6fE6g2oghtFPqIfK85WGPO44gja+0XH7q+opGmDKCFHv852KZWYjD9waXDtNYQlLrp8drQKS5tmDIOD++qnqqcNwUIiZ2MkdISXvk/Bsye7KE4uRCgt1T6VeobwwrrSRZbgaikinGYXEs1C+U+APlRifotXCvTiKvigZQv7YnumyJBWwjL0HGj5dnFXvydBy5FGr4cVlm1jqpm6QZjIb5D41MVx8gkC4BhjXZh9dzJJzKhKWZhXnNWQUwlV0Ri4RQhb6lhRc4eSYIUaCcfotcFf01iLO6jyvsd1M4PgOZhRMFjam5fozOZSnarIHGVHP7qoeMv1YrnB1Jsz7hUuE8KTDbjy2mZOThz5solfeZCfgKqqD68YEJS7onvxfhqNOky/AmvhPxvnq1l9GxB8jb7dC71qPmnATL8KaThJBmno8bqytjZ6Cxeusvz+4LIc1EbNfbPGbHZRk1sagZZGflyAYyBKlef8n5CnZ5KEj/uU/ioxofqKh0YT9y53TDrm+pIoLE3UQF+J4Q/Jyh
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?ZwfUpWzVnFYM883+0oYu0ecdYO8vbdnaIbpma2BhAGLVoONwWkhLSzfPS48I?=
 =?us-ascii?Q?Z8cXb2mvFC6U0fR1MjqeLe7Hbs4yPL6SpcJGKX+uL3q2fuYIgmgRpZMtb+gp?=
 =?us-ascii?Q?iGn0khPXywfIz/SXnsQLDntN6ACvU9ZJqcwwfjWIAQpI892cMkXbAs2xtIxw?=
 =?us-ascii?Q?cpIO+Y71srRGwAqepP9mgihABulvRToHglM6APqWlQoWoHNstxjvuNLFNbPu?=
 =?us-ascii?Q?jiaoJXvyiM9fJNS8HumrSRn33+KQ4dGwG1y+5LaWVt1H1J6TDX2Zd1jD97/9?=
 =?us-ascii?Q?TVSdxhsT0eAoGd9DeyzJXX6pheYQgGwW1fFxKmod9niqUej7JaTC0gscd6KE?=
 =?us-ascii?Q?rrrUuLgbH8wQZLWiHYyHB/O9X5PK6z0hwQk3FYOm7jTimZ5xJEpqxakkZmE0?=
 =?us-ascii?Q?UlMY8MEWOgIYUDOY8u9tgKj2tp5uAjcVWxF3iy+b7gd10tkuCoWEBqEakCYO?=
 =?us-ascii?Q?eGUE46MYeF3/IrKGtU1+IlyQaljgVPI+XJCMrj2UPh5D0Hhtp4La+YtPPV/6?=
 =?us-ascii?Q?ovrPeahz77PFOJeUNGPmEL9hL3ZDmhQLCMwkKLaNvJ/4RuomcbJxfRJjPMDV?=
 =?us-ascii?Q?DEbCgOrk3WsmpML4vlfPGm0o3HybYeX+Gx+XfshtBDZVKIg8xdn5bWXAUGG9?=
 =?us-ascii?Q?3CIAY7cvDkqbT3XBIxwtISNxAOZZbq0B+j8PpLQM6/S6tqAfxNO3CrjuteAD?=
 =?us-ascii?Q?HPy+txPeAUXcT9Oxby9GK5iOpJ+a6K//HZGwxphkn/oqY1v42NNamf5fzI97?=
 =?us-ascii?Q?Oizy5T0c4UZqDqjWwDgeHe344BCDFW9oKs1QApQswlv2x0YiUACQQRb65P0G?=
 =?us-ascii?Q?NDRcwy1Qwo9m5N30/J6o7oiUQ0RQcI/81Chl0ohYjxcI328Wa2bG+1ku5Qx1?=
 =?us-ascii?Q?SE96TZsCtJ6YryBvvpDN+KhXs+wS9CL8jI2B5yja99y+KrmgH2SdDYvbMhZr?=
 =?us-ascii?Q?zRNjG6CuLHgjNdWM+Yz0eyWGphUqKHe0T4rO8B6p/7FfM1vMEkoWsP2X4BLg?=
 =?us-ascii?Q?cLrSVXGrJ/z3tKEuTBoNRHGnVLvH6GbKU0VoooVQe1mCnZ2YUvCU//hC1iCb?=
 =?us-ascii?Q?zyyyTAOrYza9azCYZp2I0J0VzPMHdnD81Fslb5t2gwl0OasRRJRocx8mBI4K?=
 =?us-ascii?Q?19uppVknqHbW9D19qGbK62/mSxMK/Hoe16MKB6DyAQ19UdjKNopQygjDpank?=
 =?us-ascii?Q?Vs9FhY6fN/tfbRBmhK2dRQjOCM6K6KaSV5vGptRYw9p9uD/Fd29S55SjgYwN?=
 =?us-ascii?Q?RaBia86D+vSZ9ASOAe4beZZ+w4gbNHI/6E4E0L/slW8Lj3YC/yGAvEKWHz6I?=
 =?us-ascii?Q?dIZAy4QHZtKIP8Hi9GiFUWGjc9gtY+Q6YsA4U5KlHlDpHd1PZFznUHUBUZdp?=
 =?us-ascii?Q?+qd4FfGBl68GB4X1WjB2nn0CEs/srw7uhhn7w3e+VQ2+UbOeEXcuv7HAMotQ?=
 =?us-ascii?Q?uSzcSc2swxgLBS0mQ5a1dLbOxR6agq87dUOeEjRlwOYKkWRp1II0kL6LnG7k?=
 =?us-ascii?Q?o308bvEhWJ+VQWQ/9uxA3VV1nlCe8J7wRvSAF9jHqrLO7nNcP3FET7lLYkMD?=
 =?us-ascii?Q?nwBg3C27Ab+Awb7yiIxO7CzGoEu150/oosObGQUrVHvSJjV6tw+EOme0fM8U?=
 =?us-ascii?Q?jXTQ4dU1SQZ22wl75w4aXdnYSa8AGgxZq9Zdtybpm2fEHP+kyCdcv0HohPPn?=
 =?us-ascii?Q?5TVmYq9M+/ay5Sw0XcgQl3zepdATm1onXBjH6vNqcEanjXV7qT3H33xla2WZ?=
 =?us-ascii?Q?tTMugnKRM/u28+ede7MLRIk1R/1cTwRq7FNVF+dGKatd1yIIVeLCq+lVgCJx?=
X-MS-Exchange-AntiSpam-MessageData-1: kURJZ8/P5eGpsA==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: b6fd9a07-7498-43b5-c6af-08deb927c31f
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:02:36.2715
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: envWJmdu/Kv7JwhNwwMIyg9kHa2MbKHINa1Ohuzc9N3TyEkpw8UX3sKVbZftpnQyCRlBBocFi2bkRECUK2nAAw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-720697/1779580958-AB36C161-2101BA10/0/0
X-purgate-type: clean
X-purgate-size: 1552

Map the populated CPUs to their respective NUMA nodes. The NUMA
node ID for each CPU is retrieved from the Device Tree.
---
 xen/arch/arm/smpboot.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index d1651fe7dd..eafa195504 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -133,6 +133,9 @@ static void __init dt_smp_init_cpus(void)
     };
     bool bootcpu_valid = false;
     int rc;
+#ifdef CONFIG_DEVICE_TREE_NUMA
+    nodeid_t cpu_to_numa[NR_CPUS];
+#endif /* CONFIG_DEVICE_TREE_NUMA */
 
     mpidr = system_cpuinfo.mpidr.bits & MPIDR_HWID_MASK;
 
@@ -244,6 +247,16 @@ static void __init dt_smp_init_cpus(void)
         }
         else
             tmp_map[i] = hwid;
+
+#ifdef CONFIG_DEVICE_TREE_NUMA
+        if ( tmp_map[i] != MPIDR_INVALID )
+        {
+            uint32_t nid;
+            if ( numa_disabled() || !dt_property_read_u32(cpu, "numa-node-id", &nid) )
+                nid = 0U; /* default node */
+            cpu_to_numa[i] = nid >= MAX_NUMNODES ? 0U : nid;
+        }
+#endif /* CONFIG_DEVICE_TREE_NUMA */
     }
 
     if ( !bootcpu_valid )
@@ -259,6 +272,10 @@ static void __init dt_smp_init_cpus(void)
             continue;
         cpumask_set_cpu(i, &cpu_possible_map);
         cpu_logical_map(i) = tmp_map[i];
+#ifdef CONFIG_DEVICE_TREE_NUMA
+        numa_set_node(i, cpu_to_numa[i]);
+        numa_add_cpu(i);
+#endif /* CONFIG_DEVICE_TREE_NUMA */
     }
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:02:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:02:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318177.1586539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIa-00020s-OG; Sun, 24 May 2026 00:02:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318177.1586539; Sun, 24 May 2026 00:02:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIa-00020j-LV; Sun, 24 May 2026 00:02:32 +0000
Received: by outflank-mailman (input) for mailman id 1318177;
 Sun, 24 May 2026 00:02:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwIZ-0001n8-35
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:02:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwIY-005yAt-FY
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:02:30 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a123fa3-2eae-0a2a0a5409dd-0a2a450c9d92-46
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:30 +0200
Received: from [52.101.125.127]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124013-62f1-0a2a450c0019-34657d7f2312-4
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:30 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:02:28 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:02:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KFr1mfrAx7rNqF+hvL6SYtx52/aMH2athAbZg12Q65BcKhPerre+70If0MTRJ0yakbs3TQG1CKpKa/aZyBeoQFJA324jddF3fr6wF1GqVoncZSHHxRZmPfDc1h6hmE2N7X5ZTUFsOZ/X8B79HAThBGwUi7oNEKXhkGjF3IbgFLd8iFVKPjNufpy1Ef2WWmowWvCtI0mMXSTBnhHODoM60pJx7/2DjWxx5p6z04Q49925nbY1/C1/d1KznbXK9ObQN0W8UfvjDQKBYBOws7nGVb94iW+jplrmdlOCb6QG35BXqW8Hy9NeEj6O7+GXzszPH+jTK8dYDUCe8uL2gcXVow==
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=2UfY/3UMMggWHpVy8hTvzn9Q/XVS99ND9b9p8Gen/A8=;
 b=R+nv58p/w2FBN7x+0o/VBUN5tKnZ9zKAf8fkll0bo5tPdXl/xJZhOQaaC8OZ6Jov7PUZlgpqY5q1eebKOyaCG/2AOXs+B5NFFtZpvLY1ZqqW3yiIm/QGaRJMhvdeT6Jdxm9hK7smtLf2ypVIgZWD5IZzYGl1o/mJt8KSJfkHNkSAxktSQ4sDUO9TkZkF74lESWVmRuuou22nrBC8xvXVGlxXQpKibDKFCWk7j1GGtxVAbE9NwkTlhygLwi+tjypa/F8hbC5Sxp6noAE9r0p2vL8sTdegNN2C7fpfMQALb37kto3fQLFYjIoCTGWIlXGdpzFRy2oTAXKcDNyG+ijYCA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2UfY/3UMMggWHpVy8hTvzn9Q/XVS99ND9b9p8Gen/A8=;
 b=idq0Xw8FXNUNpAylWnYEsWot+JrpoHNK1mVK/F9o/GKpt+7nfm9TWFJNm0UJU2tWg4RafIakP6JODVl/TRVji7popEFYcKp4qKedQ3wzP6X2SyBuLt9zVRbBfkJbD0scIM9NqqBShtinlwPeOfz52Hzmhl66twXNDObf2vDUo6U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 02/21] xen/arm: NUMA helper functions via Device Tree helpers
Date: Sun, 24 May 2026 09:01:50 +0900
Message-ID: <20260524000209.292370-3-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0362.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:79::16) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: df9bbf5e-7fda-4f2b-7e7d-08deb927be96
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003|6133799003;
X-Microsoft-Antispam-Message-Info:
	MDNCcxtxK0T2M49WJme8aLzQgtWjoM7ulHUY74PoPexnCPzJabwdncCJI4gzgz3XAVxjcIdSne2WCEGV5bqTqqUH3LVzjoYoZBG9BF2lBqh9CJZq8GJxFEz5tBQ77ag8qW9x9cZvSarAge8CJ63EUdemnxqajSwNNO3/gtBDmgNSF7M31vVDwc7Y/WwbawxA6rNmftq4sJ4ndE9RBSSzR3vH9bZKQfSjOLQxK80LSB1a0YI+F1wfB9mTAmf2sqYSaZvZx/xmnCksplq6iYvRsEnN1xlRHRGhKFbTFNXZChFnS82vXnR21SKC6CDpSXHWc5mEeDmAog3BvaMHwzrg93u9xVwCUcbiPfsbhKai0Z6hwSMnSVZ65nReqVdk7hrCfJQRRRiu4FLg+jwTtcbCDIRw7mhZzwM+++DUwlSmKjq/0koZYJUfitv8YCOl85bbDoAChCBlLcW29Oynhx8m++MYdzyb0pAu8JdbioyAw3nflRyk1r7cCD72Hm6lNzFoPxPuM3v3gDOL/HFbX+UjJgub/RwjBO7Ojp+saPkj0YCfW5xw8da1U0dfLuFxq+gwLbj6i3naNS6ywBMKV+8Vs4H/ScLVxj/rLJKXLRVJX61eASa9Dt5nei9X2oN80IlNBYZeK+IvJRJFivw2UlnoaqZNLiYqp8cT5sVM6aRf1fGiY4IWql/fQrKxo7xQ1fYX
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003)(6133799003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?xBjJUdMFMY2sxBaqThQafBvuvY41q7wOhHhlGA9vHKGIqAJf1ra5iPqbLrvy?=
 =?us-ascii?Q?veFEsaOFoGxRo9aCIHzrj09vL1NbDC5ULBVF2Alscu9bFwQe7TLDjub25j59?=
 =?us-ascii?Q?vwUuFQW90PN0QIatyFRHmrPcqgZ1VhKNuewpwtEJSjxouC6NlRRhbnqRIp3i?=
 =?us-ascii?Q?M8UruoWv40xK36fdB9NmpSHlT5Z5UODuWBBrz3Un4v8VbNI/0xkGOW2LDAHD?=
 =?us-ascii?Q?pInzs06KoSUJS7JryyusYOIhTPE2jE9mLPGcN9Fs37d4wB3rbmLxnuOaUt0q?=
 =?us-ascii?Q?OgbKL2y18bNjAhg+ghuCxBXNHYy59mrQQBV8e2x8xUkITp67naQHN3lK0NgP?=
 =?us-ascii?Q?z3srmDzDynJ7teRAZMHd3IdRCOi2S/ruddNhUA42dt6qmYO46qNJg6ZfpQZS?=
 =?us-ascii?Q?V4/T7TsXxTWTZbabQYBVB8b43a4Jz9JMCe45Ct8Wi+bfU21+cr8Drw3vhi12?=
 =?us-ascii?Q?HymLYw1NfxeRKYG7zJE5Y6fwaatc4DuH0zjHotCn0fgvoa0Rq0xM10f6A8bs?=
 =?us-ascii?Q?O1DM3eD5P5Z5xsC1ifsNogfsVOBkH7lFlzWw+V/ykExWNbCOfF4Bm2GzVdHg?=
 =?us-ascii?Q?yN5kCWu7Yzu/lpoM+0gRMdfA5FlaBE40QE1WIUsFqchcsbatKruEHa5lS0iJ?=
 =?us-ascii?Q?T4ec8Fe93PMQVUhFOt+OQSmP7wOsOrULUJEAJF6WklE+ndby9zqHBLxh3MOM?=
 =?us-ascii?Q?OutbVn/uELTTZJRUR38z+QGHoWFMNDO5/i0s7FNhc5pjrrGQztHjuWIaubJ3?=
 =?us-ascii?Q?RS2A/eAXnHaelmnH3+4Ir0EIdGgtnQnnyT3r3+CJJv6Urtpp93kWcu0qNS+i?=
 =?us-ascii?Q?0x8U1Gd44azrS+V6aVXGy7v9ht/OLX28RpVC5A6tIaPBbiDojtufCuXYwChU?=
 =?us-ascii?Q?0GFXAz/bQ5WkAAAF56nKI3FKWiV6FzQ3loDJCn7q8o2smrm5EvucXJBE7xzW?=
 =?us-ascii?Q?rfFf19FNs5Nxft5j5/hCSP0Cd/0oNs8KubGrGo6zAFbEkoMGtkKzdIbRLtCz?=
 =?us-ascii?Q?cBeq1pPxJL3IxXoNEhzHuFkpryoN7a4EFDtE1AdP8D7KtWi9yU85GIvQnWNT?=
 =?us-ascii?Q?QkPq9NhR7gTrgfNSdD1AjEL7/tQKqLZfoD8ZG2apa6UqN4dqlvwvcjITzj33?=
 =?us-ascii?Q?hfw1aUsZdO3NJu48/wTvyTDmPzoM+2l3r82CHbGgt7ZLVyhO8gf0va6En5VQ?=
 =?us-ascii?Q?kyqL/8116FXEEuUd3ki/OVpxbl27P2ZZijx8SaBG9uT219zwshyyygFFIKTv?=
 =?us-ascii?Q?ZeOYegLsZn0TQxBnBs/h2Z2ixVT0rskkePMVrb6q88YAAymseQBcE1WkiuWK?=
 =?us-ascii?Q?rEW6GSM3f/34g4vkS7+NYvda0DOPjXsTy93+foSdwySmTbCPb9iaS9gXv+gp?=
 =?us-ascii?Q?Xx2KxUiI9OLczKBBFqj4bQu7jnqpR1NtxYl+5JuMF2/32ZA96oLvMbNEsMVx?=
 =?us-ascii?Q?FBu5RKFYFXoVFdxeDC364qgTYYc0XaAKCn4bR89h4JFVOFcxBVImkxXTETmK?=
 =?us-ascii?Q?aIt2LbNDVJhOjMQ1KPeOUnP2BcSTz/yyIeyJoafbyfHxQk7Xy3PwBEWKVU2Y?=
 =?us-ascii?Q?0AKoWiVt1058TiPNm153nRoRhm50Q1HCbM4B3GWrUwcY22+wqgIDBe+vO0AN?=
 =?us-ascii?Q?AAjMeWijit5zFyxdDaMCw+gGe74j7hqYqOgZuSl+wq75l+8f0FtjjFWykUoA?=
 =?us-ascii?Q?cF39ADzBxUiAjlp55umyn2PZwvTAu6VQyo0/kc+oNVGmrES/hg3FvgMftDP2?=
 =?us-ascii?Q?vCMY1ka42A7crobhwXNRCL3I4iSxDqSqWSDHpdRvByInWXtm+G6rF+A/zGp+?=
X-MS-Exchange-AntiSpam-MessageData-1: rH2jOF8uG9UzAQ==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: df9bbf5e-7fda-4f2b-7e7d-08deb927be96
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:02:28.6628
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: am0fyNu7DBvXQXk9xWtx4Pwz73oA+e9rNhxrG57p1JHBU2sFe46eqij5blOWpD1oIwCrJoyKqHexCuonuRPsWQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-d25034/1779580950-F4A7ACF5-FAAA2D2F/0/0
X-purgate-type: clean
X-purgate-size: 2693

Implement the NUMA helper functions for ARM Xen by invoking
the Device Tree-based NUMA helper functions.
---
 xen/arch/arm/Makefile           |  1 +
 xen/arch/arm/include/asm/numa.h | 18 +++++++++++
 xen/arch/arm/numa.c             | 53 +++++++++++++++++++++++++++++++++
 3 files changed, 72 insertions(+)
 create mode 100644 xen/arch/arm/include/asm/numa.h
 create mode 100644 xen/arch/arm/numa.c

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 982c6c396a..d732918dac 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -51,6 +51,7 @@ obj-y += setup.o
 obj-y += shutdown.o
 obj-y += smp.o
 obj-y += smpboot.o
+obj-$(CONFIG_NUMA) += numa.o
 obj-$(CONFIG_SYSCTL) += sysctl.o
 obj-y += time.o
 obj-y += traps.o
diff --git a/xen/arch/arm/include/asm/numa.h b/xen/arch/arm/include/asm/numa.h
new file mode 100644
index 0000000000..a1fa54f2e7
--- /dev/null
+++ b/xen/arch/arm/include/asm/numa.h
@@ -0,0 +1,18 @@
+#ifndef _ASM_ARM_NUMA_H
+#define _ASM_ARM_NUMA_H 1
+
+#include <xen/cpumask.h>
+#include <xen/vmap.h>
+#include <xen/dt-numa.h>
+
+typedef u8 nodeid_t;
+
+#define ZONE_ALIGN (1UL << (MAX_ORDER+PAGE_SHIFT))
+
+extern bool numa_disabled(void);
+extern unsigned int numa_node_to_arch_nid(nodeid_t n);
+extern u8 __node_distance(nodeid_t a, nodeid_t b);
+
+#define arch_want_default_dmazone() (num_online_nodes() > 1)
+
+#endif /* _ASM_ARM_NUMA_H */
diff --git a/xen/arch/arm/numa.c b/xen/arch/arm/numa.c
new file mode 100644
index 0000000000..080d7892ae
--- /dev/null
+++ b/xen/arch/arm/numa.c
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Helper functions for ARM NUMA.
+ *
+ * Copyright (c) 2026 VA Linux Systems Japan K.K.
+ * Author: Hirokazu Takahashi <taka@valinux.co.jp>
+ */
+
+#include <xen/bootinfo.h>
+#include <xen/init.h>
+#include <xen/numa.h>
+
+#if CONFIG_ACPI_NUMA
+#error "ACPI NUMA isn't supported yet."
+#endif /* CONFIG_ACPI_NUMA */
+
+
+bool arch_numa_disabled(void)
+{
+    return false;
+}
+
+unsigned int numa_node_to_arch_nid(nodeid_t n)
+{
+    return numa_node_to_dt_nid(n);
+}
+
+u8 __node_distance(nodeid_t a, nodeid_t b)
+{
+    return dt_node_distance(a, b);
+}
+
+int __init arch_numa_setup(const char *opt)
+{
+    /* parse "numa=" option */
+    return 0;
+}
+
+int __init arch_get_ram_range(unsigned int idx, paddr_t *start, paddr_t *end)
+{
+    return bootinfo_get_ram_range(idx, start, end);
+}
+
+bool __init arch_numa_unavailable(void)
+{
+    return false;
+}
+
+void __init numa_fw_bad(void)
+{
+    printk(KERN_ERR "%s NUMA info is broken.\n", numa_fw_nid_name);
+}
+
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:02:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:02:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318180.1586558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIh-0002WP-8M; Sun, 24 May 2026 00:02:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318180.1586558; Sun, 24 May 2026 00:02:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIh-0002W8-34; Sun, 24 May 2026 00:02:39 +0000
Received: by outflank-mailman (input) for mailman id 1318180;
 Sun, 24 May 2026 00:02:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwIg-0002Sn-1d
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:02:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwIf-005yCJ-E1
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:02:37 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a123fb2-e002-0a2a0a5209dd-0a2a4502816c-38
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:37 +0200
Received: from [52.101.125.80]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124018-af86-0a2a45020019-34657d50d7f2-4
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:37 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:02:33 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:02:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mefU6PraNR7PEz8+XUZO1X7VadVogLNBRy9swjuCETpWD0h3CcEbyKrp+yUH85hhm5ZKUbA9CzkwnELYl7rPn5cKfZu2bHFPdbFJ9OFSxl7ha1YNlmYXHTjk961HJVE2RSePQ62JsznrRbEQr3d6mZNH1+Vi0GNbbmHa1bzR8HxHRfWINwteyURoEeMSD+6bzWojQD5ScqWIVHlOmOdv/mEgV+WG2ZtqXbH48m0QsForbInjMnhp5jIj5CPhAQpsGNfV8hhBYUmpYmdnEtu/xDN+/FriE8OgebYjjBGQajwACwSO7CLcBLeLaYceX8vwlvTgmRawQXIBoPlFEN54+w==
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=WVIHzGP7xPG+QeB7F8sNCSVrdxqJXbQqFgu/3yZPit0=;
 b=e+mcNfU2BzWjwNhQe+1c8ivVxFCumRJswBO+4qcszFfzM5RpstpCFycIwYqBfDkRpV1U4bcodtlqWzxsAxwSdxuyaW7AFIzzGHC3ffpiDvDvltISytN9Z9ZPDtX/l/sF+DCjirE2guXANSToFItymmeKjguEQ2uyGW1ODrxVxHrh9ELsiLQK1YL1FlZVHt/O+67z5MKEn2yZi3aYzH7SSGCyR7Z9KkufHgsin/QbSP+FQPcs8k/ekp+Nw9Xjo2lnZ6N636dpPAn04Z2iBktGiO+5zeiqg+YemOkuCm5ca0s2kfUkU0GVbwO3iMR+bmvcIst8r4TjUx/h0RdqiROG3w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WVIHzGP7xPG+QeB7F8sNCSVrdxqJXbQqFgu/3yZPit0=;
 b=uUCFMeZ6s0Tztnt425HoYusX0mARTsM8x+ho0Jei8n4Zydxv1C3fUca3MwuCgOKG1O2u34vvl5T43fSlUsAJJyKxEi883K7qgBhVIM1RiQL2NbqXAGzwbdZElmZ2KweQdNHIDG1sBI+WgAHiOaG9FVMwoNO+nIDJ0eAmD7w1/P4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 04/21] xen/arm: Configure NUMA affinity for populated memory banks
Date: Sun, 24 May 2026 09:01:52 +0900
Message-ID: <20260524000209.292370-5-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0369.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:79::13) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: 93085a46-e6ce-491a-b2fc-08deb927c191
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	1NTHi9kcwwryqCBSper2HnSXkdNuqsOu0+eBBM6pTDvSLZRND/ixN8FztL1vCR7988Ampf2lWXzwoZZhwn/T4BxfQnQzCzfWVqEh9tS5bQBMseaCprqGLDtpPH9HqOdSwgUA/jgnwzg5bX1j8A/OPIo5v2KK0sHRwf/c3OmeeoQK4+2u+rxD05KlVPa8pl0qoNr9C9YCw7PbaAueT4USIg14Yym5Elo10LN9od75yC5RDVb+lwzKfdMiEu5I0uJxvLyuz+l1LZKZ4CPbqwlqJmSPkHADUeJPZr0D0/YOJp8R1DopG7ac/Wr8LKipNOWIcmzS/I62keviFbLgc7CHAQxLB+vS93SmrRm7lGa5pHbdyyjAevCjJQJdH7SWsll2/zIG6pec9ryQPJ+L7Ua2dxIEqI1i6iIRO7A7sKJs4tUPDg5UpG+q+tFdeBVVRmu5QgXvynOQ6ZlXGs48n0P3BRNv9rTp7CadSB0nuC9Sow7UpR6h4F2zJ6/yrVEnhEKRlK/HsXnpCSuMA+QkZTjx7I0ajPplS7Eri3QzBrgpLeOrhHw91x5DQORLtaDMNY69iIGr4AoEnmV2wnKwpaDPmsXrSxSuxFaLWtXgrPcKMG2gblY+3Pk9Hcp2CUrVOQO7Tim5TTZ4tCdUEHGRo5wH89CJxV/VZSY1IbYnAHgvuZ5Lj4MCY3kfOPfyPSF425EX
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?XECKhY1rSWj2c0XCKAUrMpJ6BwxDNm/mGbmT3EqLf+IUoykStYHgzBKPkT3q?=
 =?us-ascii?Q?+yqFc4pyZN2Mk28Z/Bu6bBT2Yv5AsAoUbmcUyhPb9jDrjOPL0/m0wy6yUp26?=
 =?us-ascii?Q?yF6V0VB5ll7bjYMY1OSlEc9u3HvmXd/9X4AKIMXAL07sDIXpBKxRiFvwJRIE?=
 =?us-ascii?Q?CUlpSnprIfh8SUPI1YJl8dko7eZUPUFTy3XOVtMjoCgNvZ5tw+2lerKwT1RJ?=
 =?us-ascii?Q?zjuhh0bECS26fZSGV5v7ZArUYZOV/S2Lsvaz+/KVNhWEiKvbvCD5OnoTUIey?=
 =?us-ascii?Q?MqbHLYqSKfSH1DdKoMeT6WxtZ9WX3Z508ZrFna37ivtqJMU+miBJHbmHiScO?=
 =?us-ascii?Q?p/Lj/UxjpDLDYotUqUMVhN9VVscODHVXDyJV6V6A0P89NzcTuOPDQBH1lQ+8?=
 =?us-ascii?Q?6F2cMSGYxXrNU6tpy2xA8jMUCgguMn3Hu3pzaByu/DMxKY2pRPiGXxO4rAl3?=
 =?us-ascii?Q?t+T9tnVVzrntI/3mNN7HPQBDIuut8korPxDkIPCvXb82eI+kt/fp4SFQn++n?=
 =?us-ascii?Q?DAlkUvJz5m4+XirjUF6k+HXxyxj0I3uaNc5IunjK/ZvT/04NvGge7XaG+Rg6?=
 =?us-ascii?Q?V3JfD8WDaUSre6qHaC6ugdT616KU3pg/vJgqB1ZjCeMD8F3769rDL9mitYFv?=
 =?us-ascii?Q?mM6Q/zDp6FDJm1r0BD9snyouD88SJYYE0ZETUJG4UiDKx+3pdNOE6C1kuLR/?=
 =?us-ascii?Q?XZThINv+OHZ3QuJHMdJRe6QRVBTuqri7V2pbG8TWKffDzM0lbfDEEQ/yhhwQ?=
 =?us-ascii?Q?PXYEXcDsskN6W8CUSJJ7lD83HVLycFulOEKjP6r/nlIqF/hta+nRb1Byma0+?=
 =?us-ascii?Q?QpYLhCxJjEr6ogO/RhuJSh/QYtNwSQ7gF9BiAjlNaszN62Df/IrRxhwex9rb?=
 =?us-ascii?Q?/sqGsPzvsVzcDLOX+bG/f1vBAPwgVjRLm2i83ZFSzZzn2uYC/bSJWxboidx7?=
 =?us-ascii?Q?3csiNYhmY0ni2gfEoqSzc9Svu/7wz5dmVXAlTOuJFaV/PkwdiCaYYUfKChll?=
 =?us-ascii?Q?FdM++juOkhRAVI3Kq6ziI+KIBD7xuNLnNVc8iKHrgo5s8JmdrOqSUyARxHHd?=
 =?us-ascii?Q?va0bJR71xdCEJGOcUtGKFp9hzaffMy23Mww4hTNIcQvwr+4woxPsyPMs/K7v?=
 =?us-ascii?Q?/CPOMcQHfte89Z4yl68oTkhAaJaqcv9BT5Q3f7S8AS8GMXHyrIQT0gvyklCT?=
 =?us-ascii?Q?X3CsHIZEuWWZT7uoX+xFslR+QiUvKWjYlJz2eTZPo+NlADpf1S27U9m5zsia?=
 =?us-ascii?Q?Obfx30CuVrifSD7yFHCPDbBy9Ht88eCiKpYDXkAJF8zsFuQ65WvaUmjSzI2R?=
 =?us-ascii?Q?+10jts3oJ8eCLgCi2GkdfZ/EGrj27FCkS6Pdf9pnnCuuGNQkiWT+bgl6Eejw?=
 =?us-ascii?Q?LnRsrFRkvkqSHQaTVSlL166nCNLipn3snBs2UyzWia2ne1WLe1Cl4Z9iMMod?=
 =?us-ascii?Q?sASSt4uKLGN0hsz23Mc5oEYjVAiO3kGG0kmVxdQbksfE4KVe8rZ2d+StS8O1?=
 =?us-ascii?Q?SVFp079eK1f5dOn0yYBhH4idEVGa5dMO5sltWWxxN+B6BVfhgqe6IvhRpTzX?=
 =?us-ascii?Q?C2gPhgX6FOEFwoIogsd3q0i+qBZBod4GDd1xucVK/WBr0wVuAq+UaihTfxQU?=
 =?us-ascii?Q?MgJ0WdWLXz9bR94E81JATbRyXMcCSayayikBZctPkrgHtRKPuCqT2ziFd/aT?=
 =?us-ascii?Q?vYOKBnNlhwjEuinDEl7ArZoSITeFKkgtyivzSIwJ6giCzmxpppUjQmHTlLMe?=
 =?us-ascii?Q?WAJ1gtqNQPezFUJAikbTukgd+taCvr1iUvD7cWH2Tj1WTqsscH2fhoPL2vZz?=
X-MS-Exchange-AntiSpam-MessageData-1: 8BZSR9vUGrSIjA==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 93085a46-e6ce-491a-b2fc-08deb927c191
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:02:33.6397
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GqCf37imG9GErcyKDXFmJbjs6gvZ9FFm7KWEcRdYST2jd3LGyoIu5zh8jY01S9lzI16+NNGwVlg1baK3pVtAcQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-720697/1779580957-A8B78161-D1620810/0/0
X-purgate-type: clean
X-purgate-size: 6123

Configure NUMA affinity for the populated memory banks. The NUMA
node ID for each memory bank is retrieved from the Device Tree.
---
 xen/arch/arm/include/asm/numa.h       |  1 +
 xen/arch/arm/numa.c                   |  7 +++++++
 xen/arch/arm/setup.c                  |  2 +-
 xen/common/device-tree/bootinfo-fdt.c |  8 ++++++++
 xen/common/device-tree/numa.c         | 29 +++++++++++++++++++++++++++
 xen/include/xen/bootinfo.h            | 23 +++++++++++++++++++++
 xen/include/xen/dt-numa.h             |  1 +
 7 files changed, 70 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/numa.h b/xen/arch/arm/include/asm/numa.h
index a1fa54f2e7..6f1ccb4eb3 100644
--- a/xen/arch/arm/include/asm/numa.h
+++ b/xen/arch/arm/include/asm/numa.h
@@ -12,6 +12,7 @@ typedef u8 nodeid_t;
 extern bool numa_disabled(void);
 extern unsigned int numa_node_to_arch_nid(nodeid_t n);
 extern u8 __node_distance(nodeid_t a, nodeid_t b);
+extern void numa_memory_affinity_init(void);
 
 #define arch_want_default_dmazone() (num_online_nodes() > 1)
 
diff --git a/xen/arch/arm/numa.c b/xen/arch/arm/numa.c
index 080d7892ae..15cad3d267 100644
--- a/xen/arch/arm/numa.c
+++ b/xen/arch/arm/numa.c
@@ -36,6 +36,13 @@ int __init arch_numa_setup(const char *opt)
     return 0;
 }
 
+void __init numa_memory_affinity_init(void)
+{
+    dt_numa_memory_affinity_init();
+
+    numa_initmem_init(0x0UL, 0x1UL << (PADDR_BITS - 12));
+}
+
 int __init arch_get_ram_range(unsigned int idx, paddr_t *start, paddr_t *end)
 {
     return bootinfo_get_ram_range(idx, start, end);
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index c0202d9ff6..cdabf536b0 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -352,7 +352,7 @@ void asmlinkage __init noreturn start_xen(unsigned long fdt_paddr)
     acpi_boot_table_init();
 
 #ifdef CONFIG_NUMA
-    numa_initmem_init(0x0UL, 0x1UL << (PADDR_BITS - 12));
+    numa_memory_affinity_init();
 #endif /* CONFIG_NUMA */
 
     end_boot_allocator();
diff --git a/xen/common/device-tree/bootinfo-fdt.c b/xen/common/device-tree/bootinfo-fdt.c
index 272b5a6c0a..2d0e809231 100644
--- a/xen/common/device-tree/bootinfo-fdt.c
+++ b/xen/common/device-tree/bootinfo-fdt.c
@@ -121,6 +121,9 @@ static int __init device_tree_get_meminfo(const void *fdt, int node,
     const __be32 *cell;
     u32 reg_cells = address_cells + size_cells;
     paddr_t start, size;
+#ifdef CONFIG_DEVICE_TREE_NUMA
+    uint32_t nid;
+#endif /* CONFIG_DEVICE_TREE_NUMA */
 
     if ( !device_tree_node_is_available(fdt, node) )
         return 0;
@@ -136,6 +139,10 @@ static int __init device_tree_get_meminfo(const void *fdt, int node,
     if ( !prop )
         return -ENOENT;
 
+#ifdef CONFIG_DEVICE_TREE_NUMA
+    nid = device_tree_get_u32(fdt, node, "numa-node-id", 0U);
+#endif /* CONFIG_DEVICE_TREE_NUMA */
+
     cell = (const __be32 *)prop->data;
     banks = fdt32_to_cpu(prop->len) / (reg_cells * sizeof (u32));
 
@@ -158,6 +165,7 @@ static int __init device_tree_get_meminfo(const void *fdt, int node,
         mem->bank[mem->nr_banks].start = start;
         mem->bank[mem->nr_banks].size = size;
         mem->bank[mem->nr_banks].type = type;
+        set_numa_nodeid(&mem->bank[mem->nr_banks], nid);
         mem->nr_banks++;
     }
 
diff --git a/xen/common/device-tree/numa.c b/xen/common/device-tree/numa.c
index 06f2c8b102..539ddfccc5 100644
--- a/xen/common/device-tree/numa.c
+++ b/xen/common/device-tree/numa.c
@@ -22,3 +22,32 @@ u8 dt_node_distance(u8 a, u8 b)
     return LOCAL_DISTANCE;
 }
 
+/*
+ * Initialize memory affinity by registering bootinfo memory banks into Xen's
+ * NUMA subsystem.
+ */
+void __init dt_numa_memory_affinity_init(void)
+{
+    const struct membanks *mem = bootinfo_get_mem();
+    unsigned int bank;
+    nodeid_t nid;
+
+    numa_fw_nid_name = "DT";
+
+    for ( bank = 0 ; bank < mem->nr_banks; bank++ )
+    {
+        nid = get_numa_nodeid(&mem->bank[bank]);
+
+        if (numa_memblks_available())
+        {
+            numa_update_node_memblks(nid, nid, mem->bank[bank].start, mem->bank[bank].size, false);
+        }
+        else
+        {
+            dprintk(XENLOG_WARNING,
+                "Too many numa entries, try bigger NR_NODE_MEMBLKS!\n");
+            numa_fw_bad();
+            break;
+        }
+    }
+}
diff --git a/xen/include/xen/bootinfo.h b/xen/include/xen/bootinfo.h
index 7923be2b38..d01a28b359 100644
--- a/xen/include/xen/bootinfo.h
+++ b/xen/include/xen/bootinfo.h
@@ -7,6 +7,7 @@
 #include <xen/macros.h>
 #include <xen/xmalloc.h>
 #include <xen/errno.h>
+#include <xen/numa.h>
 
 #define NR_MEM_BANKS 256
 #define NR_SHMEM_BANKS 32
@@ -56,6 +57,9 @@ struct shmem_membank_extra {
 struct membank {
     paddr_t start;
     paddr_t size;
+#ifdef CONFIG_DEVICE_TREE_NUMA
+    uint32_t numa_id;
+#endif /* CONFIG_DEVICE_TREE_NUMA */
     union {
         enum membank_type type;
 #ifdef CONFIG_STATIC_SHM
@@ -228,4 +232,23 @@ static inline int bootinfo_get_ram_range(unsigned int idx, paddr_t *start, paddr
     return 0;
 }
 
+#ifdef CONFIG_DEVICE_TREE_NUMA
+static inline uint32_t get_numa_nodeid(const struct membank *bank)
+{
+    if ( numa_disabled() ) return 0U;
+
+    return bank->numa_id;
+}
+
+static inline void set_numa_nodeid(struct membank *bank, uint32_t nid)
+{
+    if ( numa_disabled() ) nid = 0U;
+
+    bank->numa_id = nid;
+}
+#else /* CONFIG_DEVICE_TREE_NUMA */
+#define get_numa_nodeid(bank) (0)
+#define set_numa_nodeid(bank, nid) {}
+#endif /* CONFIG_DEVICE_TREE_NUMA */
+
 #endif /* XEN_BOOTINFO_H */
diff --git a/xen/include/xen/dt-numa.h b/xen/include/xen/dt-numa.h
index 721e8955fa..c6939d0928 100644
--- a/xen/include/xen/dt-numa.h
+++ b/xen/include/xen/dt-numa.h
@@ -14,6 +14,7 @@ static inline unsigned int numa_node_to_dt_nid(u32 n)
 #ifdef CONFIG_DEVICE_TREE_NUMA
 
 u8 dt_node_distance(u8 a, u8 b);
+void dt_numa_memory_affinity_init(void);
 
 #endif /* CONFIG_DEVICE_TREE_NUMA */
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:02:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:02:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318176.1586531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIZ-0001nO-F0; Sun, 24 May 2026 00:02:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318176.1586531; Sun, 24 May 2026 00:02:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIZ-0001nG-BB; Sun, 24 May 2026 00:02:31 +0000
Received: by outflank-mailman (input) for mailman id 1318176;
 Sun, 24 May 2026 00:02:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwIY-0001mv-1y
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:02:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwIX-005yAt-EY
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:02:29 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a123fa3-2eae-0a2a0a5409dd-0a2a450c9d92-42
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:29 +0200
Received: from [52.101.125.127]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124013-62f1-0a2a450c0019-34657d7f2312-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:29 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:02:25 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:02:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=agJ/ND/peAeVtvwhCsYcDGuWxyPh/2NOwN8LwMb83rInm4PMF3FIOk+s/mdc2qZvV08ZXaQz4Y048sVRJOxORFFgIKaHLMzH6H5L4yve9xhC7ZbLlzsLxrbCKT6nIi7ePghupCIGpyyHsUs6ObaoucFlY1at1ByuNiLs+pMhvs2XO8otaUa+ojUMOXMiciMLWnZvbmu0CgpFk09sG6PNAW7ChetV+kb9wqU88ChpPthxibRlLtCooai+xA8FmGbiJqPHLPLvHqk5YfZAsys2gAtbRl7HoeHJyY3e3aA1orQK/M+lIk08pJfumM1cvsoZrC/2ko0kHr/5ukxNO2P3tg==
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=m/R21pUJg6pY8bZJcj1ewVHTTXMBNM9XTiez4FJ+LVc=;
 b=OD0m26qk+b5WiVUDH5sBBr50shkiW6fcScqBirI7ksNKJVq9taoJUPO4rJcyngq/VJHR9gGPRtvrhOzhVPDEO0S/eKcKwR03PlfWYYUqoGiVhq01qJ0xPKSQDqVoO8QdNPqgwVJxtOohJJn3spfa19RifevlWa4Rve2FgyyQwxX1WbkdX9TxXTJKkW28av3ga5t1EPgYVYwAf0eUWm5NCRXNGeVlDfsq965vnPUYua2TgcutErl3cUhHjPGlyTs2q4AobNuhQDiwNA4T1b/0ZwRPAl6TPxm6iqN9CyiGinObgQNFR9FKrbrFqrc0xZmiC6YGHzn4wpXb3iyHHsX1Zw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=m/R21pUJg6pY8bZJcj1ewVHTTXMBNM9XTiez4FJ+LVc=;
 b=kqkbkU6nCwFAk30Ufv+coBPb4DyJrzfpZdim5O/xidmDEGOrnuVLy0IUutMbpHxi5a0vGjazgTigf2vEUOMZ/KoCWhfx4P39HnF/eKT7m3MoA9ZNSz35+h4pk/F7+W7wn6oiIxGbPqNmZQO8MTxhaloaS2VMsMt1k4s/cZp8kxc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 01/21] xen/device-tree: Initial framework for Device Tree NUMA support
Date: Sun, 24 May 2026 09:01:49 +0900
Message-ID: <20260524000209.292370-2-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0364.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:405:79::8) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: 78fb19ea-ed55-4dbc-a178-08deb927bce4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003|6133799003;
X-Microsoft-Antispam-Message-Info:
	8yha/SU0sh9sBC5zOwGdVHT+FXrkUFEJMjSbUGIlhS8Zc3nLxG1lZ1NNmpng3UNDf43nrL1O/DR4/ZLUsN4+Yy/DxtTqp56XfLfdYihH5veYxsz2szL/IE/AVCeIPD4oCLEiXOnfgO8IIECIdB4JecZ2+u5t97sQKneoG0iLEYmH+0TAxNKZjrnmTfrxB2/0jRSP4qpxh47SzkipjcOH+lVx2KNzEeF6w1PFfBH6XGio1Fitqf4AdF0vU0V7L/fWj8aCIEOm3fheQY8aC/2XPlM0hAsXJkR1gRgIHLQ6V/Hj5gz6BdxX6zVjgDgmD0we+s8ZFUywtNsHVon64peDfemzxQss6uaPYoyQtWNYmOIFMUTKvw3/DZSlF7YdBTmb+aDGaqxraBb8pTNOHme8KruD+A7H63X1XHOyBbyR9w3adifcpnJtXIqAjhHmpNb/ifg2q/oIr+ghx9IpvQssvJJ7uBo06B1uuJbo7whlwguFCQDCbo1ba6anlmQ5XBAUSaXph3MDdGgyWVZLY4eE///Hh0re9YHY9I556O5Q46G0xpmhNHUFkZkD0V0ahlu8Pk+s5xYXjBVHNMITwSAJCbgXHvebD18Lcfask4PC2T9XpUEZe9kuoxvSIKAHSSD9opB9RbRSB3/4mDYtUqqVC0jJ4rce+tHxdO4Z7qjkjQgy3bgvYFeg7X/a8BmPlClc
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003)(6133799003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?mrhEAorlqh/4TDqVBqxcYMpIib4vcGYiWkZKJ3w9fEnZhzz9ZzJyeNmrw+jw?=
 =?us-ascii?Q?Nn+cYeEu+2JvpkawJpv+TWBcCZqjoGqrdGoEo7NGtrQIsqjqx/BXZBmpQE43?=
 =?us-ascii?Q?tDLSbO0PCIGMxnxELrbfBMQVMDdkRSs4vKUUXnATlclqK3wLQHoEm4LMHkfB?=
 =?us-ascii?Q?hGWtBxQYEff00ZYI1Nd7woEFIsIlbEJf+vUwxrp3B15qmutQRxBm770slVPs?=
 =?us-ascii?Q?dLEnH7jQ28Kb2s1a/4nvr0xwMoJcw1+gWCHYi+Ex8MJjfZR8HOVe+GnwmrG+?=
 =?us-ascii?Q?3uP/HsHExocdXUyYMUfjU0ElObVW+tgifcPRxU/K+ivXbvHXS5LlR4bV2PSJ?=
 =?us-ascii?Q?dGl5trhOL7r7kMNJMvgGaU+pcL7u21FcgvBZMAMUp7fVaQ/rQVlLuDoFKUlG?=
 =?us-ascii?Q?MQN9tn5PFSmXrUy8GNMxKG5KaYu7pZYkRBK3aCopzMAFKkSG1kasQwOmCJYT?=
 =?us-ascii?Q?gU89cnllUgtVcxtQqT6Bi6IsgCzPO3inDJnGA4xVjyPn7gHPutrVs2DPetM2?=
 =?us-ascii?Q?yw9PkFP89hDkmV3LjNA0D/rvGVrPUACS2BukHC6Lw7WqZMaqCoteOtJ3zv1D?=
 =?us-ascii?Q?CA8fiSGRwcLi7m2/JA4XjO28bUKeztEW7K6fnZXErb76HDNkcE96JicQ1K7B?=
 =?us-ascii?Q?FcRrC2GcRX2O/TLKwIfFX/s9WGF00m95rrGczCxACNPl8S5o9HVa0L/wQrG4?=
 =?us-ascii?Q?TAMlHb8F4UALNM1uEYCzDvYWYt9y1Gs3k4d+gfhSkuyjkh/si+OuGeudRZmG?=
 =?us-ascii?Q?43OZW/vGBFju38cvtxavUwTYfAnx0FF0IIV3iv+HXXgsLiFiB0zicAyqPgWl?=
 =?us-ascii?Q?b2qznQkKP1u64U/Q62gVNcgsgKgm/mYdTwRFIo86snw4tY8AKJZuHw4CyoYV?=
 =?us-ascii?Q?urozAC/9CKwUmuMjCCS6telVnc4CfAn8TuAYyHlwWwDCRfnybie+4oJP/s88?=
 =?us-ascii?Q?TdiUnrNm5JEXixmpFf5KYu/Zr4j0S22pNThgPrmrKC33torWBEYX2WEFFL8Q?=
 =?us-ascii?Q?b0/7kgCbTFNKEdFhHhkGUxb7A2lz9rzyXauLP40DHbakTQJQvMQ94O+nlSMp?=
 =?us-ascii?Q?sS94jLzv9Zti3tTQmY+BvvDiX2VFx4lylavb20s4VEGBwgtUAH/PrbvK6jXM?=
 =?us-ascii?Q?3EpFwdUXi66Yxp5OuZD1LOX66jLNECYzmYa34ohvLlBtUT9+MF6KDpKnwbpN?=
 =?us-ascii?Q?pl///N484TnM/AMdvlmmsJBGBtoIvNFovPzDXAkj5hoGC6Y7lRW4RRNExuQ5?=
 =?us-ascii?Q?zLhTzTRjg6/4UpRluybsgLHcZj6nt2lLDHfkpWBjDjk8++i+uuQkEb+Adh8W?=
 =?us-ascii?Q?Y9s2SDmhqIlnTq1RddiLh7DXmrINRbTDWQJ71pBYxVnYRd0/v/1L3tzMGk1X?=
 =?us-ascii?Q?WDRuu6vdqj+Z6YhjcfzkDhm1AmmOG+/N9UJag1lkHaRQr/EJgPcElL6/0dK1?=
 =?us-ascii?Q?sQ+xgKs8FiVE5m8kd2mXB4nDzvJ+YsIPByk7WjnYIxWcm+sau2fjP/nqM+gd?=
 =?us-ascii?Q?hBMk18ttVI9ttZNGNtioTH+lCuoxIiY29JNUWn0/IFKFH1M/jcbZJZNUNEd9?=
 =?us-ascii?Q?O0yC3Q+ail2Z2Hc2fTetUDYN3iO30Oak9hOmhiXU6TrOY6X5zBaRP+cfikLY?=
 =?us-ascii?Q?oAx0NYxUAE8lp9Z/682CyiiiU3Xpz5+YxZXcedqtAbPfKc/MV0To1jnAGAOZ?=
 =?us-ascii?Q?IW3976yhWaAz4gVpEknxYgkiuqEdmqVBIibQ5Yp0+I0A9B+hkAZU+V43IFKU?=
 =?us-ascii?Q?nZzE5c/DkGAWym8MNp9x5mGwOfHvh/Tuvtzz14Yi9OXqXli8uc38OnoDCIjd?=
X-MS-Exchange-AntiSpam-MessageData-1: zVtW4WOSeMgZ0Q==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 78fb19ea-ed55-4dbc-a178-08deb927bce4
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:02:25.8066
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: HfaCjo6Be4I0oc/uUobKmx7o4I1VYJ+lfwMqQjN2WSUYgeXZPmUip2irHvQw3sLzQgTauEIBU65qwyy19g0VeA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-d25034/1779580949-DAF72CF5-DA201144/0/0
X-purgate-type: clean
X-purgate-size: 3423

Introduce the initial framework for Device Tree-based NUMA support
on ARM Xen. This patch adds the required Device Tree-dependent
helper functions needed for NUMA configuration. Note that some
functions currently contain stub implementations.
---
 xen/common/device-tree/Makefile |  1 +
 xen/common/device-tree/numa.c   | 24 ++++++++++++++++++++++++
 xen/include/xen/bootinfo.h      | 14 ++++++++++++++
 xen/include/xen/dt-numa.h       | 29 +++++++++++++++++++++++++++++
 4 files changed, 68 insertions(+)
 create mode 100644 xen/common/device-tree/numa.c
 create mode 100644 xen/include/xen/dt-numa.h

diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
index 9036e455d6..fab038d357 100644
--- a/xen/common/device-tree/Makefile
+++ b/xen/common/device-tree/Makefile
@@ -11,3 +11,4 @@ obj-$(CONFIG_DOMAIN_BUILD_HELPERS) += kernel.o
 obj-$(CONFIG_STATIC_EVTCHN) += static-evtchn.init.o
 obj-$(CONFIG_STATIC_MEMORY) += static-memory.init.o
 obj-$(CONFIG_STATIC_SHM) += static-shmem.init.o
+obj-$(CONFIG_DEVICE_TREE_NUMA) += numa.o
diff --git a/xen/common/device-tree/numa.c b/xen/common/device-tree/numa.c
new file mode 100644
index 0000000000..06f2c8b102
--- /dev/null
+++ b/xen/common/device-tree/numa.c
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <xen/bootinfo.h>
+#include <xen/device_tree.h>
+#include <xen/libfdt/libfdt.h>
+#include <xen/bootfdt.h>
+#include <xen/errno.h>
+#include <xen/init.h>
+#include <xen/nodemask.h>
+#include <xen/numa.h>
+
+#define LOCAL_DISTANCE      10
+#define REMOTE_DISTANCE     20
+
+/*
+ * Get the distance between node 'a' and node 'b'.
+ */
+u8 dt_node_distance(u8 a, u8 b)
+{
+    if ( a != b )
+        return REMOTE_DISTANCE;
+    return LOCAL_DISTANCE;
+}
+
diff --git a/xen/include/xen/bootinfo.h b/xen/include/xen/bootinfo.h
index dbf492c2e3..7923be2b38 100644
--- a/xen/include/xen/bootinfo.h
+++ b/xen/include/xen/bootinfo.h
@@ -6,6 +6,7 @@
 #include <xen/kernel.h>
 #include <xen/macros.h>
 #include <xen/xmalloc.h>
+#include <xen/errno.h>
 
 #define NR_MEM_BANKS 256
 #define NR_SHMEM_BANKS 32
@@ -214,4 +215,17 @@ void fw_unreserved_regions(paddr_t s, paddr_t e,
                            void (*cb)(paddr_t ps, paddr_t pe),
                            unsigned int first);
 
+static inline int bootinfo_get_ram_range(unsigned int idx, paddr_t *start, paddr_t *end)
+{
+    struct membanks *mem = bootinfo_get_mem();
+
+    if ( idx >= mem->nr_banks)
+        return -ENOENT;
+
+    *start = mem->bank[idx].start;
+    *end = *start + mem->bank[idx].size;
+
+    return 0;
+}
+
 #endif /* XEN_BOOTINFO_H */
diff --git a/xen/include/xen/dt-numa.h b/xen/include/xen/dt-numa.h
new file mode 100644
index 0000000000..721e8955fa
--- /dev/null
+++ b/xen/include/xen/dt-numa.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef XEN_DT_NUMA_H
+#define XEN_DT_NUMA_H
+
+#include <xen/types.h>
+#include <xen/device_tree.h>
+
+static inline unsigned int numa_node_to_dt_nid(u32 n)
+{
+    return n;
+}
+
+#ifdef CONFIG_DEVICE_TREE_NUMA
+
+u8 dt_node_distance(u8 a, u8 b);
+
+#endif /* CONFIG_DEVICE_TREE_NUMA */
+
+#endif /* XEN_DT_NUMA_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:02:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:02:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318183.1586576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIm-000381-W5; Sun, 24 May 2026 00:02:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318183.1586576; Sun, 24 May 2026 00:02:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIm-00037s-R5; Sun, 24 May 2026 00:02:44 +0000
Received: by outflank-mailman (input) for mailman id 1318183;
 Sun, 24 May 2026 00:02:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwIl-00034j-JJ
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:02:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwIk-000m7t-Vh
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:02:42 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a123fbd-bab6-0a2a0a5309dd-0a2a4505ca84-32
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:42 +0200
Received: from [52.101.125.103]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124020-aaa8-0a2a45050019-34657d67f7b1-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:42 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:02:38 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:02:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CSNGXx45uWjRTdCWHP8vu0hNHuNQyJC4CKyRFibAR36on88tH5kPem342E2r9gyPHjCdBULx/Jrdj3uO0D+m3XbuwXPtb7KGqnLPPWwwgXjnYduQ5aqcP9J53y4HVONSmtyQN2TADeZKTERZNebVG14O/EbAiTgLs344E1AHIAVLZUUtISePCt4tEPBsRQGK0G91dDKBXOpZqGVN7sSILEoTruM31TeBKvM8o89ggnuQd1u72HqoaVsH4CMGBJRMoIdbBHC8xLiFbJEH0lBma/luD9zs+4roGvDibEOgquic8b5+/hR0d9cBliK8zIzsebNOmr3iYJWT4XPpl2Z0rg==
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=efsYPuOFBJuGq5l6y14uP1QzlvYcMA2MZ/bYJIg+6Cc=;
 b=ZW5gvFYg8G0deOojXSXDIAgILOC2eSY9FIaTE0FNZmhFkUe+o/A0cp0EPhyZNpCEdT+IK3vkQ8bE6oRfgxl2JXqiwD6eNARXI91L4++4jWJxDcUxmO/DlCpcdCYZBEnoTJft6gzk13fdpHUiOXh6kA/SYSkLmy+QP/t0YY5JUAChTGnyO/KtxFtpYnVtXJKvZH+fVdKlE4i67w1Y7Y5MsW1jffTQi1ATgUhPTiYTQG5QOUMQ6/+PnGWPDQGTByt8SiB9Ke1DFeqM9b8B88E5TXkJPtx+BwySiTph5xjpi2xATVsSXSEEte5InoNZiShUt7sB7zv+Se6PIQ4GJqLi+A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=efsYPuOFBJuGq5l6y14uP1QzlvYcMA2MZ/bYJIg+6Cc=;
 b=LRBdpmE4u/ReYoT8a9+I4bHSywMYP5Coa8RLK5AmI56USBpIrym9B0MbRXKmyxUH+vqQ9aa16HiKHa3rcKJvrKQ7R/xMJeJR+SOgxlkxRodL33PJCeogBP5mSKCErIUs6+d6rZfxuuwgs3OLVg8adXOd9KbJQd4VBdSdGnvhbFk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 06/21] xen/device-tree: Read NUMA node distance from Device Tree 'distance-map'
Date: Sun, 24 May 2026 09:01:54 +0900
Message-ID: <20260524000209.292370-7-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCPR01CA0053.jpnprd01.prod.outlook.com
 (2603:1096:405:2::17) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: a77c7827-6054-432b-ba32-08deb927c4b3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	B21M9WJ9hrkSt36IbmSYY4mpxl7sNZvRzFvDrAPgF9rRmR483073cwVVgHvIxMHnh/sV57GRf5Y+W4sn0hcIaWLBls2ZH7452xuhDzu+nF9YZnMbODSmGdrV7hIC0mBOBQNxBnhUURTv0oHbZShO+T6FOw14NXG4FxukPSgm/2WdwK8oR59lqKTlN2oxDMNsIPBPjQY10Byz+W2ybP+NuTgnZ427RJjw0NN/MaeOGxT2QjIzB0cN3UgS8aSdMuyQlPET8b5vZr2d02/N5IoXLfcAU2rqGSNPbRDk3d3tArthOw86wOt03TCbMEIGc6XiUEHR1mdpVsvixmBo4YXR0k5ZFLCAOQaLaxlU7uEUhL3ArMJR1uIRN5+BWVnTMBAC4112uvt2cBnMnIhKwEeFbGAmXVNhmzkvpiPyxMS2qd9P8yV/PSl4KJSzWOnptQdwZqXAl7annzXsjB+i7wA/kGbtfgr7zxpr7Ot818eYac+CMY4B7q3iimV8S2Upk8iJzHlxGfkkRD1UIsYviTbQuoLMm8rDOaDPZjhERiPISIQB/KqZ6wY0m3Y1q5Sy6i/Cbch7bQzZQC+LtTaRo4hagUYbieW+h4WtLb+wBVbaJ3fSmEGrXcaGDIjpWQ0HcJev6djBiujFuiOB9vyiys4sKNWRaIuR9AImdegsfl1+p9YjYCbxj4OjUhrQL7LQDuHr
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?q6mpJoyCRZHzMlv0oqKoFgLLnUlkvv4HKRhQRoU8S6Sr+I6mb0hunG93v1H1?=
 =?us-ascii?Q?C5IvHvBMMvE8iWE8LSM6MFS/WObkee0cdnOk9EydGwbAyr6M6922LEwQ3cxy?=
 =?us-ascii?Q?WlTbZO38W8Fm2HBLqSXlaBEWN2DFRKi0iD86hCkjM8FgB3qaJjxIP4ygkSaQ?=
 =?us-ascii?Q?E4Be7ACK2VBgOGfsvBPuQ/g96y6tNR3Ol03rxu6VyA6PDQT8N9+3SonEGCR5?=
 =?us-ascii?Q?doRY/1ZrlSmpI6oKW4E4oJtcK70K6mrD/K0diPVfQop1G2bnIGlO2x4OXYZp?=
 =?us-ascii?Q?ai3nY4sf1/re7gCYW77taw3s9tO7WwQHIU/gDMESr+UsqqKi5cwg6cFGBNSR?=
 =?us-ascii?Q?zES3dArThGD5EB1gwf6DQxMt0RQ9o3MYWyd08Vnc2e/CNtthqBQGzWJ4Mlfm?=
 =?us-ascii?Q?T2SQi38e6VGn+6swdio3Km/fT7VreeBkuRSCs3t/Mzt5Kxj09bwOFjeX5yj4?=
 =?us-ascii?Q?4TSTXF0OX9eFZJzejs8/hS3eBjHnJyv+WmAC4GVI9xjuq5PRyylIqJb5zY9D?=
 =?us-ascii?Q?YHTbh0xkyDNZ9vwMvNAGQSGqaAU/56N7nBKXLXm1LFOZAjrMhzmWlqMwvrMJ?=
 =?us-ascii?Q?9u4XoXC3jyfR/E+kD3mMopWzAschhR2SZEiMuy6UZkeHCMyTDNwW2Ykveh3i?=
 =?us-ascii?Q?qPKIEX3jyhaASufitEAvj498MFn2ak6meZmfPf/fJKIXwsmW0Lnk8JiFosEe?=
 =?us-ascii?Q?q4d+wz57Kz2OUOAhRj3APRBluDBOPVosw41S9grEFvbmSXP03WkZNcLaijK9?=
 =?us-ascii?Q?tkyOSw2WukOsrW6ScYJ9knYCWXSHhXlsWf6oJgj/s/yY/GqdLIjuk8omyJXJ?=
 =?us-ascii?Q?JBQlRVpkdBVbz2ROvuBb3z7blYS4f1papyRoUCaAt4YtwdQFLzllJEnLCN1L?=
 =?us-ascii?Q?gN/a5CwApBwVSdljU5juL3Z/S1tUpoMKVYA/oGR/2Yj6f8BljuUrPWo+HdbF?=
 =?us-ascii?Q?N3G5xgEU3zx/YJVutOSBXXvwCHf9RKFjQvNAAMgusPXxe0VI/zUZLtxbKghV?=
 =?us-ascii?Q?4gq+G/6zM41KKdEM+nm+Whz8IQwlH8Vxhz6X1e5vnxMiXd52oawNvDAhIiK+?=
 =?us-ascii?Q?a/7xy8Wrdgi1sDZ2nrWr2iRR6mqBhHXKhO2lVCfviaX/cqrO0sGiYWE5s6AD?=
 =?us-ascii?Q?K1zi3LOnPa7ueQjl4OdHaEQbdsECrFYczQ8w9mAgUNhBZa2txwFZH65ucdji?=
 =?us-ascii?Q?iB2TCC2cNFtA8OiqJ6w9EjWRLiYd/5UQnvlf/ui3tn/MDOJhGTog9spUKpqj?=
 =?us-ascii?Q?lPQ3e0u0UjEoimGSi4bTl2kXyXKj0oKYAJ2QRYAc0TUsfBJGY1s+e/RbR4yn?=
 =?us-ascii?Q?OLJcpfhc7tGO+AcjXBinAvg99nyQBXDzAgyGZlSjuET6/Yle7JokT8MrQsHg?=
 =?us-ascii?Q?1IX7kV3L3PJTEN2JBshHgBRkJt3X/V4sT5FRNKMEBnoxMeIxePTv6XEfIdyY?=
 =?us-ascii?Q?41EyH6A8RSUR0Lm5GasURiKtq+IGZS0mezqAUXA23uKT5P9QTWOVG+Lq8sZ8?=
 =?us-ascii?Q?x4zNura9rlmYnUGgIh4HbTP7eWFr8S4hQmJhcjs4ZJSObiAZyeUohwpyxSt9?=
 =?us-ascii?Q?cOhxekXpKZWqkYUggZnRPLH6XRltMLpukvkMJqiKD+4n1zAe/+IL51U+udDA?=
 =?us-ascii?Q?JGYmwUwxGO9GGlHSNsd9wKZP8oLMymesmAfFbjz+z3gPmiXiYb2ycuKB7jY1?=
 =?us-ascii?Q?CN1ugoMwSWXgHJG8oFBzqEUQ1me99f984Z8YtEZrR449vgX5UV/ydbidiy/K?=
 =?us-ascii?Q?cVeTnOZYHbIJR3Q38D53fJ0bYea2cgmejdkaAqwZLkwwBO5y7TMR8hNk9QpK?=
X-MS-Exchange-AntiSpam-MessageData-1: xROGa/fQWha+Mg==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: a77c7827-6054-432b-ba32-08deb927c4b3
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:02:38.9077
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sWqR3oVj76jKGArSts1XAAJ3oqRE5VqXSsZ2auioPa2PFMmC+AVnlemTS0zryetbu/vJ1jTyzFKyk1xyty4t4w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-c201ff/1779580962-E0063443-401E5445/0/0
X-purgate-type: clean
X-purgate-size: 4442

Read the distance between NUMA nodes from the Device Tree's
'distance-map' node.
---
 xen/arch/arm/numa.c           |  2 +
 xen/common/device-tree/numa.c | 93 ++++++++++++++++++++++++++++++++++-
 xen/include/xen/dt-numa.h     |  1 +
 3 files changed, 94 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/numa.c b/xen/arch/arm/numa.c
index 15cad3d267..a7769b0c7d 100644
--- a/xen/arch/arm/numa.c
+++ b/xen/arch/arm/numa.c
@@ -41,6 +41,8 @@ void __init numa_memory_affinity_init(void)
     dt_numa_memory_affinity_init();
 
     numa_initmem_init(0x0UL, 0x1UL << (PADDR_BITS - 12));
+
+    dt_numa_distance_table_init();
 }
 
 int __init arch_get_ram_range(unsigned int idx, paddr_t *start, paddr_t *end)
diff --git a/xen/common/device-tree/numa.c b/xen/common/device-tree/numa.c
index 539ddfccc5..6414806937 100644
--- a/xen/common/device-tree/numa.c
+++ b/xen/common/device-tree/numa.c
@@ -1,4 +1,11 @@
 /* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Derived from Linux kernel 7.0's $drivers/of/of_numa.c
+ * Parse 'distance-map'
+ *
+ * Copyright (c) 2026 VA Linux Systems Japan K.K.
+ * Author: Hirokazu Takahashi <taka@valinux.co.jp>
+ */
 
 #include <xen/bootinfo.h>
 #include <xen/device_tree.h>
@@ -12,14 +19,96 @@
 #define LOCAL_DISTANCE      10
 #define REMOTE_DISTANCE     20
 
+static u8 __ro_after_init numa_distance[MAX_NUMNODES][MAX_NUMNODES] = {
+    [0 ... MAX_NUMNODES-1][0 ... MAX_NUMNODES-1] = NUMA_NO_DISTANCE
+};
+
 /*
  * Get the distance between node 'a' and node 'b'.
  */
 u8 dt_node_distance(u8 a, u8 b)
 {
-    if ( a != b )
+    nodeid_t lastnode = last_node(node_online_map);
+
+    if (a > lastnode || b > lastnode)
         return REMOTE_DISTANCE;
-    return LOCAL_DISTANCE;
+
+    return numa_distance[a][b];
+}
+
+static void __init numa_set_distance(u8 from, u8 to, u8 distance)
+{
+    nodeid_t lastnode = last_node(node_online_map);
+
+    if (from <= lastnode && to <= lastnode)
+        numa_distance[from][to] = distance;
+}
+
+/*
+ * Parse the '/distance-map' node from the flattened device tree
+ * and extract the 3-tuple triplets <from, to, distance>.
+ */
+static void __init dt_numa_parse_distance_map(void)
+{
+    const void *fdt = device_tree_flattened;
+    const struct fdt_property *prop;
+    const __be32 *matrix;
+    int entry_count;
+    int node;
+    int len;
+    int i;
+
+    node = fdt_path_offset(fdt, "/distance-map");
+    if ( node < 0 )
+        return;
+
+    if (fdt_node_check_compatible(fdt, node, "numa-distance-map-v1"))
+        return;
+
+    prop = fdt_get_property(fdt, node, "distance-matrix", &len);
+    if (!prop)
+        return;
+
+    matrix = (const __be32*)prop->data;
+    entry_count = len / sizeof(__be32);
+
+    if ( (entry_count <= 0) || (entry_count % 3) )
+        return;
+
+    for (i = 0; i + 2 < entry_count; i += 3)
+    {
+        u32 nodea, nodeb, distance;
+        nodea = dt_next_cell(1, &matrix);
+        nodeb = dt_next_cell(1, &matrix);
+        distance = dt_next_cell(1, &matrix);
+
+        if ((nodea == nodeb && distance != LOCAL_DISTANCE) ||
+            (nodea != nodeb && distance <= LOCAL_DISTANCE))
+        {
+            printk(XENLOG_WARNING "Invalid distance[node%d -> node%d] = %d\n",
+                   nodea, nodeb, distance);
+            continue;
+        }
+
+        numa_set_distance(nodea, nodeb, distance);
+
+        /* Set default distance of node B->A same as A->B */
+        if (nodeb > nodea)
+            numa_set_distance(nodeb, nodea, distance);
+    }
+}
+
+void __init dt_numa_distance_table_init(void)
+{
+    u32 lastnode = last_node(node_online_map);
+    u32 i, j;
+
+    /* fill with the default distances */
+    for (i = 0U; i <= lastnode; i++)
+        for (j = 0U; j <= lastnode; j++)
+            numa_distance[i][j] = i == j ? LOCAL_DISTANCE : REMOTE_DISTANCE;
+
+    dt_numa_parse_distance_map();
 }
 
 /*
diff --git a/xen/include/xen/dt-numa.h b/xen/include/xen/dt-numa.h
index c6939d0928..075d31cb89 100644
--- a/xen/include/xen/dt-numa.h
+++ b/xen/include/xen/dt-numa.h
@@ -15,6 +15,7 @@ static inline unsigned int numa_node_to_dt_nid(u32 n)
 
 u8 dt_node_distance(u8 a, u8 b);
 void dt_numa_memory_affinity_init(void);
+void dt_numa_distance_table_init(void);
 
 #endif /* CONFIG_DEVICE_TREE_NUMA */
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:02:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:02:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318185.1586585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIo-0003N4-9r; Sun, 24 May 2026 00:02:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318185.1586585; Sun, 24 May 2026 00:02:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIo-0003M8-51; Sun, 24 May 2026 00:02:46 +0000
Received: by outflank-mailman (input) for mailman id 1318185;
 Sun, 24 May 2026 00:02:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwIm-00036w-Ki
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:02:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwIm-000m7t-0p
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:02:44 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a123fbd-bab6-0a2a0a5309dd-0a2a4505ca84-34
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:44 +0200
Received: from [52.101.125.103]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124020-aaa8-0a2a45050019-34657d67f7b1-4
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:43 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:02:41 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:02:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ja6y0onw41r2rJDQOemoDSgy66eGM6ASzMkFlWk6Y23mauRNldBo5Z/xQ1NL4lOT39TavGtlHrjHupmnHwxYbekGXf4dgNfQGNxzz3RRYvSDZ+26kbGqJEvkIA3rSeAHt9rBbGkVYhGB4fiQYtbCCjSQDgbrdvO0qaeLcKESxkh7nrWY+shUy54TO/NXZCwfQVIxaeIzZlFYIkkNuuN/VGMy8nTFPdDEkInYAEQVI8xEk6uwMzhIwmw+kQomLFQUotA1EAvnVnvnhjwWdgw4IKW8GEXPvp7OXErdudjTjZH8rXCMY5VJlY9Zp1W/n+KFwKZF03O83fmUgBwQRlT+7A==
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=sCyLbL/Ss/VTqlq+c6wx572rq1avvD+OA4b+ce+lLNM=;
 b=OVcEObM3eBJqrvT3cQ5fX8J5arpp3wKcO+P2K2QglREiNLTeLUDh060xMd3mZ7NPvG19jOLYlgslEST/NCyZdKpjX5k9SF1GQpUTbvf4Ecj7JUvuHoegUBHjn99LPW0+8oh6BOtX59GoQ0MhXzmRa3PUinLlfgZ549nV80/c5hKRmpr5m3I2El34ja27NNnNXRADx7c9o5EEqcwhS0/Zi0FI9UjgLT/gz1ncKPUf/nX7dvfXhhwcEY2Z/lQKAZlzrfiPsV2Sw6WRwZ0vwYQ8WtVu4uVy4uODVw60kNj9uFxMVew9uTExHEncwGC/w5GUMMRIE7cNzCxwkJxMn/Ki7Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sCyLbL/Ss/VTqlq+c6wx572rq1avvD+OA4b+ce+lLNM=;
 b=L4uR4YZLcx3QU99GSq/y3fpfW7DNrZqD2wzC1cFkHO3jYV+6Jok9aP7tDm86n3eTX3L1Y6llnaVKjz0wG7BMrvwhYpodvJuhxuPE4+G4kpQj0pZyuvNKq+pQQdWBpkGcv+VsAqyVwcXp0pzj2XcGsI/K6zFpPV3buAyn5tQJq0M=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 07/21] xen/device-tree: Parse 'cpu-map' node for CPU topology exploration
Date: Sun, 24 May 2026 09:01:55 +0900
Message-ID: <20260524000209.292370-8-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCPR01CA0058.jpnprd01.prod.outlook.com
 (2603:1096:405:2::22) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: 4f6e3ec9-e9d5-43c7-9c5c-08deb927c62b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	9+AtnXuPwiaWQwBp1gS6f+BubTb4nVKWoanPLq7VX5E7onJ0W5YqXcD6OvHTOgj6HW7TCvAj1q/Ft6pDx4z9IvL9Gsng1GF2UdwQ+m3ML2smy3x6p830n70na81za5oa8L7QiZcZ+m5EtxQADlzj+O925tcex+5A9f3peRqkyfzLFh/pakGa0Neh8NxQqhBG6KE99LWLiyATN6VIaKV1tg/ZurGMTD8c3JOB1OYnwPCte86xcPdmVX+kanQiMEIGdoDvAFEfOT9tzX+IyUyNnegkPj/AFe1h7bYSJuJBRtBwjmAC5MDl5H3eb0uh45OSYJ+KbSHIcrfyrPNlbcuNi/UuO3DIDSDPJkArNsMHlGJE5O3oZZFYOHrgjpvJ5ct7NTB/H/WPf2ErXBtgyj/2/LpNn9ubEoxUFwPMNH6nhrwGIv5yEZkAbRr1oWRuvBq1nKod2W6oOcHOjxE5EJU/DB1JgHflZlHekN5lB5QNpPcRGEEnzoEoswPzVaRJxcTk4RsYm2S97cTf0xNqM+MkyMvsE/jfU+KLAdIM+WKLqzSKCl6ksTFw98IN7Sjszi2s22d2m9eUqX3pqhdKczUWD4tlH3Ipd9C0NxPVdbBw2JjeE2gJAwXGGfppYRmbc9QnPLKCZWc10Z0JV9IXHRb7q6t53c6fdHV9jrByEomvdra2VRCHlg8IalReb2Ls7VkJ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?V45Bg0Ux4QSwCqNXINfuJmlgxB7vc4csiSTXjRdgxZzW3vY+TV/DSCBZtqRj?=
 =?us-ascii?Q?IylJeHjoo6o+DuwAF7mu4GmdyBW8gscXHbGdVHQWWa+qCJcEfIWIlOUR9E+7?=
 =?us-ascii?Q?2kYCxOSKEen/OAPEu6PLXXYrq/e8++1ILY5mBVQDtgxZSswoeLAf5Ne0gJE+?=
 =?us-ascii?Q?4IR3UGPqP2gD4hb7zoEJ4N1Qw0N83NB+zZVp+FOoZT1RVmKIDtT8mY8D1bR5?=
 =?us-ascii?Q?gGfJuvdwVepq2HqU7i+7JEAzbUA62/qy09Va9MwpHJJZMgFOw1x56y/jkarR?=
 =?us-ascii?Q?LcdrExqH9h43XWXz+R6qkndKpRzy5jRxeZ9nB5//V0kjrOEbh3aCU+TgSYJR?=
 =?us-ascii?Q?xzux/X2OP6coBh6/t6vHsi0vjptT1mh/efls8+gi9cGL4hLTFgkn7QVOJ9nQ?=
 =?us-ascii?Q?J4ufDQ1yMCny74IlpH5lftUQ/4zUIC1aFGb+QsGLMY3nyYE84Jw6bT0rIN1e?=
 =?us-ascii?Q?LE43JaA3DUoIx5D4gg5dazBPG3HyOOHwEFTCN4QMokx9Qv9QR1n0v8WvoYJy?=
 =?us-ascii?Q?brMLfFDKCWZzNHU7caGrG57UcuLfB8n5oZx5kAi4remeKA2jVjdofEgmk4C+?=
 =?us-ascii?Q?z3BZa9GkJWqMIDMlY3z9tnnHfMshj9v4ra7QDREz7+cdmNnZ+wOeotS+rx2b?=
 =?us-ascii?Q?EG4mNCEOEKw2mtDA4TkZjK3YmjcMYPMhqIaczGdQXYhu/mvzt/BUyISLNqes?=
 =?us-ascii?Q?HZu88APkASyKu7fn/z9+0sU4qYw6g3wJhzARyHFgkGZQV8GYOFOvUvC5A3e2?=
 =?us-ascii?Q?AMCn1e3FogzjdHaEZQ3nnxgT2iMuTWoXOB/pBg/dNrH3gYbE2XaQVHDxtN5N?=
 =?us-ascii?Q?AB6EcZtqm62+JfV1AcuEtd2q+cZPN+17Lt7bjb79mCNyt/Y0LIbsaVy8bhI1?=
 =?us-ascii?Q?tDLOUjwy984ASO9J25qzM7F8/NPGKsnG+FsUHRGXwkAIjY052t5KxJ+gW5Bm?=
 =?us-ascii?Q?afsfjFvconAGts1pHnqxnGTm8Dnus9S95livqKkyw1v1zjhiTKyEA32NBk6y?=
 =?us-ascii?Q?LbiMdadpcUz3ciKJ+RlG+Rx4bzCoCM14IGrqFTVTY3F+6nTpOcXIRBJ3yTIN?=
 =?us-ascii?Q?jhK1ahl2Nf9q6HW/dtkg/vyr2xWK9+jWcglPfH1mUs0N/95PkRidVgHKZ/43?=
 =?us-ascii?Q?REd8zM0hi6rSBwzr7ngCjoSRq87bBG860J0tL5MDcfaBOIo76B94oN5FiGYp?=
 =?us-ascii?Q?9T9n+QObLOTmf4B5MayiLPdnkqh9ae3zzJ0RJ5Cq67VT/S2sS+sd3Vl08RaZ?=
 =?us-ascii?Q?0Y3dMYc3zB/q4woc6iNbO+NQ4WLiiwQOUHIME7q1juCNbtkoeS34BgQz8xGX?=
 =?us-ascii?Q?sY010bFtqHy3RLc0nwousvnCKRd+4mStQ+YDNx/B5rIwEKMD+7Yr5XGHXPoN?=
 =?us-ascii?Q?VrUjf9TFqTeZIM4zH6CVWi+klvSmnBOCHWMXB5ybtxX0e7eZp2ZFTPUaQtEf?=
 =?us-ascii?Q?rY6RAWjdyxq1OkDhhkWTytr5h/dfnvmIi7sYy8aF32kRVWjZsemcNwrTAWqF?=
 =?us-ascii?Q?8Pm7wkUYGIOCJSwZu8Pbsy+I1qRyxIOynLzflgfRFai55FlDbLjQqx8edDy4?=
 =?us-ascii?Q?yUdGbC/GIBXRXsrJWgMp6aTltNw9VOeYcOg3AtF60J9lV9kT0+CKkWXvanTv?=
 =?us-ascii?Q?RN47B9DFyMsDEzalPM5KcxjTLHCo1OEgDGPrK/Qhom5WW9bzVs26hxFPd02j?=
 =?us-ascii?Q?wxBfmDXguR3/biaCYGntz7oC6MJ8Wtc8dYR5VJWdYeHmR3o1YfZK4nUjR5M/?=
 =?us-ascii?Q?9ZIagqSh1tMudbt0wMxk3BuaCJ3PqFPWjcAcqjiy1h7CZF8UimC2IM4+y0Zl?=
X-MS-Exchange-AntiSpam-MessageData-1: Ed+gpsSLsS6cYw==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f6e3ec9-e9d5-43c7-9c5c-08deb927c62b
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:02:41.3843
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: e8YvAu3End5j1ygY6z1D0x/OaVUm80512H4Nt/nIQgxP7Tt5aC5j33rPJyDGEnWMx0A9l2Of04hfoaXJ7ygCgA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-c201ff/1779580963-DBB60443-DEC13C0F/0/0
X-purgate-type: clean
X-purgate-size: 12305

Parse the 'cpu-map' node in the Device Tree to extract CPU topology
information. If the 'cpu-map' node is absent, fall back to
generating the topology data from the NUMA information. This
generation assumes exactly one socket per NUMA node and that SMT
is unsupported.
---
 xen/arch/arm/smpboot.c                |   6 +
 xen/common/Kconfig                    |   7 +
 xen/common/device-tree/Makefile       |   1 +
 xen/common/device-tree/cpu_topology.c | 307 ++++++++++++++++++++++++++
 xen/include/xen/cpu_topology.h        |  42 ++++
 5 files changed, 363 insertions(+)
 create mode 100644 xen/common/device-tree/cpu_topology.c
 create mode 100644 xen/include/xen/cpu_topology.h

diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index eafa195504..ff8b0d07e9 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -24,6 +24,7 @@
 #include <xen/warning.h>
 #include <xen/irq.h>
 #include <xen/console.h>
+#include <xen/cpu_topology.h>
 #include <asm/cpuerrata.h>
 #include <asm/gic.h>
 #include <asm/procinfo.h>
@@ -248,6 +249,8 @@ static void __init dt_smp_init_cpus(void)
         else
             tmp_map[i] = hwid;
 
+        map_cpuid_to_node(i, cpu); /* pass the info to dt_init_cpu_topology() */
+
 #ifdef CONFIG_DEVICE_TREE_NUMA
         if ( tmp_map[i] != MPIDR_INVALID )
         {
@@ -294,7 +297,10 @@ void __init smp_init_cpus(void)
     }
 
     if ( acpi_disabled )
+    {
         dt_smp_init_cpus();
+        dt_init_cpu_topology();
+    }
     else
         acpi_smp_init_cpus();
 
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 2365b421bf..014192b2cd 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -188,6 +188,13 @@ config VM_EVENT
 config NEEDS_LIBELF
 	bool
 
+config DT_CPU_TOPOLOGY
+       bool "Device tree based CPU topology support (UNSUPPORTED)" if UNSUPPORTED && ARM
+       depends on HAS_DEVICE_TREE_DISCOVERY
+       help
+         Retrieve CPU topology information from the device tree to optimize
+         virtual CPU scheduling.
+
 config DEVICE_TREE_NUMA
 	bool "Device tree based NUMA support (UNSUPPORTED)" if UNSUPPORTED && ARM
 	depends on HAS_DEVICE_TREE_DISCOVERY
diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
index fab038d357..dbfce294fb 100644
--- a/xen/common/device-tree/Makefile
+++ b/xen/common/device-tree/Makefile
@@ -11,4 +11,5 @@ obj-$(CONFIG_DOMAIN_BUILD_HELPERS) += kernel.o
 obj-$(CONFIG_STATIC_EVTCHN) += static-evtchn.init.o
 obj-$(CONFIG_STATIC_MEMORY) += static-memory.init.o
 obj-$(CONFIG_STATIC_SHM) += static-shmem.init.o
+obj-$(CONFIG_DT_CPU_TOPOLOGY) += cpu_topology.o
 obj-$(CONFIG_DEVICE_TREE_NUMA) += numa.o
diff --git a/xen/common/device-tree/cpu_topology.c b/xen/common/device-tree/cpu_topology.c
new file mode 100644
index 0000000000..6c78a74778
--- /dev/null
+++ b/xen/common/device-tree/cpu_topology.c
@@ -0,0 +1,307 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Derived from Linux kernel 7.0's $drivers/base/arch_topology.c
+ * Parse cpu topology information.
+ *
+ * Copyright (c) 2026 VA Linux Systems Japan K.K.
+ * Author: Hirokazu Takahashi <taka@valinux.co.jp>
+ */
+
+#include <xen/cpu.h>
+#include <xen/cpumask.h>
+#include <xen/delay.h>
+#include <xen/device_tree.h>
+#include <xen/cpu_topology.h>
+#include <xen/numa.h>
+#include <xen/domain_page.h>
+#include <xen/errno.h>
+#include <xen/init.h>
+
+static struct dt_device_node * __initdata dt_cpu_table[NR_CPUS];
+
+struct cpu_topology __ro_after_init cpu_topology[NR_CPUS] = {
+    [0 ... NR_CPUS-1] = {-1, -1, -1, 0}
+};
+
+static void __init setup_siblings_masks(unsigned int cpuid)
+{
+    struct cpu_topology *cpu_topo, *cpuid_topo = &cpu_topology[cpuid];
+    int cpu;
+
+    /* update core and thread sibling masks */
+    for_each_possible_cpu(cpu) {
+        cpu_topo = &cpu_topology[cpu];
+
+        if (cpuid_topo->package_id != cpu_topo->package_id)
+            continue;
+
+        cpumask_set_cpu(cpuid, &cpu_topo->core_sibling);
+        cpumask_set_cpu(cpu, &cpuid_topo->core_sibling);
+
+        if (cpuid_topo->cluster_id != cpu_topo->cluster_id)
+            continue;
+
+        if (cpuid_topo->cluster_id >= 0) {
+            cpumask_set_cpu(cpu, &cpuid_topo->cluster_sibling);
+            cpumask_set_cpu(cpuid, &cpu_topo->cluster_sibling);
+        }
+
+        if (cpuid_topo->core_id != cpu_topo->core_id)
+            continue;
+
+        cpumask_set_cpu(cpuid, &cpu_topo->thread_sibling);
+        cpumask_set_cpu(cpu, &cpuid_topo->thread_sibling);
+    }
+}
+
+static struct dt_device_node * __init dt_find_child_node_by_name(struct dt_device_node *from, const char *name)
+{
+    struct dt_device_node *np;
+    struct dt_device_node *dt = from;
+
+    dt_for_each_child_node(dt, np)
+        if ( np->name && (dt_node_cmp(np->name, name) == 0) )
+            break;
+
+    return np;
+}
+
+void __init map_cpuid_to_node(u32 cpuid, struct dt_device_node *cpu_node)
+{
+    dt_cpu_table[cpuid] = cpu_node;
+}
+
+static int __init cpu_node_to_id(struct dt_device_node *cpu_node)
+{
+    int cpu;
+    bool found = false;
+
+    for_each_possible_cpu(cpu) {
+        found = (cpu_node == dt_cpu_table[cpu]);
+        if (found)
+            return cpu;
+    }
+
+    return -ENODEV;
+}
+
+/*
+ * This function returns the logic cpu number of the node.
+ */
+static int __init get_cpu_for_node(struct dt_device_node *node)
+{
+    struct dt_device_node *cpu_node = dt_parse_phandle(node, "cpu", 0);
+
+    if (!cpu_node)
+        return -ENOENT;
+
+    return cpu_node_to_id(cpu_node);
+}
+
+static int __init parse_core(struct dt_device_node *core, int package_id,
+                int cluster_id, int core_id)
+{
+    char name[20];
+    bool leaf = true;
+    int i = 0;
+    int cpu;
+
+    do {
+        struct dt_device_node *t;
+
+        snprintf(name, sizeof(name), "thread%d", i);
+        t = dt_find_child_node_by_name(core, name);
+
+        if (!t)
+            break;
+
+        leaf = false;
+        cpu = get_cpu_for_node(t);
+        if (cpu >= 0) {
+            cpu_topology[cpu].package_id = package_id;
+            cpu_topology[cpu].cluster_id = cluster_id;
+            cpu_topology[cpu].core_id = core_id;
+            cpu_topology[cpu].thread_id = i;
+        } else if (cpu != -ENODEV) {
+            printk(XENLOG_ERR "ERROR: %pOF: Can't get CPU for thread\n", t);
+            return -EINVAL;
+        }
+        i++;
+    } while (1);
+
+    cpu = get_cpu_for_node(core);
+    if (cpu >= 0) {
+        if (!leaf) {
+            printk(XENLOG_ERR "ERROR: %pOF: Core has both threads and CPU\n",
+                   core);
+            return -EINVAL;
+        }
+
+        cpu_topology[cpu].package_id = package_id;
+        cpu_topology[cpu].cluster_id = cluster_id;
+        cpu_topology[cpu].core_id = core_id;
+    } else if (leaf && cpu != -ENODEV) {
+        printk(XENLOG_ERR "ERROR: %pOF: Can't get CPU for leaf core\n", core);
+        return -EINVAL;
+    }
+
+    return 0;
+}
+
+static int __init parse_cluster(struct dt_device_node *cluster, int package_id,
+                int cluster_id, int depth)
+{
+    char name[20];
+    bool leaf = true;
+    bool has_cores = false;
+    int core_id = 0;
+    int i, ret;
+
+    /*
+     * First check for child clusters; we currently ignore any
+     * information about the nesting of clusters and present the
+     * scheduler with a flat list of them.
+     */
+    i = 0;
+    do {
+        struct dt_device_node *c;
+
+        snprintf(name, sizeof(name), "cluster%d", i);
+        c = dt_find_child_node_by_name(cluster, name);
+
+        if (!c)
+            break;
+
+        leaf = false;
+        ret = parse_cluster(c, package_id, i, depth + 1);
+        if (depth > 0)
+            printk(XENLOG_WARNING "WARNING: Topology for clusters of clusters not yet supported\n");
+        if (ret != 0)
+            return ret;
+        i++;
+    } while (1);
+
+    /* Now check for cores */
+    i = 0;
+    do {
+        struct dt_device_node *c;
+
+        snprintf(name, sizeof(name), "core%d", i);
+        c = dt_find_child_node_by_name(cluster, name);
+
+        if (!c)
+            break;
+
+        has_cores = true;
+
+        if (depth == 0) {
+            printk(XENLOG_ERR "ERROR: %pOF: cpu-map children should be clusters\n", c);
+            return -EINVAL;
+        }
+
+        if (leaf) {
+            ret = parse_core(c, package_id, cluster_id, core_id++);
+            if (ret != 0)
+                return ret;
+        } else {
+            printk(XENLOG_ERR "ERROR: %pOF: Non-leaf cluster with core %s\n",
+                   cluster, name);
+            return -EINVAL;
+        }
+
+        i++;
+    } while (1);
+
+    if (leaf && !has_cores)
+        printk(XENLOG_WARNING "WARNING: %pOF: empty cluster\n", cluster);
+
+    return 0;
+}
+
+static int __init parse_socket(struct dt_device_node *socket)
+{
+    char name[20];
+    bool has_socket = false;
+    int package_id = 0, ret;
+
+    do {
+        struct dt_device_node *c;
+
+        snprintf(name, sizeof(name), "socket%d", package_id);
+        c = dt_find_child_node_by_name(socket, name);
+
+        if (!c)
+            break;
+
+        has_socket = true;
+        ret = parse_cluster(c, package_id, -1, 0);
+        if (ret != 0)
+            return ret;
+
+        package_id++;
+    } while (1);
+
+    if (!has_socket)
+        ret = parse_cluster(socket, 0, -1, 0);
+
+    return ret;
+}
+
+/*
+ * Generate cpu topology information when cpu-map node doesn't exist.
+ * It assumes that the cpu doesn't have SMT and all CPUs on a NUMA
+ * node belong to the same socket.
+ */
+static void __init fixup_topology(void)
+{
+    int cpu;
+    int clid = 0;
+    int pkgid = 0;
+
+    for_each_possible_cpu(cpu)
+    {
+        struct cpu_topology *cpu_topo = &cpu_topology[cpu];
+
+        cpu_topo->package_id = cpu_to_node(cpu);
+        if (cpu_topo->package_id != pkgid)
+        {
+            pkgid = cpu_topo->package_id;
+            clid = 0;
+        }
+        cpu_topo->cluster_id = clid++;
+        cpu_topo->core_id = 0;
+        cpu_topo->thread_id = 0;
+    }
+}
+
+
+int __init parse_dt_topology(void)
+{
+    struct dt_device_node *cpus;
+    struct dt_device_node *map;
+
+    cpus = dt_find_node_by_path("/cpus");
+
+    if ( !cpus )
+    {
+        printk(XENLOG_ERR "ERROR: No CPU information found in DT\n");
+        return -EINVAL;
+    }
+
+    map = dt_find_child_node_by_name(cpus, "cpu-map");
+    if ( !map )
+        return -ENOENT;
+
+    return parse_socket(map);
+}
+
+void __init dt_init_cpu_topology(void)
+{
+    int cpu;
+
+    if (parse_dt_topology())
+        fixup_topology();
+
+    for_each_possible_cpu(cpu)
+        setup_siblings_masks(cpu);
+}
diff --git a/xen/include/xen/cpu_topology.h b/xen/include/xen/cpu_topology.h
new file mode 100644
index 0000000000..0cdceb9bd0
--- /dev/null
+++ b/xen/include/xen/cpu_topology.h
@@ -0,0 +1,42 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef XEN_CPU_TOPOLOGY_H
+#define XEN_CPU_TOPOLOGY_H
+
+#include <xen/types.h>
+#include <xen/device_tree.h>
+
+struct cpu_topology {
+    int thread_id;
+    int core_id;
+    int cluster_id;
+    int package_id;
+    cpumask_t thread_sibling;
+    cpumask_t core_sibling;
+    cpumask_t cluster_sibling;
+};
+
+
+#ifdef CONFIG_DT_CPU_TOPOLOGY
+extern struct cpu_topology cpu_topology[NR_CPUS];
+
+void map_cpuid_to_node(u32 cpuid, struct dt_device_node *cpu_node);
+void dt_init_cpu_topology(void);
+
+#else /* CONFIG_DT_CPU_TOPOLOGY */
+
+static inline void map_cpuid_to_node(u32 cpuid, struct dt_device_node *cpu_node) {}
+static inline void dt_init_cpu_topology(void) {}
+
+#endif /* CONFIG_DT_CPU_TOPOLOGY */
+
+#endif /* XEN_CPU_TOPOLOGY_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:02:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:02:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318190.1586594 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIr-0003pQ-Ng; Sun, 24 May 2026 00:02:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318190.1586594; Sun, 24 May 2026 00:02:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIr-0003pA-If; Sun, 24 May 2026 00:02:49 +0000
Received: by outflank-mailman (input) for mailman id 1318190;
 Sun, 24 May 2026 00:02:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwIq-0003hm-18
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:02:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwIp-005yAt-DZ
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:02:47 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a12400e-2eae-0a2a0a5409dd-0a2a4504c06e-12
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:47 +0200
Received: from [52.101.125.123]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124025-1dec-0a2a45040019-34657d7b4fb1-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:47 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:02:43 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:02:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=c78SQJ+E7GtcOXZCrgI/BDGbgcvcL92PfcaN6MLKiT3VwMyw3UDXhlu4oTKnXO8jvEMICFuvdN87INpGjspdNi6yE/+PtdY8W5LlX/leyOycRoFvrzSbRmn30vbaaEp8gmCZWANUASDwM93c5p1OQnw4QQ6oyCU6aFLJpSd2Zjt4m8o9ucVEkpswmPcK/g47Ko5rctz02G3r9YHVBdCXAW1fpK3FDM+OwJZh+Sfrkng6D7RO2tIuWezyuCUE4r5P7fcNjkvSL+Gp1LNGrXjFgDzBdDn4bKEu1911Ido7xdqls6Fk1rQtQ/EffOAPZZQ41U1bmelI9yQmtgSg2Ug6dQ==
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=t6XthfOnnreD0c3O6/MvGMc15h8Ca88EfvnVvFOO8OA=;
 b=D/27LsdhetCayJxjss3Gxsi79a33+xT6OTLRu0RdhZ5oDHB650xOYwGkaqW7Y42weq5Spsx5Zqf+ZdW2c4Xx4Dboiq1Vnw+1mlGTb9SF/3LH9mvPrkEAMgmVU8dt2dQEdz/YFNMDujtghhSEQO7Z6PDGRSDVqsfNeBCAG7ACbszRrMGXRPVFtOIC77UIrrBvIBPBa3wGMLIOFdcTRZ0ALpHUeCMWLCGhwAo1QF2hGwGi//S5s/lXWmmycT4yZufkU9vmx7QGjWOKZcpn6e5k/flp8eY8ooZbRAzMdovERKMyaQd4TXUvy8WysOp0i/FbFwIvyNW6kh8HkKmT/OTPQw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=t6XthfOnnreD0c3O6/MvGMc15h8Ca88EfvnVvFOO8OA=;
 b=OOYwes/nT+ohhFM+rMh8cx7hKn6jFBG/eluatuOkSZkraxGQ8UZggNxFScbKHJzUBFX4G+QxCRx6ZjykYk8y7lc21YKHQjvZT52KXs6ZlSpD5VoSHsUeBoWlZLKLUX6MRLpkmWJlKr1tVrxpkWXigpY4VWCxYo6rpdbrb4E664o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 08/21] xen/sched: Link CPU topology to scheduler and display via xl info
Date: Sun, 24 May 2026 09:01:56 +0900
Message-ID: <20260524000209.292370-9-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCPR01CA0063.jpnprd01.prod.outlook.com
 (2603:1096:405:2::27) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: 05de9b1a-20c3-43c1-9e4c-08deb927c789
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003|6133799003;
X-Microsoft-Antispam-Message-Info:
	YWIYl0ddl8yuPz4BHCfYikDjoJ54lWqpc/Ssq0YwIN8zTl1ErwKevGs0/1DCmzgwUb9yHaOm11Fjidr5vvC2sg5YcYlIpvFF4ij2Jz4pRqmLCyx22Pt4ln0gD+jNiebNHEgPpIPCbP087Fed4Nf87HuERdiMjW3HLWhZDx/Nv7hGUKMGnh7tpBDDTrrKOETOL1rxBHlhw//ZfxDAzoplYDnFiN6ljLhuHwEUCh93KtrL4qQwZm+eCbqXZH/auEyoWfvx4e9YqPPxeKQIZgi/xHlq+qeG4iDv8vSeGaSRJZdA9888PAnv4Ju8cTzumczv9qniWmjeKqDChZdxaqb5wvgvbHvMNIn08mo2uHcLLqB2PJ5xtO0i2dtRhiKSWtTpRPWCDuFmRrYc/+bRfLh8rWLEFaiMYX6KWVy8r15Ew7gd9wnssA8BzgP3U2ZZz67SStBAMT63mdIVN0QFU6zoDH7KzgtHOsYr/FaYIhX8xeJfaWWftZu7IfBRBbkIMUzIJN7LBHOlOwDjA0q2U3hSFXGCvysFSLzp7kPSNEpU51/g37PPecjMZFpwNya/UCwbRaSB9j9l/2tB6N4yTTX1F0zhIr5fDHHLbQ6uBfmjy2WjuwKfHXnJMOMBm2zsipHxEdRUJQ8DsHLANb10e6QpcvX1YLSB6g3UAKHrUzAR5LaHFpNBiE2PNK0WRrh2hSEg
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003)(6133799003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?fYjyS+H//9rgEiIMAEIxuBY5r071YyntHE2M2SMpOXq3LpqB4QTg4q29Oeip?=
 =?us-ascii?Q?DVJDciII4swCIVViuMYayzTqqUCpmgZCwYIQx3TFQoHQ+dpw79V47Tclua9w?=
 =?us-ascii?Q?TOLexo7+8kIFASnsgDniqmUXJ79INak4nNMkq/pmUCsaT5V8ANj8xjQSvvTM?=
 =?us-ascii?Q?ImnlmeIIB8xlt2WoI5SC6StQPz4XcuW966R1wKKr0IN2OQW2W4LiFLovliXF?=
 =?us-ascii?Q?4U8GF7BelsWDv1x3ey7nr68n/HUmW1/K8lXK5xRpIyzIbqUG8qeGa9E1uuKB?=
 =?us-ascii?Q?2H2daVGW0bJTZQTPcwMvkuzQxxMhkckDlFHsD6MFkrue7Y1K9Y8RaRDhj/JX?=
 =?us-ascii?Q?j7x7dDtOD4DChqfnJKzVK64lBC2p0JIMv4CO5TCEbIEyNRx+YnhfLxbYvGAT?=
 =?us-ascii?Q?Z2O+IhWdiET0Ze3bL6x2+cNyIgKHWxACjskoCYN8fX0MLzUJRumuhelUw8tL?=
 =?us-ascii?Q?hY5it0+NE05V2tYnY8jSXAZReby6iuZ8mQijSAKX/4T/Rp2xYZPMatrXW8nN?=
 =?us-ascii?Q?PhR095xZqn2RxemtbQ0BTvgopxbQMPV5e0PaBuD7Tcc9OwUqJnphDjsQEaPq?=
 =?us-ascii?Q?zG4lWtyjqHhc3HF47gWmGOCN/0ujOTTmsH19QcyI6f+Om6lagGjAILptDAEB?=
 =?us-ascii?Q?aUP0eGQ7zX/nYtq3RzSsd+dehR25fykLzGegdGAtvYAY6uwaPdYL+qY0u+hg?=
 =?us-ascii?Q?YkoJCPMx1GZylTe6BXNYKQ+fIH5pC40k4iblWCkm/LXSWU5p7JbIn3lDEVZy?=
 =?us-ascii?Q?xmS0SX9YDrfVUbfspVgyNqXh7Q0tj0hAwFW+h/0wweteeX85+AgPO5GgajgU?=
 =?us-ascii?Q?vWUK34eNZA89ry3/wLH/eyGPCicnrj/v3X5+Aj7vEt9VeoYrBk80YOcvlM2q?=
 =?us-ascii?Q?VMjv/D81ZQKoBCLVfBcArC28khmghvHrS0bTD22cgukhp7LtuIqJ1DKFEeq2?=
 =?us-ascii?Q?somI5ZM44WmsRIKJ/ogILRtPmY1KE71DK3cb8BX3r2x3UjPkfaRJ3FDlJfws?=
 =?us-ascii?Q?/6wJ1QyxN0onXnPoQA+puL3AcXQOXyvHLMDOEysFgzr5JQ+KYKdektKijFDH?=
 =?us-ascii?Q?9bcOhPmXZiuBp5xKS47wVeQTPL5Rz5Mhy13NtyVqBaUTfZzmamUtUPVi9dVa?=
 =?us-ascii?Q?qnrVLrWFWrk104zGj95mz4jBXhR2K9NfKIh/d/dhp+tGXhNI5cZn/cvswT6b?=
 =?us-ascii?Q?uHOM262RY4Hj6HfY+n+5kUY7KfhiWl9WkgndYBUQx9P8uK2+9eC6LfI51qne?=
 =?us-ascii?Q?V/v8jOUV66bKr81ij8LXQ9wAYPOZek5o4IF5+V3HPuYRPcXjUfkhKA1dqO2S?=
 =?us-ascii?Q?aj1KND9qsHXsZsEqMzJLdbkbs3EuexeOICjg8kvsrMYDUo3bJjXqCpPBmJPG?=
 =?us-ascii?Q?8jCZ9UI79Iq67qAAJ74Q7yu6QAYum9KH/bArve90tCLXmYDfegqQYHZ+JAQQ?=
 =?us-ascii?Q?AmNNco0OLouJXS/E3JpxJshuV+4r8q6KcX2Eoux63BIRxcF5D29khM1ltOiA?=
 =?us-ascii?Q?5uWv/kqDUR/10k6QfzoJvHBYIjErkrOGEnFviqtD4X3UR9lc2ac4A4HhCz8L?=
 =?us-ascii?Q?psEu6MXKh/tBIa9zhpUqE+bhDcyte09k8vGYk5WaZeAwlg5dqDLJKdt8MwpS?=
 =?us-ascii?Q?NXvvRW6LAKlCBS1Dg/UdlOGMhMfVpFyuK7WoSLhxltPe2lEIUsLIOZpstAr3?=
 =?us-ascii?Q?paP6XRbtgqD9AIJ4S22sL+q1KTUO3ce2GXrqeF5TNVUg5VYs5/s8UBpD3SVk?=
 =?us-ascii?Q?QxhQyYrGPdcfZ0E4SoEeCaF4jTxOT6MbRz6HKJgcUD3gJwzZZb9J1UY2Fw13?=
X-MS-Exchange-AntiSpam-MessageData-1: XzMvSeRf/c/maQ==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 05de9b1a-20c3-43c1-9e4c-08deb927c789
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:02:43.6620
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nIXx77SPwG392u06EAmFufrYf9lYy4rC4LpPuQDRguoch+Fi5i8Z1cFomqBRwlN0ucKFxOqg3PaCposRVXoPAw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-ebf023/1779580967-2BF6D3FF-50070413/0/0
X-purgate-type: clean
X-purgate-size: 5726

Make CPU topology information available to the Xen scheduler.
Additionally, ensure that this topology information is displayed
when executing the 'xl info -n' command.
---
 xen/arch/arm/include/asm/processor.h  |  6 ++-
 xen/arch/arm/smpboot.c                | 10 +++--
 xen/common/device-tree/cpu_topology.c | 54 +++++++++++++++++++++++++++
 xen/common/sched/credit2.c            |  3 ++
 xen/common/sysctl.c                   |  1 +
 xen/include/xen/cpu_topology.h        |  3 ++
 6 files changed, 73 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 895d7cd502..066966b375 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -591,9 +591,13 @@ void show_stack(const struct cpu_user_regs *regs);
 
 #define cpu_relax() barrier() /* Could yield? */
 
-/* All a bit UP for the moment */
+#ifdef CONFIG_DT_CPU_TOPOLOGY
+#define cpu_to_core(_cpu)   (cpu_topology[_cpu].to_core)
+#define cpu_to_socket(_cpu)   (cpu_topology[_cpu].to_socket)
+#else /* CONFIG_DT_CPU_TOPOLOGY */
 #define cpu_to_core(_cpu)   (0)
 #define cpu_to_socket(_cpu) (0)
+#endif /* CONFIG_DT_CPU_TOPOLOGY */
 
 struct vcpu;
 void vcpu_regs_hyp_to_user(const struct vcpu *vcpu,
diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index ff8b0d07e9..726f3720ce 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -93,13 +93,17 @@ static int setup_cpu_sibling_map(int cpu)
          !zalloc_cpumask_var(&per_cpu(cpu_core_mask, cpu)) )
         return -ENOMEM;
 
+#ifdef CONFIG_DT_CPU_TOPOLOGY
+    cpumask_copy(per_cpu(cpu_sibling_mask, cpu), &cpu_topology[cpu].thread_sibling);
+    cpumask_copy(per_cpu(cpu_core_mask, cpu), &cpu_topology[cpu].core_sibling);
+#else /* CONFIG_DT_CPU_TOPOLOGY */
     /*
-     * Currently we assume there is no multithread and NUMA, so
-     * a CPU is a sibling with itself, and the all possible CPUs
-     * are supposed to belong to the same socket (NUMA node).
+     * If CONFIG_DT_CPU_TOPOLOGY is disabled, it is assumed that
+     * all CPUs reside in the same socket and that SMT is not used.
      */
     cpumask_set_cpu(cpu, per_cpu(cpu_sibling_mask, cpu));
     cpumask_copy(per_cpu(cpu_core_mask, cpu), &cpu_possible_map);
+#endif /* CONFIG_DT_CPU_TOPOLOGY */
 
     return 0;
 }
diff --git a/xen/common/device-tree/cpu_topology.c b/xen/common/device-tree/cpu_topology.c
index 6c78a74778..f5d2a59e2c 100644
--- a/xen/common/device-tree/cpu_topology.c
+++ b/xen/common/device-tree/cpu_topology.c
@@ -275,6 +275,58 @@ static void __init fixup_topology(void)
 }
 
 
+static void __init setup_topology_for_sched(void)
+{
+    int prev_socketid = 0;
+    int prev_clusterid = 0;
+    int prev_coreid = 0;
+    int prev_threadid = 0;
+    int coreid = 0;
+    int socketid = 0;
+    int clusterid = 0;
+    int threadid = 0;
+    int cpu;
+
+    for_each_possible_cpu(cpu)
+    {
+        struct cpu_topology *cpu_topo = &cpu_topology[cpu];
+
+        if (cpu_topo->package_id != prev_socketid)
+        {
+            prev_socketid = cpu_topo->package_id;
+            prev_clusterid = cpu_topo->cluster_id;
+            prev_coreid = cpu_topo->core_id;
+            socketid++;
+            clusterid++;
+            coreid++;
+            threadid++;
+        }
+        else if (cpu_topo->cluster_id != prev_clusterid)
+        {
+            prev_clusterid = cpu_topo->cluster_id;
+            prev_coreid = cpu_topo->core_id;
+            clusterid++;
+            coreid++;
+            threadid++;
+        }
+        else if (cpu_topo->core_id != prev_coreid)
+        {
+            prev_coreid = cpu_topo->core_id;
+            coreid++;
+            threadid++;
+        }
+        else if (cpu_topo->thread_id != prev_threadid)
+        {
+            threadid++;
+        }
+
+        cpu_topo->to_socket = socketid;
+        cpu_topo->to_core = coreid;
+        cpu_topo->num_siblings = cpumask_weight(&cpu_topo->thread_sibling);
+    }
+
+}
+
 int __init parse_dt_topology(void)
 {
     struct dt_device_node *cpus;
@@ -304,4 +356,6 @@ void __init dt_init_cpu_topology(void)
 
     for_each_possible_cpu(cpu)
         setup_siblings_masks(cpu);
+
+    setup_topology_for_sched();
 }
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index 75316d42b7..34876b99c0 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -20,6 +20,7 @@
 #include <xen/softirq.h>
 #include <xen/time.h>
 #include <xen/trace.h>
+#include <xen/cpu_topology.h>
 
 #include <asm/div64.h>
 
@@ -38,6 +39,8 @@ static unsigned int cpu_nr_siblings(unsigned int cpu)
 {
 #ifdef CONFIG_X86
     return cpu_data[cpu].x86_num_siblings;
+#elif CONFIG_DT_CPU_TOPOLOGY
+    return cpu_topology[cpu].num_siblings;
 #else
     return 1;
 #endif
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index 5207664252..806c885df1 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -28,6 +28,7 @@
 #include <xen/pmstat.h>
 #include <xen/livepatch.h>
 #include <xen/coverage.h>
+#include <xen/cpu_topology.h>
 
 long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
 {
diff --git a/xen/include/xen/cpu_topology.h b/xen/include/xen/cpu_topology.h
index 0cdceb9bd0..c22224b3af 100644
--- a/xen/include/xen/cpu_topology.h
+++ b/xen/include/xen/cpu_topology.h
@@ -14,6 +14,9 @@ struct cpu_topology {
     cpumask_t thread_sibling;
     cpumask_t core_sibling;
     cpumask_t cluster_sibling;
+    int to_core;
+    int to_socket;
+    int num_siblings;
 };
 
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:02:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:02:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318192.1586598 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIs-0003vN-68; Sun, 24 May 2026 00:02:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318192.1586598; Sun, 24 May 2026 00:02:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIr-0003u2-UV; Sun, 24 May 2026 00:02:49 +0000
Received: by outflank-mailman (input) for mailman id 1318192;
 Sun, 24 May 2026 00:02:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwIr-0003lY-21
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:02:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwIq-005yAt-EQ
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:02:48 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a12400e-2eae-0a2a0a5409dd-0a2a4504c06e-14
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:48 +0200
Received: from [52.101.125.123]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124025-1dec-0a2a45040019-34657d7b4fb1-4
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:48 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:02:46 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:02:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AIwgvm+HuR4Cd2Mw/PMBpucPRRP3NxA3EmWrR8iy23g40dUBPFeC1Fo0yGjdryhRA8FsBQdaPsGgb+DbkJXpXnIJiPyMtu9/ZbzVz+P9pBTyiYbqC0+hBEFKcigN7d3I3s3/y7/toiAE2+TCCA74kB48nQ5S18eIJqeJx4eyHlxKTjmmDFYJ03LGXhw2+4NI5JX35P65Bk/wF2lDKfaHK4Y2dwgUrH9qqO8MYoOGWSP6X1WHygx5PHKtm/1kJ/+WD9JQWAnUl3MDS8TzsUAhI08A/dxmoHXPFfFddM7AY9/NJ/yiiWFg/zM0AObFGQ4G8JhKng6lrFE7JQvzU8tRVQ==
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=lteRRVaFbxsp6aSXOgwn6Y3jyynAQKzJoiRSSUgWbfU=;
 b=Fv/tb9g4bUJwBEvsTky7hFOpx6rmXt7DIvKDp0q0cxQ9FbEI7J4VYxVYnoxAbTqqhV8Y1Ix6xHEAqBgVDzxQCxiTiSP84+iyYPUj+kTkubEASI8vuwO0+nMdiZVBkX7nXoAn93N0HWPVWO8d4tpbEzsDx8zoj611sFEtmO+OPsfcSohxWt0GES9BmSOYndetAkvtjb46KaSVVFS0OzRrs3G5obEbRzr7GXZTN1R7ExGIZ+tbATzKHqkXhYnq0+9iqz8ejgqkqfInpfmubPJuPySG8sYKJnwX9Qw7ZGml340lFFGt5t0tFCd1NtgCbM5F+JDR0+YZEn920sw3quR2bQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lteRRVaFbxsp6aSXOgwn6Y3jyynAQKzJoiRSSUgWbfU=;
 b=UFrMhAy2wtt+bjVxqPhkasR3TM2VDxP8kE9euMhgCQyFyCZQYv6xcLO2730ZVlLZMqC8PeixDSRx9spV0+2NJ8xNCeo25U2ak4PmjImzJicqKms5V3JFW22KOg1UCsKPna+lJ83+dm4dm9RxEyT5+tewkJksO5rz7bnF9amL9zg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 09/21] xen/common: Allow building ARM32 Xen with CONFIG_NUMA
Date: Sun, 24 May 2026 09:01:57 +0900
Message-ID: <20260524000209.292370-10-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4P301CA0058.JPNP301.PROD.OUTLOOK.COM
 (2603:1096:405:36a::18) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: 4d4dab05-7202-450e-0112-08deb927c8f9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003|6133799003;
X-Microsoft-Antispam-Message-Info:
	XlFNwlij2X52VmUknMN4fHD9liWJ2Wb5hNR8PxRKMigxXx4nz/4ojjkWwZ5Pdiv+QXs/tJg+YAF3RXPzMistqHYZPHttTaLgPp/qQ7oqN+mtwYWI5NphX61UX00eM5QLDKAadr7LchjX7+zgmVXmwzGcdE/BI8HZfD3xQ7FQoDjAzlxi22IzXxR6oAcOrjExcKKmfdtBdLt8s3b41aMRqxzdtellNbxE1DUhKMDfvEhpTy9FIvtX5c24MFiONoP4/d5WwvXEqy2yeQ97ORiNXl3Btz92z0pTFhoM7EAHoznuyvOR90QDjL1dYt4HiJy3k5Fmn0c0XV5/WmPDWM6nlzoDLbDEgeTS4ugcAJ1Yb1GQLSjAuTnrHZppyzRjhtPyg8wvjuaixLFZh2WKHcKCPXIP7g1Za1/cgHMFHuO4oxQeaU2wqYx/PbrTW5uV9aApyi1FOtMyC5Cz16BGQxPV3m8pZN23+mKlt3hjjpgDbPfZ8tAUHK9dfh21UECw4R1y0HF+5Cs300qEKGsJ93Au3fRCWbn4H/E79VMdhOPSdS7ay/7UF3avD5yN2ou/DVXVzhCPkwpH21cB1k1vRZK7aiAf5iuCRKDy3xN9MjzupVTSHnFcRttuM60SCVMbR6H5uRVyKrBzryaueRblR9Q8TyLPsvyDMaoAHUZue5JkNcwA0ZC2yAfZ2S2tgUKicz+i
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003)(6133799003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?28Rml+BLw73pZpVmEIqNEUrvCTKMGeHMfz0H6H4knpu92qiAB79xGT1aRUXC?=
 =?us-ascii?Q?50qXlJPCHGyr0OsvY3fZZiBHSjOPEwxlyCHf7wlPUFTx9M+0iE7Xy+GBzC66?=
 =?us-ascii?Q?XLj/GEOonq6sNLyYgXk/xDBEmTLQT2stx72hhi35RALYkTWWl/ocm2+vNRJf?=
 =?us-ascii?Q?uKkkCqBRCmQGIQpRkSxKYWT74aJwPPVzKeQBIbVRLu20Ju+qLefMOfsbGAaA?=
 =?us-ascii?Q?64/dueJYmyI+/+H/HlFFTMAMD9ch2lsyLEZ34ptPkWMUwkNQPEh/cvUaTDsS?=
 =?us-ascii?Q?DsvOXQeU9ba/pMu8S0JtrpV5LKKxVh5nWdm/pJwxb1q327n/Zc10GqiexDbm?=
 =?us-ascii?Q?3xW2+x/gmEM0Dyp8Jt3qSOTBM83gk3M7TSXA7c61HeYrjx4Z/cjsJxbtCVi8?=
 =?us-ascii?Q?+qtQAleiBi+GmpD7dG41o1vmZHXj/wxSkbEQRZbxkMIe9bq558Qq1MJEeWox?=
 =?us-ascii?Q?Ekgn0jNOJ7GF7izjiMH5vHKxmZwhe/NZp8MTwTwWCeurGBZ7RPUX1BBZVIDh?=
 =?us-ascii?Q?RSnKzVH3WuDfuAZBoltEOMMI7xVg/R1UDIiADFSiS1Co8tsn3xxHG0qpcKDl?=
 =?us-ascii?Q?rTxzQ+elwrgqXasZF791Aa/sopyV4PWugz/X/e1Eoa2zbRJP8Z+F8RO5P3/q?=
 =?us-ascii?Q?vLmIlWOznH9TSpBEGaTX34B+W9xm5beofMhDgAsF7yyBu6rgdwclJ4NU60ry?=
 =?us-ascii?Q?P6sEifOxyi/zc1NsFztrvJQaIhI3bZjxCMCi60R7PvYWW03x8aXyQqGInZzj?=
 =?us-ascii?Q?nZH5smfVS6gf9tiAep+1tk2zC8Oxq8hsO6GKMtJLxv7fc99URcZj0M/o6Th3?=
 =?us-ascii?Q?qX27a9AAZFSe8Ijjwnw913OZrzUNM+4cQAlPLz3hOlaOIPf5GSmstUw3tTwG?=
 =?us-ascii?Q?M8q8GhxqAP228gT7MAkCtpPIi4f9763gvQMq73gTR0QRRUvX/NuR02BPttxI?=
 =?us-ascii?Q?1tNYNUvdyaOps7MNFhmTYBWzPsjdby3/D3AJDRjFJ2X2aowfvw+4lUYXFRvZ?=
 =?us-ascii?Q?sStsPnRz8uAc3EkiLrXOcn5M3JHLwdUzNeJlLEtnUXXk5RfKbQCFflTXkkz9?=
 =?us-ascii?Q?UqdVhZHRCbdrefiZqGwEegU6pcLp1XS98A2zJzknTGggX/GrjwTlBR7xwv1L?=
 =?us-ascii?Q?6fDDbLbCGspguyfXfxxsNEMqC8ls6Hk8XCvY+ghq38W4F1vOrLtQxFHvPY4W?=
 =?us-ascii?Q?hSXjerirL+GTtMIJOCNIaHlwDQGm5pjF+2ccPLL7NZUcm9GLO1TUodpJ0dk2?=
 =?us-ascii?Q?nhxdGm6AxMK83GtTHT1RUSYnJp4KaiXi5Czuk4qFCvX0YeG6N6HtcQWZl/6l?=
 =?us-ascii?Q?sYR0K2LStQ/btwIYksVYn2ji+xbKsS843+B2oeabbCLVSP4Ex8VaHS6DrRo3?=
 =?us-ascii?Q?Wioax3hXKHYo2f6z0JIuZiK4OaLaSysW2kG121/lF9qjn95T3HJ9h9X328GC?=
 =?us-ascii?Q?vwHiavH48qNrLxzvaqVU9E/whB1K7ot3ONqE6FhKmN1xcVa8ezIliS9d8GUn?=
 =?us-ascii?Q?ydbwB7BJqMwgq9mwaMGeZLvdhBcd91VP3fSmvgRoHXOuK1Wh9A9cw7/IQWwp?=
 =?us-ascii?Q?qOYbl4PNbGKGTWo6ALtcVAN7ptVCzndL0IC84vfCOhiF2Ay4pT9xoWvMPbgF?=
 =?us-ascii?Q?ZqXOLmh5VBBxNwEm3g6mcjaAE2LwuRvafFQjVbH/++ucpA256ywo2Iu66fs9?=
 =?us-ascii?Q?x0bVReEJBbKhV6L+SEOqiRAyh1PYx2wExoPrsGmWuQn13PnH/Aoa1pP7MfNI?=
 =?us-ascii?Q?/2URIUca169dLChs8Wdyb6QLbfOKFkJtixbeF5I2/rc3NKKJF32ztUkSUwXL?=
X-MS-Exchange-AntiSpam-MessageData-1: dTDiTBEuxtcxog==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d4dab05-7202-450e-0112-08deb927c8f9
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:02:46.0675
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: o8oqDAbKISIpll46OFIKZcHlRQF5VYW8Oj09TRQCyhMh+YmJ/S0kdun3NWt564wvRHpN+6XVQLW68NS2RO0FpQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-ebf023/1779580968-4237F3FF-D8D774DC/0/0
X-purgate-type: clean
X-purgate-size: 765

Allow ARM32 Xen to be built with NUMA configurations.
---
 xen/common/numa.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/numa.c b/xen/common/numa.c
index ad75955a16..81121e571e 100644
--- a/xen/common/numa.c
+++ b/xen/common/numa.c
@@ -431,7 +431,7 @@ static int __init allocate_cachealigned_memnodemap(void)
     if ( !memnodemap )
         panic("Unable to map the NUMA node map. Retry with numa=off");
     size <<= PAGE_SHIFT;
-    printk(KERN_DEBUG "NUMA: Allocated memnodemap from %lx - %lx\n",
+    printk(KERN_DEBUG "NUMA: Allocated memnodemap from %"PRIpaddr" - %"PRIpaddr"\n",
            mfn_to_maddr(mfn), mfn_to_maddr(mfn) + size);
     memnodemapsize = size / sizeof(*memnodemap);
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:02:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:02:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318196.1586611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIw-0004ZC-CG; Sun, 24 May 2026 00:02:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318196.1586611; Sun, 24 May 2026 00:02:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIw-0004Yu-8S; Sun, 24 May 2026 00:02:54 +0000
Received: by outflank-mailman (input) for mailman id 1318196;
 Sun, 24 May 2026 00:02:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwIu-0004Pm-QA
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:02:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwIu-005yCJ-6G
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:02:52 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124027-e002-0a2a0a5209dd-0a2a45028cbc-6
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:52 +0200
Received: from [52.101.125.126]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124029-af86-0a2a45020019-34657d7e3484-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:51 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:02:48 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:02:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ag0gdjWC/Tp1gCd6yZx671QXttXEXQLtEgd36gb+U+AEsU/S0C16xRa8mOTafrmAfOSHMrtfC4lc/SifipoKemoi+Xgkmr2Vybivvax0twsrn9EW8zDBxeUHQuD6RiJRy6zvF6/oz8c0OaetViV/xB9r4oXkqpzdXAM3UjEXj9As/F0fo6S/UH0oUZQjxCamXrvU4U3FVq/FNi1i3RzUs2MyNfzXL6ue2CNEjpa77F1D65iIwKC6UfcjSUFGx2PkFk5hUfBGSRR389+/VcK07Y58PpIpHKK7d6PKr/IqMinGDrGGThxVhG8Kvbuyl5Fl+O8zvShtukMUJZOFne/tOQ==
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=K6btrO78jHQNB6X8N3K0j5SG3DMoMVJVZM54L8xG3S4=;
 b=ZaulGsUiA2n3+lRB9IdkbKNiuZiqHAkDePQeHjKcjkbcOEmdtbwzbyljn2u7TT0Z8G4SDXSwJbSPMIni91dTfLYUVcm8gvCL0I8u/X0kbH0mPfWRniJf42nTeSmSi5eU3WBz58sBc8VcBiSOlU+FXKsnUkY+teSKM4ov+dnoSG7x2uuSHUfUyFUK/R3eDi8U8RHamwjZewFmqe1UJLb1YaacApaoI1m74HomZztFTxxzGNuIxa11BPnPyl13GMhFcFjS5zSI0P9nL5tzhz70Cbtk4E6rQCd1+FAMItHD2BEExGOOdHPYiG9e7XdcTiRP2epbRYQcxxcV/FdFMdDSIQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=K6btrO78jHQNB6X8N3K0j5SG3DMoMVJVZM54L8xG3S4=;
 b=A49ZXWZK0+IOAd2U45C2KuE3P6kr004eIhifvAOmfO8ytXDX82yMcMW4FetmBj+tTAp04ax70I74cwHmggXV4uzg/Fg3anR5Uc9bPRdUcqWTK+mL1i4W31s/QUFSUeInTTbl54mp6d47bvbRV2m3YSErL0W+0C8j8U7CxcDBVBA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 10/21] tools/libxl: Add 'numa-node-id' property to DomU memory nodes
Date: Sun, 24 May 2026 09:01:58 +0900
Message-ID: <20260524000209.292370-11-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4P301CA0062.JPNP301.PROD.OUTLOOK.COM
 (2603:1096:405:36a::13) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: 9e87ca95-2a92-41f8-6846-08deb927ca53
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003|6133799003;
X-Microsoft-Antispam-Message-Info:
	A8SVnR7drOWuVIUzSbO17dtZurRjpOvElKZaBYR8RvWP3MZ1a2/ef6GPnJHVrb/69ph/b/A/KpjvREjt7HwjTE+enjdRWyLEzDenQPuK8WdBHfKP+SWoztOVimf8HGepZLwzO1+Y4I0PoISAmi+gNQrqWobrQn0SIERuBdexwYyFe89aRqT+D8DBpdEZlEZTVc810UdSsOBqG8uQFSy/32kEQyHdU4er/JHfNpRpflqbRb8ke6uqQmxc+D6UWRTgb2H59J/k6aIO/yXakgCKUdENPPKpvvcLBGmd6gIAIGcFExLOz9waLT0p3ufGAiXHE7ZVqtsiBZfzGyzuIHIOYU47UqoFO8eEjMOy4sQJcxNiKBLHSRExPj3R/ozJ1qTZtkij5yPG8waPr0jiDuxdPrN6cKbxvSP4Jpn5fCUifepfhzOtW2TOMKXmO/6A7bicz0jAso6sRtz46qLmn4mlYrOL7ew2ZldYopqkdRal7m9S/d8yQaPRb4+aDVZWL9HttkywAIELIMsviJNfBww4Z0RXqcKeFG9Vz7zy0DLrEvG6vqOLyxZUlJ5RNjaJ3yAqNzMx9ct8m+uuGqJYdWP86LEMuXbZlM2k2/5dIOnX+BaALG4Gj7UuIDb25q3x/vhq+apdk9HKYUgOi5x4oLH4NBr/f5dyk8yv7nIXTkU5QE37Ii/YDNXxG8vmtEjTDWHA
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003)(6133799003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?GQuguOuMEJm4H3WgXpErf7wpDyKvS3xhOrmT1UMJi/ed+Id0b8gTiNxlkNuS?=
 =?us-ascii?Q?Q6LjtvvVfoHeUaqWaB5C74l9akdiJ7bTZHdyUJo7wa5UwxNsEU4p44JcaJBF?=
 =?us-ascii?Q?1RAy1WqK0vim3Ul2u4dXxNdk+s0yEDaGjhpptp4V6umeCchXn0L8dv6hZIyJ?=
 =?us-ascii?Q?QSmHxP4uw+DsJXEizNRx9QqhwjKN5VXogJZ3+8doYJo7tEQonu0nfE6Xj4ev?=
 =?us-ascii?Q?VbsZSO8itmkWdB6KGPVSGwNugKpMa1IK9Qt5QHPujHucrugQVREqjETatKHb?=
 =?us-ascii?Q?H9F6rgb+n8KPb6ZxxPpPoxd+ntJqffs/J4tayXVVheYqRlVUzNzJ5+C7hGYZ?=
 =?us-ascii?Q?pukUTc7+EWfsN7HIzAimjYflv2+zCsoreK0hho6KMgcxrERowgIZxwoAQ0ef?=
 =?us-ascii?Q?+S+B6KMohwfRsEJWCfP51XDcINlv8bP2MVR4kBP2PiVgdJBXf0eh+xGsxHT5?=
 =?us-ascii?Q?JfbLp3OM+cOE8XkHo3jfqvJJA/kHHNLi5Kh5L436nN+2Q3D8eEx+fcGbnjlF?=
 =?us-ascii?Q?P63pwZCOW0lFOwql+gSjGtYg8y7mor3BjNSrKQtKvjku6oJuIWAGDx+ldepG?=
 =?us-ascii?Q?DnREe96UhyYFi7cIPUBpHRcrDtaiTTNUPQkcLmtXy/DO5NpTBoDTJPe/qseI?=
 =?us-ascii?Q?s2WH2D7M01xPwqgfFtuBdHL9dEGKn67sOa0/5w2uBvkou31zjWpIee7jE4EI?=
 =?us-ascii?Q?FdTqxs+pQTs0FC8bFNBgkFivPaExnk5St+qGUCa2IMIpdRgiCxq6ndTqZYFX?=
 =?us-ascii?Q?S2A2T/bM23EqHRZRscuZpe653NG7xo+gvosE2ls0VBdqKvGdp8baCpQAO/pa?=
 =?us-ascii?Q?dXp8pVmbc27C47ptakbdmt5rvEn/Ggd5owQPH9lJpm4spLJcwQcADsCSOEr9?=
 =?us-ascii?Q?GACJfEMQD4LCfbQTIrDLVsUvgxYtOHn+sMMzLCC4s9ZyoerUYY1YcF6UPfb0?=
 =?us-ascii?Q?dIfnEAWJoVaffgAPeinOGkj/sZ/lPyIgqNcEpkjvtYDsyJ7BtjNReHu76UrV?=
 =?us-ascii?Q?sJS8VG1YjHb6e9lwEDViNGyAO6+Q9PlzocEqE+Womh58w+ZXtkL7uFo2/eEb?=
 =?us-ascii?Q?IBpKIp/2Vs4PD6/Vlugwy/JxaCSSzQwI6Hxm2eT/AGQH+xj74td64My6C8CR?=
 =?us-ascii?Q?Itub4pYWWBuqafW+IthBqnJUsuaEanIiAap4FJj6hmzEpqGMn2jy5bzFN3Bd?=
 =?us-ascii?Q?6s10d5KXP8IxPFBr3omJwsCjYiRmGIIbRCRU1mY4VTUxc+sR3TIRyQKrU3hY?=
 =?us-ascii?Q?gu4/X9fQJqZ0I9x+pM05X3wjDV2pRRuT8MjmTLUrftuSDKrqKo5Tag3O9l2/?=
 =?us-ascii?Q?Nfi++7F8AmtZL2Le0AH1LyeyXgpOiTx3eOl6v4Nap2MLAK023UrYBS3vF8LZ?=
 =?us-ascii?Q?t1zuiTLg9Fnqc5HsbKOyHaGUJ4IEySqg+OUQS+CbTGX2NlcC0h2AMvfzKKNt?=
 =?us-ascii?Q?HKwzeZqubCcz0gXQKXhbmv2u+XBaYVp7i/vtpP2/S0xh/BTszM8XJJK5yV1B?=
 =?us-ascii?Q?80XzIGxilk7zQW7U3R5I4UwPCiab1nlapSMUkApSFaDoQvzHMCo3Sdk5PduN?=
 =?us-ascii?Q?jjzMeJT6KEF1D48tHpe2g606IILJ6PiP61qHAqojNLLSINI/htal5U/LMdWw?=
 =?us-ascii?Q?VMaTjh2FAncVSkFT7UIhEeOIwIcPyisXgAE5oOTXbQTmg43z1iF0oQ2+BVT2?=
 =?us-ascii?Q?2u7ntd9ClrzaATvSOaJxyDpWA5ZEL6b/Y08L1/RNOpAnkmZyoTDsluZqZRTs?=
 =?us-ascii?Q?DDPcw4tjub429PYRWEGPZQmj2CwrpVV85zsU0cApp0I1FOF360dhos/0v7KA?=
X-MS-Exchange-AntiSpam-MessageData-1: Tq2Z1AyVu0RRkQ==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 9e87ca95-2a92-41f8-6846-08deb927ca53
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:02:48.3061
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dF6s/1ARJpk5y2JIW5ft/jYYRexbBfwaXMJhy3O29qjRoYVRDCUUcaph4U9voYHzcwfM7hqf1y5YYuBXZbuvFg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-720697/1779580972-A8979161-3D5BD38E/0/0
X-purgate-type: clean
X-purgate-size: 4915

Add the 'numa-node-id' property to the memory nodes in the Device
Tree passed to DomU. The NUMA node to which each memory node
belongs is determined based on the virtual NUMA configuration
specified in the xl domain configuration file.
---
 tools/libs/light/libxl_arm.c | 81 ++++++++++++++++++++++++++++++++----
 1 file changed, 72 insertions(+), 9 deletions(-)

diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 7e9f8a1bc3..58a357858d 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -670,25 +670,84 @@ static int make_optee_node(libxl__gc *gc, void *fdt)
 }
 
 static int make_memory_nodes(libxl__gc *gc, void *fdt,
+                             const libxl_domain_build_info *b_info,
                              const struct xc_dom_image *dom)
 {
     int res, i;
     const char *name;
     const uint64_t bankbase[] = GUEST_RAM_BANK_BASES;
+    const uint64_t banksize[] = GUEST_RAM_BANK_SIZES;
+
+    int cur_bank = 0;
+    uint64_t cur_addr = bankbase[cur_bank];
+    uint64_t bank_remaining = banksize[cur_bank];
+
+    if (b_info->num_vnuma_nodes == 0) {
+        for (i = 0; i < GUEST_RAM_BANKS; i++) {
+            name = GCSPRINTF("memory@%"PRIx64, bankbase[i]);
+
+            LOG(DEBUG, "Creating placeholder node /%s", name);
+
+            res = fdt_begin_node(fdt, name);
+            if (res) return res;
+
+            res = fdt_property_string(fdt, "device_type", "memory");
+            if (res) return res;
+
+            res = fdt_property_regs(gc, fdt, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
+                                1, 0, 0);
+            if (res) return res;
+
+            res = fdt_end_node(fdt);
+            if (res) return res;
+        }
+
+        return 0;
+    }
 
-    for (i = 0; i < GUEST_RAM_BANKS; i++) {
-        name = GCSPRINTF("memory@%"PRIx64, bankbase[i]);
+    for (i = 0; i < b_info->num_vnuma_nodes; i++) {
+        uint64_t vnode_rem = (uint64_t)b_info->vnuma_nodes[i].memkb << 10;
+        uint64_t regs[GUEST_RAM_BANKS * 2];
+        int reg_count = 0;
+        uint64_t vnode_start_addr = ~0ULL;
+        uint64_t chunk;
+
+        while (vnode_rem > 0) {
+            if (bank_remaining == 0) {
+                if (cur_bank < GUEST_RAM_BANKS - 1) {
+                    cur_bank++;
+                    cur_addr = bankbase[cur_bank];
+                    bank_remaining = banksize[cur_bank];
+                } else {
+                    LOG(ERROR, "Virtual node %d: Not enough RAM banks", i);
+                    return ERROR_INVAL;
+                }
+            }
+
+            if (vnode_start_addr == ~0ULL) vnode_start_addr = cur_addr;
 
-        LOG(DEBUG, "Creating placeholder node /%s", name);
+            chunk = (vnode_rem < bank_remaining) ? vnode_rem : bank_remaining;
+
+            regs[reg_count * 2] = cpu_to_fdt64(cur_addr);
+            regs[reg_count * 2 + 1] = cpu_to_fdt64(chunk);
+            reg_count++;
+
+            vnode_rem -= chunk;
+            cur_addr += chunk;
+            bank_remaining -= chunk;
+        }
 
+        name = GCSPRINTF("memory@%"PRIx64, vnode_start_addr);
         res = fdt_begin_node(fdt, name);
         if (res) return res;
 
         res = fdt_property_string(fdt, "device_type", "memory");
         if (res) return res;
 
-        res = fdt_property_regs(gc, fdt, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
-                                1, 0, 0);
+        res = fdt_property(fdt, "reg", regs, sizeof(uint64_t) * 2 * reg_count);
+        if (res) return res;
+
+        res = fdt_property_u32(fdt, "numa-node-id", i);
         if (res) return res;
 
         res = fdt_end_node(fdt);
@@ -1365,7 +1424,7 @@ next_resize:
         FDT( make_cpus_node(gc, fdt, info->max_vcpus, ainfo) );
         FDT( make_psci_node(gc, fdt) );
 
-        FDT( make_memory_nodes(gc, fdt, dom) );
+        FDT( make_memory_nodes(gc, fdt, info, dom) );
 
         switch (info->arch_arm.gic_version) {
         case LIBXL_GIC_VERSION_V2:
@@ -1716,10 +1775,14 @@ int libxl__arch_domain_finalise_hw_description(libxl__gc *gc,
     if (res)
         return res;
 
-    for (i = 0; i < GUEST_RAM_BANKS; i++) {
-        const uint64_t size = (uint64_t)dom->rambank_size[i] << XC_PAGE_SHIFT;
+    if (d_config->b_info.num_vnuma_nodes == 0) {
+        for (i = 0; i < GUEST_RAM_BANKS; i++) {
+            const uint64_t size = (uint64_t)dom->rambank_size[i] << XC_PAGE_SHIFT;
 
-        finalise_one_node(gc, fdt, "/memory", bankbase[i], size);
+            finalise_one_node(gc, fdt, "/memory", bankbase[i], size);
+        }
+    } else {
+        LOG(DEBUG, "vNUMA enabled: skipping memory node finalisation as nodes are already populated");
     }
 
     if (dom->acpi_modules[0].data) {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:02:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:02:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318199.1586621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIx-0004qw-RM; Sun, 24 May 2026 00:02:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318199.1586621; Sun, 24 May 2026 00:02:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwIx-0004pz-Ik; Sun, 24 May 2026 00:02:55 +0000
Received: by outflank-mailman (input) for mailman id 1318199;
 Sun, 24 May 2026 00:02:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwIv-0004U6-S7
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:02:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwIv-005yCJ-8E
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:02:53 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124027-e002-0a2a0a5209dd-0a2a45028cbc-8
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:53 +0200
Received: from [52.101.125.126]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124029-af86-0a2a45020019-34657d7e3484-4
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:52 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:02:50 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:02:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eH+AkP/WWH89d2hhX1WI+hwl2pvfs+wjb5qlO47VDdd3n1xXzkqrilRDlf19NPGw3G80EqngStVNuAGOUVBgb+ULHI3XzsSQIpu+iaOVSYY+7rtm3Nxkfv+qPlH8F4LoBDcMIToBxw3IqMIv2ow8OJlvjcSjSeqSTOZn/YP1Rw22GdcPI3po6vHSLTEUJEfvR/TMDrN7djmZt66C1E09IwXXYODqGPSyw8kBzAVr85p0nsprUzRsJZbk+9xzYKjZ4kgbLcw2LdhNqgqZBFwLzAnTPgRqQ0z77mSWbho2ZlBMcvA+nE0ACsJKesK9ZTYvUbOCEk9ge90sHSXDcs+jlA==
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=vm5+dbsTJv0oVX1IQ9G1iAH7WAbtmEAi6LSc1CXaftU=;
 b=TC+w04ua2qFIBe0lJKJCelD1rCjoLQiDnrTnIwVSob+I6YMiGBVO2vmA9TVPJZXQ5sl4g15xve8tTY2ZVTpGWhe1XjuVd9lCpWp5uubp89RUeS4KVYnfZqXXcvTlkcCLGIAr8uzyjNmpzU4xAsVqKEARtFz0V64FYS7uUJUn0huDRVGJKXhvmRtyVsCONu2Q4CR4Jh18COXoIyjvApeu3xWqjUey/OKrjg+pbStWplQ++bEMUFKi6i7kKpfIDruTe5IfrP9Y9x69AtducRDJNwwcNfDw3iCvZ9kZ2uWK79fon8vTKYZwniKApRkd2QBuW6HEgslmvpnFylXpk9JgUg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vm5+dbsTJv0oVX1IQ9G1iAH7WAbtmEAi6LSc1CXaftU=;
 b=ezmhgRV1WnL1UTWKIzF+C4r4mfOIbs8yEd2LmDX5KOqozWFTNggeF59N4PdmcF8BlwHL4VrufL8f+XocCSc8Od1QqAR3tqg25kgBbwpXgJkFWtS8guOBiE6hqSSCssfUispNjzHMtN0UFOeLzGh2VFHy1vhF6R6oF4bcXKmulk8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 11/21] tools/libxl: Add 'numa-node-id' property to DomU CPU nodes
Date: Sun, 24 May 2026 09:01:59 +0900
Message-ID: <20260524000209.292370-12-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4P301CA0066.JPNP301.PROD.OUTLOOK.COM
 (2603:1096:405:36a::19) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: d7d9c871-ac3d-4232-5309-08deb927cb9f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003|6133799003;
X-Microsoft-Antispam-Message-Info:
	04bjKQ3c5e88s1CtJdFXWAipu+VnDGL5whq8eu7LSSuV2BXbUH9SBBZT7BzR0Nzgp0VEoOsyiSR22PoxbnKDD4MsSOfwXDMlczwsVNCsCbthFuoZCEQ+M7a+WNnxr1vxgHzPIUAdX1l3mk58t5M/+UgVqjRy+KbxqVkYeh6h9aWbHEBh4//8ObZ1Vm1XdkfXEh+8oVYayjhRqytkkvMVc50Vlo0CTmTZEm7XeGi5jTtTS/im7VEmJlsLFJiVxZvYKiI7isoM7NJDtMGDMBnw0EX8wWNS7gg/ANFmvUCfc3meMdBEaqHYVltLTrcz7HxtOcNcuG3FGuoulwgidFzHuxK+u1xWafVNyEPCd8iwZR+0tHNLR/2qjD8ymXe+2PwQsgoUp6wDEavQin6FVWoyEttS+kczubawtIGz+efjADG1F1ZBhtKMtsfvzG4IjUus/Ko7EJg8N96c5AgsAIzcL32WcmPRJP4+7y2bQX2nIVFteYW36kbCrptKi7LbSWJfXoOtdpgNcMWh+0TRWMA1btcIpgzMgc7mu56ysLidKV76t5VLwwBmhoApsevO0x8MJVd0LiDkUWu+6ulhinQW15OdZVpgU9Eyb4ywR9X/kaz7W0gOhLsJG+yS41eb0J7NPHknToGojyQvdQK68+xZn+gnT03bw0aSom22s8A4xaPzj/5zePYuTlxXzG7cX5NG
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003)(6133799003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?qm4A9bWWhXe4PaB3bZ5SSeP91jZyl71W27m08I9eTQ8ehETyg6k8OJOmPYrt?=
 =?us-ascii?Q?kJX63/JI7LjdOtg4H3XA+bESh6n1lURkf+fWy0wiGWJPYITlEBnMiucDd2+U?=
 =?us-ascii?Q?96+6zqWwVMkEPBflGcEJ4Vs6AkGluwb8/OlKMpVLOazG8ca0Oph/N0GWD6lh?=
 =?us-ascii?Q?EAGSkh+zfsbVBDuPmtaWPtcEeVGe5o3OCfE4hKQ0H7dyicPBjD+AIBQsgKiV?=
 =?us-ascii?Q?rTpZDYlRo4ugdsAZVdncKQUc+UdfuaFFQBQNi3gmQNFdIGTLHxtNilOG8J+R?=
 =?us-ascii?Q?hDWhP9OOVcQMFu+GptSA9WcG7gMUzTWUBqwnSOiV+d72utNPvvYDyHJAdphR?=
 =?us-ascii?Q?uqkoDnYCkfVEOrnVsMqpxbZ3r0hZvmVjO+ybghKyKh4U6JCDK3toSC6TGr84?=
 =?us-ascii?Q?mH2rStoLpx3tBVgwqyFFsK+SxiGfsmNSaUwlnDRasutpJ9OqKVtK5shdf8zR?=
 =?us-ascii?Q?1RmjkZ9bJRa3GdWSrNteLiwPXWlcvCMet6J4imhXSnfiL7A3MGQJiwn1Kx+o?=
 =?us-ascii?Q?6ShuKkl0Gr7FOQi98iHv9I5LK319TWwFzcI7Yb+inWmKRGcLo4u7Y7+Owi/C?=
 =?us-ascii?Q?YRD/s1j6QerSsbwhoCZzY6/Sv3NuxQUI4U29Tjk2ISFVPwGXeh7l0kPNx/zm?=
 =?us-ascii?Q?0CPHHQfIfXhgcsp/sNZ/6Vu5YWr/DFFL3vr8LyqVIT8cVvH85tc5j7YBFf2R?=
 =?us-ascii?Q?O1E0TIrBHHjpM5frZnfwR2GdcTx+cVe36dfOIEE3ZSbeA8eT3BynsXO2XhZe?=
 =?us-ascii?Q?Enq+shkqfMhgUb/oi2QwLtHSM/FPNBrwnM0WhV8/9+pKcY8eQf9OJrhDKfU2?=
 =?us-ascii?Q?shmGhSaLEq1e3A7PMHsn8EPs/7i/jcrwuQcbcm67KZQ1zbuTNPn2LfuIDgYG?=
 =?us-ascii?Q?L7o4KiW8NEer1DIRcY2wsH4x/7/jTdw7J9qw3dH1lABkF+TnlFDUIWYAMkFm?=
 =?us-ascii?Q?8hM0QmWdCnBTA/nG6Dfdh+l/a0JAvkw6oT3Ohxm4b354K9q+dnajpE1WP+cR?=
 =?us-ascii?Q?u8IKbQRqh5BH48718P9yz11jTCu8VQ3DCOoYp8V1iPLl2/+p/AOelC2V0XBn?=
 =?us-ascii?Q?RMaSNWeAZMg7r3kJfD1rcrLp+J1xQZE48X2tqN6YpvMhWxWErJxgLeHPEVWJ?=
 =?us-ascii?Q?T6+yFm1oJNOgZE6tOdyI2o7vqKZJjnBgnWJw9s0xqRHv72cpif+KO3OVO+0Z?=
 =?us-ascii?Q?FutnJAY3MFZIsrX5MDoG9Ki2EyWKDbweyZ2QCkDPpML4JQl994bzYILum690?=
 =?us-ascii?Q?RH5axWam0/44qfJk+Jl1DLwsBErEkuHVD2sk6uKa1mnx9I8cuaDKnNEUOuEb?=
 =?us-ascii?Q?tf/L/vio7dYdn2PKZifmlW85+EM4VfpP3f0WIHVwItom8dCRq0poD2zPGpWf?=
 =?us-ascii?Q?iWsX3Hq50o895CpjnPprcYLxI4fZOOVbBK+oYo6KX2YXSoJQNVMV6y6gDsub?=
 =?us-ascii?Q?gyW8ghb3j98PIbuKzkR8yvn49s6m66N4uvGsvacxhHNkeY2klUQ+5ZxuS7v4?=
 =?us-ascii?Q?nG6hDeHt0P00Iz/ENdrJ/IQvw+hTtXCYMc8LPRLrxAy9Cvk7u3xwI/1Hhb5c?=
 =?us-ascii?Q?B+sSXfBcaQ1Y4dtTht8Ifr4Cc03Vtenngzl6+UH2Vp4PgmkEoUrBIn9kyVjb?=
 =?us-ascii?Q?aR1Pk+AEBknVqqOlsRfNKlExh0DpXWWLuTpHvqsrPbbS6kJoDfUFitzrPi+X?=
 =?us-ascii?Q?jesIMh0JAJV0F5wYDtEpuW2aAFQns1FdRziQ7+sfG5+Mv6ypIByYt4v/pzsU?=
 =?us-ascii?Q?OEWn2Fj9XDSJsoaAAU8a1Fpk36+2e5Pnqp/acWticMiW3qZrYFgZqY/fJAxP?=
X-MS-Exchange-AntiSpam-MessageData-1: abFeiRgbK7clNg==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: d7d9c871-ac3d-4232-5309-08deb927cb9f
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:02:50.6052
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +hGKx6nTSb049eCs5wm3ORlYDqIevM0Oj6lh2swKMmmZWvJe068MX1UKJZp90JSCKzPbo4Synqdlfj+qckWnfQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-720697/1779580973-A9772161-21C2FB21/0/0
X-purgate-type: clean
X-purgate-size: 2298

Add the 'numa-node-id' property to the cpu nodes in the Device
Tree passed to DomU. This information is retrieved from the
virtual NUMA configuration in the xl domain configuration file.
---
 tools/libs/light/libxl_arm.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 58a357858d..05d0f18e1a 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -571,7 +571,8 @@ static int make_chosen_node(libxl__gc *gc, void *fdt, bool ramdisk,
     return 0;
 }
 
-static int make_cpus_node(libxl__gc *gc, void *fdt, int nr_cpus,
+static int make_cpus_node(libxl__gc *gc, void *fdt,
+                          const libxl_domain_build_info *b_info,
                           const struct arch_info *ainfo)
 {
     int res, i;
@@ -586,7 +587,7 @@ static int make_cpus_node(libxl__gc *gc, void *fdt, int nr_cpus,
     res = fdt_property_cell(fdt, "#size-cells", 0);
     if (res) return res;
 
-    for (i = 0; i < nr_cpus; i++) {
+    for (i = 0; i < b_info->max_vcpus; i++) {
         const char *name;
 
         mpidr_aff = libxl__compute_mpdir(i);
@@ -607,6 +608,17 @@ static int make_cpus_node(libxl__gc *gc, void *fdt, int nr_cpus,
         res = fdt_property_regs(gc, fdt, 1, 0, 1, mpidr_aff);
         if (res) return res;
 
+        if (b_info->num_vnuma_nodes) {
+            unsigned int vnode;
+            for (vnode = 0; vnode < b_info->num_vnuma_nodes; vnode++) {
+                if (libxl_bitmap_test(&b_info->vnuma_nodes[vnode].vcpus, i)) {
+                    res = fdt_property_u32(fdt, "numa-node-id", vnode);
+                    if (res) return res;
+                    break;
+                }
+            }
+        }
+
         res = fdt_end_node(fdt);
         if (res) return res;
     }
@@ -1421,7 +1433,7 @@ next_resize:
 
         FDT( make_root_properties(gc, vers, fdt) );
         FDT( make_chosen_node(gc, fdt, !!dom->modules[0].blob, state, info) );
-        FDT( make_cpus_node(gc, fdt, info->max_vcpus, ainfo) );
+        FDT( make_cpus_node(gc, fdt, info, ainfo) );
         FDT( make_psci_node(gc, fdt) );
 
         FDT( make_memory_nodes(gc, fdt, info, dom) );
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:02:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:02:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318202.1586630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJ0-0005Jx-5u; Sun, 24 May 2026 00:02:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318202.1586630; Sun, 24 May 2026 00:02:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJ0-0005JN-0x; Sun, 24 May 2026 00:02:58 +0000
Received: by outflank-mailman (input) for mailman id 1318202;
 Sun, 24 May 2026 00:02:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwIy-00056P-Vi
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:02:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwIy-005yCJ-CB
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:02:56 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124027-e002-0a2a0a5209dd-0a2a45028cbc-10
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:56 +0200
Received: from [52.101.125.123]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a12402e-af86-0a2a45020019-34657d7bfa90-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:56 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:02:53 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:02:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fIlEJq03wx5ft4hA/+UL5FvA4TmFRUw7qrztsKK4Xgf301nUaU/marw1kY3P1FezCAMMVXd+kAuYJTHubNul41KDFxs/vnQzzgHJtJJt4nv69dbV+L4AD5bEiBvBP1TkNCsWlFjx36OlFBGcyI57FVFR32whHVO622Zvje5OHGu1vC3/4MjIl114/HnzUJXnN/+Fd8HmkCTLMwC/s0pxunq1TiAbiSYQ6keN7a2hvIv+fDC+Rrx++3KBxeckidiupwfyghpw6mLUH16HX4LFot2uGWuqDONW+00zNfKfo+ngOCJI+lB1rJ4feHNZ+QmUOUy6MHHxTYVG+dsLcLSZkA==
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=S12V8T/HbwUmUQrI5N20DCLbZwR54rjOcdi8RLCVn58=;
 b=DEB0YtRfWHO45kRwzwFa+xLImZeBmpuADRs+/JNzjp131yfGOlDO0iy0AD06b+Sp28X3ZHAEHQcfIYtmZ9XqJHkqnh4LTCPjNJv7X0d95XON66KCMdznweuzspgylBkj84mAtN6uotsbwxL5kwySG4v55/dUKwyHGJD032rloC5AQZmFKeOWGs8yoOSzHQUqwTc2nRF4WVJx+GfBYQkJuCXLOccOKzfXBryLuoEuQtZXmxCfbTSiDpIYx1A0Djrr+h5B0V/hDHWB3pzNbW9S68SepjCtSO08+gYCmATHbp07GWTWBTELavOJ9AOtd47nu+suNJwL0tSde9MRaNFZGQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=S12V8T/HbwUmUQrI5N20DCLbZwR54rjOcdi8RLCVn58=;
 b=l1C5PacpQCbHE0yewBYtpP+uZBHQ+YMUkRPSUq+tWRr6aBBFsom/3TYgCUp05W/R6k/aK869NCDjyh0L+aocI1p6oBXeK+dMrlUJ27+nYgi4rH/NHh2KNXkRJDscet/yhGvusQGI7N7qfQwMNy3NAVRQnKuIDewYwjSQW8IkBr4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 12/21] tools/libxl: Create 'distance-map' node in DomU Device Tree
Date: Sun, 24 May 2026 09:02:00 +0900
Message-ID: <20260524000209.292370-13-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4P301CA0060.JPNP301.PROD.OUTLOOK.COM
 (2603:1096:405:36a::10) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: a839b730-720b-4718-d795-08deb927cd12
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003|6133799003;
X-Microsoft-Antispam-Message-Info:
	Le2gST7E2xqO3wwJ3PFJvNeLga8wpsoeFlKxahHpaWcXMlK9zwVRRUesxEGq1Uou9Auzppc/DRWyihkZ8zcYewLtuj7QSfgly0aHH9SF2bPOshinHBPtixr5zdA4YFZ88vKyLRlUQScXqylRM2z2TRb8x7pXcTL80zfLytO9tTZU9jiwZqKz0S1S82D3Gryfm/S+9ZRcxqDGwDgAKaX9eTixB3LwcPhx4WZwO34+zPQZUhGJR9mESTAvBC2GkkgFSE/pmOeaF4NwVqenQavuROA8UkhH25KqUo2yeGS511mRAOvHkpZk+Ks3INQ/fX06YmzDhMbOsL2c5w/mkY6Tlh4putweBqoORhCG1dZIQvtu9nc3umhiQu8G6EqZ7zNXBDt4T4D8kLmm4k8aRUv0CYvhzj68/xhKsjIEjHqc2mjtw9uIv9XERUs1tEdyyqQSR177sDoh5db0T+QDn/9PvGccWxJaq1jWAjWGqaDtVt4raFRe8eRQpoDAjJ4qsuve202GhwM0ui9TkSNsM3fgN8T2/TAwqR5ftCz03ExMAxO5vEOmi7wij+zJeKHNiwhFI2XG98wOC/c4WReG8NSVNPqUNXAdtKXhRUtxgAG0cgmUH7bkd9p+/w8F6RabGNN4zRBH6unMhf7at0vbb3q+9KQWJeDbbXYQ8V1MxfVjMmyaWVrQntWHY4GdIk7ejtKO
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003)(6133799003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?5HTjAiZZAbME0INQwnYl6nzH9Jf+cu/e/tIffb09gEE/yz/pJa/+OGXR+0Kd?=
 =?us-ascii?Q?PfqcQo9O765lPRE92GzNEtX7bJ7geHPdB1XZ9z3xAUziHSyCqSqoW32IHs4x?=
 =?us-ascii?Q?PtjvnhJeJcHq66k1EdARee9KK/BTWGq1U0wPXXK4eIPHVMUWio2/hZZSMfIG?=
 =?us-ascii?Q?8+MeyfKArGfRhPKSA5jTo8XSdCxTGcyLchW5+BDTL1uWJJLbLJQDt5S0I5pQ?=
 =?us-ascii?Q?E5Fv/iUIE80euBmx4nAbnw3AY0zGWddZ61PXr/Ox7p2mhMNBwHumuWeN9W5r?=
 =?us-ascii?Q?s3WRbgI9O4vcje2CFaLvMdMVuhytnKEySiztJoq7ANj6RX066FY16jaDNOcR?=
 =?us-ascii?Q?oLCSxIGMUIfU4+OSasduPAqSFPaRKH2TzJX6GfngWLjkbjx8zOoz5VwOLhpn?=
 =?us-ascii?Q?eCmTeqKHRkrNnNcLe/dMc4hN+2Q6eyoVlY8m8TGTuDrddLuCzTWh+FQbdKaH?=
 =?us-ascii?Q?Bv00kijAdt/UdGu7a+h91HSlgaEgDmpsMIMlN1M65VKGjkqO06wAmmj1H2tE?=
 =?us-ascii?Q?bjV/wuGvyidNOQx+ht0u6fQEnpgnZOPeIQSPsbg2m0Y+4ZGYWTsD2cPwgcGP?=
 =?us-ascii?Q?AeTRRceS3A3iYn2Hni5poDfqy/gE9oDeor5comk5qvGuQCaZ2tUv72KInMbJ?=
 =?us-ascii?Q?01+TN5xtRUeMdOgjaDEWZf523xqXg2D8HqDpzMwfwFBhIw38VqVldKcM/pPh?=
 =?us-ascii?Q?UHCGUSiqm9duxKwnBdKM8BqP3a6/bH8JKSmaeBIyz4d2HBO45Dut+6q4o0oK?=
 =?us-ascii?Q?1zmafzYOsgDkSy/8eeuBTk6K7C7YV4JjAMUCl3/2BK2zZaZJLSZVk+ei4eQL?=
 =?us-ascii?Q?n46V1dZURsSL1mG+xmLhyOU0ydwD+5gQ/8+nsxsfVg8DSVGRQF0r5cHYs0VW?=
 =?us-ascii?Q?+rtl6636lOV7TVqCAJ8cwE1e9Qg4neI76CB8irOt/jBkYmzoXXlIUzNvgC85?=
 =?us-ascii?Q?QKgRAfk33RpJo1h1+Uqv45QaFbRVwaKwe8iZFukMgjQnswQEiD5Ylplgzr+R?=
 =?us-ascii?Q?iWPJOoj4roPmI/ykv0nKmGyOWepUWFLfg/5CkLQac/4FxwAkmI264p3ny+5N?=
 =?us-ascii?Q?K/NSzLNelKzEUVWWL0WgGsTAtpVWTyjKzfjLV1tfVpxyTuko1tbezzSc9uHD?=
 =?us-ascii?Q?xC84GaEq0S2Tq9z74KUpoIqd4NCjSoq/zaln0jmt9rLFt4aLYhZyvc8Ztn7Z?=
 =?us-ascii?Q?XC1mIRbAfVr4CJpcKP11h/hZrnGx0uhUNSQd2n6CTrzTKqMut0Tyhn62a/Wo?=
 =?us-ascii?Q?5dLak5rk739oEgsVhyVW09xQVe3Hjzgsrz9Y8eQ2p2s4NQbNZFe3AOJMjuIU?=
 =?us-ascii?Q?XyZZR8cm/s3sV5PMbGaxvAih8wUMTNLXbIwoGtY1pNCBw06o8CYqJiKt0J8v?=
 =?us-ascii?Q?ZjbMYV3UVgcs6Uy6zBn/cnJQQvy2P7JGn9xn0JzHW2zpJ+f14ElUtA1G6E5b?=
 =?us-ascii?Q?DzACuT3diHRVcPUqdSTy8HrjjlZ8XaO1BxWtDJ8zOxtSJi20C23ngm7Bf40g?=
 =?us-ascii?Q?B4SDEsK8ed4ohyoCfqf7U/m7Z5dc4fxeI0E+H5C0cBqpnlnomYhBYjTN0c4J?=
 =?us-ascii?Q?Ap3pLq29W09/NQfwhR/pUcNExQff2OGfpLsVWdOZT8u7tTcW28cSY10C73fN?=
 =?us-ascii?Q?3hqmOfdaywRl4iLQ0rx28FvUDpzgeRpx27g/4ipRyBLPGaF3hdTRRFYjTcTG?=
 =?us-ascii?Q?AZuSze+CGhowjvC3iI2DFOkStoYz9kcavuz6Awt0LgQ0N8/UefGDi7puGbfG?=
 =?us-ascii?Q?BLvIiDgdColELpkbNq31eFxyF1vzQzyEKZCrMrZ4SUO+F+TWimAE1cYfv7ns?=
X-MS-Exchange-AntiSpam-MessageData-1: hscI3uAxKpn4Jw==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: a839b730-720b-4718-d795-08deb927cd12
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:02:52.9534
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: YalzWQzUlClEeT834tvGnqOUMRJL5bsee5/Nidgj2L+erxPAgNE9DDmEQCqIup99hWybMoLkJv2DgRU2bo++9A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-720697/1779580976-8057B161-D4818345/0/0
X-purgate-type: clean
X-purgate-size: 2062

Create the 'distance-map' node in the Device Tree passed to DomU.
This information is retrieved from the virtual NUMA configuration
in the xl domain configuration file.
---
 tools/libs/light/libxl_arm.c | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 05d0f18e1a..d2b505fd43 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -769,6 +769,39 @@ static int make_memory_nodes(libxl__gc *gc, void *fdt,
     return 0;
 }
 
+static int make_numa_distance_map(libxl__gc *gc, void *fdt,
+                                  const libxl_domain_build_info *b_info)
+{
+    int i, j;
+    uint32_t *matrix;
+    int nr_nodes = b_info->num_vnuma_nodes;
+    int idx = 0;
+    int res;
+
+    if (nr_nodes == 0) return 0;
+
+    res = fdt_begin_node(fdt, "distance-map");
+    if (res) return res;
+
+    res = fdt_property_string(fdt, "compatible", "numa-distance-map-v1");
+    if (res) return res;
+
+    matrix = libxl__malloc(gc, sizeof(uint32_t) * nr_nodes * nr_nodes * 3);
+
+    for (i = 0; i < nr_nodes; i++) {
+        for (j = 0; j < nr_nodes; j++) {
+            matrix[idx++] = cpu_to_fdt32(i);
+            matrix[idx++] = cpu_to_fdt32(j);
+            matrix[idx++] = cpu_to_fdt32(b_info->vnuma_nodes[i].distances[j]);
+        }
+    }
+
+    res = fdt_property(fdt, "distance-matrix", matrix, sizeof(uint32_t) * idx);
+    if (res) return res;
+
+    return fdt_end_node(fdt);
+}
+
 static int make_gicv2_node(libxl__gc *gc, void *fdt,
                            uint64_t gicd_base, uint64_t gicd_size,
                            uint64_t gicc_base, uint64_t gicc_size)
@@ -1438,6 +1471,8 @@ next_resize:
 
         FDT( make_memory_nodes(gc, fdt, info, dom) );
 
+        FDT( make_numa_distance_map(gc, fdt, info) );
+
         switch (info->arch_arm.gic_version) {
         case LIBXL_GIC_VERSION_V2:
             FDT( make_gicv2_node(gc, fdt,
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:02:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:02:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318205.1586640 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJ1-0005dS-Mc; Sun, 24 May 2026 00:02:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318205.1586640; Sun, 24 May 2026 00:02:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJ1-0005c4-D1; Sun, 24 May 2026 00:02:59 +0000
Received: by outflank-mailman (input) for mailman id 1318205;
 Sun, 24 May 2026 00:02:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwJ0-0005J0-2N
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:02:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwIz-005yCJ-EP
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:02:57 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124027-e002-0a2a0a5209dd-0a2a45028cbc-12
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:57 +0200
Received: from [52.101.125.123]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a12402e-af86-0a2a45020019-34657d7bfa90-4
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:02:57 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:02:55 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:02:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WjaVTkjGtDCM4cyk1wUS4zep+gOWn5jb87nPJI0aYuFJX0kV5dlCy6HZL5J8yKl2RQQvdk3szsBU5EBp+lUlY2zLuYBbQahLkwG8uTZqmon/2kLjkQam2KGJ/zeCRMQtRRdt/FsevNw+96n0EFWT0yD3AlrYjw1YFGh0DzSRv5EkVdvuj+j+2geXJ6vvfLQyLNZUFaBEJEA2vp5wAxUqd5jas5Plu1VJ/Rx+0XhPPaksC3jrkj6B+3eDw16Wuc0WnIOcb9nSDWcvKuXJrkWP48A2xI3ZCDoieLV70NqeoPDyC1sKTqWmXiEt4ajSmKnbIj0t8dPq/BMV34Fq4yjtlQ==
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=0S1ZqEU1iZpAsWT1zego46VY83uaoXXJ+aqFDfCXlC4=;
 b=hda81wSSR2XKn/b57SIwcYHNSVANGxALEsPS9hGrjUe6H/pfUqOlbQ9fs+VCi+wHNio/j6mQXQlXpzEtBPcLiXgYEPC24LnsvF/WnD2c3USaxeHN/mHJrh3YrlF52EPQO+j8b61ZPBYpEHxppNMuapZ1tNeLGfFoXGqHXQVdh4yHPNibmecKToA8nVfaKQIUMcFGrXsez8mo4Vf9BfE33WfQgZSBqvFaNxsYo3fSyRn21nQOmLtqY6aaTWA7bDy25C4trTHCbGnr5Cxvy4c+GTezCx6mzepBWGCs9j4ZwTDAXGrVEBolgFsiWbzGINfhiaNHGm2aEZGQHca7l3iGWw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0S1ZqEU1iZpAsWT1zego46VY83uaoXXJ+aqFDfCXlC4=;
 b=PuL7RHBHx+ZJhJyH2giH1vGxr82otAm+F2ab9JvjbY+Dci2A4ICqn6itLOCklezthvZR+H4v7PSHsBBP/Hj2pNce5MbwKtbqvg3hdaVf+NCiyDCAJMRA5hFjLtRRuO4p4kbPFzmvIzn/7sFEkoWd6B7KIXZvmTbaTToMP1t4fFg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 13/21] xen/arm: Introduce dom0_nodes boot command option
Date: Sun, 24 May 2026 09:02:01 +0900
Message-ID: <20260524000209.292370-14-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4P301CA0069.JPNP301.PROD.OUTLOOK.COM
 (2603:1096:405:36a::6) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: 8bbae734-fd43-4695-d7ef-08deb927ce68
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003|3023799007|6133799003;
X-Microsoft-Antispam-Message-Info:
	uvLhSOSYzjFmc1nmw6ifXTugRCpBxLnaS0/5e6gRSOXarbAPJcbEdMEwwV1najZjnLpM37fkja6d+0vKiW5PqUrQgkSif0E+MhA43Z+CUi42MqUltJZcAigeZbO4dL/qs8w4k9Wh+Tb6Gi0YHPqfj2wxWnmt7XRY+AZYo94px6eYop/fHXAmdV9W0HzCaUqgq0ZT1HcfuzdT/iS/ggl2LiBRcoqfw+xpam6Ev4+ZFVV9Ml5eUuChDvaM9T/JDqYwyBENwTpsd/6DvN5KBp9sCULHGjCwV5uuUlyDh+qgM66BnbRKb1PYCmo4xc8Ioq0PL6u1ZuzEy21XjZKFRLwVfWauZJ+L5/KwrwLPn6co9LAzdpXYYPozgiQPg9yOfsoa6xeoY6CZfyZ+kbze0ecmNYSjc1AP/d+Q94PKu+3ahAtY4PZH7oPoRAh8BwSY2q3/oth84TPOCGarTD+ZerwcVUXO931SnBBdR10Hz2B9+v6P5QMO2d9xpsFStDDp5YdDBa+znI7ZPP7CuP8X1AA11uCcWir9I6uAkam9G/QY936IT7cgiaJVsT/j/Wqs5G6JtJLnDPdrFNUgxbURx0aOBddAv4OhHkHcSXjwhY75gSmB8PN+7fSqdcxS/pWc9AuJ1QcEKWGJVIJzKQ1ApDfqTxQvcfFbgbznj1afa4JrTa77RAftStdSV+Bhnfcs4Ii0
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003)(3023799007)(6133799003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?QgDnZVR7ApYcQnlZrIHkZZ0F+6wwPCegMj/5zFaxVgkqFXn0SEb/kZQqZ4yQ?=
 =?us-ascii?Q?o78kN116Qy2lXR63JBAPQcvuJh8GFk8GZrqUR2XPH4AQuGAIzpWaCE3H9uly?=
 =?us-ascii?Q?07/G8Ly3l3WiZ/Mhpz6AnViB9Mtl4TymAHH58v/VR/SYSuRKMmADxnc/TI8a?=
 =?us-ascii?Q?9M1Y1aQVuhfBzNSCjVdMxx9u4NRsTWcR8IJ0niEz+MDq/kn8hJh2D2/0lQ3Y?=
 =?us-ascii?Q?fn7twDgp705xHfYp8oi/dOJ5qx8Mc6kUqAZ50BDKscOdcZEGOxHsC0iNTQVE?=
 =?us-ascii?Q?tEetFg+ZDUmg+sIdE1aM36Y2DO178U0hNUZZe4a2jogmfNEDpks9EprmZ+B6?=
 =?us-ascii?Q?oarVsaDXCrE4iPCGys1wZc8oJV11h0fk3y4iiYr4ekrNXa4rvIuh1EFaJDtA?=
 =?us-ascii?Q?g63D3tFvsMz88Lv9LQKmrC9AQFKywVXsBb96csF7SmXwMZ5OOQatFRxeaX+b?=
 =?us-ascii?Q?9U2twPOFhhTBZQWTlnbWUrQ6oaCWELd3LfBQ9pBH81JDyr8P/lafGOCbmZGl?=
 =?us-ascii?Q?c6WjLD1dl0nwbBCHx1bY5bwpLogqAd6XZGNpR14un2fk8HQf/fUG2SwprFXC?=
 =?us-ascii?Q?8xsKs/EkYb9d2TSnxxDfw3kCn7Nl8GU4c2EpIG9Khsuj+5LNMgNJn0dunTJ+?=
 =?us-ascii?Q?aOFG5qkiUfWzVWlDvBJASOjmBeXj8jcjEiFwhsNlL3+4L2l1yelot7KnUDI4?=
 =?us-ascii?Q?+pxzdeZp2CXEqHSllptTFJHJ3/o4ADIGfngj7lCcoe24k/D4YVFYuDYKZnaU?=
 =?us-ascii?Q?mj1Zy0QISmNPyKx22ZHyLJnXdaj8dy0/fo80t/C5FNj8P3DDXtnvgLqtJ5FL?=
 =?us-ascii?Q?94+BIfzBHGFOuVHmaYkpuQw1gHwsikod9Vyl63mwOq5hYOZ4rcYgmN69NRfD?=
 =?us-ascii?Q?LY9I5unVlVpGui61C40IwxtUkzauxIBhqh3q69FuawR9+FEOT/yiYWdgOUuV?=
 =?us-ascii?Q?aiRJ+AA/rHFViCYBsMzSQPqZhW42kla5NXYUu4gnhsnIypCm9CWMngCf0IIN?=
 =?us-ascii?Q?5nWBcrxVxcu5+mTpHYPXbV6y2bAf7+/gazIz3eO7Rlzzo79uWH6ervcJDiNK?=
 =?us-ascii?Q?lYc6ep4owEkf85AI+fhnXQ4TEXVZ5iFv02UJmQbjAGr3yEP8ZJV8p1/08P4H?=
 =?us-ascii?Q?Sc2ixKXpXqZ6IAny99f0HG6JZpfRCTwFTY8NGpCypuAlS7N6FyV3Xq4nUtdn?=
 =?us-ascii?Q?T7HodHdWV2dvKgTeeIHki1IZTjvKGC9JJerDB0sXNDEBvQFUcvp8m1JHvGG1?=
 =?us-ascii?Q?UY5RYgeIGDRY8X1g4xHI00fGW4IrzCoSe1OuUGn6SBnCts+t//gqvBZ+weJ9?=
 =?us-ascii?Q?WyUmaY9RN8CuGwzARbVGbsdThqUNgw9sLG8ChaeJOhJfWFc1Ov4bPh1I1GjH?=
 =?us-ascii?Q?BIXUtRmaLPu29AXJP4STFrs6eL1SSg4/DkYwB5WKo3tgntKTfxcu0aw4EdoZ?=
 =?us-ascii?Q?gGeTAok6mFT+cjaEGnELcki0HVvvHJqW2AxoxVnyX9OaFQ7mCmT0fOcEGbrT?=
 =?us-ascii?Q?ECuF0ukU0Bi3Vtj/a3dfr8pD9iZdSz3BoxsdtiksdVFwGm3PoJxmSelvTHZU?=
 =?us-ascii?Q?mCjbj72rv1bddLMOnhvp4GIcMsjIMAqRq3F/9/a392d41NbL23gXcNd4//cU?=
 =?us-ascii?Q?yZp1zRZKuI/GpPXVrQDYq9xxIazNsn7wuVP49thkExhlcWJJcUwouZESwCBK?=
 =?us-ascii?Q?UjKeMARqjF+/PZzR1vgvTXQFmWxRomD1r96XDt8bUSxDpzh83Rsh68kTyaUo?=
 =?us-ascii?Q?r4KCRiUdNiRqXqnH6Ujclk6B44zqNtqS8A8MHLadvewwzpNFU1034/WXdQS6?=
X-MS-Exchange-AntiSpam-MessageData-1: meCNeP+f2g+jqQ==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 8bbae734-fd43-4695-d7ef-08deb927ce68
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:02:55.1715
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 26hgt7+lVK9DIh6RDyqqdw597vNA+ph6oa84XcWc2DSFHAiw1omibO7RKhqsxB3U9sZLBuEz66G2+CXO7LKkeg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-720697/1779580977-81772161-83771ADC/0/0
X-purgate-type: clean
X-purgate-size: 2009

Allow ARM Xen to accept the 'dom0_nodes' command line option.
The syntax and format of the parameters are identical to the x86
implementation. The logic that actually functions based on this
argument will be provided in a follow-up patch.
---
 xen/arch/arm/domain_build.c | 43 +++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 1efddc60ef..f4187512b0 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -37,6 +37,7 @@
 #include <asm/cpufeature.h>
 #include <asm/domain_build.h>
 #include <xen/event.h>
+#include <xen/ctype.h>
 
 #include <xen/irq.h>
 #include <xen/grant_table.h>
@@ -66,6 +67,48 @@ static int __init parse_dom0_mem(const char *s)
 }
 custom_param("dom0_mem", parse_dom0_mem);
 
+static nodemask_t __initdata dom0_nodes;
+bool __initdata dom0_affinity_relaxed;
+
+#ifdef CONFIG_NUMA
+
+static int __init cf_check parse_dom0_nodes(const char *s)
+{
+    const char *ss;
+    int rc = 0;
+    unsigned int nid;
+
+    do {
+        ss = strchr(s, ',');
+        if ( !ss )
+            ss = strchr(s, '\0');
+
+        if ( isdigit(*s) )
+        {
+            const char *endp;
+
+            if ( (nid = simple_strtoul(s, &endp, 0), endp != ss) )
+                rc = -EINVAL;
+            else if ( nid >= MAX_NUMNODES )
+                rc = -E2BIG;
+            else
+                node_set(nid, dom0_nodes);
+        }
+        else if ( !cmdline_strcmp(s, "relaxed") )
+            dom0_affinity_relaxed = true;
+        else if ( !cmdline_strcmp(s, "strict") )
+            dom0_affinity_relaxed = false;
+        else
+            rc = -EINVAL;
+
+        s = ss + 1;
+    } while ( *ss );
+
+    return rc;
+}
+custom_param("dom0_nodes", parse_dom0_nodes);
+#endif /* CONFIG_NUMA */
+
 int __init parse_arch_dom0_param(const char *s, const char *e)
 {
     long long val;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:03:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:03:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318214.1586648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJ5-0006DQ-A8; Sun, 24 May 2026 00:03:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318214.1586648; Sun, 24 May 2026 00:03:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJ5-0006D8-6Z; Sun, 24 May 2026 00:03:03 +0000
Received: by outflank-mailman (input) for mailman id 1318214;
 Sun, 24 May 2026 00:03:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwJ3-00064q-SO
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:03:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwJ3-005yId-8f
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:03:01 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a12400e-2eae-0a2a0a5409dd-0a2a4504c06e-20
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:01 +0200
Received: from [52.101.125.126]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124032-1dec-0a2a45040019-34657d7e3800-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:00 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:02:57 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:02:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YQH/wlxKECsi9JaiDpa4H5C2e/Tc0UHzUeYMeWpt7PVnpIf51zx3DAvIyJ/ZliRBxiKrOH5W5gGsieidRqTM65gXbRg1vCWE4lJWrD2ZecGEAs+nkqfiRWipehJHbWlSMsXuoFPKOMmgCJGNd9CLvhL/rKUsdPdeB7uQyT1z75ttU4ZwcISFNUVlkkuMW4p3jt19KOAAfs+RZjaJYQUXz54ZRzPhlQJHq05yM/RI7fU0ZGqXqetJaJk15FwlPeTwIkKYtjs8SzpRV9uCU4Nk0v9rypEXOKed/w2IskMLznkuEmPqJH/oxyJRnpgVGkal6j2xYAU+/tk36tP82Gx6iw==
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=blu4oOd7tpGPVUBQPLctq+uqUO6TNkR+RChL3tWjD80=;
 b=UW38uiKJ7CT9NDilJO3jMNm6lIz7dxIcAlizc4SaYvqx7qW5HS71OlKC8Y8Unq1niBCDH+gk1ZC8WyIw6rsYOk1T6rtQKonCn1FWddlQ6FS/ZF4A+Pl/aniZUfb8TeFu3oVBhusunMrr6JKI+jt71Xo+rQ4v74u92U3hMxkwhVpaLsVeDiblSy63U8clnl8X6KgvnWUCoqjleyrBtBAYlVSL7ikd8vrDI+2q/pNdvpWTmOFfTCoetNAQJAYLSjVFH7E3QJ0/OkRAFKUtOTE07/3Kj5j+gNAPXvLcBN2GpmQqVClltKX2sCNFm6nZ6gqWpjWB5cy5YqD+1sLyS/na+Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=blu4oOd7tpGPVUBQPLctq+uqUO6TNkR+RChL3tWjD80=;
 b=rdmA9BUL9vjRZlo4RhpHxqDzfamWF2Pb9aU786Fu36QUjR1uFZFxk1fGMalwj4DTIA4JrVU5RbFVMxxF08z7fq9sqF6BM4U2gWEhqAeYTpKSncpuno6CDY+VFC1bYp0WIGKJQt+WBln3zwzLE0j1Z9w2uxLDlKWt4KjOR7or4GM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 14/21] xen/arm: Set Domain-0 node affinity from dom0_nodes option
Date: Sun, 24 May 2026 09:02:02 +0900
Message-ID: <20260524000209.292370-15-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0112.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:29c::7) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: 82b99f45-8beb-447e-7c86-08deb927cfe9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	gxwkfaTMKAqlQEEnXHj4KvcQRB0OLOPgWkw+aGwZz37itZOg62wyRn+fXoUniWBfkQgiDe1T5u8yJI5JiHNjgjAYtlPZMxhjpBq8lFtAhslI2JOvKuwEU70VMjxK4iw4OtTlaYTkiPmMXCy9dlc5GwhO2edDdupBt+nJRBNhaFqBiX7keyWeF2Kq5Y8nTCtfdAUUD429wIZfuKcxYokT2dXwWLZBYIhJA5oH+2BtCoLFHvr9f/HYIZBoEqmzTlO++O++Xq8R7+lPgV4rLSYA51IwFZT3BaceBTfmP7qaRN4cmt0eKyWqcBVO7Qow+To97YOuFdyrwiv2AXdBoh+0E/y62dl2grRUqtR+fKF4YHdxfXfexRSaGhKWuLD9YuExtDIE9IARXklShwvEMe4RejaiE/Q102WTty9tcSH8nFScyQtgvpTGwJocWd8N4VWIpUkKdUk6BRMY/DyNSs1VzZx8v71G3OyPny/iiXzJoGfe0G62aYi0Gky1AK+Z49tm6yFzMnnMf7vrsOKz7DodqRWOee719MlGHvRsuAFr6ch2WtgXmOAgCX9qwmcXS8tTFGelDAh3xM452w4z2Pp3AVg23/+/uMPLPUYBLyFljPgvphpYgxF5X51WTMdr31UXBBOIgBC9qPwb/kJnJxEJNMNMzNl0DdkntOk/wHpgClxDmVp7S53YTOwnQ6Xf7Ibo
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?eZhrmdJ2IMwteR9gnQzkJudDtJZI7LA8IjsxR8dIXzYWwpl78hvldT21Akv+?=
 =?us-ascii?Q?mWm9nYDgwW0Xg/y+kBo54keXhJyXLoIbLwRmJALxXSPEfW8O3CHFbSQtta3i?=
 =?us-ascii?Q?Nf2zJI+G24EXcQGQ+uhKO+VOkeWkbyF+VstqSwc9/jrLWhULFj/vrYRYwJ6x?=
 =?us-ascii?Q?E5Q8T7Kn4udr5t4FbV0qQegea/kMdP/iZwOd6lyn6HLQqcptkOt0rsTvMAfU?=
 =?us-ascii?Q?C6hnQKdQPkTbR8qEWC71HsRioDg2Q5gg3By7va/XPCnAryZZ8V0BRaUWsnCG?=
 =?us-ascii?Q?kkL+Zq8l6jtUavbV8TGrBYd7CuyDNym7JeZDqh4+j/IPiy2qPrps0Z4aHf6h?=
 =?us-ascii?Q?2PvY8KBRcIzYrKL23pFX0qFBWU07AGw0/VZf8TSl/GVr0gKwnmU013rRgqf9?=
 =?us-ascii?Q?3cuKjzchnXvCG0fqZGY4ZSY9FPGJ4kHyRxj3NsUWaK1LpXGaHPeKWpvX5PXH?=
 =?us-ascii?Q?YIgBUntJWLZeoHmvaBzqwQQCIa4oRwcIUlbtL7n6o5krEeIc9aveunfmc7pO?=
 =?us-ascii?Q?WkU94IzpLPV+UMkP5Ge112mTFXqMb5CiplzV6O+hrIw7/9kkAW6eq4yTFb1k?=
 =?us-ascii?Q?DAnjmNCZY6DSnxvWbHpIrYN39ndMdiryeBs9VPvU32c27Z2v9rf9A2bmuUzj?=
 =?us-ascii?Q?XNVwTaLLq+iYhJcFbNryQUhUoT9KyOqALsRcKBPGdVMt8PYl8zBrc+uJqexC?=
 =?us-ascii?Q?3rAMkB0iOoGPUi3c58+tcJAucZUmYDVnqBApkUJgl7nmI2LqzK4rgKz7dc8L?=
 =?us-ascii?Q?aflohRX77DBFIJcetxog+w1BueHYjkPKUpwRZIuauwZVQk4g9GrhBBH/p/6R?=
 =?us-ascii?Q?qRx48qK0MzDo87/SMZ0vA4byiZFLmmdVypUR322jXF9ECtNH9cwoVGBu4uwe?=
 =?us-ascii?Q?UE5f2OWwfbPqfPKobr1LU9qYlIWUyjs0Ga0czx2z/oknGxbDw+W+BC8zsYXO?=
 =?us-ascii?Q?BrN77bzgpwb387/7Yf0/CZj9YjfBUpPrwTaxOv6218ZjB+/7hsyDwJFM3YUy?=
 =?us-ascii?Q?hIXFgymFrg20OE/RfHShGUVWfjEJpgXX950d39rfp6SxcQqLavud6U/oGwyI?=
 =?us-ascii?Q?m6vYwbhiQluAx//Pce6keFztGytfvJv12tMPA4PjhigQoLnV5cRFylHGy7Ku?=
 =?us-ascii?Q?TB1hmJqtpuPo3NidKT+vmi96IJIMmFFubcr6LLK7JC/1Kb87qaTFe0cQkiLs?=
 =?us-ascii?Q?rcKOaFdAgD9kiTVK+ZAveymkzYHHzv6Ndd0FGbIWwx9SHbS86QNqTX9eXobz?=
 =?us-ascii?Q?VrDqXo3Ibx1K8jSFdvrtUigXZeskJYOydc8yn9SLP78zDpAEOCjTS4Dgn4oa?=
 =?us-ascii?Q?nSU22bc+w7jpswMqDvICxS1o1hh+H+NaahxeE4U07BG8QO7JKWRTjPgCelv9?=
 =?us-ascii?Q?Nl/AVuXy5ZSCLkI/EPUIDVf7XrJEveypDJwDkezO3Rrg+9GMEffjcVslWuO0?=
 =?us-ascii?Q?bU1EIwweHkoVtQgRbb+U65CkEBq1W1yZBXJk21NFtVYPbxz9i31iTkZsvXz3?=
 =?us-ascii?Q?EehLEY4GC81PvnhkuPFlqtKEMREyfFyDm5xt/02BzrOkf7KDxwyC2BxQZFkR?=
 =?us-ascii?Q?hojrPvIdfOJnx9KtukIxJqtKMg0bdyreJUgDc0UBZqmzlmwdU3A+RiDCzoBF?=
 =?us-ascii?Q?d+ksn0y0b/JHX6KlzaF461t0O0E931OiRPneou4QltWTOeXToH7t5VNZ7MUQ?=
 =?us-ascii?Q?atcXyMVC5g5/hDojpWsXGLpyWzIZmFJMRzAOIv0+jj9hhPRy+HLYRqAD1c4X?=
 =?us-ascii?Q?NBC14Fhuacx26Sfi87DI7lW9SOQNSZ/5OFQfk6ixPrMKPs9Knzav9l6r/duE?=
X-MS-Exchange-AntiSpam-MessageData-1: fbQEOer6YPHR+A==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 82b99f45-8beb-447e-7c86-08deb927cfe9
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:02:57.7139
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UM3aiVynNIoeaZMQJIMysXytLRT8ZOJACWBV3UsJp4I3FvL4Sm+7rm4igSaqfJjkrkxv+V9AKGcgXUNeBRxHMg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-ebf023/1779580981-291763FF-D3526000/0/0
X-purgate-type: clean
X-purgate-size: 1124

Set Domain-0's node affinity to run on the NUMA nodes specified via the
'dom0_nodes' boot command line option. If the option is omitted, the
node affinity is configured to use all available NUMA nodes managed by
Xen. When Xen is built with CONFIG_NUMA disabled, the node affinity
falls back to using only NUMA node 0.
---
 xen/arch/arm/domain_build.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index f4187512b0..2518909ed0 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2027,6 +2027,13 @@ void __init create_dom0(void)
     if ( llc_coloring_enabled && (rc = dom0_set_llc_colors(dom0)) )
         panic("Error initializing LLC coloring for %pd (rc = %d)\n", dom0, rc);
 
+    nodes_and(dom0_nodes, dom0_nodes, node_online_map);
+    if ( nodes_empty(dom0_nodes) )
+        dom0_nodes = node_online_map;
+
+    dom0->node_affinity = dom0_nodes;
+    dom0->auto_node_affinity = false;
+
     if ( vcpu_create(dom0, 0) == NULL )
         panic("Error creating %pdv0\n", dom0);
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:03:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:03:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318217.1586656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJ6-0006WZ-Og; Sun, 24 May 2026 00:03:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318217.1586656; Sun, 24 May 2026 00:03:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJ6-0006Vg-Fp; Sun, 24 May 2026 00:03:04 +0000
Received: by outflank-mailman (input) for mailman id 1318217;
 Sun, 24 May 2026 00:03:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwJ4-0006Bb-TZ
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:03:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwJ4-005yId-9j
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:03:02 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a12400e-2eae-0a2a0a5409dd-0a2a4504c06e-24
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:02 +0200
Received: from [52.101.125.126]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124032-1dec-0a2a45040019-34657d7e3800-4
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:02 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:03:00 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:03:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h3incp0fEeHgjGaf/D0IlTarSW4mxbwuYhbOxV1SNEOpru0A1v4mJvlVpzkCixB4J4waFbq99yX0DucCBYYhSQCSkwxzACJfAvEZ1uOFQzUA0WUJDOEKYyrS0QFqKckqopvJy870MsKq/Ep0puPx13Ls3pSMyH7yahUaiGarOA742vKhyP+NrYF5bltAb+T84n6FzvGuJX5kzMVxYNv+aF+HPgMmO9MUPIV6INImEc6fmtYLmYnjLQsTd8lKAjcrm5+UVERVJRIRDfncKMK9sc/QUs3w8KzQW3zbDpzDbpAqcChl3/bKHqqI2PEd8ZyvAo+1tE7fOnQBaajHyLH4KA==
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=uGKyh0qPXMyFNehAOEHpm32bV3yJeO8ltFIFkUh1kGI=;
 b=a5SitS0aBaLqJ9aeJ3yEpvdXu/CZmYRa/Z3BkRMSpt5OSUfHdGjfkYehoupkt+mFJfUqlljkCmeKqR7+iAVtAxyKvz5AdKWauxJ7msh/cB3kIXvgSt8uWHpmYEM2huLnulhY8QsV2SPLZSvnSaqpG+riuBig7Lieeje/rD5OLvL1DKobNUTg00eMSKPfjkh8cdakEs+/gg6XJ0q38LHgJYOCvqZJNTXPdo6RyvbpM3mJvssyV003vZDCOhhvAqGZMAByjcARIGSWY3fHkzvzIpSpvD0urC0fNiOz8DjOfuUk+naKEi20gChFXYqmnXnzu0Y3+qjXGR/TOwuV42TstQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uGKyh0qPXMyFNehAOEHpm32bV3yJeO8ltFIFkUh1kGI=;
 b=MiBfZdLPkZj5gpBCn5BDCkD2wzzXcs2YP88gigMqvxXm/kj2HG5PanXlLhNzKl6wlH0XUmS7OOyZ8LfKXuwcVuj9UfXh7eU23xbxvGr015sAL6C3OIBCzcUo/UdCkGCf2A+jsjICySPGNUnT8xwHda/J5EafT130qU4hg3g5KU8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 15/21] xen/arm: Reflect physical NUMA node IDs in Dom0 memory DT nodes
Date: Sun, 24 May 2026 09:02:03 +0900
Message-ID: <20260524000209.292370-16-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0115.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:29c::19) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: 1945a39b-5589-4ff2-3dd3-08deb927d14c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	pT9LDoPqhKRQXECn8O2g0PjOf2SvwkyAkDu5MRYymalk1gCqKFG5esyB3YWydLEXKJp0wrWzk3gn1C3RyC2LH2rNJuI90Y7FAYQADw+BdI4CnQ9PS8aeb8LcfPboJQXs/6HsmjW+DRWkrPGn2loWK2yOwVWKtRBK144mfJKzITqbv5EFoNrTZHEN7NIXQN+q+HN30K91BkZ12XVaG8vMaoqVufAl1N8Eg6ZeOJabXSV4PMR5SSN4UlXkcoxWXuKmKPG/doULQenoDSBoB+2XoV3dHIHu4q4aabUAffRsBrTB7dHp7a5cY9PH61izqPBw5su94mfO2J2HR3db+ztZPz6IG+BEb2VEl090LGWJQMYPQY5xZEmfNz63t4qDoinUS3Fd8rB/KOy7nO8gzpYpvkBWt8kZwhNwx1z3mkI7dQBeR63A1y9/hZD5sb7bLJZIJ3e3iPBwfBDF7bYXztYSp0zsx/RiRnpRFIbJwB9jJyMKrgeJlyM5CZMBtwH9i+hSt2x909/4MdoAyNl4CrcSojN1VPKdA3UqUr/lFRH0SoxksNBXsZlLaEIQUQ8i7To05tY3X7tyGUkYfg7HRA93sieA2KeU1WHR4zNkfrSnSa6oRlFLWYErrL2YDWCWVfvfH4j8yn3rAX/K5z+mQlzvBlA3hieqy6IISrKXp4ZVDcpeGAMi2QMcmj66onWQkqqJ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?hNq8h7ForHdKvQiRQwB9nOmdZQAsD1FKlKEAY744A1XzjCE/cQmZr+5DB81v?=
 =?us-ascii?Q?5whY/MhgnoXGIJOTH1YlZzN0Y5JAj/f5QtpPnRJC5Fr6nD9RLJPXlLITCCSJ?=
 =?us-ascii?Q?6XpROm+DbzcrDD+xSPy0d1QcyVG6UggWzhk/29m4KB//0N6+yMN7VkCKbJMP?=
 =?us-ascii?Q?r/jhjT8UaUMPKDwiLbKE/htqOcHHiS9cGBLU31wCy0/jPh4HAO6ouSEHkBqF?=
 =?us-ascii?Q?9sPkPkMT2r5Ap+rjH1RN7ZRflH5HoG9BH3txci/B6zZfIB6i/zG1C4MA/Wve?=
 =?us-ascii?Q?BqyZW/8X2b7nC1VoweKiTjq6yYpW5XB4AaJi+1QhV2cggWY5c2NczZDfbJRu?=
 =?us-ascii?Q?lMC9uGH2jTjKpiy46NHh3kavjVBRxs1BSgv4eoSxx1TP/Cdsf/yQRttgBeFl?=
 =?us-ascii?Q?MIRIkQeAymeSKeB/0VXm8VAn3uchm2CO+jEslaNJfXsm8FZukrTGiCkpcOGp?=
 =?us-ascii?Q?/e7GaBeTFk1l5i1cbRD7q7a7SH3AzowiB35icqc+z4dYN/+pslbvqrUn664W?=
 =?us-ascii?Q?AdOrr8hoVXq2Z6Y1XjJ7AIcUG0FtSEQUvw67oD17/74F4AgimH+cYFUvDaQD?=
 =?us-ascii?Q?KtydYdC3GO6mj8imRbZKYiNyxpwbXcaQWlutaU8aHM3sFlivpvd1yV8XLm+/?=
 =?us-ascii?Q?j8hjf5qlYAjMqCfL4HPmyFufSQ/cjoooYoFER5qT7MbsynJD9ZJygWK643UZ?=
 =?us-ascii?Q?ilEMYji2xNemMxpF+QAUd6ufJUtMdqNqRySy2vKVNMWhSFWST/RD1G0L5OoD?=
 =?us-ascii?Q?cYmATkjc13w7OewOLRQ4qBjxn5JmkmzJMOJ16li8rTRFctb63/+Nve19E7zf?=
 =?us-ascii?Q?in1kjXT1HwBaKJUpW72TFkRbyW1NV6IF5WDTZVh0o8SHtUWoCJRPt8S7DRAD?=
 =?us-ascii?Q?Oxx/kAfdTwx2WxmW/E8M/0uzTyk3iHP2RXrC0BxANPnq1q8JS19tHWi1uLhn?=
 =?us-ascii?Q?2HlOultXpxbIHUSyqB5WQ0qEqiSRJPFGIAJlDQ3z8h60HqTlp0TRgTliq1Kj?=
 =?us-ascii?Q?UtMg/Rozdi61EBskyuEX00SoPIjU1VRqBsTj/BTx0lT623azadZHq/5dOGoU?=
 =?us-ascii?Q?iEmG7ylJXJ8PQQovzPGZ15KD2vaN2A9Ov0R6L4TlHSY9IjZLWRDqI+Zui7i9?=
 =?us-ascii?Q?/CiBeo+76Avj8JpK+eRQwGx52TgSRg5N2afmm0xSbuJHXBeEvSOWqeeTciAd?=
 =?us-ascii?Q?ikg050sgdb1kIbiU8qoUu4tWTBC51Si7/FSYemfcLDJmLFkmx6MDJnCZ6UzM?=
 =?us-ascii?Q?Rb9Zkg2OJVnOB9/sgin5ibnCRqwz5B+GjqhpfiTaKSld3U7BqHwcTllGaogN?=
 =?us-ascii?Q?7vfzQh5u+QrS2eBlmv4p3LMQLH5KAwPdttmXIqBKLkRxKA9iq6ak6mc4wIgi?=
 =?us-ascii?Q?SwouR6t6fAC8s29kXlMK9mpcYcPclxmmwnPnoQr6gOOtlC5tlbht8Gx09CR5?=
 =?us-ascii?Q?KLBjCJ/+F6GxXNcObCvh/7keuvnC8o0NwkyqyCDT7+WJGkb38rN782AptmfZ?=
 =?us-ascii?Q?jlW99Qu+s4A5kP46noFE6VYVJmkOsnh7jaKIIRvsCP222XFItiiHr06bx2MD?=
 =?us-ascii?Q?7LJKsesVpRulXZYicq9069mY7u/MDUalFLgqrDTS76P7N1B8HMuamVsF1JfZ?=
 =?us-ascii?Q?ewqpEw5JeF2rUtDE/G7jSuRTc2+IvItOaivQ2u0BY4+Wt2l1cW6KcZpEOP5M?=
 =?us-ascii?Q?rqUmH21udez8PIzjWkmaX/GUL7+EZMH+3snm10Z/mda6grQy6Ru6pPrjivF1?=
 =?us-ascii?Q?2KiCb8qWPW7Rjq1F0a+PliBKuLLLUW6bge1S6Z3S/6uZ0sQsQUXT0Iwlb96z?=
X-MS-Exchange-AntiSpam-MessageData-1: MAu7AU4DucXDpQ==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 1945a39b-5589-4ff2-3dd3-08deb927d14c
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:03:00.0545
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2I0siPZsjxzga0PsiA3ybkzKDq6DwmV9Hne2KIRV4bLTsflzQ8SgXch7w8tAaxd1cHFfVMRnDBP7vnBx2o1lHg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-ebf023/1779580982-2AF653FF-16449E80/0/0
X-purgate-type: clean
X-purgate-size: 6804

Extract the physical NUMA node ID for each memory bank allocated for Dom0
and apply it to the corresponding memory node in the Dom0 Device Tree.
This implementation maps the physical NUMA node IDs directly as Dom0's
virtual NUMA node IDs.
---
 xen/arch/arm/domain_build.c           | 22 ++++++-
 xen/common/device-tree/domain-build.c | 88 +++++++++++++--------------
 2 files changed, 63 insertions(+), 47 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 2518909ed0..1deb4c1139 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -187,11 +187,26 @@ static bool __init insert_11_bank(struct domain *d,
     int res;
     mfn_t smfn;
     paddr_t start, size;
+    nodeid_t node = 0U;
 
     smfn = page_to_mfn(pg);
     start = mfn_to_maddr(smfn);
     size = pfn_to_paddr(1UL << order);
 
+    /* This code is temporal */
+    {
+        struct membanks *mem = bootinfo_get_mem();
+        for ( i = 0; i < mem->nr_banks; i++ )
+        {
+            if ( start >= mem->bank[i].start &&
+                 start < (mem->bank[i].start + mem->bank[i].size) )
+            {
+                node = get_numa_nodeid(&mem->bank[i]);
+                break;
+            }
+        }
+    }
+
     D11PRINT("Allocated %#"PRIpaddr"-%#"PRIpaddr" (%ldMB/%ldMB, order %d)\n",
              start, start + size,
              1UL << (order + PAGE_SHIFT - 20),
@@ -217,6 +232,7 @@ static bool __init insert_11_bank(struct domain *d,
     {
         mem->bank[0].start = start;
         mem->bank[0].size = size;
+        set_numa_nodeid(&mem->bank[0], node);
         mem->nr_banks = 1;
         return true;
     }
@@ -226,7 +242,7 @@ static bool __init insert_11_bank(struct domain *d,
         struct membank *bank = &mem->bank[i];
 
         /* If possible merge new memory into the start of the bank */
-        if ( bank->start == start+size )
+        if ( bank->start == start+size && get_numa_nodeid(bank) == node )
         {
             bank->start = start;
             bank->size += size;
@@ -234,7 +250,7 @@ static bool __init insert_11_bank(struct domain *d,
         }
 
         /* If possible merge new memory onto the end of the bank */
-        if ( start == bank->start + bank->size )
+        if ( start == bank->start + bank->size && get_numa_nodeid(bank) == node )
         {
             bank->size += size;
             return true;
@@ -253,6 +269,7 @@ static bool __init insert_11_bank(struct domain *d,
             mem->nr_banks++;
             bank->start = start;
             bank->size = size;
+            set_numa_nodeid(bank, node);
             return true;
         }
     }
@@ -263,6 +280,7 @@ static bool __init insert_11_bank(struct domain *d,
 
         bank->start = start;
         bank->size = size;
+        set_numa_nodeid(bank, node);
         mem->nr_banks++;
         return true;
     }
diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree/domain-build.c
index 2a760b007b..61e2e50062 100644
--- a/xen/common/device-tree/domain-build.c
+++ b/xen/common/device-tree/domain-build.c
@@ -493,15 +493,50 @@ int __init make_chosen_node(const struct kernel_info *kinfo)
     return res;
 }
 
+static int __init make_memory_sibling_node(const struct kernel_info *kinfo, int addrcells,
+                            int sizecells, const struct membank *bank)
+{
+    void *fdt = kinfo->fdt;
+    int res = 0;
+    u64 start = bank->start;
+    u64 size = bank->size;
+    __be32 reg[DT_MEM_NODE_REG_RANGE_SIZE];
+    __be32 *cells = &reg[0];
+    nodeid_t node = get_numa_nodeid(bank);
+    char name[32];
+
+    dt_dprintk("  Bank: %#"PRIx64"->%#"PRIx64" Node:%u\n", start, start + size, node);
+
+    snprintf(name, sizeof(name), "memory@%"PRIx64, start);
+    res = fdt_begin_node(fdt, name);
+    if ( res )
+        return res;
+
+    dt_child_set_range(&cells, addrcells, sizecells, start, size);
+    res = fdt_property_string(fdt, "device_type", "memory");
+    if ( res )
+        return res;
+
+    res = fdt_property(fdt, "reg", reg, (addrcells + sizecells) * sizeof(*reg));
+    if ( res )
+        return res;
+
+#ifdef CONFIG_NUMA
+    res = fdt_property_u32(fdt, "numa-node-id", node);
+    if ( res )
+        return res;
+#endif /* CONFIG_NUMA */
+
+    res = fdt_end_node(fdt);
+
+    return res;
+}
+
 int __init make_memory_node(const struct kernel_info *kinfo, int addrcells,
                             int sizecells, const struct membanks *mem)
 {
-    void *fdt = kinfo->fdt;
     unsigned int i;
-    int res, reg_size = addrcells + sizecells;
-    int nr_cells = 0;
-    __be32 reg[DT_MEM_NODE_REG_RANGE_SIZE];
-    __be32 *cells;
+    int res = 0;
 
     if ( mem->nr_banks == 0 )
         return -ENOENT;
@@ -516,54 +551,17 @@ int __init make_memory_node(const struct kernel_info *kinfo, int addrcells,
 
     dt_dprintk("Create memory node\n");
 
-    res = domain_fdt_begin_node(fdt, "memory", mem->bank[i].start);
-    if ( res )
-        return res;
-
-    res = fdt_property_string(fdt, "device_type", "memory");
-    if ( res )
-        return res;
-
-    cells = &reg[0];
     for ( ; i < mem->nr_banks; i++ )
     {
-        u64 start = mem->bank[i].start;
-        u64 size = mem->bank[i].size;
-
         if ( (mem->bank[i].type == MEMBANK_STATIC_DOMAIN) ||
              (mem->bank[i].type == MEMBANK_FDT_RESVMEM) )
             continue;
 
-        nr_cells += reg_size;
-        BUG_ON(nr_cells > ARRAY_SIZE(reg));
-        dt_child_set_range(&cells, addrcells, sizecells, start, size);
-    }
-
-    /*
-     * static shared memory banks need to be listed as /memory node, so when
-     * this function is handling the normal memory, add the banks.
-     */
-    if ( mem == kernel_info_get_mem_const(kinfo) )
-        shm_mem_node_fill_reg_range(kinfo, reg, &nr_cells, addrcells,
-                                    sizecells);
-
-    for ( cells = reg, i = 0; cells < reg + nr_cells; i++, cells += reg_size )
-    {
-        uint64_t start = dt_read_number(cells, addrcells);
-        uint64_t size = dt_read_number(cells + addrcells, sizecells);
-
-        dt_dprintk("  Bank %u: %#"PRIx64"->%#"PRIx64"\n",
-                   i, start, start + size);
+        res = make_memory_sibling_node(kinfo, addrcells, sizecells, &mem->bank[i]);
+        if ( res )
+            return res;
     }
 
-    dt_dprintk("(reg size %d, nr cells %d)\n", reg_size, nr_cells);
-
-    res = fdt_property(fdt, "reg", reg, nr_cells * sizeof(*reg));
-    if ( res )
-        return res;
-
-    res = fdt_end_node(fdt);
-
     return res;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:03:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:03:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318225.1586666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJA-0007Ck-0k; Sun, 24 May 2026 00:03:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318225.1586666; Sun, 24 May 2026 00:03:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJ9-0007Ca-Qu; Sun, 24 May 2026 00:03:07 +0000
Received: by outflank-mailman (input) for mailman id 1318225;
 Sun, 24 May 2026 00:03:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwJ8-0006z1-Ir
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:03:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwJ7-000m7t-Um
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:03:05 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a12401c-bab6-0a2a0a5309dd-0a2a450cbdac-18
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:05 +0200
Received: from [52.101.125.118]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124037-62f1-0a2a450c0019-34657d76a273-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:05 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS9P286MB4275.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2ca::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Sun, 24 May
 2026 00:03:02 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:03:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WTqFtlx3L0XOA9timBkUv2ADg+Owsm9yef+zE3fnW61aczKrbYdMnjtmRVSrm/TBvqdrjetv0J/G990o9YPAJGU0cEJwnJTmto6WoNsrQSZTTF+L793ChFAdEznkYxxsVgwsNEYbtt8oiGvk3nYrxrmNSOlq5YH5FYxoi8/SV3lINjla3TfwUG8UXLW0hNGhy0BNS0Lv4XULMV2K41thtBKX9wO/kQDpmT/2JN6tXj4iuXjOhuNJwiSvO9I8oap82aFu04lDt7w+Ji5CJkC+bsieY3VC0fbUBkeieBf/F3jAr+GTsydYiEIYZdQG879SjD5aYcqMbPHmQx9qJTDExw==
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=IISNxGg7j9E7jMdBYWz59g/s/VxE99jHkjaKf+wwH+g=;
 b=Ut5opo5qzgaEVsx7G5N8xuDiYfy2Ln6pNCndAOV/x6jPwSIqhLbS2iZHb9zexnzNgqOdcuoFpOW2x1AZpokkKh1GrQiRaroLIAEqVGQcrztuUO0//zR7u5MiJshCU+Oivl4M4Vckh80sM+1i4kiqu5kcWpP/5hkE+0dL8bGN+MgzICv8YwpS2I86E/YE6ojWGu4qfVyxUy/fVOB3ztkEzUjRe3vcMMbT7CgXU8jLUTe3r4iX5oH7ktSDteIs2J8S/oo6Epg4nVQeIQGWsa2ck2BjvT/oeuaxDfzIkMTCWdQ8VEzDz+Ts7aaxW9QzEZclXLZB4cvUFKpzD8VvCfkTuw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IISNxGg7j9E7jMdBYWz59g/s/VxE99jHkjaKf+wwH+g=;
 b=aQfhKj0vmDhv8/vGX4smEsCcfXaj1lI5VereRp2kcgSoEh3GO5QmfFSVstFO0g1FICD4hIJtON5M3tF6OgKb4Jtv43xpkUw6zgWRgVx0OrzObBm/0cql8QGKrn0uq7m945oaNWd9Dfd0somVszYNISzaF+UEpF5cfsWdL0vYt/o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 16/21] xen/arm: Balance Dom0 vCPU assignment across NUMA nodes
Date: Sun, 24 May 2026 09:02:04 +0900
Message-ID: <20260524000209.292370-17-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0114.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:29c::12) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS9P286MB4275:EE_
X-MS-Office365-Filtering-Correlation-Id: f07c572b-31fc-44ab-e135-08deb927d2be
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	hT6wiwp25e4lUwRYlN0jt1O/UydI2u8o0bVjJbbSx0RJNhi7yyRaZMm+4AKxzv482SkVMVtT3H9jzeAkEzLnItZR1DqDbq3lnV0YjMfTb0vWq6fx6muK4xS16A8aVs3+9uGCttdlWiJ4QlF0ZfUABq8oBCbVZSBNHEXXADropbAG5b/mWtMZevYzkF7cL9smM0336cXBi5uRi7CFFFNuLO+WZoz0r3SmDy/XGQ3bgozb7lj3ILnqGSaFTiV0fEmxtcNY36u/oMOwfwsFUQUW0DvBlUyKmwnf9JL2U74rMaqIqZPk6SkRALVBRAvcl4JyOl3UpWNgeLxp/dMKAjkZ/zBCHa3ZQiqhGWHktvfOnUO697Iq2P3M4f4+xisp7pTFtKF4PFnm2wXSARiHZjvM54/uxPqIZLidRpcpd4WqS2afI50OMFg6MUQkx9AsLE2js4wyJnSBV8esDcc9yCeqXbKbyi5Vk56520Jgs0ItHBPDw/vFQRglvi3PA6WnYe6s6ZQjDwVEYgknXBTL2UTMJi9Z0Xncw+QA27Za7letpNwqrn/5jce38vFVmrrFUPX4oTlCFI32PS70T6ed9wN6N0QZvgjaPdDeLbc1vzp0uhYnsIZDXahYRadz13vkCSiPIKRLFEakg9LMQC9NBQEITuSRBcrHXJxOECG2eAzZkWps/pIYjvmtmTVwS3VWLx3S
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?13lMIixZdgvu4rv2RvD14FWWNO7pGOWxKA5xtg+V+gxGmsV4YSyx/Pabx4yw?=
 =?us-ascii?Q?3C/cWGiq4OK+lD4YkZEkZy8Yz+jqw97LgLj13o2gpTPXbGlahkSFn9bVfdgv?=
 =?us-ascii?Q?RkUBAEF2gCw+o+hTPL0bKShlEYuv1gDeY8/cODzOG4KduMCrDFhZkmZvoZxc?=
 =?us-ascii?Q?ugSKkYVzP43pqEEtP7kpy2KI66L6F7osl+OJaXFTvoXUxCoJa6lbu7yF5RAs?=
 =?us-ascii?Q?bvh5leqf7AdSGqaSz879M82Jhf5h9pHWca3j33S3Xc9ZpXWPoltaAikyYLtx?=
 =?us-ascii?Q?XxAevijfEIL8YMWflasuAw24NjL1qR580xACC6nIPJT27b9K3aHKx2xugQ2P?=
 =?us-ascii?Q?Y85Pok76qxuoOhkkuOXrHhj8Tczi9yWgiMg9Iv4aM9/bLX51iVh52+9yW+el?=
 =?us-ascii?Q?u8onkayItOJj+6DC/0n+RUsTKRJTKcZuphAfjh3Mr5J+ViUmLh7tv9sV4iBL?=
 =?us-ascii?Q?GrSdxPr+9CfzQ6g4UG/V7dzYH47/A8a6Eev9VTmMiKK+NoGsme6eRCsiLLIi?=
 =?us-ascii?Q?UNknAJCiA0flzWbeemzUXsgvXwhdPPPXmNtAQDxSk0IpwpqXi5KOcN2eNS0I?=
 =?us-ascii?Q?nVg5kgr7EjMD6R9CtMx6E91RMjcpZFYZKFD7Qg7ilMFrCGyEBqjIWA9eKzSI?=
 =?us-ascii?Q?7QhXdLLiZG1jBHmArgzemO7nVjY9NhSNI3FVAGLOF7MP0vrWvW1kcXM3tfMH?=
 =?us-ascii?Q?e4h53lXnB4anzy9PrXwMGmfIMmYRfeUOmflkBxNsDmxk9Q96Z8kpr58B/Wip?=
 =?us-ascii?Q?bVyBTIcfMPNzKAhNZiKKt72PpkY40YUhjqs459rnybQLhgZb7GDiJcMNBQLA?=
 =?us-ascii?Q?QuUphi2VpXPMCthWwk+UzK9tA2N3bKduC75c9HmIX0AHltuHCSkRIz0FMV96?=
 =?us-ascii?Q?vcDu+8OfPkcb5HnQKcLWHX5QImQak8IunYF0nBH827kx+DoXtiyuJJyw38WG?=
 =?us-ascii?Q?71MbhLnZef3VVJP8/vRPWVJD5A+xTopuHahxiqT8nf00mcghfm0dsNr+/thq?=
 =?us-ascii?Q?j6nOCSDSc7DvyLqhx/4xEVWjgjZIZU1Iv/uEd+FaesWWiDUr+Rc+atKSaV7c?=
 =?us-ascii?Q?p6Fl0n1a7ChPJvE3JcAFZUeStWsQVnw+G+8eCfwrNV+5prbKJCNoNuiUcj49?=
 =?us-ascii?Q?AqRI+XJqctz2771SP8HI3SEcLL+co69/QQ8C+D5wc7TEfcyy96h0zT9tmZQF?=
 =?us-ascii?Q?9mcauiTfKQsSmuiuXIBrtV0RIxB/Kwz78S0XxjQffTkqW1nGXol4X2sxa+ph?=
 =?us-ascii?Q?AjMJ5Du3KdVfR9bYDPz+fAHXFrQmANYc/pB/3r+JTAjVR4kMk32Qrnr/XhRa?=
 =?us-ascii?Q?5i3daDUV3sEZDlOJ+8/hzondyehV4VgIQqRfwxPXy/DKxBVD40gCUDlEjn6a?=
 =?us-ascii?Q?4flSEoZsPsueFW9+QO8p2KwngrzEYb6B+Uf3fa8B6SOJPvrsZJH2Q6HO0k3y?=
 =?us-ascii?Q?UsfFG84Q1oqLxHdkplBF9jZJVRxEurQrRjlzSUr116iUCR3jR8NTIjw4phQo?=
 =?us-ascii?Q?7Z91Ix7q2vKsXeD8hYP+mns6DJisbUcgEeCwbofNMQKIXaKP03vGBLDRWLmF?=
 =?us-ascii?Q?r9tPcih7Mn71LviQ/n01UnL52p4km3dMdN4famOuB/49f9FLOeGOcwcn1ZQ+?=
 =?us-ascii?Q?O4Lb9G2yrCY4RanfkoHMdydoIzfBhXqxcKtWE2yUukw4yUv7KFNyi/AL0aUq?=
 =?us-ascii?Q?tbN4+hyfkAyxP8l+hf8aizPLIvcr4iByJrwsnaXCiDBdObZ6N9KVJvB5i75j?=
 =?us-ascii?Q?623dPSuKeP81LRFrknbx+hWSoCTj63aq81VNirEWUeIU1teaGCgKtNDDV379?=
X-MS-Exchange-AntiSpam-MessageData-1: 6VWMNAUS3buPMA==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: f07c572b-31fc-44ab-e135-08deb927d2be
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:03:02.4596
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7HT/UtDRXK5+Y4phWAdKITLzDNKlP1ztooEFcyF/A+xExwGGAST//EzykGfZXVHovw5sNnSVcqh+LYWJWQ+c9A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4275
X-purgate-ID: tlsNG-d25034/1779580985-E2169CF5-69CF686D/0/0
X-purgate-type: clean
X-purgate-size: 2013

Configure the assignment of Dom0 vCPUs to NUMA nodes, aiming to balance
the compute load across the available nodes.
---
 xen/arch/arm/domain_build.c | 46 +++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 1deb4c1139..a62adafa19 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1225,6 +1225,34 @@ int __init make_psci_node(void *fdt)
     return res;
 }
 
+/*
+ * Map a Dom0 vCPU ID to a target NUMA node ID.
+ */
+static nodeid_t __init dom0_vcpu_to_node(const struct domain *d, unsigned int vcpu_id)
+{
+    nodeid_t nodes[MAX_NUMNODES];
+    unsigned int nr_nodes = 0;
+    unsigned int vcpus_per_node;
+    unsigned int node_idx;
+    nodeid_t n;
+
+    if ( nodes_empty(d->node_affinity) )
+        return 0;
+
+    for_each_node_mask(n, d->node_affinity)
+        nodes[nr_nodes++] = n;
+
+    if ( nr_nodes == 0 )
+        return 0;
+
+    vcpus_per_node = (d->max_vcpus + nr_nodes - 1) / nr_nodes;
+    node_idx = vcpu_id / vcpus_per_node;
+
+    ASSERT(node_idx < nr_nodes);
+
+    return nodes[node_idx];
+}
+
 int __init make_cpus_node(const struct domain *d, struct kernel_info *kinfo)
 {
     int res;
@@ -1907,6 +1935,24 @@ int __init construct_domain(struct domain *d, struct kernel_info *kinfo)
             vcpu_switch_to_aarch64_mode(d->vcpu[i]);
     }
 
+    /*
+     * If Dom0 has specific NUMA node affinity configured, bind each vCPU
+     * to its designated physical node.
+     */
+    for ( i = 0; i < d->max_vcpus; i++ )
+    {
+        struct vcpu *v = d->vcpu[i];
+        nodeid_t pnode;
+        const cpumask_t *nodemask;
+
+        if ( !v ) continue;
+
+        pnode = dom0_vcpu_to_node(d, i);
+        nodemask = &node_to_cpumask(pnode);
+
+        vcpu_set_hard_affinity(v, nodemask);
+    }
+
     domain_update_node_affinity(d);
 
     v->is_initialised = 1;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:03:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:03:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318238.1586676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJC-0007kN-QZ; Sun, 24 May 2026 00:03:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318238.1586676; Sun, 24 May 2026 00:03:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJC-0007iu-FI; Sun, 24 May 2026 00:03:10 +0000
Received: by outflank-mailman (input) for mailman id 1318238;
 Sun, 24 May 2026 00:03:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwJB-0007ZW-RD
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:03:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwJB-00EXML-7E
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:03:09 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a123fe6-5cb7-0a2a0a5109dd-0a2a450bda96-46
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:09 +0200
Received: from [52.101.125.111]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a12403a-212f-0a2a450b0019-34657d6f18e0-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:08 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS7P286MB7274.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:439::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.18; Sun, 24 May
 2026 00:03:05 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:03:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=n7ee2/ZfYoWpajMoHdRR48YyiCCsc8kedK91ZcE3beF8P6pHybLQ3VmJGmehR1qtJ/wqkO5kmzj0ePty9GGpk10Hma1xkHUFyJSyoSWUWs1eP90U+N8lRTfprd/5LOw5qPF/gsShKHqaF5E4uAAd1j+cuoFdqWci2FWKE8825MsaiAUXHbOA0jsaXrVYIb2V0UPkv6WuvsUKF2c25LL9SdXt08w9X4RvoM+Y2CTjQOZ6SHYM06zQIn2JTw82Nl2TJ38WCPpl92rKcoLOfSLwfe437GRIv3VdamBi9V+dDEY9XuRAOUPV8rWakijbKqYlLYn+0WS//Iq3qNw7SRxawA==
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=obw1nZcPTKd4hlGOSXyksn31SLCWaXqU+VhsOWUL7c8=;
 b=l/MwmX/6pVpBwjwAvDUyUTTL4p6qPybr8Y5ToiS6+ZeUTrRjX+/l4eTBkioK2jMSJLwx226wxVG6xLMiB3qMYvyX7JhCzMDJ0vgsIQP5ECtwDuGAKyx9f+rWF+zFhZHpcBjwrJ7uRdXS7gakSm35pC3wLL/FUxymX9dwnjevKJFgNyZz+s26187TaAvJIkVTJWoxEgQaxQWKTrk4mau3JhkM4QMHevT4+os3RKidxXMZSMm5PofYxbC7ULDJdcx1tOXj3AvoBYjmTPIIpQLQ7VedKqWh/3XJf/eV/HMuTdslyTiEv7mlG8UIHW44GrirGX3s7pzTGjhLtPvteTEF7A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=obw1nZcPTKd4hlGOSXyksn31SLCWaXqU+VhsOWUL7c8=;
 b=mKb3mNfeGH/snsVm2mUojrrWWo5dJoQKApFX25/zmrme/Y7nodq0v4byvPNiqmwX1+lkXptVdUl52wsZH3xNkFvLL7HP4ceWt0la2Z5O0FRIHbbMI38rNSpr2tXS1iz/svQpJAm65eq7KolwnYUms5a9JuJugMKLmBeRYadpmiI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 17/21] xen/arm: Export Dom0 vCPU-to-NUMA node mapping to Device Tree
Date: Sun, 24 May 2026 09:02:05 +0900
Message-ID: <20260524000209.292370-18-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0115.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:29c::19) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS7P286MB7274:EE_
X-MS-Office365-Filtering-Correlation-Id: e575e416-0725-45c0-b0cf-08deb927d42d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|366016|376014|10070799003|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	eUUjzRoWNdof1yEWg2wBJRHmN8i6zzkzO8jzF/kVVUtFofk51J5mevw02S8Rj4Uyan2uZvncQoPujPEO/ns+KBfGcSi8kxK5yemDySihTHyXPJUHIjPZ2Z8/ZjjsSoo3VcAOcrzbCgScw5CBNd77Zk53QHKmu8JUIphgeH6LUSSIDrE923sBxLvY/+rAKw1f25BIFkrr+KIbQrCS1msb/nJ8RxKEXv0iKSsb8i8dqst1S1GjjgvL7mbpl6YQxHTbhvvugv4Jkhrelh2OI4KDyFXb+rWut4zadxocGJaYxj0b4lD+E00lTArYSs1dE7BtqbKXdcINeJF+Tc0qnATDE3/Lxc/Kqag+Msoimk+1yQopaL9ynAGXRb7dTK9WO5Lon50zfIToW10b7J58YSz3s/gGKEKx2JLZRnot9L3JfJlfNUhwqG7niU3bC7DzX01hPCyloIi54D3t76ulaEUk9avQFXXU1hKdP38frqM3OdhMO1RmPYmMU1sE+k741/dG9sNYgBcVrsEZjRMZAaCSNSr0RMFSUDovCzuJiGzfajiMuGE/gEo393+aq8YliUem1CUpqEUe2N4fGzPlGCp3+7aVAYZ+sdAI5ANrQ3XqcLv3S2LYp+UKU3WxHMjzQ0h4CyrrPTnlnyU3FeQBCOAIw36AA1Vqks2v56rJCNjKwYD3vw4HnODKIygxAuT9s5kS
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(10070799003)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?MifNv/tWTrjP58Y18mD71/yFGOGRtDzEhtTxgz79RrKpTZscJwVxPJTv6JVy?=
 =?us-ascii?Q?ZSvBJj9Kkvwe3RRbfduHaH3DScn0IYv4RuzWB3VkEH/AiuGzuR3HRPutVynt?=
 =?us-ascii?Q?zY8F6gVQxsJCxOIfKTKR0JMw34PzLQRBLOKvVY8loxn47dkNPyl20Uwii4O6?=
 =?us-ascii?Q?k1bsIKjPlQsmgZ8GwrfQsEgVpTsKCIeZ4UhJ11ile5a+rWuHloHmz+/epTxi?=
 =?us-ascii?Q?3e8+ts/WBPhAwcmFTHL4xwob7cB3VhJjBxecmJGYJzVn374CUi4EhtCA5dZL?=
 =?us-ascii?Q?YvQF9ZfrHM1rhe3XdngiBso6AFgMLSuLDE8QsCiXrSrLashUWUwVZa72B3ja?=
 =?us-ascii?Q?8tUGzxVCuj+vdE2idTHv7etDtBo7nFf21ugNFQdW9W8wMxWXT/KXTHTJf2Da?=
 =?us-ascii?Q?XIv6kVyHOIwnz6zmLE/7/lAqI7nycVLUTnLd05DQvYRBllKQ/O0YF+hVGDYN?=
 =?us-ascii?Q?KCeelGee6+BdTRMhKBej534cFkcFc5wzcNHA/d/nqOSkUHPC/K0TiNfeiEK3?=
 =?us-ascii?Q?TT6boz7sTjl5NN+YuHO9XLnuiey9TwVi6g5ZGL4hJuRULx6kkbeiFujpJT7I?=
 =?us-ascii?Q?PFiUkL6ratqmufFdUO1jDiiy3RZav5ykCqUAui1lFYJe+/z5dZf7SiDHDN3Q?=
 =?us-ascii?Q?PV9kuInoDstH1xE1WC8M16LjfgtFn0n/fmZ0Nq07vNBuHNL1Dnm6z6yi/NU9?=
 =?us-ascii?Q?HV/AtMy5qdqJO2VfP42lw5EJZO1VQK/MSNuFi1qGZIX+LeTdEmM+XgsT4sB5?=
 =?us-ascii?Q?ckIH1iS7hcRQr+EDHSbNlyy0oQZ3Zqf50zNm47zHkwkQ8OgpaPYFAO5gVrrb?=
 =?us-ascii?Q?NOxEfmQoKm0sbDSzH9bO6NBwS+HAsQCD8nLoC+Zn9sWG6o3zfB85JwFyD0EU?=
 =?us-ascii?Q?BK2oXHMpTgLPUeXnGOtMdIWKlxo/1TFQwCSluNtR/n6VpgjxPULvCsx3Ke7F?=
 =?us-ascii?Q?61EmtKwkk5Soi1FNB9iJ5EZG0VAFsU7kObqUCA50LBnbzXgcJUHV+0wjDSs2?=
 =?us-ascii?Q?NnHyJ0p4ZmNXRD5W4BdWdR8BevV7/zXvsNsauYZeB177qpim1fQDfkudAep9?=
 =?us-ascii?Q?wDdJ6W+Lb84aVsV1eOyBGF8sPRBA9qQ0YdyRv6jo1as+ryCQhs+TsOdDsaQa?=
 =?us-ascii?Q?YIWSu3CoW1BQw0MGgmRtBhUVLfI3jtJoOxuA1ttvyHvZisBOccYA02VOuzaN?=
 =?us-ascii?Q?+/bXnEIvZHDbWS5CuG9Ao/3J/7lc+GDBWAtXCe0DkYvx9wHaOZ6I7zi2Xq4U?=
 =?us-ascii?Q?agG39x6vSWbcIlwcPeGvrvrcfH1mOseUF812PL7QXna0tiN66g4XqwmYv+Pl?=
 =?us-ascii?Q?rFP0qj0aodZ1JqFR9BOsQT1i3NdBvmbQjtXz+Ic74jJC40Qv9k44xNXSW+OG?=
 =?us-ascii?Q?f6wljYuEU/mXbd0q/HvGJ/q8GwwB54ppteFx9OHXcLwBixgA0MzmYrF1c7+D?=
 =?us-ascii?Q?rSqdKQ+vCTMzILd6jr6XtR4O7FdrKqJy6VsjyIJq8oLhT03cM8fu2lcUhi4C?=
 =?us-ascii?Q?f1mfPFabX7wG8by5/tPDDmdwpKkCSMWkcuxqf/7PnAyS4pk//NlKY9AjX7g9?=
 =?us-ascii?Q?YwiPESKd9Cx93DNpwBnDkXo0KDhFsKdHFY/xxPqbQCTi/tq8EAdYSoecIRwb?=
 =?us-ascii?Q?lTiuyMrb/bMiXnT+JW3bImKc9luwgSHkoYineENjrlzHp4g69LhM9WQkd+Np?=
 =?us-ascii?Q?o4A5yfiHkVJtTgxO1xpOkZfeULuXOQOdjh6cO/W/p6wxGKxlirhzpnJqjZZ9?=
 =?us-ascii?Q?4nWagD+Hk4Z2l0aoCPxKND01CqYNAsUN+ujNz9euUYHouJWwipSMA+HFNVKd?=
X-MS-Exchange-AntiSpam-MessageData-1: rpo02wt5MAhJKQ==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: e575e416-0725-45c0-b0cf-08deb927d42d
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:03:04.9469
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: iWkWR8WP3UlaQwpJj6NdwZEaA8M9qYibV897DI7Lafn4VU8E95XJsTTGC+Dn+4HrmDCKNQ7iMo9lLt117fQjnA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7P286MB7274
X-purgate-ID: tlsNG-42698a/1779580989-1956BF3B-F36FF2B4/0/0
X-purgate-type: clean
X-purgate-size: 892

Export the mapping between Domain-0 vCPUs and their assigned NUMA nodes
into the Device Tree generated for Domain-0.
---
 xen/arch/arm/domain_build.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index a62adafa19..11d0fa1233 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1373,6 +1373,15 @@ int __init make_cpus_node(const struct domain *d, struct kernel_info *kinfo)
                 return res;
         }
 
+#ifdef CONFIG_NUMA
+        {
+            nodeid_t target_node = dom0_vcpu_to_node(d, cpu);
+            res = fdt_property_u32(fdt, "numa-node-id", target_node);
+            if ( res )
+                return res;
+        }
+#endif /* CONFIG_NUMA */
+
         res = fdt_end_node(fdt);
         if ( res )
             return res;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:03:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:03:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318244.1586685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJF-0008Cu-7Q; Sun, 24 May 2026 00:03:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318244.1586685; Sun, 24 May 2026 00:03:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJE-0008Cb-WE; Sun, 24 May 2026 00:03:13 +0000
Received: by outflank-mailman (input) for mailman id 1318244;
 Sun, 24 May 2026 00:03:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwJC-0007lG-Sk
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:03:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwJC-005yId-7v
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:03:10 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a12403e-2eae-0a2a0a5409dd-0a2a450bb766-0
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:10 +0200
Received: from [52.101.125.111]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a12403a-212f-0a2a450b0019-34657d6f18e0-4
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:09 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS7P286MB7274.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:439::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.18; Sun, 24 May
 2026 00:03:07 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:03:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gk/Q7S7CeAKlgmwgwCfdPaRt22BakVe8S2IfAPLUKK+twhwI7Wdz1jN7HGncal39WydNbXhS4kQ1fKL/GShC5C7qogs76vMLqNHI5UMOKO8/JMVtP56wsdQkx86qHQX3ey3JfyOobDdLJwsCSorpwzCMwIb3lnmZgwEB6IDFtwTXJZgFoCRH37+TsVIPjpfRSLG9eU68fut9Ru3Vx8VxubzFChqgJSftDGVZQZUitUmNU2lbvLXPvvFwHqFicR/HyalNknLrJfbVu6/K+Bw+5pLKrV95GKbA03j0CXSu9neJDDbs+06v/RBJ2RXb1hMRpiGLpIppNRBciqz0fCxZcw==
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=b/uOZioLySihrc5rQcsyh87OXtUbbmHXHPRWdNWOE7k=;
 b=dzmdEM7biGPob/YvNDpWgRfD539rCe8/NNb0MHxR3yTt1qgv41D5tgo09hM4Je9eh13SLLTNn0cweYqcgjM9yK4D7SFttZWN2+xwRu7NRoB7GVWi3xBHb404zU33fKNT/ul4sNFuOpBymh8HhYgR30w4v5Rimy61cmNnzfxUzQZxluJp1ZCATtsJKwGzAzMowhEV39Cltu5/9bkyyFbXtGFsumknaLdQ/xteUf6xVCTSSJaMMeItAsY7yuGCjgX9fjcCu8SeiSJYDZGc2hFJjo9QKq0ZgYzYKNY0C596e607P56rFdJi2czeV+X10DAqYL9nGryKN3GJOhsN2hRBBw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=b/uOZioLySihrc5rQcsyh87OXtUbbmHXHPRWdNWOE7k=;
 b=nIKYRJJXMQZs5eqyZAK41Gjn0kAZr5pfnH1paEaXIOPH7pB0Cw0+MTFfQZkXOiM/kj8fS9Ajxr+wG9sgJ9peG7visYQ8ADI3ytWyWNLv3FSuV6ngLtt9+LoHOeFtoqu2IfkBnQgcQQmcbd4gQ5ZBf00plDmuoNQmnY0AXnsu8Aw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 18/21] xen/arm: Generate distance-map node for Dom0 Device Tree
Date: Sun, 24 May 2026 09:02:06 +0900
Message-ID: <20260524000209.292370-19-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCPR01CA0148.jpnprd01.prod.outlook.com
 (2603:1096:400:2b7::7) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS7P286MB7274:EE_
X-MS-Office365-Filtering-Correlation-Id: db4e0624-4c96-4f22-9af3-08deb927d5b4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|366016|376014|10070799003|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	9+vgDBfwZF93VpAd9CUqriBskjTN/zo4hzULGr/G97SZv8++C7CJWPoMg78JQmr9zUDsXrQtMewoO0u9vHdCf5lt0rMJIjGNIFQDAkOFsDZC8PsxUM4grHpqxitWqEarVoMlrsZSncORtE6d7rP3+lxZW9jVlwvSSt6tOqENTsOh3VgQt3vjpmglchdWdIsKBD0+tT0a7VrNYYUglyt6ET2j/U0mKLWvOH/YqdbFreXwf1V+SeiLSMhAN8sZYMFUmsU+2+SEtqRK0JBKuhhUf10nYIPBNHqAJLJyHy9jIE4eBfsfZ8Hr/EXnJotqeVshIqeRhVrRrE07wW3OuMTSFhiOQKbE07/I5U1gQ9wSuT4n9Cphi1XyDT/JOlyEij1KRtn77g3lfxkSD1MBcURcE9yW96HbQGiHrdjGpy9J5kcF36/yWfSWf7bVTicn9KGGFxa5K6OYT+REs2QYRmfMqYK9APXbzYbeBx2asnKAOktFmnk+bi3JUa8FT5bfPSSj4tzDR61EJYuRIHz213stA/au0VW1x8E81sW1LJMgf7S3+w5e9Vvycr6sPbd+sSMJGq2mGIDaVZklBzEoauKMd6f2S+5bHDC9jYtqnVFbHFDryifnzs6C2vElPSkB0hgSJ/vSpIQyFrujN3F2IJcvoyi//H0wGwBZyBxRo8QnLnpW2xBblah05jHqcIdyBZki
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(10070799003)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?RHh4CSCAsIo0A7J860PWcvu1lkoBUiCz6OgIQmfIFzo2wQr8g4Wl5AAxlQDz?=
 =?us-ascii?Q?TC922s8W8xfvByHTVCdHZKxhRDrsnct6/JAEpYJ6R87INBStZl+WDa3Pmn+p?=
 =?us-ascii?Q?jM9oWCH61KTunr8ZAcaLeluJ99NQMMRlLajTKg2LDjfHYJ3+DnH1bVZFhhze?=
 =?us-ascii?Q?zEreAGpiTauxAeVm20qFZwJLj4Gr3zuQjBE9rogfPE5NqVIC5EkI2KRnNBkd?=
 =?us-ascii?Q?jW5ONvccSZZesn5RWb2T5D0YpHntmXXE9RjKrXfT0Unle3Z6Zl5ZBV6OQBiM?=
 =?us-ascii?Q?s461zBFn9zb0Na24YcZt+E8mKMlzorTrVfiB3MpgJ3ntHpBshhF6CNU8AcxA?=
 =?us-ascii?Q?/U3jVfHwaL9BIadUORiFKd0/Mt78HuYUQdHNaWvY8vAYG+iDhsS0kjwLGpfE?=
 =?us-ascii?Q?opqS5t+dGbS2H8Vl0cxXoKTd9ggYTi264682mt8RdPt1NIleyopfytVu1eOt?=
 =?us-ascii?Q?ldxZKz9wV/BRDuCPvJqp2PckeXKjr3jPWGJ4d40CsuXVMSm/LPRzDv0TWg5m?=
 =?us-ascii?Q?V5ygNOq7tHO3Hp7s/hKTPSD94p0OH2n055Vy/4pjW/L4q/ELwFjBJM6+lige?=
 =?us-ascii?Q?Y+lmayFT2jQUuEjcLSb4N1/5yw/2P3v9WGsmFyzIuhibUfpZzypCYMD4QgML?=
 =?us-ascii?Q?rrgdR/TCo/CwjKQBjCx4gr9XxXMhSJJ7VGvsJgRS7Ju3Y7JKbUoeTdm0hs4S?=
 =?us-ascii?Q?rQkpNyOcW6iJPIdFuICJtxsi9VbrOcnmITvcUt2Je0h+iAHymRUUKeVRyW2f?=
 =?us-ascii?Q?iEUYt22QoBNJ8lgDLxlRD+RRBIP+3042C/MzsGULRE3kfhoF8+Kw20J3Hi6q?=
 =?us-ascii?Q?PsT/+aE/cdN0RZ0qtJuTdHBVqZNr3zxZXdeMVjQIUnorYnHvGoj2BrRoye1r?=
 =?us-ascii?Q?O8m4eZZvIpkBDYRltrH0w4PQyWvZ6spbaZlZabmvqavt8VN9YBZPu7ExI1a/?=
 =?us-ascii?Q?+advpLzu6cCT5mYuvjSCJUTWs+tojwZpYXI48IQki6bjOB8qTdS8aWNuFDs7?=
 =?us-ascii?Q?mQK+Ti3/6nfEzPr/6GhcjJw8Qv9H8ebZWz7z76ZRuypAVSWjpC1FbXsFN2bh?=
 =?us-ascii?Q?YAmo7kX6WgS7KA2ilZCLa7WyH0F8i8QQ3CJqxBSq6BWFnDmaB1v7HxHKjnlp?=
 =?us-ascii?Q?kLI0L2sl0ntpN4I5V8Rg+TcLM9fzW1FZyI4wieDT0GD1UF3bsnMuTdcO540T?=
 =?us-ascii?Q?YboBgnkEQW2Z+SdCRVXZm8++VWo3O02A/Hs8BZAKUlt57aIlVjbr9BEGEmdb?=
 =?us-ascii?Q?PkLgUzfRsgWihAPIeu/lbOO6GMeN3qQ/A3pC7iNokqRczqpCYDxY1PQlJWDk?=
 =?us-ascii?Q?tbIsog5orMowu3pLqZeI3i/wCgSwgaVH6GadcVrpAzjGf22U9VlgxWXBo/5P?=
 =?us-ascii?Q?+9GfYIs9CWUpuwWCA4g2mlcNtXqS7OvObgmrwu26vj/bVkK0KT/EPowsyQDT?=
 =?us-ascii?Q?ErRJmFgrICpdSDf8uXImeqgM1fo+kNAudH6pJEP44cogFPFd1CTxNCfHLwEN?=
 =?us-ascii?Q?1M97XlMwiI13rGAVzhv7pgd3QBOAUqGsBCphNpYUC89wgogrkQgb4tm6RgbI?=
 =?us-ascii?Q?PArbCD62/5Y4+HvTVfBNOjhkJia1yk7NLQlldphrN2vp3vEGAWP90h06TSr5?=
 =?us-ascii?Q?Gjy/wnGYWnlOQMJv11fq+8qtYMOELg6zdbrTrKeHmnPiHbFXGyE5OGjBTBSo?=
 =?us-ascii?Q?MuJ3GldkYhTryzcGc2afocxlS36KCay+Ptzt9nyB8FOYwJ9nTvXNxg2epYjo?=
 =?us-ascii?Q?87NQnwqMLnuvnO2ne/+9+5ZQ/mY13XtQtKYxuP895778hL9cYIUJK+bxoZQu?=
X-MS-Exchange-AntiSpam-MessageData-1: WFKQ3vWYpPpySw==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: db4e0624-4c96-4f22-9af3-08deb927d5b4
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:03:07.4429
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Y4YeP49LSEiH+nH1fpAw1lE/9PUpr1B8/AjYJZx7uDfvK/5HhEwSHdyA3dS1Qwv25rhHmagwY3P7WcAF3505Sw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7P286MB7274
X-purgate-ID: tlsNG-42698a/1779580990-18F66F3B-1AD57355/0/0
X-purgate-type: clean
X-purgate-size: 2697

Generate the 'distance-map' node within the Domain-0 Device Tree.
This ensures that distances are populated only for the specific NUMA
nodes assigned to Domain-0.
---
 xen/arch/arm/domain_build.c | 50 +++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 11d0fa1233..2bf4b37f89 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -718,6 +718,51 @@ static int __init fdt_property_interrupts(const struct kernel_info *kinfo,
     return res;
 }
 
+#ifdef CONFIG_NUMA
+static int __init make_distance_map_node(const struct domain *d, void *fdt)
+{
+    nodeid_t from, to;
+    unsigned int count = 0;
+    int res;
+
+    static uint32_t __initdata matrix[MAX_NUMNODES * MAX_NUMNODES * 3];
+
+    if ( nodes_weight(d->node_affinity) <= 1 )
+        return 0;
+
+    for_each_node_mask(from, d->node_affinity)
+    {
+        for_each_node_mask(to, d->node_affinity)
+        {
+            matrix[count * 3 + 0] = cpu_to_fdt32(from);
+            matrix[count * 3 + 1] = cpu_to_fdt32(to);
+            matrix[count * 3 + 2] = cpu_to_fdt32(__node_distance(from, to));
+            count++;
+        }
+    }
+
+    res = fdt_begin_node(fdt, "distance-map");
+    if ( res )
+        return res;
+
+    res = fdt_property_string(fdt, "compatible", "numa-distance-map-v1");
+    if ( res )
+        return res;
+
+    res = fdt_property(fdt, "distance-matrix", matrix, count * 3 * sizeof(uint32_t));
+    if ( res )
+        return res;
+
+    res = fdt_end_node(fdt);
+    if ( res )
+        return res;
+
+    return 0;
+}
+#else /* CONFIG_NUMA */
+#define make_distance_map_node(d, fdt) (0)
+#endif /* CONFIG_NUMA */
+
 int __init add_ext_regions(unsigned long s_gfn, unsigned long e_gfn,
                            void *data)
 {
@@ -1569,6 +1614,7 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
         DT_MATCH_TYPE("memory"),
         /* The memory mapped timer is not supported by Xen. */
         DT_MATCH_COMPATIBLE("arm,armv7-timer-mem"),
+        DT_MATCH_COMPATIBLE("numa-distance-map-v1"),
         { /* sentinel */ },
     };
     static const struct dt_device_match timer_matches[] __initconst =
@@ -1734,6 +1780,10 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
         if ( res )
             return res;
 
+        res = make_distance_map_node(d, kinfo->fdt);
+        if ( res )
+            return res;
+
         res = sci_dt_finalize(d, kinfo->fdt);
         if ( res )
             return res;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:03:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:03:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318252.1586694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJI-0000MB-Mj; Sun, 24 May 2026 00:03:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318252.1586694; Sun, 24 May 2026 00:03:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJI-0000Lx-Eo; Sun, 24 May 2026 00:03:16 +0000
Received: by outflank-mailman (input) for mailman id 1318252;
 Sun, 24 May 2026 00:03:14 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwJG-0008U8-C7
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:03:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwJF-00BC9e-Og
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:03:13 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124008-e002-0a2a0a5209dd-0a2a4503cd2c-22
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:13 +0200
Received: from [52.101.125.93]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a12403f-672d-0a2a45030019-34657d5d2f13-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:13 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS7P286MB7274.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:439::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.18; Sun, 24 May
 2026 00:03:09 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:03:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bbMPEwJbRaFnrcaQgbQ31+GBmkN1wqmv1jN0WiLSbxZPGxK1gp8UiazRoQMkIp8i/+s/AHAZiWuAQbx0AVfiE9bMCXZeG8GJOCwCE4mC/Bh5fSeU0GW35rCtC+ehRDXOOuNPvgTYNZI5wElzYnRMNpQVfjgejI/44xisxTjFm461xE+sw2vqvEa4mPmLCEsAILwxRaMrbI47U7kwoWUPWt4wgiiVV2A50QrDSXP7cDQIveRbNXnmle3r/xiIGomolfIH4OwzVUxkgymEPPB5B6+bXntUKdJLBHKEup8c4a5GKXKLeV42TDWZsc7gxqQf5JKqjv0uxQJN0jp2+FXBPg==
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=JFwOGfPyzWG9F7U0qyfrx8XENPksC2lqRTWEjzBLvZU=;
 b=kwOPPbsOkm/Ym8+lBSwC/G52Fk4zYAxLa8TQYhx37D0vCymYWlMPkquAcugVmeHP8PQBV55KgTnqE1DllSxXNtX3DZlXobiWLG1gS170SX0lKLtT6JvFCLTJmio40i6AtIuCTZ1w1ro3VshMvG96ltxdn7c1dUGbvwNmqGzE+0ZaQOnpzjd4s7GeYHJOdY3qVOd/EKkGcci2yjHuwKbnMBSbgsZnbzVm6Yo7G74K3/QfwEl6CITn7jmAZm6gYNkDfxiqS/cm13SoaOTLc9l0ksOb3OwcmYwk3BXf3S3DuZlLzVTdIhfI9o5CqeKdtTnlaOGQgbJ0HWE6XSNwp2iqJQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JFwOGfPyzWG9F7U0qyfrx8XENPksC2lqRTWEjzBLvZU=;
 b=G/HDYjA3qlKlYyAsK2txh+Z3qcTQjx/KAbLnYfS4L4VKBWDbKBW+KMFuMsFBBE6BxcL42fWlgL83IjItGZvUWdlQCDZt13tqUoR7DjVHPDx9j5qZ0GjzmW6rPTnqnQbTY+iQ+BXX0ACGo/rCs4Jmd3MzsG9LN5VM2csWeH3AJ/U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 19/21] xen/arm: Balance Dom0 memory allocation across allowed NUMA nodes
Date: Sun, 24 May 2026 09:02:07 +0900
Message-ID: <20260524000209.292370-20-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0190.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:382::10) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS7P286MB7274:EE_
X-MS-Office365-Filtering-Correlation-Id: 3771ee30-d235-430a-b1e8-08deb927d71b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|366016|376014|10070799003|1800799024|5023799004|3023799007|6133799003|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	J4cYOY36nVc8IgqOLKu77NZZ7gIulWg9ummMo+vDp8Gfdo+1N6L4huyxerdC5I4pc4KcoKbPLg989HVsctm8IVdIK/I3KPRonRM712B2hmrhxkvvmdLTWg62eIvyrJx+VpqqU524pw/Z0efbQ0/yu+8gQKjl14gFYxE4JfE2JldZ+j5gF1QFHilBX/zIwMpkkpFbuM9zC+uQMcUa59p+5OCz5AM4aEb1ixUW2lwoUaGaQ5SWnTAU5rLgy/XfG6dPY8Se0hIxezCPTEPar5TeVDHaq6b/kF+B4PbUKGM6lA36kXYjoS/nyQBwxzHklXYZvcGUYh3b1z1aYFYj+rDo6uK9KmqWl1imDS31M0ECC46m7o1VjLq6Dx8hF1jYRVxl9fnV8q4Vv/Q6jBgjct946JkOw7whwLgiiiJdrFOm5vKjxOvvPOxx/lgcNku3kHD+zW76Snt0tfILFYn5TFLnX1FYCKDV3dcLCWoYbUmQPvICDvGPiIN1BGd/7NplUBfoj4ODySnnzjDXyptDn4k/RDknTA/99Llklq6l01zCng2GOvjgioEiCIXkIigdn1gqvwVR2pFsXXQ07Cqtd2dCFLF/6qEXD+5EMMDYeNn2oP5vSkoznbNAaSgfgVPvmpw/nQEFE3qeNsRUKVnB3uY37f7TlfXi0ar7S6Dp/mcFz84pAH6RqwTNuvoIZ3C236p8
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(10070799003)(1800799024)(5023799004)(3023799007)(6133799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?QqbSxH24mN1wUTXhdw8ewsA4mv7ANKQoQ0Zyw58BBgz5IEn2XT502vXh5/0m?=
 =?us-ascii?Q?IIkdstchwoiTrL56j3jwGTeC9ZvLYdgFppkwTtba9bXZ5qEO4ye30gLOp5LC?=
 =?us-ascii?Q?lf2Vbcrg32hstmp36qGFyJtJrH1aXxyLh3hOlvcecWGO6m2NR92OQHNF8atM?=
 =?us-ascii?Q?ROIg883OKNp/8bwCY+KX/mU66I/4bMAerRAxATL8acH0l6h5uTeJh++WTxcd?=
 =?us-ascii?Q?oLq1RPC5E4G4a7/eH+5jJGYKmXapIa3S6SBW1HJ3mAYIpNgR83BGjPtO4T4I?=
 =?us-ascii?Q?d7thqsrrpwZ7cHdkxXd0onnshKZP5c8MPiDeO165SgDjacoJZC8jLIwGGTQl?=
 =?us-ascii?Q?IsHvT2cvt/FYzEfzzj130IOGWZItW0mzIZuIGsSwTATwXc5EDvTQnQq9sszn?=
 =?us-ascii?Q?fvPI++NVecYKowuSZqZeGzh4uONbL6COTxpR5g2Qj6rRDtrTuXc3SWrbaC68?=
 =?us-ascii?Q?BphwtLIJrvLMlm/6BVcLXBtEHTi2Skdam8NAm6CRA3zM5se6yYwTO1Jz4C9T?=
 =?us-ascii?Q?TImZC3DnIbv/6tbHOJ/Ys9rGQfHtDGhTsOBsZBzzeEOhbTQcS2VNNFt1DsQl?=
 =?us-ascii?Q?1Y+/2GDNDcSuv26AbORq5Pwn34/82kH8WkqGAUnXw2Kcnkn2PGgUKe13a03C?=
 =?us-ascii?Q?GwitU8StkT5DDyOVcuuHh3DrZOUpE0g7U6ex7OFu/+ZijfoVhNthTjmDaBEz?=
 =?us-ascii?Q?U3Xq7EdunX8q1ig7VTajJIzLxGWXCN0A5+eOThX9L+BxjNhzHfdBMsgCZ6nY?=
 =?us-ascii?Q?stLszvTIZWl3hxZijiCoDUAPM0GyEHNz0Npfcm3NJP08pADgiYMual1DCF6a?=
 =?us-ascii?Q?WehjSTIyOJFHApimP+QDu+n+s8kxLdkT2ruzmTXv2GaXWLkzEufsRflB2AjC?=
 =?us-ascii?Q?+2+HRZUbLrudXr8Q35AkB0WjG/+csDSVxRMINUYOquwwrZoHTwHm83+LhP6v?=
 =?us-ascii?Q?fR/DnYmxZJXXtovP+VsiPZJeFpabARUBK2RUNj+wtkxw4TAUNJN8WZtSvKYk?=
 =?us-ascii?Q?u3EpYPuqrUV+Uj2ALAF8d5rjWNGPY4DLZrmY/Sgq7tFoJBjdceDKzxcoKxVO?=
 =?us-ascii?Q?p4sJNtsBwxXW/YaYSoB6v7kTEckaHfjtkrzY7/6lYf1IHipt7AJb1wZgC5Fv?=
 =?us-ascii?Q?j/Qg+ZdqVaqRLQL73ZV6UHwY+BCDmMFKQ/Xnme7OkQ5jUSe48gsuZoYiTwV7?=
 =?us-ascii?Q?1jkLew0BhdD+Tdosh+alJV5hVJcowb2LlEyTdXK07+0evLgWHao7g3/B/zm5?=
 =?us-ascii?Q?F8kn8QWXXWkcm/TseTlj/AxZqwxYyDE3mPrs/eaJZZ5XFbpuzEPm2e+pbZY2?=
 =?us-ascii?Q?AdIEn5sBEC+pG0TZFFYoyh+E6P+NdCfXP1WBEUpWnopN+t/zCBctSL7KdNHC?=
 =?us-ascii?Q?1aCX8N2RCQWC7tdWJTFpBei3VIFmslfeDZl4+spySQVbBgytxo0mBsYYAX1Z?=
 =?us-ascii?Q?MWRaj1ZZ/YHPm/Cyw13cSnH+8iuvUfCVAibWLCqs8NZS0Ez7dSiMlbDskPoL?=
 =?us-ascii?Q?XsueVgBTAbC+G9xuQNWbcNnaRLw/m9dXQTek1s8iEAajGtpsu1tCEf2SQb5J?=
 =?us-ascii?Q?syLTOSFVEDxFgRsB11gKMypHzGkL588lDNBIZMYONmZdXmqQa6vlenNKdtKw?=
 =?us-ascii?Q?7zGP5nGTM6wtcYhwhUUhewGz06w8L4mwjwr6PABLXtiXxs7EmBWNaANAphrJ?=
 =?us-ascii?Q?sxcRW+SCyRJDOFIuCgxYETq9LGNc2REeswlYMdnn8OKP/ACqqvK1+lynz7tW?=
 =?us-ascii?Q?MR3fTBM6ELPaUmGn3Sm/RGtNcp74iz4bxs7sKOfQBE4laf71bTaXpkkEWaj9?=
X-MS-Exchange-AntiSpam-MessageData-1: N8tkEqXc4sI4fA==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 3771ee30-d235-430a-b1e8-08deb927d71b
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:03:09.7953
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6Vuzhg4SQQIdwrDCTF/wLI9+wgp+bDPHoKjhMi8dw843E788/WJVpXu9X7u+YwaE9S6sEoK07gnGhhQhpl2Ajg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7P286MB7274
X-purgate-ID: tlsNG-33051d/1779580993-3754F938-FA7CA0E2/0/0
X-purgate-type: clean
X-purgate-size: 14953

Allocate memory for Domain-0 exclusively from the permitted NUMA nodes.
When multiple NUMA nodes are available, distribute the allocation in a
balanced manner across each of these nodes.
---
 xen/arch/arm/domain_build.c | 275 ++++++++++++++++++++----------------
 1 file changed, 150 insertions(+), 125 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 2bf4b37f89..7960dcd33a 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -180,33 +180,19 @@ unsigned int __init dom0_max_vcpus(void)
 static bool __init insert_11_bank(struct domain *d,
                                   struct kernel_info *kinfo,
                                   struct page_info *pg,
-                                  unsigned int order)
+                                  unsigned int order,
+                                  nodeid_t node)
 {
     struct membanks *mem = kernel_info_get_mem(kinfo);
     unsigned int i;
     int res;
     mfn_t smfn;
     paddr_t start, size;
-    nodeid_t node = 0U;
 
     smfn = page_to_mfn(pg);
     start = mfn_to_maddr(smfn);
     size = pfn_to_paddr(1UL << order);
 
-    /* This code is temporal */
-    {
-        struct membanks *mem = bootinfo_get_mem();
-        for ( i = 0; i < mem->nr_banks; i++ )
-        {
-            if ( start >= mem->bank[i].start &&
-                 start < (mem->bank[i].start + mem->bank[i].size) )
-            {
-                node = get_numa_nodeid(&mem->bank[i]);
-                break;
-            }
-        }
-    }
-
     D11PRINT("Allocated %#"PRIpaddr"-%#"PRIpaddr" (%ldMB/%ldMB, order %d)\n",
              start, start + size,
              1UL << (order + PAGE_SHIFT - 20),
@@ -293,7 +279,13 @@ fail:
 }
 
 /*
- * This is all pretty horrible.
+ * Allocate NUMA-aware memory for Dom0 with 1:1 mapping.
+ *
+ * This function distributes the requested Dom0 memory across the allowed
+ * physical NUMA nodes in a balanced manner. It implements a multi-pass
+ * scavenging loop to allow nodes to dynamically back up each other if a
+ * particular node runs out of memory, maintaining a balanced distribution
+ * while ensuring the maximum amount of requested memory is satisfied.
  *
  * Requirements:
  *
@@ -308,155 +300,187 @@ fail:
  *    below 4GB, so that it can be used by non-LPAE enabled kernels (32-bit).
  * 4. Some devices assigned to dom0 can only do 32-bit DMA access or
  *    even be more restricted. We want to allocate as much of the RAM
- *    as we reasonably can that can be accessed from all the devices..
+ *    as we reasonably can that can be accessed from all the devices.
  * 5. For 32-bit dom0 the kernel must be located below 4GB.
- * 6. We want to have a few largers banks rather than many smaller ones.
+ * 6. We want to have a few larger banks rather than many smaller ones.
  *
  * For the first two requirements we need to make sure that the lowest
- * bank is sufficiently large.
- *
- * For convenience we also sort the banks by physical address.
- *
- * The memory allocator does not really give us the flexibility to
- * meet these requirements directly. So instead of proceed as follows:
- *
- * We first allocate the largest allocation we can as low as we
- * can. This then becomes the first bank. This bank must be at least
- * 128MB (or memory size requested for domain if that is smaller).
+ * bank (Bank 0) is sufficiently large to hold all boot modules.
  *
- * Then we start allocating more memory, trying to allocate the
- * largest possible size and trying smaller sizes until we
- * successfully allocate something.
+ * The memory allocator does not really give us the flexibility to meet
+ * these requirements directly under NUMA topologies. So instead we proceed
+ * as follows:
  *
- * We then try and insert this memory in to the list of banks. If it
- * can be merged into an existing bank then this is trivial.
+ * We first calculate the total size required for the kernel, ramdisk, and
+ * DTB to establish a safe minimum size constraint for the first bank (Bank 0).
  *
- * If the new memory is before the first bank (and cannot be merged into it)
- * and is at least 128M then we allow it, otherwise we give up. Since the
- * allocator prefers to allocate high addresses first and the first bank has
- * already been allocated to be as low as possible this likely means we
- * wouldn't have been able to allocate much more memory anyway.
+ * We then enter a multi-pass outer loop that runs until the full memory
+ * request is met. In each pass, we dynamically calculate the target allocation
+ * amount for each remaining active node to ensure a balanced distribution.
  *
- * Otherwise we insert a new bank. If we've reached MAX_NR_BANKS then
- * we give up.
- *
- * For 32-bit domain we require that the initial allocation for the
- * first bank is part of the low mem. For 64-bit, the first bank is preferred
- * to be allocated in the low mem. Then for subsequent allocation, we
- * initially allocate memory only from low mem. Once that runs out out
- * (as described above) we allow higher allocations and continue until
- * that runs out (or we have allocated sufficient dom0 memory).
+ * For the initial chunk (Bank 0), we try to allocate the largest possible size
+ * as low as possible, honoring the 32-bit lowmem/DMA constraints. If it fails
+ * to find lowmem space and the domain is 64-bit, it falls back to highmem
+ * without violating the minimum size needed for the boot modules.
  */
 static void __init allocate_memory_11(struct domain *d,
                                       struct kernel_info *kinfo)
 {
-    const unsigned int min_low_order =
-        get_order_from_bytes(min_t(paddr_t, kinfo->unassigned_mem, MB(128)));
-    const unsigned int min_order = get_order_from_bytes(MB(4));
+    paddr_t todo = kinfo->unassigned_mem;
+    nodeid_t node;
+
+    unsigned int max_chunk_order = get_order_from_bytes(MB(128));
+    unsigned int min_bank0_order;
+    unsigned int lowmem_bitsize = arch_get_dma_bitsize();
+    bool is_bank0 = true;
+
+    struct boot_module *kernel_mod  = boot_module_find_by_kind(BOOTMOD_KERNEL);
+    struct boot_module *ramdisk_mod = boot_module_find_by_kind(BOOTMOD_RAMDISK);
+    struct boot_module *dtb_mod     = boot_module_find_by_kind(BOOTMOD_FDT);
+    paddr_t required_size = 0;
+
+    nodemask_t exhausted_nodes;
+    nodemask_t valid_nodes;
+
     struct membanks *mem = kernel_info_get_mem(kinfo);
-    struct page_info *pg;
-    unsigned int order = get_allocation_size(kinfo->unassigned_mem);
     unsigned int i;
 
-    bool lowmem = true;
-    unsigned int lowmem_bitsize = min(32U, arch_get_dma_bitsize());
-    unsigned int bits;
-
     /*
      * TODO: Implement memory bank allocation when DOM0 is not direct
      * mapped
      */
     BUG_ON(!is_domain_direct_mapped(d));
 
-    printk("Allocating 1:1 mappings totalling %ldMB for %pd:\n",
+    printk("Allocating 1:1 mappings totalling %ldMB for dom0:\n",
            /* Don't want format this as PRIpaddr (16 digit hex) */
-           (unsigned long)(kinfo->unassigned_mem >> 20), d);
+           (unsigned long)(kinfo->unassigned_mem >> 20));
 
     mem->nr_banks = 0;
 
     /*
-     * First try and allocate the largest thing we can as low as
-     * possible to be bank 0.
+     * Calculate the absolute minimum size required to fit the kernel,
+     * initrd, and DTB inside Bank 0
      */
-    while ( order >= min_low_order )
-    {
-        for ( bits = order ; bits <= lowmem_bitsize; bits++ )
-        {
-            pg = alloc_domheap_pages(d, order, MEMF_bits(bits));
-            if ( pg != NULL )
-            {
-                if ( !insert_11_bank(d, kinfo, pg, order) )
-                    BUG(); /* Cannot fail for first bank */
+    if ( kernel_mod )
+        required_size += kernel_mod->size;
+    if ( ramdisk_mod )
+        required_size += ramdisk_mod->size;
+    if ( dtb_mod )
+        required_size += dtb_mod->size;
 
-                goto got_bank0;
-            }
-        }
-        order--;
-    }
-
-    /* Failed to allocate bank0 in the lowmem region. */
-    if ( is_32bit_domain(d) )
-        panic("Unable to allocate first memory bank\n");
+    min_bank0_order = get_order_from_bytes(required_size);
 
-    /* Try to allocate memory from above the lowmem region */
-    printk(XENLOG_INFO "No bank has been allocated below %u-bit.\n",
-           lowmem_bitsize);
-    lowmem = false;
+    nodes_clear(exhausted_nodes);
+    nodes_and(valid_nodes, d->node_affinity, node_online_map);
 
- got_bank0:
+    BUG_ON(nodes_empty(valid_nodes));
 
-    /*
-     * If we failed to allocate bank0 in the lowmem region,
-     * continue allocating from above the lowmem and fill in banks.
-     */
-    order = get_allocation_size(kinfo->unassigned_mem);
-    while ( kinfo->unassigned_mem && mem->nr_banks < mem->max_banks )
+    while ( todo > 0 )
     {
-        pg = alloc_domheap_pages(d, order,
-                                 lowmem ? MEMF_bits(lowmem_bitsize) : 0);
-        if ( !pg )
-        {
-            order --;
+        paddr_t last_todo = todo;
+        nodemask_t active_nodes;
+        unsigned int active_nodes_count;
+        unsigned int nodes_left;
 
-            if ( lowmem && order < min_low_order)
-            {
-                D11PRINT("Failed at min_low_order, allow high allocations\n");
-                order = get_allocation_size(kinfo->unassigned_mem);
-                lowmem = false;
-                continue;
-            }
-            if ( order >= min_order )
-                continue;
+        /* Filter out exhausted nodes to find active candidates */
+        nodes_andnot(active_nodes, valid_nodes, exhausted_nodes);
+        active_nodes_count = nodes_weight(active_nodes);
 
-            /* No more we can do */
+        if ( active_nodes_count == 0 )
+        {
+            printk(XENLOG_WARNING "Dom0 NUMA: All specified nodes are completely exhausted.\n");
             break;
         }
 
-        if ( !insert_11_bank(d, kinfo, pg, order) )
+        nodes_left = active_nodes_count;
+
+        for_each_node_mask(node, active_nodes)
         {
-            if ( mem->nr_banks == mem->max_banks )
-                /* Nothing more we can do. */
-                break;
+            paddr_t target_per_node;
+            paddr_t node_todo;
 
-            if ( lowmem )
-            {
-                D11PRINT("Allocation below bank 0, allow high allocations\n");
-                order = get_allocation_size(kinfo->unassigned_mem);
-                lowmem = false;
-                continue;
-            }
-            else
+            /* Target chunk size per node */
+            target_per_node = DIV_ROUND_UP(todo, nodes_left);
+            target_per_node = DIV_ROUND_UP(target_per_node, MB(128)) * MB(128);
+
+            node_todo = min(todo, target_per_node);
+
+            while ( node_todo > 0 )
             {
-                D11PRINT("Allocation below bank 0\n");
-                break;
+                struct page_info *pg = NULL;
+                unsigned int max_order = get_allocation_size(node_todo);
+                unsigned int order;
+                paddr_t bank_size;
+
+                /*
+                 * Enforce a maximum chunk cap of 128MB for all allocations
+                 * except Bank 0
+                 */
+                if ( !is_bank0 && max_order > max_chunk_order )
+                    max_order = max_chunk_order;
+
+                for ( order = max_order; ; order-- )
+                {
+                    unsigned int memflags = MEMF_node(node);
+                    if ( !dom0_affinity_relaxed )
+                        memflags |= MEMF_exact_node;
+
+                    if ( is_bank0 )
+                    {
+                        unsigned int bits;
+                        for ( bits = order; bits <= lowmem_bitsize; bits++ )
+                        {
+                            pg = alloc_domheap_pages(d, order, memflags | MEMF_bits(bits));
+                            if ( pg != NULL )
+                                break;
+                        }
+
+                        if ( !pg && order <= min_bank0_order )
+                        {
+                            if ( is_32bit_domain(d) )
+                                panic("Unable to allocate first memory bank below %u-bit\n", lowmem_bitsize);
+
+                            pg = alloc_domheap_pages(d, order, memflags);
+                        }
+                    }
+                    else
+                    {
+                        pg = alloc_domheap_pages(d, order, memflags);
+                    }
+
+                    if ( pg || order == 0 )
+                        break;
+                }
+
+                if ( !pg )
+                {
+                    node_set(node, exhausted_nodes);
+                    break;
+                }
+
+                if ( is_bank0 )
+                    is_bank0 = false;
+
+                if ( !insert_11_bank(d, kinfo, pg, order, node) )
+                    break;
+
+                bank_size = 1ULL << (PAGE_SHIFT + order);
+                node_todo -= bank_size;
+                todo -= bank_size;
+
+                if ( todo == 0 ) break;
             }
+
+            nodes_left--;
+            if ( todo == 0 ) break;
         }
 
         /*
-         * Success, next time around try again to get the largest order
-         * allocation possible.
+         * Prevent infinite loop if a full pass across all active nodes
+         * yields zero progress
          */
-        order = get_allocation_size(kinfo->unassigned_mem);
+        if ( todo == last_todo )
+            break;
     }
 
     if ( kinfo->unassigned_mem )
@@ -464,14 +488,15 @@ static void __init allocate_memory_11(struct domain *d,
         panic("Failed to allocate requested dom0 memory. %ldMB unallocated\n",
               (unsigned long)kinfo->unassigned_mem >> 20);
 
-    for( i = 0; i < mem->nr_banks; i++ )
+    for ( i = 0; i < mem->nr_banks; i++ )
     {
-        printk("BANK[%d] %#"PRIpaddr"-%#"PRIpaddr" (%ldMB)\n",
+        printk("BANK[%d] %#"PRIpaddr"-%#"PRIpaddr" (%ldMB) NODE:%u\n",
                i,
                mem->bank[i].start,
                mem->bank[i].start + mem->bank[i].size,
                /* Don't want format this as PRIpaddr (16 digit hex) */
-               (unsigned long)(mem->bank[i].size >> 20));
+               (unsigned long)(mem->bank[i].size >> 20),
+               get_numa_nodeid(&mem->bank[i]));
     }
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:03:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:03:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318253.1586697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJJ-0000Vx-8Y; Sun, 24 May 2026 00:03:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318253.1586697; Sun, 24 May 2026 00:03:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJJ-0000U0-3C; Sun, 24 May 2026 00:03:17 +0000
Received: by outflank-mailman (input) for mailman id 1318253;
 Sun, 24 May 2026 00:03:15 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwJH-0000Bz-E8
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:03:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwJG-00BC9e-Qv
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:03:14 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124008-e002-0a2a0a5209dd-0a2a4503cd2c-24
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:14 +0200
Received: from [52.101.125.93]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a12403f-672d-0a2a45030019-34657d5d2f13-4
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:14 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS7P286MB7274.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:439::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.18; Sun, 24 May
 2026 00:03:12 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:03:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fm55Sird5tDdAO1dIPvaBSKgYY5VEkXytGLmdosGj137DdK6s0u0jCTY8MMVCZUYBJAm0YwBELH8cWim/yUIM5I6PvI1klkmXXuS6azH1KF3UTpxbIMPlMLlsLKu1IuVFWf1L2FmAT9GqF71dJH4gHWa28iIkUV7buM+q5HE9lY+JEBnQW+p5CHntdh/MUFEY9HrajzI3QDKaua1TmLt2Wj9rFOooyTKytihCs/Sj+xaU0oy8kAuKXbc9vjnhO7p8fCiQKwGfSNxDu96GJ7DzW5t382l7W0z/TTXxKT88CnLyp69/C8eGcT+wFBsjYHzxGYZz++LtznEhRnYoL6BXw==
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=ZIMyeMl9qEVCA5sGzBca+pRibnJkXfuBoWxVr4f1TOY=;
 b=Cq1NCCG35u0VI4Q7BpRlGaSjr+eesPp2IY9LE+L8o00lVTCfvwWK3QNp0aMBnRXeXyjhRq+bxQQhF4ZDDYYANs53B+SMUi5EZYWKWK87aK6glI5l51T9bDaQpISFtlNB6Xrw7gAKNn5kis87cIZT0ULH/bWVH0HvTv6vSNvOO4DyyXFWpkDYZpUDVjAI2geURlNurJ5cbAkpscUxHzsIF9najcclg9v9IPKvbAPTAuacxqpivt5DwzV/0hKpicuY1N2WTbE9l4xd3cS8eKfirkBHX6qp7ZfQiV7d4YsGUurTsnarvhi79Y0payc9yreWdWt8ONSAZ0nLyw8xLKDmkg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZIMyeMl9qEVCA5sGzBca+pRibnJkXfuBoWxVr4f1TOY=;
 b=AyUyAm3Xshs3rj134WDmYes0a8bkF0UDjRzkZPGBQMC0ySGMu1URw7Ddi08HUUvJww77Yd/3u8gNFJR/6b9iem4jqfStptKX0LMPoRoNlz8ygdvDnbnvlCzj391V2+tvhGyAFDyLNYCuXpzHarRUJIE5LxJj1rzQrF+ri77L0To=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 20/21] xen/arm: Use dedicated function for Static SHM Device Tree creation
Date: Sun, 24 May 2026 09:02:08 +0900
Message-ID: <20260524000209.292370-21-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0184.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:382::7) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS7P286MB7274:EE_
X-MS-Office365-Filtering-Correlation-Id: 28a2ea70-035d-47a2-bba6-08deb927d873
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|366016|376014|10070799003|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	nC6ByCnNz0rNYETjdlIZst3TBQsiXbjtbTWJ+6Qty+fPJohNH3sm+/h/TOXx3lEd0A+6nWRuAmu+5KTVplE9krEDHD63oYmb0LhyQDDsTXkyVf4m4LeMlmCx8uls/AuW4Se4/L+E7be/BOoaOP+tAzquWBXMiZdJzkzcj06EicrEnt2Q0GVvwwKneGmW7jywdm737xjKm6m752sOdus9v9JItuW8DdFEpITlNRrlwMitXPNrbkZOE7PYdzaU2FSe67ylOHlFVBsArMW5hoLX+dOfjNoRfj4rmosyxIYhJqTZerUeJs/G9BDIHP05DVCZ7bZAKZLEYa4uXHpxr+RaMpKFKuAwv2/fyF4iw14awV0Vi9PS1q6NpObFYqC0zbFOHIPln7w3Df1Cb09aqmfFmNkGLYrfe8qzhG2AgwP1raFfsPg1MjwND/mxdRwdae4x1JpVyFBwrUtuKkJex5V7JpG8KnG760LdkxN7sPCMpeQbwj+qwJ0c+9a9E1A9g8z5KULJ2ht8ioFQLsKiFTrVTJwQn/gNbavoxDbgnh2xTNEGVRrkmQ56LU60bLeh/SX2iwevGQAwKGpw3nU3zUfexSVFVA+1TvQ1WmQ1a8tkIzTJ5aB3lBiX78zb77b4j4lkqyjU+cHZPebPizXcjs/g1vrtdG+IiYvMQ4UgANjrR2tY1GOjzoKSZNqNSM8DSpnw
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(10070799003)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?CpFwt2NbQcqjUwIJlzFmBsIwXeYmWlPW5+c1WCZcm/KCsHSs9ylGucWwoIQc?=
 =?us-ascii?Q?TrvWybxe3HJy0okl61nk8uKDD2kDz2cI3xC1/aIEB6uuz34Q6UmT+Iq9KH8a?=
 =?us-ascii?Q?S9lMopVn0amct09KeVA7C192Ue3tfpqJSxIAe+mqt3sj7F2zu1Nvp18NxOYM?=
 =?us-ascii?Q?GdGmBtIQJtFtizDaGtXQgCij3BCWl/btojsqefV82NSV7af6LV9Ho7OERnFQ?=
 =?us-ascii?Q?lzEKw6ThThrFl4u4TDNFLZh28TS1vIEmMewhxcXVqLsTsm1hZGj1zL7oBFRR?=
 =?us-ascii?Q?FNJ9by5w2p65k+vISQdJ2zz/CTTfc6K7fegFK7TYx7Sf6UG2anPrrVCylyIu?=
 =?us-ascii?Q?gm33lgsTFm1+EUOZaQEmj/9cX8/+x+SeS2cOLB9ERLVQBPEZIQqyVUl+GDM6?=
 =?us-ascii?Q?rW+ronI5jEJkwc5wwBaY/yumU551hIIVgCEnvkw4xYlvcLNZJgDT56lKAplc?=
 =?us-ascii?Q?Y4YiNxGI4NijjcBWPsPsduIWwq893kH14na/cUSe2aEJ9PghmcYYAdO9Zq8y?=
 =?us-ascii?Q?65XKTPZYJSv3IVqY4ihFtpxXpUOvskSNk/Gs7taNZTVuLiwqjSjLIIOlWW9Q?=
 =?us-ascii?Q?BbMNgPZoLNnrAdWA+307Iv/HoAo5OoAj6ij1g1Z/14UwH91C2Aax8P6VcKO8?=
 =?us-ascii?Q?kuiTtI1fWLzo3bYYi1E7Ef6DRou8tEnOjlKsX0T5he1vj3B/A/19rbz55pC+?=
 =?us-ascii?Q?g6H+rpX/oBXAMELXpEa/9o3NHFGftp4qjcFUxaIGQcYtHpPmzF30mhLL+JPo?=
 =?us-ascii?Q?JA2agNVdfCwQNuBaKeTclB8rXJDaWbjd2Okw1zEPao7BveoHYfmABU/h1nN9?=
 =?us-ascii?Q?ckTMAKts5wHZ9znTM2lZFFlabaNplVjEnVVisNL+wBooDykhq60cAdg1nQQT?=
 =?us-ascii?Q?9iT9Ivir86J2ZjwVL12v9FBj7g0GSRdBnhpsYlGERghWP6KOdhG9WZq3nR0i?=
 =?us-ascii?Q?/+X7o9AI6yAofLLfqDmOcwgIezebD2z/3f5RFFoVdTVxHWjP+togmUuyb1qx?=
 =?us-ascii?Q?5lArlgHWozwbr/8ANZl5qo7dZ9c7Klsf92KK1MbLihXk28MuFI2mb6V37zDD?=
 =?us-ascii?Q?W/e18vNQBAwbRttc3aRVSNV37wCHVcBa627zkosUrSJiuN4Y4k/+ep0DePd+?=
 =?us-ascii?Q?GH+14Fgllnha9ioyxUCwP56uROOwYd/KRAEHgOIzsrJGoqkcFampkSwhbqRJ?=
 =?us-ascii?Q?iLzjv9/eY5/FbnmpzR53ehdl6CboTRsnF77RVethHaKp1KkXYEvuaMdbd78f?=
 =?us-ascii?Q?Ak30kFco3/31MCE0aBoYB5KHzyqmgo+Bj6H9cuaL9audzVu/SeseNuEDJXpd?=
 =?us-ascii?Q?vG8n5euuJrXrL/yYssIRDcpMxoIaEKg78oa0dfnyCWXrlYYQO1jj1IU2eRdh?=
 =?us-ascii?Q?pwW3uiEyKQS/oIW2lgbnNKaSJZH9uhrrpQNdPUHZ2H+iHRHCfqAGBBTDx400?=
 =?us-ascii?Q?9g64rLpoIWTzVspKANvY50Cx5tbQpLvhOBOhA0SbQrlTsgkEBozquNkJnO8h?=
 =?us-ascii?Q?Mj6rmG70o9tCvzxvflWfcdmChrxvMiO9M4hz072PtiH1jP5Cq1H86lNbUXiX?=
 =?us-ascii?Q?sp7jI49AwwMWu9nGmtr8pTld97+7jNA8w4MNWDAXEWAhsZq0TZn/7/ZMtY9w?=
 =?us-ascii?Q?bFYe7Hu5w2xcLWxpHFK1VJRp69u0wJB9+ggUXyG1BBT6QUBIOYQIRapp1RJS?=
 =?us-ascii?Q?hX7QoxeyG2E1dwtz3uKNAU7g55C7UMgn2ZnuMvVopG1TziVazA0Py8/wBXyR?=
 =?us-ascii?Q?b/8HwP4S7TFqZ8wXlD5GTDY5IjfSGu/sjDNoegDhsrLo6cRGolC+HvK1lfMJ?=
X-MS-Exchange-AntiSpam-MessageData-1: m+lsLOKVo5ZKMw==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 28a2ea70-035d-47a2-bba6-08deb927d873
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:03:12.0244
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Lw5YKvLPe27+6+LIsF9LQB2JsgZPfPuZxELn3+wyFBArvj33chJfyCIs0pkqZyCPpLZRVEr7CwXgn460++bGwg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7P286MB7274
X-purgate-ID: tlsNG-33051d/1779580994-3997D938-BD096FCE/0/0
X-purgate-type: clean
X-purgate-size: 2876

Use a dedicated function to create Static SHM Device Tree nodes instead
of reusing the generic memory node function.

Since the memory banks managing Static SHM repurpose the 'type' field
for a different purpose via a union, separating this creation logic
keeps the implementation clean and significantly improves maintainability.
---
 xen/arch/arm/domain_build.c           |  6 ++++++
 xen/common/device-tree/domain-build.c | 21 +++++++++++++++++++++
 xen/include/xen/fdt-domain-build.h    |  2 ++
 3 files changed, 29 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 7960dcd33a..1cd66c9911 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1805,6 +1805,12 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
         if ( res )
             return res;
 
+#ifdef CONFIG_STATIC_SHM
+        res = make_raw_memory_node(kinfo, addrcells, sizecells, kernel_info_get_shm_mem_const(kinfo));
+        if ( res )
+            return res;
+#endif /* CONFIG_STATIC_SHM */
+
         res = make_distance_map_node(d, kinfo->fdt);
         if ( res )
             return res;
diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree/domain-build.c
index 61e2e50062..f846ca0471 100644
--- a/xen/common/device-tree/domain-build.c
+++ b/xen/common/device-tree/domain-build.c
@@ -565,6 +565,27 @@ int __init make_memory_node(const struct kernel_info *kinfo, int addrcells,
     return res;
 }
 
+int __init make_raw_memory_node(const struct kernel_info *kinfo, int addrcells,
+                            int sizecells, const struct membanks *mem)
+{
+    unsigned int i;
+    int res = 0;
+
+    if ( mem->nr_banks == 0 )
+        return 0;
+
+    dt_dprintk("Create raw memory nodes\n");
+
+    for ( i = 0 ; i < mem->nr_banks; i++ )
+    {
+        res = make_memory_sibling_node(kinfo, addrcells, sizecells, &mem->bank[i]);
+        if ( res )
+            return res;
+    }
+
+    return res;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/include/xen/fdt-domain-build.h b/xen/include/xen/fdt-domain-build.h
index 671486c1c8..6a809f3f86 100644
--- a/xen/include/xen/fdt-domain-build.h
+++ b/xen/include/xen/fdt-domain-build.h
@@ -31,6 +31,8 @@ int make_hypervisor_node(struct domain *d, const struct kernel_info *kinfo,
                          int addrcells, int sizecells);
 int make_memory_node(const struct kernel_info *kinfo, int addrcells,
                      int sizecells, const struct membanks *mem);
+int make_raw_memory_node(const struct kernel_info *kinfo, int addrcells,
+                         int sizecells, const struct membanks *mem);
 int make_timer_node(const struct kernel_info *kinfo);
 
 static inline int get_allocation_size(paddr_t size)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 00:03:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 00:03:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318263.1586711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJL-0001B3-UD; Sun, 24 May 2026 00:03:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318263.1586711; Sun, 24 May 2026 00:03:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wQwJL-00019w-M9; Sun, 24 May 2026 00:03:19 +0000
Received: by outflank-mailman (input) for mailman id 1318263;
 Sun, 24 May 2026 00:03:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wQwJK-0000sz-Oa
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 00:03:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wQwJK-005yId-4f
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 02:03:18 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a12403e-2eae-0a2a0a5409dd-0a2a450bb766-6
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:18 +0200
Received: from [40.107.74.85]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a124043-212f-0a2a450b0019-286b4a55a710-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 02:03:17 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS7P286MB7274.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:439::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.18; Sun, 24 May
 2026 00:03:14 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 00:03:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YTkHL1d+Pj+ghszLL6gLtY0iub/5MEqb2C65nUTMwyVjOkqLfgJFxJux2dOx55NuwDkKEHL9Q3duqaZt5j/zy9dxoPYBtB+LUeo8seDP0W2/QVngECQLpWuZlrK9YwaI6P/Y+ZKPa+cGWQuT5WDBEwQ6uovIRJ9cQ7SnqJEWP58l5sWQmHBXWq8yGIKvo2CqwfsFC0K/DvHuNMOjUKNNbcHjtsLM28nZcIlllAncHsevGNXVmWMowCgWaiW/umKWL/n0pryrB1EoCZbmTaeSsEH5cQQHKCY8I7WETeSPi1POLXAi5cql/1Ajc8pqL29G2rVDJeWLM87wWqnq8qsBig==
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=QFbPS7jmT/c7ZeciURJLZIzacMWDfDdD4RLX/C8sWd0=;
 b=KEMqLlnv5geHRjamJxFZtRE2hnkLyHSvTyUhsU8bVa/xGzce5QuuNP5E8CXNlwDME6HJfH3QA0x250VOa2WnAwUjlYKkdx5MxTHu+Axq2fjhQbwjiVN4NygojI+lkm7gZohbNSv1BZBtx1wAjVj1l1LTajjrzgbGqF6iKEGKHY/AIEWykxEdRPdTeCIt5L3KQGV+E8wSHRV5Kb1cAryRi/SLI+gr9vgQF3uomDE1Z13zOyDnqFJgQ27kX/3IpONeOQ9CKrTF2qXaTNopRqLAL76g52EJlBDnyltDquRzmnCSB5kZw1Cw6HyoRqCzZcAax7IokBDtPXFD2vNG2O0edQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QFbPS7jmT/c7ZeciURJLZIzacMWDfDdD4RLX/C8sWd0=;
 b=Ej2bAuqKg6eM1SOwWyXtfY1NUQ0/D3CA+eHfXonTukKQpsau9PBa8xJl4HWu3jJn/zYEm7pNs/G8gBfpa0P5CWuMTDnjBcwTF3Tn1GJiZ8IMBux89eDAlcHiMdAtVtwMlSS5qJ+ocJfNpXh8TfIAJKd4n9rLhKfb4kqyqYhlg1Q=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	jgross@suse.com,
	bertrand.marquis@arm.com,
	Volodymyr_Babchuk@epam.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	Hirokazu Takahashi <taka@valinux.co.jp>
Subject: [PATCH 21/21] xen/arm: Support numa and numa_nodes boot options
Date: Sun, 24 May 2026 09:02:09 +0900
Message-ID: <20260524000209.292370-22-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260524000209.292370-1-taka@valinux.co.jp>
References: <20260524000209.292370-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCP286CA0181.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:382::19) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|OS7P286MB7274:EE_
X-MS-Office365-Filtering-Correlation-Id: 35831113-4086-4f6e-f4a2-08deb927da0b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|366016|376014|10070799003|1800799024|3023799007|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	sVs47iqhlz4Auo7jLEFr/UcSe1q2oyUaR4WdsAqFWilvKUuiLuYuOlkNIxKtpEey2u4mysIrSvKA8KB6p4t9d4v2/GG+n5B4op1UNLALMEXY8C3EwByH4f0v3oe/lC1zHIK0ErBjuMMkHeMvbVcjquLLnG9vgeyljK75BxaArzb8RQI6Unc7i1cfnQZXbZhm+SG9yMCMiJckZ4MqXGRN3KiGVSAwlpWjDqtbOB/iTeC0PJFtfdQ9fsK9EqibNLzIr6uLDtte0ao9UBcr/LCLfYq5TL/aWr+4Tcuv8x7abaeEmuMe1TVFKx3Z0OlDVT5ANCplylXwmG1cSaOEBQHXr1b9Rr3qBGHfnC/tJOAEiDXfEh1FfNGGpcZYUwPSKJGy9YFl+ZIKawv9jI3RHcw6v9WRLfLsKk1q3kVIrQamJo3uVnq9sHC58QRIlD7x0R1pFVcLjGQs4hPTWMFs/DXuoSb6rlDMUkxwBFcWH3m8Se4WpCKz4aS/3TXymTDOcH10QW6OWF+K/dotPBdrA3e3Bm/jxfIUckliYEVjZ3vNtsgxo7m8PFrqDJzYIrxFOeFd/DR+pZrR0ftt4n++MOZ3Wyxs5JUe8iDy7CXyyUFnvxvYTJGDn3Mg1esxbcVl0PFdx7MpJYDR1LNdF72jENCUEg==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(10070799003)(1800799024)(3023799007)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?2PnHRslBYoboaKXpvAAqzmiGy9yMl2sAZLnU6IuKWpJ9alvpOtAxlfC06N7G?=
 =?us-ascii?Q?RockIEIxN5jC2HCClpMN3klBt3gk0WXvIiIsMigvcn5vn++/D0qEH5lUWVQR?=
 =?us-ascii?Q?xjwmSCyb9eMZN3hMr+Z/T82PbrZutj4Tmicx4IwyS9WJ8MruYXTv5drqXRJ8?=
 =?us-ascii?Q?4yvR2Ni+zkfJx0pE9Gp40D0DhJKUPEOIdKk1DBjPiPi5R8vDztdcDuuZOVWA?=
 =?us-ascii?Q?sqrCOF9O0o62qPRb915UxQWZDtqZXy3bGYF5k1sNxCMWSyl2TXlOSeIWqToM?=
 =?us-ascii?Q?4HZ8awYWewzBOA4GDcxqkVizO/3H12qTCr6oSUzKjsFtGeQKYlWUch9Tw7fD?=
 =?us-ascii?Q?729sHmv6rglQ2pEEGI431v6RCqrDu04h3lmRJX3p91HYWSvbJkg6KUX/Ufqs?=
 =?us-ascii?Q?Z2KQG+kXBDswJQrNajsVsWpeL3Y1V11K0xJ0I4ghuUcHAoVF4Tk3q+JuYRrs?=
 =?us-ascii?Q?9yaWQEsuEDH+iaYCaavDwXhI5uiF4rd9JTwFaHP+DuqjvmcEfPOTiOzPDQDL?=
 =?us-ascii?Q?krshy8GQ0myaEWCB4qq6SBRDaUjcX+Mij0JD295GIBzHgXn/yHh42HdEslZC?=
 =?us-ascii?Q?iwHyTWFZKfmYfKRGaBRMIcvbFq5AbOOlJ9Nw/g3RQyAgex4cNPV6qr+7jH0u?=
 =?us-ascii?Q?6u27f7zNadiRd49NRQeoA4QRq1SWIjvBnBaikfDmYlqRAoPGE5QvBy4jiYy/?=
 =?us-ascii?Q?ifkk+3C4SX64oTPXsbqRy7mVdtEhiMVPcVlSdXujWglKt7DvPd8zS3FBUv/H?=
 =?us-ascii?Q?LBCTqw2TiHrnnJ+CPFaEbpSIPOJhLJdIPVoT5wAlFhKqrjoN91EYqjCIkoma?=
 =?us-ascii?Q?kUhCOQoViJqSJn1Y/Ax5pneujP00SaZay7j1etwda126bnJrvjfCjBR0zPMZ?=
 =?us-ascii?Q?Erc1U49a8YaBmxvwzR17G9fV5KA81UeUUHB0laoxtXyk+WV7VmjcklB6CaBf?=
 =?us-ascii?Q?Gi+/EBjsf+vJBYmkobnwVsqY4BjhPQv/s2i7ABv06/dvOQJ/0PyNtCUFOaKA?=
 =?us-ascii?Q?dXVSbKd0xWg9J7XlVFwKPkf1i7pzvrJuAnAPKb9LkNzgW7XpVqLXl4HBIdEU?=
 =?us-ascii?Q?+VAQAkbLM0FUMrEozvE/8aTGqXeKitiKIq8S0rqEvY2uOInAw041AuIq7oEW?=
 =?us-ascii?Q?MpDzz3pZ9F7XiA1h0iwHuXaBU9Q7orBS3FlGqfaLxiUBBSoDMvmsS3fX1O4y?=
 =?us-ascii?Q?nM2kOxxWUj7LHypDPIFuXRvWRbg6Poj23l4Vy15tVw33AVmTma/UeGWXsO89?=
 =?us-ascii?Q?FmKDXL+uYE9uUHZtPsfLVozBWQHfnKgmDoTnObBgxuaF7Am+SNivOiw7jJUC?=
 =?us-ascii?Q?HqXL/OgKm+BQlDHjE3jBIF9uWYrv6ivafSgFHluryEfUXjIJ5/EZAzuK0gWJ?=
 =?us-ascii?Q?JthoM0ZTfAMBi0pvU4Zhy/ybEKf9qqJP4aoZAx0qYHiN0yRJ+l+Eyh5kWVlV?=
 =?us-ascii?Q?+tJjaMF5oqLIRXwqWComwCrOaAh1L3Rb6iWhuIHMhQTGiQVOglDjwpqIIyjd?=
 =?us-ascii?Q?YlkDtHIxOfGc0tyK5pPBzPWAhktzQvm6tPcPgrObSsviPnsa96fpIbNiiBju?=
 =?us-ascii?Q?8ZnuKNdX6g5bYiDvN+77gCFBQVyiSskhNdHK7pPmvTwOW3/NHQK2MGSpieCA?=
 =?us-ascii?Q?UlgIycSOSQ9e77QB6F12YHtj4gbvdevRoZcfnrJUphW6U5XySPRx6G0KBfcc?=
 =?us-ascii?Q?h+jijyUEw0plEYDaHU6lxloaw9TJ9Mhx/OaRLaVEeu6uNGm+MWJ/FTsy57++?=
 =?us-ascii?Q?myzVzrA1B5pMspMHZBtmtu2XEXytLT2V8mlWvlPajws0fVgdVy99jQ35An3F?=
X-MS-Exchange-AntiSpam-MessageData-1: T4gAhz11bXMQ8g==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 35831113-4086-4f6e-f4a2-08deb927da0b
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2026 00:03:14.6846
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: B4uWqq3II6P9vE/8RpVYhzn+K1yeq7vqZVF6VGQ94v2KIGZBam/V2GPjG54BXZ4HegGjKnkWjUYlPfD9nzYJyA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7P286MB7274
X-purgate-ID: tlsNG-42698a/1779580998-23374F3B-6E768BA4/0/0
X-purgate-type: clean
X-purgate-size: 1710

The numa_nodes command line option is now supported on ARM Xen.
Its usage is almost identical to x86 Xen. The key difference is that
while x86 uses ACPI PXM values to specify nodes, ARM uses the
values defined in the device tree (numa-node-id).
---
 docs/misc/xen-command-line.pandoc | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 2da90548d8..0f1c0467f1 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1046,7 +1046,7 @@ Practices](https://wiki.xen.org/wiki/Xen_Best_Practices#Xen_dom0_dedicated_memor
 
 This option doesn't have effect if pv-shim mode is enabled.
 
-### dom0_nodes (x86)
+### dom0_nodes (x86, arm)
 
 > `= List of [ <integer> | relaxed | strict ]`
 
@@ -1055,8 +1055,9 @@ This option doesn't have effect if pv-shim mode is enabled.
 Specify the NUMA nodes to place Dom0 on. Defaults for vCPU-s created
 and memory assigned to Dom0 will be adjusted to match the node
 restrictions set up here. Note that the values to be specified here are
-ACPI PXM ones, not Xen internal node numbers. `relaxed` sets up vCPU
-affinities to prefer but be not limited to the specified node(s).
+ACPI PXM ones, not Xen internal node numbers, or node IDs in the device
+tree. `relaxed` sets up vCPU affinities to prefer but be not limited to
+the specified node(s).
 
 ### dom0_vcpus_pin
 > `= <boolean>`
@@ -1996,7 +1997,7 @@ This option is ignored in **pv-shim** mode.
 ### nr_irqs (x86)
 > `= <integer>`
 
-### numa (x86)
+### numa (x86, arm)
 > `= on | off | fake=<integer> | noacpi`
 
 > Default: `on`
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 24 07:15:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 07:15:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318530.1586719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wR33S-0005i4-KP; Sun, 24 May 2026 07:15:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318530.1586719; Sun, 24 May 2026 07:15:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wR33S-0005hx-Hi; Sun, 24 May 2026 07:15:22 +0000
Received: by outflank-mailman (input) for mailman id 1318530;
 Sun, 24 May 2026 07:15:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mst@redhat.com>) id 1wR33R-0005hr-Dw
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 07:15:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wR33Q-001RCl-QD
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 09:15:20 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mst@redhat.com>)
 id 6a12a54e-bab6-0a2a0a5309dd-0a2a450bc578-28
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 09:15:20 +0200
Received: from [170.10.133.124] (helo=us-smtp-delivery-124.mimecast.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mst@redhat.com>)
 id 6a12a587-212f-0a2a450b0019-aa0a857c7a63-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 09:15:20 +0200
Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com
 [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-658-N_EH1F6GMv6YyivgHUd6Ag-1; Sun, 24 May 2026 03:15:17 -0400
Received: by mail-wm1-f69.google.com with SMTP id
 5b1f17b1804b1-49051422d55so5886235e9.2
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 00:15:16 -0700 (PDT)
Received: from redhat.com (IGLD-80-230-25-45.inter.net.il. [80.230.25.45])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-490456274ebsm153744685e9.15.2026.05.24.00.15.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 24 May 2026 00:15:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mimecast20190719 header.d=redhat.com header.i="@redhat.com" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1779606919;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=MeMcg9poW2sZLHBkaJ9tRSZykW1udUhXLX9HUewfT1M=;
	b=TnC9RrnM4pMKbd4tC/9RoKFVNMaDkSp378ZUHQTWgBJRRnCUYse9Pt/UbDpp7OeqF2FWuf
	oxJyZ56EnYA8PZ7CV5a6OsWxPAvq115MxcDM2KzmaPxoTN6XDM5GMEdovNhJ77RtEYeJyH
	MShJkArWGx0VQhujZKnqFyLnMQXIkFs=
X-MC-Unique: N_EH1F6GMv6YyivgHUd6Ag-1
X-Mimecast-MFC-AGG-ID: N_EH1F6GMv6YyivgHUd6Ag_1779606916
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779606916; x=1780211716;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=MeMcg9poW2sZLHBkaJ9tRSZykW1udUhXLX9HUewfT1M=;
        b=X9BjV3MDgV2oSY266W/gPR0VdEcSAHtNvFYqzC3TUDY3zTAw7bfGza+JZvLIGqPwMT
         Sy7mJI+TEulCIYIahsL8WNtJdyuB71lxkdASPiKE/nb8B9KbD5ITg6Ezpk3l0yXJb1Px
         E6IAkIgXB2tVa2hXH4D9AxTtXpRvJKlG/Po0znFd0Xd8OF9QqaVogdDqvO+WnqbcJjy0
         LFq+b1S77xfKxWgy16LO3SrQQn1TNFueRX2JkEtVB+svVtRaHr0BxgyrX1WG2rd37WjV
         YaW9SfI0+ddMaiweQzkaPMAFDd3H8Jb8ibw2yUxzksZZy0jS6lIiLKofcwKe3XqniLLv
         rYaA==
X-Forwarded-Encrypted: i=1; AFNElJ9JZKNcUNYaUH2LeFsozyxKFRwYYZ4xr5xOqTJdi3vwo/cf6MHArgzkpmXi6c8XSyu2kRTDF4yLpPA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyiqv7Oh/zd7187ElgCzgSX99m+uXrJzlx/zgbLZrfZtihNF4yM
	9/62iD6f5JUHlQF65b1hkKfQhFm84aPiQf69mZmNA6jOgMbSwZK6JQPtSh8n6g39L9N7TPZdmoa
	/INBArm3DF+CqDX6gO01tSe9walqStpIuU1GSI60gA2L1bG0vAJMeJLTCUTkRnToArnBX
X-Gm-Gg: Acq92OHo2JAAEf6tECqD6sx4Kkp8++JJY1d7MtKs5e2Z2bg/iOVzS8KxfC8EgC6Sb24
	088QYa2mjR1A3rbrY70ejAA3vIBGIe81JW+Axdu/HutoizQDaWE9oQ5QXvwJW+HisJyBhbYK0sd
	2HYIG0whpyWGjrUT7hWDlzqTBjdTzzZ1MH7zO3ojW1P2RlO04jlaQgnQpWJcNiefA/4kv5w8VFM
	C2N/FXzLNblRX5R1Ag150+9UuAg96jOjX88yStJLRhDAH99jX8O6mRBqQS/xEKHtAx9nOBtXulx
	jRv2PEs0gW4j72pxNwS7eMceF1KFy2+t3lmbjCBiFwkQjVKHaXcsdcc6byKMZg5Dds0O1mziN8P
	KXMbXOwrmYjNKBz2RaYbIu7IeSRxeG4Gap6laHcUirxs=
X-Received: by 2002:a05:600c:4f0b:b0:48a:7676:30bc with SMTP id 5b1f17b1804b1-490426a4753mr152248405e9.14.1779606915892;
        Sun, 24 May 2026 00:15:15 -0700 (PDT)
X-Received: by 2002:a05:600c:4f0b:b0:48a:7676:30bc with SMTP id 5b1f17b1804b1-490426a4753mr152247945e9.14.1779606915505;
        Sun, 24 May 2026 00:15:15 -0700 (PDT)
Date: Sun, 24 May 2026 03:15:12 -0400
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Thierry Escande <thierry.escande@vates.tech>
Cc: qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Anthony PERARD <anthony@xenproject.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 0/4] Xen: Add Q35 initial support for HVM guests
Message-ID: <20260524031423-mutt-send-email-mst@kernel.org>
References: <20260313164649.794591-1-thierry.escande@vates.tech>
MIME-Version: 1.0
In-Reply-To: <20260313164649.794591-1-thierry.escande@vates.tech>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: UMLJ2wn_Ads9pNsy3JZ6VGbbhgRre4jvXHr2MJ1VWpc_1779606916
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-purgate-ID: tlsNG-42698a/1779606920-18563F3B-3B1B950C/0/0
X-purgate-type: clean
X-purgate-size: 2062

On Fri, Mar 13, 2026 at 04:46:56PM +0000, Thierry Escande wrote:
> This patch series introduces Q35 chipset support for Xen HVM guests. This is
> based on the work from Alexey Gerasimenko (See patchset [1] for reference).
> 
> This series does not implement device passthrough as this will need more work
> on the Xen side to support multiple PCI buses. Since Q35 chipset does not
> support device hotplugging and with current Xen mechanism for device
> passthrough, they have to be plugged to a new PCIe root port, i.e. not the PCI
> bus 0.
> 
> As a first step for Q35 guests support, this series implements:
> - Legacy interrupt routing for the ICH9 LPC bridge (i.e. not IOAPIC)
> - Xen HVM machine initialization in pc_q35_init()
> - Access to PCIe Extended Config Space
> - Fix for incorrect values and usage for PCIEXBAR masks

Xen maintainers, who's merging this?

> The corresponding patchset for the Xen Project has been posted at [2].
> 
> [1] https://lore.kernel.org/xen-devel/cover.1520867740.git.x1917x@gmail.com/
> [2] https://lore.kernel.org/xen-devel/20260313163455.790692-1-thierry.escande@vates.tech/
> 
> Alexey Gerasimenko (2):
>   pc/xen: Xen Q35 support: provide IRQ handling for PCI devices
>   q35: Fix incorrect values for PCIEXBAR masks
> 
> Thierry Escande (2):
>   q35/xen: Add Xen support for Q35
>   xen: Handle PCIe config space size in cpu_ioreq_config()
> 
>  hw/i386/pc_piix.c         |  2 --
>  hw/i386/pc_q35.c          | 12 +++++++++++-
>  hw/i386/xen/xen-hvm.c     | 38 ++++++++++++++++++++++++++++++++++++++
>  hw/isa/lpc_ich9.c         | 16 +++++++++++++---
>  hw/pci-host/q35.c         |  6 +++---
>  hw/xen/xen-hvm-common.c   | 11 +++++++----
>  include/hw/pci-host/q35.h |  4 ++--
>  include/hw/xen/xen.h      |  5 +++++
>  stubs/xen-hw-stub.c       |  4 ++++
>  9 files changed, 83 insertions(+), 15 deletions(-)
> 
> -- 
> 2.51.0
> 
> 
> 
> --
> Thierry Escande | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Sun May 24 07:27:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 07:27:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318542.1586729 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wR3FG-0007il-Ov; Sun, 24 May 2026 07:27:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318542.1586729; Sun, 24 May 2026 07:27:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wR3FG-0007ie-MA; Sun, 24 May 2026 07:27:34 +0000
Received: by outflank-mailman (input) for mailman id 1318542;
 Sun, 24 May 2026 07:27:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mst@redhat.com>) id 1wR3FF-0007h7-Mw
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 07:27:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wR3FF-002xZg-3G
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 09:27:33 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mst@redhat.com>)
 id 6a12a864-2eae-0a2a0a5409dd-0a2a4506d08a-2
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 09:27:32 +0200
Received: from [170.10.129.124] (helo=us-smtp-delivery-124.mimecast.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mst@redhat.com>)
 id 6a12a863-7371-0a2a45060019-aa0a817cd89b-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 09:27:32 +0200
Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com
 [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-7-CHYLcssYOhqZXz2X8gnbwQ-1; Sun, 24 May 2026 03:27:29 -0400
Received: by mail-wm1-f69.google.com with SMTP id
 5b1f17b1804b1-49058e91639so3401035e9.3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 00:27:29 -0700 (PDT)
Received: from redhat.com (IGLD-80-230-25-45.inter.net.il. [80.230.25.45])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4904526c926sm269326035e9.1.2026.05.24.00.27.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 24 May 2026 00:27:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mimecast20190719 header.d=redhat.com header.i="@redhat.com" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1779607651;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=ZxhD+oPNzxpDNMc3FLT/7Y70luC3EVY6qa2hhkOcukw=;
	b=efK7z89bPd5hRr/8DvaR/8w3vxgj79hg6c7x0cyJCUkFbrTHxAqlFd+VGKAi8d2x/J23OM
	YxtMA17Oyi/w8ZNjgZEDta1obtc4096BzCkiP/TMrCQUKXeCyP+TFLXlpWCuD2VyaFSKRV
	nX44xr3D9y6cajZu537KCt4j+PzdS2E=
X-MC-Unique: CHYLcssYOhqZXz2X8gnbwQ-1
X-Mimecast-MFC-AGG-ID: CHYLcssYOhqZXz2X8gnbwQ_1779607648
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779607648; x=1780212448;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ZxhD+oPNzxpDNMc3FLT/7Y70luC3EVY6qa2hhkOcukw=;
        b=B/AWjb57TjWV5APg+zqJweP5ecD4Uz45H2C8SBKy4K3bt6XkUYBxyGI2iRPzHUPGC9
         /qe28FLbG4EfH0lI/sJ6fQj9myqMWiM3BcRA9B82d58HUiRTUhrgddIAHERhv1AO+9WY
         AFn26y9bPNA3R5deII9JjiNbRLG80mch6WSUFffy6cSh+uX+nOGTFQVa+4zJR2BToCUi
         lm9imCxr8dX+gUv2Igy2wXHrD3nVPnJWv5PCLZ6VQonyUKPkwagLHKnBYV5twCfhb63k
         UA4+BEl1zRd5C44Fw0Lmp4N0OmH7un0x8B3EIxTVOUIUBVaE0vrfZ21dzVcKjQ3LaPHG
         cq9A==
X-Forwarded-Encrypted: i=1; AFNElJ989hIA4768ttRgj6rP2y43dy16gfZNOGtniIKA2nz5bHPZlpAuSUbSO/fOrz14V20lStanW2AAtxU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzuNp7PCE5LHhc4u4ncKlSjDVaM//Lf1QtTWvYOwymSVex7VBIg
	K3J1v97uq7HThbBhKjy/mI6hoA6IQnxWO9CiT6Tgmqt7AHQk1wj7+t44k6rIFN9or8ysnfqNY4L
	BdqiJm1vmGgysTnGDIaKT7N9jLikY4l3w8A5DXlvhZjUqj/BTTxS3usbaOPoQHsPvslxp1tTolK
	O0
X-Gm-Gg: Acq92OHx4NU+9ZhPJfhw1BGNLYtHjofuKL2rpr8Wi8/3CvfLMRM+2225QyZSgeArtf3
	9cOCVU5/zSIILEMaq2g6SmlVvhk487kzVoaROMwxmLvbb/bUETlvS8s0dzY/my1HmqlcrooiWFu
	m02w3S7hx2FeVx+hoUv/eTfSIzJ7QfpcU9fCuMotP4juK/wPH6R0kRij122VJDpY15TwojbrfuO
	IaIi0pTTMapH8dXbRhTF9HAZ/yPKTl46tGNY1viEHfmzed7N5oDPgSQiPvkYn4L9uTfXhTrUmP7
	3WKSjEq7QvBMI9YeIqybZZYqi5RzL/laD46++r/TrkO4b3sHQVfXizUgTln7d7PHj6qr9VTE/RR
	HbfCnULo0P6bpXIK7etLHAuGG8SeVdFICGcintTYZiPs=
X-Received: by 2002:a05:600c:5298:b0:490:778:4fec with SMTP id 5b1f17b1804b1-490428e02d3mr167202395e9.33.1779607648196;
        Sun, 24 May 2026 00:27:28 -0700 (PDT)
X-Received: by 2002:a05:600c:5298:b0:490:778:4fec with SMTP id 5b1f17b1804b1-490428e02d3mr167202145e9.33.1779607647720;
        Sun, 24 May 2026 00:27:27 -0700 (PDT)
Date: Sun, 24 May 2026 03:27:24 -0400
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Thierry Escande <thierry.escande@vates.tech>
Cc: qemu-devel@nongnu.org, Alexey Gerasimenko <x1917x@gmail.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Anthony PERARD <anthony@xenproject.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/4] pc/xen: Xen Q35 support: provide IRQ handling for
 PCI devices
Message-ID: <20260524031521-mutt-send-email-mst@kernel.org>
References: <20260313164649.794591-1-thierry.escande@vates.tech>
 <20260313164649.794591-2-thierry.escande@vates.tech>
MIME-Version: 1.0
In-Reply-To: <20260313164649.794591-2-thierry.escande@vates.tech>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: xT19KTREeHPgkfaSsaLPS50vf7X1QDucHw-xPxyB4As_1779607648
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-purgate-ID: tlsNG-16d1c6/1779607652-84F63D75-173A69F9/0/0
X-purgate-type: clean
X-purgate-size: 7862

On Fri, Mar 13, 2026 at 04:47:07PM +0000, Thierry Escande wrote:
> From: Alexey Gerasimenko <x1917x@gmail.com>
> 
> This patch introduces support for ICH9 LPC PCI interrupt routing when
> running under Xen. This intercepts writes to the PIRQA-D routing
> registers and propagates routing changes to the Xen device model via
> xen_set_pci_link_route().
> 
> A major difference between i440 and Q35 is the number of PIRQ inputs and
> PIRQ routers (PCI IRQ links in terms of ACPI) available. i440 has 4 PCI
> interrupt links, while Q35 has 8 (PIRQA...PIRQH). Currently Xen has
> support for only 4 PCI links, so we describe only 4 of 8 PCI links in
> ACPI tables. Also, hvmloader disables PIRQ routing for PIRQE..PIRQH by
> writing 80h into corresponding PIRQ[n]_ROUT registers.
> 
> All this PCI interrupt routing stuff largely concerns legacy mechanism
> from PIC era. It's hardly worth to extend number of PCI links supported
> as we normally deal with APIC mode and/or MSI interrupts.
> 
> The only useful thing to do with PIRQE..PIRQH routing currently is to
> check if guest actually attempts to use it for some reason (despite ACPI
> PCI routing information provided). In this case, a warning is reported.
> 
> This has been tested on Linux guests with noapic and pci=nomsi kernel
> parameters set.
> 
> Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
> Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
> ---
>  hw/i386/pc_piix.c     |  2 --
>  hw/i386/xen/xen-hvm.c | 38 ++++++++++++++++++++++++++++++++++++++
>  hw/isa/lpc_ich9.c     | 16 +++++++++++++---
>  include/hw/xen/xen.h  |  5 +++++
>  stubs/xen-hw-stub.c   |  4 ++++
>  5 files changed, 60 insertions(+), 5 deletions(-)
> 
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 4d71e0d51a..a65e09e46c 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -66,8 +66,6 @@
>  #include "hw/i386/acpi-build.h"
>  #include "target/i386/cpu.h"
>  
> -#define XEN_IOAPIC_NUM_PIRQS 128ULL
> -
>  static GlobalProperty pc_piix_compat_defaults[] = {
>      { TYPE_RAMFB_DEVICE, "use-legacy-x86-rom", "true" },
>      { TYPE_VFIO_PCI_NOHOTPLUG, "use-legacy-x86-rom", "true" },
> diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c
> index 67d3e836eb..2dba289e09 100644
> --- a/hw/i386/xen/xen-hvm.c
> +++ b/hw/i386/xen/xen-hvm.c
> @@ -18,6 +18,7 @@
>  #include "hw/core/hw-error.h"
>  #include "hw/i386/pc.h"
>  #include "hw/core/irq.h"
> +#include "hw/southbridge/ich9.h"
>  #include "hw/i386/apic-msidef.h"
>  #include "hw/xen/xen-x86.h"
>  #include "qemu/range.h"
> @@ -87,6 +88,43 @@ int xen_set_pci_link_route(uint8_t link, uint8_t irq)
>      return xendevicemodel_set_pci_link_route(xen_dmod, xen_domid, link, irq);
>  }
>  
> +void xen_ich9_pci_write_config_client(PCIDevice *pci_dev, uint32_t address, uint32_t val, int len)
> +{
> +    static bool pirqe_f_warned = false;
> +    int i;
> +
> +    if (ranges_overlap(address, len, ICH9_LPC_PIRQA_ROUT, 4)) {
> +        /* handle PIRQA..PIRQD routing */
> +        /* Scan for updates to PCI link routes (0x60-0x63). */
> +        for (i = 0; i < len; i++) {
> +            uint8_t v = (val >> (8 * i)) & 0xff;
> +            if (v & 0x80) {
> +                v = 0;
> +            }
> +            v &= 0xf;
> +            if (((address + i) >= ICH9_LPC_PIRQA_ROUT) &&
> +                ((address + i) <= ICH9_LPC_PIRQD_ROUT)) {
> +                xen_set_pci_link_route(address + i - ICH9_LPC_PIRQA_ROUT, v);
> +            }
> +        }
> +    } else if (ranges_overlap(address, len, ICH9_LPC_PIRQE_ROUT, 4)) {
> +        while (len--) {
> +            if (range_covers_byte(ICH9_LPC_PIRQE_ROUT, 4, address) &&
> +                (val & 0x80) == 0) {
> +                /* print warning only once */
> +                if (!pirqe_f_warned) {
> +                    pirqe_f_warned = true;
> +                    warn_report("WARNING: guest domain attempted to use PIRQ%c "
> +                                "routing which is not supported for Xen/Q35 currently\n",
> +                                (char)(address - ICH9_LPC_PIRQE_ROUT + 'E'));
> +                    break;
> +                }
> +            }
> +            address++, val >>= 8;
> +        }
> +    }
> +}
> +
>  int xen_is_pirq_msi(uint32_t msi_data)
>  {
>      /* If vector is 0, the msi is remapped into a pirq, passed as
> diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
> index 51dc680029..8c627f0734 100644
> --- a/hw/isa/lpc_ich9.c
> +++ b/hw/isa/lpc_ich9.c
> @@ -46,8 +46,10 @@
>  #include "hw/acpi/ich9_timer.h"
>  #include "hw/pci/pci_bus.h"
>  #include "hw/core/qdev-properties.h"
> +#include "hw/xen/xen.h"
>  #include "system/runstate.h"
>  #include "system/system.h"
> +#include "system/xen.h"
>  #include "hw/core/cpu.h"
>  #include "hw/nvram/fw_cfg.h"
>  #include "qemu/cutils.h"
> @@ -569,6 +571,9 @@ static void ich9_lpc_config_write(PCIDevice *d,
>      ICH9LPCState *lpc = ICH9_LPC_DEVICE(d);
>      uint32_t rcba_old = pci_get_long(d->config + ICH9_LPC_RCBA);
>  
> +    if (xen_enabled()){

Coding style violation.


> +        xen_ich9_pci_write_config_client(d, addr, val, len);
> +    }
>      pci_default_write_config(d, addr, val, len);
>      if (ranges_overlap(addr, len, ICH9_LPC_PMBASE, 4) ||
>          ranges_overlap(addr, len, ICH9_LPC_ACPI_CTRL, 1)) {
> @@ -762,9 +767,14 @@ static void ich9_lpc_realize(PCIDevice *d, Error **errp)
>      irq = object_property_get_uint(OBJECT(&lpc->rtc), "irq", &error_fatal);
>      isa_connect_gpio_out(ISA_DEVICE(&lpc->rtc), 0, irq);
>  
> -    pci_bus_irqs(pci_bus, ich9_lpc_set_irq, d, ICH9_LPC_NB_PIRQS);
> -    pci_bus_map_irqs(pci_bus, ich9_lpc_map_irq);
> -    pci_bus_set_route_irq_fn(pci_bus, ich9_route_intx_pin_to_irq);
> +    if (xen_enabled()) {
> +        pci_bus_irqs(pci_bus, xen_intx_set_irq, d, XEN_IOAPIC_NUM_PIRQS);
> +        pci_bus_map_irqs(pci_bus, xen_pci_slot_get_pirq);
> +    } else {
> +        pci_bus_irqs(pci_bus, ich9_lpc_set_irq, d, ICH9_LPC_NB_PIRQS);
> +        pci_bus_map_irqs(pci_bus, ich9_lpc_map_irq);
> +        pci_bus_set_route_irq_fn(pci_bus, ich9_route_intx_pin_to_irq);
> +    }
>  
>      ich9_lpc_pm_init(lpc);
>  }
> diff --git a/include/hw/xen/xen.h b/include/hw/xen/xen.h
> index e94c6e5a31..910289b54d 100644
> --- a/include/hw/xen/xen.h
> +++ b/include/hw/xen/xen.h
> @@ -24,6 +24,8 @@
>  #define __XEN_INTERFACE_VERSION__ 0x00040e00
>  #endif
>  
> +#define XEN_IOAPIC_NUM_PIRQS 128ULL
> +
>  /* xen-machine.c */
>  enum xen_mode {
>      XEN_DISABLED = 0, /* xen support disabled (default) */
> @@ -39,6 +41,9 @@ extern bool xen_is_stubdomain;
>  int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num);
>  int xen_set_pci_link_route(uint8_t link, uint8_t irq);
>  void xen_intx_set_irq(void *opaque, int irq_num, int level);
> +void xen_ich9_pci_write_config_client(PCIDevice *pci_dev,
> +                                      uint32_t address, uint32_t val,
> +                                      int len);
>  void xen_hvm_inject_msi(uint64_t addr, uint32_t data);
>  int xen_is_pirq_msi(uint32_t msi_data);
>  
> diff --git a/stubs/xen-hw-stub.c b/stubs/xen-hw-stub.c
> index 6cf0e9a4c1..a74209d01e 100644
> --- a/stubs/xen-hw-stub.c
> +++ b/stubs/xen-hw-stub.c
> @@ -24,6 +24,10 @@ int xen_set_pci_link_route(uint8_t link, uint8_t irq)
>      return -1;
>  }
>  
> +void xen_ich9_pci_write_config_client(PCIDevice *pci_dev, uint32_t address, uint32_t val, int len)
> +{
> +}
> +
>  int xen_is_pirq_msi(uint32_t msi_data)
>  {
>      return 0;
> -- 
> 2.51.0
> 
> 
> 
> --
> Thierry Escande | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Sun May 24 07:44:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 07:44:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318554.1586738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wR3VR-0002Ku-3Z; Sun, 24 May 2026 07:44:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318554.1586738; Sun, 24 May 2026 07:44:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wR3VR-0002Kn-0C; Sun, 24 May 2026 07:44:17 +0000
Received: by outflank-mailman (input) for mailman id 1318554;
 Sun, 24 May 2026 07:44:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mst@redhat.com>) id 1wR3VO-0002Kh-Ub
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 07:44:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wR3VO-00DB05-Ap
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 09:44:14 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mst@redhat.com>)
 id 6a12ac36-5cb7-0a2a0a5109dd-0a2a4502eb7e-12
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 09:44:14 +0200
Received: from [170.10.133.124] (helo=us-smtp-delivery-124.mimecast.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mst@redhat.com>)
 id 6a12ac48-af86-0a2a45020019-aa0a857c7265-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 09:44:13 +0200
Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com
 [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-686-HPj7AkDRM9y3ZA0gp2j0Mw-1; Sun, 24 May 2026 03:43:55 -0400
Received: by mail-wm1-f72.google.com with SMTP id
 5b1f17b1804b1-49041d39887so15178985e9.2
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 00:43:52 -0700 (PDT)
Received: from redhat.com (IGLD-80-230-25-45.inter.net.il. [80.230.25.45])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45ec7fcd7f9sm4733435f8f.37.2026.05.24.00.43.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 24 May 2026 00:43:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mimecast20190719 header.d=redhat.com header.i="@redhat.com" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1779608648;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=d31P/47NSDwQAWFSW6gul/ImIejpiWKEwkFsv0GPKu4=;
	b=Wn775bIpvOKhFBBj2pln9Z1xVaVmsirkCJzAeul3Jr46vftlEf9o7JzaI6SAxQ1z7RxOTT
	kmLvzbnXnwg1HHqlEngyyvrVQRl/v8hQYyFTUzY8C54D2mSbS+aD8IKXlQDmfsane1Hdls
	sAnwsGh+oLoj3EAN3/8CiwH+Xsy8UJI=
X-MC-Unique: HPj7AkDRM9y3ZA0gp2j0Mw-1
X-Mimecast-MFC-AGG-ID: HPj7AkDRM9y3ZA0gp2j0Mw_1779608631
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779608631; x=1780213431;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=d31P/47NSDwQAWFSW6gul/ImIejpiWKEwkFsv0GPKu4=;
        b=bBYdGIGTK3R1ElroSy2tEvcnzHOSDERgb1M37zLT7z4KboaWltO0EMILyw+JU8RISg
         +S5X9PO7Qc+XJeRcmpoOJK11OdAotJFBQ2HcfaAd4F3cAZx2u/A0VzaNxG5jPUS9teEO
         5Q3yTTpbK9yiaOe+Oo2FFSb5BLBosdeXzohPpjDMis2cBZHMlJZ+rb/YeyNC2zaZojY5
         vMRuD6J4/p8BVoG8JJEfhWeL1AdlaQeDdikbidMgxAOKA2rQjB8KJUIgJIxFPvDpmhss
         HkVLrltFuNPa8Ut9aUoPyy0OOVe9QfcL+f/2s8IYZn6YknxmpcuSem/1Ozm1naQCtMgj
         687g==
X-Forwarded-Encrypted: i=1; AFNElJ891/IpiKWAWexx1dMJ60Od/dpqy7VWc08/iruDmRVdHFQw08WlzoASCr8LqaQZbme2quklZy8Wdsc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3vYWGRbJ9j+cvFsv22ushzMR9GJXbKzm5xF6s8lDUY8s0ZNGW
	mmlmkZy0qEktdNPof2m0ecx2SYQ6HFyDFLCHeKLNSDYHhEvk2a07P37xbF+JpDToZkHL8KkZZfN
	fHlcSk4BNCe0tfCxltRycH24DBP78GE2nk86M23JMycqwFlw9ObFmlhsu5HMnmhl8pcdg
X-Gm-Gg: Acq92OEHaVF7IS+/wuv9/m/XQmvaPKALUe7iV5gwOAbYULR+bjD1LdDKahOmrddd2XW
	zfefWdYBUlFksiJrBw4fYr3OhELvVlroe35kVLEgMf4eDAbbTg4qG8hvWLVoDQgQ5Dzn/ZK4acz
	6F+QJIIcSor//e0O34IUzwUBlBznw3KE9pvS1j1gf0RzQjtOpTELFkplhdIBu4dfGZKdzY6jchS
	kYQAHMB7CXIQYUV4W0QOeV68uZoCBB/7qGasnTC9xCGXH/CQ9KwAZ+ppunk02XoNOYnjx/z+/7N
	Qnl8jJf2zMpqOKOUbtOxmOgRyMX0IZvmR4YdYGFHgOc5pULr5xAWpRYPvJSuQZszaA4mI3enwbp
	Ld+l45X4BvF0J6nA6nNy9X0JqMLlSbmqdP6IDV08hZRc=
X-Received: by 2002:a05:600c:1393:b0:489:1d74:56d with SMTP id 5b1f17b1804b1-490428e15e9mr155921965e9.29.1779608630984;
        Sun, 24 May 2026 00:43:50 -0700 (PDT)
X-Received: by 2002:a05:600c:1393:b0:489:1d74:56d with SMTP id 5b1f17b1804b1-490428e15e9mr155921545e9.29.1779608630486;
        Sun, 24 May 2026 00:43:50 -0700 (PDT)
Date: Sun, 24 May 2026 03:43:47 -0400
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Thierry Escande <thierry.escande@vates.tech>
Cc: qemu-devel@nongnu.org, Alexey Gerasimenko <x1917x@gmail.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Anthony PERARD <anthony@xenproject.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 3/4] q35: Fix incorrect values for PCIEXBAR masks
Message-ID: <20260524034330-mutt-send-email-mst@kernel.org>
References: <20260313164649.794591-1-thierry.escande@vates.tech>
 <20260313164649.794591-4-thierry.escande@vates.tech>
MIME-Version: 1.0
In-Reply-To: <20260313164649.794591-4-thierry.escande@vates.tech>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: GvbJn9nt70AJek-a76xWxoW6KvuYzTsD9sK-ymqt1cg_1779608631
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-purgate-ID: tlsNG-720697/1779608654-82D6F161-58F8FA19/0/0
X-purgate-type: clean
X-purgate-size: 2927

On Fri, Mar 13, 2026 at 04:47:16PM +0000, Thierry Escande wrote:
> From: Alexey Gerasimenko <x1917x@gmail.com>
> 
> There are two small issues in PCIEXBAR address mask handling:
> - wrong bit positions for address mask bits (see PCIEXBAR description
>   in Q35 datasheet)
> - incorrect usage of 64ADR_MASK
> 
> Due to this, attempting to write a valid PCIEXBAR address may cause it
> to shift to another address, causing memory layout corruption where
> emulated MMIO regions may overlap real (passed through) MMIO ranges. Fix
> this by providing correct values.
> 
> Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
> Signed-off-by: Thierry Escande <thierry.escande@vates.tech>

Acked-by: Michael S. Tsirkin <mst@redhat.com>

> ---
>  hw/pci-host/q35.c         | 6 +++---
>  include/hw/pci-host/q35.h | 4 ++--
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c
> index e85e4227b3..7368e3c598 100644
> --- a/hw/pci-host/q35.c
> +++ b/hw/pci-host/q35.c
> @@ -306,12 +306,12 @@ static void mch_update_pciexbar(MCHPCIState *mch)
>          break;
>      case MCH_HOST_BRIDGE_PCIEXBAR_LENGTH_128M:
>          length = 128 * 1024 * 1024;
> -        addr_mask |= MCH_HOST_BRIDGE_PCIEXBAR_128ADMSK |
> -            MCH_HOST_BRIDGE_PCIEXBAR_64ADMSK;
> +        addr_mask |= MCH_HOST_BRIDGE_PCIEXBAR_128ADMSK;
>          break;
>      case MCH_HOST_BRIDGE_PCIEXBAR_LENGTH_64M:
>          length = 64 * 1024 * 1024;
> -        addr_mask |= MCH_HOST_BRIDGE_PCIEXBAR_64ADMSK;
> +        addr_mask |= MCH_HOST_BRIDGE_PCIEXBAR_64ADMSK |
> +            MCH_HOST_BRIDGE_PCIEXBAR_128ADMSK;
>          break;
>      case MCH_HOST_BRIDGE_PCIEXBAR_LENGTH_RVD:
>          qemu_log_mask(LOG_GUEST_ERROR, "Q35: Reserved PCIEXBAR LENGTH\n");
> diff --git a/include/hw/pci-host/q35.h b/include/hw/pci-host/q35.h
> index ddafc3f2e3..f31a71010b 100644
> --- a/include/hw/pci-host/q35.h
> +++ b/include/hw/pci-host/q35.h
> @@ -100,8 +100,8 @@ struct Q35PCIHost {
>  #define MCH_HOST_BRIDGE_PCIEXBAR_DEFAULT       0xb0000000
>  #define MCH_HOST_BRIDGE_PCIEXBAR_MAX           (0x10000000) /* 256M */
>  #define MCH_HOST_BRIDGE_PCIEXBAR_ADMSK         Q35_MASK(64, 35, 28)
> -#define MCH_HOST_BRIDGE_PCIEXBAR_128ADMSK      ((uint64_t)(1 << 26))
> -#define MCH_HOST_BRIDGE_PCIEXBAR_64ADMSK       ((uint64_t)(1 << 25))
> +#define MCH_HOST_BRIDGE_PCIEXBAR_128ADMSK      ((uint64_t)(1 << 27))
> +#define MCH_HOST_BRIDGE_PCIEXBAR_64ADMSK       ((uint64_t)(1 << 26))
>  #define MCH_HOST_BRIDGE_PCIEXBAR_LENGTH_MASK   ((uint64_t)(0x3 << 1))
>  #define MCH_HOST_BRIDGE_PCIEXBAR_LENGTH_256M   ((uint64_t)(0x0 << 1))
>  #define MCH_HOST_BRIDGE_PCIEXBAR_LENGTH_128M   ((uint64_t)(0x1 << 1))
> -- 
> 2.51.0
> 
> 
> 
> --
> Thierry Escande | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Sun May 24 11:00:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 11:00:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318619.1586746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wR6Z6-0004RP-Nc; Sun, 24 May 2026 11:00:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318619.1586746; Sun, 24 May 2026 11:00:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wR6Z6-0004RI-KQ; Sun, 24 May 2026 11:00:16 +0000
Received: by outflank-mailman (input) for mailman id 1318619;
 Sun, 24 May 2026 11:00:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1wR6Z5-0004RC-QD
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 11:00:15 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1wR6Z5-003zR6-0Z;
 Sun, 24 May 2026 11:00:15 +0000
Received: from [2a02:8012:3a1:0:94ee:8228:5d9d:4ee8]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1wR6Z4-005PIm-39;
 Sun, 24 May 2026 11:00:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=7m4lJ7TIcGE792JMwbJcSf0iwwa49L3L/8UsoUChDbM=; b=PSoEG+vNRgfWC8ttgY5EfqB6Fi
	fPWA0s8YnqBwboe+qgHxLVNSLg88IveZ6yhggJIV5gZTNS78JMqwMZ28kOXZC5aDHtq7Qo5NnwU1K
	O7IZp7PtdKSrn7J0vf8GnzFMenXtjWzxYvwmIHOwIGbzIQiinyv/snqIzgEnSiR8oXOY=;
Message-ID: <e489f44e-ef61-425c-bd0e-0a992c32f7cf@xen.org>
Date: Sun, 24 May 2026 12:00:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/23] xen/arm: smmuv3: Add support for stage-1 and
 nested stage translation
Content-Language: en-GB
To: Milan Djokic <milan_djokic@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
 <cb8a2cb5df50128f4c49d34a7ab8faa4e73f83c6.1774305918.git.milan_djokic@epam.com>
 <56a7c116-4ecb-4dfc-a7dd-774d53041fe9@xen.org>
 <87a04781-5765-43b6-8b21-cb993609bd91@epam.com>
 <cd2c76a2-7a13-4bbf-9c29-5dcf3ae06fc0@xen.org>
 <4c96c478-aeb5-443c-a6ca-f23caf7d5430@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <4c96c478-aeb5-443c-a6ca-f23caf7d5430@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Milan,

On 28/04/2026 11:16, Milan Djokic wrote:
>>> The original idea was to also allow stage-1-only support. But I'm not
>>> sure if stage-1-only usecase is useful or even valid for Xen.. I will
>>> update the patch series with the missing parts for stage-1-only support,
>>> pointed out by Luca, but the question remains if this is needed at all.
>>> If not, I can revert to original state where stage-2 was always 
>>> required.
>>
>> By "stage-1 only" support, do you mean Xen would use the stage-1 in
>> replacement of the stage-2? Or do you mean the guest will use the
>> stage-1 page-table and there will be no isolation from Xen?
>>
>> If the former, then I believe the page tables don't have the exact same
>> format. Today, the page-tables are shared between the CPU and IOMMU, so
>> this would need to be duplicated. For now, I am not sure this is worth
>> to do.
>>
>> If the latter, this would require the guest to be directly mapped (i.e.
>> IPA == PA) but it would also open a big hole. So I would want to
>> understand the exact use case first.
>>
> 
> The latter. In this case, the guest would configure stage-1 while 
> stage-2 translation is not used, so there is no additional isolation 
> enforced by Xen. This would only be intended for specific usecases with 
> trusted domains. But yes, this opens a significant hole if used with 
> untrusted guests. If there is no strong usecase, we could restrict the 
> implementation to always require stage-2.

It is still unclear what would be the exact use-case. Is it a system 
where the SMMU doesn't support stage-2? Performance reason?

Overall, I would rather not add any extra code in Xen without any strong 
use case.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sun May 24 11:16:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 11:16:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318628.1586756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wR6pB-0006Jc-1p; Sun, 24 May 2026 11:16:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318628.1586756; Sun, 24 May 2026 11:16:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wR6pA-0006JV-Uo; Sun, 24 May 2026 11:16:52 +0000
Received: by outflank-mailman (input) for mailman id 1318628;
 Sun, 24 May 2026 11:16:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1wR6p9-0006JP-6l
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 11:16:51 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1wR6p8-003ziy-2K;
 Sun, 24 May 2026 11:16:50 +0000
Received: from [2a02:8012:3a1:0:94ee:8228:5d9d:4ee8]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1wR6p8-005QDS-1O;
 Sun, 24 May 2026 11:16:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=DpCjZi3SL0X921Oss3oqgK+DJOyDoHLLjH65p7XLZKo=; b=u8/gNR6zrOeRb5J+4G+ZjjCVbk
	MCetsK9hflHoiUFhe3tVU9ClF/EdSIES2hhndQccA1uAZNEj9LflLIS2LmWTI13oeoqphvQ1+Usz6
	sEfFCl318UOgXvyjRK8CzxgFoqSrVD1XpE30pwujAEcz6nc15GvAfV6dg4rYwVTlqivE=;
Message-ID: <ffb1e917-857f-470b-8d52-36812e4c9492@xen.org>
Date: Sun, 24 May 2026 12:16:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/23] xen/arm: vsmmuv3: Add dummy support for virtual
 SMMUv3 for guests
Content-Language: en-GB
To: Milan Djokic <milan_djokic@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
 <97aa20fdcec324bb58c6869ddcba5fcf29bf75b3.1774918270.git.milan_djokic@epam.com>
 <1dcec397-a265-4972-8f2c-fd10c6e0b6ad@xen.org>
 <c8d683f1-eba2-4ec9-beca-84e6b5e80914@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <c8d683f1-eba2-4ec9-beca-84e6b5e80914@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Milan,

On 03/05/2026 19:38, Milan Djokic wrote:
> On 4/14/26 09:09, Julien Grall wrote:
>>> diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/ 
>>> include/asm/viommu.h
>>> index 4598f543b8..2a6742de73 100644
>>> --- a/xen/arch/arm/include/asm/viommu.h
>>> +++ b/xen/arch/arm/include/asm/viommu.h
>>> @@ -5,9 +5,21 @@
>>>    #ifdef CONFIG_ARM_VIRTUAL_IOMMU
>>>    #include <xen/lib.h>
>>> +#include <xen/list.h>
>>>    #include <xen/types.h>
>>>    #include <public/xen.h>
>>> +extern struct list_head host_iommu_list;
>>> +
>>> +/* data structure for each hardware IOMMU */
>>> +struct host_iommu {
>>> +    struct list_head entry;
>>> +    const struct dt_device_node *dt_node;
>>> +    paddr_t addr;
>>> +    paddr_t size;
>>> +    uint32_t irq;
>>
>> You don't seem to use ``irq`` in this patch. What is this meant to be
>> used for?
>>
> 
> This field will be used for vIOMMU event queue creation for the hardware 
> domain in a later patch (xen/arm: vsmmuv3: Add support for event queue 
> and global error). The emulated IRQ and MMIO region for the hardware 
> domain vIOMMU will match those of the host IOMMU.

I would prefer if this is introduced when you need it.

[..]

>>> diff --git a/xen/drivers/passthrough/arm/viommu.c b/xen/drivers/ 
>>> passthrough/arm/viommu.c
>>> index 7ab6061e34..53ae46349a 100644
>>> --- a/xen/drivers/passthrough/arm/viommu.c
>>> +++ b/xen/drivers/passthrough/arm/viommu.c
>>> @@ -2,12 +2,42 @@
>>>    #include <xen/errno.h>
>>>    #include <xen/init.h>
>>> +#include <xen/irq.h>
>>>    #include <xen/types.h>
>>>    #include <asm/viommu.h>
>>> +/* List of all host IOMMUs */
>>> +LIST_HEAD(host_iommu_list);
>>
>> I don't quite follow why this is part of the common code. That said, why
>> do we need to register the host IOMMU? Wouldn't it be simpler to go
>> through the list of pIOMMU in the vSMMU v3 implementation?
>>
> 
> ``host_iommu_list`` is part of the generic code to allow reuse for other 
> IOMMU types in the future. For example, it can be reused for Renesas 
> IPMMU, rather than duplicating it.
> As for why we need to register IOMMUs, it seems more suitable to create 
> this list at initialization and add IOMMUs with the necessary properties 
> when the pIOMMU is probed.
> We can't reuse the same list from the SMMU driver because vIOMMU needs 
> raw DT properties (address, size), which I don't think we can extract 
> from the host driver list.

The IOMMU ABI is not fixed in Xen. It can be modified to fit the vIOMMU 
work. My main concern with the current approach is the list of 
information we may need will differ between IOMMUs and the information 
will need to be duplicated. So I am still not convinced this is the 
right way to have generic code.

It would be better if we have callback to prepare the firmware table 
(and maybe mapping/irq) for a given SMMU.

That said, it might be preferable to avoid any genericity until we 
actually know how this will be used by other virtual IOMMUs.

>>>    const struct viommu_desc __read_mostly *cur_viommu;
>>> +/* Common function for adding to host_iommu_list */
>>> +void add_to_host_iommu_list(paddr_t addr, paddr_t size,
>>> +                            const struct dt_device_node *node)
>>
>> Is this supposed to only be called during __init? If so, this will help
>> to justify the ...
>>
>>> +{
>>> +    struct host_iommu *iommu_data;
>>> +
>>> +    iommu_data = xzalloc(struct host_iommu);
>>> +    if ( !iommu_data )
>>> +        panic("vIOMMU: Cannot allocate memory for host IOMMU data\n");
>>
>> ... panic(). If not, then this function needs to return an error.
>>
> 
> Yes, this is called during init, on pIOMMU driver probe 
> (arm_smmu_device_probe())
> 
>>> +
>>> +    iommu_data->addr = addr;
>>> +    iommu_data->size = size;
>>> +    iommu_data->dt_node = node;
>>> +    iommu_data->irq = platform_get_irq(node, 0);
>>> +    if ( iommu_data->irq < 0 )
>>> +    {
>>> +        gdprintk(XENLOG_ERR,
>>> +                 "vIOMMU: Cannot find a valid IOMMU irq\n");
>>
>> Shouldn't you free the allocated memory? That said, why is it ok to
>> ignore the vIOMMU in this case?
>>
> 
> Yes, this is missing. We ignore the host IOMMU with an invalid IRQ 
> because event queue emulation won't work in this case.

What you are telling me is that the vIOMMU emulation doesn't support the 
event queue. However, if the OS is able to probe/use an SMMU without the 
IRQ then we should support it.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sun May 24 11:49:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 11:49:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318641.1586764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wR7KK-0002bR-Fy; Sun, 24 May 2026 11:49:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318641.1586764; Sun, 24 May 2026 11:49:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wR7KK-0002bK-DU; Sun, 24 May 2026 11:49:04 +0000
Received: by outflank-mailman (input) for mailman id 1318641;
 Sun, 24 May 2026 11:49:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1wR7KJ-0002bE-Cu
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 11:49:03 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1wR7KJ-0040IE-02;
 Sun, 24 May 2026 11:49:03 +0000
Received: from [2a02:8012:3a1:0:94ee:8228:5d9d:4ee8]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1wR7KI-005SVi-2f;
 Sun, 24 May 2026 11:49:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=0sCDsEJ2c38OOthNnE62AdvHvXG+vDtuDbYcaiC5uL4=; b=ePyHE88Fn1ftJj505JQkIBUrLk
	qtLPOw6kpZILoEqg8ve9LvzKrKLQHE7Pd7J2ML0JqVNBwVK+cxTtn1GhiiBbrtcP63GjcJswlJhzK
	PabeeXT92a9/4ZZZKqFzfCB2dI1NAhYxhmSTdCYDHFxStWZBGcJ/sGDwAS1VgNEN86iU=;
Message-ID: <648f587f-8621-472d-9b2c-e88fe11444a4@xen.org>
Date: Sun, 24 May 2026 12:49:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 08/23] xen/arm: vsmmuv3: Add support for registers
 emulation
Content-Language: en-GB
To: Milan Djokic <milan_djokic@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
 <25adb33c4be3932c2d946cf7757c933eb042476c.1774918270.git.milan_djokic@epam.com>
 <6d1806aa-b009-407a-9a7a-476f9f4deb70@xen.org>
 <f7e7f42c-43f1-436a-9d06-ab44619f2da0@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <f7e7f42c-43f1-436a-9d06-ab44619f2da0@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Milan,

On 18/05/2026 01:17, Milan Djokic wrote:
> Hi Julien,
> 
> On 4/14/26 10:10, Julien Grall wrote:
>> Hi Milan,
>>
>> On 31/03/2026 10:52, Milan Djokic wrote:
>>> From: Rahul Singh <rahul.singh@arm.com>
>>>
>>> Add initial support for various emulated registers for virtual SMMUv3
>>> for guests and also add support for virtual cmdq and eventq.
>>>
>>> Signed-off-by: Rahul Singh <rahul.singh@arm.com>
>>> Signed-off-by: Milan Djokic <milan_djokic@epam.com>
>>> ---
>>>    xen/drivers/passthrough/arm/smmu-v3.h  |   6 +
>>>    xen/drivers/passthrough/arm/vsmmu-v3.c | 286 +++++++++++++++++++++ 
>>> ++++
>>>    2 files changed, 292 insertions(+)
>>>
>>> diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/ 
>>> passthrough/arm/smmu-v3.h
>>> index 3fb13b7e21..fab4fd5a26 100644
>>> --- a/xen/drivers/passthrough/arm/smmu-v3.h
>>> +++ b/xen/drivers/passthrough/arm/smmu-v3.h
>>> @@ -60,6 +60,12 @@
>>>    #define IDR5_VAX            GENMASK(11, 10)
>>>    #define IDR5_VAX_52_BIT            1
>>> +#define ARM_SMMU_IIDR            0x18
>>> +#define IIDR_PRODUCTID            GENMASK(31, 20)
>>> +#define IIDR_VARIANT            GENMASK(19, 16)
>>> +#define IIDR_REVISION            GENMASK(15, 12)
>>> +#define IIDR_IMPLEMENTER        GENMASK(11, 0)
>>> +
>>>    #define ARM_SMMU_CR0            0x20
>>>    #define CR0_ATSCHK            (1 << 4)
>>>    #define CR0_CMDQEN            (1 << 3)
>>> diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/ 
>>> passthrough/arm/vsmmu-v3.c
>>> index e36f200ba5..3ae1e62a50 100644
>>> --- a/xen/drivers/passthrough/arm/vsmmu-v3.c
>>> +++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
>>> @@ -3,25 +3,307 @@
>>>    #include <xen/param.h>
>>>    #include <xen/sched.h>
>>>    #include <asm/mmio.h>
>>> +#include <asm/vgic-emul.h>
>>
>> vgic-emul.h is intended to only be used in the vGIC code. I am fine if
>> you want to use it in vsmmu-v3.c but it needs to be renamed. Maybe to
>> vdev-emul.h.
>>
> 
> Sure, I'll rename it
> 
>>>    #include <asm/viommu.h>
>>> +#include <asm/vreg.h>
>>> +
>>> +#include "smmu-v3.h"
>>> +
>>> +/* Register Definition */
>>> +#define ARM_SMMU_IDR2       0x8
>>> +#define ARM_SMMU_IDR3       0xc
>>> +#define ARM_SMMU_IDR4       0x10
>>> +#define IDR0_TERM_MODEL     (1 << 26)
>>> +#define IDR3_RIL            (1 << 10)
>>> +#define CR0_RESERVED        0xFFFFFC20
>>
>> AFAIU, this is covering all the bits defined by the SMMU spec. But some
>> of them are optional. Does this mean we will expose those optional 
>> features?
>>
> 
> Right now only mandatory features are supported (SMMU_EN, CMDQ, EVTQ). 
> Most of the optional features are not advertised in the IDR registers, 
> so guests are not expected to enable or use them via CR0.

Guests are not trusted by default. So what is the guest tries to set them?

> 
> 
>>> +#define SMMU_IDR1_SIDSIZE   16
>>> +#define SMMU_CMDQS          19
>>
>> Can you add some details how you decided the size of the command and ...
>>
>>> +#define SMMU_EVTQS          19
>>
>> ... even queues?
>>
> 
> The CMDQ/EVTQ sizes are currently set to the architectural maximum. 
> Since there is no direct dependency on the underlying hardware queue 
> sizes, using the maximum supported value seemed like the simplest option.
> 
>>> +#define DWORDS_BYTES        8
>>> +#define ARM_SMMU_IIDR_VAL   0x12
>>
>> I am not sure which implementer this is referring to. But how do you
>> plan to handle errata? Are we sure they can always be handled by Xen?
>>
> 
> This is currently a dummy value used to avoid triggering guest driver 
> errata/quirk paths. I will replace it with a more meaningful value. 
> Using the Arm implementer ID with the remaining fields cleared should be 
> sufficient.

I am not sure to understand why would that value be unused. Do you have 
more details?

> 
> My expectation is that errata handling should remain in Xen rather than 
> the guest.

I am not fully convinced you will be able to apply all the errata in the 
hypervisor. At least with close to no cost.

[...]

>>>    /* Struct to hold the vIOMMU ops and vIOMMU type */
>>>    extern const struct viommu_desc __read_mostly *cur_viommu;
>>> +/* virtual smmu queue */
>>> +struct arm_vsmmu_queue {
>>> +    uint64_t    q_base; /* base register */
>>> +    uint32_t    prod;
>>> +    uint32_t    cons;
>>> +    uint8_t     ent_size;
>>> +    uint8_t     max_n_shift;
>>> +};
>>> +
>>>    struct virt_smmu {
>>>        struct      domain *d;
>>>        struct      list_head viommu_list;
>>> +    uint8_t     sid_split;
>>> +    uint32_t    features;
>>> +    uint32_t    cr[3];
>>> +    uint32_t    cr0ack;
>>> +    uint32_t    gerror;
>>> +    uint32_t    gerrorn;
>>> +    uint32_t    strtab_base_cfg;
>>> +    uint64_t    strtab_base;
>>> +    uint32_t    irq_ctrl;
>>> +    uint64_t    gerror_irq_cfg0;
>>> +    uint64_t    evtq_irq_cfg0;
>>> +    struct      arm_vsmmu_queue evtq, cmdq;
>>>    };
>>>    static int vsmmuv3_mmio_write(struct vcpu *v, mmio_info_t *info,
>>>                                  register_t r, void *priv)
>>>    {
>>> +    struct virt_smmu *smmu = priv;
>>> +    uint64_t reg;
>>> +    uint32_t reg32;
>>
>> Looking at this helper and the read one, I am bit surprised there is no
>> lock taken nor we check the access size.  Can you explain why?
>>
>> For instance, we should not allow 64-bit access on 32-bit register. The
>> rest of the size (8-bit and 16-bit) is IMP DEFINED so it may be easier
>> just not allow them.
>>
> 
> Most of the configuration registers are expected to be accessed in a 
> serialized manner by the guest driver, during driver initialization.

I am afraid we can't trust the guest to do the right thing... So we need 
to make sure this could not lead to an invalid state in the emulation.

Furthermore, on baremetal, when a two pCPUs are trying to write to the 
same address, you will be able to see value A or value B but not a mix. 
Without a lock, I don't believe this is upheld in your implementation.

[...]

>> NIT: The vIOMMU is per-domain so it is sufficient to print "%pd".
>>
>>> +               v, info->dabt.reg, (unsigned long)info->gpa & 0xffff);
>>> +        return IO_ABORT;
>>
>> Per section 6 of the SMMU:
>>
>> "
>> For all pages except Page 1, undefined register locations are RES0. For
>> Page 1, access to undefined/Reserved
>> register locations is CONSTRAINED UNPREDICTABLE and an implementation
>> has one of the following behaviors:
>> [...]
>> "
>>
>> Here you seem to implement page0 so the default case should be write
>> ignore and therefore IO_HANDLED should be returned. BTW, you don't seem
>> to handle page1. Is this going to be handled later on?
>>
> 
>    From page1, right now only EVTQ registers are emulated. PRI is not 
> supported, but might be needed in the future for the PCI support (PRI 
> queue registers also belong to page1, but not emulated atm)
> So I think that page1 will be handled when PCI support is completed.

I am a bit confused with this answer. Are you saying you will handle 
page1 for the event queue register in another patch in this series?

> 
>>> +    }
>>> +
>>>        return IO_HANDLED;
>>>    }
>>>    static int vsmmuv3_mmio_read(struct vcpu *v, mmio_info_t *info,
>>>                                 register_t *r, void *priv)
>>>    {
>>> +    struct virt_smmu *smmu = priv;
>>> +    uint64_t reg;
>>> +
>>> +    switch ( info->gpa & 0xffff )
>>> +    {
>>> +    case VREG32(ARM_SMMU_IDR0):
>>> +        reg  = FIELD_PREP(IDR0_S1P, 1) | FIELD_PREP(IDR0_TTF, 2) |
>>
>> As the page-table will be used by the HW, shouldn't TTF reflect what the
>> HW supports? This would allow the vIOMMU to work for 32-bit domains.
>>
> 
> If my understanding is correct, Xen SMMU driver only supports AArch64 
> table format, so I think that we can't advertise 32-bit table format in 
> the emulation layer even if the hardware supports it.

Do you mind pointing me to the code? The page-tables are shared between 
the SMMU and the CPU. So we ought to support both.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sun May 24 15:22:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 15:22:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318719.1586773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRAep-0005qJ-GV; Sun, 24 May 2026 15:22:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318719.1586773; Sun, 24 May 2026 15:22:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRAep-0005qC-Dm; Sun, 24 May 2026 15:22:27 +0000
Received: by outflank-mailman (input) for mailman id 1318719;
 Sun, 24 May 2026 15:22:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wRAen-0005q4-RC
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 15:22:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRAen-00BQUy-7G
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 17:22:25 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a13176d-bab6-0a2a0a5309dd-0a2a450bc806-26
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 17:22:25 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a1317b0-212f-0a2a450b0019-d1558035b0d9-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 17:22:25 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-49039a8851fso32451765e9.2
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 08:22:24 -0700 (PDT)
Received: from ?IPV6:2003:ca:b727:851f:6065:3b2:383f:b228?
 (p200300cab727851f606503b2383fb228.dip0.t-ipconnect.de.
 [2003:ca:b727:851f:6065:3b2:383f:b228])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-490454cfcaesm178920795e9.4.2026.05.24.08.22.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 24 May 2026 08:22:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779636144; x=1780240944; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HmEAwjes32EorWsWlnfEI2UTf+gI2ldQv49cV02s4QQ=;
        b=HSNohEXLTn+LYn6bqpz9S+MVEN2GmxNbEL8lZpionhfSheyNSxr92ovjV6hbuZFJTi
         SfbmVSb+ADMgfb4akT9SV8McrarKwXs8OUhNpXjJfuIfefRaecw711gbMJLvMtnnXCkB
         ad5vxdF/XXvcLfzSpdqSnoAf5EdEyyP3TTelrl03e6rUyDLBJoO+xRIgCc76moSOvI0o
         jYRTZPgYLJYhj58WQpRk9q2N8nAIzm4fyYvX9YWazi1O43HzSWG9hmAcCzWSa1ThPrT7
         ESoiZShMnNgwYOXNu5rXzRvKCrgCYWSj5uYSroF6RYcq/UMqI1kcUcxs7fUoZI2qjAmV
         r7qg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779636144; x=1780240944;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HmEAwjes32EorWsWlnfEI2UTf+gI2ldQv49cV02s4QQ=;
        b=f4ohYJr9ETYGwPmopYIt/cZrRQn4WByFICk081Tu7mRGiBijjOW54n19mFFYGIF25H
         YcitNWQNKajXoJo52KcBJmSAyB5V2m2m7Aj6k2EEWSEIqZU6SzQ8Xmm2TNF5tPHXMtjV
         4fFqOhPqPliouAooogCWZDTiLbazwi3rgry6f7X5Kl4Byg3Q0JHUgKa6+q3c5bw9cRTL
         Fsmr2Hl1xcuk4mwlIHlegEPkzp88lQvgiJUd+AF5lQGQrwwBr8HAh2YAzZh4oFhgSwBa
         LzFfVkzNsUfMEsUMbSy2V7YSFqDK41ZdUHXg5qvYVV5QTKRel+T0bzhxNqr4RLBFJI8n
         nCaA==
X-Forwarded-Encrypted: i=1; AFNElJ9i9MXYGp9AUxub2Nc58L5WlpOEYTkXUSYd96P7ZCj/exNSmL7WAXq0xdIxnXPFAsCoy02bHh6ERcg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxWm1oJ4DG8UNsu/1MTzA3xUCrE08A2EDXpnuOGJ+EP1bOIVAOI
	urMrYnEdrmAoHTDUifDakUcZ7Ir2k+ktA3ISC0p6kgtUiJMHL/9est9+orHRnUYqgw==
X-Gm-Gg: Acq92OGW1wvCgf33dRV5Afv3Czx2+pS9fq9VzYPpO6i5Q0mf46QUP9UOt0VLU5YKc1X
	aOeOHpm9G02NpvrTrhnAsXJwiY7XkufnFhpH03y6FzvLpHq1p4GkChwfNbLjY/aKv2fiXMQQckZ
	0aZFh0Jtquj3h8uCvvCrxGYU6kalIW3zOG4V99UGqdkqWu9oPFxOMM6BE2EGeLsEHfonEJ5r0Gv
	7AAqw327/hOueC6wTRyQ7LMhnRaomEy0v87xh5jKr9VVYqCIcLsz0FPRdcgryuiJ2fWQWtqZ6EX
	iwXUTKoXj43S8Mm5s3U/Mw2sJuQDZ5SRk5B9mXQGGwihQEDEZjfQYi+PhwBFeIDGQCgNsEtyjqe
	ArP1ZKKtbuEIYJVjt7OS7ZkqZvpNW1HHJxjxiPaBvQTg0St30pHrpi6fqLnP+hauW3b0g8T/INE
	uVtfQbs4F4pt+dZAjH0PGMxLKaORWSE9pK+VtiyN4QQ9bGV7VM/n4QQTfoEV952VHpqPDoEenpx
	gNmawKC5+fep0pZJTw28eZaeTW9Zep6DeMyeJwLulKGRRZtqzxLTbp41A==
X-Received: by 2002:a05:600c:6383:b0:490:4717:970f with SMTP id 5b1f17b1804b1-4904717984dmr168504635e9.14.1779636144459;
        Sun, 24 May 2026 08:22:24 -0700 (PDT)
Message-ID: <50a4d56e-6adb-442c-ae98-1922315706ba@suse.com>
Date: Sun, 24 May 2026 17:22:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/21] xen/device-tree: Parse 'cpu-map' node for CPU
 topology exploration
To: Hirokazu Takahashi <taka@valinux.co.jp>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech,
 michal.orzel@amd.com, julien@xen.org, roger.pau@citrix.com,
 sstabellini@kernel.org, jgross@suse.com, bertrand.marquis@arm.com,
 Volodymyr_Babchuk@epam.com, dfaggioli@suse.com, gwd@xenproject.org,
 xen-devel@lists.xenproject.org
References: <20260524000209.292370-1-taka@valinux.co.jp>
 <20260524000209.292370-8-taka@valinux.co.jp>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260524000209.292370-8-taka@valinux.co.jp>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1779636145-20479F3B-75FB875E/0/0
X-purgate-type: clean
X-purgate-size: 1874

On 24.05.2026 02:01, Hirokazu Takahashi wrote:
> Parse the 'cpu-map' node in the Device Tree to extract CPU topology
> information. If the 'cpu-map' node is absent, fall back to
> generating the topology data from the NUMA information. This
> generation assumes exactly one socket per NUMA node and that SMT
> is unsupported.
> ---
>  xen/arch/arm/smpboot.c                |   6 +
>  xen/common/Kconfig                    |   7 +
>  xen/common/device-tree/Makefile       |   1 +
>  xen/common/device-tree/cpu_topology.c | 307 ++++++++++++++++++++++++++
>  xen/include/xen/cpu_topology.h        |  42 ++++
>  5 files changed, 363 insertions(+)
>  create mode 100644 xen/common/device-tree/cpu_topology.c
>  create mode 100644 xen/include/xen/cpu_topology.h

Nit: New files' names want to use dashes in favor of underscores.

> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -188,6 +188,13 @@ config VM_EVENT
>  config NEEDS_LIBELF
>  	bool
>  
> +config DT_CPU_TOPOLOGY
> +       bool "Device tree based CPU topology support (UNSUPPORTED)" if UNSUPPORTED && ARM

Instead of open-coding ARM here (and also in patch 03), please consider
using another ...

> +       depends on HAS_DEVICE_TREE_DISCOVERY

... HAS_*, just like you make use of an existing one here.

> --- a/xen/common/device-tree/Makefile
> +++ b/xen/common/device-tree/Makefile
> @@ -11,4 +11,5 @@ obj-$(CONFIG_DOMAIN_BUILD_HELPERS) += kernel.o
>  obj-$(CONFIG_STATIC_EVTCHN) += static-evtchn.init.o
>  obj-$(CONFIG_STATIC_MEMORY) += static-memory.init.o
>  obj-$(CONFIG_STATIC_SHM) += static-shmem.init.o
> +obj-$(CONFIG_DT_CPU_TOPOLOGY) += cpu_topology.o
>  obj-$(CONFIG_DEVICE_TREE_NUMA) += numa.o

Again for here and (apparently) an earlier patch in the series: This
file looks to be sorted alphabetically. Please don't blindly add to
the end.

Jan


From xen-devel-bounces@lists.xenproject.org Sun May 24 15:24:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 15:24:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318725.1586783 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRAh5-0006Iw-Sf; Sun, 24 May 2026 15:24:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318725.1586783; Sun, 24 May 2026 15:24:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRAh5-0006Ip-Pe; Sun, 24 May 2026 15:24:47 +0000
Received: by outflank-mailman (input) for mailman id 1318725;
 Sun, 24 May 2026 15:24:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1wRAh4-0006Ii-Hm
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 15:24:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRAh3-00BQfG-QI
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 17:24:45 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a13181f-bab6-0a2a0a5309dd-0a2a450abbb8-8
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 17:24:45 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jbeulich@suse.com>)
 id 6a13183d-56b3-0a2a450a0019-d155dd2cad9b-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 17:24:45 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-459bf19e87bso5128602f8f.1
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 08:24:45 -0700 (PDT)
Received: from ?IPV6:2003:ca:b727:851f:6065:3b2:383f:b228?
 (p200300cab727851f606503b2383fb228.dip0.t-ipconnect.de.
 [2003:ca:b727:851f:6065:3b2:383f:b228])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d48e23sm19066355f8f.20.2026.05.24.08.24.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 24 May 2026 08:24:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779636285; x=1780241085; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wz0ce+1bAd2vC1HYkRJekSw0wiuP/YDW2GhoK1lI1CY=;
        b=FKYVQOFFF7TWT/ghzBgv/SKcMqOQlOmrStwfMBUGvKtPOVRCheRoZPSAao5knSo1QQ
         1rCZcYQB2IuyPVuBQrZghT7k76tenRIRhy7l3wZy3nnguoqwrsPn+ksZ9hOxluiEAUsO
         b02acb5N5WLCDviyPS3jUxLH/pZbVOxVf8n2v42j7tQLSCSdJSI8WsftZWS9Bi9+7JIc
         2ohijxQJh6E7pqHL5tnxgIAn3vr8odfjpOYZh7E/BLWDlCOMQOBC5VVQ1djqGsj9kDHw
         RIUyx3sGWBDT3lXOAYG/tEgrdCiUeMPqW6mOqMALWtZ05z3fLGSlkRqBUnVp9bftZ+eT
         VAlA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779636285; x=1780241085;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wz0ce+1bAd2vC1HYkRJekSw0wiuP/YDW2GhoK1lI1CY=;
        b=NziIgYACSTPi2M0bWWA1qZnF61forraGnuaOjLrCYzmRgVmOKos65K/PMR3jFUN14R
         1DZY5jxDkt2a6cJAgLogW7GZ4fZIb8UDl9quzr2Q7+iCnYEYJlRABPT56/YrEQxTflp9
         CbuRKT4D7A8aHTy5yQI1KF6zpaKXbEOg+ky70/vCZlR4Ld3i2KGPOiZbLqyKQ20lA/Zw
         NE/XXQr52xuyovgDZ7IGV3gG6f5gT+CmwJu5dnptT4q6e80v/WklZAXcG874spQ6Tnpv
         fVKvHAm5Vr9HuQXOJ67bx/3S6EuycAZEQ4ELTAsoNf3natfoJVUVdD2+hnM64a8PTGqI
         3GQA==
X-Forwarded-Encrypted: i=1; AFNElJ/3D4/76isbk1gPEpzzGydiVjSxdxq7yY2YI0AJTuZsjOay0jDzgKHDcliYvwTwtkJtdS/hKBqlvnw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzOgbQfUr2DlxuOtG5tUwj/uRHagPpw7aeuCSD2yuVc+vTQwURM
	OlVvZ4AHucXBAubdz3YaDvtv8kOpNQVWHhPrk+EKUZvvzFA3uEG0UacNJkGbkqv1FQ==
X-Gm-Gg: Acq92OGVqY2RdMmPFCM4cbpfnQqQbC3YwR3fhE0+kur+K6jUaJuCfAUbPGzwoJIHUs9
	XKcnrFIk20ABiuIrRvK/QghJere11j7TAF5rSDveo8oyEzchnawYqrvMVeuN9Tvej/sPHwSaUoC
	Kw/KTW0tWwy6OFhqr4UqNc9Rsjwuoieo2rmQGdcmt5gPxE9YVDMVqr2Bch0BcsOABeAACDyhE6A
	PFmH9Bu+IYIH8AmfbXlhf/T7VhWLhHEB6rtQDiImdx8lEQUNhU3MUWK1dasxxvZ5hl0L3scKoK9
	FVphthlUZt/z/u1zh6bDPa7Rg8OXQsbsitpoB7Tfz5Woz7dyvX4cmjyYWtn0LY6Nfu8nmVoqN4U
	MqDHl1wYkH5TLefItz9DxRRW5AGBZFjX0ItvPAxkxhYgL2nQvic6qGf0SmM84DnoSzrAvCgV4Ij
	r1vrnId75I4N7UB8ZrLqa64oLYwo42eyK+WixTXlaVteAnJO8Td7kPcC/tSK6Az0QI++m4/Inok
	i/WGLj9uOjzcz9t99t5XDVqNcEGJuBCJj/pwx/Nbs144tgm1beWhso9NXlSzDiTfE+W
X-Received: by 2002:a05:6000:2003:b0:43b:4136:1e6f with SMTP id ffacd0b85a97d-45eb38e4b46mr18775261f8f.38.1779636285246;
        Sun, 24 May 2026 08:24:45 -0700 (PDT)
Message-ID: <b9ccc68d-011f-478f-9911-94c746b2a930@suse.com>
Date: Sun, 24 May 2026 17:24:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/21] xen/sched: Link CPU topology to scheduler and
 display via xl info
To: Hirokazu Takahashi <taka@valinux.co.jp>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech,
 michal.orzel@amd.com, julien@xen.org, roger.pau@citrix.com,
 sstabellini@kernel.org, jgross@suse.com, bertrand.marquis@arm.com,
 Volodymyr_Babchuk@epam.com, dfaggioli@suse.com, gwd@xenproject.org,
 xen-devel@lists.xenproject.org
References: <20260524000209.292370-1-taka@valinux.co.jp>
 <20260524000209.292370-9-taka@valinux.co.jp>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260524000209.292370-9-taka@valinux.co.jp>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1779636285-7357C8B7-2B499D98/0/0
X-purgate-type: clean
X-purgate-size: 542

On 24.05.2026 02:01, Hirokazu Takahashi wrote:
> --- a/xen/include/xen/cpu_topology.h
> +++ b/xen/include/xen/cpu_topology.h
> @@ -14,6 +14,9 @@ struct cpu_topology {
>      cpumask_t thread_sibling;
>      cpumask_t core_sibling;
>      cpumask_t cluster_sibling;
> +    int to_core;
> +    int to_socket;
> +    int num_siblings;
>  };

What significance do the to_ prefixes have here? And what's the meaning
of any of the fields holding negative values? (If they can't hold
negative values, use unsigned int please.)

Jan


From xen-devel-bounces@lists.xenproject.org Sun May 24 20:25:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 20:25:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318863.1586792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRFNz-0003rV-QL; Sun, 24 May 2026 20:25:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318863.1586792; Sun, 24 May 2026 20:25:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRFNz-0003rN-M9; Sun, 24 May 2026 20:25:23 +0000
Received: by outflank-mailman (input) for mailman id 1318863;
 Sun, 24 May 2026 20:25:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wRFNy-0003rH-Ia
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 20:25:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRFNx-00GPJN-V9
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 22:25:21 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a135dd5-e002-0a2a0a5209dd-0a2a4506913a-40
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 22:25:21 +0200
Received: from [52.101.83.85]
 (helo=GVXPR05CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a135eb1-7371-0a2a45060019-346553559b65-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 22:25:21 +0200
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by PAVPR03MB9139.eurprd03.prod.outlook.com (2603:10a6:102:326::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Sun, 24 May
 2026 20:25:17 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 20:25:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=c7RHpd65NfnGHQgX/nPPADbQSBvE2S0CyNwFlOoPkL0WK0vPe+MZYV1ytwIX9b0uJNsJl4OV57TW61Wy2ug8Y4/JSjwZTTjwxnrtYDwg33tX5VLLOEdsDCVXC/KU7+TStH8m9kQR/0uIAQ2lbxVQVm0j9UFoQd7A7Lx0rbRcPfscC4vIHcmwre8Yw9gyG9Obwe1wzpS6oE85FtYlVZyIS3Nky4ffj7ag2BcUslBOrbSESKkJ/buZSGvarWDgWm0WmHN8t6TIO7IBs7X9rmaxicFzT7U9Tv08uhe/AE/SITPkSZ+KaO0MkLauRqwW5RKKT7smVM50F6bRW5PtEMrx0w==
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=fJSrfF7UcoH8NOB8+ckJAHDIq/zh+YzR3ayQy7s7zfc=;
 b=ejOcGiJAs5DAgJKDU9PIPUdhzFlycG/59ci5KMXrnEIdiRcEXDD7qekV8CInwmLNxtonNC3wRDiYrABDSWWzNg4w2VmBLMh15Svsy/B5Y+OT641dWaNCek8Wc7AokGyOet4UwY6Iw+7z4KkNqHvuC5f/Jxa+G0DiTcMQNoC4Z7ODs63ppwo+Lf4W9/s+Nveqi3A8oP61q8OHo9P9jvGQN4ilQKwyZ6KgRafanfPpa2A0/UQriRByzo4Ri7Hfw7Z7PZZzQGn4i8Y2EOaqLDqiZsuFGcFU/XjcZ4jMRGhI9BwwE6d/DlWEuvn++jmFUk3LsIzetFTs5ZMGvmzuFVvg2g==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fJSrfF7UcoH8NOB8+ckJAHDIq/zh+YzR3ayQy7s7zfc=;
 b=gGW5xDNIIaercRI6PFeQ54/m55t2FLeJcYCpBtWWp8JM9YkZjaivUymzdX1qwaUM8XwQpJ8NeAR5r44azC7A0jFOxD0gU+S9oJOTx16fT9CmYGnXfZCGwbgX8RIurl/xOVTQMl9/KlatfQ/krGWIuMDS5bnAcTSEjYibjGYGPWA8uaSMjePjjkZLQpgJ078n/WxdZv8xa75ybET+F2TgXiAUL8IRfZ7dZlxmpV8brAnf1QC6vc9CgZGudg1wO3pD7C8hirNtatPmboHkYS150mJGi4jM+DsfJF14ZrnyZ9m2s1coi+hcuus4QqAdnQ5rGl/T9VdsUOiwGJZCXZiZrg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2] xen/decompress: resolve MISRA R5.5 identifier/macro name
 conflicts
Thread-Topic: [PATCH v2] xen/decompress: resolve MISRA R5.5 identifier/macro
 name conflicts
Thread-Index: AQHc67tvI/8A7islCkmHlTX7cuCR9A==
Date: Sun, 24 May 2026 20:25:17 +0000
Message-ID:
 <025bc771fe1339dfae476037af86c6bfa1048382.1779654114.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|PAVPR03MB9139:EE_
x-ms-office365-filtering-correlation-id: 0ae133a2-a225-48be-a415-08deb9d291e8
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|42112799006|366016|38070700021|56012099003|18002099003|11063799006;
x-microsoft-antispam-message-info:
 3H4CDkBIVMicZJHBrkaav6op1fjPp67zbXdVZjNZo3lxIuT5JjPczW/S2FX69qtsg0ct8KYAGf418ubc7D3BWuS3nWC1qOlFQZAysv0C5PukumgF8m/cHaBICNH8aGGzuUbaaau8/Fbjq2qk6jopKTuAH9Royrs/3T/niYpnzQ8HZuQHPe12QHOVz0TjWjCI5Xy8Rl4hN2kN3CmqWmKensO2/P8tfNHQeSiWOrOyNFSyBf99/rQbpg9tztcRHCa9MgkNTLSdWjE3MijNweDJn0i9X9V5tf1977pMdHM4W5QXwNXDUOQVn1PLlStn+S2sdNfkVCXh+uB6MmgRRpROjEv8bruWlylUz/eY/QAdQe9QlvBkG92Aox4GxBPvwOczlU/4btTinRclaCB64VVy2kZN66Vj/vOvwkf9Pe4IHu1sSPf8zrr/R2/rtTdlvBqIKDMzJ6RgHUQRmlPinSUEpZCURKauaDu75YcFq6rJpIpIJUJ64NTRdOKXmdQAhabQz2PILVpCCF/J/303ahI0jpGmc9k8q49V+6PbAqqNlQH+HzM0cV60HgqkgpBoidhYIOqHfKo4u817Icn4P9nvp3rttJKLEnQkgaAaq6PishQ+v9sWwuPB+S2+2JySAEoIOl5afeR/B+sr0EYedGFvorcl3Y6csAUj7cLmDy4sVlGO9OaQJqpWHxnjz4BxQmqHfKHlon6J2HLmyLfgRH1KQg==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(42112799006)(366016)(38070700021)(56012099003)(18002099003)(11063799006);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?phoG3G09IqV7aGViZyqQY8SUbMm3TH+Y3bhfmkUlhGbeMElE5fkh4faxc+?=
 =?iso-8859-1?Q?XcH4MPhpNTV6lFRJJxapFIPXuolnSdUjmmUwDxTCHlChOv8/W9WwbohtUc?=
 =?iso-8859-1?Q?SKWbA32h7ga5ocAdWiSqPBnLu9urbZlriE9NTtPATohAIFcFqq6EdS2PBX?=
 =?iso-8859-1?Q?GgJfrBYquRQ20MIFEtXlKRzC1u1fBQ9Akl6qltcaJw5krG79itSrLlG2EP?=
 =?iso-8859-1?Q?wpaks4MZZPDG79Hv4WlLcqC7XylPT1T63YmnduvWq1kjG9bi65vXGsL1Jd?=
 =?iso-8859-1?Q?cINq1p8jz6LPNV3DIChCyxde5Qma4Y+3cV7jPY8p3csZztY4FdRYYb2lgu?=
 =?iso-8859-1?Q?ahGrhUoTRkUlFCl++OoPvY/n095wNYipYjbnzwxcso6sKr3s7SRxn3HSBg?=
 =?iso-8859-1?Q?shCGhbDVBtQPpZDUbGacPqcq6JCYkjXVBAP97eQLXAS1Am3P4YaAsgAHKt?=
 =?iso-8859-1?Q?Ay4GyVHUcVAEtMVFnLg/h7mnFZZ0N1gE0Xh+FBTMdca6YNrByaL7u2qVKy?=
 =?iso-8859-1?Q?A15PFlmnTy+wHPYPoygiBx5YmGEWafhWC4WDPg68I9V23Af/2E18qmktP5?=
 =?iso-8859-1?Q?HwxZ8Rvg8qktrxEc3qRXrmDTjbppC5DCHESqQ3jPDE5qAdy0F0lbkzbYsb?=
 =?iso-8859-1?Q?4HtA2uYgihhotnSk4BQ8goh51wtIRacJa80Ti3mexaiiegxkVTTNfRSMlZ?=
 =?iso-8859-1?Q?bkutJPQmzETmjPcBMHDp5R7D7oM6c5MCw3zNfjcO+VHzgDubrImhgugB4G?=
 =?iso-8859-1?Q?7Asij5ZSlgoHl0RIjZJe6iS4oqzDQCb2ptHHWwnSvWsyQYG+zphoC3YASs?=
 =?iso-8859-1?Q?5ZTYoUjCUUYlTft2AEXhsq1HK9TabB3EadMZK4Lv3enGwcJvzQYU3znQkW?=
 =?iso-8859-1?Q?/KEI5pu2ypQIk3+dLkX+QBFNaRxz+CFypxx3OPhzIcjbW5R/+jl5g7/oqS?=
 =?iso-8859-1?Q?H96y6GOeDjIjROipKdibElKeHORMtywCGlqhgUQJNVTDIGqVqMRfY9hXh4?=
 =?iso-8859-1?Q?4Wf+lsTqVq09TWaxUtkh5grp2rJ8D1559Xs0ENtiKGpWyOpkF9+1ccSCs0?=
 =?iso-8859-1?Q?B5pcQGQIivQgdw6QlU08w5nHoubhpJ6wAjcUfENFAwvtEFHwwZ7YMrTopq?=
 =?iso-8859-1?Q?IwzQOVPdYc/rMmY1zDR+sS1Iy3tbuKa6+2rpCDzJViZhcCPOYnVRcSfMES?=
 =?iso-8859-1?Q?62L95uycEnwf150TGCTbtoC97bQC5y6eIQH6bpmi+8RAuceHaKI+SPW2NL?=
 =?iso-8859-1?Q?kq0xdNUDd5/yqh0aiOiWUF8pRjUnrsBiH2lp6ayfJM+a7ydlkI4rrQz830?=
 =?iso-8859-1?Q?L1Kew8je7nIXWp3q1/JKfzjMDEcZjaZupgxp/FHEpgR02/7h/kBGTgAnFt?=
 =?iso-8859-1?Q?hsFufyiie8pthtmUHogPv/RCJPYP1tmV4mB6PU2A2H6H19tqEm2hc+HCUZ?=
 =?iso-8859-1?Q?8nTbZ/Q6hR/AzEkUtp9bSkbT1sWhMkwV5bH43Q/WtTMQKwK+rnOAq0pOug?=
 =?iso-8859-1?Q?PN0G++pQ9uZlmYTzbDkWYkqCWjdr8EP3ul2sV+P4p+C8hSs4Ppwk2llT3k?=
 =?iso-8859-1?Q?wRJSiOHMX98wx8gTNJ6EsMjrOR2lnN0GAAnDtrL/bqnXxedT0TCI8uqMEI?=
 =?iso-8859-1?Q?VrgHd+y7rzW1hdF9oGVl35Misu1X7xxxps40ISWoEV6mvqt2ukRjip2LcA?=
 =?iso-8859-1?Q?DiUNG98Tub/1UrcFNdcgiCJKTPQpEdShhUHdPWLyn4oroN7JAm2c2RHlgh?=
 =?iso-8859-1?Q?b7EjVp4954eHRUXoy5s4X9BahJYUlXM0YYnWhdFHTLza5pR8Bxi9RNGBCu?=
 =?iso-8859-1?Q?Wx1r07kaHd/rI7f7teg3E6o88RQ4vhI=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ae133a2-a225-48be-a415-08deb9d291e8
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 May 2026 20:25:17.5034
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: q5xIqHbX+21HprsdDVRbyPOqdYrysRRYBrua/QggjyUtNDlfsjjCxCEdV0PwW2pjDNe9iAq81glqziesMEo2yH1FbiL8tUC7tfKJtGiM1Kg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9139
X-purgate-ID: tlsNG-16d1c6/1779654321-8C47CD75-EA14523E/0/0
X-purgate-type: clean
X-purgate-size: 1690

Convert 'free' macro in 'decompress.h' from object-like to function-like
form.

The object-like macro '#define free xfree' performs unconditional text
replacement, causing conflicts with identifiers named 'free', such as
struct fields in 'page_info' unions defined in 'xen/arch/arm/include/asm/mm=
.h'.
Function-like macros only match when followed by parentheses, allowing
'free' to be used both as a macro and as a struct field without conflicts.

Applying function-like form to 'malloc', 'large_malloc' and 'large_free'
ensures consistent macro style.

Function-like macros also intentionally prevent uses where the underlying
function identifier is needed directly, such as taking a function pointer.
No such uses exist in the current Xen codebase.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Changes in v2:
- converted other macros for consistency
- updated commit message wording
Link to v1:
https://patchew.org/Xen/69ef81a2f85b35e6231ae389bf271cad2bbd7dfc.1779394622=
.git.dmytro._5Fprokopchuk1@epam.com/
---
 xen/common/decompress.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/common/decompress.h b/xen/common/decompress.h
index 034c833665..487856e1bc 100644
--- a/xen/common/decompress.h
+++ b/xen/common/decompress.h
@@ -9,11 +9,11 @@
 #include <xen/types.h>
 #include <xen/xmalloc.h>
=20
-#define malloc xmalloc_bytes
-#define free xfree
+#define malloc(a) xmalloc_bytes(a)
+#define free(a) xfree(a)
=20
-#define large_malloc xmalloc_bytes
-#define large_free xfree
+#define large_malloc(a) xmalloc_bytes(a)
+#define large_free(a) xfree(a)
=20
 #else
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Sun May 24 20:34:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 20:34:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318873.1586802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRFWV-0005aB-Jn; Sun, 24 May 2026 20:34:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318873.1586802; Sun, 24 May 2026 20:34:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRFWV-0005a4-F9; Sun, 24 May 2026 20:34:11 +0000
Received: by outflank-mailman (input) for mailman id 1318873;
 Sun, 24 May 2026 20:34:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wRFWT-0005Zi-4s
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 20:34:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRFWS-00GQ9I-H6
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 22:34:08 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1360bf-bab6-0a2a0a5309dd-0a2a4504e430-0
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 22:34:07 +0200
Received: from [40.107.74.109]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1360bd-1dec-0a2a45040019-286b4a6d19d3-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 22:34:07 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS3P286MB2325.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:152::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Sun, 24 May
 2026 20:34:01 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 20:34:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hR1P0BwZ/j/ImkyhYtDUQ2Tb9eD3vha4vqcr18X3Qi/pg3xBVAfOYmVon7pRybEvhj197i9B/HWiyFMyxOQZwociFqfPVTMYR5BxbgoNlo7g79m/tUSDC7BL41NWZ1SBvPFok8h0JQIxdq0hU1MRDhuJW9wSnkg8l/+Sd+WkIKkaA+4weyc+0YqKBqlq9dLXDRz/6I4QWumEIZjO42Zk4nBDfql4CK3i8cDtMWuHCEPOZ1/cB4BpTTsQxvf72Jjrm4grLtUhW90RUSK4iFGwaY91QKZ2eMudQs1PAHoQIaVg2W6AumdrDtizSBX7jZSF5Y67+sFTSHn6YaGgetCbBA==
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=nEoMXAXyDkp2zpC2ykC8ZKgQzCk0LzpMSuPq0fsUMnw=;
 b=m3vadv8gj6mFQNmhxh+VYGg9tmT8EkdRANA8248K3SxI/gcW00Lr7mDBFfBDiuPAVmrX6NNqu1LwJiE0IKeN5S5ohd8beYL/bqNQ1YIFvK+OjgZY46ndoHXm3K5LWJRpUi9jJ/T1kaQhfF3awqtjQMt1MBXec1GEUaqQnzflQf+KnOpvjjZ5OsF6QB55+iZMaqfND0rf52JPtL7PUsFc1dY+xttdb76E/oAN5V9skpMY/KHsg9F2gnPbQqkFfpBxemqiFftFguKfkMqrN8uJ9T1+MxBgP/w/O8r9HMN/Vc3wLpilg4LRIMtLOeIW8NtkLqR9gutYnlHWeEOAxeTbCw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nEoMXAXyDkp2zpC2ykC8ZKgQzCk0LzpMSuPq0fsUMnw=;
 b=EPUIGVnYebSAf14XJcqg3MPRsDF67EklIt3DBEXy7AneS2HVzc1stvaR3KlmUOsdeGCFcR9Fnab8Ms+oFA9rafLeMyX7pAMcL/Vd2QwQIIiwCuJDkeDs9dH40KGfCk2yreWXrif9BcW9iGQ/DKIf1LbVmi8se56ffBg9xHSFo2g=
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: Jan Beulich <jbeulich@suse.com>
CC: "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"anthony.perard@vates.tech" <anthony.perard@vates.tech>,
	"michal.orzel@amd.com" <michal.orzel@amd.com>, "julien@xen.org"
	<julien@xen.org>, "roger.pau@citrix.com" <roger.pau@citrix.com>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>, "jgross@suse.com"
	<jgross@suse.com>, "bertrand.marquis@arm.com" <bertrand.marquis@arm.com>,
	"Volodymyr_Babchuk@epam.com" <Volodymyr_Babchuk@epam.com>,
	"dfaggioli@suse.com" <dfaggioli@suse.com>, "gwd@xenproject.org"
	<gwd@xenproject.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH 07/21] xen/device-tree: Parse 'cpu-map' node for CPU
 topology exploration
Thread-Topic: [PATCH 07/21] xen/device-tree: Parse 'cpu-map' node for CPU
 topology exploration
Thread-Index: AQHc6xCjYQ+8FIQyC0GVlBooU9qyFbYdTBoAgABWAuA=
Date: Sun, 24 May 2026 20:34:01 +0000
Message-ID:
 <OS9P286MB7222D4520BDF3F2CCA4EAD8C820D2@OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM>
References: <20260524000209.292370-1-taka@valinux.co.jp>
 <20260524000209.292370-8-taka@valinux.co.jp>
 <50a4d56e-6adb-442c-ae98-1922315706ba@suse.com>
In-Reply-To: <50a4d56e-6adb-442c-ae98-1922315706ba@suse.com>
Accept-Language: ja-JP, en-US
Content-Language: ja-JP
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: OS9P286MB7222:EE_|OS3P286MB2325:EE_
x-ms-office365-filtering-correlation-id: 8be777f4-5b39-4638-6e5c-08deb9d3ca3e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|22082099003|56012099003|18002099003|38070700021|4143699003;
x-microsoft-antispam-message-info:
 39+0XsAalCqadQ+nYiGqrycD/1MjsLrjc/iWGgtGykN14GVo4yuvTCsDvql9PkhWa++/WfZ2l07NaE6lZcT5xrS+TIRflqnzYFRW2E7saIRylWH6WcqPXNKfdv/uKDSpyaIIEn4TUuUTD3auJ6mqruHKOhnGRg/x4pXz7TpQ580oUUMu2QN2nVTEYExZdUC1u4LpBDv2H0u+MG7tjk55Zup6gcpWBOTs9R83iMASjQObbKzyNcnOTTHjK1JxB3+fw/E1+oR2sPaDBx4BIesmPKx0ykf++bwGIB7DXOKGQ6Owg49K3tidBDp/XfQ8ZhXOW1ZCphLiZo+uBISlJR8eQ4zBpoA2cs0kGzd//KpbW2Zv1y1jU5Er4EFMBdp+16YHpXG5ZGlOaTEvytLcqHyRJt1QruTrsYf7f5Jrw0ieazBapB2HduKQVKEi9Q5LROieTpvZdGE4MiIHYct3+Xpyxxrtof8tTh/PGjM2GGCqvNN9j44TCA77dMevE6i6eicS2NZPDqt2Wub9+f6vOh36R2yzsRwEsEdG7fuMJ/GlbiFkc1cNFfhyMEU+T8Isdkao0Q4M5XxRxKaoE9bn5PHk+EZ6Kkl6vtG2lZfkWBHgjadHFadED3xMXF8wV9sUui4P45NygswUyX2kbUeJPbv+E0RqYTKFCdC3xs7y4PMEzf/rCkIRJ5LyXZt9Xgo90hXTrllK217ekZsSnCihZ/HlQHdvFtAS3fEeBWiRS6imvkuiweCVZsCCJwzXeWwMLgQq
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(22082099003)(56012099003)(18002099003)(38070700021)(4143699003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?aGE2c1FNK3FNU3RISlhYTnByZXk1dzJlN1VINFlBWjBVS1FvYnhZbXM1bHdS?=
 =?utf-8?B?L05RbUhGQXNYVWJqRXNIOU9VK1RQZjRHM1dzV2RQT2NYbmg3ZE4yb2J3RUxU?=
 =?utf-8?B?bFVNb2RyNG1jWU5Ja0tvRXl1ZEREWG53ZnVYa2ZpQWRIcDZlclZRbFNvZStq?=
 =?utf-8?B?YjNDVUdRL2h2bGo3dTcvMlpNWjE2RWp0eHY5bTErTmZlbnZJWkJ3VFlrUndM?=
 =?utf-8?B?TDUzMENBNEI5am9pcU9PeW83Tkc1ZUZocmJwYjRkNng0L2NnQzUzSDdUNWhH?=
 =?utf-8?B?Y0kvSXJGNTgrZDZZL0lObzRleStzbHVac1JYa3NrMlhMYnpMbnB1SVFoZ0Qw?=
 =?utf-8?B?YkxwVHo3RkV6SmwzMEcxL1NReXhLYkxpSlg0VDhqb016dVhITjBPMmY2MTJx?=
 =?utf-8?B?dVZGMk56Y1FObWd2a0RRczRiZ3R4YTE5QnFWWitSN21FcERia2pqdTJnbWZs?=
 =?utf-8?B?dmJyaStWRzFYSmpNWE8yV2JBSmczeDkySWlXUHQvNVRjVk1IZitXbTVrb2o0?=
 =?utf-8?B?Y0VTTmU2d1FYODJYNUp3bVlPNWNEYys1eGUzdE4yK2VpeUtCVzZpMDg4QUto?=
 =?utf-8?B?MkpIRjF5cTYwTXZ0ZlZVUkhnQmZJTElPWmxwTG5Wb0NHOXdpQXpUOEN5UW9t?=
 =?utf-8?B?L1NvdTRGMmtzNE16YmwrV0ZDZk9nbzRpMitXSXpwcmNjVWtSQkpvdlY5RHhv?=
 =?utf-8?B?NlRBU0J0WG9xc2pldjZiR3dmUmxYUmRRZG10OWUzU1BIbW9iTlphbHFGdEw2?=
 =?utf-8?B?WCtOcFl4UHdFU0tpZW1RR2JpRFYyZkd5Qzd2SS9SVjNlOE5obkFybVE4MndP?=
 =?utf-8?B?c0w0NnYrVXA1QzNFY3IzRVpJVXR1RVgyM3lJOVR5UXpJWHRlMENXeTZZMUdZ?=
 =?utf-8?B?M2VJRVpkM3lXR1lzT2RSYTR4VTB6c2l5cFR5TWhYQ0RFb05ldzlGSWVJaUha?=
 =?utf-8?B?T2tsemFCTjhTWXB2bHpISHRCWGlpQ0RKMzNkQVU4NGYzT3FVK0swUjdJUDlB?=
 =?utf-8?B?YWR6bTAzc2JDS0o4cEVlTEdVajNSRUxKMjltSGhyc0tVRmR5R0g2TzhWVmJO?=
 =?utf-8?B?aGMvMHVlSHRJem8ydG1KTzdhWTk4ZG1DV1NyZjRraTEzUS9xSE1kL0pyTGRx?=
 =?utf-8?B?ZDdjT3pUc0VwQ3pVTkhrZEpCdEV3QXR0Q25EOU9CWmFKK0JXNmpTNFduYk82?=
 =?utf-8?B?U2h2bnk0Tm13UDQ0U2h5MzJidmpYY20xNUNNM2pPZkd4YkRwM0c2SFRzeUY4?=
 =?utf-8?B?RlpDMitxSkNBZjJVTVd5aGM4OG11d2ZaWGZMOEV5TlAwam82THlZb3hPSDdR?=
 =?utf-8?B?bDUyWjV4NjVrS1NQS29pdGtBUmNtRzJIOVk3R0VZM0hFNU5Sc0gxVlNaQkhk?=
 =?utf-8?B?a09kVkRoUVJ3L2s2REpiRUJTYmVCZGZIWit5dXIwM3JXd3FTRC92dU1wZFNU?=
 =?utf-8?B?aUl4VVdMNWNZNTRpYno1SmhIK0gzRmpFS1pGVkZUeWhGTzQ1NCsrT2pPOEhZ?=
 =?utf-8?B?ZDhNaytqVDZrSVZ5UWFCUC8xclQ5a2l4TEw2ZUFPNjkrMXdIbzFYTnMxNGdB?=
 =?utf-8?B?KzdUZ0F6TXdlbXlCWW5rVDVqWWdoc2FVcWY0R2w4c0dvMWxvZnl5eUZEbWJw?=
 =?utf-8?B?Q2tRZ1VPQjVzTC92TXdPeTVCK041cVNQeUVnSGhXNjFyWEZqdmhDb2h2ZjhV?=
 =?utf-8?B?UUVPVEZaOFYvbHRRWWIya3NMTG92aGpBdkVWTGdZemZkRkxsT2tsOC9EbVlk?=
 =?utf-8?B?eWNvRnUxUXZEU1RuZlN6ckxGWXk4WHRmeHFTLzd6ellyZFZvbjdNOWJXbUh6?=
 =?utf-8?B?SGhINTJUeGY3YmdsV0IzYzJZM3BuWXZRUmxPTXJOSDZVeGNTUEdiTTMyUDQx?=
 =?utf-8?B?ZUcyQlV6UWpCL2tjUVBKRHk2b2ZRY1BjY0hpYlB0TnhFZHJ3UjUzSTEzUW9Q?=
 =?utf-8?B?YVhqaTJIMzBUMS9QYUVNVDZjeXZtLzNBM0dzamk2YzNaN3VCQXNqOEsxL0Fz?=
 =?utf-8?B?bXhuR1JIeEdSNzEvWm4raDloTFpDY2Q4SVFoQ2F1Y3FtcXdaY0E2bU9jM1Ey?=
 =?utf-8?B?NzEyZEVMZkFZM0QrUHpLQkV2LzNWcjhZcXJKc1RvOFJmeis5TjJoYUl4VmNY?=
 =?utf-8?B?dnBkNksyLzNLWDgxOVBYT1IxWkNIV3E1ckxWUWQ3N3pPb1d6YjRSK3R0Slhm?=
 =?utf-8?B?d2swRWdieXNDZVAxdk5wZktUQmpOT3B5Y0FRSWNuZTVtV05mUXRBKzEwa0pY?=
 =?utf-8?B?NmRVMG1rTGJ5R2hVZzZDeENiNklWL0NqN0pjN2ZPOEtDZVVCamV3UnJEenhT?=
 =?utf-8?Q?Q0QWHQv9ACV8swWP5w?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 8be777f4-5b39-4638-6e5c-08deb9d3ca3e
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 May 2026 20:34:01.5330
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: OqNIfpauWrycANGOJOpuOc0Uvh7cFBksImTGqwIUZSVZFnuxSaxrdO4uFF1fG+RB/ThLtk08al0OEp9t+B9fTg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3P286MB2325
X-purgate-ID: tlsNG-ebf023/1779654847-4217E3FF-4C9A7B14/0/0
X-purgate-type: clean
X-purgate-size: 2662

SGVsbG8sDQoNCj4gPiAgeGVuL2FyY2gvYXJtL3NtcGJvb3QuYyAgICAgICAgICAgICAgICB8ICAg
NiArDQo+ID4gIHhlbi9jb21tb24vS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgfCAgIDcgKw0K
PiA+ICB4ZW4vY29tbW9uL2RldmljZS10cmVlL01ha2VmaWxlICAgICAgIHwgICAxICsNCj4gPiAg
eGVuL2NvbW1vbi9kZXZpY2UtdHJlZS9jcHVfdG9wb2xvZ3kuYyB8IDMwNw0KPiArKysrKysrKysr
KysrKysrKysrKysrKysrKw0KPiA+ICB4ZW4vaW5jbHVkZS94ZW4vY3B1X3RvcG9sb2d5LmggICAg
ICAgIHwgIDQyICsrKysNCj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAzNjMgaW5zZXJ0aW9ucygrKQ0K
PiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2NvbW1vbi9kZXZpY2UtdHJlZS9jcHVfdG9wb2xv
Z3kuYw0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2luY2x1ZGUveGVuL2NwdV90b3BvbG9n
eS5oDQo+IA0KPiBOaXQ6IE5ldyBmaWxlcycgbmFtZXMgd2FudCB0byB1c2UgZGFzaGVzIGluIGZh
dm9yIG9mIHVuZGVyc2NvcmVzLg0KDQpvaywgSSB3aWxsIGZpeCB0aGlzIGluIHYyLg0KDQo+IA0K
PiA+IC0tLSBhL3hlbi9jb21tb24vS2NvbmZpZw0KPiA+ICsrKyBiL3hlbi9jb21tb24vS2NvbmZp
Zw0KPiA+IEBAIC0xODgsNiArMTg4LDEzIEBAIGNvbmZpZyBWTV9FVkVOVA0KPiA+ICBjb25maWcg
TkVFRFNfTElCRUxGDQo+ID4gIAlib29sDQo+ID4NCj4gPiArY29uZmlnIERUX0NQVV9UT1BPTE9H
WQ0KPiA+ICsgICAgICAgYm9vbCAiRGV2aWNlIHRyZWUgYmFzZWQgQ1BVIHRvcG9sb2d5IHN1cHBv
cnQgKFVOU1VQUE9SVEVEKSIgaWYNCj4gPiArVU5TVVBQT1JURUQgJiYgQVJNDQo+IA0KPiBJbnN0
ZWFkIG9mIG9wZW4tY29kaW5nIEFSTSBoZXJlIChhbmQgYWxzbyBpbiBwYXRjaCAwMyksIHBsZWFz
ZSBjb25zaWRlciB1c2luZw0KPiBhbm90aGVyIC4uLg0KDQpvaywgSSB3aWxsLg0KDQo+ID4gKyAg
ICAgICBkZXBlbmRzIG9uIEhBU19ERVZJQ0VfVFJFRV9ESVNDT1ZFUlkNCj4gDQo+IC4uLiBIQVNf
KiwganVzdCBsaWtlIHlvdSBtYWtlIHVzZSBvZiBhbiBleGlzdGluZyBvbmUgaGVyZS4NCg0KSG93
IGFib3V0IHRoaXM/DQoiZGVwZW5kcyBvbiBERVZJQ0VfVFJFRV9QQVJTRSINCg0KQW5kIEknbSB3
b25kZXJpbmcgb25jZSB0aGUgVU5TVVBQT1JURUQgdGFnIGNhbiBiZSByZW1vdmVkLCBJIHdvdWxk
IGxpa2UgdG8gZWxpbWluYXRlIERUX0NQVV9UT1BPTE9HWSBhbmQgbWFrZSB0aGUgQ1BVIHRvcG9s
b2d5IGZlYXR1cmUgYWx3YXlzIGVuYWJsZWQgd2hlbmV2ZXIgRGV2aWNlIFRyZWUgaXMgc3VwcG9y
dGVkLg0KDQo+ID4gLS0tIGEveGVuL2NvbW1vbi9kZXZpY2UtdHJlZS9NYWtlZmlsZQ0KPiA+ICsr
KyBiL3hlbi9jb21tb24vZGV2aWNlLXRyZWUvTWFrZWZpbGUNCj4gPiBAQCAtMTEsNCArMTEsNSBA
QCBvYmotJChDT05GSUdfRE9NQUlOX0JVSUxEX0hFTFBFUlMpICs9IGtlcm5lbC5vDQo+ID4gIG9i
ai0kKENPTkZJR19TVEFUSUNfRVZUQ0hOKSArPSBzdGF0aWMtZXZ0Y2huLmluaXQubw0KPiA+ICBv
YmotJChDT05GSUdfU1RBVElDX01FTU9SWSkgKz0gc3RhdGljLW1lbW9yeS5pbml0Lm8NCj4gPiAg
b2JqLSQoQ09ORklHX1NUQVRJQ19TSE0pICs9IHN0YXRpYy1zaG1lbS5pbml0Lm8NCj4gPiArb2Jq
LSQoQ09ORklHX0RUX0NQVV9UT1BPTE9HWSkgKz0gY3B1X3RvcG9sb2d5Lm8NCj4gPiAgb2JqLSQo
Q09ORklHX0RFVklDRV9UUkVFX05VTUEpICs9IG51bWEubw0KPiANCj4gQWdhaW4gZm9yIGhlcmUg
YW5kIChhcHBhcmVudGx5KSBhbiBlYXJsaWVyIHBhdGNoIGluIHRoZSBzZXJpZXM6IFRoaXMgZmls
ZSBsb29rcyB0bw0KPiBiZSBzb3J0ZWQgYWxwaGFiZXRpY2FsbHkuIFBsZWFzZSBkb24ndCBibGlu
ZGx5IGFkZCB0byB0aGUgZW5kLg0KDQpvaywgSSB3aWxsLg0KDQpUaGFua3MgZm9yIHlvdXIgYWR2
aWNlLg0K


From xen-devel-bounces@lists.xenproject.org Sun May 24 20:37:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 May 2026 20:37:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1318885.1586810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRFZZ-0006CF-3V; Sun, 24 May 2026 20:37:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1318885.1586810; Sun, 24 May 2026 20:37:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRFZZ-0006C8-06; Sun, 24 May 2026 20:37:21 +0000
Received: by outflank-mailman (input) for mailman id 1318885;
 Sun, 24 May 2026 20:37:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wRFZX-0006C2-Pl
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 20:37:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRFZX-002icK-5x
 for xen-devel@lists.xenproject.org; Sun, 24 May 2026 22:37:19 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a13614f-2eae-0a2a0a5409dd-0a2a450c96d0-20
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 22:37:19 +0200
Received: from [52.101.229.112]
 (helo=TY3P286CU002.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a13617c-62f1-0a2a450c0019-3465e570df67-3
 for <xen-devel@lists.xenproject.org>; Sun, 24 May 2026 22:37:18 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by OS3P286MB2325.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:152::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Sun, 24 May
 2026 20:37:15 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0048.016; Sun, 24 May 2026
 20:37:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Jl2VRAS++AK2N9p0S2W2sNnFYtcrcxM6gWfg0mcOWxSha5JkT6Crb8gPWUsYisA88RKPcQo1cYECPgSneYnVUWx2mW3/0q4dGppVyHVtok02KVr1cxrOgkK+zz8IaDXqEtrL/lHLiybaZcc6NwjYjUUHe9nF0yuWtTzB5h5vVlD645crJuHLHpWGXoHfc2WsdTW2hRLwPhcupfikGIwFB7alIfp+6b1VXT64FJU8/CbgAZhRBzYd+qsfZcfuCCM1Kltk2KKI1bQybvzaTjYJJWaejLggI1X5+8Qaa8JIUeQvy5huXUlJ+Kvof5I1ALPOp2mtndsIUyZYONaVkVGK9A==
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=vuLWY8E/UoAVMi1CTfubagCsoMAjzmZBXHgxmR2lN2M=;
 b=QIZxCe5xXskVKblfFTkAz7rndZXpXUQ2vKTWi4WQEDg6csnvnGHXJc27wPgzYZSCBLPOf9SzaXEjxw23Qoj4/hB5dqKALcNI+Eg+HvPnazzhzYY7D75ldAdilryWscJR4hj/TI+8BfITbEVV577OQC+TNBS8OKWRB9DSvdBX3eMNAxCyg51Z5OzBqAuey5ZHiBYfPZ46iHm+G7eYHJqopNyzYDqa6eJZavNJHrg6dcpMiMmdJKVSFxPWK1QyAY/kuZrPT4gG5xA7JMm5GasmRk2UCj/9CN8Y6MoVyuHS5ChlSZMu+Yi8OZYINcRMTzecvVjYF8jOPQYnZ+ZTk1zybg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vuLWY8E/UoAVMi1CTfubagCsoMAjzmZBXHgxmR2lN2M=;
 b=sf7fv4F8gb80WVmgiNPDF0Sw9/rX24i7d0jSp63gnW00GSLYqbjjAVPj6ZoiLFCA6aRr2V9SiWPIUFJAfGxYsOdPq0bIylwNukH28Skt5OkCKIaQLDMiKeViTdhWWe/GJUKbJ3Gn3Yj+XCzPbyAIxTsJW0VvP7mMsL86lp3v6OQ=
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: Jan Beulich <jbeulich@suse.com>
CC: "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"anthony.perard@vates.tech" <anthony.perard@vates.tech>,
	"michal.orzel@amd.com" <michal.orzel@amd.com>, "julien@xen.org"
	<julien@xen.org>, "roger.pau@citrix.com" <roger.pau@citrix.com>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>, "jgross@suse.com"
	<jgross@suse.com>, "bertrand.marquis@arm.com" <bertrand.marquis@arm.com>,
	"Volodymyr_Babchuk@epam.com" <Volodymyr_Babchuk@epam.com>,
	"dfaggioli@suse.com" <dfaggioli@suse.com>, "gwd@xenproject.org"
	<gwd@xenproject.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH 08/21] xen/sched: Link CPU topology to scheduler and
 display via xl info
Thread-Topic: [PATCH 08/21] xen/sched: Link CPU topology to scheduler and
 display via xl info
Thread-Index: AQHc6xClRaEaMKd2V0q5p1f04gDybbYdTMKAgABWeWA=
Date: Sun, 24 May 2026 20:37:15 +0000
Message-ID:
 <OS9P286MB72224573F9FC2D8E34AFE8FB820D2@OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM>
References: <20260524000209.292370-1-taka@valinux.co.jp>
 <20260524000209.292370-9-taka@valinux.co.jp>
 <b9ccc68d-011f-478f-9911-94c746b2a930@suse.com>
In-Reply-To: <b9ccc68d-011f-478f-9911-94c746b2a930@suse.com>
Accept-Language: ja-JP, en-US
Content-Language: ja-JP
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: OS9P286MB7222:EE_|OS3P286MB2325:EE_
x-ms-office365-filtering-correlation-id: 8883ec78-cffb-4bd5-6391-08deb9d43dc3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|22082099003|56012099003|18002099003|38070700021|4143699003;
x-microsoft-antispam-message-info:
 nj1HCce51Yk3UnUnvpkQ8GfWldog+nL4ko8hrlSK7uj4tl5Yf8O6sp+2SMgHs7Z0UCo1piK8PKT6C7W8GMIOZbHpjIfgs5Wg59DUH6wb0fWMam1iT+5M4n27bzMlPrTAS7cdLf4fKDkLes+OePiEDfE9XO83gzW6/Ca4mGjY0Q/XxaxrtkJfCjn4hHKsDEPfdC3ZjDfG5vPLKc7v3NZyz3oo+zwAfRZH9hJXLF8tAmn+J9PgsnMu4oHfuJKn+mNdGXd5TIh2wNNr9DmfOLSFCHBvASHp/Q7vEXL4CSNyL6n+OWZxF2oL4QLLkF6V0/yTLfUC+GeIdVbqICFLiyQCqTxBmLvqRZtGw4BpWlCT91pJjRs7dnvEflkCUPWO9rLq7cuOBVkFQN0nYL4sdTT5r1ZVdRpE+/+5MV6PRgLYYspnMKFPrUxofbLkTwtt0ZcNMixTmVeaMoSoDAPCcBH0pQOaKXVh2m7pBDOgZAqot2tQafeTobFz7SYz2AOCoO7PZIHgDDbfsaRfAXm+CJwHKyEn6YVwZSf0Ux56iEYKa9FQm3mY7vDloMCCofL89VPcSNGjEcMH63CRmpPE1lf3oCfYBeVxS74UERzQE2q+I7xbUXYT+mbkrk+X9PVt2moGPJxgKiVP8qTUuWCJf+A/UT/Lw5BlPiXSFAKuxCSlqU6QLeLoRx2oq4fbtQqXqy4ykdVJY1w9ArnEZTvVZ7NTJ+h4rnV5sofvQ5zQIRTjYUV1N1BOjMzL4AORC2GIY7Nm
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(22082099003)(56012099003)(18002099003)(38070700021)(4143699003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?bVJkMUUzSkk2ZkdnbHBaUDdRTzd1RVVDd2Uzdi8yOFlKZTFhUmVEWlZUaHMv?=
 =?utf-8?B?azRQSGkxM2RHUGxqNkk3dXBNZUxmNUF0cUhxMURka2FoNnBZSDRPclFuZGs3?=
 =?utf-8?B?eDUxRE5vZ1B0NXFRUFhGSldzbFdIZGpDa2ZNdTJHZy8yaitGZ2c2MGJKcytN?=
 =?utf-8?B?b0M1YmlSN1N2T2FhSlBoMm5UMzNOeFVkT0pwZmhYbExOKzUyQ3V5V1FFTUxw?=
 =?utf-8?B?alJDa004QVM0dVF1L1FObDBTd3VHcWlBSGdUTlgrUkdBQVFPU3kwZXUwNDBY?=
 =?utf-8?B?aE1BYm5SeEExUU1FWTM3L0dXTU1qL0xnRmdONGYwdWtiK0wzWUtwalpBakFj?=
 =?utf-8?B?RzhoT1owdEZwekZ2V0F5VzFjdVY1UUluUW9kZmh6OC9QaVBiR01DQS9QcDVi?=
 =?utf-8?B?RVRSOWtnYm9mRGJGVUpVWUFkMXNqTGtPQnNoYVdsZCtERkdiNnp1Uys4MHhp?=
 =?utf-8?B?bGZBdUpsUW1BRHFUSGYrU0ZDTzNMd0k3SThhUkcxV053YzdTREhBcGNwNEVm?=
 =?utf-8?B?N3U3bjE4SStoUlN3ODNTN3pCWlYrQ3NObHBoSGsxU2lNMmhxa1VvMnVIemEx?=
 =?utf-8?B?SGF5VmZRZ20wSkNlY3NBUE53bzd6Qzk4V1lpRGpYOEsvUm1IVXliMGRaK0xy?=
 =?utf-8?B?dG1FMlRQWHlQdWplVmtWa2QzNEcwVk80S1hUNVY1dUV2NTlxRWlyRkNicjNo?=
 =?utf-8?B?MGpGRWQzZ2M2a1lsYXVjTnd3NTFWbmJmd2FURkZPdm45a1IzZTYrNHN2cEhi?=
 =?utf-8?B?SktaaG45d2l6RWhsakY0L2pPbklZSE9IK3A3b2ZlMU82djBnckc4dmZrVzBx?=
 =?utf-8?B?WHpmNGU5cVhVWE8vWTNDRGJ5ekMvWDRybWVObUh0WldDa3VyNENySEw2cVVH?=
 =?utf-8?B?N05vYzRDTzh4ZHZKcDZQeTF5dlBMUVdpZzcyNXhNdnBVaTQ4cTNxeHVsZUt0?=
 =?utf-8?B?WUFzeVc3TWVDb1VTdE1QY0w5YUlVaE9PL0FoZjI5QVB2UkNNbnRUU3diNVJa?=
 =?utf-8?B?T0lKRWs0MkhUdkhTNWpHU1BlbHgwRlJTaWZXZmpOdWNYTWYyek9hMFZPVjl5?=
 =?utf-8?B?TWRQcitmdU5tQnUrZ1paOXJZZnk3WXc4V1NLdmJ1TE5NcWpwdEFHbWJoVEdZ?=
 =?utf-8?B?ai9XV3ZlVnRZU2dyaXBnQi80RkVETmoxSlpBZUN6ckZ3WWZ1RkxCUEVNam12?=
 =?utf-8?B?YVRhRUhMYzRCYUVkVzJETXJnQUttUDhmS2xrU2lnUUxMTVdRd2RDSHZqclNB?=
 =?utf-8?B?N1N6KzBSZDl0VVVOU2J3V0dyZi9TZ2Z4cTkwdGNtQzg1SmozQjd4eGhJVHhK?=
 =?utf-8?B?cTBLZ0YrUTBUd2krRTArWjFwaWdQa2lYNjhXMUtwazBrV3pybGxjMG5Hd3Fy?=
 =?utf-8?B?VGI4N2tmTGtEYWo0T1VvQkZiRTlSeG9TZndTeWhUOVMvR0VvZDhxM1UrVm1l?=
 =?utf-8?B?TFc5K1F6YTNQM3VqWjZkenpSRnNIaW81WGswNFd2Q1hqdzRKa2llT244WnpU?=
 =?utf-8?B?RE84M1BXVC9ETkQyaS8vbEswWGxZQ0F5OGIyVDlidDNWMk83WFFEajJXYUN2?=
 =?utf-8?B?cmR2aGEyR1J6UXpuNGxmNXkyaU5qNEFhWTE4ZEF3QTlLRnA3RVU0NGR4MVBh?=
 =?utf-8?B?ek9ieFJpc2ZGdGp6MERJSXp1ZnY4RGtnSmZ1dU0wZmZ6VXJ0NnJhWUsxWUpw?=
 =?utf-8?B?eGdmZ2dwVllSNFdLUHBQb2NuNmZIRUtJcDN4L09pdXpSR3FZUWllVW5lRE0x?=
 =?utf-8?B?V2EzRllaVXVyVXc1YXdVeG4zaWRyblhKZnRxbkl1TGNKMXZsSDh2VWZxUS9n?=
 =?utf-8?B?ODlNdXAxNElEL3lLUFVPaWIxbDF0NGpscmtyaGtNa2piRDNtcWlYUHh2Vng0?=
 =?utf-8?B?bHNDYjhmZlQ5Z090RTF3djBBbmI3V2tvRDdPaXZ3Y0VIdkFqNitnWE5welY2?=
 =?utf-8?B?N0FQNW9UdmJ5Wi9IVTc4L1dKVTlCVkdQTHZ6VVgrYWZTRmNtTFdvbm5wbG1a?=
 =?utf-8?B?dlJkamdYWTVPa0F1RUg5bElKcithOE5VVHVnLytnV3R1WjJxSCtrNTIwNEFx?=
 =?utf-8?B?MzEySnFxK1cvT2dnRVNadm9vbGNub0xTckNtaTJXTVFETmJ5d1lWd3BQMzlQ?=
 =?utf-8?B?SEhmM3FYQlhVQVpoblY2VlZPdm8xODd3VkJ0VUlPZTE3a2hZL1Brcm9IQVp2?=
 =?utf-8?B?K1loNVlWZlBhcEE5TG9scHRkaXYrYmFJamx4c3g1RDVQbXovRHFlbFg0SkQr?=
 =?utf-8?B?MHZYSTZyK2dZNGNST3VmdXNBeGw4cVpNSHA0TnJvRlFCbmJiSi81dW9DakYx?=
 =?utf-8?Q?nw32HDq+suI3WgsRr8?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 8883ec78-cffb-4bd5-6391-08deb9d43dc3
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 May 2026 20:37:15.3174
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 7kWoAZqe6tO8ZYZSCfLNtqnpcAKMOssz2sfPXlWQeuRFNLwAKD4o4Dt1oZ/akQiqaUurl9J0dCa/WxCcYPnP8g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3P286MB2325
X-purgate-ID: tlsNG-d25034/1779655039-DBD7BCF5-3DFE6F27/0/0
X-purgate-type: clean
X-purgate-size: 1056

SGVsbG8sDQoNCj4gPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vY3B1X3RvcG9sb2d5LmgNCj4gPiAr
KysgYi94ZW4vaW5jbHVkZS94ZW4vY3B1X3RvcG9sb2d5LmgNCj4gPiBAQCAtMTQsNiArMTQsOSBA
QCBzdHJ1Y3QgY3B1X3RvcG9sb2d5IHsNCj4gPiAgICAgIGNwdW1hc2tfdCB0aHJlYWRfc2libGlu
ZzsNCj4gPiAgICAgIGNwdW1hc2tfdCBjb3JlX3NpYmxpbmc7DQo+ID4gICAgICBjcHVtYXNrX3Qg
Y2x1c3Rlcl9zaWJsaW5nOw0KPiA+ICsgICAgaW50IHRvX2NvcmU7DQo+ID4gKyAgICBpbnQgdG9f
c29ja2V0Ow0KPiA+ICsgICAgaW50IG51bV9zaWJsaW5nczsNCj4gPiAgfTsNCj4gDQo+IFdoYXQg
c2lnbmlmaWNhbmNlIGRvIHRoZSB0b18gcHJlZml4ZXMgaGF2ZSBoZXJlPyBBbmQgd2hhdCdzIHRo
ZSBtZWFuaW5nIG9mIGFueQ0KPiBvZiB0aGUgZmllbGRzIGhvbGRpbmcgbmVnYXRpdmUgdmFsdWVz
PyAoSWYgdGhleSBjYW4ndCBob2xkIG5lZ2F0aXZlIHZhbHVlcywgdXNlDQo+IHVuc2lnbmVkIGlu
dCBwbGVhc2UuKQ0KDQpUaGVzZSBtZW1iZXJzIGFyZSB1c2VkIHRvIG1hcCBhIGxvZ2ljYWwgQ1BV
IElEIHRvIGEgcGh5c2ljYWwgY29yZSBJRCBhbmQNCmEgcGh5c2ljYWwgc29ja2V0IElELiBJIHdp
bGwgcmVuYW1lIHRoZW0gdG8gcGh5c19jb3JlX2lkIGFuZCBwaHlzX3NvY2tldF9pZA0KcmVzcGVj
dGl2ZWx5LCBhbmQgbWFrZSB0aGVtIHVuc2lnbmVkIGludC4NCg0KVGhhbmsgeW91IGZvciB5b3Vy
IGFkdmljZS4NCkhpcm9rYXp1IFRha2FoYXNoaQ0K


From xen-devel-bounces@lists.xenproject.org Mon May 25 07:35:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 07:35:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319069.1586820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRPqP-0005je-CM; Mon, 25 May 2026 07:35:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319069.1586820; Mon, 25 May 2026 07:35:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRPqP-0005jX-7Q; Mon, 25 May 2026 07:35:25 +0000
Received: by outflank-mailman (input) for mailman id 1319069;
 Mon, 25 May 2026 07:35:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wRPqN-0005jR-K1
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 07:35:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRPqN-00CqiB-07
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 09:35:23 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a13fb99-5cb7-0a2a0a5109dd-0a2a450584dc-30
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 09:35:22 +0200
Received: from [40.107.208.60]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a13fbb8-aaa8-0a2a45050019-286bd03c0b3b-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 09:35:22 +0200
Received: from SJ0PR13CA0220.namprd13.prod.outlook.com (2603:10b6:a03:2c1::15)
 by MN0PR12MB6198.namprd12.prod.outlook.com (2603:10b6:208:3c5::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.18; Mon, 25 May
 2026 07:35:14 +0000
Received: from SJ1PEPF00002316.namprd03.prod.outlook.com
 (2603:10b6:a03:2c1:cafe::60) by SJ0PR13CA0220.outlook.office365.com
 (2603:10b6:a03:2c1::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.11 via Frontend Transport; Mon, 25
 May 2026 07:35:13 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ1PEPF00002316.mail.protection.outlook.com (10.167.242.170) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.7 via Frontend Transport; Mon, 25 May 2026 07:35:13 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 25 May
 2026 02:35:12 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 25 May
 2026 00:35:12 -0700
Received: from [10.71.196.80] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 25 May 2026 02:35:10 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HtIBscLcW0QblFW/PCsCd+bY6YAMIvnN1xx08ufn06DmnmuajSZPMeT2EDouZTr4m4WRFAZ1SjMlEQ/wVP7Qp83OdUHGEsQ4ng0XVNkKWcgLoCfyDpbDeZTCaKhLh3OW2YVsh7/gupk+hYVjdaXv67QSSbAA5ujxeXJ1Yyn8rzSpZojzAmLMKLgJLw+mN31oi2mBiIhQAImOEY86vhKe+u7EDZojECM27W0N9VgRHK6mpPEsJeDg8dELOrxejXE1blyeZz9sohuW7YHlgLdStW903b13yNfQ4OBFipKplrlzFSrVyPuos2Mdi5WJknfyxtr36/gBF/GtfxRTk7OhFg==
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=dttcNPH6bZXUjF0roJGm1BUQZ+bNSQulkSrbgFSYqgE=;
 b=ex8FZsjj9AxiBCng8RA00rBm4RjEpvEvH6hDAziNTHa3Q9psB64yMJtSb3Ih221QyLFnrQZfR9JjMTmy5D53L2ej5am5ccAPSbMpnZf18smSqPQOowo/imGXV9kxwEpSQiGAO1XDAEj5kZBYPahEROTpqscMDYJH3BvG7M7AcT0TaD4NMGYGvM6KxGz/GpG63VAaFiVZ5z4snYVyDz677CPFWNJWyUuO0CkrRGlhNXQJi2e/RB2/dSpa+svOJYrYZty9c23IJji1dwz3AXRsyKt8DhCuKHjHKnRz+KJZUhQtAFN0sp4SmkCYcGm0tnXMjVTKFc2iTS6BGMpIDoUNOQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dttcNPH6bZXUjF0roJGm1BUQZ+bNSQulkSrbgFSYqgE=;
 b=IISWf3seErDgybuYNVj88hSqFbWSx+QJcmzU/bUUkbaF0GH/UD8EW1pyr8u0SR3VUzR71tib9S/HYh/1DHnrxXH4uIqethxB9idRor26sAVAoiXI2wkvndMzJeMPXrC8EeG/BzEoVXm+OEdZvKMiUDJFcQa06QGpbZftURiVFek=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <0db37c10-b920-4d9d-9453-18f820e6d093@amd.com>
Date: Mon, 25 May 2026 09:35:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] device-tree: size first hwdom bank for boot modules
To: Mykola Kvach <xakep.amatop@gmail.com>, <xen-devel@lists.xenproject.org>
CC: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
References: <9ae4f7dd49f5b1f761193adae573c2675c92e883.1779051035.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <9ae4f7dd49f5b1f761193adae573c2675c92e883.1779051035.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002316:EE_|MN0PR12MB6198:EE_
X-MS-Office365-Filtering-Correlation-Id: e60f1b6b-f079-41f2-6fe2-08deba30288c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|7416014|376014|1800799024|82310400026|18002099003|56012099003|22082099003|5023799004|11063799006;
X-Microsoft-Antispam-Message-Info:
	FYvt/uM4a5MGpAueyFh3Sc7ihFhjRdJWAY1qNXr8jmj2Ap6yYAfuswgfZ/mmnWeHZ3e5RXOtHwhESqRFL6iUyU9adYTHWNr88ZRY2cNds/lSHoP7AOXudojtQVOteQemTMDFDNBL4OlgF+BNMEHW6UWMdrRHB4g2j1RJXVtJVw0gtz5trR869YjHPePNr0fNuw77akYOh07Y1QOuE/m9vXenKjdfk1YONeaJzKTuZFTWQOSGPmMf9uVAFYq0sVUVUcos9LH1M52Fug/sQCeSPdpWJzm9AQw2SlPmk+8Qg6/cngTaKHwIUGZWIJZIjHurdb7liOEQFO8X7BbDjgcXCjhOg+xF+wZg1H17y5FgnMgU6JzoBIT7Bk0zuoEizAphM5bTeOBVaxjpqwLP0/427btoxQ3FkV2oSyQ+HJI5GBk8AwDZClyptJzJ+LzBgzbrom0bBxWA5062IH0+NhJhZSma2aiNdmLWwCxjSvOcj6NaEz686aLgQc7cniIlIMU/npxGabr4LnJqmI2Kp8+NGaJ+M3f/fF9D1SphF72mMyARWhccHtaNEP8azYNfcoD4+VP9qq5I9sUtQpgIjlG5weGXxBUUb0K0UNjzaBlSpvF6SqEII+g2atmVh5MiWj9WTStAPcdLtsdJbJnGnHqBQiH8GUC8am3gZZp/PqxTIGNV6p2yQf+Y1cnu2oZBgBF6bKiSLyzQrJUp5RLH1WfosrWJ0zgNkXlsTiPTfFj8V8c=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(7416014)(376014)(1800799024)(82310400026)(18002099003)(56012099003)(22082099003)(5023799004)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	rCPl0twHbZcKbZ0RwSejhSLsn4mI2Wmu5GEhpDy0aK5FgUot6ONMPl1aJcn8Cmfy76fv+D2oVHIvs0nWadZamUDK/3IaUWowple8ufQmifPtxMAXq3xUL+Tr/FejfvRq/DYD7BuaBbiqMopAxTyo/rQnWw18vpAwEe1CkMG0FLhudjqCan8fFw6Gp9g+V/8jTR8RiTjJ7WVAaLEMGKaYzg6mOc39GoMjT3ItDjbChDxFnuIZdly5YbF/2khhjUFHEyFOuFGVhQmp+TjvIqWO0QLNhwYOke1D+1MiWB160HX9jwW/leK3Rw9/a8F7PDmesF/kdsGD5ofs8Aj1nQchZezR1I/fc5Qc6V6r6qxurCQp9v1wolJpCmj9984fkY7LSUvyl4vRpofXy03SHc6gc+6Y0YPa7PrcBjdphfp9IbHEewLWCc8cZhNuJO70ab02
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 07:35:13.3330
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e60f1b6b-f079-41f2-6fe2-08deba30288c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002316.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6198
X-purgate-ID: tlsNG-c201ff/1779694522-D8D7F443-0C2D15C1/0/0
X-purgate-type: clean
X-purgate-size: 11927



On 17-May-26 22:57, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> With LLC coloring enabled, the hardware domain memory comes from
> allocate_hwdom_memory(), not from the fixed direct-map banks used when
> coloring is off.
> 
> Commit de99f3263555 ("device-tree: Improve hwdom memory allocation for
> DMA") made that allocator sort free host regions by ascending address so
> Dom0 gets DMA-capable low memory first. The first bank filter still only
> required 128MB. That can select a low region which is large enough for
> the heuristic, but not large enough for place_modules() to put the Dom0
Don't mention dom0 given that this is purely hwdom path.

> kernel, generated DTB and initrd contiguously in bank 0.
> 
> Ask arch code for any additional first-bank size requirement. On Arm,
> compute it from the actual Dom0 kernel placement, rounded initrd size and
> generated DTB size hint. For 64-bit Image kernels, include the text offset
> from the candidate bank start, because the returned requirement is compared
> with a bank size measured from that start. The hint covers both the normal
> Device Tree path and the minimal DTB created for ACPI boot.
> 
> Check the first-bank threshold against the size which will actually be
> assigned to Dom0, after capping the host region by the remaining unassigned
> Dom0 memory. Otherwise a large host region could pass the test but still
> produce a first guest bank too small for place_modules().
> 
> Use the typed min()/max() helpers for this normal allocation arithmetic;
> MIN()/MAX() are intended for preprocessor-style contexts and skip the type
> checking provided by the lowercase helpers.
> 
> This keeps the DMA-oriented allocation policy from de99f3263555 while
> preventing a too-small bank 0 from reaching place_modules().
> 
> Fixes: de99f3263555 ("device-tree: Improve hwdom memory allocation for DMA")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Test/setup notes:
> 
> The failure was reproduced on a Renesas H3ULCB/R-Car H3 (r8a7795)
> arm64 board booted through U-Boot/TFTP and using huge initrd.
> 
> Relevant Xen command line excerpt:
>   dom0_mem=2048M llc-coloring=on
> 
> Boot module layout from Xen:
>   MODULE[2]: 0x0000000084000040-0x000000008e75d92f Ramdisk
>   MODULE[3]: 0x00000000a0000000-0x00000000a3ffffff Kernel
>   MODULE[4]: 0x00000000a4000000-0x00000000a400ffff XSM Policy
> 
> The initrd is about 168MB. With LLC coloring enabled and the low-address
> allocation policy from de99f3263555, Dom0 can receive a 192MB first bank:
>   d0 BANK[0] 0x00000048000000-0x00000054000000 (192MB)
> 
> That bank satisfies the old 128MB minimum but is too small for the
> rounded Dom0 kernel, generated DTB and initrd placement. The observed
> failure before this patch was:
>   Panic on CPU 0:
>   Not enough memory in the first bank for the kernel+dtb+initrd
> 
> With this patch, the same boot skips the too-small low region for bank 0
> and reaches Dom0:
>   d0 BANK[0] 0x00000057000000-0x00000084000000 (720MB)
>   d0 BANK[1] 0x0000008e800000-0x000000c0000000 (792MB)
>   d0 BANK[2] 0x00000500000000-0x00000521800000 (536MB)
>   d0: extended region 0: 0x48000000->0x54000000
>   Loading zImage from 0x00000000a0000000 to 0x57000000-0x5b000000
>   Loading d0 initrd from 0x0000000084000040 to 0x5f200000-0x6995d8f0
>   Loading d0 DTB to 0x5f000000-0x5f011c80
>   Linux version 5.10.194-yocto-standard
> ---
>  xen/arch/arm/acpi/domain_build.c        |  2 --
>  xen/arch/arm/domain_build.c             |  8 ++++++
>  xen/arch/arm/include/asm/domain_build.h |  4 +++
>  xen/arch/arm/include/asm/kernel.h       |  8 ++++++
>  xen/arch/arm/kernel.c                   | 35 +++++++++++++++++++++++++
>  xen/common/device-tree/domain-build.c   | 27 ++++++++++++++-----
>  xen/include/xen/fdt-kernel.h            |  8 ++++++
>  7 files changed, 83 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/arch/arm/acpi/domain_build.c b/xen/arch/arm/acpi/domain_build.c
> index 249d899c33..db16f7fa94 100644
> --- a/xen/arch/arm/acpi/domain_build.c
> +++ b/xen/arch/arm/acpi/domain_build.c
> @@ -26,8 +26,6 @@
>  #undef virt_to_mfn
>  #define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
>  
> -#define ACPI_DOM0_FDT_MIN_SIZE 4096
> -
>  static int __init acpi_iomem_deny_access(struct domain *d)
>  {
>      acpi_status status;
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 1efddc60ef..226e053c68 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -115,6 +115,14 @@ int __init parse_arch_dom0_param(const char *s, const char *e)
>                               (IS_ENABLED(CONFIG_STATIC_SHM) ?         \
>                                (NR_SHMEM_BANKS * (160 + 16)) : 0))
>  
> +paddr_t __init dom0_get_fdt_size_hint(void)
> +{
> +    if ( !acpi_disabled )
> +        return ACPI_DOM0_FDT_MIN_SIZE;
> +
> +    return fdt_totalsize(device_tree_flattened) + DOM0_FDT_EXTRA_SIZE;
> +}
> +
>  unsigned int __init dom0_max_vcpus(void)
>  {
>      if ( opt_dom0_max_vcpus == 0 )
> diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
> index df8b361b3d..45687c5d6f 100644
> --- a/xen/arch/arm/include/asm/domain_build.h
> +++ b/xen/arch/arm/include/asm/domain_build.h
> @@ -19,6 +19,10 @@ int prepare_acpi(struct domain *d, struct kernel_info *kinfo);
>  
>  int add_ext_regions(unsigned long s_gfn, unsigned long e_gfn, void *data);
>  
> +#define ACPI_DOM0_FDT_MIN_SIZE 4096
> +
> +paddr_t dom0_get_fdt_size_hint(void);
> +
>  #if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
>  /* Utility function to determine if an Armv8-R processor supports VMSA. */
>  bool has_v8r_vmsa_support(void);
> diff --git a/xen/arch/arm/include/asm/kernel.h b/xen/arch/arm/include/asm/kernel.h
> index 21f4273fa1..17c5b9bce4 100644
> --- a/xen/arch/arm/include/asm/kernel.h
> +++ b/xen/arch/arm/include/asm/kernel.h
> @@ -8,12 +8,20 @@
>  
>  #include <asm/domain.h>
>  
> +#include <xen/types.h>
> +
> +struct kernel_info;
> +
>  struct arch_kernel_info
>  {
>      /* Enable pl011 emulation */
>      bool vpl011;
>  };
>  
> +#define arch_get_min_first_bank_size arch_get_min_first_bank_size
> +paddr_t arch_get_min_first_bank_size(struct kernel_info *info,
> +                                     paddr_t bank_start);
> +
>  #endif /* #ifdef __ARCH_ARM_KERNEL_H__ */
>  
>  /*
> diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
> index b72585b7fe..3644663e2f 100644
> --- a/xen/arch/arm/kernel.c
> +++ b/xen/arch/arm/kernel.c
> @@ -128,6 +128,41 @@ static paddr_t __init kernel_zimage_place(struct kernel_info *info)
>      return load_addr;
>  }
>  
> +static paddr_t __init kernel_placement_size(paddr_t load_addr, paddr_t len)
> +{
> +    return ROUNDUP(load_addr + len, MB(2)) - load_addr;
Used from one site. place_modules() open-codes the same
expression; the CONFIG_HAS_DOMAIN_TYPE branch below is
kernel_placement_size(load_addr, len) + text_offset. Either drop the helper or
use it consistently.

> +}
> +
> +paddr_t __init arch_get_min_first_bank_size(struct kernel_info *info,
info is RO, so const please.

> +                                            paddr_t bank_start)
> +{
> +    const struct boot_module *mod = info->bd.initrd;
Why mod instead of initrd? - choose more meaningful names

> +    const paddr_t initrd_len = ROUNDUP(mod ? mod->size : 0, MB(2));
It would be nice to explain why 2MB, at least to say that it mirrors
place_modules rounding.

> +    const paddr_t dtb_len = ROUNDUP(dom0_get_fdt_size_hint(), MB(2));
> +    paddr_t kernsize;
> +
> +#ifdef CONFIG_HAS_DOMAIN_TYPE
> +    if ( (info->type == DOMAIN_64BIT) && (info->image.start == 0) )
> +    {
> +        paddr_t load_addr = bank_start + info->image.text_offset;
> +
> +        /*
> +         * The caller compares this value with a size measured from
> +         * bank_start, so include the text offset before the kernel.
The comment belongs above the load_addr line above.

> +         */
> +        kernsize = ROUNDUP(load_addr + info->image.len, MB(2)) - bank_start;
> +        return kernsize + initrd_len + dtb_len;
Could it be written as:
info->image.text_offset + kernel_placement_size(load_addr, info->image.len)

> +    }
> +#endif
> +
> +    if ( info->image.start == 0 )
> +        kernsize = ROUNDUP(info->image.len, MB(2));
> +    else
> +        kernsize = kernel_placement_size(info->image.start, info->image.len);
This could be written as a single expression, no need for if/else:
kernsize = kernel_placement_size(info->image.start, info->image.len);

> +
> +    return kernsize + initrd_len + dtb_len;
> +}
> +
>  static void __init kernel_zimage_load(struct kernel_info *info)
>  {
>      paddr_t load_addr = kernel_zimage_place(info);
> diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree/domain-build.c
> index 2a760b007b..d8865db259 100644
> --- a/xen/common/device-tree/domain-build.c
> +++ b/xen/common/device-tree/domain-build.c
> @@ -299,20 +299,33 @@ static bool __init allocate_hwdom_memory(struct kernel_info *kinfo)
>  
>      for ( i = 0; (kinfo->unassigned_mem > 0) && (i < nr_banks); i++ )
>      {
> -        paddr_t bank_size;
> +        const paddr_t bank_start = hwdom_free_mem->bank[i].start;
> +        paddr_t bank_size = hwdom_free_mem->bank[i].size;
> +
> +        /*
> +         * Check the size that would actually be assigned, not just the size
> +         * of the host region.
> +         */
> +        bank_size = min(bank_size, kinfo->unassigned_mem);
>  
>          /*
>           * The first bank must be large enough for place_modules() to
>           * fit the kernel, DTB and initrd.  Skip small regions to avoid
>           * ending up with a tiny first bank.
>           */
> -        if ( !mem->nr_banks && (hwdom_free_mem->bank[i].size < min_bank_size) )
> -            continue;
> +        if ( !mem->nr_banks )
> +        {
> +            paddr_t arch_min_size;
> +            paddr_t required_first_bank_size;
> +
> +            arch_min_size = arch_get_min_first_bank_size(kinfo, bank_start);
> +            required_first_bank_size = max(min_bank_size, arch_min_size);
> +
> +            if ( bank_size < required_first_bank_size )
> +                continue;
> +        }
>  
> -        bank_size = MIN(hwdom_free_mem->bank[i].size, kinfo->unassigned_mem);
> -        if ( !allocate_bank_memory(kinfo,
> -                                   gaddr_to_gfn(hwdom_free_mem->bank[i].start),
> -                                   bank_size) )
> +        if ( !allocate_bank_memory(kinfo, gaddr_to_gfn(bank_start), bank_size) )
>          {
>              xfree(hwdom_free_mem);
>              return false;
> diff --git a/xen/include/xen/fdt-kernel.h b/xen/include/xen/fdt-kernel.h
> index 8cd1670c2c..931b3e1686 100644
> --- a/xen/include/xen/fdt-kernel.h
> +++ b/xen/include/xen/fdt-kernel.h
> @@ -86,6 +86,14 @@ kernel_info_get_mem_const(const struct kernel_info *kinfo)
>      return container_of(&kinfo->mem.common, const struct membanks, common);
>  }
>  
> +#ifndef arch_get_min_first_bank_size
> +static inline paddr_t arch_get_min_first_bank_size(struct kernel_info *info,
> +                                                   paddr_t bank_start)
> +{
> +    return 0;
> +}
> +#endif
> +
>  #ifndef KERNEL_INFO_SHM_MEM_INIT
>  
>  #ifdef CONFIG_STATIC_SHM

As for the upstream CI test, we should start with more generic tests that we are
missing (like regular LLC boot) before thinking of covering more granular
scenarios. Also, in the past we agreed on first covering the supported features
before adding tests for unsupported ones.

~Michal




From xen-devel-bounces@lists.xenproject.org Mon May 25 09:46:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 09:46:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319106.1586828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRRt8-0006ob-Q4; Mon, 25 May 2026 09:46:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319106.1586828; Mon, 25 May 2026 09:46:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRRt8-0006oT-KO; Mon, 25 May 2026 09:46:22 +0000
Received: by outflank-mailman (input) for mailman id 1319106;
 Mon, 25 May 2026 09:46:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wRRt7-0006oN-Oc
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 09:46:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRRt7-00470x-4m
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 11:46:21 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a141a65-5cb7-0a2a0a5109dd-0a2a4502c18a-6
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 11:46:20 +0200
Received: from [52.101.61.27]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a141a6a-af86-0a2a45020019-34653d1bc093-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 11:46:20 +0200
Received: from BL1P223CA0016.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:2c4::21)
 by PH7PR12MB7019.namprd12.prod.outlook.com (2603:10b6:510:1b9::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May
 2026 09:46:12 +0000
Received: from BL6PEPF0001AB77.namprd02.prod.outlook.com
 (2603:10b6:208:2c4:cafe::79) by BL1P223CA0016.outlook.office365.com
 (2603:10b6:208:2c4::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.20 via Frontend Transport; Mon, 25
 May 2026 09:46:11 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL6PEPF0001AB77.mail.protection.outlook.com (10.167.242.170) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.7 via Frontend Transport; Mon, 25 May 2026 09:46:11 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Mon, 25 May
 2026 04:46:11 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 May
 2026 04:46:11 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 25 May 2026 04:46:10 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LarfoQTigKAKL8w9WZmnV1KU/CADGZgq45JGiqsrBOStp/e+qu8qg/Cmv3YXfT6kh8IOp44oMWb2dSmoyT87lyVjYaUrbRvK7HAPlPNI2jnT2IBpZ6k1j3v2aZGdlZQJ1mBe6TuC6zsUiyBaVal3HdY+4R2CSYIDigLKg551rM+gtaSD2PzD7pqh5zAmQT3Wri81c0QBFE+Rq/xDL50GPJl6tJ1mPxEx8eQ4lF1qZXozLofFXWaF8rElAyokaXB+ZtS/MrFSjwG3gGc8UKaSUOHjYfdxHKIjZKM+n1Y1PIQ/eRk32JIlFlmddNWW2qwtZrIXRKgkh04E2Cf+RL2CNw==
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=ahRO5UdBbWodjZgE60oN0b0QE3VVyY2NqX5GA8TthSI=;
 b=WH5h+y2nfBuBPE9pMARw2u6OPO5Hc1EXE+rVe0iRnVHfN+O22I1oGY55tnCRGtuASPhNoxE4RE4DTdd/cv+/YehLQjU4yCumhD1irDJDrVC/RADvQNTjl+EO9dP4cDeckTMGYxC2CkOgCIhteLfE5pKuIzSeYKoRpaVRHvsPd5cDNcbLoFDEAwpTHL1XibeV4SKFFdBQIJd4riLh+KBZZz/jeMgjAjjqLQx3Z84ERzqFEV/+ESAzNitJylnGa/xjb/4QC7M0SpKujHxSj1ySZP/NM3iBhEZKuFS7iNPENyTfiVL/1C3/JG5u+cxlOOb56qAFLG6Y609KU3qg6mF2ZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ahRO5UdBbWodjZgE60oN0b0QE3VVyY2NqX5GA8TthSI=;
 b=QK24cXM3ZdeMSiIP/BERW6QCDhpB/ydiKGqigy7hZ7V2tQHPnf6GNmh6e7bEMKUNv1/5PflRZc5WCQFu+c6Z8aoklDOR20sf0wa8VsIcSoLNvFN1Sf+HLYNaKVj+4YsrOP4Roa/puCwSd+8alMMKREhKjKzUYtp2NZup1pqOTtc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <eaf40a4c-ce82-4a34-91f1-9cdd0bbff7fb@amd.com>
Date: Mon, 25 May 2026 11:46:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen/arm: propagate vGIC vCPU init failures
To: Mykola Kvach <xakep.amatop@gmail.com>, <xen-devel@lists.xenproject.org>
CC: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1779430299.git.mykola_kvach@epam.com>
 <f9a0308092deb2135d32ad9fc2c5ccafc8a7320e.1779430299.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <f9a0308092deb2135d32ad9fc2c5ccafc8a7320e.1779430299.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB77:EE_|PH7PR12MB7019:EE_
X-MS-Office365-Filtering-Correlation-Id: 03e0c321-ecd9-48f6-103b-08deba427488
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700016|11063799006|4143699003|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	OWm+kH/uliS3Xgl4bs50dxnEshSbl4SFo3dx2dCvpGZREUtQ5XTseqTxkhGw9bl8k/htblkVzMq/RiSN4uob1v6UQJnuekxR9Jh/vE3KyDX3bSOx5OrvkZ0+n768coduYPKyFzaTWQEzStOc1eeKPuoqqubEVfjSUgAFQ8u2R6og/ZHAlM18MIzZ5PIyUTGTkW0zREVpqapr+ehW5idOte9DU9NTfORmMmjksZmhbRQQd23SZYeBDj0GI2hRJZMfj0HYPcSS4zD5bzG1mlu9JdB/UjPaOOYuf+krzYLPbtJhD3GxFYsgRi3jmBhIVI1OuHiAvWdcLWvOoLW13/WAc3FeWTe4qXO2Eql1buYEZXx655zNxYXCsTcTbho+RwwioppjQ68oDM/Z73W+YF5kK8AN2ZXWld8Inzm99QQT7/wuY7y1RqZqPB841zpmYsZKexWcpPUxA5Q71WSZPSz3+Gk0oyS0yPy+SfBzyDfUg4u0msZexJTHkeRo7qDTGaV8FRjyksyjP/Dc/WwFR8urUmJyB9ntcYOD2/NhBoqVxP3nC7dKKGA6XJ0sgiGlmPuJqiWGP3dEZswAFZiJkzlR3rNQX+hkNDEPNJ7Mdfd7s2TZFS+TriObPFpxba6n+1CRTjwEVVXJ979PLZkvu3gw4VKZBoh9L7+T7rcflSTlBh41T73G8rRCeL+HAqknVePAlqNeA8YNJ4L8CeYfeO8y4JYaeH5W7BZtExDy24r/5mQ=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700016)(11063799006)(4143699003)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	UdKRs0PsG0bHIo36GTWinbO+buMG9WNAOb2rEG5mXmSUDKCVWGhWt30Z6NGMuRDEgpHSxq7a5zA+sC/Aq7IiyiCCfqkveY2gjvbL8xz06Zo2qKLqY9lAM705ygBfp67PRzA0QdXZGJZqmW3lFGPxcxTGBl8q9TO+1E1ZelKEg1V8vALXPyeVpqlT6ACeaVswcyXFsLtPs0S3K+SYAZ+eFjfLtFaZhhF4kq6DQE3Rk8HYbMpGqTw8Xj4fjanJ4Dek5qztPdAoqYoGH6+dWxeAQSSp49kL8D8tW4yk6fIwD7cHATeBPa5rdX55RClDFtVVhftZEglFJbv00I1xAkQRGJqFAB0BKa0LdpGKDtvzFzFry6+jAoHcGueXAguw87EbqDVICqY5O59iU2fjiSw+WL/owkidvH+nR3zdqiGPKyfWuykrwrvmzpmyY2FA4ccB
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 09:46:11.8427
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 03e0c321-ecd9-48f6-103b-08deba427488
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB77.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7019
X-purgate-ID: tlsNG-720697/1779702380-80145161-1FB4BEB6/0/0
X-purgate-type: clean
X-purgate-size: 5795



On 22-May-26 08:18, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> The vGIC per-vCPU init callback can fail. In particular, GICv3 rejects
> a vCPU when the domain's redistributor layout has no MMIO slot covering
> that vCPU. However, the generic vGIC init path ignored the callback
> return value, so vcpu_create() could succeed with an invalid vGICv3
> per-vCPU state.
> 
> This can be reproduced on FVP Base RevC by exposing a 2 MiB GICv3
> redistributor region to Dom0 and booting Xen with:
> 
>     maxcpus=1 dom0_max_vcpus=64
> 
> The host GICv3 redistributor range is:
> 
>     region 0: 0x0000002f100000 - 0x0000002f300000
> 
> With Xen's guest redistributor frame size of 128 KiB, that range covers
> 16 guest redistributors. vCPU16 and above have no corresponding
> redistributor slot.
> 
> Before this fix, Xen detected the missing redistributors:
> 
>     d0: Unable to find a re-distributor for VCPU 16
>     ...
>     d0: Unable to find a re-distributor for VCPU 63
> 
> but ignored the error and continued as if the secondary vCPUs had been
> created correctly. Dom0 then saw 64 possible CPUs and could hang during
> secondary CPU bring-up:
> 
>     smp: Bringing up secondary CPUs ...
>     d0v15: vGICR: SGI: unhandled word write ... to ICACTIVER0
> 
> Propagate the vGIC vcpu_init() error so the caller can stop creating
> secondary vCPUs. With this fix, Dom0 construction reports:
> 
>     d0: Unable to find a re-distributor for VCPU 16
>     Failed to allocate d0v16
> 
> and the guest continues booting with the vCPUs created before the
> failure:
> 
>     smp: Brought up 1 node, 16 CPUs
> 
> Free the private IRQ rank allocated by vcpu_vgic_init() on this error
> path. The caller will still run the generic vCPU creation cleanup, but
> XFREE() clears the pointer so that cleanup remains idempotent.
> 
> Also fix the host-layout redistributor region count for the case where
> the requested vCPU count is larger than the capacity of all host
> redistributor regions. The old code always stored i + 1 after the loop.
> That is correct when the loop stops inside a valid region because the
> requested vCPU count is covered. If the loop exits after consuming all
> hardware regions, i is already equal to the number of allocated regions,
> so i + 1 records one region too many.
> 
> In the same FVP setup, that off-by-one made Xen describe host-layout
> GICR state beyond the populated redistributor region list. Dom0 then
> accessed the GICR MMIO window described in its device tree, but Xen could
> not match the access to a valid emulated redistributor frame. During
> debugging this was seen as an unexpected vGICR access followed by a
> guest panic:
> 
>     d0v0: vGICR: unknown gpa read address 000000002f10ffe8
>     pc : gic_iterate_rdists+0x4c/0x104
>     Kernel panic - not syncing: Attempted to kill the idle task!
> 
> Keep the existing best-effort Dom0 policy: a failure to create a
> secondary vCPU stops the secondary vCPU creation loop, but does not fail
> the whole Dom0 boot.
This is the construct_domain() policy that is used for both dom0 and dom0less
domUs. I must say I don't really like this policy and it's against our *generic*
Arm policy to fail the domain creation on any error especially if this belongs
to unsatisfied user requests. This is not really related to your series, but I
would like to ask other Arm maintainers about their opinion.

> 
> Fixes: ea37fd21110b ("xen/arm: split vgic driver into generic and vgic-v2 driver")
> Fixes: 54ec59f6b0b3 ("xen/arm: vgic-v3: Don't create empty re-distributor regions")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
>  xen/arch/arm/vgic-v3.c |  3 ++-
>  xen/arch/arm/vgic.c    | 10 +++++++---
>  2 files changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
> index 77517c3030..360778eb32 100644
> --- a/xen/arch/arm/vgic-v3.c
> +++ b/xen/arch/arm/vgic-v3.c
> @@ -1834,7 +1834,8 @@ static int vgic_v3_domain_init(struct domain *d)
>           * not match the number of pCPUs). Update the number of regions to
>           * avoid exposing unused region as they will not get emulated.
>           */
> -        d->arch.vgic.nr_regions = i + 1;
> +        d->arch.vgic.nr_regions = (i == vgic_v3_hw.nr_rdist_regions) ?
> +                                   i : i + 1;
Wouldn't min(i+1,vgic_v3_hw.nr_rdist_regions) be cleaner?

>  
>          d->arch.vgic.intid_bits = vgic_v3_hw.intid_bits;
>      }
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index 6647071ad4..e55e484493 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -368,7 +368,7 @@ void domain_vgic_free(struct domain *d)
>  
>  int vcpu_vgic_init(struct vcpu *v)
>  {
> -    int i;
> +    int i, ret;
>  
>      v->arch.vgic.private_irqs = xzalloc(struct vgic_irq_rank);
>      if ( v->arch.vgic.private_irqs == NULL )
> @@ -377,7 +377,12 @@ int vcpu_vgic_init(struct vcpu *v)
>      /* SGIs/PPIs are always routed to this VCPU */
>      vgic_rank_init(v->arch.vgic.private_irqs, 0, v->vcpu_id);
>  
> -    v->domain->arch.vgic.handler->vcpu_init(v);
> +    ret = v->domain->arch.vgic.handler->vcpu_init(v);
> +    if ( ret )
> +    {
> +        XFREE(v->arch.vgic.private_irqs);
> +        return ret;
> +    }
>  
>      memset(&v->arch.vgic.pending_irqs, 0, sizeof(v->arch.vgic.pending_irqs));
>      for (i = 0; i < 32; i++)
> @@ -944,4 +949,3 @@ void vgic_check_inflight_irqs_pending(struct vcpu *v, unsigned int rank, uint32_
>   * indent-tabs-mode: nil
>   * End:
>   */
> -
Stray change, please drop.

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

~Michal




From xen-devel-bounces@lists.xenproject.org Mon May 25 09:55:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 09:55:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319117.1586836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRS2M-00007h-IJ; Mon, 25 May 2026 09:55:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319117.1586836; Mon, 25 May 2026 09:55:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRS2M-00007a-FF; Mon, 25 May 2026 09:55:54 +0000
Received: by outflank-mailman (input) for mailman id 1319117;
 Mon, 25 May 2026 09:55:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wRS2L-00007U-8D
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 09:55:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRS2K-006JSG-61
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 11:55:52 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a141c9a-e002-0a2a0a5209dd-0a2a4506b952-36
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 11:55:51 +0200
Received: from [52.101.193.65]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a141ca6-7371-0a2a45060019-3465c14130ad-4
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 11:55:51 +0200
Received: from SJ0PR03CA0335.namprd03.prod.outlook.com (2603:10b6:a03:39c::10)
 by SA1PR12MB8119.namprd12.prod.outlook.com (2603:10b6:806:337::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Mon, 25 May
 2026 09:55:45 +0000
Received: from BY1PEPF0001AE19.namprd04.prod.outlook.com
 (2603:10b6:a03:39c:cafe::39) by SJ0PR03CA0335.outlook.office365.com
 (2603:10b6:a03:39c::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.20 via Frontend Transport; Mon, 25
 May 2026 09:55:45 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BY1PEPF0001AE19.mail.protection.outlook.com (10.167.242.101) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.7 via Frontend Transport; Mon, 25 May 2026 09:55:44 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 25 May
 2026 04:55:44 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 25 May 2026 04:55:43 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oea+8FIylqj41RYpvYxx3/Ekr7TYYio0Tj1hhIhCpW+Ks5JvKljSA7+W4QGsLTt9jQG4f962ZgtwHPWrT4jpPHDfxVpM1zSGC3gL1ByjhZaXxJ3qhF8+ZGZRtNBoZOaD4yaEfEHPZUSoj8W7KhpYHPWnQQ/AZmKZO/5z0M8icuQ2E67YZ6ee6txj0eNyu6bjgPin93FRJ4Kshso7NxK+HczeKhg2dJNzmv0dAOsVqmmwVhTP9pRT4LDjlFSi3AjHjAEsrLZ4hOJMB6rTQCVxwOVT00/mgCtxRCP6VezqYJBoWBIbVDcjTOsNosJ+N6eLIroKtGLhpO5+EbbcSDTPRA==
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=qVvZe1nzjfEPI2GFbE6FjfQnow1z3wc0kG8beW+zkoE=;
 b=mbVtWDQkQ4rEdnmFa97Gh2aSBw7Vhe4C51tcLfZPbqj+pE5Vt2pC2hZEl9D9TYOe0vrF0zTOdZAvfxjIoXzVeYQLYIM2sGZEGCeyLNadQd19C1LL6q4N/P6TblId9oTK92ICu1EgjtrvK9xdQyfCSEzR3JncoWEpfRH33E8sVF63O3n77tHkSsHE9xRTr1GZUDRDdwBk7cr5xnD3azh7PurYpcs8rguncIKGGDDcPf1fKI2WwxnYLw6qW4iW0fDdcSMgW4yyncfzEgb7ydGg9/uyRR/Srai5CMba4owfVeglj/ppBx5/UHLkrSQ9G5nQwdb++Se+t5Cp8cGgQgzw2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qVvZe1nzjfEPI2GFbE6FjfQnow1z3wc0kG8beW+zkoE=;
 b=ABOQSoiqra7ejEWXOg3AeD1sg8o8Y/2s4GcnIbsWYYD7onCMTqT9bmCuY90mQlm7EiRfVA9PtAKt+8BusdFseyb3NVJIIr2WbB2HS8AtMpXl+qR/rZ63wEOCBoLNUnhK4Bjw5yifaqx8S4tlUuv0/ImG40fPfINsj3SrEzJH7sw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <d98c2f4d-d1a9-4ef3-a24e-05cc6451bb72@amd.com>
Date: Mon, 25 May 2026 11:55:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] docs: Document Arm GICv3 limit for dom0_max_vcpus
To: Mykola Kvach <xakep.amatop@gmail.com>, <xen-devel@lists.xenproject.org>
CC: Mykola Kvach <mykola_kvach@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>
References: <cover.1779430299.git.mykola_kvach@epam.com>
 <88459940b410ceddc04bca7e2cadf7c16bd5c13b.1779430299.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <88459940b410ceddc04bca7e2cadf7c16bd5c13b.1779430299.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PEPF0001AE19:EE_|SA1PR12MB8119:EE_
X-MS-Office365-Filtering-Correlation-Id: e0427c6d-3710-4f66-310e-08deba43ca2e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700016|82310400026|18002099003|56012099003|22082099003|11063799006|4143699003|6133799003;
X-Microsoft-Antispam-Message-Info:
	92xq2AmEd4iyeaQb1yzhdfkRsl5IZFBuuzFsXDCfDns2KC3wjMduHeq+oK6wX178jR9wFzVhXe9tgBB7b+GPzQPSYvT8b0XJC5Z+gaHCRz6/iLLd9G7Ao5DvOlZddlLRM+SbbmK41HNBzb82op0yP6oPpCz2Uvumsjz+Q760AKnIk81jrQBpVn+joyTomANTj9J4JzfIndNaPgC5OUw0NUAK2bBaUGvWAjmf223636/b22sdGG/NOv2NuxeG11kweOUOuVd5u4WWXZqzrAF7a/OLZp01eUH1lwOeUbnK1zLTsKuQr5DcF3F6FBLtb2tEauk2lk/4bYsKEINKpQBJORXQriI5NhxbCdDfdtPFr39MTPMGZSY2kYA5flMS6bpIkmKfDnva6eVt2ZVa410SRusYVdmRtXqn3WwkLFiYjglMHjGxOt8ehwZUalvjPAr4dbQzpP2x0mOYD0QdPvMWbF8ap+O56ygcKionTC8nznvgwknCzO/VoMbBIZdzXWizwsxJVkmv5qqfjL5mhJ6DBLNaCcoQo1YGrciG03VyC0RefHDS9i+afClMbRgd3YDguOuhAeO6jOxRufnJuSOyJBn/iYEpT4VwEa5An9Eos5mZ9lVXVfm0KTCNHgFnya5fVfxxb0eIA8hSQsS7MmVICI8EdMkNL5Psj+BAgaesgmnPQTMPFGmsshBie3EBvXP1z3vhyykudHTCTpMA1Fvxpz4a9xIm0SizBuHs4wrlAxc=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700016)(82310400026)(18002099003)(56012099003)(22082099003)(11063799006)(4143699003)(6133799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	G9lYRlLdLrYzPB2ovPwk2pcTJ8ObqXhh2ZOHjSBi8E/eSafifAPb+2DP4GlyoNA0BQ/FlH4rVpxJobLAFfH9Mu7PK5vzqZV0KSgdipe4w9p4bcN2GSu4vU38TS18wDVWeJmnnKrhiy761em/yVr74TQCVS6JCvn0y2cNYIZJVfeiGyfk5aCFZya4Nz3fG4qxBGtFigIdkK0Kt/42Z6i7W68rsrY3Hl5Vq6e6nd0GIOpt/qNbuiMY9t/PhjLmCRDwB8h/ZsWi4UsC34umf3YzmeAdjMqOIWW+eqA4605RKhlS2w3xkk7Kp53OyfvX/nuq96ppkMLTZkjzSI7NnQgJLXMrl/qx4fPB/j8p3/jMbzOBKr6De+BUMxmPEmXlIAMbrstuTvrAmpSBb9GgzRxh0DHzOBF0yFDokZKIhqzP8s+3aRPuis9S979z9KpxyeGc
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 09:55:44.9962
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e0427c6d-3710-4f66-310e-08deba43ca2e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BY1PEPF0001AE19.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8119
X-purgate-ID: tlsNG-16d1c6/1779702951-87371D75-1C197089/0/0
X-purgate-type: clean
X-purgate-size: 2124



On 22-May-26 08:18, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> On Arm GICv3 systems, Dom0 may use the host GIC layout, for example
> when it is the hardware domain. In that case the effective Dom0 vCPU
> count is not only bounded by the requested dom0_max_vcpus value and
> Xen's generic vCPU limits. It is also bounded by the redistributor MMIO
> regions that can be exposed for the host layout.
> 
> Document that Xen can only create Dom0 vCPUs whose virtual redistributor
> frame is covered by those regions, and that secondary vCPU creation stops
> at the first vCPU whose virtual redistributor frame is not covered.
> 
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
>  docs/misc/xen-command-line.pandoc | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
> index d46d5b2152..0a5589b24c 100644
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -981,6 +981,14 @@ The number of VCPUs to give to dom0.  This number of VCPUs can be more
>  than the number of PCPUs on the host.  The default is the number of
>  PCPUs.
>  
> +On Arm systems using GICv3, Dom0 may use the host GIC layout, for example
It's not dom0 specific. It can by any domain using host memory layout meaning
dom0, hwdom, domU direct mapped, in which case I'm not sure if such comment
should belong here given that this behavior is not dom0_max_vcpus specific (same
could be triggered on your setup with dom0less domU, direct-mapped and 17 vCPUs).

> +when it is the hardware domain.  In this case, this value is also limited
> +by the redistributor MMIO regions that can be exposed for that layout.
> +Xen can only create Dom0 VCPUs whose virtual redistributor frame is
> +covered by those regions.  If the requested number of VCPUs exceeds that
> +limit, secondary VCPU creation stops at the first VCPU whose virtual
> +redistributor frame is not covered.
> +
>  Or:
>  
>  > `= <min>-<max>` where `<min>` and `<max>` are integers.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 25 10:06:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 10:06:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319125.1586846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRSCJ-00020J-F9; Mon, 25 May 2026 10:06:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319125.1586846; Mon, 25 May 2026 10:06:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRSCJ-00020C-BS; Mon, 25 May 2026 10:06:11 +0000
Received: by outflank-mailman (input) for mailman id 1319125;
 Mon, 25 May 2026 10:06:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wRSCI-000206-9d
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 10:06:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRSCH-00DBVz-8b
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 12:06:09 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a141f0a-e002-0a2a0a5209dd-0a2a4507b142-4
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 12:06:08 +0200
Received: from [40.107.200.17]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a141f0f-229c-0a2a45070019-286bc8113639-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 12:06:08 +0200
Received: from SJ0PR13CA0126.namprd13.prod.outlook.com (2603:10b6:a03:2c6::11)
 by MN2PR12MB4389.namprd12.prod.outlook.com (2603:10b6:208:262::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May
 2026 10:06:03 +0000
Received: from SJ1PEPF00001CE0.namprd05.prod.outlook.com
 (2603:10b6:a03:2c6:cafe::4f) by SJ0PR13CA0126.outlook.office365.com
 (2603:10b6:a03:2c6::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.11 via Frontend Transport; Mon, 25
 May 2026 10:06:03 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ1PEPF00001CE0.mail.protection.outlook.com (10.167.242.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.7 via Frontend Transport; Mon, 25 May 2026 10:06:03 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 25 May
 2026 05:06:03 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 25 May 2026 05:06:01 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mkXjson8tSXoLJZNIYuLApbMci6RsfLZqO3BE+U41dLgZJSQP1fgw/4mgKHcTivNZ/c7ytCCP5QoQMCIuNqGhYv/7ZUp1hQVyRu6sG905+7TPwJS3FcSdlnbGsiChCI7GeK844qUuwp12l6rc2C3Td8jrU/TiQoJOLJS742XRZMTFzLYBAraS8CuUIIMrCzXRm8x9IH7sYuUv+nG+iuuHZeKYh6smP6JBdicbWQkWUFHrD61GRkOcs7gpyecrUrDzCa/4SfkJxC9RRwd5a5JLmFzEQHIAXRonOHIP8lqug+V7bXE96uOn/9NzXHislJCRhARIjS2WaT+XG1Gj+60UA==
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=PC8AmsdOJav2nT3TfPwky1vpKFPoayb1oxfx5g0rKyk=;
 b=X3weiGdG+620YnbYM0Kstr7EmOJ6lbuSOrGEc9ZGmxuqsZKU1oLLChnbC3XUeOVIW9PyMCC72tzfkaQKI+izeJ+XtjNfpxiha/RTTHxDy5QjCbSlXNj8YHN1vZsWkNo+JqOC/xHKK7noOJ95mP/S2dkAdchEfox4DM8RjMVPWcpe5r44U3sYgdzVzyEUqjegoOTiaaV6H1Wq69zlMYdmddws9E0gLUdSrd5+WREQKtWrbgIvcEwTg/TTBWxZYX6A3Vd8/6ZW9cXZmJt/sLQsHCqU0Mxikzc4BVS4ZUSqzwoqDn5NR4uuU0zGi4/ONjwUEFZy/KGTF768eFM0lETK9w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PC8AmsdOJav2nT3TfPwky1vpKFPoayb1oxfx5g0rKyk=;
 b=dE3LtsbWJG4Rbf2c/OhRRKkYUjtcnmkTscOx+tTdFVon0FDaQW6fOeSiiDIYvNhw1BixgpA5rdtfEuLluOdfEaTcJgJwqOvUmEHGqkEtKoLpqdsKAsiLOjbH+gnJAg4U6hm8rXPcPlBi+KWlzqiU2KyPbNwXaoy7QBT0SBaZ2nQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <1524b146-cb05-441b-a055-ce3337d83b44@amd.com>
Date: Mon, 25 May 2026 12:06:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/2] xen/common: llc-coloring parser fixes
To: Mykola Kvach <xakep.amatop@gmail.com>, <xen-devel@lists.xenproject.org>
CC: Carlo Nonato <carlo.nonato@minervasys.tech>, Marco Solieri
	<marco.solieri@minervasys.tech>, Luca Miccio <luca.miccio@amd.com>, "Mykola
 Kvach" <mykola_kvach@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, "Oleksii
 Kurochko" <oleksii.kurochko@gmail.com>
References: <cover.1779388510.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <cover.1779388510.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE0:EE_|MN2PR12MB4389:EE_
X-MS-Office365-Filtering-Correlation-Id: 535f7c3f-13d9-401b-6b7d-08deba453ac5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|1800799024|7416014|376014|6133799003|11063799006|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	h1wLJUIE0F48f6tEHnMNa5MA/CVzjovpBgDD+o6jD49A2TE989ql71DBNMwq0/GRCL7A9FKAZlUWNitjbITd5SCYqq6C7HcR2k0KKyfDsBj03PP2zh6GmjDiuUHQD4YXztBXbSAv7Aorgvc4Qalk+AfEiROm6Kl3ORooko6wJKPf2xYCKHylfmCgPXgIPxgWneskyMQr1s5Kt1zzF2M2Hd9XSj4oSWN2SuaYYKhsw5P0WoWyuStumJ6TkZfpagBth9jEOJpCtqpIRG1vW1JJNlH0Mo5CI+k2bZvclnIRsRmbTDbdYNbShG92vIx1WWddXPQxMjboNoKTM5Cq/5/4L8UiDpUr42a9vAnA6Fqa3AjSb+PjV3a8Ds735NbPyInQjlIh7FiE06Lqai43pbscKTysqrlq9riwNFpcqDuICdyiMUop/t75sHxnMAkUU2YQ9KqPzJdE7OisGCPdfm3bMZiOldZ/kUGq3qWQ2ByWr4xU8J9Ta1bRIPTwhkMjNO/K7tY9wg0IzuzMTJMVNXFzanN3nj7DyTQr5A1rNhwp+qP2v6A9E+EXZ663VAqUNtlkURg5T5/zGOzC/aOraCSIxNpomHd5BTHx2oLMQtP3VpjaKr61QfYFfzLJAdlMvowOwj/8j++sQ6iCA1cfnpDOUBBm0gLLqXtIg5B+2S4i0xwgEpQdBU7qnoOn6mUp55gEP/PL4KHeyyB98nAuebBeaVBzkpLLtIXTizR8SK0wiUI=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(1800799024)(7416014)(376014)(6133799003)(11063799006)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	JFv17BTaLwLX9tDuF3wCSIrDhGtrFivufX+M+x6PHEyBZHqp2q9SYjDiXo17+n9QK0RMbEcoWpFtfHW/rjgR0JA81vhdTIF0Ah0Y7l/z0nlqpWH4kguVXBs3JpxMzu9Y+FiWs22+MeKqvdWtia5VB6oINNDGoPDrA+ZCpYlZabjM/aeHCUDys96JBKlzX+bB1D4pIx0t27ifLoDA5JPajYX0RBTzNwb486wiyI+GA6uduI5FUwDyCELSh3icYlrtnhpcqg/4ESxSCeejn5LSdstunXzjPWhJr7v7CaWdSDAnTT0fwF/4gkJpTj6WPMDjNKNtN8VMqkAk8XlWzxZ33tOuXwB1KcgibHMDYF51qZj4QzEGhj52r26jB7Oen+k5OUI6RBCiuNHDmVSTR6nS49uYft2eH5bfFZQ1wne9ulXOph/MrEBvQSC6krFIoPa7
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 10:06:03.3907
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 535f7c3f-13d9-401b-6b7d-08deba453ac5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CE0.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4389
X-purgate-ID: tlsNG-ef75cf/1779703568-0A971C48-9F46FA22/0/0
X-purgate-type: clean
X-purgate-size: 1319

CC: Oleksii

@Oleksii, can we ask for your release ack for this series?

~Michal

On 21-May-26 20:41, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> Hi all,
> 
> This small series fixes two issues in parse_color_config().
> 
> The first patch makes parse failures leave the caller-visible color count
> at zero. This prevents a rejected command-line value from leaving a
> partially parsed configuration behind for later init paths to consume.
> 
> The second patch rejects empty color tokens. Previously, delimiters in
> places where a color value was expected could be interpreted as color 0,
> because simple_strtoul() returns zero without advancing the input pointer.
> The patch checks that each parsed color value consumed input. It also
> fixes the DT color parsing error message by adding the missing newline
> and including the domain ID.
> 
> Changes in v2:
> - Clarify the first commit message.
> - Include the domain ID in the DT color parsing error message.
> - Add Reviewed-by tags.
> 
> Mykola Kvach (2):
>   xen/common: llc-coloring: clear color count on parse failure
>   xen/common: llc-coloring: reject empty color tokens
> 
>  xen/common/llc-coloring.c | 24 +++++++++++++++++++-----
>  1 file changed, 19 insertions(+), 5 deletions(-)
> 



From xen-devel-bounces@lists.xenproject.org Mon May 25 10:18:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 10:18:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319142.1586854 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRSOQ-0004Co-J9; Mon, 25 May 2026 10:18:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319142.1586854; Mon, 25 May 2026 10:18:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRSOQ-0004Ch-GR; Mon, 25 May 2026 10:18:42 +0000
Received: by outflank-mailman (input) for mailman id 1319142;
 Mon, 25 May 2026 10:18:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wRSOO-0004Cb-TV
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 10:18:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRSOO-004BM4-7W
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 12:18:40 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a1421c9-e002-0a2a0a5209dd-0a2a4505c0ba-46
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 12:18:39 +0200
Received: from [52.101.53.26]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a1421fe-aaa8-0a2a45050019-3465351a901d-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 12:18:39 +0200
Received: from MN2PR03CA0012.namprd03.prod.outlook.com (2603:10b6:208:23a::17)
 by MN2PR12MB4287.namprd12.prod.outlook.com (2603:10b6:208:1dd::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May
 2026 10:18:34 +0000
Received: from BL02EPF0001A104.namprd05.prod.outlook.com
 (2603:10b6:208:23a:cafe::5) by MN2PR03CA0012.outlook.office365.com
 (2603:10b6:208:23a::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.20 via Frontend Transport; Mon, 25
 May 2026 10:18:34 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL02EPF0001A104.mail.protection.outlook.com (10.167.241.135) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.7 via Frontend Transport; Mon, 25 May 2026 10:18:34 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 25 May
 2026 05:18:33 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Mon, 25 May
 2026 05:18:32 -0500
Received: from [10.71.196.80] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Mon, 25 May 2026 05:18:31 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iMWco5inqDgGGF7zgFQjIViUK5DdsaYU/acGa4LCzjxogZ5ib0DooiqK4xOR1wM7muZbAwrxSXP6EtAIRqK8FJNgoIdRW72cwSVC4/kGrlsBywpJXmeBiGfr/q7jXsn7hZF/6+Y7HjJIEvCH7iB9tMgWhgVPPSGwfy75HPV+VRzY13NyeMaNYNJ/D17VUYvxMQZV1O3V2yZTD+N+0yMjmvZmrWAMkVM6tNlZETOMnEpiUbVOormkjK9/n8E8GawPq5/UA3TRPbsqbHum4zZC9s998mQHzzuQFZrjtvlKvOgaRnKptpCPYZR4Huy5LC+VYoiC9/fZIqTQcoSm0g8aMw==
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=Y1c9lQ3wZ/NaJa5sV0AexiH1fCfTRpsF7NxGI19Zg14=;
 b=V+05kZtYeCY/jKSINUW7cx7mk23Rf5BoX5/wvEFK532Pfrb3JRN97F3ACEBNwZZG6VyAqXYJWROiB9MxNUqoTyuCVhicHN9BBILPJhvTm1PLeB60UYsOGtTR+YVWk2YhuFl3wOwY8W8D+jk5UIQ+qkVhswacZTi1QX9LrT/SCL05rOiMj4gcYuY559RT5wuRyM5MK4YksjppLNSU5cv3yHsy9A4hmBx5SFxTmY6inUarflcZnxKoLkpFpIABTwj7RZSOoTwDanXFmfda2bviGW9SN5IjmNKddG9BGMKggWkDcy8nF3U+QA1JmjKgSZLrmKPCTza3ycWVBU4CYbnfww==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Y1c9lQ3wZ/NaJa5sV0AexiH1fCfTRpsF7NxGI19Zg14=;
 b=QmcPWBkkEhACiRkzt8gnpqxKCJf9nEe2hzsVpoW99EABCT6DEMOiAyE813nXcGl5smQjX6Eqb3DIbwPWjVnC+bdTo6SOxUApiB9xXy7fhLhkymwWrl0btvQh4ROJkK38h0QAmuTS2d6sh0q2kddItIp8cdWj4s7XMmxGbAuu7Cs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <f784f8f5-e0b7-424e-82c1-c98cdf070cd3@amd.com>
Date: Mon, 25 May 2026 12:18:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: gic-v3: Preserve ARE_NS when disabling the
 distributor
To: Mykola Kvach <xakep.amatop@gmail.com>, <xen-devel@lists.xenproject.org>
CC: Luca Fancellu <luca.fancellu@arm.com>, Mykola Kvach
	<mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>
References: <0bc584018c025ee9fa5557276b9f3914ca9205d4.1779200467.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0bc584018c025ee9fa5557276b9f3914ca9205d4.1779200467.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A104:EE_|MN2PR12MB4287:EE_
X-MS-Office365-Filtering-Correlation-Id: 1497a9e7-6a61-498e-0f9c-08deba46fa8e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|22082099003|56012099003|18002099003|11063799006|6133799003;
X-Microsoft-Antispam-Message-Info:
	e3MiNPELZCd5klBOeJbuhv7ge3dB8nAQS4RInunSDGRNhTYG9ubqpRxks9a6ZwOgqg7+xrZkwJul3H0ozsPhcjDCOIR56dPPUXYTvBB8qz8waE2+TUg7wGU0wyEai6dV9KkJSPhK0bBiApWJI4bIU/a8NfUFStTIppj1ppLueNGfl3nIs4SDTlSTA55AL3g7M4/TK1lZOzzbIWi+hNKZ5SobnhAJRD91hcy7T7HxCFp0WiuuyYTZ/3Tu5EIgNsAwdfBNkFTuqrLYcDa4wxo73UZfY0yl5gKsW3eRF/TjIRhmJt0Tmemw/ebAyupAdTqv6q/GNDcVAaLwprG7Ktujai/nfT+3gx89Xg4Kk7OuiPsdVrHjuwcGuDjyEP00SRYSR+Gc3ugIAY2iAH9B2kOT+eTv3+nZeFqjvXRCgHvYaYJAZqe16sD5IDOdwNGbPNTxdWOzrO//HcZ0BwjFHG7PI4O0U2QrDpSDF35AXRCdZXByFRb//4rnkAW4U03UvWe4vyvRIwLX/WprPVI4L0VsItLts2cyoYTfQ24guQrpjpXrU6Vt2NuQMiBQsjBXrYxverT2gT4MN63EipRpX/gVL0zQ+/MTuhhAJZ50L6mbM07gJ299CMoqlhVa+KsZJ6Y0OObIHA4t1utQDfzvftQk4pqtmG+x3s0wSr79zxeFZWKBznskEMXwQnmLKUeUaEU1I7Qp1yCheywiLoSeKgWRrZIThZu8kcMTx7vB66OTx/0=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(22082099003)(56012099003)(18002099003)(11063799006)(6133799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	hZ9ud70jx2H3AV4ODoNaC20FgJUBmXkAwe15C5JTuUxv1Hjhl5T5LDYuaBJYXVt6/5RLHkW0H9zLwIkzQaAHfacUqyskjAk7oPixElBy5/XxFhDEydozV4HbIYASjr7mNhaO4H/5QrcbsgvPVoNzTxYPHZGzOdbDzVOrQvSuA/l8wBryrGiYDKGhHxwK5aNAVKSlUqTq5QczrVBXH32ecxPRu9JvNAgBfQiljdP69IoratEUallf8g7FfKrSsSZHL69lbnTSWE3L+rMhCMK8ApdshEUJQsCQqKLIe+1KW6+lQFmH+rXqB02BDTVnThbdRa+McWee+XPdYfCatNbucocXfzOO1nen9HVOhgLanolskARVgonnSfInh49BFevKVupmvnjSy1Fl8UvjAfolHABFk3NgTT79ql3hJF+OC7j8LkuSx0OhDaIUsEIVUOYC
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 10:18:34.6832
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1497a9e7-6a61-498e-0f9c-08deba46fa8e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A104.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4287
X-purgate-ID: tlsNG-c201ff/1779704319-E0660443-A860B16C/0/0
X-purgate-type: clean
X-purgate-size: 1036


On 19-May-26 16:31, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> gicv3_dist_init() disables the distributor before reprogramming the
> global interrupt state. It used to do this by writing 0 to GICD_CTLR.
> 
> On a system where firmware has already enabled Non-secure affinity
> routing, a zero write clears the Non-secure view's GICD_CTLR.ARE_NS bit.
> Arm IHI 0069H.b, section 2.3.3 ("Changing affinity routing enables"),
> states that changing GICD_CTLR.ARE_NS from 1 to 0 is UNPREDICTABLE. The
> GICD_CTLR register description in section 12.9.4 carries the same rule
> for the ARE_NS field.
> 
> Preserve ARE_NS while clearing the group enable bits. If firmware left
> ARE_NS clear, the value written is still 0, preserving the existing
> initialization flow.
> 
> Fixes: bc183a0235e0 ("xen/arm: Add support for GIC v3")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

@Oleksii, can we ask for a release ack here?

~Michal



From xen-devel-bounces@lists.xenproject.org Mon May 25 10:31:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 10:31:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319153.1586864 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRSat-00072k-Ml; Mon, 25 May 2026 10:31:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319153.1586864; Mon, 25 May 2026 10:31:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRSat-00072d-Jy; Mon, 25 May 2026 10:31:35 +0000
Received: by outflank-mailman (input) for mailman id 1319153;
 Mon, 25 May 2026 10:31:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wRSar-00072X-Jc
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 10:31:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRSaq-000HQ9-HR
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 12:31:32 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a1424db-e002-0a2a0a5209dd-0a2a4501a00a-48
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 12:31:32 +0200
Received: from [209.85.218.47] (helo=mail-ej1-f47.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a142504-c1f2-0a2a45010019-d155da2fbd4d-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 12:31:32 +0200
Received: by mail-ej1-f47.google.com with SMTP id
 a640c23a62f3a-bdbcc6c4500so646485066b.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 03:31:32 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc2c4e3d5sm389245266b.15.2026.05.25.03.31.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 May 2026 03:31:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779705092; x=1780309892; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=vLWh1GxdQcROq+aAV7QgtzGQetrtaB+xsOL2qAt5NDY=;
        b=A5GGErHxWsh0CMHHd26hG50Fu7uwixJGkTbZpKEW+dyalkmOznvKuIoaij/uqTAzWw
         Pr5iUQHmNHmVC4y2OKaIZgziazsOKc1g4AAWdpq0wCQVrlqVoCSr82ZjUIL1ieU2Ccuh
         RWJsGccbY2OL9tF0ciGpiAvdKovoeVX5xyRtZivBFtmlfaOoVQBMOLIWKperhZ6kFYLN
         nKiLS70LkSocdcx2FVqFy5Goenk6XGfW8mzHX5mcEixrhynb3L4pUP15Fm+XnknDMq5A
         kzdQDQihPiizx/FiDmKN9Y/e29ge51s/xF+1c+38Ry1+MLCwYmsBLpXpS60NYtaKE9fs
         3FWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779705092; x=1780309892;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=vLWh1GxdQcROq+aAV7QgtzGQetrtaB+xsOL2qAt5NDY=;
        b=mlfhZcyIVtcmpT6mX1HzoAEhg5xkhC0Co11E6UY75BuC6H46TCYXiorl10dqhw04aF
         8X2WFDNPNqXu1Q8c2M8AC+rPuuxV7e+DKdO7TMXl9+y37m8x93JZPnX5LZuVGbWeUT/o
         M9nzuIsCdRggpwalKc0vGrb0PczjePB8KIyo4QWkjKGxZazyEY1C5yJgS9scgrJZZEOm
         GmObWLcMDIE+P2e0Dep5qpN1Fe85AJuoyLuf4wHv57266R+JLhXQ4HNjP98eCwj4AOdP
         lfdezbcVtGT7J7+AYnRY53cOhfCcUZzH8oSSMPKgIC5kXPFufaMJsHmvfHtXHfNpVU4K
         LBhA==
X-Forwarded-Encrypted: i=1; AFNElJ/DwjoOtS2ToJZpcPJTqJk36Lc+4FOMxGMc6ejFM5S7/ebKQMXI4zhgVV+0TlrD0pe8sPRZb2tU5xQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywl7GNzlC5t+4dki2+6vIEFoR6mRjJXYGt5Eo27p/7vYTtIXeeN
	/QHfhWrTBiz+30Dsot8caLn3smYtM1Ky6Jmfxpqh3hMCaTkLcGuooRak
X-Gm-Gg: Acq92OFKspEKC6wfa9u0b65T0m+oUfKBixUYuJvSnAbOeGkXjNHNFFyLbrwuUvLyGo6
	7FFEI/eyyzR0i8u1V+/eZ/V7RYWxwJKzBgQtxvryh4RY1IR5gqdi/OgjpzgDkJeYVw+TkCZ1FRW
	69YpJNCp32C3ai+2pgy6zBkOxuZwwpGczbBRvQf6jLdDVouCMotJMkPc9EPTr3Ft4zpcfCQjRtL
	3HFged2+6H4L+6itpeFrUIrli1Wo3O0W/ouy6/tc1GajwfFI3AmcR6lYl3ktTWFGF+m+rOYwNsq
	bifLsonYdWouyXPi1p/oIAh5CHkTxjOqNd+JQb11QjhmZvW+mLIV92tN4t1+Ka0VOE/jJw7Vn3q
	4tRbAAd7Q0RL+fN/9HOfqECySawcDdwSVfpPQZECSiAoIEOQz4OurLUsLyoHEQrxTUioLha0ER0
	5yvYQnglftdZpKWrhbapGUkn5GPYR+sYyD2xTCiJvKS1XFOdV7hQusk8JnIoBT41/fkHAB1ZVZz
	7A=
X-Received: by 2002:a17:906:df09:b0:be2:d66:eb21 with SMTP id a640c23a62f3a-be20d66f9e0mr41406366b.26.1779705091644;
        Mon, 25 May 2026 03:31:31 -0700 (PDT)
Message-ID: <021315b7-7ac3-4cf3-8089-2de244b64de5@gmail.com>
Date: Mon, 25 May 2026 12:31:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/2] xen/common: llc-coloring parser fixes
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Carlo Nonato <carlo.nonato@minervasys.tech>,
 Marco Solieri <marco.solieri@minervasys.tech>,
 Luca Miccio <luca.miccio@amd.com>, Mykola Kvach <mykola_kvach@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1779388510.git.mykola_kvach@epam.com>
 <1524b146-cb05-441b-a055-ce3337d83b44@amd.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <1524b146-cb05-441b-a055-ce3337d83b44@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1779705092-AFD51FF4-A9685F57/10/73395122804
X-purgate-type: spam
X-purgate-size: 219



On 5/25/26 12:06 PM, Orzel, Michal wrote:
> CC: Oleksii
> 
> @Oleksii, can we ask for your release ack for this series?

Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon May 25 10:42:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 10:42:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319149.1586873 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRSla-0000c8-LG; Mon, 25 May 2026 10:42:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319149.1586873; Mon, 25 May 2026 10:42:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRSla-0000c1-IX; Mon, 25 May 2026 10:42:38 +0000
Received: by outflank-mailman (input) for mailman id 1319149;
 Mon, 25 May 2026 10:26:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <frn1furkan10@gmail.com>) id 1wRSVX-0005lI-Oc
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 10:26:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRSVW-000GgL-Tw
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 12:26:02 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <frn1furkan10@gmail.com>)
 id 6a14236e-bab6-0a2a0a5309dd-0a2a4505ca10-42
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 12:26:02 +0200
Received: from [209.85.208.43] (helo=mail-ed1-f43.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <frn1furkan10@gmail.com>)
 id 6a1423ba-aaa8-0a2a45050019-d155d02bb915-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 12:26:02 +0200
Received: by mail-ed1-f43.google.com with SMTP id
 4fb4d7f45d1cf-6896c80480cso1598102a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 03:26:02 -0700 (PDT)
Received: from notebook.. ([88.230.47.198]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-688baf2e7adsm3761499a12.20.2026.05.25.03.25.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 25 May 2026 03:26:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779704762; x=1780309562; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=5d3Ya/F7IfVOFokA2NomGTXVfkbkxpmf5NDrwFphHO0=;
        b=WwZwwnsuvK5FXc5gFsaujIP3dAvQTMHHNJ+CCFlNQNhWR57v3CTqKqG0PkeijFVmhe
         OwAVNHtmZmxP+ArPjdsc9BKU37PoaCy+T37CWaUuJ4xiHXBLtzE+MZZzde8b1WB4Bfqs
         SywLm3jevyoWg/IMTo5yr46XU0ElVuG6SjI5F24mG8VZ7osI6MEd3ne9TtPR3125X+eF
         t2ev9eMr5hUYSV/H6n/qDp1re4LrP3pQBCSrcZUq6hm8JNlJt4z/aTr0j37ywRqTWO+h
         IzOeQRGnh3+WFLU/NUPaMO8vVibYT1jT2tQs59Me9ngrAEZ4nWh0fkaXdlXFnSDHmUUU
         dfkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779704762; x=1780309562;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5d3Ya/F7IfVOFokA2NomGTXVfkbkxpmf5NDrwFphHO0=;
        b=W2f7g5Mz1Lgkg0kIikz/z/1nHDsWH3Gl0IKYtE1ZZBUics64Ob6EC6smEIJog1gfVt
         Q7+H/Mrl/pwy2qoC78Se3zVVedEcLJV1iS2ZJzJVb8HP+q1lmTGC7r8IdYbZ4TfQ3oiC
         RHahMsl8bmjngkdmCVaD1Bua7VKYXe6OFwR4dX806BS7hhrfne5oUelBg6ZPleL8QoK6
         KB3F4OFEyuQeP/6jSvQ+bHST/6IlcgqvYYz18iDD+s5DTfYkPovMJH3Wecsn1ZKjSrqs
         jWwE9vxma3hA9ick20GVFU+/TxKM3g0EKLZJ6QtIYafvKAG/+rVH+0qlcb5Y6AuV+0ek
         CG6g==
X-Gm-Message-State: AOJu0YxxUzrXIDFjjl+FosN2GWx5AARtsSVpeeCo9C7MH8SP4OAvMSeO
	36TK8WnHQ7TPrIHGRvd5U32TyoMk84XpOExxm64Xbx3P62hnHl5i0H8Ofg4VEw==
X-Gm-Gg: Acq92OGzaox9kiE/EWvAaS/4TL11XElvdhhey5w4NKZ4c9e8tTLAUOPNtQOapgzT+c9
	Q8YY/MQnBcT5Z22h3Psf5XmC0p32u/gqT2kYPdTzF9UeshfOHInLQ221L5KFMz0gIdUfPWzboSv
	FaqEBGDr/lvH5wikHtGG50Rek627hBIqtAsdDZqE0VOspSZIsYpbtVi/UYojA5tLTtZna5pPwkr
	Xca7yAusdN8qqLel2Ldki7aUm8mDdESktqS7cY9ShS8xYA0Sjw7RhcFla/n6rQvSaNZTuQednCO
	jDFIxN+T03lcqGEBQKMmeLPSns9loBrs3xGE9p6Aq3tUMGH0vM8N5mWqvVJhHM2cyyA9ft5i+E5
	WxOhyqlISC0Tu9hTlX9BSNSIJ0DUWvUSAoH9Kdgfe2QCfFebSZxXQwgdtN5e/765VhG8uWNZHql
	h0CmkM+ffYh4Vvcbt9uqfRxfY=
X-Received: by 2002:a05:6402:42d5:b0:689:9e58:f2de with SMTP id 4fb4d7f45d1cf-6899e58f312mr1598350a12.1.1779704762201;
        Mon, 25 May 2026 03:26:02 -0700 (PDT)
From: Furkan Caliskan <frn1furkan10@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: dfaggioli@suse.com,
	jgross@suse.com,
	gwd@xenproject.org,
	stewart.hildebrand@amd.com,
	jbeulich@suse.com,
	Furkan Caliskan <frn1furkan10@gmail.com>
Subject: [PATCH] xen/sched: fix stale file path comments in common/sched directory
Date: Mon, 25 May 2026 13:25:38 +0300
Message-Id: <20260525102539.27050-1-frn1furkan10@gmail.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1779704762-DAF6E443-E18A59D2/0/0
X-purgate-type: clean
X-purgate-size: 4076

Commit 6cb4b01c03 ("xen/sched: move schedulers and cpupool coding to
dedicated directory") moved the scheduler files from xen/common/ to
xen/common/sched and renamed some of them, but did not update the
in-file path comments at the top of each file.

Update the comments to reflect the current file locations.

Signed-off-by: Furkan Caliskan <frn1furkan10@gmail.com>
---
 xen/common/sched/arinc653.c     | 2 +-
 xen/common/sched/boot-cpupool.c | 2 +-
 xen/common/sched/compat.c       | 2 +-
 xen/common/sched/core.c         | 2 +-
 xen/common/sched/cpupool.c      | 2 +-
 xen/common/sched/credit.c       | 2 +-
 xen/common/sched/credit2.c      | 2 +-
 xen/common/sched/null.c         | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/xen/common/sched/arinc653.c b/xen/common/sched/arinc653.c
index d8a5380557..f509915e9b 100644
--- a/xen/common/sched/arinc653.c
+++ b/xen/common/sched/arinc653.c
@@ -1,5 +1,5 @@
 /******************************************************************************
- * sched_arinc653.c
+ * common/sched/arinc653.c
  *
  * An ARINC653-compatible scheduling algorithm for use in Xen.
  *
diff --git a/xen/common/sched/boot-cpupool.c b/xen/common/sched/boot-cpupool.c
index 03be73efdd..38beec8ec7 100644
--- a/xen/common/sched/boot-cpupool.c
+++ b/xen/common/sched/boot-cpupool.c
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
- * xen/common/boot_cpupools.c
+ * common/sched/boot-cpupool.c
  *
  * Code to create cpupools at boot time.
  *
diff --git a/xen/common/sched/compat.c b/xen/common/sched/compat.c
index a02204ec9a..1bbbd8f717 100644
--- a/xen/common/sched/compat.c
+++ b/xen/common/sched/compat.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * schedule.c
+ * common/sched/compat.c
  *
  */
 
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index a57d5dd929..e4577d41f7 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -4,7 +4,7 @@
  * (C) 2004      - Mark Williamson - Intel Research Cambridge
  ****************************************************************************
  *
- *        File: common/schedule.c
+ *        File: common/sched/core.c
  *      Author: Rolf Neugebauer & Keir Fraser
  *              Updated for generic API by Mark Williamson
  *
diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index f5459c2779..b1e0884842 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -1,5 +1,5 @@
 /******************************************************************************
- * cpupool.c
+ * common/sched/cpupool.c
  * 
  * Generic cpupool-handling functions.
  *
diff --git a/xen/common/sched/credit.c b/xen/common/sched/credit.c
index e9a91d11c3..9c8075338e 100644
--- a/xen/common/sched/credit.c
+++ b/xen/common/sched/credit.c
@@ -2,7 +2,7 @@
  * (C) 2005-2006 - Emmanuel Ackaouy - XenSource Inc.
  ****************************************************************************
  *
- *        File: common/csched_credit.c
+ *        File: common/sched/credit.c
  *      Author: Emmanuel Ackaouy
  *
  * Description: Credit-based SMP CPU scheduler
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index 75316d42b7..04e7b9a28c 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -3,7 +3,7 @@
  * (C) 2009 - George Dunlap - Citrix Systems R&D UK, Ltd
  ****************************************************************************
  *
- *        File: common/sched_credit2.c
+ *        File: common/sched/credit2.c
  *      Author: George Dunlap
  *
  * Description: Credit-based SMP CPU scheduler
diff --git a/xen/common/sched/null.c b/xen/common/sched/null.c
index c8e327e3cd..aa136fa729 100644
--- a/xen/common/sched/null.c
+++ b/xen/common/sched/null.c
@@ -1,5 +1,5 @@
 /*
- * xen/common/sched_null.c
+ * common/sched/null.c
  *
  *  Copyright (c) 2017, Dario Faggioli, Citrix Ltd
  *
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon May 25 10:58:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 10:58:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319172.1586881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRT0m-0002bK-Vb; Mon, 25 May 2026 10:58:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319172.1586881; Mon, 25 May 2026 10:58:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRT0m-0002bD-T1; Mon, 25 May 2026 10:58:20 +0000
Received: by outflank-mailman (input) for mailman id 1319172;
 Mon, 25 May 2026 10:58:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wRT0l-0002ar-TZ
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 10:58:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRT0l-006QDe-5R
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 12:58:19 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a142af3-bab6-0a2a0a5309dd-0a2a450797ac-48
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 12:58:19 +0200
Received: from [52.101.52.38]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a142b49-229c-0a2a45070019-3465342661b6-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 12:58:18 +0200
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by MN2PR03MB5328.namprd03.prod.outlook.com (2603:10b6:208:1e2::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.18; Mon, 25 May
 2026 10:58:15 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::20d8:6571:d4aa:166c]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::20d8:6571:d4aa:166c%6]) with mapi id 15.21.0048.019; Mon, 25 May 2026
 10:58:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Uz0o098Vt6XVEnmbCckUTGvm51VHMXSHHSDXlcQuepx+F+yKB2salrqKtR2hxpEDyBLHwdsreuRIrxaIUDM90UjmqRPSoTdRMURHgk9aiRwlthHU7frLb0aAo9p7dN31cMNCGq1uq5bmw08lNn8uG9rL8FXdljbZ8PcnAgUQUj7ldpY4MoAX7XfWORBls4Jge55FET8XUHbT134+dP36/1xGl5AZSVz445WaQ+jUenU95B4tJCPSl4cGM5bipbAxSF8cwjqmIgraxFnxFXeljZ5ERaYnyGWUHCvTUkGhRYRJaQDkc1GyKBJTB56UqjZ/AWztHCW6wuhMMVxf4YNCEg==
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=7F07p5VRviLL0HQpyMpbJ8pIPEw1CJ8aQ+kAfwfJwpk=;
 b=kl5AOLfnv4hstgfpOYwm+on/SHRpcFIscCDiYbc2XwbpVo7LbhtiIFzbvljLdc1KM61B1OGDFjkT2HKSJyCNGd+B7k0AzyAWo7usvL3y6RDuOL/eyMfqaInFe4jMwg9McnKl/O0huvCflwQ8JHdVRZ5LzuHozhyoy1tZfDXRGG1cW4Bvh5A0trcpvS+zi/HgyRniSd8G+0R4uLpeVsBMF+Aqpu31H6Rr7XCFkt+SJjkweNUGCe83A3UQWrdVr8cclieX8Kb40f8EHFuVm07QkqmO2KI9JMB5ZmTDRUnsNlZjeMCMY07VR0slTaKL9o8882jUArMB6iHJFCWfav/zHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7F07p5VRviLL0HQpyMpbJ8pIPEw1CJ8aQ+kAfwfJwpk=;
 b=Jd5JhbqOy3egNcZv2eYlAkjfnXqHtfPZXNnkakCgTst6LaM43Ylwku2vzSPsZp6cxGZb9BizSshlq8g+GWiA3sn2iGJ4MzIB/UERsrtOivojQadWFnk0c1x0V+cCjSmelwsm/ulDlC5auAtt7pFp5Uq56CGNn7+eS1xXr7A+rEE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 25 May 2026 12:58:10 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Furkan Caliskan <frn1furkan10@gmail.com>
Cc: xen-devel@lists.xenproject.org, dfaggioli@suse.com, jgross@suse.com,
	gwd@xenproject.org, stewart.hildebrand@amd.com, jbeulich@suse.com
Subject: Re: [PATCH] xen/sched: fix stale file path comments in common/sched
 directory
Message-ID: <ahQrQnWMiWTE1joR@macbook.local>
References: <20260525102539.27050-1-frn1furkan10@gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260525102539.27050-1-frn1furkan10@gmail.com>
X-ClientProxiedBy: PA7P264CA0067.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:2de::12) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|MN2PR03MB5328:EE_
X-MS-Office365-Filtering-Correlation-Id: 6f39bc1d-708f-4e89-0c49-08deba4c84b8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|56012099003|22082099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	+DwA2pzb8als+DHptwZFjnBBuIkboWIePxvasVHHdkY+Gh2yfhabsubNC4tox3pBgLHiuIm1ME59SfKkMTzaxnBTC0AJyQA3FC459mIRClbYZGmSX8donpk91n2pXYPoX967Npo5PSLlGdRvmN3DDPBqgUQwDHsuxVOuirZOkod2ZcIWhkuxJeSIipjlboXBuzAMKBvBzsq9ggl9673XDJ4cyKuF8yRc2bEU+KJceNI19G9Q45hF2Fx5GnADpby1wZvFq1IQXcSiBKXCqePI9aNIM8X3ChQevryy9aYZ68ACS63DZY6ifyJyLxXV8UICr8Umijl+SCdKHw5WcvkL6IAYC69qG/w6ohGUsN6NeUEPoWRc8ilOW3907PTjAAPhhLgCR6b4zIwm50pRvp9X2T28Rz4qWlUmj7KocTtNnf0BC61bmC7/MX12EvXGyFWLrMptZdNd+z9nijphu/RxJe/OsYEoUXRDMDBxnNdzu2C9oqudjBcxlzPiRu702X1Nv/RsG4KEg40zo1Ry2pD+hGdTFwgK4rv0KR1WAEUVaTSVlEOMkIZ4eUYmP/9RNZakpMhnFomf8NOeF9CQw9CXREPPxCU3/krKVziqMFshxLoZADH2s4BFh85X0UdM9lXZvZ8Bzc2w1yqR+PjGswtmW2HIbFayoLqIxOQnEH0YZjkS2+3kEzkXOiHRXZyY0m/j
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(56012099003)(22082099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Vy9nNktXVEdxWEl2MXpNOUh2cVlKVHFiQWNDbWJwVVhXVU5ucHV1U2R0R1Zx?=
 =?utf-8?B?emU1eW1CQUxCeksrNGQ0ajgvZlAxWXlsVEp2bHNmd0hSOEVZUDJwRjNzZjZP?=
 =?utf-8?B?dXViT3V2eWUvQ1JRbDlRblY2YnlMYlZkSm51Y01YTFgzekRrNEJuaDQrSVdu?=
 =?utf-8?B?Y0M0Vm0vZmljOE8zK1Z6QytFclFMTmtXNlBlQUhOOGZzQjU2SE1hamg1R0dX?=
 =?utf-8?B?U1ltMmdSM0lwUjRpQnFzTVZmc2lQRUVCTDdMUGdnSzJxUkJiZUlNNGNJeml2?=
 =?utf-8?B?SHp3TFcwUXNCd1NDbEpIVTc1MHdlbDZQQkgyeDhBWkFodTI0RkVBVTFwTW5S?=
 =?utf-8?B?ZXJjQzJlRUxNMkVpalpQOWtoSkthYXk2aGFwbEI0ZTdWODArdlNEb1VlS01V?=
 =?utf-8?B?bE9kWmRwa296U3VhRnovWVdxMDRKTUsvVzNOeDExRkJzb0dDUWRrRnZwQ1hs?=
 =?utf-8?B?cWVqUE45d0NON1NTcnFCS0VzN3VENEpZdHlRVGROS2ptZ1JMWkxlcWJOODVy?=
 =?utf-8?B?V28xVE1wUzd6ODVvc0FUSWxvcHRjamp5OFllYmZobkl0Y1ZBU3dWMVBORk1D?=
 =?utf-8?B?dmVpaElkTXhvQXVKV3IzaXY4VXZ0c21CT05BM0lwUjRYWUU3NE1KZHQvWnVy?=
 =?utf-8?B?dTJyMEtmdVB0c0dRWUMxZ3ZKVkpjZzBmb0J2N3VPSFY3aXRNcVc4VElIcmZ2?=
 =?utf-8?B?Y0N5QVp5bzdES1pGTHdZS0VCN0FyLzVlcXMzS3cvYTY1eW5YeFFqZTRSRXZI?=
 =?utf-8?B?Q2taejRPVmoyUCtERjlOQWVQcExzSmo0R1ZxU1FYR1NyOS9RTmwwRFpWWFJy?=
 =?utf-8?B?cWVrTGZmdUtlMkdUdWZIdXIwWi9NQk5SSFRReFo2NVZPRDk5dkc5dkJhZG81?=
 =?utf-8?B?MmpnbEhFS2lHYnZXbGc5NitzNXZWZDBQSS9BeTJFSUJRZFhTNnp0MU5KVDNw?=
 =?utf-8?B?MFBuck0vd1IramdNV1JBRmdjWDJ3RjA0c2trSS9vRmM2V0UvbHpic3dCRi95?=
 =?utf-8?B?RTJYZnE1OXAzUGR0VndMV0pIRzF4YlB3TndZZGljclluRHBLSDczOEFKd2Z0?=
 =?utf-8?B?Z1VtVnA0TTUrMlRhVVJ0aFRqTmNhRUJIYStldWs2Q29RbVFtVmI4MElTM2ha?=
 =?utf-8?B?ZjZlZUw3cmY1Q0wvSnUvTytyd3o3dW1HV0tZem9XY2VycG4xV1d4Qi9jYVox?=
 =?utf-8?B?azZxS0NhU0ltMDlJUTEwczhFTzBubU5pL241QVhPL3JnZVlkV0h1a2NMRnho?=
 =?utf-8?B?NFR1TVhnUTFaT3UxbTVuSnFNN3p6bjNhVENGdUpxUlloL0liL2lJOW5uNmw0?=
 =?utf-8?B?NUZETTh2eDJFU3RkME11NkhmT3RJYW8xWTZLa09XajhKSHZSa1ljeTY3UTZI?=
 =?utf-8?B?bHZBc0JxaFg4b2NXOUdhdTN5UUhtdDBvSVIzWGNJa21JYk5kYmhJWnN2dTVr?=
 =?utf-8?B?K29oWUZTNStwTEhxQ3g3WUpBV1VFaG9ZUEtpdVRuZVJQZ0p4S0VvZTBuc1dJ?=
 =?utf-8?B?N2orYzRSNC8zcTN4T2JhdVp1RVEza2FIVkU2T1RpMkwyMG41cmFjRlVTa1Vo?=
 =?utf-8?B?NGoydWZXNzJJQ2gxOHpaSGNhM0lJdnFaQW0vZ3JLWjFFS1lWT0U3dHp2YTdR?=
 =?utf-8?B?MVpsV2k4cjhpTlZjN1VHUmFkV1NFT05ZMm1ZMnhNbWtTakFkWFFlbWZmTEJl?=
 =?utf-8?B?VXpuQUJOZmlVaytZVENIUkVBWjFUTTZTR1dyZlNHZFM0MFJZV04yYnhhV0RP?=
 =?utf-8?B?RG1FK29OR1h3eGgrYUtzYVlFOGd5OVBYQTlxQzA3N2RwN0J2UjduNytra2tl?=
 =?utf-8?B?UHR0bVZVM1JEZmN1dEhaNDYwbHRsRmZKeVpBNDhpV3crcGhqVUhhWGJKeEZT?=
 =?utf-8?B?eWpsb09sMUR1UEoxMVBNY1I3Rzl2VlBVdmJsbm1VcnFZZGQrVVorWDU5SzBG?=
 =?utf-8?B?LzROc2ZwSGJRSkVGWlVZK1VNVHVtMzVzYzQxRmZtTTlnVVROaWxCWHl5Mm9P?=
 =?utf-8?B?WEZlTy9GS1NFUjJ2QUoxb0JmSlduZHZKeTlTK25Tek9aMWlFOS9YcFpQSFZk?=
 =?utf-8?B?Q3p0cEZhMnYyMVpkRGQvN25MTXFRd0FGNEprYzRSbUo5aERxcDZ4dEFCcUpD?=
 =?utf-8?B?djlsQSt4bERqakxDNkFNR1ZJOHRHTFNvYlBLcTZGWHpYR2kyT0FqeU9uN2x4?=
 =?utf-8?B?b0s3VVJtZkN2NkpkQlB2ck05VElOcDZkNDJOTHM0em5WZENtb0JUVmlEVFZr?=
 =?utf-8?B?a0lhcGRTZlcreDVlSE1BdXFxSTg3NEFSVUViNWJBN1BCZldlUkJxd25Kb2Qy?=
 =?utf-8?B?WkpsZ21JYzR2dlBGKzBEaGhoSmN4alhINFlIR01QQUFwcmxnaU9mUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6f39bc1d-708f-4e89-0c49-08deba4c84b8
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 10:58:15.2409
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: lq2uxlDjfbExFmiQcq8ly5AAXqbaHwgCT7eA5ZAgOEvBpNOAOieqIGPPVamj01s947w8FyVVKa7rNRw5RJYj0w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5328
X-purgate-ID: tlsNG-ef75cf/1779706699-21D6FC48-F3F84FAF/0/0
X-purgate-type: clean
X-purgate-size: 537

On Mon, May 25, 2026 at 01:25:38PM +0300, Furkan Caliskan wrote:
> Commit 6cb4b01c03 ("xen/sched: move schedulers and cpupool coding to
> dedicated directory") moved the scheduler files from xen/common/ to
> xen/common/sched and renamed some of them, but did not update the
> in-file path comments at the top of each file.
> 
> Update the comments to reflect the current file locations.

FWIW, if we have to modify those lines I would just delete them, I
don't think they add anything meaningful to the file.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon May 25 11:50:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 11:50:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319189.1586890 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRTof-0001AC-ML; Mon, 25 May 2026 11:49:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319189.1586890; Mon, 25 May 2026 11:49:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRTof-0001A5-JS; Mon, 25 May 2026 11:49:53 +0000
Received: by outflank-mailman (input) for mailman id 1319189;
 Mon, 25 May 2026 11:49:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wRTod-00019x-Ve
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 11:49:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRToc-006Zda-Ta
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 13:49:50 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a143755-5cb7-0a2a0a5109dd-0a2a4504a612-16
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 13:49:50 +0200
Received: from [209.85.218.54] (helo=mail-ej1-f54.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a14375e-1dec-0a2a45040019-d155da36bcd3-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 13:49:50 +0200
Received: by mail-ej1-f54.google.com with SMTP id
 a640c23a62f3a-bcd3c190f71so1534788166b.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 04:49:50 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.36]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc5eced0asm393643566b.39.2026.05.25.04.49.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 25 May 2026 04:49:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779709790; x=1780314590; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=1jI01HwKooNheF6pO192at6Bii7Ij61+AZWCIl1TlZE=;
        b=Bt6anAjb/soC4PkBhlL6dR9AD7KpDJmp/XMZotXFIeheBt15ZbkBIMzbAiCJdKlg4a
         x7rEqLxIT8tGkO2GpTLL7lBg6qpJPxrV+HeEljbwx+4PgJ+AxWMUfjbaqGC7JbkEd1GQ
         XtLW6ulZwOba/GCIXWu8LMMysdDQ41d9XaaQC8o/Jad9pH7aPUXCcgEk7IhZDepkk6XZ
         eu0fz4emN5TRPB31+oY9lbQ+EtO1YnKyYEkeuqcZ0v0yn3FPT0UQYtcDkgksCapS42q5
         ekBn9yfqW9tZ+a14AVB5n18s8GP0tGQ8rhG8NhDUj8a9qgSE8oSW+2CLE2KADir5I7X7
         quSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779709790; x=1780314590;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1jI01HwKooNheF6pO192at6Bii7Ij61+AZWCIl1TlZE=;
        b=adbMhumSrbkXqk7W3moT3Oj1+NnA1IwookqxG+sRq2RcVJSxewLhucuSQumE3JTBXl
         BRf2r4rkBhok7rOiS1LOoFaDjmlFzVjZZO4iWS52lnYGVADiBKUef+8vVC8XjI3RVwCL
         HCU2Y5bRdbhwFPECz1Imj5R/QvM8LMLwJgLUTF+NGONAh/u8Vzd7CR2MqplgsCvrEJMd
         wSgNi+3smgwP14Ntb6I8gjHo3gv4sKrdT6pTUIVcPyS/FPrC4GQ8/kM687yuKY4tMUIG
         bIZwXG/22Dynol8mbYiSDxdkPi83eRcW27eJyJhWaz2G6nR3fqdGCck8k5XnMaWCd9hi
         wEuw==
X-Gm-Message-State: AOJu0YyAcIRfleDoxtYzNb2zHCR2D2yMTmJSa7/hpzIS+exVfkWLmPLz
	vIspL0mJxOuEqkkq5kfIN1oWxUuo5Fek76o2SD8HB8LBIgh/bsvCnjRNqbXqi/uc
X-Gm-Gg: Acq92OEg96nNTkgD59EsE+41olO9zZpW6DozJ3NzM7/QA9PpPLMv9scgwOxDpx+cgfd
	HKc5sU/KqeApGhDMUgUqVqeyehABZ4VHWVXvT0r1GLIp0BHLpbyHWppRWGmUOZ05vysPK3Zg+sf
	MptFnR+dMjrtDgverTxU1RBUtSFabK8ZILM3IsBunVlyGqketEs9MB4f306MeFmni69iCcY6hfw
	E7X91TGARZUz0EMwwI7Bl1vVPNYDZd/7cJ9yDj9qQrp6opgnF6qSbSFyIJbxx1K5sUeGfPBxma4
	B06XsAVpe957GSj1MvJXymzep/e9m7sZ7QpYRzjAxKmInnwGom3pmt2dBq5wXjgJhPtZDiqZL9d
	pnb/q7ZuHLxZylrTH8mrBRm/AbBC9Yg8gpw+JhvXZPZnm79jkbIsfmkvP/oKpR+jRMLNjR/oi1v
	bP6t+bdzvC5O4Cha8Cd403y/M84Oc2zRnm06NE+xyTaPDEmw4=
X-Received: by 2002:a17:907:c06:b0:bd4:6da5:d5b2 with SMTP id a640c23a62f3a-bdd23cfc4d1mr766022466b.1.1779709789998;
        Mon, 25 May 2026 04:49:49 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Luca Miccio <lucmiccio@gmail.com>,
	Carlo Nonato <carlo.nonato@minervasys.tech>,
	Marco Solieri <marco.solieri@minervasys.tech>,
	Luca Fancellu <luca.fancellu@arm.com>
Subject: [PATCH v2] xen/arm: scan CLIDR Ctype fields upwards when probing LLC
Date: Mon, 25 May 2026 14:47:35 +0300
Message-ID: <fc9f1babe0c320214c03b1d294398d411fa41254.1779708833.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1779709790-2A9623FF-921348D1/0/0
X-purgate-type: clean
X-purgate-size: 4130

From: Mykola Kvach <mykola_kvach@epam.com>

get_llc_way_size() currently scans CLIDR_EL1 Ctype fields from the
highest level downwards and stops at the first unified cache it finds.

However, CLIDR_EL1 describes the cache hierarchy from Ctype1 upwards.
Arm ARM DDI 0487J.a, D19.2.27 says that once software has seen a
Ctype value of 0b000 while reading from Ctype1 upwards, no caches
manageable by the architected set/way maintenance instructions exist at
further-out levels, and the higher Ctype fields must be ignored.

The current reverse scan can therefore select a unified cache level from
a Ctype field above the first no-cache level. Such a field is not part of
the architecturally described CLIDR/CCSIDR cache hierarchy and should not
be used for selecting the CCSIDR level.

Scan Ctype fields from L1 upwards, stop at the first no-cache level, and
keep the outermost unified cache observed before that point.

This preserves the result for regular cache hierarchies, while avoiding
selection of an architecturally ignored Ctype field.

Fixes: f4985fce6f0b ("xen/arm: add initial support for LLC coloring on arm64")
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
Changes in v2:
- Use llc_level directly after the CLIDR scan instead of assigning it back to n.
- Add Reviewed-by tags from Luca and Michal.


This patch follows the xen-devel discussion:
https://lists.xenproject.org/archives/html/xen-devel/2026-01/msg00345.html

In that thread, Michal noted that the reverse scan was a simplification
rather than an intentional requirement, and that changing the
implementation would be fine.

Testing performed:
- standalone synthetic CLIDR tests covered both regular and pathological
  Ctype sequences and showed that the forward scan ignores unified cache
  levels above the first Ctype == 0b000 while the reverse scan can pick
  them
- Renesas H3ULCB booted with llc-coloring=on
---
 xen/arch/arm/llc-coloring.c | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/llc-coloring.c b/xen/arch/arm/llc-coloring.c
index 6f78817c57..f7b69f629f 100644
--- a/xen/arch/arm/llc-coloring.c
+++ b/xen/arch/arm/llc-coloring.c
@@ -22,22 +22,32 @@ unsigned int __init get_llc_way_size(void)
     register_t id_aa64mmfr2_el1 = READ_SYSREG(ID_AA64MMFR2_EL1);
     uint32_t ccsidr_numsets_shift = CCSIDR_NUMSETS_SHIFT;
     uint32_t ccsidr_numsets_mask = CCSIDR_NUMSETS_MASK;
-    unsigned int n, line_size, num_sets;
-
-    for ( n = CLIDR_CTYPEn_LEVELS; n != 0; n-- )
+    unsigned int n, line_size, num_sets, llc_level = 0;
+
+    /*
+     * CLIDR_EL1 Ctype fields are interpreted from Ctype1 upwards. Once a
+     * no-cache level is seen, higher Ctype fields are architecturally ignored
+     * for the CLIDR/CCSIDR set/way manageable cache hierarchy.
+     *
+     * Keep the outermost unified cache before that point.
+     */
+    for ( n = 1; n <= CLIDR_CTYPEn_LEVELS; n++ )
     {
         uint8_t ctype_n = (clidr_el1 >> CLIDR_CTYPEn_SHIFT(n)) &
                            CLIDR_CTYPEn_MASK;
 
+        if ( ctype_n == 0b000 )
+            break;
+
         /* Unified cache (see Arm ARM DDI 0487J.a D19.2.27) */
         if ( ctype_n == 0b100 )
-            break;
+            llc_level = n;
     }
 
-    if ( n == 0 )
+    if ( !llc_level )
         return 0;
 
-    WRITE_SYSREG((n - 1) << CSSELR_LEVEL_SHIFT, CSSELR_EL1);
+    WRITE_SYSREG((llc_level - 1) << CSSELR_LEVEL_SHIFT, CSSELR_EL1);
     isb();
 
     ccsidr_el1 = READ_SYSREG(CCSIDR_EL1);
@@ -56,7 +66,7 @@ unsigned int __init get_llc_way_size(void)
     num_sets = ((ccsidr_el1 >> ccsidr_numsets_shift) & ccsidr_numsets_mask) + 1;
 
     printk(XENLOG_INFO "LLC found: L%u (line size: %u bytes, sets num: %u)\n",
-           n, line_size, num_sets);
+           llc_level, line_size, num_sets);
 
     /* Restore value in CSSELR_EL1 */
     WRITE_SYSREG(csselr_el1, CSSELR_EL1);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon May 25 12:05:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 12:05:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319206.1586927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRU3a-0004jx-PT; Mon, 25 May 2026 12:05:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319206.1586927; Mon, 25 May 2026 12:05:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRU3a-0004ji-MW; Mon, 25 May 2026 12:05:18 +0000
Received: by outflank-mailman (input) for mailman id 1319206;
 Mon, 25 May 2026 12:05:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wRU3X-0004UC-A3
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 12:05:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRU3W-009ZMm-MN
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 14:05:14 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a143aef-2eae-0a2a0a5409dd-0a2a4508d8a2-20
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 14:05:14 +0200
Received: from [52.101.66.92]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a143afa-63b5-0a2a45080019-3465425cc28e-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 14:05:14 +0200
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by AM9PR03MB7026.eurprd03.prod.outlook.com (2603:10a6:20b:280::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May
 2026 12:05:11 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.21.0048.019; Mon, 25 May 2026
 12:05:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Xrds4nm7JxNrnnPdGnys41jOQxYhVNN8L6uqjc4evF4ovE7FyJDyY0M6pQdC1iCz4ZDLT4o6O6zK9ku3sX07N4g2Dfl+4bW3r9YYMDsyrUXjb0OjliAw1zApb+TQ+RTCLIHuxy6JMhxKFsYFmVnPjLktY3JO7trndbsGNnyDKB6A8osaxVxZJ6gdSZ8feOlj3G0aIoFSfs1Q/rYrPHySvrsQ8xjlvep8ytVAzg3wNhmIiCuTJt37ojvGhH3jVIPZl9EiVKFK4p46dH2n30SP41i4v1gxYxlBqxna81CFSVC1pT7loNy+HW5VO4lcLlXpW0ZmM+D4QCw8Zx0hc4sQIQ==
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=SHEcpWwv2FcGeXR0uHdB9/GQWUnOUZtgyNumyPniiaU=;
 b=QqP3k5Wjh6r/ImOzwIAUPtLqPDDQSAuf9kf6eqeGb+0EjmIf5KIyW/oNr9LLAzu+uA394zoXouOF9oKiw2fTGgF3hEtuAxPyeLc0dnx1gThKBU46Ez3UlneplGNLEUA1aaEx2niOv3zKSOE+v0ii7FMq81/MBUpq7xJZyVB6Ij5zLiItufMOWSRN/qfQmOOL5BAncikKoiQonOZN+fSPIXgkuB0MPViyYJKnAKJ/Km8lQ58hKxth/eKzFZu3xhIPQ0ZdI0sXTnDFJnrk3Ec7UlgbqI4wT3mZb2F/YvOjmsokwB8VG5hfA12L5dq2wjuq0Gq0iETy2htnOcGjbGvRZA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SHEcpWwv2FcGeXR0uHdB9/GQWUnOUZtgyNumyPniiaU=;
 b=PJKIv5NhHljgspuGZ7+vKAuAvUGh2mX/kAN7abZeQLW3ORSs/CBcAf27tLSGjrWVrNSS/l/KeYF44fXmxN+fiDY5kZOe2iSNwx+FgN5fLime1Nelanjh/A58x6NVhIhrRXWshSpt9FXD/nT29OLjDmjTZb/fqktq95dtwQ8Z6BD6+5o9V2i74w6pMm4Gq3IK4NsKJlYPtNN61XhhSDzr+lgsDI+gUwt7f/Px0yXs3Qa132aAMf6oqMjWcUJc98IrHxmcOhDkBQZyKtIgoPYJF35R+SKXHdphNIPjYnf0tEAJe/FPhe4XDeVHJPpMAEZfnh3JGK3yyMgUE3PHDW/2xg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH 3/3] misra: deviate MISRA C Rule 5.5 for ARM SMMU fault
 handlers
Thread-Topic: [PATCH 3/3] misra: deviate MISRA C Rule 5.5 for ARM SMMU fault
 handlers
Thread-Index: AQHc7D68DYz1t9d3DEat28YU/t35Lw==
Date: Mon, 25 May 2026 12:05:11 +0000
Message-ID:
 <9a9f7757613143c1b1e9806a134df7b3afb5ca54.1779709902.git.dmytro_prokopchuk1@epam.com>
References: <cover.1779709902.git.dmytro_prokopchuk1@epam.com>
In-Reply-To: <cover.1779709902.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|AM9PR03MB7026:EE_
x-ms-office365-filtering-correlation-id: f83490c2-b103-4cd3-a7e6-08deba55df4c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|7416014|366016|1800799024|18002099003|11063799006|56012099003|6133799003|22082099003|38070700021;
x-microsoft-antispam-message-info:
 X52CCRIoq2+9rnmy+epSwDjA9Wpz/oxIiMHNNAmI38XsFjG2wOF185ktnv1LO/EDIPUEOQN/kxuwxMYz1IWMGvKwj65ZEVstjL0d+tduFR7iLEk3hBnXc/hdUzIGSUoSsN2IM2xN2RlS615MOJiL6GErHXNzqZjRrpli0lB2Co8RvnnEnnaVqAvqHGUcihjkgTafL/3c9cXbWPluxEI3Vus8C9zh81RjU2sA/w0LPViM7ba+bMMhHS3Lf/EHex3wfrL6XRs2x3rfOMPyeRxQCxiL7z1Z7hf/pZoRvaBcP4JlaC7dMSSwLYA54O8mUmGgTZnX1hfv8mVdUX0yHkMFaEwxt4PazWDMPywWl6hH8iugcIYg7vw6ASVzPKkbdHmWVTj3TEkc7MRmWHjkBGua+8hlrOeLmUd9YWA++Ght7ZUZsULuP12zsLnP71hRFVBGx3vWcGTFE8yJwl+GfD106cBieBCNP2ab+xekAzuId8J/F3zV6qd/9tP4XfKe1Ly2PSwKuwhEr5Gw0zPaLmgOdHfEU9Ba6/GxzEESfvmwIDY54v9bMHZtY+Y+imIjN7meD93WweLJ7SJ65MNx1rIns52Lcb+ssx8dtmvad9NYKAeHyb6MWRY3GlGJt37KrJSjWi69exLIg1o029Mqmb+pjoYqYTK8WlW2qayFwcLDWUGO0fupijItJxZse8fXqVjl8ZwyNPR98AywqBepkbukXKrDzJZSDSkYk20lk6ssLTKmMQUhFzQQEPMd2lfB8etw
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(376014)(7416014)(366016)(1800799024)(18002099003)(11063799006)(56012099003)(6133799003)(22082099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?oqU7YxvYaJD6bB4sToKBYM9g3AtvAvEFeEvrrDz6X92u+QxgW0AeGgN2ch?=
 =?iso-8859-1?Q?h2tEY+Rk4Hf1bKfsMvliBxSDgBB9bAYeETbKHMeiRJHaRIAyJfJ80hLnjk?=
 =?iso-8859-1?Q?JnxkMx4257s++KpOqTSTTmLntTg016ftBSt7UpotyYvmq6TOswEaYlCPox?=
 =?iso-8859-1?Q?AfVYp42NalRlFXa4MXfp9P6OJXI80ClyUORH7SLniHb3lQrD3U26eI1zcS?=
 =?iso-8859-1?Q?p6t0TXxgH4srl3+VCe42uk60Q1skZHHKRnw1jIXhBOnB1uGvKtgDY7tFN6?=
 =?iso-8859-1?Q?NY3Q+c25eyfff5rJWGrC+LT2azW7GkGpIiYos0XWW4sdlTseoKS5+9S8Wg?=
 =?iso-8859-1?Q?kCrftM3PPWk8ljjj+pbsON99VLwjXEKFzI48DXcpUN8MMoh7hA+afkgwWo?=
 =?iso-8859-1?Q?i69EplpD/jb09OwgUQFVRlY6WSHcrP5KssOQibV1o4m+lsG0mnclef0TNs?=
 =?iso-8859-1?Q?+YDX9iot/6iKyF9upLlynpC3nRlZL4T9M1/Xd0i/vl5CxtWxbAWLq5VXPS?=
 =?iso-8859-1?Q?zmOpOUTz0utkeCgtOvvsceKMjtL2NUk6ouOcHxbfK+ZxP8GGd0l/28TS0V?=
 =?iso-8859-1?Q?zfRX96vuW7ovq1SqvNuEyzTfcgpScjc4jlUAKGGv3NXN3VWmrvFBaX8vks?=
 =?iso-8859-1?Q?ph5c1gINNrlyosiwAEnIxa5C0croBo/EYRvMSl/1Tv8113bWdQ0inHvHYx?=
 =?iso-8859-1?Q?ctP9RYIcXcogSW7ZfU4pbRUk1krngcTDKcyfJ6+bQlRdNXlAMp5JFyph4y?=
 =?iso-8859-1?Q?HHKn8W8QDkmlKZy89e5sdudHEWXCV9KurxgX5jsL3Ny7+mcM6/Khi4/bIE?=
 =?iso-8859-1?Q?0pksA67h03onaCLag33J8Fkg8Mw9Wklgshz728usJ2p8ZHlU70CPExOpsM?=
 =?iso-8859-1?Q?0+n/QBw2AC2cz8/tFfn9bE78L054kOaiQrqR1HtytKbNdEF1cumXhWHNsb?=
 =?iso-8859-1?Q?zn04Xt20pEY46xzvbd6mis6GPc38a/Iw4vA7Wql6NTrEChFH+8x4RtlAC1?=
 =?iso-8859-1?Q?PwzyeNI/JYzbbMobDvdqnVekxC8WGGxnEFHPQfUTgf9DC7eaXNKuIzproB?=
 =?iso-8859-1?Q?iq4ukRMnH4PPGK4DFE4XuN9j4h25FBMRJfnd5iI5LLEuq3Cac5glbkdw0U?=
 =?iso-8859-1?Q?+5lKLldUpS/YI3JBRi0FNix6SJ6jSYNdLRYYFTmoGuPPFphUY9cuSKYKXA?=
 =?iso-8859-1?Q?ekLgu2v9JB8YixRpkSVmXvkXWqaVvypVvlE7eTxW9yZBjydlAqc7ULRPIg?=
 =?iso-8859-1?Q?IognGHj1t9OMhRrNgYYK3AJ1qPtLGnHxmRwm16R3QmejDVUnvwyP7hA9Vd?=
 =?iso-8859-1?Q?DhS7URjyEoQaqYFOl3OfCdwPkdVRgaTB0cWygaSx1YAhs4aS+z9uNhSr4Q?=
 =?iso-8859-1?Q?N2QYlO5cCJX9AGRXGV5IWNsFGKzrn38R/hk4k7eiCM+WOnDSyOKO8VMDdP?=
 =?iso-8859-1?Q?kC2D8AFY2QRyZGWjDgPJcehiUhu8XlR8iGURAzb2R2raPrqfD8v2vX+5SR?=
 =?iso-8859-1?Q?ZrbRPdnLRvmT5Ee1vd1x6SON/UJLmeTcJRzGBsHy/YGTX00rYMVMBPhn5D?=
 =?iso-8859-1?Q?qbEFqqScuScfLrLXWjwepzV1hkPqwLF4r0mmrPTjr5PiX4OKhrPCZeuiel?=
 =?iso-8859-1?Q?D5HE2uS+medlGVgWtkrP0P5BXXBU9N0q+8Vly3UnzumST+2g7gTRPH/uY/?=
 =?iso-8859-1?Q?+ewYBKnWQBVFJFDiDzt/LfaQbm4ZwbGZiBnkewmkfUZABuqy3brfIpC54C?=
 =?iso-8859-1?Q?h/4VY5nXUNWnXOYhOov91lAm9FTJu+PZtoQ/KtpFLWg8nur6sbJHe11pKs?=
 =?iso-8859-1?Q?AQrrChGKMQ7lNNPoPX6qRI9/WOkQ8V4=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f83490c2-b103-4cd3-a7e6-08deba55df4c
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 May 2026 12:05:11.4235
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: aWfd3doEtHVI7ZRou4zgUXnH8j4/NbHql7aNtdPdmvw/wqoDK9k8/Pb2OtWtx0ECrYB/QX7dDDe8tCduExkrCICBkGnylGLHpfveFrK+Q3s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7026
X-purgate-ID: tlsNG-c1860d/1779710714-BCF62DB1-56AE5B67/0/0
X-purgate-type: clean
X-purgate-size: 3670

MISRA C Rule 5.5 states: "Identifiers shall be distinct from macro
names".

Update ECLAIR configuration to deviate intentional identifier and
macro name clashes by specifying the macros that should be ignored.
This includes 'arm_smmu_global_fault' and 'arm_smmu_context_fault',
where the original ARM SMMU handler returns irqreturn_t, while the
same-named macro redirects later uses to a Xen wrapper with the
void interrupt-handler signature expected by Xen 'request_irq()'.

Update deviations.rst and rules.rst accordingly.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
 docs/misra/deviations.rst                        | 7 +++++++
 docs/misra/rules.rst                             | 4 ++++
 3 files changed, 17 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/=
eclair_analysis/ECLAIR/deviations.ecl
index 7aa64796ba..419a23ce8e 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -144,6 +144,12 @@ ARM SMMU driver calls by reordering the handler and fl=
ags arguments."
 -config=3DMC3A2.R5.5,ignored_macros+=3D"name(request_irq)&&loc(file(^xen/d=
rivers/passthrough/arm/smmu\\.c$))"
 -doc_end
=20
+-doc_begin=3D"Clashes between ARM SMMU fault handler functions and macro n=
ames in 'xen/drivers/passthrough/arm/smmu.c' are deliberate.
+The original ARM SMMU handler returns irqreturn_t, while the macro redirec=
ts later uses to a Xen wrapper with the
+void interrupt-handler signature expected by Xen 'request_irq()'."
+-config=3DMC3A2.R5.5,ignored_macros+=3D"name(arm_smmu_global_fault||arm_sm=
mu_context_fault)&&loc(file(^xen/drivers/passthrough/arm/smmu\\.c$))"
+-doc_end
+
 -doc_begin=3D"The type \"ret_t\" is deliberately defined multiple times,
 depending on the guest."
 -config=3DMC3A2.R5.6,reports+=3D{deliberate,"any_area(any_loc(text(^.*ret_=
t.*$)))"}
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 01f141b73f..15c88b82f4 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -192,6 +192,13 @@ Deviations related to MISRA C:2012 Rules:
        reordering the handler and flags arguments.
      - ECLAIR has been configured to ignore this macro.
=20
+   * - R5.5
+     - Clashes between the ARM SMMU fault handler functions and macro name=
s are
+       intentional. The original ARM SMMU handler returns irqreturn_t, whi=
le
+       the macro redirects later uses to a Xen wrapper with the void
+       interrupt-handler signature expected by Xen 'request_irq()'.
+     - ECLAIR has been configured to ignore these macros.
+
    * - R5.6
      - The type ret_t is deliberately defined multiple times depending on =
the
        type of guest to service.
diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 097c20432e..88d2c5fa7c 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -230,6 +230,10 @@ maintainers if you want to suggest a change.
        the macro is a local compatibility wrapper that adapts ARM SMMU dri=
ver
        call to Xen's request_irq() argument order.
=20
+       Clashes between ARM SMMU fault handler functions and macro names ar=
e
+       allowed because the macros redirect ARM SMMU driver uses to a Xen i=
nterrupt
+       wrapper with the handler signature expected by request_irq().
+
    * - `Rule 5.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Su=
ite/-/blob/master/R_05_06.c>`_
      - Required
      - A typedef name shall be a unique identifier
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon May 25 12:05:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 12:05:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319205.1586917 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRU3X-0004UM-DJ; Mon, 25 May 2026 12:05:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319205.1586917; Mon, 25 May 2026 12:05:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRU3X-0004UF-AH; Mon, 25 May 2026 12:05:15 +0000
Received: by outflank-mailman (input) for mailman id 1319205;
 Mon, 25 May 2026 12:05:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wRU3W-0004Tq-Da
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 12:05:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRU3V-009ZMm-Pi
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 14:05:13 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a143aef-2eae-0a2a0a5409dd-0a2a4508d8a2-16
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 14:05:13 +0200
Received: from [52.101.83.125]
 (helo=GVXPR05CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a143af8-63b5-0a2a45080019-3465537d3e5b-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 14:05:13 +0200
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by AM9PR03MB7026.eurprd03.prod.outlook.com (2603:10a6:20b:280::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May
 2026 12:05:10 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.21.0048.019; Mon, 25 May 2026
 12:05:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XSyYHwcdGkp/piFroI8HCrDIxrRMatBzGMiR1AfMB+pgs1+x8vNVdCLnQG+iW2IGSyhyP62rdMgYbj2zV8SzBH2Xmq6IyOz8h8IvAU7uu8OkoUPPgSzd8SCKWx8UpKwSKae+sc1bmR50BINjoTXCzcI4IkQTZ7YMTQE6MCf4EHhCUuvENt9OuEk4EXghva9Oivxi0/q88wnvDCd0faUZ0JgnAtlAdCAboArfXRuw6HbNQceXfg5oaT+lZnXDgWTZDPHJgUqKmMvFAjbdKRHbNz6bvp5Ekzb0icgwrgdPlQIkIYDRAV+to9TIqJKsnTbI3l3CVzzX2dOSuvJia3k/3Q==
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=EBJqopGr6g4Rs9QOkGhc7LSDyZACBgo/wZojZWVMwSw=;
 b=M4XQnBbQwy4RowH7Nl0uu0xwnS8dWtuIBnLgd62TwsJb3L2n+uo/or/v85hxJ7fgKPb9Raq9UmecjRtK4eS0rbs+QyGtxV3iNcQ8aB4yN/yE4kmeclsSeT6fNt3PAtFQgCsFyW+90WDaFjjwrDY59f3g6MA+OGAcA1864eyaJuOtbvYRUvgnA6Cqa3zCYFv/29e1BtVowebhg6hL1YM/WEbRTPehSN2IE/NRAeOU18uFq5XyCPb80mNJHa6g8QT6U6LPx+oeSbsDQXvJd7X0GSazcTrKGge0EQEOFGPVz+0g2oqQFvqbjnDpPBwj4Xqj+yONdIxtUJsOkOE0ia6jnw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EBJqopGr6g4Rs9QOkGhc7LSDyZACBgo/wZojZWVMwSw=;
 b=JkkVwt+PU0L25LKV3qMsP3ESbFYfc+MKimKJAGKC0pcfW9mXvgamVm5+LYKa+4Jzt5DjGZO5sL65dpWCe6HCbWJTqUOwj/nL+Up1XWmnkZbxELW62k3DNALhqOb5va3uaHtVanMTBauIBrjGv/7fyQ49oFXHTk7ZYb/Uv3jxVLrh8fHs2nlyv47y6jdNLjxJBtCqAcaCNOY0p1n9AuKqfqe74e5/o4YbUNBBkS6mphaf3XSYy/loIM1p0+1uycKr3Mbjz/uq+N0bFCZEoJAeoe70mLb7jv644kZfyNXGUktTsTQ14iMj/ya+qTCKjJ8NCVwXk5V0Ak7Yf+M7zP2qKg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH 2/3] misra: deviate MISRA C Rule 5.5 for 'request_irq'
Thread-Topic: [PATCH 2/3] misra: deviate MISRA C Rule 5.5 for 'request_irq'
Thread-Index: AQHc7D68tJeu+7CD8Eibunvyp3IKiQ==
Date: Mon, 25 May 2026 12:05:10 +0000
Message-ID:
 <ea8766aa1d70072815f98b904f317d02e25f3c37.1779709902.git.dmytro_prokopchuk1@epam.com>
References: <cover.1779709902.git.dmytro_prokopchuk1@epam.com>
In-Reply-To: <cover.1779709902.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|AM9PR03MB7026:EE_
x-ms-office365-filtering-correlation-id: 4b2608c0-9a7d-43be-ecbb-08deba55deb1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|7416014|366016|1800799024|18002099003|11063799006|56012099003|6133799003|22082099003|38070700021;
x-microsoft-antispam-message-info:
 sOySvuvpO0XjwOSkuXFkCSzRmzY5eE8LlKwqonu/eAUiWzj7jHSiCJsHdhy/0mdGbsqN6w8fF5+vPdRGsUFIbg2uWp/N0YbDIIS1A91WE0o/gqZ6hYKvrAqulUru8iMgNRGHig9K1tDp3aMAufmU8ofWFYEdLrfYrToktKN+Nyo/LRH9bMg7U9NGLNeGqJJm5vvLljhU7LN6gWBqPccyBc1beQH+12lm9aiE1jYKicRe+IIR0DehrsSI8WrST3FzDPqHQtpuzvqgOXRscXr+VmcCcTu8FHPXeHLdMC9WVs0y9smxhv1gPgRFjVsTENiVVrdlk8w9VUzHR23JqKBPhfuQUdmM5UQIMUwDtpZJdtWtc0VewlCjXrFK2KSxI15fYk1o41+Y6xFWzbI3STBp9anrc4Za0p3IcI3FO7nCG0McMBNIGisYL/AtCWUZjo74cacfn17l/19M21FXTsXllzto3fH5L0acfolFdaYunYY6POUtyisn/0cAvDbbwMznimm0FyC/b0osHYnMeM5sjk31eZ3D4CmV+b14CwgUeEYjKsg+lXZN8vT+7QroktvL1ftMRw2zhFh9L7aCDxj5dCSURG3jzVCB/vvrEoLVwQl3Y1BHyDf1+Ix6UiQIWuGl2gudESyaeDWssFEQUgwLERuTZgLMdlz6tq+PVB7goBF2fmk2XzCUwfi7Iz+3jqvkPdOA/UzaGhdQ9dFGagPkIenhJrb/huvFCbgR+PW9IOTrzeVGh+FldRKxbdtS+/qM
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(376014)(7416014)(366016)(1800799024)(18002099003)(11063799006)(56012099003)(6133799003)(22082099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?/+ptrYb0rjrHiVQINeSgtmGm6R4U9U3hiL0j34j+Y6Yhx/KZ1T3IrN3BIp?=
 =?iso-8859-1?Q?ton/0GDncG9bACurzqKUo81LHimWAyxkgVVq5zTUKxqNEB/An0zJzDUmGz?=
 =?iso-8859-1?Q?YYqouCvWNL4HxoiEGXhTuFVDA+d3n4hu12DkmKlFcLz+GV6NXSRQYmyU7n?=
 =?iso-8859-1?Q?cPm/9KGzwqykinVZ0h5pcJoNiz2s7Q/fD7Z65lwTQWDu6IR+UJYrW+Ayn2?=
 =?iso-8859-1?Q?BKwLiJwUWK7wz53v2ocXrR1/kob3/TrRAoz7FXwnW9tm657RPr0PZNwHsa?=
 =?iso-8859-1?Q?HEi5n/ptEpfXtLxXw+sFJ4QhAd4V48XyelYv0Ihgu8XozdnFHmtF5Iy2ev?=
 =?iso-8859-1?Q?NWH7/ToNCSc0/uLXW05oZhYe9gIETVl3PgTojRLzzzNWVEqBZo2t0yx+Nc?=
 =?iso-8859-1?Q?ksSgEhCJLh413VKcDYu02fRwrZaFAdLIDC4fMoCqeWWQYVlwCcKRy878qH?=
 =?iso-8859-1?Q?xGf7K1m/yH83jtLO9wddAgWPBV3rzhggZWQPlrh8fCWZ+iGxHcI9iDsoIq?=
 =?iso-8859-1?Q?gAghLBZj4c6//4AdGhLJWOX4+24glNsdsKjDrYDYVKZwmN6WLtWB6J4Bn3?=
 =?iso-8859-1?Q?JECYKg2TkldC+hgE26I+KdI1saBxuYDFtYqCxXylTZn7vi/58l0Vuk1KC6?=
 =?iso-8859-1?Q?G4V6Zx5JMcwwgw/qAh7qNEvu0I4A2qjVVlPf1w+im2vfmHjCbfsPcInkJ2?=
 =?iso-8859-1?Q?lglPHZ0U8ODsphubgpqVmT86EjJCTxsdOF+bZjoHKdKT3vJURyPyH9/sry?=
 =?iso-8859-1?Q?bgOYfeX6gsl+lYkV9jkUnZwVen5AfF7G++dBkSulh9cUlo+Q1hixNjx/vw?=
 =?iso-8859-1?Q?jfpMjUoBml+LgMA+q38J6+OEECXpuqdWWvsMoNX2ZYq3QqsKW1IiFdH3LV?=
 =?iso-8859-1?Q?ZKrjYqlN4OD3LkB1+SAdn0E5hyI1T/zlQNaTriOtDcRgfP0U3c9Oo15pfR?=
 =?iso-8859-1?Q?whysmNVQ8oUpynMwJOLVv1rUBtJp4OE98H6vggWfp5mSmQ+gXEpqiFkmfn?=
 =?iso-8859-1?Q?EGpf16zmWPWWYzaUX17P87X0oJR5bNSeET8ohMpbF6AdZNs8cf0yFOHlDY?=
 =?iso-8859-1?Q?dvfb3tM3//j+VhXUJ7ReVbjMDnFkvAa3bgjG1H6mAdosKQVP1H39M95sqY?=
 =?iso-8859-1?Q?36PhyP7/C/4qvsYy3A3GkT+BoTFI7qXL4wDMdJV7M3tgIhiVN/pAw8mQVx?=
 =?iso-8859-1?Q?S9R05iaUeGVp3DIzOcFWAR8PD2hn1FX4VSWviVcEFrurYGxbDUvH67fg3r?=
 =?iso-8859-1?Q?7hWJgVHBydaprOBw1H1p3pa/BY0nKEVynuFKK/CS8z4oK+ofqlUFDO79Nn?=
 =?iso-8859-1?Q?EQ8HRoS6nYNqq00gw8fYu6OiCgB4HgWWd1vdFRICvpr4e/VKy89RglHCxj?=
 =?iso-8859-1?Q?WCgbPrL+5a0q/9BxLy0gh32pChNKl5WnhBARJFDOzwzsGH0sS9b/1mJclH?=
 =?iso-8859-1?Q?Jd9hu+W2zu6rvmNQ5ELQ1ngNxzgZ7ICD8Y10R/iwi4pb7a5ZeeVUry519q?=
 =?iso-8859-1?Q?jrfkX3WWkbYXAa+4+vRIUkdjGfuNF9YF/5NeYXUs8hbAxxBEYFrIerIVq5?=
 =?iso-8859-1?Q?NstfFCfVRGZgOhrdLtYJrrZV1dPof1mfstrZiN2wW9wuuvhmvs4NpqsGnd?=
 =?iso-8859-1?Q?D8plyHdvYrumovZl8iOzWitOWbnOpojjPODG5PvA8ssJ1z7vqXIrzr6phM?=
 =?iso-8859-1?Q?1lwlkYXjGjmCGGnDG2ZJrOXd9OIrlyoiqons0GsErkPavpvZnOLbZf0RSj?=
 =?iso-8859-1?Q?pon+FPY1p/ne2EdXYClctptJhZW0JD1Rrj8nyudGQkLuSKxvALgvspGdSF?=
 =?iso-8859-1?Q?bN1c7kXsznZgiH9+DXtj/ttg15fM6ak=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4b2608c0-9a7d-43be-ecbb-08deba55deb1
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 May 2026 12:05:10.4094
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: KDik52oSrEsEyHt6g7E6PVQQsKHQgIHCPSiMDhIMMzvJOYpU3VTs+cXWw29o7DymZHUrXHRDX2OHu7GNT3Ls6Jney7IvnaDZVrSXojLDxJE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7026
X-purgate-ID: tlsNG-c1860d/1779710713-B6B74DB1-D5857156/0/0
X-purgate-type: clean
X-purgate-size: 3492

MISRA C Rule 5.5 states: "Identifiers shall be distinct from macro
names".

Update ECLAIR configuration to deviate intentional identifier and
macro name clashes by specifying the macros that should be ignored.
This includes 'request_irq', where the Xen function takes the IRQ
flags before the handler argument, while the macro adapts ARM SMMU
driver calls by reordering the arguments.

Update deviations.rst and rules.rst accordingly.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
 docs/misra/deviations.rst                        | 7 +++++++
 docs/misra/rules.rst                             | 4 ++++
 3 files changed, 17 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/=
eclair_analysis/ECLAIR/deviations.ecl
index 13a34b7703..7aa64796ba 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -138,6 +138,12 @@ hypfs nodes to allocate per-request traversal data wit=
h the correct size and ret
 -config=3DMC3A2.R5.5,ignored_macros+=3D"name(hypfs_alloc_dyndata)&&loc(fil=
e(^xen/include/xen/hypfs\\.h$))"
 -doc_end
=20
+-doc_begin=3D"Clash between 'request_irq' function and macro name in 'xen/=
drivers/passthrough/arm/smmu.c' is deliberate.
+The function uses the Xen 'request_irq()' argument order, while the macro =
is a compatibility wrapper that adapts
+ARM SMMU driver calls by reordering the handler and flags arguments."
+-config=3DMC3A2.R5.5,ignored_macros+=3D"name(request_irq)&&loc(file(^xen/d=
rivers/passthrough/arm/smmu\\.c$))"
+-doc_end
+
 -doc_begin=3D"The type \"ret_t\" is deliberately defined multiple times,
 depending on the guest."
 -config=3DMC3A2.R5.6,reports+=3D{deliberate,"any_area(any_loc(text(^.*ret_=
t.*$)))"}
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index f5b4ce9315..01f141b73f 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -185,6 +185,13 @@ Deviations related to MISRA C:2012 Rules:
        function, so the name clash is controlled.
      - ECLAIR has been configured to ignore this macro.
=20
+   * - R5.5
+     - Clash between the 'request_irq' function and macro name is intentio=
nal.
+       The function uses the Xen 'request_irq()' argument order, while the=
 macro
+       is a compatibility wrapper for the ARM SMMU driver that adapts call=
s by
+       reordering the handler and flags arguments.
+     - ECLAIR has been configured to ignore this macro.
+
    * - R5.6
      - The type ret_t is deliberately defined multiple times depending on =
the
        type of guest to service.
diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index c0237725a9..097c20432e 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -226,6 +226,10 @@ maintainers if you want to suggest a change.
        because the macro is a typed convenience wrapper around the size-ba=
sed
        allocation function.
=20
+       Clash between request_irq function and macro names is allowed becau=
se
+       the macro is a local compatibility wrapper that adapts ARM SMMU dri=
ver
+       call to Xen's request_irq() argument order.
+
    * - `Rule 5.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Su=
ite/-/blob/master/R_05_06.c>`_
      - Required
      - A typedef name shall be a unique identifier
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon May 25 12:05:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 12:05:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319203.1586900 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRU3U-00044S-UR; Mon, 25 May 2026 12:05:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319203.1586900; Mon, 25 May 2026 12:05:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRU3U-00044L-Rg; Mon, 25 May 2026 12:05:12 +0000
Received: by outflank-mailman (input) for mailman id 1319203;
 Mon, 25 May 2026 12:05:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wRU3T-000448-5W
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 12:05:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRU3S-009ZL5-E2
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 14:05:10 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a143ad0-e002-0a2a0a5209dd-0a2a45018c26-40
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 14:05:10 +0200
Received: from [40.107.159.87]
 (helo=OSPPR02CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a143af5-c1f2-0a2a45010019-286b9f57a41b-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 14:05:10 +0200
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by AM9PR03MB7026.eurprd03.prod.outlook.com (2603:10a6:20b:280::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May
 2026 12:05:08 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.21.0048.019; Mon, 25 May 2026
 12:05:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AxPuD/8Di5j9acSKcZFO+8hpv2C0yAQxkFzlWkZM6iG6G1cROQFOIs55vN0Ci4fYEMB6ZOglK0RHg894mwtDyoEpZ4MKvxxym2eM7vdVKbGm4NE0v61cPWjn0WcJg6h4bm7I3mDwdOZnRNAAhhQKc8uqS3Man86uU1aqz1shuBgcNGyGUg+uYJ1uBfk4LOqP2Ru3XZ5zSKQRyQ5fNA15Q0qiYpLO9H0YJ+wNbnbHuDUKI4dryGP4M10DtHBDadJPB7M/spnpEP5NH7M6lTaNhwKGHM+3mKw86oE7oesM+F8Bm30itVQiC9eKuZZxbZv1v2vS6aFvXzCc2zQ5+EWlCg==
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=+xT93su+GvrQoMibkXDU/nROpFa/p02/vvtcZhLRfyA=;
 b=bdom5pE6s+lN/1U1tAQtuZyK3nbnYE4UTA7CuaxA80Pn+Bt4bedkxjMkaIALxwOn1P+qCrdhQgH67NdANdKpYGNJhG08jnzLvQvVH53bFClhyP5TzZ08+JvWF//qaOfkP3H2gCF79uD4WncW6F3USbvnuzPcz6ThMUCWF2S6mpmnYBkYQdM8AaiPM9m1QdA21+kAvdKc02lrykhHjBdagRbmm0Y38/Hd/lnmK1cYIhN9LoIlRyBzfX2v30WgU29Bc4bG8MWU+wp1u25uCXZf8QrRhk/h6pZTYMuF5Bckq+LWzx5inavyj7U3w579ODh5HisZDW0NR/S/12y+RL2vNw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+xT93su+GvrQoMibkXDU/nROpFa/p02/vvtcZhLRfyA=;
 b=mg+TX05vEaZIHExhLjp5/mXOD8nidRtw/xDsz5GXDM4QkobD1/qLqro4ZPegRBmKoaxnO5AETNcnAufiS0w0GHzeqLi2T9vYayW0Odg5dLj0L+YxQCwQxbqZGf/cYZnylEeHuP5xhW07DTtB0jlsRCowNg3rCoHrJcjw7yZFPlbUuuaHcUR4uhjrz8ILv+fKyEVD3l+liu2Dz/W7tGuLNyRgOE0RreA6AX8mKqKjWgboYFc3JwrTBXHGvFtE8or8E1dpdntngSGto4a76UhRoUhzpIq9EO/hBfn/Q+2+7LtrZvx0rDgHFu3M5naNSSaaa4c9JdDhZq/CTzSXvVHNUg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH 0/3] misra: add Rule 5.5 deviations for intentional macro
 clashes
Thread-Topic: [PATCH 0/3] misra: add Rule 5.5 deviations for intentional macro
 clashes
Thread-Index: AQHc7D6650ZgUP24f0WL24fn/edbYQ==
Date: Mon, 25 May 2026 12:05:07 +0000
Message-ID: <cover.1779709902.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|AM9PR03MB7026:EE_
x-ms-office365-filtering-correlation-id: de24bf3d-2f72-4b89-fc87-08deba55dd40
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|7416014|366016|1800799024|18002099003|11063799006|56012099003|38070700021;
x-microsoft-antispam-message-info:
 3fJVTe9RLex6BRIQcPyrl6Ac27RNwQefprV2xJdMDSLzDmdNz5ZCoxUgRy0kzQUG4dLb7UbW3/XXsj6CdkRqijWRmP5irEgNC8IJl9vadA7NsrJ/10m5172rS6EpOASKTegRbSyQiU+22pwFCn23x15QiTYYNQJgoMi5PvEiC4Srnwnm32L87U6zMP1Vc4Ef4tcgsRgDT6cvvYgppt6LN2/8DQPPpPDRf1bfvJIt34ENZi7PUN7n8iuiobgUlLOwFeF85EX6NuYFdKhwfoCrHjo5ry9l1GkALCezPB0C+TxT42VJgIyRE5B8qENtt38eyh92N2T3HqGx1ctV2WhL+hMykBMrKqCCB99Qv5jaXemwKbN0Dl8+mnChWJYKKgc7zyuGOLRmaLPKeMpaRQG/SByVWXh0r7I26jMAOPReZP7GyG5d/TCJ7BcgjZl/5UlVD/P3Na7+96+2Dsj2T8zhldhBxaemr2WCfruRod5jn8C/7wqiaHqHL3a+K5dnZAJPPmdgcbpVWx7XojOsBvn//bBHkvzbpJsTegScIWIDJZJbujaAWoxDRZLdvCUhcKVg80mHSI4w8vwQ4dCvK8yQHqY56NDSaUxV+mIfpnUwF/SZ8M0/wQDoU3Au3hXXaROhAdzoBM6+tAYSKIRXiQE/3lkDOnw3dxlaa0PBjwPGeF62CUTQ83wL3IMP/26qPT47fSkG94kn0jGlRPnnABhjWoJJ+lcY34RZxz+PjuVn2NYuPrQIWM2wgtf7r6yGHqEA
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(376014)(7416014)(366016)(1800799024)(18002099003)(11063799006)(56012099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?4hkcIw0zRquMNa+AAxQSXOEF1pBB+I+RUORwG4Y8x6m2hpxc+k55TmKVAZ?=
 =?iso-8859-1?Q?tAgvsDLa44GD3gkYZV5bKOg4SI51qlSMcI8/2Z/EaWZo9dGcjIWfUjc8eK?=
 =?iso-8859-1?Q?d2IASY9++XUdpvtdu3nconuIpDVl0ORzl2ycW3m+T+uU2X1Huqe5vn0Yry?=
 =?iso-8859-1?Q?fNfP/lNeK7is5mJwJltJve961voR86umBqEn/f8IeGXxkkRIHONjoKUpIQ?=
 =?iso-8859-1?Q?TyDcki4UdkhF4eAuWSE9hIW6B4/yYxTsGqCaoxsN+Kb6/939Jblenyo8hY?=
 =?iso-8859-1?Q?TeP82heLi2AdP4Y6jj5ZlqM8pDdzqXIqVg4Nh0ttdPdp984iOrOAhEJxqV?=
 =?iso-8859-1?Q?y48sm4ND8ec6sHxBSU6ntXjR5h8SvR/X2GDGFTxQ4SK3OGnlEwo3OCGPkq?=
 =?iso-8859-1?Q?q+XwctRFa093HLylM+cA3Rt8ujlFGdXo1c/R8XlqQfxG9bolTCeaTkPDEN?=
 =?iso-8859-1?Q?lFtzdwIEtOWCt5enk9RkMie4FKHEU6KWwswIbRANSU2Tk9zKW4xvhqYdVU?=
 =?iso-8859-1?Q?78A0ZJe/mXKTDa1Jv6AEFKTGUUGvbTSa8Kj3rWEgGlOrn30vgAmDr7zmtn?=
 =?iso-8859-1?Q?yNNCHgOu/jT2B09Pdaowl6SC8XRMDp0UcWlDoLOMDEmfr/NM1IiF2q993m?=
 =?iso-8859-1?Q?yR091XRcvK532fpWE9yKlOZikiE0BNSF1bjJBF5atWI9vJgZzCvFdOorAi?=
 =?iso-8859-1?Q?DITBrHQzssypjpZJI+Q/ZkpZJj9YPphVBycxucJe5Y9+OU9IlnU1FwTLUS?=
 =?iso-8859-1?Q?2OJ46CCau+zXR9GLlqo0DtKvnVVhpC94c36Udc4lE0MNLA7I1st93Nq0WL?=
 =?iso-8859-1?Q?XcnRNxp+z4VGuVOSn52tKjoBi9YwemPZlChqAXJx9obKg/JlRmDPivyXIP?=
 =?iso-8859-1?Q?ogcuzy3niAhSEWODcPL8w1Ked3CKR9H3lP70B3fqRucFezKEWC7bdhL6JU?=
 =?iso-8859-1?Q?TfBUqqAsA7Z1c7B/ed+Sc5kzNPYT68kBEiZXuAppYM9WiiBreXDqzrKp4F?=
 =?iso-8859-1?Q?Vy57+TD4M/3mdBvrg3QToRq99GmBuoiAsLRfpPSMxpROYTer7fUFRLPOzh?=
 =?iso-8859-1?Q?OGb+FaSxGFNKFWbXBVLRRzXoEGgwIAvyAHbNWZ6FVB79lxZ/P8A72XKZVa?=
 =?iso-8859-1?Q?9otYMMpcFC9vXSjPeabfKUzRsJocU69vRlVSXeV+RSLva4+0wmqIi+xKBs?=
 =?iso-8859-1?Q?PiFrOQ65ZtB4vMSSzRrWtAp3XneScJIdJE05LWSwSLcor2mPfO0K2gVDDl?=
 =?iso-8859-1?Q?ojFqErB4GyNfIxvZ6W++JoXUcFd1sAYmfi8ypjaM/HNaNxL0wL8CEVbmTS?=
 =?iso-8859-1?Q?VQFdoYdotAbU7+nNkecTtmgoabBQ2Ve49UX6aAKPhlTR0QdJnvBRP7UVsv?=
 =?iso-8859-1?Q?2IVE3WXlosxzLESvpvmM0ogNSew85O4wcVQObjEFCBB8OywX8zR8AdY7KX?=
 =?iso-8859-1?Q?i1wnayNLjgzcVwd1GbE2ujR5PU1K1nOi3cnCj1kuTP6Ke8g7oIXjIJorP1?=
 =?iso-8859-1?Q?TnlY6EbT4RdXUgtN1uJqfeLh06QiXBZpT+CFJioaU+h3thYNf5MWmeYhR+?=
 =?iso-8859-1?Q?x8TPTmAkkjhwXuxzSdr1OddCj/83Bm/ar87f/SGZsVuZgufeZS4zz2+CPL?=
 =?iso-8859-1?Q?mCWuhDPbv1mULcBgzKr6eF2qGwRG4xsYiFqmlDaJYsowr+so2rPi69i7Oi?=
 =?iso-8859-1?Q?VyWiGJfa4vB3h6DE2sxyaD8vduFzKsR5nqZ8wFx0CJLcBcYLgX1C5Tx3vJ?=
 =?iso-8859-1?Q?BeyGKH7mvsSZGM+gwpQdTfz/26H2RKOkdUuL2eLshSSlxx4XiyI9Ixriiy?=
 =?iso-8859-1?Q?zZ2JElv8gAc2aDTnEAN1b/rxrWuBJ0k=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: de24bf3d-2f72-4b89-fc87-08deba55dd40
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 May 2026 12:05:08.0035
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: LLE9Xv8+qsTLot2IUqDf+OVIZ6xDwM8COIeKM9AqGDPJx7Qd7RHbG3LK+qDmeDWz/68yPF5NcHRadmy0kLpuub3jjSnZEDb1nvDD8SzP/d0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7026
X-purgate-ID: tlsNG-d62444/1779710710-AC656FF4-026D83A8/0/0
X-purgate-type: clean
X-purgate-size: 710

This series adds deviations for intentional function/macro name clashes whe=
re
the macro is used as a wrapper around an existing function name.

Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2550931948

Dmytro Prokopchuk (3):
  misra: deviate MISRA C Rule 5.5 for 'hypfs_alloc_dyndata'
  misra: deviate MISRA C Rule 5.5 for 'request_irq'
  misra: deviate MISRA C Rule 5.5 for ARM SMMU fault handlers

 .../eclair_analysis/ECLAIR/deviations.ecl     | 18 +++++++++++++++
 docs/misra/deviations.rst                     | 23 +++++++++++++++++++
 docs/misra/rules.rst                          | 12 ++++++++++
 3 files changed, 53 insertions(+)

--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon May 25 12:05:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 12:05:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319204.1586905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRU3V-00047N-6w; Mon, 25 May 2026 12:05:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319204.1586905; Mon, 25 May 2026 12:05:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRU3V-000478-2E; Mon, 25 May 2026 12:05:13 +0000
Received: by outflank-mailman (input) for mailman id 1319204;
 Mon, 25 May 2026 12:05:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wRU3T-00044F-Py
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 12:05:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRU3T-006YWw-5z
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 14:05:11 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a143aee-5cb7-0a2a0a5109dd-0a2a45099b8c-24
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 14:05:11 +0200
Received: from [52.101.72.134]
 (helo=AM0PR02CU008.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a143af6-2497-0a2a45090019-34654886b266-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 14:05:11 +0200
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by AM9PR03MB7026.eurprd03.prod.outlook.com (2603:10a6:20b:280::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May
 2026 12:05:09 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.21.0048.019; Mon, 25 May 2026
 12:05:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AK6ztw1xZoN/GsyUQ0/UjhX21tqNJClwKAen+sQ1t5wwhKGR31r+X8I13vpvNtZ2ew1pN8Lb0ymG2KTF+QPLLC/fINz5Gpgr0LM5lqncp70pRMQNql6IHrRGHsSYk9EYs+8XGTJzXgCfnFRd2K8kiRSeDgvsWFsdrUlKkjZhGWcqiZRHWU3GIcusIacWxlaHodjYaI6Z3HAY47V+INMt8YMlqukWGr8UJhb8uVfFPk/VpUhCGpvQoZ9HqeKhjCs2xHawC9SvYQaI4ajnolkRiAlc5GGWoA9idrjwLYMmPcKfSdOuvY6fNLXWXXjdJz4PACLNncVIgzF/dNLsec81/A==
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=tfHfQaxeNdr+CpHuEaonZEFBu7gjFFMWoYmdCiLZ2tI=;
 b=Z+Dku5TtxQdE0DO48enxSegVvhsL2+bOIpG5uJzQ4QIVeVRTgT2Wi39op58Ii2PpWUi+l5x2J81+jFQmCUO7OPxTbpj3mpjf5d0tSJieGCn3Yvpsu2XgUXsvAXrnSxDS2VNsDbMQXfyWhvRNWapcWvTs1GzTmwcGThBFUii0rrYPAY5aE6tkfmasabVCP/3+fXbKYN+gdyUQFuNahKHHjQiYZMRNEE5CLRlBhkv/h2y4CDnPGDJn2+kFLQX3kM62ElLChOHohQBrjqPFlKKsfLuMrsAjcCQCpiUPsk0R7rGTQEzlMtl/sJtVCK78KVaSLb+2ueAc51YCyCBcM+5w6A==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tfHfQaxeNdr+CpHuEaonZEFBu7gjFFMWoYmdCiLZ2tI=;
 b=sgK1u2xWSJAoiBXRVF6bljCLGuDourpiEAxK8qSn92RfwzhB3aabdiFxN+Awm4zjvkTaxkapgeikVrvl+4B0iuMVwIluFQPM4vejgs/J2RioHkuNaYSm3NRf4/QdS0C4J0gr2lMM0y6ig0PfjDFZAN6zuhED/b6Q6dpncICgtK8DU9QJ9DqZXMeo7or5nkUDpnKUihjSZS4iDcGx44fg5fP9qUZCL3CsFOR9+XD1oJAnCFg8HXr4qFPR4gaDrnes9RTjxUCJwbL3YPz7MpyMMfxpNf86rt3ezBTqTE8lSS2qShvVdNAVckQAarqmiaBRq/zOGhZWS1GlVxipHn3VzQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH 1/3] misra: deviate MISRA C Rule 5.5 for 'hypfs_alloc_dyndata'
Thread-Topic: [PATCH 1/3] misra: deviate MISRA C Rule 5.5 for
 'hypfs_alloc_dyndata'
Thread-Index: AQHc7D673hceQskKjEuWuHstCHXB3g==
Date: Mon, 25 May 2026 12:05:09 +0000
Message-ID:
 <ea6996796564e18334e9951449748e5ac4a8a7f6.1779709902.git.dmytro_prokopchuk1@epam.com>
References: <cover.1779709902.git.dmytro_prokopchuk1@epam.com>
In-Reply-To: <cover.1779709902.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|AM9PR03MB7026:EE_
x-ms-office365-filtering-correlation-id: fefb799f-7b3e-40d7-8bdd-08deba55de04
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|7416014|366016|1800799024|18002099003|11063799006|3023799007|56012099003|6133799003|22082099003|38070700021;
x-microsoft-antispam-message-info:
 KP8+TKpy4/oT6l1VXwcThTC9Mb54M7kbajsxwRH4qk3cY/LZ+g7WMPvO/ggzaDR+fSYPXw1Vri088qX8b8EcGlpE7mlVVloA4XzNbcYUgrIBWp3T/o+HfQWd4a3ErSBtk8xzqM8g2e0KLb0srrYP0Hfy5s9ISC+L+2pj0O+vnyxJwVRyWKjpgbYOXrTR+o4d2c8D3Uv3hA+oG5tXDiJAQyn5WV8FWHIcaXvdTFRBu60kWijbMPpta8LTEf05KG5AGNOyzjASBlel1bmF261+fWYj5YbuXDijP91BXmJFPnPCQ8P9fEAANBseF9Ad4yoY8GQpvpg1baMFkRIGliAT7wMEHuBFYogLFpqrhQTU0ilyjHoDe9KzprhW7pVc09+xfdbVcxOno+g9dwEQaGqRjBIgDa/RZ6Q00zI8TbLy8M0bQHzcXmW9uP9ZfMNgh8F3mEZeyUwy5ls+9V5yDP2ZxCQJLfBiQvBYMS1UqpMnRogq+neRL8lIvaSYhBipiKv4DNXw48omFD+06QMG0XZBI3BQsdyFThxgzgF2AhkhztYjImYrIhemJeA4jlWp+c84InNRvzaP4/ION4dr7rKaCpBP5v7ZIMikpUG8ajvtl1sS1rxtTx8PgEoTNBiQZ+LCP6e6+0h5cBLIVmyaLUGb1BUi62CAs7/z+T2fmo2mBqS6L8sEoEhdmULlr8XGY7lawtgZUQJODu9DNYl3nBZwTe5C7Gq3kJuytwyIoINdeohyFe0OzwI3WbMr+YSYbRhf
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(376014)(7416014)(366016)(1800799024)(18002099003)(11063799006)(3023799007)(56012099003)(6133799003)(22082099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?K76tgRMMJ3rLya3WKiPZEWbcMizPxOcytVaQX7+p0h3IT8rY+Ph+mQ9z1K?=
 =?iso-8859-1?Q?mIqrMffdqP0JFS1qoE+m4pvJE4FNCzN9RYGK8VkFs8HoAsR6o8jYncARLd?=
 =?iso-8859-1?Q?Jk82wU8GGHil8K4fdNlINCl8WAI0j5rWyKDPi8DakDbkYUdF31jMIH45ZP?=
 =?iso-8859-1?Q?ZP1oaNxY+dhGscvUZPQo6o5fcp/pfJV+AlSBR22t1O1rf7wYdMf3OaXwz1?=
 =?iso-8859-1?Q?8onLRi1RtPy7rifOcrlSERbwfca3ZkkVvyeGWrH2473ex9ELHAPec0KqWR?=
 =?iso-8859-1?Q?K8ixmyHlhSGzwVE7Zwrx5ZD06KRAvt/hL4OLL5whisyo3cfgxG7+vwZKkt?=
 =?iso-8859-1?Q?WoGnJZ4qTpWptVTUQ1LaE6s2JNIUcrDNPJ/uHlsBJe5wxm/jfF9FyQH+uS?=
 =?iso-8859-1?Q?I3R1569MnhwMGMLPYNctcOCjQYH+kMRBMMtDiCC1I836YoB9tGsRtYu35b?=
 =?iso-8859-1?Q?5/lC4Ls2G0a5FevbzhnHs0OK/Sjc7qPso2QrfDItx20UdXnVFwTnbVtthP?=
 =?iso-8859-1?Q?XcO28Y4vqNxEZuzFRjoVC0cRqDaO30SUTD7o+ypVv1qyRZVVThG8GVv0hP?=
 =?iso-8859-1?Q?BHnglpFS+Il2w7AJ/KOgfLlsVLXrfRGXC+XClCyWAx2Fc3yey4d4hHopEN?=
 =?iso-8859-1?Q?e/NeNNCxcwhS2xBuqgJcEstZ/cjVpnc7uobovhRtiL0NBXoYzV2g/rQNXF?=
 =?iso-8859-1?Q?Y9MB69z3ysYk5wd4lyFAC+JQp5u4l4ux0cLl/8PBUDHzmJHsQlsEoBewOY?=
 =?iso-8859-1?Q?bUW8izHyUXd/rhufcK68fwpWO5yHadXPQH9/OWQh3RQU63qey3D0HA7/Ib?=
 =?iso-8859-1?Q?uCMTqvKRQ/saGD8YLoozmhZXwfdbHhkGyR26eTgphFIg7SFlCVIlAXmCg8?=
 =?iso-8859-1?Q?fAvc3WHk/St/SlqEjm0rSDSOPXmNew4N5mQdobj1xsjTPUQWGKsaXp7ff9?=
 =?iso-8859-1?Q?NYMmn+JlnfyFB5VgC6GcPi0xhR1perQ9mcZFuAtOENXwRxnbsxU01K8ELk?=
 =?iso-8859-1?Q?xwhAgtKxZhzz7ItEtuRoyVp3HDyOYgerbQW9ls1iuI3QYj8PVqxytBZGGo?=
 =?iso-8859-1?Q?295m8IdT14WbOEkuPeFzh82ubZCDADUc1kc5FRk0d/D3D/wJTchwkXne7F?=
 =?iso-8859-1?Q?iU0wL6R9qpXl/qDmrUJcsF/JtIko4JVDgi1g/eCznP033aeWv6SoTg2T8C?=
 =?iso-8859-1?Q?Xd3yIoo1cBchskCuSB54fzBgqIPufm6J9Apd4FoJuQf3XTwio4kSFXB8TF?=
 =?iso-8859-1?Q?rpt1sEoJhPeEbzm1g/NPH7w4P0c1a9HpkG0k/H9N3DSI01huTwOWAvnEbt?=
 =?iso-8859-1?Q?0Iw3msn/AWHG36y2SA4e83LOZdkLeCvSDn5uoQaKk+UzpiO7Bd5/VQjHww?=
 =?iso-8859-1?Q?G5Iz48rgQ171BLMrarh0tkMcyoHhZHhSC7E4wVdVjPIZBoyXecREOEiUqd?=
 =?iso-8859-1?Q?NDSpSicdgBjdR9xk1kQ80qcvGDuuWyB9YqeTP4ryfo2B62/vdpYXGSRasb?=
 =?iso-8859-1?Q?yVX8r5Kt2aMNI4MKl2ydoyQW5x/gzX9a4d1MOYCBjpy3QvqLbWNqbold0x?=
 =?iso-8859-1?Q?ZxIazreGCnp+JdFzDOczbVOZwzi4W4ZE4Q4OUr4uxLqIkxfhp/pjMh1ucR?=
 =?iso-8859-1?Q?1bwq8CpBsWA/VUWqX6eFzxNRhW62jhGUBgkVd1KtilKrpxpO7KnFqsNCwb?=
 =?iso-8859-1?Q?14Tmq4UWYKLGGWCIc1tIL318tM/pbMl37cmqbAhW96yPieQexArPTXoTVv?=
 =?iso-8859-1?Q?8VpKX8z1ekL79gfA38ezVUBK6I4Z7zyvpdvlU5s8E3nHNbBMz+LA6RqT67?=
 =?iso-8859-1?Q?Z3QV4GgmyS17yIVyGI6e+6wKCnLqvVo=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fefb799f-7b3e-40d7-8bdd-08deba55de04
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 May 2026 12:05:09.2436
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 9mymJdIHltz1JqQPsI6/DSCGGlPftjP8sJvuRkc8T/VeQiwfKXzrAgtFnsQyvD5egsXLmzVayflpv4dDc/SOSd2nti+8bLjqMkFWI6fb210=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7026
X-purgate-ID: tlsNG-bad1c0/1779710711-88F71A53-9A0FA40D/0/0
X-purgate-type: clean
X-purgate-size: 3746

MISRA C Rule 5.5 states: "Identifiers shall be distinct from macro
names".

Update ECLAIR configuration to deviate intentional identifier and
macro name clashes by specifying the macros that should be ignored.
This includes 'hypfs_alloc_dyndata', where the real function takes
an allocation size and the same-named macro is a typed convenience
wrapper that expands calls using sizeof(type).

Update deviations.rst and rules.rst accordingly.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
 docs/misra/deviations.rst                        | 9 +++++++++
 docs/misra/rules.rst                             | 4 ++++
 3 files changed, 19 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/=
eclair_analysis/ECLAIR/deviations.ecl
index 7d4b6f2948..13a34b7703 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -132,6 +132,12 @@ These macros address differences in argument count dur=
ing compile-time, effectiv
 -config=3DMC3A2.R5.5,ignored_macros+=3D"name(update_gnttab_par||parse_gntt=
ab_limit)&&loc(file(^xen/common/grant_table\\.c$))"
 -doc_end
=20
+-doc_begin=3D"Clash between 'hypfs_alloc_dyndata' function and macro name =
in 'xen/include/xen/hypfs.h' is deliberate.
+The function is the allocator taking a size in bytes, while the macro is a=
 typed convenience wrapper used by dynamic
+hypfs nodes to allocate per-request traversal data with the correct size a=
nd return type."
+-config=3DMC3A2.R5.5,ignored_macros+=3D"name(hypfs_alloc_dyndata)&&loc(fil=
e(^xen/include/xen/hypfs\\.h$))"
+-doc_end
+
 -doc_begin=3D"The type \"ret_t\" is deliberately defined multiple times,
 depending on the guest."
 -config=3DMC3A2.R5.6,reports+=3D{deliberate,"any_area(any_loc(text(^.*ret_=
t.*$)))"}
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index b048309596..f5b4ce9315 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -176,6 +176,15 @@ Deviations related to MISRA C:2012 Rules:
        unused 2nd and 3rd parameters to avoid warnings or errors related t=
o them.
      - ECLAIR has been configured to ignore these macros.
=20
+   * - R5.5
+     - Clash between the 'hypfs_alloc_dyndata' function and macro name is
+       intentional. The function is the allocator taking a size in bytes, =
while
+       the macro is a typed convenience wrapper used by dynamic hypfs node=
s to
+       allocate per-request traversal data with the correct size and retur=
n type.
+       The implementation explicitly undefines the macro before defining t=
he real
+       function, so the name clash is controlled.
+     - ECLAIR has been configured to ignore this macro.
+
    * - R5.6
      - The type ret_t is deliberately defined multiple times depending on =
the
        type of guest to service.
diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index b3e929307d..c0237725a9 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -222,6 +222,10 @@ maintainers if you want to suggest a change.
        Clashes between grant table functions and macro names are allowed
        because they are used for discarding unused parameters.
=20
+       Clash between hypfs_alloc_dyndata function and macro names is allow=
ed
+       because the macro is a typed convenience wrapper around the size-ba=
sed
+       allocation function.
+
    * - `Rule 5.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Su=
ite/-/blob/master/R_05_06.c>`_
      - Required
      - A typedef name shall be a unique identifier
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon May 25 12:34:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 12:34:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319244.1586936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRUVY-0001dK-Sd; Mon, 25 May 2026 12:34:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319244.1586936; Mon, 25 May 2026 12:34:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRUVY-0001dD-Pe; Mon, 25 May 2026 12:34:12 +0000
Received: by outflank-mailman (input) for mailman id 1319244;
 Mon, 25 May 2026 12:34:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wRUVW-0001d7-Uc
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 12:34:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRUVW-000UM1-AW
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 14:34:10 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a144183-bab6-0a2a0a5309dd-0a2a4502ce5a-46
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 14:34:10 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a1441c2-af86-0a2a45020019-d1558030ad0e-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 14:34:10 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-4891c0620bcso59159005e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 05:34:10 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6c9b980sm24572047f8f.3.2026.05.25.05.34.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 May 2026 05:34:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779712450; x=1780317250; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=EtOkphMfX6TR5pyMQMgePijKmseksZc4kKw2RdMlj8k=;
        b=G7szZoMEhrTKaFpim04Ahzo2dY9UMzrg17lQoxAy6uFZly0zJde6uRDb+2flPHB6dV
         7GdE5LQcl+u9emTf+0zLLP9v6YrR1rhdbnDpJOiCgSJsiNM/rPQWLce3bRksJo6CSRxX
         mAxSIodMiwaV4xcAe2jlti3a/vjOnQrOpZvWtty1V7Wr72EzhfvtTFYxu/seHXlvqCjE
         OazIDrbG/MqwISjyF4legM4rtrqTeuLGmAsjqHRPtkWmXOkcCSYqkFDmUEV/Lca6ubvc
         DP9TNTB++KniejoidsxbIm2I1/RmtwAyDfw+ADCBky4rEuojdjM1WR6VnK8Yf4TQTJYp
         nbwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779712450; x=1780317250;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=EtOkphMfX6TR5pyMQMgePijKmseksZc4kKw2RdMlj8k=;
        b=jXZZYx2u4OgOEMFx1V7YbNqOYFUxFp34khutQ6uWvNBOLa85KT5WMCemQVeZroMjGa
         RqpDB+OSwfhk5w06NSsAfyRiNkD+Z52U+xB041fCinzYF9iGl5CiP7/zOi9jOqE4OM6K
         fbnKq2LFa9LwLXx0qAqW+u5YciPZU8oC9jir4R07+RRPcBhj8f2PSmh5Ss8ctGiXrz+X
         AUE9DE1JJcTxkHohLEjgzCWfteaPhWA+O83SeHH7S98YY6IsZsH26iX3AFJsAbS6Jo03
         jTJ5uos9wel2WIk2AHMyNP2o4Pafd+8USfwIMTQyT/4DvhtvioUYWxqf0QLdaNsjach3
         hv1Q==
X-Forwarded-Encrypted: i=1; AFNElJ+Tq3JfWGpo+jXhs/ATs+2xoXt4joXwQUYws50TPE05vUXlU+0EWFtBGA+f1OykQf5ZggQBYsXqlKQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzFcS9M63abfx2tvwHpU8o7wjUlgoiBPrl7nQK+9wyXE8k9j2Fp
	uLBe3o0e+EmELqekyG9DA5PkJ1AS2VUY8d4k3eRadJpmXWIepPmSZJZ7A8Y24Kcl
X-Gm-Gg: Acq92OHi3H/E7fNPYEAj00rddPHdRb+DgWxmvWhbze8mINwBmNqy9kVkR/IWJtapgL5
	jkQ/pwZNXOOvh/jWNiQcP24NoG5hzz1CfMxml1Kuto7LT8W34Gr4nCwi4NQ/x0De6NziYf9kFj2
	6ZrLDwGU+2SX11fxeyIpd8LippjpVXB2cBF/g8fo/X9gj8FqXgX6pZZivobIgGmp5NPTJKH6dqf
	3haMWG1zk32g25UrK0Frx/ztxojeSOdgVo/zMMw0/jp27XAdYQ8m1qEwagWaTjnBaASy/w1M3VI
	X153wme3DcimLS77rESRvEx1WlTg0dDs5u1cI5VQPjPqmBDDl2OTtKEU67Z3uHLvXzRnLkyRCql
	cL/a0wVtaRCVttLUKC8LsEqFUj0WloodUlVnbbkvk6qbSkzwrRxTxb7iDzCswNynQDP5+EsqI8h
	Whp83GLKf5FvD/l8yNaynfz7IXhdy4TI9F/aPmbQTzLfprbp4ZruzwmT0v8cyY769tRt+ELUKeS
	j8iH8ZuS7XT9KeNY88+N6Md
X-Received: by 2002:a05:600c:8b86:b0:490:58f4:ba2f with SMTP id 5b1f17b1804b1-49058f4bb2fmr128821105e9.23.1779712449270;
        Mon, 25 May 2026 05:34:09 -0700 (PDT)
Message-ID: <43b1050a-24fe-40ec-ba9a-9fcce498b51d@gmail.com>
Date: Mon, 25 May 2026 14:34:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: gic-v3: Preserve ARE_NS when disabling the
 distributor
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Luca Fancellu <luca.fancellu@arm.com>,
 Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <0bc584018c025ee9fa5557276b9f3914ca9205d4.1779200467.git.mykola_kvach@epam.com>
 <f784f8f5-e0b7-424e-82c1-c98cdf070cd3@amd.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f784f8f5-e0b7-424e-82c1-c98cdf070cd3@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1779712450-AAF6E161-B90EC5F1/10/73395122804
X-purgate-type: spam
X-purgate-size: 1185



On 5/25/26 12:18 PM, Orzel, Michal wrote:
> 
> On 19-May-26 16:31, Mykola Kvach wrote:
>> From: Mykola Kvach <mykola_kvach@epam.com>
>>
>> gicv3_dist_init() disables the distributor before reprogramming the
>> global interrupt state. It used to do this by writing 0 to GICD_CTLR.
>>
>> On a system where firmware has already enabled Non-secure affinity
>> routing, a zero write clears the Non-secure view's GICD_CTLR.ARE_NS bit.
>> Arm IHI 0069H.b, section 2.3.3 ("Changing affinity routing enables"),
>> states that changing GICD_CTLR.ARE_NS from 1 to 0 is UNPREDICTABLE. The
>> GICD_CTLR register description in section 12.9.4 carries the same rule
>> for the ARE_NS field.
>>
>> Preserve ARE_NS while clearing the group enable bits. If firmware left
>> ARE_NS clear, the value written is still 0, preserving the existing
>> initialization flow.
>>
>> Fixes: bc183a0235e0 ("xen/arm: Add support for GIC v3")
>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> 
> @Oleksii, can we ask for a release ack here?

Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon May 25 13:21:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 13:21:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319263.1586954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRVEq-0000OQ-EV; Mon, 25 May 2026 13:21:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319263.1586954; Mon, 25 May 2026 13:21:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRVEq-0000OH-Az; Mon, 25 May 2026 13:21:00 +0000
Received: by outflank-mailman (input) for mailman id 1319263;
 Mon, 25 May 2026 13:20:59 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wRVEp-0000Am-7A
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 13:20:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRVEo-00FBlO-Ce
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 15:20:58 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a144cb6-2eae-0a2a0a5409dd-0a2a450bc874-2
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 15:20:58 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a144cba-212f-0a2a450b0019-d1558029ec5d-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 15:20:58 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-49056b9f04aso23460195e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 06:20:58 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4904526ca21sm247101985e9.3.2026.05.25.06.20.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 25 May 2026 06:20:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779715258; x=1780320058; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mhYowuyAWGSpmaN++lAXXVAbSyUZzptdaqiWvdE8iRk=;
        b=h+NL8aXgs+6cVmWHqSA0JpneZl8KikOtvxPqpozCYSp8U4ATGEHA1gnyBqlKxIK19o
         aV2e6JfL/ZbSmLM0xaW6Tjtg/1O+G129/9vZ6OEF/nTr2vSVN5HPvCxz5yYEazovHobF
         nF/CamXqZSt2v0HqldWtFyAlC2SE5LlcrhwgMfL28nca5QHdAgwB0KmdlwRkDJfmdVrg
         ERM8O8sQgmiuo/nQf/INcLh72FnD8jSQ2f7/F50P3XJY9DtpzoVnJKzd9dfOtwvrbNZt
         6oKYrIsOoLrtjbOzSJCuDrtm6HswiQ4+nnwCj8/g+TUENKs60SkJLj/hgaDh88CVMX/L
         nTkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779715258; x=1780320058;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=mhYowuyAWGSpmaN++lAXXVAbSyUZzptdaqiWvdE8iRk=;
        b=kk7+fqIbhCIIDTwyDaOEDkq/mKs6hbsrGxQDDgyXWvn4J+xOMi6oOiZ14ka8icBhTv
         BfefXh/SfWzx6g8jnQF1me/7JnRhW3dA7Lm+RbFh+c4ZEFHf1S554SjRKs3o7x2aRcMS
         Z6Z+WHS0XjsF1nWnkx91rfwWa4gz/bRKcXe0qemE3g20+jOIH7Ms3mZNhgEdTqjoFoJ5
         wL+YSf9+n8Xw+F+XE9QDCsL620pzqlkbWbLClPAw97b0JMdK7Stw8X181666ZaRF9mR3
         9GlittDzn/dZKQAw85VAjVVGPAebuKW/czORr8/2eKydlXkieB5EEBtMa+Y85rn40ebD
         ObDQ==
X-Gm-Message-State: AOJu0YxYWIesY9YZVrhaL3sT4EEq1wjqW9Nn4a1S5QCjVKlF5idAVjmE
	E9yi4QHJ5XtAmWuSe0TVIzGQmK8lklfmuicqt8BM+Wcu7ejGeGchoYuiRFUi+1ci
X-Gm-Gg: Acq92OF/gtmQviSEOplrzxK2Yh8imyQmnXjb2hCK2/lEPswWBvb4cAiOp2LMAhhvyJ6
	BSSF2uzVOBEettAVqXZ2+3Up7yqj6GRLjwTld4lOyOPJMl5y3OM+h/WEImhxGxAkbda4+TobMnu
	4GeLoMVLEyv/mAaBAUYZpP4O/kb1TyUyxukBiCRHeVVwl3js4P+46TDNg4u61JhApX85oI0at5F
	+XB8ahC26uax7m3exbt7YylFBEOvlq1qTCXq5A6yw9AFy1KAz69d8fEwdYveMgveGIXfqsDM5HE
	BXo5OqSZ3R1ksxgeBWpzow4fofORCYTiEo0YLoVihYX/auJRrOp6wKH70dB5jfKiRv4Mr+WVAF2
	D24v+q1DigtWQd4ZONRKoNd6u/L60Zp1mJvz7zZuQWAiW1ANRM4ueb7MHLwVYOicM/e4aKsw8O6
	oNAYoxtqpsfJqnqNoh/Cb471SuMNLejD9IrtOWfLTtgyYZkcJi/JxyxnW4OlAZaEb6vZaM96BCh
	lxG
X-Received: by 2002:a05:600c:8b12:b0:490:5191:6e1a with SMTP id 5b1f17b1804b1-490519170d7mr184485815e9.24.1779715257471;
        Mon, 25 May 2026 06:20:57 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Baptiste Le Duc <baptiste.le-duc@vates.tech>
Subject: [PATCH v2 1/3] xen/riscv: fix switch_stack_and_jump() for range beyond 1M
Date: Mon, 25 May 2026 15:20:42 +0200
Message-ID: <21bc40d4a09bb4cfe0999430ea7e65b369fd4033.1779712171.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1779712171.git.oleksii.kurochko@gmail.com>
References: <cover.1779712171.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1779715258-18B60F3B-4DFE5F36/10/73395122804
X-purgate-type: spam
X-purgate-size: 2202

The `j` instruction (JAL x0) used in switch_stack_and_jump() is a
J-type instruction with only a ±1MB range, and that this can
be exceeded in some configurations, causing a linker error:

  relocation truncated to fit: R_RISCV_JAL against `<symbol>'

Replace `j` with `jr` (JALR x0) via an explicit register, which has
unlimited range.

Found in a downstream branch when UBSAN instrumentation was enabled.

Note that the `tail` instruction looks more natural here, but `jr` is
chosen instead to avoid depending on how the assembler expands `tail`
and which scratch register it uses (`t1` in GAS), which would need to
be listed in the clobber section of `asm volatile`.

Fixes: e66003e7be199 ("xen/riscv: introduce setup_initial_pages")
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
---
Changes in v2:
 - Update the commit message and subject
---
 xen/arch/riscv/include/asm/current.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/include/asm/current.h b/xen/arch/riscv/include/asm/current.h
index 5fbee8182caa..cc004670d18c 100644
--- a/xen/arch/riscv/include/asm/current.h
+++ b/xen/arch/riscv/include/asm/current.h
@@ -51,11 +51,11 @@ DECLARE_PER_CPU(struct vcpu *, curr_vcpu);
 #define vcpu_guest_cpu_user_regs(vcpu) \
     (&(vcpu)->arch.cpu_info->guest_cpu_user_regs)
 
-#define switch_stack_and_jump(stack, fn) do {               \
-    asm volatile (                                          \
-            "mv sp, %0\n"                                   \
-            "j " #fn :: "r" (stack), "X" (fn) : "memory" ); \
-    unreachable();                                          \
+#define switch_stack_and_jump(stack, fn) do {                    \
+    asm volatile (                                               \
+            "mv sp, %0\n"                                        \
+            "jr %1" :: "r" (stack), "r" (fn) : "memory" );       \
+    unreachable();                                               \
 } while ( false )
 
 #define get_per_cpu_offset() __per_cpu_offset[smp_processor_id()]
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Mon May 25 13:21:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 13:21:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319262.1586946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRVEp-0000Au-8L; Mon, 25 May 2026 13:20:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319262.1586946; Mon, 25 May 2026 13:20:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRVEp-0000An-3y; Mon, 25 May 2026 13:20:59 +0000
Received: by outflank-mailman (input) for mailman id 1319262;
 Mon, 25 May 2026 13:20:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wRVEo-0000Ag-5F
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 13:20:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRVEm-00HD0O-4H
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 15:20:56 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a144ca3-e002-0a2a0a5209dd-0a2a4507d8d2-18
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 15:20:55 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a144cb7-229c-0a2a45070019-d1558031c98b-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 15:20:55 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-4903974854dso34799285e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 06:20:55 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4904526ca21sm247101985e9.3.2026.05.25.06.20.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 25 May 2026 06:20:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779715255; x=1780320055; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=XMUQgueOvck0avhmAwj6liffR1ga2OajXM2qCf6dYKk=;
        b=RyDB1+ZDdKMQOqUZIaGLy3yCp5dpOtVlf4xHrAg9Z0D0mdxNjTza0oa/HMYFJewVq1
         OeloX3iZ0YUvvSu3chYds4IylYWZTnLQEcjAFzpX3t/wmEgKM6g1gP8rKtDDPIbjHQgL
         i4LmOUbpJi/8v8y9b/qW/D2b7ZETPycK6LucuM6EnGiLlNBD+TFUm7wdBwGyMwLqhCkD
         ue2zkZWw7zGLbHKYwzf6Hm/q0gePgFmJ2TX8xxQcRa9XgiiCO17Uvp8ITcUSqbeH56rj
         uSri3vy9nvMyj8Kvd+tOjE5ym7R6/2Dgipw6/iHiqNCOoQSADF9yf4Q42kdMcxEipQBJ
         A7qA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779715255; x=1780320055;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XMUQgueOvck0avhmAwj6liffR1ga2OajXM2qCf6dYKk=;
        b=P5qcslFnk3FOxmWuOb3V5sq8Tgrbn4mcWh5ULtI9fPrmGV2nkIbaeEEfwsW/orOCKt
         t1AbhR9+9FyOWVDgU674LZHbOGZtTxSSeYB3KOQXWXdPiNeDgKBT5EB2tizXcukrZzW2
         Tn0MyiDdUkKxIb7WWFVM7KoKkvr/zZE76XlZBSTT8kFLIAGvpbsviVycZvwZTaqPF201
         eqDytS+E7dSuCjpGIWkkhR8HLYxSYkU+rbF3UxHvPUZ0+DzWBOGYqb13DXH1GmUHXvxP
         rtPKPYkUc8FmIT6sGg0nyapj8OtFxwJ9Ix3yc4UmtMuqXSqVu8WO+Wv7w2o89tb4QKwu
         20bA==
X-Gm-Message-State: AOJu0Yy3PUKCr3pWEjor4mRS0TO0NLhtMYrcQHVh03B6Ab1ObvhH4twP
	W4OjGL5XlCW7r5VIVaPQ71ApJ1IhApaU0TBHtkNJZHTRasrhCLiAu+l/Q5IaauPi
X-Gm-Gg: Acq92OHHVQT6T0h9epz4dEKEcjqlQCaqOndFR+q5GHMr1QqLpy9FeteIY8o4U6YIL5m
	mjqzkDPa9oUPl9nyfR6CsAlaoxG+wcmfF1zk3XIXUSwsih93mRmGhCq0LIW4/qxvKeIjua4n3rB
	TpYOaX0lwa2uShNPvQZu9jLf/aC/TMpiXal4zaYisiecRzxY+tn5py2h0IzRM0LF3qLKiE3m0J+
	Hz2e6ToSGntmwTpV615UwAdMRmToLX3/331zoGhf/+qAovZKGrX0hOHeAOKcGD1ITgdlkxiY6sq
	ea4pB5bgzZwq0a+fXIZfALR+/CThFd1RXRnTDD1ti6Cjx6oVqwHFjdoH+BxTzodwWYsqWYue543
	YP52s5QQa38I4GRakyc3I5BMED3Nj83GNTIMe4dd3VaeKWZnMBk3kzIb+xVzlspwH2q7G7SfYnU
	KWvSW9tru1mqfSAJLxDZHksi+/xTUK30PfdUryxl6iUEzuyBd14sU24CHYa8K4kgM4Yg==
X-Received: by 2002:a05:600c:3593:b0:488:8bdd:cfcc with SMTP id 5b1f17b1804b1-4904225ae0emr271143925e9.0.1779715255244;
        Mon, 25 May 2026 06:20:55 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH v2 0/3] UBSAN fixes
Date: Mon, 25 May 2026 15:20:41 +0200
Message-ID: <cover.1779712171.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1779715255-21969C48-F752855C/10/73395122804
X-purgate-type: spam
X-purgate-size: 809

During Baptiste Le Duc's work on adding CI stuff for RISC-V several UBSAN
issues were found.

This patch series resolves the found issues.

CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2551001500

---
Changes in v2:
 - Address comments from ML.
---

Oleksii Kurochko (3):
  xen/riscv: fix switch_stack_and_jump() for range beyond 1M
  xen/domain: fix UBSAN null pointer dereference of d->shared_info
  libfdt: fix UBSAN null pointer in fdt_property()

 xen/arch/riscv/include/asm/current.h | 10 +++++-----
 xen/common/domain.c                  |  2 +-
 xen/common/event_fifo.c              |  3 ++-
 xen/common/libfdt/fdt_sw.c           |  3 ++-
 xen/common/time.c                    |  3 +++
 5 files changed, 13 insertions(+), 8 deletions(-)

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Mon May 25 13:21:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 13:21:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319265.1586972 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRVEu-0000pv-0T; Mon, 25 May 2026 13:21:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319265.1586972; Mon, 25 May 2026 13:21:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRVEt-0000pm-So; Mon, 25 May 2026 13:21:03 +0000
Received: by outflank-mailman (input) for mailman id 1319265;
 Mon, 25 May 2026 13:21:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wRVEs-0000h4-6e
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 13:21:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRVEr-00HD0O-It
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 15:21:01 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a144c9e-e002-0a2a0a5209dd-0a2a450cd30e-22
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 15:21:01 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a144cbd-62f1-0a2a450c0019-d155802cdc96-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 15:21:01 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-4905529b933so13307365e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 06:21:01 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4904526ca21sm247101985e9.3.2026.05.25.06.20.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 25 May 2026 06:21:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779715261; x=1780320061; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LnvKC3uKIYyQyLpDODWpeTmvo1taBNlFPdhQ7OBPgd4=;
        b=i7ULngCd7rwk9j1/VqYvxIFyrV5pT00sKpQDMGBHxXu8XJyl/bTHG/r4UJ8JktD6mB
         Qps3FRJlBa8pV45gwVWb0Vq8dHCMglahS4QUuoU5fnn6UWq+d4xXbdOPGHzjQb06UoHm
         jGNzUfX4wiw83TmdhEloSv2XI/Dc7UcbM0Pbp3YC4qFXvJySvW9i7KJ+8twzWjRgoOqq
         KOb+D2BXfXfpH9wpJJ7VBcsrI9Y2BR4+LojhS2ItBrQiztXnwRf6jRPy/HiHHtjGkzJ2
         oz+N5xtg2ZEUnU22SEqTWkeijyh97tQW+PWAinu+OwijOXdHt0w9wVI+vEFjVhiyx3qN
         x2bw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779715261; x=1780320061;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=LnvKC3uKIYyQyLpDODWpeTmvo1taBNlFPdhQ7OBPgd4=;
        b=AIt0GyLzMV5uS0H8UdeVpxNfgBLgB/z7/x3BICpU+1J36dqn6jsRp4xekXDeGL2z+D
         k2YYlZgBrY61mvYgWe9TnIU8HoM0grVFPS30Vel4vZVHO2LB4qMsLM2ddRKWKKvV7lhD
         FFKUtXaHVGpbSRLmMqo98lNPtpAYXiwe/M1EEBBBgGoEm3oKWaSDowrVhLnHSdf5zQNu
         e+iyp5e9XmKvuMXigde1OdfHmZRgSCGir0FCZr7t335kPYbcrupHlQp1zVjQVADRjCb8
         zMUKJ++vJ+b5btZKMrWaR8eHKrlerWDpoLYVYkzLof8LlzSjIVvWfvz1nJ3Stf1UUyFo
         J2pg==
X-Gm-Message-State: AOJu0YwVHyixmNY+ZsSyJlf9PK70h98IrofZGz6vKHg2ybo1llKOlLul
	Nf7MVxQ9D4irsH4wVA1C6raGQodooHvt1B+Npw8n5HlRB97N/i/h+wAQI6lPun1n
X-Gm-Gg: Acq92OHi4C9iyo0LphWtY06F1WmhhBhhL7KBXr44xrc0FC+gO7pSK+S61gMiI7vfrVn
	GkssFVzN6/2IPbajcwyn3HeaeuJvq3D1QqSSfyeJji/wXX1DHPXhToE1a4QgydUVwoEilAyMk08
	7C83oWZ14gyLC7Vl3y5CNYVjav1PdNPdo45RI+xA55oyeuJXrgNNJTUMmCvHUzgouzGHa7aivnk
	ZOtTxABfMKYvjKDfVD0GBGRfQj4Afqh0odlAel1OjRNR9wt95aHpIkqg/mMneOhosGDS/50C7Nk
	6XqzDAuylfVMsrrdkrg2hUVyGj2A58P6dowgf1HS7flDfXWhVGeYpQ6ovggofdYHUt24h9ssc0z
	9UeGKDeWQl7zootq2V01xJJ2baz3h0gBb1vtK983J2+2MTg6iiAMhkAbPP6VESCnYLSaSWgT4GX
	IuEAKAP7W0fuFZqUo+Fno9NTBD5XxZO0LznhCnMuiamXBti71WqfjSrw7XKSe8OhxeyA==
X-Received: by 2002:a05:600c:4510:b0:48a:53ea:140b with SMTP id 5b1f17b1804b1-490428ddf15mr222949465e9.28.1779715260801;
        Mon, 25 May 2026 06:21:00 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	David Gibson <david@gibson.dropbear.id.au>,
	Baptiste Le Duc <baptiste.le-duc@vates.tech>
Subject: [PATCH v2 3/3] libfdt: fix UBSAN null pointer in fdt_property()
Date: Mon, 25 May 2026 15:20:44 +0200
Message-ID: <248482e608157a7156f7bb6d8a809540a50f3f86.1779712171.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1779712171.git.oleksii.kurochko@gmail.com>
References: <cover.1779712171.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1779715261-E1B6CCF5-167C92D7/10/73395122804
X-purgate-type: spam
X-purgate-size: 1556

fdt_property() unconditionally calls memcpy(ptr, val, len) even when
len is zero and val is NULL.  This is a legitimate calling convention
for adding empty FDT properties such as "interrupt-controller", which
carry no payload.

However, compilers that treat memcpy as nonnull on its pointer arguments
will fire UBSAN before observing that len is zero.

Guard the memcpy() with a check on len so it is skipped entirely when
there is no payload to copy, bringing the code in line with the
nonnull contract.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Origin: git://git.kernel.org/pub/scm/utils/dtc/dtc.git f57e7df35df4

Fixes: f0ea06558068 ("libfdt: add version 1.3.0")
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
---
Changes in v2:
 - Backport patch from https://github.com/dgibson/dtc/commit/f57e7df35df4a301961cbbf9433ba4e85c2ee5ed
---
 xen/common/libfdt/fdt_sw.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/common/libfdt/fdt_sw.c b/xen/common/libfdt/fdt_sw.c
index 4c569ee7eb0d..96d4cf571319 100644
--- a/xen/common/libfdt/fdt_sw.c
+++ b/xen/common/libfdt/fdt_sw.c
@@ -330,7 +330,8 @@ int fdt_property(void *fdt, const char *name, const void *val, int len)
 	ret = fdt_property_placeholder(fdt, name, len, &ptr);
 	if (ret)
 		return ret;
-	memcpy(ptr, val, len);
+	if (len)
+		memcpy(ptr, val, len);
 	return 0;
 }
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Mon May 25 13:21:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 13:21:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319264.1586963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRVEr-0000bT-PH; Mon, 25 May 2026 13:21:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319264.1586963; Mon, 25 May 2026 13:21:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRVEr-0000bM-LW; Mon, 25 May 2026 13:21:01 +0000
Received: by outflank-mailman (input) for mailman id 1319264;
 Mon, 25 May 2026 13:21:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wRVEq-0000ON-IX
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 13:21:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRVEp-00DYzL-Uo
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 15:20:59 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a144ca0-bab6-0a2a0a5309dd-0a2a4504bc44-26
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 15:20:59 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a144cbb-1dec-0a2a45040019-d1558036b511-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 15:20:59 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-4906869f0cbso6852675e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 06:20:59 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4904526ca21sm247101985e9.3.2026.05.25.06.20.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 25 May 2026 06:20:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779715259; x=1780320059; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Y01U/cIdeBHcv5iWEI8HdRJZlY3tdB5kvE1STP1YdwU=;
        b=lXidjKzQ9FDcmeQfJHsotFVw6fopOjayFqcLzGrZVxk90XRsQBUrwuInxdCm00ITmC
         h6yvCfIR74XV0uE+Zcw8+OaR+A4My2SQQaHL+8P2HQzJCMTTckpZ/OCUTSZ55dexowu6
         OKVsXmLerkgjLvIpG2AEd9F2hVg++fc9FBDOpKKXtv6OWjH2R9hIZggI2hffWtOZxRDD
         lH9GMcZ9cNMUQLM9kgWTlKzrAUN6fqDD+5TFcUsh05Kj2MZEm9KtgcEqj225EjaovPq4
         vj+I+ve8K8o/oqTrwEkCdlRgGdI/qwo+ooDQBl1MsxnrmpyS8n/lykTTkoH0xn85ih55
         XYkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779715259; x=1780320059;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Y01U/cIdeBHcv5iWEI8HdRJZlY3tdB5kvE1STP1YdwU=;
        b=QFMbJTzJCXzh9LDcxcZo1fSjqq/3I+O2CCtIqKFw83cKeOBdqiNMFmPujI78ZprE2g
         tfzcnScsZDm0r/TAAUz2J9HbLJeV6v6t6A5E2oXIxqtXYvJG/2BlxMxQurzigXcqKD9U
         n1g+Rj1diLlZ/3fKRxiDtmxkWFau4qAM0/apACQ4jWgxwYH+xVRNrJNfYDnyjCHA2Y6F
         Kw/+QegPnd71Bd6REKqvHnRDEJ3Ryx6Wl5t9cAGqDBgLLziQaxWRRHWbxHxC+btFyXyN
         MRhW3uOwYYWQWwHnDJ8vdbf3pRDuxIMEoAMPzT/0Ak40sNko8xbLo20FHIMZCwccpatW
         qvkw==
X-Gm-Message-State: AOJu0Yz1kwA8UVtt0xh995QW363H4952h7cAXQ9rTecjsgcusLtHNWe1
	OJ8zti6fioGz0j73vJTTCXJxqMwmThZeh44vsvXO1HGCVLpklkXao7vECfTiv45a
X-Gm-Gg: Acq92OFArsnl9RVpN7oMIG6yEPia1OWFchmW3ezrYPctbVsogcTnPAxXpJL+PEeibt8
	ac7giFR/giZAnM0qTj/JWFHel0yYe26oFMUntSASYxjwq6qHfi2Z31Z5EbfWHCDohKyPfHvwJ6s
	uEM4/kbjfJ+hb04RF5o/YRtyhIjBlJUBGu03YcUcVzi9Swqbm02HJcVb+CxjVDYfX+yCEQ1GM7V
	mc5MHB6HdpjTQK+FoxWvjs7TBIMznOUtnU9MbCqQPNOCikfM711f4WCJjaSf/3H1FJxlxPEtb2W
	ji89dcWYDKOAcZtcontrq0XYZGGHWiQzchRulEJD/WAMEfWbWcBF4BZmbocg880FVkgcRu0iAdu
	eckYr6m6bc93Si+eMHL+9+Em6xorgTzUwE7udvPS/7QGhsICTSSCebG3y258gMRaGjSk4TTM0Ds
	+kRAn1BrDsw87lIGB3qARXBVyT4/yYS7jtN4214POZOY5djzdpadm/PrETsbuURlF+3A==
X-Received: by 2002:a05:600c:4510:b0:48f:d5a0:284e with SMTP id 5b1f17b1804b1-490428e03b8mr229165155e9.28.1779715259120;
        Mon, 25 May 2026 06:20:59 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 2/3] xen/domain: fix UBSAN null pointer dereference of d->shared_info
Date: Mon, 25 May 2026 15:20:43 +0200
Message-ID: <04dd784b6b9a4dfca9a313ea8802d8d514d65021.1779712171.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <cover.1779712171.git.oleksii.kurochko@gmail.com>
References: <cover.1779712171.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1779715259-40B733FF-A7992848/10/73395122804
X-purgate-type: spam
X-purgate-size: 3702

It is legal to have d->shared_info equal to NULL for architectures which
support only the FIFO ABI for event channel management.

Having d->shared_info == NULL leads to a UBSAN issue on such architectures:
  UBSAN: Undefined behaviour in common/domain.c:325:10
         member access within null pointer of type 'struct shared_info_t'

vcpu_info_reset() maps v->vcpu_info_area.map to the per-vcpu slot inside
the domain's shared_info page for vcpus with id < XEN_LEGACY_MAX_VCPUS,
and falls back to dummy_vcpu_info for vcpus beyond that limit.
Extend the existing fallback condition to also cover the case where no
shared_info page has been allocated, mapping the vcpu to dummy_vcpu_info
instead. This is the correct behaviour: dummy_vcpu_info already serves
as the safe stand-in for vcpus that have no usable shared_info slot.

Additionally, if an architecture supports only the FIFO ABI, setup_ports()
should be updated to avoid a NULL pointer dereference of d->shared_info,
since in that case there will be no pending events in
shared_info->evtchn_pending and the pending flag of the FIFO event channel
does not need to be set to true.
update_domain_wallclock_time() accesses d->shared_info via shared_info()
macro. On architectures that do not allocate a shared_info page (currently
RISC-V, which runs guests in dom0less mode without the PV ABI), this causes
a NULL dereference. The early return is safe: if there is no shared_info
page, there is nothing to update. For all existing architectures (x86, ARM)
that do allocate it, the guard is never taken and behavior is unchanged.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Update commit message + subject.
 - Drop Fixes tag.
 - Handle migration of pending events from 2L and FIFO ABIs when arch
   support only FIFO ABI.
 - Update the commit message.
 - Protect some other places in common code from NULL pointer deref of
   d->shared_info.
 - Drop R-by: Baptiste ... as some extra checks are added.
---
 xen/common/domain.c     | 2 +-
 xen/common/event_fifo.c | 3 ++-
 xen/common/time.c       | 3 +++
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index bb9e210c2895..e64b7df9b704 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -320,7 +320,7 @@ void vcpu_info_reset(struct vcpu *v)
     struct domain *d = v->domain;
 
     v->vcpu_info_area.map =
-        ((v->vcpu_id < XEN_LEGACY_MAX_VCPUS)
+        ((v->vcpu_id < XEN_LEGACY_MAX_VCPUS && d->shared_info)
          ? (vcpu_info_t *)&shared_info(d, vcpu_info[v->vcpu_id])
          : &dummy_vcpu_info);
 }
diff --git a/xen/common/event_fifo.c b/xen/common/event_fifo.c
index 37cba9bc4564..59d9bf4c7ec0 100644
--- a/xen/common/event_fifo.c
+++ b/xen/common/event_fifo.c
@@ -562,7 +562,8 @@ static void setup_ports(struct domain *d, unsigned int prev_evtchns)
 
         evtchn = evtchn_from_port(d, port);
 
-        if ( guest_test_bit(d, port, &shared_info(d, evtchn_pending)) )
+        if ( d->shared_info &&
+             guest_test_bit(d, port, &shared_info(d, evtchn_pending)) )
             evtchn->pending = true;
 
         evtchn_fifo_set_priority(d, evtchn, EVTCHN_FIFO_PRIORITY_DEFAULT);
diff --git a/xen/common/time.c b/xen/common/time.c
index 04a65f00b35c..1ee49a8b0d13 100644
--- a/xen/common/time.c
+++ b/xen/common/time.c
@@ -94,6 +94,9 @@ void update_domain_wallclock_time(struct domain *d)
     uint32_t *wc_version;
     uint64_t sec;
 
+    if ( !d->shared_info )
+        return;
+
     spin_lock(&wc_lock);
 
     wc_version = &shared_info(d, wc_version);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Mon May 25 16:32:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 16:32:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319362.1587005 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRYDV-0001H1-2Z; Mon, 25 May 2026 16:31:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319362.1587005; Mon, 25 May 2026 16:31:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRYDU-0001Gu-VM; Mon, 25 May 2026 16:31:48 +0000
Received: by outflank-mailman (input) for mailman id 1319362;
 Mon, 25 May 2026 16:31:47 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wRYDT-0001Go-GJ
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 16:31:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRYDS-00FFFO-Pu
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 18:31:46 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a147953-e002-0a2a0a5209dd-0a2a4508da4c-34
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 18:31:46 +0200
Received: from [209.85.167.53] (helo=mail-lf1-f53.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a147972-63b5-0a2a45080019-d155a735ddca-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 18:31:46 +0200
Received: by mail-lf1-f53.google.com with SMTP id
 2adb3069b0e04-5a8cb92f26aso10419033e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 09:31:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779726706; cv=none;
        d=google.com; s=arc-20240605;
        b=TW74qCTXuNcoEDs+JwjELR+Rmu+P+pjMdnxYa05fTiWEIDCBK5Pjn7kJ/rDltv3jRG
         JBxjZ/twu3Jyvo3gNtDpVE9PfVLPDw3wAt0yLNMdBaSV8VWV5wFHFMWqS+6yEaGn8xuK
         +lQAAn92Idk68FfggzFiaDE75NlQ6bfhGSBDwARZ7qj1ZsOthJqrqKO5IH0fz4zOEDAm
         VD3d/YsXXxlV1HcHHy/Y+UocmbIiKzuzS1O/jclu+LyFB8Jbn/Iq6zte/2xBxC8jlnMU
         fTQkA94r9cyg/A9+1vSydtEe2VAN22IOsyakloHx91IiTETf/qAgkeHCSh5xtNhRgRzJ
         cF0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=bdjHvJti1PFGKhzoVezSMAeyJZDGbVl6BB/kPZLIlDY=;
        fh=9JZxiMpSfuLqiQWy+/Qm7fbwQ+MYsT4GTch2ySqG6FU=;
        b=RDg8EY3RqMTzqcCNj529l6Nq0K8Q0/+NNRkq8S0X8GvVzgHjhENRd4dj2Le1Ye2gz8
         x9haK7DQds0t8M0Ks48cZCIQgII788RgeCR7jj3Z2mSHE6epgsN4b++M7TxurikRuViW
         XTsiYP9nXW9yarYjKvw3t9NAxa81TSqcUJmfOp0pYiR23wDzWsKu7wQSi/GhyIDT2Vtp
         N/H3FCT3h5eELk8/UZgPx/O/9M4R7LMBLmC6RXZNjlG2qjs5xk51A0/Q0VtIZNhE2W2n
         tTUIodRTRHS2QieB4OOQExLHkUfH5kOOjj2bCZcFvXG4mYRw1BXNKhRYW37+a11jKztN
         hr+A==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779726706; x=1780331506; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bdjHvJti1PFGKhzoVezSMAeyJZDGbVl6BB/kPZLIlDY=;
        b=rH6y+YZMTI0WxeSl7vVgcMx265xN/fqMrZ8poD0M5sSVyhtpRnKqu1Om2vTm2UqZdF
         Pf/DTs8CS6GisVXx2r1hjWAAbBFVPJhvVGkRQk4Jbi8XYMDtYTwuJxE3xGX07HHri+pd
         D2e7Uw+1GRMWn4RmxQqZ18kiCsUFmg6jNfJ//DqJe1CZq5vUojNOimJR/CXmYuGvj5lq
         9wYB+qbgOViNZr+B/7rTAIew+KsaHIkslqTDrgNyZnMA5Doe4Vk43Tmu6jMBPk9LXtO5
         LK0MI/RgfnEnk3B5HBP51cMtlaQWL8bQcxUJMpdxGqZMITI5R3eBawlpg7koiFC1TeQ3
         gwAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779726706; x=1780331506;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=bdjHvJti1PFGKhzoVezSMAeyJZDGbVl6BB/kPZLIlDY=;
        b=YF4mhSznY6h5YrKnY3h1mFvqz0DzYeutH8gYkiAUCPQpnsEEwzBq5NFy8hHs26sWv8
         oBLxaVvjLK2XoNLIRXm3VNSJ0GVys/wQZYtSsM5WOIRNH+cp/g4pD25hmvD+QFo0DGgx
         IHbHC7/LDyvHbXVTfX6A2Mfe+fJ3RYZebYdasiolAJsgCKUi/vOMzclnlqnbLVWxoYEO
         BZ3D63Z7oBekEKasrCmBmk+tyRFSE1FxSmYbtnbwIfDAOLDWKYWf3LqwRRvCtdD8Vdnk
         R5MTY0VaECnjffJjElyxpL2OGGMwZnUf9CHMoss05rzl7rKwlHMEo9DaZZGLMpOTjWTG
         caZA==
X-Gm-Message-State: AOJu0YymPq8+CRj+3NNNMdeZTmd7CwcjJuVqLhXkEBkZn7qtY8kNOxaV
	TPh/zaYfT8kuM1OPOe0/rRWeBCQ21jykSf83U8Yc2DPXqzDHoqEdnn1g54LoL/resQ9M3kTEqpj
	nO+9fdVYwzvLRD0JU+bqONxl7fZHDlh0=
X-Gm-Gg: Acq92OEL4Fp84pQ+rZL0P+qZsoveKXKc4GBeoGXUxt+wEEBCYL9oUrcSKBGJS0AyXqi
	V1twyaZ7Ov+9UlTYzKJo4XcDaP7M/q+K0CjKCVIhcrHD897ouj8L0cqQBafWct+gFDDURxutWSr
	XnJEgNpH0H56AwDP16Aqm54S1nnp0LeB+T3ExjrSL1brR9kwOQonDF2dXCOEqtruHJdY9iiN49R
	UQm1tSAMi3ACb/uV6CqBDxd+shiZJLLaox+XQDEcmDR4IH4SvNrSYLQ4s3RUAu70elk8pswr3fc
	J2K0
X-Received: by 2002:ac2:54bc:0:b0:5a8:6b89:5e5b with SMTP id
 2adb3069b0e04-5aa323cf6admr3635114e87.36.1779726705738; Mon, 25 May 2026
 09:31:45 -0700 (PDT)
MIME-Version: 1.0
References: <9ae4f7dd49f5b1f761193adae573c2675c92e883.1779051035.git.mykola_kvach@epam.com>
 <ag+C21L9WoH3ngg8@kraken>
In-Reply-To: <ag+C21L9WoH3ngg8@kraken>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 25 May 2026 19:31:33 +0300
X-Gm-Features: AVHnY4K5F0OU4tmh7fdxYvq7UIAaTrEP1RX1L81qx53F7Ov3mquqO3EjVwIDgJI
Message-ID: <CAGeoDV-Tpt4Qa2fdWCwFdAfvcOSyssnyBn3w_fEvArJxf7eiww@mail.gmail.com>
Subject: Re: [RFC PATCH] device-tree: size first hwdom bank for boot modules
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c1860d/1779726706-BE577DB1-01B0C2FC/0/0
X-purgate-type: clean
X-purgate-size: 8052

On Fri, May 22, 2026 at 1:10=E2=80=AFAM <dmukhin@ford.com> wrote:
>
> Hi Mykola,
>
> The patch looks good!
>
> I would try to add a CI coverage for QEMU aarch64 tests, since QEMU
> supports multiple RAM banks topology.
>
> What do you think?
>
> Also, few remarks below.
>
> On Sun, May 17, 2026 at 11:57:56PM +0300, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > With LLC coloring enabled, the hardware domain memory comes from
> > allocate_hwdom_memory(), not from the fixed direct-map banks used when
> > coloring is off.
> >
> > Commit de99f3263555 ("device-tree: Improve hwdom memory allocation for
> > DMA") made that allocator sort free host regions by ascending address s=
o
> > Dom0 gets DMA-capable low memory first. The first bank filter still onl=
y
> > required 128MB. That can select a low region which is large enough for
> > the heuristic, but not large enough for place_modules() to put the Dom0
> > kernel, generated DTB and initrd contiguously in bank 0.
> >
> > Ask arch code for any additional first-bank size requirement. On Arm,
> > compute it from the actual Dom0 kernel placement, rounded initrd size a=
nd
> > generated DTB size hint. For 64-bit Image kernels, include the text off=
set
> > from the candidate bank start, because the returned requirement is comp=
ared
> > with a bank size measured from that start. The hint covers both the nor=
mal
> > Device Tree path and the minimal DTB created for ACPI boot.
> >
> > Check the first-bank threshold against the size which will actually be
> > assigned to Dom0, after capping the host region by the remaining unassi=
gned
> > Dom0 memory. Otherwise a large host region could pass the test but stil=
l
> > produce a first guest bank too small for place_modules().
> >
> > Use the typed min()/max() helpers for this normal allocation arithmetic=
;
> > MIN()/MAX() are intended for preprocessor-style contexts and skip the t=
ype
> > checking provided by the lowercase helpers.
> >
> > This keeps the DMA-oriented allocation policy from de99f3263555 while
> > preventing a too-small bank 0 from reaching place_modules().
> >
> > Fixes: de99f3263555 ("device-tree: Improve hwdom memory allocation for =
DMA")
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Test/setup notes:
> >
> > The failure was reproduced on a Renesas H3ULCB/R-Car H3 (r8a7795)
> > arm64 board booted through U-Boot/TFTP and using huge initrd.
> >
> > Relevant Xen command line excerpt:
> >   dom0_mem=3D2048M llc-coloring=3Don
> >
> > Boot module layout from Xen:
> >   MODULE[2]: 0x0000000084000040-0x000000008e75d92f Ramdisk
> >   MODULE[3]: 0x00000000a0000000-0x00000000a3ffffff Kernel
> >   MODULE[4]: 0x00000000a4000000-0x00000000a400ffff XSM Policy
> >
> > The initrd is about 168MB. With LLC coloring enabled and the low-addres=
s
> > allocation policy from de99f3263555, Dom0 can receive a 192MB first ban=
k:
> >   d0 BANK[0] 0x00000048000000-0x00000054000000 (192MB)
> >
> > That bank satisfies the old 128MB minimum but is too small for the
> > rounded Dom0 kernel, generated DTB and initrd placement. The observed
> > failure before this patch was:
> >   Panic on CPU 0:
> >   Not enough memory in the first bank for the kernel+dtb+initrd
> >
> > With this patch, the same boot skips the too-small low region for bank =
0
> > and reaches Dom0:
> >   d0 BANK[0] 0x00000057000000-0x00000084000000 (720MB)
> >   d0 BANK[1] 0x0000008e800000-0x000000c0000000 (792MB)
> >   d0 BANK[2] 0x00000500000000-0x00000521800000 (536MB)
> >   d0: extended region 0: 0x48000000->0x54000000
> >   Loading zImage from 0x00000000a0000000 to 0x57000000-0x5b000000
> >   Loading d0 initrd from 0x0000000084000040 to 0x5f200000-0x6995d8f0
> >   Loading d0 DTB to 0x5f000000-0x5f011c80
> >   Linux version 5.10.194-yocto-standard
> > ---
> >  xen/arch/arm/acpi/domain_build.c        |  2 --
> >  xen/arch/arm/domain_build.c             |  8 ++++++
> >  xen/arch/arm/include/asm/domain_build.h |  4 +++
> >  xen/arch/arm/include/asm/kernel.h       |  8 ++++++
> >  xen/arch/arm/kernel.c                   | 35 +++++++++++++++++++++++++
> >  xen/common/device-tree/domain-build.c   | 27 ++++++++++++++-----
> >  xen/include/xen/fdt-kernel.h            |  8 ++++++
> >  7 files changed, 83 insertions(+), 9 deletions(-)
> >
> > diff --git a/xen/arch/arm/acpi/domain_build.c b/xen/arch/arm/acpi/domai=
n_build.c
> > index 249d899c33..db16f7fa94 100644
> > --- a/xen/arch/arm/acpi/domain_build.c
> > +++ b/xen/arch/arm/acpi/domain_build.c
> > @@ -26,8 +26,6 @@
> >  #undef virt_to_mfn
> >  #define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
> >
> > -#define ACPI_DOM0_FDT_MIN_SIZE 4096
> > -
> >  static int __init acpi_iomem_deny_access(struct domain *d)
> >  {
> >      acpi_status status;
> > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> > index 1efddc60ef..226e053c68 100644
> > --- a/xen/arch/arm/domain_build.c
> > +++ b/xen/arch/arm/domain_build.c
> > @@ -115,6 +115,14 @@ int __init parse_arch_dom0_param(const char *s, co=
nst char *e)
> >                               (IS_ENABLED(CONFIG_STATIC_SHM) ?         =
\
> >                                (NR_SHMEM_BANKS * (160 + 16)) : 0))
> >
> > +paddr_t __init dom0_get_fdt_size_hint(void)
> > +{
> > +    if ( !acpi_disabled )
> > +        return ACPI_DOM0_FDT_MIN_SIZE;
> > +
> > +    return fdt_totalsize(device_tree_flattened) + DOM0_FDT_EXTRA_SIZE;
>
> I would invert the condition so it is read more straightforward:
>
>     if ( acpi_disabled )
>         return fdt_totalsize(device_tree_flattened) + DOM0_FDT_EXTRA_SIZE=
;
>
>     return ACPI_DOM0_FDT_MIN_SIZE;
>
> [..]
> > diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
> > index b72585b7fe..3644663e2f 100644
> > --- a/xen/arch/arm/kernel.c
> > +++ b/xen/arch/arm/kernel.c
> > @@ -128,6 +128,41 @@ static paddr_t __init kernel_zimage_place(struct k=
ernel_info *info)
> >      return load_addr;
> >  }
> >
> > +static paddr_t __init kernel_placement_size(paddr_t load_addr, paddr_t=
 len)
> > +{
> > +    return ROUNDUP(load_addr + len, MB(2)) - load_addr;
> > +}
> > +
> > +paddr_t __init arch_get_min_first_bank_size(struct kernel_info *info,
> > +                                            paddr_t bank_start)
> > +{
> > +    const struct boot_module *mod =3D info->bd.initrd;
> > +    const paddr_t initrd_len =3D ROUNDUP(mod ? mod->size : 0, MB(2));
> > +    const paddr_t dtb_len =3D ROUNDUP(dom0_get_fdt_size_hint(), MB(2))=
;
> > +    paddr_t kernsize;
> > +
> > +#ifdef CONFIG_HAS_DOMAIN_TYPE
>
> Perhaps use `IS_ENABLED(CONFIG_HAS_DOMAIN_TYPE)` to reduce ifdefery?
> My impression that IS_ENABLED() is preferred.
>
> > +    if ( (info->type =3D=3D DOMAIN_64BIT) && (info->image.start =3D=3D=
 0) )
> > +    {
> > +        paddr_t load_addr =3D bank_start + info->image.text_offset;
> > +
> > +        /*
> > +         * The caller compares this value with a size measured from
> > +         * bank_start, so include the text offset before the kernel.
> > +         */
> > +        kernsize =3D ROUNDUP(load_addr + info->image.len, MB(2)) - ban=
k_start;
> > +        return kernsize + initrd_len + dtb_len;
> > +    }
> > +#endif
> > +
> > +    if ( info->image.start =3D=3D 0 )
>
> Here too: invert the condition?
>
>        if ( info->image.start )
>            kernsize =3D kernel_placement_size(info->image.start, info->im=
age.len);
>        else
>            ...

I think I will keep the explicit info->image.start =3D=3D 0 check here.

In this code, start =3D=3D 0 is an established special case rather than jus=
t
a numeric input to the helper. kernel_zimage_place() handles it
explicitly as the position-independent image case where Xen chooses the
load address. Keeping the branch in the same form matches the surrounding
code and keeps that special case visible.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 25 17:40:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 17:40:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319382.1587013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRZHe-00020d-PL; Mon, 25 May 2026 17:40:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319382.1587013; Mon, 25 May 2026 17:40:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRZHe-00020V-MN; Mon, 25 May 2026 17:40:10 +0000
Received: by outflank-mailman (input) for mailman id 1319382;
 Mon, 25 May 2026 17:40:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <accek@invisiblethingslab.com>) id 1wRZHd-00020P-AS
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 17:40:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRZHc-0013Iy-Ml
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 19:40:08 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <accek@invisiblethingslab.com>)
 id 6a148971-e002-0a2a0a5209dd-0a2a4509abe2-14
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 19:40:08 +0200
Received: from [103.168.172.156] (helo=fhigh-a5-smtp.messagingengine.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <accek@invisiblethingslab.com>)
 id 6a148976-2497-0a2a45090019-67a8ac9cdfc3-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 19:40:07 +0200
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 6CD6E1400051;
 Mon, 25 May 2026 13:40:06 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Mon, 25 May 2026 13:40:06 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 25 May 2026 13:40:00 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm3 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:Message-ID:MIME-Version:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:message-id:mime-version:reply-to:subject:subject:to:to; s=fm3;
	 t=1779730806; x=1779817206; bh=UN1tCVrzEQOruACyzdmLbvIpTXgXCHXG
	x+kTPh86tw4=; b=UHiJ+RYRRy1iboOpNy72P7LDLeKbF4h17yI/rCJTDxOEIQd4
	fGdUkbAhmzPeWJhXlaROKSe1GnYenNm00LQYwov+eT1z+/KxNlMCsE4U9RnP0R6D
	+U8SnmPiTPBzNjs9IPSlxE064d/DAYpHPTe3qArkOxkC990niJ+SzTXRp7aNc8un
	wFGokQwmEIkrIreg4dRIW3zEfQWdwia7bPLrxUGrXlbgjQe1v7WLgBuVI4ul+DU4
	yPXsGbmWtW78Ajot4SD+V71nnx2IydoZnPrTYJOrnGZ2ks74AGljTE0r/RoVvPqP
	wmSxH1tFJQqAOGLkKV4DDO6wXPhjBf5hSZ6zZQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:message-id:mime-version:reply-to:subject
	:subject:to:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm3; t=1779730806; x=1779817206; bh=UN1tCVrzEQOruACyzdmLbvIpTXgX
	CHXGx+kTPh86tw4=; b=NLEFLWsF9A7x1VxJNam20SycqEhuNDS06p1TX0IF87fl
	AhIVURoBEfZ2FhP1MGHBY4343ZfKtNJLH5y1ccTsHfxjpjWzy5go4HqiSWT/t28V
	2AEQFHtSWmi+3WRwXVunS8vZSrmMgihjvI6zWWhM7+fR3Oe7zEyRPPeNvCSe28m8
	4AcHNhZyMsxQ0YBjQnpGPJvprNp193oeeKwKUxXZZ4gd3NBxmLhPOmoX+lw/e/S8
	BVG1HNr3FbdCFqucMmU7WzpnHKif4ntYSvNivfeuxK6zvkTz176M64l+clBVQL+N
	Mcfqt6sNY1t8/WsOXO4qsXF5e5Dk1yq3qf0hRB0+ng==
X-ME-Sender: <xms:dYkUau5sfDAe0FV_Af9dgv9YuYdGGCWn1PL4ZbZsSCApBX0HktBlfQ>
    <xme:dYkUarkoBty2GkuAYY7Ghw7vM4VuqUI4ywF90kJp52occMnx2E9tXcmz_mwnWopLz
    jYcBSrgm2zJX3fCRBqM8FwBSd-zbvFJc0bz6uGlmm9p8MX4hg>
X-ME-Received: <xmr:dYkUamHaOPeLXDPuRy2W5-SicZEegk5wu45dakOjfOA1wvyT72aMzkVXrQ>
X-ME-Proxy-Cause: dmFkZTGcyCBBM2XUZnPN6jxXYmxu2ix4ilCgvL7cY711i5OPMy4ilzn99AAg3v5bo+w4Yx
    lclcjZT4HfHWfDkMN4mlfdSd6nGkxkLfFqkUOzhyzXBCTnpvYzX+fYd5Oc+3oa7cHx4oF8
    xY1xxCA/j23VMy2LLxhI++RbbspWc1BkzRtwyk7laL6cUpbUl03ZzLDts4RtLMdZyVFRCP
    rpdY0b5S5U2QuBkyfYbniwu3G5i4gQOG2lTlIkdOSYSgg2yaaLcaByIvEaFzVzdy+TC1bJ
    hHohUprD21FCeN0UWXTPmkqGZOlcjGRWE50DEorRrr8z/X3kVCXCoZ3fMgMxi/x4TSGqAh
    s/qIrmXGeUJ9dTkLXX81UgS1cRO3rc5L5UpxlS7ru3JwLQeQHQbGY080QLIvlobyt/p+re
    g5R1emiRC0XF/i/kAbqL/3r7V1KVXPZKqXlkH3ZYR2uZo69n/l3e7wGQnsPVyZBI9dRPdW
    2MoT8w+2o2Qc1LJAYDR0sFHSaHnLPFsZ7us4zKss/s9k5UheVhPuSFnxYC6TdkjuVjJut/
    ht5mcyNUAQV19DOdyz1hQbR/DFKdg4W2FVRuizFgsx6RzVB42gMbsiKsJW8LHZUAEfLV2y
    DmU/kD0wGi/aNhJycs7aZNoTR6yW31tXA3WpHgZ8YnHU1vL/a92j1mq4m1mw
X-ME-Proxy: <xmx:dYkUashoVPf_xTixGlXJaDUWzmg__Zp5FCIizkE7_Yyzv4Fdchjycw>
    <xmx:dYkUajjV3kxpwkTx3LPBXQCL0cBT_J7k8Sc1cNRuswrUoFig3jDkrA>
    <xmx:dYkUavlXL6x9qTavFr8aaG7mBalES62erg3uCfh965nuHmShi0Ng5g>
    <xmx:dYkUana-OcPt2MTzz-t9v6hNvWAKg6F6rVRWLgLdZvZJzEBtVW7BJA>
    <xmx:dokUaunvIwTmj62HfkY3z9xXJbn7AHL_76CnE7bmmUe7NpMp2axxzBCH>
Feedback-ID: i792e4853:Fastmail
From: =?UTF-8?q?Szymon=20Aceda=C5=84ski?= <accek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: oleksii.kurochko@gmail.com,
	=?UTF-8?q?Szymon=20Aceda=C5=84ski?= <accek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v3 for-4.22] EFI: Fix boot from a device without a file system
Date: Mon, 25 May 2026 19:37:03 +0200
Message-ID: <79d8684ede3bf1e9abe02a2e5ed966a0ecd5949d.1779726979.git.accek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779730808-8A38AA53-637CA9B5/0/0
X-purgate-type: clean
X-purgate-size: 10700

When netbooting a unified Xen kernel image (via GRUB chainloader),
the resulting loaded_image->DeviceHandle does not support
SIMPLE_FILE_SYSTEM_PROTOCOL.

Instead of crashing via noreturn PrintErrMesg() in get_parent_handle(),
we defer calling this function until filesystem access is needed.
This way when booting UKI, get_parent_handle() is not called at all.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Suggested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Szymon Acedański <accek@invisiblethingslab.com>
---
Changes in v3:
 - read_file(): replaced unreachable `if ( !dir_handle )` branch with
   BUG_ON(!dir_handle), per Marek's suggestion.

Changes in v2:
 - Restructured along the lines Andrew and Marek both suggested on v1:
   defer get_parent_handle() until the first call site that actually
   needs a file.

   This mirrors the existing lazy pattern in ARM's
   allocate_module_file() in xen/arch/arm/efi/efi-boot.h, which was also
   changed to use the new ensure_dir_handle() helper.

Tested (same as v2):
 - PXE-loaded GRUB chainloading UKI - failure without patch, success
   with patch
 - QEMU boot from EFI partition, with config, kernel and initrd
   on EFI partition too - success with and without patch
 - Cross-compiling ARM64 - success

 xen/arch/arm/efi/efi-boot.h | 12 ++++---
 xen/arch/x86/efi/efi-boot.h |  9 +++--
 xen/common/efi/boot.c       | 66 +++++++++++++++++++++++--------------
 3 files changed, 54 insertions(+), 33 deletions(-)

diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index ea59de47e7..069cc68b0a 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -403,7 +403,7 @@ static void __init noreturn efi_arch_post_exit_boot(void)
 }
 
 static void __init efi_arch_cfg_file_early(const EFI_LOADED_IMAGE *image,
-                                           EFI_FILE_HANDLE dir_handle,
+                                           EFI_FILE_HANDLE *dir_handle,
                                            const char *section)
 {
     union string name;
@@ -419,8 +419,11 @@ static void __init efi_arch_cfg_file_early(const EFI_LOADED_IMAGE *image,
         name.s = get_value(&cfg, section, "dtb");
         if ( name.s )
         {
+            CHAR16 *fname;
+
             split_string(name.s);
-            read_file(dir_handle, s2w(&name), &dtbfile, NULL);
+            ensure_dir_handle(image, dir_handle, &fname);
+            read_file(*dir_handle, s2w(&name), &dtbfile, NULL);
             efi_bs->FreePool(name.w);
         }
     }
@@ -430,7 +433,7 @@ static void __init efi_arch_cfg_file_early(const EFI_LOADED_IMAGE *image,
 }
 
 static void __init efi_arch_cfg_file_late(const EFI_LOADED_IMAGE *image,
-                                          EFI_FILE_HANDLE dir_handle,
+                                          EFI_FILE_HANDLE *dir_handle,
                                           const char *section)
 {
 }
@@ -665,8 +668,7 @@ static int __init allocate_module_file(const EFI_LOADED_IMAGE *loaded_image,
     file_info->name_len = name_len;
 
     /* Get the file system interface. */
-    if ( !*dir_handle )
-        *dir_handle = get_parent_handle(loaded_image, &fname);
+    ensure_dir_handle(loaded_image, dir_handle, &fname);
 
     /* Load the binary in memory */
     read_file(*dir_handle, s2w(&module_name), &module_binary, NULL);
diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 42a2c46b5e..d738b839ee 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -284,13 +284,13 @@ static void __init noreturn efi_arch_post_exit_boot(void)
 }
 
 static void __init efi_arch_cfg_file_early(const EFI_LOADED_IMAGE *image,
-                                           EFI_FILE_HANDLE dir_handle,
+                                           EFI_FILE_HANDLE *dir_handle,
                                            const char *section)
 {
 }
 
 static void __init efi_arch_cfg_file_late(const EFI_LOADED_IMAGE *image,
-                                          EFI_FILE_HANDLE dir_handle,
+                                          EFI_FILE_HANDLE *dir_handle,
                                           const char *section)
 {
     union string name;
@@ -304,9 +304,12 @@ static void __init efi_arch_cfg_file_late(const EFI_LOADED_IMAGE *image,
         name.s = get_value(&cfg, "global", "ucode");
     if ( name.s )
     {
+        CHAR16 *fname;
+
         microcode_set_module(mbi.mods_count);
         split_string(name.s);
-        read_file(dir_handle, s2w(&name), &ucode, NULL);
+        ensure_dir_handle(image, dir_handle, &fname);
+        read_file(*dir_handle, s2w(&name), &ucode, NULL);
         efi_bs->FreePool(name.w);
     }
 }
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 9ea2183c0b..2971ea8696 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -547,6 +547,17 @@ static EFI_FILE_HANDLE __init get_parent_handle(const EFI_LOADED_IMAGE *loaded_i
     return dir_handle;
 }
 
+static void __init ensure_dir_handle(const EFI_LOADED_IMAGE *loaded_image,
+                                     EFI_FILE_HANDLE *dir_handle,
+                                     CHAR16 **file_name)
+{
+    if ( *dir_handle )
+        return;
+    *dir_handle = get_parent_handle(loaded_image, file_name);
+    if ( !*dir_handle )
+        blexit(L"Cannot load files without a usable file system");
+}
+
 static CHAR16 *__init point_tail(CHAR16 *fn)
 {
     CHAR16 *tail = NULL;
@@ -838,12 +849,11 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
     if ( !name )
         PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
 
+    BUG_ON(!dir_handle);
+
     what = L"Open";
-    if ( dir_handle )
-        ret = dir_handle->Open(dir_handle, &FileHandle, name,
-                               EFI_FILE_MODE_READ, 0);
-    else
-        ret = EFI_NOT_FOUND;
+    ret = dir_handle->Open(dir_handle, &FileHandle, name,
+                           EFI_FILE_MODE_READ, 0);
     if ( file == &cfg && ret == EFI_NOT_FOUND )
         return false;
     if ( EFI_ERROR(ret) )
@@ -1514,7 +1524,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
 
     if ( use_cfg_file )
     {
-        EFI_FILE_HANDLE dir_handle;
+        EFI_FILE_HANDLE dir_handle = NULL;
         EFI_HANDLE gop_handle;
         UINTN depth, cols, rows;
 
@@ -1526,31 +1536,33 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
 
         gop = efi_get_gop(&gop_handle);
 
-        /* Get the file system interface. */
-        dir_handle = get_parent_handle(loaded_image, &file_name);
-
         /* Read and parse the config file. */
         if ( read_section(loaded_image, L"config", &cfg, NULL) )
             PrintStr(L"Using builtin config file\r\n");
-        else if ( !cfg_file_name && file_name )
+        else
         {
-            CHAR16 *tail;
+            ensure_dir_handle(loaded_image, &dir_handle, &file_name);
 
-            while ( (tail = point_tail(file_name)) != NULL )
+            if ( !cfg_file_name )
             {
-                wstrcpy(tail, L".cfg");
-                if ( read_file(dir_handle, file_name, &cfg, NULL) )
-                    break;
-                *tail = 0;
+                CHAR16 *tail;
+
+                while ( (tail = point_tail(file_name)) != NULL )
+                {
+                    wstrcpy(tail, L".cfg");
+                    if ( read_file(dir_handle, file_name, &cfg, NULL) )
+                        break;
+                    *tail = 0;
+                }
+                if ( !tail )
+                    blexit(L"No configuration file found.");
+                PrintStr(L"Using configuration file '");
+                PrintStr(file_name);
+                PrintStr(L"'\r\n");
             }
-            if ( !tail )
-                blexit(L"No configuration file found.");
-            PrintStr(L"Using configuration file '");
-            PrintStr(file_name);
-            PrintStr(L"'\r\n");
+            else if ( !read_file(dir_handle, cfg_file_name, &cfg, NULL) )
+                blexit(L"Configuration file not found.");
         }
-        else if ( !read_file(dir_handle, cfg_file_name, &cfg, NULL) )
-            blexit(L"Configuration file not found.");
         pre_parse(&cfg);
 
         if ( section.w )
@@ -1567,6 +1579,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
             if ( !name.s )
                 break;
             free_cfg();
+            ensure_dir_handle(loaded_image, &dir_handle, &file_name);
             if ( !read_file(dir_handle, s2w(&name), &cfg, NULL) )
             {
                 PrintStr(L"Chained configuration file '");
@@ -1578,13 +1591,14 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
             efi_bs->FreePool(name.w);
         }
 
-        efi_arch_cfg_file_early(loaded_image, dir_handle, section.s);
+        efi_arch_cfg_file_early(loaded_image, &dir_handle, section.s);
 
         option_str = name.s ? split_string(name.s) : NULL;
 
         if ( !read_section(loaded_image, L"kernel", &kernel, option_str) &&
              name.s )
         {
+            ensure_dir_handle(loaded_image, &dir_handle, &file_name);
             read_file(dir_handle, s2w(&name), &kernel, option_str);
             efi_bs->FreePool(name.w);
         }
@@ -1599,6 +1613,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
             name.s = get_value(&cfg, section.s, "ramdisk");
             if ( name.s )
             {
+                ensure_dir_handle(loaded_image, &dir_handle, &file_name);
                 read_file(dir_handle, s2w(&name), &ramdisk, NULL);
                 efi_bs->FreePool(name.w);
             }
@@ -1609,6 +1624,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
             name.s = get_value(&cfg, section.s, "xsm");
             if ( name.s )
             {
+                ensure_dir_handle(loaded_image, &dir_handle, &file_name);
                 read_file(dir_handle, s2w(&name), &xsm, NULL);
                 efi_bs->FreePool(name.w);
             }
@@ -1634,7 +1650,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
             }
         }
 
-        efi_arch_cfg_file_late(loaded_image, dir_handle, section.s);
+        efi_arch_cfg_file_late(loaded_image, &dir_handle, section.s);
 
         free_cfg();
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon May 25 17:48:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 17:48:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319394.1587023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRZQ5-0002v5-Mo; Mon, 25 May 2026 17:48:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319394.1587023; Mon, 25 May 2026 17:48:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRZQ5-0002uy-JP; Mon, 25 May 2026 17:48:53 +0000
Received: by outflank-mailman (input) for mailman id 1319394;
 Mon, 25 May 2026 17:48:51 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <accek@invisiblethingslab.com>) id 1wRZQ3-0002us-CR
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 17:48:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRZQ2-00FQ0h-M1
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 19:48:50 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <accek@invisiblethingslab.com>)
 id 6a148b82-bab6-0a2a0a5309dd-0a2a450ad2a2-0
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 19:48:50 +0200
Received: from [103.168.172.156] (helo=fhigh-a5-smtp.messagingengine.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <accek@invisiblethingslab.com>)
 id 6a148b81-56b3-0a2a450a0019-67a8ac9c940f-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 19:48:50 +0200
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 511CB14000CB;
 Mon, 25 May 2026 13:48:49 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Mon, 25 May 2026 13:48:49 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 25 May 2026 13:48:45 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm3 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1779731329;
	 x=1779817729; bh=Spk1z8YeAzkqrRel0/BORlN7xV9IG5P+0rVdVe7alZM=; b=
	wm+9CRvEC8Gn2wsA8RiX+gjyLWQ98kkO96N9UJX1jg24Et3/kTC+c/Lq+fT25Zre
	muZwViOQjODBQdc04mBpnj0xMhIrkxvfclaYCTB3q/pKNgudrGN4EKzAiIE3t+7W
	KrXRtx/htk/YVDkBetFF2n+sKDHZGLvkPqpREfblaQBkFekFRQKS/9lbXwl1Pd1M
	23st00aFGzIk1DgSHbprQKt9OrWF172P3BF6R87nlBaPAE4MiWntLybDsPtcQvXN
	Z3gEqOcgLDa9Dh5/RjfqsZJIXUWSNiA0k4kfHLagIym9A1J/GbEtfEZ4g3TdKZjl
	CvbQpsYVDE8HGA/T3Vqccg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=
	1779731329; x=1779817729; bh=Spk1z8YeAzkqrRel0/BORlN7xV9IG5P+0rV
	dVe7alZM=; b=F5uoeaSOkepPeexYG6jy6DwzWxQ7Oq/ZoigjmtNqCc1L7mhO0qZ
	Yczzn21ugbvRVRKiwjP1DHF4hNuUR4ci+MivzIw7JiaUPrk2BLO7iJBxCUJVwm32
	FBnfWUu+hhAMWB+EgKFQmfFy62EkkAlP0HijtjHokMaUPPYgp5GAV1tPaLJrRrgf
	r4HnH2EEA+2c4Owk5sq0i7M4Is+UOU/sq6kWxNgC0BRlTvI2HWO/Q5Z+lb8z9STs
	3jQCbn8fnNXMLdR9etOiE9rMdMMPURX28AV3J5tGTA1baxekDyGA6YtliDH/gsDy
	H5FJ1fDSR8qL1a+AhQpzg+wCpgDQKam19UA==
X-ME-Sender: <xms:gIsUarucs7dsaavqagcsQyvJzaIfJIGKjC3rjtciW2DWalkdoBLY5g>
    <xme:gIsUai08GI-tscW_QAvYXDS_cTUVHLjZxA37XlV8JsUo5PUT6bYoFJYU_uShkNpDL
    QBKt3pq8pIGTkp9UyfleKDWS-JUKsdDbTnnCp7jwldeqHXQOg>
X-ME-Received: <xmr:gIsUarAuzq97Ps2VpCN_yWq8M6_xxqj7u8VbArgmJOmSdphvjE0ewRRs0ga34fhEH_zIb_I>
X-ME-Proxy-Cause: dmFkZTGbosfjJGJRCffYbPWpnJhrHM2h8WpK7JcOoQG8wTVgMOlZte1J949XbobpP9f3FX
    jc742bLc9g1NVZDsC9Rq/3R/MY7Uue2z5+TQZllpF0m2oBnpfQSycgKVFI6VUTvQd7nj7M
    0+H7syVYgoshHHTv80Yd0Ih6uLfaNZzlju35MYksHJEzXLz+kPylngw0gPFOe7Db2zm/UX
    1qZkUmgFBOzwlpfQ7SlLT0wfGeZ31hCHzlZRqo4kl8Sz+ZGUUffYSDeLqEOeKJ30N+Ah+z
    VearmSbcl9q4VAixTQ1Hs8hVZJ7jclx7GGu8298OReChiIIHijytSTsKzot9QZ8D1abITW
    TPa7gtp1N29yoCgDZUQ99O0mIUNEF/wCTHcmbM6Q5ZCdZjEi3MQiXqk7EaDE5DDw0HM6UY
    0hcdfrIknzJAFUznEy+32OJxiQIHF0gRISmcAb2VAT9XGX9LXF9LES0cK6dvKk8D9SN+hZ
    /TxeS88LGRaRAvSQE9s/lGtO9U2m3gWKWMf3Fq1N7axITrr6c2PhHZ5M+WAl1nFkEL6xwQ
    d8SGGIx3NL/x2qvnbmm+8IDnVU+JDs8lCqtiawcYD/eFwx5aOZCouwk0mEM1RxwrV17CAv
    qqn970Nj31n8AUdHl9thLue/vvrXilUnFZcnP6VN4QKT6hGv9eY7leFRw4ZQ
X-ME-Proxy: <xmx:gIsUaoCgaSg7xYlHlju8lC5bNc9ZvkgT6w0koXH4DIHXnIfE7aJWpQ>
    <xmx:gIsUaklhFqq9xH512112c_C6_zpCydRM3yuxkAsVVeNowPfQf1N1Kw>
    <xmx:gIsUaghO5ZEss7ZsYQeMg9Ny7BqYbvh9aDcmJaZnBrGDDxC6BsVe1w>
    <xmx:gIsUamhMC3zoYVl7qgpsK9lv6otUv2pQ9Eiqgt3xDSsAMpSYXNFPYg>
    <xmx:gYsUatT4fyDtZJ49AhVFXtAaZyl4aUJA-6ZMkdIc-sw40JPei7hm-riH>
Feedback-ID: i792e4853:Fastmail
Message-ID: <4a3ec4d5-74ec-4d91-8d3a-25da9a6f0e03@invisiblethingslab.com>
Date: Mon, 25 May 2026 19:48:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 for-4.22] EFI: Fix boot from a device without a file
 system
To: Marek Marczykowski <marmarek@invisiblethingslab.com>
Cc: Jan Beulich <jbeulich@suse.com>, oleksii.kurochko@gmail.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <5ee376dc0df448437f386ab2606c42d63a515ca1.1779194154.git.accek@invisiblethingslab.com>
 <809b9976089eaf02e864684461ced4e939dbcc83.1779271357.git.accek@invisiblethingslab.com>
 <31ee4635-0eaa-41cd-8fad-223fb11cb9bc@suse.com>
 <b7708cbf-ea9f-4ba1-a93d-3981eacabbc7@app.fastmail.com>
 <ahA35DwKm8LM9H_x@mail-itl>
Content-Language: en-US
From: =?UTF-8?Q?Szymon_Aceda=C5=84ski_=28accek=29?=
 <accek@invisiblethingslab.com>
Autocrypt: addr=accek@invisiblethingslab.com;
 keydata= xsDNBGmJ1Z8BDADdvShzHtG3bs7113KifO8WV7c3jPeJO3BcSROA0kwC/Hi/rkmbjAE9Bg/S
 7eG4xt/IJjXixupr05oxgtGywbShiTlI1vliVnQBuyecdisD2VQyvjX19/9hTpcTiFCQWM2E
 NV+YmO/BAx6Cf58dJfqjs3w2IrhghMgs6jf+wE3YxSO/rkCj638HM+qLU1Uqy6xH9y9OiO2t
 thbSnGr27Ik1A6xPpIfCdzSLSWUmebLYkbeFZmJFODar/A4Ox2N28BkxIapLDLjjv6QTy8cj
 7luQc4JihmbLQIBVzvtIpqg/+WmDJO3WPDCAdENlHI1ZuE1f2Ds4IfeKdfvkA8xX8oAzTJlX
 A0+9Gg067NMYR9xVfeHCX/TwN5dIcNoDMgv87655chHn8yrr41aBrwFVVCxEKA7Ua85yqjgg
 NILQsTqBHAmevSLHi5SyTI50vxSfDxRvxwxqZ2PU8ZhjqhG3luexxULbZJQIGCmljflIofj0
 qOBhZeGf061GR9OHqSR/0GUAEQEAAc04U3p5bW9uIEFjZWRhxYRza2kgKGFjY2VrKSA8YWNj
 ZWtAaW52aXNpYmxldGhpbmdzbGFiLmNvbT7CwQcEEwEIADEWIQQrErlGqhZleLHoAFafVAel
 gNZXiAUCaYnVoAIbAwQLCQgHBRUICQoLBRYCAwEAAAoJEJ9UB6WA1leIHbwL/iUzzLl9X38t
 x9z2WnMOwbzcbTObVJyW2E5o32zeJTZW9pJ0g8DHnyXMXsILUhSQ8uH8lNO2TU//LJlplJ6o
 +YBPeejmcZ9Q8jsTXZiIyqbVSIibcrPsO+G/4dCiVV5qDi5bFiGSRJZ1DHGrGTxXcBnv196x
 OYYBwfYuvF0HGba083s3SJbtubyt7UzRuYRVQIRXCbCoI68dqtzttfwEiEJYGLggUKCnHtKn
 rxJbvUpL9snE74q4brDVIh3Yv5OHnS6WSCpFkMxwjgcbSMTI1a1DwSKl9qj4fMZ8mV+/KUj3
 ihtEOZc59HScxVeQWic523EDu53pcCL5fOkcq5m334BG0TKv9UfR4zon09oTQSpfiOQJZUy9
 ZoIV+n1oqQNzZdIp8HdacDC3NMtqH06T4QG6R8AETqCA2HAJzlTeLzH1i0XXUovYUGQBkFVJ
 IUUghZkp2dh7F9yJwIGhgFqnRlKsHhGf18uCbvbv4OPZSLl8uZZXWphubilmQxV491on4s7A
 zQRpidWgAQwA8F1755QKIM7dsgeHpSUDri2enhsw4X/35lg4DsCLy4NQDqSgzbBt7PF0lbrr
 L3k4u1TTdGmzQATkCj0VaN2/uDAE2AcVFCzTU40nl49FLgCnEEqD3VUO1VpHUuqCkpnu/gZM
 kP47t9k7T9nORd8fwqve0jnckk1UzoG8ol81R0/skS7f8k4T9HMK/GU5JLP7Ra31kGkfapwi
 eYmnUAcds1uHmtq0BAlkrUmr8pytehjka+Ok8rTwWB4473KQ8thCDiDMzYgsTC9kZ9SvCZ3v
 ZYB7heaCkQjXNPCUrd0em+ICdxW+m8inSlmOXW0+dtA371WJ/XUP5yB8aFLEGkTO4dfup5qM
 0ADRN+ehiXN+479afBW0TKQqFx/pXmQEaFo87NwxpkbQoloKG/bfsJsCiJxRZXpCPGDx1F3B
 E1ldBI98P1GWclKY+8pHo7GSHW1+TZJ2OOwLoLyk+kpqqJ8mhr6E/GPrtEiY4JdJet9Wk/xM
 yYIY5SmeHsw9wifVK7vjABEBAAHCwPYEGAEIACAWIQQrErlGqhZleLHoAFafVAelgNZXiAUC
 aYnVoAIbDAAKCRCfVAelgNZXiFUqDADOCf/boM1L1dEVbKYhzQo1BZ7EntEHSwB/UzKqeoJT
 JxyLoj5Y3+QC6/9hbKFrbEHGTw7jGtJPL/7Ou1aOBJX+JymGgofOGD+iZRfpo4qWKXzlVX2N
 9w2ObD+4YuFaW8Cdn2AlmB0Ute3jSVYkubGBs4C+vP2wfwJLefn+/AhZ6J/HsRjc7FWO9PKY
 VRTVKL3nn4MlRX3q8VMs8ggB7SORT89RjqzotTHWPUZQhd3rLcqdpAT5P9l7M7xstzwqCkCI
 DXCbTDtos9fF2vlaYS4alo6mFjT6cJOYIxyAhoon38GOMujG3mrzvNeEnnuZjTo8Fym8sDJh
 91k2/5rfajiNtfasbOQN80QiHZjDqGCCSaHXdWIyZGz2H5QLiVxwYlbeHdino/b/ADlcxwqB
 //aL0dOQw1SulpLza/jg0ByxU3o7Z8O5Ui5ApxFiUA2z3mMubxtHWAqz0JMXdCtY781HRiMm
 3KnQZYrxAo+nbJoTkTBL3mACY9bPjKbYCJS5kE4=
In-Reply-To: <ahA35DwKm8LM9H_x@mail-itl>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------Fk426hwViH2StANbI72RPW4s"
X-purgate-ID: tlsNG-4011c0/1779731330-731728B7-5FD4AC3D/0/0
X-purgate-type: clean
X-purgate-size: 9884

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------Fk426hwViH2StANbI72RPW4s
Content-Type: multipart/mixed; boundary="------------olE86i8kBD65593FeoUupJg0";
 protected-headers="v1"
From: =?UTF-8?Q?Szymon_Aceda=C5=84ski_=28accek=29?=
 <accek@invisiblethingslab.com>
To: Marek Marczykowski <marmarek@invisiblethingslab.com>
Cc: Jan Beulich <jbeulich@suse.com>, oleksii.kurochko@gmail.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Message-ID: <4a3ec4d5-74ec-4d91-8d3a-25da9a6f0e03@invisiblethingslab.com>
Subject: Re: [PATCH v2 for-4.22] EFI: Fix boot from a device without a file
 system
References: <5ee376dc0df448437f386ab2606c42d63a515ca1.1779194154.git.accek@invisiblethingslab.com>
 <809b9976089eaf02e864684461ced4e939dbcc83.1779271357.git.accek@invisiblethingslab.com>
 <31ee4635-0eaa-41cd-8fad-223fb11cb9bc@suse.com>
 <b7708cbf-ea9f-4ba1-a93d-3981eacabbc7@app.fastmail.com>
 <ahA35DwKm8LM9H_x@mail-itl>
In-Reply-To: <ahA35DwKm8LM9H_x@mail-itl>
Autocrypt-Gossip: addr=marmarek@invisiblethingslab.com;
 keydata= xsBNBE5j9EwBCACbYHjxDrxFAY3n1x9KBFvjzkG1qFSTVBnH4vpD/5Na4sZq4uDDMUCjivrm
 MzbWYaivYj96BygdOiw7PWxYrhuW0b2WYOeGudZyApgFz42g458s78EciuhgfuWBlxr8dOEN
 /9ueVFHcvtZmDbHhMVPcQ0O7gwh0JmwkOsf7P7WAfYXsQlhO/EBRrNXR0Je+GEpYADhRktxX
 h1d3Iz+oKYuwHioLX8ovoAT4+peOuecWUSpUWebpDbTR5i7NRP3PIblB4KzWJa2kh/f3mx4v
 SRGnHn+BfX42xSe0X7Ktl4Xf+KNq9Wkcjk2CZP57hV2v4pO0ZUOXD7IhlZtnfNj67WjdABEB
 AAHNP01hcmVrIE1hcmN6eWtvd3NraSAobWFybWFyZWspIDxtYXJtYXJla0BpbnZpc2libGV0
 aGluZ3NsYWIuY29tPsLAeAQTAQIAIgUCTmP0TAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgEC
 F4AACgkQ24/THMrX1yyjJQf7BZyMAc+s87EAf9iRvmPD/qTMw8rMBu9WDQy1mCEzbZXRoCCY
 cPPX8kkYHW+qWsvhf9h862JoR/yTUcZkwhtdx1GFDeFkPQRStoexhwu2wrfIdlxFtGPMFvll
 KUaxm77UIFTBnK47lar/GWvNk9sMWyceui+ZSwxfbcv/lkl1razgmp0/g6ZqcbOP5dFyXm1q
 xNpCAy+6kxqgMQYUgr/ktlokGH/bkm0sTKvU9fsCqVwj47qaHFsMBpQvQ8C1L7dpaLO8OT4X
 5eEhOhbx/kd/2Pom9BnyaMiMyHjIf1+W9kQ1u8bfE/rkeKG3tV+inyd2TGDV/eH2m6NvPt8Y
 LyZy0s7ATQROY/RMAQgAtRWgUZ5mOy+c/qzmiVnxqDkiOJjmnIh3Pn+OqCtjcrTyPI9eVc06
 uH30Jkco0soLiG/UgwVw4XwBlm95j9n6TSUms4mPBh1YiR1hBjsjYwn8zp/Ue9xWk1N6E14H
 aj55GxmS2H3YIlOXfQLr0X3RHsmKixTOKyisrYlJu71FmettDFV7CgMXy1Bc1LbAE08asvAS
 ShHFdRiRRtkuVHvY/Ebq9L54kOxtlI6ahrflMcT0YCMON5oe4GgQRh3p2uy+d/LS2bgRcQST
 IebErj8x0lM271f97GvxV/ypHo7XVIDI5FX1u31Agzx3HQr035GHt4HV4/GVCz+V4xt4BonB
 tQARAQABwsBfBBgBAgAJBQJOY/RMAhsMAAoJENuP0xzK19cs5MgH/jWLXil2Ud4TdtWnBxc+
 2/QZZk2JCssc1PgWNzvH5wH7U+8lGSlUK8ZMOqrrF8C5rX0+xEn7deSrsZChIOnUFo8rhCZK
 y/mBV+FhkMj24FZZ0n8w3eF4KF2t68Pt+AvMjxQHwxAMdf3QftgQhD0qYkt/28eedUQ+jwz6
 kipc4qUQmqTEViQRPa3WAnKgNDQUDUwNruzthfGvHUjllf7zbPI8gkbARM0KlTkLikc9u+Ni
 VMbJTiGPB7YHyw2MIPq1n+mhSPAyXE6CVBnYkonQ7P3SLZssxC3PIarV+DTU68umQB3pfrfF
 7hMcAY5csWrK9/x/Zz4RUfgN6Q3HLrSp9UQ=

--------------olE86i8kBD65593FeoUupJg0
Content-Type: multipart/mixed; boundary="------------rZW6B1kTQWJ095byIytdA0iI"

--------------rZW6B1kTQWJ095byIytdA0iI
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gNS8yMi8yNiAxMzowMiwgTWFyZWsgTWFyY3p5a293c2tpIHdyb3RlOg0KPiBTcGVha2lu
ZyBvZiwgdGhlIGRpcl9oYW5kbGU9PU5VTEwgY2FzZSBpbiByZWFkX2ZpbGUoKSBpcyB1bnJl
YWNoYWJsZQ0KPiBub3csIHJpZ2h0PyBNYXliZSBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhbiBh
c3NlcnQ/T2ggeWVzLCBqdXN0IHN1Ym1pdHRlZCB2MyB3aXRoIEJVR19PTighZGlyX2hhbmRs
ZSkuDQoNClN6eW1vbg0K
--------------rZW6B1kTQWJ095byIytdA0iI
Content-Type: application/pgp-keys;
 name="OpenPGP_0x9F5407A580D65788_and_old_rev.asc"
Content-Disposition: attachment;
 filename="OpenPGP_0x9F5407A580D65788_and_old_rev.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsDNBGmJ1Z8BDADdvShzHtG3bs7113KifO8WV7c3jPeJO3BcSROA0kwC/Hi/rkmb
jAE9Bg/S7eG4xt/IJjXixupr05oxgtGywbShiTlI1vliVnQBuyecdisD2VQyvjX1
9/9hTpcTiFCQWM2ENV+YmO/BAx6Cf58dJfqjs3w2IrhghMgs6jf+wE3YxSO/rkCj
638HM+qLU1Uqy6xH9y9OiO2tthbSnGr27Ik1A6xPpIfCdzSLSWUmebLYkbeFZmJF
ODar/A4Ox2N28BkxIapLDLjjv6QTy8cj7luQc4JihmbLQIBVzvtIpqg/+WmDJO3W
PDCAdENlHI1ZuE1f2Ds4IfeKdfvkA8xX8oAzTJlXA0+9Gg067NMYR9xVfeHCX/Tw
N5dIcNoDMgv87655chHn8yrr41aBrwFVVCxEKA7Ua85yqjggNILQsTqBHAmevSLH
i5SyTI50vxSfDxRvxwxqZ2PU8ZhjqhG3luexxULbZJQIGCmljflIofj0qOBhZeGf
061GR9OHqSR/0GUAEQEAAc04U3p5bW9uIEFjZWRhxYRza2kgKGFjY2VrKSA8YWNj
ZWtAaW52aXNpYmxldGhpbmdzbGFiLmNvbT7CwQcEEwEIADEWIQQrErlGqhZleLHo
AFafVAelgNZXiAUCaYnVoAIbAwQLCQgHBRUICQoLBRYCAwEAAAoJEJ9UB6WA1leI
HbwL/iUzzLl9X38tx9z2WnMOwbzcbTObVJyW2E5o32zeJTZW9pJ0g8DHnyXMXsIL
UhSQ8uH8lNO2TU//LJlplJ6o+YBPeejmcZ9Q8jsTXZiIyqbVSIibcrPsO+G/4dCi
VV5qDi5bFiGSRJZ1DHGrGTxXcBnv196xOYYBwfYuvF0HGba083s3SJbtubyt7UzR
uYRVQIRXCbCoI68dqtzttfwEiEJYGLggUKCnHtKnrxJbvUpL9snE74q4brDVIh3Y
v5OHnS6WSCpFkMxwjgcbSMTI1a1DwSKl9qj4fMZ8mV+/KUj3ihtEOZc59HScxVeQ
Wic523EDu53pcCL5fOkcq5m334BG0TKv9UfR4zon09oTQSpfiOQJZUy9ZoIV+n1o
qQNzZdIp8HdacDC3NMtqH06T4QG6R8AETqCA2HAJzlTeLzH1i0XXUovYUGQBkFVJ
IUUghZkp2dh7F9yJwIGhgFqnRlKsHhGf18uCbvbv4OPZSLl8uZZXWphubilmQxV4
91on4s7AzQRpidWgAQwA8F1755QKIM7dsgeHpSUDri2enhsw4X/35lg4DsCLy4NQ
DqSgzbBt7PF0lbrrL3k4u1TTdGmzQATkCj0VaN2/uDAE2AcVFCzTU40nl49FLgCn
EEqD3VUO1VpHUuqCkpnu/gZMkP47t9k7T9nORd8fwqve0jnckk1UzoG8ol81R0/s
kS7f8k4T9HMK/GU5JLP7Ra31kGkfapwieYmnUAcds1uHmtq0BAlkrUmr8pytehjk
a+Ok8rTwWB4473KQ8thCDiDMzYgsTC9kZ9SvCZ3vZYB7heaCkQjXNPCUrd0em+IC
dxW+m8inSlmOXW0+dtA371WJ/XUP5yB8aFLEGkTO4dfup5qM0ADRN+ehiXN+479a
fBW0TKQqFx/pXmQEaFo87NwxpkbQoloKG/bfsJsCiJxRZXpCPGDx1F3BE1ldBI98
P1GWclKY+8pHo7GSHW1+TZJ2OOwLoLyk+kpqqJ8mhr6E/GPrtEiY4JdJet9Wk/xM
yYIY5SmeHsw9wifVK7vjABEBAAHCwPYEGAEIACAWIQQrErlGqhZleLHoAFafVAel
gNZXiAUCaYnVoAIbDAAKCRCfVAelgNZXiFUqDADOCf/boM1L1dEVbKYhzQo1BZ7E
ntEHSwB/UzKqeoJTJxyLoj5Y3+QC6/9hbKFrbEHGTw7jGtJPL/7Ou1aOBJX+JymG
gofOGD+iZRfpo4qWKXzlVX2N9w2ObD+4YuFaW8Cdn2AlmB0Ute3jSVYkubGBs4C+
vP2wfwJLefn+/AhZ6J/HsRjc7FWO9PKYVRTVKL3nn4MlRX3q8VMs8ggB7SORT89R
jqzotTHWPUZQhd3rLcqdpAT5P9l7M7xstzwqCkCIDXCbTDtos9fF2vlaYS4alo6m
FjT6cJOYIxyAhoon38GOMujG3mrzvNeEnnuZjTo8Fym8sDJh91k2/5rfajiNtfas
bOQN80QiHZjDqGCCSaHXdWIyZGz2H5QLiVxwYlbeHdino/b/ADlcxwqB//aL0dOQ
w1SulpLza/jg0ByxU3o7Z8O5Ui5ApxFiUA2z3mMubxtHWAqz0JMXdCtY781HRiMm
3KnQZYrxAo+nbJoTkTBL3mACY9bPjKbYCJS5kE7GwM0EaYnUhgEMALN70+yJqTq2
2xZqAzG7yIqoanbF7wgNvyJHKTL73lns8V+NLaORYx41B/PL5MhQwWsxbSdZV3ee
c9RvVI7nazDKFkHq06zksh1u2UyDCbtVJAN6nmwIAq+icqbwq56e0gxHaEFV7JB6
2YFovMPMwkQwb94J4eVlLqmfl3aa605QJw9i7gsW86EEPMhTMzQC5phumWniaO/t
LUdoRwjUc6gVgU0cccopN+hsTQ94mtQQkfeH9I9S+S2mVgCN9hsZ/X2/TX3z42g6
0Qq6Az/px4Y55f7MrkZgRvhNO+uLLfqlO/Ri8uzTolZiSShlLrP/9jlJF8vwfw9p
NGTUeGJza+vWOpBeon+4uULwboxgPSQn6i/pX/3Uvw1dadZl41bTYW8SVd6ETzbg
PJFdTdXH+YWbVfK6pP9WGUV7meUakqaTGIfpoeuHLqEryEu7s0wCIxVfsQ8dL4Lm
L7wRJ/hIkq9Vb0GvB/uwLILrAO63KRUEGRx2It+w0FBFBJdLW6/i0wARAQABwsD2
BCABCAAgFiEEjr8NbcohlxshNWjw+8GtoDt8jewFAmmJ1VoCHQAACgkQ+8GtoDt8
jezcwAwAi7aYpe4V3bi3F24jyNJ+yhdBAzxOaUztdBW7QyW97AOTGVhP1l+nngg8
MvLSVXzOU6VczKE0AF2DfQw6/ABNdJ5IHx1qmSEoRZc1SolX0nAg2gKoBZtl0rT0
ZS1qeIJRJVAMOLbrE8iaFMkfkttg5j4sUkyt/RTRSIjsHEm19JnU1kdC+VrRcW3E
a+d5TnwGl2m0zAXVjPvftksLIbLlW3bbw3tlm0XX3Cc8gS+QUZlCZVX6GzCSK6Jh
Dy3sCNNJ+6gNsKGhGKS8SQwEWVCY/BNUHWxQgYn0XeriV3yD62FGwuBWQB2SIWLW
dTxWCbUzQ2FHejrqovA9uUygcGf8Fre6AkysBkrPPFCyhPKG67Jswmcwyx8zQd+h
vHoNpf1XusADtXjWcT3D+mH6WstqcSCFomcrpiZa5uvoPQd6onqDikCyI9Ypd3pK
kj61MJr3jD1wo8fmzBl6AxcLN6H1/A//EX7JlMAkr/VD/mRzhlpaKeBuAZrXdy1h
VmJKmsQozsDNBGmJ1IYBDAC3OWQxZ5PeY6pAoafC6Fua3iymg9KYN91Ac9TJz3vv
HLpkV5YTL8svdKTZebobwIGSuQ2tamplbaeKVqDIVsWfAcwKqQcZK6FpYe4mPJfg
JcICGa35W1Mxt0baDr6QTr77zNfUtUZTTIs3io+XOdTxxPx42klCxdBvMu2qImLr
0SCOv233rP5teFJ6FRap+xDPPRT/b9uUllnB+FiJnwUIK/RXac5NuRhvihMsUH7r
LLR/XenjOiRY0ii1IhZM//B3kaIwHV6vE6wqj4di04VmWwIpeUqobuuwnbL3Jt/n
7sRPBM/vioiyLCsZCkh/H9ngB2uxdNvZnbCOmdF84jU8gYxQpKHV2ZtM009EmUDZ
TsMwkhFhLqKLwh7wtEVt90tV3HSRwxDlmS6G/Sj8VEVokgTRCJxhm9dBCdl0WNoN
a1zy5tOo45mcRqqqkx3HxosUUJ3eHlVBIYlHWpWoypKvw7XYoOfJwtYJWyBrRDxl
xm0x/EM6Eikciz21awnq8U8AEQEAAcLA9gQYAQgAIBYhBI6/DW3KIZcbITVo8PvB
raA7fI3sBQJpidSHAhsMAAoJEPvBraA7fI3saocL/0Z0UcwSjTiLC1/U1oowXXoV
zHl/qHun0GZleCO47ey0rnQx5hkRTT4WJjXnumpculiJwnchJDx9be2h6H4/BQLo
J/9JtyvCTdbpNyRIF7qIMHya+1wJ8Ouq63caeAySGnpH9cSTtiPdbGzY6H1mSNFH
6vVkpUPnXuFCScv/wc1xuKEeUCnlVEH5+WlxjPWdwtcAKJ9gw1LKFRN/QLrk78Lg
GafVk9Jh1+KiUKJeftyg62VNm50OOwzx0qf/agl0cEWpJy7ph1QHG57HqkBAbf9p
PInWn9jfN4V2NWsCO/MNSLkLakZmYSlXb/Su80EzkTZWWMdhpsjyu/F5CKo+Nm2o
IvEkWukuoSO0fa5fsrt8JgyIbgA+XfOJLmtYGnHpwisA1+xb3S3VzBKil8MhyN2a
aAN4hbaXQcTYnYijE21KOxwgF9pZO99BTLQcDpwxz+vGxHVdHXxlc1WlUJzepLzX
Je/l1eiU+rQxuFyHcQ0eMK3gVrF1whk+QID/5H9G4g=3D=3D
=3DNpMv
-----END PGP PUBLIC KEY BLOCK-----

--------------rZW6B1kTQWJ095byIytdA0iI--

--------------olE86i8kBD65593FeoUupJg0--

--------------Fk426hwViH2StANbI72RPW4s
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEKxK5RqoWZXix6ABWn1QHpYDWV4gFAmoUi3wFAwAAAAAACgkQn1QHpYDWV4gT
Twv9HVkWA/z7ycCq1Kvn6kPULgrDAcjsknEcxuoDqWCZDV7llRf9KIofAYgOQshD1CGw9oMDP559
lflZHQVUFEb+sZ5zmRbrzVRFt9gp6DrrEsw5SymRZ/RiIoCRnXXgJr6JhGkbxSW4h980ARbN3WnF
UU86QCxgbiZmJljUs28CYuUZB4iQ/y+ExGH/xxBzzLY6AX+YeKn4QUAyCS8VQ0npcm77iwkFv3Lj
Vb/OVFrFEm8uSYLYYkk5toAYuhDl6wvoXHiAa3keULzBiAXdcuyN/X2J1BIm65vdaHucKKfPXHT4
N8InrqheCVLMdJz1MsKR3BAS9ri3rNU0drzcn4j24V5OBmxtD8GAU8B9/mRRJd+FP4hb6KZiAMXq
GosbxHKVL7BNOJY0WY0mH0zr/TixIdv+F0omqvJZR3up47MwcopbBRK+XEOLforxv3+RD3f8Dx0m
ipEIDtexVnUw+zty41T3P5bz7c6bjRcssR3jQ4aMnQXb2pjG+FgUvKExTSCF
=aPaR
-----END PGP SIGNATURE-----

--------------Fk426hwViH2StANbI72RPW4s--


From xen-devel-bounces@lists.xenproject.org Mon May 25 17:57:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 17:57:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319402.1587033 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRZXw-0004Xk-F4; Mon, 25 May 2026 17:57:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319402.1587033; Mon, 25 May 2026 17:57:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRZXw-0004Xc-Ax; Mon, 25 May 2026 17:57:00 +0000
Received: by outflank-mailman (input) for mailman id 1319402;
 Mon, 25 May 2026 17:56:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wRZXu-0004XW-1W
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 17:56:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRZXt-00A8Yi-Dy
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 19:56:57 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a148d67-bab6-0a2a0a5309dd-0a2a450b82dc-6
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 19:56:57 +0200
Received: from [209.85.167.44] (helo=mail-lf1-f44.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a148d69-212f-0a2a450b0019-d155a72cc886-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 19:56:57 +0200
Received: by mail-lf1-f44.google.com with SMTP id
 2adb3069b0e04-5a877510541so10738477e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 10:56:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779731816; cv=none;
        d=google.com; s=arc-20240605;
        b=Q30f4cV3JS/rhIyQ7AJrubquxoxduo56cGIOxj++KQLLF1wA+QmF0Sns788QO3NTZ/
         t/d5zoaoKz+kw+rGtj/19ZRcHn+pb9AjHUzSh4Jk5ldzkBg6oomKjk4wUorYYb3SqLgk
         gLBnhw5pABf73yswrUSoakv8PL+syM+w49s15VvP2Q1xOoT6zGn4SNERXwus1bjbH/ZC
         QsyfxnGT5V25WmmYkH6udmvyS6V5py+sNSXFqvCZg6cGZ/T/2Cj9T3huuvsMma+JX4iu
         2I4sTfDrEoaQ3azfd+6LTWslWzc8V/Tl7oLucHfRfxt3aCfmyMCmo6iYnBi6Dj/o/QlG
         oTeA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=MNJt8cRHwyIcYi/0+vjGBOgpL03aVZwqgiIyAY5tsYs=;
        fh=vHQhu8+3w8fIT0NmGZ7Av5NNpAuuuKJ4YoBRPf5+ZME=;
        b=BdXiPIxhfgsWgcvVIto3ksspknOBwnhXaQb0qxXUv7B+rf3swIkQpOzgsqvCzxJei6
         PkZnUK74wWf1IpYtuY4fCCexKu8uMPsNoVJ/RZz1eJKayPmVibunvuQV0egj0RDet/LB
         15dJyOd5hHc/DGpaJCq8OW76zsxoHVR2jX4coF7MAugmwPO8vh43IAgvL2447ATBLobu
         ccQTJOpMtiuQfgf0Ar0+BHhuMdqDajeFLmzHvDPGDK8IX2uCuoPF2hkYGAnqY9INJwpB
         coHR578P3DCwCE7YPqVzgKQc96Innhi6lmM2YOf4x/DxfHqmxqLemficiE8Gc8pBPyJo
         mBYw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779731816; x=1780336616; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MNJt8cRHwyIcYi/0+vjGBOgpL03aVZwqgiIyAY5tsYs=;
        b=UNQZphaeJX0mEe9QY2ecE/mAWPs9QqvRK5+spLfjeEudiYo0++1KEAx1jFMglUgtgO
         JBHX11qKwXN0jYh0JurWOH/b+aQc1PwfVmqCc3Q1n+CIOzljvNiuS6pDNS51eB+TneXf
         AyqZhgXPe/LgmddwlvlwRAMm1XajOJwmuzVqZ9hHbxV/rVp3cPlxLqDNyggv1P4bNnKD
         Jov4ftB55znMm9lrMf1estCyUQgnV+XfFwm30E85lSC592dzN0WUflhAfX2mlmuaZBsJ
         t0zG4no/UfqPOz04eFgc5Ccj6+of12W7WBEctA0NwDnMhhTKmTuAOwt65VjBEOdUUyX/
         Jd0Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779731816; x=1780336616;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=MNJt8cRHwyIcYi/0+vjGBOgpL03aVZwqgiIyAY5tsYs=;
        b=sDEwC8CM0UtYxy/64mMQqm9GagoxRBMxrfBUfL0Vke1tMtXyRP3qQD7y0XLHOddqO7
         jRlJUJjuSNe7NwcKz7pH/XCM69kQ39wbSaQxDXz86e6X68BMU4SfZnoMgjLeHNyyUkYE
         vEJnNyjQfy+f4URaJT/6dild691g2x0+NicCV+JAtiOygAoJ921zCsDAAZDrEQ70UtAe
         JNcdUO6nRd87PpWUU3Xa6zu+OkyzFYyGkbo3rjM6E2Um5w1IzEWGPFQFxnyutMHWz0Lp
         JOrE165WA14t5QbuVneCDSYcrkXVOt1CbeywEXCLCb8ekYHwLTuZmbZaK+TuUBb870Ge
         h3kA==
X-Gm-Message-State: AOJu0YzeDIyktHwsKM8b8k+gkK8ijBlEUMbvMyIKNChphoqShL6AC2eS
	0WkYqZqHsRYU3lfj0mEZGrzt87x/41iUqiUHPZyCmCfK/2sVG8xF6jVa+30kW+OtrQj8kjb+z4q
	F86RotiCcUQW+S61c6RymdP+iqwSizu8=
X-Gm-Gg: Acq92OFsMP0T0RX3xo2bkjEgzcLG7qhC20+v27PqaUBE1pWVRVsjmL4NlBjcwSDw5GF
	DqxqE0dvXj59lTR16XyO3gc09X5tKv1/l6r6muyi/6NsQ3XH5vryq1AfTxMGuxhoo21opMahccx
	Kc2XJcYXug1BE9RcCAv+8YyGU9gWyRSTB7XRb+vjl2xjGFBrN5ggdkRGGxaeeltCEf1iUmlt+0j
	XIG+TwIhlt7us6WSlo97woNNUVhh9HnKFu931xIo1Ui8Eu7y2F6V1DA1XgtKVWjgY6ng3QhSmgn
	ggXa
X-Received: by 2002:a05:6512:3d11:b0:5a8:d1ef:caad with SMTP id
 2adb3069b0e04-5aa3237d6c8mr3979794e87.4.1779731816103; Mon, 25 May 2026
 10:56:56 -0700 (PDT)
MIME-Version: 1.0
References: <9ae4f7dd49f5b1f761193adae573c2675c92e883.1779051035.git.mykola_kvach@epam.com>
 <0db37c10-b920-4d9d-9453-18f820e6d093@amd.com>
In-Reply-To: <0db37c10-b920-4d9d-9453-18f820e6d093@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 25 May 2026 20:56:44 +0300
X-Gm-Features: AVHnY4IpbUegaoLO0BYt4qENwcAbyxGqDvC5h-M5C4Lit_RLWpSIf-acoOnbkAw
Message-ID: <CAGeoDV8f2Db-VaA6YTV_O1DHcSaeb8fshN=QoS7neUHGoAkrRg@mail.gmail.com>
Subject: Re: [RFC PATCH] device-tree: size first hwdom bank for boot modules
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-42698a/1779731817-1BD7FF3B-61A8E13F/0/0
X-purgate-type: clean
X-purgate-size: 13218

Hi Michal,

Thank you for the detailed review.

On Mon, May 25, 2026 at 10:35=E2=80=AFAM Orzel, Michal <michal.orzel@amd.co=
m> wrote:
>
>
>
> On 17-May-26 22:57, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > With LLC coloring enabled, the hardware domain memory comes from
> > allocate_hwdom_memory(), not from the fixed direct-map banks used when
> > coloring is off.
> >
> > Commit de99f3263555 ("device-tree: Improve hwdom memory allocation for
> > DMA") made that allocator sort free host regions by ascending address s=
o
> > Dom0 gets DMA-capable low memory first. The first bank filter still onl=
y
> > required 128MB. That can select a low region which is large enough for
> > the heuristic, but not large enough for place_modules() to put the Dom0
> Don't mention dom0 given that this is purely hwdom path.

Ack.

>
> > kernel, generated DTB and initrd contiguously in bank 0.
> >
> > Ask arch code for any additional first-bank size requirement. On Arm,
> > compute it from the actual Dom0 kernel placement, rounded initrd size a=
nd
> > generated DTB size hint. For 64-bit Image kernels, include the text off=
set
> > from the candidate bank start, because the returned requirement is comp=
ared
> > with a bank size measured from that start. The hint covers both the nor=
mal
> > Device Tree path and the minimal DTB created for ACPI boot.
> >
> > Check the first-bank threshold against the size which will actually be
> > assigned to Dom0, after capping the host region by the remaining unassi=
gned
> > Dom0 memory. Otherwise a large host region could pass the test but stil=
l
> > produce a first guest bank too small for place_modules().
> >
> > Use the typed min()/max() helpers for this normal allocation arithmetic=
;
> > MIN()/MAX() are intended for preprocessor-style contexts and skip the t=
ype
> > checking provided by the lowercase helpers.
> >
> > This keeps the DMA-oriented allocation policy from de99f3263555 while
> > preventing a too-small bank 0 from reaching place_modules().
> >
> > Fixes: de99f3263555 ("device-tree: Improve hwdom memory allocation for =
DMA")
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Test/setup notes:
> >
> > The failure was reproduced on a Renesas H3ULCB/R-Car H3 (r8a7795)
> > arm64 board booted through U-Boot/TFTP and using huge initrd.
> >
> > Relevant Xen command line excerpt:
> >   dom0_mem=3D2048M llc-coloring=3Don
> >
> > Boot module layout from Xen:
> >   MODULE[2]: 0x0000000084000040-0x000000008e75d92f Ramdisk
> >   MODULE[3]: 0x00000000a0000000-0x00000000a3ffffff Kernel
> >   MODULE[4]: 0x00000000a4000000-0x00000000a400ffff XSM Policy
> >
> > The initrd is about 168MB. With LLC coloring enabled and the low-addres=
s
> > allocation policy from de99f3263555, Dom0 can receive a 192MB first ban=
k:
> >   d0 BANK[0] 0x00000048000000-0x00000054000000 (192MB)
> >
> > That bank satisfies the old 128MB minimum but is too small for the
> > rounded Dom0 kernel, generated DTB and initrd placement. The observed
> > failure before this patch was:
> >   Panic on CPU 0:
> >   Not enough memory in the first bank for the kernel+dtb+initrd
> >
> > With this patch, the same boot skips the too-small low region for bank =
0
> > and reaches Dom0:
> >   d0 BANK[0] 0x00000057000000-0x00000084000000 (720MB)
> >   d0 BANK[1] 0x0000008e800000-0x000000c0000000 (792MB)
> >   d0 BANK[2] 0x00000500000000-0x00000521800000 (536MB)
> >   d0: extended region 0: 0x48000000->0x54000000
> >   Loading zImage from 0x00000000a0000000 to 0x57000000-0x5b000000
> >   Loading d0 initrd from 0x0000000084000040 to 0x5f200000-0x6995d8f0
> >   Loading d0 DTB to 0x5f000000-0x5f011c80
> >   Linux version 5.10.194-yocto-standard
> > ---
> >  xen/arch/arm/acpi/domain_build.c        |  2 --
> >  xen/arch/arm/domain_build.c             |  8 ++++++
> >  xen/arch/arm/include/asm/domain_build.h |  4 +++
> >  xen/arch/arm/include/asm/kernel.h       |  8 ++++++
> >  xen/arch/arm/kernel.c                   | 35 +++++++++++++++++++++++++
> >  xen/common/device-tree/domain-build.c   | 27 ++++++++++++++-----
> >  xen/include/xen/fdt-kernel.h            |  8 ++++++
> >  7 files changed, 83 insertions(+), 9 deletions(-)
> >
> > diff --git a/xen/arch/arm/acpi/domain_build.c b/xen/arch/arm/acpi/domai=
n_build.c
> > index 249d899c33..db16f7fa94 100644
> > --- a/xen/arch/arm/acpi/domain_build.c
> > +++ b/xen/arch/arm/acpi/domain_build.c
> > @@ -26,8 +26,6 @@
> >  #undef virt_to_mfn
> >  #define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
> >
> > -#define ACPI_DOM0_FDT_MIN_SIZE 4096
> > -
> >  static int __init acpi_iomem_deny_access(struct domain *d)
> >  {
> >      acpi_status status;
> > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> > index 1efddc60ef..226e053c68 100644
> > --- a/xen/arch/arm/domain_build.c
> > +++ b/xen/arch/arm/domain_build.c
> > @@ -115,6 +115,14 @@ int __init parse_arch_dom0_param(const char *s, co=
nst char *e)
> >                               (IS_ENABLED(CONFIG_STATIC_SHM) ?         =
\
> >                                (NR_SHMEM_BANKS * (160 + 16)) : 0))
> >
> > +paddr_t __init dom0_get_fdt_size_hint(void)
> > +{
> > +    if ( !acpi_disabled )
> > +        return ACPI_DOM0_FDT_MIN_SIZE;
> > +
> > +    return fdt_totalsize(device_tree_flattened) + DOM0_FDT_EXTRA_SIZE;
> > +}
> > +
> >  unsigned int __init dom0_max_vcpus(void)
> >  {
> >      if ( opt_dom0_max_vcpus =3D=3D 0 )
> > diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/inc=
lude/asm/domain_build.h
> > index df8b361b3d..45687c5d6f 100644
> > --- a/xen/arch/arm/include/asm/domain_build.h
> > +++ b/xen/arch/arm/include/asm/domain_build.h
> > @@ -19,6 +19,10 @@ int prepare_acpi(struct domain *d, struct kernel_inf=
o *kinfo);
> >
> >  int add_ext_regions(unsigned long s_gfn, unsigned long e_gfn, void *da=
ta);
> >
> > +#define ACPI_DOM0_FDT_MIN_SIZE 4096
> > +
> > +paddr_t dom0_get_fdt_size_hint(void);
> > +
> >  #if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
> >  /* Utility function to determine if an Armv8-R processor supports VMSA=
. */
> >  bool has_v8r_vmsa_support(void);
> > diff --git a/xen/arch/arm/include/asm/kernel.h b/xen/arch/arm/include/a=
sm/kernel.h
> > index 21f4273fa1..17c5b9bce4 100644
> > --- a/xen/arch/arm/include/asm/kernel.h
> > +++ b/xen/arch/arm/include/asm/kernel.h
> > @@ -8,12 +8,20 @@
> >
> >  #include <asm/domain.h>
> >
> > +#include <xen/types.h>
> > +
> > +struct kernel_info;
> > +
> >  struct arch_kernel_info
> >  {
> >      /* Enable pl011 emulation */
> >      bool vpl011;
> >  };
> >
> > +#define arch_get_min_first_bank_size arch_get_min_first_bank_size
> > +paddr_t arch_get_min_first_bank_size(struct kernel_info *info,
> > +                                     paddr_t bank_start);
> > +
> >  #endif /* #ifdef __ARCH_ARM_KERNEL_H__ */
> >
> >  /*
> > diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
> > index b72585b7fe..3644663e2f 100644
> > --- a/xen/arch/arm/kernel.c
> > +++ b/xen/arch/arm/kernel.c
> > @@ -128,6 +128,41 @@ static paddr_t __init kernel_zimage_place(struct k=
ernel_info *info)
> >      return load_addr;
> >  }
> >
> > +static paddr_t __init kernel_placement_size(paddr_t load_addr, paddr_t=
 len)
> > +{
> > +    return ROUNDUP(load_addr + len, MB(2)) - load_addr;
> Used from one site. place_modules() open-codes the same
> expression; the CONFIG_HAS_DOMAIN_TYPE branch below is
> kernel_placement_size(load_addr, len) + text_offset. Either drop the help=
er or
> use it consistently.

Ack, I will use the helper consistently.

>
> > +}
> > +
> > +paddr_t __init arch_get_min_first_bank_size(struct kernel_info *info,
> info is RO, so const please.

Ack.

>
> > +                                            paddr_t bank_start)
> > +{
> > +    const struct boot_module *mod =3D info->bd.initrd;
> Why mod instead of initrd? - choose more meaningful names

Ack.

>
> > +    const paddr_t initrd_len =3D ROUNDUP(mod ? mod->size : 0, MB(2));
> It would be nice to explain why 2MB, at least to say that it mirrors
> place_modules rounding.

Ack, I will add a comment that this mirrors the 2MB rounding used by
place_modules().

>
> > +    const paddr_t dtb_len =3D ROUNDUP(dom0_get_fdt_size_hint(), MB(2))=
;
> > +    paddr_t kernsize;
> > +
> > +#ifdef CONFIG_HAS_DOMAIN_TYPE
> > +    if ( (info->type =3D=3D DOMAIN_64BIT) && (info->image.start =3D=3D=
 0) )
> > +    {
> > +        paddr_t load_addr =3D bank_start + info->image.text_offset;
> > +
> > +        /*
> > +         * The caller compares this value with a size measured from
> > +         * bank_start, so include the text offset before the kernel.
> The comment belongs above the load_addr line above.

Ack.

>
> > +         */
> > +        kernsize =3D ROUNDUP(load_addr + info->image.len, MB(2)) - ban=
k_start;
> > +        return kernsize + initrd_len + dtb_len;
> Could it be written as:
> info->image.text_offset + kernel_placement_size(load_addr, info->image.le=
n)

Ack, I will rewrite it that way.

>
> > +    }
> > +#endif
> > +
> > +    if ( info->image.start =3D=3D 0 )
> > +        kernsize =3D ROUNDUP(info->image.len, MB(2));
> > +    else
> > +        kernsize =3D kernel_placement_size(info->image.start, info->im=
age.len);
> This could be written as a single expression, no need for if/else:
> kernsize =3D kernel_placement_size(info->image.start, info->image.len);

Ack. You are right, kernel_placement_size(0, len) is mathematically
equivalent to ROUNDUP(len, MB(2)). I will simplify this to a single
expression in the next version.

>
> > +
> > +    return kernsize + initrd_len + dtb_len;
> > +}
> > +
> >  static void __init kernel_zimage_load(struct kernel_info *info)
> >  {
> >      paddr_t load_addr =3D kernel_zimage_place(info);
> > diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-=
tree/domain-build.c
> > index 2a760b007b..d8865db259 100644
> > --- a/xen/common/device-tree/domain-build.c
> > +++ b/xen/common/device-tree/domain-build.c
> > @@ -299,20 +299,33 @@ static bool __init allocate_hwdom_memory(struct k=
ernel_info *kinfo)
> >
> >      for ( i =3D 0; (kinfo->unassigned_mem > 0) && (i < nr_banks); i++ =
)
> >      {
> > -        paddr_t bank_size;
> > +        const paddr_t bank_start =3D hwdom_free_mem->bank[i].start;
> > +        paddr_t bank_size =3D hwdom_free_mem->bank[i].size;
> > +
> > +        /*
> > +         * Check the size that would actually be assigned, not just th=
e size
> > +         * of the host region.
> > +         */
> > +        bank_size =3D min(bank_size, kinfo->unassigned_mem);
> >
> >          /*
> >           * The first bank must be large enough for place_modules() to
> >           * fit the kernel, DTB and initrd.  Skip small regions to avoi=
d
> >           * ending up with a tiny first bank.
> >           */
> > -        if ( !mem->nr_banks && (hwdom_free_mem->bank[i].size < min_ban=
k_size) )
> > -            continue;
> > +        if ( !mem->nr_banks )
> > +        {
> > +            paddr_t arch_min_size;
> > +            paddr_t required_first_bank_size;
> > +
> > +            arch_min_size =3D arch_get_min_first_bank_size(kinfo, bank=
_start);
> > +            required_first_bank_size =3D max(min_bank_size, arch_min_s=
ize);
> > +
> > +            if ( bank_size < required_first_bank_size )
> > +                continue;
> > +        }
> >
> > -        bank_size =3D MIN(hwdom_free_mem->bank[i].size, kinfo->unassig=
ned_mem);
> > -        if ( !allocate_bank_memory(kinfo,
> > -                                   gaddr_to_gfn(hwdom_free_mem->bank[i=
].start),
> > -                                   bank_size) )
> > +        if ( !allocate_bank_memory(kinfo, gaddr_to_gfn(bank_start), ba=
nk_size) )
> >          {
> >              xfree(hwdom_free_mem);
> >              return false;
> > diff --git a/xen/include/xen/fdt-kernel.h b/xen/include/xen/fdt-kernel.=
h
> > index 8cd1670c2c..931b3e1686 100644
> > --- a/xen/include/xen/fdt-kernel.h
> > +++ b/xen/include/xen/fdt-kernel.h
> > @@ -86,6 +86,14 @@ kernel_info_get_mem_const(const struct kernel_info *=
kinfo)
> >      return container_of(&kinfo->mem.common, const struct membanks, com=
mon);
> >  }
> >
> > +#ifndef arch_get_min_first_bank_size
> > +static inline paddr_t arch_get_min_first_bank_size(struct kernel_info =
*info,
> > +                                                   paddr_t bank_start)
> > +{
> > +    return 0;
> > +}
> > +#endif
> > +
> >  #ifndef KERNEL_INFO_SHM_MEM_INIT
> >
> >  #ifdef CONFIG_STATIC_SHM
>
> As for the upstream CI test, we should start with more generic tests that=
 we are
> missing (like regular LLC boot) before thinking of covering more granular
> scenarios. Also, in the past we agreed on first covering the supported fe=
atures
> before adding tests for unsupported ones.

Ack, that makes sense.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 25 18:13:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 18:13:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319427.1587042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRZo8-0007im-Qo; Mon, 25 May 2026 18:13:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319427.1587042; Mon, 25 May 2026 18:13:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRZo8-0007if-N1; Mon, 25 May 2026 18:13:44 +0000
Received: by outflank-mailman (input) for mailman id 1319427;
 Mon, 25 May 2026 18:13:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <olekstysh@gmail.com>) id 1wRZo7-0007iZ-Sw
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 18:13:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRZo7-000KFS-9E
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 20:13:43 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a149157-2eae-0a2a0a5409dd-0a2a4502a4e4-0
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 20:13:43 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <olekstysh@gmail.com>)
 id 6a149157-af86-0a2a45020019-d1558033c94e-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 20:13:43 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-4903974854dso36801255e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 11:13:43 -0700 (PDT)
Received: from [10.17.80.122] (ll-22.209.223.85.sovam.net.ua. [85.223.209.22])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4904561a198sm261352985e9.10.2026.05.25.11.13.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 May 2026 11:13:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779732822; x=1780337622; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=u5qNL9NLYIShWV0EtgOl0wbtFjiszAbVXdLcKC+uCmo=;
        b=KMc7L6b/9XkblbDx/RSt4UAPvNe4cMgwj8cK0RznVDjHxDU+MsPPDCjgGHOttCik3o
         JdG/UY86o2ZiLmn+hz2cY1YIZtLT6KgNdF8afpQRt880cCEGivIKeBH6W8KYT7DljcCE
         xmeZ4vJ8xKwsat7m+69gpR0wGL4z/JdmxkxjTBE+kLnxx3mHRavPaCle57C7MQW06dvH
         v6/rTKg6zdFCp78+2WX+dG0EKXS/a0xwqguoHLKtkdcnsA9RlNikOwo7jykX+iArjJVv
         UIC+22L9uil6aqjHw9SIi7+Z+qFWP4cm8igf/6VEMnfWLevLBuPLwtbKLzKAn3dHJkzv
         jguQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779732823; x=1780337623;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=u5qNL9NLYIShWV0EtgOl0wbtFjiszAbVXdLcKC+uCmo=;
        b=EoyNF+GnzqhdHnp5+187YeIMZOmnvoBmWC+DFAaUyA9UkTjpZ0I2yEU0myvD7OHMqz
         5Jt4B6Of25HlCuBIzU7xZVWZ13d8a7GhnJFL7cw8FK3y9AM5r00tYkslXks6TZeChJpG
         u1unwWOzr3xBlvcd0j4e79hJ5fWIUnyjA9bNbBOxfga46hys6M5VlnkOH6KQUFw/BqTe
         VbCbL6hfzSYDSwJIR3y5v4RrYep/w56irB7XqgBtGu0aOlXU5tGn+NDZoR7yg7/cVmU5
         k9vqLINQ+036lZNsq+Wczy4WDRnPeHhxkvfxPcWABFxS+4koyueUnShk1+bD6pXOoTbA
         IKnQ==
X-Forwarded-Encrypted: i=1; AFNElJ8/SfYqZoZuWK2IkHodLV0cd63Xdhe6cXScHmKBK03SwjGdNkbY1870+20X9h+z9sWrBiKjwc37fOc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxdzXbxcHf1+QeYZHMeR50iyYqbMjemx1F8P7c10SYhGwfYN6gM
	5VZTtBowg17XTHwOznE/2/lgD+sNGgE9p/dE/54kT/ekm3w6KyP9SHU8
X-Gm-Gg: Acq92OE6ulDqv+aj13MePHqxlWmFC2ZExf9O0pIkYq9WSXhEuUGI39WNporAOe7zFqR
	QZKImL1stfgKiZeX0bSPD5eu03l5oJ5RVwlaXGm8e8pLeYy7Vmb3a4UxZqtTFlxYbQTosREQqRd
	FbaXPBO9wLI0T8JHOASK2Az3kkuFq6cJeDPVVb5ReNtdIjEdn4nBA4Mvuu/E/UxxhME64dLEU5V
	uUt9yNRnizQLrF3MF39fmyADNi1gOID5wnKRFLf1XJqRFn5c/sX8J5j0wcVQuI2igTcf91TTHio
	YSUUtWG4YOyPFw7JIStEiE3Fa108ahOYpRpWJIgCqCXlxHBXbmvk+i1bMyNXUqcenH18aPAmbes
	kNNN73k8R9IiH5LV8KsMcjLtlljoWrVLdXKrS9IwRwyA9MINQGQ4NEp1MquKp0+LSBCzSK2oFh/
	UR4jEwFkl3zo6qPGeo9MOms8GbWmTf4SSNfvDrxUW8vw6STYy8GprqF/0=
X-Received: by 2002:a05:600c:8b77:b0:490:5368:743 with SMTP id 5b1f17b1804b1-49053680a94mr189972415e9.32.1779732822145;
        Mon, 25 May 2026 11:13:42 -0700 (PDT)
Message-ID: <63daeec4-a691-4d6f-b75a-bf34965b26f4@gmail.com>
Date: Mon, 25 May 2026 21:13:40 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 12/13] xen/arm: Add vPSCI SYSTEM_SUSPEND policy
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Luca Fancellu <luca.fancellu@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Rahul Singh <rahul.singh@arm.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
 <1d49511fff3ef5f77bc2d4daac00e6895c1359b1.1779385072.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <1d49511fff3ef5f77bc2d4daac00e6895c1359b1.1779385072.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1779732823-AAB68161-EC91C0E7/0/0
X-purgate-type: clean
X-purgate-size: 19847



On 5/21/26 20:45, Mykola Kvach wrote:

Hello Mykola

> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> Introduce CONFIG_HAS_HWDOM_SYSTEM_SUSPEND as an architecture-selected
> capability for platforms where the hardware domain can be parked with
> SHUTDOWN_suspend without calling hwdom_shutdown().
> 
> Expose PSCI SYSTEM_SUSPEND as a vPSCI operation for all domains. For
> non-control domains, including the hardware domain when it is not acting
> as a control domain, the call is handled as a guest/domain suspend request
> and parks the domain in SHUTDOWN_suspend.
> 
> Control domains need additional sequencing because their SYSTEM_SUSPEND
> request is used to coordinate host-wide suspend. A non-last awake control
> domain may be parked in SHUTDOWN_suspend without requiring the host
> suspend path to be available. The last awake control domain is treated as
> the point where the request becomes a host-suspend request, and it may
> only proceed when all non-control domains are already in SHUTDOWN_suspend
> and the host suspend path is available.
> 
> Keep the control-domain sequencing and domain-readiness checks out of
> PSCI_FEATURES. They are per-attempt runtime conditions rather than stable
> PSCI function availability. Advertise SYSTEM_SUSPEND as implemented by
> vPSCI and report attempt-time policy failures as PSCI_DENIED.
> 
> Select HAS_HWDOM_SYSTEM_SUSPEND independently from CONFIG_SYSTEM_SUSPEND
> so that SHUTDOWN_suspend from the hardware domain can be treated as a
> domain suspend state rather than as a hardware-domain initiated host
> shutdown. This does not by itself imply that host-wide suspend is
> available.
> 
> Add host_system_suspend_allowed() to combine the host PSCI SYSTEM_SUSPEND
> capability with runtime blockers reported by Xen-owned subsystems. Add
> runtime blockers for registered serial, IOMMU, GIC and SMMUv3 MSI IRQ
> paths lacking suspend/resume support. These blockers are runtime based,
> so they only apply to drivers or paths that Xen actually uses on the
> platform. For SMMUv3, the blocker applies only when Xen actually uses the
> MSI IRQ path, since resume does not restore the SMMU *_IRQ_CFGn MSI
> registers yet.
> 
> Add a struct domain forward declaration to xen/suspend.h so the generic
> header can expose arch_domain_resume() without requiring a full domain.h
> include.
> 
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Changes in V10:
> - Return PSCI_DENIED rather than PSCI_NOT_SUPPORTED when the last awake
>    control domain cannot proceed to host suspend, keeping PSCI_FEATURES
>    stable once SYSTEM_SUSPEND is advertised.
> - Shorten SYSTEM_SUSPEND blocker messages and use %pd when logging the
>    control domain.
> - Mark serial_suspend_available as __ro_after_init.
> - Mention the struct domain forward declaration added to xen/suspend.h.

I did not spot obvious issues while reviewing this patch, so you can add:

Reviewed-by: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>

Several nits/remarks below, feel free to skip them if you find them 
irrelevant or not useful.


> 
> Changes in V9:
> - Select HAS_HWDOM_SYSTEM_SUSPEND independently from CONFIG_SYSTEM_SUSPEND
>    so that hardware-domain SHUTDOWN_suspend support is not tied to
>    host-wide system suspend availability.
> - Add runtime host suspend blockers for Xen-owned subsystems lacking
>    suspend/resume support.
> - Keep vPSCI SYSTEM_SUSPEND advertised through PSCI_FEATURES and enforce
>    control-domain sequencing in the call handler.
> ---
>   xen/arch/arm/Kconfig                  |   1 +
>   xen/arch/arm/gic.c                    |   6 ++
>   xen/arch/arm/include/asm/psci.h       |   3 +
>   xen/arch/arm/include/asm/suspend.h    |  10 ++-
>   xen/arch/arm/psci.c                   |   7 ++
>   xen/arch/arm/suspend.c                |  40 +++++++++
>   xen/arch/arm/vpsci.c                  | 114 +++++++++++++++++++++++---
>   xen/common/Kconfig                    |   3 +
>   xen/common/domain.c                   |   7 +-
>   xen/drivers/char/serial.c             |  12 +++
>   xen/drivers/passthrough/arm/iommu.c   |   4 +
>   xen/drivers/passthrough/arm/smmu-v3.c |   4 +
>   xen/include/xen/serial.h              |   1 +
>   xen/include/xen/suspend.h             |   2 +
>   14 files changed, 201 insertions(+), 13 deletions(-)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 79622b46a1..54a5bfb9ae 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -19,6 +19,7 @@ config ARM
>   	select HAS_ALTERNATIVE if HAS_VMAP
>   	select HAS_DEVICE_TREE_DISCOVERY
>   	select HAS_DOM0LESS
> +	select HAS_HWDOM_SYSTEM_SUSPEND if !MPU
>   	select HAS_GRANT_CACHE_FLUSH if GRANT_TABLE
>   	select HAS_STACK_PROTECTOR
>   	select HAS_UBSAN
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index 7727ffed5a..60488c95b4 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -26,6 +26,7 @@
>   #include <asm/device.h>
>   #include <asm/io.h>
>   #include <asm/gic.h>
> +#include <asm/suspend.h>
>   #include <asm/vgic.h>
>   #include <asm/acpi.h>
>   
> @@ -44,6 +45,11 @@ static void __init __maybe_unused build_assertions(void)
>   void register_gic_ops(const struct gic_hw_operations *ops)
>   {
>       gic_hw_ops = ops;
> +
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +    if ( !ops->suspend || !ops->resume )
> +        host_system_suspend_disable("GIC driver lacks suspend support");
> +#endif
>   }
>   
>   static void clear_cpu_lr_mask(void)
> diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
> index bb3c73496e..142fa1bfe5 100644
> --- a/xen/arch/arm/include/asm/psci.h
> +++ b/xen/arch/arm/include/asm/psci.h
> @@ -24,6 +24,9 @@ void call_psci_cpu_off(void);
>   void call_psci_system_off(void);
>   void call_psci_system_reset(void);
>   int call_psci_system_suspend(void);
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +bool psci_system_suspend_allowed(void);
> +#endif
>   
>   /* Range of allocated PSCI function numbers */
>   #define	PSCI_FNUM_MIN_VALUE                 _AC(0,U)
> diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
> index c848fc6340..50dc6e9fdf 100644
> --- a/xen/arch/arm/include/asm/suspend.h
> +++ b/xen/arch/arm/include/asm/suspend.h
> @@ -39,7 +39,15 @@ extern struct resume_cpu_context resume_cpu_context;
>   
>   int prepare_resume_ctx(void);
>   void hyp_resume(void);
> -#endif /* CONFIG_SYSTEM_SUSPEND */
> +bool host_system_suspend_allowed(void);
> +void host_system_suspend_disable(const char *reason);
> +
> +#else /* !CONFIG_SYSTEM_SUSPEND */
> +
> +static inline bool host_system_suspend_allowed(void) { return false; }
> +static inline void host_system_suspend_disable(const char *reason) {}
> +
> +#endif
>   
>   #endif /* ARM_SUSPEND_H */
>   
> diff --git a/xen/arch/arm/psci.c b/xen/arch/arm/psci.c
> index e05dae1133..e9d78668fd 100644
> --- a/xen/arch/arm/psci.c
> +++ b/xen/arch/arm/psci.c
> @@ -41,6 +41,13 @@ static bool __ro_after_init has_psci_system_suspend;
>   
>   #define PSCI_RET(res)   ((int32_t)(res).a0)
>   
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +bool psci_system_suspend_allowed(void)
> +{
> +    return has_psci_system_suspend;
> +}
> +#endif
> +
>   int call_psci_cpu_on(int cpu)
>   {
>       struct arm_smccc_res res;
> diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
> index 6ea4a0f9cc..98ddd46a47 100644
> --- a/xen/arch/arm/suspend.c
> +++ b/xen/arch/arm/suspend.c
> @@ -1,9 +1,49 @@
>   /* SPDX-License-Identifier: GPL-2.0-only */
>   
> +#include <asm/psci.h>
>   #include <asm/suspend.h>
>   
> +#include <xen/lib.h>
> +#include <xen/serial.h>
> +
>   struct resume_cpu_context resume_cpu_context;
>   
> +/*
> + * Non-PSCI infrastructure can make host suspend impossible even when the PSCI
> + * SYSTEM_SUSPEND conduit is present, e.g. when a Xen-owned driver has no valid
> + * suspend/resume path.
> + *
> + * This gate is checked only when the last awake control domain attempts to
> + * turn a guest SYSTEM_SUSPEND request into a host-suspend request.
> + */
> +static bool host_system_suspend_runtime_allowed = true;

All callers of host_system_suspend_disable() appear to execute during 
boot. I noticed you added __ro_after_init to serial_suspend_available 
(same lifecycle), making the omission here a bit inconsistent. Should 
host_system_suspend_runtime_allowed be marked as __ro_after_init as 
well? Or I missed something?

> +
> +static bool host_serial_suspend_allowed(void)
> +{
> +    if ( serial_suspend_supported() )
> +        return true;
> +
> +    printk_once(XENLOG_INFO
> +                "Host SYSTEM_SUSPEND blocked: serial unsupported\n");
> +
> +    return false;
> +}
> +
> +bool host_system_suspend_allowed(void)
> +{
> +    return psci_system_suspend_allowed() &&
> +           host_serial_suspend_allowed() &&
> +           host_system_suspend_runtime_allowed;
> +}
> +
> +void host_system_suspend_disable(const char *reason)
> +{
> +    host_system_suspend_runtime_allowed = false;
> +
> +    printk(XENLOG_INFO "Host SYSTEM_SUSPEND blocked: %s\n",
> +           reason ? reason : "unsupported suspend/resume path");

On a system with N SMMUv3 instances using MSIs (each calling 
host_system_suspend_disable() from arm_smmu_setup_msis()),
the same message is printed N times...

> +}
> +
>   /*
>    * Local variables:
>    * mode: C
> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> index ac6af6118f..0bae42c1bd 100644
> --- a/xen/arch/arm/vpsci.c
> +++ b/xen/arch/arm/vpsci.c
> @@ -5,6 +5,7 @@
>   
>   #include <asm/current.h>
>   #include <asm/domain.h>
> +#include <asm/suspend.h>
>   #include <asm/vgic.h>
>   #include <asm/vpsci.h>
>   #include <asm/event.h>
> @@ -219,6 +220,89 @@ static void do_psci_0_2_system_reset(void)
>       domain_shutdown(d,SHUTDOWN_reboot);
>   }
>   
> +/*
> + * Serialise SYSTEM_SUSPEND policy decisions with the domain suspend transition,
> + * so multiple control domains cannot all observe each other as still awake.
> + */
> +static DEFINE_SPINLOCK(vpsci_system_suspend_lock);
> +
> +static bool domain_in_suspend_state(struct domain *d)
> +{
> +    bool suspended;
> +
> +    spin_lock(&d->shutdown_lock);
> +    suspended = d->is_shut_down && d->shutdown_code == SHUTDOWN_suspend;
> +    spin_unlock(&d->shutdown_lock);
> +
> +    return suspended;
> +}
> +
> +static int32_t domain_psci_system_suspend_policy(struct domain *d)
> +{
> +    struct domain *other;
> +    bool last_awake_control_domain = true;
> +    bool awake_non_control_domain = false;
> +
> +    /* Only control domains participate in sequencing policy. */
> +    if ( !is_control_domain(d) )
> +        return 0;
> +
> +    rcu_read_lock(&domlist_read_lock);
> +
> +    for_each_domain ( other )
> +    {
> +        bool suspended;
> +
> +        if ( other == d )
> +            continue;
> +
> +        suspended = domain_in_suspend_state(other);
> +        if ( suspended )
> +            continue;
> +
> +        if ( is_control_domain(other) )
> +        {
> +            last_awake_control_domain = false;
> +            break;
> +        }
> +
> +        awake_non_control_domain = true;
> +    }
> +
> +    rcu_read_unlock(&domlist_read_lock);
> +
> +    /*
> +     * Another control domain is still awake. This request is only the first
> +     * phase of the sequencing: park this control domain and leave the host
> +     * running. Host-wide suspend gates must not block this intermediate state.
> +     */
> +    if ( !last_awake_control_domain )
> +        return 0;
> +
> +    /*
> +     * This is the last awake control domain. It must not be parked unless the
> +     * request can proceed as a host-suspend request; otherwise Xen would lose
> +     * the last domain that can coordinate the system suspend.
> +     */
> +    if ( awake_non_control_domain )
> +    {
> +        printk(XENLOG_DEBUG
> +               "SYSTEM_SUSPEND denied for %pd: non-control domains awake\n",
> +               d);
> +        return PSCI_DENIED;
> +    }
> +
> +    /*
> +     * Host-wide gates are relevant only for the last-control-domain case. They
> +     * must not block parking of a non-last control domain, but they must deny
> +     * the last control domain when host suspend is not currently available.
> +     */
> +    if ( !host_system_suspend_allowed() )
> +        return PSCI_DENIED;
> +
> +    return 0;
> +}
> +
>   static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
>   {
>       int32_t rc;
> @@ -232,10 +316,6 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
>       if ( is_64bit_domain(d) && is_thumb )
>           return PSCI_INVALID_ADDRESS;
>   
> -    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
> -    if ( is_hardware_domain(d) )
> -        return PSCI_NOT_SUPPORTED;
> -
>       /* Ensure that all CPUs other than the calling one are offline */
>       domain_lock(d);
>       for_each_vcpu ( d, v )
> @@ -252,16 +332,29 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
>       if ( rc )
>           return PSCI_DENIED;
>   
> -    rc = domain_shutdown(d, SHUTDOWN_suspend);
> +    spin_lock(&vpsci_system_suspend_lock);
> +
> +    rc = domain_psci_system_suspend_policy(d);
> +    if ( !rc )
> +    {
> +        rc = domain_shutdown(d, SHUTDOWN_suspend);
> +        if ( rc )
> +            rc = PSCI_DENIED;
> +        else
> +        {
> +            rctx->ctxt = ctxt;
> +            rctx->wake_cpu = current;
> +        }
> +    }
> +
> +    spin_unlock(&vpsci_system_suspend_lock);
> +
>       if ( rc )
>       {
>           free_vcpu_guest_context(ctxt);
> -        return PSCI_DENIED;
> +        return rc;
>       }
>   
> -    rctx->ctxt = ctxt;
> -    rctx->wake_cpu = current;
> -
>       gprintk(XENLOG_DEBUG,
>               "SYSTEM_SUSPEND requested, epoint=%#"PRIregister", cid=%#"PRIregister"\n",
>               epoint, cid);
> @@ -287,10 +380,9 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>       case PSCI_0_2_FN32_SYSTEM_RESET:
>       case PSCI_1_0_FN32_PSCI_FEATURES:
>       case ARM_SMCCC_VERSION_FID:
> -        return 0;
>       case PSCI_1_0_FN32_SYSTEM_SUSPEND:
>       case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> -        return is_hardware_domain(current->domain) ? PSCI_NOT_SUPPORTED : 0;
> +        return 0;
>       default:
>           return PSCI_NOT_SUPPORTED;
>       }
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 5ff71480ee..816a1a4ecb 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -140,6 +140,9 @@ config HAS_EX_TABLE
>   config HAS_FAST_MULTIPLY
>   	bool
>   
> +config HAS_HWDOM_SYSTEM_SUSPEND
> +	bool
> +
>   config HAS_IOPORTS
>   	bool
>   
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index bb9e210c28..d3edfb2a13 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1375,6 +1375,11 @@ void __domain_crash(struct domain *d)
>       domain_shutdown(d, SHUTDOWN_crash);
>   }
>   
> +static inline bool want_hwdom_shutdown(uint8_t reason)
> +{
> +    return !IS_ENABLED(CONFIG_HAS_HWDOM_SYSTEM_SUSPEND) ||
> +           reason != SHUTDOWN_suspend;
> +}
>   
>   int domain_shutdown(struct domain *d, u8 reason)
>   {
> @@ -1391,7 +1396,7 @@ int domain_shutdown(struct domain *d, u8 reason)
>           d->shutdown_code = reason;
>       reason = d->shutdown_code;
>   
> -    if ( is_hardware_domain(d) )
> +    if ( is_hardware_domain(d) && want_hwdom_shutdown(reason) )
>           hwdom_shutdown(reason);
>   
>       if ( d->is_shutting_down )
> diff --git a/xen/drivers/char/serial.c b/xen/drivers/char/serial.c
> index adb312d796..e5348b5445 100644
> --- a/xen/drivers/char/serial.c
> +++ b/xen/drivers/char/serial.c
> @@ -497,6 +497,8 @@ const struct vuart_info *serial_vuart_info(int idx)
>   
>   #ifdef CONFIG_SYSTEM_SUSPEND
>   
> +static bool __ro_after_init serial_suspend_available = true;
> +
>   void serial_suspend(void)
>   {
>       int i;
> @@ -513,6 +515,11 @@ void serial_resume(void)
>               com[i].driver->resume(&com[i]);
>   }
>   
> +bool serial_suspend_supported(void)
> +{
> +    return serial_suspend_available;
> +}
> +
>   #endif /* CONFIG_SYSTEM_SUSPEND */
>   
>   void __init serial_register_uart(int idx, struct uart_driver *driver,
> @@ -521,6 +528,11 @@ void __init serial_register_uart(int idx, struct uart_driver *driver,
>       /* Store UART-specific info. */
>       com[idx].driver = driver;
>       com[idx].uart   = uart;
> +
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +    if ( !driver->suspend || !driver->resume )
> +        serial_suspend_available = false;
> +#endif
>   }
>   
>   void __init serial_async_transmit(struct serial_port *port)
> diff --git a/xen/drivers/passthrough/arm/iommu.c b/xen/drivers/passthrough/arm/iommu.c
> index 100545e23f..547048af05 100644
> --- a/xen/drivers/passthrough/arm/iommu.c
> +++ b/xen/drivers/passthrough/arm/iommu.c
> @@ -19,6 +19,7 @@
>   #include <xen/device_tree.h>
>   #include <xen/iommu.h>
>   #include <xen/lib.h>
> +#include <xen/suspend.h>
>   
>   #include <asm/device.h>
>   
> @@ -46,6 +47,9 @@ void __init iommu_set_ops(const struct iommu_ops *ops)
>       }
>   
>       iommu_ops = ops;
> +
> +    if ( !ops->suspend || !ops->resume )
> +        host_system_suspend_disable("IOMMU driver lacks suspend support");

I was initially wondering why the suspend/resume checks for the GIC and 
serial are wrapped in #ifdef CONFIG_SYSTEM_SUSPEND, but the IOMMU check 
is not, despite host_system_suspend_disable() acting as no-op when 
CONFIG_SYSTEM_SUSPEND=n. Then I realized the divergence here because the 
suspend/resume members in struct iommu_ops are not gated with #ifdef, 
unlike those in struct gic_hw_operations and struct uart_driver.


>   }
>   
>   int __init iommu_hardware_setup(void)
> diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
> index be8028c036..1b6bb1bc5f 100644
> --- a/xen/drivers/passthrough/arm/smmu-v3.c
> +++ b/xen/drivers/passthrough/arm/smmu-v3.c
> @@ -91,6 +91,7 @@
>   #include <asm/io.h>
>   #include <asm/iommu_fwspec.h>
>   #include <asm/platform.h>
> +#include <asm/suspend.h>
>   
>   #include "smmu-v3.h"
>   
> @@ -1903,6 +1904,9 @@ static void arm_smmu_setup_msis(struct arm_smmu_device *smmu)
>   		}
>   	}
>   
> +	host_system_suspend_disable(
> +		"SMMUv3 MSI IRQ path is unsupported for host suspend");
> +
>   	/* Add callback to free MSIs on teardown */
>   	devm_add_action(dev, arm_smmu_free_msis, dev);
>   }
> diff --git a/xen/include/xen/serial.h b/xen/include/xen/serial.h
> index 8e18445552..418b00ead0 100644
> --- a/xen/include/xen/serial.h
> +++ b/xen/include/xen/serial.h
> @@ -137,6 +137,7 @@ const struct vuart_info* serial_vuart_info(int idx);
>   /* Serial suspend/resume. */
>   void serial_suspend(void);
>   void serial_resume(void);
> +bool serial_suspend_supported(void);
>   #endif
>   
>   /*
> diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
> index 6f94fd53b0..a941331035 100644
> --- a/xen/include/xen/suspend.h
> +++ b/xen/include/xen/suspend.h
> @@ -6,6 +6,8 @@
>   #if __has_include(<asm/suspend.h>)
>   #include <asm/suspend.h>
>   #else
> +struct domain;
> +
>   static inline void arch_domain_resume(struct domain *d) {}
>   #endif
>   



From xen-devel-bounces@lists.xenproject.org Mon May 25 19:41:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 19:41:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319462.1587051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRbAd-0002xc-Jh; Mon, 25 May 2026 19:41:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319462.1587051; Mon, 25 May 2026 19:41:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRbAd-0002xV-Fy; Mon, 25 May 2026 19:41:03 +0000
Received: by outflank-mailman (input) for mailman id 1319462;
 Mon, 25 May 2026 19:41:02 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wRbAc-0002xP-FM
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 19:41:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRbAb-00G1a2-SH
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 21:41:01 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a14a58e-bab6-0a2a0a5309dd-0a2a450cb95a-48
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 21:41:01 +0200
Received: from [209.85.208.178] (helo=mail-lj1-f178.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a14a5cd-62f1-0a2a450c0019-d155d0b2c162-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 21:41:01 +0200
Received: by mail-lj1-f178.google.com with SMTP id
 38308e7fff4ca-393a44854d2so87381711fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 12:41:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779738061; cv=none;
        d=google.com; s=arc-20240605;
        b=OOH7VHqevKKM2Ct3eaO6cHuHtemZkRMY1Nn1ys+M82/Bwzcq0hx8kX35+GeEe4/U6K
         qlab/bZ+y1qmJ7raXgDpLg/Q8wru5S9CAoa/g0aZtWpVChCo+bgQSZ3K7wRNcavQmHsG
         YuJ4WG9xiavnrNSLpiy2iYtZMFeB1FhTI3LZ9fVbLNbg3RHUr4V7ZOJ3FE0I4y7WS1ch
         PaUzT53KuZOSwZaJ2W9nxnKGWLKM+yNwEkZ5mtlOG4/dPLzSJR2l1Z90BvKoW47TEqgW
         jFrzIE4exGGDcZlLM7DLWwauRZlR3cIr12Hgb5YiinmXHG+e1Fm6PAIisgNpOaRyYwV+
         i8Bg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=7GscdMGa5JwV06hUGhNhA9wTPcL7ZJx0M5oTmeCkk5g=;
        fh=zL8KVAj6rSaYbk/102rEWeOa69wm5cw+i9nXMzeM8z8=;
        b=iFjZXhUsi2atABRI8V/nirNEs1xtBPZgx/fl42u/ZTUf3p3udOQUEYx/T3oudmpe+t
         Hmd9ISOLUwg6A+jW7nejX0ZHhjyw5J0tLbr5rQlK4HUSSOfkFHu7I5poTEsOc5S+FE4p
         ztOfWrZDtwTW/ErTB6KhYPabMgOkiLiQfWEDtVyzdgfgqll5eoqea6zfdGliTIwdypTX
         H9Hp2bvPzSf76MmOXcJ/L+Q/Z06Wcl3ZGBLf2wWO/x8AK0yCtTdEgMnWd3Bd5GNJyX4G
         8v/8do/nDvPRAV1JWHpgdXdsemDbWoSj7QnJbqTB8f0W/MFbRYDSpaFKDe6gIRHS3xFx
         KRfw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779738061; x=1780342861; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7GscdMGa5JwV06hUGhNhA9wTPcL7ZJx0M5oTmeCkk5g=;
        b=UhTsgyVya1+zZJ1sNSH6oe8P/AzyhwVWA9jS9m55vHz+TMQ0fm+edbXFOakOlmUvJF
         tsClgpNRQzf/fVmpIOxRl6tuC63r/nEKpEEHN7dg5l0GQ8an5oK4GWL1LAWQ+4Zs/GSq
         /5CRL4ridUfdIBkEn17V08/ah0GQbbChZJS1t9uPCO+NJ3E0MBz/ENzbAbFlgDlBcB0b
         9p9vlzhLQHkuzHgdqoYrJPVWg24BiWIgn7CGbnGZL3hepTi1QaRilzdQPCfedIPubjNK
         EgMzS4oLUBRXcPqF0oAV+A5NIzWKktVCSAEx9tJwj05mNHuYZTfVi7dsLNTLfn8lTcyL
         ZZQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779738061; x=1780342861;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=7GscdMGa5JwV06hUGhNhA9wTPcL7ZJx0M5oTmeCkk5g=;
        b=eHtarnOuPN7UQyFfpSBGiNk6HP+4ZeZsVJnNfGEVwMMpc786/QyhvPvXt7/iIy4m95
         AODh2OP68s8Z5uby1T/G63+YS7/3pqEArHdWdHRXHlIC38HXA3DkSNaG9ElrtZQHVHgH
         cf9dPdwPTEcZ5TqsAAA3Pm9Rq/wAtgDUI1xGLnO5L5m8w4VrvqWQdC3r6aClM2s3qCT/
         fgZhEHIBbnHzhggNmwYxome5THbdmuV2dY6GYI+zKEgn+id07kJM/T30vRdNlfPGXC78
         mtxHyN+i1oOaf9WA9r5muCq1lUzS6CSo+XZ4QsnaeICsgFk7q8Ce3yy0W0EILS+9mXfj
         rTug==
X-Gm-Message-State: AOJu0YxG5x7vdOJ0IAhT0Yd2M2efX3EI4crqyPYGUbxFMUNrk1W13xWQ
	eEYMtP2RjFuOvxaFePnU8cX2gtzy8MtLXrftwRqeQJYWuFrD4xqtXQd4eB4nzBZBeu7jqCM/uh9
	oWbhSU021AV3JOcub3OZLgffukOPusCY=
X-Gm-Gg: Acq92OHDt93cJETYxyR5Ioqv3sEWT5pMvH1EJB644ek3MrPcN3RAA6FYupgWYFXzK6y
	s/HuDSZR072KkxdcPA8rlRX7XimxCAlB9TF0aPj5Qdkh6NVYHTkQOg8DNt9mcDlF38PaOPHhulj
	wdZkP7VujzeVUDXJak6bneG+nZ/eh9vWBIDsOaY5LIjKFytx63ad2ylOl1I4aEX/HKpqtbEwXf8
	M6hgl8MhdPLBHBVYcgfpK0QFNJxyZDW/D/I7U4aH84YRqqZBfcQT0TjkADAfpoRL+SNd0vXmziX
	IQmk
X-Received: by 2002:a2e:b6d3:0:b0:38e:8902:7a7f with SMTP id
 38308e7fff4ca-395d8c8b744mr34451731fa.13.1779738060804; Mon, 25 May 2026
 12:41:00 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1779430299.git.mykola_kvach@epam.com> <f9a0308092deb2135d32ad9fc2c5ccafc8a7320e.1779430299.git.mykola_kvach@epam.com>
 <eaf40a4c-ce82-4a34-91f1-9cdd0bbff7fb@amd.com>
In-Reply-To: <eaf40a4c-ce82-4a34-91f1-9cdd0bbff7fb@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 25 May 2026 22:40:49 +0300
X-Gm-Features: AVHnY4IpZECPXVca0UxkIBpYLixfHn2roSQ0hIoNclny7N5u0nyev8Z1K6BOY2s
Message-ID: <CAGeoDV8Hy9+GpoZ8-JmW=qCrg0We18t47T-PJksJ9D9sbr+ANA@mail.gmail.com>
Subject: Re: [PATCH 1/2] xen/arm: propagate vGIC vCPU init failures
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d25034/1779738061-E1161CF5-6F67D538/0/0
X-purgate-type: clean
X-purgate-size: 6639

Hi Michal,

Thank you for the feedback.

On Mon, May 25, 2026 at 12:46=E2=80=AFPM Orzel, Michal <michal.orzel@amd.co=
m> wrote:
>
>
>
> On 22-May-26 08:18, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > The vGIC per-vCPU init callback can fail. In particular, GICv3 rejects
> > a vCPU when the domain's redistributor layout has no MMIO slot covering
> > that vCPU. However, the generic vGIC init path ignored the callback
> > return value, so vcpu_create() could succeed with an invalid vGICv3
> > per-vCPU state.
> >
> > This can be reproduced on FVP Base RevC by exposing a 2 MiB GICv3
> > redistributor region to Dom0 and booting Xen with:
> >
> >     maxcpus=3D1 dom0_max_vcpus=3D64
> >
> > The host GICv3 redistributor range is:
> >
> >     region 0: 0x0000002f100000 - 0x0000002f300000
> >
> > With Xen's guest redistributor frame size of 128 KiB, that range covers
> > 16 guest redistributors. vCPU16 and above have no corresponding
> > redistributor slot.
> >
> > Before this fix, Xen detected the missing redistributors:
> >
> >     d0: Unable to find a re-distributor for VCPU 16
> >     ...
> >     d0: Unable to find a re-distributor for VCPU 63
> >
> > but ignored the error and continued as if the secondary vCPUs had been
> > created correctly. Dom0 then saw 64 possible CPUs and could hang during
> > secondary CPU bring-up:
> >
> >     smp: Bringing up secondary CPUs ...
> >     d0v15: vGICR: SGI: unhandled word write ... to ICACTIVER0
> >
> > Propagate the vGIC vcpu_init() error so the caller can stop creating
> > secondary vCPUs. With this fix, Dom0 construction reports:
> >
> >     d0: Unable to find a re-distributor for VCPU 16
> >     Failed to allocate d0v16
> >
> > and the guest continues booting with the vCPUs created before the
> > failure:
> >
> >     smp: Brought up 1 node, 16 CPUs
> >
> > Free the private IRQ rank allocated by vcpu_vgic_init() on this error
> > path. The caller will still run the generic vCPU creation cleanup, but
> > XFREE() clears the pointer so that cleanup remains idempotent.
> >
> > Also fix the host-layout redistributor region count for the case where
> > the requested vCPU count is larger than the capacity of all host
> > redistributor regions. The old code always stored i + 1 after the loop.
> > That is correct when the loop stops inside a valid region because the
> > requested vCPU count is covered. If the loop exits after consuming all
> > hardware regions, i is already equal to the number of allocated regions=
,
> > so i + 1 records one region too many.
> >
> > In the same FVP setup, that off-by-one made Xen describe host-layout
> > GICR state beyond the populated redistributor region list. Dom0 then
> > accessed the GICR MMIO window described in its device tree, but Xen cou=
ld
> > not match the access to a valid emulated redistributor frame. During
> > debugging this was seen as an unexpected vGICR access followed by a
> > guest panic:
> >
> >     d0v0: vGICR: unknown gpa read address 000000002f10ffe8
> >     pc : gic_iterate_rdists+0x4c/0x104
> >     Kernel panic - not syncing: Attempted to kill the idle task!
> >
> > Keep the existing best-effort Dom0 policy: a failure to create a
> > secondary vCPU stops the secondary vCPU creation loop, but does not fai=
l
> > the whole Dom0 boot.
> This is the construct_domain() policy that is used for both dom0 and dom0=
less
> domUs. I must say I don't really like this policy and it's against our *g=
eneric*
> Arm policy to fail the domain creation on any error especially if this be=
longs
> to unsatisfied user requests. This is not really related to your series, =
but I
> would like to ask other Arm maintainers about their opinion.

Yes, I agree this is a broader construct_domain() policy question. I kept
the existing behaviour in this patch, but I am fine with adjusting it if
the maintainers decide that domain creation should fail in this case.

In any case, I will reword the commit message so it does not describe
this as a Dom0-only policy, since the same construct_domain() path is
also used for dom0less domains.

>
> >
> > Fixes: ea37fd21110b ("xen/arm: split vgic driver into generic and vgic-=
v2 driver")
> > Fixes: 54ec59f6b0b3 ("xen/arm: vgic-v3: Don't create empty re-distribut=
or regions")
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> >  xen/arch/arm/vgic-v3.c |  3 ++-
> >  xen/arch/arm/vgic.c    | 10 +++++++---
> >  2 files changed, 9 insertions(+), 4 deletions(-)
> >
> > diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
> > index 77517c3030..360778eb32 100644
> > --- a/xen/arch/arm/vgic-v3.c
> > +++ b/xen/arch/arm/vgic-v3.c
> > @@ -1834,7 +1834,8 @@ static int vgic_v3_domain_init(struct domain *d)
> >           * not match the number of pCPUs). Update the number of region=
s to
> >           * avoid exposing unused region as they will not get emulated.
> >           */
> > -        d->arch.vgic.nr_regions =3D i + 1;
> > +        d->arch.vgic.nr_regions =3D (i =3D=3D vgic_v3_hw.nr_rdist_regi=
ons) ?
> > +                                   i : i + 1;
> Wouldn't min(i+1,vgic_v3_hw.nr_rdist_regions) be cleaner?

Ack, I will change this in v2.

>
> >
> >          d->arch.vgic.intid_bits =3D vgic_v3_hw.intid_bits;
> >      }
> > diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> > index 6647071ad4..e55e484493 100644
> > --- a/xen/arch/arm/vgic.c
> > +++ b/xen/arch/arm/vgic.c
> > @@ -368,7 +368,7 @@ void domain_vgic_free(struct domain *d)
> >
> >  int vcpu_vgic_init(struct vcpu *v)
> >  {
> > -    int i;
> > +    int i, ret;
> >
> >      v->arch.vgic.private_irqs =3D xzalloc(struct vgic_irq_rank);
> >      if ( v->arch.vgic.private_irqs =3D=3D NULL )
> > @@ -377,7 +377,12 @@ int vcpu_vgic_init(struct vcpu *v)
> >      /* SGIs/PPIs are always routed to this VCPU */
> >      vgic_rank_init(v->arch.vgic.private_irqs, 0, v->vcpu_id);
> >
> > -    v->domain->arch.vgic.handler->vcpu_init(v);
> > +    ret =3D v->domain->arch.vgic.handler->vcpu_init(v);
> > +    if ( ret )
> > +    {
> > +        XFREE(v->arch.vgic.private_irqs);
> > +        return ret;
> > +    }
> >
> >      memset(&v->arch.vgic.pending_irqs, 0, sizeof(v->arch.vgic.pending_=
irqs));
> >      for (i =3D 0; i < 32; i++)
> > @@ -944,4 +949,3 @@ void vgic_check_inflight_irqs_pending(struct vcpu *=
v, unsigned int rank, uint32_
> >   * indent-tabs-mode: nil
> >   * End:
> >   */
> > -
> Stray change, please drop.

Ack.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon May 25 20:22:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 May 2026 20:22:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319480.1587059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRboU-0008Vp-Ga; Mon, 25 May 2026 20:22:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319480.1587059; Mon, 25 May 2026 20:22:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRboU-0008Vi-Dl; Mon, 25 May 2026 20:22:14 +0000
Received: by outflank-mailman (input) for mailman id 1319480;
 Mon, 25 May 2026 20:22:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wRboS-0008Va-PB
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 20:22:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRboS-000apZ-5Q
 for xen-devel@lists.xenproject.org; Mon, 25 May 2026 22:22:12 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a14af6a-2eae-0a2a0a5409dd-0a2a4506a31c-24
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 22:22:12 +0200
Received: from [209.85.208.179] (helo=mail-lj1-f179.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a14af73-7371-0a2a45060019-d155d0b3f19d-3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 22:22:11 +0200
Received: by mail-lj1-f179.google.com with SMTP id
 38308e7fff4ca-38be5e86918so3361501fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 13:22:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779740531; cv=none;
        d=google.com; s=arc-20240605;
        b=RWYbzNjTfT02WQD4MH2+r/67YdDeZEnmtp88FpEoWX86PuEaG9e++lyX60xHQuY7Ke
         dO8ylE6jH4hARBWXlgowUAy2BDFSRtAgqOPep4OMNTSnAE2KW7IsmP6a/x1Fh/LjD+JD
         v3Qwc/4eCevhk1VigeheqqzVcg7bOID7WaHdnCHvf17Tav0BjOGlIC0b1A/2xEYu5U9T
         QXgDwub/Ag0I5RISSNjQ1d60e+vhcIIZx239QlY4/a+bXyHK/OlLX6g5by2pyUFmPDHw
         /PX+IHg6tDTZjE+bZ6OAHTO9t1HOabs5xgBlzPG5R+j4RJSh3Drz5olEsCltptKyltAC
         soqw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=iZ+wVJbAubaBhu7Hb39+luYPb+2p4UG22nwk4/ozSi4=;
        fh=0sVRqm7+oyz7WJ/bTvyRrhIQoOB1v0nJ1T68JVaBfuo=;
        b=iUXjqnThvb+UUvePAcUShT3Jl1kJmQskTu8aJP1JGvzmguXOgXQlaAjh5ZyPvARcTD
         nks0kGeuaOnY8Ot5KoS4j7SJssOdhxInnqoVakePhl+dEmeBQbzQ52IVMjAn703/85Em
         NeBEE/N0JLRbD+aM40kXr/wyODkdGLQesu+jHr7WOvEKUbJH80f2qJRw3BPHR/YAHJ6T
         HXIqpuOyIcSr9NW662Zt7gTuSW+9D0LvqchqRJHiVQSQuS+QcORCWtZmPY2cbXv7/ufk
         aLu30VPjcp8MYhjZ4KckC6lYskVzQZOTuG1aZbsx7OycWL6L13EanpLfYovLonuz15n3
         yT1w==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779740531; x=1780345331; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iZ+wVJbAubaBhu7Hb39+luYPb+2p4UG22nwk4/ozSi4=;
        b=UmUfM8oG4GYTL/pec9g/wQFWguxVIKQTM70zTRvIPP0j9YkmuLuMh+KWaL7WPODHWm
         dUApHmodbfU56EkMI5Zea+lRFlqkYLrHP+MXEPZ65817iiiyje/9Qg7uz0D4MR5BpxIM
         e4sDPNAU2nDf2WHDSl9WHv8Yb+9Ckdfz6N5N3i9fw99QLEbQLiF/XepRzHe+w5WNWZUN
         xFGPipc3x8xl19kkj/4ERfGvuOeWJrOWI/7UjLK3po8XEQZ4Ji9Ip9VsLS6vy9kO51se
         6iaSQf26wAhuB9zRaJJDrre6QRNHaAHGWHZOqVCzpFMOSKnKzvRIfKNOz5AlU9XjePcn
         6a/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779740531; x=1780345331;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=iZ+wVJbAubaBhu7Hb39+luYPb+2p4UG22nwk4/ozSi4=;
        b=pxtecx5xEb4Dmqg/WXYQwSufLtapzOC+2T4uUB1OQGQMRTFxP/hhG8musrwyAVv2xe
         3E/Pb4o+K28JNxp2vOO9l4h26f/q+kZYTunTZqtNhbf5B6tpjUusaE/zyoILjMT/MLui
         EX9t6qIM7jJ6FLiu37Y0EobTYkl0qBP9NI6+439Sc4rAEO00SA7svdEPaZ6nm2KbQghr
         kpeCdYmMr/Q7ynKm5/rZvIYxoSsCEyzR2s/rsn671Z+ZXaD2Ukxb5o3YoSFkwkawphrD
         ZVH+PGGjW5M48mgm2zIjTbfIl4YUPCG42NY+fLAjU/mKx2OzSF/wQ08nhTQaGwqhdJqv
         hdsA==
X-Gm-Message-State: AOJu0Yx5zf4Y6w1GIyFtDja4Sb/bi6Q9rKrNg/sxgaPa8hGRbVUkt4QL
	OiXNZNsDUKUio9hl/ZPLAQRfEifBquSskeK2w9JeDlU9Q0rbvWDKN4HV9QYqReshf33kx0MikiY
	23eX51AY0kq6rP5Md3ygMjeaqNaHrETE=
X-Gm-Gg: Acq92OF0DSUb3rJ6PcvIdrS+ue25PNJ151lbMSMTtWb44MOguuL8+GxJxEd9GkjovUn
	sVvnLIfPN4o25bnjZdixtd/A052Ur+rX/PlTQTWxGN6ADBJcHTITUiIK6LaB5pMcNAUVcNWAwd0
	N4Tr1lZaywaNT7AlAcsVrv5dOVBv7KOKaL6A2DsG+OVO6S25A3SCS/4+ub1XbxWjs/FxWNHRw8M
	j3fZ23LNR4pjHZ/xiQhy+tmlPjrRvFSm5BmVaE5cHH7THBK1mwBwTC55a0XWbcjhuAK/GxXF96f
	HHfz
X-Received: by 2002:a2e:9ec2:0:b0:393:a37e:b131 with SMTP id
 38308e7fff4ca-395d8c5a63dmr37739941fa.9.1779740531071; Mon, 25 May 2026
 13:22:11 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1779430299.git.mykola_kvach@epam.com> <88459940b410ceddc04bca7e2cadf7c16bd5c13b.1779430299.git.mykola_kvach@epam.com>
 <d98c2f4d-d1a9-4ef3-a24e-05cc6451bb72@amd.com>
In-Reply-To: <d98c2f4d-d1a9-4ef3-a24e-05cc6451bb72@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 25 May 2026 23:21:59 +0300
X-Gm-Features: AVHnY4IGuUTRlWcpOAAttbTo2Vn6IWIzaq-dJd_KkIl03Ikx7alNDTxJYpKg4KY
Message-ID: <CAGeoDV_o3-xgO=D25hQ5ofT_y-h6OWHQxF8CwQVzs4+GG-Fxig@mail.gmail.com>
Subject: Re: [PATCH 2/2] docs: Document Arm GICv3 limit for dom0_max_vcpus
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-16d1c6/1779740532-87170D75-DA1DA3A4/0/0
X-purgate-type: clean
X-purgate-size: 2523

Hi Michal,

Thank you for the review.

On Mon, May 25, 2026 at 12:55=E2=80=AFPM Orzel, Michal <michal.orzel@amd.co=
m> wrote:
>
>
>
> On 22-May-26 08:18, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > On Arm GICv3 systems, Dom0 may use the host GIC layout, for example
> > when it is the hardware domain. In that case the effective Dom0 vCPU
> > count is not only bounded by the requested dom0_max_vcpus value and
> > Xen's generic vCPU limits. It is also bounded by the redistributor MMIO
> > regions that can be exposed for the host layout.
> >
> > Document that Xen can only create Dom0 vCPUs whose virtual redistributo=
r
> > frame is covered by those regions, and that secondary vCPU creation sto=
ps
> > at the first vCPU whose virtual redistributor frame is not covered.
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> >  docs/misc/xen-command-line.pandoc | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> >
> > diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-=
line.pandoc
> > index d46d5b2152..0a5589b24c 100644
> > --- a/docs/misc/xen-command-line.pandoc
> > +++ b/docs/misc/xen-command-line.pandoc
> > @@ -981,6 +981,14 @@ The number of VCPUs to give to dom0.  This number =
of VCPUs can be more
> >  than the number of PCPUs on the host.  The default is the number of
> >  PCPUs.
> >
> > +On Arm systems using GICv3, Dom0 may use the host GIC layout, for exam=
ple
> It's not dom0 specific. It can by any domain using host memory layout mea=
ning
> dom0, hwdom, domU direct mapped, in which case I'm not sure if such comme=
nt
> should belong here given that this behavior is not dom0_max_vcpus specifi=
c (same
> could be triggered on your setup with dom0less domU, direct-mapped and 17=
 vCPUs).

You are right that the redistributor coverage limit is not specific to
dom0_max_vcpus. It applies to Arm GICv3 domains using the host layout,
such as the hardware domain or a direct-mapped domain.

My reason for touching dom0_max_vcpus was that this option is where users
are told how many Dom0 VCPUs Xen will try to create. However, the
GICv3-specific details would fit better in a more generic Arm
device-tree/domain description section, around the cpus/direct-map
properties.

For dom0_max_vcpus, I can keep only a short generic note, for example:

The resulting number of Dom0 VCPUs is still subject to Xen's generic
and architecture-specific domain limits.

~Mykola


From xen-devel-bounces@lists.xenproject.org Tue May 26 06:12:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 06:12:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319583.1587068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRl1k-0003ee-Ka; Tue, 26 May 2026 06:12:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319583.1587068; Tue, 26 May 2026 06:12:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRl1k-0003eO-F5; Tue, 26 May 2026 06:12:32 +0000
Received: by outflank-mailman (input) for mailman id 1319583;
 Tue, 26 May 2026 06:12:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <krzk@kernel.org>) id 1wRl1j-0003eH-Rr
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 06:12:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRl1j-002Fr4-3t
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 08:12:31 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <krzk@kernel.org>)
 id 6a1539cc-e002-0a2a0a5209dd-0a2a4507a4cc-12
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 08:12:30 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <krzk@kernel.org>)
 id 6a1539cd-229c-0a2a45070019-aceafc1fb890-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 08:12:30 +0200
Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18])
 by sea.source.kernel.org (Postfix) with ESMTP id 77E7A437B8;
 Tue, 26 May 2026 06:12:28 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A3D341F000E9;
 Tue, 26 May 2026 06:12:27 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20260515 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:Cc:Subject:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1779775948;
	bh=C4Q6K7bbOoVpU1MwP5UtVcbQqMSK8GB1uvqgVWAyIgA=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To;
	b=PaNxY70+YMonEMLTIazGO/O55U8XOU9hI8Sd6x+lIwRz+krY7I2MIFVP2TtWHQRk6
	 oLs6o/MlXIoueCpSrWzl4/TP61gPF+HN/xvzZ2vYpOcuWB0Dm95zHR9huRUsF9V+Hf
	 YnTyB9za+3uCaHbFr+R2wcRewXry6G17iicxgZkjKeAXoiSONhiO8kf+vbI4ljsIDR
	 1fy3F+EBJAgg0t5T5mg4+PsdSDHbAEaAyRvnVetK1IwZ8UztJCg6MOoYJa1oLvRi7m
	 9dhRl/AKdtuVr7cjGvsAMXrJhl9YyIGQK1PcdmnOV19LefKY14Nezbe0MAE8vRqjtb
	 Xzj2xjTt805IA==
Date: Tue, 26 May 2026 08:12:26 +0200
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>, 
	Nikhil Agarwal <nikhil.agarwal@amd.com>, Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>, 
	Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>, 
	Lorenzo Pieralisi <lpieralisi@kernel.org>, Thomas Gleixner <tglx@kernel.org>, 
	Saravana Kannan <saravanak@kernel.org>, Richard Zhu <hongxing.zhu@nxp.com>, 
	Lucas Stach <l.stach@pengutronix.de>, Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>, 
	Manivannan Sadhasivam <mani@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>, 
	Sascha Hauer <s.hauer@pengutronix.de>, Pengutronix Kernel Team <kernel@pengutronix.de>, 
	Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
	Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>, Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>, 
	Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>, Rob Herring <robh@kernel.org>, 
	Conor Dooley <conor+dt@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>, 
	Prakash Gupta <prakash.gupta@oss.qualcomm.com>, Vikash Garodia <vikash.garodia@oss.qualcomm.com>, 
	linux-kernel@vger.kernel.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, 
	devicetree@vger.kernel.org, linux-pci@vger.kernel.org, imx@lists.linux.dev, 
	xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org, 
	Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v15 0/3] of: parsing of multi #{iommu,msi}-cells in maps
Message-ID: <20260526-finicky-crafty-hare-eae27c@quoll>
References: <20260520-parse_iommu_cells-v15-0-b5f99ad4e7e8@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260520-parse_iommu_cells-v15-0-b5f99ad4e7e8@oss.qualcomm.com>
X-purgate-ID: tlsNG-ef75cf/1779775950-23175C48-D557B613/0/0
X-purgate-type: clean
X-purgate-size: 1594

On Wed, May 20, 2026 at 01:32:39PM +0530, Vijayanand Jitta wrote:
> So far our parsing of {iommu,msi}-map properties has always blindly
> assumed that the output specifiers will always have exactly 1 cell.
> This typically does happen to be the case, but is not actually enforced
> (and the PCI msi-map binding even explicitly states support for 0 or 1
> cells) - as a result we've now ended up with dodgy DTs out in the field
> which depend on this behaviour to map a 1-cell specifier for a 2-cell
> provider, despite that being bogus per the bindings themselves.
> 
> Since there is some potential use[1] in being able to map at least
> single input IDs to multi-cell output specifiers (and properly support
> 0-cell outputs as well), add support for properly parsing and using the
> target nodes' #cells values, albeit with the unfortunate complication of
> still having to work around expectations of the old behaviour too.
> 							-- Robin.
> 
> Unlike single #{}-cell, it is complex to establish a linear relation
> between input 'id' and output specifier for multi-cell properties, thus
> it is always expected that len never going to be > 1.
> 
> These changes have been tested on QEMU for the arm64 architecture.

So there is no real user for that. That's unconvincing. I would assume
that at least you have real user where you test it.

If you want to speed up acceptance of your patches, then also I would
prefer to see at least one more user, beside Qualcomm. IOW, show how you
solve other people problems, not only yours.

Best regards,
Krzysztof



From xen-devel-bounces@lists.xenproject.org Tue May 26 06:18:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 06:18:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319592.1587078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRl7g-0004Kq-6o; Tue, 26 May 2026 06:18:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319592.1587078; Tue, 26 May 2026 06:18:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRl7g-0004Kj-2d; Tue, 26 May 2026 06:18:40 +0000
Received: by outflank-mailman (input) for mailman id 1319592;
 Tue, 26 May 2026 06:18:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wRl7e-0004Kd-R0
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 06:18:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRl7d-001sn2-Oa
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 08:18:37 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a153b28-5cb7-0a2a0a5109dd-0a2a450ab3d4-28
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 08:18:37 +0200
Received: from [209.85.218.53] (helo=mail-ej1-f53.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a153b3d-56b3-0a2a450a0019-d155da35b119-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 08:18:37 +0200
Received: by mail-ej1-f53.google.com with SMTP id
 a640c23a62f3a-bd5047a2a4cso1553548266b.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 23:18:37 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc65dbd3bsm475589266b.54.2026.05.25.23.18.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 May 2026 23:18:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779776317; x=1780381117; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=W6aBnUdBRH77XshyiIZJQB4qhrebsXwHtpV5sNFzD/s=;
        b=MMlvjdTppVAg+IF3c0LB8z747f9UDpUZRJbML55rIMOIH5VFSuXyHjODVG922wb95h
         5g5bS33rgQdwoAD7W3poe9bBGN3gJbucAQBSrJ92kxnDcpjjQ9bQTUU67QNZU7CF2/ee
         AEa2biC39Sdd4oNkLhSw5BVc3eazOvP96PlIhTiy1EJiAGwhU5do048FVqz9IShPcB6E
         2TsuItIbgnfS/LLwdcouVvRfTuixjbqX+3R4Q+AwhDo8QjuCI/eueBB+v2adOJ8AmXQv
         Ba3LvaxYF/ucy/EJ1kshJEEV3/+zLtcio5Z/iKB3rxmTtUkQjwMLoNROxnVS1rzRNpjk
         8n1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779776317; x=1780381117;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=W6aBnUdBRH77XshyiIZJQB4qhrebsXwHtpV5sNFzD/s=;
        b=LDrv9/zHfS6qlW7XuYdqjzmc4foD24/o78Rcc0SU9Y8AiBZkrKVU/7fAPWEaFV8ryC
         9xlJvyzUYDpaUceSQycRX0PnUTozEHGWLhNTX1v1vVZOrFmL5W4WgHDsT56G29WELKz7
         akq6lKX0SMHVDwPyWdpZVgmXs48PEvBfevZdOeVyzSXZXFgVG4Jse3/uuT/FcfeR9jom
         brKqUWaEsmW7iW55JUcP8QgTntMYvupsaZCN4VN/HE4xEB/lFks2Ong3o9Y4o4S1Khkx
         BU1dqF+kgZ6iwg2uHHiQ5tU0yv8LSinbESM033qC1fmZjOkaqrimDR5IaExa7sC2rdYZ
         wc3g==
X-Gm-Message-State: AOJu0YwblcN5HMb8eWuqA1aSERgxkmQe/6ZZoLAr1Qfs5RqLhqn0jols
	pwMD0e7P3qMtEqwZwnCFKwiMW6uUaWXzBOElB1qjfOYgWF1idUEq1XnG0aJsL4wBFJA=
X-Gm-Gg: Acq92OGcWDGYy7+Bp5TQtMcg65tRg7tGmD/IaVWiHxg9Omunt58DCvuRCZqR6wz6eps
	IucPCK8FdTe44UFb40xN5qpFo/1vSx7vDygJuORyDOmN/PFhUSunTw205G56ZTAtbouJPIN2pIf
	GQAccw4qgiJcB6MnKADeMDhA2Y9uhS/QpPASkBAc9AdpElAEuzYQmDMjL77F1wx7KoNp+QLuCn8
	ziayFmvYYe6HlvoTg3uTb5oDRPcw7KJFVdqvAG/PgUB9X0Rn66Lt2iAMpeFCEf5euYZk9E7decU
	5wcNb5MpIT35MflV3rw0GsLOOQH9gRTOeOXAbP7lmiS0izJJYhk6UyCPNUIAmA7lzNpLAMr5hce
	8fVISG4fpf55U5ge8SZxNfJc7qQF4wpUZ8BxejArg5bWEmCrz2evsFQrsVI06FMKoUJZjzf2KXQ
	ulnrjYo/ev8sDbL1yCHyjErzaHEvGRetUIXE216N0OCd7tTsK+W2lRIsRh9a3WhRCUl09RGFDag
	V4A2kKZWzCXrIEHCJ9iOvtJR6YSeo11caXyAPDZk4k+oTeKXK+veg==
X-Received: by 2002:a17:906:31d4:b0:bde:8667:e79a with SMTP id a640c23a62f3a-bde8667e807mr534656966b.16.1779776317026;
        Mon, 25 May 2026 23:18:37 -0700 (PDT)
Message-ID: <1ba4ffba-e9e0-4858-b3b9-d45c950894c3@suse.com>
Date: Tue, 26 May 2026 08:18:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/sched: fix stale file path comments in common/sched
 directory
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Furkan Caliskan <frn1furkan10@gmail.com>
Cc: xen-devel@lists.xenproject.org, dfaggioli@suse.com, gwd@xenproject.org,
 stewart.hildebrand@amd.com, jbeulich@suse.com
References: <20260525102539.27050-1-frn1furkan10@gmail.com>
 <ahQrQnWMiWTE1joR@macbook.local>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <ahQrQnWMiWTE1joR@macbook.local>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------CZ83FPaYMOMo2ijktxjWU9mc"
X-purgate-ID: tlsNG-4011c0/1779776317-709668B7-4DB9605A/0/0
X-purgate-type: clean
X-purgate-size: 8558

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------CZ83FPaYMOMo2ijktxjWU9mc
Content-Type: multipart/mixed; boundary="------------9qjkI40Z0XROARGoBKkzwvKS";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Furkan Caliskan <frn1furkan10@gmail.com>
Cc: xen-devel@lists.xenproject.org, dfaggioli@suse.com, gwd@xenproject.org,
 stewart.hildebrand@amd.com, jbeulich@suse.com
Message-ID: <1ba4ffba-e9e0-4858-b3b9-d45c950894c3@suse.com>
Subject: Re: [PATCH] xen/sched: fix stale file path comments in common/sched
 directory
References: <20260525102539.27050-1-frn1furkan10@gmail.com>
 <ahQrQnWMiWTE1joR@macbook.local>
In-Reply-To: <ahQrQnWMiWTE1joR@macbook.local>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------9qjkI40Z0XROARGoBKkzwvKS
Content-Type: multipart/mixed; boundary="------------3mpXrqOU9qBlCbnDpJApEcG8"

--------------3mpXrqOU9qBlCbnDpJApEcG8
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMjUuMDUuMjYgMTI6NTgsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+IE9uIE1vbiwg
TWF5IDI1LCAyMDI2IGF0IDAxOjI1OjM4UE0gKzAzMDAsIEZ1cmthbiBDYWxpc2thbiB3cm90
ZToNCj4+IENvbW1pdCA2Y2I0YjAxYzAzICgieGVuL3NjaGVkOiBtb3ZlIHNjaGVkdWxlcnMg
YW5kIGNwdXBvb2wgY29kaW5nIHRvDQo+PiBkZWRpY2F0ZWQgZGlyZWN0b3J5IikgbW92ZWQg
dGhlIHNjaGVkdWxlciBmaWxlcyBmcm9tIHhlbi9jb21tb24vIHRvDQo+PiB4ZW4vY29tbW9u
L3NjaGVkIGFuZCByZW5hbWVkIHNvbWUgb2YgdGhlbSwgYnV0IGRpZCBub3QgdXBkYXRlIHRo
ZQ0KPj4gaW4tZmlsZSBwYXRoIGNvbW1lbnRzIGF0IHRoZSB0b3Agb2YgZWFjaCBmaWxlLg0K
Pj4NCj4+IFVwZGF0ZSB0aGUgY29tbWVudHMgdG8gcmVmbGVjdCB0aGUgY3VycmVudCBmaWxl
IGxvY2F0aW9ucy4NCj4gDQo+IEZXSVcsIGlmIHdlIGhhdmUgdG8gbW9kaWZ5IHRob3NlIGxp
bmVzIEkgd291bGQganVzdCBkZWxldGUgdGhlbSwgSQ0KPiBkb24ndCB0aGluayB0aGV5IGFk
ZCBhbnl0aGluZyBtZWFuaW5nZnVsIHRvIHRoZSBmaWxlLg0KDQpXYW50ZWQgdG8gd3JpdGUg
dGhlIHNhbWUuIFNvIHllcywgcGxlYXNlIGRyb3AgdGhlIGxpbmVzIGluc3RlYWQgb2YNCm1v
ZGlmeWluZyB0aGVtLg0KDQoNCkp1ZXJnZW4NCg==
--------------3mpXrqOU9qBlCbnDpJApEcG8
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------3mpXrqOU9qBlCbnDpJApEcG8--

--------------9qjkI40Z0XROARGoBKkzwvKS--

--------------CZ83FPaYMOMo2ijktxjWU9mc
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmoVOzwFAwAAAAAACgkQsN6d1ii/Ey+o
+wf9G9HPknTIxG3JaG7+v5G07KH22RJ4xu2Zxcpj1sBEZnwSOzfPgWjTLBYVxFRHwfq0/EyzsxwZ
+ZEnPIu0BA2LesO7YLg1riUqa7EznjwuXxadC3Pe9+E/Ir7R/fp44YcfOOykrGXxjxGRLoPYQEvt
FDdn7o7Qgbjo+BzG5RyWeoPFIuF3uiGSF+yVcsTf+c/gSyxxU6b2ND6Yc8IVex4FTqwYKBZfIa5q
571DDjU9CJ4dvy5na7FxQOXsAN/K6Qt9x0sD+Pxe5FIfynN4X86+Psgb+mN/NmelkyD/eC1sVXwJ
mXGEzb4AHXlDQlONSgCq/CpSlXBGwWY/a1KXPpP9Lg==
=p3R3
-----END PGP SIGNATURE-----

--------------CZ83FPaYMOMo2ijktxjWU9mc--


From xen-devel-bounces@lists.xenproject.org Tue May 26 06:23:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 06:23:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319601.1587085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRlC9-0005uP-SI; Tue, 26 May 2026 06:23:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319601.1587085; Tue, 26 May 2026 06:23:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRlC9-0005uI-PO; Tue, 26 May 2026 06:23:17 +0000
Received: by outflank-mailman (input) for mailman id 1319601;
 Tue, 26 May 2026 06:23:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wRlC7-0005uC-Tf
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 06:23:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRlC7-008yfl-9b
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 08:23:15 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a153c39-bab6-0a2a0a5309dd-0a2a450cab76-32
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 08:23:14 +0200
Received: from [52.101.48.41]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a153c50-62f1-0a2a450c0019-34653029e428-4
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 08:23:14 +0200
Received: from BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19)
 by MN2PR12MB4128.namprd12.prod.outlook.com (2603:10b6:208:1dd::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Tue, 26 May
 2026 06:22:52 +0000
Received: from SJ5PEPF000001CA.namprd05.prod.outlook.com
 (2603:10b6:a03:217:cafe::22) by BY3PR04CA0014.outlook.office365.com
 (2603:10b6:a03:217::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.11 via Frontend Transport; Tue, 26
 May 2026 06:22:52 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ5PEPF000001CA.mail.protection.outlook.com (10.167.242.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.7 via Frontend Transport; Tue, 26 May 2026 06:22:52 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.41; Tue, 26 May
 2026 01:22:52 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 26 May
 2026 01:22:52 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Tue, 26 May 2026 01:22:50 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ehJHvpXzD7WIvvFuJcG0IYZ8Z1AYGsEH6QqWnKMWzZMsvFnSq07ETFf7XQbpQccI/ppSQgLTivaqlb7kKasI9HL+RN0xjzl4txyCnRkcuLoPQctwd2GBgMKIJoklNfKIQczoiBYzC3oAJa+NjD4+6F/Mcb5d2BCfFU+9anJr7K/o+VGUoMFDpI7YIS4U2N6Th7ONg6puZ8hCmOQNvbgwqQlbkDWl9D6ruVghx3vM+bJumW7lKqdR1Wzb0UMVtyGtIdx6USJBlzaiiOjbIdh2jwPWM0voiDrzlxqnU1ml8EK1YjEyfhjDCddEwHLgsKVxbvifMLDKHqnzLAJt1Hq3Ng==
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=UkCzIeLvWAh14bJC5YgrJi7rKh2KALBGsS7powMCtXQ=;
 b=Cs9ffql22BTLbj8GBVCfsJalxYyd5+CJ/0oxc8WEmfp8z82o+CUb/V0nA8W8hufys/snaE4NrgnPPMyVzSLQyjs65oWU+n2h/lcmLb5xR4/PZ5rtPUKWpM3ehkWbdy2VQ2aXROA7cuS4/dfWxckslyFMmSrcRh8DURhvjH0ev9DbNUZljaG8cXRCfbESRZIbItG6P1Sns9WAeW8em3CVGeipl66BRd615qWXIRIXWAQrXzdIZQtYTD+Y/c1zRD02PMzU8MylkU3G7rJuupNSaSKrtv/hQOTrN8nIPuVA1zmX6bVeAwD4cGVZ/MUDFD5may1NcHsDQgVc3YT9WFYChg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UkCzIeLvWAh14bJC5YgrJi7rKh2KALBGsS7powMCtXQ=;
 b=WUkug0u4VvoKcIKSejwz7rRZ9V0+uSs38Ma8l4NU+jy3temdErTUUlvcWjqYdRdKR4iGTpZq4uEI4GOCeJLklzEwnp3vvn0F5/kUbK5W5mC5Ah+4UBs2JRJLPqfH4iCggPPihy8D8EwLKpnCitex11ZN+NZMOvjGE92hNz7ZbrI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <e6a02f83-5db6-4ddf-918e-753202c4d9c4@amd.com>
Date: Tue, 26 May 2026 08:22:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] libfdt: fix UBSAN null pointer in fdt_property()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, David Gibson
	<david@gibson.dropbear.id.au>, Baptiste Le Duc <baptiste.le-duc@vates.tech>
References: <cover.1779712171.git.oleksii.kurochko@gmail.com>
 <248482e608157a7156f7bb6d8a809540a50f3f86.1779712171.git.oleksii.kurochko@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <248482e608157a7156f7bb6d8a809540a50f3f86.1779712171.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001CA:EE_|MN2PR12MB4128:EE_
X-MS-Office365-Filtering-Correlation-Id: 49218356-3030-4e02-63fb-08debaef37ac
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|4143699003|11063799006|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	d8JKVnLTv7VLoMYnVB8UoWHa8c5YchRqNwaasipnpHZQkaych7tz+Wok/Hjzaa6p2HuhVPilIGr38DttNFEq6X+IpYeRCEIBMeLun9xRpF7RNiISMz/QCp82TeCCxGPgoIVkq9z06dIsYOvXa/oE56VC4IVP+Kdcs6jxv6UvKyWWA/SD6WQOSnNaQKPKWwO3yx4uIC8Yg1RYnIUyKQdQJW5JMePUlZO1O1//CgfyMTlpZOs5wqAHyhr4IX0bew/MWFWqNyJ74RpVn2tbEONAs9JeYJE8co5B2VXhtei59IYlsdV7hrntFsg0JK6lb6Dl+qkjF2h8Nm+SeqK8Jq90MV+3cY6rkDE3Gf9a5DuAUUD+ZnGDQtQCgbSVmzjwxupkAK9mj0HEuiDGtkwZgCLhLY7mT6O7sBXITg50f3zyytnOYUg3KUq7wBrD68DgoAyKnr3NHdsx0Pjsq0vi0+M2i3vvKqWjc423RIgeYs3wOHKwlbp8+jxNfc6Kb9so32ALo7uqFoOB1PMl84uny8d05K4XO8eWCDW0u7JyclVEzyIb9JRJ7kxIxseAkmbl9g5rWXzGlBcYtWHAY27hcukYhcLEmxrn5VtYisZsdBpmWbFRUYGgp2zcr+GVNLERPzqjVoHpmLaghbZ9q7nHwgNAgtabzeY4qsL2DuGYKqmdhIW5RWpPVMvUzKXFzS1UQc+Qn15dRLlzhbhsf4XFm6f3PhChg1gIgS8DrRhel7lHD2s=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(4143699003)(11063799006)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	D9HxSrRsw0hpI+Onec0eNF0sxE3Cl2l+OzvHBi13/JO4vZwJHhW9rFSmmK7EA5YFN1LRk2V+TtS75MQn5klBnU6lpxOMNGgk4N8GH8lRbXGEsczN8mibO2rPL71+fe6xjq7ZSleWEBebSOLUXar9GaSUPiu+yFHENRQV+3Scd39TSAo2Z8it2qL4rbQ/wh1Z4ypZlOGihPMtGHdt9BPR6S35D1aw4Oewnx4sN5g+TjEFXYseByH3gwuf7WC31kNifl2F0pzzqLF6xCCf7bGjQktH4aMFo0e2bpk9MMYk/Plv+uiCauTwIZVzpQNkjDhbqG5fql67oeelhIq8RztYBZvdIIgNeKgcsw9dBRJ16J8tTN17R4CbH+ORXB5R35I8RloX94eaPqTrBrfdCVh37Nw9Z83f6YGU/Nzw7Rsx5Dx7UiDHhzg7VmdGzfFzjxIS
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 06:22:52.6544
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 49218356-3030-4e02-63fb-08debaef37ac
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001CA.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4128
X-purgate-ID: tlsNG-d25034/1779776594-DA368CF5-7730A008/10/73395122804
X-purgate-type: spam
X-purgate-size: 1032



On 25-May-26 15:20, Oleksii Kurochko wrote:
> fdt_property() unconditionally calls memcpy(ptr, val, len) even when
> len is zero and val is NULL.  This is a legitimate calling convention
> for adding empty FDT properties such as "interrupt-controller", which
> carry no payload.
> 
> However, compilers that treat memcpy as nonnull on its pointer arguments
> will fire UBSAN before observing that len is zero.
> 
> Guard the memcpy() with a check on len so it is skipped entirely when
> there is no payload to copy, bringing the code in line with the
> nonnull contract.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> Origin: git://git.kernel.org/pub/scm/utils/dtc/dtc.git f57e7df35df4
> 
> Fixes: f0ea06558068 ("libfdt: add version 1.3.0")
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Baptiste Le Duc <baptiste.le-duc@vates.tech>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Tue May 26 06:26:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 06:26:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319609.1587094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRlFa-0006Pw-9W; Tue, 26 May 2026 06:26:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319609.1587094; Tue, 26 May 2026 06:26:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRlFa-0006Pp-6x; Tue, 26 May 2026 06:26:50 +0000
Received: by outflank-mailman (input) for mailman id 1319609;
 Tue, 26 May 2026 06:26:48 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <frn1furkan10@gmail.com>) id 1wRlFY-0006Pj-HE
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 06:26:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRlFX-00GtEX-Qm
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 08:26:47 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <frn1furkan10@gmail.com>)
 id 6a153d18-2eae-0a2a0a5409dd-0a2a45099146-40
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 08:26:47 +0200
Received: from [209.85.218.43] (helo=mail-ej1-f43.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <frn1furkan10@gmail.com>)
 id 6a153d27-2497-0a2a45090019-d155da2bc11d-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 08:26:47 +0200
Received: by mail-ej1-f43.google.com with SMTP id
 a640c23a62f3a-bd4d7f4fa02so1717615666b.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 May 2026 23:26:47 -0700 (PDT)
Received: from [192.168.1.109] ([88.230.42.151])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc314c8absm462106666b.22.2026.05.25.23.26.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 May 2026 23:26:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779776807; x=1780381607; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=HlsrOlMlyZiLwjwy1IVB+Xt4WWrBf3Zith9THEI1emU=;
        b=Qf4ME3+pmnI+Y1IS0OtAU7heVM3lO6ho0DEEtW5/dffoOdhTF3JOkYshKQg+Ld9neG
         McVR5gM++33nA5W+maW2CNlNX242jHWY5KW+QeJUJLyg6ATnMIm4iLeTMjnEVsfExrpd
         AK3uhiV1uU0CaI6cgFue71JvgOB8idHjs5pUZ/fDfgTtS3znZYpJYEcN67ltfy15WerZ
         NpFF91fVdfPlTRuLgg8bVWbt7h4fm6JAqDbhL9bD4ZVSTloC2OgithGGccePJ/X7oDA4
         tcyGbgJ1LzkfizKe1GD/1rDUpUx8XZ759GW9c4CCIKcmg+fMHj/kUz7yNuwtrlk+F+Ar
         7f2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779776807; x=1780381607;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=HlsrOlMlyZiLwjwy1IVB+Xt4WWrBf3Zith9THEI1emU=;
        b=qefFbqo37FHHq+D4XqL0UopwIt5we6UU9jwJlPDCCU/QHQtvrMK10iwLObUqGQSp7y
         byrCeo0qAdYdCIP6t5C9xEoxeLUneCBRVgUvuLQUxw3Kjm157E4+rFtUOKSVXI95tmT2
         zufI56lUtfy9ZNu4Cmydrn131x1gPPr4AobumjX8Yj+G511b0lpzP8ZNDutrDwlZrR3C
         JuVaNrDXzljYXw1v0+44HORA0YnnXdTOUnWCChvCUIEem0fZaRi3moiOGwo21qWo3Yol
         dsUR82BaC1XaSxHT9M4SgVvpCedRNap/gXkcfsm1QooV3y5hoCPg3jMVBj3bjFqk0gu7
         bAAg==
X-Gm-Message-State: AOJu0YyYJ2CeB0Eq92sPtfxf4g/kUYMcO/3JgUp3LtFMKUWCEHp3aH7y
	RComA2eWVNR2d4BzX4kCnBYTduMS+9uNVug0aOxMkws3LzQOfXKI1mvh
X-Gm-Gg: Acq92OEqGyAZdrn0xbBfaJt5b3P5uOUkSmQ9jza/9cfd3SMgg8d8TJty6XPkxkN02UD
	JnDRKCc5fqpfU7c2SC++SOybrmWXM7aB0aop3CUBNhsY7Ix0ZJvdNuX+jySnVrZvHzoIZsiPJV0
	DSHot+qHpb0JYclq/y2TgfkH2FOKwuYmS/NsC4uyB0z34wd+BQDdWRxk+xZtwHn5bmz+VJD3KGB
	JZ0gPWUg13IUY7KikOBxX+Em2loRS8RxX1KSFmhEMwOEAiwov5PNzU8E0AmtFzt6kgTkVNu7Q+J
	qC/kCopEGZ1ssLZECw4oL33PUen98sI8S8dHLsN9KxGW0zrz0BPLfQrGQSknaJqnLlVmkBbAinD
	+nLWvzigmjUzQN9ICSOlzFHi9ydADqYVjfA7QjgEnR/nisvZw3OzommbMpWrQUdJ4Dl6NU5Ix49
	x3oiyLe1JWiweNWST2r701kACkITR1Vg==
X-Received: by 2002:a17:907:c06:b0:bd4:6da5:d5b2 with SMTP id a640c23a62f3a-bdd23cfc4d1mr944315466b.1.1779776807233;
        Mon, 25 May 2026 23:26:47 -0700 (PDT)
Message-ID: <ee6892c3-db90-46f2-b245-b0b377ee8de6@gmail.com>
Date: Tue, 26 May 2026 09:26:41 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/sched: fix stale file path comments in common/sched
 directory
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, dfaggioli@suse.com, gwd@xenproject.org,
 stewart.hildebrand@amd.com, jbeulich@suse.com
References: <20260525102539.27050-1-frn1furkan10@gmail.com>
 <ahQrQnWMiWTE1joR@macbook.local>
 <1ba4ffba-e9e0-4858-b3b9-d45c950894c3@suse.com>
Content-Language: en-US
From: =?UTF-8?B?RnVya2FuIMOHYWzEscWfa2Fu?= <frn1furkan10@gmail.com>
In-Reply-To: <1ba4ffba-e9e0-4858-b3b9-d45c950894c3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779776807-4236CA53-54663E49/0/0
X-purgate-type: clean
X-purgate-size: 826

On 5/26/26 09:18, Jürgen Groß wrote:
> On 25.05.26 12:58, Roger Pau Monné wrote:
>> On Mon, May 25, 2026 at 01:25:38PM +0300, Furkan Caliskan wrote:
>>> Commit 6cb4b01c03 ("xen/sched: move schedulers and cpupool coding to
>>> dedicated directory") moved the scheduler files from xen/common/ to
>>> xen/common/sched and renamed some of them, but did not update the
>>> in-file path comments at the top of each file.
>>>
>>> Update the comments to reflect the current file locations.
>>
>> FWIW, if we have to modify those lines I would just delete them, I
>> don't think they add anything meaningful to the file.
> 
> Wanted to write the same. So yes, please drop the lines instead of
> modifying them.
> 
> 
> Juergen

Thanks for the feedback. I'll send a v2 with the lines dropped. 

Furkan Caliskan


From xen-devel-bounces@lists.xenproject.org Tue May 26 07:53:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 07:53:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319627.1587104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRmbA-00014I-7J; Tue, 26 May 2026 07:53:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319627.1587104; Tue, 26 May 2026 07:53:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRmbA-00014A-4E; Tue, 26 May 2026 07:53:12 +0000
Received: by outflank-mailman (input) for mailman id 1319627;
 Tue, 26 May 2026 07:53:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <frn1furkan10@gmail.com>) id 1wRmb8-000144-Pg
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 07:53:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRmb7-002dKg-LW
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 09:53:09 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <frn1furkan10@gmail.com>)
 id 6a155156-2eae-0a2a0a5409dd-0a2a4503df20-48
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 09:53:09 +0200
Received: from [209.85.218.54] (helo=mail-ej1-f54.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <frn1furkan10@gmail.com>)
 id 6a155165-672d-0a2a45030019-d155da36d54d-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 09:53:09 +0200
Received: by mail-ej1-f54.google.com with SMTP id
 a640c23a62f3a-bd6460b0d11so1802271066b.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 00:53:09 -0700 (PDT)
Received: from notebook.. ([88.230.42.151]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc5ece286sm469327166b.40.2026.05.26.00.53.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 00:53:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779781989; x=1780386789; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=g6eRFZO9V4PBQZFEyiFZAw6yCeJgapdJdBUGhAdLYgM=;
        b=mZJD56PSyZmKY48R7eclUo/PGkPpnHd6zdBHEryWo+pjxXElDb4mJF3ptQkY+BNIHK
         b1bRjd3YEaJScJ7fQKzLl+md5k4wwiCeQSDUKB1rayJKeu4l/ACHB1j+w0VE5HRZLLck
         ZU2Y0raYlLdKoWPhNujIQOrdEakOn69DPbWlvj6A6x8DJWF/4j6ONkqUvbOkXRwt9fre
         2yj94ujtfi89PCauQANAlqsz31vSltWSWMGz91iV74f9PyZSll/iKO2bNlR1C3zk3Ek6
         risO1qNTsriO3wzLuMAI1fj09PyIjf89BEU8l2zZcyPIxyUQ5EZ8/m+vxR+169in5TZ7
         5qjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779781989; x=1780386789;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=g6eRFZO9V4PBQZFEyiFZAw6yCeJgapdJdBUGhAdLYgM=;
        b=kxWbkls5fkrgH0hOj6Crm4tLNUaAdRSf6IAl8crAFyUgncb7sk8n1QyANS7Fz2QOAl
         ieCXC+o4DdTU9kO7cpagm5erTPikRjc1WrQtp1r3zFpM2O9PyvFEewijrGlfqzGyvV9r
         wQk2eBATQ1zG0BzjcEV6GdZZg3Lc4XSg0FnQjy8KJlBIOUBQ7AVePPTNa/5F+snzrFLZ
         Nu3KUXqCqGuVzaxz9jLha4+5Jjb1lUwE/0LWE/9GYUO8Zzc4RqqoEMTiH02oehUIJNBA
         cIMQxGHcKLQBDIjao10tI0s0L7uUi3pDAuvVKu3LTZUV/3KNF3Io83tToV6rkMD/hSoO
         NYew==
X-Gm-Message-State: AOJu0Yy/W6IRvhYgjgHusUcS1B4BwNhkj8ytM3DUkJoC1qTvcyOrAgms
	OQq/XHre2HJHLCf1lceEPUg+qwnlfDWXC0cyi2DdaIXzHd/6cxQrX0YN0HkevQ==
X-Gm-Gg: Acq92OHQ1I9yJ5QX0nij1YJj5/prq2ZmPrOV8xy7086T9hy2RwEBJA/lq2VXl9VcED+
	a11RdD7FdEIerJ3f4cVFkDFZE394FsNYyRnGzwOLf25NjgEddPAAJMTQ5SL7B9duAFLVsVI1Ebv
	r24PybJ81J/8nPYDpcIfEn/iXHzGbdVo1GEens4VxtdQvnlRNCebBk07oolDbh9Ak02FazwmNUo
	uMzvJ8Cs1SCNBgEy6rKHQqiggAdWufdjH7RbivEQEyuJG/fZsUwGaFKQbOu2oeYKGkKzz/NnZYp
	O0SfhHv0evTtPo9mSzKeg/Mk1nBGKIPkyy/bXM4GysAgdARkD/45+ngVFqeCGqQng2iadITX+5h
	FWfG7p5RHR4LFdwo3hgeB45GSj9q+TEyUa5IAlK4Vz3Z1Pg72t8k5Ot7vkI4lamP4Qi/u1ll5XY
	57Y3E8EkNsXT09mGpOWukuKZgNc3ZmNrhtVQ==
X-Received: by 2002:a17:907:3e0c:b0:bd4:d0f2:67b4 with SMTP id a640c23a62f3a-bdd25fdcb0cmr1089432866b.34.1779781988771;
        Tue, 26 May 2026 00:53:08 -0700 (PDT)
From: Furkan Caliskan <frn1furkan10@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com,
	jgross@suse.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	stewart.hildebrand@amd.com,
	jbeulich@suse.com,
	Furkan Caliskan <frn1furkan10@gmail.com>
Subject: [PATCH v2] xen/sched: remove stale file path comments in common/sched directory
Date: Tue, 26 May 2026 10:52:36 +0300
Message-Id: <20260526075236.14265-1-frn1furkan10@gmail.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260525102539.27050-1-frn1furkan10@gmail.com>
References: <20260525102539.27050-1-frn1furkan10@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779781989-3A179938-86F1FD74/0/0
X-purgate-type: clean
X-purgate-size: 4066

Commit 6cb4b01c03 ("xen/sched: move schedulers and cpupool coding to
dedicated directory") moved the scheduler files from xen/common/ to
xen/common/sched and renamed some of them, but did not update the
in-file path comments at the top of each file.

Remove the comments rather than updating them, as they are redundant
information already conveyed by the filename itself.

Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
Suggested-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Furkan Caliskan <frn1furkan10@gmail.com>
---
 xen/common/sched/arinc653.c     | 1 -
 xen/common/sched/boot-cpupool.c | 2 --
 xen/common/sched/compat.c       | 4 ----
 xen/common/sched/core.c         | 1 -
 xen/common/sched/cpupool.c      | 1 -
 xen/common/sched/credit.c       | 1 -
 xen/common/sched/credit2.c      | 1 -
 xen/common/sched/null.c         | 1 -
 8 files changed, 12 deletions(-)

diff --git a/xen/common/sched/arinc653.c b/xen/common/sched/arinc653.c
index d8a5380557..32c596a23c 100644
--- a/xen/common/sched/arinc653.c
+++ b/xen/common/sched/arinc653.c
@@ -1,5 +1,4 @@
 /******************************************************************************
- * sched_arinc653.c
  *
  * An ARINC653-compatible scheduling algorithm for use in Xen.
  *
diff --git a/xen/common/sched/boot-cpupool.c b/xen/common/sched/boot-cpupool.c
index 03be73efdd..3ffe1f26bd 100644
--- a/xen/common/sched/boot-cpupool.c
+++ b/xen/common/sched/boot-cpupool.c
@@ -1,7 +1,5 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
- * xen/common/boot_cpupools.c
- *
  * Code to create cpupools at boot time.
  *
  * Copyright (C) 2022 Arm Ltd.
diff --git a/xen/common/sched/compat.c b/xen/common/sched/compat.c
index a02204ec9a..5574393cb4 100644
--- a/xen/common/sched/compat.c
+++ b/xen/common/sched/compat.c
@@ -1,7 +1,3 @@
-/****************************************************************************
- * schedule.c
- *
- */
 
 #ifndef __COMMON_SCHED_COMPAT_C__
 #define __COMMON_SCHED_COMPAT_C__
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index a57d5dd929..8e2b75bc35 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -4,7 +4,6 @@
  * (C) 2004      - Mark Williamson - Intel Research Cambridge
  ****************************************************************************
  *
- *        File: common/schedule.c
  *      Author: Rolf Neugebauer & Keir Fraser
  *              Updated for generic API by Mark Williamson
  *
diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index f5459c2779..081e1053eb 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -1,5 +1,4 @@
 /******************************************************************************
- * cpupool.c
  * 
  * Generic cpupool-handling functions.
  *
diff --git a/xen/common/sched/credit.c b/xen/common/sched/credit.c
index e9a91d11c3..07656a57e9 100644
--- a/xen/common/sched/credit.c
+++ b/xen/common/sched/credit.c
@@ -2,7 +2,6 @@
  * (C) 2005-2006 - Emmanuel Ackaouy - XenSource Inc.
  ****************************************************************************
  *
- *        File: common/csched_credit.c
  *      Author: Emmanuel Ackaouy
  *
  * Description: Credit-based SMP CPU scheduler
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index 75316d42b7..77475ee363 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -3,7 +3,6 @@
  * (C) 2009 - George Dunlap - Citrix Systems R&D UK, Ltd
  ****************************************************************************
  *
- *        File: common/sched_credit2.c
  *      Author: George Dunlap
  *
  * Description: Credit-based SMP CPU scheduler
diff --git a/xen/common/sched/null.c b/xen/common/sched/null.c
index c8e327e3cd..5f15779b07 100644
--- a/xen/common/sched/null.c
+++ b/xen/common/sched/null.c
@@ -1,5 +1,4 @@
 /*
- * xen/common/sched_null.c
  *
  *  Copyright (c) 2017, Dario Faggioli, Citrix Ltd
  *
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue May 26 09:42:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 09:42:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319655.1587113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoIl-0006dv-5Q; Tue, 26 May 2026 09:42:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319655.1587113; Tue, 26 May 2026 09:42:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoIl-0006do-2S; Tue, 26 May 2026 09:42:19 +0000
Received: by outflank-mailman (input) for mailman id 1319655;
 Tue, 26 May 2026 09:42:17 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wRoIj-0006df-4W
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 09:42:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRoIh-000YIo-G7
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 11:42:15 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a156ae5-5cb7-0a2a0a5109dd-0a2a450aebe4-30
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:42:15 +0200
Received: from [209.85.218.50] (helo=mail-ej1-f50.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a156af7-56b3-0a2a450a0019-d155da32c1ce-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:42:15 +0200
Received: by mail-ej1-f50.google.com with SMTP id
 a640c23a62f3a-bd4d7f4fa02so1744530566b.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 02:42:15 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc264dd50sm478457266b.4.2026.05.26.02.42.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 May 2026 02:42:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779788535; x=1780393335; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=CiIkBXIJChBgvxePvaL5HEoJQwCXvvQHfO3Ft2EiQN4=;
        b=IVdogSmSAyU3icwtdFE/Fk6uLKkLNgHDhjAR3WPRtQmx3PckyDkS0N8Nf0GVSLgYIy
         zKQwRhEnVJsJohSiy64rjPevd82509xqnwkE7SHZ+ArQXyLePWiy2lDtKuSPDP7MpVEK
         CDGFhe87VZso8kNrO0haiGvia9xDvjv/XGuXJR/7UrP20pmhhOyweG/6zl44QNMgnbwj
         l0P6VF9GPy/6Ji9zkp3wP2vb/y8ON3J0X4U2PJZqzbZWA+Sg/OTO9ZW0ALm0c+ypJFC1
         CoMJJwt4DkZncwiWixy3pvYtvk2DocM6jTK8W6XPRg1oW5c5UAOESvHyZtYEFa90aRVX
         /lGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779788535; x=1780393335;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=CiIkBXIJChBgvxePvaL5HEoJQwCXvvQHfO3Ft2EiQN4=;
        b=B4Cd0DmyNMH9A9hDEpG4TTPSPGIDytphLGhrrlf0WD6EsUl37SmJh/TYAKMtlkRnTt
         g7ssjRRvWYyMhBF/55FGCI2/EAfPhJiAiBovyGC4vSULazxYe1k+u0RhdbdP5t77eRFv
         oL5xc1xwpguYe3eW44h57eN+X7msixcOM7tzHE0++uAzaKHVQNq3w3Xh3FEFjiJ9vRSx
         rQgiunUDbmgt3EgR3o6YooFWDmyHGtosQiYaD2tZVVrUtSoZjbt9QWaxxPDPDuLY006g
         FiCq8Hr1E2kXXACGUlhrP2aB+ef2JRdmHzaEeGzwMg0pbiVgiNr/7l6deMjuHkqZGRBH
         qTuA==
X-Forwarded-Encrypted: i=1; AFNElJ9j5zIFuDPlJIH7kOmTYAPjwknV504ooxWMtSD3PDZukeN2xkVdoaWppC6d6GtycgI2Wqn3BozsywQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxhrPjDkl44FvatJnyg+pxc4cW/QAf937ggvF2cvbXGOVic8OS/
	lQ6VIJkd8GPEougZYE9etsMlwDwHxMfViU51hbe8FbEcuM4I1WN2/zHvWSlyQ/YYZIk=
X-Gm-Gg: Acq92OGMhK6A2Hrcx0cs+WrOqlXsJntEGMxwExAK5SH1RNLJ4AqSrU8MXobzAZsS1U+
	02catVJ4nmIeu/AzEJi1VzpjKXwCwmaAinzCaZSZFXFMr1lLNj2JCBqvyTU+wlSxC0QgfrI6uBv
	CoxtYlNowNC89twgUCoqlCRRLYK+P8nQHLvTMBSNjmQpm9BTWgCRFa89BW2aVfnIkrK8wP0rjeA
	unhdQlBf7Va9ri632Hni97QuKfNP/IG9Srh4jh1nthlwnIO7Wom0zWu8ysDkciEuap2hoals8GS
	UpaaaO6NlUoBWqjcCSejxE+KjQLOvxH0usYRZOedjfz4WqtN4HMTSU7bRw6xJGe23vsAMJBbtSJ
	cTqlpuRl2iXp0iCqygVcsuCZmBGnOOidTv7rpQvMEmAB0R/VRhlJ35XnZKnmeesAXJViK7geLJR
	OjgpEcY/l24BCk5fLOHY6TUsCT9r+BbdRuQHaPeJ+y6v+xf1tQAMgJOEC2dAgYuBGZgywaGcKgr
	85OBJ1dmDrddUAso5ntOVm03QPInp5/RJHOAGTAkUALsKGdwzoIuomOqavvsfn4
X-Received: by 2002:a17:907:d01:b0:bd4:f3e5:b0f6 with SMTP id a640c23a62f3a-bdd26cd21dbmr1088623766b.28.1779788534716;
        Tue, 26 May 2026 02:42:14 -0700 (PDT)
Message-ID: <121f8035-2e84-4524-8b40-2e68eb2fadc9@suse.com>
Date: Tue, 26 May 2026 11:42:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: balloon: Replace sprintf() with sysfs_emit()
To: Yash Suthar <yashsuthar983@gmail.com>, sstabellini@kernel.org
Cc: oleksandr_tyshchenko@epam.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20260517133817.29691-1-yashsuthar983@gmail.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20260517133817.29691-1-yashsuthar983@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------FeGqyLm4tAAjnvamuskopnoe"
X-purgate-ID: tlsNG-4011c0/1779788535-7EF8B8B7-1ED87AB8/0/0
X-purgate-type: clean
X-purgate-size: 6347

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------FeGqyLm4tAAjnvamuskopnoe
Content-Type: multipart/mixed; boundary="------------5YT4bk8ahMZmMy0XYwSWDDAM";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Yash Suthar <yashsuthar983@gmail.com>, sstabellini@kernel.org
Cc: oleksandr_tyshchenko@epam.com, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Message-ID: <121f8035-2e84-4524-8b40-2e68eb2fadc9@suse.com>
Subject: Re: [PATCH] xen: balloon: Replace sprintf() with sysfs_emit()
References: <20260517133817.29691-1-yashsuthar983@gmail.com>
In-Reply-To: <20260517133817.29691-1-yashsuthar983@gmail.com>

--------------5YT4bk8ahMZmMy0XYwSWDDAM
Content-Type: multipart/mixed; boundary="------------UUOF08iIMyltGRAqPIxATx6q"

--------------UUOF08iIMyltGRAqPIxATx6q
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTcuMDUuMjYgMTU6MzgsIFlhc2ggU3V0aGFyIHdyb3RlOg0KPiBSZXBsYWNlIHNwcmlu
dGYoKSBjYWxscyB3aXRoIHN5c2ZzX2VtaXQoKSB0byBmb2xsb3cgY3VycmVudCBrZXJuZWwN
Cj4gY29kaW5nIHN0YW5kYXJkcy4NCj4gDQo+IHN5c2ZzX2VtaXQoKSBpcyB0aGUgcHJlZmVy
cmVkIG1ldGhvZCBmb3IgZm9ybWF0dGluZyBzeXNmcyBvdXRwdXQgYXMgaXQNCj4gcHJvdmlk
ZXMgYmV0dGVyIGJvdW5kcyBjaGVja2luZyBhbmQgaXMgbW9yZSBzZWN1cmUuDQo+IA0KPiBT
aWduZWQtb2ZmLWJ5OiBZYXNoIFN1dGhhciA8eWFzaHN1dGhhcjk4M0BnbWFpbC5jb20+DQoN
ClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCg0KSnVl
cmdlbg0K
--------------UUOF08iIMyltGRAqPIxATx6q
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------UUOF08iIMyltGRAqPIxATx6q--

--------------5YT4bk8ahMZmMy0XYwSWDDAM--

--------------FeGqyLm4tAAjnvamuskopnoe
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmoVavUFAwAAAAAACgkQsN6d1ii/Ey/G
Ewf/ZLb62AHM1k25UKR5ULn5eWdTinI/6TSR0GU53OmI+88XsxuOXg8UXSTqrzzQvz76v3tG0PvX
3V/Zu+SMXGWIyj6zfwQC1j39YJ7+iF47S3slE6UKXoIVdih73fHOFhD+NQ/pW6PCN5uUbKWFozmI
grkg/nDi7OriKvUcsj6zB9rERDqA/SuVpYsk2xLFrMpbmCFauURZvHgCge9QjwI2aOl9Uei68MR/
PYN46Jz4r9zhLlOE7Bit9wG3yWIXk5X68aUOdTZ0GLShsdHaDfYguiYSg3xRgCsN93ziynE5QTQ1
II0kUh6oSXqGikN62FmdMTEUGq/sLGa64ngbGcQz7A==
=gmQO
-----END PGP SIGNATURE-----

--------------FeGqyLm4tAAjnvamuskopnoe--


From xen-devel-bounces@lists.xenproject.org Tue May 26 09:43:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 09:43:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319666.1587130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoK7-0007NP-Qz; Tue, 26 May 2026 09:43:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319666.1587130; Tue, 26 May 2026 09:43:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoK7-0007NH-Ni; Tue, 26 May 2026 09:43:43 +0000
Received: by outflank-mailman (input) for mailman id 1319666;
 Tue, 26 May 2026 09:43:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wRoK6-0007D9-WF
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 09:43:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRoK6-00C7fR-CA
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 11:43:42 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b46-e002-0a2a0a5209dd-0a2a45098e94-30
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:42 +0200
Received: from [209.85.221.46] (helo=mail-wr1-f46.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b4e-2497-0a2a45090019-d155dd2ec0a5-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:42 +0200
Received: by mail-wr1-f46.google.com with SMTP id
 ffacd0b85a97d-4526a8170ceso5213617f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 02:43:42 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d70c51sm36522744f8f.36.2026.05.26.02.43.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 02:43:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779788622; x=1780393422; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CDSatSx8OrVXDk0o7wj5shH6txGUOWHFIUf5mWNv4L0=;
        b=TWsILB3LAnnFrJSxgdWZhQEt9yL1tCRXbBKjBG2R8hou2/Enw3Pc0OKhRdVP9OV63u
         WIDJHHoCH9/FgErxAOztFshqbegT4SgRb5ayu5ar/J+zfqZqyBt8d2nSwT2d0o6uVmjc
         np9uJpkVth+r1RqlwAWVfo/5pNuNS8FdkMMrin6c3wt1OAgC5FHDsSmOQDkv2l2H8e6R
         QURKRF5r7BcMdqnz9IwhaFXjIPe0CrJCngnvHPDzojpGR2K2DuG0KMgnsfgBeRUJvyts
         UpTsWyEU7HK4T5as0oHr56SZAHVvQ6GlLd/eiVzspkDlBOkOznGKoxVk+94yraYNa1Cp
         ZKpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779788622; x=1780393422;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=CDSatSx8OrVXDk0o7wj5shH6txGUOWHFIUf5mWNv4L0=;
        b=B6CmWA63zg18ER7m+Zc0SEOtoR45mkM6inte/PspvW36MskdaqcXsTQnzWR9MzP6m8
         +n9oTR/chqZsUOsycrOBExom1BSLxWkyPMFWJegvJe1H7opjFTtKaeV5Mrw3KWhMuluy
         H50ihQJPzKVkczW166KZ7OlqBUMxrBC0q4OwJnhnLhyNWHt3UONeSkr6EAKG5Yq6A731
         mo+B1V9ZO+yVk4CdG3+R72CKy6lK6mjNfjyOrXLZzrh6ekxEQMrM/lR+pqsaM9nT4M/g
         qR6pKaHnk02aq0wjk/QUURCgYvfN7UL/Lirh47cenHuqIAzmmyeEFJjwf75t4PF+eeWB
         5xYA==
X-Gm-Message-State: AOJu0YwHMVcmtFDJWP5ExGuReRmFMPR/I0g5iFCXnNJrcALmI02mP+G3
	OEPQ7ijy5mc12W0AS3JKBSSuosyK9INBH4DYSmVy8i68FrlcnOF59mLQBmEUWpV2
X-Gm-Gg: Acq92OGgkWhytvi93pOHazqIJnz/fYY7wZ6ebDMNqSNUIVRX8RdPutEQ4vdbJkjFxMW
	rroW7eg8ru8zKdZi3pWWy80Eb4ZuIJQk61cMhG+58zKKC8DPi9rxm1un2AD1bEpg/yKUbEI4d4/
	XL5TZtNeJDoYfN8+eVSEHJ/elaLysmNhF+t850RTYnD5Iiy/PKnofP+BCudTal5QWJUtf1BDZTm
	ZYejzZEv6bBsqCx/eawzK7NhhrDBxFNGChMh0mh1w3V+HV7F1RE29E7TK0qsZHrJhqPlTjqzwyY
	1Fa5KW4Jn5D7eGfRRdAiPdiJOpud5gUDWrovvLMX5Nzu/+dmlBtfnwT4NhaXkL7jyUqNSCNzsxM
	XXcNTu6dPlpD8T8npaCd1x/fFx0K4l50WYrpgBNof1HZi8j2Twop4PQqk2PMix+4gcrKdluuWYQ
	aJyXvzMcVsxHF7K3xtqa72EZBcF6Ai39n2XfXpW3II6IZuo49Gulid5hImY4qZGCtW+aKOhbKBh
	O3xV3KcaQQXWMrza1tsX227sQ==
X-Received: by 2002:a05:6000:41d2:b0:43d:242:b9bb with SMTP id ffacd0b85a97d-45eb36a7d34mr28920267f8f.18.1779788621742;
        Tue, 26 May 2026 02:43:41 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v3 1/9] libs/guest: Reduce number of parts in write_split_record
Date: Tue, 26 May 2026 10:43:12 +0100
Message-ID: <20260526094324.12286-2-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260526094324.12286-1-frediano.ziglio@cloud.com>
References: <20260526094324.12286-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779788622-89B7BA53-2F529E4D/0/0
X-purgate-type: clean
X-purgate-size: 1632

From: Frediano Ziglio <frediano.ziglio@citrix.com>

Small optimization.
There's no much sense to split the header in 2 pieces, it will
just take more time and space to reassemble them in the final
buffer.
This also avoids truncating combined_length to 32 bit in case of
64 bit machines potentially avoiding following record_length check.
The function become more coherent with following read_record
function.

Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
--
Changes since v2:
- change prefix in subject.
---
 tools/libs/guest/xg_sr_common.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/libs/guest/xg_sr_common.c b/tools/libs/guest/xg_sr_common.c
index 7ccdc3b1f6aa..86c148c62f3e 100644
--- a/tools/libs/guest/xg_sr_common.c
+++ b/tools/libs/guest/xg_sr_common.c
@@ -59,11 +59,11 @@ int write_split_record(struct xc_sr_context *ctx, struct xc_sr_record *rec,
     static const char zeroes[(1u << REC_ALIGN_ORDER) - 1] = { 0 };
 
     xc_interface *xch = ctx->xch;
-    typeof(rec->length) combined_length = rec->length + sz;
+    size_t combined_length = rec->length + sz;
     size_t record_length = ROUNDUP(combined_length, REC_ALIGN_ORDER);
+    struct xc_sr_rhdr rhdr = { rec->type, combined_length };
     struct iovec parts[] = {
-        { &rec->type,       sizeof(rec->type) },
-        { &combined_length, sizeof(combined_length) },
+        { &rhdr,            sizeof(rhdr) },
         { rec->data,        rec->length },
         { buf,              sz },
         { (void *)zeroes,   record_length - combined_length },
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 09:43:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 09:43:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319665.1587122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoK6-0007AJ-K5; Tue, 26 May 2026 09:43:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319665.1587122; Tue, 26 May 2026 09:43:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoK6-0007AC-HP; Tue, 26 May 2026 09:43:42 +0000
Received: by outflank-mailman (input) for mailman id 1319665;
 Tue, 26 May 2026 09:43:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wRoK6-0007A6-5f
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 09:43:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRoK5-00C7fR-Hn
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 11:43:41 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b37-e002-0a2a0a5209dd-0a2a45049844-48
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:41 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b4d-1dec-0a2a45040019-d155802de0ef-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:41 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-49050ff7cbdso27525345e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 02:43:41 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d70c51sm36522744f8f.36.2026.05.26.02.43.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 02:43:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779788621; x=1780393421; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=8y+d132LDfDZPbn8fBN0QhoTD5vF+0K1wLV8S0R4KmY=;
        b=TRsiv4An/MO4+SAkGaqfAS758tDvQjKhQUGDdQVATU6qMih5Xn/vZ402Ip3urfDnKk
         QoCybAHY0BchM/v91nIVnL3udxXR7iTW5Eu44/GDS0AnGtoeiELSjy9fMxPOpivgffoQ
         kuloQiftckgqc0nvpads57n2gnLJo3JWQPojJ1HaF61GUH4xpBQ0GcwJVf93nlVjVL4k
         p78Yki9YqAtOf1YK+MBldVuLifw/2xhkj/DYKb+VVCr0yt5RKhLCSeCFA7vpwzemTaQ9
         ey6ZQ4M+m76YNejeFhEbUh6ktg3igVCqkmtev8kGJY+8xd/l9BmQoJqJTn+mMYaYlvfZ
         Ud1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779788621; x=1780393421;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8y+d132LDfDZPbn8fBN0QhoTD5vF+0K1wLV8S0R4KmY=;
        b=MzK0VAvz9KMOBKSwpfI4IUmveuwMRAQusPvU6DpP/U5razNNn11CvUIyzJ1i1IrbJ5
         kLUWaDw979adbr5MAeBf+2h5SVT3bjnetMYb/F+WVwbzHVeubSbibK0xAskjdPPo8Dq1
         HixRDeVdSOnGZn3KlJZTxADUz9FL5x7/F4/PuTZz4t0oSD0ihpSIimfLx1T8zQ89Tub8
         9T8Ji7T4kVR0mwbQ+8kX31Q5QalIQ8EKRpOEJ7CRjcSWi3r5xXnQh90pI/AejRuOxBmJ
         q+QL7OP41yrHo8qWekHn1ZgfqOFogkNzubSUXg76qQSuDqBBj60KousTcFSeBg54hDRx
         hd4g==
X-Gm-Message-State: AOJu0YyR3JLugXLPazFmFZH+I8nTATZykyvrUp2SAxyEF5+YXTuMNiUe
	xNCVssSqNIK8XULi8mxfj1g32P4sPiIkUXj0IyTlhK6JexwU5Y5lnA8DeUAWaLym
X-Gm-Gg: Acq92OFksFiu+3X7f4ajXWDNGgv/epC13P2SExxTxpgsKk4cRe5SC/497j4Ur3ktidc
	HLWkWPX3RYxDGPP9Y4o5UBX6A5rhdTMgHFkHf2Llvpnv/7hsuphiiazKMTsvo8+ObReMukta32P
	YB6Ui7TvHVQDZhrTmh2IqPezgGvpFFCpad1ThRRJRkuJ+1HDp++VfUu4eX2/Ztw30Jnaqj3EfCQ
	yDJOwJrL0pIJM2qBSNbLmCCIX5HMHpVvc36zi9v8RbhJZZ4aEfeUemskeQmVmAHOFDuWikHFIP4
	RSSpzB4L41wjWUQlOALyU1WPA6D/QmSucs5uhXEEapXdTqA7kjCAUgWBNPt/Rz4bLcv97RM1pAE
	1odNL93kyReOQ8Zn9+GSlhK94+2ySYs2IIqMAYovF5ZVMPH9fMYXKQ8m4PqHGIOSCyXnIzTDKsE
	kxv2cOJZmrq8bPjxw0HO2VTGrXd+V1ulH29OjlpSpHYyl9stCb2oAablzuLMj+PF314hP76Wfbx
	Qn35AaknVBzCmAg2YhM2VDjzg==
X-Received: by 2002:a05:600c:4510:b0:48a:53ea:140b with SMTP id 5b1f17b1804b1-490428ddf15mr277061195e9.28.1779788620685;
        Tue, 26 May 2026 02:43:40 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v3 0/9] Minor xenguest optimisations
Date: Tue, 26 May 2026 10:43:11 +0100
Message-ID: <20260526094324.12286-1-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1779788621-285703FF-44400F57/0/0
X-purgate-type: clean
X-purgate-size: 1471

From: Frediano Ziglio <frediano.ziglio@citrix.com>

Reduce some number of parts passed to writev.
Avoid possible allocation sending data with writev.
Reduce number of allocations sending memory state.

Changes since v1:
- add commit to cache up to 4 pages in hypercall;
- add other 2 commits reducing chunks passed to write/writev.

Changes since v2:
- update patches commit prefixes;
- add other 2 optisations.

Edwin Török (2):
  libs/guest: allocate various migration arrays just once
  libs/call: cache up to 4 pages in hypercall bounce buffers

Frediano Ziglio (7):
  libs/guest: Reduce number of parts in write_split_record
  libs/guest: Reduce number of I/O vectors in write_batch
  libs/guest: Reduce number of I/O vectors in write_batch
  libs/guest: Use a single write_exact in write_headers
  libs/guest: avoids using 2 indexes
  libs/guest: fill directly iov structure
  libs/ctrl: Allows writev_exact to change iov array

 tools/libs/call/buffer.c         |  28 +++--
 tools/libs/call/core.c           |   3 +-
 tools/libs/call/private.h        |   8 +-
 tools/libs/ctrl/xc_private.c     |  26 +----
 tools/libs/ctrl/xc_private.h     |   2 +-
 tools/libs/guest/xg_sr_common.c  |   6 +-
 tools/libs/guest/xg_sr_common.h  |  12 +++
 tools/libs/guest/xg_sr_restore.c |  26 ++---
 tools/libs/guest/xg_sr_save.c    | 169 +++++++++++++------------------
 9 files changed, 128 insertions(+), 152 deletions(-)

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 09:43:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 09:43:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319667.1587140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoK9-0007ba-42; Tue, 26 May 2026 09:43:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319667.1587140; Tue, 26 May 2026 09:43:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoK8-0007bP-VE; Tue, 26 May 2026 09:43:44 +0000
Received: by outflank-mailman (input) for mailman id 1319667;
 Tue, 26 May 2026 09:43:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wRoK7-0007NG-SI
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 09:43:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRoK7-002r1O-86
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 11:43:43 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b43-5cb7-0a2a0a5109dd-0a2a450ab138-42
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:43 +0200
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b4f-56b3-0a2a450a0019-d1558034e988-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:43 +0200
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-4891d7164ddso49805485e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 02:43:43 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d70c51sm36522744f8f.36.2026.05.26.02.43.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 02:43:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779788623; x=1780393423; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hHsDpV0xKbf5s8BDyceiYE3WNS4vLthHrGXN9Aw5Zmw=;
        b=lKgZGTgVgvM0O4TdUfycV6I7gyFHE6W22dVPhdRRbDEuc71fAQAdPygqPBq3+5WRHt
         R7kLqwKnM2Nnwmj0zWdgRBpyJaJiDq6r7JmABEaTUaTqhx6tb4Xh3BIyAE3gWgPpm3lK
         IH4FGT+g+oQaQNJWEFFCBmD/CIGqA38Pg/wRASn1LCd0H2pXhVYVlxIKkYEt1CFcL4jw
         cRBZS4l51GPJzEL9flDSrfPmP87owp7A44swJYVi+1YZUz98WWTVmZN+CxTW3EPIhvSq
         JSMFD4FUaJMwKBXEirJE2u7cDFkK033DxrpfEOsmAMt6SaWx4Lny6FXbM7hBJTEV0q2N
         1+ng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779788623; x=1780393423;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=hHsDpV0xKbf5s8BDyceiYE3WNS4vLthHrGXN9Aw5Zmw=;
        b=m2keRCLBNI2Fyd8Dmp+Pu0hdx2QT3qyxwPZFM+GAxOXsh+k0d9If9K0f++fx/kWkJ3
         ukEwBzxFNmgJS8nL6xc3smj0KYCJwLKaNoehd+daPU4jXmpFR3WFYpkM5tFfmqfuSdy/
         X69tqYp4hMnTuYRN7QYdTK2jH0Z5tdaHoZFzXTpHGp3JnFGfDWYC1V01ywAGCVJOIixd
         L15ZtXD13mNco9hzy5bOuEMZ4TBXHqFLd/RZCV/24bJj4FPvqUiYgit6L/SehD+EvvpN
         zLAIJhkcvXOM6iIcQDbmfrpiBK0EzpzEfCB3NWo5BtcdTlx4VqMYIBV+jQhumE6BKC/8
         xKrw==
X-Gm-Message-State: AOJu0Yyp3Zsc8GAQLohpyt8pDWrJB6fQGz4okB6DAebTvRlDcO2Vx7zr
	Jt5+PJYyNq21odzz191ddHtH/QQinGfmCxbJmMNMwjWHS54xs6tDMuTWrdKAEUpi
X-Gm-Gg: Acq92OE6UtPMxZAUVK9dKpC7x2E8o3KHYoxFW2NFhRRvb6XtUpdFXnpd4FTRG86PYwI
	8089gnABl1leUael9VgARsMX00tFVS6LeaRJGPkloJhF6cSBCXCaVzf4+diuw683WpFWsmOreQy
	fXNd/NmxhdSECw/5mjNedSmR8EV/9V3vG3ThJ5MAjwkxFuM150m5Kjz2kG2D/4g9b+1RL/hsPFn
	X7lHz96C6qVKc61+o1I/L87d2G1sEYJdbm8NPuO3zzq0e+qGh/lkOxslzEX6gAD7xwg3v86sM0m
	1TevaeYVfBJmTpEyLvkdKK5g5vOVCXKjJG5fOOEmCIYS6NfGTmApW+SS0TFJUMhSdvyCmZHnqJ9
	XUE3eWdCTLWL5PsyHQweouq9t7a/YWkQF6OBA7/1kG+SVxoijWwSb9Nxp7b/d4R04Dgal+QCFYd
	os/iH8sWtQPn11VkIPH2RONmn2FLxQQC74Hf2P5zULaYRTJENlD+LOe3/zZc255grySGzTLqH+9
	YR0srPqTj0PuRNQ6clGw2jGyQ==
X-Received: by 2002:a05:600c:4f52:b0:490:4f91:5519 with SMTP id 5b1f17b1804b1-4904f91568dmr278511135e9.18.1779788622601;
        Tue, 26 May 2026 02:43:42 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v3 2/9] libs/guest: Reduce number of I/O vectors in write_batch
Date: Tue, 26 May 2026 10:43:13 +0100
Message-ID: <20260526094324.12286-3-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260526094324.12286-1-frediano.ziglio@cloud.com>
References: <20260526094324.12286-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1779788623-7397E8B7-AAF07042/0/0
X-purgate-type: clean
X-purgate-size: 2625

From: Frediano Ziglio <frediano.ziglio@citrix.com>

Small optimization.
Reduce number of pieces passed to writev.

Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
--
Changes since v2:
- change prefix in subject.
---
 tools/libs/guest/xg_sr_save.c | 35 ++++++++++++++++-------------------
 1 file changed, 16 insertions(+), 19 deletions(-)

diff --git a/tools/libs/guest/xg_sr_save.c b/tools/libs/guest/xg_sr_save.c
index 3b2c5222e429..1700d819051a 100644
--- a/tools/libs/guest/xg_sr_save.c
+++ b/tools/libs/guest/xg_sr_save.c
@@ -97,9 +97,12 @@ static int write_batch(struct xc_sr_context *ctx)
     void *page, *orig_page;
     uint64_t *rec_pfns = NULL;
     struct iovec *iov = NULL; int iovcnt = 0;
-    struct xc_sr_rec_page_data_header hdr = { 0 };
-    struct xc_sr_record rec = {
-        .type = REC_TYPE_PAGE_DATA,
+    struct {
+        struct xc_sr_rhdr rec;
+        struct xc_sr_rec_page_data_header page_data;
+    } hdrs = {
+        { .type = REC_TYPE_PAGE_DATA },
+        { 0 },
     };
 
     assert(nr_pfns != 0);
@@ -115,7 +118,7 @@ static int write_batch(struct xc_sr_context *ctx)
     /* Pointers to locally allocated pages.  Need freeing. */
     local_pages = calloc(nr_pfns, sizeof(*local_pages));
     /* iovec[] for writev(). */
-    iov = malloc((nr_pfns + 4) * sizeof(*iov));
+    iov = malloc((nr_pfns + 2) * sizeof(*iov));
 
     if ( !mfns || !types || !errors || !guest_data || !local_pages || !iov )
     {
@@ -216,28 +219,22 @@ static int write_batch(struct xc_sr_context *ctx)
         goto err;
     }
 
-    hdr.count = nr_pfns;
+    hdrs.rec.length = sizeof(hdrs.page_data);
+    hdrs.rec.length += nr_pfns * sizeof(*rec_pfns);
+    hdrs.rec.length += nr_pages * PAGE_SIZE;
 
-    rec.length = sizeof(hdr);
-    rec.length += nr_pfns * sizeof(*rec_pfns);
-    rec.length += nr_pages * PAGE_SIZE;
+    hdrs.page_data.count = nr_pfns;
 
     for ( i = 0; i < nr_pfns; ++i )
         rec_pfns[i] = ((uint64_t)(types[i]) << 32) | ctx->save.batch_pfns[i];
 
-    iov[0].iov_base = &rec.type;
-    iov[0].iov_len = sizeof(rec.type);
+    iov[0].iov_base = &hdrs;
+    iov[0].iov_len = sizeof(hdrs);
 
-    iov[1].iov_base = &rec.length;
-    iov[1].iov_len = sizeof(rec.length);
+    iov[1].iov_base = rec_pfns;
+    iov[1].iov_len = nr_pfns * sizeof(*rec_pfns);
 
-    iov[2].iov_base = &hdr;
-    iov[2].iov_len = sizeof(hdr);
-
-    iov[3].iov_base = rec_pfns;
-    iov[3].iov_len = nr_pfns * sizeof(*rec_pfns);
-
-    iovcnt = 4;
+    iovcnt = 2;
 
     if ( nr_pages )
     {
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 09:43:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 09:43:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319668.1587148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoKA-0007qA-C3; Tue, 26 May 2026 09:43:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319668.1587148; Tue, 26 May 2026 09:43:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoKA-0007py-93; Tue, 26 May 2026 09:43:46 +0000
Received: by outflank-mailman (input) for mailman id 1319668;
 Tue, 26 May 2026 09:43:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wRoK8-0007ZZ-Vg
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 09:43:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRoK8-002r0l-BN
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 11:43:44 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b50-2eae-0a2a0a5409dd-0a2a45019012-0
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:44 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b50-c1f2-0a2a45010019-d155802bed89-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:44 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-4891e86fabeso4806235e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 02:43:44 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d70c51sm36522744f8f.36.2026.05.26.02.43.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 02:43:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779788624; x=1780393424; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=syGgOjTw4c7Rut4emSk0LlZpDI5JJWx+QA9kfDo/79k=;
        b=eYSATg0MGpFfv+Ev2x3xDC1Utoz2RDAOsmxkt8onS9+57dnB7O0z/srcj2trvFioAU
         NYr7Wqddm8STbiVa7idDd5EGtVvG25v0pUScC0GIgQ8QESuI+GmDCr8nlaX2mWQFL1nV
         ZzSK8BWxBuoarRAaN88pop/skfcPI0fwyWqE/mzg8ljM7PBZ0mSylIm7tPqU+jUD6b6Z
         +rue7pMGIm1j0UNcNodldyqQDQw6vD9atK7HWyULPOgjD994Czrv8IyNL+7J9SeyN56/
         lExmh/3+Z+wxJOspRqeaDCN9ke5KGCnjzsnNHpQdH2V+nVJaoOL4HWkzS7yVlReXG8sI
         3Ssg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779788624; x=1780393424;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=syGgOjTw4c7Rut4emSk0LlZpDI5JJWx+QA9kfDo/79k=;
        b=Hef6OdjQLXU9PrVBZTLh8Zs9ydyYO1aIS8rUMb1bCIa5jgmFbCAIiMiIY3QAyJ8k3T
         InJa4THEJA85dqW6x+BwDPp3lk/FXwVss6EAMH1EFvwkDQ6NZoJJXvObjt36GNGSQREy
         eZSdnZRJSI+vQSseanJExzHgKnFu1Xb5YmiQEXho93lDcDwGjtsxoc2j2QBtjxLii3E8
         GHa1EnpsXpE8vmpQuha6HUa3dcfI59vUfakepFV+Sqjbt7ohVl/V8b7Vm6Ux9pniMCxa
         vJhd78CHgl2FOaU9GgGPj6VehhdTD/HWHfZx6XLRBZSITt9Y0/b62WAuGBDrMNEZH4+g
         ttUA==
X-Gm-Message-State: AOJu0Yyb6shl9apVvNchA6qdzOJDKGE3HUXtp8yePnDdKBfmPvJPrTTg
	XKa5fPL3c7YsRfpPaOxCT2+VrRRJZwTdlrGhtrlQikkYCSvfTLa9uO1+4QLiwSxM
X-Gm-Gg: Acq92OF8VdD7fKGfk+VEXLvJkVeJXCMCt4cIbGKzKSGg2hNdkF5bqc6xM+oFSOaFmxr
	EiW7eei12mQqF43GzCCP/LI4QI1U+SwCukjsveOcCzK1Mr4ImQbA4+mqSIUNt0rDTtUl4h2h7C+
	q1wls+mSh2zyOu05CPIyQaX8BgJuGVbds5wpKzWftyt29ErpyRgvYLs2DN4NWf1wZy/GtRMb69a
	sfgBkjsF+M/0nWTcParFybdcVJBaONoUOxKEOZ3nqhdREN0kagwUKjILeJRERZBw1iTzRQppPtY
	Rk8wFxjtCdhNrG+ZkYf10i1AuCXSpWYWPFFFBJYba8WW8zJpyli3QXO3+Txxj4x08hmmxXKczRT
	N+CC3uwqBmZjVdJ9QmH44NL7yB295Hr1+NSdgiJ0T318KTwa24bQ0sZ/f0kFnvOFctmPfgRXo+Q
	nlvOmelPd51DlZbYojSOCc9k4U3rQTZ9xU4WwQRlqFdrhWnzRU+Na6rgXp5ew+5ECk1Bq8w/0BJ
	G1GvgMJF7FBC2AEtviHji2LAEx0G55AnT6h
X-Received: by 2002:a05:600c:1f90:b0:490:5e2a:dbaf with SMTP id 5b1f17b1804b1-4905e2adc0dmr144697785e9.21.1779788623432;
        Tue, 26 May 2026 02:43:43 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v3 3/9] libs/guest: Reduce number of I/O vectors in write_batch
Date: Tue, 26 May 2026 10:43:14 +0100
Message-ID: <20260526094324.12286-4-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260526094324.12286-1-frediano.ziglio@cloud.com>
References: <20260526094324.12286-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1779788624-B5545FF4-92044BAA/0/0
X-purgate-type: clean
X-purgate-size: 1328

From: Frediano Ziglio <frediano.ziglio@citrix.com>

Each page was sent using a different iovec item. This potentially exceed
Linux maximum (1024).
Also some implementation (MiniOS) emulate writev with multiple write calls.

Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
--
Changes since v2:
- change prefix in subject.
---
 tools/libs/guest/xg_sr_save.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/tools/libs/guest/xg_sr_save.c b/tools/libs/guest/xg_sr_save.c
index 1700d819051a..62a39dfecc7a 100644
--- a/tools/libs/guest/xg_sr_save.c
+++ b/tools/libs/guest/xg_sr_save.c
@@ -240,13 +240,20 @@ static int write_batch(struct xc_sr_context *ctx)
     {
         for ( i = 0; i < nr_pfns; ++i )
         {
-            if ( guest_data[i] )
+            if ( !guest_data[i] )
+                continue;
+
+            if ( iov[iovcnt-1].iov_base + iov[iovcnt-1].iov_len != guest_data[i] )
             {
                 iov[iovcnt].iov_base = guest_data[i];
                 iov[iovcnt].iov_len = PAGE_SIZE;
                 iovcnt++;
-                --nr_pages;
             }
+            else
+            {
+                iov[iovcnt-1].iov_len += PAGE_SIZE;
+            }
+            --nr_pages;
         }
     }
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 09:43:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 09:43:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319669.1587158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoKB-00085B-KX; Tue, 26 May 2026 09:43:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319669.1587158; Tue, 26 May 2026 09:43:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoKB-00084y-Ge; Tue, 26 May 2026 09:43:47 +0000
Received: by outflank-mailman (input) for mailman id 1319669;
 Tue, 26 May 2026 09:43:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wRoK9-0007iC-Md
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 09:43:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRoK9-00C7jc-2g
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 11:43:45 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b4e-e002-0a2a0a5209dd-0a2a4502c48c-22
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:45 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b50-af86-0a2a45020019-d155dd31e5d7-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:45 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-44a5174670eso5826141f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 02:43:44 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d70c51sm36522744f8f.36.2026.05.26.02.43.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 02:43:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779788624; x=1780393424; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LjNuNS+tEGweRY5UYIRJVJv/E+lf3Z5v+uA7RoSWlbs=;
        b=hrh9wP11MCg828qnNiYc72rHGBH7f11cmnLvqPuYp8KRjA09eZv9Ua6jDwvmvLz6Sj
         hGOUqRrbMnNm/HmT4va+SPBVjFa+XnfMmyWbNue6iTax1pRBRsWFXrEWv4QYLXMDkiWS
         KB5bs03EUQn91WLrp3NlK0YdsvmuUnzt0m2ST9715OF1Yf6wSXqzTcmPw2yFcjTOBs9q
         nazRevj+Vl3t6rOhIncE6tT0E2mHF1sXwlPLjHXHl2eCXP4vFGyjL5SnwWWKy6/vyOMk
         FkoOeDjvQHQdwr4Ii//ju/RY25eWk6TuM+7lbkampg+S9NJk7xD9Y3cnOXNZ2Txqhrqw
         eWSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779788624; x=1780393424;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=LjNuNS+tEGweRY5UYIRJVJv/E+lf3Z5v+uA7RoSWlbs=;
        b=U9oWJg907+BLfj5XuoG2F9sJERx8dzJivDBtsRAWjwx1spEuNO9/p3NhkgPgytWkHG
         I6UMLlSEmjM7ySsk7IEtAqGGatJNYvz9FGARH1WbAOGUcz0vOiCIVQVFwWs8VjoItCal
         zXNB9T+FoeQmTLmAvsm73ZNv9SgLudh7mqd0ZRaoMtuWk4cL7ldCJ4p0WcbSZTRvzUMb
         reWeF9DCD66+atEC31ksu+SMElsMDwY5gW1C1Ak/Hr5FpYA8nynPdGugAEWeG1zV94ON
         jbS2yjX1ITF2XJfoBmMLtHX7N4u5yfwUjERgqe7UormsKX+6VNt976Mog7hYuITwZQ4l
         4ftg==
X-Gm-Message-State: AOJu0YyJvCkJ2NApxq9E1FgyD3h/obBtpyIh8F5W8MW+MkdR2UyapaMA
	1W2LnKsCUOnk/pDvKoIAAY42ccazFFVyJocWxiKC2qmbTma8lufSf3We/8mxFcZT
X-Gm-Gg: Acq92OHQVcKBYOOsxt+sNzwr+WtTFk3tOyEivl7r6GK0gT4zc0nOoWTLaSBpAOKQFML
	Wo1lJ7ssX/GIQz21LVXuO/Awfv5ah3peIhOK5i3EXPXhyD3ZN+mpreX3HErda4mBC9/sUVbRWGl
	c6S29Pi/VFPRs1HxqvjtA86kIdRHgehasJPLu+emlerylAz5DKu68YpW1L7BaIGc5fW6MldpPX+
	smvogHvlsaLekHuW9FXFAkehGiK2cQYSV8vYWiuG84kZXhJuuUJ5MpEfjJGdj8TTCrg55F1sh7o
	38izswGi5L5CylRj56/zw0uAa7EF3WTr3TKCdrVfTt8roKxzqLjU9YpyJx2H1lYPpV5sN2F908w
	5uWT9GNLIvJrzSUyFxLNAIXG516Sgvvg4GAN0Q6NVdf2NMggJY6z6kzWGQrfZa3kV0GT9YhxyWt
	ppzJTq2773clzSuVHSZy7LKTeN7pRaBeF9PQRzs2/w2LXOyAAoD0Pn/pp8L395gkZ2JSglMAwdp
	2WEucfPwLOAuaR2UA41Ky/omPmLzLQkejTm
X-Received: by 2002:a05:6000:2688:b0:45e:88f5:ccfb with SMTP id ffacd0b85a97d-45eb367320cmr33474548f8f.2.1779788624364;
        Tue, 26 May 2026 02:43:44 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v3 4/9] libs/guest: Use a single write_exact in write_headers
Date: Tue, 26 May 2026 10:43:15 +0100
Message-ID: <20260526094324.12286-5-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260526094324.12286-1-frediano.ziglio@cloud.com>
References: <20260526094324.12286-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1779788625-81772161-A7D1DB3C/0/0
X-purgate-type: clean
X-purgate-size: 2254

From: Frediano Ziglio <frediano.ziglio@citrix.com>

Reduce number of syscalls.

Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
--
Changes since v2:
- change prefix in subject.
---
 tools/libs/guest/xg_sr_save.c | 37 +++++++++++++++++------------------
 1 file changed, 18 insertions(+), 19 deletions(-)

diff --git a/tools/libs/guest/xg_sr_save.c b/tools/libs/guest/xg_sr_save.c
index 62a39dfecc7a..8c4e760f8d0a 100644
--- a/tools/libs/guest/xg_sr_save.c
+++ b/tools/libs/guest/xg_sr_save.c
@@ -10,17 +10,22 @@ static int write_headers(struct xc_sr_context *ctx, uint16_t guest_type)
 {
     xc_interface *xch = ctx->xch;
     int32_t xen_version = xc_version(xch, XENVER_version, NULL);
-    struct xc_sr_ihdr ihdr = {
-        .marker  = IHDR_MARKER,
-        .id      = htonl(IHDR_ID),
-        .version = htonl(3),
-        .options = htons(IHDR_OPT_LITTLE_ENDIAN),
-    };
-    struct xc_sr_dhdr dhdr = {
-        .type       = guest_type,
-        .page_shift = XC_PAGE_SHIFT,
-        .xen_major  = (xen_version >> 16) & 0xffff,
-        .xen_minor  = (xen_version)       & 0xffff,
+    struct {
+        struct xc_sr_ihdr ihdr;
+        struct xc_sr_dhdr dhdr;
+    } hdrs = {
+        {
+            .marker  = IHDR_MARKER,
+            .id      = htonl(IHDR_ID),
+            .version = htonl(3),
+            .options = htons(IHDR_OPT_LITTLE_ENDIAN),
+        },
+        {
+            .type       = guest_type,
+            .page_shift = XC_PAGE_SHIFT,
+            .xen_major  = (xen_version >> 16) & 0xffff,
+            .xen_minor  = (xen_version)       & 0xffff,
+        },
     };
 
     if ( xen_version < 0 )
@@ -29,15 +34,9 @@ static int write_headers(struct xc_sr_context *ctx, uint16_t guest_type)
         return -1;
     }
 
-    if ( write_exact(ctx->fd, &ihdr, sizeof(ihdr)) )
-    {
-        PERROR("Unable to write Image Header to stream");
-        return -1;
-    }
-
-    if ( write_exact(ctx->fd, &dhdr, sizeof(dhdr)) )
+    if ( write_exact(ctx->fd, &hdrs, sizeof(hdrs)) )
     {
-        PERROR("Unable to write Domain Header to stream");
+        PERROR("Unable to write Headers to stream");
         return -1;
     }
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 09:43:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 09:43:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319670.1587163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoKC-0008Bw-55; Tue, 26 May 2026 09:43:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319670.1587163; Tue, 26 May 2026 09:43:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoKC-00089h-0Y; Tue, 26 May 2026 09:43:48 +0000
Received: by outflank-mailman (input) for mailman id 1319670;
 Tue, 26 May 2026 09:43:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wRoKB-0007xP-19
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 09:43:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRoKA-00C7jc-DD
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 11:43:46 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b50-e002-0a2a0a5209dd-0a2a450cb892-8
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:46 +0200
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b52-62f1-0a2a450c0019-d155dd33c9c3-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:46 +0200
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-44c350a5b87so6133174f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 02:43:46 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d70c51sm36522744f8f.36.2026.05.26.02.43.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 02:43:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779788626; x=1780393426; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=X41YOolTDeQXd+76PX/UtsluEUpbnvoPlDNitCDAkx0=;
        b=gB5xUYCE1HltW/j/zJjRQWw/KbUnrfEW7SqE9UnvP0LB1pAyeJrQqNizDPx8bs6x3W
         QJq4BlwaKmFCm/rzqMgzKoQMVoW5vxkJU9tWvho2KigtGjdPChzrzS6fT7yIzsCZ0mom
         a+VEspdI1+CrHYYFtE7zjMOsG+o2URQbasldJ+gI8GlvlNzp4i76jL3zM73fNohvWNru
         ZQzdqBJHP4qBDQ/zCRLce7zuW0cziKnl9hQGLe096BVht2RzJxd9BI4dKbgxMz4tIq4B
         HCrYY3bzi/gPCBtRVZnqLS7ntw6pdINdlMb9LIprqlWztuzHV5oJDYrC3XdQYoxXGM+0
         zE1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779788626; x=1780393426;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=X41YOolTDeQXd+76PX/UtsluEUpbnvoPlDNitCDAkx0=;
        b=eFBqBFTQsoxngARZJqH07Pr3TNX6hzq9hULN2qd0S5T9XBHHhrYPJFT1XRPP6YVMH7
         9u+Pqtyi1OUjg4z0gtaPO0O3dPYA1smuBTasQPmMp/kAGAyyIN1i69CdsXa3S81hFjEw
         oXhWGEVyttKrxzCjsdWUhYnPMYbTdWxaMLUcQkocAxSB2dD7JMcUovSJvxijhDRjKEhj
         GICdIXf5qhxC8DpbbhkKoQoIVKhkh4EWTruJp8HJm8PmoCSFq4Q582bjIPpWpC4u1Abf
         b6/Oe957v96eHj1vw9HqaUo2lM+W9KeF9VwxjrRmQlg1OckrtIbBoAYOPsse/Y0bTtag
         R0ew==
X-Gm-Message-State: AOJu0YxYw6nn1zpIu7FrXLqGGWTNBnt5t+jognP8jg2s0FJq18r3fhqn
	641IqZLjSg9NJRmbknFZ2G5VD3D1yNUgrH/2ZkhEUk/hWQeyyxNp5T8jDmTDgPCF
X-Gm-Gg: Acq92OGbksBBO6ypyVqy65gPZjbXKarDCAQH6MGhxhxI4fp+9b6qXz6Ni2mRxotObka
	v8A/nkPb1SlsV6Mdq9fYi2EHBLRq4AdNjFxP0IVNhdSkn5pzPHS41+7ltjHBOxyJgvvoRXyBfEW
	invP/oHWq9ZYF9c731bY+1433wOqdH+eMYMQUdhESc9JyKndlNdZMJ6kJVeY9mfizLBsA8ENpj+
	mdVHhxpfExnyG9e9psMkB/2wdVEB3EwXhBUDt4/5Lx4rDD1Fu7eoYQpyltH3zNS+FNi4/FD1+ri
	XlCqNchcQbmeNMukQo333tUbBcLwpxTBPnOEVxrDP9O1HInN2Zk2RDBIgiTW7ofgWgRhbX/KRMp
	wJd1sfjOR0Mz9GqbNpYgxw3Mo6DbPbczU/fYrc66v5QV79TXHxw+qGir3PfPNe3Gq1UO0xnPKpr
	v7uJMY9JMP047BY3A1XChlGH6A6ExWFeT8ZYDJL/U9J8YNKzS/E85QIv4uuqSvOyMpkRzyUGX54
	SNlM/VNlhBzTx/EOpI/FtFO+0LWvvUyaZgC
X-Received: by 2002:a05:6000:25c2:b0:45d:b14b:23f8 with SMTP id ffacd0b85a97d-45eb369044bmr31282502f8f.18.1779788625655;
        Tue, 26 May 2026 02:43:45 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	Frediano Ziglio <frediano.ziglio@citrix.com>
Subject: [PATCH v3 5/9] libs/guest: allocate various migration arrays just once
Date: Tue, 26 May 2026 10:43:16 +0100
Message-ID: <20260526094324.12286-6-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260526094324.12286-1-frediano.ziglio@cloud.com>
References: <20260526094324.12286-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1779788626-F4A7ACF5-98C149B4/0/0
X-purgate-type: clean
X-purgate-size: 6461

From: Edwin Török <edwin.torok@citrix.com>

Allocate these array just once at the start of migration,
using the maximum batch size, and free them at the end.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
--
Changes since v2:
- change prefix in subject.
---
 tools/libs/guest/xg_sr_common.h | 13 +++++++
 tools/libs/guest/xg_sr_save.c   | 66 +++++++++++++--------------------
 2 files changed, 39 insertions(+), 40 deletions(-)

diff --git a/tools/libs/guest/xg_sr_common.h b/tools/libs/guest/xg_sr_common.h
index f1573aefcbff..77312bae9cf5 100644
--- a/tools/libs/guest/xg_sr_common.h
+++ b/tools/libs/guest/xg_sr_common.h
@@ -209,6 +209,18 @@ static inline int update_blob(struct xc_sr_blob *blob,
     return 0;
 }
 
+struct xc_sr_context_save_buffers
+{
+    xen_pfn_t batch_pfns[MAX_BATCH_SIZE];
+    xen_pfn_t mfns[MAX_BATCH_SIZE];
+    xen_pfn_t types[MAX_BATCH_SIZE];
+    int errors[MAX_BATCH_SIZE];
+    void *guest_data[MAX_BATCH_SIZE];
+    void *local_pages[MAX_BATCH_SIZE];
+    struct iovec iov[MAX_BATCH_SIZE + 2]; /* headers + data */
+    uint64_t rec_pfns[MAX_BATCH_SIZE];
+};
+
 struct xc_sr_context
 {
     xc_interface *xch;
@@ -244,6 +256,7 @@ struct xc_sr_context
             unsigned long *deferred_pages;
             unsigned long nr_deferred_pages;
             xc_hypercall_buffer_t dirty_bitmap_hbuf;
+            struct xc_sr_context_save_buffers *buffers;
         } save;
 
         struct /* Restore data. */
diff --git a/tools/libs/guest/xg_sr_save.c b/tools/libs/guest/xg_sr_save.c
index 8c4e760f8d0a..7d8055a3f9e8 100644
--- a/tools/libs/guest/xg_sr_save.c
+++ b/tools/libs/guest/xg_sr_save.c
@@ -86,16 +86,16 @@ static int write_checkpoint_record(struct xc_sr_context *ctx)
 static int write_batch(struct xc_sr_context *ctx)
 {
     xc_interface *xch = ctx->xch;
-    xen_pfn_t *mfns = NULL, *types = NULL;
+    xen_pfn_t *mfns, *types;
     void *guest_mapping = NULL;
-    void **guest_data = NULL;
-    void **local_pages = NULL;
-    int *errors = NULL, rc = -1;
+    void **guest_data;
+    void **local_pages;
+    int *errors, rc = -1;
     unsigned int i, p, nr_pages = 0, nr_pages_mapped = 0;
     unsigned int nr_pfns = ctx->save.nr_batch_pfns;
     void *page, *orig_page;
-    uint64_t *rec_pfns = NULL;
-    struct iovec *iov = NULL; int iovcnt = 0;
+    uint64_t *rec_pfns;
+    struct iovec *iov; int iovcnt = 0;
     struct {
         struct xc_sr_rhdr rec;
         struct xc_sr_rec_page_data_header page_data;
@@ -105,26 +105,24 @@ static int write_batch(struct xc_sr_context *ctx)
     };
 
     assert(nr_pfns != 0);
+    assert(nr_pfns <= MAX_BATCH_SIZE);
+    assert(ctx->save.buffers);
 
     /* Mfns of the batch pfns. */
-    mfns = malloc(nr_pfns * sizeof(*mfns));
+    mfns = ctx->save.buffers->mfns;
     /* Types of the batch pfns. */
-    types = malloc(nr_pfns * sizeof(*types));
+    types = ctx->save.buffers->types;
     /* Errors from attempting to map the gfns. */
-    errors = malloc(nr_pfns * sizeof(*errors));
+    errors = ctx->save.buffers->errors;
     /* Pointers to page data to send.  Mapped gfns or local allocations. */
-    guest_data = calloc(nr_pfns, sizeof(*guest_data));
+    guest_data = ctx->save.buffers->guest_data;
+    memset(guest_data, 0, sizeof(*guest_data) * nr_pfns);
     /* Pointers to locally allocated pages.  Need freeing. */
-    local_pages = calloc(nr_pfns, sizeof(*local_pages));
+    local_pages = ctx->save.buffers->local_pages;
+    memset(local_pages, 0, sizeof(*local_pages) * nr_pfns);
     /* iovec[] for writev(). */
-    iov = malloc((nr_pfns + 2) * sizeof(*iov));
-
-    if ( !mfns || !types || !errors || !guest_data || !local_pages || !iov )
-    {
-        ERROR("Unable to allocate arrays for a batch of %u pages",
-              nr_pfns);
-        goto err;
-    }
+    iov = ctx->save.buffers->iov;
+    rec_pfns = ctx->save.buffers->rec_pfns;
 
     for ( i = 0; i < nr_pfns; ++i )
     {
@@ -210,14 +208,6 @@ static int write_batch(struct xc_sr_context *ctx)
         }
     }
 
-    rec_pfns = malloc(nr_pfns * sizeof(*rec_pfns));
-    if ( !rec_pfns )
-    {
-        ERROR("Unable to allocate %zu bytes of memory for page data pfn list",
-              nr_pfns * sizeof(*rec_pfns));
-        goto err;
-    }
-
     hdrs.rec.length = sizeof(hdrs.page_data);
     hdrs.rec.length += nr_pfns * sizeof(*rec_pfns);
     hdrs.rec.length += nr_pages * PAGE_SIZE;
@@ -267,17 +257,13 @@ static int write_batch(struct xc_sr_context *ctx)
     rc = ctx->save.nr_batch_pfns = 0;
 
  err:
-    free(rec_pfns);
     if ( guest_mapping )
         xenforeignmemory_unmap(xch->fmem, guest_mapping, nr_pages_mapped);
     for ( i = 0; local_pages && i < nr_pfns; ++i )
+    {
         free(local_pages[i]);
-    free(iov);
-    free(local_pages);
-    free(guest_data);
-    free(errors);
-    free(types);
-    free(mfns);
+        local_pages[i] = NULL;
+    }
 
     return rc;
 }
@@ -805,18 +791,18 @@ static int setup(struct xc_sr_context *ctx)
 
     dirty_bitmap = xc_hypercall_buffer_alloc_pages(
         xch, dirty_bitmap, NRPAGES(bitmap_size(ctx->save.p2m_size)));
-    ctx->save.batch_pfns = malloc(MAX_BATCH_SIZE *
-                                  sizeof(*ctx->save.batch_pfns));
     ctx->save.deferred_pages = bitmap_alloc(ctx->save.p2m_size);
+    ctx->save.buffers = calloc(1, sizeof(*ctx->save.buffers));
 
-    if ( !ctx->save.batch_pfns || !dirty_bitmap || !ctx->save.deferred_pages )
+    if ( !dirty_bitmap || !ctx->save.deferred_pages || !ctx->save.buffers)
     {
-        ERROR("Unable to allocate memory for dirty bitmaps, batch pfns and"
-              " deferred pages");
+        ERROR("Unable to allocate memory for dirty bitmaps, deferred pages"
+              " and various batch buffers");
         rc = -1;
         errno = ENOMEM;
         goto err;
     }
+    ctx->save.batch_pfns = ctx->save.buffers->batch_pfns;
 
     rc = 0;
 
@@ -840,7 +826,7 @@ static void cleanup(struct xc_sr_context *ctx)
     xc_hypercall_buffer_free_pages(xch, dirty_bitmap,
                                    NRPAGES(bitmap_size(ctx->save.p2m_size)));
     free(ctx->save.deferred_pages);
-    free(ctx->save.batch_pfns);
+    free(ctx->save.buffers);
 }
 
 /*
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 09:43:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 09:43:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319671.1587176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoKE-0000B3-Cp; Tue, 26 May 2026 09:43:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319671.1587176; Tue, 26 May 2026 09:43:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoKE-0000Ah-8i; Tue, 26 May 2026 09:43:50 +0000
Received: by outflank-mailman (input) for mailman id 1319671;
 Tue, 26 May 2026 09:43:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wRoKC-0008Is-LI
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 09:43:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRoKC-00C7jc-16
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 11:43:48 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b54-e002-0a2a0a5209dd-0a2a450396a4-0
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:48 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b53-672d-0a2a45030019-d155dd31d024-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:47 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-44ccbd3290aso9039456f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 02:43:47 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d70c51sm36522744f8f.36.2026.05.26.02.43.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 02:43:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779788627; x=1780393427; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hbvSYSz9jX9dafFppGzkbKpTIPtHmNPQUeh/EgdczHs=;
        b=RZysriK+S4QhPT7Dx+KuXjr7lR9V1nMKldFtJs0+K3O/rSjCg9QxCarUyLPJP0+LEO
         ur0BErc3+pTYZbHSI86/40y1ZZju9/QQzfGEIqzqhVTdQM65MzgJkbN3FAy2VM8ues6O
         CBLqgOYAKS4/6M4IwB7hLgjgztHFZMeKMQbvOp0vlxdHKGdPr+snnzKrIbRLtdh7bR7A
         XgsdfQ922TuQ7Jagh6u760AUrrG7ijuaRBq6icF0HCToxb8GrDK0mmWBpNltbDY0w1JH
         l/jHUCVwk/6FBYHs/dJoQPINpBOzl1zwg/GZh0/ylX7ZGZia+gx1ZYjNmiTMqdko5qSP
         zWqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779788627; x=1780393427;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=hbvSYSz9jX9dafFppGzkbKpTIPtHmNPQUeh/EgdczHs=;
        b=U+SKtbAYA0KZwggFAD5Lhg5PZLBRwjgXAKbE4an5mppRXHE1DN3qXxQ9kLQ818fgNC
         SI0h8fsauZbh031GxTqD5b0L0sIABj2OtZr7TchaPY+XfZQFBSlolYWdR95qtwxXyFOZ
         lDhl5BdDQFzt4JMQ27MJ50TIpKJ38IVZr8TddxK1WBUL93P+LVnWZDpnv4CbdJzfLqBG
         IwSmoAidYTU7PyhcScR+iwinbcEWjQdgxE4JOlgyWhyf1JTGZk0Cu+C1P9fbZDLnRnv8
         t+lyuVXdTvXjL4EM3Dp2s4yNMXBFuIgNgrf/szwhvyoZRDN7z1cznju4AAFCrhFGhO6F
         rN2w==
X-Gm-Message-State: AOJu0Yy49jd1gfl3gA9x+VoFyDHv+cvdmsbPX+P2oV14gnl05ltjMS1l
	QVgZIX6wLJpFeLuYBw/DrJukmK1R0Id/68nF1fI8HB3+gyxZa7bx3v11mDR1KU/m
X-Gm-Gg: Acq92OH7IhAZMVeHQ8qec7zcAJB46HzVwsTXawAuURN0Z7ffF+l29OzPntj8ucU9g6C
	8K58SfA0fiDOx2RSV+CNBKiz5Qy5im6P6e3Qv1t23reIyteJbdafH4Myc711ahGguhzPbxgCsgm
	wEbUeki5w+wii34XfbZ55fqdZJ1H9v5R/mszBFh54EwlOKpXgrnAfs158tkUi+EySIRpn9XbP4Q
	63msboMyc1RvwjLp2rmmYikPG8iKkJOgepu2fQ/Od9y8yN9hEFZG40dlcVMDHDtkS2nt6YKe1Ok
	R1lP8vggd6BBE4V6ZHeubUPy3DQMo5FhoaiBJIpG7Xe0EhNP+YyAqY+UF7NuJzu+qiSHB07mSif
	/y3v1Coa7Ecokbwv5OFh2lJr/pGLFpSqO/TlxRBxTjXfFUA++s3ApUwCufzTl+LndUmxXXJPdSd
	pdRQmmsVKE3WAdRQwItpwiqRMDsvGT6yCqc+Cto5Dbe1na4uB6535uZyYTsW9xGkqDPukmhZuhd
	JYaYclLbHzzkothOCmlYmpIqJoDu68SUAmn
X-Received: by 2002:a05:6000:2888:b0:44f:da26:cbb4 with SMTP id ffacd0b85a97d-45eb38bae90mr31288289f8f.21.1779788626944;
        Tue, 26 May 2026 02:43:46 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	Frediano Ziglio <frediano.ziglio@citrix.com>
Subject: [PATCH v3 6/9] libs/call: cache up to 4 pages in hypercall bounce buffers
Date: Tue, 26 May 2026 10:43:17 +0100
Message-ID: <20260526094324.12286-7-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260526094324.12286-1-frediano.ziglio@cloud.com>
References: <20260526094324.12286-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779788627-41794938-6F500648/0/0
X-purgate-type: clean
X-purgate-size: 4985

From: Edwin Török <edwin.torok@citrix.com>

During migration there are a lot of mmap/munmap calls,
because `xc_get_pfn_type_batch` exceeds the default hypercall bounce
buffer cache size, and needs to allocate every time it is called.

`munmap` is slow, especially in a PV Dom0 (takes an emulation fault),
so is best avoided.

Eventually it'd be good if the memory pool from  xmalloc_tlsf.c
was reused here, but for now make it handle the commonly encountered
sizes (so far up to 4 pages).

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
--
Changes since v2:
- change prefix in subject.
---
 tools/libs/call/buffer.c  | 28 +++++++++++++++++-----------
 tools/libs/call/core.c    |  3 ++-
 tools/libs/call/private.h |  8 +++++---
 3 files changed, 24 insertions(+), 15 deletions(-)

diff --git a/tools/libs/call/buffer.c b/tools/libs/call/buffer.c
index 2579b8c71986..15d2f98a6b71 100644
--- a/tools/libs/call/buffer.c
+++ b/tools/libs/call/buffer.c
@@ -56,13 +56,13 @@ static void *cache_alloc(xencall_handle *xcall, size_t nr_pages)
     if ( xcall->buffer_current_allocations > xcall->buffer_maximum_allocations )
         xcall->buffer_maximum_allocations = xcall->buffer_current_allocations;
 
-    if ( nr_pages > 1 )
+    if ( nr_pages > ARRAY_SIZE(xcall->buffer_cache) )
     {
         xcall->buffer_cache_toobig++;
     }
-    else if ( xcall->buffer_cache_nr > 0 )
+    else if ( xcall->buffer_cache_nr[nr_pages-1] > 0 )
     {
-        p = xcall->buffer_cache[--xcall->buffer_cache_nr];
+        p = xcall->buffer_cache[nr_pages-1][--xcall->buffer_cache_nr[nr_pages-1]];
         xcall->buffer_cache_hits++;
     }
     else
@@ -84,10 +84,10 @@ static int cache_free(xencall_handle *xcall, void *p, size_t nr_pages)
     xcall->buffer_total_releases++;
     xcall->buffer_current_allocations--;
 
-    if ( nr_pages == 1 &&
-         xcall->buffer_cache_nr < BUFFER_CACHE_SIZE )
+    if ( nr_pages && nr_pages < ARRAY_SIZE(xcall->buffer_cache) &&
+         xcall->buffer_cache_nr[nr_pages-1] < BUFFER_CACHE_SIZE )
     {
-        xcall->buffer_cache[xcall->buffer_cache_nr++] = p;
+        xcall->buffer_cache[nr_pages-1][xcall->buffer_cache_nr[nr_pages-1]++] = p;
         rc = 1;
     }
 
@@ -108,17 +108,23 @@ void buffer_release_cache(xencall_handle *xcall)
     DBGPRINTF("current allocations:%d maximum allocations:%d",
               xcall->buffer_current_allocations,
               xcall->buffer_maximum_allocations);
-    DBGPRINTF("cache current size:%d",
-              xcall->buffer_cache_nr);
+    for ( unsigned i = 0; i < ARRAY_SIZE(xcall->buffer_cache_nr); ++i )
+    {
+        DBGPRINTF("cache current size[%u pages]:%d", i+1,
+                xcall->buffer_cache_nr[i]);
+    }
     DBGPRINTF("cache hits:%d misses:%d toobig:%d",
               xcall->buffer_cache_hits,
               xcall->buffer_cache_misses,
               xcall->buffer_cache_toobig);
 
-    while ( xcall->buffer_cache_nr > 0 )
+    for ( unsigned i = 0; i < ARRAY_SIZE(xcall->buffer_cache_nr); ++i )
     {
-        p = xcall->buffer_cache[--xcall->buffer_cache_nr];
-        osdep_free_pages(xcall, p, 1);
+        while ( xcall->buffer_cache_nr[i] > 0 )
+        {
+            p = xcall->buffer_cache[i][--xcall->buffer_cache_nr[i]];
+            osdep_free_pages(xcall, p, i + 1);
+        }
     }
 
     cache_unlock(xcall);
diff --git a/tools/libs/call/core.c b/tools/libs/call/core.c
index 02c4f8e1aefa..dd8877c1a0bd 100644
--- a/tools/libs/call/core.c
+++ b/tools/libs/call/core.c
@@ -14,6 +14,7 @@
  */
 
 #include <stdlib.h>
+#include <string.h>
 
 #include "private.h"
 
@@ -44,7 +45,7 @@ xencall_handle *xencall_open(xentoollog_logger *logger, unsigned open_flags)
     xentoolcore__register_active_handle(&xcall->tc_ah);
 
     xcall->flags = open_flags;
-    xcall->buffer_cache_nr = 0;
+    memset(xcall->buffer_cache_nr, 0, sizeof(xcall->buffer_cache_nr));
 
     xcall->buffer_total_allocations = 0;
     xcall->buffer_total_releases = 0;
diff --git a/tools/libs/call/private.h b/tools/libs/call/private.h
index 9c3aa432efe2..8e6a20897534 100644
--- a/tools/libs/call/private.h
+++ b/tools/libs/call/private.h
@@ -31,13 +31,15 @@ struct xencall_handle {
     Xentoolcore__Active_Handle tc_ah;
 
     /*
-     * A simple cache of unused, single page, hypercall buffers
+     * A simple cache of unused, small, hypercall buffers
+     * buffer_cache[i]'s size is (i+1) pages
      *
      * Protected by a global lock.
      */
 #define BUFFER_CACHE_SIZE 4
-    int buffer_cache_nr;
-    void *buffer_cache[BUFFER_CACHE_SIZE];
+#define BUFFER_CACHE_NRPAGES 4
+    int buffer_cache_nr[BUFFER_CACHE_NRPAGES];
+    void *buffer_cache[BUFFER_CACHE_NRPAGES][BUFFER_CACHE_SIZE];
 
     /*
      * Hypercall buffer statistics. All protected by the global
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 09:43:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 09:43:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319672.1587181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoKE-0000FJ-UN; Tue, 26 May 2026 09:43:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319672.1587181; Tue, 26 May 2026 09:43:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoKE-0000Ey-KH; Tue, 26 May 2026 09:43:50 +0000
Received: by outflank-mailman (input) for mailman id 1319672;
 Tue, 26 May 2026 09:43:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wRoKD-00005J-Dz
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 09:43:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRoKC-002r8y-PT
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 11:43:48 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b51-5cb7-0a2a0a5109dd-0a2a450ad64c-10
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:48 +0200
Received: from [209.85.221.48] (helo=mail-wr1-f48.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b54-56b3-0a2a450a0019-d155dd30e90f-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:48 +0200
Received: by mail-wr1-f48.google.com with SMTP id
 ffacd0b85a97d-44509921fbcso6603823f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 02:43:48 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d70c51sm36522744f8f.36.2026.05.26.02.43.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 02:43:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779788628; x=1780393428; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Xm0Iw65jO+uKrMUpvtXIdJI78r5gGuJ870elFUF+nDU=;
        b=npKeDXmavQuZhgcKoefetGO/sP7Zk5ZEJpUSIvz8o7+hxIsCQuGwQoqpe4aj2w9Jbt
         /z3alHI1ijuNZglNbfU9TGopFyWzK/+q3zhipKNdLgU7OISsfwJ1AgvWjrU0rVV0WdH4
         MI+UjXBffqHEZYvwny0mToxjUb6m1ahI5vT1R7Hvjrs4LqNKmYr+W6MrM4jttZo8eqMo
         sd20VrCtLUkgT7OTvpmGR+rSFxm9UfcdyF+RiXBgWQ4ff5uyoR11ac+6C+5YJmjvLLIY
         QhL38OuQflu2YRsBgkCFvT8W9gqycIOBXW6ICWRWBhYfFiSCtOdjOY75bWetMfC1FMrb
         ZLZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779788628; x=1780393428;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Xm0Iw65jO+uKrMUpvtXIdJI78r5gGuJ870elFUF+nDU=;
        b=cXiQ2/lUYpFlswwclt5MSnro6oSUHJ+neubSCpnvz0Wj5wntnkQCi2yvPOqdCZuari
         hRoTCx1Cwot1kq454yWIw+eopKxnykGZQ/fiEvyZpkh2l/0mY5XYcNErKyhc50p6Za4l
         GjTUjse/UNnFwM4ngFpMbn/TmlM+Jyevm2Acgtv6UVGlwLWLhqaXOyAhZFTBHmle0Hvm
         y63+gJD8qI3wqyT3zqaiS14oy8QZ0ggG2dOAUPjsm8fz/6d8O6WdFS9YZQl+qD1ZFq5V
         NMR7AEtCLBKpXyDcl864n8oudvWl+v1lfJTBlU1DmnoJWUJQ1L4GDuQ/kpZQPXqEP/Q5
         4xIg==
X-Gm-Message-State: AOJu0YyQ4gZGzK1GZR7kQEwruIjxD1NKLkfUp0sQyrGCh6EpNqxBZJbr
	NOSHyWmWqGdY10zSY9Q04aPEJMmE/c5NBfBSEww6jBMLNFB6pyBlCYwUVPsHUCG2
X-Gm-Gg: Acq92OHXuoKpEq1kQwHvFupbApnNrF26s0hL8ZFeKgtN6pgvJOaEb7GGqQBDWwLHT3m
	zB3t12dT8D2FBeuhVRwdzpNiB3SoRGwS1RsfXRmpIHAsf42b5K3vmfdli/1RZZH3B067CDY12qG
	qVo5wdo+JZScs+V82TU5zQ9ZXfqf/RPQRI8Su6X7RVm0u8DTY3y4zeZysuud9qTbKSzEfyUVuvM
	FdLycfEVAyFvyqnOZFlkllIdhN54KuxQjM2AK5nGVJ0QOluZHQBjrZdaSvuX4X96jdf6/Cgo3zE
	DTdi3OZmrOfFqUtq9eDxaoLqmIKf6ecOATr5JO7q/QboiCs2cQQLBE/iHzR7zUGgfIUpPCaV1yI
	JPerwcOiY20pWGVRc1Gr5z78JiHVeZzQyeUATJZfXLd9yWidmdtkaNENtW4+y0cMNuXXpyfM2Xh
	LZdCS265AE/vmKdRf418mWJkcIq7YWWOVV3BNRr1vPlRwE6NyNy5A7+sGvBjCBCYeimNaNqzbkm
	Mz4K6Igw19puCGORnKZq302rA==
X-Received: by 2002:a5d:59c5:0:b0:43c:ffee:ee94 with SMTP id ffacd0b85a97d-45eb368124fmr28746571f8f.11.1779788628043;
        Tue, 26 May 2026 02:43:48 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v3 7/9] libs/guest: avoids using 2 indexes
Date: Tue, 26 May 2026 10:43:18 +0100
Message-ID: <20260526094324.12286-8-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260526094324.12286-1-frediano.ziglio@cloud.com>
References: <20260526094324.12286-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1779788628-7D5868B7-F1F96C12/0/0
X-purgate-type: clean
X-purgate-size: 2688

From: Frediano Ziglio <frediano.ziglio@citrix.com>

Simplify code, after the first scan of the various arrays we don't need to
keep original types and PFNs but only the ones having data.

Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
---
 tools/libs/guest/xg_sr_restore.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/tools/libs/guest/xg_sr_restore.c b/tools/libs/guest/xg_sr_restore.c
index e148fc594a73..fb46142d8729 100644
--- a/tools/libs/guest/xg_sr_restore.c
+++ b/tools/libs/guest/xg_sr_restore.c
@@ -260,9 +260,7 @@ static int process_page_data(struct xc_sr_context *ctx, unsigned int count,
     int *map_errs = malloc(count * sizeof(*map_errs));
     int rc;
     void *mapping = NULL, *guest_page = NULL;
-    unsigned int i, /* i indexes the pfns from the record. */
-        j,          /* j indexes the subset of pfns we decide to map. */
-        nr_pages = 0;
+    unsigned nr_pages;
 
     if ( !mfns || !map_errs )
     {
@@ -279,12 +277,18 @@ static int process_page_data(struct xc_sr_context *ctx, unsigned int count,
         goto err;
     }
 
-    for ( i = 0; i < count; ++i )
+    nr_pages = 0;
+    for ( unsigned i = 0; i < count; ++i )
     {
         ctx->restore.ops.set_page_type(ctx, pfns[i], types[i]);
 
-        if ( page_type_has_stream_data(types[i]) )
-            mfns[nr_pages++] = ctx->restore.ops.pfn_to_gfn(ctx, pfns[i]);
+        if ( !page_type_has_stream_data(types[i]) )
+            continue;
+
+        mfns[nr_pages] = ctx->restore.ops.pfn_to_gfn(ctx, pfns[i]);
+        pfns[nr_pages] = pfns[i];
+        types[nr_pages] = types[i];
+        nr_pages++;
     }
 
     /* Nothing to do? */
@@ -302,16 +306,13 @@ static int process_page_data(struct xc_sr_context *ctx, unsigned int count,
         goto err;
     }
 
-    for ( i = 0, j = 0; i < count; ++i )
+    for ( unsigned i = 0; i < nr_pages; ++i )
     {
-        if ( !page_type_has_stream_data(types[i]) )
-            continue;
-
-        if ( map_errs[j] )
+        if ( map_errs[i] )
         {
             rc = -1;
             ERROR("Mapping pfn %#"PRIpfn" (mfn %#"PRIpfn", type %#"PRIx32") failed with %d",
-                  pfns[i], mfns[j], types[i], map_errs[j]);
+                  pfns[i], mfns[i], types[i], map_errs[i]);
             goto err;
         }
 
@@ -337,7 +338,6 @@ static int process_page_data(struct xc_sr_context *ctx, unsigned int count,
             memcpy(guest_page, page_data, PAGE_SIZE);
         }
 
-        ++j;
         guest_page += PAGE_SIZE;
         page_data += PAGE_SIZE;
     }
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 09:43:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 09:43:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319674.1587194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoKH-0000jw-1r; Tue, 26 May 2026 09:43:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319674.1587194; Tue, 26 May 2026 09:43:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoKG-0000jU-Tv; Tue, 26 May 2026 09:43:52 +0000
Received: by outflank-mailman (input) for mailman id 1319674;
 Tue, 26 May 2026 09:43:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wRoKE-0000B5-H6
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 09:43:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRoKD-002r8y-TG
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 11:43:49 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b51-5cb7-0a2a0a5109dd-0a2a450ad64c-20
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:49 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b55-56b3-0a2a450a0019-d1558029c583-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:49 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-49048e043e5so28146625e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 02:43:49 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d70c51sm36522744f8f.36.2026.05.26.02.43.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 02:43:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779788629; x=1780393429; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BYgK6iR894mAqSXBIRezXknZ0unnX59SBgdgZD/Yaro=;
        b=Ytk/LwkWOnfwfd6J3cyH5tWUfbV9ck4QJJ4s3x1gVeaIZTGYN8QJTnGz0fF8hOa79b
         902y+Oia6tMDqid2HBa6VbIyQZoQRHIgEFOwLs83BgwvNmR83mb17xKlEPBgmlythuiX
         NFD6fTEMyVQPXuOEpMy8LQZsBn3AwuGJ8ZVTJQeAgfgfJR1Q6oUw1AkFHSJmTed7OH0+
         ZGJk2GDIWdrqIrESycHNoDLEBQ5zOAR7BAZlg8qQImc+SEgFz5xwOekYIiAfeZCmBXcm
         Ne/CxYpZIOQ59QpidtRJdnlVz1DFIUj4YzqcqvznWiwkdZYoYGqKE5bkCHF6C+S+NpVw
         atsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779788629; x=1780393429;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=BYgK6iR894mAqSXBIRezXknZ0unnX59SBgdgZD/Yaro=;
        b=gbSpOo6I4NMOCnYGOEFCwzb4+OGRX7/Y8yG0rYt4soGHzsUdebc8bjrbWJqpgTjSMI
         VKkWg4M4YDyLY3MRxdYgYWTajzwdroLyYK6F5Jf+NxSRxUFgCyHJSSp4cO/GzlZ8K3f7
         Zzd8I9D/aPcowZT4AAi0k36bgYyHluADgtXhqn5AvinvkMiGb2fFJ3LeCzQsZ45W8vKn
         7p+yQRfecW4Sk3e58GSomn3sfRhz/g/9vrl6aVn4mNzN0IEaUBnkAWESuk8mfLaYvT/W
         5ID0H643jL6EgiJHHldqfchCNcHK2K42UaMir10GRoGhnnNqtDgEZydsv0LqBsa0+lI6
         6abg==
X-Gm-Message-State: AOJu0Yyo+Tpp/dIlHydbBgOO8mGxv9rygyirOhC7CBN+0P2kZ9t1HDdk
	RDRWj5WGV8YuPCneLn7RAqJkwWxkuOcog/lk+mLLJn8/LYLs9FWE3wqqIT+eC+6d
X-Gm-Gg: Acq92OECe+USF50uO2hfrt/QzWMeuakTol0p4vxXpV6QYXfoFcQaJv+m7YGLSVbZl5P
	14LSan85EocKN8d2NURULWVFQRwTnHLxO+P+zVrEXysfnPrqUIQyujmjjZDLmdYIL2/xk11m6tu
	RLEzbUujC9npR1Fx88BlFQzefy5c7SMYzN8nT+/en/RaRZwolC58fOAQ+WoUQhwzgoT5Go7r3jp
	CaN249xH175zbOL796rN8Pwo5lrkfhUR5XPa/Lsubpbl7uqI0+4M87Hv0K1mVledoelHgmoM8h+
	71TuUZYJuO2cgqsDuxahyDi8RYKt66Bb7D95Om44cKdGcPFB/dASwyXLAdSCa146RUNUdtLy1T5
	bw71ESaI3paKGtATs24wnCnaodZFFvDmsdLo50F90P1cr2R2z9rfXVBkfr7HEZI5IJzE6S8Ilru
	BD2Kn3ZDfz+rJ14BQoDqbCT9jmgIufLqF+qQHNuh+BkC4s6E9rncEaWw676abZNtG5J9yObFBz0
	rMeQ6YxfnZIgRWmDMJkH5kubw==
X-Received: by 2002:a05:6000:40cf:b0:452:273:5cd6 with SMTP id ffacd0b85a97d-45eb367fe78mr31935951f8f.1.1779788629128;
        Tue, 26 May 2026 02:43:49 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v3 8/9] libs/guest: fill directly iov structure
Date: Tue, 26 May 2026 10:43:19 +0100
Message-ID: <20260526094324.12286-9-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260526094324.12286-1-frediano.ziglio@cloud.com>
References: <20260526094324.12286-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1779788629-71F698B7-2100B5B3/0/0
X-purgate-type: clean
X-purgate-size: 4540

From: Frediano Ziglio <frediano.ziglio@citrix.com>

Instead of storing page pointers into an array and lately adding to
iov vector add the pages directly to iov to avoid "guest_data"
array.

Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
---
 tools/libs/guest/xg_sr_common.h |  1 -
 tools/libs/guest/xg_sr_save.c   | 62 ++++++++++++---------------------
 2 files changed, 22 insertions(+), 41 deletions(-)

diff --git a/tools/libs/guest/xg_sr_common.h b/tools/libs/guest/xg_sr_common.h
index 77312bae9cf5..797b4d1a7da1 100644
--- a/tools/libs/guest/xg_sr_common.h
+++ b/tools/libs/guest/xg_sr_common.h
@@ -215,7 +215,6 @@ struct xc_sr_context_save_buffers
     xen_pfn_t mfns[MAX_BATCH_SIZE];
     xen_pfn_t types[MAX_BATCH_SIZE];
     int errors[MAX_BATCH_SIZE];
-    void *guest_data[MAX_BATCH_SIZE];
     void *local_pages[MAX_BATCH_SIZE];
     struct iovec iov[MAX_BATCH_SIZE + 2]; /* headers + data */
     uint64_t rec_pfns[MAX_BATCH_SIZE];
diff --git a/tools/libs/guest/xg_sr_save.c b/tools/libs/guest/xg_sr_save.c
index 7d8055a3f9e8..593268f176a6 100644
--- a/tools/libs/guest/xg_sr_save.c
+++ b/tools/libs/guest/xg_sr_save.c
@@ -88,7 +88,6 @@ static int write_batch(struct xc_sr_context *ctx)
     xc_interface *xch = ctx->xch;
     xen_pfn_t *mfns, *types;
     void *guest_mapping = NULL;
-    void **guest_data;
     void **local_pages;
     int *errors, rc = -1;
     unsigned int i, p, nr_pages = 0, nr_pages_mapped = 0;
@@ -114,9 +113,6 @@ static int write_batch(struct xc_sr_context *ctx)
     types = ctx->save.buffers->types;
     /* Errors from attempting to map the gfns. */
     errors = ctx->save.buffers->errors;
-    /* Pointers to page data to send.  Mapped gfns or local allocations. */
-    guest_data = ctx->save.buffers->guest_data;
-    memset(guest_data, 0, sizeof(*guest_data) * nr_pfns);
     /* Pointers to locally allocated pages.  Need freeing. */
     local_pages = ctx->save.buffers->local_pages;
     memset(local_pages, 0, sizeof(*local_pages) * nr_pfns);
@@ -159,6 +155,19 @@ static int write_batch(struct xc_sr_context *ctx)
         mfns[nr_pages++] = mfns[i];
     }
 
+    hdrs.rec.length = sizeof(hdrs.page_data);
+    hdrs.rec.length += nr_pfns * sizeof(*rec_pfns);
+
+    hdrs.page_data.count = nr_pfns;
+
+    iov[0].iov_base = &hdrs;
+    iov[0].iov_len = sizeof(hdrs);
+
+    iov[1].iov_base = rec_pfns;
+    iov[1].iov_len = nr_pfns * sizeof(*rec_pfns);
+
+    iovcnt = 2;
+
     if ( nr_pages > 0 )
     {
         guest_mapping = xenforeignmemory_map(
@@ -200,60 +209,33 @@ static int write_batch(struct xc_sr_context *ctx)
                 else
                     goto err;
             }
+            else if ( iov[iovcnt-1].iov_base + iov[iovcnt-1].iov_len != page )
+            {
+                iov[iovcnt].iov_base = page;
+                iov[iovcnt].iov_len = PAGE_SIZE;
+                iovcnt++;
+            }
             else
-                guest_data[i] = page;
+            {
+                iov[iovcnt-1].iov_len += PAGE_SIZE;
+            }
 
             rc = -1;
             ++p;
         }
     }
 
-    hdrs.rec.length = sizeof(hdrs.page_data);
-    hdrs.rec.length += nr_pfns * sizeof(*rec_pfns);
     hdrs.rec.length += nr_pages * PAGE_SIZE;
 
-    hdrs.page_data.count = nr_pfns;
-
     for ( i = 0; i < nr_pfns; ++i )
         rec_pfns[i] = ((uint64_t)(types[i]) << 32) | ctx->save.batch_pfns[i];
 
-    iov[0].iov_base = &hdrs;
-    iov[0].iov_len = sizeof(hdrs);
-
-    iov[1].iov_base = rec_pfns;
-    iov[1].iov_len = nr_pfns * sizeof(*rec_pfns);
-
-    iovcnt = 2;
-
-    if ( nr_pages )
-    {
-        for ( i = 0; i < nr_pfns; ++i )
-        {
-            if ( !guest_data[i] )
-                continue;
-
-            if ( iov[iovcnt-1].iov_base + iov[iovcnt-1].iov_len != guest_data[i] )
-            {
-                iov[iovcnt].iov_base = guest_data[i];
-                iov[iovcnt].iov_len = PAGE_SIZE;
-                iovcnt++;
-            }
-            else
-            {
-                iov[iovcnt-1].iov_len += PAGE_SIZE;
-            }
-            --nr_pages;
-        }
-    }
-
     if ( writev_exact(ctx->fd, iov, iovcnt) )
     {
         PERROR("Failed to write page data to stream");
         goto err;
     }
 
-    /* Sanity check we have sent all the pages we expected to. */
-    assert(nr_pages == 0);
     rc = ctx->save.nr_batch_pfns = 0;
 
  err:
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 09:43:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 09:43:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319675.1587199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoKH-0000om-JU; Tue, 26 May 2026 09:43:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319675.1587199; Tue, 26 May 2026 09:43:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoKH-0000oA-Cd; Tue, 26 May 2026 09:43:53 +0000
Received: by outflank-mailman (input) for mailman id 1319675;
 Tue, 26 May 2026 09:43:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wRoKF-0000JN-99
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 09:43:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRoKE-00C7nY-LC
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 11:43:50 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b54-e002-0a2a0a5209dd-0a2a450396a4-32
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:50 +0200
Received: from [209.85.221.54] (helo=mail-wr1-f54.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a156b56-672d-0a2a45030019-d155dd36d93b-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:43:50 +0200
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-43fe62837baso6040774f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 02:43:50 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d70c51sm36522744f8f.36.2026.05.26.02.43.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 02:43:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779788630; x=1780393430; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=54F7jVLbDw17JTD+SKyHXt9Aa2Yn2dAnayA0OhhrPec=;
        b=V2KmXBFYoKq/VlpbqIx8zJ+WaLngZzzW75yTPjnrod4EoC/guQLFSp0jjl7JPiyTrg
         Vh4ZCKL346SKRzDv8jTxWNyj03yh2O+1K+hi5lLDU5s5ju89ee4qu6V3XSoNpl/ZoH1y
         81WukOOiCp5MKh+4bZjsW5WIZo3SwjIHaq6cuArioHsKVo4wtYZ6i3fVBgRyqbyNMsCF
         QTzIP6eNvko78ZAsdBUZ+Sbdo03QJHLsCWqgAgGXRo6mMQmls8jTLkoLiaeQBpOJ1FKL
         ETY3Uf+HZZ/hIfjfDLt/wyVT1ykAgpf8GKsDtCRWHFT9OtiqeK8Ra/+O8LnuoUxZcOVv
         QLfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779788630; x=1780393430;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=54F7jVLbDw17JTD+SKyHXt9Aa2Yn2dAnayA0OhhrPec=;
        b=D7EeYBTQfuvArcRzQ6zRHwSL8yY/44hdsuuXe1wS99Efpg4mKYOampcrCwLcWtHdjB
         amPI0Y31Ypt0tgAV6BwyO6vkKsDMChPPelhIqpZUddKsxyEeBa7YxiReaqnX1OcsKvY9
         KC4MCgoe3npTCHOaxu13FPozgUwUTinlMt8durV0FhkUdMCl4sZFKUUrNhO3wVc3ArkY
         qFtaPXbf8yUslIC9plQ9t6zc2Q8wg/ORzdrgU0GIAfj3/nn/VZKaiGBQ9P9DZhLdewYM
         KWeN68ngTbE3KfYmHzK2T7UbDIK06TXd7fYsSs4KFe690YcMjIicOqq9FAJE+lVzYEJo
         /2Gw==
X-Gm-Message-State: AOJu0YxVHhD/elu53+y0F/XD4Mx2vPZhcA4kPUmMXm9clViVG8iE0JTf
	SQZNdvbVnKB2SjlyHE3CNRpiE3uGfLG9hmvpwNcLgaKo9dyekm4GpgypNCrh2i6v
X-Gm-Gg: Acq92OFqD+aCOLJ+mH+SLmiKELiQHykVyCIRNdXdRUGo8fTUlV5wjCwTSAKupdcvZVC
	nGCM7Ij+s3IBnqjH45rPRBVpI5nHJR9UEOy8DOFu4wLqahqOgVBOHH+RjosePk7DH05ojb1+nLi
	XWNOVmpstRYLHNF3rZmlgFcNxvsbcLuoqSK7Wa8jzviPG7lB2NqWdKesltD177Td+QaXsnScSyG
	EubSTlf3l0IIkPdVoiV4+3aZb+6Tj723D+ePdgx4fbKljuVkyC4cDDiikjL9EuLqIz9EaHGiM4y
	OPud70ThLzqA6v2l9cek6r0JBGBZz5jdgkh5wUDdc4hwk9OZtlcPgn22FlfoErqgLh1e86Mgr0d
	zXBRnYoPLOKs7fWhlEfINvkAU58IPdyuezqQKSbjx+nkZulApktrvTnLxxq4gEriOIwBhGOyLMI
	3psZiZZ3bxS9qxZECcDwaXkUXmjXRZUssckPOsNWz8GS/70u11f/te83Kx0DrJ95SG1D/U2x8Fo
	kPIYhXeMhlrPc/ZdvMl+xZsXoEVU4bz2kfmU8WQq4ZkCzk=
X-Received: by 2002:a05:6000:2508:b0:45e:65a3:badf with SMTP id ffacd0b85a97d-45eb39e1f43mr31281958f8f.21.1779788629960;
        Tue, 26 May 2026 02:43:49 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v3 9/9] libs/ctrl: Allows writev_exact to change iov array
Date: Tue, 26 May 2026 10:43:20 +0100
Message-ID: <20260526094324.12286-10-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260526094324.12286-1-frediano.ziglio@cloud.com>
References: <20260526094324.12286-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779788630-41D91938-12F8B3E5/0/0
X-purgate-type: clean
X-purgate-size: 3234

From: Frediano Ziglio <frediano.ziglio@citrix.com>

Avoid having to allocate and copy the array if a partial write
happens.
The implementation in tools/libs/store/xs.c already use this
signature and method.

Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
--
Changes since v2:
- change prefix in subject.
---
 tools/libs/ctrl/xc_private.c | 26 +++++---------------------
 tools/libs/ctrl/xc_private.h |  2 +-
 2 files changed, 6 insertions(+), 22 deletions(-)

diff --git a/tools/libs/ctrl/xc_private.c b/tools/libs/ctrl/xc_private.c
index bb0f81d6f389..946fc307aabd 100644
--- a/tools/libs/ctrl/xc_private.c
+++ b/tools/libs/ctrl/xc_private.c
@@ -635,7 +635,7 @@ int write_exact(int fd, const void *data, size_t size)
 /*
  * MiniOS's libc doesn't know about writev(). Implement it as multiple write()s.
  */
-int writev_exact(int fd, const struct iovec *iov, int iovcnt)
+int writev_exact(int fd, struct iovec *iov, int iovcnt)
 {
     int rc, i;
 
@@ -649,9 +649,8 @@ int writev_exact(int fd, const struct iovec *iov, int iovcnt)
     return 0;
 }
 #else
-int writev_exact(int fd, const struct iovec *iov, int iovcnt)
+int writev_exact(int fd, struct iovec *iov, int iovcnt)
 {
-    struct iovec *local_iov = NULL;
     int rc = 0, iov_idx = 0, saved_errno = 0;
     ssize_t len;
 
@@ -686,23 +685,9 @@ int writev_exact(int fd, const struct iovec *iov, int iovcnt)
                 len -= iov[iov_idx++].iov_len;
             else
             {
-                /* Partial write of iov[iov_idx]. Copy iov so we can adjust
-                 * element iov_idx and resubmit the rest. */
-                if ( !local_iov )
-                {
-                    local_iov = malloc(iovcnt * sizeof(*iov));
-                    if ( !local_iov )
-                    {
-                        saved_errno = ENOMEM;
-                        rc = -1;
-                        goto out;
-                    }
-
-                    iov = memcpy(local_iov, iov, iovcnt * sizeof(*iov));
-                }
-
-                local_iov[iov_idx].iov_base += len;
-                local_iov[iov_idx].iov_len  -= len;
+                /* Partial write of iov[iov_idx]. */
+                iov[iov_idx].iov_base += len;
+                iov[iov_idx].iov_len  -= len;
                 break;
             }
         }
@@ -711,7 +696,6 @@ int writev_exact(int fd, const struct iovec *iov, int iovcnt)
     saved_errno = 0;
 
  out:
-    free(local_iov);
     errno = saved_errno;
     return rc;
 }
diff --git a/tools/libs/ctrl/xc_private.h b/tools/libs/ctrl/xc_private.h
index b5892ae8dc1e..3af996e9002e 100644
--- a/tools/libs/ctrl/xc_private.h
+++ b/tools/libs/ctrl/xc_private.h
@@ -383,7 +383,7 @@ int xc_flush_mmu_updates(xc_interface *xch, struct xc_mmu *mmu);
 /* Return 0 on success; -1 on error setting errno. */
 int read_exact(int fd, void *data, size_t size); /* EOF => -1, errno=0 */
 int write_exact(int fd, const void *data, size_t size);
-int writev_exact(int fd, const struct iovec *iov, int iovcnt);
+int writev_exact(int fd, struct iovec *iov, int iovcnt);
 
 int xc_ffs8(uint8_t x);
 int xc_ffs16(uint16_t x);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 09:46:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 09:46:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319732.1587212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoMY-0003hR-8S; Tue, 26 May 2026 09:46:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319732.1587212; Tue, 26 May 2026 09:46:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoMY-0003hK-5D; Tue, 26 May 2026 09:46:14 +0000
Received: by outflank-mailman (input) for mailman id 1319732;
 Tue, 26 May 2026 09:46:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1wRoMW-0003h7-Rd
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 09:46:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRoMW-00750H-7P
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 11:46:12 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 6a156bdf-5cb7-0a2a0a5109dd-0a2a450c9962-18
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:46:11 +0200
Received: from [205.220.180.131] (helo=mx0b-0031df01.pphosted.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 6a156be1-62f1-0a2a450c0019-cddcb4835c28-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:46:11 +0200
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64Q6MQsP3263573
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 09:46:09 GMT
Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com
 [209.85.214.200])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ecnhs3sxc-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 09:46:09 +0000 (GMT)
Received: by mail-pl1-f200.google.com with SMTP id
 d9443c01a7336-2ba15e384c7so72057445ad.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 02:46:09 -0700 (PDT)
Received: from [10.219.57.109] ([202.46.23.19])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2beb58b2ebcsm121223885ad.49.2026.05.26.02.45.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 May 2026 02:46:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	+tNWCjXxY3vDlbxeyc6dAiioLTzJiUtHmEfK77uv8QU=; b=fr1+vbDENVQY5Zkc
	AWKEyhljX0yFvxH6I1SvWUMTfp19xN/S0yh+TGoyD9Cl2mMP1B+cxYr4CMbB+3HK
	i6mgb6GJt0ChQnVW/edYstQ2ZQ/3qEyz7787O7HhTjAw4XPZE3hs5gii8npI7Amv
	SV4YTLdzF9yQsyRYbZhe8MXQpEJ8I1OBPDETlM0oT+VsBZIO/86gjRfEn9vRxRhD
	fa7RK+Fn5PB0Yls+1QT2cAgdVoCp2+ET9/qfV+TNX1+bxgF2y68cg7pgqK+nzx0o
	z9PP/dkyTpf4v2k4Ml/cIFZEvKeM5ltrMipw4x5NALhFjWWhKMw9d8b7GJjlf880
	lK0fmQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1779788768; x=1780393568; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=+tNWCjXxY3vDlbxeyc6dAiioLTzJiUtHmEfK77uv8QU=;
        b=RymuX7ov/dCOz+tj1ywGcbX9BZlWAi35xlAi9Zk5KPBaKlnDR7UqORPX70UZDpz854
         4WPrB9/NJG1HHGkamDg2Cq7LZJY2Rrog97m/1X7ZDayciGtpff5Cwkiw0HqGQCZsJtg8
         1KDgy0cIaeUnKC00tvniZOx1mcljKzzsBz9DxvcdWKcM0k+FMPIRhn2x8AfQ/sf+Vkkb
         iXPeMqwxyCB6HNi7/rU85h8USzuxh8JjlL5R4Rg4NM3vSOBO6iEKBpLo6y5aZopSGk5i
         N01Vos1tsxK/Z5nZqmWolvBsIocfJhxDeBWV40+8fhya6dQKBk7g3nzSMMkDmpbuDjLX
         Grwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779788768; x=1780393568;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=+tNWCjXxY3vDlbxeyc6dAiioLTzJiUtHmEfK77uv8QU=;
        b=YMlxl7YyJOw0iBTiBsnEGJ5xAWOrHKRltEUc7E1lEqcticzkBeTJ5blIbJZlmj8bQi
         v6WUeHqlYDc9yV1y3paDGxA4ZgGx8h5XwnPCiFNlzDzUHyPp9NRXEMAv7g8HTh/nEODk
         uuiW5hFNWo8MFxL4/kljLMmmL8ImWw+6dVdBWjowsL5Ng76+Q9o/+8FSvSN5cYBL/pbt
         uBZQuWY7DgIIayzVqUKecqEyUqMp/0pwDlgg0V8MOMKsVPdbjhQ842T1Lps8MbK4WRuT
         E9B6k1Od5nBOjYwg5ppFWE4hH1Z3niRExFyl74A7M5yz6N/MrYLoi3c97d3rjdl2qlav
         wy5g==
X-Forwarded-Encrypted: i=1; AFNElJ/JgSdx/oAhy9asbTkMcYs4XztWFqj4SlZo4W52GNlHHFAJLUYGAm+b+zd+2X0RiN2zhb+2UAIj91w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyvCwp4atoEYM1q+yCYaCqVUvF37BB9T9Gdxet87RjUMagR4O+6
	GoXYVTQ33fbPxs+Ounq8aUbCV7Vg2KFQN2l2l0gKjUSY/cht8OZpuvAfQ01d059dt//IdDBBq+n
	XH8mEHCQkZx8laTI9Xxs26l1Xsmco03man89WL+Z0+I/wXd9MUj4tZdZjhI6feo/RbQCSHA==
X-Gm-Gg: Acq92OGgArQEzxVwp/je/bISfPfH7l/dWRXC3pJTPp0YKClHbQaxxRcTEbDu6ItyKpg
	NtW05B8rnbNmcKp1h1gj/3Ym7mfcIs2knKddS6fGWeZfQrF8QBRcLRKl8O9NHMplMP9gPxLQQAs
	fz373bzfkv/oQY6Hcwg1k3tltm1SAO+JN/Mclaicr7XvyjON4iOKB7EazuYmermK9RxndfLXBb6
	yuetJtONQ0qmGr0cCX1d8IavIJiqcufsYBfmCoKHICKlHIbVncIRLWqrNUAGhBvp2c2KQ9zI87O
	nPuDzgju+LVQbUjWpklGLvMNQu5JXro7afPXXQbwVyKRt/NVPTWdgAJC3zuGXWSrPqeLtpYRo31
	rWF71+ZfPtQFn5/5MswrwB2pY0KDfuJDLuRL8v4EL7o92FPS5jLXUID7m
X-Received: by 2002:a17:903:41c2:b0:2ba:e42a:231e with SMTP id d9443c01a7336-2beb064837dmr200645575ad.37.1779788768356;
        Tue, 26 May 2026 02:46:08 -0700 (PDT)
X-Received: by 2002:a17:903:41c2:b0:2ba:e42a:231e with SMTP id d9443c01a7336-2beb064837dmr200645035ad.37.1779788767805;
        Tue, 26 May 2026 02:46:07 -0700 (PDT)
Message-ID: <f2eb5c9d-a78b-401c-8796-f7ef7a8d7386@oss.qualcomm.com>
Date: Tue, 26 May 2026 15:15:55 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v15 0/3] of: parsing of multi #{iommu,msi}-cells in maps
To: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal
 <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas
 <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
References: <20260520-parse_iommu_cells-v15-0-b5f99ad4e7e8@oss.qualcomm.com>
 <20260526-finicky-crafty-hare-eae27c@quoll>
Content-Language: en-US
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
In-Reply-To: <20260526-finicky-crafty-hare-eae27c@quoll>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Authority-Analysis: v=2.4 cv=Vd3H+lp9 c=1 sm=1 tr=0 ts=6a156be1 cx=c_pps
 a=IZJwPbhc+fLeJZngyXXI0A==:117 a=j4ogTh8yFefVWWEFDRgCtg==:17
 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22
 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=Jo8nEopC4ZUABtMbiE8A:9 a=QEXdDO2ut3YA:10
 a=uG9DUKGECoFWVXl0Dc02:22
X-Proofpoint-GUID: GQfrH0x0B2Epxi2YuNM5fhHuv8oN4jne
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI2MDA4NCBTYWx0ZWRfX/kRp6zdY9Myj
 Zl+rO9EYBLTiD3hhY317fWVvsocoeYFq1tTaGom5qfKwH1fxls4VHYX4iuLwdDC6T99Kc7w2Djn
 Sq6Y19OuW7u+QLTvDGKjO+L9blrgnGHcakoFVTjM4TJrodnY/6ZTdB/bJvaHennfsZ/aeuJ3pSB
 ITyNt2lKuYC6JSbBoDeX+j+eEHnYgNYPbcq3vmt3HUds052fTzDGkhDogaMSB6Wc10p1z0UOH/n
 fP4JwPH/DRCUSBaC3tDNVijIpfGlxRhfhqXBybLOJXBFm/GSvxn8/NRIkUx4or/LG4QWQelNc+f
 uMqsV7fyRBQVBJj/vgVkv2llS26HNMfs5+WjuHj2fjhrIw23T49cLEQ1QPbcGI5lqatwMHU5gP5
 tBvp73ZXMtc2PjmnBazZF/7sMCVYWgVRxGXajWk0Ss5sX5Da50avrdU1GHyNWH1ANLCkWA7AsXM
 UFR3JwTexNJUPaQx8VQ==
X-Proofpoint-ORIG-GUID: GQfrH0x0B2Epxi2YuNM5fhHuv8oN4jne
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-05-26_02,2026-05-18_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 impostorscore=0 suspectscore=0 malwarescore=0 spamscore=0 clxscore=1015
 lowpriorityscore=0 phishscore=0 adultscore=0 priorityscore=1501 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605260084
X-purgate-ID: tlsNG-d25034/1779788771-E0D63CF5-2CBDFA86/0/0
X-purgate-type: clean
X-purgate-size: 2848



On 5/26/2026 11:42 AM, Krzysztof Kozlowski wrote:
> On Wed, May 20, 2026 at 01:32:39PM +0530, Vijayanand Jitta wrote:
>> So far our parsing of {iommu,msi}-map properties has always blindly
>> assumed that the output specifiers will always have exactly 1 cell.
>> This typically does happen to be the case, but is not actually enforced
>> (and the PCI msi-map binding even explicitly states support for 0 or 1
>> cells) - as a result we've now ended up with dodgy DTs out in the field
>> which depend on this behaviour to map a 1-cell specifier for a 2-cell
>> provider, despite that being bogus per the bindings themselves.
>>
>> Since there is some potential use[1] in being able to map at least
>> single input IDs to multi-cell output specifiers (and properly support
>> 0-cell outputs as well), add support for properly parsing and using the
>> target nodes' #cells values, albeit with the unfortunate complication of
>> still having to work around expectations of the old behaviour too.
>> 							-- Robin.
>>
>> Unlike single #{}-cell, it is complex to establish a linear relation
>> between input 'id' and output specifier for multi-cell properties, thus
>> it is always expected that len never going to be > 1.
>>
>> These changes have been tested on QEMU for the arm64 architecture.
> 
> So there is no real user for that. That's unconvincing. I would assume
> that at least you have real user where you test it.
> 
> If you want to speed up acceptance of your patches, then also I would
> prefer to see at least one more user, beside Qualcomm. IOW, show how you
> solve other people problems, not only yours.
> 
> Best regards,
> Krzysztof
> 

Hi Krzysztof,

Thank you for the feedback.

The upstream user for the multi-cell iommu-map support is the Lemans
platform's VPU device, which requires iommu-map entries targeting a
2-cell IOMMU node. We are currently working on the glymur series [1]
and once that is finalized we will post the Lemans patches as well.

That said, I think this series can go through independently for the
following reasons:

1. Correctness fix: The iommu-map/msi-map bindings have always
   specified that the output cell count is determined by
   #iommu-cells/#msi-cells on the target node. The kernel has been
   silently ignoring this and assuming 1 cell. This patch makes the
   kernel respect the binding specification.

2. Backward compatibility preserved: The of_check_bad_map() workaround
   handles existing deployed DTs that target 2-cell IOMMU nodes with
   1-cell entries. This series has been tested on the glymur platform
   [1], which uses iommu-map with 1-cell specifiers, and the existing
   parsing continues to work correctly.

Thanks,
Vijay

[1] https://lore.kernel.org/all/20260515-glymur-v6-5-f6a99cb43a24@oss.qualcomm.com/


From xen-devel-bounces@lists.xenproject.org Tue May 26 09:51:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 09:51:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319750.1587222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoRz-0005ok-Sd; Tue, 26 May 2026 09:51:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319750.1587222; Tue, 26 May 2026 09:51:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoRz-0005od-Oc; Tue, 26 May 2026 09:51:51 +0000
Received: by outflank-mailman (input) for mailman id 1319750;
 Tue, 26 May 2026 09:51:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wRoRy-0005oX-D2
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 09:51:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRoRx-009wq3-L0
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 11:51:49 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a156d2c-2eae-0a2a0a5409dd-0a2a4505acfa-46
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:51:49 +0200
Received: from [209.85.208.45] (helo=mail-ed1-f45.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a156d33-aaa8-0a2a45050019-d155d02dd9c6-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:51:47 +0200
Received: by mail-ed1-f45.google.com with SMTP id
 4fb4d7f45d1cf-68852b58d87so1052719a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 02:51:47 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-688bb622cd4sm4975170a12.28.2026.05.26.02.51.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 May 2026 02:51:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779789107; x=1780393907; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=E6E/V8Nupfq7xure3YUTLzImoDv683GDToL6vzbGOrk=;
        b=b+KyaTGO2n/dOfVloCy6vhBoAxYlYb8R+dqnk53iz5kniY+PV76qpTyGNjFnriZmxF
         sicNWvwgr9v8zO8L8wXucX6F9cxgx5AC1gAYtJT4p0kGRGWI39D5vTQpKrwSbNhcKErY
         GLSDsadcQ/ngMDxJ0tISL0x6Bf7Qs7LhBLPw9w8YF28ayhmjexck9Z1X1a9mylpU0R2I
         fIbD6I5VCg4fVMnDx26thm6xUPf0k0ZkkNrqrrjllGryx8wNgbKnykogMAjP4JEtn+el
         LbC/FAuLh+GOLNeBAwLzve6MY5aOSC9QGwUnrH9BKgrsVBRXXtGupOoDd/udq4dB4icx
         cjXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779789107; x=1780393907;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=E6E/V8Nupfq7xure3YUTLzImoDv683GDToL6vzbGOrk=;
        b=XPydBgSuJq7TKk6Kwo+/d/wPhE66PHmPOMxot944iLr5gCldDB+1BR5yoBfv0bwY+j
         f2wjijaUDpR0pGSKS/HF4PviZmBNz3W8Q2DafrqzUTdmRlyP08XVE493H2rVv4VJqrzp
         7qApPhWpLH68/cX0nXJzRm4QMzAppyJP2BR5KujpRQD9G1F3RKdWsfoVEVMeymJLNbbI
         8vTM5QYr/rUIzcjZKF1bMNR8TopSDvBYxWNFdMtMuzLzmJVFzMbMQQxg+J9HAvrIKKsU
         9lc7G7fZZKoebVUn/zwvhLPpnDOve+O6pjydza/+4bOtkVToC3BoLt4ujgCmhI4usXJ6
         tgfQ==
X-Forwarded-Encrypted: i=1; AFNElJ/eydQz4h3VZYXej6BpITVRxXR6/bBngusLUQ8tb1/d3s22xVzE95Dp5tzdCsogsNQ8cAOtI2BOrHY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyPCP7bTQLM4+vdy66XG7bZiK2syD5E4T5Rm7Jw5BXjUawtPcjR
	erFs4d6u9eD7ejhRVRQQxfwce3U0c+MBGHlikTtGBOOCReYPKMtkgS+4MnRUnzhuBmk=
X-Gm-Gg: Acq92OFzgeGmgjynKeVm4SEL9ICB8KBV6UV6Bjz5+aHjPmE9ZP1nM8IUEkKioQqmW9S
	d05z9yz0JSECMiER8+r0coH8rbuZi5ey3KXb83ZGX+5lbeaTKOjpPw5Ojv9atDKbHTnUx1UAJKG
	WqSBDeiszg3iWyUVVVCycHaJPD5iFjhW178vvqmHj9gPf2xFkmL2bSExrDlaoNlKn1DQXBIy9pY
	lzCzaPG71OQ+OjcsmSY9fpH7HE152Dn2DtsK+O5cjT987CJ6h/R+qQY5nCdwbjv6SD2EOhUD/bC
	CnmvJU803Ny/VxC5mJWWC79yVgXwAlqQ6nNGtLUwloS/bRdOKH6kMbFAvIfukU2DvQKO1LA5e+/
	1m4T1nJpXRuZWgb59Z5UT3L+/xNHQg/jgpk+DLWARumQSfpNmpFyDS5hwehUzSCy9JeVsne4Afk
	+uqluCe3RwChP7vlRxbRNyXuV2EcqYrcITnglQs10cLrZBB2K4N4Hr0ZKQMY5FU4vZNTr+sfEdy
	E+yBjB4waojseC5w+Gtoev4U93GzLNEkL0mBQzwb+fFvSiIbJXlbQ==
X-Received: by 2002:a05:6402:5293:b0:67f:97eb:b0ef with SMTP id 4fb4d7f45d1cf-6889c476e4cmr9239454a12.15.1779789107312;
        Tue, 26 May 2026 02:51:47 -0700 (PDT)
Message-ID: <c47a38fb-9945-4d0f-8d19-bd455c591245@suse.com>
Date: Tue, 26 May 2026 11:51:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] x86/asm: move inline string functions to
 <asm/string_inline.h>
To: Mauricio Faria de Oliveira <mfo@igalia.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Alexey Dobriyan <adobriyan@gmail.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, kernel test robot <lkp@intel.com>
References: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
 <20260520-pvh-kasan-inline-v3-1-bede769c6ec7@igalia.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20260520-pvh-kasan-inline-v3-1-bede769c6ec7@igalia.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------mhJR1jnrYbl28dTfrgzwtzfE"
X-purgate-ID: tlsNG-c201ff/1779789107-E2193443-87D84596/0/0
X-purgate-type: clean
X-purgate-size: 10518

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------mhJR1jnrYbl28dTfrgzwtzfE
Content-Type: multipart/mixed; boundary="------------G04jG51tG4wXBZwiRrrI7T7Y";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Mauricio Faria de Oliveira <mfo@igalia.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Alexey Dobriyan <adobriyan@gmail.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, kernel test robot <lkp@intel.com>
Message-ID: <c47a38fb-9945-4d0f-8d19-bd455c591245@suse.com>
Subject: Re: [PATCH v3 1/4] x86/asm: move inline string functions to
 <asm/string_inline.h>
References: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
 <20260520-pvh-kasan-inline-v3-1-bede769c6ec7@igalia.com>
In-Reply-To: <20260520-pvh-kasan-inline-v3-1-bede769c6ec7@igalia.com>

--------------G04jG51tG4wXBZwiRrrI7T7Y
Content-Type: multipart/mixed; boundary="------------xLcLPnETSHv627VKGGo8W0Cg"

--------------xLcLPnETSHv627VKGGo8W0Cg
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMjAuMDUuMjYgMjM6MTIsIE1hdXJpY2lvIEZhcmlhIGRlIE9saXZlaXJhIHdyb3RlOg0K
PiBJbiBuZXh0IHBhdGNoLCBpbmxpbmUgc3RyaW5nIGZ1bmN0aW9ucyBhcmUgaW5jbHVkZWQg
ZnJvbSAnYm9vdC9zdHJpbmcuYycuDQoNClBsZWFzZSBkb24ndCB1c2UgIkluIG5leHQgcGF0
Y2giLiBZb3UgY2FuJ3QgYmUgc3VyZSB0aGUgcGF0Y2hlcyBvZiBhDQpzZXJpZXMgYXJlIGdv
aW5nIHRvIGJlIGNvbW1pdHRlZCBhbGwgdG9nZXRoZXIuDQoNCkEgYmV0dGVyIGFsdGVybmF0
aXZlIHdvcmRpbmcgd291bGQgYmUgIkluIGEgZnV0dXJlIHBhdGNoIi4NCg0KPiBVc2luZyB0
aGUgaGVhZGVyIDxhc20vc3RyaW5nLmg+IGlzIHByb2JsZW1hdGljIGZvciBhIGNvdXBsZSBv
ZiByZWFzb25zICgqKQ0KPiAoaS5lLiwgYnVpbGQgZXJyb3JzKSwgd2hpY2ggY2FuIGJlIGFk
ZHJlc3NlZCwgYnV0IGludHJvZHVjZSB1bm5lY2Vzc2FyeQ0KPiBjb21wbGV4aXR5IGFuZCBy
ZWdyZXNzaW9uIHJpc2sgKGJleW9uZCB0aGVzZSBfZm91bmRfIGNvdXBsZSBvZiByZWFzb25z
KS4NCj4gDQo+IFVzaW5nIGEgbmV3IGhlYWRlciA8YXNtL3N0cmluZ19pbmxpbmUuaD4gaXMg
c2ltcGxlciBhbmQgdHJhbnNwYXJlbnQgdG8NCj4gZXhpc3RpbmcgdXNlcnMgb2YgPGFzbS9z
dHJpbmcuaD4sIHdpdGggbGVzcyBjaGFuZ2VzIHRvICdib290L3N0cmluZy5jJw0KPiBhbmQg
aXRzIHVzZXJzIChlZyAnYm9vdC9jb21wcmVzc2VkL3N0cmluZy5jJyBhbmQgJ3B1cmdhdG9y
eS9wdXJnYXRvcnkucm8nKSwNCj4gd2hpY2ggbWluaW1pemUgcmVncmVzc2lvbiByaXNrLg0K
PiANCj4gTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQuDQo+IA0KDQpJJ2QgcmF0aGVy
IHB1dCB0aGUgZm9vdG5vdGUgYmVsb3cgYWZ0ZXIgdGhlICItLS0iIGxpbmUsIGFzIGl0IGlz
IG1vcmUNCmludGVyZXN0aW5nIGZvciB0aGUgcmV2aWV3ZXIgdGhhbiB0aGUgY29uc3VtZXIg
b2YgImdpdCBsb2ciIG9yICJnaXQgc2hvdyIuDQoNCk5vdGUgdGhhdCBvdGhlcnMgbWlnaHQg
ZGlzYWdyZWUsIHRob3VnaC4NCg0KPiAoKikgUmVhc29ucyBub3QgdG8gaW5jbHVkZSA8YXNt
L3N0cmluZy5oPiBpbiAnYm9vdC9zdHJpbmcuYyc6DQo+IA0KPiAxKSAnYm9vdC9zdHJpbmcu
YycgaXMgYnVpbHQgZm9yIDE2LWJpdC9yZWFsIG1vZGUgdGh1cyBzb21lIHR5cGUgYW5kIHdv
cmQNCj4gc2l6ZSBlcnJvcnMgaGFwcGVuIHdoZW4gPGFzbS9zdHJpbmcuaD4gaW5jbHVkZSwg
ZS5nLiwgPGFzbS9zdHJpbmdfNjQuaD4uDQo+IA0KPiBUaGlzIGNhbiBiZSBhZGRyZXNzZWQg
d2l0aCAnI2lmbmRlZiBfU0VUVVAnIChkZWZpbmVkIGJ5ICdib290L01ha2VmaWxlJykuDQo+
IA0KPiAyKSAnYm9vdC9zdHJpbmcuYycgaXMgaW5jbHVkZWQgYnkgJ2Jvb3QvY29tcHJlc3Nl
ZC9zdHJpbmcuYycgd2hpY2ggaXMNCj4gdGhlIHNvdXJjZSBvZiAncHVyZ2F0b3J5L3N0cmlu
Zy5vJywgbGlua2VkIGJ5ICdwdXJnYXRvcnkvcHVyZ2F0b3J5LnJvJw0KPiAoQ09ORklHX0tF
WEVDX0ZJTEUpLg0KPiANCj4gSW4gNjRCSVQsIDxhc20vc3RyaW5nLmg+IGluY2x1ZGVzIDxh
c20vc3RyaW5nXzY0Lmg+LCB3aGljaCByZWZlcmVuY2VzDQo+IF9fbWVtc2V0KCkgYW5kIF9f
bWVtbW92ZSgpIHdpdGggS0NGSV9SRUZFUkVOQ0UoKSwgaWUsIF9fQUREUkVTU0FCTEUoKTsN
Cj4gaG93ZXZlciwgJ3B1cmdhdG9yeS9wdXJnYXRvcnkucm8nIGlzIG5vdCBsaW5rZWQgd2l0
aCBpbXBsZW1lbnRhdGlvbnMuDQo+IA0KPiBTbywgQ09ORklHX0tFWEVDX0ZJTEUgYW5kIENP
TkZJR19DRkkgd2l0aG91dCBDT05GSUdfS0FTQU4gaGl0IGVycm9yczoNCj4gDQo+ICAgID4+
IGxkLmxsZDogZXJyb3I6IHVuZGVmaW5lZCBzeW1ib2w6IF9fbWVtc2V0DQo+ICAgICAgID4+
PiByZWZlcmVuY2VkIGJ5IHN0cmluZy5jDQo+ICAgICAgID4+PiAgICAgICAgICAgICAgIGFy
Y2gveDg2L3B1cmdhdG9yeS9wdXJnYXRvcnkucm86XA0KPiAgICAgICAgICAgICAgICAgICAg
ICAgICAoX19VTklRVUVfSURfYWRkcmVzc2FibGVfX19tZW1zZXRfMCkNCj4gICAgLS0NCj4g
ICAgPj4gbGQubGxkOiBlcnJvcjogdW5kZWZpbmVkIHN5bWJvbDogX19tZW1tb3ZlDQo+ICAg
ICAgID4+PiByZWZlcmVuY2VkIGJ5IHN0cmluZy5jDQo+ICAgICAgID4+PiAgICAgICAgICAg
ICAgIGFyY2gveDg2L3B1cmdhdG9yeS9wdXJnYXRvcnkucm86XA0KPiAgICAgICAgICAgICAg
ICAgICAgICAgICAoX19VTklRVUVfSURfYWRkcmVzc2FibGVfX19tZW1tb3ZlXzEpDQo+IA0K
PiAoTm90ZTogdGhpcyBpcyBub3QgaGl0IHdpdGggQ09ORklHX0tBU0FOIGJlY2F1c2UgJ2Jv
b3QvY29tcHJlc3NlZC9zdHJpbmcuYycNCj4gYWRkcyBhbGlhc2VzIF9fbWVtc2V0KCkvX19t
ZW1tb3ZlKCkgdG8gbWVtc2V0KCkvbWVtbW92ZSgpIGluIHRoYXQgY2FzZS4pDQo+IA0KPiBU
aGlzIGNhbiBiZSBhZGRyZXNzZWQgd2l0aCAnQ0ZMQUdTX3N0cmluZy5vIDo9IC1EX19ESVNB
QkxFX0VYUE9SVFMnIHNvIHRvDQo+IGRpc2FibGUgS0NGSV9SRUZFUkVOQ0UoKSBpbiAncHVy
Z2F0b3J5L01ha2VmaWxlJyAoaXQgcmVtb3ZlcyBDQ19GTEFHU19DRkkNCj4gYW55d2F5KS4N
Cj4gDQo+IC4uLg0KPiANCj4gSG93ZXZlciwgc2luY2UgYSBjaGFuZ2UgaW4gdGhpcyBzZXJp
ZXMgd291bGQgbmVlZCBtb3JlIGNoYW5nZXMgdG8gYWRkcmVzcw0KPiBlcnJvcnMgaXQgY2F1
c2VzLCBpdCBpcyByZWFzb25hYmxlIHRvIGNoYW5nZSB0aGUgc2VyaWVzIG5vdCB0byBjYXVz
ZSB0aGVtLA0KPiBieSB1c2luZyBhIHNlcGFyYXRlIGhlYWRlciB3aXRoIF9qdXN0XyBpbmxp
bmUgc3RyaW5nIGZ1bmN0aW9ucy4NCj4gDQo+IFJlcG9ydGVkLWJ5OiBrZXJuZWwgdGVzdCBy
b2JvdCA8bGtwQGludGVsLmNvbT4NCj4gQ2xvc2VzOiBodHRwczovL2xvcmUua2VybmVsLm9y
Zy9vZS1rYnVpbGQtYWxsLzIwMjYwNTE0MDkyMi5xN0lsVXY3by1sa3BAaW50ZWwuY29tLw0K
PiBTaWduZWQtb2ZmLWJ5OiBNYXVyaWNpbyBGYXJpYSBkZSBPbGl2ZWlyYSA8bWZvQGlnYWxp
YS5jb20+DQoNCldpdGggKGF0IGxlYXN0KSBteSBmaXJzdCByZW1hcmsgYWRkcmVzc2VkOg0K
DQpSZXZpZXdlZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KDQoNCkp1
ZXJnZW4NCg==
--------------xLcLPnETSHv627VKGGo8W0Cg
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------xLcLPnETSHv627VKGGo8W0Cg--

--------------G04jG51tG4wXBZwiRrrI7T7Y--

--------------mhJR1jnrYbl28dTfrgzwtzfE
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmoVbTIFAwAAAAAACgkQsN6d1ii/Ey/y
Zgf5ATlUGhA4A6bzI1paPnuf1yy/kyhy0R/RePLpm/7L3xAjB6sasDf7YbW3PzTN9F0xuCkQURzF
IDPOKTnxOJR+VSBLofuexkFkXYzHh5QpXw7P2MP2jtKPUU2vRYbHPxTjW/3QumwUjub4yAC8H4bn
dkskA71G2S5bNiBCVBX7y0N2cbP5/TlXndT8eQolFASfJs8cuzS6M4DMACDLqy/YXfUtlw9jG9ZG
0RsWK2m5oav98vG0dNB47PE3iaWWxQq69Gw34s/CAPffSixk8IvZzmxP2QZg6jLoINJ0KwtRfzC/
7n/juipr++EDKTd87g/89+LfF985RkF+MQkXs6f61g==
=1xpJ
-----END PGP SIGNATURE-----

--------------mhJR1jnrYbl28dTfrgzwtzfE--


From xen-devel-bounces@lists.xenproject.org Tue May 26 09:53:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 09:53:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319758.1587230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoT9-0006O2-99; Tue, 26 May 2026 09:53:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319758.1587230; Tue, 26 May 2026 09:53:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRoT9-0006Nv-5Q; Tue, 26 May 2026 09:53:03 +0000
Received: by outflank-mailman (input) for mailman id 1319758;
 Tue, 26 May 2026 09:53:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wRoT7-0006Np-RJ
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 09:53:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRoT6-009xEp-W1
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 11:53:01 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a156d6b-5cb7-0a2a0a5109dd-0a2a45079332-24
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:53:00 +0200
Received: from [209.85.218.49] (helo=mail-ej1-f49.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a156d7c-229c-0a2a45070019-d155da31e0cc-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 11:53:00 +0200
Received: by mail-ej1-f49.google.com with SMTP id
 a640c23a62f3a-bd01481e592so1432492166b.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 02:53:00 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc65dbd3bsm492049066b.54.2026.05.26.02.52.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 May 2026 02:52:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779789180; x=1780393980; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=azYsi5cAqszAW4us9NmlOoFAFK3CU+iDXBFTRZwMd/Y=;
        b=dnc9lONj+2IiZxodt5RUj030SGt/fU3DAQvVrHq9oVio9jP+te6D5zFy4VaDH8d+nz
         wEJXNMomRPcHk54laenyuhi1qKXJ6gUqB9kw7zqbqyFq7yDf/aPvNIoP4aTzl91Zr5Bh
         qKwF6+wDS4f1jmsXNtPEWlDIw+nmAI4ggCVVSpqEC8kUPk8Zmnd8M01kuoxkMqjkNamP
         9/RBOZmp2HVpNMlHWhxo5plOiK5ayW5rOFLODCCOl8ak0nQxvlSAFThSvc6oosJITuX2
         sERrwl4Qc/kXsqYnKX90UUJpeReTl+EbaMnToMj9qwiMEbvsOZt1sZbEo0B1+i7lPJS4
         KvPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779789180; x=1780393980;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=azYsi5cAqszAW4us9NmlOoFAFK3CU+iDXBFTRZwMd/Y=;
        b=UWQ7wnRGrh/Nze3o0YDZv7xKjg9NVi6hLsInOjw+AmWlczktQsVp2tp44JtHN31n4G
         xQWPCm73ueRAbDLCBDWT2MPDU0n1kTPxt6JIlaVJ1k5fHjqbMXJ9yQhMworTMm9ku9WT
         KSAvhDbgT4mj42u7oL8ChGSGikGRSwPRChwO9Ua4KHEJ5cXyVARQOwTtNOsgTfcjHSUY
         JHfyQSfbHU5DlE5mQsDBRALzDA/e2aiSWd/cY7dKTUwZyKD4wj7Kvk4MjfAnkYE2+bKc
         N2brgHb8q6C60qchu1VDs4+0JSkUnB14SYy1n5IsccrwAQ9j8JLTWlcgq6GuU4SGAP0s
         ogzQ==
X-Forwarded-Encrypted: i=1; AFNElJ879jfWG9+4C/3tIzgz7MesUq80+Pf03hV0wrc1Ez//LIC9KXoB+0jB+o2IhI9KfcrOLO9urIZdUr4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy81/P4J8mjobZ/KLY5p3n9mK48sbq/nhEjxS0VCcpkHPgEqYAJ
	VSccQG6nQ1UyWlvZg1HyOPajEpVV+leShXFgmoFy9jD+U+L5ukrDfbCJFK1pmRSY5z8=
X-Gm-Gg: Acq92OFSfSFr7TsT3T3LG0uBQT7uxB+sOMDc+CkQnWfQZn76lpzJ/fZ/eB8W1TwDKI8
	kw0JyXUo3YDiQfY1NrHt2PnSy04+ZQbgMkTV3FseEx80PnBFZzgCsl4vJmqMqsAfqNrZnV9I/Bd
	7ixbCQBR/mNu/N7Yu4LMO+3r69hOTwtrNYS4MRcHkpiEg6Ief08pGBIYBbT+sF8Sd7CdgQAOGjH
	QzN78WaDanDpt5dJNcTJlChFuCwCZiyozfPl26uD1OS3MI85OY6ayrXTqQ5tyocNG7AFjDYCxuh
	8JDjk5W+kNWVxRdybywIZbE08DIIKPj07OcjHRsPFjTGRJHP0YaP+bu5R5ZOWVvRpGpQWw05Y1b
	87lso+3kOjn51PHIpBwNd7JhhDPlOQ+lRGP2ImDBml8I+xzgdyquJ5E4vjQOxI7GZ1c0VCD9V/n
	aWx4OUhHLUVbhHJe1GHPGe9xIAqgm3q2/MaJ5fzs54g2bsdT41LR/+UOXsbFDe65EjlRzy3Qt3b
	8PcQv8sp7xemLRfr7S3qR5KNw1rTRZnaqfuoFFmDXylEYlM269O0g==
X-Received: by 2002:a17:906:9fca:b0:bb8:b593:edba with SMTP id a640c23a62f3a-bdd268c0933mr1035680666b.38.1779789180260;
        Tue, 26 May 2026 02:53:00 -0700 (PDT)
Message-ID: <3aaa12b1-042b-453d-94d2-9305afa15ff2@suse.com>
Date: Tue, 26 May 2026 11:52:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/4] x86/asm, x86/boot: expose inline memcmp
To: Mauricio Faria de Oliveira <mfo@igalia.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Alexey Dobriyan <adobriyan@gmail.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
References: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
 <20260520-pvh-kasan-inline-v3-2-bede769c6ec7@igalia.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20260520-pvh-kasan-inline-v3-2-bede769c6ec7@igalia.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------e0zVQwFgDO0B1eS5FGXsOHUm"
X-purgate-ID: tlsNG-ef75cf/1779789180-22F76C48-F17DD51E/0/0
X-purgate-type: clean
X-purgate-size: 7042

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------e0zVQwFgDO0B1eS5FGXsOHUm
Content-Type: multipart/mixed; boundary="------------eTOsP77i9qv2Y2J0nooRQzYX";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Mauricio Faria de Oliveira <mfo@igalia.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Alexey Dobriyan <adobriyan@gmail.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
Message-ID: <3aaa12b1-042b-453d-94d2-9305afa15ff2@suse.com>
Subject: Re: [PATCH v3 2/4] x86/asm, x86/boot: expose inline memcmp
References: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
 <20260520-pvh-kasan-inline-v3-2-bede769c6ec7@igalia.com>
In-Reply-To: <20260520-pvh-kasan-inline-v3-2-bede769c6ec7@igalia.com>

--------------eTOsP77i9qv2Y2J0nooRQzYX
Content-Type: multipart/mixed; boundary="------------BXbf0LBiH8UsRo4K4do9SRvx"

--------------BXbf0LBiH8UsRo4K4do9SRvx
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMjAuMDUuMjYgMjM6MTIsIE1hdXJpY2lvIEZhcmlhIGRlIE9saXZlaXJhIHdyb3RlOg0K
PiBNb3ZlIHRoZSBpbmxpbmUgbWVtY21wIGZ1bmN0aW9uIGN1cnJlbnRseSBvbmx5IGF2YWls
YWJsZSBpbiAnYm9vdC9zdHJpbmcuYycNCj4gYW5kIGl0cyB1c2VycyAoZWcsICdib290L2Nv
bXByZXNzZWQvc3RyaW5nLmMnIGFuZCAncHVyZ2F0b3J5L3B1cmdhdG9yeS5ybycpDQo+IGlu
dG8gdGhlIGlubGluZSBzdHJpbmcgZnVuY3Rpb25zIGhlYWRlciA8YXNtL3N0cmluZ19pbmxp
bmUuaD4gdG8gYmUgcmV1c2VkLg0KPiANCj4gTm90ZSB0aGF0IHRoZSBpbmxpbmUgbWVtY21w
KCkgcmV0dXJucyAwLzEsIG5vdCAtMS8wLzEgYXMgcmVndWxhciBtZW1jbXAoKQ0KPiAocmVw
b3J0ZWQgYnkgRGF2aWQgTGFpZ2h0IDxkYXZpZC5sYWlnaHQubGludXhAZ21haWwuY29tPiks
IHdoaWNoIGlzIG5vdA0KPiBjYXVzZWQgb3IgY2hhbmdlZCBieSB0aGlzIGNvbW1pdDsgdGhp
cyB3aWxsIGJlIGFkZHJlc3NlZCBzZXBhcmF0ZWx5Lg0KPiANCj4gU2lnbmVkLW9mZi1ieTog
TWF1cmljaW8gRmFyaWEgZGUgT2xpdmVpcmEgPG1mb0BpZ2FsaWEuY29tPg0KDQpSZXZpZXdl
ZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KDQoNCkp1ZXJnZW4NCg==

--------------BXbf0LBiH8UsRo4K4do9SRvx
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------BXbf0LBiH8UsRo4K4do9SRvx--

--------------eTOsP77i9qv2Y2J0nooRQzYX--

--------------e0zVQwFgDO0B1eS5FGXsOHUm
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmoVbXsFAwAAAAAACgkQsN6d1ii/Ey+y
Lwf+Ph/SEvGokyW06pJamBC5EBcOFOQAi9Dpb9jQcnP4qMgJzvkKh+E3PlYd+VKN7YJkgdaMpszl
QX9ytMs54ADAR05gdNt9uyMmfm6XE8SIHGLCG8qC/YEykD+XzRwbC0i8c519NCmBOwOOymH8gkAa
5wL30LDpIepaUJd9Hn+BBCtW5ccIw90G3306XaXCTaKJauectXjp2UMuLut/AR2RqG1FfurLgoAS
l85xS+nZt6VlNQiUmpnClnyQtkZCOnCqP6RwpgcoC9Fuzwc8+vf/VSdZ7oJLqOo/uLQ+SeUr44JH
+iCNLtiQTR0yl+V3/Tf4VTKBdgGyJ/G10GMyiyOe7w==
=o3oP
-----END PGP SIGNATURE-----

--------------e0zVQwFgDO0B1eS5FGXsOHUm--


From xen-devel-bounces@lists.xenproject.org Tue May 26 10:10:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 10:10:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319766.1587240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRojP-00010a-KV; Tue, 26 May 2026 10:09:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319766.1587240; Tue, 26 May 2026 10:09:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRojP-00010T-Gf; Tue, 26 May 2026 10:09:51 +0000
Received: by outflank-mailman (input) for mailman id 1319766;
 Tue, 26 May 2026 10:09:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wRojO-00010N-5G
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 10:09:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRojN-009628-0h
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 12:09:49 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a157163-5cb7-0a2a0a5109dd-0a2a4507a380-14
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 12:09:48 +0200
Received: from [209.85.218.46] (helo=mail-ej1-f46.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a15716c-229c-0a2a45070019-d155da2eb142-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 12:09:48 +0200
Received: by mail-ej1-f46.google.com with SMTP id
 a640c23a62f3a-bd5047a2a4cso1585739866b.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 03:09:48 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc325b5e3sm486408066b.25.2026.05.26.03.09.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 May 2026 03:09:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779790188; x=1780394988; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=ARvoo4ps5PyKoqoRjVR6aJ03Lwsj9aVLKRNsEMTOXbk=;
        b=ZXi/GJEgZClwn7yW9BNXMmDTbIT6Ox3SpBnyNx1eB0i4r3EG+JH0VL8/QiM7gGdpWm
         a0fsorl1DAYORrqqJUIYAL8mQBR2zYGcUjEelXcbLS6oUIzfQnjYPOzv16week/uJnIC
         Gtkl426bQ8qpeKw0HT4Nf+ljL1pT/4y5ScVeI3IgxFk/oHRL9qOtw9y6sQhe7CL5PPC7
         VXCvPtU7nfhc51s8if02x+n+ettqgOO8gdAV2L0tU5tVViJsUnWT0GZyJgsMn6iTf2/y
         aka5DBkX160rGQYKLRWvGwxYvITi5U5IFgQSCy8IOHQwzRLcZXw5XJo5M9TINY7QKKIU
         W+6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779790188; x=1780394988;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ARvoo4ps5PyKoqoRjVR6aJ03Lwsj9aVLKRNsEMTOXbk=;
        b=WM5q0KPEJ6uqbgE2Lyf0BIktR/bc1u/5A5ArasLqZRiiQ3jNXTqMal8c36WzK5sQdT
         q6Zi39w/ftxZ7zOqlU8tyf5119wgCunjc2gbuDZf8HcPgi0vg2ET+C2Ktg+8FEjnDTwI
         JvkyGkrEB2c4zjco5PsSJuUC/yZO6jedEv24BBH/jJllnuPo5d4TC1FGt7vKdQ7AqdHE
         fyF1CUU+h7TiMhSnRLxJiBrIKfhIUF8PK6V1KPYcv172kWO08edQHGKkVuspGo6gGkrf
         BiPp/Wk4myKTNu+nhCxgVfZD5Ds/WN7/DwdwIu3faFR8uyaF9XZU6zoUajOk2kg06QYv
         ifSQ==
X-Forwarded-Encrypted: i=1; AFNElJ+6tMHG/HkA9IonO+6KUtxdLhRqgcWaNsA2f25HC72GRpqrgx0A4vR5z/JkAPJL7dGCObfGmUWKtHQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxsDWj5yhEFDGVDrgE48raiMMUdI3+hp6Tuj/99azvP3SbxbQfy
	xp8cd1AwxIPUacUMijK0PjZahfwI0z/ZUnGvlK4uRVo8dTmFXPdemXYKNS2bwTzeYac=
X-Gm-Gg: Acq92OHuTwYrISM7XXQF4j/hQhJBlGG+ZVf46vsqKzbPAjWEVLhz74DqDsosoX1dENi
	8atqi0qjo84qopFchAMdCQrvyQXEdJA17MhMryG7YMK4yDCAeREfAHzuCXZIU/8n7HLz7H1kKuh
	VrPfYkRYZ5h+WCjgiBkwkXczkLn0DPAf/2lIbMvkmfhHhLpqax9qx1DldTSztLgH+4MX32TFv2p
	qUDMNTnLF0t/l92L88hDFg0KVRdY8E64EWCqNmLAWHmJXwYSmlzM5WZCJHHcJHfZasQmilv69aM
	UusX7vlSrytktVLhb1y+TKp6HmVQ/oMhAjsjGKL7wqnDpLf1Rm+QGid+nZZpRC7JxVZA8fzpz+i
	9kQTb2cOBBHKI8wizNhz52mPLq2YnMENCxEmrscmBXUgKGI/6qLTkXTLzwr/+7gfBiht1NnMMRB
	peVLJ1bpg0viIAXPntDhor4J07JNXtQIKUlaNDkYSkxkd8fqhodLN2qpitYO4jAX6R5Hfwdk7xx
	UAOVLpL8Ol5Uxm4F7Ip6Nl+vW6kCsXIhujQiu6h6YIHFm272XpgRA==
X-Received: by 2002:a17:907:8dcd:b0:bab:cab:c372 with SMTP id a640c23a62f3a-bdd261cfb41mr1033818066b.22.1779790188116;
        Tue, 26 May 2026 03:09:48 -0700 (PDT)
Message-ID: <f21b3696-187e-4526-9c34-bb56e9000898@suse.com>
Date: Tue, 26 May 2026 12:09:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/sched: remove stale file path comments in
 common/sched directory
To: Furkan Caliskan <frn1furkan10@gmail.com>, xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com, dfaggioli@suse.com, gwd@xenproject.org,
 stewart.hildebrand@amd.com, jbeulich@suse.com
References: <20260525102539.27050-1-frn1furkan10@gmail.com>
 <20260526075236.14265-1-frn1furkan10@gmail.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20260526075236.14265-1-frn1furkan10@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------CtOfKFV2vsYs1GpvSP3H6IyE"
X-purgate-ID: tlsNG-ef75cf/1779790188-20D67C48-A753B9D5/0/0
X-purgate-type: clean
X-purgate-size: 8545

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------CtOfKFV2vsYs1GpvSP3H6IyE
Content-Type: multipart/mixed; boundary="------------cuHNIJvxqzySdPgOGEodOU4k";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Furkan Caliskan <frn1furkan10@gmail.com>, xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com, dfaggioli@suse.com, gwd@xenproject.org,
 stewart.hildebrand@amd.com, jbeulich@suse.com
Message-ID: <f21b3696-187e-4526-9c34-bb56e9000898@suse.com>
Subject: Re: [PATCH v2] xen/sched: remove stale file path comments in
 common/sched directory
References: <20260525102539.27050-1-frn1furkan10@gmail.com>
 <20260526075236.14265-1-frn1furkan10@gmail.com>
In-Reply-To: <20260526075236.14265-1-frn1furkan10@gmail.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------cuHNIJvxqzySdPgOGEodOU4k
Content-Type: multipart/mixed; boundary="------------70wKCniftKvhvUaYpCaquobo"

--------------70wKCniftKvhvUaYpCaquobo
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMjYuMDUuMjYgMDk6NTIsIEZ1cmthbiBDYWxpc2thbiB3cm90ZToNCj4gQ29tbWl0IDZj
YjRiMDFjMDMgKCJ4ZW4vc2NoZWQ6IG1vdmUgc2NoZWR1bGVycyBhbmQgY3B1cG9vbCBjb2Rp
bmcgdG8NCj4gZGVkaWNhdGVkIGRpcmVjdG9yeSIpIG1vdmVkIHRoZSBzY2hlZHVsZXIgZmls
ZXMgZnJvbSB4ZW4vY29tbW9uLyB0bw0KPiB4ZW4vY29tbW9uL3NjaGVkIGFuZCByZW5hbWVk
IHNvbWUgb2YgdGhlbSwgYnV0IGRpZCBub3QgdXBkYXRlIHRoZQ0KPiBpbi1maWxlIHBhdGgg
Y29tbWVudHMgYXQgdGhlIHRvcCBvZiBlYWNoIGZpbGUuDQo+IA0KPiBSZW1vdmUgdGhlIGNv
bW1lbnRzIHJhdGhlciB0aGFuIHVwZGF0aW5nIHRoZW0sIGFzIHRoZXkgYXJlIHJlZHVuZGFu
dA0KPiBpbmZvcm1hdGlvbiBhbHJlYWR5IGNvbnZleWVkIGJ5IHRoZSBmaWxlbmFtZSBpdHNl
bGYuDQo+IA0KPiBTdWdnZXN0ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBj
aXRyaXguY29tPg0KPiBTdWdnZXN0ZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNl
LmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogRnVya2FuIENhbGlza2FuIDxmcm4xZnVya2FuMTBA
Z21haWwuY29tPg0KDQpSZXZpZXdlZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2Uu
Y29tPg0KDQoNCkp1ZXJnZW4NCg==
--------------70wKCniftKvhvUaYpCaquobo
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------70wKCniftKvhvUaYpCaquobo--

--------------cuHNIJvxqzySdPgOGEodOU4k--

--------------CtOfKFV2vsYs1GpvSP3H6IyE
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmoVcWsFAwAAAAAACgkQsN6d1ii/Ey++
gAf+OGSA++R8zRyWktZOeWxn4U8mAskKUkAXUQajP5BbIWk0XhkUjaZa1JwAdK8QwfmxSAlu6NZ7
QrxozkM48zkREYDYBqZw6w1q860sAkPpZOT4qbgSgFZTYJZSv+4Qk+VeIPZlbfYrjIcDrX0/JEU6
+wj0P5d/8E+z8LeXpUoXJ7WA+zKnUMLBpMurmFR88zhQUGTvq+MUnlXgj+c1HAsuWnId4LwQWNf9
/Z5c3AkrwpYhWBUsP0bhNL16t3dgqOH933zuiN11u8B/ACRA4NH4wGD1bWLvU+TW3nOJxmeh2mOa
eY4Cc/j5CRAIxSEqIvUUOwAaLX01CyelXr2jAYjkaA==
=NZoa
-----END PGP SIGNATURE-----

--------------CtOfKFV2vsYs1GpvSP3H6IyE--


From xen-devel-bounces@lists.xenproject.org Tue May 26 11:26:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 11:26:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319795.1587248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRpv3-0002sc-TY; Tue, 26 May 2026 11:25:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319795.1587248; Tue, 26 May 2026 11:25:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRpv3-0002sV-QD; Tue, 26 May 2026 11:25:57 +0000
Received: by outflank-mailman (input) for mailman id 1319795;
 Tue, 26 May 2026 11:25:56 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wRpv2-0002sL-8A
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 11:25:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRpv0-000ZGh-TW
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 13:25:54 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a15833e-e002-0a2a0a5209dd-0a2a45029d6e-16
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 13:25:54 +0200
Received: from [209.85.221.48] (helo=mail-wr1-f48.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a158342-af86-0a2a45020019-d155dd30b018-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 13:25:54 +0200
Received: by mail-wr1-f48.google.com with SMTP id
 ffacd0b85a97d-43fe608cb92so6360483f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 04:25:54 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45eb6d4741bsm36242088f8f.22.2026.05.26.04.25.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 May 2026 04:25:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779794754; x=1780399554; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=eEi+juF+pJ3q/uC5HEr+cFkSFHLKHyVQnXsMKOFgej8=;
        b=rZDJoWW7tQJ5xlj0VGCRkY6Owh1BX0v5FtDf05+9nQki1yYPkE+XcOVNMk6J2uSWpQ
         7LjAyK/YDhpfGYoXH+qB0gQTiWJHrUnyU4HV7AnQ2qXi2M36w6FDLMjuCyacHN76JiIM
         qhFp6LsH2BbXFTk1UWJmW2Fqc10UP4BIYEb0RxE20zwc52K2ZJxCbBzW1EL6uTaXMEwd
         qCJP35qVltPIVx3afOjq+CUB4vi1naKMqm7TRbiTHMnBpOc7Knw7pZPKw8NRA9kFA2G5
         E+Wexo53qKvz2H0cQEgxvfgNz5pCsAQGmsOuje3+MaWS98gbxDUqy+vnXyqyE58pTO2X
         XnQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779794754; x=1780399554;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=eEi+juF+pJ3q/uC5HEr+cFkSFHLKHyVQnXsMKOFgej8=;
        b=kcXCrDir7FPMoqu+XN49wuZ1gjvK7k8MMyxeqde/CZgCFteZekY62yyuOjYinqI5yf
         BgqVEC015LeyT/LVkYKL/ozO1SsHpdMnEMb8xKYdw3Psm2cfkyln81Mxf1Wcsi006iWL
         0Ee6pPfgr1EglZzh8RlZ8BeeiX49KRCjRYD8PtueoXy+tAu2z/h4fmfAHdzB6mdlKeOU
         gxHKqrXPq/54H7aHzRiUXr0WWafvzzAl0hhTFKhKkQwK7sCjbZ8YF0hXFBXyzg+6xvTQ
         e7Ij47J10VrSTGfgbM24cJgDzcOyY0aSekHWv1VRGtO2w2Lal/rH0C49omfmQrimIq+v
         LBjw==
X-Gm-Message-State: AOJu0Yz6SEnUXDv5rKGfGcHou+QxFqeRoh3NKm4NOVIbDZ4TXLeeuy9z
	Pxh0EN7Gd9TWbOMD/CEtKcAR+ctOBh5ycVVto9/UxrKr11558OpU81pa
X-Gm-Gg: Acq92OG4iTZjCi4Ifxu43TBuIGySZofnlnAyihQay0GfzYe1iiOXeyzNCfb3m67mrXE
	hgHBsFVYavGEQB445ecpllxVsjs/g6jNfK8fxNH4p0vGgFjS3rbmX7+64bKODV13BvM9/vQsTN0
	TmmB93fppycNULcUAj7ymMYPmDcBBroArPzS9tX70ZNuBMdJcxPTNS0cV0QZjNQPQR3DO6TxawO
	qm0UzMyNTzQkk5spaMf2ZW9Dd6HpGs81cZq3M1r6GR16QCQ5R4WBr+USdx2gHzSvFkK5hZzTG7X
	oH/lMfeEWVtGrOFfkobUH0AMHRAl0iafySR3sIShOKqcIO5T1j980BpZuTgGkVZtZ/vB8UQsLwZ
	ymS0sbn5gCrWUrY0gKvAR06sznsCb/pc6TgCfUMKhEAJ/kLx0SkfhaIjsx+UEm/H4Oz2BPY29Mg
	b++sToRQXBLMoSsl8bebne+XBPoLqT9pSRfag6619aCtG7+zgM3oWapTnOzfGTB3EUFwO+Ro6kU
	Ok=
X-Received: by 2002:a05:6000:2384:b0:441:3144:efc5 with SMTP id ffacd0b85a97d-45eb38e4fd0mr31160108f8f.42.1779794754032;
        Tue, 26 May 2026 04:25:54 -0700 (PDT)
Message-ID: <6837fb94-97e3-4119-a330-a000706a8c92@gmail.com>
Date: Tue, 26 May 2026 13:25:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22] EFI: Fix boot from a device without a file
 system
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 =?UTF-8?Q?Szymon_Aceda=C5=84ski?= <accek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <5ee376dc0df448437f386ab2606c42d63a515ca1.1779194154.git.accek@invisiblethingslab.com>
 <agxoiG_JLs_84rY5@mail-itl> <e06a61c8-c2b3-4eb1-a118-41e1a70db77e@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <e06a61c8-c2b3-4eb1-a118-41e1a70db77e@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1779794754-80D7F161-4DF437B5/10/73395122804
X-purgate-type: spam
X-purgate-size: 1794



On 5/19/26 3:45 PM, Andrew Cooper wrote:
> On 19/05/2026 2:41 pm, Marek Marczykowski-Górecki wrote:
>> On Tue, May 19, 2026 at 03:06:57PM +0200, Szymon Acedański wrote:
>>> When netbooting a unified Xen kernel image (via GRUB chainloader),
>>> the resulting loaded_image->DeviceHandle does not support
>>> SIMPLE_FILE_SYSTEM_PROTOCOL.
>>>
>>> Instead of crashing via noreturn PrintErrMesg(), print a message
>>> via PrintStr() and return NULL from get_parent_handle().
>> It's worth noting this isn't the first instance of returning NULL from
>> get_parent_handle(). The return value is used only as an argument
>> to read_file() (sometimes indirectly), and if it gets to be called with
>> NULL, read_file() will terminate execution via PrintErrMesg(). But with
>> unified Xen image, the intention is to not call read_file() at all, only
>> read_section(), so tolerating get_parent_handle() failure in this case
>> is desired. Keeping the message in place will ease debugging if
>> read_file() will actually be called later.
>>
>> Acked-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>>
>> As a side note, a slightly better approach would be to call
>> get_parent_handle() lazily (on the first call to read_file()?). But it's
>> a bigger change that I feel may be too late for in Xen 4.22.
>>
>> Also, adding cc: Oleksii for release ack.
> 
> Bugfixes are still fine to go in.
> 
> Personally, I think moving the call to get_parent_handle() is a better
> fix, and fine for 4.22 even at this juncture.  ARM already does
> something along these lines in allocate_module_file().

I agree that we could consider suggested better approach and I am okay 
with having this patch (or its new version) as part of 4.22.

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 26 12:41:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 12:41:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319823.1587283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRr5m-00059P-1l; Tue, 26 May 2026 12:41:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319823.1587283; Tue, 26 May 2026 12:41:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRr5l-00059I-VD; Tue, 26 May 2026 12:41:05 +0000
Received: by outflank-mailman (input) for mailman id 1319823;
 Tue, 26 May 2026 12:41:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wRr5l-00058d-Bw
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 12:41:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRr5k-00ClXI-OC
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:41:04 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a1594d7-bab6-0a2a0a5309dd-0a2a4505e7ba-34
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:41:04 +0200
Received: from [40.93.194.56]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a1594de-aaa8-0a2a45050019-285dc2381ef9-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:41:04 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by SJ0PR03MB7128.namprd03.prod.outlook.com (2603:10b6:a03:4e7::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Tue, 26 May
 2026 12:41:01 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0048.019; Tue, 26 May 2026
 12:41:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DX4hnhIhUMzH5xJYI8n4exErVPF2hrtHGzSLqRW4LBf1UwpFR4Jq+Kbg8cEmLC4xOt2l2FgekUo+iYSTk/nxrh+0qsF4PlNmDsadgOgznxmsCA8SrFfFym3z1i+rVR1/1R/vLYpGoGoFFfuiqTxNpuQdZ//qSnLtXWxsyHRQxMn6IcwoZmhMUutqlUAzdm6Kx58QYQCTELKw0NomZvurFJJPuCsEyCOmtl9pxU1HSnBz62mfKHzeZPFkd59A5k0pkz/H58uwbaultan2nLTjJDahdv2QZtQas5sN1dlKcefy2RBZ//hZeU5WCG6MZfbE/LWe++RZsUY/vjHR06D3mQ==
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=LWMikWuNE1CofULtcpk66E7js8YBw9GYbEL8d8M+Jwk=;
 b=BKFBD70v8EQ92fjfcn8JRNVi8LhSHWv3xbhYQ+2XRA4Qvv3ymjf0D0fMq+1W00cZ59UDo+7O2/HqnXghp9E6c9Klt1yMI/5q+OLsi1OZaSAkhKPrLLG0TnL2kbeKhTxnestUE4m1eHNUAXoD0CDooeDbl4qAinbNxQ4zjrsGSvy14kLOf17mVUD6AYLxoYN0W5xhxcWMaAEhHsVErz8RgzLAioSvGWCLr9SIth4MhKpYfDU4e7sfQyg+iKcgwBzwpf6T4kckaAUkUXYVemCQnHynmpUs0jQflPJAIbOrdDcwczaR03gPhOAik/7t+3CqKY103yv1dW1coocPzLu77Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LWMikWuNE1CofULtcpk66E7js8YBw9GYbEL8d8M+Jwk=;
 b=mg2IEcZmmSw2ZsRxO9Ak050kZC948GIhcluM2gCc26Wh1Ugle2LayEYH8ttaIsTbKbp/jfU2mPp+7bnXADHAiCRRTIMugIu3a0SDnIA4ImcTRe6i7QwayBI8UU29jU8e92eQ7KVucv3V0h9JILHec/uwxjuRWM8OgInNPWpMwzo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v1 3/6] nestedsvm: Use the correct VMCB for vGIF
Date: Tue, 26 May 2026 13:40:24 +0100
Message-ID: <20260526124027.573412-4-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260526124027.573412-1-ross.lagerwall@citrix.com>
References: <20260526124027.573412-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0368.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18e::13) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|SJ0PR03MB7128:EE_
X-MS-Office365-Filtering-Correlation-Id: 9b7efee9-8faa-4788-cdcd-08debb240ae3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|11063799006|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	jx1QlFg6BU3KPd6wIcPxLg/EsPngwF32BXKTTXtR0mzXORvPb4n8pff8yz/TMiYBwXoMdbovPcGbrLUGINnHhj0QA0ppiYQYfYDHN+VCWPDfnuQf2KswQrtR9fLb8077Vq0J29+JKrsQlrFE9/+hnDpc78MQssRmltPaANct4uYQBmOTwH6vodbF9q7KbQ4meiuInlR1XuJVz3K3T1FBK3jSvXzDreAqv/Bdk3cF9VPPbhn5JYpiFB2jMG/Eyg1j2w4OyL9TsQKtJrX9Kd+/T7ZYL+R1CgnySeyiHxZofK1Eb5okqxzD06D6ZZ8PiTW1T8dtv9LB91bYhoEHJlgDqOXHFKJsvq2F2RxW08R5KP6N9GEQ7WFZ9GcYrSLidVceit/wO1WN+T6hd05ucw0q/DpA9weyozN6KXkB+/FQHv/FOfpIm/m4J7LUgWgkfRkt8sp9ENLAZk8KJG5uoUW47qvtRaPBkeCySt98QO9aJ2CWa+qYroLLl78BhsEHkW1aZPDmS8chzILtIMPLYD8PPIV2EcSu/4HlBYHSWrjq6fpDEXrbLJY8WUzyrtjio6NiCQ7YTXQtAVxAo0DELC3mUxxi7i9amWIJWMjD/H56jzdLcj5Af4E3bldM926zrw6PrVZVJgjcflsfUcnYtKFnhr7GjuVIP0+/MHlIHKsvK0fI8AMaHfPmifUb2tTUeDXg
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(11063799006)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?fwAcbmN2pp5v9cDEwIAm5DqZhytA5zwBeir5nqiuEOW0e+D3zwH9hzrbrvFC?=
 =?us-ascii?Q?U2++nKvdotopu+YKnBZN5n9NiMYgV8j3RamoAgwOAYGlBFkeDXJMG5at2w+p?=
 =?us-ascii?Q?alYFp0VSkplGLAC5gVqW7jfPW4lmmb+1ydS0bSm6ENJRnXdoJwy8tRlEBor3?=
 =?us-ascii?Q?Kv2NBs9ggziN4diEUxondbNmTcFRIMwN+qqU+s+vfX9JJHvXIpGsKekRvlqs?=
 =?us-ascii?Q?cPY3yGQZicD92YgB4qfgNtsTNGZm24icsgPC5L3nrQ+aEjF7f0YSGF6AxBuU?=
 =?us-ascii?Q?xk9mdZbAWlOvloJAgVFJL+vQgx0zxuOg8wkrXSRiEuTAj/vLzicvibyTMRMy?=
 =?us-ascii?Q?TuJ54jBUFeCiyWaCJlSpXF7+5izxkvasyHEJp0J+CBl8Of9O/AE5kZfO7uDd?=
 =?us-ascii?Q?uiS/cRRsUV1Gvzaea9O+uf4juTyKNuOAYvOIFvqpll3eaXRXP8yjQIbXq8qf?=
 =?us-ascii?Q?tp0YOCuh7yjmKU7Qpr4NsBsiR4lOwxB1rpK/TwxMdubTyzLssjV3LbuFb/WM?=
 =?us-ascii?Q?2uGvN34ynybE80lzx2ojHfTvbLd7uKCFr7p6yXV9D7qUinNrSMGMsPrVrz/6?=
 =?us-ascii?Q?MPSHcHBGQdGtrxcyTxsUhNf4c7NiExOArjWL6I0LHmp+wcGxMlMQoZHnG8aV?=
 =?us-ascii?Q?6FYIJkLf4YzNWHNDDuSpEF/5o6KizYiQsSJcPnYoq0gfRBydQ0Q0uxTZJkXt?=
 =?us-ascii?Q?V9pGBxDn1khwUju9BA9wMAKbld3/ZhQm7BzMdCheg5AsbpsPmSIiOPQs1dhG?=
 =?us-ascii?Q?6HSCsenNxpVYHBsPpMIpOg7d/CXcuzI6O2dgGkU0J6tpbqlYiegqv6rDPbPy?=
 =?us-ascii?Q?NYhpDquY4EFyNEQ7+BcZemt66Pjx8X3kwN9Bu+Xj9G3LEwBkWA/aEMNpftEV?=
 =?us-ascii?Q?J9jyQOMng7ul4FhYVN0soJbLavi3iIELZzVoV2hDcLLq3mjr/Fxr9E6vslNJ?=
 =?us-ascii?Q?8MvkPBHLgdIMx/vDuP45AZ5YtZh0x6O3FXvnOTrBUS5lwDnAIKSY4FC9CsWV?=
 =?us-ascii?Q?TjDaiwHypLRWldh1LRb6fvclvsCwrBmMeGzK+KrKpjG7y47dsg+9QnKYG4cQ?=
 =?us-ascii?Q?sH9RQud837ERYWeQPsN9jfh64/ziigMOHwXWXhlFhz/Y/FTYe1KxG+Q2YJx0?=
 =?us-ascii?Q?MoH1m8/uC6gGZp2igpSqaM+uLC3ErFEjBgztvgldO9YihskORteqAxWbG09V?=
 =?us-ascii?Q?l8pDp8LXiU2k/aAlzZJ2RBODQ784TzD5UzgYhT9T5DQWfT1JWES8hcFpo4uQ?=
 =?us-ascii?Q?ieQMJWXSLS0mFQEW2xRXSOu7sJknCer6Lo+MpSGWZxG+Z1QWd5dxbCQX0wRm?=
 =?us-ascii?Q?oTWZ1/I9in76odia5PebBtY3a2SGXjtH+EK04a9CDpHBH1ssdEV3dxTvEENt?=
 =?us-ascii?Q?mwRwGCg0i5By5ybLANR+2N6ca9mTpZs8guYhiv5CsWM7xsJSX3AanttzyjfS?=
 =?us-ascii?Q?lQTgS2SGEFJBaJLKwcrAPH18bR+9h+0h0XTcTX5RKOg8OsYYHP/Jpbfn6Wga?=
 =?us-ascii?Q?l/w4qFXHM5AAHs+G0OpBFSv2f2WsSwlU/fPSpBbRimSODFwpnKalDCd/Kx7z?=
 =?us-ascii?Q?OsCreXz8GzYANuZqt4gpLUP6UDozm98Kpzwa/xfE0HxV52JoN0wfVci2LIFr?=
 =?us-ascii?Q?VrtqWCze5geT/GXd3lkX+EXIrKDnfoR6U90NKxwsSjOca00qos+CUP1LJkWT?=
 =?us-ascii?Q?97k4BsGepPKWpCQ2NPCEzqe048mxGl8UKiOsbMSSHqblzmyf0aZwQi71YAc6?=
 =?us-ascii?Q?G2wVaCjhNsDOF2m+xR5bA0W9eyEKrI4=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9b7efee9-8faa-4788-cdcd-08debb240ae3
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 12:41:01.0668
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Yf2tge2yOi2dLbQSe9IrtUHIMagP0Zrx6gCGiSdeWl+fcHb0vUdAasqV7f4UHQ/jP8YzS27HwXo7CACEl/GhdjpCYgWwE9F7GKjZBVzwDQQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB7128
X-purgate-ID: tlsNG-c201ff/1779799264-DA76A443-5B74A907/0/0
X-purgate-type: clean
X-purgate-size: 1908

In some cases, Xen uses the current VMCB to check/change the state of
vGIF but the current VMCB might be VMCB(0-2). Adjust the cases to use
VMCB(1) instead.

L0 may use vGIF to speed up L1 but whether L2 uses vGIF is the L1
hypervisor's choice and L0 should never need to check/change it.

Fixes: 4cd0fad64590 ("x86/svm: Add virtual GIF support")
Fixes: 05bb1116b8c1 ("x86/svm: update VGIF support")
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/hvm/svm/nestedsvm.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index 9899cb2147b1..dca07d27d923 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -1193,10 +1193,11 @@ nestedsvm_vmexit_defer(struct vcpu *v,
     uint64_t exitcode, uint64_t exitinfo1, uint64_t exitinfo2)
 {
     struct nestedsvm *svm = &vcpu_nestedsvm(v);
-    struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
+    struct nestedvcpu *nv = &vcpu_nestedhvm(v);
+    struct vmcb_struct *n1vmcb = nv->nv_n1vmcx;
 
-    if ( vmcb->_vintr.fields.vgif_enable )
-        vmcb->_vintr.fields.vgif = 0;
+    if ( n1vmcb->_vintr.fields.vgif_enable )
+        n1vmcb->_vintr.fields.vgif = 0;
     else
         svm->ns_gif = 0;
 
@@ -1460,11 +1461,12 @@ bool
 nestedsvm_gif_isset(struct vcpu *v)
 {
     struct nestedsvm *svm = &vcpu_nestedsvm(v);
-    struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
+    struct nestedvcpu *nv = &vcpu_nestedhvm(v);
+    struct vmcb_struct *n1vmcb = nv->nv_n1vmcx;
 
     /* get the vmcb gif value if using vgif */
-    if ( vmcb->_vintr.fields.vgif_enable )
-        return vmcb->_vintr.fields.vgif;
+    if ( n1vmcb->_vintr.fields.vgif_enable )
+        return n1vmcb->_vintr.fields.vgif;
     else
         return svm->ns_gif;
 }
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 12:41:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 12:41:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319821.1587265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRr5g-0004fW-EZ; Tue, 26 May 2026 12:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319821.1587265; Tue, 26 May 2026 12:41:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRr5g-0004fM-Br; Tue, 26 May 2026 12:41:00 +0000
Received: by outflank-mailman (input) for mailman id 1319821;
 Tue, 26 May 2026 12:40:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wRr5e-0004ez-RY
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 12:40:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRr5e-003dxT-7e
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:40:58 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a1594d7-e002-0a2a0a5209dd-0a2a450be716-6
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:40:58 +0200
Received: from [40.93.194.29]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a1594d8-212f-0a2a450b0019-285dc21d8874-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:40:57 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by SJ0PR03MB7128.namprd03.prod.outlook.com (2603:10b6:a03:4e7::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Tue, 26 May
 2026 12:40:53 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0048.019; Tue, 26 May 2026
 12:40:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PklUqcutca3orV9sKL2JtB7bZBfySLrrMYfH5NCky0rOBExpX9LjPLnbOJ+E54FLBXYllwnDFiq/EAdiQsZ5/EO0D94Xw5E1PunYoibYB4I/ZyrN6Z0Idl6O50OKqnpIEUWkNTkiIDr26P3mrOB4V3uon4kASx6FKudn1KTXjWjA6+E7nBtArUiCfoiC1SNNDnK5mRduUgVnsdVGft2NAxZdcdNYomrribGnBJeWEali4/lsz3A1Ni+kBQ0Rg+LOKe/E6/m6BZVO4uMaNVjc9rWIGvw+FmtYyeXUJb7BX+UV9hWofohLlK+5sZCpBsirkru0ARn0B9P4dz2wfZovhQ==
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=sv/Y4EwXju23E48lt//vpB4H/fw+tt8XO+BDmxPLuYM=;
 b=h8Izpc5aQItdrjFV8Dmm2b1ZzFmmIuPbglTZbPDlEVtsIU4Yaq6ipMEj5AbLfqz8D1idLdFOckKxZJ0ETzyX7zqkaW8UyfUrTo6FO+9K8OSu+oPLXj2j6WOVk1uM2lIJQcCwt1STkHg02/k7M/b53MFmN8cYq0aQ4545knD6hYbDgWjrGbMIH0w/bk7HGJO2+R3O7ri/ywzZi+Bl0r4/uUN5QZxZXPBLx0kg+t9Ihvurpprfk+62yU1XehkNAVxjkOf8UMlgo65mJofhAwUC1rJACYDEemjt9Nin7xZmASPuH9ROK6HK2my1vPXnV35x12V4FdEKwEsK7uMWiJiLwQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sv/Y4EwXju23E48lt//vpB4H/fw+tt8XO+BDmxPLuYM=;
 b=b0XfpjTh0MsqD8LKGu3kk4R5tCxkRxG+jcv3aUcPRL8q6uibLOlJymNftPx6faoSyGKnLQ6BQX2hEoddb20wE4ZTgN+X1DYsNNa0RD+cpmkacnbd06YTikZ2QObIlIsdKrzWZS7Pj1TGC16iiFRBUO2CLhiQNCP/Xu77KMKwP5w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v1 1/6] nestedsvm: Fix CR3 MBZ check
Date: Tue, 26 May 2026 13:40:22 +0100
Message-ID: <20260526124027.573412-2-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260526124027.573412-1-ross.lagerwall@citrix.com>
References: <20260526124027.573412-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0137.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:193::16) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|SJ0PR03MB7128:EE_
X-MS-Office365-Filtering-Correlation-Id: 5997556c-bde6-4c69-0138-08debb240657
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|11063799006|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	jyMjjIS4xdyJfayBCgN5iX4ToNs28nFEzdFVGkRymFbxGlqewwUNZVl+cL+gKK8eua08j2pqm2+nrzgmMu7PeFtugMwaIVjCTewjP7Jo91RAmmro5Kc3xylB03CIPpG7G3EWSmc5U/UgE2td180JvIrWk1nZJh6Ql8W354/VcYJSju2hTLtELgtOkWguT01JVJDFEYChhGr2c6rOMhqeyiseqME+fUScrQg1eGfHIQvFJnojz6Qitsbwl071JHoj6an9k9ik7+eqgWyUv8lp6+BNH2yjYIR30Bw0KJpi1EKVoBwwbw4mHrayhyI+4ahim+mI+E+uu/MPilxGUFB/edP6gyScw38ZCz5QSdrthf4+gR4rfjVeMhhWdpdRwYeubu8Xe2B0ExeXCIP49ZRX2J/9P5No5sbdmXq0KP7PpQHKt7/Q4Eiw4cIVsLK7G+weHGKWeVH/+Cm3mWze0QuoO6e6KBjNVOOQ50MBPUXgDEXwH/VbbAmN7OPjTWBxtBpRCwDeQKAa56aeqgkyt3G0HxapehwAYPLMC5AaptQMP8d5bqApR3GKY/RK++vNO8L+dbTSOAyDdOX6qbusKFGArmb8pI9FGaQ9GoH0g/5eXoLzKi1kA7uwRWIYdbkUekfMHAcQFuNiAu3dQsg6GPeAESCLxLAb+75+1dUJz7FaNWh51VUq5LO8CYPDmSr5dkrL
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(11063799006)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Dl5SprOFAqCnahMOWjF5Ic8Nc8LyIOGR58sG6F4nZEf06UdTVKrv5v/50MAT?=
 =?us-ascii?Q?6/ie1WjNo7L0LxJlyk/GaZR36TXFxVknsB+UsOPgeyrHmOF+rL3ZliQJ6ywl?=
 =?us-ascii?Q?oZcUmaACrVpzhPzLSMLhfs131I/WXyxz1mlMqFEqK0y0jL5e0B+n4Hubaru/?=
 =?us-ascii?Q?AWInu0BLaVMXciQD5Vi3dCF+CfNTGrQw/0iiHmBDeJ4PSmOVjfFreBzbrhib?=
 =?us-ascii?Q?dPR4or1B5iAIThy1Gb2JHD8K4SA9YA/aED4T2xz5p9BspD1Z6dzF5z/Igbwa?=
 =?us-ascii?Q?fuF+AMzN66bAMF0zQHRmrMpgf2iUxkGDHAA+aBMWbvQ+rg+wDfN7c8MF9CHs?=
 =?us-ascii?Q?ID/K8j5ZCbxtEvr2CqI64MAIgF1lbb5XLI0RKvG1crGH/YUvbXzd+9PEHXJ8?=
 =?us-ascii?Q?F3jVeiQV0BIGRwZ+PUePzjQToQSHC9lEOJDhRwDDmXV1Ej/9HtNDw78YlUuU?=
 =?us-ascii?Q?83HguOWiAGKtTzj3V6+J6ZhpU6BB8REuMbIWCDdW2HVbsIdGMK+98JQNvR5a?=
 =?us-ascii?Q?wwzXpIp5U3PPm+NGqHa2xQUtPCvFRtntDQaQRQkDj2jm4J7bMRL2EyTSk5Ke?=
 =?us-ascii?Q?TucHt3c7mnTcU4NhPU0oGaR8L5FplBKt16uEA9G8wZVkpEQSTskK7/bFTvwj?=
 =?us-ascii?Q?S+5F4hkuUmrSXJ7jDLA1sqGY8AXcqYw7sgNSQtf/0NYtVfD5M0d3LHjLxOru?=
 =?us-ascii?Q?qARpIsaLiD9hM7TBTDd74Hk34T+ilECj4WQVpmaAaH/RKt9T5QMRUmZRmOss?=
 =?us-ascii?Q?2ZICP80eQsVbMIbCnfBe907Zpe9f+kGSU/70AvK53zr+V3m2GEnzl+DGnPbp?=
 =?us-ascii?Q?5IoClCXwwwHPYC6f18DNANhwo8hKtBlVGhHMtdeWC3ZtfpUrhzVjhsKdBZ5s?=
 =?us-ascii?Q?fF2Xjp9ifsOdk4Nlp4w+BsjKT2D2dypaYBVIJ4DcxgFukaSD65knKlMdDdLM?=
 =?us-ascii?Q?M5ws2wkIms+084c2m/6JnY9/bxfMZEAQY8QTuvG7eZ057jOAEJy31YbqiChg?=
 =?us-ascii?Q?+qXnlfrmQ2C8Hh3LSwYWu/ss52b0T8/aZ8hPBpknVkuOX8JhWoWaZgZ/0Utj?=
 =?us-ascii?Q?/peYIHM1B/dzvLnOEtkSMEwx7e4jqLF9K6KZiD/tTm2WrgnaAuOkm7+2L2h5?=
 =?us-ascii?Q?yuHLrCcyeMYdPUQAxXVJR/XopVLay4mBAOgzHBaP6EmgPV6fc6/U7K5ld9v5?=
 =?us-ascii?Q?2iErfwxcTmWq4vT9H9Q6dGdaT1N0/cXyxQwdLbdgH9wSwO64XMnbxdPcPq1/?=
 =?us-ascii?Q?wQF74zK9HwXC6Z9GDEN/+ahEiVfMUB1tgjthCMPpp/Jf4KJdiHxbT9psZzrB?=
 =?us-ascii?Q?glWKd+4Ur8axCCdxGuWVKnmFMBBQwdQrk0GUNRXE+zzsqBMjYOrEzhlFuTpB?=
 =?us-ascii?Q?UEJh/LJkRq1a7zYlVggbUr7mEtjcOQxy2eURyqdvTWFELiGw7cdrvMp3Bbpq?=
 =?us-ascii?Q?jdSbm/ZWVQ+u9CZ8HlEajWbQOBLqQQTb+I1RHnydZukzL04SBgF2dEGmDw8I?=
 =?us-ascii?Q?RnZnRnlguorirbRSVgh1ugNi2Imv+9sYc7l8MB3xWPxL+PDJxmNf8rL4IMBm?=
 =?us-ascii?Q?gqTuLZJ6xiQ7MWgz4y29081Yig2EPDNXlkrErF0dTnQ9HmAa31Yuo6T6knbX?=
 =?us-ascii?Q?BfLHE/aIAjWh0ZvDALBL2ue4RhIQ0Lx8Z4kmSxBkjWq5k6yBfpNlejPguZs5?=
 =?us-ascii?Q?de3Onw8Eoa9b2TuDDoUilwOL7p3pRQ/bHlTHfWFWV5dWXJ6I7a5qhu9Zxnnk?=
 =?us-ascii?Q?cglYGp60EcHEhpsGY7i7Dq4TMjFsnzg=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5997556c-bde6-4c69-0138-08debb240657
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 12:40:53.3316
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 12HP3vTnGghJrlZMQrHwBk2ty9rW3Wlr3mMsv/w7ALKFh79x+eL+0lSq64EZDyTiZLFbm9ic4KtVpzPGb1sTalT/H/ljvEKRJv7yX/FtZZY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB7128
X-purgate-ID: tlsNG-42698a/1779799258-1AD77F3B-4C585748/0/0
X-purgate-type: clean
X-purgate-size: 1263

The existing code checks for any reserved bit set while the APM only
considers it invalid if an MBZ bit is set. Relax the check to match the
APM and hardware.

Some of the reserved bits were observed to be set running Rocky Linux
10.1 on Xen on Xen.

Fixes: 9a779e4fc161 ("Implement SVM specific part for Nested Virtualization")
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/hvm/svm/vmcb.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index 975a1eaef806..9ada491e57db 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -347,10 +347,8 @@ bool svm_vmcb_isvalid(
         PRINTF("CR0: bits [63:32] are not zero (%#"PRIx64")\n", cr0);
 
     if ( (cr0 & X86_CR0_PG) &&
-         ((cr3 & 7) ||
-          ((!(cr4 & X86_CR4_PAE) || (efer & EFER_LMA)) && (cr3 & 0xfe0)) ||
-          ((efer & EFER_LMA) &&
-           (cr3 >> v->domain->arch.cpuid->extd.maxphysaddr))) )
+         ((efer & EFER_LMA) &&
+           (cr3 >> v->domain->arch.cpuid->extd.maxphysaddr)) )
         PRINTF("CR3: MBZ bits are set (%#"PRIx64")\n", cr3);
 
     valid = hvm_cr4_guest_valid_bits(v->domain);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 12:41:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 12:41:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319820.1587257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRr5Z-0004Rl-84; Tue, 26 May 2026 12:40:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319820.1587257; Tue, 26 May 2026 12:40:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRr5Z-0004Re-5K; Tue, 26 May 2026 12:40:53 +0000
Received: by outflank-mailman (input) for mailman id 1319820;
 Tue, 26 May 2026 12:40:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wRr5Y-0004RY-2F
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 12:40:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRr5X-00Gc6x-EV
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:40:51 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a1594c7-2eae-0a2a0a5409dd-0a2a450c84d0-30
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:40:51 +0200
Received: from [52.101.52.70]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a1594d1-62f1-0a2a450c0019-3465344673a1-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:40:50 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by BY5PR03MB5048.namprd03.prod.outlook.com (2603:10b6:a03:1e8::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Tue, 26 May
 2026 12:40:47 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0048.019; Tue, 26 May 2026
 12:40:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QOiudPUNLfNUpt5e/GLFW1B2+Tjahv0loJ6H+YXRoZT1Obsokf82wLS7WdbrmcYRMig495lBBxCHHasEh7kD+b554n3/63+fLe7Y+7QGkL7Rdn4qq3N9nPDfVsTBA0l9lDvt7quI2S6g/2WlnekEdLWt/fYI7cqtm3zeOcMz20DFw/Pwj2zKIghMLjsOgIe4tibFVvf6/N7hbSn1NJv7jasC3EeCvzBBwJ083oGGyne1cp68jPlUQ44urcGkQBbsd2iTvmrzw9pi42Xx60KE9+2rVZB72uhbpYCJMNyRVKBdE85jaq7ralvZmstWK9brYNqt+KuTNV4M1iooU5a5VA==
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=9LPpL8qm2CaoHD5JAAOiCS/z70Zutal8qNBgrsnr45I=;
 b=nil6T4ybLTVRZzSE6jMr+amqJIvbjDQF/KM4hA8S1WxBSx62fflHZGABcVRSrVCriFOU9HRer7/HsQm3TdIxb1tOdr+3ng4QeR78m3Gay5U2lfVT/dMhfDgsL/85WqdAWmd5KJh4PQmfssh0EhXsish9qvuizZcr3s+Iw5r6hbcw//rkWVCr9SyXNBlkwQNht9M6e6S4xi9MX4tbZHDaQQf1/H9ccP9mikb4RHi7E3BZf4JKFj11CerCSWHiuxO54ELajXlM+nTZhOpeqdmwVLprqAppB/6vm708+k4q1fQKCW/rP9c6Dxm9l6D0YWni72vdFQB7Ok6hPgOvftGrOQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9LPpL8qm2CaoHD5JAAOiCS/z70Zutal8qNBgrsnr45I=;
 b=qz9FliWhiXLK4VqJ7JPCDiVWmg8p5bRNb4Xn0kDEuqFkONTbwp1x6uLYWJtL/GAb9XZB0A3/eGpgkLeQyjIanNVqW/pDh6AV2TXXXF4tc7vy1UKQePDm5Vik6xgQ1h6q14QDqzs3sj/xe9pSlNQlsCSCmbPJLPu1XLJ54FSLsp4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v1 0/6] nestedsvm: Misc fixes
Date: Tue, 26 May 2026 13:40:21 +0100
Message-ID: <20260526124027.573412-1-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: AS4P189CA0049.EURP189.PROD.OUTLOOK.COM
 (2603:10a6:20b:659::27) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|BY5PR03MB5048:EE_
X-MS-Office365-Filtering-Correlation-Id: bf051d13-2888-4b55-9f5a-08debb2402d1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|5023799004|11063799006|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	XT/DcSBxzVVVHQE1dLkT6K3OqYGwKpfk1hyozTVzb9sEhXx3jT01DNcLmJ+H85p6IDqTBoqQkvTo/1lWae9whl5f6nFvkFpJHhMXPqGGBMISeMNGOK/QEZ1q+Z7NDUa5GQk3ZSZYsl5Nkn9rVy3eMd6OxnCSvflQNbMRcI3yk606Kkz2aLhCJhrsQaD6nMA01/T94gPriRQA0yiEyU5WVr/TFbLjtmDYnMK4c6yLTS2uMfro/JudnepnCFvgdxR6nqTckOTyiS14QnM6Dfc5xUiltSs9B1qPe9/NrstbExMUU83EmiPE9wLqKi3+zA+iZkTqeRzNeekq2xp/LMAD5I5uc4HWxZEQkeKAaJ1ORBD7M73hIr/8NTKyL0VUG3BAT/HnWCrAaO/CZ5kNsOb6Jg5/P6hYcAciSxPJnrNSwmdYA354Jy+T4a/bSPpirH9BkBsM+Aw5yIHZXVe704TGD6kBXDh5D45MhjqC9k3gVdoG4GaCwqvwqNMws3WbLa0zI44yJekQPvN6jYboqhxomXrXjiRTar5XEMiGtQ0+exEA07ZqBxouij3qa97jMX0N8FkK45Ml++IqZIv3R0uioASXhOgKoT2l4q8RFudg8rlS1ac9Ee4z5NpzFCMukzdp5uSvMPDBa9JT6/FS7U/6p6CLq7B1YDf+TeLCzAHbNolnR0mR19mQjr1MSLiersUh
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(5023799004)(11063799006)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Btm985LDyge8l8W2tdUbYyehn/hHO5v7A29hpdhEP3aPqPJynexzJ3Ug8geu?=
 =?us-ascii?Q?63lcwQDxKypW/mcaM4LslzT65pB3OiAwWZjSPitU8+Oz1yDcL+TAKfHhU5p2?=
 =?us-ascii?Q?RDzm1yXmAPAmyZ6ofMKJ8NrK3pr5FfpDxKU9bf9zQc7P35HEBvIIH96wTrzG?=
 =?us-ascii?Q?AgfGwKt777r0Ov7119A2GEdZd1a54NpcQdK0I2DUQpjq1xhKeyJ4MQ3DjBtM?=
 =?us-ascii?Q?QW5ufPtHexVKLOusBknrTbEVpPUrN5ygp+EycmoOLBB8ydxUJkmXZaHN/75t?=
 =?us-ascii?Q?sO1pCT2aAnMRoCDXDBjykcc2c/sfNrf+HKHXqYm6Li89vrtfWgw/Kl7C8Hfl?=
 =?us-ascii?Q?HNN3Mi8Ih52sMjtHq+qlxi2wvze89R0j9p9pskpREy4xXUClG4YB/1i8MPQf?=
 =?us-ascii?Q?KcMAard94F7uOezAZFfSayMUsae6YN20svfcNSj6REF2Xnmpg/IE8nr8ucSY?=
 =?us-ascii?Q?tFgmR0KKEfgfMkol838cCYYiQE7e3ApKU2UCwWQfaTzqBSiWv4Nu3365X1uj?=
 =?us-ascii?Q?w8D2le8QLKqhVcqLr6EexGL1hrv5kAe52qgd9iNcN5hdn8S4NTIjzdFk7LRN?=
 =?us-ascii?Q?EO/Tlw0GOaMA/hCxxR0UrAaf3uwM9jN2/8mZDDdCxqOrVHlTRee+yU/GxL/O?=
 =?us-ascii?Q?GSCbcp9d90x+uped3FOsryAhSNvvlrogeW+78WTcquR66DJZZjVlHKECo04J?=
 =?us-ascii?Q?wApQvio83Wq1OzAIhi7TekY9asXbVQVUdQDach+fhGybGA/IxwcX+EO8ujeD?=
 =?us-ascii?Q?roxnyFC+m5tnLj5O8dSrJmWsz2cMtubgj/jtZBnhKuy6HntX9P39I6HkXUaY?=
 =?us-ascii?Q?fmnyngldIE+fupj28+hMNaNMIqoYiraJeR3gtLQKq2Cd0gGUxLkXDLiK0GLR?=
 =?us-ascii?Q?c7q8bheGzD141i+Prxb1sPYZlo1YLEJhJmuXBQFLdVv7ezzIQWnEw/Tx/JIr?=
 =?us-ascii?Q?U95F8Ta1CUTI1glHydEkqttiaX2v4xT57ddA/c7FWch+p35GW/+7iM0a00xW?=
 =?us-ascii?Q?wwDHFWbK4tBOWb12yEXJQntVvx074+VsoTardGG5sW8ek2Tw0GX5ZO9tekVK?=
 =?us-ascii?Q?CJXbsXkd9E3yDM3eI4o6luVQBThPt2aryqEWjEPTaief+w7jpyoARAachOjZ?=
 =?us-ascii?Q?eBFlcIulciuDgpBnmObYKaRcQ6UAnjcmCsRn+aV19QHWElsd2Z5A0zvGQ0it?=
 =?us-ascii?Q?65NBOpTsvxBh6QgLiY2nmbeyBvda7GzoitKHLpgK9XjHhAIz/fzi6TqROfDC?=
 =?us-ascii?Q?mPJHX7RgVUGl0p+jROiMinY/DLirkM/mKfKFHU55A4S8psn73Bz+staoZ7qi?=
 =?us-ascii?Q?Gm0bhmPGiOqAAcyPcbkzHKoS5gBJ++6aquP32WZT0/U2Kec0yC/UO6nqdRV4?=
 =?us-ascii?Q?lYKnRxbP++R5G6jasTIxCXe07WDpLtnorqSFw3RrhR6ZVx/PDHJ1UXUzN+bZ?=
 =?us-ascii?Q?eWifgdUC6KzZROh6n2KBb2QURSM5fa58CM1UqjE480aJekfBI57Eygex0Nyb?=
 =?us-ascii?Q?//9xoqhUVQvS9wwTkaTlQ0DiUwKw4Zgs3Isydkbf6MsjIke2v5C7nkerkevc?=
 =?us-ascii?Q?y4irqDL4xCF6NkahEOBO9q2+u1Lesih/QDE29GKNx59pBMsSSibdS1VXDEbT?=
 =?us-ascii?Q?LYkDtmtobmS9wD7jAUkqHuy7ndINIKdO3wNMpNlhBjhUrg8cUsdHS3GCC6wm?=
 =?us-ascii?Q?Ka8mEnCz2iwZBfs/wM2LcwtI744eb1raEfkjMRgLtmStVkYXVpBzBsgG6f2C?=
 =?us-ascii?Q?VYvyE2BC7WrClE8wglJvS+woBCmneXc=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bf051d13-2888-4b55-9f5a-08debb2402d1
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 12:40:47.4598
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3J+GGBtVi79NLja9D/oXx3Yrg7IjmKFGyqj1BeYwcWW12G3Ou3fhzM4qdlio5zkjN6Vi7Rb9v2MfywUn77YrLyOwfrWatSu/46RqG07zrMI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5048
X-purgate-ID: tlsNG-d25034/1779799251-E3F7ACF5-3D774158/0/0
X-purgate-type: clean
X-purgate-size: 1096

Before this series, running Linux on Xen on Xen on a modern AMD
processor would lock up L1 shortly after L2 reached the bootloader.
Furthermore, L1's domain could not be destroyed.

After this series, repeating the same results in L2 crashing shortly
after it reaches the Linux kernel but L1 survives and its domain can be
properly destroyed. This is not great but is at least some small amount
of progress.

Thanks,
Ross

Ross Lagerwall (6):
  nestedsvm: Fix CR3 MBZ check
  nestedsvm: Adjust L2's DR intercept when adjusting L1
  nestedsvm: Use the correct VMCB for vGIF
  nestedsvm: Set GIF during VMRUN if vGIF is enabled
  nestedsvm: Fix deferred event injection
  nestedsvm: Allow destroying the domain fully

 xen/arch/x86/hvm/svm/intr.c      |  4 +--
 xen/arch/x86/hvm/svm/nestedhvm.h |  1 +
 xen/arch/x86/hvm/svm/nestedsvm.c | 60 ++++++++++++++++++++++++--------
 xen/arch/x86/hvm/svm/svm.c       |  3 ++
 xen/arch/x86/hvm/svm/svm.h       |  3 ++
 xen/arch/x86/hvm/svm/vmcb.c      |  6 ++--
 6 files changed, 57 insertions(+), 20 deletions(-)

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 12:41:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 12:41:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319822.1587275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRr5i-0004tO-MB; Tue, 26 May 2026 12:41:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319822.1587275; Tue, 26 May 2026 12:41:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRr5i-0004tE-Ih; Tue, 26 May 2026 12:41:02 +0000
Received: by outflank-mailman (input) for mailman id 1319822;
 Tue, 26 May 2026 12:41:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wRr5g-0004hF-O4
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 12:41:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRr5g-003dxT-3x
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:41:00 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a1594da-e002-0a2a0a5209dd-0a2a450a8828-8
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:41:00 +0200
Received: from [40.93.194.14]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a1594da-56b3-0a2a450a0019-285dc20e9618-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:40:59 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by SJ0PR03MB7128.namprd03.prod.outlook.com (2603:10b6:a03:4e7::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Tue, 26 May
 2026 12:40:56 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0048.019; Tue, 26 May 2026
 12:40:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EEOkTT6pq7FLlYfKxLIa88/mHRGsxUc3Ek2dqbjtuFBVBbBDa66kEnrhQhX5u4GH2BkmOP84WIJUYcxPpKQWIpQX9VrAA/tq455HnvBPoO6LoHunFsoRH0YyOLD1y1Gm/bY218RCkpbgfVVrcwPW2hMpUxlfMxSqHBJ6lj5hZVKDfM6j2md/+0VbvuZG0qogVhbPixF+bqKK7MiMb+pVe3O5+i8z+hCXVvk+8Y4hUy7e1NyPPmnxdutjEm29WHD4Gk2jE+l9ja//cYx5jELB/llIvgkw4Sh44DM6ueOZMaDyEssnHdY2JrP7G3dYUWUXxpC8M1Ig1OugV3lw7Hyx7Q==
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=GX+1TOnlCGkHWbfkqlqcLqEwDZoZkQlvgzLo/cb85NU=;
 b=IszNPlSq+YJ/Fc7HcXzZ9gcdCZ4qi5W2dG/Sy9QpD1FpFFx8SLVLCpoBBELrFkkfxJPe0eotvazl6NOEfSb/ptqwtMV7SQmxtM57kObl9dQkDB2a4sbs9YK64gNM76P1rrGj2ndQA7pdPLpbBdaU4Qsbq+ND/i4JbNUC+OGanrXn3dyS2AE1g+lzkA0+bvp1+nGssnj2DgpoRIB8R7TdRML14w13w+9G1eC1uh9HdPmMyBzbP6P2z7NMqjgOcpcg8lJt1gigOhfHRFviu+35iWh8UkFJfsPljvvTntP9i09l0ZDZDMVkLEXYG7moK9fcOh/cLSM5TkPV8ZFQ/nzJSA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GX+1TOnlCGkHWbfkqlqcLqEwDZoZkQlvgzLo/cb85NU=;
 b=EzvFcPoXH1Ygd0NBjCVYqm42hZgtubfK/ogHjmWjw39EGttohjuUSOGlEpHd9iciYxTWVihLeQFqy/423L2REqEgmzWWSaTVlN9AHQyNnoWd4v/XZYfGnLeGFm2x5HhsmYIL8E5nHhzidfRwwSq5uuzwiWcrBG/mAXO4Gt2NG3k=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v1 2/6] nestedsvm: Adjust L2's DR intercept when adjusting L1
Date: Tue, 26 May 2026 13:40:23 +0100
Message-ID: <20260526124027.573412-3-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260526124027.573412-1-ross.lagerwall@citrix.com>
References: <20260526124027.573412-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0365.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18e::10) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|SJ0PR03MB7128:EE_
X-MS-Office365-Filtering-Correlation-Id: 9b4c0d73-dbbc-4551-e90a-08debb240867
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|3023799007|6133799003|11063799006|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	n4JLV41MmolSKU4N8Oef0JYHVBpL+KUW7+CvNa3nhzeUVDmGe5mwqkocCG1BaAJFR+jacb47yoNmoXVmbI9oDIDRljlIcWF6DmoMEMk9xQCY7CdRezfX0hqi2rYt5YvfmN1t1RaFust+uCMgoYRqZxROrgraiHrDg35+aNvrQNzsqQqJtsA+w8rPDYNZChwnNxUlGP8dbFhl+yDB/4BMMffdzctzmxJYumW3Qqh7v5zz/2gIxqFlR0vE1GoPxuAxDWkpgBs8cwTLz6v5FPuYttnP5V7BvQewlGBNneFoUYeEZiKUXBnh/2/wrpZjMNHRnX7072gmaNDTepRNm9rWmf2Lk/5I5oitEENEhNPqTRLe5AqMJfoyqu9W+pVUOjUX8JxgcMxRCOOejG3kWrGdDrr8itinYC7e583kvka4Plbne1Rdx9ybXqoRvqFBRGHLu06C3ZtcFl+oaom42iiWKw0YcPV6/cBJxnePqmnyKpbxSDja9I2vrn4rLfptcMGRwinm+NL9uPxW3bb1elMu/xsaf6C0iZ5TPd3uPdA4NiP0o4WtpyM+6atSFd2UgviMu59I1oSn01UYmwkMSj2/8hrPDQIiDfatxgwwcMR7K/ON6zTZ88gtbkeLDJL0IghGLPMq208kXVK/ZrUdrWTAKZyqnhxR2rn07knX+Il8o9tfMvo+94x/wxZhBHum00aO
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(3023799007)(6133799003)(11063799006)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?eKgjhetw2Jxup0K5BX4qlVL97XhGII10rTmFyjuUiGn1BtOZ/H+qh7Ck/FVV?=
 =?us-ascii?Q?Q1jHhlRh69pHfZLXUTU3AVe30jZkJVSBU51D99Kk+Rl0vUL5rfM2ZkeKIz6x?=
 =?us-ascii?Q?zLRrA4qB4Z/6zXipXUtyksvPVsa488LdAdv+UgJktMfvGk/U4g1en6rKitS5?=
 =?us-ascii?Q?XiBJgveqJbvgF1vCgLZsUe6djO3fIT5OiXtyw7AI2uEcWjg2bJSk5fF2sDBk?=
 =?us-ascii?Q?7yC4wnT4NYwHjkocJkVMWBatJru9SXG6kF5Y/9QZMxyq5VUuBHgCehugcEP5?=
 =?us-ascii?Q?U77YDkubdkbPjHRCJMEp/kLCtb4sFQCDat+JM5Mry2JTOihdQDVrxkIEbbDq?=
 =?us-ascii?Q?D7H2FmfnyRzB6TusJ8Q9aN7uRDio6redflwOTzlAtPmfqCUGy1kU2syQrQ4q?=
 =?us-ascii?Q?Kk08Iqsn7G/ctdbjkyTl7wpxiPvSSXEcGzYkLf0+gRttWuVxn2mdQDwg6kau?=
 =?us-ascii?Q?yuoRVRNn2qiZQb0z2SzVwfgTzttqW9jzPVKVEVKiQh3yb6eUkN0utPhIEFkN?=
 =?us-ascii?Q?31qzJU1iJbc4FUNNXNlP7mdUkwOVbn8BA1dHnknOmTM+/bX1F7X5IBmz6bfG?=
 =?us-ascii?Q?oMeYeQ4P2g9vtdKgmzYERrToq94HiiCLjS9j/7REwCWR0kkgpxG6wPUieZp9?=
 =?us-ascii?Q?+u1O8suvQvlDvNjia4v8epZMWKZasZdB0XXLnMOh7G866wXPy/I/henryJum?=
 =?us-ascii?Q?WJNChSbz8SW+Hd6r/95LPY3452SI5vlXM36wnU2sgDQ5XS1a6H766+Yr+pca?=
 =?us-ascii?Q?dGCv2dGwvbL8nx6DoR+yVnl0l0phYdQwdwycgTRxA+Kh6KYTCFNz2uxgcs8Y?=
 =?us-ascii?Q?1xCDYqg8sSsAiL8e8PluXzzfRQHtPTfiX4z1wk4Jx8Z32uGmpdl5TwRLbSj6?=
 =?us-ascii?Q?XqwycHXzlBk6Qx6H216r8vuZ5SW0bFoyUNC74s2oVE/vfExumZgMSVreLI+Z?=
 =?us-ascii?Q?As2rQv0aAIWSnPX+AY1BLDTbPL/90oYPLD69VDdzuTDRwhgQfMAxdc2/Tona?=
 =?us-ascii?Q?Cr+dM55MYiQRTmKL4EI3KwojcxCmGCeXbwtCiDKo/aVc6s7Skh6itXG+QYhY?=
 =?us-ascii?Q?CXcvlcfL8Isp03j/L049RS9pyMYpSn6YfkF4K+wEZMs6iP2CKe3hD2Eus0mN?=
 =?us-ascii?Q?vFKnG9+t5jCesq/4NmHcZuomkocvhIxo4FhB1gZqTw2AFAkF+ws4H8vCVeDx?=
 =?us-ascii?Q?Nl3/VJdjnKcH3muEeAYbKLhJwOa4wKCUwD9Yp7WREEeRMhkvY1RWJGJlD5LV?=
 =?us-ascii?Q?3g0ACZct75l7N75yF8J0p6mwQSLNOb0SogXksB/1Mlf2kGC2viPTLLhQvzD7?=
 =?us-ascii?Q?UxROZ+jvdkt+5FZps/CFjLi/eW6ognhRwAmtgRzp2N0e2ih9eiRAcDjhbV6T?=
 =?us-ascii?Q?yyKcbFyIFk7aulj6IrB8W/g5Dzpa7/wP/7RrYmISgDO4cJbpI4X2H0qu4OqQ?=
 =?us-ascii?Q?8qvD2m+BvoYoG7uX4E9CJtOtZ8Z7eGtauKwrENhQqKG83yBqA9MELLzjHYMS?=
 =?us-ascii?Q?OF9ww370bW2ZUR882uwxmRDvoZH59S5LR4uR7FLHhfdtdKi3NaREB3qPEhXV?=
 =?us-ascii?Q?rsSOq6E3bwDdBrWlGvd8Rlx5uy0Gc/AD6HV4THqFSFJdigUL1YaLlcOjHcXu?=
 =?us-ascii?Q?2GmzFe3MAKk9yna8+r/2iS56LvNt/jiFIxqU0MrF2H2yBQL1zpZahAlS9nUq?=
 =?us-ascii?Q?lcLmVe9W7/0KLMHXCC0v6ZC4Kf5Whr/9b1iHRsIKc5ihI9ASlALN3dy/tFDG?=
 =?us-ascii?Q?BYXgJOX0rncA3UpC2z0w3JgnYokQ0mw=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9b4c0d73-dbbc-4551-e90a-08debb240867
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 12:40:56.8055
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: og/J39pXI3v2f9b/IB9ONXepoFnNf010a3hRH/4PWJb/0J1lEGEcyFy+dkyohPEcYQQYbjSxksr1QJcEfltFGsTkAaymquSWeY7hXhZdkS8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB7128
X-purgate-ID: tlsNG-4011c0/1779799260-71D688B7-7224FBCB/0/0
X-purgate-type: clean
X-purgate-size: 1157

If L2 accesses a debug register (like reading DR7) without L1 intercepting
it, it locks up the vCPU. L0 intercepts VMEXIT_DR7_READ, which disables
the intercept for L1 and then restarts L2 which re-executes the
instruction and then this repeats indefinitely.

Disable the intercept for the current VMCB if in guest mode to reflect
what would happen if the VMCB were recreated via
nsvm_vmcb_prepare4vmrun().

Fixes: a59a7be91b61 ("nestedsvm: fix DRn handling")
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/hvm/svm/svm.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 49fcdd906cf8..209edcba321a 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -1657,6 +1657,8 @@ static void svm_dr_access(struct vcpu *v, struct cpu_user_regs *regs)
 
     TRACE(TRC_HVM_DR_WRITE);
     __restore_debug_registers(vmcb, v);
+    if ( nestedhvm_enabled(v->domain) && nestedhvm_vcpu_in_guestmode(v) )
+        vmcb_set_dr_intercepts(v->arch.hvm.svm.vmcb, 0);
 }
 
 static int cf_check svm_msr_read_intercept(
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 12:41:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 12:41:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319825.1587294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRr5q-0005Sn-Bd; Tue, 26 May 2026 12:41:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319825.1587294; Tue, 26 May 2026 12:41:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRr5q-0005Se-6S; Tue, 26 May 2026 12:41:10 +0000
Received: by outflank-mailman (input) for mailman id 1319825;
 Tue, 26 May 2026 12:41:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wRr5o-0005QT-QR
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 12:41:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRr5o-00GcAj-6G
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:41:08 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a1594de-2eae-0a2a0a5409dd-0a2a45098b5e-22
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:41:08 +0200
Received: from [40.107.201.37]
 (helo=CH4PR04CU002.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a1594e2-2497-0a2a45090019-286bc92566b8-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:41:07 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by SJ0PR03MB7128.namprd03.prod.outlook.com (2603:10b6:a03:4e7::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Tue, 26 May
 2026 12:41:04 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0048.019; Tue, 26 May 2026
 12:41:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Op0gFC2V2eld7JPhwXkzp6y+LZFytW8eSyBzdDXTm6Qhwy2S/v23u8TPk5vBs82PYLZdodiTPJtA1KomSR0NU20o3QUDkf1IliWMgew2AVWfIF4FM2pL8kzzl9EvEA923BkahKUiV2vU0VHqBJjowPXQlBJUK8L7LhHLYJIjmDVb608RuxT2tsIFuQ5UJn3jpgCJH4PtPp0mZSq52+QIb9761liuSupbKyMZ+DtL87ThqGKCUBwtjyyILZzQL/bIJQEVJY/T9yEm4ZoN0MDCLi7rLW7004FkhxsqCIFq1VH5X5u8QWgPE0CHXWRAYdBIlWHe3tW4QYVhJ2iESltHNA==
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=spydKjB3Jw/7++KbEizvwyVUj7TxzOpGw0J0LXRy+Sc=;
 b=JfSnWBZpdzxeUKDwnG93MN+MAG7GKPoWK8rTx76rup5IZgqDKNQyG/2ppan2OeTbWebsz7CneKZ4aTz+LDcXnv/5VxnhnQB3JuOXVidcrCpzdSYmv5PzKFjFGGBLEjaR5KvfH09MAzJORUIBQKRmiSJlqdAi5qG4QkTFAvqVtPMSMQfG7egtQft5HPWI/eLoMyGfjnsuwLgPypsUcXdHwwdMJDXnSPVkGJg4AV94NN6xCzPpgPRo4wb5tG6m3d0BzrK1kuxVh1NRCM3ETip02meJYszGhwoStKcacKcf0KsAqNmqhyjsLOHhfHO0a5nASEXEl8+iLRZNY420lpN5zw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=spydKjB3Jw/7++KbEizvwyVUj7TxzOpGw0J0LXRy+Sc=;
 b=eXPzIysh6evTQGFjWMu3TvDAaBy9HruCPDHgviLIQTGnuZwe7cruagynirbom6HOvX1Loo6W4aQuDkqaiiPJCGaKBAnzAP9iev7PzX+6NQRNLBLFPFC08enHa3UUSUSTTxx6MR7O13Jg5zbhLCKcf5TXeJIp+fx80BZsU+RxpTI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v1 4/6] nestedsvm: Set GIF during VMRUN if vGIF is enabled
Date: Tue, 26 May 2026 13:40:25 +0100
Message-ID: <20260526124027.573412-5-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260526124027.573412-1-ross.lagerwall@citrix.com>
References: <20260526124027.573412-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0370.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18e::15) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|SJ0PR03MB7128:EE_
X-MS-Office365-Filtering-Correlation-Id: fdd43961-d9f4-44a1-7366-08debb240ce5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|11063799006|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	Zk5R5fyxfCVFvSrQ7A496NvMsyYFXRva6rZBhWOdl/VjRlB6dB71LqYmJ6UF4QxOB8YmgjbepdVdDga+EmVUmNqPOwMbwKDqROyNjQh8EBfQhg8cHej6tJwAT1gktAwBoXEU6F3/fvW5Nq92CyxJtTiV8ON32AxvYfC63oSxwt6xJucPcQ8alJgnnLd5MvCOeG5ZGgfpzaOnRBQLjBbTrJjHwvKZTqIISSVEGQ4rFmev8kF4lC7GsZ4D3SVs8gEDdkh00OZtxvS/EgSiQCVJ+sFm7xqXTiSCnLZwKQ2xhOyzFkN8BR+b1eN5gLd03dnoLaHq8KnvhyvauCe5OxhT1DplptrKhcHCxKveeSlbchRfNGJ79zD4f8RfvYrsv0llEWkEo/iAWKTbfhGgdUPPzIMawuAvyvPLR+a0kUfVK/zb09rr/83mprNnAmC3nnIeV48Ele6LP1nqATf8aLldi2w4u3tN/YxVOExaFaShtYq2LfC+BShVw+A+OrcWsr+3asNPK4LbiZkkH9/70J73qJfpxYeA8dh62D8uYYZevo/h6lxICWr63LYxz5E8hjFCZaXU3ghe1wPD5kR9SPvN4pQmoyNLPqFACONTYpxdku4Xw9CNqDi5vgm2jowZ+vf5eoDWQg9R8kJM4kGxqIxh9EOOdyzjYggeZceMFBSWl3/btD30FnbUq2EHB/G822Cc
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(11063799006)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?uZGPRHuZSKuKsUaz0vnzK3g1KJPj37gNuIzMnGw9Z/EL57WjWHsiJXoJjv88?=
 =?us-ascii?Q?LeIBf91lMJ6Rjz/mJHAIKuUpC0OJF7cJ13KyFMPfZ2Kd5G5zFVMkXAZ0cl8p?=
 =?us-ascii?Q?mRVPjJkI0ARysepkRGoamhPk3IK3VsBo0MRxxOwdEy2vcCUKBE0Kkrdp0wHp?=
 =?us-ascii?Q?4PmmwAzdQJcvYBQQLTDj5qRdvD2wpgAKaBW9dXa6IengcCwwhHSGm1hTsOlB?=
 =?us-ascii?Q?J46se0CPe92dXOD1X0KF/NcsfaHxFVFznKWYgPRjQtWQcz7j/d77EKq9Eq8w?=
 =?us-ascii?Q?5wZrobZoC5bbwUth5k+AXQueNs5/oOVv+XlPjTq9DyGzqfyFBL+GglI/SYEX?=
 =?us-ascii?Q?MPWeIGoSZQAV1VKNNs+Go6t/MTtlMuqlSVqBcXIeqPPJuxznO4ps8RhlSPDI?=
 =?us-ascii?Q?FuSHGkCfzfozoI0q12p+TBUSoq2EE0nXA6rp688RwIBH3jMfcCJtZrv/KpPJ?=
 =?us-ascii?Q?1Q5jKAffdA+wbdcD40syPeDJVh60FRx6j2ayMD+4dQ2cJz2Y0oflDR6oKf5n?=
 =?us-ascii?Q?dFe6u/lBhhovvXEjfUr+N2r+tcTvoaiXga0oDC8Af/ZkjV9aGBLaTtMQnNAH?=
 =?us-ascii?Q?m0hfJO2wYVlOmZpNDAM4QAKvn3C+aWhFyUil04xxu8iG7XMZA5C9vGUecquZ?=
 =?us-ascii?Q?IrU9CJ3JobvnHWX5WzY6RXBGPldxeJbHILxWOfSwpuOuS6TYPC3mMpFI9GzY?=
 =?us-ascii?Q?UuTx3Zc4Omw6okzC6/R6M6X+3ScDw93TYMJomh/9HLpuPHOiCnMfsINir+iZ?=
 =?us-ascii?Q?IgcmLl6RZapKOx68ox6o5+ohoVnYl+8o5vsC028Swjx3OWzDHLw5FLcyydRp?=
 =?us-ascii?Q?OneqH338jAIRSHSYu9Ack/hIyOXDnz7nKA8bj0U9HUu7IQ5aqT+ecWoZ0tbB?=
 =?us-ascii?Q?PBk20Pd7sgfNNp3dtyp7ZMgVe8PDhXdrvQD6MHmE1OK/gdgfPlcK0hFMyTSR?=
 =?us-ascii?Q?dLNVuJm7Xc0F8XrKUI0ifTSNtz3xgX6UF37v/ep1siDlsFPnAyVi65I45HzQ?=
 =?us-ascii?Q?vzcbp0jagz1eJHlBajfXEiybOoTJ3hdJPmNa1JAiZs1TkeiAkf27LDAL+OoZ?=
 =?us-ascii?Q?Twy5fZ9zTnPWUDp81upMfZkVv1Vnx+U9QAry4YZUtQ8BqTYVvCVsW9YSYfoA?=
 =?us-ascii?Q?aBQQLo5w1r9M+4VYGBqNHip/ofgJef4dW6MTCduP+DXYnB1qYjlJHcQtGX/K?=
 =?us-ascii?Q?rxt1hSGsZNVoct3iCNRB+EoCRgGsDvSdFPX2JsB6yC6vnJok6zxuLPHcrllL?=
 =?us-ascii?Q?Q91n6KnhEygx3bpK+gXF7Q1xtK3H4w5RSGTeH5tFIYpVlnP7ZdsGRETUJv8Z?=
 =?us-ascii?Q?lf2Jq59yQ4xJp7fT/7J1xJoa2pesEFzyXSaMH89+h2TFLKTPufl014kQaD7K?=
 =?us-ascii?Q?a/NO2+qpfpxKiK+MH1RVAbKH6DT0qttQ/AfXst22iiir/lScLzdKKjA5Kgv1?=
 =?us-ascii?Q?QCC0GRQrZEgNRtLpf3moc7jAdNqDCTkSftiQBpSruN7YhuDg0eq/lEl75gZM?=
 =?us-ascii?Q?28/gyWjBonVpHPRnTF6sQDRFvyKhlYd/BIhAtJAuE+qhihIfLTMF1KN9n6Nr?=
 =?us-ascii?Q?QMRUVYc/QxTqjTcz/d5+fc8UoDYTM/uemQJLDffI546xyqBQqoIFDfuQu67W?=
 =?us-ascii?Q?DPYYSDZxaxm9IC4/LA6qqbLhMp0gmzknMHu1ptzQmVpqJqxOUXt9S6xXO+i4?=
 =?us-ascii?Q?tkYEBFyuqqJsrNV0AZ7l1oV0m2b2AM3krtqRcR1SigaeLSuznrcurG2cSCeu?=
 =?us-ascii?Q?Xrw50+YoQnTzqxB+U+nUlkLWxD+Dzx4=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fdd43961-d9f4-44a1-7366-08debb240ce5
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 12:41:04.3441
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KvOYQ/oDE6tm1SIh/h5Y4ntS1RVjHKC+IMCsY2wGK2PFw2Tv/GQbEpIemCDmIjf03yOte6zGtieOHcKK7j9PCKVFJ9DlQZLFm+kxh5QV+UI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB7128
X-purgate-ID: tlsNG-bad1c0/1779799268-4216DA53-2F6BB9B7/0/0
X-purgate-type: clean
X-purgate-size: 1403

During a VMRUN, the GIF is set by the processor so when Xen emulates
VMRUN, it should set the flag too. This was already handled for !vGIF so
handle it for the vGIF case too.

Fixes: 4cd0fad64590 ("x86/svm: Add virtual GIF support")
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/hvm/svm/nestedsvm.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index dca07d27d923..9b0bd0358ce4 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -603,10 +603,12 @@ nsvm_vcpu_vmentry(struct vcpu *v, struct cpu_user_regs *regs,
     int ret;
     struct nestedvcpu *nv = &vcpu_nestedhvm(v);
     struct nestedsvm *svm = &vcpu_nestedsvm(v);
-    struct vmcb_struct *ns_vmcb;
+    struct vmcb_struct *ns_vmcb, *n1vmcb;
 
     ns_vmcb = nv->nv_vvmcx;
+    n1vmcb = nv->nv_n1vmcx;
     ASSERT(ns_vmcb != NULL);
+    ASSERT(n1vmcb != NULL);
     ASSERT(nv->nv_n2vmcx != NULL);
     ASSERT(nv->nv_n2vmcx_pa != INVALID_PADDR);
 
@@ -651,7 +653,10 @@ nsvm_vcpu_vmentry(struct vcpu *v, struct cpu_user_regs *regs,
         return ret;
     }
 
-    svm->ns_gif = 1;
+    if ( n1vmcb->_vintr.fields.vgif_enable )
+        n1vmcb->_vintr.fields.vgif = 1;
+    else
+        svm->ns_gif = 1;
     return 0;
 }
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 12:41:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 12:41:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319830.1587302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRr5w-0005sr-HA; Tue, 26 May 2026 12:41:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319830.1587302; Tue, 26 May 2026 12:41:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRr5w-0005sg-Dx; Tue, 26 May 2026 12:41:16 +0000
Received: by outflank-mailman (input) for mailman id 1319830;
 Tue, 26 May 2026 12:41:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wRr5v-0005ov-6h
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 12:41:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRr5u-00GcEL-IX
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:41:14 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a1594ea-2eae-0a2a0a5409dd-0a2a450b9066-4
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:41:14 +0200
Received: from [52.101.53.69]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a1594e9-212f-0a2a450b0019-346535456a8e-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:41:14 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by SJ0PR03MB7128.namprd03.prod.outlook.com (2603:10b6:a03:4e7::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Tue, 26 May
 2026 12:41:10 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0048.019; Tue, 26 May 2026
 12:41:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=R9QAoA8C8icv+fF3q9bO60ggwTkR0KX2i4+rCy+Z+2yYz2iZOYowEuVONKpXmor2+CZEEbcb5LgoO9bbkRQsZ6t5PJINIkJWgbNu/ji/V9G4Uvkv5Lj5lYp1lfxQY14z5aVIeCwrUbwvwpRgoAyC9EMTsvvYqknlkk8KJHgNQ5nGEwH7ZoUCZ0oqSxwqYhc8bCEUZDw1PjEUTD7b5YB0YQKjoSDkDZk59YOoK03UFAF9kyG8tmv94ayce2TnRE83Wzgg0esnqmwxD5icxkmIpmKjFrID227v65SD6XveoRwzpbCW7mdXEEg/4MA95bXhszPUprNXscb1gdn+dA1EuQ==
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=25QH8/n9RskB/SU6v5MzQTSD7KovvwReHF70/x5KgoE=;
 b=eMNho1IzcLpU4yXk3e7JxdB1PqmIEjGavOKoSpFyCdajV2AkbdUyCO2Bs5pOkTdL+2vWAaKlNHNCc7H+EWKRyR/q9i96QFou8j+4CMQfjAQaV24+ysK4/taSX7Cag7tGMdrsA1u5dEE87LjklZPilnLOl5ImnLUIrXksVLwGltrrywOuxyehQIWI6hScTSBogzNzzJIL5qSX8uCetW2aXnc/2R5CoQTNSNGUc2t7FQxwn1ugI/7aXh5Cqiatgy+azDqy7VNznTg4YWK/z3Kzek+3ts+AkXT8aX1izT7txlJioBMWgZ1C4H7CFZHRsYaEr+bQg1Uq2Tzrtysc2YIAIQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=25QH8/n9RskB/SU6v5MzQTSD7KovvwReHF70/x5KgoE=;
 b=AGqvjTmTlt0DI+El3GQLPivpKGc+npYNMfT2RUez/VQIio7ynfvvHUc5oP4XQwejqe5RmH7/NzGtCbIFM/E88ELRV9cgznf6XU4PboYyhM3lDKij4Dr/UFYzgtQ13vsw9kj1lAAuQZI4saKArfV7S+16JJQfchKoRU1YevI2vzc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v1 5/6] nestedsvm: Fix deferred event injection
Date: Tue, 26 May 2026 13:40:26 +0100
Message-ID: <20260526124027.573412-6-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260526124027.573412-1-ross.lagerwall@citrix.com>
References: <20260526124027.573412-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0156.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:188::17) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|SJ0PR03MB7128:EE_
X-MS-Office365-Filtering-Correlation-Id: 3b2ffef9-16e7-4a1d-d881-08debb24107a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|11063799006|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	7bjLD9P9S9cA4mFHwXUGRJGYlsyjLDNI1+8d9JpyRrD70s4RJZfnhyqAN7f6tPo9FxQeBLs/hp1SGe6VfIHU9gF0goXLiyhqgc2ctC5Ztwgcrf3F0C4Jq/ZMDq5AGB8MfwA5dbhhSv771FqIz+9QX6qkHk1wcPNDc8yJgFy1Mk+HlJmJhDowP0u8Ev87kHe8vCRmsHuDBd73Vr+9QIQqhBmFmeMJGUdhXkGeLGPI/ByRCgUqRpG1RPKtstjrYAuFLdxeZhkPtz6coyRF2Kb4K1zgtuYnmOw2gBXVlqiDrYJV8Mu9ET4D/YQakTfvSwVU4WBambDtuCBDoJK2jCzZHfleNPUEJ2VLFmJD7W6WgCu6S4cno1yEttCrVDRTSlzTrEKShZzK82ZJixkyjobelMdUzyteHVte64rPu4Dd1OIEMJY5/95C21b2HDJtS5FuVro67V5USXnl29Iqernt2uywY5nVFHhx9CwwWihf8DPV2/k9zmSvDN45Rnoh1Rjz+Joj+w2hXSqJ+YsNL5PQXFe/SO417mxeL4oCnjWQJeAd6hYKZvRnuq2Efh6q5USObeXYfQfCibeuDvy2uSJBFQ8mBJ4AexfmEUFzq2ooCJxIBKv2EWCWDFaP/Atkp1MuuitXHGmhGGStPSSg8eRp5RGo8FxtoxID+QAFzVmdH662lZsnJa+n/FDnA+Xn+J2r
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(11063799006)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?JuxzMGDp4q6b9b0vZfThD5sA4LM18YUwq6tkNUYiu7siS6guKPIRvbzhLAK0?=
 =?us-ascii?Q?hIVZ48iR6USskpZTls0cG3UPcIjw9IUtUbsR/pvgIKWDkqIVK1m5SlDlljYe?=
 =?us-ascii?Q?dEywudHpUmn6RwSkH+Ch5Nj3mfloOJrj7hLJbi8ItLVdYDKSPrsSZTgXUuri?=
 =?us-ascii?Q?IbYKEHGgaN+nVJPqiaOtnWmysmPVhmkrUM5UW3baiOUjp/CPB3kds9tPzecI?=
 =?us-ascii?Q?2rL3pDkNYVVg5s8balWQvwl6cyClsDpQxLbvFjOZUUOI62JsY3QqdzefMC26?=
 =?us-ascii?Q?Hf4bnMObd64IUYCxbgXQz9m6cktvz4JiKpgC5a2osktGuQvD4T1RmYYiUqKw?=
 =?us-ascii?Q?Lu3zVkpIc4e4cyIvhV/v5vjfeIM7LiqHEDLvk49JnsaHTlSfF4+Rdz+I++f0?=
 =?us-ascii?Q?bzSg5sSAomqjTJxpc0PUbpIIwvw6k/y7g98iRpaEnBCXCALNEla+Of1BRwL8?=
 =?us-ascii?Q?ve5x8u7P1SNIc6ASx9ORr7vibjxybJ2YlH8BCyVssm1hyN/4dFgVb9MuHwZR?=
 =?us-ascii?Q?rT4Zd8qOeEg1jUvDGivZXIjIHLoTfXCZMj5rlh/j5NHdZM82IV7lICiI3byH?=
 =?us-ascii?Q?dEEaa7jac023BpHBTgjES5ta0biW/7DvQSWxp+8bsZcZDRUPNMw2B2nhZBxE?=
 =?us-ascii?Q?WJLNo8fsPiTBLC41XR0MTU74r2Ypa2waqW33aCh/aeVG9vUkS6qMktYYElRB?=
 =?us-ascii?Q?VOtMw9nR161weLNiVESODibqvoMKJ8BUeyDS2H6/waeWJsmESH47UNaIEZdv?=
 =?us-ascii?Q?8BENtQ5Ch+A4gQWk96s8INnXIlzR1dPxTI8vFdEtL9LxfQNJnFH1eskGVy95?=
 =?us-ascii?Q?ZU8+Vs9FFVggQvyJGi99geomhefKDjfMWbtwRVWmq5iREil/vEwT0HBoOae6?=
 =?us-ascii?Q?2ZRgulNmj7TBpBoU1G5qM5O46LBjBWhUpOQeBYq4+U368Lk+AuOi27yKS14a?=
 =?us-ascii?Q?SErcqJFn5cFmrm37uOcJe7ADh+yksMwYhEfBBPRjzg+u4KM5IB4Wocdyi006?=
 =?us-ascii?Q?FcSLhW1Wo7jeWiP2QzSAFBs2DakZNZ9f0tfCBlFNPnxhoM/bsZjMMYOxJrCF?=
 =?us-ascii?Q?mZiTxGFhMHqbsUkyk1uF4X2kc/JzWpt3Evev0Ym2aAPzcMisB6/UCxtOc+u3?=
 =?us-ascii?Q?gBVmU4W3oaiUr8fjdapvFIdTFYSWQY5BvIOvM1jJ/5fakOENtuJAoRl2rFG6?=
 =?us-ascii?Q?Bewaaf9vIbGyT5B5tpFS1nSX62MQZoaKpB+ZfCY3xoTL2eeZVwf+ewHinu6b?=
 =?us-ascii?Q?ynnv/IZB1Dxjxvhwnz10FryDt+K+c/Kwd9QtD2xr26ShUmSCmMNoZUJlexUD?=
 =?us-ascii?Q?8Smd3mu4ssa+qzUH2o02itI0angOEjdnOdSHNXEpL6RQTVufjfs5x9HcxljQ?=
 =?us-ascii?Q?bRryX4a8yZERsC1mo8FkoTVD8ugBRYk6S0NRHR4sP25hfiL27Wrv+hqzxmZ2?=
 =?us-ascii?Q?xd7uRKxtN17opiclfIVM5Y9fEnZ4zRbvGzUX74AesVsQiOxmcYOsu+LrCSoj?=
 =?us-ascii?Q?YrkmTCIfwSRRcS6q8jGe6+L6wPiyAPsl6Q9erdtuGL7fwkc1X7Uv/OZWwILq?=
 =?us-ascii?Q?dZ9MuHrhZZ/8xacQfCN73l15ct1G8akXBRhIlAj/VXj1nlxBj0i8Kvph6C3F?=
 =?us-ascii?Q?Fmuu49LhTPwT5QeLHCkPELfWqwPm9xIyv8EIUkbUtF6sMeOMcMxlD4jIdogD?=
 =?us-ascii?Q?JWNDlQW54ncO89XoQ6orrRfniCC4rm8s5wG3u05ZAuji+Cyvmw73Jx8q7ZMB?=
 =?us-ascii?Q?7Wcf51WemWYIBgC796UBp1ifvlrXJik=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3b2ffef9-16e7-4a1d-d881-08debb24107a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 12:41:10.4510
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: h7Nj47CG2kyYwg0g7HWXtL/Vkpd2WLL6sCsSyV10QiZVhN+97GFc63cHSst7YCdtim/bITYv/LVcO/4ArxzvVjgIIBNQjad0b9IJT/eY5oY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB7128
X-purgate-ID: tlsNG-42698a/1779799274-2007BF3B-B9CA4688/0/0
X-purgate-type: clean
X-purgate-size: 3554

If an event for L1 occurs while L2 is running, Xen should inject
VMEXIT_INTR and the event into L1.

nestedsvm_vcpu_interrupt() and nestedsvm_vmexit_defer() set this up to
be handled later by nsvm_vcpu_vmexit_inject() after the switch back to
L1. However, the code there appears to be bogus and completely ignores
the source/vector set up in the first place. Fix this by using the
values to properly inject the event.

Fixes: 9a779e4fc161 ("Implement SVM specific part for Nested Virtualization")
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/hvm/svm/intr.c      |  4 ++--
 xen/arch/x86/hvm/svm/nestedsvm.c | 22 ++++++++++++++++++----
 xen/arch/x86/hvm/svm/svm.h       |  3 +++
 3 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
index cf0621d2f628..8914375b6c21 100644
--- a/xen/arch/x86/hvm/svm/intr.c
+++ b/xen/arch/x86/hvm/svm/intr.c
@@ -55,7 +55,7 @@ static void svm_inject_nmi(struct vcpu *v)
         vmcb, general1_intercepts | GENERAL1_INTERCEPT_IRET);
 }
 
-static void svm_inject_extint(struct vcpu *v, int vector)
+void svm_inject_extint(struct vcpu *v, int vector)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
     intinfo_t event;
@@ -69,7 +69,7 @@ static void svm_inject_extint(struct vcpu *v, int vector)
     vmcb->event_inj = event;
 }
 
-static void svm_enable_intr_window(struct vcpu *v, struct hvm_intack intack)
+void svm_enable_intr_window(struct vcpu *v, struct hvm_intack intack)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
     uint32_t general1_intercepts = vmcb_get_general1_intercepts(vmcb);
diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index 9b0bd0358ce4..d4fd838ca0b6 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -733,11 +733,25 @@ nsvm_vcpu_vmexit_inject(struct vcpu *v, struct cpu_user_regs *regs,
         switch ( exitcode )
         {
         case VMEXIT_INTR:
-            if ( unlikely(ns_vmcb->event_inj.v) && nv->nv_vmentry_pending &&
-                 hvm_event_needs_reinjection(ns_vmcb->event_inj.type,
-                                             ns_vmcb->event_inj.vector) )
-                ns_vmcb->exit_int_info = ns_vmcb->event_inj;
+        {
+            struct hvm_intack intack = {
+                .source = svm->ns_vmexit.exitinfo1,
+                .vector = svm->ns_vmexit.exitinfo2
+            };
+
+            /* See the comment in svm_intr_assist() for why this is necessary */
+            if ( unlikely(vmcb->event_inj.v) ||
+                 hvm_interrupt_blocked(v, intack) )
+            {
+                svm_enable_intr_window(v, intack);
+                break;
+            }
+
+            svm_inject_extint(v, intack.vector);
+            pt_intr_post(v, intack);
             break;
+        }
+
         case VMEXIT_EXCEPTION_PF:
             ns_vmcb->_cr2 = ns_vmcb->ei.exc.cr2;
             fallthrough;
diff --git a/xen/arch/x86/hvm/svm/svm.h b/xen/arch/x86/hvm/svm/svm.h
index cfa411ad5ae1..186e0905967c 100644
--- a/xen/arch/x86/hvm/svm/svm.h
+++ b/xen/arch/x86/hvm/svm/svm.h
@@ -95,6 +95,9 @@ enum vmcb_sync_state {
 
 void svm_sync_vmcb(struct vcpu *v, enum vmcb_sync_state new_state);
 
+void svm_inject_extint(struct vcpu *v, int vector);
+void svm_enable_intr_window(struct vcpu *v, struct hvm_intack intack);
+
 #endif /* __X86_HVM_SVM_SVM_PRIV_H__ */
 
 /*
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 12:41:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 12:41:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319835.1587311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRr60-0006Is-0P; Tue, 26 May 2026 12:41:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319835.1587311; Tue, 26 May 2026 12:41:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRr5z-0006Ih-SF; Tue, 26 May 2026 12:41:19 +0000
Received: by outflank-mailman (input) for mailman id 1319835;
 Tue, 26 May 2026 12:41:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wRr5y-0006E2-Ia
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 12:41:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRr5x-00GcHe-UZ
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:41:17 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a1594e1-2eae-0a2a0a5409dd-0a2a4504c02e-40
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:41:17 +0200
Received: from [40.93.194.33]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a1594ec-1dec-0a2a45040019-285dc2215851-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:41:17 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by SJ0PR03MB7128.namprd03.prod.outlook.com (2603:10b6:a03:4e7::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Tue, 26 May
 2026 12:41:14 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0048.019; Tue, 26 May 2026
 12:41:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AMNwPw6Wh1L3irFcfTAMRSniApzFzrb+G7QrhcNyl4XvIfheVnvz7iR6eY3+qoEcyiYULzJ2k1/4q5DpOaGTYdgO5mnlVkJf2WhaS9ipBjbbjcrOfbkpB67u38a8R/797Q9IlOXxGiBC68LokXtz2dmIPw7u0JHMWgRUEnH4liYnCYsMtEf9ILmmRMUvWEntht83j/tQOzyVtQmbZbmWaHETnx9YiTNTIgSF58hASlK2316j8bvV1Zs7LZi9Fb9Ql0JVv2ksWAet9zMewA+tQX5R0bzDbTXB3b45TK2kM22eGAgJ/TFt2brRWmkMeCMrwWi6f96PJbjFGL2e/d0OLg==
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=m6q4xOqMf7DWj9QDMbGFMqw094yOSXyRHKf8SQZEleY=;
 b=it6JOBZ5HqtKo75mHdDgdQKtYTtBKtFFDdxDdB7jaWW0ywhk4dkx9kbfLNUZKu8rz6TYp07HSHgChReErEwepyzM0aCZcvMvCiprtBP6JfmAujFt8XrpHiixUP0iHSzJhnEAUlxLwJKzd+ieEgSgdoHtGNPxUHP9exPclumR8mJs62pB+OrbE1+mwl+JEQlPBLs8WMAbKajNb5AgqodFunDz3a5Pj5MqnEfRIswDC+cRy7QUJ3pBc8Bjrb9AkJEyTkNoCb+5BZ4HJ5VsbG/4z24bk+0kdLODxOBi31sAvtMEeNMbSbXJEneXT9NRMW5snTdb5gqcBCZhkouwe5EYmg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=m6q4xOqMf7DWj9QDMbGFMqw094yOSXyRHKf8SQZEleY=;
 b=hUj05kd1HnBrsW7ZdCEki6z1TkbDC/82oh7ITfgwdxoK/MhhWPSM7kHs4Hvr1L9RFqRBogkemlIl3QaPsatM6ugEzbkVtxKzHMnWg4RLvxJRE8wX41Hv6lRIcRuSKFUHUjd2VwKtdlnwjqd9YyO1IpMJPwfdyx72PqS1CBt5Rvc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v1 6/6] nestedsvm: Allow destroying the domain fully
Date: Tue, 26 May 2026 13:40:27 +0100
Message-ID: <20260526124027.573412-7-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260526124027.573412-1-ross.lagerwall@citrix.com>
References: <20260526124027.573412-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0159.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:188::20) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|SJ0PR03MB7128:EE_
X-MS-Office365-Filtering-Correlation-Id: 5444aa20-f354-4bc1-8dd0-08debb2412a8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|11063799006|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	v+EXLnaEQIhhd+Yee9qxjeVWXwxJdXl6DECAvTKgPHozyvu4KVg8xNMDYhQCOIsKEwOFNk+cN2OGicW81+dXwYTTaD8wU5Oq2RGrHu+/QQBI4u6APbphw6rmJobHSes0B0UTsaJ4JuRHn7dcaIr72w5LvUAUHK6dUpxvzUDiNY/VyLgdJrKtPw/IOTZGKeiIhfuRovZ1JviePOQsyRoDDFp+yE5f6n0leVgRg78idEfgW5QZy88PoUluo4ekS2pYc2fv6UA2Zy8Vi/J0ybXPyU4pQJXlqpgDonVW9UP/6gNNjdSwfDK3Yr1TK2a3IPKjQpNKdvVF/tdPyLlXv+uDUXj2asAkAaBraE0IcFTOzaCXqdQsq3UK0RHcfK/18uxInMdSudjL6YeIJ8ljxWW+5/YejqNe7Xl0QVVFgkNAof1BxFAmg99kBx1GzFBrSNURqP+tRNLG4TgDQ23FWmmUsX3flQqI9T3vjhXsL25G5LlObvi8gzQ2aiMa7SNvgLe4Fk2lDo3+8DLQaPwcSUENPfHUGpYeNGK6RmDiGJdxha4FCeqouXw0umaEkWSfMtyOHG9pMmeadcBvsKSoA95qjsmQM4JYtdvBZlPiouzgPSW+L+On2tqcvFRSkP6fwnr6xC2RjGcIxh1yzNLDVKcUsUP/ng+YkTcaUS8P/DporhUZDlSzzdyIjMIQsul0OBk8
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(11063799006)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?6T9azilw98jXlirA1UJRefzCEk24NSkA4Ong6B6rksQ3c88WfpgR12qKxnYx?=
 =?us-ascii?Q?cxpQKoW1ahBDUg+FO2HBs/4clNoPj3fBRnOltTkK9hy7vGbUVnN/RZpF5Vn8?=
 =?us-ascii?Q?K6Cgieq6X5RS1borI0rYZjAKe3GrrryVUp7Ypsmuam/xWGkfRJDiM2uM7q1g?=
 =?us-ascii?Q?6jLzWCU3G9v3FZvFgMS8Fzj1PIdnd2wqErDCPh8oMfE02GyDTgrfmsRt3Dtk?=
 =?us-ascii?Q?9H32+eq9Pf//fHp1ynL7AVIpC1ywgWvpMpkPx18c14HQsBY2Xu49u2a1TAVY?=
 =?us-ascii?Q?K4mdfOKld17YMbhCQUiU3K3IUjNleuYRZP6UbUqdXWw97olhwj8rmNsHGArE?=
 =?us-ascii?Q?tk7zogUvaU3TfWJGhRR6K+m5xLG4gPt0J2L/OGR1vHxTtmdRw70ayNM8i0Tm?=
 =?us-ascii?Q?jpYyVACsKi/rRv5Jiprf8Mt82R54L5I0WhZ0/Ei0Fc8eIjY3KeBAldtqQ8Tw?=
 =?us-ascii?Q?+LuopbUiTgL7OLBo41cwytAy0Zv2Voj57mS1CGnPKZ8bvtrFWZxMBrZWZT85?=
 =?us-ascii?Q?tIpvN8MkG9XXTT8PYWDcl4xk0xxIWUH6YFMe1hSsDqaGljkUbSEKKTc3NWWz?=
 =?us-ascii?Q?IHpkZ1aV6Q1/eG/X6EeEMBbK1xDADbE6647cO+J1LMK91NgOnAJZjKNtwA0P?=
 =?us-ascii?Q?KuJz7LnQCQSkxgB8TeYo1n9nQ/ycBV6EemSjU474Iq5H+bo5pv70tVDmMCNb?=
 =?us-ascii?Q?1JbfJdYfGoby85QCLsmtIHpardNPsKM8+aeurPDysbzTQkBPBn0I9gEyNM1s?=
 =?us-ascii?Q?sWFn6iYg/9HCk6JKTceqAfYW/sMFu8oGXcED2k9lAadZghWZeBtQm3Iiay2x?=
 =?us-ascii?Q?+CpK9RjMl8RoqBEymJ9Lv3r1Zn6Zg2K8C2Dx4sJAlIJJZlEfAmcI573jBwEK?=
 =?us-ascii?Q?yfDQBRYXXB4uwF85e26N5O7B6qcYmjftm0Wd5s8NYEJIltrK5/1oFEdw27B+?=
 =?us-ascii?Q?p6/JdibJio7wEzrhWAiDscz1ipgpm9/qFm6RzGLxotbGyjNG7bMS2EUjsH4Z?=
 =?us-ascii?Q?uVWFkEwm21DT6zYJyE2lgqgx9fdL7H92HO205IYZnfeSsTs3JbarMCnHqRTD?=
 =?us-ascii?Q?ff3x9kfR7dPBvKwaJjHE3Wo3gOB272YWay5mlkR5eDMsZQReqrP/QrY6WV5j?=
 =?us-ascii?Q?6Z6hfGjaekh4LdFqVeM3gD5WQ/3jri7torutaoQYRWyGOs4ZzvhYi35C1qgi?=
 =?us-ascii?Q?YLhcRghCPZS8NEmbrCyehlvGmhhYinrApuP4815rH0cmLcCGgc5E8Cl51qvM?=
 =?us-ascii?Q?T1hfUB0KErjnB3Tqj/oVIUDfvR1mgqMlxfHCDIfrBzpjoEGpn6wO0kKWLsD/?=
 =?us-ascii?Q?m5zHTtASfKZg3598JC7ALGHWWY/D05mH7loNwpUzQmLIrhNfHzTHcd93lQaZ?=
 =?us-ascii?Q?FcvT3zzEUOELa1P8IcNMSY+oLnZoy7PDII7yfbxh4YPXPVf+m+jb1w9r2yWj?=
 =?us-ascii?Q?1vrYf97rWbF5BM7IQiPtO5xCXxDY7QTuVU2ymZhYltWMYphPdoXfQQr9+jFj?=
 =?us-ascii?Q?jS7vRx0c/HJJESgZEd0oZEOiZt78dv5FHFLeMpecmoiFgK7zdFJ01M1zobIO?=
 =?us-ascii?Q?VeHNm7B5dH73vUTwnlZjm9CSD3wauilJiVB1YmUw8mf1Qj9WwQ+Z0q/LB6Oi?=
 =?us-ascii?Q?fvBOXiZNqOugF9KC7k1xfCuCJLhHIlY2GZn0KIe/5hz5/1v8/nQydL020ZN7?=
 =?us-ascii?Q?9d3MW0NZ+8shZtgU8xoOJjZjdOdnFAWvpx6be+f/gJO4TYaQBB1KiPijyAQ/?=
 =?us-ascii?Q?QHlDpZp5KEGC5hDasrQIIpKFOGTlXlE=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5444aa20-f354-4bc1-8dd0-08debb2412a8
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 12:41:14.1026
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +yH1+XuSgsFZNzDSGuQ6SH3H5p3/u2cjDyuRyCm+PQEq3gt5rXVkpoYzWmQ1Y1WBO5HvWYRU4eSlUfR+KzYMTJ3QhxjRjjLe/USOuGmAhns=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB7128
X-purgate-ID: tlsNG-ebf023/1779799277-4396A3FF-0B101CBB/0/0
X-purgate-type: clean
X-purgate-size: 2795

Unmapping the virtual VMCB is performed near the end of the domain
destroy procedure but the mapped guest frame prevents domain destroy
from getting to that point. This means guests that call VMRUN cannot
be fully destroyed.

Move the unmap of the virtual VMCB earlier to fix the issue.

Fixes: bcf557675d85 ("x86: properly use map_domain_page() in nested HVM code")
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/hvm/svm/nestedhvm.h |  1 +
 xen/arch/x86/hvm/svm/nestedsvm.c | 15 +++++++++++++--
 xen/arch/x86/hvm/svm/svm.c       |  1 +
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/nestedhvm.h b/xen/arch/x86/hvm/svm/nestedhvm.h
index 9bfed5ffd71b..9bb04a043430 100644
--- a/xen/arch/x86/hvm/svm/nestedhvm.h
+++ b/xen/arch/x86/hvm/svm/nestedhvm.h
@@ -48,6 +48,7 @@ bool cf_check nsvm_vmcb_guest_intercepts_event(
     struct vcpu *v, unsigned int vector, int errcode);
 bool cf_check nsvm_vmcb_hap_enabled(struct vcpu *v);
 enum hvm_intblk cf_check nsvm_intr_blocked(struct vcpu *v);
+void cf_check nsvm_domain_relinquish_resources(struct domain *d);
 
 /* Interrupts, vGIF */
 void svm_vmexit_do_clgi(struct cpu_user_regs *regs, struct vcpu *v);
diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index d4fd838ca0b6..6f4684f5c21b 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -110,8 +110,6 @@ void cf_check nsvm_vcpu_destroy(struct vcpu *v)
         svm->ns_merged_msrpm = NULL;
     }
 
-    hvm_unmap_guest_frame(nv->nv_vvmcx, 1);
-    nv->nv_vvmcx = NULL;
     if ( nv->nv_n2vmcx )
     {
         free_vmcb(nv->nv_n2vmcx);
@@ -122,6 +120,19 @@ void cf_check nsvm_vcpu_destroy(struct vcpu *v)
     svm->ns_iomap = NULL;
 }
 
+void cf_check nsvm_domain_relinquish_resources(struct domain *d)
+{
+    struct vcpu *v;
+    struct nestedvcpu *nv;
+
+    for_each_vcpu ( d, v )
+    {
+        nv = &vcpu_nestedhvm(v);
+        hvm_unmap_guest_frame(nv->nv_vvmcx, 1);
+        nv->nv_vvmcx = NULL;
+    }
+}
+
 int cf_check nsvm_vcpu_reset(struct vcpu *v)
 {
     struct nestedsvm *svm = &vcpu_nestedsvm(v);
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 209edcba321a..e6b5c9ec3b9c 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -2422,6 +2422,7 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .nhvm_vmcx_hap_enabled = nsvm_vmcb_hap_enabled,
     .nhvm_intr_blocked = nsvm_intr_blocked,
     .nhvm_hap_walk_L1_p2m = nsvm_hap_walk_L1_p2m,
+    .nhvm_domain_relinquish_resources = nsvm_domain_relinquish_resources,
 
     .get_reg = svm_get_reg,
     .set_reg = svm_set_reg,
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 12:50:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 12:50:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319877.1587325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRrEU-0000vz-8Y; Tue, 26 May 2026 12:50:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319877.1587325; Tue, 26 May 2026 12:50:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRrEU-0000vF-3b; Tue, 26 May 2026 12:50:06 +0000
Received: by outflank-mailman (input) for mailman id 1319877;
 Tue, 26 May 2026 12:48:44 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <cassiogabrielcontato@gmail.com>) id 1wRrDA-0008Ou-E4
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 12:48:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRrD9-000tzp-Qh
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:48:43 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <cassiogabrielcontato@gmail.com>)
 id 6a1596a7-5cb7-0a2a0a5109dd-0a2a4502bdc0-12
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:48:43 +0200
Received: from [74.125.82.174] (helo=mail-dy1-f174.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <cassiogabrielcontato@gmail.com>)
 id 6a1596aa-af86-0a2a45020019-4a7d52aed41b-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:48:43 +0200
Received: by mail-dy1-f174.google.com with SMTP id
 5a478bee46e88-304545f5206so5558143eec.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 05:48:43 -0700 (PDT)
Received: from [192.168.1.18] (177-4-162-74.user3p.v-tal.net.br.
 [177.4.162.74]) by smtp.gmail.com with ESMTPSA id
 5a478bee46e88-30451f20561sm9516837eec.10.2026.05.26.05.48.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 05:48:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779799721; x=1780404521; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=3SeoXPiG4SB9SK2Lj+OOHLE9VbLHbVVD8iNOr5ymQzc=;
        b=RgNHZKAlsycS/KrzpegYW25P88m2WKUNAMeqWM9Rtq14myAw3o4uVAUgmsUsi22UTJ
         G0C+MW02bb66vrbPxmRCJY0ygXSZmkBwjx2XUHnt6hGrTRM6KlQYFfl7xuuCby63pESM
         cSeUp03GYoDL/AMpuJVQhkEHzQmcZ8tGARuP2DerLotU/3wMAOJR6S91kJFtsLeI9XVq
         LfKwPSDeroaEETwx/FWWFC/9x2fycveDCCw4Oi/CL+zI2/HeJhCATIhPS7FaHCUznz+n
         DhW2RBnSVpEfVQHuhIkIlyJyzKpq60tYDVEH4zwJxpkRM3/Wk5P9od8nAYOqZIJSEEPZ
         nGeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779799721; x=1780404521;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=3SeoXPiG4SB9SK2Lj+OOHLE9VbLHbVVD8iNOr5ymQzc=;
        b=IZQcR7YtdpAXFd5vL3k14LQNwUqgPzX/bV8VukmDMJwkmtvIKmMaUchJOCGgYGdZlN
         l8yWY+MzPDgRD5GkmLqzfdbqzsQAz61od/SDXeDLpUy1FtusEgoYLUaKKa6bUhG48ZHs
         nWNFFs11BqM86eoi9439a1NhV1Ha4UBuOufm69KG5YU29q0T5Lw7k2SGjrxatZAlMiCq
         r9xSgipChMQDPEx4IZIpD8qVZnZUBAhCLQzlvJkQJiS3mzOGpmGNDlgWHj4609W1ivd6
         dsuWlGBqNEneu2k4jGtpW+dEeTeKMvbXejCJE8agks9jSfpbQd3CZWVIQPG1hXPDHXUP
         AqIA==
X-Gm-Message-State: AOJu0YxxNxvvyvVdzykg8f0z8nYdBe2SPjLfNegv0NrqhBUBGeCxJPwc
	Dr0yhKY6f2G7rGkmJJvLoWiCvrB5KaVCTbqqt7xHuKz0//LYSsOqVRv3
X-Gm-Gg: Acq92OEpYxnwwuOFAZUgZXtzmRb1413M1e8DMJdZm4D5J5AE9xpMBgqHAhgMSJFXKE0
	NWgfEULgG018FGExK32ACA34VqKb2uYw8Fcpbr/UWwC5xzQM/Jp1bfEHKmZpz4Ti4ajn9jPDkdL
	yMkslkN/U6i2CdefmaUB0HtR4rDAjK9e1VH6iwLyd9wxydkUvDnRNRiQfWBJqrE/uQZxSP9abuj
	Gtyd4GqTZnSBhtLA/QxzYa8lmlPzHLcMk88lggIcR/WvCBGTMmQR3rze32y/OV56aVP7fWJClda
	U3rajcZVIQJ0c1GpOBr4IKhZVFSn3QNeXwEoLfiYHAomF/1w2V02Q88JPGKOYsbQRnFn358syV7
	6gsUzs6PAWs0jndeDwkNMqUA/0GEoegprgNLtFXum+pQsaeqklg9acwjiKjniubUIeEh/bjPYDs
	5ohDAGWZbKHkIJ4A+t7eBRA8YVKeYhMlwYbRJsXS/PB+5Ae80X/2mjYD6ptd/y6hdR23pRKcT/F
	sP3SmovL58W
X-Received: by 2002:a05:7300:fd10:b0:2de:1508:937c with SMTP id 5a478bee46e88-3044912be04mr7816259eec.24.1779799721346;
        Tue, 26 May 2026 05:48:41 -0700 (PDT)
From: =?utf-8?q?C=C3=A1ssio_Gabriel?= <cassiogabrielcontato@gmail.com>
Date: Tue, 26 May 2026 09:48:26 -0300
Subject: [PATCH 1/2] ALSA: xen-front: Reset event channel state on stream
 clear
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Message-Id: <20260526-alsa-xen-event-channel-fixes-v1-1-91d3a6a50778@gmail.com>
References: <20260526-alsa-xen-event-channel-fixes-v1-0-91d3a6a50778@gmail.com>
In-Reply-To: <20260526-alsa-xen-event-channel-fixes-v1-0-91d3a6a50778@gmail.com>
To: Takashi Iwai <tiwai@suse.com>, 
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>, 
 Jaroslav Kysela <perex@perex.cz>
Cc: xen-devel@lists.xenproject.org, linux-sound@vger.kernel.org, 
 linux-kernel@vger.kernel.org, 
 =?utf-8?q?C=C3=A1ssio_Gabriel?= <cassiogabrielcontato@gmail.com>
X-Mailer: b4 0.15.2
X-Developer-Signature: v=1; a=openpgp-sha256; l=2435;
 i=cassiogabrielcontato@gmail.com; h=from:subject:message-id;
 bh=WzcH2Sbtw60mkU1iRWe1iTMpo9hq4D+yg6klUsKkNfY=;
 b=owGbwMvMwCV2IdZeKur/u2bG02pJDFmi0xY/773+TatxsuO3sLm1k80P1AktaOgPtVqpe93SL
 eevisy9jlIWBjEuBlkxRZbVSYss93Q9uFoft8IDZg4rE8gQBi5OAZgIjxLD/7pC83C/jANS+Xu1
 xTxfdK10nmlr/Ov2wbwHxwVTts6d1sLIcP1OeqHlcb0O3c5kV4NmDnstqS6+sNPxc8qOzU5VN0r
 mAgA=
X-Developer-Key: i=cassiogabrielcontato@gmail.com; a=openpgp;
 fpr=AB62A239BC8AE0D57F5EA848D05D3F1A5AFFEE83
X-purgate-ID: tlsNG-720697/1779799723-A857B161-9CC8DDE0/0/0
X-purgate-type: clean
X-purgate-size: 2437

xen_snd_front_evtchnl_pair_clear() resets evt_next_id for both
channels. That is correct for the request channel, where evt_next_id is
used to allocate the next request id. It is wrong for the event channel:
incoming events are validated against evt_id, and evt_id is incremented
by evtchnl_interrupt_evt().

This leaves the expected event id from the previous stream instance. A
backend that restarts event ids for a reopened stream can then have valid
current-position events dropped until the stale frontend id catches up.

Reset evt_id for the event channel. Also advance the event-page consumer
to the current producer while clearing the stream, so obsolete events
queued for the previous stream instance are not delivered to the next
ALSA runtime.

Fixes: 1cee559351a7 ("ALSA: xen-front: Implement ALSA virtual sound driver")
Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
---
 sound/xen/xen_snd_front_evtchnl.c | 8 ++++++--
 sound/xen/xen_snd_front_evtchnl.h | 4 ++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/sound/xen/xen_snd_front_evtchnl.c b/sound/xen/xen_snd_front_evtchnl.c
index bc03f71bf16e..09e4c1d05636 100644
--- a/sound/xen/xen_snd_front_evtchnl.c
+++ b/sound/xen/xen_snd_front_evtchnl.c
@@ -456,7 +456,11 @@ void xen_snd_front_evtchnl_pair_clear(struct xen_snd_front_evtchnl_pair *evt_pai
 	}
 
 	scoped_guard(mutex, &evt_pair->evt.ring_io_lock) {
-		evt_pair->evt.evt_next_id = 0;
+		evt_pair->evt.evt_id = 0;
+		/* Drop obsolete events queued for the previous stream instance. */
+		evt_pair->evt.u.evt.page->in_cons =
+			evt_pair->evt.u.evt.page->in_prod;
+		/* Ensure the consumer index is visible before stream reuse. */
+		virt_wmb();
 	}
 }
-
diff --git a/sound/xen/xen_snd_front_evtchnl.h b/sound/xen/xen_snd_front_evtchnl.h
index 3675fba70564..8400261ac466 100644
--- a/sound/xen/xen_snd_front_evtchnl.h
+++ b/sound/xen/xen_snd_front_evtchnl.h
@@ -37,9 +37,9 @@ struct xen_snd_front_evtchnl {
 	/* State of the event channel. */
 	enum xen_snd_front_evtchnl_state state;
 	enum xen_snd_front_evtchnl_type type;
-	/* Either response id or incoming event id. */
+	/* Current response id or next expected incoming event id. */
 	u16 evt_id;
-	/* Next request id or next expected event id. */
+	/* Next request id. */
 	u16 evt_next_id;
 	/* Shared ring access lock. */
 	struct mutex ring_io_lock;

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 12:50:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 12:50:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319879.1587330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRrEU-0000yi-Jc; Tue, 26 May 2026 12:50:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319879.1587330; Tue, 26 May 2026 12:50:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRrEU-0000xL-B8; Tue, 26 May 2026 12:50:06 +0000
Received: by outflank-mailman (input) for mailman id 1319879;
 Tue, 26 May 2026 12:48:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <cassiogabrielcontato@gmail.com>) id 1wRrDD-0008PP-3V
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 12:48:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRrDC-00Agmw-Fd
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:48:46 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <cassiogabrielcontato@gmail.com>)
 id 6a15969c-e002-0a2a0a5209dd-0a2a450cc9f2-42
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:48:46 +0200
Received: from [74.125.82.180] (helo=mail-dy1-f180.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <cassiogabrielcontato@gmail.com>)
 id 6a1596ac-62f1-0a2a450c0019-4a7d52b4b5f4-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:48:46 +0200
Received: by mail-dy1-f180.google.com with SMTP id
 5a478bee46e88-3025d725a05so24371879eec.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 05:48:45 -0700 (PDT)
Received: from [192.168.1.18] (177-4-162-74.user3p.v-tal.net.br.
 [177.4.162.74]) by smtp.gmail.com with ESMTPSA id
 5a478bee46e88-30451f20561sm9516837eec.10.2026.05.26.05.48.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 05:48:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779799724; x=1780404524; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=KzFzYUS5xkTaeTcSd6mKOHfBy/NkiDE68cAiMBc0jmA=;
        b=MkSxzFayEtZDD1ikZLyWWPy6mpdAeUZWiiSNvnNrQoH0bliW+HKCR6YR38hT3qzb+2
         LA4TzoCLwQrTwUVek1N+ovzIPGPLry7mAHevs4sIoZPGEOP8jUomWfCAUMbUsz3uCF3A
         zswl431J/Z+f+nqr4R5ppU6aJbANxIBULhnlc/q7T4nVQe3IJvnTXzfbXPxFmfAv/ER3
         TH0P9CmDgqpKeRC6v/WPiQnLbH+GswWNJkzrRCOUHfJNSwS1U752VnduFL9Icf4iTJgb
         qZt7b2viyEd1OcCL5AdDXiPR++J8GRqZg5Sa19xdkmlm/tMvZoJKFyJlUu9SX/2lq6e1
         47ng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779799724; x=1780404524;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=KzFzYUS5xkTaeTcSd6mKOHfBy/NkiDE68cAiMBc0jmA=;
        b=L+inZHai61QHK+m8INAYb+JogDA4SyBSwXpVEPGHE935grjfkLu4qFlOwg6k9qPFu7
         +kJOO+JGwIp9EZpcuazY91MVCcS6cLpKLXCLNaUb0MKKGPEgVtms8PSjnI+6aksYJu/a
         1NY93JAAFBOlmuAjhXKS7erS426wYtAbFYg8yU1rxML3os64hoh9UALHgyW+b0fAoMHC
         dihx6C+muqnA4HelqS+7p+RNq4z4lb+DCQk02ntmAOmWj2EHEbGEGbpKuT8pULc/7vlV
         NwhH1qIlkNp6x+mPkwz1GfQfAqMZD9jnikkXHKU9/RiVgcJAnhWhkHlFC6cpxJHhBOpJ
         XDpQ==
X-Gm-Message-State: AOJu0YxTqPtyL05xUMeo7j5cQ3WL/QLwLUkA4LjnJ2G7q1mkoKQ29zyj
	nx2PL5b52IX4wPbzG37Tz8SQiN+xtgGPlTtNK98SYxMTjv1200MdNb+W
X-Gm-Gg: Acq92OGltfWY9rFFEafGZntkZWulq/d2w7OqP0kHkez4tcCWA/+tPwHr3UEPzHOSi+a
	Yf8u9bIVDeQtnj8yENMDF2rOgFdo+ZObOf9MchdkBE8nFS39JbgDygg18lcbY0uIMk1MxxQLqdd
	3YLeW9GQyOnRidLplFVBpDnBContYIhDE/sUzg/Ks4h8rA0jlAlUbJn2r7Re5cSp1rxgSuqt/Yp
	hxhm0v3z7GFxQPBW4w/cgnrjmgxkam+YZciBh5GApToUAbSXsXugBW04TUvn7p5d6UXGnyRnngJ
	KVysefZmSorIq3sTiP/lFY+I/6CbuYh13bmP4PuxnlSX22BqvqxL2Fk8oNynQRYHZoVVK7ev9Se
	wo31MKknPhhIqPLnL/Suiwc+PAl2fkn9KJ2RYFKP+tgnGxVc27jdUriR7ItLpwgH6xkiak7weDi
	eYVwVBFByGt11QUox0sTurBcHDc1aa5o/ArFcUugZr0t24znGy32VTpOnukOBJk6rlhmiaqqz6t
	Crk8W/GsjRp
X-Received: by 2002:a05:7300:cd99:b0:304:188d:d0be with SMTP id 5a478bee46e88-30449156f8cmr7666135eec.16.1779799724191;
        Tue, 26 May 2026 05:48:44 -0700 (PDT)
From: =?utf-8?q?C=C3=A1ssio_Gabriel?= <cassiogabrielcontato@gmail.com>
Date: Tue, 26 May 2026 09:48:27 -0300
Subject: [PATCH 2/2] ALSA: xen-front: Connect event channel after stream
 prepare
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Message-Id: <20260526-alsa-xen-event-channel-fixes-v1-2-91d3a6a50778@gmail.com>
References: <20260526-alsa-xen-event-channel-fixes-v1-0-91d3a6a50778@gmail.com>
In-Reply-To: <20260526-alsa-xen-event-channel-fixes-v1-0-91d3a6a50778@gmail.com>
To: Takashi Iwai <tiwai@suse.com>, 
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>, 
 Jaroslav Kysela <perex@perex.cz>
Cc: xen-devel@lists.xenproject.org, linux-sound@vger.kernel.org, 
 linux-kernel@vger.kernel.org, 
 =?utf-8?q?C=C3=A1ssio_Gabriel?= <cassiogabrielcontato@gmail.com>
X-Mailer: b4 0.15.2
X-Developer-Signature: v=1; a=openpgp-sha256; l=6113;
 i=cassiogabrielcontato@gmail.com; h=from:subject:message-id;
 bh=vlLMVEi4mc8JanxVJ4cRF3k2qZw2pWROuD5ZLWy8lr4=;
 b=owGbwMvMwCV2IdZeKur/u2bG02pJDFmi05ZMEt7+9+1C28rcdPNvQW7GF7lsFX6I7du/9n/a1
 hL3eJsPHaUsDGJcDLJiiiyrkxZZ7ul6cLU+boUHzBxWJpAhDFycAjCRSi9Ghjn8jK6XEorLNIwL
 CjLqvO8kOe91Ldz1U6l0ZoHX0e9eZxgZVv2rZPjn22DTbf8/XWu/7PVUl10bTwQJJfHpFL+Xvb6
 aHwA=
X-Developer-Key: i=cassiogabrielcontato@gmail.com; a=openpgp;
 fpr=AB62A239BC8AE0D57F5EA848D05D3F1A5AFFEE83
X-purgate-ID: tlsNG-d25034/1779799726-E2169CF5-D2402B03/0/0
X-purgate-type: clean
X-purgate-size: 6115

The request channel must be connected from ALSA .open(), because hw-rule
queries and the stream open request use it. The event channel is
different: XENSND_EVT_CUR_POS handling uses ALSA runtime buffer and
period geometry, and the corresponding Xen stream parameters are not
submitted to the backend until .prepare() sends XENSND_OP_OPEN.

Currently .open() connects both channels. A backend current-position
event, or a stale event queued for an earlier stream instance, can
therefore reach xen_snd_front_alsa_handle_cur_pos() before
runtime->buffer_size and runtime->period_size are valid.

Add a per-channel connection helper, connect only the request channel in
.open(), connect the event channel after a successful stream prepare,
and disconnect it before stream close/free. Re-check the event-channel
state after taking ring_io_lock so disconnecting the event channel
synchronizes against a threaded IRQ that passed the initial lockless
state test. Keep defensive runtime geometry checks in the position
handler.

Fixes: 1cee559351a7 ("ALSA: xen-front: Implement ALSA virtual sound driver")
Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
---
 sound/xen/xen_snd_front_alsa.c    | 17 ++++++++++++-----
 sound/xen/xen_snd_front_evtchnl.c | 20 +++++++++++++-------
 sound/xen/xen_snd_front_evtchnl.h |  2 ++
 3 files changed, 27 insertions(+), 12 deletions(-)

diff --git a/sound/xen/xen_snd_front_alsa.c b/sound/xen/xen_snd_front_alsa.c
index dc626480123a..a6dd196f73d6 100644
--- a/sound/xen/xen_snd_front_alsa.c
+++ b/sound/xen/xen_snd_front_alsa.c
@@ -378,7 +378,7 @@ static int alsa_open(struct snd_pcm_substream *substream)
 
 	stream_clear(stream);
 
-	xen_snd_front_evtchnl_pair_set_connected(stream->evt_pair, true);
+	xen_snd_front_evtchnl_set_connected(&stream->evt_pair->req, true);
 
 	ret = snd_pcm_hw_rule_add(runtime, 0, SNDRV_PCM_HW_PARAM_FORMAT,
 				  alsa_hw_rule, stream,
@@ -498,6 +498,8 @@ static int alsa_hw_free(struct snd_pcm_substream *substream)
 	struct xen_snd_front_pcm_stream_info *stream = stream_get(substream);
 	int ret;
 
+	xen_snd_front_evtchnl_set_connected(&stream->evt_pair->evt, false);
+
 	ret = xen_snd_front_stream_close(&stream->evt_pair->req);
 	stream_free(stream);
 	return ret;
@@ -532,6 +534,7 @@ static int alsa_prepare(struct snd_pcm_substream *substream)
 			return ret;
 
 		stream->is_open = true;
+		xen_snd_front_evtchnl_set_connected(&stream->evt_pair->evt, true);
 	}
 
 	return 0;
@@ -571,20 +574,24 @@ void xen_snd_front_alsa_handle_cur_pos(struct xen_snd_front_evtchnl *evtchnl,
 {
 	struct snd_pcm_substream *substream = evtchnl->u.evt.substream;
 	struct xen_snd_front_pcm_stream_info *stream = stream_get(substream);
+	struct snd_pcm_runtime *runtime = substream->runtime;
 	snd_pcm_uframes_t delta, new_hw_ptr, cur_frame;
 
-	cur_frame = bytes_to_frames(substream->runtime, pos_bytes);
+	if (!runtime->buffer_size || !runtime->period_size)
+		return;
+
+	cur_frame = bytes_to_frames(runtime, pos_bytes);
 
 	delta = cur_frame - stream->be_cur_frame;
 	stream->be_cur_frame = cur_frame;
 
 	new_hw_ptr = (snd_pcm_uframes_t)atomic_read(&stream->hw_ptr);
-	new_hw_ptr = (new_hw_ptr + delta) % substream->runtime->buffer_size;
+	new_hw_ptr = (new_hw_ptr + delta) % runtime->buffer_size;
 	atomic_set(&stream->hw_ptr, (int)new_hw_ptr);
 
 	stream->out_frames += delta;
-	if (stream->out_frames > substream->runtime->period_size) {
-		stream->out_frames %= substream->runtime->period_size;
+	if (stream->out_frames > runtime->period_size) {
+		stream->out_frames %= runtime->period_size;
 		snd_pcm_period_elapsed(substream);
 	}
 }
diff --git a/sound/xen/xen_snd_front_evtchnl.c b/sound/xen/xen_snd_front_evtchnl.c
index 09e4c1d05636..17a30452c0cc 100644
--- a/sound/xen/xen_snd_front_evtchnl.c
+++ b/sound/xen/xen_snd_front_evtchnl.c
@@ -94,6 +94,9 @@ static irqreturn_t evtchnl_interrupt_evt(int irq, void *dev_id)
 
 	guard(mutex)(&channel->ring_io_lock);
 
+	if (unlikely(channel->state != EVTCHNL_STATE_CONNECTED))
+		return IRQ_HANDLED;
+
 	prod = page->in_prod;
 	/* Ensure we see ring contents up to prod. */
 	virt_rmb();
@@ -430,8 +433,8 @@ int xen_snd_front_evtchnl_publish_all(struct xen_snd_front_info *front_info)
 	return ret;
 }
 
-void xen_snd_front_evtchnl_pair_set_connected(struct xen_snd_front_evtchnl_pair *evt_pair,
-					      bool is_connected)
+void xen_snd_front_evtchnl_set_connected(struct xen_snd_front_evtchnl *channel,
+					 bool is_connected)
 {
 	enum xen_snd_front_evtchnl_state state;
 
@@ -440,13 +443,16 @@ void xen_snd_front_evtchnl_pair_set_connected(struct xen_snd_front_evtchnl_pair
 	else
 		state = EVTCHNL_STATE_DISCONNECTED;
 
-	scoped_guard(mutex, &evt_pair->req.ring_io_lock) {
-		evt_pair->req.state = state;
+	scoped_guard(mutex, &channel->ring_io_lock) {
+		channel->state = state;
 	}
+}
 
-	scoped_guard(mutex, &evt_pair->evt.ring_io_lock) {
-		evt_pair->evt.state = state;
-	}
+void xen_snd_front_evtchnl_pair_set_connected(struct xen_snd_front_evtchnl_pair *evt_pair,
+					      bool is_connected)
+{
+	xen_snd_front_evtchnl_set_connected(&evt_pair->req, is_connected);
+	xen_snd_front_evtchnl_set_connected(&evt_pair->evt, is_connected);
 }
 
 void xen_snd_front_evtchnl_pair_clear(struct xen_snd_front_evtchnl_pair *evt_pair)
diff --git a/sound/xen/xen_snd_front_evtchnl.h b/sound/xen/xen_snd_front_evtchnl.h
index 8400261ac466..f6ebdb09c029 100644
--- a/sound/xen/xen_snd_front_evtchnl.h
+++ b/sound/xen/xen_snd_front_evtchnl.h
@@ -77,6 +77,8 @@ void xen_snd_front_evtchnl_free_all(struct xen_snd_front_info *front_info);
 int xen_snd_front_evtchnl_publish_all(struct xen_snd_front_info *front_info);
 
 void xen_snd_front_evtchnl_flush(struct xen_snd_front_evtchnl *evtchnl);
+void xen_snd_front_evtchnl_set_connected(struct xen_snd_front_evtchnl *channel,
+					 bool is_connected);
 
 void xen_snd_front_evtchnl_pair_set_connected(struct xen_snd_front_evtchnl_pair *evt_pair,
 					      bool is_connected);

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 12:50:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 12:50:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319875.1587321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRrEU-0000tJ-20; Tue, 26 May 2026 12:50:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319875.1587321; Tue, 26 May 2026 12:50:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRrET-0000tB-SQ; Tue, 26 May 2026 12:50:05 +0000
Received: by outflank-mailman (input) for mailman id 1319875;
 Tue, 26 May 2026 12:48:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <cassiogabrielcontato@gmail.com>) id 1wRrD8-0008Oi-7N
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 12:48:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRrD7-00CnB3-4W
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:48:41 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <cassiogabrielcontato@gmail.com>)
 id 6a1596a3-bab6-0a2a0a5309dd-0a2a4509e214-20
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:48:40 +0200
Received: from [74.125.82.181] (helo=mail-dy1-f181.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <cassiogabrielcontato@gmail.com>)
 id 6a1596a7-2497-0a2a45090019-4a7d52b5ccae-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:48:40 +0200
Received: by mail-dy1-f181.google.com with SMTP id
 5a478bee46e88-2f0d3e07e30so34704265eec.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 05:48:40 -0700 (PDT)
Received: from [192.168.1.18] (177-4-162-74.user3p.v-tal.net.br.
 [177.4.162.74]) by smtp.gmail.com with ESMTPSA id
 5a478bee46e88-30451f20561sm9516837eec.10.2026.05.26.05.48.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 05:48:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Cc:To:Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779799719; x=1780404519; darn=lists.xenproject.org;
        h=cc:to:content-transfer-encoding:mime-version:message-id:date
         :subject:from:from:to:cc:subject:date:message-id:reply-to;
        bh=rRC0UR7DdrEHF5n8z3rovd3sy9IxWMm0Nnsp9OqSDMw=;
        b=Ji0yjQe13sQxurnhgLt5rJ4nPDQ+1PT8jXcow8wNaK8HxqSlAg60MwxevkuzZV0NbO
         O4H1rP6wSefYEhLXg3VfyCnGELe+uqas22/HPDFZKAZnpWpmyj+tUg9BL0oJCm13Bgn4
         SpFyqu1Dp82Inet8oMDR2uCID+dL5uGlFxfsW9S3bWRFnRXIOcyiHQ8TEZNDFr+nRv3/
         s1hM9o6JNIyDpWhyas8ehJLusm9U4XMSzTd2+cP7dcFVKkJTm7hY+L4oqv+mtywR91xQ
         uOSQO539U8Fsyf+lH4SMZheIeStahnBxRfXFMFaajjeYd29m3jlNRYfuNdFvh4miD/hc
         CDUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779799719; x=1780404519;
        h=cc:to:content-transfer-encoding:mime-version:message-id:date
         :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rRC0UR7DdrEHF5n8z3rovd3sy9IxWMm0Nnsp9OqSDMw=;
        b=JFMBakBLxh8vNeX6wzo/utvl78nVCJsPXFR1qHgbQyYxkNQfssMjEtUczCjSxKZi1J
         ToLlsDyR+CwkMciD86+xAno/f1rMJLefgiu2u1UAey96GZYU2LO8II3X2FXJn0dN/dkn
         jc7tFqDkeZiT5zDKhG02O0GMbJwi/EI/6QUJgf2WahjS+B6YZKmsFr9FQmelzqlVQrBh
         76A39cApDBMVrGTaEqNomQJmAzYzCsBNhW9nd+h5a/z11cUkDDlcZ2famSJ+VLhwAW1u
         O3JJdgRxeBBthmyqUUhp+gxC/QJ4GrFCP2eGydd+z4iEAUmF5mCTBTYfVPYZ9CP6OEMn
         CTGA==
X-Gm-Message-State: AOJu0YyVBAnA3vuns2gM8p9A55mReXwW/uBvHtYeaq4KvPo2dLj5s/db
	GlriMoOGxjSe2+8C/CIXTJArD05pJKq1L8BCfNiADYEovee7X8sXivYN
X-Gm-Gg: Acq92OGXhKECdwKZoEZvDPfRsYKw0H8ouRPHFvyJ78YMyZNN4zX6ej9SPUmsHk6zgX2
	53cZIkCx+iiowYe54FO9mxCXaOVhjKRqieuX/bfO9h4Jvq0dPFejE7K3/j2ecSs/sTXYWrK7rPF
	itglE5Gn3wTfIvRFJHvqFYvXmAwOx1s9t5l7xTudm4RohyEpYqqms42lMfY947pUgOSzdfT0Zzu
	lgK5AmJFBa/gjLmYM7sEB+hNOYrAQ3eJMOVKUyqt6byiigj1wOYjeXQzpAYKL7nhdL9ds5Qepdj
	ULVfU5x7/2FyDUiiVGHafoATwUxAiQ/xjTDVEKn5N+2z+dtAS+0og3u7XCpYFp4mIyrEvpPLQUP
	4T8afXMt24o/o0c1Qz7Cn3qmTh49/E9EDIXA5zgTTgie46glQD0ZTu5F6GnhHdS6OthTPnaq/jI
	W8jjqt+8OuCyyjknORD0jsZ3VvuHSfCLQyokfaDiD7edARBYMGmjHJFfTJKUXp85eAFWOk2Z5wz
	g==
X-Received: by 2002:a05:7300:641a:b0:2ed:e15:c926 with SMTP id 5a478bee46e88-30449144597mr9815773eec.34.1779799718634;
        Tue, 26 May 2026 05:48:38 -0700 (PDT)
From: =?utf-8?q?C=C3=A1ssio_Gabriel?= <cassiogabrielcontato@gmail.com>
Subject: [PATCH 0/2] ALSA: xen-front: Fix event channel stream lifetime
 bugs
Date: Tue, 26 May 2026 09:48:25 -0300
Message-Id: <20260526-alsa-xen-event-channel-fixes-v1-0-91d3a6a50778@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
X-B4-Tracking: v=1; b=H4sIAAAAAAAC/yXM0QqCQBCF4VeRuW5gXZeNepXoYrVjTcgYOyqC+
 O6tdflzDt9GhiwwulYbZSxiMmqJ+lRR90r6BMujNHnnowu+4TRY4hXKWKATHyfFwL2sMI4IbXC
 I4dKfqRCfjN9QhNv93za3b3TTYdK+fwHoTNtOgAAAAA==
X-Change-ID: 20260423-alsa-xen-event-channel-fixes-6e4b40e649f7
To: Takashi Iwai <tiwai@suse.com>, 
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>, 
 Jaroslav Kysela <perex@perex.cz>
Cc: xen-devel@lists.xenproject.org, linux-sound@vger.kernel.org, 
 linux-kernel@vger.kernel.org, 
 =?utf-8?q?C=C3=A1ssio_Gabriel?= <cassiogabrielcontato@gmail.com>
X-Mailer: b4 0.15.2
X-Developer-Signature: v=1; a=openpgp-sha256; l=1221;
 i=cassiogabrielcontato@gmail.com; h=from:subject:message-id;
 bh=m/GceItf9izmgDxXf0ij7qdTlcHvcVkDr7Dd/eqL+EY=;
 b=owGbwMvMwCV2IdZeKur/u2bG02pJDFmi0xaX7u38p/B9f9y/wt5acZcv3JdKj0zdPX3LA3Wt3
 ss7hW9s6ihlYRDjYpAVU2RZnbTIck/Xg6v1cSs8YOawMoEMYeDiFICJVIsx/K87/rjFI9pfUnSt
 wie+TyszJET2dv6NO6jCLVo1e9ni2a4M/92WG9QZKs3x3Jvd/3HTTv3v1oF8ryZklfYv/xRlfew
 qHwMA
X-Developer-Key: i=cassiogabrielcontato@gmail.com; a=openpgp;
 fpr=AB62A239BC8AE0D57F5EA848D05D3F1A5AFFEE83
X-purgate-ID: tlsNG-bad1c0/1779799720-36D77A53-B1DF61CB/0/0
X-purgate-type: clean
X-purgate-size: 1223

Fix two related event-channel issues in the Xen ALSA frontend.

The first patch resets the event channel's expected incoming event
id when a stream is cleared, and drops stale queued events from
the previous stream instance.

The second patch keeps the request channel connected from .open(),
where it is needed for hw-rule queries and stream open requests,
but delays the event channel until after a successful .prepare().
This prevents current-position events from reaching the ALSA position
handler before runtime buffer and period geometry are valid.

Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
---
Cássio Gabriel (2):
      ALSA: xen-front: Reset event channel state on stream clear
      ALSA: xen-front: Connect event channel after stream prepare

 sound/xen/xen_snd_front_alsa.c    | 17 ++++++++++++-----
 sound/xen/xen_snd_front_evtchnl.c | 28 +++++++++++++++++++---------
 sound/xen/xen_snd_front_evtchnl.h |  6 ++++--
 3 files changed, 35 insertions(+), 16 deletions(-)
---
base-commit: 31d40472d5699a6139fe3a2ad6558645a99b7422
change-id: 20260423-alsa-xen-event-channel-fixes-6e4b40e649f7

Best regards,
--  
Cássio Gabriel <cassiogabrielcontato@gmail.com>



From xen-devel-bounces@lists.xenproject.org Tue May 26 13:01:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 13:01:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319902.1587347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRrPn-0003yD-Ju; Tue, 26 May 2026 13:01:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319902.1587347; Tue, 26 May 2026 13:01:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRrPn-0003y6-H6; Tue, 26 May 2026 13:01:47 +0000
Received: by outflank-mailman (input) for mailman id 1319902;
 Tue, 26 May 2026 13:01:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wRrPm-0003y0-9h
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 13:01:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRrPl-003jpd-6Z
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 15:01:45 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a1599b8-5cb7-0a2a0a5109dd-0a2a4503e2e0-8
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 15:01:44 +0200
Received: from [52.101.52.50]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a1599b4-672d-0a2a45030019-346534324212-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 15:01:41 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS3PR03MB989170.namprd03.prod.outlook.com (2603:10b6:8:39b::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Tue, 26 May
 2026 13:01:39 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.019; Tue, 26 May 2026
 13:01:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Tu/MPy2BhEysFd3gye7RFbBJDLQ6cFQODbYQ6aKUSZNwWsPLMY0+231qf9bK9BPFQkqNgMMQ47NB1reCjp/xKnYXlTC1cOTk2Ngb/HgeYbq+Gy+SIb338K1pDtd9iqYzaJRQgi9UdD5TqcrE3HLGVOXLWca9G59QRvlHZDkokdo4i8C5/uVdGyAxHkxZ93XXZ8b/jIDPrFjzHcrzHuj+7IxFIOPLIXIXO8CX2qydPcWxcLA6L+c5e6DImj8qFjdiszRHBPVUyhFKrh0x86GHKmRflCXaDTaAsiLGiRK237f7BSK4SoIOQrJsHIerZM0YyZ8KsCIsx6+9nohix4RJpw==
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=XPeLVPd5RjWrIXnE1PRx6H7KapO5nur6/vEYdxYyWGU=;
 b=lirTuk1p90UZcRvHv0fATUh1+N1QOLM1FQQ4FYfzC+Z5NiGaghgpSzmbu6GmJAO2ObPsfWx+Gb6axfCq271dBya0EuOlV4I2UhUychjGHv6GxQ0IjvOus/1vBnyESuDTtXZEI4RhI+Nf1TEhfPsydxV0RK0SveeD2rrBidDCeib6EDpGeDN8ZdmWxjvxg0cDm1Cmjrke+4suHx+yA6G+wCOjj6ebruWkjPnr+yrTPFo1lL1kCQGENzs0OgIo189ZEyUXNJauS/5VElyJ4V8lyHt5BXcHABhKMIkHJ1KnLgoWQmD18hJcMjM1fnZDqVpVVmWGECDF50lt1Q01EQ/zWA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XPeLVPd5RjWrIXnE1PRx6H7KapO5nur6/vEYdxYyWGU=;
 b=beGQTJafkVotTA457gF8qyKJVL60utq1xhljFfm6w9bo0blfbckewC7vyTMdcXPaLh65T+NLFSmQbiIQXj9GDfm0ZIgdMzN5UVDCA/BYwqEhz5kU438JeC9r3idO4Vp7uF0DHSBqNr9l9zGbt0wDXK/0tMXKMK1USB585mX+CHA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b9ddc37c-216b-4c18-8d77-03ce641d2614@citrix.com>
Date: Tue, 26 May 2026 14:01:34 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v1 1/6] nestedsvm: Fix CR3 MBZ check
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260526124027.573412-1-ross.lagerwall@citrix.com>
 <20260526124027.573412-2-ross.lagerwall@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20260526124027.573412-2-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR3P189CA0090.EURP189.PROD.OUTLOOK.COM
 (2603:10a6:102:b4::35) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS3PR03MB989170:EE_
X-MS-Office365-Filtering-Correlation-Id: 8386211b-29a3-4fe9-c09f-08debb26ecaf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|22082099003|18002099003|56012099003|4143699003|11063799006;
X-Microsoft-Antispam-Message-Info:
	OQL7vRJat/J+/zW8+/lRPWWXfirwOkvHBzI4x5IfJsSnMdL69pskmhobNi/+ZoFd6oKUTri8Ah4oTvrP7CWfcNqRaqFdbH4mfcU0HSPJ/6w/iTzhuraeAypzyvX+vyyh8jC/4pD2iYhmDg4L6ibDYqSBTQTmcnppmh/kRgKL/yLkAt5evsfSXlYZxdliF2/e6hiXUZn1x7xyVf19mYGDT/EmvRAQgkGXGaUUC0YgkAIUWlGHXWTkrYGEQqGJweNhF4lO5gy8f99ZsR7iL+0gArABsoO2h18dAG+yWiMIg+JqUWGBZ4gk3kt0bAPoa8AVmNDu3HHrQ+WxUfF/mCiqAupH4tfYYW6X5GzemV8A0RetMnfkkvhubQqDXx0AVbxYAPFd+jX6pvBzYRDFYKILXH5hliimkbzQ8sboBN82ULS4oUmgztspPuUOYgxLJu2qRce7ZL5FDJrZ0BN5tBcaMLWPQQeVCf9a1U9UWEe+90fe1DGmwnqqrJvI6oS8FxvVrBa/ox1ngiuCdDAvd7da0sMgjBw1bIMbXn3DG7QWEyQQC55C3bJP/v/pA00jPamdNgAs/ApUL9Yk8sstEC6ItXhjeCQG3FB+aB8xwPICZUvfW19Ik6GOgXADn2wDkw7/hLlG4GouC1GVsDg4vspf9A0rJCOlKRmU/fKBqNL1FXKAjf1suF6mxLmn3ws6aSYO
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(18002099003)(56012099003)(4143699003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?elVKN1F5OWtRUlFNMTQ5YTM4Yk9VMGsyNzFIa2kxYUpPYm5YSGVXZUFyY0Z6?=
 =?utf-8?B?a003L0JXZzVuOGNDZ1hVTmFodDZjbHhMYlJxK3dMczN4S0FVTjR4bXhsenZS?=
 =?utf-8?B?MGVOb0FIOVQ3VXRsbTVNQlB5WFU3OXRRWU9XemdJZ1ZrUXQ5aGdvenVVa3JT?=
 =?utf-8?B?SVNmNWpBV2d4L0oxYWswMXhhYWdZaTFEa1VuUDRLdExZWEJMdVBtZVRTWmRv?=
 =?utf-8?B?TkE2Wmp5NWNOa05GRmFWY1NLS2p1RzIzcTFVSE90Q1JCOGlxSk5wMFRjUFZU?=
 =?utf-8?B?cEpmT2lIT2ZVUU1iaXlKREs1cUtFc0krRmhLd1ZQbC83S3dMa2Nkb2FsaDFm?=
 =?utf-8?B?REg3a1ZDdlNyYlVwR0RCT3ZXa3FHaXBNenpvaEx1TDl6Ti9jQTNpOXBtOEYw?=
 =?utf-8?B?c2xwNjhBQ1Zac2M2Q08vSWdpUHVuTDFSSFdiU1pIUy9WZkk3MlBZTXhRTWNa?=
 =?utf-8?B?UW40Z2N2S3pBQVB3UzNQeTZva2VoZmpsSzNYZlFMdXNyQytIUmIvckxYMzc5?=
 =?utf-8?B?RmxMK2ZOd3BXb0dLT0xOWlZMM2lrUFZBL1hWakxsTENEUHMxQVdMc201ZG45?=
 =?utf-8?B?SjdHVWZjMW14MWZaOVRpL2x0T2VjUVdlNW82TVhVSUhTSFljTGM2UVBBbUhD?=
 =?utf-8?B?dDI4VEsxZjNFVmhSL2ZlZFBmMndaUm5VVktvKzdob2lnVm1iNTRKL0FNWTZJ?=
 =?utf-8?B?ck8yR3dGNTJ1S2UwcGU4NnJ6Zk51V0hIUXZwRElkZ0lKZjJ6dTU4U0tMSWh0?=
 =?utf-8?B?WGFmR0tYOE9IVSt1dkVpT3paQm5kSThsV1hhcHk1ZUtpaUh1VVNuQlJ0SnU1?=
 =?utf-8?B?MXJUaHM4dzNqRmp2RWduSWRkdFJhQ2pGQnZ6YjQzaG1MVUN6cWJ6SmI3ZGZP?=
 =?utf-8?B?NlhmaHNvcHVlTXliS0kyZ3lLb0FONXBiamVKMUxRT2VQbVRmRkFYZFdPakxp?=
 =?utf-8?B?YmxEVmNGVGV4cGpkY2RDYThicE9XUVZaem1BaUdoVHpsRkFnd2JJQW9WblFJ?=
 =?utf-8?B?RmdDNmpEUEdlbnpmbHFqakZtRnNOY29xUGMzSU4wTklSY0lDTVJJOFF5aEdr?=
 =?utf-8?B?elI4WUNDeVVyRTM2R21yS0xiRUZsWmd6eXl6bGJ6OW12YWN1N3pldTM0MGhv?=
 =?utf-8?B?WVZCZFBLQS9SMCtXM1R0bTBuYlhNTGhNYUh1eUV4VlZGUDk1VTcrbEFrb3Uy?=
 =?utf-8?B?NTlhcWwxWXVBRitNTVNiNHNMQ2V2QlFQRWViMFd6Wm5RS2pUTlptWVVwV2Ju?=
 =?utf-8?B?RHRpbG9QOEtZN2s4bWZucmcxUjFqSXVZR29weWRPOGowTHdkZk1LL3RqbTg5?=
 =?utf-8?B?azN2VUVzQS9XTWhOM3p5bndTeVBtS3VaRXAvcXhVdGZ0SENJcFYxbXhsWlVk?=
 =?utf-8?B?VGNoaGRrMC9KdENQb1R6QW54V0ZhYXFYQ0k4aDk4MUNCZ0tjTW51UGRNR0lK?=
 =?utf-8?B?SFVrdklwNk9yaDE4Z2l3Wjg1Nk9KaEtwOVdhOUgwMjdrVldFZFRHUGp6YUJW?=
 =?utf-8?B?UDdNWk5DTUI4a3IxZnBMUmFtMUVQcnN4TURWT1ZBU2lPYUpsK3hGZUZXamFz?=
 =?utf-8?B?ZUc2N1NYa1dmRmxSSjI0VjArNmEvb3V3U3JjTGR1c3ZiVzlmYmN6Sk4yc0Ey?=
 =?utf-8?B?UlEwVTJUbGJUcndMay9RbTl6d1ZpZ2kyRytHd000cEYxUDZWZkRKVndmTE9N?=
 =?utf-8?B?SEZtbnpLTGNwODRRZDFRTnZ3UldnV2RQcW1ndEhOYS9oK2pDUU9pOWlIUUl3?=
 =?utf-8?B?cnE1bWNBVGcwZElEUmlrcDBVZzF2ZVpPNEJWdDMxTnpaZjlkeDRMRWQzNzlJ?=
 =?utf-8?B?cDJyY2lOUWo3WUVoSFREU1kzZi9OMGI4ZGpjbDFQdFlLblVDbUE2OUppTHph?=
 =?utf-8?B?Y3VYTXV1UGxlUDdPZ3hRTE1mbWt2ZzF4cU8wbUxLSThRTU83OTNKRzUwSTdx?=
 =?utf-8?B?eCtxQVJIbExiNVFsSUJzYm0rbDRaVDQzT3JtTW0rZFZRV2dWczZlTFM0R3B3?=
 =?utf-8?B?b1puajdnbGh2a1FjaU13WFptbmVBRFlFNXB3L0FUTDdUNzRoQjQ5bDFCQ2VY?=
 =?utf-8?B?RVpXK2xSOTdmeEtBT0pKdnNjOEo0YklxNzd6bURmOElyRVppZVkwUFBQejJj?=
 =?utf-8?B?bzVKVWZpWTJYbE5aOHFzc3EzZ2tCUDlMdTlrTTYzUHhIeGw3aXZnaXk4TmY2?=
 =?utf-8?B?SVg1Qlh3cTNuM0dHemtpMEVPb3NvcFQ0L2RxSlEwVEd0M1hJZk1XTUVWVzYx?=
 =?utf-8?B?NkNMWEtyVDlBUDdPWnlYeW52bWx5V29kbXd3OTVVd3JZZ0RxZ2RyQkZwV2Jk?=
 =?utf-8?B?UFpZWlJVTlI1UlR1VE5ITWpKSWhCTDNFRy8zcnZlM1ZqZzlYZWtCazVaWTZm?=
 =?utf-8?Q?BAJ3tdAC4xpylNeQ=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8386211b-29a3-4fe9-c09f-08debb26ecaf
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 13:01:38.8247
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qalyaflqWN+W74zjmYF8gPhekGjj+8EDcZMD0UnLrtmt/8sLLQ6C4Mxkwx0tozpL1L+Sz9ToXYRv6m1ccLHUgx1opkekUmNaPZuy41/IYeo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS3PR03MB989170
X-purgate-ID: tlsNG-33051d/1779800502-3957F938-FB549CDA/0/0
X-purgate-type: clean
X-purgate-size: 1904

On 26/05/2026 1:40 pm, Ross Lagerwall wrote:
> The existing code checks for any reserved bit set while the APM only
> considers it invalid if an MBZ bit is set. Relax the check to match the
> APM and hardware.
>
> Some of the reserved bits were observed to be set running Rocky Linux
> 10.1 on Xen on Xen.
>
> Fixes: 9a779e4fc161 ("Implement SVM specific part for Nested Virtualization")
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> ---
>  xen/arch/x86/hvm/svm/vmcb.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
> index 975a1eaef806..9ada491e57db 100644
> --- a/xen/arch/x86/hvm/svm/vmcb.c
> +++ b/xen/arch/x86/hvm/svm/vmcb.c
> @@ -347,10 +347,8 @@ bool svm_vmcb_isvalid(
>          PRINTF("CR0: bits [63:32] are not zero (%#"PRIx64")\n", cr0);
>  
>      if ( (cr0 & X86_CR0_PG) &&
> -         ((cr3 & 7) ||
> -          ((!(cr4 & X86_CR4_PAE) || (efer & EFER_LMA)) && (cr3 & 0xfe0)) ||
> -          ((efer & EFER_LMA) &&
> -           (cr3 >> v->domain->arch.cpuid->extd.maxphysaddr))) )
> +         ((efer & EFER_LMA) &&
> +           (cr3 >> v->domain->arch.cpuid->extd.maxphysaddr)) )
>          PRINTF("CR3: MBZ bits are set (%#"PRIx64")\n", cr3);
>  
>      valid = hvm_cr4_guest_valid_bits(v->domain);

The APM does say MBZ for VMRUN, but the end result of a VMEntry (virtual
or otherwise) must be a legal CR3 value.

For 5.2.1 CR3 Register (Legacy) and 5.3.2 CR3 (Long), the APM states:

Reserved Bits. Reserved fields should be cleared to 0 by software when
writing CR3.

What's the real behaviour for trying to set a reserved, non-MBZ bit in
CR3?  On Intel it's strictly a #GP, and I really hope it's the same on AMD.

i.e. I really hope this is a documentation error on AMD's behalf, and
not a misfeature we need to support.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue May 26 13:23:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 13:23:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319914.1587355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRrl5-0007FB-CB; Tue, 26 May 2026 13:23:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319914.1587355; Tue, 26 May 2026 13:23:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRrl5-0007F4-9N; Tue, 26 May 2026 13:23:47 +0000
Received: by outflank-mailman (input) for mailman id 1319914;
 Tue, 26 May 2026 13:23:45 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1wRrl3-0007Ey-AX
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 13:23:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRrl2-001SId-9C
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 15:23:44 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a159ed2-bab6-0a2a0a5309dd-0a2a450c875a-38
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 15:23:44 +0200
Received: from [52.101.52.28]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 6a159ede-62f1-0a2a450c0019-3465341cb46b-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 15:23:43 +0200
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by BLAPR03MB5524.namprd03.prod.outlook.com (2603:10b6:208:284::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Tue, 26 May
 2026 13:23:40 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.21.0048.019; Tue, 26 May 2026
 13:23:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=A3cNEu31c51lvq4n7llfJsMotiEig3h0OdD+iEdJluiCVeOIBfWCNnaI8kg/AC72DGDxYB1z7AsE1WQze0leV4mI0nARd6yVE/FyqpeBLs/XQmEUmdte02vilFPE+kSleSuyYsNVhGqCJDJsDpTXGBvqIllT/Y3xKXiv+Xi4o9DMyH/Vxukq9ShPfZVrnHkLgwZ1Fpl0ETBDJ4D1R1LzyeZxedUiL/I0F2oDoiXH/PllbQN7f/d8hOSI+ugsO46gIpqRUy3FpyPDn/TvOJRyHvg28ta8XImcCrTa/RyYU5OPFeeGPS3zwhhQHMNSPeTG15jgR2zxS+ERU/9kS+vXzg==
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=zD6lhTUAjdgXqG5782mJEZt1e6GgZGY5iYzec1ILZas=;
 b=m/LCdzQVKPx1DgENjAofE/bpfOpC3fmI5sSwZwtNNQxzOKdSf6WhazTxNBQfYyOzJoYXI0qEcxmHZRcgnRlX4VJdJFurWq8PDtf32v0HoaUUHOC5e388ozBB6N2IhDTzfkhsKYiejBNZpW4A/nEGLAGiWhE/QKCG4cFInZGZkL228tVWFgOAGJGkn+RyGPrc2OtGXrROp0OHXNkS89Oep1vEznJ51oKYk/w+k7fvaoQA1c6lO7JlLDfd0mFSAJ4mkYPQf4zCgEOVJXxMlZdbdgQWutPx3cps5XXTyLyH+xCAL1Z5GHfJWbUp0sc7Beg+xKj/fYobMkQNbEBB//xf6w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zD6lhTUAjdgXqG5782mJEZt1e6GgZGY5iYzec1ILZas=;
 b=PdqnB7tuRVXPy1ZEQ9fbiT1QBisJJVmhfek+JrBB9gP4g3fagX7lZPdspI6U9yktGZHPnD4GX+50CAJAvSUCtBfvSAn+rPSnQCxxls7D0Y/Z06IXTYWhBc3voB5yPlEK9JaA4jzoUp0k755NLGudm+mLjOOkSkDOt9pC1dAnUJ0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <6e81d92d-cef7-43e4-8dfc-08c5edbb504d@citrix.com>
Date: Tue, 26 May 2026 14:23:35 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/6] nestedsvm: Fix CR3 MBZ check
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <20260526124027.573412-1-ross.lagerwall@citrix.com>
 <20260526124027.573412-2-ross.lagerwall@citrix.com>
 <b9ddc37c-216b-4c18-8d77-03ce641d2614@citrix.com>
Content-Language: en-US
From: Ross Lagerwall <ross.lagerwall@citrix.com>
In-Reply-To: <b9ddc37c-216b-4c18-8d77-03ce641d2614@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0077.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2bd::8) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|BLAPR03MB5524:EE_
X-MS-Office365-Filtering-Correlation-Id: 4126c23a-cc34-4ffe-3ca9-08debb2a0035
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|11063799006|4143699003|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	y0ASxCo1cgCCxLzMdNnnYKwZ/sumKnpLYkUfOFgkFpq6T+OK4xaIMitJqaav9SoajpiSGDjjCVrh9PfKR5FPLRCV7gxZV3kfJJFNq0mJuC/15QvDVEgnSKWn7MBP/m8y0M+AaVk3MCdyBg9UXxw7Tj7EM8fS21Gh1QkZ3/jPIURnGl2tNps8bCdsXmmPDtEzt/EgV7i986U4E4cqTHHdMTaNgQby28/zlJeA4v7AgjBt+IXGjJXlXalHgJ8M7DyfCljPtV4zf6d2Oy910LeGo7H2akB9AFY9cSJ6t3cuI/JvFAK0KnRWqWGRICijB9aRs5re9svOs5HqTcEuLrThs5Fuwn5bQYHH9PwEI2kNIrHMp0PVzp9Or1yLd16y0VpSEEqetoIxj5u2KOCDrkykMkVSYMtncl2RsNsyUXQbujNT0MoSwUOezTux7FNS9bhHTz0Y5bRE9dexe5gMvIGbhLqDWGMjTfrjLS1DPU+ynBr0jV4NoUYQG9vzWE+KYKIlnNEqZ0nNHCyQ/rvSOLsX7q2B5ZzF3lAh8AqzEzwxeMgmxTk4IUIfSc+ceNMO8rQLuFA6o3QzHmUy3O2WYwXdtEsHXTyIb9f04oIS7T5+FZZ2WPKhuuKq+o+fzj15m+V653Z86h42OKM3w/wHCpsHP6ES0PmHIDKSVM1DfvXtKa5eUlcgi56YqsplnH1ydLr8kydPkRAueMAFvYrsWmvpnQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(11063799006)(4143699003)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dThpMjZWZ2Y4bXg5dzJiVm9TeFd2RXR5eUVZVU1QKzRhUlU3VDAvUVlDZm05?=
 =?utf-8?B?SWZJMWNXREI0d2tsNVh2T05Sek5UVHFyeW1BWHRJUG9NRU1uWDl6THVlOEJj?=
 =?utf-8?B?ejUyVHVjOUhQZ3JOWTJCTzNXQmMwNjNaS0ZwQmVmOW05cFBOemwvTS9EZzdt?=
 =?utf-8?B?YTRHS0s5WXErWnNXN3FVdklaVzg5UkllUXZXc1ZITGRZWG9MblZ6Vk93OW1W?=
 =?utf-8?B?QzRQYmdhcXlxRXBaWkYxNVZvMlREMWlaeDJlV0NWZzFidCttR1kvcTNMVG92?=
 =?utf-8?B?WVVtamNiV3VQcDIwTzhVR2FPNXErbSs5OC9YTDF4b25JSktJMDZSNXlGZ01Q?=
 =?utf-8?B?Kzc2MWV4SC8xRGJmNVFNajNYTXhQeEQyUGNycndCQi92akRsV1pzQXdZSUpC?=
 =?utf-8?B?Y0JFRSs2ZTlZWC9FWkdDRUY0elgvUWpPN2JnNVEwMzFLRVI4cEhIczRVeEdS?=
 =?utf-8?B?MWRFbXQwa3kzL2ZCMDBOTHVvRDNla09JL015MU1jMDVkSnV1TnFiSVpjbWlB?=
 =?utf-8?B?WGxxSm9jMitlMkFzTEh5MFRWaWY0VExQWEh3MXMyMFgrbTJKRlJqK2JMUmZT?=
 =?utf-8?B?RkJwYzRETC9pT0pCNkVuYUhzakVIbUFCMnNOQlpINEJlSVNoWEZvb25zTHJr?=
 =?utf-8?B?bHdJakFxbzlrYzFmRGkwU1NqUmljMURraWUzSzlhR1FXd1pic20xZHRoZ0Fa?=
 =?utf-8?B?S0pEd1N5a3A0WWgzbUdnYjBWZGJvMUp2eUp3bjZldGYrL1FSS3ZkRTczUGI2?=
 =?utf-8?B?Zkxzcnd6eSs3QWFqRTFGeE1NQ3E5TE1CWGZGbFBuVWYvZ3M3ZmhtU25UTFc4?=
 =?utf-8?B?UzlUbjRHamRtdEtVMTM0Z3lCalM5VmRiQVlaVEhpdVFCbVAvTHpUV2JoWUJV?=
 =?utf-8?B?KzNCSENiN1NMMnZKMFc0QkxHQ3Fsbi9OVzJHcklPVlJ2N0JEd3R3TjZjY2xJ?=
 =?utf-8?B?TlNrWkdiNjkyclMxbDNkZk1adkRtZTZ1cnRxeFVydVA5SnNJQlVFUXUrTzdq?=
 =?utf-8?B?bmM2UE5WY1N6SWZaK09oS1BhOUpQWU5tREtSdkxDeTYxbjBLUXZtVVZyaXlL?=
 =?utf-8?B?eXpUNlZwa3hsMmtnaXVnMkhwV3pRenVYVStUdklTeDNDTXZ4NWZnZU5oQmpj?=
 =?utf-8?B?ZXVTbERmSWpRN1A5OTFVNnY1TzdxU2w5RVE1a2k3eFVKbEdQMGZpdFFpMzBS?=
 =?utf-8?B?Mi9YVytxQzRYNERYKzBMQVQ3eFA1SHdBM2VkdEVldlVDWVpTWUdNRE9MV2Iy?=
 =?utf-8?B?MXBtWFdsdFZtb0wwa1cxVFRNdHJkT1IrNmtEdWZ1b0E3R00xTHFENzhYNVRF?=
 =?utf-8?B?M2s3dGo2M3NGZ0RrN2doeXljMW1ad0lWdzFtcC9UQU13QzdSZDdYT21CZG9R?=
 =?utf-8?B?REdWSkEyc1dublFXQlVqZjRHMVNOQjdTTml6V2srN2FBdXJFZDYxUEFHN1p3?=
 =?utf-8?B?MS94QkxZYVl2aWt5TXZmMTBvdUI5YzV0UVdTZXNJWjF5THZjdFZTSmNidmF5?=
 =?utf-8?B?UElZb2tERFdLWWovV3htc0hLQTYvM2F5WnZpNlU1Yld6MjY3eWF5R1N4aEhS?=
 =?utf-8?B?MlEvOTNUclFYUmViSWNaMG9mWmJUQzRobFQyeUpTMnJGbjFORmExbTJSQTc2?=
 =?utf-8?B?c3N1VHRXUW0zejBlT1A5UmxFYUw1WEZ1ekdtdTRrTkp0WExvbmVEb3UwSWQ2?=
 =?utf-8?B?TWU0aDJWWitDVFNPRUNVK3FFSzRoMWhmdGdpY0tBTlJEcXNZYmJRTlRKVGNH?=
 =?utf-8?B?RGRoYWk5bG4wT3U3R09aT1c3dkpGOEpyOEJSVnNJaElkSXE0QkJtSktIODFs?=
 =?utf-8?B?aXVFYWhudnE2Y2FkMGtMaXNoajVnWlp5cWFDeU14bnJHeVBkM3hMN0NRK0N6?=
 =?utf-8?B?SHoyQUx5MllCWXhJVVFoajBVK1ZiREZtOTR5OG1ZUFYxei9INEozYkoyMHpk?=
 =?utf-8?B?Z1FTOGYzNy9HWUhFRC9hNlR1Q05UdmhwTEVWdDdWR3ZyTG10NE9OYWtvMTVi?=
 =?utf-8?B?SVlYKzBrMkdVbGVuaUVQYkhxUDRmMzZnRlpWTFpncFhWMndDdGZualJLN0ht?=
 =?utf-8?B?RkZpZEozeC90UC9rbmtCeGxhRW5KK0ExNFM2VDZJdjFOdldWQ24xNyszZG9a?=
 =?utf-8?B?RUFTb2ZjdUxUWTdaQUhGaGVqVlFQcllYbU5PekV6VnJ3TmFHVDVZRFlNa2M4?=
 =?utf-8?B?eEw5dUYvTzZNa3JjZFpLZXRraGxuVU9sNmFLdUpTZk1adklweUFTVGpLb2d5?=
 =?utf-8?B?ZFdxRjdrYmcxUU5iNkFkMnd6YXNNTXQwcllUU3M3M3BHL3ovTkVjL21nRFNX?=
 =?utf-8?B?azRsS2dubmloQTNoa3cxZDVrMG5IeVVDbC9sZkNBUFd0T0svNUVDb2VBSTJW?=
 =?utf-8?Q?oja7CnA8uNw0RivU=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4126c23a-cc34-4ffe-3ca9-08debb2a0035
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 13:23:40.1752
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 89XWCH7RNmPOR2TDhqowzrqUTAup0Sy/0mNMlKoEzp4Ha+AwxnmBbJSIXTz8erPyE3FXF0FZyeswqbyVCuh62M6qJsDeM8nJyT/kcTKgKhI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5524
X-purgate-ID: tlsNG-d25034/1779801824-E397DCF5-6590DBCA/0/0
X-purgate-type: clean
X-purgate-size: 2345

On 5/26/26 2:01 PM, Andrew Cooper wrote:
> On 26/05/2026 1:40 pm, Ross Lagerwall wrote:
>> The existing code checks for any reserved bit set while the APM only
>> considers it invalid if an MBZ bit is set. Relax the check to match the
>> APM and hardware.
>>
>> Some of the reserved bits were observed to be set running Rocky Linux
>> 10.1 on Xen on Xen.
>>
>> Fixes: 9a779e4fc161 ("Implement SVM specific part for Nested Virtualization")
>> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
>> ---
>>   xen/arch/x86/hvm/svm/vmcb.c | 6 ++----
>>   1 file changed, 2 insertions(+), 4 deletions(-)
>>
>> diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
>> index 975a1eaef806..9ada491e57db 100644
>> --- a/xen/arch/x86/hvm/svm/vmcb.c
>> +++ b/xen/arch/x86/hvm/svm/vmcb.c
>> @@ -347,10 +347,8 @@ bool svm_vmcb_isvalid(
>>           PRINTF("CR0: bits [63:32] are not zero (%#"PRIx64")\n", cr0);
>>   
>>       if ( (cr0 & X86_CR0_PG) &&
>> -         ((cr3 & 7) ||
>> -          ((!(cr4 & X86_CR4_PAE) || (efer & EFER_LMA)) && (cr3 & 0xfe0)) ||
>> -          ((efer & EFER_LMA) &&
>> -           (cr3 >> v->domain->arch.cpuid->extd.maxphysaddr))) )
>> +         ((efer & EFER_LMA) &&
>> +           (cr3 >> v->domain->arch.cpuid->extd.maxphysaddr)) )
>>           PRINTF("CR3: MBZ bits are set (%#"PRIx64")\n", cr3);
>>   
>>       valid = hvm_cr4_guest_valid_bits(v->domain);
> 
> The APM does say MBZ for VMRUN, but the end result of a VMEntry (virtual
> or otherwise) must be a legal CR3 value.
> 
> For 5.2.1 CR3 Register (Legacy) and 5.3.2 CR3 (Long), the APM states:
> 
> Reserved Bits. Reserved fields should be cleared to 0 by software when
> writing CR3.
> 
> What's the real behaviour for trying to set a reserved, non-MBZ bit in
> CR3?  On Intel it's strictly a #GP, and I really hope it's the same on AMD.
> 
> i.e. I really hope this is a documentation error on AMD's behalf, and
> not a misfeature we need to support.
> 

An hvm32pae XTF test that does this...

     write_cr3(read_cr3() | 1);
     printk("cr3 is %lx\n", read_cr3());

... succeeds and prints:

     cr3 is 105001

This was similarly observed by the KVM folks in this thread:
https://patchwork.kernel.org/project/kvm/patch/20200713043908.39605-1-namit@vmware.com/#23578493

Ross


From xen-devel-bounces@lists.xenproject.org Tue May 26 13:46:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 13:46:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319929.1587364 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRs6c-0001tp-1Q; Tue, 26 May 2026 13:46:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319929.1587364; Tue, 26 May 2026 13:46:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRs6b-0001ti-Uz; Tue, 26 May 2026 13:46:01 +0000
Received: by outflank-mailman (input) for mailman id 1319929;
 Tue, 26 May 2026 13:46:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wRs6b-0001tc-3e
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 13:46:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRs6a-003vT2-Fc
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 15:46:00 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a15a411-5cb7-0a2a0a5109dd-0a2a4505ec6e-32
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 15:46:00 +0200
Received: from [52.101.201.44]
 (helo=PH7PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a15a416-aaa8-0a2a45050019-3465c92c39d8-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 15:45:59 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SN7PR03MB7183.namprd03.prod.outlook.com (2603:10b6:806:2e5::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.11; Tue, 26 May
 2026 13:45:55 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0048.019; Tue, 26 May 2026
 13:45:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HSG4wzpzanmFR4Ivlv9DnZGwsjwCpTQkYFdHOjHVMF6LmvuEmW0g9ase8JWvIst0SUfSKIk3zvShwTY89Vht4UtZhD9lxkFbBJmgisrnpiezL3UJteXVF5Ld9b5KkqWoc0B958NfQcl6Z4ZLrdBLxrVZZQMyu/3PYjspsajxpXDAIp9ICh7k2WMNYSuBuCg1sMsHVozSJiEpQ2RYRR+4yX9Kjc6MhLXD/W5Jy8SocBcD3Q1Zy43waucGyEs8VJSfYiSCWe7oibFu4Ffw/ZuQ50QcHOxarI7SS+i4ix+M+xz//F06YzTM7l9cXCrRITrAljMo8dfrVq0Q+StOkrRZyw==
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=E6pb6Nl65flvFCMi5auQ/aang4GVEaKv1uMhP8ELDz8=;
 b=FTdtt1IUAl2Oc557K6QpbAXayY7cdb/jK/JU2z4szcDkScl23hJlshDpZ9Wr5E6xFAvLSCZ/5DeKPu1+BY1b2hVbjkFdd9I8wBv9BBVtuLUfqmimNFMpjqBPXuz7B6pIxmpVRqy6cTfoY10nZftrAwklxy+iwagdTAqKgiKhL2v5UDvQGKo2qxztcjl/GCAZhrrA12+iEawNnX+UpvBqVcFq6/47VvL69pX2iTDoj7rYCQL/3xbI4x+QrjSkvm0ja8pjoavMAe4c6U8gqtGqBLmJMM28Ic/b0etpV8yJ338mhJg1RuDjs6k236Q9HvbBDPnd3SUhcqVZ8Zs2+QmsxQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=E6pb6Nl65flvFCMi5auQ/aang4GVEaKv1uMhP8ELDz8=;
 b=DSGfy7/uM0USVxeuYXNv0r5YfFQ0qbVPUGCbQzNpknEPXrXiK49ybD9CkTlOU0Ary1ALzAuhh6LB6FtfPOJ8qfGLbFkve+QhkbwF7qseXGJWsSsKKLUAYPsWY3DtbvDORuDbPYCRIZekH5U7FqOvqFqeR4e7PemPVEGPmm3p82w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <7f1ae134-7635-4533-a563-b61a508c893e@citrix.com>
Date: Tue, 26 May 2026 14:45:51 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v1 2/6] nestedsvm: Adjust L2's DR intercept when adjusting
 L1
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260526124027.573412-1-ross.lagerwall@citrix.com>
 <20260526124027.573412-3-ross.lagerwall@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20260526124027.573412-3-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0232.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:372::19) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SN7PR03MB7183:EE_
X-MS-Office365-Filtering-Correlation-Id: 9cfb194a-c6f2-499d-90e8-08debb2d1bfe
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|56012099003|22082099003|18002099003|6133799003|11063799006|3023799007|4143699003;
X-Microsoft-Antispam-Message-Info:
	W7ONb58/TBl4srB6ctDJmb0w5Ye9UfPMMHjIFO8D44g1vd1UQ8nzZ2c1GRjTa0/Jx1cSrl40heXPKJJk+LI8J3AAS443854ARW48SzndndWV9YPRUWNxInN97LAXW+sVLIn4o1UqaDcju4yPt1N9TJQU9oVIxk+hK+8iwpidaEwmM5eV7VXIuNN/4H3HHeQgcAvFdCfl2tyWfS35VZ6AOCerJ6LcYshjDRupQn/suCbTgo5zxXf5LuobWKxnzSjw0jE3Ahp1eq6qb4qNdwBiZi8mcTvCTRi+6d6WQC8m0IezN8oZVhXzPuqShcgFhkqqyHaDZ/1m8Go8UM9yiK2NIWj3N7cAyV2F7/z85sD7DjBW2jwVcKkY4RcrlTVInlT3puVB6eSiEQQenfan445kJooh11RvIfgXhfFLfWnz3coVvxE2L9llNyxDUjy4xl8qyUJ7cQl5nDaSR0KeWhrCXddSrmPLhB6HaPlgbIcVV1Gn9lWZy55I+hAVidQXf6T52RPK4G7APCOnBt7vsTkoJelrmtORN0KqJ6SBZARYLVog3GnS0xNesi7ulv0nZrelvQA8yfhwjsEZ/sRr/Spt2hWD3NHc+nyCxXlvIpR70mGYfpGqKSARVUXcWML2tXL8my5qlsRFq/c37onhzFsS460BJj7O6tY7hpZgrlVe2rJHIz50TG6xlhX90GsT+/Fd
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(56012099003)(22082099003)(18002099003)(6133799003)(11063799006)(3023799007)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SDJYODBoNHo0RnBOVjRwaEZ6ZkdqUEVyZEduV3REL2VIc1JVTTNGOFJkdnpS?=
 =?utf-8?B?bExLUTdlMDFCU1o5TGJkdUl3WlVvWTBWTko1UVUrQUl1WGNqaGhHdXk1TkFC?=
 =?utf-8?B?NzJUd2hPUVE0K3BlZ2JmcFRQZnRWU1QxVndheklnQ3paaFhNZkRGc2w0bmN0?=
 =?utf-8?B?QU13SkROV2VEWGlaaS82Y25rcUNKbzFyb3djaXQzY29LclYxYzZrS2lyMDBo?=
 =?utf-8?B?TS91V1V2UDFVTjJoMEltOExncW1QWWEzblpRVnl5dFVTTzM4Rk44UW5QUEJj?=
 =?utf-8?B?ZUJBVjdnVW4vRVdUb0FQaHZiZlBWVGVsbzhqQThzZ2I1OE9zcTFEZTlmVVYw?=
 =?utf-8?B?d2ZFb1NVMXFXNW1LWXhqTFA5U1hKQ3huUDBsN20zOUd0Z1ZWTW5tbXNXT2Vp?=
 =?utf-8?B?SHU0ejZYYldMamNtQlQzTW54Z3FOdFJIN3E0bk4zMlRlVUhOamlEYnlFUWlr?=
 =?utf-8?B?Nll0aTNnUWlyc25ZV1VOTG5ocEhuMC82YjY5QlhJb2JmVFp4TVF5d1hVOEtG?=
 =?utf-8?B?WXFUM0h5RTZvVW5OY2lGRmhFS0xPbFE3VUlRVk1MRFBGS1JlWmozNVBpaXhB?=
 =?utf-8?B?dlFJWEZoWkdJZHMxTCs5NGFlR0ErNk16ZVBkdXZScGQzN2xqeityWGtZNHh2?=
 =?utf-8?B?ZG4rcW5ucTgxZ0R1cUdRWlNkc1g3bzF5NEszTHlMOUt0cmdxc2N3alRlMlR5?=
 =?utf-8?B?Ym1WWW1RbVpJNzlRNkpCUE8xYWhtcno2M2xpYkphWmJGNCt3d2l0cG9YTEJa?=
 =?utf-8?B?YmRmRHBVbk1DV2d1UVI3bDJNMW93Y2hxcWlJRnZFNzkxUnhuaEhuOFpod2ox?=
 =?utf-8?B?QWRhK0xHQ3F3anhndlc1T09ubytpQ0JNLzBFVWh4bmxjaU9kVUNGSldEaytv?=
 =?utf-8?B?S1ZyS0pGbDN0QXhQNFppd3BhbHAwMCt4RVNENXV6YlZxWVFiNDlzamNtMm5Q?=
 =?utf-8?B?d3l2VjMrb25iN0xWbDhDSlUyM3haS0RoSTl1N2hNd3VlcmQ5UmtCcHZuQnpi?=
 =?utf-8?B?eVk4ZVJENnpvQzE3cEhYZU8wYlJ4THZaNjluL2ZJaEk0V3N4OVRXUmpRRTJK?=
 =?utf-8?B?V1hONUhpMjVCQmovZDl2OS9CT3ZqM080UEcrOHRrVENhZlJRY2JLS3lPajJU?=
 =?utf-8?B?RDV3L0pFNWdra3hiOWtmMHFRMXA5TTB4Nnh6c3U3ZEJaY3BDMmE1dDBjUjhl?=
 =?utf-8?B?c3NXTXJtUVArSXgzVXo2bTFvcERLSUh6RXM2cnVTUituaGtlcFVUeWdNOVRM?=
 =?utf-8?B?VFZJeE1jRkp2OGs3dkVLV2F1cWV5WnRWTEswWDNYTXQzYXJCbkFMZW5PaDlp?=
 =?utf-8?B?RTlxWWxpWjluZUlHc1A4SDJRRk5sbzlUSnN1T0crSmx4RkJsUFh1WEtUZXF1?=
 =?utf-8?B?RTViUzRDd0ZaK1Nnb25CS3pEdi9kOU95UmdHbEhUTW1IVC9sMmovc05PMmx3?=
 =?utf-8?B?R3NpMEJVdEdCOUM3M2ErWk5VSm82YUg2ZzlHcVpubm83NkhqNE1NMkVuREkz?=
 =?utf-8?B?NFJsejRWeDQ3MjVXMkZQTHJGdSt0aXBXY0UweVlYenRLbzFSejV6NG9sYkM5?=
 =?utf-8?B?RzNIYnNNTThhWU5OV3RXT2hoa2UxdXcySjk0Uy81aDNMd1VtaWt0MnprNEJr?=
 =?utf-8?B?R1VXcjNERjJDQnRLOStUNnZocTN1U1B0YXp5ZUdnQUpuTWVxMFp5dHRUWnFJ?=
 =?utf-8?B?OGpjV0ZWZmNxenVIb3Rmb1h3dHBmSFBWdy9kVHN0dmVNbklpcnl2SW9lQ0dH?=
 =?utf-8?B?bllJODhWMGI5RUxyMytRaUYzczNBS1oxa205UEdoQ21TNHI3RVlYMG9KdWNt?=
 =?utf-8?B?TWo5eEw2Q1NNSmc5ZGZmRklWb25vTHUrT3laNmc5b2ozUC9YdkRoT2djRlJ4?=
 =?utf-8?B?b1lZQjB6dU8waEhOV3NLZHkvTXFvWHluUStuZ2VEdmp4TFdPMSswZk5Ic25E?=
 =?utf-8?B?dFpYYU9CRU9jK25LanNCM21RQUdpaHhwdlcva0xUK3plemtBZXNHb3oydG9I?=
 =?utf-8?B?OWI1N0hDK2xIL2dZQnR0ZnNpT0d4WWRIaEVlc2lRdkh4UHJnTUl3ajlnNFgv?=
 =?utf-8?B?ak95azZ0ZW9JazNyQnNwWFlBYjlkdEVMZXhUOSs5Z2hwcEtQVW9FaXBwZUg5?=
 =?utf-8?B?VWV1d0ZxQ0NNZ3NaYU5wK0h3cG9PVnlHYS9HZnFuMlE2U1V3ZkUvcnVHVkll?=
 =?utf-8?B?WXRZbWdNRDlNVDQvTmZUM3RmeWk3c3pXeXpDYUd3djIxU2FSamxYNXMvM3Q2?=
 =?utf-8?B?ZWY2M2R6Y0plUEh0Y0xVMTgwL2t5YmFpMndKYkdLNUVmTk9JWlk0VStYaTZM?=
 =?utf-8?B?MFVYRWZWMUo3M1lkaTA0Z3hEaWl3TmE3ajVDSzM1Zmovd09EZXJscGRNcDFn?=
 =?utf-8?Q?G1t8/2qGCaIXYFjo=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9cfb194a-c6f2-499d-90e8-08debb2d1bfe
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 13:45:55.2303
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: LXOxK6MHpgK6bytJw55oPttoYT/xmnBESH1/aAFjMf6urq+c7NGHXIt1TMUBp5Fg8lxe8VEWlC02YhIQVKlGZVufd9hKrQpHHM7aV5EjF7I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7183
X-purgate-ID: tlsNG-c201ff/1779803160-DB36C443-53412D1D/0/0
X-purgate-type: clean
X-purgate-size: 2654

On 26/05/2026 1:40 pm, Ross Lagerwall wrote:
> If L2 accesses a debug register (like reading DR7) without L1 intercepting
> it, it locks up the vCPU. L0 intercepts VMEXIT_DR7_READ, which disables
> the intercept for L1 and then restarts L2 which re-executes the
> instruction and then this repeats indefinitely.
>
> Disable the intercept for the current VMCB if in guest mode to reflect
> what would happen if the VMCB were recreated via
> nsvm_vmcb_prepare4vmrun().
>
> Fixes: a59a7be91b61 ("nestedsvm: fix DRn handling")
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> ---
>  xen/arch/x86/hvm/svm/svm.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
> index 49fcdd906cf8..209edcba321a 100644
> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -1657,6 +1657,8 @@ static void svm_dr_access(struct vcpu *v, struct cpu_user_regs *regs)
>  
>      TRACE(TRC_HVM_DR_WRITE);
>      __restore_debug_registers(vmcb, v);
> +    if ( nestedhvm_enabled(v->domain) && nestedhvm_vcpu_in_guestmode(v) )
> +        vmcb_set_dr_intercepts(v->arch.hvm.svm.vmcb, 0);
>  }
>  
>  static int cf_check svm_msr_read_intercept(

In Xen, debug registers are generally lazily.  When DR7 is not active
(which is expected to be ~100% of the time for a regular guest), there's
no point context switching DR{0..3} or (on AMD) the mask DBG Mask MSRs[1].

The debug registers are brought into sync if DR7 is active at context
switch, or any DR is accessed, or if a #DB is injected[2].

Now, in the logic above, you're saying that L1 didn't intercept DR which
is why we didn't Virtual VMExit earlier, so when we're bringing DRs into
sync we need to drop the L02 intercept too.  I think this is fine, but
it deserves a comment explaining that it's an artefact of Xen's lazy
context DR switching.

But, what about emulated MOV DR, or a #DB injection?  Those paths will
still end up being wrong.

I think this logic to alter the DR intercepts needs to be inside
__restore_debug_registers(), and needs to cross-check the L12 settings
before modifying L02.

~Andrew

[1] Although the Mask MSRs are currently inefficiently switched because
I didn't have time to optimise things after the last XSA fixing them.
[2] This path is wonky.  DRs should be made active irrespective of TF
because the #DB handler always needs to read DR6[3].
[3] This is a fun FRED bug, as the FRED #DB handler does not need to
read DR6, meaning that I think we need to force DR6 always to be in
sync.  And this gets extra complicated on Intel...


From xen-devel-bounces@lists.xenproject.org Tue May 26 14:44:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 14:44:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319957.1587374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRt0q-0001G2-7i; Tue, 26 May 2026 14:44:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319957.1587374; Tue, 26 May 2026 14:44:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRt0q-0001Fu-4e; Tue, 26 May 2026 14:44:08 +0000
Received: by outflank-mailman (input) for mailman id 1319957;
 Tue, 26 May 2026 14:44:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wRt0o-0001Fo-NH
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:44:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRt0o-0048Il-3N
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 16:44:06 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a15b1a2-2eae-0a2a0a5409dd-0a2a450794a8-46
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 16:44:06 +0200
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 6a15b1b5-229c-0a2a45070019-d155dd32cde1-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 16:44:06 +0200
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-444826c16ffso9083075f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 07:44:05 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45ed90f8978sm3792998f8f.7.2026.05.26.07.44.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 May 2026 07:44:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779806645; x=1780411445; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=z/X8eZNrrybPMnti/+Gb3e66Bh32G+5tDXPR98n1gyo=;
        b=KHvNeQaOqghETj5Ub0af9Y4IfPePAYW8NXkSbZfuNONmI9unCjdpUZGYjfiI2B9j9G
         lUSCXRisetFFfjrqv5Acmd5v8wwm7+JAOQ4HjeCgutGVjMj49PUXW851XCuAmTkF6xQD
         f6v/wCtPby4Fec3Zx0PZHCS8ZVoYJhfOfl/Co4LHzMnE9w7ZbmlEN6lKlQE3zUPOuJHx
         K30iQgnNkKdkMIYBQrnjyKC1tuh+8ZAgcawo1W9FR5yZnPHjTLdc+0gvnEyAf7422goY
         XaHllxXneBwVOb5U0qPsAyC0Fgk8QUZ3qzkymHIyJKlMBPBXs8vNuIEdqQiIbH5HMwdx
         l/NA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779806645; x=1780411445;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=z/X8eZNrrybPMnti/+Gb3e66Bh32G+5tDXPR98n1gyo=;
        b=OMy2mDrcxR1k4nCZ2u8ArzeDFaIX9RF4URPekyr81W5ZwSsELXdM8CO3Qc01f1uK7X
         qVNTE4JLf/T8q4LbBjSO+4QurkPWX/lArkAuACpfj0nHHkSP7g3Pobaiwj/LboGRPbMF
         5FinoedfgydL6I2WsUt1DaVxzbHyhsUwmS9QxtyvPk+wlt65LeE3GbkXEZ2ss6fvvqtB
         RYTmmtETO7sbHKZOv2gO2iF51JW3FEXsZcn/0+7vD/gZ659p5shswt4GA4RDbFrNu+vB
         XR4fR1BPgF1R87S6NDGj1abmzKocoyHaIjSsFBKFfb+VxH6fGlRWgI5penUv+/L4POk/
         52Bw==
X-Forwarded-Encrypted: i=1; AFNElJ9wIp8E2kEctWINSagj81R62Ecr9JyEokUrGBoeGxH4uoIX6QabHpSiierkfcj4m3KvqqtdOwgE2yU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzlgQvJdelqoQYwrLbQfuLuw8K9vvKA50CNnxs8IkDmw+owaMRh
	NPYpRq2vFxATb65xExW+5wEkKqR4yY7WCnqyWHdUwnHdcEq0puNCIojR
X-Gm-Gg: Acq92OF2K58FQ0LO2tp5Vqk9iTuZK0smmOtU+WirDp1GIBuDlKvCmf7Vp3r9lWmEAKr
	GJ8UakHoiEArHIlj5QK24bj6wI8NK1xFaaMG2gYnbPUvdHDJC91HMQVzFvXnp8EKOObYhzWhGMi
	SLqcvbK45W5A7JKWStPpCBu7b8s4ttROVexOJeAocvMZDojWKhSgKaCrPnnAzhNV8IU06mEAV26
	4yw3eBHeJzKZq98ZnZZpvlmNpT9gK304qrYUeHf9Rm5Adm0P2zBinwAnVB2+/+zv6ghsy3hPUNa
	UBZHZ2vBgBplMy33cbvvE4nhRalUY9apVLTlj/STz1nY4bDjT6fnZ/+GW33Q7Z25SWRzv140DAu
	DVhTyc5hk43R07KYmWu1yqe+VL0J4teyJaCXxYrUXZCsWYPBxULwMFWZbELLa/WqcfzzNee3rxr
	O79S92yBBpe4HTgTfJFnYeyFgVxkHYB8V20qOeb8kLgHCBxmtlg/HhoDtCPXzKWuZAD0k/c91jr
	n4=
X-Received: by 2002:a05:6000:25ed:b0:449:e8c0:fd58 with SMTP id ffacd0b85a97d-45eb38bae85mr32441210f8f.27.1779806644939;
        Tue, 26 May 2026 07:44:04 -0700 (PDT)
Message-ID: <7b05a728-cb46-41fe-9c29-e37c3a605d70@gmail.com>
Date: Tue, 26 May 2026 16:44:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/arm: scan CLIDR Ctype fields upwards when probing
 LLC
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Luca Miccio <lucmiccio@gmail.com>,
 Carlo Nonato <carlo.nonato@minervasys.tech>,
 Marco Solieri <marco.solieri@minervasys.tech>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <fc9f1babe0c320214c03b1d294398d411fa41254.1779708833.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <fc9f1babe0c320214c03b1d294398d411fa41254.1779708833.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1779806646-0976AC48-A1659BB8/10/73395122804
X-purgate-type: spam
X-purgate-size: 1490



On 5/25/26 1:47 PM, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> get_llc_way_size() currently scans CLIDR_EL1 Ctype fields from the
> highest level downwards and stops at the first unified cache it finds.
> 
> However, CLIDR_EL1 describes the cache hierarchy from Ctype1 upwards.
> Arm ARM DDI 0487J.a, D19.2.27 says that once software has seen a
> Ctype value of 0b000 while reading from Ctype1 upwards, no caches
> manageable by the architected set/way maintenance instructions exist at
> further-out levels, and the higher Ctype fields must be ignored.
> 
> The current reverse scan can therefore select a unified cache level from
> a Ctype field above the first no-cache level. Such a field is not part of
> the architecturally described CLIDR/CCSIDR cache hierarchy and should not
> be used for selecting the CCSIDR level.
> 
> Scan Ctype fields from L1 upwards, stop at the first no-cache level, and
> keep the outermost unified cache observed before that point.
> 
> This preserves the result for regular cache hierarchies, while avoiding
> selection of an architecturally ignored Ctype field.
> 
> Fixes: f4985fce6f0b ("xen/arm: add initial support for LLC coloring on arm64")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>

Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue May 26 14:53:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 14:53:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319970.1587388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRt9K-0002yN-AS; Tue, 26 May 2026 14:52:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319970.1587388; Tue, 26 May 2026 14:52:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRt9K-0002xf-4n; Tue, 26 May 2026 14:52:54 +0000
Received: by outflank-mailman (input) for mailman id 1319970;
 Tue, 26 May 2026 14:52:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wRt9H-0002vI-FV
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:52:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRt9G-00DAaE-Re
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 16:52:50 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a15b3c2-5cb7-0a2a0a5109dd-0a2a45019a54-2
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 16:52:50 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a15b3c1-c1f2-0a2a45010019-d561b338bdaa-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 16:52:49 +0200
Received: from 186-249-145-161.shared.desktop.com.br ([186.249.145.161]
 helo=[192.168.1.68]) by fanzine2.igalia.com with esmtpsa 
 (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wRt9B-008TwX-13; Tue, 26 May 2026 16:52:45 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Cc:To:Content-Transfer-Encoding:Content-Type:MIME-Version:Message-Id:Date:Subject:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Cc:To:Content-Transfer-Encoding:Content-Type:MIME-Version:
	Message-Id:Date:Subject:From:Sender:Reply-To:Content-ID:Content-Description:
	Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
	In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
	List-Post:List-Owner:List-Archive;
	bh=P6RGwck8/3Y05dP5OM73rpk7zpUroYjgKvNoAVl3EUs=; b=ZNR3rILV8ejyUA9CQXAmFbBA61
	jffSfUpOD4RQWnzRdyM76uImj/breYHMPwZm91X2SUCec4bklK4On/LX8or9G311yTCrhPfhXVJJK
	4ZIuGSd1FIWxNZBDbRojv+PMLcMnAnklgbMbbB6IpfroRxwZiv5ygXf2Z4MYh6G8wxfltDOjbaCfh
	4Hwh+Br0hkJv0CkOfQY2kTPAVkVfHq/yB2048Dpgj8/ywTdCbaqh0rHGMbHvtJxp/Op23vY+RaVgL
	MekGvRAe+7MFevUBv1BY2L1NLiID+panTdwi/K+xrFUC6QkQplafqD8iTbX3XLpJRmGILGco6Lscq
	uYgn4Ofg==;
From: Mauricio Faria de Oliveira <mfo@igalia.com>
Subject: [PATCH v4 0/4] x86/pvh: fix unbootable VMs again (PVH + KASAN)
Date: Tue, 26 May 2026 11:52:32 -0300
Message-Id: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-B4-Tracking: v=1; b=H4sIALCzFWoC/33NQQ6CMBCF4auQrq2BobTiynsYF6VMYSIWQk2jI
 dzdwkaNxOX/kvlmYh5HQs+OycRGDOSpdzHELmGm1a5BTnVsBinIVADwIbT8qr12nFxHDrlEq41
 SNqtAsXg2jGjpsZLnS+yW/L0fn+uHkC3rHyxkPOUKZVaKXAhTwoka3ZHem/7GFi3Ap6A2BIgCm
 EJVh9pYK/WPkL+FAtINIY9ChTUqWRqJRn0J8zy/AAUmnMo1AQAA
X-Change-ID: 20260422-pvh-kasan-inline-6efac77f1b27
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, 
 Juergen Gross <jgross@suse.com>, Alexey Dobriyan <adobriyan@gmail.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org, 
 xen-devel@lists.xenproject.org, Mauricio Faria de Oliveira <mfo@igalia.com>, 
 kernel test robot <lkp@intel.com>
X-Mailer: b4 0.14.2
X-purgate-ID: tlsNG-d62444/1779807170-B5545FF4-9D860D6A/0/0
X-purgate-type: clean
X-purgate-size: 6481

The issue of unbootable VMs with CONFIG_PVH due to CONFIG_KASAN is back.

Booting directly from vmlinux (instead of bzImage) now fails with gcc-14/15
(but works with gcc-12/13) if CONFIG_KASAN_GENERIC is set, on Ubuntu 25.10.

The PVH code is required/supposed not to use the KASAN memory access check
in the kernel entry point as KASAN has not yet been setup, or an exception
is hit and the boot fails.

This was previously described and addressed with __builtin_mem{cmp,set}():
- commit 661362e3dcab ("xen, pvh: fix unbootable VMs (PVH + KASAN - AMD_MEM_ENCRYPT)")
- commit 416a33c9afce ("x86/cpu: fix unbootable VMs by inlining memcmp() in hypervisor_cpuid_base()")
- commit fbe5a6dfe492 ("xen, pvh: fix unbootable VMs by inlining memset() in xen_prepare_pvh()")

However, even with __builtin the compiler may decide to use the out of line
function instead of the inline implementation. So, that does not really fix
the issue unconditionally; see details below.

In order to address this, it's required to switch to inline implementations
that do not depend on the compiler.

There's such a memset() in <asm/string.h> and memcmp() in 'boot/string.c'.
Use them instead of builtins in PVH entry.

Testing:

- Booting from vmlinux (fixed) and bzImage (still works) using
  allnoconfig + CONFIG_PVH + CONFIG_KASAN with gcc-12/13/14/15.

- Building with CONFIG_KEXEC_FILE, CONFIG_CFI and !CONFIG_KASAN with LLVM 20
  (check for a build error related to <asm/string.h>, not caught previously).

Details/Debugging:

- Only CONFIG_PVH (works):

  make allnoconfig
  ./scripts/config \
    -e 64BIT -e HYPERVISOR_GUEST -e PVH \
    -e SERIAL_8250 -e SERIAL_8250_CONSOLE
  make olddefconfig
  make -j$(nproc) vmlinux

  qemu-system-x86_64 \
    -accel kvm -nodefaults -nographic -serial stdio \
    -kernel vmlinux -append 'console=ttyS0'
  ...
  SeaBIOS (version ...)
  Booting from ROM...
  Linux version ...
  ...
  <Ctrl-C>

- With CONFIG_KASAN (fails)

  ./scripts/config -e KASAN
  make olddefconfig
  make -j$(nproc) vmlinux

  qemu-system-x86_64 \
    -accel kvm -nodefaults -nographic -serial stdio \
    -kernel vmlinux -append 'console=ttyS0'
  ...
  SeaBIOS (version ...)
  Booting from ROM...
  <QEMU reboot loop, flashing the text above>

- Debugging:

  Enable debug info and rebuild.

  QEMU: enable and wait for GDB, stop rebooting, remain running.

  qemu-system-x86_64 \
    -s -S -no-reboot -no-shutdown \
    <other options>

  gdb vmlinux
  (gdb) target remote localhost:1234
  ...
  (gdb) c
  ...
  Thread 2 received signal SIGQUIT, Quit.
  ...
  (gdb) info threads
    Id   Target Id                    Frame
    1    Thread 1.1 (CPU#0 [running]) bytes_is_nonzero (
      start=0xfffffbfff031eebe <error: Cannot access memory at address 0xfffffbfff031eebe>, size=1)
      at .../linux/mm/kasan/generic.c:98
  * 2    Thread 1.2 (CPU#1 [halted ]) 0x00000000000fd0a9 in ?? ()
  ...
  (gdb) thr 1
  ...
  (gdb) bt
  #0  bytes_is_nonzero (start=0xfffffbfff031eebe <error: Cannot access memory at address 0xfffffbfff031eebe>, size=1)
      at .../linux/mm/kasan/generic.c:98
  #1  memory_is_nonzero (start=0xfffffbfff031eebe, end=0xfffffbfff031eebf) at .../linux/mm/kasan/generic.c:115
  #2  memory_is_poisoned_n (addr=0xffffffff818f75f0, size=8) at .../linux/mm/kasan/generic.c:140
  #3  memory_is_poisoned (addr=0xffffffff818f75f0, size=8) at .../linux/mm/kasan/generic.c:172
  #4  check_region_inline (addr=0xffffffff818f75f0, size=8, write=false, ret_ip=18446744071585002062)
      at .../linux/mm/kasan/generic.c:191
  #5  kasan_check_range (addr=addr@entry=0xffffffff818f75f0, size=size@entry=8, write=write@entry=false,
      ret_ip=18446744071585002062) at .../linux/mm/kasan/generic.c:200
  #6  0xffffffff813eb283 in __asan_loadN (addr=addr@entry=0xffffffff818f75f0, size=size@entry=8)
      at .../linux/mm/kasan/generic.c:278
  #7  0xffffffff815df24e in memcmp (cs=cs@entry=0xffffffff818f75f0, ct=ct@entry=0x1be2fe4, count=<optimized out>,
      count@entry=12) at .../linux/lib/string.c:683
  #8  0xffffffff81ba2323 in cpuid_base_hypervisor (sig=0xffffffff818f75f0 "XenVMMXenVMM", leaves=2)
      at .../linux/arch/x86/include/asm/cpuid/api.h:206
  #9  xen_cpuid_base () at .../linux/arch/x86/include/asm/xen/hypervisor.h:46
  #10 xen_prepare_pvh () at .../linux/arch/x86/platform/pvh/enlighten.c:119
  #11 0x0000000001ba2588 in ?? ()
  #12 0x0000000000000000 in ?? ()
  (gdb)

  Frames #7-#8 show the non-builtin memcmp() (lib/string.c) was called
  even with __builtin_memcmp() being used in cpuid_base_hypervisor().

Signed-off-by: Mauricio Faria de Oliveira <mfo@igalia.com>
---
Changes in v4:
- Patch 1: address Juergen's feedback:
  - s/In next patch/In a future patch/.
  - Move footnote (Reasons not to include...) after "---".
- Add 'Reviewed-by: Juergen Gross' in patches 1 and 2 as well.
- Link to v3: https://lore.kernel.org/r/20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com

Changes in v3:
- Create and use a separate header for inline string functions
  to fix a build error reported by kernel test robot (patch 1).
- That also removes '#ifndef _SETUP/#endif' in <asm/string.h>.
- Link to v2: https://lore.kernel.org/r/20260427-pvh-kasan-inline-v2-0-2c57b8dcff6a@igalia.com

Changes in v2:
- Add comment about the return value of __inline_memcmp() in patch 1. (v3: now 2)
- Add 'Reviewed-by: Juergen Gross' in patches 2 and 3 (v3: now 3 and 4).
- Link to v1: https://lore.kernel.org/r/20260422-pvh-kasan-inline-v1-0-7e6194344c92@igalia.com

---
Mauricio Faria de Oliveira (4):
      x86/asm: move inline string functions to <asm/string_inline.h>
      x86/asm, x86/boot: expose inline memcmp
      x86/cpuid: fix unbootable VMs by really inlining memcmp() in hypervisor_cpuid_base()
      x86/pvh: fix unbootable VMs by really inlining memset() in xen_prepare_pvh()

 arch/x86/boot/string.c               |  6 ++----
 arch/x86/include/asm/cpuid/api.h     |  2 +-
 arch/x86/include/asm/string.h        | 21 +-------------------
 arch/x86/include/asm/string_inline.h | 37 ++++++++++++++++++++++++++++++++++++
 arch/x86/platform/pvh/enlighten.c    |  3 ++-
 5 files changed, 43 insertions(+), 26 deletions(-)
---
base-commit: d387b06f7c15b4639244ad66b4b0900c6a02b430
change-id: 20260422-pvh-kasan-inline-6efac77f1b27

Best regards,
-- 
Mauricio Faria de Oliveira <mfo@igalia.com>



From xen-devel-bounces@lists.xenproject.org Tue May 26 14:53:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 14:53:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319969.1587383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRt9K-0002vb-28; Tue, 26 May 2026 14:52:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319969.1587383; Tue, 26 May 2026 14:52:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRt9J-0002vU-V9; Tue, 26 May 2026 14:52:53 +0000
Received: by outflank-mailman (input) for mailman id 1319969;
 Tue, 26 May 2026 14:52:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wRt9I-0002vJ-4f
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:52:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRt9H-00DAaE-Gr
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 16:52:51 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a15b3ad-5cb7-0a2a0a5109dd-0a2a4504a6a4-42
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 16:52:51 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a15b3c2-1dec-0a2a45040019-d561b338ae9e-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 16:52:51 +0200
Received: from 186-249-145-161.shared.desktop.com.br ([186.249.145.161]
 helo=[192.168.1.68]) by fanzine2.igalia.com with esmtpsa 
 (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wRt9G-008TwX-4x; Tue, 26 May 2026 16:52:50 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Cc:To:In-Reply-To:References:Message-Id:
	Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender:
	Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
	:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
	List-Subscribe:List-Post:List-Owner:List-Archive;
	bh=rZqhwZAX9gu8lRikViZCp0rEPli4a286DTrRRjyvllQ=; b=WuYAJhANIcWzzse+dgQGkYqb5a
	sTO9DiiY9WqvwBeNnKJgGHjCYn/gJh9auXrf16rHEn4GligS1r5rYO1ULIahN2W4UH5P5cTD3sDfv
	oju7p8gCs1SvahCyN18CxQTeQrr7ZlVdnmFa/IL+fmp5TELb+oIbxd4hpWxqQKsRTjSa73NSlaMbT
	9fR8xMsZZbSiW7o/VDf/UsUmw14ax0q2W2+1nLvR5HD6JI2O893xWpRIXDFCxHLrIcoYuhhL/Vhzb
	+6d5I7f7kq9l6f5dw2S1xF1++r5c4AVPSbZVwee2+jMdpzr1QyfQursdOS9ftc9JrMvAFX9eZo7tg
	AXa8kRnQ==;
From: Mauricio Faria de Oliveira <mfo@igalia.com>
Date: Tue, 26 May 2026 11:52:33 -0300
Subject: [PATCH v4 1/4] x86/asm: move inline string functions to
 <asm/string_inline.h>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260526-pvh-kasan-inline-v4-1-a310e6a25ecd@igalia.com>
References: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
In-Reply-To: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, 
 Juergen Gross <jgross@suse.com>, Alexey Dobriyan <adobriyan@gmail.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org, 
 xen-devel@lists.xenproject.org, Mauricio Faria de Oliveira <mfo@igalia.com>, 
 kernel test robot <lkp@intel.com>
X-Mailer: b4 0.14.2
X-purgate-ID: tlsNG-ebf023/1779807171-2BF6D3FF-CF7AE7A2/0/0
X-purgate-type: clean
X-purgate-size: 4470

In a future patch, 'boot/string.c' will include inline string functions.

Using the header <asm/string.h> is problematic for a couple of reasons
(i.e., build errors), which can be addressed, but introduce unnecessary
complexity and regression risk (beyond these _found_ couple of reasons).

Using a new header <asm/string_inline.h> is simpler and transparent to
existing users of <asm/string.h>, with less changes to 'boot/string.c'
and its users (eg 'boot/compressed/string.c' and 'purgatory/purgatory.ro'),
which minimize regression risk.

No functional change intended.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202605140922.q7IlUv7o-lkp@intel.com/
Signed-off-by: Mauricio Faria de Oliveira <mfo@igalia.com>
Reviewed-by: Juergen Gross <jgross@suse.com>

---
(*) Reasons not to include <asm/string.h> in 'boot/string.c':

1) 'boot/string.c' is built for 16-bit/real mode thus some type and word
size errors happen when <asm/string.h> include, e.g., <asm/string_64.h>.

This can be addressed with '#ifndef _SETUP' (defined by 'boot/Makefile').

2) 'boot/string.c' is included by 'boot/compressed/string.c' which is
the source of 'purgatory/string.o', linked by 'purgatory/purgatory.ro'
(CONFIG_KEXEC_FILE).

In 64BIT, <asm/string.h> includes <asm/string_64.h>, which references
__memset() and __memmove() with KCFI_REFERENCE(), ie, __ADDRESSABLE();
however, 'purgatory/purgatory.ro' is not linked with implementations.

So, CONFIG_KEXEC_FILE and CONFIG_CFI without CONFIG_KASAN hit errors:

  >> ld.lld: error: undefined symbol: __memset
     >>> referenced by string.c
     >>>               arch/x86/purgatory/purgatory.ro:\
                       (__UNIQUE_ID_addressable___memset_0)
  --
  >> ld.lld: error: undefined symbol: __memmove
     >>> referenced by string.c
     >>>               arch/x86/purgatory/purgatory.ro:\
                       (__UNIQUE_ID_addressable___memmove_1)

(Note: this is not hit with CONFIG_KASAN because 'boot/compressed/string.c'
adds aliases __memset()/__memmove() to memset()/memmove() in that case.)

This can be addressed with 'CFLAGS_string.o := -D__DISABLE_EXPORTS' so to
disable KCFI_REFERENCE() in 'purgatory/Makefile' (it removes CC_FLAGS_CFI
anyway).

...

However, since a change in this series would need more changes to address
errors it causes, it is reasonable to change the series not to cause them,
by using a separate header with _just_ inline string functions.
---
 arch/x86/include/asm/string.h        | 21 +--------------------
 arch/x86/include/asm/string_inline.h | 26 ++++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 20 deletions(-)

diff --git a/arch/x86/include/asm/string.h b/arch/x86/include/asm/string.h
index 9cb5aae7fba9ffcf0f5af8f939d30467750ccaa9..8a849bb5d0c7100a2a1820ec0af9fc9f850727fd 100644
--- a/arch/x86/include/asm/string.h
+++ b/arch/x86/include/asm/string.h
@@ -8,25 +8,6 @@
 # include <asm/string_64.h>
 #endif
 
-static __always_inline void *__inline_memcpy(void *to, const void *from, size_t len)
-{
-	void *ret = to;
-
-	asm volatile("rep movsb"
-		     : "+D" (to), "+S" (from), "+c" (len)
-		     : : "memory");
-	return ret;
-}
-
-static __always_inline void *__inline_memset(void *s, int v, size_t n)
-{
-	void *ret = s;
-
-	asm volatile("rep stosb"
-		     : "+D" (s), "+c" (n)
-		     : "a" ((uint8_t)v)
-		     : "memory");
-	return ret;
-}
+#include <asm/string_inline.h>
 
 #endif /* _ASM_X86_STRING_H */
diff --git a/arch/x86/include/asm/string_inline.h b/arch/x86/include/asm/string_inline.h
new file mode 100644
index 0000000000000000000000000000000000000000..ffcfa6583d2bc7b91d078888518d0e80248af940
--- /dev/null
+++ b/arch/x86/include/asm/string_inline.h
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_X86_STRING_INLINE_H
+#define _ASM_X86_STRING_INLINE_H
+
+static __always_inline void *__inline_memcpy(void *to, const void *from, size_t len)
+{
+	void *ret = to;
+
+	asm volatile("rep movsb"
+		     : "+D" (to), "+S" (from), "+c" (len)
+		     : : "memory");
+	return ret;
+}
+
+static __always_inline void *__inline_memset(void *s, int v, size_t n)
+{
+	void *ret = s;
+
+	asm volatile("rep stosb"
+		     : "+D" (s), "+c" (n)
+		     : "a" ((uint8_t)v)
+		     : "memory");
+	return ret;
+}
+
+#endif /* _ASM_X86_STRING_INLINE_H */

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 14:53:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 14:53:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319971.1587402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRt9P-0003Mh-FW; Tue, 26 May 2026 14:52:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319971.1587402; Tue, 26 May 2026 14:52:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRt9P-0003MX-Bf; Tue, 26 May 2026 14:52:59 +0000
Received: by outflank-mailman (input) for mailman id 1319971;
 Tue, 26 May 2026 14:52:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wRt9N-0003Ll-Nc
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:52:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRt9N-009wiG-3Y
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 16:52:57 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a15b3bc-2eae-0a2a0a5409dd-0a2a4502d2a2-24
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 16:52:56 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a15b3c7-af86-0a2a45020019-d561b338cd9a-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 16:52:55 +0200
Received: from 186-249-145-161.shared.desktop.com.br ([186.249.145.161]
 helo=[192.168.1.68]) by fanzine2.igalia.com with esmtpsa 
 (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wRt9K-008TwX-OV; Tue, 26 May 2026 16:52:55 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Cc:To:In-Reply-To:References:Message-Id:
	Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender:
	Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
	:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
	List-Subscribe:List-Post:List-Owner:List-Archive;
	bh=UTOmAuiPQ1w9q3gPb2qsdx9jiBuxtzvoq44hIQ1/dkQ=; b=RJTHWlKG1FeZ9gjM4LsjQuc4z9
	+EQtwpdyMJpAtgaD4rOIVqx8Z99YlVI9XB6jBHb6uJYJoPyHJixkVQMqzdi7qdxja69KdeeFeGMhz
	3yxL2rVgY6JiUVCUZyeK+kgW5Df5TQ1MvN8IcIOJJ4RLddvuoncNls7UDgyWAfAyBSJ9riQS3MjgK
	y4/bYCWT6uTLVwUq+vX0ms9ijYzHwBU6gudxf6Zwt4E0sGM/pwigpWIuDzfkvy6TpvLfQD6O+eGsE
	C7csYOpMgdpyVA2bjrhy1dclhRahumZC3ivC8LdLf9uYdd8dnf2DGxYTnK1Sc5gn/crvTQStqiMu/
	7qXv9MQw==;
From: Mauricio Faria de Oliveira <mfo@igalia.com>
Date: Tue, 26 May 2026 11:52:34 -0300
Subject: [PATCH v4 2/4] x86/asm, x86/boot: expose inline memcmp
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260526-pvh-kasan-inline-v4-2-a310e6a25ecd@igalia.com>
References: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
In-Reply-To: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, 
 Juergen Gross <jgross@suse.com>, Alexey Dobriyan <adobriyan@gmail.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org, 
 xen-devel@lists.xenproject.org, Mauricio Faria de Oliveira <mfo@igalia.com>
X-Mailer: b4 0.14.2
X-purgate-ID: tlsNG-720697/1779807176-8117D161-4AE29E21/0/0
X-purgate-type: clean
X-purgate-size: 2102

Move the inline memcmp function currently only available in 'boot/string.c'
and its users (eg, 'boot/compressed/string.c' and 'purgatory/purgatory.ro')
into the inline string functions header <asm/string_inline.h> to be reused.

Note that the inline memcmp() returns 0/1, not -1/0/1 as regular memcmp()
(reported by David Laight <david.laight.linux@gmail.com>), which is not
caused or changed by this commit; this will be addressed separately.

Signed-off-by: Mauricio Faria de Oliveira <mfo@igalia.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/boot/string.c               |  6 ++----
 arch/x86/include/asm/string_inline.h | 11 +++++++++++
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/arch/x86/boot/string.c b/arch/x86/boot/string.c
index ac0f900ebc47efa81c92e1bb2010ea41677899c4..544681d046c3f87101309ffaca0c90512a244856 100644
--- a/arch/x86/boot/string.c
+++ b/arch/x86/boot/string.c
@@ -15,6 +15,7 @@
 #include <linux/errno.h>
 #include <linux/limits.h>
 #include <asm/asm.h>
+#include <asm/string_inline.h>
 #include "ctype.h"
 #include "string.h"
 
@@ -31,10 +32,7 @@
 
 int memcmp(const void *s1, const void *s2, size_t len)
 {
-	bool diff;
-	asm("repe cmpsb"
-	    : "=@ccnz" (diff), "+D" (s1), "+S" (s2), "+c" (len));
-	return diff;
+	return __inline_memcmp(s1, s2, len);
 }
 
 /*
diff --git a/arch/x86/include/asm/string_inline.h b/arch/x86/include/asm/string_inline.h
index ffcfa6583d2bc7b91d078888518d0e80248af940..91ed89bfdfa9b148002441e94f48039b17f70391 100644
--- a/arch/x86/include/asm/string_inline.h
+++ b/arch/x86/include/asm/string_inline.h
@@ -23,4 +23,15 @@ static __always_inline void *__inline_memset(void *s, int v, size_t n)
 	return ret;
 }
 
+/* Note: this memcmp() returns 0/1, not -1/0/1 as regular memcmp(). */
+static __always_inline int __inline_memcmp(const void *s1, const void *s2, size_t len)
+{
+	bool diff;
+
+	asm("repe cmpsb"
+	    : "=@ccnz" (diff), "+D" (s1), "+S" (s2), "+c" (len));
+
+	return diff;
+}
+
 #endif /* _ASM_X86_STRING_INLINE_H */

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 14:53:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 14:53:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319972.1587410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRt9S-0003cN-Qw; Tue, 26 May 2026 14:53:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319972.1587410; Tue, 26 May 2026 14:53:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRt9S-0003cG-NY; Tue, 26 May 2026 14:53:02 +0000
Received: by outflank-mailman (input) for mailman id 1319972;
 Tue, 26 May 2026 14:53:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wRt9R-0003b9-GU
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:53:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRt9Q-00DAfa-SN
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 16:53:00 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a15b3c2-5cb7-0a2a0a5109dd-0a2a45019a54-32
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 16:53:00 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a15b3cc-c1f2-0a2a45010019-d561b338dc20-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 16:53:00 +0200
Received: from 186-249-145-161.shared.desktop.com.br ([186.249.145.161]
 helo=[192.168.1.68]) by fanzine2.igalia.com with esmtpsa 
 (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wRt9P-008TwX-IX; Tue, 26 May 2026 16:52:59 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Cc:To:In-Reply-To:References:Message-Id:
	Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender:
	Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
	:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
	List-Subscribe:List-Post:List-Owner:List-Archive;
	bh=gJKjWXfILv4BRccqYgfSFnf+b13WkiYn/6GuwfAO050=; b=OesFYrIBBOauSSY3AjjpMej7ph
	hJ248d7jDB7xvJ41ugaGoBXE1n/qxNNG9q9C4d7IDIlr5JZw8AKJ7CMf78LHGqnHVAkvIRMQL6s6l
	ajpvLYA8iUA0R3szIb9A//tTX/rFpCyULIUoz+mQXlZi00WnBEmq+RcRRU01a2fCx/Rh8dw/gQi5k
	QP8x3PBNb7gDGrClTdZhImkXmJpiM2+qj8B9eOzp30jaL20bichpfZEnmHpAQwePZLnF/r4UNF2s/
	HzBMg7x8ZJvBRX5y9PFxNC2AbMbhkrPB3gY1lQrRX5IhUUV3LahNH1ftxzJuJBcyH0hQVdL+GbsUA
	tixH9UfQ==;
From: Mauricio Faria de Oliveira <mfo@igalia.com>
Date: Tue, 26 May 2026 11:52:35 -0300
Subject: [PATCH v4 3/4] x86/cpuid: fix unbootable VMs by really inlining
 memcmp() in hypervisor_cpuid_base()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260526-pvh-kasan-inline-v4-3-a310e6a25ecd@igalia.com>
References: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
In-Reply-To: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, 
 Juergen Gross <jgross@suse.com>, Alexey Dobriyan <adobriyan@gmail.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org, 
 xen-devel@lists.xenproject.org, Mauricio Faria de Oliveira <mfo@igalia.com>
X-Mailer: b4 0.14.2
X-purgate-ID: tlsNG-d62444/1779807180-AD9A9FF4-E1028600/0/0
X-purgate-type: clean
X-purgate-size: 1458

Even with __builtin the compiler may decide to use the out of line function
instead of the inline implementation.

The existing code is broken with gcc-14/15 but not gcc-12/13 (Ubuntu 25.10)
and vmlinux no longer boots with CONFIG_PVH if CONFIG_KASAN_GENERIC is set.

For testing purposes, if the size argument is reduced from 12 to 8 then the
compiler decides to use the inline implementation; that shows results vary.

Switch the builtin to the inline implementation to address it.

Fixes: 416a33c9afce ("x86/cpu: fix unbootable VMs by inlining memcmp() in hypervisor_cpuid_base()")
Signed-off-by: Mauricio Faria de Oliveira <mfo@igalia.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/include/asm/cpuid/api.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/cpuid/api.h b/arch/x86/include/asm/cpuid/api.h
index 82eddfa2347b32b76c2ea9b85f005ca5416ac71f..2d9f3d4d63de6e721f275d9e80d372edbdfedf30 100644
--- a/arch/x86/include/asm/cpuid/api.h
+++ b/arch/x86/include/asm/cpuid/api.h
@@ -204,7 +204,7 @@ static inline u32 cpuid_base_hypervisor(const char *sig, u32 leaves)
 		 * from PVH early boot code before instrumentation is set up
 		 * and memcmp() itself may be instrumented.
 		 */
-		if (!__builtin_memcmp(sig, signature, 12) &&
+		if (!__inline_memcmp(sig, signature, 12) &&
 		    (leaves == 0 || ((eax - base) >= leaves)))
 			return base;
 	}

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 14:53:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 14:53:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1319973.1587419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRt9X-0003v8-2o; Tue, 26 May 2026 14:53:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1319973.1587419; Tue, 26 May 2026 14:53:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRt9W-0003uo-VX; Tue, 26 May 2026 14:53:06 +0000
Received: by outflank-mailman (input) for mailman id 1319973;
 Tue, 26 May 2026 14:53:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wRt9W-0003tv-AM
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 14:53:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRt9V-00DAdi-Mk
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 16:53:05 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a15b3ce-e002-0a2a0a5209dd-0a2a450acc28-8
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 16:53:05 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a15b3d1-56b3-0a2a450a0019-d561b338b71c-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 16:53:05 +0200
Received: from 186-249-145-161.shared.desktop.com.br ([186.249.145.161]
 helo=[192.168.1.68]) by fanzine2.igalia.com with esmtpsa 
 (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wRt9U-008TwX-CT; Tue, 26 May 2026 16:53:04 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Cc:To:In-Reply-To:References:Message-Id:
	Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender:
	Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
	:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
	List-Subscribe:List-Post:List-Owner:List-Archive;
	bh=L3Sr9rY5U1mD/3546TE+xOT1mBFRY3YzwAzYlEgEGo8=; b=TFfbZM3IVCe7bLF1pen0oFglI9
	HTAI6yIrD2Gg0QVnwokdz1pXUAVJtb7hIrrmnNha9t7eOmhF5Ysx/U6xGn0VQx6vto16KLFrrj9SR
	d5crj92d0FUNleg2g1o0LH1IX+CJijWoyevMnfvLCoSA9nzPEsZrcB5SCzfLSlV6n4NoaqUspGG3L
	4/gkvo2aUFoc+9l+uQzU3zlSMwJ7fU5WZVquW3asjZDLvF8QPHU2mQHxoXxZ5ubwBoRs2oNWt1MPr
	NGCsMBJIgJJ3u0gnC5BXfxGe61gr22kRvKe05py6xTl15MS0QkJn20DqpQuXX1RuDN2AUje79vYCK
	L8Uc4siw==;
From: Mauricio Faria de Oliveira <mfo@igalia.com>
Date: Tue, 26 May 2026 11:52:36 -0300
Subject: [PATCH v4 4/4] x86/pvh: fix unbootable VMs by really inlining
 memset() in xen_prepare_pvh()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260526-pvh-kasan-inline-v4-4-a310e6a25ecd@igalia.com>
References: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
In-Reply-To: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, 
 Juergen Gross <jgross@suse.com>, Alexey Dobriyan <adobriyan@gmail.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org, 
 xen-devel@lists.xenproject.org, Mauricio Faria de Oliveira <mfo@igalia.com>
X-Mailer: b4 0.14.2
X-purgate-ID: tlsNG-4011c0/1779807185-7EF8B8B7-5731982A/0/0
X-purgate-type: clean
X-purgate-size: 1474

Even with __builtin the compiler may decide to use the out of line function
instead of the inline implementation.

This particular one (still) generated the inline implementation as expected
(at least in these compiler versions), but this is not guaranteed to remain
the case, as seen with the previous commit.

Switch the builtin to the inline implementation to prevent a similar issue.

Fixes: fbe5a6dfe492 ("xen, pvh: fix unbootable VMs by inlining memset() in xen_prepare_pvh()")
Signed-off-by: Mauricio Faria de Oliveira <mfo@igalia.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/platform/pvh/enlighten.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/platform/pvh/enlighten.c b/arch/x86/platform/pvh/enlighten.c
index f2053cbe9b0ce3d2178938269607c652ae8f528e..cb442cbd9d828619421babb281bfe9759edbca8a 100644
--- a/arch/x86/platform/pvh/enlighten.c
+++ b/arch/x86/platform/pvh/enlighten.c
@@ -8,6 +8,7 @@
 #include <asm/hypervisor.h>
 #include <asm/e820/api.h>
 #include <asm/x86_init.h>
+#include <asm/string.h>
 
 #include <asm/xen/interface.h>
 
@@ -129,7 +130,7 @@ void __init xen_prepare_pvh(void)
 	 * This must not compile to "call memset" because memset() may be
 	 * instrumented.
 	 */
-	__builtin_memset(&pvh_bootparams, 0, sizeof(pvh_bootparams));
+	__inline_memset(&pvh_bootparams, 0, sizeof(pvh_bootparams));
 
 	hypervisor_specific_init(xen_guest);
 

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 15:08:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 15:08:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320019.1587427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRtO1-0006ur-9J; Tue, 26 May 2026 15:08:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320019.1587427; Tue, 26 May 2026 15:08:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRtO1-0006uk-68; Tue, 26 May 2026 15:08:05 +0000
Received: by outflank-mailman (input) for mailman id 1320019;
 Tue, 26 May 2026 15:08:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wRtO0-0006ue-6s
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 15:08:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRtNy-004DTL-Ks
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 17:08:02 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a15b73d-bab6-0a2a0a5309dd-0a2a450780bc-36
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:08:02 +0200
Received: from [195.135.223.131] (helo=smtp-out2.suse.de)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a15b752-229c-0a2a45070019-c387df83c8d8-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:08:02 +0200
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id C673F75EE0;
 Tue, 26 May 2026 15:08:01 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id F41F75A280;
 Tue, 26 May 2026 15:08:00 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id Nu2JOlC3FWqKVQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 26 May 2026 15:08:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779808082; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=yHeVRInwBdhPTyeUIDm80iXzexAaKjc6iJ7mRCvzf0o=;
	b=X0hCaH5Ou04bGdmMjYXA7Yqxh3MId+vNVUstba3gVRcIA6NAUvBiDiV4u4ukWBTJ2S8fp3
	m2ehEj3GKRUju2JgDxSEKJeiLovzeWykcBmopzGBkLtNoozneGCoBPWZUO6XGChOz5Ud+S
	+KJFFKXJG6hyXvKgCRwzQynUUt8+qkk=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=mAHAXM8U
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779808081; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:  content-transfer-encoding:content-transfer-encoding;
	bh=yHeVRInwBdhPTyeUIDm80iXzexAaKjc6iJ7mRCvzf0o=;
	b=mAHAXM8Ueb0PCWr1RCbutCZZ08Xj5nRqwQhdLaSrM6zsJ2Mb3Iv4zOofJwXY71hi2F2Gs4
	sWCh8bDq4rd/fYAHkzUW1mO64zXFnilEpth71ndsfqpvE26qeA3jbJtDXb427q4/XcHR9a
	+Vmtr4/LRyq8Ntr92MIUzmQgIv46/gc=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	linux-trace-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	virtualization@lists.linux.dev
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	xen-devel@lists.xenproject.org,
	Andrew Morton <akpm@linux-foundation.org>,
	David Hildenbrand <david@kernel.org>,
	Lorenzo Stoakes <ljs@kernel.org>,
	"Liam R. Howlett" <liam@infradead.org>,
	Vlastimil Babka <vbabka@kernel.org>,
	Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
Subject: [PATCH 0/5] x86/xen: Get rid of Xen private lazy MMU mode tracking
Date: Tue, 26 May 2026 17:05:09 +0200
Message-ID: <20260526150514.129330-1-jgross@suse.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Rspamd-Queue-Id: C673F75EE0
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	ARC_NA(0.00)[];
	URIBL_BLOCKED(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:dkim];
	MIME_TRACE(0.00)[0:+];
	RCPT_COUNT_TWELVE(0.00)[27];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	DWL_DNSWL_BLOCKED(0.00)[suse.com:dkim];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	R_RATELIMIT(0.00)[to_ip_from(RLkdkdrsxe9hqhhs5ask8616i6)];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]
X-purgate-ID: tlsNG-ef75cf/1779808082-0A772C48-5DE2F2AC/0/0
X-purgate-type: clean
X-purgate-size: 1246

With generic lazy MMU mode tracking being available, there is no real
need for having Xen PV specific code to track lazy MMU mode, too.

This makes it possible to drop two paravirt hooks.

Note that this series is based on my series "x86/xen: Do some Xen-PV
related cleanups" [1].

[1]: https://lore.kernel.org/lkml/20260522152114.77319-1-jgross@suse.com/

Juergen Gross (5):
  x86/xen: Drop lazy mode from trace entries
  x86/xen: Change interface of xen_mc_issue()
  mm: Refactor lazy_mmu_mode_pause() and lazy_mmu_mode_resume()
  x86/xen: Get rid of last XEN_LAZY_MMU uses
  x86/xen: Replace generic lazy tracking with cpu specific one

 arch/x86/include/asm/paravirt.h       |  9 ++--
 arch/x86/include/asm/paravirt_types.h | 11 +----
 arch/x86/include/asm/xen/hypervisor.h | 25 +---------
 arch/x86/kernel/paravirt.c            |  6 +--
 arch/x86/xen/enlighten_pv.c           | 30 +++++-------
 arch/x86/xen/mmu_pv.c                 | 66 +++++++++------------------
 arch/x86/xen/xen-ops.h                | 12 +++--
 include/linux/pgtable.h               | 56 ++++++++++++++++++-----
 include/trace/events/xen.h            | 33 ++++++++------
 9 files changed, 112 insertions(+), 136 deletions(-)

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 15:08:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 15:08:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320020.1587437 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRtO5-000783-FD; Tue, 26 May 2026 15:08:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320020.1587437; Tue, 26 May 2026 15:08:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRtO5-00077w-C4; Tue, 26 May 2026 15:08:09 +0000
Received: by outflank-mailman (input) for mailman id 1320020;
 Tue, 26 May 2026 15:08:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wRtO4-00077i-E2
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 15:08:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRtO3-00BHE7-Pz
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 17:08:07 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a15b750-2eae-0a2a0a5409dd-0a2a4505aa02-14
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:08:07 +0200
Received: from [195.135.223.131] (helo=smtp-out2.suse.de)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a15b757-aaa8-0a2a45050019-c387df83a5f8-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:08:07 +0200
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 3348767479;
 Tue, 26 May 2026 15:08:07 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id D79085A280;
 Tue, 26 May 2026 15:08:06 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id fIlCM1a3FWqUVQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 26 May 2026 15:08:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779808087; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=zqSqltL1GnVn7PKoSl94YXnAsN5DYo+RIglrQTaw6ZE=;
	b=IhRRJLg1s5P5gbD17rJX9mZp818QbdvrFXhyx343oE+IaY0Kh+yGSPyqhhevxSLMM9kMpW
	xtcnReEWjm/8c1ay8xDj7uC+n3hhkvcCe5rSHQ151k0Qtc23cNKrxsvH+aYeIB3X9PRiY5
	6dAf2+JidkGM8r4dXSxeKh8mWnX64GU=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779808087; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=zqSqltL1GnVn7PKoSl94YXnAsN5DYo+RIglrQTaw6ZE=;
	b=IhRRJLg1s5P5gbD17rJX9mZp818QbdvrFXhyx343oE+IaY0Kh+yGSPyqhhevxSLMM9kMpW
	xtcnReEWjm/8c1ay8xDj7uC+n3hhkvcCe5rSHQ151k0Qtc23cNKrxsvH+aYeIB3X9PRiY5
	6dAf2+JidkGM8r4dXSxeKh8mWnX64GU=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	linux-trace-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 1/5] x86/xen: Drop lazy mode from trace entries
Date: Tue, 26 May 2026 17:05:10 +0200
Message-ID: <20260526150514.129330-2-jgross@suse.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260526150514.129330-1-jgross@suse.com>
References: <20260526150514.129330-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spam-Score: -2.79
X-Spam-Flag: NO
X-Spamd-Result: default: False [-2.79 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.19)[-0.967];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	TO_DN_SOME(0.00)[];
	ARC_NA(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	URIBL_BLOCKED(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:email,suse.com:mid];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[14];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo];
	RCVD_TLS_ALL(0.00)[]
X-purgate-ID: tlsNG-c201ff/1779808087-D877A443-962DE9F9/0/0
X-purgate-type: clean
X-purgate-size: 2996

Drop the lazy mode (cpu or mmu) from the xen_mc_batch and xen_mc_issue
trace entries.

This is done in preparation of removing the xen_lazy_mode percpu
variable.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/xen-ops.h     | 11 +++++++----
 include/trace/events/xen.h | 33 +++++++++++++++++++--------------
 2 files changed, 26 insertions(+), 18 deletions(-)

diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 6808010ac379..dc892f421f25 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -98,7 +98,7 @@ static inline void xen_mc_batch(void)
 
 	/* need to disable interrupts until this entry is complete */
 	local_irq_save(flags);
-	trace_xen_mc_batch(xen_get_lazy_mode());
+	trace_xen_mc_batch(flags);
 	__this_cpu_write(xen_mc_irq_flags, flags);
 }
 
@@ -114,13 +114,16 @@ void xen_mc_flush(void);
 /* Issue a multicall if we're not in a lazy mode */
 static inline void xen_mc_issue(unsigned mode)
 {
-	trace_xen_mc_issue(mode);
+	bool flush = !(xen_get_lazy_mode() & mode);
+	unsigned long flags = this_cpu_read(xen_mc_irq_flags);
 
-	if ((xen_get_lazy_mode() & mode) == 0)
+	trace_xen_mc_issue(flush, flags);
+
+	if (flush)
 		xen_mc_flush();
 
 	/* restore flags saved in xen_mc_batch */
-	local_irq_restore(this_cpu_read(xen_mc_irq_flags));
+	local_irq_restore(flags);
 }
 
 /* Set up a callback to be called when the current batch is flushed */
diff --git a/include/trace/events/xen.h b/include/trace/events/xen.h
index e3f139f0bc78..ad384969e2cb 100644
--- a/include/trace/events/xen.h
+++ b/include/trace/events/xen.h
@@ -12,24 +12,29 @@
 struct multicall_entry;
 
 /* Multicalls */
-DECLARE_EVENT_CLASS(xen_mc__batch,
-	    TP_PROTO(enum xen_lazy_mode mode),
-	    TP_ARGS(mode),
+TRACE_EVENT(xen_mc_batch,
+	    TP_PROTO(unsigned long flags),
+	    TP_ARGS(flags),
 	    TP_STRUCT__entry(
-		    __field(enum xen_lazy_mode, mode)
+		    __field(unsigned long, flags)
 		    ),
-	    TP_fast_assign(__entry->mode = mode),
-	    TP_printk("start batch LAZY_%s",
-		      (__entry->mode == XEN_LAZY_MMU) ? "MMU" :
-		      (__entry->mode == XEN_LAZY_CPU) ? "CPU" : "NONE")
+	    TP_fast_assign(__entry->flags = flags),
+	    TP_printk("start batch lazy flags %lx", __entry->flags)
 	);
-#define DEFINE_XEN_MC_BATCH(name)			\
-	DEFINE_EVENT(xen_mc__batch, name,		\
-		TP_PROTO(enum xen_lazy_mode mode),	\
-		     TP_ARGS(mode))
 
-DEFINE_XEN_MC_BATCH(xen_mc_batch);
-DEFINE_XEN_MC_BATCH(xen_mc_issue);
+TRACE_EVENT(xen_mc_issue,
+	    TP_PROTO(bool flush, unsigned long flags),
+	    TP_ARGS(flush, flags),
+	    TP_STRUCT__entry(
+		    __field(unsigned long, flags)
+		    __field(bool, flush)
+		    ),
+	    TP_fast_assign(__entry->flush = flush;
+			   __entry->flags = flags;
+		    ),
+	    TP_printk("flush: %s, flags %lx",
+		      __entry->flush ? "yes" : "no", __entry->flags)
+	);
 
 TRACE_DEFINE_SIZEOF(ulong);
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 15:08:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 15:08:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320022.1587446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRtOB-0007PL-MK; Tue, 26 May 2026 15:08:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320022.1587446; Tue, 26 May 2026 15:08:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRtOB-0007PE-J4; Tue, 26 May 2026 15:08:15 +0000
Received: by outflank-mailman (input) for mailman id 1320022;
 Tue, 26 May 2026 15:08:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wRtO9-0007Ne-Qk
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 15:08:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRtO9-00BHE7-6i
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 17:08:13 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a15b750-2eae-0a2a0a5409dd-0a2a4505aa02-22
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:08:13 +0200
Received: from [195.135.223.131] (helo=smtp-out2.suse.de)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a15b75c-aaa8-0a2a45050019-c387df839eee-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:08:13 +0200
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id B5B4075EA1;
 Tue, 26 May 2026 15:08:12 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 7AECC5A280;
 Tue, 26 May 2026 15:08:12 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id xZX0HFy3FWqaVQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 26 May 2026 15:08:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779808092; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=htKnackiGTLT6ra2yiyVCBoM5uojYzGpE60av2lvlE4=;
	b=PFA/dfob5jaYx8ziU/VgRy6SDe4zshqEhaFAiCgmyGJnLa9BG79cjVXHb65SY6s2PpEOb6
	ZelH9pCmaDauo7y1BTg/Wh4jQRtBNhSDp8kzKI+gHROm+cpqhCaDqubzp97my98RgEFJfP
	QRRvI7r+TZvT/QvfBIZsUjLJE/Ufimk=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779808092; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=htKnackiGTLT6ra2yiyVCBoM5uojYzGpE60av2lvlE4=;
	b=PFA/dfob5jaYx8ziU/VgRy6SDe4zshqEhaFAiCgmyGJnLa9BG79cjVXHb65SY6s2PpEOb6
	ZelH9pCmaDauo7y1BTg/Wh4jQRtBNhSDp8kzKI+gHROm+cpqhCaDqubzp97my98RgEFJfP
	QRRvI7r+TZvT/QvfBIZsUjLJE/Ufimk=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 2/5] x86/xen: Change interface of xen_mc_issue()
Date: Tue, 26 May 2026 17:05:11 +0200
Message-ID: <20260526150514.129330-3-jgross@suse.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260526150514.129330-1-jgross@suse.com>
References: <20260526150514.129330-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spam-Score: -2.79
X-Spam-Flag: NO
X-Spamd-Result: default: False [-2.79 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.19)[-0.968];
	MIME_GOOD(-0.10)[text/plain];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCPT_COUNT_SEVEN(0.00)[10];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	URIBL_BLOCKED(0.00)[suse.com:email,suse.com:mid,imap1.dmz-prg2.suse.org:helo];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo];
	RCVD_TLS_ALL(0.00)[]
X-purgate-ID: tlsNG-c201ff/1779808093-DAF6E443-1EE9DBBB/0/0
X-purgate-type: clean
X-purgate-size: 7686

Today xen_mc_issue() is deciding whether to call xen_mc_flush() or not
based on the lazy mode input parameter passed.

Modify this interface to pass a boolean indicating whether the flush
should be done.

For querying lazy mmu mode use the is_lazy_mmu_mode_active() helper.

This is done in preparation for dropping the xen_lazy_mode percpu
variable.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/enlighten_pv.c |  8 ++++----
 arch/x86/xen/mmu_pv.c       | 38 ++++++++++++++++++-------------------
 arch/x86/xen/xen-ops.h      |  3 +--
 3 files changed, 24 insertions(+), 25 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index ed2d7a3756ce..428189f5d437 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -544,7 +544,7 @@ static void xen_set_ldt(const void *addr, unsigned entries)
 
 	MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
 
-	xen_mc_issue(XEN_LAZY_CPU);
+	xen_mc_issue(xen_get_lazy_mode() != XEN_LAZY_CPU);
 }
 
 static void xen_load_gdt(const struct desc_ptr *dtr)
@@ -649,7 +649,7 @@ static void xen_load_tls(struct thread_struct *t, unsigned int cpu)
 	load_TLS_descriptor(t, cpu, 1);
 	load_TLS_descriptor(t, cpu, 2);
 
-	xen_mc_issue(XEN_LAZY_CPU);
+	xen_mc_issue(xen_get_lazy_mode() != XEN_LAZY_CPU);
 }
 
 static void xen_load_gs_index(unsigned int idx)
@@ -1011,7 +1011,7 @@ static void xen_load_sp0(unsigned long sp0)
 
 	mcs = xen_mc_entry(0);
 	MULTI_stack_switch(mcs.mc, __KERNEL_DS, sp0);
-	xen_mc_issue(XEN_LAZY_CPU);
+	xen_mc_issue(xen_get_lazy_mode() != XEN_LAZY_CPU);
 	this_cpu_write(cpu_tss_rw.x86_tss.sp0, sp0);
 }
 
@@ -1071,7 +1071,7 @@ static void xen_write_cr0(unsigned long cr0)
 
 	MULTI_fpu_taskswitch(mcs.mc, (cr0 & X86_CR0_TS) != 0);
 
-	xen_mc_issue(XEN_LAZY_CPU);
+	xen_mc_issue(xen_get_lazy_mode() != XEN_LAZY_CPU);
 }
 
 static void xen_write_cr4(unsigned long cr4)
diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index cd80406be9c6..51dbdc67c73c 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -290,7 +290,7 @@ static void xen_set_pmd_hyper(pmd_t *ptr, pmd_t val)
 	u.val = pmd_val_ma(val);
 	xen_extend_mmu_update(&u);
 
-	xen_mc_issue(XEN_LAZY_MMU);
+	xen_mc_issue(!is_lazy_mmu_mode_active());
 
 	preempt_enable();
 }
@@ -333,7 +333,7 @@ static bool xen_batched_set_pte(pte_t *ptep, pte_t pteval)
 	u.val = pte_val_ma(pteval);
 	xen_extend_mmu_update(&u);
 
-	xen_mc_issue(XEN_LAZY_MMU);
+	xen_mc_issue(!is_lazy_mmu_mode_active());
 
 	return true;
 }
@@ -380,7 +380,7 @@ static void xen_ptep_modify_prot_commit(struct vm_area_struct *vma,
 	u.val = pte_val_ma(pte);
 	xen_extend_mmu_update(&u);
 
-	xen_mc_issue(XEN_LAZY_MMU);
+	xen_mc_issue(!is_lazy_mmu_mode_active());
 }
 
 /* Assume pteval_t is equivalent to all the other *val_t types. */
@@ -474,7 +474,7 @@ static void xen_set_pud_hyper(pud_t *ptr, pud_t val)
 	u.val = pud_val_ma(val);
 	xen_extend_mmu_update(&u);
 
-	xen_mc_issue(XEN_LAZY_MMU);
+	xen_mc_issue(!is_lazy_mmu_mode_active());
 
 	preempt_enable();
 }
@@ -557,7 +557,7 @@ static void __init xen_set_p4d_hyper(p4d_t *ptr, p4d_t val)
 
 	__xen_set_p4d_hyper(ptr, val);
 
-	xen_mc_issue(XEN_LAZY_MMU);
+	xen_mc_issue(!is_lazy_mmu_mode_active());
 
 	preempt_enable();
 }
@@ -589,7 +589,7 @@ static void xen_set_p4d(p4d_t *ptr, p4d_t val)
 	if (user_ptr)
 		__xen_set_p4d_hyper((p4d_t *)user_ptr, val);
 
-	xen_mc_issue(XEN_LAZY_MMU);
+	xen_mc_issue(!is_lazy_mmu_mode_active());
 }
 
 __visible p4dval_t xen_p4d_val(p4d_t p4d)
@@ -816,7 +816,7 @@ static void __xen_pgd_pin(struct mm_struct *mm, pgd_t *pgd)
 			   PFN_DOWN(__pa(user_pgd)));
 	}
 
-	xen_mc_issue(0);
+	xen_mc_issue(true);
 }
 
 static void xen_pgd_pin(struct mm_struct *mm)
@@ -933,7 +933,7 @@ static void __xen_pgd_unpin(struct mm_struct *mm, pgd_t *pgd)
 
 	__xen_pgd_walk(mm, pgd, xen_unpin_page, USER_LIMIT);
 
-	xen_mc_issue(0);
+	xen_mc_issue(true);
 }
 
 static void xen_pgd_unpin(struct mm_struct *mm)
@@ -1309,7 +1309,7 @@ static noinline void xen_flush_tlb(void)
 	op->cmd = MMUEXT_TLB_FLUSH_LOCAL;
 	MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
 
-	xen_mc_issue(XEN_LAZY_MMU);
+	xen_mc_issue(!is_lazy_mmu_mode_active());
 
 	preempt_enable();
 }
@@ -1329,7 +1329,7 @@ static void xen_flush_tlb_one_user(unsigned long addr)
 	op->arg1.linear_addr = addr & PAGE_MASK;
 	MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
 
-	xen_mc_issue(XEN_LAZY_MMU);
+	xen_mc_issue(!is_lazy_mmu_mode_active());
 
 	preempt_enable();
 }
@@ -1366,7 +1366,7 @@ static void xen_flush_tlb_multi(const struct cpumask *cpus,
 
 	MULTI_mmuext_op(mcs.mc, &args->op, 1, NULL, DOMID_SELF);
 
-	xen_mc_issue(XEN_LAZY_MMU);
+	xen_mc_issue(!is_lazy_mmu_mode_active());
 }
 
 static unsigned long xen_read_cr3(void)
@@ -1425,7 +1425,7 @@ static void xen_write_cr3(unsigned long cr3)
 	else
 		__xen_write_cr3(false, 0);
 
-	xen_mc_issue(XEN_LAZY_CPU);  /* interrupts restored */
+	xen_mc_issue(xen_get_lazy_mode() != XEN_LAZY_CPU);  /* interrupts restored */
 }
 
 /*
@@ -1460,7 +1460,7 @@ static void __init xen_write_cr3_init(unsigned long cr3)
 
 	__xen_write_cr3(true, cr3);
 
-	xen_mc_issue(XEN_LAZY_CPU);  /* interrupts restored */
+	xen_mc_issue(xen_get_lazy_mode() != XEN_LAZY_CPU);  /* interrupts restored */
 }
 
 static int xen_pgd_alloc(struct mm_struct *mm)
@@ -1622,7 +1622,7 @@ static inline void xen_alloc_ptpage(struct mm_struct *mm, unsigned long pfn,
 		    !pinned)
 			__pin_pagetable_pfn(MMUEXT_PIN_L1_TABLE, pfn);
 
-		xen_mc_issue(XEN_LAZY_MMU);
+		xen_mc_issue(!is_lazy_mmu_mode_active());
 	}
 }
 
@@ -1652,7 +1652,7 @@ static inline void xen_release_ptpage(unsigned long pfn, unsigned level)
 
 		__set_pfn_prot(pfn, PAGE_KERNEL);
 
-		xen_mc_issue(XEN_LAZY_MMU);
+		xen_mc_issue(!is_lazy_mmu_mode_active());
 
 		ClearPagePinned(page);
 	}
@@ -1875,7 +1875,7 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
 	 */
 	xen_mc_batch();
 	__xen_write_cr3(true, __pa(init_top_pgt));
-	xen_mc_issue(XEN_LAZY_CPU);
+	xen_mc_issue(xen_get_lazy_mode() != XEN_LAZY_CPU);
 
 	/* We can't that easily rip out L3 and L2, as the Xen pagetables are
 	 * set out this way: [L4], [L1], [L2], [L3], [L1], [L1] ...  for
@@ -2266,7 +2266,7 @@ static void xen_zap_pfn_range(unsigned long vaddr, unsigned int order,
 		if (out_frames)
 			out_frames[i] = virt_to_pfn((void *)vaddr);
 	}
-	xen_mc_issue(0);
+	xen_mc_issue(true);
 }
 
 /*
@@ -2309,7 +2309,7 @@ static void xen_remap_exchanged_ptes(unsigned long vaddr, int order,
 		set_phys_to_machine(virt_to_pfn((void *)vaddr), mfn);
 	}
 
-	xen_mc_issue(0);
+	xen_mc_issue(true);
 }
 
 /*
@@ -2450,7 +2450,7 @@ static noinline void xen_flush_tlb_all(void)
 	op->cmd = MMUEXT_TLB_FLUSH_ALL;
 	MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
 
-	xen_mc_issue(XEN_LAZY_MMU);
+	xen_mc_issue(!is_lazy_mmu_mode_active());
 
 	preempt_enable();
 }
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index dc892f421f25..dc265bdda24d 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -112,9 +112,8 @@ static inline struct multicall_space xen_mc_entry(size_t args)
 void xen_mc_flush(void);
 
 /* Issue a multicall if we're not in a lazy mode */
-static inline void xen_mc_issue(unsigned mode)
+static inline void xen_mc_issue(bool flush)
 {
-	bool flush = !(xen_get_lazy_mode() & mode);
 	unsigned long flags = this_cpu_read(xen_mc_irq_flags);
 
 	trace_xen_mc_issue(flush, flags);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 15:08:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 15:08:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320025.1587455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRtOM-0007nW-4G; Tue, 26 May 2026 15:08:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320025.1587455; Tue, 26 May 2026 15:08:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRtOM-0007nP-1I; Tue, 26 May 2026 15:08:26 +0000
Received: by outflank-mailman (input) for mailman id 1320025;
 Tue, 26 May 2026 15:08:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wRtOL-0007mH-0N
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 15:08:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRtOK-004DXQ-CE
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 17:08:24 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a15b757-bab6-0a2a0a5309dd-0a2a4501d09e-36
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:08:24 +0200
Received: from [195.135.223.131] (helo=smtp-out2.suse.de)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a15b768-c1f2-0a2a45010019-c387df83c00c-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:08:24 +0200
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id E471B75EA3;
 Tue, 26 May 2026 15:08:23 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 974155A27D;
 Tue, 26 May 2026 15:08:23 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id z97RI2e3FWqqVQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 26 May 2026 15:08:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779808104; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=yR9KBKqLhdL4TaLLpf7zLaGBy80B1vMaPGZJkdtW870=;
	b=a88ZLq0n4eFHQXBU9atAHBhQVYJrMA0/zfysFwKMWr1VF6Y+YNozmaTK5hGfJlp6CfC/i+
	MqyZwloTt6lGEbbZbLIV7Amrq7zm984jW+0H4Vm/rAdF4x8LhRpr0vOfg8YC69VC3ZXC3F
	62E3QjH3pFj+396aoMqY1FFUTKKVz/M=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779808103; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=yR9KBKqLhdL4TaLLpf7zLaGBy80B1vMaPGZJkdtW870=;
	b=mOta7BZDekc5rViscFO2is8xDKTfVybUW8145uGk9BhyHejpNnUJ1v2hZewdHD4PiQrWGr
	HzQcYLHvZvJ6pSmW1zJLMLBcGjD5OhoSdrQYQBmVClmtpoXhJpvAfYw8K3jmdGGk4D6ilC
	WYdt36liqhak0Xz/9Oqc4Sj0N71bPQQ=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	virtualization@lists.linux.dev
Cc: Juergen Gross <jgross@suse.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 4/5] x86/xen: Get rid of last XEN_LAZY_MMU uses
Date: Tue, 26 May 2026 17:05:13 +0200
Message-ID: <20260526150514.129330-5-jgross@suse.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260526150514.129330-1-jgross@suse.com>
References: <20260526150514.129330-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
X-Spam-Score: -2.79
X-Spam-Level: 
X-Spamd-Result: default: False [-2.79 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.19)[-0.967];
	MIME_GOOD(-0.10)[text/plain];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[14];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	URIBL_BLOCKED(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:email,suse.com:mid];
	R_RATELIMIT(0.00)[to_ip_from(RLfdszjqhz8kzzb9uwpzdm8png)];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCVD_TLS_ALL(0.00)[]
X-purgate-ID: tlsNG-d62444/1779808104-ACE52FF4-CE30CEA7/0/0
X-purgate-type: clean
X-purgate-size: 5953

There are only very few use cases of XEN_LAZY_MMU left. Get rid of
them in order to avoid having to call enter_lazy(XEN_LAZY_MMU) and
leave_lazy(XEN_LAZY_MMU).

The query in xen_batched_set_pte() can be replaced by using
is_lazy_mmu_mode_active() instead.

As xen_flush_lazy_mmu() will be called only with lazy MMU mode being
active, the test for the lazy mode can just be dropped.

In xen_start_context_switch() and xen_end_context_switch() use
__task_lazy_mmu_mode_pause() and __task_lazy_mmu_mode_resume(),
allowing to drop xen_enter_lazy_mmu() and xen_leave_lazy_mmu()
completely.

Call arch_flush_lazy_mmu_mode() from arch_leave_lazy_mmu_mode(), as
this is the only required action now.

Drop the lazy mmu enter and leave paravirt hooks, leaving the flush
hook as the only needed one.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/include/asm/paravirt.h       |  9 ++++-----
 arch/x86/include/asm/paravirt_types.h | 11 +----------
 arch/x86/kernel/paravirt.c            |  6 +-----
 arch/x86/xen/enlighten_pv.c           |  7 ++-----
 arch/x86/xen/mmu_pv.c                 | 28 +++------------------------
 5 files changed, 11 insertions(+), 50 deletions(-)

diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index cdfe4007443e..0591aa38fd85 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -483,17 +483,16 @@ static inline void arch_end_context_switch(struct task_struct *next)
 
 static inline void arch_enter_lazy_mmu_mode(void)
 {
-	PVOP_VCALL0(pv_ops, mmu.lazy_mode.enter);
 }
 
-static inline void arch_leave_lazy_mmu_mode(void)
+static inline void arch_flush_lazy_mmu_mode(void)
 {
-	PVOP_VCALL0(pv_ops, mmu.lazy_mode.leave);
+	PVOP_VCALL0(pv_ops, mmu.lazy_mode_flush);
 }
 
-static inline void arch_flush_lazy_mmu_mode(void)
+static inline void arch_leave_lazy_mmu_mode(void)
 {
-	PVOP_VCALL0(pv_ops, mmu.lazy_mode.flush);
+	arch_flush_lazy_mmu_mode();
 }
 
 static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx,
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index 4f5ae0068aab..b4c4a23e77a1 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -19,15 +19,6 @@ struct cpumask;
 struct flush_tlb_info;
 struct vm_area_struct;
 
-#ifdef CONFIG_PARAVIRT_XXL
-struct pv_lazy_ops {
-	/* Set deferred update mode, used for batching operations. */
-	void (*enter)(void);
-	void (*leave)(void);
-	void (*flush)(void);
-} __no_randomize_layout;
-#endif
-
 struct pv_cpu_ops {
 	/* hooks for various privileged instructions */
 #ifdef CONFIG_PARAVIRT_XXL
@@ -171,7 +162,7 @@ struct pv_mmu_ops {
 
 	void (*set_pgd)(pgd_t *pgdp, pgd_t pgdval);
 
-	struct pv_lazy_ops lazy_mode;
+	void (*lazy_mode_flush)(void);
 
 	/* dom0 ops */
 
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index 792fa96b3233..22f72034470f 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -204,11 +204,7 @@ struct paravirt_patch_template pv_ops = {
 
 	.mmu.enter_mmap		= paravirt_nop,
 
-	.mmu.lazy_mode = {
-		.enter		= paravirt_nop,
-		.leave		= paravirt_nop,
-		.flush		= paravirt_nop,
-	},
+	.mmu.lazy_mode_flush	= paravirt_nop,
 
 	.mmu.set_fixmap		= native_set_fixmap,
 #endif /* CONFIG_PARAVIRT_XXL */
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 428189f5d437..8ee4910d597a 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -424,9 +424,7 @@ static void xen_start_context_switch(struct task_struct *prev)
 {
 	BUG_ON(preemptible());
 
-	if (this_cpu_read(xen_lazy_mode) == XEN_LAZY_MMU) {
-		arch_leave_lazy_mmu_mode();
-	}
+	__task_lazy_mmu_mode_pause(prev);
 	enter_lazy(XEN_LAZY_CPU);
 }
 
@@ -436,8 +434,7 @@ static void xen_end_context_switch(struct task_struct *next)
 
 	xen_mc_flush();
 	leave_lazy(XEN_LAZY_CPU);
-	if (__task_lazy_mmu_mode_active(next))
-		arch_enter_lazy_mmu_mode();
+	__task_lazy_mmu_mode_resume(next);
 }
 
 static unsigned long xen_store_tr(void)
diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index 51dbdc67c73c..928b4b0a4484 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -324,7 +324,7 @@ static bool xen_batched_set_pte(pte_t *ptep, pte_t pteval)
 {
 	struct mmu_update u;
 
-	if (xen_get_lazy_mode() != XEN_LAZY_MMU)
+	if (!is_lazy_mmu_mode_active())
 		return false;
 
 	xen_mc_batch();
@@ -2151,21 +2151,10 @@ static void xen_set_fixmap(unsigned idx, phys_addr_t phys, pgprot_t prot)
 #endif
 }
 
-static void xen_enter_lazy_mmu(void)
-{
-	preempt_disable();
-	if (xen_get_lazy_mode() != XEN_LAZY_MMU)
-		enter_lazy(XEN_LAZY_MMU);
-	preempt_enable();
-}
-
 static void xen_flush_lazy_mmu(void)
 {
 	preempt_disable();
-
-	if (xen_get_lazy_mode() == XEN_LAZY_MMU)
-		xen_mc_flush();
-
+	xen_mc_flush();
 	preempt_enable();
 }
 
@@ -2189,15 +2178,6 @@ static void __init xen_post_allocator_init(void)
 	pv_ops.mmu.write_cr3 = &xen_write_cr3;
 }
 
-static void xen_leave_lazy_mmu(void)
-{
-	preempt_disable();
-	xen_mc_flush();
-	if (xen_get_lazy_mode() != XEN_LAZY_NONE)
-		leave_lazy(XEN_LAZY_MMU);
-	preempt_enable();
-}
-
 void __init xen_init_mmu_ops(void)
 {
 	x86_init.paging.pagetable_init = xen_pagetable_init;
@@ -2237,9 +2217,7 @@ void __init xen_init_mmu_ops(void)
 	pv_ops.mmu.make_p4d = PV_CALLEE_SAVE(xen_make_p4d);
 	pv_ops.mmu.enter_mmap = xen_enter_mmap;
 	pv_ops.mmu.exit_mmap = xen_exit_mmap;
-	pv_ops.mmu.lazy_mode.enter = xen_enter_lazy_mmu;
-	pv_ops.mmu.lazy_mode.leave = xen_leave_lazy_mmu;
-	pv_ops.mmu.lazy_mode.flush = xen_flush_lazy_mmu;
+	pv_ops.mmu.lazy_mode_flush = xen_flush_lazy_mmu;
 	pv_ops.mmu.set_fixmap = xen_set_fixmap;
 
 	memset(dummy_mapping, 0xff, PAGE_SIZE);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 15:08:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 15:08:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320030.1587464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRtOR-0008CW-Cl; Tue, 26 May 2026 15:08:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320030.1587464; Tue, 26 May 2026 15:08:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRtOR-0008CP-9H; Tue, 26 May 2026 15:08:31 +0000
Received: by outflank-mailman (input) for mailman id 1320030;
 Tue, 26 May 2026 15:08:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wRtOQ-000883-HH
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 15:08:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRtOP-004Daz-SX
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 17:08:29 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a15b76a-bab6-0a2a0a5309dd-0a2a450b967c-8
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:08:29 +0200
Received: from [195.135.223.130] (helo=smtp-out1.suse.de)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a15b76d-212f-0a2a450b0019-c387df82af78-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:08:29 +0200
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 76EF06B4EB;
 Tue, 26 May 2026 15:08:29 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 3AF225A27D;
 Tue, 26 May 2026 15:08:29 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id k7hNDW23FWrFVQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 26 May 2026 15:08:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779808109; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Pt9GbUbcaD67j5AZ7mMspgj0EXB/Dgj0oV0yVnH+lpQ=;
	b=Lv6+OtYc0uGqB6j7HELQQ0r2+99m0fxwA2+9PL5fCUZqn2aws3QbxX8kYNiGxCXKxZdHSa
	Vz5ppkYQAfprJooaY8qKaRVQ/qVbD7rLZf7Dta2MmPw7dhfrKCHbVq56GzzQtf2dHjSXG5
	5ruzN89C6u4FfTYP848Hc6TIvu9lVDE=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=Lv6+OtYc
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1779808109; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Pt9GbUbcaD67j5AZ7mMspgj0EXB/Dgj0oV0yVnH+lpQ=;
	b=Lv6+OtYc0uGqB6j7HELQQ0r2+99m0fxwA2+9PL5fCUZqn2aws3QbxX8kYNiGxCXKxZdHSa
	Vz5ppkYQAfprJooaY8qKaRVQ/qVbD7rLZf7Dta2MmPw7dhfrKCHbVq56GzzQtf2dHjSXG5
	5ruzN89C6u4FfTYP848Hc6TIvu9lVDE=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 5/5] x86/xen: Replace generic lazy tracking with cpu specific one
Date: Tue, 26 May 2026 17:05:14 +0200
Message-ID: <20260526150514.129330-6-jgross@suse.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260526150514.129330-1-jgross@suse.com>
References: <20260526150514.129330-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Rspamd-Queue-Id: 76EF06B4EB
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-0.999];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	ARC_NA(0.00)[];
	URIBL_BLOCKED(0.00)[suse.com:dkim,suse.com:email,suse.com:mid,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCPT_COUNT_SEVEN(0.00)[10];
	DWL_DNSWL_BLOCKED(0.00)[suse.com:dkim];
	R_RATELIMIT(0.00)[to_ip_from(RLkdkdrsxe9hqhhs5ask8616i6)];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]
X-purgate-ID: tlsNG-42698a/1779808109-18D67F3B-3DFB2A6C/0/0
X-purgate-type: clean
X-purgate-size: 5501

Now that lazy mmu state tracking no longer relies on the Xen specific
one, cpu lazy mode is the only user of the Xen generic lazy tracking.

Replace the Xen generic lazy tracking with a cpu lazy specific one.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/include/asm/xen/hypervisor.h | 25 +------------------------
 arch/x86/xen/enlighten_pv.c           | 23 ++++++++++-------------
 arch/x86/xen/mmu_pv.c                 |  6 +++---
 3 files changed, 14 insertions(+), 40 deletions(-)

diff --git a/arch/x86/include/asm/xen/hypervisor.h b/arch/x86/include/asm/xen/hypervisor.h
index c2fc7869b996..f666637d773e 100644
--- a/arch/x86/include/asm/xen/hypervisor.h
+++ b/arch/x86/include/asm/xen/hypervisor.h
@@ -64,30 +64,7 @@ void __init xen_pvh_init(struct boot_params *boot_params);
 void __init mem_map_via_hcall(struct boot_params *boot_params_p);
 #endif
 
-/* Lazy mode for batching updates / context switch */
-enum xen_lazy_mode {
-	XEN_LAZY_NONE,
-	XEN_LAZY_MMU,
-	XEN_LAZY_CPU,
-};
-
-DECLARE_PER_CPU(enum xen_lazy_mode, xen_lazy_mode);
-
-static inline void enter_lazy(enum xen_lazy_mode mode)
-{
-	BUG_ON(this_cpu_read(xen_lazy_mode) != XEN_LAZY_NONE);
-
-	this_cpu_write(xen_lazy_mode, mode);
-}
-
-static inline void leave_lazy(enum xen_lazy_mode mode)
-{
-	BUG_ON(this_cpu_read(xen_lazy_mode) != mode);
-
-	this_cpu_write(xen_lazy_mode, XEN_LAZY_NONE);
-}
-
-enum xen_lazy_mode xen_get_lazy_mode(void);
+bool xen_is_cpu_lazy_mode(void);
 
 #if defined(CONFIG_XEN_DOM0) && defined(CONFIG_ACPI)
 void xen_sanitize_proc_cap_bits(uint32_t *buf);
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 8ee4910d597a..b310b91f2994 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -138,14 +138,11 @@ struct tls_descs {
 	struct desc_struct desc[3];
 };
 
-DEFINE_PER_CPU(enum xen_lazy_mode, xen_lazy_mode) = XEN_LAZY_NONE;
+static DEFINE_PER_CPU(bool, xen_cpu_lazy_mode);
 
-enum xen_lazy_mode xen_get_lazy_mode(void)
+bool xen_is_cpu_lazy_mode(void)
 {
-	if (in_interrupt())
-		return XEN_LAZY_NONE;
-
-	return this_cpu_read(xen_lazy_mode);
+	return !in_interrupt() && this_cpu_read(xen_cpu_lazy_mode);
 }
 
 /*
@@ -425,7 +422,7 @@ static void xen_start_context_switch(struct task_struct *prev)
 	BUG_ON(preemptible());
 
 	__task_lazy_mmu_mode_pause(prev);
-	enter_lazy(XEN_LAZY_CPU);
+	this_cpu_write(xen_cpu_lazy_mode, true);
 }
 
 static void xen_end_context_switch(struct task_struct *next)
@@ -433,7 +430,7 @@ static void xen_end_context_switch(struct task_struct *next)
 	BUG_ON(preemptible());
 
 	xen_mc_flush();
-	leave_lazy(XEN_LAZY_CPU);
+	this_cpu_write(xen_cpu_lazy_mode, false);
 	__task_lazy_mmu_mode_resume(next);
 }
 
@@ -541,7 +538,7 @@ static void xen_set_ldt(const void *addr, unsigned entries)
 
 	MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
 
-	xen_mc_issue(xen_get_lazy_mode() != XEN_LAZY_CPU);
+	xen_mc_issue(!xen_is_cpu_lazy_mode());
 }
 
 static void xen_load_gdt(const struct desc_ptr *dtr)
@@ -637,7 +634,7 @@ static void xen_load_tls(struct thread_struct *t, unsigned int cpu)
 	 * exception between the new %fs descriptor being loaded and
 	 * %fs being effectively cleared at __switch_to().
 	 */
-	if (xen_get_lazy_mode() == XEN_LAZY_CPU)
+	if (xen_is_cpu_lazy_mode())
 		loadsegment(fs, 0);
 
 	xen_mc_batch();
@@ -646,7 +643,7 @@ static void xen_load_tls(struct thread_struct *t, unsigned int cpu)
 	load_TLS_descriptor(t, cpu, 1);
 	load_TLS_descriptor(t, cpu, 2);
 
-	xen_mc_issue(xen_get_lazy_mode() != XEN_LAZY_CPU);
+	xen_mc_issue(!xen_is_cpu_lazy_mode());
 }
 
 static void xen_load_gs_index(unsigned int idx)
@@ -1008,7 +1005,7 @@ static void xen_load_sp0(unsigned long sp0)
 
 	mcs = xen_mc_entry(0);
 	MULTI_stack_switch(mcs.mc, __KERNEL_DS, sp0);
-	xen_mc_issue(xen_get_lazy_mode() != XEN_LAZY_CPU);
+	xen_mc_issue(!xen_is_cpu_lazy_mode());
 	this_cpu_write(cpu_tss_rw.x86_tss.sp0, sp0);
 }
 
@@ -1068,7 +1065,7 @@ static void xen_write_cr0(unsigned long cr0)
 
 	MULTI_fpu_taskswitch(mcs.mc, (cr0 & X86_CR0_TS) != 0);
 
-	xen_mc_issue(xen_get_lazy_mode() != XEN_LAZY_CPU);
+	xen_mc_issue(!xen_is_cpu_lazy_mode());
 }
 
 static void xen_write_cr4(unsigned long cr4)
diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index 928b4b0a4484..aab5f70d407c 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -1425,7 +1425,7 @@ static void xen_write_cr3(unsigned long cr3)
 	else
 		__xen_write_cr3(false, 0);
 
-	xen_mc_issue(xen_get_lazy_mode() != XEN_LAZY_CPU);  /* interrupts restored */
+	xen_mc_issue(!xen_is_cpu_lazy_mode());  /* interrupts restored */
 }
 
 /*
@@ -1460,7 +1460,7 @@ static void __init xen_write_cr3_init(unsigned long cr3)
 
 	__xen_write_cr3(true, cr3);
 
-	xen_mc_issue(xen_get_lazy_mode() != XEN_LAZY_CPU);  /* interrupts restored */
+	xen_mc_issue(!xen_is_cpu_lazy_mode());  /* interrupts restored */
 }
 
 static int xen_pgd_alloc(struct mm_struct *mm)
@@ -1875,7 +1875,7 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
 	 */
 	xen_mc_batch();
 	__xen_write_cr3(true, __pa(init_top_pgt));
-	xen_mc_issue(xen_get_lazy_mode() != XEN_LAZY_CPU);
+	xen_mc_issue(!xen_is_cpu_lazy_mode());
 
 	/* We can't that easily rip out L3 and L2, as the Xen pagetables are
 	 * set out this way: [L4], [L1], [L2], [L3], [L1], [L1] ...  for
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 15:11:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 15:11:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320053.1587473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRtR9-0001w8-Rw; Tue, 26 May 2026 15:11:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320053.1587473; Tue, 26 May 2026 15:11:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRtR9-0001w1-Od; Tue, 26 May 2026 15:11:19 +0000
Received: by outflank-mailman (input) for mailman id 1320053;
 Tue, 26 May 2026 15:11:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wRtR8-0001va-0V
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 15:11:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRtR7-00BI5q-C4
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 17:11:17 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a15b809-bab6-0a2a0a5309dd-0a2a450c845a-32
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:11:17 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a15b814-62f1-0a2a450c0019-d561b338e9fc-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:11:17 +0200
Received: from maestria.local.igalia.com ([192.168.10.14] helo=mail.igalia.com)
 by fanzine2.igalia.com with esmtps 
 (Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wRtQq-008ULx-0d; Tue, 26 May 2026 17:11:00 +0200
Received: from webmail.service.igalia.com ([192.168.21.45])
 by mail.igalia.com with esmtp (Exim)
 id 1wRtQn-00FQhw-Gh; Tue, 26 May 2026 17:10:59 +0200
Received: from localhost ([127.0.0.1] helo=webmail.igalia.com)
 by webmail.service.igalia.com with esmtp (Exim 4.98.2)
 (envelope-from <mfo@igalia.com>) id 1wRtQm-00000004KKo-3QFA;
 Tue, 26 May 2026 17:10:57 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Content-Transfer-Encoding:Content-Type:Message-ID:References:In-Reply-To:Subject:Cc:To:From:Date:MIME-Version"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Content-Transfer-Encoding:Content-Type:Message-ID:References:
	In-Reply-To:Subject:Cc:To:From:Date:MIME-Version:Sender:Reply-To:Content-ID:
	Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
	:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
	List-Post:List-Owner:List-Archive;
	bh=dgXPzZks042vDCPxwi/FYcjpoAOOgxJVnLQfvZEDcwU=; b=nuduw5SXvbcCXV/Mvx9DeIwsQn
	GC+6hx3vjvtfn5o8Q3q84RnCOk7HXuPFHnIxF4OESlsBxH3xwy3wfpjXjtCQKXuBG5WJVSZd0zwM2
	wZJS/eXXUpvA8r2GppxKCQFP95UlHH7TETC3L+BtvunYCFUXpRJKelEq0uA4AJM5NPz3sd4X5bHgw
	x7cEydk9sMcA5WlGuvo/nIv3PcR1jKUaHeXLhtkcDXhsrDeR60OO9LaSFU54nipgHQ83tYyvyw/rG
	hSvka5eQpPYrJ/rsxTmuBJjZnHooMuG1Hy82Poa2D3d+PLOHsHhu9okwSeT4+s/28VI0YDe0k9cbQ
	8Nayt9ug==;
MIME-Version: 1.0
Date: Tue, 26 May 2026 12:10:57 -0300
From: Mauricio Faria de Oliveira <mfo@igalia.com>
To: Juergen Gross <jgross@suse.com>
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, Alexey Dobriyan
 <adobriyan@gmail.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 kernel-dev@igalia.com, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, kernel test robot <lkp@intel.com>
Subject: Re: [PATCH v3 1/4] x86/asm: move inline string functions to
 <asm/string_inline.h>
In-Reply-To: <c47a38fb-9945-4d0f-8d19-bd455c591245@suse.com>
References: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
 <20260520-pvh-kasan-inline-v3-1-bede769c6ec7@igalia.com>
 <c47a38fb-9945-4d0f-8d19-bd455c591245@suse.com>
Message-ID: <aba22765c480013447670ac37f016543@igalia.com>
X-Sender: mfo@igalia.com
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-Spam-Report: NO, Score=-3.8, Tests=ALL_TRUSTED=-3,AWL=-1.612,BAYES_50=0.8,URIBL_BLOCKED=0.001,URIBL_ZEN_BLOCKED_OPENDNS=0.001
X-Spam-Score: -37
X-Spam-Bar: ---
X-purgate-ID: tlsNG-d25034/1779808277-DA577CF5-85A19095/0/0
X-purgate-type: clean
X-purgate-size: 3487

Thanks for reviewing.

On 2026-05-26 06:51, Juergen Gross wrote:
> On 20.05.26 23:12, Mauricio Faria de Oliveira wrote:
>> In next patch, inline string functions are included from 'boot/string.c'.
> 
> Please don't use "In next patch". You can't be sure the patches of a
> series are going to be committed all together.
> 
> A better alternative wording would be "In a future patch".

Ack; replaced.

> 
>> Using the header <asm/string.h> is problematic for a couple of reasons (*)
>> (i.e., build errors), which can be addressed, but introduce unnecessary
>> complexity and regression risk (beyond these _found_ couple of reasons).
>> 
>> Using a new header <asm/string_inline.h> is simpler and transparent to
>> existing users of <asm/string.h>, with less changes to 'boot/string.c'
>> and its users (eg 'boot/compressed/string.c' and 'purgatory/purgatory.ro'),
>> which minimize regression risk.
>> 
>> No functional change intended.
>> 
> 
> I'd rather put the footnote below after the "---" line, as it is more
> interesting for the reviewer than the consumer of "git log" or "git show".
> 
> Note that others might disagree, though.

Good point; indeed, that is review material. I'll change it for now.

>> (*) Reasons not to include <asm/string.h> in 'boot/string.c':
>> 
>> 1) 'boot/string.c' is built for 16-bit/real mode thus some type and word
>> size errors happen when <asm/string.h> include, e.g., <asm/string_64.h>.
>> 
>> This can be addressed with '#ifndef _SETUP' (defined by 'boot/Makefile').
>> 
>> 2) 'boot/string.c' is included by 'boot/compressed/string.c' which is
>> the source of 'purgatory/string.o', linked by 'purgatory/purgatory.ro'
>> (CONFIG_KEXEC_FILE).
>> 
>> In 64BIT, <asm/string.h> includes <asm/string_64.h>, which references
>> __memset() and __memmove() with KCFI_REFERENCE(), ie, __ADDRESSABLE();
>> however, 'purgatory/purgatory.ro' is not linked with implementations.
>> 
>> So, CONFIG_KEXEC_FILE and CONFIG_CFI without CONFIG_KASAN hit errors:
>> 
>>    >> ld.lld: error: undefined symbol: __memset
>>       >>> referenced by string.c
>>       >>>               arch/x86/purgatory/purgatory.ro:\
>>                         (__UNIQUE_ID_addressable___memset_0)
>>    --
>>    >> ld.lld: error: undefined symbol: __memmove
>>       >>> referenced by string.c
>>       >>>               arch/x86/purgatory/purgatory.ro:\
>>                         (__UNIQUE_ID_addressable___memmove_1)
>> 
>> (Note: this is not hit with CONFIG_KASAN because 'boot/compressed/string.c'
>> adds aliases __memset()/__memmove() to memset()/memmove() in that case.)
>> 
>> This can be addressed with 'CFLAGS_string.o := -D__DISABLE_EXPORTS' so to
>> disable KCFI_REFERENCE() in 'purgatory/Makefile' (it removes CC_FLAGS_CFI
>> anyway).
>> 
>> ...
>> 
>> However, since a change in this series would need more changes to address
>> errors it causes, it is reasonable to change the series not to cause them,
>> by using a separate header with _just_ inline string functions.
>> 
>> Reported-by: kernel test robot <lkp@intel.com>
>> Closes: https://lore.kernel.org/oe-kbuild-all/202605140922.q7IlUv7o-lkp@intel.com/
>> Signed-off-by: Mauricio Faria de Oliveira <mfo@igalia.com>
> 
> With (at least) my first remark addressed:
> 
> Reviewed-by: Juergen Gross <jgross@suse.com>

Sent v4 with both remarks above addressed and your new R-b tags; thanks!

> 
> 
> Juergen

-- 
Mauricio


From xen-devel-bounces@lists.xenproject.org Tue May 26 15:12:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 15:12:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320066.1587483 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRtS0-0002TM-82; Tue, 26 May 2026 15:12:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320066.1587483; Tue, 26 May 2026 15:12:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRtS0-0002TF-3T; Tue, 26 May 2026 15:12:12 +0000
Received: by outflank-mailman (input) for mailman id 1320066;
 Tue, 26 May 2026 15:12:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wRtRy-0002S7-RJ
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 15:12:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRtRy-00A0OZ-7H
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 17:12:10 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a15b847-e002-0a2a0a5209dd-0a2a4504c9bc-16
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:12:10 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a15b849-1dec-0a2a45040019-d561b33888b8-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:12:09 +0200
Received: from maestria.local.igalia.com ([192.168.10.14] helo=mail.igalia.com)
 by fanzine2.igalia.com with esmtps 
 (Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wRtRh-008UNN-MM; Tue, 26 May 2026 17:11:53 +0200
Received: from webmail.service.igalia.com ([192.168.21.45])
 by mail.igalia.com with esmtp (Exim)
 id 1wRtRf-00FQmb-B1; Tue, 26 May 2026 17:11:53 +0200
Received: from localhost ([127.0.0.1] helo=webmail.igalia.com)
 by webmail.service.igalia.com with esmtp (Exim 4.98.2)
 (envelope-from <mfo@igalia.com>) id 1wRtRe-00000004KLe-2i9p;
 Tue, 26 May 2026 17:11:51 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Content-Transfer-Encoding:Content-Type:Message-ID:References:In-Reply-To:Subject:Cc:To:From:Date:MIME-Version"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Content-Transfer-Encoding:Content-Type:Message-ID:References:
	In-Reply-To:Subject:Cc:To:From:Date:MIME-Version:Sender:Reply-To:Content-ID:
	Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
	:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
	List-Post:List-Owner:List-Archive;
	bh=0BWum9obbunJlIGEK9AK0P3Vams8wVw+0uJG1CW4axE=; b=IEqjwPkWTHJKmf7uD3D3U7Fd18
	qwdhTy9hULK9YPuqBXSlWQzvwILRx3wlgnWyJ86bNdn6axV3AyFZYTwpTDwriN32vJVAY+mitV70t
	rQ800zmJMIbAplHOOzHixQKaZE7JmGPQeMaRkIiaCE2DOQMURA6Qt5D5B89SHyvUtAySk4J44S1mu
	35o9vjtNpMi63jdO8CYqEWcGQqoNb0kVyzNadi2fPYSP/NrW6Zs/ibwrFr5H2yBk0B4B/14//XKp/
	28Ix1nHNfRga0b83uvocglwwS5M4nZERbyfk4O7By4TN6UuQcfYf6MHgPVpGJptiykEJYGhjNCYZO
	93RYMYEg==;
MIME-Version: 1.0
Date: Tue, 26 May 2026 12:11:51 -0300
From: Mauricio Faria de Oliveira <mfo@igalia.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, Juergen Gross
 <jgross@suse.com>, Alexey Dobriyan <adobriyan@gmail.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>
Cc: kernel-dev@igalia.com, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, kernel test robot <lkp@intel.com>
Subject: Re: [PATCH v3 0/4] x86/pvh: fix unbootable VMs again (PVH + KASAN)
In-Reply-To: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
References: <20260520-pvh-kasan-inline-v3-0-bede769c6ec7@igalia.com>
Message-ID: <5f01a2d0bf030641579720383b732bfb@igalia.com>
X-Sender: mfo@igalia.com
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-Spam-Report: NO, Score=-3.9, Tests=ALL_TRUSTED=-3,AWL=-1.668,BAYES_50=0.8
X-Spam-Score: -38
X-Spam-Bar: ---
X-purgate-ID: tlsNG-ebf023/1779808330-29F7D3FF-2FA2DE42/0/0
X-purgate-type: clean
X-purgate-size: 402

On 2026-05-20 18:12, Mauricio Faria de Oliveira wrote:
> The issue of unbootable VMs with CONFIG_PVH due to CONFIG_KASAN is back.
> 
> Booting directly from vmlinux (instead of bzImage) now fails with gcc-14/15
> (but works with gcc-12/13) if CONFIG_KASAN_GENERIC is set, on Ubuntu 25.10.

v4:
https://lore.kernel.org/all/20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com

-- 
Mauricio


From xen-devel-bounces@lists.xenproject.org Tue May 26 16:09:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 16:09:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320092.1587491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRuLE-0001VE-6c; Tue, 26 May 2026 16:09:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320092.1587491; Tue, 26 May 2026 16:09:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRuLE-0001V7-2k; Tue, 26 May 2026 16:09:16 +0000
Received: by outflank-mailman (input) for mailman id 1320092;
 Tue, 26 May 2026 16:09:13 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wRuLB-0001Uy-Nq
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 16:09:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRuLA-001cZm-MO
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 18:09:12 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a15c598-2eae-0a2a0a5409dd-0a2a45049c90-22
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 18:09:12 +0200
Received: from [40.93.194.42]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a15c5a6-1dec-0a2a45040019-285dc22a6991-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 18:09:12 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS7PR03MB5559.namprd03.prod.outlook.com (2603:10b6:5:2ce::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Tue, 26 May
 2026 16:09:09 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.21.0071.011; Tue, 26 May 2026
 16:09:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SQ3rGhPyxm1G4l1/7OSR4DKjLLblEL0b2VT8YG2zC+igvLRmLFyJAp8bE1SoFNzLxjisMGTISDUnLycFJReoEfYCafe1+l2/Y4kvxWTqlKPuqkdQPaUGXKTa5Hh3THA3gK3PQ6RkH01mIaJdn5JYJphZGHSJ3BmWb0lCFBl9ZQZNVWHUhGulAEamCbiBv7O9x3vBwdw7avsNpbRw2lgcrngQIS5EDHKKkpoQp3epHbTc+fWp8vBkt3+g18BuIGAnPIWctQ35n0MT/kl/oxh7uAyl2SI6Fz2j6BXHJpC2ZlORDwDfA1A8J/1kuln//3LHLZH4PXLZYIvhX7QGoznXWQ==
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=sInLTc/aPgwpmJZvcgdHUtVMRmmNxORdCc4jyIkWjM4=;
 b=KGPI4mInQELNDjC1isKlhsOzFFp8JOA3/qW040jcbVDfO8yvPo9utwVXGtfH7c4wFMe1SMhGkF/V4jQZNl8Npttefjj+BKgZsmBZkEMFvyPjCDh2fGWWBbkEwEYUlgdmDthr711kFTFONQOuWS5EbzpNeA658rSpLrvEuM7CIXWbfEsddwbWjsRjlnzb2LkY0tWfCHtWSZWPhFSn/5cCeUizEsaNwun4IqsROQBen/n+Br9ZaX4MObkH6zTHr9IaEQfIr8oHw9xLsGZdy+RXkyKJNIdl+IngUu9sa1/vIb3YuW7VOdlAw2XMHVYr0Turbz9iXDyGC4lZ0xQpBbgCKA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sInLTc/aPgwpmJZvcgdHUtVMRmmNxORdCc4jyIkWjM4=;
 b=LsZK2hsRBeH8DYy/s/VbwMwUkhnqaOLiw13hFN4L/SucFd7ejOYP/hDSlsy3NhlQQNOCFd/4vsqXqfX/TjM4n+uP238EG1346VHKfh/B7MUJSbZOhEkfUgYZfbSoNfu9gj1waehrDh8LKO2FafeYiiEjmwzD8yxbzxTOCayPegA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 26 May 2026 18:09:05 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Cody Zuschlag <cody.zuschlag@gmail.com>
Cc: Jan Beulich <jbeulich@suse.com>, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, michal.orzel@amd.com, julien@xen.org,
	sstabellini@kernel.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] docs/process: document AI-assisted patch tags
Message-ID: <ahXFodLdshZozUCD@macbook.local>
References: <20260519142011.30276-2-cody.zuschlag@gmail.com>
 <3e2ad5b9-ef65-41fd-87bf-823b98fa0c3d@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3e2ad5b9-ef65-41fd-87bf-823b98fa0c3d@suse.com>
X-ClientProxiedBy: MR1P264CA0104.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:50::27) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB5559:EE_
X-MS-Office365-Filtering-Correlation-Id: 92588519-af19-4882-a55e-08debb411e31
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|20052099010|3023799007|4143699003|5023799004|11063799006|6133799003|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	LpZ8w70ct98ChkP5dINWyacPj1B3i/xdt8/rdF5XGoOGVkW6X8re7MUl7jXrSjeYm8OihShXkiSBB4HTt2ZlI12AGaLe1+M/EiKqwOvOYRp994aMz9HCeKOE37U7kvH61bJoAWhEFgj0djvYrxgirVVBHuNCBx/TYJjKn8fzaS+28srzbNdY3iMqu13H67xfa2suVl1FJs/pH/B25INXFrMfkqfoaF67xUe4tUrUxCzr5z+0eTpdIV2DmMPEBuseKSSfMEK0kMTJDP+/Pfqrz/OBeclRqB+aBEKX4HHgfSiSTd4yav1G2QRydvUH8mx3JSz0aMDlkwFRvV1zGQedyLLICaO/o822tm9Ps5rHi9q0CPZXKVj/5MaHskIyswVtwUoxS42AUSmb++jxCjAH5UAREewRRcR9LWFM7V6u1CXu0pT3qCUv3W8aY82vABsU0hGLrf3TNyT1A4GTqn/rFQrhFmEs3lv+gGDtMGGknyhEDpt3RusnweY1lW23PtJnoADC78FhyJw7s4WRM5hzcR7dpgknmgG9lXlsHe21h2/jla+VbMCUNFkHfCxifNs/IHOxrRauC4TdQp7RLxLQct0aBa6s6I5xYPdiMoUTvnRPl82tRSx/wl/LwPTN+eZwhKDynbJ0atbDaiXLy16jtnIVAUc9lLQA+E6XOjq9kl/LlceSOwOjEq4iw4MU63ju
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(20052099010)(3023799007)(4143699003)(5023799004)(11063799006)(6133799003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bUZYT2txbVNaRUMzdi96QmJBSlBkZ3dyaVBvM0ZVQnJDVzRNdkRrUjFOWURL?=
 =?utf-8?B?Tk44MStTeVRUOHgwT1JocnQ5M3R4b1h5Tm9QTjBWak5QUWFVb2h3MTN2Q0dm?=
 =?utf-8?B?Vmg5QWtwMEpqN2ZTUlRiTGlxWTZCd0xZd0JVWlNENHMzdXlqMGhOR0ZPeTJv?=
 =?utf-8?B?SzFZKzBvSXc0dFZ5OWNjM1BRVGxVVTBZU1VBV0s4U0sxYW1jdzNZRFVrVXhB?=
 =?utf-8?B?eUdRS0pQYWhzSXc1akwwMm9TMjQzcUYyODhTLytDblhKM1VLWkI1d2tnaWNh?=
 =?utf-8?B?RHhjUlVzdXRKSEZDYWdKYnZxcVFFVnZUbk5XREVqREYwSEZNYUJ0Nk4zL0dK?=
 =?utf-8?B?NFVlelFmYjRxUklzUDhXUGdWc05EWThjckhmbW80ekZGQmZMRjlEaVU4MjBr?=
 =?utf-8?B?QmRpTXhUL0lMSUlDRjdZOW9DMi9MQWdwNEtZbk41RXVXSThNSFh5enlKOFM4?=
 =?utf-8?B?Um02UmFrT2JOaE0yUm1keGJ4eVZQbWlBNFJIdEFGdkNHWitsblB2cUVzQ005?=
 =?utf-8?B?UllpV3k0VFlqWnFFWmtLcjdrd3p5RWlGYUx1YTZNWXczc083SExHMGdFbVhp?=
 =?utf-8?B?bU5Jb1pkZEhvRGFhSlRVWHgwVkVEVWFUSHNKWXpmNDU3NkNoQzlGZ01jUU9T?=
 =?utf-8?B?Qms4SU80UmVlTVZEUkRuMTBGb0VvUG91T0hvMmJHa3duL25jeTNkbXhlQWRo?=
 =?utf-8?B?RU9NWU1jYmVZZU8zSFB2Z0tCaDE3MVZOendQMkF5UFVjUlVQUDZDRFhCUU1h?=
 =?utf-8?B?bThSOCtJVHVQMUJuR3Vta1kvcUxHaCtrclNHY2lQdGZjOGd6QVJQTkhhdWN4?=
 =?utf-8?B?cEZkUFlXU1ErK0VsYS85S0w0U0UzY2ttQ2MrUmUrTmZBYWRXeGpTcFBRVGRO?=
 =?utf-8?B?bnJBT2NrSXlqWlJ4a3RRemRiV092WVd6dzd3Sm9UWUcwQVZBSitRU3ZPSEQw?=
 =?utf-8?B?V1ZpbktwUlFramZEV2hkcGhYZkFVTUlLQUVRdC9rNGU3T2RTTnBaMjRPdURX?=
 =?utf-8?B?elFCVWFTWFIwcFVPSTZIRlpOa2JaeUNSNUpINWFVWHhkNkt5cENJT09XNlhU?=
 =?utf-8?B?NFNQMkVuemFFUnBDRmZGMGJxN2lYQVpIQ0wrZkhMQ3V2TThwZmhhdDRDWWVR?=
 =?utf-8?B?MkwxdTF6dlNYcVVYVmhldlNzdTc3NUdUTDhyVUNQQ1BrT1QxZGNmQWZQL0ln?=
 =?utf-8?B?RTA2cnpsb1NUeVVzN3NPYUcwdzNyK00zS05Ud3k1SHRoQTREWUFkL0M3MUw3?=
 =?utf-8?B?dE13VXR5NTVLcEl6WEFlZXBVaTBPb1oyam5vdjdua1BHc2FWMjFhYlBSZWNR?=
 =?utf-8?B?U1Jyd01IRm41MGJnd3E2QmxVV3AzOUxNZ1dZRDB2ak9tT1N0cmw5VnNxbU1u?=
 =?utf-8?B?a2V4NEZ1SjVtMHNuU3VaVjZEODkyVjJwTm5ha1RranY5TXA5cmpaT0xsYTZq?=
 =?utf-8?B?SGNxRjZkWGJ5eW1STWUyUjFvQURKSzlQNlRBOUFnQytEZnJvVlZIT0lBeFo4?=
 =?utf-8?B?ZXpvWHBoUmYzNVE5SGMxU204VGw4NWJKbEpWblZZYWlyUEVubzhmZGZ5RWpZ?=
 =?utf-8?B?M1RvT0E2NVM5NStXcEc3ak0zWDFIczlnTnZrOUZBWWExd3JLYWZCeEI3RUM3?=
 =?utf-8?B?dHZZVGpyejJuK1NSTnNxeEJQb2FMT2lETVlKM1VVMHA5My9TeUlCUmV5VDQ0?=
 =?utf-8?B?R1lNRE5kU2RRdnJxSGllTUdYYURmVlBZS2cvdmRoK0tlWXczazh6L0dGZncx?=
 =?utf-8?B?aHRnWlBUYkhsbUwwd0tHZ21nWkg2Vk54K1lLRTZSbmZTd3pWM3cwT2RNTUVi?=
 =?utf-8?B?WWw4ai83NHhCdzVFcmNTOFRkeVpGMEZISFFtdnN6N3hYZS8rUDQyRU9oUktI?=
 =?utf-8?B?ZnpLelB3TjIrOEFiMmh5blBEK1YzS3l0eUw3YkJIdFpKcG0wVlZCNms3aFZ2?=
 =?utf-8?B?bVJJKzNvTnl4OU83amRSd2lqVE1oNGNScy9nM3ZYTjhVNXFtemtCVG4zSGJt?=
 =?utf-8?B?MmdtVHhrMElYQmdnNDQ5ZDlDZ0JZKzFNVDV0ckN2cGs1YWVPQ2JyU0ZvT3Fp?=
 =?utf-8?B?dWlIUE10U0ZXaHpSZXdQckVOeHdmdkdvM0FXM1gyZXY3UEE1TnRvKzBIcXZC?=
 =?utf-8?B?Mlh4VFJZZ3lOQTVOUXlCbmJxMHB6ZnJQekpIYVZqNFluMlU3Y0MrNkVORHl1?=
 =?utf-8?B?T091YzJkU2lhMGNyQTBmckVGZWNlbXBSU2x5b1B4aGQ0VUIvUHV6bmNmYk5F?=
 =?utf-8?B?NW5vdHd3dVVLWnlodVZrdzhPTUlyNnJyTk91VWFtaUhXeWt0dy9Gay9kSG4y?=
 =?utf-8?B?UXRmbWNpRC9NWUFFQ2ZHa0NGdm5TZmV2dVpydXJSbGN3b3BBai9MQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 92588519-af19-4882-a55e-08debb411e31
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 16:09:08.9130
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hwTDEfW9fBdSVGaQIJAbTgWytMZ8Bru5SIW6cU8W4X+LAitNQQOpUkF60E1uKibcEwrE5v7TNBA5ktpwGhZvsA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5559
X-purgate-ID: tlsNG-ebf023/1779811752-4217E3FF-D69C084A/0/0
X-purgate-type: clean
X-purgate-size: 2021

On Thu, May 21, 2026 at 05:46:18PM +0200, Jan Beulich wrote:
> On 19.05.2026 16:20, Cody Zuschlag wrote:
> > --- a/docs/process/sending-patches.pandoc
> > +++ b/docs/process/sending-patches.pandoc
> > @@ -195,6 +195,25 @@ E.g.:
> >  
> >      Requested-by: Jane Doe <jane.doe@example.org>
> >  
> > +### Assisted-by:
> > +
> > +This optional tag can be used when AI-assisted tooling contributed to the
> > +preparation of a patch.
> 
> Noticed only while reading your other email, plus checking the Linux
> wording: s/can/should/ at the very least? (Personally I'd make it a
> requirement.)
> 
> > It is in the format:
> > +
> > +    Assisted-by: <tool-name>[:<model-version>] [tool...]
> > +
> > +E.g.:
> > +
> > +    Assisted-by: Claude:claude-3-opus coccinelle sparse
> > +    Assisted-by: ChatGPT:gpt-5.5
> > +
> > +Basic development tools, such as git, compilers, make, and editors, should
> > +not be listed.
> > +
> > +The person submitting the patch remains responsible for reviewing any
> > +AI-generated content and ensuring the contribution is correct, appropriate,
> > +and compliant with Xen's contribution and licensing requirements.
> > +
> >  ### Signed-off-by:
> >  
> >  This mandatory tag specifies the author(s) of a patch (for each author a
> > @@ -209,6 +228,9 @@ E.g.:
> >  The author must be a natural person (not a team or just a company) and the
> >  `Signed-off-by:` tag must include the real name of the author (no pseudonym).
> >  
> > +AI tools must not add `Signed-off-by:` tags, as only natural
> > +persons can certify the `Developer's Certificate of Origin`.
> 
> Linux emphasizes "MUST NOT". I think that's advisable for us as well. I
> also wonder whether some of their other wording might be worth taking
> verbatim, rather than making our own, slightly different variant.
> 
> Nit: Wrap differently to make better use of line length?

With the proposed changes:

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue May 26 19:02:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 19:02:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320133.1587512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRx2q-00070Z-7N; Tue, 26 May 2026 19:02:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320133.1587512; Tue, 26 May 2026 19:02:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRx2q-00070R-2a; Tue, 26 May 2026 19:02:28 +0000
Received: by outflank-mailman (input) for mailman id 1320133;
 Tue, 26 May 2026 19:02:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wRx2p-00070L-3U
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 19:02:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRx2o-008gg3-CD
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 21:02:26 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a15ee3a-bab6-0a2a0a5309dd-0a2a45079d3a-16
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 21:02:26 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a15ee40-229c-0a2a45070019-aceafc1fc83a-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 21:02:26 +0200
Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18])
 by sea.source.kernel.org (Postfix) with ESMTP id 1D3D941A40;
 Tue, 26 May 2026 19:02:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C9CD31F000E9;
 Tue, 26 May 2026 19:02:23 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20260515 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1779822144;
	bh=5v/ujptFF4DT0D6zYuyceaf/1trBKA8PwBcNsci0YZg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References;
	b=FuROTpMl/ITCiqAcC7+kjLeWUAWR1IEFzbrhnMxgzETF7Bs22NhUiKZq28FrhJ2GV
	 BSIWmkeLFBipXbLhKB9gz6i1qk8s4JecDnshC7v8VkGK7tgFztBZgqvImAv/HhlBUV
	 PDd3XA19YKCAsXRs06tp24ud/JzNU3cuPvVKi8SB+7Ur2qeDXy7mnc/wNQuefqDI5x
	 +Ju6REmcNA1w4ANQ2zYIorFFRv8Hgot8Yt2Bi380zqTMA5M2aOH3ZshiMRtTeY2/FF
	 jNLch4k5yeq5kUV3fd4eeiJka+uUWY1xd6ClnTMSco3PJReT9ZQK5cU/ovsvD4Wn6Z
	 PxadA5OaFOKCA==
Date: Tue, 26 May 2026 12:02:23 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Anthony PERARD <anthony.perard@vates.tech>
cc: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
    xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 13/13] Setup ssh access to test systems
In-Reply-To: <1779458083.8631fc262581453bbf619ec5b2062170.19e4ff78945000f373@vates.tech>
Message-ID: <alpine.DEB.2.22.394.2605261201180.182011@ubuntu-linux-20-04-desktop>
References: <cover.30e6171ddf1c6a72eadf4af0a77c892d4f18d811.1777898148.git-series.marmarek@invisiblethingslab.com> <13f837cd9f394d3b4eddb4849156b8ed5d06d31b.1777898148.git-series.marmarek@invisiblethingslab.com>
 <1779458083.8631fc262581453bbf619ec5b2062170.19e4ff78945000f373@vates.tech>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-705442622-1779822144=:182011"
X-purgate-ID: tlsNG-ef75cf/1779822146-0A772C48-9E8E0929/0/0
X-purgate-type: clean
X-purgate-size: 1090

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-705442622-1779822144=:182011
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Fri, 22 May 2026, Anthony PERARD wrote:
> On Mon, May 04, 2026 at 02:35:52PM +0200, Marek Marczykowski-Górecki wrote:
> > For this add also bridge package, so xenbr0 can be configured with
> > /etc/network/interfaces.
> > This allows extracting more logs out of the test system.
> > 
> > Create empty /etc/network/interfaces, so the 'networking' service starts
> > cleanly even if no interfaces are configured this way. This is
> > necessary, as dropbear service depends on networking.
> > 
> > Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> 
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Since Anthony has reviewed the entire series, on the whole series:

Acked-by: Stefano Stabellini <sstabellini@kernel.org>
--8323329-705442622-1779822144=:182011--


From xen-devel-bounces@lists.xenproject.org Tue May 26 20:31:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 20:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320158.1587521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRyR2-0001ip-DE; Tue, 26 May 2026 20:31:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320158.1587521; Tue, 26 May 2026 20:31:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRyR2-0001ih-9V; Tue, 26 May 2026 20:31:32 +0000
Received: by outflank-mailman (input) for mailman id 1320158;
 Tue, 26 May 2026 20:31:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Jason.Andryuk@amd.com>) id 1wRyR0-0001ib-8B
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 20:31:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRyQz-008rIk-GI
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 22:31:29 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 6a1602e1-5cb7-0a2a0a5109dd-0a2a4505d964-38
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 22:31:28 +0200
Received: from [52.101.62.52]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 6a16031f-aaa8-0a2a45050019-34653e34cc53-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 22:31:28 +0200
Received: from BL1PR13CA0288.namprd13.prod.outlook.com (2603:10b6:208:2bc::23)
 by CY8PR12MB8193.namprd12.prod.outlook.com (2603:10b6:930:71::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Tue, 26 May
 2026 20:31:22 +0000
Received: from BL6PEPF00022570.namprd02.prod.outlook.com
 (2603:10b6:208:2bc:cafe::f) by BL1PR13CA0288.outlook.office365.com
 (2603:10b6:208:2bc::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.12 via Frontend Transport; Tue, 26
 May 2026 20:31:22 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL6PEPF00022570.mail.protection.outlook.com (10.167.249.38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.7 via Frontend Transport; Tue, 26 May 2026 20:31:22 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Tue, 26 May
 2026 15:31:22 -0500
Received: from fedora.mshome.net (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Tue, 26 May 2026 15:31:21 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aCKwe3YW0KMbb87VImuyxmsYO997gpNUeNwsKtnTH1ubV9MMtwNdpS0WpblvU5sePgqm8SoCtFQSh57PEaOuB5+vjNjXQbRy5q+pVwcL1yailJ+j22KneBln1uj7Lc/wJS9UpRHmoBUzFKzZCMHYm6aduuIuZ2MNV7wYpiZmdYCU99ZcdqBqmgdEmhSJ0uncZ/diFaRE6wJPn7LN+2SyGoUYNLOcPqorciKC9+sAy9UmjSyGL298Ctg8T3LR5iuaJ91pGf1jrSmHlZK1xSi23ILaIqSIYU68r6OY8SWS9G854IiEyafPDNbfAgCskx0eFmsSAQ0AqaEBkTM8IjXnPQ==
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=FVKDGc3OoiFYqlfIOCBDgza3kBiPGFo+zo3nKOSO6iA=;
 b=lRuEe9Gi/YRoFZKayINHi7HnDCYB88mdlfyfCn2yI7IWRh1G97N2NxgIifj53hiMyJBOzhU12gXZ0pOBsnU7WlyH0ewjRvFZIzVUWZ3t7zWH0uW3r4AFVfD6rmRFa69QH6R/yl3vgwCzWeBCOcQrZ0/JPpmgxRZl16Iu9HZh8PnBJAnqw9RtB8MYZjf1xXQZMwLlYsYZ7Mv2yMieVSpUtiy6m26aejPf6OdMtVw9iO99eSIk1GRlvyrIA/+gSmsk/QECpNq4q5pbwiVvEsIWasHAA9yzzWqRRgXYT8eKbTCXLgZ/o3dRkqSUzbsZX21FZqVmqe0eLq039Xj334Qk6w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org 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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FVKDGc3OoiFYqlfIOCBDgza3kBiPGFo+zo3nKOSO6iA=;
 b=yPen4+YeliwhHqhUT/JEQ0v6wGESKk9PknxR1rU/y25p69pE+eLiYQbBa9IOgh/+rmCNH5tefCQGsZk7Pd1MrqwpMHDPg5zF/ZBiImyK3yqu8Zp1Z8VG1AZYneyay7ZU1C9yhKtkiglAfMwMAUPx4D9pC1r+e2Kc8L5F8hpDxR4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Teddy Astie
	<teddy.astie@vates.tech>
Subject: [PATCH] xen/x86: Change stub page freeing to fix smt=0
Date: Tue, 26 May 2026 16:31:14 -0400
Message-ID: <20260526203114.40882-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00022570:EE_|CY8PR12MB8193:EE_
X-MS-Office365-Filtering-Correlation-Id: 51497a6c-f2ec-4655-937f-08debb65c03c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700016|11063799006|18002099003|56012099006;
X-Microsoft-Antispam-Message-Info:
	qYH/98wrkrf8/kYNI6mZxbI4jELMdiFmcJysIeZmvPZQ+Ea8gI3BluhVZFVXBXRB4au4bzpphYk1VsEUZuGSc8qfHQgYFNn2pg2Sb9KG3dOdioTvl9tLfTpgLtpNaFisIaYafZMBAVY8zHF5GdogaCSgL24NHhir1i1VXa741sKTXL+jN9F1RWVKsLHcjmHG/oad+1OQsR9lraz3Q9iCgJWdsFnHoDEBOEJIU/kV4+G1K5j17yxu8cydAuHhdsUExdmYQAW1uwWRXtp2W5iJ12IQQyw63iVDaS3uKMCUUtvnM6+z/Hi9iMRZ4F3HINvbm/e1fkEdOJPVoDDExfEWQEOqeVLrxp1Ykx1mXTQJmh5d+V6AuwCER6yrQ3j+PwWkSgZKnS0LdLyy4v3I+y0eBpXecZGdMS6EatcFCBJdbWuyqvwOWUf4bTB3AgMDnOVotydOEvJvI7wbQyXA2hyPMExj+rF+Rq0haAppk+usbRHRfdzm+IJpcgvTKnDEQHd4o/xLfgUA6q/Aa4rh9F2C4AjT5RqmZLpuladiaQfQ8mTtLo7ogcz6gjgTJKL6Pnax9Xa5jiRXjoSL2RrWVLinFhve7Oom753e+cSRvJZ2IMhceATyRcQ6V0C2AJTibhTizF93/7FtMXHpYWN+MMSa8Hy/owh6KWgQXn63PVq83gVyjaNNXVVgF/Epy8fARGGGFEJeaiAZeX2bWpLwz3mL5aGvPtaDe6NcOC4rS0uih3U=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700016)(11063799006)(18002099003)(56012099006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	bNfx9j04+ONhx2nFBjWAp5BhO8QDktS+MdVa/gsYENS2PvpuUuvqJdANHv0dQUs2NDO0Q4uMU4vfuZwoRElMQMWAfzCZTFORsHgQ5HuYVjm8J4kgTyOVUJF+yiomQCh4FvXZZbSAk5+fVYSyxKJvEvt1nMHLFnmrUl6jVNhRjzkxhw1reumfkWJY2yfSf45hbR7LabjEiMduDyQzOmRgH1mNtWtyizvSbvAQfRaFKRM9sATacqS2OBn5P5gjH3gyNcQBGyQoZF/5E+6x//19l0j0PMvoBLcNLM98Q3U7wM2Dmx4N/Fi4GbFdukYDyBUOTFhHjpDpgvsn1uBkiKareGTe+yXkCOwSDUvVoxq4SGnWPPJE68fhqp7IpnOEOQK91LsWiXg4/wE3Yg4f5e712zmcdhN5s7pym8GJDb3yoarKlCAzQitHKTgjRGdXOzfF
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 20:31:22.4043
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 51497a6c-f2ec-4655-937f-08debb65c03c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00022570.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8193
X-purgate-ID: tlsNG-c201ff/1779827488-E0867443-4E77C3B1/0/0
X-purgate-type: clean
X-purgate-size: 4235

A single stubs page is initialized with 0xcc and re-used, with multiple
CPUs each using a portion of the shared page.  In cpu_smpboot_free(),
each stubs area is checked against 0xcc.  When all are set to 0xcc, the
page is freed.

Booting a system with smt=0, CPU0 is initially setup, allocating the
stubs page and initializing to 0xcc.  When more CPUs are brought up,
CPU1 is initialized and then immediately brough offline as it is the
sibling of CPU0.  Since the page was initially memset with 0xcc,
cpu_smpboot_free() finds all stubs as 0xcc and frees the page.
However, the page is still assigned to CPU0 and continues to be assigned
to other CPUs.

Meanwhile the page can be reallocated, which can lead to misbehavior.
The particular instance was the stubs page re-used as a page table which
later faulted when the entry was all 0xcc.

Change to initializing the page as 0xd6/STUB_BUF_FREE, and initializing
individual stubs as 0xcc/STUB_BUF_USED.  0xd6 now indicates unused, and
0xcc indicates used/assigned.  When freeing a CPU, the stub is set to
0xd6, and the page is freed if all stubs are 0xd6.  Initializing with
STUB_BUF_FREE lets cpu_smpboot_free() a page that was only ever
partially used.

0xd6/UDB is a 1 byte invalid opcode, which is similar to the existing
use of 0xcc.  0xd6 is used to identify bug frames, but the stub addr
(e.g. 0xffff82d07fffe000) fails the is_active_kernel_text() check.  It
should be okay to use here.

Fixes: 7a66ac8d1633 ("x86: move syscall trampolines off the stack")
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
It would be nice to use get_page()/put_page() to let count_info handle
reference counting, but they require an owning domain.

The listed Fixes introduced the use of 0xcc, but the smt commit may have
made it more problematic.
Fixes: d8f974f1a646 ("x86: command line option to avoid use of secondary hyper-threads")
---
 xen/arch/x86/smpboot.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index ff05955bae..a5d485b732 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -643,10 +643,16 @@ static int do_boot_cpu(int apicid, int cpu)
 
 #define STUB_BUF_CPU_OFFS(cpu) (((cpu) & (STUBS_PER_PAGE - 1)) * STUB_BUF_SIZE)
 
+/* Fill values indicating state of stub. */
+#define STUB_BUF_USED 0xcc
+#define STUB_BUF_FREE 0xd6
+
 unsigned long alloc_stub_page(unsigned int cpu, unsigned long *mfn)
 {
+    unsigned char *stub_page;
     unsigned long stub_va;
     struct page_info *pg;
+    bool initialize = false;
 
     BUILD_BUG_ON(STUBS_PER_PAGE & (STUBS_PER_PAGE - 1));
 
@@ -661,7 +667,7 @@ unsigned long alloc_stub_page(unsigned int cpu, unsigned long *mfn)
         if ( !pg )
             return 0;
 
-        unmap_domain_page(memset(__map_domain_page(pg), 0xcc, PAGE_SIZE));
+        initialize = true;
     }
 
     stub_va = XEN_VIRT_END - FIXADDR_X_SIZE - (cpu + 1) * PAGE_SIZE;
@@ -675,6 +681,14 @@ unsigned long alloc_stub_page(unsigned int cpu, unsigned long *mfn)
     else if ( !*mfn )
         *mfn = mfn_x(page_to_mfn(pg));
 
+    stub_page = __map_domain_page(pg);
+    /* Newly allocated page is marked entirely unused. */
+    if ( initialize )
+        memset(stub_page, STUB_BUF_FREE, PAGE_SIZE);
+    /* Specific CPU is marked used. */
+    memset(stub_page + STUB_BUF_CPU_OFFS(cpu), STUB_BUF_USED, STUB_BUF_SIZE);
+    unmap_domain_page(stub_page);
+
     return stub_va;
 }
 
@@ -992,9 +1006,10 @@ static void cpu_smpboot_free(unsigned int cpu, bool remove)
         unsigned char *stub_page = map_domain_page(mfn);
         unsigned int i;
 
-        memset(stub_page + STUB_BUF_CPU_OFFS(cpu), 0xcc, STUB_BUF_SIZE);
+        memset(stub_page + STUB_BUF_CPU_OFFS(cpu), STUB_BUF_FREE,
+               STUB_BUF_SIZE);
         for ( i = 0; i < STUBS_PER_PAGE; ++i )
-            if ( stub_page[i * STUB_BUF_SIZE] != 0xcc )
+            if ( stub_page[i * STUB_BUF_SIZE] != STUB_BUF_FREE )
                 break;
         unmap_domain_page(stub_page);
         destroy_xen_mappings(per_cpu(stubs.addr, cpu) & PAGE_MASK,
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 21:07:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 21:07:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320169.1587530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRz0A-00066D-0Q; Tue, 26 May 2026 21:07:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320169.1587530; Tue, 26 May 2026 21:07:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRz09-000666-Tq; Tue, 26 May 2026 21:07:49 +0000
Received: by outflank-mailman (input) for mailman id 1320169;
 Tue, 26 May 2026 21:07:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wRz07-00065y-Vf
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 21:07:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRz05-0008cE-ET
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 23:07:45 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a160b59-bab6-0a2a0a5309dd-0a2a450bba66-28
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:07:45 +0200
Received: from [40.107.159.118]
 (helo=OSPPR02CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a160ba0-212f-0a2a450b0019-286b9f764ec3-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:07:45 +0200
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by DB9PR03MB7227.eurprd03.prod.outlook.com (2603:10a6:10:1fe::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.11; Tue, 26 May
 2026 21:07:42 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.21.0071.010; Tue, 26 May 2026
 21:07:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fm6a+UEDzq0G3NTSSwJCymHKlSsisLq1LDBwQFYkIeO2eIdkYyVqEhbnQjeGIWCXvEyc3/7rbazWBL8BvbqYOKj6HWJPNi3sV8CdcId2yqNYrJ4ITJxAjZ6A6yWmvenTmm0KdVB/vEuBWRPPNtWyIYZE/lWnKSFwTsZAuukr7IjL38JVKApyHhD+9KatRaCekcxB1goZ7iErRIJAVbOsDucxXM2nI2butmarj4DOad8Hvgd5UNO2stSmcp3lrWprdR+3Sv5jyNKWAyBx75Y4T9+dkirjxJKMwDgdv65YljY9Xj0NT+WgxLdTIJTWdUKSp7WLBStR0wN+xAexsAHq5Q==
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=IvdDYZAHWzCSFBIO+A+gdFJ9FhATYvWABVo7oUROvkQ=;
 b=xkDnQsSFUues/rayMGJJyfI6TxkVbrmk/Z9Ocbr/KUdtpohHLavwqw3VjdlwkqcI809H/jD0MLv8gbjwqLUxshmLUftd9nSIbJxRvrRfmFPefZPcyT3RO3Kdp429tjwCb8J9kYs9dCFPEY8kWLE+Jbp888/c9KEjaM4xajrWvMrjzUPzcBTcJOpfTmUzzmKmTbgEDHsOB1myN0Ed5HT5sJopGTbz2EnOvxu1OJxarhVlPt9EIgh/3l/ivoTTXRS1yOjTdtrqZT3+Alx6u0X0VKAXsT4UsA4QluOD1xH2r9O+TV/TDKgEXzjDBHwMkeqy4AoqH8qWrNBS5mxgM/Bznw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IvdDYZAHWzCSFBIO+A+gdFJ9FhATYvWABVo7oUROvkQ=;
 b=LmNYM53FioqP5CXU/csvZyJDtOMMlzcPXBhHtisyK9/Lv6x1pvk2bJ7/Y4upL7/dN9wenUdbONtEElUC4wMJsRTRsFGMB6VDvz+UjAuiAS8OcnpvDh+ylYS7jvKgxbm9UwmMDeRhVVJ1iyrQHQrd0/GPdkLNBRF2ONW0KBIEptAOgSKW5ksSBI+Az/F+TqXptpF1CUJJfcDeF4mIQ+tCjt3Zp0NhQs4FMH1JQH1OyoodZI32XLuEfCpsFwBgrMRfWtqQ8tUTLmZsQ1yrJ0hbdKCLJhjZNww3WyuHdSvx6T9K3ZhXEwtsFWb4vucSlv0KwWztKswhAwJ7A68IxGRjWg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH] coverage: place GCOV-generated .text.* sections in Xen text
Thread-Topic: [PATCH] coverage: place GCOV-generated .text.* sections in Xen
 text
Thread-Index: AQHc7VOxa7dJ7uwiTkiCFpTyz2B8pg==
Date: Tue, 26 May 2026 21:07:42 +0000
Message-ID:
 <cb8c1e0862a554f7a28347f549e9cfd0b0d6db2f.1779829545.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|DB9PR03MB7227:EE_
x-ms-office365-filtering-correlation-id: f789f44c-2d5e-48a8-d6e1-08debb6ad38d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|1800799024|366016|42112799006|3023799007|11063799006|18002099003|6133799003|56012099006|38070700021;
x-microsoft-antispam-message-info:
 SANvO9ZSX2FPZrjd1/oI9/3nsmhCnitlOwpdy3AqmWVEfylwGRmJhFNy8xj9kWIaoIJjL8Ya5Cwie5AlrvJNwssHUMeyFkPyFhz33e/KEXuUBWm5tJlecfFpXxroHMDTTVtp2ll/fusT8ycP9YtCCBc/my03USXhuREcvpBejeiPS/fTAg8PDqYN1Q8/7Jh2pNCjBhVqPexeh/EPYjyuLEo9JmeyZgFmKwRSnvIgMnqFARHLOeiaSt9LigpKeQwAw80Hmr4ClNtxznCINCh2EvLw++OjXv8Dpf44spLCflslinebUMImRkVG8d1gYTaYs4R7pEakI1TeehIofSOY6GsjuOkxaUXbHXym6MPfuwFNBW+1T84HC3AxU+rLfEqN/0yfMOgmVYCO1Fep0MBw2+cPzSIPoqXMyR22m66NJYU7ig/cndTUxbxcTSMfDC1ElFCiyRrmr7ZRqoTJ/91sOvzB/RvuReC5zyp0ICWAxRn04NQy9w1hXeTclQreLBh1og+0WHvH4DO4lJMqZS2y8mGIYthkUmRIRaKzu+VBpns4fhs8WVEz1O5hkkSfgHOAHTVaXBdLYDsGR/Uop4swLSZKr4fvy/8luGm9TZK5g0kX8QER5l+zDRBhss+ubw+MBSjGTvDSQ74yPHdVCnOQggItyJFptZ20AXW+G/DVH91qqLow/n/KZEbM8Zzr/D23JIiTY7OO/DBeGbXP4r4RUtpnFTnhlv1KNb1NTDZb9Dd1ISCuqVZ1+4E09s4/3D1A
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(42112799006)(3023799007)(11063799006)(18002099003)(6133799003)(56012099006)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?AV+E3f0jSISJ0j0MSG8gzYkc3hzDoa1I8zbcVaEBKOFAPC6f6AvY04cGl8?=
 =?iso-8859-1?Q?IOhwBG1vhQm37N8cjei98C6w4x+7AH11MdLyO/cL6OieHY4u1NV/YhlZq8?=
 =?iso-8859-1?Q?CX01l0HwBe2JjDzZJYykgvecva+s+AclASUUVFOKACsFso+O2IgwAv3bJV?=
 =?iso-8859-1?Q?VSn/h4tC5AuJ3fA3sDY8xFIgktoOpj44yujYpEQStpdP4sOklzWJcAj8pe?=
 =?iso-8859-1?Q?G+yEhU0MzLh+qu50t95UlEw57sSITooSQudcwhLccAFaHHXHvXbgCnpqRj?=
 =?iso-8859-1?Q?NV2I7VBzsVYhBYnBuMryDR2gaAGxEQYkiZAjx9X9hbakUFOMIjxj+3BZRZ?=
 =?iso-8859-1?Q?y+xWpUmW3AEb+OsLhkja1b9KzAbzWdXNYeCpw/Ai9M0iJ/snjI5cVxp5ga?=
 =?iso-8859-1?Q?f+1gcgQD2hsnWJHYWxlYQmQfXTrWZUtU/xgxHGz2YkLX7RDcUqghGY8tRH?=
 =?iso-8859-1?Q?70wt0Dw5Nb7bY7KAQMdANxwAN0/xYPnDm+DyLC3O9g3zUlHC4S6zA24G/v?=
 =?iso-8859-1?Q?hevU/Py96yrhmV+hnTm6Qd0eOcKAas3+RscVdyX6QM7auhOb9wRZWObaYS?=
 =?iso-8859-1?Q?3vaOigjp7z8IGmr62I88r4Sy97fC2sdV7eGQ2ihuLcVMqTvaR3pgeloL9k?=
 =?iso-8859-1?Q?+OAzu+pMOIhytmiMvch1U4v3cqldk+ldhJuR1fYvwozF9wF++HIRLp0sEu?=
 =?iso-8859-1?Q?Lp0NGETcC7gzLl183Flur4Z3kIG3pHIh8curUO8MML28T+yK/iNNp/gdt2?=
 =?iso-8859-1?Q?qukWKQCvEiIO2n3w7zApxwTNVBw9EskKkpNQoqgD7UFTbCwqMlqhpivdWr?=
 =?iso-8859-1?Q?RBxvr5RPH184Lc09n0aOPdsHwApkbd66SqUPHMYrZjmSyZjhce1aMuktnW?=
 =?iso-8859-1?Q?sl3aHUJa3XID3wkKplE/r+aHthWfmeQSY3cai38zk0qvAnsDMrNqjSeRb6?=
 =?iso-8859-1?Q?Q654ljHRuSPX4XOpoSrQkBTF4mXs0S9V5mLYlvwatIectzSx+FPnrBcxTV?=
 =?iso-8859-1?Q?pWKGo6DIjyidKBsoyW6o0p3au1Zs3jGFeuB+tJsqRw0rWKB11/ROcLMTK9?=
 =?iso-8859-1?Q?jksKIJvJM5Wr7oXdIhltkmWElDRtdQ5fg6nAklb9BxC9q1Xg1M3MBsI8NP?=
 =?iso-8859-1?Q?YC2iNtuZeTixdd8/MZM+A+M+GOLzwDlnHn3bv7V73hpPBNcAllkNWHOZLr?=
 =?iso-8859-1?Q?kO23WCoXoMu83QR/gblx/5bXJ5TCRcYUw6YgRw0vKsvHGYQjQkMgdQwevI?=
 =?iso-8859-1?Q?I4kYaLBdhlQb7SSQ1Dbco8msqe6qjFeXCv+/emT3QVhFMrhr5WnQT63a8M?=
 =?iso-8859-1?Q?UnT0D6rqzVjXc/LfaOfgK5xIX6wY3q912yMaYftnqYbkNIb45vLXE6iORp?=
 =?iso-8859-1?Q?wMYrx0sL3PLWJz3ucaAJGdYdIEK11/6aNtViSdHAsoGqcLGD1XOJ4EjE1E?=
 =?iso-8859-1?Q?j4weZimsu0ekGcpW9ZxvmsjP+o/76u0IytD8EQLRCK17axCCVj2KvnTrQf?=
 =?iso-8859-1?Q?MKiWwXxmrUAopInOjauVaJmO6TbgxyGebH5qTXP5KUmOvVgMXb+1pf6/oS?=
 =?iso-8859-1?Q?WjuPUVzqEAwQDhehRZ2wiSI/CuB8KjOarBYeypUdyCH0RwJRs48iYzmxm8?=
 =?iso-8859-1?Q?toQbMe1nnIrlSeTXteJRnfy8dnlRUOPzGfL16nbfFrDWFoYjFtw+8DWVZC?=
 =?iso-8859-1?Q?ewcz+p4fAVmWMdQUYO38s+MgD6AcBKo3SfyyPQczUv44oe2O+6Y25FBcb0?=
 =?iso-8859-1?Q?DTtY9OQsTJoqPY4l71A3mLnaWkIgWxM/qmVmgtfLPYeote7m8vw53yuTvE?=
 =?iso-8859-1?Q?LAz3cltFzLqA7ORZJxT53cR69m0KSf4=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f789f44c-2d5e-48a8-d6e1-08debb6ad38d
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 May 2026 21:07:42.3146
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: BMK866vPmgHMi37Iyvz6IILb12aK/IaUmnZsizn3szXGGab8pE0Csc4U6FWvTIQycwqByh4ckMslqcLe87gAH+iQAIYEkTtRacEWW1gGCkw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7227
X-purgate-ID: tlsNG-42698a/1779829665-1B175F3B-F8A3F52C/0/0
X-purgate-type: clean
X-purgate-size: 5561

GCOV instrumentation can emit executable input sections such as
.text.startup and .text.exit when CONFIG_COVERAGE is enabled.
At present the Xen linker scripts only collect .text.* into the
main text output section when CONFIG_CC_SPLIT_SECTIONS is enabled.

With CONFIG_COVERAGE=3Dy and CONFIG_CC_SPLIT_SECTIONS=3Dn, these executable
sections may be placed as linker orphans outside the expected Xen text
region. Constructors generated by coverage instrumentation can then point
at code outside the normal RX text mapping, leading to early boot crashes
from init_constructors():

    (XEN) [   12.331193] Instruction Abort Trap. Syndrome=3D0xf
    (XEN) [   12.334253] Walking Hypervisor VA 0xa00003ce000 on CPU0 via TT=
BR 0x000000004352d000
    (XEN) [   12.338550] 0TH[0x014] =3D 0x4352cf7f
    (XEN) [   12.341823] 1ST[0x000] =3D 0x4352bf7f
    (XEN) [   12.345124] 2ND[0x001] =3D 0x40000043527f7f
    (XEN) [   12.347329] 3RD[0x1ce] =3D 0x400000433cef7f
    (XEN) [   12.351233] CPU0: Unexpected Trap: Instruction Abort
    (XEN) [   12.357643] ----[ Xen-4.21.1  arm64  debug=3Dn gcov=3Dy  Not t=
ainted ]----
    (XEN) [   12.360243] CPU:    0
    (XEN) [   12.364098] PC:     00000a00003ce000 00000a00003ce000
    (XEN) [   12.375835] LR:     00000a00004802f8
    (XEN) [   12.378273] SP:     00000a00004c7e10
    (XEN) [   12.380492] CPSR:   0000000080000249 MODE:64-bit EL2h (Hypervi=
sor, handler)
    (XEN) [   12.382785]      X0: 00000a00003ce000  X1: 0000000000000000  X=
2: 00000a0000410fa0
    (XEN) [   12.385176]      X3: 0000000000000000  X4: 0000000000000010  X=
5: 0000000000000001
    (XEN) [   12.387555]      X6: 00000a00004e5f40  X7: 00000a00004e5f38  X=
8: 0000000000000000
    (XEN) [   12.390027]      X9: 00000a00004e5f20 X10: 00000a00004e5f30 X1=
1: 00000a00004e5f40
    (XEN) [   12.392510]     X12: 00000a0000439748 X13: 00000a0000406938 X1=
4: 000000000000062e
    (XEN) [   12.394954]     X15: 00000a00004f3918 X16: 00000a00004c7bb5 X1=
7: 00000000004c7bb5
    (XEN) [   12.397293]     X18: 0000000000000030 X19: 000000000000001d X2=
0: 00000000000000a9
    (XEN) [   12.399803]     X21: 00000a00004c8008 X22: 00000a00003fa000 X2=
3: 00000a00004e2000
    (XEN) [   12.402392]     X24: 00000a00003f9390 X25: 00000a00003fa000 X2=
6: 00000a00003f4ca8
    (XEN) [   12.404798]     X27: 0000000000000002 X28: 00000a000057a9c0  F=
P: 00000000bedb6740
    (XEN) [   12.407110]
    (XEN) [   12.409442]   VTCR_EL2: 0000000080023558
    (XEN) [   12.411291]  VTTBR_EL2: 00000000bffc4000
    (XEN) [   12.412895]
    (XEN) [   12.414204]  SCTLR_EL2: 0000000030cd183d
    (XEN) [   12.415928]    HCR_EL2: 0000000000000039
    (XEN) [   12.417642]  TTBR0_EL2: 000000004352d000
    (XEN) [   12.419152]
    (XEN) [   12.420327]    ESR_EL2: 000000008600000f
    (XEN) [   12.422056]  HPFAR_EL2: 0000000000000000
    (XEN) [   12.423809]    FAR_EL2: 00000a00003ce000
    ...
    (XEN) [   12.485355] Xen call trace:
    (XEN) [   12.489080]    [<00000a00003ce000>] 00000a00003ce000 (PC)
    (XEN) [   12.512076]    [<00000a00004802f8>] init_constructors+0x38/0x5=
0 (LR)

Observed failing symbol:
    _sub_I_00100_0
called from:
    init_constructors()
The issue can be diagnosed by enabling linker orphan diagnostics or
generating a linker map:
    LDFLAGS +=3D "--orphan-handling=3Dwarn"
    LDFLAGS +=3D "-Map=3Dxen.map"
and then inspecting orphaned executable sections such as:
    .text.startup

Collect .text.* whenever either CONFIG_CC_SPLIT_SECTIONS or
CONFIG_COVERAGE is enabled.

Apply the same change for arm, x86, riscv and ppc.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 xen/arch/arm/xen.lds.S   | 2 +-
 xen/arch/ppc/xen.lds.S   | 2 +-
 xen/arch/riscv/xen.lds.S | 2 +-
 xen/arch/x86/xen.lds.S   | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index 2d5f1c516d..e1b179fe5f 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -41,7 +41,7 @@ SECTIONS
        *(.text.unlikely .text.*_unlikely .text.unlikely.*)
=20
        *(.text)
-#ifdef CONFIG_CC_SPLIT_SECTIONS
+#if defined(CONFIG_CC_SPLIT_SECTIONS) || defined(CONFIG_COVERAGE)
        *(.text.*)
 #endif
=20
diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
index d0f2ed43f1..6224c06ae8 100644
--- a/xen/arch/ppc/xen.lds.S
+++ b/xen/arch/ppc/xen.lds.S
@@ -34,7 +34,7 @@ SECTIONS
         *(.text.unlikely .text.*_unlikely .text.unlikely.*)
=20
         *(.text)
-#ifdef CONFIG_CC_SPLIT_SECTIONS
+#if defined(CONFIG_CC_SPLIT_SECTIONS) || defined(CONFIG_COVERAGE)
         *(.text.*)
 #endif
=20
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index 65f136dce9..7c19d2e9dd 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -24,7 +24,7 @@ SECTIONS
         *(.text.unlikely .text.*_unlikely .text.unlikely.*)
=20
         *(.text)
-#ifdef CONFIG_CC_SPLIT_SECTIONS
+#if defined(CONFIG_CC_SPLIT_SECTIONS) || defined(CONFIG_COVERAGE)
         *(.text.*)
 #endif
=20
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index b9e888e596..42a17f57e6 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -93,7 +93,7 @@ SECTIONS
=20
        *(.text.page_aligned)
        *(.text)
-#ifdef CONFIG_CC_SPLIT_SECTIONS
+#if defined(CONFIG_CC_SPLIT_SECTIONS) || defined(CONFIG_COVERAGE)
        *(.text.*)
 #endif
        *(.text.__x86_indirect_thunk_*)
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue May 26 21:58:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 21:58:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320180.1587557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRznS-0004fj-7X; Tue, 26 May 2026 21:58:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320180.1587557; Tue, 26 May 2026 21:58:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRznS-0004fa-3e; Tue, 26 May 2026 21:58:46 +0000
Received: by outflank-mailman (input) for mailman id 1320180;
 Tue, 26 May 2026 21:58:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wRznQ-0004SK-Ix
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 21:58:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRznP-00CFSu-V5
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 23:58:43 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a16173d-bab6-0a2a0a5309dd-0a2a4505a130-32
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:58:43 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a161792-aaa8-0a2a45050019-94a39217900a-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:58:43 +0200
Received: from pps.filterd (m0367123.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64QJPBjr3088721
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 21:58:41 GMT
Received: from ph0pr06cu001.outbound.protection.outlook.com
 (mail-westus3azon11011020.outbound.protection.outlook.com [40.107.208.20])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4edhnn92cx-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 21:58:41 +0000 (GMT)
Received: from CY5PR13CA0034.namprd13.prod.outlook.com (2603:10b6:930:11::19)
 by IA6PR16MB6886.namprd16.prod.outlook.com (2603:10b6:208:5dd::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.18; Tue, 26 May
 2026 21:58:37 +0000
Received: from CH1PEPF0000AD7B.namprd04.prod.outlook.com
 (2603:10b6:930:11:cafe::83) by CY5PR13CA0034.outlook.office365.com
 (2603:10b6:930:11::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.11 via Frontend Transport; Tue, 26
 May 2026 21:58:36 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 CH1PEPF0000AD7B.mail.protection.outlook.com (10.167.244.58) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Tue, 26 May 2026 21:58:35 +0000
Received: from pps.filterd (m0426316.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64QJWqRf2291769
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:58:35 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [34.209.42.160])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4ebu9cu9g8-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:58:35 -0400 (EDT)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id RznDwvgzUtgXKRznEwopbU; Tue, 26 May 2026 21:58:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=7nX
	DslCE3jJEMHu4E9rTO0AaUwmzTR7wlDimYZE7YyU=; b=n7hyCutXUVyTAyCeUqv
	hpBC5lLdhDO18+lDjE4hCdTj8aFVrKmNyMiG5vSo3+XEGmdKPFqQf9fwFGPDif/I
	sv3oQ5SEJ3t/TcNDDEE5+zKbGiVX0Z0B8DwUehxregM5qrZaIYyAxjTtsLSc/D7b
	upwae1+PDMMhxaOgrctW8nxA2+QgphY+ppuQhk/EqVQyGZQD8scQud/UL8B/3Bjr
	pwHtNN+ABPP1Bq4/2U1/dwCJ1k9b+aSxHzoKVGmWgekmZ1EHx2DauSig6xgqZ1n3
	3vMfTHc2eOdLcMGIMa9HShy5yGuLvx5ZTaIVHKqhx6xWGt7nqEKhyM3War5lH7NM
	kvw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uYxTsgxxCL6PL9pHVhES8qESftXpmwj/xsmVyBGZdl5a8H+9QWyIhRuSOZi/T/70YIvaouMATyQSFiRMSOOx2lIGm7iUNbEQOvHXcM4ry1zvqIagGlS+31L1Y0f9JowdiJGiqgs26ruOz+r2OGzsbMeQOGsuLvdKY8Vza6S4duiSEy75Z2ayaYcdo5DBwouPwuA+qYzKLRCzDgwQEjs0Ke7o1j2RMfOAhEP3zdCLUE3j0Kbt1+kip/+PY43pnXBDfGws4lVwRJ2JChSSY4nbsUy6ZooUzg7xhhqxDjKy2r4dP3Hn3vhfNCNf4d/YJAks//WcXfecohYl8rhBqr7Jtg==
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=7nXDslCE3jJEMHu4E9rTO0AaUwmzTR7wlDimYZE7YyU=;
 b=Aolyief5usfw8fiGQ5k2BPbuhDgEOYdbVrM+thdxcgql83NhGh2rEE4J9sDwn8bmH0H7UhTlr5v+YgVwY6yMoyljtGMeToZ/sculpsS6ehmt94WXL/iBlEldHEhNG+OY4z8bSZEmP5mMTreJg0MHSpKX1p7t1bHlK8kSazb7AoETVnReMH8hoLB7zLQR0MvNA+CCUFRVQexaMRVemnK8jUavlTktwmp/+6zmQD8cIRkcE6ddTOJVN4o0HWZYQwsSVIm5a08736vslIZ1G3G3OaOTJtUzq+bi+96lgcvpmzEU993rvpY+s5LZHfAsaj1/sVpoCJyBXSJQnPPKqSa6Dw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7nXDslCE3jJEMHu4E9rTO0AaUwmzTR7wlDimYZE7YyU=;
 b=KKEQKwLXSs06zE0R7K7rbWumr/05OmQx+/VYjqBykIgFFn2w5nNAsXYJcshM2i2L3+7QENzGRcdfZ0PzOg8XbufVJ6bem1+4CYD4XirA0HCajxs7eUlIsQnhY/z13xCYuji08xFd95d1trQmMT26eVzk9bx7KYUIl9cgBVUw79k=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=7nXDslCE3jJEMHu4E9rTO0AaUwmzTR7wlDimYZE7YyU=; b=
	pIYv43yDoVQMVO15VR+Xl4tygo4jCWIMbLAMUF0fvPm4Yby1MmYtLt0rXqAf32Bm
	87NHhdjP+PWOAr+cBkF3wZd0m6UVJODB+bVEeTjJ7OJBFi70xIx0Hc9LLNdgi8ln
	1fqJ4DexMYsQrNo17LMNrIOjWM2iz2sxmkPMQ2URLUIcEFiVochTocFrCpWI5kAh
	E2hzxiyofIHub3FsccdlTkidYxYBx5cKWcmLVleEg4d65tVOFOtk+9qc5N2qMtwP
	BZlQF/dANTp8kPaTxv+3esMJacSrX95LdK6MIndQxQXtI9zQNgjzQFWzugVimk4+
	37znu/nT2H8WqOk9wIcd4w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=7nXDslC
	E3jJEMHu4E9rTO0AaUwmzTR7wlDimYZE7YyU=; b=P5uH6Cvy8sxbSELmo2V/2+B
	npxyzusS0bjwo0MNti6WPHvmWAFpDF8fvqHZlbTuxXD0yPUxW9ROJ2Gc/yEsONor
	/4FHHWc/KwAR8Nd2GGBmwbKfHEautSIwX2JK3yYU1gJ3XSqprWcrU2WdOk4rx4AZ
	vEngMEZC4TTi4QunSrgafQfTEX5xf3V9fnRNk5Fl325yo/oZ5xkCLdikHt8LznBM
	zzQXLBemU9yq2Ei83YIVfNf0RGH9ncCMJnKJtW5KwD2GIKG0odosxwxVO+DWlzsz
	5Vz72PvT6Q1dRAAW7nsuSwdVQM/Qie9gsF0LoJAjJyxK46AQerQ0Zqvj36Qhzsg=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: RznDwvgzUtgXKRznEwopbU
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, christopher.w.clark@gmail.com,
        dpsmith@apertussolutions.com, dmukhin@ford.com,
        Mykola Kvach <mykola_kvach@epam.com>
Subject: [PATCH v3 2/6] argo: correct logline in ring_unmap()
Date: Tue, 26 May 2026 14:58:19 -0700
Message-ID: <20260526215823.1452619-3-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260526215823.1452619-1-dmukhin@ford.com>
References: <20260526215823.1452619-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-05-26_05,2026-05-26_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 lowpriorityscore=0 suspectscore=0 bulkscore=0 phishscore=0 spamscore=0
 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605260194
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD7B:EE_|IA6PR16MB6886:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 5ed08dde-9011-40b2-36c6-08debb71efbf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700016|1800799024|11063799006|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	klZOxSkp1gJD9oDkoBiMxIw3dRk6+mCI6zN2QBXhyIxJTPmbn3Szy9y9oixtL8xqtfa52zFCjDH7uaruKv8/riEyxP0NzY+2rlD/4X9oQ47c3wqYxLzRmV8omZmI7exwAyjKkRbSFAdjfli6xIPkD26qOiS/REwBKsfY1Wa8gBz5g7yxA3UP0vNoQ1bDQ4FgT5sZ8zVsvLG2rY+flHSJYZuj4F5FNv4COx90g4hrjaLZsW8WFTxgTArIsEDSqKHKjr/gXcGD0N5HKn1lrhl/0dGuByOOouTYe5+hHG91f7Mu4IbIBqWie1pr8OC9VJ0gTB29iBOvFGEdaA4XH3I/RGMWGM01mZg4iMQzR7MTOYX3DTFpnLp6qMiKeS8mExbDyakkC61MyMmTXDYIuvHxo7zTKJjuYWHFnprnxjyZtbdt3+JsKnvl1/Kx4n5v/NURR+OKysVWBeOUDGYgoEa9a65llaGneOk4qeckBpRsv38ecs/v3NF5YZP4ldGBFp3KoZCkLD8jegz23U0yNjNiqNM+2rhExq3CxpYtCphrA5xih9MXHjmiHRh2ZwJblHn2MVm7HP0EkAPXXO7IYiMITcxGZND8U6fwANwpZ8JVbzZqRZ0Bazd2Stf3o7Ovi57Q2bBrRzc1Y0MCNNo140YXMGwJvBjA/Z3b79iIiHt51V7maM10MFVGdZnyZnT5zNxiwvg0FskIK6LkpeDYgRykILdJrY9AeXjiIV46YZXz6F8=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700016)(1800799024)(11063799006)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	9UTYCQK81cGchGZYe+DJWoxhXkNjjg2+BytJkI9Y0eSgnA5vx/9UTDvXgb1d5hUfXlSuhDeT599CTvHpHFhWptth+LN6qzVP0taUeHk+DIFN5voG/dG7o+aYMLeOCqmNZMdgG62QAvGF0+esenp9MPG2uBSnIhes+UtfT3VM+j5pMGWOgewxUwONJhtpxmu+v9rKxeHWb9zwrM0SIKuUvP8Be7jEl6uusW5WmI0w9fy/tN/4ojuvatlFm6q3LelSE2bLirhb0/x/TTwBNRmbFtyRYctVSmoyAX77IqyBHuvthyXo2JZCPi9hJU85rcQ+39/1wmtxird+PeKb+Ha1CxlEPRq/wMO9QT6UIW6qjPuU+Af9wlELxCUfsXMo00MADEtgY/TME9Egx2JWa5Lctsf1ojaYR/1dkzqW9AwcpyCpkmm3VVmlpAdEovhqABmT
X-Exchange-RoutingPolicyChecked:
	QEL/XlJ2LXF1mbAPyADwMePnOucmPl2wIGsh6wCU4EK9XoCxwVTrTg4xxmjNW0DFdJPP+CVWeEIkfawDcUGrJl/UTpCu5tNN47s1zrdus2Ghize5AKbMLU3FxxnJ2rYuM43pzCcO1RJWKA0Fw3XU51/a+bBZB/f/Sfn+BsO/4gIgBzkpY+rENgkskQTMjTd/OADTbW0soMim8JAYcf+i6YSKDG9q1ncFiLUOU1wLWTpZJSvA29PGEdmZUe6wH5d+0JkupGMJtJOGUiV6HzwsR4Xu34IpCN4daTdbiGQtYZ064qqdqohq/P50ulbbnaP2y1jSm0zvZvFUB0ZSfe+QOg==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	TP2QCFz4HoJ6X9DZPYH9SivX/Mhb8sISQ8cgAmY6CPHZwlTT8BPWoB1ERQ/XZr+mXv1YPQ86UnBMBe+qfkTpz7g0wOF17QvsstkTvjVspeSq3hTBWDnTPkB3nu6RVBiZbzwaS4ePQVRb0McO14DyAR/g1Y6z5/rFIu8/6PgQbNrrafTQTvJ0DfZHx9OyUMx+zvyVkkZnvAYC6JaV/A58acOao7vnLKQfEQ5xy5GdcXXqretyfbPwmpU8e7jcigTPLuPQqhfAxcbQOzobSpmc65xcvXxtJbC//nVNlfe8IekiOTMxMh/1oyGKGRmFmn543fCOizE0JixXDzjvPertngK7n8SiTHl9j/UQv9Xx+HTfMTNHvNImrb88XJjsPihhwsAQPg9LE5VQjnph++XeB0CJ/yIe7bhPJQo8ihAEwXv9wTsp3Q+TAMZsIhuJQNorw9Awa+WhVi2rNv2NTFyyBl21NAv3T49iiP4UlO2YwtDzCKP0Q5uyPF7Z/hyBRHUhkUCHgMmux+V8JbRZJZkxzjYMBtQU/G4UNfnqR1lQEV0OegrymX/ShQ7MWTLXOpDI5jmbngXW8BMUbJnvGJWOSkbdP0B1Bsy6kNxrzAXZk5MpcFS0CX9CzK8tHnpgokHk0WH4OBaTEnJEEvvzzPUydw==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 21:58:35.9338
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5ed08dde-9011-40b2-36c6-08debb71efbf
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000AD7B.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA6PR16MB6886
X-Proofpoint-GUID: YVGyLSUUAorXE8ZgWgbr83WEJ-E1fpef
X-Authority-Analysis: v=2.4 cv=UqNT8ewB c=1 sm=1 tr=0 ts=6a161791 cx=c_pps
 a=KTjCFeyF3Vp3atYHcTGfzw==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=N9_n2FxmZfwfyRXvS9-E:22 a=cbNQJ9GKAAAA:8
 a=DBfv99YmAAAA:8 a=WngjfBvNni4G5VxG9swA:9 a=P0bj-C3X3jJDpopQwM1U:22
X-Proofpoint-ORIG-GUID: YVGyLSUUAorXE8ZgWgbr83WEJ-E1fpef
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI2MDE5NSBTYWx0ZWRfXzjmneTkk0Ml+
 0UauLi5VjUHPI39TspeFge95zmr6RpF6PO5yMyLhYm3hFwxbZWSDJ64eL4FLE2NCWC0c+Q9uYpZ
 LGqYxmdAFZahj0FONZRa+vOMLeYZGb6+IR5H1J1OD+LffwMGt8HKxHFmBRw6bUeToCjUkuzNtl1
 mZlSJEUNoZnok93offIMtL8/fUyuzLViK3MJfFUYeg+2VgtqbUaaY47bLvIddX41AYTNWtu+itl
 E5euQPYFYAZPaL1OGCW7BeNdXpOCxUEnVMXSkLYuTXGjomMfJzalDR9eLQjN4kIS8PcjSqrGAL7
 wszVVNf6IwmxP9ELCLofdAvaBsbzjhKyuA9YqIhxE3iCKYfR1MHeKUv4ctj2gkE/UWGXmZDThVp
 V8effQsSMmci65kbw7YYhqgeuKrjlBePJlFkOPzKKcFYoBsSZuPhKIN6RgYMWJvUC5XF6Hg6NwM
 vP3rzbsO3rkS0eYqs5Q==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-05-26_05,2026-05-26_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 priorityscore=1501 spamscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0
 clxscore=1015 adultscore=0 impostorscore=0 bulkscore=0 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605260195
X-purgate-ID: tlsNG-c201ff/1779832723-E0461443-6983C944/0/0
X-purgate-type: clean
X-purgate-size: 1055

From: Denis Mukhin <dmukhin@ford.com> 

Drop XENLOG_ERR from the logline since argo_dprintk() already injects
the proper log level indicator.

Also, drop "argo: " prefix, since it is also injected by argo_dprintk()

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes since v2:
- n/a
---
 xen/common/argo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/argo.c b/xen/common/argo.c
index 98a3db7fd070..5da14c929e14 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -474,7 +474,7 @@ ring_unmap(const struct domain *d, struct argo_ring_info *ring_info)
             continue;
 
         ASSERT(!mfn_eq(ring_info->mfns[i], INVALID_MFN));
-        argo_dprintk(XENLOG_ERR "argo: unmapping page %"PRI_mfn" from %p\n",
+        argo_dprintk("unmapping page %"PRI_mfn" from %p\n",
                      mfn_x(ring_info->mfns[i]), ring_info->mfn_mapping[i]);
 
         unmap_domain_page_global(ring_info->mfn_mapping[i]);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 21:58:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 21:58:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320181.1587566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRznT-0004tp-Iz; Tue, 26 May 2026 21:58:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320181.1587566; Tue, 26 May 2026 21:58:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRznT-0004te-FY; Tue, 26 May 2026 21:58:47 +0000
Received: by outflank-mailman (input) for mailman id 1320181;
 Tue, 26 May 2026 21:58:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wRznS-0004iY-J3
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 21:58:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRznR-00CFSu-V4
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 23:58:45 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a161713-bab6-0a2a0a5309dd-0a2a4506eb32-38
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:58:45 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a161794-7371-0a2a45060019-94a38ff17416-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:58:45 +0200
Received: from pps.filterd (m0367128.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64QLjmSm426838
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 21:58:44 GMT
Received: from dm5pr21cu001.outbound.protection.outlook.com
 (mail-centralusazon11011022.outbound.protection.outlook.com [52.101.62.22])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4edkqj82af-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 21:58:43 +0000 (GMT)
Received: from SJ0PR03CA0061.namprd03.prod.outlook.com (2603:10b6:a03:331::6)
 by IA1PR16MB5456.namprd16.prod.outlook.com (2603:10b6:208:44a::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.11; Tue, 26 May
 2026 21:58:39 +0000
Received: from SJ1PEPF00001CE5.namprd03.prod.outlook.com
 (2603:10b6:a03:331:cafe::af) by SJ0PR03CA0061.outlook.office365.com
 (2603:10b6:a03:331::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.12 via Frontend Transport; Tue, 26
 May 2026 21:58:38 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 SJ1PEPF00001CE5.mail.protection.outlook.com (10.167.242.21) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Tue, 26 May 2026 21:58:38 +0000
Received: from pps.filterd (m0426315.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64QK08vu657994
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:58:37 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4ebx4s35y4-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:58:37 -0400 (EDT)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id RznHwWjCutNm4RznHwiaTM; Tue, 26 May 2026 21:58:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=Jx0
	pRbwqLwu7lyevOfiEqPs8vsOpi5AqYJ22rIZsQkQ=; b=PQPPJie115nDhWPGle6
	vMGbk3tEJyRHcwoReL3HWgnOX9Sh1htFDSa3Z0SPt9gWYkPqBJrYZpcssIVl+saq
	cYSBHwc+tIKBBYx6Xaq52XOp3qcc1wsijx/2hYapM7NdK3OhpJaOByO0AHBsf0ke
	MFeyl+A2kVSylkz1OdMucExm0VtblGeYAbJvDv1v4pyXGmZ8iuvN6EvWERDvCPlQ
	g0b46PNWfoy5JYkgC6iOOvQtxUIkSG1oF/4YmJCWgfBjnOQM2SMKE//qKv5vofNz
	VhunUuwLU5G+xbJiWX4kinL+yzpQ1D2UX4C7qbZzLFfXOOzerEMBahLxwAAlubZ3
	8xg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XPXl3lQWkKCfeMCxWLXpEg2RbCdkiElhe2umqQf0lQQBqMPW+wW+U/QnKToYn3lWh3SEQGvTeMLHrZdQAICdBRKK9GmH/FdWYcd7xnGF7g8siIqWD11pheJOd+C7BzXmoWxNl+/dVv67GEhdF0/kFdX27FpR5AWmC5QwNWBtTQBKjNxdorGibAZ3EPAj9oY6t7Ba+GMcXEtyjTfeHLtgJSNe75TPuGnrSpgpWSAlMzj03P8pP/txgpN7JnNdp6WkU3ToY01raAqo4+n7ngeMickkHamF4ynnp8l2o2H9pPH7UWkfbnJKAG/xrvMcuHuBmG42e8sBE8ItEETyqlNmUA==
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=Jx0pRbwqLwu7lyevOfiEqPs8vsOpi5AqYJ22rIZsQkQ=;
 b=A0PldRBWZdsSNBV5tKqUyoc/hO6yXKz4Hmb9ehBQWehQtC3W3GVKG4R4TTeabjVzvoXTccj8ydWRZfjntOuCjWP5/vRrdxfSewOf1vi9WZuAstbbxCQzOcaZCgOJHDT9KJDHJxTp1FB+h6Uy/rcva2eT5Ge0hHF9eUitjocI26VNzel9rP6jsm/Kv8IidmmrqT+Dhp/CGiHyVx6Qk34w+m8ZgNSXfANNSpfcHCyOdismj4u842/I6hNgn+7Upkkbd1IgEwPVh6lQ0Rht6X/Uk0Vdkf2hXrArQFotsom5k8fgVUFPfdpncu6sPV7mLQgKfuW2jYjamLkk6mlH+//Pvg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Jx0pRbwqLwu7lyevOfiEqPs8vsOpi5AqYJ22rIZsQkQ=;
 b=hqtDGyVpjB5LidDGSqvMoT8a0129ygNskraAefHDwoAjOQaaG4qWrB3Z5VvOiV9oRt9aT8L9BSJco5G/8johePT5EtWea/M61xJulmvKKTGKfGZSh12LacN/eHLj3hAXY3ky1ZlvQagj0DRqZwWfh+0kRZNzIhCXX38UDqoB6CU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=Jx0pRbwqLwu7lyevOfiEqPs8vsOpi5AqYJ22rIZsQkQ=; b=
	bZLdBOiP9mYoOSwAIkQ3dMTaLMCKq+Y9MMD9+68Ukt25BczlMOBP/fO7GkCK7DrM
	yCpbxcKYFEZYzF2JKfSZzCyTFHFmJQMtYCr7VcB0CcC3saYwK0WYr+qG00AOmN5V
	52HVBA+RSuYD1m9yrEh/1PhC3pjBT+2u4WeNt/IVRzKQLn7PMdTESsVMkxoIz0pu
	xHhwKdjFJeONZSS3WwiyVGDQpjZCPgi8ZIC7I21Aqhn2BinSujqokxL9JJePDpoN
	zGfrg5hNNfZpfHgRnr1pQo4VASEqJ2gjJjCnezTaTw6zpN/xGCnLos+MPkWmKxAI
	IlYKOXsEbwZYlRpVxzVn7w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=Jx0pRbw
	qLwu7lyevOfiEqPs8vsOpi5AqYJ22rIZsQkQ=; b=LNro+0RrbaI2t++EQGrvacy
	LZfvOTUheunhB0YN3f7ExbPkfbGUBWyUVeBtP0x5YwZcmHsHiNYKNaqLZhc5jLGe
	vGYz93/2nDH9utFsDxlHL1k7+YPTsgdiE7M1mjiGBe1fyNT4uKIauss90JV1wSic
	8QGkINm7vPqT4iTh9hUWZurgH640hMUoNR52zRvLcpVsYyRkdDHKG/kxexFIvnE7
	WLhEGEvHVCtwE9tJgKsQOT0c/RmU/gLRAJf5j12qGxTo7AyUnbgyQrOENOO0tlC7
	3sh9FBnQjdQfSeRn8nEoC64JYS8dO5G9FIHzK5LuAmdGjApU4x/vAe2TJ3ciUnQ=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: RznHwWjCutNm4RznHwiaTM
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, christopher.w.clark@gmail.com,
        dpsmith@apertussolutions.com, dmukhin@ford.com,
        Mykola Kvach <mykola_kvach@epam.com>
Subject: [PATCH v3 3/6] argo: drop argo prefix from argo_dprintk() calls
Date: Tue, 26 May 2026 14:58:20 -0700
Message-ID: <20260526215823.1452619-4-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260526215823.1452619-1-dmukhin@ford.com>
References: <20260526215823.1452619-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-05-26_05,2026-05-26_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 spamscore=0 bulkscore=0 phishscore=0 suspectscore=0
 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc=
 authcc= route=outbound adjust=0 reason=mlx scancount=1
 engine=8.22.0-2605130000 definitions=main-2605260194
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE5:EE_|IA1PR16MB5456:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: eb79f924-0569-48e8-a8c0-08debb71f12f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|376014|1800799024|56012099006|22082099003|18002099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	DoFqn1R9LKZ34fNs0QzPEG4IV5H0HbaQr/faYt4c9ExAND13y5LALDudp+d1Jly3YgJD+0FI/S3Qk3k1erSYSwOBhfzKW/+mK63h15dY4DPXGSP0FiVI21RhMFuNOi1AI+A2p4LAwMGK2PmQ7IVXe+Gcb6g4PSf5I0nnXdPe62NtBWjlL1ynBZ0/yi5V08wa5IEU8R7oXW8Ic8sBll87m3Tp1/IoSgOiUgN1xf8TBvP2tST0PJdD6zasACyvq4WEQALmV2OO4WNYBanjqI1t/fi/o9e7SveZYLaHwItr5nkVqCJGLCNB5vC1eOCQNe6BKmIt4y+5AM7XvXyK1xS7llN08h5T3yZzBG3FQkQAmnuU/gqP7uvd18mE8U575IL/FNpCpoPuCca3AvuJXnqO41HOkavnVlEBqOI6icaX2wsQ/qECEzsXLWq6sG1tWePUsorbzskz6GLstcTvUBpCJUvdK8/3yUP06AfmDh4PoGwUL2bl4kLwzeu2t7pV5y+wp00sC0FaUKoND+/MVe06fkDRQQheyK1RSL94fiYUSoZFYvFTrFx7tlZOPRVTUkjM15IkxNtz/DdV3uuyJ+Utr5nEmcgOluO9bJw9Jgx5xxAho7e9h02jpMyy0IwTeWq3taWPVImWd0GhDSn0Q5Ok08g2lWnl2TZEKdD/KY7X3W9qf2F8nXR9abqQaqrBrogHIgErX87oYm0GKVD+FNvJGe/mjDmE5jMJIy9LA8NE4Do=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(376014)(1800799024)(56012099006)(22082099003)(18002099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	rvtOIP0cCqf3YmMeXhuemvKhxAVM0wxsU3h8qel0Xllh2QMhnX/YCKPa4cgvFps73VhV/21ZvU1gNh1fP0ic7530bZ4ZBRJvgPvuSd4bgcQivKZHqzhiOGPGVzZvbvXFjDgSPfHot6vMcybBPLug/fRiQvBXaflma2LxP8diTOF9wCofSz3qCHQAlRwSxN/7dUK294v50Lv7++7jzlYH6ucBDi+UKwE969QTeHyXnGJtxRXjJKGYSXK/ja+VcnleI0rApg2qBlzN0jCtq/G7mKn9Nmlfwtm8VHurUnyfgq7euQP+AoLNrYEVpnx3ZblthAFUUwiS05Fm8xWr9yuiOJrKb29qNyMWJ24uANyoIM0aAMTao+Heb6u1zqOVV5u2uLa/c5y2DMfdQ35Ata9zGVKd48hDIp7Z+uN+X1tONKKvyfBSxKBRNwUXS0bjCL93
X-Exchange-RoutingPolicyChecked:
	jPY2D+4GolpEzPReW5HteYeGPooHRWz5h/0k4CJ7HrjxwBWS5FUIFTEfIwGK+ia+wkqwqRuekkr0GlpBmPgNrc0DqZ99bwDtwbsVlbRg+fUJ+O0Vt2Vl1fjpYxpl+d2Y5JW6SZdqyO26eghTOzR1ccHY9YQiAFQYH/odfFM76K/h5jufnTngx7uqDvReALV7ZrNY5sjXsCJG6ab1W4b+YrHv2js8lOECraqjmL/SSu2Huitbzq6ZYGJ4CGOwoi1VqaHT/xz39h2yqRK4d5Sdx64u26R7Ye7IcTEw+GStcUHi7Xdxp5fD285WZqQRaextx4IwTTb6EizM0DqGEZuG0g==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	ZVrtVPLDPKXaY9N7fNUJiPEKIIglXf/q+/9JbSP1zx33Ozlz4hgBb9EqNKumX1NUw0zSkBuiyj9bOZ/BwHoG206EtgivAteNQa0ftFPrzYSh+dVY5xDGjnve21o1OulYqrNgPkIwnmOqJzx1c5BqXX3pNMjWqZnOboZu3dOxaIpRgsuEPAlqfx0gSRwPkNbUx/QGb67ddGW6cdA5y5b4ATPg76DYmVuFq/LUgRgANhGZ4qjaAqa83gvwYthxvQNy8JP9Gg7HGxcpt/lsI+TDrRAxb4FHipOxGqE7vxGeUjoITFe+CZfBG3peXOCoBtquJ4sLTT2g3YfCia/tfc+97+9X4Y+auUbPsdTJzxhZhXfv52rK4RSL2/bP1ehVXhN822eUML9RVOnlJrIZHwQUkbHz3OCkXbBVGx1VX86ckomHBqvn8Le3YF/3DvVmtObTZGM7fmIFp5H55nnADjZ8htjmBImq2WgWHNX50LkMqW1A7Hhoz+QkJ+pmGbJljB8mi18fPN/11fhyRl7dei0gO8ctXtHcPViTCZTNeEzMGp1CtOg1rax1eGvtp2SVZnhzx4CePQ9FnKOJ3j2Wrz8OCYmcU54mAD+qgkFeP71ROGn0RR7s+y1LwUZOGjSrxflL66MPs/JgWPrEoDgflwxkVg==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 21:58:38.2661
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: eb79f924-0569-48e8-a8c0-08debb71f12f
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CE5.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR16MB5456
X-Authority-Analysis: v=2.4 cv=F6FnsKhN c=1 sm=1 tr=0 ts=6a161794 cx=c_pps
 a=OTtHDJnq+OHIMh0/YV57GA==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=WER9OelvoqQQjwJToBYG:22 a=cbNQJ9GKAAAA:8
 a=DBfv99YmAAAA:8 a=TweWIa6zg6WzoLAQ39YA:9 a=G69WFyCBNqGPyalROSdv:22
X-Proofpoint-GUID: Ud2VHzoTXWPdIejEg6TrDMH7Y21es8Ph
X-Proofpoint-ORIG-GUID: Ud2VHzoTXWPdIejEg6TrDMH7Y21es8Ph
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI2MDE5NSBTYWx0ZWRfXy3u63me6lOA1
 WDR9he525ydlgEXcFayW+dfSONYVlQuQqfE4JIIGxz+DCNWARgmgVPhfkx5i42t55idUm8HrB2K
 SA6mj5wvQgRZAcRuZe7Nw65luv/C9tFTzbMOG7ql9QKDZM2WNbe8LoSEfKSHenPcCjMYO5vaAua
 QRIm4zTz7+E9cAf+xLDTjL3gHcbNGhHlZxjTEB0LSFBLS66EuypI3H200SsqkrI/yRi97JBC3Yc
 eMrLtWYPtu/VbDedTT71uRGvRkOZbRqUgD58LP6Rx8W7Y+scwLoxMuMkmXwOLtuPsYLjlUNXPNG
 sI8V7q2mwL+YFTpzdgXQ2vcKqsREZe8z6odVvVVsANNQQJd8+Yw42tR0sEIUFmtOIURmqD1yHN6
 19hb2oETEJDLf1WOzCNNCX6Xq9jI9VRNXp4I62DGNW1jxIr0pnbemTcAxoO71T7qga+h1n+qdFe
 Wrva62EvC36cYJCTk/w==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-05-26_05,2026-05-26_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1015
 priorityscore=1501 spamscore=0 lowpriorityscore=0 adultscore=0 bulkscore=0
 impostorscore=0 phishscore=0 suspectscore=0 malwarescore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605260195
X-purgate-ID: tlsNG-16d1c6/1779832725-87170D75-0BD86CE6/0/0
X-purgate-type: clean
X-purgate-size: 2379

From: Denis Mukhin <dmukhin@ford.com> 

argo_dprintk() prefixes all log lines with "argo: " automatically.

Remove duplicate prefixes from log messages in the Argo module where
applicable.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes since v2:
- n/a
---
 xen/common/argo.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/common/argo.c b/xen/common/argo.c
index 5da14c929e14..ffa1f43437ab 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -1467,7 +1467,7 @@ find_ring_mfns(struct domain *d, struct argo_ring_info *ring_info,
     if ( ring_info->mfns )
     {
         /* Ring already existed: drop the previous mapping. */
-        argo_dprintk("argo: vm%u re-register existing ring "
+        argo_dprintk("vm%u re-register existing ring "
                      "(vm%u:%x vm%u) clears mapping\n",
                      d->domain_id, ring_info->id.domain_id,
                      ring_info->id.aport, ring_info->id.partner_id);
@@ -1527,7 +1527,7 @@ find_ring_mfns(struct domain *d, struct argo_ring_info *ring_info,
     {
         ASSERT(ring_info->nmfns == NPAGES_RING(len));
 
-        argo_dprintk("argo: vm%u ring (vm%u:%x vm%u) %p "
+        argo_dprintk("vm%u ring (vm%u:%x vm%u) %p "
                      "mfn_mapping %p len %u nmfns %u\n",
                      d->domain_id, ring_info->id.domain_id,
                      ring_info->id.aport, ring_info->id.partner_id, ring_info,
@@ -1741,7 +1741,7 @@ register_ring(struct domain *currd,
         list_add(&ring_info->node,
                  &currd->argo->ring_hash[hash_index(&ring_info->id)]);
 
-        argo_dprintk("argo: vm%u registering ring (vm%u:%x vm%u)\n",
+        argo_dprintk("vm%u registering ring (vm%u:%x vm%u)\n",
                      currd->domain_id, ring_id.domain_id, ring_id.aport,
                      ring_id.partner_id);
     }
@@ -1781,7 +1781,7 @@ register_ring(struct domain *currd,
             goto out_unlock2;
         }
 
-        argo_dprintk("argo: vm%u re-registering existing ring (vm%u:%x vm%u)\n",
+        argo_dprintk("vm%u re-registering existing ring (vm%u:%x vm%u)\n",
                      currd->domain_id, ring_id.domain_id, ring_id.aport,
                      ring_id.partner_id);
     }
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 21:58:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 21:58:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320178.1587538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRznN-0004Ez-KV; Tue, 26 May 2026 21:58:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320178.1587538; Tue, 26 May 2026 21:58:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRznN-0004Es-Hr; Tue, 26 May 2026 21:58:41 +0000
Received: by outflank-mailman (input) for mailman id 1320178;
 Tue, 26 May 2026 21:58:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wRznM-0004Em-6E
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 21:58:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRznK-00CFSu-W5
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 23:58:39 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a161783-bab6-0a2a0a5309dd-0a2a450bc60c-6
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:58:38 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a16178b-212f-0a2a450b0019-94a392175ca4-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:58:36 +0200
Received: from pps.filterd (m0367124.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64QKrWFM986654
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 21:58:34 GMT
Received: from bl0pr03cu003.outbound.protection.outlook.com
 (mail-eastusazon11012008.outbound.protection.outlook.com [52.101.53.8])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4edehkb5jn-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 21:58:34 +0000 (GMT)
Received: from PH1PEPF000132EE.NAMP220.PROD.OUTLOOK.COM (2603:10b6:518:1::36)
 by SA1PR16MB5121.namprd16.prod.outlook.com (2603:10b6:806:326::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Tue, 26 May
 2026 21:58:30 +0000
Received: from CY4PEPF0000EE35.namprd05.prod.outlook.com
 (2a01:111:f403:f912::2) by PH1PEPF000132EE.outlook.office365.com
 (2603:1036:903:47::3) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.20 via Frontend Transport; Tue, 26
 May 2026 21:58:30 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 CY4PEPF0000EE35.mail.protection.outlook.com (10.167.242.41) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Tue, 26 May 2026 21:58:30 +0000
Received: from pps.filterd (m0426316.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64QJWqRe2291769
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:58:29 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [34.209.42.160])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4ebu9cu9g4-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:58:29 -0400 (EDT)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id Rzn8wf12Ol9zvRzn8wKqWY; Tue, 26 May 2026 21:58:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:Message-ID:MIME-Version:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=ppford; bh=Lu/bScFOTZ2NM1x5hnwYfy/6h
	1orYjRxEVbML1jLjls=; b=YvwPboMMCo9jW7IJ7ADaYNZQQmxnYb8jPx5FGKQ9o
	1s94v4BTuxogzaqCdGxgfZ0PFYImbxl5kSldU7vTLvq5IQ+CXEM6XGU8KFQuOs23
	KfR7dck/eq/+ooH7UD07Yf6TQVhriCKJVrfvM3yc/nwMaHC3JRZUmAyfuqBs8VSo
	+0QXXXnRXhPxNiusEvr+csebVIPy8kVzo/tY6cS8b72EaQH9BitY8zR+wqGaqUgo
	BTAx4RRjN/CM+OAUMK69iJSee2bEkZbsJPhdaXgtglH9EjW0uPdbm9UF+c7nlp9s
	V9u33lMLqPmxGOvQ+3cispfIPlRcCwO4PimavxuIQYzWg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jjW2cTjaCsEU7Ol41oOpyCCY8ev4DA//jbbinHrrhDEUtOela60G3ycDvfLBMtWqnZum8KyGuSXEMxkfNJHemmvLCFCoZiF15/XuuF2JVraBDO1q79x3e9+PuHbTSxa/oD39VIcI5511ykdXpCpFpW7ciTM1SNc7IzV8zkiR56KKPgAYPI08A1M140gOrRLSqITIi177Dd+PGSGkF/txPQRbZZuYy64dabdy9o5tsvoS5GIZnjh1DnwBt7GujeVxPXBtxN0hF996hKqGy3E4VWQPz3HKKQVwpHPNPwq6lj37QV7fir3dd/aJm3vc4Cfl8qtPRGLja22Wa00hOxErcQ==
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=Lu/bScFOTZ2NM1x5hnwYfy/6h1orYjRxEVbML1jLjls=;
 b=l6NK05Xw524gM1y77n7CvJcRVmb2ZsoIRukTve9AKmqUXTuK+1YELCyA+HkSGmdKz59xN5b8vHKWuaWdyrzD85YbFdJWMUBXKwN8hAmyrRwx9h/kVrTUiS8WBw/ffq4FLfPQxB0h0178R1ggwgTLtv0OmGd9dKIRaJmAM2oFTm6jw1HCNEvx/bM30jnb7NE2exE3KEj8GHYCy5+PUDD9etg4DvRf/n2cRc/0aCPnzwzC9wpvdH3EXhwFlkZx0yNAxRtj5hx+iRgLmbKUgAhPJWt+wCfUoboKJ1YhZ3BmGvj6boUSzYiiCcNawMgZKSk9v24xBty9OX0Wgi8QNghAlQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Lu/bScFOTZ2NM1x5hnwYfy/6h1orYjRxEVbML1jLjls=;
 b=aBvqnqGicr/ju1MygrBokvjnE71EejxuTwPFlnj031JeJnX8qzYtNwbX4r0vyOwFy0zSvfKRNXRhgtVH0U8/fzlSsncG8CcG2nMXEY5hsbFMiGBbbSvIz4L30YggBQK2OmAWrLR85396LRUmXWEPldfW+wI/BQJ0bbRigJWfWOk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:message-id:mime-version:subject:to; s=ppserprodsaar; bh=Lu/bScF
	OTZ2NM1x5hnwYfy/6h1orYjRxEVbML1jLjls=; b=Ip60TYncVcxkBRvwwthgSY4
	pVc/u3b9WCmttLSWccQlLWLKJuEBF8WjR0RTV1SW8rgJSDOQj3Crvx2uOmbedpxh
	dl5P3759SBGKybZyJx/oI2QpSi6ABa5uGKvHjKhz032ILrUA9QzkP6XGZHh+SH4g
	TkXKU+K0Em3DQptGCiNmRBdhoV6sLv0y7OlaF3OZ5yFx8dllTzhD3m/edp/pDpax
	q6yvXNPwDw6tC2M6YrMWWBSDSETAftewxsuZZMc3TJRCOKt2Ratnhpb+76AeONfV
	3dix26YvV6PMU0khjVDBKNQDixNTXfYC+PNFzZi99SyEkt+Vv2uOBWf/tJsrMnw=
	=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:message-id:mime-version
	:subject:to; s=ppfserpocford; bh=Lu/bScFOTZ2NM1x5hnwYfy/6h1orYjR
	xEVbML1jLjls=; b=dTuTOKnI7OaCJP8htaYKJLYyOZ5hiU+KkU8g84pVjwAPDqY
	fHS1XUr0EXpomGfXBadkMgFHJK2WXGZuCHLjJtu3PtOyawuyWV2YZLgblOVYvu7P
	7XrXf6KPUglyXtrDSAr4DUSeXsMGMrau69jSXw5pEXdZ+MsJCAUbzeaVviB+zqXd
	JxsmPEI3DV3VfDA2J9eRfkLnhT7/8GDRHwBX2u6DX3GBCllGpBJIKz9LkAaYdJco
	AK8RDNeli20HBepDbe1TxzlFfGDTyPwIkvFvdNzsjS3n/xEGMXuLqh9jex+PCBVH
	EItiK1I25rgRzLBTnUvSV7Ffjy7uBeKH/ueK+dg==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: Rzn8wf12Ol9zvRzn8wKqWY
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, christopher.w.clark@gmail.com,
        dpsmith@apertussolutions.com, dmukhin@ford.com
Subject: [PATCH v3 0/6] argo: few log fixes
Date: Tue, 26 May 2026 14:58:17 -0700
Message-ID: <20260526215823.1452619-1-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-05-26_05,2026-05-26_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 lowpriorityscore=0 suspectscore=0 bulkscore=0 phishscore=0 spamscore=0
 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605260194
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE35:EE_|SA1PR16MB5121:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 5978ab74-e958-4920-a9a7-08debb71ec4a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|376014|1800799024|13003099007|56012099006|18002099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	Qfm53cF+IAIhc4s74HGnm2Aev6rPI1yT31cn7x7yCiWl6Cj0wgyiL1VyvFLfaP/JrSfFsujl0B7B0tKmE6NnIb0Gw5uGgK/DNVjLkr54E0//w+rdXhtzVQpv87DFxSYEigcD5WFm0YppUbQ52JKLGun76usO7yJfdlc/94QQjHiyg14ettBHMH060M4Ir+czQND+YUVUdqilwFXeP2OjkKS+8BcRaQofbbdctly7ai4T1sSi1uBmhbhVK5mbiDGuSubYpD1YfjM0RO35hbiQxxTrzxtdR8LiVohtbPPPyfL/1qRdyjbjvXatsTM+UVHvpPAbNiF6jlJqp8LG5GSedNJ9m+zUKmeC4jgrNikvQ03yD5xsLmUwuXUnTyw4e+k6nREwP/Y4dK3MNnn2hUusERx7lhK4YrFgqILNXSgyxFznRINW8j2VbdvjKBNPPEGMoa5kO1EDHfpssshzYwk1lXl1CMREur3PK9b0pmmWBw8A42/Zy+2KPL75fz0gq5zkP7VTkgs1z1pVRyXXg6wbWx9xMSWyL2aPsGE415vNitI14AfyA5UJATxZ5/jTHZlNtztjvvAIZJ2SG287OB5RNOu4JMGl5byDAYJKxjKi3zpeddOQZvVlVmDm+bRilh6Xu7TeadiEd/ge9zep7PG/pVi6zH7DmhpmAB6MsQhgLXv/EUwdGr4uVwCCp6d35ekPd4k/bzeAOKwhb/0K1xR4ab/J97Ks4hh5ZEadBoFf2MpBH0jya1uo0sf5hpNSmRMJ
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(376014)(1800799024)(13003099007)(56012099006)(18002099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	zjE/EbCNIbpqVTLgBtF0ZNhfeExqqqUyreidSEX7gfwZQaKJvGM69Mtu/XU2sYYm3LmtP4TzWMsGBzJOTF4ZpZdOWKWz7ClS1xgeidWLMm1ySkKR4nXY2HeaYC7RVaM38m/qiKC+07viqThmOIpQVAUK3XualhUq5JraQZHZ1Q65qmfLDBtLKSzmnZQUTI04mzW5YGhbUBi74Ws1Lt8Rd5Ix7ItU4o9SVhE+teXX44SIKcb6pEEhL2jfconom1Mk36njGqpxYJd9SI9XUSHkLIYV+3TeadqhYs/gUJzsZZ1POKWxOK4P8A61cNXACVK9FlqXcnXA0hyaSpnBwdU0+2WBLC1h2/oZz78hUjlYXnSw5lRu2K4hWdNx0DS5cUbFPsRQK9V4KIeDlutwPkGwlu5CW7AWtFol3SbrlvLbSZZzFyY7EjyznjlX//hPLphv
X-Exchange-RoutingPolicyChecked:
	Sxv9dedDcqNsQIhsoBy2sa/V21jjJGfQSnaXISsDh9M3Bee5LXQa1B2gQNvGMZA24HrHzu7Wd5YKj1XljS+77EVFT7qojDx7IugYbzMR1QAEoPnhp4uJIq3sMGo1Fc/RYeQJvEWhSyP7TI+YwF/5o4XPpMrrLyFrr34kGwv3D5txemouTkCPGzoe4pJrinGieh0aF4fYjIoEAzWVZMJWCY3zIkak2NXnPLLdbvO9uW8o5n6+Eo6PsCOeYHi6hbccRFPObR1THdUISiB29KBcjNewDmamkW9kjRg9G2fBr2NKdf4AdItO563UlJ+Q0Ww3oF/n0l9tbMmQBzdo5NuN+A==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	JD3ih0jPfKfAON/h/9kypt+KqrG1YzGGtuRRZA83PlA1sGj5u/+umD7igL6rf/uMWmZfP6rwiJsqC4TzzGs1Xyey5yy5xgOol0SZvkzJYIscgJi+ZVKTYe0U3D//XNrMKzY1Vr0WE8k1ov2sN3+mXty0xCVqRbVQN8kjlhV1hmPFL+R7BwRb17OFCDo1sXvHC+GpW1UWILzLEKPue26sYgKFe+05xsRmp1xe5uJ9mDh2r4fftLf2n9ZPomCFoYzKGzkFvkAn0kZpZwl4h273sQ0lWP944f1cHPZ4msH9E3Hhn6fEv7TL2QgpcN6s1+bSqAvuavO6bXSykdX3f1O6X+S53L+oCmEYZL6sPRBn7nyj5s+LNzTT3oFUCuJDkPpx1U3ipKri9FLvDqx9Dmv/iOZSqfEo0eJudchl6EFjJhJLtMshyvUPgxyEYmC9/o1LU9XTuoSAu884OlFqZuiE6pMicNku0u6wyS4eTCS97oJk2SrVyMsgzO3IokPBoO9/lk3alJHyAoxUa2LORbKF9AuOmAAgL+v78V8Qo+REkMNmF8R5N+JiCyuTL04X1006WSh5rqRWV2pJFnobNZpGpU/nVIEwg7U0nCvbF3Cl8UA9FxBqTFlXRGOLMN/DDqWOCUD6kTCRVqwmpCQEGSH0Sw==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 21:58:30.1462
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5978ab74-e958-4920-a9a7-08debb71ec4a
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EE35.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR16MB5121
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI2MDE5NSBTYWx0ZWRfXx56hDb49A7j4
 6iVOD5USS1rCexYQQWixIaqlRQeNKXrHX3jEkuF6p2dkx1B7UqHgteBXneVJDl2BgWbOAvpZw26
 IpC973EfB/xS1biXnzj6L62XGJn221NYmD7qWeXNb/0ANEzq5zYZhu8t8iIoBlW+NN+LQWU2VVN
 aU9IG8CG/2CxyU4e6F0ST0DF+qrmz8xD4pwBKvE6EC5nd1gecJ9gBxcE2gFcuHx2GMQpxMyiXeS
 +I8WqSaGCg+hbxf8Q7ROdD6YKfzrLRgQf+NEKslG20GCEJ64BaulGJ6gCltCkDalSQ7ocTtwV8M
 BJ2hU//yxO74pX+4S6rCj+BNqKXLSI6IIEc3XvtJmX3U7JuGy3DqS41fFJzOrojsr2Vs4i66X68
 A4zWd70HU84592FSB+N1OE0N1qDeoWdwUhiLDRMgAFL9BLsjiX9b9DML+Vzx8qSFTREMYgEI7Hd
 tMc6uPcHNNtC/NSjnGw==
X-Proofpoint-ORIG-GUID: PwBevMsNRd6_4BDrrBC9yT0MDLqVWTZ9
X-Proofpoint-GUID: PwBevMsNRd6_4BDrrBC9yT0MDLqVWTZ9
X-Authority-Analysis: v=2.4 cv=U4uiy+ru c=1 sm=1 tr=0 ts=6a16178a cx=c_pps
 a=JgOmb2+ItGzuqF5frRSN9Q==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=YJXg7OVxOWrJwj3yZo-i:22 a=p0WdMEafAAAA:8
 a=VwQbUJbxAAAA:8 a=cbNQJ9GKAAAA:8 a=XgQ2emwpFZqBfdcwoioA:9
 a=P0bj-C3X3jJDpopQwM1U:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-05-26_05,2026-05-26_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 suspectscore=0 impostorscore=0 spamscore=0 malwarescore=0 adultscore=0
 priorityscore=1501 clxscore=1015 lowpriorityscore=0 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605260195
X-purgate-ID: tlsNG-42698a/1779832718-12573F3B-A895588F/0/0
X-purgate-type: clean
X-purgate-size: 1140

This series corrects Argo module tracing.

Patch 1 lowers the verbosity of a spammy log message.
Patch 2 corrects the debug logline.
Patch 3 cleans up existing loglines by dropping duplicate prefixes.
Patch 4 rewires argo_dprintk() to gprintk() to include more debugging
        context.
Patch 5 adds new Kconfig for short-circuiting extra verbose Argo traces.
Patch 6 enables extra verbose Argo traces in CI to make it easier to
        catch potential issues.

CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2554382112
Link to v2: https://lore.kernel.org/xen-devel/20260522165238.844649-1-dmukhin@ford.com/

Denis Mukhin (6):
  argo: lower level of noisy connection-refused log
  argo: correct logline in ring_unmap()
  argo: drop argo prefix from argo_dprintk() calls
  argo: fixup argo_dprintk()
  argo: introduce CONFIG_ARGO_DEBUG
  automation: enable Argo debugging in CI

 automation/gitlab-ci/build.yaml |  1 +
 xen/common/Kconfig              |  7 +++++++
 xen/common/argo.c               | 22 ++++++++++------------
 3 files changed, 18 insertions(+), 12 deletions(-)

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 21:58:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 21:58:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320179.1587548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRznQ-0004SX-VW; Tue, 26 May 2026 21:58:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320179.1587548; Tue, 26 May 2026 21:58:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRznQ-0004SQ-SW; Tue, 26 May 2026 21:58:44 +0000
Received: by outflank-mailman (input) for mailman id 1320179;
 Tue, 26 May 2026 21:58:43 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wRznP-0004Pf-5W
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 21:58:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRznN-002NJd-V1
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 23:58:41 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a16173f-e002-0a2a0a5209dd-0a2a4508ab4c-34
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:58:41 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a16178f-63b5-0a2a45080019-94a392177be6-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:58:40 +0200
Received: from pps.filterd (m0482517.ppops.net [127.0.0.1])
 by m0482517.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 64QGZiPr1321050
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:58:39 -0700
Received: from cy3pr05cu001.outbound.protection.outlook.com
 (mail-westcentralusazon11013016.outbound.protection.outlook.com
 [40.93.201.16])
 by m0482517.ppops.net (PPS) with ESMTPS id 4edf672p92-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:58:38 -0700 (PDT)
Received: from SJ0PR03CA0342.namprd03.prod.outlook.com (2603:10b6:a03:39c::17)
 by EA2PR16MB6255.namprd16.prod.outlook.com (2603:10b6:303:254::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Tue, 26 May
 2026 21:58:33 +0000
Received: from SJ1PEPF000023D2.namprd02.prod.outlook.com
 (2603:10b6:a03:39c:cafe::6d) by SJ0PR03CA0342.outlook.office365.com
 (2603:10b6:a03:39c::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.11 via Frontend Transport; Tue, 26
 May 2026 21:58:33 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 SJ1PEPF000023D2.mail.protection.outlook.com (10.167.244.9) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Tue, 26 May 2026 21:58:32 +0000
Received: from pps.filterd (m0426317.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64QJ1rMm1212577
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:58:32 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [44.208.76.22])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4ebuapbcex-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:58:32 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id RznBwe2WGZ2SgRznCwFfCx; Tue, 26 May 2026 21:58:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=HFF
	gS7LNzprIErM29s6LiHfR1QmYVZ42sg+AvwyPl2A=; b=ZDI0549GoSQbPQueEeZ
	udXt24Vsmc6F66FcIVc35oY7wVZ13N3KQ1l83/IuWT+YfcYWp26tuXSNkzeQPEn8
	Wo1AI5j5x/GjGdHkkI07Ylh4MmCZY0y1oEZEETQXvvqT2QDoSay87LWL7LaTYScg
	be4MxHnEg7x+4LoGB+WPp+HdYZ3Eds47T+VAH7PZSqQ21qbxpaTV0M68tJ1D7pMt
	AuWMOudGy7NEdRXkJJ6hXCIFPqDNOhXPYNHmtlTw7FFfHKwMagVMcwtcADV5r/sG
	2dG9JNgmp4z2AQt5toQpNydPapY+enAaop4IAS9LDoW/MAR7XqG1zh5Al9ScF+im
	SCw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dYrjcApYWhKRuQbyPxhPrYPXXmhXSEwjyaINDBDF+/OntY4StONGyqpZqCFYs2b9pY03QIhCQ0P3tqeGxs8aB1q577fsdDzCkC2/04XEppSXVUWU6TGg2KL2dgtU4a2ZXrIs6mjocxosH3eWNAP91euK7n33yGMcVtLbYI/KYfZ4TVfKMVNMkbARmY5BAQPj35Wt/z6moUgVHKINuMvvSzwYZeKymHYzG0CspFNDwX/vrCn1ZgdL0pVqXUBHuiIyrzI8+hQ53NSdg5j9mu5LD1dSZWHFGPlysP7ybhCoj9M2ChLgpCQtEtaoMVY1rzUG2ahiZINUwOSZCuluBlZ2Fg==
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=HFFgS7LNzprIErM29s6LiHfR1QmYVZ42sg+AvwyPl2A=;
 b=K/OnscqMtFyA33RH6YzeM3N/nlmOrAoMx0Ke41HL14kqrfNVduO9n8ADtICupPjw4z6VL23JltxvQE5dGGt17u7A9Bwm3n60PawzypIdPYLW1oiX6lzeCyFH1Jz+lFIPrWY/RI0iBLq+Usf584yocn+jsv3+TE/wbStqxiBkjXZyHMQPj5blSTD2xAQsvq5X5gzIeoA1Sk5JgtJZFo1So2qt6w2YKPf2YB5dWd604JtI3HYC8GtSorNShIhFT2SxgfqKkiaONzPLD2pwMZfEXhlgnhwXxmpBH/YCiLp24EPs4+DYwjPtsofZCYz8A7DbhLWCaVZxopWnTtNgYZnMnw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HFFgS7LNzprIErM29s6LiHfR1QmYVZ42sg+AvwyPl2A=;
 b=if68sdUnnxvwxjFa3igKx187+BV51fmr8zI+VeG5dHhI+H69P+6ihQnUk8VRttE/pv7UiIn/dxWLX2MgfC9ZUNrGzsHA+21Lj8bw1wO8hqjP2zUSe57xWzX+EwfmvTt4/PA8UYIi3zwiVOG79NjXssDRfyw8lNnsyjAfgU7Ppqw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=HFFgS7LNzprIErM29s6LiHfR1QmYVZ42sg+AvwyPl2A=; b=
	j+uQhqds8wc23BJAUbpUh4zGxtm+oeTzyxcN3awSd7V2anqs7eTIMiNoTLDdAjt0
	LskoBVdkWcSWkD6ifX4j0RPEVbD1TsLEXrXt4dlcnJpmlrfkIw662S29JHjxFvV4
	BKBrPw7hFpyb0zhfclDG6yra+OaYjayjjz20GimlUV35tFYVVBvaffQrQxZU/2+i
	1WdzUMDVbspWzDQj6ESIycJWaTNpw7FfQFuju9F6L3R0KAGysxld8JaP0kLfOTsD
	Cp6EadikXraM5UMmw2333+vYmcNf6mWkotcWA3jcR/7ybxGFpi231XTP/ykJmHAc
	NIGlkT+pHiLrKU4lXVaOlw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=HFFgS7L
	NzprIErM29s6LiHfR1QmYVZ42sg+AvwyPl2A=; b=dao/8CiYwsbpbxnE1pIRPIg
	EmCOEaTSDRX2OgcDqp101tNkGfg9u74B7nlvjqaGO+3SVufJAIbl4M2HxmjO86U9
	0fChiRUfnndZnOj9jdaOz02uaLBoFCOZfGOQUBOooDusRmZzs7XhkNcqjMXv2Ynz
	fJOhB1H5mRKxnxl3sjQtjMxcpMF9MiVkAXjnrqKio57hBwDrQt6gdza2y0LWv9Fc
	wM82b6TXHFGOHXX0Vk+zHzR+br4uoCw+xcZgueKXEAutVWjO36aNw1umnDK8VZKj
	htnq1u/ywUxaYwFHNQH0NVWO2NWckFLEyH+aHUP0HyFlRA8vi9bI68bItdctDFA=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: RznBwe2WGZ2SgRznCwFfCx
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, christopher.w.clark@gmail.com,
        dpsmith@apertussolutions.com, dmukhin@ford.com,
        Mykola Kvach <mykola_kvach@epam.com>
Subject: [PATCH v3 1/6] argo: lower level of noisy connection-refused log
Date: Tue, 26 May 2026 14:58:18 -0700
Message-ID: <20260526215823.1452619-2-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260526215823.1452619-1-dmukhin@ford.com>
References: <20260526215823.1452619-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-05-26_05,2026-05-26_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 phishscore=0 suspectscore=0 bulkscore=0 malwarescore=0
 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605260194
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023D2:EE_|EA2PR16MB6255:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 37a2ab89-b8c0-4452-5159-08debb71eddd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|11063799006|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	EfiPWXNjHGj+AtwWnim+cW6K34D1ze2afGTFVvLBEX292LY0+TkU3Y05N4I42+euAuhwAyvybf/IK+IzG8z63eOIfxDVTGYlUZdc2VRUSY3H2ezidGOIo7vDZeMfOAis4xdb5cXYfqWBZksvVK2hcidbYnI3Z85UJPq62pT7jbBK7z+Z/M6+hkkG8+MsKWWdlk08ktRj7Wq4rvj1uXjTv5Bi4bjEJvHuK+Z9l95yYVhhjT2mEmtUG6Hy7E9iKuGSHhqJ6rjieRbAuj6F/Kv7FSYOdFgdYVCxnfjO8tss86UivIBAnnnyjzB6hst0/sxpqrCG8KYl0uYshoTMxe8hj2DOR7msG2fsgOWrlwyF5vQrTNkB/zkth5MNqMlWYxSvW+o7Ivp7TxMG/klmcURJr6kKqRlWiYWbFZB1YdexbGKIz0jJy/CH0nbh/jLReaGZ+do+cWQtTfzqNyeP7vgqF98VRyJyb2gyZ1r5k1/H36bz8xJiR6Pmr6WXhFxKafYHh9khkG8aT9V971VDFbMM6oISSH5AT4nubU71n2iU08KtyGKLNmYO1Wl6pvS9Wf0PM4ISYUiVS8Ao+7N/JT6K5EgmApiRngKI20OdyT1Qm4YGazH9RJv/r823Mh08deR7DaQEMaYhtcO4IRblfz3o57dL2Z+AQCJl/pOPXZuBFk0Bj/OPs2nxuSGtXOAQLeFXNPv5ZVawSN4wGgrDhpkH2wphiTD8+Pnf9dIN7zFjucQ=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(11063799006)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	8DJnbAAJc88Tm/9PyhR/fhIjmL/Tp4oG+GLSUMxCSXed2/BpOk48BrwOK1nbLgQn19pNUMYH3UCDhgOvSq135/ytEmdFvq7k6IWBsu+EUWtLLBO/5eG51+JAWl7GyeKZsMimhc+jxxQow63ybEB3BnuHcodFA316F4FWP3eboeAar5QuhCltWlYraR4sHI3TvmXUgZU3qVS8W5H5OnXJeYRvq5gNzOxeDhqhijrbXFdpU3Slt1nvioWY8a1Wyrc6w1rMdCoOcjf6bQm+4/Knwe5Ryv490IifPXdEbJhwheX5OT7xVn9OywEJLH7Tz/8MlVv+42beTkKShTBDsp9tGKFAzZRtunPyV0LK7FWOK51VI3dKcNY+wGYu5oNATzJxA8l48f+3LDVDVIRDwV5eCJ2otuvZMkXDkbZzk5QXPKc+uIoJYQUbPAPdOVou8QRQ
X-Exchange-RoutingPolicyChecked:
	aCh3gztvSR2mXdRhvAzmTgzNRn8kzpmTF8yF/uHKEyXSwx/3huG6rLzhanyQOr32RULS7nMD072jWTtmKoU8+MOPiroLJ35NHnofs51nhd+06GvGCBhXClZRr2E+h1jflqHDsH27bcg8pyYfL0Vnl/yWTUtYtmf4gDjOHnAXG4oCioaz5GMVKLbeMwuwdZyknTlXTCI0bAtNj1lDxrXyRcPPp+AeC4r6+WvTP5OpmNw8c4yYDeP6LY+eB8SsIHE3I5cqxbECHEaFKIGSyzVdOrPKbBoerRbBdU1/+azpouSQIXwQQQQzGaZPBPwIRwGr1wZSous4meZfrdGzfA0PCw==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	S5+N1A2H2WHBLC10KIiE4m3bmWzO97RNxpAjT0D2QgUV5Q6a4aWU0yCRQmPjX7jy3zTnHRAwA5E+OVnuqt9O9g/yJTHYZKveQParJ8BVsOtAIzb2EIMcOltwFKhnShyWjy9xp56jVpzh62OW90M1hA1cm6/IMn8wtuOA3Pwh8aB2bzOnjOzLV8Lt7+dRSSBycAudOUQlWUepzyDYTwdaef2mh5DpuhjoEqrbia1C1AGxk5/6azIq8vnsP9ufKzEkxLDrBl28wXEjGq7BsTWENSwCee31cyD4DbAiTT7uMcK41PQLz+qYi/MU4i68QSiOVq3FD0wxh4q17OT4XYTKsnWCN/rDd0PBHqWlBJdGlMnts3XT7u/eMleBonmnybUvq0gQsDuFJjb1lNRKGqW6GdR/iCIsiwXEJignGhHRxarKynO0NKfzaDdAJTdKNkbWkGysjbh2Mk8dz7eCkZEJj58a+6fx97slUxts4G7DUx/Sy9XCorrWBszO57EYjb0SldMDOJBSXPdOd3u5nO4rt/nv4F8kFWBbIceCA2JkIxwV2knaxeg61wrQywgZC4pkBBeN+u7tDEiXDqqN+yZAJLLx5PN9deST5tVyORryWXCHy/81IJYCgMRx46pxDOB8QhZm1dsgkkh2bQnA5XWmNQ==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 21:58:32.9072
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 37a2ab89-b8c0-4452-5159-08debb71eddd
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000023D2.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: EA2PR16MB6255
X-Authority-Analysis: v=2.4 cv=VsgTxe2n c=1 sm=1 tr=0 ts=6a16178e cx=c_pps
 a=YOgfsySBG6Gh3lLixmEA+w==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=MLwXIh1eZMowsRZfVxRb:22 a=cbNQJ9GKAAAA:8
 a=DBfv99YmAAAA:8 a=UgAm-RWKtkRDnoEujesA:9 a=3whSkbs7g9Me0DR5EJEX:22
X-Proofpoint-ORIG-GUID: 65UNNJWLG1sSlqXgO9J_s76xDjDP1bj1
X-Proofpoint-GUID: 65UNNJWLG1sSlqXgO9J_s76xDjDP1bj1
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI2MDE5NSBTYWx0ZWRfXyCS8CPpqfFac
 yAj22TiKTiEhwOzcM6x79C3AohEd3++jTvxPRHxOsdxse9CWPc83vyWiWoxNwb+sq1hpRDxaItT
 mjJsYrzgyzaEF0eZ5cm1iFRacTy1tE6Bhe+WyAwXlSrY7v/8tvEY/G0Svs/FAbCiOAl3Hv5zp/B
 jYX0cfPZQ5o6hFAYGG4mQ9K/eIFbe+/O+ujZUvd9P7n4JU+qm0Cn5aAc3wqDAGw7ClQhF6D8Ach
 AqYwphwBK1qDXtExd2lygF9rtOWZRP24Fouq5oRKxXJV/DHkhXq6/0Uqeaj24YLsh3NV3vOfTKs
 aKlFtoDYYKxf1ET6Mjp3E70Vqe26KSCvM5zU7Y1QIGtJPmx9/Eb75KqrtoZTnKIlNlVjyV3PL47
 koUb1RwDz16PLLDfDqmMvyOa6yBUa2h5PEfZ63LeW4SbnIGBWtpmg5Sq29HG72pw6THgRsFEn5e
 P/92Tf1LDHLOvpbzwsg==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-05-26_05,2026-05-26_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 clxscore=1015 impostorscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0
 priorityscore=1501 spamscore=0 phishscore=0 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605260195
X-purgate-ID: tlsNG-c1860d/1779832721-BFB7CDB1-B61150EB/0/0
X-purgate-type: clean
X-purgate-size: 1443

From: Denis Mukhin <dmukhin@ford.com> 

Switch the log line to argo_dprintk() so it is enabled only in debug
environments, as it can spam the logs when a dom0 service using the Argo
hypercall tries to communicate with a domain that is still starting up.

Note that this also lowers the log level to debug when the argo_dprintk()
facility is enabled.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes since v2:
- updated commit message
---
 xen/common/argo.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/xen/common/argo.c b/xen/common/argo.c
index 28626e00a8cb..98a3db7fd070 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -2034,10 +2034,9 @@ sendv(struct domain *src_d, xen_argo_addr_t *src_addr,
                                         src_id.domain_id);
     if ( !ring_info )
     {
-        gprintk(XENLOG_ERR,
-                "argo: vm%u connection refused, src (vm%u:%x) dst (vm%u:%x)\n",
-                current->domain->domain_id, src_id.domain_id, src_id.aport,
-                dst_addr->domain_id, dst_addr->aport);
+        argo_dprintk("vm%u connection refused, src (vm%u:%x) dst (vm%u:%x)\n",
+                     current->domain->domain_id, src_id.domain_id, src_id.aport,
+                     dst_addr->domain_id, dst_addr->aport);
 
         ret = -ECONNREFUSED;
     }
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 21:58:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 21:58:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320183.1587584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRznY-0005Pm-8M; Tue, 26 May 2026 21:58:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320183.1587584; Tue, 26 May 2026 21:58:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRznY-0005PQ-4P; Tue, 26 May 2026 21:58:52 +0000
Received: by outflank-mailman (input) for mailman id 1320183;
 Tue, 26 May 2026 21:58:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wRznW-0005K1-Sn
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 21:58:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRznW-00CFSu-8j
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 23:58:50 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a161783-bab6-0a2a0a5309dd-0a2a450bc60c-12
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:58:50 +0200
Received: from [148.163.146.23] (helo=mx0a-00498f03.pphosted.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a161798-212f-0a2a450b0019-94a39217c326-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:58:49 +0200
Received: from pps.filterd (m0367124.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64QKuaKe986635
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 21:58:48 GMT
Received: from ch1pr05cu001.outbound.protection.outlook.com
 (mail-northcentralusazon11010065.outbound.protection.outlook.com
 [52.101.193.65])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4edehkb5kq-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 21:58:47 +0000 (GMT)
Received: from SJ0PR03CA0357.namprd03.prod.outlook.com (2603:10b6:a03:39c::32)
 by LV0PR16MB7009.namprd16.prod.outlook.com (2603:10b6:408:33c::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Tue, 26 May
 2026 21:58:45 +0000
Received: from CO1PEPF00012E81.namprd03.prod.outlook.com
 (2603:10b6:a03:39c:cafe::a3) by SJ0PR03CA0357.outlook.office365.com
 (2603:10b6:a03:39c::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.12 via Frontend Transport; Tue, 26
 May 2026 21:58:44 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 CO1PEPF00012E81.mail.protection.outlook.com (10.167.249.56) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Tue, 26 May 2026 21:58:44 +0000
Received: from pps.filterd (m0426317.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64QKv4k71018994
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:58:43 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4ebuapbcfb-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:58:43 -0400 (EDT)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id RznMwG18pevQgRznNwLuY2; Tue, 26 May 2026 21:58:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=YsS
	EbkHdmSN7zf/XPZCf/0ZzmkmUnygfZoqAJ/jDAi0=; b=cunJHV0qNiMWzXENpAn
	PcPY4cEsvhM6tuGk5qrh7YJ+Zf8t1EhGfmWZrCzvm/k3uY2Hs7G197gq9Y9PHjVL
	e35amSgSchycT8KYzdithIpDDLZFTvKTE5wloX7DYuDSXHPrtuEdsRhSua9KGZd3
	WajaDYd1UJZSkjGtvw3W3Cn+l9fFul44Jy3aXeksCYRXWfV3dSVcHdGY+d3yPFAN
	X3d+IutUJ+h+/CUP5mackRs0XA2ND+INXtYMyaKiS9ZJ8lG/R+o+3lsZfshwZgxC
	A84h65nc2U7W5BCtrYmZHIv1RCggBKVMdkrHNqgo0nkY2F5a+piBr6ujJKH9WSlC
	AiQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=am1d54jDjCOO6XjAG7TTTDblFmFlkFHQU8OoBClqOXS7sTQG6hKQAWThOcXZNcoC1BceEJKxR6hvv/R6aiqiCzuEQ+Dl57XmGQrCmz+Ahtpj/J6PPFf3MVhTM3MXKk6u2rRQn5MKOXdt7z60Mb2cHWCdBEpd1qOaj6OXM5ODEQy5ijOxZjy4WYaNG+WtwJ3fD2AhWkvtIn7ELbL2vEfDavCVzYkSjlwbiD58VsD0Jh188EJqCIBZbRR00Sul+H6bhE+Sxf1NKv4jgJQBmy1t0e/afc3exPtDQDyjWbZ1AACn6hsmcut2EDfNbBo4NUMSjMYWwmftTB580t9w4dZ6Cw==
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=YsSEbkHdmSN7zf/XPZCf/0ZzmkmUnygfZoqAJ/jDAi0=;
 b=an2tc0PznRYNL52pxQAB9g8cF3xmdQ3K2nuPSD/iA5tfGwti306EYK/r9RVax2PGSV5tlXLXttfcpYoZgVYGSRGUfjX4lkrZFoxVH9cI1THkZhnK50EkmqUWZ+bqWEZkvmS8PTUQrtrStU/MWZQZsY7RqoBjkrjBKwyWIHtibcOl3cv+cju2vK7BEPOspHbr2PI0Ony+uyV36omExec8PBIBnADpkFsotZaqKOKMOdC6LlPlgg/f2kjtZ21su2Al72mkJ1T4rwK84s2b43GjQNgfqNXQ8lmCaPqD8PDbL22pRfGpx75OIAuZjYQ5IMuGcImbO4tXW5QTgb64bpp28A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YsSEbkHdmSN7zf/XPZCf/0ZzmkmUnygfZoqAJ/jDAi0=;
 b=GiNkImmihQ1BZ84DThBxBPQZDvn0tSRWRBbpCqoYyVTvN1qy3QvSFSdlBkfa09RlkWfFpl8Go+DV8tY0MApGJxG71gjjSFOP/xi0A7VDlj1DhGf0wJD5yk9E6jEOfd60545fc8MQ/TtawXrKHW2O91c14X2MEmxNCSzErAAnDaE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=YsSEbkHdmSN7zf/XPZCf/0ZzmkmUnygfZoqAJ/jDAi0=; b=
	KrrattWHlGC9W97/69E78SnDBIT8IA0UswlqkWyoyeK+Pvcd9qqZbZYBbLdqUyq5
	hC4a443e150LVJbgXNNEyheHqs8BbWN3zERDtulj6mjdypSEF78Aus1B0xxAOXLi
	FuYX8D1hg1b+3p+KsSWALl5blKzu3XwajmXO7ZhLHDznBD5B2JSdmPjOpqihoiS2
	RZT2mF4FEYH9BDXZyWP/n9Naom7FTDAQZT17gdUbyoQgS/P8GhAm/W3KjF0QfSdg
	fp3bsN7B0/181/8X2DfYmAOdUchtm1Q2yRlL3FGXkROzomhQwk1qFGWbevNBTPfs
	Yw8OLsiPt4HxJ20GXLOkYw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=YsSEbkH
	dmSN7zf/XPZCf/0ZzmkmUnygfZoqAJ/jDAi0=; b=Q7uygcEg62OZxdUg/w0Lmvg
	B/v7LYUA5Wq1itk0vQi4Mrgh+OeOzW+/nF/UejiASnhoNArwjLtKxSSVIRWYyivA
	ShbW6kPA2/RvHhnD8hV8AiMXSCrKiK6WtNx5a3NvOaKTokGX8Fu/tHz0xMvJoagO
	qmdpWptsqBdS2/1pV+lkcykFaMy9wKrVV74zzlODIHpXjXIWg3/uku8JonWnqcIh
	M5aO+vL/z5LILiMDObm+2Mn21XJK0wN3jtsNEAeo7XmCOe5tc0laRSikDVEAlhTL
	Y6IP1ql1QCFewxxwJBB05hkQfMDI68snGI4bL/xhjeV6rTsj78i0A/3+UvBTRRw=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: RznMwG18pevQgRznNwLuY2
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, christopher.w.clark@gmail.com,
        dpsmith@apertussolutions.com, dmukhin@ford.com
Subject: [PATCH v3 5/6] argo: introduce CONFIG_ARGO_DEBUG
Date: Tue, 26 May 2026 14:58:22 -0700
Message-ID: <20260526215823.1452619-6-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260526215823.1452619-1-dmukhin@ford.com>
References: <20260526215823.1452619-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-05-26_05,2026-05-26_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 phishscore=0 suspectscore=0 bulkscore=0 malwarescore=0
 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605260194
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF00012E81:EE_|LV0PR16MB7009:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: d71b22af-c180-4f84-2b27-08debb71f48d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|82310400026|1800799024|11063799006|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	7nsTckM0fyrKpPZ5Pt057X5cvtTpP0+oyi8Ty7DlqJihoMC3A1uPQYKO4VSysPC8nHyQ757e3caUsmcNqlKNYHrhyfqYqrL0wVXwKw7IQy2AsoaWP+R1Yv+Qi7/Pt5PwMf61RiOqQTNtUOGTxYz9TA+dPwcK67wy8CX7xi2+vRZNSqxOdgHca3IPP/3q3QJpXaSg5cwgiJ1fGr8Cz4a42kf3kkV6UdQfyBpRjOXcj9U+QmJR3fjIw+8vNMEcM4memuXuBxcpuJmosqQ57X/NxzANvySevFKwOoHdKl+ym6rcKbyPrB7iUjLqIepC/DuShedNvJEFvJQQkoffQIEJmKMM/R0TK5gTZDLR5Nq25GOx6TcpQ0CxJ4GTmgtyxzeSkdMz1oDYamfgV+5xVaTV57H2Qod8NwoB6eP3VThf25lw9HFTmoQ6qoE1p3/bZIPWcnG5/UL8dEcx1t4lmeMBmWqpePdyLycMFLbLAwRvjz+MeJLko0v7FmukRqYzTNEspH1RNIK5YgNKL8lnTkOwF2SeA77ZhW/rGnajgkKTDfBGEUNNUjYYJvz772bg59GovlA5pnxqbDP/vBrS6aFWeW9EVpIyPI+BXK+PngVghFSe4CVLh/ixft3KPNz66gSzOeXHs202IU3RjkkzpMJYb1X1XWy/eWvZ32GYJkQn7h9CVIMIKIcYuppXOFqv2Nw3wog+tm7s55zzipFTgaKTWpxPlWKGvAfYBaGm/OfPkNY=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(36860700016)(82310400026)(1800799024)(11063799006)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	PESP2XN9W+nGLy+t0777cpcYjR+iTE6vixBPzqmboK8INyegyxFGcGzti8OEnmDPuTIV96SMm4ZHG0FvscFpvOiKPFun6BvVKMpr3Nc7lREPj9+Zj0LRzTyvxI+J10psmynKu33yCc+1H3PK9ny64eWGALG6vHnqBTwFWU4DqWmmOmmouMToHNbam8m6aUb6h1gGXyWjRneIEweIPvTOhjh6oYj6mhcZ5h2ukTnq+skiJ5n1JVeVOL5Ff7YlnlMBzyntQr5O80SpAtp+2NXLzbeS9PIoA0iJ2X06qn/3CdVAzVsmYYEbJrZLl7nDpKzr/P3iYIhAPaPsVofROOHaE6lBTHS2TS/juxTkTaCnAYW9ElrVbzztsh7RaGfv3IQ3GgCPUEbBOay5BrddmBPRy/XGWQ5+Qwk6A6rZZ72NlqIoMJ6dKxzbPYVt3C0jzjm3
X-Exchange-RoutingPolicyChecked:
	wBiTKTEb4HQDD9WuMpb+sbRJEvfP91mkWtzv6Bjim2kEL3w1gsZ8+lH9VY8/7XHt6wo4RLaCk7aDZvSuEDAvOJtgzYZ42J1unHZGxpgAih+SwJQTtVd0T2wzgf3bhwOzKpoeNOmse6RWh4rZ0hG4YJiQ/+gLoNRFDiF8viT3OWvSsgC3/sAEcVee++KAPtBJub3bq1sCsMC02/yjjyh1sS2T082DrSjHpwB04hShixHJr2oYOe1UUpb8qZJoeUwSIc7BP26FWLtqteG+htdMt4lPZif7kU6UNB3vwjc1GH7coYrkAFoRKHqTr0uxXekuPTep+ad3IV5l+OP17XG+dQ==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	pDEa8v0FVSHZVu1LadV8jBM3owmV8mNlB/JzrkEbsEy52wOCLduT0zwJLaGNv3wjslo8XICnVJYJAHJjudJ5BaeUnh4PT/f+V3QR2F8AW1eOnimn+nedJBsLhOuuQoW1jerjh082FNENOE3xxpEvXx1ASN3nowDtLbtVhIqKq8K/kSc0irgPv+L+GxeFXUnxz1rOq4gs22Eo64P9vpUxsQj6KUWB+W4/oNhSRAwkxNiqjNhNA07AqODWfXUaDHg6YML+bGoUcvpG6D1+eWK/sdwaiI5kOVzMKzASVB6NMvGMwarI1YTd+AaymgwuS2jvrorKU3XRqtG2b/SoSmD/pTnBTZJil9B7P1AKk/d73tmDvuF82iokBQJBmYcXR5A4Agv0fi1aTo0GQFAaRTiwTU/9EQiJS+7EQq4ORay8Fh7NHjlyHTJ4YOebwPZ+v34eMPSrs85k6ZVVhzol6Hmi3FDLFhgCaa47kJa2YZA0qa0lHly/UBsjvUtHiSYnKizfH7GEd3Gi0WX0xuk+ZadO5TRS1CYHZ6OZM5B0ZnkxbrYLhb51Lh5MGsdZFH+ACKnlNIG1zrzhY+nHRbq5/4x+2OUa3gkxdzoDEf25joucNN6Qhx6jrO6/7Wwul6y9spL/VXfZWAGLK2jv8M3/m+zfrA==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 21:58:44.0475
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d71b22af-c180-4f84-2b27-08debb71f48d
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF00012E81.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV0PR16MB7009
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI2MDE5NSBTYWx0ZWRfX0/5JfUII2QTS
 XmHiP7aFCS3iI40z3U3BEEAIRC4RIWAA2vd0jm552PL2VD/W2GSLZ+/tL8XhGEKtifYJsBp/XjV
 N+17MDLk3HYJPWbrCG/j7ejlT0x4vnGvc1bh8Vm64yIN/Vza/prx3YoDBOA3UynCb6vzZq50bWn
 PgvDgcP4VDcZdY58Ojtwhnp5JLFZT9YwxAwd9XmnqNWuBsXSsqxxvOg7GmxAYCqkY/S1XNCHSJH
 4cdRk/dVah7OwqT9X+9VchuhY3Yr+HIgxCmhZS7Qe2AKBtwM2MijY9BWX9TJybmoNHPKdMbfa5R
 GOUERhG6rcTRWD1Gkj3gf0+gSRDyFxKksyfq1bQb+GOEgqb6Obx2E6VXYs4dguVMM1BZpS6mZuY
 S++dJLip9mi+vyBJzoQvwki3RmfIa+ipEAhf6AGIok+CAuUb/voliTdBlP7nOpXvVR24Rj1fxNf
 VTFg2st1QduW3mZswkA==
X-Proofpoint-ORIG-GUID: ffQcE3wL1w0I2wIH5E_gOKqWsBXgp7fk
X-Proofpoint-GUID: ffQcE3wL1w0I2wIH5E_gOKqWsBXgp7fk
X-Authority-Analysis: v=2.4 cv=U4uiy+ru c=1 sm=1 tr=0 ts=6a161797 cx=c_pps
 a=wAiiizkMq93U2JYT/wsFEQ==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=YJXg7OVxOWrJwj3yZo-i:22 a=cbNQJ9GKAAAA:8
 a=dpVGQ_5JQCMJ_CPXcU0A:9 a=G69WFyCBNqGPyalROSdv:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-05-26_05,2026-05-26_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 suspectscore=0 impostorscore=0 spamscore=0 malwarescore=0 adultscore=0
 priorityscore=1501 clxscore=1015 lowpriorityscore=0 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605260195
X-purgate-ID: tlsNG-42698a/1779832730-18762F3B-5A23E7BC/0/0
X-purgate-type: clean
X-purgate-size: 1414

From: Denis Mukhin <dmukhin@ford.com> 

Add Kconfig knob to enable traces for Argo debugging.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v2:
- new patch
---
 xen/common/Kconfig | 7 +++++++
 xen/common/argo.c  | 3 +--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 5ff71480eebe..adcdc51dd21b 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -491,6 +491,13 @@ config ARGO
 
 	  If unsure, say N.
 
+config ARGO_DEBUG
+	bool "Argo: enable debug traces (UNSUPPORTED)" if ARGO
+	help
+	  Enables extra debug traces for Argo debugging.
+
+	  If unsure, say N.
+
 source "common/sched/Kconfig"
 
 config CRYPTO
diff --git a/xen/common/argo.c b/xen/common/argo.c
index 3c38a51d09a2..b9b362064e7e 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -318,10 +318,9 @@ static DEFINE_RWLOCK(L1_global_argo_rwlock); /* L1 */
     ((LOCKING_Read_L1 && spin_is_locked(&(d)->argo->send_L2_lock)) || \
      LOCKING_Write_L1)
 
-#define ARGO_DEBUG 0
 #define argo_dprintk(fmt, args...)                      \
     do {                                                \
-        if ( ARGO_DEBUG )                               \
+        if ( IS_ENABLED(CONFIG_ARGO_DEBUG) )            \
             gprintk(XENLOG_DEBUG, "argo: " fmt, ##args);\
     } while ( 0 )
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 21:58:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 21:58:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320182.1587575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRznV-00058u-S0; Tue, 26 May 2026 21:58:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320182.1587575; Tue, 26 May 2026 21:58:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRznV-00058j-O2; Tue, 26 May 2026 21:58:49 +0000
Received: by outflank-mailman (input) for mailman id 1320182;
 Tue, 26 May 2026 21:58:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wRznU-00057l-Vw
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 21:58:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRznU-00CFZ2-Bp
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 23:58:48 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a161795-2eae-0a2a0a5409dd-0a2a45048942-4
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:58:48 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a161797-1dec-0a2a45040019-94a38ff18824-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:58:48 +0200
Received: from pps.filterd (m0482515.ppops.net [127.0.0.1])
 by m0482515.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 64QLWo8W1912125
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:58:46 -0700
Received: from bn8pr05cu002.outbound.protection.outlook.com
 (mail-eastus2azon11011059.outbound.protection.outlook.com [52.101.57.59])
 by m0482515.ppops.net (PPS) with ESMTPS id 4edkhg84kv-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 14:58:46 -0700 (PDT)
Received: from CH2PR12CA0030.namprd12.prod.outlook.com (2603:10b6:610:57::40)
 by IA0PPFDD91408BF.namprd16.prod.outlook.com
 (2603:10b6:20f:fc04::fe6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Tue, 26 May
 2026 21:58:41 +0000
Received: from CH1PEPF0000AD83.namprd04.prod.outlook.com
 (2603:10b6:610:57:cafe::f) by CH2PR12CA0030.outlook.office365.com
 (2603:10b6:610:57::40) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.11 via Frontend Transport; Tue, 26
 May 2026 21:58:41 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 CH1PEPF0000AD83.mail.protection.outlook.com (10.167.244.85) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Tue, 26 May 2026 21:58:41 +0000
Received: from pps.filterd (m0426317.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64QJVqfr1022937
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:58:40 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [44.208.76.22])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4ebuapbcf7-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:58:40 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id RznJwe2xkZ2SgRznKwFfxB; Tue, 26 May 2026 21:58:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=TYK
	MWBptyNTugkzl1Rf1mcoBPwr1cqpI/bXH+6shRHw=; b=oPMJWfRVCVV9QGUlC9u
	yi8zxlyUYR4s0zr8JLaKkwWsaGRQZV74MiYnkJZOCBcweax/VLxSIn6EbegK/yD+
	mQGkJck/NofvoKrrrsyzPDFIn26pGWKRybzLqdobu//fdAltRxjgeTLlQwLFeWVd
	/2nS522UPIgmR0acprpdZyiqdLRTXpBrQpHJEPjUj6YlrIAPUdlk2foyr/6/y77z
	IQAlhI/5Pb9oWQjIAa5+4bAp1DbCwBPRZV3NwIhvyXIKR4jwiTx1FTpQ6gsrD8kM
	mQRqdsdMAWPuPZmez+aTdfVQyGAWMKbIdVKGJ219euAB2RJSK1RsVZ3BQ7ctl92d
	npA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ChTxvQ9nPzz/8wLWcXhZZKceCbE17Rrm8W/0v0G0riY+E2WugxT+2rVVkPEK6FEM1PDANNKvdtGQQ5H6QwW8YJ6DkPaeOj0+nT0HFIlEgCIC2TTLdAwymyACC+VgUXtq790ciwGq1/ZAPsfhJ195/NV7I44Iab+xNEgW7e3YaAI9HRmgJOdtbP+jJhoU0i9pvf6NV7uGnkeT8UaUNdgwiNGMGqlZcGzUDIF8ZfL5/AbweYTRRKGiXHYR139wBHub9htl84AyJjoldc95oduCyjO2fObIHHBsZL6D5HMDyhABs40XM4Nadwr3Z87Rng3HSlGd0oA82HUNWYpHNCYyyQ==
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=TYKMWBptyNTugkzl1Rf1mcoBPwr1cqpI/bXH+6shRHw=;
 b=JzGYjztRtq67VrEm6yYjABsjOXt+BtVEpl203x+uOniwYluO/JO5GklFUHLlP1sPxHIrWCRAlNTaZdo91X4JVX7FAkWyKRJ6SUuuaaC8a/JMQqGOlFHt7Aivk+tGiQceHEvxyEZ1lP8jekCYV0WOdBIfZ06tsP2m2YNCOIKm47nfnZOsptg4BCaU72n2oYP3oQlfyMB+5KnxseR58MBGHbkuNo9W8U1QAl/2fYs0tT915A8tHMw1495ZeBWU0S405D6lt3ZEBipnZevn20t3SW6M+SfY+Loa+uI1xP3hAmc9w1ODElY4mknqq3e43bee7rJg/t2apDPk67zycLkhJw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TYKMWBptyNTugkzl1Rf1mcoBPwr1cqpI/bXH+6shRHw=;
 b=X/QJaH2oBEHc0UGF9WqwIDIud58ifyTX5DXm0kVFNe+Bpmtn7DvfWAhmKYZtDrg42kMQeps4fmwBQ47zdF3HCd6IeCjIKBlVwvVq2oM1PgMCV1T1cN7kNKcWadmjf+KHNFXztLu6kYBsEfSoi2dX7Gy2E3413dBbEK4FND9XPRE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=TYKMWBptyNTugkzl1Rf1mcoBPwr1cqpI/bXH+6shRHw=; b=
	RsABrFpE7CtxSEmyTdzVoXYnz3Tu9XVrkefbWlwNFkreFK8zIp4WpYcp4kCQ9XoH
	fqcRvOyD+YQPvKVhe1AHg/VTOliKq1u0ytWEi+wcspaPjFCWLb62khXWwq7OLsA7
	lx+ntwaC7mNDkxuy05IfrG6mRWRHwGiegS06HhD8sg4nItOYEZb7nKmJJIxUcUfc
	YrKESlapfl24U6daCDTjBd9wjjNZtQIQJBkJlQ1mNk0SM2DRCHzKRhm5ES72vwYG
	cKEy14mbqgboMF7X6Mwgp4zKP7FW6V8+CjzTSMdz64RzdzIZ5/7bsLYKQda6BSHv
	vQn/OwhQhcW3P/5xv1uL/A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=TYKMWBp
	tyNTugkzl1Rf1mcoBPwr1cqpI/bXH+6shRHw=; b=ovxeq+6mtfoH/hKbaJnOsWp
	pzPn5AnVFmaaQ/ykTwAs5zatZ/2bCI/XlCv4hN0HAhgMHp81zrs4aKkDohCoMEfo
	+163C8tuwFgKQpbb7yVj1sgsbci+1yzthjCKEwP/N8tKlaimc5jd4VXE3m1tbcqm
	/fLhjOKYYF2mvuu4lwvZjIZtwqIU0X+dIvwdKOyAE7VK71R24tXaeNouvAjX3s6T
	yT64m+obZMl2M21lp2xhJ00zJVwFRhoHp7yctbhttVNWE4NQgEbu9CiZeJSoa5k4
	jE6tOwNC98ztLdqT5CU7dXZnuAYKukTjl+zFxWVfoBpCuUPwVEPONEJEb1THrCw=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: RznJwe2xkZ2SgRznKwFfxB
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, christopher.w.clark@gmail.com,
        dpsmith@apertussolutions.com, dmukhin@ford.com
Subject: [PATCH v3 4/6] argo: fixup argo_dprintk()
Date: Tue, 26 May 2026 14:58:21 -0700
Message-ID: <20260526215823.1452619-5-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260526215823.1452619-1-dmukhin@ford.com>
References: <20260526215823.1452619-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-05-26_05,2026-05-26_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 phishscore=0 suspectscore=0 bulkscore=0 malwarescore=0
 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605260194
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD83:EE_|IA0PPFDD91408BF:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: fa06e38f-fe50-475f-5dc8-08debb71f2e7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700016|82310400026|376014|22082099003|18002099003|56012099006|11063799006;
X-Microsoft-Antispam-Message-Info:
	EdQ2MqwnPl1B6b3QDR0EkHK7FHBD5ceMA3kD6IVZP2ciaiiaNOemOBwbZnB7hyMwh/kSI7EGMb9c/38XElKi7uk2li2wLVKA5DomblLyAQmroRQlndROYWKF8Z6tfIY2cR9p0yraoT7pwV/CQCRKUhmd4zAiR0aV9K2n8ZmgubCTgRJVr1j0hzJBVxthA5BvICuWVMxQJ3PO7wV+ZG5J4fAZTNygI22O4fjYFqq1BkjhhwqalLQlggFqgWwHkdTSZu2kEPy/MLKPvHBdEK2EpZJhpi7Pawz506aqFM+t0LkSClk5FzJU566ksspvJkTeKMyvFkO4iXP+yYtvyh5exLQdOjhYjY6maZZ9caa4CVW4WJHVsu3OeU86ms3iTSNL8TDg+xSmkyIJiD7qDDJOc7LOsmP2JzTheL6NayF/wSPQnSP3mPTjdwJzlr0vVXHAbkJBCCR14qki8DeYuSZm2TRUUht9dzNnNsCt16H+QbwNZyNFtpKwfS9ANCbe+BSFgGQfyzGj8Ng1MO+OZYqHUzek/WgHZqEfVlq6tDvpyEB8UCPikTEGezyucW6sdQxoUJ0S4kfY+9Qxnqo8CUkXHIsDDCoyQ9D/M3jaawprbZTjoAtmgsta9hEjzc0pFquBYnAVAvzbZooPSSAYMrTLGix2WiYSS/8MwxCzCuqlzRf4CF8bvomo0hR8nlYb4++s1qsCSt6VVRsYAjqJTBARFQdgs8GiGkeM/JFnslrQOKQ=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(82310400026)(376014)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	8uPdxKX2HAppsRGkqqsEBhVSB7+yl2fo/dkQVRXv6YKdxu2Joka6k8/73FVVZQpAUmtp/G5w0TGA9JGsE+u2b82BgT/7yf49UV2NbaF2IwKCtaFtEmf+Gq02Qj9/8JFIs4C9PwpaWnX9KU8MwlyhSylT7gqxFlJnXme5zLdfYXSuVFrsFPnKpquRijeWkUxIyyuYofcu0JVcEJg31+dx3Va7tw7hhuMqTgO2qklL+oGQmB4JMwekHBs4sCfpmRQ9K7BW4HYFq3PfFwiyvcEHWfUI7/x8BBaA0CPdcxAWpZicqMAJnZt5/Ju9Fk2P+dO1aDhbJGl87y4fMw+ilBsS1rHa7NH+V6x1yyoEhwCDLxSToNn1QQxmgfx/gjcUbmkMzBcCK65ixpox2mY1h0+A/9B7RTb8eeiQyYqLL1S2CwwDmC9dAt7WLlaLX037fSsT
X-Exchange-RoutingPolicyChecked:
	UsjnWdwwFs/G1NuN/mY9miLBGlYm03GRNDa7Maty3Kf/Y7vanMKEVXEKQFOKZykdlEGVzKjrvgaBm2kRz+PtE/losjA1RDYIWq/SkLJwbsD9gyf9gJ+qysMWb4y+viy0XfXzm0KRziXgiVYn4QI9DfaOwam1USJ//hE66MsswyQ2+EwcuuhmHk6DaU4O3A90dSxhzPHfyW63XRMocBFOBOIVT3YC/yNZT09i6dxozU1tKYhR3cZIIHMnYGdcOuTni6lPBHe4IR8J4qPrWJYOJZZ/bss8NdrgPURwXqtfgEfKKGlmAK5hhODp2NBIjS41qGC+8N38q/geidaAwy9uxA==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	1aSHMkyGNaac/FcQ1XXitiXCbm7olT581IuIBF0weCdLcUALG/UcVpX90vpILWiTzclQcJS0uEEH5QlnH0eGkyMGioGs2Sn039Pcf1SOOf3muE0t2eORNuhOv0Nq69rb6dWZHwg04oPXybS5+FThf4vOn+thLg2UZK5GUGiB+goPCDZRnBTErx+HGI/BH3ccEE/cdGJL7JgWEHwweySbdhofYi2/+8irYiKvPaGmURnhAc24J3L76MnfztLx8aumKlAvfJigraQnHaxNnSe/7Cu8W5lRab6reDMuwJGM3nltlIBXQ1SqOBjHjdSiHKMY6WyFsal1DOdXjPbX4n0MSmtXcjNWNqWUmtsdkAnZui51nH244Uq3ES6QQOgijivcEnCdzDKIzD04aXc4Z4VHyNQnydAHJjCTds+JDMBiKtj6D/r9qog3S5Roqr86r8HhBA/3k1VUxrj3EgEgKD8HtZJBHpR2067+QN3Baz3d3dPsFeeYDJblpvdOdo3qhZwIe1lCNjPriaKcuFVeyET2lb5ai7sOr0182ri8ZzXugjuaVsSTwZ19hs7eM/t2CC6rObtKvDlAf+dDrhqLOCAdcJEGxqzgSvas+Kx8FiIxR0ttgIPUVhaW9oVnhE3Ee60/5iNn6lnMUomwgkpi87BsEg==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 21:58:41.1179
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fa06e38f-fe50-475f-5dc8-08debb71f2e7
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000AD83.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PPFDD91408BF
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI2MDE5NSBTYWx0ZWRfX8A1vfclHC+I3
 hyKBM/dZXtHYVFPKobZfgas75AIxEFAW1mo1Ol/xCMXsJjBdsScydKSxIuLNOk5dB9NZe9PYpXv
 Et1Jn5BKeyVdRcjUZ6RB2YLg1xQPTW2q34Su07qhyKUlulQOzwy4ucBbIT5xXiL0U9VfSAHdDtN
 qgWXo7rxYiZHGoODYPe4Ne/262W9f4h9mlmcZl3F8SbJMskiBc6tWbBNok0dqGg5jn+NsC3cF+Q
 vSZW5DAD+Ey48yeDPCmA6bWxRAeuSYjddhjinAqy04zULzPmfNRmqpMm0azwQSW9hnX5cAGtKax
 sveCJfP3e/j6alHWDj/ZXVK7t5/tfKCnRF3pJjbvylIBuRxvQzYeb3LNF4gtRBFZHsDgv7GJec4
 cOJODpnkg776wnKh0sypAlyCvFumG9gWzjbjP8qj0f1b7J3O7aJlMVpaH1AFzVKdfo+BuKmdvki
 S52BH8Lx54A/epKpFEA==
X-Proofpoint-GUID: qvZhq1pgzajqUicZxfptvIRamRqvv4rx
X-Proofpoint-ORIG-GUID: qvZhq1pgzajqUicZxfptvIRamRqvv4rx
X-Authority-Analysis: v=2.4 cv=NvbhtcdJ c=1 sm=1 tr=0 ts=6a161796 cx=c_pps
 a=J5CYyyHZZtesdUd/yj239g==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=0GA0A_IKJoUHBEAzNTkD:22 a=cbNQJ9GKAAAA:8
 a=UEeNNP3tciHXUiOZOm8A:9 a=3whSkbs7g9Me0DR5EJEX:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-05-26_05,2026-05-26_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 lowpriorityscore=0 bulkscore=0 priorityscore=1501 spamscore=0 phishscore=0
 suspectscore=0 malwarescore=0 impostorscore=0 clxscore=1015
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605260195
X-purgate-ID: tlsNG-ebf023/1779832728-43F6D3FF-11E0971E/0/0
X-purgate-type: clean
X-purgate-size: 936

From: Denis Mukhin <dmukhin@ford.com> 

Current argo_dprintk() implementation is a wrapper around raw printk().

Rewire it through gprintk() to allow for better debugging context
(such as domain ID).

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v2:
- new patch
---
 xen/common/argo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/argo.c b/xen/common/argo.c
index ffa1f43437ab..3c38a51d09a2 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -322,7 +322,7 @@ static DEFINE_RWLOCK(L1_global_argo_rwlock); /* L1 */
 #define argo_dprintk(fmt, args...)                      \
     do {                                                \
         if ( ARGO_DEBUG )                               \
-            printk(XENLOG_DEBUG "argo: " fmt, ##args);  \
+            gprintk(XENLOG_DEBUG, "argo: " fmt, ##args);\
     } while ( 0 )
 
 /*
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 21:58:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 21:58:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320189.1587593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRznf-0005rB-Fs; Tue, 26 May 2026 21:58:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320189.1587593; Tue, 26 May 2026 21:58:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRznf-0005r4-C0; Tue, 26 May 2026 21:58:59 +0000
Received: by outflank-mailman (input) for mailman id 1320189;
 Tue, 26 May 2026 21:58:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@ford.com>) id 1wRznd-0005ms-9u
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 21:58:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRznc-00CFZ2-Lm
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 23:58:56 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a161795-2eae-0a2a0a5409dd-0a2a45048942-14
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:58:56 +0200
Received: from [148.163.143.241] (helo=mx0b-00498f03.pphosted.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmukhin@ford.com>)
 id 6a16179f-1dec-0a2a45040019-94a38ff1c466-3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 23:58:56 +0200
Received: from pps.filterd (m0367128.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64QLjkCb426632
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 21:58:54 GMT
Received: from sa9pr02cu001.outbound.protection.outlook.com
 (mail-southcentralusazon11013054.outbound.protection.outlook.com
 [40.93.196.54])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4edkqj82bb-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 21:58:54 +0000 (GMT)
Received: from DS7PR03CA0025.namprd03.prod.outlook.com (2603:10b6:5:3b8::30)
 by SA5PPF7F57C1A6D.namprd16.prod.outlook.com (2603:10b6:80f:fc04::912) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Tue, 26 May
 2026 21:58:47 +0000
Received: from DS3PEPF0000C37B.namprd04.prod.outlook.com
 (2603:10b6:5:3b8:cafe::aa) by DS7PR03CA0025.outlook.office365.com
 (2603:10b6:5:3b8::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.11 via Frontend Transport; Tue, 26
 May 2026 21:58:46 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 DS3PEPF0000C37B.mail.protection.outlook.com (10.167.23.5) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Tue, 26 May 2026 21:58:46 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 64QL1loJ1935847
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:58:45 -0400
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4ebtp4kdgq-2
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 17:58:45 -0400 (EDT)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id RznPwG1B9evQgRznPwLubL; Tue, 26 May 2026 21:58:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=3VF
	Yd1gSHcI0Qg082/4gZnpm40+XBqe+AFW8r+HaymE=; b=J4yWBgVGT6jn0ExheA4
	qhmfou99PJEjYxbdWsBaz9bTr0Yy8ViH98XufhNJ3g5QIDHeC/+4IEzea1f8Fptp
	oCUi0qTnhUnRlvpLtid8VaMRA7KsQtyQecKwDD7Hu95dxVX5Qcf7ljbVBYGI1S/C
	tpSkXHU+h9izENmUz4bY0SWnL3kQHqYnmucQriqurN7c2kPZN7mfinasQMGQ1TxQ
	d0BHTwWBSi9J+e9lTGToZCa7b2naWdAVuZXK8FcaWUNnxrapQNZyEWIv3dQn6BhP
	YXKwbDNZDER+vTis6laZ7c7Li6yh8OWm31UIEv/bYoaz1C9H2G3sFIEb5q/cXAYx
	BSA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SARfran2oeSoRcNBUjDOOwjUqtn93fBhy9Jx178QPE5X5m6zyLezplfpLW2a6OssRSEpJ9Dyi0FVQSFFJsfvR6V4uzTNZyurxwZ+zfcJrtwiB5Ioe896A1GGt/yJP0DWQrY7G/4+TAGuTFquNv3OBb/Gou0eoO6PdOZfI3P6wcBUiRyXLSf62HVTWRebKTMS9mBLR8Rtr09cmyjre8bMCbp39ly6FhA/SZ7C1Ftlp0mszOQcp56+GPWENV1PDIn6cMjFX1f8+n0FZ5VqK2oUuXqBmvpJqmcWEiFRIcQI9UKj+cMxatihlU55MvhKJqzBWzsLpaOzDaflEF2g5ZgSWg==
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=3VFYd1gSHcI0Qg082/4gZnpm40+XBqe+AFW8r+HaymE=;
 b=n/bxSilYqVc5c5qGHcwG9brkCqniNr+Z0GkevUsdiZ0PA/Kh6eCE32ciOStDxc/RK7DbKTLmwBQW6//eepx0mWyy4BDFgEvsgn1cNif/z21WWzHzicoMP0K/gH4rAAa+7QEB+QQ3y81puyPzLlt2oEaC63yTkqQp8srhU7b8PgZ8qg/52UXG0WyiEpz/J+SJEnDBWDMKXw6L1ZBBVo75axdK+VTTgadVQuKD1a8jqx3XghazT1R9rVRM/wzM/chN+MfkgLP3phCLZkxFFHJHeOWx6Qp9zLhSd9gv4JwM5veUNFSFPGtAF/Cil6R71+EQdlW6JYIDUlgiAUC3mlETag==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3VFYd1gSHcI0Qg082/4gZnpm40+XBqe+AFW8r+HaymE=;
 b=g33Bn0ZL3b2tUDAkkNvet+S5x2fc0IUGCytniF0j580Q3CHnupm6V1nwRQXszHkwW0lHGqSyelk4NAUPW5cipfRE3PUYD99zK+Cgn2SAgQYxfjAUabAigAFngnJfssSFZoVrz1AqbiJFbT3aET3D9qCjirQRt5TmLwQBkyoOEk8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=3VFYd1gSHcI0Qg082/4gZnpm40+XBqe+AFW8r+HaymE=; b=
	WNgzYpjkFKna7n19wPReKEOcfTDw0KIlJDVN02Yq1UuF97rGMToLzKdM5KsQUaxy
	DmK9w4AuGFFfIEpcOKZI9W6y/APapSsMqLU+/h9mAdFIwM71i2WSU/z5DpBLUn6c
	uTy7a43/HS2cb38I1uJYyMB7A9khSVEZtHi3GzZ0lqVnYW3PDHX23lUw1vvwgClh
	u4bXxR6rFlzXNcc8QSu8/Dk5BlifK6DX8j9qV0XI5v4T8B8fy+1iuKyiKjDk24ke
	9QV4DVlS/YpUbyA9bS6gINWNepub/iqVpR23G1Sxm19Q9qXSuLCRNrkmqV+0lRl2
	/Zdkj8tdJicuQgPHCJ5xrQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=3VFYd1g
	SHcI0Qg082/4gZnpm40+XBqe+AFW8r+HaymE=; b=Ju86YRhrWgEIMeJ/CZnvgCa
	YJoxRiIXGxPaBaOtoIIK7Vk04xPGMJbhfvp7KC7gJNb8TY7Q1b/ckL3zhP7ZizKP
	Elnt8yKRrW+fq5Td6fBoqldryyk3WQRE1G4w74bUmpBAPd7DQ2YJpb81fOcH0AcR
	QKdGsqTyYPlUYCiaZFuGGThf+bgn4Z4gHzPSu9beUDlVKYHiM4cj7x1Jel3Xy7hM
	B295HVh1LDCuZ0HAsKBg1ujR6PyS8Jc+F+SXu/O7X1UKzIk3uQZPL3C+eZH3gO8w
	k0WMLq7eWBII8ODNFmBDrqq8jpRGZsXXxrv6zggpDkGwuCZ4OJ0JpaInmamg4bQ=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: RznPwG1B9evQgRznPwLubL
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, christopher.w.clark@gmail.com,
        dpsmith@apertussolutions.com, dmukhin@ford.com
Subject: [PATCH v3 6/6] automation: enable Argo debugging in CI
Date: Tue, 26 May 2026 14:58:23 -0700
Message-ID: <20260526215823.1452619-7-dmukhin@ford.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260526215823.1452619-1-dmukhin@ford.com>
References: <20260526215823.1452619-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-05-26_05,2026-05-26_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 adultscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 bulkscore=0
 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound
 adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000
 definitions=main-2605260194
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF0000C37B:EE_|SA5PPF7F57C1A6D:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: b3fac53c-903c-4783-f328-08debb71f5df
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|82310400026|376014|1800799024|56012099006|13003099007|22082099003|18002099003|11063799006;
X-Microsoft-Antispam-Message-Info:
	x/or4bFoXY64afCbiVHN+on8pbnITDBlurYoSVF5iYNS7r2pzfgaEktbETai//Vbdw5MmiA+w2U3zCafHHlk+1LSvJltt3X5ne2ZVTBxEkWCwhnjOl07dKeLdkE1qN6LkHX3yW/Y7JwpjsgiyF1+V8dFehwJnawavrs1IL1xg8PXSWcZWo8WKiKbP+cwkZB0wPAORJmOBYrB11tSznbgywiGxpBojWqv/Tg6nBvSFEISDiLwXWjUEs1GR/E0g53PkAZXt0RSjyi/zcpkVQ4R/RlK5Npulcn2UQJdTm+kURo8I9zvxxYW/hcXlQNzXslBd7pC9y7x94OkXEAs5jhinFi1mc4W/dw3X8sXveZcdkf9LpD09prcRR9oLZu5EOh+vKslvrHATYvXpbsNoiemiEp0hAYqCbfGNvbTajMlosCBJLOoTq/Pbaajao90SJ7YHfocGyCwkpAIHUjcX8N61Ljlsfq7QXfMhJw2OT9qagDR7I1Dwi2lRvafTPnnuUUICPdI4P5jZf0IlbDJ3VbEHwjkZxInU+ljVv9DECO6LlPMMTL0WSIqB7Xxvf8YPbYe8d8rtZZtC+FsqRonRSdICF+uvXXmO0s2wdnh+HGnyILgCVFRs16Dfs8WQvB+fxN5kNEgt3L5dtpFQmxDh4taZncF69c5G9NeDAir+PwSPRN/BBncWrxhJWdIFOCDdNQE8tcm/ddlucSy6l1gzc0M8usB6IVUz2SpzOPxfD4DFLCd0k/tGoFRODu8CGy85Cz7
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(376014)(1800799024)(56012099006)(13003099007)(22082099003)(18002099003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	n1fnI+IkdpOi+UfswCWo8R6FMqKLdH6YOEMeGWeLqV0jzo3iOgwgmS8YN0N3p+baEtrMfT1QReYxkJvFvxfWYmj68MbIoAPyPPCbl3EpsgmG+3Yb9OqQhAmurT3JV0R8XyrTRHYBqpxRNTpv7VyVh/F6py6VEFp0AfCSOLBDAVTIFb5/JwhWTt6XVr5xPM8wyCaFt+o+5x7bIGoePQNcIYaxrfHhr/eNFlpbDfaPJyYWZi5NvBZ2RdljS6cjuQ+5Vb6Rv0FvOXam0aht8HWe9H6UgUb5Qe8cNUhTn+2eaMscinNvecyDP5uzg9iKGdjbLyarpvxh7+zOv7LJQequTqPsRYzqa/lqAI2TQshVpnYvuDgCU+G8uRoaI05WsYFLU3Cf4Kh4cIXBpfFa7jNUerISkmES8WN/V43GhcT0vXjeN9Og4YgmNpyKd1OtXttw
X-Exchange-RoutingPolicyChecked:
	Iglc0NTTgNwoEgxleStZK9JtsHKgBKKcfQFqwdEs53Pxwi18bZff1LJMyRznmp6jzMGbP+3YEONJpH7/JGPP7V+jOn3J4QI1i4jtaYtwsZaEoZoYnBDCGbsu2RLJqj0SfjmooeFGMkuj0szdNb+rOJttCcvMNGIfCrxi7WeISXI4RMXmeJQZZ8OewUde8NvSCbeN3YKAQI4nOWaxkaD7Fi94q/y2v2e8GCUL6n8DzsCA+Dai9/41Z+ck+BsPWh62UagDe6nu3JElQvSYGk7sUf6QfptjJKbo7IWACUHspF7UDil+Ilh9qRSLlMhGnvOacb3iMho1Yz7io3JltKhHsw==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	H7VZBr+feXh63adu4JBiB5rtJJzm0yKyUzs+UMR/WDR7whFSfEr8OgX8v0C7ozKRy65e9I+auRKSBZ+hKoNtPijUC5Gi/AdOPsRundDS5qGPWZWbGM4qqsZY86gSpwcN2HzQLubLk1mw+vhsZxL5WOwYSYLqLJubnh7LVjJoa9dcKVeyWWeDmG9lGTJ+jPmNaX5HIo0rwAB2YOsu8Vs4KVWiKA6yDoxI2u4oZyrGrt5CRfrfXr7h3yl37l4fIMvRgvzvjXa/z/qVAq4c5hnDLYwWRj5yL+f0oJI3EQYlODwHJG20nFwyQUEzaF4dhgvUgOanHuLwA0KTu0RzvuHAREg4SP20DA8G1d+eFaNmZrUOtu1b4Kz5QiVcHlffYb1tY69qclaNeZccVGikxsi4zsroSkHKwb+iwywB/EhCfYZdyXQiR2ZTE2rSt5KBBoJLRMI0kC1ScDmtbef25yzFSR93CbTw9SO67mNgWoLFbI9BNo9ByBRp7xQ/wghex297Vss9tGXXdWvDlFV3Q9SjbWjhWghx3eXPW/sJllH5YH+dAlyaYMwBW/cNYzQywyugk4LA6q8ClsXsz8GYrh0g5GwhqI83N+6oadQZiNNqLtAYse589fm0uF9jSro8BvdzW/hBaVemLVZypdN4t7xp9A==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 21:58:46.1863
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b3fac53c-903c-4783-f328-08debb71f5df
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF0000C37B.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF7F57C1A6D
X-Authority-Analysis: v=2.4 cv=F6FnsKhN c=1 sm=1 tr=0 ts=6a16179e cx=c_pps
 a=S/uo/C2bPHUhgLefKkPNaQ==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=NGcC8JguVDcA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=WER9OelvoqQQjwJToBYG:22 a=p0WdMEafAAAA:8
 a=cbNQJ9GKAAAA:8 a=W6yYvYeWeSynHnNRtr4A:9 a=G69WFyCBNqGPyalROSdv:22
X-Proofpoint-GUID: y_fj_QkNbblw9Agn8cSZ6HIDrrQGkDkS
X-Proofpoint-ORIG-GUID: y_fj_QkNbblw9Agn8cSZ6HIDrrQGkDkS
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI2MDE5NSBTYWx0ZWRfX6muROVqamFKO
 meypm+7rqmucDtF1nIPy2hH6EhaIjYyual9p3UpQ4yKbuZYh1uS7avE2QVJHLIAEP33xkxwXJey
 o0aEm8kQtSwYyltkBB2Boxr6p4QcGnHHGESptuIeDdYwIPjEboE4E6zCHYhm/r0hCe7w90BpKJA
 qqPwrralPVALclKa6tBb3PlSL7WIZkEwzE3fkzdJmb/qLN+qpL8JQ2DZRHygBmS5+ouWAb+xVCc
 vCEhWt2zwbfadT2ENseBAh3TJJgtD/j5Ypnpkv40ZLCo9Xu/FJ6SHwfTaTtAISK5/tjxMsLDOr1
 AiWXU0TfuvdO4bRFBsADsLAJwH6YJowZhG6SjYLeNt251xnMFNwMiyjQXzDU02w4rX1X2ACpsvP
 ykfm+92KrERsLe0ruiPO3fZiYnATi4iEeYMnBZy1+i7rOrrdacUl/9f2IQ9P7czNP+avmubA1Vc
 NUvyUQZ16k1biNGEPag==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-05-26_05,2026-05-26_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1015
 priorityscore=1501 spamscore=0 lowpriorityscore=0 adultscore=0 bulkscore=0
 impostorscore=0 phishscore=0 suspectscore=0 malwarescore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605260195
X-purgate-ID: tlsNG-ebf023/1779832736-28B733FF-72C3A128/0/0
X-purgate-type: clean
X-purgate-size: 830

From: Denis Mukhin <dmukhin@ford.com> 

Enable extra Argo traces in CI to help analyze any potential Argo issues.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v2:
- new patch
- example verbose log: https://gitlab.com/xen-project/people/dmukhin/xen/-/jobs/14552079442
---
 automation/gitlab-ci/build.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 7f5b5938e851..5f9192e53d63 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -319,6 +319,7 @@ alpine-3.18-gcc-debug:
       CONFIG_EXPERT=y
       CONFIG_UNSUPPORTED=y
       CONFIG_ARGO=y
+      CONFIG_ARGO_DEBUG=y
       CONFIG_UBSAN=y
       CONFIG_UBSAN_FATAL=y
       CONFIG_MICROCODE_SCAN_DEFAULT=y
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Tue May 26 22:04:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 22:04:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320235.1587602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRzsc-0000Ti-7M; Tue, 26 May 2026 22:04:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320235.1587602; Tue, 26 May 2026 22:04:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wRzsc-0000Tb-3o; Tue, 26 May 2026 22:04:06 +0000
Received: by outflank-mailman (input) for mailman id 1320235;
 Tue, 26 May 2026 22:04:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wRzsb-0000TV-29
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 22:04:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wRzsa-0052Wr-0U
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 00:04:04 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a1618c7-2eae-0a2a0a5409dd-0a2a4507994e-10
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 00:04:03 +0200
Received: from [40.107.209.53]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a1618d1-229c-0a2a45070019-286bd135065b-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 00:04:03 +0200
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by SA2PR03MB5788.namprd03.prod.outlook.com (2603:10b6:806:11b::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.11; Tue, 26 May
 2026 22:03:58 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%3]) with mapi id 15.21.0071.010; Tue, 26 May 2026
 22:03:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iED0U0ew3FD0v5EHsdmlZgwWrQHB1LxoyXqhAgY8468F81IPR6Y+zzW66EYmJ9yKyz2iTUWCw5P0lyJ6WR1hBlW9nNWx2gNAG/D+JAe/xJAVTdRToxmSLhueQFw+DaeFR6e4nN9s7JCaEvELHeeGR7WeRKk2uoIgCfTUylc1HLySau+W4Hm9y/bfzLHHveDJHKuYUi1sjR+IzIF4PxRneCm7lt9Mn0nJ6YbAE6LZAdHwn/hMClWIAahFAl5iTnnP92mCQ3lngvGyQMZ7KDSsOI8947L1Q0IyT0nJwKtWAEVEvMvgthC8ptPGIxYsZV/r1VkBq70LRbyf60PC3pjL9w==
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=oOy/AqbXeovok4ykGoQQ3myNOqYLlbfxWNGEqTiD2j4=;
 b=Ju0SLjxxHsLICePg9CZxZ7RDl/gPX2R0TmGdsk+mT8TJoM4EP+QfFIsLP9w2dlgvcuAFUmOnvFyx0wq1LCbcVIyIaFqJgx+PsTTTiSnJZjHr9JqBPHRWTVUBlO1eviQKGt9jIHoCK+sQcX008rcU8FcC95SFgCg7y0GnBCXtKWs73BelxgNKrmL347LM2Zhj1avyHch8yo1gEiJTFbbWAmawIz62YFc1SHRMxfonf69VAfPOxbns/xLIRyU0Krn3Ru2DBm6Vm2Qw3Y8hYM7wekwDk6G5GXGoGwM/HJwY8PqrKJ6p1DrIsKyE2gtZB5p+g/XLHG5Pc/5U0VSbl9UhxA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=oOy/AqbXeovok4ykGoQQ3myNOqYLlbfxWNGEqTiD2j4=;
 b=nFtPYNcPQibPqiXBGzuBSw6/KAyZboiAtm8KtCI6rbMjzu6BX59CaRu7KgUPwzqdyBee5BhT91aaCJeJPxNrhhq/iop2L08xnN+daPo1KjUD8GZIOz2/DS0biZIMbhaUg7UTt5j0rrne/M/6MLbDozR0g+W9lLB+IPcS/Zy2eYo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <7a0f7653-a299-4ead-af6c-944b8ffbb73d@citrix.com>
Date: Tue, 26 May 2026 23:03:54 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] xen/x86: Change stub page freeing to fix smt=0
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260526203114.40882-1-jason.andryuk@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20260526203114.40882-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0252.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:350::18) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|SA2PR03MB5788:EE_
X-MS-Office365-Filtering-Correlation-Id: 9563ff34-6be4-49db-d979-08debb72af45
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099006|11063799006|6133799003|3023799007|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	jLPzkqERwVuHkYia0kyvxUidSAvw67L7nQWjM2HHicqzCCF3yJgU3Yz0pGIbZGQE0lh+CpZjCz4VbeEyKpmphI960wdXvW5WtrEEb+S7ZRVc8vCFc3U3qRJ5dcvsIyFZi2XQIP6DYcurDtyiDBKfmHsGajyNoV+HsT5Kk1xMRwBi4N6LDYrUXdAtqe3SzDNsizDqtfskpA56SXQJpiptmTu3o4Fu1ZkogEr+/b74GUDnxPjoS7NFZ/m/EWebu663guIy6IZMGuchpdMPG6hrtIQ+3dsh8U0DW7+1Wx30NzMNWXcEKnmfa3OPSzimcqMQDd+0OfWWQVHuA2zRlNKeCFk0CpW8tggg0MaY1r7hV2b5kxjLMxKvCQ+xR7GWKomR9MQqwQqUlH7P/S73nZEuQrcqrtvPx/i8qPbGaz6pk1BCRRLpbgYfSMuofMciEWK0uRems7sTRAr3KXIUkodOEzJuO5UuSCSMOZMDU13Dioma2ZAnCS2//aiK0xPz83NR1GV9gwToo+XPlV82CJp75NNxM4UDMaZBLbKXNMZ0atP8XANk4bnv2JXo+6UfHs6sfZOx1XcmoxGX0ePQymQiaU0LLHR7S3gthrG0YjbMI1lNUlJAWmNhooVuccUq3OyYUMPuWaIUI16SOMGDgEMBzj8TZd6RZXcQdCQN+9XwY9w0kbJt+TFbKqbMeEAD3P60
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099006)(11063799006)(6133799003)(3023799007)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VkhjalVEUXJ0TlpJY2VUMGxZQThNRUErYXlYOUxKdmRtamoxNXN0aUV2bmNY?=
 =?utf-8?B?UEw1OEV5ODZKVEtpeG9zQ0xXb25CNGpDSXF4MjYxNFZRai9EYlVoQlRPL0Vy?=
 =?utf-8?B?Q2tDcGU3c3RLYjNVbngrQi9lTXd0TzhKamJiSlhFeEVQMlk0Sy80aHFGV3pO?=
 =?utf-8?B?SStNWXp5QVVsVW83RG9aVDZzWGpMUjZ3T0FYWHpvUndvVzZBdFYraU92K2Nm?=
 =?utf-8?B?UEJnNU1yZksrMUJOSGRINzllWDhvRndVaE1SOXcvcnZsY21UWTBXbWE1N01x?=
 =?utf-8?B?bVJYRExMWGpQNWRpdVZVK0dyZEJVdjNuRHBrdkwrT3lFbUJ1cm1ubkNldVZ5?=
 =?utf-8?B?bVJLOGRJcDd3dS9RV256RDRJMmlJa05JVHNpci9hMmZUa0lpVkZSbHJMUkRO?=
 =?utf-8?B?WjZPanB0MnhxajAreGVtRmVxbWVYUTdqZjBJeW5kZjAxWFFQamdLK1p1anUy?=
 =?utf-8?B?OHE2aHJNTGRaU2RxNENhT1Q5cVFUSUFDRXpRdklobnZVSFRueUt1dUZhUEZV?=
 =?utf-8?B?WVJ0a3Z0ZG82anRJRWhFaE1mUGtKem1NSGcrbTltdlRGVi9ZUmMrV0VXUjR2?=
 =?utf-8?B?eU9udGh4TXJ3enQwbVpOaGpRdEltenpJbXQ0cGNJTno2QXlMUi92MmYxRWNT?=
 =?utf-8?B?RUh6VGtJQWR0VHVaYk9BcWQrYkNEc3QzeE9EdkkvV0dxaGxwOHd0TlQzUEpE?=
 =?utf-8?B?aDI0bTZqZE1iMXBlWnd3NGl1anV4UlhyZzlUTFBnYU1pbCtqUmZwMHBWUDVn?=
 =?utf-8?B?MktrbExwMHhDVkpVS0Mrcjh6b21vbThVV1pVY0poTFBiVkN3ejgvYkt1QVg4?=
 =?utf-8?B?MmdXM1BRLzdNRnlpYXVZWHEyc0psS3RVTENObm80VmRzZms2dU9YeEpXT29C?=
 =?utf-8?B?YllCNitUSlE2NVd4S0gxOFRLdHhaR0VtbkRNRng2M0plMlJPSFEyaExSTWd4?=
 =?utf-8?B?UkhNTVhxbVFBVm82MVVVLzVsQWp6d3AvUjhGUTFDRVlDTVNjVllnWTZKRTUv?=
 =?utf-8?B?Yk8yR25SZVhHWVhQbWZXVk5QV3l4QmpQRHZTZE41SXRmeGwrYUM4MjNIc2hy?=
 =?utf-8?B?YytBTDR4VWZKYk95QVQ2eXB2dGl3TmVzTjY5SllpK0dwdDdHUDJ2Vm02cisv?=
 =?utf-8?B?c0RINVVrazllRzA3cWE1TlFsSGxmZTNNdnBEdzduS1NsN04zNS94SHcvUW5i?=
 =?utf-8?B?anlaQjNNNXRxS0NkNUdLWnRvMm5kb3RHRTRXczA4T0JRS0hHYnpjWDBndXVG?=
 =?utf-8?B?Z3JxRlpiUFREVUY2TVVnYjlqR3JRVzdkMWdnYmJSOFZkSU9JVUtYVWF5aml0?=
 =?utf-8?B?aE9mTStZTHRjS2tIODNaUFI0Zkt0dm91WXhpT2Y3TGFCem1Ib0xRVHRUL0dN?=
 =?utf-8?B?YzVMZ1IrcWNKUDFtMjFpbTRWNkZGS2FlemE1UVF0cjl5blMvMjlrSjVKNHpC?=
 =?utf-8?B?aWdqSGJ0R3Z1NUFQU20xWE5rT2grQ1FmanM2M2dDOE5RRmxzaTZNMHBib1l2?=
 =?utf-8?B?KzFZYkJIWXRKc0c0WFhtb2VzMEJBZGs0ZnA5YWdEWUtGeTFtMnFlS0hRWTh1?=
 =?utf-8?B?ZFFDTjlQQVpZZDk4QytzMG1NYmU0Y054M2ovRytCaFd6aVp5SlBHdkxMMnNT?=
 =?utf-8?B?UWZwU1pEYVNtM3orR3loM0FPc2lRUklKNE5yYUlvVjNZVWNTZW1iVzVKK0Vz?=
 =?utf-8?B?ZFFoaTFXaEU3bFhDa3A3T2F2TzExdCs5ZXA1dFAwa0xxb1NIeEtMUEhsMnU0?=
 =?utf-8?B?Z1hYbno5cGlqbmVxUU81bjI3Zlc0L05CWVVROXVBWU93Z240anJTd0JUb1BQ?=
 =?utf-8?B?VDc2czBwaFFlSU15cDYvc0ZmWC93SzlXVG14dDNpa0d6QldFSFNzQVJBSjdz?=
 =?utf-8?B?Z1pNbERwS3RQVUdqR1ZCRWRXcElGcm03WEhnTHBGeDJMenllVnZ4KzRqazZB?=
 =?utf-8?B?ZHExWElnSStoMll4aFlEU3pzdEc2b2FYMHdDYmxuSXhlUkhuK2l0QWY4WTVV?=
 =?utf-8?B?a2hqby9tbHpXcFlBaHZvM0N6T3o3R0lUb2tjd2pNMERCK1FjM2M4bEcrYll6?=
 =?utf-8?B?UUNldyt0WTAwdjVRbTlQS1cvMUpuaEpsam82eDNqc1hEZXYreDFiSFRNNWtk?=
 =?utf-8?B?Q0lDcHV1UkpNVHU5eitVTnhOOGJ4aXlGdUhRTFdVYUFXTllUT1N0YXArbEJj?=
 =?utf-8?B?WExGVHFCSE5VakgwV2FGQzQ3U0NCWFNzcHZXRVZNM2Jha1FxenNoY20zM3dl?=
 =?utf-8?B?WlVXc2wrbU1PODA1eVFKOFcra25yMXZyWk5mSERQKzNKZ3BLZGVsZFdiM3RB?=
 =?utf-8?B?RmNmQmVxRWlrY1BPVlBLNWNmS3U2d3AzLzR5V0xnSGhiVjdMOU5xekRNNktU?=
 =?utf-8?Q?LGij0r1X1hFU1KRw=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9563ff34-6be4-49db-d979-08debb72af45
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 22:03:57.8597
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mlo/RQFEI1/C4nbPKPB9ncJzDRmBxhirN7aGu5kftTCBRsMcEbvhVv0MGS5F8+aAHvRDje+el8Uxxs7v14Z10t1nPAQDyCUGySY0vd0M57w=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5788
X-purgate-ID: tlsNG-ef75cf/1779833043-0AB70C48-2FB5D9EE/0/0
X-purgate-type: clean
X-purgate-size: 4311

On 26/05/2026 9:31 pm, Jason Andryuk wrote:
> A single stubs page is initialized with 0xcc and re-used, with multiple
> CPUs each using a portion of the shared page.  In cpu_smpboot_free(),
> each stubs area is checked against 0xcc.  When all are set to 0xcc, the
> page is freed.
>
> Booting a system with smt=0, CPU0 is initially setup, allocating the
> stubs page and initializing to 0xcc.  When more CPUs are brought up,
> CPU1 is initialized and then immediately brough offline as it is the
> sibling of CPU0.  Since the page was initially memset with 0xcc,
> cpu_smpboot_free() finds all stubs as 0xcc and frees the page.
> However, the page is still assigned to CPU0 and continues to be assigned
> to other CPUs.

It's more complicated than this.

With CONFIG_PV (and !opt_fred in 4.22 which is perhaps newer than you're
testing), the LSTAR and CSTAR stubs guarantee that the 0xcc's are
overwritten with real instructions.

In !CONFIG_PV, the 0xcc's only get overwritten by the exception recovery
selftests (CPU0 only, and gated on CONFIG_SELF_TESTS), and "complicated"
instructions in the emulator (which in your safety environment, you
likely have compiled out).

So, in your environment, I think you probably can exclude the stubs
entirely and trim even more LoC.

>
> Meanwhile the page can be reallocated, which can lead to misbehavior.
> The particular instance was the stubs page re-used as a page table which
> later faulted when the entry was all 0xcc.
>
> Change to initializing the page as 0xd6/STUB_BUF_FREE, and initializing
> individual stubs as 0xcc/STUB_BUF_USED.  0xd6 now indicates unused, and
> 0xcc indicates used/assigned.  When freeing a CPU, the stub is set to
> 0xd6, and the page is freed if all stubs are 0xd6.  Initializing with
> STUB_BUF_FREE lets cpu_smpboot_free() a page that was only ever
> partially used.
>
> 0xd6/UDB is a 1 byte invalid opcode, which is similar to the existing
> use of 0xcc.  0xd6 is used to identify bug frames, but the stub addr
> (e.g. 0xffff82d07fffe000) fails the is_active_kernel_text() check.  It
> should be okay to use here.
>
> Fixes: 7a66ac8d1633 ("x86: move syscall trampolines off the stack")
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
> It would be nice to use get_page()/put_page() to let count_info handle
> reference counting, but they require an owning domain.
>
> The listed Fixes introduced the use of 0xcc, but the smt commit may have
> made it more problematic.
> Fixes: d8f974f1a646 ("x86: command line option to avoid use of secondary hyper-threads")

Honestly, I dislike all of this "try to free data for going-offline
CPUs".  It is both complex and a non-stop source of bugs for tantamount
to 0 benefit.

On x86, we must boot all CPUs we find in the MADT.  You're seeing this
behaviour already.  This is because if an #MC hits any group of CPUs
where any CR4.MCE=0, it's an instant reset.

For this reason, firmware doesn't hand APs over to the OS in the
Wait-for-SIPI state (which resets CR4 to 0); they're in MWAIT or IO-wait
typically these days, using firmware provided stacks.  But firmware
cannot handle an #MC intended for the OS, so the OS must set up stacks
and at least an NMI and #MC handler even for those CPUs not wanting to run.

This what park_offline_cpus is trying to do, and while it's set for
Intel and clear for AMD, I'm pretty sure this is a bug on AMD because
you can still get MCEs with core-scope groups.


Beyond that,  smt=0 is an emergency bodge for speculation safety, which
is always better done by changing SMT settings in the firmware. 
xen-hptool is useful for testing but it's not a thing anyone uses in a
production system.

ACPI CPU hot-add does exist in virtual environments, but hot-remove is
theoretical at best.  I've not seen any evidence of ACPI hotplug
actually working on Xen, and I think the chances that it does are slim;
it requires AML execution, and is right in the middle of the split-brain
problem with physical vs virtual details that dom0 suffers.


So, lets just allocate the stubs and "leak" them in testing scenarios. 
It removes bugs and removes code, and has no effect on well-configured
systems (where cpu offline is not used in practice).

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue May 26 22:12:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 22:12:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320244.1587610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wS00h-0002Pz-Vo; Tue, 26 May 2026 22:12:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320244.1587610; Tue, 26 May 2026 22:12:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wS00h-0002Ps-SQ; Tue, 26 May 2026 22:12:27 +0000
Received: by outflank-mailman (input) for mailman id 1320244;
 Tue, 26 May 2026 22:12:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wS00g-0002Pm-Mb
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 22:12:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wS00g-00Ap4y-0a
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 00:12:26 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a161aaa-5cb7-0a2a0a5109dd-0a2a450385b8-32
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 00:12:25 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a161ac8-672d-0a2a45030019-aceafc1f9f4a-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 00:12:25 +0200
Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18])
 by sea.source.kernel.org (Postfix) with ESMTP id BBB5142AF1;
 Tue, 26 May 2026 22:12:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 589311F000E9;
 Tue, 26 May 2026 22:12:23 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20260515 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1779833543;
	bh=iuKse6yTZ1PX4RYR/GqhfYIdwzjQF1nQ6wec/X1mD+4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References;
	b=lvLJYgVbKE0o2NDi9ZKDtQlDRK1YH/kwEsU8UKpqRvieXNvdakksqYnIWKW21lbmy
	 kX2ATZ9FyyTLesCXvXpetfjZ/C7MMohKX5uuboRmDufC90Aedu4IkxOHxY5i1LJfuq
	 SJumL2nxiWqzzokAAktVY3yimy6gobNvxlQI/R5Im/pvTSMb3Iw5MqJrUJHo1NEdRa
	 T9njIN5m+AIvr7S3DsmWDO+GutqLf2DbeCOaR+A4yG6qPgVGM/ZrrTFcMxdPxA4LD1
	 TpIJDk5QGYzlzH8iRbUvSodOvmi13k798rCUeMDAW1unb13vFviPNAlOTuccCUlKpW
	 TKRDDUPt+egTg==
Date: Tue, 26 May 2026 15:12:23 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] vPCI: resolve MISRA R10.1 boolean arithmetic type
 violation
In-Reply-To: <984c91b8-3d2c-4431-bdf1-4a333ac341d1@suse.com>
Message-ID: <alpine.DEB.2.22.394.2605261508390.182011@ubuntu-linux-20-04-desktop>
References: <e23266191a366abe66d8104783d97578aa8734a4.1779428826.git.dmytro_prokopchuk1@epam.com> <984c91b8-3d2c-4431-bdf1-4a333ac341d1@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-33051d/1779833545-41F90938-2E7A2FA5/0/0
X-purgate-type: clean
X-purgate-size: 1947

On Fri, 22 May 2026, Jan Beulich wrote:
> (extending Cc list)
> 
> On 22.05.2026 08:13, Dmytro Prokopchuk1 wrote:
> > --- a/xen/drivers/vpci/header.c
> > +++ b/xen/drivers/vpci/header.c
> > @@ -586,7 +586,7 @@ static void cf_check bar_write(
> >          if ( val != (uint32_t)(bar->addr >> (hi ? 32 : 0)) )
> >              gprintk(XENLOG_WARNING,
> >                      "%pp: ignored BAR %zu write while mapped\n",
> > -                    &pdev->sbdf, bar - pdev->vpci->header.bars + hi);
> > +                    &pdev->sbdf, bar - pdev->vpci->header.bars + (hi ? 1 : 0));
> >          return;
> >      }
> >  
> > @@ -647,7 +647,7 @@ static void cf_check guest_mem_bar_write(const struct pci_dev *pdev,
> >          if ( guest_addr != bar->guest_addr )
> >              gprintk(XENLOG_WARNING,
> >                      "%pp: ignored guest BAR %zu write while mapped\n",
> > -                    &pdev->sbdf, bar - pdev->vpci->header.bars + hi);
> > +                    &pdev->sbdf, bar - pdev->vpci->header.bars + (hi ? 1 : 0));
> >          return;
> >      }
> >      bar->guest_addr = guest_addr;
> 
> Well. If I'm not mistaken we had discussed situations like this (long ago).
> Imo the added verbosity gets in the way of readability. If we absolutely
> cannot or don't want to deviate such constructs (of which I expect we have
> more), then we ought to consider alternatives (like changing the variables'
> types in the case here).
> 
> As to deviating: rules.rst, according to my reading, says that &, |, ^, or
> shifts would be okay to use with a bool operand. What's wrong with also
> permitting this for other operators?

In my opinion, if we are going to treat bool as its own type, it makes
sense not to silently mix bools into arithmetic with int types. I also
do not find this patch less readable -- I actually find it more
readable, since it makes it more obvious that hi is a bool.



From xen-devel-bounces@lists.xenproject.org Tue May 26 23:53:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 May 2026 23:53:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320258.1587619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wS1aL-0007FM-QS; Tue, 26 May 2026 23:53:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320258.1587619; Tue, 26 May 2026 23:53:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wS1aL-0007FF-Nf; Tue, 26 May 2026 23:53:21 +0000
Received: by outflank-mailman (input) for mailman id 1320258;
 Tue, 26 May 2026 23:53:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wS1aK-0007F9-GW
 for xen-devel@lists.xenproject.org; Tue, 26 May 2026 23:53:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wS1aJ-00AycF-7T
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 01:53:19 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a1631bd-bab6-0a2a0a5309dd-0a2a4504a44c-32
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 01:53:18 +0200
Received: from [40.107.200.0]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a16326d-1dec-0a2a45040019-286bc8004625-4
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 01:53:18 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO1PR03MB7938.namprd03.prod.outlook.com (2603:10b6:303:270::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Tue, 26 May
 2026 23:53:14 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0071.010; Tue, 26 May 2026
 23:53:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TqC/X1elYeeZm9ngZJ/X3EGuBJAmGDtEElEdVsBPWunspEzWl2uCzxewWIAcVtPZGuVw3P6Ry232DcjLZppyLBRGpwh+AunusInMhLHSJYvGpDnLXpa5/PjYjc2ANPxwnEOeXIYcSe3QlfXZTqPPd//gZGtIeL+qExltqXfQ2sfWE2wZGkm5BJfBYCjRdyBblhAnZJ/Qc6R9YBXUm7T7ya4jvGwawlIXCXb344GqOCqAkmgnrNruWB5CalYfdz3ENQvDlqNZJUfz9tKjG2cB3rYH9IZ1O8b8I+UxLoB2zJaeu0LmJVyqcw/KYJzaDO3sljqrg+/4tEiucAcvy/KlLw==
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=LeFPOzSCLTSb8RYwHS0yM7PrkLfSVqDALvWaeYKBYBk=;
 b=RXyxjOMr1YsIkFTWEgzfHvOubRrqI7ZzM/NSQBX79++qzeyZLJ9UG8qxZscftWEE2Tk9EGcHnyE6RNGiYzLsVUJHjH5Iu8epFQ1ZFPnnyszCoX7sCZXC87l9ynTipf1uTLISHmX+wmUZlzUd1NxZug/87JolqBITOx/l/kWCLdKWymJriAY9YZMSCdkmeDf1KeSoAVvZ+UzemADGSPf5l2q5E3lQ9CmUcPLw6coJKZJN4n/7THhSYiwxtopnpqiG5W6HtWmJ1Gw3Ob4N9iZCgIR5xd4APbknxdIVkUZl29m8W1fYu4v+gGgcmA7rwGO5rhEf8Y+xSON5v0T+iXRBSw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LeFPOzSCLTSb8RYwHS0yM7PrkLfSVqDALvWaeYKBYBk=;
 b=MYmTZEvpzHBw6SO2gGPhi8yQssgWVXHHfeh1uFrdidOXpVntMFaEQTrUylwpYSWqV69VHewX+anPxdh3JKpp6j1E0Xap20JextWErB4vbAR8QlNhOCqCydykuvTas/2xeAE+0UFcsozDD+TB+qaXHoYN7PQ6XEvqTtOylndCaTE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <3bc09469-8613-4719-aac9-3803e4f858f7@citrix.com>
Date: Wed, 27 May 2026 00:53:10 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] coverage: place GCOV-generated .text.* sections in Xen
 text
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cb8c1e0862a554f7a28347f549e9cfd0b0d6db2f.1779829545.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <cb8c1e0862a554f7a28347f549e9cfd0b0d6db2f.1779829545.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0007.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ad::23) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CO1PR03MB7938:EE_
X-MS-Office365-Filtering-Correlation-Id: 73511ab3-304c-4c9b-34ec-08debb81f372
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|7416014|18002099003|22082099003|3023799007|56012099006|6133799003|11063799006;
X-Microsoft-Antispam-Message-Info:
	/7NtmbfrDFDTJ3o0ImSozp+JRzoMuF/qlKjJWlLt+QHSJXi6xhb92Nyjom1gUZ1JEmJD3XA9A9g1Ivn3Y+b8sxBzNV/sv3TpxChPoKSU1PdnDoOxqS+ks3DBrDnZy5oFQ2/wDZWhWnpt7B5P0cXrmxABPNq61a4iQcpQfm4WZQZA4ZuBGBhgejxu62A1eU3TWyV1+Ie+6G8+anEeww53qSgo+tyUR64MK9qlHKYbi4XaMFPCahCDHCfwB3+7PFoG8wvcI0+IzEjaJp+ri25Nx3957JvlWcZYG4M17WC2OO1AU9BTgqLdd+1TbguVqNnLY7jJaxVTxF6VlE1o93UdL102RhkFuImttN7atj+8n54V2R33KuEj75Nc0+TCxfW7r01NvGzwsWwU4bRuVF/C1NescF9N8MYnAjtjc6MnbeG13rHwL+a4I4/vA69+f/2YDKITmkgezaCupBk7i/FgP+rROjtNATPgkKGIXamNEyKZZcpF5Hqw+1hWHQVqIAt+6frJizOrX/U3BNpo2o5IWv3kAk0YlMJ4eB725sVP2BvFsW6j++eh2yjXRDu1t8LDm5E8R21C5agKjXAYtlPq11JQ8zuiR0yvS1imq3WnafamAuFRZYzwzezQ1Q6at87D1Tl8xHMevatenGuHS0nL0aDqrk9ULz4wVEHojQ6yqFJ1rf+ysUSaynA3rd4VzdqL
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7416014)(18002099003)(22082099003)(3023799007)(56012099006)(6133799003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?T3NiRWw3M0R4RTRlekR5Y2E0WERaYVExa20xT25KV0R5MjQzcVFTQ1JQdUln?=
 =?utf-8?B?VHpPTXYvRElEQ1l5alQyclFJUUN1ci8zay9qMyswdDFUMEsreXRZQitsa1p2?=
 =?utf-8?B?QmJyeERIbVlaanY2SDdJcHFZdWgyZXFWTFFRaTZDYi90bzU5c2pMNjdMVE1m?=
 =?utf-8?B?MkE4S01WZzBYUUU5cWdJV25KUDNuZTBpM3Zkb3VLd2dtNU9nRE9KWWFOYVly?=
 =?utf-8?B?Z08vSGpuSU1wYlh6TjVXRFdQVUFKRjZpNkx6KzR5QWpONlc4TG5OcmhWRnRC?=
 =?utf-8?B?akhrNmFUcFVyUFFqMmxFVWFQTGVKTUJiSnBCSXFsRGFmdFZxRnFVWm9oYi91?=
 =?utf-8?B?aFRHWG5xbXRGY0VobHZtS2cxeDhSZlQvRFRTY0lGYzdYZHBYV0p4bU9LOVg4?=
 =?utf-8?B?UkxCU0FuMjBwZVdkZnZxNWI1b293cGFVTmJXMjYzWDVsZ1BCaklTcEYvYy9S?=
 =?utf-8?B?M3YvTHhPeEN4c1dNMVFDN1BoWGVLRzZGVmg3UjFjaEx5ZEFSZy96VnE2a0U5?=
 =?utf-8?B?bThXZUtrSmRpZUk2eGptdGJRaGlqdEtSRjQyNzlZNEN5dEVPZEFPdExtTzJQ?=
 =?utf-8?B?RDlKRjBqdHhYWkRycEJaYzJnQjhhUVdjazZhNkNzUFZ2SGxsMDk1aHFyUTFk?=
 =?utf-8?B?YzRrL0ZjK1ZjYVRaRUF2dzZSRm9iOFlMZUdrdmxuTVlFOGtGU0VIdVFCSW9U?=
 =?utf-8?B?UUNsdmlNK3lFdGpSZzU5RXFZeURiTmV3M3pFalV0VnZOeDBjcDZHSUkwcHB5?=
 =?utf-8?B?bTVULzdsSGRoNGZMdHpGanR5UG44bkgyNDBUeEt0cDM0UGMxQ2RIdFJHS2ZL?=
 =?utf-8?B?SE1penJTMmJ0MHBJMTFBS2VXUVlEM2wrdlR6ODdob2FmRktKUUlNdkx4U3h5?=
 =?utf-8?B?ekljTTZWeVFEQ3Yvck5zQ3JPZ1dpby9mRUdtK3VyT3dqOWF4cXZyeFlMOS8r?=
 =?utf-8?B?RkFhVWp2RGJnNEVtK1BrQXFsaGJGeEpzb1l4VmpFQlNBb2NUcTJGV0V1cnp0?=
 =?utf-8?B?c0lzc2NyVExtdjZKa0JJSkxzbDZUbS9NODJjOVk2d3dUOE9oY014b2dycjAw?=
 =?utf-8?B?RU1KWG80d1ByeTVkVXhPTmdyZnFxSzdTbmFldUdSQW5FbFZxalA2eEZJb1pX?=
 =?utf-8?B?bHBldVNVSUVHdVMwTFBOWVFScW42SitFRHRPUWhtMjBzNkhwM2JpclR0SzR1?=
 =?utf-8?B?YlZwLzhubjAxV1pmWlhqTFNhaUx4ZlRnZk95YS9RUkNNeFRFMCtJQ3NVZTBW?=
 =?utf-8?B?RnE2T1JtV3NNUStrWlpDL3BFTlhyT2crQmxCTUJoMzlJTFE4VHN2Tm9NRGNH?=
 =?utf-8?B?VXlhTTd0c1MzZmhQaGRBRk1adTljY2lUYWl4Wm9vSyswRVg1ZFVBcDVFeVZ2?=
 =?utf-8?B?OUtRT0ZvemhBUEZrQkxub25STU1SeXFIaXZaN3FCNVlFQkdRMXF5MEowRTdv?=
 =?utf-8?B?ME4yTDdVNUtmTTRMUEE5d29YdVBQY1NZdzNUc1g5eE5lclkvcjd6TVp4STJl?=
 =?utf-8?B?VGVWc2lXblJNU3U5emVWQkdXVVVHT1gvVlBNWWtmWFVlNTllOWdvQi8xNzdT?=
 =?utf-8?B?NDBQOHBUYTJ5TjN2WHBFYmFiVW1ObVRUQTljR1VKazVmWHhPUDByQmFqNEdK?=
 =?utf-8?B?YjJNY29pTDRYTHdUdWRsdmhQZDcvZWFIenpDWkxHc3E1enc1VlBsOHQ0UHdH?=
 =?utf-8?B?WnY5QUFSTlN5ZEJkZnZ3eDhKVVAwYVJNY2RqZHhHWUkrUHlTQVU2L1Z0ZnR4?=
 =?utf-8?B?RkxucUJVbzJFYklTRUljV3lkSVRLcHZHbUkrTGVvbjhodmpTeVVrRmU2Y0dW?=
 =?utf-8?B?TVcvZjM0RWw0d1oxdnhtVjRIRmxQa3lZenJsZm8rOVVVNEl1bWpPMGJucklU?=
 =?utf-8?B?YWFOc2c4c2hSR29xT2FLSUlvRDJWYW1PazY0L0hMY01SQ21lTHN2RWlUc1pa?=
 =?utf-8?B?SVpSVFFYaXhJVTdNTUJnZnlhbkw1dDJ6UHgzUCtnQjNrU0w2bzR0QlRTMjdE?=
 =?utf-8?B?dHgxclJHZDNYZ1FzQU5RVXp6QUlUc0ljUnMrTnJpNHNmN29OZVQ4eWRXY2gw?=
 =?utf-8?B?UnB6UnBNOXBhc29IMHJ0blRadU1pYmRnRW45VlU5WkVjQnZTNTMwUjRjY2FQ?=
 =?utf-8?B?Q1NWTlJ1SktTbFc4NHJ5Y21idnlhNWUvNnUxZjJtVUo1Z21nNDhSNi9pbkVv?=
 =?utf-8?B?V0J2aUhURmtkUHlPTVVLNWdmc0g0NnMzWG9KTEl2MlU5R3Q2ajl2K1V2NWpZ?=
 =?utf-8?B?N096ZzBwTHlKWUtNbUg5YnJ6bGsyV2M5Sm9WZGVZamlPUjZhaEtNUGRnNkkx?=
 =?utf-8?B?R1hMcFFYdTh4aVZNZVZLR1NzWnJxdkRzWnZPTUJHWXdZb2crVHF6VWVhbmlK?=
 =?utf-8?Q?v9XJW57dVMULy6pI=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 73511ab3-304c-4c9b-34ec-08debb81f372
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 23:53:14.3939
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vE3I3ihsx1aNZc4diEFn/Q5s9CKSzS7nff+rtSUmxgpxNjX2Tg+lRedwwLmUNiX1M48NQIM10IdSQmSd+Yx2GDAE5YIw8Nsigjp+1hGsYPc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7938
X-purgate-ID: tlsNG-ebf023/1779839598-293773FF-4A5855DE/0/0
X-purgate-type: clean
X-purgate-size: 4652

On 26/05/2026 10:07 pm, Dmytro Prokopchuk1 wrote:
> GCOV instrumentation can emit executable input sections such as
> .text.startup and .text.exit when CONFIG_COVERAGE is enabled.
> At present the Xen linker scripts only collect .text.* into the
> main text output section when CONFIG_CC_SPLIT_SECTIONS is enabled.
>
> With CONFIG_COVERAGE=y and CONFIG_CC_SPLIT_SECTIONS=n, these executable
> sections may be placed as linker orphans outside the expected Xen text
> region. Constructors generated by coverage instrumentation can then point
> at code outside the normal RX text mapping, leading to early boot crashes
> from init_constructors():
>
>     (XEN) [   12.331193] Instruction Abort Trap. Syndrome=0xf
>     (XEN) [   12.334253] Walking Hypervisor VA 0xa00003ce000 on CPU0 via TTBR 0x000000004352d000
>     (XEN) [   12.338550] 0TH[0x014] = 0x4352cf7f
>     (XEN) [   12.341823] 1ST[0x000] = 0x4352bf7f
>     (XEN) [   12.345124] 2ND[0x001] = 0x40000043527f7f
>     (XEN) [   12.347329] 3RD[0x1ce] = 0x400000433cef7f
>     (XEN) [   12.351233] CPU0: Unexpected Trap: Instruction Abort
>     (XEN) [   12.357643] ----[ Xen-4.21.1  arm64  debug=n gcov=y  Not tainted ]----
>     (XEN) [   12.360243] CPU:    0
>     (XEN) [   12.364098] PC:     00000a00003ce000 00000a00003ce000
>     (XEN) [   12.375835] LR:     00000a00004802f8
>     (XEN) [   12.378273] SP:     00000a00004c7e10
>     (XEN) [   12.380492] CPSR:   0000000080000249 MODE:64-bit EL2h (Hypervisor, handler)
>     (XEN) [   12.382785]      X0: 00000a00003ce000  X1: 0000000000000000  X2: 00000a0000410fa0
>     (XEN) [   12.385176]      X3: 0000000000000000  X4: 0000000000000010  X5: 0000000000000001
>     (XEN) [   12.387555]      X6: 00000a00004e5f40  X7: 00000a00004e5f38  X8: 0000000000000000
>     (XEN) [   12.390027]      X9: 00000a00004e5f20 X10: 00000a00004e5f30 X11: 00000a00004e5f40
>     (XEN) [   12.392510]     X12: 00000a0000439748 X13: 00000a0000406938 X14: 000000000000062e
>     (XEN) [   12.394954]     X15: 00000a00004f3918 X16: 00000a00004c7bb5 X17: 00000000004c7bb5
>     (XEN) [   12.397293]     X18: 0000000000000030 X19: 000000000000001d X20: 00000000000000a9
>     (XEN) [   12.399803]     X21: 00000a00004c8008 X22: 00000a00003fa000 X23: 00000a00004e2000
>     (XEN) [   12.402392]     X24: 00000a00003f9390 X25: 00000a00003fa000 X26: 00000a00003f4ca8
>     (XEN) [   12.404798]     X27: 0000000000000002 X28: 00000a000057a9c0  FP: 00000000bedb6740
>     (XEN) [   12.407110]
>     (XEN) [   12.409442]   VTCR_EL2: 0000000080023558
>     (XEN) [   12.411291]  VTTBR_EL2: 00000000bffc4000
>     (XEN) [   12.412895]
>     (XEN) [   12.414204]  SCTLR_EL2: 0000000030cd183d
>     (XEN) [   12.415928]    HCR_EL2: 0000000000000039
>     (XEN) [   12.417642]  TTBR0_EL2: 000000004352d000
>     (XEN) [   12.419152]
>     (XEN) [   12.420327]    ESR_EL2: 000000008600000f
>     (XEN) [   12.422056]  HPFAR_EL2: 0000000000000000
>     (XEN) [   12.423809]    FAR_EL2: 00000a00003ce000
>     ...
>     (XEN) [   12.485355] Xen call trace:
>     (XEN) [   12.489080]    [<00000a00003ce000>] 00000a00003ce000 (PC)
>     (XEN) [   12.512076]    [<00000a00004802f8>] init_constructors+0x38/0x50 (LR)
>
> Observed failing symbol:
>     _sub_I_00100_0
> called from:
>     init_constructors()
> The issue can be diagnosed by enabling linker orphan diagnostics or
> generating a linker map:
>     LDFLAGS += "--orphan-handling=warn"
>     LDFLAGS += "-Map=xen.map"
> and then inspecting orphaned executable sections such as:
>     .text.startup
>
> Collect .text.* whenever either CONFIG_CC_SPLIT_SECTIONS or
> CONFIG_COVERAGE is enabled.
>
> Apply the same change for arm, x86, riscv and ppc.
>
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

We already have --orphan-handling=warn.  We've talked about upgrading it
to =error several times because things like this keep on happening.

[edit] oh, we only have =warn on x86.  That explains why you didn't see
it on ARM.

The patch is perhaps ok at this juncture in 4.22, but see how x86
already suffers from the bug described by Linux's TEXT_SECTION to do
with matching .text.startup, and the absence of .text.startup in other
architectures means that the constructors (which should be going in
.init) are being orphaned and outside of init in all the other
architectures.

I think we need to borrow Linux's workaround for this issue (which
solves your orphaned section), and gather .text.startup properly in the
non-x86 architectures, then organise =error everywhere and let
randconfig loose on it.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 27 01:21:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 01:21:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320277.1587635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wS2xQ-0001jY-OV; Wed, 27 May 2026 01:21:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320277.1587635; Wed, 27 May 2026 01:21:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wS2xQ-0001iZ-Hd; Wed, 27 May 2026 01:21:16 +0000
Received: by outflank-mailman (input) for mailman id 1320277;
 Wed, 27 May 2026 01:21:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wS2xO-0001gH-Kt
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 01:21:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wS2xO-00Cdnu-13
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 03:21:14 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a1646e3-5cb7-0a2a0a5109dd-0a2a450a9be6-26
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 03:21:13 +0200
Received: from [209.85.218.52] (helo=mail-ej1-f52.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a164709-56b3-0a2a450a0019-d155da34c1b0-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 03:21:13 +0200
Received: by mail-ej1-f52.google.com with SMTP id
 a640c23a62f3a-bd4d7f4fa02so1884715366b.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 18:21:13 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.25.69]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc5ece286sm550541266b.40.2026.05.26.18.21.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 18:21:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779844873; x=1780449673; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4vMhWg43N7nYM1IT7U4BDAySY2pGEqFJ6jhyhmB4l4w=;
        b=efcP6ItTxc7InSUPfYwQg9/Tn3Hrm7BKkuu46ijqrK/mMREnZ1vlz3KBOljTG3/Hu2
         eWtPDYSSjGFD5RZxB9/F3r9PaeyZrM5QWKGiJtFgvtInFhGqAEnF+He+8YCA0GzdsIlT
         EaS2BJF62+GtuoerZRp7lr/7bxJypr/ghIX/mP372vY7vN89+OO1AGgwTzw9cGVZdt9E
         WVZ/VaKrxsBJ3gdTKVMIcvzrv9mEejWIVCqFe2w0VOTpMs/MSlODFs0+2DM5plfX3AeX
         DzsmMJ7h5jDVfJsLFoBiJ5bl/Kr6Fqu4GSHl9YmS4/GmIbX38DhrrGAE/LBkE/EhToPx
         WP+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779844873; x=1780449673;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=4vMhWg43N7nYM1IT7U4BDAySY2pGEqFJ6jhyhmB4l4w=;
        b=ZTfA+um8RfxeFYep+ojHCv38nQ2PlRjThDnO6bgxor/FeTSxo1dA7OXqvm9CSguGHD
         5TNYNLSwcLVnWcloT+EIi5toSpJC+fFdpfLIOxRCLNqmtKHdjTKWF83v0eNOLtMZ+r5h
         jA9RkwvLazq97Da1YEeod/0qgUmfue8cORB3R+lC7j17YUJml/5MltUzoUHUHpWlsqnD
         afiaAxTysbc3ewRRn397MdccJwWb67eax5DC7kntWDbXpSO3tcDkIgh2RwAa/GDXX/Kj
         szJkVVFmZTOutwcvftm2lnPdWw1nNic3NGU4xECrMkINyVW54Dc5gLVK7bOXNsPGHR/p
         N0JA==
X-Gm-Message-State: AOJu0Yzhd3zt7FC4NsaLsmG5sQkZnYzZY/2i68nFvCcsg1/wFJ3zFg/h
	w/ESYhFlq1jKvFYPjDqB7CZOYKGycLBeJ5PAZMdaT0sa5hhwJ3fsF66EFAHI3Q==
X-Gm-Gg: Acq92OGa7ojJfi/xtfTd8Y5BHlMWb2X1FjYjsGAuuRzY+JvZQmZQ/TLOYyNWjZ9I86U
	f4JZPFzL+Ji3uYhREiwU2y+15nYJBPor+7Ap4aIctRtD1zEaiycwC1TFfSLobGiB5Y+vmv3rmHA
	CSbUw/t8s2kwvygTJWwB1KSkY8G//X4BGuF/4cgy+x1jNrTqKVmhbeNesxV9grlGRNaV+QFfDYH
	h7UaBaC6JZnx5uVpnxH5Bfib5xfiwK5F36c5tTcnDOt/8+1OYCA8RSKJGJWD6ZmToh5XRfnqed5
	W5GfROfIA+rM+4AZs7x4RQZHmx7C/PF5fXZtl9JmzzK4jTiY1e/dhsF3RfYHF5s3c1qfbPcR/zO
	nCwcvcpZvqgt8XrB+kjskvs8DJvXhZReUVuE7IS8DFVOAZvd6xdsOcJjA4R6yK3MFe+Reupm69S
	2jL4I5g2rSPTKYufYBCVjIEPJRuPeg1UL/zmB7
X-Received: by 2002:a17:907:1dc8:b0:ba6:e18f:1568 with SMTP id a640c23a62f3a-bdd272cf257mr847459566b.32.1779844873438;
        Tue, 26 May 2026 18:21:13 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.22 v2 1/2] xen/arm: propagate vGIC vCPU init failures
Date: Wed, 27 May 2026 04:18:50 +0300
Message-ID: <6a422e066c1ee58b81d6c5c15952249572cd13bf.1779840898.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779840898.git.mykola_kvach@epam.com>
References: <cover.1779840898.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1779844873-7CA798B7-120F01EB/0/0
X-purgate-type: clean
X-purgate-size: 5232

From: Mykola Kvach <mykola_kvach@epam.com>

The vGIC per-vCPU init callback can fail. In particular, GICv3 rejects
a vCPU when the domain's redistributor layout has no MMIO slot covering
that vCPU. However, the generic vGIC init path ignored the callback
return value, so vcpu_create() could succeed with an invalid vGICv3
per-vCPU state.

This can be reproduced on FVP Base RevC by exposing a 2 MiB GICv3
redistributor region to Dom0 and booting Xen with:

    maxcpus=1 dom0_max_vcpus=64

The host GICv3 redistributor range is:

    region 0: 0x0000002f100000 - 0x0000002f300000

With Xen's guest redistributor frame size of 128 KiB, that range covers
16 guest redistributors. vCPU16 and above have no corresponding
redistributor slot.

Before this fix, Xen detected the missing redistributors:

    d0: Unable to find a re-distributor for VCPU 16
    ...
    d0: Unable to find a re-distributor for VCPU 63

but ignored the error and continued as if the secondary vCPUs had been
created correctly. Dom0 then saw 64 possible CPUs and could hang during
secondary CPU bring-up:

    smp: Bringing up secondary CPUs ...
    d0v15: vGICR: SGI: unhandled word write ... to ICACTIVER0

Propagate the vGIC vcpu_init() error so the caller can stop creating
secondary vCPUs. With this fix, Dom0 construction reports:

    d0: Unable to find a re-distributor for VCPU 16
    Failed to allocate d0v16

and the guest continues booting with the vCPUs created before the
failure:

    smp: Brought up 1 node, 16 CPUs

Free the private IRQ rank allocated by vcpu_vgic_init() on this error
path. The caller will still run the generic vCPU creation cleanup, but
XFREE() clears the pointer so that cleanup remains idempotent.

Also fix the host-layout redistributor region count for the case where
the requested vCPU count is larger than the capacity of all host
redistributor regions. The old code always stored i + 1 after the loop.
That is correct when the loop stops inside a valid region because the
requested vCPU count is covered. If the loop exits after consuming all
hardware regions, i is already equal to the number of allocated regions,
so i + 1 records one region too many.

In the same FVP setup, that off-by-one made Xen describe host-layout
GICR state beyond the populated redistributor region list. Dom0 then
accessed the GICR MMIO window described in its device tree, but Xen could
not match the access to a valid emulated redistributor frame. During
debugging this was seen as an unexpected vGICR access followed by a
guest panic:

    d0v0: vGICR: unknown gpa read address 000000002f10ffe8
    pc : gic_iterate_rdists+0x4c/0x104
    Kernel panic - not syncing: Attempted to kill the idle task!

Keep the existing construct_domain() policy used by Dom0 and dom0less
domain construction: a failure to create a secondary vCPU stops the
secondary vCPU creation loop, but does not fail the whole domain
construction.

Fixes: ea37fd21110b ("xen/arm: split vgic driver into generic and vgic-v2 driver")
Fixes: 54ec59f6b0b3 ("xen/arm: vgic-v3: Don't create empty re-distributor regions")
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
Changes in v2:
- use min(i + 1U, vgic_v3_hw.nr_rdist_regions) when limiting the
  host-layout redistributor region count.
- keep the trailing blank line at the end of xen/arch/arm/vgic.c.
- clarify that the best-effort secondary vCPU allocation failure policy is
  the existing construct_domain() policy for Dom0 and dom0less domains.
---
 xen/arch/arm/vgic-v3.c | 2 +-
 xen/arch/arm/vgic.c    | 9 +++++++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
index 77517c3030..c1c4d6f71e 100644
--- a/xen/arch/arm/vgic-v3.c
+++ b/xen/arch/arm/vgic-v3.c
@@ -1834,7 +1834,7 @@ static int vgic_v3_domain_init(struct domain *d)
          * not match the number of pCPUs). Update the number of regions to
          * avoid exposing unused region as they will not get emulated.
          */
-        d->arch.vgic.nr_regions = i + 1;
+        d->arch.vgic.nr_regions = min(i + 1U, vgic_v3_hw.nr_rdist_regions);
 
         d->arch.vgic.intid_bits = vgic_v3_hw.intid_bits;
     }
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 6647071ad4..e5aca17dcb 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -368,7 +368,7 @@ void domain_vgic_free(struct domain *d)
 
 int vcpu_vgic_init(struct vcpu *v)
 {
-    int i;
+    int i, ret;
 
     v->arch.vgic.private_irqs = xzalloc(struct vgic_irq_rank);
     if ( v->arch.vgic.private_irqs == NULL )
@@ -377,7 +377,12 @@ int vcpu_vgic_init(struct vcpu *v)
     /* SGIs/PPIs are always routed to this VCPU */
     vgic_rank_init(v->arch.vgic.private_irqs, 0, v->vcpu_id);
 
-    v->domain->arch.vgic.handler->vcpu_init(v);
+    ret = v->domain->arch.vgic.handler->vcpu_init(v);
+    if ( ret )
+    {
+        XFREE(v->arch.vgic.private_irqs);
+        return ret;
+    }
 
     memset(&v->arch.vgic.pending_irqs, 0, sizeof(v->arch.vgic.pending_irqs));
     for (i = 0; i < 32; i++)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed May 27 01:21:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 01:21:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320278.1587640 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wS2xR-0001pQ-0i; Wed, 27 May 2026 01:21:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320278.1587640; Wed, 27 May 2026 01:21:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wS2xQ-0001og-Qw; Wed, 27 May 2026 01:21:16 +0000
Received: by outflank-mailman (input) for mailman id 1320278;
 Wed, 27 May 2026 01:21:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wS2xP-0001gS-Us
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 01:21:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wS2xP-005m8e-BG
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 03:21:15 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a1646e5-2eae-0a2a0a5409dd-0a2a450cd0b0-16
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 03:21:15 +0200
Received: from [209.85.218.41] (helo=mail-ej1-f41.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a16470b-62f1-0a2a450c0019-d155da29c42d-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 03:21:15 +0200
Received: by mail-ej1-f41.google.com with SMTP id
 a640c23a62f3a-bdb3eb93e20so1004846366b.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 18:21:15 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.25.69]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc5ece286sm550541266b.40.2026.05.26.18.21.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 18:21:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779844875; x=1780449675; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Z5q42x2SOumwV2ISXd6im3oJPw1oUaSthvJnr3rBh1Q=;
        b=XP95W2WPsjBB5oyYiVafiQq1xN4A5yA76kGHaY8jn/vraV/Wf/rrWOqVPv5YURkoyg
         gxN9ZkmpZaJt3LokqldafztIVMt1n6nfZ1C27tXUy1z66qu+FvCJBGe+JWq1IRl9ZCu+
         mycxrTl2OKYMJwaEs77KbV2KXtKI2Z/UI7ghWmP+uCG55eFd+CrZwOE8obATii7Hh0wY
         JekCpPd4rL7OzfDX3a7rb/DdKpIJVXzgPCcIU78JwA/+nDqlfYeI7lobBzWgXMnzhD27
         gOmS5hK9rXJV/bSW5oSjgIr6LyxQbOX7HBBpGHtHUozwXnKXaXX4XUaixEU3sKd3aetc
         kr4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779844875; x=1780449675;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Z5q42x2SOumwV2ISXd6im3oJPw1oUaSthvJnr3rBh1Q=;
        b=RyMtKhNrQiyqL/iH6+c4Ff4ZT3thH5+eUVys48QznoEN+LS6r0dTUBjJGIXK/fdSTH
         FCsVacUcPnMCrEr1nkgKGo+jsu2eUtaxuAq0OzkOYSJZwJhrLBgJw6xr9jtlCcgx2Cmh
         Z4Lzw1/fXA87NEJPfQVIFTddy+qGpBpGU12W2wDbStIZL81wIJFb5b5Z53vmflYruMzt
         qyaN2Lg/T5VqI9/X5jYgwK21smWOJvBqJ5xXDnKPyhuh/7h3cCW5oPXyQuLOZbiSBJvs
         8svjTuJgYAfamwl8p2lQx9lZIkoZNmQ9o/BzWIY4OL7DsNaDR1k4HEhAjZfywbG3mJS8
         AnJw==
X-Gm-Message-State: AOJu0Yxyp8wQVLND3THxtE3rOQ1e/em3GEyyC1jgVx/77joMKDxU9ow/
	KKDsWmPKf1/54g4XffMQGpfRxvuNoIlrL292De9jOZpTp9DoT3zdXUhlFtmZww==
X-Gm-Gg: Acq92OER2kEb1hj22r21preg9duwv4QJo3pDfdKvsuzEh+sNOdKkYd8FvgOlriwgqzs
	rYjGxkw3d2qXABslvhvNoWpppihOStNDnJoc1wJ8VZWqSeKVQZOfkH/XGJP3nFS7ugyWm2um0Oc
	w+hUjbjaNCKsnWH7wdSTNDusCgjVxbyjO3ehc486W8CCfiw7a2+jSUsatIg8kvPgeOczoKqawtz
	W0a/EjwQssfATbGABx29MBCQ7uCEOacmyBqWhvBliy9w/lzIDdPt0nBZw/AEWT3vca7SkKo2Fim
	aGTOOhJdr64cPdjxjfDaiuQ3db8zbB5NDTYwoULyHrgZt1qucVmCVPYVWHAsBp5gHmRFGo9oPcz
	vMmq37E5MejC879spCgVxaYng4WBjyVQKeYld2ongA7JP+GE6zY8gw0H2cx4B0G6bPra+Hw2LIY
	4uCssae+9HxVPVueQQHusJf3+f4B7mdZHD7by4
X-Received: by 2002:a17:907:3e99:b0:be2:cd33:213f with SMTP id a640c23a62f3a-be2cd332452mr350832266b.17.1779844874751;
        Tue, 26 May 2026 18:21:14 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.22 v2 2/2] docs/arm: Document GICv3 vCPU limit for host-layout domains
Date: Wed, 27 May 2026 04:18:51 +0300
Message-ID: <0799399a712539130dbfced315d5abb8e20137ad.1779840898.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779840898.git.mykola_kvach@epam.com>
References: <cover.1779840898.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1779844875-E0159CF5-CFD08657/0/0
X-purgate-type: clean
X-purgate-size: 2620

From: Mykola Kvach <mykola_kvach@epam.com>

The number of vCPUs requested for a boot-time Arm domain is not bounded
solely by Xen's generic domain limits. For GICv3 domains using the host
memory layout, Xen can only create vCPUs whose virtual redistributor
frame is covered by redistributor MMIO regions exposed for that layout.

This can affect the hardware domain and direct-mapped domains. Document
the GICv3-specific limit in the `cpus` property description in the Arm
device-tree booting guide. Also add a generic domain-limit caveat to the
`dom0_max_vcpus` command-line documentation.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v2:
- move the detailed GICv3 host-layout redistributor note from
  dom0_max_vcpus to the Arm device-tree booting documentation.
- keep only a generic domain-limit note under dom0_max_vcpus.
---
 docs/misc/arm/device-tree/booting.txt | 9 +++++++++
 docs/misc/xen-command-line.pandoc     | 3 +++
 2 files changed, 12 insertions(+)

diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
index f73839df09..bcb06bc796 100644
--- a/docs/misc/arm/device-tree/booting.txt
+++ b/docs/misc/arm/device-tree/booting.txt
@@ -162,6 +162,15 @@ with the following properties:
 
     An integer specifying the number of vcpus to allocate to the guest.
 
+    The resulting number of vcpus is still subject to Xen's generic and
+    architecture-specific domain limits. On Arm GICv3 systems, each vcpu
+    needs a virtual redistributor frame. Domains using the host GIC layout,
+    such as the hardware domain or direct-mapped domains, can only use vcpus
+    whose virtual redistributor frame is covered by the redistributor MMIO
+    regions exposed for that layout. If the requested number of vcpus exceeds
+    that limit, Xen will create fewer vcpus than requested, stopping at the
+    first vcpu whose virtual redistributor frame is not covered.
+
 - llc-colors
     A string specifying the LLC color configuration for the guest.
     Refer to docs/misc/cache_coloring.rst for syntax. This option is applicable
diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index d46d5b2152..8c89b7852c 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1000,6 +1000,9 @@ For example, with `dom0_max_vcpus=4-8`:
 >      8    |  8
 >     10    |  8
 
+The resulting number of Dom0 VCPUs is still subject to Xen's generic
+and architecture-specific domain limits.
+
 ### dom0_mem (ARM)
 > `= <size>`
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed May 27 01:21:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 01:21:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320276.1587629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wS2xQ-0001gg-EQ; Wed, 27 May 2026 01:21:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320276.1587629; Wed, 27 May 2026 01:21:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wS2xQ-0001gZ-Aq; Wed, 27 May 2026 01:21:16 +0000
Received: by outflank-mailman (input) for mailman id 1320276;
 Wed, 27 May 2026 01:21:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wS2xO-0001gG-Db
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 01:21:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wS2xN-00B6JG-Bv
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 03:21:13 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a1646ea-e002-0a2a0a5209dd-0a2a45078a68-22
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 03:21:13 +0200
Received: from [209.85.218.45] (helo=mail-ej1-f45.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a164709-229c-0a2a45070019-d155da2de053-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 03:21:13 +0200
Received: by mail-ej1-f45.google.com with SMTP id
 a640c23a62f3a-bd01481e592so1555400566b.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 May 2026 18:21:13 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.25.69]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc5ece286sm550541266b.40.2026.05.26.18.21.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2026 18:21:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779844873; x=1780449673; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=rZBAxVK5rUdy7lBSH0quiPGXRXut68rQ9vHGC1gb/6Y=;
        b=OQY0j1WXAaxilTEglP2AC8y1IMCMVA1GgsFnlC5bdGwNqD8zZw0m0jJBQfts0jFee2
         /SP3lf41FK0tvLuZDVx81TDcL+vly3iWagz9zuVnRvhSb6YsbEp7TJph4stPfvt953IC
         HljfZdd0gUqTVchK335BUBolFQUrAdOQuSQ1U6SEc07VwHQtiQvulDIRjhzTQWpJT4Cd
         UlMMr1ip/PIRykJGfVWv21DPX4UhUorZr8+ji+pfCSegLmIK2IN0OweIaMVz5I38dSfg
         b5BEWMCzh2KMgVOCnxZFmrju6Lz+cj+XZPf0u6m766rKhh20nRSJpbl9sbOUEDkFsSHZ
         +QEQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779844873; x=1780449673;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rZBAxVK5rUdy7lBSH0quiPGXRXut68rQ9vHGC1gb/6Y=;
        b=BBg45ofLUWENMhqi7w3xm0Mh0NC/uGIQKFEYczBGq5q6ObdonGql9u90uWpqIWHcF7
         Sarvgn+DV64goy+6cK/vG2h6nEsKpt4fvvMTD1SZIPuUEYQEXSx1C5WmhQ1rFSBYFiqg
         IqUi2m/am9FaOzD82Z/735s4oeL+jO9lHvxY+rhL6EULdclG/5XrOlnaWIOn5jCgCtB0
         a4A+3/fYnFB0SF9vZE2kxxEDoVJs/qOcNiPhbF2DGOoELAuFD8W1zHAj1GVagDSRqhvM
         NLq8tAnucWCBGRHlpHSf1FuoJ43mNv6BH1UDPjA2SSNpr1PCAm839Rd969b0B1faTBnj
         qTGw==
X-Gm-Message-State: AOJu0YzHN6HIfpJMjuHCBjPGYHnrqkxDVIUJbhhU9RLZzptUpcd2g7El
	Hb7kS8SR4+rVq3hiVXpgkPfU4vCV0t1FtQdcnZ4ehx5goIFZcJJeBVnSvvz8Kg==
X-Gm-Gg: Acq92OFaY8OGqVJrxgjdLrdszEtJ7UScsu3NYqaTQO0yf2XCWK9ZGUz1DoW3VpPcJZh
	Ov/2c+JmjEQSfCWhsn9e3Fjjur34J4tR+alzVvNmxwGV9+au+Z1iDIe/ygQPUliK7V4qbIfrO+h
	K2wcxvAwKyubwZ7Yx9v0F6CCzeJDEssxkRDDNXh1SzoY74arK3mmh2u+QMuM9upgiWjfAK1Dms8
	nTNzZR5tM+rXGa47LoHTn6o+BybS41BOkUGTRmw5YRP5nhGASRKXonHTcmBJPV9OlkIbBT3UNNf
	kRxcm7FmNoPuRONg5Z9iqEklSb+F/IhgjPNh9wuamwEvbgBBqpDMGbjTaczHBT4JEapQOmPOK8W
	0BAmTuY+a3LuCjYJgAxTayWVJDZBoi9RC9FLADdT/dT2nfr7kqBOi01HQy8pLdAaDnqeq4wrFK3
	PALOi4JhfVM2BAgHWst8wGRdTt6FkWgCFQmU0wda0D+PdGJOg=
X-Received: by 2002:a17:907:3e03:b0:bd8:6ac6:d722 with SMTP id a640c23a62f3a-bdd25cecef9mr1216612266b.24.1779844872631;
        Tue, 26 May 2026 18:21:12 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.22 v2 0/2] xen/arm: handle vGIC vCPU init failures
Date: Wed, 27 May 2026 04:18:49 +0300
Message-ID: <cover.1779840898.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1779844873-0A971C48-801E5C30/0/0
X-purgate-type: clean
X-purgate-size: 2343

From: Mykola Kvach <mykola_kvach@epam.com>

This series fixes two related GICv3 host-layout issues exposed when a
boot-time domain requests more vCPUs than the guest-visible
redistributor MMIO regions can cover.

For domains using the host memory layout, Xen exposes GICv3
redistributor MMIO regions based on the host layout. Each vCPU needs a
virtual redistributor frame covered by one of those regions. On FVP with
a 2 MiB redistributor region, only 16 128 KiB guest redistributor frames
are covered; a request for 64 vCPUs leaves vCPU16 and above without a
corresponding redistributor frame.

The vGICv3 per-vCPU init path detects this and rejects the first
uncovered vCPU, but the generic vGIC init path ignored that error. As a
result, vcpu_create() could succeed with invalid per-vCPU vGIC state, and
the guest could observe more possible CPUs than Xen can back with
emulated redistributors.

There was also an off-by-one in the host-layout redistributor region
count when all hardware regions had been consumed. That could make Xen
describe a guest-visible GICR MMIO region beyond the populated
redistributor region list. A guest access to that exposed window would
then fail to match any emulated redistributor frame.

Patch 1 fixes the vCPU creation path by propagating per-vCPU vGIC init
failures, and also fixes the related host-layout redistributor region
count so Xen does not expose an unbacked GICR window.

Patch 2 documents the resulting Arm GICv3 host-layout constraint for
boot-time domains and keeps dom0_max_vcpus documentation generic.

Changes in v2:
- use min(i + 1U, vgic_v3_hw.nr_rdist_regions) for the host-layout
  redistributor region count.
- keep the trailing blank line at the end of xen/arch/arm/vgic.c.
- move the detailed GICv3 host-layout documentation from dom0_max_vcpus
  to the Arm device-tree booting documentation.
- add Michal's Reviewed-by tag to patch 1.

Mykola Kvach (2):
  xen/arm: propagate vGIC vCPU init failures
  docs/arm: Document GICv3 vCPU limit for host-layout domains

 docs/misc/arm/device-tree/booting.txt | 9 +++++++++
 docs/misc/xen-command-line.pandoc     | 3 +++
 xen/arch/arm/vgic-v3.c                | 2 +-
 xen/arch/arm/vgic.c                   | 9 +++++++--
 4 files changed, 20 insertions(+), 3 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed May 27 05:29:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 05:29:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320340.1587661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wS6pW-0007Ba-NW; Wed, 27 May 2026 05:29:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320340.1587661; Wed, 27 May 2026 05:29:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wS6pW-0007BS-Hp; Wed, 27 May 2026 05:29:22 +0000
Received: by outflank-mailman (input) for mailman id 1320340;
 Wed, 27 May 2026 05:29:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <tiwai@suse.de>) id 1wS6pV-0007BM-7A
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 05:29:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wS6pU-00D7PG-3P
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 07:29:20 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <tiwai@suse.de>)
 id 6a16811f-bab6-0a2a0a5309dd-0a2a4508e7b8-26
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 07:29:20 +0200
Received: from [195.135.223.130] (helo=smtp-out1.suse.de)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <tiwai@suse.de>)
 id 6a16812f-63b5-0a2a45080019-c387df82b786-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 07:29:19 +0200
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 513BB6B16B;
 Wed, 27 May 2026 05:29:19 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 18F825A669;
 Wed, 27 May 2026 05:29:19 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id bW+UBC+BFmqDJAAAD6G6ig
 (envelope-from <tiwai@suse.de>); Wed, 27 May 2026 05:29:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede2_rsa header.d=suse.de header.i="@suse.de" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:In-Reply-To:References"; dkim=permerror header.s=susede2_ed25519 header.d=suse.de header.i="@suse.de"; dkim=pass header.s=susede2_rsa header.d=suse.de header.i="@suse.de" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:In-Reply-To:References"; dkim=permerror header.s=susede2_ed25519 header.d=suse.de header.i="@suse.de"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1779859759; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=svuX77SW8vnbvuY432YXCcgyEAAoT9OnatmzUJsU5Pk=;
	b=hWxMEwfmpqMqKDMjXAi52ezDrZCFmGq8YvEz6dwU7w3z6No1nM0gIJpp8cNEwRmlPlz83r
	y3SwZqzfiu74rXVgK4K7ae0pVwtLeXBwr/1bzfQ6qs1HPRMrKcqUbAO+roq8rIC/k6lIVO
	nHfFonC9cV9Z5kM2yDmYlk70Iz1noJ4=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1779859759;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=svuX77SW8vnbvuY432YXCcgyEAAoT9OnatmzUJsU5Pk=;
	b=/c9o9AeZx/AgzOkNrdfyls5JuD0cV+Xo7TSwUxhCRyyZrMIKWJwdWkWqNfFDbC9nnWed+Y
	Zk+hBmRZXb1sZ+Dg==
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=hWxMEwfm;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b="/c9o9AeZ"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1779859759; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=svuX77SW8vnbvuY432YXCcgyEAAoT9OnatmzUJsU5Pk=;
	b=hWxMEwfmpqMqKDMjXAi52ezDrZCFmGq8YvEz6dwU7w3z6No1nM0gIJpp8cNEwRmlPlz83r
	y3SwZqzfiu74rXVgK4K7ae0pVwtLeXBwr/1bzfQ6qs1HPRMrKcqUbAO+roq8rIC/k6lIVO
	nHfFonC9cV9Z5kM2yDmYlk70Iz1noJ4=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1779859759;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=svuX77SW8vnbvuY432YXCcgyEAAoT9OnatmzUJsU5Pk=;
	b=/c9o9AeZx/AgzOkNrdfyls5JuD0cV+Xo7TSwUxhCRyyZrMIKWJwdWkWqNfFDbC9nnWed+Y
	Zk+hBmRZXb1sZ+Dg==
Date: Wed, 27 May 2026 07:29:18 +0200
Message-ID: <87y0h5whch.wl-tiwai@suse.de>
From: Takashi Iwai <tiwai@suse.de>
To: =?ISO-8859-1?Q?C=E1ssio?= Gabriel <cassiogabrielcontato@gmail.com>
Cc: Takashi Iwai <tiwai@suse.com>,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	Jaroslav Kysela <perex@perex.cz>,
	xen-devel@lists.xenproject.org,
	linux-sound@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/2] ALSA: xen-front: Fix event channel stream lifetime bugs
In-Reply-To: <20260526-alsa-xen-event-channel-fixes-v1-0-91d3a6a50778@gmail.com>
References: <20260526-alsa-xen-event-channel-fixes-v1-0-91d3a6a50778@gmail.com>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/30.2 Mule/6.0
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Rspamd-Queue-Id: 513BB6B16B
X-Spam-Flag: NO
X-Spam-Score: -3.51
X-Spam-Level: 
X-Spamd-Result: default: False [-3.51 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	FREEMAIL_TO(0.00)[gmail.com];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	RCPT_COUNT_SEVEN(0.00)[7];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received,2a07:de40:b281:104:10:150:64:97:from];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:dkim,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.de:+]
X-purgate-ID: tlsNG-c1860d/1779859759-B596DDB1-135ADA63/0/0
X-purgate-type: clean
X-purgate-size: 959

On Tue, 26 May 2026 14:48:25 +0200,
Cssio Gabriel wrote:
> 
> Fix two related event-channel issues in the Xen ALSA frontend.
> 
> The first patch resets the event channel's expected incoming event
> id when a stream is cleared, and drops stale queued events from
> the previous stream instance.
> 
> The second patch keeps the request channel connected from .open(),
> where it is needed for hw-rule queries and stream open requests,
> but delays the event channel until after a successful .prepare().
> This prevents current-position events from reaching the ALSA position
> handler before runtime buffer and period geometry are valid.
> 
> Signed-off-by: Cssio Gabriel <cassiogabrielcontato@gmail.com>
> ---
> Cssio Gabriel (2):
>       ALSA: xen-front: Reset event channel state on stream clear
>       ALSA: xen-front: Connect event channel after stream prepare

Applied both patches now to for-next branch.  Thanks.


Takashi


From xen-devel-bounces@lists.xenproject.org Wed May 27 06:57:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 06:57:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320356.1587668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wS8CL-0001YT-RZ; Wed, 27 May 2026 06:57:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320356.1587668; Wed, 27 May 2026 06:57:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wS8CL-0001YM-OS; Wed, 27 May 2026 06:57:01 +0000
Received: by outflank-mailman (input) for mailman id 1320356;
 Wed, 27 May 2026 06:57:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1wS8CK-0001YG-T9
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 06:57:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wS8CK-001AO6-4y
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 08:57:00 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a1695ba-bab6-0a2a0a5309dd-0a2a450b80c4-6
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 08:56:59 +0200
Received: from [52.101.48.25]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 6a1695b9-212f-0a2a450b0019-34653019d08b-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 08:56:59 +0200
Received: from MW4P223CA0020.NAMP223.PROD.OUTLOOK.COM (2603:10b6:303:80::25)
 by SA3PR12MB9200.namprd12.prod.outlook.com (2603:10b6:806:39c::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Wed, 27 May
 2026 06:56:52 +0000
Received: from SJ1PEPF00001CE3.namprd05.prod.outlook.com
 (2603:10b6:303:80:cafe::30) by MW4P223CA0020.outlook.office365.com
 (2603:10b6:303:80::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.12 via Frontend Transport; Wed, 27
 May 2026 06:56:51 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ1PEPF00001CE3.mail.protection.outlook.com (10.167.242.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.7 via Frontend Transport; Wed, 27 May 2026 06:56:51 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 27 May
 2026 01:56:50 -0500
Received: from [10.252.145.116] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 27 May 2026 01:56:47 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=m242J/hDiQ4T08EyhZ6CtR46sOiRsniOqwT/MbRp3z8zVn+J28muQ36d3lRktD0z4csHoIyLAgyb7mWw+uGpMgslBI6qy+qQ5/wc8eLPyHCiPA6GJWGZ1+ccuCprgfVSuYsq4KsCrgn0O0z9RVBy42/Ah47L0CH4UVwlJgqfcm2prbd6XGgSNS57j+EtClxfl2zcRyxmQPtp3b5Jz2SYu1UAqc7C0rrIb2dSsPeZ0434Pd9QArxxBsSVk7qzzNvawbWiCDS6b2pz6hx9PZ2hIgQoMJV/JFx3fUyCFp0aEMiJTzJD5hj8ddZMP023UsrTuD/o5t7l5aOvO+ZnaLUmyQ==
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=h+Hm0WuG4SBwX4sQapygElVvNNT9HpnJRdBg2OLnvV8=;
 b=N0pFjnQWQ6ohClIdsbJPb7MeOXWMvGTPd+hI7h5OQKgmJG1FMGopt7OwSgNpQLGz9dhDOKWOvMI7W/m7cqFdjvhvhrMN06WwfNNicKXHypYe9msEHbw04corevysMNEmXTtjJNwnQeyJJlRCkEAoQ6Z4IpC7tjX/V5bHeqkoCGZnL/XfjXmRDR+Fg9z5OcVRsIwOByoHIaZXXutznrh/906RE4btxW+w9yFz+s5fo6GF8BKgx6R1gnG9F76LJSCwDcapKKaBXtPyTZEkYwVyPmEh/sLtmtB3tRLn85Y3AWGs/4cCs8bdW6wpPtgaiOzIMQIJmE2L6dPdiTaqaEW+lQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=h+Hm0WuG4SBwX4sQapygElVvNNT9HpnJRdBg2OLnvV8=;
 b=O5SYaYJBY5xnCdI002F2q++D6F8mFwF3PNSR3nihYIVy0vV37NzsE16yUFyFmVVsncYcPfutPRz7/xoVGtTlbg7wHXPZ9u2yUpBxhzLOKuq6Ra9aspSfvXal/t/3DL3npyF3C7LwWSUqmXeh8o2NNutFAcy7LHFhAVvZDQtI8eA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <e9b6b372-0d97-42c0-9ccd-246f626cf19a@amd.com>
Date: Wed, 27 May 2026 08:56:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 v2 2/2] docs/arm: Document GICv3 vCPU limit for
 host-layout domains
To: Mykola Kvach <xakep.amatop@gmail.com>, <xen-devel@lists.xenproject.org>
CC: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>
References: <cover.1779840898.git.mykola_kvach@epam.com>
 <0799399a712539130dbfced315d5abb8e20137ad.1779840898.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0799399a712539130dbfced315d5abb8e20137ad.1779840898.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE3:EE_|SA3PR12MB9200:EE_
X-MS-Office365-Filtering-Correlation-Id: cffb2ffc-a3e5-4302-ad81-08debbbd2182
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|7416014|36860700016|376014|1800799024|56012099006|4143699003|6133799003|11063799006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	bLXZN6OOko+pnL3N4Y+w9rczW3pW/8LMOPNTY7MnWHsQOODYeutm6KCpgy77UlBJHKIoYyeke6cRf0hFZS3J+jDC+Iaeg06dszSM7aDqwdCHvtBRsP/ajkf415N9yUafZPe7Ys+bc7teZloDTb1ASWeMGVBEHcQuGZ2kJX5tay3WSNOeJPwgHRU5L4v15C5joiHwJMsj+odCYzTU6VxzYNuVWbPfyvQc+Naln629oQqUCSpz6caf/d39/VcbZt3RAmMq8aTCV++O7URAR87tqCvfi13C+OTjojZUQL+8fFzJngOUdPYYOna6hvM9eGLySGNb+S2DKYma1rFCCoiNayIyEQ9XdDGq8943aIDSYkS6Vv6nlf0fsAQBSkdQwmlMCPUf9VlOwYsDXsc3KW5Dwch0d+BvLI4AlB5xzhmgW704sWlzoJV9+6Aq2O5SElf3y5my89t4xNIX5rZpgZuR9ox8+WCpLzlDxXu78Q5WNy7YJyK/f/6XYNJBBfje9p/wyJraL99uKazGN0ZFX4WITMVWJsiEYyItdJFnYXY6/vi7TQhbcpAKIlMJyMqREB3z1PGxKMWjSoUb5WNMLtgXbM8l+yQI8os6dnZNIiXDoUphrgQ8TWONSaqFHV9BpY9HR9BYPuN6yaoYKDF6HdcrrvypojfdPbRZs7ZrNCs4W1OuPtMLCnteU6KFDVLaDRfki6omn9b6YGgXvPDSlYAZtN2P7PakQyyPFto/m/3Dqmo=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(36860700016)(376014)(1800799024)(56012099006)(4143699003)(6133799003)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	2BuoibAlQBy2zcaclYaON7tzJBhjgvFrlZhRUTKC2fqo4SuU3jTsxouvCThFm8w694XMvhFOGvxE9L16kSy9nA9WhXWlOPBYuzMa73rerB6gmZ2X8c0ae8YzSLiEA3BxOy/DJbWZzF6HSCFyysnXFOGLeOicJyxumQNMsKGU2OXF3pVruHtximC1dAI54B/CWtwqUwn9qtCldAYKQqgcrm+Z72Zwx4MLRc56qoj9mhERB5ANnN8YLelcx1W77/oIsJ9ojIQVRHNiNkDLwYdd/5IHQvzAsMEskzJS+GpFoN7ddFta3vEMoSSgQ4aHhDvh2iTJCBy8u/QkLxxzs1MmgTJ2aef82C6UQ4q6Vy8xU0CDfUth7qvPTvaLIXT93nFGRCMbHLXjihfIvbRxjpxJPhJ+DD1Pg+O1+dm3LA8fJbcOr2vqF9+FHccGKjSNYgoz
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 06:56:51.7518
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cffb2ffc-a3e5-4302-ad81-08debbbd2182
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CE3.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB9200
X-purgate-ID: tlsNG-42698a/1779865019-20479F3B-CBC19789/0/0
X-purgate-type: clean
X-purgate-size: 791



On 27-May-26 03:18, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> The number of vCPUs requested for a boot-time Arm domain is not bounded
> solely by Xen's generic domain limits. For GICv3 domains using the host
> memory layout, Xen can only create vCPUs whose virtual redistributor
> frame is covered by redistributor MMIO regions exposed for that layout.
> 
> This can affect the hardware domain and direct-mapped domains. Document
> the GICv3-specific limit in the `cpus` property description in the Arm
> device-tree booting guide. Also add a generic domain-limit caveat to the
> `dom0_max_vcpus` command-line documentation.
> 
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Wed May 27 09:08:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 09:08:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320390.1587698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSAFO-0001kf-I0; Wed, 27 May 2026 09:08:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320390.1587698; Wed, 27 May 2026 09:08:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSAFO-0001kX-DH; Wed, 27 May 2026 09:08:18 +0000
Received: by outflank-mailman (input) for mailman id 1320390;
 Wed, 27 May 2026 09:08:17 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wSAFM-0001kR-Uz
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 09:08:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSAFM-004IlN-5t
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 11:08:16 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a16b479-bab6-0a2a0a5309dd-0a2a4508c83a-44
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 11:08:15 +0200
Received: from [209.85.208.45] (helo=mail-ed1-f45.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a16b47f-63b5-0a2a45080019-d155d02dd5c1-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 11:08:15 +0200
Received: by mail-ed1-f45.google.com with SMTP id
 4fb4d7f45d1cf-67f94c078e8so2249774a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 02:08:15 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-68a6facda9esm538949a12.13.2026.05.27.02.08.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 May 2026 02:08:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1779872895; x=1780477695; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=eiLWx2gHl6Xze60efbxTAuOXAukJJWiOaNWz3rbIjlg=;
        b=gQ7S8DmklHT/XWBdqoBYTqAREmBqWyhcjJZSXOeES/UHRCwnkPM2HnaShH1vxenwUq
         LL9b+77589WNd3p41J+jUa8BoCWafPlCyNRG3zrtAxwkngufZ42dx1qNF16r+UjgErlP
         i3UAVaRDJWvbdWz4K39t5SUeXM1lJgl3Oft/8rbQF7z0WAjuFPw47Q1P2myGv75gmywC
         3pOChNDMipveFn1U/mY6PuAIZBi+moOUiXFDsVHMDcsIFxIlpGFcac5fe5+IX85Ubx9p
         3kt+wXVtqIAavFNhjuXITBa+7aDhZa0mi7IrkSV4KdByV5haTuJcqGc5i4JduzAeTQh6
         Y+Rg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779872895; x=1780477695;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=eiLWx2gHl6Xze60efbxTAuOXAukJJWiOaNWz3rbIjlg=;
        b=IXa64d9aSVNBlcNhGHjtgC3ruYqBEOgQoJ6hW2tJaBr8cVzkIJSOa/Ldg24WxUNh7S
         HU8DbPSCKD174DTrmXQqux0JZzazy5QcnrRh7fdDFilSEAqF3R9taVkPuGwwbc4MTvrO
         c1oeriTtHKALemaDr3ykcKf0JlmQwR84V/Vd0tZmhkvGdvG/19h8mBHHiaBXLxdXR/Ga
         oWaJB1ch5koefrLgwerGduv4/tjuoBE0hZxUT6DcjUZNwCaKK0jlUlC7SrFoQHmzgD3r
         kb/GEG4ikqs6vMsrPLehj1aszAjx3gEgUuTiVoitammrmEFQNsf2OGnAerFgL7MXQ6DA
         pAsg==
X-Forwarded-Encrypted: i=1; AFNElJ/UfVJ7eWLUNDUkkzj5Wy/avBp7YHAqEiS2kOQzQMP7h60IMbUzG950tFybbwHJo8uWO07BPpRnE6k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywpot23BOGtNQLjXbjZGQoPLxceUV0C9T7Gx0nUWg1JtW+YdKrx
	v7OJkrJk5Tyearg7JntyT64NKXRZPC5gVdBkrEJjHImTfoz2PbPWQGYsM7yuOmdMvXo=
X-Gm-Gg: Acq92OEQQtl58umoRfmCMrgvDyt4HFnlILUX7A/1VneiAbTQoKBhhVaZecvVhdH37zc
	bBc3/2aSF2iRWHNR1j2FDoT7CpnXpHH5AxLhBeHsAn+c5sroeCMn5+tuTDC4uTmeGE6uQAr2qFz
	mikQH8UHkNuDIWE9h8GgLz58Rvt/nynMPVnAkXCQnGuNnftvoczWCcagNh81JzPDg96EL0onPmH
	Hi8cihmJGO97vAwWo7b9ECJ8833OQEIBOV/9QHE3KhKKTs4D+1Zok6oIWNCvK0JsSaXvmIAFmoq
	HjgmU2epT9HVCtPa5L0EoSp3MgsyVNc+yNhbZIyI4hfcAV0MMo6PTuEBFB9dwCSazgsc2gaOzHC
	iLFH7vveThXrHoPyuVdlFMyCstRwvQnA5guycW+iZuaIa2ejuAEmwz2do/Qly6xX5zsR8Lou0uV
	7O8DbP7/MJBtSIGWSaqlVdvNpAPfqPDzLKAJPWjiMXlDvlgzHXkR6SKzyw9q5kIb/ThJjePF1sE
	ahF8qMjgnCeiwwMqGxVOyrrl1weu8DYWG1Y5UU9F3sHjyRbL/8srWXcKEfL6r2r
X-Received: by 2002:a05:6402:458f:b0:687:261a:3388 with SMTP id 4fb4d7f45d1cf-6889cc44682mr11338473a12.22.1779872895234;
        Wed, 27 May 2026 02:08:15 -0700 (PDT)
Message-ID: <3b09cd9b-f0f1-41d6-a118-d0ea855f27d6@suse.com>
Date: Wed, 27 May 2026 11:08:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched/rtds: refill cur_budget when extratime is toggled
 on a depleted vCPU
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Meng Xu <mengxu@cis.upenn.edu>
References: <9f20b6ac8176da6c67e1084e862158a2e47abc40.1779285422.git.oleksii_moisieiev@epam.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <9f20b6ac8176da6c67e1084e862158a2e47abc40.1779285422.git.oleksii_moisieiev@epam.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------dnsi4BmgqPYERP4yF3ZJ8j0k"
X-purgate-ID: tlsNG-c1860d/1779872895-B5F6ADB1-75023BCC/0/0
X-purgate-type: clean
X-purgate-size: 10926

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------dnsi4BmgqPYERP4yF3ZJ8j0k
Content-Type: multipart/mixed; boundary="------------b8sHksz8xCEgyBIQ8qzuT00d";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Meng Xu <mengxu@cis.upenn.edu>
Message-ID: <3b09cd9b-f0f1-41d6-a118-d0ea855f27d6@suse.com>
Subject: Re: [PATCH] sched/rtds: refill cur_budget when extratime is toggled
 on a depleted vCPU
References: <9f20b6ac8176da6c67e1084e862158a2e47abc40.1779285422.git.oleksii_moisieiev@epam.com>
In-Reply-To: <9f20b6ac8176da6c67e1084e862158a2e47abc40.1779285422.git.oleksii_moisieiev@epam.com>

--------------b8sHksz8xCEgyBIQ8qzuT00d
Content-Type: multipart/mixed; boundary="------------dKwRuHrou25Ny7aGih6vrxQs"

--------------dKwRuHrou25Ny7aGih6vrxQs
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMjAuMDUuMjYgMTU6NTcsIE9sZWtzaWkgTW9pc2llaWV2IHdyb3RlOg0KPiBYRU5fRE9N
Q1RMX1NDSEVET1BfcHV0dmNwdWluZm8gY2FuIGZsaXAgdGhlIFJURFNfZXh0cmF0aW1lIGJp
dCBvbiBhIHZDUFUNCj4gdGhhdCBpcyBjdXJyZW50bHkgZGVwbGV0ZWQgKGN1cl9idWRnZXQg
PT0gMCwgcG9zc2libHkgc2l0dGluZyBvbiB0aGUNCj4gZGVwbGV0ZWQgcXVldWUpLiBydF9k
b21fY250bCgpIHRvdWNoZXMgb25seSBzdmMtPmZsYWdzOyBjdXJfYnVkZ2V0IGlzDQo+IGxl
ZnQgdW5jaGFuZ2VkLiBBcyBhIHJlc3VsdCB0aGUgbmV4dCBjb2RlIHBhdGggdGhhdCBjYWxs
cyBydW5xX2luc2VydCgpDQo+IG9uIHRoaXMgdkNQVSAtIHJ0X3VuaXRfd2FrZSgpIGFmdGVy
IGEgZG9tYWluX3VucGF1c2UoKSwNCj4gcnRfY29udGV4dF9zYXZlZCgpIGZvbGxvd2luZyBh
IGRlbGF5ZWQgcnVucSBhZGQsIG9yIHJlcGxfdGltZXJfaGFuZGxlcigpDQo+IGFmdGVyIGEg
cmVwbGVuaXNobWVudCAtIHBsYWNlcyB0aGUgdkNQVSBvbiB0aGUgcnVuIHF1ZXVlLCBiZWNh
dXNlDQo+IGhhc19leHRyYXRpbWUoc3ZjKSBpcyBub3cgdHJ1ZSBhbmQgcnVucV9pbnNlcnQo
KSBhZG1pdHMgZXh0cmF0aW1lIHVuaXRzDQo+IHJlZ2FyZGxlc3Mgb2YgY3VyX2J1ZGdldDoN
Cj4gDQo+ICAgICAgLyogYWRkIHN2YyB0byBydW5xIGlmIHN2YyBzdGlsbCBoYXMgYnVkZ2V0
IG9yIGl0cyBleHRyYXRpbWUgaXMgc2V0ICovDQo+ICAgICAgaWYgKCBzdmMtPmN1cl9idWRn
ZXQgPiAwIHx8DQo+ICAgICAgICAgICBoYXNfZXh0cmF0aW1lKHN2YykgKQ0KPiAgICAgICAg
ICBkZWFkbGluZV9ydW5xX2luc2VydChzdmMsICZzdmMtPnFfZWxlbSwgcnVucSk7DQo+ICAg
ICAgZWxzZQ0KPiAgICAgICAgICBsaXN0X2FkZCgmc3ZjLT5xX2VsZW0sICZwcnYtPmRlcGxl
dGVkcSk7DQo+IA0KPiBUaGUgdmVyeSBuZXh0IHJ0X3NjaGVkdWxlKCkgaXRlcmF0ZXMgdGhl
IHJ1biBxdWV1ZSBmcm9tIHJ1bnFfcGljaygpDQo+IGFuZCB0cmlwcyB0aGUgQVNTRVJUKGl0
ZXJfc3ZjLT5jdXJfYnVkZ2V0ID4gMCkgYXQgdGhlIGJvdHRvbSBvZiB0aGUNCj4gbG9vcCwg
cGFuaWNraW5nIHRoZSBob3N0LiBPYnNlcnZlZCB0cmFjZToNCj4gDQo+ICAgICAgQXNzZXJ0
aW9uICdpdGVyX3N2Yy0+Y3VyX2J1ZGdldCA+IDAnIGZhaWxlZCBhdCBjb21tb24vc2NoZWQv
cnQuYzoxMDM1DQo+ICAgICAgLS0tLVsgWGVuLTQuMjItdW5zdGFibGUgIGFybTY0ICBkZWJ1
Zz15IHVic2FuPXkgIE5vdCB0YWludGVkIF0tLS0tDQo+ICAgICAgWzwuLi4+XSBydC5jI3J0
X3NjaGVkdWxlKzB4MTU1OC8weDMzZTAgKFBDKQ0KPiAgICAgIFs8Li4uPl0gY29yZS5jI2Rv
X3NjaGVkdWxlKzB4MmU0LzB4MTViNA0KPiAgICAgIFs8Li4uPl0gY29yZS5jI3NjaGVkdWxl
KzB4YjE0LzB4ZTUwDQo+ICAgICAgWzwuLi4+XSBzb2Z0aXJxLmMjX19kb19zb2Z0aXJxKzB4
MjBjLzB4M2Q0DQo+ICAgICAgWzwuLi4+XSBkb19zb2Z0aXJxKzB4MTQvMHgxYw0KPiAgICAg
IFs8Li4uPl0gZG9tYWluLmMjaWRsZV9sb29wKzB4MTk0LzB4NTU4DQo+IA0KPiBNaW5pbWFs
IHJlcHJvZHVjZXI6IHBpbiBhIHNpbmdsZS12Q1BVIGRvbVUgdG8gYSBwQ1BVLCBwcm9ncmFt
IFJURFMgd2l0aA0KPiBleHRyYXRpbWUgb2ZmIGFuZCBhIGxvdyB1dGlsaXNhdGlvbiAoZS5n
LiBidWRnZXQgPSAxMG1zIC8gcGVyaW9kID0gMTAwbXMpDQo+IHNvIHRoZSB2Q1BVIHNwZW5k
cyBtb3N0IG9mIGl0cyB0aW1lIGluIHRoZSBkZXBsZXRlZCBxdWV1ZSwgcGF1c2UgdGhlDQo+
IGRvbWFpbiwgaXNzdWUgYSBwdXR2Y3B1aW5mbyB0aGF0IHNldHMgWEVOX0RPTUNUTF9TQ0hF
RFJUX2V4dHJhLCB0aGVuDQo+IHVucGF1c2UuIEFzIHNvb24gYXMgdGhlIHNjaGVkdWxlIHNv
ZnRpcnEgZmlyZXMgb24gdGhlIHBDUFUsIHRoZSBCVUcNCj4gaGl0cy4gVGhlIHNhbWUgc2Vx
dWVuY2UgaXMgcmVhY2hhYmxlIHdpdGhvdXQgYW4gZXhwbGljaXQgcGF1c2U6IGFueQ0KPiB3
aW5kb3cgaW4gd2hpY2ggcnRfZG9tX2NudGwoKSBydW5zIGJldHdlZW4gYnVybl9idWRnZXQo
KSdzIGJ1ZGdldA0KPiBleGhhdXN0aW9uIGFuZCBydF9jb250ZXh0X3NhdmVkKCkncyBydW5x
X2luc2VydCgpIGFsc28gY2xvc2VzIG9udG8gdGhlDQo+IHNhbWUgYnJva2VuIHN0YXRlLCBi
ZWNhdXNlIHRoZSBwZXItc2NoZWR1bGVyIGxvY2sgaXMgZHJvcHBlZCBiZXR3ZWVuDQo+IHRo
b3NlIHR3byBwb2ludHMuDQo+IA0KPiBUaGUgc2VtYW50aWNzIGZvciAiZXh0cmF0aW1lIGdl
dHMgZXhoYXVzdGVkIGJ1ZGdldCByZWZpbGxlZCIgYWxyZWFkeQ0KPiBsaXZlIGluIGJ1cm5f
YnVkZ2V0KCk6DQo+IA0KPiAgICAgIGlmICggaGFzX2V4dHJhdGltZShzdmMpICkNCj4gICAg
ICB7DQo+ICAgICAgICAgIHN2Yy0+cHJpb3JpdHlfbGV2ZWwrKzsNCj4gICAgICAgICAgc3Zj
LT5jdXJfYnVkZ2V0ID0gc3ZjLT5idWRnZXQ7DQo+ICAgICAgfQ0KPiANCj4gQXBwbHkgdGhl
IHNhbWUgcHJpb3JpdHktZGVtb3Rpb24tYW5kLXJlZmlsbCBpbiBydF9kb21fY250bCgpIHdo
ZW4gdGhlDQo+IGZsYWcgdHJhbnNpdGlvbnMgZnJvbSBvZmYgdG8gb24gd2hpbGUgdGhlIHZD
UFUgaXMgZGVwbGV0ZWQsIGNsZWFyDQo+IFJURFNfZGVwbGV0ZWQgdG8gbWF0Y2gsIGFuZCAt
IGlmIHRoZSB2Q1BVIGlzIGN1cnJlbnRseSBvbiB0aGUgZGVwbGV0ZWQNCj4gcXVldWUgLSBt
b3ZlIGl0IHRvIHRoZSBydW4gcXVldWUgdXNpbmcgdGhlIHNhbWUgcV9yZW1vdmUoKSArDQo+
IHJ1bnFfaW5zZXJ0KCkgcGF0dGVybiBhbHJlYWR5IHVzZWQgYnkgcmVwbF90aW1lcl9oYW5k
bGVyKCkuIFRoZSB2Q1BVDQo+IHJlbWFpbnMgb24gdGhlIHJlcGxlbmlzaG1lbnQgcXVldWUg
dGhyb3VnaG91dCwgc28gaXRzIG5vcm1hbA0KPiByZXBsZW5pc2htZW50IGNhZGVuY2UgaXMg
cHJlc2VydmVkLg0KPiANCj4gVGhlIGNvbXBsZW1lbnRhcnkgdHJhbnNpdGlvbiAob24gLT4g
b2ZmKSBpcyBhbHJlYWR5IHNhZmU6IGNsZWFyaW5nIHRoZQ0KPiBmbGFnIG9ubHkgbmFycm93
cyB0aGUgcnVucV9pbnNlcnQoKSBhZG1pc3Npb24gY29uZGl0aW9uLCBzbyBzdWJzZXF1ZW50
DQo+IGRlcGxldGVkIGluc2VydGlvbnMgY29ycmVjdGx5IHJvdXRlIHRvIHRoZSBkZXBsZXRl
ZCBxdWV1ZS4NCj4gDQo+IE5vIG90aGVyIGNhbGwgc2l0ZXMgbmVlZCBjaGFuZ2VzOiB3aXRo
IGN1cl9idWRnZXQgcmVzdG9yZWQgYmVmb3JlIHRoZQ0KPiBmbGFnIGlzIG9ic2VydmFibGUg
dG8gcnVucV9pbnNlcnQoKSwgcnVucV9waWNrKCkncyBsb25nLXN0YW5kaW5nDQo+IGludmFy
aWFudCAoZXZlcnkgcnVuLXF1ZXVlIGVudHJ5IGhhcyBjdXJfYnVkZ2V0ID4gMCkgaXMgcHJl
c2VydmVkLg0KPiANCg0KVGhpcyBpcyBtaXNzaW5nDQoNCkZpeGVzOiA0NjNiOTU4MzE3Nzgg
KCJ4ZW46cnRkczogdG93YXJkcyB3b3JrIGNvbnNlcnZpbmcgUlREUyIpDQoNCj4gU2lnbmVk
LW9mZi1ieTogT2xla3NpaSBNb2lzaWVpZXYgPG9sZWtzaWlfbW9pc2llaWV2QGVwYW0uY29t
Pg0KDQpXaXRoIHRoZSAiRml4ZXM6IiB0YWcgYWRkZWQ6DQoNClJldmlld2VkLWJ5OiBKdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCg0KSnVlcmdlbg0K
--------------dKwRuHrou25Ny7aGih6vrxQs
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------dKwRuHrou25Ny7aGih6vrxQs--

--------------b8sHksz8xCEgyBIQ8qzuT00d--

--------------dnsi4BmgqPYERP4yF3ZJ8j0k
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmoWtH4FAwAAAAAACgkQsN6d1ii/Ey8+
YQf/R4pi4y9sD4vplOhxbWEdw+X6IOeiFYeWpPMYB5ugUzqq+ZZqwKrSXF4jgPAcKtIqMVhCPNCt
KRi15WOfTT5sgsAbejbmuOtJz82FGXOkJrf1aTIUNnw3CauTDktDqpMZinnh+Fuq5y2TmYCdp2bS
o/peOULmbhySOPdVnU4vhdjcYC4VonEw0BKtteB3RtRDic8pxMQWvAmNktqOYZvd0fwS5/5tYGDo
3Ll0E2aoMlb02NikV3bRlW/A+d/PHpm7vvTCTAGC1TpJjIWKOgM7RpsGFLxOw+MjCA9w/Lj3SOf3
u8tLoNSU1heqUmA9od6KJUr7rt7XCExz8ggHraC7xQ==
=OHAH
-----END PGP SIGNATURE-----

--------------dnsi4BmgqPYERP4yF3ZJ8j0k--


From xen-devel-bounces@lists.xenproject.org Wed May 27 13:18:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 13:18:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320475.1587747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSE8m-0007jY-SN; Wed, 27 May 2026 13:17:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320475.1587747; Wed, 27 May 2026 13:17:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSE8m-0007jQ-Nb; Wed, 27 May 2026 13:17:44 +0000
Received: by outflank-mailman (input) for mailman id 1320475;
 Wed, 27 May 2026 13:17:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wSE8l-0007jK-Mv
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 13:17:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSE8k-00GNG3-SA
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 15:17:42 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a16eef0-bab6-0a2a0a5309dd-0a2a4507ab00-30
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 15:17:42 +0200
Received: from [40.107.208.6]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a16eef4-229c-0a2a45070019-286bd006eaa9-4
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 15:17:42 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BLAPR03MB5571.namprd03.prod.outlook.com (2603:10b6:208:298::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Wed, 27 May
 2026 13:17:37 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.21.0071.011; Wed, 27 May 2026
 13:17:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LS0kUNOv546GpwPgCLnVtXcER5fHzuWMkJhd+VYrnkBliJiLe1CJrxMwPNTQ/DYdu9QDmSYtRrhmszkZWeAV6ble6z3PfeYN5t5U8pz4qqD5UUaskGNaxQd2QkO063Zo/ee9sfgXiezIWwvv8X9LV89TBsHWh0Pdtap1+CFQDw9MpQhKWXa6dfTTz8C1HzoaSoSsO0/2towi2t75VI6YpZWfFuZQGp8q6YEDlPGkKWS5Nwg7ivc+bmtvm3W3lQ/6XrHosp3AoQsde6xvbGf1EtxNaGIxNhv9yNZyiz5P9GWVVcJPcEZA3/tQBmLquiBJB+BmRu9i61LHC2HN4lxyAA==
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=E+abF84evVeM7QZZTYHTMiVAhQCPRcqYEs8XOWad3h8=;
 b=LLFmgl4bHNwrcs/HXPxR3fc2RtZed66aOKKbtqqTOhZp69JMvsAlYb6n8djb4OQ4lVPMClWm5E3o0yK4U3cbgsHdayIBKkB+K9w/75hP+nHD9X7e+/j1Hpj9hovyHlOl4Kjh7/7LaiNuarc5YdtHrW6NpK7UnbQnmzSLDBLXtKbuJqfxnw2arV6ztatllpl943Y5Lim5I9O0HjjiLIHIy6LiDS3C4jkROu3pPyMCWUviFfBBg94reXGDfK7hpJ/A0D+HhoqDcdtvKz4NXKh//Qvieq7OHf3PWxNMnRjqjjovWcwyzt5x9ikKmqU6WRZjq3a6HWlmf6beuROzWabgvQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=E+abF84evVeM7QZZTYHTMiVAhQCPRcqYEs8XOWad3h8=;
 b=RS9e1Fezj8xqcZh4kiZhDWFdqWc8OwR1mN/blcKArRtymx4SN6iZSWM3rtXLS6Po/Onr2C7jQKIHJXLx+igiYFPxFaRSqzpt63ZuG78eoLmh3wxLONBJeg8HgpAE8YE9HYh5a/JGdj0/1kLGo2lkdGShlCGEKh7Qsi3YuWNle6E=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 27 May 2026 15:17:34 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] coverage: place GCOV-generated .text.* sections in Xen
 text
Message-ID: <ahbu7qiPxp7c4Yp5@macbook.local>
References: <cb8c1e0862a554f7a28347f549e9cfd0b0d6db2f.1779829545.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <cb8c1e0862a554f7a28347f549e9cfd0b0d6db2f.1779829545.git.dmytro_prokopchuk1@epam.com>
X-ClientProxiedBy: BN9PR03CA0751.namprd03.prod.outlook.com
 (2603:10b6:408:13a::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BLAPR03MB5571:EE_
X-MS-Office365-Filtering-Correlation-Id: 51eb1049-d9ea-4a22-3ef0-08debbf25222
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|366016|1800799024|18002099003|22082099003|3023799007|56012099006|6133799003|11063799006;
X-Microsoft-Antispam-Message-Info:
	KqGpXo5i92BqVJT5GaljC9gWPAiCx399RFBMPwQnACr8GoVs2jQRIAKmLVCkz54mK0+Om0Hwh5HTSTepvoPvgbSGSauIWYFhLzQzZFfNasWID7zeidSV5aTLCb+JM7cjA9F5egTFdG6vVUWJ86x+yhItJK14Nwpbe5TuF2WzhEHG3eOu78DpvL13RUOvgzkpWbJsJsuc3dHzhymvGXWQ9l0TGmqdY37n0i4GmOzvO10zaHrT7eaDpoomcm7L/K80zG5jTK8At5WRtq6QWddOCo3e56CNZ+tf8P0Vtz7i/Z2pkQUYPmMZ6opHoR4XPWvahvoJJpUBXbRS8TwRbWzpdYIiCR3TskH09UIXuD+5pXEwT1a7bIXrW9hjuQL4znNg4p1Zr9pfGApW+SgwmqeB0euzNMaJWKHKTUijSOk3r1pENA+mTYfsL2HumkK69Zvn6VwIhC1ky0WM2h/tOGzrBsm1rYbAaycipWTUuRka7l/uuCFSqM+fHnpXenKk8iFZKxKj8b/8fPpwBuWgGNE8QLiP+vWaaV2U0iKo+6zBI0/NtAJXqb5o3cSI1CEETuA3Nzf7h4HXX576l4JFNEoYGpnm5ASJUytwECLTgvD5RVPn886Q7rD8eQsXb755pOMVPa8THj0dCZv/drVwERlrN5pWtMxj5xJmb4o7nzbfTpzW2rg9KskDj8toSTPL99Pe
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(18002099003)(22082099003)(3023799007)(56012099006)(6133799003)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RTRDczFkRmxpTnYwYTB4MVRHanpCaS83QTBlQlNJMkRTTDVYb0M0RFJuc0Jy?=
 =?utf-8?B?Z0dDS3d4QW9oUkZ5a2FVOE03QWRoajBFN0pTUXFFNmpRSVorN2FlRGVOUWp6?=
 =?utf-8?B?c2ZKdHZtdW8yMG5KbXVSWTVuYm5TQXkvdUg1OWRSRWFIYmNYSjZqdlRMS0ts?=
 =?utf-8?B?aGRia2lGR3hoYnlRMkhCSW81TldYamF1UXd5Z0YrdVcrcUZWSGE4bmdQZjdN?=
 =?utf-8?B?MHVkTnJqMWVQWEZxVmp0cEpyaGNESXhnYXZrcnp2bG52a2lMWitUVjlDb0d1?=
 =?utf-8?B?dmNBckFxQU9VVWt3amIwNk1DMWd0VmkwWlV0N2tFU2hneUV1UCtHdUNHMWpB?=
 =?utf-8?B?U0hmeHc2S2RFYUs5YU1DVG1OSXFSaXltTEdnajlNQUo1dlBlN1VGeThsSDQz?=
 =?utf-8?B?RXRzV0R6UGU0U3BuZ0ptWFFDNzU2NnR0R0VjZlJvSXJPVkpGK0R2QTlUWHh4?=
 =?utf-8?B?TVZvNUZsbUJiRUJyM2VZMnBHTk5VaWZMS1FxL2FFUVJNRFFYeENIT2NoRmM0?=
 =?utf-8?B?ZTJzQzA2NExZZlJiaGpPSlJsUVM0TnUwSytVKzRldkJMcGIxVndsM0VYQ3Nh?=
 =?utf-8?B?OFkzZVl0WEFERktvZStLQzZhNVdPK0MwclJpeWJFUEhPdzJCVU1MbHdOMzF0?=
 =?utf-8?B?VHdxWjBUSmxPOElNWVF5UEJCbEtTRU1JOFJwMW56bnZrdW9OazAvR00ybENn?=
 =?utf-8?B?aGxjL3YzVWxlOGhpMnlhTDFQVEZWL2FUQVBjcHhqVzhPTGQwMyt6UGZGUWVj?=
 =?utf-8?B?a3lLREVMZmI3SkxpQW91QzQ3c0ZONGczTXlQS2s1VG5WYXJKUlN2Q0VzSmRR?=
 =?utf-8?B?allxa1NUQmE5UWNDUWtzM0hMUWVtOXUwZzM0V0oxOW5qdjY0empKYjRaVTEr?=
 =?utf-8?B?U0lZU3AxRDV3ckhsckNDYTJqSzFockNiT0g4SUlKUmdpQlBJTEIxYzQxdkpt?=
 =?utf-8?B?YndwSUtveEVmM1RDalFFRjdmRUpheHZzY3RhOXdpVndwd0l6UVlJbFJpNEdk?=
 =?utf-8?B?RnhoSlZmY2RUZlNjQi9ncTZ1Vk42aEw3MUF4QnlqQVIxMGozUzNGRTRDME9s?=
 =?utf-8?B?T1kxUjJQOEVwYXpmWGp5M1NST3RIY0R2bmZac0RKb0RDZ2xYZDVLQ3psNnFQ?=
 =?utf-8?B?ZVFpSnlLYmlzVzNyRk5LcS9qaE1jUWpxcU02WjhJYlY4KytkOWs2MURvdnVY?=
 =?utf-8?B?OTRlVkRSN3I3Z1RWRElFN3lPRHRLcVBlMk43U002dkJVOHBYbHZYWWFUNjBa?=
 =?utf-8?B?SHc3ZjcwUVpEb1pTU3VBNXdqcHRiMUZ4bTVqTWtVSHpjT1ptUTBoMjVhTnpK?=
 =?utf-8?B?VUZwcUVKWFFML0dRalFDVFBJNWNXK0Zsenc4czhPQkJQOXFPSW42UWJTMjdz?=
 =?utf-8?B?NkdXbVUwaVQ4Mlg2WjlhQ2xISlZTRUNoZ0dIMnk4bmdGUHl4ZjFTcWdZVHI1?=
 =?utf-8?B?TlNOY3NpWVo1QUIzMUJVS0x6di9lMngrVlgzL2V2M1EvL3dLZVE2eFdIWlBq?=
 =?utf-8?B?eGRGcENadVhyNVNDM3h6U3NEUFBwRyt3WUdGalBSVUpiczVIN3U2Q0V6THJN?=
 =?utf-8?B?VHN0ZmorbThGYzlVZnl2L1lnUHVEU0tWbFNRZE9HNDJHT21YbndoRm1DMVBm?=
 =?utf-8?B?dUJ3Q3FWRy9hT3F0VHVjWjhCWjVnSlBldCtRUHVHMjR1bnFoWWN2UFpDa0Fo?=
 =?utf-8?B?MjhDbmdQT2FNOExxWlRwV2FiV0liMStwMjhKODFjek82UWNZcnZHQjk2NFBL?=
 =?utf-8?B?M1g3V3ZlZjQ5ZjZwcWJOVTlQVHN5M0xjNTJCaElCUTNCVjJZWkZzbjdCNUZQ?=
 =?utf-8?B?TlpuNDZISy90Nm9odUk1N2RGd1gzeVVsUVZSVGNpRkc1YWNPcUJab2FyOUhC?=
 =?utf-8?B?MEo1ZHhFWHpIMFFRVWZHcStkMFU3dEIwNXV0bnA4ZUM4Q3NLTzZZR1Q1MXdl?=
 =?utf-8?B?bDVucTZkVzhJS2l5NithYnhPM0pyREdVMVIzc3MwdGIvenMvdmlIUGxDbEJH?=
 =?utf-8?B?cGczWS9vS1hmUVhOekEyek1USVNMUVErSm1OMFFBbnJZV3pleGlOQ1pHbG1K?=
 =?utf-8?B?ei94NHJPT2gvQW9kSE5uNWhOYzhuT1k2Qm0rajluSUVlYXcrcSswVDhESGRv?=
 =?utf-8?B?b1lCd0pyS0ZFQlBEM2tLeW0xMGFaM2ZSQVF2SDlxREtNSGlMU3VBOVlXMUk0?=
 =?utf-8?B?c3A3UkFXMjhHYnBRMFBRTUNTYkNJMmhsR0VpUzI5eUZ0NFBYOElHV29ZQWtv?=
 =?utf-8?B?TWtaSlVsS25HTWtrWWVHV3FuRmw5ZCtqUFJ3cTlQbVV2UW5PVmtFQ1pKb1Zw?=
 =?utf-8?B?eTRTd1ZZMFM1b2JNdld5aDBCSnFwcW5YQ2I3eEE0T3VodEQ1SG9NQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 51eb1049-d9ea-4a22-3ef0-08debbf25222
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 13:17:37.0181
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: yR7qQiLuxTV6BthAwnZyW0Iq/d+jE0zjfQ7Et2mGOnV4gU4w3g3U4hadz2uGkROJ8sQT8MaptboBB9AD2SOBtw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5571
X-purgate-ID: tlsNG-ef75cf/1779887862-2976AC48-91F5C3DF/0/0
X-purgate-type: clean
X-purgate-size: 3917

On Tue, May 26, 2026 at 09:07:42PM +0000, Dmytro Prokopchuk1 wrote:
> GCOV instrumentation can emit executable input sections such as
> .text.startup and .text.exit when CONFIG_COVERAGE is enabled.
> At present the Xen linker scripts only collect .text.* into the
> main text output section when CONFIG_CC_SPLIT_SECTIONS is enabled.
> 
> With CONFIG_COVERAGE=y and CONFIG_CC_SPLIT_SECTIONS=n, these executable
> sections may be placed as linker orphans outside the expected Xen text
> region. Constructors generated by coverage instrumentation can then point
> at code outside the normal RX text mapping, leading to early boot crashes
> from init_constructors():
> 
>     (XEN) [   12.331193] Instruction Abort Trap. Syndrome=0xf
>     (XEN) [   12.334253] Walking Hypervisor VA 0xa00003ce000 on CPU0 via TTBR 0x000000004352d000
>     (XEN) [   12.338550] 0TH[0x014] = 0x4352cf7f
>     (XEN) [   12.341823] 1ST[0x000] = 0x4352bf7f
>     (XEN) [   12.345124] 2ND[0x001] = 0x40000043527f7f
>     (XEN) [   12.347329] 3RD[0x1ce] = 0x400000433cef7f
>     (XEN) [   12.351233] CPU0: Unexpected Trap: Instruction Abort
>     (XEN) [   12.357643] ----[ Xen-4.21.1  arm64  debug=n gcov=y  Not tainted ]----
>     (XEN) [   12.360243] CPU:    0
>     (XEN) [   12.364098] PC:     00000a00003ce000 00000a00003ce000
>     (XEN) [   12.375835] LR:     00000a00004802f8
>     (XEN) [   12.378273] SP:     00000a00004c7e10
>     (XEN) [   12.380492] CPSR:   0000000080000249 MODE:64-bit EL2h (Hypervisor, handler)
>     (XEN) [   12.382785]      X0: 00000a00003ce000  X1: 0000000000000000  X2: 00000a0000410fa0
>     (XEN) [   12.385176]      X3: 0000000000000000  X4: 0000000000000010  X5: 0000000000000001
>     (XEN) [   12.387555]      X6: 00000a00004e5f40  X7: 00000a00004e5f38  X8: 0000000000000000
>     (XEN) [   12.390027]      X9: 00000a00004e5f20 X10: 00000a00004e5f30 X11: 00000a00004e5f40
>     (XEN) [   12.392510]     X12: 00000a0000439748 X13: 00000a0000406938 X14: 000000000000062e
>     (XEN) [   12.394954]     X15: 00000a00004f3918 X16: 00000a00004c7bb5 X17: 00000000004c7bb5
>     (XEN) [   12.397293]     X18: 0000000000000030 X19: 000000000000001d X20: 00000000000000a9
>     (XEN) [   12.399803]     X21: 00000a00004c8008 X22: 00000a00003fa000 X23: 00000a00004e2000
>     (XEN) [   12.402392]     X24: 00000a00003f9390 X25: 00000a00003fa000 X26: 00000a00003f4ca8
>     (XEN) [   12.404798]     X27: 0000000000000002 X28: 00000a000057a9c0  FP: 00000000bedb6740
>     (XEN) [   12.407110]
>     (XEN) [   12.409442]   VTCR_EL2: 0000000080023558
>     (XEN) [   12.411291]  VTTBR_EL2: 00000000bffc4000
>     (XEN) [   12.412895]
>     (XEN) [   12.414204]  SCTLR_EL2: 0000000030cd183d
>     (XEN) [   12.415928]    HCR_EL2: 0000000000000039
>     (XEN) [   12.417642]  TTBR0_EL2: 000000004352d000
>     (XEN) [   12.419152]
>     (XEN) [   12.420327]    ESR_EL2: 000000008600000f
>     (XEN) [   12.422056]  HPFAR_EL2: 0000000000000000
>     (XEN) [   12.423809]    FAR_EL2: 00000a00003ce000
>     ...
>     (XEN) [   12.485355] Xen call trace:
>     (XEN) [   12.489080]    [<00000a00003ce000>] 00000a00003ce000 (PC)
>     (XEN) [   12.512076]    [<00000a00004802f8>] init_constructors+0x38/0x50 (LR)
> 
> Observed failing symbol:
>     _sub_I_00100_0
> called from:
>     init_constructors()
> The issue can be diagnosed by enabling linker orphan diagnostics or
> generating a linker map:
>     LDFLAGS += "--orphan-handling=warn"
>     LDFLAGS += "-Map=xen.map"
> and then inspecting orphaned executable sections such as:
>     .text.startup

The x86 linker script does account for .text.startup in the .init
section:

  DECL_SECTION(.init.text) {
#endif
       _sinittext = .;
       *(.init.text)
       *(.text.startup)
       _einittext = .;

I think you just need to copy this to the arches that don't have it?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 27 14:04:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 14:04:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320493.1587782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErp-0006cR-R2; Wed, 27 May 2026 14:04:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320493.1587782; Wed, 27 May 2026 14:04:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErp-0006cF-Nu; Wed, 27 May 2026 14:04:17 +0000
Received: by outflank-mailman (input) for mailman id 1320493;
 Wed, 27 May 2026 14:04:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vishal.moola@gmail.com>) id 1wSEro-0006aq-Bj
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 14:04:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSErn-00ExNd-O0
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 16:04:15 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9d8-2eae-0a2a0a5409dd-0a2a45028c02-26
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:15 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9df-af86-0a2a45020019-d155dd2cb4f5-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:15 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-449d6c68ed8so7492694f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 07:04:15 -0700 (PDT)
Received: from fedora (cpc92878-cmbg18-2-0-cust539.5-4.cable.virginm.net.
 [86.16.54.28]) by smtp.googlemail.com with ESMTPSA id
 ffacd0b85a97d-45edb558f52sm6693771f8f.14.2026.05.27.07.04.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 07:04:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779890655; x=1780495455; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mkyZglyRu7RuI2nqe28wvRtM2BtUYvNg8u3jxi36ejc=;
        b=WbqH/vgoFY3jA9MoKfvhSfFJX29sov+dUpNB2f3UnUPh3UCCuSwZqR2WduINtzGQA5
         CLDbZDoFrQVCJRhcnKlElWZEeRpybGhH/3MWsX/ca78iNN08Z7ARwy56nkiQo1dGobx4
         QsK4eOGpwTJVYAj3S8G5IhTk+8HSbvioBkyHG15Nodz6ksoMYtwvVStMr+yUP5/lGsWp
         K8BZqP0BVr6jFZdtLUgRRUEjGC2z/Lg6TWmH4Z7uPxM2O/R7hq2n2ZQ2rzrm5PtoUDTG
         WF+IdV/KcD+MykOSqTHTzMQlivVn8h6c4wtFp26/HFA5BnAyjsx0Pa+hJVdaMByFvnN+
         c7zA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779890655; x=1780495455;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=mkyZglyRu7RuI2nqe28wvRtM2BtUYvNg8u3jxi36ejc=;
        b=h8dZNKhCrCwsj3PaV1CqgRoWUfZOI1vXYrJqsNe3QAjIuMk4ek+00EZ7Vasjl6Ai6n
         4CxD3oZriqlFwE2Znsi+3CbiURwwv3FZB56eUYWWThudyTzaUdUFmN6zrPrw7pwtMO8x
         6/XRWFtq775sMX4nGkUyeSeRphNDHre+VpGD4OSHj61vSpydKhcm2g0xl2zBw+LuHLPs
         E72KjTmUNphyJOMrO5V6Ne/oAZKuECiJgBKzBpeJuPnRflfS31e+ONICWL5mPxy7yxSL
         4WK1W/ZLrErZqzCCBBZ/YDLTz6Uvu5R4R4GlKELKijLpFOeHrJT5NFVHYl1e4nH292Cp
         Bouw==
X-Forwarded-Encrypted: i=1; AFNElJ/Cjmh0EeA1yOcpIB9UwAOIiAcVeilKpvUHJg9fbD09KgsnVk+jqgm69Jt27i25XcEZjFKKnCzyJDg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzfPzXwRuf7wuWE1qfIEcTkrslU6dPkQpl3iEDfxgw07HHHyvE3
	2cH54SLNk5B8E86fG1cA588rDJHSsYYEbmyagjctcvLEANWoE77KccSO
X-Gm-Gg: Acq92OECxoEsI3Vamux3Ge6Au2Y1+7EBncslWvc1dBBQ7MYEPKbxTKPaUAJSDag3rFn
	kMBNX0GopfqdgY1ZDjGNq6HdwJIo+MamHj9sftW3ljbSFVzjqT601iPqXhupYaRIE5HaoP13rdF
	hQ2hwwO6XRhNh/h7w59DPgEFU1gm0v2HFphkVPPQkpmw1Y7NdWN/1y3iCguJpe64QD0tX7Q9kdg
	Sz8ppWtVnUC84DMVdDukdHNEBXQK9euAFrwhUhVEffKxrpfcSTuug1C9a7KSJIZDm1mpB1rwa5w
	rFt7yi1S+i5sDcAjrKeyqTa1mrP4uZc+X6imdfjsQqdFyMCecHUPGvt7ltDfN2za1zco2b0fmpy
	MO2Op7NIftq+ZFcQuVc/Cys3aLaxDSVfEtHrbLO/pC/ozO1U6s3rj4EksO0UalUWj3RbRy5Ou86
	fpzhzCEfwKzFUkt3rbtHMTdoelgZxTF4rolakmeeNzbrADXrXHeyyboUTsdSQelDXXCoxtF5iOf
	zPDO4yvR9leQI5VHUzpMBOsCWM/V+zWR4ehAPNzteWF
X-Received: by 2002:a05:6000:26c3:b0:45d:b14b:23fb with SMTP id ffacd0b85a97d-45eb369c7abmr40583483f8f.11.1779890652261;
        Wed, 27 May 2026 07:04:12 -0700 (PDT)
From: Vishal Moola <vishal.moola@gmail.com>
To: Dave Hansen <dave.hansen@intel.com>,
	linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Mike Rapoport <rppt@kernel.org>,
	Lu Baolu <baolu.lu@linux.intel.com>,
	xen-devel@lists.xenproject.org,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Vishal Moola <vishal.moola@gmail.com>
Subject: [PATCH 3/9] x86/mm/pat: Convert collapse_pmd_page() to ptdescs
Date: Wed, 27 May 2026 15:03:10 +0100
Message-ID: <20260527140316.294621-4-vishal.moola@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260527140316.294621-1-vishal.moola@gmail.com>
References: <20260527140316.294621-1-vishal.moola@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1779890655-8316D161-6DF632E1/0/0
X-purgate-type: clean
X-purgate-size: 1130

Convert collapse_pmd_page() to ptdescs in preparation for the
eventual splitting of ptdescs from struct page.

Signed-off-by: Vishal Moola <vishal.moola@gmail.com>
---
 arch/x86/mm/pat/set_memory.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c
index 93cb71451ce2..45623d4c24c9 100644
--- a/arch/x86/mm/pat/set_memory.c
+++ b/arch/x86/mm/pat/set_memory.c
@@ -1297,11 +1297,11 @@ static int collapse_pmd_page(pmd_t *pmd, unsigned long addr,
 	list_add(&page_ptdesc(pmd_page(old_pmd))->pt_list, pgtables);
 
 	if (IS_ENABLED(CONFIG_X86_32)) {
-		struct page *page;
+		struct ptdesc *ptdesc;
 
 		/* Update all PGD tables to use the same large page */
-		list_for_each_entry(page, &pgd_list, lru) {
-			pgd_t *pgd = (pgd_t *)page_address(page) + pgd_index(addr);
+		list_for_each_entry(ptdesc, &pgd_list, pt_list) {
+			pgd_t *pgd = (pgd_t *)ptdesc_address(ptdesc) + pgd_index(addr);
 			p4d_t *p4d = p4d_offset(pgd, addr);
 			pud_t *pud = pud_offset(p4d, addr);
 			pmd_t *pmd = pmd_offset(pud, addr);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Wed May 27 14:04:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 14:04:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320491.1587760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErl-00060G-9p; Wed, 27 May 2026 14:04:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320491.1587760; Wed, 27 May 2026 14:04:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErl-0005zT-68; Wed, 27 May 2026 14:04:13 +0000
Received: by outflank-mailman (input) for mailman id 1320491;
 Wed, 27 May 2026 14:04:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vishal.moola@gmail.com>) id 1wSErj-0005xG-Vh
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 14:04:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSErj-007NSK-Bg
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 16:04:11 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9d1-e002-0a2a0a5209dd-0a2a450ce74a-42
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:11 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9db-62f1-0a2a450c0019-d1558036b0ad-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:11 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-49039a8851fso62330125e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 07:04:11 -0700 (PDT)
Received: from fedora (cpc92878-cmbg18-2-0-cust539.5-4.cable.virginm.net.
 [86.16.54.28]) by smtp.googlemail.com with ESMTPSA id
 ffacd0b85a97d-45edb558f52sm6693771f8f.14.2026.05.27.07.04.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 07:04:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779890651; x=1780495451; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JDtbAu0FdDQr0xPj+QYmQdEcSfPjgFyi+UN5Ynqy4tE=;
        b=oIFCPnylFYx8YE55wNrNFbd2ypu8fn/b3s+/2zPNLW/OCzTkcNizB1TEi0zvJT0c2n
         GD50xDmjmZMyk1XZe1S3B1rj+2zDlWQEbIkySU3AAq/UtR0RLKu8BYXD4Ma+1vE6ae2g
         HUGitwDX+23LndvlL9/u0Sm+/gPbRnhs++4SoS4dcCoTnxgGVrVO2YccbG991Cw1OuwT
         qNQvDZWnf4NCQdcYssRAy0yeEmblSwcVjXvjrwrpA6QSui0Ts1rSDzJVGLR3nxL+6G9i
         6NUURgJofhtwj3ULAIhuz/nR7Iz23C8CVU76m9TLjHiT7DdewK8PsEwkZhEh8BAk4ci/
         rxhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779890651; x=1780495451;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=JDtbAu0FdDQr0xPj+QYmQdEcSfPjgFyi+UN5Ynqy4tE=;
        b=pXZ5KzDU2Xt3+xmwX4XENlIBA4ONCGEfIGC+pCYP+GN49oPFxXL/C0dJuyaMKKrapg
         O5uYqo20+UWIGsCehGWYoLE/BMaQn7tikAMbz+WfrLy/r/gdUSSvmjgmaoyZAV183mZO
         ycYaXIvMS3wbYIY6/O9FR2M1hucuYhJ/8nVxxHv8y8/+H5aJVtXE27zHiaA8bx5UDEaQ
         R0Jrn1TDy9ORuHg6mHvFNtzatdwHo+CHUl9bDy0tOyvDz3PZAwqZMPLuduRV1hTSfH4E
         OFBYsk5pmY0ChGVOtq3uo27WHg7ieXnbzvfhy5viVNTwnRVWtjvOTab/I3ol9Biw90an
         cnNw==
X-Forwarded-Encrypted: i=1; AFNElJ93rUfVFNN1g8D96TAfAVRIXFBw+QQBIoh/2bReofds0UxjBfl3eMxWiD2g68x4qWYYDJ8mo2Bmfpw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzACPxrp0PhoghS+x7olhl1DiK+Y2GF7AfW56cEcObsIgf5+uS4
	VENAEMgH49Usrb3P9ghcMzjps6j4eV3Tv3KYxMd99dmlaJfWNIzdNFMc
X-Gm-Gg: Acq92OFJeV7de5p/ZgFj+hZs7gkAxgrmSrEfKBimYz9aNPmICeLkP1sPxl9cb6SkY5j
	Qg15sDUhSkX16uOEeX9Z+DBGZN94Ueemgaom0sSoxG9FUlBO8NGeYH024FyOPYF996OUZ0Alsqg
	BTkUR2KLe4jjfiK/ypkRIR0X2fCVZh8HNY5BaJleT2js2P5g6gKN9aIY9SxmlbhtzWPrlmU63MI
	tQFTsJpK5isFVWbHuWkmmcEsotzxj7hqqxX8gn0wInyFlOJFBBkwn3Paj2+NkMLJclGCi/Ketm4
	OSElMoyZ6Tp6M5j4evWog8rmXA8/PRQjJOrvt8aB50LrNyH5w4rqw1cwdRaq3zz1+O/734sBYL/
	RRa0Wm8Vdfr6rAy4dFTJnS5BfG118sCqXyN9wy4ZxGQqNfbZ/SBBU3hsvmhHiL3QFabWsYbAIop
	KcTFIRyN5QLgMAzJcvwRUtMKIeE1chHjpVWU0ZypAdZdJKLE0ihzXYNeHEyC0U0ZFlfl64PhCHs
	aOxEZU3KMnaqQlOD77U2Q3ZY8V976sCDoUln5dbOrNA
X-Received: by 2002:a05:600c:6383:b0:490:4717:970f with SMTP id 5b1f17b1804b1-4904717984dmr382832315e9.14.1779890650342;
        Wed, 27 May 2026 07:04:10 -0700 (PDT)
From: Vishal Moola <vishal.moola@gmail.com>
To: Dave Hansen <dave.hansen@intel.com>,
	linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Mike Rapoport <rppt@kernel.org>,
	Lu Baolu <baolu.lu@linux.intel.com>,
	xen-devel@lists.xenproject.org,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Vishal Moola <vishal.moola@gmail.com>
Subject: [PATCH 1/9] x86/mm/pat: Use IS_ENABLED() instead of ifdef
Date: Wed, 27 May 2026 15:03:08 +0100
Message-ID: <20260527140316.294621-2-vishal.moola@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260527140316.294621-1-vishal.moola@gmail.com>
References: <20260527140316.294621-1-vishal.moola@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1779890651-E377ECF5-F5EE87C9/0/0
X-purgate-type: clean
X-purgate-size: 1012

Use IS_ENABLED() to check if we are on 32 bit. This standardizes this
check with the other 32 bit check in the file. No functional changes.

Signed-off-by: Vishal Moola <vishal.moola@gmail.com>
---
 arch/x86/mm/pat/set_memory.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c
index d023a40a1e03..3b9032a3f315 100644
--- a/arch/x86/mm/pat/set_memory.c
+++ b/arch/x86/mm/pat/set_memory.c
@@ -888,8 +888,8 @@ static void __set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte)
 {
 	/* change init_mm */
 	set_pte_atomic(kpte, pte);
-#ifdef CONFIG_X86_32
-	{
+
+	if (IS_ENABLED(CONFIG_X86_32)) {
 		struct page *page;
 
 		list_for_each_entry(page, &pgd_list, lru) {
@@ -905,7 +905,6 @@ static void __set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte)
 			set_pte_atomic((pte_t *)pmd, pte);
 		}
 	}
-#endif
 }
 
 static pgprot_t pgprot_clear_protnone_bits(pgprot_t prot)
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Wed May 27 14:04:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 14:04:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320492.1587773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErm-0006NE-GE; Wed, 27 May 2026 14:04:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320492.1587773; Wed, 27 May 2026 14:04:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErm-0006N7-Ca; Wed, 27 May 2026 14:04:14 +0000
Received: by outflank-mailman (input) for mailman id 1320492;
 Wed, 27 May 2026 14:04:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vishal.moola@gmail.com>) id 1wSErl-0005xO-6N
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 14:04:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSErk-00ExJg-Hn
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 16:04:12 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9d1-2eae-0a2a0a5409dd-0a2a4509c408-40
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:12 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9db-2497-0a2a45090019-d1558030ec61-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:12 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-49056b9f04aso55003195e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 07:04:12 -0700 (PDT)
Received: from fedora (cpc92878-cmbg18-2-0-cust539.5-4.cable.virginm.net.
 [86.16.54.28]) by smtp.googlemail.com with ESMTPSA id
 ffacd0b85a97d-45edb558f52sm6693771f8f.14.2026.05.27.07.04.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 07:04:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779890651; x=1780495451; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=03ZuRm/Jbp4iqH3ao4SMCilmZCLzKIEi1dSL1yhjeUw=;
        b=JeRb+rtnqDMTYvvL2CzbdmwEtiIbbyPkjx9hB9xZK9cXfKYKYexakuAa3eCM9XLovM
         uBvfhrve+KJshuP7gfKTq9rNIUxDNfUD81mczlIVtvIk4GgZJeLmxodp2/Eq1qa9lv5b
         GjIJHfPQt4imIn/YTaL2Y+x4PLksFElfO8eNa6PCZDiJwpw3ElR4VGH4ubD+YmCmSGUm
         LdG/R8uY5uSg5xzFW6ubCypQ5GLwsHTpG7qo4QrR2tN8Nv0hwikTZFUBlniZClYS1uuY
         UbFVN6F/JgzcknXPw7Esfeszl8DAAj7dwbAFzeRvMsoIR5YziRhg8tj/+l4PR60ffs1T
         LCJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779890651; x=1780495451;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=03ZuRm/Jbp4iqH3ao4SMCilmZCLzKIEi1dSL1yhjeUw=;
        b=lFibBIr2f9F+46fAegCMfr+0uJCsa/3Fc1ahuKujkb9C0Nxa2UtlN5llm7cnxdFEjD
         xOhBhbROYAz0KO5VXrLbNT1hURQBSOKCW3ZLLYCTcz2COXQOUe+A7QDJ+hn5BBrBagJX
         W9xf7nxyitlbmnr5GkZ5X5rmPxwOMcvep9R1ol80SgXFypy8Q8Q6WPC4Ds1O0ldagSl+
         AVM8F1A3BQv9O3ey2h4SiAKJdCl1VAAzD5VzC3P03tdGk+4Exd+Yv/+piHpZ9X6BYPZn
         rhcw3zXJAmcsNfobHvQlM2+ty7PFf0VMwitVchod3CaAjwfZvKSfCE/tmXZ15mqLe3NF
         LbOg==
X-Forwarded-Encrypted: i=1; AFNElJ9RyEEjDtyXNVVHjmoqKTx0kj920OO9h1guEEMo6q6via6dGuQfFtInjFtBt/sslI12HipdRJgYSxw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyJbIxn9JLQWJ0abAd5C70Nz4bgdP6nseGlw1tetQ4shHpJ8ay3
	ENPfQpBFp4oYzQXoCuN1aNOS9f9gQW6PsCSZMFkKSSPFCvvrwLtwLHNb
X-Gm-Gg: Acq92OFc2oww7v8gp5g4KVvEjwWVW46qIxFk9kR0If0b0g7dQMERJ78ZBEwTCmIRPWn
	jkf68rPo/ik0dD98STSgldWRtro/PQoc44XboebIHHPZwhQxbkKL6k3d7I2GLIY09hfXpgrTs/Z
	bLCVclRdT/NzjquyjvXjrppo2PiafqsMsH4ZOtY/jNIEqsIme5kSLagESooqSl2EJJvoEqft1Tc
	F4asoCqe1Yw8lA6ZTm1Ba3icWqIjz3kz2Wik3LMUHArcDl9JkLVSxLsCztlohpSgtjvZYTtcw0V
	bxlOcroOXwY8kgfyHbPIto+yLlI6b6g2BtvCVL2eVPC4zB4AnwM+K14rxF5baGcaUGJrrlSNOiu
	ihWyMx6ZzaHp+VgGM3fhYEnBswhsq9ivCU5P2q84fvUTc+shC/+lQLL2hRPfRxErBO20JkcaYLM
	FCUml8n8Gwapls9ONhGqnnTJK1l/omyHxzJ6YPfnTkZtDuNSbo5zrlhuozghe1sbmjBayyR4KQs
	VfXZzACbGrXbLm7b+1c3foKl0ajvpsDiQ==
X-Received: by 2002:a05:600c:4ecc:b0:48a:56de:d62a with SMTP id 5b1f17b1804b1-490424b3c7fmr352223335e9.11.1779890651300;
        Wed, 27 May 2026 07:04:11 -0700 (PDT)
From: Vishal Moola <vishal.moola@gmail.com>
To: Dave Hansen <dave.hansen@intel.com>,
	linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Mike Rapoport <rppt@kernel.org>,
	Lu Baolu <baolu.lu@linux.intel.com>,
	xen-devel@lists.xenproject.org,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Vishal Moola <vishal.moola@gmail.com>
Subject: [PATCH 2/9] x86/mm/pat: Convert __set_pmd_pte() to ptdescs
Date: Wed, 27 May 2026 15:03:09 +0100
Message-ID: <20260527140316.294621-3-vishal.moola@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260527140316.294621-1-vishal.moola@gmail.com>
References: <20260527140316.294621-1-vishal.moola@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779890652-8B193A53-D8C1918D/0/0
X-purgate-type: clean
X-purgate-size: 1093

Convert __set_pmd_pte() to ptdescs in preparation for the eventual
splitting of ptdescs from struct page.

Signed-off-by: Vishal Moola <vishal.moola@gmail.com>
---
 arch/x86/mm/pat/set_memory.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c
index 3b9032a3f315..93cb71451ce2 100644
--- a/arch/x86/mm/pat/set_memory.c
+++ b/arch/x86/mm/pat/set_memory.c
@@ -890,15 +890,15 @@ static void __set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte)
 	set_pte_atomic(kpte, pte);
 
 	if (IS_ENABLED(CONFIG_X86_32)) {
-		struct page *page;
+		struct ptdesc *ptdesc;
 
-		list_for_each_entry(page, &pgd_list, lru) {
+		list_for_each_entry(ptdesc, &pgd_list, pt_list) {
 			pgd_t *pgd;
 			p4d_t *p4d;
 			pud_t *pud;
 			pmd_t *pmd;
 
-			pgd = (pgd_t *)page_address(page) + pgd_index(address);
+			pgd = (pgd_t *)ptdesc_address(ptdesc) + pgd_index(address);
 			p4d = p4d_offset(pgd, address);
 			pud = pud_offset(p4d, address);
 			pmd = pmd_offset(pud, address);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Wed May 27 14:04:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 14:04:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320490.1587756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErl-0005xV-33; Wed, 27 May 2026 14:04:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320490.1587756; Wed, 27 May 2026 14:04:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErk-0005xN-W6; Wed, 27 May 2026 14:04:12 +0000
Received: by outflank-mailman (input) for mailman id 1320490;
 Wed, 27 May 2026 14:04:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vishal.moola@gmail.com>) id 1wSErj-0005xA-8v
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 14:04:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSEri-00DMLi-KS
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 16:04:10 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9cf-bab6-0a2a0a5309dd-0a2a4503c63c-36
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:10 +0200
Received: from [209.85.218.48] (helo=mail-ej1-f48.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9da-672d-0a2a45030019-d155da30d476-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:10 +0200
Received: by mail-ej1-f48.google.com with SMTP id
 a640c23a62f3a-bd9a71b565aso1401573966b.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 07:04:10 -0700 (PDT)
Received: from fedora (cpc92878-cmbg18-2-0-cust539.5-4.cable.virginm.net.
 [86.16.54.28]) by smtp.googlemail.com with ESMTPSA id
 ffacd0b85a97d-45edb558f52sm6693771f8f.14.2026.05.27.07.04.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 07:04:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779890650; x=1780495450; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=TAYTp3YLYHc7rNj/43RIw8vpoUcMd82B06aT0BnHByQ=;
        b=M86DbGW256t5IwS71KbS65j53ydJgrmD8o4I003Ks7TbRhI4JHURrQ9RQURHQsNG9+
         P1S8kWDxRxug+lKz0er3+w05Wotw19h1Scu8MoPTb3G2OhKt4sfO1990CGePtd6b9lZj
         ows8zj7QfP35R+CbwC5qf9hCtaEZhw85Up8o2kOPU5NRt8fvzmGDcFZdENgiFth5zjD7
         rX6B8E6KUfJ8q0XIholctm3wHBi181IOhvvoco+YRTI845BxCuNgG8MmyK24NONy1Dmo
         tCIwDQR8G7WlTrBdFVY626/UoI4RU/30nVPjVsQmtCMFYUc0oc1+aA9IjibgSytNjzSD
         iRow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779890650; x=1780495450;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TAYTp3YLYHc7rNj/43RIw8vpoUcMd82B06aT0BnHByQ=;
        b=cqujUQ8oTeBBTxmjkqenf1I1FyDx81L6aL1YSNE/ox6b6cOWMmR1SDuokf/HvMZY0D
         WbS0/4a0lBB8GXOFy6UEcMKJnUpN82FZ3QpEXy0inuhW2kR1VKdzE0jBgnUnCrlqnmU7
         26acIxZPfgOHllIIbd8smXeBOOtjKv3gtoea8OSy9ssK0OmVdiPQ9+dCIOrhy5kMi2Lc
         MSNL/+w7SlQZRSe0XzIBzGHFKMhb5/WOHmLcXs8Yk2Xss9FV53j7kj1B/k4vWZYqFSaR
         YL4uUpYtjebN2Xws5otFpjTjvpT3q+ttMaNPg/ytg3Wo/cBk5h2kHxa9liBGeFi5+ZjS
         ptiA==
X-Forwarded-Encrypted: i=1; AFNElJ/UFTaKPIoZHzspZui5z31c/0MPvXHQdo9rn9nSwhY/NtdjSQnlGF4h53tmLI7H8QlqsXU6tj6TrF0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzs20Ufjku4xS7QAQ7W+rVU6xfvH+2RMJ7phO5D7rTBH/k5Avh7
	LbyTKHG/kRNMDBgO9gaNSzZrvSFrpU4V8N9amDGBAnJ/jnqZ4HyPRi6imgrraNXK
X-Gm-Gg: Acq92OG8RuHTrBqiqesO3e1y4JeKsOdfrLDEUgNPFllNErdVmZbpmhpjK18E3WvBbg1
	N0TyUj8FjxJi1LTpf8iudrUxJJJHDjilpHXyP+IK6lvkhr+re56KUHQVyJdwI2msgNao4D+t/cP
	Pi0UnSWqaSgtZnG8zel2769C52RapKJ/D9ORZL3hKGscYXjNqDMFKjfdO+XWaN7bGDXfIUrrUCL
	JzcIoAbczNMBAt5tpBBq8bkiSUhLATNGYOTPleSs+bKn9BppZ54y/6nsKt95v/d/A5/nX0N4pHW
	Kl4W6uM7HCfUq5hiDu3s4GKAFRL2MD2aDmdrb8tycAi5NR8LzLWWA6zn051sGDdo22D4qGakV59
	BFIdHHxmWRiUkotD4ZcvSLmbrXG+E2pybXYHR6OLBcN4KYchmMG6pHpOz+M544e5t+yNxKUi6aP
	K4DXZFBuyNr2zRz6I82km2ctZ0cDlPahaGgO/F2vb5b42ngHePhly7zx/FWtM4E9UWPsiJPeCbV
	kq/DeBXuL5yWlJ+iTW45Z2VcjPUG3fqrg==
X-Received: by 2002:a17:907:b5a3:b0:ba4:f501:cb8b with SMTP id a640c23a62f3a-bdd22f294a3mr1037575166b.16.1779890649230;
        Wed, 27 May 2026 07:04:09 -0700 (PDT)
From: Vishal Moola <vishal.moola@gmail.com>
To: Dave Hansen <dave.hansen@intel.com>,
	linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Mike Rapoport <rppt@kernel.org>,
	Lu Baolu <baolu.lu@linux.intel.com>,
	xen-devel@lists.xenproject.org,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Vishal Moola <vishal.moola@gmail.com>
Subject: [PATCH 0/9] Convert x86 pgd_lists to ptdescs
Date: Wed, 27 May 2026 15:03:07 +0100
Message-ID: <20260527140316.294621-1-vishal.moola@gmail.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779890650-3977E938-12FA18A4/0/0
X-purgate-type: clean
X-purgate-size: 1840

This continues the ptdesc conversions for x86[1]. This is a necessary step
in preparation for the separate allocation of ptdescs from struct page.
Once ptdescs are not wrappers, the pgd_list should be used to find our
ptdesc, not page.

In fact, after patch 4 we can successfully boot a 32-bit x86 kernel
that separately allocates ptdescs.

All of the patches are rather straightforward, I just kept them split up
for ease of review. There are no intended functional changes as ptdescs
are currently still wrappers around struct page.

[1] https://lore.kernel.org/linux-mm/20260211195233.368497-1-vishal.moola@gmail.com/

----------------

I've compiled and booted both 64 and 32 bit on a kernel with separately
allocated ptdescs. I ensured the codepaths were hit for all the changes
except Xen.

This applies cleanly to the tip bot. I'm thinking this can go through
Dave's mm.

Vishal Moola (9):
  x86/mm/pat: Use IS_ENABLED() instead of ifdef
  x86/mm/pat: Convert __set_pmd_pte() to ptdescs
  x86/mm/pat: Convert collapse_pmd_page() to ptdescs
  x86/mm: Convert arch_sync_kernel_mappings() to ptdescs
  x86/mm: Convert sync_global_pgds_l5() to ptdescs
  x86/mm: Convert sync_global_pgds_l4() to ptdescs
  x86/mm: Convert pgd_page_get_mm() to ptdescs
  x86/xen: Convert xen_mm_pin_all() to ptdescs
  x86/xen: Convert xen_mm_unpin_all() to ptdescs

 arch/x86/include/asm/pgtable.h       |  2 +-
 arch/x86/include/asm/pgtable_types.h |  2 +-
 arch/x86/mm/fault.c                  |  8 ++++----
 arch/x86/mm/init_64.c                | 16 ++++++++--------
 arch/x86/mm/pat/set_memory.c         | 17 ++++++++---------
 arch/x86/mm/pgtable.c                |  4 ++--
 arch/x86/xen/mmu_pv.c                | 22 +++++++++++-----------
 7 files changed, 35 insertions(+), 36 deletions(-)

-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Wed May 27 14:04:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 14:04:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320494.1587792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErr-0006ra-3n; Wed, 27 May 2026 14:04:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320494.1587792; Wed, 27 May 2026 14:04:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErr-0006rT-0B; Wed, 27 May 2026 14:04:19 +0000
Received: by outflank-mailman (input) for mailman id 1320494;
 Wed, 27 May 2026 14:04:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vishal.moola@gmail.com>) id 1wSErp-0006c2-I9
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 14:04:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSEro-00ExNd-UN
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 16:04:16 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9db-2eae-0a2a0a5409dd-0a2a4506a2cc-30
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:16 +0200
Received: from [209.85.167.49] (helo=mail-lf1-f49.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9e0-7371-0a2a45060019-d155a731e16b-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:16 +0200
Received: by mail-lf1-f49.google.com with SMTP id
 2adb3069b0e04-5aa4bb157c6so830371e87.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 07:04:16 -0700 (PDT)
Received: from fedora (cpc92878-cmbg18-2-0-cust539.5-4.cable.virginm.net.
 [86.16.54.28]) by smtp.googlemail.com with ESMTPSA id
 ffacd0b85a97d-45edb558f52sm6693771f8f.14.2026.05.27.07.04.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 07:04:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779890656; x=1780495456; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rv/V9Guf/VmqLyIW7ddquGjxWE57lh1X75zHlzPy+Ls=;
        b=O1FOKMG2ODrQjpjKqj0YEQa5hQ8+j4YwvHnFxysH/tq3gT/v8z0uK8akhuassHwcLM
         /uw+HzV4POaqTCnyVb4M7A4QH6OsRnRXZc39+uzv4k6HXU+wUyIWhU0YOJK3onUK5UMg
         wAQwShV/pOJFuog+pQTjaRyKwaxk9h3DvbZ0O/EgqbeAQwUhXauQ516RNEmZOeGkl85n
         vKjiCtgnB/D8PGvJcfeccckRIxqYggMYXSIpoO1wyeXZ6zQND5PFoL052iyW7fWVs7cE
         PX4DLndwDubt7BmaFYXZjdOhYVVmdcHeXdh6L7XgCcMezw1A2Stw8nhmFqg70ZEyQeWk
         IWPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779890656; x=1780495456;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=rv/V9Guf/VmqLyIW7ddquGjxWE57lh1X75zHlzPy+Ls=;
        b=fUUtrz467MDLX6XNGgoJPlOhHVj6oW5t39DPKYdq5xsBBsICgFLKIm34+2gCgdq8Td
         PrdR1ig1z/2COhsHiIFY3MMp14NuVCfPVnTCO3FmM6PS2bF7DxMZI8oSklezaR3BvC0l
         vUMMhfwJvRg7GPEIChoL2weHTpTgcP0l7871GgSMcI/rXtKT2W3eiFmyaAO9DzrE+OXw
         4/qxAJf2Xl511ssWIoNrVzpN4A+ahDWDlcsYFlRgoR6rwF47mnab2GhFLfEHwF7L8eEq
         1J2hsHlm9fQ8ZsDEus9ZKpudG8xdKJc4USUaI0GpBjV4YWNF2MiLdR2yWbKwBDYSMhKb
         UzTg==
X-Forwarded-Encrypted: i=1; AFNElJ8C7BO2flBNMLuNi26ah6i/vjxzxSjSGdgpoXVW/oJpBTvzCbpMRsJoK08BVyVnGEqEvTI8ZT81dV8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzx6BwQKx9IJ9/6RJgmcZwrVeYwI+dYVGQWj2KhUJlgIf4nV6cF
	ul5tATJ0+VqlqDNZxs6B84IXeIY2V02FGhAVahLyvW+gCEFNi19cTwbX
X-Gm-Gg: Acq92OHtN7IJyCYVC8l6HAj81wVzm8J55r6usYD5P720+E9OCyejm6OttoEo0uCu+y0
	pO17RZp31iAouFM4gq5EGATOr5R9o4M6ZkJ6AvXZDcATmQeemTjBRqVrpTNVr1Bf40MpCg/d+af
	gK+Bu9CRL70xoVKMXaEig4FFgtWFyL4PqGvdTituT6PVtJxvyp2KQKUvME7MfRuh0hU7lInlRNP
	8Y+fnmHP9EoobkiZa+PvTBqmWtjBXG1V0PbpKfhrvcAiCBaOh8AkWq7tmRhvJFB628AWbZgBKKv
	2xvRdNtS0dA3wI7GVo6GmapFYHYAy44fdhuECzxmqiSOqpyXMH5Ivr1nLd4KOpRKEd39dIaubgg
	MV9l7ROktrq1v8VqF843M4MdmcHTpPftyJ2ooVjG+rJQ28DSFbcc4AmQM0cERhMeEAnspJqHKlw
	6FxZlhNWYiVknOLDqwnyFV6jvi3Hq0Kznjjv/pdvTwhN2Ml3oXF4DDXqDnNiJCVbAZ4Hg/Z3Xl2
	tio53jC68ob+Z1uYVHi1jRZN1CyXfcbDA==
X-Received: by 2002:a05:6512:1287:b0:5a8:5ca8:7f72 with SMTP id 2adb3069b0e04-5aa3238b947mr7339783e87.4.1779890655762;
        Wed, 27 May 2026 07:04:15 -0700 (PDT)
From: Vishal Moola <vishal.moola@gmail.com>
To: Dave Hansen <dave.hansen@intel.com>,
	linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Mike Rapoport <rppt@kernel.org>,
	Lu Baolu <baolu.lu@linux.intel.com>,
	xen-devel@lists.xenproject.org,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Vishal Moola <vishal.moola@gmail.com>
Subject: [PATCH 4/9] x86/mm: Convert arch_sync_kernel_mappings() to ptdescs
Date: Wed, 27 May 2026 15:03:11 +0100
Message-ID: <20260527140316.294621-5-vishal.moola@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260527140316.294621-1-vishal.moola@gmail.com>
References: <20260527140316.294621-1-vishal.moola@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1779890656-86369D75-90D0EC58/0/0
X-purgate-type: clean
X-purgate-size: 1318

Convert arch_sync_kernel_mappings() to ptdescs in preparation for
the eventual splitting of ptdescs from struct page.

Following this patch, we can successfully boot a 32-bit x86 kernel with
separately allocated ptdescs.

Signed-off-by: Vishal Moola <vishal.moola@gmail.com>
---
 arch/x86/mm/fault.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 63de8e8684f2..6c72d6668416 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -269,17 +269,17 @@ void arch_sync_kernel_mappings(unsigned long start, unsigned long end)
 	for (addr = start & PMD_MASK;
 	     addr >= TASK_SIZE_MAX && addr < VMALLOC_END;
 	     addr += PMD_SIZE) {
-		struct page *page;
+		struct ptdesc *ptdesc;
 
 		spin_lock(&pgd_lock);
-		list_for_each_entry(page, &pgd_list, lru) {
+		list_for_each_entry(ptdesc, &pgd_list, pt_list) {
 			spinlock_t *pgt_lock;
 
 			/* the pgt_lock only for Xen */
-			pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
+			pgt_lock = &pgd_page_get_mm(ptdesc_page(ptdesc))->page_table_lock;
 
 			spin_lock(pgt_lock);
-			vmalloc_sync_one(page_address(page), addr);
+			vmalloc_sync_one(ptdesc_address(ptdesc), addr);
 			spin_unlock(pgt_lock);
 		}
 		spin_unlock(&pgd_lock);
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Wed May 27 14:04:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 14:04:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320495.1587798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErr-0006v4-Id; Wed, 27 May 2026 14:04:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320495.1587798; Wed, 27 May 2026 14:04:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErr-0006uj-Ae; Wed, 27 May 2026 14:04:19 +0000
Received: by outflank-mailman (input) for mailman id 1320495;
 Wed, 27 May 2026 14:04:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vishal.moola@gmail.com>) id 1wSErq-0006fh-7K
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 14:04:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSErp-007NWT-JI
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 16:04:17 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9e1-5cb7-0a2a0a5109dd-0a2a4505b586-2
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:17 +0200
Received: from [209.85.218.41] (helo=mail-ej1-f41.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9e1-aaa8-0a2a45050019-d155da29e59f-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:17 +0200
Received: by mail-ej1-f41.google.com with SMTP id
 a640c23a62f3a-bd4f8260e4eso2081869366b.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 07:04:17 -0700 (PDT)
Received: from fedora (cpc92878-cmbg18-2-0-cust539.5-4.cable.virginm.net.
 [86.16.54.28]) by smtp.googlemail.com with ESMTPSA id
 ffacd0b85a97d-45edb558f52sm6693771f8f.14.2026.05.27.07.04.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 07:04:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779890657; x=1780495457; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=StiDcvF5NcsOIMzOzw/wp6rwR3a8/aCyRzqbH6oZvSA=;
        b=DUBZN+kBxri6T029tjHeepqnc8mt7Evg8Th0OajQZEnglCG7KA3eqKJfzhzU3xG0Ku
         m3VRqTXn2qqifqIcygro6Fg2E9YdAHMWt6bybc/gGmjnuriZ1jICNnma51KsFLek9+pF
         hKnIJ0S4C2h76kBkpZYhK4A7+lhMbvMSYk7oNVAY1wakpRkNuQZuL9XVCckoMM/ndZ+0
         7/P08Rrs5rHBjjNPhkfsh7qzBTa6/WyiSTNDmwlzRU4dZu3KdowgthadNqNovdrdRU0W
         7QTWGxzk5rPw+/nGDOgDfin1dsNM9Nfc4O22li9YNXfXHM4IvRfIJTpLSIZZhZp6+reI
         PQaQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779890657; x=1780495457;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=StiDcvF5NcsOIMzOzw/wp6rwR3a8/aCyRzqbH6oZvSA=;
        b=lEZLENRG6hSVDobMdi1WdSaWkWlXwYutUyGOXqIxVew+yDpjGVMOeunEShKQETQ8Tt
         1i9+r+iT7wXsSQWcy8Yrbo1sXIs80rA3oeKsg+4XZASrdzZ6g7IX9V0xnc6GJlmyyWUs
         tc1ZTZy0vsgb0vHu7KNcfv0tS1KIfSlU9mkB+wefhGtFntEI11BVEkg92pdUuXRb71Un
         MP0xilrTLlUjAQlu6wfDITfVJvm4ltt+Ym3rvm+/uU8fmByPiaMP4e0DaFD5hsc1915O
         xaWzJREbRqLMCIbzrknh6vcOedI8PegQnS4wxntaiYCdRiCJZwd8o+yfHsMXw78scJkB
         0Dsw==
X-Forwarded-Encrypted: i=1; AFNElJ/9oOtamipWO9Cvt4gj9tR57phkEywylEjggnx/mjpf6YVc4MT5uICuAOm8iAxX6pPMlfW9KyRLN60=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw29Vq/4fA5e2J0Iu6E2im16Mf2USbDpmIT1ClU1xWXMuqCLZOa
	DZqbS2plauZDRm5vaNlT1shKZic9mEzXnzkkHFPk95YQhYLe0X1soyvl
X-Gm-Gg: Acq92OEwWkdbtQujYm0lwuP/SZvbkfQmB2HSnIc6LlhtxJqdDANC6/N/YpNv1xu3q4P
	F9UM1C2HrEjFhU8je0rA3zPLRJ/3KzTlYsr/GO0k6dXJ2BK5hfl5hCb1i+Ekkmz6r8a8QZPIqfN
	mYL0g6gfKtSxaqPAt0cxytJOHw6onHW81cc4NDMNmZ8FTPTBLoCccrgect37mV/Wl2hE2/OhNRi
	y+s0UFEH4kKju6LvMtkKNUQXwKFq7c1N8VBqdDLTuDc5yxplziKSxDEYkkEhVxG6F+SKZyhz1tY
	TxtXCAZ0feHWf0umx9TGYy1W6BmzOHgsAg/e+6ewOOC7FfGMMfq3NbHyGXVzxh2amZHp4fGXBIG
	AsZwrco/uABfsL6EuRf9ePETdftuXmkipoN5TYE84EOcJMR5HMyarYWO7jxGJ4L3XoI7rxUTT+G
	PpJbJ55DBm1ny2SkOeKr26QrbVjWYXJ+Bk0RaSoiHspdl3UloORFu9qF/I7YxhvLaqObm5LYM6I
	0PYLUn/i4oOvKxIk2JjVPvn0KV8xWNvdg==
X-Received: by 2002:a17:907:3e03:b0:bd9:1fb:9941 with SMTP id a640c23a62f3a-bdd25cec1f0mr1328155766b.29.1779890656754;
        Wed, 27 May 2026 07:04:16 -0700 (PDT)
From: Vishal Moola <vishal.moola@gmail.com>
To: Dave Hansen <dave.hansen@intel.com>,
	linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Mike Rapoport <rppt@kernel.org>,
	Lu Baolu <baolu.lu@linux.intel.com>,
	xen-devel@lists.xenproject.org,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Vishal Moola <vishal.moola@gmail.com>
Subject: [PATCH 5/9] x86/mm: Convert sync_global_pgds_l5() to ptdescs
Date: Wed, 27 May 2026 15:03:12 +0100
Message-ID: <20260527140316.294621-6-vishal.moola@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260527140316.294621-1-vishal.moola@gmail.com>
References: <20260527140316.294621-1-vishal.moola@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1779890657-E3788443-8F7770FC/0/0
X-purgate-type: clean
X-purgate-size: 1410

Convert sync_global_pgds_l5() to ptdescs in preparation for the
eventual splitting of ptdescs from struct page.

Signed-off-by: Vishal Moola <vishal.moola@gmail.com>
---
 arch/x86/mm/init_64.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index df27379d4bb4..e89b51aea2cf 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -136,7 +136,7 @@ static void sync_global_pgds_l5(unsigned long start, unsigned long end)
 
 	for (addr = start; addr <= end; addr = ALIGN(addr + 1, PGDIR_SIZE)) {
 		const pgd_t *pgd_ref = pgd_offset_k(addr);
-		struct page *page;
+		struct ptdesc *ptdesc;
 
 		/* Check for overflow */
 		if (addr < start)
@@ -146,13 +146,13 @@ static void sync_global_pgds_l5(unsigned long start, unsigned long end)
 			continue;
 
 		spin_lock(&pgd_lock);
-		list_for_each_entry(page, &pgd_list, lru) {
+		list_for_each_entry(ptdesc, &pgd_list, pt_list) {
 			pgd_t *pgd;
 			spinlock_t *pgt_lock;
 
-			pgd = (pgd_t *)page_address(page) + pgd_index(addr);
+			pgd = (pgd_t *)ptdesc_address(ptdesc) + pgd_index(addr);
 			/* the pgt_lock only for Xen */
-			pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
+			pgt_lock = &pgd_page_get_mm(ptdesc_page(ptdesc))->page_table_lock;
 			spin_lock(pgt_lock);
 
 			if (!pgd_none(*pgd_ref) && !pgd_none(*pgd))
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Wed May 27 14:04:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 14:04:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320496.1587809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErs-0007Hg-Mj; Wed, 27 May 2026 14:04:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320496.1587809; Wed, 27 May 2026 14:04:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErs-0007H6-IO; Wed, 27 May 2026 14:04:20 +0000
Received: by outflank-mailman (input) for mailman id 1320496;
 Wed, 27 May 2026 14:04:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vishal.moola@gmail.com>) id 1wSErr-0006rS-5X
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 14:04:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSErq-007NXm-Hg
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 16:04:18 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9de-e002-0a2a0a5209dd-0a2a4509cc72-24
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:18 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9e2-2497-0a2a45090019-d155802ef19e-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:18 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-49050bfe053so22221805e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 07:04:18 -0700 (PDT)
Received: from fedora (cpc92878-cmbg18-2-0-cust539.5-4.cable.virginm.net.
 [86.16.54.28]) by smtp.googlemail.com with ESMTPSA id
 ffacd0b85a97d-45edb558f52sm6693771f8f.14.2026.05.27.07.04.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 07:04:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779890658; x=1780495458; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=c2LXP0rk0yvbCFBliNg/BHdi3EXRn2M/q6qufOUbEAs=;
        b=WYybxjT5baaCAvYRRqpuFfyXorjtlexHbH5skaDJb75JhawTOmvhfwcNINT9KL7SN7
         9zzYBWxvODPeAKaADOrOqQpsmK556CA9NvbHuHBe+Y3g1wB6WZKbq0bYdgkI1sdSQsYM
         7kKoIkK+3o8hzYxjYZ/9PIHltWXN6nopRR6dkEcMgSchzyR7SbvSGd4TY0cgxuRkd/3q
         j1k1XmgkYRHxDgfcedu81yavJoKDOpiBkh+h+uWi0t9BeLmYvQmIl1JW2yJl4bbJXgdJ
         8WMGnrNVNbUk5EX9P4AWVXt+eb3KmBpfBm8nqWjPrlPqzxYif/aw+E08yHM5TXhvJPhx
         jaNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779890658; x=1780495458;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=c2LXP0rk0yvbCFBliNg/BHdi3EXRn2M/q6qufOUbEAs=;
        b=kCtgbcU9uVXXa1lG8DqLVTbQ8e44xwIACY9bwb/Z9ZUnYxkRtM1RexvHVxMRru0mSl
         etv+bqEpQDTH+ZJuiMeOlNi5gTV2xWA9lEraNV/M0B3/KdNbJ2jPIUYyEGu1ZLPLFpBP
         y0AFM5Okh8FF+oQRFzHZloC2rnMsQPduRu1Wu2cFBslydzD1Afin/hU9WRUmiUbDGR4O
         1aguZCrISJQROvyRTSFr8JJY0om1i2KU+YJtY4cZdJPdWzlkueN2jT0sMojBtuCziF99
         cn0vfge3QaqCDFT62MZCbUZFSyfyiGPVzBYPEnvS3QY6f6i5VdPtg4UVt6+6+xWT+nBQ
         BNYQ==
X-Forwarded-Encrypted: i=1; AFNElJ8ZjU2T6lN7jaIHkhbmOD5QsHglF4Mq3uAnN5T6vX9mmy8/mAiwKPcvz8jzt8R2t67cj+gmoyXfGmk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw88A97UGr4595Y9EZQEQYysyXvqHPweIorOCiK/A+PVoeszpSE
	ZpbUcaG5dTrS1p7rmF2TG+r3mH5FoMXTliJhhFsXi1aiX/kxwfAR+23J
X-Gm-Gg: Acq92OFpkGO/1pT0qGQtWCr5GBiMV4FGKF0XZHLNRXnxTvqvcp0xspbd9vCVcDTaFa6
	Vj9WJedgqSsUz2AvkXa3zWY2KVN2C6HVCHxEooS4NldHJUCajUHmQ3W7w0JnP8H11m8lrstwqSO
	V81WbtzMI1g7GiGeoUVOU0PVJAE2ryP0OuAxPabqkjpEFYISp5hV6vruB1ATMy4ZV/Mrl+08DJo
	0BDK2Ax6823mMXpOIRMqYIY5LPjtHngovL/EQGpReu5FNMuplFAdcNmdzic2yk5JqEAO1rwndv8
	QGtRAkkGdueAPIptpAGhcJftEoZoorCRXB0bA1oe5AVbpl8SQg7TSP3dchfu288VpZy3/c87ESV
	y/v+imUIbyFJ/He0Kzm2gezp4/pFJ+kmrxzZvZGp6Y6gLgTaq8D9niCthDBE6hInNpM2wuPdiUN
	5HIhGiv+61AnoysN/trneiIOv9Ni2Yf3iWwfEZYb6umZh3AxdjYxjnkSVR5ap0QAP1REfO1cMiN
	Tvpus/hMsLwh8S2DgO4cljYw2KIlGZiS6obUJ1PxlUb
X-Received: by 2002:a05:600c:1553:b0:490:53b0:9e53 with SMTP id 5b1f17b1804b1-49053b0a086mr320397125e9.1.1779890657764;
        Wed, 27 May 2026 07:04:17 -0700 (PDT)
From: Vishal Moola <vishal.moola@gmail.com>
To: Dave Hansen <dave.hansen@intel.com>,
	linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Mike Rapoport <rppt@kernel.org>,
	Lu Baolu <baolu.lu@linux.intel.com>,
	xen-devel@lists.xenproject.org,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Vishal Moola <vishal.moola@gmail.com>
Subject: [PATCH 6/9] x86/mm: Convert sync_global_pgds_l4() to ptdescs
Date: Wed, 27 May 2026 15:03:13 +0100
Message-ID: <20260527140316.294621-7-vishal.moola@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260527140316.294621-1-vishal.moola@gmail.com>
References: <20260527140316.294621-1-vishal.moola@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779890658-37F7EA53-6C38714A/0/0
X-purgate-type: clean
X-purgate-size: 1497

Convert sync_global_pgds_l4() to ptdescs in preparation for the
eventual splitting of ptdescs from struct page.

Signed-off-by: Vishal Moola <vishal.moola@gmail.com>
---
 arch/x86/mm/init_64.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index e89b51aea2cf..a6ccb83f2d26 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -174,7 +174,7 @@ static void sync_global_pgds_l4(unsigned long start, unsigned long end)
 	for (addr = start; addr <= end; addr = ALIGN(addr + 1, PGDIR_SIZE)) {
 		pgd_t *pgd_ref = pgd_offset_k(addr);
 		const p4d_t *p4d_ref;
-		struct page *page;
+		struct ptdesc *ptdesc;
 
 		/*
 		 * With folded p4d, pgd_none() is always false, we need to
@@ -187,15 +187,15 @@ static void sync_global_pgds_l4(unsigned long start, unsigned long end)
 			continue;
 
 		spin_lock(&pgd_lock);
-		list_for_each_entry(page, &pgd_list, lru) {
+		list_for_each_entry(ptdesc, &pgd_list, pt_list) {
 			pgd_t *pgd;
 			p4d_t *p4d;
 			spinlock_t *pgt_lock;
 
-			pgd = (pgd_t *)page_address(page) + pgd_index(addr);
+			pgd = (pgd_t *)ptdesc_address(ptdesc) + pgd_index(addr);
 			p4d = p4d_offset(pgd, addr);
 			/* the pgt_lock only for Xen */
-			pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
+			pgt_lock = &pgd_page_get_mm(ptdesc_page(ptdesc))->page_table_lock;
 			spin_lock(pgt_lock);
 
 			if (!p4d_none(*p4d_ref) && !p4d_none(*p4d))
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Wed May 27 14:04:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 14:04:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320497.1587820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErt-0007Zw-W3; Wed, 27 May 2026 14:04:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320497.1587820; Wed, 27 May 2026 14:04:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErt-0007Z5-Q5; Wed, 27 May 2026 14:04:21 +0000
Received: by outflank-mailman (input) for mailman id 1320497;
 Wed, 27 May 2026 14:04:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vishal.moola@gmail.com>) id 1wSErs-0007At-DA
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 14:04:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSErr-007NXm-PA
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 16:04:19 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9de-e002-0a2a0a5209dd-0a2a4509cc72-34
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:19 +0200
Received: from [209.85.221.42] (helo=mail-wr1-f42.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9e3-2497-0a2a45090019-d155dd2aa985-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:19 +0200
Received: by mail-wr1-f42.google.com with SMTP id
 ffacd0b85a97d-43d75312379so9981903f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 07:04:19 -0700 (PDT)
Received: from fedora (cpc92878-cmbg18-2-0-cust539.5-4.cable.virginm.net.
 [86.16.54.28]) by smtp.googlemail.com with ESMTPSA id
 ffacd0b85a97d-45edb558f52sm6693771f8f.14.2026.05.27.07.04.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 07:04:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779890659; x=1780495459; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fTSySM1IXuxmAttzVws8JAQ2H8JyG4d5fVSSFWyPJsM=;
        b=pwakVudxYbWD/QmHQfrY7ePZFtvyvtopk8zwpr7+wvTuTG1k+El3nRF0XKzHXC63r2
         avPmgrj9oABJA50aRyxiKQYTFqqTzTdGSKIPShZ9M2ai5spVjVvzukLH/qrkygomRQgf
         1VaXJ3DS7EKeGBaYk7EfcVXY2ZHoPd7+DTAl3bGPkP8dsUVz1ejJF4DRnSDIUwv+3ScM
         9k8jzqixkI4YWYbVEGmO9rZW5aKhH8Rhrl0jkm39QIfoYU07LQSfeFPsF1hWW78bIrzg
         Shi6SGcSdvy6UQ5Og11YPDHe/IQ2wxcPedZepbi9612QZRW4qA8N/qcg93wkGfOWoD0F
         6tcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779890659; x=1780495459;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=fTSySM1IXuxmAttzVws8JAQ2H8JyG4d5fVSSFWyPJsM=;
        b=Zg3fqUJW16fAdmVncB5a1mp6ajNo4g40yk/wiEZmG6q5WFL4xuoBDoKPxXNMlEOGFl
         EjZI/GeFyXVVPVRVQhu4N8VhYjWmUh9U5ySAUcTk7PO30P4aAGH7HhbhkyXKu5nUhiR3
         Tb3Z5r19v+l/E61B7v5mBWLQveW9mlzwq0QND4ZhACsYHCxDPhUrLAdkrUserJfSzHKX
         +pU9fU4A4dv+UlVoRj3AIDCLfR7Dxb1ZAFCtscJRcADOseIIoDWvUSFLIu2Wypp9c4Yg
         XPIKg8Cquba+oTOX94Gfj4ff7NeAWmdYwIM9ksS8wOEFMK9RXDBkDrD3gC6/FLYf0NU2
         M6gw==
X-Forwarded-Encrypted: i=1; AFNElJ9hCKMJju77rPXL7r5OeaFfMiJ/JSJZohK/K0oZHNL6k/5QIe17U02fJpRb5gu/ZoJOGXnCDdpKzyA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx43lD7kEf1d15sO+NDYhja5e9GK2sYWZ0QSuWLebZaNFEIjPtL
	XUHC0DhNRYNfh8Dj36IKVyi9T+J5la6CtvpBts7UDVaP1bah3l2jjZKp
X-Gm-Gg: Acq92OHMXT5lWLX1JNvYq8afzKQepRqTxucs8GNKCd9RpLR8ZmQe+k96LbPAjxgDcy6
	wosoyFyM0UyPquFfLlPYAb3S2qSb3I/vvxt6K+YzY8z/vOvFHKSCo7XtaYBPRVlHheUB0f9+7j6
	YNW+QYohz42A0sTudFLcCnVRYr9VvqpEC6FYALKiy0CD5vCprq4aKeJlWS1iqbnu5jfI39n342Y
	Q1+beJ/a/3fRvpMHshvL5XUXvl+E5I1sq5SGLRPxirKu7lgSRS0ZBeAANd1AZVfnCPA1p97S34n
	xWcVvzM2cofjP7GHn2xEm81vuVjwo6+QVLdN1C4vqka/RaqgUuiI8cQ9soDzTvDIBM6gKIlEGnA
	lHp+b4FXIV30c//MaEUPDaPStqbAxwjcYXhawTWxRkTot/F1BWy/4YAiTAqGUjD/3i6yBJni9/y
	y6dpWqWK5P1+l6BmQT795XCtYbK0HdKDdFJzNSZlz2RyMsDwy0z3ZXkGMZ2WEaXKy5GY7IwcLKM
	a8Sm3icesCXzwrbAi2p12b3IsFa/G9Waw==
X-Received: by 2002:a05:6000:2992:10b0:45e:daa9:f34c with SMTP id ffacd0b85a97d-45edaa9f405mr5335873f8f.26.1779890658948;
        Wed, 27 May 2026 07:04:18 -0700 (PDT)
From: Vishal Moola <vishal.moola@gmail.com>
To: Dave Hansen <dave.hansen@intel.com>,
	linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Mike Rapoport <rppt@kernel.org>,
	Lu Baolu <baolu.lu@linux.intel.com>,
	xen-devel@lists.xenproject.org,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Vishal Moola <vishal.moola@gmail.com>
Subject: [PATCH 7/9] x86/mm: Convert pgd_page_get_mm() to ptdescs
Date: Wed, 27 May 2026 15:03:14 +0100
Message-ID: <20260527140316.294621-8-vishal.moola@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260527140316.294621-1-vishal.moola@gmail.com>
References: <20260527140316.294621-1-vishal.moola@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779890659-8B193A53-29D2D9B8/0/0
X-purgate-type: clean
X-purgate-size: 3613

Convert pgd_page_get_mm() to ptdescs. Define struct ptdesc in our
pgtable_types so that our declarations recognize ptdesc as an
appropriate page table type.

Now that all callers are using ptdescs, we can pass in that
ptdesc to get the underlying mm_struct.

Signed-off-by: Vishal Moola <vishal.moola@gmail.com>
---
 arch/x86/include/asm/pgtable.h       | 2 +-
 arch/x86/include/asm/pgtable_types.h | 2 +-
 arch/x86/mm/fault.c                  | 2 +-
 arch/x86/mm/init_64.c                | 4 ++--
 arch/x86/mm/pgtable.c                | 4 ++--
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index 2187e9cfcefa..20e8a6ddd2df 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -50,7 +50,7 @@ void ptdump_walk_user_pgd_level_checkwx(void);
 extern spinlock_t pgd_lock;
 extern struct list_head pgd_list;
 
-extern struct mm_struct *pgd_page_get_mm(struct page *page);
+struct mm_struct *pgd_page_get_mm(struct ptdesc *pt);
 
 extern pmdval_t early_pmd_flags;
 
diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
index 2ec250ba467e..95c7f453db17 100644
--- a/arch/x86/include/asm/pgtable_types.h
+++ b/arch/x86/include/asm/pgtable_types.h
@@ -512,7 +512,7 @@ static inline pgprot_t pgprot_large_2_4k(pgprot_t pgprot)
 	return __pgprot(protval_large_2_4k(pgprot_val(pgprot)));
 }
 
-
+struct ptdesc;
 typedef struct page *pgtable_t;
 
 extern pteval_t __supported_pte_mask;
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 6c72d6668416..4d78c78a0bcc 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -276,7 +276,7 @@ void arch_sync_kernel_mappings(unsigned long start, unsigned long end)
 			spinlock_t *pgt_lock;
 
 			/* the pgt_lock only for Xen */
-			pgt_lock = &pgd_page_get_mm(ptdesc_page(ptdesc))->page_table_lock;
+			pgt_lock = &pgd_page_get_mm(ptdesc)->page_table_lock;
 
 			spin_lock(pgt_lock);
 			vmalloc_sync_one(ptdesc_address(ptdesc), addr);
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index a6ccb83f2d26..a49be75dd713 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -152,7 +152,7 @@ static void sync_global_pgds_l5(unsigned long start, unsigned long end)
 
 			pgd = (pgd_t *)ptdesc_address(ptdesc) + pgd_index(addr);
 			/* the pgt_lock only for Xen */
-			pgt_lock = &pgd_page_get_mm(ptdesc_page(ptdesc))->page_table_lock;
+			pgt_lock = &pgd_page_get_mm(ptdesc)->page_table_lock;
 			spin_lock(pgt_lock);
 
 			if (!pgd_none(*pgd_ref) && !pgd_none(*pgd))
@@ -195,7 +195,7 @@ static void sync_global_pgds_l4(unsigned long start, unsigned long end)
 			pgd = (pgd_t *)ptdesc_address(ptdesc) + pgd_index(addr);
 			p4d = p4d_offset(pgd, addr);
 			/* the pgt_lock only for Xen */
-			pgt_lock = &pgd_page_get_mm(ptdesc_page(ptdesc))->page_table_lock;
+			pgt_lock = &pgd_page_get_mm(ptdesc)->page_table_lock;
 			spin_lock(pgt_lock);
 
 			if (!p4d_none(*p4d_ref) && !p4d_none(*p4d))
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index da7f0a03cf90..070e3d310eca 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -74,9 +74,9 @@ static void pgd_set_mm(pgd_t *pgd, struct mm_struct *mm)
 	virt_to_ptdesc(pgd)->pt_mm = mm;
 }
 
-struct mm_struct *pgd_page_get_mm(struct page *page)
+struct mm_struct *pgd_page_get_mm(struct ptdesc *pt)
 {
-	return page_ptdesc(page)->pt_mm;
+	return pt->pt_mm;
 }
 
 static void pgd_ctor(struct mm_struct *mm, pgd_t *pgd)
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Wed May 27 14:04:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 14:04:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320498.1587828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErv-0007rD-G7; Wed, 27 May 2026 14:04:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320498.1587828; Wed, 27 May 2026 14:04:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErv-0007qi-8S; Wed, 27 May 2026 14:04:23 +0000
Received: by outflank-mailman (input) for mailman id 1320498;
 Wed, 27 May 2026 14:04:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vishal.moola@gmail.com>) id 1wSEru-0007et-FG
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 14:04:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSErt-007Nbf-RE
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 16:04:21 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9e1-5cb7-0a2a0a5109dd-0a2a4505b586-22
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:21 +0200
Received: from [209.85.221.45] (helo=mail-wr1-f45.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9e5-aaa8-0a2a45050019-d155dd2df0c9-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:21 +0200
Received: by mail-wr1-f45.google.com with SMTP id
 ffacd0b85a97d-43d73422431so8369225f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 07:04:21 -0700 (PDT)
Received: from fedora (cpc92878-cmbg18-2-0-cust539.5-4.cable.virginm.net.
 [86.16.54.28]) by smtp.googlemail.com with ESMTPSA id
 ffacd0b85a97d-45edb558f52sm6693771f8f.14.2026.05.27.07.04.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 07:04:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779890661; x=1780495461; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6e5970dOoz9fKbdnw0tfYlfryhDGT/Rrpa19h5wLuiY=;
        b=eOBXwpVKkQA6Qc7ODOHDcfb/EGJxy3BAd9s5rCGxTbpGXPy8v76xWd0K2evdCldGlJ
         SkBE27kG4zob2SuJaequ/2svxHS12Kq2uTnQmt5k9ZNV6l7r4cXfkbAz8a8rljvP/LSl
         vVqaWDt0gxSn/Mx/3CfFkx4mseAqbKG35Ee3J6cIgp7OLQVNHgkNH4JOg9LE0FdaGbpS
         veZ59/XDevlZgeE22hjUdufQAziMUQXsb36+NDIFTLGW0AfdaXRumxidpSZmPon0r1i9
         2RD+xfh3TbzjeckE34pYvURPsUvJeOrqNnWwIGWMjeIxg6tK8Sl+dl9tlqLjqe4YIY79
         HyhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779890661; x=1780495461;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=6e5970dOoz9fKbdnw0tfYlfryhDGT/Rrpa19h5wLuiY=;
        b=OLEnpBX04UKr7UGCyGxA1X92MlX22dFoJn2eigRgHhxhHWkFSQkiGcRUz0ZcRhOzOK
         Whdk8bYH3leZBZ+tJ3P2IPc/Hn0oGCkvqOFIDnW1kWErFePduXwNPNoysxOzjhMO9T8v
         tGMwlDayXjDYh8m6iokjPB9gQWwRkFWy7nqBbEKSIi6T+VBS6FIJwy9CI7+0/6mLZsdt
         ND72n2yWe9dQX7Xe8F7NsMZJD20NVgwh6oMl5PsGIQK6cXEQDGye/Bkg4ffjxpk/oLhj
         ltynvwlIeaMP007teNQ+QIRf50ad1OU9sed2KlHERkX/RQVyzX8O512oIu66/emBHG2F
         WOHA==
X-Forwarded-Encrypted: i=1; AFNElJ8B/YxhRhIvs/YKpDHM1oGr2jiD46zWSGkWPK23TQnssUqKSHBDdhPtncV2nVYqd/GPwKMcHCEx1w8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyDDJrljLQOZ+T/4D5PVsggkREYk1iiGyh3kplzhBTjXj7sMYVf
	hGhO3EfUwawPk4GfaT+uliuUVH5ZGTaAgJojcHDke8DjNQIuXY5IYFVA
X-Gm-Gg: Acq92OErchV7slpIOlV3rD7HrSpKOcEUZsw8e1ThN9WatIASNIJfm1CC4Ns/sW5ulke
	ZdIwGFH23F/YrQxV0H/kXxu7gJAOX3y79Hvj9NW8HHgPwJBwXw98tdsGI+jXEGN8tqYF+XW16bJ
	9SOeToDkvFYBqmY4T6fP1fqDS1wXYy/mW42tUBn3YpJ3LenXH5nKfEJSA4McUPYEll5a+ys2m+H
	DD/7BhKl8g4iW/aFHHPQjjX0Le5ED2N9cpuEsYwJFIMbp4tVXD21SBpSW6gCQD0HeRicQWfeMol
	YWBD946paUDtUH7tndnqwRoiYj+GfhNp2+QFFzsNdWRjMpZ6L4q/HfzMck6BEjnh8aaEaotaj/c
	n4z+ySfQujVH/m8Le50G7h+6nfdOEZeX9Oqtfc7q3bksUR2PEXFRr/DCv0bcn0bbsdXH3x3DD0U
	aWyrxPs5ZgbdHAGA7dqtOBRzmGyUVQaNgXSoCxU7x0HGuPzq+7Gp8/AvU7Q5pRCw969Xxg1abPG
	dyVuzvgfUVFLJlH9JaneB1Jw+W7mrlPSw==
X-Received: by 2002:a05:6000:4707:b0:45e:75c5:1a6a with SMTP id ffacd0b85a97d-45eb38bcb3fmr37810576f8f.33.1779890660721;
        Wed, 27 May 2026 07:04:20 -0700 (PDT)
From: Vishal Moola <vishal.moola@gmail.com>
To: Dave Hansen <dave.hansen@intel.com>,
	linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Mike Rapoport <rppt@kernel.org>,
	Lu Baolu <baolu.lu@linux.intel.com>,
	xen-devel@lists.xenproject.org,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Vishal Moola <vishal.moola@gmail.com>
Subject: [PATCH 8/9] x86/xen: Convert xen_mm_pin_all() to ptdescs
Date: Wed, 27 May 2026 15:03:15 +0100
Message-ID: <20260527140316.294621-9-vishal.moola@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260527140316.294621-1-vishal.moola@gmail.com>
References: <20260527140316.294621-1-vishal.moola@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1779890661-E338A443-E4976255/0/0
X-purgate-type: clean
X-purgate-size: 1161

Convert xen_mm_pin_all() to ptdescs in preparation for the eventual
splitting of ptdescs from struct page. Continue checking PagePinned
through the underlying page as we do not have a per-memdesc api for
page flags yet.

Signed-off-by: Vishal Moola <vishal.moola@gmail.com>
---
 arch/x86/xen/mmu_pv.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index 3eee5f84f8a7..b2f6e7b7c545 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -828,15 +828,15 @@ static void xen_pgd_pin(struct mm_struct *mm)
  */
 void xen_mm_pin_all(void)
 {
-	struct page *page;
+	struct ptdesc *ptdesc;
 
 	spin_lock(&init_mm.page_table_lock);
 	spin_lock(&pgd_lock);
 
-	list_for_each_entry(page, &pgd_list, lru) {
-		if (!PagePinned(page)) {
-			__xen_pgd_pin(&init_mm, (pgd_t *)page_address(page));
-			SetPageSavePinned(page);
+	list_for_each_entry(ptdesc, &pgd_list, pt_list) {
+		if (!PagePinned(ptdesc_page(ptdesc))) {
+			__xen_pgd_pin(&init_mm, (pgd_t *)ptdesc_address(ptdesc));
+			SetPageSavePinned(ptdesc_page(ptdesc));
 		}
 	}
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Wed May 27 14:04:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 14:04:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320502.1587837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErx-0008Au-Os; Wed, 27 May 2026 14:04:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320502.1587837; Wed, 27 May 2026 14:04:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSErx-0008AZ-Ik; Wed, 27 May 2026 14:04:25 +0000
Received: by outflank-mailman (input) for mailman id 1320502;
 Wed, 27 May 2026 14:04:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vishal.moola@gmail.com>) id 1wSErv-0007sq-QI
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 14:04:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSErv-007NdR-6K
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 16:04:23 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9dc-e002-0a2a0a5209dd-0a2a450c88dc-38
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:23 +0200
Received: from [209.85.208.54] (helo=mail-ed1-f54.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <vishal.moola@gmail.com>)
 id 6a16f9e7-62f1-0a2a450c0019-d155d036a8e9-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:04:23 +0200
Received: by mail-ed1-f54.google.com with SMTP id
 4fb4d7f45d1cf-6763cc8775cso21320353a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 07:04:23 -0700 (PDT)
Received: from fedora (cpc92878-cmbg18-2-0-cust539.5-4.cable.virginm.net.
 [86.16.54.28]) by smtp.googlemail.com with ESMTPSA id
 ffacd0b85a97d-45edb558f52sm6693771f8f.14.2026.05.27.07.04.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 07:04:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779890663; x=1780495463; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+w3iXXiIbm9QTHlEZJbBBJGqtECrTHGYD283Ga9Jpbg=;
        b=YmyPSQ5i0BXsib6nWDazrCHeehNDs2D1TpJNan3aOGelNR7gFYTmT8e/VZ4JV3ohKZ
         kaBurS6R8vdPh7lBmfLdHtPCp/fgKw4eLkerawuy+SH6sd6PmIFJvn77JeE2sVD/ItXc
         kPE0Fik86ukgYQnM/lgPr+HSudmiZI+BICZX3v3GGes35cg/+2Lp2cPJcZtRh/HwZZto
         nvmpxhE0sDsc3C/xYp1sdEWdg0IBKu7+/y+qhjPgRraprGoh8+XCL/otzaTdxTzIrarg
         Qw1TzxHM4LDfH5Dxe4SOedTvgW/XXCsTVxGdv8t1CPokZC6/ZvnyZkRdgPeOpGkI02bg
         KAQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779890663; x=1780495463;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=+w3iXXiIbm9QTHlEZJbBBJGqtECrTHGYD283Ga9Jpbg=;
        b=qnio1+My1y2w2om07CP91KFlvZbFmgMHkcQAH1p4psdgyDYewkDA4+J6lBDcRLA8zy
         KgfMGfU81/tnhICTTWaKACwynHrIkCA6inz9AhCDGB0UsW8e0da0H4fnjvoCgIPrqeYc
         QYqQ+P4Yc1OjQPnlwj/iROTkkTBSHXWkoD+qudnHyCr8er8U5VPIUL/reBcf8P9KTnEK
         nuP6XSa7XIq1aOMcA1vBizDQ3KZ/WgSE8A6Rv5xdMa56E/k2fXl3Jd725aZH/VhBHOpb
         pXgwKvFrrrUEr3zwiPlsUO9MUzu/dRsl1XDkztABfpmC6gSmM7ZMVhCMRWdjC8rIAbKi
         tEfQ==
X-Forwarded-Encrypted: i=1; AFNElJ+ukhsyHL0zckK+nCDMTz8uH9c3ou3E5V0VoHuoIYNKrKB6mBpmOcITXo4pQJ14NjZYqSl2rjO1LjI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQcSW9I2OOEiR7hE1imzKHOF+XRtex/pzaExRYwLbP9W/e5mnk
	AQMn0BKhq2BBk7N5u7Zu2uWTdlRwNv5na6yiTw+FLk9pzVfZKZ1UmmBO
X-Gm-Gg: Acq92OE4nUMQ8xe2v2Gq7WH6KfXcBMBZhsafSXMJ5hI4DvJIfZqXND83oWEvv+Na78k
	kbahSXb++Qg+p4lxPWf+X7GhcDZKUHK4LSpCzuhgysM9JDt1QJfKu5cQz0tcrHJgcFZUuo3wSYr
	6WWqAOS/s8Ov6BxRiaQGkT3N8flENSIhNGKgIEFBdIiBpXfLDSqmbG2x5WjU+zStZT6mWdMaW6E
	JsDUBVPt5Yjh1sZwKE7aHMvHA7DyRXFeu29KD2XUTKcLodDt9IFGzJI2oIfGkuvtrSkbDv/0csx
	3p6aXt5idq0IWtabqNsaZeWrxoFPHjAfzKErxGMC4BXpoMDEkPssNxIBKdU/W3w6dHy/62hofJl
	D1WDsSKbUYPLNQpFz3pY+roKQ6cSPzfa/X0UMOhwtZLW3GReq27cl4wEmuKKQftBLyLI++StHpg
	JImaUFh73OhM/1Dmf4DvRTUF3fKjjSOHjm5CZcTiLPvGnZe7GUW4HnjuyJhx1kmliKWbRLwscZF
	Oyez8QsQtSioLqG8+fzudW775uogWaOrie8pVyGy0qc
X-Received: by 2002:a17:907:970e:b0:bd8:f7f0:d740 with SMTP id a640c23a62f3a-bdbfcbcc4efmr1446753266b.0.1779890662461;
        Wed, 27 May 2026 07:04:22 -0700 (PDT)
From: Vishal Moola <vishal.moola@gmail.com>
To: Dave Hansen <dave.hansen@intel.com>,
	linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Mike Rapoport <rppt@kernel.org>,
	Lu Baolu <baolu.lu@linux.intel.com>,
	xen-devel@lists.xenproject.org,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Vishal Moola <vishal.moola@gmail.com>
Subject: [PATCH 9/9] x86/xen: Convert xen_mm_unpin_all() to ptdescs
Date: Wed, 27 May 2026 15:03:16 +0100
Message-ID: <20260527140316.294621-10-vishal.moola@gmail.com>
X-Mailer: git-send-email 2.54.0
In-Reply-To: <20260527140316.294621-1-vishal.moola@gmail.com>
References: <20260527140316.294621-1-vishal.moola@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1779890663-E397DCF5-961EF6F7/0/0
X-purgate-type: clean
X-purgate-size: 1246

Convert xen_mm_unpin_all() to ptdescs in preparation for the eventual
splitting of ptdescs from struct page. Continue checking PagePinned
through the underlying page as we do not have a per-memdesc api yet.

Signed-off-by: Vishal Moola <vishal.moola@gmail.com>
---
 arch/x86/xen/mmu_pv.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index b2f6e7b7c545..c4731c1e842d 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -939,16 +939,16 @@ static void xen_pgd_unpin(struct mm_struct *mm)
  */
 void xen_mm_unpin_all(void)
 {
-	struct page *page;
+	struct ptdesc *ptdesc;
 
 	spin_lock(&init_mm.page_table_lock);
 	spin_lock(&pgd_lock);
 
-	list_for_each_entry(page, &pgd_list, lru) {
-		if (PageSavePinned(page)) {
-			BUG_ON(!PagePinned(page));
-			__xen_pgd_unpin(&init_mm, (pgd_t *)page_address(page));
-			ClearPageSavePinned(page);
+	list_for_each_entry(ptdesc, &pgd_list, pt_list) {
+		if (PageSavePinned(ptdesc_page(ptdesc))) {
+			BUG_ON(!PagePinned(ptdesc_page(ptdesc)));
+			__xen_pgd_unpin(&init_mm, (pgd_t *)ptdesc_address(ptdesc));
+			ClearPageSavePinned(ptdesc_page(ptdesc));
 		}
 	}
 
-- 
2.54.0



From xen-devel-bounces@lists.xenproject.org Wed May 27 14:14:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 14:14:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320570.1587850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSF1v-00040v-La; Wed, 27 May 2026 14:14:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320570.1587850; Wed, 27 May 2026 14:14:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSF1v-00040o-If; Wed, 27 May 2026 14:14:43 +0000
Received: by outflank-mailman (input) for mailman id 1320570;
 Wed, 27 May 2026 14:14:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Jason.Andryuk@amd.com>) id 1wSF1u-00040i-4k
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 14:14:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSF1t-00GZHV-HB
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 16:14:41 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 6a16fc3a-2eae-0a2a0a5409dd-0a2a4508e8e6-40
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:14:41 +0200
Received: from [52.101.48.56]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 6a16fc4f-63b5-0a2a45080019-3465303889a2-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:14:40 +0200
Received: from BYAPR21CA0029.namprd21.prod.outlook.com (2603:10b6:a03:114::39)
 by MN6PR12MB8472.namprd12.prod.outlook.com (2603:10b6:208:46c::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Wed, 27 May
 2026 14:14:31 +0000
Received: from SJ1PEPF00002324.namprd03.prod.outlook.com
 (2603:10b6:a03:114:cafe::23) by BYAPR21CA0029.outlook.office365.com
 (2603:10b6:a03:114::39) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.4 via Frontend Transport; Wed, 27
 May 2026 14:14:30 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ1PEPF00002324.mail.protection.outlook.com (10.167.242.87) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.7 via Frontend Transport; Wed, 27 May 2026 14:14:30 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 27 May
 2026 09:14:29 -0500
Received: from [172.31.156.136] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 27 May 2026 09:14:29 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uWYclCbgnES2Ko9fRmvDo62iGnaf7jfT6H6jktxauxZKadP9YW7zgyVPV8Hma/wWf0UUij1hRMfLtSQWi2KOK40d2cSf171ypP+fq05X0Qh9mkfEzWUj29at4gSxpyipW5YP06lyZpoTbCQvTn84vbuJ0rOr4NhIErozpgquhHKqvVhvNS/Nu6e7t7zR0wRAdk32Ex8L9gAgYpAvAbUT7TDxB8BPVrC9r9P/Yy+iiCNHHsQAt6834Gj5UHgnJbMm5vgxWThB8teLbJNcTmTozl7/NXPrCXxAVzgUeP06OOnnHhPKcP6/i3WOYXFQSLgOUPuFWBe70EOxwc2y6ez2og==
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=MuFhUof84GP/1a8JT8QuET5mRZd6DQe5yo+wRAnKNSE=;
 b=JODORFG9g4pwbAJ7S4F9MDGAmJA2d7cUwRs+MCkUiGT0usSKpt4mk2SJX8msmVR3h51kNluv+NqcxcnqidhWiEy4NPHmg81Jj6VFHp3cthgePBtzlGpciZk/RpDYReUVVY/lmwfOZUW9eoqrMwqrnPm7evIyIwwg0Z/3wI8K6U9Psdb0vs3aKrOH1gTF342TMRESzWl59AUrLDFvw/BdpsDCW13oyy43lQ6eUqvxbG1YaZ7e1nx+Fm9FgOCBoZWlti71fA7y3MUtbm5/ONoKWuxUfRSu3pW9bDW9wjqAbAY8aWa5oPLGDhGShyqZ6knG3C/PCeWmcBku3nutnZ97Og==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MuFhUof84GP/1a8JT8QuET5mRZd6DQe5yo+wRAnKNSE=;
 b=GkF7fQ67BpDjEjyPcaKCI9HgdUX8/hddrJkCcu0emTVUCmS+Y0jgVh0Oq/L1aDKJl3vPEfzb2JUYEdYFScySyVnM5HHAr/WOrJGc/1UB7H+FkYx8RyxoeU/P73eHnOXSU6K5qKChauO7szNAeHiHrZevOc5m6SR1iIyH0rx2iHI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <b3e58f3a-ec2a-4a91-a947-9900c00715ee@amd.com>
Date: Wed, 27 May 2026 10:14:23 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: Change stub page freeing to fix smt=0
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	<xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
References: <20260526203114.40882-1-jason.andryuk@amd.com>
 <7a0f7653-a299-4ead-af6c-944b8ffbb73d@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <7a0f7653-a299-4ead-af6c-944b8ffbb73d@citrix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002324:EE_|MN6PR12MB8472:EE_
X-MS-Office365-Filtering-Correlation-Id: a424e0bf-a82f-4333-6181-08debbfa44d2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|1800799024|376014|82310400026|4143699003|56012099006|11063799006|22082099003|18002099003|6133799003|3023799007;
X-Microsoft-Antispam-Message-Info:
	waLhSXxpSHwpAAhkPCGSF8+tR2z2dqMXJBUGMIU5th3aHL0Ng3tJicHq2knAnUvT90xrl5TnIV+Vih/NlguOAUo1JzfbMF/7tqZD34zh7H4g92jlO9UXmSfeoXYe1NyJseNe0kClYywWORjV8LRfClmVx3Sre2cvgjfv6GqqbpYVJEOj3MXAEO5TmPCI9VyBgHqw6+/hEXreHMC7RhrOd/vNOJS6FwRgDfvG3T7Z38sEAYQRetZ2hwBwncO5i44aa3e3ZBMXvTnd2rb9EPl3Z/5JwfID8mL7OsZLVlKyLO2w3CcW3liUbmE0yYcNX3p2yrJWecdDfJovkHOniWEmq28DC/E133NQ57MMLik38lFnkBWYT0bqdp0Hmdq4Y3z6BR/OkUFu5PP4Y8fVtUHObsiNBFyUFBDmicb99TmMpm4n5Hkn4/t7g25KSqPisaBViBlpVm0kk+jCOxrRxGHVMvCrOb2Wdu7IaRbiP+of62f8GPTuw/t01hZmK59a9z9DJoq5l5Y0jn33XSNoR/gB+s6CqVqnLUJ+G8EO0wW5RHQYLasTp8lu6ZSbjRZRJggJqKaR3ffNOHnl/vWNS3a60NyHG2KyUDMrgV+kXPhCjfR0/YiXQTZh6N+7M4ionDEFhLyRe7jvitaIkXcSKuzv+Y2G5X8ipATTN1ynDeisYuMi7t4JlR6nLAStmzYOZUgSANws5+vTpqIkDXeL+mKea9YR9rfxcqdWqAIto3nOT1s=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(376014)(82310400026)(4143699003)(56012099006)(11063799006)(22082099003)(18002099003)(6133799003)(3023799007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	CLZdttmxKNVDR45KOMIhpu+KAj67yu1aKyDJAxI/plDtKUmP8hWzT09MexgkxTR3o2xwViCo706S1pcN1q8Rb5YHYaINMWarb/xTYdIKzOvuk5Qtid6knCvtplz7jkaw++aIp5F4pHaW8KTvfT2eGhF7H6a6PN1kuUevFzEs1CFacwR/a7oc9l9oqEmJYy/2T+McADZvX6W89cOlYi12rJKFuFcCItGIIJ4T8ftKrZ5OFQUQCJWlH0fbcvIhvsyeL3kNF41Liujng0uvukiEhIRU30JCMesUFR61c3OS2jD3TB/kFoIMGu7RzqYHJ2g4Id8awiUfvFZY1Fe/NMd7y5PJiHVOB0nwX6O9PzOv+vkv8PQ6QKKO1NUbUgQ9831my6/2ZC00dV1IK5n4R8p1JJPZIcaTIkkbm/LXevsE6FXk/302Su1+bcF5IMnOlLax
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 14:14:30.3040
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a424e0bf-a82f-4333-6181-08debbfa44d2
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002324.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR12MB8472
X-purgate-ID: tlsNG-c1860d/1779891281-BED73DB1-31A7EC3F/0/0
X-purgate-type: clean
X-purgate-size: 4784

On 2026-05-26 18:03, Andrew Cooper wrote:
> On 26/05/2026 9:31 pm, Jason Andryuk wrote:
>> A single stubs page is initialized with 0xcc and re-used, with multiple
>> CPUs each using a portion of the shared page.  In cpu_smpboot_free(),
>> each stubs area is checked against 0xcc.  When all are set to 0xcc, the
>> page is freed.
>>
>> Booting a system with smt=0, CPU0 is initially setup, allocating the
>> stubs page and initializing to 0xcc.  When more CPUs are brought up,
>> CPU1 is initialized and then immediately brough offline as it is the
>> sibling of CPU0.  Since the page was initially memset with 0xcc,
>> cpu_smpboot_free() finds all stubs as 0xcc and frees the page.
>> However, the page is still assigned to CPU0 and continues to be assigned
>> to other CPUs.
> 
> It's more complicated than this.
> 
> With CONFIG_PV (and !opt_fred in 4.22 which is perhaps newer than you're
> testing), the LSTAR and CSTAR stubs guarantee that the 0xcc's are
> overwritten with real instructions.
> 
> In !CONFIG_PV, the 0xcc's only get overwritten by the exception recovery
> selftests (CPU0 only, and gated on CONFIG_SELF_TESTS), and "complicated"
> instructions in the emulator (which in your safety environment, you
> likely have compiled out).
> 
> So, in your environment, I think you probably can exclude the stubs
> entirely and trim even more LoC.

Thanks.  Ok, my build was !CONFIG_PV, so 0xcc's were not overwritten. 
The fault happened before the self tests ran.

>>
>> Meanwhile the page can be reallocated, which can lead to misbehavior.
>> The particular instance was the stubs page re-used as a page table which
>> later faulted when the entry was all 0xcc.
>>
>> Change to initializing the page as 0xd6/STUB_BUF_FREE, and initializing
>> individual stubs as 0xcc/STUB_BUF_USED.  0xd6 now indicates unused, and
>> 0xcc indicates used/assigned.  When freeing a CPU, the stub is set to
>> 0xd6, and the page is freed if all stubs are 0xd6.  Initializing with
>> STUB_BUF_FREE lets cpu_smpboot_free() a page that was only ever
>> partially used.
>>
>> 0xd6/UDB is a 1 byte invalid opcode, which is similar to the existing
>> use of 0xcc.  0xd6 is used to identify bug frames, but the stub addr
>> (e.g. 0xffff82d07fffe000) fails the is_active_kernel_text() check.  It
>> should be okay to use here.
>>
>> Fixes: 7a66ac8d1633 ("x86: move syscall trampolines off the stack")
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> ---
>> It would be nice to use get_page()/put_page() to let count_info handle
>> reference counting, but they require an owning domain.
>>
>> The listed Fixes introduced the use of 0xcc, but the smt commit may have
>> made it more problematic.
>> Fixes: d8f974f1a646 ("x86: command line option to avoid use of secondary hyper-threads")
> 
> Honestly, I dislike all of this "try to free data for going-offline
> CPUs".  It is both complex and a non-stop source of bugs for tantamount
> to 0 benefit.
> 
> On x86, we must boot all CPUs we find in the MADT.  You're seeing this
> behaviour already.  This is because if an #MC hits any group of CPUs
> where any CR4.MCE=0, it's an instant reset.
> 
> For this reason, firmware doesn't hand APs over to the OS in the
> Wait-for-SIPI state (which resets CR4 to 0); they're in MWAIT or IO-wait
> typically these days, using firmware provided stacks.  But firmware
> cannot handle an #MC intended for the OS, so the OS must set up stacks
> and at least an NMI and #MC handler even for those CPUs not wanting to run.
> 
> This what park_offline_cpus is trying to do, and while it's set for
> Intel and clear for AMD, I'm pretty sure this is a bug on AMD because
> you can still get MCEs with core-scope groups.
> 
> 
> Beyond that,  smt=0 is an emergency bodge for speculation safety, which
> is always better done by changing SMT settings in the firmware.

I was asked to check something with SMT disabled, and I could not find 
SMT in my firmware.  I looked for a while without success, and then set 
smt=0 :/

> xen-hptool is useful for testing but it's not a thing anyone uses in a
> production system.
> 
> ACPI CPU hot-add does exist in virtual environments, but hot-remove is
> theoretical at best.  I've not seen any evidence of ACPI hotplug
> actually working on Xen, and I think the chances that it does are slim;
> it requires AML execution, and is right in the middle of the split-brain
> problem with physical vs virtual details that dom0 suffers.
> 
> 
> So, lets just allocate the stubs and "leak" them in testing scenarios.
> It removes bugs and removes code, and has no effect on well-configured
> systems (where cpu offline is not used in practice).

Ok.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Wed May 27 14:34:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 14:34:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320582.1587858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSFKs-0007dp-5e; Wed, 27 May 2026 14:34:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320582.1587858; Wed, 27 May 2026 14:34:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSFKs-0007di-33; Wed, 27 May 2026 14:34:18 +0000
Received: by outflank-mailman (input) for mailman id 1320582;
 Wed, 27 May 2026 14:34:16 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1wSFKq-0007dc-ID
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 14:34:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSFKp-005MpM-KX
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 16:34:15 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a1700d3-2eae-0a2a0a5409dd-0a2a450ab5b0-34
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:34:15 +0200
Received: from [40.93.194.27]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a1700e5-56b3-0a2a450a0019-285dc21bca18-4
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:34:15 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by IA3PR03MB8021.namprd03.prod.outlook.com (2603:10b6:208:502::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Wed, 27 May
 2026 14:34:08 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.21.0071.011; Wed, 27 May 2026
 14:34:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jbThJ/OfMKL1NYAKBsQ8tRRhgH+VnFAwUVEYdH1vf9jpxwIPpkpKf86wlf6HfbsQ4e26lhosGYvXegbc5yZs0PPinakHbyqZJhhndaHbhII60H7CYyHzKwcCyaUMxIfaeywtWHnIRGaL8wNVS4cZohUilrcDnV3FXZWj+Uepa6kdKDj1XgJxUkkjnYXR61mPKXK8seTWIYwmcX8unpihyuulJ4VvogeUCL5t7ZCM8tToWwZcM8wlQrKZDL7csRgARdGONpVG2V/LutqzLbp93AJwu3wJXdZMb+GTvIXQPZy2ztZCjSFzWnVuYx75+JD8zmv6mEnAowAnwVM4snWsIg==
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=H9L2Mu1KrNMAjehP1E37RfcDrG3fxTSBlXRii7MMts4=;
 b=lU8HHWSivaHcO/0+wW3nRTLF3j0eX0R7VK2NJ7C+R1T3w+8DNmcThxiXnmyckqMR+Le2Hxu0lsIIZz/T7Ol7CXHrBebKRFGCKCTdAwrdXzAIAiq5EhDcUkfz0FBdjBKZg5zoD9NG7t/W66/ShXkY0nX2ZBKzIF1oG0WAtpazqRkEWSjsYdWMA6+1rtjeP619nk9NY19x5VZPN3eNoYbh5DEosTI6Q+HJGId54CjrHlSQnfSSljSHMy7F9jNtli1rJ97Vd1CMg62exeACTx6XwJ2s+6fz33yv3Wr5z2Qvxe9IhbRiv/CZuNmesT7r+MGBCUqkQKodvbcjmpCOoPGXkg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=H9L2Mu1KrNMAjehP1E37RfcDrG3fxTSBlXRii7MMts4=;
 b=A5xJZK7YqdOrDoq1/gXRjZ+dabtiFt/+I5KweoSR0TtOY0A8rhY8kLeeb19zRtnUTBY6agpJEPac7j+h4ZfA/NhBJlQbRBW8k+XmZOnC4H1uDTGi3SiQ/MSjBYtNJFn99mgeVfHK8GQteqy6a1ZEMPPv7qaoskNNlgpdmO9S2n4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 27 May 2026 16:34:04 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>,
	Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
	Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] vPCI: resolve MISRA R10.1 boolean arithmetic type
 violation
Message-ID: <ahcA3EbeHu2ErSrs@macbook.local>
References: <e23266191a366abe66d8104783d97578aa8734a4.1779428826.git.dmytro_prokopchuk1@epam.com>
 <984c91b8-3d2c-4431-bdf1-4a333ac341d1@suse.com>
 <alpine.DEB.2.22.394.2605261508390.182011@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2605261508390.182011@ubuntu-linux-20-04-desktop>
X-ClientProxiedBy: MA3P292CA0052.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::8) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|IA3PR03MB8021:EE_
X-MS-Office365-Filtering-Correlation-Id: 9585a6c3-56f8-4301-55f7-08debbfd027e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|56012099006|4143699003|11063799006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	wvo+pMMQaMvMs6yaWJJJWWUW5ofDijYfgH69jyfyplr3LfO8CbRtU5MQnILiySRnB4dRE9zvHDa5XrS9Hs1Xnf11gR8CQAwjOCJnlIeG/UwSY78KY3DqJW7S5FAhJ17fPmeFdsI5VImgEVnaMt3cl06T7DS083VDIedaClFk0+E8Djm8dVjRwRgGA62K08HDnjqbCJ3DzK3QHruqKHDmQCLS26AUzQytAHGoFIDIGP5ZJlMbXz6oGlGYycZWTXyRyjA/Q6sD6UgU+Noa3KAhf5MT7I2BjTD4HwChfIIOVX1kGdfaz3NLkJXunZpfOw2n3lTCony1eCwfqK+Ygez0bLmvQ4ImgFmOYxVo8wBzI+TMnV7rRbtlN6uszShHhW0311zfdBGnfYqVmUxgpEUAqu6TZwiBuxRdwWBIYS1YR3+E2Ipj7gh5UbFPhZZEX97mjLjLWstICw1s8RodzEn50zEYL8bB5X/vVpR12zcVl8nXJ/FnQKD2oCXboK5wb+wPBV7L4QzgFcuEjcH/zYfHK3lFBNAwIWTQOBk/ZU6CAQQZAsAAWlI92TxLwRQwFLADwHDTxwM7ya5AUXo32wxyNPjRrxjTAjFHlY94yJBDEjjWJt95CfWaOvLEz/EjAItkmAexQbQdq6fVVrC2PdnFdDYFdKT4abQ6WIFmRfO1cuotEmouEpIm4kt4VSVnNlBe
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(56012099006)(4143699003)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VjlOdENFaWtGWWhtY05qbDF1eS9JU2pHM25CdTQzN3Y0eHlrZzYzcWJRbm5m?=
 =?utf-8?B?RGdzeVZ1Tmt0N2JmUkhNNXBRTkE0OWVxblNaZmQyYVI0L0NNYW5LRHhqOWM0?=
 =?utf-8?B?WWhGVDJ3eTEwRjJWVHdSLzZ4Vi9sRlJON05UazBwN0dmV1pvd2Fjd1FaTVhH?=
 =?utf-8?B?YmJSc0FqWlR5ajk5ZUtuQXNxRHc5TXVYZ0RQcVl5MXF4ZWx2QjAwZXFoTTV0?=
 =?utf-8?B?cFRpKzVnaWxubEZKS3o1Rmk2d0UyR1pjTHZ6WlVGTmlidUZ4OXF2MEx0RHFT?=
 =?utf-8?B?KytDL3hNd2FveEg5T1dxOXRwcVF2bUc2elI3RkNqbThqTUF0cysvb0dHOGtj?=
 =?utf-8?B?RWUrcUdVdUNSNkh3MEdGSS90bmhOMHQ0R1BDNUVOQXBSQ215aElkMmt1UDg1?=
 =?utf-8?B?L2NhY1VNR1FyZFJyWGYxMmkzUEptQU1raHk5MDhVVWdCM2trSnEwQU9ZVnpa?=
 =?utf-8?B?U25Gc0tidmpKRmdLRUZ0eDB5WGJvZDNEZktmeG1pTm1QR0czSkIvL3cwa1Vj?=
 =?utf-8?B?T3IzbnpqdDMzOGdZZW1tbW9ta3FyNFFtL3BRQjdCZlZUTlJWMkQxQ3liRmVW?=
 =?utf-8?B?YTdPekJsOXVSSDIzRXRTMVA4ZkNKemZBdXhOZ2NVNzhoSHg4VUxzcGtwOVlu?=
 =?utf-8?B?aDBkNE1xUTdURVhKOU1lbGRwUmxiczJSR2ZJMmNhL0lkdW9vWm9pSWZqWGpP?=
 =?utf-8?B?RHp4U2RHeEZJOG5RekJqclVnRFVwWWJmVTZCMlBVcFJ2dHE0NlZaa01zY2VK?=
 =?utf-8?B?Vm9IeHk3OUd6cnVRNEVQb1R5MjU0OGtiNEF1Qm9LR3Y3Q0xXTmpYdVI0TTcw?=
 =?utf-8?B?SE5vZE9ETFJONmc4Ky9rR3VUemxkY0FVWGc3OHMwWWFyTWtORE1uc21CNk4x?=
 =?utf-8?B?NThIR2R6L1hPRU91Njk1eUdsV3VTRzNGTWF6UkJhRmErakhxTUVNdWxwWnRq?=
 =?utf-8?B?R2h0UGhQbU5taXBqbk8zdGhkeGI3MWJ0R3BMOG9QNThOYktqYUtLN3NXTWxK?=
 =?utf-8?B?NTdGcE5xUkpOa1JaR2g1ZXN4L1NuUlRtUDlIK1ZsTi80dGxEMG9iUmpMOFlu?=
 =?utf-8?B?RGJkNEdSS2ozcXVvM1d6aVR5cWxOTUtIMG9ZdFhGRUt0MjJMN0xCb0RHbTc1?=
 =?utf-8?B?Q0dNWno4NE91a203T0JwS0FVNXRtbnVDKzg2Nk42QU1CTGV5Y1VwSGlPQ3dG?=
 =?utf-8?B?WjRzVW4yVUZYRFkwd29NVWN0UEx3OTF2ZXNaWnZ3MFdaKzdnSU5DMjJ6Z1A0?=
 =?utf-8?B?ZERNaVduSkJkbFZreFJ0cjdXOGEySXRyNHliVE9aQkZOR2FZUHl4bG5iZ0Nw?=
 =?utf-8?B?c1p6Q1pMdWI1V0V2d24rN0ZFVnJYdUpWT3VoaStZcWk1SlEvQm1qK0p1SjEy?=
 =?utf-8?B?UWVrTzgzeUdhNWdrUEJ6cXpkMlpFMFpmejVzanJwa1cvckpSOWR6aXQzYUNX?=
 =?utf-8?B?b1BWUUZjZnB2bm5yMGIwd2pZQ2I2YU4zRzQ4U0h4b3V3VWVURUdRcVpTaHAw?=
 =?utf-8?B?U3VWcnZ3dm1MRWIyUStoUHJ0d09DcnVEZDdrZzhxbGVKVWVCYjhlMVJZSGdT?=
 =?utf-8?B?RjkzcnBtQzZ6OVNGTnFFZGZXRzUyazRCWXpyc0JBOWpTUHhOWmFjMUd3blYw?=
 =?utf-8?B?RVM4WGxCRHJEdWZmMnN3dVVza2F0SWlGQUNweCsya3pTbERvVmdoVU9WOUVC?=
 =?utf-8?B?ZStBWjUrdGJneGozcHZURW9kc3RyYmllT1RKSGY2cEFwbnA3SkNuMWZSajla?=
 =?utf-8?B?NTFFV29rZHdsM1ZpUlhESDdMRStnR0szU05QZGdCNmVNbGUrVkRLdy9VMGts?=
 =?utf-8?B?MC9MQ3dVa2tvRDNNTUNyK1VvaHd5WU0razN4OW95WmhtNXNCejczc0hqMm9n?=
 =?utf-8?B?TjY0ZmVwREc3djZTYWhueW13RGN3N0JXdktUeWtndGpKNWhaVWk2UE5iSzRi?=
 =?utf-8?B?dHFKcS8zSEwyV1lGb3g3UXR2U0sxVTdISzR5Z0JadHpOWmsyZ3VkNUU2NU5k?=
 =?utf-8?B?RmxGcmQwU2hrdE01L0svYlA2dE92MCs5akJyc00xbVJ3eEJsK2paTlp4RnVC?=
 =?utf-8?B?UE55dGR1VE1VT2ovQUhldE5YdmFSUHdDck5vUzh3UVUzQ1RWU3lPYXJFMEtn?=
 =?utf-8?B?eWZCZEtZNFFhRkNHVmZjblU3NjJadjM2Zzhlc3hRekdHbFdxQjYyVzZmKzla?=
 =?utf-8?B?aXA2cVpxTVdOaCtjeTVQcVhaRDc3SzU3R1FXaERIQjJxYWlFa3hTZVRXVVFy?=
 =?utf-8?B?c1JpKzNuVm1Oc3IxT3JHQ1pmdWJyMHhpelkvNzVscU1OSVBRT0tXRkZjbDNR?=
 =?utf-8?B?RG9Sc2tVU0kreUtqTFNPdkNMNkRGVnBkVFIzSWxxdnB3VTJxcjQxUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9585a6c3-56f8-4301-55f7-08debbfd027e
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 14:34:08.0545
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xMXcCarG8X68CTDPRnLRA2p99fsXYsEmSCbyDnhTIA65WQyxSRLL2P93mpvVDl94P/xnXHunGJPhWdYq5y4tRw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB8021
X-purgate-ID: tlsNG-4011c0/1779892455-70D608B7-A2856631/0/0
X-purgate-type: clean
X-purgate-size: 2350

On Tue, May 26, 2026 at 03:12:23PM -0700, Stefano Stabellini wrote:
> On Fri, 22 May 2026, Jan Beulich wrote:
> > (extending Cc list)
> > 
> > On 22.05.2026 08:13, Dmytro Prokopchuk1 wrote:
> > > --- a/xen/drivers/vpci/header.c
> > > +++ b/xen/drivers/vpci/header.c
> > > @@ -586,7 +586,7 @@ static void cf_check bar_write(
> > >          if ( val != (uint32_t)(bar->addr >> (hi ? 32 : 0)) )
> > >              gprintk(XENLOG_WARNING,
> > >                      "%pp: ignored BAR %zu write while mapped\n",
> > > -                    &pdev->sbdf, bar - pdev->vpci->header.bars + hi);
> > > +                    &pdev->sbdf, bar - pdev->vpci->header.bars + (hi ? 1 : 0));
> > >          return;
> > >      }
> > >  
> > > @@ -647,7 +647,7 @@ static void cf_check guest_mem_bar_write(const struct pci_dev *pdev,
> > >          if ( guest_addr != bar->guest_addr )
> > >              gprintk(XENLOG_WARNING,
> > >                      "%pp: ignored guest BAR %zu write while mapped\n",
> > > -                    &pdev->sbdf, bar - pdev->vpci->header.bars + hi);
> > > +                    &pdev->sbdf, bar - pdev->vpci->header.bars + (hi ? 1 : 0));
> > >          return;
> > >      }
> > >      bar->guest_addr = guest_addr;
> > 
> > Well. If I'm not mistaken we had discussed situations like this (long ago).
> > Imo the added verbosity gets in the way of readability. If we absolutely
> > cannot or don't want to deviate such constructs (of which I expect we have
> > more), then we ought to consider alternatives (like changing the variables'
> > types in the case here).
> > 
> > As to deviating: rules.rst, according to my reading, says that &, |, ^, or
> > shifts would be okay to use with a bool operand. What's wrong with also
> > permitting this for other operators?
> 
> In my opinion, if we are going to treat bool as its own type, it makes
> sense not to silently mix bools into arithmetic with int types. I also
> do not find this patch less readable -- I actually find it more
> readable, since it makes it more obvious that hi is a bool.

Another possibly less controversial option is doing the arithmetic
based on the register value directly: (reg - PCI_BASE_ADDRESS_0) / 4.

TBH that's likely faster than the dereferences done to get the base
address of the bars array.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 27 14:42:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 14:42:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320592.1587868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSFSs-0001G6-1P; Wed, 27 May 2026 14:42:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320592.1587868; Wed, 27 May 2026 14:42:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSFSr-0001Fz-Uy; Wed, 27 May 2026 14:42:33 +0000
Received: by outflank-mailman (input) for mailman id 1320592;
 Wed, 27 May 2026 14:42:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Jason.Andryuk@amd.com>) id 1wSFSq-0001Ft-99
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 14:42:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSFSp-008GX9-I8
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 16:42:31 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 6a1702c9-bab6-0a2a0a5309dd-0a2a450ca616-44
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:42:31 +0200
Received: from [40.93.195.17]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Jason.Andryuk@amd.com>)
 id 6a1702d5-62f1-0a2a450c0019-285dc311fcf7-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 16:42:30 +0200
Received: from BN9PR03CA0392.namprd03.prod.outlook.com (2603:10b6:408:111::7)
 by DM4PR12MB5721.namprd12.prod.outlook.com (2603:10b6:8:5c::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Wed, 27 May
 2026 14:42:18 +0000
Received: from BN3PEPF0000B36D.namprd21.prod.outlook.com
 (2603:10b6:408:111:cafe::25) by BN9PR03CA0392.outlook.office365.com
 (2603:10b6:408:111::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.12 via Frontend Transport; Wed, 27
 May 2026 14:42:17 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN3PEPF0000B36D.mail.protection.outlook.com (10.167.243.164) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.92.0 via Frontend Transport; Wed, 27 May 2026 14:42:17 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 27 May
 2026 09:42:17 -0500
Received: from [172.31.156.136] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 27 May 2026 09:42:11 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZlGR7bYXJar2OZAIsTmCDInZ4LaeontTokQ18yrrukYFpJ8B+CKXq+25oJNwOZM+b6fGxjjMT3sBN5TC3Vnsp5/o1QcjNbr4Jlohw5ZoTNMyj7z4DTejKEi9sLoCn2kQHib6pmVQBDhqy8aFDaYKwkzYW/3sb4X3zg4i0LH6qQldafqgKOsKzhXj2fwZJ2/+al2KO6YV3MIqdKU5yZdIv+V+7Czmh/aGJZekpg0b5yOCUMuu+jHy6iL46X4VJmrSlO9F7oSPJEBgjr7gKmzttkb14JQ66ovP/a4+eJjkTm21bZA7KO25qWF2ZpHGmLz2UCjJPH9Pgsyok7bblIM7iA==
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=FKgLlTzuuWT+TepsQUUEsWjMz5etRLjqvFQF7cJ/nek=;
 b=Pj0RMzz2rGLVxzGw53Ut52Ok5HOTgfedbkuuQsT1/fvFkIiOKcbOev08avQ43DpwffVUED+J1Pf7AfKNQg8KHncM2452DSkqxWiMC7Wttf5CoE/kyr0XTVMPwuefx7yQvsdaPyUJWtCGb9yeUKE04w9OTK1JByDPg2KkrJDDp7bsZcW84MlhZJjMKvh+eHszlyrihtKKLcFEJeHNofiQPG5mTccWkwJ476kuxKYlmsk0T6ysS5KPkCGJBPJUrHVpdWKUGSHW5l9KO5pCt1wHx4IHFNEIY71p5nKKVaJz3p5+GKlZUg5aGdADdy3M4jzkQOGk/5/t8V+VLoPc3x8Rxg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=citrix.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FKgLlTzuuWT+TepsQUUEsWjMz5etRLjqvFQF7cJ/nek=;
 b=vXE1uzO1VQ+fenluPmmR/HAqgkW3MjygT8ffEmCpK0+LIGTQmcf5S1o3F4/EkWcgpEIhoGcymhTPiAyOrENxpZhVimlM/57ZYWDC6ADpmwiF4XpCC03EUp/sPu7SvxIU8O8v2L2O1L/zeEKcm0yatPsAQSjTMS788zMklRHmx/k=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <64bf0848-f7be-40b2-a2f2-6999cdc9a64e@amd.com>
Date: Wed, 27 May 2026 10:42:10 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: Change stub page freeing to fix smt=0
From: Jason Andryuk <jason.andryuk@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	<xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
References: <20260526203114.40882-1-jason.andryuk@amd.com>
 <7a0f7653-a299-4ead-af6c-944b8ffbb73d@citrix.com>
 <b3e58f3a-ec2a-4a91-a947-9900c00715ee@amd.com>
Content-Language: en-US
In-Reply-To: <b3e58f3a-ec2a-4a91-a947-9900c00715ee@amd.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B36D:EE_|DM4PR12MB5721:EE_
X-MS-Office365-Filtering-Correlation-Id: bd44cbdd-040f-4400-7f77-08debbfe26bd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|376014|1800799024|6133799003|11063799006|4143699003|3023799007|18002099003|22082099003|56012099006;
X-Microsoft-Antispam-Message-Info:
	ohoUdRRlRKE8Bb+r9MJESGcysXbQTTFXd97hh1Wij/XE8LUYcQB9Wzf9/yp1tXYLNhMvSgY5UV/HyViPp3Eo7bp7QBbzL5+UA/jTYtNZIX0h4m4LWHLvDFb9DhjBlAYzKZrglx1BCoPPMpBE1Mm1NU+P1ZeLNwfE5M5XwvXNLBWkqG5KgOSQypiFL36iBVcbHfXIsfiON6jlBBxdHk4VTZMHyfWPbc1PquOf/+kpzaB2PkWAbmlupzxTbllee4RC764FMJtGmYyLF+5kxP0iLy72/2BUCFgXGUC6m9UcLH4drbYADusEN1ycUeQKWVMftdLtTbG8ZBS4T7Thhutrt1wc7QvKrAsKj5Yp2zZpEmtIHHJPHvnSByMFcJJIXZuodmphrQRPJOS9KRvtLqAfetJ+BCzfL4G6FAK5CATT9de5nKgDx8thN9oFKMLexN+yWeh8Zp6PPsdXPIDVmt0N9SRvEcOSINx47kHCLltczfMpaxaP14TMTvR7jx/BmfDmwodmo1mAuYjbnsSOoboQ5tzO4janPiYWC3E5tD/OKGd+gWLDqsRQRg3hx5vUmYECgFqW3LhyfQywIqZwmIqstUn4pH1GLmNJYa6fRs/AXSvcHI8/iYkv05sO6CmCXESxEUmoI+foZXzS5MM9NckI4qDvV5smNNpVttIhycjN0z6YzHROGhTg9oXCP1A/K9NoP+QkGa01/sBV34BlU7AXY6BT5wy3dmsNIeVpYFR5+fM=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(376014)(1800799024)(6133799003)(11063799006)(4143699003)(3023799007)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	qyEJ6cdxffft7qCnGqGFxcTpLwIXdDK/z61aAyNXRZQDUzlGTuGTtldLteRU17pp5twvOwwudp0mECxjeRU97ZbHRwLmBGHxTtdxqjp/1CE/m130DqJ0DPkw1oMOVgNjBVw52F+vd5DCEVVAVfqh079n0RqBkDnerpC+nzBCDl4wXNFbhOkP2H4DR3WAP49DxcSSfTDh23TJELAle8DFx/38M1+M8v42B1sQVlPFz4JYjZoHy7ulQCj2OKTuNAv0OH6oXRqmDKHTnWMck8UjDKxEk24EG07oXXZNbdOLRtS768ugDoWgvPWWNldJCMh5AhkVsC464UmK/fEeaZvBsfBiKw6JZyP3gOAPMOT9xOZcM76jKMUTg7zrg5vGira8kvC8TwZvtCwXsj3rilkV8WnkPzaNwbgxwUXQIUoOQvnNYLec6ZZhaNm+5iWAY6O4
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 14:42:17.8803
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bd44cbdd-040f-4400-7f77-08debbfe26bd
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B36D.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5721
X-purgate-ID: tlsNG-d25034/1779892951-D956FCF5-E645E397/0/0
X-purgate-type: clean
X-purgate-size: 2239

On 2026-05-27 10:14, Jason Andryuk wrote:
> On 2026-05-26 18:03, Andrew Cooper wrote:
>> On 26/05/2026 9:31 pm, Jason Andryuk wrote:
>>> A single stubs page is initialized with 0xcc and re-used, with multiple
>>> CPUs each using a portion of the shared page.  In cpu_smpboot_free(),
>>> each stubs area is checked against 0xcc.  When all are set to 0xcc, the
>>> page is freed.
>>>
>>> Booting a system with smt=0, CPU0 is initially setup, allocating the
>>> stubs page and initializing to 0xcc.  When more CPUs are brought up,
>>> CPU1 is initialized and then immediately brough offline as it is the
>>> sibling of CPU0.  Since the page was initially memset with 0xcc,
>>> cpu_smpboot_free() finds all stubs as 0xcc and frees the page.
>>> However, the page is still assigned to CPU0 and continues to be assigned
>>> to other CPUs.
>>
>> It's more complicated than this.
>>
>> With CONFIG_PV (and !opt_fred in 4.22 which is perhaps newer than you're
>> testing), the LSTAR and CSTAR stubs guarantee that the 0xcc's are
>> overwritten with real instructions.
>>
>> In !CONFIG_PV, the 0xcc's only get overwritten by the exception recovery
>> selftests (CPU0 only, and gated on CONFIG_SELF_TESTS), and "complicated"
>> instructions in the emulator (which in your safety environment, you
>> likely have compiled out).
>>
>> So, in your environment, I think you probably can exclude the stubs
>> entirely and trim even more LoC.
> 
> Thanks.  Ok, my build was !CONFIG_PV, so 0xcc's were not overwritten. 
> The fault happened before the self tests ran.

Correction: It was after the self tests ran and during dom0 construction.

(XEN) Pagetable walk from ffff830842652008:
(XEN)  L4[0x106] = 8000000079c72063 ffffffffffffffff
(XEN)  L3[0x021] = 0000000079ff3063 ffffffffffffffff
(XEN)  L2[0x013] = 000000085680f063 ffffffffffffffff
(XEN)  L1[0x052] = cccccccccccccccc ffffffffffffffff

It looks like the page is reallocated after free-ing, so after CPU1 is 
down.  The re-use would write the page with PTEs.  However, when later 
CPUs are brought down, their portion of the stubs page is overwritten 
with 0xcc.  I think that is how the page, as a page table, is corrupted.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed May 27 16:58:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 16:58:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320659.1587877 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSHa1-00021d-8Y; Wed, 27 May 2026 16:58:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320659.1587877; Wed, 27 May 2026 16:58:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSHa1-00021W-59; Wed, 27 May 2026 16:58:05 +0000
Received: by outflank-mailman (input) for mailman id 1320659;
 Wed, 27 May 2026 16:58:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wSHZz-00021Q-En
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 16:58:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSHZy-007qKS-NB
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 18:58:02 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 6a17227f-e002-0a2a0a5209dd-0a2a4501868c-32
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 18:58:02 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 6a17229a-c1f2-0a2a45010019-d155802ed134-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 18:58:02 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-48d146705b4so126461445e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 09:58:02 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4904561a160sm467713995e9.9.2026.05.27.09.58.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 09:58:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1779901082; x=1780505882; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=oZ4Qm6SMqSxkS+TqYsUM1vcGiPawhYrIMPuMEx4cAm0=;
        b=m6M9uSmC1J3K1t4rLdnovCbESwZnHEAhhRjdoSoyIsULZxh7Ckl9Y2rRpazZ/7XndS
         h/fIiU7zmB7hmaEdtQxYbJxSXny4+7o4wOJOiXD4bBAilzQAdblqlJ6E2X3SEo0UQIPq
         GwusQYfa8Giw3bdUuh5KqDvH9JkvIqFk9qEw4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779901082; x=1780505882;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oZ4Qm6SMqSxkS+TqYsUM1vcGiPawhYrIMPuMEx4cAm0=;
        b=phj7ZN3Y/Q6KMKLti7pRPOD9UcdiUWJeUFnpD+xgfU2lC6kVzeIDq8IJkoNJPuv9yU
         bKCOZ9FG4zNJtjMn3EWTl1NWeKyoRCMuSvYNUIe1Iao3LCx2w/q0mJ3qj1F0vI8Ka7aw
         aPlXtVqCnYauqGSST60T0f8SXZJwwCxqrbV4NGRM3gCZ548/T5M8zrMczxgSF2gXeLm8
         g/32w9/o0o0nBfWTSU4q7Skn5TeEw+I5TB2w9jo6E+KJiTsmACAq0lFHAoMuUK2ByCZq
         6sXWSqVcxxo4pQXMq4ukNuWsqLon4Wba5grcrZjtKUDvcR4VOXTr7U9lYWoutSyWnc0X
         bZcw==
X-Gm-Message-State: AOJu0YyAjYjBb4JxiFAKqfqtH2X4tk/DFIHLruboVO4t6gqxR1GdTGZb
	ADuzrGr5BYIUApN9oQZjwEPFfyUV1KYTGoyV/cCTaBf2zDv36BQLQiy1Nmz0EGWgVoZFFXQhO5l
	aXljO
X-Gm-Gg: Acq92OHnwTFnmSAYyiYE60ygL4w8PV3oe2GoEuec0QdFltMc1oNHKnMXB3+x14pQQSW
	zEc+k/emHAh7nhla7YuS2KEU2OoiIAfyrfEqUJLKIV3psPMA4Wh0lmMmByupjgo94fL5H/5KrHQ
	weBp7o7AWvGPi5FxZc2Hd4FSMBti2gBhS7y5G0qNZGJZt2452N8YA/3nOygHhUf3eQToKpEMw5F
	gfCHONY+JfXMoKqpNLf9RwuktUc2M8dRZEumBqXKLSi3o6KFNK1KyYNYBpnU2wUtXYU31/rRo8o
	/cz9fubVAwdLV/XKyTYiqammkTWqspd3eiOwENFCdwgtmNVE0+m6WYdouJceA32raxPbkwwjwRh
	6PkKfKfJEsJIuY8nF+Jf7tHrnCbfTZdlxOSKt9pxysurtwVV1PGSr+PEwdfxG3n0UE1arMYIFku
	NA/+PpTb10B+lyfFvVUulzBxhwZszhdEfgARkPNT/BlePyC2fX0Dtt+gTYtHOJlWfS9YGuW2old
	dXMT8hS3pX7h38=
X-Received: by 2002:a05:600c:530c:b0:490:5527:3be2 with SMTP id 5b1f17b1804b1-49055273be6mr310425795e9.32.1779901081639;
        Wed, 27 May 2026 09:58:01 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Juergen Gross <jgross@suse.com>,
	Denis Mukhin <dmukhin@ford.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH] Fix fallout from DOMID_ANY ABI breakage
Date: Wed, 27 May 2026 17:57:58 +0100
Message-Id: <20260527165758.2346373-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1779901082-B5947FF4-A41AA156/10/73395122804
X-purgate-type: spam
X-purgate-size: 3402

Commit 23e2479ff9de ("xen/domain: introduce DOMID_ANY") broke at least:

 * xenstored domains
 * The Python bindings
 * The Ocaml bindings (i.e XAPI, and therefore XenServer/XCP-ng)

by causing Xen to reject 0 (the wildcard sentinel for decades) and
DOMID_INVALID (a recently introduced wildcard sentinel) without adjusting the
callers of xc_domain_create().

Under other circumstances I'd revert, but xenstored has gained a dependent use
of DOMID_ANY.

Fix up the remaining in-tree callers, which covers init-xenstore-domain and
the python bindings.  The Ocaml bindings, like libxc itself, expose this ABI
detail to their caller, so need fixing individually.

Leave a very clear message in CHANGELOG.md that all external callers need
altering.

Fixes: 23e2479ff9de ("xen/domain: introduce DOMID_ANY")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Juergen Gross <jgross@suse.com>
CC: Denis Mukhin <dmukhin@ford.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Both Roger and I said no to the DOMID_ANY change.  We both think that there is
still insufficient justification to be adding it as a new constant.  Next time
it's going to be a straight nack.
---
 CHANGELOG.md                         | 4 ++++
 tools/helpers/init-xenstore-domain.c | 2 +-
 tools/python/xen/lowlevel/xc/xc.c    | 2 +-
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 25f5a192ed48..1b54acf912a5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 ## [4.22.0 UNRELEASED](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=staging) - TBD
 
 ### Changed
+ - Users of xc_domain_create() must now pass DOMID_ANY to obtain an
+   automatically allocated domid.  The prior sentinel values (0 since the
+   birth of Xen, and DOMID_INVALID since Xen 4.21) now no longer represent a
+   wildcard input.
  - On x86:
    - Enable pf-fixup option by default for PVH dom0.
 
diff --git a/tools/helpers/init-xenstore-domain.c b/tools/helpers/init-xenstore-domain.c
index 01ca667d25d1..2be5831a578d 100644
--- a/tools/helpers/init-xenstore-domain.c
+++ b/tools/helpers/init-xenstore-domain.c
@@ -21,7 +21,7 @@
 
 #define LAPIC_BASE_ADDRESS  0xfee00000UL
 
-static uint32_t domid = ~0;
+static uint32_t domid = DOMID_ANY;
 static char *kernel;
 static char *ramdisk;
 static char *flask;
diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
index 9feb12ae2b16..a94f01d40b58 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -118,7 +118,7 @@ static PyObject *pyxc_domain_create(XcObject *self,
                                     PyObject *args,
                                     PyObject *kwds)
 {
-    uint32_t dom = 0, target = 0, max_grant_version = 2;
+    uint32_t dom = DOMID_ANY, target = 0, max_grant_version = 2;
     int      ret;
     size_t   i;
     PyObject *pyhandle = NULL;

base-commit: e63ba93511b33c0d3bb8cc5870f946f41e1d2655
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed May 27 17:08:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 17:08:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320671.1587886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSHjr-0003re-4M; Wed, 27 May 2026 17:08:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320671.1587886; Wed, 27 May 2026 17:08:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSHjr-0003rX-15; Wed, 27 May 2026 17:08:15 +0000
Received: by outflank-mailman (input) for mailman id 1320671;
 Wed, 27 May 2026 17:08:14 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wSHjq-0003rR-IH
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 17:08:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSHjp-005iHz-OF
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 19:08:13 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a1724fd-2eae-0a2a0a5409dd-0a2a4507b752-0
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 19:08:13 +0200
Received: from [40.93.198.61]
 (helo=CY7PR03CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <roger.pau@citrix.com>)
 id 6a1724fc-229c-0a2a45070019-285dc63d34cf-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 19:08:13 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH8PR03MB989112.namprd03.prod.outlook.com (2603:10b6:510:3a9::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Wed, 27 May
 2026 17:08:09 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.21.0071.011; Wed, 27 May 2026
 17:08:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DylwN425p+RIg390RJ2Q+PlPvWdS1o0YgfGe3XaucVxsKOThXVSQOVlk6buS0SZicuTB2srARe10CPrAYcz3IvGl739hn+R73DkmPUGP9Cp7I44QmvgE5S8NFEDAm5CSUCPQbjXAZKTJjmkcu6Nm6x7DSEgk8FBTDNUkIczVFmGbf1sGBRJq3KwRYkT/rZ7spsvJYrtur8TASeyvkLNI4mK/sDV4SmFz14MC8OsZghg2yd0Fxo6LQce/kyiYm82+0wPP+p5KDbKf8iKN37SULrw7if/HhTIfIZP6mgahyyt9NpNmsErpBWx9Zfs1VMwJF494aEQBhHTh8nZYgh5XhA==
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=ujP4l/sxPLt2T2Vv7PlHyuCa+rq/V5MUfr4toMNe9gY=;
 b=IiEusqYjeKw/tNNffSS7eOh/0yO5RKqxzakgk9ginoQqc/K1UFo5YsXZi44R8laJ+sqUfwp+PATxToK0Wx0FpCi2sNOjCo4BClkYcJjUpI1NqQfuw4XcBf1HXV0t82SY7TZmGqhIcOQpiVqxLJNqJNdP1r2RDEtBWbawnHp+GwJrSkkzNwThZZwwo54HB+K9y9dSuDTOsFUbaQnUr9CRY3+fivZ4F0UFMOBNR+me42m5UYiioQgxpMHB/pHD1ga7f/Nlh9mBTNbn194zgAv/u119Y08QFN0R/I/xdQol8ttlb4HErUGMaeouwRwRJ8DcVuUna62m3HO4XkT+sFgEVg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ujP4l/sxPLt2T2Vv7PlHyuCa+rq/V5MUfr4toMNe9gY=;
 b=Ln52mISZM8yeWOl/VPYQvKpvlGba2cS+3z0okMYP5yMReELge23QJ4w8NnmJRkFe+5xKw7ktYkgKi1YHixl/nmmWz2x5aAb79jN4zOsE62nXjsWKxHa8lYhXpXzw3HepDlNnLEE1CPBrKAlX05pQmrilZLaq7xUyScuMOek4JHg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 27 May 2026 19:08:05 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Juergen Gross <jgross@suse.com>, Denis Mukhin <dmukhin@ford.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] Fix fallout from DOMID_ANY ABI breakage
Message-ID: <ahck9cHeNQTUvokV@macbook.local>
References: <20260527165758.2346373-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20260527165758.2346373-1-andrew.cooper3@citrix.com>
X-ClientProxiedBy: MR1P264CA0002.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::7) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH8PR03MB989112:EE_
X-MS-Office365-Filtering-Correlation-Id: e2714aef-ec77-43ce-8ecf-08debc1286c3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|22082099003|18002099003|6133799003|56012099006|11063799006;
X-Microsoft-Antispam-Message-Info:
	rXdlVlSDcxdnJQmc8YNM8B3UCjEiDsJfDddCBzgcazwOwOl2NfjSsXsmxr7GZ8q+VYLt+oz+Tb+YwGjPVIbqTYcLKbmckwqhoEquqhY149OpsrCDdTqGFXF4Em8cepuNuhzqGSBYBcfIQL4dGVP80p31ggtceONalPBBo9SlOjP1VpXRS/N6zVBnYW13D8+leK8eBZuc0BdMLT7MaaQa1wkiwNna5LH2sB5rDFmscdv524Qwg5EmFmZyo3apZ+FF4C3DDs3UKWDnDRBAeKCtoj4+RklTYWPNt30JvfdCHxh6L3rX1V+IGHEa48l4O94KbV5Bqb7zBeojlh6FiNR6MwiuxIB+SrU7TtSyzTTBQRCpU/B0pGEE8++qd9+88Su+SzqNrrSiafMSKY0T6fNOgtQFO9XrGXbBTHkfoBhpK7d5D81ePlxhG2JDSEgtCUR53uCT1VF/xgF0zU4uxsG764IwnRLe7Fk+Hkn5dcOjZD2OdsJo3HYRXSaFLEARaH4yIfQNHLr0W8XohjK6TzEnLxOgSv5/8BIxio8xqlzqW9TkyZQbxjuLpAzIPJdN8rwQfLi0iZ82eZ2cslePeXC9EuOLliZYY7tWHsiprV4PDO8yd7Rd2G0ARz1tFi+/fbl+kLfCL8O8F9o7xWP9wDCQqA==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(22082099003)(18002099003)(6133799003)(56012099006)(11063799006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a3RtdXVnNldLdE5sK3U3UUJwODYvRDlNSGN2M1U5ME82NmI5WndoUkk0eUtk?=
 =?utf-8?B?RS9TSCtuU0NvNFdkaWE0NGhEZ0NqVTdTRUlIRXh3QXdqVkxtM0Z5aHNZVFNN?=
 =?utf-8?B?eW9jZ3AwZmRzbG5BS1J3T1JxK21kU0dZV3d3V2Y2bC9Hc3Rrb3hIbUU3akhz?=
 =?utf-8?B?VkhsKzdiVU0xcU5ZZk5PdVdBOGViRnBwQzVDd2VJdFRSTTY0Si92WTl3eUQw?=
 =?utf-8?B?OWU3eGE4VUtZMlJlSGh6S1hXaFJGemR1T0duZzVhcXNHNzZIN0ZLMlNiblNy?=
 =?utf-8?B?bDRYN0krUmxWYmdYTkw1QmRWbG94b01GZlZram5aSDg2YkxML0ZpNldIQ0Fl?=
 =?utf-8?B?c0w0d1N1b0R1MUdDbk1wb0FBd2lNUE5QNmd0S1YwczVoa25LUEN5MUZaNmFH?=
 =?utf-8?B?TkFLUU0zK2hEQjZUaFZjbkFKY3lZdVhpQUdEMDZ0SHZUamp1UW8rQSsxRkg1?=
 =?utf-8?B?cDVqcWNtUUw0cjQ2YVRJaENkNXM2NUFZRVZBK2ZIaWZPNU14dFI3ckNkTWFT?=
 =?utf-8?B?TnpWeDZUUXNOUzEyK3NBQTdEWGdVU0U0R1k1cmFiOUtVT2ZQWk02QXlQcWZj?=
 =?utf-8?B?bXZ2b09UU0JweVVySndHUU4wVEFHb0hCWVBieEszdzUyQ1p5bWxaQ1V5REM0?=
 =?utf-8?B?ZEUvSUJLOVVEQ2twTlFVR01NSDFXUHVUZmRsUytvczZOSC9KVjBnVzBvenF2?=
 =?utf-8?B?ZnBFa3RZOEtleGpQVU9DSy9VRUtWdmUrekxKQXhVT3BuL2UzSmVnTTM1NTM4?=
 =?utf-8?B?b0t1VldYS1NXS2FpS1VMS2x5eHhoWk1JZUhqOEdTSnpUaGY4U2o4SGh1U0c1?=
 =?utf-8?B?WVZBa09QOHRCQ3JwNWg0d0tnUWZTZEpjNHo4SzRFYVgxeVNBNnRZUVJ2dTVw?=
 =?utf-8?B?bW1Kc1FRY0J1U2toZnhGVXFlZmxKRk5ITzNnWVlkTHVqZnUvYXVCYUJYMDRQ?=
 =?utf-8?B?T25lb01VVTFiVDVlL2pIYW9UaFMrSjlLSTBvMnlyUXJQSFFHVTY1L3E4cGtM?=
 =?utf-8?B?aFZDQUJoUTRZeUhtT1FRekM1VG1OemdqejBIRHFYaGFueG1UeUdqMzhjZHpR?=
 =?utf-8?B?bzNGOE45Y1BLZmduSVRDU2hJcTBqYVQyMVB3by9tem1RcWRFcU1yeWYvWnVH?=
 =?utf-8?B?Wm9rT0o4alZUZXVPbit3bXc0bnlkL2U2Z0s4NzJ4NEdGQnhUd0JmdHRQUklT?=
 =?utf-8?B?NlFiUlFYTFh5ck1hY0huN1J3cjRUME5lQkRSVlhPUWF1dWk5dkZxQ3Q2WUU3?=
 =?utf-8?B?QjcxSmhqY1Q4REY0b29RSEJ5V2lBNnRHNGlBSE51cWJkdStnU3hQb0NPU05w?=
 =?utf-8?B?ZlYzeGFKQXBYczBsQ0N6bTUyR015RVJ1bTc1ZkgxbnVCTUp6UmxKK3hDcFRm?=
 =?utf-8?B?aUI3MCtmWWpMZWFnQmJQN3I4Z0ZiVkxDd2oxQ2IyeWt3Tkowc1ZYVlZSQkxY?=
 =?utf-8?B?RmcxY0IyL2xVRVA5V3BaM1FwUHhRVGN5bEIzSG1qYUNRZG1IdTN1cS85ZzhB?=
 =?utf-8?B?eUtOSGE2MzBmNGhxTDc5dXZVTHZLN1VrUFF3Y1Z2bGFvMWl4QjA4ZFNhL3lm?=
 =?utf-8?B?TzBKK1k4OVlaMmdPNTZ4TVRwb210SCsvQVZIWmNwdlJZYmVHcHJlbkVFYmYw?=
 =?utf-8?B?RXoyMUd0a3lUV25Qb25ScE1waDMwYkY5ZjMrekhlR1ZoWFM4ZWlkcGR2eHYy?=
 =?utf-8?B?N0JmOUIxekhWWTRBS1hmbmhVcktmYlZJOHBLL2VRNE1ZVEFBOEZzdHVUNzly?=
 =?utf-8?B?UDZUOWJHQUVUTTkzeVBKZXJtbVNkcTJnb3VOUFp4aWk1S0ZZbW50d3ovWVZp?=
 =?utf-8?B?OFk1Q1R0L1NnQnhlYzkyZWlBSU5FOEdaUmJ3eXQ5Z3FkRTFrbDhOZmUrcWJO?=
 =?utf-8?B?RUFtLy84WEZkYW9SMXVFOU5uUEFmT1pLYTBSWGoraU82bFRIU1RYcGN3RXlm?=
 =?utf-8?B?TlB6bUVGNnRVYU95SGZONmR5L3NyeVl2Sko0WnB0NzFBcmI5cGFqeXo2bngy?=
 =?utf-8?B?akl3MVNtZWtLRWhJd0IxRnlvT0Q2cWJqc1pBaldOOU1vdm9yeGVKa0VJb2I0?=
 =?utf-8?B?SVNUZURSK3VndEd6eThPaCt3UWhsZ1BJOEZYUHgzcnlmcWRHeFNKNVUvTk03?=
 =?utf-8?B?S1l6ck43RklLUVl2V29vK2x4K2dLZ0pIeUZkcUVLR0oyc1QxV3FDUEEwcEFZ?=
 =?utf-8?B?TnovQ3FKazRXRVNXU0RIc0xieisrSjdNalQ4aXRiTENMSmhhc29qeVBiNTQx?=
 =?utf-8?B?R2NIZVJRRFRNbmp5dFpOckNVMndHeEdzRWNGRW8xenRreGRsQy8reHljQ0ZT?=
 =?utf-8?B?UUk2aFNBSlY1aEI2YngzSFpGQ0gvTzhXSEFsc1labno5b0dWazZGdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e2714aef-ec77-43ce-8ecf-08debc1286c3
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 17:08:09.1978
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Jfgs9XGtOjiQIbsGcgqq+LIo+9od3rxWi0dFuQ9XOfSJLPSQ2KiSVTQ9ET99PYTdnKVRfYFx3hfAqDmewJpvkQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR03MB989112
X-purgate-ID: tlsNG-ef75cf/1779901693-21B68C48-F486D864/10/73395122804
X-purgate-type: spam
X-purgate-size: 2783

On Wed, May 27, 2026 at 05:57:58PM +0100, Andrew Cooper wrote:
> Commit 23e2479ff9de ("xen/domain: introduce DOMID_ANY") broke at least:
> 
>  * xenstored domains
>  * The Python bindings
>  * The Ocaml bindings (i.e XAPI, and therefore XenServer/XCP-ng)
> 
> by causing Xen to reject 0 (the wildcard sentinel for decades) and
> DOMID_INVALID (a recently introduced wildcard sentinel) without adjusting the
> callers of xc_domain_create().
> 
> Under other circumstances I'd revert, but xenstored has gained a dependent use
> of DOMID_ANY.
> 
> Fix up the remaining in-tree callers, which covers init-xenstore-domain and
> the python bindings.  The Ocaml bindings, like libxc itself, expose this ABI
> detail to their caller, so need fixing individually.

I think this will also affect the rust crate(s), even when those don't
use the libxc bindings.

> 
> Leave a very clear message in CHANGELOG.md that all external callers need
> altering.
> 
> Fixes: 23e2479ff9de ("xen/domain: introduce DOMID_ANY")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Jan Beulich <jbeulich@suse.com>
> CC: Julien Grall <julien@xen.org>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Juergen Gross <jgross@suse.com>
> CC: Denis Mukhin <dmukhin@ford.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> Both Roger and I said no to the DOMID_ANY change.  We both think that there is
> still insufficient justification to be adding it as a new constant.  Next time
> it's going to be a straight nack.
> ---
>  CHANGELOG.md                         | 4 ++++
>  tools/helpers/init-xenstore-domain.c | 2 +-
>  tools/python/xen/lowlevel/xc/xc.c    | 2 +-
>  3 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index 25f5a192ed48..1b54acf912a5 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -7,6 +7,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>  ## [4.22.0 UNRELEASED](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=staging) - TBD
>  
>  ### Changed
> + - Users of xc_domain_create() must now pass DOMID_ANY to obtain an
> +   automatically allocated domid.  The prior sentinel values (0 since the
> +   birth of Xen, and DOMID_INVALID since Xen 4.21) now no longer represent a
> +   wildcard input.

Maybe also mention XEN_DOMCTL_createdomain explicitly, to notice is
not only the callers of libxc that needs adjustment, but also users of
the hypercall itself not going through libxc.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed May 27 17:10:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 17:10:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320679.1587895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSHlw-0005O5-JJ; Wed, 27 May 2026 17:10:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320679.1587895; Wed, 27 May 2026 17:10:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSHlw-0005Ny-FR; Wed, 27 May 2026 17:10:24 +0000
Received: by outflank-mailman (input) for mailman id 1320679;
 Wed, 27 May 2026 17:10:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wSHlu-0005Nr-SC
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 17:10:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSHlu-003B89-84
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 19:10:22 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a17257b-bab6-0a2a0a5309dd-0a2a45038760-2
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 19:10:22 +0200
Received: from [40.107.200.37]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a17257c-672d-0a2a45030019-286bc8257e7e-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 19:10:22 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN9PR03MB6156.namprd03.prod.outlook.com (2603:10b6:408:101::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Wed, 27 May
 2026 17:10:17 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0071.010; Wed, 27 May 2026
 17:10:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=avV56GO4v6Cw5WJM2I4rtpqWfjE2GX39Cfj3ALESnxq6CvBo0LkvY60VWOREYvv9SHqCu6qm1LrRWUsn6BxLjokUJkSyWtL7zD/G93nSwjncEBYD1Dqs1xSICkZRKAd6d06taF643hwWRdEjfxjOlp1Mz71xpOH6v77oNMQeacKYMoEvKLBuqe/vxgLEA2WWFESw9Ulb3dGyFTBQv3N7lHWp/KaFGneGZKUm3FpANUCMhqjyxofyknjXwL+EyKRtnJbEprqQc8Ta/sU9zqh55afFM8MzJ/XQzE8HPZAj6CiTTs12pWs3p3EkYW48w+4VoNhDg+MvYo99byrU0Mr5NQ==
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=nfAgIltRip4lfqCueKIwSESHNOyqVzNlU5cjZ5eQfjY=;
 b=A4i/pmP2FpIQGORxfyc3tx07Ga5/D3gm7aEGElTIQgX0XRmNX3HK3fFnUot9mGBZTcZfAJYm94ftybZ3z2Uh231wjY7BUOiMy7wvD6neI92WunQm1f5OVTw1PsHBQC41VqIQ7nuCgoj8v8x5UJvNX69ghaniMsFyHfQb1018fD1rB9QbNiqU2/eusPDryms+G6pfckjKaCo6UA9seBan7vokNPmGnwSTjt0fQidfSy5CFUL+nN/iAV3qI4DNG5H+fcyurzbexq6Nj+rpPDkoXqYd94neTArrzPWuK55vpnCPLrm3Og3u6WgqE8mH121bS1dmUgo+cWbQB/9/+iu8lQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nfAgIltRip4lfqCueKIwSESHNOyqVzNlU5cjZ5eQfjY=;
 b=kH8X1Nax7IH9oOqK4hzOogJBwI0Z9jJbhiK1D8kL9XPATySWB6brD45fRGT3rTqFfqKtO2HGQY33z5CFN+vf2y8ONr+mTKELhjrxDzo6l0ifkisUKyqQ25PvEhiU0yLdS3w3/DFH91QWtnD6yOtOFaHWuZsJyNlBd9fiiYggpLc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <5e92ddfd-e37e-4204-8193-9d536da6a874@citrix.com>
Date: Wed, 27 May 2026 18:10:13 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Juergen Gross <jgross@suse.com>, Denis Mukhin <dmukhin@ford.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] Fix fallout from DOMID_ANY ABI breakage
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260527165758.2346373-1-andrew.cooper3@citrix.com>
 <ahck9cHeNQTUvokV@macbook.local>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <ahck9cHeNQTUvokV@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0647.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:296::22) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BN9PR03MB6156:EE_
X-MS-Office365-Filtering-Correlation-Id: 40d22633-231c-47b6-ceb1-08debc12d2f6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|6133799003|56012099006|4143699003|11063799006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	c0NNSmvWQO3vKLyQjY9+c3MYvi1ULcUsd/RjDH5oHI2ShaB8VsgJxU5skjF49RLNkVCV/1ym3E59oV18CFqkFWHF+blNeXJJxJUMaoFns0izFhTaoVG0uLchvcs/KpRCtfQ3ooXze9G/tgzeWhVjdt5kfpYoKcpFY3ArsniopTCcceFI72GYS7grbb78YwuhCoexQgzE5CouEedD5CE9MbMRluj9CToFyLjUkNIh6t0IdtCbmqh/vvPO0BoXNKkmJVhMiYZOi5tFaRjOM5Sf0hD9pPHa/qsXjtcOuVNvJAhvJd82qHXp5bRyLGCBTYqC7hVm8ZFDAW0inzPzQ6eszUudxTfPgCGm/xyPEvzxzAyPO689oRpVBm0bddv4T+YiKHMhg8fDR1rVOqEmZLCVJKvAnr/ADiDZQXibZJyPvmhmflJMcg4UbPM9jBWOfUagxN4nOBVG1+TKyPCryLPcRWi5DBaoKiOodzjnmd1o6zdOy+3s9QSzQEZeN64RZSzjjgrccgKpOKiRSCBGEU5XL9Z1fKBv3Jhe2wn3GIKVTZvTgfizQFhDQKh10RR73jpWF0tb2mK5Eb8hJdnW8tmyF8NvupsSs0CiQ9cKnCH3CzVCJw+FY6fIo5DgYAb13amlA2MN0nzN9VUl/m88eb99Bw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(6133799003)(56012099006)(4143699003)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aDBhZ0VJK21QNUI1WGJJMzE2VGdDalVoWjVuZmdHZVBNa2V6RzlxQm42N2JC?=
 =?utf-8?B?RVp3dS96UkNLL0p0OUJYdFZsVUY0SVpzeXlndDNvdUJsU1RtanIxRWFXcGtB?=
 =?utf-8?B?UXc2UXlxWHJXa2FZZ1llcEtIMFlUUllUS29TaHJtMUdudVBwRk1yZmpackRI?=
 =?utf-8?B?QTYzUUxSMHdNQXNoSUxrUERTd0RobWR0eUd6NUVDQ251QmprVDg3UFg3RkQy?=
 =?utf-8?B?ZHNPbG5jY2VQN3RTMWxqZ1BlSDcveTZ4Qm54RVJtQm1yRnY5Tndvc2c5K0hD?=
 =?utf-8?B?UlNBV25WOTJRcUtVeEV3cVNxQTNMMHh1TmJ1WjJPMWdpdS9YZTBzN1dZNzVP?=
 =?utf-8?B?MndacUJpV29aUzc5OWdlOThLSWdoNWRSY1lra3M3MDlvZm9KNTkxb2N6RXhS?=
 =?utf-8?B?Y0FzYlNDaXZRVFJXUjJZbk9aUURZK1kzZUhHZWlOdHpDWUd4dlFYa293RjFJ?=
 =?utf-8?B?bnlTVVRqVHQxNXJLOVJIa0dMbGhYT3JZeFVRQlhXTUdsMzN5d2xnRGxuUXZ0?=
 =?utf-8?B?RVRJM09iMnk3bE5uZGpQd2kxOExyQXRqWXdhSEh3OXdiQXEwUlJWNWJHWXE0?=
 =?utf-8?B?YitpTS9NYVptVFJTQ3EvT1d3Ky9sdFJWZFlOM1cxN3BYVEQwc0ZNNEdBZ2s4?=
 =?utf-8?B?c3l1Y3RoTVdyRlFpZ1F5S2Y2SnNBK3hNY2hWbjRpaGtwODZGMkJNZUhOQnVU?=
 =?utf-8?B?TUVkYUdYNUphcmg3Q092RDlsU0RsWFkrdWxaVjJEQjdSZ0JKSG1qT0lRZTJ3?=
 =?utf-8?B?UlZFWHh0azMweW9mc3Q3MlpLcEE4cWo5TTNRUmxscmRiZ3RnSW9PZXZoQ2Rr?=
 =?utf-8?B?YVE1dysybEhxWWpiNGdpUUJLMDJSK0pNU0E2eWlLNFNaUk1IYkw1WHJSc2Nn?=
 =?utf-8?B?VEQrNkcvSy9UdDkwVW5VVC9aeWtyZ2tyellyNUt3eTdFUzhsN3ZaN1M3b0pD?=
 =?utf-8?B?YUNoeFloaURhN2RJZURBanVPOG1aRStlSHQ0bU1IRnJOcXYrTU1pV2trdjg1?=
 =?utf-8?B?ckY4dFlOTXBuS3JCTGNudW1ZaUJ0cDVBR2Nyb0x2MTRRL0FsWUd0VTJFd1FU?=
 =?utf-8?B?ZUZ2QVJ2TG1KLzZ2T0FiOGYvK1htRW90VHhYaXFXS0NwZXptTGtVd1cvbHor?=
 =?utf-8?B?c1V3LzJlSWNIWHJ4eXppZEYzcFVMMmpnb2hvZ3hqM242aXQ4RkZ0MzZ3OU96?=
 =?utf-8?B?ajBVbHdrRzVFQm00alQyZ1RGU2U0UDBERThpVTFUNDJ3MkdLNkdzaGFKVWxW?=
 =?utf-8?B?S3BPUndGNWhkbmxPMkhWSTNXY0JHNWYvREN5aWtwODdwZEpsa0gxSHI4UldR?=
 =?utf-8?B?SnJQOUFIeVpwUGV5dWM4OU9JS2ZDcjJvUVpWRUJXa21naGxIRytTUEczdEg4?=
 =?utf-8?B?dWpmdzlvdm14U0toWXhneGFlQVp2ai9QY1hybHVRU0oyaEVUN1lGSEtZSTBj?=
 =?utf-8?B?N1FnYW9CN1RDTkhMbm1wcWlLZFlsdTZFd0k0anJ6OGtjVXRIWFU4ZERvcGpN?=
 =?utf-8?B?TTJjeFJzS1p5M0k2M3pFS0pKNytCcHMrTG9vYWVVYTRUeHdJcS9Gak9KdXow?=
 =?utf-8?B?Tlp2bUNpd0hNb3JCK1pxMkdOWlg0MGhPWUZtMzl5NUhuSDEvNC9ud0xQY3Vv?=
 =?utf-8?B?RkdlQy9yMkZMeC9BZFBnVXJSV3Y5N3VBM29RRi9WYTgwdU01WlhxVW9MOUF6?=
 =?utf-8?B?K1JqcXJiT3lrWkx2RERLaGNRVmxYSlI3OCtLaVlTWTQzQzN6KzZIbVRKMTlW?=
 =?utf-8?B?bDZvWkdocE5tckoyYU1saGdoZ0Y5YmJPaHJzTCtZYTJQaXBZTlBUOGxIZWJJ?=
 =?utf-8?B?Zm5zYzYrMmgvNUxlSzg1bFRlQUtYUzFhZUlHU0tCS3c1MzZpREh2a1ZubDJE?=
 =?utf-8?B?UWdwaFRsR0FlNFZnWEVjZWxvS3gyZzZDUERuS0dtd0F1TGNIa2t3U0FWTWxm?=
 =?utf-8?B?bFJ3YmkvUjMzd3BuS3ljSzVoQlN4bldQdjh6WlJDVERocjYwUXo0SlQ1TVFx?=
 =?utf-8?B?M0ZMajE0ekJPaDBmYm8vZUJwRW94dVF5WUxQTWNSYjd3ci81a1RHejZzRVc5?=
 =?utf-8?B?cFkrblpDaWdRckVrVy9ERWs5aHlsTlVPeU8reS9SWXRReVp0cWxWYThDME1r?=
 =?utf-8?B?b3R5ek5FMUF4aWZ3SkNQclBxbU01MndFODk4dWt6WUR0eDkrNVdTNDU5MjBO?=
 =?utf-8?B?NzkzMHJaZDZvNEZKd0MxOU1kcHBOS1M1Y0MrYWNIUzVzcnFCY213d25UckJK?=
 =?utf-8?B?a3BYVE9BakxPLzNieG5TdTlLamY4ZWRnMkpFSUVtRGtEdEgvRWF1SjFuQ0Z3?=
 =?utf-8?B?TitSTCtMN2xrQXE0ZlQ0bHd1SGREYU1mcC9zNHlMQnhWR2xPUngxanFVbW9s?=
 =?utf-8?Q?QLRv9K7zvYBzxlDs=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 40d22633-231c-47b6-ceb1-08debc12d2f6
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 17:10:17.0051
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: X8LgPRnHhBJtUuPa8arV33dNGeYvYpVypupeGpFse7CPyjEC0CSGrLfj+/nqirTLK4D96zujDI97zQT8QN/zwgzKab4YHKEpobz1H1mm11M=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR03MB6156
X-purgate-ID: tlsNG-33051d/1779901822-38F72938-68A044DC/10/73395122804
X-purgate-type: spam
X-purgate-size: 2974

On 27/05/2026 6:08 pm, Roger Pau Monné wrote:
> On Wed, May 27, 2026 at 05:57:58PM +0100, Andrew Cooper wrote:
>> Commit 23e2479ff9de ("xen/domain: introduce DOMID_ANY") broke at least:
>>
>>  * xenstored domains
>>  * The Python bindings
>>  * The Ocaml bindings (i.e XAPI, and therefore XenServer/XCP-ng)
>>
>> by causing Xen to reject 0 (the wildcard sentinel for decades) and
>> DOMID_INVALID (a recently introduced wildcard sentinel) without adjusting the
>> callers of xc_domain_create().
>>
>> Under other circumstances I'd revert, but xenstored has gained a dependent use
>> of DOMID_ANY.
>>
>> Fix up the remaining in-tree callers, which covers init-xenstore-domain and
>> the python bindings.  The Ocaml bindings, like libxc itself, expose this ABI
>> detail to their caller, so need fixing individually.
> I think this will also affect the rust crate(s), even when those don't
> use the libxc bindings.
>
>> Leave a very clear message in CHANGELOG.md that all external callers need
>> altering.
>>
>> Fixes: 23e2479ff9de ("xen/domain: introduce DOMID_ANY")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

>
>> ---
>> CC: Anthony PERARD <anthony.perard@vates.tech>
>> CC: Michal Orzel <michal.orzel@amd.com>
>> CC: Jan Beulich <jbeulich@suse.com>
>> CC: Julien Grall <julien@xen.org>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Juergen Gross <jgross@suse.com>
>> CC: Denis Mukhin <dmukhin@ford.com>
>> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>
>> Both Roger and I said no to the DOMID_ANY change.  We both think that there is
>> still insufficient justification to be adding it as a new constant.  Next time
>> it's going to be a straight nack.
>> ---
>>  CHANGELOG.md                         | 4 ++++
>>  tools/helpers/init-xenstore-domain.c | 2 +-
>>  tools/python/xen/lowlevel/xc/xc.c    | 2 +-
>>  3 files changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>> index 25f5a192ed48..1b54acf912a5 100644
>> --- a/CHANGELOG.md
>> +++ b/CHANGELOG.md
>> @@ -7,6 +7,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>>  ## [4.22.0 UNRELEASED](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=staging) - TBD
>>  
>>  ### Changed
>> + - Users of xc_domain_create() must now pass DOMID_ANY to obtain an
>> +   automatically allocated domid.  The prior sentinel values (0 since the
>> +   birth of Xen, and DOMID_INVALID since Xen 4.21) now no longer represent a
>> +   wildcard input.
> Maybe also mention XEN_DOMCTL_createdomain explicitly, to notice is
> not only the callers of libxc that needs adjustment, but also users of
> the hypercall itself not going through libxc.

Good point.  I'll adjust to XEN_DOMCTL_createdomain/xc_domain_create()
locally.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed May 27 17:45:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 17:45:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320698.1587904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSIK9-0001jt-4M; Wed, 27 May 2026 17:45:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320698.1587904; Wed, 27 May 2026 17:45:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSIK9-0001jl-0v; Wed, 27 May 2026 17:45:45 +0000
Received: by outflank-mailman (input) for mailman id 1320698;
 Wed, 27 May 2026 17:45:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <cody.zuschlag@gmail.com>) id 1wSIK8-0001jf-5p
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 17:45:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSIK7-00Du24-En
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 19:45:43 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <cody.zuschlag@gmail.com>)
 id 6a172dc3-2eae-0a2a0a5409dd-0a2a4501c0c8-4
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 19:45:43 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <cody.zuschlag@gmail.com>)
 id 6a172dc7-c1f2-0a2a45010019-d155dd2cad31-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 19:45:43 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-459bf19e87bso7209439f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 10:45:43 -0700 (PDT)
Received: from localhost.localdomain ([2a01:e0a:e14:c050:ad5e:28bb:6fb1:ebb4])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45edb5a281dsm7209113f8f.24.2026.05.27.10.45.41
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Wed, 27 May 2026 10:45:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779903943; x=1780508743; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=NvmhS/NgrXeooCma/DKoQyoy8nF+zLesbmUkf0u8y4I=;
        b=MZElIViEKWEQkmtSdh+3qaD6G08pIHsq58+8r3z20syQXEEe4x/Cm8Rf1Rmuf2IlSG
         HBjWikS1rPyFrfIuy5J66+R+XQu+BHQe3KNnn4Uc9NVx8u18Wh5l4eOfJlR7+khdtkcT
         Ve5FXl8XdxoIXxI5Z0PXa3B2Etnm9JQOLn58Ey3aXRinsScpWMuImJ9TfxuB7wdD7ymp
         nTXSHi4hHb8m51H8j8BQ19tUuLWtVddr6c47ykXBd0s0On78PjnZK5rLmQVpD2SKitSD
         wfLO83lIjSu9N3LgcW759iV4Nch+7Lx+4xkzvqwFF2jhDXs0lJiNC7aK+ANvJJ2orZxE
         KZrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779903943; x=1780508743;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NvmhS/NgrXeooCma/DKoQyoy8nF+zLesbmUkf0u8y4I=;
        b=AYuRYcZTbtznF8Rnaksba944jyozoV+UVgV5KcVnvuI5k/wJmycvLoonMJFvAoTYL2
         7QQSDavN/OFsGWT8A12mSl1e5GrT39LXzhc3EJZicI6VU5Qu5VW4uUcPSE/i8Km7Qm0h
         Eu/oR8z0iVtvgMOfM1EA4K8aOt+g5+5rGT1E+LpIvMeAx2zUvMPOsCd6zfOENf+3UAGK
         zzyrBIj6kVP48+avnW8Z+lo8Y+Gy4h2BRjnVShmlUSCBefSU7zVFrwRRcOjVxWRsEFtp
         SN/uzWQMMVWTKqI6e7ry7pYIhgsbXeYC4xC58bSk+Zw7FEQuZKs6Aa7iWt25AnjcRUha
         JkWQ==
X-Gm-Message-State: AOJu0YwrmMVhy9Wbw9SSpnVlNlgXJI1fPRsD1X7u0K8x7KsYYudScypf
	S2kOF/G+uDweo0PRmHs4/kd1qjQF8Lbr6zkDPcXd17LNCw0wcTR7AdaJxkJifHXUsFk=
X-Gm-Gg: Acq92OG//X4tizorxAMc7wbw2kmn9m4hOwTBHJv9z4ymXV+oVXi8FE9SmJyaxKMw3uo
	8yE18tLa7Tsebn0AC1Ux/SWBAjazRhUXuFA8Lf5xwgFVT0Rh9GKQ9cBsLDjeKG+U/NrjSSh3qPQ
	4Q7mba0ZObut1MX+493Pm2ocktLLTgugiamFd0YiYo4ypfiwgP5y0jipwdiQ+MtQoP3ePo6084U
	ooDexg1fIFmKjYp4YJfQih+0pVJNW8cuRpvlYZTa6g7Pm9ZVeTLq6JscpogVwKVsnNbPXpsam5Q
	9BwvFN8wD5HTCqxnFY6TX0cERmJ+9YW6apg33qACvPufr0GJLE2jveVFPMyTS5M5h4Bav8AA0CJ
	kbOgvLkI/njP41P+XcVAq0or56NHaprw8tbGw1VevgGYYHqfY0P9nNjz2nPRN0H3ytL65ECYXCA
	jCcpsXzDf8xGmnZUQlVhXQCkV9E7DR9unUWLKIKdS81e1Iuidpm/4NBGTWxOdoLNYaCY7XkHs46
	I4=
X-Received: by 2002:a05:6000:25f6:b0:45e:9115:2982 with SMTP id ffacd0b85a97d-45eb38d8177mr39096635f8f.34.1779903942638;
        Wed, 27 May 2026 10:45:42 -0700 (PDT)
From: Cody Zuschlag <cody.zuschlag@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	anthony.perard@vates.tech,
	michal.orzel@amd.com,
	jbeulich@suse.com,
	julien@xen.org,
	roger.pau@citrix.com,
	sstabellini@kernel.org,
	Cody Zuschlag <cody.zuschlag@gmail.com>
Subject: [PATCH v3] docs/process: document AI-assisted patch tags
Date: Wed, 27 May 2026 19:45:28 +0200
Message-ID: <20260527174528.27903-1-cody.zuschlag@gmail.com>
X-Mailer: git-send-email 2.45.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1779903943-B735AFF4-90173066/0/0
X-purgate-type: clean
X-purgate-size: 2447

Add documentation for the Assisted-by tag to clarify how
AI-assisted tooling may be disclosed in Xen patches.

The guidance follows the Linux kernel documentation.

Assisted-by: ChatGPT:gpt-5.5
Signed-off-by: Cody Zuschlag <cody.zuschlag@gmail.com>
---
Changes in v3:
- Align wording more closely with Linux kernel guidance.
- Use verbatim Linux wording where practical.
- Use MUST NOT wording for AI agents adding Signed-off-by tags.

Changes in v2:
- Drop unintended executable bit change.

 docs/process/sending-patches.pandoc | 30 +++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/docs/process/sending-patches.pandoc b/docs/process/sending-patches.pandoc
index 798ecceb..79e24af1 100644
--- a/docs/process/sending-patches.pandoc
+++ b/docs/process/sending-patches.pandoc
@@ -195,6 +195,27 @@ E.g.:
 
     Requested-by: Jane Doe <jane.doe@example.org>
 
+### Assisted-by:
+
+When AI tools contribute to Xen development, proper attribution
+helps track the evolving role of AI in the development process.
+Contributions should include an `Assisted-by:` tag in the
+following format:
+
+    Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]
+
+Where:
+
+* `AGENT_NAME` is the name of the AI tool or framework
+* `MODEL_VERSION` is the specific model version used
+* `[TOOL1] [TOOL2]` are optional specialized analysis tools used
+  (e.g., coccinelle, sparse, smatch, clang-tidy)
+
+Basic development tools (git, gcc, make, editors) should not be listed.
+
+Example:
+
+    Assisted-by: Claude:claude-3-opus coccinelle sparse
+
 ### Signed-off-by:
 
 This mandatory tag specifies the author(s) of a patch (for each author a
@@ -209,6 +230,15 @@ E.g.:
 The author must be a natural person (not a team or just a company) and the
 `Signed-off-by:` tag must include the real name of the author (no pseudonym).
 
+AI agents MUST NOT add `Signed-off-by:` tags. Only humans can legally
+certify the Developer Certificate of Origin (DCO). The human submitter
+is responsible for:
+
+* Reviewing all AI-generated code
+* Ensuring compliance with licensing requirements
+* Adding their own `Signed-off-by:` tag to certify the DCO
+* Taking full responsibility for the contribution
+
 By signing the patch with her/his name the author explicitly confirms to have
 made the contribution conforming to the `Developer's Certificate of Origin`:
 
-- 
2.45.0



From xen-devel-bounces@lists.xenproject.org Wed May 27 19:51:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 19:51:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320724.1587913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSKI2-00020n-IH; Wed, 27 May 2026 19:51:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320724.1587913; Wed, 27 May 2026 19:51:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSKI2-00020g-FS; Wed, 27 May 2026 19:51:42 +0000
Received: by outflank-mailman (input) for mailman id 1320724;
 Wed, 27 May 2026 19:51:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Stewart.Hildebrand@amd.com>) id 1wSKI0-00020X-4t
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 19:51:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSKHz-00CHb8-6R
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 21:51:39 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 6a174b20-5cb7-0a2a0a5109dd-0a2a4504cff2-38
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 21:51:38 +0200
Received: from [52.101.56.63]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 6a174b49-1dec-0a2a45040019-3465383fe999-4
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 21:51:38 +0200
Received: from BN1PR10CA0010.namprd10.prod.outlook.com (2603:10b6:408:e0::15)
 by LV8PR12MB9271.namprd12.prod.outlook.com (2603:10b6:408:1ff::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Wed, 27 May
 2026 19:51:29 +0000
Received: from BN1PEPF00004687.namprd05.prod.outlook.com
 (2603:10b6:408:e0:cafe::5a) by BN1PR10CA0010.outlook.office365.com
 (2603:10b6:408:e0::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.13 via Frontend Transport; Wed, 27
 May 2026 19:51:29 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN1PEPF00004687.mail.protection.outlook.com (10.167.243.132) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.71.7 via Frontend Transport; Wed, 27 May 2026 19:51:28 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 27 May
 2026 14:51:28 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 27 May
 2026 12:51:28 -0700
Received: from [172.31.199.122] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend
 Transport; Wed, 27 May 2026 14:51:27 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KTmUXAqEOdFvZSxngLYF52qr6BY3XN+znYX0s+5i0icWv28A9Ya/dJ6I8VZHOXhgJfFH7DOqXD71Udsw7LugQ5UInXTQ3FxH2f25Fsn4qa8kmaNCh5U1cXaiBhTzFbE/DsZxtTyQt3zu5qP6/0x9sDeoxyIV3uuPXEv1T40ZwtBD9yMPvuBjNj2t719Bhox4U5I4N+uPUaBXtHYBTKYNHolUbnweC/Ai+7aBfBrGcKQLXWz2s8AJ0FgO15ZzMOV7E+v++GICKDaR9XSlCpRUgJFJ+W0Sgwj8JgRN6YSFjpPY+V8rWEqxqbvWufSnhXySpKGDGB3mGLgiyhVEL4PrHQ==
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=1ak7oUYIlWG8TbIkWnRm/18ov9LGVsz9Zrt/IChJepg=;
 b=DtF34fSvcIDsxA5sf8R23R4iKRCEeFFigauJfSlvBwEAVFFHNEjGr0MEGB1KyaBdXrbmdxW1IHFhUudx4iFc1q9pcjsiun7megryx8YgKcsGL3WHX44vVYjb3NlgeuMyMAojW/JoI8lMQvsqhQNjvnz6jzl9KCoyiB6uNnEJDH/1LYjyhlgG7bTkbcXA0nYDtdrSFmkvuZHAEYWHxxnbiwM45H48ukA9WsxLXf+kHvEwgmLkpLbvxYkcIi28PMsbwPv4oleQ/mi7tGIKEnd4qPyhbqJEaLVEVcqYPHSpuKyeVCeRfskj7gUDb0YhGJIi6gv7KG2IGk4fzAENGS3djQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=suse.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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1ak7oUYIlWG8TbIkWnRm/18ov9LGVsz9Zrt/IChJepg=;
 b=jKZLbWtx5ahKBMuQ0AoTRZH6SuFe5YmrTw5LAcxkYUAFjhAhL8VW7kiiYkAagr8/F6T8HhFzYgCYK1Sa4iwLwQpk5g3OV03Vlzp9TdW4kvpMQ2jjiFRZMTNUUNszuZzE4ca4Q/DLqVFHIBzRrd5nrj7Uf9UHvYPnB8rw8HGLHFs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <61fbcf6a-4533-4a1d-ac2a-0c8b2427d27d@amd.com>
Date: Wed, 27 May 2026 15:51:27 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/sched: remove stale file path comments in
 common/sched directory
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>, Furkan Caliskan
	<frn1furkan10@gmail.com>, <xen-devel@lists.xenproject.org>
CC: <roger.pau@citrix.com>, <dfaggioli@suse.com>, <gwd@xenproject.org>,
	<jbeulich@suse.com>
References: <20260525102539.27050-1-frn1furkan10@gmail.com>
 <20260526075236.14265-1-frn1furkan10@gmail.com>
 <f21b3696-187e-4526-9c34-bb56e9000898@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <f21b3696-187e-4526-9c34-bb56e9000898@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004687:EE_|LV8PR12MB9271:EE_
X-MS-Office365-Filtering-Correlation-Id: fbfc10eb-ef4e-4d0d-88a8-08debc29580a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|56012099006|11063799006|4143699003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	lGCgFQ7/xQ9HwcEGkMhOMPulmsAoaQsIwSuxAHbEN7G7NliL0xxf7hjxDNrBfdyFqPsjDIlpK7WJk93NIhCE/hzu7Znz4MLvlwGGMoroy29NGsI5KsHn2AV+m0MQcdvTnX2ZpOFkbvndAxz45oO7tuQGv69EB4Vw9+sdk4fQVTJfG9WUInGlhwW7f00/i6FJu8LpL4RY49bVvV+taAKvitJb0sIeqQ9WKSUCmeBs/faw23z/msTnObc3YIuZcEtCKx4M9UtIQj6giBhHym0DxeRQur6/2nsgbN/AqtMYc06foQ/dxtU55Mz50MdjdtMnrV+6ejM53ApeDXrwBdwhQ4dQvZHuOO2/QBakuTGWL19TkRVbqIZDnA+EoFCuwJuQuItWiL0r2totOtCjJRdaYECevT32q5qaioh+KzdNw1nu1nxdOy85e5abtqfb+MabU5yTAUL3xzs2H5HW58iT2QRnCm1S28MjTBNTULe2UrUEzWFhTf1mNcpbOWutQy45//0T/mdsecuIm56thvxLt4tpxFdF4dug2k7Sd//9IjYIQXgGXmNLwVquT96dP9CyuK+Up4Otrhe0Mx/KAb4O+K1iL/oyqs3bFxTRIeZxatdlbER6JpI3HAbw7rP2GP5EGfzmhNuMZ3tXM60dxLswvdyhREb7PjhipLf6XeWewXTtyW2nt479MXw7BIY3hkQWk598FAm36qimT0EvL4GCnqa7mce1OHVRQBvxKSH81No=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(56012099006)(11063799006)(4143699003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	7mrwlqb9LoO4fS+M3XSfI+/Lgi+29PCLCTpChCn/6aa/1mnvSLhyH0kz7OPf5qxkQtdqc+oRCfDofrEHs+lNt2otmVKTGsS26s8DFhG2WSTm2Pq1LQkw6rVNzkD7bNjAU7O93G0SHnxn7vgKQcVYkF4FQb4/RUVoay0kB6xesBY39t/TAEytvsFDakUvPS5H33sIFl0S9WkLe0A2X4K7h/zEgSo/ahtASAstSB7HlWYwMrTDot4dsLlNOcxxydEqtSksylO2H1hp/UbMO+5Kj7+ODJrbS0Kfh/iAi3+YgbK80iDwzb5LM96YbH24T28RWipRDY9Yv0BR8j9UbXz15eyG+pJFHTN+lMrCLdpfPleGin6hhR0PNTiiZ0g/qKnEXsyTT2cxpwZgcbAjIQA7IwAT6Cnj5fm1sRbNuvfyEyaZIhwLyB2dDzP4c2kxdsyh
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 19:51:28.9530
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fbfc10eb-ef4e-4d0d-88a8-08debc29580a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004687.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9271
X-purgate-ID: tlsNG-ebf023/1779911498-42B633FF-75671694/0/0
X-purgate-type: clean
X-purgate-size: 947

On 5/26/26 06:09, Jürgen Groß wrote:
> On 26.05.26 09:52, Furkan Caliskan wrote:
>> Commit 6cb4b01c03 ("xen/sched: move schedulers and cpupool coding to
>> dedicated directory") moved the scheduler files from xen/common/ to
>> xen/common/sched and renamed some of them, but did not update the
>> in-file path comments at the top of each file.
>>
>> Remove the comments rather than updating them, as they are redundant
>> information already conveyed by the filename itself.
>>
>> Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
>> Suggested-by: Juergen Gross <jgross@suse.com>
>> Signed-off-by: Furkan Caliskan <frn1furkan10@gmail.com>
> 
> Reviewed-by: Juergen Gross <jgross@suse.com>

For ARINC 653:
Acked-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

FYI, we are in the release cycle for 4.22, and I'm not sure this is justified to
be included in this release. IMO it would be OK to wait for the next cycle.


From xen-devel-bounces@lists.xenproject.org Wed May 27 20:48:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 20:48:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320744.1587921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSLAi-0000mv-K5; Wed, 27 May 2026 20:48:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320744.1587921; Wed, 27 May 2026 20:48:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSLAi-0000mn-Gx; Wed, 27 May 2026 20:48:12 +0000
Received: by outflank-mailman (input) for mailman id 1320744;
 Wed, 27 May 2026 20:48:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bp@alien8.de>) id 1wSLAg-0000mh-Ow
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 20:48:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSLAg-0097YP-52
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 22:48:10 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bp@alien8.de>)
 id 6a175836-5cb7-0a2a0a5109dd-0a2a45089f10-34
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 22:48:10 +0200
Received: from [65.109.113.108] (helo=mail.alien8.de)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bp@alien8.de>)
 id 6a175889-63b5-0a2a45080019-416d716c9cee-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 22:48:09 +0200
Received: from localhost (localhost.localdomain [127.0.0.1])
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 2B87C40E01B3; 
 Wed, 27 May 2026 20:48:09 +0000 (UTC)
Received: from mail.alien8.de ([127.0.0.1])
 by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id WxFx1lZgTAZy; Wed, 27 May 2026 20:47:59 +0000 (UTC)
Received: from stx.tnic (unknown [IPv6:2600:1700:38ca:c00:b8a3:f58e:8829:9ca6])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest
 SHA256) (No client certificate requested)
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 9056640E0031;
 Wed, 27 May 2026 20:47:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=alien8 header.d=alien8.de header.i="@alien8.de" header.h="Date:From:To:Cc:Subject:References:In-Reply-To"
X-Virus-Scanned: Debian amavisd-new at mail.alien8.de
Authentication-Results: mail.alien8.de (amavisd-new); dkim=pass (4096-bit key)
	header.d=alien8.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8;
	t=1779914879; bh=wGjwOLOD2iq11IIumJe2A1oiDvFcnGWGdAgKbbBNxWo=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=M0s4fF+h/2ur885teZ75bctUV7OMk+0UCiWuuVLrDoB9fOUF/yGvYgm8zmYIwHrX4
	 Ip7imdYYM+mHtpFfhiwoXPXN9alY1zaSHkb4O8XCfDSd9NFiHScUjEeUXbql8vCCol
	 LeTZ9lhtYZ/ylKubrIL4k8xKsCKcs/sV1s/WmKO2azfKjdZl8VqjpjWtcMHEvughXn
	 U8SpwqRT74F1oEMHcVpp1RZYL6gMhaN15TmMJW94pFAeGQPWMBldniUH3GO+S+15Ma
	 6joU8np5OcZzV5IzEZ14SbFupTu8rRNG/cbS84F9yIDAxrZbj+omc3odjmMVER/mzY
	 YC5r6wuAUI/9A0OzBeYzP5XRyx8RI4iw+PH95m6Rtxk5zaGK3X0DBZzjjLELzWCU2X
	 aCNMn3FK20QAypGwt4I5H3ts+k1G4wI3dmtQO1jt6dSut9Gj4k1c/5tZAcC8G+Bc+n
	 qQzXipnrLGZ9ltjzTAg9QMAFEk9iY52AKo3EsQjgaDVkfT6ul+O75MH5DITijKqCns
	 +Z74tO5ZkPy+XSNrYAaRnqmQFqt6AgJUChBfZ/lCTnbQGTFbZ+aR1m6p63+KwD6e0x
	 M/4RT1RBkadP5jA6WFgriTiERI8GKwPiKxG7Cqgn1zme83+5x1/S9Q6bhAYKOKXdVe
	 IHiJAVwFKJ9VFz1PCodFxl70=
Date: Wed, 27 May 2026 13:47:36 -0700
From: Borislav Petkov <bp@alien8.de>
To: Mauricio Faria de Oliveira <mfo@igalia.com>
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
	Alexey Dobriyan <adobriyan@gmail.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, kernel-dev@igalia.com,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	kernel test robot <lkp@intel.com>
Subject: Re: [PATCH v4 0/4] x86/pvh: fix unbootable VMs again (PVH + KASAN)
Message-ID: <20260527204736.GBahdYaKk6kAkIUYE3@fat_crate.local>
References: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
X-purgate-ID: tlsNG-c1860d/1779914890-BCF62DB1-A72754D2/0/0
X-purgate-type: clean
X-purgate-size: 724

On Tue, May 26, 2026 at 11:52:32AM -0300, Mauricio Faria de Oliveira wrote:
> The issue of unbootable VMs with CONFIG_PVH due to CONFIG_KASAN is back.

... and we care about that particular configuration because...?

>  arch/x86/boot/string.c               |  6 ++----
>  arch/x86/include/asm/cpuid/api.h     |  2 +-
>  arch/x86/include/asm/string.h        | 21 +-------------------
>  arch/x86/include/asm/string_inline.h | 37 ++++++++++++++++++++++++++++++++++++
>  arch/x86/platform/pvh/enlighten.c    |  3 ++-
>  5 files changed, 43 insertions(+), 26 deletions(-)

I fail to see justification for those gymnastics.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Wed May 27 21:39:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 21:39:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320771.1587931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSLy9-0007to-8V; Wed, 27 May 2026 21:39:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320771.1587931; Wed, 27 May 2026 21:39:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSLy9-0007th-5j; Wed, 27 May 2026 21:39:17 +0000
Received: by outflank-mailman (input) for mailman id 1320771;
 Wed, 27 May 2026 21:39:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <sstabellini@kernel.org>) id 1wSLy8-0007tb-9u
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 21:39:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSLy7-00FqI7-Ls
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 23:39:15 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a176452-bab6-0a2a0a5309dd-0a2a4502da98-22
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 23:39:15 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <sstabellini@kernel.org>)
 id 6a176482-af86-0a2a45020019-ac6904fec4f2-3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 23:39:15 +0200
Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18])
 by tor.source.kernel.org (Postfix) with ESMTP id C76F3605C1;
 Wed, 27 May 2026 21:39:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3EE651F000E9;
 Wed, 27 May 2026 21:39:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20260515 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:cc:Subject:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1779917953;
	bh=Th5FpWk0uCEzs8ns78CFdL3HcGsGRPRpl1Wzv8iVOug=;
	h=Date:From:To:cc:Subject:In-Reply-To:References;
	b=d6XFrF7tqGMOpNGE3ymh+lFslb9spPfqmt1Q4+YyOxr4tyKz0TTe77rSTtdi8nw/o
	 W9dw1S8lwKG4Qv7e6NvPj5QvEwCEkralbiFHXtJu57VIaFWC/FPsqC8qEGVpft2Cpa
	 F1HNOasaBvsfkcIB4KRO/mbMLICxDcNRRjtI+AUB6J/7WPhtefnS77ON3DquQ2g+rk
	 j8TE9pOYm+i4jIGYMw1XLKBRYnG/ZxMID26jhzc1lXHpzWI3TG9T3QBZIMNEpgCFOh
	 YIA203UkgCusB44wmU5QK4dvjX9HRFlproAjoHZrvoFhWfLkScsGv5lootE1G6JNb8
	 xK2Af2CL3GaPQ==
Date: Wed, 27 May 2026 14:39:12 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Cody Zuschlag <cody.zuschlag@gmail.com>
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, michal.orzel@amd.com, jbeulich@suse.com, 
    julien@xen.org, roger.pau@citrix.com, sstabellini@kernel.org
Subject: Re: [PATCH v3] docs/process: document AI-assisted patch tags
In-Reply-To: <20260527174528.27903-1-cody.zuschlag@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2605271439060.182011@ubuntu-linux-20-04-desktop>
References: <20260527174528.27903-1-cody.zuschlag@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-720697/1779917955-A9D77161-39C1F47A/0/0
X-purgate-type: clean
X-purgate-size: 373

On Wed, 27 May 2026, Cody Zuschlag wrote:
> Add documentation for the Assisted-by tag to clarify how
> AI-assisted tooling may be disclosed in Xen patches.
> 
> The guidance follows the Linux kernel documentation.
> 
> Assisted-by: ChatGPT:gpt-5.5
> Signed-off-by: Cody Zuschlag <cody.zuschlag@gmail.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


From xen-devel-bounces@lists.xenproject.org Wed May 27 22:50:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 22:50:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320794.1587940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSN4R-0000Ux-12; Wed, 27 May 2026 22:49:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320794.1587940; Wed, 27 May 2026 22:49:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSN4Q-0000Uq-UA; Wed, 27 May 2026 22:49:50 +0000
Received: by outflank-mailman (input) for mailman id 1320794;
 Wed, 27 May 2026 22:49:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <wei.liu@kernel.org>) id 1wSN4P-0000Uk-Ra
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 22:49:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSN4P-0003Si-7r
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 00:49:49 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <wei.liu@kernel.org>)
 id 6a177458-e002-0a2a0a5209dd-0a2a450a8da6-44
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 00:49:49 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <wei.liu@kernel.org>)
 id 6a17750b-56b3-0a2a450a0019-aceafc1f93f4-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 00:49:48 +0200
Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18])
 by sea.source.kernel.org (Postfix) with ESMTP id B402F43C31;
 Wed, 27 May 2026 22:49:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 180FC1F000E9;
 Wed, 27 May 2026 22:49:46 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20260515 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:Cc:Subject:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1779922186;
	bh=PY5zeAH8y8I+c7aveQ6/4ps0vQuGZRIQexgIvS04kLE=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To;
	b=MqqBbfkJx/shQqdeO9/KsHJy4We2GaKKrTHbovtoy7c0zosO/jO0tGRiPceiIG5+s
	 a1JYeWFhAby4DWgTTEXuqbDyCOkxMwUhAxfGM5PCaqjRt9r7QOhVzAGfFnRoDKXg6L
	 ssoMdsyAY1euJRcKfqd209ZkXJvcvSEb79oqwuXw5oIf+Nr8Pq3wf4a5e80L7dZWKQ
	 Cfb/8lo79/THtKbxFZ6vLBwwoBWbMuiXrMeywVycKsxsDSk67yPsJE4dhqW5s4PZje
	 4Fh++pIU91lkpV8gh+LMBLPMBTritQSSL5e/Q1NZaGgaAq0m6tfH9LkDG1y/GGUMx5
	 4afVkea7mmrzg==
Date: Wed, 27 May 2026 15:49:44 -0700
From: Wei Liu <wei.liu@kernel.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Daniel Lezcano <daniel.lezcano@kernel.org>,
	Thomas Gleixner <tglx@kernel.org>, John Stultz <jstultz@google.com>,
	Rick Edgecombe <rick.p.edgecombe@intel.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stephen Boyd <sboyd@kernel.org>, x86@kernel.org,
	linux-coco@lists.linux.dev, kvm@vger.kernel.org,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	Michael Kelley <mhklinux@outlook.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Nikunj A Dadhania <nikunj@amd.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	David Woodhouse <dwmw@amazon.co.uk>
Subject: Re: [PATCH v3 07/41] clocksource: hyper-v: Register sched_clock
 save/restore iff it's necessary
Message-ID: <20260527224944.GE3518940@liuwe-devbox-debian-v2.local>
References: <20260515191942.1892718-1-seanjc@google.com>
 <20260515191942.1892718-8-seanjc@google.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260515191942.1892718-8-seanjc@google.com>
X-purgate-ID: tlsNG-4011c0/1779922189-6F95E8B7-9EEB5490/0/0
X-purgate-type: clean
X-purgate-size: 1341

On Fri, May 15, 2026 at 12:19:08PM -0700, Sean Christopherson wrote:
> Register the Hyper-V reference counter (refcounter) callbacks for saving
> and restoring its PV sched_clock, if and only if the refcounter is
> actually being used for sched_clock.  Currently, Hyper-V overrides the
> save/restore hooks if the reference TSC available, whereas the Hyper-V
> refcounter code only overrides sched_clock if the reference TSC is
> available *and* it's not invariant.  The flaw is effectively papered over
> by invoking the "old" save/restore callbacks as part of save/restore, but
> that's unnecessary and fragile.
> 
> To avoid introducing more complexity, and to allow for additional cleanups
> of the PV sched_clock code, move the save/restore hooks and logic into
> hyperv_timer.c and simply wire up the hooks when overriding sched_clock
> itself.
> 
> Note, while the Hyper-V refcounter code is intended to be architecture
> neutral, CONFIG_PARAVIRT is firmly x86-only, i.e. adding a small amount of
> x86 specific code (which will be reduced in future cleanups) doesn't
> meaningfully pollute generic code.
> 
> Reviewed-by: Michael Kelley <mhklinux@outlook.com>
> Tested-by: Michael Kelley <mhklinux@outlook.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Acked-by: Wei Liu <wei.liu@kernel.org>


From xen-devel-bounces@lists.xenproject.org Wed May 27 22:50:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 22:50:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320799.1587950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSN4r-0001qB-94; Wed, 27 May 2026 22:50:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320799.1587950; Wed, 27 May 2026 22:50:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSN4r-0001q3-4x; Wed, 27 May 2026 22:50:17 +0000
Received: by outflank-mailman (input) for mailman id 1320799;
 Wed, 27 May 2026 22:50:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <wei.liu@kernel.org>) id 1wSN4p-0001pk-ER
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 22:50:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSN4o-0003Si-Qk
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 00:50:14 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <wei.liu@kernel.org>)
 id 6a177500-e002-0a2a0a5209dd-0a2a4508ba08-22
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 00:50:14 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <wei.liu@kernel.org>)
 id 6a177525-63b5-0a2a45080019-aceafc1fdf68-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 00:50:14 +0200
Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18])
 by sea.source.kernel.org (Postfix) with ESMTP id E51DD4093F;
 Wed, 27 May 2026 22:50:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3DB701F000E9;
 Wed, 27 May 2026 22:50:12 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20260515 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:Cc:Subject:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1779922212;
	bh=GkJ3bVBiuZQji2Ar/qCbKZ6GVH9IRMh8D8UCLnr9oL8=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To;
	b=nvHw6RfUo8q13AfIMSrfTXDnKC9TNLDz0TfgHCd2nAa7Rw0UjAxRs3PuQXAC70E4j
	 dUV1hwv8WgHSfxZTiVKtOmKoDRBvPNTMpfcCslLv244RjTgo5c6gRI5GHB7zSHISWE
	 +rOtjJEE4nQT8elNuQ+u2LpOrQI3xCZDHWpdl618JKxPF0n3G8f7YVeVwxbx6DPccG
	 gNOhaGkupr2qae3+gXPonWvl/UxwhoB09REhet3n6B/5aJtpf6NgtajOJaN7jmtUW9
	 k8x/PEH/sgeC+TFB3zT6b58ZeWVmK9c5NvlRkPOwb6lxLgv8IM8cbHvhO9q+ci1l3c
	 O7AO2Zur6/Jsw==
Date: Wed, 27 May 2026 15:50:11 -0700
From: Wei Liu <wei.liu@kernel.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Daniel Lezcano <daniel.lezcano@kernel.org>,
	Thomas Gleixner <tglx@kernel.org>, John Stultz <jstultz@google.com>,
	Rick Edgecombe <rick.p.edgecombe@intel.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stephen Boyd <sboyd@kernel.org>, x86@kernel.org,
	linux-coco@lists.linux.dev, kvm@vger.kernel.org,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	Michael Kelley <mhklinux@outlook.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Nikunj A Dadhania <nikunj@amd.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	David Woodhouse <dwmw@amazon.co.uk>
Subject: Re: [PATCH v3 08/41] clocksource: hyper-v: Drop wrappers to
 sched_clock save/restore helpers
Message-ID: <20260527225011.GF3518940@liuwe-devbox-debian-v2.local>
References: <20260515191942.1892718-1-seanjc@google.com>
 <20260515191942.1892718-9-seanjc@google.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260515191942.1892718-9-seanjc@google.com>
X-purgate-ID: tlsNG-c1860d/1779922214-BD360DB1-4C39A058/0/0
X-purgate-type: clean
X-purgate-size: 474

On Fri, May 15, 2026 at 12:19:09PM -0700, Sean Christopherson wrote:
> Now that all of the Hyper-V reference counter sched_clock code is located
> in a single file, drop the superfluous wrappers for the save/restore flows.
> 
> No functional change intended.
> 
> Reviewed-by: Michael Kelley <mhklinux@outlook.com>
> Tested-by: Michael Kelley <mhklinux@outlook.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Acked-by: Wei Liu <wei.liu@kernel.org>


From xen-devel-bounces@lists.xenproject.org Wed May 27 22:50:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 May 2026 22:50:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320806.1587958 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSN5J-0002K9-F7; Wed, 27 May 2026 22:50:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320806.1587958; Wed, 27 May 2026 22:50:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSN5J-0002K2-Bs; Wed, 27 May 2026 22:50:45 +0000
Received: by outflank-mailman (input) for mailman id 1320806;
 Wed, 27 May 2026 22:50:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <wei.liu@kernel.org>) id 1wSN5H-0002Jc-98
 for xen-devel@lists.xenproject.org; Wed, 27 May 2026 22:50:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSN5G-0003XJ-Lh
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 00:50:42 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <wei.liu@kernel.org>)
 id 6a17750c-5cb7-0a2a0a5109dd-0a2a450ba522-36
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 00:50:42 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <wei.liu@kernel.org>)
 id 6a177541-212f-0a2a450b0019-ac6904feb280-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 00:50:42 +0200
Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18])
 by tor.source.kernel.org (Postfix) with ESMTP id D7CE9605C1;
 Wed, 27 May 2026 22:50:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 07C7B1F000E9;
 Wed, 27 May 2026 22:50:40 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20260515 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:Cc:Subject:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1779922240;
	bh=9ySTpxezoAiBFX0/7zEUiI4eNm+Oaylf4HMVPn8Ys+k=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To;
	b=fhw7S3jJcbuIlgSOp29WFGHzJGB8ddxj21QfNQC7Kt+/DuNhL3vzkfrKDOK2vHXpU
	 9u3VGq1FBhaFxNhXtDsHCGmQxkVUA9Ohv3lMJq9Az76x2nDOwUB6XMvehUlh9tTFoC
	 EGh04Ya+JrGSncmzc441tVrPR6j2TzwyfIIw08LxXSPeFPEe6h/434pSvOdwDDpKsf
	 7oDoNQaqM5EhSla92HypgPbcuB4wUC2Nf3obbHOjWriw5lRJevLfjOdPHN4Upktnyr
	 vdvGgOrWVDC3Yq5FtR1nZ8EZ9nncfapF6wZnVzmeAn8Aci91MUqjjSrAfcng/qGtOj
	 ZNfnnt/SxyJXg==
Date: Wed, 27 May 2026 15:50:38 -0700
From: Wei Liu <wei.liu@kernel.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Kiryl Shutsemau <kas@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Daniel Lezcano <daniel.lezcano@kernel.org>,
	Thomas Gleixner <tglx@kernel.org>, John Stultz <jstultz@google.com>,
	Rick Edgecombe <rick.p.edgecombe@intel.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stephen Boyd <sboyd@kernel.org>, x86@kernel.org,
	linux-coco@lists.linux.dev, kvm@vger.kernel.org,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	Michael Kelley <mhklinux@outlook.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Nikunj A Dadhania <nikunj@amd.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	David Woodhouse <dwmw@amazon.co.uk>
Subject: Re: [PATCH v3 09/41] clocksource: hyper-v: Don't save/restore TSC
 offset when using HV sched_clock
Message-ID: <20260527225038.GG3518940@liuwe-devbox-debian-v2.local>
References: <20260515191942.1892718-1-seanjc@google.com>
 <20260515191942.1892718-10-seanjc@google.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260515191942.1892718-10-seanjc@google.com>
X-purgate-ID: tlsNG-42698a/1779922242-12573F3B-B5741393/0/0
X-purgate-type: clean
X-purgate-size: 953

On Fri, May 15, 2026 at 12:19:10PM -0700, Sean Christopherson wrote:
> Now that Hyper-V overrides the sched_clock save/restore hooks if and only
> sched_clock itself is set to the Hyper-V reference counter, drop the
> invocation of the "old" save/restore callbacks.  When the registration of
> the PV sched_clock was done separately from overriding the save/restore
> hooks, it was possible for Hyper-V to clobber the TSC save/restore
> callbacks without actually switching to the Hyper-V refcounter.
> 
> Enabling a PV sched_clock is a one-way street, i.e. the kernel will never
> revert to using TSC for sched_clock, and so there is no need to invoke the
> TSC save/restore hooks (and if there was, it belongs in common PV code).
> 
> Reviewed-by: Michael Kelley <mhklinux@outlook.com>
> Tested-by: Michael Kelley <mhklinux@outlook.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Acked-by: Wei Liu <wei.liu@kernel.org>


From xen-devel-bounces@lists.xenproject.org Thu May 28 00:28:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 00:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320865.1587984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSObe-0007hx-HI; Thu, 28 May 2026 00:28:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320865.1587984; Thu, 28 May 2026 00:28:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSObe-0007hq-ED; Thu, 28 May 2026 00:28:14 +0000
Received: by outflank-mailman (input) for mailman id 1320865;
 Thu, 28 May 2026 00:28:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wSObc-0007Hq-UH
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 00:28:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSObc-000CGb-Ac
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 02:28:12 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a178bd3-2eae-0a2a0a5409dd-0a2a45068b06-18
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 02:28:12 +0200
Received: from [209.85.218.50] (helo=mail-ej1-f50.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a178c1c-7371-0a2a45060019-d155da32ed7b-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 02:28:12 +0200
Received: by mail-ej1-f50.google.com with SMTP id
 a640c23a62f3a-bce386d5b85so1842002666b.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 17:28:12 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.25.69]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc5ece286sm655205266b.40.2026.05.27.17.28.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 17:28:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779928092; x=1780532892; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qdjncDbrY3UNar+wQG0hF6uZxmjzXxeMKUR7WBbGASk=;
        b=YMDvnVDBPtJoplOHMb2+wFUi/+pkS+kqRPY/yY5MxJScCmoValPvq8CfQrts38EA6E
         J2RbtR8+aC0hoN9k2+dEmI+FOD9C1KqZrOBvK3o2tj/ip41jNn6IFakU4tcGJR6usdnt
         t99wGVD8gdd63h/sP3obtzvsfbtvUZ1lrjrx2uRvNMahHBZfSVZyPlSbP853Him+aqCO
         x8bKy47oQ/vhf7U+HjnleCGokbPKpT03mNjWqNNWqW7WQaELg5N3hENJ3i8rb6e3hAgw
         oz2pRdQ0KEmSwzmM40aotX3keRglTFBsvfPZuTHORNOegFR8X/DBBbMnPPiZQBR9h+nN
         gqBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779928092; x=1780532892;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=qdjncDbrY3UNar+wQG0hF6uZxmjzXxeMKUR7WBbGASk=;
        b=Hd6RAf4sXwbnj2tCLj7EX93ABNcsXXCkLniw3PVdm7bxR2jgP7U18o/CU1CUqoKDbD
         4ZDrdvrlT+ptiOXoLllnReiL9DyEdcETnPmAq124qoD9J1Hk008jZLtx7fE511Ry0tmC
         rdir4dI59Umgu9Kr/MVEYtCYn+klCYDfp8ZwjI+qazOis2xxY7SFNGMuDzHmE6pFgKSt
         uA5whJJgl1loK+WFliuqlwVWnJPjQM2MKDAzLQN/y03mEqpuWrWg2J3M2pfJdYzC5mfD
         h5bCcexsQot7uUXGx6jyBdeRlf/X6/vy6hlN8kbttNy/kRYrHh+nBHlTj705VgdcgkJr
         5gEQ==
X-Gm-Message-State: AOJu0Yz1hQqHdW4VWjPJt8rxLh7g7ft5nlqpyABikm8HYSTX9EE3wGZC
	bDwXnnZ5AsGVpo2g7hdVg0wYYG8Vk7WFH6XayZc1u0NS2PnHVmAmT7xwXho6CQ==
X-Gm-Gg: Acq92OEEonm8TKLhMby5ZnyhqdZ407u9VvUSglbI/tyGAMnBjfY9mIG92qpFQjIL5af
	1kgT7cUpQ82pL0VGyZ/sIOqXQwnd5I6jgPJiIPbTb1TgHLFlSThsZ1eNRmVY4o9Z0qQYzAfUq0I
	i1042/eDq6xW6KHjiFy98mIkenoB4nLpdl/e9mY/D2dLDLqB0njxpEcUcR87WyoiyqU96+Qfurg
	cH2wlwm6tLTPTAz7F41tqawMqvoE5ig5lN4XMul34NMVl7MFdmoJHrjnTn8ylySG3l7E394xB2H
	cnZlnKYkaVPfjSVZg8KAGLB5zouAF47eR2+Zn3fyqVu5qWUhDSItSD+dp1p/WhS3Wx/YkwVTgzc
	hQwheZToMTNYfBn8wfUx1MeEfDX2MVdnts8sH0O4WT/b6J55RYqhxGuyTJuKX84YkVpj/na6l0x
	09RUDM3XBvSMiZSC8GUijqtMY1jPSvsqDhRq4k
X-Received: by 2002:a17:907:72d2:b0:bdb:4cf3:7035 with SMTP id a640c23a62f3a-bdd253390b1mr1374526266b.4.1779928091403;
        Wed, 27 May 2026 17:28:11 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 2/4] xen/arm: its: separate ITS and host LPI quirk scopes
Date: Thu, 28 May 2026 03:25:50 +0300
Message-ID: <5edcb9ec3e643133d115f009d0d942869ffb6955.1779922874.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779922874.git.mykola_kvach@epam.com>
References: <cover.1779922874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1779928092-8FB93D75-D9199EAC/0/0
X-purgate-type: clean
X-purgate-size: 18511

From: Mykola Kvach <mykola_kvach@epam.com>

ITS quirks can impose restrictions on memory accessed by the ITS itself and
on shared host LPI/Redistributor state. These scopes are not identical, so
a single global ITS quirk state makes the host LPI policy depend implicitly
on the quirks seen while initializing host ITSes.

Add per-ITS quirk_flags to struct host_its and keep a separate
host_lpi_flags state in the LPI code. The quirk table now records the
ITS-private and host LPI scopes explicitly through its_flags and lpi_flags.
The R-Car Gen4 quirk applies the same memory-related restrictions to both
scopes, preserving the existing behavior without relying on an implicit
aggregation step.

This also removes the old assumption that all host ITSes must expose the
same quirk state. Host LPI restrictions are accumulated only from quirk
entries that explicitly set lpi_flags.

Use per-ITS quirk_flags for GITS_CBASER, GITS_BASER<n> and ITT allocations.
Use host_lpi_flags directly in gic-v3-lpi.c for GICR_PROPBASER and
GICR_PENDBASER setup. Memory-related quirk bits are named GICV3_QUIRK_MEM_*
and are translated by shared gicv3_mem_get_*() helpers.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v2:
- Replace v1's single global ITS quirk flags and same-quirk validation with
  explicit per-ITS and host LPI quirk scopes.
- Drop the v1 ITS pre-initialization approach from this patch; host LPI
  allocation ordering is fixed separately by moving it after ITS init.
- Drop DT dma-noncoherent handling from this patch; firmware-provided
  non-coherency is handled separately with explicit ITS-node and GIC-node
  scopes.
- Keep host_lpi_flags owned by gic-v3-lpi.c and update it only with quirk
  flags that explicitly apply to host LPI/Redistributor state.
- Rename the current memory-related bits to GICV3_QUIRK_MEM_* and use
  shared gicv3_mem_get_*() helpers for register attributes and allocation
  flags.
---
 xen/arch/arm/gic-v3-its.c             | 113 ++++++++++++--------------
 xen/arch/arm/gic-v3-lpi.c             |  44 ++++++++--
 xen/arch/arm/include/asm/gic_v3_its.h |  19 +++--
 3 files changed, 101 insertions(+), 75 deletions(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index 7560d46c6d..dc48a84789 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -51,99 +51,81 @@ struct its_device {
     struct pending_irq *pend_irqs;      /* One struct per event */
 };
 
-/*
- * It is unlikely that a platform implements ITSes with different quirks,
- * so assume they all share the same.
- */
 struct its_quirk {
     const char *desc;
-    bool (*init)(struct host_its *hw_its);
     uint32_t iidr;
     uint32_t mask;
+    uint32_t its_flags;
+    /*
+     * lpi_flags are ORed into the global host LPI policy and must only
+     * contain additive restrictions. Non-additive LPI quirks need explicit
+     * handling.
+     */
+    uint32_t lpi_flags;
 };
 
-static uint32_t __ro_after_init its_quirk_flags;
-
-static bool gicv3_its_enable_quirk_gen4(struct host_its *hw_its)
-{
-    its_quirk_flags |= HOST_ITS_WORKAROUND_NC_NS |
-        HOST_ITS_WORKAROUND_32BIT_ADDR;
-
-    return true;
-}
-
 static const struct its_quirk its_quirks[] = {
     {
         .desc	= "R-Car Gen4",
         .iidr	= 0x0201743b,
         .mask	= 0xffffffffU,
-        .init	= gicv3_its_enable_quirk_gen4,
+        .its_flags = GICV3_QUIRK_MEM_NC_NS | GICV3_QUIRK_MEM_32BIT_ADDR,
+        .lpi_flags = GICV3_QUIRK_MEM_NC_NS | GICV3_QUIRK_MEM_32BIT_ADDR,
     },
     {
         /* Sentinel. */
     }
 };
 
-static struct its_quirk* gicv3_its_find_quirk(uint32_t iidr)
+static const struct its_quirk *__init gicv3_its_find_quirk(uint32_t iidr)
 {
     const struct its_quirk *quirks = its_quirks;
 
+    /*
+     * The first matching quirk wins. More specific quirks must be listed
+     * before broader IIDR-only entries.
+     */
     for ( ; quirks->desc; quirks++ )
     {
         if ( quirks->iidr == (quirks->mask & iidr) )
-            return (struct its_quirk *)quirks;
+            return quirks;
     }
 
     return NULL;
 }
 
-static void gicv3_its_enable_quirks(struct host_its *hw_its)
+static void __init gicv3_its_collect_quirks(struct host_its *hw_its)
 {
     uint32_t iidr = readl_relaxed(hw_its->its_base + GITS_IIDR);
     const struct its_quirk *quirk = gicv3_its_find_quirk(iidr);
 
-    if ( quirk && quirk->init(hw_its) )
-        printk("GICv3: enabling workaround for ITS: %s\n", quirk->desc);
-}
-
-static void gicv3_its_validate_quirks(void)
-{
-    const struct its_quirk *quirk = NULL, *prev = NULL;
-    const struct host_its *hw_its;
-
-    if ( list_empty(&host_its_list) )
-        return;
-
-    hw_its = list_first_entry(&host_its_list, struct host_its, entry);
-    prev = gicv3_its_find_quirk(readl_relaxed(hw_its->its_base + GITS_IIDR));
-
-    list_for_each_entry(hw_its, &host_its_list, entry)
+    if ( quirk )
     {
-        quirk = gicv3_its_find_quirk(readl_relaxed(hw_its->its_base + GITS_IIDR));
-        BUG_ON(quirk != prev);
-        prev = quirk;
+        hw_its->quirk_flags |= quirk->its_flags;
+        gicv3_lpi_update_host_flags(quirk->lpi_flags);
+        printk("GICv3: enabling workaround for ITS: %s\n", quirk->desc);
     }
 }
 
-uint64_t gicv3_its_get_cacheability(void)
+uint64_t gicv3_mem_get_cacheability(uint32_t flags)
 {
-    if ( its_quirk_flags & HOST_ITS_WORKAROUND_NC_NS )
+    if ( flags & GICV3_QUIRK_MEM_NC_NS )
         return GIC_BASER_CACHE_nC;
 
     return GIC_BASER_CACHE_RaWaWb;
 }
 
-uint64_t gicv3_its_get_shareability(void)
+uint64_t gicv3_mem_get_shareability(uint32_t flags)
 {
-    if ( its_quirk_flags & HOST_ITS_WORKAROUND_NC_NS )
+    if ( flags & GICV3_QUIRK_MEM_NC_NS )
         return GIC_BASER_NonShareable;
 
     return GIC_BASER_InnerShareable;
 }
 
-unsigned int gicv3_its_get_memflags(void)
+unsigned int gicv3_mem_get_alloc_flags(uint32_t flags)
 {
-    if ( its_quirk_flags & HOST_ITS_WORKAROUND_32BIT_ADDR )
+    if ( flags & GICV3_QUIRK_MEM_32BIT_ADDR )
         return MEMF_bits(32);
 
     return 0;
@@ -390,13 +372,17 @@ static void *its_map_cbaser(struct host_its *its)
     uint64_t reg;
     unsigned int order;
     void *buffer;
+    uint64_t cacheability = gicv3_mem_get_cacheability(its->quirk_flags);
+    uint64_t shareability = gicv3_mem_get_shareability(its->quirk_flags);
+    unsigned int memflags = gicv3_mem_get_alloc_flags(its->quirk_flags);
 
-    reg  = gicv3_its_get_shareability() << GITS_BASER_SHAREABILITY_SHIFT;
-    reg |= GIC_BASER_CACHE_SameAsInner << GITS_BASER_OUTER_CACHEABILITY_SHIFT;
-    reg |= gicv3_its_get_cacheability() << GITS_BASER_INNER_CACHEABILITY_SHIFT;
+    reg  = MASK_INSR(shareability, GITS_BASER_SHAREABILITY_MASK);
+    reg |= MASK_INSR(GIC_BASER_CACHE_SameAsInner,
+                     GITS_BASER_OUTER_CACHEABILITY_MASK);
+    reg |= MASK_INSR(cacheability, GITS_BASER_INNER_CACHEABILITY_MASK);
 
     order = get_order_from_bytes(max(ITS_CMD_QUEUE_SZ, SZ_64K));
-    buffer = alloc_xenheap_pages(order, gicv3_its_get_memflags());
+    buffer = alloc_xenheap_pages(order, memflags);
     if ( !buffer )
         return NULL;
 
@@ -437,8 +423,8 @@ static void *its_map_cbaser(struct host_its *its)
 /* The ITS BASE registers work with page sizes of 4K, 16K or 64K. */
 #define BASER_PAGE_BITS(sz) ((sz) * 2 + 12)
 
-static int its_map_baser(void __iomem *basereg, uint64_t regc,
-                         unsigned int nr_items)
+static int its_map_baser(struct host_its *its, void __iomem *basereg,
+                         uint64_t regc, unsigned int nr_items)
 {
     uint64_t attr, reg;
     unsigned int entry_size = GITS_BASER_ENTRY_SIZE(regc);
@@ -446,10 +432,14 @@ static int its_map_baser(void __iomem *basereg, uint64_t regc,
     unsigned int table_size;
     unsigned int order;
     void *buffer;
+    uint64_t cacheability = gicv3_mem_get_cacheability(its->quirk_flags);
+    uint64_t shareability = gicv3_mem_get_shareability(its->quirk_flags);
+    unsigned int memflags = gicv3_mem_get_alloc_flags(its->quirk_flags);
 
-    attr  = gicv3_its_get_shareability() << GITS_BASER_SHAREABILITY_SHIFT;
-    attr |= GIC_BASER_CACHE_SameAsInner << GITS_BASER_OUTER_CACHEABILITY_SHIFT;
-    attr |= gicv3_its_get_cacheability() << GITS_BASER_INNER_CACHEABILITY_SHIFT;
+    attr  = MASK_INSR(shareability, GITS_BASER_SHAREABILITY_MASK);
+    attr |= MASK_INSR(GIC_BASER_CACHE_SameAsInner,
+                      GITS_BASER_OUTER_CACHEABILITY_MASK);
+    attr |= MASK_INSR(cacheability, GITS_BASER_INNER_CACHEABILITY_MASK);
 
     /*
      * Setup the BASE register with the attributes that we like. Then read
@@ -463,7 +453,7 @@ retry:
     table_size = min(table_size, 256U << BASER_PAGE_BITS(pagesz));
 
     order = get_order_from_bytes(max(table_size, BIT(BASER_PAGE_BITS(pagesz), U)));
-    buffer = alloc_xenheap_pages(order, gicv3_its_get_memflags());
+    buffer = alloc_xenheap_pages(order, memflags);
     if ( !buffer )
         return -ENOMEM;
 
@@ -562,7 +552,7 @@ static int gicv3_its_init_single_its(struct host_its *hw_its)
     if ( ret )
         return ret;
 
-    gicv3_its_enable_quirks(hw_its);
+    gicv3_its_collect_quirks(hw_its);
 
     reg = readq_relaxed(hw_its->its_base + GITS_TYPER);
     hw_its->devid_bits = GITS_TYPER_DEVICE_ID_BITS(reg);
@@ -584,18 +574,19 @@ static int gicv3_its_init_single_its(struct host_its *hw_its)
         case GITS_BASER_TYPE_NONE:
             continue;
         case GITS_BASER_TYPE_DEVICE:
-            ret = its_map_baser(basereg, reg, BIT(hw_its->devid_bits, UL));
+            ret = its_map_baser(hw_its, basereg, reg,
+                                BIT(hw_its->devid_bits, UL));
             if ( ret )
                 return ret;
             break;
         case GITS_BASER_TYPE_COLLECTION:
-            ret = its_map_baser(basereg, reg, num_possible_cpus());
+            ret = its_map_baser(hw_its, basereg, reg, num_possible_cpus());
             if ( ret )
                 return ret;
             break;
         /* In case this is a GICv4, provide a (dummy) vPE table as well. */
         case GITS_BASER_TYPE_VCPU:
-            ret = its_map_baser(basereg, reg, 1);
+            ret = its_map_baser(hw_its, basereg, reg, 1);
             if ( ret )
                 return ret;
             break;
@@ -730,6 +721,7 @@ int gicv3_its_map_guest_device(struct domain *d,
     struct its_device *dev = NULL;
     struct rb_node **new = &d->arch.vgic.its_devices.rb_node, *parent = NULL;
     int i, ret = -ENOENT;      /* "i" must be signed to check for >= 0 below. */
+    unsigned int memflags;
     unsigned int order;
 
     hw_its = gicv3_its_find_by_doorbell(host_doorbell);
@@ -793,8 +785,9 @@ int gicv3_its_map_guest_device(struct domain *d,
     ret = -ENOMEM;
 
     /* An Interrupt Translation Table needs to be 256-byte aligned. */
+    memflags = gicv3_mem_get_alloc_flags(hw_its->quirk_flags);
     order = get_order_from_bytes(max(nr_events * hw_its->itte_size, 256UL));
-    itt_addr = alloc_xenheap_pages(order, gicv3_its_get_memflags());
+    itt_addr = alloc_xenheap_pages(order, memflags);
     if ( !itt_addr )
         goto out_unlock;
 
@@ -1206,8 +1199,6 @@ int gicv3_its_init(void)
             return ret;
     }
 
-    gicv3_its_validate_quirks();
-
     return 0;
 }
 
diff --git a/xen/arch/arm/gic-v3-lpi.c b/xen/arch/arm/gic-v3-lpi.c
index 9ee338edc2..35f93e4756 100644
--- a/xen/arch/arm/gic-v3-lpi.c
+++ b/xen/arch/arm/gic-v3-lpi.c
@@ -78,9 +78,29 @@ struct lpi_redist_data {
 
 static DEFINE_PER_CPU(struct lpi_redist_data, lpi_redist);
 
+/*
+ * Host LPI flags are scoped to shared LPI/Redistributor state, not to an
+ * ITS instance. Arm IHI 0069H.b section 5.1.1 says "LPI configuration is
+ * global". Section 12.11.33 (GICR_PROPBASER) makes mismatched values
+ * UNPREDICTABLE for Redistributors that share an LPI Configuration table
+ * while GICR_CTLR.EnableLPIs == 1. Section 12.11.32 (GICR_PENDBASER)
+ * similarly makes mismatched OuterCache, Shareability or InnerCache values
+ * across Redistributors UNPREDICTABLE while GICR_CTLR.EnableLPIs == 1.
+ *
+ * Keep this policy in the LPI code and accumulate only explicit LPI/RD
+ * restrictions into it. Per-ITS restrictions stay in host_its::quirk_flags
+ * for GITS_CBASER, GITS_BASER<n> and ITT memory.
+ */
+static uint32_t __ro_after_init host_lpi_flags;
+
 #define MAX_NR_HOST_LPIS   (lpi_data.max_host_lpi_ids - LPI_OFFSET)
 #define HOST_LPIS_PER_PAGE      (PAGE_SIZE / sizeof(union host_lpi))
 
+void __init gicv3_lpi_update_host_flags(uint32_t flags)
+{
+    host_lpi_flags |= flags;
+}
+
 static union host_lpi *gic_get_host_lpi(uint32_t plpi)
 {
     union host_lpi *block;
@@ -228,6 +248,7 @@ static int gicv3_lpi_allocate_pendtable(unsigned int cpu)
 {
     void *pendtable;
     unsigned int order;
+    unsigned int memflags = gicv3_mem_get_alloc_flags(host_lpi_flags);
 
     if ( per_cpu(lpi_redist, cpu).pending_table )
         return -EBUSY;
@@ -239,7 +260,7 @@ static int gicv3_lpi_allocate_pendtable(unsigned int cpu)
      * physically contiguous memory.
      */
     order = get_order_from_bytes(max(lpi_data.max_host_lpi_ids / 8, (unsigned long)SZ_64K));
-    pendtable = alloc_xenheap_pages(order, gicv3_its_get_memflags());
+    pendtable = alloc_xenheap_pages(order, memflags);
     if ( !pendtable )
         return -ENOMEM;
 
@@ -262,6 +283,8 @@ static int gicv3_lpi_set_pendtable(void __iomem *rdist_base)
 {
     const void *pendtable = this_cpu(lpi_redist).pending_table;
     uint64_t val;
+    uint64_t cacheability = gicv3_mem_get_cacheability(host_lpi_flags);
+    uint64_t shareability = gicv3_mem_get_shareability(host_lpi_flags);
 
     /*
      * The memory should have been allocated while preparing the CPU (or
@@ -275,9 +298,10 @@ static int gicv3_lpi_set_pendtable(void __iomem *rdist_base)
 
     ASSERT(!(virt_to_maddr(pendtable) & ~GENMASK(51, 16)));
 
-    val  = gicv3_its_get_cacheability() << GICR_PENDBASER_INNER_CACHEABILITY_SHIFT;
-    val |= GIC_BASER_CACHE_SameAsInner << GICR_PENDBASER_OUTER_CACHEABILITY_SHIFT;
-    val |= gicv3_its_get_shareability() << GICR_PENDBASER_SHAREABILITY_SHIFT;
+    val  = MASK_INSR(cacheability, GICR_PENDBASER_INNER_CACHEABILITY_MASK);
+    val |= MASK_INSR(GIC_BASER_CACHE_SameAsInner,
+                     GICR_PENDBASER_OUTER_CACHEABILITY_MASK);
+    val |= MASK_INSR(shareability, GICR_PENDBASER_SHAREABILITY_MASK);
     val |= GICR_PENDBASER_PTZ;
     val |= virt_to_maddr(pendtable);
 
@@ -304,10 +328,13 @@ static int gicv3_lpi_set_proptable(void __iomem * rdist_base)
 {
     uint64_t reg;
     unsigned int order;
+    uint64_t cacheability = gicv3_mem_get_cacheability(host_lpi_flags);
+    uint64_t shareability = gicv3_mem_get_shareability(host_lpi_flags);
 
-    reg  = gicv3_its_get_cacheability() << GICR_PROPBASER_INNER_CACHEABILITY_SHIFT;
-    reg |= GIC_BASER_CACHE_SameAsInner << GICR_PROPBASER_OUTER_CACHEABILITY_SHIFT;
-    reg |= gicv3_its_get_shareability() << GICR_PROPBASER_SHAREABILITY_SHIFT;
+    reg  = MASK_INSR(cacheability, GICR_PROPBASER_INNER_CACHEABILITY_MASK);
+    reg |= MASK_INSR(GIC_BASER_CACHE_SameAsInner,
+                     GICR_PROPBASER_OUTER_CACHEABILITY_MASK);
+    reg |= MASK_INSR(shareability, GICR_PROPBASER_SHAREABILITY_MASK);
 
     /*
      * The property table is shared across all redistributors, so allocate
@@ -317,9 +344,10 @@ static int gicv3_lpi_set_proptable(void __iomem * rdist_base)
     {
         /* The property table holds one byte per LPI. */
         void *table;
+        unsigned int memflags = gicv3_mem_get_alloc_flags(host_lpi_flags);
 
         order = get_order_from_bytes(max(lpi_data.max_host_lpi_ids, (unsigned long)SZ_4K));
-        table = alloc_xenheap_pages(order, gicv3_its_get_memflags());
+        table = alloc_xenheap_pages(order, memflags);
 
         if ( !table )
             return -ENOMEM;
diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include/asm/gic_v3_its.h
index fc5a84892c..3e8dcc4ae9 100644
--- a/xen/arch/arm/include/asm/gic_v3_its.h
+++ b/xen/arch/arm/include/asm/gic_v3_its.h
@@ -105,13 +105,15 @@
 #define GICV3_ITS_SIZE                  SZ_128K
 
 #include <xen/device_tree.h>
+#include <xen/init.h>
 #include <xen/rbtree.h>
 
 #define HOST_ITS_FLUSH_CMD_QUEUE        (1U << 0)
 #define HOST_ITS_USES_PTA               (1U << 1)
 
-#define HOST_ITS_WORKAROUND_NC_NS       (1U << 0)
-#define HOST_ITS_WORKAROUND_32BIT_ADDR  (1U << 1)
+/* GICv3 memory-related quirk flags. */
+#define GICV3_QUIRK_MEM_NC_NS           (1U << 0)
+#define GICV3_QUIRK_MEM_32BIT_ADDR      (1U << 1)
 
 /* We allocate LPIs on the hosts in chunks of 32 to reduce handling overhead. */
 #define LPI_BLOCK                       32U
@@ -128,6 +130,11 @@ struct host_its {
     unsigned int itte_size;
     spinlock_t cmd_lock;
     void *cmd_buf;
+    /*
+     * Workaround flags scoped to this ITS instance, including memory
+     * accessed through GITS_CBASER, GITS_BASER<n> and ITT memory.
+     */
+    uint32_t quirk_flags;
     unsigned int flags;
 };
 
@@ -157,6 +164,7 @@ int gicv3_lpi_init_rdist(void __iomem * rdist_base);
 /* Initialize the host structures for LPIs and the host ITSes. */
 int gicv3_lpi_init_host_lpis(unsigned int host_lpi_bits);
 int gicv3_its_init(void);
+void __init gicv3_lpi_update_host_flags(uint32_t flags);
 
 /* Store the physical address and ID for each redistributor as read from DT. */
 void gicv3_set_redist_address(paddr_t address, unsigned int redist_id);
@@ -199,10 +207,9 @@ struct pending_irq *gicv3_assign_guest_event(struct domain *d,
 void gicv3_lpi_update_host_entry(uint32_t host_lpi, int domain_id,
                                  uint32_t virt_lpi);
 
-/* ITS quirks handling. */
-uint64_t gicv3_its_get_cacheability(void);
-uint64_t gicv3_its_get_shareability(void);
-unsigned int gicv3_its_get_memflags(void);
+uint64_t gicv3_mem_get_cacheability(uint32_t flags);
+uint64_t gicv3_mem_get_shareability(uint32_t flags);
+unsigned int gicv3_mem_get_alloc_flags(uint32_t flags);
 
 #else
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 28 00:28:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 00:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320863.1587966 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSObc-0007Hz-Vp; Thu, 28 May 2026 00:28:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320863.1587966; Thu, 28 May 2026 00:28:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSObc-0007Hr-SV; Thu, 28 May 2026 00:28:12 +0000
Received: by outflank-mailman (input) for mailman id 1320863;
 Thu, 28 May 2026 00:28:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wSOba-0007He-GT
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 00:28:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSObZ-00CjPB-St
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 02:28:09 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a178c07-bab6-0a2a0a5309dd-0a2a450194b6-10
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 02:28:09 +0200
Received: from [209.85.218.54] (helo=mail-ej1-f54.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a178c19-c1f2-0a2a45010019-d155da36b835-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 02:28:09 +0200
Received: by mail-ej1-f54.google.com with SMTP id
 a640c23a62f3a-bd3d7c29b4dso1773747866b.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 17:28:09 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.25.69]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc5ece286sm655205266b.40.2026.05.27.17.28.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 17:28:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779928089; x=1780532889; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=havkcPvmIjUNQ6L52uTakTmu7Gyt5Yv9I1018A5p+IM=;
        b=C9ikIMdfABwzNxPOqQ4rS/w9HoG1NQPormVueq0HeLWejvEjdFhjbhc5TZwBd8cJno
         QQW+Fm/DMeUu9w5Ho1cDZFjjRgHu7/G2YfT8ASYYY/F9h8Et0fMeqb6bi/sazo7TZT9l
         P6dXaNBfSzastNbZNv694YCLMooE82YDv3GKgevOo0DdbM9ALLOkhHgro66k49oUswLM
         oXGlDU6FQHqKmWUexmyUxmrwp0UQqlDs8O9UDSxaEzSK3vW+ZmJd7241rnPyQg1y4tdE
         gTwnnKPjIZgcSxXFZHxBJyIv0gytKLhrSSKEno4A6gjG3VTXqrJCLw35s6AK9rjBwg10
         O78g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779928089; x=1780532889;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=havkcPvmIjUNQ6L52uTakTmu7Gyt5Yv9I1018A5p+IM=;
        b=oODYo5lhoIYhVUVjYaZyBUiLfHGfYvEeDwlPnxkGcXX0jqhTKFn4pu1QmR5OdlzBeF
         60BAvYsCvUc5Qq8cUD3t+zLRvTWWZwCWVsAwAPaOC7RePi11Jel/zVcaG+R5noWODQQc
         awwefykv2OBco0EM9VLXa2iaqnOhnLUyzHazKzhpbrnEnsDaevlt01ivY+QRu27veW4j
         QE+tCfas8CnPAB0o1FAmwKob8TC0adG8DYrnzKzHR5tcjzRESsXseI2bNopAWyUVrf1l
         83enrAF57JCVABrFgHmyWQJl7dWL1Fb+07htKu64DNMAwqKFcQTM6CLhLM6FsZJtgnbE
         crOw==
X-Gm-Message-State: AOJu0YzC0IUjDkREO1nS0ROjmIxd+ER9npCrothguvoLuf5SjX4O5UB3
	Q6cTAIiMYVRVvuAXPnxqhrunAklTNiKFkpYSdnBvbqTbGDa/Y+BdyTDcHOA3ag==
X-Gm-Gg: Acq92OFJHVoP/M7nJkieq+TzKa6rYQU63dpMcOJZfIiaRxqZhGyxuuV2eCWpNaSs5gZ
	sKPlnpu8U6uR3tCw4fCFQx6GqaLGPM974D/T4vnIjA/ssVLb+o8z9r3Jg0DVPdsC4IiX16/XgfJ
	poGOiKo4gR7jnPouTLJPxTiAwXtl0cAD8KcDDI/Dbq/ULVlE3ToviOAXMx5YuCET4bnIEy9IRIK
	VFZCI1HdBZnUksdbta/pIx+xw40JlvfTigcmgDT3h6L/IyDhHXebw+Ld2epWQgUtrcfyVLP1ejA
	PywDBSmorPXodTKV75RAxSRp0c2yc0TkXCsEVWduQGKSnOUzyBN0NCPoKLBWM4J2a1s3hMHS9Ee
	F99iq2F9MuviqESAECyS1UkO3rzkns/OytuZkAQvI1kWqV+NsufjyIwxLZfG7fbI84HuqsO7NFQ
	rtk4pT0Ut1gTVlzoWAEQ/McwP+bxgRioczXvSBMyk+9GDcaQE=
X-Received: by 2002:a17:907:9729:b0:bd4:8b66:c374 with SMTP id a640c23a62f3a-bdd22944971mr1442622166b.9.1779928089236;
        Wed, 27 May 2026 17:28:09 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v2 0/4] xen/arm: gicv3: defer host LPI init and split ITS/LPI quirk scopes
Date: Thu, 28 May 2026 03:25:48 +0300
Message-ID: <cover.1779922874.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1779928089-B6342FF4-CCBC408E/0/0
X-purgate-type: clean
X-purgate-size: 4421

From: Mykola Kvach <mykola_kvach@epam.com>

Hi all,

This series fixes the ordering of host LPI state initialization relative to
ITS quirk discovery, and then cleans up how ITS-private and host
LPI/Redistributor quirk effects are represented.

Patch 1 is the release-critical fix. It moves host LPI initialization after
gicv3_its_init(), so that the host LPI allocation path observes the ITS
quirks discovered during ITS initialization. This patch is intended for
4.22.

Patches 2-4 are follow-up cleanup and DT attribute handling. They are included
to show the intended direction and to avoid carrying the old global ITS quirk
model forward, but they are not required for taking the 4.22 fix if the
release freeze makes that preferable.

The main change from v1 is that this version no longer tries to pre-initialize
ITS quirks before host LPI setup. Instead, the minimal fix is to defer the
existing host LPI initialization until after ITS initialization. The follow-up
patches then split the quirk state by scope:

  * per-ITS flags are used for memory/state accessed by a particular ITS, such
    as GITS_CBASER, GITS_BASER<n> and ITT memory;

  * host LPI flags are used for shared Redistributor/LPI state, such as
    GICR_PROPBASER and GICR_PENDBASER.

This avoids relying on an implicit global aggregation of per-ITS quirk state.
If an ITS-discovered quirk also affects the host LPI/Redistributor path, that
effect is now expressed explicitly through the quirk entry's lpi_flags.

The series also handles the DT dma-noncoherent property according to the node
where it appears. An ITS subnode property affects only the corresponding ITS.
A top-level GIC node property affects only the host LPI/Redistributor policy.
The property is not inherited implicitly between the parent GIC node and ITS
subnodes.

The Orange Pi 5 / RK3588-specific quirk patch from v1 has been dropped. The
previous version modelled the issue as a 32-bit ITS addressing restriction.
This version handles the relevant non-coherent/non-shareable GIC integration
through the standard DT dma-noncoherent property on the GIC and ITS nodes
instead.
---

Changes since v1

* Reordered the series so that the minimal host LPI initialization ordering fix
  is first. Patch 1 is intended for 4.22.

* Dropped the v1 ITS pre-initialization hook.

* Moved the existing gicv3_lpi_init_host_lpis() call after gicv3_its_init()
  instead, so host LPI state is allocated after ITS workaround discovery.

* Checked the return value from gicv3_lpi_init_host_lpis() and made failure
  fatal once the ITS/LPI path is enabled.

* Replaced the old single global ITS quirk state with separate per-ITS and
  host LPI quirk scopes.

* Removed the implicit aggregation of all per-ITS quirks into the host LPI
  policy. Host LPI effects are now expressed explicitly with lpi_flags.

* Kept per-ITS flags for ITS-private allocations:
  - GITS_CBASER;
  - GITS_BASER<n>;
  - ITT memory.

* Kept host LPI flags for Redistributor/LPI state:
  - GICR_PROPBASER;
  - GICR_PENDBASER.

* Refactored ITS quirk matching from fixed IIDR/mask fields to a generic
  match(hw_its, data) callback plus opaque data.

* Kept first-match semantics explicit. More specific entries must be listed
  before broader IIDR-only entries.

* Added a reusable IIDR matcher and used it after checking the Renesas
  machine compatibles for the R-Car Gen4 quirk.

* Split dma-noncoherent handling by DT node scope:
  - ITS subnode dma-noncoherent affects only the matching ITS;
  - top-level GIC dma-noncoherent affects only the host LPI/Redistributor
    policy.

* Dropped the Orange Pi 5 / RK3588-specific quirk patch from v1. The
  non-coherent GIC integration is now handled through DT dma-noncoherent
  properties instead of a Xen-side platform quirk.

Mykola Kvach (4):
  xen/arm: gic: defer host LPI allocation until after ITS init
  xen/arm: its: separate ITS and host LPI quirk scopes
  xen/arm: its: refactor ITS quirk matching
  xen/arm: its: handle dma-noncoherent on GIC and ITS nodes

 xen/arch/arm/gic-v3-its.c             | 171 ++++++++++++++++----------
 xen/arch/arm/gic-v3-lpi.c             |  66 ++++++++--
 xen/arch/arm/gic-v3.c                 |  14 ++-
 xen/arch/arm/include/asm/gic_v3_its.h |  19 ++-
 4 files changed, 190 insertions(+), 80 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 28 00:28:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 00:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320867.1588003 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSObi-0008AJ-42; Thu, 28 May 2026 00:28:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320867.1588003; Thu, 28 May 2026 00:28:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSObi-0008A6-02; Thu, 28 May 2026 00:28:18 +0000
Received: by outflank-mailman (input) for mailman id 1320867;
 Thu, 28 May 2026 00:28:16 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wSObg-0007lo-3E
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 00:28:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSObe-006N05-BN
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 02:28:14 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a178bc5-e002-0a2a0a5209dd-0a2a4508c6ae-38
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 02:28:14 +0200
Received: from [209.85.208.42] (helo=mail-ed1-f42.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a178c1e-63b5-0a2a45080019-d155d02ab409-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 02:28:14 +0200
Received: by mail-ed1-f42.google.com with SMTP id
 4fb4d7f45d1cf-68aad378a26so928249a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 17:28:14 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.25.69]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc5ece286sm655205266b.40.2026.05.27.17.28.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 17:28:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779928094; x=1780532894; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bPfJ90vz5LA/T++PBxy4wc5LMm+G5DLn0jpA+XJFuNE=;
        b=BXD4QNGsvIDsUXTrirQe9itgDHx3UchKuz7kh5pCGLXeN+YKcTho3L72dPg+VLFTzu
         A9X0jzfHWOQP2QLnPKT62qb/kxXs/vsvF44WhGE1M/Ad4y4vt3Ym95NsHXhZhza65ngQ
         mynaFabY+teMH8tOddVhPfHZ2OahGTothJLVaiWO6vLaOTrrML56kobXJLL3hBBPnqRk
         MCdV6hQs3TqJIuazdF+yGRsnurJ1KW1N6ZcIn+mEW+vcxDAdV15Rk3li3ETvwLp7pibG
         sOy7kmD8kh0azeZKDMRel5WO4yjKVq+j+be/lJ+2sRh7aE0CSgVaomCHI/Oua+yRGoIH
         5aLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779928094; x=1780532894;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=bPfJ90vz5LA/T++PBxy4wc5LMm+G5DLn0jpA+XJFuNE=;
        b=PQKnwF+CLO8wDTohClNDGRyEhmQ3g/XrS86aQrpVUloLi2SsIQ8cJIuLdvJkhE5G9D
         MDo2m7qXsFFd23ntkbsv5F/DOsFaHzlflh+Pw42p/GQ+S5yay1pE7rMOg1nTD/DGUFug
         Qdoroq5qZK1NheG6aZE6mAck/jBmveuwm4qvr/NCIRGJUWOAsJeXDDh3ClO1ii4TmaZp
         NdWIpGVAnwHsXc3FmGJkTRLYTkK1jj9wGDO0wSp8nM4YgM8mhvLNLiNe2dJ3Lz77DPCd
         vT5/uABpTrmDNMjlu3yaq3AWjbycCvXzgf+BfDrblIsw7/kqRi+r6Ssb6vBk4W8fpqc+
         mG6Q==
X-Gm-Message-State: AOJu0Yyk0R2g6OGvQ5/jYRikrVWlwPHsvfTdlky3XIC9G/FPI5J6NWnH
	nRVsXOQFsudmF3Qe0+KIVyMXAQvS/lQCrBzimVn/gX7C9q+HzkRsplH4e3rk/g==
X-Gm-Gg: Acq92OGHgy3kHozN49LBSs1sWjgg0EGlaMyUqKWLDge2ARVkQY4ZsJAmIluaY4zn5RI
	S7ryjI7V5tjr0i1JrhlGC8iyOGNHVLRf6thtbRRVsirURGgvb5nFh9WM+9pqNmAkshM2e5qWqsB
	dXBpl9cnpMlkjnxsCQHAJMgnn2vgpWNzjx/l3qGR+sXBdAY0p4fPXmM6BLOqz2NczlfIqAN7Uq6
	hoLxosWrm/ujqdHIVHVTH5bpmgLnAIPwUBNQnzj1QVxBjnfyKTXofh/yozsdsQBRVlAkngMXThc
	lA0Q1YzxoOeRhp5v95Rahym/uEyoO6vF7aqE1MEJTOBMkfJroOdzla8PqcFSWMrO9gpbEcvdrKa
	egipMO94GahEczt59W0LaKC4cZqrOYqVTB8Q7B5QUe2cZCpNq72mDJ8JJKSmVIP6S91Qnv53EKu
	yyV+NAt9Ov/eXhn4eYRkt8iBSk80iE7M7DfGnM
X-Received: by 2002:a17:907:b5a9:b0:bd5:7a3:a58b with SMTP id a640c23a62f3a-bdd269b6a00mr1129029066b.46.1779928093812;
        Wed, 27 May 2026 17:28:13 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 4/4] xen/arm: its: handle dma-noncoherent on GIC and ITS nodes
Date: Thu, 28 May 2026 03:25:52 +0300
Message-ID: <43b0e8f6b25588ba1cfc22d367e5ed6b303a4978.1779922874.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779922874.git.mykola_kvach@epam.com>
References: <cover.1779922874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1779928094-BFD7BDB1-690D32EC/0/0
X-purgate-type: clean
X-purgate-size: 5082

From: Mykola Kvach <mykola_kvach@epam.com>

The DT dma-noncoherent property describes the bus coherency of the device
represented by the node. On an ITS subnode, that is memory accessed by that
ITS, so add GICV3_QUIRK_MEM_NC_NS to the corresponding host_its before
programming GITS tables and allocating ITTs.

When the property is present on the top-level GIC node, it describes the
Redistributor side of the LPI path. Collect it in
gicv3_lpi_init_host_lpis() and apply it only to the host LPI policy used
for GICR_PROPBASER and GICR_PENDBASER setup.

Do not inherit the property between parent and child nodes: ITS-node
non-coherency does not change the global host LPI policy, and GIC-node
non-coherency does not change per-ITS quirk_flags.

ACPI is left unchanged; this patch only consumes the DT dma-noncoherent
property.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v2:
- Split v1's dma-noncoherent handling into explicit ITS-node and GIC-node
  scopes.
- Apply an ITS subnode property only to the matching host_its quirk_flags.
- Collect the top-level GIC property from gic-v3-lpi.c before host LPI
  allocations use host_lpi_flags.
---
 xen/arch/arm/gic-v3-its.c | 21 +++++++++++++++++++--
 xen/arch/arm/gic-v3-lpi.c | 22 +++++++++++++++++++++-
 2 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index e055914763..606b127487 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -134,6 +134,21 @@ static const struct its_quirk *__init gicv3_its_find_quirk(
     return NULL;
 }
 
+static void __init gicv3_its_collect_fw_attrs(struct host_its *hw_its)
+{
+    /*
+     * An ITS subnode property describes memory transactions made by that ITS.
+     * Do not inherit it into the global host LPI/Redistributor policy.
+     */
+    if ( !hw_its->dt_node ||
+         !dt_property_read_bool(hw_its->dt_node, "dma-noncoherent") )
+        return;
+
+    hw_its->quirk_flags |= GICV3_QUIRK_MEM_NC_NS;
+    printk("GICv3: ITS @%#"PRIpaddr" marked dma-noncoherent\n",
+           hw_its->addr);
+}
+
 static void __init gicv3_its_collect_quirks(struct host_its *hw_its)
 {
     const struct its_quirk *quirk = gicv3_its_find_quirk(hw_its);
@@ -144,6 +159,8 @@ static void __init gicv3_its_collect_quirks(struct host_its *hw_its)
         gicv3_lpi_update_host_flags(quirk->lpi_flags);
         printk("GICv3: enabling workaround for ITS: %s\n", quirk->desc);
     }
+
+    gicv3_its_collect_fw_attrs(hw_its);
 }
 
 uint64_t gicv3_mem_get_cacheability(uint32_t flags)
@@ -578,7 +595,7 @@ static int gicv3_disable_its(struct host_its *hw_its)
     return -ETIMEDOUT;
 }
 
-static int gicv3_its_init_single_its(struct host_its *hw_its)
+static int __init gicv3_its_init_single_its(struct host_its *hw_its)
 {
     uint64_t reg;
     int i, ret;
@@ -1221,7 +1238,7 @@ static void gicv3_its_acpi_init(void)
 
 #endif
 
-int gicv3_its_init(void)
+int __init gicv3_its_init(void)
 {
     struct host_its *hw_its;
     int ret;
diff --git a/xen/arch/arm/gic-v3-lpi.c b/xen/arch/arm/gic-v3-lpi.c
index 35f93e4756..c6f17b9b2d 100644
--- a/xen/arch/arm/gic-v3-lpi.c
+++ b/xen/arch/arm/gic-v3-lpi.c
@@ -7,7 +7,9 @@
  * Copyright (C) 2016,2017 - ARM Ltd
  */
 
+#include <xen/acpi.h>
 #include <xen/cpu.h>
+#include <xen/device_tree.h>
 #include <xen/lib.h>
 #include <xen/mm.h>
 #include <xen/param.h>
@@ -101,6 +103,20 @@ void __init gicv3_lpi_update_host_flags(uint32_t flags)
     host_lpi_flags |= flags;
 }
 
+static void __init gicv3_lpi_collect_fw_attrs(void)
+{
+    /*
+     * A top-level GIC node property describes the Redistributor side of the
+     * LPI path. Do not inherit it into per-ITS policy.
+     */
+    if ( !acpi_disabled ||
+         !dt_property_read_bool(dt_interrupt_controller, "dma-noncoherent") )
+        return;
+
+    gicv3_lpi_update_host_flags(GICV3_QUIRK_MEM_NC_NS);
+    printk("GICv3: GIC node marked dma-noncoherent for host LPI tables\n");
+}
+
 static union host_lpi *gic_get_host_lpi(uint32_t plpi)
 {
     union host_lpi *block;
@@ -442,7 +458,7 @@ integer_param("max_lpi_bits", max_lpi_bits);
  * to the page with the actual "union host_lpi" entries. Our LPI limit
  * avoids excessive memory usage.
  */
-int gicv3_lpi_init_host_lpis(unsigned int host_lpi_bits)
+int __init gicv3_lpi_init_host_lpis(unsigned int host_lpi_bits)
 {
     unsigned int nr_lpi_ptrs;
     int rc;
@@ -450,6 +466,10 @@ int gicv3_lpi_init_host_lpis(unsigned int host_lpi_bits)
     /* We rely on the data structure being atomically accessible. */
     BUILD_BUG_ON(sizeof(union host_lpi) > sizeof(unsigned long));
 
+    gicv3_lpi_collect_fw_attrs();
+    if ( host_lpi_flags )
+        printk("GICv3: host LPI workaround flags: %#x\n", host_lpi_flags);
+
     /*
      * An implementation needs to support at least 14 bits of LPI IDs.
      * Tell the user about it, the actual number is reported below.
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 28 00:28:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 00:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320864.1587972 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSObd-0007Ks-9b; Thu, 28 May 2026 00:28:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320864.1587972; Thu, 28 May 2026 00:28:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSObd-0007KF-3U; Thu, 28 May 2026 00:28:13 +0000
Received: by outflank-mailman (input) for mailman id 1320864;
 Thu, 28 May 2026 00:28:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wSObb-0007Hk-Hu
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 00:28:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSOba-000CGb-UG
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 02:28:10 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a178bd3-2eae-0a2a0a5409dd-0a2a45068b06-16
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 02:28:10 +0200
Received: from [209.85.208.54] (helo=mail-ed1-f54.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a178c1a-7371-0a2a45060019-d155d036d155-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 02:28:10 +0200
Received: by mail-ed1-f54.google.com with SMTP id
 4fb4d7f45d1cf-6886be3d39bso9749586a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 17:28:10 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.25.69]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc5ece286sm655205266b.40.2026.05.27.17.28.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 17:28:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779928090; x=1780532890; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Yg8AqMmDF3yKBovZvD64poEMRLvOHDqQeZLyKNm919c=;
        b=pVIZ6yWmUuxFV+PnDoNVq32g0EshANmCGlQcwcmeXIi8HsadwDFH/IWmVY6w8TBKUR
         TERLhTItBXCUjwtua0ZqFaO6mtuo5fFBtfmGtmMctgGX+6ayo7Ai1gwk5HEcIR44eb5i
         60AKXq+WGCaOjgxIgLRI/ywSHs6hzjQtuQ0P/aU2LcEMWL6Cfx1n2x0UvdYfaORmsmWN
         SRnJJoP1nne62LlzTf8khZcRrf4M/K9e1pkKnzu75IMtIss7RgRGo0ahJ0q3sSi6ULR6
         AIQG+Xt+qwjOC0YOg5+JjDApenccfPicJddRqt9R01SF7yVM0BGBvNCvIPZOSEkNId6h
         fM8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779928090; x=1780532890;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Yg8AqMmDF3yKBovZvD64poEMRLvOHDqQeZLyKNm919c=;
        b=sw6TmDGJce2pXlS+lJY2R32bKw9qHZgkXpFP/H8G/NeLAP8m8QLXj24IPNTuGkVjpx
         l7KVkbnzvQzAEfEAyjZSnRpUX+yZZf+NJLn0dmLZVh+XNIZKaYI+hUHsJp0e7bUIGOfa
         poVTpjf9gseipVUHH6eTpye9nlqvVmsiHDcjSvGYtu89v4u5LI1ApwQCwOhOp5nu+jHt
         Am6zTKRWotdboHjO8pW+/V7XQvu1oNtb8wwxj0T+wzQRrDnXY82PS9adv/aQXxtbMo7/
         g2p42xr8myvtTelbkZpFGuiHIXw3naS/WvPgiiClZUu7sU7UPtEGm8nSHUO6R4VtDB/a
         BkJA==
X-Gm-Message-State: AOJu0YzsX/FpUoEL51jPhib5xEV4+1z7c4zcx91oVsbvJVNsxn0yLKrb
	O49bVaaYgHri1XMraQ11RWyoysyVWO8YodTxD8v/nIgvg4VlQvbdHX3VW76q2g==
X-Gm-Gg: Acq92OGbZjIEhEqbYQcvbPps4/aHialt35SZymC0PZawb/vFb7G8nYLP5n+X6yNtnbN
	cDI6es6Vsb9jF6XrDxgi5xzRE4bQh71gSCxGNyU9Fs7L+7YTUlq77l0Y/nop7ylNmHMbGixNZtn
	rTF/Plg4tyyRTON63chu13L55zA8heP9R2rMUwP0p1aEAxK1DxZpTFFvgs6Qmhmhdl/OJIENFE9
	vsUqzv2Wc4kAqlcoub0ipCPd3H7XI10HpvbVJk/TJP/CYXSOsYObBN81ebfa/AlfyGEdAQ9BlZW
	3k/swIZvhNUV/0120Ucp8GpJkDa54+6rVJ3lfkcQKfPjdFSvbuID1sRm9/LUVfCdk45lYKmRYgJ
	eBEso5+iy/jQg1Nd3/vzbC/6Qb6Kz21Eap0PepZVkXjlGoyik90sBLAfZaupeV7piHD4IjsSAo7
	wjuLYu/R+BMJgzTpJ8s1EOdovUZmjT5xhsxm1M
X-Received: by 2002:a17:907:c80c:b0:bc9:d864:2735 with SMTP id a640c23a62f3a-bdd2aada46fmr1592794266b.34.1779928090335;
        Wed, 27 May 2026 17:28:10 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.22 v2 1/4] xen/arm: gic: defer host LPI allocation until after ITS init
Date: Thu, 28 May 2026 03:25:49 +0300
Message-ID: <112419d3ea48ca328849c8f6647909d3eb667b40.1779922874.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779922874.git.mykola_kvach@epam.com>
References: <cover.1779922874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1779928090-8C67DD75-5CF5C166/0/0
X-purgate-type: clean
X-purgate-size: 2517

From: Mykola Kvach <mykola_kvach@epam.com>

gicv3_lpi_init_host_lpis() allocates host LPI state, including the
host LPI lookup table, CPU notifier state and the boot CPU pending table.
Those allocations use gicv3_its_get_memflags().

ITS workarounds are discovered from gicv3_its_init(), so allocating host
LPI state from gicv3_dist_init() can happen before the memory restrictions
required by the ITS are known. On affected systems this can leave
Redistributor LPI state allocated and programmed with the default memory
policy.

Move host LPI initialization after gicv3_its_init(), and only run it when
a host ITS was found. The old call ignored the return value. Now that the
call is made from gicv3_init(), check it and panic on failure because
Redistributor LPI initialization relies on that state being available.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v2:
- Replace the v1 ITS pre-initialization hook with the less invasive
  approach suggested during review: move the existing host LPI
  initialization after gicv3_its_init().
- Check gicv3_lpi_init_host_lpis() and panic on failure, matching the fatal
  nature of host LPI setup once ITS initialization succeeded.
---
 xen/arch/arm/gic-v3.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 17ff85ef5d..acdac22953 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -764,9 +764,6 @@ static void __init gicv3_dist_init(void)
     type = readl_relaxed(GICD + GICD_TYPER);
     nr_lines = 32 * ((type & GICD_TYPE_LINES) + 1);
 
-    if ( type & GICD_TYPE_LPIS )
-        gicv3_lpi_init_host_lpis(GICD_TYPE_ID_BITS(type));
-
     /* Only 1020 interrupts are supported */
     nr_lines = min(1020U, nr_lines);
     gicv3_info.nr_lines = nr_lines;
@@ -1990,6 +1987,17 @@ static int __init gicv3_init(void)
         res = gicv3_its_init();
         if ( res )
             panic("GICv3: ITS: initialization failed: %d\n", res);
+
+        /*
+         * Host LPI allocation uses ITS-derived memory attributes, so defer it
+         * until after gicv3_its_init() has discovered ITS workarounds.
+         */
+        if ( gicv3_its_host_has_its() )
+        {
+            res = gicv3_lpi_init_host_lpis(intid_bits);
+            if ( res )
+                panic("GICv3: LPI initialization failed: %d\n", res);
+        }
     }
 
     res = gicv3_cpu_init();
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 28 00:28:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 00:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320866.1587994 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSObg-0007wN-S9; Thu, 28 May 2026 00:28:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320866.1587994; Thu, 28 May 2026 00:28:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSObg-0007wC-Op; Thu, 28 May 2026 00:28:16 +0000
Received: by outflank-mailman (input) for mailman id 1320866;
 Thu, 28 May 2026 00:28:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wSObd-0007Wk-RX
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 00:28:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSObd-00CjPB-7o
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 02:28:13 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a178bbc-bab6-0a2a0a5309dd-0a2a450cb27e-44
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 02:28:13 +0200
Received: from [209.85.218.47] (helo=mail-ej1-f47.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a178c1d-62f1-0a2a450c0019-d155da2fe9f5-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 02:28:13 +0200
Received: by mail-ej1-f47.google.com with SMTP id
 a640c23a62f3a-bd124546379so1831533766b.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 17:28:13 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.25.69]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-bddc5ece286sm655205266b.40.2026.05.27.17.28.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 May 2026 17:28:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779928093; x=1780532893; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1Kal4i8q/2eoKCVkTinqzHb0hjEJZtqPmZO6RzxVrZQ=;
        b=StMe5j2h5UwGvZ9ubkam7kZv+4awpMtcGQ84J20x0L4ePmoGRr7KQl3+Qa02oqHafk
         XxWTsoE+b4aDTZVHgo1uCOFelxasFeVH7sbztcouPgdFJyTJ4lvraZ5QbsijRCfqSsIi
         GqYinMPKX5CzYbM5KceGlhN2Obbnhz71mBN4MLZyU7TJYiuQ2VN6AjuBUSBCKMnVWH0F
         xa3dcSqhkITN4PV1sKNypj+zfxiOMNL6h7V0klfzO797Z/WQclP3RHv6DLDptWkvTSaJ
         JYzzn2O+MDd8n+BUyb9j33AwvD/Off7lsA75lBhBtdKnIkmpxk9iji/zxdq/PCF88MIM
         82Ig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779928093; x=1780532893;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=1Kal4i8q/2eoKCVkTinqzHb0hjEJZtqPmZO6RzxVrZQ=;
        b=NNKozPtArx3kwozlQ7mZPIaS8wcvJhYucQKq8HQwpGnDBl97ILIGnQZsBIyj1CTzqz
         Wo7nI1wfz2cA4rFb5oPUsJcKKMHXtJcuL68Eq0yo9UxIL0AYtEY++P4WZvAbfw3Cpt+J
         qxGiwRdZujn6zhDR3LkosxGmA04MgJ2/5X0JIc2gGmSGanhadiEKFoW7CsN04uBAhZMi
         H5if9HGGml7vZttZFqzwsIjNs9P2tIGc/VICwJeGo2VUUAz4ASEhzJ/lNM/MIwwN8Nxm
         wPrfrseCZN9u/T+AQh5uvukKh/LJHBfhVFUT9ShaV/p3W6botIgt3vwWnKB1lasuotNp
         9UCQ==
X-Gm-Message-State: AOJu0YwOcqvSoJaI9XKP5OclCGvP5mxP9/uMVq69v2sF12aCdqrw2+5q
	RcOzHrve92hiZtGuM0d80nUR1APNL4xDuLfaXDY3RpAY1bD1MLubfOAQ2MiO6g==
X-Gm-Gg: Acq92OH5u0RzQ/3qESR3LG039CcMyMonWUQyqWeBYC0Jf8A8ZdYPqKxI/Ept/6hb+ke
	KXFYjuIvlmCoXS8TMlk0YqScyi/WYZff3QFMd5apjzofF4uYY1KcLc1aEzNeIYyIz2+HF9dOPa4
	gdO6GgRGWYNIZY19AbgcSdYPqVSsMn6GcsZMnC7+Hae7YGvt31reZi01D6cdt4gL2Ey4wYyUt+/
	FmYu/7IrijA+IuzeD9b98KDzMpfQzUULSDWiXmlJVNZ2gC7oshlmVHyaiJ8r7tDToAUvE/3Rrs0
	YEucv7RHklMS2yiGJqzpj7MTht/PjEnr2eFt/3kR3M+F8HEiDCZ+laSjBHqeEd7qDJ37sBHkQGQ
	Dxo1aHFqseAvtTgYvdgYnp9ntlxnSQoFNZv1bsbvxLQe2Mvd7rzKbkhWm5lNphQ7mn6he2RNS6Z
	cHaM1VLTlIT73sgXMdMbZ8jVt2efEoRAiEdRjD
X-Received: by 2002:a17:906:dc8b:b0:bd5:7c2:7621 with SMTP id a640c23a62f3a-bdd26bd8e30mr1700694366b.48.1779928092408;
        Wed, 27 May 2026 17:28:12 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 3/4] xen/arm: its: refactor ITS quirk matching
Date: Thu, 28 May 2026 03:25:51 +0300
Message-ID: <df3219d050b32a406b3eb787c55a42785aa25379.1779922874.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1779922874.git.mykola_kvach@epam.com>
References: <cover.1779922874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1779928093-DBB7CCF5-0E7DFF28/0/0
X-purgate-type: clean
X-purgate-size: 5079

From: Mykola Kvach <mykola_kvach@epam.com>

ITS quirks are currently matched only by IIDR and mask fields stored in
each table entry. That is too coarse for integrations where the same GIC
IP block can appear in several platforms but the workaround is only valid
for a subset of boards.

Replace the fixed IIDR fields with a generic match(hw_its, data) callback
and an opaque data pointer. Add an IIDR matcher as a reusable building
block and use it from the R-Car Gen4 matcher after checking the Renesas
machine compatibles. The R-Car Gen4 platform refinement is DT-only;
ACPI-discovered ITSes do not match it.

Keep first-match semantics explicit. Assert that non-sentinel entries
provide a matcher and that IIDR matching receives match data, but keep
runtime guards so a malformed table entry does not become a NULL function
call or NULL data dereference in non-debug builds. The matched entry still
supplies separate ITS and LPI flags; this patch only changes how the entry
is selected.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v2:
- Replace v1's optional platform callback plus fixed IIDR/mask fields with
  a single generic match(hw_its, data) selector.
- Add a reusable IIDR matcher and use it after the R-Car Gen4
  machine-compatible checks.
- Document that the R-Car Gen4 quirk remains DT-only.
- Keep the split ITS and host LPI quirk scopes when applying the matched
  entry.
- Document first-match ordering in the lookup path and guard against
  entries without a match callback or IIDR match data.
---
 xen/arch/arm/gic-v3-its.c | 67 +++++++++++++++++++++++++++++++--------
 1 file changed, 53 insertions(+), 14 deletions(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index dc48a84789..e055914763 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -53,8 +53,8 @@ struct its_device {
 
 struct its_quirk {
     const char *desc;
-    uint32_t iidr;
-    uint32_t mask;
+    bool (*match)(const struct host_its *hw_its, const void *data);
+    const void *data;
     uint32_t its_flags;
     /*
      * lpi_flags are ORed into the global host LPI policy and must only
@@ -64,11 +64,48 @@ struct its_quirk {
     uint32_t lpi_flags;
 };
 
+struct its_quirk_match_iidr {
+    uint32_t iidr;
+    uint32_t mask;
+};
+
+static bool __init gicv3_its_match_iidr(const struct host_its *hw_its,
+                                        const void *data)
+{
+    const struct its_quirk_match_iidr *match;
+    uint32_t iidr;
+
+    ASSERT(data);
+
+    match = data;
+    iidr = readl_relaxed(hw_its->its_base + GITS_IIDR);
+
+    return (iidr & match->mask) == match->iidr;
+}
+
+static bool __init gicv3_its_match_quirk_gen4(const struct host_its *hw_its,
+                                              const void *data)
+{
+    if ( !hw_its->dt_node )
+        return false;
+
+    if ( !dt_machine_is_compatible("renesas,r8a779f0") &&
+         !dt_machine_is_compatible("renesas,r8a779g0") )
+        return false;
+
+    return gicv3_its_match_iidr(hw_its, data);
+}
+
+static const struct its_quirk_match_iidr rcar_gen4_iidr = {
+    .iidr = 0x0201743b,
+    .mask = 0xffffffffU,
+};
+
 static const struct its_quirk its_quirks[] = {
     {
-        .desc	= "R-Car Gen4",
-        .iidr	= 0x0201743b,
-        .mask	= 0xffffffffU,
+        .desc = "R-Car Gen4",
+        .match = gicv3_its_match_quirk_gen4,
+        .data = &rcar_gen4_iidr,
         .its_flags = GICV3_QUIRK_MEM_NC_NS | GICV3_QUIRK_MEM_32BIT_ADDR,
         .lpi_flags = GICV3_QUIRK_MEM_NC_NS | GICV3_QUIRK_MEM_32BIT_ADDR,
     },
@@ -77,18 +114,21 @@ static const struct its_quirk its_quirks[] = {
     }
 };
 
-static const struct its_quirk *__init gicv3_its_find_quirk(uint32_t iidr)
+static const struct its_quirk *__init gicv3_its_find_quirk(
+    const struct host_its *hw_its)
 {
-    const struct its_quirk *quirks = its_quirks;
+    const struct its_quirk *quirk;
 
     /*
-     * The first matching quirk wins. More specific quirks must be listed
-     * before broader IIDR-only entries.
+     * The first matching quirk wins. Entries that match a specific platform
+     * must be listed before broader IIDR-only entries.
      */
-    for ( ; quirks->desc; quirks++ )
+    for ( quirk = its_quirks; quirk->desc; quirk++ )
     {
-        if ( quirks->iidr == (quirks->mask & iidr) )
-            return quirks;
+        ASSERT(quirk->match);
+
+        if ( quirk->match && quirk->match(hw_its, quirk->data) )
+            return quirk;
     }
 
     return NULL;
@@ -96,8 +136,7 @@ static const struct its_quirk *__init gicv3_its_find_quirk(uint32_t iidr)
 
 static void __init gicv3_its_collect_quirks(struct host_its *hw_its)
 {
-    uint32_t iidr = readl_relaxed(hw_its->its_base + GITS_IIDR);
-    const struct its_quirk *quirk = gicv3_its_find_quirk(iidr);
+    const struct its_quirk *quirk = gicv3_its_find_quirk(hw_its);
 
     if ( quirk )
     {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 28 00:44:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 00:44:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320905.1588011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSOr1-0003sw-C7; Thu, 28 May 2026 00:44:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320905.1588011; Thu, 28 May 2026 00:44:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSOr1-0003sp-9X; Thu, 28 May 2026 00:44:07 +0000
Received: by outflank-mailman (input) for mailman id 1320905;
 Thu, 28 May 2026 00:44:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wSOr0-0003si-6e
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 00:44:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSOqy-003xvB-85
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 02:44:04 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a178f86-bab6-0a2a0a5309dd-0a2a45059c8c-44
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 02:44:03 +0200
Received: from [209.85.208.174] (helo=mail-lj1-f174.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a178fd3-aaa8-0a2a45050019-d155d0aedde9-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 02:44:03 +0200
Received: by mail-lj1-f174.google.com with SMTP id
 38308e7fff4ca-3938cc204a7so88226101fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 May 2026 17:44:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779929043; cv=none;
        d=google.com; s=arc-20240605;
        b=MpcFGyCBsjwn4z3jgyhWnnnkyled6guJgD/BQE2T/stmsZ4FD+QKvjXGfYlogDb0d8
         bVEi+L6XXBaMWVuqHp52/JNvtlqxP7jpKvobyU4SronDHdHYHkeHeVLENZOazx+z9nej
         LzMwQ3H9h2VA569H+uVcpomMLTE72r+RHN3bobbMEqp7DcKlx+HR6pt/E1g75VcX+Xee
         cKAskDjKIl30xWnH0AgeLnybXBzpDDY10epAPbaLqLpAfebmrAWrBDCEbDrlO4cqVBB+
         NuODuaoTqrEseGWTyyz2EyVZbXEFPfIj5Ru+vhUFlY8YimlQpFwFf8jqHsd4i0fyno7p
         RFKA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=DH5e/cL18VFRRhSFlXrSX4M4Oc/C9qjmJqdiGpxJADk=;
        fh=hbjjqkXaWls30zzP/XDCsIpBv9lrvJuCsUy3lBRF/sk=;
        b=fSxVBLvm4aGRAZWteG0IsXvEXtgB1uj2nDdiQ/Cyq3sHnfKA+JxFpsbBsdjEz/iYo/
         Hv1h6n6qxT6HCupseR6IcVWgRAAvobtJrOTkeORKv5ncChBPy+lG8EI4S/qnjeBJA8B8
         GDpR6Lk2hRVXOCw/WxiThYKCcunXYW47dtoYH6KkIFlqvVw71B4MOUhg6NUg2oyBwSj+
         H+XCrj5B/mnkogwMTXMkdhho9UW44YX5U79x05patuXKJIacJ7dI/ANtm/G1bAii+Oil
         GyBmc9fM+PtgtMd3OgxmgINxshDG0B53wWaJu9Tzsrj8EtvUX+NY71xlouuLBgrGulko
         f0vw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779929043; x=1780533843; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DH5e/cL18VFRRhSFlXrSX4M4Oc/C9qjmJqdiGpxJADk=;
        b=aCzNoGMZ9ynP/NenKBAXpr5YZR5H+BeS7DLNvtoWAoTOctx7KI5icTX4LR9WcwKjzl
         pVWqz+5p+5sPIBmZNnNW245DYECDdgeYKvtBiY/XMK2aMar3AGr7DVAVToY2+yVFtmHk
         dMHz+XysXcfyC4mfcIV2mdQSPaP3VW7aec4jJrcPCjAZ/NFYMzSicC3M4DBcyj2Bs4pb
         UyaMTZDab8KQoRH6QJ/ZZYvc5UaNgkFqMddu/fVgfUQAfEDkHF2p2ZA0SHrMAiSwr1rZ
         i9DkQAXz2ZpSxw4LR1QF4YRzpu4n5ICvmdnEMivAw80JS+15b2sQgK2AFUsE94s/EDBJ
         Xjrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779929043; x=1780533843;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=DH5e/cL18VFRRhSFlXrSX4M4Oc/C9qjmJqdiGpxJADk=;
        b=VnS2fOfyJim1xizeABrq1bR6ProOhZGvYGDBw9XfVV4P5BlHhW6nchB2a3k5Y10nQx
         2O6yB36gK63K/wUcQQx3S47NXxoGpv9KVvvDKz7R26+ewku6txCT/SZVAXCZWOlgvPrR
         jTmclob080FtDkYyQH7VLV4mrqn+bkfeQRxK7iHC1p1eMi98gg32hujCnHyYwPiwGxYz
         hm3LbIymRlH65Yme4c1AF2TT30UetnGcTBW5C6dIg8YU6+dp9n+iCaowljPHY8ICDD+D
         kRUv+ObzH9i3XKr5o82kBuhAn6rAfRrnWr1C6+xuf1aHou+y5aT5RsVyo2W2VG94vVsm
         /0SA==
X-Gm-Message-State: AOJu0YyNhTsGlBAf71O+bW/Tm+ytrOkVWNDJw7Dlgy+3rjm3JxWGhcAr
	pj8C23fN3xOv7tGNhrHY+T8usEwXRFDzbNYTVm0oNnGSdFS46qSm9JOva1zquiXwKy+WXc2YSgW
	4RLhuPNwPxnyjSjCsYZJj4u5EZYcBZUNYe/cr6K8=
X-Gm-Gg: Acq92OHs5jaM+1VBciWc+fD5cFCu+lzyKKCzWK25kGpWRxbM5sWehD086n68Wt5N3kp
	draJGwxFV5nL/WunuSNQ+BMUVNXXofkV8r1yxCmAHYNMVdqXIyVLUUax+Piy6ksIN9SCcDVTqz6
	x8hhCzFMm5KhVj6ZFAgklweXCwVWReurAHZwmy1Cc3JiImqtKCl82g+dAU9KNfjgmi8SGPpjhiG
	HKZ3QVD8bstk3bp7RsMoC+1Is5adE3ph1NQF33Kfvo8l0d47EbfYVjeVrmdYs4zMSt5Zsji6vel
	JUyvsQgnumZ36ig=
X-Received: by 2002:a05:651c:19aa:b0:393:a65e:e913 with SMTP id
 38308e7fff4ca-395d8bd7f96mr88526981fa.2.1779929042757; Wed, 27 May 2026
 17:44:02 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1779922874.git.mykola_kvach@epam.com>
In-Reply-To: <cover.1779922874.git.mykola_kvach@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 28 May 2026 03:43:51 +0300
X-Gm-Features: AVHnY4JbsYeBNYcxSF2bo9T0gPeoyJ7oKrovJDbignHoa66hsC_t9_LFbYupfd0
Message-ID: <CAGeoDV8ArzM6-qdHmumHyoga5-XB4EgpoDVVDPy0JsZ2w2a4jw@mail.gmail.com>
Subject: Re: [PATCH v2 0/4] xen/arm: gicv3: defer host LPI init and split
 ITS/LPI quirk scopes
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Luca Fancellu <luca.fancellu@arm.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c201ff/1779929043-E3589443-33DC7EBB/0/0
X-purgate-type: clean
X-purgate-size: 5131

Hi all,

I forgot to include the v1 link in the cover letter.
For reference, v1 of this series is available here:
    https://patchew.org/Xen/cover.1774431310.git.mykola._5Fkvach@epam.com/

This v2 is the next revision of that series. Since the patch order and
subjects changed, some tooling may not associate the two automatically.

Thanks,
Mykola


On Thu, May 28, 2026 at 3:28=E2=80=AFAM Mykola Kvach <xakep.amatop@gmail.co=
m> wrote:
>
> From: Mykola Kvach <mykola_kvach@epam.com>
>
> Hi all,
>
> This series fixes the ordering of host LPI state initialization relative =
to
> ITS quirk discovery, and then cleans up how ITS-private and host
> LPI/Redistributor quirk effects are represented.
>
> Patch 1 is the release-critical fix. It moves host LPI initialization aft=
er
> gicv3_its_init(), so that the host LPI allocation path observes the ITS
> quirks discovered during ITS initialization. This patch is intended for
> 4.22.
>
> Patches 2-4 are follow-up cleanup and DT attribute handling. They are inc=
luded
> to show the intended direction and to avoid carrying the old global ITS q=
uirk
> model forward, but they are not required for taking the 4.22 fix if the
> release freeze makes that preferable.
>
> The main change from v1 is that this version no longer tries to pre-initi=
alize
> ITS quirks before host LPI setup. Instead, the minimal fix is to defer th=
e
> existing host LPI initialization until after ITS initialization. The foll=
ow-up
> patches then split the quirk state by scope:
>
>   * per-ITS flags are used for memory/state accessed by a particular ITS,=
 such
>     as GITS_CBASER, GITS_BASER<n> and ITT memory;
>
>   * host LPI flags are used for shared Redistributor/LPI state, such as
>     GICR_PROPBASER and GICR_PENDBASER.
>
> This avoids relying on an implicit global aggregation of per-ITS quirk st=
ate.
> If an ITS-discovered quirk also affects the host LPI/Redistributor path, =
that
> effect is now expressed explicitly through the quirk entry's lpi_flags.
>
> The series also handles the DT dma-noncoherent property according to the =
node
> where it appears. An ITS subnode property affects only the corresponding =
ITS.
> A top-level GIC node property affects only the host LPI/Redistributor pol=
icy.
> The property is not inherited implicitly between the parent GIC node and =
ITS
> subnodes.
>
> The Orange Pi 5 / RK3588-specific quirk patch from v1 has been dropped. T=
he
> previous version modelled the issue as a 32-bit ITS addressing restrictio=
n.
> This version handles the relevant non-coherent/non-shareable GIC integrat=
ion
> through the standard DT dma-noncoherent property on the GIC and ITS nodes
> instead.
> ---
>
> Changes since v1
>
> * Reordered the series so that the minimal host LPI initialization orderi=
ng fix
>   is first. Patch 1 is intended for 4.22.
>
> * Dropped the v1 ITS pre-initialization hook.
>
> * Moved the existing gicv3_lpi_init_host_lpis() call after gicv3_its_init=
()
>   instead, so host LPI state is allocated after ITS workaround discovery.
>
> * Checked the return value from gicv3_lpi_init_host_lpis() and made failu=
re
>   fatal once the ITS/LPI path is enabled.
>
> * Replaced the old single global ITS quirk state with separate per-ITS an=
d
>   host LPI quirk scopes.
>
> * Removed the implicit aggregation of all per-ITS quirks into the host LP=
I
>   policy. Host LPI effects are now expressed explicitly with lpi_flags.
>
> * Kept per-ITS flags for ITS-private allocations:
>   - GITS_CBASER;
>   - GITS_BASER<n>;
>   - ITT memory.
>
> * Kept host LPI flags for Redistributor/LPI state:
>   - GICR_PROPBASER;
>   - GICR_PENDBASER.
>
> * Refactored ITS quirk matching from fixed IIDR/mask fields to a generic
>   match(hw_its, data) callback plus opaque data.
>
> * Kept first-match semantics explicit. More specific entries must be list=
ed
>   before broader IIDR-only entries.
>
> * Added a reusable IIDR matcher and used it after checking the Renesas
>   machine compatibles for the R-Car Gen4 quirk.
>
> * Split dma-noncoherent handling by DT node scope:
>   - ITS subnode dma-noncoherent affects only the matching ITS;
>   - top-level GIC dma-noncoherent affects only the host LPI/Redistributor
>     policy.
>
> * Dropped the Orange Pi 5 / RK3588-specific quirk patch from v1. The
>   non-coherent GIC integration is now handled through DT dma-noncoherent
>   properties instead of a Xen-side platform quirk.
>
> Mykola Kvach (4):
>   xen/arm: gic: defer host LPI allocation until after ITS init
>   xen/arm: its: separate ITS and host LPI quirk scopes
>   xen/arm: its: refactor ITS quirk matching
>   xen/arm: its: handle dma-noncoherent on GIC and ITS nodes
>
>  xen/arch/arm/gic-v3-its.c             | 171 ++++++++++++++++----------
>  xen/arch/arm/gic-v3-lpi.c             |  66 ++++++++--
>  xen/arch/arm/gic-v3.c                 |  14 ++-
>  xen/arch/arm/include/asm/gic_v3_its.h |  19 ++-
>  4 files changed, 190 insertions(+), 80 deletions(-)
>
> --
> 2.43.0
>


From xen-devel-bounces@lists.xenproject.org Thu May 28 07:56:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 07:56:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320983.1588039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSVbC-00005U-Hb; Thu, 28 May 2026 07:56:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320983.1588039; Thu, 28 May 2026 07:56:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSVbC-00005N-Ez; Thu, 28 May 2026 07:56:14 +0000
Received: by outflank-mailman (input) for mailman id 1320983;
 Thu, 28 May 2026 07:56:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wSVbA-00087K-RV
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 07:56:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSVbA-00HB53-7K
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 09:56:12 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a17f514-bab6-0a2a0a5309dd-0a2a4505ca38-32
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 09:56:12 +0200
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a17f51c-aaa8-0a2a45050019-d155dd33f036-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 09:56:12 +0200
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-45eecb8bf67so37124f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 00:56:12 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45edb5b2ba9sm11540146f8f.31.2026.05.28.00.56.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 May 2026 00:56:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779954972; x=1780559772; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6zxob5e9+08M5AGGU6zb1ERtgiDGrGjDXUcd+YRtRQ4=;
        b=DU9xCGKjmPceWLYSuunjOSPl76t9nE3MxPVOa5Nw4knuBX0xLZSa1/IrBlkzm61Uf1
         YfqMJq60/rbUOvWdR9v0JQYH1SGiZj6Onh4bYAeSBSPWZCtpCyeV2nMacbdy9rxdpF/F
         KJWfbZyC78sefXeDf74aQYujrnK+CovK5gPy4ipJ2uzKZuV78gEgmOzlyVUHgarvwDZq
         x9PSnSNbuVqq03Da8BR3OxDLGC0Ac6/SHSDnpBCk5Hf5tnBlzzAwqxMSnLQ7+v9XwIrW
         U5MRGLGgm1EXbEv3481ZcZckIsemfMHrxvIq94ehe019a9bv+f7zQa/vWX70p4Vggti7
         FCYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779954972; x=1780559772;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=6zxob5e9+08M5AGGU6zb1ERtgiDGrGjDXUcd+YRtRQ4=;
        b=KhtCxEkH08UtxVCQ8R774b1K53TDSx5i8sOg9f4J9nwnyHpAqaN5dIwrlv8ePRHUBY
         vQ/YTzJ70REQW3q2kHDuldRCs11dZTAy/kB9o3ZkQUSnxdArYT3tzr1T456lul7GWFJv
         4a61hN7k7CgcxfNosjHXfZOtY6EOlYHQ6DbGvZ5EQuus2wR0TzGqYUlKwOLkU57IhrWn
         BuMSHtANGC0F01woDVWMrJrlw6aqfjNnoziQO2tF83tFSPRKwRWk0x/DXcM9T70BHHsX
         XfCbn4UIpkauAccomRNA/zZlb138xxTt1jCUBjHtvztuuUSMKs7+UrmeF4a5fXtIP6xg
         3bHw==
X-Gm-Message-State: AOJu0YyHGN911bMhDG9lYuTTz/zefvhPb2A2GURiRVVtGxBCcFRiocOc
	oAjsb9QDbbjQSLUyY7PBx6D2x0zwi6CpOtAaw7AtmRtJWl5pi8FqWMrcF8QAXCtq
X-Gm-Gg: Acq92OG7B+jXqSTWgsGqlRqOJiEdzyHsJ5OpBnB7OVrThAPWGq3RYU0QEnCRqyD6+tC
	c/NXUT0skpyPe1fDJYBxomXRCBSfwpQ8Xaz+xvsZG8ks7KYLpmYlMOsE2u2u/atd7/7kDM6XqMa
	bZazRUNrk87J3tJ0pL7BXYSY9XKFfyAoRA0DRpgfByd3NwIZ+tK+iPwu5HHfUlGGPKmQzWNzOUf
	tthnNwtB7V6cJGZ/ZzDrZh+RImDxmY1jdnHZIwXI7R1nrHR7w8Oyh5XP1KkYAtCFpY6uky2FW1O
	XpspU7RLN98NpD7K91i9tt9ibbtp4dQAECDUAykw0XnNZR8iHb4EG7QQtdY7Vpj96rolVX5aB+a
	EyHTmbGDPSlM+h+1xTUHCVO8Kx6p9T8+Q/kWfZrqRgZFrBW2peNaauo1jw0lfgQosBGWkAGG5Ye
	Hq3wDq8lttCQLx0I98Thp2n0YiXWO3W/ln5zWBOpLIPma+5JRthUzN4/Ua0B4v0v5RhkeydlyZy
	SE11LBNoRGfmLpiZ9fYxgmzPnm9rQMpIdzS
X-Received: by 2002:a05:6000:18ad:b0:452:a293:4d91 with SMTP id ffacd0b85a97d-45eb33551bemr43176247f8f.0.1779954971482;
        Thu, 28 May 2026 00:56:11 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/2] public/xen.h: Update comment for mmu_update hypercall
Date: Thu, 28 May 2026 08:55:35 +0100
Message-ID: <20260528075539.10209-3-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260528075539.10209-1-frediano.ziglio@cloud.com>
References: <20260528075539.10209-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1779954972-D3F66443-67B6CAB0/0/0
X-purgate-type: clean
X-purgate-size: 2689

From: Frediano Ziglio <frediano.ziglio@citrix.com>

The command is filtered from the address using this code

   cmd = req.ptr & (sizeof(l1_pgentry_t)-1);

l1_pgentry_t is always 64 bit so the 3 lower bits are used as
a command, not only 2 bits.

Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
---
 xen/include/public/xen.h | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index d4f238c10b..0537d1f8f3 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -218,16 +218,16 @@ DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
  *                     x == 0 => PFD == DOMID_SELF
  *                     x != 0 => PFD == x - 1
  *
- * Sub-commands: ptr[1:0] specifies the appropriate MMU_* command.
+ * Sub-commands: ptr[2:0] specifies the appropriate MMU_* command.
  * -------------
- * ptr[1:0] == MMU_NORMAL_PT_UPDATE:
+ * ptr[2:0] == MMU_NORMAL_PT_UPDATE:
  * Updates an entry in a page table belonging to PFD. If updating an L1 table,
  * and the new table entry is valid/present, the mapped frame must belong to
  * FD. If attempting to map an I/O page then the caller assumes the privilege
  * of the FD.
  * FD == DOMID_IO: Permit /only/ I/O mappings, at the priv level of the caller.
  * FD == DOMID_XEN: Map restricted areas of Xen's heap space.
- * ptr[:2]  -- Machine address of the page-table entry to modify.
+ * ptr[:3]  -- Machine address of the page-table entry to modify.
  * val      -- Value to write.
  *
  * There also certain implicit requirements when using this hypercall. The
@@ -264,17 +264,17 @@ DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
  * mentioned above. The argument is MMUEXT_UNPIN_TABLE for all levels and the
  * pagetable MUST not be in use (meaning that the cr3 is not set to it).
  *
- * ptr[1:0] == MMU_MACHPHYS_UPDATE:
+ * ptr[2:0] == MMU_MACHPHYS_UPDATE:
  * Updates an entry in the machine->pseudo-physical mapping table.
- * ptr[:2]  -- Machine address within the frame whose mapping to modify.
+ * ptr[:3]  -- Machine address within the frame whose mapping to modify.
  *             The frame must belong to the FD, if one is specified.
  * val      -- Value to write into the mapping entry.
  *
- * ptr[1:0] == MMU_PT_UPDATE_PRESERVE_AD:
+ * ptr[2:0] == MMU_PT_UPDATE_PRESERVE_AD:
  * As MMU_NORMAL_PT_UPDATE above, but A/D bits currently in the PTE are ORed
  * with those in @val.
  *
- * ptr[1:0] == MMU_PT_UPDATE_NO_TRANSLATE:
+ * ptr[2:0] == MMU_PT_UPDATE_NO_TRANSLATE:
  * As MMU_NORMAL_PT_UPDATE above, but @val is not translated though FD
  * page tables.
  *
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 28 07:56:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 07:56:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320981.1588021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSVbB-00087X-5R; Thu, 28 May 2026 07:56:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320981.1588021; Thu, 28 May 2026 07:56:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSVbB-00087Q-2p; Thu, 28 May 2026 07:56:13 +0000
Received: by outflank-mailman (input) for mailman id 1320981;
 Thu, 28 May 2026 07:56:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wSVb9-000878-6n
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 07:56:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSVb8-00HB53-Bc
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 09:56:10 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a17f514-bab6-0a2a0a5309dd-0a2a4505ca38-24
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 09:56:10 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a17f51a-aaa8-0a2a45050019-d155dd2bc037-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 09:56:10 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-45eea68dd6fso127298f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 00:56:10 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45edb5b2ba9sm11540146f8f.31.2026.05.28.00.56.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 May 2026 00:56:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779954970; x=1780559770; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=/+AG9nJM4PtWcQtYWeySSP2px0OjUlVQOK2Bw4Cwn90=;
        b=GJrUCn6Y9OIKYxSxbXkQw7NEsHtAz0QIgu5X81L0uyfxlODnNmBirvdkZmLF5W2fKD
         ECcoq7knRYpgtt2mCXldjgWanLAFYedOWMUvHTkzUhlhLcTD64SfnKP4WNheS3t5TENR
         Xx+ereKGV2R8KuKqRoVGzXL835lpfNdmmMrEu4z4iEWOcR3vcv6GCA+rfXMTWM4HMb+V
         NoAbH7PMMA/CsdSbYGBpY/Uqwa0RlMg/XtNJ+0DHiiq+f/tzOmhKEHwRkLnU6ZdV0lRJ
         0CLl48C4/t02IptAig1xV+CsxVJyahAu3ul8dqYHH/a16zuWi+hnwrDItncP0ceovm8n
         SmQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779954970; x=1780559770;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/+AG9nJM4PtWcQtYWeySSP2px0OjUlVQOK2Bw4Cwn90=;
        b=HyJudowsdELtliYSY5epgP5PvPzHFq6hYw/z4aXB2RqonbQ0c5D/+Fl088Tr4R+4Rv
         g4BnTM636qKcLjIZfkEDw1iq4tIDy1v2vV3i2CLHPlCxGHzk7+aM28Xy9ZgfYsKUhyFb
         5zlaj3cF13uVv8e+NH9G+99iBG1auRC0dM5aQBtJFrl8d+BbYRVo+xHaWd+80XpElQ6s
         gFTGGBsw43a9eOPnFlZzHhDdCrjVgxPA/HzZhtiSwkqL/z7hcqqzXE9+e0Dqx5JgOHMM
         eNXydonRtEn4mnMPljJaet2BI+6/+i/5fq/8TgLu9+oFdnlYeiqoGGml84vBsu3dAlgr
         W9bQ==
X-Gm-Message-State: AOJu0Yx/xt8m4CCkgJ/iktE5RRK3F/zZ/8VpUsn3dqCDvuT6nc5VD4L8
	F0VfsWuCWvbDabfmjXIntBtg/e7ijaS4v52h/hg59l58eILnsg9eHdBgVwBVqWqp
X-Gm-Gg: Acq92OF32ce6qLcza0QHc61C5XugukQx4TwLv8N1EHzvh1gUfYFKam6dw3qlz3lKbtx
	W3z4xNcOEixoMF2LNVjqPntApCiyUCSqz/vW1V3trc8wTtOcyO3wDGodNv+g3PES51i+41wIeSo
	ultn1aiGHCQueMYK3i72c1A9SPOr9RwqVYVXVkEd7CkgCEIbj2ueXQpuEjmfMVSSu7wZovjFL/O
	ZH6kOXzFxcAKKk7+24SSLchvxyP8cdeoxVN/888snbgTlXUbVUfKH00WxFmcERgykTh/r6snOSk
	k/Eeh8xjmQKXDto+lngjNTLXEqpcLRo+vcBeLnmjuDYSlltTn0zKxOR7WnhEREt6QvYOjKovT2Z
	FKlEjr3MkYL9Rm8FVn42lCPaxOfmxao+VKEb5s/hKBl/IYSDocB4duSetCuY8meMQ2YmiL1RZmL
	Uywld6R4bkzRKdz/HW9dsI/YnbP8HVGXGivx5eKDZSAZ2w+HlXMTep+UG6MYKPJ8NjTfYLYnRgP
	YMcwmTwA6CO29/0f2UxAq9mnqzFlw4OmBF1DTl67kFkbtI=
X-Received: by 2002:a05:6000:2408:b0:45e:941e:77b3 with SMTP id ffacd0b85a97d-45eb38c9299mr46072070f8f.41.1779954969404;
        Thu, 28 May 2026 00:56:09 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 0/2] public/xen.h: Update mmu_update comment
Date: Thu, 28 May 2026 08:55:33 +0100
Message-ID: <20260528075539.10209-1-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1779954970-D3961443-B84A6C4A/0/0
X-purgate-type: clean
X-purgate-size: 249

Frediano Ziglio (2):
  public/xen.h: Update page table layout comments
  public/xen.h: Update comment for mmu_update hypercall

 xen/include/public/xen.h | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 28 07:56:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 07:56:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1320982.1588026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSVbB-00089E-Ct; Thu, 28 May 2026 07:56:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1320982.1588026; Thu, 28 May 2026 07:56:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSVbB-00088r-8z; Thu, 28 May 2026 07:56:13 +0000
Received: by outflank-mailman (input) for mailman id 1320982;
 Thu, 28 May 2026 07:56:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wSVbA-00087E-4v
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 07:56:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSVb9-00HB53-ER
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 09:56:11 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a17f50e-bab6-0a2a0a5309dd-0a2a4504892c-22
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 09:56:11 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a17f51b-1dec-0a2a45040019-d155802de510-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 09:56:11 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-48e8132c6d0so78780755e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 00:56:11 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45edb5b2ba9sm11540146f8f.31.2026.05.28.00.56.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 May 2026 00:56:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779954971; x=1780559771; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RPYjBEaEb+IC2SvCGYrFHDkk4Q7GQvn/RowkjsSuslI=;
        b=LvekofBOZHG32Aq3Ixu3TQP2sFAYtR0qIt4sUyos5GgVseyBOLcQ1mgv3sSZ4yVwKw
         sLZT6VTerYQ+Hvr4RfzvUkm5LhDcSz95+1ctM/Pbw7/i5ZQ9ODJgF8KtkBfPCD2akdZF
         YVvTs5CvwYBZ7t/3Uw2R6hmVdBkmYZYdywaGa/QBTMXVQcFvlGg+tuRJ40hiQPoEsZ7T
         cYHNI7ddD7Z+D5IHAbr7/WA98W9RpLmhEiMdOvECKqSbfxd2qKU75TJdJVD6uCEShiAE
         QJ6XQfqvnfSjMdNt/gMXjGczQ5QfFIWZjPTvuqQLIyvUGPEa91x6UUOpHS9xXOmBoFTI
         cyTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779954971; x=1780559771;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=RPYjBEaEb+IC2SvCGYrFHDkk4Q7GQvn/RowkjsSuslI=;
        b=M4WE8VH3zcdPd7yvDm1U4DsmjrKSFTkiN2wX84zOComgeI6uCQpwoKj+eMPzxPHwm1
         eYxe5Lq6BYzxJNoLu3VTJkJA+6cmpM394aKlj2SNCjRoUJKirV882CmO8c3cbIgs5i5W
         neEtkgiIO0F/F1sqAerPo3RiLfGrbamHCfUCbigH84YiYKfOvrkSCULSN59gQ9BOlD55
         OrJtRNgx8HCleoeCEFIDY2GW0u14wSayMFlabZ0uSuo97mJLbtZcOC8EAbyl0cqSecz0
         1fzOxZI3hginhCU48pOzU3sQ06papQq0yacttgHw/t48JbwC50ncmdljzKyqiQGsJ0Bf
         L2oA==
X-Gm-Message-State: AOJu0YxxqW8fynFB8hK9zmd+2e1bcE4Sv9NzwFIGRR7ncIsDFn3kugQ4
	y8VRQWa00WE2HPuuWggpvQjX5fIEQXRMg0c1kGfidxsWjHAQSfzf47OOZ752oOhu
X-Gm-Gg: Acq92OEr+PuLonIzCMsTIrAQm3v2m54MGyPgoVN0JnqqcOYmKJS2+t3w0KiNG2DIAVh
	a8SLJ92hnLEJ7aX2qfL7obWMjqiWoJq63v5lRwiHSvdX00Iqvhht0C2Ko7ewql+uXzhOcDqTu7z
	WddchnoldAVcfmf7LSD43610Uu4NY+OrTNjOjSJe5+DqwXfcJGK6mFw66KJnht9EUy2TmIOlBAl
	9XGHfzBBWeco61xOwoHXlE3K+DvubknGmlJE/Zvgnr9mFaDsjotvugf4G/rLXOZDGBvAZmJ9oU9
	npU7gY+u/P9D+q+LWZp/qSSzVkaQz4jWZORsfm7YkQ7DF7UHpi2VvfpgsRE5v0rYOhLaofXaYQ5
	iaS0ZOXWTRwxoHHea8dc/+a9ZolKQBgJ9huiTZT+TQfLGnrnA9RaLa6iCx2ChXn3Kn9Kgwwn9i4
	CTH9xUgP/s8Oo4hMOEPIkih9SSpHjeV4f4wvm+38UJlzxe/P3hhcYTbgDBS/7Hqv3Hq4hc0wwSF
	8p+mmXDMbP55am19lXuFg9rJ4uvTZzSvU5o
X-Received: by 2002:a05:600c:4ecc:b0:490:3d62:f5e1 with SMTP id 5b1f17b1804b1-490426cbba2mr434727415e9.22.1779954970446;
        Thu, 28 May 2026 00:56:10 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 1/2] public/xen.h: Update page table layout comments
Date: Thu, 28 May 2026 08:55:34 +0100
Message-ID: <20260528075539.10209-2-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260528075539.10209-1-frediano.ziglio@cloud.com>
References: <20260528075539.10209-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1779954971-42F653FF-BCC30779/0/0
X-purgate-type: clean
X-purgate-size: 846

From: Frediano Ziglio <frediano.ziglio@citrix.com>

Bit 12 was always used for the MFN.
Extend range for MFN.

Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
---
 xen/include/public/xen.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index 2149b8dd38..d4f238c10b 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -283,8 +283,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
  * if this is a X86_64 machine and four page table layout is used, the layout
  * of val is:
  *  - 63 if set means No execute (NX)
- *  - 46-13 the machine frame number
- *  - 12 available for guest
+ *  - 51-12 the machine frame number
  *  - 11 available for guest
  *  - 10 available for guest
  *  - 9 available for guest
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu May 28 08:37:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 08:37:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321014.1588048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSWEz-0006v0-SN; Thu, 28 May 2026 08:37:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321014.1588048; Thu, 28 May 2026 08:37:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSWEz-0006ut-PO; Thu, 28 May 2026 08:37:21 +0000
Received: by outflank-mailman (input) for mailman id 1321014;
 Thu, 28 May 2026 08:37:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wSWEy-0006ul-9l
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 08:37:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSWEx-00Fldb-7G
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 10:37:19 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a17feb5-bab6-0a2a0a5309dd-0a2a4507ea6c-34
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 10:37:18 +0200
Received: from [40.107.209.23]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a17febd-229c-0a2a45070019-286bd1179be2-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 10:37:18 +0200
Received: from LV3PR03MB7707.namprd03.prod.outlook.com (2603:10b6:408:28b::21)
 by PH8PR03MB989115.namprd03.prod.outlook.com (2603:10b6:510:3a9::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Thu, 28 May
 2026 08:37:15 +0000
Received: from LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf]) by LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf%4]) with mapi id 15.21.0071.011; Thu, 28 May 2026
 08:37:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MwfVBhLgUZ3qb0njt8y1I1qsYmz32k8nWCtBRjV8d/XwqwTWx6cvNDlZJiW45agjcC7RJnD0zjT9tkUO3yTM0XlCL2foKyT0huQh7tpMSmHCM9QvNXtwSbURz5ute2sww3oVBE0ihlL6Ij+fcaRxCIjW9mBTZXVaVsm0iP47wMo8PV3IqEu23YnPURyxvUmC+FNk4gbm1bT2GUE+I/nCBAhB5YoVje+yu2pGf0SbtohUGgOwHet+U3yxn1bL+o6U60ytleN06KpKNRdLPOBdda0qOQSdcqb6OXRXSTHmIJw/Hd439OwS2x0POjadTZh+IQlmxpL/yVUDuqJEGnxyMQ==
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=/Wq5rWjUKBlnSSQtirvzS1PhtuEizuH1aUUrGvKtcdw=;
 b=EYjW59uNLv4Q2FRXYxAD2NVHO4J2swZAlcBzfFsyNSgMAhhNO6Rm9OdBBTZ+Flzpl43RUJy9AOqH8KVdazmhMJcYFv+UH4hyQKAChOh+96N6Id1pPis8/zssqdTiODBdv7vItGSHqwr1CROY9yLtUWfNXt6Vb+w7vwS/Z10gYVYsvLCYVD4omVq4k+avY7/vLui4g4162Cf1jFqL/uxRAS5e8pxLTn4VVFh/GSnHbm27mg8iAtWIz6cyIw/nQhx0B9lSrLdSGlam0VgWipelyA03tvl8HkKmeAUuWvZGjNm3UjpJohNMoDoHIgcI2X+i9zzb/fJ6dx3/fq3Ezb5UGQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/Wq5rWjUKBlnSSQtirvzS1PhtuEizuH1aUUrGvKtcdw=;
 b=oRLiAPOLnqWytJjGS4TBn+jrpCcPgCSOmLtkYvJdttpdtSpCeXcJUhqtTO76bzjtunx9sVBh5J+kILAMrLoOgoqHumGsRtRwn3s8hvslMgMUZJGEO9eefzyP4opDpZUAW69NomCoURQIDlh87hLgQ0Jch9BlRLGn2Qu94UjpzAI=
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Christian Lindig <christian.lindig@citrix.com>, David Scott
	<dave@recoil.org>, Anthony PERARD <anthony.perard@vates.tech>, Christian
 Lindig <christian.lindig@cloud.com>, Andrew Cooper
	<andrew.cooper@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v7 3/3] tools/ocaml: Add OCaml binding for NUMA claim sets
Thread-Topic: [PATCH v7 3/3] tools/ocaml: Add OCaml binding for NUMA claim
 sets
Thread-Index: AQHc3yskZefH5Dcnuk2paHsViwIsPLYIlbSAgBqkjPA=
Date: Thu, 28 May 2026 08:37:14 +0000
Message-ID:
 <LV3PR03MB7707CEA80CEC74939A6E508187092@LV3PR03MB7707.namprd03.prod.outlook.com>
References: <cover.1778272036.git.bernhard.kaindl@citrix.com>
 <10726c7afb43856a1014c6b6e24700442ff8740e.1778272036.git.bernhard.kaindl@citrix.com>
 <b60c1209-fdaf-4e9a-b93a-878a3aeb64fc@suse.com>
In-Reply-To: <b60c1209-fdaf-4e9a-b93a-878a3aeb64fc@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LV3PR03MB7707:EE_|PH8PR03MB989115:EE_
x-ms-office365-filtering-correlation-id: 0bb2bc9c-acfe-4b4b-3194-08debc9451dc
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|366016|11063799006|5023799004|56012099006|4143699003|18002099003|22082099003|38070700021;
x-microsoft-antispam-message-info:
 1ge9km4HHhEw/1tDnio0I5Qojv+PqgED93o89J0VMU8zV8QDHt7025U9m7yk1MpMJshwprNlLECCWFo7G7WkoI2Wh+qfyltGj7UDbTgeyYoRdi8ew5hFavVjfwa4dVRLh7sVZHqFc3QNP8FdpaWgVpxVx8J6XFn8y1OytEJsknWNvQEVjIPsq+ZBro5jJo18ftwyfaJks7sWctMgNZFfrXW/48XTyaAw6J5a0Yh1srMBtiKPPLtMPWwBPtkBtKpmcxFmglrwQkrKnutfgUmaOg5h8aVw84f4XREhhzkgxpaW2Bxgt/xOMAf0b1RSdOHAVd33OsAX+ccTuPfZ/Fqm8G+jtVDjGRjbJJzzwNVFy5DV3TWyZxur/sAjr4vcL3+lL10CwGLpK3t2XMslJbcZO0O6os0dapGqQeezV4FGl4t9Yo2dYDE18FWsNm4BIzskTpMO9xIPK83RyxApH+tM6UxGOXf53Z5qcvNYJZLzjLx/CwjR4ydhZhRYbJdS3fOT343diHSrDmeRGrQgGUuLSHbNlphum4YGeQywoqdU1x83miKfcXqdaxNX4KZ9qtSGGoxlidzOcw6h0vjJ5hZhpCfin8ZFcSwO5D497ZwHZj3/5iScb2UX6xPxFV/tDixz5Wi25WBkBFnRbtn0IFlTU+9R7mCAOPS9eGdXFyY6lBaAMfs3sZk+ymZTa9XSnQb4tMsd6EQMQSP+wjSxueL/VAp/at4DzqWN3wPgVoeBNc5EgsweqMl1cOvk5Y8rlvFp
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR03MB7707.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(11063799006)(5023799004)(56012099006)(4143699003)(18002099003)(22082099003)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VXFtNFlteE9hU29xb2F1MVNLY2ZhUEp0Yk1zOXJnQkdTWlhxb21zQUtIaVhP?=
 =?utf-8?B?S2tGVkRPL092ZjFoemhOOW45WGJOcFJvdGgxQmdWT25XMEtQaVlkbTRMa2ow?=
 =?utf-8?B?M3UydmU0U1hvWi9FRHdSalQvVEVVcFg4TzM4MDZjSUh6dS8xWnEzb0xaMmp3?=
 =?utf-8?B?ZERzZUhqbGZZTU1NNjk2VkpoajFQUkNsUTRVK3Vzams5WlAzVE9EQ0k0UHI3?=
 =?utf-8?B?VVVPMkpQUk1IQUFwVVVPM0VMdy9zanFTMDgyNlhOTk15OUUrZUtTcGhweURE?=
 =?utf-8?B?T2pJTGtOMm9yTW16a1o2YmJjSjNsc3RXVUZ3aXRiMG9KOXhPY0ZQaDZ1ek1i?=
 =?utf-8?B?dVNCbTJ4KzJzWkVDSVFhZ2FRM0k2Z21LbEJVM1RYSFNudTRlTmZ5NDJTckdX?=
 =?utf-8?B?M084ZzY5UWdPMGk4cjl2UzRLUTF6WjN1MkN5UUx0ck9rd290c0VXTytpbDAy?=
 =?utf-8?B?dnVCcmRWNXNRZEo3U0pxMmVqNExnR05qY3VmNVB0V2o5WFV0OEplcXFTd2Jp?=
 =?utf-8?B?WFpJZTRYTU1vN0lCd2FUY0d0RUIrcmZ6VE5NZ2EzdTlsVi9DcVJmZDBMWlM5?=
 =?utf-8?B?VDRjRko1UHI5Rzd5dkZsb1hUU01ZdTFzYWZyQVNKbmxIajJnNUg3ZnJ6bU91?=
 =?utf-8?B?RVo3TGh0MExRTTFuS2NOcExyakFmTWc1dUs3ZG00R0U4Uk5hc1d2T0xyYVJ0?=
 =?utf-8?B?bzViVGUwTnpMZWZkRjUxNVI1Z0hEb1hZMk8vVXRDMXNZVGhRTWppY3VoUGFo?=
 =?utf-8?B?eUdiWEtGZlNHcXplQmU4eE1rMDZSREwrRE9uNmFEK2xtZGFPSUpxcU5mNXV0?=
 =?utf-8?B?YnFnRE1oR1grODljL044Q0xRTkh6UVhITmRXRVpLNUFUU1ZXNnlEZGFCbVRD?=
 =?utf-8?B?TzNCNExrWjZOQVAyMVk4U0J6TlJLS29mY0Y0blZEcm5wODB3Qy9vTHB1SFpn?=
 =?utf-8?B?MGExTE1oNkRmQkNPMzEzd2pxSXNoa01WYmFwZElzMW0yUjNzM2xwcUVsV093?=
 =?utf-8?B?aVVCSFR2dzBXQkNUN0Y4U2pmU3Bua3VlSTg4K3dsTHBjZ2R6MkdGd1JJQU5v?=
 =?utf-8?B?SDBrcmQxaFZPQTNyU0dLRWtNS0NPWXYzajJGTHRTRzZteWt6b3NGSFVwOElj?=
 =?utf-8?B?NUdHV3drQ1h5ZjduTWE3azVBSXRzNDI2ZC8zc3hQdzF0U0JYRjluZTdOb1RW?=
 =?utf-8?B?Q2syWTJVN0lEVzRra3hwVC9seG1lOUI0K293L2hYQW9mN1gwYkpDeTdhYTdC?=
 =?utf-8?B?RjZlMCt5Sm1HblI1S3Q1dUlseXhSTUIrUDVFQmFqSXAvaVR3dW1GRnlWZFZp?=
 =?utf-8?B?M0E3Y09QR202S0x6M3g4ZEpjUTZpSVFFTFRnNHE1dytOdVc4Nk5IMFdQMnJT?=
 =?utf-8?B?Q25KRmVFWWtaOWxUR2xITk81ekJzTWkrejJqdlVBQkZhdGxKaHVlVFMwYUM5?=
 =?utf-8?B?cFdoWmFyaEFWNkJuZlh3Q2ZEVU81cU93QSs1R3UwZ1V0YTZjcmdRWEcxdFJJ?=
 =?utf-8?B?SkJMeUEwdnFwUVR1S2lHeHVOMk9KcS91TlY4N3o4OHk4VjFzQjd1cVdXRnd4?=
 =?utf-8?B?Z2xnY2JSN1ZFL0c2ZnhDWGdqcVdmSDY5ZjZqcWl6TERZL2RJaTJqWkFtd284?=
 =?utf-8?B?ZnhXNlByWHJaODJLVnZSNnZzazZWM3hJbmVDQnlyL0pIUHJGNGFWYTE4MGJT?=
 =?utf-8?B?anRxajdUajlyY3BObDFsdHJLcWp4Y0gxREg4dUo1cGNaWkVSdlpmT3p1eXFX?=
 =?utf-8?B?b1ZoMnhoQ3BsM05tbE1XckNZWE1vOC9SUDZBdmRxVDc1SnhiMkp0QjJZK2FE?=
 =?utf-8?B?Ynd0MmNqUlJMeE5BZ2pveFoza3V3N0VJb0oyRWtPcWdiSWlzSUR6MlBEbDho?=
 =?utf-8?B?dXRvOHhIRDIzUVA4Mksxbm9QSFdjaXBLcW1LY3RveUJEOWt5anJ1MEUrV29w?=
 =?utf-8?B?OGplQ1RwcDdneis5aVVPTWNFODhhdzhZV0NMTzd3SytHNUYvbmxlMzVsVlNZ?=
 =?utf-8?B?NS9aeUZydHcyVUFVaDJITHhKcUVjd21mbVdEWVZLUnNYVkpCajFWS1hPMFJ1?=
 =?utf-8?B?NHNYT1p2NmJ1a2wxNnQ5ejFPR0FHd09ONk1SZkRoRkZqY1N5N0szVmJWTStC?=
 =?utf-8?B?OWZJOS9QRXhsYWpsZFFKaVRmRHA4dWgyK3RNZUR4ZmIyL2cvdG1Cc3pkR1Yr?=
 =?utf-8?B?NzdWR29Jb3ZVbS9CRXAyMmxUV3IveldMeTBjVFlYaHpULzQzK3BoT3RVTU5K?=
 =?utf-8?B?eHZaYnFDNnBydGk0UUwxMDhGSGhIclAybmIxVjkrSUdMN2pCZkZJZzQrWlpn?=
 =?utf-8?B?Y1gvbEJYS3VQZUk4cmE2NGZKVUlHTGdwZVBZZzVNSk11QmtjcENLQT09?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LV3PR03MB7707.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0bb2bc9c-acfe-4b4b-3194-08debc9451dc
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 May 2026 08:37:14.6826
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 0AFY/cjq67UdnWw9oR7drZ7LRwZU4VY4J2Fb3t2jzp5vXWtdtP4jdRve2MkVTz9RuOTpCcLuYeFls2Ww+igXVQRktM+13diCMCkqf+cYwto=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR03MB989115
X-purgate-ID: tlsNG-ef75cf/1779957438-22D77C48-1F227F8B/0/0
X-purgate-type: clean
X-purgate-size: 1138

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEFja2VkLWJ5OiBDaHJpc3RpYW4gTGlu
ZGlnIDxjaHJpc3RpYW4ubGluZGlnQGNsb3VkLmNvbT4NCj4gPiBSZXF1ZXN0ZWQtYnk6IEFuZHJl
dyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTog
QmVybmhhcmQgS2FpbmRsIDxiZXJuaGFyZC5rYWluZGxAY2l0cml4LmNvbT4NCj4gDQo+IE5pdDog
Q2hyb25vbG9naWNhbGx5IG9yZGVyIHRhZ3MsIHBsZWFzZTogQ2hyaXN0aWFuIGNhbid0IGhhdmUg
YWNrLWVkDQo+IHRoaXMgYmVmb3JlIHlvdSBzaWduZWQgb2ZmIG9uIGl0Lg0KPiANCj4gSmFuDQoN
CkhpIEphbiwgYXMgdGhpcyB3YXMgdGhlIGxhc3QgcGF0Y2ggaW4gdGhpcyBzZXJpZXMsDQoNCkkg
YXNzdW1lIHlvdSBmb3VuZCBubyByZWFzb24gd2hpY2ggY2FuJ3QgYmUgZml4ZWQgb24gbWVyZ2Ug
Zm9yIHRoaXMNCnNlcmllcyBhbmQgeW91IGNhbiBhY2sgaXQ/IChJIHRoaW5rIGl0ZW0gY291bGQg
YmUgZml4ZWQgb24gbWVyZ2UpDQoNCklmIHlvdSBjb3VsZCwgcGxlYXNlIGRvIHNvLCBvdGhlcndp
c2UgY291bGQgSSB5b3UgZXhwZWRpdGUgeW91ciByZXZpZXcNCm9mIGl0Pw0KDQpBdCBsb3Qgb2Yg
ZnVydGhlciBOVU1BIHdvcmsgZGVwZW5kcyBvbiBpdCwgYW5kIGl0IGFzIGl0IGhhcyBiZWVuIHBv
c3RlZA0KaW4gdGhpcyBvciB2ZXJ5IHNpbWlsYXIgZm9ybSBiZWZvcmUgdGhlIGRlYWRsaW5lcyBm
b3IgWGVuIDQuMjIsIGl0IHdvdWxkDQpiZSBuaWNlIGlmIGl0IGNvdWxkIGJlIGNvbnNpZGVyZWQg
Zm9yIG1lcmdlLg0KDQpUaGFua3MsDQpCZXJuaGFyZA0K


From xen-devel-bounces@lists.xenproject.org Thu May 28 09:35:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 09:35:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321035.1588061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSX9J-0006MK-3n; Thu, 28 May 2026 09:35:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321035.1588061; Thu, 28 May 2026 09:35:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSX9J-0006MD-11; Thu, 28 May 2026 09:35:33 +0000
Received: by outflank-mailman (input) for mailman id 1321035;
 Thu, 28 May 2026 09:33:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <nisthasarawagi35@gmail.com>) id 1wSX7b-0006Kx-NM
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 09:33:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSX7a-00HX25-Ow
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 11:33:46 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <nisthasarawagi35@gmail.com>)
 id 6a180bf6-5cb7-0a2a0a5109dd-0a2a450ba70e-22
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 11:33:46 +0200
Received: from [209.85.208.182] (helo=mail-lj1-f182.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <nisthasarawagi35@gmail.com>)
 id 6a180bfa-212f-0a2a450b0019-d155d0b6b108-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 11:33:46 +0200
Received: by mail-lj1-f182.google.com with SMTP id
 38308e7fff4ca-39393c1b5aaso53361861fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 02:33:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="To:Subject:Message-ID:Date:From:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1779960826; cv=none;
        d=google.com; s=arc-20240605;
        b=LdryZ7fBMcLvG9KCvXF5Vg1Bc7QeCwYZ5vew5l3/l8LwWAiVurHdI8fh/ywM3fcGsy
         hEbARc7V3UPnOktSmcK5wkJOkkEha+CTuXnvya3rz8IxmsBsG2a7QullnHBtdJEiuZxY
         Bv3ZZ5/pXHM8ED6uwALJf2EnywP+f0CXE5nrkrtZjW7ZfALtj59CRzjWxhjjoBEzu1pS
         czozR/6hSG5XSR21e8lAdkXflFY7pHegNdoTmnzi8OgtvUpIbjlowYxX0ykIo6ycyOaS
         xRkvP6q7cC9YeYiHXvJt2j3JZDLlEA4gYQZUOaGwH3En6/bMj+XqU6uZXOvQdu3bomuD
         CD/Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=to:subject:message-id:date:from:mime-version:dkim-signature;
        bh=nO0glx3qkIy3cEq9pHxEidjea7rVy6x1ETyt83oKVUI=;
        fh=quJY5mN2l4ZorNvEoO9ngNXalhEvTdq/+W8CvHWhECs=;
        b=IJYLQIe7P5sK7hhiryvonFoHv9MW96DZ0GAsoff983ZV8ZEBx9R3j3y6wND/FWn8Oz
         TVQNU6trW8alZ0du3ek2ioHiBVz3x5ytFuX7FvDF2BCc1HiSPgNhAX9i8eHBJ3nQ4U0O
         mY9cTeRAdhWFR5ehuQYPhXy+hTBKZuuZCdeSgzv6svnWgTxGR2AMPiHATfOuSY7jEEQw
         vGNrm36gdinQvWR9gbv3n5g641hBlDSCxmsZLh222i0SFiaj947iKbnxlCH434E9V3rd
         Q739sMY8hQ7V0WY0r5JRBt5/WJr5rh5ipKTxH+TGtKMbLPzkjd5FuDG3sxavBe1nIn0v
         BejQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1779960826; x=1780565626; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=nO0glx3qkIy3cEq9pHxEidjea7rVy6x1ETyt83oKVUI=;
        b=WIGnvw3AE0pkvSTX2YfgRRtcxy8ctb2uE9qnv8cRYyBxvXD2Tna5xNA0hzldAONjrl
         GYMZyaXHvQga5XhCIJJDrlOZPLoG6aFlKfhjFAhRUTTLy0iskpBaCrmjNUo3Q/IPcx9O
         7Aka0xAcXcS4QIpKdkFMtxQMiCUJE5pYm7NXvMi/noaNQyNovVr5Aihs1JiTMTMUuIGA
         h+sPn8xFNqpY1vt8l8EKEXyoZfnmYHuCGNefVctlKvrZey2Und0+ppAk4chaPhdBwusZ
         z5QWjAd9Q2qMzgzXJ2S/hFK+XeciL9676TlD+sLOd3L2XLzfiho4RrtwtYr1wsMr2kW4
         LNEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779960826; x=1780565626;
        h=to:subject:message-id:date:from:mime-version:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=nO0glx3qkIy3cEq9pHxEidjea7rVy6x1ETyt83oKVUI=;
        b=hPWWgK2pAqkieUc+3xmVih6pyWb+wMbnZ6WZzevdN0eJzvXBuPleV/YVFvDWxgGWcL
         Cb86vd/8VKGQEAmt1ruj3oNG8C2K5aZDAxDAyCrVRGEq2xTo0H8XdyhprhueJRH4r5gq
         zwfQYRNE5f+I7bOmiYLV/vty9FAET4i5+mvJykgfNLuLYFYrk6+A/Oy4KGEwPc94vHur
         fJ33mqeCX6h1ehFFmJxPNF6jtK24qSirG/V0Yo1nMIPX+KfvTS/fEQIyCH1FLDjSaQmm
         RviAwoKHUU0m7tOcPd7hUwlaSNsWNiTcmlg5ojVYbX8hVpDy7yhvM/o2IZlWOn6JnIbu
         RSkQ==
X-Gm-Message-State: AOJu0Yxjgu71tsz4XINipTEXpOXiXwW+S2+rLfgsW2p454i8+ofonTTa
	FPIYBjBe1DbUzOn/5OiHW2z65tJJHXQDG82BbNAaR8RnHagid05EGg6zoCxh/LaABGVprhDQ8cQ
	B+J+dslXhA+xhDMWJbDBh2V9dqNbHT9tuqTNyWOY=
X-Gm-Gg: Acq92OFt6CjbkLFfp/XKGEvFcWleWio7F8JPs+zryQv02gu0p0ZxsmSOxfD/GRSh2lC
	a4agcK9pyvC2x0m2hSDwIY/yF+PRgkwQwQcMMC2LAl/bNvJx2fJkE4n9l6x7CVeRstrBMuBn8ZE
	UTtaSjeOpPsNVqrKRpp5yAbo1muhQGiCc9aShU7Sdd+bGMLBMoF3EXGQgnrFQHpKSGwymfmxkOY
	b8Ov1hS5V3owEfVmF0sk1TEWzLe26HdqNizLuLdSSeYjGLSsCgZIqdNHFgOrl5CFgsRLbuIpOL0
	nUfdyMO5HqVfNoJ061PgFNd+NtUsEVczbjA=
X-Received: by 2002:a2e:a994:0:b0:396:28df:1133 with SMTP id
 38308e7fff4ca-39628df1db6mr25971231fa.16.1779960825784; Thu, 28 May 2026
 02:33:45 -0700 (PDT)
MIME-Version: 1.0
From: Nistha Sarawagi <nisthasarawagi35@gmail.com>
Date: Thu, 28 May 2026 15:03:31 +0530
X-Gm-Features: AVHnY4IAEbee794_IKpp6A3pc4dRXLzZLS1cQEEVZXACIZ6OgsJCO5qMXPJ0Q18
Message-ID: <CAJRCM3CRheT3SqevEjqJZ4+oLAPuawc5VDYiEJ4U6Yq=PcdHbw@mail.gmail.com>
Subject: [INTRO] Prospective LFX Mentee - Interested in Xen Project
To: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000bc2c5d0652dd6cc0"
X-purgate-ID: tlsNG-42698a/1779960826-20E7CF3B-756D066D/0/0
X-purgate-type: clean
X-purgate-size: 2252

--000000000000bc2c5d0652dd6cc0
Content-Type: text/plain; charset="UTF-8"

Hi everyone,

My name is Nistha, and I am an undergraduate student currently applying to
the Xen Project through the LFX Mentorship Program (Summer 2026).

I have a background in Python, Java, and JavaScript, and I am actively
working on building my C skills as I explore the Xen codebase. While I do
not yet have a systems programming background, I am genuinely motivated to
learn and contribute to open source virtualization ,which is why Xen
Project stood out to me.

I would love to get some guidance from the community on where a beginner
can meaningfully start whether that is documentation, tooling, or smaller
issues in the codebase. I am also happy to take on any tasks that would
help me better understand the project ahead of the mentorship.

Thank you for your time, and I look forward to being part of this community.

Best regards,
Nistha Sarawagi
Scaler School of Technology
https://github.com/nistha-coder

--000000000000bc2c5d0652dd6cc0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi everyone,<br><br>My name is Nistha, and I am an undergr=
aduate student currently applying to the Xen Project through the LFX Mentor=
ship Program (Summer 2026).<br><br>I have a background in Python, Java, and=
 JavaScript, and I am actively working on building my C skills as I explore=
 the Xen codebase. While I do not yet have a systems programming background=
, I am genuinely motivated to learn and contribute to open source virtualiz=
ation ,which is why Xen Project stood out to me.<br><br>I would love to get=
 some guidance from the community on where a beginner can meaningfully star=
t whether that is documentation, tooling, or smaller issues in the codebase=
. I am also happy to take on any tasks that would help me better understand=
 the project ahead of the mentorship.<br><br>Thank you for your time, and I=
 look forward to being part of this community.<br><br>Best regards,<br>Nist=
ha Sarawagi<br>Scaler School of Technology<br><a href=3D"https://github.com=
/nistha-coder">https://github.com/nistha-coder</a></div>

--000000000000bc2c5d0652dd6cc0--


From xen-devel-bounces@lists.xenproject.org Thu May 28 09:50:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 09:50:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321049.1588073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSXNb-0000n3-8M; Thu, 28 May 2026 09:50:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321049.1588073; Thu, 28 May 2026 09:50:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSXNb-0000mw-5j; Thu, 28 May 2026 09:50:19 +0000
Received: by outflank-mailman (input) for mailman id 1321049;
 Thu, 28 May 2026 09:50:17 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1wSXNZ-0000mq-K7
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 09:50:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSXNZ-007Vde-0X
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 11:50:17 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 6a180fd8-e002-0a2a0a5209dd-0a2a4504a6d2-0
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 11:50:16 +0200
Received: from [103.168.172.148] (helo=fout-a5-smtp.messagingengine.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 6a180fd7-1dec-0a2a45040019-67a8ac949649-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 11:50:16 +0200
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.phl.internal (Postfix) with ESMTP id 6B227EC0209;
 Thu, 28 May 2026 05:50:15 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-01.internal (MEProxy); Thu, 28 May 2026 05:50:15 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 28 May 2026 05:50:12 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm3 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm3 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1779961815;
	 x=1780048215; bh=C73dZ4oni3DpuJAFTI29agQWZYPWOc8CxmxBkhpKbLc=; b=
	T7Viz/dXKICs/HT6/I4iyhQ6gLS0shOHQJ6j4YJNuX2oWyKD6BlprfjoBcMZDPRm
	jOFzSpxtCvYZzRzvjcNa1kkEMTowtO/GdwoBGZG2lNkRJotQtbokcY8A4+LyQ3Uk
	jckFEg8yOOxYboqkAppJoRrH1s+aR+xem47+ZOkeeOAEnj6xXB4707fJOPQHBPo1
	r1Pdsx4lKgbCesli/9Iydv5+VPhqqn2Y3c4R6c0LYu7miGimR7VPtFJfB20EKbow
	RMh+uQspt4wTU23xr+9p1zrsEvqBZVaNpkIzK94V7RqioU1LUejFqHV1p0/UuZD0
	v8WiigTsNZR+OV40KICgKQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=
	1779961815; x=1780048215; bh=C73dZ4oni3DpuJAFTI29agQWZYPWOc8Cxmx
	BkhpKbLc=; b=Dwlhy1FQIlYWarr41WtAYgyk7tTqSGDEnl5TJqCa3jT6BoFFwI5
	eNI53uvPqcJ89exw933vRRDsb9lFPgqAT7NREwCjDhOtRxvB5o91EEYNWSqyYaGK
	UP49BAq5yOWgdxWoCQS7+tuWpMXCO3vBJckPCeGCXaHd4BkLtjfnJaEJ5DFOqigy
	NqydGfkuMjJ8HWU6d4krAmUXg5SjZTZX8X8Hqiu76LHwfz0Qv5AbpbX3mGT8m+uB
	GU5EzYCxebX3fJN4/1UInPNHrK9DfFAmOKXyJo+7wHDwMRIqo0Uei2Rt3D0qn0MG
	DgYlow7M6aUeB3O3R2upoEV0P8lABRKpKoA==
X-ME-Sender: <xms:1g8Yau1S59xA4j1_3ymH4DgUL_HP6r05MStN6qXP4Y1HcIBbwbj9cw>
    <xme:1g8Yane75S18B3kITZT_E5wZyfXShkoxJnN2TORT8ss53cgYSW9KtOMmn8hcKGH1e
    ubUW4D5OEMW9X4kMXJiP5V6KMCs8K7VEwiEzbDb80T4raflzw>
X-ME-Received: <xmr:1g8YajLd4XGkTWyJk7JICkt-y2rEojYihNtbZb0M0hG9xgcH8CY6KKfV6rBB384PPcKm_dhU_gTUzR3JT6eRFW25waEuMavGnwI>
X-ME-Proxy-Cause: dmFkZTGFAsaPO9BZPACMh9k5z3nuK4s/4yEUfEHbDxVz6Di3PJzYP2vOMWRV/NFe6IPlOE
    OjbxChCOtxOJXafHM/GafqgLYxwKIVVsbSQ08sMYcjpQ1q0qVWUptaedJKh/0zQR8aAtch
    9KvuAt3GXSQhojoxkYpdAONTBUa7RyKAw5JRM1jbpLz4eM/K8jdqP6otmdlDjA75QS86pU
    o9c4WvxaPpb+EkM97S+biNOwDRhj5ZcAXgakpMaeRG92tAoYaTPFab5QHWQif70EL7qBrn
    BAP5StmZo3RutguUECTvnbyW/lfNRDax2RLBmZOqTQggRBo9oBN1CcMvoeti1d4Bl0JDWo
    kdmD01h09fSxP+bBiOXpjU1h9j0snC8xY39nQy24PtIVfJtzj8QGrDBUoHZxj2fqRltxXo
    FNoarmS6OG1lJvzlCKJ4lz74DKOJpPyEIamxwETrGc7Vc5S6RvXte0R9vxVG0NyOsWK8wP
    qo6clXqSi09XxmfHvzwtqBlh5Gq0ayKfvKzUE7xtLmosqC6VYe7u6Aq/ph3KHcDjpveEA6
    A3/e1i3wflSlTZZdeYjT6LZbKXduyHQrF3gg0T+Vhg+yZx5IUzV4gpVvgzzLb+2KpIm+nO
    fUbn2lGDh6isOs4W1XGp8MAVoROZyqhCOjv2IfFtMlfZ0GD6490tNFy5w6pQ
X-ME-Proxy: <xmx:1g8Yatq5axWHOb5gtxCQafKofiAHOuPyvLuoIKOkQbugzKAlZZkccw>
    <xmx:1g8YapsIuuGkEc0CqsywHRF6B_IIjDnMfmKcU4aQVn8s5SZVIgnU2g>
    <xmx:1g8YavI3f6brYS7-id1-aKoLXm4jjXg2HW4zAL7LyvT8UNVEIa1ifw>
    <xmx:1g8YagohdBkLcyYdcpINrJRyBQ1tcvFrtW_F5SRLogCiWVuKkgopjg>
    <xmx:1w8YamZtASRAvjpataCaZgl5pEV2wW34luj1If4yT0GndOKRPqY0wSbf>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 28 May 2026 11:50:11 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Szymon =?utf-8?Q?Aceda=C5=84ski?= <accek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, oleksii.kurochko@gmail.com,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v3 for-4.22] EFI: Fix boot from a device without a file
 system
Message-ID: <ahgP0107DSrstj8o@mail-itl>
References: <79d8684ede3bf1e9abe02a2e5ed966a0ecd5949d.1779726979.git.accek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="GtheMo/zlbyUu650"
Content-Disposition: inline
In-Reply-To: <79d8684ede3bf1e9abe02a2e5ed966a0ecd5949d.1779726979.git.accek@invisiblethingslab.com>
X-purgate-ID: tlsNG-ebf023/1779961816-2BB6B3FF-E86A6C4E/0/0
X-purgate-type: clean
X-purgate-size: 13196


--GtheMo/zlbyUu650
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 28 May 2026 11:50:11 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Szymon =?utf-8?Q?Aceda=C5=84ski?= <accek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, oleksii.kurochko@gmail.com,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v3 for-4.22] EFI: Fix boot from a device without a file
 system

On Mon, May 25, 2026 at 07:37:03PM +0200, Szymon Aceda=C5=84ski wrote:
> When netbooting a unified Xen kernel image (via GRUB chainloader),
> the resulting loaded_image->DeviceHandle does not support
> SIMPLE_FILE_SYSTEM_PROTOCOL.
>=20
> Instead of crashing via noreturn PrintErrMesg() in get_parent_handle(),
> we defer calling this function until filesystem access is needed.
> This way when booting UKI, get_parent_handle() is not called at all.
>=20
> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Suggested-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingsla=
b.com>
> Signed-off-by: Szymon Aceda=C5=84ski <accek@invisiblethingslab.com>

Acked-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>

> ---
> Changes in v3:
>  - read_file(): replaced unreachable `if ( !dir_handle )` branch with
>    BUG_ON(!dir_handle), per Marek's suggestion.
>=20
> Changes in v2:
>  - Restructured along the lines Andrew and Marek both suggested on v1:
>    defer get_parent_handle() until the first call site that actually
>    needs a file.
>=20
>    This mirrors the existing lazy pattern in ARM's
>    allocate_module_file() in xen/arch/arm/efi/efi-boot.h, which was also
>    changed to use the new ensure_dir_handle() helper.
>=20
> Tested (same as v2):
>  - PXE-loaded GRUB chainloading UKI - failure without patch, success
>    with patch
>  - QEMU boot from EFI partition, with config, kernel and initrd
>    on EFI partition too - success with and without patch
>  - Cross-compiling ARM64 - success
>=20
>  xen/arch/arm/efi/efi-boot.h | 12 ++++---
>  xen/arch/x86/efi/efi-boot.h |  9 +++--
>  xen/common/efi/boot.c       | 66 +++++++++++++++++++++++--------------
>  3 files changed, 54 insertions(+), 33 deletions(-)
>=20
> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> index ea59de47e7..069cc68b0a 100644
> --- a/xen/arch/arm/efi/efi-boot.h
> +++ b/xen/arch/arm/efi/efi-boot.h
> @@ -403,7 +403,7 @@ static void __init noreturn efi_arch_post_exit_boot(v=
oid)
>  }
> =20
>  static void __init efi_arch_cfg_file_early(const EFI_LOADED_IMAGE *image,
> -                                           EFI_FILE_HANDLE dir_handle,
> +                                           EFI_FILE_HANDLE *dir_handle,
>                                             const char *section)
>  {
>      union string name;
> @@ -419,8 +419,11 @@ static void __init efi_arch_cfg_file_early(const EFI=
_LOADED_IMAGE *image,
>          name.s =3D get_value(&cfg, section, "dtb");
>          if ( name.s )
>          {
> +            CHAR16 *fname;
> +
>              split_string(name.s);
> -            read_file(dir_handle, s2w(&name), &dtbfile, NULL);
> +            ensure_dir_handle(image, dir_handle, &fname);
> +            read_file(*dir_handle, s2w(&name), &dtbfile, NULL);
>              efi_bs->FreePool(name.w);
>          }
>      }
> @@ -430,7 +433,7 @@ static void __init efi_arch_cfg_file_early(const EFI_=
LOADED_IMAGE *image,
>  }
> =20
>  static void __init efi_arch_cfg_file_late(const EFI_LOADED_IMAGE *image,
> -                                          EFI_FILE_HANDLE dir_handle,
> +                                          EFI_FILE_HANDLE *dir_handle,
>                                            const char *section)
>  {
>  }
> @@ -665,8 +668,7 @@ static int __init allocate_module_file(const EFI_LOAD=
ED_IMAGE *loaded_image,
>      file_info->name_len =3D name_len;
> =20
>      /* Get the file system interface. */
> -    if ( !*dir_handle )
> -        *dir_handle =3D get_parent_handle(loaded_image, &fname);
> +    ensure_dir_handle(loaded_image, dir_handle, &fname);
> =20
>      /* Load the binary in memory */
>      read_file(*dir_handle, s2w(&module_name), &module_binary, NULL);
> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
> index 42a2c46b5e..d738b839ee 100644
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -284,13 +284,13 @@ static void __init noreturn efi_arch_post_exit_boot=
(void)
>  }
> =20
>  static void __init efi_arch_cfg_file_early(const EFI_LOADED_IMAGE *image,
> -                                           EFI_FILE_HANDLE dir_handle,
> +                                           EFI_FILE_HANDLE *dir_handle,
>                                             const char *section)
>  {
>  }
> =20
>  static void __init efi_arch_cfg_file_late(const EFI_LOADED_IMAGE *image,
> -                                          EFI_FILE_HANDLE dir_handle,
> +                                          EFI_FILE_HANDLE *dir_handle,
>                                            const char *section)
>  {
>      union string name;
> @@ -304,9 +304,12 @@ static void __init efi_arch_cfg_file_late(const EFI_=
LOADED_IMAGE *image,
>          name.s =3D get_value(&cfg, "global", "ucode");
>      if ( name.s )
>      {
> +        CHAR16 *fname;
> +
>          microcode_set_module(mbi.mods_count);
>          split_string(name.s);
> -        read_file(dir_handle, s2w(&name), &ucode, NULL);
> +        ensure_dir_handle(image, dir_handle, &fname);
> +        read_file(*dir_handle, s2w(&name), &ucode, NULL);
>          efi_bs->FreePool(name.w);
>      }
>  }
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 9ea2183c0b..2971ea8696 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -547,6 +547,17 @@ static EFI_FILE_HANDLE __init get_parent_handle(cons=
t EFI_LOADED_IMAGE *loaded_i
>      return dir_handle;
>  }
> =20
> +static void __init ensure_dir_handle(const EFI_LOADED_IMAGE *loaded_imag=
e,
> +                                     EFI_FILE_HANDLE *dir_handle,
> +                                     CHAR16 **file_name)
> +{
> +    if ( *dir_handle )
> +        return;
> +    *dir_handle =3D get_parent_handle(loaded_image, file_name);
> +    if ( !*dir_handle )
> +        blexit(L"Cannot load files without a usable file system");
> +}
> +
>  static CHAR16 *__init point_tail(CHAR16 *fn)
>  {
>      CHAR16 *tail =3D NULL;
> @@ -838,12 +849,11 @@ static bool __init read_file(EFI_FILE_HANDLE dir_ha=
ndle, CHAR16 *name,
>      if ( !name )
>          PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
> =20
> +    BUG_ON(!dir_handle);
> +
>      what =3D L"Open";
> -    if ( dir_handle )
> -        ret =3D dir_handle->Open(dir_handle, &FileHandle, name,
> -                               EFI_FILE_MODE_READ, 0);
> -    else
> -        ret =3D EFI_NOT_FOUND;
> +    ret =3D dir_handle->Open(dir_handle, &FileHandle, name,
> +                           EFI_FILE_MODE_READ, 0);
>      if ( file =3D=3D &cfg && ret =3D=3D EFI_NOT_FOUND )
>          return false;
>      if ( EFI_ERROR(ret) )
> @@ -1514,7 +1524,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE Im=
ageHandle,
> =20
>      if ( use_cfg_file )
>      {
> -        EFI_FILE_HANDLE dir_handle;
> +        EFI_FILE_HANDLE dir_handle =3D NULL;
>          EFI_HANDLE gop_handle;
>          UINTN depth, cols, rows;
> =20
> @@ -1526,31 +1536,33 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE =
ImageHandle,
> =20
>          gop =3D efi_get_gop(&gop_handle);
> =20
> -        /* Get the file system interface. */
> -        dir_handle =3D get_parent_handle(loaded_image, &file_name);
> -
>          /* Read and parse the config file. */
>          if ( read_section(loaded_image, L"config", &cfg, NULL) )
>              PrintStr(L"Using builtin config file\r\n");
> -        else if ( !cfg_file_name && file_name )
> +        else
>          {
> -            CHAR16 *tail;
> +            ensure_dir_handle(loaded_image, &dir_handle, &file_name);
> =20
> -            while ( (tail =3D point_tail(file_name)) !=3D NULL )
> +            if ( !cfg_file_name )
>              {
> -                wstrcpy(tail, L".cfg");
> -                if ( read_file(dir_handle, file_name, &cfg, NULL) )
> -                    break;
> -                *tail =3D 0;
> +                CHAR16 *tail;
> +
> +                while ( (tail =3D point_tail(file_name)) !=3D NULL )
> +                {
> +                    wstrcpy(tail, L".cfg");
> +                    if ( read_file(dir_handle, file_name, &cfg, NULL) )
> +                        break;
> +                    *tail =3D 0;
> +                }
> +                if ( !tail )
> +                    blexit(L"No configuration file found.");
> +                PrintStr(L"Using configuration file '");
> +                PrintStr(file_name);
> +                PrintStr(L"'\r\n");
>              }
> -            if ( !tail )
> -                blexit(L"No configuration file found.");
> -            PrintStr(L"Using configuration file '");
> -            PrintStr(file_name);
> -            PrintStr(L"'\r\n");
> +            else if ( !read_file(dir_handle, cfg_file_name, &cfg, NULL) )
> +                blexit(L"Configuration file not found.");
>          }
> -        else if ( !read_file(dir_handle, cfg_file_name, &cfg, NULL) )
> -            blexit(L"Configuration file not found.");
>          pre_parse(&cfg);
> =20
>          if ( section.w )
> @@ -1567,6 +1579,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE Im=
ageHandle,
>              if ( !name.s )
>                  break;
>              free_cfg();
> +            ensure_dir_handle(loaded_image, &dir_handle, &file_name);
>              if ( !read_file(dir_handle, s2w(&name), &cfg, NULL) )
>              {
>                  PrintStr(L"Chained configuration file '");
> @@ -1578,13 +1591,14 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE =
ImageHandle,
>              efi_bs->FreePool(name.w);
>          }
> =20
> -        efi_arch_cfg_file_early(loaded_image, dir_handle, section.s);
> +        efi_arch_cfg_file_early(loaded_image, &dir_handle, section.s);
> =20
>          option_str =3D name.s ? split_string(name.s) : NULL;
> =20
>          if ( !read_section(loaded_image, L"kernel", &kernel, option_str)=
 &&
>               name.s )
>          {
> +            ensure_dir_handle(loaded_image, &dir_handle, &file_name);
>              read_file(dir_handle, s2w(&name), &kernel, option_str);
>              efi_bs->FreePool(name.w);
>          }
> @@ -1599,6 +1613,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE Im=
ageHandle,
>              name.s =3D get_value(&cfg, section.s, "ramdisk");
>              if ( name.s )
>              {
> +                ensure_dir_handle(loaded_image, &dir_handle, &file_name);
>                  read_file(dir_handle, s2w(&name), &ramdisk, NULL);
>                  efi_bs->FreePool(name.w);
>              }
> @@ -1609,6 +1624,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE Im=
ageHandle,
>              name.s =3D get_value(&cfg, section.s, "xsm");
>              if ( name.s )
>              {
> +                ensure_dir_handle(loaded_image, &dir_handle, &file_name);
>                  read_file(dir_handle, s2w(&name), &xsm, NULL);
>                  efi_bs->FreePool(name.w);
>              }
> @@ -1634,7 +1650,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE Im=
ageHandle,
>              }
>          }
> =20
> -        efi_arch_cfg_file_late(loaded_image, dir_handle, section.s);
> +        efi_arch_cfg_file_late(loaded_image, &dir_handle, section.s);
> =20
>          free_cfg();
> =20
> --=20
> 2.53.0
>=20

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--GtheMo/zlbyUu650
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmoYD9MACgkQ24/THMrX
1yxJVwgAgq+6xbZcL/5OLfwO5x9PaOw0Wg6esPTSN+lHjCN+3JC9bELL9oTb4DMk
UqwO4gLk5IQ3I1FixrFZpyJpaNgvE9+6mT3Sd2AGajpd/Y24eWSyS6XYIMw+PWQ4
tbaPp9BOerdxZIhNZQ/TVXilPk9UobD2LRYtvJtha3Z5kW15z6r50Uud+TeWldxk
wA9Q0Gqu0SNTvzMbDkbS//yuHq+rFLQOo7MWGRUy4C6LUmu127MBGCsvpHbltUwI
tCP1WHPD5cVJHnDQE8ubZl0+UJdvin7tpX1tLpgWhZuWRoFoQa1UDpO48XS1w0BF
XiWMASTZOv/E05mB1tqwEVmdrbrNgw==
=UNcj
-----END PGP SIGNATURE-----

--GtheMo/zlbyUu650--


From xen-devel-bounces@lists.xenproject.org Thu May 28 10:17:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 10:17:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321069.1588083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSXnx-00049b-5m; Thu, 28 May 2026 10:17:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321069.1588083; Thu, 28 May 2026 10:17:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSXnx-00049T-2A; Thu, 28 May 2026 10:17:33 +0000
Received: by outflank-mailman (input) for mailman id 1321069;
 Thu, 28 May 2026 10:17:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wSXnw-000473-2O
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 10:17:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSXns-00EIFz-4D
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 12:17:28 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a181638-e002-0a2a0a5209dd-0a2a4507831c-0
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 12:17:28 +0200
Received: from [52.101.43.42]
 (helo=SJ2PR03CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a181636-229c-0a2a45070019-34652b2aef70-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 12:17:27 +0200
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by SJ0PR03MB5534.namprd03.prod.outlook.com (2603:10b6:a03:279::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 28 May
 2026 10:17:23 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%3]) with mapi id 15.21.0071.011; Thu, 28 May 2026
 10:17:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XzCfx/z+Tuwkkj9/2/hFgdJYl5kL8dDLXc3uu+zLZ//Mm7eeviLNvd+mfD/NVA0iWW1GmhXEF12oKkrTPDvqca7h398as0vAT/iqNxt8if1pH2hwCGo1E6O4q3PGbvlPa6oMT9JgeQNZDW6Q0ZrQvZhxxY3DvF5IpBsA9NTVo0bdV6lWA0qbnlGDlLRoP+aujgw3CGQDaVAuEHLkmtHlruRRls7+9gKUR+rN0UkyK2IXb6NQZwr5Ic6O96bm2u0UmRfcqrTwJxpKrJhv7mK4vRsj6lzzlBVRwfS+ocKr1ibN+qRJkue7WRxpEPe94X5WH9yKOXgCK7Wucp8nv6J2rw==
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=PaugPCkhtvQSrPz39U5tPBHy2LHQeZkHEGyHiEnEFi4=;
 b=Ir5uH/ZXZS/XKe8N01Dzfu1YxybgXGMp4pmjDUbOLXp9JWhH7BuCMFRkxxsPNy0AFozSFPuzm8s7E0t3s1f1hlgPekbhOJOe0imeEpZh+jNQkMbyOUmQ6NNhabNE1XysorCz1/mbupDA2Tr75PZcw/txHyYEoOuQInYwSWPsMV/+OE25w0btL6NTOFUF6P3C1VnY5maC9Zd3HUvmR9ScKccD0Qf2J7oVOy8y/7d4b8MvnMRRM2RSeV5vxcnIiRPNnf2RjbZfZ1kOzZgDP3m4dXapOvEyXjXdiNUIJA819YMLsUw72d7O9s+Gc6FSf5e7mnjsTmkPLRjYmVOauiTNpg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PaugPCkhtvQSrPz39U5tPBHy2LHQeZkHEGyHiEnEFi4=;
 b=Dh+D7ctL99UzbExQYNISUjTZapnr9eNCPLRZ9+J8byJXSK0Y7SoCCpyLk+EHzpD6c7UXeej2QJbjMQa1SFruxp/HRyByptDwvlYWlRHWPZxyY+L44zi/aHf7AsKMyCIkhDhWFm1Nxn4kw0IpTHR6SIPmMS5Zj8KTsA8kZE8Cnrs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <902cd39c-badb-4194-8cd9-dc2e42d33eb2@citrix.com>
Date: Thu, 28 May 2026 11:17:20 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, roger.pau@citrix.com,
 dfaggioli@suse.com, gwd@xenproject.org, jbeulich@suse.com
Subject: Re: [PATCH v2] xen/sched: remove stale file path comments in
 common/sched directory
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Furkan Caliskan <frn1furkan10@gmail.com>, xen-devel@lists.xenproject.org
References: <20260525102539.27050-1-frn1furkan10@gmail.com>
 <20260526075236.14265-1-frn1furkan10@gmail.com>
 <f21b3696-187e-4526-9c34-bb56e9000898@suse.com>
 <61fbcf6a-4533-4a1d-ac2a-0c8b2427d27d@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <61fbcf6a-4533-4a1d-ac2a-0c8b2427d27d@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0571.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:276::10) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|SJ0PR03MB5534:EE_
X-MS-Office365-Filtering-Correlation-Id: a07d5230-0e4a-4337-b692-08debca24f59
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|4143699003|22082099003|18002099003|11063799006|56012099006;
X-Microsoft-Antispam-Message-Info:
	krEh5tgg+2mmr5/rzlN+ys2cWhBoS2H9Ijf0H2rR0k/tse60XzjR21pkGSpQeQlg7zFMwETCNeYrlsnxHDWW+Jq46XK11t5QgmOz/klp9artiIYw0kUOpmAvX7HSSdi+9IJooUO9KPHh4VP6bioTldEbx1Ka0FfOHENYB6vUdxpPwBlYeHXRTC3KrEigThUT7bwSrVRjvKxynBZMa53Hai3d9qCh7+dOwB8G+YP0JgVc2vjTlhMZ5Tl0bJOqPFK4ylEYEMIrD5lNJ8F8YgeFW11U3m5FN/+lE/EC5svV+H9DCgwzMoORfzMHdOdlAezI4wUKvVoLO3Kp/yrFQRgZcpp2PQFsYyx10XScgnY8GN8htFmu4FxraXpEwtUQoiCtq50rbcHiW0nPLdNyP65PnaXZoiqh79vO0A7ovvLgQ+GpPcdn+5Cc6TObIfJKYG7gVRtsxmUhxppY1d6WpCRLUNrxucgPVr4QLmyLo6uLFPCYNDCiKseKwZYEbfUqg1ZWzTKKfXxAxlKg8Vac9IPfxGl2gIa6/2pCjtml2NQ0yS/lwdWFkExA4uQjHDgPdca3RX7rFVhFiVPdd3NA2xiNmFTVjGaAcIIJtR67imlVHtN0HCtJo8MIbIB2Gxj5f13Q3hTpJ51yGXf+qIPpFkm9Fl0OQF/rYoZyx+NP0xREqGT5GRhEeT3jDWqtYvBTgEL7
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(4143699003)(22082099003)(18002099003)(11063799006)(56012099006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S0FybnFrc1Yra3p3Vzk3bEcrK0JOZmIrM3k5UHNoNTNBcDZFNEl6U1h5L1Q3?=
 =?utf-8?B?WFR0ZEdKSUlvM0ErazdFL21ZSUVHekdPZkN2c2dWQUpvN0MwS0tySGxmMXhP?=
 =?utf-8?B?clpPditOQkFxd1NEZ01sNXZXYjZrNUxUU1A1WFd6dTBLL2twVFliL0lzYWM2?=
 =?utf-8?B?ZXZLZGw1OTlMOTA5cEM1NXNPMFB5UmkvKzU2QlhBazVpRktXSWJOZ1prejRQ?=
 =?utf-8?B?dC9uRXFOMjFNRThmRnNCTGQ2SkovOVRWL0xhSjgwN1JqNkF2K0ZxajZEM2J2?=
 =?utf-8?B?SmdhRmp3Rm5GT1gxVDVCWXdSVW1tcmlGekFzZXh1YUNzVjllaURVUkowRU5n?=
 =?utf-8?B?a2pJS0JmVVh3UkNGODZ4QitwTjFGQlR0TGZXSmMzejhMa094ZE1vWVJ4NWJR?=
 =?utf-8?B?WElJY0pLSkExbFQwZEQralNxWHNPeFdPMi9QbDB0SDVSNjk4Uk1sUUpXd2VO?=
 =?utf-8?B?V0JYaVpyVGQ4WDhBR1R2YkV4YWxTM0EyTGNVaEEwMVhaS3hudjBvdTJEdjVE?=
 =?utf-8?B?VzhFSkxNQXVvUjBpVzFZZVJyYXpOUy9HV2RYa1NEUDRGOC9PcVNaTGF5SkUz?=
 =?utf-8?B?OENyVU56ZEVnUGFIcjIyQTF1T1J3UVFBcStMOXp5aTV3b1R1V1YyY1A3b3kx?=
 =?utf-8?B?YWIrYXYvTlpiaUJPQXE4ZmI1TUpzSHVDZlVzS0hhNVJpY2xodUJYVzNkSUFa?=
 =?utf-8?B?a2xLa2NkQVEwMCtlQ205a3VHcjNaZ0x4cTQyRjNKYmk3ekZPTnp0NFo1citJ?=
 =?utf-8?B?bTR2WXV4QzNXWnpPMDliZHRodHNwMlpPNmtLTXNlb0JZbjhnNkJuYVpFUGJ2?=
 =?utf-8?B?cTdISE1xdHdQZzkvQ1U3cXdHYmVncGw0YTh0TUtTdHFubC9qcHFnNDZ6Ukps?=
 =?utf-8?B?S0dFYXg0NlZERS9SNGNyOWloZjgxM2VuRGpMVEhqM3VMdlMzZEVhZUFsRktO?=
 =?utf-8?B?TmxWOXU4OUhGOUVBUHJhUGVkY25Iemp1bTFIak5sL3N0ZlhnQUY5dkhUbklJ?=
 =?utf-8?B?TXJjMnN3TFFsUEh6a2xFUjhMZWFEdzhUUEM2clZzcWx3N0FxendONjI2aDk0?=
 =?utf-8?B?dm5naXhKSjRZSlMzNyt2djZiMlBqNFZUQnBQMnJ2OU8zSkQrSVh4b01SaHhO?=
 =?utf-8?B?OGFaLytZL3paTWFGb05ZWjBWaEJYT3pqU3RFRit3K2FHdlpjb1EyOFMvWm5h?=
 =?utf-8?B?empxSnNablRrT3ZKcEJ4ak9MSTQzUDFKdmlDNG1lRXRSbVIreDNUVFZJdTZs?=
 =?utf-8?B?LzZVUmY2ZFRBQm5TakRHd3ZGL3lJNGFnZUYxY280Nkp1dEYrZGZvcTd6VlVw?=
 =?utf-8?B?WVpBV2tNUis2R3dJN2hCVWFLR0tFTGU5a3dnU0RlM3VNajA2ZTQzNW1aTDlq?=
 =?utf-8?B?UUxlc0JvN1pzM1RqTWh4UVVUQlR5SXBmOWJTQmNqaU5idUxOSy9KSmQvd3RH?=
 =?utf-8?B?bEJ6NEdobmNYcFFIQjBVWjQwYWNZTzFDQWR0OFltK2h1QUUxK3VyeDBWU3Vl?=
 =?utf-8?B?ei90U20xSVEyU0w3ZG0vS2FEOVEvbEVVOHdsRHZiN3czYlgxY0RRNms5M0tM?=
 =?utf-8?B?Y1RpVmJiMWVhNHNVNW9Scy8rTCtwcDFNKzJwa2tONHovampLd3cxaTFrb0hk?=
 =?utf-8?B?Zkt4Y3FzRDFJRmt4b3R1SGJWSjFGaklmZmkvRnJWQmtqeUw1Z0cwRXNXWTU3?=
 =?utf-8?B?OEduTFdvb2FiU0hBcUk4WVhvOVRhMVFJVkpob2E2UTVndjRSajFzd2l6ZTJQ?=
 =?utf-8?B?K3Z0ODUwVFYzTXhwZ2ZiemF1YkxUenZ1a25LYWtwL0pyQkxLeTJtMjRTMWR3?=
 =?utf-8?B?SHRWbS9mK0tUNmkwZXFMT3oxTzI0U1QzRzRmMEdOclp3WEdyV1BrUVUxTlZt?=
 =?utf-8?B?ZkpTazlVT0NBSmxNalVHVURxTkpVMDdxYnlTSGhmdmhYNVN6aC9zNWJsTUZD?=
 =?utf-8?B?R3VJU1YwQUduV2pNSDZRZ2FUMkdHTW9KbWk5UVlQV0FHZ1p5SDlmaHk0ZEJw?=
 =?utf-8?B?K3VjU2hvb3BVQk0wdTYzREZiRjFMdGZ3MUVWNWptR2hrdTRKNWtHSEVJcGJQ?=
 =?utf-8?B?SUNlQm5RSCtpSFRsT0FVTEdveE95TXQ4TldSMmtrOG1USjk5Q2c0eFp6anVN?=
 =?utf-8?B?NjZQNURVQ2dLcjVzZzZEQlpkckIwOWpKcGliaE9XcFNtSlZxelhYTFB4T0kz?=
 =?utf-8?B?a2xvYmpMNjh4UE53V1NpQ05IajlzSXVaUXE3dnFpSGhBU1RyTk5BODFYaVlH?=
 =?utf-8?B?a0ZKakxRUnlUcyszQy9VWDJNcml2WU93OUtOYllwY2ZMNXZWaFpkTVYrdFFH?=
 =?utf-8?B?Skk4WUYrK2FRS1F2VkVZWGhlM1VBZndGT1pBK0hYdklvdW1uakhkWS9oYnht?=
 =?utf-8?Q?Xlv9IMSxv6q8YEiA=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a07d5230-0e4a-4337-b692-08debca24f59
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 10:17:23.6821
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: VWD3Vvk4sFtgLhhW2P4QJpfNqODYXLzUqUi/gsR90f2EG0jRkOEQTGTpV2GCKkw9YHapHo4omurJ6PM2xqw6fjX7u70VtlsWA2nZmpcoMus=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5534
X-purgate-ID: tlsNG-ef75cf/1779963448-22D77C48-5019BCD0/0/0
X-purgate-type: clean
X-purgate-size: 1119

On 27/05/2026 8:51 pm, Stewart Hildebrand wrote:
> On 5/26/26 06:09, Jürgen Groß wrote:
>> On 26.05.26 09:52, Furkan Caliskan wrote:
>>> Commit 6cb4b01c03 ("xen/sched: move schedulers and cpupool coding to
>>> dedicated directory") moved the scheduler files from xen/common/ to
>>> xen/common/sched and renamed some of them, but did not update the
>>> in-file path comments at the top of each file.
>>>
>>> Remove the comments rather than updating them, as they are redundant
>>> information already conveyed by the filename itself.
>>>
>>> Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
>>> Suggested-by: Juergen Gross <jgross@suse.com>
>>> Signed-off-by: Furkan Caliskan <frn1furkan10@gmail.com>
>> Reviewed-by: Juergen Gross <jgross@suse.com>
> For ARINC 653:
> Acked-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>
> FYI, we are in the release cycle for 4.22, and I'm not sure this is justified to
> be included in this release. IMO it would be OK to wait for the next cycle.

Bugfixes are still being accepted, and wrong comments are a bug.  I've
taken the patch.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu May 28 10:29:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 10:29:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321083.1588092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSXzD-0005wq-8q; Thu, 28 May 2026 10:29:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321083.1588092; Thu, 28 May 2026 10:29:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSXzD-0005wi-4y; Thu, 28 May 2026 10:29:11 +0000
Received: by outflank-mailman (input) for mailman id 1321083;
 Thu, 28 May 2026 10:29:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wSXzC-0005wc-7V
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 10:29:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSXzB-000ALS-Gu
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 12:29:09 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a1818f0-e002-0a2a0a5209dd-0a2a450bcd1a-24
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 12:29:08 +0200
Received: from [40.107.162.57]
 (helo=PA4PR04CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a1818f3-212f-0a2a450b0019-286ba239d20c-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 12:29:08 +0200
Received: from CWLP265CA0490.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:18a::14)
 by DB9PR08MB11363.eurprd08.prod.outlook.com (2603:10a6:10:60f::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.14; Thu, 28 May
 2026 10:29:05 +0000
Received: from AM4PEPF00027A60.eurprd04.prod.outlook.com
 (2603:10a6:400:18a:cafe::d3) by CWLP265CA0490.outlook.office365.com
 (2603:10a6:400:18a::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.13 via Frontend Transport; Thu, 28
 May 2026 10:29:05 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00027A60.mail.protection.outlook.com (10.167.16.68) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Thu, 28 May 2026 10:29:05 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AM9PR08MB6242.eurprd08.prod.outlook.com (2603:10a6:20b:283::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Thu, 28 May
 2026 10:28:00 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.21.0071.011; Thu, 28 May 2026
 10:28:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=f3WXVKrwNM7p2lwJof5uXEd9QmAER9YWPWIHrnWKmLzi8LWP0EWm3cVbT3gthiQWYc/qAQiFmiRGgTi99qoXr5Gn5Irid3rM3VNNA+BFktO6BFoR+wCWc9zKY0KSXdLOiroz41vXnJDqVnajCJuDMRm3L0GMAhhaaijoKZiil3+HBErRLty8oR4Pv7jVCr/D9cxsXdYLnfjvnCCW/WqmRLk/BMLkTRpz0I5oZ9CsFdKXvYNbxTzsMUWfDYwc21uG91nAw03YCccH/DWebrELbifcRANql+M6GUbYk/ae02g0YLk28E9qvDwX0ZLqtMn8hbGaWnpT17RIqjkPJvNmOQ==
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=fLJHdgtBPP5p5Su7M3tbMnf/2rHNHjwaKDLqNNThezA=;
 b=gEfXSOFMwHttACYU06Oz6g0B8HvETTRfmagsxwVLCVwP5SLyyA3OzlEokKuCyU+BaDREmyNrdIwn2Mnx9hwzUjc7g2QugX8fq3wFQWs6tB814uktDnqQ9xcrrrCfo6DKVwwxdBvIM1mthTRaWL6PoMaw3YqAvXxOh6hAnjnPNSyvma6YpoUYWScdchXVqcDA6EtLjDB1GdqCqCi9njNnpj29MgduXWH+/BC4XOp/t85cwYEW2PTAZVlTajT06mwCpT5j6KW5D44BdFH5HzIFUObPD6lMfx4RLzGVavbGUKBwYxc4bILF5l0Gq/YZW07Rt/cuBgbgUoKc4+HYI+E4Jg==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fLJHdgtBPP5p5Su7M3tbMnf/2rHNHjwaKDLqNNThezA=;
 b=WI9AhdUVaR/PGGjZsIMvfLeemEIrF5FkbfRLj0eS41Hp1iBqmvH2ShCwfbTRNvx4i0tKfgCln+x29d2nvkUbAM6mRc1Uy02Gd0PWMW/PMbbm9hAtDQcx8AtVr+qmY7Sq7lNJMDzt64fp6/oC2PD2Dw0afTiCoCCq61x4OtyPD2k=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZghzT3y69586wzbTvWIy1syUGoqKWqNYBPjBFig58ZAZWTEBk8GWVBo42FnJhCoV1Xc7BZ6st1L8xZUAHsLluAD7KRoOHDPoZUuUgk6JMW9SAjY/kl+0JeLkkgX/9DMROD9NOInKOilVmmxR4gafDmZaZm9Yq3NP9pgO7Os/LbefLTAem9pWXp5f3XM0NBLIyaOuDyQcPIxxNf4NcktIJuH5QCH2cLLqrlAHa1eCSSgsaMh086acTTMYbsDIncCTYKUz7ApLOeuwCwXZ1mGdDjDfukeewHIjss4zDOf2tfmhC9SoLsznbcSHzBlw14YD3Kh7u1TmOW9uCtp2z3U5GQ==
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=fLJHdgtBPP5p5Su7M3tbMnf/2rHNHjwaKDLqNNThezA=;
 b=V3BK55hmpFMrgQBpSNbPa2bT/He9hQVJvqfQ66OkYtbqjSo3bFPUqFDM4TyW7hCjSPpZnNieagPoK+SeifjXCXEAJg3Hnf0zZOsmJq2AjJAt0kL2wb6kgpjlq3qzJX2aqIVT+LglOi+0QloTr/qVdn+BsaOckb/diMT8Nxd2o4Klmi1umgPIOzj4iCGVcBiQx2UCWx07WdUt6xeZQDEIQOc+PYf2SNROaWsvzUkd22OtoK8sYAie4zDQORC9Hw7kRR6sU3lmCYMRzh4dA8Hcyo+rPi45k/74nlRlju0gt30TOlsLoHiBjqjFGeE+j8fdXnV3GCa6tZjYGnCAF33ZYQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fLJHdgtBPP5p5Su7M3tbMnf/2rHNHjwaKDLqNNThezA=;
 b=WI9AhdUVaR/PGGjZsIMvfLeemEIrF5FkbfRLj0eS41Hp1iBqmvH2ShCwfbTRNvx4i0tKfgCln+x29d2nvkUbAM6mRc1Uy02Gd0PWMW/PMbbm9hAtDQcx8AtVr+qmY7Sq7lNJMDzt64fp6/oC2PD2Dw0afTiCoCCq61x4OtyPD2k=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v10 02/13] xen/arm: gic-v2: Implement GIC suspend/resume
 functions
Thread-Topic: [PATCH v10 02/13] xen/arm: gic-v2: Implement GIC suspend/resume
 functions
Thread-Index: AQHc6UoE70SYZf5YZEqpY7ivb9NizbYjRpeA
Date: Thu, 28 May 2026 10:27:59 +0000
Message-ID: <E7305E13-6327-4463-BC80-D87154E13108@arm.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
 <ae553923955259dae7d680d427fca36824657ecf.1779385072.git.mykola_kvach@epam.com>
In-Reply-To:
 <ae553923955259dae7d680d427fca36824657ecf.1779385072.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.600.51.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AM9PR08MB6242:EE_|AM4PEPF00027A60:EE_|DB9PR08MB11363:EE_
X-MS-Office365-Filtering-Correlation-Id: 776e3aea-3a6d-46c6-2b2c-08debca3f1b1
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|56012099006|11063799006|4143699003|22082099003|18002099003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 JKyfZWfpdrlTzB3XyDELHVVV7Z1MIWPLV8HdVv2uo7/bsqBqFvkQs03InyWvAGXWcGGs7CfjLHFUw2cLYP1nrFqLybWsUNefnFuXog4nSetfk5pzqdM123id71GKddT6EhpKGliMMejw+YbF3C7UZa/cocw3CvTDhH8dz39jBODe4eHqxL24BxtDaSAiD1/Es/ZHstaJhfcjZ/vhC0AQmdgBY358EhYKKkQ+BPkWH+LtSHLNuPA0rzFWwmnDecnGfteSO+KJjT2Ha03MEdXxrN8grvzRHDVIqPqbEZXvtawrDZW3YZ1MKiciT8MecyY+zQR7TCDiL0a0F8AyCr9D4aAZy9+e0BMYnPqrNZ3H6dA7BN3t6mlCHVEuRvnFytpasv7nF7I5U1nUvZSNGjV/FX4Dfxn9Tp2dvS4X7gGZN3tOVD2fBJPMRj5vVAG3pGVoA6mo6TCFNCtOHZUn1/uJohJc4kXSs4drfJ/0+Yh8+O19qBfTZ/ChdNSfuLzDLAmR7DA1KC6DZgum8IZcC5Q7R/ZzwnClxjQoIYHKbRfa0AfXL01/lfUU/Jdur9FdP3h7uBW//r18Tl6JzTAOtfnMYHKDaVtR7FmshYZVA6AJYikJAHqpGde4TQOOSde/MAPpuV2TTdQ6tD2PV7ZbSvoNlgE/ktLdoAgyM6e+LdmG7TiD62P/9XqceaBnT1znnviMLwCYUyOGl8a4IsDCkhaLM5/sppCMScN/qJPoFrJ51NpdXG0kB0hk1Gn0AK64nYAV
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(56012099006)(11063799006)(4143699003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <E257EAF61845D44CB3D8AFC72A42358A@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 ekkGYdzRDlZoeopH4VPbH7CAHXumf7xlg+dkH2D+Lgw6HewSeuCCTouPWyTX6uRWqx3NTGRLWK0tFN4GFlLnIWmsbJ5OdcvAnBzT1kuQsTCxtEqLAxv7JA1OK4efkeZRx3cfDYw8Y8Ha9vvHAdCT7DCwE6bfPriAEf3DDpYru+ueDLqIHOm/CK7UvlUtIKiFZyEIWOqLSgkJ3skBFpAa3t+dDRLhrmwZLWhp/AgKmOrQOeHBhPAnaUOr+wZLiYGqkBkuFAcA53wma3YsrgmNXQWYV+pM+2ktvcZyRO9BmG9Vq2CpVgxlEO18H/20gyII4wxgT9G2A19O7kkAsSGevA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6242
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00027A60.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	9161ccf9-a370-4748-caf7-08debca3caad
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|82310400026|14060799003|1800799024|35042699022|18002099003|22082099003|56012099006|11063799006|4143699003;
X-Microsoft-Antispam-Message-Info:
	n98H+Dt1IJuZ5sRA4IaT1obbcqdEyk8ni72Fw+lo3+73+LEQf66DxbjaTXpfFzzCeACunkIXWHmptAgJkGvAgEZSXYyUjSpGzfJJKAoBJhAZYCP4W0qU1Hqn25Eyw67wVe06sto7fhk4INS3kK00tbeAeLKEt6rznW7V46vasLTuKbYHA62tcePCBfmEe3rhWHT2mebSif2nU++wH9UVCTtyKVXPwpVtlEgSIxKwe/aq7prjvk74Fdjm3/TWsSxcZuR9XAZomGE1rcAxO/HxQ3m6/QLs7Q9ibpfFT80GQBZUkE5E4l81+5UDQYmUGZNITAIZfxpX/Q7Pxqyx5fwPhBld4rOsZJ3dZOe0RGgP8hY+Y8Dn042kmG9RtAdMdaixKzvnZ9RPR3sF8+rWrViJwWQKcaM6gtjhYgdODvc0DvMllR26IxpDp5S0l9SUUouyTWEnO8vq9CdaawAzq6ukHXviLEjHAauLnPAHOO7s02H17q4hEfKAUaTVw2tsB6YOiN+PXreIBC3xuq1MqZ7aVXB6kWlgXhXEL4MGieVXjIYPRMPAKBcrlI+FPMeWrMDrTQesGBt5sSUfIgqlZ5fEG8k1mSBKhsN6ZFWD18LbGrGR6BHEf4rV4duy8XBhBXqyJ9cB/muJddPyp3he6AriBhUfLyDYVVbC9IFfWEOMlfPtQgj8E5mOGZJKtAmUY5NWmApMNWdBhIgpGro75u8jmr3QpZfNtAodEXGAIIL871Y=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(82310400026)(14060799003)(1800799024)(35042699022)(18002099003)(22082099003)(56012099006)(11063799006)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	AN4lQsS1EjrH37Xc4hRCainQNU7nyJxWxMZ0V9JPgPxtiPpYxgvZZVXViJjdLLBn6DYm6UurAO5SlniFrR3br5KVq85uAQJY1wvizzIJ7lrDnL08Kdjym0UjapoybcIIBgSCXP8AZfhFJ4LkoLfd6ryrVV8nhquy31oZHqTh+eFGDsvOvChb5s20aN1iXXu4VirKhUu7outqJeCvaFCgp5QdldGqYVXBAcBd8LD3DNh2jgY1slQPHc6P9WZq3bCQ48uGIkw9t8ls9f3+BzyuCnSet/bL2bSXOxiXnuQ78zZbqdeu+caQ3PNtEHTs3bGwZjFwAaUZgjY4OvgUfMQ4oppSIV5NN5U9wGkruREPmMZ+JIBFCDSoRo9yWKcaom80LLfiS2EjOmv3ngrgwCFK+YArJDrddcCClKbDrMXSrmAQlPtOt4bsuDODznhqguJ7
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 10:29:05.2901
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 776e3aea-3a6d-46c6-2b2c-08debca3f1b1
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00027A60.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB11363
X-purgate-ID: tlsNG-42698a/1779964148-2007BF3B-52DBB575/0/0
X-purgate-type: clean
X-purgate-size: 1750

Hi Mykola,

> On 21 May 2026, at 18:45, Mykola Kvach <xakep.amatop@gmail.com> wrote:
>=20
> From: Mirela Simonovic <mirela.simonovic@aggios.com>
>=20
> System suspend may lead to a state where GIC would be powered down.
> Therefore, Xen should save/restore the context of GIC on suspend/resume.
>=20
> Note that the context consists of states of registers which are
> controlled by the hypervisor. Other GIC registers which are accessible
> by guests are saved/restored on context switch.
>=20
> Transient physical SGI pending state (GICD_CPENDSGIRn/GICD_SPENDSGIRn)
> is intentionally excluded. CPU-interface active-priority state is also
> not restored across suspend/resume. Xen reaches the final suspend path
> at a quiescent point, so there is no active-priority execution context
> to replay after resume. Enforce this with a runtime check after
> disabling the CPU interface: if any implemented GICC_APRn word is still
> non-zero, restore GICC_CTLR and abort suspend with -EBUSY.
>=20
> This does not apply to distributor active state. With GICv2 EOImode=3D=3D=
1,
> EOIR only drops the interrupt priority; final deactivation is a separate
> step. For guest-routed interrupts, Xen can have already EOIed the physica=
l
> IRQ while deactivation is still pending on the vGIC/GICV path. Therefore
> GICD_ISACTIVER is preserved as architectural in-flight interrupt state.
>=20
> Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
> Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---

looks ok to me:

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Cheers,
Luca




From xen-devel-bounces@lists.xenproject.org Thu May 28 11:39:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 11:39:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321112.1588101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSZ57-0006v7-3k; Thu, 28 May 2026 11:39:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321112.1588101; Thu, 28 May 2026 11:39:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSZ57-0006v0-0h; Thu, 28 May 2026 11:39:21 +0000
Received: by outflank-mailman (input) for mailman id 1321112;
 Thu, 28 May 2026 11:39:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wSZ55-0006uu-QQ
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 11:39:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSZ55-00Eazr-7G
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 13:39:19 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 6a182966-e002-0a2a0a5209dd-0a2a4503a0e4-4
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 13:39:19 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 6a182966-672d-0a2a45030019-d1558031c01f-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 13:39:19 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-4903f7a90d1so56512925e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 04:39:19 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4908ecb5238sm15492585e9.24.2026.05.28.04.39.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 May 2026 04:39:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1779968358; x=1780573158; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=knVAHvyZLHgXTTJ1J4WSrgxLzh5jXut+OY2lmt1FkjE=;
        b=KQQTO9xTkj4aF9xFrtwsZbjQxvQIpqJcUNHynBHyes1bELRyahMle9P5KI/qODAr4f
         y50sh2Em07r5NjaggcFGwdu8HfIhwSUmzx91TPWsN5xiiIXIkVmnbwEEQCQlqnfduobz
         IEI6978VZ0Fsi1giUB42Lqn5We8VDV1He2GnM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1779968358; x=1780573158;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=knVAHvyZLHgXTTJ1J4WSrgxLzh5jXut+OY2lmt1FkjE=;
        b=ZA2B8ddRTXoMZsinPIr2LNARgrg1fGagnfwf6GqJIDV3nPoY4aigavj9veKmUyl6Mg
         sa9pxml+CevTko7UWA5IaWLGxS0yIPLMV/h8DSPhBkdJcZfuHfE92EmulyeYpr96q36j
         6p2TZLaXhihCw+PyXCAR2u+wq3XMWCUglUmb2JZ+osSMWfudDF8M9MwxADcqADD+IYmM
         ouxhwVySg5o3VSW2yjGbUn4DvIHCmlOud3lRNM/VhYGJ+fqMH52OMKxHEct3oAZZdVlU
         LOwedJx7F9j5vMngOpjyru00TLGCs+3Sln87DuC8udCaLWmBa33X6FT1WKWnBIQaMSy5
         +gsQ==
X-Gm-Message-State: AOJu0YzE6sP2/82e/LCipBe/vG8PzjfqYQE33xudTjO8Y988/JUC7eD3
	O2F3tlh2x3wWydoPsZB/OstJpYumfCnMRDAUYBK9uIsW6SyclX50kAfqhvOuY9aWIe1pixr1sF4
	u5nR9
X-Gm-Gg: Acq92OFg4B5t2uRADAmvhLxckVGzZX6OPXoJgMwyKrL2NeSfhz7AP9N9AGupTYNJelV
	6b/5VHRBe34Y+AjI+1wQLNGQZOSoE/+TSM3hWopMmv6wReqys2cVniCClkITXydkcA1J1IQlOUY
	gX6Y3qHGjN3MDdZUmqDOS4Sw8cgN9rHy1/ViPuFZ2eqmyN9dEShwy2nJXPp6HGztfp95JK6BLnY
	FB1lCiDIyJKJRcEPWfqPVPd1m4xVeMSPBtgz4jGBgyzElaU7SiA5E9AfnGKx0ZkQa0ycy9F7D+s
	rUkvXfQu2wAG5/DbZ8Vg7h66VMtGa8TNkMo5T9mkf/29pK8RQyrdaPgChOmbHVt/QtoF/BSRurJ
	pgxlZU9cF+CroTUJKHm2MHU9MWKsReIGlE/dGHQRjGNPFACqMop7wttjdz6xL1jF1aI4yfoVYiB
	8ibQwks3sDFx/nqyQ7rP9kMRMyKfTmsbTIbgoKjgXuWuI/vyq1wh8Zu1rwMhM46xop+StjKZJGs
	pxECjuTQSDE6+A=
X-Received: by 2002:a05:600c:3592:b0:490:44eb:c1d9 with SMTP id 5b1f17b1804b1-49044ebc292mr508199745e9.28.1779968358370;
        Thu, 28 May 2026 04:39:18 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Juergen Gross <jgross@suse.com>,
	Denis Mukhin <dmukhin@ford.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Pau Ruiz Safont <pau.safont@vates.tech>,
	Colin James <colin.barr@vates.tech>
Subject: [PATCH v2] Fix fallout from DOMID_ANY ABI breakage
Date: Thu, 28 May 2026 12:39:15 +0100
Message-Id: <20260528113915.2355130-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779968359-3794D938-5A11A0AE/10/73395122804
X-purgate-type: spam
X-purgate-size: 4397

Commit 23e2479ff9de ("xen/domain: introduce DOMID_ANY") broke at least:

 * xenstored domains
 * The Python bindings
 * The Ocaml bindings (i.e XAPI, and therefore XenServer/XCP-ng)

by causing Xen to reject 0 (the wildcard sentinel since the start of Xen) and
DOMID_INVALID (since 4.21) without adjusting the callers of xc_domain_create().

Under other circumstances I'd revert, but xenstored has gained a dependent use
of DOMID_ANY.

Fix up the remaining in-tree callers of xc_domain_create(), which covers
init-xenstore-domain and the python bindings.

The Ocaml C bindings, like libxc itself, expose this ABI detail to their
caller, but in this case the caller is still internal to the bindings as a
whole.  Adjust the default value in the internal transformation, adding
domid_any for legibility.

Leave a very clear message in CHANGELOG.md that all external callers need
altering.

Fixes: 23e2479ff9de ("xen/domain: introduce DOMID_ANY")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Juergen Gross <jgross@suse.com>
CC: Denis Mukhin <dmukhin@ford.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Pau Ruiz Safont <pau.safont@vates.tech>
CC: Colin James <colin.barr@vates.tech>

v2:
 * Include XEN_DOMCTL_createdomain in CHANGELOG message too
 * Fix the Ocaml stubs too.

There are now 0 Ocaml maintainers.  Pau and Colin reviewed my suggestion on
the Xapi Matrix channel.
---
 CHANGELOG.md                         | 4 ++++
 tools/helpers/init-xenstore-domain.c | 2 +-
 tools/ocaml/libs/xc/xenctrl.ml       | 4 +++-
 tools/python/xen/lowlevel/xc/xc.c    | 2 +-
 4 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 25f5a192ed48..1db3efc4864c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 ## [4.22.0 UNRELEASED](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=staging) - TBD
 
 ### Changed
+ - Users of XEN_DOMCTL_createdomain/xc_domain_create() must now pass DOMID_ANY
+   to obtain an automatically allocated domid.  The prior sentinel values (0
+   since the start of Xen, and DOMID_INVALID since Xen 4.21) now no longer
+   represent a wildcard input.
  - On x86:
    - Enable pf-fixup option by default for PVH dom0.
 
diff --git a/tools/helpers/init-xenstore-domain.c b/tools/helpers/init-xenstore-domain.c
index 01ca667d25d1..2be5831a578d 100644
--- a/tools/helpers/init-xenstore-domain.c
+++ b/tools/helpers/init-xenstore-domain.c
@@ -21,7 +21,7 @@
 
 #define LAPIC_BASE_ADDRESS  0xfee00000UL
 
-static uint32_t domid = ~0;
+static uint32_t domid = DOMID_ANY;
 static char *kernel;
 static char *ramdisk;
 static char *flask;
diff --git a/tools/ocaml/libs/xc/xenctrl.ml b/tools/ocaml/libs/xc/xenctrl.ml
index 97108b9d861a..147afa62c293 100644
--- a/tools/ocaml/libs/xc/xenctrl.ml
+++ b/tools/ocaml/libs/xc/xenctrl.ml
@@ -208,7 +208,9 @@ let with_intf f =
 external domain_create_stub: handle -> domid -> domctl_create_config -> domid
   = "stub_xc_domain_create"
 
-let domain_create handle ?(domid=0) config =
+let domid_any = 0x7ff5 (* DOMID_ANY from public/xen.h *)
+
+let domain_create handle ?(domid=domid_any) config =
   domain_create_stub handle domid config
 
 external domain_sethandle: handle -> domid -> string -> unit
diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
index 9feb12ae2b16..a94f01d40b58 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -118,7 +118,7 @@ static PyObject *pyxc_domain_create(XcObject *self,
                                     PyObject *args,
                                     PyObject *kwds)
 {
-    uint32_t dom = 0, target = 0, max_grant_version = 2;
+    uint32_t dom = DOMID_ANY, target = 0, max_grant_version = 2;
     int      ret;
     size_t   i;
     PyObject *pyhandle = NULL;

base-commit: e63ba93511b33c0d3bb8cc5870f946f41e1d2655
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 28 11:57:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 11:57:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321131.1588109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSZMZ-0001Qg-V3; Thu, 28 May 2026 11:57:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321131.1588109; Thu, 28 May 2026 11:57:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSZMZ-0001QZ-S6; Thu, 28 May 2026 11:57:23 +0000
Received: by outflank-mailman (input) for mailman id 1321131;
 Thu, 28 May 2026 11:56:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e6e7146fb000d780@swg.vates.tech>)
 id 1wSZLc-0001O3-0E
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 11:56:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSZLb-00Ee6P-7r
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 13:56:23 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e6e7146fb000d780@swg.vates.tech>)
 id 6a182d59-bab6-0a2a0a5309dd-0a2a4508c0d4-38
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 13:56:23 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e6e7146fb000d780@swg.vates.tech>)
 id 6a182d66-63b5-0a2a45080019-b9ff1c228f05-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 13:56:23 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e6e7146fb000d780.008 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Thu, 28 May 2026 11:56:18 +0000
Received: from [192.168.178.182] (unknown [51.148.166.212])
 (Authenticated sender: pau.safont)
 by mail2.vates.fr (Postfix) with ESMTPSA id 05B258657E;
 Thu, 28 May 2026 13:56:16 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=s2qt3kzZ2OImGll5tziYia1fWoioyR+7oRKNGzX+r6s=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=ge3R6SzTaxgJ0kOCx4JwC4kpqa6uO70vwlcabmMqoPYVJHnbZ8TOuHtaW6Z1PBlJnQC3pd/VR
 mfrpt+uWgWffbQvALqi2t2wO4mfZjzsodsZBKQ1aigjA6qA6y1g9kjCY643/D9LpROP/GyL1Xi9
 rViRJonOPEgc+m1OPMAxDKIq6IVfaw71ouCveOqQ8cQRqlmv4reHYpu2y5Jkp8838uXFtEQyNOV
 qbwQ+iKskXvGhYtLnBB00/KMNxv8luBgsb2tOaK3gBpspuXqqQcKQX3wF0NwFmv0i3YH9QtjNGZ
 X+holc9yGD7tQpX7U1Ztci7LSCwCkaRh5y2tA0sYu4Kw==
X-Zone-Loop: 344848b688ce5f7ef483476bc5ec6443a710f6a431d6
x-campaign-type: default
x-transaction-id: 04e08e82-0a8d-4a2f-9e6f-cdec36b1a607
x-swg-uid: 01-e5e78c17-2b30-4d3a-a302-65644abb583a
X-Mailer: Sweego
Message-ID:
 <1779969378.8631fc262581453bbf619ec5b2062170.19e6e7146fb000d780@vates.tech>
x-swg-bid: 1779969378.8631fc262581453bbf619ec5b2062170.19e6e7146fb000d780
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Thu, 28 May 2026 12:56:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] Fix fallout from DOMID_ANY ABI breakage
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Juergen Gross <jgross@suse.com>, Denis Mukhin <dmukhin@ford.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Colin James <colin.barr@vates.tech>
References: <20260528113915.2355130-1-andrew.cooper3@citrix.com>
Content-Language: en-GB
From: Pau Ruiz Safont <pau.safont@vates.tech>
In-Reply-To: <20260528113915.2355130-1-andrew.cooper3@citrix.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.164b.4bb40c100cd11592.19e6e7144c1.909c992ab4a050dc=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1779969377473
X-purgate-ID: tlsNG-c1860d/1779969383-BE577DB1-0E49C9D6/0/0
X-purgate-type: clean
X-purgate-size: 2264

---=Part.164b.4bb40c100cd11592.19e6e7144c1.909c992ab4a050dc=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 28/05/2026 12:39, Andrew Cooper wrote:
> ---
>   CHANGELOG=2Emd                         | 4 ++++
>   tools/helpers/init-xenstore-domain=2Ec | 2 +-
>   tools/ocaml/libs/xc/xenctrl=2Eml       | 4 +++-
>   tools/python/xen/lowlevel/xc/xc=2Ec    | 2 +-
>   4 files changed, 9 insertions(+), 3 deletions(-)
>=20
> diff --git a/CHANGELOG=2Emd b/CHANGELOG=2Emd
> index 25f5a192ed48=2E=2E1db3efc4864c 100644
> --- a/CHANGELOG=2Emd
> +++ b/CHANGELOG=2Emd
> @@ -7,6 +7,10 @@ The format is based on [Keep a Changelog](https://keepa=
changelog=2Ecom/en/1=2E0=2E0/)
>   ## [4=2E22=2E0 UNRELEASED](https://xenbits=2Exenproject=2Eorg/gitweb/?=
p=3Dxen=2Egit;a=3Dshortlog;h=3Dstaging) - TBD
>  =20
>   ### Changed
> + - Users of XEN_DOMCTL_createdomain/xc_domain_create() must now pass DO=
MID_ANY
> +   to obtain an automatically allocated domid=2E  The prior sentinel va=
lues (0
> +   since the start of Xen, and DOMID_INVALID since Xen 4=2E21) now no l=
onger
> +   represent a wildcard input=2E
>    - On x86:
>      - Enable pf-fixup option by default for PVH dom0=2E
>  =20
> diff --git a/tools/ocaml/libs/xc/xenctrl=2Eml b/tools/ocaml/libs/xc/xenc=
trl=2Eml
> index 97108b9d861a=2E=2E147afa62c293 100644
> --- a/tools/ocaml/libs/xc/xenctrl=2Eml
> +++ b/tools/ocaml/libs/xc/xenctrl=2Eml
> @@ -208,7 +208,9 @@ let with_intf f =3D
>   external domain_create_stub: handle -> domid -> domctl_create_config -=
> domid
>     =3D "stub_xc_domain_create"
>  =20
> -let domain_create handle ?(domid=3D0) config =3D
> +let domid_any =3D 0x7ff5 (* DOMID_ANY from public/xen=2Eh *)
> +
> +let domain_create handle ?(domid=3Ddomid_any) config =3D
>     domain_create_stub handle domid config
>  =20
>   external domain_sethandle: handle -> domid -> string -> unit
> base-commit: e63ba93511b33c0d3bb8cc5870f946f41e1d2655

Acked-by: Pau Ruiz Safont <pau=2Esafont@vates=2Etech>

Regards,
Pau



-- 
Pau Ruiz Safont | Vates XAPI Developer

XCP-ng & Xen Orchestra - Vates=
 solutions

web: https://vates=2Etech
---=Part.164b.4bb40c100cd11592.19e6e7144c1.909c992ab4a050dc=---


From xen-devel-bounces@lists.xenproject.org Thu May 28 12:21:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 12:21:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321152.1588120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSZjP-0005u1-St; Thu, 28 May 2026 12:20:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321152.1588120; Thu, 28 May 2026 12:20:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSZjP-0005tu-Ov; Thu, 28 May 2026 12:20:59 +0000
Received: by outflank-mailman (input) for mailman id 1321152;
 Thu, 28 May 2026 12:20:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wSZjO-0005to-Lp
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 12:20:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSZjO-005hJW-2Z
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 14:20:58 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a183321-e002-0a2a0a5209dd-0a2a4502cc76-36
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 14:20:58 +0200
Received: from [52.101.83.130]
 (helo=GVXPR05CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a183329-af86-0a2a45020019-34655382f844-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 14:20:57 +0200
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by AM9PR03MB7474.eurprd03.prod.outlook.com (2603:10a6:20b:26a::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Thu, 28 May
 2026 12:20:55 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.21.0071.010; Thu, 28 May 2026
 12:20:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=P85UiEpS7WutJa6Oo2Ezl/W2XuqIT+V57+lvXzspiqgg3L0ig7lE6tLduw/UxuyOZ7AZ5M2MSyC2qRTI0W2JNtWFqaSHDLTVnTK8ILdhbsRRXU96xfA1UBlLDu5PFwXjbUtC1Qpef9Z7544+VlHQRVdL38mgrP0DOn2hWLtJTO46+bQ6vtIDD/ixCxikoh4cAxrkDZvIiaDB2o9V6Izl2oP4q0wUH1X+iPxP7vONt+8koMKcFKu95WXOs2FS17WakBTQkQ6svK284JLHQx0x5n3dTG/dcOnoIHnPsz43ewIQEIFLh05S8XieEEGz+ZH60uZpMoSGXUBZpha2354fzw==
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=Yn6cD4B+vWQMSyZe+Xb1pwRiw24ZIq/CbRgerj+mVQc=;
 b=UHUtFd/5OtIbi9t2LcfFkWh4iZhiNZZcYe9n+9M1y6vsoupD8GPhqZ+rynvaJmLjlAZ/16AtsVuOrLBpW8gIuxRfMdVcQLnIGCTcNYpk88r3Qz1Cc+lMTvazR2Zs1ZnrOd+Jj88l8ArF5Md/bmQ/xtiNdMzS4RQAp5470nt6Uv+pP1N16zRxpbTCnANQSAi8TczG+HwvSTVedNmHgdVu5yUBuwGI4bbsKHWFAej6V9b3VPOU++J0TAhEGBFQwuC2QkgZvM5b4JiDFP80u1ccfViro0YklHRgmwf7G9o/89vytUi2Ay5eLuIj9tOFDk7mIneWJyAYAWMrY01gJqLsvQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Yn6cD4B+vWQMSyZe+Xb1pwRiw24ZIq/CbRgerj+mVQc=;
 b=ZcpkUDLxx3Z6covHVIjHWcrNQQgbMjwdqMKbFZVDXGW87LaTTXQa0vfHmqMPd9I9AzQG+55TPIy+2Y/wqcmd0CYmm4pnyXp3qIdCjGPYZXx2NP110rvQ/ZQr210FQa0JPBiZrVEJ7WoGwQ9598EAVnxDaVzDPdV8E0qC24cVJXLpDlgBW6llqj8YI97Pz5x91YuLvqdB6KiBW7m37j7bDddRZYg8bDs7rGKiZWUpjDUDcnVjxddGmPEr7Jfi5g435DddK1s0PErjSMIWzP15NQD3dyxFjxOTgXd8PeboKsF0oN/qo4G+VqZU3ACRTBRiWCWrD+t4qdGOkR3k4O+6ww==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Teddy Astie
	<teddy.astie@vates.tech>
Subject: Re: [PATCH] coverage: place GCOV-generated .text.* sections in Xen
 text
Thread-Topic: [PATCH] coverage: place GCOV-generated .text.* sections in Xen
 text
Thread-Index: AQHc7VOxa7dJ7uwiTkiCFpTyz2B8prYh27QAgAGCf4A=
Date: Thu, 28 May 2026 12:20:54 +0000
Message-ID: <adef7657-e7be-472c-a11d-13c4d92ff007@epam.com>
References:
 <cb8c1e0862a554f7a28347f549e9cfd0b0d6db2f.1779829545.git.dmytro_prokopchuk1@epam.com>
 <ahbu7qiPxp7c4Yp5@macbook.local>
In-Reply-To: <ahbu7qiPxp7c4Yp5@macbook.local>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|AM9PR03MB7474:EE_
x-ms-office365-filtering-correlation-id: 84d036a6-bf02-4b05-5043-08debcb390a8
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|7416014|42112799006|38070700021|4143699003|11063799006|3023799007|6133799003|56012099006|22082099003|18002099003;
x-microsoft-antispam-message-info:
 lkoNtGSOtya8fk5SINrTVsnN55G9oYF7FCigDjZJRRTHQl17mjEJFMsBnALdyFjs1N1xSSw8hsNPOvkb77/lEblZYhBX+cY4o4dhyLVjATVKQJIbkksJ+Pch3rZoMTmbzztG263Xrc41tKC4DY+jJDAChNlZAD+GALBR6sFwDv86f2ZcdU/Y7g8qk7TWo/6f4/chZ7tc9aFtI7VvnOr/rWEFoaZIcdlklxDXdDeD60Cgwd/GQJJzVBUpzi0MhsJmMgh8MYeM8tzElHo3a1/9e+bdcT4+Oh7+wRGVDwfE+ahTBBX3Wx8P13ACZYdpOzNwfLEqN761U9n9ufNi081UGIur/6c6lAZWnTs9TXLAF1Chg88+WSvf2vYLQlse3uTOVa0WyTP2c4aaU9IMunccokdUZZ7jzsCBnPAu6yl6Cpq/kxqx27zRIRHpNrfvGQ82vScifSswXwtras4s2WIx/WHx+HaFf8O6p7iWnM5vUr8U/U7NYM4D82Fepmmertd4W7ZlVw4m8Ao2jtQhx6AFiBRXfKH1otYTxkFlHp7mrvxtGEKmHiJS3UDy/V3EqZS31tXCnjiGt7+6h46RgmWlTBzQ7o21K6M5zT/jlGVn43abRBcmK59BqFz1hNsWFmws/pZyYkk9pqvSimotSawU50VuBDBemtNsSh/c+T2mRBqlEBMnwyjtZUaE5PTzbQQT8ll0ogBejj1Xj8oRajaulIekMG0lSYKmwwA4TYE7yNTweYhX5ihi2ZCvC9M4qpz2
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7416014)(42112799006)(38070700021)(4143699003)(11063799006)(3023799007)(6133799003)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?L2lDYnYzYW96ODF4QlpoMEpFNk9ZSW1PTlBhRThncVlnUU9EeXB5Y2hqQUJJ?=
 =?utf-8?B?Nm9NODU3ODFCR0ZlU0QzRGdta1diTDdzUGxsUGpJdmJLZjBSY25yYWdmdm04?=
 =?utf-8?B?OCtvNjM3VndhVWtGdk9nc3BFTnNVRVd1RGhqNnRZdmxLSlpTaUUrRW8vY2RM?=
 =?utf-8?B?QW5qNEt0SzZRRVREdU0vVFRFSmNBL3RtK3l6NlhQRDNVYkNGcGpMcWpUSnVS?=
 =?utf-8?B?TFczQmdxNGdQR1RDeGJuVHFYNkVLOG13K1VSWTlvUEg3U1BlS1ZIYmVaS0pQ?=
 =?utf-8?B?SXVSTGNkUkc5NjhES0wwU0FxZEhwSXVJYlV0VDhWamNuaHlBcEhJWGlremhS?=
 =?utf-8?B?NW1zVjN6QVVjdzVPeTJ3UTVWYXhORmlBODYzbEQyd2JjT3ZWcmk2cTJUWXlY?=
 =?utf-8?B?ZDl0eUQ0SzQzYkNnY2Q4Qm03OEhkYzZDeExiY25HZE5CSUwxTTNzVXI1eXBF?=
 =?utf-8?B?UDBnQWRHKzA1V0JhbFlkY1hGcS9iTWpmTzBKZm1yamJGMzZZK3FsZ2JER2Jn?=
 =?utf-8?B?N2tKM2VqVi9DbmM2dmZ2RWhuaUJacytTSHpVelkydWkyWG1keTRMWit5SEdy?=
 =?utf-8?B?RDdtUG01ZDNZRlluOTRxc0l3bi94VXQxMHlaSGdodnFSZXJHd2NPUXJEY08v?=
 =?utf-8?B?UUlOTmdPWnV6V0IyMmRudk1ya1VwRDk0NzBOU1daM3lzUFNLUlE2Si9ZZVUw?=
 =?utf-8?B?YTNLSUxKMkE4UzVTcWs4eDZFYVJLcFJ2UEM1ZVoxR1dyVkpFcko2T2FZM29S?=
 =?utf-8?B?YndON09xQUxiOHFBaVk3V3hMN01WV0FwM0o3Ui9UYitmc1BCYjNzMjk0ZkFJ?=
 =?utf-8?B?cFVGRkw5Z3JhOU01Tit0dURkcFF3RHZTSk5yRG1OWnNxdnBBS1BUcHU3UmxC?=
 =?utf-8?B?WWlXWmhyT0x5eU9IRmZ2YjNwOWc4aC9MMnRPQ3lvL3pDbXZPb3JHak84YTNI?=
 =?utf-8?B?WUZmekE2c1BEVU5mQ3ZodnRjbVgveDFEcjhYcDZBalJqZmJTdGljdG16c0w3?=
 =?utf-8?B?cTAxOTFoMXJkekFqZnZ6T2ZvVStZUko0UDdQaTZld3Axb3FqUXMxMksxQmEy?=
 =?utf-8?B?ekppSlh6TXlSQnV0Nk03dHVsRVJhbGJKS2M4RVMvRlZ1eHVpSlRjdk8vVUUz?=
 =?utf-8?B?VlR5a0pqYUcvVjdzdjdwVEZiL3Q1dDFMRVF0cUs4cG8yMWhVVEVKRmQyY1ln?=
 =?utf-8?B?WGd5cWM1RHZYTm1ydnJVY0Rjc2dCVUlucjVGaG15OURPZlR1UnJDVXlJaG5n?=
 =?utf-8?B?a0RXSVZrY3hYdGJTcUNJSng1US9KeVdLektvaDhhQXZkTkxIT0F5N0Z4b1lU?=
 =?utf-8?B?V1prNzFzd1JFSHV2RDlWenFFWC9WN1dtRlVqSlY2ZjlhSFNGamZtSkJyYlYx?=
 =?utf-8?B?em5wZWFaWVJ5REhYQ3JVWmFQOFFGM2lBTDNOaVZVbUdPRDhiaUZrN2hycDNM?=
 =?utf-8?B?NWloTDJneFpRbHk2SGpwdFdVY0ZUOXRHRzhBRHY1ZWNLT1JDTnY1UDFYcTFQ?=
 =?utf-8?B?U1I1b3R3TmxsaXNHeVRIVEhDOGV1czdtTVorWENXSEwwM2NZUEEwM0tqR0Rl?=
 =?utf-8?B?NmJBMldEaWFRK2c5ZFJpd3dNRFBpempTUE5Bc3VNKzY5T1VEenRKaTF4V2th?=
 =?utf-8?B?WW85TUJpM3o4bzZGc0pUdkFweENodTA4VjgwczR5b3hnZEdZM0JNazNaZTN2?=
 =?utf-8?B?d1h6S3dEZUFsNGVwck1CWDl4dDc0OGM0MlFGbC9aWEVPR240NHZGdTdwNzVP?=
 =?utf-8?B?ZGpVTFR6UkptcmE4a2NkczVHTVQvV3dxSmhQRjVscjRzczlKZ3dReHdDNHlz?=
 =?utf-8?B?b0NhTW9YOUx0ei9RVStZK0h2ZkRiaWFxMmVyWEtIQjdHck9FOUJnNEVhRFdY?=
 =?utf-8?B?Zm5EU01pVkZPbTJmdXY5ellJRlQ5TWI0L05RdFZRUjBRQWRwSkVNQlVTM29H?=
 =?utf-8?B?RDV4TG9vWHJZbTlPWUxxSzNkL0kwbDZvSlQvdG12RDRhekJVR2g5L3VPaFBv?=
 =?utf-8?B?NFhvalgzczgxT09aTmg4R2ZkeEt1Tnh2WTdEVmZsWFBPTTRRaHlicUNoTVZG?=
 =?utf-8?B?UklKM3BJMDF1QU1sNzNYbGJHVC9KWEFrRXlhWEo3S3lCUUxOZ3ZMREV3Vyt1?=
 =?utf-8?B?dlNZQ2N0T2c4NXU0bG1rMXgwNm1wekpuMkFDeEpBZ1VWeDNkU1dBcDJ4aklX?=
 =?utf-8?B?ZmlNTU1Cb0I2YUNyTy9RQmRMQVlhTGpkMnJPVFBBYjFuQ215VUNxS0Z2VytJ?=
 =?utf-8?B?Rmx0bHZHMVVuczMvdVpkMU1ZdWE2SXcvaVpDcjN2Tk9vbElvQTRwc0grRHN4?=
 =?utf-8?B?c1ZaQzhtb3VKVWpzWUpnQyswYjNiTjdCNEptY2IvVG9KYWRFb05NdlkrOGQ5?=
 =?utf-8?Q?D7SuHGgXCaAqEtDk=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <EE341934A2C32F4CA3430B0D25164632@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 84d036a6-bf02-4b05-5043-08debcb390a8
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 May 2026 12:20:54.5253
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: M2eSrOpGmaxbH4d5nUaA6ZRf4h7ekkOb6733r+FS9eRwIj8HfX/HPLxey7YnfXJWYPsOuM4AXFhImEOYnRiIeOzLsBw9sarLczwnZTlJiTo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7474
X-purgate-ID: tlsNG-720697/1779970858-ABD67161-6AD23E33/0/0
X-purgate-type: clean
X-purgate-size: 5786

DQoNCk9uIDUvMjcvMjYgMTY6MTcsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+IE9uIFR1ZSwg
TWF5IDI2LCAyMDI2IGF0IDA5OjA3OjQyUE0gKzAwMDAsIERteXRybyBQcm9rb3BjaHVrMSB3cm90
ZToNCj4+IEdDT1YgaW5zdHJ1bWVudGF0aW9uIGNhbiBlbWl0IGV4ZWN1dGFibGUgaW5wdXQgc2Vj
dGlvbnMgc3VjaCBhcw0KPj4gLnRleHQuc3RhcnR1cCBhbmQgLnRleHQuZXhpdCB3aGVuIENPTkZJ
R19DT1ZFUkFHRSBpcyBlbmFibGVkLg0KPj4gQXQgcHJlc2VudCB0aGUgWGVuIGxpbmtlciBzY3Jp
cHRzIG9ubHkgY29sbGVjdCAudGV4dC4qIGludG8gdGhlDQo+PiBtYWluIHRleHQgb3V0cHV0IHNl
Y3Rpb24gd2hlbiBDT05GSUdfQ0NfU1BMSVRfU0VDVElPTlMgaXMgZW5hYmxlZC4NCj4+DQo+PiBX
aXRoIENPTkZJR19DT1ZFUkFHRT15IGFuZCBDT05GSUdfQ0NfU1BMSVRfU0VDVElPTlM9biwgdGhl
c2UgZXhlY3V0YWJsZQ0KPj4gc2VjdGlvbnMgbWF5IGJlIHBsYWNlZCBhcyBsaW5rZXIgb3JwaGFu
cyBvdXRzaWRlIHRoZSBleHBlY3RlZCBYZW4gdGV4dA0KPj4gcmVnaW9uLiBDb25zdHJ1Y3RvcnMg
Z2VuZXJhdGVkIGJ5IGNvdmVyYWdlIGluc3RydW1lbnRhdGlvbiBjYW4gdGhlbiBwb2ludA0KPj4g
YXQgY29kZSBvdXRzaWRlIHRoZSBub3JtYWwgUlggdGV4dCBtYXBwaW5nLCBsZWFkaW5nIHRvIGVh
cmx5IGJvb3QgY3Jhc2hlcw0KPj4gZnJvbSBpbml0X2NvbnN0cnVjdG9ycygpOg0KPj4NCj4+ICAg
ICAgKFhFTikgWyAgIDEyLjMzMTE5M10gSW5zdHJ1Y3Rpb24gQWJvcnQgVHJhcC4gU3luZHJvbWU9
MHhmDQo+PiAgICAgIChYRU4pIFsgICAxMi4zMzQyNTNdIFdhbGtpbmcgSHlwZXJ2aXNvciBWQSAw
eGEwMDAwM2NlMDAwIG9uIENQVTAgdmlhIFRUQlIgMHgwMDAwMDAwMDQzNTJkMDAwDQo+PiAgICAg
IChYRU4pIFsgICAxMi4zMzg1NTBdIDBUSFsweDAxNF0gPSAweDQzNTJjZjdmDQo+PiAgICAgIChY
RU4pIFsgICAxMi4zNDE4MjNdIDFTVFsweDAwMF0gPSAweDQzNTJiZjdmDQo+PiAgICAgIChYRU4p
IFsgICAxMi4zNDUxMjRdIDJORFsweDAwMV0gPSAweDQwMDAwMDQzNTI3ZjdmDQo+PiAgICAgIChY
RU4pIFsgICAxMi4zNDczMjldIDNSRFsweDFjZV0gPSAweDQwMDAwMDQzM2NlZjdmDQo+PiAgICAg
IChYRU4pIFsgICAxMi4zNTEyMzNdIENQVTA6IFVuZXhwZWN0ZWQgVHJhcDogSW5zdHJ1Y3Rpb24g
QWJvcnQNCj4+ICAgICAgKFhFTikgWyAgIDEyLjM1NzY0M10gLS0tLVsgWGVuLTQuMjEuMSAgYXJt
NjQgIGRlYnVnPW4gZ2Nvdj15ICBOb3QgdGFpbnRlZCBdLS0tLQ0KPj4gICAgICAoWEVOKSBbICAg
MTIuMzYwMjQzXSBDUFU6ICAgIDANCj4+ICAgICAgKFhFTikgWyAgIDEyLjM2NDA5OF0gUEM6ICAg
ICAwMDAwMGEwMDAwM2NlMDAwIDAwMDAwYTAwMDAzY2UwMDANCj4+ICAgICAgKFhFTikgWyAgIDEy
LjM3NTgzNV0gTFI6ICAgICAwMDAwMGEwMDAwNDgwMmY4DQo+PiAgICAgIChYRU4pIFsgICAxMi4z
NzgyNzNdIFNQOiAgICAgMDAwMDBhMDAwMDRjN2UxMA0KPj4gICAgICAoWEVOKSBbICAgMTIuMzgw
NDkyXSBDUFNSOiAgIDAwMDAwMDAwODAwMDAyNDkgTU9ERTo2NC1iaXQgRUwyaCAoSHlwZXJ2aXNv
ciwgaGFuZGxlcikNCj4+ICAgICAgKFhFTikgWyAgIDEyLjM4Mjc4NV0gICAgICBYMDogMDAwMDBh
MDAwMDNjZTAwMCAgWDE6IDAwMDAwMDAwMDAwMDAwMDAgIFgyOiAwMDAwMGEwMDAwNDEwZmEwDQo+
PiAgICAgIChYRU4pIFsgICAxMi4zODUxNzZdICAgICAgWDM6IDAwMDAwMDAwMDAwMDAwMDAgIFg0
OiAwMDAwMDAwMDAwMDAwMDEwICBYNTogMDAwMDAwMDAwMDAwMDAwMQ0KPj4gICAgICAoWEVOKSBb
ICAgMTIuMzg3NTU1XSAgICAgIFg2OiAwMDAwMGEwMDAwNGU1ZjQwICBYNzogMDAwMDBhMDAwMDRl
NWYzOCAgWDg6IDAwMDAwMDAwMDAwMDAwMDANCj4+ICAgICAgKFhFTikgWyAgIDEyLjM5MDAyN10g
ICAgICBYOTogMDAwMDBhMDAwMDRlNWYyMCBYMTA6IDAwMDAwYTAwMDA0ZTVmMzAgWDExOiAwMDAw
MGEwMDAwNGU1ZjQwDQo+PiAgICAgIChYRU4pIFsgICAxMi4zOTI1MTBdICAgICBYMTI6IDAwMDAw
YTAwMDA0Mzk3NDggWDEzOiAwMDAwMGEwMDAwNDA2OTM4IFgxNDogMDAwMDAwMDAwMDAwMDYyZQ0K
Pj4gICAgICAoWEVOKSBbICAgMTIuMzk0OTU0XSAgICAgWDE1OiAwMDAwMGEwMDAwNGYzOTE4IFgx
NjogMDAwMDBhMDAwMDRjN2JiNSBYMTc6IDAwMDAwMDAwMDA0YzdiYjUNCj4+ICAgICAgKFhFTikg
WyAgIDEyLjM5NzI5M10gICAgIFgxODogMDAwMDAwMDAwMDAwMDAzMCBYMTk6IDAwMDAwMDAwMDAw
MDAwMWQgWDIwOiAwMDAwMDAwMDAwMDAwMGE5DQo+PiAgICAgIChYRU4pIFsgICAxMi4zOTk4MDNd
ICAgICBYMjE6IDAwMDAwYTAwMDA0YzgwMDggWDIyOiAwMDAwMGEwMDAwM2ZhMDAwIFgyMzogMDAw
MDBhMDAwMDRlMjAwMA0KPj4gICAgICAoWEVOKSBbICAgMTIuNDAyMzkyXSAgICAgWDI0OiAwMDAw
MGEwMDAwM2Y5MzkwIFgyNTogMDAwMDBhMDAwMDNmYTAwMCBYMjY6IDAwMDAwYTAwMDAzZjRjYTgN
Cj4+ICAgICAgKFhFTikgWyAgIDEyLjQwNDc5OF0gICAgIFgyNzogMDAwMDAwMDAwMDAwMDAwMiBY
Mjg6IDAwMDAwYTAwMDA1N2E5YzAgIEZQOiAwMDAwMDAwMGJlZGI2NzQwDQo+PiAgICAgIChYRU4p
IFsgICAxMi40MDcxMTBdDQo+PiAgICAgIChYRU4pIFsgICAxMi40MDk0NDJdICAgVlRDUl9FTDI6
IDAwMDAwMDAwODAwMjM1NTgNCj4+ICAgICAgKFhFTikgWyAgIDEyLjQxMTI5MV0gIFZUVEJSX0VM
MjogMDAwMDAwMDBiZmZjNDAwMA0KPj4gICAgICAoWEVOKSBbICAgMTIuNDEyODk1XQ0KPj4gICAg
ICAoWEVOKSBbICAgMTIuNDE0MjA0XSAgU0NUTFJfRUwyOiAwMDAwMDAwMDMwY2QxODNkDQo+PiAg
ICAgIChYRU4pIFsgICAxMi40MTU5MjhdICAgIEhDUl9FTDI6IDAwMDAwMDAwMDAwMDAwMzkNCj4+
ICAgICAgKFhFTikgWyAgIDEyLjQxNzY0Ml0gIFRUQlIwX0VMMjogMDAwMDAwMDA0MzUyZDAwMA0K
Pj4gICAgICAoWEVOKSBbICAgMTIuNDE5MTUyXQ0KPj4gICAgICAoWEVOKSBbICAgMTIuNDIwMzI3
XSAgICBFU1JfRUwyOiAwMDAwMDAwMDg2MDAwMDBmDQo+PiAgICAgIChYRU4pIFsgICAxMi40MjIw
NTZdICBIUEZBUl9FTDI6IDAwMDAwMDAwMDAwMDAwMDANCj4+ICAgICAgKFhFTikgWyAgIDEyLjQy
MzgwOV0gICAgRkFSX0VMMjogMDAwMDBhMDAwMDNjZTAwMA0KPj4gICAgICAuLi4NCj4+ICAgICAg
KFhFTikgWyAgIDEyLjQ4NTM1NV0gWGVuIGNhbGwgdHJhY2U6DQo+PiAgICAgIChYRU4pIFsgICAx
Mi40ODkwODBdICAgIFs8MDAwMDBhMDAwMDNjZTAwMD5dIDAwMDAwYTAwMDAzY2UwMDAgKFBDKQ0K
Pj4gICAgICAoWEVOKSBbICAgMTIuNTEyMDc2XSAgICBbPDAwMDAwYTAwMDA0ODAyZjg+XSBpbml0
X2NvbnN0cnVjdG9ycysweDM4LzB4NTAgKExSKQ0KPj4NCj4+IE9ic2VydmVkIGZhaWxpbmcgc3lt
Ym9sOg0KPj4gICAgICBfc3ViX0lfMDAxMDBfMA0KPj4gY2FsbGVkIGZyb206DQo+PiAgICAgIGlu
aXRfY29uc3RydWN0b3JzKCkNCj4+IFRoZSBpc3N1ZSBjYW4gYmUgZGlhZ25vc2VkIGJ5IGVuYWJs
aW5nIGxpbmtlciBvcnBoYW4gZGlhZ25vc3RpY3Mgb3INCj4+IGdlbmVyYXRpbmcgYSBsaW5rZXIg
bWFwOg0KPj4gICAgICBMREZMQUdTICs9ICItLW9ycGhhbi1oYW5kbGluZz13YXJuIg0KPj4gICAg
ICBMREZMQUdTICs9ICItTWFwPXhlbi5tYXAiDQo+PiBhbmQgdGhlbiBpbnNwZWN0aW5nIG9ycGhh
bmVkIGV4ZWN1dGFibGUgc2VjdGlvbnMgc3VjaCBhczoNCj4+ICAgICAgLnRleHQuc3RhcnR1cA0K
PiANCj4gVGhlIHg4NiBsaW5rZXIgc2NyaXB0IGRvZXMgYWNjb3VudCBmb3IgLnRleHQuc3RhcnR1
cCBpbiB0aGUgLmluaXQNCj4gc2VjdGlvbjoNCj4gDQo+ICAgIERFQ0xfU0VDVElPTiguaW5pdC50
ZXh0KSB7DQo+ICNlbmRpZg0KPiAgICAgICAgIF9zaW5pdHRleHQgPSAuOw0KPiAgICAgICAgICoo
LmluaXQudGV4dCkNCj4gICAgICAgICAqKC50ZXh0LnN0YXJ0dXApDQo+ICAgICAgICAgX2Vpbml0
dGV4dCA9IC47DQo+IA0KPiBJIHRoaW5rIHlvdSBqdXN0IG5lZWQgdG8gY29weSB0aGlzIHRvIHRo
ZSBhcmNoZXMgdGhhdCBkb24ndCBoYXZlIGl0Pw0KPiANCj4gVGhhbmtzLCBSb2dlci4NCkhlbGxv
IFJvZ2VyLA0KDQpZZXMsIHByb2JhYmx5IGl0IGNvdWxkIGJlIGRvbmUgaW4gdGhpcyB3YXkuDQpJ
IGNhbiBwcmVwYXJlIFYyIGFuZCB1cGRhdGUgdGhlIGNvbW1pdCBtZXNzYWdlLg0KDQpUaGFua3Ms
DQpEbXl0cm8u


From xen-devel-bounces@lists.xenproject.org Thu May 28 12:59:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 12:59:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321166.1588132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSaKb-00021t-Kp; Thu, 28 May 2026 12:59:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321166.1588132; Thu, 28 May 2026 12:59:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSaKb-00021m-I6; Thu, 28 May 2026 12:59:25 +0000
Received: by outflank-mailman (input) for mailman id 1321166;
 Thu, 28 May 2026 12:59:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <rppt@kernel.org>) id 1wSaKZ-00021g-M2
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 12:59:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSaKY-005pee-Ta
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 14:59:22 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <rppt@kernel.org>)
 id 6a183c20-e002-0a2a0a5209dd-0a2a450784b4-46
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 14:59:22 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <rppt@kernel.org>)
 id 6a183c29-229c-0a2a45070019-aceafc1fc1d4-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 14:59:22 +0200
Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18])
 by sea.source.kernel.org (Postfix) with ESMTP id 82E3B42DA7;
 Thu, 28 May 2026 12:59:20 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B89021F00A3C;
 Thu, 28 May 2026 12:59:15 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20260515 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:Cc:Subject:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1779973160;
	bh=naFlqxbhwX4GtaQGoDTgjjV1+FBkawCwOLQmoy6mDlI=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To;
	b=JbwLu/x1FG/SmagCxHsnTSG/bwx/DFQV3rVzN4ApHWGiyZVwb4zr2qkNRDEc0jmmX
	 mVRc/1Pix+QvQllawmggohd/5IRDMZ8kwmnAZZQnpDW73WKevYxMvYypgjfDtChqtj
	 vTovHyngwMUfbe/bu/2eg8DOzGNsubuHH1cu/FfMqhDLMWWS7nOGJImXXoEIZThwcd
	 7wnPxQd7EmDnNT/U0dyHGlR1D7SeVrFsQnBjcHKwPVNyldsHGd0LBPukpmunI8gWrH
	 EPhShSh4fZMZMxdWT2raVB9v+F402qOB9uBy8aUEwzE0RMwfjb8cHwu/QrYR0yilwq
	 LQgFH9G4MPBHQ==
Date: Thu, 28 May 2026 15:59:11 +0300
From: Mike Rapoport <rppt@kernel.org>
To: Vishal Moola <vishal.moola@gmail.com>
Cc: Dave Hansen <dave.hansen@intel.com>, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, x86@kernel.org,
	Lu Baolu <baolu.lu@linux.intel.com>, xen-devel@lists.xenproject.org,
	Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>, "H. Peter Anvin" <hpa@zytor.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: [PATCH 0/9] Convert x86 pgd_lists to ptdescs
Message-ID: <ahg8Hz3nj_uMJqnl@kernel.org>
References: <20260527140316.294621-1-vishal.moola@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260527140316.294621-1-vishal.moola@gmail.com>
X-purgate-ID: tlsNG-ef75cf/1779973162-29165C48-512DB56D/0/0
X-purgate-type: clean
X-purgate-size: 2123

On Wed, May 27, 2026 at 03:03:07PM +0100, Vishal Moola wrote:
> This continues the ptdesc conversions for x86[1]. This is a necessary step
> in preparation for the separate allocation of ptdescs from struct page.
> Once ptdescs are not wrappers, the pgd_list should be used to find our
> ptdesc, not page.
> 
> In fact, after patch 4 we can successfully boot a 32-bit x86 kernel
> that separately allocates ptdescs.
> 
> All of the patches are rather straightforward, I just kept them split up
> for ease of review. There are no intended functional changes as ptdescs
> are currently still wrappers around struct page.

Looks straightforward to me indeed :)

Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>

> [1] https://lore.kernel.org/linux-mm/20260211195233.368497-1-vishal.moola@gmail.com/
> 
> ----------------
> 
> I've compiled and booted both 64 and 32 bit on a kernel with separately
> allocated ptdescs. I ensured the codepaths were hit for all the changes
> except Xen.
> 
> This applies cleanly to the tip bot. I'm thinking this can go through
> Dave's mm.
> 
> Vishal Moola (9):
>   x86/mm/pat: Use IS_ENABLED() instead of ifdef
>   x86/mm/pat: Convert __set_pmd_pte() to ptdescs
>   x86/mm/pat: Convert collapse_pmd_page() to ptdescs
>   x86/mm: Convert arch_sync_kernel_mappings() to ptdescs
>   x86/mm: Convert sync_global_pgds_l5() to ptdescs
>   x86/mm: Convert sync_global_pgds_l4() to ptdescs
>   x86/mm: Convert pgd_page_get_mm() to ptdescs
>   x86/xen: Convert xen_mm_pin_all() to ptdescs
>   x86/xen: Convert xen_mm_unpin_all() to ptdescs
> 
>  arch/x86/include/asm/pgtable.h       |  2 +-
>  arch/x86/include/asm/pgtable_types.h |  2 +-
>  arch/x86/mm/fault.c                  |  8 ++++----
>  arch/x86/mm/init_64.c                | 16 ++++++++--------
>  arch/x86/mm/pat/set_memory.c         | 17 ++++++++---------
>  arch/x86/mm/pgtable.c                |  4 ++--
>  arch/x86/xen/mmu_pv.c                | 22 +++++++++++-----------
>  7 files changed, 35 insertions(+), 36 deletions(-)
> 
> -- 
> 2.54.0
> 

-- 
Sincerely yours,
Mike.


From xen-devel-bounces@lists.xenproject.org Thu May 28 14:44:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 14:44:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321209.1588142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSbyO-0007nL-Vc; Thu, 28 May 2026 14:44:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321209.1588142; Thu, 28 May 2026 14:44:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSbyO-0007nD-QZ; Thu, 28 May 2026 14:44:36 +0000
Received: by outflank-mailman (input) for mailman id 1321209;
 Thu, 28 May 2026 14:43:44 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <william.kucharski@linux.dev>) id 1wSbxX-0007mD-Ol
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 14:43:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSbxX-008TQ6-0A
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 16:43:43 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <william.kucharski@linux.dev>)
 id 6a18548c-2eae-0a2a0a5409dd-0a2a4507a92e-42
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 16:43:42 +0200
Received: from [91.218.175.180] (helo=out-180.mta0.migadu.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <william.kucharski@linux.dev>)
 id 6a18549d-229c-0a2a45070019-5bdaafb4b521-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 16:43:41 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=key1 header.d=linux.dev header.i="@linux.dev" header.h="From:Subject:Date:Message-Id:To:Cc:Mime-Version:Content-Type:Content-Transfer-Encoding:In-Reply-To:References"
Content-Type: text/plain;
	charset=us-ascii
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1;
	t=1779979421;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=JaKylE9tmtxoDlvo1H6WypisSB7E9IbupaqeU2jxRQk=;
	b=UFA0TctBDoJctOHOsP80cIuOFeSA66cIPh1Azl9LETzBIkMwxe/ebMG53bjcMzoCC5tRVX
	uKP5vrf0O+p9HzNa1tStAw2NKP9KWd5O/MGfVsHSy/pa1ZWNeLUyMrQIU0HSHXygfLz9q3
	+uH7ft1SDabLwk+BS+qTxDas3b5SyT0=
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3864.600.51.1.1\))
Subject: Re: [PATCH 0/9] Convert x86 pgd_lists to ptdescs
X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers.
From: William Kucharski <william.kucharski@linux.dev>
In-Reply-To: <20260527140316.294621-1-vishal.moola@gmail.com>
Date: Thu, 28 May 2026 08:43:25 -0600
Cc: Dave Hansen <dave.hansen@intel.com>,
 linux-mm@kvack.org,
 linux-kernel@vger.kernel.org,
 x86@kernel.org,
 Mike Rapoport <rppt@kernel.org>,
 Lu Baolu <baolu.lu@linux.intel.com>,
 xen-devel@lists.xenproject.org,
 Thomas Gleixner <tglx@kernel.org>,
 Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>,
 "H. Peter Anvin" <hpa@zytor.com>,
 Andy Lutomirski <luto@kernel.org>,
 Peter Zijlstra <peterz@infradead.org>,
 Juergen Gross <jgross@suse.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <83A6AC90-A51D-4E1E-9ADA-50195FA2485A@linux.dev>
References: <20260527140316.294621-1-vishal.moola@gmail.com>
To: Vishal Moola <vishal.moola@gmail.com>
X-Migadu-Flow: FLOW_OUT
X-purgate-ID: tlsNG-ef75cf/1779979422-0A772C48-5930820B/0/0
X-purgate-type: clean
X-purgate-size: 2133

Looks great!

Reviewed-by: William Kucharski <william.kucharski@linux.dev>

> On May 27, 2026, at 08:03, Vishal Moola <vishal.moola@gmail.com> =
wrote:
>=20
> This continues the ptdesc conversions for x86[1]. This is a necessary =
step
> in preparation for the separate allocation of ptdescs from struct =
page.
> Once ptdescs are not wrappers, the pgd_list should be used to find our
> ptdesc, not page.
>=20
> In fact, after patch 4 we can successfully boot a 32-bit x86 kernel
> that separately allocates ptdescs.
>=20
> All of the patches are rather straightforward, I just kept them split =
up
> for ease of review. There are no intended functional changes as =
ptdescs
> are currently still wrappers around struct page.
>=20
> [1] =
https://lore.kernel.org/linux-mm/20260211195233.368497-1-vishal.moola@gmai=
l.com/
>=20
> ----------------
>=20
> I've compiled and booted both 64 and 32 bit on a kernel with =
separately
> allocated ptdescs. I ensured the codepaths were hit for all the =
changes
> except Xen.
>=20
> This applies cleanly to the tip bot. I'm thinking this can go through
> Dave's mm.
>=20
> Vishal Moola (9):
>  x86/mm/pat: Use IS_ENABLED() instead of ifdef
>  x86/mm/pat: Convert __set_pmd_pte() to ptdescs
>  x86/mm/pat: Convert collapse_pmd_page() to ptdescs
>  x86/mm: Convert arch_sync_kernel_mappings() to ptdescs
>  x86/mm: Convert sync_global_pgds_l5() to ptdescs
>  x86/mm: Convert sync_global_pgds_l4() to ptdescs
>  x86/mm: Convert pgd_page_get_mm() to ptdescs
>  x86/xen: Convert xen_mm_pin_all() to ptdescs
>  x86/xen: Convert xen_mm_unpin_all() to ptdescs
>=20
> arch/x86/include/asm/pgtable.h       |  2 +-
> arch/x86/include/asm/pgtable_types.h |  2 +-
> arch/x86/mm/fault.c                  |  8 ++++----
> arch/x86/mm/init_64.c                | 16 ++++++++--------
> arch/x86/mm/pat/set_memory.c         | 17 ++++++++---------
> arch/x86/mm/pgtable.c                |  4 ++--
> arch/x86/xen/mmu_pv.c                | 22 +++++++++++-----------
> 7 files changed, 35 insertions(+), 36 deletions(-)
>=20
> --=20
> 2.54.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Thu May 28 14:49:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 14:49:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321221.1588150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSc3W-0008Tx-Fz; Thu, 28 May 2026 14:49:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321221.1588150; Thu, 28 May 2026 14:49:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSc3W-0008Tq-DM; Thu, 28 May 2026 14:49:54 +0000
Received: by outflank-mailman (input) for mailman id 1321221;
 Thu, 28 May 2026 14:49:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wSc3V-0008Tk-9C
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 14:49:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSc3U-002bP9-IE
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 16:49:52 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a185603-e002-0a2a0a5209dd-0a2a4503c5ce-22
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 16:49:52 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a18560f-672d-0a2a45030019-a0658308c51a-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 16:49:52 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 2064943469FD;
 Thu, 28 May 2026 10:48:47 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 0/2] xen/mm: Fix offlining pages to avoid corrupting the heap
Date: Thu, 28 May 2026 15:47:48 +0100
Message-Id: <cover.1779979589.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1779979792-37D4B938-4D09F781/0/0
X-purgate-type: clean
X-purgate-size: 5554

This series fixes a bug where offlining pages could lead to unaligned
buddies being merged back onto the free list. The result is a chain of
events that can corrupt the heap and trigger a Xen panic after a few
allocations and frees.

For example, an MCE caused by faulty RAM may mark pages as offline.
When a buddy containing offlined pages is freed, those pages
are moved to dedicated isolated page lists.

reserve_offline_page() lacks alignment checks and may grow adjacent
healthy spans into unaligned buddies that violate the fundamental buddy
invariant: buddies of a given order must be aligned to their size.

Consider a valid order-2 buddy (4 pages) with this layout:

   +---------------+-----------------+-----------------+----------------+
   | head page     | tail page 1     | tail page 2     | tail page 3    |
   +---------------+-----------------+-----------------+----------------+

reserve_offline_page() then merges unaligned tail pages:

   +---------------+-----------------+-----------------+----------------+
   | offlined page |     head page with a tail page    | single page    |
   +---------------+-----------------+-----------------+----------------+

This leads to a Xen panic, demonstrated by the test case:

1. When a single page is allocated from this buddy, MFN 7 is allocated:

        MFN 4             MFN 5             MFN 6             MFN 7
  +---------------+-----------------+-----------------+----------------+
  | offlined page |    head page        tail page     | allocated page |
  |               |       Unaligned buddies are       |                |
  |               |      an invariant violation!      |                |
  +---------------+-----------------+-----------------+----------------+

2. When MFN 7 is freed, the predecessor merge in free_heap_pages()
   kicks in, merging MFN 7 with its naturally aligned predecessor MFN 6:

        MFN 4             MFN 5             MFN 6            MFN 7
  +---------------+-----------------+-----------------+
  | offlined page |    head page         tail page    |
  |               |       Unaligned buddies are       |
  |               |      an invariant violation!      |
  +---------------+-----------------+-----------------+----------------+
                                    |    head page        tail page    |
                                    +-----------------+----------------+

  As shown, MFN 6 is double-freed. It is in two buddies:
  - As the tail page of the unaligned order-1 buddy starting at MFN 5.
  - As the head page of the aligned order-1 buddy starting at MFN 6.

3. The next allocations would allocate MFN 7 again, and MFN 6 as well:

   Due to the double-free, after the first allocation, MFN 6 remains on
   the free list even though its PGC_status is set to in-use.

        MFN 4             MFN 5             MFN 6            MFN 7
  +---------------+-----------------+-----------------+
  | offlined page |    head page         tail page    |
  |               |       Unaligned buddies are       |
  |               |      an invariant violation!      |
  +---------------+-----------------+-----------------+----------------+
                                    |   in-use page   |   in-use page  |
                                    +-----------------+----------------+

4. When the next page from this buddy is allocated, get_free_page()
   returns the buddy head MFN 5.  If the allocation is for order-0,
   alloc_heap_pages() splits page 6; otherwise, it keeps the buddy.
   Either way, the allocator checks the pages' PGC_status values and
   expects them not to be in-use. Because MFN 6 is already in-use,
   Xen panics (example panic log):

   pg[0] MFN 842adc c=0x4000000000000000 o=0 v=0 t=0
   Xen BUG at common/page_alloc.c:1324

I reproduced this while running intensive NUMA claim tests combined
with page offlining. The test case in this series demonstrates the
cascading corruption that leads to the panic without intentionally
having to crash a Xen instance to test for the bug.

Running the test produces the following output (trimmed):

   $ make -C tools/tests/native test TARGETS=offline-unaligned |
     grep -v ' xen/'
   |   The buddy #5 is not aligned to order-1!
   | <0>pg[0] MFN 00006 c=0x8000000000000001 o=1213 v=0 t=0
   | xen/common/page_alloc.c:1324: WE INVOKED a XEN BUG in alloc_heap_pages()

The second patch fixes the root cause and updates the test case to
serve as a regression test.

This series is based on the native test environment v3 for NUMA claims:
https://lists.xen.org/archives/html/xen-devel/2026-05/msg01163.html

It in turn depends on the NUMA claim sets v7 series:
https://lists.xen.org/archives/html/xen-devel/2026-05/msg00363.html

You can pull the series with dependencies for review and testing:

$ git pull git@gitlab.com:bernhardkaindl/xen.git offline-unaligned-buddies-v1
$ make -C tools/tests/native TARGETS=offline-unaligned test

Fixes: e4865c2315 ('Page offline support in Xen side')
Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>

Bernhard Kaindl (2):
  tools/tests/native: Test for Xen Panic after memory offlining
  xen/mm: Fix offlining pages only make aligned buddies, fixes Xen crash

 tools/tests/native/offline-unaligned.c | 79 ++++++++++++++++++++++++++
 xen/common/page_alloc.c                |  5 ++
 2 files changed, 84 insertions(+)
 create mode 100644 tools/tests/native/offline-unaligned.c

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 28 14:53:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 14:53:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321250.1588159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSc6W-0001bs-1Q; Thu, 28 May 2026 14:53:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321250.1588159; Thu, 28 May 2026 14:53:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSc6V-0001bl-U4; Thu, 28 May 2026 14:52:59 +0000
Received: by outflank-mailman (input) for mailman id 1321250;
 Thu, 28 May 2026 14:52:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wSc6U-0001bf-IW
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 14:52:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSc6T-00H4IE-VL
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 16:52:57 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a1856ac-2eae-0a2a0a5409dd-0a2a450bbcac-44
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 16:52:57 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a1856c8-212f-0a2a450b0019-a0658308803c-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 16:52:57 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 2D12B4325930;
 Thu, 28 May 2026 10:51:53 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 1/2] tools/tests/native: Test for Xen Panic after memory offlining
Date: Thu, 28 May 2026 15:47:49 +0100
Message-Id: <54c4b9e8c6561e897dec44d61a7315e899741397.1779979589.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1779979589.git.bernhard.kaindl@citrix.com>
References: <cover.1779979589.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1779979977-1B979F3B-35CBAE84/0/0
X-purgate-type: clean
X-purgate-size: 12710

Add a test case testing for heap corruption bug caused by reserving
offlined pages from partially healthy buddies without alignment check.

For example, due to bad RAM, an MCE could cause pages marked as offline.
When a buddy containing offlined pages is freed, those pages
are moved to dedicated isolated page lists.

reserve_offline_page() lacks alignment checks and may grow adjacent
healthy spans into unaligned buddies that violate the fundamental buddy
invariant: buddies of a given order must be aligned to their size.

Consider a valid order-2 buddy (4 pages) with this layout:

   +---------------+-----------------+-----------------+----------------+
   |   head page   |   tail page 1   |   tail page 2   |   tail page 3  |
   +---------------+-----------------+-----------------+----------------+

reserve_offline_page() then merges unaligned tail pages:

   +---------------+-----------------+-----------------+----------------+
   | offlined page |     head page with a tail page    | single page    |
   +---------------+-----------------+-----------------+----------------+

This leads to a Xen panic, demonstrated by the test case:

1. When a single page is allocated from this buddy, MFN 7 is allocated:

        MFN 4             MFN 5             MFN 6             MFN 7
  +---------------+-----------------+-----------------+----------------+
  | offlined page |    head page        tail page     | allocated page |
  |               |       Unaligned buddies are       |                |
  |               |      an invariant violation!      |                |
  +---------------+-----------------+-----------------+----------------+

2. When MFN 7 is freed, the predecessor merge in free_heap_pages()
   kicks in, merging MFN 7 with its naturally aligned predecessor MFN 6:

        MFN 4             MFN 5             MFN 6            MFN 7
  +---------------+-----------------+-----------------+
  | offlined page |    head page         tail page    |
  |               |       Unaligned buddies are       |
  |               |      an invariant violation!      |
  +---------------+-----------------+-----------------+----------------+
                                    |    head page        tail page    |
                                    +-----------------+----------------+

  As shown, MFN 6 is double-freed. It is in two buddies:
  - As the tail page of the unaligned order-1 buddy starting at MFN 5.
  - As the head page of the aligned order-1 buddy starting at MFN 6.

3. The next allocations would allocate MFN 7 again, and MFN 6 as well:

   Due to the double-free, after the first allocation, MFN 6 remains on
   the free list even though its PGC_status is set to in-use.

        MFN 4             MFN 5             MFN 6            MFN 7
  +---------------+-----------------+-----------------+
  | offlined page |    head page         tail page    |
  |               |       Unaligned buddies are       |
  |               |      an invariant violation!      |
  +---------------+-----------------+-----------------+----------------+
                                    |   in-use page   |   in-use page  |
                                    +-----------------+----------------+

4. When the next page from this buddy is allocated, get_free_page()
   returns the buddy head MFN 5.  If the allocation is for order-0,
   alloc_heap_pages() splits page 6; otherwise, it keeps the buddy.
   Either way, the allocator checks the pages' PGC_status values and
   expects them not to be in-use. Because MFN 6 is already in-use,
   Xen panics (example panic log):

   pg[0] MFN 842adc c=0x4000000000000000 o=0 v=0 t=0
   Xen BUG at common/page_alloc.c:1324

I reproduced this while running intensive NUMA claim tests combined
with page offlining. The test case in this series demonstrates the
cascading corruption that leads to the panic without intentionally
having to crash a Xen instance to test for the bug.

Using the test case, the final lines are:

$ make -C tools/tests/native test TARGETS=offline-unaligned|grep -v ' xen/'
|   The buddy #5 is not aligned to order-1!
| <0>pg[0] MFN 00006 c=0x8000000000000001 o=1213 v=0 t=0
| xen/common/page_alloc.c:1324: WE INVOKED a XEN BUG in alloc_heap_pages()

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 tools/tests/native/offline-unaligned.c | 171 +++++++++++++++++++++++++
 1 file changed, 171 insertions(+)
 create mode 100644 tools/tests/native/offline-unaligned.c

diff --git a/tools/tests/native/offline-unaligned.c b/tools/tests/native/offline-unaligned.c
new file mode 100644
index 000000000000..1186b1763bef
--- /dev/null
+++ b/tools/tests/native/offline-unaligned.c
@@ -0,0 +1,171 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Test that offlining a predecessor of pages that must not be merged
+ * into an unaligned buddy is handled correctly. Specifically, verify
+ * that the Xen page allocator does not merge such unaligned buddies
+ * back onto the free list, which can produce a chain of events that
+ * leads to a Xen panic after a few allocations and frees.
+ *
+ * This test reproduces the scenario in isolation by offlining a page
+ * with an even MFN that has more than two following tail pages.
+ *
+ * If an unaligned buddy is returned to the free list, a sequence of
+ * allocations and a subsequent free can corrupt the free list state
+ * so that a later allocation triggers BUG() and crashes the instance.
+ * The test checks the free list behavior and, if the bug is present,
+ * confirms the resulting BUG().
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+#include "harness/common.h"
+
+/* test_bss_start must be first in the BSS segment */
+void __aligned(PAGE_SIZE) *test_bss_start;
+
+/* Include xen/mm.h so we can wrap page_list_del() to assert the corruption. */
+#define TEST_WRAP_XEN_INCLUDE_XEN_MM_H
+#include "harness/mm-wrapper.h"
+
+static bool expect_free_list_corruption;
+
+/*
+ * Wrap page_list_del() to not fail the test by virtue of the prepared
+ * free list state but continue the test like a running Xen instance
+ * would in many cases. Assert and expect the corruption, and continue.
+ */
+static inline void wrap_page_list_del(struct page_info *page,
+                                      struct page_list_head *head)
+{
+    printf("page_list_del: page MFN %lu, order %u\n",
+           mfn_x(page_to_mfn(page)), PFN_ORDER(page));
+
+    if ( expect_free_list_corruption )
+        EXPECT_FAIL_BEGIN();
+    CHECK(page->list.next && page->list.prev, "The free list is corrupt now!");
+    if ( expect_free_list_corruption )
+        EXPECT_FAIL_END(1);
+
+    if ( page->list.next && page->list.prev )
+        page_list_del(page, head);
+}
+#define page_list_del(page, head) wrap_page_list_del(page, head)
+
+/*
+ * Include the main test library that sets up scenarios, asserts
+ * allocator state, and provides the definitions and shims needed
+ * to call the Xen page allocator code in this test program.
+ */
+#define TEST_ENABLE_XC_DOMAIN_C
+#include "harness/native.h"
+
+/* Verify the behavior of buddy merging after offlining a page */
+static void test_unaligned_buddy_merge(int start_mfn)
+{
+    struct page_info *pg = frame_table + start_mfn;
+    uint32_t status = 0;
+
+    /*
+     * Prepare a valid order-2 buddy (4 pages) with this layout:
+     * +---------------+-----------------+-----------------+----------------+
+     * | head page     | tail page 1     | tail page 2     | tail page 3    |
+     * +---------------+-----------------+-----------------+----------------+
+     */
+    test_page_list_add_buddy(pg, order2); /* Seed the heap with this buddy */
+
+    /* Act */
+    offline_page(page_to_mfn(pg), 0, &status);
+    CHECK(status & PG_OFFLINE_OFFLINED, "Page should be offlined");
+
+    /*
+     * The correct free list state after offlining the head page of the buddy
+     * is the the healthy pages are merged back onto the free list using a
+     * single page and a size-aligned buddy of the remaining pages:
+     * +---------------+-----------------+-----------------+----------------+
+     * | offlined page | single page     |    head page with a tail page    |
+     * +---------------+-----------------+-----------------+----------------+
+     */
+    EXPECT_FAIL_BEGIN();
+    /*
+     * Due to a bug in reserve_offlined_page(), we get an unaligned buddy:
+     * +---------------+-----------------+-----------------+----------------+
+     * | offlined page |     head page with a tail page    | single page    |
+     * +---------------+-----------------+-----------------+----------------+
+     */
+    CHECK(page_aligned(pg + 1), "The buddy #%lu is not aligned to order-%d",
+          mfn_x(page_to_mfn(pg + 1)), PFN_ORDER(pg + 1));
+    EXPECT_FAIL_END(1);
+
+    /* Allocate and free a page to trigger buddy merging on free. */
+
+    /*
+     * After allocating and freeing MFN 7, we get a double-freed MFN 6 due
+     * to aligned predecessor merging in free_heap_pages():
+     *
+     *         MFN 4             MFN 5             MFN 6            MFN 7
+     *   +---------------+-----------------+-----------------+
+     *   | offlined page |    head page         tail page    |
+     *   |               |       Unaligned buddies are       |
+     *   |               |      an invariant violation!      |
+     *   +---------------+-----------------+-----------------+----------------+
+     *                                     |    head page        tail page    |
+     *                                     +-----------------+----------------+
+     */
+    expect_free_list_corruption = true;
+    free_domheap_pages(alloc_domheap_pages(dom1, order0, 0), order0);
+
+    /*
+     * At this point, the free list is already corrupt. In free_heap_pages(),
+     * the tail of the unaligned buddy was added to the free list a 2nd time
+     * as the page of an overlapping aligned buddy. This is per design of the
+     * algorithm: These pages are free and thus the merging occurs as expected.
+     *
+     * The next allocation allocates the tail of the unaligned buddy, which
+     * is now, due to the merge, also the head of the new aligned buddy.
+     */
+    CHECK((pg = alloc_domheap_pages(dom1, order1, 0)), "Alloc the order-1 pg");
+
+    /* Inspect the predecessor (pg is the tail of the unaligned buddy) */
+    EXPECT_FAIL_BEGIN();
+    /*
+     * After allocating two more pages, MFN 6 is free AND in-use:
+     *
+     *         MFN 4             MFN 5             MFN 6            MFN 7
+     *   +---------------+-----------------+-----------------+
+     *   | offlined page |    head page         tail page    |
+     *   +---------------+-----------------+-----------------+----------------+
+     *                                     |    in-use page      in-use page  |
+     *                                     +-----------------+----------------+
+     */
+    CHECK(page_aligned(pg - 1), "The buddy #%lu is not aligned to order-%d!",
+          mfn_x(page_to_mfn(pg - 1)), PFN_ORDER(pg - 1));
+    EXPECT_FAIL_END(1);
+
+    /* Allocate the remaining page; a clean heap should not hit BUG(). */
+    testcase_assert_expect_to_hit_bug = true;
+    /*
+     * As described above, if pg is the tail of an unaligned order-1 buddy,
+     * the unaligned buddy is still on the free list and this allocation will
+     * remove it from the free list and check alloc_heap_pages() checks the
+     * buddies to have a reference count of zero, and the already allocated
+     * page is returned as the tail of the unaligned buddy, causing the BUG().
+     *
+     *         MFN 4             MFN 5             MFN 6            MFN 7
+     *   +---------------+-----------------+-----------------+
+     *   | offlined page |    head page         tail page    | <- panic's Xen
+     *   +---------------+-----------------+-----------------+----------------+
+     *                                     |    in-use page      in-use page  |
+     *                                     +-----------------+----------------+
+     */
+    alloc_domheap_pages(dom1, order0, 0); /* Triggers BUG() */
+}
+
+int main(int argc, char *argv[])
+{
+    if ( !parse_args(argc, argv, "Test not growing unaligned buddies") )
+        return EXIT_FAILURE;
+
+    init_page_alloc_tests();
+    RUN_TESTCASE("TUBM", test_unaligned_buddy_merge, 4);
+
+    return test_complete();
+}
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 28 14:53:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 14:53:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321260.1588168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSc6v-00023Z-90; Thu, 28 May 2026 14:53:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321260.1588168; Thu, 28 May 2026 14:53:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSc6v-00023S-5c; Thu, 28 May 2026 14:53:25 +0000
Received: by outflank-mailman (input) for mailman id 1321260;
 Thu, 28 May 2026 14:53:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wSc6t-00023K-J7
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 14:53:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSc6s-002cET-W6
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 16:53:23 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a1856d9-bab6-0a2a0a5309dd-0a2a450183b4-20
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 16:53:22 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a1856e1-c1f2-0a2a45010019-a0658308a4aa-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 16:53:22 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id AA5E6432A65A;
 Thu, 28 May 2026 10:52:17 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/2] xen/mm: Fix offlining pages only make aligned buddies, fixes Xen crash
Date: Thu, 28 May 2026 15:47:50 +0100
Message-Id: <cdaec995676e17f0943cb921eb5ad9f87b96526c.1779979589.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1779979589.git.bernhard.kaindl@citrix.com>
References: <cover.1779979589.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1779980002-AE342FF4-08704CCB/0/0
X-purgate-type: clean
X-purgate-size: 7170

reserve_offline_pages() is missing an alignment check and thus
has a relatively high probability of growing unaligned buddies.

Fix this by checking alignment before growing spans to the next order.
Update the test case to verify the fix and prevent future regressions.

Fixes: e4865c2315 ('Page offline support in Xen side')
Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 tools/tests/native/offline-unaligned.c | 92 --------------------------
 xen/common/page_alloc.c                |  5 ++
 2 files changed, 5 insertions(+), 92 deletions(-)

diff --git a/tools/tests/native/offline-unaligned.c b/tools/tests/native/offline-unaligned.c
index 1186b1763bef..593135722a3f 100644
--- a/tools/tests/native/offline-unaligned.c
+++ b/tools/tests/native/offline-unaligned.c
@@ -17,38 +17,6 @@
  *
  * Copyright (C) 2026 Cloud Software Group
  */
-#include "harness/common.h"
-
-/* test_bss_start must be first in the BSS segment */
-void __aligned(PAGE_SIZE) *test_bss_start;
-
-/* Include xen/mm.h so we can wrap page_list_del() to assert the corruption. */
-#define TEST_WRAP_XEN_INCLUDE_XEN_MM_H
-#include "harness/mm-wrapper.h"
-
-static bool expect_free_list_corruption;
-
-/*
- * Wrap page_list_del() to not fail the test by virtue of the prepared
- * free list state but continue the test like a running Xen instance
- * would in many cases. Assert and expect the corruption, and continue.
- */
-static inline void wrap_page_list_del(struct page_info *page,
-                                      struct page_list_head *head)
-{
-    printf("page_list_del: page MFN %lu, order %u\n",
-           mfn_x(page_to_mfn(page)), PFN_ORDER(page));
-
-    if ( expect_free_list_corruption )
-        EXPECT_FAIL_BEGIN();
-    CHECK(page->list.next && page->list.prev, "The free list is corrupt now!");
-    if ( expect_free_list_corruption )
-        EXPECT_FAIL_END(1);
-
-    if ( page->list.next && page->list.prev )
-        page_list_del(page, head);
-}
-#define page_list_del(page, head) wrap_page_list_del(page, head)
 
 /*
  * Include the main test library that sets up scenarios, asserts
@@ -84,78 +52,18 @@ static void test_unaligned_buddy_merge(int start_mfn)
      * | offlined page | single page     |    head page with a tail page    |
      * +---------------+-----------------+-----------------+----------------+
      */
-    EXPECT_FAIL_BEGIN();
-    /*
-     * Due to a bug in reserve_offlined_page(), we get an unaligned buddy:
-     * +---------------+-----------------+-----------------+----------------+
-     * | offlined page |     head page with a tail page    | single page    |
-     * +---------------+-----------------+-----------------+----------------+
-     */
     CHECK(page_aligned(pg + 1), "The buddy #%lu is not aligned to order-%d",
           mfn_x(page_to_mfn(pg + 1)), PFN_ORDER(pg + 1));
-    EXPECT_FAIL_END(1);
 
     /* Allocate and free a page to trigger buddy merging on free. */
-
-    /*
-     * After allocating and freeing MFN 7, we get a double-freed MFN 6 due
-     * to aligned predecessor merging in free_heap_pages():
-     *
-     *         MFN 4             MFN 5             MFN 6            MFN 7
-     *   +---------------+-----------------+-----------------+
-     *   | offlined page |    head page         tail page    |
-     *   |               |       Unaligned buddies are       |
-     *   |               |      an invariant violation!      |
-     *   +---------------+-----------------+-----------------+----------------+
-     *                                     |    head page        tail page    |
-     *                                     +-----------------+----------------+
-     */
-    expect_free_list_corruption = true;
     free_domheap_pages(alloc_domheap_pages(dom1, order0, 0), order0);
-
-    /*
-     * At this point, the free list is already corrupt. In free_heap_pages(),
-     * the tail of the unaligned buddy was added to the free list a 2nd time
-     * as the page of an overlapping aligned buddy. This is per design of the
-     * algorithm: These pages are free and thus the merging occurs as expected.
-     *
-     * The next allocation allocates the tail of the unaligned buddy, which
-     * is now, due to the merge, also the head of the new aligned buddy.
-     */
     CHECK((pg = alloc_domheap_pages(dom1, order1, 0)), "Alloc the order-1 pg");
 
     /* Inspect the predecessor (pg is the tail of the unaligned buddy) */
-    EXPECT_FAIL_BEGIN();
-    /*
-     * After allocating two more pages, MFN 6 is free AND in-use:
-     *
-     *         MFN 4             MFN 5             MFN 6            MFN 7
-     *   +---------------+-----------------+-----------------+
-     *   | offlined page |    head page         tail page    |
-     *   +---------------+-----------------+-----------------+----------------+
-     *                                     |    in-use page      in-use page  |
-     *                                     +-----------------+----------------+
-     */
     CHECK(page_aligned(pg - 1), "The buddy #%lu is not aligned to order-%d!",
           mfn_x(page_to_mfn(pg - 1)), PFN_ORDER(pg - 1));
-    EXPECT_FAIL_END(1);
 
     /* Allocate the remaining page; a clean heap should not hit BUG(). */
-    testcase_assert_expect_to_hit_bug = true;
-    /*
-     * As described above, if pg is the tail of an unaligned order-1 buddy,
-     * the unaligned buddy is still on the free list and this allocation will
-     * remove it from the free list and check alloc_heap_pages() checks the
-     * buddies to have a reference count of zero, and the already allocated
-     * page is returned as the tail of the unaligned buddy, causing the BUG().
-     *
-     *         MFN 4             MFN 5             MFN 6            MFN 7
-     *   +---------------+-----------------+-----------------+
-     *   | offlined page |    head page         tail page    | <- panic's Xen
-     *   +---------------+-----------------+-----------------+----------------+
-     *                                     |    in-use page      in-use page  |
-     *                                     +-----------------+----------------+
-     */
     alloc_domheap_pages(dom1, order0, 0); /* Triggers BUG() */
 }
 
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 46c01a9fca2a..d923ae02ade0 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1434,6 +1434,11 @@ static int reserve_offlined_page(struct page_info *head)
             if ( (cur_head + (1 << next_order)) >= (head + ( 1 << head_order)) )
                 goto merge;
 
+            /* Do not grow to next_order if cur_head is not aligned to it. */
+            if ( (mfn_x(page_to_mfn(cur_head)) & ((1UL << next_order) - 1)) )
+                goto merge;
+
+            /* Check if any page in the next_order range is offlined. */
             for ( i = (1 << cur_order), pg = cur_head + (1 << cur_order );
                   i < (1 << next_order);
                   i++, pg++ )
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 28 14:58:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 14:58:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321301.1588178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wScBH-0002vc-PG; Thu, 28 May 2026 14:57:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321301.1588178; Thu, 28 May 2026 14:57:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wScBH-0002vU-LM; Thu, 28 May 2026 14:57:55 +0000
Received: by outflank-mailman (input) for mailman id 1321301;
 Thu, 28 May 2026 14:57:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wScBG-0002uJ-AI
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 14:57:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wScBF-00FGK8-NJ
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 16:57:53 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a1857dc-5cb7-0a2a0a5109dd-0a2a4509abf2-48
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 16:57:53 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a1857f0-2497-0a2a45090019-a0658308bf8c-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 16:57:53 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 53F2A4346BF6;
 Thu, 28 May 2026 10:56:48 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 0/2] xen/mm: Fix off-by-one for tail merge in reserve_offlined_page()
Date: Thu, 28 May 2026 15:55:53 +0100
Message-Id: <cover.1779980089.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779980273-40762A53-1E00BD44/0/0
X-purgate-type: clean
X-purgate-size: 2762

After offlining pages, reserve_offlined_page() returns healthy
spans of pages from the buddy it isolated the offlined pages
back to the free lists.

Naturally, it attempts to grow larger buddies, but due to an
off-by-one, this fails at the tail end of the span of pages.

Patch 1 adds a native regression test that reproduces the problem.
Patch 2 fixes the off-by-one error and updates the regression test.

Consider an order-2 buddy (4 pages) with the following layout:
+---------------+---------------+---------------+---------------+
| head page       tail page 1,    tail page 2     tail page 3   |
| PFN_ORDER(pg)   marked as to                                  |
| == 2            be offlined                                   |
+---------------+---------------+---------------+---------------+

The expected result after removing tail page 1 and returning the
remaining healthy pages to the free list would be:

+---------------+               +---------------+---------------+
| single page   | offlined page | head page       tail page     |
| PFN_ORDER(pg) | not returned  | PFN_ORDER(pg)                 |
| == 0          | to the heap   | == 1                          |
+---------------+               +---------------+---------------+

A trivial off-by-one error in the growth loop stops the growth loop
early before the tail end of the original buddy and we end up with:

+---------------+               +---------------+---------------+
| single page   | offlined page | single page   | single page   |
| PFN_ORDER(pg) | not returned  | PFN_ORDER(pg) | PFN_ORDER(pg) |
| == 0          | to the heap   | == 0          | == 0          |
+---------------+               +---------------+---------------+

This series is based on the native test environment v3 for NUMA claims
https://lists.xen.org/archives/html/xen-devel/2026-05/msg01163.html

In turn, it is based on the NUMA claim sets v7 series:
https://lists.xen.org/archives/html/xen-devel/2026-05/msg00363.html

You can pull this series with all dependencies for review and test:
$ git pull git@gitlab.com:bernhardkaindl/xen.git offline-merge-tail-v1
$ make -C tools/tests/native TARGETS=offline-merge-tail test

Fixes: e4865c2315 ('Page offline support in Xen side')
Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>

Bernhard Kaindl (2):
  tools/tests/native: Test merging the tail after an offlined page
  xen/mm: Fix off-by-one stopping tail merge in reserve_offlined_page

 tools/tests/native/offline-merge-tail.c | 87 +++++++++++++++++++++++++
 xen/common/page_alloc.c                 |  4 +-
 2 files changed, 90 insertions(+), 1 deletion(-)
 create mode 100644 tools/tests/native/offline-merge-tail.c

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 28 14:58:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 14:58:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321302.1588186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wScBO-0003CU-VC; Thu, 28 May 2026 14:58:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321302.1588186; Thu, 28 May 2026 14:58:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wScBO-0003CN-SP; Thu, 28 May 2026 14:58:02 +0000
Received: by outflank-mailman (input) for mailman id 1321302;
 Thu, 28 May 2026 14:58:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wScBO-0003Aq-1h
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 14:58:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wScBN-002csK-Ez
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 16:58:01 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a1857f3-e002-0a2a0a5209dd-0a2a4509ce40-20
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 16:58:01 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a1857f8-2497-0a2a45090019-a0658308cd42-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 16:58:01 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id B510943317FA;
 Thu, 28 May 2026 10:56:56 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 1/2] tools/tests/native: Test merging the tail after an offlined page
Date: Thu, 28 May 2026 15:55:54 +0100
Message-Id: <3e4c306673c9c8825d09a7a15360f553d64cb430.1779980089.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1779980089.git.bernhard.kaindl@citrix.com>
References: <cover.1779980089.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1779980281-8876DA53-2DB5664B/0/0
X-purgate-type: clean
X-purgate-size: 6321

After offlining pages, reserve_offlined_page() returns healthy
spans of pages from the buddy it isolated the offlined pages
back to the free lists.

Naturally, it attempts to grow larger buddies, but due to an
off-by-one, this fails at the tail end of the span of pages.

The test seeds the heap with an order-2 buddy and offlines tail page 1:
+---------------+---------------+---------------+---------------+
| head page       tail page 1,    tail page 2     tail page 3   |
| PFN_ORDER(pg)   marked as to                                  |
| == 2            be offlined                                   |
+---------------+---------------+---------------+---------------+

After reserve_offlined_page(), the healthy pages should be:

+---------------+               +---------------+---------------+
| single page   | offlined page | head page       tail page     |
| PFN_ORDER(pg) | not returned  | PFN_ORDER(pg)                 |
| == 0          | to the heap   | == 1                          |
+---------------+               +---------------+---------------+

A trivial off-by-one error in the growth loop stops the growth loop
early, before the tail end of the original buddy, and we end up with:

+---------------+               +---------------+---------------+
| single page   | offlined page | single page   | single page   |
| PFN_ORDER(pg) | not returned  | PFN_ORDER(pg) | PFN_ORDER(pg) |
| == 0          | to the heap   | == 0          | == 0          |
+---------------+               +---------------+---------------+

Running the test:
    make -C tools/tests/native TARGETS=offline-merge-tail test

Test result:
| - Test assertion failed as expected at offline-merge-tail.c:63:
|   The pair of tail pages should be merged into an order-1 buddy

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 tools/tests/native/offline-merge-tail.c | 93 +++++++++++++++++++++++++
 1 file changed, 93 insertions(+)
 create mode 100644 tools/tests/native/offline-merge-tail.c

diff --git a/tools/tests/native/offline-merge-tail.c b/tools/tests/native/offline-merge-tail.c
new file mode 100644
index 000000000000..11c79e3ecc1b
--- /dev/null
+++ b/tools/tests/native/offline-merge-tail.c
@@ -0,0 +1,93 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Tests using offline_page() to verify reserve_offlined_page()
+ *
+ * The workflow tested here is offlining a free page:
+ *
+ * 1. offline_page() calls mark_page_offlined() to mark the page.
+ * 2. It calls reserve_heap_page() to find the containing buddy.
+ * 3. It calls reserve_offlined_page() to reserve the marked pages within
+ *    that buddy.
+ *
+ * reserve_offlined_page() then:
+ *
+ * 1. Removes the buddy, a 2^order group of pages, from the free list.
+ * 2. Finds size-aligned spans of healthy pages within it.
+ * 3. Rebuilds healthy buddies from those spans and
+ *    adds them back to the free list via page_list_add_scrub().
+ * 4. Moves offlined subpages to the offlined page lists.
+ *
+ * Another workflow marks an in-use page for offlining and then
+ * relies on free_heap_pages() to call reserve_offlined_page()
+ * when that page is eventually freed.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+#define TEST_ENABLE_XC_DOMAIN_C
+#include "harness/native.h"
+
+/* Test merging a surviving tail pair into an order-1 buddy. */
+static void test_merge_tail_pair(int start_mfn)
+{
+    struct page_info *pages = frame_table + start_mfn;
+    uint32_t status = 0;
+
+    /*
+     * Prepare a valid order-2 buddy (4 pages) with this layout:
+     * +---------------+-----------------+-----------------+----------------+
+     * | head page     | tail page 1     | tail page 2     | tail page 3    |
+     * +---------------+-----------------+-----------------+----------------+
+     */
+    test_page_list_add_buddy(pages, order2);
+
+    /* Mark the tail page 3 dirty to verify dirty-state preservation. */
+    pages[3].count_info |= PGC_need_scrub;
+    pages[0].u.free.first_dirty = 3;
+
+    /* Act: Offline the second page. */
+    ASSERT(offline_page(page_to_mfn(pages + 1), 0, &status) == 0);
+    ASSERT(status & PG_OFFLINE_OFFLINED);
+    ASSERT(FREE_PAGES == 3);
+
+    /*
+     * Offlining page 1 results in splitting the original order-2 buddy into:
+     * - pages[0] as an order-0 buddy
+     * - pages[1] is the offlined page, removed from the free list
+     * - pages[2] as an order-0 buddy
+     * - pages[3] as an order-0 buddy:
+     * +---------------+               +---------------+---------------+
+     * | single page   | offlined page | single page   | single page   |
+     * +---------------+               +---------------+---------------+
+     *
+     * Tail 2 & 3 are aligned, so they should be merged into an order-1 buddy:
+     * +---------------+               +---------------+---------------+
+     * | single page   | offlined page |   head page with a tail page  |
+     * +---------------+               +---------------+---------------+
+     */
+    CHECK(PFN_ORDER(&pages[0]) == 0, "Former head page, now order-0");
+    CHECK(PFN_ORDER(&pages[1]) == 0, "Offlined page should be order-0");
+    /* pages[0] and pages[1] were prepared as clean pages and still are. */
+    ASSERT(pages[0].u.free.first_dirty == INVALID_DIRTY_IDX);
+    ASSERT(pages[1].u.free.first_dirty == INVALID_DIRTY_IDX);
+
+    /* The tail pair is expected to be merged into one order-1 buddy. */
+    EXPECT_FAIL_BEGIN();
+    CHECK(PFN_ORDER(&pages[2]) == 1,
+          "The pair of tail pages should be merged into an order-1 buddy");
+    CHECK(pages[2].u.free.first_dirty == 1, "In tail buddy, the 2nd is dirty");
+    /* The tail page of the merged buddy does not use first_dirty. */
+    CHECK(pages[3].u.free.first_dirty == INVALID_DIRTY_IDX,
+          "Tail page of the merged buddy should not set first_dirty");
+    EXPECT_FAIL_END(3);
+}
+
+int main(int argc, char *argv[])
+{
+    const char *topic = "Integration test of offline_page()";
+    if ( !parse_args(argc, argv, topic) )
+        return EXIT_FAILURE;
+
+    init_page_alloc_tests();
+    RUN_TESTCASE("TMTP", test_merge_tail_pair, 4);
+    return test_complete();
+}
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 28 14:58:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 14:58:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321304.1588195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wScBX-0003b3-C8; Thu, 28 May 2026 14:58:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321304.1588195; Thu, 28 May 2026 14:58:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wScBX-0003aw-7Z; Thu, 28 May 2026 14:58:11 +0000
Received: by outflank-mailman (input) for mailman id 1321304;
 Thu, 28 May 2026 14:58:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wScBV-0003Wu-NY
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 14:58:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wScBV-00AwUB-4C
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 16:58:09 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a1857ec-2eae-0a2a0a5409dd-0a2a450be03e-36
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 16:58:09 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a185800-212f-0a2a450b0019-a065830891c0-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 16:58:08 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id D1E6F4336E49;
 Thu, 28 May 2026 10:57:03 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/2] xen/mm: Fix off-by-one stopping tail merge in reserve_offlined_page
Date: Thu, 28 May 2026 15:55:55 +0100
Message-Id: <b177222a50bb11647589f3143b8ba9771535b7d9.1779980089.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1779980089.git.bernhard.kaindl@citrix.com>
References: <cover.1779980089.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1779980289-2007BF3B-218EF66C/0/0
X-purgate-type: clean
X-purgate-size: 4855

reserve_offlined_page() reserves pages marked for offlining and
returns free buddies from the remaining healthy tail pages back
to the free list.

Consider an order-2 buddy (4 pages) with the following layout:
+---------------+---------------+---------------+---------------+
| head page       tail page 1,    tail page 2     tail page 3   |
| PFN_ORDER(pg)   marked as to                                  |
| == 2            be offlined                                   |
+---------------+---------------+---------------+---------------+

The expected result after removing tail page 1 and returning the
remaining healthy pages to the free list would be:

+---------------+               +---------------+---------------+
| single page   | offlined page | head page       tail page     |
| PFN_ORDER(pg) | not returned  | PFN_ORDER(pg)                 |
| == 0          | to the heap   | == 1                          |
+---------------+               +---------------+---------------+

A trivial off-by-one error in the growth loop stops the growth loop
early before the tail end of the original buddy and we end up with:

+---------------+               +---------------+---------------+
| single page   | offlined page | single page   | single page   |
| PFN_ORDER(pg) | not returned  | PFN_ORDER(pg) | PFN_ORDER(pg) |
| == 0          | to the heap   | == 0          | == 0          |
+---------------+               +---------------+---------------+

If the offlined page was in a much larger buddy, this would lead
to much more memory not available for higher order allocations
requiring the full tail end of the original buddy for allocation.

Fix the growth loop to correctly grow the buddy to the tail end
to make the full allocation unit available for future allocation
and update the test case to confirm the expected result and to
prevent regressions in the future.

Update the test case to verify the fix and prevent future regressions.

Fixes: e4865c2315 ('Page offline support in Xen side')
Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 tools/tests/native/offline-merge-tail.c | 8 +-------
 xen/common/page_alloc.c                 | 4 +++-
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/tools/tests/native/offline-merge-tail.c b/tools/tests/native/offline-merge-tail.c
index 11c79e3ecc1b..1893b23c7249 100644
--- a/tools/tests/native/offline-merge-tail.c
+++ b/tools/tests/native/offline-merge-tail.c
@@ -53,11 +53,7 @@ static void test_merge_tail_pair(int start_mfn)
      * Offlining page 1 results in splitting the original order-2 buddy into:
      * - pages[0] as an order-0 buddy
      * - pages[1] is the offlined page, removed from the free list
-     * - pages[2] as an order-0 buddy
-     * - pages[3] as an order-0 buddy:
-     * +---------------+               +---------------+---------------+
-     * | single page   | offlined page | single page   | single page   |
-     * +---------------+               +---------------+---------------+
+     * - pages[2] and pages[3] as an unaligned order-1 buddy
      *
      * Tail 2 & 3 are aligned, so they should be merged into an order-1 buddy:
      * +---------------+               +---------------+---------------+
@@ -71,14 +67,12 @@ static void test_merge_tail_pair(int start_mfn)
     ASSERT(pages[1].u.free.first_dirty == INVALID_DIRTY_IDX);
 
     /* The tail pair is expected to be merged into one order-1 buddy. */
-    EXPECT_FAIL_BEGIN();
     CHECK(PFN_ORDER(&pages[2]) == 1,
           "The pair of tail pages should be merged into an order-1 buddy");
     CHECK(pages[2].u.free.first_dirty == 1, "In tail buddy, the 2nd is dirty");
     /* The tail page of the merged buddy does not use first_dirty. */
     CHECK(pages[3].u.free.first_dirty == INVALID_DIRTY_IDX,
           "Tail page of the merged buddy should not set first_dirty");
-    EXPECT_FAIL_END(3);
 }
 
 int main(int argc, char *argv[])
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index d923ae02ade0..dd0b7c67008d 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1427,11 +1427,13 @@ static int reserve_offlined_page(struct page_info *head)
 
         next_order = cur_order = 0;
 
+        /* Attempt to grow the order (size) of the buddy as much as possible. */
         while ( cur_order < head_order )
         {
             next_order = cur_order + 1;
 
-            if ( (cur_head + (1 << next_order)) >= (head + ( 1 << head_order)) )
+            /* Do not grow to next_order if it would go beyond the buddy. */
+            if ( (cur_head + (1 << next_order)) > (head + ( 1 << head_order)) )
                 goto merge;
 
             /* Do not grow to next_order if cur_head is not aligned to it. */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 28 15:00:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 15:00:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321371.1588203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wScE8-0005h1-Ny; Thu, 28 May 2026 15:00:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321371.1588203; Thu, 28 May 2026 15:00:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wScE8-0005gu-L9; Thu, 28 May 2026 15:00:52 +0000
Received: by outflank-mailman (input) for mailman id 1321371;
 Thu, 28 May 2026 15:00:51 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wScE7-0005go-A5
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 15:00:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wScE6-008W3a-My
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 17:00:50 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a185891-5cb7-0a2a0a5109dd-0a2a450aebd6-30
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 17:00:50 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a1858a1-56b3-0a2a450a0019-a0658309e4a4-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 17:00:50 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 53CEC82553ED;
 Thu, 28 May 2026 10:59:35 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 1/2] tools/tests/native: Add test for offlined buddy head PFN_ORDER
Date: Thu, 28 May 2026 15:58:20 +0100
Message-Id: <347e2d21f12b3cd7b3fa6204cad978e4cf375bf3.1779980244.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1779980244.git.bernhard.kaindl@citrix.com>
References: <cover.1779980244.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1779980450-6FB5F8B7-9BA205A8/0/0
X-purgate-type: clean
X-purgate-size: 4958

Add a regression test that reproduces and documents an inconsistent
PFN_ORDER observed when the head page of a free buddy is offlined.

When the head of a free buddy is offlined it remains annotated with its
original PFN_ORDER while offline, even though the buddy has been split
into single pages. This mismatch is surprising and can hinder debugging,
although it does not currently cause functional failures.

What the test does:
- Seed a single order-1 buddy on the heap and offline the head page.
- Document the current failing behaviour by asserting (EXPECT_FAIL)
  that the offlined head's PFN_ORDER is (not) 0.
- Allocate the successor to prevent a merge, online the page, and
  verify that onlining restores the PFN_ORDER to 0.

How to run:
    make -C tools/tests/native TARGETS=offline-head-order test

Example failing output (current behaviour):
- Test assertion failed as expected at offline-head-order.c:40:
  Offlined former buddy head should be order0

This test is intended as a regression test and should be updated
with the same commit that resets the PFN_ORDER to 0 on offlining.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 tools/tests/native/offline-head-order.c | 87 +++++++++++++++++++++++++
 1 file changed, 87 insertions(+)
 create mode 100644 tools/tests/native/offline-head-order.c

diff --git a/tools/tests/native/offline-head-order.c b/tools/tests/native/offline-head-order.c
new file mode 100644
index 000000000000..5c666a319523
--- /dev/null
+++ b/tools/tests/native/offline-head-order.c
@@ -0,0 +1,87 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Tests using offline_page() to verify reserve_offlined_page()
+ *
+ * The workflow tested here is offlining a free page:
+ *
+ * 1. offline_page() calls mark_page_offlined() to mark the page.
+ * 2. It calls reserve_heap_page() to find the containing buddy.
+ * 3. It calls reserve_offlined_page() to reserve the marked pages within
+ *    that buddy.
+ *
+ * reserve_offlined_page() then:
+ *
+ * 1. Removes the buddy, a 2^order group of pages, from the free list.
+ * 2. Finds size-aligned spans of healthy pages within it.
+ * 3. Rebuilds healthy buddies from those spans and
+ *    adds them back to the free list via page_list_add_scrub().
+ * 4. Moves offlined subpages to the offlined page lists.
+ *
+ * Copyright (C) 2026 Cloud Software Group
+ */
+#define TEST_ENABLE_XC_DOMAIN_C
+#include "harness/native.h"
+
+static void test_offline_head_order(int start_mfn)
+{
+    struct page_info *page = frame_table + start_mfn;
+    uint32_t status = 0;
+
+    /* Seed a single order-1 buddy onto the heap. */
+    test_page_list_add_buddy(page, order1);
+    ASSERT(PFN_ORDER(page) == 1);
+    /* Offline the head page. */
+    ASSERT(offline_page(page_to_mfn(page), 0, &status) == 0);
+    ASSERT(status == PG_OFFLINE_OFFLINED);
+
+    /* Confirm the status of the page as status offlined. */
+    status = 0;
+    ASSERT(query_page_offline(page_to_mfn(page), &status) == 0);
+    ASSERT(status == PG_OFFLINE_STATUS_OFFLINED);
+
+    /* Check the order of the offlined head page. */
+    EXPECT_FAIL_BEGIN(); /* PFN_ORDER(page) should 0, but is still 1 */
+    ASSERT(PFN_ORDER(page) == 0);
+    EXPECT_FAIL_END(1);
+
+    /*
+     * Allocate the successor page of the offlined page. This prevents
+     * the normal successor page merge when the page is re-onlined below.
+     */
+    struct page_info *pg = alloc_domheap_pages(dom1, order0, 0);
+    ASSERT(pg == page + 1);
+    ASSERT(FREE_PAGES == 0);
+
+    /*
+     * The order of the split head page is still 1. Online the page again to
+     * confirm that onlining it causes the order to be corrected to 0.
+     */
+    ASSERT(PFN_ORDER(page) == 1);
+
+    /* Online the offlined former head page. */
+    ASSERT(online_page(page_to_mfn(page), &status) == 0);
+    ASSERT(status & PG_ONLINE_ONLINED);
+    ASSERT(FREE_PAGES == 1);
+
+    /*
+     * Confirm the order of the onlined former head page is 0, independently
+     * of the order returned by PFN_ORDER() for the offlined page. This should
+     * always be successful because page_offlined_list only contains single
+     * pages and online_page() ignores PFN_ORDER(pg) of the page. It calls
+     * free_heap_pages() passing the order hardcoded to 0. This causes it to
+     * pass the given order 0 to page_list_add_scrub(). This causes it to set
+     * the order of the page to 0 before it adds the page to the free list.
+     */
+    ASSERT(PFN_ORDER(page) == 0);
+}
+
+int main(int argc, char *argv[])
+{
+    const char *topic = "Test offlined head page to be updated to PFN_ORDER 0";
+    if ( !parse_args(argc, argv, topic) )
+        return EXIT_FAILURE;
+
+    init_page_alloc_tests();
+    RUN_TESTCASE("TOHP", test_offline_head_order, 2);
+    return test_complete();
+}
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 28 15:01:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 15:01:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321372.1588213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wScEM-0005yN-Vn; Thu, 28 May 2026 15:01:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321372.1588213; Thu, 28 May 2026 15:01:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wScEM-0005yG-SR; Thu, 28 May 2026 15:01:06 +0000
Received: by outflank-mailman (input) for mailman id 1321372;
 Thu, 28 May 2026 15:01:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wScEL-0005xo-J0
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 15:01:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wScEK-002dXk-W0
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 17:01:04 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a1858a3-e002-0a2a0a5209dd-0a2a450ad99c-40
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 17:01:04 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a1858b0-56b3-0a2a450a0019-a0658308c180-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 17:01:04 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id C43A04347081;
 Thu, 28 May 2026 10:59:59 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/2] xen/mm: reset PFN_ORDER for offlined buddy heads
Date: Thu, 28 May 2026 15:58:21 +0100
Message-Id: <9ffee13184b4499218fc80544bd3ee1a06aa2898.1779980244.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1779980244.git.bernhard.kaindl@citrix.com>
References: <cover.1779980244.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1779980464-729768B7-38A19B42/0/0
X-purgate-type: clean
X-purgate-size: 2985

Ensure offlined buddy head pages are annotated as order-0 pages.

When a buddy containing pages marked for offlining is processed,
reserve_offlined_page() rebuilds any surviving healthy buddies
and moves the offlined subpages onto the offlined lists.

If the buddy head itself is offlined it was previously left
annotated with the original buddy order even though it has
been split into a single page.

This has no functional impact as the order of an offlined
page is not used for any decision making and onlining, but
it is misleading when inspecting the page's metadata.

Reset PFN_ORDER(cur_head) to 0 for an offlined buddy head
when moving it to the offlined list so the page's stored
order reflects its actual size.

Also update the regression test to assert the consistent
behavior.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 tools/tests/native/offline-head-order.c | 8 --------
 xen/common/page_alloc.c                 | 7 +++++++
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/tools/tests/native/offline-head-order.c b/tools/tests/native/offline-head-order.c
index 5c666a319523..5239fc34518f 100644
--- a/tools/tests/native/offline-head-order.c
+++ b/tools/tests/native/offline-head-order.c
@@ -40,9 +40,7 @@ static void test_offline_head_order(int start_mfn)
     ASSERT(status == PG_OFFLINE_STATUS_OFFLINED);
 
     /* Check the order of the offlined head page. */
-    EXPECT_FAIL_BEGIN(); /* PFN_ORDER(page) should 0, but is still 1 */
     ASSERT(PFN_ORDER(page) == 0);
-    EXPECT_FAIL_END(1);
 
     /*
      * Allocate the successor page of the offlined page. This prevents
@@ -52,12 +50,6 @@ static void test_offline_head_order(int start_mfn)
     ASSERT(pg == page + 1);
     ASSERT(FREE_PAGES == 0);
 
-    /*
-     * The order of the split head page is still 1. Online the page again to
-     * confirm that onlining it causes the order to be corrected to 0.
-     */
-    ASSERT(PFN_ORDER(page) == 1);
-
     /* Online the offlined former head page. */
     ASSERT(online_page(page_to_mfn(page), &status) == 0);
     ASSERT(status & PG_ONLINE_ONLINED);
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index dd0b7c67008d..1801afc96a0a 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1485,6 +1485,13 @@ static int reserve_offlined_page(struct page_info *head)
         ASSERT(node_avail_pages[node] > 0);
         node_avail_pages[node]--;
 
+        /*
+         * All offlined pages are standalone pages: If this offlined page was
+         * the head of a higher-order buddy, we need to reset its order to 0:
+         */
+        if ( cur_head == head && head_order != 0 )
+            PFN_ORDER(cur_head) = 0;
+
         page_list_add_tail(cur_head,
                            test_bit(_PGC_broken, &cur_head->count_info) ?
                            &page_broken_list : &page_offlined_list);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 28 15:08:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 15:08:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321444.1588222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wScLL-00075x-Mc; Thu, 28 May 2026 15:08:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321444.1588222; Thu, 28 May 2026 15:08:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wScLL-00075q-J1; Thu, 28 May 2026 15:08:19 +0000
Received: by outflank-mailman (input) for mailman id 1321444;
 Thu, 28 May 2026 15:08:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wScLJ-00075k-Ov
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 15:08:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wScLJ-0017c2-5j
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 17:08:17 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a185a60-e002-0a2a0a5209dd-0a2a450c91b0-4
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 17:08:17 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a18587f-62f1-0a2a450c0019-a0658308e5b6-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 17:00:16 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 3BA744347080;
 Thu, 28 May 2026 10:59:11 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 0/2] xen/mm: Reset PFN_ORDER for offlined buddy heads
Date: Thu, 28 May 2026 15:58:19 +0100
Message-Id: <cover.1779980244.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1779980416-D996DCF5-70E04886/0/0
X-purgate-type: clean
X-purgate-size: 2422

This series fixes an inconsistency in the PFN_ORDER annotation for
pages that are offlined when they are the head of a free buddy.

When reserve_offlined_page() splits a buddy and moves offlined
sub-pages to the offlined lists, the former buddy head would be
left annotated with its original order even though it is now a
single page. While this does not cause functional regressions,
it is misleading.

Patch 1 adds a native regression test that reproduces and documents
the problem. The test seeds an order-1 buddy, offlines the head page,
verifies the tail becomes order-0, and checks the offlined head's order.

Patch 2 resets PFN_ORDER to 0 for offlined buddy heads inside
reserve_offlined_page() when moving the page to the offlined list
and updates the regression test to assert the corrected behaviour.

This series is based on the native test environment v3 for NUMA claims
https://lists.xen.org/archives/html/xen-devel/2026-05/msg01163.html

which in turn is based on the NUMA claim sets v7 series:
https://lists.xen.org/archives/html/xen-devel/2026-05/msg00363.html
Please help to review and ack it (It should be eligible for Xen 4.22)

Pull this series with all dependencies for review/test:

$ git pull git@gitlab.com:bernhardkaindl/xen.git offline-head-order

$ make -C tools/tests/native TARGETS=offline-head-order test |
      grep -C3 PG_OFFLINE_STATUS_OFFLINED

Log of checking the PFN_ORDER() of the offlined page before the fix is applied:

| offline-head-order.c:32: ASSERT(PFN_ORDER(page) == 1)
| offline-head-order.c:34: ASSERT(offline_page(page_to_mfn(page), 0, &status) == 0)
| offline-head-order.c:35: ASSERT(status == PG_OFFLINE_OFFLINED)
| offline-head-order.c:39: ASSERT(query_page_offline(page_to_mfn(page), &status) == 0)
| offline-head-order.c:40: ASSERT(status == PG_OFFLINE_STATUS_OFFLINED)
|
| - Test assertion failed as expected at offline-head-order.c:44:
|   Assertion failed: PFN_ORDER(page) == 0

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>

Bernhard Kaindl (2):
  tools/tests/native: Add test for offlined buddy head PFN_ORDER
  xen/mm: reset PFN_ORDER for offlined buddy heads

 tools/tests/native/offline-head-order.c | 79 +++++++++++++++++++++++++
 xen/common/page_alloc.c                 |  7 +++
 2 files changed, 86 insertions(+)
 create mode 100644 tools/tests/native/offline-head-order.c

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 28 15:27:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 15:27:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321496.1588248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wScdQ-0001rU-9h; Thu, 28 May 2026 15:27:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321496.1588248; Thu, 28 May 2026 15:27:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wScdQ-0001rN-5U; Thu, 28 May 2026 15:27:00 +0000
Received: by outflank-mailman (input) for mailman id 1321496;
 Thu, 28 May 2026 15:26:59 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wScdP-0001rH-9H
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 15:26:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wScdO-008aun-FI
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 17:26:58 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a185ea4-5cb7-0a2a0a5109dd-0a2a450cbd8e-40
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 17:26:58 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a185ec1-62f1-0a2a450c0019-a0658308c942-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 17:26:58 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id BA3EA4347264;
 Thu, 28 May 2026 11:25:52 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Teddy Astie <teddy.astie@vates.tech>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: [PATCH] tests: Improve 'make test': Run all build-time runnable tests
Date: Thu, 28 May 2026 16:25:01 +0100
Message-Id: <72ab1053a6d04f007f70620dace33c1e675353d5.1779981804.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1779982018-E156FCF5-822019D0/0/0
X-purgate-type: clean
X-purgate-size: 9550

Xen has a top-level 'make tests' target. Currently, it only runs
python tests which can run at build time.

Extend this make target to run all build-time runnable tests.

Add a target to run tests using 'make -C tools/tests run' to build
and run all tests that require libxentrl in a privileged domain
like Dom0 to run.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 Makefile                            |  1 +
 tools/Rules.mk                      | 16 +++++++++++++++-
 tools/tests/Makefile                |  4 ++--
 tools/tests/cpu-policy/Makefile     |  6 +++---
 tools/tests/domid/Makefile          |  6 +++---
 tools/tests/mem-claim/Makefile      |  9 +--------
 tools/tests/paging-mempool/Makefile |  9 +++++++++
 tools/tests/pdx/Makefile            | 13 +++----------
 tools/tests/rangeset/Makefile       |  6 +++---
 tools/tests/resource/Makefile       |  8 +++++++-
 tools/tests/tsx/Makefile            | 10 ++++++++++
 tools/tests/vpci/Makefile           | 12 +++++++-----
 tools/tests/x86_emulator/Makefile   |  6 +++---
 tools/tests/xenstore/Makefile       | 10 ++++++++++
 14 files changed, 77 insertions(+), 39 deletions(-)

diff --git a/Makefile b/Makefile
index 67b71ac3d4ff..21ab20e73508 100644
--- a/Makefile
+++ b/Makefile
@@ -92,6 +92,7 @@ build-docs:
 .PHONY: test
 test:
 	$(MAKE) -C tools/python test
+	$(MAKE) -C tools/tests test
 
 run-tests-%: build-tools-public-headers tools/tests/%/
 	$(MAKE) -C tools/tests/$* run
diff --git a/tools/Rules.mk b/tools/Rules.mk
index d9b9c740e964..2888d928ae3d 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -189,7 +189,7 @@ INSTALL_PYTHON_PROG = \
 %.opic: %.S
 	$(CC) $(CPPFLAGS) -DPIC $(CFLAGS) -fPIC -c -o $@ $< $(APPEND_CFLAGS)
 
-subdirs-all subdirs-clean subdirs-install subdirs-distclean subdirs-uninstall: .phony
+subdirs-all subdirs-clean subdirs-install subdirs-distclean subdirs-run subdirs-test subdirs-uninstall: .phony
 	@set -e; for subdir in $(SUBDIRS) $(SUBDIRS-y); do \
 		$(MAKE) subdir-$(patsubst subdirs-%,%,$@)-$$subdir; \
 	done
@@ -200,6 +200,20 @@ subdir-all-% subdir-clean-% subdir-install-% subdir-uninstall-%: .phony
 subdir-distclean-%: .phony
 	$(MAKE) -C $* distclean
 
+subdir-run-%: .phony
+	$(MAKE) -C $* run
+
+subdir-test-%: .phony
+	$(MAKE) -C $* test
+
+ifeq ($(CC),$(HOSTCC))
+define RUN_TARGETS_IF_CC_IS_HOSTCC
+set -ex; for test in $? ; do LD_LIBRARY_PATH=$(DISTDIR)/install$(libdir) ./$$test ; done
+endef
+else
+RUN_TARGETS_IF_CC_IS_HOSTCC = $(warning $(HOSTCC)!=$(CC), will not run targets)
+endif
+
 no-configure-targets := distclean subdir-distclean% clean subdir-clean% %-dir-force-update
 ifeq (,$(filter $(no-configure-targets),$(MAKECMDGOALS)))
 $(XEN_ROOT)/config/Tools.mk:
diff --git a/tools/tests/Makefile b/tools/tests/Makefile
index 2b7af7606992..c2c9ff68111b 100644
--- a/tools/tests/Makefile
+++ b/tools/tests/Makefile
@@ -18,5 +18,5 @@ SUBDIRS-$(CONFIG_X86) += x86_emulator
 endif
 SUBDIRS-$(CONFIG_X86) += native
 
-.PHONY: all clean install distclean uninstall
-all clean distclean install uninstall: %: subdirs-%
+.PHONY: all clean install distclean uninstall run test
+all clean distclean install uninstall run test: %: subdirs-%
diff --git a/tools/tests/cpu-policy/Makefile b/tools/tests/cpu-policy/Makefile
index d8e4d222f4e4..d3f7ed5c14ec 100644
--- a/tools/tests/cpu-policy/Makefile
+++ b/tools/tests/cpu-policy/Makefile
@@ -15,9 +15,9 @@ endif
 .PHONY: all
 all: $(TARGETS)
 
-.PHONY: run
-run: $(TARGETS)
-	./$<
+.PHONY: run test
+run test: $(TARGETS)
+	$(call RUN_TARGETS_IF_CC_IS_HOSTCC)
 
 .PHONY: clean
 clean:
diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
index 753129029ed9..2a675274380f 100644
--- a/tools/tests/domid/Makefile
+++ b/tools/tests/domid/Makefile
@@ -39,9 +39,9 @@ endef
 .PHONY: all
 all: $(TESTS)
 
-.PHONY: run
-run: $(TESTS)
-	set -e; $(foreach t,$(TESTS),./$(t);)
+.PHONY: run test
+run test: $(TESTS)
+	$(call RUN_TARGETS_IF_CC_IS_HOSTCC)
 
 .PHONY: clean
 clean:
diff --git a/tools/tests/mem-claim/Makefile b/tools/tests/mem-claim/Makefile
index 5c090639553b..961e6497fdc6 100644
--- a/tools/tests/mem-claim/Makefile
+++ b/tools/tests/mem-claim/Makefile
@@ -11,14 +11,7 @@ all: $(TARGETS)
 #  Can also be called with "make run-tests-mem-claim" from the toplevel.
 .PHONY: run
 run: $(TARGETS)
-ifeq ($(CC),$(HOSTCC))
-	set -e;             \
-	for test in $? ; do \
-		./$$test ;  \
-	done
-else
-	$(warning HOSTCC != CC, will not run test)
-endif
+	$(RUN_TARGETS_IF_CC_IS_HOSTCC)
 
 # The tests in this directory need to run in a privileged domain (Dom0)
 # with libxenctrl and a matching the hypervisor to test running it.
diff --git a/tools/tests/paging-mempool/Makefile b/tools/tests/paging-mempool/Makefile
index 7444d81b8460..772af6e503c0 100644
--- a/tools/tests/paging-mempool/Makefile
+++ b/tools/tests/paging-mempool/Makefile
@@ -6,6 +6,15 @@ TARGET := test-paging-mempool
 .PHONY: all
 all: $(TARGET)
 
+run: $(TARGET)
+	$(call RUN_TARGETS_IF_CC_IS_HOSTCC)
+
+# The tests in this directory need to run in a privileged domain (Dom0)
+# with libxenctrl and a matching the hypervisor to test running it.
+# Therefore, they don't run with the native test target for build-time tests.
+.PHONY: test
+test:
+
 .PHONY: clean
 clean:
 	$(RM) -- *.o $(TARGET) $(DEPS_RM)
diff --git a/tools/tests/pdx/Makefile b/tools/tests/pdx/Makefile
index 3c431d7c7822..2001a957c4bd 100644
--- a/tools/tests/pdx/Makefile
+++ b/tools/tests/pdx/Makefile
@@ -6,16 +6,9 @@ TARGETS := test-pdx-mask test-pdx-offset
 .PHONY: all
 all: $(TARGETS)
 
-.PHONY: run
-run: $(TARGETS)
-ifeq ($(CC),$(HOSTCC))
-	set -e;             \
-	for test in $? ; do \
-		./$$test ;  \
-	done
-else
-	$(warning HOSTCC != CC, will not run test)
-endif
+.PHONY: run test
+run test: $(TARGETS)
+	$(call RUN_TARGETS_IF_CC_IS_HOSTCC)
 
 .PHONY: clean
 clean:
diff --git a/tools/tests/rangeset/Makefile b/tools/tests/rangeset/Makefile
index e3bfce471cd3..588b87ceda86 100644
--- a/tools/tests/rangeset/Makefile
+++ b/tools/tests/rangeset/Makefile
@@ -6,9 +6,9 @@ TARGET := test-rangeset
 .PHONY: all
 all: $(TARGET)
 
-.PHONY: run
-run: $(TARGET)
-	./$<
+.PHONY: run test
+run test: $(TARGET)
+	$(call RUN_TARGETS_IF_CC_IS_HOSTCC)
 
 .PHONY: clean
 clean:
diff --git a/tools/tests/resource/Makefile b/tools/tests/resource/Makefile
index 09d678fffe3e..9101ff7b3db7 100644
--- a/tools/tests/resource/Makefile
+++ b/tools/tests/resource/Makefile
@@ -8,7 +8,13 @@ all: $(TARGET)
 
 .PHONY: run
 run: $(TARGET)
-	./$(TARGET)
+	$(call RUN_TARGETS_IF_CC_IS_HOSTCC)
+
+# The tests in this directory need to run in a privileged domain (Dom0)
+# with libxenctrl and a matching the hypervisor to test running it.
+# Therefore, they don't run with the native test target for build-time tests.
+.PHONY: test
+test:
 
 .PHONY: clean
 clean:
diff --git a/tools/tests/tsx/Makefile b/tools/tests/tsx/Makefile
index 0bb7e7010347..0225f30a60ba 100644
--- a/tools/tests/tsx/Makefile
+++ b/tools/tests/tsx/Makefile
@@ -6,6 +6,16 @@ TARGET := test-tsx
 .PHONY: all
 all: $(TARGET)
 
+.PHONY: run
+run: $(TARGET)
+	$(call RUN_TARGETS_IF_CC_IS_HOSTCC)
+
+# The tests in this directory need to run in a privileged domain (Dom0)
+# with libxenctrl and a matching the hypervisor to test running it.
+# Therefore, they don't run with the native test target for build-time tests.
+.PHONY: test
+test:
+
 .PHONY: clean
 clean:
 	$(RM) -- *.o $(TARGET) $(DEPS_RM)
diff --git a/tools/tests/vpci/Makefile b/tools/tests/vpci/Makefile
index 28b600933291..ceefdd97f43a 100644
--- a/tools/tests/vpci/Makefile
+++ b/tools/tests/vpci/Makefile
@@ -8,11 +8,13 @@ all: $(TARGET)
 
 .PHONY: run
 run: $(TARGET)
-ifeq ($(CC),$(HOSTCC))
-	./$(TARGET)
-else
-	$(warning HOSTCC != CC, will not run test)
-endif
+	$(call RUN_TARGETS_IF_CC_IS_HOSTCC)
+
+# The tests in this directory need to run in a privileged domain (Dom0)
+# with libxenctrl and a matching the hypervisor to test running it.
+# Therefore, they don't run with the native test target for build-time tests.
+.PHONY: test
+test:
 
 $(TARGET): vpci.c vpci.h list.h private.h main.c emul.h
 	$(CC) $(CFLAGS_xeninclude) -include emul.h -g -o $@ vpci.c main.c
diff --git a/tools/tests/x86_emulator/Makefile b/tools/tests/x86_emulator/Makefile
index 8210e83345e3..75359df9e5b5 100644
--- a/tools/tests/x86_emulator/Makefile
+++ b/tools/tests/x86_emulator/Makefile
@@ -7,9 +7,9 @@ TARGET := test_x86_emulator
 .PHONY: all
 all:
 
-.PHONY: run
-run: $(TARGET)
-	./$(TARGET)
+.PHONY: run test
+run test: $(TARGET)
+	$(call RUN_TARGETS_IF_CC_IS_HOSTCC)
 
 # Add the core emulator to the build
 vpath x86_emulate/%.c $(XEN_ROOT)/xen/arch/x86
diff --git a/tools/tests/xenstore/Makefile b/tools/tests/xenstore/Makefile
index 2ee4a1327e75..3ff9b36297be 100644
--- a/tools/tests/xenstore/Makefile
+++ b/tools/tests/xenstore/Makefile
@@ -10,6 +10,16 @@ all: build
 .PHONY: build
 build: $(TARGETS)
 
+.PHONY: run
+run: $(TARGET)
+	$(call RUN_TARGETS_IF_CC_IS_HOSTCC)
+
+# The tests in this directory need to run in a privileged domain (Dom0)
+# with libxenctrl and a matching the hypervisor to test running it.
+# Therefore, they don't run with the native test target for build-time tests.
+.PHONY: test
+test:
+
 .PHONY: clean
 clean:
 	$(RM) -- *.o $(TARGETS) $(DEPS_RM)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu May 28 16:11:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 16:11:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321559.1588256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSdKb-0000cX-I1; Thu, 28 May 2026 16:11:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321559.1588256; Thu, 28 May 2026 16:11:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSdKb-0000cQ-F5; Thu, 28 May 2026 16:11:37 +0000
Received: by outflank-mailman (input) for mailman id 1321559;
 Thu, 28 May 2026 16:11:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <VictorM.Lira@amd.com>) id 1wSdKZ-0000cK-OG
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 16:11:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSdKY-00HHql-Ir
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 18:11:34 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <VictorM.Lira@amd.com>)
 id 6a186925-bab6-0a2a0a5309dd-0a2a4506a978-30
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 18:11:34 +0200
Received: from [40.93.201.4]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <VictorM.Lira@amd.com>)
 id 6a186934-7371-0a2a45060019-285dc9045cfa-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 18:11:33 +0200
Received: from MN2PR16CA0047.namprd16.prod.outlook.com (2603:10b6:208:234::16)
 by MN2PR12MB4422.namprd12.prod.outlook.com (2603:10b6:208:265::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Thu, 28 May
 2026 16:11:26 +0000
Received: from BN3PEPF0000B06B.namprd21.prod.outlook.com
 (2603:10b6:208:234:cafe::98) by MN2PR16CA0047.outlook.office365.com
 (2603:10b6:208:234::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.13 via Frontend Transport; Thu, 28
 May 2026 16:11:26 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN3PEPF0000B06B.mail.protection.outlook.com (10.167.243.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.92.0 via Frontend Transport; Thu, 28 May 2026 16:11:25 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Thu, 28 May
 2026 11:11:25 -0500
Received: from [10.17.28.18] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41 via Frontend
 Transport; Thu, 28 May 2026 11:11:25 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IvnL2s+t6LdXHOWR/DX+djkRR144qi42l8D6QeE5oiKLZK8DSqMI+h2+iBHKPgpQ8WnlrzciLwwZgGlUs+7JiS15sYXV1RZUGmjWtqf7V1vP2hrJg06PP0VPTTAJxc6GRv6uWcSw5O/yEQm6g8nJdRf8RcH3V1xbQPenPzPEZaWVWe9VMcTdHlwA22lbCZV91J4lgUhbmsZQt6EyO3CtL2Fwo9ic4mgLU2OyQVsTB9634vRC5MY6rM13ApJ6s+zZtws6gBEBkFYtI76YHIT+s8rhe7VNhjMdhYi5saHVHGBRJIEu7l9beCQPmJjEvpEo+UFBaJXaZbi/sDWnYiPlNA==
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=WWTaBrlPdk+Kem4y7pQkIR07B4zzAEMQGdVzpny1AX4=;
 b=byRGz1MSoID2J8gMog1OrNG2WOVEQgHYLynBS8B2sdwWL5fUp0mDY4X5r66nLnpm3wOb+gWKK6sWiW2I3B0qM4TSsQRQCFiyxLSZ/CkFDAjiUno/omfBxUW5NJJOVMhQTr/KKn/WxyWTgSRasU3ekou2cHw2IIOfsgIsRjCQHDJpYrFD/7OgitTGeXOUR/oXZ9JJa1GB2gHA54m3/UK0JcdoQ1efhBtiM0ZQwAM6pESZrwdmEPZVkDZmVwhDknwcC5bcCKJOSVTyNqdN7p5tUH5WshHDBN+/C/0jR0xwplf04ViNnFOL9KdlOt6AjWKEaG0hEKoCpGG0PoLFK9BtEw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=vates.tech 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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WWTaBrlPdk+Kem4y7pQkIR07B4zzAEMQGdVzpny1AX4=;
 b=rfOOZca2RHww07KCG3qhPU/tcz7xinK5s+lwUO7GARRofpnHiUg6B8aXu21gQHrgoAIX+VxiEiRXoUUlSI9jHyt+u9k8HDNbMDiO22eIYxbnG2MFLh5/ebHPmZS+A36Ur8xDI6Cg7/KOKK4ATUMZXIylNyLJ5VHuJtjjbJKN6iQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <1715c407-4915-4c40-ae1b-9e815a8ab4f2@amd.com>
Date: Thu, 28 May 2026 09:11:19 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v1] automation: edit rules for analyze jobs
To: Anthony PERARD <anthony.perard@vates.tech>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	<xen-devel@lists.xenproject.org>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>
References: <20260520225820.31550-1-victorm.lira@amd.com>
 <00d987d3-6a9c-440e-beb8-6587a3fd1d9b@citrix.com>
 <751c1684902e41fdd9d29b71670b49f0@bugseng.com>
 <1779452642.8631fc262581453bbf619ec5b2062170.19e4fa4847a000f373@vates.tech>
Content-Language: en-US
From: "Lira, Victor M" <victorm.lira@amd.com>
In-Reply-To: <1779452642.8631fc262581453bbf619ec5b2062170.19e4fa4847a000f373@vates.tech>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B06B:EE_|MN2PR12MB4422:EE_
X-MS-Office365-Filtering-Correlation-Id: 5c6647e8-48d3-4d12-8d1f-08debcd3c4df
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|56012099006|6133799003|11063799006|4143699003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	qa7nApOq/UkdCUfBVsc4Obk9h4tUxy6tZMjhCAoWh01tP0OECbthR+nwiwvrVdfhhciT3eLQhAiVljSli5pzqm1iuFumrgW1tAiwvHf7rqpQZICjuULzaTF/RR4Ra+7ar3BWu5qzhU2E7qMk0sPCgpEzjuwi3MQs/2EIHivMAypFxIRbLlfKXKshn/KDWCMZHwaEsCe7Qt/wc8wol7p7JdMaCpmpCi3geirqw/6P08G5nSIyxRIASypJ4+O3mywIADZX9+MGtSzle18OfcMnwCN4+GfXVYk3fW8XzNFI5YcAi7qYkBY0c7EAcyAjPKeRm34hsIH9jdBLWk0Gg4RCS5bifmMYt0bLmQ8haJdC7jSnCGFdR4Cq/COjyyxSIsp+4E6dxB1voWK1X0vFrIQYiRnPF2ttIdxVGEAI/Is/vlLPIJfbTY5H6ZtJ+TbDamCRy28N6IRKfH2K3FYu6kR8v6qyF7eFkCULqy3dhtvEeh1HTVqDc5ATRa8wc+tdplCwgJAxV6iqVfC9f+j03iZI5mOADHjAGQApxwV6AC+1dNJr05fXrQnXtcgolyStbSJvO4i42XlicChsyQ4wlzVQwcuI3/a5qXKXcVXnreXX8ckhqBtG1UcrHUnyk9suqWBlD9mtN1Ozyh6uPX/hTIthyJt3URjiGa9yhjJdOzyr4mXOVvJ2qQhQKMOJqJLHwEm4AYZHMjPGLhfRQJq+MNDKyOCMlx52lP31nDDQ1ny8Q4g=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(56012099006)(6133799003)(11063799006)(4143699003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	n74M5w9YwGc+g1WwdQGi0XCYkgVeq7+b+umHhotv5HivHuBnignH7RkMv/ePc6WY1EvVrSkWbMg/uAwdLUEq5rLrKENjsuy2OdybuYQr+siy8IQ8NtYvILpmaQuWXNZNnT71z+ibmxb4MMzcs9P/107Z9zEHSLJIdGAJ4ZY9tNbICWjkyuj+LScztthPNcxBswsS0c82xYPIvKmaGAbY36YDbJSeSVhQKF1ccEkYY7+VAX2uNX1mDs0mAJ63DLsAOFGcwF0n1VDprOALfBYdPObOKCIxbavYTiaY4lZrj2vzNYpBRN7VQ3BjqQCqQS9CzpU1IA56NIGPbswLXXPO91sZPxMWVGdhMXO/qDC/PGvfQborcVIBn+gA6RmybzAzmfXK2uC2Vk4xMYT4iDvr7p6f5FuRmcgcIS/nBVACX1vu8Q9EAUMnZ2PgqfBfq0Z1
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 16:11:25.9866
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5c6647e8-48d3-4d12-8d1f-08debcd3c4df
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B06B.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4422
X-purgate-ID: tlsNG-16d1c6/1779984694-85D6AD75-05A96275/0/0
X-purgate-type: clean
X-purgate-size: 680

On 5/22/2026 5:24 AM, Anthony PERARD wrote:
> The variable isn't set in the runner (runners variable wouldn't be taken
> into account here anyway). The variable is set for the group
> "xen-project/hardware", so for every repo under it.
is this variable ECLAIR_SAFETY meant to force enable the jobs as I 
thought, or is the intention to disable the safety jobs outside 
xen-project/hardware ?

in the second case we can do

     eclair-x86_64-amd:
         ...
         rules:
         - if: $CI_PROJECT_PATH !~ /^xen-project\/hardware\/.*$/
           when: never
         - !reference [.eclair-analysis:triggered, rules]

-- 
Victor




From xen-devel-bounces@lists.xenproject.org Thu May 28 17:22:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 17:22:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321606.1588293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSeQV-0002GT-Ko; Thu, 28 May 2026 17:21:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321606.1588293; Thu, 28 May 2026 17:21:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSeQV-0002GM-HY; Thu, 28 May 2026 17:21:47 +0000
Received: by outflank-mailman (input) for mailman id 1321606;
 Thu, 28 May 2026 17:21:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wSeQT-0002GG-IL
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 17:21:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSeQS-00FayF-R2
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 19:21:44 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a187979-bab6-0a2a0a5309dd-0a2a45039dde-32
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 19:21:43 +0200
Received: from [52.101.70.45]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a1879a7-672d-0a2a45030019-3465462da28c-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 19:21:43 +0200
Received: from CWLP265CA0432.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:1d7::11)
 by AS4PR08MB7853.eurprd08.prod.outlook.com (2603:10a6:20b:51c::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Thu, 28 May
 2026 17:21:40 +0000
Received: from AM3PEPF00009B9D.eurprd04.prod.outlook.com
 (2603:10a6:400:1d7:cafe::2) by CWLP265CA0432.outlook.office365.com
 (2603:10a6:400:1d7::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.14 via Frontend Transport; Thu, 28
 May 2026 17:21:39 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF00009B9D.mail.protection.outlook.com (10.167.16.22) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.5 via
 Frontend Transport; Thu, 28 May 2026 17:21:39 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by VI0PR08MB11844.eurprd08.prod.outlook.com (2603:10a6:800:315::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Thu, 28 May
 2026 17:20:34 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.21.0071.011; Thu, 28 May 2026
 17:20:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=HKwlmi8Au4MW132SE1SpwZXDnD0iqWjxAgm3FYV36DRVrpVsGRal8RVBcXSDam/Sy2vlXVRl9Dr40O4/WN+ZtEEzMD85i+5llK/UnGSOZtPr/geUHWYwNBSiOtRLPnuRvSTMr1DKOpwHRRDr86vs8x9h+AWQpl1Ygeo/M86NfE6/peU3+LlkNayyzyUeIkQmzJwDjK39iAo61m5ed06IS4eocQodbO53e3FtFz0FgK95ihv4iEZvaKjE/qmYoJFgthWCu9+POeWe70N0H8av2LZkxnYX58X6PNwNqWTkoodxBoLPbPUdMLpTO0AUarCt/8AGWUJlonz7Q83G/kibQg==
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=3sS+TX08sKPRbKQUcV+ms7cXCEVf9Qd5pAdV+n50JZk=;
 b=aCmD3UdksNR05eR3S1Qy1KchDcTO80HirdpgMuCfesagWasg12tMDuysWx/g3G83tMMtPJbgW77CQvmXRiyfSHF4wyinknipmjxWFR76I13IYG/3odM9mxmo8ajGrLu+R09wIIvkgGA+2oSNGVIUJ+/tRn7h5wuOswT+loLZEoa5bTDG8SuxULWhLWimjz22MknGALDWZiCpfiEXaFF1MIjkwQ3ULYvpZSpHIKWYufFqEhmSoy/CeIwnWYFFvHZS/YQXmhcaeOXYbhtHHlXw7TgHUH19uOK4Z28Lyw3GPRqba0puo+OgpilT1ioIloxjN7YnnN71HXyxC5qvkdnZqw==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3sS+TX08sKPRbKQUcV+ms7cXCEVf9Qd5pAdV+n50JZk=;
 b=kn4PyrCx2IBTkW59zOpbTRMiML9ZsiRJinpdQwxXyW7tMJ7eJBuaDJEr/v/5SYnV6oBdoPT4kPpKbIN+R+uOH/4vY0DseqxR4zFLDpClRunUGEcZNk29HiXJMBMAoSGoiPdoDzjqWAySgg1yCj6icWAqbgPQJEO31wSNuPv4pG4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AKQeK7Z+BKBLfPKwFdkjYlFMZa5TlZqKWjKlOpxYvhvciTT3dYgaPubtvgvx7ZxVA1IwzfwoHRbaVKTGbBSmggH78pSL106zZWuWXaiQAzWatUhJNtEWhJJ4iiq3rvOhS+WVMxbe2z07HXIATadK7W0+rAYM0Fo54N3Dtz+sf8lWbm0eBCob88my5Skyak/2uIYKZeKSKGi/3RrIEnMGuuGu5W37wKav+zlD+2TWRygnD2oCiXvRq3Ft7d7rxNuqyOs77GIs52DELCMqhYTW6KBYn44CkkGYmSMvRgDeSpsRw48kG7zMI46fR0e3Op+b/15TWS396H7OFZyrDyr8zQ==
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=3sS+TX08sKPRbKQUcV+ms7cXCEVf9Qd5pAdV+n50JZk=;
 b=YieaLGuOVf2M06yVg7rXUcCLN+gIceg9jqirBGKU+2XcY3u2xwa0lGYW08k/KNlsqq5Y3I3sunW6yN1VlBMJBt+h2Z54ZdklefN/LVKZJU0AFxb3wSolzFCdahnXSf0mXIWNr/w9oMCkF5emiQ3RJMr4qaTbiQ6Qwplj0lAfmC8N0QZGl7QpN2/JmpHRZUQZ356A7jZrBg4D+MTVB4nu52X8xTpd2wQWdXz1SFdAB62M2UkajIdLjog3pPSiuIVbif8MtPjRSXde+VQ1z0IIN+wmDMP+MEFWBoJO/qaY28/azuxEDXvJCgtZBWMZxOywrS/GCQbymbAKB9/nEWNrBg==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3sS+TX08sKPRbKQUcV+ms7cXCEVf9Qd5pAdV+n50JZk=;
 b=kn4PyrCx2IBTkW59zOpbTRMiML9ZsiRJinpdQwxXyW7tMJ7eJBuaDJEr/v/5SYnV6oBdoPT4kPpKbIN+R+uOH/4vY0DseqxR4zFLDpClRunUGEcZNk29HiXJMBMAoSGoiPdoDzjqWAySgg1yCj6icWAqbgPQJEO31wSNuPv4pG4=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v10 04/13] xen/arm: gic-v3: Implement GICv3 suspend/resume
 functions
Thread-Topic: [PATCH v10 04/13] xen/arm: gic-v3: Implement GICv3
 suspend/resume functions
Thread-Index: AQHc6UoG/i1LQn2xYkyWh9qeWcElZrYjud0A
Date: Thu, 28 May 2026 17:20:34 +0000
Message-ID: <4A39B5D4-8D51-4499-8293-95E3CCB250F5@arm.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
 <67f47fe59e2d3f66583c3a7ae82db036d57dc07a.1779385072.git.mykola_kvach@epam.com>
In-Reply-To:
 <67f47fe59e2d3f66583c3a7ae82db036d57dc07a.1779385072.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.600.51.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|VI0PR08MB11844:EE_|AM3PEPF00009B9D:EE_|AS4PR08MB7853:EE_
X-MS-Office365-Filtering-Correlation-Id: dab5ef57-df19-48d1-b2ee-08debcdd946a
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|11063799006|56012099006|4143699003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info-Original:
 SpZfVbwI7lkof/hWQMf32IddxQj8qXlkPSs2ZNLHdUUGkinl8yf5G53yU4tJyo6/b+EJ5kgi5RiTg9E2ZQkgqnAfQRo1DkR0dssFXIuoQPtmcmwdKf6fTeKLozi5lS/HQ/bfGo/BpSTNGUY4XVc7uTlsJ5JGhnw0E/J345kFy3fUGW/uV3N2+hTo/wMAGxvHIPgwm9xj/g/qZku1kLLGKmIF9TlnqNIU6Yzqtn6FHeJB3VlFjI2kc3GZTun1bUS+1/9wPR72d6vk5VzqifUJFwjzF29qcRh1GVUbuFy9rmmTFdvT/NuLnjdK89FEn5/qqSOhJ3S/Ev1QCDUM9oEldu/pJmNcKgxKSwlK5O82iMCjfWUpZZGMQllCyka0Uyo0MAGWTXbl5yO+JhItLPm279mJ4PPntnEC1F7o1yCkfwYFYFDMzGdmjrfofjkR+M/Bl2EX3vws+FbILfiWsOTfY5lmOtVN8M2FE6ojBF/6j5hvvHbaet+Xt0kUb2xwy/hHXefIJ0VkVyMnJQGudxdfPS3+CliEy9ZmEPqpIddCXXKFCttNndNEa9ZE6OAhvpW4I9RH2Lqe3Ghh4wiXM3gpKRXuQkqKSXCn/iUgAuv15/kceVrEtyQkY97erPqzu0Wz1EQ8Ow2WySzehjN30Zv21sJFSudTcQlhRN6EELhjPQ0XmwJ3obRlkXF2U716HE2aXEwacSIyabH2eamu6Y4m1F4g2j0RkR7n4FRVf63QbdloCSHinazJ92RnzXT60T5s
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(11063799006)(56012099006)(4143699003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <26AFA89EF52E7A4383DEF4278B4535BC@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 McYowA/hXssvl+2+ffumNP0VUpH4dHkwOnjDqBUNyNnQgevNKraRm8yTptAcukHbKzvgxOYPPF2/FDbhC/pjca+7SUsNnOPp/NK+ylz2DsHe3a5YbqN8INRp/MaKzPRbE4DQvRbE11JVbAyEgcHHz+m+PanXAHxfQLv9a66WGMXWlnDV2XAwBr5GtHTf6d1OkWcQ6uEzuRjQrFDleOEP+VM4pHN7OTl/IcKmHv32M7q+rQGUfTKwHYSk2J8VYqIEquAMUOTH1QSoeiSaepLtk8syW2H7JVAzHdB7HCH5N5IhlVtu0lm78/a4QktWbja5bR28jg1xcJm2bHx2mcugNQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB11844
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF00009B9D.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	af0dea84-7d66-417e-e06f-08debcdd6d93
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|35042699022|1800799024|36860700016|376014|82310400026|22082099003|18002099003|11063799006|4143699003|56012099006;
X-Microsoft-Antispam-Message-Info:
	DpXDD/6e/FPR++l9Je9j/er1+GJUqv+F00h6lmHHK9r53odtHIXIofvME/4zBvrKF/oIOf9MulY0B99MGp0HpEHd/HhidQ+a8FjvLa8d+MX6YPlkdFncVRImbwAsBL17koQmoCgeyAm7TAxLFhxc8WEaGmuZTUkysVeZXIBOR9o0fbo+ga+Elyn+b2DWWJNvYamKH1zwaDI8ZrAGplryg/tnQkMeDTfXXaKEGU0A9pLUzfkz/Az8lpoZx/tqpu6yFGpJ5C7pnizljI06V7ZrIrqUP6MUrIDb2Y9hetU02AeY+T9oG4/edDDx+OOAVFKozjZuJstNbqo3AXmHbqp4fYf14JwI9vP9f/tGdK9VaDp3wLJ4Iyjn3mLqUID+XEEz978Kd98ywNfIntghhbRNdnW5WtnjsaxxBmrnJohdLJk8y2op2qfRD35hZp77FuUdiOAsGDoSamb9dXMLOf/eAyTDAGXCY1arEjrpmP6Ss+IKpddoj/zSOC3CWZmGMfIzaSct7QaTXLIR2lETlYa3CcxOHh6WqHHxG/mDWeKeN1R82Yup7MvyLU5/AWrv9ko7+dhW6aZUKHZFpcoYWreVmcwU1P3KDrYh4Ff905XtA+Ssa578kE2juLaSpZj0W6qJhZQYwnPjD5BmSJGgwFEFx80NBh4ZmlcLUTdqb4mxdETesCHl18YX29zfjYUgWYIA6CwnFAUi2Zy7oNFZCa5is2s9IOGzqX98f3qyjQ1NIgI=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(35042699022)(1800799024)(36860700016)(376014)(82310400026)(22082099003)(18002099003)(11063799006)(4143699003)(56012099006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	zzscplLBjd9FAEmNXY5M2qPiJ751XBtWKy0xuE+ZGyW2iZ01u7s9en03kW/TzXgxKxrOhZHqT2vLSnMr3ye15/ykXOXsH2yxZ8mOuj/ceJzp27d2jLeII6SZpNXnT/P7gZEZ/lWCarEPedoGJooyXOGU5O8pgbG7kUe960G7Ufi3yR7cYZezTY+JLdYiCVXSasQXyN5zu1OcmsbaGq9BRcVj+dhFoaS563a+78Oi5bKL6hV2XWP+vHMovNx+Jv/EIdj1m2i9DtEjc7ZvLTYLeOZxHEn0J9OdR6QHISrKnii/py8ju/19LoTe/mUk+i6Jtb4GHOaN5vVJOqlnynLkYH0iaMGfA2rpHjGPLhHz6Gk7ENaa4YdKK1KLgemlnuLvCfErqN1Ezsr365/ZGqsmr6aVfin6STOBKFfw2SfGj27YoEpBXhOAHHEzc9KnpJ3k
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 17:21:39.6018
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dab5ef57-df19-48d1-b2ee-08debcdd946a
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF00009B9D.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7853
X-purgate-ID: tlsNG-33051d/1779988903-3A378938-D325A958/0/0
X-purgate-type: clean
X-purgate-size: 901

Hi Mykola,

> On 21 May 2026, at 18:45, Mykola Kvach <xakep.amatop@gmail.com> wrote:
>=20
> From: Mykola Kvach <mykola_kvach@epam.com>
>=20
> System suspend may lead to a state where GIC would be powered down.
> Therefore, Xen should save/restore the context of GIC on suspend/resume.
>=20
> Note that the context consists of states of registers which are
> controlled by the hypervisor. Other GIC registers which are accessible
> by guests are saved/restored on context switch.
>=20
> Before continuing suspend, also verify that the physical CPU interface
> has no Group 1 active-priority state left. Use ICC_CTLR_EL1.PRIbits to
> decide which ICC_AP1R<n>_EL1 registers are implemented, so Xen does not
> read an unimplemented AP1R register.
>=20
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Thu May 28 18:12:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 May 2026 18:12:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321629.1588302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSfD7-0000zG-5s; Thu, 28 May 2026 18:12:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321629.1588302; Thu, 28 May 2026 18:12:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSfD7-0000z9-2B; Thu, 28 May 2026 18:12:01 +0000
Received: by outflank-mailman (input) for mailman id 1321629;
 Thu, 28 May 2026 18:12:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wSfD6-0000z3-Eh
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 18:12:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSfD5-00BNIA-Ny
 for xen-devel@lists.xenproject.org; Thu, 28 May 2026 20:11:59 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a188549-e002-0a2a0a5209dd-0a2a450c863a-36
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 20:11:59 +0200
Received: from [40.107.130.44]
 (helo=MRWPR03CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a18856e-62f1-0a2a450c0019-286b822cee8b-3
 for <xen-devel@lists.xenproject.org>; Thu, 28 May 2026 20:11:59 +0200
Received: from DU2PR04CA0161.eurprd04.prod.outlook.com (2603:10a6:10:2b0::16)
 by VI0PR08MB10618.eurprd08.prod.outlook.com (2603:10a6:800:20f::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Thu, 28 May
 2026 18:11:56 +0000
Received: from DU2PEPF00028D0C.eurprd03.prod.outlook.com
 (2603:10a6:10:2b0:cafe::90) by DU2PR04CA0161.outlook.office365.com
 (2603:10a6:10:2b0::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.13 via Frontend Transport; Thu, 28
 May 2026 18:11:55 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU2PEPF00028D0C.mail.protection.outlook.com (10.167.242.20) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.7 via
 Frontend Transport; Thu, 28 May 2026 18:11:55 +0000
Received: from AS8PR08MB7265.eurprd08.prod.outlook.com (2603:10a6:20b:420::10)
 by AS2PR08MB8746.eurprd08.prod.outlook.com (2603:10a6:20b:55e::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Thu, 28 May
 2026 18:10:52 +0000
Received: from AS8PR08MB7265.eurprd08.prod.outlook.com
 ([fe80::b001:5eea:7c3e:1a31]) by AS8PR08MB7265.eurprd08.prod.outlook.com
 ([fe80::b001:5eea:7c3e:1a31%6]) with mapi id 15.21.0071.011; Thu, 28 May 2026
 18:10:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=vUt9OC6Sa2ZMnZmeWgVE+wQJQXFd+MTpDhy8JaSAOJ/6lH1LXiztv6ba927CzhEm2UllIzJ6HNAfNSpImP/812KvlVmBe+zhwmpGW3GmQ6CPBo71Z5kOorhNJLCxwNaOBcK0PsTLgmPnZltOkZNYm62HSk7rifydU7LDNwH//SJnaYjKTyZYiQL32KihhuQnAazXGHpgjk8QWoE0azNwgr5sVtZmEb1uoP05M9HDVu3X7B/6mzDHH3PXwuAQKMt4KDAhf6FarI1hpnadAMKf50X3vy5QARmHchHDXnAKcVdOHi8Q3ARhXBT6LdDo9X8TUhnNrm5iqaDXpUGNu++X6Q==
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=EioLAprl2wBjX9h1TPA/LTjqJ4EjN2p0DO3Ykm8XES8=;
 b=fJabiG6QvIeCSgka5DlXrpPhFebYh00WU4ORmmbcmvFcZvwXQ+OlUbCMeblGwA/rFVunMXrNUjGQp+MxLNdsnhaC0w8uidDltdU+/Nyri13r0oJaBri6aKgqSWYxq11SypCKHajwQ64+WB3A40KX+MD/uO9b2hc6acZcFAPgINx6hDD9WV5dpyfNINiYTgtSSzARuIgWccl/GrljMpMzwwu23WPy4lbCcgI4tZmxHKv6w/S8L2Ri7/qcM7+rZyaqFrBIruFMw0VyvlalXT9jkQDibW/Tl2QbUxSUTCTbVMN/vYgpXrrlB3G5PcYRaSkI3FeYa/IoTCvaAVsxIfQkrg==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EioLAprl2wBjX9h1TPA/LTjqJ4EjN2p0DO3Ykm8XES8=;
 b=sO8WOetl9GySAClUkdrU12IL298peSQILMUzgVPZu9amrhso/ZOhCuZstoS3s1Wqwk1pXdpJIXO/y6/CN4C9reMUS24s0pHKbvL3tCDhOP2tCl7NI7RBcAG8GBezc8ZvObug+NBHBmUVBwYuLjF3SyNU8pg9f162E0bxYrlTgOk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EcYFc24BlwsSAhaETb7mWFO7qeOgYsvXume8Q8Lu2VxaChrVh8a/Xue5ShrzgTPedWqtpTQQBbciRlzVGNkQsZzsBOCqPF7fZKOeDcAz3XrRBRvGjMA7TEBjWSaygy+wkXr6XgBope5EQCA2Ka6i+TbQFrNfnb1VpxwV1DyaLTmvzgOPUwnuu7Qd2xuw1s+RzK+UxNP3UEWw3eTr17DnrXAwB4tP3KDe1vgMCi7Fvgd76qh3l6YXNSScks3Rn+uJ2v3AHpLYD8J0DdBF1aizWkXAFx5ZEfIhEfvr7bvA59EonTxR3UQ2QxU0GVekKn+gINuVGvBUq9DA6eK9YTkE0w==
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=EioLAprl2wBjX9h1TPA/LTjqJ4EjN2p0DO3Ykm8XES8=;
 b=FjLun/sXSS9Q4hFflNKlTKRkz8Hk2xWRh9C3R0A8WspC+4/BTi1/wMyH94vQI5P2PM0QEesJiwp3fOCoHRJ5LrC4W5fpJSdjvdCXzUqdJ8c4tzT7x/+2g04jUC2dnBdGPv5t36YA6IWcpLbBGxQdPshG8Ig23hyDF7PNBLi45IkYe8y7p58GB8daEQOxeElevaB4ZSq/sbylf8B/aMhaK1XYk8KXQmE9twoPgsgGq2BvyVRnuCun+/mDOqPIkf/GB73WK5wSQzzzf7pnVvMdC3ZqlebKJkV9gn3gXZHXvf4aT6RWuaeLqv1Z+K63Nbnw6PVAGE3nCRrpNFmtxHyItw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EioLAprl2wBjX9h1TPA/LTjqJ4EjN2p0DO3Ykm8XES8=;
 b=sO8WOetl9GySAClUkdrU12IL298peSQILMUzgVPZu9amrhso/ZOhCuZstoS3s1Wqwk1pXdpJIXO/y6/CN4C9reMUS24s0pHKbvL3tCDhOP2tCl7NI7RBcAG8GBezc8ZvObug+NBHBmUVBwYuLjF3SyNU8pg9f162E0bxYrlTgOk=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
Subject: Re: [PATCH v10 05/13] xen/arm: gic-v3: add ITS suspend/resume support
Thread-Topic: [PATCH v10 05/13] xen/arm: gic-v3: add ITS suspend/resume
 support
Thread-Index: AQHc6UoGT/kfd1Pv6US/NK5RLp1zNLYjx+kA
Date: Thu, 28 May 2026 18:10:51 +0000
Message-ID: <E775FD70-C4FB-41BD-AE73-BA6383148546@arm.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
 <95930674d4639727b9cdf4f52b4a23b6df60c3c4.1779385072.git.mykola_kvach@epam.com>
In-Reply-To:
 <95930674d4639727b9cdf4f52b4a23b6df60c3c4.1779385072.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.600.51.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS8PR08MB7265:EE_|AS2PR08MB8746:EE_|DU2PEPF00028D0C:EE_|VI0PR08MB10618:EE_
X-MS-Office365-Filtering-Correlation-Id: ff7ab30e-db42-4808-1deb-08debce499dc
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|366016|376014|7416014|22082099003|38070700021|18002099003|4143699003|11063799006|56012099006;
X-Microsoft-Antispam-Message-Info-Original:
 zYoPVR6jGepCi/05BVW7PlH+PXO3neT6YHUVO9LhGqahC8cKpE8OG8eSAMyIrZGzkR+f5zUcj4gaOpNv1oSZtSaMo6PnVXXdXZoRlSe5X8e++me+/mIYMe7bNIJt5dfEzDhreesAPLDmv2rI4G9wjn9R5rz71uY6HGWd17JcK/nam4P2BQ67YOx6iz51XcNVMaXLGoEfLVIE6qugJjCZz7ZadphYbCCU/z1cUkJE33t03gS/vnwkmuZM7r9IGDN4i94NbCVR9aN5ughWn+C7EvNz1Xb6aUe5YGV50l/UH8EbsHmsqk+ryGPqXCgB2i4112erykkUsI0P0zNpNGzfriUOHMJIi2OxuKaRq+gR/uudNqPymau6vHfchA3PGI5rotPraSSzNRO2l01o3klvNlqTIbTCRYS+XiGtoLZ86S/XSmYWotRqZc5ZMOVmDSWSvuNSK4+4/OAyM1++D44s894FIA/+CbWwMs9x/swGD9JhDVUNOl0X8HBsNQDBHdAMoS9h8AQ5BKULz5qYqA2/2zd382RLuVIrjrE4ErED3rrZ4fVCVY5lUmC/fKoW37ox3eXEEm/cjPf770JRmByArKMsvAr16tFZv4eCB2enWBd1czBZkvMNKt9yKC91n6ChpJ+mfol8vf0zOIFIxJJYdunqQ7FSLtjvPxUfzxiY4uI35L5H+3ZmCpuXnVJOTk9eTb8Oi541Ibxb4Ye5jcb47j2vnfuH2cKPzGfPjNq0ITDrhe5kW/SRuVVHJA1AD/B8
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB7265.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(22082099003)(38070700021)(18002099003)(4143699003)(11063799006)(56012099006);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <A15D9561F43A224AAE04F59DA77C870A@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 NjN4lPAe3vFmJGGlNlAJ03Aqa72r2q4x+IAbfc4R+K9ZBLVKhQt7If4RQ99eGgJNJuF4SG46pAKKLLi1yDeO/gSoQBQGnEQc6q3n+SG7VXjkgdmCFKAr/iFs7aooxOX5VFtRVTNMWas+LT7CWblQXzbwgzrwh0FMT+UgJ7ZjVQlNX8g3DVgdQNdoDtZmhsBCi9cLkzoZGwbXzFMVGNWvM4FsW3BkHVMy0p3Sc3+ZPoDzSoiIqysS/QXm5lCNhzDdqWo5pJvV4uYw325jkRBk6ijaZtK4QAKHbM+Ij7xcXIlofu94NGvERAEZ0k+S/BiUw131kBzIy4HV+bYGMGeLyg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8746
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF00028D0C.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	bbe50cc5-15ce-493d-314d-08debce473c6
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|14060799003|35042699022|376014|7416014|82310400026|36860700016|22082099003|18002099003|4143699003|11063799006|56012099006;
X-Microsoft-Antispam-Message-Info:
	0v7ALxTqNcyc05PdIlvd2uu2EHQ2mrX86o3ll3poT2dWYXPEyfrGjvFnz9mmKjcPr13xIeU7OlTD6Mz4P3yr/26AY+DzDopXp2WIgiBr9KhlIZV78QsjCiopYaGKVDPe2/RfggdppMjnxVU0UPS8fdjMP+ah5F+SEkQ9hFzLw3tq1+iVUyVkARu9aHP32UQ+EQSZa5Xv/jBsGlW7FkKBY+HoSq7O/019aNW5aDEfUV4j8knrxLW1iqrMYHjHoYwIKroSAcod4ueJENlIcuajfPj+Nof97T8ZT74FMTQmJ0CaZn0CHpxakf612winvsT1HzltQ/sSzAJQ8z61ufQO68Qeb7762stg8QV9/mLnsFRK6zHNFTqr7Jo6lx4yqjwYSrPZ0nki85sMwUrLLGlPyFWzsvriGYIA1bfLoDiEWCwJeYm5f24PL/6RNBDHqyMkN4vbJHGDww7wHP9cBs2A0Nf36bw4jMi0q/xPsXpK+uyGFpCDWKYxHxG20R38LqIqrH9R18cK4Xt+6i+3MTya//Eh67F+0dof9fEmL5hQP0PyzVxgJN2C1vf11Aw9TAlBzohEGpBdwPD2pKXjRsFF5gLt0Nr3mgqwf4Ig0rH6+Kw3KwvsP/JBEwSPhG8AzWvFBxK1aL8RtxHFeW2t/Zb6TIPQZum9WxlLRxvyaE2GV+DjtPwBXWOLzZ4t9Z8VQ/vA5EMNEQfHCITs1Ty7iAT3HnRDeWLeyH8NLOBbjgPJ8R4=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(14060799003)(35042699022)(376014)(7416014)(82310400026)(36860700016)(22082099003)(18002099003)(4143699003)(11063799006)(56012099006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	xeHc1zXkoR5/d9WdhoaEkzhZRHsZ0BNIu9iPATwfhcpMEGCz/85UI0bwffi/26FKFJ3bAAwQJnzW06B8lKuVk4bzr7mz5tZMUbSDh8pmPyWB5bA8hb/t4idX0Hh0OY0x6d/K8GsFrvaIZxyXcnJSWEQ8syHDsaGr2zx5JJKO3ybe1VtPfav5Dy/1YjKP30IA/yg6u6mN/objgMHtY2Zeg2wDjJyh3d20WmMgzh6i1HqhDtIPAZBiTuCacX1Epcsprt3mU1SEZ391E4MONK2sFhiN7k+o6FvjyD41Y31EhkAJxEHhD1aSulQ5jYDLwaV8OMyjQKdVM26UnlMHgDOTwsbuj8h6R2+xsPvrwQGjVz1eAXeuFJYr1zFHbd7sm/MBVNlEYgn8xboGQqP5TtoTaMUTxF8u2hq11+N7RggAZUtK+N+G4wsfPtdK4dCUozmx
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 18:11:55.2109
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ff7ab30e-db42-4808-1deb-08debce499dc
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU2PEPF00028D0C.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10618
X-purgate-ID: tlsNG-d25034/1779991919-DA577CF5-FD050A16/0/0
X-purgate-type: clean
X-purgate-size: 1622

SGkgTXlrb2xhLA0KDQo+IA0KPiArI2lmZGVmIENPTkZJR19TWVNURU1fU1VTUEVORA0KPiAraW50
IGdpY3YzX2l0c19zdXNwZW5kKHZvaWQpDQo+ICt7DQo+ICsgICAgc3RydWN0IGhvc3RfaXRzICpp
dHM7DQo+ICsgICAgaW50IHJldDsNCj4gKw0KPiArICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoIGl0
cywgJmhvc3RfaXRzX2xpc3QsIGVudHJ5ICkNCj4gKyAgICB7DQo+ICsgICAgICAgIHVuc2lnbmVk
IGludCBpOw0KPiArICAgICAgICB2b2lkIF9faW9tZW0gKmJhc2UgPSBpdHMtPml0c19iYXNlOw0K
PiArDQo+ICsgICAgICAgIC8qDQo+ICsgICAgICAgICAqIEJ5IHRoZSB0aW1lIFhlbiByZWFjaGVz
IGdpY19zdXNwZW5kKCksIGV2ZXJ5IGRvbWFpbiBpcyBhbHJlYWR5IGluDQo+ICsgICAgICAgICAq
IFNIVVRET1dOX3N1c3BlbmQsIHNvIElUUy10YXJnZXRpbmcgaW50ZXJydXB0IHNvdXJjZXMgYXJl
IGV4cGVjdGVkDQo+ICsgICAgICAgICAqIHRvIGhhdmUgYmVlbiBxdWllc2NlZCBieSB0aGUgb3du
aW5nIE9TIGJlZm9yZSBTWVNURU1fU1VTUEVORC4NCj4gKyAgICAgICAgICovDQo+ICsgICAgICAg
IC8qIFByZXNlcnZlIHNhdmVkIEdJVFNfQ1RMUiBzdGF0ZSwgZXhjbHVkaW5nIHJlYWQtb25seSBR
VUlFU0NFTlQuICovDQo+ICsgICAgICAgIGl0cy0+c3VzcGVuZF9jdHguY3RsciA9IHJlYWRsX3Jl
bGF4ZWQoYmFzZSArIEdJVFNfQ1RMUikgJg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB+R0lUU19DVExSX1FVSUVTQ0VOVDsNCj4gKyAgICAgICAgcmV0ID0gZ2ljdjNfZGlzYWJs
ZV9pdHMoaXRzKTsNCj4gKyAgICAgICAgaWYgKCByZXQgKQ0KPiArICAgICAgICB7DQo+ICsgICAg
ICAgICAgICB3cml0ZWxfcmVsYXhlZChpdHMtPnN1c3BlbmRfY3R4LmN0bHIsIGJhc2UgKyBHSVRT
X0NUTFIpOw0KDQpUaGlzIGlzIHdyaXRpbmcgZW5hYmxlIGZyb20gMCB0byAxLCB3aGlsZSBxdWll
c2NlbnQgaXMgc3RpbGwgMCwgd2hpY2ggaXMgdW5wcmVkaWN0YWJsZSwNCmhvd2V2ZXIgaXTigJlz
IHRoZSBzYW1lIGhhcHBlbmluZyBvbiBMaW51eCwgc28gSSB3b3VsZCBsZWF2ZSBpdCB0byB0aGUg
bWFpbnRhaW5lciBwcmVmZXJlbmNlLg0KDQpSZXZpZXdlZC1ieTogTHVjYSBGYW5jZWxsdSA8bHVj
YS5mYW5jZWxsdUBhcm0uY29tPg0KDQpDaGVlcnMsDQpMdWNhDQoNCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri May 29 08:54:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 08:54:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321839.1588327 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSsyG-0003dx-9A; Fri, 29 May 2026 08:53:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321839.1588327; Fri, 29 May 2026 08:53:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSsyG-0003dq-5s; Fri, 29 May 2026 08:53:36 +0000
Received: by outflank-mailman (input) for mailman id 1321839;
 Fri, 29 May 2026 08:53:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wSsyE-0003dk-5G
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 08:53:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSsyD-00Ejri-EM
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 10:53:33 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a195408-e002-0a2a0a5209dd-0a2a4501ad68-22
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 10:53:33 +0200
Received: from [52.101.66.142]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a19540c-c1f2-0a2a45010019-3465428e598b-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 10:53:33 +0200
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by PAXPR03MB7611.eurprd03.prod.outlook.com (2603:10a6:102:205::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.15; Fri, 29 May
 2026 08:53:30 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.21.0071.010; Fri, 29 May 2026
 08:53:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=emWDsxZuco8iSCVwu+3etZnkMVWaVUITz9mYlXqTv6y8cnXL8iYnUtg03J2dURkG1gREpvtE5A2Fp8MnhEdJRMabtQP82SKOrR7uds79/Pq9vnoyq0cTb/TuqLOixP9D49iI/+HKDBT+KxyZd+bXLoWGs3PIU7mivLRv/FiFjqc6iI4OoeUikmWJP3yZ9lyMfj90AwujY/y+KE6fqmArZL3q5chP2nSPLiWcEsuY7HdypkPEqAOzjj1ofJ07tmPs9ZPMgzM/fjCG5vTK5Vav5CNC0w6tNDKdU8RTpXclvZwhNXsRIE3VJgqu8ZUVfEqOtitlKhgG3sL0wcIhqZBYyQ==
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=wO+jFzbod4C+pyxXBAyfbVnLWIu9dPiLGItqyGWQf8I=;
 b=OqXu0kHYE5GmGrVYF5JEqqVc86DMQFYjV5nF8bptgXPRgK0BVNW1OmAR+m2gSUG6p4IzIvVwr0ifx/vwNUViu4q/ip7oZaA2AL85Hq3/VBFdzd5ls4qs1kdW9eyBGFcwmdq7hjk3YAabBpNXCWj9nYENfXh36a7ecEK7e7NC6Gruj7GqKjgWqqYRHQfukQooaUy41z6b8s0ER3Mzgzxbiw5dyBbKibxdZ1NF0iE4EhRCjD863RJiCPf6fWdwwcCrpf6rViasIZEkMNZjNdGO6VuFnXiuvgtoFeGnBWEgExX5KMCVlyMTOk4Cs4cGXbdetXcpWlJsEQACkpxkzZKEFA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wO+jFzbod4C+pyxXBAyfbVnLWIu9dPiLGItqyGWQf8I=;
 b=g/1xYcY+ksExziOf/a9JFkbThUQ1rx2UK/vYqmNXqOIb5DjkwAs7gzoKNH5yBnf07m/P2QknK4Xm5Ph2Uj1GB3jmhZestyiuo4fLB8/UPF9aQ5QsLhprBz+QP+VWV7SedG9bY80ZpckHBOl/90JtEKnAVhrE2zj/DVjO8sk56DzpYOP1ntluHBkrarFY2YrWa01HJ1+2U+ZcsJceXxNBByu6vDL62f4xqEX1NJqPUDDLxaaVZAykyotgwP4xh/cRByRZE7P9hzch+8ZKwWBAXhv3+IjSQYBZdPfMaOjKzR0eYGnWRpexf/RIqbWtiIMORUqUXmeGD9BiqsCyrYl7PQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v2] coverage: place GCOV-generated .text.startup section in
 init text
Thread-Topic: [PATCH v2] coverage: place GCOV-generated .text.startup section
 in init text
Thread-Index: AQHc70ifTHJ2JaDHW0i9kIm+tvP8Mw==
Date: Fri, 29 May 2026 08:53:30 +0000
Message-ID:
 <fb154ba84ed01a060c6617194080d7cd77f9144d.1780044400.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|PAXPR03MB7611:EE_
x-ms-office365-filtering-correlation-id: 6af49936-85dc-49a2-e417-08debd5fc1e2
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|1800799024|376014|366016|18002099003|38070700021|56012099006|11063799006|6133799003|3023799007;
x-microsoft-antispam-message-info:
 eU1Yr5BoRpmP2oFcdeLoZvFyU6g0hp0MGh1Dc3VpUsYuau4k9KtztegyVmvJ5wYz1hfkVR5r3+EHSDGraRoRGnkK54UKZLfH8dPcjA1zEZtVaUG6XrYALibKz2Y8l3Cj9l/ZnC8/QQONlPn1PKyHkYua7aFMx3/dqnTe905jUUXJKCDLlraxaDBadYr4gHmYwMen/9TesjgixWhxuOdhsorknrIh0quyItx2r+Jz+TPtnOEaYRk8Ta4HywqEkSCRak1nDp0ZhB2LwtGFigxY+NbTCBtaI1RFag6oU5VOcJ1+ekQLcutknjCv+3oTySiMfCFZ6JdkE90VjUZ38hQ/YfOGPMLG4JkEyYOfo6nEAbVgPFWOUV72KkRyGZHE7kRsTPmSBUb2vNUllg4FnG+g0v+zbcd7/QMNUMOLHNcdF1l7hVPtyRkx+vXkfcrB1la0oaQewkofqSAVt1nL6Bo1U6hECtChYYx8elhLkjIwct0Qkkej/AGLPq73uKv40vCniJAglihFcCqCgmLU7IVQaj2xLfSq8Nzb6XG6Mn9pGhI+gyw9iq4zRuVeOQpi0IwM6S5jQ/uRaCrxWz+Zsg37cSKUzKKJ+o4r7ong6l3/NJdcZbmeL1cH3iON9zY5guD9VYVhQ+YkXuX80p6iOqhVlvea1XyN37TSW5v0t+evYeJOzxtp9lemlMwGH5D3YUHsAFJ9MM7vggjahiA1NnZzkQ==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(1800799024)(376014)(366016)(18002099003)(38070700021)(56012099006)(11063799006)(6133799003)(3023799007);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?t/TNL0RmqIw3SAIJsPf7UdaeLj9fatzx/76p4OE/4GORQSBUetazLWkiEZ?=
 =?iso-8859-1?Q?OARp8tWJyOG67l/yBWAtYyNmdwVNIRljCxvs1/WgPsO+yUKg73sQw2fR7h?=
 =?iso-8859-1?Q?fQZlPh+UnjDgeQgN9XTon6EmUES4acC8ZeOFX/p5bbslOWq0r891qKm/Xy?=
 =?iso-8859-1?Q?RyLM2yCJ1hCb1JfVfl13zqBOCC/NyW5COy0rdz/DcHeYopgdj1EUERjkr/?=
 =?iso-8859-1?Q?4YF7/l9+CwvCBdimC8N79FYsVF4Novs9flI6qCVK6jE4Zw3l6By8H8WRvT?=
 =?iso-8859-1?Q?w0fv3p/rcmwC/kkCw2vQKu8bGtOITofaO3Ul7ZVq2kyo7ZJugC+6x8RgY4?=
 =?iso-8859-1?Q?DhPndx6EbaPBWNUnLonkBMmFquaE9iqKPkqRVhTxDVgGNXXAukBGEiEcde?=
 =?iso-8859-1?Q?TZXh4L0sboKw6n/dDtquWCIj9L5jdsS9pPX/nnh1NAP/B65dq2rbY8m75f?=
 =?iso-8859-1?Q?mFP9/rMzxpqNyWrqWmEUsv+6ldrwtx4oh8JhJPL5iCZjvOLnpoPgWncRpV?=
 =?iso-8859-1?Q?BJceUCWqFhfM8k8hyqtD6xT5F7K45sBirdAGnVXtaL5yIpw7L5uKTUlIyV?=
 =?iso-8859-1?Q?r02025wQPdu696MNG/KKrjLSevz/ftqENAQKvGsgpTYJ+AEnSKmrXiWPhu?=
 =?iso-8859-1?Q?DPeBsCcHwjrjH1+aHCboEzAD9KqZJ1TvVy0xvvSwZ7PLZjKv99gnakI4BD?=
 =?iso-8859-1?Q?zEmN5iwhwgICUPQUtPyFd9mT4Hmx4uCpIvD4UIJxzfFfBzbUrofFcR1Ll6?=
 =?iso-8859-1?Q?sqVzXeN8Usd8Cp6LrYI/o0MEtEPkcl5TK8dnwTpX9BvUOf3w6rNWg6zL+x?=
 =?iso-8859-1?Q?R5Wh5n4hdEUSce85Pp+DxXrAnwFJX+xRXwOHmlOMcT2M7NP05nwfkvBWKh?=
 =?iso-8859-1?Q?f9uuSkrVFXz5Idrb+8os8nglu3GFYyv50UAT51m734WC1SLgafvk9Lwhfw?=
 =?iso-8859-1?Q?lg1HC0Ix7FAdAD9kQJlOLh+ImK7djXTs3M4pvV9s8kt29JcUGG/B2sSb1E?=
 =?iso-8859-1?Q?YEdf26Ng0g0vt1rQHAY5a7hPZaODfh1/X0bmUrFrNf/wJq0iJMrKVi8qJ9?=
 =?iso-8859-1?Q?Q7u/Pg2TtKec4/an7E+tyGKiglRAONNx+JdlcfZOLMeGlaKvy9uHGTFbAm?=
 =?iso-8859-1?Q?2msrjBGwQ5Ly3/FyBaXGQBPaRoD2en0F14NBifX5Ogco09fRQKPxN2ltwX?=
 =?iso-8859-1?Q?iexCxj/UwM+mL6OHJ7mqcU+KWl+itccz/lC4bZXEMRuj/IaRKMFDbMXdoB?=
 =?iso-8859-1?Q?2DRQkVLiJGkHELVu8sN+bMW5e94ky7XJe4Cj/bYyGsCBPpA4+vsH19T/ic?=
 =?iso-8859-1?Q?ormXgOq05hPtxidrcCqvgPKfjU6Mld6reTbK9hdkLWu+g4uV/w7VsHVg8k?=
 =?iso-8859-1?Q?yNFvT10HGAOSDwg27WAMbruasstWCUPHU57aN8/NaoopHBPyee59OJ60qz?=
 =?iso-8859-1?Q?MV2fvAoQxxOJyoERvJXxfwAl9kCM9PGesF1nASZ/7NvAdsxsMB+3koMtVQ?=
 =?iso-8859-1?Q?EFjPYYssH56w60oLjrgI6J3JpU4OJ+irdnxbuUdgYFv9abXxppwkLvHo9U?=
 =?iso-8859-1?Q?dL7Rlt6OkYgEcdogCESsMS82bqTOuwf6Z7aHckFbZNHF0snxV5zgBEIPBY?=
 =?iso-8859-1?Q?XvZnQT1cuKPZGZ5O7DaF30VibdfNL+nbCUtK49jXJwTdOfNA6ZXQnvHyGU?=
 =?iso-8859-1?Q?8x7opSeBCbJjx3QloRfpG57aWRqPbGY9Xsv5CCy319oGqsBFSyHYxmkEe4?=
 =?iso-8859-1?Q?Ih5SioBPBqZ+xzlk1DMasl+/zEsv/NU/yPGAZfLdqYuN72/d7GAavhogtS?=
 =?iso-8859-1?Q?9UI00nayRAg8x8ml7rShDUQJHFdlcjg=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6af49936-85dc-49a2-e417-08debd5fc1e2
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 May 2026 08:53:30.5554
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 7xR+gqBsb2OHbxHP7OuxkzdUryULqVzx5rAZx+UEw2EQaF66Px1TXO+tgmt9VwJSSGlnZxqXCr6I5er+jpEJzk4rOb28EYOTdYdDJAT/zNk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7611
X-purgate-ID: tlsNG-d62444/1780044813-B6F58FF4-3CEDCE8A/0/0
X-purgate-type: clean
X-purgate-size: 5499

GCOV instrumentation can emit executable input sections such as
.text.startup when CONFIG_COVERAGE is enabled.

At present the x86 already places .text.startup in .init.text,
but Arm, RISC-V and PPC do not. With CONFIG_COVERAGE=3Dy .text.startup
can therefore be treated as a linker orphan on those architectures.

Constructors generated by coverage instrumentation can then point
at code outside the normal RX text mapping, leading to early boot
crashes from init_constructors():

    (XEN) [   12.331193] Instruction Abort Trap. Syndrome=3D0xf
    (XEN) [   12.334253] Walking Hypervisor VA 0xa00003ce000 on CPU0 via TT=
BR 0x000000004352d000
    (XEN) [   12.338550] 0TH[0x014] =3D 0x4352cf7f
    (XEN) [   12.341823] 1ST[0x000] =3D 0x4352bf7f
    (XEN) [   12.345124] 2ND[0x001] =3D 0x40000043527f7f
    (XEN) [   12.347329] 3RD[0x1ce] =3D 0x400000433cef7f
    (XEN) [   12.351233] CPU0: Unexpected Trap: Instruction Abort
    (XEN) [   12.357643] ----[ Xen-4.21.1  arm64  debug=3Dn gcov=3Dy  Not t=
ainted ]----
    (XEN) [   12.360243] CPU:    0
    (XEN) [   12.364098] PC:     00000a00003ce000 00000a00003ce000
    (XEN) [   12.375835] LR:     00000a00004802f8
    (XEN) [   12.378273] SP:     00000a00004c7e10
    (XEN) [   12.380492] CPSR:   0000000080000249 MODE:64-bit EL2h (Hypervi=
sor, handler)
    (XEN) [   12.382785]      X0: 00000a00003ce000  X1: 0000000000000000  X=
2: 00000a0000410fa0
    (XEN) [   12.385176]      X3: 0000000000000000  X4: 0000000000000010  X=
5: 0000000000000001
    (XEN) [   12.387555]      X6: 00000a00004e5f40  X7: 00000a00004e5f38  X=
8: 0000000000000000
    (XEN) [   12.390027]      X9: 00000a00004e5f20 X10: 00000a00004e5f30 X1=
1: 00000a00004e5f40
    (XEN) [   12.392510]     X12: 00000a0000439748 X13: 00000a0000406938 X1=
4: 000000000000062e
    (XEN) [   12.394954]     X15: 00000a00004f3918 X16: 00000a00004c7bb5 X1=
7: 00000000004c7bb5
    (XEN) [   12.397293]     X18: 0000000000000030 X19: 000000000000001d X2=
0: 00000000000000a9
    (XEN) [   12.399803]     X21: 00000a00004c8008 X22: 00000a00003fa000 X2=
3: 00000a00004e2000
    (XEN) [   12.402392]     X24: 00000a00003f9390 X25: 00000a00003fa000 X2=
6: 00000a00003f4ca8
    (XEN) [   12.404798]     X27: 0000000000000002 X28: 00000a000057a9c0  F=
P: 00000000bedb6740
    (XEN) [   12.407110]
    (XEN) [   12.409442]   VTCR_EL2: 0000000080023558
    (XEN) [   12.411291]  VTTBR_EL2: 00000000bffc4000
    (XEN) [   12.412895]
    (XEN) [   12.414204]  SCTLR_EL2: 0000000030cd183d
    (XEN) [   12.415928]    HCR_EL2: 0000000000000039
    (XEN) [   12.417642]  TTBR0_EL2: 000000004352d000
    (XEN) [   12.419152]
    (XEN) [   12.420327]    ESR_EL2: 000000008600000f
    (XEN) [   12.422056]  HPFAR_EL2: 0000000000000000
    (XEN) [   12.423809]    FAR_EL2: 00000a00003ce000
    ...
    (XEN) [   12.485355] Xen call trace:
    (XEN) [   12.489080]    [<00000a00003ce000>] 00000a00003ce000 (PC)
    (XEN) [   12.512076]    [<00000a00004802f8>] init_constructors+0x38/0x5=
0 (LR)

Observed failing symbol:
    _sub_I_00100_0
called from:
    init_constructors()
The issue can be diagnosed by enabling linker orphan diagnostics or
generating a linker map:
    LDFLAGS +=3D "--orphan-handling=3Dwarn"
    LDFLAGS +=3D "-Map=3Dxen.map"
and then inspecting orphaned executable sections such as:
    .text.startup

Place .text.startup in .init.text on the non-x86 linker scripts,
matching the existing x86 behavior.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Changes in v2:
- do not add *(.text.*) when CONFIG_COVERAGE is enables
- copy the existing x86 linker script behavior to the non-x86 linker script=
s
  (put .text.startup into .init.text on Arm, RISC-V and PPC)
- update commit subject and message accordingly

Link to v1:
https://patchew.org/Xen/cb8c1e0862a554f7a28347f549e9cfd0b0d6db2f.1779829545=
.git.dmytro._5Fprokopchuk1@epam.com/

Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2561258404
---
 xen/arch/arm/xen.lds.S   | 1 +
 xen/arch/ppc/xen.lds.S   | 1 +
 xen/arch/riscv/xen.lds.S | 1 +
 3 files changed, 3 insertions(+)

diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index 2d5f1c516d..4aab7770c9 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -125,6 +125,7 @@ SECTIONS
   .init.text : {
        _sinittext =3D .;
        *(.init.text)
+       *(.text.startup)
        _einittext =3D .;
        . =3D ALIGN(PAGE_SIZE);        /* Avoid mapping alt insns executabl=
e */
        *(.altinstr_replacement)
diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
index d0f2ed43f1..de3aad0aae 100644
--- a/xen/arch/ppc/xen.lds.S
+++ b/xen/arch/ppc/xen.lds.S
@@ -98,6 +98,7 @@ SECTIONS
     DECL_SECTION(.init.text) {
         _sinittext =3D .;
         *(.init.text)
+        *(.text.startup)
         _einittext =3D .;
         . =3D ALIGN(PAGE_SIZE);        /* Avoid mapping alt insns executab=
le */
     } :text
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index 65f136dce9..c6f765a1c5 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -103,6 +103,7 @@ SECTIONS
     .init.text : {
         _sinittext =3D .;
         *(.init.text)
+        *(.text.startup)
         _einittext =3D .;
         . =3D ALIGN(PAGE_SIZE);        /* Avoid mapping alt insns executab=
le */
     } :text
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Fri May 29 09:47:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 09:47:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321859.1588340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSto1-0001oJ-73; Fri, 29 May 2026 09:47:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321859.1588340; Fri, 29 May 2026 09:47:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSto1-0001oC-2k; Fri, 29 May 2026 09:47:05 +0000
Received: by outflank-mailman (input) for mailman id 1321859;
 Fri, 29 May 2026 09:47:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Luca.Fancellu@arm.com>) id 1wStnz-0001o6-Ld
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 09:47:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wStny-004wR4-GT
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 11:47:02 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a196091-e002-0a2a0a5209dd-0a2a4503b9ca-34
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 11:47:01 +0200
Received: from [52.101.83.2]
 (helo=GVXPR05CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <Luca.Fancellu@arm.com>)
 id 6a196094-672d-0a2a45030019-3465530234d2-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 11:47:01 +0200
Received: from AS8PR04CA0168.eurprd04.prod.outlook.com (2603:10a6:20b:331::23)
 by DU0PR08MB8929.eurprd08.prod.outlook.com (2603:10a6:10:464::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Fri, 29 May
 2026 09:46:58 +0000
Received: from AMS1EPF0000004C.eurprd04.prod.outlook.com
 (2603:10a6:20b:331:cafe::7f) by AS8PR04CA0168.outlook.office365.com
 (2603:10a6:20b:331::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.14 via Frontend Transport; Fri, 29
 May 2026 09:46:58 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF0000004C.mail.protection.outlook.com (10.167.16.137) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.5 via
 Frontend Transport; Fri, 29 May 2026 09:46:57 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by PAVPR08MB9556.eurprd08.prod.outlook.com (2603:10a6:102:311::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.14; Fri, 29 May
 2026 09:45:53 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.21.0071.014; Fri, 29 May 2026
 09:45:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=x8pJF8pHkBG9OtMbZYR2iemNiCRmhtu1NK3LsBRhmvnNMXh0aJqTdaXn6lMHydpoUXgpLMqUB5G7W+uRFTaQiGa4WEj/VNMzqlXWrW8tGymu0DTntW9xRordvlHcg0ViJ118TC892YfCi7tblFv1WFEf48Vky2HoXuSz6LklvZ3qpNtH3e2yrQvX/RSCvYRZLke4h47f7rd+MO9FuvrvWnv49u6ohLI/Z62o3sCOy/0jHPAB8EbqzZxtsfB9jWQWYhFJBcDWoep56uYUFjpI5zoh+xQqAE8/qqhvbzJ60O7NCB044arbbI5Wz83r2d0tjKErt1KA7XB4XHmTbkVvKA==
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=3OkPbLOrMqqyBoy2/s9F/mTHpozibR4ya9kIhxBsmh0=;
 b=hWaurzY9T3d6yHcJkE0agpJtQ+6XUshLfVKbcdB2J1lIuclnCMz3jsLILLT/cDPKVG3zeF2ef1kwRLNjyYAOME4IzSFeXkhRrvf+Nn7RZluidES4FxPGTbS4TFu9x0sILpTBg7XWPVBfKl3NkljpAqbquNpuFZl05U9LUa8H5eWDAgZWIF5X4sLppSHJRv8EEfLfUW4TeZgeebO+c4S0hghAPcrXFWJeah6utU9XMFS8Xwu7xXUoN8HZ4YwzTO+pik+JCALJRm7YKEOiS5EOH0QDjz4bMzhFJoKW/q/5wFVqTZ0nHW9wwktKiEnq/as5lmsg4iCo/vRCOAYpJiUrqw==
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])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3OkPbLOrMqqyBoy2/s9F/mTHpozibR4ya9kIhxBsmh0=;
 b=rPVBegoV3t1oyVRlwcs4gM/SvGrsg2SUfuNHnuXROKyNlCgf38ecNoIBLG8+9ZiSaO1IDRXAkBDY2+HGvnEq/6WmVfO9DSAGtU8QMcjkUe4jb6KunYtXi0LSm9xqS7qhm006xX9gsKZVw/OOxWprH0klT5rSMfDbcwslebEZGHo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Hk5utapGOZExYvq04qzZyk+RXq0iQEYwEUWcEAwzmf3xiYm8IK5G7zT1xMFtixPgpo8Kb6hce86Kf0FUsbSflms2enq4to53afch2d27GaeRro7JCd3UYY7pCnRd89Y3eTk/CUI/KZ5NXm729CWGNQFCkQofBLJhCoZUPsJbIQ5EsvveEs1dCSkGIc8dyzJeSK2fC0N5IUIijbFV/MA9W14rrVxXQU0rop/+9pAYJSxKHUy8hLnaX8v3csUvF6rPqSlstUDpq03IEhrlPgf91gJPvq46H6QGlNlVP/7yfmTGqBd7QS/LZI331j4F7PY61EdwhD3BbqMKhniAX8H4gg==
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=3OkPbLOrMqqyBoy2/s9F/mTHpozibR4ya9kIhxBsmh0=;
 b=VYFlml6gUrM1CGs3jt3le3meGPl0mf21vFlE+bwASbpb8eMsKoCEcnO554VmlhgJ/smZXi3GXFK0pOL0foMmsNPnrqEs1ZvpoQi+Tmen4dI6C5w/fMNEpEL4FKMi7eqIlEaEFMvMnQ3D1izzFuQ4S9FK7AcPQF/3Ba2WeCyljhv/vhLGsHY5h/Ebi8r1de6bdwqVkUVvsPUhU6exjPxf4aYa18NzpQomOtOWOI04QoDlCxe0SAOL+OK+tGook8flHPYYuLS93t+yFmW64+Uuch1lQ/bFf6Jx7ToOl1eGp4oqRc3Cma/axVCWBQew+W8QgKSl2+KkEguc5CbrSb63xA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3OkPbLOrMqqyBoy2/s9F/mTHpozibR4ya9kIhxBsmh0=;
 b=rPVBegoV3t1oyVRlwcs4gM/SvGrsg2SUfuNHnuXROKyNlCgf38ecNoIBLG8+9ZiSaO1IDRXAkBDY2+HGvnEq/6WmVfO9DSAGtU8QMcjkUe4jb6KunYtXi0LSm9xqS7qhm006xX9gsKZVw/OOxWprH0klT5rSMfDbcwslebEZGHo=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v10 08/13] iommu/ipmmu-vmsa: Implement suspend/resume
 callbacks
Thread-Topic: [PATCH v10 08/13] iommu/ipmmu-vmsa: Implement suspend/resume
 callbacks
Thread-Index: AQHc6UoH9mMqjMgbj0ORE0RKSkpfJbYkzScA
Date: Fri, 29 May 2026 09:45:52 +0000
Message-ID: <3FBF0FE9-E811-4597-944E-73CF8C9DEABD@arm.com>
References: <cover.1779385072.git.mykola_kvach@epam.com>
 <9cb404f9327e203594127495ff9aedcf96c18377.1779385072.git.mykola_kvach@epam.com>
In-Reply-To:
 <9cb404f9327e203594127495ff9aedcf96c18377.1779385072.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.600.51.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|PAVPR08MB9556:EE_|AMS1EPF0000004C:EE_|DU0PR08MB8929:EE_
X-MS-Office365-Filtering-Correlation-Id: 5cf94ecf-2adb-4ca9-2d9b-08debd6739a1
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|22082099003|18002099003|38070700021|56012099006|11063799006|4143699003|6133799003;
X-Microsoft-Antispam-Message-Info-Original:
 8eaMN3TMnpWSOW7G4F18USqHnEViedAS+TUOcS6DYcLl+Qrm4TpTRlrZqGAtVWfrkez5BDZELnDHEzaHmlFKp+eCS4Q1khYCxiYF7LldLok9ozNsPyU9AjDZwGFXbVVfZmnLp7YYF6WZNFlC1RRxOiODSZp82jl+OBfNTggQYARuKkjA9xhhJcIz81UjfZodyp8Ah+Tf/P3/oOX29/PX5XKJU1AsEtSnLxXEDB5UKRDys+f7VsM3cbBjQwhZC0q8UDApVG7lho6crPHUQboehKTLOfj7yF5gwRxeeifOlWtwLrs6c3lqYARyQsHAG1OsrIezuaItUXd/jQL1N/WIX23FMb4YGD5AyUNPqTE8mAG9gB89sjkCKyM7mMHGMasiodSI0Nn7TjYdDfn5jupIguHIP69WoZYygN4Ke6LsHXgdn9OC6B+tbopBE/QcOQ2KdiVbV5dv9lkH0UJOyTMREshcj/VnA0ova96Mgdg3Z9x90GspEiqoo3USJrMewfpInm9bqKWYjxxv/prDcRIHwWbMevXgjedDoaXQ/mO9CT/LtQDHhhRywqn5flyMTikE8RgQl2qN3Evr8w/JzrHrM2N+zzu9ZqSduO/aODbN5Je9LkKTp2W3eAtWbqqpewgRjH/46Ha4pcE5R5IsIgSUqFVFOPNMDKbKY0hMD8j7y0t/51m9SdqLJz/sQwETZVXkwooBARlIkKCCNaw8D4/Cnd9b9t0EO/bzIvqyT4xbLu2f3RpMdTKyHflF4d1dUrXV
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(22082099003)(18002099003)(38070700021)(56012099006)(11063799006)(4143699003)(6133799003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <7DB65183BE98DD4C96766B89D72C2771@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 Q+P2NZAaOPTTMFlFwukFGHzIWX1oHhPKxVOH9JG2bbqejQevg/PCw4S+LEC2SgeEOfCkAcEK3XoCeZQEMWEQkCdVTgEEbgzSga47gOrtv9gj4AFUWRcC6yt1T2rh0bVyyTKLVagNNVMnUNdmlQaCav/LndqbvxsG9lCyo/6cRkcKm2592FGlBYa7xo2xPdsJAQRHWPHybgt0BWKijUuJv0dOzaFfYOwVIJSml7RhaWlBxG0Oy4CzckmGse6/LBSBpqw3DtFtmFwJu8Z1ljR+SgfdfCjzia5splDvdijHcXAot1UomAZyu57VkEaSUc2q3ehWodtG0kztibsxfVJY0g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9556
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF0000004C.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	43442602-a40b-481a-f964-08debd6712ea
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|82310400026|35042699022|1800799024|14060799003|6133799003|18002099003|22082099003|11063799006|4143699003|56012099006;
X-Microsoft-Antispam-Message-Info:
	5mmeDwvHUNbaRCgt5RdlTV9HNcyjtYJfyi7s7g3SK/MlCEH8jTs+GKaI8By1wyFmDf/dQorcWQnCXCXLLIK4rbBsR93eXH3X6HBZUDLLSNTVfSP91brolWm76E7XAq9nTOoPhOjSSxC2X+GyzCXi9rvknLgtyu3oTatCt0dVooW40QDJEH1+yefRIypd4tLSNHhB73epaWH4ozZNY5R0lvJZh7W2u0D9gToSD22K1SRcHTWHmxo2oxz82KxS3NuUXYl/ghIr2Ffl0Pu35UaUn2EiIhePmgmvG7yXftwIRDokjqZlMV4CXatx0agz0lXHEoBqZiF8S+NaPvt7frtI7WeC0vi6Ug8R/xq+OzkarCa9FP3RxHfx8jpbVzCmWtEVm6HWs+uzDlsCG59g0jkOvO9g+w10hnC1mgPbU1I2CYWIem/WkcUBMdaIV7ODzrrxtd4GnbLCIty+dMRbKbghEU1M1w8tn0p5fKYjTtqGa4NPgD5p4hTrSeR5BDiXGgz5zcrIns0JK6x6WzksMUyUHlDjB9yncb1482f/ScaeBcv4tw4vwTlft2LY9KF8ibSzjOxfgqzGbAlSbzZ/YiIzZrk9nJswtjBSOB8EtZqSgCnnRpYiq3wEj9OfVh5kTq3Tj0k2B33V8m7eKB3TIcpQGKBi+umGLYOSp+aToECgHFA86Nq1HHtKaJC5XBPWbpHAbizFKIcfdQZUg8Yf3/C/U6LS4IRv06JGSv65miQk+UY=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(82310400026)(35042699022)(1800799024)(14060799003)(6133799003)(18002099003)(22082099003)(11063799006)(4143699003)(56012099006);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	OrGN855lvJpUDFVrGMFyDqfiDXYFNVt4IpnC9Okjxx1ArCe7rZvozmjpIM0p+LY9SDHIPG7AwRJPR5rHFQKHhzxeaQC6OnIF3mwVbChnYwjnevFBYgfRKY89JKydtFEq+DflTnU/s1SBWXnbrSVKh15MWeWBbo6znzJHlpMFk/aPaASRB9jnHDsXhPD+40/O8OZdFWJd1SdbTf6S0XGYbJpWPk/bmP+tFMlNFgLLIWcElxy7RBmA1ikowfWqZsCQ4Tu+YcMulrcD6mNorlcZVRASMdGoEyCRREtljkbNhp8hrV62yCsBRdIaJvkU+d+f+Yk95UJKdVhR8uCjrvnzhbgsFX+i1ZAqnKjwiDrui5up2KuYOpahx6HRcnnefwqEhNPreJVuTLdpYF/y/8ksj9llduzRrQpnjSCa/5PGt2MGypiPfb8TeNY1C4CXYEQS
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 May 2026 09:46:57.8434
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5cf94ecf-2adb-4ca9-2d9b-08debd6739a1
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS1EPF0000004C.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8929
X-purgate-ID: tlsNG-33051d/1780048021-3754F938-CCE93EE8/0/0
X-purgate-type: clean
X-purgate-size: 1212

Hi Mykola,

> On 21 May 2026, at 18:45, Mykola Kvach <xakep.amatop@gmail.com> wrote:
>=20
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>=20
> Store and restore active context and micro-TLB registers.
>=20
> On resume, restore Root IPMMU context state before restoring Cache IPMMU
> micro-TLB state. Cache IPMMUs select Root contexts through their micro-TL=
B
> configuration, so restoring Cache micro-TLBs before the Root context
> registers are restored can expose stale or uninitialized context state.
>=20
> Tested on R-Car H3 Starter Kit.
>=20
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Changes in V10:
> - Iterate over registered IPMMUs in reverse order during resume so Root I=
PMMU
>  context state is restored before Cache IPMMU micro-TLB state.
>=20
> Changes in V9:
> - set dt_device_set_protected() only after ipmmu_alloc_ctx_suspend()
>  succeeds, so DT devices do not remain protected on allocation failure.
>=20
> Changes in V7:
> - moved suspend context allocation before pci stuff
> ---

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Fri May 29 10:42:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 10:42:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321886.1588348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSufC-0001En-PV; Fri, 29 May 2026 10:42:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321886.1588348; Fri, 29 May 2026 10:42:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSufC-0001Eg-Mc; Fri, 29 May 2026 10:42:02 +0000
Received: by outflank-mailman (input) for mailman id 1321886;
 Fri, 29 May 2026 10:42:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1wSufB-0001EW-0l
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 10:42:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSuf9-00F8AM-U8
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 12:41:59 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a196d61-bab6-0a2a0a5309dd-0a2a45088ca0-42
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 12:41:59 +0200
Received: from [52.101.61.61]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a196d76-63b5-0a2a45080019-34653d3d0c70-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 12:41:59 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ2PR03MB7071.namprd03.prod.outlook.com (2603:10b6:a03:4ff::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.15; Fri, 29 May
 2026 10:41:55 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0071.011; Fri, 29 May 2026
 10:41:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QT1DjAII6QVqmLLo2u9mS/8AlKq4g2BtMBRONXMIDcJKsYYu+QILN55nrZEkZ2OH3x+qd2molkLycZjZE0f9nAUPanQ1o/YrjSj2uPb2L9tPq7qvAaxaZsgWck5xhEF0cZt/tzVIuvjMEPuwSeiXESrxbh/Wbkwn3DzqFCrecXn5tfWvCKknfTpgLshjXFfk4Nim7OtKTBRCARYgDD476G8Iy45uGgEIkj/5rdKe0wdfVuMD/VFv5zGUpdfOPWRQW69gIpb811hwVo7dfYbu169qHBhHCn7GlgUez+S/DxIwLWkMT/RXLF45GygNgS66SN0mNehjEtyh5T0IqP2C/A==
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=NwZmiP5bUbjE+gwp/QJvJyWGRZ9RQ12I/oanFjhqSTc=;
 b=qArZ5zrZ6c4r+F1arPMaeVqDaXzhXEBTiEai4OszPEtxU0Ay8BqUYeyj8jo57nw6Wjtglw2W+pX/cytcyYAIKE/taOKmDE97sgLIUg7kMVMNBLvuoSmguzDN1LI+Oirlm5BanEHd3OYCNEKskuqvkph0f5aPcvJd1+i0oSMa8nuBxNfyD0TfeDoSnjElqrzG+NSzJTXsc6Xk9TnGbIOgKvjsQnpapWWTGpzgEn8+RLLL9mJ148GUaz+7L7GXO3T6LhrTQBuYuoRkchXNzQpHbn8JtONiAdubQvErhO7to0a/AxndbPA6b5/IcX8JLHXhcBKJ9W1u1Cx7pRSfKtFB9g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NwZmiP5bUbjE+gwp/QJvJyWGRZ9RQ12I/oanFjhqSTc=;
 b=XC2olc3ZkGNsdpAUfiXf8oLlmgd3wNcs4WmCDllQ/2ffcoLDImFGYJo6LlcCetXlpVUD8CmVh12JgO9tw/EQxIrHrfvi6yx8YaYGtziOKmsratyev1LgiK+RDbDYszaBsjxZ1alG1yQuniC8RPExygMDy6/1tApvpHEgR7kwhZI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <095aa162-a397-46dd-b34f-5c9c1b15e149@citrix.com>
Date: Fri, 29 May 2026 11:41:50 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v2] coverage: place GCOV-generated .text.startup section
 in init text
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <fb154ba84ed01a060c6617194080d7cd77f9144d.1780044400.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <fb154ba84ed01a060c6617194080d7cd77f9144d.1780044400.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PA7P264CA0025.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:2df::12) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ2PR03MB7071:EE_
X-MS-Office365-Filtering-Correlation-Id: 46c9db7d-6019-4db4-5efd-08debd6ee735
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|18002099003|22082099003|56012099006|6133799003|11063799006|3023799007;
X-Microsoft-Antispam-Message-Info:
	TkDdLig3+/0vgGGdt6JjoLPs81ASPNiuHLCRrZ9am7DuHYW/nUS7pgRIdLrBA1nvmaEHXUcDapkPvAXT5HCbNtXU4PBpmfCSvVKPpyF8YsRp6TfAds3LLpvLVHVBoWsED7N7HpG4uS/J9+8yhGUcixfUdPNnihZMzk76iOHjTgrDNz9m484jhz6ltNGKUFzKvOzwVeCzH9NUl08K+f+FsnCyrjx1nTFkcPUU+qHMQsNVVBObTZJ6yj8e1gmI2x20NY+i7r9JC7Bs9UxPb9gG1qmwP710FdFLuCL007xlKFwJ/RL3nyggmzdM35MdCQzT+wHxHE1NtzuSewnckY7jELf7huPUJYcHiqNT5fmWRn8/eH5XSUIDAgokWoEBaobbGKNJR02qi8mda36JL45STeCeWLBpIYIbkDQdVkdSTtH2Bob8UF8scLshVpEq7nrwtm38rO2RieI7DArzzdcW8RcgFBA456I/NG1ZEsw7s6HfbmF8M9DtlWfo4gb4NNDUodbwzGFqiHxXfu8eItYTrOrPJQHsdEK6BC9Hr0PZ2RvVf9m5ioF67oZxH3teupbJufe0Nc5Y8vG5FBqjSQt676waEJvBVn2om3b0NwNzxUP5Hv0DA0I4fl9jABwwaeTyUz1k04WQ1tdP7OTYyW+l6w==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(18002099003)(22082099003)(56012099006)(6133799003)(11063799006)(3023799007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MVdNYTJMek1FN2pTZDZweTRnRE1XaVhYUmRHSm1xWFluemk3OU5uS09xcmRv?=
 =?utf-8?B?MmgxWUI4RVAwcHh4UnhXMzVPbTc3V2owbmlrelVwNUVqSUdBMW5VNU1TOHBw?=
 =?utf-8?B?ODQ1T3B1NzZuQWNyVExpNjZwR0xXSmdsdjJHUjRiK29PZmY0NlYzRHFXK2tz?=
 =?utf-8?B?eW1oMjZBOVdPT0F4RGNBQTdyeFBtYlhlUjFPWFJpaUV0YXRkUWo2QlhaN2tO?=
 =?utf-8?B?VXp1ejVORHk2QmdqY1MwQWU2Q0lNOWxkK1N3bTJ0cmYwM2xPYmhZcHJnZjlt?=
 =?utf-8?B?MnZubGNoV0xmYkt1S2hDbjQyK3RCRTU4N05rWUkwc29rT1dJaXgxV0xnUlB5?=
 =?utf-8?B?MC9abVNDN295amJ4aGlCYUVIdUI3d2xVT2JTclRxR1FicVpzWHZyVlBHdVVl?=
 =?utf-8?B?clZzVGtjRGxKRm5QWVFYakVvNE9hYk9saFRleUVRc0xLekpyT0kwTlVTelNO?=
 =?utf-8?B?MkRHWXFsaVlQbWw0N09VVFMrYkJsMkNDTEVwMGVRaGczSUZKemwySy9zSlRM?=
 =?utf-8?B?bUxJZWtHekxUQmd1MlFtc3AwbzZ3UWl3MWRKbXVyd09BRjRFQUpkY2dJdkN2?=
 =?utf-8?B?d3NmYms0VUE4cWtteGtKeTVqTXNrWitJZ2VFa0wyVmNsRmxSWkNZbUxqa0Vu?=
 =?utf-8?B?RzBRamRncFFaWEt3ZWhpYW9lU0ZrSmZiMVBhei9hUk1GVFhZQjJvRS9qcnA0?=
 =?utf-8?B?Yk5LNzdWRkRwMnZFSWlWeGk3OUdQdTgzTXZCV1JaZXdDTmFSN3NwdmNXaWRj?=
 =?utf-8?B?TlljclpyM0Zaai9TRE5UaDNuRFRESkxWMEdHVExwR1ljZmp3MXQ0U29pMlpT?=
 =?utf-8?B?K0xjZUgxUVU5U2dtQ0hPV3JicmJYVkRLSXY1Y1B1VGw4SDZtdHhBTG9pdFI4?=
 =?utf-8?B?V2dad3lsZ2loUlVFaFhIeDFiUWhmd0Y3NWJEVERETFRRc3lKcEg5bkl4Z0Vy?=
 =?utf-8?B?OEpOd2JZZVBnMmtRS1JPb1B5TEJ6NkE4b05zaSs4cVVBbTBuT2N1VkY5UnhO?=
 =?utf-8?B?aHVvclMvTitqYU0vdmMwNUs3TGVFS2ZKaUp5MGJ4T3FyZytRTHNaNUh4cTU3?=
 =?utf-8?B?eHRRWExWaDM1L0RvWGJsRXZiNHdJY1ZidXR5SG5BT0tyVThZUVByMTF4Vi9E?=
 =?utf-8?B?QnNRZzJHcWFOQ3FBZ0ZNczZaMXpRQm1yRUlVVURFTEFwV2VURzlrVUZ4WEFS?=
 =?utf-8?B?V2syNjRiaUQxWFlQSFl1a3lmb09nenVleGpWaEZuSFA2WDhIcmxPeThvWXg5?=
 =?utf-8?B?ZUF2aUpCSmpJRUJWb0hmMk9xa1F3anNXRUgrK0I1ZDl2YnppU1pyRWtLSTBj?=
 =?utf-8?B?WjJZUVdaVWhiZVJMbzdTb0QrZ2xhWThwQWNvR2xTSG5UU28xRlZVQmlzRWRr?=
 =?utf-8?B?VHl2SCtCSDdnS2N5K09aWEUvVkFHWjc2bHZYRjlrdjBSME5MY3JjeC8xd0V5?=
 =?utf-8?B?YzdiWFhnVHZEejBJWUhVQWpVL0NseUpDK29mNk1qR29jWUJvbU91K3g4K1dy?=
 =?utf-8?B?RGZJd0NQeDlCNGQ4TmI1LzdybElCMWtkbWd4WHpCcS9BLzIyODhtRVhlMnA2?=
 =?utf-8?B?RnVJeitNdjUzQmpRSVNkdDZDN01wcE43ZFdpbUxTZHlMbE9BQ0dFQ1hEVnZC?=
 =?utf-8?B?OHBSZ3ZKbVlKNjNNeUxsTVJCcVBLZFc0MldzNStBUVJENW5iOTVXcU9ORDRj?=
 =?utf-8?B?NEpOU2F4Z0FCbUM5UkJPUjFmWTlpUUVvRHBGKys0cDNacW9pV3FKa29WMzJU?=
 =?utf-8?B?VVJvM3ExY0xJZkgxTFM2c2VYaWdvV1JxTStmc2pVdVQxMlA5dTZibTlOdUd2?=
 =?utf-8?B?c3ExYTNtSWVPUmVhenppb2U5RmMwNitISTdDYXE4VDE0eEVkMFljNGcxdG9t?=
 =?utf-8?B?R2M2aGZaZmpUd3IzNW85ejVzVTRnY2hEZmhRR2xyMytsKzZZekU0U2NheWxQ?=
 =?utf-8?B?SW0rNUduUHp1V2Z6Y0o1TjZkZDJNU29kYWw0RTJaOW5ITEhiYnpUY2pyeGJE?=
 =?utf-8?B?d3B5MkJSSi9BQWJobEtMb2JKemhoV3RkY0g0UGR2Qm1WVk40bEJNS3F2SGov?=
 =?utf-8?B?YnE2S2dES0lwaWY5Y291aUY4VDZjY2FET3p2bGdiVmQ2eUpPMmttamhhKzVV?=
 =?utf-8?B?ZjFISkVFU1hmVFZGM2gzeUtYVU9aQlVZWUZ2TWd4WkNEZG91MlpDM2M3TUlp?=
 =?utf-8?B?bXZneWxQWHhJM1NiOS9wM2VtVGI5ZFY0U0RDRkt4OU9LRjFHNWUycE1Yb2Rn?=
 =?utf-8?B?MVFPLzFMVlYrWHlkdnRpT3R1QkRlOEcwc3pHRjhXL085eFFvbFpMUnFDaGlP?=
 =?utf-8?B?NE1XMkRHYnRhK1J3aGJhaGhJbG5Vb3lYTmxCUDJZNGU2dU9tcXFMbU8rZDRk?=
 =?utf-8?Q?ql3RgrrjyD40VDm0=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 46c9db7d-6019-4db4-5efd-08debd6ee735
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 May 2026 10:41:55.7135
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: A82gMaCLHL/lIJCvk6xwmlpEbAGt3yYGTH34LnEMmoHe5dNNXe1xdWxBZCRtEuv0uc2iSA5TNQb9mb75v894EEeyZhWqQVq2K0LjlD0bES0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7071
X-purgate-ID: tlsNG-c1860d/1780051319-C5386DB1-D45D5588/0/0
X-purgate-type: clean
X-purgate-size: 4242

On 29/05/2026 9:53 am, Dmytro Prokopchuk1 wrote:
> GCOV instrumentation can emit executable input sections such as
> .text.startup when CONFIG_COVERAGE is enabled.
>
> At present the x86 already places .text.startup in .init.text,
> but Arm, RISC-V and PPC do not. With CONFIG_COVERAGE=y .text.startup
> can therefore be treated as a linker orphan on those architectures.
>
> Constructors generated by coverage instrumentation can then point
> at code outside the normal RX text mapping, leading to early boot
> crashes from init_constructors():
>
>     (XEN) [   12.331193] Instruction Abort Trap. Syndrome=0xf
>     (XEN) [   12.334253] Walking Hypervisor VA 0xa00003ce000 on CPU0 via TTBR 0x000000004352d000
>     (XEN) [   12.338550] 0TH[0x014] = 0x4352cf7f
>     (XEN) [   12.341823] 1ST[0x000] = 0x4352bf7f
>     (XEN) [   12.345124] 2ND[0x001] = 0x40000043527f7f
>     (XEN) [   12.347329] 3RD[0x1ce] = 0x400000433cef7f
>     (XEN) [   12.351233] CPU0: Unexpected Trap: Instruction Abort
>     (XEN) [   12.357643] ----[ Xen-4.21.1  arm64  debug=n gcov=y  Not tainted ]----
>     (XEN) [   12.360243] CPU:    0
>     (XEN) [   12.364098] PC:     00000a00003ce000 00000a00003ce000
>     (XEN) [   12.375835] LR:     00000a00004802f8
>     (XEN) [   12.378273] SP:     00000a00004c7e10
>     (XEN) [   12.380492] CPSR:   0000000080000249 MODE:64-bit EL2h (Hypervisor, handler)
>     (XEN) [   12.382785]      X0: 00000a00003ce000  X1: 0000000000000000  X2: 00000a0000410fa0
>     (XEN) [   12.385176]      X3: 0000000000000000  X4: 0000000000000010  X5: 0000000000000001
>     (XEN) [   12.387555]      X6: 00000a00004e5f40  X7: 00000a00004e5f38  X8: 0000000000000000
>     (XEN) [   12.390027]      X9: 00000a00004e5f20 X10: 00000a00004e5f30 X11: 00000a00004e5f40
>     (XEN) [   12.392510]     X12: 00000a0000439748 X13: 00000a0000406938 X14: 000000000000062e
>     (XEN) [   12.394954]     X15: 00000a00004f3918 X16: 00000a00004c7bb5 X17: 00000000004c7bb5
>     (XEN) [   12.397293]     X18: 0000000000000030 X19: 000000000000001d X20: 00000000000000a9
>     (XEN) [   12.399803]     X21: 00000a00004c8008 X22: 00000a00003fa000 X23: 00000a00004e2000
>     (XEN) [   12.402392]     X24: 00000a00003f9390 X25: 00000a00003fa000 X26: 00000a00003f4ca8
>     (XEN) [   12.404798]     X27: 0000000000000002 X28: 00000a000057a9c0  FP: 00000000bedb6740
>     (XEN) [   12.407110]
>     (XEN) [   12.409442]   VTCR_EL2: 0000000080023558
>     (XEN) [   12.411291]  VTTBR_EL2: 00000000bffc4000
>     (XEN) [   12.412895]
>     (XEN) [   12.414204]  SCTLR_EL2: 0000000030cd183d
>     (XEN) [   12.415928]    HCR_EL2: 0000000000000039
>     (XEN) [   12.417642]  TTBR0_EL2: 000000004352d000
>     (XEN) [   12.419152]
>     (XEN) [   12.420327]    ESR_EL2: 000000008600000f
>     (XEN) [   12.422056]  HPFAR_EL2: 0000000000000000
>     (XEN) [   12.423809]    FAR_EL2: 00000a00003ce000
>     ...
>     (XEN) [   12.485355] Xen call trace:
>     (XEN) [   12.489080]    [<00000a00003ce000>] 00000a00003ce000 (PC)
>     (XEN) [   12.512076]    [<00000a00004802f8>] init_constructors+0x38/0x50 (LR)
>
> Observed failing symbol:
>     _sub_I_00100_0
> called from:
>     init_constructors()
> The issue can be diagnosed by enabling linker orphan diagnostics or
> generating a linker map:
>     LDFLAGS += "--orphan-handling=warn"
>     LDFLAGS += "-Map=xen.map"
> and then inspecting orphaned executable sections such as:
>     .text.startup
>
> Place .text.startup in .init.text on the non-x86 linker scripts,
> matching the existing x86 behavior.
>
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> Changes in v2:
> - do not add *(.text.*) when CONFIG_COVERAGE is enables
> - copy the existing x86 linker script behavior to the non-x86 linker scripts
>   (put .text.startup into .init.text on Arm, RISC-V and PPC)
> - update commit subject and message accordingly
>
> Link to v1:
> https://patchew.org/Xen/cb8c1e0862a554f7a28347f549e9cfd0b0d6db2f.1779829545.git.dmytro._5Fprokopchuk1@epam.com/

What about my feedback to v1 which showed that .text.startup
specifically is buggy in x86, and provided a suggestion of what to do
about it?

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri May 29 12:46:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 12:46:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321934.1588357 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwbE-00085w-Cj; Fri, 29 May 2026 12:46:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321934.1588357; Fri, 29 May 2026 12:46:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwbE-00085p-9N; Fri, 29 May 2026 12:46:04 +0000
Received: by outflank-mailman (input) for mailman id 1321934;
 Fri, 29 May 2026 12:46:03 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wSwbD-00085h-KL
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 12:46:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSwbC-00B91t-Bm
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:46:02 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198a7b-5cb7-0a2a0a5109dd-0a2a4506aff6-44
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:46:02 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198a89-7371-0a2a45060019-a0658308925a-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:46:02 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 13F78439EC2B;
 Fri, 29 May 2026 08:44:56 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Tim Deegan <tim@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 0/7] xen/mm: Normalize per-domain page counters, >16 TiB per domain
Date: Fri, 29 May 2026 13:43:54 +0100
Message-Id: <cover.1780058608.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1780058762-85B6DD75-BD203A51/0/0
X-purgate-type: clean
X-purgate-size: 2730

Summary of a comment by Jan Beulich motivating this submission:
> Considering that systems (and hence guests) only ever get larger, we
> should consider to normalize per-domain page counters to unsigned long.

This series enables supporting guests >16 TiB in the future
once the system support for machines >16 TiB is implemented.

1. xen/mm: Normalize common per-domain page counters to unsigned long
2. x86/mm: Normalize X86 per-domain page counters to unsigned long
3. xen/mm: Static memory: Widen assign_pages(nr) to unsigned long
4. xen/mm: Static memory: Widen domstatic plumbing to unsigned long
5. xen/mm: device-tree: Widen static page counts to unsigned long
6. xen/arch/x86/dom0_build.c: Extend the upper limit for Dom0's max_pages
7. tools/libs/stat/xenstat.c: Extend the "no maximum" sentinel for max_pages

This series is based on the NUMA claim sets v7 series:
https://lists.xen.org/archives/html/xen-devel/2026-05/msg00363.html

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>

Bernhard Kaindl (7):
  xen/mm: Normalize common per-domain page counters to unsigned long
  x86/mm: Normalize X86 per-domain page counters to unsigned long
  xen/mm: Static memory: Widen assign_pages(nr) to unsigned long
  xen/mm: Static memory: Widen domstatic plumbing to unsigned long
  xen/mm: device-tree: Widen static page counts to unsigned long
  xen/arch/x86/dom0_build.c: Extend the upper limit for Dom0's max_pages
  tools/libs/stat/xenstat.c: Extend the "no maximum" sentinel for
    max_pages

 tools/libs/stat/xenstat.c               |  2 +-
 xen/arch/arm/include/asm/p2m.h          |  2 +-
 xen/arch/x86/dom0_build.c               |  2 +-
 xen/arch/x86/include/asm/domain.h       |  6 ++--
 xen/arch/x86/include/asm/hap.h          |  4 +--
 xen/arch/x86/include/asm/paging.h       |  2 +-
 xen/arch/x86/include/asm/shadow.h       |  2 +-
 xen/arch/x86/mm/hap/hap.c               | 19 ++++++-----
 xen/arch/x86/mm/p2m-pod.c               |  2 +-
 xen/arch/x86/mm/paging.c                |  9 +++---
 xen/arch/x86/mm/shadow/common.c         | 42 ++++++++++++-------------
 xen/common/device-tree/dom0less-build.c |  2 +-
 xen/common/device-tree/static-memory.c  |  9 +-----
 xen/common/device-tree/static-shmem.c   |  9 +++---
 xen/common/grant_table.c                |  2 +-
 xen/common/keyhandler.c                 |  8 ++---
 xen/common/numa.c                       |  2 +-
 xen/common/page_alloc.c                 | 20 ++++++------
 xen/include/xen/mm.h                    |  4 +--
 xen/include/xen/sched.h                 | 16 +++++-----
 20 files changed, 77 insertions(+), 87 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 29 12:46:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 12:46:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321936.1588367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwbU-0008MN-JQ; Fri, 29 May 2026 12:46:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321936.1588367; Fri, 29 May 2026 12:46:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwbU-0008MG-Ff; Fri, 29 May 2026 12:46:20 +0000
Received: by outflank-mailman (input) for mailman id 1321936;
 Fri, 29 May 2026 12:46:19 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wSwbT-0008Lb-6s
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 12:46:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSwbS-00B4Cd-Ju
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:46:18 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198a86-e002-0a2a0a5209dd-0a2a4507e3ba-40
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:46:18 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198a99-229c-0a2a45070019-a06583089fb8-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:46:18 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id BFEBA439EC2B;
 Fri, 29 May 2026 08:45:12 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Tim Deegan <tim@xen.org>
Subject: [PATCH 1/7] xen/mm: Normalize common per-domain page counters to unsigned long
Date: Fri, 29 May 2026 13:43:55 +0100
Message-Id: <2a2bb3c2f32a82e722cf2e912f8b71443f67fd9b.1780058608.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1780058608.git.bernhard.kaindl@citrix.com>
References: <cover.1780058608.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1780058778-20D67C48-3BAB7ABE/0/0
X-purgate-type: clean
X-purgate-size: 8007

Prepare common code for >16 TiB domains by normalizing the per-domain
page counts in struct domain (tot_pages, xenheap_pages, extra_pages,
outstanding_pages, max_pages, node_claims and claims[MAX_NUMNODES])
to unsigned long and update related code accordingly:

- Update format specifiers for widened types across affected files. NB:
  - shr_pages and paged_pages are atomic_t; their formats are %d.
  - pod.entry_count in p2m-pod.c is unsigned long; %lu is correct.

Updates for domain_tot_pages():
- unsigned int domain_tot_pages(d) -> unsigned long domain_tot_pages(d).
- assign_pages(): Assign domain_tot_pages(d) to unsigned long likewise.
- sh_min_allocation(): 0U -> 0UL for unsigned long domain_tot_pages().

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 xen/arch/x86/mm/p2m-pod.c       |  2 +-
 xen/arch/x86/mm/shadow/common.c |  2 +-
 xen/common/grant_table.c        |  2 +-
 xen/common/keyhandler.c         |  8 ++++----
 xen/common/numa.c               |  2 +-
 xen/common/page_alloc.c         |  8 ++++----
 xen/include/xen/sched.h         | 16 ++++++++--------
 7 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c
index 7a0bebd2d3b5..14d18b726e80 100644
--- a/xen/arch/x86/mm/p2m-pod.c
+++ b/xen/arch/x86/mm/p2m-pod.c
@@ -1270,7 +1270,7 @@ p2m_pod_demand_populate(struct p2m_domain *p2m, gfn_t gfn,
 out_of_memory:
     pod_unlock_and_flush(p2m);
 
-    printk("%s: Dom%d out of PoD memory! (tot=%"PRIu32" ents=%ld dom%d)\n",
+    printk("%s: Dom%d out of PoD memory! (tot=%lu ents=%lu dom%d)\n",
            __func__, d->domain_id, domain_tot_pages(d),
            p2m->pod.entry_count, current->domain->domain_id);
     domain_crash(d);
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index ed698fa90bc7..e300898fe789 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -768,7 +768,7 @@ static unsigned int sh_min_allocation(const struct domain *d)
      * up of slot zero and an LAPIC page), plus one for HVM's 1-to-1 pagetable.
      */
     unsigned int extra = max(domain_tot_pages(d) / 256,
-                             is_hvm_domain(d) ? CONFIG_PAGING_LEVELS + 2 : 0U) +
+                             is_hvm_domain(d) ? CONFIG_PAGING_LEVELS + 2 : 0UL) +
                          is_hvm_domain(d);
 
     return shadow_min_acceptable_pages(d) +
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index ac9fed600101..3c1f8876da22 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -2396,7 +2396,7 @@ gnttab_transfer(
                          e->domain_id);
             else
                 gdprintk(XENLOG_INFO,
-                         "Transferee %pd has no headroom (tot %u, max %u, ex %u)\n",
+                         "Transferee %pd has no headroom (tot %lu, max %lu, ex %lu)\n",
                          e, domain_tot_pages(e), e->max_pages, e->extra_pages);
 
             gop.status = GNTST_general_error;
diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
index cb6df2823b00..b1cb9e7ba8d9 100644
--- a/xen/common/keyhandler.c
+++ b/xen/common/keyhandler.c
@@ -278,14 +278,14 @@ static void cf_check dump_domains(unsigned char key)
         printk("    refcnt=%d dying=%d pause_count=%d\n",
                atomic_read(&d->refcnt), d->is_dying,
                atomic_read(&d->pause_count));
-        printk("    nr_pages=%u xenheap_pages=%u"
+        printk("    nr_pages=%lu xenheap_pages=%lu"
 #ifdef CONFIG_MEM_SHARING
-               " shared_pages=%u"
+               " shared_pages=%d"
 #endif
 #ifdef CONFIG_MEM_PAGING
-               " paged_pages=%u"
+               " paged_pages=%d"
 #endif
-               " dirty_cpus={%*pbl} max_pages=%u\n",
+               " dirty_cpus={%*pbl} max_pages=%lu\n",
                domain_tot_pages(d), d->xenheap_pages,
 #ifdef CONFIG_MEM_SHARING
                atomic_read(&d->shr_pages),
diff --git a/xen/common/numa.c b/xen/common/numa.c
index ad75955a1622..8c561578615c 100644
--- a/xen/common/numa.c
+++ b/xen/common/numa.c
@@ -743,7 +743,7 @@ static void cf_check dump_numa(unsigned char key)
 
         process_pending_softirqs();
 
-        printk("%pd (total: %u):\n", d, domain_tot_pages(d));
+        printk("%pd (total: %lu):\n", d, domain_tot_pages(d));
 
         memset(page_num_node, 0, sizeof(page_num_node));
 
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 1801afc96a0a..3f8b300d8c29 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -2892,11 +2892,11 @@ int assign_pages(
     }
     else if ( !(memflags & MEMF_no_refcount) )
     {
-        unsigned int tot_pages = domain_tot_pages(d);
+        unsigned long tot_pages = domain_tot_pages(d);
 
         if ( unlikely(tot_pages > d->max_pages) )
         {
-            gprintk(XENLOG_INFO, "Inconsistent allocation for %pd: %u > %u\n",
+            gprintk(XENLOG_INFO, "Inconsistent allocation for %pd: %lu > %lu\n",
                     d, tot_pages, d->max_pages);
             rc = -EPERM;
             goto out;
@@ -2904,7 +2904,7 @@ int assign_pages(
 
         if ( unlikely(nr > d->max_pages - tot_pages) )
         {
-            gprintk(XENLOG_INFO, "Over-allocation for %pd: %Lu > %u\n",
+            gprintk(XENLOG_INFO, "Over-allocation for %pd: %Lu > %lu\n",
                     d, tot_pages + 0ULL + nr, d->max_pages);
             rc = -E2BIG;
             goto out;
@@ -2916,7 +2916,7 @@ int assign_pages(
         if ( unlikely(d->tot_pages + nr < nr) )
         {
             gprintk(XENLOG_INFO,
-                    "Excess allocation for %pd: %Lu (%u extra)\n",
+                    "Excess allocation for %pd: %Lu (%lu extra)\n",
                     d, d->tot_pages + 0ULL + nr, d->extra_pages);
             if ( pg[0].count_info & PGC_extra )
                 d->extra_pages -= nr;
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index f671e0c4c7b3..ee9d4a7ff9e3 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -414,17 +414,17 @@ struct domain
      * This field should only be directly accessed by domain_adjust_tot_pages()
      * and the domain_tot_pages() helper function defined below.
      */
-    unsigned int     tot_pages;
+    unsigned long    tot_pages;
 
-    unsigned int     xenheap_pages;     /* pages allocated from Xen heap */
+    unsigned long    xenheap_pages;     /* pages allocated from Xen heap */
     /* Pages claimed but not possessed, protected by global heap_lock. */
-    unsigned int     outstanding_pages;
-    unsigned int     node_claims;       /* Sum of per-node claims. */
+    unsigned long    outstanding_pages;
+    unsigned long    node_claims;       /* Sum of per-node claims. */
     /* Domain objects use dedicated pages, leaving room for per-node claims. */
-    unsigned int     claims[MAX_NUMNODES]; /* Per-NUMA-node claims. */
+    unsigned long    claims[MAX_NUMNODES]; /* Per-NUMA-node claims. */
 
-    unsigned int     max_pages;         /* maximum value for domain_tot_pages() */
-    unsigned int     extra_pages;       /* pages not included in domain_tot_pages() */
+    unsigned long    max_pages;         /* maximum value for domain_tot_pages() */
+    unsigned long    extra_pages;       /* pages not included in domain_tot_pages() */
 
 #ifdef CONFIG_MEM_SHARING
     atomic_t         shr_pages;         /* shared pages */
@@ -691,7 +691,7 @@ static inline struct page_list_head *page_to_list(
 }
 
 /* Return number of pages currently posessed by the domain */
-static inline unsigned int domain_tot_pages(const struct domain *d)
+static inline unsigned long domain_tot_pages(const struct domain *d)
 {
     ASSERT(d->extra_pages <= d->tot_pages);
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 29 12:46:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 12:46:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321952.1588375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwbk-0000Qj-QL; Fri, 29 May 2026 12:46:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321952.1588375; Fri, 29 May 2026 12:46:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwbk-0000Qc-Ne; Fri, 29 May 2026 12:46:36 +0000
Received: by outflank-mailman (input) for mailman id 1321952;
 Fri, 29 May 2026 12:46:35 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wSwbj-0000Q0-4W
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 12:46:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSwbi-00B4Cd-HR
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:46:34 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198aa0-e002-0a2a0a5209dd-0a2a4507aa80-20
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:46:34 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198aa9-229c-0a2a45070019-a065830980c0-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:46:34 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 3DAF88275E96;
 Fri, 29 May 2026 08:45:18 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Tim Deegan <tim@xen.org>
Subject: [PATCH 2/7] x86/mm: Normalize X86 per-domain page counters to unsigned long
Date: Fri, 29 May 2026 13:43:56 +0100
Message-Id: <21fa13ba303f59f14ace46cd0715b07f8ae99468.1780058608.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1780058608.git.bernhard.kaindl@citrix.com>
References: <cover.1780058608.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1780058794-23979C48-7BB0F2A9/0/0
X-purgate-type: clean
X-purgate-size: 16494

Prepare x86 for >16 TiB domains by normalizing the per-domain page counts
in paging_domain (total_pages, free_pages, p2m_pages) to unsigned long
and widen page counts in related x86 allocation functions accordingly:

- paging_domain.{total,free,p2m}_pages: unsigned int -> unsigned long
- x86/mm/shadow/common.c:
  - unsigned long sh_min_allocation(d)
  - unsigned long shadow_min_acceptable_pages(d)
  - unsigned long shadow_get_allocation(d)
  - shadow_set_allocation(unsigned long pages)
  - shadow_enable(): fix narrowing from d->arch.paging.total_pages to
    unsigned int
- x86/mm/hap/hap.c:
  - unsigned long hap_get_allocation(d)
  - hap_set_allocation(unsigned long pages)
  - hap_enable(): fix narrowing from d->arch.paging.total_pages to
    unsigned int
- x86/mm/paging.c:
  - paging_set_allocation(unsigned long pages)
  - arch_set_paging_mempool_size() don't truncate pages

Note: pages in _shadow_prealloc(), shadow_alloc(), shadow_free() and
shadow_prealloc() is intentionally kept as unsigned int.  It carries
the per-shadow-entry page count from shadow_size() (uint8_t-backed,
max 4), not the pool allocation count.

Note: xen_domctl_shadow_op.mb stays uint32_t, and the domctl ABI remains
MB-based and caps at 4 PiB, replacing the 16 TiB per-domain limit.
Casts widen the mb-to-pages arithmetic to unsigned long where needed.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 xen/arch/x86/include/asm/domain.h |  6 ++---
 xen/arch/x86/include/asm/hap.h    |  4 +--
 xen/arch/x86/include/asm/paging.h |  2 +-
 xen/arch/x86/include/asm/shadow.h |  2 +-
 xen/arch/x86/mm/hap/hap.c         | 19 +++++++-------
 xen/arch/x86/mm/paging.c          |  9 +++----
 xen/arch/x86/mm/shadow/common.c   | 42 +++++++++++++++----------------
 7 files changed, 41 insertions(+), 43 deletions(-)

diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 385a6666dafa..d3021a863353 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -221,9 +221,9 @@ struct paging_domain {
 
     /* Memory allocation (common to shadow and HAP) */
     struct page_list_head   freelist;
-    unsigned int            total_pages;  /* number of pages allocated */
-    unsigned int            free_pages;   /* number of pages on freelists */
-    unsigned int            p2m_pages;    /* number of pages allocated to p2m */
+    unsigned long           total_pages;  /* number of pages allocated */
+    unsigned long           free_pages;   /* number of pages on freelists */
+    unsigned long           p2m_pages;    /* number of pages allocated to p2m */
 
     /* log dirty support */
     struct log_dirty_domain log_dirty;
diff --git a/xen/arch/x86/include/asm/hap.h b/xen/arch/x86/include/asm/hap.h
index f01ce73fb4f3..061181724e90 100644
--- a/xen/arch/x86/include/asm/hap.h
+++ b/xen/arch/x86/include/asm/hap.h
@@ -33,8 +33,8 @@ int   hap_track_dirty_vram(struct domain *d,
                            XEN_GUEST_HANDLE(void) guest_dirty_bitmap);
 
 extern const struct paging_mode *hap_paging_get_mode(struct vcpu *v);
-int hap_set_allocation(struct domain *d, unsigned int pages, bool *preempted);
-unsigned int hap_get_allocation(struct domain *d);
+int hap_set_allocation(struct domain *d, unsigned long pages, bool *preempted);
+unsigned long hap_get_allocation(struct domain *d);
 
 #endif /* XEN_HAP_H */
 
diff --git a/xen/arch/x86/include/asm/paging.h b/xen/arch/x86/include/asm/paging.h
index 291ab386e865..fd52290cfe89 100644
--- a/xen/arch/x86/include/asm/paging.h
+++ b/xen/arch/x86/include/asm/paging.h
@@ -310,7 +310,7 @@ void paging_dump_vcpu_info(struct vcpu *v);
  * Input might be rounded up to at minimum amount of pages, plus
  * space for the p2m table.
  * Returns 0 for success, non-zero for failure. */
-int paging_set_allocation(struct domain *d, unsigned int pages,
+int paging_set_allocation(struct domain *d, unsigned long pages,
                           bool *preempted);
 
 /* Is gfn within maxphysaddr for the domain? */
diff --git a/xen/arch/x86/include/asm/shadow.h b/xen/arch/x86/include/asm/shadow.h
index 60589c3cacee..8aac018132ac 100644
--- a/xen/arch/x86/include/asm/shadow.h
+++ b/xen/arch/x86/include/asm/shadow.h
@@ -91,7 +91,7 @@ void shadow_blow_tables_per_domain(struct domain *d);
  * Input will be rounded up to at least shadow_min_acceptable_pages(),
  * plus space for the p2m table.
  * Returns 0 for success, non-zero for failure. */
-int shadow_set_allocation(struct domain *d, unsigned int pages,
+int shadow_set_allocation(struct domain *d, unsigned long pages,
                           bool *preempted);
 
 /* Helper to invoke for deferred releasing of a top-level shadow's reference. */
diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index 5ccb80bda5d3..ccea676c361b 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -327,18 +327,18 @@ static void cf_check hap_free_p2m_page(struct domain *d, struct page_info *pg)
 }
 
 /* Return the size of the pool, rounded up to the nearest MB */
-unsigned int hap_get_allocation(struct domain *d)
+unsigned long hap_get_allocation(struct domain *d)
 {
-    unsigned int pg = d->arch.paging.total_pages
+    unsigned long pg = d->arch.paging.total_pages
         + d->arch.paging.p2m_pages;
 
     return ((pg >> (20 - PAGE_SHIFT))
-            + ((pg & ((1 << (20 - PAGE_SHIFT)) - 1)) ? 1 : 0));
+            + ((pg & ((1UL << (20 - PAGE_SHIFT)) - 1)) ? 1 : 0));
 }
 
 /* Set the pool of pages to the required number of pages.
  * Returns 0 for success, non-zero for failure. */
-int hap_set_allocation(struct domain *d, unsigned int pages, bool *preempted)
+int hap_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
 {
     struct page_info *pg;
 
@@ -456,7 +456,6 @@ void hap_domain_init(struct domain *d)
 /* return 0 for success, -errno for failure */
 int hap_enable(struct domain *d, u32 mode)
 {
-    unsigned int old_pages;
     unsigned int i;
     int rv = 0;
 
@@ -469,8 +468,7 @@ int hap_enable(struct domain *d, u32 mode)
 
     domain_pause(d);
 
-    old_pages = d->arch.paging.total_pages;
-    if ( old_pages == 0 )
+    if ( d->arch.paging.total_pages == 0UL )
     {
         paging_lock(d);
         rv = hap_set_allocation(d, 256, NULL);
@@ -623,14 +621,14 @@ void hap_teardown(struct domain *d, bool *preempted)
 
     paging_lock(d); /* Keep various asserts happy */
 
-    if ( d->arch.paging.total_pages != 0 )
+    if ( d->arch.paging.total_pages != 0UL )
     {
         hap_set_allocation(d, 0, preempted);
 
         if ( preempted && *preempted )
             goto out;
 
-        ASSERT(d->arch.paging.total_pages == 0);
+        ASSERT(d->arch.paging.total_pages == 0UL);
     }
 
     d->arch.paging.mode &= ~PG_log_dirty;
@@ -651,7 +649,8 @@ int hap_domctl(struct domain *d, struct xen_domctl_shadow_op *sc,
     {
     case XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION:
         paging_lock(d);
-        rc = hap_set_allocation(d, sc->mb << (20 - PAGE_SHIFT), &preempted);
+        rc = hap_set_allocation(d, (unsigned long)sc->mb << (20 - PAGE_SHIFT),
+                                &preempted);
         paging_unlock(d);
         if ( preempted )
             /* Not finished.  Set up to re-run the call. */
diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
index 2396f81ad54a..fa269b8cf39c 100644
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -812,7 +812,7 @@ void paging_final_teardown(struct domain *d)
 {
     bool hap = hap_enabled(d);
 
-    PAGING_PRINTK("%pd start: total = %u, free = %u, p2m = %u\n",
+    PAGING_PRINTK("%pd start: total = %lu, free = %lu, p2m = %lu\n",
                   d, d->arch.paging.total_pages,
                   d->arch.paging.free_pages, d->arch.paging.p2m_pages);
 
@@ -834,7 +834,7 @@ void paging_final_teardown(struct domain *d)
     /* It is now safe to pull down the p2m map. */
     p2m_teardown(p2m_get_hostp2m(d), true, NULL);
 
-    PAGING_PRINTK("%pd done: total = %u, free = %u, p2m = %u\n",
+    PAGING_PRINTK("%pd done: total = %lu, free = %lu, p2m = %lu\n",
                   d, d->arch.paging.total_pages,
                   d->arch.paging.free_pages, d->arch.paging.p2m_pages);
     ASSERT(!d->arch.paging.p2m_pages);
@@ -941,7 +941,7 @@ void paging_update_nestedmode(struct vcpu *v)
     hvm_asid_flush_vcpu(v);
 }
 
-int __init paging_set_allocation(struct domain *d, unsigned int pages,
+int __init paging_set_allocation(struct domain *d, unsigned long pages,
                                  bool *preempted)
 {
     int rc;
@@ -983,8 +983,7 @@ int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
     if ( is_pv_domain(d) )                 /* TODO: Relax in due course */
         return -EOPNOTSUPP;
 
-    if ( size & ~PAGE_MASK ||              /* Non page-sized request? */
-         pages != (unsigned int)pages )    /* Overflow $X_set_allocation()? */
+    if ( size & ~PAGE_MASK )               /* Non page-sized request? */
         return -EINVAL;
 
     paging_lock(d);
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index e300898fe789..814907cec31e 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -302,7 +302,7 @@ sh_validate_guest_entry(struct vcpu *v, mfn_t gmfn, void *entry, u32 size)
  * allow for more than ninety allocated pages per vcpu.  We round that
  * up to 128 pages, or half a megabyte per vcpu.
  */
-static unsigned int shadow_min_acceptable_pages(const struct domain *d)
+static unsigned long shadow_min_acceptable_pages(const struct domain *d)
 {
     return d->max_vcpus * 128;
 }
@@ -408,7 +408,7 @@ static bool __must_check _shadow_prealloc(struct domain *d, unsigned int pages)
     /* Nothing more we can do: all remaining shadows are of pages that
      * hold Xen mappings for some vcpu.  This can never happen. */
     printk(XENLOG_ERR "Can't pre-allocate %u shadow pages!\n"
-           "  shadow pages total = %u, free = %u, p2m=%u\n",
+           "  shadow pages total = %lu, free = %lu, p2m=%lu\n",
            pages, d->arch.paging.total_pages,
            d->arch.paging.free_pages, d->arch.paging.p2m_pages);
 
@@ -709,7 +709,7 @@ shadow_alloc_p2m_page(struct domain *d)
         {
             d->arch.paging.p2m_alloc_failed = 1;
             dprintk(XENLOG_ERR,
-                    "d%d failed to allocate from shadow pool (tot=%u p2m=%u min=%u)\n",
+                    "d%d failed to allocate from shadow pool (tot=%lu p2m=%lu min=%lu)\n",
                     d->domain_id, d->arch.paging.total_pages,
                     d->arch.paging.p2m_pages,
                     shadow_min_acceptable_pages(d));
@@ -760,22 +760,22 @@ shadow_free_p2m_page(struct domain *d, struct page_info *pg)
     paging_unlock(d);
 }
 
-static unsigned int sh_min_allocation(const struct domain *d)
+static unsigned long sh_min_allocation(const struct domain *d)
 {
     /*
      * Don't allocate less than the minimum acceptable, plus one page per
      * megabyte of RAM (for the p2m table, minimally enough for HVM's setting
      * up of slot zero and an LAPIC page), plus one for HVM's 1-to-1 pagetable.
      */
-    unsigned int extra = max(domain_tot_pages(d) / 256,
-                             is_hvm_domain(d) ? CONFIG_PAGING_LEVELS + 2 : 0UL) +
-                         is_hvm_domain(d);
+    unsigned long extra = max(domain_tot_pages(d) / 256,
+                              is_hvm_domain(d) ? CONFIG_PAGING_LEVELS + 2 : 0UL) +
+                          is_hvm_domain(d);
 
     return shadow_min_acceptable_pages(d) +
            max(extra, d->arch.paging.p2m_pages);
 }
 
-int shadow_set_allocation(struct domain *d, unsigned int pages, bool *preempted)
+int shadow_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
 {
     struct page_info *sp;
 
@@ -784,14 +784,14 @@ int shadow_set_allocation(struct domain *d, unsigned int pages, bool *preempted)
     if ( pages > 0 )
     {
         /* Check for minimum value. */
-        unsigned int lower_bound = sh_min_allocation(d);
+        unsigned long lower_bound = sh_min_allocation(d);
 
         if ( pages < lower_bound )
             pages = lower_bound;
         pages -= d->arch.paging.p2m_pages;
     }
 
-    SHADOW_PRINTK("current %i target %i\n",
+    SHADOW_PRINTK("current %lu target %lu\n",
                    d->arch.paging.total_pages, pages);
 
     for ( ; ; )
@@ -846,12 +846,12 @@ int shadow_set_allocation(struct domain *d, unsigned int pages, bool *preempted)
 }
 
 /* Return the size of the shadow pool, rounded up to the nearest MB */
-static unsigned int shadow_get_allocation(struct domain *d)
+static unsigned long shadow_get_allocation(struct domain *d)
 {
-    unsigned int pg = d->arch.paging.total_pages
+    unsigned long pg = d->arch.paging.total_pages
         + d->arch.paging.p2m_pages;
     return ((pg >> (20 - PAGE_SHIFT))
-            + ((pg & ((1 << (20 - PAGE_SHIFT)) - 1)) ? 1 : 0));
+            + ((pg & ((1UL << (20 - PAGE_SHIFT)) - 1)) ? 1 : 0));
 }
 
 /**************************************************************************/
@@ -2085,7 +2085,6 @@ int shadow_enable(struct domain *d, u32 mode)
  * disabled.
  * Returns 0 for success, -errno for failure. */
 {
-    unsigned int old_pages;
     struct page_info *pg = NULL;
     uint32_t *e;
     int rv = 0;
@@ -2103,8 +2102,7 @@ int shadow_enable(struct domain *d, u32 mode)
     }
 
     /* Init the shadow memory allocation if the user hasn't done so */
-    old_pages = d->arch.paging.total_pages;
-    if ( old_pages < sh_min_allocation(d) )
+    if ( d->arch.paging.total_pages < sh_min_allocation(d) )
     {
         paging_lock(d);
         rv = shadow_set_allocation(d, 1024, NULL); /* Use at least 4MB */
@@ -2283,7 +2281,7 @@ void shadow_teardown(struct domain *d, bool *preempted)
     }
 #endif /* (SHADOW_OPTIMIZATIONS & (SHOPT_VIRTUAL_TLB|SHOPT_OUT_OF_SYNC)) */
 
-    if ( d->arch.paging.total_pages != 0 )
+    if ( d->arch.paging.total_pages != 0UL )
     {
         /* Destroy all the shadows and release memory to domheap */
         shadow_set_allocation(d, 0, preempted);
@@ -2295,7 +2293,7 @@ void shadow_teardown(struct domain *d, bool *preempted)
         if (d->arch.paging.shadow.hash_table)
             shadow_hash_teardown(d);
 
-        ASSERT(d->arch.paging.total_pages == 0);
+        ASSERT(d->arch.paging.total_pages == 0UL);
     }
 
     /* Free the non-paged-vcpus pagetable; must happen after we've
@@ -2410,7 +2408,7 @@ static int shadow_one_bit_disable(struct domain *d, u32 mode)
     {
         /* Get this domain off shadows */
         SHADOW_PRINTK("un-shadowing of domain %u starts."
-                       "  Shadow pages total = %u, free = %u, p2m=%u\n",
+                       "  Shadow pages total = %lu, free = %lu, p2m=%lu\n",
                        d->domain_id, d->arch.paging.total_pages,
                        d->arch.paging.free_pages, d->arch.paging.p2m_pages);
         for_each_vcpu(d, v)
@@ -2441,7 +2439,7 @@ static int shadow_one_bit_disable(struct domain *d, u32 mode)
             BUG(); /* In fact, we will have BUG()ed already */
         shadow_hash_teardown(d);
         SHADOW_PRINTK("un-shadowing of domain %u done."
-                       "  Shadow pages total = %u, free = %u, p2m=%u\n",
+                       "  Shadow pages total = %lu, free = %lu, p2m=%lu\n",
                        d->domain_id, d->arch.paging.total_pages,
                        d->arch.paging.free_pages, d->arch.paging.p2m_pages);
     }
@@ -2573,7 +2571,9 @@ int shadow_domctl(struct domain *d,
             paging_unlock(d);
             return -EINVAL;
         }
-        rc = shadow_set_allocation(d, sc->mb << (20 - PAGE_SHIFT), &preempted);
+        rc = shadow_set_allocation(d,
+                                   (unsigned long)sc->mb << (20 - PAGE_SHIFT),
+                                   &preempted);
         paging_unlock(d);
         if ( preempted )
             /* Not finished.  Set up to re-run the call. */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 29 12:47:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 12:47:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321969.1588383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwcG-00013m-7y; Fri, 29 May 2026 12:47:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321969.1588383; Fri, 29 May 2026 12:47:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwcG-00013f-4u; Fri, 29 May 2026 12:47:08 +0000
Received: by outflank-mailman (input) for mailman id 1321969;
 Fri, 29 May 2026 12:47:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wSwcF-00011q-M6
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 12:47:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSwcF-005Vwa-2f
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:47:07 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198ac9-e002-0a2a0a5209dd-0a2a4506e4ba-2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:47:07 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198aca-7371-0a2a45060019-a06583099740-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:47:06 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id CC6A28275E96;
 Fri, 29 May 2026 08:45:50 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 3/7] xen/mm: Static memory: Widen assign_pages(nr) to unsigned long
Date: Fri, 29 May 2026 13:43:57 +0100
Message-Id: <06bbdf043e4be80bfc4f13926e8e02b42358f3da.1780058608.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1780058608.git.bernhard.kaindl@citrix.com>
References: <cover.1780058608.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1780058827-8EF89D75-8373F2D6/0/0
X-purgate-type: clean
X-purgate-size: 1734

Static memory assignment is currently limited UINT_MAX pages.
To normalize on unsigned long, widen assign_pages() for unsigned long.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 xen/common/page_alloc.c | 8 ++++----
 xen/include/xen/mm.h    | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 3f8b300d8c29..8670233c550d 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -2851,12 +2851,12 @@ void init_domheap_pages(paddr_t ps, paddr_t pe)
 
 int assign_pages(
     struct page_info *pg,
-    unsigned int nr,
+    unsigned long nr,
     struct domain *d,
     unsigned int memflags)
 {
     int rc = 0;
-    unsigned int i;
+    unsigned long i;
 
     nrspin_lock(&d->page_alloc_lock);
 
@@ -2870,7 +2870,7 @@ int assign_pages(
 
 #ifndef NDEBUG
     {
-        unsigned int extra_pages = 0;
+        unsigned long extra_pages = 0;
 
         for ( i = 0; i < nr; i++ )
         {
@@ -2947,7 +2947,7 @@ int assign_pages(
 int assign_page(struct page_info *pg, unsigned int order, struct domain *d,
                 unsigned int memflags)
 {
-    return assign_pages(pg, 1U << order, d, memflags);
+    return assign_pages(pg, 1UL << order, d, memflags);
 }
 
 struct page_info *alloc_domheap_pages(
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index b3a35c4bc8d6..b4330269418d 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -168,7 +168,7 @@ void heap_init_late(void);
 
 int assign_pages(
     struct page_info *pg,
-    unsigned int nr,
+    unsigned long nr,
     struct domain *d,
     unsigned int memflags);
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 29 12:47:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 12:47:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1321981.1588393 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwcY-0001V6-F5; Fri, 29 May 2026 12:47:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1321981.1588393; Fri, 29 May 2026 12:47:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwcY-0001Uz-CJ; Fri, 29 May 2026 12:47:26 +0000
Received: by outflank-mailman (input) for mailman id 1321981;
 Fri, 29 May 2026 12:47:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wSwcX-0001Sx-9h
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 12:47:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSwcW-00E0DQ-MN
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:47:24 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198ad7-2eae-0a2a0a5409dd-0a2a4502ce02-20
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:47:24 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198adb-af86-0a2a45020019-a0658309a9f0-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:47:24 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 56E4482767E4;
 Fri, 29 May 2026 08:46:08 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 4/7] xen/mm: Static memory: Widen domstatic plumbing to unsigned long
Date: Fri, 29 May 2026 13:43:58 +0100
Message-Id: <bd67d70e6c134977e95ac771df3fc720b93b9441.1780058608.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1780058608.git.bernhard.kaindl@citrix.com>
References: <cover.1780058608.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1780058844-81573161-D3AC4B9C/0/0
X-purgate-type: clean
X-purgate-size: 3006

As assign_pages() accepts unsigned long nr, we can widen
its domstatic users to pass unsigned long nr_mfns to it:

- acquire_domstatic_pages(), assign_domstatic_pages(): Widen nr_mfns.
- acquire_static_memory_bank() remove check for psize to fit in unsigned int

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 xen/common/device-tree/static-memory.c | 7 -------
 xen/common/page_alloc.c                | 4 ++--
 xen/include/xen/mm.h                   | 2 +-
 3 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/xen/common/device-tree/static-memory.c b/xen/common/device-tree/static-memory.c
index ffbc12aa24df..e04d6cc06505 100644
--- a/xen/common/device-tree/static-memory.c
+++ b/xen/common/device-tree/static-memory.c
@@ -46,13 +46,6 @@ static mfn_t __init acquire_static_memory_bank(struct domain *d,
 
     device_tree_get_reg(cell, addr_cells, size_cells, pbase, psize);
     ASSERT(IS_ALIGNED(*pbase, PAGE_SIZE) && IS_ALIGNED(*psize, PAGE_SIZE));
-    if ( PFN_DOWN(*psize) > UINT_MAX )
-    {
-        printk(XENLOG_ERR "%pd: static memory size too large: %#"PRIpaddr,
-               d, *psize);
-        return INVALID_MFN;
-    }
-
     smfn = maddr_to_mfn(*pbase);
     res = acquire_domstatic_pages(d, smfn, PFN_DOWN(*psize), 0);
     if ( res )
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 8670233c550d..cb2618f6aee5 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -3368,7 +3368,7 @@ static struct page_info * __init acquire_staticmem_pages(mfn_t smfn,
 }
 
 static int assign_domstatic_pages(struct domain *d, struct page_info *pg,
-                                  unsigned int nr_mfns, unsigned int memflags)
+                                  unsigned long nr_mfns, unsigned int memflags)
 {
     if ( !d || (memflags & (MEMF_no_owner | MEMF_no_refcount)) )
     {
@@ -3391,7 +3391,7 @@ static int assign_domstatic_pages(struct domain *d, struct page_info *pg,
  * then assign them to one specific domain #d.
  */
 int __init acquire_domstatic_pages(struct domain *d, mfn_t smfn,
-                                   unsigned int nr_mfns, unsigned int memflags)
+                                   unsigned long nr_mfns, unsigned int memflags)
 {
     struct page_info *pg;
 
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index b4330269418d..48feb664f057 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -107,7 +107,7 @@ bool scrub_free_pages(void);
 void unprepare_staticmem_pages(struct page_info *pg, unsigned long nr_mfns,
                                bool need_scrub);
 void free_domstatic_page(struct page_info *page);
-int acquire_domstatic_pages(struct domain *d, mfn_t smfn, unsigned int nr_mfns,
+int acquire_domstatic_pages(struct domain *d, mfn_t smfn, unsigned long nr_mfns,
                             unsigned int memflags);
 
 /* Map machine page range in Xen virtual address space. */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 29 12:47:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 12:47:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322000.1588401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwck-0001xR-OX; Fri, 29 May 2026 12:47:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322000.1588401; Fri, 29 May 2026 12:47:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwck-0001xK-M5; Fri, 29 May 2026 12:47:38 +0000
Received: by outflank-mailman (input) for mailman id 1322000;
 Fri, 29 May 2026 12:47:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wSwcj-0001wS-Sn
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 12:47:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSwcj-005WAo-9T
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:47:37 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198ae5-bab6-0a2a0a5309dd-0a2a4505ac7e-30
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:47:37 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198ae8-aaa8-0a2a45050019-a0658308bf90-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:47:37 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id C536C439EC36;
 Fri, 29 May 2026 08:46:31 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH 5/7] xen/mm: device-tree: Widen static page counts to unsigned long
Date: Fri, 29 May 2026 13:43:59 +0100
Message-Id: <34af659daf1f1aaad7e4e355341875a7522d4594.1780058608.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1780058608.git.bernhard.kaindl@citrix.com>
References: <cover.1780058608.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1780058857-E2F94443-F34F4712/0/0
X-purgate-type: clean
X-purgate-size: 4672

As the domstatic memory plumbing supports unsigned long nr_mfns,
update the device tree handlers to no longer truncate to unsigned int:

- xen/common/device-tree/static-memory.c:
  - append_static_memory_to_bank() Widen nr_pages to unsigned long

- xen/common/device-tree/static-shmem.c:
  - process_shm(): Widen loop variable to unsigned long.

- xen/common/device-tree/dom0less-build.c, static-shmem.c,
  - alloc_xenstore_page() and acquire_shared_memory_bank():
    Update checks narrowing pages to UINT_MAX to ULONG_MAX.

- xen/arch/arm/include/asm/p2m.h: guest_physmap_add_pages():
  Accept and pass-through unsigned long nr_pages(used for static maps)

Already correct:
- struct paging_domain.p2m_total_pages is unsigned long.
- p2m_set_allocation() takes unsigned long pages.
- arch_get_paging_mempool_size() uses (uint64_t)... << PAGE_SHIFT.
- p2m_insert_mapping(), map_regions_p2mt(), unmap_regions_p2mt(),
  map_mmio_regions() and unmap_mmio_regions() all already take
  unsigned long nr.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 xen/arch/arm/include/asm/p2m.h          | 2 +-
 xen/common/device-tree/dom0less-build.c | 2 +-
 xen/common/device-tree/static-memory.c  | 2 +-
 xen/common/device-tree/static-shmem.c   | 9 ++++-----
 4 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
index 4a4913716bdd..f719b8f1291f 100644
--- a/xen/arch/arm/include/asm/p2m.h
+++ b/xen/arch/arm/include/asm/p2m.h
@@ -348,7 +348,7 @@ guest_physmap_add_page(struct domain *d, gfn_t gfn, mfn_t mfn,
 static inline int guest_physmap_add_pages(struct domain *d,
                                           gfn_t gfn,
                                           mfn_t mfn,
-                                          unsigned int nr_pages)
+                                          unsigned long nr_pages)
 {
     return p2m_insert_mapping(d, gfn, nr_pages, mfn, p2m_ram_rw);
 }
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
index eacfd93087ae..16c72682db54 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -592,7 +592,7 @@ static int __init alloc_xenstore_page(struct domain *d)
     gfn_t gfn;
     int rc;
 
-    if ( (UINT_MAX - d->max_pages) < 1 )
+    if ( (ULONG_MAX - d->max_pages) < 1 )
     {
         printk(XENLOG_ERR "%pd: Over-allocation for d->max_pages by 1 page.\n",
                d);
diff --git a/xen/common/device-tree/static-memory.c b/xen/common/device-tree/static-memory.c
index e04d6cc06505..3abc62f080e5 100644
--- a/xen/common/device-tree/static-memory.c
+++ b/xen/common/device-tree/static-memory.c
@@ -11,7 +11,7 @@ static bool __init append_static_memory_to_bank(struct domain *d,
                                                 paddr_t size)
 {
     int res;
-    unsigned int nr_pages = PFN_DOWN(size);
+    unsigned long nr_pages = PFN_DOWN(size);
     gfn_t sgfn;
 
     /*
diff --git a/xen/common/device-tree/static-shmem.c b/xen/common/device-tree/static-shmem.c
index 4c4cc1b123ac..64ed04e68487 100644
--- a/xen/common/device-tree/static-shmem.c
+++ b/xen/common/device-tree/static-shmem.c
@@ -96,7 +96,7 @@ static mfn_t __init acquire_shared_memory_bank(struct domain *d,
      * into domain_tot_pages().
      */
     nr_pfns = PFN_DOWN(psize);
-    if ( (UINT_MAX - d->max_pages) < nr_pfns )
+    if ( (ULONG_MAX - d->max_pages) < nr_pfns )
     {
         printk(XENLOG_ERR "%pd: Over-allocation for d->max_pages: %lu.\n",
                d, nr_pfns);
@@ -313,7 +313,6 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
         uint32_t addr_cells;
         paddr_t gbase, pbase, psize;
         int ret = 0;
-        unsigned int i;
         const char *role_str;
         const char *shm_id;
 
@@ -362,11 +361,11 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
                 return -EINVAL;
             }
 
-            for ( i = 0; i < PFN_DOWN(psize); i++ )
-                if ( !mfn_valid(mfn_add(maddr_to_mfn(pbase), i)) )
+            for ( unsigned long page = 0; page < PFN_DOWN(psize); page++ )
+                if ( !mfn_valid(mfn_add(maddr_to_mfn(pbase), page)) )
                 {
                     printk("%pd: invalid physical address 0x%"PRI_mfn"\n",
-                        d, mfn_x(mfn_add(maddr_to_mfn(pbase), i)));
+                           d, mfn_x(mfn_add(maddr_to_mfn(pbase), page)));
                     return -EINVAL;
                 }
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 29 12:48:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 12:48:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322061.1588410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwdR-0002nk-0t; Fri, 29 May 2026 12:48:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322061.1588410; Fri, 29 May 2026 12:48:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwdQ-0002nd-UG; Fri, 29 May 2026 12:48:20 +0000
Received: by outflank-mailman (input) for mailman id 1322061;
 Fri, 29 May 2026 12:48:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wSwdP-0002nE-VB
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 12:48:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSwdP-002Vm0-Bn
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:48:19 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198b0f-bab6-0a2a0a5309dd-0a2a4509d2b4-8
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:48:19 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198b12-2497-0a2a45090019-a06583099392-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:48:19 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 4EC4082767EE;
 Fri, 29 May 2026 08:47:03 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH 6/7] xen/arch/x86/dom0_build.c: Extend the upper limit for Dom0's max_pages
Date: Fri, 29 May 2026 13:44:00 +0100
Message-Id: <ca5e61de283a1dee1b679c5aa27b3c6432b0ffce.1780058608.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1780058608.git.bernhard.kaindl@citrix.com>
References: <cover.1780058608.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1780058899-42573A53-14A57183/0/0
X-purgate-type: clean
X-purgate-size: 806

dom0_compute_nr_pages(): Update the upper limit for Dom0's max_pages
in dom0_compute_nr_pages() to limit from UINT_MAX to ULONG_MAX.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
----
Creating a Dom0 of > 16TB isn't a useful thing, but could be for testing.
---
 xen/arch/x86/dom0_build.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 80308ca9af46..2ebb8308fbaf 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -440,7 +440,7 @@ unsigned long __init dom0_compute_nr_pages(
         }
     }
 
-    d->max_pages = min_t(unsigned long, max_pages, UINT_MAX);
+    d->max_pages = min_t(unsigned long, max_pages, ULONG_MAX);
 
     return nr_pages;
 }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 29 12:48:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 12:48:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322074.1588419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwdh-0003BL-7a; Fri, 29 May 2026 12:48:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322074.1588419; Fri, 29 May 2026 12:48:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSwdh-0003BE-4W; Fri, 29 May 2026 12:48:37 +0000
Received: by outflank-mailman (input) for mailman id 1322074;
 Fri, 29 May 2026 12:48:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bernhard.kaindl@citrix.com>) id 1wSwdg-0003AO-0b
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 12:48:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSwdf-002VpK-De
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:48:35 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198b0f-bab6-0a2a0a5309dd-0a2a4509d2b4-40
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:48:35 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bernhard.kaindl@citrix.com>)
 id 6a198b22-2497-0a2a45090019-a0658309bde0-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 14:48:35 +0200
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 873A082767E7;
 Fri, 29 May 2026 08:47:19 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 7/7] tools/libs/stat/xenstat.c: Extend the "no maximum" sentinel for max_pages
Date: Fri, 29 May 2026 13:44:01 +0100
Message-Id: <3b0adba2cbdb73e16a1c29e081dda9167547ce57.1780058608.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1780058608.git.bernhard.kaindl@citrix.com>
References: <cover.1780058608.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1780058915-4156BA53-B990E7C5/0/0
X-purgate-type: clean
X-purgate-size: 908

In xenstat_get_node(), update the "no maximum" sentinel for max_pages
from UINT_MAX to ULONG_MAX, which is converted to (unsigned long long)-1.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 tools/libs/stat/xenstat.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/libs/stat/xenstat.c b/tools/libs/stat/xenstat.c
index 8bab2e66a7fe..376136871487 100644
--- a/tools/libs/stat/xenstat.c
+++ b/tools/libs/stat/xenstat.c
@@ -221,7 +221,7 @@ xenstat_node *xenstat_get_node(xenstat_handle * handle, unsigned int flags)
 			    ((unsigned long long)domaininfo[i].tot_pages)
 			    * handle->page_size;
 			domain->max_mem =
-			    domaininfo[i].max_pages == UINT_MAX
+			    domaininfo[i].max_pages == ULONG_MAX
 			    ? (unsigned long long)-1
 			    : (unsigned long long)(domaininfo[i].max_pages
 						   * handle->page_size);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322211.1588507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySP-0003oq-Vx; Fri, 29 May 2026 14:45:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322211.1588507; Fri, 29 May 2026 14:45:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySP-0003nz-LB; Fri, 29 May 2026 14:45:05 +0000
Received: by outflank-mailman (input) for mailman id 1322211;
 Fri, 29 May 2026 14:45:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3bqYZagYKCXkpbXkgZdlldib.Zljubk-absbiifpqp.ubkmolgbZq.lod@flex--seanjc.bounces.google.com>)
 id 1wSySP-0003g3-1C
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySO-000xsX-Dl
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:04 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3bqYZagYKCXkpbXkgZdlldib.Zljubk-absbiifpqp.ubkmolgbZq.lod@flex--seanjc.bounces.google.com>)
 id 6a19a66f-bab6-0a2a0a5309dd-0a2a4506bce2-8
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:04 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3bqYZagYKCXkpbXkgZdlldib.Zljubk-absbiifpqp.ubkmolgbZq.lod@flex--seanjc.bounces.google.com>)
 id 6a19a66e-7371-0a2a45060019-d155d6c9d08f-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:04 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2bd5b20aaa6so149189595ad.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065902; x=1780670702; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=Cv3iY8yWhIG9MApRDLOLL6ifa8DISlk6XR/KWuM4GwE=;
        b=lvqoTtvWSJqYdTZfavK+4BVampdogzpOJUIbpqFi/ukGn/VnDAp5nkHxEylZSnl5+A
         fPCHb3KrxmbZ+TPMvEgNQ+N4V5Iuotlwg/2uYwdBvJH/fxLMESkWwxt797S0oqGL6GkI
         5iVDrsI7OMmvfwyis90Ughj70+v7E95fdNMT5HdzABWUB3LdNZqNCVNGJd+xFEBwPYxP
         yQ9azbvP4WcqY7VGDQL8AZQfzKwO1bfawmRbZDMhRkqvuN+G6j2YYaySngeRQRyeIXRv
         WS2e4iB9/yCtZ2iV6u05RLkU+Ue4bZxnOiGxxwajGbXG1HVGTEKiYek4uooAxk+CR81B
         pyuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065902; x=1780670702;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Cv3iY8yWhIG9MApRDLOLL6ifa8DISlk6XR/KWuM4GwE=;
        b=DFjtyhhtbQk4G0aqqhcXdyRvZK2ANItRWTPaw3METAUnTyofTFA4jcT+hHRuhaUo7X
         MSqjk1eP0y1kp6lXR2h2GznfIyQo0QwdseVbfwKqaj2TP72UlqCS1VOJWJM03cMnHcQV
         7qTOoXjx0lbxJgXEyQhCZTdkIeaPpP9qobzbUBEvJEFlMskPDV9O7O6jj3SHdBpvdRua
         oQO7dHme6SI05/rEwE/jiIn1j5fFwJuk61jhHPFwlnYlMnpvmAYn27jQw7a9HWt4gUMm
         fjbQmnKhR9Tk+6A9n17J1WT2pN45VNTzWWqaDKYiXENeqezqAhCE+crqORPp4wwe+6Pn
         sbkw==
X-Forwarded-Encrypted: i=1; AFNElJ/t3qu+IRFhjASBcubwjg3+Gj205pr2TjG+EAavZ0Rf2oO+clA7UCBL3Oz9FY/7rt6whVQgfgzqvGQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwtQe2Pl8eyoNhwyUwmt2RG/5sOWqxmQXFAp/5Eppk4T2w39hr9
	kCzLm01kvirQOpe5okcRE+KVB6z0Ar5SghC7YTB+B+sdGzyqdPV+SedPXLykFfdBZMPAHYIa4gz
	GxvWxpQ==
X-Received: from plem4.prod.google.com ([2002:a17:902:e404:b0:2bc:f203:12a1])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:1983:b0:2bf:23ad:8595
 with SMTP id d9443c01a7336-2bf367b260amr1523355ad.4.1780065902031; Fri, 29
 May 2026 07:45:02 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:43:56 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-10-seanjc@google.com>
Subject: [PATCH v4 09/47] x86/acrn: Mark TSC frequency as known when using
 ACRN for calibration
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-16d1c6/1780065904-8EB8BD75-CD0615AA/0/0
X-purgate-type: clean
X-purgate-size: 869

Mark the TSC frequency as known when using ACRN's PV CPUID information.
Per commit 81a71f51b89e ("x86/acrn: Set up timekeeping") and common sense,
the TSC freq is explicitly provided by the hypervisor.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/cpu/acrn.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/x86/kernel/cpu/acrn.c b/arch/x86/kernel/cpu/acrn.c
index ad8f2da8003b..0303fe6a2efa 100644
--- a/arch/x86/kernel/cpu/acrn.c
+++ b/arch/x86/kernel/cpu/acrn.c
@@ -33,6 +33,8 @@ static void __init acrn_init_platform(void)
 {
 	/* Install system interrupt handler for ACRN hypervisor callback */
 	sysvec_install(HYPERVISOR_CALLBACK_VECTOR, sysvec_acrn_hv_callback);
+
+	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 }
 
 static bool acrn_x2apic_available(void)
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322200.1588429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySH-0001vZ-42; Fri, 29 May 2026 14:44:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322200.1588429; Fri, 29 May 2026 14:44:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySH-0001vS-0l; Fri, 29 May 2026 14:44:57 +0000
Received: by outflank-mailman (input) for mailman id 1322200;
 Fri, 29 May 2026 14:44:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3ZKYZagYKCW8fRNaWPTbbTYR.PbZkRa-QRiRYYVfgf.kRacebWRPg.beT@flex--seanjc.bounces.google.com>)
 id 1wSySF-0001vA-SF
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:44:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySE-004cdT-MQ
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:44:54 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3ZKYZagYKCW8fRNaWPTbbTYR.PbZkRa-QRiRYYVfgf.kRacebWRPg.beT@flex--seanjc.bounces.google.com>)
 id 6a19a653-e002-0a2a0a5209dd-0a2a4507e0a6-22
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:44:54 +0200
Received: from [209.85.216.73] (helo=mail-pj1-f73.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3ZKYZagYKCW8fRNaWPTbbTYR.PbZkRa-QRiRYYVfgf.kRacebWRPg.beT@flex--seanjc.bounces.google.com>)
 id 6a19a665-229c-0a2a45070019-d155d849ac94-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:44:54 +0200
Received: by mail-pj1-f73.google.com with SMTP id
 98e67ed59e1d1-367f715cbd0so13424631a91.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:44:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065892; x=1780670692; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=L0mUatEZLxv6BfkDJUt0JsLCmFdWpOkVYX50Nml1d/w=;
        b=gtdAqbfyNUYJF7GXqgRkbtDOAHLELFzQpdZBq+znIFuBpENnvlpvM/EoXSUj/nJcoV
         wn6s9LJ5DS+QN0NNcqxkV1ZeHPoWt5VTvv1Huyzy4Ut316Ohr0apAmFdm053U8PEIMBy
         USlMjkxpWVzQKW/Z/Xwm147Ou4pIE78yTXpGhFAmH8QXLcjQmark/PBirkxZeRqoaTUD
         qclibh706zabyQXpRhYcYFI4eUaOEHMYpQjCArwcJ6LAw9Il5W9DJRMs84GFF9Gt80kx
         9uKwGNp4FJWbr4Z/vS4b+NXlivM9bGzTUamJfInCrT3n6af+zqRz2MuO4UPUjdwW3lJl
         9XNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065892; x=1780670692;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=L0mUatEZLxv6BfkDJUt0JsLCmFdWpOkVYX50Nml1d/w=;
        b=DUlZBm2Na2S0kjmPFwcvyYM7KPd0FjPLZ8RxDPybOJ9QFkg75iN9bdroPz6Qz2de1l
         VKEll07LP767tZXD65V/W0Ae7ty7KuMXbsEIAaUsNbPSrIWRSKlf2OQ5raTuMmvB8j+U
         lG/K5sOFkoGhn/RKxjgr8KRE+o68A5IJP4MkHkVfIKy3aJ9974ncgAPZ7wW9FJGf/TWC
         7kDo5omYwTZUOMGkmr0eimGT+PYqi/Vw9mDiSLoei96m8QXsWko6DdqnWI/nE9AYDwHm
         5vMlKDcJ2k62au+PHEDBbmr/702y/2v5oj/SqaEo399CoZ1UseLEprI0vn1nZuRZefcS
         2+sA==
X-Forwarded-Encrypted: i=1; AFNElJ8w/5zH0bcWVJeAoE/M6XPLmdQuSoKr6yV6kXBAFQKSsXKjBPZlbeMYerKosFXbNfwXta24AfTNQFQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwR0Gz2pn+3MeSWBoAsn8gycbV3TT1X7qw5Pob7Q8opYrloIxSy
	1U76RMJvTVkGedHL3QQKSeI0xc78ITVujYRmP/5NbZJjBVRkU9b8fYRLEAXrS8IZXjUIbjNMWmh
	REfy/1w==
X-Received: from pjbev8.prod.google.com ([2002:a17:90a:eac8:b0:36b:d883:98c2])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90a:e707:b0:36a:d6dd:9fee
 with SMTP id 98e67ed59e1d1-36bbcd6f8c3mr3583126a91.12.1780065892195; Fri, 29
 May 2026 07:44:52 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:43:48 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-2-seanjc@google.com>
Subject: [PATCH v4 01/47] x86/tsc: Never re-calibrate TSC frequency if its
 exact timing is known
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-ef75cf/1780065894-0AD77C48-7DE8818A/0/0
X-purgate-type: clean
X-purgate-size: 969

Don't re-calibrate the TSC frequency if the TSC is known to run at a fixed
frequency.  In practice, this is likely one big nop, as re-calibration is
used only for SMP=n kernels, and only for hardware that is 20+ years old,
i.e. is extremely unlikely to collide with TSC_KNOWN_FREQ.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/tsc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index c5110eb554bc..08cf6625d484 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -946,7 +946,8 @@ void recalibrate_cpu_khz(void)
 		return;
 
 	cpu_khz = x86_platform.calibrate_cpu();
-	tsc_khz = x86_platform.calibrate_tsc();
+	if (!boot_cpu_has(X86_FEATURE_TSC_KNOWN_FREQ))
+		tsc_khz = x86_platform.calibrate_tsc();
 	if (tsc_khz == 0)
 		tsc_khz = cpu_khz;
 	else if (abs(cpu_khz - tsc_khz) * 10 > tsc_khz)
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322206.1588484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySM-0003F5-QO; Fri, 29 May 2026 14:45:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322206.1588484; Fri, 29 May 2026 14:45:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySM-0003Dz-Ly; Fri, 29 May 2026 14:45:02 +0000
Received: by outflank-mailman (input) for mailman id 1322206;
 Fri, 29 May 2026 14:45:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3aqYZagYKCXUlXTgcVZhhZeX.VhfqXg-WXoXeeblml.qXgikhcXVm.hkZ@flex--seanjc.bounces.google.com>)
 id 1wSySL-0002zV-Ie
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySK-000xpH-V8
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:00 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3aqYZagYKCXUlXTgcVZhhZeX.VhfqXg-WXoXeeblml.qXgikhcXVm.hkZ@flex--seanjc.bounces.google.com>)
 id 6a19a663-bab6-0a2a0a5309dd-0a2a450cd4ea-34
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:00 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3aqYZagYKCXUlXTgcVZhhZeX.VhfqXg-WXoXeeblml.qXgikhcXVm.hkZ@flex--seanjc.bounces.google.com>)
 id 6a19a66b-62f1-0a2a450c0019-d155d6c9e4c4-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:00 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2ba718173d1so106709105ad.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065899; x=1780670699; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=fwFQzI2jeVi8q9emUB9u5qsW4Gj215t9UPhq3t/oEkw=;
        b=pFPDOYbX7nWOlF04QIQ2le4gdTxa8BcGoJz6DdC/jKm1VFMILRUoRTjlFEWyJLtzBH
         N/hEceHP1oIk1WrvQroRaDEHx2MievW0lKnIsNPSTVEGFOWjIz7GDiCqP4YtNguL8u3y
         xzFZwGCbW8OnsNsuHybdBjIP3/5h2CRLwyQuTrn3sOnXz+ALiH+am0Gw7QBwtAqqFBPH
         RbPjw77ijh9L+UxA+o2YrHzizttzo2mHn2XdbDLP7c2k71JvlNlt+FmtFOMUbIbZPzya
         jR0D89Sa2kOJtZi4KArLGn1ZV8uUNUzy16O+hATPj3D+CXI9DctovE4hcmOSidASFs85
         mLFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065899; x=1780670699;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=fwFQzI2jeVi8q9emUB9u5qsW4Gj215t9UPhq3t/oEkw=;
        b=QoQqPPABEhGAX6cJPti1IKCPwE2sxt9aCRNO7WZIQ3nnZKW+Fx5qi3PUlGzQ5BXA66
         FVllYAFBdJ9BeuV6x3I19FictPF/li9H63MLaoK77Yd4aksOaeg7OHxhcmHemiUsIswu
         b3gEqVkF9ixlArdeWy5Y6Ukc0r0ElmCPk9C9IXPkwsyUH0O8ejY0TkCQwZFERT0xyWT1
         MDAgfWQpq/0U2EUxA0pNr+Dag7aQt2vzox9an5/26yuMOQmLzRSAkBa5c8rFLJbeiY5l
         k5Gp9hwA2z535rKanCeuBqJjfXcZDJNIQJCdbYlvLmcj5fjMinHkeoHR/AoVc31vwW+k
         q9zQ==
X-Forwarded-Encrypted: i=1; AFNElJ+Q8HBk82vI3IDtHvN0MZwW5rAZPljFOds8nLBciZQdB+idFdvqIiNyDZi7j3gFReFRGUTeCBY6I4s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YybPzOifZDpAsF+UeiZCYfxvpe47XmcHgR23aH/9KAOLN/F95KF
	XCMMXLqbBk+emOn0FCTSwSVhmEGI5nwijqA4EMMsscAeky6yKoJAMKgt9wwfMHtKTiB4IzHn1DA
	CbjddsQ==
X-Received: from plble15.prod.google.com ([2002:a17:902:fb0f:b0:2bf:aa7:47b9])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:c94c:b0:2b0:bebb:1081
 with SMTP id d9443c01a7336-2bf368698abmr864185ad.28.1780065898563; Fri, 29
 May 2026 07:44:58 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:43:53 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-7-seanjc@google.com>
Subject: [PATCH v4 06/47] x86/sev: Shove SNP's secure/trusted TSC frequency
 directly into "calibration"
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-d25034/1780065900-E2368CF5-14FADCA7/0/0
X-purgate-type: clean
X-purgate-size: 5650

As a first step towards dropping .calibrate_{cpu,tsc}() and explicitly
defining precedence/priority for "calibration" routines, pass the secure
TSC frequency obtained from SNP firmware directly to
determine_cpu_tsc_frequencies() instead of overriding the .calibrate_tsc()
hook.

Unlike the native calibration routines, all of the paravirtual overrides,
including SNP and TDX, are constant in the sense that the frequency
provided by the hypervisor or trusted firmware is fixed, known, and always
available during early boot.  More importantly, for CoCo (SNP and TDX) VMs,
it's imperative that the kernel uses the frequency provided by the trusted
firmware, not by the untrusted hypervisor.  Enforcing the priority between
sources by carefully ordering seemingly unrelated init calls, so that the
trusted override "wins", is brittle and all but impossible to follow.

While it's rather weird, deliberately prioritize tsc_early_khz over all
else to maintain existing behavior.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/coco/sev/core.c   | 14 ++++----------
 arch/x86/include/asm/sev.h |  4 ++--
 arch/x86/kernel/tsc.c      | 19 ++++++++++++-------
 3 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c
index 403dcea86452..bc5ae9ef74da 100644
--- a/arch/x86/coco/sev/core.c
+++ b/arch/x86/coco/sev/core.c
@@ -99,7 +99,6 @@ static const char * const sev_status_feat_names[] = {
  */
 static u64 snp_tsc_scale __ro_after_init;
 static u64 snp_tsc_offset __ro_after_init;
-static unsigned long snp_tsc_freq_khz __ro_after_init;
 
 DEFINE_PER_CPU(struct sev_es_runtime_data*, runtime_data);
 DEFINE_PER_CPU(struct sev_es_save_area *, sev_vmsa);
@@ -2014,15 +2013,10 @@ void __init snp_secure_tsc_prepare(void)
 	pr_debug("SecureTSC enabled");
 }
 
-static unsigned long securetsc_get_tsc_khz(void)
-{
-	return snp_tsc_freq_khz;
-}
-
-void __init snp_secure_tsc_init(void)
+unsigned int __init snp_secure_tsc_init(void)
 {
+	unsigned long snp_tsc_freq_khz, tsc_freq_mhz;
 	struct snp_secrets_page *secrets;
-	unsigned long tsc_freq_mhz;
 	void *mem;
 
 	mem = early_memremap_encrypted(sev_secrets_pa, PAGE_SIZE);
@@ -2043,7 +2037,7 @@ void __init snp_secure_tsc_init(void)
 
 	snp_tsc_freq_khz = SNP_SCALE_TSC_FREQ(tsc_freq_mhz * 1000, secrets->tsc_factor);
 
-	x86_platform.calibrate_tsc = securetsc_get_tsc_khz;
-
 	early_memunmap(mem, PAGE_SIZE);
+
+	return snp_tsc_freq_khz;
 }
diff --git a/arch/x86/include/asm/sev.h b/arch/x86/include/asm/sev.h
index 594cfa19cbd4..05ebf0b73ef4 100644
--- a/arch/x86/include/asm/sev.h
+++ b/arch/x86/include/asm/sev.h
@@ -530,7 +530,7 @@ int snp_send_guest_request(struct snp_msg_desc *mdesc, struct snp_guest_req *req
 int snp_svsm_vtpm_send_command(u8 *buffer);
 
 void __init snp_secure_tsc_prepare(void);
-void __init snp_secure_tsc_init(void);
+unsigned int snp_secure_tsc_init(void);
 enum es_result savic_register_gpa(u64 gpa);
 enum es_result savic_unregister_gpa(u64 *gpa);
 u64 savic_ghcb_msr_read(u32 reg);
@@ -637,7 +637,7 @@ static inline int snp_send_guest_request(struct snp_msg_desc *mdesc,
 					 struct snp_guest_req *req) { return -ENODEV; }
 static inline int snp_svsm_vtpm_send_command(u8 *buffer) { return -ENODEV; }
 static inline void __init snp_secure_tsc_prepare(void) { }
-static inline void __init snp_secure_tsc_init(void) { }
+static inline unsigned int __init snp_secure_tsc_init(void) { return 0; }
 static inline void sev_evict_cache(void *va, int npages) {}
 static inline enum es_result savic_register_gpa(u64 gpa) { return ES_UNSUPPORTED; }
 static inline enum es_result savic_unregister_gpa(u64 *gpa) { return ES_UNSUPPORTED; }
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 833eed5c048a..2b8f94c3fcc7 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -1474,15 +1474,16 @@ static int __init init_tsc_clocksource(void)
  */
 device_initcall(init_tsc_clocksource);
 
-static bool __init determine_cpu_tsc_frequencies(bool early)
+static bool __init determine_cpu_tsc_frequencies(bool early,
+						 unsigned int known_tsc_khz)
 {
 	/* Make sure that cpu and tsc are not already calibrated */
 	WARN_ON(cpu_khz || tsc_khz);
 
 	if (early) {
 		cpu_khz = x86_platform.calibrate_cpu();
-		if (tsc_early_khz)
-			tsc_khz = tsc_early_khz;
+		if (known_tsc_khz)
+			tsc_khz = known_tsc_khz;
 		else
 			tsc_khz = x86_platform.calibrate_tsc();
 	} else {
@@ -1537,16 +1538,20 @@ static void __init tsc_enable_sched_clock(void)
 
 void __init tsc_early_init(void)
 {
+	unsigned int known_tsc_khz = 0;
+
 	if (!boot_cpu_has(X86_FEATURE_TSC))
 		return;
 	/* Don't change UV TSC multi-chassis synchronization */
 	if (is_early_uv_system())
 		return;
 
-	if (cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC))
-		snp_secure_tsc_init();
+	if (tsc_early_khz)
+		known_tsc_khz = tsc_early_khz;
+	else if (cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC))
+		known_tsc_khz = snp_secure_tsc_init();
 
-	if (!determine_cpu_tsc_frequencies(true))
+	if (!determine_cpu_tsc_frequencies(true, known_tsc_khz))
 		return;
 	tsc_enable_sched_clock();
 }
@@ -1567,7 +1572,7 @@ void __init tsc_init(void)
 
 	if (!tsc_khz) {
 		/* We failed to determine frequencies earlier, try again */
-		if (!determine_cpu_tsc_frequencies(false)) {
+		if (!determine_cpu_tsc_frequencies(false, 0)) {
 			mark_tsc_unstable("could not calculate TSC khz");
 			setup_clear_cpu_cap(X86_FEATURE_TSC_DEADLINE_TIMER);
 			return;
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322205.1588474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySL-00030P-Ia; Fri, 29 May 2026 14:45:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322205.1588474; Fri, 29 May 2026 14:45:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySL-00030G-Ea; Fri, 29 May 2026 14:45:01 +0000
Received: by outflank-mailman (input) for mailman id 1322205;
 Fri, 29 May 2026 14:45:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3aaYZagYKCXQkWSfbUYggYdW.UgepWf-VWnWddaklk.pWfhjgbWUl.gjY@flex--seanjc.bounces.google.com>)
 id 1wSySK-0002lz-GV
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySJ-00Fv7l-Sw
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:44:59 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3aaYZagYKCXQkWSfbUYggYdW.UgepWf-VWnWddaklk.pWfhjgbWUl.gjY@flex--seanjc.bounces.google.com>)
 id 6a19a66a-2eae-0a2a0a5409dd-0a2a4508d1a0-10
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:44:59 +0200
Received: from [209.85.216.73] (helo=mail-pj1-f73.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3aaYZagYKCXQkWSfbUYggYdW.UgepWf-VWnWddaklk.pWfhjgbWUl.gjY@flex--seanjc.bounces.google.com>)
 id 6a19a66a-63b5-0a2a45080019-d155d849e90a-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:44:59 +0200
Received: by mail-pj1-f73.google.com with SMTP id
 98e67ed59e1d1-36bb6c41341so1429741a91.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:44:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065898; x=1780670698; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=xjTz/hwdMHYqh+2ceX2noAC2jls+xA7f9jce5I1nRMU=;
        b=PJMSVuLvM4ZM/zfFcVEXjW6ODKCpWJmOkODezlvbIkYCCl8T9QpqrfOLBh50tsdnyn
         T5jYH7FlP9U6MS2ISnCHj/0d2QgQDT0RKUZctdJDKzZHxSuXTx+oBzSKOwQrSnVPok5+
         qUM7FP/nvQmgjcin28193IYZ5vRfL3REdDvQWgYr0pt+tVZyifvdMoFUVpM8UMAWuT1W
         gdH/2wgfBGqZ2BHWDVwhtenT9EhetW65g67fD981uDY9fvcoCYh8wOpFZ6dJGaoKtWe4
         0Vx7OpzVj9dVx9HokaQtnrcn8D9Vz4VnIEiatWFhNQ4P6/rTzDAfjgKWWcBqjEeQZQLh
         7PpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065898; x=1780670698;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=xjTz/hwdMHYqh+2ceX2noAC2jls+xA7f9jce5I1nRMU=;
        b=pGlAKm5vriIJCDqgY2kvhJiLPvBHvvEBYwLW2cK4K4WqPXK5XMV7/Ljpz/J7U3kWLG
         2v8J7n2Udb4FaKKnff/EXADTtT210lMeumcEWOxM6B+AxrKkJgkzppILNNjbRz2hu73L
         orUs1elEMxPjOrW7CSbueHAhjsSCg9PgKgrxINNYIgLOtCeasxSmPxM8GW3Te+YExpwW
         MjfWeWo56ePNRFgHvXuOQavj+3H9O5lbRPMd/Tu40xIzoWtso2ccGIUeFJGgJwbmAU84
         r/Ig2Lr3iT4TvigeM6dng5RhnRV30zJuybdSH1vbgz753RIAZEMfEx2ngBBpW28Fz4dF
         mAkw==
X-Forwarded-Encrypted: i=1; AFNElJ9sOkrq2OlRk7xz07BsL4WqlSQ71REqXo3XHeuzAFm9xGYoXWFWq5uJGP5sUxXpb8ZQhwzwduM9+2Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyIr3b5oFpgCIrqjtQ3jfeyhgcthS1NYX1ZGBHNo1hhwjrhMjXE
	+uSifK/5vxdt3nWvLYYbHFdENvbN6wIPk5GprIY1A3aRLkbsD7gt4DOVwEcHXg//TIIkaWZEZ62
	i4AHRoQ==
X-Received: from pjl14.prod.google.com ([2002:a17:90b:2f8e:b0:36b:be8c:b289])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:4cca:b0:36b:82cf:f779
 with SMTP id 98e67ed59e1d1-36bbd1305dcmr3958387a91.21.1780065897442; Fri, 29
 May 2026 07:44:57 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:43:52 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-6-seanjc@google.com>
Subject: [PATCH v4 05/47] x86/sev: Move check for SNP Secure TSC support to tsc_early_init()
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-c1860d/1780065899-BF57FDB1-73B69ADE/0/0
X-purgate-type: clean
X-purgate-size: 1583

Move the check on having a Secure TSC to the common tsc_early_init() so
that it's obvious that having a Secure TSC is conditional, and to prepare
for adding TDX to the mix (blindly initializing *both* SNP and TDX TSC
logic looks especially weird).

No functional change intended.

Cc: Tom Lendacky <thomas.lendacky@amd.com>
Reviewed-by: Nikunj A Dadhania <nikunj@amd.com>
Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/coco/sev/core.c | 3 ---
 arch/x86/kernel/tsc.c    | 3 ++-
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c
index 665de1aea0ee..403dcea86452 100644
--- a/arch/x86/coco/sev/core.c
+++ b/arch/x86/coco/sev/core.c
@@ -2025,9 +2025,6 @@ void __init snp_secure_tsc_init(void)
 	unsigned long tsc_freq_mhz;
 	void *mem;
 
-	if (!cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC))
-		return;
-
 	mem = early_memremap_encrypted(sev_secrets_pa, PAGE_SIZE);
 	if (!mem) {
 		pr_err("Unable to get TSC_FACTOR: failed to map the SNP secrets page.\n");
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index f7f561722efa..833eed5c048a 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -1543,7 +1543,8 @@ void __init tsc_early_init(void)
 	if (is_early_uv_system())
 		return;
 
-	snp_secure_tsc_init();
+	if (cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC))
+		snp_secure_tsc_init();
 
 	if (!determine_cpu_tsc_frequencies(true))
 		return;
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322203.1588455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySI-0002Y7-Vq; Fri, 29 May 2026 14:44:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322203.1588455; Fri, 29 May 2026 14:44:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySI-0002Y0-TK; Fri, 29 May 2026 14:44:58 +0000
Received: by outflank-mailman (input) for mailman id 1322203;
 Fri, 29 May 2026 14:44:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3ZqYZagYKCXEhTPcYRVddVaT.RdbmTc-STkTaaXhih.mTcegdYTRi.dgV@flex--seanjc.bounces.google.com>)
 id 1wSySH-0001zV-IG
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:44:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySG-005qKS-V4
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:44:56 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3ZqYZagYKCXEhTPcYRVddVaT.RdbmTc-STkTaaXhih.mTcegdYTRi.dgV@flex--seanjc.bounces.google.com>)
 id 6a19a668-5cb7-0a2a0a5109dd-0a2a450193e4-0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:44:56 +0200
Received: from [209.85.216.73] (helo=mail-pj1-f73.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3ZqYZagYKCXEhTPcYRVddVaT.RdbmTc-STkTaaXhih.mTcegdYTRi.dgV@flex--seanjc.bounces.google.com>)
 id 6a19a667-c1f2-0a2a45010019-d155d849e867-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:44:56 +0200
Received: by mail-pj1-f73.google.com with SMTP id
 98e67ed59e1d1-3663cbff31cso9157855a91.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:44:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065895; x=1780670695; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=BmTkJVHUffmv2iD67o3GahQBnXBWwXEIKjsjKzRmdQg=;
        b=Gw7szUH6Vcz40Mn+4g+W9wIGjb8HiWQH93sXRge4IsapFk3ySatozUwoHDq78AnO/k
         uc38agznM39UTVN1U8yVlastdxGmejU1SzogHlBTiLV4jkNHAV1x/V1M7lR6J7gHvtre
         +mHNc+p7L92476gijI8GyWG+MRQImX+3wGDVRYSp7Bf0gcNrm1h8TNbSLZWkKn74T0F+
         KXh7Oqr8gaidcOijJaNNSbCPQUP0IOuP0OjZb81y4P/R9ISCx/dTylcCOXu1f/RqKy4j
         d0bwiJ3HJE+aCP7ZUsnHwBFZizpGDBB6U9FJmysxo1p9XW/+0y7pAxnCnJ+xXq5Z/B3r
         Ucng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065895; x=1780670695;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=BmTkJVHUffmv2iD67o3GahQBnXBWwXEIKjsjKzRmdQg=;
        b=eSLHz9MJ+zSruYhCXBVpKMS9r7GmkMQjCxevgCzqmcE/nnSXd0BEUKTJ1UK8IVUUoF
         Q8vRdJbxMPKRa2pfMvLg6y6Ziw1lrvQ8eTI6JrgreX5BKnAnmtl5Ugo/rdBRwnTbYFgl
         +gbK7Ea3SUNksI+KNRsSd9bRgtbzea4Kbqv5Jvger59VLNxJ2b70ZK55C/mKGh0gfcaR
         K28jC6xkdf6qBfGV1EPQ1ESwfloE+w0EPQaGpjzr/2RIqfw8vBL5QiTsdX+pv6tedVdX
         ZeR/pkY6nGMjfYp4ZcG/QCZcmyir//I2GffnE6m/9aVA4TjvzlTQ4oqqa1R+LvLuiEKq
         IwoA==
X-Forwarded-Encrypted: i=1; AFNElJ+A8VdiJv6cxB/vPqkoMQ8T8QoDqsif+ZVlyL8tZ7AD952oZNVMPmtlRV70i6JIQMAvy7cfadVFFss=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzzlRpQ1qti28T+sXq7nkpPt4mRqxzQZMvQik8a6hrBQ41hf6Kq
	Hi3GnD6V5yzsUayazk2mrfDzxAaxJsfJSYpEEeVUbz1nFbmXp8WIEQJEgqA33+MQE/ZS2hxwQNa
	0QtAj9g==
X-Received: from pjbfv16.prod.google.com ([2002:a17:90b:e90:b0:36b:7407:9b72])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:2fcf:b0:36b:9c4a:e05d
 with SMTP id 98e67ed59e1d1-36bbcfe11camr4074961a91.17.1780065894470; Fri, 29
 May 2026 07:44:54 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:43:50 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-4-seanjc@google.com>
Subject: [PATCH v4 03/47] x86/sev: Mark TSC as reliable when configuring
 Secure TSC
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-d62444/1780065896-AE95FFF4-F63DC245/0/0
X-purgate-type: clean
X-purgate-size: 1723

Move the code to mark the TSC as reliable from sme_early_init() to
snp_secure_tsc_init().  The only reader of TSC_RELIABLE is the aptly
named check_system_tsc_reliable(), which runs in tsc_init(), i.e.
after snp_secure_tsc_init().

This will allow consolidating the handling of TSC_KNOWN_FREQ and
TSC_RELIABLE when overriding the TSC calibration routine.

Cc: Tom Lendacky <thomas.lendacky@amd.com>
Reviewed-by: Nikunj A Dadhania <nikunj@amd.com>
Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/coco/sev/core.c      | 2 ++
 arch/x86/mm/mem_encrypt_amd.c | 3 ---
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c
index ecd77d3217f3..ed0ac52a765e 100644
--- a/arch/x86/coco/sev/core.c
+++ b/arch/x86/coco/sev/core.c
@@ -2037,6 +2037,8 @@ void __init snp_secure_tsc_init(void)
 	secrets = (__force struct snp_secrets_page *)mem;
 
 	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
+	setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
+
 	rdmsrq(MSR_AMD64_GUEST_TSC_FREQ, tsc_freq_mhz);
 
 	/* Extract the GUEST TSC MHZ from BIT[17:0], rest is reserved space */
diff --git a/arch/x86/mm/mem_encrypt_amd.c b/arch/x86/mm/mem_encrypt_amd.c
index 2f8c32173972..6c3af974c7c2 100644
--- a/arch/x86/mm/mem_encrypt_amd.c
+++ b/arch/x86/mm/mem_encrypt_amd.c
@@ -535,9 +535,6 @@ void __init sme_early_init(void)
 		 */
 		x86_init.resources.dmi_setup = snp_dmi_setup;
 	}
-
-	if (sev_status & MSR_AMD64_SNP_SECURE_TSC)
-		setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
 }
 
 void __init mem_encrypt_free_decrypted_mem(void)
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322204.1588464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySK-0002lt-BC; Fri, 29 May 2026 14:45:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322204.1588464; Fri, 29 May 2026 14:45:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySK-0002le-81; Fri, 29 May 2026 14:45:00 +0000
Received: by outflank-mailman (input) for mailman id 1322204;
 Fri, 29 May 2026 14:44:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3aKYZagYKCXMjVReaTXffXcV.TfdoVe-UVmVccZjkj.oVegifaVTk.fiX@flex--seanjc.bounces.google.com>)
 id 1wSySJ-0002eQ-J9
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:44:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySI-005qKS-W6
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:44:59 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3aKYZagYKCXMjVReaTXffXcV.TfdoVe-UVmVccZjkj.oVegifaVTk.fiX@flex--seanjc.bounces.google.com>)
 id 6a19a655-5cb7-0a2a0a5109dd-0a2a450ba186-46
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:44:58 +0200
Received: from [209.85.216.73] (helo=mail-pj1-f73.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3aKYZagYKCXMjVReaTXffXcV.TfdoVe-UVmVccZjkj.oVegifaVTk.fiX@flex--seanjc.bounces.google.com>)
 id 6a19a669-212f-0a2a450b0019-d155d849dcad-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:44:58 +0200
Received: by mail-pj1-f73.google.com with SMTP id
 98e67ed59e1d1-36b982ec338so1811706a91.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:44:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065896; x=1780670696; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=Q/Ssx6Evg+apl0YO4v5bDvJ7vmmhU3NWEJgFIU1d/78=;
        b=LhtWt9jkYEK+cdCFgV6fJQphooXitVUnfpijn90NyS/SqqCpvcADA7UJ82LcEg7pXz
         EgpafOZODlLxSwcKKcmnniau/OZLzF7KZLsRd1KtyrTYdA8ouz4/zqUqNPlfsx5eTNVd
         /wTCdn1F57z1rIhJ2Yksf1I1PdRsNYuA6b/QDEuWvjUhYEyNuidR3SCEzqP2HPTreUu3
         K0aGT+PUM6uRoID8PcXhlg0gi8HC4cQG+x1rUbnBwTABAz/IiKZmslaIvUUr2QOAPG4T
         5fjVWMQ5xQkPjIHni0K4CChm29oy+gLTc/eRsTd+95ga6Y0ZhN3VJ/WxqSIzTFKaEVsR
         CLsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065896; x=1780670696;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Q/Ssx6Evg+apl0YO4v5bDvJ7vmmhU3NWEJgFIU1d/78=;
        b=fVmuV7LwZyXifob8HM9eytrDkSawGS/UQoxKNBzpEf4BO/flKEfphLd4JHT69cNMxI
         R69V5kmV8yDU+oRpjMDf1/sUwewWC0ckIBfT0WE3bkMo6xrA68OruMf5nrQFaXA78slt
         Mo0LSH3BkQl7qMtw9yKsuaDUr2pdJ8wMbBrcn155GzdGvqSp0UMWbS+HgNG4teRW6FsL
         ziwalid4xxLF8JA691N4CJblHTbs0gy/wkdeTp5sIQXjz49dsJc2FoyW5iPuIXHWBQ+S
         Tc7x+1D1xmFfANEgdmxeb+gNT80MdOEHSV1b0/fQjM1POCr/IwXsX8jeE1GwKd1jGaGV
         RT2g==
X-Forwarded-Encrypted: i=1; AFNElJ/3OPHo5WxxIRGPQ78JOIzLJ2vTPQC+22BgXfdjHvOpm9eRevqZcLM1eR/D1tYj2LrVLh6RNxattaQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFuGJno49wqVCmsPnbEhAH8VCOU7olHgobbLfbsQjD2XSD6T8b
	KRZbdOGoVh4jgCRA4QUqunGCCop446yp7bXEhSR+SxCmPYZDXqiHpb1ZlfEghk/bnNnuH4e8G44
	TiCP+Og==
X-Received: from pjnu11.prod.google.com ([2002:a17:90a:890b:b0:36b:8d3f:d136])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:1dd1:b0:368:ac5f:d31b
 with SMTP id 98e67ed59e1d1-36bbd006f90mr3628748a91.24.1780065896168; Fri, 29
 May 2026 07:44:56 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:43:51 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-5-seanjc@google.com>
Subject: [PATCH v4 04/47] x86/sev: Don't override CPU frequency calibration
 for SNP's Secure TSC
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-42698a/1780065898-19F6EF3B-D043C1B6/0/0
X-purgate-type: clean
X-purgate-size: 1454

Don't override the kernel's CPU frequency calibration routine when
registering SNP's Secure TSC calibration routine.  SNP (the architecture)
provides zero guarantees that the CPU runs at the same frequency as the
TSC.  The justification for clobbering the CPU routine was:

  Since the difference between CPU base and TSC frequency does not apply
  in this case, the same callback is being used.

but that's simply not true.  E.g. if APERF/MPERF is exposed to the VM, then
the CPU frequency absolutely does matter.

While relying on heuristics and/or the untrusted hypervisor to provide the
CPU frequency isn't ideal, it's at least not outright wrong.

Fixes: 73bbf3b0fbba ("x86/tsc: Init the TSC for Secure TSC guests")
Cc: Nikunj A Dadhania <nikunj@amd.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/coco/sev/core.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c
index ed0ac52a765e..665de1aea0ee 100644
--- a/arch/x86/coco/sev/core.c
+++ b/arch/x86/coco/sev/core.c
@@ -2046,7 +2046,6 @@ void __init snp_secure_tsc_init(void)
 
 	snp_tsc_freq_khz = SNP_SCALE_TSC_FREQ(tsc_freq_mhz * 1000, secrets->tsc_factor);
 
-	x86_platform.calibrate_cpu = securetsc_get_tsc_khz;
 	x86_platform.calibrate_tsc = securetsc_get_tsc_khz;
 
 	early_memunmap(mem, PAGE_SIZE);
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322207.1588492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySO-0003UN-2K; Fri, 29 May 2026 14:45:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322207.1588492; Fri, 29 May 2026 14:45:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySN-0003Tj-T8; Fri, 29 May 2026 14:45:03 +0000
Received: by outflank-mailman (input) for mailman id 1322207;
 Fri, 29 May 2026 14:45:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3a6YZagYKCXYmYUhdWaiiafY.WigrYh-XYpYffcmnm.rYhjlidYWn.ila@flex--seanjc.bounces.google.com>)
 id 1wSySM-0003D7-Od
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySM-004chj-5B
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:02 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3a6YZagYKCXYmYUhdWaiiafY.WigrYh-XYpYffcmnm.rYhjlidYWn.ila@flex--seanjc.bounces.google.com>)
 id 6a19a66d-e002-0a2a0a5209dd-0a2a4503e0ca-2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:02 +0200
Received: from [209.85.216.74] (helo=mail-pj1-f74.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3a6YZagYKCXYmYUhdWaiiafY.WigrYh-XYpYffcmnm.rYhjlidYWn.ila@flex--seanjc.bounces.google.com>)
 id 6a19a66c-672d-0a2a45030019-d155d84ac5ee-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:01 +0200
Received: by mail-pj1-f74.google.com with SMTP id
 98e67ed59e1d1-3662e7756f0so11442136a91.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065900; x=1780670700; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:reply-to:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DaZwo5N6cl7Wcn+YII8G1Z7wxMBnsUseTYI23WvaSW8=;
        b=fLgZEfMPzZ4laOX42kVD+nZ+t8gnk97KjzLmSVdN6OXtXhdwCpDj8gstadeTRpKFwJ
         QKKkAjFhCBi+ifHE1tl/YwBfHNVAEwgSQOU6bCFzB2KHsu14gYjaiI1wuUpF9ibFWZ2j
         RLnHeNsRnwXeObS4BdUrvRoGC1MvO1EykRsEZntKRTXZGlv8UTzMdT5uQdT8NhPaG6WZ
         yND8EixMfokTVz5GS1qCDMezzTjx17OvA+mrE/IfsZAK8gV1VMiPf7fwGtWeNTkmqvH8
         ACL4RENpueNXqLAK1otvfnHgB9oYertiynTCZDZbbfebtz6RyS4ubX/+baZmk/nP1BkA
         fDQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065900; x=1780670700;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:reply-to:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=DaZwo5N6cl7Wcn+YII8G1Z7wxMBnsUseTYI23WvaSW8=;
        b=MTSga1e3c77eUEOtElpwSReUzCKfvMqQ8AmG9HrPWtfanFXw5c8zqes2KcvYJK/gtj
         uuAnViupi0LM9aYSbPBBz49xZurgfwXJpRAWvOVCRrVt6lwiWgykHuOy6FAGuMVbY9v3
         lqGJAxPCAmeqKbTqqPa8ssryYglX7flCZHnE9hagYJcut4J3kgIdqjrw/v2yayJDmhxo
         mOdroN97FsKo1L/HWiik8VHCPl/C6WlKfgu7zGFF4NBzgxQ9RT9xTxQJzAo0/lX6Y5h0
         pCpbJ4FPkPM1NbRdPrRc/gs/C58CXOVGkd1NfjgUponerJEkTs4WltHfdsbVerDjdOUy
         Lymw==
X-Forwarded-Encrypted: i=1; AFNElJ/zG1imAit+zxaJGSHe+pbe6C/l76hUpyNvHuqnaj4+TtSeAGPpIKfF6zs586QF4DAV0a19V5ch+GI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwE5oYmrXgZswx5pUSQ6iFjHAHHJT4Ma+e8pU7fWdgu9x2Z187x
	ESbnPL7DDBEoj0PRPac/ESsIIRxo1zpyuzyOBMCQovKpGCGcVRc3m91X3LnztZNFARYXSmkU8gJ
	Hvmk7BQ==
X-Received: from pjte5.prod.google.com ([2002:a17:90a:c205:b0:36b:7748:4e7a])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:3606:b0:36b:e109:1e63
 with SMTP id 98e67ed59e1d1-36be10928f2mr708703a91.27.1780065899626; Fri, 29
 May 2026 07:44:59 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:43:54 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-8-seanjc@google.com>
Subject: [PATCH v4 07/47] x86/tdx: Force TSC frequency with CPUID-based info
 provided by the TDX-Module
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-33051d/1780065902-3B96D938-A1E6EBF3/0/0
X-purgate-type: clean
X-purgate-size: 4302

When running as a TDX guest, explicitly set the TSC frequency to a known
value, using CPUID-based information, instead of potentially relying on a
hypervisor-controlled PV routine.  For TDX guests, CPUID.0x15 is always
emulated by the TDX-Module, i.e. the information from CPUID is more
trustworthy than the information provided by the hypervisor.

To maintain backwards compatibility with TDX guest kernels that use native
calibration, and because it's the least awful option, retain
native_calibrate_tsc()'s stuffing of the local APIC bus period using the
core crystal frequency.  While it's entirely possible for the hypervisor
to emulate the APIC timer at a different frequency than the core crystal
frequency, the commonly accepted interpretation of Intel's SDM is that APIC
timer runs at the core crystal frequency when that latter is enumerated via
CPUID:

  The APIC timer frequency will be the processor=E2=80=99s bus clock or cor=
e
  crystal clock frequency (when TSC/core crystal clock ratio is enumerated
  in CPUID leaf 0x15).

If the hypervisor is malicious and deliberately runs the APIC timer at the
wrong frequency, nothing would stop the hypervisor from modifying the
frequency at any time, i.e. attempting to manually calibrate the frequency
out of paranoia would be futile.

Deliberately leave CPU frequency calibration as is, since the TDX-Module
doesn't provide any guarantees with respect to CPUID.0x16.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/coco/tdx/tdx.c    | 20 +++++++++++++++++---
 arch/x86/include/asm/tdx.h |  2 ++
 arch/x86/kernel/tsc.c      |  3 +++
 3 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/arch/x86/coco/tdx/tdx.c b/arch/x86/coco/tdx/tdx.c
index 29b6f1ed59ec..5d7976359220 100644
--- a/arch/x86/coco/tdx/tdx.c
+++ b/arch/x86/coco/tdx/tdx.c
@@ -8,6 +8,7 @@
 #include <linux/export.h>
 #include <linux/io.h>
 #include <linux/kexec.h>
+#include <asm/apic.h>
 #include <asm/coco.h>
 #include <asm/tdx.h>
 #include <asm/vmx.h>
@@ -1123,9 +1124,6 @@ void __init tdx_early_init(void)
=20
 	setup_force_cpu_cap(X86_FEATURE_TDX_GUEST);
=20
-	/* TSC is the only reliable clock in TDX guest */
-	setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
-
 	cc_vendor =3D CC_VENDOR_INTEL;
=20
 	/* Configure the TD */
@@ -1195,3 +1193,19 @@ void __init tdx_early_init(void)
=20
 	tdx_announce();
 }
+
+unsigned int __init tdx_tsc_init(void)
+{
+	struct cpuid_tsc_info info;
+
+	if (WARN_ON_ONCE(cpuid_get_tsc_freq(&info)))
+		return 0;
+
+	lapic_timer_period =3D info.crystal_khz * 1000 / HZ;
+
+	/* TSC is the only reliable clock in TDX guest */
+	setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
+	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
+
+	return info.tsc_khz;
+}
diff --git a/arch/x86/include/asm/tdx.h b/arch/x86/include/asm/tdx.h
index e5a9cf656c07..1d841d464aa4 100644
--- a/arch/x86/include/asm/tdx.h
+++ b/arch/x86/include/asm/tdx.h
@@ -67,6 +67,7 @@ struct ve_info {
 #ifdef CONFIG_INTEL_TDX_GUEST
=20
 void __init tdx_early_init(void);
+unsigned int __init tdx_tsc_init(void);
=20
 void tdx_get_ve_info(struct ve_info *ve);
=20
@@ -88,6 +89,7 @@ void __init tdx_dump_td_ctls(u64 td_ctls);
 #else
=20
 static inline void tdx_early_init(void) { };
+static inline unsigned int tdx_tsc_init(void) { return 0; }
 static inline void tdx_halt(void) { };
=20
 static inline bool tdx_early_handle_ve(struct pt_regs *regs) { return fals=
e; }
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 2b8f94c3fcc7..2603f136e29b 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -34,6 +34,7 @@
 #include <asm/topology.h>
 #include <asm/uv/uv.h>
 #include <asm/sev.h>
+#include <asm/tdx.h>
=20
 unsigned int __read_mostly cpu_khz;	/* TSC clocks / usec, not used here */
 EXPORT_SYMBOL(cpu_khz);
@@ -1550,6 +1551,8 @@ void __init tsc_early_init(void)
 		known_tsc_khz =3D tsc_early_khz;
 	else if (cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC))
 		known_tsc_khz =3D snp_secure_tsc_init();
+	else if (boot_cpu_has(X86_FEATURE_TDX_GUEST))
+		known_tsc_khz =3D tdx_tsc_init();
=20
 	if (!determine_cpu_tsc_frequencies(true, known_tsc_khz))
 		return;
--=20
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322201.1588433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySH-0001xd-As; Fri, 29 May 2026 14:44:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322201.1588433; Fri, 29 May 2026 14:44:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySH-0001wo-6m; Fri, 29 May 2026 14:44:57 +0000
Received: by outflank-mailman (input) for mailman id 1322201;
 Fri, 29 May 2026 14:44:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3YqYZagYKCW0dPLYUNRZZRWP.NZXiPY-OPgPWWTded.iPYacZUPNe.ZcR@flex--seanjc.bounces.google.com>)
 id 1wSySF-0001v9-S1
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:44:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySD-004cdT-Na
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:44:53 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3YqYZagYKCW0dPLYUNRZZRWP.NZXiPY-OPgPWWTded.iPYacZUPNe.ZcR@flex--seanjc.bounces.google.com>)
 id 6a19a65b-e002-0a2a0a5209dd-0a2a4506b7dc-14
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:44:53 +0200
Received: from [209.85.210.201] (helo=mail-pf1-f201.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3YqYZagYKCW0dPLYUNRZZRWP.NZXiPY-OPgPWWTded.iPYacZUPNe.ZcR@flex--seanjc.bounces.google.com>)
 id 6a19a664-7371-0a2a45060019-d155d2c9b49c-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:44:53 +0200
Received: by mail-pf1-f201.google.com with SMTP id
 d2e1a72fcca58-8421fa54cf9so130809b3a.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:44:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:Mime-Version:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065891; x=1780670691; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:mime-version:date:reply-to:from:to:cc
         :subject:date:message-id:reply-to;
        bh=4ZSmySQjJHcnKIUXjsIIs83nT6d2RU++b42lJ4OxIH4=;
        b=YAF7OubDYOLHHFeMb/a9ni0WRMaiVzj+eUYOMNT77aS+cJC0kZ80HtdqIGVZqZQa5A
         XjTM66107JEizpm9b5XCPtdknPBF1bbhCd/tXQHRkvQR5zfV919YelWy+jzFZzlwmr+2
         o1SP7x51SERO5jUICFL1lmc6nxaz6WSAaLpWbgFanSJCvXsjliBJjeeH0iPwLv9Y535o
         oMlM4AJ8CUgJRa/HuIhUIPi0KaJvi0fLtW+PDJr3wJD346P63S/FCMWa2YtEek0FzjTg
         2KSCAOctCi4fP9FNU04RJiPceyNYOQnrV76fZ8vQpEEvH1Yy0HpVkpI3YFzQPuKNG478
         dZuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065891; x=1780670691;
        h=cc:to:from:subject:message-id:mime-version:date:reply-to
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=4ZSmySQjJHcnKIUXjsIIs83nT6d2RU++b42lJ4OxIH4=;
        b=HRsB19Ll4v+/LzgGRznsc9WyZ5oU6ObJoilLkh3eM0n2lsghrl7JStlGz8GSfp62W2
         GkOcrel96BMXgqkuqyw+ABwae01665eo+Ze48CtpHzStmi029CZ8uQVgTGM5dm+STYzt
         zezKUnTfnEx9nwaYwa3upK/Cs1La4e72OjqBS+SAbcA2ESvJXskdoNQF9lq65zBF51dC
         1L3TkhkJJjI4CoN5JcuyNNpSlz5lBzf+4KDItqKoKR6+pTCGrbT+RB3+khTD7Ly7Oj9o
         trTnOFxCUvAUX1KuQUOAiheKG1ZeTRs7WI13eFOYsbq63CIoaFoi3AslvWm3yH0TSstJ
         Pmnw==
X-Forwarded-Encrypted: i=1; AFNElJ8MiTjwomaVcBdNAsEg4kazCpHXIgcdROP3zAduvIWjPldUTsVf4pOe2eNQyodp7nemjwwvLlDFi+g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YycKhzTUaDOgjHIF4Z4h7ev80Ej6W6Aph1ex98luacXULp/OTW5
	TsXAEhQ/j2RieWGRAwNk1Y0VZZdobr6aq1Ni/C9HMko22N49IVpmYSRz7pHM1cfH+80zc+1vFbo
	E7Fs0Bw==
X-Received: from pfbgg3.prod.google.com ([2002:a05:6a00:6303:b0:838:ec6d:449c])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:140f:b0:83e:ccd6:2dc8
 with SMTP id d2e1a72fcca58-84212ce3e9emr3273017b3a.27.1780065890910; Fri, 29
 May 2026 07:44:50 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:43:47 -0700
Mime-Version: 1.0
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-1-seanjc@google.com>
Subject: [PATCH v4 00/47] x86: Try to wrangle PV clocks vs. TSC
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-16d1c6/1780065893-87371D75-C9DB72F8/0/0
X-purgate-type: clean
X-purgate-size: 9340

Well, the number of patches in the series is going in the wrong direction,
but I'm much happier with this version, which eschews the x86_platform
overrides entirely in favor of a fixed sequence for selecting the TSC/CPU
frequency "routine".

Given that previous versions had fatal NULL pointer deref bugs that affected
VMware and Xen, this series needs testing and acks from those maintainers.

The primary goal of this series to fix flaws with SNP and TDX guests where a
PV clock provided by the untrusted hypervisor is used instead of the secure
TSC that is controlled by trusted firmware.

The secondary goal is modernize running under KVM.  Currently, KVM guests will
use TSC for clocksource, but not sched_clock.  And Linux-as-a-KVM-guest doesn't
support paravirt enumeration of the TSC/APIC frequencies, even though QEMU
provides that information by default.

The tertiary goal is to clean up the PV clock code to deduplicate logic across
hypervisors, and to hopefully make it all easier to maintain going forward.

v4 also adds a quaternary goal of cleaning up the TSC calibration code, which
was made stupidly hard to follow by hypervisor code mixing in with the native
calibration routines, instead of being implemented as a pure alternative.

Lots more background on the SNP/TDX motiviation:
https://lore.kernel.org/all/20250106124633.1418972-13-nikunj@amd.com

As before, I deliberately omitted jailhouse-dev@googlegroups.com from the To/Cc,
as those emails bounced on v1, AFAICT nothing has changed.

Note, I deliberately didn't collect a few reviews as the patches changed quite
a bit from what was reviewed in v3.

v4:
 - Use x86_init_noop() to skip save/restore on VMware and Xen instead of
   nullifying x86_platform.{save,restore}_sched_clock_state. [Sashiko]
 - Use '0' to indicate "failure" when getting the CPU frequency from CPUID, to
   avoid using an out-param and thus make it all but impossible to
   unintentionally clobber the global cpu_khz (which v3 did). [Sashiko]
 - Rename cpuid_get_cpu_freq() => __cpu_khz_from_cpuid() to capture its
   relationship with cpu_khz_from_cpuid().
 - Compute lapic_timer_period in units of ticks, not Khz. [Sashiko]
 - Kill off x86_platform_ops.calibrate_{cpu,tsc}(), and instead use dedicated
   hooks for hypervisor code, and direct calls for TDX and SNP. [David, loosely]
 - Drop SNP's secure TSC override of _CPU_ calibration, as there's zero
   evidence it's justified or a net positive.
 - Collect reviews/acks. [David, Wei]
 - Decouple getting TSC/APIC frequencies from KVM PV CPUID from kvmclock. [David]
 - Fix an amusing number of Opportunistically misspellings. [David]
 - Set kvm_sched_clock_offset _before_ registering kvmclock as sched_clock,
   and add a comment to guard against future goofs. [Sashiko]
 - Keep "setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE)" in Hyper-V's handling
   of HV_ACCESS_TSC_INVARIANT, as it's technically possible to have a VM
   with HV_ACCESS_TSC_INVARIANT but not HV_ACCESS_FREQUENCY_MSRS.  Though as
   a _very_ nice side effect of using dedicated sequencing for selecting the
   TSC frequency source, this would have naturally happened anyways. [Sashiko]

v3:
 - https://lore.kernel.org/all/20260515191942.1892718-1-seanjc@google.com
 - Collect reviews. [Michael, Thomas]
 - Use Hyper-V reference counter / refcounter instead of Hyper-V timer. [Michael]
 - Use the paravirt CPUID interface first proposed by VMware for KVM's
   "official" mechanism for communicating frequency to KVM-aware guests,
   instead of abusing Intel's CPUID leafs. [David]
 - Deal with paravirt code being moved into asm/timers.h and
   arch/x86/kernel/tsc.c.

v2:
 - https://lore.kernel.org/all/Z8YWttWDtvkyCtdJ@google.com
 - Add struct to hold the TSC CPUID output. [Boris]
 - Don't pointlessly inline the TSC CPUID helpers. [Boris]
 - Fix a variable goof in a helper, hopefully for real this time. [Dan]
 - Collect reviews. [Nikunj]
 - Override the sched_clock save/restore hooks if and only if a PV clock
   is successfully registered.
 - During resome, restore clocksources before reading persistent time.
 - Clean up more warts created by kvmclock.
 - Fix more bugs in kvmclock's suspend/resume handling.
 - Try to harden kvmclock against future bugs.

v1: https://lore.kernel.org/all/20250201021718.699411-1-seanjc@google.com

David Woodhouse (3):
  KVM: x86: Officially define CPUID 0x40000010 as PV Timing Info (TSC
    and Bus)
  x86/kvm: Obtain TSC frequency from PV CPUID if present
  x86/xen: Obtain TSC frequency from CPUID if present

Sean Christopherson (44):
  x86/tsc: Never re-calibrate TSC frequency if its exact timing is known
  x86/tsc: Add a standalone helpers for getting TSC info from CPUID.0x15
  x86/sev: Mark TSC as reliable when configuring Secure TSC
  x86/sev: Don't override CPU frequency calibration for SNP's Secure TSC
  x86/sev: Move check for SNP Secure TSC support to tsc_early_init()
  x86/sev: Shove SNP's secure/trusted TSC frequency directly into
    "calibration"
  x86/tdx: Force TSC frequency with CPUID-based info provided by the
    TDX-Module
  x86/tsc: Add dedicated hypervisor hooks for getting known TSC/CPU
    frequencies
  x86/acrn: Mark TSC frequency as known when using ACRN for calibration
  x86/tsc: Consolidate forcing of X86_FEATURE_TSC_KNOWN_FREQ for PV code
  x86/tsc: Kill off x86_platform_ops.calibrate_{cpu,tsc}() hooks
  x86/tsc: Rename pit_hpet_ptimer_calibrate_cpu() =>
    native_calibrate_cpu_late()
  x86/tsc: Fold native_calibrate_cpu() into recalibrate_cpu_khz()
  x86/kvmclock: Rename kvm_get_tsc_khz() to kvmclock_get_tsc_khz()
  x86/kvm: Mark TSC as reliable when it's constant and nonstop
  x86/kvm: Get local APIC bus frequency from PV CPUID Timing Info
  x86/tsc: Add standalone helper for getting CPU frequency from CPUID
  x86/kvm: Get CPU base frequency from CPUID when it's available
  clocksource: hyper-v: Register sched_clock save/restore iff it's
    necessary
  clocksource: hyper-v: Drop wrappers to sched_clock save/restore
    helpers
  clocksource: hyper-v: Don't save/restore TSC offset when using HV
    sched_clock
  x86/kvmclock: Setup kvmclock for secondary CPUs iff CONFIG_SMP=y
  x86/kvm: Don't disable kvmclock on BSP in syscore_suspend()
  x86/paravirt: Remove unnecessary PARAVIRT=n stub for
    paravirt_set_sched_clock()
  x86/paravirt: Move handling of unstable PV clocks into
    paravirt_set_sched_clock()
  x86/kvmclock: Move sched_clock save/restore helpers up in kvmclock.c
  x86/xen/time: NOP-ify x86_platform's sched_clock save/restore hooks
  x86/vmware: NOP-ify save/restore hooks when using VMware's sched_clock
  x86/tsc: WARN if TSC sched_clock save/restore used with PV sched_clock
  x86/paravirt: Pass sched_clock save/restore helpers during
    registration
  x86/kvmclock: Move kvm_sched_clock_init() down in kvmclock.c
  x86/xen/time: Mark xen_setup_vsyscall_time_info() as __init
  x86/pvclock: Mark setup helpers and related various as
    __init/__ro_after_init
  x86/pvclock: WARN if pvclock's valid_flags are overwritten
  x86/kvmclock: Refactor handling of PVCLOCK_TSC_STABLE_BIT during
    kvmclock_init()
  timekeeping: Resume clocksources before reading persistent clock
  x86/kvmclock: Hook clocksource.suspend/resume when kvmclock isn't
    sched_clock
  x86/kvmclock: WARN if wall clock is read while kvmclock is suspended
  x86/paravirt: Mark __paravirt_set_sched_clock() as __init
  x86/paravirt: Plumb a return code into __paravirt_set_sched_clock()
  x86/paravirt: Don't use a PV sched_clock in CoCo guests with trusted
    TSC
  x86/kvmclock: Use TSC for sched_clock if it's constant and non-stop
  x86/kvmclock: Plumb in AP-online and BSP-resume to kvmlock, for
    documentation
  x86/paravirt: Move using_native_sched_clock() stub into timer.h

 Documentation/virt/kvm/x86/cpuid.rst |  12 ++
 arch/x86/coco/sev/core.c             |  21 +--
 arch/x86/coco/tdx/tdx.c              |  19 ++-
 arch/x86/include/asm/acrn.h          |   5 -
 arch/x86/include/asm/kvm_para.h      |  12 +-
 arch/x86/include/asm/sev.h           |   4 +-
 arch/x86/include/asm/tdx.h           |   2 +
 arch/x86/include/asm/timer.h         |  15 +-
 arch/x86/include/asm/tsc.h           |  11 +-
 arch/x86/include/asm/x86_init.h      |   8 +-
 arch/x86/include/uapi/asm/kvm_para.h |  11 ++
 arch/x86/kernel/cpu/acrn.c           |  10 +-
 arch/x86/kernel/cpu/mshyperv.c       |  65 +-------
 arch/x86/kernel/cpu/vmware.c         |  13 +-
 arch/x86/kernel/jailhouse.c          |   7 +-
 arch/x86/kernel/kvm.c                | 108 +++++++++++--
 arch/x86/kernel/kvmclock.c           | 208 ++++++++++++++++---------
 arch/x86/kernel/pvclock.c            |   9 +-
 arch/x86/kernel/tsc.c                | 218 +++++++++++++++++----------
 arch/x86/kernel/x86_init.c           |   2 -
 arch/x86/mm/mem_encrypt_amd.c        |   3 -
 arch/x86/xen/time.c                  |  25 ++-
 drivers/clocksource/hyperv_timer.c   |  38 +++--
 include/clocksource/hyperv_timer.h   |   2 -
 kernel/time/timekeeping.c            |   9 +-
 25 files changed, 533 insertions(+), 304 deletions(-)


base-commit: 4678d11f294de0fd295a265e02955b5d1a4a2684
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322209.1588501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySP-0003kq-FO; Fri, 29 May 2026 14:45:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322209.1588501; Fri, 29 May 2026 14:45:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySP-0003ka-AZ; Fri, 29 May 2026 14:45:05 +0000
Received: by outflank-mailman (input) for mailman id 1322209;
 Fri, 29 May 2026 14:45:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3bKYZagYKCXcnZVieXbjjbgZ.XjhsZi-YZqZggdnon.sZikmjeZXo.jmb@flex--seanjc.bounces.google.com>)
 id 1wSySO-0003aj-Ih
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySN-005qNj-V4
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:03 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3bKYZagYKCXcnZVieXbjjbgZ.XjhsZi-YZqZggdnon.sZikmjeZXo.jmb@flex--seanjc.bounces.google.com>)
 id 6a19a66e-5cb7-0a2a0a5109dd-0a2a450acfc8-4
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:03 +0200
Received: from [209.85.216.74] (helo=mail-pj1-f74.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3bKYZagYKCXcnZVieXbjjbgZ.XjhsZi-YZqZggdnon.sZikmjeZXo.jmb@flex--seanjc.bounces.google.com>)
 id 6a19a66d-56b3-0a2a450a0019-d155d84ae0bb-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:03 +0200
Received: by mail-pj1-f74.google.com with SMTP id
 98e67ed59e1d1-36b7c55406bso1676717a91.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065901; x=1780670701; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=i9cAaOxfY6rOh6V3wNZ8kkRpxZiPqefGKbUNNO0Sbyc=;
        b=FBQOfytJkLM/zm3wQnkSSYpjeryfLTAwu0urH7iFM+aRbh7NIY1Uicectk4RtQFVsY
         vSaqRcWBy5SQurd4KaK+1BTBJAhZ49oUhVLirzQ7tsNRAVVRyZP77TpdDBkfkeDqzlLn
         nrGBJnMXMRrbEpqJKiPCJ1ht4EOEOudMfYIAcx5HE/OhUlHPR+1OL0CHH7djoWhfiTqt
         YV5TpSNwIJ94nnADxoTxNKcuhHd/NzknJQJdALn2FDa6piegMpkycko0YVERQ3rRxz0c
         +Pol1gpQHSeEJ+lHAmMJ86PuIgB2+Cia+2WBL8ISszJuERXy0NJwVqOdUY7KVxAv7pey
         KZTQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065901; x=1780670701;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=i9cAaOxfY6rOh6V3wNZ8kkRpxZiPqefGKbUNNO0Sbyc=;
        b=iYRkwb8eocI70K0ob5akvjJzAhG00hao2+94FjL/OZZ7AFsVQ8G58YVuiJ15Av+0Cj
         EMonwXP5tgfODyX5T4BW+HK/ElwHRuAVdEO01qVeCXYHl8zfC+5RbdOnxHL63rpbOVgo
         Ee0n3j4Ok2ljsBmkQosh9x6oNghZqujThbJI/vRm9HuhwyRIzu70wA+h/hrmSZErDj7v
         XwoO/eSejs47Cnb/rI7ZOGsES/YBAPjXfmoIcFnLE1zjCZc86RjyuT0VwkgYlfKHXvGr
         tlPUV2yngAuFMJPdYdakw2mWiNkJWa4JIReJVSgGwUDAqqBo0+b0oe3dLly2u+qphn83
         AVbw==
X-Forwarded-Encrypted: i=1; AFNElJ+VBsaa5EjVol9+9s0Ir8I69fdxLyUI+8fDSuPVSfKhmN8akb739bcEcTtTbNqxhZEBDg+PckTqAUo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzLynSWNnZDdJ+tNaNj2YqwQvd9xE3IQaesgyNLpLWY89pm04lW
	NtGS55RRoF3Sb33A02jn7lExB7Vo83h7I1SyhndWT6OnJft1MleZHkhpBR74avsx9P4InfgySXo
	ZhzyfWw==
X-Received: from pjbmd5.prod.google.com ([2002:a17:90b:23c5:b0:36a:f1b9:c389])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:5410:b0:36b:bbee:fb28
 with SMTP id 98e67ed59e1d1-36bbcc14662mr3769042a91.2.1780065900790; Fri, 29
 May 2026 07:45:00 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:43:55 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-9-seanjc@google.com>
Subject: [PATCH v4 08/47] x86/tsc: Add dedicated hypervisor hooks for getting
 known TSC/CPU frequencies
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-4011c0/1780065903-705648B7-27505DA5/0/0
X-purgate-type: clean
X-purgate-size: 10836

Add dedicated hypervisor hooks for getting known TSC/CPU frequencies
instead of overriding seemingly generic platform hooks, and explicitly
priotize hypervisor-provided frequencies over native methods, but do NOT
clobber the frequency obtained from trusted firmware.  While shuffling the
hooks around is arguably "six of one, half dozen of the other", scoping
them to x86_hyper_init makes their purpose more obvious, and allows for
explicitly defining the priority of sources (as is done here).

Cc: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/acrn.h     |  5 -----
 arch/x86/include/asm/x86_init.h |  4 ++++
 arch/x86/kernel/cpu/acrn.c      | 10 +++++++---
 arch/x86/kernel/cpu/mshyperv.c  |  6 +++---
 arch/x86/kernel/cpu/vmware.c    |  8 ++++----
 arch/x86/kernel/jailhouse.c     |  6 +++---
 arch/x86/kernel/kvmclock.c      |  6 +++---
 arch/x86/kernel/tsc.c           | 23 +++++++++++++++++++----
 arch/x86/xen/time.c             |  4 ++--
 9 files changed, 45 insertions(+), 27 deletions(-)

diff --git a/arch/x86/include/asm/acrn.h b/arch/x86/include/asm/acrn.h
index db42b477c41d..a892179c61c6 100644
--- a/arch/x86/include/asm/acrn.h
+++ b/arch/x86/include/asm/acrn.h
@@ -32,11 +32,6 @@ static inline u32 acrn_cpuid_base(void)
 	return 0;
 }
 
-static inline unsigned long acrn_get_tsc_khz(void)
-{
-	return cpuid_eax(ACRN_CPUID_TIMING_INFO);
-}
-
 /*
  * Hypercalls for ACRN
  *
diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
index 6c8a6ead84f6..a4f8a4aa601d 100644
--- a/arch/x86/include/asm/x86_init.h
+++ b/arch/x86/include/asm/x86_init.h
@@ -120,6 +120,8 @@ struct x86_init_pci {
  * @msi_ext_dest_id:		MSI supports 15-bit APIC IDs
  * @init_mem_mapping:		setup early mappings during init_mem_mapping()
  * @init_after_bootmem:		guest init after boot allocator is finished
+ * @get_tsc_khz:		get the TSC frequency (returns 0 if frequency is unknown)
+ * @get_cpu_khz:		get the CPU frequency (returns 0 if frequency is unknown)
  */
 struct x86_hyper_init {
 	void (*init_platform)(void);
@@ -128,6 +130,8 @@ struct x86_hyper_init {
 	bool (*msi_ext_dest_id)(void);
 	void (*init_mem_mapping)(void);
 	void (*init_after_bootmem)(void);
+	unsigned int (*get_tsc_khz)(void);
+	unsigned int (*get_cpu_khz)(void);
 };
 
 /**
diff --git a/arch/x86/kernel/cpu/acrn.c b/arch/x86/kernel/cpu/acrn.c
index dc119af83524..ad8f2da8003b 100644
--- a/arch/x86/kernel/cpu/acrn.c
+++ b/arch/x86/kernel/cpu/acrn.c
@@ -24,13 +24,15 @@ static u32 __init acrn_detect(void)
 	return acrn_cpuid_base();
 }
 
+static unsigned int __init acrn_get_tsc_khz(void)
+{
+	return cpuid_eax(ACRN_CPUID_TIMING_INFO);
+}
+
 static void __init acrn_init_platform(void)
 {
 	/* Install system interrupt handler for ACRN hypervisor callback */
 	sysvec_install(HYPERVISOR_CALLBACK_VECTOR, sysvec_acrn_hv_callback);
-
-	x86_platform.calibrate_tsc = acrn_get_tsc_khz;
-	x86_platform.calibrate_cpu = acrn_get_tsc_khz;
 }
 
 static bool acrn_x2apic_available(void)
@@ -78,4 +80,6 @@ const __initconst struct hypervisor_x86 x86_hyper_acrn = {
 	.type			= X86_HYPER_ACRN,
 	.init.init_platform     = acrn_init_platform,
 	.init.x2apic_available  = acrn_x2apic_available,
+	.init.get_tsc_khz	= acrn_get_tsc_khz,
+	.init.get_cpu_khz	= acrn_get_tsc_khz,
 };
diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
index 185d4f677ec0..733e12d5a7dd 100644
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86/kernel/cpu/mshyperv.c
@@ -395,7 +395,7 @@ static int hv_nmi_unknown(unsigned int val, struct pt_regs *regs)
 }
 #endif
 
-static unsigned long hv_get_tsc_khz(void)
+static unsigned int __init hv_get_tsc_khz(void)
 {
 	unsigned long freq;
 
@@ -573,8 +573,8 @@ static void __init ms_hyperv_init_platform(void)
 
 	if (ms_hyperv.features & HV_ACCESS_FREQUENCY_MSRS &&
 	    ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
-		x86_platform.calibrate_tsc = hv_get_tsc_khz;
-		x86_platform.calibrate_cpu = hv_get_tsc_khz;
+		x86_init.hyper.get_tsc_khz = hv_get_tsc_khz;
+		x86_init.hyper.get_cpu_khz = hv_get_tsc_khz;
 		setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 	}
 
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index 34b73573b108..7c8cf4885e82 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -64,7 +64,7 @@ struct vmware_steal_time {
 	u64 reserved[7];
 };
 
-static unsigned long vmware_tsc_khz __ro_after_init;
+static unsigned long vmware_tsc_khz __initdata;
 static u8 vmware_hypercall_mode     __ro_after_init;
 
 unsigned long vmware_hypercall_slow(unsigned long cmd,
@@ -137,7 +137,7 @@ static inline int __vmware_platform(void)
 	return eax != UINT_MAX && ebx == VMWARE_HYPERVISOR_MAGIC;
 }
 
-static unsigned long vmware_get_tsc_khz(void)
+static unsigned int __init vmware_get_tsc_khz(void)
 {
 	return vmware_tsc_khz;
 }
@@ -419,8 +419,8 @@ static void __init vmware_platform_setup(void)
 		}
 
 		vmware_tsc_khz = tsc_khz;
-		x86_platform.calibrate_tsc = vmware_get_tsc_khz;
-		x86_platform.calibrate_cpu = vmware_get_tsc_khz;
+		x86_init.hyper.get_tsc_khz = vmware_get_tsc_khz;
+		x86_init.hyper.get_cpu_khz = vmware_get_tsc_khz;
 
 #ifdef CONFIG_X86_LOCAL_APIC
 		/* Skip lapic calibration since we know the bus frequency. */
diff --git a/arch/x86/kernel/jailhouse.c b/arch/x86/kernel/jailhouse.c
index f58ce9220e0f..4034e08c5f11 100644
--- a/arch/x86/kernel/jailhouse.c
+++ b/arch/x86/kernel/jailhouse.c
@@ -68,7 +68,7 @@ static void __init jailhouse_timer_init(void)
 	lapic_timer_period = setup_data.v1.apic_khz * (1000 / HZ);
 }
 
-static unsigned long jailhouse_get_tsc(void)
+static unsigned int __init jailhouse_get_tsc(void)
 {
 	return precalibrated_tsc_khz;
 }
@@ -210,8 +210,6 @@ static void __init jailhouse_init_platform(void)
 	x86_init.mpparse.parse_smp_cfg		= jailhouse_parse_smp_config;
 	x86_init.pci.arch_init			= jailhouse_pci_arch_init;
 
-	x86_platform.calibrate_cpu		= jailhouse_get_tsc;
-	x86_platform.calibrate_tsc		= jailhouse_get_tsc;
 	x86_platform.get_wallclock		= jailhouse_get_wallclock;
 	x86_platform.legacy.rtc			= 0;
 	x86_platform.legacy.warm_reset		= 0;
@@ -293,5 +291,7 @@ const struct hypervisor_x86 x86_hyper_jailhouse __refconst = {
 	.detect			= jailhouse_detect,
 	.init.init_platform	= jailhouse_init_platform,
 	.init.x2apic_available	= jailhouse_x2apic_available,
+	.init.get_tsc_khz	= jailhouse_get_tsc,
+	.init.get_cpu_khz	= jailhouse_get_tsc,
 	.ignore_nopv		= true,
 };
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index b5991d53fc0e..ec888eef74aa 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -115,7 +115,7 @@ static inline void kvm_sched_clock_init(bool stable)
  * poll of guests can be running and trouble each other. So we preset
  * lpj here
  */
-static unsigned long kvm_get_tsc_khz(void)
+static unsigned int __init kvm_get_tsc_khz(void)
 {
 	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 	return pvclock_tsc_khz(this_cpu_pvti());
@@ -321,8 +321,8 @@ void __init kvmclock_init(void)
 	flags = pvclock_read_flags(&hv_clock_boot[0].pvti);
 	kvm_sched_clock_init(flags & PVCLOCK_TSC_STABLE_BIT);
 
-	x86_platform.calibrate_tsc = kvm_get_tsc_khz;
-	x86_platform.calibrate_cpu = kvm_get_tsc_khz;
+	x86_init.hyper.get_tsc_khz = kvm_get_tsc_khz;
+	x86_init.hyper.get_cpu_khz = kvm_get_tsc_khz;
 	x86_platform.get_wallclock = kvm_get_wallclock;
 	x86_platform.set_wallclock = kvm_set_wallclock;
 #ifdef CONFIG_X86_LOCAL_APIC
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 2603f136e29b..362596612442 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -1476,13 +1476,17 @@ static int __init init_tsc_clocksource(void)
 device_initcall(init_tsc_clocksource);
 
 static bool __init determine_cpu_tsc_frequencies(bool early,
+						 unsigned int known_cpu_khz,
 						 unsigned int known_tsc_khz)
 {
 	/* Make sure that cpu and tsc are not already calibrated */
 	WARN_ON(cpu_khz || tsc_khz);
 
 	if (early) {
-		cpu_khz = x86_platform.calibrate_cpu();
+		if (known_cpu_khz)
+			cpu_khz = known_cpu_khz;
+		else
+			cpu_khz = x86_platform.calibrate_cpu();
 		if (known_tsc_khz)
 			tsc_khz = known_tsc_khz;
 		else
@@ -1539,7 +1543,7 @@ static void __init tsc_enable_sched_clock(void)
 
 void __init tsc_early_init(void)
 {
-	unsigned int known_tsc_khz = 0;
+	unsigned int known_cpu_khz = 0, known_tsc_khz = 0;
 
 	if (!boot_cpu_has(X86_FEATURE_TSC))
 		return;
@@ -1547,6 +1551,9 @@ void __init tsc_early_init(void)
 	if (is_early_uv_system())
 		return;
 
+	if (x86_init.hyper.get_cpu_khz)
+		known_cpu_khz = x86_init.hyper.get_cpu_khz();
+
 	if (tsc_early_khz)
 		known_tsc_khz = tsc_early_khz;
 	else if (cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC))
@@ -1554,7 +1561,15 @@ void __init tsc_early_init(void)
 	else if (boot_cpu_has(X86_FEATURE_TDX_GUEST))
 		known_tsc_khz = tdx_tsc_init();
 
-	if (!determine_cpu_tsc_frequencies(true, known_tsc_khz))
+	/*
+	 * If the TSC frequency is still unknown, i.e. not provided by the user
+	 * or by trusted firmware, try to get it from the hypervisor (which is
+	 * untrusted when running as a CoCo guest).
+	 */
+	if (!known_tsc_khz && x86_init.hyper.get_tsc_khz)
+		known_tsc_khz = x86_init.hyper.get_tsc_khz();
+
+	if (!determine_cpu_tsc_frequencies(true, known_cpu_khz, known_tsc_khz))
 		return;
 	tsc_enable_sched_clock();
 }
@@ -1575,7 +1590,7 @@ void __init tsc_init(void)
 
 	if (!tsc_khz) {
 		/* We failed to determine frequencies earlier, try again */
-		if (!determine_cpu_tsc_frequencies(false, 0)) {
+		if (!determine_cpu_tsc_frequencies(false, 0, 0)) {
 			mark_tsc_unstable("could not calculate TSC khz");
 			setup_clear_cpu_cap(X86_FEATURE_TSC_DEADLINE_TIMER);
 			return;
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index d62c14334b35..1adb44fdddb2 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -38,7 +38,7 @@
 static u64 xen_sched_clock_offset __read_mostly;
 
 /* Get the TSC speed from Xen */
-static unsigned long xen_tsc_khz(void)
+static unsigned int __init xen_tsc_khz(void)
 {
 	struct pvclock_vcpu_time_info *info =
 		&HYPERVISOR_shared_info->vcpu_info[0].time;
@@ -569,7 +569,7 @@ static void __init xen_init_time_common(void)
 	static_call_update(pv_steal_clock, xen_steal_clock);
 	paravirt_set_sched_clock(xen_sched_clock);
 
-	x86_platform.calibrate_tsc = xen_tsc_khz;
+	x86_init.hyper.get_tsc_khz = xen_tsc_khz;
 	x86_platform.get_wallclock = xen_get_wallclock;
 }
 
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322202.1588440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySH-00024a-LH; Fri, 29 May 2026 14:44:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322202.1588440; Fri, 29 May 2026 14:44:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySH-00023r-GJ; Fri, 29 May 2026 14:44:57 +0000
Received: by outflank-mailman (input) for mailman id 1322202;
 Fri, 29 May 2026 14:44:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3ZaYZagYKCXAgSObXQUccUZS.QcalSb-RSjSZZWghg.lSbdfcXSQh.cfU@flex--seanjc.bounces.google.com>)
 id 1wSySG-0001vL-Gn
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:44:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySF-000xpH-To
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:44:55 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3ZaYZagYKCXAgSObXQUccUZS.QcalSb-RSjSZZWghg.lSbdfcXSQh.cfU@flex--seanjc.bounces.google.com>)
 id 6a19a652-bab6-0a2a0a5309dd-0a2a4508ccec-34
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:44:55 +0200
Received: from [209.85.215.201] (helo=mail-pg1-f201.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3ZaYZagYKCXAgSObXQUccUZS.QcalSb-RSjSZZWghg.lSbdfcXSQh.cfU@flex--seanjc.bounces.google.com>)
 id 6a19a666-63b5-0a2a45080019-d155d7c9b134-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:44:55 +0200
Received: by mail-pg1-f201.google.com with SMTP id
 41be03b00d2f7-c8292e18166so7016596a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:44:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065894; x=1780670694; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=QToNnoh5SrIptFu//tMv5GaZF9D0Gq2HC3RBnhHkcok=;
        b=OI+Qeqp2sBgBUjI7V7MlomkKInwHaXSAg65whwqbE/AltjjZWH7qkKarRvnzPsXt+G
         SMUQD0ZcAy+S36tXvNZH9J+cfO40um/9BmzjRPtd+lqCNdI9aKUCQbXq4goEZ2DPnMqA
         wl6YP3d67AkqlOGXGoU3evy7XqFgZCVSTYIjBUU/kOua0nhkopp3zRQuEZmLfoK2HlpJ
         pqn36vj1+CIUVhvAWHpt5sIiMqQj+gT7riGZCvsuuh8gPYGOJ7e1VSzPnd+toVK+4m5x
         l9AYpuJKt5dv1Z3smxeNus1Wea+DPhfkYRieFW83T7P5bYjNYesxCAWT11CRed9QFoDB
         0DMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065894; x=1780670694;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=QToNnoh5SrIptFu//tMv5GaZF9D0Gq2HC3RBnhHkcok=;
        b=Lqj+Y9DGX22p2Sl8r5R8EYAqcJQ7waUHaTMEGXzbeiEodINutSysHl+7o8GgSt66Ww
         7zbVAD0A5yGlVp9+gz2vwdsPjODOr8weDy+vTChv31j+xUBxHCKmhYRVOdXPjcQSm4tC
         su3y6a4QYWhiwXL1ozsqBlxN1yxMyRYBWsbhG99ntfhrOAnbb4W5gElliwdKkaH7Zhmt
         6NRW1CrbGY1fWmK6gSBu5CGTxz5BHE3+UrY12d1ho3oVRAcnBm2/QnDYOGtGH99OXsML
         af72Fy0U0zyG8uwu6CTek27zxMg3Sap68oWSC8/BvxMF+btV73R3AhRD9/VtQ8qoZpEu
         iHMg==
X-Forwarded-Encrypted: i=1; AFNElJ8CoiyVRa7U72JDW17u6LQDPT72ahPbE7Rvhs883ImYI6RmFTs1mfwmtnyHZKDpOoYcmpj10be0IDc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywne0yrOQhZtG22wn0MLM/SZSmhlfFKn3oRPNvJr1E7T1VtcViT
	pZNFAcXS00q4XShrMswKaJUjLwjipaf03xNT7KblraN+S9WZPzmVDPZQmVCXHXxa1UKbWRQauzH
	dvufrHA==
X-Received: from pgce4.prod.google.com ([2002:a05:6a02:1c4:b0:c82:354b:8e38])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:6da0:b0:3b3:bdf5:117e
 with SMTP id adf61e73a8af0-3b411dd174cmr3909322637.27.1780065893358; Fri, 29
 May 2026 07:44:53 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:43:49 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-3-seanjc@google.com>
Subject: [PATCH v4 02/47] x86/tsc: Add a standalone helpers for getting TSC
 info from CPUID.0x15
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-c1860d/1780065895-BDB6CDB1-C939987C/0/0
X-purgate-type: clean
X-purgate-size: 5253

Extract retrieval of TSC frequency information from CPUID into standalone
helpers so that TDX guest support can reuse the logic.  Provide a version
that includes the multiplier math as TDX does NOT want to use
native_calibrate_tsc()'s fallback logic that derives the TSC frequency
based on CPUID.0x16, when the core crystal frequency isn't known.

Opportunistically drop native_calibrate_tsc()'s "== 0" and "!= 0" checks
in favor of the kernel's preferred style.

No functional change intended.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/tsc.h |  8 +++++
 arch/x86/kernel/tsc.c      | 67 +++++++++++++++++++++++++-------------
 2 files changed, 52 insertions(+), 23 deletions(-)

diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h
index 4f7f09f50552..6cf26e62e9a6 100644
--- a/arch/x86/include/asm/tsc.h
+++ b/arch/x86/include/asm/tsc.h
@@ -83,6 +83,14 @@ static inline cycles_t get_cycles(void)
 }
 #define get_cycles get_cycles
 
+struct cpuid_tsc_info {
+	unsigned int denominator;
+	unsigned int numerator;
+	unsigned int crystal_khz;
+	unsigned int tsc_khz;
+};
+extern int __init cpuid_get_tsc_freq(struct cpuid_tsc_info *info);
+
 extern void tsc_early_init(void);
 extern void tsc_init(void);
 extern void mark_tsc_unstable(char *reason);
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 08cf6625d484..f7f561722efa 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -658,46 +658,67 @@ static unsigned long quick_pit_calibrate(void)
 	return delta;
 }
 
+static int cpuid_get_tsc_info(struct cpuid_tsc_info *info)
+{
+	unsigned int ecx_hz, edx;
+
+	memset(info, 0, sizeof(*info));
+
+	if (boot_cpu_data.cpuid_level < CPUID_LEAF_TSC)
+		return -ENOENT;
+
+	/* CPUID 15H TSC/Crystal ratio, plus optionally Crystal Hz */
+	cpuid(CPUID_LEAF_TSC, &info->denominator, &info->numerator, &ecx_hz, &edx);
+
+	if (!info->denominator || !info->numerator)
+		return -ENOENT;
+
+	/*
+	 * Note, some CPUs provide the multiplier information, but not the core
+	 * crystal frequency.  The multiplier information is still useful for
+	 * such CPUs, as the crystal frequency can be gleaned from CPUID.0x16.
+	 */
+	info->crystal_khz = ecx_hz / 1000;
+	return 0;
+}
+
+int __init cpuid_get_tsc_freq(struct cpuid_tsc_info *info)
+{
+	if (cpuid_get_tsc_info(info) || !info->crystal_khz)
+		return -ENOENT;
+
+	info->tsc_khz = info->crystal_khz * info->numerator / info->denominator;
+	return 0;
+}
+
 /**
  * native_calibrate_tsc - determine TSC frequency
  * Determine TSC frequency via CPUID, else return 0.
  */
 unsigned long native_calibrate_tsc(void)
 {
-	unsigned int eax_denominator, ebx_numerator, ecx_hz, edx;
-	unsigned int crystal_khz;
+	struct cpuid_tsc_info info;
 
 	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
 		return 0;
 
-	if (boot_cpu_data.cpuid_level < CPUID_LEAF_TSC)
+	if (cpuid_get_tsc_info(&info))
 		return 0;
 
-	eax_denominator = ebx_numerator = ecx_hz = edx = 0;
-
-	/* CPUID 15H TSC/Crystal ratio, plus optionally Crystal Hz */
-	cpuid(CPUID_LEAF_TSC, &eax_denominator, &ebx_numerator, &ecx_hz, &edx);
-
-	if (ebx_numerator == 0 || eax_denominator == 0)
-		return 0;
-
-	crystal_khz = ecx_hz / 1000;
-
 	/*
 	 * Denverton SoCs don't report crystal clock, and also don't support
 	 * CPUID_LEAF_FREQ for the calculation below, so hardcode the 25MHz
 	 * crystal clock.
 	 */
-	if (crystal_khz == 0 &&
-			boot_cpu_data.x86_vfm == INTEL_ATOM_GOLDMONT_D)
-		crystal_khz = 25000;
+	if (!info.crystal_khz && boot_cpu_data.x86_vfm == INTEL_ATOM_GOLDMONT_D)
+		info.crystal_khz = 25000;
 
 	/*
 	 * TSC frequency reported directly by CPUID is a "hardware reported"
 	 * frequency and is the most accurate one so far we have. This
 	 * is considered a known frequency.
 	 */
-	if (crystal_khz != 0)
+	if (info.crystal_khz)
 		setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 
 	/*
@@ -705,15 +726,15 @@ unsigned long native_calibrate_tsc(void)
 	 * clock, but we can easily calculate it to a high degree of accuracy
 	 * by considering the crystal ratio and the CPU speed.
 	 */
-	if (crystal_khz == 0 && boot_cpu_data.cpuid_level >= CPUID_LEAF_FREQ) {
+	if (!info.crystal_khz && boot_cpu_data.cpuid_level >= CPUID_LEAF_FREQ) {
 		unsigned int eax_base_mhz, ebx, ecx, edx;
 
 		cpuid(CPUID_LEAF_FREQ, &eax_base_mhz, &ebx, &ecx, &edx);
-		crystal_khz = eax_base_mhz * 1000 *
-			eax_denominator / ebx_numerator;
+		info.crystal_khz = eax_base_mhz * 1000 *
+			info.denominator / info.numerator;
 	}
 
-	if (crystal_khz == 0)
+	if (!info.crystal_khz)
 		return 0;
 
 	/*
@@ -730,10 +751,10 @@ unsigned long native_calibrate_tsc(void)
 	 * lapic_timer_period here to avoid having to calibrate the APIC
 	 * timer later.
 	 */
-	lapic_timer_period = crystal_khz * 1000 / HZ;
+	lapic_timer_period = info.crystal_khz * 1000 / HZ;
 #endif
 
-	return crystal_khz * ebx_numerator / eax_denominator;
+	return info.crystal_khz * info.numerator / info.denominator;
 }
 
 static unsigned long cpu_khz_from_cpuid(void)
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322212.1588519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySS-0004Kp-6a; Fri, 29 May 2026 14:45:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322212.1588519; Fri, 29 May 2026 14:45:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySS-0004KQ-0a; Fri, 29 May 2026 14:45:08 +0000
Received: by outflank-mailman (input) for mailman id 1322212;
 Fri, 29 May 2026 14:45:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3b6YZagYKCXoqcYlhaemmejc.amkvcl-bctcjjgqrq.vclnpmhcar.mpe@flex--seanjc.bounces.google.com>)
 id 1wSySQ-0003pl-39
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySP-00FvB4-Fp
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:05 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3b6YZagYKCXoqcYlhaemmejc.amkvcl-bctcjjgqrq.vclnpmhcar.mpe@flex--seanjc.bounces.google.com>)
 id 6a19a66f-2eae-0a2a0a5409dd-0a2a450c88da-18
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:05 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3b6YZagYKCXoqcYlhaemmejc.amkvcl-bctcjjgqrq.vclnpmhcar.mpe@flex--seanjc.bounces.google.com>)
 id 6a19a66f-62f1-0a2a450c0019-d155d6cab40c-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:05 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2ba5f794825so112106045ad.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065903; x=1780670703; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=H0GwXhoguEvRGovrleKtlxRg6q5h/dMOER9+6opKAAY=;
        b=hvNffYvQ/D54LpXmOYRyyyO9ByIH0rcRHvQN1CRRR/953LWD/v/k/6lJlgPquI3mP6
         sgx08gjaeZXLvONVrgiOxdTpedgXr1an5HaZfJcCxHiSY8vGRXPhqlftJpOUXWFH2HSv
         hfbTja6KmI/tZe16c1Z+xvDrGTEWitpld67+DG/uuPTKct7b0nETss6OR1VNU1d7ZZpj
         I1Zoy4UpNEEHqYelt7C88HVYnC6RTdk3ICl2FE3G+05/mxT6MTJ0FJihgLZo1Gb7K5cQ
         gxC2HSjnbpBa8TK5K9Y/qNSgJz6KWSb53/9ZwsLV1LiKjgxudWDzylu4QeC8rMTXvhEl
         BGYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065903; x=1780670703;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=H0GwXhoguEvRGovrleKtlxRg6q5h/dMOER9+6opKAAY=;
        b=rmJQvJhFaZY/UCUMdSAzXHtHnoMuI5KEC7i1mogezrC+u8zrEKtICrXuLwHy+R/Lgg
         j+f5CVo4iqU6j6UT2d2Vp1EFydhcumam6PVYH6YijqaK9XA7D9LnAKaLrEDlnPVetIqg
         duP6NYXqlGTIQg8edKjElVIMjNlnbEUN03OAmApq2FvK3FgUnYZARMtzViqs2AMiVubU
         Ii8GJ907N3HjyXHGGzoh3q9FFJ0HC6+N8VUbemy4vdIm+dbqu+tokc56c8Mb0yiP6p/p
         rg6v62w0lyLTMTW98z2+oGSUDm4LFS/wVgOtSslc2U2AiR1boAjdd/0vZqlTiNBNy9A3
         F5hw==
X-Forwarded-Encrypted: i=1; AFNElJ8VfrlwJDiZUfNQ2CmV/n4BDue84jEh/7mLue29RW8b4RAW1mXVkKRNfk/dMx738UvlzXn7YpT+YMs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yypwf7NW3/uSeW+yWAX8dS5pa7rw1p4Cld4WeVuCoCC7T1k+Lh/
	RQX7haAW3XfXmcbjnHiocqh020mCft3TRaxYWE+TMYHzqErgM+UdY8fe+B8xJFuiS0UrGXf5OXB
	qYj/zSg==
X-Received: from pgc24.prod.google.com ([2002:a05:6a02:2f98:b0:c80:192c:51ff])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:c94c:b0:2b2:be01:5532
 with SMTP id d9443c01a7336-2bf3686d1dcmr856725ad.35.1780065903103; Fri, 29
 May 2026 07:45:03 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:43:57 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-11-seanjc@google.com>
Subject: [PATCH v4 10/47] x86/tsc: Consolidate forcing of X86_FEATURE_TSC_KNOWN_FREQ
 for PV code
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-d25034/1780065905-D996DCF5-F5EF5524/0/0
X-purgate-type: clean
X-purgate-size: 6001

Now that all paravirt code that explicitly specifies the TSC frequency
also sets X86_FEATURE_TSC_KNOWN_FREQ, replace all of the one-off code
and simply set X86_FEATURE_TSC_KNOWN_FREQ if the TSC frequency is known.

Do NOT force set TSC_KNOWN_FREQ if the "known" TSC frequency was provided
by the user.  Per commit bd35c77e32e4 ("x86/tsc: Add tsc_early_khz command
line parameter"), one of the goals of the param is to allow the refined
calibration work "to do meaningful error checking".

Note, preferring the user-provided TSC frequency over the frequency from
the hypervisor or trusted firmware, while simultaneously not treating the
user-provided frequency as gospel, is obviously incongruous.  Sweep the
problem under the rug for now to avoid opening a big can of worms that
likely doesn't have a great answer.

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/coco/sev/core.c       | 1 -
 arch/x86/coco/tdx/tdx.c        | 1 -
 arch/x86/kernel/cpu/acrn.c     | 2 --
 arch/x86/kernel/cpu/mshyperv.c | 1 -
 arch/x86/kernel/cpu/vmware.c   | 2 --
 arch/x86/kernel/jailhouse.c    | 1 -
 arch/x86/kernel/kvmclock.c     | 1 -
 arch/x86/kernel/tsc.c          | 9 +++++++++
 arch/x86/xen/time.c            | 1 -
 9 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c
index bc5ae9ef74da..72313b36b6f5 100644
--- a/arch/x86/coco/sev/core.c
+++ b/arch/x86/coco/sev/core.c
@@ -2027,7 +2027,6 @@ unsigned int __init snp_secure_tsc_init(void)
 
 	secrets = (__force struct snp_secrets_page *)mem;
 
-	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 	setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
 
 	rdmsrq(MSR_AMD64_GUEST_TSC_FREQ, tsc_freq_mhz);
diff --git a/arch/x86/coco/tdx/tdx.c b/arch/x86/coco/tdx/tdx.c
index 5d7976359220..ab463c2b2dab 100644
--- a/arch/x86/coco/tdx/tdx.c
+++ b/arch/x86/coco/tdx/tdx.c
@@ -1205,7 +1205,6 @@ unsigned int __init tdx_tsc_init(void)
 
 	/* TSC is the only reliable clock in TDX guest */
 	setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
-	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 
 	return info.tsc_khz;
 }
diff --git a/arch/x86/kernel/cpu/acrn.c b/arch/x86/kernel/cpu/acrn.c
index 0303fe6a2efa..ad8f2da8003b 100644
--- a/arch/x86/kernel/cpu/acrn.c
+++ b/arch/x86/kernel/cpu/acrn.c
@@ -33,8 +33,6 @@ static void __init acrn_init_platform(void)
 {
 	/* Install system interrupt handler for ACRN hypervisor callback */
 	sysvec_install(HYPERVISOR_CALLBACK_VECTOR, sysvec_acrn_hv_callback);
-
-	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 }
 
 static bool acrn_x2apic_available(void)
diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
index 733e12d5a7dd..f8653fc05a40 100644
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86/kernel/cpu/mshyperv.c
@@ -575,7 +575,6 @@ static void __init ms_hyperv_init_platform(void)
 	    ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
 		x86_init.hyper.get_tsc_khz = hv_get_tsc_khz;
 		x86_init.hyper.get_cpu_khz = hv_get_tsc_khz;
-		setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 	}
 
 	if (ms_hyperv.priv_high & HV_ISOLATION) {
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index 7c8cf4885e82..2d0624c66799 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -390,8 +390,6 @@ static void __init vmware_set_capabilities(void)
 {
 	setup_force_cpu_cap(X86_FEATURE_CONSTANT_TSC);
 	setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
-	if (vmware_tsc_khz)
-		setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 	if (vmware_hypercall_mode == CPUID_VMWARE_FEATURES_ECX_VMCALL)
 		setup_force_cpu_cap(X86_FEATURE_VMCALL);
 	else if (vmware_hypercall_mode == CPUID_VMWARE_FEATURES_ECX_VMMCALL)
diff --git a/arch/x86/kernel/jailhouse.c b/arch/x86/kernel/jailhouse.c
index 4034e08c5f11..e4d7d9e2cd69 100644
--- a/arch/x86/kernel/jailhouse.c
+++ b/arch/x86/kernel/jailhouse.c
@@ -255,7 +255,6 @@ static void __init jailhouse_init_platform(void)
 	pr_debug("Jailhouse: PM-Timer IO Port: %#x\n", pmtmr_ioport);
 
 	precalibrated_tsc_khz = setup_data.v1.tsc_khz;
-	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 
 	pci_probe = 0;
 
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index ec888eef74aa..69752b170e0a 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -117,7 +117,6 @@ static inline void kvm_sched_clock_init(bool stable)
  */
 static unsigned int __init kvm_get_tsc_khz(void)
 {
-	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 	return pvclock_tsc_khz(this_cpu_pvti());
 }
 
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 362596612442..8cef918486db 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -1569,6 +1569,15 @@ void __init tsc_early_init(void)
 	if (!known_tsc_khz && x86_init.hyper.get_tsc_khz)
 		known_tsc_khz = x86_init.hyper.get_tsc_khz();
 
+	/*
+	 * Mark the TSC frequency as known if it was obtained from a hypervisor
+	 * or trusted firmware.  Don't mark the frequency as known if the user
+	 * specified the frequency, as the user-provided frequency is intended
+	 * as a "starting point", not a known, guaranteed frequency.
+	 */
+	if (known_tsc_khz && !tsc_early_khz)
+		setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
+
 	if (!determine_cpu_tsc_frequencies(true, known_cpu_khz, known_tsc_khz))
 		return;
 	tsc_enable_sched_clock();
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index 1adb44fdddb2..487ad838c441 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -43,7 +43,6 @@ static unsigned int __init xen_tsc_khz(void)
 	struct pvclock_vcpu_time_info *info =
 		&HYPERVISOR_shared_info->vcpu_info[0].time;
 
-	setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
 	return pvclock_tsc_khz(info);
 }
 
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322214.1588524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyST-0004Uu-4p; Fri, 29 May 2026 14:45:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322214.1588524; Fri, 29 May 2026 14:45:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySS-0004UL-TT; Fri, 29 May 2026 14:45:08 +0000
Received: by outflank-mailman (input) for mailman id 1322214;
 Fri, 29 May 2026 14:45:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3cKYZagYKCXsrdZmibfnnfkd.bnlwdm-cdudkkhrsr.wdmoqnidbs.nqf@flex--seanjc.bounces.google.com>)
 id 1wSySR-0004E4-Ed
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySQ-00FvEA-Q3
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:06 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3cKYZagYKCXsrdZmibfnnfkd.bnlwdm-cdudkkhrsr.wdmoqnidbs.nqf@flex--seanjc.bounces.google.com>)
 id 6a19a66f-2eae-0a2a0a5409dd-0a2a450c88da-22
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:06 +0200
Received: from [209.85.216.73] (helo=mail-pj1-f73.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3cKYZagYKCXsrdZmibfnnfkd.bnlwdm-cdudkkhrsr.wdmoqnidbs.nqf@flex--seanjc.bounces.google.com>)
 id 6a19a671-62f1-0a2a450c0019-d155d849c41b-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:06 +0200
Received: by mail-pj1-f73.google.com with SMTP id
 98e67ed59e1d1-365fd467cf6so11601956a91.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065905; x=1780670705; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=nNJLu7do7nPWUZaqv5wFSjm3is+mcIorKyFYEzca5zQ=;
        b=Ptaw/KTyEYMJanG10GMhwMScBCvIqskRaZoqtdSms1LCDCSmnDBNZxgRuEmEtsmjxI
         9CNPmSBpDQII8Ai5GyhTdpGc4dZTcXXrFwHdFkPQQFNgx2hpdOgFGRFgS3nRoGsPQOxl
         hfMFZmtxm9zzCeZY3rIIOS3ekXz6+/T7gGvjcXPJ7UwnnchmLdjsGYsrrtGyf6Ukq1mb
         DF6UmAXZEwvCZ4H3CJTGQ7dstbLvwEGctYn3s78eWYuTY+Rny/sdbsZSFLvBCH74L+ak
         cmklpnig5ymAXMZ7GJi72m/BQ6zKnJenz44VunyWKtefr2yRAkhJDHX5XnQ1A1QcPDBX
         Buhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065905; x=1780670705;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=nNJLu7do7nPWUZaqv5wFSjm3is+mcIorKyFYEzca5zQ=;
        b=PaEmupQnSI8ZUzUH6nTw/Ze8d7ULYdCGgt/c5bUZG0Rhp0jAku7SHWV8ZpeSrwi8MM
         ULNtspde6/l4xsf3l9n5TWO+R5i5Q/7XJchyd5op2yFvsl9bcIxTjfKwk2vRhzd2qyv0
         agXGfsKcS5gHpv58n5eHUkax2OvkJ17eubyYzhw2K0/BM5e+/LT8BLFuIiyBAMikpnhX
         HY0ekEcdLbCBpFGMDuPwV3KKC/2Qt0Dnhgl4A6q5Ws4N5ULQqS+B5JaaXxRtJGb7B1FH
         zVw3o64VE1+YjRlbhwuJQ1NRB2QboZzpWzxB/uhzZl7RuzcXVeWG9OrrPO1IW9dFaFM5
         80/A==
X-Forwarded-Encrypted: i=1; AFNElJ/rzdsbXykhMNyVepYZRDaWVwNpC/uhtG3Xit/TBZfqbrKnszV2ZaWEVgpy2WBdLTGnhhMGXo1FzCw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwCcqI1Axbu1zckquGlDi3bMLndZKi8eqzhWKILS0lYWtJqqjrd
	vcE8aSnJrg4UTS2dpRnbx6iLkn/dj99xjFv2el2mVh0xS2Nu0/Tt4pTY+zsD9awoKc79MU6Q3Kn
	xhdPsgQ==
X-Received: from pjqx13.prod.google.com ([2002:a17:90a:b00d:b0:36b:a7c4:95be])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:2681:b0:368:6998:b4a9
 with SMTP id 98e67ed59e1d1-36bbcc14546mr3878407a91.11.1780065904236; Fri, 29
 May 2026 07:45:04 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:43:58 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-12-seanjc@google.com>
Subject: [PATCH v4 11/47] x86/tsc: Kill off x86_platform_ops.calibrate_{cpu,tsc}()
 hooks
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-d25034/1780065906-DA776CF5-CC218FFB/0/0
X-purgate-type: clean
X-purgate-size: 5667

Now that getting the CPU and/or TSC frequencies from the hypervisor uses
dedicated hooks, drop x86_platform_ops.calibrate_{cpu,tsc}() and instead
directly invoke the correct helper at each phase of (re)calibration.  In
addition to eliminating unnecessary code, this makes it a bit more obvious
when the "late" path invokes pit_hpet_ptimer_calibrate_cpu() instead of
x86_platform_ops.calibrate_cpu().

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/tsc.h      |  2 --
 arch/x86/include/asm/x86_init.h |  4 ----
 arch/x86/kernel/tsc.c           | 28 ++++++++++++----------------
 arch/x86/kernel/x86_init.c      |  2 --
 4 files changed, 12 insertions(+), 24 deletions(-)

diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h
index 6cf26e62e9a6..4a224f99c3b9 100644
--- a/arch/x86/include/asm/tsc.h
+++ b/arch/x86/include/asm/tsc.h
@@ -97,8 +97,6 @@ extern void mark_tsc_unstable(char *reason);
 extern int unsynchronized_tsc(void);
 extern int check_tsc_unstable(void);
 extern void mark_tsc_async_resets(char *reason);
-extern unsigned long native_calibrate_cpu_early(void);
-extern unsigned long native_calibrate_tsc(void);
 extern unsigned long long native_sched_clock_from_tsc(u64 tsc);
 
 extern int tsc_clocksource_reliable;
diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
index a4f8a4aa601d..ada17827ea51 100644
--- a/arch/x86/include/asm/x86_init.h
+++ b/arch/x86/include/asm/x86_init.h
@@ -292,8 +292,6 @@ struct x86_hyper_runtime {
 
 /**
  * struct x86_platform_ops - platform specific runtime functions
- * @calibrate_cpu:		calibrate CPU
- * @calibrate_tsc:		calibrate TSC, if different from CPU
  * @get_wallclock:		get time from HW clock like RTC etc.
  * @set_wallclock:		set time back to HW clock
  * @iommu_shutdown:		set by an IOMMU driver for shutdown if necessary
@@ -317,8 +315,6 @@ struct x86_hyper_runtime {
  * @guest:			guest incarnations callbacks
  */
 struct x86_platform_ops {
-	unsigned long (*calibrate_cpu)(void);
-	unsigned long (*calibrate_tsc)(void);
 	void (*get_wallclock)(struct timespec64 *ts);
 	int (*set_wallclock)(const struct timespec64 *ts);
 	void (*iommu_shutdown)(void);
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 8cef918486db..5b4b6e43c94c 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -696,7 +696,7 @@ int __init cpuid_get_tsc_freq(struct cpuid_tsc_info *info)
  * native_calibrate_tsc - determine TSC frequency
  * Determine TSC frequency via CPUID, else return 0.
  */
-unsigned long native_calibrate_tsc(void)
+static unsigned long native_calibrate_tsc(void)
 {
 	struct cpuid_tsc_info info;
 
@@ -931,7 +931,7 @@ static unsigned long pit_hpet_ptimer_calibrate_cpu(void)
 /**
  * native_calibrate_cpu_early - can calibrate the cpu early in boot
  */
-unsigned long native_calibrate_cpu_early(void)
+static unsigned long native_calibrate_cpu_early(void)
 {
 	unsigned long flags, fast_calibrate = cpu_khz_from_cpuid();
 
@@ -945,7 +945,7 @@ unsigned long native_calibrate_cpu_early(void)
 	return fast_calibrate;
 }
 
-
+#ifndef CONFIG_SMP
 /**
  * native_calibrate_cpu - calibrate the cpu
  */
@@ -958,6 +958,7 @@ static unsigned long native_calibrate_cpu(void)
 
 	return tsc_freq;
 }
+#endif
 
 void recalibrate_cpu_khz(void)
 {
@@ -967,9 +968,9 @@ void recalibrate_cpu_khz(void)
 	if (!boot_cpu_has(X86_FEATURE_TSC))
 		return;
 
-	cpu_khz = x86_platform.calibrate_cpu();
+	cpu_khz = native_calibrate_cpu();
 	if (!boot_cpu_has(X86_FEATURE_TSC_KNOWN_FREQ))
-		tsc_khz = x86_platform.calibrate_tsc();
+		tsc_khz = native_calibrate_tsc();
 	if (tsc_khz == 0)
 		tsc_khz = cpu_khz;
 	else if (abs(cpu_khz - tsc_khz) * 10 > tsc_khz)
@@ -1483,17 +1484,19 @@ static bool __init determine_cpu_tsc_frequencies(bool early,
 	WARN_ON(cpu_khz || tsc_khz);
 
 	if (early) {
+		/*
+		 * Early CPU calibration can only use methods that are available
+		 * early in boot (obviously).
+		 */
 		if (known_cpu_khz)
 			cpu_khz = known_cpu_khz;
 		else
-			cpu_khz = x86_platform.calibrate_cpu();
+			cpu_khz = native_calibrate_cpu_early();
 		if (known_tsc_khz)
 			tsc_khz = known_tsc_khz;
 		else
-			tsc_khz = x86_platform.calibrate_tsc();
+			tsc_khz = native_calibrate_tsc();
 	} else {
-		/* We should not be here with non-native cpu calibration */
-		WARN_ON(x86_platform.calibrate_cpu != native_calibrate_cpu);
 		cpu_khz = pit_hpet_ptimer_calibrate_cpu();
 	}
 
@@ -1590,13 +1593,6 @@ void __init tsc_init(void)
 		return;
 	}
 
-	/*
-	 * native_calibrate_cpu_early can only calibrate using methods that are
-	 * available early in boot.
-	 */
-	if (x86_platform.calibrate_cpu == native_calibrate_cpu_early)
-		x86_platform.calibrate_cpu = native_calibrate_cpu;
-
 	if (!tsc_khz) {
 		/* We failed to determine frequencies earlier, try again */
 		if (!determine_cpu_tsc_frequencies(false, 0, 0)) {
diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
index ebefb77c37bb..c674cbbd466d 100644
--- a/arch/x86/kernel/x86_init.c
+++ b/arch/x86/kernel/x86_init.c
@@ -144,8 +144,6 @@ static void enc_kexec_finish_noop(void) {}
 static bool is_private_mmio_noop(u64 addr) {return false; }
 
 struct x86_platform_ops x86_platform __ro_after_init = {
-	.calibrate_cpu			= native_calibrate_cpu_early,
-	.calibrate_tsc			= native_calibrate_tsc,
 	.get_wallclock			= mach_get_cmos_time,
 	.set_wallclock			= mach_set_cmos_time,
 	.iommu_shutdown			= iommu_shutdown_noop,
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322215.1588536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySU-0004nz-JF; Fri, 29 May 2026 14:45:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322215.1588536; Fri, 29 May 2026 14:45:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySU-0004nL-AU; Fri, 29 May 2026 14:45:10 +0000
Received: by outflank-mailman (input) for mailman id 1322215;
 Fri, 29 May 2026 14:45:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3caYZagYKCXwxjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 1wSySS-0004Mz-Gd
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySR-000xsX-TU
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:07 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3caYZagYKCXwxjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 6a19a66f-bab6-0a2a0a5309dd-0a2a4506bce2-20
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:07 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3caYZagYKCXwxjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 6a19a672-7371-0a2a45060019-d155d6c9a535-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:07 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2bf11699875so19123545ad.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065906; x=1780670706; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=Ep5voyn6wy8bCsLD4fpqMEGPbCHcjvgsIyxbB5uxkeU=;
        b=R9dv5ikHetQ3QKTEFDaBzSvmZkOjV4Q8SlvmlrBEhHTGuRRBGaNPgFSY6oheDAxx4i
         LpiEDanQYR4sAL+Ub0icU8VYtwsPtpDxnldDr2G2HHc0uKaBJmcOR2y6eS8ONerSC7Sc
         NWgl8rSW6nayGrmN328OMIDJxXOhTptRPapPOlwTcqYbwsxAVPLElb947zh0ntJDdEam
         ciGUHLZG1xgXQeRH25nReBIJUHBusMNrMRAPwicBwWC04/zTE0OpXV78N3ppdKI28/v+
         xkE1zRroql060EM/WiNbXG+JFYPj9llv6UrBRguanpFp7BPvesYEa/znLufQsASYJlSN
         chfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065906; x=1780670706;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Ep5voyn6wy8bCsLD4fpqMEGPbCHcjvgsIyxbB5uxkeU=;
        b=ofCNPdpSQExpITcMwghlKAIMS2PvewVYdXsGIp7hIaVe9nz/JgzwbcTlLbmu7bHRe0
         c7qz57JleOy5lw8X11fd2rZo0xPLeBpAEwtsGL/+6k8XRSooTNlpK2FY5hpUgEFPeoYV
         1iyabKUxBrk2FVXKLSoaf648+PK2cnpJCcmX1CLzUAYOwIgZFEul8INi6J5fi7YN+Di/
         wlrwTx0a8Lf7iGw+c+hYA/VKwPWPjhazsfwi8GVSXLX1oJSTYEdqkIi96CNVtALV8och
         N9jPn7kPruJ50YdHq4DLN2KJyL7UAO4pcFIJSGghRvn4J+9HFSIhkXH8o/ww0OM7aFwf
         M2qA==
X-Forwarded-Encrypted: i=1; AFNElJ8ET14sDqZeBC/64Uu9su+7AK/Q0WNBGuzTZel5Jrv+afV9pQCNq+i7AeXvsJ3lWnFee5fTTIohY6A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyIsmrscWifbNzUCTpood8IV+UrpI1F0WfLG8JO/iA5JkXXuwQy
	ryPnnzjBrivYIeP0mZc6Dy+axRFMXryqUrRPI8stZ03DxiKV09OkEHCrUf1w5Y7TNbBVtV0DR/d
	/LsQQuw==
X-Received: from plbv2.prod.google.com ([2002:a17:903:44c2:b0:2bf:2808:7225])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:144b:b0:2bc:dca9:f0ed
 with SMTP id d9443c01a7336-2bf20dbeeb3mr34014545ad.15.1780065905419; Fri, 29
 May 2026 07:45:05 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:43:59 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-13-seanjc@google.com>
Subject: [PATCH v4 12/47] x86/tsc: Rename pit_hpet_ptimer_calibrate_cpu() => native_calibrate_cpu_late()
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-16d1c6/1780065907-86F73D75-E51F5F0C/0/0
X-purgate-type: clean
X-purgate-size: 1430

Rename the late CPU calibration routine so that its relationship to the
early routine is more obvious and intuitive.

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/tsc.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 5b4b6e43c94c..534462c81c78 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -779,7 +779,7 @@ static unsigned long cpu_khz_from_cpuid(void)
  * calibrate cpu using pit, hpet, and ptimer methods. They are available
  * later in boot after acpi is initialized.
  */
-static unsigned long pit_hpet_ptimer_calibrate_cpu(void)
+static unsigned long native_calibrate_cpu_late(void)
 {
 	u64 tsc1, tsc2, delta, ref1, ref2;
 	unsigned long tsc_pit_min = ULONG_MAX, tsc_ref_min = ULONG_MAX;
@@ -954,7 +954,7 @@ static unsigned long native_calibrate_cpu(void)
 	unsigned long tsc_freq = native_calibrate_cpu_early();
 
 	if (!tsc_freq)
-		tsc_freq = pit_hpet_ptimer_calibrate_cpu();
+		tsc_freq = native_calibrate_cpu_late();
 
 	return tsc_freq;
 }
@@ -1497,7 +1497,7 @@ static bool __init determine_cpu_tsc_frequencies(bool early,
 		else
 			tsc_khz = native_calibrate_tsc();
 	} else {
-		cpu_khz = pit_hpet_ptimer_calibrate_cpu();
+		cpu_khz = native_calibrate_cpu_late();
 	}
 
 	/*
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322218.1588544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySW-00056Y-01; Fri, 29 May 2026 14:45:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322218.1588544; Fri, 29 May 2026 14:45:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySV-00055S-M1; Fri, 29 May 2026 14:45:11 +0000
Received: by outflank-mailman (input) for mailman id 1322218;
 Fri, 29 May 2026 14:45:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3cqYZagYKCX0tfbokdhpphmf.dpnyfo-efwfmmjtut.yfoqspkfdu.psh@flex--seanjc.bounces.google.com>)
 id 1wSyST-0004e7-Um
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyST-004cke-AC
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:09 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3cqYZagYKCX0tfbokdhpphmf.dpnyfo-efwfmmjtut.yfoqspkfdu.psh@flex--seanjc.bounces.google.com>)
 id 6a19a66d-e002-0a2a0a5209dd-0a2a4503e0ca-36
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:09 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3cqYZagYKCX0tfbokdhpphmf.dpnyfo-efwfmmjtut.yfoqspkfdu.psh@flex--seanjc.bounces.google.com>)
 id 6a19a673-672d-0a2a45030019-d155d6c9e419-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:08 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2ba718173d1so106710825ad.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065907; x=1780670707; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=gZ7qyLV4Qg2/G7AZdfT7QLEMZtHiHfovzBdDbSmwy9M=;
        b=pJ36dnr+yV5ViiYVHOialiY0hSB6KS+OdtCdrEacSyXHjzK+/Vz4SkQ77bPqHhVTNq
         FQRiG4Y23k5uSSZCWQrmLZZ1bNKL92P8FJ3Mh+e6SRWzGquvUhblxSAlhZf/OeZqg4sQ
         93vaCQBpkwVSln/RVOoNjrJUV8zhhZB8LyTnYmfOuBnnC3sJbAD6rWZSOmB1tR6Pie5z
         Juth9AApnqslgcxkQmfUxL1AxBq/MHkD7OTVd7RjyimbvJQJkH9+XTGNXJlA7EgfilxH
         8OXT8+xTfnp2+sczDrgfEBoEA/NtjOZg32Qlo7BbE69v5qqLuLk21kl92MlXwkQYC2P4
         Ln2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065907; x=1780670707;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=gZ7qyLV4Qg2/G7AZdfT7QLEMZtHiHfovzBdDbSmwy9M=;
        b=aZp+cij/sE7Gk2y7ol70c2du823NiklEXPRcwvpEiLZGE3Iebd5ZfFTxwFojJVgnwI
         auc4JGHfkJP6Z74qh3UNkQtBRd+XYaah2g0azLC+Q9b2OfmhqrNTxnUkc8DAS0vSNn6R
         UeoURey72q5Whgy6zyMzuesi/AQCKpAgFWrvYvIo25515tKIp0nnNrbbTOSckRhMSuxc
         gzWQ95V6mux8a86BnUmsb5dv3OY/bURY/xsoepKs0RTvuSxajJYRz5hOAiwj3Jl1b2hg
         UDth+ECJsjE62HacSFvwMzOoEM/AIK3CDsfDNakLr88I/X746Rep3lcgWQbJt0kxACEv
         IcNw==
X-Forwarded-Encrypted: i=1; AFNElJ9KgYUDOg4UrGybCO3zC/UWa8vcJPw98/+oyMwKl1ru1+vH5gUjLED0OyTCtU94exiOFPSmCAT+NAA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxTofmJvfwFMo6L0iF/Ee01StL0v0KM3c78EXcAE/dSNNr5htj2
	4T1j/DvbAXKvDLFTwoQUUUbcK6k+WkVZZYMUJ29kGCDQuEtQrDGPyYQN+s2mxmMve3d9Mih7h1H
	RyH/ebw==
X-Received: from plblk13.prod.google.com ([2002:a17:903:8cd:b0:2bf:1cdf:9e4b])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:f785:b0:2bf:b17:ae3c
 with SMTP id d9443c01a7336-2bf3684e2c2mr1144355ad.25.1780065906739; Fri, 29
 May 2026 07:45:06 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:44:00 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-14-seanjc@google.com>
Subject: [PATCH v4 13/47] x86/tsc: Fold native_calibrate_cpu() into recalibrate_cpu_khz()
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-33051d/1780065909-39D7B938-E97B3FC3/0/0
X-purgate-type: clean
X-purgate-size: 1495

Fold the guts of native_calibrate_cpu() into its sole remaining caller,
recalibrate_cpu_khz() to eliminate the extra SMP=n #ifdef, and so that it's
more obvious that directly invoking the early vs. late calibration routines
in determine_cpu_tsc_frequencies() is intentional.

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/tsc.c | 20 ++++----------------
 1 file changed, 4 insertions(+), 16 deletions(-)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 534462c81c78..3e911f0f7364 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -945,21 +945,6 @@ static unsigned long native_calibrate_cpu_early(void)
 	return fast_calibrate;
 }
 
-#ifndef CONFIG_SMP
-/**
- * native_calibrate_cpu - calibrate the cpu
- */
-static unsigned long native_calibrate_cpu(void)
-{
-	unsigned long tsc_freq = native_calibrate_cpu_early();
-
-	if (!tsc_freq)
-		tsc_freq = native_calibrate_cpu_late();
-
-	return tsc_freq;
-}
-#endif
-
 void recalibrate_cpu_khz(void)
 {
 #ifndef CONFIG_SMP
@@ -968,7 +953,10 @@ void recalibrate_cpu_khz(void)
 	if (!boot_cpu_has(X86_FEATURE_TSC))
 		return;
 
-	cpu_khz = native_calibrate_cpu();
+	cpu_khz = native_calibrate_cpu_early();
+	if (!cpu_khz)
+		cpu_khz = native_calibrate_cpu_late();
+
 	if (!boot_cpu_has(X86_FEATURE_TSC_KNOWN_FREQ))
 		tsc_khz = native_calibrate_tsc();
 	if (tsc_khz == 0)
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322222.1588555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySY-0005aM-Au; Fri, 29 May 2026 14:45:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322222.1588555; Fri, 29 May 2026 14:45:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySY-0005Zi-4P; Fri, 29 May 2026 14:45:14 +0000
Received: by outflank-mailman (input) for mailman id 1322222;
 Fri, 29 May 2026 14:45:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3daYZagYKCYAwierngksskpi.gsq1ir-hizippmwxw.1irtvsnigx.svk@flex--seanjc.bounces.google.com>)
 id 1wSySW-0005Jw-Rf
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySW-000xsX-8E
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:12 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3daYZagYKCYAwierngksskpi.gsq1ir-hizippmwxw.1irtvsnigx.svk@flex--seanjc.bounces.google.com>)
 id 6a19a677-bab6-0a2a0a5309dd-0a2a4505b9fc-2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:12 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3daYZagYKCYAwierngksskpi.gsq1ir-hizippmwxw.1irtvsnigx.svk@flex--seanjc.bounces.google.com>)
 id 6a19a676-aaa8-0a2a45050019-d155d6c9ec9f-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:12 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2baf7378ad0so152509735ad.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065910; x=1780670710; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=Tb2qB/MKxqPq5hP5Gb3eErmk5uhqs24IfPhH0/tbELk=;
        b=NEdQBtRr2eAgXWa3QkJGaQbrSf/8eHjImGQRjukCY8lpziko9BFo+3YoxQogITNQg7
         t5xbvCkU9x7h3wQnRtMjUY2PU4YyOf8TFAO+Krk75uc4yi7JFSiLn5xFdysEFffryuHT
         5yJAbfAk+gDekSuY5a6gEmVYWvrI4S5MhseYViIgnNvk700zGt1d2UY7P+5EO08JeaJw
         CBAy0uDy4FHXcr2GOtjL8PjDhyJBAA1XPC0os6NUfT6I06aGJkH47v5lE+UGyYMfWBpI
         AimpslPemKFxz7z8Nh31u8AL70wznDHEq9Pir+f7O3HhMiALZi9kUUMRaXvjGceqEXew
         dXHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065910; x=1780670710;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Tb2qB/MKxqPq5hP5Gb3eErmk5uhqs24IfPhH0/tbELk=;
        b=Ty4kX1sexQXj/nGtPYRtyyBwBmIutNIVan7wkUOcCw79azwZWYQwXj+OE/DLu2PbSg
         PBhCfarWx7jExB9PrClTJrT6JIWzpuuB0/uheNMUSHQMY8isUUdwGwXLvFDcLDyY34bY
         haPuSpKdtfg06wqXQpaHNA0ftpsOl/e8KQURIWHz60ARLAzPcWWhoLBw3FEXiWlmvCA/
         OUVnzyEk0MHm1wAbUgu+yA2tIYIQQ+xbcjH1KkrF+nOrqcXUo+WxvTkyvxafuQtp9CnF
         8RvpvI/9bKkAAd2J/sZyjozcffvUefYC8+0XDgQwcShvN1tV5rHaIrXeRU7qFrZUzEGH
         isoA==
X-Forwarded-Encrypted: i=1; AFNElJ+war8hGWVHEVPa8Y7X2eDS89yVWpWO2Og12XOi1zpZ6QYOoO7gTpVAS1wj2p8Ar2cOs6g/UdGN2dE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFv+wxbRfyIkGA7goelY4mzXnWinb3E/hQa+ItE4bCFo7dpHJD
	d7o0p5p3yVOETHTbPEwhJIGv4vNP+fWyJ2OKAh+d+D+ZqoafMtwowrZpvGD/WXaRn/lF3hLqFU9
	0oM3Pyg==
X-Received: from plpw17.prod.google.com ([2002:a17:902:9a91:b0:2b2:4f3d:3df4])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:3888:b0:2b2:ec31:25b0
 with SMTP id d9443c01a7336-2bf3685ac3dmr1280905ad.29.1780065909849; Fri, 29
 May 2026 07:45:09 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:44:02 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-16-seanjc@google.com>
Subject: [PATCH v4 15/47] KVM: x86: Officially define CPUID 0x40000010 as PV
 Timing Info (TSC and Bus)
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-c201ff/1780065912-DB563443-69BEFA17/0/0
X-purgate-type: clean
X-purgate-size: 3798

From: David Woodhouse <dwmw@amazon.co.uk>

Formally define and document CPUID 0x40000010 as providing TSC and local
APIC bus frequency information for KVM's PV CPUID range.  Way back in
2008, VMware proposed (https://lkml.org/lkml/2008/10/1/246) carving out a
range of CPUID leaves for use by hypervisors.  While the broader proposal
from VMware was mostly shot down in flames, use of CPUID 0x40000010 to
provide TSC and local APIC bus frequency information survived and made it's
way into multiple guest operating systems.

XNU unconditionally assumes CPUID 0x40000010 contains the frequency
information, if it's present on any hypervisor:

  https://github.com/apple/darwin-xnu/blob/main/osfmk/i386/cpuid.c

As does FreeBSD:

  https://github.com/freebsd/freebsd-src/commit/4a432614f68

More importantly, QEMU (the de facto "reference" VMM for KVM) has
conditionally provided timing information in CPUID 0x40000010 for almost
9 years, since commit 9954a1582e ("x86-KVM: Supply TSC and APIC clock
rates to guest like VMWare").

So at this point it would be daft for KVM (or any hypervisor) to expose
0x40000010 for any *other* content.  Officially carve out and define the
CPUID leaf so that Linux-as-a-guest can follow suit and pull TSC and Local
APIC Bus frequency information from CPUID.

Defer providing userspace with the necessary information needed to
precisely and accurately enumerate the _actual_ configured TSC frequency
to the guest (that exact information, along with the scaled ratio, isn't
exposed to userspace).  As evidenced by QEMU, providing CPUID 0x40000010
without help from KVM is entirely possible, just not ideal.

Link: https://lore.kernel.org/all/ea0d7f43d910cee9600b254e303f468722fa355b.camel@infradead.org
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
[sean: drop KVM filling of CPUID, add documentation, massage changelog]
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 Documentation/virt/kvm/x86/cpuid.rst | 12 ++++++++++++
 arch/x86/include/uapi/asm/kvm_para.h | 11 +++++++++++
 2 files changed, 23 insertions(+)

diff --git a/Documentation/virt/kvm/x86/cpuid.rst b/Documentation/virt/kvm/x86/cpuid.rst
index bda3e3e737d7..f02e395cfa9b 100644
--- a/Documentation/virt/kvm/x86/cpuid.rst
+++ b/Documentation/virt/kvm/x86/cpuid.rst
@@ -122,3 +122,15 @@ KVM_HINTS_REALTIME 0            guest checks this feature bit to
                                 preempted for an unlimited time
                                 allowing optimizations
 ================== ============ =================================
+
+function: KVM_CPUID_TIMING_INFO (0x40000010)
+
+returns::
+
+   eax = (Virtual) TSC frequency in kHz
+   ebx = (Virtual) Bus (local APIC timer) frequency in kHz
+   ecx = 0 (Reserved)
+   edx = 0 (Reserved)
+
+Note, KVM only defines the semantics of KVM_CPUID_TIMING_INFO; KVM does NOT
+advertise support via KVM_GET_SUPPORTED_CPUID.
\ No newline at end of file
diff --git a/arch/x86/include/uapi/asm/kvm_para.h b/arch/x86/include/uapi/asm/kvm_para.h
index a1efa7907a0b..c3a384711f3a 100644
--- a/arch/x86/include/uapi/asm/kvm_para.h
+++ b/arch/x86/include/uapi/asm/kvm_para.h
@@ -44,6 +44,17 @@
  */
 #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT	24
 
+/*
+ * The timing information leaf provides TSC and local APIC timer frequency
+ * information to the guest.  Note, userspace is responsible for filling the
+ * leaf with the correct information.
+ *
+ *  # EAX: (Virtual) TSC frequency in kHz.
+ *  # EBX: (Virtual) Bus (local APIC timer) frequency in kHz.
+ *  # ECX, EDX: Reserved (must be zero).
+ */
+#define KVM_CPUID_TIMING_INFO	0x40000010
+
 #define MSR_KVM_WALL_CLOCK  0x11
 #define MSR_KVM_SYSTEM_TIME 0x12
 
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322223.1588560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySZ-0005eb-2b; Fri, 29 May 2026 14:45:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322223.1588560; Fri, 29 May 2026 14:45:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySY-0005dU-Nw; Fri, 29 May 2026 14:45:14 +0000
Received: by outflank-mailman (input) for mailman id 1322223;
 Fri, 29 May 2026 14:45:13 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3dKYZagYKCX8vhdqmfjrrjoh.frp0hq-ghyhoolvwv.0hqsurmhfw.ruj@flex--seanjc.bounces.google.com>)
 id 1wSySW-0005M9-Vv
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySW-00BR7N-CV
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:12 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3dKYZagYKCX8vhdqmfjrrjoh.frp0hq-ghyhoolvwv.0hqsurmhfw.ruj@flex--seanjc.bounces.google.com>)
 id 6a19a677-5cb7-0a2a0a5109dd-0a2a4503ba56-2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:12 +0200
Received: from [209.85.216.73] (helo=mail-pj1-f73.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3dKYZagYKCX8vhdqmfjrrjoh.frp0hq-ghyhoolvwv.0hqsurmhfw.ruj@flex--seanjc.bounces.google.com>)
 id 6a19a676-672d-0a2a45030019-d155d849bdac-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:11 +0200
Received: by mail-pj1-f73.google.com with SMTP id
 98e67ed59e1d1-368b68a33adso19435850a91.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065910; x=1780670710; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=dFi7v06+6W1FLZftWdDZ5nEL1MuL8W1WaU9VoOY7VWI=;
        b=KPMOzrmDnTfinTfoUnw+erj/bhDgg0+m5+TOXJHHsccsTnp75NZORkdvQ8DwjKajOQ
         CMogFWKefBpOlxtXOpDg3val6UjNe4EWcWTBRXqAcnDTzMwBN/3C3uIQYWsqpZbgUfMn
         R/UGwkbcG4eqsoFGz3URwDFebXqB6OcPWIcetFe9wENhKmEkyWdW8bVBGJPMdzHc5oIn
         8tBt0q08wzmc3X35+J20P9VMVOnK0p7Qnsf475jYT61AxkFqQ6Nife53GruRIPPLGYfI
         nsJmkc/h5rHFiSpzSg7GqXQKooYCcclA91b7bG4grhyQJqNAX3/L2Zyguh7STzVFXHsO
         UQzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065910; x=1780670710;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=dFi7v06+6W1FLZftWdDZ5nEL1MuL8W1WaU9VoOY7VWI=;
        b=bM2Ux0P+Z6S4Kwy3WpxS1aQOgVhsdtT8uoG/ajupSizC8Jnmb6pntrqLrkSsHM5UeC
         BnKbrxLYkJDEueYrVOKR/5UrTGjdn+DMER5NlT+Ojbs5JWAUKwL043m9Z3npafhPWt/5
         8B4sCRBg3QCj5zGI5hsA3BG/xn7L2GWDEKZ0DrTv8k0K+0WbHMXoQ4glaoj9e9FE0q7k
         CHA+okZB0juDAUltZ465Njk5O6+1heOcz5aGIIvwj+MjxbaEswDWaUt0/QSYx2eG+3cj
         hcY9/n1ninVdlbcmshecP7MUfFJRhkzsmFDnF4aGjlO9IY1yfrvR4mcNwpCm/jueWgHF
         TjqQ==
X-Forwarded-Encrypted: i=1; AFNElJ8DGp1ReoQUzfyp2mKmkf0U7hvKiKniZinWcyDKDFk/ku1yHpVp+tELHmvxd386ybGerPChct6rQO0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxTAvX2h8XRwp4lfbqaQibHcCuKXa4emWDv36Fqm9oyZyerHpph
	I19fPLDsa6K0YwAbU2xmxjpcM+AlFmInHtxXIm+1wnR1/AZWaQMMuL9OpUFswmf6nltjUUliAF2
	51EqADQ==
X-Received: from pjwy3.prod.google.com ([2002:a17:90a:d0c3:b0:369:1a1a:82d5])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:518e:b0:35f:b6a1:8d27
 with SMTP id 98e67ed59e1d1-36bbcd92760mr4080563a91.18.1780065908349; Fri, 29
 May 2026 07:45:08 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:44:01 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-15-seanjc@google.com>
Subject: [PATCH v4 14/47] x86/kvmclock: Rename kvm_get_tsc_khz() to kvmclock_get_tsc_khz()
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-33051d/1780065912-39171938-6E0A3D6E/0/0
X-purgate-type: clean
X-purgate-size: 1630

Rename kvm_get_tsc_khz() to kvmclock_get_tsc_khz() in anticipation of
adding support for getting TSC info from PV CPUID, i.e. in a KVM specific
way, but without non-kvmclock.

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 69752b170e0a..c4a782a0c903 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -115,7 +115,7 @@ static inline void kvm_sched_clock_init(bool stable)
  * poll of guests can be running and trouble each other. So we preset
  * lpj here
  */
-static unsigned int __init kvm_get_tsc_khz(void)
+static unsigned int __init kvmclock_get_tsc_khz(void)
 {
 	return pvclock_tsc_khz(this_cpu_pvti());
 }
@@ -125,7 +125,7 @@ static void __init kvm_get_preset_lpj(void)
 	unsigned long khz;
 	u64 lpj;
 
-	khz = kvm_get_tsc_khz();
+	khz = kvmclock_get_tsc_khz();
 
 	lpj = ((u64)khz * 1000);
 	do_div(lpj, HZ);
@@ -320,8 +320,8 @@ void __init kvmclock_init(void)
 	flags = pvclock_read_flags(&hv_clock_boot[0].pvti);
 	kvm_sched_clock_init(flags & PVCLOCK_TSC_STABLE_BIT);
 
-	x86_init.hyper.get_tsc_khz = kvm_get_tsc_khz;
-	x86_init.hyper.get_cpu_khz = kvm_get_tsc_khz;
+	x86_init.hyper.get_tsc_khz = kvmclock_get_tsc_khz;
+	x86_init.hyper.get_cpu_khz = kvmclock_get_tsc_khz;
 	x86_platform.get_wallclock = kvm_get_wallclock;
 	x86_platform.set_wallclock = kvm_set_wallclock;
 #ifdef CONFIG_X86_LOCAL_APIC
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322224.1588569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySb-00066j-8R; Fri, 29 May 2026 14:45:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322224.1588569; Fri, 29 May 2026 14:45:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySa-00065I-QK; Fri, 29 May 2026 14:45:16 +0000
Received: by outflank-mailman (input) for mailman id 1322224;
 Fri, 29 May 2026 14:45:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3dqYZagYKCYExjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 1wSySY-0005Z2-3k
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySX-000xsX-GA
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:13 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3dqYZagYKCYExjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 6a19a677-bab6-0a2a0a5309dd-0a2a4505b9fc-4
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:13 +0200
Received: from [209.85.216.73] (helo=mail-pj1-f73.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3dqYZagYKCYExjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 6a19a677-aaa8-0a2a45050019-d155d849ac39-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:13 +0200
Received: by mail-pj1-f73.google.com with SMTP id
 98e67ed59e1d1-367f715cbd0so13424836a91.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Transfer-Encoding:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065911; x=1780670711; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:reply-to:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FoqgLgRaMBwMlzlRb5ZdKmNASLSl22kGdknpkiNEuDA=;
        b=bfgS0DUt/SbtEwKQJVBheJUrxY5bMLKeYEYyY6Jg1KpQNdS3mq/GRiinFyEzR2itXY
         HRMNOqu4CrVYiZs0dFpxtknfM0uycmnb775MtUaHaIkp8yu8xCdSHKStUiGNI9BFvLrI
         aLjGgvajZ1VCPobOC1emgOTU9qA4qIkK0JOQPi1K+9U7GhERP0W4pOHFk0Rh5tKzaQto
         4iPoAv0J3FMDoVq9vbZkH+BLCjbBy9zevcpol0L5cu7dGoJXdgBVeYTeE3kkW7uv6c5b
         SUnRng4nUrTlBUQQfeDz0hnK+sBHLcZyJ+KU55w1ucZd8aLIyzP0BphfPpNaHS/zM75t
         sKQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065911; x=1780670711;
        h=content-transfer-encoding:cc:to:from:subject:message-id:references
         :mime-version:in-reply-to:date:reply-to:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=FoqgLgRaMBwMlzlRb5ZdKmNASLSl22kGdknpkiNEuDA=;
        b=O+lJih2s7sDq/qBVAM8U73Nz9D8iD/JE69vilqOdXcJVE2UcvupARWNIg0osqD9j9k
         28xz/2Or46IIXFuROCJQXq180tsRVU28kEKnQwU4+5hr8Ml+SXWqo8dY1YdUv9qHktOm
         uXF6UoHToQANIrnDVpOKFHA5w8Pf2jL0sLCXzM5CxTgKFuYxc18Twjzf4811PSyqkfKL
         CeLYBTstHgMavnnowqld9IkGba2o23S3ZTZKmlQSJUXC16JK7C4OgnKxi9aPtTL6imIk
         gBuFRmoDJwYxNeS4v74rTpsFBo48UVsWmUtrwxWLJ2nPU932rJuVPHTPDnWFCUc/v98O
         TPNw==
X-Forwarded-Encrypted: i=1; AFNElJ/+J4jOKlEdqOxguT1vb8EwZR/w9vxEfVX7kkF1QfbQ4uzqk0fTJe7fZAYxFWX3JNPIEVC+OEydpiQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJb/iITz30DDfTrD0+YUEpz87rVPNacfdX6EAD+xab46UhhT8H
	g6qjExmSe7le4GZkuS9OreowNKJLNaxOlK6UxNXK7kmZTG7CaG6PcOMmwwZPduoPiMNsbuacEbM
	M9h4DlQ==
X-Received: from plbjh24.prod.google.com ([2002:a17:903:3298:b0:2bf:14c9:866d])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:d4c2:b0:2bf:2589:7bc2
 with SMTP id d9443c01a7336-2bf367d3ab7mr1162735ad.15.1780065910985; Fri, 29
 May 2026 07:45:10 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:44:03 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-17-seanjc@google.com>
Subject: [PATCH v4 16/47] x86/kvm: Obtain TSC frequency from PV CPUID if present
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c201ff/1780065913-E119B443-5351C6B5/0/0
X-purgate-type: clean
X-purgate-size: 5045

From: David Woodhouse <dwmw@amazon.co.uk>

In https://lkml.org/lkml/2008/10/1/246 a proposal was made for generic
CPUID conventions across hypervisors. It was mostly shot down in flames,
but the leaf at 0x40000010 containing timing information didn't die.

It's used by XNU and FreeBSD guests under all hypervisors=C2=B9=C2=B2 to de=
termine
the TSC frequency, and also exposed by the EC2 Nitro hypervisor (as
well as, presumably, VMware). FreeBSD's Bhyve is probably just about
to start exposing it too.

Use it under KVM to obtain the TSC frequency more accurately, instead of
reverse-calculating the frequency from the mul/shift values in the KVM
clock.  Use the information to get the CPU frequency as well (kvmclock
feeds in kvm_get_tsc_khz() for both TSC and CPU calibration), as the info
from CPUID is superior in every way; whether or not kvmclock should be
overriding CPU calibration in the first place is an entirely different
question.

Use the info from CPUID even if the user explicitly disables kvmclock, or
if it's unsupported.  The PV CPUID leaf has no dependency on kvmclock, and
is in fact more useful if kvmclock is disabled since the kernel won't be
able to use kvmclock to derive a derive the TSC frequency.

Before:
[    0.000020] tsc: Detected 2900.014 MHz processor

After:
[    0.000020] tsc: Detected 2900.015 MHz processor

$ cpuid -1 -l 0x40000010
CPU:
   hypervisor generic timing information (0x40000010):
      TSC frequency (Hz) =3D 2900015
      bus frequency (Hz) =3D 1000000

Note!  *Independently* query for non-null get_{cpu,tsc}_khz() overrides so
that kvmclock doesn't clobber x86_init.hyper.get_cpu_khz() if/when KVM adds
support for getting the CPU frequency separately from the TSC frequency.

=C2=B9 https://github.com/apple/darwin-xnu/blob/main/osfmk/i386/cpuid.c
=C2=B2 https://github.com/freebsd/freebsd-src/commit/4a432614f68

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Co-developed-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvm.c      | 33 +++++++++++++++++++++++++++++++++
 arch/x86/kernel/kvmclock.c |  6 ++++--
 2 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index dcef84da304b..909d3e5e5bcd 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -49,6 +49,8 @@
 #include <asm/svm.h>
 #include <asm/e820/api.h>
=20
+static unsigned int kvm_tsc_khz_cpuid __initdata;
+
 DEFINE_STATIC_KEY_FALSE_RO(kvm_async_pf_enabled);
=20
 static int kvmapf =3D 1;
@@ -911,6 +913,21 @@ bool kvm_para_available(void)
 }
 EXPORT_SYMBOL_GPL(kvm_para_available);
=20
+static u32 __init kvm_cpuid_timing_info_leaf(void)
+{
+	u32 base =3D kvm_cpuid_base();
+
+	if (!base || cpuid_eax(base) < (base | KVM_CPUID_TIMING_INFO))
+		return 0;
+
+	return base | KVM_CPUID_TIMING_INFO;
+}
+
+static unsigned int __init kvm_get_tsc_khz(void)
+{
+	return kvm_tsc_khz_cpuid;
+}
+
 unsigned int kvm_arch_para_features(void)
 {
 	return cpuid_eax(kvm_cpuid_base() | KVM_CPUID_FEATURES);
@@ -960,6 +977,7 @@ static void __init kvm_init_platform(void)
 		.mask_lo =3D (u32)(~(SZ_4G - tolud - 1)) | MTRR_PHYSMASK_V,
 		.mask_hi =3D (BIT_ULL(boot_cpu_data.x86_phys_bits) - 1) >> 32,
 	};
+	u32 timing_info_leaf;
=20
 	if (cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT) &&
 	    kvm_para_has_feature(KVM_FEATURE_MIGRATION_CONTROL)) {
@@ -1007,6 +1025,21 @@ static void __init kvm_init_platform(void)
 			wrmsrq(MSR_KVM_MIGRATION_CONTROL,
 			       KVM_MIGRATION_READY);
 	}
+
+	/*
+	 * If KVM advertises the frequency directly in CPUID, use that instead
+	 * of reverse-calculating it from the KVM clock data, or worse, trying
+	 * to calibratate the TSC using an emulated device.
+	 */
+	timing_info_leaf =3D kvm_cpuid_timing_info_leaf();
+	if (timing_info_leaf) {
+		kvm_tsc_khz_cpuid =3D cpuid_eax(timing_info_leaf);
+		if (kvm_tsc_khz_cpuid) {
+			x86_init.hyper.get_tsc_khz =3D kvm_get_tsc_khz;
+			x86_init.hyper.get_cpu_khz =3D kvm_get_tsc_khz;
+		}
+	}
+
 	kvmclock_init();
 	x86_platform.apic_post_init =3D kvm_apic_init;
=20
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index c4a782a0c903..404f60741aa8 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -320,8 +320,10 @@ void __init kvmclock_init(void)
 	flags =3D pvclock_read_flags(&hv_clock_boot[0].pvti);
 	kvm_sched_clock_init(flags & PVCLOCK_TSC_STABLE_BIT);
=20
-	x86_init.hyper.get_tsc_khz =3D kvmclock_get_tsc_khz;
-	x86_init.hyper.get_cpu_khz =3D kvmclock_get_tsc_khz;
+	if (!x86_init.hyper.get_tsc_khz)
+		x86_init.hyper.get_tsc_khz =3D kvmclock_get_tsc_khz;
+	if (!x86_init.hyper.get_cpu_khz)
+		x86_init.hyper.get_cpu_khz =3D kvmclock_get_tsc_khz;
 	x86_platform.get_wallclock =3D kvm_get_wallclock;
 	x86_platform.set_wallclock =3D kvm_set_wallclock;
 #ifdef CONFIG_X86_LOCAL_APIC
--=20
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322226.1588576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySc-0006EA-CT; Fri, 29 May 2026 14:45:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322226.1588576; Fri, 29 May 2026 14:45:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySb-0006B1-Ec; Fri, 29 May 2026 14:45:17 +0000
Received: by outflank-mailman (input) for mailman id 1322226;
 Fri, 29 May 2026 14:45:15 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3eKYZagYKCYMzlhuqjnvvnsl.jvt4lu-kl2lsspz0z.4luwyvqlj0.vyn@flex--seanjc.bounces.google.com>)
 id 1wSySZ-0005h2-8z
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySY-00BR8Q-LK
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:14 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3eKYZagYKCYMzlhuqjnvvnsl.jvt4lu-kl2lsspz0z.4luwyvqlj0.vyn@flex--seanjc.bounces.google.com>)
 id 6a19a675-bab6-0a2a0a5309dd-0a2a450bdfe8-14
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:14 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3eKYZagYKCYMzlhuqjnvvnsl.jvt4lu-kl2lsspz0z.4luwyvqlj0.vyn@flex--seanjc.bounces.google.com>)
 id 6a19a679-212f-0a2a450b0019-d155d6cab1d7-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:14 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2bf30576aa3so2122645ad.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065912; x=1780670712; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=3J4tSt2+/CTMv4tcKt5oCpoZW7w+XDXf08twJvjnqkg=;
        b=k/7vSZjGfhgLmvVz31GtsBc1e3yJM6epR4XtoNBxKt8DNq/4secfgzEVYm/l9XOpcL
         SPgDVC79JNWKWQGc+HAiJAAQfYt7alDJJIAgZk4nlPPolY2TP2VG4DKbBxFqNXX8sBta
         /SapJ/9KyDwy1dYg+3aORaZtDddwNADULkd6bh89z8NLuC2shUp7mFrjXWYvjXYeLIFZ
         y6Xif9JVYjZi1MV5ifuuTpSO3r8lmBOIOmSxTeoYk7UK9zym4YUX9/a+/VQNaFtc8GRE
         ksxN4f6zADYOkgy9X6/pgEVoRbu3zWtsrRQjNdzZzTRAhxxZPZ9NmAfILuSsqBI4uEOy
         W/fw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065912; x=1780670712;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=3J4tSt2+/CTMv4tcKt5oCpoZW7w+XDXf08twJvjnqkg=;
        b=s2lY3Hl6WvxvfqF4Vglc94zdAWfSTDaPMCl+6OaodoEoJ7fNVvrmBGtgZ7Xo6eVZCv
         gDVfwkf1HFTLPK83kNfCoWOxY2OHbYCL2hRE1lo5bQr5rHiadoTYIcAODsbCkNS6KGSw
         RPq0AlA0Cs4AW+wwHK160ShlIQSmzj6gGiV2SHi98Kbq2aPNtzZvny/H3Lxd93rNHuC9
         NyR6hXi6cnyf5LxjKG4BOj3DvQWC503fFFztxIMXgRruKqpcVuGq/iVpy/6jXF0N6aJu
         E4QlHJtiOK3nPqaC1Mnk3cgK9s4kaB0MU8YH0qe7qaUHTtrzmDyhubmnxE4gU9PxQFxD
         sGxA==
X-Forwarded-Encrypted: i=1; AFNElJ9HYI63mWAhRMt2FFm5NKccmrCyk4MjnxerJlX7Q2PSGo9Cy6PgVwN8lgFAZ/XTdlLAUCZMO1stdSU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyIU1UjjpwSYLUbxrYt+sa/QDVhateiihWYIokQK2FNBoWmT1Z4
	kZ3Cy1B45Oaa88tQkX8apMKcHySZBUjRtFlzgd1tHN5MtLh8J9Ch2WXQZjFmiitiGvn1BnaD+Em
	8/bDE3w==
X-Received: from plbkk16.prod.google.com ([2002:a17:903:710:b0:2bf:222e:c947])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:15cf:b0:2b0:ac1e:9737
 with SMTP id d9443c01a7336-2bf367c2eb0mr1549335ad.12.1780065912148; Fri, 29
 May 2026 07:45:12 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:44:04 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-18-seanjc@google.com>
Subject: [PATCH v4 17/47] x86/kvm: Mark TSC as reliable when it's constant and nonstop
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-42698a/1780065914-13F7EF3B-2BDF8279/0/0
X-purgate-type: clean
X-purgate-size: 4118

Mark the TSC as reliable if the hypervisor (KVM) has enumerated the TSC
as constant and nonstop, and the admin hasn't explicitly marked the TSC
as unstable.  Like most (all?) virtualization setups, any secondary
clocksource that's used as a watchdog is guaranteed to be less reliable
than a constant, nonstop TSC, as all clocksources the kernel uses as a
watchdog are all but guaranteed to be emulated when running as a KVM
guest.  I.e. any observed discrepancies between the TSC and watchdog will
be due to jitter in the watchdog.

This is especially true for KVM, as the watchdog clocksource is usually
emulated in host userspace, i.e. reading the clock incurs a roundtrip
cost of thousands of cycles.

Marking the TSC reliable addresses a flaw where the TSC will occasionally
be marked unstable if the host is under moderate/heavy load.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/kvm_para.h |  2 +-
 arch/x86/kernel/kvm.c           | 16 +++++++++++++++-
 arch/x86/kernel/kvmclock.c      | 15 +++++----------
 3 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h
index 4a47c16e2df8..4a49fc286b4c 100644
--- a/arch/x86/include/asm/kvm_para.h
+++ b/arch/x86/include/asm/kvm_para.h
@@ -118,7 +118,7 @@ static inline long kvm_sev_hypercall3(unsigned int nr, unsigned long p1,
 }
 
 #ifdef CONFIG_KVM_GUEST
-void kvmclock_init(void);
+void kvmclock_init(bool prefer_tsc);
 void kvmclock_disable(void);
 bool kvm_para_available(void);
 unsigned int kvm_arch_para_features(void);
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 909d3e5e5bcd..4fe9c69bf40b 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -978,6 +978,7 @@ static void __init kvm_init_platform(void)
 		.mask_hi = (BIT_ULL(boot_cpu_data.x86_phys_bits) - 1) >> 32,
 	};
 	u32 timing_info_leaf;
+	bool tsc_is_reliable;
 
 	if (cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT) &&
 	    kvm_para_has_feature(KVM_FEATURE_MIGRATION_CONTROL)) {
@@ -1040,7 +1041,20 @@ static void __init kvm_init_platform(void)
 		}
 	}
 
-	kvmclock_init();
+        /*
+         * If the TSC counts at a constant frequency across P/T states, counts
+         * in deep C-states, and the TSC hasn't been marked unstable, treat the
+         * TSC reliable, as guaranteed by KVM.  Note, the TSC unstable check
+         * exists purely to honor the TSC being marked unstable via command
+         * line, any runtime detection of an unstable will happen after this.
+         */
+	tsc_is_reliable = boot_cpu_has(X86_FEATURE_CONSTANT_TSC) &&
+			  boot_cpu_has(X86_FEATURE_NONSTOP_TSC) &&
+			  !check_tsc_unstable();
+	if (tsc_is_reliable)
+		setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
+
+	kvmclock_init(tsc_is_reliable);
 	x86_platform.apic_post_init = kvm_apic_init;
 
 	/*
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 404f60741aa8..69a15fbfb779 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -285,7 +285,7 @@ static int kvmclock_setup_percpu(unsigned int cpu)
 	return p ? 0 : -ENOMEM;
 }
 
-void __init kvmclock_init(void)
+void __init kvmclock_init(bool prefer_tsc)
 {
 	u8 flags;
 
@@ -334,16 +334,11 @@ void __init kvmclock_init(void)
 	kvm_get_preset_lpj();
 
 	/*
-	 * X86_FEATURE_NONSTOP_TSC is TSC runs at constant rate
-	 * with P/T states and does not stop in deep C-states.
-	 *
-	 * Invariant TSC exposed by host means kvmclock is not necessary:
-	 * can use TSC as clocksource.
-	 *
+	 * If TSC is preferred over kvmlock, drop kvmclock's rating so that TSC
+	 * is chosen as the clocksource (but still register kvmclock in case
+	 * the kernel doesn't want to use TSC for whatever reason).
 	 */
-	if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC) &&
-	    boot_cpu_has(X86_FEATURE_NONSTOP_TSC) &&
-	    !check_tsc_unstable())
+	if (prefer_tsc)
 		kvm_clock.rating = 299;
 
 	clocksource_register_hz(&kvm_clock, NSEC_PER_SEC);
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322229.1588580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySd-0006Mf-FI; Fri, 29 May 2026 14:45:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322229.1588580; Fri, 29 May 2026 14:45:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySc-0006KH-Bz; Fri, 29 May 2026 14:45:18 +0000
Received: by outflank-mailman (input) for mailman id 1322229;
 Fri, 29 May 2026 14:45:16 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3eaYZagYKCYQ0mivrkowwotm.kwu5mv-lm3mttq010.5mvxzwrmk1.wzo@flex--seanjc.bounces.google.com>)
 id 1wSySa-0005w6-Cl
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySZ-00BR8Q-Pd
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:15 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3eaYZagYKCYQ0mivrkowwotm.kwu5mv-lm3mttq010.5mvxzwrmk1.wzo@flex--seanjc.bounces.google.com>)
 id 6a19a675-bab6-0a2a0a5309dd-0a2a450bdfe8-24
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:15 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3eaYZagYKCYQ0mivrkowwotm.kwu5mv-lm3mttq010.5mvxzwrmk1.wzo@flex--seanjc.bounces.google.com>)
 id 6a19a67a-212f-0a2a450b0019-d155d6cabd91-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:15 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2bf1845bddfso12753455ad.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065914; x=1780670714; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=Xkng2ObvqyeOAHFFD1k5jEREhKyPX3M1bjFdIhQCaZo=;
        b=qic0ds+ABjOhxQ8AmQ1a1xsAkCGXYWAJbRinH9cA1C3NYqSyPpm9bMctjoMYHYjvnr
         JTUHa+x5YybqlX4zfDYFOkyAr9pD90FJRhN6Sjx8x6Yvtye5b7mk1vAHHZ+Z2dm7TpRI
         FvM4qDyu6vR1kzvbWAdD7EMU5lrHW5adNpTbQj7oX51Ku3rS3W2UOpuvuQNuBqNQVb1Z
         +ENYIawDUNk9Ti4AsKVaMD/XyY6Tl9zqfNfKKco/1ZVYpeII4FigMwjgH1212K/W//IN
         CUUbzpYiiuWfqavVtfKE51/nJDfZdizgie3q6EAf+XSiIPqb+8ovMnFqcrmD7TcQW0a3
         qmyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065914; x=1780670714;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Xkng2ObvqyeOAHFFD1k5jEREhKyPX3M1bjFdIhQCaZo=;
        b=ILKs7B/BtEpcbztzckWBVURf7pksyoX0D7CzZB8T0oZBkXe6LyRo/RJezB8Tjanpp8
         QplS4LpdGY0jhc6Tn6wFoGVvJpwLcmkvLQFwczIm30uFLxPo0O/y9qHYO4H7F81SkdrK
         Y3wLJiNmMck98oymXCkg6okdp038A0Dy1dHkKAntb3xwvSQwD4f0qCI9AZ06yuq7JPgl
         bf+M6wyA0hIPNyq79PFn2ULGyKTul4dDdig6mZQavkLSuOxtu8JdD3uROVpTz/bFiEgr
         uUXjRjaZsl7P2xmyTvCuuFq2csWrQy/pALr/1iQxrE9M4t9OdpNKHUO0yChYHsmrr6VJ
         KeYw==
X-Forwarded-Encrypted: i=1; AFNElJ/YClqMQW9ZZkr3wisv4A6e1VBCfWwttWdOstF85XY7YmGcJf6/cfq4JqnOF9FujBxR3F73ro80NbQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwL6p6d0Hkk62XqamgBh6koGo+XCMOkgYAPDqnNBm6iHi/83b+4
	wuZJ9Fiu4BoCZIKAZvWZ+TCMzJ/LyA5vEYnEDRNEx8HYtKIJczzVy4MHQjmdQiM62Yg968lNNjn
	QHNSfOg==
X-Received: from plhl2.prod.google.com ([2002:a17:903:1202:b0:2b0:5b0d:f4db])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:1508:b0:2bc:b141:8551
 with SMTP id d9443c01a7336-2bf36833ef4mr1185145ad.19.1780065913278; Fri, 29
 May 2026 07:45:13 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:44:05 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-19-seanjc@google.com>
Subject: [PATCH v4 18/47] x86/kvm: Get local APIC bus frequency from PV CPUID
 Timing Info
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-42698a/1780065915-18F66F3B-F6E943BF/0/0
X-purgate-type: clean
X-purgate-size: 1416

When running as a KVM guest with PV timing info provided by the host,
stuff the APIC timer period/frequency with the local APIC bus frequency
reported in CPUID.0x40000010.EBX instead of trying to calibrate/guess the
frequency.

Note, the unit of measurement for lapic_timer_period is "ticks per HZ", not
Khz.

See Documentation/virt/kvm/x86/cpuid.rst for details.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvm.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 4fe9c69bf40b..c1139182121d 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -977,6 +977,7 @@ static void __init kvm_init_platform(void)
 		.mask_lo = (u32)(~(SZ_4G - tolud - 1)) | MTRR_PHYSMASK_V,
 		.mask_hi = (BIT_ULL(boot_cpu_data.x86_phys_bits) - 1) >> 32,
 	};
+	u32 apic_khz __maybe_unused;
 	u32 timing_info_leaf;
 	bool tsc_is_reliable;
 
@@ -1039,6 +1040,13 @@ static void __init kvm_init_platform(void)
 			x86_init.hyper.get_tsc_khz = kvm_get_tsc_khz;
 			x86_init.hyper.get_cpu_khz = kvm_get_tsc_khz;
 		}
+
+#ifdef CONFIG_X86_LOCAL_APIC
+		/* The leaf also includes the local APIC bus/timer frequency.*/
+		apic_khz = cpuid_ebx(timing_info_leaf);
+		if (apic_khz)
+	               lapic_timer_period = apic_khz * 1000 / HZ;
+#endif
 	}
 
         /*
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322231.1588589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySg-000729-LL; Fri, 29 May 2026 14:45:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322231.1588589; Fri, 29 May 2026 14:45:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySf-0006x4-4e; Fri, 29 May 2026 14:45:21 +0000
Received: by outflank-mailman (input) for mailman id 1322231;
 Fri, 29 May 2026 14:45:18 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3eqYZagYKCYU1njwslpxxpun.lxv6nw-mn4nuur121.6nwy0xsnl2.x0p@flex--seanjc.bounces.google.com>)
 id 1wSySb-0006AC-Hh
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySa-00BR7N-TT
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:16 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3eqYZagYKCYU1njwslpxxpun.lxv6nw-mn4nuur121.6nwy0xsnl2.x0p@flex--seanjc.bounces.google.com>)
 id 6a19a670-5cb7-0a2a0a5109dd-0a2a45079b98-38
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:16 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3eqYZagYKCYU1njwslpxxpun.lxv6nw-mn4nuur121.6nwy0xsnl2.x0p@flex--seanjc.bounces.google.com>)
 id 6a19a67b-229c-0a2a45070019-d155d6c9a517-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:16 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2bf11699875so19125195ad.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065915; x=1780670715; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=33AEblmPZenCG7ncxIbBQYlPZl7MWXLQcjQTaHUg1Zw=;
        b=d1LTvsuQnIoy+PIGbkjWvU0lmVsHG7Tk9PePtk8hEEa1lCxDoCuUZArBBrT/uT56Xd
         KI54wWEPs/eTRFILwrvaMRMCLnbVHCtotAjPaay9N/XNPWVkK6BBMla1rZsXmSDFO7t2
         izl72tYT7Sw8TwOsv/7l6VjqUul4CHs8bvYWqHU4frgMU4wd9A7+Qspt1+Kn6LqiShQE
         hX9WPxj63+a8mJzQ6tHauVknMfJksIAh7x0EHu5AoLsirGqR6v1zhXw5RLVLNo9rp8UA
         uOM1YWCODKMBXN8QTGI4eSWJF1yKxiAfsnsEB9PPpUtgoSCwlQBHEXiiFlRdklpSV1Ly
         W5mQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065915; x=1780670715;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=33AEblmPZenCG7ncxIbBQYlPZl7MWXLQcjQTaHUg1Zw=;
        b=lLef64oPTRx2d74sTjEv27Pou2o1qqmg+VPmudtpXnfUYdlEOQC909dseATceAwDYp
         5HjAZhcCQvteJKLzpnhgAaohp1vSYfohq1dUUUYg9HKxaxvsK5euJbB7h9oO6KJjFcNa
         n32JfO23oY4Xt3IX60nnc9ylzja3kyN+9Vqu+18tji92/3nmU71hkX2lbikkn1WFgAx0
         lDsm8UcUBzb/8EB9iXXIiPepXRyN5RWxOa/oEbbOvTpQLGF21uTce9NMsGtJfAPhIQe8
         7yI8tvE+Z/snXrM+Y1OILV8l31Axr6GPIHMyhVV8LBOwtHtGHyr5d5zTm/gSuemyr1We
         zmYQ==
X-Forwarded-Encrypted: i=1; AFNElJ/5tCwO+2kRmHhK4GmoJCrlICfr3ma8+weMkr0wqfsnIk+z9VtBFb8NSoKtk93hXnAGR5d6O3Pf+yo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwLetWGkcRXS8W8rzpo8jswl4h+dn0pY98j3v2R9kUVBSo6tpUr
	qw4FapTbX6kqZjWZzzCD239Yn59Pkcm//LTdDfk8ynMIRfOxLV+E/RcgOVcoor8A+c2ZaOQMhf6
	6obtLqw==
X-Received: from plaq13.prod.google.com ([2002:a17:903:204d:b0:2bf:68:53db])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:ffcb:b0:2b9:cabe:ce37
 with SMTP id d9443c01a7336-2bf204679c2mr35097225ad.1.1780065914467; Fri, 29
 May 2026 07:45:14 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:44:06 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-20-seanjc@google.com>
Subject: [PATCH v4 19/47] x86/tsc: Add standalone helper for getting CPU
 frequency from CPUID
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-ef75cf/1780065916-0A16DC48-AF566691/0/0
X-purgate-type: clean
X-purgate-size: 2830

Extract the guts of cpu_khz_from_cpuid() to a standalone helper that
doesn't restrict the usage to Intel CPUs.  This will allow sharing the
core logic with KVM-as-a-guest, as KVM generally doesn't restrict CPUID
based on vendor.

No functional change intended.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/tsc.h |  1 +
 arch/x86/kernel/tsc.c      | 32 +++++++++++++++-----------------
 2 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h
index 4a224f99c3b9..7ff2bfdcdf38 100644
--- a/arch/x86/include/asm/tsc.h
+++ b/arch/x86/include/asm/tsc.h
@@ -90,6 +90,7 @@ struct cpuid_tsc_info {
 	unsigned int tsc_khz;
 };
 extern int __init cpuid_get_tsc_freq(struct cpuid_tsc_info *info);
+extern unsigned int __cpu_khz_from_cpuid(void);
 
 extern void tsc_early_init(void);
 extern void tsc_init(void);
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 3e911f0f7364..bdff8c988866 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -692,6 +692,18 @@ int __init cpuid_get_tsc_freq(struct cpuid_tsc_info *info)
 	return 0;
 }
 
+unsigned int __cpu_khz_from_cpuid(void)
+{
+	unsigned int eax_base_mhz, ebx, ecx, edx;
+
+	if (boot_cpu_data.cpuid_level < CPUID_LEAF_FREQ)
+		return 0;
+
+	cpuid(CPUID_LEAF_FREQ, &eax_base_mhz, &ebx, &ecx, &edx);
+
+	return eax_base_mhz * 1000;
+}
+
 /**
  * native_calibrate_tsc - determine TSC frequency
  * Determine TSC frequency via CPUID, else return 0.
@@ -727,13 +739,8 @@ static unsigned long native_calibrate_tsc(void)
 	 * clock, but we can easily calculate it to a high degree of accuracy
 	 * by considering the crystal ratio and the CPU speed.
 	 */
-	if (!info.crystal_khz && boot_cpu_data.cpuid_level >= CPUID_LEAF_FREQ) {
-		unsigned int eax_base_mhz, ebx, ecx, edx;
-
-		cpuid(CPUID_LEAF_FREQ, &eax_base_mhz, &ebx, &ecx, &edx);
-		info.crystal_khz = eax_base_mhz * 1000 *
-			info.denominator / info.numerator;
-	}
+	if (!info.crystal_khz)
+		info.crystal_khz = __cpu_khz_from_cpuid() * info.denominator / info.numerator;
 
 	if (!info.crystal_khz)
 		return 0;
@@ -760,19 +767,10 @@ static unsigned long native_calibrate_tsc(void)
 
 static unsigned long cpu_khz_from_cpuid(void)
 {
-	unsigned int eax_base_mhz, ebx_max_mhz, ecx_bus_mhz, edx;
-
 	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
 		return 0;
 
-	if (boot_cpu_data.cpuid_level < CPUID_LEAF_FREQ)
-		return 0;
-
-	eax_base_mhz = ebx_max_mhz = ecx_bus_mhz = edx = 0;
-
-	cpuid(CPUID_LEAF_FREQ, &eax_base_mhz, &ebx_max_mhz, &ecx_bus_mhz, &edx);
-
-	return eax_base_mhz * 1000;
+	return __cpu_khz_from_cpuid();
 }
 
 /*
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322234.1588596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySj-0007c5-4y; Fri, 29 May 2026 14:45:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322234.1588596; Fri, 29 May 2026 14:45:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySh-0007WI-S6; Fri, 29 May 2026 14:45:23 +0000
Received: by outflank-mailman (input) for mailman id 1322234;
 Fri, 29 May 2026 14:45:20 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3e6YZagYKCYY2okxtmqyyqvo.myw7ox-no5ovvs232.7oxz1ytom3.y1q@flex--seanjc.bounces.google.com>)
 id 1wSySd-0006W7-D9
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySc-00BR7N-PD
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:18 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3e6YZagYKCYY2okxtmqyyqvo.myw7ox-no5ovvs232.7oxz1ytom3.y1q@flex--seanjc.bounces.google.com>)
 id 6a19a66e-5cb7-0a2a0a5109dd-0a2a450acfc8-48
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:18 +0200
Received: from [209.85.216.74] (helo=mail-pj1-f74.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3e6YZagYKCYY2okxtmqyyqvo.myw7ox-no5ovvs232.7oxz1ytom3.y1q@flex--seanjc.bounces.google.com>)
 id 6a19a67c-56b3-0a2a450a0019-d155d84ad121-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:18 +0200
Received: by mail-pj1-f74.google.com with SMTP id
 98e67ed59e1d1-365d4d2fa04so13286064a91.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065916; x=1780670716; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=uWYqy9oq3guwZeX1CT7rpLN1sV47Joj/CY0UrflMOfk=;
        b=A1gf8d4CG/WfznANbJMoCUINHF/WJURwhms7QgjXKsJK+w+ksmVOzvnIOrEuG7d0RV
         LjgCImBssqgDxWjMILVkBoLb/pkuZZ9tQ+TaG/CPapFiSRV48I5M9lqh0ky1y5RUd6/U
         R4PRdlAtbKQbm/C/Zo+0KGpu9HmTcvXFCf+RtoxC7owhkxeu3nTlQBcdDYt7hCU+hzIo
         nvQcVu1SmdlB294L8l+EjeJcviIwqy/1ALTACWv9HgpYWNZlQjT6ynP38tiqqGJ9oFug
         +MAVokxHdgyh2i9phWe+qO152yrQLeQZGy/3g8o8XBOgaaIljXSZI61eyuoVCfIfXLj0
         jmIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065916; x=1780670716;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=uWYqy9oq3guwZeX1CT7rpLN1sV47Joj/CY0UrflMOfk=;
        b=J46HT6NYnob7b4h7i2QFczGmzm05YDd/II4PzqBVpBsxHJwnu1pDo+IwLFCLf7ad9W
         VzS31mBsjd83C3N+Wwgd9NN/IAhehJIqGnrHQtORIsOTatyvLuZGwZlvyuNmqna1skEm
         VnNsoRQ0sv0XfKj7X8Z8q7FnuUS17CiyOZ/MmOXLDrvu+7faODx8P/pqfIwNVHAu8q6k
         WxuJWMkrFUnhqgoWaAS+1BV6PV+6wVjXB6I/5ZQ6W37s8hwGQkdf1k7EzlSYZ0UllvYZ
         iKi+I0aNjwVba+CICZttS19EcsYJv2b5CO5npvf2SRT0+USv3lMdQ6bErU7EyoLKP4c1
         wDUA==
X-Forwarded-Encrypted: i=1; AFNElJ8YFrxI2acg5IklBELlwhgU7mimql8/27LYZWKFQeIHBn3tRfdHtmiTUdCg41pCszdgULtktyrGjeg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxpwuyGKRzhpHCNwj37FcvMxQ9bqMeBmFF9DcnWlXEk5cIfFPTV
	rNQi+Nr9wnIrKO4NTMQrKpI43K5f8UoKjew0+P/7H+6tHrujoSkrm6LtnWyOtOuBtC4o3nkbS5i
	+iurATQ==
X-Received: from pgce4.prod.google.com ([2002:a05:6a02:1c4:b0:c82:7a7f:9bf6])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:4d02:b0:39f:aa3:5e56
 with SMTP id adf61e73a8af0-3b412058e7dmr3539717637.14.1780065915613; Fri, 29
 May 2026 07:45:15 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:44:07 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-21-seanjc@google.com>
Subject: [PATCH v4 20/47] x86/kvm: Get CPU base frequency from CPUID when it's available
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-4011c0/1780065918-7DF838B7-0B67A9FC/0/0
X-purgate-type: clean
X-purgate-size: 1789

If CPUID.0x16 is present and valid, use the CPU frequency provided by
CPUID instead of assuming that the virtual CPU runs at the same
frequency as TSC and/or kvmclock.  Back before constant TSCs were a
thing, treating the TSC and CPU frequencies as one and the same was
somewhat reasonable, but now it's nonsensical, especially if the
hypervisor explicitly enumerates the CPU frequency.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvm.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index c1139182121d..c81a24d0efdf 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -50,6 +50,7 @@
 #include <asm/e820/api.h>
 
 static unsigned int kvm_tsc_khz_cpuid __initdata;
+static unsigned int kvm_cpu_khz_cpuid __initdata;
 
 DEFINE_STATIC_KEY_FALSE_RO(kvm_async_pf_enabled);
 
@@ -928,6 +929,11 @@ static unsigned int __init kvm_get_tsc_khz(void)
 	return kvm_tsc_khz_cpuid;
 }
 
+static unsigned int __init kvm_get_cpu_khz(void)
+{
+	return kvm_cpu_khz_cpuid;
+}
+
 unsigned int kvm_arch_para_features(void)
 {
 	return cpuid_eax(kvm_cpuid_base() | KVM_CPUID_FEATURES);
@@ -1049,6 +1055,14 @@ static void __init kvm_init_platform(void)
 #endif
 	}
 
+	/*
+	 * Prefer CPUID.0x16 over KVM's PV CPUID when possible, as the base CPU
+	 * frequency isn't necessarily the same as the TSC frequency.
+	 */
+	kvm_cpu_khz_cpuid = __cpu_khz_from_cpuid();
+	if (kvm_cpu_khz_cpuid)
+		x86_init.hyper.get_cpu_khz = kvm_get_cpu_khz;
+
         /*
          * If the TSC counts at a constant frequency across P/T states, counts
          * in deep C-states, and the TSC hasn't been marked unstable, treat the
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:45:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:45:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322236.1588603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySl-00083d-6g; Fri, 29 May 2026 14:45:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322236.1588603; Fri, 29 May 2026 14:45:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSySj-0007zH-MX; Fri, 29 May 2026 14:45:25 +0000
Received: by outflank-mailman (input) for mailman id 1322236;
 Fri, 29 May 2026 14:45:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3fKYZagYKCYc3plyunrzzrwp.nzx8py-op6pwwt343.8py02zupn4.z2r@flex--seanjc.bounces.google.com>)
 id 1wSySe-0006hx-9T
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:45:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSySd-004cke-LT
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:45:19 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3fKYZagYKCYc3plyunrzzrwp.nzx8py-op6pwwt343.8py02zupn4.z2r@flex--seanjc.bounces.google.com>)
 id 6a19a66f-e002-0a2a0a5209dd-0a2a4502d7a8-44
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:19 +0200
Received: from [209.85.215.202] (helo=mail-pg1-f202.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3fKYZagYKCYc3plyunrzzrwp.nzx8py-op6pwwt343.8py02zupn4.z2r@flex--seanjc.bounces.google.com>)
 id 6a19a67d-af86-0a2a45020019-d155d7cac48b-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:19 +0200
Received: by mail-pg1-f202.google.com with SMTP id
 41be03b00d2f7-c8294d8c48eso9079962a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065917; x=1780670717; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=YpIj1ucaijezC9S67db1/B7YVcsq/H2nz/z97RNrYsc=;
        b=fDzpz1UOVuiTwjLKxeqhoEH0DbqJ8D18B/HnO6g0z9MWZBuP3pfeKrSVQi+1zmjSva
         k8qs9oDmNJBe2go03pNg5nnfryKgnwdyiUF5a/BxN6Gk5MJIpovShgaJqQj1mBJE7I6m
         /QBlK+RatgPI+rTC3Zgbn5B6P2OblYwoQfAsz5hP9L0mlcua/szLfosgQcSWdP+68V/G
         ILthrePrxT7wzso1G6M+vY44/kZIwJBLGJUugnBxEhKuxGYyq62ZIjT7EYharzvtiqnE
         L2A9hpq/bkYIP8ALWD83bmwiwv1o6WId2RJF9qkTT+yKidAuQpoU3KOZQEdVuj1zhpVV
         WW5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065917; x=1780670717;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=YpIj1ucaijezC9S67db1/B7YVcsq/H2nz/z97RNrYsc=;
        b=HV8+/HB/6azQH6tKMtuX5ml3bE6lzmgE2VbhUCWypkBHaSO3/x9xxY4CW8Vpd2GuI0
         IkjJD6774HdUTPzwImwcydi7NPqItYq3pXKGJxYr5WY4eobB51elwj+T/wLFbo0/S3QN
         jB98T7T3fL1LLD+iSq3+873zo4/ZFvbbQj2+dhKHL+0hpC+J4zdymaSTK3T6Cn6tmKMI
         8zzsSgy98W+Fw9+U9MzNluU7ZGuosy1aUKfKB3oStDxdoX5Q+PtZtwAC2fFHjFGD1wvU
         J81hiHD3H9F96AO6+h/1/yPgLcA4hOghnuAMiZfP1oI3nd1raPwa59bJS8QYI5oqul45
         OJlg==
X-Forwarded-Encrypted: i=1; AFNElJ/1uJ0HzEmvkhKBf8W/oZOxlHUHNw4nEGANlTOSlIsZPPT5d9zsXJ3Osr9SP9G0ePH7VvM+dRQguIk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyvkmIUEib7Yir91zBLn/fBYMzl7uLnJ2HPhz51dCYIh95WcSGS
	HTlmALJeUYCyxWourz2hZW6EPWKOMfNxYPu9BWhdRTNvm9Gdv6lNIqVLI9x9t2YZGx6e/5/2IZx
	tl72DpQ==
X-Received: from pgnm19.prod.google.com ([2002:a63:7d53:0:b0:c79:1600:6a09])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:244f:b0:3a0:67d:bba9
 with SMTP id adf61e73a8af0-3b4120a47c0mr3641480637.45.1780065916828; Fri, 29
 May 2026 07:45:16 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:44:08 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-22-seanjc@google.com>
Subject: [PATCH v4 21/47] x86/xen: Obtain TSC frequency from CPUID if present
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-720697/1780065919-83563161-8B56DD70/0/0
X-purgate-type: clean
X-purgate-size: 1314

From: David Woodhouse <dwmw@amazon.co.uk>

The Xen CPUID leaf 3, sub-leaf 0, ECX provides the guest TSC frequency
in kHz directly. Use it when available instead of reverse-calculating
the frequency from the pvclock tsc_to_system_mul and tsc_shift values,
which loses precision.

This mirrors the equivalent change for KVM guests using the generic
0x40000010 timing leaf.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
[sean: drop non-Xen changes]
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/xen/time.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index 487ad838c441..36d66abf5379 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -42,6 +42,17 @@ static unsigned int __init xen_tsc_khz(void)
 {
 	struct pvclock_vcpu_time_info *info =
 		&HYPERVISOR_shared_info->vcpu_info[0].time;
+	u32 base = xen_cpuid_base();
+	u32 eax, ebx, ecx, edx;
+
+	/*
+	 * If Xen provides the guest TSC frequency directly in CPUID
+	 * (leaf 3, sub-leaf 0, ECX), use that instead of reverse-
+	 * calculating from the pvclock mul/shift.
+	 */
+	cpuid_count(base + 3, 0, &eax, &ebx, &ecx, &edx);
+	if (ecx)
+		return ecx;
 
 	return pvclock_tsc_khz(info);
 }
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:47:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:47:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322343.1588627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyUe-0004Pi-7k; Fri, 29 May 2026 14:47:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322343.1588627; Fri, 29 May 2026 14:47:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyUe-0004Pb-5B; Fri, 29 May 2026 14:47:24 +0000
Received: by outflank-mailman (input) for mailman id 1322343;
 Fri, 29 May 2026 14:47:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3f6YZagYKCYo6so1xqu22uzs.q20Bs1-rs9szzw676.Bs1352xsq7.25u@flex--seanjc.bounces.google.com>)
 id 1wSyUc-0004PL-IZ
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:47:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyUb-004dAo-Um
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:47:21 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3f6YZagYKCYo6so1xqu22uzs.q20Bs1-rs9szzw676.Bs1352xsq7.25u@flex--seanjc.bounces.google.com>)
 id 6a19a6e8-bab6-0a2a0a5309dd-0a2a4505c40c-24
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:47:21 +0200
Received: from [209.85.215.202] (helo=mail-pg1-f202.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3f6YZagYKCYo6so1xqu22uzs.q20Bs1-rs9szzw676.Bs1352xsq7.25u@flex--seanjc.bounces.google.com>)
 id 6a19a680-aaa8-0a2a45050019-d155d7cab97c-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:21 +0200
Received: by mail-pg1-f202.google.com with SMTP id
 41be03b00d2f7-c827bda2e60so8268475a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065920; x=1780670720; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=xvpEF1xGV6Ftnv9ed9XR60tkQggfkzBgS3+mRoziVCo=;
        b=wb5iQh+PF1fJHVH8XUPr6b2u0cJlqxZeqcOIG1A03zyEyhcHY6z8DgPKxLmHlC1P7/
         0qT7d8s9jkBL1gyNEDSzIrC40cpH9bMVfNqfpG/l1WTPzahuSh0c+BBjHNARXiqEztLJ
         FWI0Dwjq6iqvBXPrpHZxj25e+iskSqZXuZAAIos8PXuxX4w0giWhGfuRplPLM3cPW5hc
         1l5bPcj8pSKJIKhLDbyvwfTqLna9kepPz0U+ZBA/U6JH7lPfTftdXDJXZQc2WKDAcmMx
         ewR8yeFWvBvbOCTcHwXRDWDfztH/U2oFb7Q7jD/Lteu52TgqDada2ydXAceUv6DpNf24
         6cxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065920; x=1780670720;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=xvpEF1xGV6Ftnv9ed9XR60tkQggfkzBgS3+mRoziVCo=;
        b=oDwSYTNYZCIUDsc9Z2p0ehTmbxRhOVkO8AENPrAbfbZ25WfY4elvTPiSU99b9rEO1S
         5BkeE+0uMAQ7lmL8bDxH5S6zai0SoP6zZxkWDiTimnCetiQ4fE2FX5bXa8x/bCe+3KHQ
         pPZEfmtpqjh7vk77Sa9SaMmVsgHIXIaINgbndRZMpb7t5TLNUIP8IUxOvZLtr1Bf+7Do
         wHFo3kSMbGykfg+dNjjRcjWyXI3WkTqA1d7430N23uybTVGSxxbLCXGHteuATNnOzxVq
         Rgviz2mxxQzjmy+7L0wTzT5r1x6EvAFvJ0KjJxWMOUT8r4/bkTR1ZOW992Ryupkz9CDv
         X/yA==
X-Forwarded-Encrypted: i=1; AFNElJ9BF5FZSVq2ij3YtTaDqMe/Po9qwI2YElsJuAY5gXV2rhjTwUEcgL7nIrBxbrG1gWCzkGVt62d8Xz0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwIv/kOvl4eWZvhINSo3LG3Gm5luYAmxyUWakwMVKfB5h4E9C0G
	HmwWuXwNuNORwjYVOTrs2eNF326WDOGvsztYkhG1I4wjfA3Jg22X97+wcMK3umjkMAsG9dxw4JS
	WJDvt3g==
X-Received: from pgc4.prod.google.com ([2002:a05:6a02:2f84:b0:c82:7761:9936])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:6b87:b0:3b3:d4a:793b
 with SMTP id adf61e73a8af0-3b411e5b284mr4253221637.43.1780065919253; Fri, 29
 May 2026 07:45:19 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:44:10 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-24-seanjc@google.com>
Subject: [PATCH v4 23/47] clocksource: hyper-v: Drop wrappers to sched_clock
 save/restore helpers
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-c201ff/1780065921-DAB68443-EAD1C9F6/13/0
X-purgate-type: clean
X-purgate-size: 3432

Now that all of the Hyper-V reference counter sched_clock code is located
in a single file, drop the superfluous wrappers for the save/restore flows.

No functional change intended.

Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Tested-by: Michael Kelley <mhklinux@outlook.com>
Acked-by: Wei Liu <wei.liu@kernel.org>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 drivers/clocksource/hyperv_timer.c | 34 +++++-------------------------
 include/clocksource/hyperv_timer.h |  2 --
 2 files changed, 5 insertions(+), 31 deletions(-)

diff --git a/drivers/clocksource/hyperv_timer.c b/drivers/clocksource/hyperv_timer.c
index 72b966340a46..69c1c7264e5d 100644
--- a/drivers/clocksource/hyperv_timer.c
+++ b/drivers/clocksource/hyperv_timer.c
@@ -472,17 +472,6 @@ static void resume_hv_clock_tsc(struct clocksource *arg)
 	hv_set_msr(HV_MSR_REFERENCE_TSC, tsc_msr.as_uint64);
 }
 
-/*
- * Called during resume from hibernation, from overridden
- * x86_platform.restore_sched_clock_state routine. This is to adjust offsets
- * used to calculate time for hv tsc page based sched_clock, to account for
- * time spent before hibernation.
- */
-void hv_adj_sched_clock_offset(u64 offset)
-{
-	hv_sched_clock_offset -= offset;
-}
-
 #ifdef HAVE_VDSO_CLOCKMODE_HVCLOCK
 static int hv_cs_enable(struct clocksource *cs)
 {
@@ -548,12 +537,14 @@ static void (*old_restore_sched_clock_state)(void);
  * based clocksource, proceeds from where it left off during suspend and
  * it shows correct time for the timestamps of kernel messages after resume.
  */
-static void save_hv_clock_tsc_state(void)
+static void hv_save_sched_clock_state(void)
 {
+	old_save_sched_clock_state();
+
 	hv_ref_counter_at_suspend = hv_read_reference_counter();
 }
 
-static void restore_hv_clock_tsc_state(void)
+static void hv_restore_sched_clock_state(void)
 {
 	/*
 	 * Adjust the offsets used by hv tsc clocksource to
@@ -561,23 +552,8 @@ static void restore_hv_clock_tsc_state(void)
 	 * adjusted value = reference counter (time) at suspend
 	 *                - reference counter (time) now.
 	 */
-	hv_adj_sched_clock_offset(hv_ref_counter_at_suspend - hv_read_reference_counter());
-}
-/*
- * Functions to override save_sched_clock_state and restore_sched_clock_state
- * functions of x86_platform. The Hyper-V clock counter is reset during
- * suspend-resume and the offset used to measure time needs to be
- * corrected, post resume.
- */
-static void hv_save_sched_clock_state(void)
-{
-	old_save_sched_clock_state();
-	save_hv_clock_tsc_state();
-}
+	hv_sched_clock_offset -= (hv_ref_counter_at_suspend - hv_read_reference_counter());
 
-static void hv_restore_sched_clock_state(void)
-{
-	restore_hv_clock_tsc_state();
 	old_restore_sched_clock_state();
 }
 
diff --git a/include/clocksource/hyperv_timer.h b/include/clocksource/hyperv_timer.h
index d48dd4176fd3..a4c81a60f53d 100644
--- a/include/clocksource/hyperv_timer.h
+++ b/include/clocksource/hyperv_timer.h
@@ -38,8 +38,6 @@ extern void hv_remap_tsc_clocksource(void);
 extern unsigned long hv_get_tsc_pfn(void);
 extern struct ms_hyperv_tsc_page *hv_get_tsc_page(void);
 
-extern void hv_adj_sched_clock_offset(u64 offset);
-
 static __always_inline bool
 hv_read_tsc_page_tsc(const struct ms_hyperv_tsc_page *tsc_pg,
 		     u64 *cur_tsc, u64 *time)
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:51:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:51:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322378.1588636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyYU-0007Xs-QL; Fri, 29 May 2026 14:51:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322378.1588636; Fri, 29 May 2026 14:51:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyYU-0007Xl-Mt; Fri, 29 May 2026 14:51:22 +0000
Received: by outflank-mailman (input) for mailman id 1322378;
 Fri, 29 May 2026 14:51:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3fqYZagYKCYk5rn0wpt11tyr.p1zAr0-qr8ryyv565.Ar0241wrp6.14t@flex--seanjc.bounces.google.com>)
 id 1wSyYT-0007Xf-LI
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:51:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyYS-004dmp-Ua
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:51:20 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3fqYZagYKCYk5rn0wpt11tyr.p1zAr0-qr8ryyv565.Ar0241wrp6.14t@flex--seanjc.bounces.google.com>)
 id 6a19a7e8-bab6-0a2a0a5309dd-0a2a4507a5b2-2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:51:20 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3fqYZagYKCYk5rn0wpt11tyr.p1zAr0-qr8ryyv565.Ar0241wrp6.14t@flex--seanjc.bounces.google.com>)
 id 6a19a67e-229c-0a2a45070019-d155d6c9cc5d-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:20 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2beb9002a00so68692705ad.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065918; x=1780670718; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=CjqUsxyZ/EUi7tEkmfz6ySaHUFaiYUv5qsrOzmWsVSE=;
        b=c5/+UrC/MOt5u5bhRahoPtjwpusKggIFh5CgvSiXQ6kCOeCAfvJZ7DH9If00vWR1fZ
         hPxMmHp+SCvvEpUyFylaGCEsYOMsdWgtD1+C6IPFL6egC8nqZku9c8Shic/+Z3CbZn4E
         CP52eBpkMZVacs8czR0yOOspAASrJkGVQsHBOOSSJNDgwKS/MCoau7OGlAFv8J5gC6LM
         UzoBVVetr7/EL+Kg37NEbsRRNPlqNGYd3XX+6Ad49WVPx0kZ+ye1VxZWv53fitqp/liQ
         5yq0PZKG3ECs28zxFoautniCfPruPdUYfMYQ7Ii4Dmmh6ChxFeot498j3PcG7ScosI+T
         jbiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065918; x=1780670718;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=CjqUsxyZ/EUi7tEkmfz6ySaHUFaiYUv5qsrOzmWsVSE=;
        b=CC7BbsDhhBO8OdBwu7poKNMsISJRzFNeScLqWGgHtPrILoVc4XDnYNl2UgUetHBnUH
         w/gVx836Z5zr4rL5JqLTes7cEgSUoIkZiO456tiUdIZwdQYTwLiPP5PMdJU13LJGl408
         B98WpB5fGkm4MUw9+mZ29mr0YtQ7wzs7V6BrdMNR1wmyEt9Tq5NUK08f+ny/Fif+CQtE
         tYvjSsqMiFHnyI53Edzz+pbiInl7wnMmKDCNG8ZDvi05TC+rJkDABz0Hj+JcrqkTBuS8
         85cM7KpK66GknKXatLmabPUpvexwwxqJ+PEO/TiGCYaqOmElDFCd9FCpi/Wob5WDaYWJ
         H8yg==
X-Forwarded-Encrypted: i=1; AFNElJ/Vbw/mhoUsyoBKXHm4uBaOuuPOBipXuFE2EVcS7fMqBLigzEmSz1JgNdWHjeLr1Ej3WV6zFqwAzUw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx74TuzVCyM7u5qt25LlddS7bP9tYYEBE2Y+hhgKciOzQDTfnOw
	tUwwFb0uIOL4rskQ915n4HVPAT3+5sR6ZH3DZULp33Uwn+d3aN9UzokbrtLHWwILq57aK6vw6QQ
	rOjYEwQ==
X-Received: from plgy12.prod.google.com ([2002:a17:903:22cc:b0:2bf:21c9:7d27])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:1c6:b0:2bf:3309:ecce
 with SMTP id d9443c01a7336-2bf3686593amr1360175ad.28.1780065918022; Fri, 29
 May 2026 07:45:18 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:44:09 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-23-seanjc@google.com>
Subject: [PATCH v4 22/47] clocksource: hyper-v: Register sched_clock
 save/restore iff it's necessary
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-ef75cf/1780065920-23F7EC48-B8A70931/0/0
X-purgate-type: clean
X-purgate-size: 6603

Register the Hyper-V reference counter (refcounter) callbacks for saving
and restoring its PV sched_clock, if and only if the refcounter is
actually being used for sched_clock.  Currently, Hyper-V overrides the
save/restore hooks if the reference TSC available, whereas the Hyper-V
refcounter code only overrides sched_clock if the reference TSC is
available *and* it's not invariant.  The flaw is effectively papered over
by invoking the "old" save/restore callbacks as part of save/restore, but
that's unnecessary and fragile.

To avoid introducing more complexity, and to allow for additional cleanups
of the PV sched_clock code, move the save/restore hooks and logic into
hyperv_timer.c and simply wire up the hooks when overriding sched_clock
itself.

Note, while the Hyper-V refcounter code is intended to be architecture
neutral, CONFIG_PARAVIRT is firmly x86-only, i.e. adding a small amount of
x86 specific code (which will be reduced in future cleanups) doesn't
meaningfully pollute generic code.

Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Tested-by: Michael Kelley <mhklinux@outlook.com>
Acked-by: Wei Liu <wei.liu@kernel.org>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/cpu/mshyperv.c     | 58 ------------------------------
 drivers/clocksource/hyperv_timer.c | 50 ++++++++++++++++++++++++++
 2 files changed, 50 insertions(+), 58 deletions(-)

diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
index f8653fc05a40..2403231fd4b0 100644
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86/kernel/cpu/mshyperv.c
@@ -275,63 +275,6 @@ static void hv_guest_crash_shutdown(struct pt_regs *regs)
 }
 #endif /* CONFIG_CRASH_DUMP */
 
-static u64 hv_ref_counter_at_suspend;
-static void (*old_save_sched_clock_state)(void);
-static void (*old_restore_sched_clock_state)(void);
-
-/*
- * Hyper-V clock counter resets during hibernation. Save and restore clock
- * offset during suspend/resume, while also considering the time passed
- * before suspend. This is to make sure that sched_clock using hv tsc page
- * based clocksource, proceeds from where it left off during suspend and
- * it shows correct time for the timestamps of kernel messages after resume.
- */
-static void save_hv_clock_tsc_state(void)
-{
-	hv_ref_counter_at_suspend = hv_read_reference_counter();
-}
-
-static void restore_hv_clock_tsc_state(void)
-{
-	/*
-	 * Adjust the offsets used by hv tsc clocksource to
-	 * account for the time spent before hibernation.
-	 * adjusted value = reference counter (time) at suspend
-	 *                - reference counter (time) now.
-	 */
-	hv_adj_sched_clock_offset(hv_ref_counter_at_suspend - hv_read_reference_counter());
-}
-
-/*
- * Functions to override save_sched_clock_state and restore_sched_clock_state
- * functions of x86_platform. The Hyper-V clock counter is reset during
- * suspend-resume and the offset used to measure time needs to be
- * corrected, post resume.
- */
-static void hv_save_sched_clock_state(void)
-{
-	old_save_sched_clock_state();
-	save_hv_clock_tsc_state();
-}
-
-static void hv_restore_sched_clock_state(void)
-{
-	restore_hv_clock_tsc_state();
-	old_restore_sched_clock_state();
-}
-
-static void __init x86_setup_ops_for_tsc_pg_clock(void)
-{
-	if (!(ms_hyperv.features & HV_MSR_REFERENCE_TSC_AVAILABLE))
-		return;
-
-	old_save_sched_clock_state = x86_platform.save_sched_clock_state;
-	x86_platform.save_sched_clock_state = hv_save_sched_clock_state;
-
-	old_restore_sched_clock_state = x86_platform.restore_sched_clock_state;
-	x86_platform.restore_sched_clock_state = hv_restore_sched_clock_state;
-}
-
 #ifdef CONFIG_X86_64
 DEFINE_STATIC_CALL(hv_hypercall, hv_std_hypercall);
 EXPORT_STATIC_CALL_TRAMP_GPL(hv_hypercall);
@@ -739,7 +682,6 @@ static void __init ms_hyperv_init_platform(void)
 
 	/* Register Hyper-V specific clocksource */
 	hv_init_clocksource();
-	x86_setup_ops_for_tsc_pg_clock();
 	hv_vtl_init_platform();
 #endif
 	/*
diff --git a/drivers/clocksource/hyperv_timer.c b/drivers/clocksource/hyperv_timer.c
index e9f5034a1bc8..72b966340a46 100644
--- a/drivers/clocksource/hyperv_timer.c
+++ b/drivers/clocksource/hyperv_timer.c
@@ -537,10 +537,60 @@ static __always_inline void hv_setup_sched_clock(void *sched_clock)
 #elif defined CONFIG_PARAVIRT
 #include <asm/timer.h>
 
+static u64 hv_ref_counter_at_suspend;
+static void (*old_save_sched_clock_state)(void);
+static void (*old_restore_sched_clock_state)(void);
+
+/*
+ * Hyper-V clock counter resets during hibernation. Save and restore clock
+ * offset during suspend/resume, while also considering the time passed
+ * before suspend. This is to make sure that sched_clock using hv tsc page
+ * based clocksource, proceeds from where it left off during suspend and
+ * it shows correct time for the timestamps of kernel messages after resume.
+ */
+static void save_hv_clock_tsc_state(void)
+{
+	hv_ref_counter_at_suspend = hv_read_reference_counter();
+}
+
+static void restore_hv_clock_tsc_state(void)
+{
+	/*
+	 * Adjust the offsets used by hv tsc clocksource to
+	 * account for the time spent before hibernation.
+	 * adjusted value = reference counter (time) at suspend
+	 *                - reference counter (time) now.
+	 */
+	hv_adj_sched_clock_offset(hv_ref_counter_at_suspend - hv_read_reference_counter());
+}
+/*
+ * Functions to override save_sched_clock_state and restore_sched_clock_state
+ * functions of x86_platform. The Hyper-V clock counter is reset during
+ * suspend-resume and the offset used to measure time needs to be
+ * corrected, post resume.
+ */
+static void hv_save_sched_clock_state(void)
+{
+	old_save_sched_clock_state();
+	save_hv_clock_tsc_state();
+}
+
+static void hv_restore_sched_clock_state(void)
+{
+	restore_hv_clock_tsc_state();
+	old_restore_sched_clock_state();
+}
+
 static __always_inline void hv_setup_sched_clock(void *sched_clock)
 {
 	/* We're on x86/x64 *and* using PV ops */
 	paravirt_set_sched_clock(sched_clock);
+
+	old_save_sched_clock_state = x86_platform.save_sched_clock_state;
+	x86_platform.save_sched_clock_state = hv_save_sched_clock_state;
+
+	old_restore_sched_clock_state = x86_platform.restore_sched_clock_state;
+	x86_platform.restore_sched_clock_state = hv_restore_sched_clock_state;
 }
 #else /* !CONFIG_GENERIC_SCHED_CLOCK && !CONFIG_PARAVIRT */
 static __always_inline void hv_setup_sched_clock(void *sched_clock) {}
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:51:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:51:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322379.1588645 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyYY-0007lW-1F; Fri, 29 May 2026 14:51:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322379.1588645; Fri, 29 May 2026 14:51:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyYX-0007lN-Tj; Fri, 29 May 2026 14:51:25 +0000
Received: by outflank-mailman (input) for mailman id 1322379;
 Fri, 29 May 2026 14:51:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3gKYZagYKCYs7tp2yrv33v0t.r31Ct2-stAt00x787.Ct2463ytr8.36v@flex--seanjc.bounces.google.com>)
 id 1wSyYW-0007kc-H4
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:51:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyYV-004dmp-QF
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:51:23 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3gKYZagYKCYs7tp2yrv33v0t.r31Ct2-stAt00x787.Ct2463ytr8.36v@flex--seanjc.bounces.google.com>)
 id 6a19a7e8-bab6-0a2a0a5309dd-0a2a4507a5b2-6
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:51:23 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3gKYZagYKCYs7tp2yrv33v0t.r31Ct2-stAt00x787.Ct2463ytr8.36v@flex--seanjc.bounces.google.com>)
 id 6a19a681-229c-0a2a45070019-d155d6c9a535-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:23 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2bf11699875so19126165ad.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065921; x=1780670721; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=xo1ZeU9J2iCPf0q+fMxBulUq0vgLWRTwNewVlxT3hiI=;
        b=haPhDUovUCuIPDqcXeKF7QCtPBuiOJt21VB/LjLG8QQVon3Kf/Kig1W2QHcYbW1WRT
         grjsPq0rAu8NAE69wsvzu9Ne4CiGc5/+7zSzFqt3oDToSDldQeeTZeXmA93w2Lf53RBj
         g+BRnb4mEr5DoFXwsKQDTIMdJXDrZm16Y2XTZzo+HNiy+RpOarVdOhprd8iRCroEcjBd
         BiFH7WexGEk52SNSmCaXCV7sUwb8/VwfzG8WR8xdFS3c6hU/M72UB0a8DiPYRWJYeuHW
         Mziv8LK/n265n7TTaq69D5UF9ecuI5qcaN+HovUrumx1vVNLZOfM2BkIOrVVmQQupQCc
         b+zA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065921; x=1780670721;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=xo1ZeU9J2iCPf0q+fMxBulUq0vgLWRTwNewVlxT3hiI=;
        b=ZfQWTUT+ZeiKF8NGh8BbIalNxb8vE4C+wwlDOltd9ztVONKyGaaYUEZxI3G4ICxC1t
         cUoZJgl3YwlX3VCV35jo9pj+wzWUnloDhsWPG/Fe/5G9PlYZokbbngOYPfUgvioylKCT
         KKOMMSzMVwUZpWIJAKlVQtNSdp5kOqGgaOKdwWmAuy30AkEjaz+LKDRECiljJSol2gnJ
         8XOukjplJa/Y6Gg0NokO3y4ULm/paFzdhxZtJwWwCj5LBMwmu78RgwOsBAY0LX+Igh1G
         gsY8gZxlUCg9gebUINY8DBkug2xFUCq8LHRFl+awcR/1jj9I7xEynsIgMiQgNjVGJ139
         tuKw==
X-Forwarded-Encrypted: i=1; AFNElJ/bAN5WvqlPz8Wk4i342cJj2nwZj+tmL0Arc/yPCL1GrTE4K6mw0BGolo9sU9wwq/Gm8lwPvMp7qsw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwmusB3eFh+wS9lp3BoxF6OorXUMSbZ/PjwiIgrpf153wiDTxJM
	AmMzn+yT8Ugdj+z9+oSUPfSSRsroMe09wLIwLyNiGvBRoRhNB7LIviqXCHRCQKFtBUExvvDCcgX
	FLo7CbA==
X-Received: from plblc15.prod.google.com ([2002:a17:902:fa8f:b0:2bf:238f:8196])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:2448:b0:2b2:4fc1:f653
 with SMTP id d9443c01a7336-2bf20d4466cmr29629345ad.3.1780065920784; Fri, 29
 May 2026 07:45:20 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:44:11 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-25-seanjc@google.com>
Subject: [PATCH v4 24/47] clocksource: hyper-v: Don't save/restore TSC offset
 when using HV sched_clock
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-ef75cf/1780065923-08F66C48-1232BD87/0/0
X-purgate-type: clean
X-purgate-size: 2763

Now that Hyper-V overrides the sched_clock save/restore hooks if and only
sched_clock itself is set to the Hyper-V reference counter, drop the
invocation of the "old" save/restore callbacks.  When the registration of
the PV sched_clock was done separately from overriding the save/restore
hooks, it was possible for Hyper-V to clobber the TSC save/restore
callbacks without actually switching to the Hyper-V refcounter.

Enabling a PV sched_clock is a one-way street, i.e. the kernel will never
revert to using TSC for sched_clock, and so there is no need to invoke the
TSC save/restore hooks (and if there was, it belongs in common PV code).

Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Tested-by: Michael Kelley <mhklinux@outlook.com>
Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Acked-by: Wei Liu <wei.liu@kernel.org>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 drivers/clocksource/hyperv_timer.c | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/drivers/clocksource/hyperv_timer.c b/drivers/clocksource/hyperv_timer.c
index 69c1c7264e5d..ac1d9f9c381c 100644
--- a/drivers/clocksource/hyperv_timer.c
+++ b/drivers/clocksource/hyperv_timer.c
@@ -527,9 +527,6 @@ static __always_inline void hv_setup_sched_clock(void *sched_clock)
 #include <asm/timer.h>
 
 static u64 hv_ref_counter_at_suspend;
-static void (*old_save_sched_clock_state)(void);
-static void (*old_restore_sched_clock_state)(void);
-
 /*
  * Hyper-V clock counter resets during hibernation. Save and restore clock
  * offset during suspend/resume, while also considering the time passed
@@ -539,8 +536,6 @@ static void (*old_restore_sched_clock_state)(void);
  */
 static void hv_save_sched_clock_state(void)
 {
-	old_save_sched_clock_state();
-
 	hv_ref_counter_at_suspend = hv_read_reference_counter();
 }
 
@@ -553,8 +548,6 @@ static void hv_restore_sched_clock_state(void)
 	 *                - reference counter (time) now.
 	 */
 	hv_sched_clock_offset -= (hv_ref_counter_at_suspend - hv_read_reference_counter());
-
-	old_restore_sched_clock_state();
 }
 
 static __always_inline void hv_setup_sched_clock(void *sched_clock)
@@ -562,10 +555,7 @@ static __always_inline void hv_setup_sched_clock(void *sched_clock)
 	/* We're on x86/x64 *and* using PV ops */
 	paravirt_set_sched_clock(sched_clock);
 
-	old_save_sched_clock_state = x86_platform.save_sched_clock_state;
 	x86_platform.save_sched_clock_state = hv_save_sched_clock_state;
-
-	old_restore_sched_clock_state = x86_platform.restore_sched_clock_state;
 	x86_platform.restore_sched_clock_state = hv_restore_sched_clock_state;
 }
 #else /* !CONFIG_GENERIC_SCHED_CLOCK && !CONFIG_PARAVIRT */
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:51:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:51:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322380.1588655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyYa-000809-8v; Fri, 29 May 2026 14:51:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322380.1588655; Fri, 29 May 2026 14:51:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyYa-0007zx-4b; Fri, 29 May 2026 14:51:28 +0000
Received: by outflank-mailman (input) for mailman id 1322380;
 Fri, 29 May 2026 14:51:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3gaYZagYKCYw8uq3zsw44w1u.s42Du3-tuBu11y898.Du3574zus9.47w@flex--seanjc.bounces.google.com>)
 id 1wSyYY-0007tP-Lm
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:51:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyYY-00FwC8-2H
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:51:26 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3gaYZagYKCYw8uq3zsw44w1u.s42Du3-tuBu11y898.Du3574zus9.47w@flex--seanjc.bounces.google.com>)
 id 6a19a7e3-e002-0a2a0a5209dd-0a2a450883d6-22
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:51:26 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3gaYZagYKCYw8uq3zsw44w1u.s42Du3-tuBu11y898.Du3574zus9.47w@flex--seanjc.bounces.google.com>)
 id 6a19a684-63b5-0a2a45080019-d155d6c9c055-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:25 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2bd6aeb3637so312732715ad.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065923; x=1780670723; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=n/IQNTw72HzXqO6AWPqeABL90E8LQ8oyD69HI8J1qOQ=;
        b=ojBkpF6W2baqyTeNgqOxc/b5IlAvrH2Ty69XTLsARjbf7hs0DSekHij6xD5QIlK2JN
         tK5xO7xZfmz3HL681xzOgcreyQxr73jLPAY8Fjt00B3Upafx4/exVzNACqGMHb3Gt32N
         mJ2GHGVXINeLEATn+Tv9gyytN/FIe8edWEldphtwWDxbEGfPjr5kOySqcmxE7e2aL4Wp
         nulPHSIa6s0CTEj+S+DoA3ELvcLLzOCWwd0Zq5GIwNzRQr7C4i1RGYuv0E/BT9g4q7lF
         H8Dw8TLFdVFaH50t81JnqaS6O6uZOFm+aNgM0WlOtse+tPlatf8RTZRzoyT0/Z9yHTs7
         p7fg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065923; x=1780670723;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=n/IQNTw72HzXqO6AWPqeABL90E8LQ8oyD69HI8J1qOQ=;
        b=Z0Ae5tmPIRjs/7aa/W7udQ57CExp5ZCA5OfxS/Bxy4ivCM7lg0wRu30pVOecH8mVEO
         PIT54+Y7LwK6QysfU84Nb1vOtDxwZD9hSX6P/+dMqSmyttOTwfkfbZIba1+JE5CMpcGX
         2PWoX4mzpkKKy+08x3MmOmKbngUskdQZCM2Pj3j7CnYiEBzYbfE8fD/YaLWhzSfV/jeA
         MrEb8edp1BqKTbSl4DYb/07qVG2NpC7H8KX8/CXZTwhQ6IsJmUuhcZtnP/wgddPCHJD5
         DNVkPaWn9INTzwgxSuAP6iwl+LTIR3Ouen5bNCmc5gyJMECbxJYRNcH3Qaxz042Cc9j4
         wplA==
X-Forwarded-Encrypted: i=1; AFNElJ/Tons1n7rBM2wcanKbZV1JkPD5eB1JR8pjLz96EXwUJn2NiCWYAd2UMnCA12/lqoIP0fh3TZbDiFY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyxovQNdT2VafnzaaiZE7a9nzsj5R5GqJtOKGj0QtkvJaBB1MbC
	469sclVUk6nevLximkxtoNYsd1jUqk7RN/7Q+2NgJHLSH7p9My2ALW4eIhAZiGFnNLF8hy8QrFn
	m2J/L3w==
X-Received: from plbbj2.prod.google.com ([2002:a17:902:8502:b0:2bf:1b54:1fc4])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:906:b0:2bf:13b6:dafd
 with SMTP id d9443c01a7336-2bf367ddeecmr1314895ad.18.1780065921988; Fri, 29
 May 2026 07:45:21 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:44:12 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-26-seanjc@google.com>
Subject: [PATCH v4 25/47] x86/kvmclock: Setup kvmclock for secondary CPUs iff CONFIG_SMP=y
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-c1860d/1780065925-C5784DB1-194D7679/0/0
X-purgate-type: clean
X-purgate-size: 1438

Gate kvmclock's secondary CPU code on CONFIG_SMP, not CONFIG_X86_LOCAL_APIC.
Originally, kvmclock piggybacked PV APIC ops to setup secondary CPUs.
When that wart was fixed by commit df156f90a0f9 ("x86: Introduce
x86_cpuinit.early_percpu_clock_init hook"), the dependency on a local APIC
got carried forward unnecessarily.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 69a15fbfb779..13c728444e12 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -186,7 +186,7 @@ static void kvm_restore_sched_clock_state(void)
 	kvm_register_clock("primary cpu clock, resume");
 }
 
-#ifdef CONFIG_X86_LOCAL_APIC
+#ifdef CONFIG_SMP
 static void kvm_setup_secondary_clock(void)
 {
 	kvm_register_clock("secondary cpu clock");
@@ -326,7 +326,7 @@ void __init kvmclock_init(bool prefer_tsc)
 		x86_init.hyper.get_cpu_khz = kvmclock_get_tsc_khz;
 	x86_platform.get_wallclock = kvm_get_wallclock;
 	x86_platform.set_wallclock = kvm_set_wallclock;
-#ifdef CONFIG_X86_LOCAL_APIC
+#ifdef CONFIG_SMP
 	x86_cpuinit.early_percpu_clock_init = kvm_setup_secondary_clock;
 #endif
 	x86_platform.save_sched_clock_state = kvm_save_sched_clock_state;
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:51:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:51:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322381.1588657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyYa-00083T-HG; Fri, 29 May 2026 14:51:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322381.1588657; Fri, 29 May 2026 14:51:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyYa-00083I-De; Fri, 29 May 2026 14:51:28 +0000
Received: by outflank-mailman (input) for mailman id 1322381;
 Fri, 29 May 2026 14:51:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3g6YZagYKCY4Aws51uy66y3w.u64Fw5-vwDw330ABA.Fw57961wuB.69y@flex--seanjc.bounces.google.com>)
 id 1wSyYZ-0007yn-7W
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:51:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyYY-004dmp-KG
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:51:26 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3g6YZagYKCY4Aws51uy66y3w.u64Fw5-vwDw330ABA.Fw57961wuB.69y@flex--seanjc.bounces.google.com>)
 id 6a19a7e8-bab6-0a2a0a5309dd-0a2a4507a5b2-16
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:51:26 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3g6YZagYKCY4Aws51uy66y3w.u64Fw5-vwDw330ABA.Fw57961wuB.69y@flex--seanjc.bounces.google.com>)
 id 6a19a684-229c-0a2a45070019-d155d6cab834-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:45:25 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2bf3636d6c0so496775ad.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 07:45:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780065924; x=1780670724; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=hOb9yslO01uXOZXUolja+Wepq3bohepu/IzG0IJr7BI=;
        b=vurDZgoRlc0qAJH4aRl3xzY8tuibBnYC01ErhKSR0986XLG/0uEbCGOHECt/UcEKUP
         vzM1mwTqn1iFAKfVIqwPblsQjCpsbDP5xOkSTLcdU551HfgaV/L6CPE/UTFJ82CErwzz
         ML+2hLhJq2eCZT2/3klTwRryFbM4eM93fVXIaWWcvOSVOO0TWAaOEBjPo5tM1es/Uznj
         px7sDhj0JdEdE65YQDjL6Y5ro7Cs1QnePC30yDC458aNvPT+VEQdgO4bw8McLD6OidAD
         501HjqnNqh4fRy1JtgDX/8b0Hpx9/brj/S2lh8OclDwAOL2yUP2gaayPTIQz9ddnhqy3
         bOYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780065924; x=1780670724;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=hOb9yslO01uXOZXUolja+Wepq3bohepu/IzG0IJr7BI=;
        b=TU/6T1z/032gWd6NHvAQ92Hi9htMBqtRkKPkHkvMJWq9YXBjeGqDnwc6z/QBeybo90
         DmDHbp4zg9dBg7OoedWLyBqOHXqZysFc7gyFKLqPdy+xwplqQSioCat2Q6c4BOI+Z9GN
         qkeD4hnyQN4yRBBSVa5YMBOu6Q/YP8TrtkYVnGZs0RXASBNhiocrgJla0HQRTUSx9IXP
         phzMjmxTizeTbo4RrjLvw8Ed+2TQAyIcc8lvjDJv6m4EPMmKCQuQ7wR3deFupXypSaUY
         Ecu0p8ZBVA1zCTlaTcb2S4jTCxMLi855VYexdQATa2PV+cbal22OjF+oH2joe9cMREEG
         pXRQ==
X-Forwarded-Encrypted: i=1; AFNElJ/2JpaZssvBRDIIrhzw2wyOpuwxtXRMUZXa1ndL2WjO/R/uhO3sfbq1X9UmJiazn5JRbPD+LVZ6YWw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywj0Xd6zIEzBIG9+D8KsN2kGtyc/mDr94jZ2XfXTmXk9/iLan+Q
	vwoHSb6XLjeWJE4auRGJ59xqNvqiauY3G1LA1P08qCetQrLvy/nJrvSHRjB9fhCQxViyxL2Zlq5
	AUzqh3A==
X-Received: from plbkv13.prod.google.com ([2002:a17:903:28cd:b0:2b7:d398:c384])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:ea0c:b0:2bd:6327:b4f5
 with SMTP id d9443c01a7336-2bf368be464mr776115ad.40.1780065923557; Fri, 29
 May 2026 07:45:23 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 07:44:13 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529144435.704127-27-seanjc@google.com>
Subject: [PATCH v4 26/47] x86/kvm: Don't disable kvmclock on BSP in syscore_suspend()
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-ef75cf/1780065925-0A36CC48-441B0394/0/0
X-purgate-type: clean
X-purgate-size: 5413

Don't disable kvmclock on the BSP during syscore_suspend(), as the BSP's
clock is NOT restored during syscore_resume(), but is instead restored
earlier via the sched_clock restore callback.  If suspend is aborted, e.g.
due to a late wakeup, the BSP will run without its clock enabled, which
"works" only because KVM-the-hypervisor is kind enough to not clobber the
shared memory when the clock is disabled.  But over time, the BSP's view
of time will drift from APs.

Plumb in an "action" to KVM-as-a-guest and kvmclock code in preparation
for additional cleanups to kvmclock's suspend/resume logic.

Fixes: c02027b5742b ("x86/kvm: Disable kvmclock on all CPUs on shutdown")
Cc: stable@vger.kernel.org
Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/kvm_para.h |  8 +++++++-
 arch/x86/kernel/kvm.c           | 15 ++++++++-------
 arch/x86/kernel/kvmclock.c      | 31 +++++++++++++++++++++++++------
 3 files changed, 40 insertions(+), 14 deletions(-)

diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h
index 4a49fc286b4c..08686ff19caa 100644
--- a/arch/x86/include/asm/kvm_para.h
+++ b/arch/x86/include/asm/kvm_para.h
@@ -118,8 +118,14 @@ static inline long kvm_sev_hypercall3(unsigned int nr, unsigned long p1,
 }
 
 #ifdef CONFIG_KVM_GUEST
+enum kvm_guest_cpu_action {
+	KVM_GUEST_BSP_SUSPEND,
+	KVM_GUEST_AP_OFFLINE,
+	KVM_GUEST_SHUTDOWN,
+};
+
 void kvmclock_init(bool prefer_tsc);
-void kvmclock_disable(void);
+void kvmclock_cpu_action(enum kvm_guest_cpu_action action);
 bool kvm_para_available(void);
 unsigned int kvm_arch_para_features(void);
 unsigned int kvm_arch_para_hints(void);
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index c81a24d0efdf..fd1c417b4f9b 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -460,7 +460,7 @@ static void __init sev_map_percpu_data(void)
 	}
 }
 
-static void kvm_guest_cpu_offline(bool shutdown)
+static void kvm_guest_cpu_offline(enum kvm_guest_cpu_action action)
 {
 	kvm_disable_steal_time();
 	if (kvm_para_has_feature(KVM_FEATURE_PV_EOI))
@@ -468,9 +468,10 @@ static void kvm_guest_cpu_offline(bool shutdown)
 	if (kvm_para_has_feature(KVM_FEATURE_MIGRATION_CONTROL))
 		wrmsrq(MSR_KVM_MIGRATION_CONTROL, 0);
 	kvm_pv_disable_apf();
-	if (!shutdown)
+	if (action != KVM_GUEST_SHUTDOWN)
 		apf_task_wake_all();
-	kvmclock_disable();
+
+	kvmclock_cpu_action(action);
 }
 
 static int kvm_cpu_online(unsigned int cpu)
@@ -726,7 +727,7 @@ static int kvm_cpu_down_prepare(unsigned int cpu)
 	unsigned long flags;
 
 	local_irq_save(flags);
-	kvm_guest_cpu_offline(false);
+	kvm_guest_cpu_offline(KVM_GUEST_AP_OFFLINE);
 	local_irq_restore(flags);
 	return 0;
 }
@@ -737,7 +738,7 @@ static int kvm_suspend(void *data)
 {
 	u64 val = 0;
 
-	kvm_guest_cpu_offline(false);
+	kvm_guest_cpu_offline(KVM_GUEST_BSP_SUSPEND);
 
 #ifdef CONFIG_ARCH_CPUIDLE_HALTPOLL
 	if (kvm_para_has_feature(KVM_FEATURE_POLL_CONTROL))
@@ -768,7 +769,7 @@ static struct syscore kvm_syscore = {
 
 static void kvm_pv_guest_cpu_reboot(void *unused)
 {
-	kvm_guest_cpu_offline(true);
+	kvm_guest_cpu_offline(KVM_GUEST_SHUTDOWN);
 }
 
 static int kvm_pv_reboot_notify(struct notifier_block *nb,
@@ -792,7 +793,7 @@ static struct notifier_block kvm_pv_reboot_nb = {
 #ifdef CONFIG_CRASH_DUMP
 static void kvm_crash_shutdown(struct pt_regs *regs)
 {
-	kvm_guest_cpu_offline(true);
+	kvm_guest_cpu_offline(KVM_GUEST_SHUTDOWN);
 	native_machine_crash_shutdown(regs);
 }
 #endif
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 13c728444e12..13c4be3a7f0a 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -177,8 +177,22 @@ static void kvm_register_clock(char *txt)
 	pr_debug("kvm-clock: cpu %d, msr %llx, %s", smp_processor_id(), pa, txt);
 }
 
+static void kvmclock_disable(void)
+{
+	if (msr_kvm_system_time)
+		native_write_msr(msr_kvm_system_time, 0);
+}
+
 static void kvm_save_sched_clock_state(void)
 {
+	/*
+	 * Stop host writes to kvmclock immediately prior to suspend/hibernate.
+	 * If the system is hibernating, then kvmclock will likely reside at a
+	 * different physical address when the system awakens, and host writes
+	 * to the old address prior to reconfiguring kvmclock would clobber
+	 * random memory.
+	 */
+	kvmclock_disable();
 }
 
 static void kvm_restore_sched_clock_state(void)
@@ -186,6 +200,17 @@ static void kvm_restore_sched_clock_state(void)
 	kvm_register_clock("primary cpu clock, resume");
 }
 
+void kvmclock_cpu_action(enum kvm_guest_cpu_action action)
+{
+	/*
+	 * Don't disable kvmclock on the BSP during suspend.  If kvmclock is
+	 * being used for sched_clock, then it needs to be kept alive until the
+	 * last minute, and restored as quickly as possible after resume.
+	 */
+	if (action != KVM_GUEST_BSP_SUSPEND)
+		kvmclock_disable();
+}
+
 #ifdef CONFIG_SMP
 static void kvm_setup_secondary_clock(void)
 {
@@ -193,12 +218,6 @@ static void kvm_setup_secondary_clock(void)
 }
 #endif
 
-void kvmclock_disable(void)
-{
-	if (msr_kvm_system_time)
-		native_write_msr(msr_kvm_system_time, 0);
-}
-
 static void __init kvmclock_init_mem(void)
 {
 	unsigned long ncpus;
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 14:57:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 14:57:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322414.1588672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyeS-0001DR-7C; Fri, 29 May 2026 14:57:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322414.1588672; Fri, 29 May 2026 14:57:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyeS-0001DK-4R; Fri, 29 May 2026 14:57:32 +0000
Received: by outflank-mailman (input) for mailman id 1322414;
 Fri, 29 May 2026 14:57:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e743d7740000d780@swg.vates.tech>)
 id 1wSyeP-0001DC-3I
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 14:57:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyeO-00FxFt-Cj
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 16:57:28 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e743d7740000d780@swg.vates.tech>)
 id 6a19a94d-e002-0a2a0a5209dd-0a2a4509b086-12
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:57:28 +0200
Received: from [185.255.28.34] (helo=prod-mta-13.swg-srv.net)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <prod-mta-13.8631fc262581453bbf619ec5b2062170.19e743d7740000d780@swg.vates.tech>)
 id 6a19a957-2497-0a2a45090019-b9ff1c229069-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 16:57:27 +0200
Received: from mail2.vates.fr ([37.26.189.201] mail2.vates.fr)
 (Authenticated sender:
 8631fc262581453bbf619ec5b2062170/smtp/7773de5a-2839-4720-82ee-e06722ae1d3e)
 by prod-mta-13.swg-srv.net (ZoneMTA - prod-mta-13) with ESMTPSA id
 19e743d7740000d780.006 for <xen-devel@lists.xenproject.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 29 May 2026 14:57:25 +0000
Received: from l14 (unknown [82.67.99.167])
 (Authenticated sender: anthony.perard)
 by mail2.vates.fr (Postfix) with ESMTPSA id 12C5186C10;
 Fri, 29 May 2026 16:57:25 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech;
 q=dns/txt; s=selector1; bh=/bm/nifj0oOlN12HMaNetrF3sTQ1SUNAb3WqvE+SDGI=;
 h=from:subject:date:message-id:to:cc:mime-version:content-type:in-reply-to:references:feedback-id;
 b=Q5DUcjVTIPSParndFI2/cSoI1SypV3aFewKfNLAIZOLRP4pteVr4Wp2fD3aNAhtiNex0SYndD
 JT72fDoMx+xbxLj37JZwkzYvMtSjsrUPcVNdtCHF6LI9VWeItER8RiWT2k11S+apKKVMWhRHBng
 358OIOaSaFPmY9/doLstEXwpRNgWNVFr9g8NMTHZ52WsKQCePIfo8Xnn+qPVpGdIZFzw43Vvdw8
 mGrY1LLLBdK+eaKJPm8MoOVpMQp1hzngdXMHcYUR83Aw9/e+7QGHG7ek7gEggRsxjmE89BkoFie
 jAjeBQB9NwdP2tvDq0mZXWdaGi8puyckE2AF0bh8e0kQ==
X-Zone-Loop: 15a4ef35a6927c39a9b04bbbf06621daf9fd5cfe2fb5
x-campaign-type: default
x-transaction-id: 7916c5b9-28ac-474b-a96d-c118acc06221
x-swg-uid: 01-c4b277ca-ce4a-4670-b112-6a4f57d10b24
X-Mailer: Sweego
Message-ID:
 <1780066645.8631fc262581453bbf619ec5b2062170.19e743d7740000d780@vates.tech>
x-swg-bid: 1780066645.8631fc262581453bbf619ec5b2062170.19e743d7740000d780
Feedback-ID: default:8631fc262581453bbf619ec5b2062170:Sweego
x-campaign-id: default
x-client-id: 8631fc262581453bbf619ec5b2062170
X-Originating-IP: [37.26.189.201]
Date: Fri, 29 May 2026 16:57:24 +0200
From: Anthony PERARD <anthony.perard@vates.tech>
To: Cody Zuschlag <cody.zuschlag@gmail.com>
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	michal.orzel@amd.com, jbeulich@suse.com, julien@xen.org,
	roger.pau@citrix.com, sstabellini@kernel.org
Subject: Re: [PATCH v3] docs/process: document AI-assisted patch tags
References: <20260527174528.27903-1-cody.zuschlag@gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <20260527174528.27903-1-cody.zuschlag@gmail.com>
X-BM-Disclaimer: Yes
Content-Type: multipart/alternative; boundary="-=Part.17c0.4f7d27eb6f454136.19e743d74f9.2a7d77ea9eefc69a=-"
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1780066645242
X-purgate-ID: tlsNG-bad1c0/1780066647-89174A53-67DC28CD/0/0
X-purgate-type: clean
X-purgate-size: 761

---=Part.17c0.4f7d27eb6f454136.19e743d74f9.2a7d77ea9eefc69a=-
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, May 27, 2026 at 07:45:28PM +0200, Cody Zuschlag wrote:
> Add documentation for the Assisted-by tag to clarify how
> AI-assisted tooling may be disclosed in Xen patches=2E
>=20
> The guidance follows the Linux kernel documentation=2E
>=20
> Assisted-by: ChatGPT:gpt-5=2E5
> Signed-off-by: Cody Zuschlag <cody=2Ezuschlag@gmail=2Ecom>

Acked-by: Anthony PERARD <anthony=2Eperard@vates=2Etech>

Thanks,


-- 
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vate=
s solutions

web: https://vates=2Etech
---=Part.17c0.4f7d27eb6f454136.19e743d74f9.2a7d77ea9eefc69a=---


From xen-devel-bounces@lists.xenproject.org Fri May 29 15:07:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:07:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322429.1588681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSynh-0004ee-2o; Fri, 29 May 2026 15:07:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322429.1588681; Fri, 29 May 2026 15:07:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyng-0004eX-VM; Fri, 29 May 2026 15:07:04 +0000
Received: by outflank-mailman (input) for mailman id 1322429;
 Fri, 29 May 2026 15:07:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3k6sZagYKCagaMIVRKOWWOTM.KWUfMV-LMdMTTQaba.fMVXZWRMKb.WZO@flex--seanjc.bounces.google.com>)
 id 1wSynf-0004dK-EY
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:07:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyne-00Fyrx-HD
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:07:02 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3k6sZagYKCagaMIVRKOWWOTM.KWUfMV-LMdMTTQaba.fMVXZWRMKb.WZO@flex--seanjc.bounces.google.com>)
 id 6a19ab8e-2eae-0a2a0a5409dd-0a2a4505ad12-28
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:07:02 +0200
Received: from [209.85.215.201] (helo=mail-pg1-f201.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3k6sZagYKCagaMIVRKOWWOTM.KWUfMV-LMdMTTQaba.fMVXZWRMKb.WZO@flex--seanjc.bounces.google.com>)
 id 6a19ab94-aaa8-0a2a45050019-d155d7c9cc69-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:07:02 +0200
Received: by mail-pg1-f201.google.com with SMTP id
 41be03b00d2f7-c85798977dcso406674a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:07:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067220; x=1780672020; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=xaVkfsA2sOgFELwC+9kgheEWN7jnZ1tVtkSLe6gYY/I=;
        b=FuB4ZC1axNwZoIZvrLnLzzsnhFj0j0sofU1qpw57UV6dkOSDc1G5Gw6KHIpr+nb4Rp
         fNBKAui3BZeFch9cbjucDHzvYGnJRbdYk8pdW8CC8fILes+pDqf6ZyU+oT2fx3G3lx2c
         sTJSXwGJFyY+FStyuDQuRbWgXUZf+/6h3CGVtLJOUjNlCN3AXAseZ5CLGbhy47qLM3PE
         mJ59KpMT2zwVhy2TdBKBIPjkD2iC5QlZT4c/zZ4yugwmfaH19btl5F2ZWGYIsoMWSaoe
         Ef0Gkos4kFpAl2lvP5R7AtVXb15+0KVR/Gz4U4/shDpMTfuuvBVN/RprglTrA8GHhXvi
         DxdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067220; x=1780672020;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=xaVkfsA2sOgFELwC+9kgheEWN7jnZ1tVtkSLe6gYY/I=;
        b=lSOJ2H4+BP7LjJ3PoDXexZhveJc4WSz6vmLsn+YLwG5m8vqhk3xaMLXv9QW214C0M1
         DURiYt1uq/fP4Z6+xpw3l0LgUKZag3NaD0PFsJDUMImrkaQpptu1/JFkekNf5SgWl5gc
         O8rhbmWAoFvORq8gHhEuzhe7h1ivNj34QTC/yRlLlcIJ1tA9iTnikdNi2A4KhFNyWgns
         SUq7E+xRmjPnJQY8yX9AJBNA4arizVSJk4SgH3O29EXC9svO8oUMhSGaylDyu/+hxEWB
         Jlone18iwjCoQzbNe8a/c3SOBtVFvnV3hBhroldzXJB9O3BBZ+Fgeb39hkTY+lBa+V72
         GfsQ==
X-Forwarded-Encrypted: i=1; AFNElJ/Z5kpQYr7AAn7mHsA+B6jb+eTgDQhzR4+5wM0F4LNKnCrDhfWh4579Mgv1DWc2ZtIrIV95A0B20FY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzq0jaLHWFBt0iydnLPNsISjPhEW9pDvX3tIUv2YSDYX70UFNcQ
	DCHUnRiO1+k54On43RIxg2t9yg9mmlil297b4ue1Xl9PTwA6hyvXe+h7l0kescwJyg61spGN5XG
	x/qD1hQ==
X-Received: from pfkk14.prod.google.com ([2002:aa7:90ce:0:b0:82f:6245:a6ec])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:8088:b0:838:c01a:7a50
 with SMTP id d2e1a72fcca58-84212ce8ccamr3369227b3a.30.1780067219938; Fri, 29
 May 2026 08:06:59 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:06:31 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150631.713818-1-seanjc@google.com>
Subject: [PATCH v4 27/47] x86/paravirt: Remove unnecessary PARAVIRT=n stub for paravirt_set_sched_clock()
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-c201ff/1780067222-D3D67443-91E7D5EE/0/0
X-purgate-type: clean
X-purgate-size: 1570

Remove the unnecessary paravirt_set_sched_clock() stub for PARAVIRT=n, as
all callers are gated by PARAVIRT=y.  Eliminating the stub will avoid a
pile of pointless churn as the "real" implementation evolves.

No functional change intended.

Fixes: 39965afb1151 ("x86/paravirt: Move paravirt_sched_clock() related code into tsc.c")
Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/timer.h | 3 +++
 arch/x86/kernel/tsc.c        | 1 -
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index fda18bcb19b4..c71b466d6ace 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -12,7 +12,10 @@ extern void recalibrate_cpu_khz(void);
 extern int no_timer_check;
 
 extern bool using_native_sched_clock(void);
+
+#ifdef CONFIG_PARAVIRT
 void paravirt_set_sched_clock(u64 (*func)(void));
+#endif
 
 /*
  * We use the full linear equation: f(x) = a + b*x, in order to allow
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index bdff8c988866..888bd1cbd9bc 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -288,7 +288,6 @@ void paravirt_set_sched_clock(u64 (*func)(void))
 u64 sched_clock_noinstr(void) __attribute__((alias("native_sched_clock")));
 
 bool using_native_sched_clock(void) { return true; }
-void paravirt_set_sched_clock(u64 (*func)(void)) { }
 #endif
 
 notrace u64 sched_clock(void)
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:07:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:07:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322435.1588690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyoL-0005Gr-A5; Fri, 29 May 2026 15:07:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322435.1588690; Fri, 29 May 2026 15:07:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyoL-0005Gk-6v; Fri, 29 May 2026 15:07:45 +0000
Received: by outflank-mailman (input) for mailman id 1322435;
 Fri, 29 May 2026 15:07:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3vKsZagYKCdEF1xA6z3BB381.zB9K1A-01I1885FGF.K1ACEB61zG.BE3@flex--seanjc.bounces.google.com>)
 id 1wSyoJ-0005GY-Py
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:07:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyoJ-009KAu-6V
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:07:43 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3vKsZagYKCdEF1xA6z3BB381.zB9K1A-01I1885FGF.K1ACEB61zG.BE3@flex--seanjc.bounces.google.com>)
 id 6a19abbc-5cb7-0a2a0a5109dd-0a2a4505e3a0-2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:07:43 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3vKsZagYKCdEF1xA6z3BB381.zB9K1A-01I1885FGF.K1ACEB61zG.BE3@flex--seanjc.bounces.google.com>)
 id 6a19abbd-aaa8-0a2a45050019-d155d6c9b8e3-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:07:42 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2bf3636d6c0so733185ad.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:07:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067261; x=1780672061; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=QESOUvdfZXleHQZ88nzDXbmZWnZIugt5BTjJEx5ZF5Q=;
        b=fJ4iGkuHsgwOx+Oex0Nz0zwyQti6WOPYX1juuqQQdpWbLutmBVVWsOGSIKr7DpehGQ
         brFg+CPfIUwEQ5q+JuStPPB20AGOABQkZT1ag963B3yoA0aGctBeooAqh/bGWnWH5Duj
         f8MVcGOyBxQcfF0i46xutK9UDKatnJHfDjkDr3RyuslYph1DHi+fHsNtQzBobkP/eUh5
         i6bz4gaLFN3cfOpgymYjnEmzEbaQpE5MlmNrUnWDpS6a5KuXrW7ZgWlgFMtfOi20E483
         H7mHU/7/ucyokqr2smO3mc0zYfws9vt+wUpWqGg7A/XGJ9l1qt7YcI0shL7vS/4JWSl8
         KS7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067261; x=1780672061;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=QESOUvdfZXleHQZ88nzDXbmZWnZIugt5BTjJEx5ZF5Q=;
        b=GScFbq/G8sZpEKwHjM0QLDZ2/+zPh2obQ6MonUAyd7JtC7tGO5nUvri9B2DPJnn97E
         U8JthOMsFQhLjY7Sai7g21Ie/hvb9+UwBNrJLbTUbFpurA0KcUnckH2m60NdAi+3QKY2
         t9WcpCAI0Xntw46hZ2HKve/J5rKTyOLOOSGMotkofiGNlMC+wzcorzzQF5qMeVCCynD8
         i1jlabyMXJNHwApRodmSzH9zPSgmt9Fv6RlBoMNledSU5EREG5vnl8qY7C4wZEm6uXxf
         /oCzEd4x45ebxp0qsiQym0ol5YZHrVM+Ff9yzo6pkO7+t7JdCKhSpCcd3/Szktquy7GH
         d5cg==
X-Forwarded-Encrypted: i=1; AFNElJ8z48p/5/s70VQGnT/1VADsZpE8s9JCkHvKVJf1H5yhX7vFTIuDgq4IZm+z+ruOQ/KEQ+ZdHyaCSV0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAxNizkYD/3yolGpHXwTq2t5fy4bkEKl8NcV+Q81+Dq4FHZoJz
	zGCGTVwpdERHMqAwHAA8UeARX0NZrQAJLIscQyAZDb9SdxJ6wMeRLC604l+anWJw8PbOTye+9cb
	VsV5zJg==
X-Received: from pgau6.prod.google.com ([2002:a05:6a02:2d86:b0:c85:828a:ba9a])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:692:b0:3aa:55eb:a5fb
 with SMTP id adf61e73a8af0-3b411dd1faamr4128146637.23.1780067260421; Fri, 29
 May 2026 08:07:40 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:07:20 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150720.714067-1-seanjc@google.com>
Subject: [PATCH v4 29/47] x86/kvmclock: Move sched_clock save/restore helpers
 up in kvmclock.c
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-c201ff/1780067263-E119B443-1A031807/0/0
X-purgate-type: clean
X-purgate-size: 4418

Move kvmclock's sched_clock save/restore helper "up" so that they can
(eventually) be referenced by kvm_sched_clock_init().

No functional change intended.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 108 ++++++++++++++++++-------------------
 1 file changed, 54 insertions(+), 54 deletions(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 4e50e75ff43d..0d4f2cf97246 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -71,6 +71,25 @@ static int kvm_set_wallclock(const struct timespec64 *now)
 	return -ENODEV;
 }
 
+static void kvm_register_clock(char *txt)
+{
+	struct pvclock_vsyscall_time_info *src = this_cpu_hvclock();
+	u64 pa;
+
+	if (!src)
+		return;
+
+	pa = slow_virt_to_phys(&src->pvti) | 0x01ULL;
+	wrmsrq(msr_kvm_system_time, pa);
+	pr_debug("kvm-clock: cpu %d, msr %llx, %s", smp_processor_id(), pa, txt);
+}
+
+static void kvmclock_disable(void)
+{
+	if (msr_kvm_system_time)
+		native_write_msr(msr_kvm_system_time, 0);
+}
+
 static u64 kvm_clock_read(void)
 {
 	u64 ret;
@@ -91,6 +110,30 @@ static noinstr u64 kvm_sched_clock_read(void)
 	return pvclock_clocksource_read_nowd(this_cpu_pvti()) - kvm_sched_clock_offset;
 }
 
+static void kvm_save_sched_clock_state(void)
+{
+	/*
+	 * Stop host writes to kvmclock immediately prior to suspend/hibernate.
+	 * If the system is hibernating, then kvmclock will likely reside at a
+	 * different physical address when the system awakens, and host writes
+	 * to the old address prior to reconfiguring kvmclock would clobber
+	 * random memory.
+	 */
+	kvmclock_disable();
+}
+
+#ifdef CONFIG_SMP
+static void kvm_setup_secondary_clock(void)
+{
+	kvm_register_clock("secondary cpu clock");
+}
+#endif
+
+static void kvm_restore_sched_clock_state(void)
+{
+	kvm_register_clock("primary cpu clock, resume");
+}
+
 static inline void kvm_sched_clock_init(bool stable)
 {
 	kvm_sched_clock_offset = kvm_clock_read();
@@ -103,6 +146,17 @@ static inline void kvm_sched_clock_init(bool stable)
 		sizeof(((struct pvclock_vcpu_time_info *)NULL)->system_time));
 }
 
+void kvmclock_cpu_action(enum kvm_guest_cpu_action action)
+{
+	/*
+	 * Don't disable kvmclock on the BSP during suspend.  If kvmclock is
+	 * being used for sched_clock, then it needs to be kept alive until the
+	 * last minute, and restored as quickly as possible after resume.
+	 */
+	if (action != KVM_GUEST_BSP_SUSPEND)
+		kvmclock_disable();
+}
+
 /*
  * If we don't do that, there is the possibility that the guest
  * will calibrate under heavy load - thus, getting a lower lpj -
@@ -161,60 +215,6 @@ static struct clocksource kvm_clock = {
 	.enable	= kvm_cs_enable,
 };
 
-static void kvm_register_clock(char *txt)
-{
-	struct pvclock_vsyscall_time_info *src = this_cpu_hvclock();
-	u64 pa;
-
-	if (!src)
-		return;
-
-	pa = slow_virt_to_phys(&src->pvti) | 0x01ULL;
-	wrmsrq(msr_kvm_system_time, pa);
-	pr_debug("kvm-clock: cpu %d, msr %llx, %s", smp_processor_id(), pa, txt);
-}
-
-static void kvmclock_disable(void)
-{
-	if (msr_kvm_system_time)
-		native_write_msr(msr_kvm_system_time, 0);
-}
-
-static void kvm_save_sched_clock_state(void)
-{
-	/*
-	 * Stop host writes to kvmclock immediately prior to suspend/hibernate.
-	 * If the system is hibernating, then kvmclock will likely reside at a
-	 * different physical address when the system awakens, and host writes
-	 * to the old address prior to reconfiguring kvmclock would clobber
-	 * random memory.
-	 */
-	kvmclock_disable();
-}
-
-static void kvm_restore_sched_clock_state(void)
-{
-	kvm_register_clock("primary cpu clock, resume");
-}
-
-void kvmclock_cpu_action(enum kvm_guest_cpu_action action)
-{
-	/*
-	 * Don't disable kvmclock on the BSP during suspend.  If kvmclock is
-	 * being used for sched_clock, then it needs to be kept alive until the
-	 * last minute, and restored as quickly as possible after resume.
-	 */
-	if (action != KVM_GUEST_BSP_SUSPEND)
-		kvmclock_disable();
-}
-
-#ifdef CONFIG_SMP
-static void kvm_setup_secondary_clock(void)
-{
-	kvm_register_clock("secondary cpu clock");
-}
-#endif
-
 static void __init kvmclock_init_mem(void)
 {
 	unsigned long ncpus;
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:08:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:08:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322437.1588700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyoh-0005pj-J4; Fri, 29 May 2026 15:08:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322437.1588700; Fri, 29 May 2026 15:08:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyoh-0005pc-E8; Fri, 29 May 2026 15:08:07 +0000
Received: by outflank-mailman (input) for mailman id 1322437;
 Fri, 29 May 2026 15:08:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <306sZagYKCegcOKXTMQYYQVO.MYWhOX-NOfOVVScdc.hOXZbYTOMd.YbQ@flex--seanjc.bounces.google.com>)
 id 1wSyog-0005pL-2a
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:08:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyof-001277-FO
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:08:05 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <306sZagYKCegcOKXTMQYYQVO.MYWhOX-NOfOVVScdc.hOXZbYTOMd.YbQ@flex--seanjc.bounces.google.com>)
 id 6a19abcb-bab6-0a2a0a5309dd-0a2a4506ad26-10
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:05 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <306sZagYKCegcOKXTMQYYQVO.MYWhOX-NOfOVVScdc.hOXZbYTOMd.YbQ@flex--seanjc.bounces.google.com>)
 id 6a19abd3-7371-0a2a45060019-d155d6cac050-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:05 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2bd6aeb3637so313101885ad.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:08:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067283; x=1780672083; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=A0LUKgY7WdUW5/UN6qkumXlSSdA1avjLrzVcdpZcOlg=;
        b=O/cT0A/F5ESt7G5U6DwIzaehwiwC9QE13NUTcSdP0WJ6xoswNcpzVG7dg+U+jbGGv5
         MsoY/KuYHImphsBEQTvD/Z86zGEbLaeW7iam7/gwhcUapgwwP2RFkqj8922p1izwXgf5
         cXO70Q9epZ4wlkv2vVYFZ+SeeX5uamOyqy/wJm1o8dAw0+f0AbZrgF/UIWxP+cL0A2eS
         eGJeI8mVFZRwu6Z5jGsv3ZHOf7fWdiUpR5dXGjk62EzwKJ6/KHuFsqcBhRxakdKcT4VS
         RSRgnv95VvRjiTgnfilWScaFq9ptJIO8PH5OeaZp6xLWFXTGfGktqQVsIC65SDmoM4TC
         3JXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067283; x=1780672083;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=A0LUKgY7WdUW5/UN6qkumXlSSdA1avjLrzVcdpZcOlg=;
        b=UhGOJ+2NE+XSOJe0mPkFz0riZhi97JPfJyA9TH0rwP9SzlN5Q1gI8gVfzQknpH18N6
         ciYcqdk5+xFnlZou83FZPzHJfW57qOR76IleF5cMbXbQujzfC1TPkQYzSvLyZTzjAtCn
         Tp+xHIWgMDsC3IkDOdu/4GkYlkGvRBq4EGigxs5oSW8ls8FXnL4gpp6oRpDlmBH4ZMlr
         5Dsx7eJuPVnp5bZt+TE3sTEJof0IUC22IpdFwBuQ9U24ihTyP/du/Rt2/DRtzpR4vQ+y
         icKsGZVuOUwWU0gwehxkyjwNmcO7wPsBODqzOhVMN9QS/uHSOx3KzpNOC2dxc+drHS+q
         RRhA==
X-Forwarded-Encrypted: i=1; AFNElJ8n0YXWW1cRQuegAflMNDOZxcSjv0kmyzQlzXLZ6k/4VG8gDe9cJzTk8kKBoHJfaIb90ndNbQejXd0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKdMyXRPdiJaRRzFJxtexsDYrgooF5m7Kf43sXTJ37YmN3DyD6
	9oINIu9upRTuBQ3xZpqfRwwpPl4YW4HcYWkKb/ibXQIHGgfoIrOshece0ctoi/7a96VZ7Foh6UL
	9G3GpyA==
X-Received: from pldt15.prod.google.com ([2002:a17:903:40cf:b0:2bd:a5da:7a51])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:da84:b0:2bc:8f62:990b
 with SMTP id d9443c01a7336-2bf368d7531mr1933905ad.41.1780067283075; Fri, 29
 May 2026 08:08:03 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:08:00 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150800.714453-1-seanjc@google.com>
Subject: [PATCH v4 34/47] x86/kvmclock: Move kvm_sched_clock_init() down in kvmclock.c
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-16d1c6/1780067285-8556ED75-E02A47EC/0/0
X-purgate-type: clean
X-purgate-size: 2297

Move kvm_sched_clock_init() "down" so that it can reference the global
kvm_clock structure without needing a forward declaration.

Opportunistically mark the helper as "__init" instead of "inline" to make
its usage more obvious; modern compilers don't need a hint to inline a
single-use function, and an extra CALL+RET pair during boot is a complete
non-issue.  And, if the compiler ignores the hint and does NOT inline the
function, the resulting code may not get discarded after boot due lack of
an __init annotation.

No functional change intended.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 05bca2be0df3..6372b4dc7b0c 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -134,20 +134,6 @@ static void kvm_restore_sched_clock_state(void)
 	kvm_register_clock("primary cpu clock, resume");
 }
 
-static inline void kvm_sched_clock_init(bool stable)
-{
-	kvm_sched_clock_offset = kvm_clock_read();
-	__paravirt_set_sched_clock(kvm_sched_clock_read, stable,
-				   kvm_save_sched_clock_state,
-				   kvm_restore_sched_clock_state);
-
-	pr_info("kvm-clock: using sched offset of %llu cycles",
-		kvm_sched_clock_offset);
-
-	BUILD_BUG_ON(sizeof(kvm_sched_clock_offset) >
-		sizeof(((struct pvclock_vcpu_time_info *)NULL)->system_time));
-}
-
 void kvmclock_cpu_action(enum kvm_guest_cpu_action action)
 {
 	/*
@@ -303,6 +289,20 @@ static int kvmclock_setup_percpu(unsigned int cpu)
 	return p ? 0 : -ENOMEM;
 }
 
+static __init void kvm_sched_clock_init(bool stable)
+{
+	kvm_sched_clock_offset = kvm_clock_read();
+	__paravirt_set_sched_clock(kvm_sched_clock_read, stable,
+				   kvm_save_sched_clock_state,
+				   kvm_restore_sched_clock_state);
+
+	pr_info("kvm-clock: using sched offset of %llu cycles",
+		kvm_sched_clock_offset);
+
+	BUILD_BUG_ON(sizeof(kvm_sched_clock_offset) >
+		sizeof(((struct pvclock_vcpu_time_info *)NULL)->system_time));
+}
+
 void __init kvmclock_init(bool prefer_tsc)
 {
 	u8 flags;
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:08:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:08:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322441.1588708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyon-0006Bz-SX; Fri, 29 May 2026 15:08:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322441.1588708; Fri, 29 May 2026 15:08:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyon-0006Br-Pt; Fri, 29 May 2026 15:08:13 +0000
Received: by outflank-mailman (input) for mailman id 1322441;
 Fri, 29 May 2026 15:08:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <32qsZagYKCe8jVReaTXffXcV.TfdoVe-UVmVccZjkj.oVegifaVTk.fiX@flex--seanjc.bounces.google.com>)
 id 1wSyon-00069x-55
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:08:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyom-009KEh-HM
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:08:12 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <32qsZagYKCe8jVReaTXffXcV.TfdoVe-UVmVccZjkj.oVegifaVTk.fiX@flex--seanjc.bounces.google.com>)
 id 6a19abc2-5cb7-0a2a0a5109dd-0a2a4509b480-48
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:12 +0200
Received: from [209.85.215.201] (helo=mail-pg1-f201.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <32qsZagYKCe8jVReaTXffXcV.TfdoVe-UVmVccZjkj.oVegifaVTk.fiX@flex--seanjc.bounces.google.com>)
 id 6a19abdb-2497-0a2a45090019-d155d7c9e8fb-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:12 +0200
Received: by mail-pg1-f201.google.com with SMTP id
 41be03b00d2f7-c82ba4715b6so14995163a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:08:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067290; x=1780672090; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=4xsn0b4/TuAYVw8d7nIvqzj+ui/IxR9VfuC7re3vJ7o=;
        b=FbxfYU86KBeF6DrXroMRvR539vCVARty3gl1Xo9IrIlf3w+os/s7XKeRLC0SIoesJh
         vTvwDpphdybGEVRLKiJdYietr3lppS7TThOSoWrMBQkXqmWkSve4cZpRQlr381ob+7f0
         BUyfau3CEraiEqhOt/IVz4S13kKaqldkHrk+qAy6OE3oiF4DaiZnCCEeAdweXuu4LRBV
         I1kVZNEPuWn+ZP1daq6TOYEzlv0M4Bnwxz66ylLGUTzCAcZ/idMIi+Yyc74IP3mnEivb
         07RwRZtzAuv+C0ZkTl1kXiwlfcBsA3Y7rSYJX3sr7NBTagukdLJFENW6zfMfp9KI3LPP
         7nrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067290; x=1780672090;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=4xsn0b4/TuAYVw8d7nIvqzj+ui/IxR9VfuC7re3vJ7o=;
        b=tCRCYDKuO2F2qJ9G/m4ApeX5VIRZFYbqHKq4nsQXHNh5MyelZTSkTWucwj4flI9392
         P+yTQjd6BAz9pqcZ4gDByrrH3MDDlY3fuIxYD55Wns42d6k0A/2FnLpxekH8j2FkkaFQ
         zWwEZHtMSOgm5JbBbhqk1UhB1mLCkdXoZsGQZpyRS/KQ2LpdaxttRDv5is/ASEOO6wqG
         A5DO+sEpH6CXq/IvwkXObelXS4Km6KfFQk1SSUR/++/H2Wep9f8L398mZeWw+0lZS0IL
         Rzky0RcYH3Mxtzpi31N0bHZVV0fs/sHariXDqn76bTXD4UWQLDWYa9zL1K3iQU6OoNmT
         0wYg==
X-Forwarded-Encrypted: i=1; AFNElJ/I/Gi6yCHqkkJ3IWO0PqjzQhhnHaJQPSyYJMBZhMGn3MxfsN96PaSJB56Gt9XMEhFquGezSnIKblo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYmb9MemeKEafXKqqfb4Nh4NkIN94KlnwA3wKYRaBy8C/ZGhX4
	j6UGZWUepncyWdbs0hJpWSE58OIsDZ05Hki8ovtnv1MEitGcle3m+xBoyOW6S7eKZwo8CLr9plt
	iyleOuA==
X-Received: from pgfu20.prod.google.com ([2002:a65:6714:0:b0:c85:82f6:34d1])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:2452:b0:3b3:24d5:d656
 with SMTP id adf61e73a8af0-3b411deb049mr3990553637.23.1780067290086; Fri, 29
 May 2026 08:08:10 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:08:07 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150807.714538-1-seanjc@google.com>
Subject: [PATCH v4 36/47] x86/pvclock: Mark setup helpers and related various
 as __init/__ro_after_init
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-bad1c0/1780067292-37979A53-5F630D5C/0/0
X-purgate-type: clean
X-purgate-size: 1384

Now that Xen PV clock and kvmclock explicitly do setup only during init,
tag the common PV clock flags/vsyscall variables and their mutators with
__init.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/pvclock.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
index b3f81379c2fc..a51adce67f92 100644
--- a/arch/x86/kernel/pvclock.c
+++ b/arch/x86/kernel/pvclock.c
@@ -16,10 +16,10 @@
 #include <asm/pvclock.h>
 #include <asm/vgtod.h>
 
-static u8 valid_flags __read_mostly = 0;
-static struct pvclock_vsyscall_time_info *pvti_cpu0_va __read_mostly;
+static u8 valid_flags __ro_after_init = 0;
+static struct pvclock_vsyscall_time_info *pvti_cpu0_va __ro_after_init;
 
-void pvclock_set_flags(u8 flags)
+void __init pvclock_set_flags(u8 flags)
 {
 	valid_flags = flags;
 }
@@ -153,7 +153,7 @@ void pvclock_read_wallclock(struct pvclock_wall_clock *wall_clock,
 	set_normalized_timespec64(ts, now.tv_sec, now.tv_nsec);
 }
 
-void pvclock_set_pvti_cpu0_va(struct pvclock_vsyscall_time_info *pvti)
+void __init pvclock_set_pvti_cpu0_va(struct pvclock_vsyscall_time_info *pvti)
 {
 	WARN_ON(vclock_was_used(VDSO_CLOCKMODE_PVCLOCK));
 	pvti_cpu0_va = pvti;
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:08:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:08:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322446.1588717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyp0-0006lv-4T; Fri, 29 May 2026 15:08:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322446.1588717; Fri, 29 May 2026 15:08:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyp0-0006ll-1V; Fri, 29 May 2026 15:08:26 +0000
Received: by outflank-mailman (input) for mailman id 1322446;
 Fri, 29 May 2026 15:08:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <35asZagYKCfougcpleiqqing.eqozgp-fgxgnnkuvu.zgprtqlgev.qti@flex--seanjc.bounces.google.com>)
 id 1wSyoz-0006iP-0V
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:08:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyoy-002uwf-DS
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:08:24 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <35asZagYKCfougcpleiqqing.eqozgp-fgxgnnkuvu.zgprtqlgev.qti@flex--seanjc.bounces.google.com>)
 id 6a19abcf-e002-0a2a0a5209dd-0a2a4503e0ae-30
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:24 +0200
Received: from [209.85.215.201] (helo=mail-pg1-f201.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <35asZagYKCfougcpleiqqing.eqozgp-fgxgnnkuvu.zgprtqlgev.qti@flex--seanjc.bounces.google.com>)
 id 6a19abe6-672d-0a2a45030019-d155d7c9ed02-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:24 +0200
Received: by mail-pg1-f201.google.com with SMTP id
 41be03b00d2f7-c82ac893940so7119245a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:08:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067302; x=1780672102; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=N9FJGXb1rHvCmGDbAStTerw3YHwheVCgedyMSiUJO9w=;
        b=fnF78wHADr4EI/QTQR6MlTLlhAX0nIH8MlyxnND2S2lWQHqEki7zTQ5Pz4uCeaBbYT
         jikgxgnxUFSZaCY2Equ7x1+GT7U/32aWwFAZVNCaDJjjIQiP7/5kjsDAWCRXsBf98u50
         4f/XOIu5qTwwQNa+Cv4PltpAxCoFbjsUoWusgsdHKdr42VJDvbzfAew/MYJ3X77BJgH4
         X2lW5tbUYWaGtB7bl6AwFERixgs8bas5FIC9m1YkaSJhe/bpTyP9spBAIDcaZrdHG+bi
         P7t8g6IVhLuLa5q0QplWJhTkI2vwPx1UW+SAMCa0h/VV1fgJTzE92cRKR9KQZ1gp36G/
         CsxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067302; x=1780672102;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=N9FJGXb1rHvCmGDbAStTerw3YHwheVCgedyMSiUJO9w=;
        b=q5+Xiindk0moyyMOLQ4f80xNmYQBnOm8UMWFVuHQgEsDdmegSBagNWATSH92kqUciK
         4Ms1Hgdxi9CnuqvPXcfeQD94+vidKkCEtpUwQTd9KWtmMA3RBmI31ZFqQJaXWKTA3a/U
         NekoiJg0qK/yKB96owcUNaqQ2SiwvQhwvRJepmZCQfmBNlYarlG99vgFg7V+mPXFg9Hs
         3xciMQGiqQTANUHotdXIE5RJGDAIlqZq9eeAf5AMGif+/MQvbUGYFD83zPGjiK19i7B5
         eXSRPAIeBy00xzeNLkWlorUiCzXV4n2kr99uSWx0zFwTMIviDJoyNMQG8q0RE6HPg6WD
         fbqA==
X-Forwarded-Encrypted: i=1; AFNElJ86JxKdP6Yj46FFVcn5cYTC5J9fmtnzzjy8sfo2l4MSw7lAwOw5mYBctZMCji+fyy+Mpqb8t40s/tg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx3L+IRm9OQdRVc8YradH2CA5oiBPDErpMYH/BTM3okBcuKPnjf
	BJIxhq4hVtXe5FYitn2X4J7JgSr3Jz8sEcvgI5HNscOCtVuNf4tLyFKRbNKXcvu79dQM1Xmg2H2
	7CCzkQg==
X-Received: from pgvi7.prod.google.com ([2002:a65:61a7:0:b0:c85:82f6:34de])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:594:b0:3b3:2703:111
 with SMTP id adf61e73a8af0-3b411e9b75cmr3575842637.44.1780067301940; Fri, 29
 May 2026 08:08:21 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:08:20 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150820.714844-1-seanjc@google.com>
Subject: [PATCH v4 41/47] x86/kvmclock: WARN if wall clock is read while
 kvmclock is suspended
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-33051d/1780067304-39B7C938-9D80C75C/0/0
X-purgate-type: clean
X-purgate-size: 2065

WARN if kvmclock is still suspended when its wallclock is read, i.e. when
the kernel reads its persistent clock.  The wallclock subtly depends on
the BSP's kvmclock being enabled, and returns garbage if kvmclock is
disabled.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 5dfac79a5d30..73fabfac2bc9 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -53,6 +53,8 @@ static struct pvclock_vsyscall_time_info *hvclock_mem;
 DEFINE_PER_CPU(struct pvclock_vsyscall_time_info *, hv_clock_per_cpu);
 EXPORT_PER_CPU_SYMBOL_GPL(hv_clock_per_cpu);
 
+static bool kvmclock_suspended;
+
 /*
  * The wallclock is the time of day when we booted. Since then, some time may
  * have elapsed since the hypervisor wrote the data. So we try to account for
@@ -60,6 +62,7 @@ EXPORT_PER_CPU_SYMBOL_GPL(hv_clock_per_cpu);
  */
 static void kvm_get_wallclock(struct timespec64 *now)
 {
+	WARN_ON_ONCE(kvmclock_suspended);
 	wrmsrq(msr_kvm_wall_clock, slow_virt_to_phys(&wall_clock));
 	preempt_disable();
 	pvclock_read_wallclock(&wall_clock, this_cpu_pvti(), now);
@@ -119,6 +122,7 @@ static void kvm_save_sched_clock_state(void)
 	 * to the old address prior to reconfiguring kvmclock would clobber
 	 * random memory.
 	 */
+	kvmclock_suspended = true;
 	kvmclock_disable();
 }
 
@@ -131,16 +135,19 @@ static void kvm_setup_secondary_clock(void)
 
 static void kvm_restore_sched_clock_state(void)
 {
+	kvmclock_suspended = false;
 	kvm_register_clock("primary cpu, sched_clock resume");
 }
 
 static void kvmclock_suspend(struct clocksource *cs)
 {
+	kvmclock_suspended = true;
 	kvmclock_disable();
 }
 
 static void kvmclock_resume(struct clocksource *cs)
 {
+	kvmclock_suspended = false;
 	kvm_register_clock("primary cpu, clocksource resume");
 }
 
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:08:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:08:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322450.1588725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyp8-0007DJ-BN; Fri, 29 May 2026 15:08:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322450.1588725; Fri, 29 May 2026 15:08:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyp8-0007Ck-8U; Fri, 29 May 2026 15:08:34 +0000
Received: by outflank-mailman (input) for mailman id 1322450;
 Fri, 29 May 2026 15:08:32 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <37asZagYKCQQwierngksskpi.gsq1ir-hizippmwxw.1irtvsnigx.svk@flex--seanjc.bounces.google.com>)
 id 1wSyp6-0007At-U8
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:08:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyp5-00BVDF-GG
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:08:31 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <37asZagYKCQQwierngksskpi.gsq1ir-hizippmwxw.1irtvsnigx.svk@flex--seanjc.bounces.google.com>)
 id 6a19abec-2eae-0a2a0a5409dd-0a2a4506b9e2-8
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:31 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <37asZagYKCQQwierngksskpi.gsq1ir-hizippmwxw.1irtvsnigx.svk@flex--seanjc.bounces.google.com>)
 id 6a19abed-7371-0a2a45060019-d155d6c9d110-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:31 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2bf160f7191so7902165ad.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:08:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067309; x=1780672109; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=EFwMDca4i0UUfWhYRWZx1hhbmviPyyt5LCM1/HLShPA=;
        b=hLIlMKa8CvKj1FZ/1WyFxZJXQhrdWXTkfDWqDtWLIXTtQRy/AWA9zCzxFNNMjnELHP
         upDDiliJc8oaWif95eWreY4XyHURBzSUj3/EbUU4u1KJ5erpYy0zWzYpblQAHeQLXjsJ
         7xK7NysyVJy/cLbNer60XisI4LoqUgiiTR5R/1QlX1kIizTN+yw8mtj3M/u+haTE4vDG
         2NHwbDs8HBlxqImhMe/Nrssr0AtvqTDh70jOIg4oeiD1EPK2s7BFlTYRZSv3KRKjtmWs
         ZwfTiclHbjh6LIkYZn+3tj1R240apCD2V+hiUtE2FraAlJn+Va8NitBUDkjo0zyC4XS/
         E2Ng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067309; x=1780672109;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=EFwMDca4i0UUfWhYRWZx1hhbmviPyyt5LCM1/HLShPA=;
        b=nTSGhbBxZY7M94rAfRWQJO1JKX5TNzeagGKTNSjpmBAb7Bj02PL0HUsqLmYzjaoaMI
         YsW3bsI8srrc3gceQ4r1QgAByVUknxozs5MJs9TpSfTlcO/e617vy6xWaK9C+Vzh2PrX
         9uaXjNpKdPueqIaVQKWt8fbfbx0gMaW7XFA6KCOPMcaJTRImrdkPj7QvSBi6igfwsa1K
         z9AmSD5FXLLC1BpQ0qRJ2bNQkGpvcQZDImNMGlXuUbMn2+GNmEjx3GsA7xmYzSsh0HMd
         btfe47cfGybf3AtbqtYilNHAN32SXxtwXepwrIDkcnSJ5dWt/mRQcy4ce11b6lEM6Pka
         m+Gg==
X-Forwarded-Encrypted: i=1; AFNElJ8VrfNPgN7hJsojhiz0KFtH6tNpJkGkPhB29hYiLoUiD29E98dGdhHJ0XQKicZ7D0kTu3UAgPRUK2U=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywg4cEie3rgjNLSfW2OGLXh/cqqdiqD3CwZuJ2+AA4Tj4pFDK88
	0o0nYqpBO2kGsbMMRmpp8jxKnGqKCkPz38CaOR4Ir96g1Nt2W7JPCiclOzBFL18+9eUV1aZrFD0
	y/7wGBw==
X-Received: from plbjy6.prod.google.com ([2002:a17:903:42c6:b0:2bd:d2c2:2776])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:eccf:b0:2bf:3126:44b6
 with SMTP id d9443c01a7336-2bf368bd5dfmr2325645ad.40.1780067309070; Fri, 29
 May 2026 08:08:29 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:08:26 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150827.714968-1-seanjc@google.com>
Subject: [PATCH v4 44/47] x86/paravirt: Don't use a PV sched_clock in CoCo
 guests with trusted TSC
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-16d1c6/1780067311-8EF89D75-DEE7E71A/0/0
X-purgate-type: clean
X-purgate-size: 1335

Silently ignore attempts to switch to a paravirt sched_clock when running
as a CoCo guest with trusted TSC.  In hand-wavy theory, a misbehaving
hypervisor could attack the guest by manipulating the PV clock to affect
guest scheduling in some weird and/or predictable way.  More importantly,
reading TSC on such platforms is faster than any PV clock, and sched_clock
is all about speed.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/tsc.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 7bcf757bf551..036916953f4a 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -283,6 +283,15 @@ bool using_native_sched_clock(void)
 int __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
 				      void (*save)(void), void (*restore)(void))
 {
+	/*
+	 * Don't replace TSC with a PV clock when running as a CoCo guest and
+	 * the TSC is secure/trusted; PV clocks are emulated by the hypervisor,
+	 * which isn't in the guest's TCB.
+	 */
+	if (cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC) ||
+	    boot_cpu_has(X86_FEATURE_TDX_GUEST))
+		return -EPERM;
+
 	if (!stable)
 		clear_sched_clock_stable();
 
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:08:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:08:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322454.1588735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSypG-0007d9-Jl; Fri, 29 May 2026 15:08:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322454.1588735; Fri, 29 May 2026 15:08:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSypG-0007d2-GL; Fri, 29 May 2026 15:08:42 +0000
Received: by outflank-mailman (input) for mailman id 1322454;
 Fri, 29 May 2026 15:08:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <39asZagYKCQw4qmzvos00sxq.o0y9qz-pq7qxxu454.9qz130vqo5.03s@flex--seanjc.bounces.google.com>)
 id 1wSypE-0007Zz-Id
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:08:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSypD-002v1U-Vn
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:08:39 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <39asZagYKCQw4qmzvos00sxq.o0y9qz-pq7qxxu454.9qz130vqo5.03s@flex--seanjc.bounces.google.com>)
 id 6a19abee-e002-0a2a0a5209dd-0a2a4503dac2-14
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:39 +0200
Received: from [209.85.216.74] (helo=mail-pj1-f74.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <39asZagYKCQw4qmzvos00sxq.o0y9qz-pq7qxxu454.9qz130vqo5.03s@flex--seanjc.bounces.google.com>)
 id 6a19abf6-672d-0a2a45030019-d155d84ab121-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:39 +0200
Received: by mail-pj1-f74.google.com with SMTP id
 98e67ed59e1d1-368f2d76b04so13502820a91.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:08:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067318; x=1780672118; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=79xm+AEEzsSDw8ktlax8YEYwGg5Kvc01O7CLcLHBYus=;
        b=IqKfUXn7Z0/iL6lpQJRPgFBoWZ42pJOAF3cxVuTS7H5qQfckj9JbDkrn1njzF60PNY
         HhX53FXbeXdgK7JIAvq23WuexpWvCAO8rPICenDgKFreW7puoo5nEnC6+w0mfL14XR5V
         v9yQVaYGocwy/ZAIcJu+BIpMGTlitLlIw22IflL3OdAvAF1kQlPzo7b9SMG8JtgkMsPj
         h832BghMhsgVpGgck6UeubB74Fhff7rLxWJt4KozMYICpUFU8WEqfDmKUxSGlWGbI6Fs
         vWb0MZOQAuVaMXSKdOco+66pK5sJoOlZ153IO0LwDMeFBVYLVi2hsogejd9jnirgwU/t
         F07A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067318; x=1780672118;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=79xm+AEEzsSDw8ktlax8YEYwGg5Kvc01O7CLcLHBYus=;
        b=lGBLpNrlp0QjZHwXzLnkU4USvh5x14JoG5OzXjy0XBLJyrmyzcgHMH0sLUHB8k+Pfd
         ZF+/wUL1b+JcSA50/RyuYBAeKwZhpwgeEXUHwouZ+AZ4ghvyB8TBR6+5HC3J4YkU1TSd
         3ujfma3iFk1g6YvpNPJvwCqahwWkU58ygJzpyDDX2IPlJPPqJoF2DPjfMkAUcyu+qkg+
         EmgJSspdGLwXBWUVSwzV3waaoOseYDCqQcN6yi7FAzbil2tKvTYf32/tWj586KbUhoVx
         Kjl13fAfgYfYrIMRfyAhlEKSGx+ZErT2JoU+nono0JJ3zf0XJb/fvb4LfT5nBW7ojK1S
         KZyA==
X-Forwarded-Encrypted: i=1; AFNElJ/OrRQmDbVJ4+Mr8/EGyN3Y1W/Li2xspv2MJOH5B5dwJldn0z2SU+V9eVvH7VR+FZvcDF4ws/jSPDk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxOS8T5dv64Uj6nOiBePOrH8s6CDiN5HEY26K1IwVd3Pb/YF+lI
	JyQrna9DlyuJa3SZwjL+aNk2dnlIlU3FVZsjOn9oKbjWOILJ24CeQQgezi9ks5geI4wY5aUnmuM
	M+3AEtg==
X-Received: from pgh1.prod.google.com ([2002:a05:6a02:4e01:b0:c79:8102:80bb])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:184b:b0:366:479e:63a5
 with SMTP id 98e67ed59e1d1-36bbcc160f0mr4139147a91.2.1780067317529; Fri, 29
 May 2026 08:08:37 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:08:35 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150835.715093-1-seanjc@google.com>
Subject: [PATCH v4 47/47] x86/paravirt: Move using_native_sched_clock() stub
 into timer.h
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-33051d/1780067319-41396938-FB303E5A/0/0
X-purgate-type: clean
X-purgate-size: 1710

Now that timer.h ended up with CONFIG_PARAVIRT #ifdeffery anyways, move the
PARAVIRT=n using_native_sched_clock() stub into timer.h as a "free"
optimization.

No functional change intended.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/timer.h | 6 ++++--
 arch/x86/kernel/tsc.c        | 2 --
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index ca5c95d48c03..a52388af6055 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -11,9 +11,9 @@ extern void recalibrate_cpu_khz(void);
 
 extern int no_timer_check;
 
-extern bool using_native_sched_clock(void);
-
 #ifdef CONFIG_PARAVIRT
+extern bool using_native_sched_clock(void);
+
 int __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
 				      void (*save)(void), void (*restore)(void));
 
@@ -23,6 +23,8 @@ static __always_inline void paravirt_set_sched_clock(u64 (*func)(void),
 {
 	(void)__paravirt_set_sched_clock(func, true, save, restore);
 }
+#else
+static inline bool using_native_sched_clock(void) { return true; }
 #endif
 
 /*
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 036916953f4a..159d7d060204 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -302,8 +302,6 @@ int __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
 }
 #else
 u64 sched_clock_noinstr(void) __attribute__((alias("native_sched_clock")));
-
-bool using_native_sched_clock(void) { return true; }
 #endif
 
 notrace u64 sched_clock(void)
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:09:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:09:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322475.1588744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSypw-0000Gr-2I; Fri, 29 May 2026 15:09:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322475.1588744; Fri, 29 May 2026 15:09:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSypv-0000Gk-VU; Fri, 29 May 2026 15:09:23 +0000
Received: by outflank-mailman (input) for mailman id 1322475;
 Fri, 29 May 2026 15:09:23 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <346sZagYKCfgxjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 1wSypv-0000Gb-B0
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:09:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSypu-00BVNk-Nz
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:09:22 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <346sZagYKCfgxjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 6a19ac18-2eae-0a2a0a5409dd-0a2a4505bfc8-10
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:09:22 +0200
Received: from [209.85.215.202] (helo=mail-pg1-f202.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <346sZagYKCfgxjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 6a19abe5-aaa8-0a2a45050019-d155d7cab199-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:22 +0200
Received: by mail-pg1-f202.google.com with SMTP id
 41be03b00d2f7-c8292e18166so7029776a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:08:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067300; x=1780672100; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=hiLxlYw3clwD2dLxI09vlAh7vN9DHw/HVEHbWWzJKBk=;
        b=t4SchzvOrZ2XyVOaJV+FEC94DaEErk3MY0wW+9jAXkc4sl12364IWzmGl4MKmFQt/W
         x5+AWrS2muBFN9KJDJ6nGslH6Yynpy/qhN3VXDre1q2jnu3YzMhJUaBDWO9fP7ZX2CEA
         PNu/I9WE7r6i0RhqsaB3LEnVjoMcS6JX3FktnpTYIQLOevjtd6hyevUNyON+1WDOcmOl
         guf6n/W8UMawOWeeF/La/S6k1Sn9fT6T4cqL4JORfH4NhXhZMVQO3uGkcscPJGgPU0OT
         YRG42qqRep1IBfkX5isAagTJjWpf2r1kYBT9GaupB3kf3gqHZ1yH+EUWpJBPHl7FBWWQ
         hIDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067300; x=1780672100;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=hiLxlYw3clwD2dLxI09vlAh7vN9DHw/HVEHbWWzJKBk=;
        b=gf4IgJeJJgzokkP/vvUZH9F0eC5H734UhyPpmteVD3qj8EOS26MK2xuh67L2yAHVRY
         r0c1SxkkLQXsYwRxXzDgraGImIP1GOjEOy9dyLIb3bFoT5bo7bPBMODL82QvadGfbxeX
         Q+2g4UDjnrwtgOBndIIeWDH6z+PEUsWd2R8aU+rpvNZg4aQj5SLep+cTF+XLRS+rEg5n
         qNI9BCxPyMkw9Rb289K4IXSlx4gFVwez1KQH1pxg5NIBLWD4nh3YBIoaxIoLR1Or6DYS
         3ZBnPrWacuLwB0O9I+qxncddbF9Wzpd/p1l7OmvZOMxkXlPAp8wtRdOD9oN11Ev9fHLX
         3uEw==
X-Forwarded-Encrypted: i=1; AFNElJ+HrYfMRyq+HkPZgSFnSyM80uRsE5E+rMZByTNElceqE936L5R170zxCkrKBeGjA0jmyoh2slwuPH0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzuFHTiC7XDbGrm4jYeColdHLgIHOeSSSwZPIjh4ay9B0fKjAF
	o28tfave/m6R80RRfME+Uskugjw56hzJE0exTLqR5BFUVCNVoxSf8RJCyTNvayi2KdNb2EJSzPm
	mr0TMNA==
X-Received: from pgx6.prod.google.com ([2002:a63:1746:0:b0:c79:81bb:79ef])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:9149:b0:3b2:a958:a725
 with SMTP id adf61e73a8af0-3b411e478f7mr4139551637.41.1780067299927; Fri, 29
 May 2026 08:08:19 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:08:18 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150818.714760-1-seanjc@google.com>
Subject: [PATCH v4 40/47] x86/kvmclock: Hook clocksource.suspend/resume when
 kvmclock isn't sched_clock
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-c201ff/1780067302-D8B78443-16F20FE7/13/0
X-purgate-type: clean
X-purgate-size: 2030

Save/restore kvmclock across suspend/resume via clocksource hooks when
kvmclock isn't being used for sched_clock.  This will allow using kvmclock
as a clocksource (or for wallclock!) without also using it for sched_clock.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 4e304f1c887d..5dfac79a5d30 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -131,7 +131,17 @@ static void kvm_setup_secondary_clock(void)
 
 static void kvm_restore_sched_clock_state(void)
 {
-	kvm_register_clock("primary cpu clock, resume");
+	kvm_register_clock("primary cpu, sched_clock resume");
+}
+
+static void kvmclock_suspend(struct clocksource *cs)
+{
+	kvmclock_disable();
+}
+
+static void kvmclock_resume(struct clocksource *cs)
+{
+	kvm_register_clock("primary cpu, clocksource resume");
 }
 
 void kvmclock_cpu_action(enum kvm_guest_cpu_action action)
@@ -201,6 +211,8 @@ static struct clocksource kvm_clock = {
 	.flags	= CLOCK_SOURCE_IS_CONTINUOUS,
 	.id     = CSID_X86_KVM_CLK,
 	.enable	= kvm_cs_enable,
+	.suspend = kvmclock_suspend,
+	.resume = kvmclock_resume,
 };
 
 static void __init kvmclock_init_mem(void)
@@ -296,6 +308,15 @@ static __init void kvm_sched_clock_init(bool stable)
 				   kvm_save_sched_clock_state,
 				   kvm_restore_sched_clock_state);
 
+	/*
+	 * The BSP's clock is managed via dedicated sched_clock save/restore
+	 * hooks when kvmclock is used as sched_clock, as sched_clock needs to
+	 * be kept alive until the very end of suspend entry, and restored as
+	 * quickly as possible after resume.
+	 */
+	kvm_clock.suspend = NULL;
+	kvm_clock.resume = NULL;
+
 	pr_info("kvm-clock: using sched offset of %llu cycles",
 		kvm_sched_clock_offset);
 
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:10:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:10:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322480.1588752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyqY-000193-9p; Fri, 29 May 2026 15:10:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322480.1588752; Fri, 29 May 2026 15:10:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyqY-00018K-6o; Fri, 29 May 2026 15:10:02 +0000
Received: by outflank-mailman (input) for mailman id 1322480;
 Fri, 29 May 2026 15:10:01 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3zqsZagYKCeMXJFSOHLTTLQJ.HTRcJS-IJaJQQNXYX.cJSUWTOJHY.TWL@flex--seanjc.bounces.google.com>)
 id 1wSyqX-0000ri-9S
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:10:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyqW-00BVUM-MK
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:10:00 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3zqsZagYKCeMXJFSOHLTTLQJ.HTRcJS-IJaJQQNXYX.cJSUWTOJHY.TWL@flex--seanjc.bounces.google.com>)
 id 6a19ac37-5cb7-0a2a0a5109dd-0a2a450ba66c-24
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:10:00 +0200
Received: from [209.85.215.202] (helo=mail-pg1-f202.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3zqsZagYKCeMXJFSOHLTTLQJ.HTRcJS-IJaJQQNXYX.cJSUWTOJHY.TWL@flex--seanjc.bounces.google.com>)
 id 6a19abcf-212f-0a2a450b0019-d155d7caacf6-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:00 +0200
Received: by mail-pg1-f202.google.com with SMTP id
 41be03b00d2f7-c8582b167f7so40253a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:07:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067278; x=1780672078; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=xxACJL8GJmmB0S+liLqaHbVRa5fkFAryvwd+hR3Tj1U=;
        b=GzaX+HmjziqcNVIEpyiScj7vpcIPFocqjaRcbcy3CvhbZ80ch+lorp8R6A+Mrg3Rqn
         jBBzzh5Ieu/yXz3dMnKk/RSi1/sUigpymOqrftJSI5eeCDuv77CBwHCakGgOTdb15KZb
         ub9UgRrr6exvi/g9M04H/2EHKahzi4EP2Sz/k8aq7koAQLY3eAxLv6fXLIHgLarrsPjC
         ao1M0Aev5+xE8sr94AQ15dQfntnLAgyxdtHpin6wh2lU4BqcCiUwLCIaBZE8n2VRv3Kb
         CUkdUOc886GVuYUwDO3yRwXGYWoGUlawUD30tTQn1DNmtbMhRIHQ9iZHqbscb408jaV9
         4wNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067278; x=1780672078;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=xxACJL8GJmmB0S+liLqaHbVRa5fkFAryvwd+hR3Tj1U=;
        b=F/1Gg0RkBzZq6mZGVo1alX5q9b/SxT+mcEvKO7CPaYGwKUfUlS5Pa53LI0Z8eFgh29
         M/EA42lTGsEi2lqZkMPcVS0wAEck5uCDg+8nDjj8pn+m88jdybWghdIWugWQMysXBzwZ
         zNEkxyTQ+P2OQx0hiSObMQ9Okwp/x8Icv9p2lRPGEPJlGJ2zGe2U8q16eUroj8/oAJni
         B8tTfr82QQNbwyBexaYITCYsdtfQwywfbqvlGtAC2UiXJcfKN3d/MLxrhvoI3b0H4IkM
         hhn4MfDvmoQim/DZjQUYe77YjMFYBXQ1GFNsy78SB3gvuwdCKBKfTq8FnKU4dhy2FM4t
         sV6g==
X-Forwarded-Encrypted: i=1; AFNElJ+1s6xcLZRHCeoAAmSeKL4oBRpuLZb5HNZiAYYyHhjttlsc1DyCKZfIikcTT9TZQb0P0v6pXdufVCk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyS8lgsaJgKaPYC8VZgRa3i2L29RLRqhFM8ZC71bc7umFWaHpaW
	pGwcA1WMFOcH+QwjbK+gwbV3nJvq9prbWRRzC7LodPkSMr36kUw5iwKRmzsU4aag0os96v7qZyW
	0U8XXIg==
X-Received: from pgbda10.prod.google.com ([2002:a05:6a02:238a:b0:c80:2987:4220])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:9f88:b0:3b3:1951:489b
 with SMTP id adf61e73a8af0-3b411e714f7mr3887670637.45.1780067278068; Fri, 29
 May 2026 08:07:58 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:07:55 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150755.714364-1-seanjc@google.com>
Subject: [PATCH v4 32/47] x86/tsc: WARN if TSC sched_clock save/restore used
 with PV sched_clock
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-42698a/1780067280-1BD7FF3B-91926027/13/0
X-purgate-type: clean
X-purgate-size: 1388

Now that all PV clocksources override the sched_clock save/restore hooks
when overriding sched_clock, WARN if the "default" TSC hooks are invoked
when using a PV sched_clock, e.g. to guard against regressions.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/tsc.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index a9b6d3399c23..19da1a3d2126 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -972,9 +972,17 @@ EXPORT_SYMBOL_GPL(recalibrate_cpu_khz);
 
 static unsigned long long cyc2ns_suspend;
 
+static __always_inline bool tsc_is_save_restore_needed(void)
+{
+	if (WARN_ON_ONCE(!using_native_sched_clock()))
+		return false;
+
+	return static_branch_likely(&__use_tsc) || sched_clock_stable();
+}
+
 void tsc_save_sched_clock_state(void)
 {
-	if (!static_branch_likely(&__use_tsc) && !sched_clock_stable())
+	if (!tsc_is_save_restore_needed())
 		return;
 
 	cyc2ns_suspend = sched_clock();
@@ -994,7 +1002,7 @@ void tsc_restore_sched_clock_state(void)
 	unsigned long flags;
 	int cpu;
 
-	if (!static_branch_likely(&__use_tsc) && !sched_clock_stable())
+	if (!tsc_is_save_restore_needed())
 		return;
 
 	local_irq_save(flags);
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:10:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:10:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322485.1588762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyqy-0002UC-HF; Fri, 29 May 2026 15:10:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322485.1588762; Fri, 29 May 2026 15:10:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyqy-0002U5-EL; Fri, 29 May 2026 15:10:28 +0000
Received: by outflank-mailman (input) for mailman id 1322485;
 Fri, 29 May 2026 15:10:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <356sZagYKCfwwierngksskpi.gsq1ir-hizippmwxw.1irtvsnigx.svk@flex--seanjc.bounces.google.com>)
 id 1wSyqx-0002Tp-0O
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:10:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyqw-0012cd-DD
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:10:26 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <356sZagYKCfwwierngksskpi.gsq1ir-hizippmwxw.1irtvsnigx.svk@flex--seanjc.bounces.google.com>)
 id 6a19ac5f-e002-0a2a0a5209dd-0a2a45049f6e-6
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:10:26 +0200
Received: from [209.85.215.202] (helo=mail-pg1-f202.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <356sZagYKCfwwierngksskpi.gsq1ir-hizippmwxw.1irtvsnigx.svk@flex--seanjc.bounces.google.com>)
 id 6a19abe8-1dec-0a2a45040019-d155d7caac7d-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:26 +0200
Received: by mail-pg1-f202.google.com with SMTP id
 41be03b00d2f7-c8582b167f7so40568a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:08:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067304; x=1780672104; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=Yfx7EXC5hiFOp82KCG+sZ/JXqzo7JAMVp+JZIeKJNyA=;
        b=LePLrnkbzkMfAwDUJae0+yneUM9mvyA3bVeKa76B6yQY4hxdUNsR1wHu4YkkqdqaPZ
         W2/QRJKOLwJS0LOO8ijcg/a90fZC/NaJcC8OAuyL236itejgzRelgeJJawltIpL/756B
         vXF1Us52b34tpRgf7BnGzkXs2jHXkdYBE1r1kHGD2a/WFNvxgBmdRpSJVCCF8kEW9f5J
         fc5vpxy9XSayiiaD+KVY6CO6MM2vrAfouOPO5cMf0Lq9okrKn87qLTbXx7LMRuuVimDU
         Q0n5xNZ/79UqILO53/1yipR6aBJuDi/F717ODDCBlB8n2OlrMynFtmQXksUfBeS8E6mB
         WndQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067304; x=1780672104;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Yfx7EXC5hiFOp82KCG+sZ/JXqzo7JAMVp+JZIeKJNyA=;
        b=sK/tchGrlZiqSovVQd33BYjZAFLi5nI8rtxzcFwTnaCoj3kRcffHi+u6f9sKfRxSfN
         5rxc9tOns8dANUV2v/DjVwRPy2qeNu92PpMe6/eAC6jcCaOVLJ+z8H0+x6gRrfbzc89/
         Z49gSzS8vt4H+iTFvGpZvtNwL3t87mDXss2UXVi15ClB/ty4QmC4sIfRV2KlxwYcbcS9
         zrEiUXEd9vYg/+b08KNpjrA3MQAx8Vo+N2koOHByc/jydsnvy36d7o/O9sw1Csd5ChiA
         TC+dJm5vt06BlpCBY/Id1l5ZIB813ZEeCneam4m50BEfdyfu2et/KmhEuGR++WBbOu5L
         od8g==
X-Forwarded-Encrypted: i=1; AFNElJ9/1lmbIqYUVLlmMGvRAZkY20ff0+xrw+78Sb0Tlimkj74SU8fwW2l21VOZeK2rh/OzE9wkUsrq4U4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxAWafc9fH56e4L/DDgzTfaWpNjtHK5pyO90+rbaNfvvieeOE2W
	S/wFutUI0cdjGQNLcEM6ovb+8+j0KQ2N4SqA0zRxg5pKZuIJDhDZdeZfY2qQ9JLUubpc8nK9t0y
	ijq15Og==
X-Received: from plai6.prod.google.com ([2002:a17:902:c946:b0:2bf:1ccd:c294])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:e88c:b0:2bf:3074:34dc
 with SMTP id d9443c01a7336-2bf367c54demr2671615ad.14.1780067303834; Fri, 29
 May 2026 08:08:23 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:08:22 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150822.714883-1-seanjc@google.com>
Subject: [PATCH v4 42/47] x86/paravirt: Mark __paravirt_set_sched_clock() as __init
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-ebf023/1780067306-285703FF-7801EABA/13/0
X-purgate-type: clean
X-purgate-size: 2068

Annotate __paravirt_set_sched_clock() as __init, and make its wrapper
__always_inline to ensure sanitizers don't result in a non-inline version
hanging around.  All callers run during __init, and changing sched_clock
after boot would be all kinds of crazy.

No functional change intended.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/timer.h | 10 +++++-----
 arch/x86/kernel/tsc.c        |  4 ++--
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index e97cd1ae03d1..96ae7feac47c 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -14,12 +14,12 @@ extern int no_timer_check;
 extern bool using_native_sched_clock(void);
 
 #ifdef CONFIG_PARAVIRT
-void __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
-				void (*save)(void), void (*restore)(void));
+void __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
+				       void (*save)(void), void (*restore)(void));
 
-static inline void paravirt_set_sched_clock(u64 (*func)(void),
-					    void (*save)(void),
-					    void (*restore)(void))
+static __always_inline void paravirt_set_sched_clock(u64 (*func)(void),
+						     void (*save)(void),
+						     void (*restore)(void))
 {
 	__paravirt_set_sched_clock(func, true, save, restore);
 }
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 7fbcfc2efd1d..6da0a3ac05c2 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -280,8 +280,8 @@ bool using_native_sched_clock(void)
 	return static_call_query(pv_sched_clock) == native_sched_clock;
 }
 
-void __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
-				void (*save)(void), void (*restore)(void))
+void __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
+				       void (*save)(void), void (*restore)(void))
 {
 	if (!stable)
 		clear_sched_clock_stable();
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:10:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:10:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322486.1588772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyr3-0002kY-Oh; Fri, 29 May 2026 15:10:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322486.1588772; Fri, 29 May 2026 15:10:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyr3-0002kR-KS; Fri, 29 May 2026 15:10:33 +0000
Received: by outflank-mailman (input) for mailman id 1322486;
 Fri, 29 May 2026 15:10:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3ZawZagYKCXwxjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 1wSyr2-0002je-Jf
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:10:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyr2-00EP8p-0E
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:10:32 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3ZawZagYKCXwxjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 6a19ac61-bab6-0a2a0a5309dd-0a2a45029db8-8
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:10:31 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3ZawZagYKCXwxjfsohlttlqj.htr2js-ij0jqqnxyx.2jsuwtojhy.twl@flex--seanjc.bounces.google.com>)
 id 6a19ac66-af86-0a2a45020019-d155d6c9b47f-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:10:31 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2ba5f794825so112268265ad.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:10:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067430; x=1780672230; darn=lists.xenproject.org;
        h=to:from:subject:message-id:references:mime-version:in-reply-to:date
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Q3KwUKexhBMnhxMu/5zzl7QcY3Y917Dhb3kMyW4ALaw=;
        b=iFwRgQmNhTyB6cbz+E2GJV5cxqiGDbK8EU6wg0uFRUzbqd6IlfdAjIPSkO6yCj53/v
         U9FtRsPxX5I/wjfiqFOx370c+F37zhiL5j9c2L5T/KcBZ1uOPsUHdJN+C45NxtrkB8JQ
         vkC5xZptMuZU07nFPAESg0lMsoTlvfkVZKyiqsQTG6CvF1uITUiHpjC77bnbqkDqHXXO
         6ErwnbUtz4vYIAY1nmvdXCBH3DTIJHrQzNBB+pb2zknlm8OmQuKAIxUZtS2Qcm8dwPeb
         /HQ/x1Cck+wQ7Z0qkXvUtOR2GbYhbn7MEVaKzhGQMSMlspLNOqy0Uugx70v2C/EA+qPF
         6CoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067430; x=1780672230;
        h=to:from:subject:message-id:references:mime-version:in-reply-to:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Q3KwUKexhBMnhxMu/5zzl7QcY3Y917Dhb3kMyW4ALaw=;
        b=kH5BNEQomU5KjflX2HOY6fXoQuBCUd8+bNda++LSHXe3p4D1XwftgwPQuE2mairQKO
         WQyZkBJohxJsn9jsH9CrvwY1W4ldyNIoKZAdKoxP1P8XuK1ZzSTORVCMiGIQtMa18cSB
         BX7jjh+npwzdd9hPXnaZXRppD62A2hlZvgl8Bbr9yMahCHetLFGO+3nkE5KBmw0Jg0oB
         HeQEn2ks9DFLx/GAj6ngxr2QpEyzSf/T1NK9XObAtlfYNtRPUwKfRyWl+dX3TZ5RTmNE
         NC0mc9oLNBKBqek8itOc448m+ustCArBQBtrIEKWtEMussXSoe/bRoRjZX8lftI3jTn3
         BIXA==
X-Forwarded-Encrypted: i=1; AFNElJ/ke5d32BxVDw0X7Jfa0oZSCOrPEUH3lMCaO3qbPjfQ9xTUnZ0tSYqutNI63wMKp5WuAFC6FyQmFTY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx8Yze/6J+rGPkaG4C5y6kiz1HzM2LNHgjZW2pO37RpwxYGCbYl
	mvuPXP06Ddp0bMH67rt6ihV5gxV5H0OZgpH+N1n7jZBNemR1Oj/FETKb/eMFLyrXsbBpNpWGfjs
	g2V/DgQ==
X-Received: from plpo14.prod.google.com ([2002:a17:903:3e0e:b0:2bf:19e3:ff16])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:1b64:b0:2b7:aa20:3c61
 with SMTP id d9443c01a7336-2bf36858f5bmr2472455ad.33.1780067429457; Fri, 29
 May 2026 08:10:29 -0700 (PDT)
Date: Fri, 29 May 2026 08:10:28 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
Message-ID: <ahmsZA8mHj9CPnd2@google.com>
Subject: Re: [PATCH v4 00/47] x86: Try to wrangle PV clocks vs. TSC
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="us-ascii"
X-purgate-ID: tlsNG-720697/1780067431-AAB68161-2A0F58C4/0/0
X-purgate-type: clean
X-purgate-size: 549

On Fri, May 29, 2026, Sean Christopherson wrote:
> Well, the number of patches in the series is going in the wrong direction,
> but I'm much happier with this version, which eschews the x86_platform
> overrides entirely in favor of a fixed sequence for selecting the TSC/CPU
> frequency "routine".

FYI, our internal mail server flamed out after sending patch 26 in the initial
go.  I'm pretty sure I managed to get the rest sent without screwing up the
threading.  Holler if something is wonky and I'll RESEND the whole pile if necessary.


From xen-devel-bounces@lists.xenproject.org Fri May 29 15:11:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:11:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322500.1588780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyrn-0003sT-4N; Fri, 29 May 2026 15:11:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322500.1588780; Fri, 29 May 2026 15:11:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyrn-0003sM-1C; Fri, 29 May 2026 15:11:19 +0000
Received: by outflank-mailman (input) for mailman id 1322500;
 Fri, 29 May 2026 15:11:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <33qsZagYKCfMnZVieXbjjbgZ.XjhsZi-YZqZggdnon.sZikmjeZXo.jmb@flex--seanjc.bounces.google.com>)
 id 1wSyrl-0003qr-J2
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:11:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyrk-009Kty-W7
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:11:17 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <33qsZagYKCfMnZVieXbjjbgZ.XjhsZi-YZqZggdnon.sZikmjeZXo.jmb@flex--seanjc.bounces.google.com>)
 id 6a19ac90-5cb7-0a2a0a5109dd-0a2a4507abd8-16
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:11:16 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <33qsZagYKCfMnZVieXbjjbgZ.XjhsZi-YZqZggdnon.sZikmjeZXo.jmb@flex--seanjc.bounces.google.com>)
 id 6a19abde-229c-0a2a45070019-d155d6cad061-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:16 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2bd5b20aaa6so149415145ad.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:08:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067294; x=1780672094; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=IXSUk0zrc0SOIpzpc8N9Re3bKO3sQJVctQ52bfDdTtc=;
        b=XoEnfvuuezmXXm+Dh3N9C3lNQ/Ga6e/9phhrVBoYdvLMVHD5AKp4GiPzLXkAC867td
         cgUgTcZSUWfscls0uQ8txehA268EUiGxMR7DCmqiPgalDB/V18TvScdfKiUJIYQ62Tb1
         CkGoF8alHZLBPhwtOiRQ1I23mN3guyQ/6i+4Yb/jzJm25h9RCTXFBB+eSq/QGYKfPIC1
         PJIWCE2yiofOc/ZxobfglpOYGp/i0Q//qZlLCPzFK1+j2d64gGohS4Z3tk1+kK+lXph+
         ni9RjRL9p6J7JIjGWrSpGCVHO20+k1/FqXU2VxKE9cALFc61sA36Ko4+SPNWKbJVqvSp
         VK5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067294; x=1780672094;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=IXSUk0zrc0SOIpzpc8N9Re3bKO3sQJVctQ52bfDdTtc=;
        b=et7KNJ08dspUiuXsVHGkVFDY0sDdu98/bVo/AXcQ3OpF70/AlApbAW4hKWPkA/gMVP
         aWMn7tV7PXm9LKmVBpNdLO+j/++frx7Sw9R7teDguAg58p25kRy2SNzodPMvnxvy7Gb6
         T0L/XZd3bBbXhNm4GjPLHSxmKGdVX5ZiOqUbOASBYufa4G3WLw3SVd92paUVXG77tCe4
         V5QQPRC+6c0/WmG3PJ4sZnnn+vfYk7akWvNtwiitoULAcuhKMIHe3v6xdGkC7hIje4Am
         0DV4Gv3vplHtkj6gWOXo57Mq14KiEp3PkAzu33k5Xyz55D+Q4sXhFAN4RRVzmVK0QnUw
         swxA==
X-Forwarded-Encrypted: i=1; AFNElJ8Bi7tsPZvnRgPop7s3tF7KpZFiT+X+l7ztjtT8lM1G3lSVul/47ScF2ksiTtzAG3Vic+1j8VRXsLY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzLQleTIbpCtmQ5Q/LlEGAyiTsrHS1dKo6EBbsz8MGfzXJCeaoP
	fREEBo986ienRHVnuktLVW3p4vSok6iktow6NEy1zBVzQR5T2IqAygcYdMQj28EzSKf6DyYRr76
	LteW2ZA==
X-Received: from plblh4.prod.google.com ([2002:a17:903:2904:b0:2ae:ceb3:f968])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:e842:b0:2ba:6ebe:4897
 with SMTP id d9443c01a7336-2bf367b37demr2834085ad.3.1780067294027; Fri, 29
 May 2026 08:08:14 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:08:12 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150812.714604-1-seanjc@google.com>
Subject: [PATCH v4 38/47] x86/kvmclock: Refactor handling of
 PVCLOCK_TSC_STABLE_BIT during kvmclock_init()
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-ef75cf/1780067296-21969C48-BE91FD98/0/0
X-purgate-type: clean
X-purgate-size: 1894

Clean up the setting of PVCLOCK_TSC_STABLE_BIT during kvmclock init to
make it somewhat obvious that pvclock_read_flags() must be called *after*
pvclock_set_flags().

Note, in theory, a different PV clock could have set PVCLOCK_TSC_STABLE_BIT
in the supported flags, i.e. reading flags only if
KVM_FEATURE_CLOCKSOURCE_STABLE_BIT is set could very, very theoretically
result in a change in behavior.  In practice, the kernel only supports a
single PV clock.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 6372b4dc7b0c..4e304f1c887d 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -305,7 +305,7 @@ static __init void kvm_sched_clock_init(bool stable)
 
 void __init kvmclock_init(bool prefer_tsc)
 {
-	u8 flags;
+	bool stable = false;
 
 	if (!kvm_para_available() || !kvmclock)
 		return;
@@ -332,11 +332,18 @@ void __init kvmclock_init(bool prefer_tsc)
 	kvm_register_clock("primary cpu clock");
 	pvclock_set_pvti_cpu0_va(hv_clock_boot);
 
-	if (kvm_para_has_feature(KVM_FEATURE_CLOCKSOURCE_STABLE_BIT))
+	if (kvm_para_has_feature(KVM_FEATURE_CLOCKSOURCE_STABLE_BIT)) {
 		pvclock_set_flags(PVCLOCK_TSC_STABLE_BIT);
 
-	flags = pvclock_read_flags(&hv_clock_boot[0].pvti);
-	kvm_sched_clock_init(flags & PVCLOCK_TSC_STABLE_BIT);
+		/*
+		 * Check if the clock is stable *after* marking TSC_STABLE as a
+		 * valid flag.
+		 */
+		stable = pvclock_read_flags(&hv_clock_boot[0].pvti) &
+			 PVCLOCK_TSC_STABLE_BIT;
+	}
+
+	kvm_sched_clock_init(stable);
 
 	if (!x86_init.hyper.get_tsc_khz)
 		x86_init.hyper.get_tsc_khz = kvmclock_get_tsc_khz;
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:11:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:11:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322501.1588790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyrq-00048V-Bt; Fri, 29 May 2026 15:11:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322501.1588790; Fri, 29 May 2026 15:11:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyrq-00048O-7l; Fri, 29 May 2026 15:11:22 +0000
Received: by outflank-mailman (input) for mailman id 1322501;
 Fri, 29 May 2026 15:11:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <34asZagYKCfYqcYlhaemmejc.amkvcl-bctcjjgqrq.vclnpmhcar.mpe@flex--seanjc.bounces.google.com>)
 id 1wSyrp-00046L-70
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:11:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyro-009Kty-K0
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:11:20 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <34asZagYKCfYqcYlhaemmejc.amkvcl-bctcjjgqrq.vclnpmhcar.mpe@flex--seanjc.bounces.google.com>)
 id 6a19ac90-5cb7-0a2a0a5109dd-0a2a4507abd8-22
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:11:20 +0200
Received: from [209.85.216.73] (helo=mail-pj1-f73.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <34asZagYKCfYqcYlhaemmejc.amkvcl-bctcjjgqrq.vclnpmhcar.mpe@flex--seanjc.bounces.google.com>)
 id 6a19abe2-229c-0a2a45070019-d155d849e42a-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:20 +0200
Received: by mail-pj1-f73.google.com with SMTP id
 98e67ed59e1d1-36781927b4dso8581659a91.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:08:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067298; x=1780672098; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=tzOZYRAyrYNaAuUvG5/Y5SZS8EF8Fxjy2/uxgYTIQuI=;
        b=moqTaH6gclapPR5HEYVN+GRZ9f5bQ8c37bpPsgqI3kJUvDNszwmFNlugup8SeZL1Rz
         xMQhqnEd/9Qt01aHaFwkuL9v73+ckvewMUXtAV9EI+MlAns2SGy7evjsv1g7JrGyS/1c
         hMEhYZq3NQtkz233tVFOtyGClVjsoKBSq9OZgVAJzrdbIw8WRHLKEKH/v6Q+kRgSXhEW
         PGfheYdXhGxVlCmP8Q6tDRD1P62dTmXs/chkKOoUokn8OkaVX8KXRHUxGXIalBpyiqIe
         kWdZ6uCxxCZk5QQMvHaA2alOMVnGMA6jAJAno9agIJh/eN6cFEBKY3Fv9yunfbLOgd6o
         pkWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067298; x=1780672098;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=tzOZYRAyrYNaAuUvG5/Y5SZS8EF8Fxjy2/uxgYTIQuI=;
        b=g6OwW3yzYKjiMdmMXARErWrSfJoPqWM/DKym+7hB19GKstrMS8DrYCpOjk0+ggkzJP
         Hb6wuVJtxnWoT+tCFdmlhJB+RDGaOzechKQaWE8jG6vbDrkKz0EPGyCI3X1gxgqcu8bu
         D+cRV+rHdX9y81PyoQxY+gYsqKI7uoPFSbrkD0dmjosTmT9ohGkQL31FxFh+dTOqumO6
         lIJY8tK/sFmkg33JAbPqua+x9sD1udjbzndzJ0qlpnyCF2QIhDPDqqzkT+xIcnLFO/n9
         VHybEuj9sjL7/9A3A/Q25ZO9Nh6ER2aCloIAUqLRKZlcTEzeApF7cnGi0VrQaS64EkBu
         Tz4Q==
X-Forwarded-Encrypted: i=1; AFNElJ9LkUobs/AR8JQrOqbuYTPV+gO12E3bU4vVOiUekP7Wlt9nUFG7KPYx/z90ZCr2IRjWjZXxULyZfCM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw23/NVYhbdfz84P5KuP8UyTdYAk/adTNcfJsn65yezeB7SJZbB
	sq5RZ0u2XtxzeS6Ci8Lu1XXJvPFWC/FNBBdFLkYCiB4UOqXYlwOadDS6bSbFEImXY6mv3hmngLF
	ycKjqOw==
X-Received: from pgbbz16.prod.google.com ([2002:a05:6a02:610:b0:c82:253f:d5e6])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:5281:b0:36b:293:68d1
 with SMTP id 98e67ed59e1d1-36bbcfd8de4mr3965602a91.16.1780067297895; Fri, 29
 May 2026 08:08:17 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:08:14 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150814.714658-1-seanjc@google.com>
Subject: [PATCH v4 39/47] timekeeping: Resume clocksources before reading
 persistent clock
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-ef75cf/1780067300-22D77C48-A08B5CBF/0/0
X-purgate-type: clean
X-purgate-size: 1667

When resuming timekeeping after suspend, restore clocksources prior to
reading the persistent clock.  Paravirt clocks, e.g. kvmclock, tie the
validity of a PV persistent clock to a clocksource, i.e. reading the PV
persistent clock will return garbage if the underlying PV clocksource
hasn't been enabled.  The flaw has gone unnoticed because kvmclock is a
mess and uses its own suspend/resume hooks instead of the clocksource
suspend/resume hooks, which happens to work by sheer dumb luck (the
kvmclock resume hook runs before timekeeping_resume()).

Note, there is no evidence that any clocksource supported by the kernel
depends on a persistent clock.

Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 kernel/time/timekeeping.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index c493a4010305..26f3291a814d 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -2098,11 +2098,16 @@ void timekeeping_resume(void)
 	u64 cycle_now, nsec;
 	unsigned long flags;
 
-	read_persistent_clock64(&ts_new);
-
 	clockevents_resume();
 	clocksource_resume();
 
+	/*
+	 * Read persistent time after clocksources have been resumed.  Paravirt
+	 * clocks have a nasty habit of piggybacking a persistent clock on a
+	 * system clock, and may return garbage if the system clock is suspended.
+	 */
+	read_persistent_clock64(&ts_new);
+
 	raw_spin_lock_irqsave(&tk_core.lock, flags);
 
 	/*
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:12:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:12:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322515.1588798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSysx-00059p-Lo; Fri, 29 May 2026 15:12:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322515.1588798; Fri, 29 May 2026 15:12:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSysx-00059h-IQ; Fri, 29 May 2026 15:12:31 +0000
Received: by outflank-mailman (input) for mailman id 1322515;
 Fri, 29 May 2026 15:12:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <36qsZagYKCQEtfbokdhpphmf.dpnyfo-efwfmmjtut.yfoqspkfdu.psh@flex--seanjc.bounces.google.com>)
 id 1wSysw-00059P-2h
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:12:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSysv-00EPYa-Ff
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:12:29 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <36qsZagYKCQEtfbokdhpphmf.dpnyfo-efwfmmjtut.yfoqspkfdu.psh@flex--seanjc.bounces.google.com>)
 id 6a19acc5-bab6-0a2a0a5309dd-0a2a450bbb3e-36
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:12:29 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <36qsZagYKCQEtfbokdhpphmf.dpnyfo-efwfmmjtut.yfoqspkfdu.psh@flex--seanjc.bounces.google.com>)
 id 6a19abeb-212f-0a2a450b0019-d155d6cabd69-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:28 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2bf1845bddfso13003305ad.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:08:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067307; x=1780672107; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=2eZ/5/NHYtlqNBUgYS8sS/KxrmMqlqE8QNmqFczaR90=;
        b=MV5cYKVyoqlzWyE+a5+5kVAqmLv0JHlZMJq8/3JPZkwrs58+o+kfC6FgSDmyfQ0Iwy
         T/PFPKWTepui9RTkRuhxE1BQf94ZT3uxzHy8CcgfMu8I9GLM+PhaZt2nMB2dVYoaVRP3
         X2/JEjUnX5e7jTIYlp+jMaEaK8Gi7+yRR9GBcuiBSefJIMUUFQMgdTl/++Zu2wqQ+i+s
         vrlrpo8TWuT8xm2WsyumfxnddNeAqjp2hIVVDM4G3b8xzyHP5WKCV4iYKxM33UU8PMKD
         pQtwBzkXivikA7/iceU0TecTElLmIb+YQtCVh3pOPdKPHa+WZnKG1BbkSWyplCljLz4k
         reeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067307; x=1780672107;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=2eZ/5/NHYtlqNBUgYS8sS/KxrmMqlqE8QNmqFczaR90=;
        b=hFbJj+00zbiqR4gjwoGIKFQuO8lHqTp59AhWlSvFLjvPfdSVN8AM3e2ftx5OX0ZQz8
         DcGPB49MqN9dalXXNfPkhU3ieoB3ziVPNNG951cMMMPxe1UAAvp7ySU8EW1KrOZwJrx2
         pmLXtVcCZnaBYL08OeryGJJr7/E8IN/qMKZ88rM5W4odq2+UZp6uSVdlRXS+QAt+BeA6
         68eQ1N3DCHNBd9Cw367diPcha688Nbj6jP40aK9nOYoB2TWlnqb8EsVsIAETUkxQZr+N
         gkE6QagzBCSRd5exuGYrf79oPYZ7zPLi3hu2QgjN5/uWMTceBP7oL1r9OpBiSNYCnsH3
         2iBA==
X-Forwarded-Encrypted: i=1; AFNElJ8sBvCXfo1R9KYolYGlD/VE1/xIMXxoaDScb73tocotaQchx2ytqbYVuWlywl1MEQ2sjGgfEyoNwfU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxf7fEMZDkM9ZwD6A6YgHlkMtwWhot78AVLQPuVJPjoGC3eNoJR
	uRMNWYqEtOP3E8qz7UfBfkJEafya+Of8AvdJsDpTt6qCSPCVNqn66YIP758yo6r3GHmhtvItel8
	O11klfw==
X-Received: from plau10.prod.google.com ([2002:a17:903:304a:b0:2ba:67f8:6257])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:c94c:b0:2bf:604:d5ad
 with SMTP id d9443c01a7336-2bf368904abmr2085275ad.37.1780067306314; Fri, 29
 May 2026 08:08:26 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:08:24 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150824.714934-1-seanjc@google.com>
Subject: [PATCH v4 43/47] x86/paravirt: Plumb a return code into __paravirt_set_sched_clock()
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-42698a/1780067309-22589F3B-2F21E06D/0/0
X-purgate-type: clean
X-purgate-size: 3365

Add a return code to __paravirt_set_sched_clock() so that the kernel can
reject attempts to use a PV sched_clock without breaking the caller.  E.g.
when running as a CoCo VM with a secure TSC, using a PV clock is generally
undesirable.

Note, kvmclock is the only PV clock that does anything "extra" beyond
simply registering itself as sched_clock, i.e. is the only caller that
needs to check the new return value.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/timer.h | 6 +++---
 arch/x86/kernel/kvmclock.c   | 9 ++++++---
 arch/x86/kernel/tsc.c        | 5 +++--
 3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index 96ae7feac47c..ca5c95d48c03 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -14,14 +14,14 @@ extern int no_timer_check;
 extern bool using_native_sched_clock(void);
 
 #ifdef CONFIG_PARAVIRT
-void __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
-				       void (*save)(void), void (*restore)(void));
+int __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
+				      void (*save)(void), void (*restore)(void));
 
 static __always_inline void paravirt_set_sched_clock(u64 (*func)(void),
 						     void (*save)(void),
 						     void (*restore)(void))
 {
-	__paravirt_set_sched_clock(func, true, save, restore);
+	(void)__paravirt_set_sched_clock(func, true, save, restore);
 }
 #endif
 
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 73fabfac2bc9..1336c24f59cf 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -310,10 +310,13 @@ static int kvmclock_setup_percpu(unsigned int cpu)
 
 static __init void kvm_sched_clock_init(bool stable)
 {
+	/* Ensure the offset is configured before making kvmclock visible! */
 	kvm_sched_clock_offset = kvm_clock_read();
-	__paravirt_set_sched_clock(kvm_sched_clock_read, stable,
-				   kvm_save_sched_clock_state,
-				   kvm_restore_sched_clock_state);
+
+	if (__paravirt_set_sched_clock(kvm_sched_clock_read, stable,
+				       kvm_save_sched_clock_state,
+				       kvm_restore_sched_clock_state))
+		return;
 
 	/*
 	 * The BSP's clock is managed via dedicated sched_clock save/restore
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 6da0a3ac05c2..7bcf757bf551 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -280,8 +280,8 @@ bool using_native_sched_clock(void)
 	return static_call_query(pv_sched_clock) == native_sched_clock;
 }
 
-void __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
-				       void (*save)(void), void (*restore)(void))
+int __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
+				      void (*save)(void), void (*restore)(void))
 {
 	if (!stable)
 		clear_sched_clock_stable();
@@ -289,6 +289,7 @@ void __init __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
 	static_call_update(pv_sched_clock, func);
 	x86_platform.save_sched_clock_state = save;
 	x86_platform.restore_sched_clock_state = restore;
+	return 0;
 }
 #else
 u64 sched_clock_noinstr(void) __attribute__((alias("native_sched_clock")));
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:12:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:12:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322516.1588807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyt3-0005RD-TA; Fri, 29 May 2026 15:12:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322516.1588807; Fri, 29 May 2026 15:12:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyt3-0005Qy-PV; Fri, 29 May 2026 15:12:37 +0000
Received: by outflank-mailman (input) for mailman id 1322516;
 Fri, 29 May 2026 15:12:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <38KsZagYKCQczlhuqjnvvnsl.jvt4lu-kl2lsspz0z.4luwyvqlj0.vyn@flex--seanjc.bounces.google.com>)
 id 1wSyt2-0005Oj-6h
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:12:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyt1-005uea-Fl
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:12:35 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <38KsZagYKCQczlhuqjnvvnsl.jvt4lu-kl2lsspz0z.4luwyvqlj0.vyn@flex--seanjc.bounces.google.com>)
 id 6a19accf-5cb7-0a2a0a5109dd-0a2a4502b5c6-26
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:12:35 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <38KsZagYKCQczlhuqjnvvnsl.jvt4lu-kl2lsspz0z.4luwyvqlj0.vyn@flex--seanjc.bounces.google.com>)
 id 6a19abf1-af86-0a2a45020019-d155d6c9a9b4-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:34 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2bf2bc4371bso3028935ad.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:08:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067313; x=1780672113; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=UfrlcsEyKDSqAVUZDFPjPbjb9qd7cdvAZhMFheCkbts=;
        b=VEAc2cOMsYQ/WBBpvTCgDgE8hzLiatTISgRV7sQX5pPw7mVs5OQlubbYjsCwiMNQ3A
         wUIQp1/vWfci5i/DSVf80mLPpNtuTLNP3oPzLd0qzxIe/+g8KMw/hZS0emj57FlS85kW
         XrxFvy4dAnItNWKWCwitbqvE8FiGAkaNPFrNtvNH7MwuZMxPEkruaVN8PPOh/5QVNL/V
         PF+4y0ot+m/HTLiE/tylnp8UFt1W4GaV26I5LEVm82DaAoQbOYlXuAqYH1edx+fS4+6J
         LZPHwML4j4j27u+w59BKt8A6sB3Rai/NbPvE7s+GbkI/k0ijp5usV4q8fisKF+O6Sidz
         zs3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067313; x=1780672113;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=UfrlcsEyKDSqAVUZDFPjPbjb9qd7cdvAZhMFheCkbts=;
        b=WxxXoR1NwODSmtsi3i1zl7UGOuS25cczLysJQWc2n75zlvFNeKqKo4K7YEPEtKOcic
         jGleKHPHqt4nsoCuDgA/zb/Ot4hBpj2PlRo/BP9411u6tSp1Dbcae4As8ok93PkMR8xo
         iGsVyc69Jz/nRb/udG8eSLNo7or108MGWKx3mxwOho1Ozf4wzzqupvVrpaKd6H1m4xMv
         m5rg1WEKvG8YCXduLvnnNUrpZ68fjhceT/kv4UHnkvU8ml3/S5bOMlPfLTmddQFnAznV
         GJWZb4hdX3NxoRSjf/FWiqb4PwlbN75/5AUNRUYIKPVwvzOFabFW2u1yBi7VucP/stV2
         yZIg==
X-Forwarded-Encrypted: i=1; AFNElJ8WG+n2wwpTgCYgvKXCcjCH6IL8xd2Bkp556rMelvyLfxsmIK3cjp92vFmXndzbLR1VfgPs+A65Dvs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwUI1uLq1hAEWyAHWxuml83E9Gbi7pqf7AIaG+uFsnt75xuJbmc
	qOcdowPA+QWgiQmlGTzLwr3byTfGTzu2iIWIXAdhWtgOL/STDRYe4Q51ui0ewuCPe22qe3lrvlZ
	0odPExg==
X-Received: from plpp10.prod.google.com ([2002:a17:902:c70a:b0:2bd:56ce:d8ea])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:fc85:b0:2bc:ac76:c1d0
 with SMTP id d9443c01a7336-2bf20de3033mr36747075ad.17.1780067312791; Fri, 29
 May 2026 08:08:32 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:08:30 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150830.715007-1-seanjc@google.com>
Subject: [PATCH v4 45/47] x86/kvmclock: Use TSC for sched_clock if it's
 constant and non-stop
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-720697/1780067315-A937C161-BD326D31/13/0
X-purgate-type: clean
X-purgate-size: 2230

Prefer the TSC over kvmclock for sched_clock if the TSC is constant,
nonstop, and not marked unstable via command line.  I.e. use the same
criteria as tweaking the clocksource rating so that TSC is preferred over
kvmclock.  Per the below comment from native_sched_clock(), sched_clock
is more tolerant of slop than clocksource; using TSC for clocksource but
not sched_clock makes little to no sense, especially now that KVM CoCo
guests with a trusted TSC use TSC, not kvmclock.

        /*
         * Fall back to jiffies if there's no TSC available:
         * ( But note that we still use it if the TSC is marked
         *   unstable. We do this because unlike Time Of Day,
         *   the scheduler clock tolerates small errors and it's
         *   very important for it to be as fast as the platform
         *   can achieve it. )
         */

The only advantage of using kvmclock is that doing so allows for early
and common detection of PVCLOCK_GUEST_STOPPED, but that code has been
broken for over two years with nary a complaint, i.e. it can't be
_that_ valuable.  And as above, certain types of KVM guests are losing
the functionality regardless, i.e. acknowledging PVCLOCK_GUEST_STOPPED
needs to be decoupled from sched_clock() no matter what.

Link: https://lore.kernel.org/all/Z4hDK27OV7wK572A@google.com
Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/kvmclock.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 1336c24f59cf..cd65ad328637 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -374,7 +374,6 @@ void __init kvmclock_init(bool prefer_tsc)
 			 PVCLOCK_TSC_STABLE_BIT;
 	}
 
-	kvm_sched_clock_init(stable);
 
 	if (!x86_init.hyper.get_tsc_khz)
 		x86_init.hyper.get_tsc_khz = kvmclock_get_tsc_khz;
@@ -394,6 +393,8 @@ void __init kvmclock_init(bool prefer_tsc)
 	 */
 	if (prefer_tsc)
 		kvm_clock.rating = 299;
+	else
+		kvm_sched_clock_init(stable);
 
 	clocksource_register_hz(&kvm_clock, NSEC_PER_SEC);
 	pv_info.name = "KVM";
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:12:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:12:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322517.1588817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyt6-0005gV-AT; Fri, 29 May 2026 15:12:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322517.1588817; Fri, 29 May 2026 15:12:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyt6-0005gK-4j; Fri, 29 May 2026 15:12:40 +0000
Received: by outflank-mailman (input) for mailman id 1322517;
 Fri, 29 May 2026 15:12:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <386sZagYKCQo2okxtmqyyqvo.myw7ox-no5ovvs232.7oxz1ytom3.y1q@flex--seanjc.bounces.google.com>)
 id 1wSyt4-0005Z8-Ft
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:12:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyt3-005uea-Sv
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:12:37 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <386sZagYKCQo2okxtmqyyqvo.myw7ox-no5ovvs232.7oxz1ytom3.y1q@flex--seanjc.bounces.google.com>)
 id 6a19acda-5cb7-0a2a0a5109dd-0a2a450c91cc-20
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:12:37 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <386sZagYKCQo2okxtmqyyqvo.myw7ox-no5ovvs232.7oxz1ytom3.y1q@flex--seanjc.bounces.google.com>)
 id 6a19abf4-62f1-0a2a450c0019-d155d6cadc81-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:37 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2bf281d523eso3211835ad.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:08:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067315; x=1780672115; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=NsWUFw3C//DyVpAd+DrRqJ7N44+Z3glyMOS0MZwC4vY=;
        b=BfTJEKM+I2YseVMSXtvefk1piBk1W9Il2L2m4qRDBYXFRyBp4F2bX05xs7s1Kvg5ej
         0Sfy2EN8BkLQnV6cDirZfju6dBTF15ApXYO/pfPC98wm3i0s8FvEZPKohre3OmcnYVLi
         QeAv3IvnvG5A3bQTZAmlkrKb+adPG96IUl+qYudPt20LntvaQSKX/OSDg7XRb2Z16wfS
         gmGzLVYh2PzREwzmN5kHZ2X4eNLZmhNF6sf+S6vL0cLwDcs6PvRvZirD16n47BtVSreT
         6t28cTIn1tJik61iCysQJlB19X/Za1aL+X1iNDVD3DR7Gh0jN5+9+EZxEF27UYsI4PtT
         n1Uw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067315; x=1780672115;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=NsWUFw3C//DyVpAd+DrRqJ7N44+Z3glyMOS0MZwC4vY=;
        b=DXHLu5jKsAmReQborZY+k+g2zF39rfBtrMATkFloe8XVZDvv506aBLtPeDc0Kvo4QM
         h3sFtEYkl4c39JigRa0Gk9bjj7xRUdO75SJ8vfO1b0swgT/Qfkor8y2Md8+iMe1lq9Oq
         zlXkFvuGEt+z56aUG1CAV/vcALXwdG/ADHoqEN3epFqjD2YVxvH5TXKYxmfmppHbK5zy
         z7XdCO/CmsS7Zr/EsKSm25RyGdV/CV1BU5V2F4uCPdN+F54MYin3MSik8NvQrmw3q4mU
         sMrKItM6yEpGS3X6ASAK+KRNmFFJUXohCw85GyOYU71T70gNd+qPapHbvOnnIVxz3H/B
         tNhw==
X-Forwarded-Encrypted: i=1; AFNElJ/P1opLywO+yBjbcl7Kdkk5mmmwrZw7otc3sPnkAuZzwEk9rJm35ndUJt35dDkORPJ7iSiP90+44jM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz6tm2xnbzGNlH/6VQawJMoDRaOBvuk6vtakhiOanwf1xbhRsND
	RJmI4sWVb29DkizTN25GLC9on0aa6vrd8K03zrHU3kQ/g4klBgFzRlD+jrMRLT9vxcfQGVuTzti
	p8+XTCg==
X-Received: from ploo20.prod.google.com ([2002:a17:902:e014:b0:2ba:41dd:4a8e])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:2bce:b0:2b4:5f96:184d
 with SMTP id d9443c01a7336-2bf3679ebb8mr2933525ad.5.1780067315192; Fri, 29
 May 2026 08:08:35 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:08:33 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150833.715042-1-seanjc@google.com>
Subject: [PATCH v4 46/47] x86/kvmclock: Plumb in AP-online and BSP-resume to
 kvmlock, for documentation
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-d25034/1780067317-DAD73CF5-FEF6114E/13/0
X-purgate-type: clean
X-purgate-size: 4539

Invoke kvmclock_cpu_action() with AP_ONLINE and BSP_RESUME, even though
kvmclock doesn't need to do anything in either case, so that the asymmetry
of kvmclock is a detail buried in kvmclock, and to explicitly document
that doing nothing during those phases is intentional and correct.

For all intents and purposes, no functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/kvm_para.h |  2 ++
 arch/x86/kernel/kvm.c           | 22 +++++++++++++-------
 arch/x86/kernel/kvmclock.c      | 37 ++++++++++++++++++++++++++-------
 3 files changed, 45 insertions(+), 16 deletions(-)

diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h
index 08686ff19caa..763ed017738a 100644
--- a/arch/x86/include/asm/kvm_para.h
+++ b/arch/x86/include/asm/kvm_para.h
@@ -120,6 +120,8 @@ static inline long kvm_sev_hypercall3(unsigned int nr, unsigned long p1,
 #ifdef CONFIG_KVM_GUEST
 enum kvm_guest_cpu_action {
 	KVM_GUEST_BSP_SUSPEND,
+	KVM_GUEST_BSP_RESUME,
+	KVM_GUEST_AP_ONLINE,
 	KVM_GUEST_AP_OFFLINE,
 	KVM_GUEST_SHUTDOWN,
 };
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index fd1c417b4f9b..2ed4bf13e3ed 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -474,18 +474,24 @@ static void kvm_guest_cpu_offline(enum kvm_guest_cpu_action action)
 	kvmclock_cpu_action(action);
 }
 
+static void __kvm_cpu_online(unsigned int cpu, enum kvm_guest_cpu_action action)
+{
+	unsigned long flags;
+
+	local_irq_save(flags);
+	kvmclock_cpu_action(action);
+	kvm_guest_cpu_init();
+	local_irq_restore(flags);
+}
+
+#ifdef CONFIG_SMP
+
 static int kvm_cpu_online(unsigned int cpu)
 {
-	unsigned long flags;
-
-	local_irq_save(flags);
-	kvm_guest_cpu_init();
-	local_irq_restore(flags);
+	__kvm_cpu_online(cpu, KVM_GUEST_AP_ONLINE);
 	return 0;
 }
 
-#ifdef CONFIG_SMP
-
 static DEFINE_PER_CPU(cpumask_var_t, __pv_cpu_mask);
 
 static bool pv_tlb_flush_supported(void)
@@ -750,7 +756,7 @@ static int kvm_suspend(void *data)
 
 static void kvm_resume(void *data)
 {
-	kvm_cpu_online(raw_smp_processor_id());
+	__kvm_cpu_online(raw_smp_processor_id(), KVM_GUEST_BSP_RESUME);
 
 #ifdef CONFIG_ARCH_CPUIDLE_HALTPOLL
 	if (kvm_para_has_feature(KVM_FEATURE_POLL_CONTROL) && has_guest_poll)
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index cd65ad328637..d122912b8856 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -129,7 +129,7 @@ static void kvm_save_sched_clock_state(void)
 #ifdef CONFIG_SMP
 static void kvm_setup_secondary_clock(void)
 {
-	kvm_register_clock("secondary cpu clock");
+	kvm_register_clock("secondary cpu, startup");
 }
 #endif
 
@@ -153,13 +153,34 @@ static void kvmclock_resume(struct clocksource *cs)
 
 void kvmclock_cpu_action(enum kvm_guest_cpu_action action)
 {
-	/*
-	 * Don't disable kvmclock on the BSP during suspend.  If kvmclock is
-	 * being used for sched_clock, then it needs to be kept alive until the
-	 * last minute, and restored as quickly as possible after resume.
-	 */
-	if (action != KVM_GUEST_BSP_SUSPEND)
+	switch (action) {
+		/*
+		 * The BSP's clock is managed via clocksource suspend/resume,
+		 * to ensure it's enabled/disabled when timekeeping needs it
+		 * to be, e.g. before reading wallclock (which uses kvmclock).
+		 */
+	case KVM_GUEST_BSP_SUSPEND:
+	case KVM_GUEST_BSP_RESUME:
+		break;
+	case KVM_GUEST_AP_ONLINE:
+		/*
+		 * Secondary CPUs use a dedicated hook to enable kvmclock early
+		 * during bringup, there's nothing to be done during CPU online
+		 * (which runs at CPUHP_AP_ONLINE_DYN).  When kvmclock is being
+		 * used as sched_clock, kvmclock must be enabled *very* early,
+		 * and even when kvmclock is "only" being used for the main
+		 * clocksource, it still needs to be enabled long before the
+		 * dynamic CPUHP calls are made.
+		 */
+		break;
+	case KVM_GUEST_AP_OFFLINE:
+	case KVM_GUEST_SHUTDOWN:
 		kvmclock_disable();
+		break;
+	default:
+		WARN_ON_ONCE(1);
+		break;
+	}
 }
 
 /*
@@ -360,7 +381,7 @@ void __init kvmclock_init(bool prefer_tsc)
 		msr_kvm_system_time, msr_kvm_wall_clock);
 
 	this_cpu_write(hv_clock_per_cpu, &hv_clock_boot[0]);
-	kvm_register_clock("primary cpu clock");
+	kvm_register_clock("primary cpu, online");
 	pvclock_set_pvti_cpu0_va(hv_clock_boot);
 
 	if (kvm_para_has_feature(KVM_FEATURE_CLOCKSOURCE_STABLE_BIT)) {
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:12:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:12:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322520.1588825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSytA-00061G-FW; Fri, 29 May 2026 15:12:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322520.1588825; Fri, 29 May 2026 15:12:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSytA-000617-Bo; Fri, 29 May 2026 15:12:44 +0000
Received: by outflank-mailman (input) for mailman id 1322520;
 Fri, 29 May 2026 15:12:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wSyt8-0005yR-N1
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:12:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyt8-00EPc7-3p
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:12:42 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a19acde-bab6-0a2a0a5309dd-0a2a4506c0aa-34
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:12:42 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a19ace9-7371-0a2a45060019-d1558029d99b-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:12:41 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-4905e190c71so67848755e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:12:41 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.25.69]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-490a25e4fe7sm7305335e9.0.2026.05.29.08.12.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 May 2026 08:12:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1780067561; x=1780672361; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=IFaohJmJppYna9HQaa7GLrFTgGHuc8+HRVmhBeC5YQs=;
        b=BahTU7DAfmdvRl1t27zOKRU9Og8EZvwcleWYOj0RXsI8dn9R4yX0f18apknfhz11mh
         HpBbRrBkpHMsIwsd7E94B5SoULWGsX8e6jOfuldS3yriGSn7NSz68xbAeQbQAjzfdKrM
         6bysRf5ZNKLIeOzJJRf6qjJrzdDaT74b379nQjaOBjlNic5Akv6yndVEobZ8gJpV9gWw
         HVPGr074Ko2MZE9bhw+YQims3TTx9qNEjBHXMyD8NuVmfd5RG3L0wBWz3jJSHfVjccjA
         HFxB9AW/gaWdlDbJPwDPhZO/I2Z1cvaZDbyYbW9fIMutcVBcQ+xoVu5omXYt5P6zK7ua
         OWPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067561; x=1780672361;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IFaohJmJppYna9HQaa7GLrFTgGHuc8+HRVmhBeC5YQs=;
        b=WnpRUfEkWrqJLfprZ9aVbdGnh2nvWSfn5MjjHYbhm7Pq3NVNcPgOZEKrPNYErOOdtJ
         mhalI6ZngFgMsiKuZ2AkxPYoCahq+KpH3vGNdkmWuLhlky4abDyVOSHf6GUft5s/Iecz
         FkHTfHXX9qe4Yu2pPgDcGwDHhFxji8He+JODbqoItgIMmLA078Hi+pE5Y7bSqj9sbay4
         smsl66aa4opMaogqR/NbNevXAzMg6AtLBTepDXE+/DrIGfeD7W/SvW8kriLqlv1HYOGK
         N8NRFtm/yG14c7iA5lYlRfos134W0inUC3MnfItih0jOmN8wfnBNXgOsaFhtFYxa5NaQ
         B/oA==
X-Gm-Message-State: AOJu0YzDU7INRW9aRPw/2sBzExYbBV1JlgNIgYbahcMDjvomv3u3TLiL
	z14RE5Si7XQ5FNxKSUv45Re3mcQqVNZN/ryPNRVAdcWjs+bo76RdvFcB+LyBow==
X-Gm-Gg: Acq92OF3w1RBff7giIxpkXBXe8MeL6OK5/1uiayH3KOrxnnC0E23Wo4czxSDIulfnva
	BdyLTep+qs4soce05eRnC6i8XRaHcqR5elH9usaRvHkSds4ooa9tb6OS7gRvQ010xlkJgDlqW3p
	Nz2bqZcIz55Z931/557xcUzViBFPZ/R0nhKKae37P2iOggz9BaO8KSe5qYb6z4BBavpesHFV8Ct
	7skgsnK4QdLaBusEVD9Dhhdnb9LcCRepaGo4eW0ZPEQQKSdk050ea1GdYEQ2PXfY89nLHpN7bWo
	4hp3MrU/cCwB1snMw1gZcSFxSaQbAsenS3uA2QGGmNqukTVakrnpPhezF1VaOONDrUoUqc7FQ6Y
	iwqFvQ+xqMPa8KQS2TBa8BsCLVMLIqjvOQ8ai8u95chb35XSmR1e0heeJV4zGjjmdG/kElmqCzH
	EUIvMcK8yVXNgdUunZHGidomCB2j/URH0wMhax
X-Received: by 2002:a05:600c:4e92:b0:490:8fd1:72a with SMTP id 5b1f17b1804b1-490a2900dacmr1227315e9.3.1780067560514;
        Fri, 29 May 2026 08:12:40 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH for-4.22] device-tree: validate first hwdom bank for boot modules
Date: Fri, 29 May 2026 18:10:33 +0300
Message-ID: <4f862bb2dc323914b8120b0f16af7516140cf42b.1780065103.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1780067561-85160D75-28A439F6/0/0
X-purgate-type: clean
X-purgate-size: 16430

From: Mykola Kvach <mykola_kvach@epam.com>

With LLC coloring enabled, the hardware domain memory is allocated by
allocate_hwdom_memory() rather than by using the fixed direct-map layout.

Commit de99f3263555 ("device-tree: Improve hwdom memory allocation for
DMA") made that allocator prefer lower host regions. The first-bank
filter, however, still only checked the old 128MB heuristic. A low
region can satisfy that heuristic but still be too small, or otherwise
unsuitable, for the hardware-domain kernel and the DTB/initrd module
area to fit in bank 0 according to the Arm placement rules.

Keep the existing first-bank size policy and add an architecture-specific
candidate check. On Arm, compute the kernel load address for the candidate
bank using the same logic as kernel_zimage_place(), verify that the kernel
range is covered by that bank, and then reuse the same module-placement
helper as place_modules(). The FDT is generated later, so use the
hardware-domain FDT allocation size as a conservative upper bound for the
final DTB size.

Check the candidate after capping the host region by the remaining
unassigned hardware-domain memory, so the validation is performed against
the size that would actually become bank 0.

This keeps the DMA-oriented allocation policy from de99f3263555 while
preventing a too-small bank 0 from reaching place_modules().

Fixes: de99f3263555 ("device-tree: Improve hwdom memory allocation for DMA")
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes since RFC:
- Do not keep the RFC scalar minimum-size check. It can both reject
  valid layouts and accept layouts which still fail later. Instead,
  validate the candidate bank using the same kernel and module placement
  rules as the load path.
  Replace the scalar minimum-size check with arch_hwdom_first_bank_ok().
- Reuse the existing Arm kernel and DTB/initrd placement rules for the
  first-bank candidate check.
- Treat the hardware-domain FDT allocation size as a conservative upper
  bound because the final FDT is generated later.

Link to RFC:
   https://patchew.org/Xen/9ae4f7dd49f5b1f761193adae573c2675c92e883.1779051035.git.mykola._5Fkvach@epam.com/

Why the RFC scalar approach was not kept:

A simple minimum-size check is not sufficient here because the validity of
the first bank depends on the actual Arm placement rules, not only on the
aggregate size of the kernel, DTB and initrd. The DTB/initrd area may fit
before a 64-bit Image loaded with a text offset, while an AArch32
position-independent kernel may leave no valid module location even when
the aggregate size appears to fit. Fixed-address kernels also need the
candidate bank start to be considered.

Link to synthetic tests output:
   https://gitlab.com/xen-project/people/mykola_kvach/xen/-/blob/fix/hwdom-first-bank-dom0-modules-v2-new/tools/tests/arm-boot-modules/test-arm-boot-modules.log?ref_type=heads

---
 xen/arch/arm/acpi/domain_build.c        |   2 -
 xen/arch/arm/domain_build.c             |   8 ++
 xen/arch/arm/include/asm/domain_build.h |   4 +
 xen/arch/arm/include/asm/kernel.h       |   9 ++
 xen/arch/arm/kernel.c                   | 179 ++++++++++++++++++------
 xen/common/device-tree/domain-build.c   |  24 +++-
 xen/include/xen/fdt-kernel.h            |   9 ++
 7 files changed, 182 insertions(+), 53 deletions(-)

diff --git a/xen/arch/arm/acpi/domain_build.c b/xen/arch/arm/acpi/domain_build.c
index 249d899c33..db16f7fa94 100644
--- a/xen/arch/arm/acpi/domain_build.c
+++ b/xen/arch/arm/acpi/domain_build.c
@@ -26,8 +26,6 @@
 #undef virt_to_mfn
 #define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
 
-#define ACPI_DOM0_FDT_MIN_SIZE 4096
-
 static int __init acpi_iomem_deny_access(struct domain *d)
 {
     acpi_status status;
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 1efddc60ef..550617f152 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -115,6 +115,14 @@ int __init parse_arch_dom0_param(const char *s, const char *e)
                              (IS_ENABLED(CONFIG_STATIC_SHM) ?         \
                               (NR_SHMEM_BANKS * (160 + 16)) : 0))
 
+paddr_t __init hwdom_get_fdt_alloc_size(void)
+{
+    if ( acpi_disabled )
+        return fdt_totalsize(device_tree_flattened) + DOM0_FDT_EXTRA_SIZE;
+
+    return ACPI_DOM0_FDT_MIN_SIZE;
+}
+
 unsigned int __init dom0_max_vcpus(void)
 {
     if ( opt_dom0_max_vcpus == 0 )
diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
index df8b361b3d..85cf46a958 100644
--- a/xen/arch/arm/include/asm/domain_build.h
+++ b/xen/arch/arm/include/asm/domain_build.h
@@ -19,6 +19,10 @@ int prepare_acpi(struct domain *d, struct kernel_info *kinfo);
 
 int add_ext_regions(unsigned long s_gfn, unsigned long e_gfn, void *data);
 
+#define ACPI_DOM0_FDT_MIN_SIZE 4096
+
+paddr_t hwdom_get_fdt_alloc_size(void);
+
 #if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
 /* Utility function to determine if an Armv8-R processor supports VMSA. */
 bool has_v8r_vmsa_support(void);
diff --git a/xen/arch/arm/include/asm/kernel.h b/xen/arch/arm/include/asm/kernel.h
index 21f4273fa1..bf14fb208a 100644
--- a/xen/arch/arm/include/asm/kernel.h
+++ b/xen/arch/arm/include/asm/kernel.h
@@ -8,12 +8,21 @@
 
 #include <asm/domain.h>
 
+#include <xen/types.h>
+
+struct kernel_info;
+
 struct arch_kernel_info
 {
     /* Enable pl011 emulation */
     bool vpl011;
 };
 
+#define arch_hwdom_first_bank_ok arch_hwdom_first_bank_ok
+bool arch_hwdom_first_bank_ok(const struct kernel_info *info,
+                              paddr_t bank_start,
+                              paddr_t bank_size);
+
 #endif /* #ifdef __ARCH_ARM_KERNEL_H__ */
 
 /*
diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index b72585b7fe..907239a246 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -40,27 +40,67 @@ struct minimal_dtb_header {
     /* There are other fields but we don't use them yet. */
 };
 
-static void __init place_modules(struct kernel_info *info,
-                                 paddr_t kernbase, paddr_t kernend)
+static paddr_t __init
+kernel_zimage_place_in_bank(const struct kernel_info *info,
+                            paddr_t bank_start, paddr_t bank_size)
 {
-    /* Align DTB and initrd size to 2Mb. Linux only requires 4 byte alignment */
-    const struct boot_module *mod = info->bd.initrd;
-    const struct membanks *mem = kernel_info_get_mem(info);
-    const paddr_t initrd_len = ROUNDUP(mod ? mod->size : 0, MB(2));
-    const paddr_t dtb_len = ROUNDUP(fdt_totalsize(info->fdt), MB(2));
-    const paddr_t modsize = initrd_len + dtb_len;
+    paddr_t load_addr;
 
-    /* Convenient */
-    const paddr_t rambase = mem->bank[0].start;
-    const paddr_t ramsize = mem->bank[0].size;
-    const paddr_t ramend = rambase + ramsize;
+#ifdef CONFIG_HAS_DOMAIN_TYPE
+    if ( (info->type == DOMAIN_64BIT) && (info->image.start == 0) )
+        return bank_start + info->image.text_offset;
+#endif
+
+    /*
+     * If start is zero, the zImage is position independent, in this
+     * case Documentation/arm/Booting recommends loading below 128MiB
+     * and above 32MiB. Load it as high as possible within these
+     * constraints, while also avoiding the DTB.
+     */
+    if ( info->image.start == 0 )
+    {
+        paddr_t load_end;
+        paddr_t ram128mb;
+
+        ram128mb = bank_start + MB(128);
+        load_end = bank_start + bank_size;
+        load_end = min(ram128mb, load_end);
+
+        if ( load_end - bank_start < info->image.len )
+            return INVALID_PADDR;
+
+        load_addr = load_end - info->image.len;
+        /* Align to 2MB */
+        load_addr &= ~(MB(2) - 1);
+        if ( load_addr < bank_start )
+            return INVALID_PADDR;
+    }
+    else
+        load_addr = info->image.start;
+
+    return load_addr;
+}
+
+static bool __init
+first_bank_has_enough_room(paddr_t ramsize, paddr_t kernbase,
+                           paddr_t kernend, paddr_t modsize)
+{
     const paddr_t kernsize = ROUNDUP(kernend, MB(2)) - kernbase;
-    const paddr_t ram128mb = rambase + MB(128);
 
-    paddr_t modbase;
+    /*
+     * Check only the aggregate kernel/module footprint. The actual DTB/initrd
+     * location is selected by find_module_placement().
+     */
+    return modsize + kernsize <= ramsize;
+}
 
-    if ( modsize + kernsize > ramsize )
-        panic("Not enough memory in the first bank for the kernel+dtb+initrd\n");
+static bool __init
+find_module_placement(paddr_t rambase, paddr_t ramsize,
+                      paddr_t kernbase, paddr_t kernend,
+                      paddr_t modsize, paddr_t *modbase)
+{
+    const paddr_t ramend = rambase + ramsize;
+    const paddr_t ram128mb = rambase + MB(128);
 
     /*
      * DTB must be loaded such that it does not conflict with the
@@ -80,17 +120,49 @@ static void __init place_modules(struct kernel_info *info,
      * tools/libxc/xc_dom_arm.c:arch_setup_meminit as well.
      */
     if ( ramend >= ram128mb + modsize && kernend < ram128mb )
-        modbase = ram128mb;
-    else if ( ramend - modsize > ROUNDUP(kernend, MB(2)) )
-        modbase = ramend - modsize;
-    else if ( kernbase - rambase > modsize )
-        modbase = kernbase - modsize;
-    else
     {
-        panic("Unable to find suitable location for dtb+initrd\n");
-        return;
+        *modbase = ram128mb;
+        return true;
+    }
+
+    if ( ramend - modsize > ROUNDUP(kernend, MB(2)) )
+    {
+        *modbase = ramend - modsize;
+        return true;
+    }
+
+    if ( kernbase - rambase > modsize )
+    {
+        *modbase = kernbase - modsize;
+        return true;
     }
 
+    return false;
+}
+
+static void __init place_modules(struct kernel_info *info,
+                                 paddr_t kernbase, paddr_t kernend)
+{
+    /* Align DTB and initrd size to 2Mb. Linux only requires 4 byte alignment */
+    const struct boot_module *mod = info->bd.initrd;
+    const struct membanks *mem = kernel_info_get_mem(info);
+    const paddr_t initrd_len = ROUNDUP(mod ? mod->size : 0, MB(2));
+    const paddr_t dtb_len = ROUNDUP(fdt_totalsize(info->fdt), MB(2));
+    const paddr_t modsize = initrd_len + dtb_len;
+
+    /* Convenient */
+    const paddr_t rambase = mem->bank[0].start;
+    const paddr_t ramsize = mem->bank[0].size;
+
+    paddr_t modbase;
+
+    if ( !first_bank_has_enough_room(ramsize, kernbase, kernend, modsize) )
+        panic("Not enough memory in the first bank for the kernel+dtb+initrd\n");
+
+    if ( !find_module_placement(rambase, ramsize, kernbase, kernend, modsize,
+                                &modbase) )
+        panic("Unable to find suitable location for dtb+initrd\n");
+
     info->dtb_paddr = modbase;
     info->initrd_paddr = info->dtb_paddr + dtb_len;
 }
@@ -100,32 +172,51 @@ static paddr_t __init kernel_zimage_place(struct kernel_info *info)
     const struct membanks *mem = kernel_info_get_mem(info);
     paddr_t load_addr;
 
-#ifdef CONFIG_HAS_DOMAIN_TYPE
-    if ( (info->type == DOMAIN_64BIT) && (info->image.start == 0) )
-        return mem->bank[0].start + info->image.text_offset;
-#endif
+    load_addr = kernel_zimage_place_in_bank(info, mem->bank[0].start,
+                                            mem->bank[0].size);
+    if ( load_addr == INVALID_PADDR )
+        panic("Unable to find suitable location for the kernel\n");
 
+    return load_addr;
+}
+
+bool __init arch_hwdom_first_bank_ok(const struct kernel_info *info,
+                                     paddr_t bank_start,
+                                     paddr_t bank_size)
+{
+    const struct boot_module *initrd = info->bd.initrd;
     /*
-     * If start is zero, the zImage is position independent, in this
-     * case Documentation/arm/Booting recommends loading below 128MiB
-     * and above 32MiB. Load it as high as possible within these
-     * constraints, while also avoiding the DTB.
+     * place_modules() rounds the DTB and initrd placement to 2MB boundaries;
+     * use the same granularity when checking whether the first bank can hold
+     * the boot modules.
      */
-    if ( info->image.start == 0 )
-    {
-        paddr_t load_end;
+    const paddr_t initrd_len = ROUNDUP(initrd ? initrd->size : 0, MB(2));
+    /*
+     * The hardware domain FDT has not been generated yet. Use the allocation
+     * size as a conservative upper bound for the final DTB size.
+     */
+    const paddr_t dtb_len = ROUNDUP(hwdom_get_fdt_alloc_size(), MB(2));
+    const paddr_t rambase = bank_start;
+    const paddr_t ramsize = bank_size;
+    const paddr_t modsize = initrd_len + dtb_len;
+    const paddr_t ramend = rambase + ramsize;
+    paddr_t kernbase;
+    paddr_t kernend;
+    paddr_t modbase;
 
-        load_end = mem->bank[0].start + mem->bank[0].size;
-        load_end = MIN(mem->bank[0].start + MB(128), load_end);
+    kernbase = kernel_zimage_place_in_bank(info, bank_start, bank_size);
+    if ( kernbase == INVALID_PADDR ||
+         info->image.len > INVALID_PADDR - kernbase )
+        return false;
 
-        load_addr = load_end - info->image.len;
-        /* Align to 2MB */
-        load_addr &= ~((2 << 20) - 1);
-    }
-    else
-        load_addr = info->image.start;
+    kernend = kernbase + info->image.len;
 
-    return load_addr;
+    if ( kernbase < rambase || kernend > ramend )
+        return false;
+
+    return first_bank_has_enough_room(ramsize, kernbase, kernend, modsize) &&
+           find_module_placement(rambase, ramsize, kernbase, kernend, modsize,
+                                 &modbase);
 }
 
 static void __init kernel_zimage_load(struct kernel_info *info)
diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree/domain-build.c
index 2a760b007b..25bc392fea 100644
--- a/xen/common/device-tree/domain-build.c
+++ b/xen/common/device-tree/domain-build.c
@@ -299,20 +299,30 @@ static bool __init allocate_hwdom_memory(struct kernel_info *kinfo)
 
     for ( i = 0; (kinfo->unassigned_mem > 0) && (i < nr_banks); i++ )
     {
-        paddr_t bank_size;
+        const paddr_t bank_start = hwdom_free_mem->bank[i].start;
+        paddr_t bank_size = hwdom_free_mem->bank[i].size;
+
+        /*
+         * Check the size that would actually be assigned, not just the size
+         * of the host region.
+         */
+        bank_size = min(bank_size, kinfo->unassigned_mem);
 
         /*
          * The first bank must be large enough for place_modules() to
          * fit the kernel, DTB and initrd.  Skip small regions to avoid
          * ending up with a tiny first bank.
          */
-        if ( !mem->nr_banks && (hwdom_free_mem->bank[i].size < min_bank_size) )
-            continue;
+        if ( !mem->nr_banks )
+        {
+            if ( bank_size < min_bank_size )
+                continue;
+
+            if ( !arch_hwdom_first_bank_ok(kinfo, bank_start, bank_size) )
+                continue;
+        }
 
-        bank_size = MIN(hwdom_free_mem->bank[i].size, kinfo->unassigned_mem);
-        if ( !allocate_bank_memory(kinfo,
-                                   gaddr_to_gfn(hwdom_free_mem->bank[i].start),
-                                   bank_size) )
+        if ( !allocate_bank_memory(kinfo, gaddr_to_gfn(bank_start), bank_size) )
         {
             xfree(hwdom_free_mem);
             return false;
diff --git a/xen/include/xen/fdt-kernel.h b/xen/include/xen/fdt-kernel.h
index 00c37be101..86f2a69ede 100644
--- a/xen/include/xen/fdt-kernel.h
+++ b/xen/include/xen/fdt-kernel.h
@@ -93,6 +93,15 @@ kernel_info_get_mem_const(const struct kernel_info *kinfo)
     return container_of(&kinfo->mem.common, const struct membanks, common);
 }
 
+#ifndef arch_hwdom_first_bank_ok
+static inline bool
+arch_hwdom_first_bank_ok(const struct kernel_info *info, paddr_t bank_start,
+                         paddr_t bank_size)
+{
+    return true;
+}
+#endif
+
 #ifndef KERNEL_INFO_SHM_MEM_INIT
 
 #ifdef CONFIG_STATIC_SHM
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:12:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:12:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322531.1588833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSytM-0006oc-Tm; Fri, 29 May 2026 15:12:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322531.1588833; Fri, 29 May 2026 15:12:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSytM-0006oU-PC; Fri, 29 May 2026 15:12:56 +0000
Received: by outflank-mailman (input) for mailman id 1322531;
 Fri, 29 May 2026 15:12:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3yKsZagYKCd0RD9MIBFNNFKD.BNLWDM-CDUDKKHRSR.WDMOQNIDBS.NQF@flex--seanjc.bounces.google.com>)
 id 1wSytL-0006hh-NO
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:12:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSytL-00EPc7-44
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:12:55 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3yKsZagYKCd0RD9MIBFNNFKD.BNLWDM-CDUDKKHRSR.WDMOQNIDBS.NQF@flex--seanjc.bounces.google.com>)
 id 6a19ace8-bab6-0a2a0a5309dd-0a2a45029910-30
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:12:55 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3yKsZagYKCd0RD9MIBFNNFKD.BNLWDM-CDUDKKHRSR.WDMOQNIDBS.NQF@flex--seanjc.bounces.google.com>)
 id 6a19abc9-af86-0a2a45020019-d155d6cad51a-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:07:54 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2bf335549b8so2361035ad.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:07:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067273; x=1780672073; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=kJfvO9zjLIcNgxwydf05ic8q1+t5yL6F8Cppp5YBjVQ=;
        b=UizcT8LN2SULS0lGSRIt4tEfLto3wy+puzsiGpnr2Iqz1vQTcW3j6WXFULeWw4xlnj
         DhBYjhHunER4ldilBglfakc0oAZTI/IYss2P4YTJkQQR/biFyDEJrRfWDAuyWFqafjJa
         KfJkUiM06gsqyxura79MyTMfOT8Aup3OPLRNbGg8MCE8MroLNfy1TCRWshJ/QnnxjTie
         vKkKMtyxj2gLBFq772KvJkyfLOSYQ0h1pGJuh+Pnqj7Pokh5DxV3VXPxypgUrV1Vr7S5
         QV3UKhaTryQWIgnFnBK7ap7a1CcBWfb9FR697inViSVdyst/sMpGz4FF/+P3HwqPIagE
         Xcsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067273; x=1780672073;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=kJfvO9zjLIcNgxwydf05ic8q1+t5yL6F8Cppp5YBjVQ=;
        b=C/5086fj/akA5gj+ZmO+2XUzWMT1iwrxEKkCntvIqJP7lGwKNYzlNmGI7s0mpvKI/F
         GoLwhPA8AHiITZnjXC8ewejsxhhGrtuo5LFU+LycidqfEqFheVHE3z+YGGRNkuvW913z
         dG8sO8oCuWT0MDbHkLsoKWV3oMW4Wtj6PpxA0LYVEEKWi5AfLAKJzImOjDv7punxBvmY
         INuv7OB12J9cv5ovv8oWJc7CrQFmDsqR2pG5FVqowmpC6OJpuDxnNktCp4RZSZyIZCHq
         mc9PTMjyNgbEMHY5n289WZJWJayCY84cpafmljNzMAvNm+VkZUrk4kdQM6ni0fvoGxpt
         tJiA==
X-Forwarded-Encrypted: i=1; AFNElJ800lyP8HezJ2eX+Gv1sQEqS08avpWLR7rwmJrHKGt8/5u6/plDLLlaXoF8X1PK195KyVkeDHso3/s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyUmdHvPaaAeWq83ZYcQnymfMTxBu6NNaTyTV09Z93xv1mKDYw3
	Tp/QyaUbOJlS1JmQgPcfi6gOQB2U3ak8v2DA5QtQZ6fGVdX3w/xgIBXpzYwN6Fyyn5Fo4T63+jw
	/b9TR/g==
X-Received: from pldy13.prod.google.com ([2002:a17:902:cacd:b0:2b2:a70b:98ea])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:1b64:b0:2bf:305a:312a
 with SMTP id d9443c01a7336-2bf3680a163mr2618575ad.22.1780067272464; Fri, 29
 May 2026 08:07:52 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:07:41 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150741.714145-1-seanjc@google.com>
Subject: [PATCH v4 30/47] x86/xen/time: NOP-ify x86_platform's sched_clock
 save/restore hooks
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-720697/1780067274-A8979161-B7B4A640/13/0
X-purgate-type: clean
X-purgate-size: 1103

NOP-ify the x86_platform sched_clock save/restore hooks when setting up
Xen's PV clock to make it somewhat obvious the hooks aren't used when
running as a Xen guest (Xen uses a paravirtualized suspend/resume flow).

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/xen/time.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index 36d66abf5379..640b71d22d97 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -578,6 +578,12 @@ static void __init xen_init_time_common(void)
 	xen_sched_clock_offset = xen_clocksource_read();
 	static_call_update(pv_steal_clock, xen_steal_clock);
 	paravirt_set_sched_clock(xen_sched_clock);
+	/*
+	 * Xen has paravirtualized suspend/resume and so doesn't use the common
+	 * x86 sched_clock save/restore hooks.
+	 */
+	x86_platform.save_sched_clock_state = x86_init_noop;
+	x86_platform.restore_sched_clock_state = x86_init_noop;
 
 	x86_init.hyper.get_tsc_khz = xen_tsc_khz;
 	x86_platform.get_wallclock = xen_get_wallclock;
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:12:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:12:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322536.1588843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSytP-00079M-4t; Fri, 29 May 2026 15:12:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322536.1588843; Fri, 29 May 2026 15:12:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSytP-00079C-1K; Fri, 29 May 2026 15:12:59 +0000
Received: by outflank-mailman (input) for mailman id 1322536;
 Fri, 29 May 2026 15:12:58 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3yqsZagYKCd8TFBOKDHPPHMF.DPNYFO-EFWFMMJTUT.YFOQSPKFDU.PSH@flex--seanjc.bounces.google.com>)
 id 1wSytO-00072A-2T
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:12:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSytN-00BLhT-Az
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:12:57 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3yqsZagYKCd8TFBOKDHPPHMF.DPNYFO-EFWFMMJTUT.YFOQSPKFDU.PSH@flex--seanjc.bounces.google.com>)
 id 6a19acf1-2eae-0a2a0a5409dd-0a2a450cb5ce-12
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:12:57 +0200
Received: from [209.85.214.202] (helo=mail-pl1-f202.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3yqsZagYKCd8TFBOKDHPPHMF.DPNYFO-EFWFMMJTUT.YFOQSPKFDU.PSH@flex--seanjc.bounces.google.com>)
 id 6a19abcb-62f1-0a2a450c0019-d155d6cab065-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:07:56 +0200
Received: by mail-pl1-f202.google.com with SMTP id
 d9443c01a7336-2bf08c2a24bso22776205ad.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:07:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067275; x=1780672075; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=yp4siaZu6zeBY6Dr4EV8ib3+ttfMwXywWsfu9IVNNX0=;
        b=hTHix9HBwT+FH6j1pI2o85ZOAh59BPcN6KIowuKNPZG+JoYBr515myI8MNM2/4uX14
         OkC0KOC6ZNOu2NtDukoiNWoWRj6PfoVBhodq8DjS0O7s/EAcvWMxkk7rIA6zKCNihhMg
         dqB9ktz0RKTkrPNezxcKHafuNVZZC2GEGCygYlrhsXkO50VJeAAysu230xXqq1WD8sWD
         UK8GLrbHrdpAxkHsDZU7XSVx3hVsViLhT3GUsJ9h5Eb3kGaMyVZhtnHbrxQHBdduEpsH
         B03b1l+PLHDV12GXFka6mq1uOSm1CLmD5N99AlKlbPowYqa2maJRk9ZtVK8tc3dvkleq
         r8HQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067275; x=1780672075;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=yp4siaZu6zeBY6Dr4EV8ib3+ttfMwXywWsfu9IVNNX0=;
        b=khR/qpYd3zba214utoGftL6DG+D2ymZgH5MaZicQmJdOUg2FP6UyldlgIrfYdaGCtU
         LR4whcNNck+7ihJHviUyJXdmmWFt8t2ktRihZBqeJh2Iy3Pk0ZFzFMVfvekuj8H+M/uB
         sTu5aD2zG33HwImehzZLok6UPSZOvAfW8CQQrZoY5o1dysfnKZ9eXz3RHVWeGJz8Emgg
         +htHrw1CEPlEu+oYSdLiFBBtolIT9RTWqAwfhLSIA0KuDFvEByy7GbcUW48NyDacV19B
         bKIeBgyNlP9YfehJ4gSMp6rn15Ujijndm0SuDFi41OvXA0gsOAeza0H5PxDZntE7HxIw
         b5rg==
X-Forwarded-Encrypted: i=1; AFNElJ8bziykhZjMxnG5CCJtTQj5Sbo7a2ohRywjJJhzdMMtcFf4puGPsbTm/utUV70XV7qhYnU6roVTLdc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw0nR/LmaNRD9JXGpRPLY+MHaJCkGLBl/QeIojwkQTpYrZflqgd
	g5pHb9FoMGzkNfC2E2G4Lkx69R0ROYMk+eQzFPNBJ1cquOv+0eQZeMGAClR9tCr8eFtWEKrKnTw
	0DkD34w==
X-Received: from plgv8.prod.google.com ([2002:a17:902:e8c8:b0:2bf:2f05:e721])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:2450:b0:2ba:6ca2:be0
 with SMTP id d9443c01a7336-2bf36798a4emr3028165ad.4.1780067274515; Fri, 29
 May 2026 08:07:54 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:07:52 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150753.714296-1-seanjc@google.com>
Subject: [PATCH v4 31/47] x86/vmware: NOP-ify save/restore hooks when using
 VMware's sched_clock
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-d25034/1780067277-F4C79CF5-66475477/13/0
X-purgate-type: clean
X-purgate-size: 1213

NOP-ify the sched_clock save/restore hooks when using VMware's version of
sched_clock.  This will allow extending paravirt_set_sched_clock() to set
the save/restore hooks, without having to simultaneously change the
behavior of VMware guests.

Note, it's not at all obvious that it's safe/correct for VMware guests to
do nothing on suspend/resume, but that's a pre-existing problem.  Leave it
for a VMware expert to sort out.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/cpu/vmware.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index 2d0624c66799..051ef89029a7 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -347,8 +347,11 @@ static void __init vmware_paravirt_ops_setup(void)
 
 	vmware_cyc2ns_setup();
 
-	if (vmw_sched_clock)
+	if (vmw_sched_clock) {
 		paravirt_set_sched_clock(vmware_sched_clock);
+		x86_platform.save_sched_clock_state = x86_init_noop;
+		x86_platform.restore_sched_clock_state = x86_init_noop;
+	}
 
 	if (vmware_is_stealclock_available()) {
 		has_steal_clock = true;
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:13:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:13:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322544.1588852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSytV-0007hF-As; Fri, 29 May 2026 15:13:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322544.1588852; Fri, 29 May 2026 15:13:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSytV-0007h5-7g; Fri, 29 May 2026 15:13:05 +0000
Received: by outflank-mailman (input) for mailman id 1322544;
 Fri, 29 May 2026 15:13:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <30KsZagYKCeUZLHUQJNVVNSL.JVTeLU-KLcLSSPZaZ.eLUWYVQLJa.VYN@flex--seanjc.bounces.google.com>)
 id 1wSytT-0007cq-8V
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:13:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSytS-0013Ij-LU
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:13:02 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <30KsZagYKCeUZLHUQJNVVNSL.JVTeLU-KLcLSSPZaZ.eLUWYVQLJa.VYN@flex--seanjc.bounces.google.com>)
 id 6a19ace8-e002-0a2a0a5209dd-0a2a450a9c04-28
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:13:02 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <30KsZagYKCeUZLHUQJNVVNSL.JVTeLU-KLcLSSPZaZ.eLUWYVQLJa.VYN@flex--seanjc.bounces.google.com>)
 id 6a19abd0-56b3-0a2a450a0019-d155d6c9c88d-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:02 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2bc6899bfb1so152290565ad.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:08:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067280; x=1780672080; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=x48EAn3xKSGkzUgWryz9swjOD88igI5uWtnxtPJbQF4=;
        b=UioIvxfrEIAx54TbwdDEuuuOPe3KEqMT8ox4nqVvvBqet91k2yZNy2JJ7H0kTpnUGe
         PVSgM1+2943wlIAIX+dDwzRtE8X4zEwkx66rixMjz57fKDr+8J/CK5OVrE7Y2agTuPBu
         N4NITzUDc6d8kTw+E2TkOuATJ0ldGR1r7R2Q4cxL79rxabS1f8wulOfXR1SyZ3DZdTwq
         cloDeiA7NdZcs+HveqfbdkDz1Txj96lXSjNUdGvfUbzLov06VhNDOFuxhsDMAr+wKfah
         n+AlnAfnqt9IiY+BVjPByeEsib90dSEaaMmlB110cOxB2H33IMVjhZpo+BYP/1Urt9U7
         e/Dg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067280; x=1780672080;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=x48EAn3xKSGkzUgWryz9swjOD88igI5uWtnxtPJbQF4=;
        b=I3vwTb+hHiUAXuTiBUb1fDj7fjexPKcFEwQAMCFLTu57S6A/OJJpopkLPzB8q/sGEK
         usretsrjDxVcDjm8d199UsMiLRjknKWFbVMXQErFXYnHu4ba/oA/ncyslVFz3AP1jHgq
         oYAvtUuiOqJPWFEnTCB4Fd5zC43443OmPWOATkdWaLxiB+mgHxQoOCmNkwx1yA3v8zO2
         84d6GkSzi0T3MwrLQ5ijv41n2bMqzr6E/MFIADYQD6xeU2O9f4hjukCMfl/z767gJNrw
         NrWvZUzfie0pKTvi/p1A8KuScX+gnHWF2dLuDLK++dFnF8ZpqkMwsLZcNbYDxtXHzPTL
         T8qQ==
X-Forwarded-Encrypted: i=1; AFNElJ9g3bgbJ88TqSgEbhnyFRWGaN0iEK2FaxOoOoZKQpXijH42A+4gKNToCtTTqZDQzfWxW2oSmSojmXs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxnoLc0rHhBhSIrp5Tr0J5+9mFSWwt/BjJFXJn8E1j+cLNHqgLh
	o/SKGwremugFLhljLvwmYzvt3ES+5Vp6hNVDqPUdOuxJrixn/4gHrGT3KtvghouyuF940vij5by
	P9szv4A==
X-Received: from plbkk16.prod.google.com ([2002:a17:903:710:b0:2b4:62bc:c2a9])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:903:b0:2bf:2e9:bd6d
 with SMTP id d9443c01a7336-2bf367be098mr3118615ad.12.1780067280044; Fri, 29
 May 2026 08:08:00 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:07:58 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150758.714420-1-seanjc@google.com>
Subject: [PATCH v4 33/47] x86/paravirt: Pass sched_clock save/restore helpers
 during registration
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-4011c0/1780067282-73F798B7-162069EE/13/0
X-purgate-type: clean
X-purgate-size: 5715

Pass in a PV clock's save/restore helpers when configuring sched_clock
instead of relying on each PV clock to manually set the save/restore hooks.
In addition to bringing sanity to the code, this will allow gracefully
"rejecting" a PV sched_clock, e.g. when running as a CoCo guest that has
access to a "secure" TSC.

No functional change intended.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/timer.h       | 9 ++++++---
 arch/x86/kernel/cpu/vmware.c       | 8 +++-----
 arch/x86/kernel/kvmclock.c         | 6 +++---
 arch/x86/kernel/tsc.c              | 5 ++++-
 arch/x86/xen/time.c                | 5 ++---
 drivers/clocksource/hyperv_timer.c | 6 ++----
 6 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index fe41d40a9ae6..e97cd1ae03d1 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -14,11 +14,14 @@ extern int no_timer_check;
 extern bool using_native_sched_clock(void);
 
 #ifdef CONFIG_PARAVIRT
-void __paravirt_set_sched_clock(u64 (*func)(void), bool stable);
+void __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
+				void (*save)(void), void (*restore)(void));
 
-static inline void paravirt_set_sched_clock(u64 (*func)(void))
+static inline void paravirt_set_sched_clock(u64 (*func)(void),
+					    void (*save)(void),
+					    void (*restore)(void))
 {
-	__paravirt_set_sched_clock(func, true);
+	__paravirt_set_sched_clock(func, true, save, restore);
 }
 #endif
 
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index 051ef89029a7..f3ffc05c7c53 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -347,11 +347,9 @@ static void __init vmware_paravirt_ops_setup(void)
 
 	vmware_cyc2ns_setup();
 
-	if (vmw_sched_clock) {
-		paravirt_set_sched_clock(vmware_sched_clock);
-		x86_platform.save_sched_clock_state = x86_init_noop;
-		x86_platform.restore_sched_clock_state = x86_init_noop;
-	}
+	if (vmw_sched_clock)
+		paravirt_set_sched_clock(vmware_sched_clock,
+					 x86_init_noop, x86_init_noop);
 
 	if (vmware_is_stealclock_available()) {
 		has_steal_clock = true;
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 0d4f2cf97246..05bca2be0df3 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -137,7 +137,9 @@ static void kvm_restore_sched_clock_state(void)
 static inline void kvm_sched_clock_init(bool stable)
 {
 	kvm_sched_clock_offset = kvm_clock_read();
-	__paravirt_set_sched_clock(kvm_sched_clock_read, stable);
+	__paravirt_set_sched_clock(kvm_sched_clock_read, stable,
+				   kvm_save_sched_clock_state,
+				   kvm_restore_sched_clock_state);
 
 	pr_info("kvm-clock: using sched offset of %llu cycles",
 		kvm_sched_clock_offset);
@@ -345,8 +347,6 @@ void __init kvmclock_init(bool prefer_tsc)
 #ifdef CONFIG_SMP
 	x86_cpuinit.early_percpu_clock_init = kvm_setup_secondary_clock;
 #endif
-	x86_platform.save_sched_clock_state = kvm_save_sched_clock_state;
-	x86_platform.restore_sched_clock_state = kvm_restore_sched_clock_state;
 	kvm_get_preset_lpj();
 
 	/*
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 19da1a3d2126..7fbcfc2efd1d 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -280,12 +280,15 @@ bool using_native_sched_clock(void)
 	return static_call_query(pv_sched_clock) == native_sched_clock;
 }
 
-void __paravirt_set_sched_clock(u64 (*func)(void), bool stable)
+void __paravirt_set_sched_clock(u64 (*func)(void), bool stable,
+				void (*save)(void), void (*restore)(void))
 {
 	if (!stable)
 		clear_sched_clock_stable();
 
 	static_call_update(pv_sched_clock, func);
+	x86_platform.save_sched_clock_state = save;
+	x86_platform.restore_sched_clock_state = restore;
 }
 #else
 u64 sched_clock_noinstr(void) __attribute__((alias("native_sched_clock")));
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index 640b71d22d97..91ef83b1e540 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -577,13 +577,12 @@ static void __init xen_init_time_common(void)
 {
 	xen_sched_clock_offset = xen_clocksource_read();
 	static_call_update(pv_steal_clock, xen_steal_clock);
-	paravirt_set_sched_clock(xen_sched_clock);
+
 	/*
 	 * Xen has paravirtualized suspend/resume and so doesn't use the common
 	 * x86 sched_clock save/restore hooks.
 	 */
-	x86_platform.save_sched_clock_state = x86_init_noop;
-	x86_platform.restore_sched_clock_state = x86_init_noop;
+	paravirt_set_sched_clock(xen_sched_clock, x86_init_noop, x86_init_noop);
 
 	x86_init.hyper.get_tsc_khz = xen_tsc_khz;
 	x86_platform.get_wallclock = xen_get_wallclock;
diff --git a/drivers/clocksource/hyperv_timer.c b/drivers/clocksource/hyperv_timer.c
index ac1d9f9c381c..dee59ce61c29 100644
--- a/drivers/clocksource/hyperv_timer.c
+++ b/drivers/clocksource/hyperv_timer.c
@@ -553,10 +553,8 @@ static void hv_restore_sched_clock_state(void)
 static __always_inline void hv_setup_sched_clock(void *sched_clock)
 {
 	/* We're on x86/x64 *and* using PV ops */
-	paravirt_set_sched_clock(sched_clock);
-
-	x86_platform.save_sched_clock_state = hv_save_sched_clock_state;
-	x86_platform.restore_sched_clock_state = hv_restore_sched_clock_state;
+	paravirt_set_sched_clock(sched_clock, hv_save_sched_clock_state,
+				 hv_restore_sched_clock_state);
 }
 #else /* !CONFIG_GENERIC_SCHED_CLOCK && !CONFIG_PARAVIRT */
 static __always_inline void hv_setup_sched_clock(void *sched_clock) {}
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:13:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:13:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322550.1588861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSytc-0008A1-Jr; Fri, 29 May 2026 15:13:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322550.1588861; Fri, 29 May 2026 15:13:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSytc-00089p-GQ; Fri, 29 May 2026 15:13:12 +0000
Received: by outflank-mailman (input) for mailman id 1322550;
 Fri, 29 May 2026 15:13:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <31qsZagYKCesfRNaWPTbbTYR.PbZkRa-QRiRYYVfgf.kRacebWRPg.beT@flex--seanjc.bounces.google.com>)
 id 1wSyta-000831-SQ
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:13:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyta-00EPhQ-9E
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:13:10 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <31qsZagYKCesfRNaWPTbbTYR.PbZkRa-QRiRYYVfgf.kRacebWRPg.beT@flex--seanjc.bounces.google.com>)
 id 6a19acea-bab6-0a2a0a5309dd-0a2a450bcd4c-28
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:13:10 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <31qsZagYKCesfRNaWPTbbTYR.PbZkRa-QRiRYYVfgf.kRacebWRPg.beT@flex--seanjc.bounces.google.com>)
 id 6a19abd7-212f-0a2a450b0019-d155d6c9e57c-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:09 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2b4530a90fdso105002475ad.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:08:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067287; x=1780672087; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=juhHvibOKBbL5R/8TYL0oDxVwG80NiQFMLoZ+aO+Nyo=;
        b=C7kK3rEzPkTSQwbbdTOEFjONUhRioLW3n5Xga4D/eEGJxTydGtZZ/QJxcBRpkGgYls
         g8iHc1obY1uWwigWDUwfz8vRBjKUg8/LepCz5soke76hm9z5+slkNRkWH+rDje00u/yt
         TE1O9VDJxAVTGCCxke5BuFXTPsJ4zY+f5DkWpsv2sTADU/6W4mU8jYI4BPzOoFA2N/Th
         UjF+jQwNP0WvFsqXsY/cHGO+f7JC1YfpwghlMnW0TxJCIEHsvcOT/VUB2ckiorn/a02w
         rTtsuW5rwj0FN7vok3yIs3f6oKATfhclZYcPwCyuCyiRQxPZMXknpPi0eSQlvAf3C2Jk
         0IqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067287; x=1780672087;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=juhHvibOKBbL5R/8TYL0oDxVwG80NiQFMLoZ+aO+Nyo=;
        b=l56AJKk7SyqvHvLc2+ky1hbnDVr0Yb4Fao9eCVcz1KQ/THueGwCCzYCV4Va7Wxsze1
         4MSJUs+h0mk+uXzQUwp0cgeCmuOLGCBvVV7uAAieB0WGxSwzsmYXNdxFo4Llx4O1avR/
         h+H5Yt+6cjHLD3306UEWcVu5bEAx7cvtPU9s7L5eqxYZlY1ezZleaoohiqUWK6na6I/J
         vBSdlGExwYVk5wEDPtnNVFh7rLD8dQkrktzEgSfXWbL0/go6XdZFZMl1f10sEhPyZnND
         vJ7TCFLo+ya5B6DvOisGKWsMl9Lgh75T7oWgu/WQsnFMCTcdUBHJGX9co5YxIqQJvjhs
         Mf3A==
X-Forwarded-Encrypted: i=1; AFNElJ/OGHjogEEkVq1GGkd2WFTn5FDt+UzQIfXnSitnSCptugNPsTO1xLlZHqgnsppxU1ahSG9NuBfGBlc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyUyNBtmmuNlkZC0LT7CxnYGCmvAYw2tI4r7GupO4oEBySK1zdS
	v8QfcBLlzggEoxogwhUifbeW4r+lvSFCwhofZkYAvNV7MnFlM7otdHiTYmfJxT6C7hKJs9lUrsZ
	qQn9jeA==
X-Received: from plrf5.prod.google.com ([2002:a17:902:ab85:b0:2b0:5538:b55b])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:e88c:b0:2bf:2188:a90f
 with SMTP id d9443c01a7336-2bf3687a3f3mr2296425ad.32.1780067286623; Fri, 29
 May 2026 08:08:06 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:08:03 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150803.714504-1-seanjc@google.com>
Subject: [PATCH v4 35/47] x86/xen/time: Mark xen_setup_vsyscall_time_info() as __init
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-42698a/1780067289-12573F3B-A54021A6/13/0
X-purgate-type: clean
X-purgate-size: 879

Annotate xen_setup_vsyscall_time_info() as being used only during kernel
initialization; it's called only by xen_time_init(), which is already
tagged __init.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/xen/time.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index 91ef83b1e540..8f4511f91d16 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -454,7 +454,7 @@ void xen_restore_time_memory_area(void)
 	xen_sched_clock_offset = xen_clocksource_read() - xen_clock_value_saved;
 }
 
-static void xen_setup_vsyscall_time_info(void)
+static void __init xen_setup_vsyscall_time_info(void)
 {
 	struct vcpu_register_time_memory_area t;
 	struct pvclock_vsyscall_time_info *ti;
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:13:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:13:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322555.1588870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyth-00008j-3h; Fri, 29 May 2026 15:13:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322555.1588870; Fri, 29 May 2026 15:13:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSytg-00008Y-Vq; Fri, 29 May 2026 15:13:16 +0000
Received: by outflank-mailman (input) for mailman id 1322555;
 Fri, 29 May 2026 15:13:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <326sZagYKCfAkWSfbUYggYdW.UgepWf-VWnWddaklk.pWfhjgbWUl.gjY@flex--seanjc.bounces.google.com>)
 id 1wSytf-0008WJ-I8
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:13:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyte-00EPhQ-V5
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:13:14 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <326sZagYKCfAkWSfbUYggYdW.UgepWf-VWnWddaklk.pWfhjgbWUl.gjY@flex--seanjc.bounces.google.com>)
 id 6a19acf7-bab6-0a2a0a5309dd-0a2a450588d6-16
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:13:14 +0200
Received: from [209.85.216.73] (helo=mail-pj1-f73.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <326sZagYKCfAkWSfbUYggYdW.UgepWf-VWnWddaklk.pWfhjgbWUl.gjY@flex--seanjc.bounces.google.com>)
 id 6a19abdc-aaa8-0a2a45050019-d155d849b81f-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:08:14 +0200
Received: by mail-pj1-f73.google.com with SMTP id
 98e67ed59e1d1-367bb9caa54so12862631a91.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:08:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067292; x=1780672092; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=0jsX4kmzCmqMaCGwN5oKHLOUS2DjjzJWXK44/xdBtv0=;
        b=Nc6mwJcKKh5bjz5XJLcW/kzxfHsar5wXYOuxkpm+tF6hztOQv0BgzQgigaENNrADTB
         mE5doMNjmZWUjVkM/RSWaAF84oYDrFxjlpLmyPLlww4rsQ/RyBDXjKLbOrn639SA+gMT
         BaELtDfx8CV8b+4UuYUPTyMY5nyGQL/tr1xRvw4FRjYOzO/yyLQbG8arjY3LIlN3Lv/e
         /S839s8LZc70OnM564/DGQSUhWS2MdXHPQBMo8QRVMYhu83ZFEAdnZRhOldcja6ecHXu
         XNr7BdkhhbDwYmm1VzFg8YHkcIZpxxhgvPtvd60whoczQA3cT00STngF1opAjTezMMm6
         ydlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067292; x=1780672092;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=0jsX4kmzCmqMaCGwN5oKHLOUS2DjjzJWXK44/xdBtv0=;
        b=Ri3QI+in7SLAt4prTwzMCMSXWutKWb6zr0fIqrO9DStgsGBGP/EHaj1uVcSM++EN87
         luFZV2aLIgY40wI1M+VjerybkGCVxVe+6uQ9hjEm87xNLyNGZfhnz2b06mYNs625kwRP
         b8zTKKKNhINKF670cQIFEyCzpwBl3fYi04yZ8JhDwspycPX8eWwlVxHfhpDde0FLgLEj
         hFsW8kT/87wYTLEh09aBXptIHWlVEcamFYCOYfzvn2eW0P3C5hhSBk/sh1c5m9rgc+/t
         YZUykSnqPbYlBos7JWWx/hnESmPlJmYxkqKCPYsovUZqxZi6g8yYugghHlJ5kvyB6eF0
         ufwA==
X-Forwarded-Encrypted: i=1; AFNElJ/cL4ARq+SPtslVB7cqQstQCMj7WlKZWCdSfBHE+uwZJZCwLxi1RmDdpLeN9e/QJqyvUZeUjKZ5lIA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx4/Yh8aTkiEIv29h4wbcCnaTcKKh+loSx8ivNmmEe4YRCkshvl
	773j0CkAco/NoUKticpLWqIkIBhwczeu39u7MKU8AGE3be2VyJzgAOD0bO1AbkDTk9Vn73ySmp2
	1hE2nAg==
X-Received: from pgvi5.prod.google.com ([2002:a65:61a5:0:b0:c82:2dd8:9d49])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:6b87:b0:3b3:d4a:793b
 with SMTP id adf61e73a8af0-3b411e5b284mr4378476637.43.1780067291927; Fri, 29
 May 2026 08:08:11 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:08:10 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150810.714572-1-seanjc@google.com>
Subject: [PATCH v4 37/47] x86/pvclock: WARN if pvclock's valid_flags are overwritten
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-c201ff/1780067294-DBF66443-8BD9AEF0/13/0
X-purgate-type: clean
X-purgate-size: 780

WARN if the common PV clock valid_flags are overwritten; all PV clocks
expect that they are the one and only PV clock, i.e. don't guard against
another PV clock having modified the flags.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kernel/pvclock.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
index a51adce67f92..8d098841a225 100644
--- a/arch/x86/kernel/pvclock.c
+++ b/arch/x86/kernel/pvclock.c
@@ -21,6 +21,7 @@ static struct pvclock_vsyscall_time_info *pvti_cpu0_va __ro_after_init;
 
 void __init pvclock_set_flags(u8 flags)
 {
+	WARN_ON(valid_flags);
 	valid_flags = flags;
 }
 
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:13:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:13:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322561.1588879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSytp-0000oG-Bc; Fri, 29 May 2026 15:13:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322561.1588879; Fri, 29 May 2026 15:13:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSytp-0000o6-88; Fri, 29 May 2026 15:13:25 +0000
Received: by outflank-mailman (input) for mailman id 1322561;
 Fri, 29 May 2026 15:13:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <3qKsZagYKCb0vhdqmfjrrjoh.frp0hq-ghyhoolvwv.0hqsurmhfw.ruj@flex--seanjc.bounces.google.com>)
 id 1wSytn-0000gc-PU
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:13:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSytn-0013Ij-6A
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:13:23 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <3qKsZagYKCb0vhdqmfjrrjoh.frp0hq-ghyhoolvwv.0hqsurmhfw.ruj@flex--seanjc.bounces.google.com>)
 id 6a19ad09-e002-0a2a0a5209dd-0a2a4502b1ec-4
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:13:23 +0200
Received: from [209.85.214.201] (helo=mail-pl1-f201.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from
 <3qKsZagYKCb0vhdqmfjrrjoh.frp0hq-ghyhoolvwv.0hqsurmhfw.ruj@flex--seanjc.bounces.google.com>)
 id 6a19aba9-af86-0a2a45020019-d155d6c9bd0f-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:07:22 +0200
Received: by mail-pl1-f201.google.com with SMTP id
 d9443c01a7336-2bf1845bddfso12989615ad.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:07:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1780067241; x=1780672041; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:from:to:cc:subject:date:message-id:reply-to;
        bh=N49NWH4ro3GNRH29aAKxdd1VwjKE+o/ejmYXSEWUPuw=;
        b=fU85/N7IRR264JuZjd+861PhnXE89okbvlRyBcz7kYEjx1ogJcFaJcCTYpkZyNd7Vr
         lKXwm9JpgGoctYLD9cOVAJGJWs+x1V9XcNLw+5wb5x2QuL8EXE4cS2yIdeMGpONmz+IH
         J00dnKTnKXtbX+6Pn1wyngUj29kJrQKmA+tD9aZjjlIGKV/y+TkJXG7uVoEvbXgqFGsV
         7qeM1GtauNbnFD5yH2I5igSyRmZDDgjkcH3nAfXJo9kQVqFnqoq9VBxvQwqHBrreOmEA
         +XQRIFIXdB7YTz0lObU4p3K0izNeXp9/k9Qw+PJfSg9mQrtKx5n1hCBVwLttDTN4nn02
         VW7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067241; x=1780672041;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=N49NWH4ro3GNRH29aAKxdd1VwjKE+o/ejmYXSEWUPuw=;
        b=MqOHXojHiU66xW0JU6YrNd5QWdzRYL1n02roZDWgzDNwxmPk3s92/obw5v3Sd4IoZf
         P4t2fdSzrmjCN49yfb7cd1T8HQfOfgcooa4yHsepwJBYX8uLjVz1iKnAb8asQevpwxvv
         OJ3XR2zNWptyp0NKNMNuLPsCelPxuJj6USPlPXEONMzLlNNx0USW0SDnvUasyHkXjCIN
         mCWLWwBkQ/7JqZU3jrSP05NIlYdFd3rcdILMq+V7NwNDXtP9Aj/ItgGV8OOHTmdv0MPP
         zBwA691tv1mjjVZIXp1+vFKZVnREIL7zdhmAaWRvAJbLoako+hnTczilAdP0WYFb1BY3
         p6QA==
X-Forwarded-Encrypted: i=1; AFNElJ83Unwnadt0qf2aYbMd69AlcdSupiK0EBPcIF1z+CaEXVoj/O+Fsow5CQIBGlqsSqSKLEvx0pwgFM4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxC6EFCFSv6Iux4C9soxX3zgTBoxwxZXsl6Ib72S0uR6z5GoE1A
	yz8lj8ob5bMxWZTRzTGUahe2QBYNDUkm9RB1JV9s63QUDckF+RsudAAKzOeoJ467jkdFAOL7BOS
	hlDpTMw==
X-Received: from plge8.prod.google.com ([2002:a17:902:cf48:b0:2be:fc90:7642])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:e74d:b0:2bf:28e3:a5e7
 with SMTP id d9443c01a7336-2bf36793522mr2531755ad.6.1780067240251; Fri, 29
 May 2026 08:07:20 -0700 (PDT)
Reply-To: Sean Christopherson <seanjc@google.com>
Date: Fri, 29 May 2026 08:07:00 -0700
In-Reply-To: <20260529144435.704127-1-seanjc@google.com>
Mime-Version: 1.0
References: <20260529144435.704127-1-seanjc@google.com>
X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog
Message-ID: <20260529150700.713953-1-seanjc@google.com>
Subject: [PATCH v4 28/47] x86/paravirt: Move handling of unstable PV clocks
 into paravirt_set_sched_clock()
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, Sean Christopherson <seanjc@google.com>, 
	"K . Y . Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Nikunj A Dadhania <nikunj@amd.com>, 
	David Woodhouse <dwmw2@infradead.org>, Michael Kelley <mhklinux@outlook.com>, 
	Thomas Gleixner <tglx@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-720697/1780067242-81971161-5FBEF42C/0/0
X-purgate-type: clean
X-purgate-size: 2567

Move the handling of unstable PV clocks, of which kvmclock is the only
example, into paravirt_set_sched_clock().  This will allow modifying
paravirt_set_sched_clock() to keep using the TSC for sched_clock in
certain scenarios without unintentionally marking the TSC-based clock as
unstable.

No functional change intended.

Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/include/asm/timer.h | 7 ++++++-
 arch/x86/kernel/kvmclock.c   | 5 +----
 arch/x86/kernel/tsc.c        | 5 ++++-
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index c71b466d6ace..fe41d40a9ae6 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -14,7 +14,12 @@ extern int no_timer_check;
 extern bool using_native_sched_clock(void);
 
 #ifdef CONFIG_PARAVIRT
-void paravirt_set_sched_clock(u64 (*func)(void));
+void __paravirt_set_sched_clock(u64 (*func)(void), bool stable);
+
+static inline void paravirt_set_sched_clock(u64 (*func)(void))
+{
+	__paravirt_set_sched_clock(func, true);
+}
 #endif
 
 /*
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 13c4be3a7f0a..4e50e75ff43d 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -12,7 +12,6 @@
 #include <linux/hardirq.h>
 #include <linux/cpuhotplug.h>
 #include <linux/sched.h>
-#include <linux/sched/clock.h>
 #include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/set_memory.h>
@@ -94,10 +93,8 @@ static noinstr u64 kvm_sched_clock_read(void)
 
 static inline void kvm_sched_clock_init(bool stable)
 {
-	if (!stable)
-		clear_sched_clock_stable();
 	kvm_sched_clock_offset = kvm_clock_read();
-	paravirt_set_sched_clock(kvm_sched_clock_read);
+	__paravirt_set_sched_clock(kvm_sched_clock_read, stable);
 
 	pr_info("kvm-clock: using sched offset of %llu cycles",
 		kvm_sched_clock_offset);
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 888bd1cbd9bc..a9b6d3399c23 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -280,8 +280,11 @@ bool using_native_sched_clock(void)
 	return static_call_query(pv_sched_clock) == native_sched_clock;
 }
 
-void paravirt_set_sched_clock(u64 (*func)(void))
+void __paravirt_set_sched_clock(u64 (*func)(void), bool stable)
 {
+	if (!stable)
+		clear_sched_clock_stable();
+
 	static_call_update(pv_sched_clock, func);
 }
 #else
-- 
2.54.0.823.g6e5bcc1fc9-goog



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:17:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:17:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322604.1588888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyxV-0002Pe-R4; Fri, 29 May 2026 15:17:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322604.1588888; Fri, 29 May 2026 15:17:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSyxV-0002PX-OC; Fri, 29 May 2026 15:17:13 +0000
Received: by outflank-mailman (input) for mailman id 1322604;
 Fri, 29 May 2026 15:17:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1wSyxT-0002Nu-Rn
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:17:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSyxS-0013rR-U3
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:17:10 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 6a19ade1-e002-0a2a0a5209dd-0a2a450588bc-26
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:17:10 +0200
Received: from [209.85.208.51] (helo=mail-ed1-f51.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <jgross@suse.com>)
 id 6a19adf6-aaa8-0a2a45050019-d155d033dc9e-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:17:10 +0200
Received: by mail-ed1-f51.google.com with SMTP id
 4fb4d7f45d1cf-67e9e343b22so19114113a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:17:10 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-68c163071b8sm685922a12.26.2026.05.29.08.17.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 May 2026 08:17:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1780067830; x=1780672630; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zca8RK4iV1xX3dM4Yjj98YOB3oNPNgD2tTRLuNRRpno=;
        b=TczTVu7+65WN+hHyh4cqJFSZyY1JJmr7jjwAFX9RmmJwYVWsp8juYGg8K6Cad1vrpa
         9KJ5XGA4NLs/odieVJBIPFSFwhgXvjSUhjHlgwGFyc0Xk506E9oWvu/ST+Os4XYKY+Is
         1C+JVqrvRvzXsL5YmAFaQpzuNNNbQx6MYr02dzINOEavv+5nKPPJi4CTFLsrUT4eryBA
         u//Epo6kn6jokIaEMB7sECXglJZemKq+WnzCr8QJ0hy3YONfSfN/pNyRjdDIWFqaI0Yr
         Z2uknd67zV20f/y/7hNHGv/8VdtPqjMHmoUPRSWxv88Q5iwPcBI0TVD3uaS8Y5vzqIvD
         3ubA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780067830; x=1780672630;
        h=in-reply-to:autocrypt:from:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=zca8RK4iV1xX3dM4Yjj98YOB3oNPNgD2tTRLuNRRpno=;
        b=Bi3Hx/d2rhv6Doquwf/H60U9iBYV5db1d66zKn6PgvskZ07KicYTKFAGSxDi6Vwc4X
         +nYyfNJN9iyyeeZ/IEW23Xdko2i7Cohz2xnpYl1G5oTC3ECdGhC0MORTR3dP1++hsfk2
         Q4JbOgyHyP0ipgNYeI2SWZccx13MRIBUDGtLrkBQ+Jz8gNduNkneZ2+s/yYm83ViWO6L
         b/l7LVN0rfaZ9JvkNVlzQcLct8aph2x1uxM3wNdqjDKZAxXFkXLHOSRYdFELrZNlMjNq
         KcYAPpls3LVvrLN+JBsuRhBErz3Is11pF2AGvXRP/P0p30t41Dag92m/40IKlBIGXLjg
         /bDQ==
X-Forwarded-Encrypted: i=1; AFNElJ9EvSpSSO+7mtdhnY1F+cKQASwXQsnOtnkko0dlwWdvFBL7nUvole9mu5NSCSaxH+1k36Xbf35ZR7E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwU0qAb15d4d9S3rLZ7jXBrE7ctn+ILbYaWUOVyVr0HYNDzNiow
	2yVHKQXKVSK2mV7WhLusasjQAtS/fT6hDEH5e7NnN88EZZQ1Qn3+Ikkne19WatGkogY=
X-Gm-Gg: Acq92OFB9Dl5q9gf68684jDSwiZaFVWgHv64VMciTBlw7VCf9DwC/cEXAzjRTGvB5lo
	Ca18KkfCzc9HO76EGUst5VdWfeK+z3bk0e13zX500D24yb5FCWausLnmHQUBh9Ow3iEVxYnyP3x
	m1xfMgWHW41gcJWOQYBEnQMkCSC0zZQFtzywuVPhM1UtIGOpNJ1HcXYDJCNGdFYacmTr9TQEPFt
	UX25Gw3faYJFj9yplw5t1udMeVyyGZpuviXYTz/ouENPCAHyy2XiVffShkGm+rElZDgSW7CQBUT
	HwL/MNJGNmlhdJ4Ydx31QFTieLQOABd9Sm0Dsq/IOze+aSlhb7VqDpxCu8X1YX/+2f0RCv6FvBk
	MKAj1otv1DSdZxTJAzleDanRtywitRPAT7QCSK9ljYitDAZBGGMniCopBTPitaNHsVFg7qcP2Cq
	YR9llU2gxwCAgRLpiBSa3wNQ3YyQ7qirjCPMOD7xlOTXeOF/TuvfpxEBfJdSODZkacR1ViqI2sI
	MejcI5m8mDJimUO8AKbZQFWOTcvcbkhSUnwjw1vdNqL/WZFl1490cKdD8/0/XoqTCEtrFDJsig=
X-Received: by 2002:a05:6402:3219:b0:68b:ce88:9d3f with SMTP id 4fb4d7f45d1cf-68c8d5d8709mr41821a12.22.1780067829987;
        Fri, 29 May 2026 08:17:09 -0700 (PDT)
Message-ID: <a84e5899-8b1b-4330-b475-26932e9f5b5f@suse.com>
Date: Fri, 29 May 2026 17:17:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 00/47] x86: Try to wrangle PV clocks vs. TSC
To: Sean Christopherson <seanjc@google.com>,
 Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>,
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
 Kiryl Shutsemau <kas@kernel.org>, "K. Y. Srinivasan" <kys@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
 Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>,
 Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>,
 Peter Zijlstra <peterz@infradead.org>,
 Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz
 <jstultz@google.com>, "H. Peter Anvin" <hpa@zytor.com>,
 Rick Edgecombe <rick.p.edgecombe@intel.com>,
 Vitaly Kuznetsov <vkuznets@redhat.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd
 <sboyd@kernel.org>, kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
 linux-coco@lists.linux.dev, linux-hyperv@vger.kernel.org,
 virtualization@lists.linux.dev, xen-devel@lists.xenproject.org,
 David Woodhouse <dwmw@amazon.co.uk>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, David Woodhouse <dwmw2@infradead.org>,
 Michael Kelley <mhklinux@outlook.com>, Thomas Gleixner <tglx@linutronix.de>
References: <20260529144435.704127-1-seanjc@google.com>
 <ahmsZA8mHj9CPnd2@google.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <ahmsZA8mHj9CPnd2@google.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------aYuk5CIBTXJNjobrT9M3zkNr"
X-purgate-ID: tlsNG-c201ff/1780067830-D8145443-FFD50B0F/0/0
X-purgate-type: clean
X-purgate-size: 8020

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------aYuk5CIBTXJNjobrT9M3zkNr
Content-Type: multipart/mixed; boundary="------------vmiXLelkdEtqIjil5foIfm8r";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Sean Christopherson <seanjc@google.com>,
 Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>,
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
 Kiryl Shutsemau <kas@kernel.org>, "K. Y. Srinivasan" <kys@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
 Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>,
 Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>,
 Peter Zijlstra <peterz@infradead.org>,
 Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz
 <jstultz@google.com>, "H. Peter Anvin" <hpa@zytor.com>,
 Rick Edgecombe <rick.p.edgecombe@intel.com>,
 Vitaly Kuznetsov <vkuznets@redhat.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stephen Boyd
 <sboyd@kernel.org>, kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
 linux-coco@lists.linux.dev, linux-hyperv@vger.kernel.org,
 virtualization@lists.linux.dev, xen-devel@lists.xenproject.org,
 David Woodhouse <dwmw@amazon.co.uk>, Tom Lendacky <thomas.lendacky@amd.com>,
 Nikunj A Dadhania <nikunj@amd.com>, David Woodhouse <dwmw2@infradead.org>,
 Michael Kelley <mhklinux@outlook.com>, Thomas Gleixner <tglx@linutronix.de>
Message-ID: <a84e5899-8b1b-4330-b475-26932e9f5b5f@suse.com>
Subject: Re: [PATCH v4 00/47] x86: Try to wrangle PV clocks vs. TSC
References: <20260529144435.704127-1-seanjc@google.com>
 <ahmsZA8mHj9CPnd2@google.com>
In-Reply-To: <ahmsZA8mHj9CPnd2@google.com>

--------------vmiXLelkdEtqIjil5foIfm8r
Content-Type: multipart/mixed; boundary="------------puKE5E0qrmVaohkfi4bPDSIF"

--------------puKE5E0qrmVaohkfi4bPDSIF
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMjkuMDUuMjYgMTc6MTAsIFNlYW4gQ2hyaXN0b3BoZXJzb24gd3JvdGU6DQo+IE9uIEZy
aSwgTWF5IDI5LCAyMDI2LCBTZWFuIENocmlzdG9waGVyc29uIHdyb3RlOg0KPj4gV2VsbCwg
dGhlIG51bWJlciBvZiBwYXRjaGVzIGluIHRoZSBzZXJpZXMgaXMgZ29pbmcgaW4gdGhlIHdy
b25nIGRpcmVjdGlvbiwNCj4+IGJ1dCBJJ20gbXVjaCBoYXBwaWVyIHdpdGggdGhpcyB2ZXJz
aW9uLCB3aGljaCBlc2NoZXdzIHRoZSB4ODZfcGxhdGZvcm0NCj4+IG92ZXJyaWRlcyBlbnRp
cmVseSBpbiBmYXZvciBvZiBhIGZpeGVkIHNlcXVlbmNlIGZvciBzZWxlY3RpbmcgdGhlIFRT
Qy9DUFUNCj4+IGZyZXF1ZW5jeSAicm91dGluZSIuDQo+IA0KPiBGWUksIG91ciBpbnRlcm5h
bCBtYWlsIHNlcnZlciBmbGFtZWQgb3V0IGFmdGVyIHNlbmRpbmcgcGF0Y2ggMjYgaW4gdGhl
IGluaXRpYWwNCj4gZ28uICBJJ20gcHJldHR5IHN1cmUgSSBtYW5hZ2VkIHRvIGdldCB0aGUg
cmVzdCBzZW50IHdpdGhvdXQgc2NyZXdpbmcgdXAgdGhlDQo+IHRocmVhZGluZy4gIEhvbGxl
ciBpZiBzb21ldGhpbmcgaXMgd29ua3kgYW5kIEknbGwgUkVTRU5EIHRoZSB3aG9sZSBwaWxl
IGlmIG5lY2Vzc2FyeS4NCg0KTG9va3MgZmluZSBvbiBteSBzaWRlLg0KDQoNCkp1ZXJnZW4N
Cg==
--------------puKE5E0qrmVaohkfi4bPDSIF
Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjri
oyspZKOBycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2
kaV2KL9650I1SJvedYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i
1TXkH09XSSI8mEQ/ouNcMvIJNwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/B
BLUVbDa4+gmzDC9ezlZkTZG2t14zWPvxXP3FAp2pkW0xqG7/377qptDmrk42GlSK
N4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEBAAHNHEp1ZXJnZW4gR3Jvc3Mg
PGpnQHBmdXBmLm5ldD7CwHkEEwECACMFAlOMcBYCGwMHCwkIBwMCAQYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCw3p3WKL8TL0KdB/93FcIZ3GCNwFU0u3EjNbNjmXBKDY4F
UGNQH2lvWAUy+dnyThpwdtF/jQ6j9RwE8VP0+NXcYpGJDWlNb9/JmYqLiX2Q3Tye
vpB0CA3dbBQp0OW0fgCetToGIQrg0MbD1C/sEOv8Mr4NAfbauXjZlvTj30H2jO0u
+6WGM6nHwbh2l5O8ZiHkH32iaSTfN7Eu5RnNVUJbvoPHZ8SlM4KWm8rG+lIkGurq
qu5gu8q8ZMKdsdGC4bBxdQKDKHEFExLJK/nRPFmAuGlId1E3fe10v5QL+qHI3EIP
tyfE7i9Hz6rVwi7lWKgh7pe0ZvatAudZ+JNIlBKptb64FaiIOAWDCx1SzR9KdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+wsB5BBMBAgAjBQJTjHCvAhsDBwsJ
CAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/Ey/HmQf/RtI7kv5A2PS4
RF7HoZhPVPogNVbC4YA6lW7DrWf0teC0RR3MzXfy6pJ+7KLgkqMlrAbN/8Dvjoz7
8X+5vhH/rDLa9BuZQlhFmvcGtCF8eR0T1v0nC/nuAFVGy+67q2DH8As3KPu0344T
BDpAvr2uYM4tSqxK4DURx5INz4ZZ0WNFHcqsfvlGJALDeE0LhITTd9jLzdDad1pQ
SToCnLl6SBJZjDOX9QQcyUigZFtCXFst4dlsvddrxyqT1f17+2cFSdu7+ynLmXBK
7abQ3rwJY8SbRO2iRulogc5vr/RLMMlscDAiDkaFQWLoqHHOdfO9rURssHNN8WkM
nQfvUewRz80hSnVlcmdlbiBHcm9zcyA8amdyb3NzQG5vdmVsbC5jb20+wsB5BBMB
AgAjBQJTjHDXAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQsN6d1ii/
Ey8PUQf/ehmgCI9jB9hlgexLvgOtf7PJnFOXgMLdBQgBlVPO3/D9R8LtF9DBAFPN
hlrsfIG/SqICoRCqUcJ96Pn3P7UUinFG/I0ECGF4EvTE1jnDkfJZr6jrbjgyoZHi
w/4BNwSTL9rWASyLgqlA8u1mf+c2yUwcGhgkRAd1gOwungxcwzwqgljf0N51N5Jf
VRHRtyfwq/ge+YEkDGcTU6Y0sPOuj4Dyfm8fJzdfHNQsWq3PnczLVELStJNdapwP
OoE+lotufe3AM2vAEYJ9rTz3Cki4JFUsgLkHFqGZarrPGi1eyQcXeluldO3m91NK
/1xMI3/+8jbO0tsn1tqSEUGIJi7ox80eSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1
c2UuZGU+wsB5BBMBAgAjBQJTjHDrAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgEC
F4AACgkQsN6d1ii/Ey+LhQf9GL45eU5vOowA2u5N3g3OZUEBmDHVVbqMtzwlmNC4
k9Kx39r5s2vcFl4tXqW7g9/ViXYuiDXb0RfUpZiIUW89siKrkzmQ5dM7wRqzgJpJ
wK8Bn2MIxAKArekWpiCKvBOB/Cc+3EXE78XdlxLyOi/NrmSGRIov0karw2RzMNOu
5D+jLRZQd1Sv27AR+IP3I8U4aqnhLpwhK7MEy9oCILlgZ1QZe49kpcumcZKORmzB
TNh30FVKK1EvmV2xAKDoaEOgQB4iFQLhJCdP1I5aSgM5IVFdn7v5YgEYuJYx37Io
N1EblHI//x/e2AaIHpzK5h88NEawQsaNRpNSrcfbFmAg987ATQRTjHAWAQgAyzH6
AOODMBjgfWE9VeCgsrwH3exNAU32gLq2xvjpWnHIs98ndPUDpnoxWQugJ6MpMncr
0xSwFmHEgnSEjK/PAjppgmyc57BwKII3sV4on+gDVFJR6Y8ZRwgnBC5mVM6JjQ5x
Dk8WRXljExRfUX9pNhdE5eBOZJrDRoLUmmjDtKzWaDhIg/+1Hzz93X4fCQkNVbVF
LELU9bMaLPBG/x5q4iYZ2k2ex6d47YE1ZFdMm6YBYMOljGkZKwYde5ldM9mo45mm
we0icXKLkpEdIXKTZeKDO+Hdv1aqFuAcccTg9RXDQjmwhC3yEmrmcfl0+rPghO0I
v3OOImwTEe4co3c1mwARAQABwsBfBBgBAgAJBQJTjHAWAhsMAAoJELDendYovxMv
Q/gH/1ha96vm4P/L+bQpJwrZ/dneZcmEwTbe8YFsw2V/Buv6Z4Mysln3nQK5ZadD
534CF7TDVft7fC4tU4PONxF5D+/tvgkPfDAfF77zy2AH1vJzQ1fOU8lYFpZXTXIH
b+559UqvIB8AdgR3SAJGHHt4RKA0F7f5ipYBBrC6cyXJyyoprT10EMvU8VGiwXvT
yJz3fjoYsdFzpWPlJEBRMedCot60g5dmbdrZ5DWClAr0yau47zpWj3enf1tLWaqc
suylWsviuGjKGw7KHQd3bxALOknAp4dN3QwBYCKuZ7AddY9yjynVaD5X7nF9nO5B
jR/i1DG86lem3iBDXzXsZDn8R3/CwO0EGAEIACAWIQSFEmdy6PYElKXQl/ew3p3W
KL8TLwUCWt3w0AIbAgCBCRCw3p3WKL8TL3YgBBkWCAAdFiEEUy2wekH2OPMeOLge
gFxhu0/YY74FAlrd8NAACgkQgFxhu0/YY75NiwD/fQf/RXpyv9ZX4n8UJrKDq422
bcwkujisT6jix2mOOwYBAKiip9+mAD6W5NPXdhk1XraECcIspcf2ff5kCAlG0DIN
aTUH/RIwNWzXDG58yQoLdD/UPcFgi8GWtNUp0Fhc/GeBxGipXYnvuWxwS+Qs1Qay
7/Nbal/v4/eZZaWs8wl2VtrHTS96/IF6q2o0qMey0dq2AxnZbQIULiEndgR625EF
RFg+IbO4ldSkB3trsF2ypYLij4ZObm2casLIP7iB8NKmQ5PndL8Y07TtiQ+Sb/wn
g4GgV+BJoKdDWLPCAlCMilwbZ88Ijb+HF/aipc9hsqvW/hnXC2GajJSAY3Qs9Mib
4Hm91jzbAjmp7243pQ4bJMfYHemFFBRaoLC7ayqQjcsttN2ufINlqLFPZPR/i3IX
kt+z4drzFUyEjLM1vVvIMjkUoJs=3D
=3DeeAB
-----END PGP PUBLIC KEY BLOCK-----

--------------puKE5E0qrmVaohkfi4bPDSIF--

--------------vmiXLelkdEtqIjil5foIfm8r--

--------------aYuk5CIBTXJNjobrT9M3zkNr
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmoZrfMFAwAAAAAACgkQsN6d1ii/Ey+/
/gf/cTMfwxMSsyaONXXUw4+xZ50QMaKOi/uNkdrkdNlCp3/GO7aLZEpnVr2wgZT6WT3a4x/5Z5iI
/ynF2igzSaImMlKFvwrMxUFI8tZQXkwVTyO/Mmj3xe6hqMN5Zkq1OuRXyj5dgSTf5sqNXsAcGm5X
NKSfWdmdXwKE+mDA+ysfH545ZOYfQuWGS7xipiPBbgaz7mQ0yItWc3pNo9dSdcygj1IjeqJiyOoa
NkhA0l1otsL3pcqflLwkvKIjV/KEdZTM5BbCN2i/f2sP6S2HPhauZCuUmpKvFf7ymkdQ/8nGwjQt
Fvcmxlp+M5qj0+qF8DOgNdmRfKkm3eFdbWBZkSESjw==
=sM5P
-----END PGP SIGNATURE-----

--------------aYuk5CIBTXJNjobrT9M3zkNr--


From xen-devel-bounces@lists.xenproject.org Fri May 29 15:21:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:21:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322613.1588896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSz1B-0005hg-Dv; Fri, 29 May 2026 15:21:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322613.1588896; Fri, 29 May 2026 15:21:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSz1B-0005hZ-BI; Fri, 29 May 2026 15:21:01 +0000
Received: by outflank-mailman (input) for mailman id 1322613;
 Fri, 29 May 2026 15:21:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1wSz19-0005hS-Q7
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:21:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSz19-009MB4-6u
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:20:59 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a19aecb-e002-0a2a0a5209dd-0a2a4505ad7e-26
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:20:59 +0200
Received: from [40.93.195.28]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 6a19aed6-aaa8-0a2a45050019-285dc31cf523-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:20:58 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV8PR03MB7376.namprd03.prod.outlook.com (2603:10b6:408:18b::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.14; Fri, 29 May
 2026 15:20:51 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.21.0071.011; Fri, 29 May 2026
 15:20:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aRGefmLQnLXP4FcH5LFkbUOB6+YDGFP9KZDR6MvBG8OqYtstNEfHe2UvkY15IlbieGqooxPxD+WkcMjF5vysGsFGLZkx837wkbbQdvjToqm0YuZdIxhsL/ZyKUmxIPRtjS4Ay3UWjEgFH4gH80Ok2rbeh1iZK829inT7VtyCUbnIY8kuEXxL7jtE1MBodx+O2VfQO3vGGrOpZUXKWQgC89KSQxziVIKFIrt5Bf3Q2ysQlAqda7mDZz6Sw4WRWR9y1vpha+iVPM81DAaFKaQjUVuSJARqyYuQUcJzYKJxlU+5lDHzOEmCmKSXFdVb3zeHh25vd69i+0FCfoVBs0ASsw==
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=2dnrB7eKLSIFUkA1dWLEGhOfnILge1wkUC5oMTYLxxM=;
 b=O8GpEPlaIIBmdRzG0vLWCaKNlAfMw4maHsa6EmRZCRjmJRmXVK0AybM1FDzLXlJcUWMyEGDDBrI/C1KPLQlImib9PbXrsMtz/gvaZNvcLt1V5UrKTIYyXf6amXEmBcek7m7v/oKCUa2Elyi16fDISZlkg2JHas8drnYtFbpBTbRDJHaxTHeOszLVWzDUOTTXSuA5MGH4X3FJPi7Iqe9XB0GufQ1cXEP5BC0nipuJN7rcDhLLKiLyD3uNMzN1od5ElJ/sLUKcOkE13f5ODZCiJbHzLyrpNMkGPIy7lQZlmlT5eThKOlzK9QoVYsrvUUgx0fpoOlH1HMY/SnZ/F4uLKw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2dnrB7eKLSIFUkA1dWLEGhOfnILge1wkUC5oMTYLxxM=;
 b=cnjn7ERgg4hxaOqYkdm6m3Kcv0ZxXMQ2Ff5wuiVFhaHTVgTmiKi2xBq55l+gtxan5o6OYNb7ayhyZ3CiwfJ/TNoF5aF+LlO1+sbhxdWUtgaKwMxytjPmWf//nF54bVhQvwAuFdKhGrpOUZZBRIWfbLQlYoR/04EaSJO4lHsler4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <791431e8-8f91-4ddd-9ce0-3ab2fb3beae5@citrix.com>
Date: Fri, 29 May 2026 16:20:47 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH 4/5] CI: Add a Debian 13 (Trixie) arm64 container
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260508212907.1643761-1-andrew.cooper3@citrix.com>
 <20260508212907.1643761-5-andrew.cooper3@citrix.com>
 <249ca124-b144-4c50-a0fb-3c0e6db5a1ca@amd.com>
 <d1037e15-cde7-40a1-9011-a02c23e870e8@citrix.com>
 <36527d70-da8c-454d-8de4-54c29c3bd565@amd.com>
 <d6bbc387-4049-4c0b-8d30-34a287393cfa@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <d6bbc387-4049-4c0b-8d30-34a287393cfa@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR3P191CA0045.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:102:55::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|LV8PR03MB7376:EE_
X-MS-Office365-Filtering-Correlation-Id: 9ffdf0a7-7c82-42f5-aefe-08debd95de82
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|22082099003|18002099003|6133799003|5023799004|11063799006|56012099006|4143699003;
X-Microsoft-Antispam-Message-Info:
	6tKrfW1wb8+jugxijBniuoM/gA8tGWhoYCj76ZvJvVvRg19aoqxv9y9X7SVTC3e8JDQ0QaTqVA6I6yPVtEFghHpoWpeX0PcTytL1oid1mVjHpn+HXnDUyAnoiV2sa9/eh4NAgx75+9/m5yLmMINVCYVcdzXAs0GjtGiorNrueOwKKnWQwdsbVHsCNwJqt3WxyC+X/ECikyy0AInoZ060dl0MKH50pug1p2CK8Bwg+2sS2QI94kFUx4Av+cIp4nuStZmyQjpGL3N/oc5YogiVft/Pg3oIC4iu1xAlfGStjrXQs2hqNZp8LKzsbrvyczi9bgG10PqJkYEPLUdj2b3W+I5JWe2R6Kg2T5NMIsCj2kO/TmqdPxfVM8OF+ogZ1ixnSnoR45xBw5+GNmR4IjvB4U2SY12BCGxzxHzN4j31yY1iVxK8RJLoS8BBz3+lsn1uTto2OGjngg3svSebml6BmFacw4lvVdBoTerYLfIuxzT3K/4sUjAASJc3/o/gqvV0Opjqa3ENKgqJt/oqSBrw05hkKSv0RCxShfAdcoODFhRCAA+6luLWtcY21kJ3Ou+1m6iLbSqL2ShojXrBB8pVNiqdXOcNWIemei8hgP4EPr1kKdPPYnl8bLrbhMUhNEZGgvjBfPn6eRwTGsovWTbUAzMiERYw5qFX3ZjHAd1ko2kclVuUhqGWlC/oAuJnl5qjBGT/WjXUvi8Q+ecTyrA/0A==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(22082099003)(18002099003)(6133799003)(5023799004)(11063799006)(56012099006)(4143699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dlBBU2UycllYbEpnbHRYUGllcUtsZDc2Z3U1bVhlS0wrZStqYnEyei9WR2N0?=
 =?utf-8?B?bXVEQ0Fnc2N1bUZJQmxRQUg4Tzk1VVRFM0RDOVdoWFVVK0JXSHMzTnNYR1dw?=
 =?utf-8?B?S3hLZ01tRmpEYnI4bm9aVll6UERIV3Q0Vk1kQUVsQ3BQcFZ5Q2RDQVNMbUNn?=
 =?utf-8?B?NkJzM3Jpb00wWjJ5bUJ3Z1pPN1NkL1Vrdk42R2xSSWFTRk91bnk2UkU4SW9V?=
 =?utf-8?B?WUpOUHBRUE40WDl6RkYwSkJWTTJYOGVMMytaTXIxamJBWDlwSHlYZ25GeFMz?=
 =?utf-8?B?N0hmcmhlYXdrQmJWTzdyWUF3dE9Mdyt3Tk4xR3ZSdVkxNW9ZOUNuemRWOXNq?=
 =?utf-8?B?clJkYndMTHl3SVY4QXNaK1VJMk9DclZhYldNbWRoalllK09xNFBrWHo4U2Vl?=
 =?utf-8?B?ZmpnTm1lR0dSazZ6U1BncWMwSXlBbVIyRmJLNVhJSlI2ZDh2Q2xwcjZvWEJM?=
 =?utf-8?B?VzhubCswVDVCZFREdTRiR0hnbEowbnZzaVFvQm5RTzYvVmJmUEpsRG51ZFVi?=
 =?utf-8?B?WDVzMW44a0JSeVFHOFBvL2x1K0ZSZFNrWUQ4WlN1aThneExLdEpqTS9sTWNu?=
 =?utf-8?B?S3BiaHdjd0xGa3BjNHl6QkZac05qU0MwUnVndEpNeGhXTXozL3RWYmFFbUFQ?=
 =?utf-8?B?MFE4T1RvYjZPYzhiNnNvcm4rZDZCZDZhUm12bjBWS1Frbk9YQnR5VUxVQXE3?=
 =?utf-8?B?TmV2MjllNm03aFZ2NkN3MHFZbXlvN1BTN0FWT2lUeGJpZWxRaG9jVFUycHp1?=
 =?utf-8?B?L3F6T2JyUzY3NEl0eTFRK1JwYmNPQ0tOa3l3cFBYOHRsS1ZNZTNmbTRCTCtS?=
 =?utf-8?B?d1FhWUdPN2IwZWRwY3dVSHhKWm5VMVBjUkIxc211dGNrK1FjREY0UGpZUnZs?=
 =?utf-8?B?RzRBbnRPWjJvVHZyZWM5TCtXWDUrRFJIMzd0WlNUOWhyaHZ6b3BjSzE3ajZZ?=
 =?utf-8?B?UDlxN01vWngrNzI0V1BCcGlMTnVwT0hrL2NiZVAzdnRhQ1VGZG1keXdGTEJr?=
 =?utf-8?B?Nzc2dHo3dFl6cU1RQWdZclpTRGtvYmVuNW54OTFCeE05MmpjNnhzTE9kc2dl?=
 =?utf-8?B?QWxvMlp5SW5SM2s2ZVlxd0t4T1Y4MjIrK255MmtUMmhSL0tUZzd3Nnk3WXBO?=
 =?utf-8?B?bWZOQnRjb0VFQVVkV01ZVmgxUXIrRURkblAzNU9Rd09lNURFSElZNkE0d1RD?=
 =?utf-8?B?STF1WnBmY2RtSU9mNmdJa3pabzVsWmxVN1NYMy9GNjdOQ1ZFeENuMFZVYmtN?=
 =?utf-8?B?RmhvRzlkQUQ2NW9UeXZzVEp4SWI4WUovVHZVR3JVUVJ1SlQ2eUpjNStaenFK?=
 =?utf-8?B?MUVjaTIwUFc3WTdkNFB5a0cxU1dTVEZpejRvdVgrOThSVzBBaHp1T05XMEJu?=
 =?utf-8?B?Z2oyU0V2QUJTZzlVUlMzejhmSG5tcUxidHRPaE9DSGwwMDczUS9yclVEVHF6?=
 =?utf-8?B?RzBJQ2F1NFAvSFdwY2Q1cDhNNFlLZHhkSkI5WmY3K3hJejg0akJwU2l5blhl?=
 =?utf-8?B?eDVvOGRhWGVoT3hoQ3hrNzNVcngwc3gvTVQ3K0MzZXVvb2JDOW1ubjY3dmVm?=
 =?utf-8?B?YmYvNGxiN2xnY0xmNEdTZGR3MG1uU09jYnpRenBxU21tMWVvNkJHRWlYQWdx?=
 =?utf-8?B?N1RmT09CUmxpNkFicS9KUEJxZy9zZmk5a2I1Wmc2bjY0cGNiVUViREVNd1hI?=
 =?utf-8?B?cUloYStVQzFmRnZTQWNQMHp2YjZTOGZaTmZXS2dyclc4SGw1Y0ZNOENxejc4?=
 =?utf-8?B?Q0ZaNVpMZmJjdEk2OVBYZzJSRG9oTGlScjhUYjZ4MnFLVFkxbVNSZFRndEZq?=
 =?utf-8?B?ZHE5QjcrRnJTS1plODZhMXFycmlLVTlicndwUHpoQVIxZkIrZWhpbXU2YTcz?=
 =?utf-8?B?cGxjMzZTWGtIcjZTWkNnQmxZaW0rUFFlbEU2SzQwOUFRbS81WnpwYi9hcTdj?=
 =?utf-8?B?dVByalo3TFNXR0dPTUJhdDNFR0UwdGMzUUlySDM5Zi9ncmY4c2tzNS83Y0dy?=
 =?utf-8?B?NVlSQ0FtVkxVc3lyUnFXdDNzSlpqK3NDZENtQlk1NkdXMC9Wa3hJbmJKTGwz?=
 =?utf-8?B?NXZ2NlZFQmxBV1hIUjBvbDJVQ0hVNFFVdEh1NmJhY3BlZS9aVDJ0VWs1TXNK?=
 =?utf-8?B?cVVUOUlGTUlrc1ZYUzNBRGtjRy9QRDlPZmdXMHJtYU9uOFhlbGpOVy9rUkV4?=
 =?utf-8?B?S2xYamFRNkc3aU54cGErZVBleVlJTXFrSTd3Z1pha1hwZXNDUGU5c2Zzdklk?=
 =?utf-8?B?L1pYTzlwbmd1dXVNL05pQWNaaFA5Vm1SamRqNGdSWFdVWkN6MmNaMnU5bXlT?=
 =?utf-8?B?NWtwU3hvUnhVRVoyMTBsbDBDUStyc3JxRW9SUHZtMG43L09TK1dvSnNZQXE4?=
 =?utf-8?Q?25DcPGOLig/Hl5aY=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9ffdf0a7-7c82-42f5-aefe-08debd95de82
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 May 2026 15:20:51.8505
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8KCYVTlK0yIjLIMRr/hO7hmsxGN9GTWXRsceESdFlbHeTvMsWbqu5Qzm6EfLTnEG9bE3vncQYU0ndPpc3C7FCQTy8iTKc7CbT/8v53WBHZk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR03MB7376
X-purgate-ID: tlsNG-c201ff/1780068059-E2193443-E31B7FEE/10/63158204843
X-purgate-type: spam
X-purgate-size: 7395

On 13/05/2026 11:58 am, Andrew Cooper wrote:
> On 13/05/2026 7:32 am, Orzel, Michal wrote:
>> On 11-May-26 11:21, Andrew Cooper wrote:
>>> On 11/05/2026 7:29 am, Orzel, Michal wrote:
>>>> On 08-May-26 23:29, Andrew Cooper wrote:
>>>>> Exactly as per the Bookworm container, but additionally with the ipxe-qemu and
>>>>> qemu-system-aarch64 packages.  These will be used to remove the export jobs.
>>>>>
>>>>> Switch qemu-arm{32,64} jobs to use this container.
>>>>>
>>>>> No functional change.
>>>>>
>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>> ---
>>>>> CC: Anthony PERARD <anthony.perard@vates.tech>
>>>>> CC: Stefano Stabellini <sstabellini@kernel.org>
>>>>> CC: Michal Orzel <michal.orzel@amd.com>
>>>>> CC: Doug Goldstein <cardoe@cardoe.com>
>>>>>
>>>>> We should probably wire up some build tests too, but it's too late on a Friday
>>>>> for me to be thinking about that for this posting.
>>>>> ---
>>>>>  automation/build/debian/13-arm64v8.dockerfile | 71 +++++++++++++++++++
>>>>>  automation/gitlab-ci/test.yaml                |  4 +-
>>>>>  automation/scripts/containerize               |  1 +
>>>>>  3 files changed, 74 insertions(+), 2 deletions(-)
>>>>>  create mode 100644 automation/build/debian/13-arm64v8.dockerfile
>>>>>
>>>>> diff --git a/automation/build/debian/13-arm64v8.dockerfile b/automation/build/debian/13-arm64v8.dockerfile
>>>>> new file mode 100644
>>>>> index 000000000000..b9062ee8b443
>>>>> --- /dev/null
>>>>> +++ b/automation/build/debian/13-arm64v8.dockerfile
>>>>> @@ -0,0 +1,71 @@
>>>>> +# syntax=docker/dockerfile:1
>>>>> +FROM --platform=linux/arm64/v8 debian:trixie-slim
>>>>> +LABEL maintainer.name="The Xen Project"
>>>>> +LABEL maintainer.email="xen-devel@lists.xenproject.org"
>>>>> +
>>>>> +ENV DEBIAN_FRONTEND=noninteractive
>>>>> +
>>>>> +RUN <<EOF
>>>>> +#!/bin/bash
>>>>> +    set -eu
>>>>> +
>>>>> +    useradd --create-home user
>>>>> +
>>>>> +    apt-get update
>>>>> +
>>>>> +    DEPS=(
>>>>> +        # Xen
>>>>> +        bison
>>>>> +        build-essential
>>>>> +        checkpolicy
>>>>> +        flex
>>>>> +
>>>>> +        # Tools (general)
>>>>> +        ca-certificates
>>>>> +        cpio
>>>>> +        git-core
>>>>> +        pkg-config
>>>>> +        wget
>>>>> +        # libxenguest dombuilder
>>>>> +        libbz2-dev
>>>>> +        liblzma-dev
>>>>> +        liblzo2-dev
>>>>> +        libzstd-dev
>>>>> +        zlib1g-dev
>>>>> +        # libacpi
>>>>> +        acpica-tools
>>>>> +        # libxl
>>>>> +        libfdt-dev
>>>>> +        libjson-c-dev
>>>>> +        uuid-dev
>>>>> +        # xentop
>>>>> +        libncurses5-dev
>>>>> +        # Python bindings
>>>>> +        python3-dev
>>>>> +        python3-setuptools
>>>>> +        # Golang bindings
>>>>> +        golang-go
>>>>> +        # Ocaml bindings/oxenstored
>>>>> +        ocaml-nox
>>>>> +        ocaml-findlib
>>>> Since this is a container used only for tests, why listing packages required for
>>>> Xen and tools build?
>>> I did leave a note about that.
>>>
>>>>> +
>>>>> +        # for test phase, qemu-* jobs
>>>>> +        busybox-static
>>>>> +        curl
>>>>> +        device-tree-compiler
>>>>> +        expect
>>>>> +        file
>>>>> +        ipxe-qemu
>>>>> +        ovmf
>>>>> +        qemu-system-aarch64
>>>>> +        u-boot-qemu
>>>>> +        u-boot-tools
>>>> So after this change, even though you replace debian-12 with debian-13 for all
>>>> the tests, the debian-12 still contains the unneeded packages (i.e. for a test
>>>> phase that it no longer runs).
>>> Yes.  I can't do this series bisectably without it.  Also, in the past
>> Ok, I understand the bisectibility problem.
> On further thought, I can in principle fix bisectibility by introducing
> Trixie first, but that loses the logical sequence of events somewhat.
>
>>> people have explicitly requested to be able to run the qemu smoke
>>> testing from the build container, which is why it's like this and not split.
>> Unless it's a rule that every container follows and is documented somewhere I
>> don't like this argument.
> It was explicitly requested by ARM, and accepted at a time.
>
> If you'd like to revisit this decision, that's also fine too, but I
> don't want to be flip-flopping on it.
>
> I could:
> 1) Make a 13-arm64v8-test.dockerfile containing only the test phase stuff
> 2) Switch to this ahead of the 12 cleanup
> 3) Do the 12 cleanup without the test phase stuff
>
> although this makes a new scheme that we haven't used before.
>
> The one thing to say.  It's almost always safe to add packages to an
> existing container, but ...
>
>> My plan then is to do the clean up of Arm containers
>> in the future to remove packages not used.
> ... you can't remove packages from an existing container.  The
> containers are shared by all stable branches, and you'll generally break
> older branches by doing this.
>
> Where we have dropped dependences, e.g. ae26101f6bfc, I've commented the
> dockerfile so it doesn't get copied forwards into a new container, and
> can be dropped when the identified version falls out of stable support.
>
> a0e29b316 is an example where the containers did get rebuilt after the
> version of Xen ceased being tested.
>
>>  It creates more confusion for people
>> willing to create their own dockerfiles for testing (or just to see what it
>> takes to build e.g. Xen on Arm) than it gives benefits.
> That's why the dependencies are grouped and labelled.  I do expect
> people to be able to figure out the bits they don't need based on the
> comments.
>
>>> Honestly, I was hoping to leave the Trixie update to the ARM
>>> maintainers, but despite the Bookworm QEMU (7.2) being newer than the
>>> 6.0 in the export jobs, it contains the SYSREG interception bugs which
>>> prevents hiding ThumbEE from guests, and breaks all the arm32 testing
>>> with a Linux dom0.
>> Does it make sense to have both Debian 12 and Debian 13 build/test? Can't we
>> have just the latest one?
> Build, yes absolutely.  You want as wider range of compilers/toolchains
> as possible.
>
> Test, we tend to only do one.  For x86 it's the alpine build; for ARM,
> it's from the Debian build.
>
>> All of the remarks above are not something that should prevent this patch from
>> going in, so:
>> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> Thanks, but lets see about the latest proposal first.

I'm folding in the following hunk:

diff --git a/automation/gitlab-ci/build.yaml
b/automation/gitlab-ci/build.yaml
index 128b5f45cbad..a1acf2e827df 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -424,6 +424,16 @@ debian-12-arm64-gcc-debug:
   variables:
     CONTAINER: debian:12-arm64v8
 
+debian-13-arm64-gcc:
+  extends: .gcc-arm64-build
+  variables:
+    CONTAINER: debian:13-arm64v8
+
+debian-13-arm64-gcc-debug:
+  extends: .gcc-arm64-build-debug
+  variables:
+    CONTAINER: debian:13-arm64v8
+
 alpine-3.18-gcc-arm64:
   extends: .gcc-arm64-build
   <<: *build-test


which performs some build testing using this container too.  Full
resulting pipeline:

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2562180822

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri May 29 15:36:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:36:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322625.1588914 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSzFh-00044p-Qu; Fri, 29 May 2026 15:36:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322625.1588914; Fri, 29 May 2026 15:36:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSzFh-00044i-O6; Fri, 29 May 2026 15:36:01 +0000
Received: by outflank-mailman (input) for mailman id 1322625;
 Fri, 29 May 2026 15:36:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wSzFg-0003s3-Pb
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:36:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSzFg-005xlZ-6D
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:36:00 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a19b25d-e002-0a2a0a5209dd-0a2a450ceb80-10
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:36:00 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a19b260-62f1-0a2a450c0019-d1558033e08c-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:36:00 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-49050ff7cbdso66630565e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:36:00 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45ef34b834esm4196196f8f.11.2026.05.29.08.35.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 May 2026 08:35:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1780068959; x=1780673759; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=d7y/l1jkvao4JMT1QOIgQemLNRAXdtSrjRi0t8AYbkM=;
        b=SszpiI2364pQlPHUk2HMyfcalgxKbZBzO0QJYS4LZ5XjxuyCLjHwkHRUMyXQrCghTv
         ucFU2JTCtX/40iTW4uHTE2YMuoyYcWEieCLXH4OSFRXXxeTODoK+jRXz5vGk8J/0Gjtu
         mhgch1SSKW7omRw7P62SZ1BtjAgU2r/GfqOWbIVC36WaUFKRxWbGa5HrEk74WFkCjoWH
         OY4AGi3EmC5mb4GKVMvzo7taqzojNXH+s+pU2q9HzR+8mbczmVYr/x9eeWzD12PXTNl1
         gOTn065L7eXvQa+KMun8Skh4f4fC3ya5Dp824OogBNmQMoKJqu/YhGd1lG3W44fSPrBf
         8N2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780068959; x=1780673759;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=d7y/l1jkvao4JMT1QOIgQemLNRAXdtSrjRi0t8AYbkM=;
        b=ov7V40gwkk3cm5z3FJl89MTldiFQTkVWfEA2g9rNT7wLMMljaFs5qNE2CsxBDzC21Q
         xqvtMn8MlQP6Wtiz6exy7tKas0NIyOJ6LopSaET4LwmPgGidGZpeWXRyk47TFGsNDC7W
         LhDBf4porCrFQv1ILvuKRRwPlkHyLkbWSLpYAs7xeaWise6EE2vmznP54H0wfZqUlhr5
         r7qxRTVEVmbDwKgcqqPRfvJq+SCZwmQeUnhrhofWG8ufJQ0XiGmT+HrSoDSGu87pozAb
         V+IgAzG/neeTlVTI9LSF5kzKjXajte+qxe+KuDWZGDQ835KIFGQaPrq5wIhSfGNAApzw
         4wEQ==
X-Gm-Message-State: AOJu0Yw84hFq49HNi2LD4fTz3exn3kujJXbP385c8zTG+9YOWwXENAys
	+VGyK704IVkaNunwpZrijI7Zd0XddXHWxz41Pmwe+Dv2tqRhPibJxgn4zYfMlKaJ
X-Gm-Gg: Acq92OGt7Lrp7kJczY35DK9anyic15BzvSutGGaVmNHqCPXBYoCenpzmJPwO/Dmp1LK
	peazJsV4wWNi+jZ97GfNY0JV9dBRqG1zu0T2jTy/bF59WNuSx3ZzU7MfVV6wGi3Jaf7BuzxEVWQ
	nPNxo44cF9NK92M+b9E+M9FOavUZ27mMlPk5G/8ROnQalzjXU4SvpA0l47+297dS+SVXnaZrX8Q
	5jen2Wi3xu+nV0oUtE9p4yhLtppWnDLQNZwag+J8LSLDLpOpvojVpj4YQ37ho/fGj51LE1+iZyC
	ZYtHRwQGE5aePbdnlyrCdul6anCCyw7qZBT7b2xgdRbml9EfaucEAZeI0In65gU0grbmPk6k+OG
	R0+BajxGExFWk3nH6AoEsEeGs/pjJ/5x0T+8rSiBoC76la5CJxjV+Jfof5F03vUCXtnIeCNDOgW
	VRpuSwgBW6DYMxYpVFQp1Fac3KmCGbFOa7B3zV86pHSHozGwD3IhZ9gHVATyA9XZ6SKedll+dVm
	XHh4KEzMDcy6i2WLmad02cDndiK2lkOAiWb
X-Received: by 2002:a7b:c854:0:b0:490:9699:4428 with SMTP id 5b1f17b1804b1-490a2964057mr1043865e9.26.1780068959478;
        Fri, 29 May 2026 08:35:59 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Gerald Elder-Vass <gerald.elder-vass@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Frediano Ziglio <frediano.ziglio@cloud.com>
Subject: [PATCH 1/6] Add SBAT section to the PE binary
Date: Fri, 29 May 2026 16:35:26 +0100
Message-ID: <20260529153531.1341542-2-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260529153531.1341542-1-frediano.ziglio@cloud.com>
References: <20260529153531.1341542-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1780068960-D956FCF5-82D053DB/0/0
X-purgate-type: clean
X-purgate-size: 2794

From: Gerald Elder-Vass <gerald.elder-vass@cloud.com>

The SBAT section provides a way for the binary to declare a generation
id for its upstream source and any vendor changes applied. A compatible
loader can then revoke vulnerable binaries by generation, using the
binary's declared generation id(s) to determine if it is safe to load.

More information about SBAT is available here:
https://github.com/rhboot/shim/blob/main/SBAT.md

Populate the SBAT section in the Xen binary by using the information
in xen/arch/x86/sbat.csv.

On XenServer, the version and release fields are populated by the spec
file during the build process.

Signed-off-by: Gerald Elder-Vass <gerald.elder-vass@cloud.com>
Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/Makefile     | 4 ++++
 xen/arch/x86/xen.lds.S    | 2 ++
 xen/include/xen/xen.lds.h | 3 ++-
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 47dd6c50fe..a2bdcb6f44 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -71,6 +71,7 @@ obj-$(CONFIG_TBOOT) += tboot.o
 obj-y += hpet.o
 obj-$(CONFIG_VM_EVENT) += vm_event.o
 obj-y += xstate.o
+obj-y += sbat_data.o
 
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
 obj-y += domctl.o
@@ -275,6 +276,9 @@ $(obj)/efi.lds: AFLAGS-y += -DEFI
 $(obj)/xen.lds $(obj)/efi.lds: $(src)/xen.lds.S FORCE
 	$(call if_changed_dep,cpp_lds_S)
 
+$(obj)/sbat_data.o: $(src)/sbat.csv
+	$(OBJCOPY) -I binary -O elf64-x86-64 --rename-section .data=.sbat,readonly,data,contents --add-section .note.GNU-stack=/dev/null $(srcdir)/sbat.csv $@
+
 clean-files := \
     include/asm/asm-macros.* \
     $(objtree)/.xen-syms.[0-9]* \
diff --git a/xen/arch/x86/sbat.csv b/xen/arch/x86/sbat.csv
new file mode 100644
index 000000000000..1573604e2f10
--- /dev/null
+++ b/xen/arch/x86/sbat.csv
@@ -0,0 +1,1 @@
+sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index b9e888e596..c2b9b5a893 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -354,6 +354,8 @@ SECTIONS
   PROVIDE(ALT_START = 0);
   VIRT_START &= 0;
   ALT_START &= 0;
+
+  .sbat (NOLOAD) : { *(.sbat) }
 #elif defined(XEN_BUILD_EFI)
   /*
    * Due to the way EFI support is currently implemented, these two symbols
diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
index ea11e3fb62..c9aa1b7fae 100644
--- a/xen/include/xen/xen.lds.h
+++ b/xen/include/xen/xen.lds.h
@@ -118,7 +118,8 @@
        *(.comment.*) \
        *(.note.*)
 #else
-#define DISCARD_EFI_SECTIONS
+#define DISCARD_EFI_SECTIONS \
+       *(.sbat)
 #endif
 
 /* Sections to be discarded. */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:36:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:36:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322627.1588933 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSzFk-0004Vz-DC; Fri, 29 May 2026 15:36:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322627.1588933; Fri, 29 May 2026 15:36:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSzFk-0004Vs-A7; Fri, 29 May 2026 15:36:04 +0000
Received: by outflank-mailman (input) for mailman id 1322627;
 Fri, 29 May 2026 15:36:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wSzFi-0004Cl-Hm
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:36:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSzFh-0016pT-TZ
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:36:01 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a19b253-5cb7-0a2a0a5109dd-0a2a4506e07c-28
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:36:01 +0200
Received: from [209.85.221.45] (helo=mail-wr1-f45.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a19b261-7371-0a2a45060019-d155dd2ddd00-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:36:01 +0200
Received: by mail-wr1-f45.google.com with SMTP id
 ffacd0b85a97d-44a74032ff8so10542963f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:36:01 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45ef34b834esm4196196f8f.11.2026.05.29.08.36.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 May 2026 08:36:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1780068961; x=1780673761; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U2VlHJG57rsaQzgMOBqSKZ1RV77ipqV8St5qs6awVP4=;
        b=nyAueNjRsM/7AEHF6OPLVknduAkb+rU/4T43uHJnNP7fNXXjEY8o2pxsQrR1eH9K7J
         /cUV6yjI3AGtELnyarR0/ZWeLqhuoFi8HIaowLNzSuszijGqhHD5M+Jpr423GysejADt
         O4v9LEIMztSMmRmU0k9DyEV75m8D4uZ43C5scyZnavp4DC5pIgyBg/zAA8PxE+3t7hWq
         nd9rtD7ACruIVMYYTtrOqJni96JFgon/Btan0CEQ5/obopyPEKY+a2ziLkJkPwof6aHH
         JJqLapx9LynHrD9W8lJnm9pQX2rdNMBuauZ3eJiSGLb0cUrYYbVknutmbRBzeiYygWRt
         bugg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780068961; x=1780673761;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=U2VlHJG57rsaQzgMOBqSKZ1RV77ipqV8St5qs6awVP4=;
        b=jqy+ZKL27wliEEOhwSmZoJl5BDQ8ff6WQyU2Ilrd01nVjKEs7K88Z/zzKzgWlX1tHu
         JJe2+HTcGxjdrxaR2azQGxSaK+l4r18ahZxrT31DivCU8YxggJkNfKazJXB5SzJ7mRMM
         3Q1OmQmVOc+pioTiQFJrk+nUDcEZuH/6T3JB5BSScuJP3hF0C5la3szBWScclp0H5y0e
         aF1zcRF4kXLk//9+jteU9xDtIbj3XyD2uENffbIAuA8CBmUnX+8j3P8QQhNX65c4geui
         Ev1+ZwJUrTz52w3piQ4F7bRrmwPsZhyrWQJEVOfmq95z/OvVx8egCZGVhAHbNIdp2cim
         h6Iw==
X-Gm-Message-State: AOJu0YxA/MLqRI3bgKlTKl70BJm+NXqTwItFrmkk0NZfXRVbo1ZmOIW+
	WAx1uuup8x66VTkpC0y5aY8KeYWFrxKRCdJe1jqF74h1Tb9qPQi1QiRp7biWcBw7
X-Gm-Gg: Acq92OGN40YKbXcMQqyaYkZ2xBgCerzK62bQTE0JY8MH7amECtwveUDPJnIVf48hcuK
	ivnPQDKA+EapLu/2WrOcc/10ZrSTn4fbv0VQjFACRvsy2zPbpoLhozSdn5zvAQhLK7m2XIY//u8
	jG1UIuPbPChEEeHpGrJ7RrrB+k7mBx4in3ZSOJ8m0KHnvngRe9yFUsz6pkQVgKBsbxs3qbxAEfr
	m1nFfA6D3orZmC9VZnBSYyk7c6Bwm2oIN9qIU8ZzVIe5uLf7VyuZuFHf5eMeSAKNI4MviiAZneA
	DFEBCR3iup1NjqfhgZiITICo5TdPxp6RpB8MRRBK80g0A6DP7GtiZWAUUBoRTRr0j4skt/BKx6K
	UNBhpaEk7G/t1MkBe7gdqbEftCPaX4ZGuIQ4pIaDhXjAgaxFLSo1zCN+lLBDq1pEHVFyKZyqtUI
	PONcvD82SYxIc/2OOXgzfz2oBgtRWpsBSsZUolattsaHaABXBv8wavBTPuCwGtMVyug+iQz1RVA
	JDrymukpzJ99aEQJIsBthp/0gVzuEFzLpgY
X-Received: by 2002:a5d:6f12:0:b0:45d:41e0:467b with SMTP id ffacd0b85a97d-45ef6ae9644mr615156f8f.3.1780068961218;
        Fri, 29 May 2026 08:36:01 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 3/6] x86/efi: discard .text.header for PE binary
Date: Fri, 29 May 2026 16:35:28 +0100
Message-ID: <20260529153531.1341542-4-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260529153531.1341542-1-frediano.ziglio@cloud.com>
References: <20260529153531.1341542-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1780068961-86B75D75-43334F0C/0/0
X-purgate-type: clean
X-purgate-size: 803

From: Roger Pau Monné <roger.pau@citrix.com>

The multiboot headers are not consumed in the PE binary, hence discard them
in the linker script when doing a PE build.

That removes some relocations that otherwise appear due to the usage of the
start and __efi64_mb2_start symbols in the multiboot2 header.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/xen.lds.S | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 322c116a04..907f826ae0 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -57,6 +57,9 @@ SECTIONS
   __image_base__ = .;
 #else
   . = __image_base__;
+  /DISCARD/ : {
+    *(.text.header)
+  }
 #endif
 
 #if 0
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:36:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:36:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322624.1588906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSzFg-0003rx-Jg; Fri, 29 May 2026 15:36:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322624.1588906; Fri, 29 May 2026 15:36:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSzFg-0003rq-Gz; Fri, 29 May 2026 15:36:00 +0000
Received: by outflank-mailman (input) for mailman id 1322624;
 Fri, 29 May 2026 15:35:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wSzFf-0003rk-UX
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:35:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSzFf-002zYi-7g
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:35:59 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a19b25d-2eae-0a2a0a5409dd-0a2a4507bef8-6
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:35:59 +0200
Received: from [209.85.221.45] (helo=mail-wr1-f45.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a19b25f-229c-0a2a45070019-d155dd2da5fb-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:35:59 +0200
Received: by mail-wr1-f45.google.com with SMTP id
 ffacd0b85a97d-441209fb77eso8698619f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:35:59 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45ef34b834esm4196196f8f.11.2026.05.29.08.35.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 May 2026 08:35:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1780068959; x=1780673759; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=yrSwzGwxjcZmImXqqlT3Ta76skB/MLRy+XKTWiwt9jM=;
        b=Y07/ER3+q+uuqYhrDMuHpihwqlZJg5S+N/oacdgSKHc9Rbp3uppO9Kk35eUhf4bVbI
         6AIOA/2P3QRIxIM1xarYGIKKC2FbPk3uNhMJpNUcQgwgkokAtj7iEcuogZ7jOSl0W6m5
         fz4CTtmUmuYaZCavUFFL7gTcBfZ3BebSFMLtGeFdKTn/uJVTXo5mxS4PF9zSE7d3V537
         +3KBOw+A0OQW8qt5XSNzypX5ITHpQitTjvHraCc+vqQZM/WvPdCipPFuGXHin15fWS2b
         me65cyKVvLCn8kKbHRtOeQcmk/k43kcVWHlrJnTAoixtM96oMBJ/KCM8yQNJ+420Z5fO
         cnKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780068959; x=1780673759;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yrSwzGwxjcZmImXqqlT3Ta76skB/MLRy+XKTWiwt9jM=;
        b=hqggnCKy5Lk7UIWENTWmqxB3p7ko+ystJSYQX0nXFUzZZf/5C4dqo6IcjuVw5LT856
         XFp56OQDfl80xB767WZKnyaHm22wbNvzSDxSvivmCgxbtAZTQq1i0WOsZM6CFL2uW/jU
         FGhuM0bCtcx3M/GrQEtUJfjEBylWwY6SPaRkXMuK69lSALjlMYFzW9LVhYt22JfemCSB
         XCd0qhQ5YqUlPcI1uK9PRvDumrZ5m7L0njskiJXPm4ITYFwnBk5tbse6qP+j6/CIsytD
         NO0HFx069r9rjaBqstpNsg/hVpuxq5V6wM7ZL67vjFJQjGsMAfdn+WG8OQGOAQMdq91a
         84RA==
X-Gm-Message-State: AOJu0Yy5a5Pp0O0GOG0BgdqiktsJctprR1IKDMwbcUf3tjbWllKz7pxi
	woU6FZWmzeAE5PJM7+yravoLALT5e+08deAL+yl8N1teteLugq30ovK65zs8ufIo
X-Gm-Gg: Acq92OEivTPc6gsQXL2SiqSbLX13+F+Bv/hi/G28AQFtdpFUi7TaP2wI/VQ7wmp0hUv
	MOB86hsEJ7xtHToZOvczuwgc/Y+uuy4KXFUW/f80m8Y8UFLBNZGcDz++6KTgPS/9Q3b7aJH0vwb
	NcwvbXhFeCCPUnyqpXpPjWHaiP+EscUQj2Jcdu/FYuxyCSAk2EygR3tKDOI9eedih4PSuN5IcFJ
	N67QOUo5PzXrhroQODAfr2X4pGEEmt1Bp86rmYusISYVzElkLyFITy6FJKh7sidu8G/bwnTRIze
	cr1HoxCya295SQD89ur/jiFOinJ1uYVv+t6bKvsbHkKpjQ8chdk495tCt4JOrw9cYRDxN4Ljy+F
	fUrniZ1e9PlNmAwLsVN0x0ht+Ow++bfIPo+EAYmSXSYb9h/mWCsoCWp6FLRBJFEzBW2ULThQhGF
	J9po8vXyLG9B64C1a9F5MaNA8T5nceeZ8JfUoCL3CjFgkY+RdpW3wQyJN5Tbe2Ex+ZK6zUkrAUa
	JnLlVTEnIK9H5ovP7Epm1gIUobhMngj2lKx
X-Received: by 2002:a05:6000:1869:b0:45e:8ad3:86a9 with SMTP id ffacd0b85a97d-45ef13397a5mr5690037f8f.8.1780068958346;
        Fri, 29 May 2026 08:35:58 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 0/6] Various patches to improve Secure Boot support
Date: Fri, 29 May 2026 16:35:25 +0100
Message-ID: <20260529153531.1341542-1-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1780068959-08F66C48-68961E01/0/0
X-purgate-type: clean
X-purgate-size: 983

These patches improve support for Secure boot.
UEFI CA memory mitigation requires memory pages to be not executable and
writable at the same time. So changing permissions and splitting some section
is required.
SBAT is the preferred way to revocate executables.
Remove multiboot pieces from EFI executable.

Frediano Ziglio (2):
  Align all sections to 4KB
  x86: Split .init section to satisfy UEFI CA memory mitigation

Gerald Elder-Vass (1):
  Add SBAT section to the PE binary

Roger Pau Monné (3):
  x86/efi: discard .text.header for PE binary
  x86/efi: discard multiboot related entry code for PE binary
  x86/efi: avoid a relocation in efi_arch_post_exit_boot()

 xen/arch/x86/Makefile       |  4 ++++
 xen/arch/x86/boot/head.S    |  3 ++-
 xen/arch/x86/efi/efi-boot.h |  7 +++++--
 xen/arch/x86/xen.lds.S      | 25 +++++++++++++++----------
 xen/include/xen/xen.lds.h   |  3 ++-
 5 files changed, 28 insertions(+), 14 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:36:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:36:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322626.1588923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSzFj-0004IO-5j; Fri, 29 May 2026 15:36:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322626.1588923; Fri, 29 May 2026 15:36:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSzFj-0004IF-2G; Fri, 29 May 2026 15:36:03 +0000
Received: by outflank-mailman (input) for mailman id 1322626;
 Fri, 29 May 2026 15:36:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wSzFh-00044h-TC
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:36:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSzFh-005xlZ-9l
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:36:01 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a19b25d-e002-0a2a0a5209dd-0a2a450ceb80-14
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:36:01 +0200
Received: from [209.85.221.53] (helo=mail-wr1-f53.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a19b260-62f1-0a2a450c0019-d155dd35e4fe-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:36:01 +0200
Received: by mail-wr1-f53.google.com with SMTP id
 ffacd0b85a97d-45ef372c58aso423330f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:36:01 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45ef34b834esm4196196f8f.11.2026.05.29.08.35.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 May 2026 08:35:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1780068960; x=1780673760; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Zg3HXLBO+yd+ORauW4PbC9LGDAXskiNfJy3pkzAKf9E=;
        b=q63tDZWp8SdzjKZ9vLupXnqhdYQmPNWFY4xittC1N7PP5AebdRyJAIObMdVm4AOEtA
         Izm6PU5xyQnZoO7So+CNAaONW8Um5SK4yikZ3A9PO97/CyMN2vyFzpXqXT8FsMkh16Au
         QxJtVv1u3xU5HMNse5ClqjmLFcmIIM6IEn+s3EAvHr0S16dvDUbEa8Rr/iC9YVCSDE/x
         y708hprYw8JeeLNAax48zN+u3UH8FMVMavK996qCzYaShK4wJtQ1ixN4GQfHXIEocKK2
         hWUCEaiT/TDlSPyAWpQIL/heL/Sg617cLdb7u96UMTOaemETZoVTOlJKw8FbNr7TWoOa
         mGXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780068960; x=1780673760;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Zg3HXLBO+yd+ORauW4PbC9LGDAXskiNfJy3pkzAKf9E=;
        b=YW9Q+xDwHlBW/EM52Ko8kV/i82ZAbdY1Q5xBosWbU+PYpXGCBWNMYi47R4/tem7bXr
         VBQ6CeubYSG0m7Lygv7njIB6C4eNHsvU3Zb2xLvF4SsvnOnWJF3ojvTl6fxwj3IzzfdT
         JrMmglNm4r2VeDi/FXg5SrqusB6z6uVVWZ7xFaqLR1z8cCaigqKq4a4RUplwBoy5k9nL
         8wInZgEV14D5mBfAh4ywx9Wvb4IQX7zv4MpgkcQmpCbu/VWZMU0CyiQ9Xs1sx4Ixqnpp
         BWyr/k2tnDng00DCb+NCPou1HqT1hc4m8uQ3XaK89as0z8NqZuIhEqtowpKLo1ecZ3PC
         2u6g==
X-Gm-Message-State: AOJu0Yzw73eI5pF9/PADeSZvuzxO3wBUEhkSMla5IlYI+gxtqGXwgx/2
	Az2o0PxhThpZpIi3UBCL8BVkDtbnibOpVGjwD1v0XGlieHatMLSh7/kyOTuKUImu
X-Gm-Gg: Acq92OFsq2KoQgjv31LpqjjiynIKokZpvjI7lHMFzstnVX3liATD/8tmqv9zq9SaRpI
	USsvkK/kBUABpAQAf9+2UNJNnMt7EfGglqwoN79YgTxFXnHwXig/YBj+cYkjpiLHO5rdvDZyWWW
	Sw5mySWxay60q0ea3h2GwIqN/AT7GRIxhDwbqi2W8ta36K8H2ckywWGahc2BQPnWoreLRQd12LR
	pwgE9p9/YsvAY9OM4vBvfzQvhO5f7JA6nwKv43TfTIrXdtaZ/NGqwnMGSs0d9ArdIPFl6ZfNPAk
	apPVFv7zy43TZ5bQM9qyPWxxo5oGkdafEDbcHHjN+YGJaRK8c2vMQZBaOYD6FmzAripyOJAY4+F
	fDH0Jx3SQa4GBx+ZkOshmHKaw19G3rPclAlslXC03jaUt0FNSlDueAk7aTFKmpBu09aqVy5WR+j
	DqqZaAbwR0c6LDbLv3IN/qeUOJk4C3bfL7WbK0R7TFesg82U+trqeuIylZQPonntLrhr2s+dTPp
	veIRfgPJ5u1zHjl69iw1uurKC6Y0bAx7ds8
X-Received: by 2002:adf:e510:0:b0:45e:f271:5019 with SMTP id ffacd0b85a97d-45ef6b1f0d2mr578264f8f.14.1780068960367;
        Fri, 29 May 2026 08:36:00 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 2/6] Align all sections to 4KB
Date: Fri, 29 May 2026 16:35:27 +0100
Message-ID: <20260529153531.1341542-3-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260529153531.1341542-1-frediano.ziglio@cloud.com>
References: <20260529153531.1341542-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1780068961-F5386CF5-ED813B1B/0/0
X-purgate-type: clean
X-purgate-size: 1086

Required by UEFI CA memory mitigation.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/xen.lds.S | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index c2b9b5a893..322c116a04 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -162,8 +162,8 @@ SECTIONS
        __note_gnu_build_id_end = .;
   } PHDR(note) PHDR(text)
 #elif defined(BUILD_ID_EFI)
-  /* Workaround bug in binutils < 2.36 */
-  . = ALIGN(32);
+  /* align to satisfy UEFI CA memory mitigation */
+  . = ALIGN(PAGE_SIZE);
   DECL_SECTION(.buildid) {
        __note_gnu_build_id_start = .;
        *(.buildid)
@@ -330,6 +330,7 @@ SECTIONS
   __2M_rwdata_end = ALIGN(SECTION_ALIGN);
 
 #ifdef EFI
+  . = ALIGN(PAGE_SIZE);
   .reloc ALIGN(4) : {
     __base_relocs_start = .;
     *(.reloc)
@@ -355,6 +356,7 @@ SECTIONS
   VIRT_START &= 0;
   ALT_START &= 0;
 
+  . = ALIGN(PAGE_SIZE);
   .sbat (NOLOAD) : { *(.sbat) }
 #elif defined(XEN_BUILD_EFI)
   /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:36:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:36:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322628.1588943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSzFm-0004nP-M4; Fri, 29 May 2026 15:36:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322628.1588943; Fri, 29 May 2026 15:36:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSzFm-0004nE-GH; Fri, 29 May 2026 15:36:06 +0000
Received: by outflank-mailman (input) for mailman id 1322628;
 Fri, 29 May 2026 15:36:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wSzFk-0004a8-QC
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:36:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSzFk-0016uA-78
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:36:04 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a19b253-5cb7-0a2a0a5109dd-0a2a4506e07c-32
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:36:04 +0200
Received: from [209.85.221.52] (helo=mail-wr1-f52.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a19b264-7371-0a2a45060019-d155dd34e8bf-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:36:04 +0200
Received: by mail-wr1-f52.google.com with SMTP id
 ffacd0b85a97d-45ef42dfb26so245206f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:36:04 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45ef34b834esm4196196f8f.11.2026.05.29.08.36.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 May 2026 08:36:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1780068964; x=1780673764; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9wf3y14NPqhrBND7m76mJz5c5h7xyT91mnaBZEnOl+A=;
        b=psxg2t1ookUP9cn0s5UrzMuqkBA9+/n6Ta7FR8wZTOgfcV84M13HAyO0+kkNi8zjD3
         pFDw4f7EpMfsOVOaOH+nInTgzpsfqdcVMLJwvtIW7U6ElnNX9dQbGVlqswXFwVTPEVBp
         vXyw9uQzhJmK8s9onG6PXaA6mHtRdpX22Mvc+2xtH+EHlqlxPlGHP1VjLMHsFO34a+bm
         PLwW0UCiQoRI/2AXZxleezTmaJA4Zd1mjC64rnVkpoHXHKH+Ex2Zun4Trge1atHGL3cl
         YPGjCLiZ03+xfcF94nGrwSXBklTkNQEMsL9MjtECa4+XYra0zPzobiJ42GRF2NFzkZJH
         o+vg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780068964; x=1780673764;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=9wf3y14NPqhrBND7m76mJz5c5h7xyT91mnaBZEnOl+A=;
        b=WRj/XPpelgUsGZ7tjsUvEDAVVt7liw0SknpPXZUIlT/DHVzqdven5VEk1gHI/9sc2S
         43zcIOyZLjlHaNeQrkauct+Ht8b4A4it36JrmhY18YlLEIf/CnePr/8EuVFX0kDfgyYW
         zaLWe4EAf6EaJO3/e7dh+Ffhtj8YGDq3zxsrsBYVQFNvlxacFkKMw9djTSJ4NiubQ1xg
         bAcTGi9YooUZuxHZNwcv7e4TjBklnGv7r+AkdKLo1ccFB8zYLNdPA4+NGm2SWp1ldkMU
         NvXpeTOpKsMPPkQpZjiN0aYLCw3Tyvl/V9zC2KGzLsUz+GDL//dSBnvGMdlrYaCYMqZc
         GvrQ==
X-Gm-Message-State: AOJu0Yzu982LTgqWXkkyJ7oj9qRvP2AwrLLXupExO+Kvf8zA2fIZZmcR
	fbNFJGF4+QyVlLSkIenJ9OWh7e2QbgL9Ckmgb/6/CSE8/8cUKStKM1kBtWdQXpNa
X-Gm-Gg: Acq92OFKBOPAoExMvQwnIQwZ3QV8WifMi9wAuq/3IWrem7ftERbT/4qUkN1hzQDEbJb
	LY4bjEk1ecYt4ZaJlKIFqVtUWlRdaypC3zvrXGLZVTV7Q+OIvUtyz97r143COnUaUbXtN/BM4si
	gWTXIXz8o+AqXTQdZQVB8ZnahCJYZKThy6nGHrnzPUnGm2krDbp2G2U1VVwkcSfSdbrk7OZNP8U
	cp9JIFGduYMnbabxBGvjyKHTdMwk6YWn/ly25S6vpl8VzipexiF/1/SX5koNRzbRookETaSehIC
	q1CPUGbcUkC1IPHc+gZC6DyCIsk5hA6SJzGEmSIP4B/oIWwFyGFKbR8+taKGDKLEyrMRIUpPoq+
	I4ebUgRNafetqVtTH3i5FDi3EB2YLJuNW0n/OLBiXWioyXyg+bPGvhsu22n+Vt2aOFiTvpVl4jG
	m0nHWvsHKlKnzKZuzcgcA4bA1XZcTCkpIOyEq8uAjncmpTeYJlH3X0w+PHvv2zCiZf7o9MvDxBx
	JgfkkgHyFSb8mlunAgqlm40fF9y8EsSM3yo
X-Received: by 2002:a05:6000:21c6:b0:45e:7418:a3f2 with SMTP id ffacd0b85a97d-45ef6b718c1mr357738f8f.26.1780068963494;
        Fri, 29 May 2026 08:36:03 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH 5/6] x86/efi: avoid a relocation in efi_arch_post_exit_boot()
Date: Fri, 29 May 2026 16:35:30 +0100
Message-ID: <20260529153531.1341542-6-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260529153531.1341542-1-frediano.ziglio@cloud.com>
References: <20260529153531.1341542-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1780068964-87170D75-8A821924/0/0
X-purgate-type: clean
X-purgate-size: 1646

From: Roger Pau Monné <roger.pau@citrix.com>

Instead of using the absolute __start_xen address, calculate it as an
offset from the current instruction pointer.  The relocation would be
problematic if the loader has acknowledged the Xen image section
attributes, and mapped .init.text with just read and execute permissions.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/efi/efi-boot.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index d738b839ee..b983f054b5 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -270,7 +270,9 @@ static void __init noreturn efi_arch_post_exit_boot(void)
 
                    /* Jump to higher mappings. */
                    "mov    stack_start(%%rip), %%rsp\n\t"
-                   "movabs $__start_xen, %[rip]\n\t"
+                   "lea    __start_xen(%%rip), %[rip]\n\t"
+                   "add    %[offset], %[rip]\n\t"
+
                    "push   %[cs]\n\t"
                    "push   %[rip]\n\t"
                    "lretq"
@@ -278,7 +280,8 @@ static void __init noreturn efi_arch_post_exit_boot(void)
                      [cr4] "+&r" (cr4)
                    : [cr3] "r" (idle_pg_table),
                      [cs] "i" (__HYPERVISOR_CS),
-                     [ds] "r" (__HYPERVISOR_DS)
+                     [ds] "r" (__HYPERVISOR_DS),
+                     [offset] "r" (__XEN_VIRT_START - xen_phys_start)
                    : "memory" );
     unreachable();
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:36:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:36:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322629.1588947 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSzFn-0004r6-1A; Fri, 29 May 2026 15:36:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322629.1588947; Fri, 29 May 2026 15:36:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSzFm-0004pj-PU; Fri, 29 May 2026 15:36:06 +0000
Received: by outflank-mailman (input) for mailman id 1322629;
 Fri, 29 May 2026 15:36:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wSzFl-0004iq-Hv
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:36:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSzFk-0016uA-Uu
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:36:04 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a19b253-5cb7-0a2a0a5109dd-0a2a4506e07c-36
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:36:04 +0200
Received: from [209.85.221.47] (helo=mail-wr1-f47.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a19b264-7371-0a2a45060019-d155dd2fbdc3-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:36:04 +0200
Received: by mail-wr1-f47.google.com with SMTP id
 ffacd0b85a97d-45e6a4d0be0so6412131f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:36:04 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45ef34b834esm4196196f8f.11.2026.05.29.08.36.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 May 2026 08:36:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1780068964; x=1780673764; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dbvjQGIXrgh2VZV7pqCGHyTdh0FdQdlsGVZavBAbEBI=;
        b=R4zv9jQGJ0ynoZ3jc57s7oa+hDDND4CXOJHQ8pgjmuZceSi5EYsgIZ6/AmeECmJRTT
         EhmmV9ZpOoy1aWhG5wRvBkzaLOIE343l9zisn1VqTV/0aZI7MfHKfD/pG76e1ja4qtEJ
         c+PfvM4xV8TUrWLBUPQ8po0RPd58OgRevN5/jYRA7iog5ler48A5TMEzkGMOGvy2/47y
         c8dknMjK8JHSYqaBIE6gxU2T/ybTUJqP2z7f1K+RKgxUBsygdSuDGVl1FOPFN15E77IG
         Z6O34oiGXzVTABxhFveZj200nUKCw8FLYoeDcHm+kw3Lhw1LEg7TTYQsdtZUFJFSkb9l
         BRPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780068964; x=1780673764;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=dbvjQGIXrgh2VZV7pqCGHyTdh0FdQdlsGVZavBAbEBI=;
        b=NTPgp5ws11ytPBiqkg5qkCB4NdSxFOEVpC9NW72ZDuYvY+W84ARDlT9+ZcpvhJPPJO
         7u4hC1Q5/8l+QsUn4tf1iyGh0sWD9mVnkbpxoZwoq3JhUf7xQk/fXAZdkzC5u2yyRH/W
         J7JYVMz7czVkNpuTcQ5i2Aye11J/0bkKHSPyHFDmxee4/qd7Y3miDKC0AcbNByanCSdK
         fwxZRij+MSOhfj8b2mg4n4hSMTs01OPFKBsb0GvU/wWlsCzi0IPmIFWrKK2yNQD3gCoU
         X7MUcAfWnV6VzbsXSjK8TZ/fgis0ph6OZ6KzCeQ5k6d3KCxIzZK+H92E6Gn1xpVmEkKr
         mV9A==
X-Gm-Message-State: AOJu0YyeoyspDlnnOuxjhynjdnMEHRZ0y28xOP7+ArlbIOFwGR1P7rcD
	L7JFen8gMRgMpsQOt+wzc08pSCXwj7NFWAPviKzzVgtJED3UlbnqgdlZnSh3qPOQ
X-Gm-Gg: Acq92OGdHPhpRfEKwCxtcQaCEQ1MTsSjUSGy7MfNGOTQcpbXNCBE4ebQ3zSPwoLNvg3
	2BuRQ7p3IlDnbYn+RoCRt56XL9owDPyyALxW5AT0DLmfswktypzExD4T5NyNZgwooG4el8tC7PM
	yOZRjma218zP7fKpMpfHnUpus0oALRWWyhVbKRzRCZjME92mq30niTBenF+QwfVF57+qvlAw6Gj
	nXhsmUSdDM9+NpFV7Dmpn3p8Gte7hYlgSnyQ6lj94V4GHl7PDzjq5Y1Q5CNo1Xny5lwjXApc8UM
	bmadc6rCwt80Ka9av4hcq2pKzEByVyemIzgOhqgA2/2eM/tnPsLyhJyABlfKeZ8Wp+XCubS3Yxt
	IBwyDFzX4/nW25SbKVgcBJWsaGQVJMMa+pXLKYCnHBtrzQAeWOHZ6HYZCCrCqCqfJBl3m1KcSEG
	NDAwahCjBKHh68OanGNU01ndHSTQrWzoeTeLe7OTCLurWzLP+k8RNEmFlfa8kRPg2zrq+b89Zmz
	xymTp+8eDyYTbT/KjbzwK6wX1JRRvZ09epA
X-Received: by 2002:a5d:6e89:0:b0:45e:73eb:1ff7 with SMTP id ffacd0b85a97d-45ef6af6c21mr490829f8f.3.1780068964295;
        Fri, 29 May 2026 08:36:04 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 6/6] x86: Split .init section to satisfy UEFI CA memory mitigation
Date: Fri, 29 May 2026 16:35:31 +0100
Message-ID: <20260529153531.1341542-7-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260529153531.1341542-1-frediano.ziglio@cloud.com>
References: <20260529153531.1341542-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1780068964-84767D75-1041D615/0/0
X-purgate-type: clean
X-purgate-size: 1327

Currently .init section is both writeable and executable, split data and code
to have 2 sections satisfying W^X rule.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/xen.lds.S | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index a5a85e9b8a..7f892cb2fa 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -193,11 +193,7 @@ SECTIONS
   __2M_init_start = .;         /* Start of 2M superpages, mapped RWX (boot only). */
   . = ALIGN(PAGE_SIZE);             /* Init code and data */
   __init_begin = .;
-#ifdef EFI /* EFI wants to merge all of .init.*  ELF doesn't. */
-  DECL_SECTION(.init) {
-#else
   DECL_SECTION(.init.text) {
-#endif
        _sinittext = .;
        *(.init.text)
        *(.text.startup)
@@ -210,12 +206,12 @@ SECTIONS
         */
        *(.altinstr_replacement)
 
-#ifdef EFI /* EFI wants to merge all of .init.*  ELF doesn't. */
-       . = ALIGN(SMP_CACHE_BYTES);
-#else
   } PHDR(text)
-  DECL_SECTION(.init.data) {
+#ifdef EFI
+  /* align to satisfy UEFI CA memory mitigation */
+  . = ALIGN(SECTION_ALIGN);
 #endif
+  DECL_SECTION(.init.data) {
        *(.init.bss.stack_aligned)
        *(.init.data.page_aligned)
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri May 29 15:36:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 15:36:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322630.1588959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSzFp-0005Ie-6K; Fri, 29 May 2026 15:36:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322630.1588959; Fri, 29 May 2026 15:36:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wSzFp-0005IP-20; Fri, 29 May 2026 15:36:09 +0000
Received: by outflank-mailman (input) for mailman id 1322630;
 Fri, 29 May 2026 15:36:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1wSzFn-000528-J1
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 15:36:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wSzFm-002zYi-W5
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:36:07 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a19b25d-2eae-0a2a0a5409dd-0a2a4507bef8-18
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:36:06 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <freddy77@gmail.com>)
 id 6a19b262-229c-0a2a45070019-d155dd31ac4e-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 17:36:03 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-45ef6565cfdso145168f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 08:36:03 -0700 (PDT)
Received: from localhost.localdomain (5.116.208.46.dyn.plus.net.
 [46.208.116.5]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45ef34b834esm4196196f8f.11.2026.05.29.08.36.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 May 2026 08:36:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1780068962; x=1780673762; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Hg/OjpvMkex/VsN4w/g7ONkFyHjBg9XMQ+S/ZB+OhsE=;
        b=W3ml5erUf2gRuY9MbN1QYL2WFx5eEHS57lG8d7jTE4PYy8QGsUzPKe0k91Vjw1Bcm7
         V74JRbZgxhjK+9OP7c5SVRl80RXH3PusIvNvfqKg8RfGTqz0popi4gbDhCFJLSaUIWMn
         hsUTyL4kW/deRWqMcmbZ5E9b9DNRbaSrmxp5L2pUef9bUsofmUdScggC0ro5QRsUWbnM
         GZVVx1dWVBJjhBn6PEfbyPJrA7hiqii71TJfrq75rEZ1iCAE5d/SapF6KZtrI43HGCZk
         PcehbWILnCH8YxJVXtzhzQYUKUUJcUCtpU66s7c9gmIsldyzyFrFH7Q90AXTpKIpKB74
         fiuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780068962; x=1780673762;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Hg/OjpvMkex/VsN4w/g7ONkFyHjBg9XMQ+S/ZB+OhsE=;
        b=JMA016Fy3nz76OWFNs0v2AMeURNQHwyFHBWmGPnhEPKHiGDBNytWSMgQedgcJyO1Na
         clmQm9lKFt1fGjxrPkOTWizX2Bd5I3odvQM8VRK4IDw2ELGIUb81yHukuLBjIGHxXEgZ
         zcKoT0GldTalN0mNsRL7QmaEdYey67TxBu/l+4GwP9I+FGLHjTd+Y1TIBJZmUm74RmzA
         RpF9lSxWfJ/wbaVjBUbTJVKXPoapsD+UBmKRHKArWRnpM2Esa8G6rttuokAnqRf3z+T1
         uDAKTMKJ3yoEzODBP75IaaZD3oMygH5z4OX5aPF0mQyI9T1eIJIjDrWmSGC/xcHkt/1S
         T0Rg==
X-Gm-Message-State: AOJu0YxytOujly3QJPqxF9vfZjqxWv55HYhd+wmowT2V3xV5Rm6La0Sk
	hFiRe4grXnY3QK7PMCnx1FkZWW0tMItcDpbFKqkqd8/kJcHmr+HcPOQm/c0dtrz+
X-Gm-Gg: Acq92OGxNx5Oz2E9+cmFOttui8Jn3+4KArsN7mbCOSY5lrRMJPi8r9HVf5616+whaL7
	dwpvu+cC6H8bxT+UPj30GjV6adon5K8yGWlI8WXzyZusk6tNVEHDpN+rwOxUztv/Y8jZxCi4sGF
	p+vUm4i9QwplmpcdDVHpO3I0FtRmkOrqcutuIA2uxkyEHxI12MG33q7X7KFlLnyb3AUbpcspZ5+
	9dmP1ZqiGf0lUx4DhM+/6Bv+3g6ET/05ZvEuUKW2HILdFwvdd/ASxL/HccRBFaa/2Ya23ghb+vl
	zl8mPybS6dpiiFY4JzILDSiJIpOJxkKuLkOQpSinRY5r7RF2ZRWNtk9ItzBRzmXoF00E6eS3EBK
	sdwvyPC329Px934kpc0Ws9IZTDvbXJJQ6r4awSNkNjc2M2FN1ZxD7sSTplAyBOx8usQDioixa29
	KSBimtwNCEXbdG71DWaw+jpv5zKmxstB9iiRSngSTEkYBtvhmXLEXY+wj3kQm43lEHl3q2EiDWq
	AjgfIaD4TiNLBRTA/9DCtTLo0evA0mLaxDu
X-Received: by 2002:a5d:634a:0:b0:43c:fdd:ea96 with SMTP id ffacd0b85a97d-45ef6b5e032mr387230f8f.26.1780068962441;
        Fri, 29 May 2026 08:36:02 -0700 (PDT)
From: Frediano Ziglio <freddy77@gmail.com>
X-Google-Original-From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 4/6] x86/efi: discard multiboot related entry code for PE binary
Date: Fri, 29 May 2026 16:35:29 +0100
Message-ID: <20260529153531.1341542-5-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260529153531.1341542-1-frediano.ziglio@cloud.com>
References: <20260529153531.1341542-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1780068963-0956BC48-80DAF02E/0/0
X-purgate-type: clean
X-purgate-size: 1711

From: Roger Pau Monné <roger.pau@citrix.com>

The multiboot and PVH entry points are not used in the PE binary, hence
discard them in the linker script when doing a PE build.

That removes some relocations that otherwise appear due to the entry point
code in head.S not being position independent.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/boot/head.S | 3 ++-
 xen/arch/x86/xen.lds.S   | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index 77bb7a9e21..90faf411b9 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -152,7 +152,7 @@ vga_text_buffer:
 efi_platform:
         .byte   0
 
-        .section .init.text, "ax", @progbits
+        .section .init.multiboot, "ax", @progbits
 
 early_error: /* Here to improve the disassembly. */
 
@@ -710,6 +710,7 @@ trampoline_setup:
         /* Jump into the relocated trampoline. */
         lret
 
+        .section .init.text, "ax", @progbits
 ENTRY(trampoline_start)
 #include "trampoline.S"
 ENTRY(trampoline_end)
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 907f826ae0..a5a85e9b8a 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -59,6 +59,7 @@ SECTIONS
   . = __image_base__;
   /DISCARD/ : {
     *(.text.header)
+    *(.init.multiboot)
   }
 #endif
 
@@ -200,6 +201,7 @@ SECTIONS
        _sinittext = .;
        *(.init.text)
        *(.text.startup)
+       *(.init.multiboot)
        _einittext = .;
        /*
         * Here are the replacement instructions. The linker sticks them
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri May 29 17:10:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 17:10:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322700.1588968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wT0j2-000190-Q8; Fri, 29 May 2026 17:10:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322700.1588968; Fri, 29 May 2026 17:10:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wT0j2-00018s-MO; Fri, 29 May 2026 17:10:24 +0000
Received: by outflank-mailman (input) for mailman id 1322700;
 Fri, 29 May 2026 17:10:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ayan.kumar.halder@amd.com>) id 1wT0j1-00017U-Bu
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 17:10:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wT0j0-006Ari-EW
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 19:10:22 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ayan.kumar.halder@amd.com>)
 id 6a19c84a-bab6-0a2a0a5309dd-0a2a450cbd72-42
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 19:10:21 +0200
Received: from [52.101.57.39]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ayan.kumar.halder@amd.com>)
 id 6a19c87c-62f1-0a2a450c0019-34653927b0d9-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 19:10:21 +0200
Received: from SA1P222CA0077.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:2c1::24)
 by LV3PR12MB9268.namprd12.prod.outlook.com (2603:10b6:408:216::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.15; Fri, 29 May
 2026 17:10:10 +0000
Received: from SN1PEPF000397B1.namprd05.prod.outlook.com
 (2603:10b6:806:2c1:cafe::a6) by SA1P222CA0077.outlook.office365.com
 (2603:10b6:806:2c1::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.14 via Frontend Transport; Fri, 29
 May 2026 17:10:09 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF000397B1.mail.protection.outlook.com (10.167.248.55) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.21.92.5 via Frontend Transport; Fri, 29 May 2026 17:10:09 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Fri, 29 May
 2026 12:10:08 -0500
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via
 Frontend Transport; Fri, 29 May 2026 12:10:07 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Pthktce2JqM8SP3MUxOCVFV6lCuTGGa8NIgc1K5W8dCEdfpqS+zBVLZos9t5Jo5xz4NGQggL4LdDVS3cvaz1s0iKSY+14ynRt9hpoA059hjyQNLG3jZcFeO+VUk97OaFUYMVabn1YG+sczJLQESC0cDEP38e26NL0KaXHs8jEaVlVzluWsSmO+/QSmP9LNruF4DxuCleRC+7IRv/wmZ2W/t044qi5sjzE3ch27lI5ARuENujNWPS24/HNEbc6g/oKlwxR3o6oUdMjjgc4mpCY1Hq49jD5Mlsz3/ic0xA7UQiPt6E7UT5LCpN4jPiLWM8gfkOFxai4rhp+U4tGyNhHg==
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=gIzDVquxVpLE6+YstaZL+qkPGeRJjS7Y/EFypuMCXcs=;
 b=W/4IG1RCHDTk+k//b214gAGoxAkZLeyslvpZm5YaFZOFrbOTKnNZUnZyfpF3veWMuLvGbme8o0HZNYe/si0kt8AzrkAivNxJopnQFu4eQtG6wvekUzODMHf6F2KZaZ3kx9jaZcaTrxnc5cg42PcZXNxt4/NZa6kkqJIz/31xHqkSynaaxp2f3TmiLgZNfYysLmeSXJ4iNewNjwE60+Dg4ujwSnJAsr4NXR9RwyLDyw9iCROXBEOzkmdKcd7A8zLasdZQq7DUM4cEXN1JJNewysHrsGjZ0Qqsxzauban0ECtBxozjBOE+1I9hTrk5rY3lDZ0Pm3PwBGyYANrTMFS4yQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org 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)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gIzDVquxVpLE6+YstaZL+qkPGeRJjS7Y/EFypuMCXcs=;
 b=u/l+tMOWs++W7mdg8LF2cB9RN2dvrmuhh2eKdLxQBezNKHmup4q4wAnO4T4Fv5hi5KGzxPN5AE3ZONR3sc1vtnU+WsDzyeSECK3DrbG8C2m1dtlGbk3D4TL2x0So5RoCLu0i5SD0qzN5mhJJgdwixz6W4MiE6VyEQIo/8TQzx3I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 for 4.23] Add GICv3 SGI boot/self tests in Xen
Date: Fri, 29 May 2026 18:09:56 +0100
Message-ID: <20260529170956.49797-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF000397B1:EE_|LV3PR12MB9268:EE_
X-MS-Office365-Filtering-Correlation-Id: bfe8198b-1c9a-4872-36e5-08debda52375
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|7416014|82310400026|1800799024|10063799003|13003099007|6133799003|11063799006|3023799007|5023799004|56012099006|18002099003;
X-Microsoft-Antispam-Message-Info:
	7TSC5HCb9dfrEeXR3K5WVyX0zNP134E4gu7ART0G3D0aB+GGSxCPNaDklG5HfPFJBV7ZDitMmCyeS9sSQ++BnGILOPlWsSkJNipybPij2RESt3nWqC86WDKE90OZghOj/RZqn7bY5g7cdXs4F1i1yCEptxG61ESObrCGrVlnNPuI4rg9xLYKMcD86TzN35lQ7ILSdy36fDeJex9J9YJKKeuNRKxP4XlBQH8SYrFvJvB5kEkp8lZ3OiKcVMBhVUXcYEdJnJ5FLF/pSVbMG0oasz2MGnKcp6ZekzX8o9/feeo70FdcQSZ7U7HvVROanQYl+L/8GKldyszvd76DN5znb2UKXvhgg1nWQM5+8s5cpUDqSBmkIP1GoV/0/ytctOMy6MO2SfVxs1ILQUjsQ7Ew9iDmHYsOHjqXevDxHPgI75mVyH60Mnbb1xIgwWavQmnuQ6IUhIhmDAoSKl3/FU3BvxPITODQDTmwVU91MrQ5HnaHL4+u6XncyszPecO/WBU34/lN42+5le1D7eXEXHetSzWcGRGu80EPkK1pMUIso2SwLIh2Py8mlmEt2vPt6hn6b3IxSdO8vsL4klWuUBMiBZLbuLTkczOi9QTLLu4T96KyRRtybBKdRjFH1nR2L8IvXxhSm+/Ja1c6K+9dPN9spT5w7ePzQWc2dyOX1LnKeO9CeYEYAZegkqf8SP5fTZVN
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(7416014)(82310400026)(1800799024)(10063799003)(13003099007)(6133799003)(11063799006)(3023799007)(5023799004)(56012099006)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	JWZOuZUWBf+81NdwIkyAvYL1nUi+qfafruhyLIfp9VGv6vOQTe5xnUhnGhuUAMiqfyXR3EN0ioYaqCzYptmCmwSjZ5ST8hR/Jy4mWoDNA9qIHY3StswNogMeAkd0CT9v7k1UybDxr5qu0WaOSaAP2zmSRVX5bmtd7CGplOVAjPeltR6LEZZNPcGeQc1whFdaqr4lQNdeX1FUCGhDQq5pm01N1Ypbv60hnToccxU/fJhhkYuDUNchTzSedmONl5ZfJelJ2Sf1JZyhzRxi1eXocua+ny1lZYQts8ybqo6z6M4+rLFjGwL3U8qQ2ky2OFvVHa87WaheOxL6Ihbp0YHL6QJyDZ6NtuDjshAdW+ZU/cBGY+EriqyqMvgjFZGNHBtC2gJyWQ+dC9vIjti52dspYnTl17f/DJAbObFVe9Ee2Ev0ccWDyS0y3BSg6lRRyjp9
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 May 2026 17:10:09.4626
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bfe8198b-1c9a-4872-36e5-08debda52375
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF000397B1.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9268
X-purgate-ID: tlsNG-d25034/1780074621-E357FCF5-259B9DE3/0/0
X-purgate-type: clean
X-purgate-size: 17331

Boot self-tests (also referred to as boot-time tests or power-on
self-tests) are intended to validate internal features of Xen during
bring-up. They are meant to be run in a debug / validation environment;
Xen is not expected to remain functional for production use after the
self-tests have executed. The purpose of these tests is to catch
hardware configuration issues early and to confirm that the platform
on which Xen has been brought up is sane. The expected flow is:
build Xen with the self-tests enabled, boot it, inspect the results,
and then reboot into the usual production configuration.

Introduce the tests to confirm that:
1. A cpu can send SGI 0 to itself
2. A cpu can send SGI 0 to another specific CPU
3. A cpu can send SGI 0 to all the other CPUs
4. A cpu can send SGI 1 to another CPU

These tests aim to test Xen has configured the GIC correctly to use SGIs.
Thus, the tests invoke specific APIs of GIC driver.

Also, introduce a config CONFIG_BOOT_SELFTEST which enables these tests.
The option defaults to N; it should be disabled for production builds and
is intended for the validation pipeline and coverage measurement. The
tests run during Xen boot and validate internal interfaces such as Xen's
interface with hardware, firmware and the bootloader.

Also, introduce an integer command line parameter "gic-test". By default, it
is set to 0 which means no tests are enabled.
For running SGI tests, "gic-test" should be set to 1. In future if we add
tests for distributer, ITS, LPI, etc, then we can use different numbers.
Thus, each number denotes a functionality of GICv3 which can be tested
independently and within a single boot of Xen.

In this way, we ensure that the tests to validate SGIs do not impact any other
tests.

In order to keep all the boot-time self-tests together in the binary, we
have introduced a separate section "initcallboottest". All the tests are
registered using __initcallboottest. During the bootup of each core, Xen
invokes do_init_boottests() to run the these tests. All these tests are
invoked before Xen creates the domains (in case of primary core) or runs
the idle loop (in case of secondary core).

Note: it was suggested that, once the boot self-tests have run, Xen
should call machine_halt() rather than continue booting (since this
build is only intended for validation). This is not wired in here
because the SGIs are sent from the primary and secondary CPUs and
received asynchronously on the target CPUs. There is no definite point
in the boot flow at which Xen can know that every send has been
observed by its receiver, so "after the tests have completed" has no
well-defined moment at which to insert machine_halt().

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
Link to v1 (RFC):
https://lists.xenproject.org/archives/html/xen-devel/2025-09/msg00956.html

Upstream CI run (xen-project/people/ayankuma/xen fork, one commit on
top of xen-project/xen staging — all Linux builds + tests including
qemu-smoke-boot-selftest-arm64-gcc-debug passed; only the macos jobs
sit pending because the personal fork has no macos runner):
https://gitlab.com/xen-project/people/ayankuma/xen/-/pipelines/2561806695

Changes in v2:
 - Renamed the patch from "xen/arm: Introduce GICV3 Self Tests" to
   "Add GICv3 SGI boot/self tests in Xen", and rewrote the commit
   message to explain the intent of boot self-tests (debug /
   validation builds only, Xen not expected to remain functional
   afterwards).
 - Moved the selftest code out of gic-v3.c into a dedicated file
   xen/arch/arm/gic-test.c, gated by CONFIG_BOOT_SELFTEST
   (Stefano, Grygorii).
 - Introduced a generic boot-self-test framework: new section
   "initcallboottest", registration macro __initcallboottest, and
   do_init_boottests() invoked once per CPU after
   local_irq_enable(), so the test runs on every CPU (boot +
   secondaries) and no longer collides with the IRQ-enable timing
   in gicv3_init() (Julien #1, Julien #3).
 - Added Kconfig option CONFIG_BOOT_SELFTEST in
   xen/arch/arm/Kconfig (arm-only for now; arch-specific because
   the only registered test is GICv3-specific).
 - Reserved a dedicated SGI value GIC_SGI_TEST in enum gic_sgi
   (xen/arch/arm/include/asm/gic.h), so the selftest never
   reuses a functional SGI (Grygorii #3).
 - Added a runtime integer command-line parameter "gic-test" so
   the selftest binary can be shipped but its execution selected
   at boot (gic-test=0 -> no-op; gic-test=1 -> SGI tests). Future
   GICv3 features (distributor, ITS, LPI, ...) can claim further
   values (Grygorii #2, partial).
 - Documented why machine_halt() is not invoked after the tests:
   SGI delivery is asynchronous, so there is no well-defined
   point after which every send has been observed by its
   receiver (Julien #2).
 - Wired the tests into upstream GitLab CI: new build job
   alpine-3.18-gcc-debug-arm64-boot-selftest, new test job
   qemu-smoke-boot-selftest-arm64-gcc-debug, and the runner
   script automation/scripts/qemu-boot-selftest-arm64.sh that
   dumps the QEMU virt DTB, injects
   "gic-test=1 console=dtuart sync_console" into
   /chosen/xen,xen-bootargs via fdtput, boots Xen, and checks
   for each "Sending GIC_SGI_TEST ..." followed by the matching
   "CPU%u: GIC_SGI_TEST received".

 automation/gitlab-ci/build.yaml               |  8 ++
 automation/gitlab-ci/test.yaml                |  8 ++
 .../scripts/qemu-boot-selftest-arm64.sh       | 81 +++++++++++++++++++
 xen/arch/arm/Kconfig                          | 15 ++++
 xen/arch/arm/Makefile                         |  1 +
 xen/arch/arm/gic-test.c                       | 52 ++++++++++++
 xen/arch/arm/gic.c                            |  5 ++
 xen/arch/arm/include/asm/gic.h                |  3 +
 xen/arch/arm/setup.c                          |  2 +
 xen/arch/arm/smpboot.c                        |  2 +
 xen/arch/arm/xen.lds.S                        |  4 +
 xen/common/kernel.c                           | 11 +++
 xen/include/xen/init.h                        |  3 +
 13 files changed, 195 insertions(+)
 create mode 100755 automation/scripts/qemu-boot-selftest-arm64.sh
 create mode 100644 xen/arch/arm/gic-test.c

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 7f5b5938e8..8df45caa86 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -439,6 +439,14 @@ alpine-3.18-gcc-debug-arm64:
       CONFIG_UBSAN=y
       CONFIG_UBSAN_FATAL=y
 
+alpine-3.18-gcc-debug-arm64-boot-selftest:
+  extends: .gcc-arm64-build-debug
+  <<: *build-test
+  variables:
+    CONTAINER: alpine:3.18-arm64v8
+    EXTRA_XEN_CONFIG: |
+      CONFIG_BOOT_SELFTEST=y
+
 alpine-3.18-gcc-arm64-randconfig:
   extends: .gcc-arm64-build
   variables:
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 8770c523e2..2398c6299a 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -524,6 +524,14 @@ qemu-smoke-dom0less-arm64-gcc-debug-gicv3:
     - *arm64-test-needs
     - alpine-3.18-gcc-debug-arm64
 
+qemu-smoke-boot-selftest-arm64-gcc-debug:
+  extends: .qemu-arm64
+  script:
+    - ./automation/scripts/qemu-boot-selftest-arm64.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *arm64-test-needs
+    - alpine-3.18-gcc-debug-arm64-boot-selftest
+
 qemu-smoke-dom0less-arm64-gcc-debug-staticmem:
   extends: .qemu-arm64
   script:
diff --git a/automation/scripts/qemu-boot-selftest-arm64.sh b/automation/scripts/qemu-boot-selftest-arm64.sh
new file mode 100755
index 0000000000..a37dba3e07
--- /dev/null
+++ b/automation/scripts/qemu-boot-selftest-arm64.sh
@@ -0,0 +1,81 @@
+#!/bin/bash
+
+set -ex -o pipefail
+
+# Boot the prebuilt Xen binary under QEMU with CONFIG_BOOT_SELFTEST=y enabled
+# and gic-test=1 in xen,xen-bootargs, then verify the four GICv3 SGI self-tests
+# pass by inspecting the serial log.
+
+XEN=binaries/xen
+QEMU=./binaries/qemu-system-aarch64
+DTB_RAW=binaries/virt.dtb
+DTB=binaries/virt-bootselftest.dtb
+LOG=smoke.serial
+
+test -x ${QEMU}
+test -f ${XEN}
+
+# Dump the auto-generated DT from the QEMU virt machine, then inject
+# /chosen/xen,xen-bootargs.  The selftest infrastructure invokes
+# do_init_boottests() during early boot; gic-test=1 selects the GICv3 SGI
+# tests.
+# -net none avoids QEMU's default virtio-net-pci, whose efi-virtio.rom
+# is not shipped with the qemu-system-aarch64 artifact used in CI.
+${QEMU} \
+    -machine virt,virtualization=true,gic-version=3,dumpdtb=${DTB_RAW} \
+    -cpu cortex-a57 -m 1024 -smp 2 -display none -net none
+
+cp ${DTB_RAW} ${DTB}
+fdtput -t s ${DTB} /chosen xen,xen-bootargs \
+    "gic-test=1 console=dtuart sync_console"
+
+rm -f ${LOG}
+timeout 60 ${QEMU} \
+    -machine virt,virtualization=true,gic-version=3 \
+    -cpu cortex-a57 -m 1024 -smp 2 \
+    -serial file:${LOG} \
+    -monitor none -display none -no-reboot -net none \
+    -dtb ${DTB} \
+    -kernel ${XEN} || true
+
+# Each "Sending GIC_SGI_TEST ..." line must be followed by the matching
+# "CPU%u: GIC_SGI_TEST received".
+fail=0
+check_pair() {
+    local send_pat=$1
+    local recv_pat=$2
+    local send_line recv_line
+
+    send_line=$(grep -n -- "${send_pat}" ${LOG} | head -n1 | cut -d: -f1)
+    if [ -z "${send_line}" ]; then
+        echo "MISSING: ${send_pat}"
+        fail=1
+        return
+    fi
+
+    recv_line=$(grep -n -- "${recv_pat}" ${LOG} \
+        | awk -v bl="${send_line}" -F: '$1 > bl {print $1; exit}')
+    if [ -z "${recv_line}" ]; then
+        echo "MISSING (after line ${send_line}): ${recv_pat}"
+        fail=1
+        return
+    fi
+
+    echo "OK: '${send_pat}' -> '${recv_pat}' (lines ${send_line} -> ${recv_line})"
+}
+
+# Boot CPU sends SGI to itself
+check_pair "Sending GIC_SGI_TEST to self CPU0" "CPU0: GIC_SGI_TEST received"
+# Secondary CPU sends SGI to itself
+check_pair "Sending GIC_SGI_TEST to self CPU1" "CPU1: GIC_SGI_TEST received"
+# Secondary CPU sends SGI to primary
+check_pair "Sending GIC_SGI_TEST to CPU0 from CPU1" "CPU0: GIC_SGI_TEST received"
+# Send to all-but-self
+check_pair "Sending GIC_SGI_TEST to all except CPU1" "CPU0: GIC_SGI_TEST received"
+
+if [ ${fail} -ne 0 ]; then
+    echo "FAILED"
+    exit 1
+fi
+
+echo "PASSED"
diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 79622b46a1..0e23bbf20b 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -476,6 +476,21 @@ config ARM64_HARDEN_BRANCH_PREDICTOR
 config ARM32_HARDEN_BRANCH_PREDICTOR
     def_bool y if ARM_32 && HARDEN_BRANCH_PREDICTOR
 
+config BOOT_SELFTEST
+    bool "Enable boot-time self-tests"
+    default n
+    help
+      This option enables boot-time self-tests that validate Xen's internal
+      interfaces with hardware, firmware and the bootloader. The tests are
+      registered with __initcallboottest and executed by do_init_boottests()
+      during early boot, before domains are created.
+
+      These tests are intended for validation and coverage measurement, not
+      for production builds. With this option enabled, Xen may not be
+      functional after the tests have run.
+
+      If unsure, say N.
+
 source "arch/arm/platforms/Kconfig"
 
 source "common/Kconfig"
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 84c4062b30..0090761682 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -24,6 +24,7 @@ obj-y += domctl.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += efi/
 obj-y += gic.o
+obj-$(CONFIG_BOOT_SELFTEST) += gic-test.init.o
 obj-$(CONFIG_GICV2) += gic-v2.o
 obj-$(CONFIG_GICV3) += gic-v3.o
 obj-$(CONFIG_HAS_ITS) += gic-v3-its.o
diff --git a/xen/arch/arm/gic-test.c b/xen/arch/arm/gic-test.c
new file mode 100644
index 0000000000..ca922e5d2a
--- /dev/null
+++ b/xen/arch/arm/gic-test.c
@@ -0,0 +1,52 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/delay.h>
+#include <xen/init.h>
+#include <xen/param.h>
+#include <xen/shutdown.h>
+#include <asm/gic.h>
+
+/*
+ * gic_test: Specifies the gic test to be executed.
+ * 0 = no tests are executed
+ * 1 = SGI tests are executed
+ */
+static unsigned int __initdata gic_test = 0;
+integer_param("gic-test", gic_test);
+
+/*
+ * CPU0: GIC_SGI_DUMP_STATE to self
+ * CPU{0-N}: GIC_SGI_TEST to self
+ * CPU{1-N}: GIC_SGI_TEST to CPU0
+ * CPU{N}: GIC_SGI_TEST to all but self
+ */
+static int __init gic_self_sgi_test(void)
+{
+    if ( !gic_test )
+        return 0;
+
+    printk("Sending GIC_SGI_TEST to self CPU%u\n", smp_processor_id());
+    send_SGI_self(GIC_SGI_TEST);
+
+    if ( smp_processor_id() == 0 )
+    {
+        printk("Sending GIC_SGI_DUMP_STATE to CPU0\n");
+        smp_send_state_dump(0);
+
+        return 0;
+    }
+
+    printk("Sending GIC_SGI_TEST to CPU0 from CPU%u\n", smp_processor_id());
+    send_SGI_one(0, GIC_SGI_TEST);
+
+    /* Execute this test only from the last core */
+    if ( smp_processor_id() == (smp_get_max_cpus() - 1) )
+    {
+        printk("Sending GIC_SGI_TEST to all except CPU%u\n", smp_processor_id());
+        send_SGI_allbutself(GIC_SGI_TEST);
+    }
+
+    return 0;
+
+}
+__initcallboottest(gic_self_sgi_test);
diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index ee75258fc3..9736b0c7df 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -324,6 +324,11 @@ static void do_static_sgi(struct cpu_user_regs *regs, enum gic_sgi sgi)
     case GIC_SGI_CALL_FUNCTION:
         smp_call_function_interrupt();
         break;
+#ifdef CONFIG_BOOT_SELFTEST
+    case GIC_SGI_TEST:
+        printk("CPU%u: GIC_SGI_TEST received\n", smp_processor_id());
+        break;
+#endif
     default:
         panic("Unhandled SGI %d on CPU%d\n", sgi, smp_processor_id());
         break;
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.h
index ff22dea40d..74bdd4ff63 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -306,6 +306,9 @@ enum gic_sgi {
     GIC_SGI_EVENT_CHECK,
     GIC_SGI_DUMP_STATE,
     GIC_SGI_CALL_FUNCTION,
+#ifdef CONFIG_BOOT_SELFTEST
+    GIC_SGI_TEST,
+#endif
     GIC_SGI_STATIC_MAX,
 };
 
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 6310a47d68..4e5db93027 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -470,6 +470,8 @@ void asmlinkage __init noreturn start_xen(unsigned long fdt_paddr)
     enable_errata_workarounds();
     enable_cpu_features();
 
+    do_init_boottests();
+
     /* Create initial domain 0. */
     if ( !is_dom0less_mode() )
         create_dom0();
diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index 7f3cfa812e..a016ff00f5 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -405,6 +405,8 @@ void asmlinkage noreturn start_secondary(void)
 
     printk(XENLOG_DEBUG "CPU %u booted.\n", smp_processor_id());
 
+    do_init_boottests();
+
     startup_cpu_idle_loop();
 }
 
diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index 2d5f1c516d..14f64a856c 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -146,6 +146,10 @@ SECTIONS
        *(.initcall1.init)
        __initcall_end = .;
 
+       __initcall_boot_test_start = .;
+       *(.initcallboottest.init)
+       __initcall_boot_test_end = .;
+
        . = ALIGN(4);
        __alt_instructions = .;
        *(.altinstructions)
diff --git a/xen/common/kernel.c b/xen/common/kernel.c
index fb45f81399..2047fe2a3f 100644
--- a/xen/common/kernel.c
+++ b/xen/common/kernel.c
@@ -412,6 +412,7 @@ void add_taint(unsigned int taint)
 
 extern const initcall_t __initcall_start[], __presmp_initcall_end[],
     __initcall_end[];
+extern const initcall_t __initcall_boot_test_start[], __initcall_boot_test_end[];
 
 void __init do_presmp_initcalls(void)
 {
@@ -427,6 +428,16 @@ void __init do_initcalls(void)
         (*call)();
 }
 
+void __init do_init_boottests(void)
+{
+#ifdef CONFIG_BOOT_SELFTEST
+    const initcall_t *call;
+    for ( call = __initcall_boot_test_start; call < __initcall_boot_test_end;
+          call++ )
+        (*call)();
+#endif
+}
+
 #ifdef CONFIG_HYPFS
 static unsigned int __read_mostly major_version;
 static unsigned int __read_mostly minor_version;
diff --git a/xen/include/xen/init.h b/xen/include/xen/init.h
index 0c921672c1..bd518bcea9 100644
--- a/xen/include/xen/init.h
+++ b/xen/include/xen/init.h
@@ -66,11 +66,14 @@ typedef void (*exitcall_t)(void);
     static const initcall_t __initcall_##fn __init_call("presmp") = (fn)
 #define __initcall(fn) \
     static const initcall_t __initcall_##fn __init_call("1") = (fn)
+#define __initcallboottest(fn) \
+    static const initcall_t __initcall_##fn __init_call("boottest") = (fn)
 #define __exitcall(fn) \
     static exitcall_t __exitcall_##fn __exit_call = fn
 
 void do_presmp_initcalls(void);
 void do_initcalls(void);
+void do_init_boottests(void);
 
 #endif /* __ASSEMBLER__ */
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri May 29 18:06:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 May 2026 18:06:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322725.1588978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wT1bY-0003iA-M6; Fri, 29 May 2026 18:06:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322725.1588978; Fri, 29 May 2026 18:06:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wT1bY-0003i3-JN; Fri, 29 May 2026 18:06:44 +0000
Received: by outflank-mailman (input) for mailman id 1322725;
 Fri, 29 May 2026 18:06:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmytro_prokopchuk1@epam.com>) id 1wT1bW-0003hp-O1
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 18:06:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wT1bV-00EjwM-SY
 for xen-devel@lists.xenproject.org; Fri, 29 May 2026 20:06:41 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a19d59c-2eae-0a2a0a5409dd-0a2a450aedd8-8
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 20:06:41 +0200
Received: from [52.101.69.112]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <dmytro_prokopchuk1@epam.com>)
 id 6a19d5b1-56b3-0a2a450a0019-346545703c2b-3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 20:06:41 +0200
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by DB9PR03MB8047.eurprd03.prod.outlook.com (2603:10a6:10:2ce::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.11; Fri, 29 May
 2026 18:06:39 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.21.0071.010; Fri, 29 May 2026
 18:06:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WucSQbYYOwHVVWwJw/e/21051DxBHf+A32WrZrrmA/8HQjmE9dIkxml4IMkjFu+eumbFtRJYazTeg+YEwGqijGbFsNSIclhsZKOKhAIZVy068JbHHEK5Z2OD3kN2+DZl6oPqxXWhJZoIHVktEK3kwJZrvpDztoFhFrlkjYAsG/HZaw4B+gmjUSwmoC6NMzTNAqhrAdCq+8bvJOwTwOxO+Mat+ClON1lvuP+tSVJ6V4OOlb6cTaK/FosmQ3G89i1Ugm5H5pHfO1saf+ktNHUFSROg43AtJyhiTRvDWh28SVqrgD9CgCVjF9x5Q+vGKNdehGYJ8Nj23yjO+iKr6kM4ng==
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=sVpRs2eWXA/trL/i6q59BpF/yGCdOXjnszLojN66LUQ=;
 b=DPQ2S/Ps/eYdUEegJEUDGfTSw5HWZGQdBimbkZPqAySUYjmepmrHZ1+tA8RR//AkDcIB0hC+uJhf+kNUeFMP7oxyf1L5FsmCCCDqaaH2zxw8j4R1cDsPECKE56HBq1v4dPpQSYwEI/kCyG8m35+uCA/OP17fzxfMnICLHoRal32ntD9pKjrUDxP7ifaxRrO6+TM8Ta6c54sYkkSdUAuQxjfBR+B/BEufy6bqNKy65IAJzr5/ccQB7a6SfZA/lM3hHa567YVV3sJFaA/oW/+lH9PB20nGC0/LFnPvxtE3Q1j6elRxZHHgRkK16umSSyKxOiJk3urtknUxqXOsUVYNcA==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sVpRs2eWXA/trL/i6q59BpF/yGCdOXjnszLojN66LUQ=;
 b=WH0laqN7rNSofecJEU2VeWr6/970750svmAtsu0N1X6wmx8c3cgvDYVuF8UfctU+V7+NbJ7htBOzTaMmXiknErEbZwRm7aU89a/TSJmzqFmgfLriiZwEQS7Vru7iY8+YZPnUlc+/7R4lIFBHXpd6PEkNkRrzaYKR5Sy9oNePfr2CsyvaCq4ZYLPU7XWmTgWfmknBeliD7voA8uYnQBYQ3Nh0p+q8WCPO/FG683qKjgMHFAGpCB6iU3ikqL1ETWQperBhMb5yiHbvrGQjH1HSgodNXf6TKzHyPTiHKqAYFR97X7r4ReUPVhOwJmn46fAhjPwVRcxZt9p1V8GGxmyG1g==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Timothy Pearson <tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v2] coverage: place GCOV-generated .text.startup section
 in init text
Thread-Topic: [PATCH v2] coverage: place GCOV-generated .text.startup section
 in init text
Thread-Index: AQHc70ifTHJ2JaDHW0i9kIm+tvP8M7Yk0PEAgAB8SIA=
Date: Fri, 29 May 2026 18:06:39 +0000
Message-ID: <1b3ea08c-e0e0-44f8-8150-af7509047eb6@epam.com>
References:
 <fb154ba84ed01a060c6617194080d7cd77f9144d.1780044400.git.dmytro_prokopchuk1@epam.com>
 <095aa162-a397-46dd-b34f-5c9c1b15e149@citrix.com>
In-Reply-To: <095aa162-a397-46dd-b34f-5c9c1b15e149@citrix.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|DB9PR03MB8047:EE_
x-ms-office365-filtering-correlation-id: be7ae11d-67c1-4034-c073-08debdad082b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|376014|42112799006|38070700021|4133799003|18002099003|22082099003|11063799006|4143699003|56012099006;
x-microsoft-antispam-message-info:
 wqfGGgHQxq3lOxjBOuajSmIGdumcuifIBSt4BViyMimXNoLtTEpSIA1EUQ1cPtzEBt2gL+SC6lg7AgaRg0AwAaimn+KgQDkPq/qXKcxS0fmY6965lf1u6BhbNMluGvajUSLTEhKqdQ7e7uDEIAccSJEAjKRCblVz5fZNLtenTT5A87XLbFnBnNYeQ2bj3R/8gXEjleboFqDrX2v0Pc4mnSiiBVYDIYgC0Kr7IpvfKEwsuieQbrZMiNV5Dt2lxROXRHAZipIQmyJafQw0k/gRVPe4YgVrFvGqtvu7myAGzlk9nfRUXRNjrXNrRLmpIiSVk16WxoI+R66z1HqL+V5RKlwLEqaWECtUVFITR/tajU6cCW5DKJA5SvLltOctxayTYdWYAG0bcPByrs5EI4xMCIh1DhR0wGAst9plbswQVs8syO7MXlQiAidR01+pDclKDcsXcprBD5exvJIAvE4eNvkafznjZodLPBlPivuyJITvfNRyzPlorHIDPSA407Bwq4T15n/+yLPtYXNv+5H2nidJavIllcgkHi9gbNDVAXlvVGOjANYOMndV76uOD9aC33vfQJT3091AvhQJbZZiIV7Gqhnm+SgnytgO2TwfuqM1di/FfqQo0FP44+KF6iG+UWtJiEbaLp+JBuJ/Y1doCyD6PT9hqQaqoLzl08mDQxK1FsyZM2/HUNKWJ7DfjpXabYxRlIjFvXlrUkZqcSooLA==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(42112799006)(38070700021)(4133799003)(18002099003)(22082099003)(11063799006)(4143699003)(56012099006);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eU9OYUQvSVVjMnYvdCtDTGV6SjRXWW4vVnJZUWZFUDVlTUN2WWpEUkJ5aDA1?=
 =?utf-8?B?UTZwQi9QaFZCUVZKUUF2Zzl2bTR4TDJSNmNPTUlyREdQemVwTEt0UURGbU9v?=
 =?utf-8?B?NU9KNnJiUlB0YVRZb3JaeUY3TS9pTW5VY3lSOW9xd0JMZzRwZEkrZzZ4YmhN?=
 =?utf-8?B?KzlOc04zZnJud3ZDd3JKUFJrS3JGM0ZYNmtXcFQ5NzBrY2t6ZUlNakJhRDIx?=
 =?utf-8?B?U1RTL1Y4Q2xQc3dpSUxLcm5mNXZSdzBocVBHdkVqV3VMRlAzbG43aDhJcUFq?=
 =?utf-8?B?aytsVjRVMnplV3doVEFENDFUbWhHTUR6QmFheSthR1Rsb1NiNGhjYW9JNEFm?=
 =?utf-8?B?M1RpYlptYksyLzNiYlgxMThRa0Y0aHhDRVNDSXlJVXRWUEdqbTRBcUZ1UVRk?=
 =?utf-8?B?WkRpdStpbWZEZVg4ZmRvdXFoY1lDNVVsc2R4M29PYitzMEFjZnJyZ1NCTnBq?=
 =?utf-8?B?MnFxWDVCTVFqcGR6MS9VUW94SGM3OFNId1IrZXVLQlZBY1ZXNDZrMzU0KzFv?=
 =?utf-8?B?YWdaMWNzVVZWb25adEpQTkhwM0FSanBtMk1RbUJCeGhqdGJhK1gyRnQ0RTV5?=
 =?utf-8?B?N243TnNoT0NaWm8xcmNIa2xTalNnd0NwbWNVWEhXS295WGFxd2hROGlrYS8v?=
 =?utf-8?B?RjdYODBVQ3BhamlSandub3VRNm9xb3g0TVB6aWFQV0JOUGRCRS9Eb3ZpTVFa?=
 =?utf-8?B?Z2VxbVJRWXFkdHRUODEzZy8xZndua2JxNFB5TG52ODdtU0t5RGwrQVV1bnho?=
 =?utf-8?B?SDFzamxQd0dpNlFsLys1VGxETTBqY2Z0aS9WamJqMThidmFNWDRFaXdHODBU?=
 =?utf-8?B?bTU4RUtsQzNWdThpaEtqVFkwWjIrckRBd2NRTFRBamhxeFBjQ1NtZjF1Tklu?=
 =?utf-8?B?K29udkVPUkREUHl5S1dyZ21vVFZQRGFRYm5mbW9adTE0UkpjNk43eE1nRmU3?=
 =?utf-8?B?eUtaRkRrVC9YNFdYTTlGRmozSndoU3BTVmNweEE1aEFKR3lpL0srV014bkFw?=
 =?utf-8?B?dHRiMHR6cGxOaDlDSm53RUo4U1ZKWmcxWU5ES0VwSkFyYno2M2NuVHIvVTIv?=
 =?utf-8?B?TXVMQVhkVndpWi9sb3hHVmlyaWhEN2VsOHlybWRVcDlTQmxoM21PVDZQT3Zx?=
 =?utf-8?B?VEVFMjQyaFpXdTdPV2RNNzZxbGRYU0ZaMkIzdWtVd3hMWHZmM293UHdFSElD?=
 =?utf-8?B?QlM5eGVaY1dPdUpTTVlBNGx6U1BaeUJDZUtiL2JiaDdjY0hXVnFvQjBpZER5?=
 =?utf-8?B?c1owQk01WUtBb2xjKzlWS2lTVTdHSGFlazB5TERiVTVLTlJPL25xUnlRMXdy?=
 =?utf-8?B?Zzk2K1czRVV1eFRkOHY4WUtNeEpxME4rVXhzSnJvcGVac1NDcWdKUVBCMU5O?=
 =?utf-8?B?UVIzUmtmVTRTR21pR1FvZGdKeXd6QmJPS3VzcEJVb0tWYURsd25QTEZGV09z?=
 =?utf-8?B?bVNnU2tYRlZlc3ppcWpXTHZwMzlWZTZ5bUluNnQ2OUlqNmpJY1FNMHIzWmNm?=
 =?utf-8?B?eUpkOEsra1NGcEpsV2RGeUZMc25hTitla3lkY1JBZ3B1TVRuczR2V0Z0RDBq?=
 =?utf-8?B?Z2xOWDdELzN2djZKQVhzaGRVWm9laGN2YnpBeWpEOWRla0lWamdYeTBtbXdX?=
 =?utf-8?B?L1lML2hsb250aCtEUVNQNk5nR3RuUXNYc1lsZUhkRVZkNU1LVlg0TWl1am56?=
 =?utf-8?B?WkFoOXhEcTl2K0krdzlnVHdaQ1Y0R3dybjZwME9QQ2ZkUWpQbGVnQUl1Wm5J?=
 =?utf-8?B?VW01dVhPVXlmWHkrdFhkVGxGUm9IMGZNbTBWdEl5UXVuemtVWFNpMEVqeXRH?=
 =?utf-8?B?WFJ4bjVKdEdlbHZMbnJJTmhjMVVSNCtzOXU4TEYxM2NyYzNxcDRmREZIMEZT?=
 =?utf-8?B?bmQybXByNkVaWjFqejQ1QUxzV3I2YWdNdmFXNGxPQTFQckR2M1NMSDdmWE9C?=
 =?utf-8?B?b1VjaW55RDBxOWlZNVk4bW5SVzBTUHYyZ0dRWkFkWWVSZkJTVnNXT2xReURT?=
 =?utf-8?B?dVU5dUY1RTExeDJlemVrUUhVMlpZcldLaE4wMlhFaXJOSTVhQjhZN2gxWW9l?=
 =?utf-8?B?ZHdxTVdNMXBsSFJZeWFJS2FpN2JFT25LOU4wUmVReG1nejdaUWFrekFnQVV1?=
 =?utf-8?B?bUtkQ0VXS2JsOUFNUXp0am9pNGpxdkgwRDhYRHgrVTVQT1NBQVNlRDNOek1E?=
 =?utf-8?B?VTB6eHpsSkRkSXpMMTNSMkxaZk5YK2R3bFVuTVRYZlNPS0FGaVdBWUJzV3ZS?=
 =?utf-8?B?eHUzK3NsZkowQ2sraVg3Sm5jTGdmL1hra1BaSmw2dVdYVUpORDlZWlFaZ210?=
 =?utf-8?B?amcrV214OE93ZVR3VUptdWR1QVBRY205SmpPY1owQVJGZFNoa2JITTlWUUlt?=
 =?utf-8?Q?XCuoDz2twDHVDkbs=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <415B797740733348A8C4281FBFB9DD18@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: be7ae11d-67c1-4034-c073-08debdad082b
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 May 2026 18:06:39.6736
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: LCGBx9l5g56ugzHxDeDCJ55+fVwe2TnsZlN3Ahxs5GbFH9w2NK6ON4k1qiLn3FqJ7C7VvajBeN6LJRFm3Jkxe5r3nz1DKLnfqisuF0ahPdc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB8047
X-purgate-ID: tlsNG-4011c0/1780078001-7D5868B7-6CEC8257/0/0
X-purgate-type: clean
X-purgate-size: 1060

DQpPbiA1LzI5LzI2IDEzOjQxLCBBbmRyZXcgQ29vcGVyIHdyb3RlOg0KPj4gTGluayB0byB2MToN
Cj4+IGh0dHBzOi8vcGF0Y2hldy5vcmcvWGVuL2NiOGMxZTA4NjJhNTU0ZjdhMjgzNDdmNTQ5ZTlj
ZmQwYjBkNmRiMmYuMTc3OTgyOTU0NS5naXQuZG15dHJvLl81RnByb2tvcGNodWsxQGVwYW0uY29t
Lw0KPg0KPiBXaGF0IGFib3V0IG15IGZlZWRiYWNrIHRvIHYxIHdoaWNoIHNob3dlZCB0aGF0IC50
ZXh0LnN0YXJ0dXANCj4gc3BlY2lmaWNhbGx5IGlzIGJ1Z2d5IGluIHg4NiwgYW5kIHByb3ZpZGVk
IGEgc3VnZ2VzdGlvbiBvZiB3aGF0IHRvIGRvDQo+IGFib3V0IGl0Pw0KPg0KPiB+QW5kcmV3DQoN
CkhlbGxvIEFuZHJldywNCg0KSSBhZ3JlZSB0aGF0IHRoZSBMaW51eCBURVhUX1NFQ1RJT04tc3R5
bGUgY2xlYW51cCBpcyBtb3JlIHByZWZlcmFibGUuDQoNCk15IGdvYWwgd2l0aCB0aGlzIHBhdGNo
IHdhcyB0byBmaXggdGhlIG9ic2VydmVkIENPTkZJR19DT1ZFUkFHRSBib290DQpmYWlsdXJlIHdp
dGggdGhlIHNtYWxsZXN0IGNoYW5nZS4NCkFuZCB5b3VyIHByb3Bvc2FsIHJlcXVpcmVzIHdpZGVy
IGxpbmtlci1zY3JpcHQgcmV3b3JrIGFuZCByYW5kY29uZmlnDQp2YWxpZGF0aW9uLg0KDQpVbmZv
cnR1bmF0ZWx5IEkgZG9uJ3QgaGF2ZSBlbm91Z2ggdGltZSB0byB0YWtlIG9uIHRoYXQgcmlnaHQg
bm93Lg0KSSdsbCB0YWtlIGludG8gYWNjb3VudCB5b3VyIGZlZWRiYWNrIGFuZCB3aWxsIHJldHVy
biB0byB0aGlzIGxhdGVyLg0KDQpCUiwgRG15dHJvLg0K


From xen-devel-bounces@lists.xenproject.org Sat May 30 03:08:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 May 2026 03:08:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322839.1589027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTA3u-0004xi-LO; Sat, 30 May 2026 03:08:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322839.1589027; Sat, 30 May 2026 03:08:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTA3u-0004xa-Gd; Sat, 30 May 2026 03:08:34 +0000
Received: by outflank-mailman (input) for mailman id 1322839;
 Sat, 30 May 2026 03:08:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bp@alien8.de>) id 1wTA3t-0004xB-22
 for xen-devel@lists.xenproject.org; Sat, 30 May 2026 03:08:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTA3s-002GII-Cu
 for xen-devel@lists.xenproject.org; Sat, 30 May 2026 05:08:32 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bp@alien8.de>)
 id 6a1a5408-2eae-0a2a0a5409dd-0a2a4509ab9e-32
 for <xen-devel@lists.xenproject.org>; Sat, 30 May 2026 05:08:32 +0200
Received: from [65.109.113.108] (helo=mail.alien8.de)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bp@alien8.de>)
 id 6a1a54af-2497-0a2a45090019-416d716cb6a6-3
 for <xen-devel@lists.xenproject.org>; Sat, 30 May 2026 05:08:32 +0200
Received: from localhost (localhost.localdomain [127.0.0.1])
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id A8F6540E015B; 
 Sat, 30 May 2026 03:08:30 +0000 (UTC)
Received: from mail.alien8.de ([127.0.0.1])
 by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id PuzC0Ft-HHGf; Sat, 30 May 2026 03:08:20 +0000 (UTC)
Received: from stx.tnic (unknown [IPv6:2600:1700:38ca:c00:b8a3:f58e:8829:9ca6])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest
 SHA256) (No client certificate requested)
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 8255040E015A;
 Sat, 30 May 2026 03:07:41 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=alien8 header.d=alien8.de header.i="@alien8.de" header.h="Date:From:To:Cc:Subject:References:In-Reply-To"
X-Virus-Scanned: Debian amavisd-new at mail.alien8.de
Authentication-Results: mail.alien8.de (amavisd-new); dkim=pass (4096-bit key)
	header.d=alien8.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8;
	t=1780110500; bh=xvvniitijThI5M/vzeUngJ2o5o2bAFGL6v1h1J/weaM=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=RlZugvf28JewjKobWij+z7qIEzuJleC7UW1AkwP8rIPfgHvDVyKCrVyw/Qymrp83Z
	 oMbgDR2FbH11di++QnPPImwLEX2QWfLIIXSP1ypHOZXuL8uzhRYviGTB6dzv+qnCeb
	 Gpjy/sGySdR+2Du+p++dlzJkZH9f7yDl1Iu2Fre6FT/CcfHszYCqFtrvvnC9mv0qHc
	 VeeoN4BaHXjs2/UWNE6zir9SYUOs75Xg4Of1T4uw5yhGpFM4a3E1cmNVNmJaKIUq6R
	 yPy/Ir3fplxnFBnCyQR1Mih6ew0Q+bN5yquZw+MmRi4V8Lj+CiVHxa20Vu+5eKSmYk
	 giEEXZB1RSLVAV6SsDTp793DrNhxj4wm0EvU2xn+GoJTqXtQ7jCQ/UV7q72yZwrhw6
	 Hr/fzxFzU2n0bEEtOtOgL6M+OPmeiiF9CNlohP/WUUTGr0G7qVWyY3IBL6L60qHrmi
	 G28aB2e/4cv56a+4WyUu0hncXyyo8wJb54Pd1OOsv3eUOm/6ojaoKm4aTJ7E2o38BY
	 +wUXFuMdzDYShBipYVX8+o8FNNEGBfWyPWxpIXqjj6tOadHwHan4leJuqlNl1iFQ/z
	 P8Ic44MZ/AWAUKuhucIKSKuYuKaxZPvVv03zf0laMmYz+Zwgn1PGjB2t4S2+q2afEM
	 hP4TtO4p/8Y97d14SV7L5qrs=
Date: Fri, 29 May 2026 20:07:31 -0700
From: Borislav Petkov <bp@alien8.de>
To: Sean Christopherson <seanjc@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	Kiryl Shutsemau <kas@kernel.org>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juergen Gross <jgross@suse.com>,
	Daniel Lezcano <daniel.lezcano@kernel.org>,
	John Stultz <jstultz@google.com>, "H. Peter Anvin" <hpa@zytor.com>,
	Rick Edgecombe <rick.p.edgecombe@intel.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	xen-devel@lists.xenproject.org, David Woodhouse <dwmw@amazon.co.uk>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Nikunj A Dadhania <nikunj@amd.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Michael Kelley <mhklinux@outlook.com>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH v4 01/47] x86/tsc: Never re-calibrate TSC frequency if
 its exact timing is known
Message-ID: <20260530030731.GBahpUcwWXdKCf1lJO@fat_crate.local>
References: <20260529144435.704127-1-seanjc@google.com>
 <20260529144435.704127-2-seanjc@google.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260529144435.704127-2-seanjc@google.com>
X-purgate-ID: tlsNG-bad1c0/1780110512-89377A53-8E890EDD/0/0
X-purgate-type: clean
X-purgate-size: 1168

On Fri, May 29, 2026 at 07:43:48AM -0700, Sean Christopherson wrote:
> Don't re-calibrate the TSC frequency if the TSC is known to run at a fixed
> frequency.  In practice, this is likely one big nop, as re-calibration is
> used only for SMP=n kernels, and only for hardware that is 20+ years old,
> i.e. is extremely unlikely to collide with TSC_KNOWN_FREQ.

Why do we care?

So what if it recalibrates once on UP?

Look where it is called - all old rust which no one uses anymore.

> Signed-off-by: Sean Christopherson <seanjc@google.com>
> ---
>  arch/x86/kernel/tsc.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
> index c5110eb554bc..08cf6625d484 100644
> --- a/arch/x86/kernel/tsc.c
> +++ b/arch/x86/kernel/tsc.c
> @@ -946,7 +946,8 @@ void recalibrate_cpu_khz(void)
>  		return;
>  
>  	cpu_khz = x86_platform.calibrate_cpu();
> -	tsc_khz = x86_platform.calibrate_tsc();
> +	if (!boot_cpu_has(X86_FEATURE_TSC_KNOWN_FREQ))

cpu_feature_enabled() everywhere please.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Sat May 30 06:48:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 May 2026 06:48:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322867.1589036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTDUc-0003Hn-Ds; Sat, 30 May 2026 06:48:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322867.1589036; Sat, 30 May 2026 06:48:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTDUc-0003Hf-9j; Sat, 30 May 2026 06:48:22 +0000
Received: by outflank-mailman (input) for mailman id 1322867;
 Sat, 30 May 2026 06:48:21 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wTDUa-0003HZ-Rb
 for xen-devel@lists.xenproject.org; Sat, 30 May 2026 06:48:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTDUZ-00CdDA-Az
 for xen-devel@lists.xenproject.org; Sat, 30 May 2026 08:48:19 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a1a87fb-2eae-0a2a0a5409dd-0a2a45059696-48
 for <xen-devel@lists.xenproject.org>; Sat, 30 May 2026 08:48:19 +0200
Received: from [209.85.167.53] (helo=mail-lf1-f53.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a1a8832-aaa8-0a2a45050019-d155a735f1a2-3
 for <xen-devel@lists.xenproject.org>; Sat, 30 May 2026 08:48:19 +0200
Received: by mail-lf1-f53.google.com with SMTP id
 2adb3069b0e04-5aa63daf2a5so129930e87.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 May 2026 23:48:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1780123698; cv=none;
        d=google.com; s=arc-20240605;
        b=MK4XlozEkoGe+3rqhUEJdIG0w1a85HCrR/RTdiUafkZimV+49GKntx83iRDn++HH6X
         rHRCbv06+GdrqtyM5xavs+pySkgeNcq0814rk22qVo93gwLtV/zNRVs0dYghSRGoywxa
         FeFVyguA2ocNc3w/QZnj1z2VeaFygidW2g+6VqTvyxTErGaQTLVnDVDd2LruvkE+pgu6
         50i0zGCTFosyiLq5N0giP6m0NA+fFl48sKULG8emvALg5mJ0t0hq7YoWi/gVe01b9yoQ
         BmSdQaYsmlmpCDuXJYwYmbjDgQWR2LH6cG+crztkXq3jHoUL8zzXiLHQTsz6oUf9ImFV
         A4Aw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=7j0pg8TN/7qQMlytW5UTmKIuov0iO6TEZujM6+giXMA=;
        fh=/Tq7X+nRCetFeaTnoqIgCIOw8I91xEW6Ck4UaUomaQw=;
        b=XyypTVg2uTnzHqVTk45rbSQAh3lzbNLytXa7884P9SbN6ECRQV1Bt6tAJ8VTZgI445
         enuJtmjvuZTyBQ6Y687FeN0aOQkQy0gahh9aYWxGouvtT6xJoKCxirYsbyBH978S+RJr
         CbP7Jtp3aAeJAk715AvlZeBKkT4+ABYPC9s4YNXYwlBR1blvrPUmauG2wsb1DYaseICf
         ZTz3PKOYGfX2Tss8MbTJ7QyQdxK6ajghpgMj4CYGCv4azyK4b+dQKXeDhGZvDJAIZbgP
         m9N5TMnelWoNYHlSiEL1hkOdU0oOp92nJ2DJ0DNj+NKOqP4//Dh0FXga/d5brhgyviK1
         mpoA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1780123698; x=1780728498; darn=lists.xenproject.org;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7j0pg8TN/7qQMlytW5UTmKIuov0iO6TEZujM6+giXMA=;
        b=dvH84vSu5sIAkxQrABkCyiMvw4PETkbkVLTjpzdtxXXPww7XD17IcdOVxCiNh6wlDE
         SePEcuUpikG8GtzUcywfWoOKQRbNTUPVY4bezBDVVxX4iuHoGB9NS5g4INoocMgwbNkh
         0wx1f4N2qP/ygDjRDN0z9tEt3yIWTgg7lbkUX8t2YKv1kf4cGNkHyPSDDpp7C9LnGB9s
         qhxVZfeHlvaGz3iktChO9nk8y+Lji4UKVkiO6/ykrWetjFlAOJbwaa2WfbsrWzEmEq+0
         oEi73lDOzdGO/4Wn7nkN33zori2IjAHyYL8UoeutbPlt9fwEeYlZjc8AqSiH5FvWym1y
         pucw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780123698; x=1780728498;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=7j0pg8TN/7qQMlytW5UTmKIuov0iO6TEZujM6+giXMA=;
        b=tJ52CzTh5qXsaUggYI8a8USM/AAHJPC7wQvy217+z+y2BXmZU9kl3IXSFyJ+g3slvP
         5OfVQv5Jh5IWHOFP5zofAvzQsd6MucSTl247irysu/g647Tlmplm3Uo3ZXFbzD4a+bKl
         V5vV3r0woS7gLeQeBJqZxRuLR5Uj/niVfwblW8cCQwrwMkR77CfzoW8jkaOhvIZWo+I1
         QA/WGh/NruScF8UmXUm5akAeq2F/JYQrl0cm7BnM8H83i/OmZltHWYCeb1QlxPHqIQyQ
         nJnbggTyxQfl6cnqIF4YUAmgW8kM2YP2o5O8cSWEF1sFakHMB6PqYyEyCxiVIYEtrCpq
         hNzQ==
X-Forwarded-Encrypted: i=1; AFNElJ8zUaL0sdz3/OTqEtOrCGFTqEtcD5SephcyjxkFG5WQlT3qG/dpy+BW4ZXvpUY5uqSsImYh7dph2ME=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxLMZaXxU8gDzde/hOUz5NM6EHUVrpltOJEDtXFy6OqhCUSeVhf
	TOGWlO1YQoPX0hGtvSlt7I8kwF5rnC5ahh/CSuylkiQ87Uyv4BoLxT4xEGuVSowwcZenIPS7aNZ
	sln3/f97CvwNdTBOmvSL+LXSknms/JHc=
X-Gm-Gg: Acq92OGr7u42Ofa0WOUP/3WWdg+jx8LSEKMHsF6TFne67XhL8kRd12HiE/vSOn3KIBq
	l8W/QrZj/gvHRT9mHO0i3cv3b/jVFqp3NEsd5/JkZcQ0mOZyJEBmoHpiacbk2Ev2+zHUaYgpTPd
	bPfN8j4RInwpInQEcJrZtldfYkt4UVeEt+q5mIgpxXaMOcX0W3caDgvZKVhRSM/zfi/P57ZguCD
	gfnMchDQRgMgj73Gnpc/uUR9EAjMvs6scTC2canzYAgu5ja4XCbovHQNVwsdrasp9wPIm1F8fRP
	nVUZU3Jp4aRq0RH4
X-Received: by 2002:a05:6512:6181:b0:5aa:6395:f9c5 with SMTP id
 2adb3069b0e04-5aa6395fa46mr293015e87.27.1780123698205; Fri, 29 May 2026
 23:48:18 -0700 (PDT)
MIME-Version: 1.0
References: <e9c45be41bb36ca341dad57196c753fbe82d1526.1774998397.git.mykola_kvach@epam.com>
 <d53d2b06-56d7-43bc-bb20-4df7b7bc3ca5@suse.com>
In-Reply-To: <d53d2b06-56d7-43bc-bb20-4df7b7bc3ca5@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Sat, 30 May 2026 09:48:06 +0300
X-Gm-Features: AVHnY4IhgQGqiohAUgmpjIXAUoxyDlJ8u1dtdUvIBlQobA53X2UHp_a26ZU7xpQ
Message-ID: <CAGeoDV8JHY6_dMATNcgoZkJYa5ma_EJ8fg=85NNXqMnNNTCY6w@mail.gmail.com>
Subject: Re: [PATCH v2] xen/domain: make shutdown state explicit
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Paul Durrant <paul@xen.org>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Tim Deegan <tim@xen.org>, 
	Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c201ff/1780123699-E318B443-69D5983C/0/0
X-purgate-type: clean
X-purgate-size: 5995

Thanks, Jan. I agree with your comments and will rework this for v3.

The main change will be that domain_shutting_down() preserves the old
is_shutting_down semantics. It will be true once shutdown has started
and remain true after shutdown completion until domain_resume() resets
the state.

On Wed, Apr 8, 2026 at 4:06=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> On 01.04.2026 08:41, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > The shutdown flow currently overloads is_shutting_down and
> > is_shut_down to represent multiple phases of the shutdown lifecycle.
> > Some users treat is_shutting_down narrowly as "shutdown still needs to
> > be driven to completion", while others rely on it more broadly as
> > "the domain is no longer in its normal running state".
> >
> > Make the lifecycle explicit by introducing enum
> > domain_shutdown_state and helper predicates whose names match their
> > semantics: domain_shutting_down() for the transient phase,
> > domain_shutdown_completed() for the final state, and
> > domain_in_shutdown_state() for checks that need the union of both.
> >
> > The conversion is intentionally not mechanical. The old flags were not
> > mutually exclusive: once a domain became fully shut down,
> > is_shutting_down remained set. As a result, sites that previously
> > used the absence of is_shutting_down to exclude both the transient and
> > completed states now use domain_in_shutdown_state(), sites that care
> > specifically about the final state use domain_shutdown_completed(),
> > and only paths that still have work to do before shutdown finalization
> > use domain_shutting_down().
>
> In how far is the distinction between domain_shutting_down() and
> domain_in_shutdown_state() really necessary?

Agreed. I will drop domain_in_shutdown_state() in v3.

domain_shutting_down() will preserve the old is_shutting_down
semantics, rather than mean only the transient state. That is, it will
return true from the point where shutdown has started until
domain_resume() resets the state, including after shutdown has
completed.

> still leaves me pretty clueless as to almost(?) all of the uses of the
> latter (where I think the former could be used just as well). Many
> paths simply can't be taken anymore for a fully shut down domain, so
> the distinction between the two is moot there.
>
> I'm also concerned of the name domain_in_shutdown_state() itself. To

Yes, that name is misleading. Since the helper is not needed anymore,
I will remove it in v3.

> me this is far closer to domain_shutdown_completed() than to the union
> of both states. See how e.g. x86 CPUs can be "in shutdown state", i.e.
> not responding to anything but a reset or init signal.
>
> IOW an entirely mechanical replacement might in fact be easier to look
> at. And in the one rare case where the distinction might indeed be
> relevant, "domain_shutting_down() || domain_shutdown_completed()" could
> be used.

Agreed. I will follow this approach in v3.

The old is_shutting_down users will use domain_shutting_down(), with
the same effective semantics as before. The only users converted to
domain_shutdown_completed() will be the ones that previously checked
is_shut_down.

>
> > @@ -1423,9 +1423,12 @@ int domain_shutdown(struct domain *d, u8 reason)
> >      return 0;
> >  }
> >
> > -void domain_resume(struct domain *d)
> > +int domain_resume(struct domain *d)
> >  {
> >      struct vcpu *v;
> > +    enum domain_shutdown_state shutdown_state;
> > +    unsigned int shutdown_code;
> > +    int rc =3D 0;
> >
> >      /*
> >       * Some code paths assume that shutdown status does not get reset =
under
> > @@ -1435,10 +1438,18 @@ void domain_resume(struct domain *d)
> >
> >      spin_lock(&d->shutdown_lock);
> >
> > -    d->is_shutting_down =3D d->is_shut_down =3D 0;
> > +    shutdown_state =3D d->shutdown_state;
> > +    shutdown_code =3D d->shutdown_code;
> > +
> > +    if ( !domain_shutdown_completed(d) )
> > +    {
> > +        rc =3D -EINVAL;
> > +        goto out_unlock;
> > +    }
>
> I can't help the impression that you're mixing two things here - adjustme=
nt
> to how shutdown state is tracked, and enforcement of completed shutdown
> right here. This separate change likely would better be split out, and th=
en
> come with a description saying not only what is being changed, but also w=
hy,
> and why the change is correct for both call sites.

Agreed. I will drop this part from v3.

domain_resume() will remain void and the callers will be left
unchanged. This patch should only make the existing shutdown state
tracking explicit. If resume-state validation is needed, it can be done
as a separate change with its own justification for the affected call
sites.

>
> > @@ -1448,9 +1459,17 @@ void domain_resume(struct domain *d)
> >          v->paused_for_shutdown =3D 0;
> >      }
> >
> > + out_unlock:
> >      spin_unlock(&d->shutdown_lock);
> >
> >      domain_unpause(d);
> > +
> > +    if ( rc )
> > +        dprintk(XENLOG_WARNING,
> > +                "%pd: Invalid domain state for resume: shutdown_state=
=3D%u, shutdown_code=3D%u\n",
> > +                d, shutdown_state, shutdown_code);
>
> The shutdown code doesn't affect whether the function would fail. The ext=
ra
> variable just to log it anyway is therefore a little irritating. Is there
> any reason to this that I'm overlooking?

The reason was only to avoid printing while holding shutdown_lock.

I wanted to sample the state under the lock and emit the diagnostic
after dropping it. shutdown_code was included only as extra context for
that warning, not because it affected the decision.

That said, I agree this is not needed here. Since I will drop the
resume-state validation from v3, the warning and the extra cached
shutdown_code will go away as well.

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Sat May 30 07:25:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 May 2026 07:25:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1322875.1589045 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTE4g-0000dH-0U; Sat, 30 May 2026 07:25:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1322875.1589045; Sat, 30 May 2026 07:25:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTE4f-0000dA-TI; Sat, 30 May 2026 07:25:37 +0000
Received: by outflank-mailman (input) for mailman id 1322875;
 Sat, 30 May 2026 07:25:36 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1wTE4e-0000co-8m
 for xen-devel@lists.xenproject.org; Sat, 30 May 2026 07:25:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTE4d-00CtyZ-5L
 for xen-devel@lists.xenproject.org; Sat, 30 May 2026 09:25:35 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a1a90ac-2eae-0a2a0a5409dd-0a2a4505b7c4-26
 for <xen-devel@lists.xenproject.org>; Sat, 30 May 2026 09:25:34 +0200
Received: from [209.85.208.45] (helo=mail-ed1-f45.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 6a1a90ee-aaa8-0a2a45050019-d155d02da9a8-3
 for <xen-devel@lists.xenproject.org>; Sat, 30 May 2026 09:25:34 +0200
Received: by mail-ed1-f45.google.com with SMTP id
 4fb4d7f45d1cf-68c3421b009so1579271a12.1
 for <xen-devel@lists.xenproject.org>; Sat, 30 May 2026 00:25:34 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.204])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-beb2fe951f3sm25648966b.58.2026.05.30.00.25.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 30 May 2026 00:25:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1780125934; x=1780730734; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=ujyUOu2uJuSvxLHMeA1aAA3Td4CN/Dp7mv9juA6peus=;
        b=Nt2pvOoxV49ZBPe3HmI+b1TYNdC9lBtLprCvr7TVJ7Dv+05pp+sp6Cxq8p8VmfVVM3
         sMIjLDvILSMN/4MTKUz3ca1JrO7t6/440L9Tjl1fZGgoiGPuHFNl+rUm1a8+HWr0+dtL
         jlHFJHCnRhs6MLAJtmzoa3v9AidnDktGEHgTgcIDTxzRZatGbfkfCJ4M/9PE/n37G3BU
         ckwzLQCNmckU2cPlElq7FdOGUdTZNsbgNKc/TWqXhitQOwJWe/az1HdeHsKVryJhQT+S
         DqB4+fegmF2n8h9cLGApq9k0ufaAUtCIEHBEGiTtqoLMiwehlKD8HW9pVCkqqh1QZBm1
         Yu0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780125934; x=1780730734;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ujyUOu2uJuSvxLHMeA1aAA3Td4CN/Dp7mv9juA6peus=;
        b=WdbFvbkUkFv1q9cwco4j4vLfGiYaDCjTh3cTKKdLOeoWy65Xpib54Fik4/K7iO9uNE
         +tDskRzCAoDRVDIigUGiG0gXKcYOaLBgf9wK4PJx1uT1nRklpVxhxugWI9mNXOmlDKY/
         v6lceWtIfU3Ohce3KJlnhVd8H8xALO+y+rzIrJecfN1G5rOpO/j+CCLuynTRebhE2cae
         WBLCu0GpLLtifuiBUzubwqB107bUO7ibSginx+0dB+8Hud0EQuAUw8ueTgCXiEK8g9QN
         lsvleDzVpnM5ZOP64M38Qahd9kE0+g19nTo/hfIb059VGO0tb7/MaAt1OtMfyS+eDjm7
         0VEw==
X-Gm-Message-State: AOJu0YyWXxvC4obkmCSQt9U3160zCwHt8iHSjK0ATnZJ8CnoZTgsikrE
	GTwgr5jF9FeAAYPV9TTtC6Msw8SzvDbDkpVlSaQQaEpbzjCuCPbaR4GNknhQEg==
X-Gm-Gg: Acq92OE314uc7C8daufelPMlq0IGnN7FE1/OmA1aH0x0FAZ6x33RY1TCNVU+e+6wShE
	kuPLqNQVfw8A7jeSR+zE/xs9PJ0tptWR6FH8nG2GPGYg+XjZkBPeMmLmNrhabfA/6MEOobyvGpx
	rvTtR1dtdtrhJaLohNpeZbZ/SijVVFAfma2xu0ZZgSdnm/5fndg92fAnR13CppfluFba/6tgzcW
	1gcMawzBEwWHDnqW2irvKYeR3tB9IrAPeprRMGSx+OCY3/20o63wgfN4CUKwJN5MXvABUsOUxVM
	gs7YFTMVp8iHUkHsrPLbcw0wsoPvgI9eEW2IOY6QYWytm/t/WE0K3Hmj9jgat+YfEgnvPMDBgVd
	hmxzliQhkA8K5BJQwxpBjpHj4RYLQYwi4Lr6UehtAmZGoQ++txf+Py5oE0UnR2b971O6BQZPrf5
	htY6YTHtvdxD9vKExnwMcGtxQobCn2y75utu9TwQ==
X-Received: by 2002:a17:907:2da4:b0:bd4:f854:27c2 with SMTP id a640c23a62f3a-be9a78d1741mr314296666b.19.1780125933955;
        Sat, 30 May 2026 00:25:33 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Tim Deegan <tim@xen.org>,
	Dario Faggioli <dfaggioli@suse.com>,
	Juergen Gross <jgross@suse.com>,
	George Dunlap <gwd@xenproject.org>
Subject: [PATCH v3] xen/domain: make shutdown state explicit
Date: Sat, 30 May 2026 10:23:17 +0300
Message-ID: <a32975d6d5a565690ec9b9f3619a98c4362da95b.1780124807.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1780125934-D3B60443-84DD897B/0/0
X-purgate-type: clean
X-purgate-size: 16840

From: Mykola Kvach <mykola_kvach@epam.com>

The shutdown flow currently uses is_shutting_down and is_shut_down to
represent the domain shutdown lifecycle. The two flags are not mutually
exclusive: after shutdown completion is_shutting_down remains set until
domain_resume() clears both flags.

Replace the two booleans with an enum domain_shutdown_state. Keep
domain_shutting_down() as the direct replacement for the old
is_shutting_down flag: it is true once shutdown has been initiated and
remains true after completion, until domain_resume(). Add
domain_shutdown_completed() for users that need the final completed
state.

This makes the state transition explicit while avoiding a semantic split
between "in progress" and "completed" at call sites where the old code
only cared that shutdown had started and had not yet been reset by
domain_resume().

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v3:
- Keep domain_shutting_down() as a direct replacement for
  is_shutting_down: true from shutdown start until domain_resume(),
  including after shutdown completion.
- Drop domain_in_shutdown_state().
- Make old is_shutting_down conversions mechanical again; use
  domain_shutdown_completed() only for old is_shut_down users.
- Keep domain_resume() returning void and leave callers unchanged.
- Drop resume-state validation and the related invalid-resume
  diagnostic, including the cached shutdown_state/shutdown_code values.
- Reword the commit message to avoid describing
  domain_shutting_down() as only the transient shutdown phase.

Changes in v2:
- Drop the shutdown reason restrictions from domain_resume(), so the
  validation remains compatible with the existing soft-reset flow.
- Use clearer helper naming for the three shutdown-state predicates.
- Document in the commit message how old is_shutting_down/is_shut_down
  users map to the new shutdown-state helpers.
- Fix label indentation noted during review.

Link to discussion:
  https://patchew.org/Xen/cover.1756392094.git.mykola._5Fkvach@epam.com/bb53d9911b00879c7b25f5258d0e3e48005671f9.1756392094.git.mykola._5Fkvach@epam.com/#a64cff9f-df5f-467b-a944-74e803c64ab9@suse.com
---
 xen/arch/x86/hvm/viridian/time.c |  2 +-
 xen/arch/x86/mm.c                |  2 +-
 xen/arch/x86/mm/hap/hap.c        |  2 +-
 xen/arch/x86/mm/shadow/common.c  |  5 +++--
 xen/arch/x86/mm/shadow/multi.c   | 12 +++++++-----
 xen/common/domain.c              | 20 ++++++++++----------
 xen/common/domctl.c              |  2 +-
 xen/common/sched/core.c          |  2 +-
 xen/drivers/passthrough/iommu.c  |  8 ++++----
 xen/drivers/passthrough/pci.c    |  2 +-
 xen/include/xen/sched.h          | 23 +++++++++++++++++++----
 11 files changed, 49 insertions(+), 31 deletions(-)

diff --git a/xen/arch/x86/hvm/viridian/time.c b/xen/arch/x86/hvm/viridian/time.c
index 9311858d63..cf57af263a 100644
--- a/xen/arch/x86/hvm/viridian/time.c
+++ b/xen/arch/x86/hvm/viridian/time.c
@@ -102,7 +102,7 @@ static void time_ref_count_thaw(const struct domain *d)
     struct viridian_domain *vd = d->arch.hvm.viridian;
     struct viridian_time_ref_count *trc = &vd->time_ref_count;
 
-    if ( d->is_shutting_down ||
+    if ( domain_shutting_down(d) ||
          test_and_set_bit(_TRC_running, &trc->flags) )
         return;
 
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index a158379e77..c8ce166d6e 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -1219,7 +1219,7 @@ void put_page_from_l1e(l1_pgentry_t l1e, struct domain *l1e_owner)
      */
 #if _PAGE_GNTTAB
     if ( (l1e_get_flags(l1e) & _PAGE_GNTTAB) &&
-         !l1e_owner->is_shutting_down && !l1e_owner->is_dying )
+         !domain_shutting_down(l1e_owner) && !l1e_owner->is_dying )
     {
         gprintk(XENLOG_WARNING,
                 "Attempt to implicitly unmap %pd's grant PTE %" PRIpte "\n",
diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index 5ccb80bda5..0ede4181a0 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -414,7 +414,7 @@ static mfn_t hap_make_monitor_table(struct vcpu *v)
 
  oom:
     if ( !d->is_dying &&
-         (!d->is_shutting_down || d->shutdown_code != SHUTDOWN_crash) )
+         (!domain_shutting_down(d) || d->shutdown_code != SHUTDOWN_crash) )
     {
         printk(XENLOG_G_ERR "%pd: out of memory building monitor pagetable\n",
                d);
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index ed698fa90b..c956b4840b 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -164,7 +164,7 @@ void shadow_promote(struct domain *d, mfn_t gmfn, unsigned int type)
     /* We should never try to promote a gmfn that has writeable mappings */
     ASSERT((page->u.inuse.type_info & PGT_type_mask) != PGT_writable_page
            || (page->u.inuse.type_info & PGT_count_mask) == 0
-           || d->is_shutting_down);
+           || domain_shutting_down(d));
 
     /* Is the page already shadowed? */
     if ( !test_and_set_bit(_PGC_shadowed_pt, &page->count_info) )
@@ -442,7 +442,8 @@ bool shadow_prealloc(struct domain *d, unsigned int type, unsigned int count)
         count += paging_logdirty_levels();
 
     ret = _shadow_prealloc(d, count);
-    if ( !ret && (!d->is_shutting_down || d->shutdown_code != SHUTDOWN_crash) )
+    if ( !ret && (!domain_shutting_down(d) ||
+                  d->shutdown_code != SHUTDOWN_crash) )
         /*
          * Failing to allocate memory required for shadow usage can only result in
          * a domain crash, do it here rather that relying on every caller to do it.
diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c
index 2990cee869..632a83a78e 100644
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -2370,7 +2370,8 @@ static int cf_check sh_page_fault(
      * already used for some special purpose (ioreq pages, or granted pages).
      * If that happens we'll have killed the guest already but it's still not
      * safe to propagate entries out of the guest PT so get out now. */
-    if ( unlikely(d->is_shutting_down && d->shutdown_code == SHUTDOWN_crash) )
+    if ( unlikely(domain_shutting_down(d) &&
+                  d->shutdown_code == SHUTDOWN_crash) )
     {
         SHADOW_PRINTK("guest is shutting down\n");
         goto propagate;
@@ -2480,7 +2481,7 @@ static int cf_check sh_page_fault(
 #if GUEST_PAGING_LEVELS == 3
         sh_update_cr3(v, false);
 #else
-        ASSERT(d->is_shutting_down);
+        ASSERT(domain_shutting_down(d));
         sh_trace_va(TRC_SHADOW_DOMF_DYING, va);
 #endif
         paging_unlock(d);
@@ -2494,7 +2495,8 @@ static int cf_check sh_page_fault(
          && ft == ft_demand_write )
         sh_unsync(v, gmfn);
 
-    if ( unlikely(d->is_shutting_down && d->shutdown_code == SHUTDOWN_crash) )
+    if ( unlikely(domain_shutting_down(d) &&
+                  d->shutdown_code == SHUTDOWN_crash) )
     {
         /* We might end up with a crashed domain here if
          * sh_remove_shadows() in a previous sh_resync() call has
@@ -3265,7 +3267,7 @@ static pagetable_t cf_check sh_update_cr3(struct vcpu *v, bool noflush)
                                        sh_make_shadow);
     if ( unlikely(pagetable_is_null(v->arch.paging.shadow.shadow_table[0])) )
     {
-        ASSERT(d->is_dying || d->is_shutting_down);
+        ASSERT(d->is_dying || domain_shutting_down(d));
         return old_entry;
     }
     if ( !paging_mode_external(d) && !is_pv_32bit_domain(d) )
@@ -3332,7 +3334,7 @@ static pagetable_t cf_check sh_update_cr3(struct vcpu *v, bool noflush)
     ASSERT(pagetable_is_null(old_entry));
     if ( unlikely(pagetable_is_null(v->arch.paging.shadow.shadow_table[0])) )
     {
-        ASSERT(d->is_dying || d->is_shutting_down);
+        ASSERT(d->is_dying || domain_shutting_down(d));
         return old_entry;
     }
 #else
diff --git a/xen/common/domain.c b/xen/common/domain.c
index bb9e210c28..473b7f8e3f 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -191,7 +191,7 @@ static void set_domain_state_info(struct xen_domctl_get_domain_state *info,
                                   const struct domain *d)
 {
     info->state = XEN_DOMCTL_GETDOMSTATE_STATE_EXIST;
-    if ( d->is_shut_down )
+    if ( domain_shutdown_completed(d) )
         info->state |= XEN_DOMCTL_GETDOMSTATE_STATE_SHUTDOWN;
     if ( d->is_dying == DOMDYING_dying )
         info->state |= XEN_DOMCTL_GETDOMSTATE_STATE_DYING;
@@ -282,14 +282,14 @@ static void __domain_finalise_shutdown(struct domain *d)
 
     BUG_ON(!spin_is_locked(&d->shutdown_lock));
 
-    if ( d->is_shut_down )
+    if ( domain_shutdown_completed(d) )
         return;
 
     for_each_vcpu ( d, v )
         if ( !v->paused_for_shutdown )
             return;
 
-    d->is_shut_down = 1;
+    d->shutdown_state = DOMSHUTDOWN_complete;
     domain_changed_state(d);
     if ( (d->shutdown_code == SHUTDOWN_suspend) && d->suspend_evtchn )
         evtchn_send(d, d->suspend_evtchn);
@@ -303,7 +303,7 @@ static void vcpu_check_shutdown(struct vcpu *v)
 
     spin_lock(&d->shutdown_lock);
 
-    if ( d->is_shutting_down )
+    if ( domain_shutting_down(d) )
     {
         if ( !v->paused_for_shutdown )
             vcpu_pause_nosync(v);
@@ -1356,7 +1356,7 @@ int domain_kill(struct domain *d)
 
 void __domain_crash(struct domain *d)
 {
-    if ( d->is_shutting_down )
+    if ( domain_shutting_down(d) )
     {
         /* Print nothing: the domain is already shutting down. */
     }
@@ -1394,13 +1394,13 @@ int domain_shutdown(struct domain *d, u8 reason)
     if ( is_hardware_domain(d) )
         hwdom_shutdown(reason);
 
-    if ( d->is_shutting_down )
+    if ( domain_shutting_down(d) )
     {
         spin_unlock(&d->shutdown_lock);
         return 0;
     }
 
-    d->is_shutting_down = 1;
+    d->shutdown_state = DOMSHUTDOWN_in_progress;
 
     smp_mb(); /* set shutdown status /then/ check for per-cpu deferrals */
 
@@ -1435,7 +1435,7 @@ void domain_resume(struct domain *d)
 
     spin_lock(&d->shutdown_lock);
 
-    d->is_shutting_down = d->is_shut_down = 0;
+    d->shutdown_state = DOMSHUTDOWN_none;
 
     arch_domain_resume(d);
 
@@ -1460,7 +1460,7 @@ int vcpu_start_shutdown_deferral(struct vcpu *v)
 
     v->defer_shutdown = 1;
     smp_mb(); /* set deferral status /then/ check for shutdown */
-    if ( unlikely(v->domain->is_shutting_down) )
+    if ( unlikely(domain_shutting_down(v->domain)) )
         vcpu_check_shutdown(v);
 
     return v->defer_shutdown;
@@ -1470,7 +1470,7 @@ void vcpu_end_shutdown_deferral(struct vcpu *v)
 {
     v->defer_shutdown = 0;
     smp_mb(); /* clear deferral status /then/ check for shutdown */
-    if ( unlikely(v->domain->is_shutting_down) )
+    if ( unlikely(domain_shutting_down(v->domain)) )
         vcpu_check_shutdown(v);
 }
 
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index b969f5ada6..5594fc72d8 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -86,7 +86,7 @@ void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info)
 
     info->flags = (info->nr_online_vcpus ? flags : 0) |
         ((d->is_dying == DOMDYING_dead) ? XEN_DOMINF_dying     : 0) |
-        (d->is_shut_down                ? XEN_DOMINF_shutdown  : 0) |
+        (domain_shutdown_completed(d)   ? XEN_DOMINF_shutdown  : 0) |
         (d->controller_pause_count > 0  ? XEN_DOMINF_paused    : 0) |
         (d->debugger_attached           ? XEN_DOMINF_debugged  : 0) |
         (is_xenstore_domain(d)          ? XEN_DOMINF_xs_domain : 0) |
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 8e2b75bc35..9ac00e4c0d 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -1539,7 +1539,7 @@ static void cf_check domain_watchdog_timeout(void *data)
 
     BUILD_BUG_ON(alignof(*d) < PAGE_SIZE);
 
-    if ( d->is_shutting_down || d->is_dying )
+    if ( domain_shutting_down(d) || d->is_dying )
         return;
 
     printk("Watchdog timer %u fired for %pd\n", id, d);
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index c9425d6971..4b22ecfe65 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -355,7 +355,7 @@ long iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
         if ( likely(!rc) )
             continue;
 
-        if ( !d->is_shutting_down && printk_ratelimit() )
+        if ( !domain_shutting_down(d) && printk_ratelimit() )
             printk(XENLOG_ERR
                    "d%d: IOMMU mapping dfn %"PRI_dfn" to mfn %"PRI_mfn" failed: %d\n",
                    d->domain_id, dfn_x(dfn), mfn_x(mfn), rc);
@@ -427,7 +427,7 @@ long iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,
         if ( likely(!err) )
             continue;
 
-        if ( !d->is_shutting_down && printk_ratelimit() )
+        if ( !domain_shutting_down(d) && printk_ratelimit() )
             printk(XENLOG_ERR
                    "d%d: IOMMU unmapping dfn %"PRI_dfn" failed: %d\n",
                    d->domain_id, dfn_x(dfn), err);
@@ -492,7 +492,7 @@ int iommu_iotlb_flush(struct domain *d, dfn_t dfn, unsigned long page_count,
                     flush_flags);
     if ( unlikely(rc) )
     {
-        if ( !d->is_shutting_down && printk_ratelimit() )
+        if ( !domain_shutting_down(d) && printk_ratelimit() )
             printk(XENLOG_ERR
                    "d%d: IOMMU IOTLB flush failed: %d, dfn %"PRI_dfn", page count %lu flags %x\n",
                    d->domain_id, rc, dfn_x(dfn), page_count, flush_flags);
@@ -517,7 +517,7 @@ int iommu_iotlb_flush_all(struct domain *d, unsigned int flush_flags)
                     flush_flags | IOMMU_FLUSHF_all);
     if ( unlikely(rc) )
     {
-        if ( !d->is_shutting_down && printk_ratelimit() )
+        if ( !domain_shutting_down(d) && printk_ratelimit() )
             printk(XENLOG_ERR
                    "d%d: IOMMU IOTLB flush all failed: %d\n",
                    d->domain_id, rc);
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 464bb0fee4..5dbee61900 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -1746,7 +1746,7 @@ void iommu_dev_iotlb_flush_timeout(struct domain *d, struct pci_dev *pdev)
 
     pdev->broken = true;
 
-    if ( !d->is_shutting_down && printk_ratelimit() )
+    if ( !domain_shutting_down(d) && printk_ratelimit() )
         printk(XENLOG_ERR "dom%d: ATS device %pp flush failed\n",
                d->domain_id, &pdev->sbdf);
     if ( !is_hardware_domain(d) )
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 00db1da12f..22a0deb31f 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -222,7 +222,7 @@ struct vcpu
     bool             force_context_switch;
     /* Require shutdown to be deferred for some asynchronous operation? */
     bool             defer_shutdown;
-    /* VCPU is paused following shutdown request (d->is_shutting_down)? */
+    /* VCPU is paused following a domain shutdown request? */
     bool             paused_for_shutdown;
     /* VCPU need affinity restored */
     uint8_t          affinity_broken;
@@ -382,6 +382,12 @@ struct domain_console {
     char buf[256];
 };
 
+enum domain_shutdown_state {
+    DOMSHUTDOWN_none,
+    DOMSHUTDOWN_in_progress,
+    DOMSHUTDOWN_complete,
+};
+
 struct domain
 {
     domid_t          domain_id;
@@ -552,10 +558,9 @@ struct domain
     struct rangeset *iomem_caps;
     struct rangeset *irq_caps;
 
-    /* Guest has shut down (inc. reason code)? */
+    /* Guest shutdown state and associated reason code. */
     spinlock_t       shutdown_lock;
-    bool             is_shutting_down; /* in process of shutting down? */
-    bool             is_shut_down;     /* fully shut down? */
+    enum domain_shutdown_state shutdown_state;
 #define SHUTDOWN_CODE_INVALID ~0u
     unsigned int     shutdown_code;
 
@@ -674,6 +679,16 @@ struct domain
     unsigned int pending_scrub_index;
 } __aligned(PAGE_SIZE);
 
+static inline bool domain_shutting_down(const struct domain *d)
+{
+    return d->shutdown_state != DOMSHUTDOWN_none;
+}
+
+static inline bool domain_shutdown_completed(const struct domain *d)
+{
+    return d->shutdown_state == DOMSHUTDOWN_complete;
+}
+
 static inline struct page_list_head *page_to_list(
     struct domain *d, const struct page_info *pg)
 {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat May 30 18:19:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 May 2026 18:19:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323049.1589054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTOHD-00006H-S6; Sat, 30 May 2026 18:19:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323049.1589054; Sat, 30 May 2026 18:19:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTOHD-000069-Mu; Sat, 30 May 2026 18:19:15 +0000
Received: by outflank-mailman (input) for mailman id 1323049;
 Sat, 30 May 2026 16:47:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ludloff@gmail.com>) id 1wTMqs-0003gl-4D
 for xen-devel@lists.xenproject.org; Sat, 30 May 2026 16:47:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTMqr-00GoxY-1o
 for xen-devel@lists.xenproject.org; Sat, 30 May 2026 18:47:57 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ludloff@gmail.com>)
 id 6a1b14b6-e002-0a2a0a5209dd-0a2a4509ecfe-2
 for <xen-devel@lists.xenproject.org>; Sat, 30 May 2026 18:47:56 +0200
Received: from [209.85.218.44] (helo=mail-ej1-f44.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <ludloff@gmail.com>)
 id 6a1b14bc-2497-0a2a45090019-d155da2cc99b-3
 for <xen-devel@lists.xenproject.org>; Sat, 30 May 2026 18:47:56 +0200
Received: by mail-ej1-f44.google.com with SMTP id
 a640c23a62f3a-bdbac72ac1fso1782475366b.3
 for <xen-devel@lists.xenproject.org>; Sat, 30 May 2026 09:47:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Cc:To:Subject:Message-ID:Date:From:Reply-To:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1780159676; cv=none;
        d=google.com; s=arc-20240605;
        b=ZxPZ0cDgSCkzMVF0ftm3KBiK4Z7VXILbOU2q4QH2Yx1i0ajb8oAwpYi8xJsXEzE3Up
         32lyFqXVVOyP8HyP6SLvt05oVh9s0YYvpOcHqj/vVlQD1X5YurcOjP+PLcdPLgiyoJ71
         tNV8Xch1tXJq7SwIt0rLYow68MeLHElVcxzxjarLmtcL3s05PoXKMknPQ0VGkUPNM91j
         xDBR3ij2tboGq/v/0Cx4PokCZV4FnN58mHUTU7zCm6LMXxrQZGLkP1akdRQMwD/po8oE
         MPWrqwokXggbZgmTox30xyKu6a4LFELQSpmX+AgZUeVlmleqxq3MikZBnVO+nMObkibK
         2+Mw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=cc:to:subject:message-id:date:from:reply-to:mime-version
         :dkim-signature;
        bh=uDjMWTL59bSew6EuBBjyiKQsK4J1StRuWvcVY3hIZ9s=;
        fh=nQ0n5IRvn5oDuL13sJT0ECbnSOSXNW/e0yo4t0+LRNg=;
        b=csS7lH2nuHhpaUyL3cIzrKddk1MzXA3fPvmRBG6IYJDHKhCXan+Jl4CbVs9i5zaTVq
         SxyLOG7ylJfMBH6g/e0TB+IFAGS4RUO/E5PsvXILZH8/bzU8GQAUvvEKCFVX2raFj6i3
         UYrOB3gz0YbaAIZwDsTnBXmIAsQCyE9Z/glQGvaijLev+ufBHgH7K9NfmNbS8o/GlJ36
         kT76hVVhWIK+lyZpn1VGCZ7YfmUCL7JpYTSzk8+CSvojKRnrDWOnLtR/4IS0Rth4imFs
         9G7oOQy+DZqvOnaIaSvjgIUwU9M0owVfhWyiGCnFHOBC3Wpftu/QTVOPehDN4cshmTHk
         a4Xg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1780159676; x=1780764476; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:reply-to:mime-version:from:to:cc
         :subject:date:message-id:reply-to;
        bh=uDjMWTL59bSew6EuBBjyiKQsK4J1StRuWvcVY3hIZ9s=;
        b=KgO/mPdl6CyR+rn+YiB9BLdcgHbniv91JJz2syR+dF5Pi/CC+NeFEBhFn7xqbNDSYR
         nEcVcV+i8oPjMpw/TNTRmG6IO79SB0ilYVWbEQRT+sfiyEZXCWAGuvGEjCzK6RPhqI0M
         +GkGLCnyU8SgPQClRvjkHN8EV97soA5Qg/d/8uBH8jEcfeyF/6/rEaT/rgBx2NBp/ktm
         /aFoaZljpIHDrQ4K9/3+qcqn1VskkELkiBpyU3SvdjZQESas3Yyxhvge4dToAc/pkqwA
         6x1/4aRYpjxk0YXZcwBnQg+dL0PU6RUOQff98Ucty7vpGhMoF/dhgfdTOiUHHKwYQAZP
         21WA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780159676; x=1780764476;
        h=cc:to:subject:message-id:date:from:reply-to:mime-version:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=uDjMWTL59bSew6EuBBjyiKQsK4J1StRuWvcVY3hIZ9s=;
        b=JkRimZM9vZIZBLIH9phU6deUHd19AK16h/I1F0F0Rk7ghjNDvGYtaeJoZWO38xmwBK
         etEuKVW+46+S+78+2f4Mp+gwUwKRQT1CojFBJqJNESUVwRU4e9acjsKq2U0Nw2boWDnL
         AfKAmvjTRrEQsJesNwp9cNW0RN1jIXQuQG6Y3IzZxqLMDCc/lYk9/326Z5dOr+tXd0SL
         wXp9OTACr9z21IC5eP0w4Aih/HEd/ZvcxEcAfEVOYXdc2VHzT6w+i7ODZ83kY5Q9FjzA
         Z/oCLED+hzKrlo3bwRBU5Nx38g4XsMeTl/Q9T+prCjTrS8edoTeRcO4Zb2wsV7AxOCS/
         JwVg==
X-Forwarded-Encrypted: i=1; AFNElJ+Pw/4C4hlSi4XAbJD7JoQklTTg9KZCJiB/82bmgwQ+8aeK8c5XTJKdToMSrjLCyX/X/mIQLx1IlQo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxts8+46BVoUTKdBtenOE63Jz16yI+OuXH8VSpfcwfaH3hnB0ZC
	1/Ke9+9CUAzIAbKNmhiTlq67ULy30b3L6A7i5vjKdXB42lFhIa0IEbssBf8icDaWUmnpRCpp/NZ
	mtzzyCwSwQZ4gvX+0SjjnB38yRKo6hhE=
X-Gm-Gg: Acq92OE920v1GFvHfkvMRkqvozPEU142TcMBE+LSgtijV075FQji28Src0Eu7F58s9S
	4bKuBKtV12wf1IZ0SnDQozt+oTvcZ2sDcIXL/Pudy48ebb5/Tueu6FPm72qIAASNOrAx+jSakZh
	Ga/Rm6HqDGp1YEkFBUdROgkYh8fLZNu9tWAvP6buEevTwvYeBMIkHI3RqD7dXNPsdsLDr9DbiXH
	0+Cx5PkByfnahvVCHTNS7fsOr/LS+HlVl/g651C48M1BiuZ8YwEnuOMgW0wqdEb5DJJIXhIQufe
	VaAtKQH0A54+AzTGl3NnAOnIh7aySMWx3AyfEoxxlbAxVzsLMw==
X-Received: by 2002:a17:907:80a:b0:bae:d29c:4e28 with SMTP id
 a640c23a62f3a-beab3850c0emr227580166b.12.1780159676193; Sat, 30 May 2026
 09:47:56 -0700 (PDT)
MIME-Version: 1.0
Reply-To: ludloff@gmail.com
From: Christian Ludloff <ludloff@gmail.com>
Date: Sat, 30 May 2026 09:47:44 -0700
X-Gm-Features: AVHnY4LzRI4mtM2MVMA9vVPgTReaIAtSfV8wr74SnOQ4vnVCBcmxdNjiRFE8TOw
Message-ID: <CAKSQd8XBoaUf7MyvPJCv_DHeuEd-DtRYb5GnAofkbJTP89LLMw@mail.gmail.com>
Subject: Re: [PATCH v4 15/47] KVM: x86: Officially define CPUID 0x40000010 as
 PV Timing Info (TSC and Bus)
To: Sean Christopherson <seanjc@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Kiryl Shutsemau <kas@kernel.org>, "K. Y. Srinivasan" <kys@microsoft.com>, 
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Ajay Kaher <ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>, 
	Jan Kiszka <jan.kiszka@siemens.com>, Andy Lutomirski <luto@kernel.org>, 
	Peter Zijlstra <peterz@infradead.org>, Juergen Gross <jgross@suse.com>, 
	Daniel Lezcano <daniel.lezcano@kernel.org>, John Stultz <jstultz@google.com>, 
	"H. Peter Anvin" <hpa@zytor.com>, Rick Edgecombe <rick.p.edgecombe@intel.com>, 
	Vitaly Kuznetsov <vkuznets@redhat.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Stephen Boyd <sboyd@kernel.org>, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, 
	linux-coco@lists.linux.dev, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, xen-devel@lists.xenproject.org, 
	David Woodhouse <dwmw@amazon.co.uk>, Tom Lendacky <thomas.lendacky@amd.com>, 
	Nikunj A Dadhania <nikunj@amd.com>, David Woodhouse <dwmw2@infradead.org>, 
	Michael Kelley <mhklinux@outlook.com>, Thomas Gleixner <tglx@linutronix.de>, 
	bcm-kernel-feedback-list@broadcom.com
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-bad1c0/1780159676-8A38AA53-A06BA55E/0/0
X-purgate-type: clean
X-purgate-size: 323

> + *  # EAX: (Virtual) TSC frequency in kHz.
> + *  # EBX: (Virtual) Bus (local APIC timer) frequency in kHz.
> + *  # ECX, EDX: Reserved (must be zero).

Can someone from Broadcom please speak up as to
what a non-ECX value signifies for their HV? (Asking
because I see a value of 2, not a must-be-zero.)

--
C.


From xen-devel-bounces@lists.xenproject.org Sat May 30 18:26:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 May 2026 18:26:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323105.1589063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTONt-0001o4-DQ; Sat, 30 May 2026 18:26:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323105.1589063; Sat, 30 May 2026 18:26:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTONt-0001nx-A5; Sat, 30 May 2026 18:26:09 +0000
Received: by outflank-mailman (input) for mailman id 1323105;
 Sat, 30 May 2026 18:26:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wTONp-0001mm-ES
 for xen-devel@lists.xenproject.org; Sat, 30 May 2026 18:26:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTONo-00C4mB-CJ
 for xen-devel@lists.xenproject.org; Sat, 30 May 2026 20:26:04 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a1b2b53-e002-0a2a0a5209dd-0a2a4502cabc-32
 for <xen-devel@lists.xenproject.org>; Sat, 30 May 2026 20:26:04 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a1b2bba-af86-0a2a45020019-d561b338baea-3
 for <xen-devel@lists.xenproject.org>; Sat, 30 May 2026 20:26:03 +0200
Received: from maestria.local.igalia.com ([192.168.10.14] helo=mail.igalia.com)
 by fanzine2.igalia.com with esmtps 
 (Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wTONE-00ALEi-Em; Sat, 30 May 2026 20:25:28 +0200
Received: from webmail.service.igalia.com ([192.168.21.45])
 by mail.igalia.com with esmtp (Exim)
 id 1wTONC-003hJ2-2f; Sat, 30 May 2026 20:25:28 +0200
Received: from localhost ([127.0.0.1] helo=webmail.igalia.com)
 by webmail.service.igalia.com with esmtp (Exim 4.98.2)
 (envelope-from <mfo@igalia.com>) id 1wTONB-00000005YVY-1bPX;
 Sat, 30 May 2026 20:25:25 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Content-Transfer-Encoding:Content-Type:Message-ID:References:In-Reply-To:Subject:Cc:To:From:Date:MIME-Version"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Content-Transfer-Encoding:Content-Type:Message-ID:References:
	In-Reply-To:Subject:Cc:To:From:Date:MIME-Version:Sender:Reply-To:Content-ID:
	Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
	:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
	List-Post:List-Owner:List-Archive;
	bh=+CEMRaJFugQuRP0/DJTzv+8chqmTJilMImwXMol396E=; b=BR3yV6wgeIxWYy5xNZ+xGvXXS7
	02mPLhQgHJHn9BspRzTnC/IQvF+JGiFsFf2dUclCkPtWfbZ3dI1KvC4JytpgZzEHagH4Z/dAcGiBt
	rRNwIqjzQiHXUPQw5IGP4QQ+JobrnhM377GGSuAIw5crru1gwV6c5db0f0uM5jjf4yQgLzvY05b6W
	nGi7bTAwAgysJJDvp5XGHtmL56IA0Ob6gy5nxUwo3SM9Pkv59buwRJ8TFqXTOoT+WyMf/o4EJogcQ
	erTteuHigGB4uQkUubfJ0Ul6ITZ/pqB0G3lWZ6C71yx1edTTtdwZnNBtB5Tl1NVteGnR3BRDk3ZdU
	ybdqi6ZQ==;
MIME-Version: 1.0
Date: Sat, 30 May 2026 15:25:25 -0300
From: Mauricio Faria de Oliveira <mfo@igalia.com>
To: Borislav Petkov <bp@alien8.de>
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Dave
 Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, "H. Peter Anvin"
 <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Alexey Dobriyan
 <adobriyan@gmail.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 kernel-dev@igalia.com, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, kernel test robot <lkp@intel.com>
Subject: Re: [PATCH v4 0/4] x86/pvh: fix unbootable VMs again (PVH + KASAN)
In-Reply-To: <20260527204736.GBahdYaKk6kAkIUYE3@fat_crate.local>
References: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
 <20260527204736.GBahdYaKk6kAkIUYE3@fat_crate.local>
Message-ID: <274609541a0c7c6b49b386001967dd2b@igalia.com>
X-Sender: mfo@igalia.com
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-Spam-Report: NO, Score=-2.2, Tests=ALL_TRUSTED=-3,BAYES_50=0.8
X-Spam-Score: -21
X-Spam-Bar: --
X-purgate-ID: tlsNG-720697/1780165564-8057B161-0EE46CF7/0/0
X-purgate-type: clean
X-purgate-size: 1811

Thanks for having a look at this.

On 2026-05-27 17:47, Borislav Petkov wrote:
> On Tue, May 26, 2026 at 11:52:32AM -0300, Mauricio Faria de Oliveira wrote:
>> The issue of unbootable VMs with CONFIG_PVH due to CONFIG_KASAN is back.
> 
> ... and we care about that particular configuration because...?

PVH and KASAN can be enabled independently for their own purposes
(startup entry point and debugging), but when combined, KASAN might
break booting via the PVH entry point. There are precedents for
disabling KASAN instrumentation in specific code paths, including this
one (see listed commits), so addressing this issue/regression seems
reasonable.

In this instance, the use case is to speed up the dev-test cycle when
debugging on VMs: PVH allows booting directly from vmlinux, avoiding the
need to build/compress and decompress bzImage, while KASAN helps detect
issues early.

> 
>>  arch/x86/boot/string.c               |  6 ++----
>>  arch/x86/include/asm/cpuid/api.h     |  2 +-
>>  arch/x86/include/asm/string.h        | 21 +-------------------
>>  arch/x86/include/asm/string_inline.h | 37 ++++++++++++++++++++++++++++++++++++
>>  arch/x86/platform/pvh/enlighten.c    |  3 ++-
>>  5 files changed, 43 insertions(+), 26 deletions(-)
> 
> I fail to see justification for those gymnastics.

Briefly, this is a side effect of reusing code from 'boot/string.c'
through <asm/string.h>, which introduces additional complications;
please see patch 1 for details.

These complications could be avoided by not reusing that code and
instead adding slightly duplicated code [1] directly to <asm/string.h>,
if that is preferred. 

Please let me know your thoughts.

Thanks,

[1]
https://lore.kernel.org/all/324ef97b16f52e0ccc72f6381d1b5dd2@igalia.com/

-- 
Mauricio


From xen-devel-bounces@lists.xenproject.org Sat May 30 22:05:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 May 2026 22:05:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323177.1589073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTRoA-0005rK-1x; Sat, 30 May 2026 22:05:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323177.1589073; Sat, 30 May 2026 22:05:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTRo9-0005rD-UV; Sat, 30 May 2026 22:05:29 +0000
Received: by outflank-mailman (input) for mailman id 1323177;
 Sat, 30 May 2026 22:05:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bp@alien8.de>) id 1wTRo8-0005r7-5l
 for xen-devel@lists.xenproject.org; Sat, 30 May 2026 22:05:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTRo6-0044bt-VI
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 00:05:27 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bp@alien8.de>)
 id 6a1b5f05-bab6-0a2a0a5309dd-0a2a4507dedc-38
 for <xen-devel@lists.xenproject.org>; Sun, 31 May 2026 00:05:26 +0200
Received: from [65.109.113.108] (helo=mail.alien8.de)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bp@alien8.de>)
 id 6a1b5f26-229c-0a2a45070019-416d716ca968-3
 for <xen-devel@lists.xenproject.org>; Sun, 31 May 2026 00:05:26 +0200
Received: from localhost (localhost.localdomain [127.0.0.1])
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id BB8E340E01F9; 
 Sat, 30 May 2026 22:05:25 +0000 (UTC)
Received: from mail.alien8.de ([127.0.0.1])
 by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id Ysdnia3bs4JX; Sat, 30 May 2026 22:05:16 +0000 (UTC)
Received: from stx.tnic (unknown [IPv6:2600:1700:38ca:c00:b8a3:f58e:8829:9ca6])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest
 SHA256) (No client certificate requested)
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 4114E40E015A;
 Sat, 30 May 2026 22:05:02 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=alien8 header.d=alien8.de header.i="@alien8.de" header.h="Date:From:To:Cc:Subject:References:In-Reply-To"
X-Virus-Scanned: Debian amavisd-new at mail.alien8.de
Authentication-Results: mail.alien8.de (amavisd-new); dkim=pass (4096-bit key)
	header.d=alien8.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8;
	t=1780178715; bh=m3IFBRGWpYfiOxqY5DPx1pgyUXwj+C+/Nkh3HlDkLUU=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=jHWh7E8k2saR9udKBxbRiKvsGUXX1PQE1YcCQLWcwas8+yFS+KqaQ0c53dN1G+8Pd
	 ctJBdXvMPjZFQD7whTbgoQG4822uU9ozbbLxu0V85npj3LZB5WKn/n0TV4on98ddsY
	 koQb4/o8bKN0zmKS3dXpxDl/hLFGq04VOFMvZLRsZHuiiQ2AXTwwrX3OHmkYv5Jh2t
	 5z/EhIozSEJPxxLtfTDWdjg2nPXv+3IiPXdh21jdYN0pwA/z6tbcBS1yvopcOipSVL
	 7Usj7PIuH6Ko+ybsxBcfBS9MjMWWr5S+KUozDqPKeeJDqIsumnQVOcQ7XkL5zLTAAY
	 sYO+5ogu0meNaVc4g+zw7hTLOxvx8hDJAX7XbQvWk/Tu52ADIHI3EJejV1UjR1nrTo
	 /A1YxXAI5KJrrzuEz3YZb60k13GkdvVL4K+vSOxWkcbqCm075GwPVUhcBPZaGJTyW3
	 kPf4SCuBlBRfI+H6E6nXkr0SSUnM3FYMfLTiZQo9tuOV1b9L9JRut7zTXVjhBV5c4J
	 UMA+L6F1jV4/qVRuBLPOvL6vj72clniEAL/iAjfxtTIfvabLH4iB4NPYJpm64NIff9
	 HOWmKhXoAJc74C0N3Jhr5k/OVDFLhU8g+QVUIAD2bueE0X8/v9DAGmgYdMO5glEWsK
	 5G4UEe7v4JrWShGemSZQgkUE=
Date: Sat, 30 May 2026 15:04:53 -0700
From: Borislav Petkov <bp@alien8.de>
To: Mauricio Faria de Oliveira <mfo@igalia.com>
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
	Alexey Dobriyan <adobriyan@gmail.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, kernel-dev@igalia.com,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	kernel test robot <lkp@intel.com>
Subject: Re: [PATCH v4 0/4] x86/pvh: fix unbootable VMs again (PVH + KASAN)
Message-ID: <20260530220453.GAahtfBVv2hydidbnW@fat_crate.local>
References: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
 <20260527204736.GBahdYaKk6kAkIUYE3@fat_crate.local>
 <274609541a0c7c6b49b386001967dd2b@igalia.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <274609541a0c7c6b49b386001967dd2b@igalia.com>
X-purgate-ID: tlsNG-ef75cf/1780178726-0B175C48-2A0436CE/0/0
X-purgate-type: clean
X-purgate-size: 876

On Sat, May 30, 2026 at 03:25:25PM -0300, Mauricio Faria de Oliveira wrote:
> In this instance, the use case is to speed up the dev-test cycle when
> debugging on VMs: PVH allows booting directly from vmlinux, avoiding the
> need to build/compress and decompress bzImage, while KASAN helps detect
> issues early.

Makes sense in itself. And you can't do your use case with KVM? It has to be
Xen?

> Briefly, this is a side effect of reusing code from 'boot/string.c'
> through <asm/string.h>, which introduces additional complications;
> please see patch 1 for details.
> 
> These complications could be avoided by not reusing that code and
> instead adding slightly duplicated code [1] directly to <asm/string.h>,
> if that is preferred.

I'll take a look.

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Sat May 30 23:02:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 May 2026 23:02:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323206.1589080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTShA-0005NC-VD; Sat, 30 May 2026 23:02:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323206.1589080; Sat, 30 May 2026 23:02:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTShA-0005N4-S4; Sat, 30 May 2026 23:02:20 +0000
Received: by outflank-mailman (input) for mailman id 1323206;
 Sat, 30 May 2026 23:02:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wTSh8-0005Mv-DQ
 for xen-devel@lists.xenproject.org; Sat, 30 May 2026 23:02:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTSh7-008Bxe-Qc
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 01:02:17 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a1b6c64-bab6-0a2a0a5309dd-0a2a4508a8e4-22
 for <xen-devel@lists.xenproject.org>; Sun, 31 May 2026 01:02:17 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a1b6c78-63b5-0a2a45080019-d561b338bfe2-3
 for <xen-devel@lists.xenproject.org>; Sun, 31 May 2026 01:02:17 +0200
Received: from maestria.local.igalia.com ([192.168.10.14] helo=mail.igalia.com)
 by fanzine2.igalia.com with esmtps 
 (Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wTSgc-00AOsE-EC; Sun, 31 May 2026 01:01:46 +0200
Received: from webmail.service.igalia.com ([192.168.21.45])
 by mail.igalia.com with esmtp (Exim)
 id 1wTSga-003sTq-Bu; Sun, 31 May 2026 01:01:46 +0200
Received: from localhost ([127.0.0.1] helo=webmail.igalia.com)
 by webmail.service.igalia.com with esmtp (Exim 4.98.2)
 (envelope-from <mfo@igalia.com>) id 1wTSgZ-00000005bzp-2pEg;
 Sun, 31 May 2026 01:01:44 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Content-Transfer-Encoding:Content-Type:Message-ID:References:In-Reply-To:Subject:Cc:To:From:Date:MIME-Version"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Content-Transfer-Encoding:Content-Type:Message-ID:References:
	In-Reply-To:Subject:Cc:To:From:Date:MIME-Version:Sender:Reply-To:Content-ID:
	Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
	:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
	List-Post:List-Owner:List-Archive;
	bh=vq4azo/c2He5mOtc4mZYmsILjl/XtYZgVfnCKXgdyY0=; b=LkWZnEv22LlTLcY6fmLKiROp56
	OWvZ1LNFPJZ5PLPaVZr+ELjr+H/RPlglV0ipAwBNPcCX5K374jR3j5WZ8NZw2WcAvfyHHpZ2erGJi
	gaQ87bO7GKqJ8MMQ0jUWvlIu9vfxAs3upgeze4TvcMo8dXI01vzR7/uPZK0ZuQs7L6z5ztDs7SELn
	unogvVuaNurnticDWF2Fugy5lvZFpUaKVRkBYQa991rBD6hkZc8a6E/mWtlA5jTaCGw09k+lDx21/
	EKDQ/eCN/0RvJ+AzjTg2pUshmAH8Ur4Hs2eRPIjUfd0HlJJxoozymXKKB11A6K4Vb4GYivbEhKDll
	Cd05Gn/g==;
MIME-Version: 1.0
Date: Sat, 30 May 2026 20:01:44 -0300
From: Mauricio Faria de Oliveira <mfo@igalia.com>
To: Borislav Petkov <bp@alien8.de>
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Dave
 Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, "H. Peter Anvin"
 <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Alexey Dobriyan
 <adobriyan@gmail.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 kernel-dev@igalia.com, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, kernel test robot <lkp@intel.com>
Subject: Re: [PATCH v4 0/4] x86/pvh: fix unbootable VMs again (PVH + KASAN)
In-Reply-To: <20260530220453.GAahtfBVv2hydidbnW@fat_crate.local>
References: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
 <20260527204736.GBahdYaKk6kAkIUYE3@fat_crate.local>
 <274609541a0c7c6b49b386001967dd2b@igalia.com>
 <20260530220453.GAahtfBVv2hydidbnW@fat_crate.local>
Message-ID: <7f1af7169b4f8c90abae28cebd3e377f@igalia.com>
X-Sender: mfo@igalia.com
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-Spam-Report: NO, Score=-4.8, Tests=ALL_TRUSTED=-3,AWL=-2.550,BAYES_50=0.8
X-Spam-Score: -47
X-Spam-Bar: ----
X-purgate-ID: tlsNG-c1860d/1780182137-BEB74DB1-C41E2E8D/0/0
X-purgate-type: clean
X-purgate-size: 1100

On 2026-05-30 19:04, Borislav Petkov wrote:
> On Sat, May 30, 2026 at 03:25:25PM -0300, Mauricio Faria de Oliveira wrote:
>> In this instance, the use case is to speed up the dev-test cycle when
>> debugging on VMs: PVH allows booting directly from vmlinux, avoiding the
>> need to build/compress and decompress bzImage, while KASAN helps detect
>> issues early.
> 
> Makes sense in itself. And you can't do your use case with KVM? It has to be
> Xen?

It uses KVM, actually. 

IIUIC, the PVH entry point was originally developed for Xen, but later
QEMU support was added for KVM as well.
(found this blog post [1] with a nice summary and links about it.)

>> Briefly, this is a side effect of reusing code from 'boot/string.c'
>> through <asm/string.h>, which introduces additional complications;
>> please see patch 1 for details.
>> 
>> These complications could be avoided by not reusing that code and
>> instead adding slightly duplicated code [1] directly to <asm/string.h>,
>> if that is preferred.
> 
> I'll take a look.

Ok, thanks!

> 
> Thx.

-- 
Mauricio


From xen-devel-bounces@lists.xenproject.org Sat May 30 23:03:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 May 2026 23:03:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323212.1589089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTShr-0005oC-61; Sat, 30 May 2026 23:03:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323212.1589089; Sat, 30 May 2026 23:03:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTShr-0005o5-3K; Sat, 30 May 2026 23:03:03 +0000
Received: by outflank-mailman (input) for mailman id 1323212;
 Sat, 30 May 2026 23:03:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wTShq-0005nx-0I
 for xen-devel@lists.xenproject.org; Sat, 30 May 2026 23:03:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTShp-0063jz-DX
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 01:03:01 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a1b6c31-2eae-0a2a0a5409dd-0a2a450698cc-22
 for <xen-devel@lists.xenproject.org>; Sun, 31 May 2026 01:03:01 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a1b6ca3-7371-0a2a45060019-d561b338c592-3
 for <xen-devel@lists.xenproject.org>; Sun, 31 May 2026 01:03:00 +0200
Received: from maestria.local.igalia.com ([192.168.10.14] helo=mail.igalia.com)
 by fanzine2.igalia.com with esmtps 
 (Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wTShW-00AOt3-O5; Sun, 31 May 2026 01:02:42 +0200
Received: from webmail.service.igalia.com ([192.168.21.45])
 by mail.igalia.com with esmtp (Exim)
 id 1wTShU-003sXQ-Bo; Sun, 31 May 2026 01:02:42 +0200
Received: from localhost ([127.0.0.1] helo=webmail.igalia.com)
 by webmail.service.igalia.com with esmtp (Exim 4.98.2)
 (envelope-from <mfo@igalia.com>) id 1wTShT-00000005c0H-2nsP;
 Sun, 31 May 2026 01:02:40 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Content-Transfer-Encoding:Content-Type:Message-ID:References:In-Reply-To:Subject:Cc:To:From:Date:MIME-Version"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Content-Transfer-Encoding:Content-Type:Message-ID:References:
	In-Reply-To:Subject:Cc:To:From:Date:MIME-Version:Sender:Reply-To:Content-ID:
	Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
	:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
	List-Post:List-Owner:List-Archive;
	bh=0e1j39Y2oFVYSscT1RqTvuMxpPQ15EgNX2akOpk7I+c=; b=ZyKbv4b/FhlYIu0FsLkaQYN3C4
	Tw5ecV/XYK6/hYhF4M3Kvextrh9BUJy9/rtdAOrN8KfPjdC+kNVnsnDezMQHsaXi7HDEQxjHYp63m
	BpOAuo0CFI0370U/Os2bmDppfV56giWs12GXk4Z9aXIgyn9wjaD3qfA2ZUJ3KSp+tAmgooKb9O8vF
	S0A9msZfeiLGgpZi+V1gq8O0ahz0g4lIVjHCggRFs5U5MKR6l383pNSgqCGcR6fZUev+hFOVb67zN
	C45NXw4MULVFmyCZaaF9kNyFuzfIv50xxlAX7jFf6LNuhg5Ru00N+PVfKqYW0N7dNdzgEVKcaKaJD
	beuzu9NQ==;
MIME-Version: 1.0
Date: Sat, 30 May 2026 20:02:40 -0300
From: Mauricio Faria de Oliveira <mfo@igalia.com>
To: Borislav Petkov <bp@alien8.de>
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Dave
 Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, "H. Peter Anvin"
 <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Alexey Dobriyan
 <adobriyan@gmail.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 kernel-dev@igalia.com, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, kernel test robot <lkp@intel.com>
Subject: Re: [PATCH v4 0/4] x86/pvh: fix unbootable VMs again (PVH + KASAN)
In-Reply-To: <7f1af7169b4f8c90abae28cebd3e377f@igalia.com>
References: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
 <20260527204736.GBahdYaKk6kAkIUYE3@fat_crate.local>
 <274609541a0c7c6b49b386001967dd2b@igalia.com>
 <20260530220453.GAahtfBVv2hydidbnW@fat_crate.local>
 <7f1af7169b4f8c90abae28cebd3e377f@igalia.com>
Message-ID: <28155e57d75407a645d57e4a6f99859c@igalia.com>
X-Sender: mfo@igalia.com
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-Spam-Report: NO, Score=-4.7, Tests=ALL_TRUSTED=-3,AWL=-2.551,BAYES_50=0.8,URIBL_BLOCKED=0.001,URIBL_DBL_BLOCKED_OPENDNS=0.001,URIBL_ZEN_BLOCKED_OPENDNS=0.001
X-Spam-Score: -46
X-Spam-Bar: ----
X-purgate-ID: tlsNG-16d1c6/1780182181-8E58CD75-3A0F5103/0/0
X-purgate-type: clean
X-purgate-size: 1280

On 2026-05-30 20:01, Mauricio Faria de Oliveira wrote:
> On 2026-05-30 19:04, Borislav Petkov wrote:
>> On Sat, May 30, 2026 at 03:25:25PM -0300, Mauricio Faria de Oliveira wrote:
>>> In this instance, the use case is to speed up the dev-test cycle when
>>> debugging on VMs: PVH allows booting directly from vmlinux, avoiding the
>>> need to build/compress and decompress bzImage, while KASAN helps detect
>>> issues early.
>> 
>> Makes sense in itself. And you can't do your use case with KVM? It has to be
>> Xen?
> 
> It uses KVM, actually. 
> 
> IIUIC, the PVH entry point was originally developed for Xen, but later
> QEMU support was added for KVM as well.
> (found this blog post [1] with a nice summary and links about it.)

[1]
https://stefano-garzarella.github.io/posts/2019-08-23-qemu-linux-kernel-pvh/

>>> Briefly, this is a side effect of reusing code from 'boot/string.c'
>>> through <asm/string.h>, which introduces additional complications;
>>> please see patch 1 for details.
>>> 
>>> These complications could be avoided by not reusing that code and
>>> instead adding slightly duplicated code [1] directly to <asm/string.h>,
>>> if that is preferred.
>> 
>> I'll take a look.
> 
> Ok, thanks!
> 
>> 
>> Thx.

-- 
Mauricio


From xen-devel-bounces@lists.xenproject.org Sat May 30 23:49:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 May 2026 23:49:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323235.1589098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTTQZ-00035w-JV; Sat, 30 May 2026 23:49:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323235.1589098; Sat, 30 May 2026 23:49:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTTQZ-00035p-Gr; Sat, 30 May 2026 23:49:15 +0000
Received: by outflank-mailman (input) for mailman id 1323235;
 Sat, 30 May 2026 23:49:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <bp@alien8.de>) id 1wTTQY-00035g-EO
 for xen-devel@lists.xenproject.org; Sat, 30 May 2026 23:49:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTTQX-008GUF-AL
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 01:49:13 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <bp@alien8.de>)
 id 6a1b7777-5cb7-0a2a0a5109dd-0a2a4509b9ae-2
 for <xen-devel@lists.xenproject.org>; Sun, 31 May 2026 01:49:13 +0200
Received: from [65.109.113.108] (helo=mail.alien8.de)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <bp@alien8.de>)
 id 6a1b7778-2497-0a2a45090019-416d716cdb16-3
 for <xen-devel@lists.xenproject.org>; Sun, 31 May 2026 01:49:13 +0200
Received: from localhost (localhost.localdomain [127.0.0.1])
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 27FB440E015B; 
 Sat, 30 May 2026 23:49:12 +0000 (UTC)
Received: from mail.alien8.de ([127.0.0.1])
 by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id CuojZA2qaerR; Sat, 30 May 2026 23:49:02 +0000 (UTC)
Received: from stx.tnic (unknown [IPv6:2600:1700:38ca:c00:b8a3:f58e:8829:9ca6])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest
 SHA256) (No client certificate requested)
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id C124540E015A;
 Sat, 30 May 2026 23:48:47 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=alien8 header.d=alien8.de header.i="@alien8.de" header.h="Date:From:To:Cc:Subject:References:In-Reply-To"
X-Virus-Scanned: Debian amavisd-new at mail.alien8.de
Authentication-Results: mail.alien8.de (amavisd-new); dkim=pass (4096-bit key)
	header.d=alien8.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8;
	t=1780184941; bh=4+MFkyNyrinsu/RKn0dXUHfFSV9ybIhTXQSILLvX/Ro=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=X4grmiUmhfVbDVTs4PNwjGXhCN//Yg3GEFQycYhBCoOsmx1C+fScaEheQUEcfvIxb
	 3/pp8kzTw1HkNsiuUwrhcsP5FItKOLbOJwp1ZKHpQ//NSuT9NPLfqyqcKh3qr+e6E3
	 c5FZ/Ye20oI512sH4PUiiRZ2xebt88ystYAk34ypohAv11qXX/13aBWDVncIMuq74r
	 ybO93LfYtbG6cqjkIVCdsz3qXeWIrtA0YMEbjg0HxJ9yfu7QlX9yiLoJX6gLMR5juf
	 kNnU3AkH2L87u+1VtnLTZgOIW6OZKIz55El+FCYoyDeX1kSXMbZc40cGBKIC9fTtUK
	 oxOVf8H0t0LOnapyXLIeZkIMe21htuwRuXY3DcRi/2jVZvFDRYl01IcaBpRQncUnpn
	 N+cvg6t5WzTTz3IivMDPU1KYY/ximCN+Ot1rsapCuTkwmmP4UC3FtUDiMGCRHxRFja
	 dmw+LvnWI1cDfTTBHnhbbkfg2+t9t/GWOAeXeIUzta8Uhs9vPKfQbnCdmvgjingT7E
	 PhuS37z5LngxTun2vBBAN8YgKIOIKDjS9oNLx5jpxXAP98mbN/1QqyB2CDOqLlrBhq
	 93ZaLDkOOQNaxQsqbPji8H4mTFTRwSp/CS+UA6ElKDwz6N5G5GTrxdjPcli6OFxuNp
	 NXzBbTXN4TqlALMLWWegSzNg=
Date: Sat, 30 May 2026 16:48:40 -0700
From: Borislav Petkov <bp@alien8.de>
To: Mauricio Faria de Oliveira <mfo@igalia.com>
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
	Alexey Dobriyan <adobriyan@gmail.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, kernel-dev@igalia.com,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	kernel test robot <lkp@intel.com>
Subject: Re: [PATCH v4 1/4] x86/asm: move inline string functions to
 <asm/string_inline.h>
Message-ID: <20260530234840.GBaht3WL8L15zfNvBF@fat_crate.local>
References: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
 <20260526-pvh-kasan-inline-v4-1-a310e6a25ecd@igalia.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260526-pvh-kasan-inline-v4-1-a310e6a25ecd@igalia.com>
X-purgate-ID: tlsNG-bad1c0/1780184953-8AB8EA53-283632F6/0/0
X-purgate-type: clean
X-purgate-size: 3464

On Tue, May 26, 2026 at 11:52:33AM -0300, Mauricio Faria de Oliveira wrote:
> In a future patch, 'boot/string.c' will include inline string functions.
> 
> Using the header <asm/string.h> is problematic for a couple of reasons
> (i.e., build errors), which can be addressed, but introduce unnecessary
> complexity and regression risk (beyond these _found_ couple of reasons).
> 
> Using a new header <asm/string_inline.h> is simpler and transparent to
> existing users of <asm/string.h>, with less changes to 'boot/string.c'
> and its users (eg 'boot/compressed/string.c' and 'purgatory/purgatory.ro'),
> which minimize regression risk.
> 
> No functional change intended.
> 
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202605140922.q7IlUv7o-lkp@intel.com/
> Signed-off-by: Mauricio Faria de Oliveira <mfo@igalia.com>
> Reviewed-by: Juergen Gross <jgross@suse.com>
> 
> ---
> (*) Reasons not to include <asm/string.h> in 'boot/string.c':
> 
> 1) 'boot/string.c' is built for 16-bit/real mode thus some type and word
> size errors happen when <asm/string.h> include, e.g., <asm/string_64.h>.
> 
> This can be addressed with '#ifndef _SETUP' (defined by 'boot/Makefile').
> 
> 2) 'boot/string.c' is included by 'boot/compressed/string.c' which is
> the source of 'purgatory/string.o', linked by 'purgatory/purgatory.ro'
> (CONFIG_KEXEC_FILE).
> 
> In 64BIT, <asm/string.h> includes <asm/string_64.h>, which references
> __memset() and __memmove() with KCFI_REFERENCE(), ie, __ADDRESSABLE();
> however, 'purgatory/purgatory.ro' is not linked with implementations.
> 
> So, CONFIG_KEXEC_FILE and CONFIG_CFI without CONFIG_KASAN hit errors:
> 
>   >> ld.lld: error: undefined symbol: __memset
>      >>> referenced by string.c
>      >>>               arch/x86/purgatory/purgatory.ro:\
>                        (__UNIQUE_ID_addressable___memset_0)
>   --
>   >> ld.lld: error: undefined symbol: __memmove
>      >>> referenced by string.c
>      >>>               arch/x86/purgatory/purgatory.ro:\
>                        (__UNIQUE_ID_addressable___memmove_1)
> 
> (Note: this is not hit with CONFIG_KASAN because 'boot/compressed/string.c'
> adds aliases __memset()/__memmove() to memset()/memmove() in that case.)
> 
> This can be addressed with 'CFLAGS_string.o := -D__DISABLE_EXPORTS' so to
> disable KCFI_REFERENCE() in 'purgatory/Makefile' (it removes CC_FLAGS_CFI
> anyway).
> 
> ...
> 
> However, since a change in this series would need more changes to address
> errors it causes, it is reasonable to change the series not to cause them,
> by using a separate header with _just_ inline string functions.

This is very long-winded and it meanders across things. Write it more
disciplined, please, and formulate it such that you're writing the commit
message of a standalone patch. It should have merit on its own and not talk
about future patches and so on.

And yes, the intent to have a separate header which doesn't pull in
nasty deps between decompressor and kernel proper, is ok.

For that, we have arch/x86/include/asm/shared/ which contains functionality
shared between the two objects so I think you should move it there. It'll also
make it a "clean" header which contains solely this stuff and doesn't pull in
any other shit.

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Sat May 30 23:57:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 May 2026 23:57:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323243.1589107 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTTYs-0004nh-Ce; Sat, 30 May 2026 23:57:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323243.1589107; Sat, 30 May 2026 23:57:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTTYs-0004nZ-9U; Sat, 30 May 2026 23:57:50 +0000
Received: by outflank-mailman (input) for mailman id 1323243;
 Sat, 30 May 2026 23:57:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mfo@igalia.com>) id 1wTTYq-0004nT-Fi
 for xen-devel@lists.xenproject.org; Sat, 30 May 2026 23:57:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTTYp-0096OQ-Oj
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 01:57:47 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mfo@igalia.com>)
 id 6a1b7951-2eae-0a2a0a5409dd-0a2a4507e2e8-12
 for <xen-devel@lists.xenproject.org>; Sun, 31 May 2026 01:57:47 +0200
Received: from [213.97.179.56] (helo=fanzine2.igalia.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <mfo@igalia.com>)
 id 6a1b7978-229c-0a2a45070019-d561b338bc78-3
 for <xen-devel@lists.xenproject.org>; Sun, 31 May 2026 01:57:44 +0200
Received: from maestria.local.igalia.com ([192.168.10.14] helo=mail.igalia.com)
 by fanzine2.igalia.com with esmtps 
 (Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)
 id 1wTTYO-00APX3-4O; Sun, 31 May 2026 01:57:20 +0200
Received: from webmail.service.igalia.com ([192.168.21.45])
 by mail.igalia.com with esmtp (Exim)
 id 1wTTYL-003ubH-Lj; Sun, 31 May 2026 01:57:20 +0200
Received: from localhost ([127.0.0.1] helo=webmail.igalia.com)
 by webmail.service.igalia.com with esmtp (Exim 4.98.2)
 (envelope-from <mfo@igalia.com>) id 1wTTYK-00000005chD-46OS;
 Sun, 31 May 2026 01:57:17 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20170329 header.d=igalia.com header.i="@igalia.com" header.h="Content-Transfer-Encoding:Content-Type:Message-ID:References:In-Reply-To:Subject:Cc:To:From:Date:MIME-Version"
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;
	s=20170329; h=Content-Transfer-Encoding:Content-Type:Message-ID:References:
	In-Reply-To:Subject:Cc:To:From:Date:MIME-Version:Sender:Reply-To:Content-ID:
	Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
	:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
	List-Post:List-Owner:List-Archive;
	bh=Bg/X9f6yBi+M3ht1lgBwAQhSZSPfBcd2GOjHrohqvmU=; b=qnIO4wNx9IYcl3RIa2Apc4VNJ+
	cjBxfwb8om/Gs7YOpR/rP93sZyQ7rXqz8c95t9ldYTf551SN4jkfsP1atTEHS3bLFVP73JwnC4qHk
	1QB/gnv9V0vnBeuMN+afB0Liw/Zmje/GXWu6aRo5lajuPZBIRaf2oSKJjPNqafHBU8xPbkA/o5mVr
	IlJUzR5SE8hMhqt0J/X3YYxoVch3ElvNMyqYgfvkYadvmJpn2TJRoysvbYPS7I4sVCrhNDb4/utko
	khUBZ4QfMyP6X1RLInaopyYW2h2eViW2GmgQQepSJScYaF4HmfxKt1yeA5h6wPkvtHTFXog2Zwmoh
	ZsCSAXXw==;
MIME-Version: 1.0
Date: Sat, 30 May 2026 20:57:17 -0300
From: Mauricio Faria de Oliveira <mfo@igalia.com>
To: Borislav Petkov <bp@alien8.de>
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Dave
 Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, "H. Peter Anvin"
 <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Alexey Dobriyan
 <adobriyan@gmail.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 kernel-dev@igalia.com, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, kernel test robot <lkp@intel.com>
Subject: Re: [PATCH v4 1/4] x86/asm: move inline string functions to
 <asm/string_inline.h>
In-Reply-To: <20260530234840.GBaht3WL8L15zfNvBF@fat_crate.local>
References: <20260526-pvh-kasan-inline-v4-0-a310e6a25ecd@igalia.com>
 <20260526-pvh-kasan-inline-v4-1-a310e6a25ecd@igalia.com>
 <20260530234840.GBaht3WL8L15zfNvBF@fat_crate.local>
Message-ID: <482d866c513a0ada46b221602a0824f8@igalia.com>
X-Sender: mfo@igalia.com
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-Spam-Report: NO, Score=-4.7, Tests=ALL_TRUSTED=-3,AWL=-2.550,BAYES_50=0.8,URIBL_BLOCKED=0.001,URIBL_DBL_BLOCKED_OPENDNS=0.001,URIBL_ZEN_BLOCKED_OPENDNS=0.001
X-Spam-Score: -46
X-Spam-Bar: ----
X-purgate-ID: tlsNG-ef75cf/1780185467-08B60C48-A9DF8917/0/0
X-purgate-type: clean
X-purgate-size: 3590

On 2026-05-30 20:48, Borislav Petkov wrote:
> On Tue, May 26, 2026 at 11:52:33AM -0300, Mauricio Faria de Oliveira wrote:
>> In a future patch, 'boot/string.c' will include inline string functions.
>> 
>> Using the header <asm/string.h> is problematic for a couple of reasons
>> (i.e., build errors), which can be addressed, but introduce unnecessary
>> complexity and regression risk (beyond these _found_ couple of reasons).
>> 
>> Using a new header <asm/string_inline.h> is simpler and transparent to
>> existing users of <asm/string.h>, with less changes to 'boot/string.c'
>> and its users (eg 'boot/compressed/string.c' and 'purgatory/purgatory.ro'),
>> which minimize regression risk.
>> 
>> No functional change intended.
>> 
>> Reported-by: kernel test robot <lkp@intel.com>
>> Closes: https://lore.kernel.org/oe-kbuild-all/202605140922.q7IlUv7o-lkp@intel.com/
>> Signed-off-by: Mauricio Faria de Oliveira <mfo@igalia.com>
>> Reviewed-by: Juergen Gross <jgross@suse.com>
>> 
>> ---
>> (*) Reasons not to include <asm/string.h> in 'boot/string.c':
>> 
>> 1) 'boot/string.c' is built for 16-bit/real mode thus some type and word
>> size errors happen when <asm/string.h> include, e.g., <asm/string_64.h>.
>> 
>> This can be addressed with '#ifndef _SETUP' (defined by 'boot/Makefile').
>> 
>> 2) 'boot/string.c' is included by 'boot/compressed/string.c' which is
>> the source of 'purgatory/string.o', linked by 'purgatory/purgatory.ro'
>> (CONFIG_KEXEC_FILE).
>> 
>> In 64BIT, <asm/string.h> includes <asm/string_64.h>, which references
>> __memset() and __memmove() with KCFI_REFERENCE(), ie, __ADDRESSABLE();
>> however, 'purgatory/purgatory.ro' is not linked with implementations.
>> 
>> So, CONFIG_KEXEC_FILE and CONFIG_CFI without CONFIG_KASAN hit errors:
>> 
>>   >> ld.lld: error: undefined symbol: __memset
>>      >>> referenced by string.c
>>      >>>               arch/x86/purgatory/purgatory.ro:\
>>                        (__UNIQUE_ID_addressable___memset_0)
>>   --
>>   >> ld.lld: error: undefined symbol: __memmove
>>      >>> referenced by string.c
>>      >>>               arch/x86/purgatory/purgatory.ro:\
>>                        (__UNIQUE_ID_addressable___memmove_1)
>> 
>> (Note: this is not hit with CONFIG_KASAN because 'boot/compressed/string.c'
>> adds aliases __memset()/__memmove() to memset()/memmove() in that case.)
>> 
>> This can be addressed with 'CFLAGS_string.o := -D__DISABLE_EXPORTS' so to
>> disable KCFI_REFERENCE() in 'purgatory/Makefile' (it removes CC_FLAGS_CFI
>> anyway).
>> 
>> ...
>> 
>> However, since a change in this series would need more changes to address
>> errors it causes, it is reasonable to change the series not to cause them,
>> by using a separate header with _just_ inline string functions.
> 
> This is very long-winded and it meanders across things. Write it more
> disciplined, please, and formulate it such that you're writing the commit
> message of a standalone patch. It should have merit on its own and not talk
> about future patches and so on.
> 
> And yes, the intent to have a separate header which doesn't pull in
> nasty deps between decompressor and kernel proper, is ok.
> 
> For that, we have arch/x86/include/asm/shared/ which contains functionality
> shared between the two objects so I think you should move it there. It'll also
> make it a "clean" header which contains solely this stuff and doesn't pull in
> any other shit.

Ack; thanks for the feedback and pointers, I'll take a look.

> 
> Thx.

-- 
Mauricio


From xen-devel-bounces@lists.xenproject.org Sun May 31 14:09:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 14:09:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323374.1589117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTgqQ-00086F-68; Sun, 31 May 2026 14:08:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323374.1589117; Sun, 31 May 2026 14:08:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTgqQ-000867-1M; Sun, 31 May 2026 14:08:50 +0000
Received: by outflank-mailman (input) for mailman id 1323374;
 Sun, 31 May 2026 14:08:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <frn1furkan10@gmail.com>) id 1wTgqO-000861-Jq
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 14:08:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTgqM-007ayU-Vn
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 16:08:46 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <frn1furkan10@gmail.com>)
 id 6a1c40ee-5cb7-0a2a0a5109dd-0a2a4503ecc6-0
 for <xen-devel@lists.xenproject.org>; Sun, 31 May 2026 16:08:46 +0200
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <frn1furkan10@gmail.com>)
 id 6a1c40ee-672d-0a2a45030019-d1558034b4b0-3
 for <xen-devel@lists.xenproject.org>; Sun, 31 May 2026 16:08:46 +0200
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-4908b92904fso40519545e9.0
 for <xen-devel@lists.xenproject.org>; Sun, 31 May 2026 07:08:46 -0700 (PDT)
Received: from notebook.. ([88.230.40.157]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-45ef34bcc30sm18042056f8f.12.2026.05.31.07.08.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 31 May 2026 07:08:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1780236526; x=1780841326; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=MGemFQDl4DV2Z56JkcKvjoXN9TCXBRDOib3UZ9aS3OQ=;
        b=Q2+SaXyQEcgpa4XmJORweViwij8/enwm5Ne8InhJFX9U1WzIuAZt/XFGhyreiRFmnb
         RgvRmNINkEcKvFs6ErA98hlUGCEs+BYE3QDJ2YKNRV4R11z3EVWnacU0DiL2IpO/tBni
         zt5TpnvUqOQnGH4Dx+9lY6orekpiX/5tgVX7dZyYZWGV+l/iINk/dhqwoi7CnKFIBI0Z
         adNHC3MNS+951wAguwmCRENavLRw1N5JSBZVxB8IczoRxBNNpis/0Il0bHfgGwlSfPgH
         wSUdzsql9jf2gz8PsKQqxDuYDekh1ASEBKyiKW0do2j6mQmMaLJG7PM1TXTriqEzTjSE
         rU1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1780236526; x=1780841326;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MGemFQDl4DV2Z56JkcKvjoXN9TCXBRDOib3UZ9aS3OQ=;
        b=mGjWO9pPjwx/4ONayTmSrqBwDF/Di8INShbTwkStGI3iI8zaq94BLU5FABgP5tH8ln
         5IXG9toI7Pki9JIbuIjKekOR/lfTNss/aCulKQ/V1rIj7xTMiPzqlH1dL+4+jOaa6M/5
         RxScVMzze69DTOdtUqTCBAhzgENekDrvUrHFQDe+TAJF+xVQ3/Z6+GsZDKS+4PRpqx1l
         FB4VCMbwRbJZzbE0oQC0R6F7754vZ7I8B4YOHCqoherg0SiYigWzw+gUDq72T8/psRsz
         SwxnavRPA+Qv0k/5nTTMFgTK4iB0a6BuonUxmLtbs34v4RtjbDzNmXwcwf+2U5IzNEZl
         ivLg==
X-Gm-Message-State: AOJu0YwNL6wB22+doaM8GZTpno6Z9U9yQH1Vy8VqVAZczxY9CW0Qwl0B
	3N0ii8IR46Fb0P9sEcAdbgoeVHZ/aqWmwUUJg2A0Pw3U4wNzAi8GDNmaqLR1rw==
X-Gm-Gg: Acq92OF1Bzx25ytnZXF94MSfenMbZDEcF+Rc0GZ/OxHYzCUziqUFiTTAMqTE8SRQ63r
	MSrQABKzJ1bbieiXhtEEB5FYMvHzTcemy9s5vsMKl1WqLliAg1InH69028RNS+03UBH6ykSMvbJ
	9k/IMi7WwFMamAHrFwH6NQjOAoTAFHc500PwltPRtawGriQ3HuqyJ07vC8eL+bIbr596avOEC52
	F/TnQZcZ0Tic4mM+9ie1xjZQPL2LShekvg16qWLeDkQ/DEctwk4WjJj4emawmkjGaFbYszFQIFI
	9muzPfOMg9BYgO3v3AkUdlAgFgGvtbgbry9LkSSPpz6uYCOQC/QTDTqa6vqQlYT+2BTHR5VaUxk
	7pVmFzbMzNXVV6OLhVA9k8i0lYduy5ZK+vFKnDECoRxiTaLEixvm/RArgtcUQ4GaikQRsvNM7ca
	t3EFEyrizzLiNKWGukyOyubyMspEkBdafetA==
X-Received: by 2002:a05:600c:6b6a:b0:490:53d3:4753 with SMTP id 5b1f17b1804b1-490a2952f8fmr89558435e9.31.1780236526269;
        Sun, 31 May 2026 07:08:46 -0700 (PDT)
From: Furkan Caliskan <frn1furkan10@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com,
	jgross@suse.com,
	dfaggioli@suse.com,
	gwd@xenproject.org,
	stewart.hildebrand@amd.com,
	jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	Furkan Caliskan <frn1furkan10@gmail.com>
Subject: [PATCH] xen/sched: remove duplicate trace.h include
Date: Sun, 31 May 2026 17:08:19 +0300
Message-Id: <20260531140819.73467-1-frn1furkan10@gmail.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1780236526-3B360938-D895267C/0/0
X-purgate-type: clean
X-purgate-size: 476

Signed-off-by: Furkan Caliskan <frn1furkan10@gmail.com>
---
 xen/common/sched/rt.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
index 4b637aa9db..b9a3e7720e 100644
--- a/xen/common/sched/rt.c
+++ b/xen/common/sched/rt.c
@@ -26,7 +26,6 @@
 #include <xen/trace.h>
 #include <xen/cpu.h>
 #include <xen/keyhandler.h>
-#include <xen/trace.h>
 #include <xen/err.h>
 #include <xen/guest_access.h>
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323455.1589162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTox5-0004jO-Lo; Sun, 31 May 2026 22:48:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323455.1589162; Sun, 31 May 2026 22:48:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTox5-0004jF-HF; Sun, 31 May 2026 22:48:15 +0000
Received: by outflank-mailman (input) for mailman id 1323455;
 Sun, 31 May 2026 22:48:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wTox4-0004bc-T1
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTox4-00261G-A0
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:14 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba69-2eae-0a2a0a5409dd-0a2a45099642-26
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:14 +0200
Received: from [40.107.74.96]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbaaa-2497-0a2a45090019-286b4a60e9a3-4
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:14 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TYWP286MB2972.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fe::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Sun, 31 May
 2026 22:48:05 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=A9haRMnW71ErQtKS09RyRZIN8yMlyMURA/o6+icTpkKp6dUeoOatFX6IGJD02ss64LH+XHsajk0d5mXvgSfYxXb6yEDX+zsT+Eey0GiIGmbYG19OS/lk2+8LHNlffII4SXLoGJZeLcrrwSmgSjOyUijqOmvWCLu5NK494vHHFwi5iWbIi1dEJVVcXslkViSQ/TmyyZQXrc2BH/wrq+Y8DR6nsikiDC8456SQDAat4tHd3hBLSKlcRKkNs6rfkwuBD9PxaEmnHsWC8qjaN0KaSdSIxd9gk7qJvytwF0oFtxs2lS4gdwyKqn3McBop2+xCfzWBk+OD9AwDRdm57BrTrA==
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=LE6FuAerqw6orzqzu04p0kLbWxovloaphAeAZjKcIaM=;
 b=BLEvkN4y7G72GnrjmO6tIUDLJPSGucfFWcSSOM12slbD2A8a7XAgPdF1hGOm6u0+eEzL5dBLkg9YF8ilAujpdN8OLOgKxAn6Yq2gVT+EYuChQGYqq/+UPrHrbfh438pU91j8nr6aUuEXL7kso4Nw0HUSvt9kLY/FY1xRCjZy/X2FTCeuRhcSp93TjtDcFXj/fZZV85bzwZFR1MFRDGi2ONKSIzkoE42vwQkWdcBGVVe7ceAXOTuLKfwGzHPEz8w5LfK2kWOrI42RNlXjab/U1oetIcU7njYZt4Pmzyu8VICxea4kDf8xFoj2NuaK/EVW0zJbadRM9DCk/OhLiyWeSw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LE6FuAerqw6orzqzu04p0kLbWxovloaphAeAZjKcIaM=;
 b=aGq4e8hp4on7oFMNkaN+t3V0R5+zK0wHYv17LjdjizdNfjt6zslR2q71QZJ/50rdG654dZjotNnEq8JSONsmjt4KA3HVWJow41byPUVNl4AgZEgHvFrDnRbIh08rwomYdgjMKxbvd102MkuYcT1I/W4Kf6C9HVVBSjDZHkpO4iY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 03/24] xen/arm: Introduce CONFIG_DEVICE_TREE_NUMA config option
Date: Mon,  1 Jun 2026 07:47:33 +0900
Message-ID: <20260531224755.9481-4-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4P301CA0065.JPNP301.PROD.OUTLOOK.COM
 (2603:1096:405:36a::14) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYWP286MB2972:EE_
X-MS-Office365-Filtering-Correlation-Id: a5947373-07bc-4148-3ce7-08debf66adab
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|10070799003|1800799024|366016|7416014|376014|22082099003|18002099003|6133799003|56012099006;
X-Microsoft-Antispam-Message-Info:
	f1XizHRWDgi/q5p4k6ds/+pPedi3vcWp+sM4VUN/+aLxbew8Uj930n2ZvFqqIj3Ud0qVlYJTe0rDRbGpOodfjXXb1f+pq5BkTN0peJtjiCkXmry7R9RGnHwrL3V06KS5VkyVdkFhQBVc+U5JEn5T8s2YiUwTu5bGVUNGAMxTCFWzdmW1mOwrrx2cSueZUA61dyeg+n6bd+TiiqGrYysxi+Vuv0WXnZNE0FygQpYYjbmq0eAUi7P2OEyziA1T5B1pb8z+IweGs4/5Sxzy6Lh6O9nUAAmyl+lhMvqCijK68oSEnuEOKl57rI0+ndZfhPV88Kqon1S/t2KbgCoDj70NI6iLVM6YVfQOmz6vOQJ+4TyVZ4KbPQ1VN0871yzpQDO9KuyU2fEJkE1oENHGehwSzr4fpn9v5gZSoMZJWhVsNcWUBzdZV9EthiMaUceXvG7UBhLuQ6hnMMk8e734zruRBrix4OH1oNOrr9c5hjqErr48Wm+wYd35G4vzH76Hl/3I7rGgDTJJlHbgENTrpAk0DMs9ER/uf5b4usSPkp1tICEFFUESM15svO/FS/cPtuPf44UnHbjkY3o/LEhALpV4UH0V37bJOBJN+z/zudIywmz2Eq+ZeKAV8F7WQd5Z48IF6uD9zePonuR0qrccjrIQxOe8R2S0cuKY57GIbeudi0XIV/9++M7xXEtizJphAwbG
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(7416014)(376014)(22082099003)(18002099003)(6133799003)(56012099006);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?7gvA4o/jo6nimHWCT+zPxvLfcPtG1TdyfBCmd1GEe6K3F4eXDwJQIP/MUr57?=
 =?us-ascii?Q?HOcqVd7m5Lev9OA92JavTAfttbp6wwWsgB8w7ozNCOGJpHMaYP4S27pnFjqw?=
 =?us-ascii?Q?ISfbx0u9hE3PbTgdnuv5nt16WVFQ93pCrbmf45OQd5U9SpYSMe1UxqKTwfzd?=
 =?us-ascii?Q?Va6v1V3U54EzCKQzTehOSkfFP0ZirPQkDlYnERF/39Fh7TCqjBd8rQcUKqNM?=
 =?us-ascii?Q?nc9zqNCHdREStgepD1IYS6rG20sDMboym9jQr0h3cEMk685wJ8xmeUWEYCnH?=
 =?us-ascii?Q?4h7gRWs2b1jQLUotCvfxWYouI14Rv95VGS1bUb9MUihMxqrw12GkCHWLFDFv?=
 =?us-ascii?Q?qMkmj96Zksc5dH0erAWOn6dhva/LSwq8NLOpaMCV3X7sux5vm72u4/+E/4yL?=
 =?us-ascii?Q?zcT+d+3RZ5Xtst9U5QlymH1N1XVYyjCLOr7Xzkji7ZwJWtjTZkwcM56M6lb1?=
 =?us-ascii?Q?6U/bvEErhZYEQn9dtsrHFg1f1Kw7BoJVjNA2cToKTq0lZVOzNJqbGuFrKgN9?=
 =?us-ascii?Q?NbatolF5R7qYLyNjBUoO8uwECfZPuOn74sdLldpAw875k8PUvrlc8kHvVlh6?=
 =?us-ascii?Q?rT9X9XLapIeXCEewqOPQjxN9O4vvd+dOwAxRyAurJf7k9rqfLm3F/+ypIsWr?=
 =?us-ascii?Q?/sq3ZHx0+Qj7EO7eyKU5EMea9CmiLAj3LBsTdlCVBZObjv26NCDZJY3JcrTr?=
 =?us-ascii?Q?dacGivbWQbu1gAW1ruDX1uPVp9Gq+dNKoqiEUj8kPwbVYJ6ZFBcqWTNpD4Dz?=
 =?us-ascii?Q?Y4czV1dDVT3U250tUFwKAPAr+tgrryPyDizJulEj0Mh59b2SJRYr5KpC0vRR?=
 =?us-ascii?Q?Up0T6jGES9Vc/Ly8RzwEVo3WTo0gN2MdiApG/2O3+uFJ4ac13edve8QgGyfx?=
 =?us-ascii?Q?a/djBZEt60ORXF+NzXlPiY8L4bVClORMlt8481vd6Ez7jz885cDeGb/s0jkG?=
 =?us-ascii?Q?NPvFbZHCvFnPHFo9B3uDmTuk8nVbTxCIrMhMy3lfTm4vTNA6N7XC5fTn4QJT?=
 =?us-ascii?Q?qBnZS6msbarRN0UQ/knBBq5DuXzf4QqrZIh7xcY+zFKTPepRg05np/BINjb5?=
 =?us-ascii?Q?/i6+ezFz+By6QUA8iwON1ecu0ONNtjtmTI0Lc1muQ3PeARg91KcqPlPCm+2d?=
 =?us-ascii?Q?655xTThYs4mq0/dLgC4T66qMPv0iK3K/mBmM6t5CaSCGcm2gedmj1MWc1GXY?=
 =?us-ascii?Q?ldlNj/kZOXlHOpz7PudMel9S48kNrImtAYUgwP/pTtmWfE7HNnvTCPRohH9x?=
 =?us-ascii?Q?L03y1xlJ+8doaWahm+0VRD6pkKmf3UmXLZ46jPYHfU13TDv9oRDXFNv+hssc?=
 =?us-ascii?Q?gB/Mu8mP2c02GTq68F2hFYsZKYclvmrkmHlmbUCqVNBG1QEHVpt18D/A6Jf+?=
 =?us-ascii?Q?A1pPedPtFWfNM36e9/QXmmZF8Go2BjoJXYZG1aAjwBLlyoccHJsJHLApFwkr?=
 =?us-ascii?Q?TjMmgpoYrRwg2IhsJWu+sKkq+/meAaHLqxENkeMh/Bl3Y/56NGF/11hXrzrR?=
 =?us-ascii?Q?92nCn7h68Xwg6FN4nJxmkTT9Y0vDMPVjUCxrxM8Wz4+ujJtT0faayCCi7GNM?=
 =?us-ascii?Q?k9BCQZW8JEoraCb8IUIb1ALPrHNfhONThlubC3dgV829DfDmZf5KXi/Vbkpi?=
 =?us-ascii?Q?EJxNpEP0oDeOu6EMR0P72o5HgDayZJrk6tR9ge0W6V8Nhmz44TkdBNRWLoNR?=
 =?us-ascii?Q?tSC7rAbByqtulqnmOLfgaYQGVWEa8EAA1L1eRix487SbrLGR7dLFEUX/5ko/?=
 =?us-ascii?Q?zSu/ew+JMd7z53vpAY/agaLk8GuVHidN7ADhqefI/SVsfSExNFd+Wl6IM8T5?=
X-MS-Exchange-AntiSpam-MessageData-1: 6UfVOQeeUB0IvA==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: a5947373-07bc-4148-3ce7-08debf66adab
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:05.4972
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 67P3iszXhtee3EuLqWyZSE/XY51hoUz/q6FX+oYZa99h/+b+8nQww/mxyQeI6yJvJPeYcLWitl5xVCUPVCB42Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB2972
X-purgate-ID: tlsNG-bad1c0/1780267694-89B7BA53-FDE4CDC2/0/0
X-purgate-type: clean
X-purgate-size: 2722

Introduce the CONFIG_CONFIG_DEVICE_TREE_NUMA configuration option for
Device Tree-based NUMA support. Selecting CONFIG_ARM_NUMA enables
CONFIG_DEVICE_TREE_NUMA, which in turn automatically selects CONFIG_NUMA.
While this option is currently restricted to the ARM architecture, it
is designed to be selectable for RISC-V and PPC in the future.

This patch also includes the necessary compilation fixes required when
building with CONFIG_NUMA, and creates a single fake NUMA node to ensure
Xen can boot successfully at this stage.
---
 xen/arch/arm/Kconfig   | 8 ++++++++
 xen/arch/arm/setup.c   | 4 ++++
 xen/arch/arm/smpboot.c | 2 ++
 xen/common/Kconfig     | 4 ++++
 4 files changed, 18 insertions(+)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 79622b46a1..e67219e949 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -99,6 +99,14 @@ config MPU
 	  systems supporting EL2. (UNSUPPORTED)
 endchoice
 
+config ARM_NUMA
+	bool "Device tree based NUMA support (UNSUPPORTED)" if UNSUPPORTED
+    select DEVICE_TREE_NUMA
+	help
+	  Device tree based NUMA support. The "numa-node-id" property in
+	  the CPU and memory nodes of a Device Tree defines the NUMA node
+	  to which they belong.
+
 source "arch/Kconfig"
 
 config ACPI
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 6310a47d68..c0202d9ff6 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -351,6 +351,10 @@ void asmlinkage __init noreturn start_xen(unsigned long fdt_paddr)
     /* Parse the ACPI tables for possible boot-time configuration */
     acpi_boot_table_init();
 
+#ifdef CONFIG_NUMA
+    numa_initmem_init(0x0UL, 0x1UL << (PADDR_BITS - 12));
+#endif /* CONFIG_NUMA */
+
     end_boot_allocator();
 
     /*
diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index 7f3cfa812e..d1651fe7dd 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -47,8 +47,10 @@ integer_param("maxcpus", max_cpus);
 /* CPU logical map: map xen cpuid to an MPIDR */
 register_t __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = MPIDR_INVALID };
 
+#ifndef CONFIG_NUMA
 /* Fake one node for now. See also xen/numa.h */
 nodemask_t __read_mostly node_online_map = { { [0] = 1UL } };
+#endif /* CONFIG_NUMA */
 
 /* Xen stack for bringing up the first CPU. */
 static unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 5ff71480ee..89fa7d10c7 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -188,6 +188,10 @@ config VM_EVENT
 config NEEDS_LIBELF
 	bool
 
+config DEVICE_TREE_NUMA
+	select NUMA
+	bool
+
 config NUMA
 	bool
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323454.1589152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTox4-0004VL-D5; Sun, 31 May 2026 22:48:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323454.1589152; Sun, 31 May 2026 22:48:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTox4-0004VE-9w; Sun, 31 May 2026 22:48:14 +0000
Received: by outflank-mailman (input) for mailman id 1323454;
 Sun, 31 May 2026 22:48:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wTox3-0004Uu-TJ
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTox3-00261G-AD
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:13 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba69-2eae-0a2a0a5409dd-0a2a45099642-24
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:12 +0200
Received: from [40.107.74.96]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbaaa-2497-0a2a45090019-286b4a60e9a3-3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:12 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TYWP286MB2972.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fe::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Sun, 31 May
 2026 22:48:07 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kaCXhhX0s9QaqCwhpcb7oUWF7lFuuh04ls/ou7jyiX1WfNs/SjNyaH5xTQqhuSPHqTI1JnTNo3Wi2Q4wLSAhGFxgLGlsbjNCrAhzNkQEgvgYrqWSBkDZGfm423IOtYicxeTKQxwH67Ay624vrX6gbbHeVJuBrZzfeNpL//uLI1srIsIPz15dkzWHlVjxZZrm5Dlcn3SH5TvvkUscEkm3lRrgjEwfx5sUpUUoQZbGQ2gJdUlw8e4iuoGr7GsZBWOPOhlhG53by8FMO9aSJKNA93HAAPaW3o3o1c+qO0qO9TRC0rIbXdFdAn3yuo1oCHKio8mbRS/b2WyC8bEc2Ysj+Q==
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=WVIHzGP7xPG+QeB7F8sNCSVrdxqJXbQqFgu/3yZPit0=;
 b=JWow5qs0u1YptLeVYcOpSoeJUt4f1Xj4rE7cnjlofTS5B/y4PYVvGnLZ/hQxFuSSYRFmabRbk96bwvpu4erkvyV1OUrWUfGhU6ezcguJ4o7QE1XYRyX4w9oL/+2gwXfCCRheSGcU1ZriBUufXcHa3VnpvhyOTeCxGNT1HtswBz904NmjWU7D0LUz3a7cBKjOswsJ3v0IsACQS7gzaYHe5rOowW6XbsBoFZHORLDyx6g0nk+DMJMCBSxa5IHnzD8Ks+3qwymc+souAZNn/QB64BaD58uqGJTzWKCur9JrA54tcxlDDIwak6DNf4XWusI3fy/fLugv9/us6RKKTVtpgA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WVIHzGP7xPG+QeB7F8sNCSVrdxqJXbQqFgu/3yZPit0=;
 b=fRZRkTtTEfWtId4Qgq6MmsseBIzf+s5Hz5s3yddKMCiNR4eCgDks4/HNfnvQZcPzMM7yjSpreXs77Hd7MqxgQ25csb4m1rctoenNXdn82ezknzrP2/VhJXGPUMGMcj2oVHg9qsKIZDBbtECsA5YkAztK2kt3KFGm624F9Ihg20o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 04/24] xen/arm: Configure NUMA affinity for populated memory banks
Date: Mon,  1 Jun 2026 07:47:34 +0900
Message-ID: <20260531224755.9481-5-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4P301CA0065.JPNP301.PROD.OUTLOOK.COM
 (2603:1096:405:36a::14) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYWP286MB2972:EE_
X-MS-Office365-Filtering-Correlation-Id: eff574b1-6fe0-4d9d-227c-08debf66aedb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|10070799003|1800799024|366016|7416014|376014|22082099003|18002099003|56012099006;
X-Microsoft-Antispam-Message-Info:
	nmF05ctm3WYYwhR4ulAh7a3Z9MiSR3afq87OJqnKhwu+ODeJtsOQDTTj+j7h96UhaIE/if2u+GQya86nB5yEFP4gAYtZXwBNhjDym0/8GUO3WBOVjyg/0VdvAciZHGhmzKwu2jNPMdbGtWA6komG67UQsRfvX8Kj+Tixq8DbfRqr4r5d0JGLveE2EwIqtF86uT9CZGrDwlPmPrpPijhdBlx1beQTchu5EAsj8pPVDdM6gZGiqWxHXgAYBwHGP5JdbZYr9onfQu76Szu1CQsDA80NRU3n3/YQMf82c8Oh29ChuhmdJQhJ5S94xMexqK93jqTlzz3NoqRlZa3Ww4jqXPeC8i1TfGM8jnQSFmJjcvzbtFCQlP+JGCE00fa2mQEa0pmUwxEGdGE/dBRdZytqPVksM0IL2gJqK5rdBGCoJg9ReAQ6DUT8AU6R5lqKcwou8Q4FX8SQu9Bc7vpKj3TOHaIQSlNPh+SiDwZflzJ/QyZ79utOiTpkpKFaRVfpje7Um0wOTRoyoxBpZanIdwS5Be2kIGx5/sFeB2aqlD1B9G5fQDWBNTTVzlFVkBpFtVpMMeecAJq467coL+oBjvAzd2P33LQBpT4PxmfmWd/+GssnvnzOhRRJLneR/CjoRRCL6Y8hUGUyJrUipJjUSB4b6guOU/KJYc8wWtktvqofCM1HaRsD7jkbonJ1c7Wt6qw0
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(7416014)(376014)(22082099003)(18002099003)(56012099006);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?108GtXEKqCTHLflj7hVMOK503QlBOE9bmZTwJp9TvhfoFDqtfekkF9TVZAh5?=
 =?us-ascii?Q?nvZQByh8+4F8sduNHl/R7zNR1Jgh+QcpUD7Rrvl0nGEtCg53LBbHe0AnCH7l?=
 =?us-ascii?Q?cZksLeleD+MjfEoYWlLMJ1f/Hqp1Um6J1P8oDiRvwWKMaQxfsl9+jL/yCwHd?=
 =?us-ascii?Q?mUowfuIMH5XAKAnIV3rVaff3Mr1M6mnzzZAHeyLaBOxEyngO6LQExSBlxkpp?=
 =?us-ascii?Q?r8a9MU0ekE8mVl2rDnU+giU8VMOuG6hrA5IL9eZXln6NaicIfEL792u/2p1o?=
 =?us-ascii?Q?AOKbUOVMIhekINCApR9Cgu28seSQscJyRdOHsk6iDz4hGMu4n43GuEQEF7cz?=
 =?us-ascii?Q?H9xZ+nKc8IW/V3Sykr3VVLew9sDuy0B+N4ceauMJPj09k0c0M7FAC/t4SyrB?=
 =?us-ascii?Q?8uswg13sCr+qV16Aw6aZ1kOvoVh5WBvcoXlQM+OnKCBrhu0n7l28CDimzfWG?=
 =?us-ascii?Q?Czv+q5y+sOOxd4TsGW8DidRYhkJZ3/z4kmFwcznzD56KzVIpgzCMZ8kZ6juI?=
 =?us-ascii?Q?EJK4+hIFjrd4TjYq/PlbPUFPCr6POI8P8IIHMPDRyWvIIezCX29cGrOEP25W?=
 =?us-ascii?Q?rZhH3r2AhgXnBON+olpssX4/6kOopJvG4nAWfIntsIxuDbVw660blRTeda7n?=
 =?us-ascii?Q?ODgTlDjHzcqJu5HRCJJu9K3Hv1BeZrEJ7BlPKxNmXz9+gP+bEyzmTqOoDYzD?=
 =?us-ascii?Q?LVFPcQ0W2ciTWO/J0w6N3mqswfgiWC/3KJpfDN8eY4JCFyJlDHViGTZ64qVq?=
 =?us-ascii?Q?yE45vR+hQ1WQ3hCRj21jFcohVjeuLx44JeJ5SMrK0/UWN2bjP+u4J4z7FMcX?=
 =?us-ascii?Q?EvRbEo0NTacvCNHjtWqOw7cnFdTUpn7YUClP0ZgS7csPEXK+C8UloStH9tcQ?=
 =?us-ascii?Q?a8fLQkMu3qw/JjPw12arfdNFMmcoCQnR7Xtpkb4aiXvJNkuz7eyf+8zxhf2t?=
 =?us-ascii?Q?sb3FvB+22H6G52RVj3IleTVScbVUMEYRS7iGKzPbhUcRSS7w7+ZJDna+aVWZ?=
 =?us-ascii?Q?J5DjtShvaOscgkVA/NEsNbRPmI6o0Rmen7lUBrYk7P49c8aD5QaKdpGMz4O7?=
 =?us-ascii?Q?sXGTOSWMBOiYn0DGHNiqF3nQgtfIbUApgMZL/Ho5GIfVqhwZYTPTaPFCgcap?=
 =?us-ascii?Q?gXB//GlLRh9odUD5l8dTROxLHBMzCPgb8c0ubgD8E7HKIpyxwm5lMjf21ROo?=
 =?us-ascii?Q?rkia0HV6vppyS+9KtKbSBjINCqvpy+flZoyqUi6n60Zhv2vBOt3NAEpVIDfM?=
 =?us-ascii?Q?gYQivcuEwlC/c6BaWL5WJey73iMYKYOLTa/973Ur02JmIdQbldI/VioIVZsu?=
 =?us-ascii?Q?XJkC/swgedCFRbl5wNnY7Yw4OCX59bzlnSyfYYNDAVHQVDVB1wcN098H7BCt?=
 =?us-ascii?Q?7drgA8X8kkmaFU4uOUexR6Y+m/pnS8xRYG0HG3JjxK5Undwboz4kRdjrwVWh?=
 =?us-ascii?Q?UhRXA1brrtCjdkiD+qMv62PyiXlWpMzbliCUeZHxtGJft3P2mRUex4F+Dab5?=
 =?us-ascii?Q?aYcf7N6MQpUFpLXnFSy8Q5PhFCYa//WYyHi8HmwH342slLquU5+oVjyNzo01?=
 =?us-ascii?Q?7ca35SOtfbkaSvzhypZzbD0ouWy4rtW7lLRVyLmFCEG/3KQ/CZWQcXdTW2br?=
 =?us-ascii?Q?lF2tDWEFSP3jAJTTw6EW9GhLQepuIV91nyjSU4/izQGdvPcUmLqWHZsSd2vQ?=
 =?us-ascii?Q?DYtLe08aNLSSvzcSREn/eoeoz8DSnrfJ2WSHirSYp1Vh+p/3EXxluX/3ZWT4?=
 =?us-ascii?Q?c9ImvE4VHC17kKF87E54eCC2DkJLVX9FiPT/HGmOqcte+FCWhtz/dakTWeiN?=
X-MS-Exchange-AntiSpam-MessageData-1: QyWxSkM8Y3mjTw==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: eff574b1-6fe0-4d9d-227c-08debf66aedb
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:07.5845
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QDI3Pv4L/moz2VlZCEeY4g//rZeuSu6IYWM33iw9nEBKJXoRjeSb95hUFOO1b+tAIg6NakdNDp8i0NpwXYGj9A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB2972
X-purgate-ID: tlsNG-bad1c0/1780267692-40D67A53-CD208037/0/0
X-purgate-type: clean
X-purgate-size: 6123

Configure NUMA affinity for the populated memory banks. The NUMA
node ID for each memory bank is retrieved from the Device Tree.
---
 xen/arch/arm/include/asm/numa.h       |  1 +
 xen/arch/arm/numa.c                   |  7 +++++++
 xen/arch/arm/setup.c                  |  2 +-
 xen/common/device-tree/bootinfo-fdt.c |  8 ++++++++
 xen/common/device-tree/numa.c         | 29 +++++++++++++++++++++++++++
 xen/include/xen/bootinfo.h            | 23 +++++++++++++++++++++
 xen/include/xen/dt-numa.h             |  1 +
 7 files changed, 70 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/numa.h b/xen/arch/arm/include/asm/numa.h
index a1fa54f2e7..6f1ccb4eb3 100644
--- a/xen/arch/arm/include/asm/numa.h
+++ b/xen/arch/arm/include/asm/numa.h
@@ -12,6 +12,7 @@ typedef u8 nodeid_t;
 extern bool numa_disabled(void);
 extern unsigned int numa_node_to_arch_nid(nodeid_t n);
 extern u8 __node_distance(nodeid_t a, nodeid_t b);
+extern void numa_memory_affinity_init(void);
 
 #define arch_want_default_dmazone() (num_online_nodes() > 1)
 
diff --git a/xen/arch/arm/numa.c b/xen/arch/arm/numa.c
index 080d7892ae..15cad3d267 100644
--- a/xen/arch/arm/numa.c
+++ b/xen/arch/arm/numa.c
@@ -36,6 +36,13 @@ int __init arch_numa_setup(const char *opt)
     return 0;
 }
 
+void __init numa_memory_affinity_init(void)
+{
+    dt_numa_memory_affinity_init();
+
+    numa_initmem_init(0x0UL, 0x1UL << (PADDR_BITS - 12));
+}
+
 int __init arch_get_ram_range(unsigned int idx, paddr_t *start, paddr_t *end)
 {
     return bootinfo_get_ram_range(idx, start, end);
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index c0202d9ff6..cdabf536b0 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -352,7 +352,7 @@ void asmlinkage __init noreturn start_xen(unsigned long fdt_paddr)
     acpi_boot_table_init();
 
 #ifdef CONFIG_NUMA
-    numa_initmem_init(0x0UL, 0x1UL << (PADDR_BITS - 12));
+    numa_memory_affinity_init();
 #endif /* CONFIG_NUMA */
 
     end_boot_allocator();
diff --git a/xen/common/device-tree/bootinfo-fdt.c b/xen/common/device-tree/bootinfo-fdt.c
index 272b5a6c0a..2d0e809231 100644
--- a/xen/common/device-tree/bootinfo-fdt.c
+++ b/xen/common/device-tree/bootinfo-fdt.c
@@ -121,6 +121,9 @@ static int __init device_tree_get_meminfo(const void *fdt, int node,
     const __be32 *cell;
     u32 reg_cells = address_cells + size_cells;
     paddr_t start, size;
+#ifdef CONFIG_DEVICE_TREE_NUMA
+    uint32_t nid;
+#endif /* CONFIG_DEVICE_TREE_NUMA */
 
     if ( !device_tree_node_is_available(fdt, node) )
         return 0;
@@ -136,6 +139,10 @@ static int __init device_tree_get_meminfo(const void *fdt, int node,
     if ( !prop )
         return -ENOENT;
 
+#ifdef CONFIG_DEVICE_TREE_NUMA
+    nid = device_tree_get_u32(fdt, node, "numa-node-id", 0U);
+#endif /* CONFIG_DEVICE_TREE_NUMA */
+
     cell = (const __be32 *)prop->data;
     banks = fdt32_to_cpu(prop->len) / (reg_cells * sizeof (u32));
 
@@ -158,6 +165,7 @@ static int __init device_tree_get_meminfo(const void *fdt, int node,
         mem->bank[mem->nr_banks].start = start;
         mem->bank[mem->nr_banks].size = size;
         mem->bank[mem->nr_banks].type = type;
+        set_numa_nodeid(&mem->bank[mem->nr_banks], nid);
         mem->nr_banks++;
     }
 
diff --git a/xen/common/device-tree/numa.c b/xen/common/device-tree/numa.c
index 06f2c8b102..539ddfccc5 100644
--- a/xen/common/device-tree/numa.c
+++ b/xen/common/device-tree/numa.c
@@ -22,3 +22,32 @@ u8 dt_node_distance(u8 a, u8 b)
     return LOCAL_DISTANCE;
 }
 
+/*
+ * Initialize memory affinity by registering bootinfo memory banks into Xen's
+ * NUMA subsystem.
+ */
+void __init dt_numa_memory_affinity_init(void)
+{
+    const struct membanks *mem = bootinfo_get_mem();
+    unsigned int bank;
+    nodeid_t nid;
+
+    numa_fw_nid_name = "DT";
+
+    for ( bank = 0 ; bank < mem->nr_banks; bank++ )
+    {
+        nid = get_numa_nodeid(&mem->bank[bank]);
+
+        if (numa_memblks_available())
+        {
+            numa_update_node_memblks(nid, nid, mem->bank[bank].start, mem->bank[bank].size, false);
+        }
+        else
+        {
+            dprintk(XENLOG_WARNING,
+                "Too many numa entries, try bigger NR_NODE_MEMBLKS!\n");
+            numa_fw_bad();
+            break;
+        }
+    }
+}
diff --git a/xen/include/xen/bootinfo.h b/xen/include/xen/bootinfo.h
index 7923be2b38..d01a28b359 100644
--- a/xen/include/xen/bootinfo.h
+++ b/xen/include/xen/bootinfo.h
@@ -7,6 +7,7 @@
 #include <xen/macros.h>
 #include <xen/xmalloc.h>
 #include <xen/errno.h>
+#include <xen/numa.h>
 
 #define NR_MEM_BANKS 256
 #define NR_SHMEM_BANKS 32
@@ -56,6 +57,9 @@ struct shmem_membank_extra {
 struct membank {
     paddr_t start;
     paddr_t size;
+#ifdef CONFIG_DEVICE_TREE_NUMA
+    uint32_t numa_id;
+#endif /* CONFIG_DEVICE_TREE_NUMA */
     union {
         enum membank_type type;
 #ifdef CONFIG_STATIC_SHM
@@ -228,4 +232,23 @@ static inline int bootinfo_get_ram_range(unsigned int idx, paddr_t *start, paddr
     return 0;
 }
 
+#ifdef CONFIG_DEVICE_TREE_NUMA
+static inline uint32_t get_numa_nodeid(const struct membank *bank)
+{
+    if ( numa_disabled() ) return 0U;
+
+    return bank->numa_id;
+}
+
+static inline void set_numa_nodeid(struct membank *bank, uint32_t nid)
+{
+    if ( numa_disabled() ) nid = 0U;
+
+    bank->numa_id = nid;
+}
+#else /* CONFIG_DEVICE_TREE_NUMA */
+#define get_numa_nodeid(bank) (0)
+#define set_numa_nodeid(bank, nid) {}
+#endif /* CONFIG_DEVICE_TREE_NUMA */
+
 #endif /* XEN_BOOTINFO_H */
diff --git a/xen/include/xen/dt-numa.h b/xen/include/xen/dt-numa.h
index 721e8955fa..c6939d0928 100644
--- a/xen/include/xen/dt-numa.h
+++ b/xen/include/xen/dt-numa.h
@@ -14,6 +14,7 @@ static inline unsigned int numa_node_to_dt_nid(u32 n)
 #ifdef CONFIG_DEVICE_TREE_NUMA
 
 u8 dt_node_distance(u8 a, u8 b);
+void dt_numa_memory_affinity_init(void);
 
 #endif /* CONFIG_DEVICE_TREE_NUMA */
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323452.1589129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTox0-0003uQ-Oq; Sun, 31 May 2026 22:48:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323452.1589129; Sun, 31 May 2026 22:48:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTox0-0003tW-LP; Sun, 31 May 2026 22:48:10 +0000
Received: by outflank-mailman (input) for mailman id 1323452;
 Sun, 31 May 2026 22:48:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wTowy-0003rw-F8
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTowx-008Rpn-S8
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:07 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba94-e002-0a2a0a5209dd-0a2a45059030-12
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:07 +0200
Received: from [40.107.74.122]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbaa2-aaa8-0a2a45050019-286b4a7acd57-4
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:07 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TYWP286MB2972.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fe::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Sun, 31 May
 2026 22:48:01 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eQCVtYYVuhSPpNYC88ZGBCI9MtoOZ9N85ROzpSNBfBJLokcwW37lFMscE7AQ25ApUObg0rrl2oZWOv98NO1KVNO7pTc3W28ae3N4gBlQPOmKRZFza6XPXIj/CeS4CHwrxdOx3zH/nKE707DQSc3gdZXgZVI0f5XcgG2UMeauMuw4sSLyTmnBbJbzC+ahRmyrONi2fuqE7Ti0FR+WOpjxd4GruumZSvojKEwZDl1791dX/ZMFTW0UgECDWmM7a9Ora1eVroz3TAWPgCVIh/QPRQdyJHBO7/MbuODK8ARRQk6+JNj+kO85BVu8XRNVx+LO4lUoTCWCSaYXbxJHw+g0DQ==
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=Wt03HDs8D0xUaaPxP9GLmlyiOrzESbIR6gnC5yHUmes=;
 b=ZyO/Qd4RgG9dcolUrdzdIlWychMtdEH/4BZCPBOPnHEPCyBKW876x+dOvN3RlJPC17KaGqt387i9kf8PBYrG5pEg4H9lC+E1hW9KTRP5ChnmIRoO8O/EutQftelgBZtIhVvBrctQgbTwSyoaDOC0oqKe1hrmlk41+ibglnhfikYy2m3I06dxc7qu2UBjbob3K3xlIF3khT3NHoYgLNQJM6H/fIa0Y2mdXZYHKPzUb2i0T23VDX2oMPgJ+4JZU/Z1E3Tjoy+rwNEflnEwgX91kvPTeQC+e+/ekXlET+7bkzI8Eoxv11DHfde2YdFF8aCnss6N4RpAvxclH1qv4ss5QQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Wt03HDs8D0xUaaPxP9GLmlyiOrzESbIR6gnC5yHUmes=;
 b=G2E4VAFQzhwNLQRetHN+SDJZ1BT5rznuC4o41YujOnExhS0y9dYj78oTDX5tCsduruI6cxJMMOvO3IsDltzAD0bESPkDobjvdax0I0f19smQZpcEgLnvCWPhZZ5TLJihibP1J3Ewi9MhHAXMP9/FeD4//GXJbRkdjj6m9j5pQgE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 01/24] xen/device-tree: Initial framework for Device Tree NUMA support
Date: Mon,  1 Jun 2026 07:47:31 +0900
Message-ID: <20260531224755.9481-2-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4P301CA0058.JPNP301.PROD.OUTLOOK.COM
 (2603:1096:405:36a::18) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYWP286MB2972:EE_
X-MS-Office365-Filtering-Correlation-Id: 58e71857-fbb7-438c-e09d-08debf66ab5f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|10070799003|1800799024|366016|376014|22082099003|18002099003|6133799003|56012099006;
X-Microsoft-Antispam-Message-Info:
	//OE2mbAY0u5fSfPy1uMFaPDBnXdInI6fTTd/h2Jzj8GtQeJreR5hQNb3y++55h7mID0sQ0zNsKbxR8zrfYxUGFx72wAw/93Wmx6u3ks/A4bRkUaveUL1YZv5ddSy83rp5US+rrLcJlDsExjdc3IvXjY3N0Imo7v/N1X6WEvXx52buYThdu5bGE9qwAYnj6AgD0EEmsnp/4/atjDM1zKdAmhVBxBoGpWYQhN7c8guGPTivfY6kv6eS4LudFU4tuR5mfR+wZtX4360g3C6U9NHug0P2dE05FyUyhDpEuauDD+va3EQKsShvcJp43Uy1c7woDHf/slKeMUdGdb67CYRuj+5aNGDwQp43UwwvfMpGinixv3QIuuzsbni8cOwm97MRPGX8qaJlsm7vTQFWZu5ygo048Kihz/J0wziXafpifkwv3XMxyhYfJGD/0xebSwQSis47zapwmyCUE+n+cA9r+njz2xaKUTEGr69mDyGM5TGL0W9y4n1sn855oMjdAZS0U0TwWEiHmYJZAmBltkgoN9HEUyAU6jefw32MLWPYv8a4CzKO9pagUoP8BzNvd7JFbljVVF54F6UKdqmW/7IuJeVht6keBrajjGK2LxRQR1a9ag2Yb1V4n4KqL58vptiNZV2DOSGlMZP/f7votnP6R4k1Sff+ZYrJT3n6Z4la3A536SINLBFKjk91w++erJ
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(376014)(22082099003)(18002099003)(6133799003)(56012099006);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?dpFHFvt3MTHjMT52nWH0VWP5zCH2m/SoGsgRwT/tiXBCYmoziWXEs0saOdnq?=
 =?us-ascii?Q?xcl4wEwd7A1cR1NGoMWWwnHONHNX96Ehc4Z2iEp0YJzMGefSf1fEBge9MN3r?=
 =?us-ascii?Q?hin8oIcFLw8l+tnAUWYT1ZsOL+Oj67T+6pTpUmAFVQiS7j+Tz7yl7IzYDrjN?=
 =?us-ascii?Q?wbGzDFU/5PuffUNCy1JMU4PJn4ylA+LaOYBBZalyAkqzoSaUa+XMf6Ou/2XH?=
 =?us-ascii?Q?e2RSmSkEy1HIxzmc8ALagokUWXo8gY74/YbDtEJqEqSfvUJkCLV6i9e4IYsi?=
 =?us-ascii?Q?6eHLgRDcDG30Sjw0zgNyVz+rMZIZjGOdsE4okLrhCrWCwsSfF7/1mCT+YmSl?=
 =?us-ascii?Q?agfqdzyrYPUGd/eXAzsTuTEiFZXKwZE+K4xuu+LM3HsN9Pm3TN190ssiyXWU?=
 =?us-ascii?Q?D7cMPPwaDcjCnbrlbhPnI25d1Yr3U4ll2+ED07aM4ld49dTYj718jtucbS2R?=
 =?us-ascii?Q?325Tc5lvbv5MG43U43SIztJKWbwb999VKOHpbobKHDsrBHarHObisM6U3nDo?=
 =?us-ascii?Q?xPI9uzf66qosO85BpLvYur8FFK1PxSN6nzOaMbi1CYFIqu00Pajqto3v9hym?=
 =?us-ascii?Q?TXOr9N60nRGhV5NRoO1q3ETFAdDN4JuqH8KJYzo5QuKCBNy2V2/ay/7hHLO1?=
 =?us-ascii?Q?YSQB/LRwJ70P1lkO1tz+MrPvYAeSm23LaY708vwOrRvw8gxYFD4Ic0fvgzTy?=
 =?us-ascii?Q?ONkwjpfkpBsD5cMNJX3ya4sMJ5BQQbxCJBPH4svdG0+0J2bSpT4aLUgTakWv?=
 =?us-ascii?Q?tWGL6Igvm29mHCD+QrcCR3R7F7bE74HwjG7+TCEV6G4YPcn6pGbVZ6S7ue1e?=
 =?us-ascii?Q?kz660K8yvfe1xmNfTQl5RHucprJAvJtUz8/B2ghxCHzX+5xPYoKp8jN6bV2L?=
 =?us-ascii?Q?ExtSByImggZq3LamIapJ727M08KjrXPbS+7iDVRpXHpqh/0BQSmT2w2eEqcT?=
 =?us-ascii?Q?q6UizEnxadQUbJ1y+tV8R94O0wgdXvuznsmjRg+A4CD90gJZx426EhPOIsLj?=
 =?us-ascii?Q?iys7DL6OKR3OkRUejYMybzF3fGVaL2GM1bEfTyzyQnTIOh4qSJsLEQBFKvjK?=
 =?us-ascii?Q?YhzjsdW3dlR2id/1TsN0map2aqNqbQd9EG44qKP42dIif8yOS0HP2Jy4Z1mW?=
 =?us-ascii?Q?QRXn5zf3NJKCCfHVpLKRhoZ5mW3kvezbnrwpq6u1gQYbcBkgoYoo3Wb3Xx3t?=
 =?us-ascii?Q?C568bhitBpAuxMh4NQfncyWPc1C8t+6wJm1r/3Wh+LFMytBk4xXaYFgm9tKX?=
 =?us-ascii?Q?86AeQAKB4YjY89vpz1oguNb6UqSrNjgCH36uEyPDDFVHnOH0JHIF5FVynDsH?=
 =?us-ascii?Q?wrDtF98G+CTnsxkVS1Q4gfeULv7+hgMEKhmyXIatBWZCdW92bn5JLwL2A7z3?=
 =?us-ascii?Q?YuliYiWWWuiCmB0BxgDlPUqkuME7cofFmzXti2fIC7uOYPktJr/z7ZFpjvsV?=
 =?us-ascii?Q?u9NjVVr5vg1JnH4B83+6jF3BH+9OAo/dC3Cg5JRsedVVcSz+fcWPjVBc3JfA?=
 =?us-ascii?Q?Twakytzge/jm05XbgwR5PfgRsbFu5Ywr+h3SF4f2bLy3V5qlUKHsAsrbDfuX?=
 =?us-ascii?Q?Y0xtXkLKpikjWDGJAe66fm2sun0Ttk7avqAuLX8PkgvUAX9wkIQxlV9ucNkW?=
 =?us-ascii?Q?NL/cO5wPM4qVIMWBcVEbAMoNIKr6MdTEV4GLCc9MiIt8wvHtZPXX5eg1Vztg?=
 =?us-ascii?Q?giK0gj9dZQO6ONAc9kk8SKCgaU4N7iSbpzp64X5l6GVyEZGzJ71MlSDj+vZH?=
 =?us-ascii?Q?zf+7W1+CGnaq11IO80RBsHiCtX4f6zj12I0tumXagFWcNZ0E0b5Kni8GvGka?=
X-MS-Exchange-AntiSpam-MessageData-1: gHnrNTusqsqJXw==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 58e71857-fbb7-438c-e09d-08debf66ab5f
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:01.6503
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: L8kambpaFA462cFEIKVfLFRXkCh/w8caekcgxiHyBIsm+Ck6CMbO4yJdmi8zsqqduLSVFY6lMAIO4zbwoGwg4w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB2972
X-purgate-ID: tlsNG-c201ff/1780267687-DAF6E443-B1A0FBC4/0/0
X-purgate-type: clean
X-purgate-size: 3575

Introduce the initial framework for Device Tree-based NUMA support
on ARM Xen. This patch adds the required Device Tree-dependent
helper functions needed for NUMA configuration. Note that some
functions currently contain stub implementations.
---
 xen/common/device-tree/Makefile |  1 +
 xen/common/device-tree/numa.c   | 24 ++++++++++++++++++++++++
 xen/include/xen/bootinfo.h      | 14 ++++++++++++++
 xen/include/xen/dt-numa.h       | 29 +++++++++++++++++++++++++++++
 4 files changed, 68 insertions(+)
 create mode 100644 xen/common/device-tree/numa.c
 create mode 100644 xen/include/xen/dt-numa.h

diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
index 9036e455d6..658aa293c4 100644
--- a/xen/common/device-tree/Makefile
+++ b/xen/common/device-tree/Makefile
@@ -8,6 +8,7 @@ obj-$(CONFIG_DOM0LESS_BOOT) += dom0less-bindings.init.o
 obj-$(CONFIG_OVERLAY_DTB) += dt-overlay.o
 obj-$(CONFIG_HAS_DEVICE_TREE_DISCOVERY) += intc.o
 obj-$(CONFIG_DOMAIN_BUILD_HELPERS) += kernel.o
+obj-$(CONFIG_DEVICE_TREE_NUMA) += numa.o
 obj-$(CONFIG_STATIC_EVTCHN) += static-evtchn.init.o
 obj-$(CONFIG_STATIC_MEMORY) += static-memory.init.o
 obj-$(CONFIG_STATIC_SHM) += static-shmem.init.o
diff --git a/xen/common/device-tree/numa.c b/xen/common/device-tree/numa.c
new file mode 100644
index 0000000000..06f2c8b102
--- /dev/null
+++ b/xen/common/device-tree/numa.c
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <xen/bootinfo.h>
+#include <xen/device_tree.h>
+#include <xen/libfdt/libfdt.h>
+#include <xen/bootfdt.h>
+#include <xen/errno.h>
+#include <xen/init.h>
+#include <xen/nodemask.h>
+#include <xen/numa.h>
+
+#define LOCAL_DISTANCE      10
+#define REMOTE_DISTANCE     20
+
+/*
+ * Get the distance between node 'a' and node 'b'.
+ */
+u8 dt_node_distance(u8 a, u8 b)
+{
+    if ( a != b )
+        return REMOTE_DISTANCE;
+    return LOCAL_DISTANCE;
+}
+
diff --git a/xen/include/xen/bootinfo.h b/xen/include/xen/bootinfo.h
index dbf492c2e3..7923be2b38 100644
--- a/xen/include/xen/bootinfo.h
+++ b/xen/include/xen/bootinfo.h
@@ -6,6 +6,7 @@
 #include <xen/kernel.h>
 #include <xen/macros.h>
 #include <xen/xmalloc.h>
+#include <xen/errno.h>
 
 #define NR_MEM_BANKS 256
 #define NR_SHMEM_BANKS 32
@@ -214,4 +215,17 @@ void fw_unreserved_regions(paddr_t s, paddr_t e,
                            void (*cb)(paddr_t ps, paddr_t pe),
                            unsigned int first);
 
+static inline int bootinfo_get_ram_range(unsigned int idx, paddr_t *start, paddr_t *end)
+{
+    struct membanks *mem = bootinfo_get_mem();
+
+    if ( idx >= mem->nr_banks)
+        return -ENOENT;
+
+    *start = mem->bank[idx].start;
+    *end = *start + mem->bank[idx].size;
+
+    return 0;
+}
+
 #endif /* XEN_BOOTINFO_H */
diff --git a/xen/include/xen/dt-numa.h b/xen/include/xen/dt-numa.h
new file mode 100644
index 0000000000..721e8955fa
--- /dev/null
+++ b/xen/include/xen/dt-numa.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef XEN_DT_NUMA_H
+#define XEN_DT_NUMA_H
+
+#include <xen/types.h>
+#include <xen/device_tree.h>
+
+static inline unsigned int numa_node_to_dt_nid(u32 n)
+{
+    return n;
+}
+
+#ifdef CONFIG_DEVICE_TREE_NUMA
+
+u8 dt_node_distance(u8 a, u8 b);
+
+#endif /* CONFIG_DEVICE_TREE_NUMA */
+
+#endif /* XEN_DT_NUMA_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323458.1589189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxA-0005U2-M4; Sun, 31 May 2026 22:48:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323458.1589189; Sun, 31 May 2026 22:48:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxA-0005TX-HE; Sun, 31 May 2026 22:48:20 +0000
Received: by outflank-mailman (input) for mailman id 1323458;
 Sun, 31 May 2026 22:48:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wTox8-00059X-4Q
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTox7-00261G-HE
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:17 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba69-2eae-0a2a0a5409dd-0a2a45099642-32
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:17 +0200
Received: from [40.107.74.96]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbaaa-2497-0a2a45090019-286b4a60e9a3-7
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:17 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TYWP286MB2972.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fe::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Sun, 31 May
 2026 22:48:13 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Od+V9dmP565wnVYERljt2oJQdklz9OYZg92vI+8vrSNdciRXaicb6XBQ16VJQjQbRVOU+kRlN6bl7dqDEOGwRMZdv4mWgLjHq4Mg2mNvEt9mLX6p+BYqobyhQWr9bhcWVOvtUI4D4ChgOQupEAc5F9t/7o1Er4a9rg9zBhHD6kvXBHRpQ8LZM/GjRas7LZVQvKNga3TQuftEfJXqWUu95aj3Z+uOSHfVx41k8VmcYw/F63NDbE8k71BgHC0purSTkfoiTJN3VnayaGIe81JdoveWVY0M03Cmu5/ADPduOsJ91ZX9suM/YAA1ob75kFavuQaeO8U8Ix8tzHcBXUwv0g==
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=09ikRB9p2K6n1IXPIFviZ3O5z7V9MxCaGsEM2APynDM=;
 b=DRR5+wra/23dHP4cMmtC+pj1zrg0liXjoz1tvA3XPmKHVZ2kb3x7j3/8f9WCVInDsY7SJ2KjqvWK+777GV7sz3MGtXesl2a/bJfd08cGHUGl+AqRXLFWhNgk3a0AA/q8qI+nrvkvO7+DjOdczQiQ1dOSP+5rH5rj3y2QaEn/v/aNEbIpjmhjv0lEhUsYuasAx7RFdAnkJx90lSD6GWNad5VKP/X2ithAH35WXGGWJurHk/D3nfNFhdFd9pZobFxnu/MpaVRtFt5BLeP1rY2fDESnL3tSSse83CJ6CM/D/7F8FhWEKP8Hzl5zF+qbpxTV0AjVzfjk292EcQNprfbSNg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=09ikRB9p2K6n1IXPIFviZ3O5z7V9MxCaGsEM2APynDM=;
 b=r5T84K1YW8aj+HqmUr66H7bKEudgDIelq8grofprLWHrVzFYUGuee+nGMItzpfhn8Hsz2lWoNK84up5eYjJUOYwuWvK+MuGPQKcX5HFx3znnSnISaZtoFgw9OduSRVT1yKyfzC3its8wgFHk9wllLEV6srP3F+X/LVv2rHw3jGU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 07/24] xen/device-tree: Parse 'cpu-map' node for CPU topology exploration
Date: Mon,  1 Jun 2026 07:47:37 +0900
Message-ID: <20260531224755.9481-8-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4PR01CA0032.jpnprd01.prod.outlook.com
 (2603:1096:405:2bd::13) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYWP286MB2972:EE_
X-MS-Office365-Filtering-Correlation-Id: 0beea134-44a3-46d6-b48b-08debf66b257
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|10070799003|1800799024|366016|7416014|376014|22082099003|18002099003|56012099006;
X-Microsoft-Antispam-Message-Info:
	RA+mYr1790mNnsV72laVkOZ4rNPvbmcQIIxI/GHNqfERuPT6pspYqACd1OkOBIqN5cfU1QnNwn3ilJnYqyc2g/K9pN89cOjpuSmDrxZK26hcLKxKN94e8JW7n7I5xfy9cDM5AsWqhqsEbPQsOlyoUba4iBMMW1ltVZFr+paS6bYOjP74Hh+QiSrGvYlIwIkjrvWr0uDcJveswgVraj196vIE8yHhcPX9Go/M5cHfsfmT7muTw2Wn0z+yT5M+sh7kFOaNaiYKudMpB1Ni9R54MTcr/TfH2vaTKmXNJHTniHvUf/FkYb56eUVVACmVwdaEYTx+qivK+Z2wkz+ZNuXZ59TA8rDJNzvNdZO7Xlp2m6sC2Hqvuf8xU5WHyb88jRHqU4XCixNm59wJQgJFvnbHjtibjqDCv9QH/ibbqouHK6cVBhZEXSMB3HwWS2mXGA+lTFOxoFL/jEQZmYcgfRGno1falLksR3m02ScBOe/jtW9Zyg/NdBxIv3498LjBLNCschMW0ZAtnYo+8eGzLr6dh62xkdKHJdkh8YaHsyks6cPfSyw/0/kGCBXf66EqXJ3rKEhZ/sUxgCMFktZHcOM9Wq/3EkCbT8p8IYwKK9A8ebUmLzlqYAmmscnv8Lr5s3Uo7C6s1mcGw55HnUqx5bkGPr6PEnrRKO6R9CFXeDwq7l0fTAa5uw4ynIyUBZmJQS84
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(7416014)(376014)(22082099003)(18002099003)(56012099006);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?CGnrTKkN2CyW/JrNmm53ZkVEw9mHwkDNBw05XuVDN/WNjJ6b+5DJKvT7DH2i?=
 =?us-ascii?Q?POGVq9yFelU+QTLF0nIzbkDPxkf39HxzL6CklkVv3szlZxejfDmz40MF1BfK?=
 =?us-ascii?Q?ZMcmGYK67s3H70MsxaM7BzDPNVTvIVho/S5po/9VBWdtzTDsn616+LALSrLH?=
 =?us-ascii?Q?IC4lZQ5d3CJ76lIkFAhQU8aNqNtSnCalV5ivN6RwCBLp+Jgdhg+RJgDNElGi?=
 =?us-ascii?Q?j5UyNLISTNeq00A+BBTysczq/cCk26hSX70yTJ5XGWsJu8Vl4NUdSHqFTVg4?=
 =?us-ascii?Q?mpmHkRpPQXSE5jsk7s0ibghncpKfXm2cC9z5ZSEkctYOqBM45F3flqH6Jl+D?=
 =?us-ascii?Q?KfpU+2V/sxCWKvy8Sb8iIdBJDxyo0aAieM4o7TuuKPXBe9rCNdljrsU+nn90?=
 =?us-ascii?Q?aijF/EyvrMWKGIJ/HtWT3nYlj09kpz2jlX1qVY71F369Z0alXyIfVZrCt+OX?=
 =?us-ascii?Q?+cDRefKcTT0c6GF79n7JgZy7NeA3gjTtH+hiKyU6sXK00f/QNlB5nnTvjO5n?=
 =?us-ascii?Q?wo3NFwi19JVME3LB3s30dTkSEMdET6Yw4cGdHppiZk1IpMNCMr9Rdupw1d1d?=
 =?us-ascii?Q?cy11z7YD/N7zh8OXldxV+PxQPSXmKDd985XAI4mzFNIjoZMcAn5uAl3qPAlO?=
 =?us-ascii?Q?vsufoLKIufmyeZTd2/dlAZHqMCFrrnQGouZh27ry9oTekOggiXqBaFOov3dL?=
 =?us-ascii?Q?+TMVkMOrjdv7hW847Lbgw044lP+Cy6WSp4NyvA+ZCgVLlmpemWs5xGHchin4?=
 =?us-ascii?Q?hrq3wiXmxcnzgKfp3RcFAJ6ju0V7wn0olfd/mbeSPP8AkscAJeN2nRkIKC+x?=
 =?us-ascii?Q?AFHBC6Ovgc6ASNgIqRvRMQPmh7ekc4XcH0UNW39U+FlgiYll+4mTWhzMgaCL?=
 =?us-ascii?Q?Tz3Cef0Soh3yeljHM2bkOUozFv84K8v+wsLnJDMVh0IGnCQhlp3wmDbmsXVg?=
 =?us-ascii?Q?Fkm1Db2RQjR6TsBWEHftrxkMvpMAcAea+tidho7Dr5MNJX7eu6STywslchMH?=
 =?us-ascii?Q?ZrVBspU/QChzlQ1r91BvP/sJtVUQPziE6SwyMKwdAPvA9sp3hCkRqBPOSDZh?=
 =?us-ascii?Q?wHk/Ipw+DgU/2ST+gKH2g1TCVi8lpJybD/yfhTd63Sd47KjivGqBZyQ4JpHZ?=
 =?us-ascii?Q?5ec4gzySFMxr/7CIsYLSYunC5YjmTpS4sVWUx3xRCuFjISavgERwSFITfs7H?=
 =?us-ascii?Q?LjnD+YpB9VPehXybW3QmnfCe1l4HOb5rYqKE4cCBfdORMJc3ojaBRv4ENPqc?=
 =?us-ascii?Q?HvJQvhTx6vg1NBPUeqdpU4oeEM97S4GTh6zNPZEsNc9OMDyml3TrQsrOXSJ/?=
 =?us-ascii?Q?eB93Kbxi68/MGwyJnWqTYhBNtxzqjK8xbH3dnZr9dJmkpc57PY+JTY/vhrDo?=
 =?us-ascii?Q?lsoe0zB6PJuHV1af3kW5Ejl2KvTPBd7yzwzRTixPgnqtCEi3U8N3t0zml+Lw?=
 =?us-ascii?Q?uQp7O/8nXURdWJ2u5tWNZ3sRRiobfbAWjgBiWtvqtMze1pNS0fcWdaGlUHC6?=
 =?us-ascii?Q?da/DXsT97WcsAN1QMbAEuHemaNimzYGGdKi0ZUDSGGmPZTQckrVCmj9cMq5i?=
 =?us-ascii?Q?Vl/Ln6EE55RhMj77s1QNZcH3Xa9b24Z6A9w9xxm5YxX1dJTWYNSY8AhBzu28?=
 =?us-ascii?Q?RXexHN2lZ/E9EprLJw+keYsTVvYGmWBv665AlPim2xizBJUk9A3BsQmv/H2e?=
 =?us-ascii?Q?r48Wvlm0/car64SoA95XB3Y3UcM3cMGFJUJ8oDI+Tbu+FfhjUPKRy8Ye0oVZ?=
 =?us-ascii?Q?/S43PfOCXpTwPhPqlY4OltPy8vyVz1oMbtfipbhabT0da+fsTwp5FrQJ6QBu?=
X-MS-Exchange-AntiSpam-MessageData-1: tv7tSO75kUFUug==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 0beea134-44a3-46d6-b48b-08debf66b257
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:13.3377
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ZmHs8pbVzBvTiVjOW3eG0wi9/r7qSCRDjkNoRFIU7fqtqVAU7IXzKFZ/AtqfONc17Efaw0jiPrW7oEDk9lX6LA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB2972
X-purgate-ID: tlsNG-bad1c0/1780267697-37F7EA53-CE9D9EDE/0/0
X-purgate-type: clean
X-purgate-size: 12559

Parse the 'cpu-map' node in the Device Tree to extract CPU topology
information. If the 'cpu-map' node is absent, fall back to
generating the topology data from the NUMA information. This
generation assumes exactly one socket per NUMA node and that SMT
is unsupported.
---
 xen/arch/arm/Kconfig                  |   1 +
 xen/arch/arm/smpboot.c                |   6 +
 xen/common/Kconfig                    |   3 +
 xen/common/device-tree/Makefile       |   1 +
 xen/common/device-tree/cpu-topology.c | 306 ++++++++++++++++++++++++++
 xen/include/xen/cpu-topology.h        |  42 ++++
 6 files changed, 359 insertions(+)
 create mode 100644 xen/common/device-tree/cpu-topology.c
 create mode 100644 xen/include/xen/cpu-topology.h

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index e67219e949..c673ca345f 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -102,6 +102,7 @@ endchoice
 config ARM_NUMA
 	bool "Device tree based NUMA support (UNSUPPORTED)" if UNSUPPORTED
     select DEVICE_TREE_NUMA
+    select DT_CPU_TOPOLOGY
 	help
 	  Device tree based NUMA support. The "numa-node-id" property in
 	  the CPU and memory nodes of a Device Tree defines the NUMA node
diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index eafa195504..6bcf7e7f53 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -24,6 +24,7 @@
 #include <xen/warning.h>
 #include <xen/irq.h>
 #include <xen/console.h>
+#include <xen/cpu-topology.h>
 #include <asm/cpuerrata.h>
 #include <asm/gic.h>
 #include <asm/procinfo.h>
@@ -248,6 +249,8 @@ static void __init dt_smp_init_cpus(void)
         else
             tmp_map[i] = hwid;
 
+        map_cpuid_to_node(i, cpu); /* pass the info to dt_init_cpu_topology() */
+
 #ifdef CONFIG_DEVICE_TREE_NUMA
         if ( tmp_map[i] != MPIDR_INVALID )
         {
@@ -294,7 +297,10 @@ void __init smp_init_cpus(void)
     }
 
     if ( acpi_disabled )
+    {
         dt_smp_init_cpus();
+        dt_init_cpu_topology();
+    }
     else
         acpi_smp_init_cpus();
 
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 89fa7d10c7..a1db4fcf17 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -188,6 +188,9 @@ config VM_EVENT
 config NEEDS_LIBELF
 	bool
 
+config DT_CPU_TOPOLOGY
+	bool
+
 config DEVICE_TREE_NUMA
 	select NUMA
 	bool
diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
index 658aa293c4..bbe60297aa 100644
--- a/xen/common/device-tree/Makefile
+++ b/xen/common/device-tree/Makefile
@@ -1,6 +1,7 @@
 obj-y += bootfdt.init.o
 obj-$(CONFIG_HAS_DEVICE_TREE_DISCOVERY) += bootinfo-fdt.init.o
 obj-$(CONFIG_HAS_DEVICE_TREE_DISCOVERY) += bootinfo.init.o
+obj-$(CONFIG_DT_CPU_TOPOLOGY) += cpu-topology.o
 obj-y += device-tree.o
 obj-$(CONFIG_DOMAIN_BUILD_HELPERS) += domain-build.init.o
 obj-$(filter $(CONFIG_DOM0LESS_BOOT),$(CONFIG_HAS_DEVICE_TREE_DISCOVERY)) += dom0less-build.init.o
diff --git a/xen/common/device-tree/cpu-topology.c b/xen/common/device-tree/cpu-topology.c
new file mode 100644
index 0000000000..82a366f3f6
--- /dev/null
+++ b/xen/common/device-tree/cpu-topology.c
@@ -0,0 +1,306 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Derived from Linux kernel 7.0's $drivers/base/arch_topology.c
+ * Parse cpu topology information.
+ *
+ * Copyright (c) 2026 VA Linux Systems Japan K.K.
+ * Author: Hirokazu Takahashi <taka@valinux.co.jp>
+ */
+
+#include <xen/cpu.h>
+#include <xen/cpumask.h>
+#include <xen/delay.h>
+#include <xen/device_tree.h>
+#include <xen/cpu-topology.h>
+#include <xen/numa.h>
+#include <xen/domain_page.h>
+#include <xen/errno.h>
+#include <xen/init.h>
+
+static struct dt_device_node * __initdata dt_cpu_table[NR_CPUS];
+
+struct cpu_topology __ro_after_init cpu_topology[NR_CPUS] = {
+    [0 ... NR_CPUS-1] = {-1, -1, -1, 0}
+};
+
+static void __init setup_siblings_masks(unsigned int cpuid)
+{
+    struct cpu_topology *cpu_topo, *cpuid_topo = &cpu_topology[cpuid];
+    int cpu;
+
+    /* update core and thread sibling masks */
+    for_each_possible_cpu(cpu) {
+        cpu_topo = &cpu_topology[cpu];
+
+        if (cpuid_topo->package_id != cpu_topo->package_id)
+            continue;
+
+        cpumask_set_cpu(cpuid, &cpu_topo->core_sibling);
+        cpumask_set_cpu(cpu, &cpuid_topo->core_sibling);
+
+        if (cpuid_topo->cluster_id != cpu_topo->cluster_id)
+            continue;
+
+        if (cpuid_topo->cluster_id >= 0) {
+            cpumask_set_cpu(cpu, &cpuid_topo->cluster_sibling);
+            cpumask_set_cpu(cpuid, &cpu_topo->cluster_sibling);
+        }
+
+        if (cpuid_topo->core_id != cpu_topo->core_id)
+            continue;
+
+        cpumask_set_cpu(cpuid, &cpu_topo->thread_sibling);
+        cpumask_set_cpu(cpu, &cpuid_topo->thread_sibling);
+    }
+}
+
+static struct dt_device_node * __init dt_find_child_node_by_name(struct dt_device_node *from, const char *name)
+{
+    struct dt_device_node *np;
+    struct dt_device_node *dt = from;
+
+    dt_for_each_child_node(dt, np)
+        if ( np->name && (dt_node_cmp(np->name, name) == 0) )
+            break;
+
+    return np;
+}
+
+void __init map_cpuid_to_node(u32 cpuid, struct dt_device_node *cpu_node)
+{
+    dt_cpu_table[cpuid] = cpu_node;
+}
+
+static int __init cpu_node_to_id(struct dt_device_node *cpu_node)
+{
+    int cpu;
+    bool found = false;
+
+    for_each_possible_cpu(cpu) {
+        found = (cpu_node == dt_cpu_table[cpu]);
+        if (found)
+            return cpu;
+    }
+
+    return -ENODEV;
+}
+
+/*
+ * This function returns the logic cpu number of the node.
+ */
+static int __init get_cpu_for_node(struct dt_device_node *node)
+{
+    struct dt_device_node *cpu_node = dt_parse_phandle(node, "cpu", 0);
+
+    if (!cpu_node)
+        return -ENOENT;
+
+    return cpu_node_to_id(cpu_node);
+}
+
+static int __init parse_core(struct dt_device_node *core, int package_id,
+                int cluster_id, int core_id)
+{
+    char name[20];
+    bool leaf = true;
+    int i = 0;
+    int cpu;
+
+    do {
+        struct dt_device_node *t;
+
+        snprintf(name, sizeof(name), "thread%d", i);
+        t = dt_find_child_node_by_name(core, name);
+
+        if (!t)
+            break;
+
+        leaf = false;
+        cpu = get_cpu_for_node(t);
+        if (cpu >= 0) {
+            cpu_topology[cpu].package_id = package_id;
+            cpu_topology[cpu].cluster_id = cluster_id;
+            cpu_topology[cpu].core_id = core_id;
+            cpu_topology[cpu].thread_id = i;
+        } else if (cpu != -ENODEV) {
+            printk(XENLOG_ERR "ERROR: %pOF: Can't get CPU for thread\n", t);
+            return -EINVAL;
+        }
+        i++;
+    } while (1);
+
+    cpu = get_cpu_for_node(core);
+    if (cpu >= 0) {
+        if (!leaf) {
+            printk(XENLOG_ERR "ERROR: %pOF: Core has both threads and CPU\n",
+                   core);
+            return -EINVAL;
+        }
+
+        cpu_topology[cpu].package_id = package_id;
+        cpu_topology[cpu].cluster_id = cluster_id;
+        cpu_topology[cpu].core_id = core_id;
+    } else if (leaf && cpu != -ENODEV) {
+        printk(XENLOG_ERR "ERROR: %pOF: Can't get CPU for leaf core\n", core);
+        return -EINVAL;
+    }
+
+    return 0;
+}
+
+static int __init parse_cluster(struct dt_device_node *cluster, int package_id,
+                int cluster_id, int depth)
+{
+    char name[20];
+    bool leaf = true;
+    bool has_cores = false;
+    int core_id = 0;
+    int i, ret;
+
+    /*
+     * First check for child clusters; we currently ignore any
+     * information about the nesting of clusters and present the
+     * scheduler with a flat list of them.
+     */
+    i = 0;
+    do {
+        struct dt_device_node *c;
+
+        snprintf(name, sizeof(name), "cluster%d", i);
+        c = dt_find_child_node_by_name(cluster, name);
+
+        if (!c)
+            break;
+
+        leaf = false;
+        ret = parse_cluster(c, package_id, i, depth + 1);
+        if (depth > 0)
+            printk(XENLOG_WARNING "WARNING: Topology for clusters of clusters not yet supported\n");
+        if (ret != 0)
+            return ret;
+        i++;
+    } while (1);
+
+    /* Now check for cores */
+    i = 0;
+    do {
+        struct dt_device_node *c;
+
+        snprintf(name, sizeof(name), "core%d", i);
+        c = dt_find_child_node_by_name(cluster, name);
+
+        if (!c)
+            break;
+
+        has_cores = true;
+
+        if (depth == 0) {
+            printk(XENLOG_ERR "ERROR: %pOF: cpu-map children should be clusters\n", c);
+            return -EINVAL;
+        }
+
+        if (leaf) {
+            ret = parse_core(c, package_id, cluster_id, core_id++);
+            if (ret != 0)
+                return ret;
+        } else {
+            printk(XENLOG_ERR "ERROR: %pOF: Non-leaf cluster with core %s\n",
+                   cluster, name);
+            return -EINVAL;
+        }
+
+        i++;
+    } while (1);
+
+    if (leaf && !has_cores)
+        printk(XENLOG_WARNING "WARNING: %pOF: empty cluster\n", cluster);
+
+    return 0;
+}
+
+static int __init parse_socket(struct dt_device_node *socket)
+{
+    char name[20];
+    bool has_socket = false;
+    int package_id = 0, ret;
+
+    do {
+        struct dt_device_node *c;
+
+        snprintf(name, sizeof(name), "socket%d", package_id);
+        c = dt_find_child_node_by_name(socket, name);
+
+        if (!c)
+            break;
+
+        has_socket = true;
+        ret = parse_cluster(c, package_id, -1, 0);
+        if (ret != 0)
+            return ret;
+
+        package_id++;
+    } while (1);
+
+    if (!has_socket)
+        ret = parse_cluster(socket, 0, -1, 0);
+
+    return ret;
+}
+
+/*
+ * Generate cpu topology information when cpu-map node doesn't exist.
+ * It assumes that the cpu doesn't have SMT and all CPUs on a NUMA
+ * node belong to the same socket.
+ */
+static void __init fixup_topology(void)
+{
+    int cpu;
+    int clid = 0;
+    int pkgid = 0;
+
+    for_each_possible_cpu(cpu)
+    {
+        struct cpu_topology *cpu_topo = &cpu_topology[cpu];
+
+        cpu_topo->package_id = cpu_to_node(cpu);
+        if (cpu_topo->package_id != pkgid)
+        {
+            pkgid = cpu_topo->package_id;
+            clid = 0;
+        }
+        cpu_topo->cluster_id = clid++;
+        cpu_topo->core_id = 0;
+        cpu_topo->thread_id = 0;
+    }
+}
+
+int __init parse_dt_topology(void)
+{
+    struct dt_device_node *cpus;
+    struct dt_device_node *map;
+
+    cpus = dt_find_node_by_path("/cpus");
+
+    if ( !cpus )
+    {
+        printk(XENLOG_ERR "ERROR: No CPU information found in DT\n");
+        return -EINVAL;
+    }
+
+    map = dt_find_child_node_by_name(cpus, "cpu-map");
+    if ( !map )
+        return -ENOENT;
+
+    return parse_socket(map);
+}
+
+void __init dt_init_cpu_topology(void)
+{
+    int cpu;
+
+    if (parse_dt_topology())
+        fixup_topology();
+
+    for_each_possible_cpu(cpu)
+        setup_siblings_masks(cpu);
+}
diff --git a/xen/include/xen/cpu-topology.h b/xen/include/xen/cpu-topology.h
new file mode 100644
index 0000000000..8445f5786d
--- /dev/null
+++ b/xen/include/xen/cpu-topology.h
@@ -0,0 +1,42 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef XEN_CPU_TOPOLOGY_H
+#define XEN_CPU_TOPOLOGY_H
+
+#include <xen/types.h>
+#include <xen/device_tree.h>
+
+struct cpu_topology {
+    int thread_id;
+    int core_id;
+    int cluster_id;
+    int package_id;
+    cpumask_t thread_sibling;
+    cpumask_t core_sibling;
+    cpumask_t cluster_sibling;
+};
+
+
+#ifdef CONFIG_DT_CPU_TOPOLOGY
+extern struct cpu_topology cpu_topology[NR_CPUS];
+
+void map_cpuid_to_node(u32 cpuid, struct dt_device_node *cpu_node);
+void dt_init_cpu_topology(void);
+
+#elif CONFIG_DEVICE_TREE_PARSE
+
+static inline void map_cpuid_to_node(u32 cpuid, struct dt_device_node *cpu_node) {}
+static inline void dt_init_cpu_topology(void) {}
+
+#endif /* CONFIG_DEVICE_TREE_PARSE */
+
+#endif /* XEN_CPU_TOPOLOGY_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323451.1589126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTox0-0003sL-JU; Sun, 31 May 2026 22:48:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323451.1589126; Sun, 31 May 2026 22:48:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTox0-0003sD-EZ; Sun, 31 May 2026 22:48:10 +0000
Received: by outflank-mailman (input) for mailman id 1323451;
 Sun, 31 May 2026 22:48:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wTowx-0003rv-Pc
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToww-008Rpn-Md
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:06 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba94-e002-0a2a0a5209dd-0a2a45059030-10
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:05 +0200
Received: from [40.107.74.122]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbaa2-aaa8-0a2a45050019-286b4a7acd57-3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:04 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TYWP286MB2972.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fe::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Sun, 31 May
 2026 22:48:00 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:47:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XdYt07bkS+GkSgBZWuKwNaOYAbd2Bp+93o1+c0n613G7qgjN3zZOzX22trznPS2ss/jx9w65p2aexHSMw6dRLG4bH/dl+HN4R7IvxxZK2wu8fezp0nSflob9EpusYSMpQTxy2+XJor6+2lrsdB/H6LP5wW7emNABmD4XFwgvbPJnoPEzw9IhNY3rXZUFE7sJAEBms0J+7jQWxWjI8OVBTjW7DqLHq+D3uuaKG+HWPOFxnOaH6ylr72FxMfa3ae5CpN8CQXAIBnVm9x95EjK+j0M4iKn09oJTZjSsxmQNKQ+z8Z/XMF5VdwasMQe/dPktz7q1llKNDEokrW7eZtyi0g==
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=D3/zwRwToyUW7sgpHxnLbfCUw6Hh/u9E2cfxXK2NMiQ=;
 b=aBqCSQW/q8TiP+B2QBSqGgCSGBJl11aFW5qN4174g4IA4yBmx6HfXv8T3nlDlheIDddXcu8LkM0CA4Nvb5Nr/rKrDD7/GS/8J2EfrW/FjppVf5Z0hfTonhu6SVXbE3cAs7bAniHOdrWd+6fJNhX+4pz9zbBWM1FB2HTsBKVouDNvWyNME1GVhhgzuWRxhIioiMk4vedVwsbrpkBC6+7MFaHCJWGO0PLiFcAxLaR8ksJzCPm0WjfwRMXHnjqqdAC39fsbn2F+w4sanDtgxSSiKWzNs8P7lLgxtFEpEZ6fBhJxPCu8veUaGz8AX7gxB130qgLIedIVXH9nuW8V2oaeNw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=D3/zwRwToyUW7sgpHxnLbfCUw6Hh/u9E2cfxXK2NMiQ=;
 b=ZKZRfdBG79t7LWvaf7fhtU9cKLtbgMAaB+EZQ0oD3giV8UI4sv4JqUr0eXRHgwKnhMDW3a/ozSjUUEXamPl7XG2hnygeMmjLNT/2wkyzE9gc/Zq0vwx8ZiecRX0Uce6ACafs+66elOm7Vxpv+ETpvtF9NhaxJliw7sPCqhCfFJ4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v2 00/24] Introduce Device Tree based NUMA support for ARM Xen
Date: Mon,  1 Jun 2026 07:47:30 +0900
Message-ID: <20260531224755.9481-1-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4P301CA0061.JPNP301.PROD.OUTLOOK.COM
 (2603:1096:405:36a::17) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYWP286MB2972:EE_
X-MS-Office365-Filtering-Correlation-Id: 4526f8ed-394c-4db9-cf2d-08debf66aa30
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|10070799003|1800799024|366016|376014|18002099003|5023799004|6133799003|56012099006;
X-Microsoft-Antispam-Message-Info:
	5ERm2ouvYw7qNi+KOF8dINdVkk9WwbTiQWAcHFbOvJOPn9QCpixQVyLC5x5uiquJZjBpnO5j5LL2PCO1RNxDXusg0LCSLV7FIXPIgRrBamxpKvJWrTlxcs4KlIrgD+iPB6rCpwxhAoAaiUEUdGqeepYH9Dj7lQnekTzB1HhyeDP1M7IlNwITEYKrLnIkYCG/xMRyN/ntH9gxzAcTUyIDphBLxe2F1z+m7+8OdCZrHXkNONwJWZT3HBQV+kPUAmdUFlLJxBJoVrNs22bs/MevH60V+d3tJM6sLn7L0w1zL7SvEoBOKe0tPzp9AeF3VnYamfUdl9O1P6Gdoh0IDXn1OfhDEaBTn7LueOa/CFCSw8TJaO0bIeoYKzaZA/IGftTc+tunxqZgTUeZKCJWqoFU1FvbLtnk0Cm0UsTFe+rbhUVhJtl1hqAO84G0BlRUKSp9jjODlqcobDHNno/fimiKAtfnLWS6tO5GTAIldPBa9cK9kOLPDPoKxfy52KCRlPG2rzs2UbYRCgnPuNoAzUbdz5X+p2T95+MuZXkNWBUEkyC5P9B3qCYJ8MuI7Owl+NbYJKu2ZPlo0c/I3WbWsIgEWM4EMTlrzXv+Te90TbAcU8KKME6WKCiEpn6tL+NWQK3kAZT8k6ZZi5AgmzcrFH1raYvp9b9fsSnn+tuxRPh++mUfGvHLp/8EvI7OONIOOoCPWTSVSisLYvXhNO5mouopvw==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(376014)(18002099003)(5023799004)(6133799003)(56012099006);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?iDoA5OGHPBeV5devIH/ZeIVig3N2R0XlMXvjGHNJ1G9PSe+COAEK02DgNfhg?=
 =?us-ascii?Q?KIUyBiLfD2Jg3heX33pY8fEO+1/KUM3oy6cEuzSHOgLIVcCxHHBVjyolQz/3?=
 =?us-ascii?Q?Yqv9+5FHmJphMjibFNvNkJiPDMNwqzuUccmaJw3wGDJwcj3tWV5oWfRjIdA7?=
 =?us-ascii?Q?NT/h6hFw3dTxRJVOs6ImyIa/Xe25x/wfTrL6BoCAYgr9Pbg4JM/zOvVZSf1H?=
 =?us-ascii?Q?wQ95C6dZd3JE7D36PXDN0Et9BaGv1xfobMTyV6keBr15yrm5tNXjFWA1hT3c?=
 =?us-ascii?Q?7nN8EFk6Bz+NaVShtrlJ0c71oiCl4yJ+uRwNANdm7JRgUwqEhZ3Hx3C3yyW1?=
 =?us-ascii?Q?hZWAYBVFTQpnRC9CXLWn9YNp674ZJmVbK4Arp3vEFrzD3HvdtAgVzaph0nAi?=
 =?us-ascii?Q?54uFC1Ww8ljie/zNVcnH6qeSp0HkxziX0hVPhA+sRm6fylMTL3iH+03IDZKZ?=
 =?us-ascii?Q?b+ofd2WhpS/zLUYgchaCGDkYvb6bl5nEd+38XwOp6N6rJs5O9Wzwg7ZPEGVY?=
 =?us-ascii?Q?Rknmu+dn1B5XIHCvH56L/3KKzf2CyVRnz5wMsfrERe4fm2IFt1iMf7Amr6X6?=
 =?us-ascii?Q?JtTOIBdZKyQcS++YDv6CVLoumSg5OWMF5zdCoM4rBO20bnKe42K2bfGEivCS?=
 =?us-ascii?Q?e4NYJUa8yLyFgn3sG66HTgADhM+lnBenIRkg0fWqHLRAw2Br5dRPJVaJT4Az?=
 =?us-ascii?Q?DxcmYaIA/CFcZv9eZqk4rdJ1PnDeZvlMcaSb4Ss8OnE82hSL5MyzBnbpIp4v?=
 =?us-ascii?Q?o3rwnskj0Pvvk/D9PJ6Mu1FxOVmqj8po2KxqRN4Ggebtj4I8yeqYqV0XQ+gb?=
 =?us-ascii?Q?PgZu/CdlB5huan2lymKoqFS0zM0zLzrNo1xuOQEx0cB9kzT+FRdC7UQIF18i?=
 =?us-ascii?Q?Gn27L4L0YU90YqD5OXkmwEwGXoSdbtld+x4GvgevZzFeAHWQ1oGYEAH/Kdku?=
 =?us-ascii?Q?kHE4rO1rnOULZHM6Qi5TQvpjMj+KQ4zVeb3qmp0c6gOoZ+C3B0uM1lXQps2j?=
 =?us-ascii?Q?3N31awAGQpQonO2roFSOTLHDlkN4LvmNZqETSWZYPw8OgiDz5LIVoWvy4U6V?=
 =?us-ascii?Q?CZe9sXhXo0xThKQY1+X5v8812XEtt4gn30cdkscsg8tCOWZk8KapO6idFVjS?=
 =?us-ascii?Q?fzq++iblFhfJsplAmuASrYLfYx+XDqzgGb56X4Rig5uWU8L5ZHgp4XQDsupK?=
 =?us-ascii?Q?mwnoiI9R53XBCq8R0cACUXsx34Li1wJEFspzI1Y8woYf2UG8hbYPmR2uziTq?=
 =?us-ascii?Q?jcqXUnC2yzIis01JWKDhwu2CQOURQN0/EvOtNW4aKBlxAEWItZczGEM1DWVY?=
 =?us-ascii?Q?3S0vBMfw6fH4qg/BWUCDgvJiidglNQG+W3Qrwun8kxi0hG+7QpkYGnlmZ+aT?=
 =?us-ascii?Q?LtFyMqZYVCuLx3nW4czWkRgSreB85v8UNn+W6PRWcuR7ZLIVQgX4zEHEjknR?=
 =?us-ascii?Q?+hTx07Xgw89eAmzyCAB0qd3RWZdOcKwnGs/ZYHqoLGkbsWqFgL0TBq9ZStha?=
 =?us-ascii?Q?5NbmbnrB+V8t7/5bs8uw47SCldcrxhjQQ0stHx2bn1/mbX85Cf2tJiyZWP9H?=
 =?us-ascii?Q?OHyFzwIRTEFP2nsFgcbwwxeqEQmgkeKvaJe2edpa+3PDEQ0yKUPQFtfos+k2?=
 =?us-ascii?Q?pJgmiP8IrchXUPqT4Xt9PnhTIlDeInqZzDaNKt9XYDsNNTeb/C8ZjO2jJKb/?=
 =?us-ascii?Q?zmLZgspmWPT6B8v1JBR3DLTikqbYGLo6AYzTk8DH3nYQFyuL6Q7h8ezH4TbU?=
 =?us-ascii?Q?J9krKR5MdVoBUQcBTYePM1O8LaDUIxvRuhUjrzwvqNe4kA56TpiqivHms02L?=
X-MS-Exchange-AntiSpam-MessageData-1: 4BanTVy2XASFtA==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 4526f8ed-394c-4db9-cf2d-08debf66aa30
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:47:59.7094
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: XNMCoUmsXcKyhfQ0nD4PGIPttmvdu8tT3hEFhWWqX2zsOHNOn0kJY+pUlLCEoOjIZC0QydKQxjbvtnwu9T4Cmg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB2972
X-purgate-ID: tlsNG-c201ff/1780267685-E1B9E443-26C3DDC8/0/0
X-purgate-type: clean
X-purgate-size: 4675

Hello,

Regarding the configuration, we now select CONFIG_ARM_NUMA when
using NUMA on ARM Xen. Eventually, it would be great to have NUMA
enabled by default, just like it is on x86.

I also fixed a bug in the DomU memory layout creation where an x86
dependency was breaking memory allocation for vNUMA nodes. With
this fix, it correctly references the domain's vNUMA node
information and performs NUMA-aware memory allocation.
For now, I've applied a simple fix using #ifdef, but I'm wondering
if we should make this more generic.

Additionally, some code borrowed from the Linux kernel doesn't
strictly follow the Xen coding style. I've left it as-is for now
because I want to avoid creating unnecessary diffs against the
original Linux kernel code.

Changes in v2:
- Fix vNUMA memory allocation algorithm to support ARM
- Allocate vNUMA memory from the associated pNUMA memory
- Include the XSM Policy module size in the required memory
  calculation for Dom0 Bank 0.
- Enforce a minimum chunk size of 4MB during Dom0 memory
  allocation.
- Define the cpu_to_core() and cpu_to_socket() macros in
  cpu-topology.h instead of processor.h, as processor.h should
  strictly focus on processor hardware information.
- Make cpu_nr_siblings() an architecture-specific function.
- Refine the code to conform with the Xen coding style guidelines.

Thanks,
Hirokazu Takahashi

Hirokazu Takahashi (24):
  xen/device-tree: Initial framework for Device Tree NUMA support
  xen/arm: NUMA helper functions via Device Tree helpers
  xen/arm: Introduce CONFIG_DEVICE_TREE_NUMA config option
  xen/arm: Configure NUMA affinity for populated memory banks
  xen/arm: Map populated CPUs to their respective NUMA nodes
  xen/device-tree: Read NUMA node distance from Device Tree
    'distance-map'
  xen/device-tree: Parse 'cpu-map' node for CPU topology exploration
  xen/sched: Link CPU topology to scheduler and display via xl info
  xen/sched: Make cpu_nr_siblings() architecture-specific
  xen/common: Allow building ARM32 Xen with CONFIG_NUMA
  tools/libxl: Fix vNUMA memory allocation algorithm to support ARM
  tools/libs/guest: Allocate vNUMA memory from associated pNUMA nodes
  tools/libxl: Add 'numa-node-id' property to DomU memory nodes
  tools/libxl: Add 'numa-node-id' property to DomU CPU nodes
  tools/libxl: Create 'distance-map' node in DomU Device Tree
  xen/arm: Introduce dom0_nodes boot command option
  xen/arm: Set Domain-0 node affinity from dom0_nodes option
  xen/arm: Reflect physical NUMA node IDs in Dom0 memory DT nodes
  xen/arm: Balance Dom0 vCPU assignment across NUMA nodes
  xen/arm: Export Dom0 vCPU-to-NUMA node mapping to Device Tree
  xen/arm: Generate distance-map node for Dom0 Device Tree
  xen/arm: Balance Dom0 memory allocation across allowed NUMA nodes
  xen/arm: Use dedicated function for Static SHM Device Tree creation
  xen/arm: Support numa and dom0_nodes boot options

 docs/misc/xen-command-line.pandoc     |   9 +-
 tools/libs/guest/xg_dom_arm.c         |  62 +++-
 tools/libs/light/libxl_arm.c          | 103 ++++++-
 tools/libs/light/libxl_vnuma.c        |  13 +-
 xen/arch/arm/Kconfig                  |   9 +
 xen/arch/arm/Makefile                 |   1 +
 xen/arch/arm/domain_build.c           | 428 +++++++++++++++++++-------
 xen/arch/arm/include/asm/numa.h       |  19 ++
 xen/arch/arm/include/asm/processor.h  |   4 -
 xen/arch/arm/numa.c                   |  62 ++++
 xen/arch/arm/setup.c                  |   4 +
 xen/arch/arm/smpboot.c                |  35 ++-
 xen/arch/x86/include/asm/processor.h  |   1 +
 xen/common/Kconfig                    |   7 +
 xen/common/device-tree/Makefile       |   2 +
 xen/common/device-tree/bootinfo-fdt.c |   8 +
 xen/common/device-tree/cpu-topology.c | 360 ++++++++++++++++++++++
 xen/common/device-tree/domain-build.c |  99 +++---
 xen/common/device-tree/numa.c         | 142 +++++++++
 xen/common/numa.c                     |   2 +-
 xen/common/sched/credit2.c            |  22 +-
 xen/common/sysctl.c                   |   1 +
 xen/include/xen/bootinfo.h            |  37 +++
 xen/include/xen/cpu-topology.h        |  53 ++++
 xen/include/xen/dt-numa.h             |  31 ++
 xen/include/xen/fdt-domain-build.h    |   2 +
 26 files changed, 1310 insertions(+), 206 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/numa.h
 create mode 100644 xen/arch/arm/numa.c
 create mode 100644 xen/common/device-tree/cpu-topology.c
 create mode 100644 xen/common/device-tree/numa.c
 create mode 100644 xen/include/xen/cpu-topology.h
 create mode 100644 xen/include/xen/dt-numa.h

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323460.1589203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxD-0005pG-G8; Sun, 31 May 2026 22:48:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323460.1589203; Sun, 31 May 2026 22:48:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxD-0005oQ-62; Sun, 31 May 2026 22:48:23 +0000
Received: by outflank-mailman (input) for mailman id 1323460;
 Sun, 31 May 2026 22:48:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxC-0005ku-AC
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxB-00261G-N8
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:21 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba69-2eae-0a2a0a5409dd-0a2a45099642-38
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:21 +0200
Received: from [52.101.229.101]
 (helo=TY3P286CU002.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbab2-2497-0a2a45090019-3465e565b3a6-4
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:21 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TYWP286MB2972.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fe::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Sun, 31 May
 2026 22:48:17 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ohfPRdR+DVcOyI93eBauyov+S9fRpwaii4znDrTYZZEJroSAXE6pUaT+HobRrZpKC9hB0yEcPfnOrjX9b9zTApi6+SfpRCuPvh35mae0YF0tUjhX4swVxaPVjPdyl3en6A1iRGJkmAScypY2FaWgJ0wY16l2R1qMWHICLDOdDW8blj3N3m4HVW19sACOvWWmTNcSjo/jx4jV1PbS0t8ydVqKF3eQBGuAQSXXpVdOKUGH3u2wC0eR5IK1/IzFpBssyEj6xWkSSfg1esCVE8sTNpo4mBMFczYQ6ogDfqaJ+tf8xOAO8/gZaJuAKGV4/uu1eIEQ1kwG1ZYvok63Hfp8/g==
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=a0PpIfsctPCeglWGS7bD14KTjXcY3vIaW0HpDsgassk=;
 b=Zue7N3Sfdif3xL3VuJWG7sgLbqmO2UKEF6oxestLTsd+DDbrNrugNOJciG93uNJis8ceEJwMyNVKGCOOW+YMM+X+wB+vXhphzrD/Eif8CWQ+b5979cAXRax2l+u8lI9q+v51I5bZsYnI1vlNnA7EqEylcGFoPcHDtQBAVk7lL80uQ7OPnCdLSeB/j+6pSGIlZeUNZgYDiHH7vi8lKDDeNeYxqiLrNniPb8iv340BtU7NlF7Hvb7sdbh97JTaQ6ETe7i8p0dfRnO8vrQ0M6ZgOkaX1J2DoJJW7dt3/yAbl15bBjDIwiTiBznD57406FreSNwhwK1xFznjfX5uXHTGmw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=a0PpIfsctPCeglWGS7bD14KTjXcY3vIaW0HpDsgassk=;
 b=XgdTMtviog72np0uBqJGRHikrwjNj1DQeo3Nd4B+8syvu62g4FA3bYGTMT5IhzaqJvWpm5LS020obutqzDYH5Yb9oYSwu5xNXEBXdEuV6y1kOMUfDpPigW4xEbiLLWuUsYA27W0R5wBLVChBgLHpEPniX93SanC8rv40Uxm1U/c=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Dario Faggioli <dfaggioli@suse.com>,
	Juergen Gross <jgross@suse.com>,
	George Dunlap <gwd@xenproject.org>
Subject: [PATCH v2 09/24] xen/sched: Make cpu_nr_siblings() architecture-specific
Date: Mon,  1 Jun 2026 07:47:39 +0900
Message-ID: <20260531224755.9481-10-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4PR01CA0035.jpnprd01.prod.outlook.com
 (2603:1096:405:2bd::17) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYWP286MB2972:EE_
X-MS-Office365-Filtering-Correlation-Id: f19261bc-7b32-4371-f53d-08debf66b50f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|10070799003|1800799024|366016|376014|22082099003|18002099003|56012099006;
X-Microsoft-Antispam-Message-Info:
	Xn1qSIhhHBHjber0T3MeDCV+Bm+L3NRx+x3hO40cLxG9G5gQFfmQ9WqZ7mJ3avs7w1RIpAZBvVBYOpJ2CFCklugJXYxMAFK5qxfMtMKqI90lFzo/M2TRozChpUdgHE4uBgV2SvfCTtJuBjY+ErLBYHwjxePX7vgn3MoZcZp6HlyDf3C5Cv0/k7Mmkm7UutONqrJzJ2pupfn7dRccoHcU+ijNCQubIqeXe94C2hD6F1hIQNVRwiweSc8ZLMVR8dcgMA3ieRBYZVMOEOGEy+fmzNp3sY8SAIQOlNfwQc+Oe7bmqRz9DLPhUdwHOS+NXR9U8YA4AcdpaWCwW9lirrgXtogRceEhXL/WGVzS+A9EHKOUpXNid1fdoyx1gQ9nXwXV0XBnJMsNNlvNZFCLyz8K8pslAnohnni/47QwovNz5oTXAExV6JIrsAhwWdeNgxuz7FvMjqrrCWjoEJQ0AzwXLhpjzYayeF0Oh/4CvmfkjMrweFikjh9I4D8DUcpWgsBNKNvD09gyu9ON5BmrE+vnAIaUm9npZ07zgOfzO4fevz56EKU/nbEgNAwQ0wRIPzwmCS2vMKN9HQ32KfQ0ULChqTa4NTfM58poxzrvGYXkGqcKr4OdtNH3RlbZKnT8rBCOGzOZkFpngn3Xi2acUJlsPkhe3TsoEO4YqTITmrTTWfFze31VC/YomXUqxS1UaHrC
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(376014)(22082099003)(18002099003)(56012099006);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?ujh9yeE1qwYBs+bUUAjw3i4eC+Mk0FQqmklwqRGY2u0dxfSnB/um3TLVLsNv?=
 =?us-ascii?Q?YuGpRCTbRkeAYX/riTDifxQCmeSeYXirWEB5Amg3aE4LnsO1HzLKfkLV56Rc?=
 =?us-ascii?Q?wTGhKwFKLVaslg0c0tgcjm0ezNWq+rs0rvMh8PY7wQB9d7+LJCml1m6WqAud?=
 =?us-ascii?Q?VG2s30m/TDKr5/IcB9Mfay+JAe7DFdk0N5W+MOAMtmYCtPLdW0tToAhmltDJ?=
 =?us-ascii?Q?c8Lx5bzxlDXkEWIOvabaONK15n+NsHeGbd10lr/9byT0+c1usM8CiUK/2j5z?=
 =?us-ascii?Q?hUIqy2rJU8rmUVx97OKWKRbeeW5Assz0gKR8HUieafAUY87MIl2bUMhqZArr?=
 =?us-ascii?Q?BJBp4bF9NtuVhzOzT4oeqiVfPgiU4pPJfLpdtbom3Z3968tKLz6XhS8X4ZSD?=
 =?us-ascii?Q?WNMzYHKch1UZtR/Ly11LxgbTAOR13g26tNWE9k86iZt4R0K4HgaeXjvJaWbR?=
 =?us-ascii?Q?Uq9wpWKDqwyNTtgSpgUyGG0Z5MMg3g3ldbL0NqK6olUsGYBScArTo8FM3cmp?=
 =?us-ascii?Q?/77vq3c/Mtmct3XXGtb9ndXvuf/MxRLR+37aemyJfHSm6rnuqqPe8iW16svy?=
 =?us-ascii?Q?qLbbBwfDwZZiC6dNDO2nfkjWSpgxBbxKYHMuzSRey0zikSKGHN1bb+D1aWmg?=
 =?us-ascii?Q?ADGZ9zzIqdM9KEFnSiib04Nder2EJ7/X3RJAXK5vWhK4H+9Gf6p70m/i4Ts1?=
 =?us-ascii?Q?deLYcxQQAORs+FnkQK04/B5C/hHuGut15dIPNFIBFHU3efiGEsbOu6rGKGhn?=
 =?us-ascii?Q?Z5IFxerewY17BHbNd9Cx4B4bW9yTUF2qreuK5EvbAC0i67e+csTXLiJI1vct?=
 =?us-ascii?Q?AisPs+fjqVOuFw1HiA+RQqtigOXFZaEsyaFoxtKNEw/msqA9EMQu1WQxAPB+?=
 =?us-ascii?Q?Qwh6mYNDwfPEakG9tXhgRS8ZvLZke0b0Vu/6/9Gaga3C1o8SzUhwe2yQl+sg?=
 =?us-ascii?Q?NVQSPLTdcpdW77UeXCZ9QL0qcub51LfVQQvKnCWpx2nzr+JAJEEUA7QOVUYJ?=
 =?us-ascii?Q?RaYAw6w7XpdF6Ft1LA8PkV3h/dOgfNgwkjwuUVKdmLJFdsLXBPmdpUQMo0Z/?=
 =?us-ascii?Q?iA18o40r+rnrOGDA2M6N3w2tjU6KM9hlqi+EPPYzPJn15Y9J6LkhebLxYijI?=
 =?us-ascii?Q?8QQ7a6LOgcD7zT5lRWqEWkVXWj0r8vP3z4C0QVZ4zjyzq5tUYpS8uZ5teiRN?=
 =?us-ascii?Q?S6eGVYKD1tuce6nImW4dZL9F/veTmCXhg74wuELGrMVw7m+sayILgMdPotQC?=
 =?us-ascii?Q?shfxsy8O6ToEcqIfEqwap+1QYgeN3p+gSF6y90TLbXyBfQYLe38aexHSmeE6?=
 =?us-ascii?Q?RZfVOQDAMNy3IKV36+ds0eNSAuYv/p4ib49RJKLfRhz8E/2PAz9rNqo+Hvgl?=
 =?us-ascii?Q?LFxkpu2kbnLoPdbeCBFMXDgFQMWc3wsnSvQ9WeFpdKq4hNt7pm9fU9cqKqPj?=
 =?us-ascii?Q?5ATdILKO35b1wcUDPnQUE4pJPzgBKa5hq4FYmwVYCr09z4D8dNdKcAo8ZWVH?=
 =?us-ascii?Q?m3lX8S0nqDfcQfQfNkEiyIIunHILT8BJK/AdPtVcsPqOo0dM+w0srDX9wl3x?=
 =?us-ascii?Q?2gJQlRywfoZGfwU7jZ78uZ+lFLpv/Eqxr21rLa9aqXV7hjrjZwM85kKWjBsC?=
 =?us-ascii?Q?NhrUETZEhyFSp4ZeOWGG0GB5kmjEJHC3STvpb7xGqhI0mLUSyuzid2bFdn4T?=
 =?us-ascii?Q?zSp5lUZpvq3g9ZVknrLFOZDx+UyJtFPnGRjIc/ru9br1l5JAlO/CPdiEZ0a8?=
 =?us-ascii?Q?C8C651UnNhOxNhORboFR8ADIvkzKNClwrVAnD638q3P6C48gJ2SMUG+/ZM3H?=
X-MS-Exchange-AntiSpam-MessageData-1: FNVXF+qQz7LQ+Q==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: f19261bc-7b32-4371-f53d-08debf66b50f
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:17.9022
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: x2RaMKLTcpMGUlOoqckVxZK2OXiWxf189Hlsr/TiBV9puDgclMZ+7YfurvYGluW02B2+GiCCv3nJiQtvjOlzng==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB2972
X-purgate-ID: tlsNG-bad1c0/1780267701-4357BA53-B1B77CDE/0/0
X-purgate-type: clean
X-purgate-size: 2502

Make cpu_nr_siblings() an architecture-specific function.
This patch provides the implementation for x86 and a common
version for Device Tree-based architectures.
---
 xen/arch/x86/include/asm/processor.h |  1 +
 xen/common/sched/credit2.c           | 23 +++++------------------
 2 files changed, 6 insertions(+), 18 deletions(-)

diff --git a/xen/arch/x86/include/asm/processor.h b/xen/arch/x86/include/asm/processor.h
index c37bd7a176..3cd19e6d9c 100644
--- a/xen/arch/x86/include/asm/processor.h
+++ b/xen/arch/x86/include/asm/processor.h
@@ -106,6 +106,7 @@ extern void intel_init_arat(void);
 
 #define cpu_to_core(_cpu)   (cpu_data[_cpu].cpu_core_id)
 #define cpu_to_socket(_cpu) (cpu_data[_cpu].phys_proc_id)
+#define cpu_nr_siblings(_cpu) (cpu_data[_cpu].x86_num_siblings)
 
 unsigned int apicid_to_socket(unsigned int apicid);
 
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index dcce1e361f..2d93944824 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -29,22 +29,6 @@
 /* #define d2printk printk */
 #define d2printk(x...)
 
-/*
- * TODO: Abstract this properly, and figure out what Credit2 wants to do with
- *       the fact that x86_num_siblings doesn't even have the same meaning
- *       between x86 vendors.
- */
-static unsigned int cpu_nr_siblings(unsigned int cpu)
-{
-#ifdef CONFIG_X86
-    return cpu_data[cpu].x86_num_siblings;
-#elif CONFIG_DT_CPU_TOPOLOGY
-    return cpu_topology[cpu].num_siblings;
-#else
-    return 1;
-#endif
-}
-
 /*
  * Credit2 tracing events ("only" 512 available!). Check
  * include/public/trace.h for more details.
@@ -884,8 +868,11 @@ cpu_runqueue_match(const struct csched2_runqueue_data *rqd, unsigned int cpu)
  * Additional checks, to avoid separating siblings in different runqueues.
  * This deals with both Intel's HTs and AMD's CUs. An arch that does not have
  * any similar concept will just have cpu_nr_siblings() always return 1, and
- * setup the cpu_sibling_mask-s acordingly (as currently does ARM), and things
- * will just work as well.
+ * setup the cpu_sibling_mask-s acordingly, and things will just work as well.
+ *
+ * TODO: Abstract cpu_nr_siblings properly, and figure out what Credit2 wants
+ *       to do with the fact that x86_num_siblings doesn't even have the same
+ *       meaning between x86 vendors.
  */
 static bool
 cpu_runqueue_siblings_match(const struct csched2_runqueue_data *rqd,
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323457.1589180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTox9-0005E3-AS; Sun, 31 May 2026 22:48:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323457.1589180; Sun, 31 May 2026 22:48:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTox9-0005Dr-6n; Sun, 31 May 2026 22:48:19 +0000
Received: by outflank-mailman (input) for mailman id 1323457;
 Sun, 31 May 2026 22:48:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wTox7-0004xT-40
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTox6-00261G-H2
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:16 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba69-2eae-0a2a0a5409dd-0a2a45099642-30
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:16 +0200
Received: from [40.107.74.96]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbaaa-2497-0a2a45090019-286b4a60e9a3-6
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:16 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TYWP286MB2972.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fe::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Sun, 31 May
 2026 22:48:11 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=N0JIxC0tnbT34W8QBXrZVxvDy/jnjSZMgJdRjOn9gX/WOp3LEoMauN3OZS115ykkerl0HfeGsroKNmqnjSc5p+i3zZEUUa95iBJvfaDE4CtHqIQcaS4vnEeHigiUCkWPxNC4GzMKPRqJRQjV/hcWzbY+4r48KGIWYu3VTyloRryjOwb82weF8dUGBRfxGN0kWZvuFyYgI+bsfYntRTBkKiD4p663Sae4VELvB7SJzqNLGb8vNlGqRosMSoioENW1nUfcSNXGU2CLCI3Dcrxf76CQqFicyzh1MiiIGcIf3v4om1ePwvZQcF0UBHuujRPf6iR+xwUZSKDY9RKpGM6E2A==
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=efsYPuOFBJuGq5l6y14uP1QzlvYcMA2MZ/bYJIg+6Cc=;
 b=TAkTfzAdE862CnvJ1EFy2a1OvR2EbdxK/mO9J/GQy3/u6wpnQCIA91QRoZPgztIL3wUJMEFiDKjKNU8eNAmiVTw3OfhbxhuCjkMwm29DP3R8FSSQ9rEfT/CntjcMw+04EqPeWbFK8CK6gOuT72dDXAoIS1Xe6Zjo6SafnUz9AWXiAvWsd6ceq/fLXDlEgapER9PuzcUptl46f4iOCO2odTFhShkNXnBYx1EU+faroIAvyLjU9sd6LlUhvmB+JUHjebIY0Ed0jWpEl9gQX902CRaxmMUzGVxdM7PUxUBumCNDiwSMqsiihp50mWac2qF9GklQgdpKogx72Y2grGbEdg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=efsYPuOFBJuGq5l6y14uP1QzlvYcMA2MZ/bYJIg+6Cc=;
 b=HRDLv86iCthKlCcpM0Vx+1Qct936BUJVDKiTaQ+FE6Gdag/bkQgFEdzkb2b9qxRUjtg6xe1p2ANCWsl9E9n3Fzxaup7ycYHVC1rRikE9Jqt7/Y47GuS+jFC1tpixI7wwHIRUKs0SuOzmEr9ESqMRe0bBDiM2MtLiLAhhKvo1i3A=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 06/24] xen/device-tree: Read NUMA node distance from Device Tree 'distance-map'
Date: Mon,  1 Jun 2026 07:47:36 +0900
Message-ID: <20260531224755.9481-7-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4PR01CA0037.jpnprd01.prod.outlook.com
 (2603:1096:405:2bd::10) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYWP286MB2972:EE_
X-MS-Office365-Filtering-Correlation-Id: ff31399b-cac5-43ef-00f6-08debf66b13a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|10070799003|1800799024|366016|7416014|376014|22082099003|18002099003|56012099006;
X-Microsoft-Antispam-Message-Info:
	zjxKymjC/PiKco62V6KdraLWGR/woB8ZfiCMM8w/wbm1Nql0fkCZlQb38UkpQeeminjUI6J+hdq5Fp6C73tgDapNb9V4KLp+55sajlrhV5C4K5yS6CwSeL9fd0tYJLQpIcti7uAXR9Ejr4dnHo+nPmH1VeZmXFC6vYHRik1qCDAE61QqExzJgh4xo3G0DkjkSdd+n5j8WYR4o5Ldze+lxOUeeubRVPkLx0CHeOlxGAaaSw0X5lPNEkEyDZCQfS2DWqHYqomROWTGuXZP3IocfbOmbPg4X3MCdSUK1A/4PpuLO1HD7S5+86O5qgPhNXjRnItDWIIMe0uxiB88tZWD3vrunCDhCSlfbWO80DaovXTCCSFFiH5arlXMzIN8h0oUD6BB0qaRneCvQGc1oQlBjFmOr3e8Eddd89TfKQEgQCPdcovqPLhWZQ8FYyT4jge98X0t5+wdD+D1aYSftXFxLbQodbIlPVVmOHunlri5vAtqXPb0fMzHkA9fbUGIYq6t0SNwu9UqSKXI3JaB8B+9hC7ZZsEIPeMuV/YJZ/shykLVnB0uUqjyRkeJ+OV14dfSvgOwa+BhkwdkVIA+1u1U5aZrZPuyVyib+vbg98t9hCP9FgPGUB1MK9ZMYvxxxQlsHzuJlPq7oAtlTTUx5BwYWojzP4A6Pd0lvi33ilInCwr2NMgS/Yiy8fYIR/mCUIjE
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(7416014)(376014)(22082099003)(18002099003)(56012099006);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?HrM4xAXfiL05nb9J+RU//xhkP9woLRM2QBDG0cppY5I70ZS5qibepTXahMWe?=
 =?us-ascii?Q?1ywaqAi9secucJfQygIkYuPITGY+XK8O3D7PDJCSmxWZSDgikZlSmR3Z3c3Y?=
 =?us-ascii?Q?KS35z6z3l8ZtzAt8AncLuw98K8VNDv3IEUt8gB0O1MNgsyyyzk3f7Qagf9SD?=
 =?us-ascii?Q?REixOEFZB062/aBX9ymTWodO193vtmDW92uVhc2gdhV4JNZo/5IE2FY0TmRO?=
 =?us-ascii?Q?xo/PmE0gaNcGaPSBWEe+yotE7F48tkiAftBsx7drYPQ6+1eoMbfPbSJVkVRP?=
 =?us-ascii?Q?pcnncPDYpNpqhBXY2mOgIQ4o5QB7+NX00ibpKY7Z6iNDDc8I9bP38LDLualq?=
 =?us-ascii?Q?NyQnnb1PPlXw7q6UwWxRPRC2PoWLV66uMxHnYGbMmxGB4VSSUlEBd+KKRxZk?=
 =?us-ascii?Q?nCPCRo3iw3/g/qPpP5i7jLKKsHluVInmDRJMLe8oSGzx0/ZGyqlpU/bQpwob?=
 =?us-ascii?Q?9XGlmmDdCrrgocy40tCLEPUao+jBt4dXMVcJdEhhoxQQkF0xuyJ6qM5XEvLz?=
 =?us-ascii?Q?6X7GncTDirdPyguiAsMYihs9jOydQ/2nQtV1NgNKNFZwJIigit9M6QxfXJGZ?=
 =?us-ascii?Q?LZx6IE2aA2Fa1uazwis8yel17kMMrMt0xCwc/Bndja7ZJJyphBCEJnSdLG04?=
 =?us-ascii?Q?bEkfge+x0xeqGXGIkGXh+2FT//7vKok8cWRoXA8E46FN0R1p1Qkiy0FSeTZs?=
 =?us-ascii?Q?f7RLmaVeLAKkJWhFi/OvUlqo2ticzRBl6XGJF8bud0bq905mrnienqi1IrJa?=
 =?us-ascii?Q?c65SELpmYd2IueJYiKQgycBWXUjAr5LRSwuhNToP2ps9vPGX1u+F0AZabuKo?=
 =?us-ascii?Q?CFu6iH8hMfH2HQisrNxISVCh3EM9xRp+pz32z208mOI1ey4heTin0vAvm3tj?=
 =?us-ascii?Q?DVb9N3vn2u5Nba9U8HwRfj5WUxi0Rh+kYwWyjQlLdyIT5OAZ2/r+8VdOOdXz?=
 =?us-ascii?Q?0RD3ga6hmvXfBVBG0ZkcM401p6jiYc5zVA7V/EnEWbRKICygILKoIRgbKPOC?=
 =?us-ascii?Q?jZwbCsFalr2YeHfZ3uPU+FYq1ZgmIG3OIJbeU61Lo7m+5Q2WXIQYDcuMJn6J?=
 =?us-ascii?Q?dvWMutDb8LNxd903fG9qYJF+8eAwvY97Pw2cMWeZYfVNJfxAvqQwN4WFtfeC?=
 =?us-ascii?Q?qR7Zr8eNpDcNjuBYIwnXm/kCCMmgEVrCgXVgzAVkxKWITt5nR7dfxZ8vQvq1?=
 =?us-ascii?Q?zNuGT3XgarDaXeZCq5JkP8q7NaJ6Sa1Tmq/GQiQ/JS7Y86NnmyKjwcyiBxVT?=
 =?us-ascii?Q?CPkd9rje4l+OfRuIvrvJKh5NId9L5eEXmWKV0rLwIpQDup3/ATfpzWNRunF9?=
 =?us-ascii?Q?YzoHaEGoNpO5wHdwTJq7JWN76tntHDNk4qRu+xvxtMKkqb35CeDu3/Y/oMOk?=
 =?us-ascii?Q?lOVVM0Qew9VMT2pjzeJ7XD0ORs6YYDSUUGvb2Sjk/kGcAaXAQkXIV9Sooi2m?=
 =?us-ascii?Q?fqcp6EiSG5p2qcmmLzVvCFivX4yHXMiTSt9u8YdickPaOFJl4U0l9DQRjypY?=
 =?us-ascii?Q?mUoQQ2wW3dLscfm98zjKkJ2/v95D2AUYvJHDWA24rAuOshoYrUD/4QA8le8S?=
 =?us-ascii?Q?svnPsCX0NpALmxRJFlSZkIu5n3r7XfB9f4k+iHxMSnMI35o4tyUq1JY9B4gf?=
 =?us-ascii?Q?AoacCW3rVstNm9fYNCwavxIqaUyCYekyzijpGC3wOe+pihe9L+F6OVO9AEQt?=
 =?us-ascii?Q?0wuUvY6K3dZ3HZ85kFkzUc/OGslJPIMRVyd+627EgKIb0dF9gJsUBQe4bkpF?=
 =?us-ascii?Q?zkWylNkdf4qkEMWJiN2y8vEe2MNQvKHcZMZhk+sz2SAK9Rhs0WgcW1omXMbu?=
X-MS-Exchange-AntiSpam-MessageData-1: O9mNyeCVcLVd+w==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: ff31399b-cac5-43ef-00f6-08debf66b13a
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:11.4743
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6vtR76wd0oCjk5i31crvEXjaRXCb1+poVcRssGC5yfFkuT9HCQFJshRu0a5eNgqZuS1wuNz7XCESb6yZK1LOyA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB2972
X-purgate-ID: tlsNG-bad1c0/1780267696-8AB8EA53-544C80EA/0/0
X-purgate-type: clean
X-purgate-size: 4442

Read the distance between NUMA nodes from the Device Tree's
'distance-map' node.
---
 xen/arch/arm/numa.c           |  2 +
 xen/common/device-tree/numa.c | 93 ++++++++++++++++++++++++++++++++++-
 xen/include/xen/dt-numa.h     |  1 +
 3 files changed, 94 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/numa.c b/xen/arch/arm/numa.c
index 15cad3d267..a7769b0c7d 100644
--- a/xen/arch/arm/numa.c
+++ b/xen/arch/arm/numa.c
@@ -41,6 +41,8 @@ void __init numa_memory_affinity_init(void)
     dt_numa_memory_affinity_init();
 
     numa_initmem_init(0x0UL, 0x1UL << (PADDR_BITS - 12));
+
+    dt_numa_distance_table_init();
 }
 
 int __init arch_get_ram_range(unsigned int idx, paddr_t *start, paddr_t *end)
diff --git a/xen/common/device-tree/numa.c b/xen/common/device-tree/numa.c
index 539ddfccc5..6414806937 100644
--- a/xen/common/device-tree/numa.c
+++ b/xen/common/device-tree/numa.c
@@ -1,4 +1,11 @@
 /* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Derived from Linux kernel 7.0's $drivers/of/of_numa.c
+ * Parse 'distance-map'
+ *
+ * Copyright (c) 2026 VA Linux Systems Japan K.K.
+ * Author: Hirokazu Takahashi <taka@valinux.co.jp>
+ */
 
 #include <xen/bootinfo.h>
 #include <xen/device_tree.h>
@@ -12,14 +19,96 @@
 #define LOCAL_DISTANCE      10
 #define REMOTE_DISTANCE     20
 
+static u8 __ro_after_init numa_distance[MAX_NUMNODES][MAX_NUMNODES] = {
+    [0 ... MAX_NUMNODES-1][0 ... MAX_NUMNODES-1] = NUMA_NO_DISTANCE
+};
+
 /*
  * Get the distance between node 'a' and node 'b'.
  */
 u8 dt_node_distance(u8 a, u8 b)
 {
-    if ( a != b )
+    nodeid_t lastnode = last_node(node_online_map);
+
+    if (a > lastnode || b > lastnode)
         return REMOTE_DISTANCE;
-    return LOCAL_DISTANCE;
+
+    return numa_distance[a][b];
+}
+
+static void __init numa_set_distance(u8 from, u8 to, u8 distance)
+{
+    nodeid_t lastnode = last_node(node_online_map);
+
+    if (from <= lastnode && to <= lastnode)
+        numa_distance[from][to] = distance;
+}
+
+/*
+ * Parse the '/distance-map' node from the flattened device tree
+ * and extract the 3-tuple triplets <from, to, distance>.
+ */
+static void __init dt_numa_parse_distance_map(void)
+{
+    const void *fdt = device_tree_flattened;
+    const struct fdt_property *prop;
+    const __be32 *matrix;
+    int entry_count;
+    int node;
+    int len;
+    int i;
+
+    node = fdt_path_offset(fdt, "/distance-map");
+    if ( node < 0 )
+        return;
+
+    if (fdt_node_check_compatible(fdt, node, "numa-distance-map-v1"))
+        return;
+
+    prop = fdt_get_property(fdt, node, "distance-matrix", &len);
+    if (!prop)
+        return;
+
+    matrix = (const __be32*)prop->data;
+    entry_count = len / sizeof(__be32);
+
+    if ( (entry_count <= 0) || (entry_count % 3) )
+        return;
+
+    for (i = 0; i + 2 < entry_count; i += 3)
+    {
+        u32 nodea, nodeb, distance;
+        nodea = dt_next_cell(1, &matrix);
+        nodeb = dt_next_cell(1, &matrix);
+        distance = dt_next_cell(1, &matrix);
+
+        if ((nodea == nodeb && distance != LOCAL_DISTANCE) ||
+            (nodea != nodeb && distance <= LOCAL_DISTANCE))
+        {
+            printk(XENLOG_WARNING "Invalid distance[node%d -> node%d] = %d\n",
+                   nodea, nodeb, distance);
+            continue;
+        }
+
+        numa_set_distance(nodea, nodeb, distance);
+
+        /* Set default distance of node B->A same as A->B */
+        if (nodeb > nodea)
+            numa_set_distance(nodeb, nodea, distance);
+    }
+}
+
+void __init dt_numa_distance_table_init(void)
+{
+    u32 lastnode = last_node(node_online_map);
+    u32 i, j;
+
+    /* fill with the default distances */
+    for (i = 0U; i <= lastnode; i++)
+        for (j = 0U; j <= lastnode; j++)
+            numa_distance[i][j] = i == j ? LOCAL_DISTANCE : REMOTE_DISTANCE;
+
+    dt_numa_parse_distance_map();
 }
 
 /*
diff --git a/xen/include/xen/dt-numa.h b/xen/include/xen/dt-numa.h
index c6939d0928..075d31cb89 100644
--- a/xen/include/xen/dt-numa.h
+++ b/xen/include/xen/dt-numa.h
@@ -15,6 +15,7 @@ static inline unsigned int numa_node_to_dt_nid(u32 n)
 
 u8 dt_node_distance(u8 a, u8 b);
 void dt_numa_memory_affinity_init(void);
+void dt_numa_distance_table_init(void);
 
 #endif /* CONFIG_DEVICE_TREE_NUMA */
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323459.1589197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxD-0005mc-1v; Sun, 31 May 2026 22:48:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323459.1589197; Sun, 31 May 2026 22:48:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxC-0005mP-Ua; Sun, 31 May 2026 22:48:22 +0000
Received: by outflank-mailman (input) for mailman id 1323459;
 Sun, 31 May 2026 22:48:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxB-0005bG-9p
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxA-00261G-Ma
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:20 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba69-2eae-0a2a0a5409dd-0a2a45099642-36
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:20 +0200
Received: from [52.101.229.101]
 (helo=TY3P286CU002.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbab2-2497-0a2a45090019-3465e565b3a6-3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:20 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TYWP286MB2972.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fe::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Sun, 31 May
 2026 22:48:15 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YJncUA6ScRXyGcuA5hcsbN1H4MDTGa0PYkmhjUx9CJKEV3z2z+BnGvIe/GLRjFsFUanXyDwwr5lK/ubhUKnM7R9IUNtksSylw8xgSqB5B+oSHyozscdbWQ82s7s3JZO+K6ZkZR6z75bk8+6+OkWMEth3mNn4A4KW+WFnBN3+9R8Wen1syuT5uK+PpmRX/aSep/Cd8kTxUhFWk24SkjMycoHt6BYeWitqD7VPUlirHrcO3X0mN4yzIl0ihmguUxrSbj2yP19aE5EazJMIoj0EEMAYgXriW8telql8cFHD3timouGCiGX5OMkJlwMWX9i9TYfTgsFQKBCCs/2h0YrSBQ==
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=eDDYgiA7UEf0V5xxwFfRaXTUj6xHA+tLO+dwu2CP7mc=;
 b=qSLtyfi5XDFGixU4sF9Nnh4QnNSIFGHRF/dGMWa9EIyOS5UQl9nR0PKZRk5CDUpJXp8OAPEjYhWrVIp17C0uS8o1d6qs1E0HpgzRlwYNPbTUIjo4eM/k89kZwmh+pCoJt4uAHxb788b7NbPS5sEnsVnBWypPLu2YX4j/EhxitbofaH9/DPCy2bhmDTorn7EUdkKe5pjvRA3kiYodTQ3lZZAaFfUn+hK1BcX4mpZOAt7qG54aXvbLA+gDPhMmw+893tSBytc2UOWbYr0eg4bz/p7wUu87uF0e/2f9g01wRIht9VGKO9hiy3zhi/jVpPSGhaNmvaX6NaIIfBY61hECBA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eDDYgiA7UEf0V5xxwFfRaXTUj6xHA+tLO+dwu2CP7mc=;
 b=j/NULi/ssrV8OdGbsiXTOhHe3VVfrRjSWbxm5k3QFiAmQQLp4zBaknOfVLXd4qHacvrPLl+i8p7VfXaNASsSFFWT9qoI7SunLF33qp9z7eDGyQ4L71jWVHduu/B6f/N4UsAiF8iPV26IDiByxbcZzC3AhwuGpykrDrSQC8I+58w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Dario Faggioli <dfaggioli@suse.com>,
	Juergen Gross <jgross@suse.com>,
	George Dunlap <gwd@xenproject.org>
Subject: [PATCH v2 08/24] xen/sched: Link CPU topology to scheduler and display via xl info
Date: Mon,  1 Jun 2026 07:47:38 +0900
Message-ID: <20260531224755.9481-9-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4PR01CA0038.jpnprd01.prod.outlook.com
 (2603:1096:405:2bd::11) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYWP286MB2972:EE_
X-MS-Office365-Filtering-Correlation-Id: fa13f59c-23d3-4972-0502-08debf66b3cb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|10070799003|1800799024|366016|7416014|376014|22082099003|18002099003|6133799003|56012099006;
X-Microsoft-Antispam-Message-Info:
	BEE4y6XnkQov7u+pTJ8zxreZzo8V/kJ/eG4e7k1iBxu2lW6Xlbl4LR8tC40cbl9C8O6vZPKP88815ygU2O453fD7YC2bJK7bZkZb2YzLART4a++Iy001rVaqsF4ruvNU3bNr5tLx4zxbM2I2wD21K0RAVh81fVR7N72ttXu944XPcAN7ZxAcXZjWtsmUMC+HmqXHDsxR4u8kebw7JispPkrc1xC07GAyVzChQQolEoX1PznBEZ/c5XDzTczIIu7M3vXxQ4elWrZKQeWUTs6apDXqrYLcUh3amEj9k4iub//+3UhLNmhduz2fZbtGmqnK3zNOKdNlV5/C4zwXxddJG7IuHEvPrC+cWUxn63aTSUWQ3+7fQ8g0S64iTwF704TMHCK5j6NGHkHG4nafOsyamF1JZ0JjYa24K6SCsQZaoRcsiBcrmg+Wli347/Ill6yOkhq9PjCAjrnqYuMqYq6Pmu8ocV9CMyQaKwHlezfFGSss5AKy+DZ55umZ6jgaqucf9wwb/ij5Gwl6ILbvBBA9EYW3hENLAYwd7hEc/6fkPQSVEgUCGnRHrqVjYf9hIZj9MRJ7SAmeEOWMFiPUXVq4G1zNdA3GMA0FICWRVP8Piym82AmtznBy38dEUtMeh4MIn9F5IDzjEepMbhKCi33zDGE1kbNkt14U2kCbDm3DQ0eHXqIPjJ2tnhm3oAItL5b7
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(7416014)(376014)(22082099003)(18002099003)(6133799003)(56012099006);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?2M/X7oD+3mEaX5daVtvgRAPg1P0gL4s2XsyXi5tvZ1YwA0X6UlUSCIVdRVK1?=
 =?us-ascii?Q?kwtIZn6GVWEdgXChraF1ktKgSZZLzMZTQerpwRklOqEgOp1agSxSBBnPg8wZ?=
 =?us-ascii?Q?rv+2mDHdx7YZoHa5/yGeJukjJs2BFljEIAI+gyk1Hy2V3qNcc3iSqP+hbZ1c?=
 =?us-ascii?Q?70W8iVbYzeSKRqJ58KrpxqwV2i6kcDP0oYER5dZ7AzQhkhVfw7SJwxuafvyl?=
 =?us-ascii?Q?QwISXG0ic3n0XAg3QJSqohfrN0V90QRgp0fHWZU848Fj3aPNrV2FQ4zBV38L?=
 =?us-ascii?Q?fQM3SlgQ5NC0ZATr6JqRDvlAkViNBZP4PtZyZ5z9h1EKqyIqF8QddEd21SJs?=
 =?us-ascii?Q?U3zIKDxfvpkauyk1uEpa42wSzJ6hczbI9lfLdVuilXHHv/DYBC4vVSiOeDQU?=
 =?us-ascii?Q?hL20Ux0L4kLUhBty/fcmOuttY3OTX9WzMXjWLLc8rvEYQYARS+OcJVeAvPb/?=
 =?us-ascii?Q?3UZzh07IZi1Py1BqR+FjvUe2BrCaO8tSbhyyyzmrafLdBKpCgmcVakeNAXPl?=
 =?us-ascii?Q?nWGpqdhvq1GwK5enWXQoyOqGIBY2r3Izo1IsUdbVI7xHl4G2yg7lNpO8glCa?=
 =?us-ascii?Q?eHsxuW4TBgs2cEP84ZE7JRHvO6qaj3Y1fJow1Xaw6fDF5Mh3JdG1+Ht0w0US?=
 =?us-ascii?Q?FeOpGYwXht5tEABHA8fc3+Nem3//pdoj/HUJs4D2ZMUr9HEd9/ui02KSMX8Z?=
 =?us-ascii?Q?ykOiGrO91O5HtotBmSlE6nBlQ0esT18TWQoRXy/cIOCI7Miinhq8pwQSwvTW?=
 =?us-ascii?Q?McatY7TJ16Te+XuD0UEaeFaVdFolgXrBPMu6EQwPkext/dVoYajpYUiyGIFy?=
 =?us-ascii?Q?tmKLEe2sUAwuCbngArZGWumBIAnbyx2kJ05Qrj8YzR7x3mtZBOSKTYZiXlHr?=
 =?us-ascii?Q?0k//04vXwE6ZCE8CxcaaTb6XyPZDFYSnzGbmCz83HgtmiG86My8U+xNWC+zM?=
 =?us-ascii?Q?Jz6Z6T6sHNRuFBZF+bEFuky4y6au5g62DT2NGAr5cBYXmVyiG+1akzKNoKoK?=
 =?us-ascii?Q?kCsv8/er9vAdNKEjBWg3W4lgEuV951rdEVT2RovJmRQfQASR1DRhCEqRpUlN?=
 =?us-ascii?Q?T/U0c/6MEE289Xrev+sI+lk50A5m1FIHT5e6W+p5vY7WIXWjMfPLwWghrkJM?=
 =?us-ascii?Q?LwQRUrESVNSxfRvNzg7fpA0tyhALvmbS5TMd+d4vF8yqsTUGRFXZqJvrh8ed?=
 =?us-ascii?Q?Tg36htnytIAKoU/do0PdhPwHNgBLIqG/Dcvpm1wfjkI0ppdteWH8/Am5Yfnl?=
 =?us-ascii?Q?EQpfmIjkYhD0uVC7cO8FJ8FbXcOqhyAGO/klr03JhPcoe3Ix8GbaYnU4cGJa?=
 =?us-ascii?Q?bMI8sWClrkXsuT4TT8wqDorzMQkFnnRggOYUBw13lF9sOZeMMeA44ZhqOECq?=
 =?us-ascii?Q?DhTJBiFLGUi+vvYlM7ht5Uaf+dK+ijsr5azNeBhG27G7NuJ3a3fhDvxWMMEE?=
 =?us-ascii?Q?QJqEbSbc7DDvj69W/BzOIiXJ1dX3Ik3geeWs7SEug8NLDB7JYiLtjidPB3jZ?=
 =?us-ascii?Q?RZN7nKKSrNDsTZqi7VGZwq8s4kGGayeDUZrLaFSO2cWZTlEYJKT5pufN+yeM?=
 =?us-ascii?Q?wYLf9BZC2PttEDm9W/ZibYAIvr6ZUUEF2h4ZRpqMtd7ayDD5a7MOXMCnWW8l?=
 =?us-ascii?Q?uTJlwgcWEOnO0Hbc4+dhTMejsVTJ6LVR3ep5XVwJ7zfD2AsWZn+jO7qvJsiX?=
 =?us-ascii?Q?+unbJH6arCnCiaplQHzGlmMHYfnbXXs3tqGCj5LhE+WibOxPrWKByQO3V3oY?=
 =?us-ascii?Q?h98lyNPstJQspv//hMzNNBuqqFAMZZ4bUeJ3tP/NTfpdQ38K6hZE8EknG28D?=
X-MS-Exchange-AntiSpam-MessageData-1: 3qcAQ8+XGoRbmQ==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: fa13f59c-23d3-4972-0502-08debf66b3cb
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:15.7844
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7N80449TkdYafWnGayan8gDVG729LkZ0i/V10N3mKF7FFlD6i61lN9htgxvYAZOk1VfyEz8OyQkGV3XLT16L+A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB2972
X-purgate-ID: tlsNG-bad1c0/1780267700-42772A53-9DCDAF62/0/0
X-purgate-type: clean
X-purgate-size: 6400

Make CPU topology information available to the Xen scheduler.
Additionally, ensure that this topology information is displayed
when executing the 'xl info -n' command.
---
 xen/arch/arm/include/asm/processor.h  |  4 --
 xen/arch/arm/smpboot.c                | 10 +++--
 xen/common/device-tree/cpu-topology.c | 54 +++++++++++++++++++++++++++
 xen/common/sched/credit2.c            |  3 ++
 xen/common/sysctl.c                   |  1 +
 xen/include/xen/cpu-topology.h        | 11 ++++++
 6 files changed, 76 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 895d7cd502..b968a1605e 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -591,10 +591,6 @@ void show_stack(const struct cpu_user_regs *regs);
 
 #define cpu_relax() barrier() /* Could yield? */
 
-/* All a bit UP for the moment */
-#define cpu_to_core(_cpu)   (0)
-#define cpu_to_socket(_cpu) (0)
-
 struct vcpu;
 void vcpu_regs_hyp_to_user(const struct vcpu *vcpu,
                            struct vcpu_guest_core_regs *regs);
diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index 6bcf7e7f53..a8e914523d 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -93,13 +93,17 @@ static int setup_cpu_sibling_map(int cpu)
          !zalloc_cpumask_var(&per_cpu(cpu_core_mask, cpu)) )
         return -ENOMEM;
 
+#ifdef CONFIG_DT_CPU_TOPOLOGY
+    cpumask_copy(per_cpu(cpu_sibling_mask, cpu), &cpu_topology[cpu].thread_sibling);
+    cpumask_copy(per_cpu(cpu_core_mask, cpu), &cpu_topology[cpu].core_sibling);
+#else /* CONFIG_DT_CPU_TOPOLOGY */
     /*
-     * Currently we assume there is no multithread and NUMA, so
-     * a CPU is a sibling with itself, and the all possible CPUs
-     * are supposed to belong to the same socket (NUMA node).
+     * If CONFIG_DT_CPU_TOPOLOGY is disabled, it is assumed that
+     * all CPUs reside in the same socket and that SMT is not used.
      */
     cpumask_set_cpu(cpu, per_cpu(cpu_sibling_mask, cpu));
     cpumask_copy(per_cpu(cpu_core_mask, cpu), &cpu_possible_map);
+#endif /* CONFIG_DT_CPU_TOPOLOGY */
 
     return 0;
 }
diff --git a/xen/common/device-tree/cpu-topology.c b/xen/common/device-tree/cpu-topology.c
index 82a366f3f6..8821ea94f1 100644
--- a/xen/common/device-tree/cpu-topology.c
+++ b/xen/common/device-tree/cpu-topology.c
@@ -294,6 +294,58 @@ int __init parse_dt_topology(void)
     return parse_socket(map);
 }
 
+static void __init setup_topology_for_sched(void)
+{
+    int prev_socketid = 0;
+    int prev_clusterid = 0;
+    int prev_coreid = 0;
+    int prev_threadid = 0;
+    unsigned int coreid = 0U;
+    unsigned int socketid = 0U;
+    unsigned int clusterid = 0U;
+    unsigned int threadid = 0U;
+    int cpu;
+
+    for_each_possible_cpu(cpu)
+    {
+        struct cpu_topology *cpu_topo = &cpu_topology[cpu];
+
+        if (cpu_topo->package_id != prev_socketid)
+        {
+            prev_socketid = cpu_topo->package_id;
+            prev_clusterid = cpu_topo->cluster_id;
+            prev_coreid = cpu_topo->core_id;
+            socketid++;
+            clusterid++;
+            coreid++;
+            threadid++;
+        }
+        else if (cpu_topo->cluster_id != prev_clusterid)
+        {
+            prev_clusterid = cpu_topo->cluster_id;
+            prev_coreid = cpu_topo->core_id;
+            clusterid++;
+            coreid++;
+            threadid++;
+        }
+        else if (cpu_topo->core_id != prev_coreid)
+        {
+            prev_coreid = cpu_topo->core_id;
+            coreid++;
+            threadid++;
+        }
+        else if (cpu_topo->thread_id != prev_threadid)
+        {
+            threadid++;
+        }
+
+        cpu_topo->phys_socket_id = socketid;
+        cpu_topo->phys_core_id = coreid;
+        cpu_topo->num_siblings = cpumask_weight(&cpu_topo->thread_sibling);
+    }
+
+}
+
 void __init dt_init_cpu_topology(void)
 {
     int cpu;
@@ -303,4 +355,6 @@ void __init dt_init_cpu_topology(void)
 
     for_each_possible_cpu(cpu)
         setup_siblings_masks(cpu);
+
+    setup_topology_for_sched();
 }
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index 77475ee363..dcce1e361f 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -19,6 +19,7 @@
 #include <xen/softirq.h>
 #include <xen/time.h>
 #include <xen/trace.h>
+#include <xen/cpu-topology.h>
 
 #include <asm/div64.h>
 
@@ -37,6 +38,8 @@ static unsigned int cpu_nr_siblings(unsigned int cpu)
 {
 #ifdef CONFIG_X86
     return cpu_data[cpu].x86_num_siblings;
+#elif CONFIG_DT_CPU_TOPOLOGY
+    return cpu_topology[cpu].num_siblings;
 #else
     return 1;
 #endif
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index 5207664252..81a68fe24c 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -28,6 +28,7 @@
 #include <xen/pmstat.h>
 #include <xen/livepatch.h>
 #include <xen/coverage.h>
+#include <xen/cpu-topology.h>
 
 long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
 {
diff --git a/xen/include/xen/cpu-topology.h b/xen/include/xen/cpu-topology.h
index 8445f5786d..828c31f7ee 100644
--- a/xen/include/xen/cpu-topology.h
+++ b/xen/include/xen/cpu-topology.h
@@ -14,6 +14,9 @@ struct cpu_topology {
     cpumask_t thread_sibling;
     cpumask_t core_sibling;
     cpumask_t cluster_sibling;
+    unsigned int phys_core_id;
+    unsigned int phys_socket_id;
+    unsigned int num_siblings;
 };
 
 
@@ -23,11 +26,19 @@ extern struct cpu_topology cpu_topology[NR_CPUS];
 void map_cpuid_to_node(u32 cpuid, struct dt_device_node *cpu_node);
 void dt_init_cpu_topology(void);
 
+#define cpu_to_core(_cpu)   (cpu_topology[_cpu].phys_core_id)
+#define cpu_to_socket(_cpu)   (cpu_topology[_cpu].phys_socket_id)
+#define cpu_nr_siblings(_cpu) (cpu_topology[_cpu].num_siblings)
+
 #elif CONFIG_DEVICE_TREE_PARSE
 
 static inline void map_cpuid_to_node(u32 cpuid, struct dt_device_node *cpu_node) {}
 static inline void dt_init_cpu_topology(void) {}
 
+#define cpu_to_core(_cpu)   (0)
+#define cpu_to_socket(_cpu) (0)
+#define cpu_nr_siblings(_cpu) (1)
+
 #endif /* CONFIG_DEVICE_TREE_PARSE */
 
 #endif /* XEN_CPU_TOPOLOGY_H */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323456.1589170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTox7-0004xf-1n; Sun, 31 May 2026 22:48:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323456.1589170; Sun, 31 May 2026 22:48:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTox6-0004xW-UZ; Sun, 31 May 2026 22:48:16 +0000
Received: by outflank-mailman (input) for mailman id 1323456;
 Sun, 31 May 2026 22:48:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wTox5-0004ju-TD
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTox5-00261G-9z
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:15 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba69-2eae-0a2a0a5409dd-0a2a45099642-28
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:15 +0200
Received: from [40.107.74.96]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbaaa-2497-0a2a45090019-286b4a60e9a3-5
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:15 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TYWP286MB2972.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fe::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Sun, 31 May
 2026 22:48:09 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=T6d9JGEkyw/BrDUnWuDvXFwBXer/ly2X3iAyIers98Dh6mV8C/bya2PLMZUvu+D7doNgMhMbid6br0NdvQaegMsqBR0lrAM90Ws9mfZVqTMQ7KTJuvKdHbdPJG+n+3XOKjCei+nZBzrGz+PJopQHZc+bAVQyE945drbc3YPYqFVNzEUAzhQNeCdrcWoyiASv8EBSJqnMB4CjRgQ+qhoiOU+XFJpiopnjI+ho+/z8ayh/GoTPLMLaNAFVB7o3Wjn3VMC1QDBkmU8izxu1p+9GzC1rydYPv9OxdGM4RHMqjTjrMV9pQxOVILBB/pGTo+Vt0Q/JmlSpuVCSYJxpEMuNZA==
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=/vwA3Er90o7oXhAI2Lat0t7tLEuFxyB9jiPPQO/KILk=;
 b=RgSqVc/5o0d1geoZc+qYFEc7W4fZ7MbxzmyBttKdgVhbVJ86BFTOTM88AreEhgyn4NANPfO6gMuviDndPXsGU6xFaox/JVyWEhuCegS1catsNBXlo/G2Lse6f8dq6PKDY6NjDOUGelxqXSuG8s+9byuhC7JtvpKIvjSMn/hbxTLFbOFf77PJzPDqGGYA8P7gSfqaP9ELxmAUfi8Cv/XYt8XTCLKBpsj/uTUOpZcIFlpW2Ng0ob/4VJAlAe9iOJjPoup94XBfQkTbpqx1BzxzUCs7mA6PuLxobo5CeUR+SYOOSVhR5vFMzvILr9hqboxxb128ZepyR6GlPZLVvhv5hw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/vwA3Er90o7oXhAI2Lat0t7tLEuFxyB9jiPPQO/KILk=;
 b=e5Q8syky6SFTRBzKgf+EfcoPHCEXrhepXWBOX4wTI96SwHvMJceD4WezKmZ27sEoj6Ic3pzOwOxDdmxeKIbNlSQbwWtp+/l68l1HJOpQnedPfdCs/uSThU1xjLSDLKMa3XtZsLczYwLYwbdZbojqp7cLPfOe4Y3Btv9QR49xfI4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 05/24] xen/arm: Map populated CPUs to their respective NUMA nodes
Date: Mon,  1 Jun 2026 07:47:35 +0900
Message-ID: <20260531224755.9481-6-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4PR01CA0032.jpnprd01.prod.outlook.com
 (2603:1096:405:2bd::13) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYWP286MB2972:EE_
X-MS-Office365-Filtering-Correlation-Id: a895a406-e2ca-4721-0e78-08debf66b00c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|10070799003|1800799024|366016|376014|22082099003|18002099003|56012099006;
X-Microsoft-Antispam-Message-Info:
	LybIP4KPulTMoUS9xZL7uiv88URmidmsMTSvFMySXk/dUI1MsAzUzEFD6PuU1SMeTTAj3xvJF7LrtM5qHt3zJ+PuuJMfxOBGbwkAMx6t5thJtc4q9NVgeWYRxbggGaxF36j95UEBGvDWYl/GvAoOgfNXS038H8eYLIwn7h29sszz94s0lRnRFbN15Y0T0nqPrQid1J9u9j3HdheOgv2B/aZWVttx7nFbQ/k7DMbpxWtZTeTo9b23cTGxJKTg+ToA0uu+nF/S42LlRXsjpv/wlktAjo6q8WDcZ/xK9sSRnul87F+skY7at+FV4uwFo+Vwgkt+mDLBf4hnJH9nj0mmtIoC6gSW1WBNUf4x9+luhy+OHH20eXyRX+B3EX5JHYqv13zHScizyln0ypinoCojgIn2rzZOA9or4FfWeQbP+LnnV1q2vJy/iYwiHeGB7739uKZbWLl48/HkytiwXVHH0xElj9y+CextyLbaLB1UeIX6SXVFcx269K4NJXa9Z3kL0AzOlxVGnye3JPV/T3TCywkGnEDf16Plkssc6jUtDU/A/ULJaODA11r95EManVwcSS6+Fd//0LZ91q49UTSFAofa49r7wc4nKIjM/OqT+BdnZIKCWTP6dXfHQBJDXfNn1vCmEoFkK/YNqxrZfoYscFJP71n0KWuYvDFyIUXhRxRjqqX/akGg55WDZgJYM3rF
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(376014)(22082099003)(18002099003)(56012099006);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?xNUynnJQ1rcU7Lyq6jH/CGRzzZEEoG3mMlplHanuMKoUxzOWFwBCsfHhRzgu?=
 =?us-ascii?Q?A7VgLVYwYAW3a3GSX1Rbj/+13wS+Blym/1eImwdTM4Tt8kQ2egJCaL1jxLsB?=
 =?us-ascii?Q?2aDBJgC5x83pG61JcBR2w0sDqfcn5zTAUeSymzleHKBYTGgmvilPZexg+L7a?=
 =?us-ascii?Q?f9gX9TnTYq/yF+O6KdEc5l9jPoZDAPC1vkNZBUEEKZKRyBmWcMLDFAzFzLpC?=
 =?us-ascii?Q?bUEk0qVDh2bTW9ta4SbCAxBM1fBKw5woMCz0//JNrYmbkRpTaQY/VZNQOMbA?=
 =?us-ascii?Q?mwKWN+y9BkUqQyiSd36BOKk/yIaz4ykfLVYW6UdDzcj7B/CB4pZsCmzjv0/u?=
 =?us-ascii?Q?dsEuMxHnd929yHbcMMrCQs4T1rxUsBZkF6/NrW6RZJF3jB2UK7JuDhJKZw5K?=
 =?us-ascii?Q?KVjNSQSCeV/mFIGwr1SDQgpHKQZ5IJB+75azyoKKuRVZ0tn2ghamLm1h+cWO?=
 =?us-ascii?Q?ufPgzGOWtXDobAAJ5qgsTCi1hFtDSq24GrME5cSjWoTbtG+40DNp1iRvlAjZ?=
 =?us-ascii?Q?GdGkwbOLNPmMdNm0BmTy32mxQQB5QJLQhhd/pSQUVZOZMMsFpxUdtamg6RvV?=
 =?us-ascii?Q?cw3LzFO0e5NJy5jTfaNYSwDKrhxA7RIKVaGU9kSStBqx1AtfqLWG1TN06wMY?=
 =?us-ascii?Q?+faVBi+DCXVvmX5oPML2yUBGY9TQjV9rMnghHjGpHkXT2aHbNpMZa8miRlKI?=
 =?us-ascii?Q?2ryHAzM8f8VJW0prV3Ll4nCUgukgjXmy0wv5PMkGcAVnoUxzF0E16SnFKVDD?=
 =?us-ascii?Q?OqaZxtWm+DWhaSZNwnk8dXCDzno114dB+bxqtlii2lTPGzjPmrhM9Pj4aBhD?=
 =?us-ascii?Q?C3D1/YaQd9UOZ9aaqIPaDB7kG9AypOAHBWNJe+JO2C7wIB6WRPwQyzlSKHvn?=
 =?us-ascii?Q?AKpTenm8mVcgMFTx/ulF/JKU7pBcqC+ZVksrrvBhi6bro+8fT2qdGSOALPGn?=
 =?us-ascii?Q?MQ/av4BSuDFmvG0wTXo01j3+dLdCgqlv8IALlvo7ozDVIRR86w9JMLNe6Jon?=
 =?us-ascii?Q?FkY1iEAoS8fzY2M62zigUcv/TX/m9N2qL7cfW5qkB859cbtwX3tpQzP4pQib?=
 =?us-ascii?Q?KLtFHvYOM59VzSzRWFIjznNQR6BCabGIy48CxCmKco61+XBJ7blCjL4iiCSw?=
 =?us-ascii?Q?bKHlrYwLjhJjM+JByIkvE9/zfv6CFgq9CeuM/gX1xBnHfloYQ76p9qp9qEJD?=
 =?us-ascii?Q?jluFaMNAOigp8Rgghz3+TbswTyrpNjpqGgALmFukFh+3QdhlaqZ4bOfkMdtG?=
 =?us-ascii?Q?rG+4W2dS5bfQ7MOx6mkLGeluQVyfbJlKCQHkqO1+YGAKvRFb6yUwA8O+zdlj?=
 =?us-ascii?Q?c/INw+X4H9MKsD4UDMAerZz1oKHEFMra4osXwGtVcdXa+CwnnmNgeaO+r5R0?=
 =?us-ascii?Q?3h3c52AAPj54CU5JQInsPtstXDCbNh3FRj0nOKQnJz1+b1RzL68fyMHopwS3?=
 =?us-ascii?Q?P5GHRHPzezlH7+UYoDwiTysiKnzLKHgbI4Bh8Gx4M7ArrNLRkJlmD1e99LVi?=
 =?us-ascii?Q?6sLo1B5Li8AFnyMjSoRB9CRju1VdliPl0YcK8GscIgO/A1QNCH0yS0/sLJSC?=
 =?us-ascii?Q?HAYJKTqoQXs+c2TLoN2+VA3jJV7VC9Fq0dKz9qzvaDRfYEr4XYPptrcJtUJE?=
 =?us-ascii?Q?uu3OOog2QfeJSq2+I7/u8BBGSpsbGwStN20RvNx2r9lnGZfpS9vS5dgHjN0o?=
 =?us-ascii?Q?3hIrKcpoGTGVQ91dU2WwjfKj7R60oPdsHJ9HzRjoAC9Y5ZFi/0iEt198ibwm?=
 =?us-ascii?Q?6XFzJSAwAeGm/3NV1hiXMWFyOJ1g0NAMfRRYmN1ZLuTyIuG2yu+fFPuP8uNo?=
X-MS-Exchange-AntiSpam-MessageData-1: ZErMP6iOjxd/5Q==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: a895a406-e2ca-4721-0e78-08debf66b00c
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:09.4966
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /hBphmo/iXEE+Xc/+WD06P5Y4F+tCYXN02wbD50GmZs4B6jQ7fDF4VFfVY9l64inOkH48AUoygYxSokrT7Jevg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB2972
X-purgate-ID: tlsNG-bad1c0/1780267695-8A18BA53-526B891F/0/0
X-purgate-type: clean
X-purgate-size: 1552

Map the populated CPUs to their respective NUMA nodes. The NUMA
node ID for each CPU is retrieved from the Device Tree.
---
 xen/arch/arm/smpboot.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index d1651fe7dd..eafa195504 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -133,6 +133,9 @@ static void __init dt_smp_init_cpus(void)
     };
     bool bootcpu_valid = false;
     int rc;
+#ifdef CONFIG_DEVICE_TREE_NUMA
+    nodeid_t cpu_to_numa[NR_CPUS];
+#endif /* CONFIG_DEVICE_TREE_NUMA */
 
     mpidr = system_cpuinfo.mpidr.bits & MPIDR_HWID_MASK;
 
@@ -244,6 +247,16 @@ static void __init dt_smp_init_cpus(void)
         }
         else
             tmp_map[i] = hwid;
+
+#ifdef CONFIG_DEVICE_TREE_NUMA
+        if ( tmp_map[i] != MPIDR_INVALID )
+        {
+            uint32_t nid;
+            if ( numa_disabled() || !dt_property_read_u32(cpu, "numa-node-id", &nid) )
+                nid = 0U; /* default node */
+            cpu_to_numa[i] = nid >= MAX_NUMNODES ? 0U : nid;
+        }
+#endif /* CONFIG_DEVICE_TREE_NUMA */
     }
 
     if ( !bootcpu_valid )
@@ -259,6 +272,10 @@ static void __init dt_smp_init_cpus(void)
             continue;
         cpumask_set_cpu(i, &cpu_possible_map);
         cpu_logical_map(i) = tmp_map[i];
+#ifdef CONFIG_DEVICE_TREE_NUMA
+        numa_set_node(i, cpu_to_numa[i]);
+        numa_add_cpu(i);
+#endif /* CONFIG_DEVICE_TREE_NUMA */
     }
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323453.1589137 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTox1-0003yk-4D; Sun, 31 May 2026 22:48:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323453.1589137; Sun, 31 May 2026 22:48:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wTox0-0003xL-Sr; Sun, 31 May 2026 22:48:10 +0000
Received: by outflank-mailman (input) for mailman id 1323453;
 Sun, 31 May 2026 22:48:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wTowz-0003s7-H5
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wTowy-008Rpn-U9
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:08 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba94-e002-0a2a0a5209dd-0a2a45059030-14
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:08 +0200
Received: from [40.107.74.122]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbaa2-aaa8-0a2a45050019-286b4a7acd57-5
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:08 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TYWP286MB2972.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fe::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Sun, 31 May
 2026 22:48:03 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dyEmGHMEUk2MVjNbtN7aXApMM4WvF8qE/sSPlldn532zv9LYO8Mz5tR9DsantyqhAb1dy2rApaL0tvF+96gOQdj6OwtdCkO1MpmeC7DHmE8PQKxldlR7LckALp2g0vS4VCKpgYzeNJ+xNifKGYcpHrlcW5Q7TIQ3qnPTQ8SuCVldtcgpxMLESn5IvARi8dfJp9YNXb3DANfaO27eQ5lDNlqzjWZha/hnqApeWD8pRipzeRBduRcVuWH0DXrmoiYLQVYZJCZmwP9o/Ujh3l1FC3A+IY4BvfRKTVQvH5r9dCz23l4MmKf6nCnJiaNAD62p/HPaBK0uNkOJAl5uDNbX1g==
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=+xd9T2blWYyalwo41o8xs7sEzMUIRZ2JS3x1+k5CFPQ=;
 b=FCQIXdeneIxvujDOn28JQTViSU6h/HfBZsGhQAPbbkACasZEvdUU8/SL3VnKuh7PFGdPBgdUy6RPdhdYm/PyPKw+r6Mh2nD8X32jr50EWCy/1zjru5fOPG5vYygDfiz8s3NFoVAj1AMCib/kMcHZ81waFBojO9uWHLPHuANnli2qQd8YCDnkDpQnQrnUMXRFIDK1P0/vJiemxUNmXNhH41m7FrQ7rQZC1TUosoWl6Eus7PMNiY691Y9pA9m1hIhRFosVu092RdmLkrYLiI4k0oamlACCf+WCz47pJWDHSZlgnz1JJH0HyQT9SaQLK3biyLQy/+/n4EC+WgLLYGPIgw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+xd9T2blWYyalwo41o8xs7sEzMUIRZ2JS3x1+k5CFPQ=;
 b=Q7vYoe1rR2mTao9QtdyEXUdy2joAE8A8slVY0UiGiPKiAWh6LlloX+OG5yNhMJcIBXo9KbhosK5l3ZNVJbbn/cfRHk9J3CS66eex4pJcE/oIrFybWddfsj0/3Kv0sYmBz3AZJiAu07w5a1qdWq+I2jg5gWLpmYVctXg4MLmvEfA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 02/24] xen/arm: NUMA helper functions via Device Tree helpers
Date: Mon,  1 Jun 2026 07:47:32 +0900
Message-ID: <20260531224755.9481-3-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4P301CA0059.JPNP301.PROD.OUTLOOK.COM
 (2603:1096:405:36a::12) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYWP286MB2972:EE_
X-MS-Office365-Filtering-Correlation-Id: 517cdb47-dfd0-4d8e-eddc-08debf66ac98
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|10070799003|1800799024|366016|376014|22082099003|18002099003|6133799003|56012099006;
X-Microsoft-Antispam-Message-Info:
	JzYFxdIOz6SoQFRiB4gc2TuWE4fkpifal1AX82K7bT82iqlqo8wXBODfffUYnAxlkk3M9cHYF3jY+ce5yEOBW35hNuewlxIpIC7McJeUdgzN9QB8FcDSXff/d86OoNmkYsvYXBYbyTLhB608BDtJIXWoHaNslJkBkRBXmJPnPUKjJHcwYDUcO+J9UWG0f6OMTAvAIVXwBRWz4oBABMMtcfpVRifMTlLObNScyOjDviayy9odLzDGL6wSAUt5uA0dZapr5n6wRKpn+okd9Cc0PesyGPiMC/9Crai0DGPNsVxYrsnc2DeyiaTxYjNgt3Oh3WZ8m1bcebiA4r3qktKwzPTHGz5N2hEMuw0a5tsYhaYVu/uhQ3KzKMX7eB69X/N+VRsbJNmQ4MrLD3FTbNtGQYjd/wNzNeuWfvbX670kkJGjzlpIdTCIxbdoySmHltMzfrW9QRVE7VrsyEUw9R/VcW1ElQArFUHj/LxLHDQNFMfK4enQsVuZYX2i4xGi4nxYzOyAxUoTB0d3xBTK5Lhag8uNiGEJoA6mZSyqq1xCmGchRtnXoVaUQQ6d3HaG0vjL3sE+wPrqed/1pJteW7MS9nOqTYY4+7H60NrJtnbR5CWRaaMdLgiUQw8DIU8B8TnCbV/7iwUseaTiqnIBnFnBX0IMmdrcoIEog7b0TXBEimNHlkjTD+XBWt92khuDIQb7
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(376014)(22082099003)(18002099003)(6133799003)(56012099006);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?IK2jVom6XM1tCnVnYOqqlTxRHYPNIKgQqjzKE29lWe5JOIug2fnJBZmJyoR8?=
 =?us-ascii?Q?ZKU9uenXv5vd5CpFbRlm6Ava8Kt3hihU+Cw5C6N6OkfIDU4s59o06VDCij/k?=
 =?us-ascii?Q?ooep4KDk6Sf8uikf/4SY/DxyrsCMhHJP94WgFe25IAuuRieDlIMO0oziLoVT?=
 =?us-ascii?Q?XP00Idl3LhK/CbaZG5bFkIf2wtN93VFJMUhBcS1Hd8VluQWQllEcrLr0Skl7?=
 =?us-ascii?Q?Ak+1vEIBQ5jxT1kyf+06fEQCrxFThAi5x+pxqQmCiDoQK3Me4szot6OFSwVq?=
 =?us-ascii?Q?aJm16l0e30suKj23tLoySNSNP7D3o8/jU/oE5q23aC/wxEE/80yeaB7YE+ik?=
 =?us-ascii?Q?Lzju6ssNWel6JwynAuG+D1BpMRdilasrzEKQbl2q52E3g/m3kMJt7o53o2bp?=
 =?us-ascii?Q?AGpn1PfySRMmidF/APEIkXjjzkDQi4xbWJdITm2qA3UbnovB61i+Xw2I3TNw?=
 =?us-ascii?Q?kswfU+q9BNHiM6lbVGMa7iY5sydErepNX8wSxXAd2VIYYsRSF10X5UjRRDuK?=
 =?us-ascii?Q?9tYQNNBPkZ9ug3ykWU+xVBkY4cSIz5BAOSZlV2sBOgak2Gy6SGE8/WZUvC/L?=
 =?us-ascii?Q?S6vXAGWfOsEpS3sNAOq0BYn1sJ7TMVbokyOvXCFtfbs+MnJ2wPoCvEMQHVit?=
 =?us-ascii?Q?CWYrXWCeE+uZNSKzvV86PTEcB+re35yX534ihZJ9bhy1HCO8W6XQ4wLxERFP?=
 =?us-ascii?Q?ogh5Qc7t2Eh3Z8gMcpFYjR3WjzypZoyj7ExuJBDvqBDfGoa6+/w707kVdsDv?=
 =?us-ascii?Q?kaSz7zY67tQkYbAh1IUfx15yVAn9G/8J2PnhDPdavcP2BYSK6FB8tJzJM+bR?=
 =?us-ascii?Q?Be9necdgEXEGqdrsbthTOrPPDKeTpNhOTvmNWtMBO/knfp33ewxnrqOzxams?=
 =?us-ascii?Q?Zxjg3KKmDTQF8+QFND/QnJbB6gm7tnpKbKyqHQaY046zqnNiSNgAOZhcaIVs?=
 =?us-ascii?Q?xMWJi26xnWEN2L/UGN5V5RKvReSI0RBEY3nEIGhr5t336QtmAvtgtDNiTmXq?=
 =?us-ascii?Q?hJWR9UE6XIxq+2F//kAIMy5IgXiQHlTMfYHiscymaRj7Ie6GtOFsW8PJl1+r?=
 =?us-ascii?Q?XzT40A9MjbrUyANQ/VHiHmG1UTK2bxPue+kMolqiu2xVt0+1h8FwOmVPm0N8?=
 =?us-ascii?Q?pFvd4zfXfTgCFhe2nVTKkhS2WDkdjNqbK+cy0Ls9jREcZBcyRj/Bm5JTAY5G?=
 =?us-ascii?Q?0R6MYGA12KPbCAoglAnQIlS3uxACqslyH0teHRaDDJxnRWO30NcHYzPC6+ES?=
 =?us-ascii?Q?lAZTgfL3jgA3SgTuc7r6+Mne9QrrBmyAB71tqTFizZnn1V97furABH8wq/ZI?=
 =?us-ascii?Q?yk/czd3ktZp6d8YiPyq25tlmwsX+yqDeiyhMmrIWhltsqGDTMm7eC2GKxZLd?=
 =?us-ascii?Q?wVPOmAp8Sx2fMoOty1nxgi2xEMDurI7uYNKYq4sm2UG/BpRVC+BIqjmME6+1?=
 =?us-ascii?Q?4fEbMfGxuWw8vK4YIBRspBcRYFuJwg/tDhRhoYEwoN/OQyU21WT4X0yv4YHp?=
 =?us-ascii?Q?qst7CK73zlc4CUQmHkFj6Mxi7CEk/9DHvwzAXmjlaPI42DeQJ+K9PvQWkqSj?=
 =?us-ascii?Q?f2rqGc61reNdRpclEBeF7aV4wjUwe6hg4sHfrYbkd6J4H8lTCQWu+776CByi?=
 =?us-ascii?Q?47qjln0eNkn9XkHNZRGn17Jw+LOQWq+tgLCQuSwQIfhI4j71cbbtRjxC6vVl?=
 =?us-ascii?Q?Yx5diUhNtK6Zvbapr0Jaht7NCwF/naIJubMFRtspa5u3pfW/TLG3t38GDKwa?=
 =?us-ascii?Q?3LzhHhfYpJmuG4/QFsuxzXDoWN+AhK1/DCPcGtsP8F8djcwl6qm0QM8g2u3B?=
X-MS-Exchange-AntiSpam-MessageData-1: Kck3eGiOMAsSRw==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 517cdb47-dfd0-4d8e-eddc-08debf66ac98
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:03.7098
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 1V0yIfh/+rSJ6w0VHQzqY2mqn70YVBDW7HgW8QBc6zce9/XtbZSdv0jx3e6SjuVZv1SUy5BXbNZDgQZAYM4GRw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB2972
X-purgate-ID: tlsNG-c201ff/1780267688-E1F9C443-2986B28D/0/0
X-purgate-type: clean
X-purgate-size: 2693

Implement the NUMA helper functions for ARM Xen by invoking
the Device Tree-based NUMA helper functions.
---
 xen/arch/arm/Makefile           |  1 +
 xen/arch/arm/include/asm/numa.h | 18 +++++++++++
 xen/arch/arm/numa.c             | 53 +++++++++++++++++++++++++++++++++
 3 files changed, 72 insertions(+)
 create mode 100644 xen/arch/arm/include/asm/numa.h
 create mode 100644 xen/arch/arm/numa.c

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 84c4062b30..10d20e3a84 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -51,6 +51,7 @@ obj-y += setup.o
 obj-y += shutdown.o
 obj-y += smp.o
 obj-y += smpboot.o
+obj-$(CONFIG_NUMA) += numa.o
 obj-$(CONFIG_SYSCTL) += sysctl.o
 obj-y += time.o
 obj-y += traps.o
diff --git a/xen/arch/arm/include/asm/numa.h b/xen/arch/arm/include/asm/numa.h
new file mode 100644
index 0000000000..a1fa54f2e7
--- /dev/null
+++ b/xen/arch/arm/include/asm/numa.h
@@ -0,0 +1,18 @@
+#ifndef _ASM_ARM_NUMA_H
+#define _ASM_ARM_NUMA_H 1
+
+#include <xen/cpumask.h>
+#include <xen/vmap.h>
+#include <xen/dt-numa.h>
+
+typedef u8 nodeid_t;
+
+#define ZONE_ALIGN (1UL << (MAX_ORDER+PAGE_SHIFT))
+
+extern bool numa_disabled(void);
+extern unsigned int numa_node_to_arch_nid(nodeid_t n);
+extern u8 __node_distance(nodeid_t a, nodeid_t b);
+
+#define arch_want_default_dmazone() (num_online_nodes() > 1)
+
+#endif /* _ASM_ARM_NUMA_H */
diff --git a/xen/arch/arm/numa.c b/xen/arch/arm/numa.c
new file mode 100644
index 0000000000..080d7892ae
--- /dev/null
+++ b/xen/arch/arm/numa.c
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Helper functions for ARM NUMA.
+ *
+ * Copyright (c) 2026 VA Linux Systems Japan K.K.
+ * Author: Hirokazu Takahashi <taka@valinux.co.jp>
+ */
+
+#include <xen/bootinfo.h>
+#include <xen/init.h>
+#include <xen/numa.h>
+
+#if CONFIG_ACPI_NUMA
+#error "ACPI NUMA isn't supported yet."
+#endif /* CONFIG_ACPI_NUMA */
+
+
+bool arch_numa_disabled(void)
+{
+    return false;
+}
+
+unsigned int numa_node_to_arch_nid(nodeid_t n)
+{
+    return numa_node_to_dt_nid(n);
+}
+
+u8 __node_distance(nodeid_t a, nodeid_t b)
+{
+    return dt_node_distance(a, b);
+}
+
+int __init arch_numa_setup(const char *opt)
+{
+    /* parse "numa=" option */
+    return 0;
+}
+
+int __init arch_get_ram_range(unsigned int idx, paddr_t *start, paddr_t *end)
+{
+    return bootinfo_get_ram_range(idx, start, end);
+}
+
+bool __init arch_numa_unavailable(void)
+{
+    return false;
+}
+
+void __init numa_fw_bad(void)
+{
+    printk(KERN_ERR "%s NUMA info is broken.\n", numa_fw_nid_name);
+}
+
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323461.1589216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxF-0006LX-MV; Sun, 31 May 2026 22:48:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323461.1589216; Sun, 31 May 2026 22:48:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxF-0006LK-GN; Sun, 31 May 2026 22:48:25 +0000
Received: by outflank-mailman (input) for mailman id 1323461;
 Sun, 31 May 2026 22:48:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxD-0005nO-AF
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxC-00261G-N4
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:22 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba69-2eae-0a2a0a5409dd-0a2a45099642-40
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:22 +0200
Received: from [52.101.229.101]
 (helo=TY3P286CU002.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbab2-2497-0a2a45090019-3465e565b3a6-5
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:22 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TYWP286MB2972.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fe::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Sun, 31 May
 2026 22:48:20 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gW+CU3kSAev9Ela4g0kgVb3ptm9d98zD9IOSYIsltsCzYUse9/xFbMyQaqjzQQu0M3iqDr/4k24kU+myrXvcznPq44JVkVJpxXQEX+/nUWzWs7DfWzvqF71NfZI6zFK+2CVdh01Z3hLoL2csjMJG5ihBeLeWC6M2hFQS3JfOfjtylM3NHaAYR9ekhiwagbqZmO/xUsfLgECBrwvpGrA0/j/syslmRl0p3RXRgCuyjt2bfapUKEa3EuOc6Irjp9i/xV1gNrMkfmDvu3PlM5tPp1S2fuEGwG/BDiUVtsLNYRppwcN/NSwjc6m5/Rri/7LLmE7K9O9JNbNoozqQRsf91w==
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=lteRRVaFbxsp6aSXOgwn6Y3jyynAQKzJoiRSSUgWbfU=;
 b=wEAQgGzmIpdSXvF9uKWdI7u5XAJaOnpDTmYw+G4kJFZdSONg/+m2QcCrszpDRc8jDfTSxXpNBCoPPKEnsBY/nYyRDvDneGMEOZawKrPhsd0rZXWcAve0oULJ1CnYmShUe+xjN96KVddUoT9yV1JzsitF0ofYvkIcARRJ/jiE4RUFLqZoxCSQt98zZXrXhpCbVKActHRFAXXZn7KEs4a7dX6+d2Kqg96OfbBf50Pgy9qnzA+yd2l1BPpJgbrYVzIWUuCcoyBW9ccgMv3MVSdafK+7DGozy5Tw9C57iLl2BvGEEk3YhDB5MB7IXWJjUsbimCLg533QtTbeDDfcpjvafw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lteRRVaFbxsp6aSXOgwn6Y3jyynAQKzJoiRSSUgWbfU=;
 b=OddtpVDGGgQbfqsqlghBniDhyVDgtWjgMmPwwylDTCHgZtSyKWStvbfNzqL8npZVRIB/QI5tPe2i3VJE1S6KiOkXQsmq/9sXgOPpkLrJr8cMFZNrTialoYN2HsXELgWmP0zkbJLugjBOnhG42mf6ogAch/hYZfA9bPkVxk+yi8M=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 10/24] xen/common: Allow building ARM32 Xen with CONFIG_NUMA
Date: Mon,  1 Jun 2026 07:47:40 +0900
Message-ID: <20260531224755.9481-11-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY6PR01CA0036.jpnprd01.prod.outlook.com
 (2603:1096:405:3bd::10) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYWP286MB2972:EE_
X-MS-Office365-Filtering-Correlation-Id: 1dcebcaf-2693-47bb-5f41-08debf66b661
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|10070799003|1800799024|366016|376014|22082099003|18002099003|6133799003|56012099006;
X-Microsoft-Antispam-Message-Info:
	U3/PkD8s02vQPQn8tWZBFJWgRGSFeS1l8gn9USZlL6RaIJ/xjbXFGxKFfvxaQKU2yixKz0f1i4pSq/4zu2DeWAD/juGhd4BXD0TYQVN5TNqXFdevrgfpmDSEaAOS+UaMm+uIIuZvBuZZDYSSg6gkZaiBcyB4PGir9Cpb7mxP3LrXE1Z2qnfHgEQUf/suhGmbCpXO7EObC/bbUAY6Q5jbO+5LeiZ73XTnP8XpaPh8JCi/2RsTUt5Vz4/ehvbrL6Gw2U40RnRDFm367jSnRFXlAbsAmR5XB142qqXmJ65uCTD73wLZsszOVriufndg9KDYM0Hj7BfvNz9ZISypCjLAdqAZhKG7TzZ+Vh4tGmfMtpPgbzVOlGDpaaefMo+XQhI+XJojn9bK60Nb/JhEX5ibyMOi4Fm6aSqEGqYvG4HWnKOCp+6ntXaRZiFJjIdzvtQTgCcLmgHo9i/FvOxZ6SUHqBP9VQ74E4egn7QT3qVGSLpLVz7bDsl/rLfISFWvpPRJctCyMKj+Lk+4+FL18Mcso8OCyqv0h47KYt6CpqS9TPeAdUvLrSfm9mraRwirs+JiPkF3DASSwbwwQlFUKZISRjK7kww3fP8rX17rT4hQHxx+V+uxUwPJP5asR2t/ZCGD2vTqfpf2cG8ay2RRIgNZP4cgwKDDXHzT09YIx9ZVupEim/G3iXp+rYyaNIVLjOOO
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(376014)(22082099003)(18002099003)(6133799003)(56012099006);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?O8UmhziLjNSy9T3fpzrXj76g6cc5xV7Y9jrmPVd82BgLbZ9dWbb9zO7375eQ?=
 =?us-ascii?Q?AP4j6s+mq+1U7Cz+VWUxT9Jl3LlCPY2cbTHIKljwymugTvvjZs3vHaizNtED?=
 =?us-ascii?Q?akghbeL3mV+JfY9RWW38781QoosA46+lJTBFHZ00RO+2pP0VSooXjR0RYGHR?=
 =?us-ascii?Q?8UUXwztbzDOOKm9j5Kt3q5iYEaLpwsMYGrAhodj3pjRvXNFfa1uq/eCvkDN4?=
 =?us-ascii?Q?jM5zKiKJs1+OBm7fWuz7G6hbHJoNEgeRa4EqqPu0U07eU80Cz0LrHMBLFOUd?=
 =?us-ascii?Q?700fIaZuqDwtyLbmmbd3dg2N5YobSNzLbkZ+zLt6CaER5RbuP8R/K7k7K7FI?=
 =?us-ascii?Q?TGjojqbhHj8wPSWYIFWuE4gOibxmeBY8VPO2qK2TXHvIarz7C9cn5iry9/Lg?=
 =?us-ascii?Q?cE3iSXoeYqHD11twzy00akOQuOx/ELB9wZ+aSPUbSVFjQqmADB9sipgZ24ix?=
 =?us-ascii?Q?hOruxKZT/9amGVO/x4o5eMEy105Qkfm8MxTt4YVuKpE0Umgr1YXbKEy7hEN5?=
 =?us-ascii?Q?+wASTnsAdH42Idpe1mU98tX2dXPzELs55fO+JE+b51Znlx6bIoFL0fE6lIgB?=
 =?us-ascii?Q?6ndGdzBIBBZb58nD0oEe3NQfmEzU1TI5e2RbGhiPqpQxtAXrCoqpBWeBjKTU?=
 =?us-ascii?Q?qdmf62lhP+YXbnQX6FqiPzAjEXei+OMgYBMSlHO03ThVX/bhJl291fPjECWs?=
 =?us-ascii?Q?RK4OnoilDNd7di4IiJiAD/v0ixvCnZViPi9gqulg9CZ/Wldd/qjhtgE4qnqM?=
 =?us-ascii?Q?D3Uytkmn7zeNB2n7mditfcfbtEHH+0M48358lguK1/5cAGzhAlG6i95F9w8T?=
 =?us-ascii?Q?IEEh2qJI+U8OmJNsQqW9N0kzqGSY9PetP64PeozX00Kyg0RRLbKFlG4Tq6Ss?=
 =?us-ascii?Q?8GGtEDsQaxvdzTINxj15hCwkGJTMvgeq7Fns61eR1zeoOHSxUlqGU0Lqm3VJ?=
 =?us-ascii?Q?ecNTH9u1t6j3YfuGmFhakpOYjKGkjjRf4tcqCsz2vcLkFQl3iDZCN2tSKL8H?=
 =?us-ascii?Q?4i8rMOZpSNZwgYwH9Mr5+USs/fkyyDWj0bRdAP//A9oCqMV/mYi7bfbDYph3?=
 =?us-ascii?Q?MCezBf/lqf97mGlX1NZ3hWx+30VsPuxOOasQ/WQBVBvbGeGK0D46jvrTDbUp?=
 =?us-ascii?Q?u1RNlwO+CSEOcZ3pCy7q5jFMc98/+CPvi4eK5ldilJd4VuMmlTnqdl4vkesM?=
 =?us-ascii?Q?TI5V+YBNVUv4+unkyz/NwW44HoPc3+hL9CiCVp1ON6bA0aoEUHmHE46BWcwu?=
 =?us-ascii?Q?F+faOhi6tOSyjgTXIkyF3WWRp6mcIiNxFdaB5hnVA0AJHCAg3/F0v6b8PCYW?=
 =?us-ascii?Q?sWKKtkkQJKrDN5xoM75C6TCXLYft4C1EPz3XAwSCTGH8FuuQk99puTcjcnZn?=
 =?us-ascii?Q?RdOlfxHqduuw5XAGY7sWSVDZbVnYPQzbjUIcebEQXs0sbtrUCdzqyTfcaWMa?=
 =?us-ascii?Q?h1jlmtJkpSb3t+5rwhGFuLetTU+r1uIZZu7c/PzXch15AKtVzXG8WICC0Wii?=
 =?us-ascii?Q?xkrCmgIFLubwuELXgR/9p5fWmId4PriDVj+QurqVvNWzw5r/gkVMzWxl8XQA?=
 =?us-ascii?Q?ziS9X8uoyJWgAgxTDdcA1yJxQN7eIclrg0I7IFWWMIRAq0F88Arja+JmRXIJ?=
 =?us-ascii?Q?qgmTC8IR3ZAtaUJHj2hjFF/dRcVgO5B0ISuYMc0RFxRC/yF2WRBrpP5nvFEO?=
 =?us-ascii?Q?6OmjM2aclsogiScG0OvsYTGlKqNm5wPKaqhcxdCWSIyPYTlVCLiXFV1viiPI?=
 =?us-ascii?Q?JMB5J10PCnvVd59Hy08t4/iJrJTDa+44on9lIIKctknmrfgm8JnaNKr81j29?=
X-MS-Exchange-AntiSpam-MessageData-1: vqHlevb7/hekMA==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 1dcebcaf-2693-47bb-5f41-08debf66b661
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:20.1213
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xL7KDvdTLvhhojZK9zVwxPHW9HMVORT5oHtn0UcFJNFFsX9ApUHgzXNXPNcbG0DHIHjWS//z7YvrUYvPaUuo0A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB2972
X-purgate-ID: tlsNG-bad1c0/1780267702-43D7FA53-E8AA1C4A/0/0
X-purgate-type: clean
X-purgate-size: 765

Allow ARM32 Xen to be built with NUMA configurations.
---
 xen/common/numa.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/numa.c b/xen/common/numa.c
index ad75955a16..81121e571e 100644
--- a/xen/common/numa.c
+++ b/xen/common/numa.c
@@ -431,7 +431,7 @@ static int __init allocate_cachealigned_memnodemap(void)
     if ( !memnodemap )
         panic("Unable to map the NUMA node map. Retry with numa=off");
     size <<= PAGE_SHIFT;
-    printk(KERN_DEBUG "NUMA: Allocated memnodemap from %lx - %lx\n",
+    printk(KERN_DEBUG "NUMA: Allocated memnodemap from %"PRIpaddr" - %"PRIpaddr"\n",
            mfn_to_maddr(mfn), mfn_to_maddr(mfn) + size);
     memnodemapsize = size / sizeof(*memnodemap);
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323467.1589225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxH-0006d0-Eb; Sun, 31 May 2026 22:48:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323467.1589225; Sun, 31 May 2026 22:48:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxH-0006cV-1J; Sun, 31 May 2026 22:48:27 +0000
Received: by outflank-mailman (input) for mailman id 1323467;
 Sun, 31 May 2026 22:48:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxG-0006P7-6E
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxF-00En0E-It
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:25 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba94-bab6-0a2a0a5309dd-0a2a4504a1f8-10
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:25 +0200
Received: from [40.107.74.138]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbab7-1dec-0a2a45040019-286b4a8afde8-3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:25 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TYWP286MB2972.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2fe::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Sun, 31 May
 2026 22:48:22 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=x9Q85AIugoR2y7uVk1WDWnAcwvbC00HJ7aixSJwGKT+7A5MAQ8avH1x/7GaKC7u3iGDzFX/8ysNiGgdSvW7JxPIIPKJOjkwNQmqsPMR78xCK7rcRZDMAZtBgpURfguPhhwd0pGS9eeTDE0gIRumxJs2xb5qcXv9z26iMHIw7pDffueXeHA+mtln/oN2mleO2eg+S/JPrPyW5cgGoubgeI6Ba2yZ9gQzEDvrVnA86V8iwvT5SHvehnHOB1pfnriwsPlcTneYEE8FKQxtjsDm22SVhRrYlj+os33X8day4JYyqDH0pVgR3YETKxRtsx5cZmeDgx0OIYjl+GzOBqDGk0g==
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=v3KGkmY7p7M2J6F4vJvqKMYA8FFzPtk9uty5vUDLtT0=;
 b=SPZ++2yAIdA3BUUYXLcAofOTV6BX0b0Xu8aor5ed2Bb1MGjq7LeYLlRjECrAejudof764+zYm1jVMT09e2n+j17IrJoU1qysKzk4/w6V1K2qpa/xrjUPoOcRIxiH+5C4/xMGD84ODE6v5jVkfS7UCB2I7aF+fWLGP2PfjYUr4iuglOKOmDM+dsHkoelQrzpz188SMfnBiMPayT4ivH1WYeSmSWpFbjwVfklsFO1EQ/mQkA2PuV1ZuthY5PriVll++MEdsaSbZDB1rJ3RDIs6vkjeBVkJ3cTTq0avUXHZUmm445tswiqLQfJD1VDXboKreKcyKRIGbdzdSwixSfRBKg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v3KGkmY7p7M2J6F4vJvqKMYA8FFzPtk9uty5vUDLtT0=;
 b=vweD/dkPNDl/6D7fMpOsUH07KVB4p9xz4ULSf5LyE1XASAC67y1BqS98iQnBWsMjOm4bEr1BfzIP1wfzydOrjaQIoSgMc44T3FHRG4m3aszwj8VeJjD8a8S7kAwHQivcoAXxnpg+5Fqn4LBiPwumJAAJUYmkF+95n3klJUYYWKY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v2 11/24] tools/libxl: Fix vNUMA memory allocation algorithm to support ARM
Date: Mon,  1 Jun 2026 07:47:41 +0900
Message-ID: <20260531224755.9481-12-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY6PR01CA0040.jpnprd01.prod.outlook.com
 (2603:1096:405:3bd::16) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TYWP286MB2972:EE_
X-MS-Office365-Filtering-Correlation-Id: 9d9ad8db-f265-46ef-5643-08debf66b78c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|10070799003|1800799024|366016|376014|22082099003|18002099003|6133799003|56012099006;
X-Microsoft-Antispam-Message-Info:
	eqHm9enbcl9DXHLtLAuKqpk5ilO3SHon4rLqDhQCbjlXisa/Ft/2jB5GMWw38CxEjdkXSbAkyKQ5Wd/8RJUoJganVIdhfiilW6jb5VlFxugDY2hODnm4Y4TazrMyWimgYP6sUtrB1GydTbaJJKQFAUA15wiJAuT3e5IRVi7Sy36BwkYjFDbZs3aUK8NGkrLWlUeLDfcTskyfKKg1UL9H5v1m2oSZf0LGg0wfXPd010PW6692gLrWmqpY0VWm196V4LkBMGagNiiSKIaVrts7KemQ+p38i91oDk5CpMxK75COO814vS3ZWW+nXXJtBPgTW+V1k5W4I7jBd+R4XmOMKU6r7jiMHc1X3jQH7zrmDg4jWV/LYiID21z9xam2Jxevs7ExMxz8rDtGfHOnx6Q0ylZvvzhG7JiwockT1IqEZk+sYDTQ2a84l9tu+HFHNpIRtI8XzTSOcGAtzuIcBM2/t/aKNPoiNjVkJqwYe2cqT2LDRfslC2AuTPjoOC1rWmvdZFGsZKw56I+ydlcOzR3C6glqDa9S03l2/yRhzQK1GvhhRQZko5T6uRODRV53pz8P9hYeAU1IW9lwzwCkCkXly0bJh68cbZBNiWdfve+9HF3AKxCxOFWt6kvZ4qKS7FeJvPG0xrXncuNPHmr6a8Qi3YVzIPOos3xy8x4SVkADTZLD7tpkwUZjqVjAHfFXQf3n
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(376014)(22082099003)(18002099003)(6133799003)(56012099006);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?T7tpQmfMkBU9t7PoGlBDqCecQwCfcmaGLpAnPQ3hJl49sp3ndUCb9itwzCds?=
 =?us-ascii?Q?xwOdd/LctWiXvU3CibJ718w7E1CStJ6vZeZDjrRnbv+DROFHf8Qk5daLjNoM?=
 =?us-ascii?Q?Qb+jI5OCvj6lD2TQR74FU2Us0/JQF4lqoxwYRttoAAzM1BfDfb8hBFTHtAh7?=
 =?us-ascii?Q?TNORaa+a1JeCX7GapWYMTkcjcinQvM8M9Zr3WgbLRJZmCRhFSQ2FMT7cgbbL?=
 =?us-ascii?Q?aIlDl9SfDyCw3UF2oMXvZvPaYq7iwmmx4OejeuOg+VdwbNxPARpcIi2uLEl7?=
 =?us-ascii?Q?Xg5eM2sx1mtMGmxZ4orRMzGHIQOcizzYxIx3zOgWkqnk91Sjt5U2gXwMx6Jn?=
 =?us-ascii?Q?ujbo6GEQuj7hBtH+WCJ9iYiSwRVVn6Q6orhcmhIP4CiRXt2cefvUWU+vxV92?=
 =?us-ascii?Q?tLElBGF7vs8IacOocuUiGGk4SXm5TA+sYie8/DprFveRmzTghII9Pfd9n3FB?=
 =?us-ascii?Q?bjLu3IcTXEwYIMnnKVi5WCtU+ExbrEfoO4RS7ClRwzMF8LmTJrTHmyTzIblU?=
 =?us-ascii?Q?IMqy3BnazhJGNNljEe4zPQ2DV8AFhaY5jv+1shZvRUzh34EQHlN19uylvaU9?=
 =?us-ascii?Q?cbt4PsvpEPqBt3W5OTYhOMMIH/D3xQ4QZDBA3ij8W3iydLy2NkI1zsJXuC7z?=
 =?us-ascii?Q?DVTBQUgkDLPJkE2/R+Oe1eeGB42xdYwCU2igFoa2yzcz7b0G+pqbbbUZNthx?=
 =?us-ascii?Q?bArCaPovpztjhzGNKsN/e2ziFptfMQ0D+sqvRjnJSTaZ9GrPvTFIk9Zn3UDC?=
 =?us-ascii?Q?8S6ohiolVMwV0lj3DPmtUriBc5TOPVeBq3yjN+guO/1cBMUCVEKp2TIhDU2H?=
 =?us-ascii?Q?BMtOibTjj9XAqpSzFKKET6cRb6L6IzNmsrogKbjwg3JJpQgttKOlR7pBomm/?=
 =?us-ascii?Q?ot96KIV157SWHowZNUQMqAvfA0779yTfNanWI5NOY0wf7jt1iiPkjmhWPq1n?=
 =?us-ascii?Q?bl+8bCM2Jxh+tCtDhso8QAO2D4C45KoGqxxj+4HoVKCJe6a61mNynMsxC0zB?=
 =?us-ascii?Q?AAVHEKCRubBR+Ve56YBZwU3s9XYaj8vXhwv30S+9at1V7/VgxWWXnfgyy9kj?=
 =?us-ascii?Q?wu3X6vNT8Qf6uqV8U5EyeSUPfHiaZDVw0DNeGal1nr/4eykh/4qG8KzMumaI?=
 =?us-ascii?Q?8MWR1fTP8zdP/XO96aDlLkANshIGnub89CU0ihq25jLsW5ClfMCiGQUeJbRf?=
 =?us-ascii?Q?BSUPE91zc/GCp90//XqJHIXzjC/dda2P8UD3AimvyIT7c9YivmCZKjkJ5MA6?=
 =?us-ascii?Q?mWb9GamhvLJAAimEI5GQMJCGwlnj7dyA220nHij9smHZgSUsQssFMTb18ERU?=
 =?us-ascii?Q?qBGSltSWvPx8z+2horuIzRck+2czy1hpLE2/wpnSF3T7U6PZD0SXfLVtCJJs?=
 =?us-ascii?Q?m5fnO/8+LpCvPKVIf58vlSHeDSYakxcRV2fcuNUmNuvJLDDOx1I8PbB6XgOH?=
 =?us-ascii?Q?egZFdQp8Sv4+O/I7oz6aT0ZIqw1R/qiGJ4xBjXXDewutWv6nKRm7K1yTJI+r?=
 =?us-ascii?Q?8lvnJ+Ac6VKQ/5GzkA3pcV0jtaT46GJg56SYYviYrqQi1m7VF0RmqBWDw5vF?=
 =?us-ascii?Q?ESOAti9x01ePDx0Ww1ZFY06bblcz3OcPp3g2Oij0Dx+6n0J4cv7pUScG2fUU?=
 =?us-ascii?Q?7VCpyQU3C6zndHjOC09ac8FUr+qxwvN00zj8/35AmdZity2guSExb/1aCsr6?=
 =?us-ascii?Q?mWnchKjqNZprhuBBMAUoSHsyuvHTlQmGomsXFjgwYl9cOpQ7y1NyL8yAjJzP?=
 =?us-ascii?Q?UFux+TSRVTWjeOLJuzXcBxTKK7PZmrcR2PkYdQL2HZWk4T4FHx9aBXG96z4A?=
X-MS-Exchange-AntiSpam-MessageData-1: 6MV0a98T6wfklg==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d9ad8db-f265-46ef-5643-08debf66b78c
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:22.0853
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 92RmgxP+MjUfXNBugZs/1oWJlI9cCmYFESRdicop3ZECUuODFsACVW/cIETEF2UO7sYyRKZgPOY3yKWeX+hCJw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB2972
X-purgate-ID: tlsNG-ebf023/1780267705-417793FF-11D28434/0/0
X-purgate-type: clean
X-purgate-size: 1528

When creating a domU with vNUMA enabled, the memory allocation
algorithm was dependent on x86. Fix this logic to make it
usable on ARM as well.
---
 tools/libs/light/libxl_vnuma.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/tools/libs/light/libxl_vnuma.c b/tools/libs/light/libxl_vnuma.c
index d181574782..70a92a7598 100644
--- a/tools/libs/light/libxl_vnuma.c
+++ b/tools/libs/light/libxl_vnuma.c
@@ -259,8 +259,12 @@ int libxl__vnuma_build_vmemrange_hvm(libxl__gc *gc,
     xen_vmemrange_t *vmemranges;
     int rc;
 
-    /* Derive vmemranges from vnode size and memory hole.
-     *
+    /* Derive vmemranges from vnode size and memory hole. */
+#if defined (__arm__) || defined(__aarch64__)
+    hole_start = GUEST_RAM0_BASE + GUEST_RAM0_SIZE;
+    hole_end = GUEST_RAM1_BASE;
+#else
+    /*
      * Guest physical address space layout:
      * [0, hole_start) [hole_start, hole_end) [hole_end, highmem_end)
      */
@@ -268,10 +272,15 @@ int libxl__vnuma_build_vmemrange_hvm(libxl__gc *gc,
         dom->lowmem_end : dom->mmio_start;
     hole_end = (dom->mmio_start + dom->mmio_size) > (1ULL << 32) ?
         (dom->mmio_start + dom->mmio_size) : (1ULL << 32);
+#endif
 
     assert(state->vmemranges == NULL);
 
+#if defined (__arm__) || defined(__aarch64__)
+    next = GUEST_RAM0_BASE;
+#else
     next = 0;
+#endif
     nr_vmemrange = 0;
     vmemranges = NULL;
     for (nid = 0; nid < b_info->num_vnuma_nodes; nid++) {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323472.1589234 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxL-0007Gm-Ln; Sun, 31 May 2026 22:48:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323472.1589234; Sun, 31 May 2026 22:48:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxL-0007G0-Fv; Sun, 31 May 2026 22:48:31 +0000
Received: by outflank-mailman (input) for mailman id 1323472;
 Sun, 31 May 2026 22:48:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxK-000732-9p
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxJ-00BFyL-Mv
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:29 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba9e-5cb7-0a2a0a5109dd-0a2a4508c056-18
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:29 +0200
Received: from [52.101.228.92]
 (helo=OS0P286CU011.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbabb-63b5-0a2a45080019-3465e45c1533-3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:29 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TY1P286MB3278.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2e1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.17; Sun, 31 May
 2026 22:48:25 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qkng8pdB40bOngRy4VPOI3CpFigMMbOBmcth24d84ePYynjcrkP/4beY0urPZKOdWSGECUGsf0igmW1cw7sb81dfHZXWHMZpGP4OwNZRFW2ScWcNOi+ojE+ZBWS8m3njBI82p3Ussohowopr82RCPkNevKd+T+9frXo8B2jHTu5uft6Sqqr4mGbzCmJNu/eccrX4jmQOHvl/5dL2kgyuAOpMVWm0T7bubhpj/cjQ15Ji3VYEfSRv9YX4x8dcR5e8GIFjxZml5371aTu+crjocPIo8dQtRo8dEyfmFpsLzNBpRES3GKA2HyMHw56VvXf8YrwdcSu0INjDqZL1kpDYDg==
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=7/1jjuePRl2BihluZPqQwpapSqp5qYBLP0RAoKJuUMM=;
 b=XdPmrDFCfAHC+6bEw3AzR9ZgmdgqGVHRullXTTPhlDoW8Vh4bHw3hgvEQIfzIwmdUwtyGxqM96TrfoyucODDEZELOH6V2lzbst+8x/t5MmDPtMb/4cqiwHEar1dcMN963BuqBywW66UuMJ7VFksphg6EQrwidyXUDHIUoc30nWOKSBL7XY/nzqEtuwBVqL/JYGX5CPvbaJhh5n7LP7S7SF1iBR3K8RulQXQJXYBfo85lKtPbF+TrDMIBmR1rR313xYroU6PoRHiV4L3ZB0VBcbeT8iCEy1iwZoXFNwh+fRmRCfUznH6kEnVkEoHpfHPf9YmGqh2PrYAYA9ZlgdAs/w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7/1jjuePRl2BihluZPqQwpapSqp5qYBLP0RAoKJuUMM=;
 b=V2t8hQQYfN9swYxsjRnEUMT7+FTLIJMqj4oMKtu/9mYVaujCyUpHgL+VOg0C+YiFUrXR6ey1/NeaOrnNV+aonoD/bxRPgoXrClNYFGaQahYOwiqaaiDldypuxqVyEDiZOgsGPGc0Z2EPLRrDNLZIOovnOFp5hOS3SfqQC0D9XMs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v2 13/24] tools/libxl: Add 'numa-node-id' property to DomU memory nodes
Date: Mon,  1 Jun 2026 07:47:43 +0900
Message-ID: <20260531224755.9481-14-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY6PR01CA0031.jpnprd01.prod.outlook.com
 (2603:1096:405:3bd::13) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY1P286MB3278:EE_
X-MS-Office365-Filtering-Correlation-Id: 1c5f87ad-c412-4a6e-129f-08debf66b9c7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|10070799003|1800799024|366016|6133799003|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	T1mouqI8oX/Qv0sQojux+Q+ytCkgl85Q9fvZLZOLnYkYJV2mUj5a9kWB0azAiLzGJcCqAO5+naCdTHueAvliFdp1k6gwxe6IvqSL84HpHcRqPAozpmtWqRtVXpapyrKcS46MKz26OF9caIMKEU7p+jFxJY+8p1/kdQMM6MWscaXn67orgvJdI/s2CcdszKqXkgffXiwb2Xvi4LgJwHMzMzxEwTOTERHSJLk9JLf+vFowQRQrcboNUl7mgl141+4nqvZPhR0ILu/5GR+wt5eRxzkV8kapaC7rCkSrWJT/A9gJSw/bTsRC166Jo1FpTQbzY1JK0db4wPS9mSac/gdpCZOcLDKoQ/wyQ2UZUB8jT5iN4AivFQ6u8KQ+HMUDIMz+WcOAi9KfWxV3rKQ2bhwo/7bi52lb2EtafmnocvUIA1jXOL9udgCHmGX1Gma7Ucjiw9p5ayBPwF/lUOOT9eRBIQ61PLRd837XqCWnRZLq+18MwWWWVC0YM5fQKZIahW8z52KW4NYgXCj5R4vw0hLLWJJd+VRSOkJ8LQUoM/nHVOgUKii3iYoZ1MWWAOs4mpj8lOgmLn1gryq213BaOP/N/9M0GuEgaVceQN67f20OJXinRI/TbDfzt5ej0TYPfsNjR8GqqGKoQa3lxtR7B85oDOrBVnUTXHbTFud/GrhzaTuT6V8+RFCe+6XO6+bLP1Qd
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(1800799024)(366016)(6133799003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?5xlKcwDJXm81g43lhZ56okgF6RDlsU7ejF1YBUJymdeUYpt460qyoR6JyM8V?=
 =?us-ascii?Q?RN/yQYQDjNYD/UysF2xXUerkQUjl4Yp4mgSfx13ocKVWPSbPypyyCBOx4MFm?=
 =?us-ascii?Q?it2T3UOEvts5pzArVIDCvRfcF7W/KD80qmHSZsM8VXowKwJCJVJ1AIgcxVlC?=
 =?us-ascii?Q?SubyRghV86vWjBxAL2TMQ6qD0mejhLE8f9HTi7q+kgjyr2ioqOpbL1eHUiPO?=
 =?us-ascii?Q?DTjDU1fctMnzyJtqTgkEdr6K/gQ78IEFcn+ao4Z+bCuMi27MncEgGxoZ/uIh?=
 =?us-ascii?Q?LDmtEBfjvJa/vmrkB8Yrr468n22ZIyikQp6hL3f6FwUZywKKmj39xpfwAbrH?=
 =?us-ascii?Q?RqY/3IPTgIzHtdA95UrUphYh93pfBrXdCrH91p3uDrYUhEujkbq2YsKhmm0h?=
 =?us-ascii?Q?DFjdptvOpr5+iduUOy1avB1Pr7WvXck1tcsJ1Krbyvs3Fch+WKLYTTPVqF8W?=
 =?us-ascii?Q?no+x6VD8/m2JI461KQ9fQ8uHHqeM5juKX9mdsWaJ3npOwjEf+jzKc8grwtpK?=
 =?us-ascii?Q?s8aFXS1iSvin6gYbA5SNkvKl7+gCInyT+5t6fhmU69837u99qj2PQ0l8SMqa?=
 =?us-ascii?Q?2RfsV2OV1Q8El8IxGZARQtNJiW2hl8HD+EfFIqKP5wJyD1cVy/mOYWitYBA6?=
 =?us-ascii?Q?wz+5RT/tLztrf5wZSvBCerCoWUmD3oNUOsCxl3LwTXvUAtuVuK7RL3b9NBkA?=
 =?us-ascii?Q?4QaB+4g9a0IVKekInluv+ay661VPRZ9alcidPOiJYeBxdGgopK5ceHPhEtdv?=
 =?us-ascii?Q?GtCUyKiJfJf7yyiB4FLhKfVVIUHUZoanxuISkegIHjYMjTsVqJ2eECg1QQh4?=
 =?us-ascii?Q?qAHo3sxYrww0atKylWfDfBxKT2NrnaQB15MtcUecoEQ8PX1NYe9fjwIuDeEo?=
 =?us-ascii?Q?xkd5LcEk1vVHE2VM1WQI32HbruEAAaXAjGlPOHR5tmiLVNvqQsNvN175fJFD?=
 =?us-ascii?Q?KQhLFS2ucMd7vhMl8as96LXeR4cavjm/7bY94kWCX0BurvKBSqPG7gG5dQQa?=
 =?us-ascii?Q?f9ignM268TTAokrEzSDM5AhJmaegCQZAVMIUT41s8tOByTVLS150T+e2Idkh?=
 =?us-ascii?Q?4HEecqm2eN24CibH8s5HPcZFY1PVJ64dUyLYNeAQzvwJxT+kq6QlIAPOCCiL?=
 =?us-ascii?Q?pK6jcMD59IVK0jCAo2clKnuvBkY0FdMT+HHr5wLDOzgNNK7DM9azwIFFz7GX?=
 =?us-ascii?Q?Jszn9TofACwZU9tLdZTbf0Mcn6dsYkPCqhi/KS+Sh2RmnuJitNXZ9NgVgIxN?=
 =?us-ascii?Q?dTPrlTVBzmdgq5s8PsdD2cam7D4clgbzLzsl+eiSMMo4kIPRRNsG9e5ozyTC?=
 =?us-ascii?Q?8R4rB7LB28LvfnhG/1NI++edGzUqbynK9jKR/tOrY7ND713iu6HIWjRkXC4P?=
 =?us-ascii?Q?6mKVQngIh1geu8MuDuvQ/HIqgP9eKC1CeazkyLMzAdxJG3zoBr546twbtG+W?=
 =?us-ascii?Q?nmD+TszW15VahJ4ohgz5CHyHFMEdGmShSo/s2DWmAmD3rOAnaLY6HcFoVxBU?=
 =?us-ascii?Q?iV4/ssZhPHlGgIOV6Q9NhW09Xf+lYWchf8FjTPIAJatG9AQUPqNO1IQe2++e?=
 =?us-ascii?Q?g20UAaKqxMOC8ASQcxGSpXQL1cC6tfw8D1/681jYso2aX3GCCbRq+t/PFJbt?=
 =?us-ascii?Q?n/ZyNhVIDTiXFQw2cLjzeaDPptRIAhekKAn6YRcQQJvqSE9A+akDQjPCWTko?=
 =?us-ascii?Q?6QNSoOUztbmMNqyC4Oc0oYXmf3RZsiiqG//6Sw0VnX3dIbpsCrPtZHWkH29D?=
 =?us-ascii?Q?DxRKZFaSQ3sfmLhyFQLHqpiDyuWESf7p6peFMTOIN2uD31Xq8vq/xdNE3kMM?=
X-MS-Exchange-AntiSpam-MessageData-1: ITtX9Vx1/3BWQg==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 1c5f87ad-c412-4a6e-129f-08debf66b9c7
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:25.8217
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: age/xR9+c2G4rxOvGrucGUSC4Wz2Ae83LE0Wr5Rz/vxYKGvGCdjt6ZsJOWC5t0B1EvdeVsUHJ/RCGTh0QPmBUA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1P286MB3278
X-purgate-ID: tlsNG-c1860d/1780267709-B757FDB1-1A447DF3/0/0
X-purgate-type: clean
X-purgate-size: 3839

Add the 'numa-node-id' property to the memory nodes in the Device
Tree passed to DomU. The NUMA node to which each memory node
belongs is determined based on the virtual NUMA configuration
specified in the xl domain configuration file.
---
 tools/libs/light/libxl_arm.c | 50 +++++++++++++++++++++++++++++-------
 1 file changed, 41 insertions(+), 9 deletions(-)

diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 7e9f8a1bc3..6eae33cdd2 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -670,25 +670,53 @@ static int make_optee_node(libxl__gc *gc, void *fdt)
 }
 
 static int make_memory_nodes(libxl__gc *gc, void *fdt,
+                             const libxl_domain_build_info *b_info,
                              const struct xc_dom_image *dom)
 {
     int res, i;
     const char *name;
     const uint64_t bankbase[] = GUEST_RAM_BANK_BASES;
 
-    for (i = 0; i < GUEST_RAM_BANKS; i++) {
-        name = GCSPRINTF("memory@%"PRIx64, bankbase[i]);
+    if (dom->nr_vmemranges == 0 ) {
+        for (i = 0; i < GUEST_RAM_BANKS; i++) {
+            name = GCSPRINTF("memory@%"PRIx64, bankbase[i]);
 
-        LOG(DEBUG, "Creating placeholder node /%s", name);
+            LOG(DEBUG, "Creating placeholder node /%s", name);
 
+            res = fdt_begin_node(fdt, name);
+            if (res) return res;
+
+            res = fdt_property_string(fdt, "device_type", "memory");
+            if (res) return res;
+
+            res = fdt_property_regs(gc, fdt, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
+                                1, 0, 0);
+            if (res) return res;
+
+            res = fdt_end_node(fdt);
+            if (res) return res;
+        }
+
+        return 0;
+    }
+
+    for (i = 0; i < dom->nr_vmemranges; i++) {
+        uint64_t start_addr = dom->vmemranges[i].start;
+        uint64_t size = dom->vmemranges[i].end - start_addr;
+        uint32_t nid = dom->vmemranges[i].nid;
+        uint64_t regs[2] = { cpu_to_fdt64(start_addr), cpu_to_fdt64(size) };
+
+        name = GCSPRINTF("memory@%"PRIx64, start_addr);
         res = fdt_begin_node(fdt, name);
         if (res) return res;
 
         res = fdt_property_string(fdt, "device_type", "memory");
         if (res) return res;
 
-        res = fdt_property_regs(gc, fdt, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS,
-                                1, 0, 0);
+        res = fdt_property(fdt, "reg", regs, sizeof(uint64_t) * 2);
+        if (res) return res;
+
+        res = fdt_property_u32(fdt, "numa-node-id", nid);
         if (res) return res;
 
         res = fdt_end_node(fdt);
@@ -1365,7 +1393,7 @@ next_resize:
         FDT( make_cpus_node(gc, fdt, info->max_vcpus, ainfo) );
         FDT( make_psci_node(gc, fdt) );
 
-        FDT( make_memory_nodes(gc, fdt, dom) );
+        FDT( make_memory_nodes(gc, fdt, info, dom) );
 
         switch (info->arch_arm.gic_version) {
         case LIBXL_GIC_VERSION_V2:
@@ -1716,10 +1744,14 @@ int libxl__arch_domain_finalise_hw_description(libxl__gc *gc,
     if (res)
         return res;
 
-    for (i = 0; i < GUEST_RAM_BANKS; i++) {
-        const uint64_t size = (uint64_t)dom->rambank_size[i] << XC_PAGE_SHIFT;
+    if (d_config->b_info.num_vnuma_nodes == 0) {
+        for (i = 0; i < GUEST_RAM_BANKS; i++) {
+            const uint64_t size = (uint64_t)dom->rambank_size[i] << XC_PAGE_SHIFT;
 
-        finalise_one_node(gc, fdt, "/memory", bankbase[i], size);
+            finalise_one_node(gc, fdt, "/memory", bankbase[i], size);
+        }
+    } else {
+        LOG(DEBUG, "vNUMA enabled: skipping memory node finalisation as nodes are already populated");
     }
 
     if (dom->acpi_modules[0].data) {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323476.1589243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxN-0007cX-77; Sun, 31 May 2026 22:48:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323476.1589243; Sun, 31 May 2026 22:48:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxM-0007bX-Ua; Sun, 31 May 2026 22:48:32 +0000
Received: by outflank-mailman (input) for mailman id 1323476;
 Sun, 31 May 2026 22:48:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxL-0007Dh-By
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxK-00BFyL-Op
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:30 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba9e-5cb7-0a2a0a5109dd-0a2a4508c056-20
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:30 +0200
Received: from [52.101.228.92]
 (helo=OS0P286CU011.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbabb-63b5-0a2a45080019-3465e45c1533-4
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:30 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TY1P286MB3278.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2e1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.17; Sun, 31 May
 2026 22:48:27 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VWhCYBYjgDVRfsLv0+tiBm0H9tHExWCyoDv6ruTxAv8pAC0N4QFE0YhnstNzdJ/Hd6qjsuLwFe4NczQ4s8UT2uzEvy9ebN14uk2yNEK739jh0xSWiV0LAEj0EvaG/HBgSN1TqgKmb+rRhUiWvc34I3JgV3V8QaiSfhia3w94RbYyWvRmf2d7F86CTBJ8VqNndDprk1JNVIE9z1hAY2mbdOhi0HS1GWxye0+MwgQjzscnofpoI/Hve8voaL9CDvZKDmj3nemPJyXcs8RKdL+pkTJOwK4zl5gTV82zC9dXnUEjTF8FEnEbTZJb+0B2HuvPlGPJjWxnw2bJWN74JFBAIQ==
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=dJizAY35JSMvsjR4vL6kswffWmnRdXb3uawGnTqPjSg=;
 b=QUTXXRKiFkddXpWcQwdOKqo9JbyE9cylHW/TWG31XgiOn7pAh6YXHYNQAUKTmE1PaDGSwFVvWVpAmXrB5WKdTCmDnDHR3vgEvB5QMdno091nPisDbI2XN8yFJuMukRnIP1min5tY774ZfH2hElUebS/DBpd8EMDe9/QP5JJPIWDAUotLlJFoQukvqC6uR83C/aL6QSu+WdRpx2bBr78UhpMZvWFhI8tAzH6HU2zoYJWJ5QewBMe2+AFU3vfa8fcF4dRlsL2lHjP8MdK55tBbuxLzNEsGaSVfVGLZQaYZcDcuuNjw58WJX3HbxYddkC2x3mqJdwTTEK5+QUgarJ3HCQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dJizAY35JSMvsjR4vL6kswffWmnRdXb3uawGnTqPjSg=;
 b=LAM03Iq1gMOE6CuP85ATtm/z2gQBmNdichVJVLolgVsGn4mddds10aoKyL3V1gc7TcyGoELM2wd6AVLL67HPgWgHvSC+d36jkoZFKzmJhOEsC54ZIqlwD7hrbzQpyHfdwLedCQxodvkIQCFkcd5wg+P2OI0y8E7kKWAY2Boybdk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v2 14/24] tools/libxl: Add 'numa-node-id' property to DomU CPU nodes
Date: Mon,  1 Jun 2026 07:47:44 +0900
Message-ID: <20260531224755.9481-15-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY6PR01CA0034.jpnprd01.prod.outlook.com
 (2603:1096:405:3bd::17) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY1P286MB3278:EE_
X-MS-Office365-Filtering-Correlation-Id: d62d177b-6f2e-4205-680c-08debf66bad0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|10070799003|1800799024|366016|6133799003|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	lHvFDjGkktSbTxOgcUdcUwwR0pLpakSx35u59TAfgS1VfChjXEmikLxsJ1WcgStDKu7dYl8Gz+aQ+emKy5qLuuI+kVoCBZF/936Owk8vnq5lzvKYcF4DUWJ9YQY7z4fs7BxiBTYy22ulzElMT8kvyWbAM26KDLSbdvbyDNXPYcT43exnTDAO3Rg5NgABDJa6FfTYxg09RUia+HxrM/hHfYemqrJop3716JFuWuB/s9j0qIf6DkIxedaitG/W6hmFzFh2tAAt5vmnR/hvEh/U/XlNy/hVT5COUSyff3+Hw/7TKv6UThAoYVgtfaHBX6soT/D9GU+TGFbEES7LfMtslI/V9t0EtQjXPvDo08YzSEUqZl0lB/WE4iHnChKR+H+SlMKTK1kWG16tnzSIFSBx62mF3JsYaaKGl5OxpAwtN2st5iPMlOsqtubQPJVSGlMs/jAW4DPvzeMcH2RwKFrFXZD1CZzm3E1CN2pgMnA2nS5V0Ay2sgbxq+fsbzA0XVLZyjKZFr/FxVlEdjtx84enttB/zcU0xQboA7U+FGwUQ9Ge++tOGvDyqDXdmf1tP7GAqmi30N/kPAhY+3pG9qESp7qQkXqUGlTt9ccIsA2ibBawLlRrbwtJ800oUocMJgS35J4LPFGUJ7MfpgFwnWEmBVp7+2cuLJsSzYG+YOcU16Az1FLeM0mT2VqZ82FEvBxL
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(1800799024)(366016)(6133799003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?tbtC/78mxTjYO9BfRi/paVtKhsa1VNOmW3wseRd8sGM4MDsGkgGKVzEv+t7k?=
 =?us-ascii?Q?Mepn6qMkFgFYa2+PymEPzBjVaxwJ002pFedJ4qv1NkbQHwnqs32HyOEL31RU?=
 =?us-ascii?Q?T2QlXOtEgPWd0iI9HmzZ0CoznsjIstlPuJd5gvfwWQ9FThpynEiJ4REe+kIn?=
 =?us-ascii?Q?7XLiGgaSaepzQUW0pvOEIEVPFLHtadHatEUCdbxN0zv7ZMcu+5SgrcQrdrh6?=
 =?us-ascii?Q?wmISLIYBFI+ZOSl9qqR6cBeOccasLGIMt2lVm+wzIqijG8/LbihlZR5vXZ6x?=
 =?us-ascii?Q?NriXx/5/DaDqIwBNKdkNzFRaX4xh+R8JKrm16IloCXi7OmvqyUqf9Dtpm075?=
 =?us-ascii?Q?HXhiqHHwjEM8/P1p6Ee3eDmBp8LP183gtx13Tj4P+tDfeiTDYseEFgkbZ/5D?=
 =?us-ascii?Q?BHUQNCXCjQDQwUghJU9fbH9Mu10TQxJuWpw/uaNcbazebrkfuYsFSldm/yk5?=
 =?us-ascii?Q?xR01snf622woNbFULZF9XJTq5aW5rnKmzYz2XIshX0AG+Hqjg/LEU8f53rxu?=
 =?us-ascii?Q?SIyB4IOaNxV6lWIgnKqX3SvkYEGMbL4E5fgMafkyIBEk2fqxtIjU0J4DVJPB?=
 =?us-ascii?Q?pUF1KD2Wu/zmw2tTZXgTEK2Otdr2k1pkCoDdXknRNNBeNkswcb/inU0BYNLS?=
 =?us-ascii?Q?vSwEIL/1qiSl88QHsrqK3ttCUjmF8sVFSn8sn8aPJFTH4p/YmrkT3P9pJBvF?=
 =?us-ascii?Q?I7RQhh2bNkRFK2lnKzszYO1NNwz+h9QE2xAfWLNGC9JOvzKWYqDS2PkeS/SR?=
 =?us-ascii?Q?X5u/DlVZulz/bxj78UDY9/zffRS3Fk0Klc5loS3/AFRu6kF4W7wp/y7nyc0O?=
 =?us-ascii?Q?bN/ECWRG2E1O+vSIAIiiT9zJ87s83vmR+Io2X47iPL7VNUKkUNhovGcO0wAf?=
 =?us-ascii?Q?L+Ok5yMfls8lP+ZXNxbxzn3H29PYzov1WB+GlvNxqFdQZJBH9kNe7Jaemuba?=
 =?us-ascii?Q?8cg+O+HwVQyWBh5EGMHzbp67T39jh3OfLvxg/5OWNSVmrJZzJMxDS1TWfXPw?=
 =?us-ascii?Q?LfTLHu+NrE1PMIYUXkHLR7C9d9TAjaJk54igysPW8IwcznZc4afw5zO+Fvrm?=
 =?us-ascii?Q?hNp6HPBKMEOwhUk7WmmtvADeDMlljbbNQVJt6NtlbxPfmza2cXcl/iRw8G6H?=
 =?us-ascii?Q?eu+5jqdkrPQWVWJnYCg4v20vgHUhugSdcpQOFZhyGet+6RwgaXnlSJmBW/vu?=
 =?us-ascii?Q?kIMGxd2eC+b/xrdjpWUa58AN9VS/OsA/j+zhtP4uxPbUgnXgj/C/D77dHcUP?=
 =?us-ascii?Q?KnYgMkXFakY6Od36LwIjqfCZhnzOW/X5NTmHV2FiujosyszK0Lu4TP9CWHTv?=
 =?us-ascii?Q?4cdQYe6y9rNfWVOxyDkFmeM/vsZp0+VOduGZsfdlRzQINvIUFTBmdFAlgVNV?=
 =?us-ascii?Q?NhBubJrrSV8vmTGcKoQOmEqQQcs+OCtw4LIKctfAIkDzZK6cLNGN4FkCNubX?=
 =?us-ascii?Q?jtE8/YvWJmlmka2MbSzhFRTpQIZVfZSC5i9BTLLcDyYSkJQa8Nc+0sM3mFoZ?=
 =?us-ascii?Q?jVID2CQP8g0W4pg2CI3idm6uGHtXb+0Uj1KGw7QpQtfsEVvNZWQpZp9I+4Ye?=
 =?us-ascii?Q?nX9XLz32n70wWcK1Kopwfhmv3sXG6bhnXs8Y3+nO2or57vM9cLNKwl67r71t?=
 =?us-ascii?Q?e+ZeDlVQvfGqqz4T8/3wUI84eEomF3CgskHIHKDti90S/tgcuAw1TaIhFBPe?=
 =?us-ascii?Q?dcGtyyiQJzSJeZ3Bq7r7JhssuWBtV3FIdohSRZ3rYOohiwsmATx2j3s0Fylo?=
 =?us-ascii?Q?CMAYVwRRrBwaB0WFUqoMVgk+lsh4we6OYy12tU/j0FMJOaqBuszpdpXdci8W?=
X-MS-Exchange-AntiSpam-MessageData-1: qyig9pLEGm8ZkA==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: d62d177b-6f2e-4205-680c-08debf66bad0
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:27.5697
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ZHKeD0SxjfdPZVoU4YFCg7P4eINz4FufPI6N23CdoS7H+xF649sNm3MERTBWnREvKEwLzMXkj8mS5cT7BF+MjQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1P286MB3278
X-purgate-ID: tlsNG-c1860d/1780267710-BDF6ADB1-CB423CD9/0/0
X-purgate-type: clean
X-purgate-size: 2298

Add the 'numa-node-id' property to the cpu nodes in the Device
Tree passed to DomU. This information is retrieved from the
virtual NUMA configuration in the xl domain configuration file.
---
 tools/libs/light/libxl_arm.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 6eae33cdd2..4b0ed99229 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -571,7 +571,8 @@ static int make_chosen_node(libxl__gc *gc, void *fdt, bool ramdisk,
     return 0;
 }
 
-static int make_cpus_node(libxl__gc *gc, void *fdt, int nr_cpus,
+static int make_cpus_node(libxl__gc *gc, void *fdt,
+                          const libxl_domain_build_info *b_info,
                           const struct arch_info *ainfo)
 {
     int res, i;
@@ -586,7 +587,7 @@ static int make_cpus_node(libxl__gc *gc, void *fdt, int nr_cpus,
     res = fdt_property_cell(fdt, "#size-cells", 0);
     if (res) return res;
 
-    for (i = 0; i < nr_cpus; i++) {
+    for (i = 0; i < b_info->max_vcpus; i++) {
         const char *name;
 
         mpidr_aff = libxl__compute_mpdir(i);
@@ -607,6 +608,17 @@ static int make_cpus_node(libxl__gc *gc, void *fdt, int nr_cpus,
         res = fdt_property_regs(gc, fdt, 1, 0, 1, mpidr_aff);
         if (res) return res;
 
+        if (b_info->num_vnuma_nodes) {
+            unsigned int vnode;
+            for (vnode = 0; vnode < b_info->num_vnuma_nodes; vnode++) {
+                if (libxl_bitmap_test(&b_info->vnuma_nodes[vnode].vcpus, i)) {
+                    res = fdt_property_u32(fdt, "numa-node-id", vnode);
+                    if (res) return res;
+                    break;
+                }
+            }
+        }
+
         res = fdt_end_node(fdt);
         if (res) return res;
     }
@@ -1390,7 +1402,7 @@ next_resize:
 
         FDT( make_root_properties(gc, vers, fdt) );
         FDT( make_chosen_node(gc, fdt, !!dom->modules[0].blob, state, info) );
-        FDT( make_cpus_node(gc, fdt, info->max_vcpus, ainfo) );
+        FDT( make_cpus_node(gc, fdt, info, ainfo) );
         FDT( make_psci_node(gc, fdt) );
 
         FDT( make_memory_nodes(gc, fdt, info, dom) );
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323478.1589248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxN-0007hI-Ox; Sun, 31 May 2026 22:48:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323478.1589248; Sun, 31 May 2026 22:48:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxN-0007fx-DS; Sun, 31 May 2026 22:48:33 +0000
Received: by outflank-mailman (input) for mailman id 1323478;
 Sun, 31 May 2026 22:48:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxM-0007Tq-LR
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxM-00BFyL-2D
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:32 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba9e-5cb7-0a2a0a5109dd-0a2a4508c056-24
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:32 +0200
Received: from [52.101.228.92]
 (helo=OS0P286CU011.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbabb-63b5-0a2a45080019-3465e45c1533-5
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:31 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TY1P286MB3278.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2e1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.17; Sun, 31 May
 2026 22:48:24 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GhzpwkBhKvbFzTNhACp5SEuTeee9C7hhyt/3Ppih9lX8sSezcpXvsz0P6oPiLU0T4KmwxFtIEZD72SYGwmYBmB6il6wZYL7FB0ZahEZGodg9ZGNsvoaA0n9S6Ln5U9mSrsoJB1KNlyWzAY5GqSnui+8C+YZJyu6xITzMlyB+4Zj10V+dsWiESJTJ+LXqmZPpdtL7xkrQ5jkfChPYFkV1ErgiQ6tR5VjimBuRvkLXu0PM3a0YYuNLb+1bcwa2nWOdJodaOmBE345wXQXAI1WfqI71nxGydUuANzVeECnBYI9XzOSf+MSiFdEbOcf99/kPQ2DEOC8FssG1fazmrdIysQ==
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=h1fpEhty/L0qcXw9KcXU8OLmSzP52ezRWu7E5NXmfus=;
 b=dHb2LgQS8Gni1HzEbE4mUDHK8TrYvJ4ecp4bjGk6dPowI2xTIMF6+X1RD7Hitg8WQyhMI2PzOfX98wEtxk/1BdViS3hMNf1hp0xz068vOJMdC4xpWSYT4G8INjxS16B4Du6M47nls3nQFmHnINNE4oNJ6Y019I6Am9GfQMSi8tfmkZhSdtzeA5fICcOp23qjaKf4FHn5mAWadPBHtr2MX6peTwZBffTc+E/3vMxLkHy0wJi/xeTa9shZccgjLjWDTlO2zSuFdtfQub24RvztO7Dua4J8A/CTK1qxhfnEEU7E0nrJmX94/YhiUP6c5p/4a7aIP4kY9YJBwiNrnndLMQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=h1fpEhty/L0qcXw9KcXU8OLmSzP52ezRWu7E5NXmfus=;
 b=rKPGCe1sb7nEtR+McraBYzKZr0kBnkds7LDGPt8t/AEUKQuRzfviWmsSnegJla4gOs8imR2W7Mqa9YKZ2tPdLr6GLGAew1vbLODeUhSurxE3s1q5usREu427Uk6xex24S6JmL6dOOjEIqEqYgYhpikIUIR2GPjZCXcSzZOWoK7Y=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v2 12/24] tools/libs/guest: Allocate vNUMA memory from associated pNUMA nodes
Date: Mon,  1 Jun 2026 07:47:42 +0900
Message-ID: <20260531224755.9481-13-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY6PR01CA0039.jpnprd01.prod.outlook.com
 (2603:1096:405:3bd::12) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY1P286MB3278:EE_
X-MS-Office365-Filtering-Correlation-Id: 1e4fca19-caef-4e56-1eb1-08debf66b8bf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|10070799003|1800799024|366016|6133799003|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	VUPKfffV0InkQ2UIAVIe8T+rDD3Wj9GgynshFFk3rO8JQRWR1Sx7embUR3x33h8bTVvlAxn/2/6wFrr+wOJLjf2McKnktJTLfvRtxWn4wITnuIh0lkn2JDJ0bZIztWVngmKQt4pEuB46rH4Yj2UBkFJPQx35t8L/v4Wz8+ZJSdxCqt8OdF+i3vjW9AFmGvLt5gYXBykoqa4i3lTrxZE+LDLqAJSQR2MYR8fittMOk/yAkOfO9RhU6p969bg1E0zA8FjL9guY2nFpp9liSL1O430UlDHR5TmPdIIuziy3cVBb9eK3W+AAqrXw73uDpDQZgHtlOwnE5ssLhYBnK2Zbp232xpu31RCrAo4gtQh/baTRKoPai+baLZK3XQxA/86e8d6I2DI/HPMCNXBwleR2yV9I4cxmnFF1vGvgBaBrIsN5O846pdg0aPclqeXqufSGGxLjqBox7ircR7qRgT24zTeSvVzDS5YaFS+2ncMWHq/f5CiHy7yqNByk9SUhXhiz+Ur00M4TMEO5LvDTemiV6/EkI8HW0wJSnx0kkFvh9tf4iV0ZsU5XPf1w+E7VQYg9mIw0FjXseszDlEZtc7IOcoluEs3BKbi870Kq9MtXN0IPQUXqe5yI6vN2aYVTbfSZXrJctHe2rgO3XNyGmimhH8azmnZDMGGtVzoJ+MqNSExH2HvGTdYFD8vZUIF1LHJH
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(1800799024)(366016)(6133799003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?XWMi24sZE91OrLqwAda0Vldz8WN9DnR4sX+Z/blioztWshUkKxeIpGtq1LuX?=
 =?us-ascii?Q?Y1z3jfOsGzR+mb0V31FmG6EgelyjrNZVbqfbxQX3KTCmCl2Svl6XKvrjm+rK?=
 =?us-ascii?Q?2Vzae9kyFigOUBV8JqhM/qW8DCx8iIWv8G3Z8rqGi5ZQsHDVLTlh68z70LX4?=
 =?us-ascii?Q?62Q8SPljvVIwY/zRhY37vOkyks0Xin4E1cOv9RgxOp8ZyJ6lSEJvZNG+st7f?=
 =?us-ascii?Q?VjwZMIQcFtvKO5CcVt2w6VLIJA5+CYbBKP9KAwZ8fn2bgeldlCVN8P0Lb6BX?=
 =?us-ascii?Q?W/19Bq+nN3mjMEJdz35cuGm6jjp/uZZAnVGtfmJbDZopQEvwwnbwSva4RANT?=
 =?us-ascii?Q?2gVsyPRx0JJs6f6dxxTFuy1kO3IyqNpzEX42QWyr6XeP6CEoLfJcIMx7fdGy?=
 =?us-ascii?Q?ZWKaDVupqpgiAjvx6vetUrYXpls9c2WfSXsAsx4qLSU2MPNNYBpm54soI4A4?=
 =?us-ascii?Q?4FkbpLTJBzxa+2Bqxk8AL3/DhlelOdK2eoqxcJtG/r1fjG7FKvMs6XO4yJK3?=
 =?us-ascii?Q?TLByvYNPyXBM5i9lfAdT4b0JMe6WNsO1sCTAViDjZi2acATrnY0W9T6RWYZD?=
 =?us-ascii?Q?ZSAKk1YK9Ey0yfVD9dLIp/SbrePLIgLYLyEEShQQL1t6n3Y2S+W+UxuymZvM?=
 =?us-ascii?Q?q97LPjATaj7cQ0r3SCeiq6fa7tKIZtOnCYA46cstqwz3gD2DGwJ1nRARR5wF?=
 =?us-ascii?Q?HnDhrfRd6QLNLKoaDH+B4b7fKQuIXsbGL7/ioBHOI7BFEJuEDLH0aayvM+J+?=
 =?us-ascii?Q?T/3cjX6cn+Tgb1roEDfY48SXsqedzRL9hIaZLHxDns1wT4evUhOAQ9RVnnjW?=
 =?us-ascii?Q?qJB13mWe3ESHKA00zxofNWFR4yIAFLlGwwjgSl/oKeIpsDk/E2rh+FPnLMcv?=
 =?us-ascii?Q?VcTpwG6GZjVVUjERUHPU9xqNanFePxa/VomgQbtXK6uH9aYaIs5LEI3iun56?=
 =?us-ascii?Q?jMZfEYi69os1zJoZJdoi0LfLei5BSxHS9yGiiQ8h7vWtPTmvpOSJ2c6JJh4+?=
 =?us-ascii?Q?XcuWWE2ovLWDR7oEp8VX0Wo0XRtmMcMOoYUcqivyH3E69kDHPbEnfOFUZKvF?=
 =?us-ascii?Q?Lkvj8YzZX+KmkWLtn1WumGqop4vfokoWRqQt97yZ2M95I1hcP/LyMGlTXhUk?=
 =?us-ascii?Q?B9p2Gyo4GTjsq5VZSOBeDe83jsp5Un8dHCminsB/5zd4lsxu4ZVo5GY044gr?=
 =?us-ascii?Q?oe69J2eTPS+22d47SM9d545lJDs+mQGLFbYmQcdbSYh8F/LPIpVZnb/Owy0Y?=
 =?us-ascii?Q?lwym7L8dUvEh9rFCg3+WSxKcLrubfkan05jjWp0BWxZ0T27nN0fZQsAx96oE?=
 =?us-ascii?Q?WKnC2UwDHZxYQeRLYcEgxQ3PS2fPgS+/+yur8VfBTEaTQoXCig/ICy44MqYj?=
 =?us-ascii?Q?hDxjJ5oD1JCR6UETxwXekQdd/jEdbQCfJvxJ1a2z9KVnJz7ODvRmdxwuV+R8?=
 =?us-ascii?Q?856pQtxIU8DHzmu7buL22U8uzKp+plVkYULS28ejOTlGo0K/iqM503/uDv4/?=
 =?us-ascii?Q?NXydER79mVnCw6hTIj9fDxxybahbqonBTMu01PlkmcmBlXQxoSKjMMiIXfkQ?=
 =?us-ascii?Q?ky7qNNL+EHXtA8uSTYJK9+W32dG5wShm2s8c8z9hWQwuyAgvNlijIkUD5dRt?=
 =?us-ascii?Q?fIrgxyvNM+2qUcnCP/OtPwUMZUM+ck2jFgJFFumt2vuerIdhvlj6E4zNyZBo?=
 =?us-ascii?Q?l7Qhyjmr9VJtcal5bUtlmnz2pPf7DEr+ZOK0H4gvlpeRJaFfxZCrLk1RUYAh?=
 =?us-ascii?Q?6qE0ExjLuwTLTTduOKEOYnYGIzAewvdqtCirQlakS4cBGkOR+Bh7h34ks27e?=
X-MS-Exchange-AntiSpam-MessageData-1: bSk9cEScBah0cw==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 1e4fca19-caef-4e56-1eb1-08debf66b8bf
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:24.0787
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Gbzln7Sm0ZiTZuUcTuvY5WDOh1t267EYITLxLDcA0/2doDGmQ2iEQQcpaRxrQrWUHmor8k5tTWU7Z/KSN2kwFQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1P286MB3278
X-purgate-ID: tlsNG-c1860d/1780267712-BE776DB1-9FC8536B/0/0
X-purgate-type: clean
X-purgate-size: 5735

Allocate memory for domU vNUMA nodes from the physical NUMA
nodes specified in the domU configuration file.
---
 tools/libs/guest/xg_dom_arm.c | 62 +++++++++++++++++++++++++++--------
 1 file changed, 49 insertions(+), 13 deletions(-)

diff --git a/tools/libs/guest/xg_dom_arm.c b/tools/libs/guest/xg_dom_arm.c
index c8d0918506..6beab17e48 100644
--- a/tools/libs/guest/xg_dom_arm.c
+++ b/tools/libs/guest/xg_dom_arm.c
@@ -236,7 +236,7 @@ static int set_mode(xc_interface *xch, uint32_t domid, const char *guest_type)
  */
 static int populate_one_size(struct xc_dom_image *dom, int pfn_shift,
                              xen_pfn_t base_pfn, xen_pfn_t *nr_pfns,
-                             xen_pfn_t *extents)
+                             xen_pfn_t *extents, unsigned int memflags)
 {
     /* The mask for this level */
     const uint64_t mask = ((uint64_t)1<<(pfn_shift))-1;
@@ -274,7 +274,7 @@ static int populate_one_size(struct xc_dom_image *dom, int pfn_shift,
         extents[i] = base_pfn + (i<<pfn_shift);
 
     nr = xc_domain_populate_physmap(dom->xch, dom->guest_domid, count,
-                                    pfn_shift, 0, extents);
+                                    pfn_shift, memflags, extents);
     if ( nr <= 0 ) return nr;
     DOMPRINTF("%s: populated %#x/%#x entries with shift %d",
               __FUNCTION__, nr, count, pfn_shift);
@@ -285,10 +285,12 @@ static int populate_one_size(struct xc_dom_image *dom, int pfn_shift,
 }
 
 static int populate_guest_memory(struct xc_dom_image *dom,
-                                 xen_pfn_t base_pfn, xen_pfn_t nr_pfns)
+                                 xen_pfn_t base_pfn, xen_pfn_t nr_pfns,
+                                 unsigned int nid)
 {
     int rc = 0;
     xen_pfn_t allocsz, pfn, *extents;
+    unsigned int memflags = 0U;
 
     extents = calloc(1024*1024,sizeof(xen_pfn_t));
     if ( extents == NULL )
@@ -303,6 +305,16 @@ static int populate_guest_memory(struct xc_dom_image *dom,
               (uint64_t)(base_pfn + nr_pfns) << XC_PAGE_SHIFT,
               (uint64_t)nr_pfns >> (20-XC_PAGE_SHIFT));
 
+    if ( dom->nr_vmemranges > 0 )
+    {
+        memflags = XENMEMF_exact_node(dom->vnode_to_pnode[nid]);
+
+        DOMPRINTF("%s:     on pNODE%u for vNODE%u",
+              __FUNCTION__,
+              dom->vnode_to_pnode[nid],
+              nid);
+    }
+
     for ( pfn = 0; pfn < nr_pfns; pfn += allocsz )
     {
         allocsz = min_t(int, 1024*1024, nr_pfns - pfn);
@@ -312,7 +324,7 @@ static int populate_guest_memory(struct xc_dom_image *dom,
         {
             allocsz = 1;
             rc = populate_one_size(dom, PFN_4K_SHIFT,
-                                   base_pfn + pfn, &allocsz, extents);
+                                   base_pfn + pfn, &allocsz, extents, memflags);
             if (rc < 0) break;
             if (rc > 0) continue;
             /* Failed to allocate a single page? */
@@ -321,22 +333,22 @@ static int populate_guest_memory(struct xc_dom_image *dom,
 #endif
 
         rc = populate_one_size(dom, PFN_512G_SHIFT,
-                               base_pfn + pfn, &allocsz, extents);
+                               base_pfn + pfn, &allocsz, extents, memflags);
         if ( rc < 0 ) break;
         if ( rc > 0 ) continue;
 
         rc = populate_one_size(dom, PFN_1G_SHIFT,
-                               base_pfn + pfn, &allocsz, extents);
+                               base_pfn + pfn, &allocsz, extents, memflags);
         if ( rc < 0 ) break;
         if ( rc > 0 ) continue;
 
         rc = populate_one_size(dom, PFN_2M_SHIFT,
-                               base_pfn + pfn, &allocsz, extents);
+                               base_pfn + pfn, &allocsz, extents, memflags);
         if ( rc < 0 ) break;
         if ( rc > 0 ) continue;
 
         rc = populate_one_size(dom, PFN_4K_SHIFT,
-                               base_pfn + pfn, &allocsz, extents);
+                               base_pfn + pfn, &allocsz, extents, memflags);
         if ( rc < 0 ) break;
         if ( rc == 0 )
         {
@@ -415,12 +427,36 @@ static int meminit(struct xc_dom_image *dom)
     assert(ramsize == 0); /* Too much RAM is rejected above */
 
     /* setup initial p2m and allocate guest memory */
-    for ( i = 0; i < GUEST_RAM_BANKS && dom->rambank_size[i]; i++ )
+    if ( dom->nr_vmemranges > 0 )
     {
-        if ((rc = populate_guest_memory(dom,
-                                        bankbase[i] >> XC_PAGE_SHIFT,
-                                        dom->rambank_size[i])))
-            return rc;
+        ramsize = (uint64_t)dom->total_pages << XC_PAGE_SHIFT;
+
+        for ( i = 0; i < dom->nr_vmemranges; i++ )
+        {
+            ramsize -= dom->vmemranges[i].end - dom->vmemranges[i].start;
+        }
+
+        assert(ramsize == 0);
+
+        for ( i = 0; i < dom->nr_vmemranges; i++ )
+        {
+            if ((rc = populate_guest_memory(dom,
+                    dom->vmemranges[i].start  >> XC_PAGE_SHIFT,
+                    (dom->vmemranges[i].end - dom->vmemranges[i].start) >> XC_PAGE_SHIFT,
+                    dom->vmemranges[i].nid)))
+                return rc;
+        }
+    }
+    else
+    {
+        for ( i = 0; i < GUEST_RAM_BANKS && dom->rambank_size[i]; i++ )
+        {
+            if ((rc = populate_guest_memory(dom,
+                                            bankbase[i] >> XC_PAGE_SHIFT,
+                                            dom->rambank_size[i],
+                                            0U)))
+                return rc;
+        }
     }
 
     /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323480.1589260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxQ-0008Ok-NR; Sun, 31 May 2026 22:48:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323480.1589260; Sun, 31 May 2026 22:48:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxQ-0008NE-8W; Sun, 31 May 2026 22:48:36 +0000
Received: by outflank-mailman (input) for mailman id 1323480;
 Sun, 31 May 2026 22:48:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxN-0007hS-Nk
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxN-00BFyL-4B
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:33 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba9e-5cb7-0a2a0a5109dd-0a2a4508c056-28
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:33 +0200
Received: from [52.101.228.92]
 (helo=OS0P286CU011.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbabb-63b5-0a2a45080019-3465e45c1533-6
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:32 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TY1P286MB3278.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2e1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.17; Sun, 31 May
 2026 22:48:29 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LH645p5Tyh9SuZcgihSaeZL/hM9dbpGypGgpOJuwyo93Lq5E+D2vTH3arZiwhGnUSyzW88MVWaRAmHyYeFnbbsCQPysZFQaoCiqOme1TEQIYDnNsNfaWfjU47iUvEtg+2qPc51BXQxNher1UM2qUAzgLnBouuwksJfNwyBmTbM1cJOY6xn4pQrueoCA9oyH5g+1AYIioo29eZbUt2BoHYYzm3h3zx3KlcOMPoEl3bqzsXBHL/eHIozRFK5SX4QTda0RiK+k4CktZMSjyTZ0Ovu0HNmyRApDbj/a0lknYKkvXNfbGF4GdcMC1Qwdup2qs/oAFyKrfWwFO84oHgZ5Lig==
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=5vjE+i4Pyy0yY3FTsKfqjfjpLb47e4a4LegkVylR5Ng=;
 b=zA5o2bPkcmTKsU9gkrdgUO3ALTwvk/L0G2gxYBtoBXKqZP1kXhigfTtnDnsuqPFswmHdmwtL8waDOaLnwnY6FA6CAYu1WCHVCb8FVpbkFsnwMBdB3/+6toTFBQc2Ym4cTHFo/f1FYFU85eWYOk7mrV1OmvtZuyAH9/SP1dPVPEGUylIf3Bk06myAOgxzEQpcWx0xyq38bEpSAaqzmJFOLJPVHP9fatskfq0TcKFRi2M6um4x+fnhpN/l03Lt6Tm8CCGey/kWIRGs69pvq7hE0OWpn6gOO8fMQR0x3v9E+KZHH3Jb8Ee/yF6bxrb2uauW2FVAye/k+dHP5ixK8tqqiA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5vjE+i4Pyy0yY3FTsKfqjfjpLb47e4a4LegkVylR5Ng=;
 b=YjFPGhv23AhC6UmxObqW8Eq1zFOdjYT2HVPbC/Wg+i1JwlOsxxPWgzSgh/b1SP5O3H4syN8U+DhPqXh/VmrypjEfwgPgu29QkiZ+CKlYBTi+90kRkBeQ//sQJxMxnv4gAI67DWO8VUpKFF4B0MtktUbWD0BTw6MeguQ2EzSI45I=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v2 15/24] tools/libxl: Create 'distance-map' node in DomU Device Tree
Date: Mon,  1 Jun 2026 07:47:45 +0900
Message-ID: <20260531224755.9481-16-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY6PR01CA0038.jpnprd01.prod.outlook.com
 (2603:1096:405:3bd::18) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY1P286MB3278:EE_
X-MS-Office365-Filtering-Correlation-Id: 299f53b1-bda7-413b-d05f-08debf66bbe0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|10070799003|1800799024|366016|6133799003|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	auvvSF/S1nxpM/lcQtTLg1WvEmxBOjloLQKTjTAgz/nuTzODcHXs7Ltbb4XpDa99AgGs4shKTls3xEkySZ868eVaW0ETiUu/IoNpCW2ygmzBe9d4opKRPDfEoZXq0RXYVk/lofxtcfKsyukPnFo2zL2R2YnbkkoI2JR08psxImHGMIuaEOXE6uvcjDSSDnolWDu9R8YCmlT0VC16ai1+NcA96UdXRvCiRK4I1oRFETeQ9vifo136uQGa7jyeIPNbdPJEZMluA23vxjP8sTNTksPh+VrwDXwbqIgXFxVbRGjUor59OQD087xuyceLmJlj7UWcm2d+Sd5Pui68hd1mvJAFks8RdOxBBh+nOfkI9LT1mO0f4sZV7zulnWv4BE3Bwhae2/76MjHPswvjweY7GRwj5I21dXAkLaICi3cjeXF3Rj7+XSoV1/VzSb87pzmrFB4CV1r02gq4XvoWlV5PVmXarW0wIdK5+kzThOeETFMpixB/nRPSigvZrf4NnHeNqggjbNuOs5ep/uFoimB2Z4V0Nf84sQNvxHKo99K0KSX/a9ntdtYYQaj2gdjnv1NQgnY0jRz5E6nf+cGHmiA5sRUrivJZ6XOwFIsKfHFssxFUlx7IjLhzSuilywMy2Z8ZZky5k2HDWOAuOtr+BzFMSAjDPZpsVQhxlpY5d8+SWPDHuf9WMuv8uDo5cgwnIhjp
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(1800799024)(366016)(6133799003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?9UanKKOCxZi5m3rEHuAqFl7ewkHNHkheXWOuRXGO5Ah1QJKIHu7C8J+iRgQ5?=
 =?us-ascii?Q?/+nfgejz6Iu81MLrz68IcMLgt9GaaZcxyAGxx3xqXBSqvTT6UCu/PERdRYxe?=
 =?us-ascii?Q?U9OK+qrFens143MyI+CnJJmz+sjxAHa7+9W095yiJuERI3528A8jnyPTi0gQ?=
 =?us-ascii?Q?5qEE0KNKfevrsrvmiHHNylCnxVN6VISAAyoUQ3itUAW2sYeHHNy3FRQePrhA?=
 =?us-ascii?Q?U+jo+FjsetDZHn/N4entD0eWe2hHQOg8hhfPp/zOHmkiLfW0nFx/zuDa0BW2?=
 =?us-ascii?Q?ZtI/SX9TBuxbOB/a3+e9ylGY5vnOn5Zx83V/JswRQzHfD7GHGM2TN1cNF/Yj?=
 =?us-ascii?Q?1GSKashohqvPtOnl6Zvps/kpUNlRIKAifOyl9Um2h3TZRdmcCn0Py3HoaU8K?=
 =?us-ascii?Q?32K+K0wncoDGsV/nN7Z04qJ7nPFw9QV53XCdHzSRjlPKegsURKkypgnpsvUm?=
 =?us-ascii?Q?9DykY2Nh2Gs6vFUfYlhoZjqFPfzPn5oW/WMRGPY0NpptatWwPblsTbCm5WfJ?=
 =?us-ascii?Q?xL0q14yYHj14ep5YkO021r8Vy9rCb4aNtadrsps6+85AHKphxYtQoVaBjDkX?=
 =?us-ascii?Q?i/GwsWR66EbgXD9Tww1w7/doekT+QSgpy1JGoFYn6o719KQDmK6YYATJgnTP?=
 =?us-ascii?Q?QPvuKutpr+rsSDBS2Sl07cX+C6I1VUnWf+HEyobRXXzHJv9kAfbSrW+CLRZw?=
 =?us-ascii?Q?QpNVICiMbJySAIq15ppRQxNlXfk0ntLSwktOdeGyg8o1AkkRrOGxPLzS6l60?=
 =?us-ascii?Q?N7T+DjbbWq+HUV935A7sto3sW9GhoP47rtzAr5X9EmcA4VwA4PzVIsiD26Vu?=
 =?us-ascii?Q?gYcy0Iu2oR9yxgSYyJ/fYucJqUops40aGe4ttipQ1IPcTEL93mynUH3fbHay?=
 =?us-ascii?Q?AjrR1BGp5Loq43PGaUQlSFbWIsqRk52QQDDyZcBC5qEYwlpBkIJ5U0B6gwFW?=
 =?us-ascii?Q?cb/cjb/uphtSvoNCNXFN8nfLlk7VozFh034ldFmPz1x8cJXYJSUlotMfL/mL?=
 =?us-ascii?Q?ffScq/uOteqaRIGhKMcQsYIb6Pn3mX7SmzwLjGBEk9n+f/sa+MTMMm8bYYUU?=
 =?us-ascii?Q?XjdRRI/HjO1KK7Sdhv+Ev0LDVHKi+39dfhcfQJtkghGB6hzHKmB327joi6HW?=
 =?us-ascii?Q?gvkjtHYL77DAisd3Ss7Y90NIrinBxxPFLOkdyy2Co+gSL1qd7S37l4Yac1YV?=
 =?us-ascii?Q?ddyqE1bVbBTzy6wxXgaMKMmqT2ig2WWSylx/9RvxIaoP96uy3NfQwbsOlsi7?=
 =?us-ascii?Q?QhZHcMwgXQp2vhwzXLrWBk4Z5dNjpgYKkwpE/M86wWxMo7ipZ+FG5TpP21VQ?=
 =?us-ascii?Q?IHJT8q4aEODmNxpNb5zmwAG5gHy7KFbsZ4oqch+FYz3feWgDYk3obhToM74m?=
 =?us-ascii?Q?UfAztpf7zmKhcCn+4dbmAiO85cknW2M581yRgDY13y/4/CnS+FEPwn/35AhC?=
 =?us-ascii?Q?dyLUxwdnJuEKEBaEjscH9xaeQnyqdrlVUvdyjIsv+0w0ewdbxNz8B1IsXdzn?=
 =?us-ascii?Q?lCTpTYG33FH6I7y3lFkBXmEpyVgxyfLmj2gxccBNPbedMhSK2Z3JNXdT9WVX?=
 =?us-ascii?Q?DwfCHuCD8aoJ3lZxxWl7yWocYxE/+D3B1pIWe3vlNvAHWu8TjbahIJVHAe07?=
 =?us-ascii?Q?tpweLtIaKf/LouVzRjmOhjUdn4k8eJ8PpY/aqpUC+l1SMbjfxyKlIQGSPK8A?=
 =?us-ascii?Q?uxczIeMLZXkbOuz8S0q8lqXA/DBbJ2X8CHXMvz5baq7hqvjBT87iD7e77Qkz?=
 =?us-ascii?Q?VHBi6c71FTZU2Id94RGqTfmWZ/w8vdyiuJEoYCvjPEyqVSoj2kdl4Vb+8R87?=
X-MS-Exchange-AntiSpam-MessageData-1: MK5cR7io9xoDeA==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 299f53b1-bda7-413b-d05f-08debf66bbe0
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:29.3582
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sWx9NwwGGG9/qk380X191uOiCYKYIBokaZAOMXhd6bfh25XF2kvYef+oQTHrTZOyhWHGcvgO4od4j/Rlz7B0tA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1P286MB3278
X-purgate-ID: tlsNG-c1860d/1780267713-C5784DB1-B0A279DA/0/0
X-purgate-type: clean
X-purgate-size: 2062

Create the 'distance-map' node in the Device Tree passed to DomU.
This information is retrieved from the virtual NUMA configuration
in the xl domain configuration file.
---
 tools/libs/light/libxl_arm.c | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 4b0ed99229..466bee95ad 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -738,6 +738,39 @@ static int make_memory_nodes(libxl__gc *gc, void *fdt,
     return 0;
 }
 
+static int make_numa_distance_map(libxl__gc *gc, void *fdt,
+                                  const libxl_domain_build_info *b_info)
+{
+    int i, j;
+    uint32_t *matrix;
+    int nr_nodes = b_info->num_vnuma_nodes;
+    int idx = 0;
+    int res;
+
+    if (nr_nodes == 0) return 0;
+
+    res = fdt_begin_node(fdt, "distance-map");
+    if (res) return res;
+
+    res = fdt_property_string(fdt, "compatible", "numa-distance-map-v1");
+    if (res) return res;
+
+    matrix = libxl__malloc(gc, sizeof(uint32_t) * nr_nodes * nr_nodes * 3);
+
+    for (i = 0; i < nr_nodes; i++) {
+        for (j = 0; j < nr_nodes; j++) {
+            matrix[idx++] = cpu_to_fdt32(i);
+            matrix[idx++] = cpu_to_fdt32(j);
+            matrix[idx++] = cpu_to_fdt32(b_info->vnuma_nodes[i].distances[j]);
+        }
+    }
+
+    res = fdt_property(fdt, "distance-matrix", matrix, sizeof(uint32_t) * idx);
+    if (res) return res;
+
+    return fdt_end_node(fdt);
+}
+
 static int make_gicv2_node(libxl__gc *gc, void *fdt,
                            uint64_t gicd_base, uint64_t gicd_size,
                            uint64_t gicc_base, uint64_t gicc_size)
@@ -1407,6 +1440,8 @@ next_resize:
 
         FDT( make_memory_nodes(gc, fdt, info, dom) );
 
+        FDT( make_numa_distance_map(gc, fdt, info) );
+
         switch (info->arch_arm.gic_version) {
         case LIBXL_GIC_VERSION_V2:
             FDT( make_gicv2_node(gc, fdt,
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323484.1589265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxR-0008T9-8t; Sun, 31 May 2026 22:48:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323484.1589265; Sun, 31 May 2026 22:48:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxQ-0008Rd-OB; Sun, 31 May 2026 22:48:36 +0000
Received: by outflank-mailman (input) for mailman id 1323484;
 Sun, 31 May 2026 22:48:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxO-00080R-PB
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxO-00BFyL-61
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:34 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba9e-5cb7-0a2a0a5109dd-0a2a4508c056-30
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:34 +0200
Received: from [52.101.228.92]
 (helo=OS0P286CU011.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbabb-63b5-0a2a45080019-3465e45c1533-7
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:33 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TY1P286MB3278.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2e1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.17; Sun, 31 May
 2026 22:48:31 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bpHd8jBPXdEwmyW+/QmQKZ8cRXwoIT6mhsCyqfFyjQBfBxs6htMGiMgaDjfAjwIGNMptSv+ZQ/UPIEPYcu/1cVz7W8WYb6XNIscen6iV21UwF50+CNMkJ+WrdlyphYU1kiGgEpFo8RhLfgR2y6XBeUSeUAJxFZ+QlPvV22l1z05fyH1txUPtfqaI2GXg44a98HqleEP3lhYJ4dVf6/Tj8sg9f1YEIz4pgAk/Lh4ZCDcSJYuS0AyxLBcDBnY2O1du/cLsFxBYeH9AWwwRys0h8FwvJybwULCLkPc24cWjVWaoGVfVenG53sYBRIaIzkWe/BhTMFTgTM2AlRDxPGZhSg==
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=0S1ZqEU1iZpAsWT1zego46VY83uaoXXJ+aqFDfCXlC4=;
 b=OdxHnWN5FfywG36/xtS9hEdLYQErrFfiobgHvq7DBYySZSgfdiom4W5YMAZ6lrkSfsKbpT09YN+QIcaG6/NeJMzHkQlUIQZurkU9ONqHP0fbKNlc82v1i27vunxAJ69GZHMUW0AIWRF0eJBl7m+RddNvHz5IUVuHiTpiIqz+IY6sCS6iVqwq5V4fMVQGGoeTLp2I+QuPq1k9oRISjTNTjpGi7A/HXWZzAeZrBOHGsNkwIyJFOOPFuAYZQS7+LyvE5reqBn8zPm39Lg7Ds6RHmmw/an0bWoMmXImrUqkOnTqGiLQ3iUMSc+PAELAbLGbnaNZhna7gw3PgJHGtB5Rnkw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0S1ZqEU1iZpAsWT1zego46VY83uaoXXJ+aqFDfCXlC4=;
 b=TFK7b8Fp5eJ0T3jN9bwLONn9I65mslkUIFjjm5kHs2HgL0rdu5WS32BGr0yRHA1T9ROlbbm4fTCpNzJdujqcMqHApuAEG6gvNCCkxMsLjiVgHrS0DIFX81F9Bt9ZDsZCjWoIAWyTyeU4j703ohFN7BLg7muQVcF86XftOrr9JQg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 16/24] xen/arm: Introduce dom0_nodes boot command option
Date: Mon,  1 Jun 2026 07:47:46 +0900
Message-ID: <20260531224755.9481-17-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCPR01CA0079.jpnprd01.prod.outlook.com
 (2603:1096:405:3::19) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY1P286MB3278:EE_
X-MS-Office365-Filtering-Correlation-Id: c6c8d835-c04f-422d-03ce-08debf66bcf2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|10070799003|1800799024|366016|3023799007|6133799003|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	kIID5X4oQZfjDpnc0Qs6y3LPfOqS39JiyOd6d4WlLDyqq40WcR97wQFpVQZt3aG81lW4+958RbKjDnUTl4FjdSUCKTJUlEd/VkjLT9rv0vMeKt5Um2+01WCCyVxbVvyK5Q9u81hRR8dZvs9CSOGrYXPya+9PIJ4yJy7tOfxBfXYMwXW6W/4kvoiNm2rOFPU3uFH7Y8Fg7G7X3KMBizly+P10jOJVGdjBSpsbz4Vxv/K0MfyqYxLg15q4a16NSbrwqae1sDDkjVnG/ot69TYBklDwnQT7378eAwO8TRuYFFB3yBecUrs8tYKxE20yN+Qk+ALD1gwHp5ur7mC5h5c36hXBAIUyeiD6hlgRF4PkGYrS2qi7oVSKd8Nn18q/zwLPfavJVQ20d6CPUf0VqRqkpTk4NNQQ1W3KSF3ISqjXEqfjrDApir7YMa0P24gf5xMOM0KZVcxY8hDXvYMMlAiZlcgLfpDvdYYDFhALNhOhUx5l9mxWuiM1PpogH01FcqgGkxXTbY174lYdSeX1C1szKIiGCbRJS0jUNm+3bEAqQrl/kUUtTF2CVegTjohcsD/pFDN+ssVjcA8wMenpvieaaCxlzB+q6mTWaOmfHrSAe98aT21p0bymvNI360jYEfIXysAXSbDzbgsh8zzRqqm5/4Ntk26P3rm8pUXGPVr0nBzymu9JL2R2irYgai3yIgRN
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(1800799024)(366016)(3023799007)(6133799003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?bs5TU4A6cqwI5/Dao5ubP2sKGtWx845cY7rsjYinYIGtrxIH7aDGj0J4lMTv?=
 =?us-ascii?Q?f8FP/AyVWCjNRLpylAvyTRp/K4EJRMv0D0/vVk1WUq9m8HaKCLLnsuYLXpKE?=
 =?us-ascii?Q?EUoc29Jv/5CpJr1FHaRlHYFCzEf64GkGNsWPmSZnX3yZe/+Do+PEiglNgyKE?=
 =?us-ascii?Q?NnFUviok7PdW7qg+6MX+zGFISZEpk+v5LRF2mf3akTG3nBluU7Ssb1qY4VoO?=
 =?us-ascii?Q?1UjdwAo90TYGORNXn02We9YMLbMI9u+l2XKqxSvDrH43Fjo3EqLg+RrOKwgo?=
 =?us-ascii?Q?NeiVRoyCf3lwMj4HoNGW+hUP2O0eDQUNESYo3UDXXAdN+ynhfv2rsr1foCPD?=
 =?us-ascii?Q?StYu0wO6Kf28GdA7jP5Q82CqFFtrUsEoFMSZxkA+jef5v8C4CQ5Drm0+eaGw?=
 =?us-ascii?Q?TR1wSyi7twuwNvQry3TFFHvHR5rHdx3I9nJ8BBLYhe/p4XAdNdH1Gp5Y66XO?=
 =?us-ascii?Q?P/tx8d055gcapz1fKkp79ZCh5R0+JR408RJ7/RzJl9QrQT5wuG4zMi3MYDv7?=
 =?us-ascii?Q?iASMKzpzeoufs2pHrU64ctTgizPU4xeBNYF6ZAcqFshO8K1Rm7q1eNI4e7il?=
 =?us-ascii?Q?d3TxV66JCT343+Tm7W/+DmwcK5bBg+0ITNpCtOwWjoQ0KSfKFejBfaGU81i1?=
 =?us-ascii?Q?RHECT18uWvTt7VVbyLq8qcYZVflodGsH2tNbGwQPDzTZskz5ebKivFFTktya?=
 =?us-ascii?Q?kq0OxhD5RIILJ9AIPl8MagiVkW9J8llQ1oczpupCEgowMm0rtIOt2PTjy4tJ?=
 =?us-ascii?Q?PyaMLquU5aVfDAPy1MHnlrMcpZP0xhpGEHs3i8PmHtNKegqfrUXQwcFGLjIm?=
 =?us-ascii?Q?uI3K1+cVTPomSnGXMdU+2Ry78Vv1nypbjIZS6l5yLZqLnKrgNboX4Dqj+s5u?=
 =?us-ascii?Q?TsZfVURGvq5OX1TGgC3uOogmW/vnsUGVEhcaHikE4oBtWnVjg+02JH9QUJl9?=
 =?us-ascii?Q?PdeVcqts8sZbFYzLntDAiUw3JZWI4tEolZLMTmZ09V/ePofELNCL9apYRI1q?=
 =?us-ascii?Q?LTczOVYYj8L4RS4lLjdCBcxzsHUr1p3L+9t+QiRSGWq19CNCbKGGteU9HBwD?=
 =?us-ascii?Q?AqTOHWszUEuM38J9Gb+RMkrN1dZbPVbFRhs+acUECjxisvxW83rdyKDu+Y8c?=
 =?us-ascii?Q?wD9zEz7JDFSY7CcNE9H4hE6mp9W6cl5sB1xr5+u6zpCRus1/hzfk+2P+1dyC?=
 =?us-ascii?Q?i//qz6VLnAiNyeEjRdzbknbQflm6zmOlA3F44jMHAU4L81z12+zJIHbbpoCM?=
 =?us-ascii?Q?l3mRZPzGtqO5eV9/hx9cTonupzHpVwTeh0Y5k2JZSEe4bOhX/qPJILIOTWt2?=
 =?us-ascii?Q?67zdazKKCR/FyktbOZYfgNOy4dsN0KEyQZ3T54ACOEdPz2CnqQoVlL4GfBLh?=
 =?us-ascii?Q?w7GmuIBtHfTwPphyDBz0V57PQOX/mHrrYR/wThy64WyYdZW+6txruXtHWrgP?=
 =?us-ascii?Q?RWFaUuWw0B1hVc02by0fzYX8d0GEgbL1L93gptww74TQ6dPWrKIDDGc2q7lw?=
 =?us-ascii?Q?6iFri6zC3YZsf+ojoV7sL/jFx7m4T5fCPfk/9RaHQ9i4ciNYDgDZlrH1v/kt?=
 =?us-ascii?Q?F+LXQWqRyELhyCkrY8qDBch5CApabd2AOyrj9rxMo8k7mAd+QUYFNgYeWduU?=
 =?us-ascii?Q?q4KAID6rluX5Y6zV3c3p1LHNccXY8ahILv5dvQ6qPKmMcXnw1Z0JF8FdZvVS?=
 =?us-ascii?Q?6PrD7j518X0vApaNuL8GZTAg73re0OpmXQh8SCTig/QM87/FFUrhwmAu66oR?=
 =?us-ascii?Q?xG4HmTsnfYYLt3PrIdcv7Rl5iUgTMIKSTb53v8RgIWpM40xWu6CdrnvrsJBM?=
X-MS-Exchange-AntiSpam-MessageData-1: Grn5BGB+LaerfA==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: c6c8d835-c04f-422d-03ce-08debf66bcf2
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:31.1363
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: TerW7po7DWIrWZTxWPfWeNzvCy6G75BBxSu8g85YlIKHkNEU907r/RKgLHrbf2+Zzlg/BETZ/d9fpcLiObL4Yw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1P286MB3278
X-purgate-ID: tlsNG-c1860d/1780267714-C487BDB1-D88EFF32/0/0
X-purgate-type: clean
X-purgate-size: 2009

Allow ARM Xen to accept the 'dom0_nodes' command line option.
The syntax and format of the parameters are identical to the x86
implementation. The logic that actually functions based on this
argument will be provided in a follow-up patch.
---
 xen/arch/arm/domain_build.c | 43 +++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 1efddc60ef..f4187512b0 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -37,6 +37,7 @@
 #include <asm/cpufeature.h>
 #include <asm/domain_build.h>
 #include <xen/event.h>
+#include <xen/ctype.h>
 
 #include <xen/irq.h>
 #include <xen/grant_table.h>
@@ -66,6 +67,48 @@ static int __init parse_dom0_mem(const char *s)
 }
 custom_param("dom0_mem", parse_dom0_mem);
 
+static nodemask_t __initdata dom0_nodes;
+bool __initdata dom0_affinity_relaxed;
+
+#ifdef CONFIG_NUMA
+
+static int __init cf_check parse_dom0_nodes(const char *s)
+{
+    const char *ss;
+    int rc = 0;
+    unsigned int nid;
+
+    do {
+        ss = strchr(s, ',');
+        if ( !ss )
+            ss = strchr(s, '\0');
+
+        if ( isdigit(*s) )
+        {
+            const char *endp;
+
+            if ( (nid = simple_strtoul(s, &endp, 0), endp != ss) )
+                rc = -EINVAL;
+            else if ( nid >= MAX_NUMNODES )
+                rc = -E2BIG;
+            else
+                node_set(nid, dom0_nodes);
+        }
+        else if ( !cmdline_strcmp(s, "relaxed") )
+            dom0_affinity_relaxed = true;
+        else if ( !cmdline_strcmp(s, "strict") )
+            dom0_affinity_relaxed = false;
+        else
+            rc = -EINVAL;
+
+        s = ss + 1;
+    } while ( *ss );
+
+    return rc;
+}
+custom_param("dom0_nodes", parse_dom0_nodes);
+#endif /* CONFIG_NUMA */
+
 int __init parse_arch_dom0_param(const char *s, const char *e)
 {
     long long val;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323491.1589271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxS-00009F-0l; Sun, 31 May 2026 22:48:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323491.1589271; Sun, 31 May 2026 22:48:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxR-00007H-8i; Sun, 31 May 2026 22:48:37 +0000
Received: by outflank-mailman (input) for mailman id 1323491;
 Sun, 31 May 2026 22:48:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxP-0008Ff-S5
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxP-00BFyL-82
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:35 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba9e-5cb7-0a2a0a5109dd-0a2a4508c056-32
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:35 +0200
Received: from [52.101.228.92]
 (helo=OS0P286CU011.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbabb-63b5-0a2a45080019-3465e45c1533-8
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:34 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TY1P286MB3278.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2e1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.17; Sun, 31 May
 2026 22:48:33 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=c6Q5mtityzBd7qYg2foubso2g4yc7t8YIdZFfKJuF2WOk/oYQyadIadSnb96FNNNc2u4+4laOpP1s4/BJKiQRZXvU2sbXKOc/wGygTSjAR1kev1cCn0MEPf1W5dzSI3glWSqpTUn2kEnboegPmSEehE1IpqJuwBwpxx5lsRfj/s3mFyzmOSPkNF9q441fYb7lTw65NkIeBu/eEDYFAurgt5vgsQoxPRn+dFLjW5O7/q0ZmmFhwWbWbdWivUJ5yt11TcCY2rim4TwN4jTL8hG1rFTmL8e/bEM3zJlcQRdJz+9sWNCmDMwuDaQlUjLvYFgv+yxurD7irL4hTHTiDFjPw==
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=blu4oOd7tpGPVUBQPLctq+uqUO6TNkR+RChL3tWjD80=;
 b=Qh16dJHsz0wWcE0ZzY+1DmXKRyQMfbCG9QlZY0Dg6Os6CJ0IjHV+UQUlrdgn2JS0BhM6jVzRzifx6VEYSl14WDCLG4mbB+F8Vny2uepS8mO5u5bMVLUzgw5suG9Ez6MwJen87N39vda9odOgctHnSS9sGXDarzwujkyIjQPc/QOPl58qgMZM1UVxWLbRXOvvFVCp79Z05QVAJh+IV9+LsBZbAarbCyMGelB8pIgxsYUS8RUSzLzhCi/MWyti1fnmfYwnnFmhCAKsCL1SgnT0qoKjtkgu6FPRnw6kIdU0wWL0AmFT35XjuzwgXPfAFtrBsgVqo5H481FwZGFbggdQ8A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=blu4oOd7tpGPVUBQPLctq+uqUO6TNkR+RChL3tWjD80=;
 b=na/x5IqZvYaUXrQQRgowSu+s5ndA9SRjc3EOIJqqCk6QOJ6bQ7Xwyy1qtZjZO15iR6yOmjUnZupMH5MKzr2pnE69APRkCG3//4SxaKzlNBBCDGZZarw0GoI6rAig5D1170TeKJ4+LrCsTIOFjyetFbV+42ymdG6NtUJmGploE2s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 17/24] xen/arm: Set Domain-0 node affinity from dom0_nodes option
Date: Mon,  1 Jun 2026 07:47:47 +0900
Message-ID: <20260531224755.9481-18-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCPR01CA0085.jpnprd01.prod.outlook.com
 (2603:1096:405:3::25) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY1P286MB3278:EE_
X-MS-Office365-Filtering-Correlation-Id: e609a69b-af85-4586-7c9f-08debf66be0c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|10070799003|1800799024|366016|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	7dplkf+LJiv01GKxtVK3w7saMsXcJLX8P8xpRrz/lN/JfCWm/Fyx6SPWv9xO6dNLh/2Sj3gpbKCjhG112wU/jfnXG0pA05JPaZnxGDbB2VWh6Mm+o83PnwLlJgg4w7fHLBbDoUM1lEEkiqNhQLE+GVh9p+KSAqmVkZ5gzA2AB8O8h152fl8EhIbgl0e8A6y7xSp/f9HTVCYGhWx2kDffpFpgwdGnEBOezjMTwj4ydUbd+7UtoMVuzzHqSW9sq6/UAKau5+YTlEYWeCwstU9MIPTlgYow4rsKX8RHOTMyJVJZQfbEAgW6hZqIHeKUjMEI+9UO2/ea121lW3ojtQH3Uwoqulx5n1XZ/9ycyL070invM1bH76PBls0PkiPh/wpdYdyZHUJyNsL+EvWI+jIIcW9U7e/dGFi1c3KCTi1Ojeq2FnJMk8+IMcnCx/+62ziOxQf2KbXSTwbrERj17ri3ChYcQPXTeGcWaEVhwh4I1TU/f1y41KVP6CsorqWh/2vwj/JFKR4em04pwbrGdc9Hn/WdXJbBBKG1fEPTL8VJUvf7NrB2+mrOBznC2gISmV64pT0Ve4u5cvIIJeSvVC4Ai3QWIi8ybxKdVGP16/tnMcwgj++y3Elao6nMkRVs5/9hXbHvn2mSF7fGBv5VFxDOZCVW+6KOiGAfo7qHh56Hx/vrx7fpaVORECgrkH3QtPH+
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(1800799024)(366016)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?y5foH1bkD5vNMmq+xnBBLa/hoHMUOW7ZdugNRiQWz3LlJBiJ0ErcFN6vhP5v?=
 =?us-ascii?Q?tIyyru4qlS4caakRQqGIBLh0742snkT7hIwX9H0fSP/Zc27hfufIgTgTyru2?=
 =?us-ascii?Q?/li+HzpJhjITP1qD5yn+ZzpquZ0apjj+1BhWMPqi5BYf5Ph3E8hBMLDFKhJu?=
 =?us-ascii?Q?el5DNzmARHOeKafOAq5Da3L6gxOFToQhU41uEczuqL//xxU36DJyIANygFld?=
 =?us-ascii?Q?ljGKdCefujg6HprpoXaSK5OkIjaZ9KgYj+8ZR5BqN0nAM76jocdwXxmTxaGH?=
 =?us-ascii?Q?dz3X9QD3B3FgKE/QawiW18PK+Ah9kO1Zg8SAerCSuFWwU8QAC00rm0Myh8YQ?=
 =?us-ascii?Q?pSFhT49l5MZg+X4sN50nlTxoTLBTcSNNpsAuk1Ri1nMXMx3r3V9g/rnAWyw9?=
 =?us-ascii?Q?wV9K9Q0seFMuz5zhmdwRr0jKyFSAJg6ll/9HdvuZzGnvY3V0n43KqUoqPaT/?=
 =?us-ascii?Q?6epyKPOqwmkkyGaySY5JL77RZ+RLkOOjlSUNbHAHD34XC96RwKEzcBR+PWDU?=
 =?us-ascii?Q?heLB9LW4r4S5QTOC84KgRcOJtqlzi1p7ZvUfU6ENA2MaRF9pa4hx0vHivNZb?=
 =?us-ascii?Q?Z5IOLTIrihf/I0rCY919khOQm4wFawp+qBK/eOkoxZSjB1hltqh+zjuaUPJX?=
 =?us-ascii?Q?ossgXftc2mZqFnp3S2PQR9oPUeyiRXDKHslbgf7jtP7DiK9PNZn5yVKXQSJ6?=
 =?us-ascii?Q?b/VSPP9ih2kGPIXV/jJ/FrcP9JTaryu3kRi8EoKO6bonjfFFzXWsd0K/IUXd?=
 =?us-ascii?Q?250ZBOq3FinEz0tlCYm+43qdh4nCliNRV/JudzluUtK73rRIZ2FSH1zGC+wp?=
 =?us-ascii?Q?Hd8hym2g26YbvIUAjhC9ibueqi1d+zyJt86lekrRfxh5pxosOFkQ6FeeQ8/N?=
 =?us-ascii?Q?BvuKzM/nogna1kV2dK2Vp97UFl+vVKAQfZDElfgcDqmcWoCDwvteD1YIoN6N?=
 =?us-ascii?Q?w8VxHprQat5AfqC6Z6YbV3FYMFZEUhWvPV8nIHJaMKPZwGuOmRe3BYe+Tsr3?=
 =?us-ascii?Q?Fbhn8yvF2XL3bzh8HfyffyxCTaq1h6wA76k1Bpq4jR1YfX40yIUYhD590pbt?=
 =?us-ascii?Q?dlQ+1VtD2Z4hU1kjgtU0YI7lc5CSnJHleX9dAB1Rb1ZlfShzD7FIRnV8GE/v?=
 =?us-ascii?Q?vwGOaEEZIOWrI0SE/sRU11Cx+t/F6bpwSmTbuWtmTZPSfhy/H3G5qRS8Hyxy?=
 =?us-ascii?Q?6yrgauhglIWRpquzwXK7O/eXgFTi0f3BVKjef1K8sgiAFxk5NZWheWqWZmvN?=
 =?us-ascii?Q?+stCXi46oC5N2mnYbMxrDd89PdMx8NzDxZhPeAD67Dl9yLIlScjwebih+uqc?=
 =?us-ascii?Q?Z7LWKvmPeD6JtTcBCyBNORopJI+U8824I0pR0gCOmFReyBTjvvHUl58Tui+8?=
 =?us-ascii?Q?CGOxA+WiaevK1D3QHz3yHtZ5SV0zA+/HeP5Cj5LVfEEGB65Qs9Hf9waeU2SZ?=
 =?us-ascii?Q?+YYBAzuB9rZaEikOILuN7HQTQcMzPi7JCeCd4QDViB5U9vxrLq13kwmB0F5j?=
 =?us-ascii?Q?UwrOv/O11Pc8EVMIWhuFLCnMwrvYPV7vDpv9BUpC6vKCZsxZtwQAyRXnayt8?=
 =?us-ascii?Q?SgH8oW6Tc/Rg3+3at08ABSiD6MZ1BgNTAtoj3vStnmQFIeNhfGdbbit2eLs/?=
 =?us-ascii?Q?+YEC8GJxmaiZwDQm00KQ9H5Q9BXkXYqYhiyX/DGWLsZ+7ACtqtrHEmV7BK6N?=
 =?us-ascii?Q?8UCZE8UjMjpITJN6y3VSY466SNrlOvK/0UYr0IIhfn0F05FSEN+0OGioIxYU?=
 =?us-ascii?Q?aZ019nSTIc7Hfa4LEvi2Ejyg0GAoXO+Z2ohU8nKO4Ee6QBafY2tdCEGTfR+O?=
X-MS-Exchange-AntiSpam-MessageData-1: E9WIAQlcVeMvAw==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: e609a69b-af85-4586-7c9f-08debf66be0c
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:32.9773
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DFndWUW8O5/K5CEwNnShd7ByTIxEJ3oaiLZwFBIzpZflF8IkLWz+bFNTZiU+ZebpuGgEgY4MphXef2A33FNa9g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1P286MB3278
X-purgate-ID: tlsNG-c1860d/1780267715-BC965DB1-8B909A34/0/0
X-purgate-type: clean
X-purgate-size: 1124

Set Domain-0's node affinity to run on the NUMA nodes specified via the
'dom0_nodes' boot command line option. If the option is omitted, the
node affinity is configured to use all available NUMA nodes managed by
Xen. When Xen is built with CONFIG_NUMA disabled, the node affinity
falls back to using only NUMA node 0.
---
 xen/arch/arm/domain_build.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index f4187512b0..2518909ed0 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2027,6 +2027,13 @@ void __init create_dom0(void)
     if ( llc_coloring_enabled && (rc = dom0_set_llc_colors(dom0)) )
         panic("Error initializing LLC coloring for %pd (rc = %d)\n", dom0, rc);
 
+    nodes_and(dom0_nodes, dom0_nodes, node_online_map);
+    if ( nodes_empty(dom0_nodes) )
+        dom0_nodes = node_online_map;
+
+    dom0->node_affinity = dom0_nodes;
+    dom0->auto_node_affinity = false;
+
     if ( vcpu_create(dom0, 0) == NULL )
         panic("Error creating %pdv0\n", dom0);
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323500.1589289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxV-0001RZ-RE; Sun, 31 May 2026 22:48:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323500.1589289; Sun, 31 May 2026 22:48:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxV-0001RE-Fj; Sun, 31 May 2026 22:48:41 +0000
Received: by outflank-mailman (input) for mailman id 1323500;
 Sun, 31 May 2026 22:48:39 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxT-0000nm-IQ
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxS-00Fm16-U6
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:38 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba94-e002-0a2a0a5209dd-0a2a45059030-26
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:38 +0200
Received: from [52.101.228.101]
 (helo=OS0P286CU011.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbac4-aaa8-0a2a45050019-3465e465f6ed-3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:38 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TY1P286MB3278.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2e1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.17; Sun, 31 May
 2026 22:48:34 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OayNDmZBClsBgcVZruXnA3HwMZEkUmiFGJVwN+9L8HS9ECC9yv7Nh8qunkrpeiCFVIB+LN7thoB5M2cgSc+4DeXq37GDxEM0jmTv2J8Sp01BZCmVPp3eQfyCE5ZgIQCxEIgwz+VbsKOAIHvjYeWsRC1qWYQdXp3Vfkv7rlfJpSuD8kutrRSd2J5+JnxfAbjEDEeUNbcV/+C43d9IQK1EylaM00CwznnAGEhsm2q3fSbpQSrlWUs96bwQmZiqGJZtqvZVm0E+Xnu9K1MozKF5a7t245pGKRDX+oMXG5jdzwJ4kR2m2+akINMuDSinPBXnkex5kAhrkdUb1MNpcBltrg==
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=uGKyh0qPXMyFNehAOEHpm32bV3yJeO8ltFIFkUh1kGI=;
 b=kYJTiBTr/1o7XAHAvAHWZ/IjiofRayAvcbzAyW8WjutNerA1zC8qrYEo0gqaUG9V9HLpHl4VTv9MgD006hc5ZR75CSgM+L2dxx8h4zLoy6MF5ie2lJnrPxcCfx6gWiD87cVy1nCrnfKrJNttU/SDn4bXVxuijoqdQJfCJs8hHF6/up60r8HkANv52wUKur8Pukma8bvOHr1EI9nK/2gwlCd6IFwO/aEp1Cc62D2fPDKl4Kwa86dppOSauJhv6NbmWZhOZbcWqyTJedNtaR+h+ZmLgaIhnKYkG6jSCcW9INiL0GahfZooEEouxjdWCx1L8oClWafahspZcvZg1GR9Yg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uGKyh0qPXMyFNehAOEHpm32bV3yJeO8ltFIFkUh1kGI=;
 b=DD0a6J+qAvFh6CyXblcPXX5HffSljmsWs8wjqKzhwlhDM8lK9h65jAnoXSlFcoVHMcX0r4uSXh/FgI/NUoDWTvFC5SEdTNKK5gcYvobGj19XLRB9dbpT3gJyjF5QBTnYxUuCop1qX7dVdXEfV6obwzVsRZCykLYEjpE5idkgKwo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 18/24] xen/arm: Reflect physical NUMA node IDs in Dom0 memory DT nodes
Date: Mon,  1 Jun 2026 07:47:48 +0900
Message-ID: <20260531224755.9481-19-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCPR01CA0080.jpnprd01.prod.outlook.com
 (2603:1096:405:3::20) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY1P286MB3278:EE_
X-MS-Office365-Filtering-Correlation-Id: 0d2eab98-da8c-41e6-0daf-08debf66bf21
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|10070799003|1800799024|366016|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	eyZpEX8gsDGf4BqyKMinizSuABiE2sx5i+TH6mU60dBL7Zc5El6S1J94HZbtkyUmZeas2DSmWla06dZ7wOtA0M5zKf4yov0+B8FqylHBJqbRD4qc5vj5VK9kMRfLe4wZIENEmiZAS5TZbc+pr73QD/Iipwl+OSWaRRE/HQQfMpoqKGVX30pXXLnhI9fOx9wk5vaXTQA8BowmVD0ktkk3P/kcUoyHvfibCbHbnYaB81FCjBPcm7Km+E4vNqJwDHW93dpONfm3Q2ec4cYTPjbQSMA1maD2BclxSgic9lzejvaA5psABWPOgRgeCdXmG2XGU4DuqvDwp1/OIibIc1mIwxcyM9IuJfzxS52yKzakzIpQXvGWObbrj0l3aEpl3wVUFpbNx8cdeg4z3lHq7VZOQ/bt799P6ExMKwbMQhQFhzwy3owXD0TwFb994gGzZ39ZPNm5N+7R5qiNQuDE7nIjbTux1wXivWYnaRDDnltrtExRAiK44L0Pl6D0XKaDvXTRlZhmE1eBtADMDLJcZp1P7AdTFxuU6eqbnNJED96W5jn7+4lY2pcDNAKz96c30bzN/IXjYRkBOSme0tMnM/EgjJ+bGkOcAQcNix4o7XXvtzZuB7h/PZLu/1CTMM8B/lwbfMD3M/n1AGX91Qumrs0qe5EHgoFvj9aIIKY+Gm1cy98jIsMpWvL4bTb5Y2unnS24
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(1800799024)(366016)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?hsEkJa47CjRa8cDPUunwckkw25QhOlBDm9wgiR2DwCYXlqQTpxODnGzw6q1x?=
 =?us-ascii?Q?3Kg/VBq9OJ/+lTNZu/bBZd5/pozEceV4Q9ezbVKbTK0BB4JMvMFHParJDY4y?=
 =?us-ascii?Q?JXpLrSDnyez5d0ZZSCEYcuY/mq52h/XnBLJGnz0jDtxcFI6J68um1cRGAjSM?=
 =?us-ascii?Q?yz0aMrwFmLhTRYgUtDiAb7N9nevjleLmkEfCys9JXfAzESIkEXhyUTeiA/An?=
 =?us-ascii?Q?3T5u6xxhu9URc+MAgdgOGlIXzSHXifCBkLgeROaPlJE38Wh0yS/Apy0QGiDk?=
 =?us-ascii?Q?6L68YDJOi0AkO48dmLtina+CySM9i0twwVOGb4xCfCttZkekMWFs3WituQRr?=
 =?us-ascii?Q?e1NgSVks5EyEL+cP9aXyCUv9m32YeV3U9hgixdUDLWAQzWxvd54J5eM8qIvH?=
 =?us-ascii?Q?gW7OHot7X5pa7FoeiSGXA0OQdL2TYDitHo6RE1o7UqMcoXj2mqu3NqEWkhfn?=
 =?us-ascii?Q?Jnt5bJilotUJS8mPo4ok74Ehvg3xI+gjE27C5PYFUM76YNnIPkb2TE+guTcj?=
 =?us-ascii?Q?tXmnv46rDMBlD5UJjqfffmVSqcBnn5FQZWy+2cNx+JAHgR7ohdoCBwctfC1X?=
 =?us-ascii?Q?YIlx5cWanb2Eo3H1kCanUlPiX3Kl8jeMS4eANPEFRTho38G3FzVlb6orWZs2?=
 =?us-ascii?Q?B+VBzE9/Nrofsia1StMWA4xkw4SUjJ/EhhinMPEzRvVG9jpo5p8Py+KeUz4Y?=
 =?us-ascii?Q?NN413ChZ7Fpmob5fAxyD3u6yonZtngpK/tHR2MIfwzlob49h7tGkqRKamqsl?=
 =?us-ascii?Q?0o58+h36z+yU4tksS6ia5kLMaaar1PSbLzprVZiyvXvW1EgCw1l5ZfZvU6Vp?=
 =?us-ascii?Q?MA+4lsbDQBobtYdT5dZiwuPP+9BWztQhzFJ0qc3ihsS9Sj0Rd/Lyh1fA6mki?=
 =?us-ascii?Q?TqCJy4aroGHcx65TF/DIFNctRU9pY6IUrrf/KqyxDVM99m6QGZp1Zp/psDb2?=
 =?us-ascii?Q?cKGsCIqD7SUUqJ2C/B8reL5wFtmFn3NgSmALq5EYRWNpHtWEY9uj03FhGxgN?=
 =?us-ascii?Q?vIQvnyAjpYgKKEcNDHMsSPKaYNFl5d9FtjN+yuHb0skB9kNsf9uus//nYV9O?=
 =?us-ascii?Q?EnTFaMimOw46yxLJk7Bj995TolOub/KIC1kUU9RmfZOwhqnqd4wTnAje/CNh?=
 =?us-ascii?Q?T58hMZO3S35WaIhrFuIPu/TB0EvHsK5bgWiNIRBwOidOyMc3iGATsjlfDXsh?=
 =?us-ascii?Q?EE7jIIazTEqz4dhq0H71y9CXGzCM/oE9bj+5LM7cCqcDvkgmpRmmH6e7YkIp?=
 =?us-ascii?Q?ShdOQ1eSAxb+VR+iB4HT81FIHjBZxHzVj9pshwL1CRKWYCI21LtPX7C5+86M?=
 =?us-ascii?Q?OTaAxugbMRAJwK++RQEq0+e8AW3BgxS5xARUh8D3wuU7jJd8JYie597yN72w?=
 =?us-ascii?Q?jdizof55ql0lQ6+aYHbBRICqMayidLenEVZNrSAyQR1nv05n0Ztv8MhZ6gWL?=
 =?us-ascii?Q?VF0ov5BCzYTq9QZqPrX3JbjVtnXGCNI/3YNQD6/cU+T0e6rommufVKx3x4Rd?=
 =?us-ascii?Q?wtV/noFdN+cPFPyngM6+bhw686Ui+5GFwVN2pUCYB8fQhKbSpltH7nCooajf?=
 =?us-ascii?Q?d26bQDsZPcyDh1zH829mbwzbMEHK8+WLMWCEcsVhK+9Z8lpudhWmCbIVm+ja?=
 =?us-ascii?Q?IhlEM3GugndsYNUu5Q8j+MeJ6QiBmCPXPxVKO835PyDhK/FkWV5vV3ligviG?=
 =?us-ascii?Q?iWlU4ecxAGsbnH+SCa8appnGKayeXkFAVcisENtaKS1Cv6jsqjHLuacMjalX?=
 =?us-ascii?Q?jSYZiBkrhfnx25JV2WZeDfOFedBon4suSfhyGN7+WNabzmhVxXFxvn4lMXEz?=
X-MS-Exchange-AntiSpam-MessageData-1: JmHHt9vxCBOH6w==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d2eab98-da8c-41e6-0daf-08debf66bf21
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:34.7961
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Q5rnACMLN7bDQJmXkBRdT/8scko5OaRt0er7i+9F/lyRwqnAYuu+zJe04poPqF4bKF2bmDtFmG/GXVTHzwXIMA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1P286MB3278
X-purgate-ID: tlsNG-c201ff/1780267718-E2591443-A09229D7/0/0
X-purgate-type: clean
X-purgate-size: 6804

Extract the physical NUMA node ID for each memory bank allocated for Dom0
and apply it to the corresponding memory node in the Dom0 Device Tree.
This implementation maps the physical NUMA node IDs directly as Dom0's
virtual NUMA node IDs.
---
 xen/arch/arm/domain_build.c           | 22 ++++++-
 xen/common/device-tree/domain-build.c | 88 +++++++++++++--------------
 2 files changed, 63 insertions(+), 47 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 2518909ed0..1deb4c1139 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -187,11 +187,26 @@ static bool __init insert_11_bank(struct domain *d,
     int res;
     mfn_t smfn;
     paddr_t start, size;
+    nodeid_t node = 0U;
 
     smfn = page_to_mfn(pg);
     start = mfn_to_maddr(smfn);
     size = pfn_to_paddr(1UL << order);
 
+    /* This code is temporal */
+    {
+        struct membanks *mem = bootinfo_get_mem();
+        for ( i = 0; i < mem->nr_banks; i++ )
+        {
+            if ( start >= mem->bank[i].start &&
+                 start < (mem->bank[i].start + mem->bank[i].size) )
+            {
+                node = get_numa_nodeid(&mem->bank[i]);
+                break;
+            }
+        }
+    }
+
     D11PRINT("Allocated %#"PRIpaddr"-%#"PRIpaddr" (%ldMB/%ldMB, order %d)\n",
              start, start + size,
              1UL << (order + PAGE_SHIFT - 20),
@@ -217,6 +232,7 @@ static bool __init insert_11_bank(struct domain *d,
     {
         mem->bank[0].start = start;
         mem->bank[0].size = size;
+        set_numa_nodeid(&mem->bank[0], node);
         mem->nr_banks = 1;
         return true;
     }
@@ -226,7 +242,7 @@ static bool __init insert_11_bank(struct domain *d,
         struct membank *bank = &mem->bank[i];
 
         /* If possible merge new memory into the start of the bank */
-        if ( bank->start == start+size )
+        if ( bank->start == start+size && get_numa_nodeid(bank) == node )
         {
             bank->start = start;
             bank->size += size;
@@ -234,7 +250,7 @@ static bool __init insert_11_bank(struct domain *d,
         }
 
         /* If possible merge new memory onto the end of the bank */
-        if ( start == bank->start + bank->size )
+        if ( start == bank->start + bank->size && get_numa_nodeid(bank) == node )
         {
             bank->size += size;
             return true;
@@ -253,6 +269,7 @@ static bool __init insert_11_bank(struct domain *d,
             mem->nr_banks++;
             bank->start = start;
             bank->size = size;
+            set_numa_nodeid(bank, node);
             return true;
         }
     }
@@ -263,6 +280,7 @@ static bool __init insert_11_bank(struct domain *d,
 
         bank->start = start;
         bank->size = size;
+        set_numa_nodeid(bank, node);
         mem->nr_banks++;
         return true;
     }
diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree/domain-build.c
index 2a760b007b..61e2e50062 100644
--- a/xen/common/device-tree/domain-build.c
+++ b/xen/common/device-tree/domain-build.c
@@ -493,15 +493,50 @@ int __init make_chosen_node(const struct kernel_info *kinfo)
     return res;
 }
 
+static int __init make_memory_sibling_node(const struct kernel_info *kinfo, int addrcells,
+                            int sizecells, const struct membank *bank)
+{
+    void *fdt = kinfo->fdt;
+    int res = 0;
+    u64 start = bank->start;
+    u64 size = bank->size;
+    __be32 reg[DT_MEM_NODE_REG_RANGE_SIZE];
+    __be32 *cells = &reg[0];
+    nodeid_t node = get_numa_nodeid(bank);
+    char name[32];
+
+    dt_dprintk("  Bank: %#"PRIx64"->%#"PRIx64" Node:%u\n", start, start + size, node);
+
+    snprintf(name, sizeof(name), "memory@%"PRIx64, start);
+    res = fdt_begin_node(fdt, name);
+    if ( res )
+        return res;
+
+    dt_child_set_range(&cells, addrcells, sizecells, start, size);
+    res = fdt_property_string(fdt, "device_type", "memory");
+    if ( res )
+        return res;
+
+    res = fdt_property(fdt, "reg", reg, (addrcells + sizecells) * sizeof(*reg));
+    if ( res )
+        return res;
+
+#ifdef CONFIG_NUMA
+    res = fdt_property_u32(fdt, "numa-node-id", node);
+    if ( res )
+        return res;
+#endif /* CONFIG_NUMA */
+
+    res = fdt_end_node(fdt);
+
+    return res;
+}
+
 int __init make_memory_node(const struct kernel_info *kinfo, int addrcells,
                             int sizecells, const struct membanks *mem)
 {
-    void *fdt = kinfo->fdt;
     unsigned int i;
-    int res, reg_size = addrcells + sizecells;
-    int nr_cells = 0;
-    __be32 reg[DT_MEM_NODE_REG_RANGE_SIZE];
-    __be32 *cells;
+    int res = 0;
 
     if ( mem->nr_banks == 0 )
         return -ENOENT;
@@ -516,54 +551,17 @@ int __init make_memory_node(const struct kernel_info *kinfo, int addrcells,
 
     dt_dprintk("Create memory node\n");
 
-    res = domain_fdt_begin_node(fdt, "memory", mem->bank[i].start);
-    if ( res )
-        return res;
-
-    res = fdt_property_string(fdt, "device_type", "memory");
-    if ( res )
-        return res;
-
-    cells = &reg[0];
     for ( ; i < mem->nr_banks; i++ )
     {
-        u64 start = mem->bank[i].start;
-        u64 size = mem->bank[i].size;
-
         if ( (mem->bank[i].type == MEMBANK_STATIC_DOMAIN) ||
              (mem->bank[i].type == MEMBANK_FDT_RESVMEM) )
             continue;
 
-        nr_cells += reg_size;
-        BUG_ON(nr_cells > ARRAY_SIZE(reg));
-        dt_child_set_range(&cells, addrcells, sizecells, start, size);
-    }
-
-    /*
-     * static shared memory banks need to be listed as /memory node, so when
-     * this function is handling the normal memory, add the banks.
-     */
-    if ( mem == kernel_info_get_mem_const(kinfo) )
-        shm_mem_node_fill_reg_range(kinfo, reg, &nr_cells, addrcells,
-                                    sizecells);
-
-    for ( cells = reg, i = 0; cells < reg + nr_cells; i++, cells += reg_size )
-    {
-        uint64_t start = dt_read_number(cells, addrcells);
-        uint64_t size = dt_read_number(cells + addrcells, sizecells);
-
-        dt_dprintk("  Bank %u: %#"PRIx64"->%#"PRIx64"\n",
-                   i, start, start + size);
+        res = make_memory_sibling_node(kinfo, addrcells, sizecells, &mem->bank[i]);
+        if ( res )
+            return res;
     }
 
-    dt_dprintk("(reg size %d, nr cells %d)\n", reg_size, nr_cells);
-
-    res = fdt_property(fdt, "reg", reg, nr_cells * sizeof(*reg));
-    if ( res )
-        return res;
-
-    res = fdt_end_node(fdt);
-
     return res;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323504.1589295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxX-0001lZ-4Q; Sun, 31 May 2026 22:48:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323504.1589295; Sun, 31 May 2026 22:48:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxW-0001kP-Te; Sun, 31 May 2026 22:48:42 +0000
Received: by outflank-mailman (input) for mailman id 1323504;
 Sun, 31 May 2026 22:48:40 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxU-00015x-Im
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxT-00Fm16-W0
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:39 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba94-e002-0a2a0a5209dd-0a2a45059030-28
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:39 +0200
Received: from [52.101.228.101]
 (helo=OS0P286CU011.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbac4-aaa8-0a2a45050019-3465e465f6ed-4
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:39 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TY1P286MB3278.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2e1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.17; Sun, 31 May
 2026 22:48:36 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=COCk8re3RfSIKMmvtRUc/dRmE1x/Kf8g4evLN+yMXXopCC+bHZy+NXptUic2FSl7tYFDfBAqLetqGXaVUKFKJ4nSSUvtbahQh7WaCfgLuMtzQUXF7N+8ePAVKpfFUJqCpzrf1mRwbNi1x/A/7dkRjiYhNUtcK6DYAhkCp0jVmQOgspmX328JbUQI7m3UsyDfLDHGz+bWdF8xv0g3Fbu+9vHVv9U2NR3RHEvcR3pqVJ8MAQrP0drKx7jly4Z9U1q5EccbnwGBPjjKQ0EAx0YNbSgFBSQdBMt8V/9s1iId+2pBj2M93VmAOTIQdnLvkPtN+cfCuT4EdFHCJn663sBiKg==
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=IISNxGg7j9E7jMdBYWz59g/s/VxE99jHkjaKf+wwH+g=;
 b=IpRy2q8LMgJQWhb8ZthAW54qsiJcMQ9/a75Vaa522GKYsooKuaWr2M9KmQkPkxXrwK/zpdIgSMP2EHJkTqjrQ9TOL4Vv9BDmvYyHVlmCUYYyy9VpuH1YbkI+l3GazaIlxcfft7/5AUkAlb980IFsdB/ak+rKWbfIrXKGlt2MyX3B7sFfs/XIMkJ7R9oew+FFaE+pzTKHlp50YMAQhnfe5FV3lacTS57D2x0wpDzZgmbsuNJc11feM5HU2oEFP5J/VbPqH/A/8agzYfdrXF8Tf+AYLVZ7K78Y/89doE6JUg+glmi92yuLDA64IHAunkuRiN4zfZVxI2kK3x87LV/SRg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IISNxGg7j9E7jMdBYWz59g/s/VxE99jHkjaKf+wwH+g=;
 b=IzNEOckXna7VZxMBqejxMv5fgYtcD8yJM2zmxSGH3Ml1wTXul0P/EH7oOa5kJE2fNkADJiRH8stkoGDuLMF4vwaSs5XRkFuS8kzJ+ry555xO7Ulr2o/lFRVQqUOMsAdIexrxWMBpg3t16rchWQQNfbfdamM1Ck21K5PcLco1fJc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 19/24] xen/arm: Balance Dom0 vCPU assignment across NUMA nodes
Date: Mon,  1 Jun 2026 07:47:49 +0900
Message-ID: <20260531224755.9481-20-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCPR01CA0092.jpnprd01.prod.outlook.com
 (2603:1096:405:3::32) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY1P286MB3278:EE_
X-MS-Office365-Filtering-Correlation-Id: 1bc2b39a-2596-436f-de9a-08debf66c028
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|10070799003|1800799024|366016|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	1WWImC2jJ26bJa8rPJbfAJuzVL/ZEseCnAS9f6LKGaUDN3U4t+PL1O6E2RjdCEOFQX7w95N+7VM9EK7csizBPViH6X5yLpoEn1ridRo7ZWOyhnNXq0ALZL2JrLBgwcqrXnfdlae4EFNswi2iiKQvZfUK6DoSqTGiyVzvCtwgxvz2NQWBcqWl69mA4nprwAaYGo6TLvhFhlk38oyvHpxzcw0UxJYsK9eM9t0c/IAmg3Wuf4tVYgeN77U4uyte9pDKugWilOniLeHORFdRIZ+CpTT9BO6PG0x/nXPOoRGPZBpKelna4qkKvrudRoKbVJ2zlrAAYb9QoVub1ZQKpm6PKSEeCoZp7R5NiPh/qi5ZppJ9B7MRwey8sIuZdgoZsHwJgRsBNAH8LcdvnfUtj1scwGsQ25n7Vb/hUzg8dfVy8yK/1N0Mju90JbdLMKI7nR2q+7sOdkU1xYVQxjE5NA8I3pchhyHyk8uAjyqiPpXF/0g3P13m6TZ9jDmunQ22ZFMkxjvCal2FvHdhIwZJZ4CYAhGAX7ayQC4g0JJlLJ3SROVfz654OeagycPvua+taZxlUYMJBXWQ75VGiTEdYOYsWwJpIyjDCv35Cd9v2nF7vt7OZcFMOKFOYkUBlu2rD+5WnojOz2l9VbTrBptjmlHBk7EhgejGRN0EFpg33XZZVp8TUENV+NxirtHE6IPqwb9B
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(1800799024)(366016)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?O9qGmcUVeGZASHH6LuBQzktE9CRYPNZC0HqlpWK1IkxBxcHFnJjthrTaZ1Ln?=
 =?us-ascii?Q?kV6HgaeEoaA2JqTUyimpCdswUG2zX6CAgeVBGQXAMyMXm5r5WywjaK8fMRv9?=
 =?us-ascii?Q?Mc4xBrPq1S0L4vrVwjvv4wGEG3JeLVf17V0NQqWG+xI/J5UEsJ7sCblIJrmB?=
 =?us-ascii?Q?rRw8ZGdeL5FXs6AWET4QxBlXjUHL7X/e+SumhewPzpXW7Dm+dGsr9Rnbpshh?=
 =?us-ascii?Q?TdKCw1LXO5AY80vOk6omtIKC2dL6w7D5Asb8uo1tw29g86SvwNFCzbBG4BX5?=
 =?us-ascii?Q?EXcHcwbklxW5h+tEd9C1Ufo4ZV4FKq14sy+1/25KxrWThmcbiXDcNWTGru6j?=
 =?us-ascii?Q?XFn4cgv8lNwbeR9H/olPcVptRJpdO0W50bVossdOD+2nKqTQfssmBC6WyPis?=
 =?us-ascii?Q?BV4ZhSkw9NtCvFPqo9+2gJkk5EiRGmoHwwGrYFZZXO/5k3MbGQBlIb8T70zt?=
 =?us-ascii?Q?TCmyrTAevq52/gWd0ndgZuXfNGj9GJIMxfDohQ1UFFf11YJQAWBVvO3Zp81v?=
 =?us-ascii?Q?u7bIOdTiZcoYRWhQSykzh7Hfn0ct7HLhWq+QpPLVrAaHfyXYZn2wIpty5YcC?=
 =?us-ascii?Q?623ffhMFUONJGy/Wzg6fbzG0LQeyfouIjczqHbD1qoQy9vBn293HudKbdio/?=
 =?us-ascii?Q?4d7Qrw4/TrAxSOYuleOMRt2ETpizZGi31J9atoP6+rBAk0dA3I3bLy21et61?=
 =?us-ascii?Q?IIRBmIknMqBBGGUjYTfjuAIS3MESJxf1claq09nB+m32a3MCqyXyKnFNHW4l?=
 =?us-ascii?Q?hEVOiSbz7Ve33V9BgZyw6kr9cNfsDYEJCcGhgED63grYxvlseiHxu8bsCXxK?=
 =?us-ascii?Q?d0vvzdqgdr5f71iu8DJqTK26sG7U9/uQ5MDcS17+p0GVt0y1d4t6rsa5DaaN?=
 =?us-ascii?Q?lNa5U8MhdAbS/p07wfEx/m4ztw6iG79+CQsKDZS33ipbJO+eF+YQUuKpJ2RQ?=
 =?us-ascii?Q?tMisNDaulCgY2otCQatQoK8Bb9RGqdyFOjgYt8uEQTN06ps+KRA09+s69945?=
 =?us-ascii?Q?+Mo/GbRNqHfA1zMJBWDJR5hU9zjIvwXBXmbsPM9zWHugQnciOuTMuB738NJI?=
 =?us-ascii?Q?dpz6CmVDGQgS09mG5BTWyoi3lZM1AwaBX06MYI42hdramL8Tow4z0x3feJBC?=
 =?us-ascii?Q?A3pm5turwu5LIiScqleR1hoMCd/F6Ag9shPy0sbgEiz3VN5NehzL3bLlDTRX?=
 =?us-ascii?Q?3BzF9Ejyzs0Kv/sHHnQs4pfN0JPTInc2+lymRWTH7WeeauOr66fchesRmqCk?=
 =?us-ascii?Q?32YBaBHuAOZfIzFsi0hU8Cot80pfHCV39xK+wJddunc4getkP6VZxgbILC+z?=
 =?us-ascii?Q?m0IvHYXE4FBcht7QaDzmxW/FrHqlwwnB9dnkFDxHcTo0KZDyx6riJnw7phl9?=
 =?us-ascii?Q?S7PBa/baFl/li0iS55QOyAn+UJtBaeWYP/uVuLmUvq/9V9yyJ8iSWtVA7RLm?=
 =?us-ascii?Q?ijDI/iH35Oe/ClsJuVja/+sxdkZijQoqB3gg3zezSLdpd2ndW8CItHKBSCZ0?=
 =?us-ascii?Q?9jPfxhQOobSNvxkZ4qMDSMXphk5sqltdCw+ah5mZVJmTiQBEQEV8HURIdty2?=
 =?us-ascii?Q?o4hYEde6CIbeE0bxVIAcoMOZLL5sg+X4sICUwhFn56LXEUytKGrZDfTLLGnI?=
 =?us-ascii?Q?hJKmlKxkp1fVmVC3TZNluOoLDkBK5zVCYopAf6t0lWKnprUq9iwBJ97UFJRs?=
 =?us-ascii?Q?UxsugkIQBixtwVOBIR0mZ5NpOAGc0j/KNzY/vxLdsh4AIrc+KtODn32QQFTB?=
 =?us-ascii?Q?EoDfYRdRwP22jJHx5Q6aLE76M7Yjq9QQ3aDR7UdFGnEkfGWsilnL4rdvm5Jg?=
X-MS-Exchange-AntiSpam-MessageData-1: ltMrkk7yWSIGaQ==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 1bc2b39a-2596-436f-de9a-08debf66c028
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:36.5265
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wRLAjlebmi30tNOmSDwP1XbByKv89S4B6Oe4VWhmQihdg3t1pCN9nPrTle6VTMFGT9XdWpdF5VJ8V9yPZ8867w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1P286MB3278
X-purgate-ID: tlsNG-c201ff/1780267719-E2F94443-F76F4A0F/0/0
X-purgate-type: clean
X-purgate-size: 2013

Configure the assignment of Dom0 vCPUs to NUMA nodes, aiming to balance
the compute load across the available nodes.
---
 xen/arch/arm/domain_build.c | 46 +++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 1deb4c1139..a62adafa19 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1225,6 +1225,34 @@ int __init make_psci_node(void *fdt)
     return res;
 }
 
+/*
+ * Map a Dom0 vCPU ID to a target NUMA node ID.
+ */
+static nodeid_t __init dom0_vcpu_to_node(const struct domain *d, unsigned int vcpu_id)
+{
+    nodeid_t nodes[MAX_NUMNODES];
+    unsigned int nr_nodes = 0;
+    unsigned int vcpus_per_node;
+    unsigned int node_idx;
+    nodeid_t n;
+
+    if ( nodes_empty(d->node_affinity) )
+        return 0;
+
+    for_each_node_mask(n, d->node_affinity)
+        nodes[nr_nodes++] = n;
+
+    if ( nr_nodes == 0 )
+        return 0;
+
+    vcpus_per_node = (d->max_vcpus + nr_nodes - 1) / nr_nodes;
+    node_idx = vcpu_id / vcpus_per_node;
+
+    ASSERT(node_idx < nr_nodes);
+
+    return nodes[node_idx];
+}
+
 int __init make_cpus_node(const struct domain *d, struct kernel_info *kinfo)
 {
     int res;
@@ -1907,6 +1935,24 @@ int __init construct_domain(struct domain *d, struct kernel_info *kinfo)
             vcpu_switch_to_aarch64_mode(d->vcpu[i]);
     }
 
+    /*
+     * If Dom0 has specific NUMA node affinity configured, bind each vCPU
+     * to its designated physical node.
+     */
+    for ( i = 0; i < d->max_vcpus; i++ )
+    {
+        struct vcpu *v = d->vcpu[i];
+        nodeid_t pnode;
+        const cpumask_t *nodemask;
+
+        if ( !v ) continue;
+
+        pnode = dom0_vcpu_to_node(d, i);
+        nodemask = &node_to_cpumask(pnode);
+
+        vcpu_set_hard_affinity(v, nodemask);
+    }
+
     domain_update_node_affinity(d);
 
     v->is_initialised = 1;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323508.1589302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxY-0001wd-5i; Sun, 31 May 2026 22:48:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323508.1589302; Sun, 31 May 2026 22:48:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxX-0001uT-MH; Sun, 31 May 2026 22:48:43 +0000
Received: by outflank-mailman (input) for mailman id 1323508;
 Sun, 31 May 2026 22:48:41 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxV-0001RC-LA
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxV-00Fm16-1c
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:41 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba94-e002-0a2a0a5209dd-0a2a45059030-30
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:41 +0200
Received: from [52.101.228.101]
 (helo=OS0P286CU011.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbac4-aaa8-0a2a45050019-3465e465f6ed-5
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:40 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TY1P286MB3278.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2e1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.17; Sun, 31 May
 2026 22:48:38 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HiIbPPLYHuFi/y3k6XctHZpvOYdJYgk5tcredRJyaiNz6KAhpuEpNhlhE6dfrebrBMOlUSV0s+2ZEAOiKInm+vROe3JqRsmnijWZrGwcWXHLtIczPreYOxa+i/ECwd+wBHFDr/XoweAmBVpjmWe2UcHUp91+aeinGqhfcqe+7CzANV8oTIQOaCUGufHktGulFwqYPze+AWax5KlTNnqkGHMsttrt7CxfKWVxUsSPuHzxBEQ60pZ3y4zFH2UrAk20xk3774b/OOp7OJ7PavOv8QqMd/XOTVZqEDDtxG3UQyjT200PDsNtZ72IoNGepShAcb3RqxWIX166ihpwkcNxPA==
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=W9KK8YwpRHhqIreVEfhPTKBReSTnp2RvVZda1V4U6DE=;
 b=f/XiGkWHTI+66a9YFCaKJu/v0GYo8VwGk2tQIehSpa2nZ1encmmW6lz4dLLuWrL8p3Nllr/AurkXyzsnZNs/MrcdHFQB0rkYuPp5Yy/qRUx3cskBWO17u/bwXRkqrCM7+DEPdl4BO7FEEmAB+AbTGu7jXgvd/EBv2VZ2ChSZTAxQonfCoFfcDr/AUn3Y0e1PRuOE+MbUlHo6LBdm4G29SJJfZ2iM098AOlncMcKL6s4b3RmfMeP1Jn7OBzQtMx/6La39Fu0SXkCrbLzKzFitKlDbjvLAF9jMLs3nC5TGZ3VFClujcPCe2BjH+wSd03un32tlLCfFGeaE21T0qHbj5Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=W9KK8YwpRHhqIreVEfhPTKBReSTnp2RvVZda1V4U6DE=;
 b=fPb1nJGITrF4BbLq8APlvofJwmR2rUaRPg+UrNishozwntCz1aZ11nYXyiZD+lOt1zsF1VW50Uh+ImF5TWCEyebL8LR/JP+ivYpN8zeTkOIXqg6fLyPTKEyXxgUcv2RddlNydxh5adkc+YcrwozGQa8qY/7T/NcWL+sdzdtGOWI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 20/24] xen/arm: Export Dom0 vCPU-to-NUMA node mapping to Device Tree
Date: Mon,  1 Jun 2026 07:47:50 +0900
Message-ID: <20260531224755.9481-21-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCPR01CA0088.jpnprd01.prod.outlook.com
 (2603:1096:405:3::28) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY1P286MB3278:EE_
X-MS-Office365-Filtering-Correlation-Id: 5e9bb4f0-e03a-46e9-526e-08debf66c18a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|10070799003|1800799024|366016|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	d1IJakb66M7sLDa0Jw2WE3zMYsTjQMk5FOvHU1IpecmDoWngcTvUytmm3fFCo0Prldk+Z8m5wp3E6z2iaMrrsMsayWiy8ahaKG/QgjRQeypgdManivhcF1EvZXsuGJZViFa4LeGFpTYciOvwJ1QE9JW0rRlHURNkQIG+tc2LoX+0ufnCRog0t2a1zlbYzczWyOIZNWNAVvIYzCu2kLLehie/JuNNP3fNZGESvKtxm/+OZWoIjOS+AQAb+TRDeanA0GzGv46JUI0YjtAj7ae7qYM3d5fHJuh9o7N31kIelAcPerY95XvBQHQAI01wYRdjsRm7IDTWs7YMs+nEjz/6Kf0P3YPQoon+xlQjFVCt4WgHsFGLS8hZQAYIyr6NJxvbSZb6retUPX/tQNukSCvFnLuyT1UoWR7uHzNXsGz7oF73qXgLjBJxCXHmakGbWyCbqEqk9vQPOHpdz2JcAdRMbmDxo95Pgc2cvtksWuVBT6tdPwg6GZ/yT8eih/kbtEuls8dCgUGKMjUT/DoEsGcRfb1HNlL/h934CeeiZeChrnwDiIAEwXmlBJi85iEGXbwY48NfAb2xVzXKzFZQgBERULWbaLRVEVRNcq0vOYOWxnuQuK3X+A6f0+DEooI2Rpor/Ip3jrmv4YILYafwNTtKd1nbg2JWj8QNhsNbWFWMiVYLCfyt4LEQ+Hj1Rumy25iy
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(1800799024)(366016)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?pyKlzpzg7oJTCxjhgaEhBiivX6icqdXFjb3vDlFUw+JXB1i87rE+2SjTzczk?=
 =?us-ascii?Q?tYKviDzmcg6dg7mN5jhP3p8Ue11HCbryKSi9kAPEKfuT6YdXyVYgWJVrssfr?=
 =?us-ascii?Q?eH3HaWvQVm24D57op+ZjRP6R3OekLU5x/waQTj7A8cpDBrIwLZHj3dV6k6Qv?=
 =?us-ascii?Q?VbPJ+t4oCRbyTyyv4vQc27NfgGS5d8zAUW4shpxSJJrAgxogiXeEUNK7gTo0?=
 =?us-ascii?Q?3JZagHEUVgli96kFqXG4+lkL5MYLt4U85kYspnp3kCutzYI8CjmS4IpwYzJT?=
 =?us-ascii?Q?lIHAKPV+S/zxCkwf3QIWfD/jkqIPBh0iURD+qcp2KHzgJRx4wN3Pi1+YtSQM?=
 =?us-ascii?Q?7ER4h1N/e3aEUc7FT0NmqELENQ2dgm4hMd82Is20j4vQQX/ZKtcKIPrvWiaI?=
 =?us-ascii?Q?gSxj317KpWU1DI85m0V7KQoIzSLpSv/XjcSDuqFRKBDrfYAVTWogxoHDS74Q?=
 =?us-ascii?Q?baq2OKCjkzflT140QO5jpeLKh4COBIMgAOGnUNmn6Hv03bJet0iWTNbHy2vq?=
 =?us-ascii?Q?18aCHbsIcm2mW7MZ1ODZ4jA1EwG1WlhJV89dAPeXv2KZlVa9DHT7cb49RpaO?=
 =?us-ascii?Q?53PJuUQoGXc1yc2O0Nnn8nQcFZvfBb9Zca/EF0xQPz+6N9uMmhc9Jtp4s8z8?=
 =?us-ascii?Q?3kdjICFvAN2d1ZzGs4l86vFPtnaO22RDJ5v+44EnshCSui8saTXCfz3LlcFA?=
 =?us-ascii?Q?fXgEtna98lPEGrLQT7u7CZzSBJ9ZSnSOU2dt3sUz6KMmuAGDIErw/CCPM4h7?=
 =?us-ascii?Q?/JJt/YAtEBD+tCGguheMaXGAy3JtOA+Z2sFbCN1dj93WvRI+kzxNzgeXhDa6?=
 =?us-ascii?Q?sRtfcE1py6gf6micCOifxuY4gtXx+6ATvSKkx9vHMwfawVFOOHRQE4RsRsbm?=
 =?us-ascii?Q?YXM1VUwMxufPuvzlQj7ViRiliqZE7Q19hkl47+3AIG9OwLTswNLHv5OcTxpa?=
 =?us-ascii?Q?HtcnwXaYLzjGbfC/09CfjFTp10s+f24BGGMqU6f2yqHZxmfNgn7VIXBMW2Gw?=
 =?us-ascii?Q?WUZuHtuc4Gu0aKf14qONdNqyn0Eh86pKuVFpMZDRueX/ynXY02fQBwqtrOhx?=
 =?us-ascii?Q?qePmsJZiCr3yevzEDvDjIxW9FSss95d2eX24Umsrho7B8R65+Zb9CLWe3o6X?=
 =?us-ascii?Q?Zxy8L+cHZOv49zgkwlHY/FzJWZ8I2i9wqoVDDrIG8iFa7YGjsIOzUOwo1MKB?=
 =?us-ascii?Q?ivninn76QN0/SifIFrvptfXBW4ReG5YQeP/ebsLxsRlsouxSRKZ1zpG/a9o/?=
 =?us-ascii?Q?3kBLLisMXsMHS/sX5dijHlxoqOE0GeFyEc7Pn3cDsFjYG3lzwtCskQdmGMfW?=
 =?us-ascii?Q?xGNA7PoP5L9F74199BBs9cB9D0f/qaFsoBRRymPdHsuZzvSTqTa5Fu0O9UUY?=
 =?us-ascii?Q?RjAxR0pVTI7Bi8wKvVkIhNPDiHvoeN9Y5nnfOP7901MRbrIJanMRhOaCjBAg?=
 =?us-ascii?Q?DMHgrc6NbxNnQNNMIPn6igPtT82KrX2+DyMBs962fPEyL5eUpTPWFKYtyEp7?=
 =?us-ascii?Q?fWJX7lCivvTZm/Cy1maL7q9D1FHp7FS6ll89sPjqsNIvghizVUykMYj3n1yg?=
 =?us-ascii?Q?L7/LIU/a5db53TZ2bvagR6q0XOmX6EIDDOc4hbOccjV2D7pI003YNw3F3OxB?=
 =?us-ascii?Q?kB4dS4Jl365kxaoJp/cNQs5IKDwVysgAnmjgt2FXbMHUsnAWikMGFwMPy+mZ?=
 =?us-ascii?Q?L2ZUsWb8IhzIe2kW7lEbb3/sUf760VmhS1G2jLVF2jDvGo9J8Vv7aju2wbpj?=
 =?us-ascii?Q?XKhsEo71swpBQEPM8E5AudSzsH88BkyE/K6shDe8P2LgitJLHR9ib8xEMNFm?=
X-MS-Exchange-AntiSpam-MessageData-1: 9HB5AuCd/7UudA==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 5e9bb4f0-e03a-46e9-526e-08debf66c18a
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:38.8476
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bup2DnDE1QKKRJzmKcaLxzYKOeLAFx3dux2nsXPFbHBGzLybUNR+e2YytK01YHUKO2SyTTw8km/n8YyBg2MGug==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1P286MB3278
X-purgate-ID: tlsNG-c201ff/1780267721-E338A443-01C9ABE8/0/0
X-purgate-type: clean
X-purgate-size: 884

Export the mapping between Domain-0 vCPUs and their assigned NUMA nodes
into the Device Tree generated for Domain-0.
---
 xen/arch/arm/domain_build.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index a62adafa19..750c3d53c2 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1373,6 +1373,14 @@ int __init make_cpus_node(const struct domain *d, struct kernel_info *kinfo)
                 return res;
         }
 
+        if ( IS_ENABLED(CONFIG_NUMA) )
+        {
+            nodeid_t target_node = dom0_vcpu_to_node(d, cpu);
+            res = fdt_property_u32(fdt, "numa-node-id", target_node);
+            if ( res )
+                return res;
+        }
+
         res = fdt_end_node(fdt);
         if ( res )
             return res;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323513.1589315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxb-0002ik-Gc; Sun, 31 May 2026 22:48:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323513.1589315; Sun, 31 May 2026 22:48:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxb-0002i3-5o; Sun, 31 May 2026 22:48:47 +0000
Received: by outflank-mailman (input) for mailman id 1323513;
 Sun, 31 May 2026 22:48:45 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxY-0002Af-S9
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxY-00Fm16-8z
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:44 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba94-e002-0a2a0a5209dd-0a2a45059030-36
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:44 +0200
Received: from [40.107.74.72]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbac9-aaa8-0a2a45050019-286b4a488211-3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:44 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TY1P286MB3278.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2e1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.17; Sun, 31 May
 2026 22:48:40 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hcCBheyRDbuiknfa6UmHFZq6kmq2Fx8Kw8rTPWl/W9nGgHpi7f8wMGyzcm91YITjSsi3YBo5kLJZuzAUr+rtBv/2q/IpLsYvSDstKHL6uynyHOOJRlegU7BGHlEOvjd1m9IPPF45ReiM1I8+UNfjY1YjTdUAB6tUawT082gSBzDi2YvnNyYZMMrgCnmz5ykMpZnPa6MBJFrYcs01wXLtVsd7PqKxDH50i02GxHdkbnF9zdiWJlvcmyYG9cOm0k/1aG3GmEVEVPNpb60z5zElUQ7yWJyDuND9L23GIKOxopaR0LxxKnitAGR8XgiruChqmR/p+oSODKnFbBCqa6bryg==
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=OGUG4toyQhvtHpHBNUMbmOTNjuI/mfXhzDrcWgQ6WgQ=;
 b=dHU9ewvS7NF6P50AfgWziG0Cs/NhpjaqD6CefIIZO571elNmdTYSg7WAUQmfgtb6S2FgkbzLrCdLyi6LX8bQiPWmQcT7/eVkmkhMn2NyXiMJo2a+SMqG1amWVe6ErZPpNst6lG+Bf1H/AV0NlYdMfuloLM1BBIUpRsRuNXWpsVoDHSPTFWkvCYgBbhNNS+uYaTeLiRmkNpM6WU6U4avLcBEMzpfZmtZRByTLexSKt6q1R4avPD40oupGU6sol7l7mJJ1trzC5q/d9UIBgFcptvESPbpnNhAAlrFtS7469+xphajm1B3HIUAhfMToRbLFEzjooLrK6uNHcwjp/ncjeA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OGUG4toyQhvtHpHBNUMbmOTNjuI/mfXhzDrcWgQ6WgQ=;
 b=R3OnYP2nnGRMMqvJRRRlydtpPUBFKm6cm1fr/nvIShDW4XNxQ02dJoQLMOoYbMMNSNDOM1Stp3jvEYdYfv3VflYJCMN0p8guiZcWP/jLnZjUXkkODl5jfvNUdjqtT9ZUbmUZf7kKY8zT2fdPutqT3VMIFHmTQ4UXjBd3McrNVmA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 21/24] xen/arm: Generate distance-map node for Dom0 Device Tree
Date: Mon,  1 Jun 2026 07:47:51 +0900
Message-ID: <20260531224755.9481-22-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TYCPR01CA0093.jpnprd01.prod.outlook.com
 (2603:1096:405:3::33) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY1P286MB3278:EE_
X-MS-Office365-Filtering-Correlation-Id: 4f9c12e1-376d-4fd6-50f6-08debf66c2a9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|10070799003|1800799024|366016|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	hRWnCCZavgLhNZs7v3jCIUJO3FriLEUc7TQO6dOthBG1EHMcm0EHL9hArfyPh2YPT8PXZ84Fx3/9vtqESZxpRN+yH65xojK0KfUBvSq7rRsLCaya/PeBXMjVd56WpHchAsxURsI4YwpwcN9HFdVOf5G6YaKkaIcFzIrbpJYDTnYBSBEUPHKlrWPRMq8L+2j5R8CwAdcCJcJlqoAirafmpdy9+KPwe3LPSbY6ey3MMIxXG1tUJ3Bq2zLfKJZ1HJ9Ud36J6VW8HioCuBkHoXFvycxrP5UVootA/w8/z+q2DXe1D4/O6bekwe4e2h7Sasn8Vf7E6EpacXWv42QL1NMXihu6yiqxPpSWk3hTWZ6QIm5fUHpnElxTU5zuH8IRsnO5Q48KzqSnohaiaZk8oVJFh6Yu6ZTTciyryZOFfJ/yYjd20w/WdL+0MFr/4MvNOpC3h0cksDNvcM5mERqnY8McQnsiEQg1uffEKEErs+3OWe+T6m0rnjZJffG+8c/9NLR+y1FSIRqK7bf5bw3Vd4Xz+ygDOi6YZlVarc+IBKCi4Mnrh3EenIH5w4Mo2Lb5EmRBXmM3bjrxZkhu8oE93PNyBz98NpZ2sYlIgzRCygmZLzQ+FwClvQpuz6o106vQwrr4KIn1/FOERFCz2gmb8XPAfiD8iAzqNRuoNaLP0yBlNRErHDDs9ysheTuTyD8qUuz2
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(1800799024)(366016)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?WYBS4XF7RJ88x+S5WcEVBlU7ogqRQ6u2mwYAUExfO9XTEo/ro8jNN9pONDnF?=
 =?us-ascii?Q?omUmTq/oD5Ri88+nItpHWzrdWcMsPpZpeK7UfocYEgRfvwTU6id5MLtuO/5L?=
 =?us-ascii?Q?hFSwE+dvvAhdjzgATaLhA4sYXLGDTR7f2t8gTT4jVHNe0hYWrfQrG2NMlSI6?=
 =?us-ascii?Q?YcVADKiew0YCaD8exw613J8BAuYFOkadw5QwupLQekBCUu5hnXwW+v6ZxvWW?=
 =?us-ascii?Q?/zG6mxL7p4dC+Po5804mphqG7UwHAmDEWl/zIynvS581ly8OzN+q9zSfoFKH?=
 =?us-ascii?Q?9kcHjZbH6NiwGWrHu6sk0HZeOzO5qnuAvHqjHCVKwLlzhMK6Da6V2BVESBj2?=
 =?us-ascii?Q?Z2ycG7oXKsH8zHxzk0vb8adgxifxlOoQGmoPgP4EMiqPiCN+g5gcHv+E627J?=
 =?us-ascii?Q?HdzRuq83pxrjNuWjv/BpDmWPPPQ+ApdVfYzT5b8GMVz2UegR3hDUX65ROqgh?=
 =?us-ascii?Q?1rhuJ46SLQVHNIyKYH2aEWU+wa/dJ0UutaV1SGToiUyHipKqhzBLVh4nN8ta?=
 =?us-ascii?Q?JuNMPWEhnV90TmtuSGEYTyC6oBI6f+WONdmZ2P15Xp4nIh4SG+9JUvetYU4j?=
 =?us-ascii?Q?T30+EfJ2CcGMKLH+lvbqXqlwZwLTqI+8qX5qI0Ykd5HdcSGthdld89RBuceB?=
 =?us-ascii?Q?F3zxz2qgbm1W0PrF9/jn4BcGnFR5RDiuy5XxVlVL7+lQ+7mT2bPwiE5Y4fko?=
 =?us-ascii?Q?XVgkEBsuNT+APbGoGjBdRDo0fRJUhcwQPTDU4rNquXC3Tt71pdsyBw9CqG28?=
 =?us-ascii?Q?OVfeb+G/0d6LoJ5pU13Phh8awKja2i3/MaeUzbp7q2H+4o1Cigu730RSW4il?=
 =?us-ascii?Q?WTbEAcfn8FtnPyVcxfFDysILzItsTwGEDcmP6xlxLlcEV9kM/GWmJ4ObvLmm?=
 =?us-ascii?Q?06IyFBzLQNXcF6Wg0h/QRXoLMOVG1md2VSugBXoBnFuZATD9oRXzAlR5gLsG?=
 =?us-ascii?Q?GCf0ZU+Vi+ShenFDvM8yeg7KX+gDmz9NfSw99LUVlsTSLAOE18S0NMGUDSBi?=
 =?us-ascii?Q?W0ie9IvHBsHCoC/tH/3jCkaP1UVcol7wO+fjcsRQv76FlaeSjDjdFP8GXZlE?=
 =?us-ascii?Q?NjsBijF5wl75nz23JWD1p7zhITWCCnxye8+hzrXtEkwccEqSLkAbns+Nq3M6?=
 =?us-ascii?Q?5uGb0yr4akLwKZ2BVFaxN8ysC1QnH/0yZcqC8AgTQya5Q5jsiZYsZVar7dHy?=
 =?us-ascii?Q?1468L+xqlnPAUWrhMwiBPlc7rfm1Qcw69t/1J1aNu2eoK6OCkYDgXxgAkG3A?=
 =?us-ascii?Q?SQaNJGYTrhkCTeRDXffwCDHfmereFWoxr/fLuW0WmApW0xC+XNohVGtlHkZS?=
 =?us-ascii?Q?heK6rQkF1Cx5CxWs+XlbBvGO5UtMItMzPz3f0S02+LNrrvqnjY6PX3+umKAp?=
 =?us-ascii?Q?4ufzx7YeGJRNHrTvkjKEIRDI/2RHN/qWxIQMi8/Ajb3HNZPLFp1rSLXsKTlP?=
 =?us-ascii?Q?3z/pyHJwZYkxllW9Y1qXKSphuAws2XFqwVvlbX+X2Vh5AbUwzcR6vpc9TcfH?=
 =?us-ascii?Q?z2RvrzD+SyURKtbBxEvpMMEhUCdIdPLkgE+Yy6kEFOywNqV9DGRvY0y4LqBC?=
 =?us-ascii?Q?jVBX2TUThOzJ3eXQLU2Qw/UJLR5XIARMci1x5Dtjm82HFmQmp5KIa8a1i9Cv?=
 =?us-ascii?Q?nOA9PAj6+b3UQMNwK1MMAN12GItqNE97Ag3uSkXG1X/X9mZO4ZcHzwGwR9t4?=
 =?us-ascii?Q?58OXggnMc+KgJsT5luUGjvHyrJAXMO79GEO/kAUDc4ThNEerjRmgbhWVprJR?=
 =?us-ascii?Q?1EapDtEfACmJYxteItjOtVy0LBXvFDuM3mOFGqWTCRMobJLDhFPNXJiOIuvv?=
X-MS-Exchange-AntiSpam-MessageData-1: MEMh6z8qv5+0qw==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f9c12e1-376d-4fd6-50f6-08debf66c2a9
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:40.7319
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KYKsFKmRdvmentGKtVSvVuLARwgvCVDfSuVIQHz1E3Av6jTSmjF6l36apCdHgrBLJopWMRe4J93PuHVEeV6niA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1P286MB3278
X-purgate-ID: tlsNG-c201ff/1780267724-D3B60443-E7334E72/0/0
X-purgate-type: clean
X-purgate-size: 2697

Generate the 'distance-map' node within the Domain-0 Device Tree.
This ensures that distances are populated only for the specific NUMA
nodes assigned to Domain-0.
---
 xen/arch/arm/domain_build.c | 50 +++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 750c3d53c2..e71d6cb254 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -718,6 +718,51 @@ static int __init fdt_property_interrupts(const struct kernel_info *kinfo,
     return res;
 }
 
+#ifdef CONFIG_NUMA
+static int __init make_distance_map_node(const struct domain *d, void *fdt)
+{
+    nodeid_t from, to;
+    unsigned int count = 0;
+    int res;
+
+    static uint32_t __initdata matrix[MAX_NUMNODES * MAX_NUMNODES * 3];
+
+    if ( nodes_weight(d->node_affinity) <= 1 )
+        return 0;
+
+    for_each_node_mask(from, d->node_affinity)
+    {
+        for_each_node_mask(to, d->node_affinity)
+        {
+            matrix[count * 3 + 0] = cpu_to_fdt32(from);
+            matrix[count * 3 + 1] = cpu_to_fdt32(to);
+            matrix[count * 3 + 2] = cpu_to_fdt32(__node_distance(from, to));
+            count++;
+        }
+    }
+
+    res = fdt_begin_node(fdt, "distance-map");
+    if ( res )
+        return res;
+
+    res = fdt_property_string(fdt, "compatible", "numa-distance-map-v1");
+    if ( res )
+        return res;
+
+    res = fdt_property(fdt, "distance-matrix", matrix, count * 3 * sizeof(uint32_t));
+    if ( res )
+        return res;
+
+    res = fdt_end_node(fdt);
+    if ( res )
+        return res;
+
+    return 0;
+}
+#else /* CONFIG_NUMA */
+#define make_distance_map_node(d, fdt) (0)
+#endif /* CONFIG_NUMA */
+
 int __init add_ext_regions(unsigned long s_gfn, unsigned long e_gfn,
                            void *data)
 {
@@ -1568,6 +1613,7 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
         DT_MATCH_TYPE("memory"),
         /* The memory mapped timer is not supported by Xen. */
         DT_MATCH_COMPATIBLE("arm,armv7-timer-mem"),
+        DT_MATCH_COMPATIBLE("numa-distance-map-v1"),
         { /* sentinel */ },
     };
     static const struct dt_device_match timer_matches[] __initconst =
@@ -1733,6 +1779,10 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
         if ( res )
             return res;
 
+        res = make_distance_map_node(d, kinfo->fdt);
+        if ( res )
+            return res;
+
         res = sci_dt_finalize(d, kinfo->fdt);
         if ( res )
             return res;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323516.1589321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxc-0002pQ-EP; Sun, 31 May 2026 22:48:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323516.1589321; Sun, 31 May 2026 22:48:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxb-0002mj-Pb; Sun, 31 May 2026 22:48:47 +0000
Received: by outflank-mailman (input) for mailman id 1323516;
 Sun, 31 May 2026 22:48:46 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxZ-0002SZ-Sj
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxZ-00Fm16-9I
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:45 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba94-e002-0a2a0a5209dd-0a2a45059030-38
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:45 +0200
Received: from [40.107.74.72]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbac9-aaa8-0a2a45050019-286b4a488211-4
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:45 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TY1P286MB3278.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2e1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.17; Sun, 31 May
 2026 22:48:42 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yaHkrkXT2EPkX6rRsXwOBNwKqYgTYjkhmcex/SZTsbr5IAoXFHk/iisAVr6RmCHkFCcRzeOWWRsq0PkUuxCDMAVhaZ6kpSzHOn8xTghYaY2fs4JDa6U5hXgKS5YYZfn7d/1kW5jIKi599EXkt0CfrIeR0CV4+ARr+ocDFS3UCBY4Nq+wUSNPP1K2ZpRWBSx1uO9YRDu067chnS8FEAAp/AM3z+NOP0gcQjIPJx/mkXBBxGsR3w2Dzh1RVf+m8DZFJnom/4pIYtU5m6mypxrOFw3OpKIXa6obx+Uf1xbD4SgyBmAwFR1KmB8uVG5bieBd/yh4al0jb6uKx2FSbrxLRw==
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=EAMUs1xUJCNoKg8WlgclnCXqbMXhEf4+WGLaU8dCiJc=;
 b=SihxXPh4L8h2ZrFCRpltH+zifmO+pMaxdH9esm7iW68bzS1xxQULVyoeiTABqO2S07ZUBo/DfF2kCYrUuzJFoGZWrzj0eAC4kv5NTU1iwJVQDFZq4MFg6EU89eI2jzpLY0RfV3NrBmTXmC2qul7c05VbJSEb5kyHlzTeyxSEdDkdIbmnneDlI+xzHUho+M00FUSdPxm1JNq2Y/7pddEcGDraBKxakw+qVXardZRpqiDifmtkwsMeI9B/vc8LK8YqWYy6ohCPGu7Hr4W9lNkhjJZQpN/y4i2WfH9Y0HJ6Y4BGhyzc8gaxy6jmbiKumdZDwxAlwAc2sEmiHtXCcfF6iw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EAMUs1xUJCNoKg8WlgclnCXqbMXhEf4+WGLaU8dCiJc=;
 b=vk+upCfHuUIIykL98reMWGcb2F3cfOpZ29t5xv199AoSXi/x7iSSgU9u260CL39pUI7cDo+7Wxgxx22iSzqU6fNGCeUFnLNEbMfkbl06+10IMoCluYgFFFX8lyj+a5RqTUAT3et2GiQ9qO/RZUi0k5qTRaD9YqF9erAdGesLNBk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v2 22/24] xen/arm: Balance Dom0 memory allocation across allowed NUMA nodes
Date: Mon,  1 Jun 2026 07:47:52 +0900
Message-ID: <20260531224755.9481-23-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4PR01CA0117.jpnprd01.prod.outlook.com
 (2603:1096:405:379::18) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY1P286MB3278:EE_
X-MS-Office365-Filtering-Correlation-Id: 065bc7e4-e427-468d-0464-08debf66c3a6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|10070799003|1800799024|366016|5023799004|3023799007|6133799003|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	Cumi8X9iRL6k+aqxPVveSwhKzV/SOUSVl1dOlvK4/TfNkZMYrQKKzK+A1LBNubjbiyX0p7GMUsnx9oGYHzHSqiZQP3GIxmp0z1gnE99BAb1kisAQ4lgi9S6Y2nsZtV+FSmdYmo554Tg9kLl0FtFsq6u+WoJOOZkuSwNfZn7nV1wH9Aqdbv5tESKSbsX88f4qmWLRa0JL3/a8YbTCnlAc7q2iBI5J8H37YMGRKFwk7kLuoqOrhyfCnyRzqlulLFVHjr1hMwbgcuSpDydSSnDdKuMidcEw32yyAL4fGca1xcDSjBlY27xxXJhAqbjEN+51zze5y99hi9a6tZ4oGU9Ij4c/F49m9SR8odFRJOFboktxPVnA5k3SX1Km1pAmB+qtonRyLFSrixy+ibdQkQ3N3Xi3jaHLdps7y4O+eAQsSQEHD94tujDBccEG3DNw7WASEZKJ225NF4a33QRa1hDzwn77Nij/TsDIExpEuJp0xhSCG++qEqNfgcYw8kTNnh1sYWHyeli0qfqHlRNWFf4QqBrvjngTS9dcWTAG22UNkQReTCsm18CEBc72bUwPhpmPIPI/cQzYz7YuDRpskneJbFbf9R+cM0w+lp5M9OElhL23h1s9AAo7hCYYBdMk1+fkOzyc8d0JUeq+NRWnouu4x2YCj10i1u+rHEVyVJs1Tx+Nwb8FRpXHUgBugWTHJcL2
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(1800799024)(366016)(5023799004)(3023799007)(6133799003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?ATpiAgJaoO7M+i5qVj6HfOw7+1P+83mPbgS6X+erM3zqntFrI8AJ73Lx4SSE?=
 =?us-ascii?Q?VTx+ZX055iryuLI4nTs8hY8dX4IDvrKSVSywbWkEpxrqWyRhZBGJ3ULjKlZy?=
 =?us-ascii?Q?Ukk7SYtDLjgpXxwfZZ0qgQiwGf5yCzqHHF9jkwFBC3x2jZbbMgt3jSoJCRPd?=
 =?us-ascii?Q?0RMjb8JB8+if+4LxWTXekPFIOgSm225STvqOBsPP8CsS+3UKq+v7Y/gjf5YS?=
 =?us-ascii?Q?GYuvUNs2RmdVI5vngq43uSrN/BYdOUOOhgS/xpTnw3eOjx19pwm6VELngOHO?=
 =?us-ascii?Q?m+v34dwxTfXhbIgOQxTGP5Ukwdth0LrwmgyNSMawByHqO+z9tRYzpcxo6xKS?=
 =?us-ascii?Q?hlBY9nayOJyf6MvCvIWbplU2bC+MEEN4H014mEzb40Ohi/ZMxpKAai8NHjPK?=
 =?us-ascii?Q?gz8oXtT0WRPMLe484UWe+lOwIgkk73pRkWBI3Jl3uomZJANqe9ERoEIUfmkd?=
 =?us-ascii?Q?oHdwDpgGpP/y5StFCbDijtll+oKxSZZBqV4BsGUXhVg1n9ikD+7x6E5zhUmZ?=
 =?us-ascii?Q?TPMO8ZHxkzps719AqyQmnYzAFiUSeJpitrEaWHRkbeULuHQQFUx+66UoJJYK?=
 =?us-ascii?Q?v8IP4dnO7AT99RxKMql8LhV30PUfLW/17suKQ2BbCxwuDIGn0E83Qbj9azGB?=
 =?us-ascii?Q?Wklggx2pHYj/DLh1fn2+x1wVKrg8Dcc0bhUrvGkIIqL30XTiDwb7DESZFKbV?=
 =?us-ascii?Q?/nkoa1mcyAEyurOQkppFkjVLHn9M6F0Xg3VqFzO62rRNJKdVtl7fR46XYnLx?=
 =?us-ascii?Q?Fic4QWutSIwx6Bu35eGHJMDK+IhsuUDggZB4dGJb54c4jHf49thELxKOSmbJ?=
 =?us-ascii?Q?IlKzjF7LbLme9esTRtOlRHwHBYLs06E5q0UHL22pgaGJPZC3Cv4JHZpP9j6y?=
 =?us-ascii?Q?Xg4MLDd0I/H+JIwPbdYE6uvrFFQj/c47v+iO9d1OygQ3HqzlOyZuwqjNeO4+?=
 =?us-ascii?Q?cW57EY39iGUBOj68hGKUqIa3uBx+c9uxZ9Z6ckOUwyr0JIQ3+1pjMZ7TCmAm?=
 =?us-ascii?Q?91z3qytsltco8W/uvdgUGhTJHHvFOaByG2oFgENPfaQp44vi0qiuzHzQG2HV?=
 =?us-ascii?Q?uTu0h8gMa/NMdcJWjhY2rIQRhRSAsWHJNmB0NuZ+eKTwtOlDn/Tede3z5EI0?=
 =?us-ascii?Q?WxBou1pjR8HI/OAPmPvuRgDTh8npO0uBf1MaGfVqhlgUjshK7dI3Byt5NM77?=
 =?us-ascii?Q?pCUdDBo26P8ca71IcEVHPT+gy+kIw5x02RSp8h73IhLZ+8Rx/7tR1Ku9sD/1?=
 =?us-ascii?Q?F7g3sXi14vM5q1laRUoilgmyjGs76sGgHy1Sd/OROa+fTKsjN/sDb7bXGhro?=
 =?us-ascii?Q?qZ/B2hpI2xkATcBRqvtAy4ermQD0+k4spNm7sZIVvhKlged7rybBw0OCXefQ?=
 =?us-ascii?Q?2G8N7ZEOJTOyZ0x44xQbz6zqejCjTSx6qtaCxHr2IJYVkrDD+nH+CJzZECqQ?=
 =?us-ascii?Q?2oLLpSyR4Yeh6lv7GGtHSCJmtVbnvMYInu/CsCUI0ogNu859HM/xfdWs9TaZ?=
 =?us-ascii?Q?IGAlYaR3r3Cf9DrfBmDsLZBzctJnqt8ClpweW+1LaUKOz6Y9HdgsEM8QyTH5?=
 =?us-ascii?Q?lZL8eogt21GD0q+YQTyG1qn+w6ZTie5G0KWu25Ne6LblhczureeEEUQN8yH9?=
 =?us-ascii?Q?AXIzJQ7nBq+Y3GXjhZlO7WBxYoBbMMIQrDoLl9aQQcbQPzYR2ZBJpqwU2kvd?=
 =?us-ascii?Q?z86MtmVzf1Rn/1iOIkIaUmHTskR44tcxg4DKMKiphgiipJ7Cgfhn2s6zhjRX?=
 =?us-ascii?Q?3sAstN7Cn5jMb8oLu8/9mMmxb+e3MU3A40/RaggbQq1lZOv0uxftyjXcXHDs?=
X-MS-Exchange-AntiSpam-MessageData-1: /WgulL58IG1V2g==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 065bc7e4-e427-468d-0464-08debf66c3a6
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:42.3762
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bJmPk1gMiATuwd0GZxcwELsGKZTeUWF+eLzd7KXp4csNnrgOBXH3mjqiAgyzLyh25Gyu2tl0vKv6nOUZTAHn/g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1P286MB3278
X-purgate-ID: tlsNG-c201ff/1780267725-DB563443-A3F10B2F/0/0
X-purgate-type: clean
X-purgate-size: 15121

Allocate memory for Domain-0 exclusively from the permitted NUMA nodes.
When multiple NUMA nodes are available, distribute the allocation in a
balanced manner across each of these nodes.
---
 xen/arch/arm/domain_build.c | 276 ++++++++++++++++++++----------------
 1 file changed, 152 insertions(+), 124 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index e71d6cb254..29b09e3da6 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -180,33 +180,19 @@ unsigned int __init dom0_max_vcpus(void)
 static bool __init insert_11_bank(struct domain *d,
                                   struct kernel_info *kinfo,
                                   struct page_info *pg,
-                                  unsigned int order)
+                                  unsigned int order,
+                                  nodeid_t node)
 {
     struct membanks *mem = kernel_info_get_mem(kinfo);
     unsigned int i;
     int res;
     mfn_t smfn;
     paddr_t start, size;
-    nodeid_t node = 0U;
 
     smfn = page_to_mfn(pg);
     start = mfn_to_maddr(smfn);
     size = pfn_to_paddr(1UL << order);
 
-    /* This code is temporal */
-    {
-        struct membanks *mem = bootinfo_get_mem();
-        for ( i = 0; i < mem->nr_banks; i++ )
-        {
-            if ( start >= mem->bank[i].start &&
-                 start < (mem->bank[i].start + mem->bank[i].size) )
-            {
-                node = get_numa_nodeid(&mem->bank[i]);
-                break;
-            }
-        }
-    }
-
     D11PRINT("Allocated %#"PRIpaddr"-%#"PRIpaddr" (%ldMB/%ldMB, order %d)\n",
              start, start + size,
              1UL << (order + PAGE_SHIFT - 20),
@@ -293,7 +279,13 @@ fail:
 }
 
 /*
- * This is all pretty horrible.
+ * Allocate NUMA-aware memory for Dom0 with 1:1 mapping.
+ *
+ * This function distributes the requested Dom0 memory across the allowed
+ * physical NUMA nodes in a balanced manner. It implements a multi-pass
+ * scavenging loop to allow nodes to dynamically back up each other if a
+ * particular node runs out of memory, maintaining a balanced distribution
+ * while ensuring the maximum amount of requested memory is satisfied.
  *
  * Requirements:
  *
@@ -308,155 +300,190 @@ fail:
  *    below 4GB, so that it can be used by non-LPAE enabled kernels (32-bit).
  * 4. Some devices assigned to dom0 can only do 32-bit DMA access or
  *    even be more restricted. We want to allocate as much of the RAM
- *    as we reasonably can that can be accessed from all the devices..
+ *    as we reasonably can that can be accessed from all the devices.
  * 5. For 32-bit dom0 the kernel must be located below 4GB.
- * 6. We want to have a few largers banks rather than many smaller ones.
+ * 6. We want to have a few larger banks rather than many smaller ones.
  *
  * For the first two requirements we need to make sure that the lowest
- * bank is sufficiently large.
- *
- * For convenience we also sort the banks by physical address.
- *
- * The memory allocator does not really give us the flexibility to
- * meet these requirements directly. So instead of proceed as follows:
- *
- * We first allocate the largest allocation we can as low as we
- * can. This then becomes the first bank. This bank must be at least
- * 128MB (or memory size requested for domain if that is smaller).
+ * bank (Bank 0) is sufficiently large to hold all boot modules.
  *
- * Then we start allocating more memory, trying to allocate the
- * largest possible size and trying smaller sizes until we
- * successfully allocate something.
+ * The memory allocator does not really give us the flexibility to meet
+ * these requirements directly under NUMA topologies. So instead we proceed
+ * as follows:
  *
- * We then try and insert this memory in to the list of banks. If it
- * can be merged into an existing bank then this is trivial.
+ * We first calculate the total size required for the kernel, ramdisk, and
+ * DTB to establish a safe minimum size constraint for the first bank (Bank 0).
  *
- * If the new memory is before the first bank (and cannot be merged into it)
- * and is at least 128M then we allow it, otherwise we give up. Since the
- * allocator prefers to allocate high addresses first and the first bank has
- * already been allocated to be as low as possible this likely means we
- * wouldn't have been able to allocate much more memory anyway.
+ * We then enter a multi-pass outer loop that runs until the full memory
+ * request is met. In each pass, we dynamically calculate the target allocation
+ * amount for each remaining active node to ensure a balanced distribution.
  *
- * Otherwise we insert a new bank. If we've reached MAX_NR_BANKS then
- * we give up.
- *
- * For 32-bit domain we require that the initial allocation for the
- * first bank is part of the low mem. For 64-bit, the first bank is preferred
- * to be allocated in the low mem. Then for subsequent allocation, we
- * initially allocate memory only from low mem. Once that runs out out
- * (as described above) we allow higher allocations and continue until
- * that runs out (or we have allocated sufficient dom0 memory).
+ * For the initial chunk (Bank 0), we try to allocate the largest possible size
+ * as low as possible, honoring the 32-bit lowmem/DMA constraints. If it fails
+ * to find lowmem space and the domain is 64-bit, it falls back to highmem
+ * without violating the minimum size needed for the boot modules.
  */
 static void __init allocate_memory_11(struct domain *d,
                                       struct kernel_info *kinfo)
 {
-    const unsigned int min_low_order =
-        get_order_from_bytes(min_t(paddr_t, kinfo->unassigned_mem, MB(128)));
+    paddr_t todo = kinfo->unassigned_mem;
+    nodeid_t node;
+
+    const unsigned int max_chunk_order = get_order_from_bytes(MB(128));
     const unsigned int min_order = get_order_from_bytes(MB(4));
+    const unsigned int lowmem_bitsize = arch_get_dma_bitsize();
+    unsigned int min_bank0_order;
+    bool is_bank0 = true;
+
+    const struct boot_module *kernel_mod  = boot_module_find_by_kind(BOOTMOD_KERNEL);
+    const struct boot_module *ramdisk_mod = boot_module_find_by_kind(BOOTMOD_RAMDISK);
+    const struct boot_module *dtb_mod     = boot_module_find_by_kind(BOOTMOD_FDT);
+    const struct boot_module *xsm_policy_mod = boot_module_find_by_kind(BOOTMOD_XSM_POLICY);
+    paddr_t required_size = 0;
+
+    nodemask_t exhausted_nodes;
+    nodemask_t valid_nodes;
+
     struct membanks *mem = kernel_info_get_mem(kinfo);
-    struct page_info *pg;
-    unsigned int order = get_allocation_size(kinfo->unassigned_mem);
     unsigned int i;
 
-    bool lowmem = true;
-    unsigned int lowmem_bitsize = min(32U, arch_get_dma_bitsize());
-    unsigned int bits;
-
     /*
      * TODO: Implement memory bank allocation when DOM0 is not direct
      * mapped
      */
     BUG_ON(!is_domain_direct_mapped(d));
 
-    printk("Allocating 1:1 mappings totalling %ldMB for %pd:\n",
+    printk("Allocating 1:1 mappings totalling %ldMB for dom0:\n",
            /* Don't want format this as PRIpaddr (16 digit hex) */
-           (unsigned long)(kinfo->unassigned_mem >> 20), d);
+           (unsigned long)(kinfo->unassigned_mem >> 20));
 
     mem->nr_banks = 0;
 
     /*
-     * First try and allocate the largest thing we can as low as
-     * possible to be bank 0.
+     * Calculate the absolute minimum size required to fit the kernel,
+     * initrd, and DTB inside Bank 0
      */
-    while ( order >= min_low_order )
-    {
-        for ( bits = order ; bits <= lowmem_bitsize; bits++ )
-        {
-            pg = alloc_domheap_pages(d, order, MEMF_bits(bits));
-            if ( pg != NULL )
-            {
-                if ( !insert_11_bank(d, kinfo, pg, order) )
-                    BUG(); /* Cannot fail for first bank */
+    if ( kernel_mod )
+        required_size += kernel_mod->size;
+    if ( ramdisk_mod )
+        required_size += ramdisk_mod->size;
+    if ( dtb_mod )
+        required_size += dtb_mod->size;
+    if ( xsm_policy_mod )
+        required_size += xsm_policy_mod->size;
 
-                goto got_bank0;
-            }
-        }
-        order--;
-    }
-
-    /* Failed to allocate bank0 in the lowmem region. */
-    if ( is_32bit_domain(d) )
-        panic("Unable to allocate first memory bank\n");
+    min_bank0_order = get_order_from_bytes(required_size);
 
-    /* Try to allocate memory from above the lowmem region */
-    printk(XENLOG_INFO "No bank has been allocated below %u-bit.\n",
-           lowmem_bitsize);
-    lowmem = false;
+    nodes_clear(exhausted_nodes);
+    nodes_and(valid_nodes, d->node_affinity, node_online_map);
 
- got_bank0:
+    BUG_ON(nodes_empty(valid_nodes));
 
-    /*
-     * If we failed to allocate bank0 in the lowmem region,
-     * continue allocating from above the lowmem and fill in banks.
-     */
-    order = get_allocation_size(kinfo->unassigned_mem);
-    while ( kinfo->unassigned_mem && mem->nr_banks < mem->max_banks )
+    while ( todo > 0 )
     {
-        pg = alloc_domheap_pages(d, order,
-                                 lowmem ? MEMF_bits(lowmem_bitsize) : 0);
-        if ( !pg )
-        {
-            order --;
+        paddr_t last_todo = todo;
+        nodemask_t active_nodes;
+        unsigned int active_nodes_count;
+        unsigned int nodes_left;
 
-            if ( lowmem && order < min_low_order)
-            {
-                D11PRINT("Failed at min_low_order, allow high allocations\n");
-                order = get_allocation_size(kinfo->unassigned_mem);
-                lowmem = false;
-                continue;
-            }
-            if ( order >= min_order )
-                continue;
+        /* Filter out exhausted nodes to find active candidates */
+        nodes_andnot(active_nodes, valid_nodes, exhausted_nodes);
+        active_nodes_count = nodes_weight(active_nodes);
 
-            /* No more we can do */
+        if ( active_nodes_count == 0 )
+        {
+            printk(XENLOG_WARNING "Dom0 NUMA: All specified nodes are completely exhausted.\n");
             break;
         }
 
-        if ( !insert_11_bank(d, kinfo, pg, order) )
+        nodes_left = active_nodes_count;
+
+        for_each_node_mask(node, active_nodes)
         {
-            if ( mem->nr_banks == mem->max_banks )
-                /* Nothing more we can do. */
-                break;
+            paddr_t target_per_node;
+            paddr_t node_todo;
 
-            if ( lowmem )
-            {
-                D11PRINT("Allocation below bank 0, allow high allocations\n");
-                order = get_allocation_size(kinfo->unassigned_mem);
-                lowmem = false;
-                continue;
-            }
-            else
+            /* Target chunk size per node */
+            target_per_node = DIV_ROUND_UP(todo, nodes_left);
+            target_per_node = DIV_ROUND_UP(target_per_node, MB(128)) * MB(128);
+
+            node_todo = min(todo, target_per_node);
+
+            while ( node_todo > 0 )
             {
-                D11PRINT("Allocation below bank 0\n");
-                break;
+                struct page_info *pg = NULL;
+                unsigned int max_order = get_allocation_size(node_todo);
+                unsigned int order;
+                paddr_t bank_size;
+
+                /*
+                 * Enforce a maximum chunk cap of 128MB for all allocations
+                 * except Bank 0
+                 */
+                if ( !is_bank0 && max_order > max_chunk_order )
+                    max_order = max_chunk_order;
+
+                for ( order = max_order; order >= min_order; order-- )
+                {
+                    unsigned int memflags = MEMF_node(node);
+                    if ( !dom0_affinity_relaxed )
+                        memflags |= MEMF_exact_node;
+
+                    if ( is_bank0 )
+                    {
+                        unsigned int bits;
+                        for ( bits = order; bits <= lowmem_bitsize; bits++ )
+                        {
+                            pg = alloc_domheap_pages(d, order, memflags | MEMF_bits(bits));
+                            if ( pg != NULL )
+                                break;
+                        }
+
+                        if ( !pg && order <= min_bank0_order )
+                        {
+                            if ( is_32bit_domain(d) )
+                                panic("Unable to allocate first memory bank below %u-bit\n", lowmem_bitsize);
+
+                            pg = alloc_domheap_pages(d, order, memflags);
+                        }
+                    }
+                    else
+                    {
+                        pg = alloc_domheap_pages(d, order, memflags);
+                    }
+
+                    if ( pg )
+                        break;
+                }
+
+                if ( !pg )
+                {
+                    node_set(node, exhausted_nodes);
+                    break;
+                }
+
+                is_bank0 = false;
+
+                if ( !insert_11_bank(d, kinfo, pg, order, node) )
+                    break;
+
+                bank_size = 1ULL << (PAGE_SHIFT + order);
+                node_todo -= bank_size;
+                todo -= bank_size;
+
+                if ( todo == 0 ) break;
             }
+
+            nodes_left--;
+            if ( todo == 0 ) break;
         }
 
         /*
-         * Success, next time around try again to get the largest order
-         * allocation possible.
+         * Prevent infinite loop if a full pass across all active nodes
+         * yields zero progress
          */
-        order = get_allocation_size(kinfo->unassigned_mem);
+        if ( todo == last_todo )
+            break;
     }
 
     if ( kinfo->unassigned_mem )
@@ -464,14 +491,15 @@ static void __init allocate_memory_11(struct domain *d,
         panic("Failed to allocate requested dom0 memory. %ldMB unallocated\n",
               (unsigned long)kinfo->unassigned_mem >> 20);
 
-    for( i = 0; i < mem->nr_banks; i++ )
+    for ( i = 0; i < mem->nr_banks; i++ )
     {
-        printk("BANK[%d] %#"PRIpaddr"-%#"PRIpaddr" (%ldMB)\n",
+        printk("BANK[%d] %#"PRIpaddr"-%#"PRIpaddr" (%ldMB) NODE:%u\n",
                i,
                mem->bank[i].start,
                mem->bank[i].start + mem->bank[i].size,
                /* Don't want format this as PRIpaddr (16 digit hex) */
-               (unsigned long)(mem->bank[i].size >> 20));
+               (unsigned long)(mem->bank[i].size >> 20),
+               get_numa_nodeid(&mem->bank[i]));
     }
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323517.1589325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxd-0002wE-24; Sun, 31 May 2026 22:48:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323517.1589325; Sun, 31 May 2026 22:48:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxc-0002uW-IF; Sun, 31 May 2026 22:48:48 +0000
Received: by outflank-mailman (input) for mailman id 1323517;
 Sun, 31 May 2026 22:48:47 +0000
Received: from mx.expurgate.net ([194.145.224.20])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxa-0002dW-SZ
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxa-00Fm16-9M
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:46 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba94-e002-0a2a0a5209dd-0a2a45059030-40
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:46 +0200
Received: from [40.107.74.72]
 (helo=OS0P286CU010.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbac9-aaa8-0a2a45050019-286b4a488211-5
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:46 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TY1P286MB3278.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2e1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.17; Sun, 31 May
 2026 22:48:44 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vp3Xi3Z9sJgaxeHqtC0xyNEuwdq8qStvMvGRDJ915w5mEbZMsKR7d6AxhmdvTA8C4KxEi2Hxr+8Q1L6KdCKgQ1S4j2QNWXcU5d33v1jRkae+ungc4q9Cf3K/MIY3kBnlQMcFDts05VBBrpP25eh/ueQaz46yZM9YFbVg2l/KenPy2LvvDRLh/54KkYlYRPQ4hDwWinyDNs1R+ts1t1Yv6g5R32wA8jWUOB0AJMaLaOS6nVeMvinSEvuhGQPPdUxbQJLp4s0FDggBjDyumLzGH3o9a6SOlyfpHoVkGC5rlVhGk+ud5KPBTzEL2HMec2CNmWN8smEy6IK22EzerOAoFg==
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=5QuO5xKA+OIjYqQ6fhQKlx60t+usshVfR/LPkpUASg8=;
 b=JeDzHJ2lbKaDYe4W4q0rFTl2pA5nQi+nghna+uIwB0lpbCPOKy+XTQwo6C9WFSIW+ux2brURbSJf+iHSKPhkTvSHnsxuYfeNlxtvq11VAavP5kedBtcvotJlFxrOPyA3En3d1ybBfdOjZ1rQ9NXupOs3HPXVlluEt+KlDFJA6l29aZBeyRLRn112colY9/2A+C8f3ThWkOT0+915TII3TGiC8czg2kezpcv7QXquGpHeqlO+aZi0Yate6Jx33cyznAyodCDk4/Pa3dg986Z1he6+M/JcD/qQ461HH7IlAmtBh9Qn/0tjF0chkx04qDyiTAHqb467wdI1+0Pxjao/Pw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5QuO5xKA+OIjYqQ6fhQKlx60t+usshVfR/LPkpUASg8=;
 b=wbciOWzfwifwa5XOyreGKIe9018F88af4WsV3MaA8c8q0e5OLHneGJIgbbkTKwU16IjunYoGR9qXN7ZmyT/q9ShmTAS1AQgEOFTLGyTvuoSlczOO7kkh165e8VrXS7YxJnT0u7zhv5yO6mABx+c1uOEXxkeXQKrROxi/uBO89Jc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 23/24] xen/arm: Use dedicated function for Static SHM Device Tree creation
Date: Mon,  1 Jun 2026 07:47:53 +0900
Message-ID: <20260531224755.9481-24-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4PR01CA0125.jpnprd01.prod.outlook.com
 (2603:1096:405:379::7) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY1P286MB3278:EE_
X-MS-Office365-Filtering-Correlation-Id: cb660076-0a7b-4a80-3b1d-08debf66c4c5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|10070799003|1800799024|366016|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	X56eCUsDMDlkksp+/n0hpvle4d7x+JK4wADV6pAViumoJJHgT/rrnjcrfUbALctDWm52WV04XfzG4AKtItrN9GzSMuFnrnk1cmhhG97yH5r4wnjnIPxtcp2tY+dGc057gYpi/yM2YijLpAPu2aZInQv/TLVmTsdXOp1tGgH5Z9w+auVw+HoYbq8N0gy5urAysOgiYypi7rJ11Cnxms344ipv68OBJ+CZm0quKHAtZgaUZujOyY3A8RpPlA+xOPtuNHmPZ6pYofI4+NL6PG1y/A1lLPt9vAREYLF5I4a2FwEbQfVrNG9cvpf4dDb0olaeuJrJwrRW6Sx/WDQeaCP09zgu5NqVqulIO5aKLnaKirusP3dJAfR57Pc+Bds49spYNbnL5CB9AfMcWCH1XYKn3kwuLwA3h/IANZHPrGljDRlugiFAif0CzlVivAkzaPgzLxoZRSELQRTXok59PlN6oj/L+SUFUaVrZepJVGDDXOp8XWfqXi/hSjfdYELGz4On3zAXnnhQcuqlDhfzz62s/GRDB0vUR9wcxKPlWL0Du+hTAciPDrf92BEASYThRVXlI17qAnivcSUEh44nz5G4zvvyE9RlJOUAHp9jzf3u07JB0OqZHNKzzrA5mgpQbxQ1JrLjPc+QO0zAhGgKD70QWUr2IKPbEYCLEQ+fuNgagXaTr13jhhF9z8ZRQhLbuo9q
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(10070799003)(1800799024)(366016)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?r4fc/RWf0I1k/6uxjKEbtJjkWVhkIgQ39q12SWwpGrnc6/g0J9fDxI1k40t3?=
 =?us-ascii?Q?ascf3vfBy4BxvobWlTJP2UpaAkcS9CuPamxv+fLh0d9UAOISJ7vFTU+R9mQ4?=
 =?us-ascii?Q?Tm7nBnruDelwrm8f3w/14LcAGmM1RrA2qrApYCZYhBlNz9uTi3KfvxJOI/Nt?=
 =?us-ascii?Q?FZ0iSEQG4BjS6EKutj3y/BOpyHV89YRJgnmwi0CjXBs7EgNlyuvuh9nCd4BB?=
 =?us-ascii?Q?7R8Ao0CaBJtUjlc5nFmbQ9ViSPir+c+/WWAlkxyVMhmwHwB5TIzLEi9YQYcx?=
 =?us-ascii?Q?ltIyLM+jC8w4l32XAf7gWBRk0ni8RLTbf0D/fGs0NSTFOVeMcLoY1v91zyrD?=
 =?us-ascii?Q?c13LxQ7oB5MXbNNMqxUWG+IcWQ+v0QUg3kdv+NvH5+CqEno6RS0zdXnT5xmg?=
 =?us-ascii?Q?id//Vx8XCRevid1OCpu0Rz0YeT+Mo6cgzFqzHwAaCiylJIfnAxjWt0A6gs/U?=
 =?us-ascii?Q?dc/CRQi/n/x4ApCuZzxhilpKKnn0qqwqaGK+zjotHLDCTHxmpXIBaoNzzp9b?=
 =?us-ascii?Q?kkdfBLEjlkaA7GD7w28c9Dxw/8QKXBx8FLXtw9hvBkjTqQON3eNdtlZqm3bx?=
 =?us-ascii?Q?VaYZ8TrEByirUaD9jY55P/S5Q1L28cdwwSXDheREsd2NdIFP+n2Jx4Kkv2HT?=
 =?us-ascii?Q?L1cxi8yUoLFSWGQCol+YxN2DMnskZUsvBTN2w0hZCZDtUp+d4Ks3ZcvAFe6+?=
 =?us-ascii?Q?Ec3l65JW8oJAE+7a22P07Mrg8m9+2avpYr3tFEW3GYaZs0CoNCMAjcc4eK9y?=
 =?us-ascii?Q?YDfbjzWTYG5tCoIvds6XSDbSzaTMcEp7lkL++92U1Ir994zxPlgF16K9tDDa?=
 =?us-ascii?Q?g3uhI1YSKhocARgvRqOzEejDczP0MvPmp+hffKEdBnmaV0C8uqLzmIM/T2Id?=
 =?us-ascii?Q?Ow2UhymqQSFYqecLpms+WhRyow9P2OlITTw3IWd9rA8vSROajoqQDGhlkSrR?=
 =?us-ascii?Q?vVyKhfJ2MyX35bGNGXbk0FuI3Ai57mTRarCk/1ErPQyD/buaMdCOmQm3ZAQ7?=
 =?us-ascii?Q?NzPKNpJikY6TObKXMSiruAvAytrTjaLTJOyZaTfii4HKAOMrpgR9i7t+9oK3?=
 =?us-ascii?Q?Q7P+j4q8abfpYUCXKZU071LE7Gjrlf+Dkmt9C8PzNHQ7Sgl7sBxPWtkR/t7h?=
 =?us-ascii?Q?+nCvafZ2BAHKZ/WQkGBOIgEhsRq7AuRx+pvx2gjumN/c16bc5qTcvyJammMu?=
 =?us-ascii?Q?VXtb5PG2gqY1K5hJvi/4H1XAGeo/VAHNPeQNqh04RhnH/jnnbB7UjPK3V1bU?=
 =?us-ascii?Q?f6+djHGYWlY6tXzVJ8UHsF9NlzzSRmTzkgrl9dJmclkCPboaM2LrwlpUD3jS?=
 =?us-ascii?Q?OEFWHNQoIvfr/q9ei6zBDqGpqZqwx/0FMHjqkLHj2xrgRLCqJWyB8kakTMla?=
 =?us-ascii?Q?jnbwNr60seSCZUeaPZdcj7ErSbmimpTlL4hSIOXNm9ZFbTWAuda6+UXC66lS?=
 =?us-ascii?Q?8D1c1TKAPMXZjEY7jnqtBkqITGVpWrNcEYnNOGK2R9mQTa2rPHl9pMHJBAvN?=
 =?us-ascii?Q?rE//kJOBNLz+XoR1amv+9z1hXFyl+DbapRkEeRvshDEmw4zG6UdTfzFSIfr4?=
 =?us-ascii?Q?Qd9upTxen3DJZkjzmy6Ttepn7n6KnI9bDelCHTieefXxUzXW0LUs0NNa3RnN?=
 =?us-ascii?Q?c97X7JxpX44SAzCl6SsWDccjWPjj8vNyeYPHXNJCr4AVs+IrK9YtBDPsztt2?=
 =?us-ascii?Q?DeMFzb9M1BINZBCdc3IaGVldJSqJghBhF0wDvdBxA0uOGl6D1AAlp2ImmZJv?=
 =?us-ascii?Q?ajXLuWE4VluWW9uCPKgYsCpGI76n4xQmpbsqKSdFnHGj5sqUZKHzp39e0sdv?=
X-MS-Exchange-AntiSpam-MessageData-1: oYA1rPtRy+k0NQ==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: cb660076-0a7b-4a80-3b1d-08debf66c4c5
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:44.2602
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9EkPQpLCjCNxzIiyNsKUUHvx8SPHNzA+D9TjcedoyaP1DlF8IW1VMO3eGQ6aL71uQU5O4To6rFt3pNZc7t64gg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1P286MB3278
X-purgate-ID: tlsNG-c201ff/1780267726-D9573443-59CCDCD9/0/0
X-purgate-type: clean
X-purgate-size: 2876

Use a dedicated function to create Static SHM Device Tree nodes instead
of reusing the generic memory node function.

Since the memory banks managing Static SHM repurpose the 'type' field
for a different purpose via a union, separating this creation logic
keeps the implementation clean and significantly improves maintainability.
---
 xen/arch/arm/domain_build.c           |  6 ++++++
 xen/common/device-tree/domain-build.c | 21 +++++++++++++++++++++
 xen/include/xen/fdt-domain-build.h    |  2 ++
 3 files changed, 29 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 29b09e3da6..497789ee1c 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1807,6 +1807,12 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
         if ( res )
             return res;
 
+#ifdef CONFIG_STATIC_SHM
+        res = make_raw_memory_node(kinfo, addrcells, sizecells, kernel_info_get_shm_mem_const(kinfo));
+        if ( res )
+            return res;
+#endif /* CONFIG_STATIC_SHM */
+
         res = make_distance_map_node(d, kinfo->fdt);
         if ( res )
             return res;
diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree/domain-build.c
index 61e2e50062..f846ca0471 100644
--- a/xen/common/device-tree/domain-build.c
+++ b/xen/common/device-tree/domain-build.c
@@ -565,6 +565,27 @@ int __init make_memory_node(const struct kernel_info *kinfo, int addrcells,
     return res;
 }
 
+int __init make_raw_memory_node(const struct kernel_info *kinfo, int addrcells,
+                            int sizecells, const struct membanks *mem)
+{
+    unsigned int i;
+    int res = 0;
+
+    if ( mem->nr_banks == 0 )
+        return 0;
+
+    dt_dprintk("Create raw memory nodes\n");
+
+    for ( i = 0 ; i < mem->nr_banks; i++ )
+    {
+        res = make_memory_sibling_node(kinfo, addrcells, sizecells, &mem->bank[i]);
+        if ( res )
+            return res;
+    }
+
+    return res;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/include/xen/fdt-domain-build.h b/xen/include/xen/fdt-domain-build.h
index 671486c1c8..6a809f3f86 100644
--- a/xen/include/xen/fdt-domain-build.h
+++ b/xen/include/xen/fdt-domain-build.h
@@ -31,6 +31,8 @@ int make_hypervisor_node(struct domain *d, const struct kernel_info *kinfo,
                          int addrcells, int sizecells);
 int make_memory_node(const struct kernel_info *kinfo, int addrcells,
                      int sizecells, const struct membanks *mem);
+int make_raw_memory_node(const struct kernel_info *kinfo, int addrcells,
+                         int sizecells, const struct membanks *mem);
 int make_timer_node(const struct kernel_info *kinfo);
 
 static inline int get_allocation_size(paddr_t size)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun May 31 22:48:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 May 2026 22:48:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1323530.1589341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxh-0003th-6v; Sun, 31 May 2026 22:48:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1323530.1589341; Sun, 31 May 2026 22:48:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1wToxg-0003rc-Oo; Sun, 31 May 2026 22:48:52 +0000
Received: by outflank-mailman (input) for mailman id 1323530;
 Sun, 31 May 2026 22:48:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <taka@valinux.co.jp>) id 1wToxf-0003OJ-0w
 for xen-devel@lists.xenproject.org; Sun, 31 May 2026 22:48:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1wToxe-00En0E-Cw
 for xen-devel@lists.xenproject.org; Mon, 01 Jun 2026 00:48:50 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cba94-bab6-0a2a0a5309dd-0a2a4504a1f8-28
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:50 +0200
Received: from [52.101.125.102]
 (helo=TYVP286CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1)
 (envelope-from <taka@valinux.co.jp>)
 id 6a1cbacf-1dec-0a2a45040019-34657d668b12-3
 for <xen-devel@lists.xenproject.org>; Mon, 01 Jun 2026 00:48:50 +0200
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:458::18)
 by TY1P286MB3278.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2e1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.17; Sun, 31 May
 2026 22:48:46 +0000
Received: from OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6]) by OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 ([fe80::c8c9:25cd:8d13:96d6%6]) with mapi id 15.21.0071.015; Sun, 31 May 2026
 22:48:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bRkteYs+NLUCNXsxCNLzOsZq667fqTekJTnrHRvQ08jwYCXlYqSOEyhMfzNGv36TirMhUO2bdhshJEg1+cSe21k7u/bKZpjjHHGMuenezs3meJBZJAKnmdEdZXD3RP+uhGG/7+Kv+I1g/koCVb8gE2WTVm2oDnfHCePgzEX2Ek/nCfLlG/cXMe0eA2jFXDGxlaIZs4X1Ze8ppRykdmNvsmpMfnoaW2iuQf6611ZCu3F2sqK9MhYG70+mcsSyvRv/Xv5U/OTtqROhe5piuq/LjJLjgaJ8Cxmk0xYUliG917E3uKoRhP7TMgAFwNCb8R2RiyCZiu6loiVWoyYoH2YRew==
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=s3XmMr4E3+akgf1HAcBTnf26av6T0gioo48e5/4KTcg=;
 b=T6iKCSccDDHiJkHvDFWzJ/BwrGp3TTY9krdB8g+vp5hvGqJdu6W6iT0isQQUI37YDvMuAjURPLkmF/VsodlMlPigOzpjnP92kOsWUnMKGfJZqLlS0y+IBA5JjqPpBvgJFmLkxCPlvGPsoIdgFshtFBz1V77Vo19pW7iAtIULBEvd8kjGHrMRwFaNyAQcpBHiN6zFXLIohI8CgPN6rKCSQFLT2YUM7O+kvBaUecPbip3mTtEhtAFDMNe6cHX6eUE3Boa4TJaPQtb416LtUp8e5dJo/SYvKqqCXPnkqgPRyBi8S3B/kySrNOF5hY2bp+426ta2y8YgQwmXtvfUqkIqnA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=s3XmMr4E3+akgf1HAcBTnf26av6T0gioo48e5/4KTcg=;
 b=rGQTi1hkjOQEDOIhNiXO/Z4Xvbt+FTa/W1sHHh7dbDsAO04hCvCRG6T9uhuDjYX+3vZp2hk9UipZKYh+2cUU2MUTKTz4OIm8FXk+x664Ys92gtCOAGUWbjUjI7JSW649mnChednPR4Aawt0JySS0MF+sHB+/L+FOCDR2ihTLevk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
From: Hirokazu Takahashi <taka@valinux.co.jp>
To: xen-devel@lists.xenproject.org
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 24/24] xen/arm: Support numa and dom0_nodes boot options
Date: Mon,  1 Jun 2026 07:47:54 +0900
Message-ID: <20260531224755.9481-25-taka@valinux.co.jp>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260531224755.9481-1-taka@valinux.co.jp>
References: <20260531224755.9481-1-taka@valinux.co.jp>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: TY4PR01CA0115.jpnprd01.prod.outlook.com
 (2603:1096:405:379::17) To OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:604:458::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: OS9P286MB7222:EE_|TY1P286MB3278:EE_
X-MS-Office365-Filtering-Correlation-Id: 3eb66169-8a08-4f4c-cc24-08debf66c60c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|10070799003|1800799024|366016|3023799007|56012099006|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	FJUywyCTtOHsTKeg+am8duIMaVPFio3GjK45JLlgUmdOUbFnmwWzgO/9LO9Pw5D+B0qYqUKeQ5hN4OeMKUxcJCdc9vsM9z3EXD2viC4fEZbrnyJpsTvS4eBTnRAGzqmvI/Ll2rYCANOuOQN175Lx7EsdmExVp8GFlob3TuOX8cVwELQXsxS7adLYuKR3aZl+nGDvGCNTjX6svK5o2l/zyZoid2ZHNLfrCJrPuvLNYBw/k4wSx8HZxkoVext3CgbzIcnU9NANngZhohO9TTPNXGC441KA8ddD2Sx3/p2KpzRRMvNuK/7eTKIIsLMWd17yLi1CB9PA+F4J7xVBrDShg/l0sLFRGnC3HraR58Xhn8ns5sViYihQ5sCY/Qfd5ikXQk3PESFWDNInWep5Xe4cI9kYNltPEiHxcJhyboFqg7HeenA3shoFzS3hHkF1eieILZAbNL4YE0hbn8VG+odBb5VL2jjYeid1pgkm6w0PRbSh/i8hZRWEQf8JHL5OEAeIGx4YyXmepg6XPQeMGCP7ErDmBpTuBsIMx3Z91xEiXSpcs669MzJOlhDExkZd5ECdUGBzcSLoPwPYqsqxJ4N+6ntL5Icug8zz4cJLaVMrrB1H4uD1TtuadT1W3fLbOK9Q7AHc6TBEDMlWJe6eHPSClQ==
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(1800799024)(366016)(3023799007)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?jD4UckMd8tOn6BqDXe2az43yMAyxSNPW6gIJbkOiZ+QvMMFmQGjxeMv8rxCH?=
 =?us-ascii?Q?uwT+YT4DKR1lhE+NZZDf7yPIca3SPbtzJqG9/gKamasm7Le5dm/BiuVUKAS6?=
 =?us-ascii?Q?M+piZ54808KNIbDl55PwgqJpPji/JkfwahruHemukepEfh81dlDSy1r8k2dB?=
 =?us-ascii?Q?rcna9+yYUKn66wC5s/Lv3q25p8HOAB9T51IKOjXo5Iw25BHHLQg3gty1ZTiG?=
 =?us-ascii?Q?VeT616eX5P0c7ZD0zkPk4HrLVg5U2wysqC5pTRi1R2T/Fr+dKgwkCm95i4Rh?=
 =?us-ascii?Q?IZqg/ONpdCcyug95SXAXGUBe2vOkuE4b23RwbiB6J/jAETjYW2x2VTCxjgcb?=
 =?us-ascii?Q?fhPOXiV89XdHy1OtmbYDRm5SIBCDsf4RDKR/kPw7digoQbfsUkG9RAQ50jxe?=
 =?us-ascii?Q?BWmZ+JOLcAuqIXp/Vp0NWiVKESUMhC/sA1S87UyGS4vTd9UEgp1vMZBe03OZ?=
 =?us-ascii?Q?KUn7u3L6bYkCxbwrwvTI9yXGP1dbzRKzs72WkS2nfKhiBlIA/mkS823v5K00?=
 =?us-ascii?Q?B/ajegjMwcubybr2w+89NLdVZXnjiccnldMLNiZBhcDhtPWCdo631s2no/rD?=
 =?us-ascii?Q?BGpOHnbnUFh1Q8spX+OQ/sNOLpYP9uhspQtyKVQ95Hk77YNuL0JDCxt1F+hR?=
 =?us-ascii?Q?7I2BOti7JLvo3zk7Kvm5ZWW3Qkcq6opNCnhY67rPMQOyOBKmMsnrmdc8DR8e?=
 =?us-ascii?Q?iZvra6Aph6QlqRUCdC/yTXgDGZPSoFQaqkRCYpG7M6sf7x4QEt6kenA/o5qa?=
 =?us-ascii?Q?mUVFTbUVO7VTUF8cgyBExHurr0DiYBGEePe0W5D+Ynd0edQKMETqQvdv3MUZ?=
 =?us-ascii?Q?VQ5NYAWOJ5wl+K03tCrdRTlHypTQIQKqSzOY3YRWqFCSqc6hrTPQlJyEQnxi?=
 =?us-ascii?Q?ZO1gYeag591zDfMB2MoqnQj3D2ijWdknvpMDbGdbGBasPzbq+258KuUGhzRT?=
 =?us-ascii?Q?Dl8BB3O48IHXvmE7kDdlgG//DT/K+DaedSZa4Kqa1l3ALUrX6/tpgbkKS9QH?=
 =?us-ascii?Q?0CNNyBVRLNLoSNgcX7pFz7TbcW+hfYNt0ysTJVEoRMy2hGik86RjaQusO430?=
 =?us-ascii?Q?xE4nqjSkUwRiiIRHL0ezMs7lvxcdw78zWWG//F3pI2szDSRBQREW1Du+Zciy?=
 =?us-ascii?Q?IKpbqaIr6CrZ8DWA+D/3ZQuEDGDflj34pKQnzoGeIcmF7LCWbIkx6X8eCx9r?=
 =?us-ascii?Q?jydREasCfVmq8JjBof7m/wqcFfA3/u1RNYoO8r3KTQ17ddPdkRf9ofDofpi2?=
 =?us-ascii?Q?m5xNwUy2QzzGWl9N/h6UPN5mdq4xTnVD1ESxA1VJa5k5Wb5l4Q392VynQCJz?=
 =?us-ascii?Q?yNGuJsJKUkIDE+Siox2GZGUMTfvRlQlv7uorbS9n/MZ/YIzkRBCeMDAV3b71?=
 =?us-ascii?Q?W43aoNoSisttS9s00UIgLkK/7rDK1M5/IglJOICYIMMe13PbuNBe8uv0k4SQ?=
 =?us-ascii?Q?FSTHBTzr1HZqa1BmGginVlwvVfy5yn6w7z2TgIdM2vXR4miGWdydPDpgMf/x?=
 =?us-ascii?Q?aRdIgaYhuTLflxurQ7Kp2jpKOotn2eXJ4vc9LzVlG6UDfTtCh64Nltg0dc/n?=
 =?us-ascii?Q?/MP2Tev4mlwCxfVnUh37yBF3CflN+jfJnWmOL35NpjSQeuel8gu4AmFzCyJU?=
 =?us-ascii?Q?1NcVnWiku+nPMIatK84wsrf+dDpHbp9ZjTK4jhPaaTjK6ctwlFex/maViqMi?=
 =?us-ascii?Q?foBvI4fDpOVtK/gRo74hhbJv4YGW8sOkKVW98bEVz3LpXdSz5Oli1QoDbBYY?=
 =?us-ascii?Q?fy3N213TxkA7PUERToHEtIwvkYeJ8RVLQoujHUbQH6Lv4/myHmoxCwrI5vh+?=
X-MS-Exchange-AntiSpam-MessageData-1: msz62ZHVuRl2gg==
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 3eb66169-8a08-4f4c-cc24-08debf66c60c
X-MS-Exchange-CrossTenant-AuthSource: OS9P286MB7222.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2026 22:48:46.4114
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: tlGp30Hdd034s6RanQoHhdLcP43DqTUXdPgxMkyLTjgtNFt8tD1sdCyE3WSjFI54Y2n4IR9o4mRb7oUe2OaEEA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1P286MB3278
X-purgate-ID: tlsNG-ebf023/1780267730-42F653FF-134D48AC/0/0
X-purgate-type: clean
X-purgate-size: 1710

The numa_nodes command line option is now supported on ARM Xen.
Its usage is almost identical to x86 Xen. The key difference is that
while x86 uses ACPI PXM values to specify nodes, ARM uses the
values defined in the device tree (numa-node-id).
---
 docs/misc/xen-command-line.pandoc | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 8c89b7852c..909d5889e5 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1050,7 +1050,7 @@ Practices](https://wiki.xen.org/wiki/Xen_Best_Practices#Xen_dom0_dedicated_memor
 
 This option doesn't have effect if pv-shim mode is enabled.
 
-### dom0_nodes (x86)
+### dom0_nodes (x86, arm)
 
 > `= List of [ <integer> | relaxed | strict ]`
 
@@ -1059,8 +1059,9 @@ This option doesn't have effect if pv-shim mode is enabled.
 Specify the NUMA nodes to place Dom0 on. Defaults for vCPU-s created
 and memory assigned to Dom0 will be adjusted to match the node
 restrictions set up here. Note that the values to be specified here are
-ACPI PXM ones, not Xen internal node numbers. `relaxed` sets up vCPU
-affinities to prefer but be not limited to the specified node(s).
+ACPI PXM ones, not Xen internal node numbers, or node IDs in the device
+tree. `relaxed` sets up vCPU affinities to prefer but be not limited to
+the specified node(s).
 
 ### dom0_vcpus_pin
 > `= <boolean>`
@@ -2017,7 +2018,7 @@ This option is ignored in **pv-shim** mode.
 ### nr_irqs (x86)
 > `= <integer>`
 
-### numa (x86)
+### numa (x86, arm)
 > `= on | off | fake=<integer> | noacpi`
 
 > Default: `on`
-- 
2.43.0



